Está en la página 1de 7

Field-programmable gate array

Ir a la navegaciónIr a la búsqueda

Una FPGA de Altera.

Una Spartan de Xilinx.


Un arreglo de compuertas programable en el campo12 o FPGA (del inglés field-
programmable gate array), es un dispositivo programable que contiene bloques de
lógica cuya interconexión y funcionalidad puede ser configurada en el momento,
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.

Las FPGA se utilizan en aplicaciones similares a los ASIC sin embargo son más
lentas, tienen un mayor consumo de energía y no pueden abarcar sistemas tan
complejos como ellos. A pesar de esto, las FPGA 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 FPGA que sólo se pueden programar una vez, por lo
que sus ventajas e inconvenientes se encuentran a medio camino entre los ASIC y las
FPGA re Históricamente las FPGA surgen como una evolución de los conceptos
desarrollados en las PAL y los CPLD.

Índice
1 Historia: FPGA frente a CPLD
2 FPGA frente a ASIC
3 Historia
4 Características
5 Puertas lógicas
6 Evolución de mercado
7 Programación
8 Aplicaciones
9 Tecnología de la memoria de programación
10 Fabricantes
11 Véase también
12 Referencias
13 Enlaces externos
13.1 Recursos
13.2 Utilidades
13.3 Multimedia
Historia: FPGA frente a CPLD

Arquitectura interna de una FPGA.


Las FPGA fueron inventadas en el año 1984 por Ross Freeman y Bernard Von Der
Schmitt, cofundadores de Xilinx, y surgen como una evolución de los CPLD.

Tanto los CPLD como las FPGA 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 FPGA y los CPLD es su arquitectura. La
arquitectura de los CPLD 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 FPGA, 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
FPGA una gran flexibilidad.

Otra diferencia importante entre FPGA y CPLD es que en la mayoría de las FPGA se
pueden encontrar funciones de alto nivel (como sumadores y multiplicadores)
embebidas en la propia matriz de interconexiones, así como bloques de memoria.

FPGA frente a ASIC


Las FPGA se utilizan en aplicaciones similares a los ASIC pero tienen una serie de
inconvenientes históricos así como de ventajas respecto a estos últimos:

Inconvenientes:

Son más lentas.


Consumen mayor potencia.
No pueden realizar sistemas excesivamente complejos.
Ventajas:

Son reprogramables.
Los costes de desarrollo y adquisición son mucho menores.
El tiempo de diseño y manufacturación es menor.
Los inconvenientes listados aquí se mantienen más por razones históricas que por
motivos reales, actualmente existen FPGAs lo suficientemente grandes para contener
sistemas complejos, la velocidad de recursos de interconexión han aumentado
exponencialmente y se ha reducido su consumo energético sobre todo para FPGAs
destinadas especialmente para dispositivos de bajo consumo.

Historia
Las FPGA son el resultado de la convergencia de dos tecnologías diferentes, los
dispositivos lógicos programables (PLD Programmable Logic Devices) y los circuitos
integrados de aplicación específica (ASIC, circuito integrado de aplicación
específica). La historia de los PLD comenzó con los primeros dispositivos PROM
(memoria programable de solo lectura) y se les añadió versatilidad con los PAL
(matriz lógica programable) que permitieron un mayor número de entradas y la
inclusión de registros. Esos dispositivos han continuado creciendo en tamaño y
potencia. Mientras, los ASIC siempre han sido potentes dispositivos, pero su uso ha
requerido tradicionalmente una considerable inversión tanto de tiempo como de
dinero. Intentos de reducir esta carga han provenido de la modularización de los
elementos de los circuitos, como los ASIC basados en celdas, y de la
estandarización de las máscaras, tal como Ferranti fue pionero con la ULA
(Uncommitted Logic Array). El paso final era combinar las dos estrategias con un
mecanismo de interconexión que pudiese programarse utilizando fusibles,
antifusibles o celdas RAM y celdas ROM, como los innovadores dispositivos Xilinx de
mediados de los 80. Los circuitos resultantes son similares en capacidad y
aplicaciones a los PLD más grandes, aunque hay diferencias puntuales que delatan
antepasados diferentes. Además de en computación reconfigurable, las FPGA se
utilizan en controladores, codificadores/decodificadores y en el prototipado de
circuitos VLSI y microprocesadores a medida.

