Saltar al contenido

Qué es la FPGA

Qué es la FPGA

¿Qué es la FPGA?

Las FPGAs son dispositivos que permiten describir un circuito digital utilizando un lenguaje específico (los dos más comunes son VHDL y Verilog) y después de cargarlo en el integrado, se crea físicamente en el chip. Su nombre es un acrónimo que significa conjunto de puertos reprogramables o Field Programmable Gate Array.

Internamente consisten principalmente en cables, puertas lógicas, flip-flops, y los puertos de entrada y salida. Todos conectados, como modelo en blanco hasta que -a cargue un archivo bitstream generado a partir de la descripción de los circuitos. La comparación que parece muy fácil de entender es que las FPGAs son el equivalente a las impresoras 3D para circuitos digitales. A diferencia de las impresoras Sim, puede reprogramar la FPGA tantas veces como sea necesario, es decir, para continuar con la analogía, el material de impresión nunca termina.

Las FPGAs se utilizan en aplicaciones similares a ASIC, pero son más lentas, tienen más potencia y no pueden cubrir sistemas tan complejos como estos. Sin embargo, las FPGAs tienen la ventaja de ser reprogramables (lo que añade una enorme flexibilidad al flujo del proyecto), sus costes de desarrollo y adquisición son mucho más bajos para pequeñas cantidades de dispositivos y el tiempo de desarrollo también es menor.

Algunos fabricantes tienen FPGA que pueden programarse una sola vez, por lo que sus ventajas y desventajas se encuentran a medio camino entre ASIC y FPGA re Históricamente FPGA surge como una evolución de los conceptos desarrollados en PAL y CPLD.

Historia de la FPGA

Las FPGAs son el resultado de la convergencia de dos tecnologías diferentes, dispositivos lógicos programables (PLD Programmable Logic Devices) y circuitos integrados específicos de la aplicación (ASIC, application-specific integrated circuit) La historia de PLD comenzó con los primeros dispositivos PROM (memoria de sólo lectura programable) y se añadió versatilidad con el PAL (programmable logic array) que permitió un mayor número de entradas e inclusión de registros. Estos dispositivos continuaron creciendo en tamaño y potencia. Mientras tanto, los ASIC siempre han sido dispositivos potentes, pero su uso ha requerido tradicionalmente una inversión considerable de tiempo y dinero. Los intentos de reducir esta carga proceden de la modularización de elementos de circuitos como los ASIC basados en células y de la estandarización de máscaras, de la misma manera que Ferranti fue pionero en el ULA (Uncommitted Logic Array). El paso final fue combinar las dos estrategias con una articulación que puede ser programada usando fusibles, antifusos o células RAM y células ROM como innovadores dispositivos Xilinx a mediados de los 80. Los circuitos resultantes son similares en capacidad y aplicaciones PLD más altas, aunque hay diferencias específicas que revelan diferentes ancestros. Además de la informática reconfigurable, las FPGAs se utilizan en controladores, codificadores/decodificadores y en la creación de prototipos de circuitos VLSI y microprocesadores personalizados.

Qué es la FPGA

Características de FGDA

Una jerarquía de interconexiones programables permite que los bloques lógicos de una FPGA estén interconectados, según lo requiera el diseñador del sistema, de alguna manera como un tablero de inserción programable (el tablero es reutilizable o de uso semigenérico). Estos bloques lógicos e interconexiones pueden ser programados después del proceso de fabricación por el usuario/diseñador para que la FPGA pueda realizar cualquier función lógica necesaria.

Una tendencia reciente ha sido combinar los bloques lógicos y las interconexiones de las FPGAs con los microprocesadores y periféricos relacionados para formar un sistema programable en un chip. Ejemplos de estas tecnologías híbridas se pueden encontrar en los dispositivos Virtex-II PRO y Virtex-4 de Xilinx, que incluyen uno o más procesadores PowerPC integrados junto con la lógica FPGA. El Atmel FPSLIC es otro dispositivo similar que utiliza un procesador AVR en combinación con la arquitectura lógica programable de Atmel. Otra alternativa es hacer uso de núcleos de procesador implementados utilizando la lógica FPGA. Estos núcleos incluyen los procesadores MicroBlaze y PicoBlaze de Xlinx, Nios y Nios II de Altera, y los procesadores de código abierto LatticeMicro32 y LatticeMicro8.

Muchas FPGAs modernas soportan la reconfiguración parcial del sistema, permitiendo que una parte del proyecto sea reprogramada mientras que las otras partes continúan funcionando. Este es el principio de la idea de la computación reconfigurable, o sistemas reconfigurables.

El primer fabricante de estos dispositivos fue Xilinx y los dispositivos Xilinx siguen siendo uno de los más populares entre las empresas y los grupos de investigación. Otros vendedores en este mercado son Atmel, Altera, AMD y Motorola.

Qué es la FPGA

Aplicaciones FGDA

Cualquier circuito de aplicación específica puede ser implementado en una FPGA, siempre y cuando cuente con los recursos necesarios. Las aplicaciones en las que las FPGAs son más comúnmente utilizadas incluyen DSP (procesamiento de señales digitales), sistemas de radio definidos por software, sistemas aeroespaciales y de defensa, prototipos ASIC, sistemas de imágenes médicas, sistemas de visión por computador, reconocimiento de voz, bioinformática, emulación de hardware de computadoras, entre otros. Cabe señalar que su uso en otras áreas está aumentando, especialmente en aquellas aplicaciones que requieren un alto grado de paralelismo.

Existe código fuente disponible (bajo licencia GNU GPL) para sistemas como microprocesadores, microcontroladores, filtros, módulos de comunicación y memorias, entre otros. Estos códigos se llaman núcleos.