Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Informe FPGA
I. INTRODUCCIÓN
Los dispositivos FPGA son muy útiles en la electrónica digital, debido a que usan la
descripción de hardware con el fin de implementar circuitos de diversos tipos mediante la
programación en lenguaje VHDL este tipo de implementación hace más sencilla la
corrección de errores en los circuitos que lo que se haría si fuera implementado con
compuertas u otro tipos de dispositivos.
II. OBJETIVOS
FPGA
Una FPGA (del inglés Field Programmable Gate Array) es un dispositivo semiconductor que
contiene bloques de lógica cuya interconexión y funcionalidad se puede programar. La
lógica programable puede reproducir desde funciones tan sencillas como las llevadas a
cabo por una puerta lógica o un sistema combinacional hasta complejos sistemas en un
chip (w:en:System-on-a-chip).
Figura 2. Altera-FPGA-Development-Board-Cyclone
Las FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son más lentas,
tienen un mayor consumo de potencia y no pueden abarcar sistemas tan complejos como
ellos. A pesar de esto, las FPGAs tienen las ventajas de ser reprogramables (lo que añade
una enorme flexibilidad al flujo de diseño), sus costes de desarrollo y adquisición son
mucho menores para pequeñas cantidades de dispositivos y el tiempo de desarrollo es
también menor.
Ciertos fabricantes cuentan con FPGAs que sólo se pueden programar una vez, por lo que
sus ventajas e inconvenientes se encuentran a medio camino entre los ASICs y las FPGAs
reprogramables.
Históricamente las FPGAs surgen como una evolución de los conceptos desarrollados en
las PLAs y los CPLDs
FPGAs vs CPLDs
Figura 3. CPLD
Escuela Politécnica Nacional. Edison Casa, Erick Loyaga, Daniel Morales. Informe FPGA
FPGAs vs CPLDs Las FPGAs fueron inventadas en el año 1984 por Ross Freeman, co-
fundador de Xilinx, y surgen como una evolución de los CPLDs. Tanto los CPLDs como las
FPGAs 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 puertas 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 puertas lógicas
equivalentes y en una FPGA del orden de cientos de miles hasta millones de ellas.
Otra diferencia importante entre FPGAs y CPLDs es que en la mayoría de las FPGAs se
pueden encontrar funciones de alto nivel (como sumador y multiplicador) embebidas en la
propia matriz de interconexiones, así como bloques de memoria.
CARACTERISTICAS
Una tendencia reciente ha sido combinar los bloques lógicos e interconexiones de los
FPGA con microprocesadores y periféricos relacionados para formar un «Sistema
programable en un chip». Ejemplo de tales tecnologías híbridas pueden ser encontradas
en los dispositivos Virtex-II PRO y Virtex-4 de Xilinx, los cuales incluyen uno o más
procesadores PowerPC embebidos junto con la lógica del FPGA. El FPSLIC de Atmel es otro
dispositivo similar, el cual usa un procesador AVR en combinación con la arquitectura
lógica programable de Atmel. Otra alternativa es hacer uso de núcleos de procesadores
implementados haciendo uso de la lógica del FPGA. Esos 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.
Muchos FPGA modernos soportan la reconfiguración parcial del sistema, permitiendo que
una parte del diseño sea reprogramada, mientras las demás partes siguen funcionando.
Este es el principio de la idea de la «computación reconfigurable», o los «sistemas
reconfigurables».
Escuela Politécnica Nacional. Edison Casa, Erick Loyaga, Daniel Morales. Informe FPGA
Una matriz de bloques de lógica configurables (CLB): bloques lógicos cuyos parámetros se
pueden modificar de forma que presente diferentes funcionalidades. Cada CLB consiste, de
forma genérica, en varias tablas de LUTs (look-up tables, o tablas de consulta) cuyas salidas
están multiplexadas y unos parámetros de configuración de dicho CLB. El diseño de un CLB
varía de un fabricante a otro. En la figura puede verse un CLB de una XC4000 de Xilinx:
Una matriz de rutado, encargada de conectar los CLBs entre ellos, y a su vez éstos con las
celdas de entrada y salida.
Celdas de entrada y salida (IOB): su misión es comunicar la lógica interna de la FPGA con el
exterior.
No sólo los bloques de lógica son configurables, sino que tanto la matriz de rutado como las
celdas de entrada y salida son programables, otorgándole a las FPGAs de una gran flexibilidad a
la hora de ajustarse a las especificaciones de cada diseño.
Existen en el mercado una gran variedad de circuitos integrados, que abarcan desde
dispositivos personalizados para cada aplicación a otros que se pueden programar en función
de las necesidades de cada momento. En la siguiente gráfica puede observarse un esquema
básico de los diferentes tipos de circuitos integrados.
Las FPGAs son un producto intermedio entre los dispositivos de lógica programable (PLD),
y los circuitos integrados de aplicación específica (ASIC).
Escuela Politécnica Nacional. Edison Casa, Erick Loyaga, Daniel Morales. Informe FPGA
Finalmente, las FPGAs son dispositivos de cientos de miles, e incluso millones, de puertas
lógicas. Además de la lógica, también presente en los elementos anteriormente descritos,
presentan recursos especiales para implementar de forma eficiente funciones aritméticas
(comparadores, sumadores, contadores, etc.), mientras que los CPLD carecen de éstos.
Están basadas en memoria RAM, lo cual implica que deben ser configuradas cada vez que se
van a utilizar, y necesitan lógica adicional para inicializarlas. Las FPGAs son dispositivos muy
flexibles, que pueden trabajar a altas frecuencias y con capacidad de procesamiento en
paralelo.
Por su parte, los ASICs son circuitos diseñados de forma particular para cada aplicación. Debido
a esta personalización del dispositivo, presentan unos costes fijos mayores que una FPGA, el
proceso de fabricación es más largo, etc. Son económicamente viables únicamente para
producción a gran escala.
Una FPGA es “hardware programable”. A diferencia de las CPUs y las GPUs, los recursos de una
FPGA pueden ser configurados para crear pipelines de instrucciones específicos para el
problema a resolver. Si bien operan a frecuencias de reloj más bajas y tienen picos de
rendimiento inferiores, la posibilidad de adaptar el hardware para cada aplicación particular le
permite a las FPGAs lograr mejores tasas de rendimiento en la mayoría de los casos. En forma
adicional, suelen ser más eficientes desde el punto de vista energético ya que no hay
desperdicio en los recursos de silicio.
Desafortunadamente no todas son ventajas para las FPGAs. Entre las desventajas se puede
mencionar un costo alto de programación y de desarrollo. En general, la programación de
FPGAs se realiza a través de lenguajes de descripción de hardware (HDL, por sus siglas en
inglés), como Verilog o VHDL. Estos lenguajes suelen ser tediosos, propensos a errores y
requieren mantener una noción explícita del paso del tiempo. En forma adicional, los tiempos
de compilación y síntesis pueden requerir varias horas, dependiendo del diseño. A estos
inconvenientes, debemos sumarle un costo de adquisición más elevado que otros aceleradores
como GPUs y Xeon Phi’s, aunque es importante resaltar que este costo puede ser amortizado
de mejor manera por las FPGAs debido a su mayor eficiencia energética.
Ventajas Desventajas
Son dispositivos reconfigurables. Un procesador de alta velocidad (GHz) se
Bajo consto respecto a los ASIC. ejecuta mucho más rápido en ASIC que en
Los circuitos se ejecutan más rápido que una FPGA
otros dispositivos programables.
Al ser circuitos digitales, la ejecución de cada Al estar basadas en RAM, pierden su
bloque es en paralelo, no así en un configuración al suprimir la energía.
microprocesador.
Son útiles para realizar prototipos que luego Poseen retardos de propagación mayores a
serán llevados a ASIC si es necesario. los existentes en ASIC o standard cells.
Escuela Politécnica Nacional. Edison Casa, Erick Loyaga, Daniel Morales. Informe FPGA