El primer fabricante de estos dispositivos fue Xilinx y los dispositivos de Xilinx


se mantienen como uno de los más populares en compañías y grupos de investigación.
Otros vendedores en este mercado son Atmel, Altera, AMD y Motorola.

Características
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 una placa de inserción (es una placa de uso genérico reutilizable o
semipermanente) programable. Estos bloques lógicos e interconexiones pueden ser
programados después del proceso de manufactura por el usuario/diseñador, así que la
FPGA puede desempeñar cualquier función lógica necesaria.

Una tendencia reciente ha sido combinar los bloques lógicos e interconexiones de


las 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 de la 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 de la
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.

Muchas 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.

Puertas lógicas
1982: 8192 puertas, Burroughs Advanced Systems Group
1987: 9 000 puertas, Xilinx
1992: 600 000, Naval Surface Warfare Department
Principios de los 2000: millones
Evolución de mercado
1985: primera FPGA comercial por Xilinx, XC2064
1987: 14 millones de dólares
1993: más de 385 millones de dólares
2005: 1 900 millones de dólares
2010: alrededor de 2 750 millones de dólares
2013: 5 400 millones de dólares
2020: alrededor de 9 800 millones de dólares
Programación
En la FPGA no se realiza programación tal cual como se realiza en otros
dispositivos como DSP, CPLD o microcontroladores. La FPGA tiene celdas que se
configuran con una función específica ya sea como memoria (FLIP-FLOP tipo D), como
multiplexor o con una función lógica tipo AND, OR, XOR. La labor del programador es
describir el hardware que tendrá la FPGA. Por consiguiente, la tarea del
programador es definir la función lógica que realizará cada uno de los CLB,
seleccionar el modo de trabajo de cada IOB e interconectarlos.

El diseñador cuenta con la ayuda de entornos de desarrollo especializados en el


diseño de sistemas a implementarse en una FPGA. Un diseño puede ser capturado ya
sea como esquemático, o haciendo uso de un lenguaje de programación especial. Estos
lenguajes de programación especiales son conocidos como HDL o lenguajes de
descripción de hardware. Los HDL más utilizados son:

VHDL
Verilog
ABEL
En un intento de reducir la complejidad y el tiempo de desarrollo en fases de
prototipado rápido, y para validar un diseño en HDL, existen varias propuestas y
niveles de abstracción del diseño. Los niveles de abstracción superior son los
funcionales y los niveles de abstracción inferior son los de diseño al nivel de
componentes hardware básicos. Entre otras, National Instruments LabVIEW FPGA
propone un acercamiento de programación gráfica de alto nivel.

Aplicaciones
Cualquier circuito de aplicación específica puede ser implementado en una FPGA,
siempre y cuando esta disponga de los recursos necesarios. Las aplicaciones donde
más comúnmente se utilizan las FPGA incluyen a los DSP (procesamiento digital de
señales), radio definido por software, sistemas aeroespaciales y de defensa,
prototipos de ASIC, sistemas de imágenes para medicina, sistemas de visión para
computadoras, reconocimiento de voz, bioinformática, emulación de hardware de
computadora, entre otras. Cabe notar que su uso en otras áreas es cada vez mayor,
sobre todo en aquellas aplicaciones que requieren un alto grado de paralelismo.

Existe código fuente disponible (bajo licencia GNU GPL)34 de sistemas como
microprocesadores, microcontroladores, filtros, módulos de comunicaciones y
memorias, entre otros. Estos códigos se llaman cores.

Actualmente es posible implementar todo un SoC mediante una FPGA única, existen
herramientas libres y núcleos de propiedad intelectual del código abierto que
facilitan su implementación, tal es es caso de la Arquitectura de Bus Simple (SBA)
que provee una librería de código VHDL portable para la implementación en FPGAs de
distintos fabricantes.

