HISTORIA DE LAS FPGA S PDF

También podría gustarte

Está en la página 1de 11

Diseño de Sistemas Digitales

Historia de la FPGA

Docente: Eyberth Rojas Martínez

Integrantes:

Keyner Giussepe Olivo Gaona


(2017219044)

Gustavo José Perea Palacio


(2017219050)

Ramón Eduardo Calderón Bayona


(2018119008)

Fecha:
07/09/2019
¿QUE ES LA FGPA?

Una FPGA (field programmable gate array) es un dispositivo semiconductor que


contiene componentes lógicos programables e interconexiones programables entre
ellos. Los componentes lógicos programables pueden ser programados para
duplicar la funcionalidad de puertas lógicas básicas tales como AND, OR, NOT o
funciones combinacionales más complejas tales como decodificadores o simples
funciones matemáticas. En muchos FPGA, estos componentes lógicos
programables (o bloques lógicos, según el lenguaje comúnmente usado) también
incluyen elementos de memoria, los cuales pueden ser simples flip-flops o bloques
de memoria más complejos.
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 un breadboard programable. Estos bloques lógicos e interconexiones
pueden ser programados después del proceso de manufactura por el
usuario/diseñador, así que el FPGA puede desempeñar cualquier función lógica
necesaria. Las FPGA son generalmente más lentas que sus contrapartes, los
circuitos integrados de aplicaciones específicas (ASIC por sus siglas en inglés), no
pueden soportar diseños muy complejos, y consumen más energía. Sin embargo,
ellas tienen muchas ventajas tales como la reducción del tiempo para la salida al
mercado de productos, la habilidad para ser reprogramadas después de haber
salido al mercado a fin de corregir posibles errores, y reduce los costos de ingeniería
tales como investigación, diseño y prueba de un nuevo producto. Los vendedores
pueden proporcionar versiones de FPGA, más baratas y menos flexibles, las cuales
no pueden ser modificadas después de que el diseño haya sido hecho. El desarrollo
de estos diseños es hecho en FPGA´S regulares y entonces se migra hacia una
versión mejorada que es más parecida a un ASIC Dispositivos de lógica
programable compleja, como los CPLD, son otra alternativa.

CARACTERISTICAS
Una jerarquía de interconexiones programables permite a los bloques lógicos de
una 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 o 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´s 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.

HISTORIA DE LAS FPGA´S

Las FPGA (Field Programmable Gate Array), introducidas por Xilinx en 1985, son el
dispositivo programable por el usuario de más general espectro. También se
denominan LCA (Logic Cell Array). Consisten en una matriz bidimensional de
bloques configurables que se pueden conectar mediante recursos generales de
interconexión. Estos recursos incluyen segmentos de pista de diferentes longitudes,
más unos conmutadores programables para enlazar bloques a pistas o pistas entre
sí. En realidad, lo que se programa en una FPGA son los conmutadores que sirven
para realizar las conexiones entre los diferentes bloques, más la configuración de
los bloques.

Ross Freman, cofundador de Xilinx, inventó el arreglo matricial de compuertas. La


