Sie sind auf Seite 1von 6

Field Programmable Gate Array

Una FPGA de Altera.

Una Spartan de Xilinx.

Una FPGA (del ingls Field Programmable Gate Array) es un


dispositivo semiconductor que contiene bloques de lgica cuya interconexin y
funcionalidad puede ser configurada 'in situ' mediante un lenguaje de descripcin
especializado. La lgica programable puede reproducir desde funciones tan sencillas como
las llevadas a cabo por una puerta lgica o un sistema combinacional hasta
complejos sistemas en un chip.
Las FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son ms 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 aade
una enorme flexibilidad al flujo de diseo), sus costes de desarrollo y adquisicin son
mucho menores para pequeas cantidades de dispositivos y el tiempo de desarrollo es
tambin menor.
Ciertos fabricantes cuentan con FPGAs que slo se pueden programar una vez, por lo que
sus ventajas e inconvenientes se encuentran a medio camino entre los ASICs y las FPGAs
reprogramables.
Histricamente las FPGA surgen como una evolucin de los conceptos desarrollados en
las PAL y los CPLD.
ndice
[ocultar]

1 Historia: FPGA vs CPLD

2 Historia

3 Caractersticas

4 Programacin

5 Aplicaciones

6 Tecnologa de la memoria de programacin

7 Fabricantes

8 Vase tambin

9 Referencias

10 Enlaces externos
o

10.1 Recursos

10.2 Utilidades

10.3 Multimedia

Historia: FPGA vs CPLD[editar]

Arquitectura interna de una FPGA.

Las FPGAs fueron inventadas en el ao 1984 por Ross Freeman y Bernard Vonderschmitt,
co-fundadores de Xilinx, y surgen como una evolucin de los CPLDs.
Tanto los CPLDs como las FPGAs contienen un gran nmero de elementos lgicos
programables. Si medimos la densidad de los elementos lgicos programables en puertas
lgicas equivalentes (nmero de puertas NAND equivalentes que podramos programar en
un dispositivo) podramos decir que en un CPLD hallaramos del orden de decenas de
miles de puertas lgicas 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 ms rgida y consiste en una o ms sumas de productos programables cuyos
resultados van a parar a un nmero reducido de biestables sncronos (tambin
denominados flip-flops). La arquitectura de las FPGAs, por otro lado, se basa en un gran
nmero de pequeos bloques utilizados para reproducir sencillas operaciones lgicas, que

cuentan a su vez con biestables sncronos. La enorme libertad disponible en la


interconexin de dichos bloques confiere a las FPGAs una gran flexibilidad.
Otra diferencia importante entre FPGAs y CPLDs es que en la mayora de las FPGAs se
pueden encontrar funciones de alto nivel (como sumadores y multiplicadores) embebidas
en la propia matriz de interconexiones, as como bloques de memoria.

Historia[editar]
Las FPGA son el resultado de la convergencia de dos tecnologas diferentes, los
dispositivos lgicos programables (PLDs Programmable Logic Devices) y los circuitos
integrados de aplicacin especfica (ASIC [Application-Specific Integrated Circuit]). La
historia de los PLDs comenz con los primeros dispositivos PROM (Programmable ReadOnly Memory) y se les aadi versatilidad con los PAL (Programmable Array Logic) que
permitieron un mayor nmero de entradas y la inclusin de registros. Esos dispositivos han
continuado creciendo en tamao y potencia. Mientras, los ASIC siempre han sido potentes
dispositivos, pero su uso ha requerido tradicionalmente una considerable inversin tanto
de tiempo como de dinero. Intentos de reducir esta carga han provenido de la
modularizacin de los elementos de los circuitos, como los ASIC basados en celdas, y de
la estandarizacin de las mscaras, tal como Ferranti fue pionero con
la ULA (Uncommitted Logic Array). El paso final era combinar las dos estrategias con un
mecanismo de interconexin 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 PLDs ms
grandes, aunque hay diferencias puntuales que delatan antepasados diferentes. Adems
de en computacin reconfigurable, las FPGAs 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 [2] y los dispositivos de Xilinx se
mantienen como uno de los ms populares en compaas y grupos de investigacin. Otros
vendedores en este mercado son Atmel, Altera, AMD y Motorola.

