stringtranslate.com

Arreglos de compuertas lógicas programables en sitio

Una FPGA Stratix IV de Altera
Una FPGA espartana de Xilinx

Una matriz de puertas programables en campo ( FPGA ) es un tipo de circuito integrado que se puede programar o reprogramar después de la fabricación. Consiste en una serie de bloques lógicos programables e interconexiones que se pueden configurar para realizar diversas funciones digitales. Los FPGA se utilizan comúnmente en aplicaciones donde se requieren flexibilidad, velocidad y capacidades de procesamiento paralelo, como en los sectores de telecomunicaciones, automoción, aeroespacial e industrial.

La configuración de FPGA generalmente se especifica mediante un lenguaje de descripción de hardware (HDL), similar al utilizado para un circuito integrado de aplicación específica (ASIC). Anteriormente se utilizaban diagramas de circuitos para especificar la configuración.

Los bloques lógicos de una FPGA se pueden configurar para realizar funciones combinacionales complejas o actuar como puertas lógicas simples como AND y XOR . En la mayoría de las FPGA, los bloques lógicos también incluyen elementos de memoria , que pueden ser simples flip-flops o bloques de memoria más completos. [1] Muchos FPGA se pueden reprogramar para implementar diferentes funciones lógicas , lo que permite una computación reconfigurable flexible tal como se realiza en el software de computadora .

Los FPGA también desempeñan un papel en el desarrollo de sistemas integrados debido a su capacidad para iniciar el desarrollo del software del sistema simultáneamente con el hardware, permitir simulaciones de rendimiento del sistema en una fase muy temprana del desarrollo y permitir varias pruebas del sistema e iteraciones de diseño antes de finalizar la arquitectura del sistema. [2]

Los FPGA también se utilizan comúnmente durante el desarrollo de ASIC para acelerar el proceso de simulación.

Historia

La industria de las FPGA surgió de la memoria de solo lectura programable (PROM) y los dispositivos lógicos programables (PLD). Tanto los PROM como los PLD tenían la opción de programarse en lotes en una fábrica o en el campo (programables en campo). [3]

Altera se fundó en 1983 y entregó el primer dispositivo lógico reprogramable de la industria en 1984, el EP300, que presentaba una ventana de cuarzo en el paquete que permitía a los usuarios iluminar una lámpara ultravioleta en el troquel para borrar las celdas EPROM que contenían la configuración del dispositivo. . [4]

Xilinx produjo el primer conjunto de puertas programables en campo comercialmente viable en 1985 [3]  : el XC2064. [5] El XC2064 tenía puertas programables e interconexiones programables entre puertas, el comienzo de una nueva tecnología y mercado. [6] El XC2064 tenía 64 bloques lógicos configurables (CLB), con dos tablas de búsqueda de tres entradas (LUT). [7]

En 1987, el Centro Naval de Guerra de Superficie financió un experimento propuesto por Steve Casselman para desarrollar una computadora que implementaría 600.000 puertas reprogramables. Casselman tuvo éxito y en 1992 se emitió una patente relacionada con el sistema .

Altera y Xilinx continuaron sin oposición y crecieron rápidamente desde 1985 hasta mediados de la década de 1990, cuando surgieron competidores que erosionaron una parte significativa de su participación de mercado. En 1993, Actel (ahora Microsemi ) atendía alrededor del 18 por ciento del mercado. [6]

La década de 1990 fue un período de rápido crecimiento para los FPGA, tanto en la sofisticación de los circuitos como en el volumen de producción. A principios de la década de 1990, los FPGA se utilizaban principalmente en telecomunicaciones y redes . A finales de la década, los FPGA se abrieron camino en aplicaciones de consumo, automotrices e industriales. [8]

En 2013, Altera (31 por ciento), Actel (10 por ciento) y Xilinx (36 por ciento) juntos representaban aproximadamente el 77 por ciento del mercado de FPGA. [9]

Empresas como Microsoft han comenzado a utilizar FPGA para acelerar sistemas computacionalmente intensivos de alto rendimiento (como los centros de datos que operan su motor de búsqueda Bing ), debido a la ventaja de rendimiento por vatio que ofrecen los FPGA. [10] Microsoft comenzó a usar FPGA para acelerar Bing en 2014, y en 2018 comenzó a implementar FPGA en otras cargas de trabajo de centros de datos para su plataforma de computación en la nube Azure . [11]

Crecimiento

Los siguientes cronogramas indican avances en diferentes aspectos del diseño de FPGA.

Puertas

Tamaño de mercado

Comienza el diseño

Un inicio de diseño es un nuevo diseño personalizado para implementar en una FPGA.

Diseño

Los FPGA contemporáneos tienen amplias puertas lógicas y bloques de RAM para implementar cálculos digitales complejos. Los FPGA se pueden utilizar para implementar cualquier función lógica que pueda realizar un ASIC . La capacidad de actualizar la funcionalidad después del envío, la reconfiguración parcial de una parte del diseño [17] y los bajos costos de ingeniería no recurrentes en relación con un diseño ASIC (a pesar del costo unitario generalmente más alto), ofrecen ventajas para muchas aplicaciones. [1]

Como los diseños de FPGA emplean velocidades de E/S muy rápidas y buses de datos bidireccionales , se convierte en un desafío verificar la sincronización correcta de los datos válidos dentro del tiempo de configuración y el tiempo de espera. [18] La planificación del piso ayuda a la asignación de recursos dentro de las FPGA para cumplir con estas limitaciones de tiempo.

