Matriz de puertas programables en campo

Matriz de puertas lógicas que son reprogramables

Un FPGA Stratix IV de Altera
FPGA Spartan de Xilinx

Una matriz de puertas programables en campo ( FPGA ) es un tipo de circuito integrado configurable que se puede programar repetidamente después de la fabricación. Las FPGA son un subconjunto de dispositivos lógicos denominados dispositivos lógicos programables (PLD). Consisten en una matriz de bloques lógicos programables con una rejilla de conexión, que se pueden configurar "en el campo" para interconectarse con otros bloques lógicos para realizar varias funciones digitales. Las FPGA se utilizan a menudo en la producción de cantidades limitadas (bajas) de productos hechos a medida, y en investigación y desarrollo, donde el mayor coste de las FPGA individuales no es tan importante y donde la creación y fabricación de un circuito personalizado no sería factible. Otras aplicaciones de las FPGA incluyen los sectores de las telecomunicaciones, la automoción, la aeroespacial y la industria, que se benefician de su flexibilidad, alta velocidad de procesamiento de señales y capacidades de procesamiento paralelo.

Una configuración de FPGA generalmente se escribe utilizando un lenguaje de descripción de hardware (HDL), por ejemplo VHDL , similar a los que se utilizan para circuitos integrados específicos de la aplicación (ASIC). Antes se utilizaban diagramas de circuitos para escribir la configuración.

Los bloques lógicos de un 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 los FPGA, los bloques lógicos también incluyen elementos de memoria , que pueden ser flip-flops simples o bloques de memoria más sofisticados. [1] Muchos FPGA se pueden reprogramar para implementar diferentes funciones lógicas , lo que permite una computación reconfigurable flexible como la que se realiza en el software de computadora .

Los FPGAs también tienen un papel en el desarrollo de sistemas integrados debido a su capacidad de iniciar el desarrollo del software del sistema simultáneamente con el hardware, permitir simulaciones del 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 los FPGA surgió a partir de la memoria de solo lectura programable (PROM) y los dispositivos lógicos programables (PLD). Tanto las PROM como los PLD tenían la opción de programarse en lotes en una fábrica o en el campo (programación en campo). [3]

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

En 1985, Xilinx produjo el primer conjunto de puertas programable en campo comercialmente viable [3]  : el XC2064. [5] El XC2064 tenía puertas programables e interconexiones programables entre puertas, lo que supuso el comienzo de una nueva tecnología y un nuevo 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 de Guerra de Superficie Naval financió un experimento propuesto por Steve Casselman para desarrollar una computadora que implementara 600.000 puertas reprogramables. Casselman tuvo éxito y en 1992 se emitió una patente relacionada con el sistema. [3]

Altera y Xilinx siguieron sin encontrar rivales y crecieron rápidamente desde 1985 hasta mediados de los años 1990, cuando aparecieron competidores que erosionaron una parte significativa de su cuota de mercado. En 1993, Actel (más tarde Microsemi , ahora Microchip ) atendía aproximadamente el 18 por ciento del mercado. [6]

La década de 1990 fue un período de rápido crecimiento para los FPGA, tanto en sofisticación de circuitos como en 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 FPGAs para acelerar sistemas de alto rendimiento y de uso intensivo de recursos computacionales (como los centros de datos que operan su motor de búsqueda Bing ), debido a la ventaja de rendimiento por vatio que ofrecen los FPGAs. [10] Microsoft comenzó a utilizar FPGAs para acelerar Bing en 2014, y en 2018 comenzó a implementar FPGAs en otras cargas de trabajo de centros de datos para su plataforma de computación en la nube Azure . [11]

Crecimiento

Las siguientes líneas de tiempo indican el progreso en diferentes aspectos del diseño de FPGA.

Puertas

  • 1987: 9.000 puertas, Xilinx [6]
  • 1992: 600.000, Departamento de Guerra de Superficie Naval [3]
  • Principios de la década de 2000: millones [8]
  • 2013: 50 millones, Xilinx [12]

Tamaño del mercado

  • 1985: Primer FPGA comercial: Xilinx XC2064 [5] [6]
  • 1987: 14 millones de dólares [6]
  • c.  1993 : >$385 millones [6] [ verificación fallida ]
  • 2005: 1.900 millones de dólares [13]
  • Estimaciones para 2010: 2.750 millones de dólares [13]
  • 2013: 5.400 millones de dólares [14]
  • Estimación para 2020: 9.800 millones de dólares [14]
  • Estimación para 2030: 23.340 millones de dólares [15]