Tecnología de la memoria de programación


Las FPGA también se pueden diferenciar por utilizar diferentes tecnologías de
memoria:

Volátiles: basadas en RAM. Su programación se pierde al quitar la alimentación.


Requieren una memoria externa no volátil para configurarlas al arrancar (antes o
durante el reinicio).
No Volátiles: basadas en ROM. Hay de dos tipos, las reprogramables y las no
reprogramables.
Reprogramables: basadas en EPROM o flash. Estas se pueden borrar y volver a
reprogramar aunque con un límite de unos 10.000 ciclos.
No reprogramables: basadas en fusibles o antifusibles. Solo se pueden programar una
vez, lo que las hace poco recomendables para trabajos en laboratorios.
Ejemplo de tarjeta de desarrollo que incorpora una FPGA:5

FPGA.JPG

Fabricantes
A principios del 2007, el mercado de las FPGA se ha colocado en un estado en el que
hay dos grandes productores de FPGA de propósito general y un conjunto de otros
competidores que ofrecen dispositivos con características específicas.

Xilinx es uno de los grandes líderes en la fabricación de FPGA.


Altera es el otro gran gigante. Anunció un acuerdo con Intel en 2015 para
desarrollar una plataforma de supercomputación con CPUs con FPGA integradas.
Lattice Semiconductor sacó al mercado FPGA con tecnología de 90nm. Es el líder en
tecnología no volátil como FPGA basadas en tecnología Flash y con productos de 90nm
y 130 nm. En 2014, Lattice semiconductor comenzó a ofrecer dispositivos
programables basados en RAM combinados con memoria no volátil no reprogramable.
Actel (actualmente Microsemi) tiene FPGA basadas en tecnología Flash reprogramable.
QuickLogic dispone de productos basados en antifusibles, programables una sola vez.
Atmel es uno de los fabricantes que produce dispositivos reconfigurables. Se enfocó
en microcontroladores AVR con FPGA juntos en un mismo encapsulado.
Achronix Semiconductor desarrollan FPGA muy rápidas.
MathStar Inc. ofrece FPGA que ellos denominan FPOA (Field Programmable Object
Arrays por sus siglas en inglés).
Tabula anunció en marzo de 2010 una nueva tecnología FPGA que utiliza la lógica de
tiempo multiplexado y la interconexión de mayor potencial de ahorro para
aplicaciones de alta densidad.
Véase también
Gate array
LabVIEW
CPLD, GAL, PLA, PAL, PLD
ASIC
VLSI
Circuito integrado
Hardware
GSD
Referencias
Morris Mano, M. (2003). Diseño Digital. Pearson. p. 61. ISBN 970-26-0438-9.
Gonzáles Maxinez, David Jaime (2014). Grupo Editorial Patria, ed. Programación de
Sistemas Digitales con VHDL. p. 330. ISBN 978-607-438-932-6.
opencores.org {{subst:en}}
«SBA IP Cores».
C. Quintáns, J.M. Lago, L.M. Menéndez y E. Mandado. “Plataforma hardware para el
autoaprendizaje de las FPGA y sus aplicaciones”. Actas del VII Congreso de
Tecnologías Aplicadas a la Enseñanza de la Electrónica. Madrid, 12-14 de julio,
2006. ISBN 84-689-9590-8.
Enlaces externos
Wikimedia Commons alberga una categoría multimedia sobre Field-programmable gate
array.
Grupo HDL-FPGA Lista de correo, en idioma español, para discusión de temas
relacionados con HDLs y FPGAs.
Más información sobre FPGA. (en inglés)
Grupos de trabajo con FPGA Lista de grupos de discusión FPGA, administrados por el
MC Luis Orantes graduado de la Universidad de Pittsburgh en EUA.
Proyecto para intercambiar programas para FPGA (En castellano)
Cores libres Sitio de descarga de cores libres y gratuitos. (en inglés)
Central de FPGA: vendedor, foro, IP, webcast (en inglés)
JCRA: Congreso español sobre Computación Reconfigurable y Aplicaciones (En español)
Fabricantes: Actel, Altera, Atmel, Cypress, Lattice, QuickLogic, Xilinx. (en
inglés)
Portal sobre FPGAs Argentina
Fpga Libres Fpga Libres
FPGA Database
Recursos
Arquitectura de las FPGA y CPLD (inglés)
¿Cómo funcionan la lógica programable? (inglés)
FPGA Central: Vendor, Forum, IP, Webcast (inglés)
Almacén FPGA FAQ (inglés)
Altera Tutorials and Lab Exercises (Inglés). - Archivos en VHDL y Verilog HDL.
Lista de sistemas y tarjetas FPGA (inglés)
FPGA Tutoriales (inglés)
DSP-FPGA.com Revista de electrónica (inglés)
OpenFPGA
Simple Bus Architecture
Archivado el 10 de julio de 2007 en la Wayback Machine.
OpenCores.org - Código abierto de algunas IP (Intelectual Property) (inglés)
Diseño de FPGA desde cero (inglés)
Diseño digital utilizando lógicas programables
Conceptos claves del lenguaje VHDL
Simulador de códigos HDL usando el compilador de C (en inglés)
Diseño Digital para FPGA, con herramientas libres
Utilidades
Altium Designer - Utilidad de diseño de Altera, Xilinx, Actel, y otras familias
FPGA/CPLD
Quartus - Utilidad de diseño para los dispositivos Altera
ISE - Utilidad de diseño para los dispositivos Xilinx
ispLEVER - Paquete de aplicaciones para los dispositivos Lattice
LogicSim - Herramienta de simulación FPGA
ModelSim - Simulador de diferentes lenguajes de programación hardware HDL/Verilog
Synplify - Herramienta de síntesis FPGA
Yosys - Herramienta libre para síntesis en FPGA
Arachne-pnr - Herramienta libre de emplazado y rutado para FPGA de Lattice
Icestorm - Documentación y utilidad de configuración para FPGA de Lattice. Junto a
Yosys y Arachne-pnr forman un conjunto de herramientas libres para cerrar el ciclo
de diseño completo, obteniendo el fichero de configuración (bitstream) a partir de
código en Verilog
Icarus Verilog - Simulador libre para Verilog
SBA System Creator - Herramienta para generar SoC basado en SBA.
Gtkwave - Visualizador libre de señales
Multimedia
Prof. Bob Brodersen: General Purpose, Low Power Supercomputing Using
Reconfiguration

