FPGAs

 

FPGAs

 

Los arreglos de compuertas programables (FPGAs), son dispositivos semiconductores principalmente estructurados por celdas lógicas interconectadas mediante una matriz de switches programables. Típicamente, cada una de estas celdas es capaz de llevar a cabo tareas combinatorias o secuenciales, de manera que cualquier diseño puede ser implementado mediante la descripción funcional de cada celda lógica y la selección de los switches adecuados que permiten la interconexión entre los elementos involucrados.

Los FPGA se utilizan en aplicaciones similares a los ASIC sin embargo son más lentos y tienen un mayor consumo de energía. A pesar de esto, los FPGA tienen las ventajas de ser reprogramables (lo que añade una enorme flexibilidad al flujo de diseño), sus costos de desarrollo y adquisición son mucho menores para pequeñas cantidades de dispositivos y el tiempo de desarrollo es también menor.

Históricamente los FPGA surgen como una evolución de los conceptos desarrollados en las PAL y los CPLD. Tanto los CPLD como los FPGA contienen un gran número de elementos lógicos programables. Si medimos la densidad de los elementos lógicos programables en puertas lógicas equivalentes (número de compuertas NAND equivalentes que podríamos programar en un dispositivo) podríamos decir que en un CPLD hallaríamos del orden de decenas de miles de compuertas lógicas equivalentes y en un FPGA del orden de cientos de miles hasta millones de ellas.

Actualmente, los FPGAs comerciales emplean alguno de los siguientes elementos para la fabricación de las celdas lógicas:

  • Pares de transistores
  • Compuertas lógicas NAND o XOR de dos entradas
  • Multiplexores
  • Look-up tables (LUTs)

 

Existen tres tecnologías mayormente difundidas para la programación de los switches que interconectan cada celda lógica:

  • Memoria Estática de Acceso Aleatorio (SRAM), donde el proceso de conmutación lo realiza un transistor de paso, controlado por un bit de estado, almacenado en la memoria.
  • Memoria de sólo lectura borrable y programable (EPROM), donde el proceso de conmutación puede anularse al aplicar cargas eléctricas.
  • Antifusible, donde al programar el dispositivo, se forman rutas de baja resistencia.

 

Tecnología SRAM.

La funcionalidad de cada celda lógica de tecnología SRAM, es controlada mediante compuertas de paso que actúan como elementos de conmutación para formar rutas de señalización. Cuando se tiene almacenado en la celda lógica un nivel de voltaje alto (valor lógico “1”), la compuerta de paso actúa como corto circuito, permitiendo la interconexión de dos segmentos independientes. La salida de cada multiplexor, es controlada mediante la interconexión de celdas lógicas y líneas de entrada del elemento en cuestión, de modo tal, que a la salida del multiplexor se tenga sólo una de las entradas del mismo.

Aun cuando la tecnología SRAM usada en los FPGAs proporciona grandes ventajas como la reprogramación iterativa y el aprovechamiento de los recursos libres para conmutar entre aplicaciones, su mayor desventaja es el área necesaria para implementar cada celda lógica; cuando menos cinco transistores son necesarios para su funcionamiento y un transistor adicional como elemento de conmutación.

Cada CLB puede ser programado para realizar una gran variedad de operaciones lógicas e incluso funcionar como elemento de almacenamiento de datos.

Los principales elementos que caracterizan a esta familia de dispositivos se describen a continuación:

  • Los bloques de entrada/salida (IOBs), son los encargados del control del flujo de datos hacia las terminales de entrada/salida.
  • Los Bloques RAM, proporcionan espacio para el almacenamiento de datos, permitiendo ciclos de lectura y escritura simultáneos bajo la modalidad de memoria de puerto dual.
  • Los Bloques Multiplicadores, aceptan como argumentos números binarios de 18 bits.
  • El Administrador de Reloj Digital (DCM), resuelve problemas comunes de retraso, desfase, multiplicación y división de la señal de reloj principal (reloj maestro).

Se recomienda al amable lector que continúe en cualquiera de las siguientes secciones: Proyectos de Investigación, Publicaciones.