El diseño comienza

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

  • 2005: 80.000 [16]
  • 2008: 90.000 [17]

Diseño

Los FPGAs contemporáneos tienen una gran cantidad de puertas lógicas y bloques de RAM para implementar cálculos digitales complejos. Los FPGAs se pueden utilizar para implementar cualquier función lógica que un ASIC pueda realizar. La capacidad de actualizar la funcionalidad después del envío, la reconfiguración parcial de una parte del diseño [18] 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 tasas 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 retención. [19] La planificación del piso ayuda a la asignación de recursos dentro de los FPGA para cumplir con estas restricciones de tiempo.

Algunos FPGAs 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 lentos. [20] [21] También son comunes los circuitos de controlador de oscilador de cristal de cuarzo, los osciladores RC en chip y los bucles de enganche de fase con osciladores controlados por voltaje integrados que se utilizan para la generación y gestión de relojes, así como para los relojes de transmisión del serializador-deserializador de alta velocidad (SERDES) y la recuperación del reloj del receptor. Bastante comunes son los comparadores diferenciales en los pines de entrada diseñados para conectarse a canales de señalización diferencial . Algunos FPGAs de señal mixta tienen convertidores analógicos a digitales (ADC) periféricos integrados y convertidores digitales a analógicos (DAC) con bloques de acondicionamiento de señales analógicas, lo que les permite funcionar como un sistema en un chip (SoC). [22] Estos dispositivos difuminan la línea entre un FPGA, que lleva unos y ceros digitales en su estructura de interconexión programable interna, y una matriz analógica programable en campo (FPAA), que lleva valores analógicos en su estructura de interconexión programable interna.

Bloques lógicos

Ejemplo simplificado de ilustración 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 consiste en una matriz de bloques lógicos llamados bloques lógicos configurables (CLB) o bloques de matriz lógica (LAB) (según el proveedor), pads de E/S y canales de enrutamiento. [1] Generalmente, todos los canales de enrutamiento tienen el mismo ancho (número de señales). Múltiples pads de E/S pueden caber en la altura de una fila o en el ancho de una columna de la matriz.

"Un circuito de aplicación debe ser mapeado en un FPGA con recursos adecuados. Mientras que 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 interruptor de barra cruzada requiere mucho más enrutamiento que una matriz sistólica con el mismo conteo de puertas. Dado que los canales de enrutamiento no utilizados aumentan el costo (y disminuyen el rendimiento) del FPGA sin proporcionar ningún beneficio, los fabricantes de FPGA intentan proporcionar solo los canales suficientes para 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". [23]

En general, un bloque lógico consta de unas cuantas celdas lógicas. Una celda típica consta de una LUT de 4 entradas, un sumador completo (FA) y un flip-flop tipo D. La LUT se puede dividir en dos LUT de 3 entradas. En el modo normal, se combinan en una LUT de 4 entradas a través del primer multiplexor (mux). En el 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 sincrónica o asincrónica , según la programación del tercer mux. En la práctica, el sumador completo o partes de él se almacenan como funciones en las LUT para ahorrar espacio . [24] [25] [26]

Bloques duros

Las familias de FPGA modernas amplían las capacidades anteriores para incluir funciones de nivel superior fijadas en silicio. Tener estas funciones comunes integradas en el circuito reduce el área requerida y les otorga a esas funciones un mayor rendimiento en comparación con su construcción a partir de primitivas lógicas. Algunos ejemplos de estas 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 duros como núcleos de procesador , unidades de control de acceso al medio Ethernet , controladores PCI o PCI Express y controladores de memoria externa . Estos núcleos existen junto con la estructura programable, pero están construidos con transistores en lugar de LUT, por lo que tienen un rendimiento y un consumo de energía de nivel ASIC sin consumir una cantidad significativa de recursos de la estructura, dejando más de la 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 la capa física (PHY) de nivel superior, como la codificación de línea , puede o no implementarse junto con los serializadores y deserializadores en la lógica dura, según el FPGA.

Núcleo blando

Un sistema totalmente programable en un chip Xilinx Zynq-7000

