Story Transcript
Arquitectura de FPGAs Diseño Lógico 2 - 2015 Instituto de Ingeniería Eléctrica Facultad de Ingeniería Universidad de la República
PLD / FPGA
- Mid 80's: 8 a 16 funciones lógicas - En el lab: 15000 funciones lógicas + memoria + multiplicadores
Lo básico ●
Lógica combinatoria
●
Memoria
Funciones combinatorias a
b
c
f(a, b, c)
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
Lógica | Suma de productos ●
ROM
●
PLA (Programmable Logic Array): • AND programable - OR programable.
●
PAL (Programmable Array Logic): • AND programable - OR fijo
Lógica | ROM
Rom con: m bits de direcciones y n bits de ancho de palabra = n funciones de m bits
Lógica | Suma de productos (PLA)
Lógica | Plano OR fijo (PAL)
Lógica | LUT b0
H0(a) G0(a, b)
b1 H1(a)
b2 b3
G(a, b, c)
b4
H2(a)
b5 b6
G1(a, b)
H3(a)
b7
a
b
c
¿CPLD o FPGA? ● ● ●
PLD: Programmable Logic Device CPLD: Complex PLD FPGA: Field Programmable Gate Array Es una cuestión de nombres. En general se utiliza FPGA para dispositivos de configuración volátil con celdas de arquitectura Look-up Table y PLD (o CPLD = Complex PLD) para dispositivos de configuración no volátil y celdas del tipo de suma de productos.
Memoria
Elemento Lógico
Logic Element - Cyclone III
Interconexiones
Jerarquía de conexiones ● •
• •
Conexiones configurables
Dentro de cada celda para determinar la función lógica Entre celdas vecinas Jerarquía en varios niveles de grupos de celdas y bloques ●
Conexiones disponibles
•
Abundantes entre celdas vecinas
•
Escasas entre celdas lejanas
LAB - Cyclone III
Manejo de señales de reloj ●
● • •
•
Entradas y bloques dedicados para minimizar “jitter”, “skew”, y distorsión del ciclo de trabajo. PLLs y Digital Clock Managers
Multiplicar o dividir frecuencia Fase y retardo programables para ajustarse a la temporización de señales de entrada Conmutar entre diferentes fuentes de reloj
Más Bloques ●
Multiplicadores y DSP
●
Bloques de memoria
● ●
●
●
Procesadores Interfaces comunicación serie de alta velocidad (serializadores/deserializadores, 8B/10B) Bloques de I/O (adaptación impedancias, niveles de tensión, registros, control de slew-rate, etc.) Facilidades para TEST (BIST)
Estructura interna Altera
Fuente: http://www.altera.com/products/devices/stratix2/st2-index.jsp
Estructura interna Xilinx
Fuente: Virtex-II Pro and Virtex-II Pro X Data Sheet
Ejemplo Chip Cyclone III de Altera en placa DE0.
Cyclone III
•
●
Arquitectura Lookup Table y configuración volátil
●
Jerarquía de bloques lógicos y conexiones
Logic Elements (LE) • Logic Cells (LC) o Macrocell en otras familias
•
Varios LEs forman un Logic Array Block (LAB) • Configurable Logic Block (CLB) en Xilinx
• en Cyclone III – 1 LAB = 16 LE
Otros bloques – Cyclone III ●
Memory Blocks (M9K)
•
Bloques de 8 Kbits + paridad
•
Organización configurable
•
Ancho de palabra (1 a 36)
•
ROM o RAM
•
Fifo
•
Uno o dos puertos ●
Multiplicadores
•
Punto fijo con o sin signo.
•
Un mult. 18 x 18 o dos 9 x 9
•
Conexión en cascada
Recapitulando ●
Bloques Lógicos
•
Función combinatoria (Suma de productos o LUT)
•
FF
•
Multiplexores ●
Jerarquía de Buses
•
de interconexión de bloques
•
de distribución de señales de control (clk, clr, enable) ●
Memorias
●
Bloques de E/S (buffers, voltaje de salida)
●
Manejo de relojes, multiplicadores, ...
Familias Altera ●
Non-volatile: MAX 10
●
Low Cost +Performance: Cyclone
●
Balance costo, power, perf.: Arria
●
High-End: Stratix
U$ 26+ (2013) U$ 58+ (2015)
U$ 141+
U$ 280+
U$2K+
Fuente de precios: buyaltera.com
Stratix (obsoleto) Feature
Stratix IV E
Stratix III L
Stratix III E
Stratix II
Stratix
Equivalent Logic Elements
105,600 to 681,100
47,500 to 338,000
47,500 to 254,400
15,600 to 179,400
10,570 to 79,040
Adaptive Logic Modules
42,240 to 272,440
19,000 to 135,200
19,000 to 101,760
6,240 to 71,760
N/A
Total RAM (Kbits)
8,244 to 22,977
1,836 to 16,272
5,328 to 14,688
410 to 9,163
899 to 7,253
384 to 896
48 to 384
24 to 88
125 to 1,000
840
Max 18 x 18 Multipliers
512 to 1,360 216 to 576
LVDS Data Rates 150 to 1,600 124 to 1,250 125 to 1,250 (Mbps) Precio [U$S]
1K - 13K
2K – 3.5K
0.2K – 5K
Ventajas ●
Reducción en la cantidad de componentes
•
Menor área de circuito impreso
•
Menor costo de montaje
•
Mayor confiabilidad ●
Reprogramabilidad
•
Cambios de diseño sin modificar impreso
•
Diseño temprano para estándares no maduros ●
Stock más reducido
Dominios de aplicación ●
“Glue Logic”
●
Circuitos digitales rápidos
●
Aceleradores de Cálculo
●
Procesamiento de señales
●
Prototipado de otros ASICs
●
System on a Chip (SoC)
400MB/s LVDS sin gastar USD 25K
Fuente: “Hacking the Xbox. An Introduction to Reverse Engineering” Andrew "bunnie" Huang
Fuente: “Hacking the Xbox. An Introduction to Reverse Engineering” Andrew "bunnie" Huang
100MB/s
ASICs ●
Full Custom
●
Standard Cells
●
Gate Arrays
●
Circuitos Programables (PLD, FPGA) Orden decreciente de costos fijos (NRE) y tiempo de desarrollo
ASIC vs FPGA
Oferta de prototipado en FPGAs y fabricación en chips "más duros" (menor costo, menor consumo)
Fuente: http://www.xilinx.com/
Xilinx EasyPath Flexibility to make ECO changes
Support for Dual Bitstreams
Algunos productos que utilizan FPGAs
Interfaces EXTRON
Adquisidores NI
Procesadores Mark Levinson
Touch Panels AMX
Lectura adicional Maxfield, Clive; “FPGAs”, Ed. Newnes, 2008, Chapter 2: “FPGA Architectures”. Huang, A. “Hacking the Xbox. An Introduction to Reverse Engineering” http://bunniefoo.com/nostarch/HackingTh eXbox_Free.pdf
Precauciones usando la placa ● •
Mesa limpia, estática, etc. ●
•
Precauciones habituales: EP3C16:
Conexiones con entradas ya soldadas: Hay que evitar que el chip las maneje como salidas. Aunque no se utilicen, definirlas como entradas o verificar que por defecto las asigne tri-state con weak pull-up