FPGAs: Arquitectura, Tecnologías y Aplicaciones
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 6,12 KB
FPGAs: Circuitos Digitales Configurables
Las FPGAs (Field-Programmable Gate Arrays) son circuitos digitales universales configurables con arquitecturas distribuidas. Permiten la realización de cualquier sistema combinacional o secuencial, formados por millones de transistores y tecnología CMOS.
Las FPGAs poseen los siguientes componentes principales:
Recursos Lógicos
- Bloques lógicos configurables: Estos bloques son la unidad básica de procesamiento en una FPGA.
- Bloques lógicos internos: Realizan las funciones principales de la aplicación.
- Bloques de E/S: Configuran las características de los terminales externos.
- Circuitos dedicados: Implementan funciones específicas, como memoria o multiplicadores.
Recursos de Interconexión
- Caminos de interconexión: Líneas que conectan los diferentes bloques lógicos.
- Conexiones configurables: Permiten establecer conexiones personalizadas entre los caminos de interconexión.
Arquitecturas de las FPGAs
Existen diferentes arquitecturas de FPGAs, entre las más comunes se encuentran:
- Terraza
- Cuadricula (Manhattan)
- Mar de puertas
Recursos Lógicos en Detalle
Bloques Lógicos Internos
Los bloques lógicos internos se basan en:
- Multiplexores: Realizan funciones lógicas de distinto número de variables. Un CLB (Configurable Logic Block) con muchas entradas y salidas puede implementar una función lógica compleja o varias sencillas en paralelo.
- LUT (Look-Up Tables): Memorias de acceso aleatorio estáticas (SRAM) que almacenan tablas de verdad. Una LUT realiza cualquier función lógica con un número de variables igual o menor al número de entradas de dirección. Ventajas: retardo fijo, limitada por el número de entradas de la función.
Bloques de E/S
Los bloques de E/S permiten configurar la sincronización y las características eléctricas de los terminales E/S. Utilizan tecnología CMOS, TTL y tecnologías de bajo consumo. Cada terminal externo de entrada suele tener un biestable de memorización y la opción de entrada directa o memorizada. Las salidas tienen características similares.
Circuitos Dedicados
Los circuitos dedicados (empotrados) más comunes son:
- Memoria de acceso aleatorio síncrona (BRAM)
- Circuitos PLL analógicos o DLL digitales
- Multiplicadores
- Multiplicadores-Acumuladores (MAC)
- Transceptores serie
Recursos de Interconexión en Detalle
Las líneas de interconexión se conectan entre ellas mediante conexiones configurables, realizadas de distintas formas en función de su tecnología. Esto provoca que los retardos de cada señal sean distintos.
La elección del fabricante de FPGA depende de:
- Retardo: Depende de la longitud de las líneas de interconexión y el número de conexiones configurables.
- Porcentaje de uso de los registros lógicos: Depende de la flexibilidad de las interconexiones.
A mayor número de líneas y conexiones configurables, mayor flexibilidad, pero también mayor coste de la FPGA y mayor retardo.
Tecnología de las FPGAs
Tecnología de Fabricación
Para fabricar las FPGAs se utilizan tecnologías CMOS de menos de 1 micra.
Tecnología de Configuración (Programación)
- EEPROM: No volátil, reprogramable, programación por el usuario en el sistema o fuera de él.
- SRAM: Volátil, reprogramable; programación por el usuario en el sistema, necesaria cada vez que se desconecta la tensión de alimentación.
- Antifusible: No volátil, no reprogramable, mayor protección frente a lectura, mayor tolerancia a la radiación; programación por el usuario 1 sola vez, fuera del sistema mediante un equipo específico; tecnología más rápida que SRAM y con mayor rutabilidad.
Características de las FPGAs
- Disponibilidad estándar
- Configurabilidad, implementación completa del sistema digital por parte del usuario
- Reconfiguración del sistema en algunas tecnologías
- Alta capacidad de integración (hasta 2 millones de bloques lógicos)
- Alto número de terminales E/S
- Coste unitario medio depende de la complejidad de la FPGA y de las unidades
Fases de Implementación con FPGAs
- Asignación de recursos (mapping): Asigna un tipo de componente físico de la FPGA a cada elemento lógico del sistema diseñado.
- Partición del diseño (partitioning): Asigna provisionalmente la posición de cada componente físico de la FPGA necesario para realizar el sistema digital, de acuerdo a la información obtenida en el proceso anterior.
- Posicionamiento (placement): Asigna la colocación definitiva de todos los componentes necesarios para implementar el sistema digital diseñado.
- Enrutado (routing): Asigna los caminos físicos que recorre cada señal. El retardo de interconexión es decisivo en el retardo total. Fases: global (por zona), detallado (completo).
El orden lógico a la hora de realizar un diseño con FPGA es: descripción del diseño, simulación funcional, compilación e implementación, y simulación temporal.
Aplicaciones de las FPGAs
- Circuitos de interfaz: Transferencia y almacenamiento de datos; controladores de periféricos, interfaces con buses estándar, transmisor/receptor de comunicaciones serie...
- Circuitos de procesado de señal: Procesadores de señal específicos, filtros digitales FIR...
- Sistemas complejos (SOC): Microprocesador + memoria + periféricos.
- Realización de prototipos de circuitos integrados
- Circuitos reconfigurables