circuitos programáveis - inffglima/td/td16.pdf · aula disciplina: técnicas digitais – profa....

69
Aula 18 Circuitos Programáveis Circuitos Programáveis CPLD FPGA

Upload: others

Post on 30-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

18

Circuitos ProgramáveisCircuitos Programáveis

CPLD

FPGA

Page 2: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2

18Tipos de componentesTipos de componentes

• Circuito de aplicação específica (ASIC):circuito integrado projetado especialmente para uma determinada função. Fabricado em uma foundry com todos os conjuntos de mascaras de metal, polissilicio, dopagem no silicio, etc.

• Full-custom• Standard cell (baseado em biblioteca

de células já caracterizadas)

• Lógica programável: circuito que pode ser customizado e re-programado para realizar diversas funções. Pode ser customizado nas foundries (gate array) ou no campo pelo usuário.

Compromisso:Custo XCusto por unidade Xtempo de projeto X

desempenho

Chip

ASIC FPGA

Page 3: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 3

18

10100011001

(Programação)

Page 4: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 4

18CircuitosCircuitos ProgramáveisProgramáveis• As PALs estão disponiveis somente em tamanhos pequenos, equivalentes

a algumas centenas de portas lógicas. • Para circuitos lógicos maiores pode-se usar Complex PLD ou CPLDs. • Este contém o equivalente a muitas PALs ligadas por interconexão

programadas, tudo num circuito integrado. • Os CPLDs podem substituir milhares ou até centenas de milhares portas

lógicas. • Algumas CPLDs são programadas usando o programador PAL, mas este

método torna-se inconveniente para dispositivos com centenas de pinos.• O segundo método de programação é soldar o componente à sua placa de

circuito impresso, e depois ligar um cabo de série de dados ao PC. • O CPLD contém um circuito que decodifica os dados e configura-o para

realizar a função lógica específica. • Cada fabricante tem um nome proprietário para este sistema de

programação, mas normalmente é dado pela interface Joint Test Action Group (JTAG).

Page 5: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 5

18EstruturasEstruturas do do CircuitoCircuito ProgramávelProgramável

• Tecnologia de programação (anti-fusível, EPROM/EEPROM/FLASH, memória SRAM)

• Blocos lógicos básicos customizáveis ( multiplexadores tambémconhecido como Lookup Table-LUT, arranjos OR e AND, etc)

• Connexões programáveis• Ferramenta para projeto e sintese no componente programável.

Principais fabricantes:

• Actel• Altera• Xilinx

Conforme o bloco lógico básico e a estrutura das conexões programáveisdenominamos de:• CPLD (Complex Programmable Logic Devices)• FPGA (Field Programmable Gate Array)

Page 6: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 6

18DiferençasDiferenças entreentre CPLD x FPGACPLD x FPGA1) CPLDs tem um conjunto grande de interconexões continuas e pre-definidas, enquanto o FPGA tem conexões segmentadas em tamanhospequenos.

2) Os CPLDs normalmentetem um conjunto de arrays AND e OR lembrando muitoos antigos PLAs, enquantoos FPGAs são arrays regulares de multiplexadores separadosem colunas e linhas, o queaumenta a densidadelógica.

Page 7: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 7

18TecnologiaTecnologia AntiAnti--fusivelfusivelÉ composto por um elemento que faz ou não a conexão entre duas camadasde metal conforme uma tensão de programação. Não é volátil, ou seja, retem a programação mesmo sem alimentação.

O chip pode ser programado apenas 1 vez.

Page 8: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 8

18FPGA FPGA dada ActelActel

• Usa tecnologia anti-fusível• Baseado em um array de portas lógicas com canal de roteamento• Cada elementro lógicoprogramável é baseadoem multiplexadores.

Page 9: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 9

18Logic Elements (LE) Logic Elements (LE) dada ActelActel

Programa paraimplementartabelas verdadesde funçõesBooleanas