Algunos FPGA tienen características analógicas además de funciones digitales. La característica analógica más común es una velocidad de respuesta programable en cada pin de salida, lo que permite al ingeniero establecer velocidades bajas en pines ligeramente cargados que de otro modo sonarían o se acoplarían de manera inaceptable, y establecer velocidades más altas en canales de alta velocidad muy cargados que de otro modo funcionarían. Demasiado lento. [19] [20] También son comunes los circuitos de controlador de oscilador de cristal de cuarzo , osciladores de resistencia-capacitancia en chip y bucles de bloqueo de fase con osciladores integrados controlados por voltaje utilizados para la generación y gestión de relojes, así como para serializadores de alta velocidad. Deserializador (SERDES) relojes de transmisión y recuperación del reloj del receptor. Son bastante comunes los comparadores diferenciales en pines de entrada diseñados para conectarse a canales de señalización diferencial . Algunos FPGA de señal mixta tienen convertidores periféricos analógico-digital (ADC) y convertidores digital-analógico (DAC) integrados con bloques de acondicionamiento de señal analógica que les permiten operar como un sistema en un chip (SoC). [21] Dichos dispositivos desdibujan la línea entre una FPGA, que transporta unos y ceros digitales en su tejido de interconexión programable interno, y una matriz analógica programable en campo (FPAA), que transporta valores analógicos en su tejido de interconexión programable interno.

Bloques lógicos

Ilustración de ejemplo simplificada de una celda lógica (LUT – tabla de búsqueda , FA – sumador completo , DFF – flip-flop tipo D )

La arquitectura FPGA más común consta de una matriz de bloques lógicos llamados bloques lógicos configurables (CLB) o bloques de matriz lógica (LAB), según el proveedor, los pads de E/S y los canales de enrutamiento. [1] Generalmente, todos los canales de enrutamiento tienen el mismo ancho (número de señales). Es posible que quepan varios pads de E/S en la altura de una fila o en el ancho de una columna de la matriz.

"Un circuito de aplicación debe mapearse en una FPGA con recursos adecuados. Si bien la cantidad de bloques lógicos y E/S requeridas se determina fácilmente a partir del diseño, la cantidad de canales de enrutamiento necesarios puede variar considerablemente incluso entre diseños con la misma cantidad de lógica. Por ejemplo, un conmutador de barra transversal requiere mucho más enrutamiento que una matriz sistólica con el mismo número de puertas. Dado que los canales de enrutamiento no utilizados aumentan el costo (y disminuyen el rendimiento) de la FPGA sin proporcionar ningún beneficio, los fabricantes de FPGA intentan proporcionar solo los canales suficientes. de modo que la mayoría de los diseños que se ajusten en términos de tablas de búsqueda (LUT) y E/S puedan enrutarse . Esto se determina mediante estimaciones como las derivadas de la regla de Rent o mediante experimentos con diseños existentes". [22]

En general, un bloque lógico consta de unas pocas celdas lógicas. Una celda típica consta de un LUT de 4 entradas, un sumador completo (FA) y un flip-flop tipo D. La LUT podría dividirse en dos LUT de 3 entradas. En modo normal , se combinan en una LUT de 4 entradas a través del primer multiplexor (mux). En modo aritmético , sus salidas se envían al sumador. La selección del modo se programa en el segundo mux. La salida puede ser síncrona o asíncrona , dependiendo de la programación del tercer mux. En la práctica, el sumador total o parcial se almacena como funciones en las LUT para ahorrar espacio . [23] [24] [25]

bloques duros

Las familias modernas de FPGA amplían las capacidades anteriores para incluir funcionalidades de nivel superior fijadas en silicio. Tener estas funciones comunes integradas en el circuito reduce el área requerida y les da a esas funciones un mayor rendimiento en comparación con construirlas a partir de primitivas lógicas. Ejemplos de estos incluyen multiplicadores , bloques DSP genéricos , procesadores integrados , lógica de E/S de alta velocidad y memorias integradas .

Los FPGA de gama alta pueden contener transceptores multigigabit de alta velocidad y núcleos IP rígidos , como núcleos de procesador , unidades de control de acceso al medio Ethernet , controladores PCI o PCI Express y controladores de memoria externos . Estos núcleos existen junto con la estructura programable, pero están construidos con transistores en lugar de LUT, por lo que tienen rendimiento y consumo de energía de nivel ASIC sin consumir una cantidad significativa de recursos de la estructura, lo que deja más estructura libre para la lógica específica de la aplicación. Los transceptores multigigabit también contienen circuitos de acondicionamiento de señales de alto rendimiento junto con serializadores y deserializadores de alta velocidad, componentes que no se pueden construir a partir de LUT. La funcionalidad de capa física de nivel superior (PHY), como la codificación de línea, puede implementarse o no junto con los serializadores y deserializadores en lógica estricta, según la FPGA.

Núcleo blando

Un sistema totalmente programable Xilinx Zynq-7000 en un chip

Un enfoque alternativo al uso de macroprocesadores físicos es utilizar núcleos IP de procesadores blandos que se implementan dentro de la lógica FPGA. Nios II , MicroBlaze y Mico32 son ejemplos de procesadores softcore populares. Muchos FPGA modernos se programan en tiempo de ejecución , lo que ha llevado a la idea de computación reconfigurable o sistemas reconfigurables: CPU que se reconfiguran a sí mismas para adaptarse a la tarea en cuestión. Además, están comenzando a surgir nuevas arquitecturas no FPGA. Los microprocesadores configurables por software, como el Stretch S5000, adoptan un enfoque híbrido al proporcionar una variedad de núcleos de procesador y núcleos programables similares a FPGA en el mismo chip.

Integración