Control de autoridades
Proyectos WikimediaWd Datos: Q190411Commonscat Multimedia: Field Programmable Gate
Array
IdentificadoresGND: 4347749-5LCCN: sh93009062
Categorías: Electrónica digitalSiglas de informáticaCircuitos integrados para
electrónica digitalComponentes activosInventos de Estados Unidos
Menú de navegación
No has accedidoDiscusiónContribucionesCrear una
cuentaAccederArtículoDiscusiónLeerEditarVer historialBuscar
Buscar en Wikipedia
Portada
Portal de la comunidad
Actualidad
Cambios recientes
Páginas nuevas
Página aleatoria
Ayuda
Donaciones
Notificar un error
En otros proyectos
Wikimedia Commons
Imprimir/exportar
Crear un libro
Descargar como PDF
Versión para imprimir
Herramientas
Lo que enlaza aquí
Cambios en enlazadas
Subir archivo
Páginas especiales
Enlace permanente
Información de la página
Elemento de Wikidata
Citar esta página

En otros idiomas
‫العربية‬
Deutsch
English
Français
हहनदद
Bahasa Indonesia
Português
Русский
中文
33 más
Editar enlaces
Esta página se editó por última vez el 13 ago 2019 a las 09:27.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir
Igual 3.0; pueden aplicarse cláusulas adicionales. Al usar este sitio, usted acepta
nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una
organización sin ánimo de lucro.
Política de privacidadAcerca de WikipediaLimitación de
responsabilidadDesarrolladoresDeclaración de cookiesVersión para móvilesWikimedia
FoundationPowered by MediaWiki

También podría gustarte