FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
151
FPGA - Field Programmable Gate Array
• 1985/86: Xilinx introduz nova família de PLDs– FPGA - Field Programmable Gate Array
• agregados regulares de blocos lógicos configuráveis (CLB para XILINX)– ligações programáveis entre os blocos lógicos
• blocos configuráveis de complexidade reduzida (dezenas de portas lógicas)– unidade básica: look-up table (LUT) de 4 entradas– elementos de memória: flip-flops, latches, blocos de RAM (inclui dual-port)– uma LUT de 4 entradas faz qualquer função lógica combinacional de 4 entradas
• configuração rápida por escrita em SRAM– configuração volátil, necessita EPROM auxiliar– configuração in-circuit e rápida (reconfiguração completa em milissegundos)– possibilidade de reconfiguração parcial
– Sistemas reconfiguráveis baseados em FPGAs• construídos uma vez, re-utilizáveis um número arbitrário de vezes• prototipagem, circuitos para aplicações específicas, computadores dedicados
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
152
FPGA - fluxo de projecto
bloco lógico configurável
interruptoresprogramáveis
interligações
bloco de entrada/saída
A0
B0
A1
B1
S0
S1
S2A0B0
A1B1
S1
S2
S0
...assign S0=A0 ^B0,
C1=A0&B0,S1=A1^B1^C1,S2=A1&B1|A1&C1|B1&C1;
...
síntese física- place&route- timing analysis- bitstream generation
síntese lógica- RTL > gate levelmapeamento tecnológico
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
153
FPGAs - características
• Programação eléctrica– anti-fuse (programador, definitiva)– EPROM, EEPROM (programador ou in-circuit, não volátil)– SRAM (in-circuit, volátil)
• Arquitecturas de FPGAs correntes
bloco lógico configurável
Xilinx Actel Algotronix Altera
PLA PLA
PLAPLA
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
154
FPGAs - arquitecturas de blocos configuráveis
• Look-up tables
• multiplexers
• portas lógicas e muxs
• pares de transistores
• blocos PLA
mux
RAMABCD
AB
AB
mux
mux
mux
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
155
FPGAs - aplicações
• circuitos para aplicações específicas (ASICs)– substituir um circuito integrado fabricado por medida
• emulação e prototipagem de hardware– acelerar processos de validação (3 a 5 ordens de magnitude)– emulação de sistemas mistos digital-analógico
• processadores dedicados (CCM - Custom Computing Machines)
– especificamente desenhados para acelerar partes de aplicações• paralelismo das operações• natureza das operações (por exemplo manipulação de bits)
– associados a processadores convencionais– uma plataforma reconfigurável (física) para diferentes processadores
• Sistemas reconfiguráveis dinamicamente– Hardware adaptado em run-time às necessidades de um aplicação
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
156
FPGAs XILINX (www.xilinx.com)• Introduzidas em 1985
– configuração por SRAM– blocos lógicos configuráveis baseados em LUTs– abundância de flip-flops– arquitectura do tipo array, canais de interligação abundantes– RAM distribuída– circuitos dedicados para operações aritméticas– interconexões hierárquicas– capacidade de readback (configuração e nós internos)
• Famílias actuais– Spartan, Spartan II, Spartan3, VirteII-Pro, Virtex4, Virtex5– Variadas versões: processadores embutidos, orientados para
DSP, reduzido consumo de energia
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
157
Spartan3
Datasheet: http://direct.xilinx.com/bvdocs/publications/ds099.pdf
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
158
FPGAs Spartan3
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
159
Arquitectura da Spartan3
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
160
Número de I/Os
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
161
I/O Signal Standards (single-ended)
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
162
I/O Signal Standards (differencial)
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
163
Spartan3FT256
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
164
I/O
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
165
I/O (cont.)
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
166
Estrutura do CLB(Configurable Logic Block)
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
167
Slice
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
168
Slice (cont.)
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
169
Interconexões
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
170
ISE Design Summary
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
171
Xilinx Floorplanner
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves
172
Xilinx FPGA Editor