Está en la página 1de 20

Instituto Politcnico Nacional

CENTRO DE INVESTIGACIN EN COMPUTACIN

FPGAs

ERNESTO SAL GUTIRREZ MORALES JOS NOEL ROSALES PREZ GABRIEL BALTAZAR PREZ DANIEL VERGARA MONTES
26 de Noviembre de 2013

CONTENIDO
1 INTRODUCCIN ........................................................................................................................... 1 1.1 1.2 1.3 Visin general ...................................................................................................................... 1 Partes de un FPGA ............................................................................................................... 1 Herramientas de Diseo...................................................................................................... 2 Herramientas Tradicionales de Diseo de FPGA ......................................................... 3 Herramientas para Diseo de Sntesis de Alto Nivel ................................................... 3

1.3.1 1.3.2 1.4 1.5 2

Beneficios Principales de la Tecnologa FPGA ..................................................................... 5 Tipos de FPGA...................................................................................................................... 6

Desarrollo .................................................................................................................................... 8 2.1 FPGAs ................................................................................................................................. 8 Arquitectura de los FPGAs.......................................................................................... 8 Bloques Lgicos ........................................................................................................... 8 Interconexin entre bloques programables.............................................................. 10 Bloques de Entrada/Salida ........................................................................................ 11 Tiempos de propagacin ........................................................................................... 11

2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.3

FPGA vs Microcontrolador ................................................................................................ 13 Aplicaciones FPGAs .......................................................................................................... 14 FPGAs para la industria aeroespacial ....................................................................... 14 FPGAs para el Supercomputo ................................................................................... 15 FPGAs para el Anlisis de Video ............................................................................... 15 FPGAs para Criptografa de Alto Rendimiento ......................................................... 15 FPGAs para Deteccin y Prevencin de Intrusos ..................................................... 16

2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 3

Conclusiones.............................................................................................................................. 16 Ernesto Sal Gutirrez Morales .................................................................................................... 16 Gabriel Baltazar Prez ................................................................................................................... 16 Daniel Vergara Montes ................................................................................................................. 16 Jos Noel Rosales Prez ................................................................................................................ 17

Referencias ................................................................................................................................ 18

ii

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 FPGAs, 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 FPGAs para una aplicacin en particular.

pg. 1

Fig. 1.2-1 Uno 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-2 Las 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 FPGAs se diferencian en la manera en que los flip-flops y las LUTs estn 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 2

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 bloques grficos 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 secuencialmente y 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 HDL y 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. 3

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, la flexibilidad 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. 4

1.4 BENEFICIOS PRINCIPALES DE LA TECNOLOGA FPGA


Los beneficios de la tecnologa FPGA, se pueden englobar en 5 elementos: Rendimiento Aprovechando del paralelismo del hardware, los FPGAs exceden 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 FPGAs pueden 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 FPGA en 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. Precio El 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 ASICs es 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 5

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 FPGAs para 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 FPGAs se encuentran las empresas: Xilinx, Altera, Lattice y Actel. Xilinx Sus principales familias se muestran en la figura.

Fig. 1.5-1 Familia de FPGAs Xilinx

Caractersticas
Clulas de lgica RAM en bloque Segmentos DSP DSP Performance (FIR Simtrico) Nmero de transceptores Velocidad del transceptor Total Transceiver Bandwidth (full duplex) Interfaz de Memoria (DDR3) Interfaz PCI Express Seal Analgica Mezclada (AMS)/XADC Configuracin AES Pines E/S Voltaje E/S EasyPath Solucin de reduccin de costos.

Artix-7
215,000 13Mb 740 930GMACS 16 6.6Gb/s 211Gb/s

Kintex-7
480,000 34Mb 1,920 2,845GMACS 32 12.5Gb/s 800Gb/s

Virtex-7
2,000,000 68Mb 3,600 5,335GMACS 96 28.05Gb/s 2,784Gb/s

Spartan-6
150,000 4.8Mb 180 140GMACS 8 3.2Gb/s 50Gb/s

Virtex-6
760,000 38Mb 2,016 2,419GMACS 72 11.18Gb/s 536Gb/s

1,066Mb/s x4 Gen2 Yes

1,866Mb/s Gen2x8 Yes

1,866Mb/s Gen3x8 Yes

800Mb/s Gen1x1 -

1,066Mb/s Gen2x8 Yes

Yes 500 1.2V, 1.35V, 1.5V, 1.8V, 2.5V, 3.3V -

Yes 500 1.2V, 1.35V, 1.5V, 1.8V, 2.5V, 3.3V Yes

Yes 1,200 1.2V, 1.35V, 1.5V, 1.8V, 2.5V, 3.3V Yes

Yes 576 1.2V, 1.5V, 1.8V, 2.5V, 3.3V -