raíz histórica de las FPGA son los dispositivos de lógica programable compleja
(CPLD) de mediados de los 1980. CPLD y FPGA incluyen un relativo gran número
de elementos lógicos programables. El rango de densidad de los CPLD va desde
miles a decenas de miles de compuertas lógicas, mientras que el de las FPGA va
típicamente desde decenas de miles hasta muchos millones. La diferencia primaria
entre CPLD´S y FPGA´S son sus arquitecturas. Un CPLD tiene una estructura un
poco restringida, consistiendo la unión de uno o más arreglos lógicos que alimentan
a un número pequeño de registros con entrada de reloj (clock). El resultado de estos
es menos flexibilidad, con la ventaja de una mejor predicción de los tiempos de
retraso. La arquitectura de las FPGAs, por otro lado, son dominadas por las
interconexiones. Esto las hace más flexibles (en términos del rango de diseños
prácticos para los cuales pueden ser usadas) pero también es posible irse un poco
más lejos en cuanto al diseño. Otra notable diferencia entre CPLD´S y FPGA´S es
la presencia de funciones de más alto nivel (tales como sumadores y
multiplicadores) dentro de las FPGAs, además de memorias. Una diferencia
importante es que muchas FPGAs modernas, soportan una total o parcial
reconfiguración del sistema, permitiendo que una parte del diseño sea
reprogramada mientras las otras partes siguen funcionando. Una tendencia reciente
ha sido llevar la arquitectura un paso más lejos, combinado los bloques lógicos e
interconexiones de las tradicionales FPGAs, con microprocesadores y con
periféricos relacionados para formar un completo “Sistema programable en un chip”.
Ejemplo de tales tecnologías hibridas pueden ser encontradas en los Xilinx Virtex-II
PRO y dispositivos Virtex-4, los cuales incluyen uno o más procesadores Power PC
incrustados junto con la lógica FPGA.

El Atmel FPSLIC es otro dispositivo como tal, 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, los cuales son implementados junto con la
lógica FPGA. Esos núcleos incluyen el Xilinx MicroBlaze y PicoBlaze, el Altera Nios
y procesador Nios II, y los de open source LatticeMicro32 y LatticeMicro8. Como
previamente se dijo, muchas FPGA modernas, tienen la habilidad de ser
reprogramadas en “Tiempo de funcionamiento”, y este es el principio de la idea de
computación reconfigurable o sistemas reconfigurables, lo cual permite que estos
sistemas se reconfiguren a sí mismos para cumplir con la tarea actual. Sin embargo,
no todas las FPGA actuales soportan esta metodología.

APLICACIONES DE LA FPGA´S
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 imágenes para medicina, sistemas de visión para computadoras,
reconocimiento de voz, bioinformática, emulación 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.
ARQUITECTURA
La arquitectura básica consiste en un arreglo de bloques lógicos programables
(CLB) y canales de comunicación. Múltiples conectores de entrada/salida pueden
caber en el tamaño largo de una fila o el ancho de una columna. Generalmente,
todos los canales de comunicación tienen el mismo ancho (número de cables).
Cualquier circuito de aplicación puede ser hecho dentro de la FPGA, siempre y
cuando esta disponga de los recursos necesarios. Un bloque lógico típico de FPGA
consiste en 4 entradas a una tabla de funciones lógicas (LookUp Table), y un flip-
flop como se muestra en la siguiente grafica.

Hay solamente una salida, la cual puede ser ambas, la salida registrada o no
registrada por el flip-flop, proveniente de la salida de la tabla de funciones lógicas.
El bloque lógico tiene entonces 4 entradas para la tabla y una entrada de reloj para
el flip-flop. Las señales de reloj y otras más, son manejadas por separado en FPGAs
comerciales.
Para esta arquitectura, la localización de los pines de los bloques lógicos de la
FPGA es mostrados abajo.

Cada entrada es accesible desde un lado del bloque lógico, mientras que el pin de
salida puede conectarse a cables de comunicación en ambos canales, el de la
derecha y el canal debajo del bloque lógico. Cada pin de salida del bloque lógico
puede conectarse a cualquier segmento de cable en el canal de comunicación
adyacente a él.
Similarmente, un conector de Entrada/Salida puede conectarse a cualquier
segmento de cable en el canal de comunicación adyacente a él. Generalmente,
cada segmento de conexión atraviesa solamente por un bloque lógico, antes de que
este termine en una de las cajas de interruptores. Mediante la selección de
conexiones a través de los interruptores programables que están dentro de las cajas
de conexiones, se pueden hacer líneas de conexión más largas. Para
interconexiones más rápidas, algunas arquitecturas de FPGA usan líneas de
conexiones más largas que atraviesan múltiples bloques lógicos. En cada punto
donde se intersecan, un canal de conexión vertical y un canal horizontal, hay una
caja de interruptores que permite conectar una línea, a otras tres posibles líneas
adyacentes dentro del segmento del canal. Una línea solo puede conectarse con
otra de las tres posibles anteriormente mencionadas, no puede conectarse
directamente con líneas de otras intersecciones.
Todo lo dicho se mostrará en la siguiente figura:

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