En 2012, el enfoque arquitectónico de grano grueso se llevó un paso más allá al combinar los bloques lógicos y las interconexiones de FPGA tradicionales con microprocesadores integrados y periféricos relacionados para formar un sistema completo en un chip programable . Se pueden encontrar ejemplos de tales tecnologías híbridas en el SoC totalmente programable Xilinx Zynq-7000 , [26] que incluye un  procesador MPCore ARM Cortex-A9 de doble núcleo a 1,0 GHz integrado dentro de la estructura lógica de la FPGA [27] o en el Altera Arria V. FPGA, que incluye un MPCore ARM Cortex-A9 de doble núcleo a 800 MHz . El Atmel FPSLIC es otro de esos dispositivos, que utiliza un procesador AVR en combinación con la arquitectura lógica programable de Atmel. Los dispositivos Microsemi SmartFusion incorporan un núcleo de procesador duro ARM Cortex-M3 (con hasta 512 kB de flash y 64 kB de RAM) y periféricos analógicos como convertidores analógico-digital multicanal y convertidores digital-analógico para su tejido FPGA basado en memoria flash . [ cita necesaria ]

Marcar

La mayor parte de la lógica dentro de una FPGA son circuitos síncronos que requieren una señal de reloj . Los FPGA contienen redes de enrutamiento globales y regionales dedicadas para reloj y reinicio, generalmente implementadas como un árbol H , por lo que pueden entregarse con una desviación mínima . Los FPGA pueden contener componentes analógicos de bucle bloqueado en fase o de bucle bloqueado por retardo para sintetizar nuevas frecuencias de reloj y gestionar la fluctuación . Los diseños complejos pueden utilizar múltiples relojes con diferentes relaciones de frecuencia y fase, cada uno de los cuales forma dominios de reloj separados . Estas señales de reloj pueden generarse localmente mediante un oscilador o pueden recuperarse de un flujo de datos . Se debe tener cuidado al construir circuitos de cruce de dominios de reloj para evitar la metaestabilidad . Algunos FPGA contienen bloques de RAM de doble puerto que son capaces de funcionar con diferentes relojes, lo que ayuda en la construcción de FIFO y buffers de doble puerto que unen los dominios de reloj.

arquitecturas 3D

Para reducir el tamaño y el consumo de energía de los FPGA, proveedores como Tabula y Xilinx han introducido arquitecturas 3D o apiladas . [28] [29] Tras la introducción de sus FPGA serie 7 de 28 nm, Xilinx dijo que varias de las piezas de mayor densidad en esas líneas de productos FPGA se construirán utilizando múltiples matrices en un solo paquete, empleando tecnología desarrollada para la construcción 3D y conjuntos de troqueles apilados.

El enfoque de Xilinx apila varios (tres o cuatro) troqueles FPGA activos uno al lado del otro en un intercalador de silicio  : una sola pieza de silicio que lleva una interconexión pasiva. [29] [30] La construcción de múltiples matrices también permite crear diferentes partes de la FPGA con diferentes tecnologías de proceso, ya que los requisitos del proceso son diferentes entre la estructura FPGA en sí y los transceptores en serie de muy alta velocidad de 28 Gbit/s. Una FPGA construida de esta manera se denomina FPGA heterogénea . [31]

El enfoque heterogéneo de Altera implica el uso de una única matriz FPGA monolítica y la conexión de otras matrices y tecnologías a la FPGA utilizando la tecnología EMIB (puente de interconexión múltiple) integrada de Intel. [32]

Programación

Para definir el comportamiento de la FPGA, el usuario proporciona un diseño en un lenguaje de descripción de hardware (HDL) o como un diseño esquemático . La forma HDL es más adecuada para trabajar con estructuras grandes porque es posible especificar un comportamiento funcional de alto nivel en lugar de dibujar cada pieza a mano. Sin embargo, la entrada esquemática puede permitir una visualización más sencilla de un diseño y sus módulos componentes .

Utilizando una herramienta de automatización de diseño electrónico , se genera una lista de redes mapeada por tecnología . Luego, la lista de red se puede ajustar a la arquitectura FPGA real utilizando un proceso llamado lugar y ruta , generalmente realizado por el software de lugar y ruta patentado de la compañía FPGA. El usuario validará los resultados mediante análisis de tiempo , simulación y otras técnicas de verificación y validación . Una vez que se completa el proceso de diseño y validación, el archivo binario generado, generalmente utilizando el software propietario del proveedor de FPGA, se utiliza para (re)configurar la FPGA. Este archivo se transfiere a la FPGA a través de una interfaz serie ( JTAG ) o a un dispositivo de memoria externo como una EEPROM .

Los HDL más comunes son VHDL y Verilog , así como extensiones como SystemVerilog . Sin embargo, en un intento por reducir la complejidad del diseño en HDL, que se han comparado con el equivalente de los lenguajes ensambladores , hay movimientos [¿ por quién? ] elevar el nivel de abstracción mediante la introducción de lenguajes alternativos . El lenguaje de programación gráfica LabVIEW de National Instruments (a veces denominado G ) tiene un módulo complementario FPGA disponible para apuntar y programar hardware FPGA. Verilog se creó para simplificar el proceso y hacer que HDL sea más robusto y flexible. Verilog es actualmente el más popular. Verilog crea un nivel de abstracción para ocultar los detalles de su implementación. Verilog tiene una sintaxis similar a C, a diferencia de VHDL. [33]

Para simplificar el diseño de sistemas complejos en FPGA, existen bibliotecas de funciones y circuitos complejos predefinidos que han sido probados y optimizados para acelerar el proceso de diseño. Estos circuitos predefinidos se denominan comúnmente núcleos de propiedad intelectual (IP) y están disponibles a través de proveedores de FPGA y proveedores de IP externos. Rara vez son gratuitos y, por lo general, se publican bajo licencias propietarias. Otros circuitos predefinidos están disponibles en comunidades de desarrolladores como OpenCores (normalmente publicados bajo licencias gratuitas y de código abierto como GPL , BSD o licencias similares) y otras fuentes. Este tipo de diseños se conocen como hardware de código abierto .

