You are on page 1of 5

4to Electrónica

Electrónica Digital II

Qué es un FPGA

Un FPGA (del inglés Field Programmable Gate Array) es un dispositivo semiconductor que
contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada ‘in situ’
mediante un lenguaje de descripción especializado. 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.

Los FPGAs se utilizan en aplicaciones similares a los ASICs, sin embargo, son más lentas y
no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, las FPGAs tienen la
ventaja 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 los FPGAs
reprogramables.

Un FPGA, dicho en términos llanos, puede configurarse para llevar a cabo cualquier función
lógica y hacer lo que a su dueño le plazca.
Claro que para conseguir eso el diseñador debe configurar el circuito, normalmente siguiendo
la especificación de un lenguaje de descripción de hardware. Esto es algo así como hacer
código en vez de electrónica digital. ¿Te imaginas las posibilidades creativas de una
plataforma así?

El X6500 Rev 3, un FPGA para minar bitcoins


Considera que con un FPGA eres capaz, en teoría, de reinventar todo tipo de dispositivos de
cómputo. Incluso hacerlos trabajar en un mismo espacio y de forma paralela.

Por supuesto, en la práctica la creación está limitada por las capacidades de cada tarjeta
FPGA, y también por la plataforma. Para trabajar con un FPGA debes contar con un software
especial creado por el fabricante. En Windows la experiencia es completa, pero en Linux
puede presentar inconvenientes.

Por cierto, FPGA Libre impulsa “el desarrollo con dispositivos FPGA utilizando
herramientas de software libre u open source”. Además, fomenta “el intercambio y desarrollo
de cores IP con licencias que posean el mismo espíritu que las del software libre”. (En otra
ocasión hablaremos de hardware libre, como Arduino.)

Los FGPA comerciales tienen unos 25 años entre nosotros. Cada vez poseen más áreas de
aplicación (e.g., radioastronomía, emulación de hardware, bioinformática, criptografía). Las
universidades están extendiendo su uso como excelente herramienta didáctica y de
prototipado.
Quizás en el futuro contemos con herramientas de aún más alto nivel (dicho en términos de
abstracción, no de calidad) para la configuración de FPGA. De ser así, ya no solo ingenieros
o científicos sino también artistas y creativos en general producirán resultados aún más
sorprendentes, inimaginables y poderosos que los que voy a presentarte a continuación.

9 ventajas e inconvenientes
Las ventajas de la tarjeta JPS frente a los tradicionales sistemas basados en
microcontroladores son las que se derivan de la utilización de las FPGAs:

 Hardware a la medida. El diseñador no tiene que buscar los productos del mercado
que mejor se adapten a sus diseños, sino que se los diseña a la medida de sus
necesidades, o reutiliza o modifica los diseños ya existentes. En robótica, es muy
común emplear un microcontrolador u otro en función de los periféricos que traiga
integrados, y es muy común que sólo se utilicen unos pocos de ellos. En un sistema
que incorporen FPGAs, es el diseñador el que implemente sólo los controladores
necesarios. Se abren nuevas posibilidades de diseño, como por ejemplo el crear una
CPU específica para una aplicación determinada junto con sus propios controladores
de periféricos.
 Acortamiento del ciclo de diseño. El modelo de diseño hardware basado en HDL
contiene muchas de las ventajas del diseño software. El circuito es ahora un fichero
de texto, que se puede editar, simular, modificar y finalmente sintetizar. Se pueden
crear repositorios hardware, con colecciones de diseños ya probados: controladores
de VGA, UARTs, temporizadores, CPUs, etc. El diseñador puede crear prototipos
muy rápidamente, probarlos, medirlos y modificarlos.
 Flexibilidad. Con el mismo hardware físico, conseguimos tener hardware con
comportamientos diferentes. En la misma placa JPS, ahora podemos tener sintetizada
una CPU, y más adelante podemos probar una UART.
 Posibilidad de pasar algoritmos al hardware: En los diseños mixtos
microcontrolador/FPGA se puede optar por implementar una solución hardware
frente a uno puramente software, consiguiéndose una mayor velocidad. Por ejemplo
la implementación de algoritmos de cifrado. En un microcontrolador de 8 bits esto
sería un proceso lento, pero se convierte en viable si se añade un hardware que haga
el cifrado.
 Diseños hardware libres. Posibilidad de realizar diseños hardware libres que se
