Que es una FPGA? Las FPGA’s (Field Programmable Gate Array) Son dispositivos lógicos de propósito general programable por los usuarios, compuesto de bloques lógicos comunicados por conexiones programables. El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas. Microelectrónica - Universidad Francisco de Paula Santander Ing. Gabriel Sánchez Suárez - [email protected] Es un circuito integrado que contienen celdas lógicas idénticas (64 hasta 8’000.000) que se puede ver como componentes estándar Las celdas lógicas se interconectan por medio de una matriz de cables y switches programables * Estructura : arreglo bidimensional de bloques lógicos rodeados por conexiones configurables. Una familia contiene idénticos bloques lógicos y conexiones , pero difieren en el tamaño del arreglo. * Tecnología de programación : se programa por la carga de celdas de memoria de configuración, que controlan la lógica e interconexiones. * Características : volatilidad, no volatilidad, memoria externa, reprogramabilidad, proceso de fabricación estándar y bajo consumo. FPGAs diponibles en el mercado Por las formas de programación: Static RAM, Antifusibles y (E)EPROM Estructura de una FPGA (Familia XC4000 Xilinx) Organización por CLBs Rutas de interconexión programables Bloques de Entrada y Salida Bloques de RAM Arquitectura del dispositivo El CHIP de la FPGA Arreglo 2d de CLBs rodeados por IOB. La palabra de configuración se carga en las celdas de memoria de configuración formando las funciones lógicas en una tabla y controlan las interconexiones en PIPs y multiplexores. Arquitectura del dispositivo Bloque lógico CLB (Configurable Logic Block) Contiene una tabla de n entradas Esta rodeado por canales del cableado (varios segmentos) La salida del CLB es conectada a segmentos cableados usando PIPs Si el bloque no se usa, todos los PIPs se desonectan y el bloque no genera señal a ningún segmento, y el segmento puede ser usado para otras señales. Un bloque esta formado por: * Implementa lógica combinacional 2n por cada celda de memoria. Usando n entradas 2^2n. * Se programa cargando el patrón de bits de la tabla de verdad de la función. * Las entradas no usadas se mantienen a nivel bajo o se duplica la lógica. * Punto de Interconexión Programables (PIP) *Multiplexores ¿Qué hace una celda lógica? Su arquitectura varia entre familias de dispositivos Cada una combina entradas binarias a una o dos salidas En la mayoría de las familias, el usuario puede colocar un registro a la salida de una celda, para implementar lógica secuencial La lógica combinacional de las celdas se puede implementar físicamente como una pequeña memoria (LUT) o como un conjunto de multiplexore y compuertas Cómo se crean los programas para FPGAs? Hay software especial para definir las conexiones de os switches y las funciones de las celdas lógicas. El software traduce diagramas esquemáticos del usuario o código de lenguaje de descripción de hardware, y luego valida el diseño traducido El software permite al usuario influenciar una implementación y validarla para obtener mayor eficiencia y utilización del dispositivo Herramientas de diseño Lenguajes: VHDL, Verilog, HandelC Ambientes integrados: Xilinx ISE, Max Plus, Libero Simuladores: Active HDL, ModelSim Síntesis: Synopsis FPGA Compiler, Synplicity, Leonardo Densidades de algunas FPGAs Spartan II Spartan IIE Virtex E Virtex E Virtex II Virtex II XC2S15 XC2S150E XCV50E XCV3200E XC2V40 XC2V8000 15.000* 150.000 72.000 4’047.000 40.000 8’000.000 Costos del algunas FPGAs Varían entre 1 y 8.000 dólares Spartan 2000 compuertas 1 dólar Spartan 40.000 compuertas 20 dólares Virtex 300.000 compuertas 300 dólares Virtex II Pro 8 millones de compuertas 8000 dólares