En un flujo de diseño típico , un desarrollador de aplicaciones FPGA simulará el diseño en múltiples etapas a lo largo del proceso de diseño. Inicialmente se simula la descripción RTL en VHDL o Verilog creando bancos de pruebas para simular el sistema y observar los resultados. Luego, después de que el motor de síntesis haya asignado el diseño a una lista de red, la lista de red se traduce a una descripción a nivel de puerta donde se repite la simulación para confirmar que la síntesis se realizó sin errores. Finalmente, el diseño se presenta en la FPGA, momento en el que se pueden agregar retrasos de propagación y ejecutar la simulación nuevamente con estos valores anotados en la lista de redes.

Más recientemente, los programadores están utilizando OpenCL (Open Computing Language) para aprovechar el rendimiento y la eficiencia energética que proporcionan los FPGA. OpenCL permite a los programadores desarrollar código en el lenguaje de programación C y apuntar a funciones FPGA como núcleos OpenCL utilizando construcciones OpenCL. [34] Para obtener más información, consulte síntesis de alto nivel y C a HDL .

La mayoría de los FPGA se basan en un enfoque basado en SRAM para ser programados. Estos FPGA son programables y reprogramables dentro del sistema, pero requieren dispositivos de arranque externos. Por ejemplo, los dispositivos de memoria flash o EEPROM a menudo pueden cargar contenidos en la SRAM interna que controla el enrutamiento y la lógica. El enfoque SRAM se basa en CMOS .

Las alternativas más raras al enfoque SRAM incluyen:

Fabricantes

En 2016, los antiguos rivales de la industria Xilinx (ahora parte de AMD ) y Altera (ahora una subsidiaria de Intel ) eran los líderes del mercado de FPGA. [36] En ese momento, controlaban casi el 90 por ciento del mercado.

Tanto Xilinx (ahora AMD) como Altera (ahora Intel) proporcionan software patentado de automatización de diseño electrónico para Windows y Linux ( ISE / Vivado y Quartus ) que permite a los ingenieros diseñar , analizar, simular y sintetizar ( compilar ) sus diseños. [37] [38]

En marzo de 2010, Tabula anunció su tecnología FPGA que utiliza lógica multiplexada en el tiempo e interconexión que afirma posibles ahorros de costos para aplicaciones de alta densidad. [39] El 24 de marzo de 2015, Tabula cerró oficialmente. [40]

El 1 de junio de 2015, Intel anunció que adquiriría Altera por aproximadamente 16.700 millones de dólares y completó la adquisición el 30 de diciembre de 2015. [41]

El 27 de octubre de 2020, AMD anunció que adquiriría Xilinx [42] y completó la adquisición valorada en alrededor de 50 mil millones de dólares en febrero de 2022. [43]

Otros fabricantes incluyen:

Aplicaciones

Una FPGA se puede utilizar para resolver cualquier problema que sea computable . Esto se prueba trivialmente por el hecho de que los FPGA se pueden utilizar para implementar un microprocesador suave , como el Xilinx MicroBlaze o Altera Nios II . Su ventaja radica en que son significativamente más rápidos para algunas aplicaciones debido a su naturaleza paralela y óptima en términos del número de puertas utilizadas para ciertos procesos. [48]

Los FPGA comenzaron originalmente como competidores de los CPLD para implementar lógica de pegamento para placas de circuito impreso . A medida que aumentaron su tamaño, capacidades y velocidad, los FPGA asumieron funciones adicionales hasta el punto de que algunos ahora se comercializan como sistemas completos en chips (SoC). Particularmente con la introducción de multiplicadores dedicados en las arquitecturas FPGA a fines de la década de 1990, las aplicaciones que tradicionalmente habían sido reserva exclusiva del hardware de procesador de señales digitales (DSP) comenzaron a incorporar FPGA en su lugar. [49] [50]

La evolución de los FPGA ha motivado un aumento en el uso de estos dispositivos, cuya arquitectura permite desarrollar soluciones hardware optimizadas para tareas complejas, como la segmentación de imágenes por resonancia magnética 3D, la transformada wavelet discreta 3D, la reconstrucción de imágenes tomográficas o los sistemas PET/MRI. [51] [52] Las soluciones desarrolladas pueden realizar tareas informáticas intensivas con procesamiento paralelo, son reprogramables dinámicamente y tienen un bajo costo, al mismo tiempo que cumplen con los estrictos requisitos en tiempo real asociados con las imágenes médicas.

Otra tendencia en el uso de FPGA es la aceleración de hardware , donde se puede usar la FPGA para acelerar ciertas partes de un algoritmo y compartir parte del cálculo entre la FPGA y un procesador genérico. El motor de búsqueda Bing se destaca por adoptar la aceleración FPGA para su algoritmo de búsqueda en 2014. [53] A partir de 2018 , los FPGA están viendo un uso cada vez mayor como aceleradores de IA , incluido el llamado "Proyecto Catapulta" de Microsoft [11] y para acelerar redes neuronales artificiales. para aplicaciones de aprendizaje automático .

Tradicionalmente, [ ¿cuándo? ] Los FPGA se han reservado para aplicaciones verticales específicas donde el volumen de producción es pequeño. Para estas aplicaciones de bajo volumen, la prima que las empresas pagan en costo de hardware por unidad por un chip programable es más asequible que los recursos de desarrollo gastados en la creación de un ASIC. A partir de 2017 , nuevas dinámicas de costos y rendimiento han ampliado la gama de aplicaciones viables.