FABRICANTES DE ALGUNAS FPGA Y SUS ESPECIALIDADES


A finales del 2005, el mercado de las FPGA se ha colocado en un estado donde hay
dos productores de FPGA de propósito general que están a la cabeza del mismo, y
un conjunto de otros competidores quienes se diferencian por ofrecer FPGAs de
capacidades únicas.
• 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 anti fusibles, 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.

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 TÍPICAS.

Las características de las FPGA son su flexibilidad, capacidad de


procesado en paralelo y velocidad. Esto les convierte en dispositivos
idóneos para:
1. *Simulación y depuración en el diseño de microprocesadores.
2. *Simulación y depuración en el diseño de ASIC´S.
3. *Procesamiento de señal digital, por ejemplo, vídeo.
4. *Sistemas aeronáuticos y militares.

Evolución tecnológica de los dispositivos FPGA´S de Xilinx


Para entender un poco mejor la evolución tecnológica de los diferentes dispositivos
FPGAs de Xilinx y qué cambios significativos se han producido en una determinada
fecha y por qué motivos se han producido, se muestra una línea del tiempo con
todas las FPGAs analizadas para este estudio.
Como ya veremos en siguientes apartados, hay un importante salto evolutivo en
cuanto a avance tecnológico se refiere a finales de los noventa con la fabricación
por parte de Xilinx de dos nuevas familias, Spartan y Virtex. Se fabrican diseños de
arquitecturas más complejas pero a la vez más funcionales.

VELOCIDAD DE SISTEMA:

La velocidad del sistema - junto con el consumo - es uno de los aspectos más
importantes para los clientes de FPGAs. La velocidad depende de varios factores
como hemos visto anteriormente, y Xilinx ha ido evolucionando/mejorando la
arquitectura y diseño del chip consiguiendo así rendimientos 20 veces superiores a
los iniciales. Xilinx salió al mercado de las FPGAs a mediados de los ochenta con
dispositivos con un rendimiento de unos 50 MHz en las series XC2000, XC3000 y
XC4000. No fue hasta finales de los 90, con la salida de la Spartan y Virtex, cuando
empezó un crecimiento considerable en velocidad del sistema en casi todas las
FPGAs que salían nuevas al mercado, llegando a los 400 MHz. En los últimos diez
años ha habido un claro ascenso de esta tecnología como indica la línea de
tendencia, con algunos picos, debidos a la producción de algunos modelos de
FPGAs centrados en el bajo consumo, limitando así la velocidad del sistema. En
varias ocasiones, Xilinx no proporciona este parámetro en las hojas de datos, ya
que el rango de velocidad del sistema en algunas FPGAs puede variar
significativamente dependiendo de la configuración que se le dé al chip. En las
últimas series de la gama Virtex hay familias específicas para proporcionar un alto
rendimiento en cuanto a la velocidad del sistema.
Conclusión
Las FPGA´s son herramientas electronicas que se siguen utilizando
hoy en día, se usan para programar y reprogramar circuitos mediante
programación de hardward, esta función causa que su precio sea algo
elevado pero es entendible debido a que se puede rectificar el circuito
y analizarlo para luego programar otro circuito permanentemente.
Biblio-grafia
• http://electronicamagiscopica.blogspot.com/2009/09/un-poco-de-
historia-de-los-fpgas.html?m=1

• http://recursos.normalpopayan.edu.co:8983/wikipedia_es_all_20
17-08/A/FPGA.html

• http://cursos.mcielectronics.cl/2019/06/18/fpga-field-
programmable-gate-array/

También podría gustarte