Un enfoque alternativo al uso de macroprocesadores duros es hacer uso de núcleos IP de procesadores blandos que se implementan dentro de la lógica FPGA. Nios II , MicroBlaze y Mico32 son ejemplos de procesadores de núcleo blando 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 matriz 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 e interconexiones de los 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 , [27] que incluye un  procesador ARM Cortex-A9 MPCore de doble núcleo de 1,0 GHz integrado en la estructura lógica del FPGA, [28] o en el FPGA Altera Arria V, que incluye un ARM Cortex-A9 MPCore de doble núcleo de 800 MHz . El FPSLIC de Atmel 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-digitales multicanal y convertidores digital-analógicos en su estructura FPGA basada en memoria flash . [ cita requerida ]

Marcando el tiempo

La mayor parte de la lógica dentro de un FPGA es un circuito sincrónico que requiere 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 se pueden entregar con un sesgo mínimo . Los FPGA pueden contener componentes analógicos de bucle de enganche de fase o bucle de enganche de retardo para sintetizar nuevas frecuencias de reloj y gestionar el jitter . Los diseños complejos pueden utilizar múltiples relojes con diferentes relaciones de frecuencia y fase, cada uno formando dominios de reloj separados . Estas señales de reloj se pueden generar localmente mediante un oscilador o se pueden recuperar de un flujo de datos . Se debe tener cuidado al construir circuitos que crucen el dominio del reloj para evitar la metaestabilidad . Algunos FPGA contienen bloques de RAM de doble puerto que son capaces de trabajar con diferentes relojes, lo que ayuda en la construcción de FIFO de construcción y búferes 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 . [29] [30] Tras la introducción de sus FPGA de la 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 paquete, empleando tecnología desarrollada para la construcción 3D y ensamblajes de matrices apiladas.

El método de Xilinx consiste en apilar varias matrices FPGA activas (tres o cuatro) una al lado de la otra sobre un intercalador de silicio  , una única pieza de silicio que lleva la interconexión pasiva. [30] [31] 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 de proceso son diferentes entre la propia estructura de la FPGA y los transceptores en serie de altísima velocidad de 28 Gbit/s. Una FPGA construida de esta manera se denomina FPGA heterogénea . [32]

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 mediante la tecnología de puente de interconexión multimatriz (EMIB) integrada de Intel. [33]

Programación

Para definir el comportamiento del FPGA, el usuario proporciona un diseño en lenguaje de descripción de hardware (HDL) o como diseño esquemático . El formato HDL es más adecuado 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 introducción de un esquema 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 conexiones asignada a la tecnología . La lista de conexiones se puede ajustar a la arquitectura real del FPGA mediante un proceso llamado " place and route" , que normalmente se lleva a cabo mediante el software propietario de "place and route" de la empresa del FPGA. El usuario validará los resultados mediante análisis de tiempos , 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, normalmente mediante el software propietario del proveedor del FPGA, se utiliza para (re)configurar el FPGA. Este archivo se transfiere al FPGA a través de una interfaz en serie ( JTAG ) o a un dispositivo de memoria externo como una EEPROM .

Los HDL más comunes son VHDL y Verilog . El lenguaje de programación gráfica LabVIEW de National Instruments (a veces denominado G ) tiene un módulo adicional FPGA disponible para apuntar y programar hardware FPGA. Verilog se creó para simplificar el proceso, haciendo que HDL sea más robusto y flexible. Verilog tiene una sintaxis similar a C, a diferencia de VHDL. [34] [ ¿ Fuente autopublicada? ]

Para simplificar el diseño de sistemas complejos en FPGAs, 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 de terceros. 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 (generalmente publicados bajo licencias gratuitas y de código abierto como GPL , BSD o licencias similares). Estos 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 mediante la creación de bancos de pruebas para simular el sistema y observar los resultados. Luego, después de que el motor de síntesis haya mapeado el diseño a una lista de conexiones, la lista de conexiones se traduce a una descripción a nivel de compuerta donde se repite la simulación para confirmar que la síntesis se realizó sin errores. Finalmente, el diseño se presenta en el FPGA, momento en el cual los valores de retardo de propagación se pueden anotar nuevamente en la lista de conexiones y la simulación se puede ejecutar nuevamente con estos valores.

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. [ 35] 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 su programación. Estos FPGA se pueden programar y reprogramar en el sistema, pero requieren dispositivos de arranque externos. Por ejemplo, los dispositivos de memoria flash o EEPROM pueden cargar contenidos en la SRAM interna que controla el enrutamiento y la lógica. El enfoque de SRAM se basa en CMOS .

