Matriz de puerta programable en campo para niños
Una Matriz de Puertas Lógicas Programable en Campo o FPGA (por sus siglas en inglés, Field-Programmable Gate Array) es un tipo especial de circuito integrado que puedes programar y cambiar incluso después de que ha sido fabricado. Imagina que es como un tablero de construcción electrónico que puedes reconfigurar para que haga diferentes tareas.
Dentro de una FPGA hay muchos bloques de lógica y conexiones que se pueden configurar. Esto se hace usando lenguajes especiales que describen cómo deben funcionar los circuitos, como VHDL o Verilog. Las FPGA son parte de una familia de dispositivos llamados "dispositivos de lógica programable" (PLD).
Lo interesante de las FPGA es que pueden imitar desde funciones muy sencillas, como una puerta lógica básica, hasta sistemas muy complejos, como un sistema completo en un solo chip. Se les llama "en campo" porque se pueden configurar en cualquier momento y lugar, a diferencia de la mayoría de los chips que tienen su diseño fijo desde la fábrica.
Las FPGA se usan en aplicaciones parecidas a los ASIC (otros chips diseñados para una tarea específica). Sin embargo, las FPGA son mucho más flexibles porque se pueden reprogramar. Esto permite crear muchos diseños diferentes con el mismo chip, lo que les da una gran ventaja. Aunque a veces las FPGA pueden ser un poco más lentas o consumir más energía que los ASIC, su capacidad de cambio las hace muy valiosas.
Contenido
¿Cómo funcionan las FPGA?
Una FPGA tiene una estructura interna con muchos bloques lógicos pequeños y conexiones que se pueden programar. Piensa en ello como una placa de pruebas electrónica que puedes configurar. Estos bloques lógicos y sus conexiones se programan después de que el chip es fabricado, lo que permite que la FPGA realice cualquier función lógica que necesites.
Una tendencia actual es combinar estos bloques lógicos de las FPGA con microprocesadores y otros componentes para crear un "sistema programable en un chip". Por ejemplo, algunos chips FPGA incluyen procesadores integrados junto con la lógica programable. También es posible crear procesadores completos usando solo la lógica de la FPGA.
Muchas FPGA modernas permiten la "reconfiguración parcial". Esto significa que puedes reprogramar una parte del chip mientras las otras partes siguen funcionando. Es como cambiar una pieza de un rompecabezas sin desarmar todo el rompecabezas.
Historia de las FPGA
Las FPGA fueron inventadas en 1984 por Ross Freeman y Bernard Von Der Schmitt, quienes fundaron la empresa Xilinx.
Las FPGA son una evolución de los Dispositivos de Lógica Programable (PLD) y también incorporan ideas de los chips ASIC.
La historia de los PLD comenzó con las memorias programables (PROM), que luego se hicieron más versátiles con los PAL (matriz lógica programable). Estos dispositivos han crecido en tamaño y capacidad con el tiempo.
Por otro lado, los ASIC siempre han sido chips muy potentes, pero diseñarlos y fabricarlos requiere mucho tiempo y dinero. Para reducir esto, se buscaron formas de hacer los circuitos más modulares. El paso final fue combinar estas ideas con un sistema de conexiones que pudiera programarse usando pequeños interruptores o memorias. Así nacieron los innovadores dispositivos de Xilinx a mediados de los años 80.
FPGA frente a otros tipos de chips
¿Qué diferencia hay entre FPGA y ASIC?
Las FPGA y los ASIC se usan para cosas similares, pero tienen diferencias importantes:
Desventajas de las FPGA (históricamente):
- Pueden ser más lentas.
- Consumen más energía.
- No podían manejar sistemas tan complejos.
Ventajas de las FPGA:
- Se pueden reprogramar.
- Los costos de desarrollo y compra son mucho menores.
- El tiempo para diseñar y fabricar es más corto.
Es importante saber que muchas de estas desventajas históricas se han reducido. Hoy en día, existen FPGA lo suficientemente grandes para sistemas complejos, su velocidad ha mejorado mucho y su consumo de energía se ha reducido, especialmente en chips diseñados para dispositivos de bajo consumo.
¿Qué diferencia hay entre FPGA y CPLD?
Los CPLD (Dispositivos Lógicos Programables Complejos) también tienen muchos elementos lógicos programables, como las FPGA. Sin embargo, hay una gran diferencia en su capacidad y arquitectura:
- Capacidad: Una CPLD puede tener miles de puertas lógicas equivalentes, mientras que una FPGA puede tener cientos de miles o incluso millones.
- Arquitectura: La estructura de los CPLD es más rígida, con bloques de lógica que se conectan de forma más sencilla. La arquitectura de las FPGA es mucho más flexible, con un gran número de pequeños bloques que se pueden interconectar de muchas maneras diferentes. Esta libertad de conexión es lo que hace a las FPGA tan versátiles.
- Funciones avanzadas: Muchas FPGA modernas incluyen funciones más complejas, como sumadores, multiplicadores y bloques de memoria, directamente integrados en el chip.
Programación de una FPGA
En una FPGA, no se "programa" de la misma manera que en una computadora o un microcontrolador. En lugar de escribir instrucciones paso a paso, lo que se hace es "describir" el circuito electrónico que quieres que la FPGA sea.
La FPGA tiene celdas que se configuran para realizar una función específica, como actuar como una memoria, un multiplexor o una puerta lógica (AND, OR, XOR). La tarea del diseñador es definir qué función hará cada bloque lógico y cómo se conectarán entre sí.
Para esto, se usan programas especiales que ayudan a diseñar estos sistemas. El diseño se puede hacer dibujando esquemas o, más comúnmente, usando lenguajes de descripción de hardware (HDL). Los HDL más usados son:
- VHDL
- Verilog
- ABEL
También existen herramientas que permiten un diseño más visual y de alto nivel, como LabVIEW FPGA, para simplificar el proceso.
Aplicaciones de las FPGA
Las FPGA se pueden usar para crear casi cualquier circuito electrónico, siempre que el chip tenga los recursos necesarios. Algunas de las aplicaciones más comunes incluyen:
- Procesamiento digital de señales (DSP): para manipular audio, video o datos.
- Radio definido por software: sistemas de radio que se pueden adaptar cambiando su programación.
- Sistemas aeroespaciales y de defensa: donde se necesita mucha fiabilidad y flexibilidad.
- Prototipos de ASIC: para probar diseños de chips antes de fabricar los ASIC definitivos.
- Sistemas de imágenes médicas: para equipos como ecógrafos o resonancias.
- Sistemas de visión para computadoras: para que las máquinas "vean" y entiendan imágenes.
- Reconocimiento de voz.
- Bioinformática: para analizar datos biológicos.
- Emulación de hardware de computadora: para simular el funcionamiento de otros chips.
Su uso está creciendo en muchas áreas, especialmente en aquellas que necesitan realizar muchas operaciones al mismo tiempo (paralelismo).
Existen "cores" o bloques de código ya hechos (disponibles bajo licencias de uso libre) para implementar cosas como microprocesadores, microcontroladores, filtros, módulos de comunicación y memorias en una FPGA.
Tipos de memoria en las FPGA
Las FPGA también se diferencian por el tipo de memoria que usan para guardar su configuración:
- Volátiles: Usan memoria RAM. Esto significa que pierden su configuración cuando se apaga la energía. Necesitan una memoria externa que no sea volátil para cargarse cada vez que se encienden.
- No Volátiles: Mantienen su configuración incluso sin energía. Hay dos tipos:
* Reprogramables: Basadas en EPROM o memoria flash. Se pueden borrar y reprogramar varias veces (aunque con un límite de ciclos). * No reprogramables: Basadas en pequeños interruptores (fusibles o antifusibles). Solo se pueden programar una vez, lo que las hace menos útiles para experimentar en laboratorios.
Fabricantes de FPGA
A principios de los años 2000, los principales fabricantes de FPGA de propósito general eran Xilinx y Altera.
Otros competidores ofrecen dispositivos con características específicas, como Actel (ahora Microsemi), que tiene FPGA basadas en tecnología Flash reprogramable.
Galería de imágenes
Véase también
En inglés: Field-programmable gate array Facts for Kids