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