Page 10: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 10

18ACTEL: RTAXACTEL: RTAX--S deviceS device

RAM

CT

RAM

RAM

RAM

SCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSC

SCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSC

SCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSC

SCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSC

RAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMC

RAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMCRAMC

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

RD

HDHDHDHDHDHDHDHDHDHDHDHDHD

[Actel, RTAX-S RadTolerant FPGAs 2007]

C RRX

TX

RX

TX

RX

TX

RX

TX

BC CC R

Super Cluster

Page 11: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 11

18ACTEL: RTAXACTEL: RTAX--S deviceS device

C RC

D2

D0

DB A0

A1 Y

D3

D1

B1

B0

FCI

CFN

10

10

10

10

10

D2

D0

DB A0

A1

FCO Y

D3

D1

B1

B0

CFN

10

10

10

10

10

10

C-CELL R-CELLC-CELL

Page 12: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 12

18

Page 13: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 13

18TecnologiaTecnologia EPROM e EEPROM EPROM e EEPROM • EPROM e EEPROM é uma tecnologia não volátil, ou seja, mantem a programação mesmo na falta de alimentação e é re-programável.• O chip pode ser programado inúmeras vezes.

• O transistor fabricado em tecnologia EPROM pode ser programadoquando uma tensão alta (~12V) é aplicada no seu gate. E a programação pode ser apagada com raios ulta-violetas. • O transistor fabricado em tecnologia EEPROM também é programadopor uma tensão alta (~12V) aplicada no seu gate e pode ser apagadoeletricamente.

Page 14: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14

18FPGA e FPGA e CPLDsCPLDs dada AlteraAltera

Família Número de Gates Programação MAX5000 600 a 3,7K EEPROM MAX7000 600 a 5K EEPROM MAX9000 6K a 12K EEPROM FLEX6000 5K a 24K SRAM FLEX8000 2,5K a 16K SRAM FLEX10K 10K a 250K SRAM FLEX20K 53K a 1000K SRAM Mercury 120k a 350k SRAM

Apex 700k a 2M SRAM ApexII 1.9M a 5.2M SRAM Ciclone SRAM Stratix 10k a 40k LE SRAM MAX SRAM

Page 15: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 15

18BlocoBloco LógicoLógico do PLD MAX7000do PLD MAX7000

Page 16: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 16

18

FPGAs comerciaisFPGAs comerciais

AlteraAltera

FLEX 10K

Field Programmable Gate ArrayField Programmable Gate Array

Page 17: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 17

18

FPGAs comerciaisFPGAs comerciais

AlteraAltera

FLEX 10K

Field Programmable Gate ArrayField Programmable Gate ArrayMUX 16:1

Page 18: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 18

18

Page 19: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 19

18

Page 20: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 20

18

Page 21: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 21

18

Page 22: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 22

18StradixStradix IIIIMUX 16:1 MUX8:1

Page 23: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 23

18ExemplosExemplos de Design Kitsde Design Kits

MAX (CPLD)FLEX (FPGA)

Page 24: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 24

18OutrosOutros kits…kits…

Com processador embarcado NIOS (processador soft core), ou seja, descrito em linguagem de hardware (VHDL/VERILOG) que pode ser implementado na matriz pelo usuário.

Page 25: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 25

18

Page 26: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 26

18

Page 27: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 27

18TecnologiaTecnologia SRAMSRAM

• A maioria dos FPGAs são programados por SRAM. • A programação fica armazenada em uma célula de memoria SRAM

que controla transistores de passagem e multiplexadores paraconfigurar a lógica e roteamento.

• É volátil, ou seja, perde a programação na falta de alimentação.• Pode ser programada inúmeras vezes pelo usuário atraves da

leitura do bistream (array de bits de programação) para dentro do FPGA.

Page 28: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 28

18

