Download - Ensayo FPGA
-
8/13/2019 Ensayo FPGA
1/20
i
Instituto Politcnico Nacional
CENTRO DE INVESTIGACIN EN COMPUTACIN
ERNESTO SAL GUTIRREZ MORALESJOS NOEL ROSALES PREZGABRIEL BALTAZAR PREZ
DANIEL VERGARA MONTES
26 de Noviembre de 2013
FPGAs
-
8/13/2019 Ensayo FPGA
2/20
ii
CONTENIDO
1 INTRODUCCIN ........................................................................................................................... 1
1.1 Visin general ...................................................................................................................... 1
1.2 Partes de un FPGA ............................................................................................................... 11.3 Herramientas de Diseo ...................................................................................................... 2
1.3.1 Herramientas Tradicionales de Diseo de FPGA ......................................................... 3
1.3.2 Herramientas para Diseo de Sntesis de Alto Nivel ................................................... 3
1.4 Beneficios Principales de la Tecnologa FPGA ..................................................................... 5
1.5 Tipos de FPGA...................................................................................................................... 6
2 Desarrollo .................................................................................................................................... 8
2.1 FPGAs ................................................................................................................................. 8
2.1.1 Arquitectura de los FPGAs.......................................................................................... 8
2.1.2 Bloques Lgicos ........................................................................................................... 8
2.1.3 Interconexin entre bloques programables.............................................................. 10
2.1.4 Bloques de Entrada/Salida ........................................................................................ 11
2.1.5 Tiempos de propagacin ........................................................................................... 11
2.2 FPGA vs Microcontrolador ................................................................................................ 13
2.3 Aplicaciones FPGAs .......................................................................................................... 14
2.3.1 FPGAs para la industria aeroespacial ....................................................................... 14
2.3.2 FPGAs para el Supercomputo................................................................................... 15
2.3.3 FPGAs para el Anlisis de Video ............................................................................... 15
2.3.4 FPGAs para Criptografa de Alto Rendimiento......................................................... 15
2.3.5 FPGAs para Deteccin y Prevencin de Intrusos ..................................................... 16
3 Conclusiones.............................................................................................................................. 16
Ernesto Sal Gutirrez Morales .................................................................................................... 16
Gabriel Baltazar Prez ................................................................................................................... 16
Daniel Vergara Montes ................................................................................................................. 16
Jos Noel Rosales Prez ................................................................................................................ 17
4 Referencias ................................................................................................................................ 18
-
8/13/2019 Ensayo FPGA
3/20
pg. 1
1 INTRODUCCIN
1.1 VISIN GENERAL
En el nivel ms alto, los arreglos de compuertas programables en campo FPGAs son chips de
silicio reprogramables. Ross Freeman, el cofundador de Xilinx, invent el primer FPGA en 1985. Al
utilizar bloques de lgica pre-construidos y recursos para ruteo programables, se puede configurar
estos chips para implementar funcionalidades personalizadas en hardware sin tener que utilizar
una tablilla de prototipos o un cautn. Slo se deber desarrollar tareas de cmputo digital en
software y compilarlas en un archivo de configuracin o bitstream que contenga informacin de
cmo deben conectarse los componentes. Adems, los FPGAs son completamente reconfigurables
y al instante toman una nueva personalidad cuando se compila una diferente configuracin de
circuitos. Anteriormente slo los ingenieros con un profundo entendimiento de diseo de hardware
digital podan trabajar con la tecnologa FPGA. Sin embargo, el aumento de herramientas de diseo
de alto nivel est cambiando las reglas de programacin de FPGA s, con nuevas tecnologas que
convierten los diagramas a bloques grficos, o hasta el cdigo ANSI C a circuitos de hardware digital.
La adopcin de chips FPGA en la industria ha sido impulsada por el hecho de que los FPGAs
combinan lo mejor de los ASICs y de los sistemas basados en procesadores. Ofrecen velocidades
temporizadas por hardware y fiabilidad, pero sin requerir altos volmenes de recursos para
compensar el gran gasto que genera un diseo personalizado de ASIC. El silicio reprogramable tiene
la misma capacidad de ajustarse que un software que se ejecuta en un sistema basado en
procesadores, pero no est limitado por el nmero de ncleos disponibles. A diferencia de los
procesadores, los FPGAs llevan a cabo diferentes operaciones de manera paralela, por lo que stas
no necesitan competir por los mismos recursos. Cada tarea de procesos independientes se asigna a
una seccin dedicada del chip, y puede ejecutarse de manera autnoma sin ser afectada por otros
bloques de lgica. Como resultado, el rendimiento de una parte de la aplicacin no se ve afectado
cuando se agregan otros procesos.
1.2 PARTES DE UN FPGA
Cada chip de FPGA est hecho de un nmero limitado de recursos predefinidos con
interconexiones programables para implementar un circuito digital reconfigurable y bloques de E/S
que permitan que los circuitos tengan acceso al mundo exterior.
Las especificaciones de recursos de FPGA a menudo incluyen el nmero de bloques de lgica
configurables, nmero de bloques de lgica de funcin fijos como multiplicadores y el tamao de
los recursos de memoria como RAM en bloques embebidos. De las muchas partes del chip FPGA,
estos son generalmente los ms importantes cuando se seleccionan y comparan FPGAspara una
aplicacin en particular.
-
8/13/2019 Ensayo FPGA
4/20
2
Fig. 1.2-1Uno de los beneficios de los FPGAs ante los sistemas basados en procesador es que la lgica de aplicacin es
implementada en circuitos de hardware en lugar de ejecutarse aparte de un SO, controladores y software de aplicacin.
Fig. 1.2-2Las Diferentes Partes de un FPGA
Los bloques de lgica configurables (CLBs) son la unidad de lgica bsica de un FPGA. Algunas
veces referido como segmentos o clulas de lgica, los CLBs estn hechos de dos componentes
bsicos: flip-flops y tablas de consulta (LUTs). Es importante tomar esto en cuenta porque distintas
familias de FPGAsse diferencian en la manera en que los flip-flops y las LUTsestn empacados.
1.3 HERRAMIENTAS DE DISEO
Ahora que se conocen los bloques de construccin de un chip FPGA, la pregunta es "Cmo
configurar todos estos millones de componentes para construir la lgica que necesita ejecutar?"
La respuesta es que el usuario deber desarrollar tareas de cmputo digital en software
usando herramientas de desarrollo y despus compilarlas en un archivo de configuracin o una
-
8/13/2019 Ensayo FPGA
5/20
3
escritura de bits que contenga informacin sobre cmo los componentes deben estar cableados. En
el pasado el reto con la tecnologa FPGA era que las herramientas de diseo FPGA de bajo nivel
podan ser usadas solamente por los ingenieros con un profundo conocimiento del diseo de
hardware digital. Sin embargo, el surgimiento de las herramientas de diseo de la sntesis de alto
nivel (HLS), como software de diseo de sistemas NI LabVIEW o Vivado HSL, cambia las reglas de la
programacin de FPGAs y ofrece nuevas tecnologas que convierten los diagramas de bloquesgrficos en circuitos de hardware digital.
1.3.1 Herramientas Tradicionales de Diseo de FPGA
Durante los primeros 20 aos del desarrollo del FPGA, los lenguajes de descripcin de
hardware (HDLs) como VHDL y Verilog evolucionaron como los lenguajes elementales para disear
los algoritmos que se ejecutan en el chip FPGA. Estos lenguajes de bajo nivel integran algunos de los
beneficios ofrecidos por otros lenguajes de texto con el entendimiento de que en un FPGA, usted
est diseando un circuito. La sintaxis hbrida que resulta requiere que las seales sean mapeadas
o conectadas desde los puertos de E/S externos hasta las seales internas, las cuales finalmente son
cableadas a las funciones que alojan a los algoritmos. Estas funciones se ejecutan secuencialmentey pueden hacer referencia a otras funciones en el FPGA. Sin embargo, la naturaleza paralela real de
la ejecucin de tareas en un FPGA es difcil de visualizar en un flujo secuencial lnea por lnea. Los
HDLs reflejan algunos de los atributos de otros lenguajes textuales, pero difieren
considerablemente porque estn basados en un modelo de flujo de datos dnde la E/S es conectada
a una serie de bloques de funcin a travs de las seales.
Para verificar la lgica creada por un programador de FPGA, es comn escribir bancos de
pruebas en HDL para abarcar y practicar el diseo de FPGA al afirmar entradas y verificar salidas. El
banco de pruebas y el cdigo FPGA se ejecutan en un entorno de simulacin que modela el
comportamiento de temporizacin de hardware del chip FPGA y muestra al diseador todas las
seales de entrada y salida para validacin de pruebas. El proceso de crear el banco de pruebas HDLy ejecutar la simulacin generalmente requiere ms tiempo que crear el diseo original de FPGA
HDL.
Una vez que ha creado un diseo de FPGA usando HDL y que lo ha verificado, necesita
integrarlo en una herramienta de compilacin que toma la lgica basada en texto y despus de
varios pasos bastante complejos, sintetiza su HDL en un archivo de configuracin o escritura de bits
que contiene informacin sobre cmo los componentes deben estar cableados. Como parte de este
proceso manual de varios pasos, usted generalmente requiere especificar un mapeo de los nombres
de seales hasta los pines en el chip FPGA que est usando.
1.3.2 Herramientas para Diseo de Sntesis de Alto Nivel
El surgimiento de herramientas de diseo HLS grfico, como LabVIEW, ha eliminado algunos
de los principales obstculos del proceso de diseo HDL tradicional. El entorno de programacin
LabVIEW es claramente adecuado para programacin FPGA ya que representa paralelismo y flujo
de datos, as los usuarios experimentados y sin experiencia en los procesos de diseo FPGA pueden
impulsar a la tecnologa FPGA. Adems, ya que la propiedad intelectual (IP) anterior no est perdida,
usted puede usar LabVIEW para integrar VHDL existente en sus diseos LabVIEW FPGA.
-
8/13/2019 Ensayo FPGA
6/20
4
Fig. 1.3-1 Diseo Simple de FPGA Contador en VHDL
Fig. 1.3-2 . A la derecha est el software de desarrollo de sistemas LabVIEW, el cual es una herramienta de diseo de alto
nivel para los FPGAs en los dispositivos de hardware NI RIO. Ofrece abstraccin para la complejidad de bajo nivel que
generalmente encontramos.Despus de simular y verificar el comportamiento de su lgica FPGA, LabVIEW ofrece
caractersticas directamente en el entorno de desarrollo. Sin conocimiento del lenguaje HDL de bajo
nivel usted puede crear bancos de pruebas para practicar la lgica de su diseo. Adems, laflexibilidad del entorno LabVIEW ayuda a los usuarios ms avanzados a modelar la temporizacin y
la lgica de sus diseos al exportar a simuladores de ciclo preciso como Xilinx ISim.
Las herramientas LabVIEW FPGA automatizan el proceso de compilacin, as usted puede
comenzar el proceso con un clic y recibir reportes y errores, conforme las etapas de compilacin son
concluidas. Si ocurren errores de temporizacin de su diseo FPGA, LabVIEW resalta estas partes
crticas de manera grfica para acelerar el proceso de depuracin.
-
8/13/2019 Ensayo FPGA
7/20
5
1.4 BENEFICIOS PRINCIPALES DE LA TECNOLOGA FPGA
Los beneficios de la tecnologa FPGA, se pueden englobar en 5 elementos:
RendimientoAprovechando del paralelismo del hardware, los FPGAsexceden la potencia
de cmputo de los procesadores digitales de seales (DSPs) rompiendo el paradigma de
ejecucin secuencial y logrando ms en cada ciclo de reloj. BDTI, una destacada firma
analista que realiza evaluaciones de referencia, lanz evaluaciones mostrando cmo los
FPGAspueden entregar significativamente ms potencia de procesamiento por dlar que
una solucin de DSP, en algunas aplicaciones2. El controlar entradas y salidas (E/S) a nivel
de hardware ofrece tiempos de respuesta ms veloces y funcionalidad especializada que
coincide con los requerimientos de una aplicacin.
Tiempo en llegar al mercado La tecnologa FPGA ofrece flexibilidad y capacidades de
rpido desarrollo de prototipos para enfrentar los retos de que un producto se libere tarde
al mercado. Usted puede probar una idea o un concepto y verificarlo en hardware sin tener
que pasar por el largo proceso de fabricacin por el que pasa un diseo personalizado de
ASIC3. Posteriormente podr implementar cambios y realizar iteraciones de un diseo FPGAen cuestin de horas en vez de semanas. Tambin existe hardware comercial listo para
usarse (COTS) con diferentes tipos de E/S ya conectados a un chip FPGA programable por el
usuario. El aumento en disponibilidad de herramientas de software de alto nivel disminuye
la curva de aprendizaje con niveles de abstraccin. Estas herramientas frecuentemente
incluyen importantes ncleos IP (funciones pre-construidas) para control avanzado y
procesamiento de seales.
PrecioEl precio de la ingeniera no recurrente de un diseo personalizado ASIC excede
considerablemente al de las soluciones de hardware basadas en FPGA. La fuerte inversin
inicial de los ASICses fcilmente justificable para los fabricantes de equipos originales que
embarcan miles de chips por ao, pero muchos usuarios finales necesitan la funcionalidad
de un hardware personalizado para decenas o cientos de sistemas en desarrollo. La misma
naturaleza programable del silicio implica que no hay precio de fabricacin o largo plazos
de ejecucin de ensamblado. Los requerimientos de un sistema van cambiando con el
tiempo, y el precio de cambiar incrementalmente los diseos FPGA es insignificante al
compararlo con el precio de implementar cambios en un ASIC antes de su lanzamiento.
Fiabilidad Mientras que las herramientas de software ofrecen un entorno de
programacin, los circuitos de un FPGA son una implementacin segura de la ejecucin de
un programa. Los sistemas basados en procesadores frecuentemente implican varios
niveles de abstraccin para auxiliar a programar las tareas y compartir los recursos entre
procesos mltiples. El software a nivel driver se encarga de administrar los recursos de
hardware y el sistema operativo administra la memoria y el ancho de banda del procesador.El ncleo de un procesador slo puede ejecutar una instruccin a la vez, y los sistemas
basados en procesadores estn siempre en riesgo de que sus tareas se obstruyan entre s.
Los FPGAs, que no necesitan sistemas operativos, minimizan los retos de fiabilidad con
ejecucin paralela y hardware preciso dedicado a cada tarea.
Mantenimiento a largo plazo Como se mencion anteriormente, los chips FPGA son
actualizables en campo y no requieren el tiempo y el precio que implica redisear un ASIC.
Los protocolos de comunicacin digital por ejemplo, tienen especificaciones que podran
-
8/13/2019 Ensayo FPGA
8/20
6
cambiar con el tiempo, y las interfaces basadas en ASICs podran causar retos de
mantenimiento y habilidad de actualizacin. Los chips FPGA, al ser reconfigurables, son
capaces de mantenerse al tanto con modificaciones a futuro que pudieran ser necesarias.
Mientras el producto o sistema se va desarrollando, usted puede implementarle mejoras
funcionales sin la necesidad de invertir tiempo rediseando el hardware o modificando el
diseo de la tarjeta.
1.5 TIPOS DE FPGA
Al examinar las especificaciones de un chip FPGA, generalmente estn divididos en bloques
de lgica configurables como segmentos o clulas de lgica, funciones fijas de lgica como
multiplicadores, y recursos de memoria como RAM en bloque embebida. El chip FPGA tiene otros
componentes, pero stos son generalmente los ms importantes cuando se seleccionan y comparan
FPGAspara una aplicacin en particular.
Las principales caractersticas que nos permiten comparan los FPGA son:
Proceso de Fabricacin.
Clulas de lgica.
Administracin de reloj.
Memoria.
Capacidades DSP.
Compatibilidad E/S.
Entre los principales fabricantes de FPGAsse encuentran las empresas: Xilinx, Altera,Lattice y Actel.
Xilinx
Sus principales familias se muestran en la figura.
Fig. 1.5-1Familia de FPGAsXilinx
-
8/13/2019 Ensayo FPGA
9/20
7
Caractersticas Artix-7 Kintex-7 Virtex-7 Spartan-6 Virtex-6Clulas de lgica 215,000 480,000 2,000,000 150,000 760,000
RAM en bloque 13Mb 34Mb 68Mb 4.8Mb 38MbSegmentos DSP 740 1,920 3,600 180 2,016
DSP Performance(FIR Simtrico)
930GMACS 2,845GMACS 5,335GMACS 140GMACS 2,419GMACS
Nmero detransceptores
16 32 96 8 72
Velocidad deltransceptor
6.6Gb/s 12.5Gb/s 28.05Gb/s 3.2Gb/s 11.18Gb/s
Total TransceiverBandwidth (fullduplex)
211Gb/s 800Gb/s 2,784Gb/s 50Gb/s 536Gb/s
Interfaz de Memoria(DDR3)
1,066Mb/s 1,866Mb/s 1,866Mb/s 800Mb/s 1,066Mb/s
Interfaz PCI Express x4 Gen2 Gen2x8 Gen3x8 Gen1x1 Gen2x8
Seal AnalgicaMezclada(AMS)/XADC
Yes Yes Yes - Yes
Configuracin AES Yes Yes Yes Yes Yes
Pines E/S 500 500 1,200 576 1,200
Voltaje E/S 1.2V, 1.35V,
1.5V, 1.8V,2.5V, 3.3V
1.2V, 1.35V,
1.5V, 1.8V, 2.5V,3.3V
1.2V, 1.35V,
1.5V, 1.8V, 2.5V,3.3V
1.2V, 1.5V,
1.8V, 2.5V,3.3V
1.2V, 1.5V,
1.8V, 2.5V
EasyPath Solucinde reduccin decostos.
- Yes Yes - Yes
Altera
Sus FPGA se dividen en tres series:
Cyclone.
Arria.
Stratix.
FeatureStratix V E
FPGA
Stratix V
GS
FPGA
Stratix V
GX
FPGA
Stratix V GT
FPGA
High-performance adaptive
logic modules (ALMs)359,200 262,400 359,200 234,720
Variable-precision DSP blocks
(18x18)704 3,926 798 512
M20K memory blocks 2,640 2,567 2,660 2,560
External memory interface
Partial reconfiguration
fPLL
Design security SEU mitigation
PCI Express Gen3, Gen2, Gen1
hard IP blocks- Up to 2 Up to 4 1
Embedded HardCopy Blocks
and hard IP-
Transceivers(1) -14.1
Gbps/48
14.1
Gbps/66
28.05 Gbps/4
12.5 Gbps/32
http://www.xilinx.com/products/silicon-devices/fpga/artix-7/index.htmhttp://www.xilinx.com/products/silicon-devices/fpga/artix-7/index.htmhttp://www.xilinx.com/products/silicon-devices/fpga/artix-7/index.htmhttp://www.xilinx.com/products/silicon-devices/fpga/kintex-7/index.htmhttp://www.xilinx.com/products/silicon-devices/fpga/kintex-7/index.htmhttp://www.xilinx.com/products/silicon-devices/fpga/virtex-7/index.htmhttp://www.xilinx.com/products/silicon-devices/fpga/spartan-6/index.htmhttp://www.xilinx.com/products/silicon-devices/fpga/virtex-6/index.htmhttp://www.altera.com/products/devices/stratix-fpgas/about/fpga-architecture/stx-architecture.htmlhttp://www.altera.com/products/devices/stratix-fpgas/about/fpga-architecture/stx-architecture.htmlhttp://www.altera.com/technology/dsp/variable-precision/dsp-variable-precision.htmlhttp://www.altera.com/technology/dsp/variable-precision/dsp-variable-precision.htmlhttp://www.altera.com/technology/dsp/variable-precision/dsp-variable-precision.htmlhttp://www.altera.com/products/devices/stratix-fpgas/about/trimatrix/stx-trimatrix.htmlhttp://www.altera.com/technology/memory/devices/stratix-v/mem-stratix-v.htmlhttp://www.altera.com/technology/memory/devices/stratix-v/mem-stratix-v.htmlhttp://www.altera.com/products/devices/stratix-fpgas/stratix-v/overview/partial-reconfiguration/stxv-part-reconfig.htmlhttp://www.altera.com/products/devices/stratix-fpgas/stratix-v/overview/partial-reconfiguration/stxv-part-reconfig.htmlhttp://www.altera.com/products/devices/stratix-fpgas/stratix-v/overview/fpll/stxv-fpll.htmlhttp://www.altera.com/products/devices/stratix-fpgas/about/security/stx-design-security.htmlhttp://www.altera.com/products/devices/stratix-fpgas/about/single-event-upset/stx-single-event-upset.htmlhttp://www.altera.com/products/devices/stratix-fpgas/about/single-event-upset/stx-single-event-upset.htmlhttp://www.altera.com/technology/high_speed/protocols/pcie-hard-ip/pro-hard-ip.htmlhttp://www.altera.com/technology/high_speed/protocols/pcie-hard-ip/pro-hard-ip.htmlhttp://www.altera.com/products/devices/stratix-fpgas/stratix-v/overview/hard-ip/stxv-hip-block.htmlhttp://www.altera.com/products/devices/stratix-fpgas/stratix-v/overview/hard-ip/stxv-hip-block.htmlhttp://www.altera.com/products/devices/stratix-fpgas/stratix-v/transceivers/stxv-transceivers.htmlhttp://www.altera.com/devices/fpga/stratix-fpgas/stratix-v/stxv-index.jsp#table2notehttp://www.altera.com/devices/fpga/stratix-fpgas/stratix-v/stxv-index.jsp#table2notehttp://www.altera.com/devices/fpga/stratix-fpgas/stratix-v/stxv-index.jsp#table2notehttp://www.altera.com/devices/fpga/stratix-fpgas/stratix-v/stxv-index.jsp#table2notehttp://www.altera.com/products/devices/stratix-fpgas/stratix-v/transceivers/stxv-transceivers.htmlhttp://www.altera.com/products/devices/stratix-fpgas/stratix-v/overview/hard-ip/stxv-hip-block.htmlhttp://www.altera.com/products/devices/stratix-fpgas/stratix-v/overview/hard-ip/stxv-hip-block.htmlhttp://www.altera.com/technology/high_speed/protocols/pcie-hard-ip/pro-hard-ip.htmlhttp://www.altera.com/technology/high_speed/protocols/pcie-hard-ip/pro-hard-ip.htmlhttp://www.altera.com/products/devices/stratix-fpgas/about/single-event-upset/stx-single-event-upset.htmlhttp://www.altera.com/products/devices/stratix-fpgas/about/security/stx-design-security.htmlhttp://www.altera.com/products/devices/stratix-fpgas/stratix-v/overview/fpll/stxv-fpll.htmlhttp://www.altera.com/products/devices/stratix-fpgas/stratix-v/overview/partial-reconfiguration/stxv-part-reconfig.htmlhttp://www.altera.com/technology/memory/devices/stratix-v/mem-stratix-v.htmlhttp://www.altera.com/products/devices/stratix-fpgas/about/trimatrix/stx-trimatrix.htmlhttp://www.altera.com/technology/dsp/variable-precision/dsp-variable-precision.htmlhttp://www.altera.com/technology/dsp/variable-precision/dsp-variable-precision.htmlhttp://www.altera.com/products/devices/stratix-fpgas/about/fpga-architecture/stx-architecture.htmlhttp://www.altera.com/products/devices/stratix-fpgas/about/fpga-architecture/stx-architecture.htmlhttp://www.xilinx.com/products/silicon-devices/fpga/virtex-6/index.htmhttp://www.xilinx.com/products/silicon-devices/fpga/spartan-6/index.htmhttp://www.xilinx.com/products/silicon-devices/fpga/virtex-7/index.htmhttp://www.xilinx.com/products/silicon-devices/fpga/kintex-7/index.htmhttp://www.xilinx.com/products/silicon-devices/fpga/artix-7/index.htm -
8/13/2019 Ensayo FPGA
10/20
8
2 DESARROLLO
2.1 FPGAS
Los FPGAs (Field Programmable Gate Array) son circuitos lgicos programables directamentepor el usuario, lo cual requiere de herramientas de costo relativamente bajo, como lo son el
software de desarrollo y el dispositivo grabador. La grabacin o programacin de uno de estos
dispositivos se puede llevar a cabo en milisegundos.
Los FPGA son muy utilizados por fabricantes que producen tecnologa a baja escala, como
por ejemplo diseadores de equipos de propsito especfico, los cuales no pueden justificar la
produccin de ASICs por los bajos volmenes de dispositivos que venden. Los FPGAstienen una
funcionalidad similar, a costos menores y con una velocidad ligeramente menor. Tambin los FPGAs
se utilizan como prototipos, los cuales se pueden depurar y permiten refinar el diseo. Con el
software de diseo se puede simular en hardware antes de mandar a fabricar el ASIC
correspondiente.
2.1.1 Arquitectura de los FPGAs
Un FPGA consiste en arreglos de varios bloques programables (bloques lgicos) los cuales
estn interconectados entre s y con celdas de entrada/salida mediante canales de conexin
verticales y horizontales, tal como muestra la figura 2.1.1. En general, se puede decir que posee una
estructura bastante regular, aunque el bloque lgico y la arquitectura de rutado varan de un
fabricante a otro.
2.1.2 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. 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
guarda 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. En la figura 2.1.2.1 se puedeobservar un ejemplo.
Bloque lgico basado en multiplexores: El bloque lgico basado en multiplexores 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
-
8/13/2019 Ensayo FPGA
11/20
9
se puede implementar cualquier funcin lgica de n entradas, como ocurra con las LUT s.
En caso necesario, esta funcin lgica hay que repartirla entre varios bloques lgicos. En la
figura 2.1.2.2 se puede observar un ejemplo del bloque basado en multiplexores.
Bloque
de E/S
Bloque
Lgico
Recursos de
Interconexin
Figura 2.1.1:Arquitectura Bsica de un FPGA
Figura 2.1.2.1:Ejemplo de implementacin de una funcin lgica de 3
entradas en una LUT de 8x1
-
8/13/2019 Ensayo FPGA
12/20
10
2.1.3 Interconexin entre bloques programables
Adems de los bloques programables tambin es importante la tecnologa utilizada para
crear las conexiones entre los canales (tecnologa de programacin). Las ms importantes son las
siguientes:
Antifusible (Antifuse): Al igual que la tecnologa PROM (memoria de solo lectura
programable), un FPGA que utiliza este tipo de tecnologa slo se puede programar una sola
vez, y utilizan algo similar a un fusible para las conexiones. Una vez que es programado ya
no se puede recuperar. La diferencia entre un fusible y un antifusible es que el primero se
desactiva deshabilitando la conexin, en cambio, para el segundo se produce una conexin
cuando son programados, por lo que normalmente se encuentran abiertos. La desventaja
obvia es que no son reutilizables, pero por otro lado disminuyen considerablemente el
tamao y costo de los dispositivos.
SRAM (StaticRAM): Estas guardan la configuracin del circuito. Esto quiere decir que las
SRAM son utilizadas como generadores de funciones y adems son usadas para controlar
multiplexores (que estn incluidos en los FPGAs) y la interconexin entre bloques. En stas
el contenido se almacena mediante un proceso de configuracin en el momento de
encendido del circuito que contiene al FPGA. Ya que al ser SRAM, el contenido de la
memoria se pierde cuando se deja de suministrar energa; la informacin binaria de las
celdas SRAM generalmente se almacena en memorias seriales EEPROM conocidas como
memorias de configuracin o celdas de configuracin. En el momento de encendido delcircuito toda la informacin binaria es transferida a los bloques e interconexiones del FPGA
mediante el proceso de configuracin el cual es generalmente automtico, dado que el
propio FPGA contiene un circuito interno que se encarga de hacer toda la programacin.
Flash: El avance experimentado en los ltimos aos en el diseo y prestaciones de las celdas
de memoria Flash ha permitido su incorporacin reciente al mundo de los dispositivos
programables como tecnologa de programacin. Las FPGAs basadas en celdas Flash
Figura 2.1.2.2:Bloque Lgico basado en multiplexores.
-
8/13/2019 Ensayo FPGA
13/20
11
recogen las ventajas principales de las dos tcnicas anteriores situndose en un punto
intermedio. Su tamao es bastante ms reducido que el de una celda de SRAM, aunque sin
llegar al tamao reducido de un antifusible; son reprogramables, aunque la velocidad de
programacin es bastante ms lenta que en el caso de una SRAM; y son no voltiles, por lo
que no necesitan un dispositivos auxiliar para guardar la configuracin interna, como en el
caso de la SRAM.
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 el 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 LUT s, que permiten
implementar cualquier funcin lgica del mismo nmero de entradas. Este tipo de FPGA
generalmente est fabricado con tecnologa SRAM.
Finalmente, las FPGAsbasadas en celdas Flash suelen emplear un bloque lgico sencillo
para incrementar los recursos de rutado, como ocurre con las FPGAsde antifusibles.
2.1.4 Bloques de 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.
La figura 2.1.4.1 muestra un ejemplo de un bloque de Entrada/ Salida.
Por ltimo en la figura 2.1.4.2 se describe la estructura bsica de un FPGA, donde adems
se muestra una visualizacin de los componentes antes mencionados (Bloques Entrada/Salida,
Bloques Lgicos y la Interconexin de Bloques).
2.1.5 Tiempos de propagacin
El clculo de los retardos incluidos en un diseo basado en FPGAsno es muy fcil de predecir,ya que la propia estructura matricial de estos circuitos hace difcil saber cuntas celdas bsicas,
interconexiones programables o bloques de entradas/salida se utilizan para cada seal. Esto es, es
necesario conocer cmo se ha realizado el procedimiento de place and route en el dispositivo para
tener un conocimiento exacto de los retardos de propagacin debidos a cada uno.
-
8/13/2019 Ensayo FPGA
14/20
12
Debido a este factor, las herramientas de desarrollo para FPGAssuelen incluir un analizador
de tiempos, que sirve para calcular tiempos de set-up, de clock- to-output, y sobre todo dar una
estimacin de la frecuencia mxima de operacin.
Figura 2.1.4.1:Ejemplo de Bloque Entrada/Salida
Figura 2.1.4.2:Arquitectura Bsica de un FPGA y la
visualizacin de sus componentes.
-
8/13/2019 Ensayo FPGA
15/20
13
2.2 FPGAVS MICROCONTROLADOR
Una de las decisiones fundamentales a la hora de disear un producto electrnico es
la eleccin de ese dispositivo electrnico que se desea emplear, ya que ste dispositivo va a afectar
a variables tales como el coste de dicho producto, sus prestaciones, su diseo, etc. Esta decisin
debe ser tomada en las primeras etapas del proceso de diseo.
A la hora de elegir entre los diferentes circuitos integrados se deben tener en cuenta
diversos aspectos como son la velocidad a la que se desea que trabaje el dispositivo, la cantidad de
recursos lgicos que se van a emplear, los costes de diseo y fabricacin, el nmero de unidades a
producir o si el dispositivo necesitar ser reprogramado o no. Para elegir una FPGA frente a otros
circuitos integrados hay que tener en cuenta sus ventajas respecto a estos.
Realizando una comparacin muy burda () sobre algunos aspectos que ms importan a la
hora de elegir entre las FPGA y los microcontroladores podemos observar que los FPGA son ms
poderosos pero tambin consumen ms energa, a continuacin mostraremos una comparacin
entre los microcontroladores ms fuertes de las compaas Atmel y Microchip Technology Inc.
contra el ms bajo de Xilinx.
CaractersticasXilinx -
Spartan -6Atmel SAM4E16E
Microchip -PIC32MZ2048ECM144
Core - ARM926 DMIPS, microAptiv core
Velocidad 1.62 GHz 400 MHz 200 MHz
RAM 4,8 Mb32 Kb internos, hasta 2Gb
externos del tipo DDR2/LPDDR,SDRAM/LPSDR.
512 Kb
Pines 576 217 144
E / S de voltaje 0.54.4 V 1.64.6 V 2.23.6 V
Temperatura deOperacin
-65150 C -4085 C -4085 C
Si bien la tabla anterior nos muestra a grandes rasgos que tan poderosos pueden ser los
FPGA con respecto a los microcontroladores tambin tienen sus desventajas las cuales veremos a
continuacin.
FPGA Microcontrolador
Rendimiento significativamente mayor.Fcil de programar, excelente para el control yestado aplicaciones de mquinas.
Excelente en operaciones paralelasLas necesidades de recursos se mantienenconstantes con creciente complejidad.
Rpida respuesta a varias entradassimultneas.
Re-utiliza recursos lgicos, excelente para unmejor rendimiento de funciones.
Recursos lgicos crecen con el aumento de lacomplejidad.
Ejecuta secuencialmente.
Los requisitos de memoria de programa seincrementan con el aumento de lacomplejidad.
El rendimiento disminuye a medida queaumenta la complejidad
http://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=es&ie=UTF8&prev=_t&rurl=translate.google.es&sl=en&tl=es&u=http://www.xilinx.com/products/silicon-devices/fpga/spartan-6/index.htm&usg=ALkJrhgn0MTT-h2ECQ1lNbGeIFB5J9iDNghttp://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=es&ie=UTF8&prev=_t&rurl=translate.google.es&sl=en&tl=es&u=http://www.xilinx.com/products/silicon-devices/fpga/spartan-6/index.htm&usg=ALkJrhgn0MTT-h2ECQ1lNbGeIFB5J9iDNg -
8/13/2019 Ensayo FPGA
16/20
14
Dificultad para el diseo y depuracin delprograma.
Respuesta ms lenta a las entradassimultneas.
Uso de energa constante. Modo de ahorro de energa.
Dificultades de cambio de diseo con respectoa la funcionalidad de acuerdo a sucomercializacin.
Fcil cambio con respecto a su funcionalidadde diseo.
Ms costoso con bajo rendimiento
De lo anterior podemos concluir lo siguiente:
Una FPGA puede realizar ms operaciones por ciclo de reloj que un microcontrolador.
Una FPGA puede ejecutar operaciones de forma paralela, aumentando de esta forma la
velocidad de procesamiento de datos.
Una FPGA puede ser reprogramada para cambiar completamente su funcionalidad,
mientras que un microcontrolador ya tiene una circuitera y un conjunto de instrucciones
esttico.
En funcin de las necesidades de cada aplicacin se deber decidir entre una FPGA o bienotro de los circuitos integrados disponibles en el mercado.
2.3 APLICACIONES FPGAS
Desde los dispositivos Bluetooth hasta el vehculo de exploracin de la NASA Mars Rover, los
FPGAshan sido uno de los pilares del diseo de los sistema embebidos.
Los FPGAsson el corazn de muchos dispositivos de misin crtica, controlando todo desde
Access Points hasta sistemas comerciales de reconocimiento de rostros. Diferente a una ejecucin
secuencial dada por un procesador de propsito general, los modernos FPGA pueden ejecutar miles
de mdulos lgicos por cada ciclo de reloj.
En la actualidad satlites, sistemas de instruccin, redes elctricas, criptografa, aviones y
hasta el vehculo de la NASA Mars Rover confan en los FPGAs para ejecutar sus respectivas
funciones.
2.3.1 FPGAspara la industria aeroespacial
Debido a que los FPGAs proveen balance til entre rendimiento, costo y flexibilidad,
muchos sistemas areos ahora los usan. Por ejemplo, los FPGAsejecutan funciones cruciales en el
Join Strike Fighter1, para el Boeing 787 Dreamliner y el NASA Mars Rover. En estas aplicaciones, los
FPGAsson usados para las pantallas de las cabinas de pilotos, administracin de vuelo, manejadoresde armas y radares de vuelo.
Considerando el ejemplo de la aviacin militar, en el cual con un simple chip, clasifica
informacin de blancos, abastecimiento de gasolina e informacin de mantenimiento. Otro
1Joint Strike Fighterfue un programa militar iniciado y conducido por EUA para la creacin de un nuevo
avin de casa tctico
-
8/13/2019 Ensayo FPGA
17/20
15
escenario es el sensor de disparo, el cual con un anlisis inteligente calcula el lugar donde atacar
orientado por los soldados.
2.3.2 FPGAspara el Supercomputo
Mientras las computadoras personales continan aumentando su rendimiento, siempre hay
problemas que son encontrados en las capacidades de estas mquinas y es por eso que loscientficos e ingenieros eventualmente migran a grandes mquina cuando el rendimiento es
necesario.
Muchas compaas de supercomputadoras, incluyendo SRC Computers, Cray, y SGI, han
integrado hardware reconfigurable dentro de sus sistemas para incrementar el rendimiento. Un
buen ejemplo de este tipo de sistemas es la arquitectura XD1 de Cray, la cual combina seis grandes
FPGAsXilinx (Virtex-4) con 12 procesadores x86 en cada chasis.
La computadora reconfigurable SRC es un ejemplo de un sistema de usa FPGAs para
proveer aceleramiento en la ejecucin de programas en procesadores de propsito general.
2.3.3 FPGAspara el Anlisis de Video
Los FPGAs proveen un manejo natural de las seales complejas de alta velocidad
procesando aplicaciones como el anlisis de video y el reconocimiento de rostros. Estos algoritmos
son ms comnmente dominados por grandes operaciones matriciales, lo que significa que el
paralelismo y las tuberas son ms probables de ofrecer grandes ganancias de rendimiento para
estas aplicaciones.
Un problema comn es el Video Redaction, que consiste en remover informacin sensible
de los datos, como documentos, sonidos y pelculas. Redaction se puede usar en el proceso de
creacin de porciones no clasificadas de un documento secreto disponible al pblico o se puede
usar para la privacidad de las personas. Un ejemplo de Video Redaction es cuando se distorsionan
los rostros de personas capturadas en el video. IBM ha creado un sistema privado de video llamado
PeopleVision, el cual esta implementado en un FPGA, con al menos tres ncleos, un ncleo de
procesamiento de video, un ncleo para el Redaction Video para distorsionar los rostros y un ncleo
Ethernet para la transmisin de los datos a una terminal.
2.3.4 FPGAspara Criptografa de Alto Rendimiento
Implementar criptografa en FPGAsofrece grandes ventajas. Bloques de sistemas de cifrado
requieren muchas operaciones a nivel de bit, como el intercambio o permutacin de bits, los cuales
pueden ser eficientemente implementados en FPGAs. FPGAs tambin permiten cambiar los
parmetros de los algoritmos fcilmente, o el circuito entero poder ser reemplazado
completamente. Por ejemplo, si los matemticos descubren una falla en un sistema de cifrado, el
bistream puede ser fcilmente actualizado con un parche. Algunas funciones criptogrficas como
MD5, SHA-2, y otro rango de funciones, han sido implementadas en FPGAs.
-
8/13/2019 Ensayo FPGA
18/20
16
2.3.5 FPGAspara Deteccin y Prevencin de Intrusos
Otra rea relacionada a la seguridad donde los dispositivos reconfigurables son ampliamente
utilizados es en los sistemas de deteccin de intrusos en la red (IDS). Ya que muchos IDSs requieren
que cada byte de cada paquete sea escaneado para descubrir ataques o comportamientos
sospechosos, y esta tarea es un problema computacionalmente difcil. Las velocidades de las redesoperan en el rango de los gigabits por segundo, y un esquema de deteccin de intrusin debe ser
capaz siempre de permanecer arriaba con la carga de red. Este requerimiento de rendimiento del
peor caso, hacen a los FPGAsperfectos para esta tarea.
3 CONCLUSIONES.
ERNESTO SAL GUTIRREZ MORALES:
La adopcin de la tecnologa FPGA contina creciendo mientras que las herramientas dealto nivel evolucionan, para ofrecer a los ingenieros e investigadores los beneficios del silicio
reprogramable. Comparar y seleccionar los FPGASbasndonos en bloques lgicos, capacidades DSP
y RAM en bloque es la mejor manera de escoger el chip FPGA adecuado para su aplicacin.
Finalmente gracias a su balance til entre rendimiento, costo y flexibilidad, en comparacin con
otros dispositivos, los FPGAssean utilizados para diversas aplicaciones de alto desempeo como
anlisis de video o criptografa.
GABRIEL BALTAZAR PREZ:
Se puede observar que cada vez se va adoptando ms a los FPGAs que con ayuda de
herramientas como LabVIEW, y las tecnologas con las que se realizan los FPGAs permite que estossean cada vez ms accesibles y sean fciles de utilizar y realizar implementaciones con los mismos.
Es importante tomar en cuenta y ver la arquitectura de los FPGAs para conocer su estructura y ver
lo que ocurre en los bloques lgicos cuando se realiza la compilacin de un programa. Es necesario
realizar comparaciones y ver las especificaciones de hardware basados en flip-flops, LUTs,
multiplicadores y RAM ya que cada para determinar cul arquitectura es la que ms nos conviene
utilizar. Para esto es muy importante comprender el cmo se manejaran los recursos para obtener
los mejores resultados durante el desarrollo, especialmente al tratar de optimizar el tamao y la
velocidad que son puntos clave cuando se realiza una implementacin basada en FPGAs. Por ltimo
se concluye que los FPGAs estn ganando poco a poco ms terreno y a los cuales se les est
invirtiendo para que cada vez sean ms poderosos, especficamente en cuanto a la cantidad de
almacenamiento y el procesamiento de las tareas que estos realicen, por lo que es bueno estar al
tanto de los avances que estos tengan.
DANIEL VERGARA MONTES:
Con se describi a lo largo de este documento, los FPGAsson circuitos lgicos programables
directamente por el usuario, con lo cual requiere de Herramientas de costo bajo como son el
software de desarrollo y el dispositivo grabador.
-
8/13/2019 Ensayo FPGA
19/20
17
Cada chip de FPGA est hecho de un nmero limitado de recursos predefinidos con
interconexiones programables para implementar un circuito digital reconfigurable y bloques de E/S
que permitan que los circuitos tengan acceso al mundo exterior.
Los beneficios principales con respecto a otros dispositivos es que los FPGAs permiten
ejecutar varios bloques lgicos en un mismo tiempo de reloj mientras que un microcontrolador cada
operacin la realiza secuencialmente, adems los FPGAscuentan con una velocidad mayor y mayor
capacidad de RAM respecto a los Microcontrolador.
Gracias a las caractersticas de los FPGAsy a la ventaja sobre otros dispositivos, se han
desarrollado aplicaciones muy grandes y muy robustas, como es el caso del NASA Mars Rover que
se encuentra explorando el planeta marte.
Otras aplicaciones importante son dispositivos para asistentes de vuelo, sper computo,
Anlisis y tratamiento de imgenes y video, sistemas inteligentes de deteccin de intrusos en un red
hasta implementaciones de algoritmos criptogrficos.
Con forme pase el tiempo veremos que las aplicaciones de los FPGAs irn aumentando
permitiendo mejorar el rendimiento en muchos de los sistema que ya se encuentran trabajando con
sistema secuenciales.
JOS NOEL ROSALES PREZ:
En este trabajo se ha intentado recalcar las diferencias que existen entre las FPGAs y los
microcontroladores. El diseo de las FPGA gracias a su veracidad y capacidad de computo son un
gran aliado para diferentes aplicaciones a las cuales los microcontroladores no pueden accesar o
bien son demasiados lentos para la resolucin del problema. En resumen la utilizacin de los
dispositivos FPGA son considerados altamente implementables para diferentes aplicaciones.
-
8/13/2019 Ensayo FPGA
20/20
18
4 REFERENCIAS
[1] S. Navalgund y D. Dharwad, Design, Development and Implementation of ALU, RAM and ROM for 8051
Microcontroller on FPGA using VHDL, International Journal of Computer Applications, vol. 80, n 1, p.
09758887, 2013.
[2] I. Kuon, R. Tessier y J. Rose, FPGA Architecture: Survey and Challenges, Foundations and Trends in
Electronic Design Automation.
[3] U. Farooq, Z. Marrakchi y H. Mehrez, Tree-Based Heterogeneus FPGA Architectures, Application
Specific Exploration and Optimization, Springer, pp. 7-77.
[4] S. Brown y J. Rose, Architecture of FPGAsand CPLDs: A Tutorial, Department of Electrical and Computer
Engineering University of Toronto.
[5] V. Betz y J. Rose, FPGA Routing Architecture: Segmentation and Buffering to Optimize Speed and
Density, University of Toronto Toronto, Ontario, Canada: Department of Electrical and ComputerEngineering.
[6] Xillinx Inc., Spartan-6 FPGA Data Sheet: DC and Switching Characteristics, 2011 Octubre 17. [En lnea].
Available: www.xilinx.com. [ltimo acceso: 2013 Noviembre 25].
[7] Xilinx Inc., Introduction to FPGA Design with Vivado High-Level Synthesis, 24 Noviembre 2013. [En
lnea]. Available: http://www.xilinx.com/support/documentation/sw_manuals/ug998-vivado-intro-
fpga-design-hls.pdf.
[8] Altera Corporation., FPGA CPLD and ASIC from Altera, [En lnea]. Available: http://www.altera.com/.
[ltimo acceso: 25 Noviembre 2013].
[9] Microchip Technology Inc., Datasheet PIC32MZ Embedded, Connectivity (EC) Family, 2013 Noviembre
25. [En lnea]. Available: www.microchip.com.
[10] Atmel., Datasheet ARM-based Flash MCU, SAM4E [SUMMARY DATASHEET], 25 Julio 2013. [En lnea].
Available: www.atmel.com. [ltimo acceso: 25 Noviembre 2013].
[11] Xilinx Inc, All Programmable Technologies from Xilinx Inc., [En lnea]. Available:
http://www.xilinx.com. [ltimo acceso: 24 Noviembre 2013].
[12] National Instruments Corporation., National Instruments Mxico, [En lnea]. Available:
http://ni.com/. [ltimo acceso: 24 Noviembre 2013].
[13] Genera, Genera Soluciones Tecnologicas, [En lnea]. Available:http://www.generatecnologias.es/empresa_desarrollo_fpga.html. [ltimo acceso: 25 Noviembre
2013].
[14] T. Huffmire, C. Irvine, T. D. Nguyen, T. Levin, R. Kastner y T. Sherwood, Handbook of FPGA Design
Security, Springer, pp. 1-6.