Arreglo de Compuertas Programables en el Campo Field Programmable Gate Array (FPGA) Introducción ASICs: Costo. Tiempo de Desarrollo. PLDs: Muy buena aceptacion. Pero muy chicos. CPLDs: Muy rapidos, pero todavía chicos. FPGAs: Xilinx Inc., 1985. FPGA 2010 Altera Inc. Actel Corp. Lucent Technology Philips Semiconductors Intel Corp. Motorola Semiconductors QuickLogic Cypress Lattice Semiconductors AMD Vantis Xilinx Sistemas Digitales II / Electrónica Digital II 2 Que es un FPGA? Logica y conexiones programables Programacion en circuito (ISP) Bloques dedicados a: Memoria Control de reloj Operaciones MAC, bloques DSP Procesadores embebidos Comunicacion serie de Gigabits/s Otros bloques especificos Sistemas Digitales II / Electrónica Digital II 3 Que es un FGPA? Hasta 1200 E/S. Hasta 40 estándares de E/S soportados. E/S Diferenciales Hasta 40.000 Flips-Flops y Look-Up-Tables (LUTs) Soft-Coded Procesador, 8051, ARM3 PLL y DLL disponibles (2-12) por dispositivo. Hasta 550MHz. Impedancia de salida programable Muy usados en prototipos de ASICs debido a su alta densidad y su re-programabilidad. Ayudan a solucionar errores de diseño sin modificar el Printed Circuit Board (PCB). Sistemas Digitales II / Electrónica Digital II 4 Flujo de Trabajo con FPGA Back-end Tools (FPGA specific tools) Synthesis & Optimization Specifications VHDL Code / Sch Place & Route Compilation Timing Verification Simulation & Verification Front-end Tools (general purpose tools) Sistemas Digitales II / Electrónica Digital II FPGA Configuration 5 Estructura General de un FPGA Estructura y componentes de un FPGA de Xilinx Sistemas Digitales II / Electrónica Digital II 6 Estructura General de un FPGA Estructura y componentes de un FPGA de Altera Sistemas Digitales II / Electrónica Digital II 7 Similaridad entre FPGAs Sistemas Digitales II / Electrónica Digital II 8 Vista interna de un FPGA (Spartan 3) Sistemas Digitales II / Electrónica Digital II 9 Familia del Virtex II Sistemas Digitales II / Electrónica Digital II 10 Celda de Configuración del FPGA Elemento básico no-lógico Determina la configuración de cada elemento lógico Determina la configuración de los elementos de ruteo e interconexiones Sistemas Digitales II / Electrónica Digital II 11 Celdas de Configuración del FPGA Tipos de Celdas SRAM Anti-Fuse Flash Flash y SRAM Sistemas Digitales II / Electrónica Digital II 12 Celda de Configuración Tipo SRAM La configuración de los elementos lógicos y los de ruteo e interconexión son almacenados en celdas SRAMs Ventajas: Proceso de fabricación estándar Costos muy bajos Proceso súper-comprobado Alto rendimiento Infinitamente reprogramable Programable en circuito (In System Programable) Rápida y fácil actualización Sistemas Digitales II / Electrónica Digital II 13 Celda de Configuración tipo SRAM Desventajas: Celda volátil Simple glitch en Vcc desconfigura el FPGA Retardos en ruteo largos debido al retardo de la celda SRAM Necesidad de una memoria de configuración externa Tiempo de configuración lento ~500ms Inseguridad debido a la conexión FPGA-Memoria de configuración que puede ser ‘leída’ Sistemas Digitales II / Electrónica Digital II 14 Celda de Configuración Tipo Anti-Fuse La configuración de los elementos lógicos y los de ruteo e interconexión son almacenados en celdas Anti-Fuse (ACTEL) Sistemas Digitales II / Electrónica Digital II 15 Celda de Configuración Tipo Anti-Fuse Ventajas: No es volátil Retardos de conexiones de ruteo son pequeños No sensibles a bombardeo de partículas iónicas Muy usados en sistemas espaciales Sistemas Digitales II / Electrónica Digital II 16 Celda de Configuración Tipo Anti-Fuse Desventajas: Proceso de fabricación específico Costos elevados One-Time-Programmable (OTP) Proceso de verificacion muy largo y riguroso Proceso muy caro No sensibles a bombardeo de partículas iónicas Muy usados en sistemas espaciales Sistemas Digitales II / Electrónica Digital II 17 Celda de Configuración Tipo Flash La configuración de los elementos lógicos y los de ruteo e interconexión son almacenados en celdas Flash Sistemas Digitales II / Electrónica Digital II 18 Celda de Configuración Tipo Flash-SRAM Ventajas: Prácticamente ‘no es volátil’ Tiempo de configuración es bastante bajo (~<1ms) Se pueden configurar solo las celdas SRAM Durante el proceso de debug o prototipo No se necesita una memoria de configuración externa Menos espacio en el PCB Sistema no vulnerable – Sistema seguro Sistemas Digitales II / Electrónica Digital II 19 Celda de Configuración Tipo Flash-SRAM Desventajas: FPGA es caro Proceso se esta haciendo mas común últimamente Sistemas Digitales II / Electrónica Digital II 20 Celda de Configuración Tipo Flash-SRAM Las celdas Flash se usan para guardar los datos de configuración del FPGA Las celdas SRAM para la configuración de los elementos lógicos y los de ruteo e interconexión Cuando de alimenta el FPGA, las celdas SRAM se configuran en forma casi instantanea desde las celdas Flash. Sistemas Digitales II / Electrónica Digital II 21 Celda de Configuración Tipo Flash Ventajas: No es volátil Retardos de conexiones de ruteo son pequeños Sensibilidad baja a bombardeo de partículas iónicas Usados en sistemas espaciales Sistemas Digitales II / Electrónica Digital II 22 Celda de Configuración Tipo Flash Desventajas: FPGA es bastante caro Proceso se esta haciendo mas común últimamente Proceso de reconfiguración bastante largo (~3-5 seg) Sistemas Digitales II / Electrónica Digital II 23 Comparación Tipos de Celdas SRAM Anti_fuse Flash Velocidad Más lenta Mejor Más lenta Potencia Varía/Peor Segunda Mejor Mejor Densidad Mejor Segunda Mejor Media Tolerancia a la Radiación Peor Mejor Media Tamaño celda ruteo 1 1/10 1/7 Memoria Externa Si No No Reprogramable Si No Si Sistemas Digitales II / Electrónica Digital II 24 Transicion FPGA a ASIC Producciones de grandes volumenes, +500.000/Y HardCopy – Altera EasyPath - Xilinx Arquitectura similar al FPGA pero no programable ! Bajo Costo Baja Potencia(*) (*) Igloo Sistemas Digitales II / Electrónica Digital II 25 Arquitectura de los FPGAs Arquitectura en general es similar para FPGAs de diferentes fabricantes. Aunque cada fabricante diga que su arquitectura es la mejor. .. . Para diferenciarse cada fabricante ofrece ….. El mas beneficiado: El usuario final Sistemas Digitales II / Electrónica Digital II 26 Arquitectura de los FPGAs Se verá en detalla la arquitectura de los FPGAs de Xilinx Spartan 2-3-6 Virtex 2-2P-4-5-6 Medio rendimiento Barato Alto rendimiento Caro Sistemas Digitales II / Electrónica Digital II 27 Arquitectura de los FPGAs Sistemas Digitales II / Electrónica Digital II 28 Bloque Lógico Configurable (CLB) CLB Sistemas Digitales II / Electrónica Digital II 29 Bloque Lógico Configurable (CLB) Sistemas Digitales II / Electrónica Digital II 30 Bloque Lógico Configurable - SLICEL Dos LUTs Dos flip-flops Cuatro salidas Dos combinacionales Dos registradas Entradas de control para f-fs Entradas para la LUTs E/S para la cadena de acarreo Sistemas Digitales II / Electrónica Digital II 31 Tabla de Búsqueda–Look-up Table (LUT) A B C D Z Generador de Funciones=LUT 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 . . . 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 Proceso transparente para el disenador Sistemas Digitales II / Electrónica Digital II 32 Tabla de Búsqueda–Look-up Table (LUT) F5Mux F6Mux FiMux F7Mux F8Mux Sistemas Digitales II / Electrónica Digital II 33 Elementos de Almacenamiento del SLICE Sistemas Digitales II / Electrónica Digital II 34 Lógica de Acarreo (Carry In- Carry Out) Sistemas Digitales II / Electrónica Digital II 35 SLICEL/M y sus Componentes Sistemas Digitales II / Electrónica Digital II 36 Detalle de un SLICEM Sistemas Digitales II / Electrónica Digital II 37 Virtex II – Detalle de Mitad del Slice Sistemas Digitales II / Electrónica Digital II 38 Vista de un CLB real Sistemas Digitales II / Electrónica Digital II 39 Detalle del Bloque E/S (IOB) Sistemas Digitales II / Electrónica Digital II 40 Bloque E/S real Sistemas Digitales II / Electrónica Digital II 41 Estandares de E/S Soportados (Spartan 3) Estandard Descripción Uso Buffer Entrada Buffer Salida LVTTL Low-Voltage TTL Propósito general 3.3V LVTTL Push-pull LVCMOS Low-Voltage CMOS Propósito general 3.3V, 2.5V, 1.8V, 1.5V CMOS Push-pull PCI Peripheral Component Interconnect Bus PCI LVTTL Push-pull GTL Gunning Transceiver Logic Bus alta velocidad, backplane VREF Open Drain GTL+ GTL Plus Intel Pentium Pro VREF Open Drain HSTL High Speed Transceiver Logic Interface con SRAM VREF Push-pull SSTL3 Stub Series Terminated Logic 3.3V SRAM/SDRAM VREF Push-pull SSTL2 Stub Series Terminated Logic 2.5V SRAM/SDRAM VREF Push-pull SSTL18 Stub Series Terminated Logic 1.8V SRAM/SDRAM VREF Push-pull Estandares Diferenciales LVDS Low-Voltage Differential Signaling High speed interface Diferencial Diferencial BLVDS Bus LVDS Multipoint LVDS Diferencial Diferencial LVPECL Low Voltage Positive ECL High-speed clocks Diferencial Diferencial LDT Lightning Data Transport Bidireccional serie/paralelo (Hyper Transport) Diferencial Diferencial Mini-LVDS Mini-LVDS Flat Panel Displays Diferencial Diferencial LVDSExt Extensión de LVDS Hard Drive interface Diferencial Diferencial RSDS Reduced Swing Differencial Signaling DVI/HDMI Diferencial Diferencial Sistemas Digitales II / Electrónica Digital II 42 Bancos de E/S Bancos E/S Virtex II Sistemas Digitales II / Electrónica Digital II 43 Bloques de Memoria (BRAM) Sistemas Digitales II / Electrónica Digital II 44 Opciones de Configuración de Memoria Sistemas Digitales II / Electrónica Digital II 45 Bloques de Memoria (BRAM) Diferentes configuraciones de relación datos/direcciones que se pueden implementar en los BRAMs 1 4 2 0 0 0 4Kx4 4.095 8Kx2 8 0 8.191 16Kx1 2Kx8 2047 16+2 0 16.383 1023 Sistemas Digitales II / Electrónica Digital II 46 Bloques de Memoria (BRAM) Principales aplicaciones de los BRAM: Almacenamiento de programas para procesadores embebidos en el FPGA Rd/Wr variables durante cálculos matemáticos, por ej. Coeficientes para filtros FIR Buffers circulares Registros de desplazamiento o muy largos o muy anchos Líneas de retardo Sistemas Digitales II / Electrónica Digital II 47 Bloques de Memoria (BRAM)- Cont. Principales aplicaciones de los BRAM: Realización de MEF usando técnicas de microprogramación Contadores muy largos y rápidos Memorias Direccionables por Contenido (CAM) de alto rendimiento de Rd/Wr Almacenamiento de formas de onda o tablas de funciones trigonométricas para generar salidas tipo Direct Digital Synthesis (DDS) (Síntesis Digital Directa) Sistemas Digitales II / Electrónica Digital II 48 Bloques DSP P=AxB 36 = 18 x 18 Pipelining (opcional) Sistemas Digitales II / Electrónica Digital II 49 Bloque DSP – Avanzado Virtex-5 Sistemas Digitales II / Electrónica Digital II 50 Interconexiones - Ruteo Sistemas Digitales II / Electrónica Digital II 51 Interconexiones - Ruteo Transistor de Paso Y0 Y M PIP Sistemas Digitales II / Electrónica Digital II 52 Interconexiones - Ruteo Sistemas Digitales II / Electrónica Digital II 53 Interconexiones - Ruteo Sistemas Digitales II / Electrónica Digital II 54 Interconexiones - Ruteo Sistemas Digitales II / Electrónica Digital II 55 Interconexiones - Ruteo Sistemas Digitales II / Electrónica Digital II 56 Interconexiones - Ruteo Sistemas Digitales II / Electrónica Digital II 57 Generacion de Reloj–Digital Clock Manager Bloque dedicado exclusivamente a funciones de control y generación de señal de reloj para la lógica interna del FPGA CLKIN CLK0 CLKFB CLK2X CLK2X180 DCM CLKDIV CLKFX CLKFX180 Sistemas Digitales II / Electrónica Digital II 58 Generación de Reloj Las principales funciones del DCM se pueden resumir en: Eliminar el sesgo del reloj (clock skew), ya sea dentro del FPGA o con componentes externos Producir corrimiento de fase (Phase shifting) de una señal de reloj, ya sea por una fracción del periodo de reloj o por incrementos fijos Multiplicar o dividir la frecuencia de entrada del reloj, generando una frecuencia completamente nueva Sistemas Digitales II / Electrónica Digital II 59 Generación de Reloj Las principales funciones del DCM se pueden resumir en: Acondicionar la señal de entrada del reloj, asegurando un reloj limpio, con un ciclo de trabajo del 50% Amplificar de nuevo (rebuffer) una señal de reloj, normalmente para eliminar el sesgo (deskew) Convertir la señal de reloj de entrada a un estándar diferente, por ejemplo, de LVPECL a LVTTL Sistemas Digitales II / Electrónica Digital II 60 Ruteo de Reloj Dedicado H G F E DCM 4 8 8 8 8 8 8 8 H G F E D C B A DCM 8 4 DCM H G F E D C B A DCM D C B A Sistemas Digitales II / Electrónica Digital II 61 Ruteo de Reloj Dedicado Ejemplo de Ruteo de reloj dedicado Applicacion real Sistemas Digitales II / Electrónica Digital II 62 Aplicaciones con DCM–Correción de Skew D Other Device on the board Sistemas Digitales II / Electrónica Digital II 63 Aplicaciones con DCM–Correción de Skew D Other Device on the board A) Esquema de configuración de los DCMs B) Alineamiento ideal del reloj C) Retardando el reloj, parece un adelantamiento Sistemas Digitales II / Electrónica Digital II 64 Configuración del FPGA – Master Mode Sistemas Digitales II / Electrónica Digital II 65 Configuración del FPGA – Slave Mode Sistemas Digitales II / Electrónica Digital II 66 Vista interna de un FPGA (Spartan 3) Sistemas Digitales II / Electrónica Digital II 67 Xilinx Virtex-5 Applications Xilinx XUP-V5 (UNSJ) Sistemas Digitales II / Electrónica Digital II 68 ALICE Experiment Time Projection Chamber Optical splitters Inner Tracking System Silicon Strip detector Silicon Drift detector Silicon Pixel Detector Pixel Trigger crate Sistemas Digitales II / Electrónica Digital II Printed with permission - A. Kluge, G. Aglieri Rinella 69 ALICE – Pixel Trigger Crate Sistemas Digitales II / Electrónica Digital II 70