• A empresa Xilinx foi fundada em 1984 em San José (Califórnia, USA) e foi ela que introduziu o FPGA. Hoje em dia, esta empresa domina cerca de 50 % do mercado em FPGAs.

FPGAs comerciaisFPGAs comerciais

XilinxXilinx

90nm

130nmPower-PC inside

Power-PC inside

Família Número de Portas CaracterísticaXC2000 1,2K a 1,8K -XC3000 2K a 9K Low-power

XC4000E 2K a 20K Low-powerXC4000XL/XLA 10K a 200K High-density

XC4000XV 75K a 500K High-densityXC5200 3 K a 23K Low-power

SPARTAN/XL 2K a 40K Low-powerVIRTEX 50K a 1M High-density

SPARTAN-2SPARTAN-3

VIRTEXIIVIRTEXII-PRO

VIRTEX4 13K a 200K Low-powerVIRTEX4-FX

40k a 8 M High density2k a 33k LOW COST1k a 15k LOW COST

220nm

Field Programmable Gate ArraysField Programmable Gate Arrays

VIRTEX5 65 nm

Tecnologia CMOS

Page 29: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 29

18Technology Scaling in Technology Scaling in XilinxXilinx FPGAsFPGAs

Tecnologia Nano-métrica

Processador Embarcado

Memoria Embarcada (BRAM)

Page 30: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 30

18

A informação é customizada por um vetor de bits chamado de BITSTREAM (set of SRAM bits)

Essas são as celulasSRAM que guardam a programação

Page 31: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 31

18MapeamentoMapeamento lógicológico SRAMSRAM--based FPGAs based FPGAs

ffF1F2F3F4

Configuration Memory CellM

M

M M M M M MLUT

BlockRAM

clk

clk

E1E2E3

E1E2E1E3E2E3

VHDL / VerilogDescriptions

ASIC

FPGA slice

Page 32: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 32

18

CLB Segmented routing

SelectI/OPins

DistributedSelectRAMMemory

BlockSelectRAMMemory

PLL

66 MHz PCI66 MHz PCI SSTL3SSTL3

Vector BasedInterconnectdelay=f(vector)

Field Programmable Gate ArraysField Programmable Gate Arrays

hex lines

hex lines

single lines

single lines

single lines

sing

le li

nes

M Pass-transistor

Virtex Family from Xilinx, Inc.

CLBFPGAs comerciaisFPGAs comerciais

XilinxXilinx

Page 33: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 33

18

Direct connections

Hex connections

General Routing Matrix (GRM) General Routing Matrix (GRM) -- VirtexIIVirtexII

Direct lines

Double lines

CLB CLB CLB

CLB CLB

CLB CLB CLB

CLB CLB

Long lines

Hex lines

CLB CLB CLB CLB CLB CLB

CLB CLB CLB CLB

Fast connectCLB

Page 34: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 34

18XilinxXilinx VirtexIIVirtexII -- CLBCLB

MUX 16:1

Page 35: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 35

18VirtexVirtex Carry SelectCarry SelectLógica especifica pre-fabricada na matriz para propagação de Carry paraacelerar o desempenho de somadores e multiplicadores implementadosem FPGA

Page 36: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 36

18CLB Evolution CLB Evolution

Virtex-II

SwitchMatrix

Slice0 Slice1

Virtex

4-LUT

4-LUT

ffp

ffp

Virtex-4HexLong Single

Long DirectDoubleHex

SwitchMatrix

Slice0

Slice1

Virtex-5

6-LUT

6-LUT

ffp

ffp

6-LUT

6-LUT

Mais complexidade no mesmo bloco programável(CLB) (redução do número de niveis logicos de CLB)

Roteamento mais complexo para diminuir o numero de segmentos de roteamento e aumentar o desempenho

Page 37: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 37

18VirtexVirtex 5: CLB5: CLBMUX 64:1

Page 38: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 38

18BRAMBRAM

Page 39: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 39

18Placa de Prototipação (Exemplo)Placa de Prototipação (Exemplo)