Yes 1,200 1.2V, 1.5V, 1.8V, 2.5V Yes

Altera Sus FPGA se dividen en tres series: Cyclone. Arria. Stratix.


Stratix V GS FPGA 262,400 3,926 2,567 Stratix V GX FPGA 359,200 798 2,660

Feature High-performance adaptive logic modules (ALMs) Variable-precision DSP blocks (18x18) M20K memory blocks External memory interface Partial reconfiguration fPLL Design security SEU mitigation PCI Express Gen3, Gen2, Gen1 hard IP blocks Embedded HardCopy Blocks and hard IP Transceivers
(1)

Stratix V E FPGA 359,200 704 2,640

Stratix V GT FPGA 234,720 512 2,560

Up to 2

Up to 4

14.1 Gbps/48

14.1 Gbps/66

28.05 Gbps/4 12.5 Gbps/32

2 DESARROLLO
2.1 FPGAS
Los FPGAs (Field Programmable Gate Array) son circuitos lgicos programables directamente por 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 FPGAs tienen 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 puede observar 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

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. En la figura 2.1.2.2 se puede observar un ejemplo del bloque basado en multiplexores.
Bloque Lgico Bloque de E/S

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

Figura 2.1.2.2:

Bloque Lgico basado en multiplexores.

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 del circuito 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 10

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 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. 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 FPGAs no 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.

11

Debido a este factor, las herramientas de desarrollo para FPGAs suelen 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.

12

2.2 FPGA VS 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. Caractersticas Core Velocidad RAM Pines E / S de voltaje Temperatura de Operacin Xilinx Spartan -6 1.62 GHz 4,8 Mb 576 0.5 4.4 V -65 150 C Atmel SAM4E16E ARM926 400 MHz 32 Kb internos, hasta 2Gb externos del tipo DDR2/LPDDR, SDRAM/LPSDR. 217 1.6 4.6 V -40 85 C Microchip PIC32MZ2048ECM144 DMIPS, microAptiv core
200 MHz

512 Kb 144 2.2 3.6 V -40 85 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 Rendimiento significativamente mayor. Excelente en operaciones paralelas Rpida respuesta a varias entradas simultneas. Recursos lgicos crecen con el aumento de la complejidad. Los requisitos de memoria de programa se incrementan con el aumento de la complejidad. Microcontrolador Fcil de programar, excelente para el control y estado aplicaciones de mquinas. Las necesidades de recursos se mantienen constantes con creciente complejidad. Re-utiliza recursos lgicos, excelente para un mejor rendimiento de funciones. Ejecuta secuencialmente. El rendimiento disminuye a medida que aumenta la complejidad 13

Dificultad para el diseo y depuracin del programa. Uso de energa constante. Dificultades de cambio de diseo con respecto a la funcionalidad de acuerdo a su comercializacin.

Respuesta ms lenta a las entradas simultneas. Modo de ahorro de energa. Fcil cambio con respecto a su funcionalidad de 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 bien otro 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 FPGAs han sido uno de los pilares del diseo de los sistema embebidos. Los FPGAs son 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 FPGAs para 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 FPGAs ejecutan funciones cruciales en el Join Strike Fighter1, para el Boeing 787 Dreamliner y el NASA Mars Rover. En estas aplicaciones, los FPGAs son usados para las pantallas de las cabinas de pilotos, administracin de vuelo, manejadores de 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

Joint Strike Fighter fue un programa militar iniciado y conducido por EUA para la creacin de un nuevo avin de casa tctico

14

escenario es el sensor de disparo, el cual con un anlisis inteligente calcula el lugar donde atacar orientado por los soldados. 2.3.2 FPGAs para 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 los cientficos 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 FPGAs Xilinx (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 FPGAs para 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 FPGAs para Criptografa de Alto Rendimiento

Implementar criptografa en FPGAs ofrece 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.

15

2.3.5

FPGAs para 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 redes operan 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 FPGAs perfectos para esta tarea.

3 CONCLUSIONES.
ERNESTO SAL GUTIRREZ MORALES:
La adopcin de la tecnologa FPGA contina creciendo mientras que las herramientas de alto nivel evolucionan, para ofrecer a los ingenieros e investigadores los beneficios del silicio reprogramable. Comparar y seleccionar los FPGAS basndonos 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 FPGAs sean 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 estos sean 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 FPGAs son 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. 16

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 FPGAs cuentan con una velocidad mayor y mayor capacidad de RAM respecto a los Microcontrolador. Gracias a las caractersticas de los FPGAs y 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.

17

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. 0975 8887, 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 FPGAs and 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 Computer Engineering. [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-introfpga-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 http://www.xilinx.com. [ltimo acceso: 24 Noviembre 2013]. Inc., [En lnea]. Available:

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

18

También podría gustarte