Matriz de puertas programables en campo (FGPA)

Fiabilidad

¿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.

FPGAs

Ideal para la creación rápida de prototipos y aplicaciones que requieren un procesamiento de alta velocidad a un coste razonable. Suelen utilizarse en entornos informáticos de alto rendimiento en los que resulta beneficiosa la posibilidad de actualizar la funcionalidad de un CI tras su implantación.

ASICs

Es una buena opción si el volumen de producción justifica la inversión inicial y no es necesario reprogramar los circuitos integrados. Los ASIC suelen utilizarse en productos de hardware de producción masiva, como los smartphones.

Microcontroladores

A menudo se utiliza en sistemas integrados, electrónica de consumo, aplicaciones de automoción y dispositivos de Internet de las cosas (IoT), donde se requiere un control sencillo y la capacidad de interactuar con otros componentes de hardware.

¿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:

  1. 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.
  2. 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.
  3. Las FPGA destacan en el manejo de algoritmos y cálculos complejos que pueden paralelizarse.
  4. 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.

FPGA basadas en SRAMFPGAs antifusiblesFPGA basadas en FlashFPGAs basadas en EEPROM

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.
Las FPGA basadas en EEPROM utilizan una memoria de sólo lectura programable y borrable eléctricamente para almacenar los ajustes de configuración y el flujo de bits de configuración. Este tipo de FPGA ha sido sustituido en gran medida por las FPGA basadas en flash.

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:

Tratamiento digital de señales

Las FPGA destacan en la gestión de tareas de procesamiento de señales para sistemas de audio, vídeo y comunicación de datos.

Aplicaciones para centros de datos

Las FPGA pueden utilizarse para acelerar determinados tipos de cargas de trabajo con el fin de reducir la carga de los servidores y el consumo de energía.

Telecomunicaciones

Las FPGA pueden utilizarse para validar la integridad de la señal y mejorar el procesamiento de datos en tiempo real.
Aeroespacial y defensa

Las FPGA son útiles cuando son cruciales altos niveles de fiabilidad y adaptabilidad.
Automoción

Los vehículos modernos utilizan FPGA para diversas aplicaciones, como sistemas avanzados de asistencia al conductor (ADAS), sistemas de infoentretenimiento a bordo y sistemas de comunicación vehículo a todo (V2X).
Imagen médica

Las FPGA se utilizan en dispositivos de imagen médica, como máquinas de resonancia magnética, escáneres de tomografía computarizada y equipos de ultrasonidos, para procesar con rapidez algoritmos complejos y renderizar imágenes de alta resolución.
Automatización industrial

Las FPGA se utilizan en sistemas de control para robots industriales, sistemas de visión artificial y otros equipos de automatización. Proporcionan la velocidad y precisión necesarias para las operaciones en tiempo real.
Minería de criptomonedas

Las capacidades de procesamiento paralelo de las FPGA las hacen idóneas para cálculos hash repetitivos.
Investigación científica

Las FPGA se utilizan en diversos instrumentos científicos, incluidos los aceleradores de partículas, para el procesamiento y control en tiempo real.

Electrónica de consumo

Los fabricantes pueden utilizar las FPGA para implantar funciones mejoradas o adaptarse a nuevos estándares y tecnologías sin necesidad de cambiar el diseño de su hardware. Esta agilidad les permite seguir el ritmo o liderar las tendencias del mercado.

Aplicaciones militares y de servicios financieros

Las FPGA son menos vulnerables a los ataques porque los exploits requieren acceso físico. Además, sus secuencias de bits de configuración pueden cifrarse u ofuscarse para reducir el riesgo de ataques internos.

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?

Temas relacionados

Margaret Rouse
Technology Expert
Margaret Rouse
Experta en tecnología

Margaret Rouse es una galardonada escritora técnica y profesora conocida por su habilidad para explicar temas técnicos complejos a una audiencia de negocios no técnica. Durante los últimos veinte años, sus explicaciones han aparecido en sitios web de TechTarget y ha sido citada como autoridad en artículos del New York Times, Time Magazine, USA Today, ZDNet, PC Magazine y Discovery Magazine. La idea de diversión de Margaret es ayudar a profesionales de TI y negocios a aprender a hablar los idiomas altamente especializados de cada uno. Si tienes una sugerencia para una nueva definición o cómo mejorar una explicación técnica,…