Sunteți pe pagina 1din 8

INTRODUCCION:

Historia de las FPGAs


Las FPGAs fueron inventadas en el ao 1984 por Ross Freeman y Bernard
Vonderschmitt, cofundadores de Xilinx, y surgen como una evolucin de los
CPLDs.
Las FPGA son el resultado de la convergencia de dos tecnologas diferentes, los
dispositivos lgicos programables (PLDs) y los circuitos integrados de aplicacin
especfica (ASIC). La historia de los PLDs comenz con los primeros dispositivos
PROM (Programmable Read-Only 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. 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.
QU ES UN FPGA?
Un FPGA (field programmable gate array) es un dispositivosemiconductor que
contiene componentes lgicos programables einterconexiones programables entre
ellos. Los componentes lgicosprogramables pueden ser programados para
duplicar la funcionalidad depuertas lgicas bsicas tales como AND, OR, XOR,
NOT o funcionescombinacionales ms complejas tales como decodificadores o
simplesfunciones matemticas. En muchos FPGA, estos componentes
lgicosprogramables (o bloques lgicos, segn el lenguaje comnmente
usado)tambin incluyen elementos de memoria, los cuales pueden ser simplesflipflops o bloques de memoria ms complejos.Una jerarqua de interconexiones
programables permite a los bloqueslgicos de un FPGA, ser interconectados
segn la necesidad del diseadordel sistema, algo parecido a un breadboard
programable. Estos bloqueslgicos e interconexiones pueden ser programados
despus del proceso demanufactura por el usuario/diseador, as que el FPGA
puede desempearcualquier funcin lgica necesaria.
Las FPGA son generalmente ms lentas que sus contrapartes, loscircuitos
integrados de aplicaciones especficas (ASIC), no pueden soportar diseos muy
complejos, y consumen msenerga. Sin embargo, ellas tienen muchas ventajas

tales como la reduccindel tiempo para la salida al mercado de productos, la


habilidad para serreprogramadas despus de haber salido al mercado a fin de
corregirposibles errores, y reduce los costos de ingeniera tales como
investigacin,diseo y prueba de un nuevo producto. Los vendedores
puedenproporcionar versiones de FPGA, ms baratas y menos flexibles, las
cualesno pueden ser modificadas despus de que el diseo haya sido hecho.

CARACTERISTICAS:
Una jerarqua de interconexiones programables permite a los bloques lgicos de
un FPGA ser interconectados segn la necesidad del diseador del sistema. 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.
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.
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.
o Reprogramables: Basadas en EPROM o flash. stas se pueden
borrar y volver a reprogramar aunque con un lmite de unos 10.000
ciclos.
o No Reprogramables: Basadas en fusibles o antifusibles. Solo se
pueden programar una vez, lo que las hace poco recomendables
para trabajos en laboratorios.

ARQUITECTURA

Un FPGA consiste en arreglos de varios bloques programables (bloques lgicos)


los cuales estn interconectados entre s y con celdas de entrada/salida.
La arquitectura bsica consiste en un arreglo de bloques lgicosprogramables
(CLB) y canales de comunicacin. Mltiples conectores deentrada/salida pueden
caber en el tamao largo de una fila o el ancho deuna columna.

Cualquier circuito de aplicacin puedeser hecho dentro de la FPGA, siempre y


cuando esta disponga de losrecursos necesarios. Un bloque lgico tpico de FPGA
consiste en 4entradas a una tabla de funciones lgicas, y un flip-flopcomo se
muestra en la siguiente grfica.

Figura 1: Bloque lgico tpico

Hay solamente una salida, la cual puede ser ambas, la salidaregistrada o no


registrada por el flip-flop, proveniente de la salida de latabla de funciones lgicas.
El bloque lgico tiene entonces 4 entradas parala tabla y una entrada de reloj para
el flip-flop. Las seales de reloj y otrasms, son manejadas por separado en
FPGAs comerciales.
1. Bloques Lgicos

El bloque lgico consta de una parte combinacional, que permite implementar


funciones lgicas booleanas, ms una parte secuencial que permite sincronizar la
salida con una sea de reloj externa e implementar registros.
La parte combinacional vara de un fabricante a otro. A continuacin, explicaremos
dos de ellas, representativas porque poseen unas prestaciones opuestas.
a. Bloque lgico basado en LUT (look-up table):
Una LUT es un componente de clulas de memoria SRAM que almacena una
tabla de verdad. Las direcciones de las clulas son las entradas de la funcin
lgica que queremos implementar, y en cada celda de memoria se guardan el
resultado para una de las combinaciones de las entradas. En una LUT de n x 1 es
posible implementar cualquier funcin lgica de n entradas.

Figura 2:Ejemplo de implementacin de una funcin lgicade tres entradas en una LUT de 8 x 1

b. Bloque lgico basado en multiplexores:


El bloque lgico basado en multiplexores, como el de la figura 1.23, se caracteriza
porque requiere mucha menos lgica que el anterior basado en una LUT, y, en
consecuencia, ocupa mucha menos rea. De este modo, se pueden implementar
mayor nmero de bloques lgicos en el mismo espacio, o, para el mismo nmero
de bloques, disponer de ms espacio para incrementar los recursos de rutado.
Como contrapartida, no se puede implementar cualquier funcin lgica de n
entradas, como ocurra con las LUTs. En caso necesario, esta funcin lgica hay
que repartirla entre varios bloques lgicos.

Figura 4: Bloque lgico basado en multiplexores


La salida f la podemos expresar en funcin de los valores intermedios , , , los
cuales los podemos escribir en funcin de las entradas de la forma:

De donde resulta f = + .
Evidentemente, cualquier funcin lgica que se desee implementar debe respetar
las ecuaciones anteriormente escritas. Como se dijo anteriormente, la estructura
de los bloques programables y las formas en que estas pueden ser
interconectadas, tanto salidas como entradas de los bloques, vara de acuerdo al
fabricante. En general un bloque programable tiene menos funcionalidad que la
combinacin de sumas de productos y macroceldas de un CPLD, pero como cada
FPGA tienen una gran cantidad de bloques programables es posible implementar
grandes funciones utilizando varios bloques en cascada.

2. Interconexin entre bloques programables


Un FPGA que tiene una gran cantidad de canales de interconexin tiende a tener
pequeos bloques lgicos con muchas entradas y salidas en comparacin con el
nmero de compuertas que puede generar el bloque Este bloque lgico se
caracteriza por ser bastante sencillo, con poca lgica en su parte combinacional.
Este es el caso del bloque lgico a base de multiplexores del apartado anterior.
Este tipo de FPGA generalmente utiliza tecnologa antifusible. Un FPGA que tiene
una estructura pequea en canales de interconexin tiende a tener grandes
bloques lgicos con pocas entradas y salidas en comparacin con el nmero de
compuertas que existe en el bloque.
Este es el caso del bloque lgico basado en LUTs, que permiten implementar
cualquier funcin lgica del mismo nmero de entradas. Este tipo de FPGA
generalmente est fabricado con tecnologa SRAM. Finalmente, las FPGAs
basadas en celdas Flash suelen emplear un bloque lgico sencillo para
incrementar los recursos de rutado, como ocurre con las FPGAs de antifusibles.
Una arquitectura con bloques pequeos permite utilizar todos los recursos del
dispositivo, sin embargo tendremos que utilizar un gran nmero de estas para
poder implementar funciones lgicas de varios trminos, lo cual genera un tiempo
de retardo por cada bloque implementado. Cuando el tamao del bloque es
grande sucede lo contrario, en este tipo de bloques es posible utilizar un gran
nmero de compuertas por lo que podemos implementar funciones lgicas de
varios trminos con pocos bloques.
3. Bloques entrada/salida
La funcin de un bloque de entrada/salida es permitir el paso de una seal hacia
dentro o hacia el exterior del dispositivo. Adems debe contar con recursos tales
como:
Salidas configurables como TRI-STATE u open-collector.
Entradas con posibilidad de pull-up o pull-down programables.
Registros de salida.
Registros de entrada.

VENTAJAS Y DESVENTAJAS DE LOS FPGA

Ventajas de los FPGA:


o Prototipado rpido
o Capacidad para reconfiguracin en campo
o Ciclo de vida largo (reduce el riesgo de obsolescencia)
o Flexibilidad
o Posibilidad de reconfiguracin del hardware sin necesidad de
cambio en la placa madre del diseo que la contiene
o Procesamiento en paralelo
Desventajas de los FPGA:
o Tamao y costo de chip
o Al estar basadas en RAM, pierden su configuracin al suprimir la
energa (hay soluciones a ello).
o Poseen retardos de propagacin mayores a los existentes en ASIC .

PROGRAMACION
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).