Las alternativas más raras al enfoque SRAM incluyen:

  • Fusible : programable una sola vez. Bipolar. Obsoleto.
  • Antifuse : programable una sola vez. CMOS. Ejemplos: familias Actel SX y Axcelerator; familia Quicklogic Eclipse II. [36]
  • PROM : tecnología de memoria programable de solo lectura. Programable una sola vez debido al envoltorio de plástico. [ Aclaración necesaria ] Obsoleto.
  • EPROM : tecnología de memoria de solo lectura programable y borrable. Programable una sola vez pero con ventana, se puede borrar con luz ultravioleta (UV). CMOS. Obsoleto.
  • EEPROM : tecnología de memoria de solo lectura programable y borrable eléctricamente. Puede borrarse, incluso en paquetes de plástico. Algunos dispositivos EEPROM, pero no todos, pueden programarse en el sistema. CMOS.
  • Flash : tecnología de EPROM de borrado por flash. Puede borrarse, incluso en paquetes de plástico. Algunos dispositivos flash, pero no todos, pueden programarse en el sistema. Por lo general, una celda flash es más pequeña que una celda EEPROM equivalente y, por lo tanto, es menos costosa de fabricar. CMOS. Ejemplo: familia Actel ProASIC. [36]

Fabricantes

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

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

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

El 1 de junio de 2015, Intel anunció que adquiriría Altera por aproximadamente US$ 16,7 mil millones y completó la adquisición el 30 de diciembre de 2015. [42]

El 27 de octubre de 2020, AMD anunció que adquiriría Xilinx [43] y completó la adquisición valorada en aproximadamente US$50 mil millones en febrero de 2022. [44]

En febrero de 2024, Altera volvió a ser independiente de Intel. [45]

Otros fabricantes incluyen:

Aplicaciones

Un FPGA puede utilizarse para resolver cualquier problema que sea computable . Los FPGA pueden utilizarse para implementar un microprocesador suave , como el Xilinx MicroBlaze o el Altera Nios II . Pero su ventaja radica en que son significativamente más rápidos para algunas aplicaciones debido a su naturaleza paralela y su optimalidad en términos del número de puertas utilizadas para ciertos procesos. [51]

Los FPGAs se introdujeron originalmente como competidores de los CPLD para implementar la lógica de unión para las placas de circuitos impresos . A medida que su tamaño, capacidades y velocidad aumentaron, los FPGAs asumieron funciones adicionales hasta el punto en 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 de los procesadores de señales digitales (DSP) comenzaron a utilizar FPGAs en su lugar. [52] [53]

La evolución de los FPGAs ha motivado un aumento en el uso de estos dispositivos, cuya arquitectura permite el desarrollo de soluciones hardware optimizadas para tareas complejas, como la segmentación de imágenes de resonancia magnética 3D, la transformada wavelet discreta 3D, la reconstrucción de imágenes tomográficas o los sistemas PET/MRI. [54] [55] Las soluciones desarrolladas pueden realizar tareas de computación intensivas con procesamiento paralelo, son reprogramables dinámicamente y tienen un bajo costo, todo ello cumpliendo con los estrictos requisitos de tiempo real asociados con las imágenes médicas.

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

Tradicionalmente, los FPGAs 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 crear un ASIC. A partir de 2017 , las nuevas dinámicas de costos y rendimiento han ampliado la gama de aplicaciones viables.[actualizar]

Cuando los periféricos de ordenadores personales existen en mercados especializados o tienen dificultades para abrirse paso en un mercado masivo (a veces a pesar de una fuerte promoción), puede resultar más rentable utilizar FPGAs para pequeñas producciones (por ejemplo, 1.000 unidades). Algunos ejemplos son productos exóticos como, por ejemplo, ArVid , un archivador de cintas VHS (del que solo algunas versiones estaban basadas en FPGA) y la unidad pseudo-SSD económica i-RAM de Gigabyte Technology , que utilizaba un FPGA de Xilinx. [57] A menudo, un chip hecho a medida sería más barato si se fabricara en grandes cantidades, pero se pueden elegir FPGAs para llevar rápidamente un producto al mercado. De nuevo, en la medida en que aumente la disponibilidad de FPGAs de menor coste, puede llegar a justificarse su inclusión incluso en producciones más grandes.

Otros usos de los FPGAs incluyen:

Uso por parte del ejército de los Estados Unidos