compartan dentro de la comunidad hardware y que cualquier diseñador pueda
utilizarlos, modificarlos y distribuir las modificaciones. Esto es especialmente útil en
el campo de la docencia y la investigación. Esto se potencia si el hardware físico en
el que se prueban los diseños es también libre, como es el caso de la placa JPS.
Desaparece la dependencia con el fabricante de la placa y cada Universidad o
diseñador puede fabricarse las placas que considere necesarias.
Este tipo de arquitecturas presenta también una serie de inconvenientes:
 Mayor precio. Una FPGA en comparación con un microcontrolador es mucho más
cara. En concreto, la FPGA utilizada en el robot de docencia cuesta 24 euros frente a
los 5 euros (precios en el 2003) que costaría típicamente un microcontrolador de 8
bits en el que se puede implementar fácilmente el mismo algoritmo de seguir la línea.
 Entornos de desarrollo propietarios, con licencias altas. Para realizar la síntesis del
hardware hay que utilizar las herramientas del fabricante de las FPGA, que son caras
y al día de hoy no existen alternativas libres.
Diferencia entre FPGA y CPLD
Los FPGA y CPLD son dos de los tipos conocidos de chips de lógica digital. Cuando se trata
de la arquitectura interna, los dos chips son obviamente diferentes.

FPGA , abreviatura de Field-Programmable Gate Array, es un tipo de chip lógico


programable. Es un gran chip, ya que se puede programar para hacer casi cualquier tipo de
función digital. La arquitectura de FPGA permite que el chip tenga una capacidad lógica muy
alta. Se usa en diseños que requieren un alto número de puertas y sus retrasos son bastante
impredecibles debido a su arquitectura . El FPGA se considera de "grano fino" porque
contiene una gran cantidad de pequeños bloques lógicos que podrían alcanzar hasta 100.000.
Es con flip-flops, lógica de combinación y memoria. Está diseñado para aplicaciones más
complejas.
Por otro lado, CPLD (dispositivo lógico programable complejo) está diseñado utilizando
EEPROM. Es más adecuado en diseños de conteo de compuertas pequeñas y dado que tiene
una arquitectura menos compleja, los retrasos son muy predecibles y no son volátiles. CPLD
se usa a menudo para aplicaciones lógicas simples. Contiene solo unos pocos bloques de
lógica '' pero más grande, que alcanza hasta 100. Dicho esto, los CPLD se consideran
dispositivos de 'grano grueso'. CPLD ofrece una entrada mucho más rápida a la duración de
salida debido a su arquitectura más simple, de "grano grueso".
Quizás, debido a su arquitectura mucho más simple, los CPLD son baratos. Aunque son más
baratos si se compran por puerta, los FPGA son más caros, especialmente si se utilizan según
el paquete.
Trabajar con FPGA requiere procedimientos especiales ya que está basado en RAM . Para
programar el dispositivo, primero debe describir la 'función lógica' con el uso de la
computadora, ya sea dibujando un esquema o simplemente describiendo la función en un
archivo de texto. La compilación de la 'función lógica' se requiere generalmente con ayuda
de software. Crea un archivo binario para ser descargado en el FPGA. En efecto, el chip se
comportará exactamente como lo ha instruido en la 'función lógica'.
Decidir qué usar, ya sea FPGA o CPLD, realmente dependería de los objetivos de diseño.
Resumen:
1. FPGA contiene hasta 100.000 de pequeños bloques lógicos, mientras que CPLD contiene
solo unos pocos bloques de lógica que alcanza hasta unos pocos miles.
2. En términos de arquitectura, los FPGA se consideran dispositivos de "grano fino" mientras
que los CPLD son de "grano grueso".
3. Los FPGA son ideales para aplicaciones más complejas, mientras que los CPLD son
mejores para los más simples.
4. Los FPGA se componen de pequeños bloques lógicos mientras que los CPLD están hechos
de bloques más grandes.
5. FPGA es un chip lógico digital basado en RAM, mientras que CPLD está basado en
EEPROM.
6. Normalmente, los FPGA son más caros, mientras que los CPLD son mucho más baratos.
7. Los retrasos son mucho más predecibles en los CPLD que en los FPGA

https://elbitcoin.org/que-es-un-fpga/
http://www.iearobotics.com/personal/juan/publicaciones/art1/html/node9.html
http://www.differencebetween.net/technology/difference-between-fpga-and-
cpld/#ixzz50aa7Irxw

You might also like