Cuando los periféricos de computadoras personales existen en nichos de mercado o están luchando por abrirse paso en un mercado masivo (a veces a pesar de una fuerte promoción), puede ser más rentable utilizar FPGA para tiradas de producción pequeñas (por ejemplo, 1.000 unidades). Los ejemplos incluyen productos exóticos como, por ejemplo , ArVid , un archivador de cintas VHS (del cual sólo algunas versiones estaban basadas en FPGA) y la unidad pseudo- SSD económica i-RAM de Gigabyte Technology , que utilizaba una FPGA Xilinx. [54] A menudo, un chip hecho a medida sería más barato si se fabricara en grandes cantidades, pero se pueden elegir FPGA para llevar rápidamente un producto al mercado. Nuevamente, en la medida en que aumente la disponibilidad de FPGA de menor costo, puede resultar justificable incluirlos incluso en series de producción más grandes.

Otros usos de los FPGA incluyen:

Uso por parte del ejército de los Estados Unidos

Los FPGA desempeñan un papel crucial en las comunicaciones militares modernas, especialmente en sistemas como el Sistema de Radio Táctico Conjunto (JTRS) y en dispositivos de empresas como Thales y Harris Corporation . Su flexibilidad y programabilidad los hacen ideales para comunicaciones militares, ya que ofrecen procesamiento de señales seguro y personalizable. En el JTRS, utilizado por el ejército estadounidense, los FPGA proporcionan adaptabilidad y procesamiento en tiempo real, crucial para cumplir con diversos estándares de comunicación y métodos de cifrado. Thales aprovecha la tecnología FPGA para diseñar dispositivos de comunicación que cumplan con las rigurosas demandas del uso militar, incluida una reconfiguración rápida y una seguridad sólida. De manera similar, Harris Corporation, ahora parte de L3Harris Technologies , incorpora FPGA en sus soluciones de comunicaciones comerciales y de defensa, mejorando el procesamiento de señales y la seguridad del sistema. [59]

L3Harris

  1. Radio que cumple con los estándares de rápida adaptación (RASOR™): una solución de enfoque de sistema abierto modular (MOSA) que admite más de 50 enlaces de datos y formas de onda.
  2. Plataforma tecnológica ASPEN: consta de módulos de hardware probados con software programable y opciones FPGA para enlaces de datos avanzados y configurables.
  3. Radios AN/PRC-117F(C) : apoyaron al Comando de Sistemas Electrónicos de la Fuerza Aérea de EE. UU. , fortaleciendo el papel de Harris como proveedor de sistemas de comunicaciones de espectro completo.

Tales

  1. Familia de radio SYNAPS: utiliza tecnología de radio definida por software (SDR), que normalmente incluye FPGA para mejorar la flexibilidad y el rendimiento.
  2. AN/PRC-148 (Radio multibanda inter/intra equipo - MBITR): Un SDR multimodo, multibanda y de factor de forma pequeño utilizado en Afganistán e Irak.
  3. Radio portátil JTRS Cluster 2: actualmente en desarrollo, recientemente completó con éxito una evaluación operativa temprana.

Seguridad

Los FPGA tienen ventajas y desventajas en comparación con los ASIC o microprocesadores seguros en lo que respecta a la seguridad del hardware . La flexibilidad de los FPGA hace que las modificaciones maliciosas durante la fabricación sean un riesgo menor. [60] Anteriormente, para muchos FPGA, el flujo de bits de diseño estaba expuesto mientras el FPGA lo cargaba desde la memoria externa (normalmente en cada encendido). Todos los principales proveedores de FPGA ofrecen ahora un espectro de soluciones de seguridad a los diseñadores, como autenticación y cifrado de flujo de bits . Por ejemplo, Altera y Xilinx ofrecen cifrado AES (hasta 256 bits) para flujos de bits almacenados en una memoria flash externa. Las funciones físicas no clonables (PUF) son circuitos integrados que tienen sus propias firmas únicas, debido al procesamiento, y también se pueden usar para proteger FPGA ocupando muy poco espacio de hardware. [61]

Los FPGA que almacenan su configuración internamente en una memoria flash no volátil, como los dispositivos programables ProAsic 3 de Microsemi o XP2 de Lattice , no exponen el flujo de bits y no necesitan cifrado . Además, la memoria flash para una tabla de búsqueda proporciona protección contra eventos únicos para aplicaciones espaciales. [ se necesita aclaración ] Los clientes que deseen una mayor garantía de resistencia a la manipulación pueden utilizar FPGA antifusibles de una sola escritura de proveedores como Microsemi .

Con sus FPGA y SoC Stratix 10, Altera introdujo un administrador de dispositivos seguro y funciones físicas no clonables para proporcionar altos niveles de protección contra ataques físicos. [62]

En 2012, los investigadores Sergei Skorobogatov y Christopher Woods demostraron que algunos FPGA pueden ser vulnerables a intenciones hostiles. Descubrieron que se había fabricado una vulnerabilidad de puerta trasera crítica en silicio como parte de Actel/Microsemi ProAsic 3, lo que la hacía vulnerable en muchos niveles, como la reprogramación de claves criptográficas y de acceso , el acceso a flujos de bits no cifrados, la modificación de funciones de silicio de bajo nivel y la extracción de datos de configuración . [63]

En 2020, se descubrió una vulnerabilidad crítica (llamada "Starbleed") en todos los FPGA de la serie 7 de Xilinx que inutilizaba el cifrado de flujo de bits. No hay ninguna solución. Xilinx no produjo una revisión de hardware. Los dispositivos ultraescalados y posteriores, que ya estaban en el mercado en ese momento, no se vieron afectados.

Tecnologías similares

Históricamente, los FPGA han sido más lentos, menos eficientes energéticamente y, en general, han logrado menos funcionalidad que sus homólogos ASIC fijos. Un estudio de 2006 mostró que los diseños implementados en FPGA necesitan en promedio 40 veces más área, consumen 12 veces más potencia dinámica y funcionan a un tercio de la velocidad de las implementaciones ASIC correspondientes. [64]