Los FPGAs desempeñan un papel crucial en las comunicaciones militares modernas, especialmente en sistemas como el Sistema de Radio Táctica Conjunta (JTRS) y en dispositivos de empresas como Thales y Harris Corporation . Su flexibilidad y programabilidad los hacen ideales para las comunicaciones militares, ofreciendo un procesamiento de señales personalizable y seguro. En el JTRS, utilizado por el ejército estadounidense, los FPGAs proporcionan adaptabilidad y procesamiento en tiempo real, cruciales para cumplir con varios 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 la reconfiguración rápida y la seguridad robusta. De manera similar, Harris Corporation, ahora parte de L3Harris Technologies , incorpora FPGAs en sus soluciones de comunicación comercial y de defensa, mejorando el procesamiento de señales y la seguridad del sistema. [62]

L3 Harris

  1. Radio rápidamente adaptable y compatible con estándares (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 rol 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 generalmente involucra FPGA para lograr una mayor flexibilidad y rendimiento.
  2. AN/PRC-148 (Radio multibanda inter/intra equipo - MBITR): un SDR multibanda, multimodo y de formato 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 inicial.

Seguridad

Los FPGAs 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 FPGAs hace que las modificaciones maliciosas durante la fabricación sean un riesgo menor. [63] Anteriormente, para muchos FPGAs, el flujo de bits de diseño se exponía mientras el FPGA lo cargaba desde la memoria externa (normalmente en cada encendido). Todos los principales proveedores de FPGAs ofrecen ahora un espectro de soluciones de seguridad a los diseñadores, como el cifrado y la autenticación del 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 utilizar para proteger los FPGAs mientras ocupan muy poco espacio en el hardware. [64]

Los FPGAs que almacenan su configuración internamente en una memoria flash no volátil, como ProAsic 3 de Microsemi o los dispositivos programables 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 alteraciones de un solo evento para aplicaciones espaciales. [ Aclaración necesaria ] Los clientes que desean una mayor garantía de resistencia a la manipulación pueden utilizar FPGAs antifusibles de escritura única de proveedores como Microsemi .

Con sus FPGAs y SoCs Stratix 10, Altera introdujo un Administrador de Dispositivos Seguros y funciones físicas no clonables para brindar altos niveles de protección contra ataques físicos. [65]

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

En 2020 se descubrió una vulnerabilidad crítica (denominada "Starbleed") en todos los FPGA de la serie 7 de Xilinx que hacía inútil el cifrado de flujo de bits. No existe ninguna solución alternativa. Xilinx no produjo una revisión del hardware. Los dispositivos Ultrascale y posteriores, que ya estaban en el mercado en ese momento, no se vieron afectados.

Tecnologías similares

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

Las ventajas de los FPGAs incluyen la capacidad de reprogramarlos cuando ya están implementados (es decir, "en el campo") para corregir errores , y a menudo incluyen un menor tiempo de comercialización y menores costos de ingeniería no recurrentes . Los proveedores también pueden tomar un camino intermedio a través del prototipado de FPGA : desarrollar su hardware prototipo en FPGAs, pero fabricar su versión final como un ASIC para que ya no pueda modificarse después de que se haya confirmado el diseño. Esto también suele suceder con los nuevos diseños de procesadores. [68] Algunos FPGAs tienen la capacidad de reconfiguración parcial que permite reprogramar una parte del dispositivo mientras otras partes continúan funcionando. [69] [70]

Las principales diferencias entre los dispositivos lógicos programables complejos (CPLD) y los FPGA son arquitectónicas . Un CPLD tiene una estructura comparativamente restrictiva que consiste en una o más matrices lógicas 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 mayor relación lógica-interconexión. [ cita requerida ] Las arquitecturas de FPGA, por otro lado, están dominadas por la interconexión . Esto las hace mucho más flexibles (en términos de la gama de diseños que son prácticos para la implementación en ellas) pero también mucho más complejas 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 es a menudo una de tamaño, ya que los FPGA suelen ser mucho más grandes en términos de recursos que los CPLD. Normalmente, solo 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 FPGAs 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 al encender el sistema), generalmente se prefieren los CPLD. Para la mayoría de las demás aplicaciones, generalmente se prefieren los FPGAs. A veces, se utilizan tanto CPLD como FPGAs en un único diseño de sistema. En esos diseños, los CPLD generalmente realizan funciones de lógica de unión y son responsables de " arrancar " el 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 ser prudente utilizar tanto FPGAs como CPLDs en un único diseño. [71]

