Sei sulla pagina 1di 4

FPGA

Field Programmable Gate Array


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.













Programacin
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
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
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
:


http://es.wikipedia.org/wiki/Field_Programmable_Gate_Array

Potrebbero piacerti anche