Manual no site: http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&Nav1=Products&Nav2=Programmable

FPGA Spartan3

Page 40: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 40

18ProcessadoresProcessadores embarcadosembarcados emem FPGAFPGA

• Hard Core:– Processador tipo ASIC dentro do FPGA.

• Soft Core:– Processador em VHDL/VERILOG a ser sintetizado no FPGA.

Page 41: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 41

18VirtexIIVirtexII--Pro PlatformPro PlatformA familia que contem o processador PowerPC embarcado no FPGA

Page 42: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 42

18Embedded ProcessorEmbedded Processor

Page 43: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 43

18MicroblazeMicroblaze (soft core)(soft core)

Processador descrito em VHDL/Verilog que pode ser implementado no FPGA através da ferramenta de programação.

Page 44: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 44

18VirtexIIVirtexII--Pro Board (Pro Board (ExemploExemplo))

Page 45: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 45

18Reconfigurable ComputingReconfigurable Computing

•É possivel reconfigurar parcialmente o FPGA pararealizar diferentes tarefas ao longo to tempo. •Isso pode acelerar o processamento de um processador por exemplo.

Page 46: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 46

18Presented by Presented by TrimbergerTrimberger (FPL, 2007)(FPL, 2007)Exemplo de FPGA (Virtex5) acoplado a uma placa de video para acelerar o processamento de imagem.

Page 47: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 47

18

Page 48: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 48

18

Page 49: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 49

18

Page 50: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 50

18NoçõesNoções de VHDLde VHDL• VHDL foi desenvolvido primeiramente pelo Departamento de

Defesa Americano: the American Department of Defense (DoD). • Em 1987, VHDL foi padronizado pelo Instituto Americano de

Engenharia Eletro e Eletrônica: American Institute of Electrical and Electronics Engineers (IEEE) em 1993.International Standards – IEEE Std 1076-1987 – IEEE Std 1076-1993

• Hardware Description Language (HDL) ="Programming"-language para modelar hardware digital

• VHDL = VHSIC Hardware Description Language• VHSIC = Very High Speed Integrated Circuit Hardware

description, simulation, and synthesis

Page 51: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 51

18EstruturaEstrutura do VHDLdo VHDL

library library_name;use library_name.tipo;

entity name isport(pino1 : in tipo;

pino2 : in tipo;pino3 : out tipo);

name end;

architecture name_tipo of name is<declaração de componentes><declaração de sinais>begin

process(sinais)begin

end process;

process(clk)begin

end process;

<outros comandos><instanciação de componentes;

end;

1

2

43

7

5

6

Page 52: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 52

181 1 BibliotecasBibliotecas

LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.all;USE ieee.numeric_std.ALL;

- São necessárias para usar operadores de soma e subtração e usar o tipo std_logic e std_logic_vector para definir pinos e sinais internos.

Page 53: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 53

18EstruturaEstrutura do VHDLdo VHDL

library library_name;use library_name.tipo;

entity name isport(pino1 : in tipo;

pino2 : in tipo;pino3 : out tipo);

name end;

architecture name_tipo of name is<declaração de componentes><declaração de sinais>begin

process(sinais)begin

end process;

process(clk)begin

end process;

<outros comandos><instanciação de componentes;

end;

1

2

43

7

5

6

Page 54: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 54

18TipoTipo BinárioBinário com com multiplosmultiplos valoresvalores: : STD_LOGIC e STD_LOGIC_VECTORSTD_LOGIC e STD_LOGIC_VECTOR

• IEEE-standard • 9 valores padronizados pela IEEE • standard IEEE 1164 (STD_LOGIC_1164)

