Está en la página 1de 6

Escuela Politécnica Nacional. Edison Casa, Erick Loyaga, Daniel Morales.

Informe FPGA

Field-programmable gate array (FPGA)

I. INTRODUCCIÓN

El siguiente documento muestra la investigación y resultados obtenidos relacionados al


uso de tecnología FPGA para el diseño e implementación de sistemas digitales y de control
automático, estos dispositivos son programados mediante lenguajes de modelado de
circuitos, la metodología a seguir se fundamentó en todo lo relacionado a los
conocimientos generales acerca de la tecnología FPGA, de igual forma se describen
algunas ventajas que implica usar este tipo de dispositivos, posterior a eso se hace una
descripción de los elementos que componen el equipo a utilizar para realizar la
investigació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

 Se busca comprender el funcionamiento y características en la aplicación del FPGA


en circuitos digitales
 Facilitar el intercambio de la mayor parte de información sobre Fiel-programmable
gate array (FPGA)
III. PROCEDIMIENTO

FPGA

Figura 1. Una FPGA de Altera.


Escuela Politécnica Nacional. Edison Casa, Erick Loyaga, Daniel Morales. Informe 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.

Aparte de las diferencias en densidad entre ambos tipos de dispositivos, la diferencia


fundamental entre las FPGAs y los CPLDs es su arquitectura. La arquitectura de los CPLDs
es más rígida y consiste en una o más sumas de productos programables cuyos resultados
van a parar a un número reducido de biestables síncronos (también denominados flip-
flops). La arquitectura de las FPGAs, por otro lado, se basa en un gran número de
pequeños bloques utilizados para reproducir sencillas operaciones lógicas, que cuentan a
su vez con biestables síncronos. La enorme libertad disponible en la interconexión de
dichos bloques confiere a las FPGAs una gran flexibilidad.

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 jerarquía de interconexiones programables permite a los bloques lógicos de un FPGA


ser interconectados según la necesidad del diseñador del sistema, algo parecido a un
breadboard programable. Estos bloques lógicos e interconexiones pueden ser
programados después del proceso de manufactura por el usuario/diseñador, así que el
FPGA puede desempeñar cualquier función lógica necesaria.

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

Figura 4. Arquitectura Interna de una 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.

Circuitos Electrónicos Integrados

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.

Figura 5. 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.

Ventajas y Desventajas de una FPGA

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

También podría gustarte