FABRICANTES DE ALGUNAS FPGA Y SUSESPECIALIDADES


A finales del 2005, el mercado de las FPGA se ha colocado en unestado donde
hay dos productores de FPGA de propsito general que estna la cabeza del
mismo, y un conjunto de otros competidores quienes sediferencian por ofrecer
FPGAs de capacidades nicas.
Xilinx es uno de los grandes lderes de FPGA

Altera es el otro gran lder de FPGA.


Lattice Semiconductor es un proveedor lder en tecnologa no voltil,
FPGAs basadas en tecnologa Flash.
Actel tiene FPGAs basadas en tecnologa Flash reprogramable. Tambin
ofrece FPGA que incluyen mezcladores de seales basados en Flash.
QuickLogic tiene productos basados en fusibles (programable una sola
vez).

APLICACIONES
Las aplicaciones de las FPGA incluyen a los DSP (Digital Signal Processor), radio
definido por software, sistemas aeroespaciales y de defensa, prototipos de los
ASIC, sistemas de imgenes para medicina, sistemas de visin para
computadoras, reconocimiento de voz, bioinformtica, emulacin de hardware de
computadora, y tienen un crecimiento de aplicaciones en otras reas. Las FPGA
encuentran aplicaciones en muchas reas donde se requiera del paralelismo
ofrecido por su arquitectura.

CONCLUSIONES
La ventaja de los dispositivos FPGA se observa principalmente en la flexibilidad
que brindan dentro de un desarrollo, al permitir modificar totalmente el
comportamiento y el funcionamiento del hardware sin cambios significativos en el
mismo. Se ahorra de esta forma tiempo y recursos de desarrollo.
Si bien quedan an muchos obstculos por resolver, las caractersticas y
capacidades de los dispositivos FPGA en uso dentro del laboratorio ya permiten
alcanzar el objetivo planteado. Mientras se aplica esta tecnologa a la resolucin
de los problemas actuales, se espera abordar a corto plazo la implementacin de
una placa reconfigurable para PC con bus PCI, realizada con un componente
FPGA como nico circuito integrado principal.

S-ar putea să vă placă și