IEEE Standard Logic Type type STD_ULOGIC is (

` U `, -- uninitialized` X `, -- strong 0 or 1 (= unknown)` 0 `, -- strong 0` 1 `, -- strong 1` Z `, -- high impedance` W `, -- weak 0 or 1 (= unknown)` L `, -- weak 0` H `, -- weak 1` - `, -- don`t care);

Page 55: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 55

18ExemploExemplo atéaté agora…agora…

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity memoria_teste isPort ( clk : in STD_LOGIC;

reset : in STD_LOGIC;pronto : out STD_LOGIC;dado : out STD_LOGIC_VECTOR (7 downto 0));

end memoria_teste;

Declara as bibliotecas

Declara a entidade que é a interface do teu circuito com os pinos de entrada (in) e saída (out) e tipo std_logic (1 bit) ou std_logic_vector (vetorde n bits)

Page 56: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 56

18EstruturaEstrutura do VHDLdo VHDL

library library_name;use library_name.tipo;

entity name isport(pino1 : in tipo;

pino2 : in tipo;pino3 : out tipo);

name end;

architecture name_tipo of name is<declaração de componentes><declaração de sinais>begin

process(sinais)begin

end process;

process(clk)begin

end process;

<outros comandos><instanciação de componentes;

end;

1

2

43

7

5

6

Page 57: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 57

183 3 DeclaraçãoDeclaração de de sinaissinais

architecture Behavioral of memoria_teste is

signal cont, dadomem_in: STD_LOGIC_VECTOR (7 downto 0);signal leitura, escrita, WR: std_logic;

begin

Entre a declaração da arquitetura e o begin (inicio do circuito), podesdeclarar os sinais internos do circuito e o tipo deles.

Page 58: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 58

18EstruturaEstrutura do VHDLdo VHDL

library library_name;use library_name.tipo;

entity name isport(pino1 : in tipo;

pino2 : in tipo;pino3 : out tipo);

name end;

architecture name_tipo of name is<declaração de componentes><declaração de sinais>begin

process(sinais)begin

end process;

process(clk)begin

end process;

<outros comandos><instanciação de componentes;

end;

1

2

43

7

5

6

Page 59: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 59

18UsandoUsando componentescomponentes prontosprontos

• Temos que declarar o componente e depois instancia-lo.

• O componente é uma outra entidade e arquitetura definido em outroarquivo que ja foi compilado e está no mesmo diretório de trabalho.

Page 60: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 60

18DeclaraçãoDeclaração de de componentecomponenteentity FULLADDER is

port (A,B, CARRY_IN: in std_logic;SUM, CARRY: out std_logic);

end FULLADDER;

architecture STRUCT of FULLADDER issignal W_SUM, W_CARRY1, W_CARRY2 : std_logic;

component HALFADDERport (A, B : in std_logic;

SUM, CARRY : out std_logic);end component;

component ORGATEport (A, B : in std_logic;

RES : out std_logic);end component;

begin. . .

Page 61: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 61

18ModeloModelo HierarquicoHierarquico

Page 62: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 62

18

InstanciaçãoInstanciação dedeComponenteComponente

architecture STRUCT of FULLADDER iscomponent HALFADDER

port (A, B : in std_logic;SUM, CARRY : out std_logic);

end component;component ORGATE

port (A, B : in std_logic;RES : out std_logic);

end component;

signal W_SUM, W_CARRY1, W_CARRY2: std_logic;

begin

MODULE1: HALFADDERport map( A, B, W_SUM, W_CARRY1 );

MODULE2: HALFADDERport map ( W_SUM, CARRY_IN,

SUM, W_CARRY2 );

MODULE3: ORGATEport map ( W_CARRY2, W_CARRY1, CARRY );

end STRUCT;

Assinalamento dos sinais(ports) pela ordem dos pinosna interface do componente

Page 63: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 63

18InstanciaçãoInstanciação de de ComponenteComponente::associaçãoassociação de de nomesnomes dos ports dos ports

entity FULLADDER isport (A,B, CARRY_IN: in std_logic;

SUM, CARRY: out std_logic);end FULLADDER;

architecture STRUCT of FULLADDER is

component HALFADDERport (A, B : in std_logic;

SUM, CARRY : out std_logic);end component;

. . .signal W_SUM, W_CARRY1, W_CARRY2 : std_logic;

begin

MODULE1: HALFADDERport map ( A => A,

SUM => W_SUM,B => B,CARRY => W_CARRY1 );

. . .end STRUCT;

Assinalamento explicito

Page 64: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 64

18EstruturaEstrutura do VHDLdo VHDL

library library_name;use library_name.tipo;

entity name isport(pino1 : in tipo;

pino2 : in tipo;pino3 : out tipo);

name end;

architecture name_tipo of name is<declaração de componentes><declaração de sinais>begin

process(sinais)begin

end process;

process(clk)begin

end process;

<outros comandos><instanciação de componentes;

end;

1

2

43

7

5

6

Page 65: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 65

185 5 ComandosComandos ProcessProcess• Todos os comandos após o BEGIN são vistos como comandos concorrentes entre si. • Mas dentro de um process, os comandos são executados de maneira sequencial.• Quando todas as entradas do bloco definido no process estão na lista de sensibilidade deste

process, então estamos projetando um circuito combinacional.

process (reg1,reg2,reg3,reg4,flagj1,flagj2,flagj3,flagj4)beginif (flagj1 = '1' and flagj2 = '1' and flagj3 = '1' and flagj4 = '1') then

if (reg1>reg2 and reg1>reg3 and reg1>reg4) thencomp<="100";

elsif (reg2>reg1 and reg2>reg3 and reg2>reg4) thencomp<="101";

elsif (reg3>reg1 and reg3>reg2 and reg3>reg4) thencomp<="110";

elsif (reg4>reg1 and reg4>reg3 and reg4>reg2) thencomp<="111";

end if;else

comp <= "000";end if;

end process;

Page 66: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 66

18EstruturaEstrutura do VHDLdo VHDL

library library_name;use library_name.tipo;

entity name isport(pino1 : in tipo;

pino2 : in tipo;pino3 : out tipo);

name end;

architecture name_tipo of name is<declaração de componentes><declaração de sinais>begin

process(sinais)begin

end process;

process(clk)begin

end process;

<outros comandos><instanciação de componentes;

end;

1

2

43

7

5

6

Page 67: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 67

186 6 ComandosComandos ProcessProcess

• Todos os comandos após o BEGIN são vistos como comandos concorrentes entresi.

• Mas dentro de um process, os comandos são executados de maneira sequencial.

• Para sintetizar circuitos sequencias (flip-flops) é preciso fazer com que o process seja sensivel a um relógio (clk).

process (clk,reset)begin

if (reset = '1') thenreg1 <= "0000000000000000";flagj1<='0';elsif (clk'event and clk='1') thenif j1='1' and flagj1='0' then

reg1 <= LFSR;flagj1 <= '1';

end if;end if;end process;

Page 68: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 68

18EstruturaEstrutura do VHDLdo VHDL

library library_name;use library_name.tipo;

entity name isport(pino1 : in tipo;

pino2 : in tipo;pino3 : out tipo);

name end;

architecture name_tipo of name is<declaração de componentes><declaração de sinais>begin

process(sinais)begin

end process;

process(clk)begin

end process;

<outros comandos><instanciação de componentes;

end;

1

2

43

7

5

6

Page 69: Circuitos Programáveis - INFfglima/TD/TD16.pdf · Aula Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 14 18 FPGA e CPLDs da Altera Família Número

Aula

Disciplina: Técnicas Digitais – Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 69

187 7 OutrosOutros comandoscomandos concorrentesconcorrentes

• Podemos usar operadores diretos, fora de process. • Esses comandos serão executados de maneira concorrente entre

eles e com os demais process.

sum <= entA + ent B;F <= A xor B xor Cin;Cout <= (A and B ) or ( A and Cin) or (B and Cin);