Las ventajas de los FPGA incluyen la capacidad de reprogramar cuando ya están implementados (es decir, "en el campo") para corregir errores y, a menudo, incluyen un tiempo de comercialización más corto y menores costos de ingeniería no recurrentes . Los proveedores también pueden tomar un camino intermedio a través de la creación de prototipos FPGA : desarrollar su prototipo de hardware en FPGA, pero fabricar su versión final como un ASIC para que ya no pueda modificarse una vez que se haya comprometido el diseño. Este suele ser el caso también con los nuevos diseños de procesadores. [65] Algunos FPGA tienen la capacidad de reconfiguración parcial que permite reprogramar una parte del dispositivo mientras otras partes continúan ejecutándose. [66] [67]

Las principales diferencias entre los dispositivos lógicos programables complejos (CPLD) y los FPGA son arquitectónicos . Un CPLD tiene una estructura comparativamente restrictiva que consta de uno o más conjuntos lógicos de suma de productos programables que alimentan un número relativamente pequeño de registros sincronizados . Como resultado, los CPLD son menos flexibles pero tienen la ventaja de retrasos de tiempo más predecibles y una relación lógica-interconexión más alta. [ cita necesaria ] Las arquitecturas FPGA, por otro lado, están dominadas por la interconexión . Esto los hace mucho más flexibles (en términos de la gama de diseños que son prácticos para implementar en ellos), pero también mucho más complejos de diseñar, o al menos requieren un software de automatización de diseño electrónico (EDA) más complejo. En la práctica, la distinción entre FPGA y CPLD suele ser de tamaño, ya que los FPGA suelen ser mucho más grandes en términos de recursos que los CPLD. Normalmente, sólo los FPGA contienen funciones integradas más complejas , como sumadores , multiplicadores , memoria y serializadores/deserializadores . Otra distinción común es que los CPLD contienen memoria flash incorporada para almacenar su configuración, mientras que los FPGA generalmente requieren memoria externa no volátil (pero no siempre). Cuando un diseño requiere un encendido instantáneo simple (la lógica ya está configurada en el momento del encendido), generalmente se prefieren los CPLD. Para la mayoría de las demás aplicaciones, generalmente se prefieren los FPGA. A veces, tanto los CPLD como los FPGA se utilizan en un diseño de sistema único. En esos diseños, los CPLD generalmente realizan funciones lógicas de pegamento y son responsables de " arrancar " la FPGA, así como de controlar la secuencia de reinicio y arranque de la placa de circuito completa. Por lo tanto, dependiendo de la aplicación, puede resultar aconsejable utilizar tanto FPGA como CPLD en un solo diseño. [68]

Ver también

