Arquitectura de FPGAs - Facultad de Ingeniería

Anuncio
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
Descargar