¿Qué es una matriz de puertas programables en campo (FPGA)?
Una matriz de puertas programables en campo (FPGA) es un tipo de circuito integrado digital (CI) que puede programarse después de la fabricación, o reprogramarse después de la implantación, para realizar distintos tipos de tareas lógicas.
Los FPGA son útiles para aplicaciones cuyos requisitos funcionales pueden cambiar con el tiempo o en situaciones en las que puede ser necesario reutilizar el mismo circuito integrado para una tarea totalmente distinta.
Definición de matriz de puertas programables en campo
En el contexto de las definiciones de las matrices de puertas programables en campo, una «puerta» es un bloque de construcción de un circuito electrónico que puede realizar una operación lógica específica en una o más entradas binarias y producir una única salida.
Una matriz de puertas es un tipo de circuito integrado que tiene una rejilla predefinida de transistores interconectados, puertas lógicas y componentes electrónicos.
El fabricante del hardware suele fabricar las matrices de puertas siguiendo un patrón fijo. Sin embargo, en una matriz de puertas programable en campo, la configuración de la matriz de puertas no se especifica completamente durante el proceso de fabricación. Esto permite personalizarla para aplicaciones específicas.
¿Cómo funciona una FPGA?
Las matrices de puertas programables en campo constan de bloques lógicos programables y una jerarquía de interconexiones reconfigurables que permiten conectar los bloques entre sí.
Las FPGA también incluyen elementos de memoria para almacenar información. Los elementos de memoria consisten en simples flip-flops que almacenan bits individuales y bloques de memoria que pueden almacenar más datos. Uno de los bloques de memoria almacenará los ajustes para configurar los bloques lógicos programables y las interconexiones del CI.
Cuando se enciende el circuito integrado, los ajustes se compilan en un flujo de bits. El FPGA interpreta el flujo de bits y reconfigura sus circuitos internos en consecuencia.
Algunas FPGAs tienen memoria no volátil que puede almacenar los ajustes de configuración de forma permanente, pero muchas FPGAs utilizan memoria volátil y los ajustes de configuración se perderán cuando se apague el hardware.
Los FPGA que utilizan memoria volátil tienen que reconfigurarse en cada encendido con un flujo de bits de configuración cargado desde una fuente externa de memoria no volátil.
Hay que tener en cuenta que las configuraciones FPGA deben programarse con un lenguaje de descripción de hardware (HDL) como VHDL o Verilog.
Este tipo de programación especializada suele realizarla un ingeniero de hardware, un ingeniero de sistemas embebidos, un científico investigador o un ingeniero de servicio de campo específico del sector.
¿Por qué y cuándo utilizar FPGA?
Las FPGA logran un equilibrio entre coste, rendimiento y tiempo de implantación. He aquí cuatro razones de peso para elegir FPGAs para casos de uso específicos:
- Una de las ventajas más significativas de las FPGA es su capacidad para ser reprogramadas y reconfiguradas después de la fabricación. Esto significa que puedes actualizar el dispositivo para cambiar su funcionalidad o corregir un error sin necesidad de rediseñar o sustituir el hardware.
- Las FPGA facilitan la creación rápida de prototipos y pruebas. Su reprogramabilidad puede acelerar significativamente el proceso de desarrollo y reducir el tiempo de comercialización.
- Las FPGA destacan en el manejo de algoritmos y cálculos complejos que pueden paralelizarse.
- Las FPGA son ideales para sectores y segmentos de mercado en los que la tecnología o las normas evolucionan rápidamente. Su flexibilidad y adaptabilidad pueden ampliar significativamente la vida útil de un producto.
Tipos de FPGA
Hay cuatro tipos básicos de matrices de puertas programables en campo. Se clasifican según su arquitectura interna y los métodos utilizados para programar sus ajustes de configuración.
Estas FPGAs utilizan RAM estática volátil (SRAM) para almacenar sus ajustes de configuración y memoria externa para cargar el flujo de bits de configuración en el encendido. Las FPGA basadas en SRAM son probablemente el tipo de FPGA más popular porque son relativamente baratas y pueden reprogramarse con bastante facilidad.
Las FPGA Antifuse utilizan memoria no volátil y son programables una sola vez (OTP). Su programación sobre el terreno crea conexiones eléctricas permanentes dentro de la FPGA, que no pueden modificarse posteriormente. Las FPGA antifusibles son conocidas por su seguridad, pero carecen de la capacidad de reconfiguración de las FPGA basadas en SRAM.
Estas FPGA utilizan una memoria flash no volátil para almacenar los ajustes de configuración y el flujo de bits de configuración. Pueden reprogramarse más de una vez. Constituyen un término medio entre las FPGA basadas en SRAM y las FPGA antifusibles.
Casos de uso de FPGA
La versatilidad de las FPGA las hace adecuadas para una amplia gama de aplicaciones. Los casos de uso más comunes son:
Pros y contras de las FGPA
Las FPGA destacan cuando la flexibilidad y la adaptabilidad son cruciales. Son especialmente valiosos para la creación de prototipos, aplicaciones de bajo volumen con requisitos cambiantes, o tareas que requieren un procesamiento paralelo de alto rendimiento.
Sin embargo, hay que tener muy en cuenta su coste, consumo de energía y complejidad de desarrollo cuando se comparan con soluciones alternativas.
La idoneidad de las FPGA depende en gran medida de la aplicación específica y de otras tecnologías con las que se compare. Cuando hay importantes compensaciones entre flexibilidad, rendimiento y coste, las FPGA suelen ofrecer una solución intermedia.
Característica | Ventajas | Desventajas |
---|---|---|
Flexibilidad | Se puede reprogramar para diferentes funciones | Limitada en comparación con soluciones puramente de software |
Rendimiento | Alta capacidad de procesamiento en paralelo para tareas específicas | Puede ser más lento que los ASIC para cargas de trabajo optimizadas |
Desarrollo | Prototipado más rápido que con ASIC | Requiere conocimientos especializados en HDL |
Costo | Más económico que los ASIC para volúmenes bajos y medios | Más caro que los CPUs/microcontroladores de propósito general |
Energía | La personalización puede mejorar la eficiencia | Generalmente consume más energía que los ASIC |
Seguridad | Más difícil de explotar remotamente, personalizable | Aún vulnerable a ataques físicos y de canal lateral |
Lo esencial
Las FPGA tienden un puente entre los procesadores de propósito general y los ASIC personalizados. Sin embargo, las FPGA requieren conocimientos especializados para programarlas y gestionarlas. La decisión de utilizar FPGAs debe basarse en un análisis exhaustivo de los requisitos del proyecto y equilibrar la necesidad de flexibilidad con el coste, la complejidad y la eficiencia energética de la solución.
Preguntas frecuentes
¿Qué es una matriz de puertas programables en términos sencillos?
¿Es mejor una FPGA que una CPU?
¿Se sigue utilizando la FPGA?
Referencias
- VHDL Tutorial – Introduction to VHDL for beginners (Nandland)
- Verilog.com (Verilog)
- Amortization in accounting 101 (Tax.thomsonreuters)