Alternativas de implementación: Estilos Alternativas de implementación: Estilos
Alternativas de implementación: Estilos µprocesador INTEL 386: 3 estilos de layout Datapath: ALU 2-D arrays: Memoria Standard Cells: Lógica En general es normal encontrar varios estilos de diseño en un ASIC
Estilos de Diseño VLSI Full Custom
Estilos de Diseño VLSI Estilos de Diseño VLSI
Semi-Custom: Standard Cells Semi-Custom: Standard Cells
Semi-Custom: Standard Cells Semi-Custom: Standard Cells
Semi-Custom: Standard Cells SCs: 2ML SCs: 3ML Estilos de Diseño VLSI
Semi-Custom: Gate Arrays Channeled Sea-of-Gates Embedded/Structured Semi-Custom: Gate Arrays Sea-of-Gates Embedded/Structured
Semi-Custom: Gate Arrays Semi-Custom: Gate Arrays
Semi-Custom: Gate Arrays (Sea of Gates) Gate-isolated Oxide-isolated Estilos de Diseño VLSI
Lógica Programable Circuito integrado digital programable Componentes Standard off-the-shelf La funcionalidad deseada se consigue configurando bloques on-chip e interconexiones Ventajas (comparado con un ASIC full o semi custom- ): Costes de desarrollo bajos Ciclo de desarrollo corto La reprogramación suele ser posible Tipos de Lógica Programable: Complex PLDs (CPLD) Field programmable Gate Arrays (FPGA) CPLD-Arquitectura PLD: Suma de productos Matriz AND programable seguida de puertas OR A B C Interruptor programable o fusible f = A B C + A B C 1 f 2 = A B + A B C Plano AND
CPLD-Arquitectura Macrocelda: puede implementar circuitos combinacionales y secuenciales A B C Select Enable f 1 Flip-flop D Q MUX Clock Plano AND CPLD-Arquitectura Un CPLD es la integración en un único chip de varios bloques PLD con una interconexión programable. I/O Block PLD Block PLD Block I/O Block Interconnection Matrix I/O Block PLD Block PLD Block I/O Block
CPLD - Ejemplo - Altera MAX7000 EPM7000 Series Block Diagram CPLD - Ejemplo - Altera MAX7000 EPM7000 Series Device Macrocell
FPGA - Arquitectura Componentes en una FPGA: Bloques lógicos programables Implementan lógica combinacional y secuencial Interconexión programable Líneas para conexión de las entradas y salidas de los bloques lógicos I/Os programables Bloques de entrada/salida en la periferia del sispositivo para conexiones con el exterior Otros: Distribución del reloj Bloques de memoria empotrados Bloques de proposito específico I/O Logic block Interconnection switches I/O I/O - DSP blocks: multiplicadores HW, sumadores y registros - Microprocesadores/ microcontroladores empotrados - Transceivers de alta velocidad I/O FPGA - Logic Element LUT para implementar lógica combinacional Registro para circuitos secuenciales Lógica adicional (no se muestra): Lógica de Carry para funciones aritmeticas Lógica de Expansión para funciones que requieran más de 4 entradas Select Out A B C LUT D Q D Clock
FPGA Look-up tables LUT Una Look-up table con N entradas puede usarse para implementar cualquier función combinacional de N entradas Una LUT se programa con la tabla de la verdad A B C D Z 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 Truth-table A B C LUT Z D LUT implementation A B C D Gate implementation Z FPGA Look-up tables LUT X1 X2 Celdas de memoria para configuración X3 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 F Ejemplo: LUT de 3 entradas Basada en multiplexores (transistores de paso) Entradas de la LUT almacenadas en celdas de memoria para configuración
FPGA Interconexión programable ACTEL ANTIFUSE QUICKLOGIC METAL-METAL ANTIFUSE XILINX SRAM EEPROM FPGA Interconexión programable
FPGA Interconexión programable FPGA Interconexión programable
FPGA Interconexión programable FPGA Interconexión programable Antes de la prog. Despues de la prog.
FPGA Ejemplos: Altera Stratix - Floorplan FPGA Ejemplos: Altera Stratix Logic Element
FPGA Ejemplos: Altera Stratix - LAB Un LAB agrupa 10 LEs conectados con interconexion rapida. Estructura de interconexión Link directo entre LABs y bloques adyacentes Interconexión fila 4, 8, y 24 bloques izquierda y derecha Interconexión columna 4, 8, y 16 bloques arriba y abajo FPGA Ejemplos: Altera Stratix Memoria empotrada Dual-Port RAM M512 512 x 1 M4K 4096 x 1 M-RAM 64K x 8
Fabricantes de FPGAs y familias de dispositivos Xilinx Virtex-II/Virtex-4: Featurepacked high-performance SRAM-based FPGA Spartan 3: low-cost feature reduced version CoolRunner: CPLDs Altera Stratix/Stratix-II High-performance SRAMbased FPGAs Cyclone/Cyclone-II Low-cost feature reduced version for cost-critical applications MAX3000/7000 CPLDs MAX-II: Flash-based FPGA Actel Anti-fuse based FPGAs Radiation tolerant Flash-based FPGAs Lattice Flash-based FPGAs CPLDs (EEPROM) QuickLogic ViaLink-based FPGAs Estado del arte en FPGAs 90 nm process on 300 mm wafers Lower cost per function (LUT + register) Smaller and faster transistors: Higher speed System speed up to 500 MHz Mainly through smart interconnects, clock management, dedicated circuits, flexible I/O. Integrated transceivers running at 10 Gigabits/sec More Logic and Better Features: >100,000 LUTs & flip-flops >200 embedded RAMs, and same number 18 x 18 multipliers 1156 pins (balls) with >800 GP I/O 50 I/O standards, incl. LVDS with internal termination 16 low-skew global clock lines Multiple clock management circuits On-chip microprocessor(s) and multi-gbps transceivers
Ultimos dispositivos: Capacidad & características Xilinx Virtex-4 90nm process Up to 960 I/Os >200000 logic cells Up to 552 18kb block RAMs (~10Mb RAM) 192 DSP slices (18x18 multiplieraccumulator) 20 digital clock managers (DCM) 24 high-speed serial transceivers (622Mb/s to 11.1Gb/s) Up to four PowerPC 405 cores Altera Stratix-II 90nm process Up to 1170 I/Os 179000 logic elements 9.6Mb embedded RAM 96 DSP blocks: 380 18x18 multipliers 12 PLLs Serial I/O up to 1Gb/s No hard processor cores Comparación estilos de diseño
Las ventajas de las FPGAs Por requisitos, las FPGAs cumplen la mayoría de expectativas del mercado