Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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
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.
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.
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.
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-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
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.
Entre los principales fabricantes de FPGAs se encuentran las empresas: Xilinx, Altera, Lattice y Actel. Xilinx Sus principales familias se muestran en la figura.
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
800Mb/s Gen1x1 -
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)
Up to 2
Up to 4
14.1 Gbps/48
14.1 Gbps/66
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
Bsica de un FPGA
Figura 2.1.2.1:
Figura 2.1.2.2:
2.1.3
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.
de Bloque Entrada/Salida
Figura 2.1.4.2:
12
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.
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
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.
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.
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