Ensayo FPGA

download Ensayo FPGA

of 20

Transcript of 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.