Caractersticas[editar]
Una jerarqua de interconexiones programables permite a los bloques lgicos de un FPGA
ser interconectados segn la necesidad del diseador del sistema, algo parecido a
un breadboard (es una placa de uso genrico reutilizable o semi permanente)
programable. Estos bloques lgicos e interconexiones pueden ser programados despus
del proceso de manufactura por el usuario/diseador, as que el FPGA puede desempear
cualquier funcin lgica necesaria.
Una tendencia reciente ha sido combinar los bloques lgicos e interconexiones de los
FPGA con microprocesadores y perifricos relacionados para formar un Sistema
programable en un chip. Ejemplo de tales tecnologas hbridas pueden ser encontradas
en los dispositivos Virtex-II PRO y Virtex-4 de Xilinx, los cuales incluyen uno o ms
procesadores PowerPC embebidos junto con la lgica del FPGA. El FPSLIC de Atmel es
otro dispositivo similar, el cual usa un procesador AVR en combinacin con la arquitectura
lgica programable de Atmel. Otra alternativa es hacer uso de ncleos de procesadores
implementados haciendo uso de la lgica del FPGA. Esos ncleos incluyen los
procesadores MicroBlaze y PicoBlaze de Xlinx, Nios y Nios II de Altera, y los procesadores
de cdigo abierto LatticeMicro32 y LatticeMicro8.
Muchos FPGA modernos soportan la reconfiguracin parcial del sistema, permitiendo que
una parte del diseo sea reprogramada, mientras las dems partes siguen funcionando.
Este es el principio de la idea de la computacin reconfigurable, o los sistemas
reconfigurables.

Programacin[editar]

En la FPGA no se realiza programacin tal cual como se realiza en otros dispositivos


como DSP, CPLD o microcontroladores. La FPGA tiene celdas que se configuran con una
funcin especfica ya sea como memoria (FLIP-FLOP tipo D), como multiplexor o con una
funcin lgica 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 funcin lgica
que realizar cada uno de los CLB, seleccionar el modo de trabajo de cada IOB e
interconectarlos.
El diseador cuenta con la ayuda de entornos de desarrollo especializados en el diseo de
sistemas a implementarse en un FPGA. Un diseo puede ser capturado ya sea como
esquemtico, o haciendo uso de un lenguaje de programacin especial. Estos lenguajes
de programacin especiales son conocidos como HDL o Hardware Description
Language (lenguajes de descripcin de hardware). Los HDLs ms utilizados son:

VHDL

Verilog

ABEL

En un intento de reducir la complejidad y el tiempo de desarrollo en fases de prototipaje


rpido, y para validar un diseo en HDL, existen varias propuestas y niveles de abstraccin
del diseo. Los niveles de abstraccin superior son los funcionales y los niveles de
abstraccin inferior son los de diseo al nivel de componentes hardware bsicos. Entre
otras, National Instruments LabVIEW FPGA propone un acercamiento de programacin
grfica de alto nivel.

Aplicaciones[editar]
Cualquier circuito de aplicacin especfica puede ser implementado en un FPGA, siempre
y cuando esta disponga de los recursos necesarios. Las aplicaciones donde ms
comnmente se utilizan los FPGA incluyen a los DSP (procesamiento digital de seales),
radio definido por software, sistemas aeroespaciales y de defensa, prototipos de ASICs,
sistemas de imgenes para medicina, sistemas de visin para computadoras,
reconocimiento de voz, bioinformtica, emulacin 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 cdigo fuente disponible (bajo licencia GNU GPL)1 de sistemas
como microprocesadores, microcontroladores, filtros, mdulos de comunicaciones
y memorias, entre otros. Estos cdigos se llaman cores.

Tecnologa de la memoria de programacin[editar]


Las FPGAs tambin se pueden diferenciar por utilizar diferentes tecnologas de memoria:

Voltiles: Basadas en RAM. Su programacin se pierde al quitar la alimentacin.


Requieren una memoria externa no voltil para configurarlas al arrancar (antes o
durante el reset).

No Voltiles: Basadas en ROM. Hay de dos tipos, las reprogramables y las no


reprogramables.

1. Reprogramables: Basadas en EPROM o flash. stas se pueden borrar y volver a


reprogramar aunque con un lmite de unos 10.000 ciclos.
2. 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:2

Fabricantes[editar]
Desde principios de 2007, hay dos grandes productores de FPGA de propsito general,
adems de un conjunto de otros competidores quienes se diferencian por ofrecer
dispositivos con caractersticas nicas.

Xilinx es uno de los dos grandes lderes en la fabricacin de FPGA.

Altera es el otro gran lder.

Lattice Semiconductor lanz al mercado dispositivos FPGA con tecnologa de


90nm. Adems, Lattice es un proveedor lder en tecnologa no voltil, FPGA basadas
en tecnologa Flash, con productos de 90nm y 130nm.

Actel tiene FPGAs basados en tecnologa Flash reprogrammable. Tambin ofrece


FPGAs que incluyen mezcladores de seales basados en Flash.

QuickLogic tiene productos basados en antifusibles (programables una sola vez).

Atmel es uno de los fabricantes cuyos productos son reconfigurables (el Xilinx
XC62xx fue uno de estos, pero no estn siendo fabricados actualmente). Ellos se
enfocaron en proveer microcontroladores AVR con FPGAs, todo en el mismo
encapsulado.

Achronix Semiconductor a travs de tecnologa de Intel de 22 nm, su catlogo


incluye dispositivos FPGA de hasta 1.5 GHz

Vase tambin[editar]

Gate array

LabVIEW

CPLD, GAL, PLA, PAL, PLD

ASIC

VLSI

Circuito integrado

Hardware

GSD

Das könnte Ihnen auch gefallen