Véase también

Referencias

  1. ^ abc "Arquitectura FPGA para el desafío". toronto.edu . Universidad de Toronto .
  2. ^ Simpson, PA (2015). Diseño de FPGA, mejores prácticas para la reutilización en equipo, 2.ª edición . Suiza: Springer International Publishing AG. pág. 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). "En el principio". altera.com . Archivado desde el original el 21 de abril de 2015.
  5. ^ ab "XCELL número 32" (PDF) . Xilinx. Archivado (PDF) del original el 7 de enero de 2011.
  6. ^ abcdef Funding Universe. "Xilinx, Inc." Consultado el 15 de enero de 2009.
  7. ^ Clive Maxfield, Programmable Logic DesignLine, "Xilinx presenta una arquitectura FPGA revolucionaria 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). Guía del guerrero del diseño para FPGA: dispositivos, herramientas y flujos. Elsevier. p. 4. ISBN 978-0-7506-7604-5.
  9. ^ "Las principales empresas de FPGA para 2013". sourcetech411.com . 28 de abril de 2013. Archivado desde el original el 9 de julio de 2015 . Consultado el 8 de julio de 2015 .
  10. ^ "Microsoft potencia la búsqueda de Bing con chips programables". WIRED . 16 de junio de 2014.
  11. ^ ab "Proyecto Catapult". Microsoft Research . Julio de 2018.
  12. ^ Maxfield, Max. "El FPGA Xilinx UltraScale ofrece 50 millones de puertas ASIC equivalentes". www.eetimes.com . EE Times.
  13. ^ de Dylan McGrath, EE Times , "El mercado de FPGA superará los 2.700 millones de dólares en 2010, según 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 hasta 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. ^ "El mercado de matrices de puertas programables en campo alcanzará los 23.340 millones de dólares en 2030". www.grandviewresearch.com . Consultado el 25 de abril de 2024 .
  16. ^ Dylan McGrath, EE Times , "Analista de Gartner Dataquest da el visto bueno a los mercados de ASIC y FPGA". 13 de junio de 2005. Consultado el 5 de febrero de 2009.
  17. ^ "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 .
  18. ^ 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 ]
  19. ^ Oklobdzija, Vojin G. (2017). Diseño y Fabricación Digital. Prensa CRC. ISBN 9780849386046.
  20. ^ "Tutorial de integridad de señal de FPGA". altium.com . Archivado desde el original el 7 de marzo de 2016. Consultado el 15 de junio de 2010 .
  21. ^ NASA: Fuerza impulsora de FPGA Archivado el 5 de diciembre de 2010 en Wayback Machine.
  22. ^ Mike Thompson (2 de julio de 2007). "Los FPGA de señal mixta proporcionan ENERGÍA VERDE". Diseño y reutilización .
  23. ^ Mb, Swami; Vp, Pawar (31 de julio de 2014). "DISEÑO VLSI: UN NUEVO ENFOQUE". Revista de sistemas de inteligencia . 4 (1): 60–63. ISSN  2229-7057.
  24. ^ 2. Arquitectura de CycloneII. Altera. Febrero de 2007
  25. ^ "Documentación: dispositivos Stratix IV" (PDF) . Altera.com. 2008-06-11. Archivado desde el original (PDF) el 2011-09-26 . Consultado el 2013-05-01 .
  26. ^ Guía del usuario del FPGA Virtex-4 (1 de diciembre de 2008). Xilinx, Inc.
  27. ^ "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 .
  28. ^ "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 .
  29. ^ Dean Takahashi, VentureBeat. "La conexión de 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.
  30. ^ de 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.
  31. ^ EDN Europa. "Xilinx adopta el empaquetado 3D con matriz apilada Archivado el 19 de febrero de 2011 en Wayback Machine ." 1 de noviembre de 2010. Consultado el 12 de mayo de 2011.
  32. ^ Saban, Kirk (11 de diciembre de 2012). "La tecnología de interconexión de silicio apilado de Xilinx ofrece capacidad, ancho de banda y eficiencia energética innovadores para FPGA" (PDF) . xilinx.com . Archivado (PDF) desde el original el 2010-11-05 . Consultado el 2018-11-30 .
  33. ^ "Intel Custom Foundry EMIB". Intel . Archivado desde el original el 13 de julio de 2015 . Consultado el 13 de julio de 2015 .
  34. ^ "Batalla por el FPGA: ¡VHDL vs Verilog! ¿Quién es el verdadero campeón?". digilentinc.com . Archivado desde el original el 2020-12-26 . Consultado el 2020-12-16 .
  35. ^ "¿Por qué utilizar OpenCL en FPGAs?". StreamComputing . 16 de septiembre de 2014. Archivado desde el original el 1 de enero de 2017. Consultado el 17 de julio de 2015 .
  36. ^ ab "Todo sobre los FPGAs". 21 de marzo de 2006.
  37. ^ Dillien, Paul (6 de marzo de 2017). "Y el ganador del premio al mejor FPGA de 2016 es..." EETimes . Archivado desde el original el 5 de enero de 2019. Consultado el 7 de septiembre de 2017 .
  38. ^ "Xilinx ISE Design Suite" www.xilinx.com . Consultado el 1 de diciembre de 2018 .
  39. ^ "Software de diseño de FPGA: Intel Quartus Prime". Intel . Consultado el 1 de diciembre de 2018 .
  40. ^ "La máquina del tiempo de Tabula: informe sobre el microprocesador" (PDF) . Archivado desde el original (PDF) el 10 de abril de 2011.
  41. ^ Tabula cerrará; se perderán 120 puestos de trabajo en una empresa de chips sin fábrica Silicon Valley Business Journal
  42. ^ "Intel comprará Altera por 16.700 millones de dólares en su mayor operación hasta la fecha". Reuters . Junio ​​de 2015.
  43. ^ "AMD adquirirá Xilinx y creará el líder de la industria en computación de alto rendimiento". Octubre de 2020.
  44. ^ "AMD cierra un acuerdo récord en la industria de chips con la compra de Xilinx por un valor estimado de 50.000 millones de dólares". Reuters . Febrero de 2022.
  45. ^ "Intel lanza Altera, su nueva empresa de FPGA independiente". Intel (nota de prensa) . Consultado el 29 de febrero de 2024 .
  46. ^ "Achronix utilizará la fabricación de 22 nm de Intel". Intel Newsroom (nota de prensa). 2010-11-01 . Consultado el 2018-12-01 .[ Se necesita una mejor fuente ]
  47. ^ Maxfield, Clive (16 de junio de 2004). Guía del guerrero del diseño para FPGAs. Elsevier Science. ISBN 9780080477138.
  48. ^ "Acerca de la empresa – Cologne Chip" . Consultado el 27 de febrero de 2024 .[ Se necesita una mejor fuente ]
  49. ^ "Las principales empresas de FPGA para 2013". SourceTech411 . 2013-04-28. Archivado desde el original el 2018-08-24 . Consultado el 2018-12-01 .
  50. ^ "QuickLogic: soluciones de semiconductores personalizables para dispositivos móviles". www.quicklogic.com . QuickLogic Corporation . Consultado el 7 de octubre de 2018 .[ Se necesita una mejor fuente ]
  51. ^ "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 .
  52. ^ "Publicaciones y presentaciones". bdti.com . Archivado desde el original el 2010-08-21 . Consultado el 2018-11-02 .
  53. ^ LaPedus, Mark (5 de febrero de 2007). "Xilinx apunta a los FPGA de 65 nm en aplicaciones DSP". EETimes .
  54. ^ 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.
  55. ^ Nagornov, Nikolay N.; Lyakhov, Pavel A.; Valueva, Maria V.; Bergerman, Maxim V. (2022). "Aceleradores FPGA basados ​​en RNS para procesamiento wavelet de imágenes médicas 3D de alta calidad utilizando coeficientes de filtro escalados". IEEE Access . 10 : 19215–19231. Bibcode :2022IEEEA..1019215N. doi : 10.1109/ACCESS.2022.3151361 . ISSN  2169-3536. S2CID  246895876.
  56. ^ Morgan, Timothy Pricket (3 de septiembre de 2014). "Cómo Microsoft está utilizando FPGAs para acelerar la búsqueda de Bing". Enterprise Tech . Consultado el 18 de septiembre de 2018 .
  57. ^ "i-RAM de Gigabyte: almacenamiento de estado sólido asequible". anandtech.com . 2005-07-25 . Consultado el 2020-12-16 .
  58. ^ "Dispositivos de desarrollo FPGA para aplicaciones espaciales resistentes a la radiación presentados por Microsemi". www.militaryaerospace.com . 2016-06-03 . Consultado el 2018-11-02 .
  59. ^ "CrypTech: Building Transparency into Cryptography t" (PDF) . Archivado (PDF) del original el 2016-08-07.
  60. ^ Mann, Tobias (8 de marzo de 2023). "Si bien las XPU de Intel se retrasan, aquí hay más FPGA para ayudarlo". The Register .
  61. ^ Leber, Christian; Geib, Benjamin; Litz, Heiner (septiembre de 2011). Aceleración de transacciones de alta frecuencia mediante FPGA. Conferencia internacional sobre lógica programable en campo y aplicaciones. IEEE. doi :10.1109/FPL.2011.64.
  62. ^ "Radio definida por software y JTRS". Military Aerospace . 2004-12-01 . Consultado el 2024-01-17 .
  63. ^ Huffmire, Ted; Brotherton, Brett; Sherwood, Timothy; Kastner, Ryan; Levin, Timothy; Nguyen, Thuy D.; Irvine, Cynthia (2008). "Gestión de la seguridad en sistemas integrados basados ​​en FPGA". IEEE Design & Test of Computers . 25 (6): 590–598. doi :10.1109/MDT.2008.166. hdl : 10945/7159 . S2CID  115840.
  64. ^ Babaei, Armin; Schiele, Gregor; 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. Bibcode :2022Senso..22.5577B. doi : 10.3390/s22155577 . ISSN  1424-8220. PMC 9331300 . PMID  35898079. 
  65. ^ "EETimes sobre PUF: Funciones de seguridad para no expertos en seguridad – Intrinsic ID". Intrinsic ID . 2015-06-09. Archivado desde el original el 2015-07-13 . Consultado el 2015-07-12 .
  66. ^ Skorobogatov, Sergei; Woods, 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 clase en informática. Vol. 7428. págs. 23–40. doi :10.1007/978-3-642-33027-8_2. ISBN 978-3-642-33026-1.
  67. ^ Kuon, Ian; Rose, Jonathan (2006). "Medición de la brecha entre FPGAs y ASICs" (PDF) . Actas del simposio internacional sobre arreglos de puertas programables en campo – FPGA'06 . Nueva York, NY: ACM. págs. 21–30. doi :10.1145/1117201.1117205. ISBN . 1-59593-292-5Archivado desde el original (PDF) el 22 de junio de 2010. Consultado el 25 de octubre de 2017 .
  68. ^ Cutress, Ian (27 de agosto de 2019). "Xilinx anuncia el FPGA más grande del mundo: Virtex Ultrascale+ VU19P con 9 millones de celdas". AnandTech .
  69. ^ "AN 818: Tutorial de reconfiguración parcial de actualización estática: para placa de desarrollo FPGA Intel Stratix 10 GX" www.intel.com . Consultado el 1 de diciembre de 2018 .
  70. ^ "¿Pueden los FPGAs modificar dinámicamente su lógica?". Electrical Engineering Stack Exchange . Consultado el 1 de diciembre de 2018 .
  71. ^ "CPLD vs FPGA: ¿Diferencias entre ellos y cuál usar? – Centro de ayuda de Numato Lab". numato.com . 2017-11-29.

Lectura adicional

  • Sadrozinski, Hartmut F.-W.; Wu, Jinyuan (2010). "Aplicaciones de matrices de puertas programables en campo en la investigación científica" . Taylor y Francisco. ISBN 978-1-4398-4133-4.
  • Wirth, Niklaus (1995). Diseño de circuitos digitales: libro de texto de introducción . Springer. ISBN 978-3-540-58577-0.
  • Mitra, Jubin (2018). "Un sistema de medición de fase basado en FPGA". Transacciones IEEE sobre sistemas de integración a muy gran escala (VLSI) . 26 . IEEE: 133–142. doi : 10.1109/TVLSI.2017.2758807 . S2CID  4920719.
  • Mencer, Oskar et al. (2020). "La historia, el estado y el futuro de los FPGA". Comunicaciones de la ACM. ACM. Vol. 63, Núm. 10. doi:10.1145/3410669
  • ¿Qué es un FPGA? en YouTube
  • Migración de MCU a FPGA
Obtenido de "https://es.wikipedia.org/w/index.php?title=Matriz_de_puertas_programables_por_campo&oldid=1250645194"