Dispositivos lógicos programables (PLDs( PLDs) SPLDs (Dispositivos lógicos programables simples) Estructuras lógicas basadas en planos AND-OR CPLDs (Dispositivos lógicos programables complejos) Combinan varios SPLDs interconectados mediante una matriz de conmutación fija o programable FPGAs (Field Programmable Gate Arrays) Incluyen bloques lógicos combinacionales, elementos de memoria y una red de interconexión programable
Dispositivos lógicos programables simples (SPLDs( SPLDs) I 5 I 4 I 3 I 2 I 1 I 0 Plano OR programable I 3 I 2 I 1 I 0 Plano OR programable I 5 I 4 I 3 I 2 I 1 I 0 Plano OR fijo Plano AND programable Plano AND fijo Plano AND programable O 3 O 2 O 1 O 0 O 3 O 2 O 1 O 0 O 3 O 2 O 1 O 0 PLA PROM PAL Fuente: Digital Integrated Circuits: A design perspective, Jan M. Rabaey
PLDs complejos (CPLDs( CPLDs) Proporcionan IO Blocks Número elevado de puertas lógicas LB LB Facilidad de interconexión IO Blocks LB LB SM LB LB IO Blocks Temporización simple y determinista Herramientas de diseño simples LB LB Ciclos de desarrollo cortos Costes de implementación bajos IO Blocks
Field Programmable Gate Arrays (FPGAs) IO Blocks (IOBs) Bloques de E/S Interfaz con los terminales del dispositivo IO Blocks IO Blocks (s) Bloques lógicos configurables Elementos funcionales para implementar la lógica del usuario IO Blocks Red de interconexión Caminos para interconectar las entradas y salidas de s e IOBs
Field Programmable Gate Arrays (FPGAs) IO Blocks IO Blocks IO Blocks IO Blocks Xilinx XC4000ex Fuente: Digital Integrated Circuits: A design perspective, Jan M. Rabaey
Tipos de FPGAs Arquitectura Gate array (filas) Matriz simétrica Mar de puertas Interconexión Canales de routing Red de interconexión Tipo de bloque lógico (granularidad) Puertas lógicas Multiplexores Tabla de búsqueda (LUT) Técnica de programación Antifusibles Memoria no volátil (EPROM, EEPROM) Memoria RAM
FPGAs comerciales Compañía Arquitectura Bloques lógicos Tecnología de programación Actel Gate array Multiplexores fusibles AMD PLDs jerárquicos PLDs EEPROM Altera PLDs jerárquicos PLDs EPROM Plessey Mar de puertas Puertas NAND RAM Xilinx Matriz simétrica Tabla look-up RAM
FPGAs de Xilinx Familia Características Diseño digital Procesadores empotrados Arquitectura computadores DSP SOC XC4000 1.6K 85K puertas Spartan 5K 40K puertas Spartan-II 15K 300K puertas BRAM: 16K 64K Virtex 58K 1.2M puertas BRAM: 32K 132K Virtex-II 40K 8M puertas BRAM: 72K 3M 4 168 multiplicadores Virtex-II Pro Virtex-II + 0 4 PPC 4 24 Rocket I/O transc. 12 556 multiplicadores
XC4000 & Spartan Incorpora: - memoria RAM distribuida - lógica de acarreo - buses 3-state internos Velocidad de operación: 80 MHz IEEE 1149.1 (Boundary scan) XC4000E: 5 V. XC4000XL: 3.3 V. (0.35 µm) XC4000XE: 2.5 V. (0.25 µm) Spartan: 5 V. Spartan-XL: 3.3 V.
XC4000 & Spartan (s) LUTs multiplexores FFs
XC4000 & Spartan (IOBs) Bidireccional TTL LVTTL PCI5V PCI3V LVCMOS3V Salida Entrada
XC4000 & Spartan (Red de interconexión) Routing global Routing de s Routing de IOBs Programmable switch matrix
XC4000 & Spartan (Red de interconexión) Spartan/XL
XC4000 & Spartan (RAM distribuida) Modo 16x1 16x2 32x1 Single-port Dual-port - - Dual-port Single-port
Spartan-II & Virtex Incorpora: - bloques de memoria RAM - 4 DLL (Delay Locked Loop) - lógica de acarreo - soporte para multiplicadores Velocidad de operación: 200 MHz 16/19 interfaces estándar Spartan-II: 2.5 V. - 0.25 µm - (200K) Spartan-IIE: 1.8 V. - 0.22 µm - (300K) Virtex: 2.5 V. - 0.22 µm - (1M)
Spartan-II & Virtex (s) Slice Cada contiene 2 slices Cada slice contiene 2 celdas lógicas (LC) Cada LC contiene: LUT de 4 entradas Cualquier función de 4 entradas Memoria RAM de 16x1 bit Registro de desplazamiento de 16 bits Elemento de memoria Lógica de control y acarreo LC
Spartan-II & Virtex (s) MUXF5: Combina 2 LUT para formar: Cualquier función de 5 entradas Un multiplexor de 4:1 Determinadas funciones de 9 entradas Slice LUT LUT MUXF5 MUXF6 MUXF6: Combina 2 slices para formar: Cualquier función de 6 entradas Un multiplexor de 8:1 Determinadas funciones de 19 entradas Slice LUT LUT MUXF5
Spartan-II & Virtex (IOBs) Chip to Chip LVTTL, LVCMOS Chip to Memory SSTL2-I, SSTL2-II, SSTL3-I, SSTL3-II, HSTL-I, HSTL-III, HSTL-IV, CTT Chip to Backplane PCI33-5V, PCI33-3.3V, GTL, GTL+, AGP IOB I/O Banks
Spartan-II & Virtex (Bloques de RAM) Bloques de memoria RAM síncrona de doble puerto de 4096-bits Cada bloque tiene una altura de 4 s
Spartan-II & Virtex (Señales de reloj) 4 pads específicos (GCLKPAD) 4 buffers globales (GCLKBUF) Red de distribución de reloj 4 Delay-Locked Loops (CLKDDL)
Spartan-II & Virtex (Señales de reloj) 4 pads específicos (GCLKPAD) 4 buffers globales (GCLKBUF) Red de distribución de reloj 4 Delay-Locked Loops (CLKDDL) DLL (funciones) Doblar la frecuencia de reloj Dividir por 1.5, 2, 2.5, 3, 4, 5, 8 ó 16 Generar relojes de 4 fases Eliminar retrasos en la distribución de reloj (deskew)
Virtex-II & Virtex-II Pro Virtex-II: 1.5/3.3 V - 0.15 µm - 8 ML Incorpora: - RAM: bloques (18K) y distribuida (128x1) - Multiplicadores de 18x18 bits - Digital Clock Manager (DCM) - Active Interconnect Technology - Salida en modo diferencial - Impedancia de I/O programable Velocidad de operación: 420 MHz Velocidad I/O: 840 Mbps Virtex-II Pro: 1.5/2.5 V - 0.13 µm - 9 ML Cu Añade: - RocketIO transceiver (3.125 Gbps) - Power PC RISC (32 bit / 300 MHz) 2, 4 ó 6 columnas de BRAMs y multiplicadores
Virtex-II & Virtex-II Pro (s( s) Cada contiene 4 slices : TBUF TBUF COUT Slice S3 X1Y1 COUT 2 LUTs de 4 entradas 2 Elementos de memoria Lógica de control y acarreo Switch Matrix SHIFT Slice S1 X0Y1 Slice S2 X1Y0 Slice S0 X0Y0 Fast Connects CIN CIN
Virtex-II & Virtex-II Pro (s( s) Slice S3 Slice S2 F5 F5 F6 F8 MUXF8 combina las salidas MUXF7 de 2 s MUXF7 combina los 2 MUXF6 del Slice S1 F5 F7 MUXF6 combina las salidas de 2 slices Slice S0 F5 F6 MUXF5 combina los 2 LUTs de un slice
Virtex-II & Virtex-II Pro (IOBs( IOBs) Switch Matrix IOB PAD4 IOB PAD3 IOB PAD2 IOB PAD1 Cada IOB puede ser usado como entrada y/o salida Dos IOBs pueden configurarse como un par diferencial Estándares para single-ended I/O: - LVTTL, LVCMOS - PCI-X, CardBus, GTL, GTLP, AGP-2X - HSTL, SSTL Estándares para señales diferenciales: - LVDS, BLVDS, ULVDS,LDT, LVPCEL Impedancia salida programable DCI (Digitally controlled impedance)
Virtex-II & Virtex-II Pro (Memoria( Memoria) Up to 400 Mbps/pin DDR & QDR 128x1 18 kb Blocks Distributed RAM bytes Block RAM kilobytes External RAM/CAM megabytes