Referencias

  1. ^ abc "Arquitectura FPGA para el desafío". toronto.edu . Universidad de Toronto .
  2. ^ Simpson, Pensilvania (2015). Diseño FPGA, Mejores prácticas para la reutilización basada en equipos, segunda edición . Suiza: Springer International Publishing AG. pag. 16.ISBN _ 978-3-319-17924-7.
  3. ^ abcd "Historia de los FPGA". Archivado desde el original el 12 de abril de 2007 . Consultado el 11 de julio de 2013 .
  4. ^ Ron Wilson (21 de abril de 2015). "Al principio". altera.com . Archivado desde el original el 21 de abril de 2015.
  5. ^ ab "XCELL número 32" (PDF) . Xilinx. Archivado (PDF) desde el original el 7 de enero de 2011.
  6. ^ Universo de financiación abcdef . "Xilinx, Inc." Consultado el 15 de enero de 2009.
  7. ^ Clive Maxfield, Programmable Logic DesignLine, "Xilinx presenta la revolucionaria arquitectura FPGA de 65 nm: la familia Virtex-5 Archivado el 25 de diciembre de 2009 en Wayback Machine . 15 de mayo de 2006. Consultado el 5 de febrero de 2009.
  8. ^ ab Maxfield, Clive (2004). La guía del guerrero del diseño para FPGA: dispositivos, herramientas y flujos. Elsevier. pag. 4.ISBN _ 978-0-7506-7604-5.
  9. ^ "Principales empresas de FPGA para 2013". fuentetech411.com . 28 de abril de 2013.
  10. ^ "Microsoft potencia la búsqueda de Bing con chips programables". CABLEADO . 16 de junio de 2014.
  11. ^ ab "Proyecto Catapulta". Investigación de Microsoft . Julio de 2018.
  12. ^ Maxfield, máx. "Xilinx UltraScale FPGA ofrece 50 millones de puertas ASIC equivalentes". www.eetimes.com . EE veces.
  13. ^ ab Dylan McGrath, EE Times , "El mercado de FPGA superará los 2.700 millones de dólares en 2010, dice In-Stat". 24 de mayo de 2006. Consultado el 5 de febrero de 2009.
  14. ^ ab "Análisis del mercado global de FPGA y pronósticos de segmentos para 2020: industria de FPGA, perspectivas, tamaño, aplicación, producto, participación, perspectivas de crecimiento, oportunidades clave, dinámica, tendencias, análisis, informe de FPGA - Grand View Research Inc". grandviewresearch.com .
  15. ^ Dylan McGrath, EE Times , "El analista de Gartner Dataquest otorga un certificado de buena salud a los mercados de ASIC y FPGA". 13 de junio de 2005. Consultado el 5 de febrero de 2009.
  16. ^ "Descripción general de la familia Virtex-4" (PDF) . xilinx.com . Archivado (PDF) desde el original el 22 de noviembre de 2007 . Consultado el 14 de abril de 2018 .
  17. ^ Wisniewski, Remigiusz (2009). Síntesis de unidades de control de microprogramas compositivos para dispositivos programables. Zielona Góra: Universidad de Zielona Góra. pag. 153.ISBN _ 978-83-7481-293-1.[ enlace muerto permanente ]
  18. ^ Oklobdzija, Vojin G. (2017). Diseño y Fabricación Digital. Prensa CRC. ISBN 9780849386046.
  19. ^ "Tutorial sobre integridad de la señal FPGA". altium.com . Archivado desde el original el 7 de marzo de 2016 . Consultado el 15 de junio de 2010 .
  20. ^ NASA: potencia de la unidad FPGA Archivado el 5 de diciembre de 2010 en la Wayback Machine.
  21. ^ Mike Thompson (2 de julio de 2007). "Los FPGA de señal mixta proporcionan POTENCIA VERDE". Diseño y reutilización .
  22. ^ MB, Swami; Vicepresidente, Pawar (31 de julio de 2014). "DISEÑO VLSI: UN NUEVO ENFOQUE". Revista de sistemas de inteligencia . 4 (1): 60–63. ISSN  2229-7057.
  23. ^ 2. Arquitectura CycloneII. Altera. febrero de 2007
  24. ^ "Documentación: Dispositivos Stratix IV" (PDF) . Altera.com. 2008-06-11. Archivado desde el original (PDF) el 26 de septiembre de 2011 . Consultado el 1 de mayo de 2013 .
  25. ^ Guía del usuario de Virtex-4 FPGA (1 de diciembre de 2008). Xilinx, Inc.
  26. ^ "Xilinx Inc, formulario 8-K, informe actual, fecha de presentación 19 de octubre de 2011". secdatabase.com . Consultado el 6 de mayo de 2018 .
  27. ^ "Xilinx Inc, formulario 10-K, informe anual, fecha de presentación 31 de mayo de 2011". secdatabase.com . Consultado el 6 de mayo de 2018 .
  28. ^ Decano Takahashi, VentureBeat. "La conexión Intel ayudó a la startup de chips Tabula a recaudar 108 millones de dólares". 2 de mayo de 2011. Consultado el 13 de mayo de 2011.
  29. ^ ab Lawrence Latif, The Inquirer. "El fabricante de FPGA afirma haber superado la ley de Moore". 27 de octubre de 2010. Consultado el 12 de mayo de 2011.
  30. ^ EDN Europa. "Xilinx adopta empaques 3D con matrices apiladas Archivado el 19 de febrero de 2011 en Wayback Machine ". 1 de noviembre de 2010. Consultado el 12 de mayo de 2011.
  31. ^ Saban, Kirk (11 de diciembre de 2012). "La tecnología de interconexión de silicio apilado Xilinx ofrece capacidad, ancho de banda y eficiencia energética de FPGA innovadores" (PDF) . xilinx.com . Archivado (PDF) desde el original el 5 de noviembre de 2010 . Consultado el 30 de noviembre de 2018 .
  32. ^ "EMIB de fundición personalizada de Intel". Intel . Archivado desde el original el 13 de julio de 2015 . Consultado el 13 de julio de 2015 .
  33. ^ "Batalla por la FPGA: ¡VHDL vs Verilog! ¿Quién es el verdadero campeón?". digilentinc.com . Archivado desde el original el 26 de diciembre de 2020 . Consultado el 16 de diciembre de 2020 .
  34. ^ "¿Por qué utilizar OpenCL en FPGA?". StreamComputación . 2014-09-16. Archivado desde el original el 1 de enero de 2017 . Consultado el 17 de julio de 2015 .
  35. ^ ab "Todo sobre FPGA".
  36. ^ Dillien, Paul (6 de marzo de 2017). "Y el ganador del premio a la Mejor FPGA de 2016 es..." EETimes . Archivado desde el original el 5 de enero de 2019 . Consultado el 7 de septiembre de 2017 .
  37. ^ "Suite de diseño Xilinx ISE". www.xilinx.com . Consultado el 1 de diciembre de 2018 .
  38. ^ "Software de diseño FPGA: Intel Quartus Prime". Intel . Consultado el 1 de diciembre de 2018 .
  39. ^ "Máquina del tiempo de Tabula: informe del microprocesador" (PDF) . Archivado desde el original (PDF) el 10 de abril de 2011.
  40. ^ Tabula para cerrar; Se pierden 120 puestos de trabajo en la empresa de chips sin fábrica Silicon Valley Business Journal
  41. ^ "Intel comprará Altera por 16.700 millones de dólares en el mayor acuerdo de su historia". Reuters . Junio ​​de 2015.
  42. ^ "AMD adquirirá Xilinx, creando el líder en informática de alto rendimiento de la industria". Octubre de 2020.
  43. ^ "AMD cierra un acuerdo récord en la industria de chips con la compra estimada de Xilinx por 50.000 millones de dólares". Reuters . Febrero de 2022.
  44. ^ "Achronix utilizará la fabricación de 22 nm de Intel". Sala de prensa de Intel . 2010-11-01 . Consultado el 1 de diciembre de 2018 .
  45. ^ Maxfield, Clive (16 de junio de 2004). La guía del guerrero del diseño para FPGA. Ciencia Elsevier. ISBN 9780080477138.
  46. ^ "Principales empresas de FPGA para 2013". FuenteTech411 . 28 de abril de 2013 . Consultado el 1 de diciembre de 2018 .
  47. ^ "QuickLogic: soluciones de semiconductores personalizables para dispositivos móviles". www.quicklogic.com . Corporación QuickLogic . Consultado el 7 de octubre de 2018 .
  48. ^ "Xilinx Inc, formulario 8-K, informe actual, fecha de presentación 26 de abril de 2006". secdatabase.com . Consultado el 6 de mayo de 2018 .
  49. ^ "Publicaciones y Presentaciones". bdti.com . Archivado desde el original el 21 de agosto de 2010 . Consultado el 2 de noviembre de 2018 .
  50. ^ LaPedus, Marcos. "Xilinx apunta a FPGA de 65 nm a aplicaciones DSP". EETimes .
  51. ^ Alcaín, Eduardo; Fernández, Pedro R.; Nieto, Rubén; Montemayor, Antonio S.; Vilas, Jaime; Galiana-Bordera, Adrián; Martínez-Girones, Pedro Miguel; Prieto-de-la-Lastra, Carmen; Rodríguez-Vilá, Borja; Bonet, Marina; Rodríguez-Sánchez, Cristina (2021-12-15). "Arquitecturas de hardware para imágenes médicas en tiempo real". Electrónica . 10 (24): 3118. doi : 10.3390/electrónica10243118 . ISSN  2079-9292.
  52. ^ Nagornov, Nikolay N.; Lyakhov, Pavel A.; Valueva, María V.; Bergerman, Maxim V. (2022). "Aceleradores FPGA basados ​​en RNS para el procesamiento de ondas de imágenes médicas 3D de alta calidad utilizando coeficientes de filtro escalados". Acceso IEEE . 10 : 19215–19231. doi : 10.1109/ACCESS.2022.3151361 . ISSN  2169-3536. S2CID  246895876.
  53. ^ Morgan, Timothy Pricket (3 de septiembre de 2014). "Cómo utiliza Microsoft los FPGA para acelerar la búsqueda en Bing". Tecnología empresarial . Consultado el 18 de septiembre de 2018 .
  54. ^ "i-RAM de Gigabyte: almacenamiento de estado sólido asequible". anandtech.com . 2005-07-25 . Consultado el 16 de diciembre de 2020 .
  55. ^ "Dispositivos de desarrollo FPGA para aplicaciones espaciales resistentes a la radiación presentados por Microsemi". www.militaryaerospace.com . 2016-06-03 . Consultado el 2 de noviembre de 2018 .
  56. ^ "CrypTech: creación de transparencia en la criptografía" (PDF) . Archivado (PDF) desde el original el 7 de agosto de 2016.
  57. ^ Mann, Tobías (8 de marzo de 2023). "Si bien las XPU Intel están retrasadas, aquí hay algunos FPGA más que lo ayudarán". El registro .
  58. ^ Leber, cristiano; Geib, Benjamín; Litz, Heiner (septiembre de 2011). Aceleración del comercio de alta frecuencia mediante FPGA. Conferencia internacional sobre aplicaciones y lógica programable en campo. IEEE. doi :10.1109/FPL.2011.64.
  59. ^ "Radio definida por software y JTRS". Aeroespacial militar . 2004-12-01 . Consultado el 17 de enero de 2024 .
  60. ^ Huffmire, Ted; Hermano, Brett; Sherwood, Timoteo; Kastner, Ryan; Levin, Timoteo; Nguyen, Thuy D.; Irvine, Cynthia (2008). "Gestión de la seguridad en sistemas integrados basados ​​en FPGA". Diseño y prueba de computadoras IEEE . 25 (6): 590–598. doi :10.1109/MDT.2008.166. S2CID  115840.
  61. ^ Babaei, Armin; Schiele, Gregorio; Zohner, Michael (26 de julio de 2022). "Arquitectura de seguridad reconfigurable (RESA) basada en PUF para dispositivos IoT basados ​​en FPGA". Sensores . 22 (15): 5577. Código bibliográfico : 2022Senso..22.5577B. doi : 10.3390/s22155577 . ISSN  1424-8220. PMC 9331300 . PMID  35898079. 
  62. ^ "EETimes en PUF: funciones de seguridad para expertos que no son expertos en seguridad: identificación intrínseca". Identificación intrínseca . 2015-06-09. Archivado desde el original el 13 de julio de 2015 . Consultado el 12 de julio de 2015 .
  63. ^ Skorobogatov, Sergei; Maderas, Christopher (2012). "Un innovador escaneo de silicio descubre una puerta trasera en un chip militar". Hardware criptográfico y sistemas integrados - CHES 2012 . Apuntes de conferencias sobre informática. vol. 7428, págs. 23–40. doi :10.1007/978-3-642-33027-8_2. ISBN 978-3-642-33026-1.
  64. ^ Kuon, Ian; Rosa, Jonathan (2006). "Midiendo la brecha entre FPGA y ASIC" (PDF) . Actas del simposio internacional sobre conjuntos de puertas programables de campo - FPGA'06 . Nueva York, Nueva York: ACM. págs. 21-30. doi :10.1145/1117201.1117205. ISBN 1-59593-292-5. Archivado desde el original (PDF) el 22 de junio de 2010 . Consultado el 25 de octubre de 2017 .
  65. ^ Cutress, Ian (27 de agosto de 2019). "Xilinx anuncia la FPGA más grande del mundo: Virtex Ultrascale + VU19P con 9 millones de celdas". AnandTech .
  66. ^ "AN 818: Tutorial de reconfiguración parcial de actualización estática: para la placa de desarrollo FPGA Intel Stratix 10 GX". www.intel.com . Consultado el 1 de diciembre de 2018 .
  67. ^ "¿Pueden los FPGA modificar dinámicamente su lógica?". Intercambio de pilas de ingeniería eléctrica . Consultado el 1 de diciembre de 2018 .
  68. ^ "CPLD vs FPGA: ¿Diferencias entre ellos y cuál usar? - Centro de ayuda de Numato Lab". numato.com . 2017-11-29.

Otras lecturas

enlaces externos