
Un arreglo de puertas programables en campo ( FPGA ) es un tipo de circuito integrado configurable que se puede programar repetidamente después de su fabricación. Los FPGA son un subconjunto de dispositivos lógicos denominados dispositivos lógicos programables (PLD). Consisten en un arreglo de bloques lógicos programables conectados en cuadrícula que se pueden configurar "en campo" para interconectarse con otros bloques lógicos y realizar diversas funciones digitales. Los FPGA se utilizan a menudo en la producción de cantidades limitadas (bajas) de productos personalizados y en investigación y desarrollo, donde el mayor costo de los 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 los FPGA incluyen los sectores de telecomunicaciones, automoción, aeroespacial e industrial, que se benefician de su flexibilidad, alta velocidad de procesamiento de señales y capacidad de procesamiento paralelo.
La configuración de una FPGA generalmente se escribe utilizando un lenguaje de descripción de hardware (HDL), por ejemplo, VHDL , similar a los que se utilizan para los circuitos integrados de aplicación específica (ASIC). Anteriormente, se utilizaban diagramas de circuitos para escribir la configuración.
Los bloques lógicos de una FPGA se pueden configurar para realizar funciones combinacionales complejas o funcionar como simples compuertas lógicas 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 biestables o bloques de memoria más sofisticados. [ 1 ] Muchas FPGA se pueden reprogramar para implementar diferentes funciones lógicas , lo que permite una computación flexible y reconfigurable, similar a la que se realiza en el software informático .
Los FPGA también desempeñan un papel en el desarrollo de sistemas embebidos debido a su capacidad para 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 habitualmente 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 ser programados en lotes en una fábrica o en el campo (programables en campo). [ 3 ]
Altera se fundó en 1983 y lanzó en 1984 el primer dispositivo lógico reprogramable de la industria, el EP300, que contaba con una ventana de cuarzo en el encapsulado que permitía a los usuarios iluminar el chip con una lámpara ultravioleta para borrar las celdas EPROM que almacenaban la configuración del dispositivo. [ 4 ]
Xilinx (ahora propiedad de AMD ) produjo el primer FPGA comercialmente viable en 1985 [ 3 ] : el XC2064. [ 5 ] El XC2064 tenía puertas programables e interconexiones programables entre puertas, los inicios de una nueva tecnología y mercado. [ 6 ] El XC2064 tenía 64 bloques lógicos configurables ( CLB), con dos tablas de búsqueda (LUT) de tres entradas . [ 7 ]
En 1987, el Centro de Guerra de Superficie Naval 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. [ 3 ]
Altera y Xilinx continuaron sin competencia y crecieron rápidamente desde 1985 hasta mediados de la década de 1990, cuando surgieron competidores que erosionaron una parte significativa de su cuota de mercado. Para 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, los FPGA se utilizaban principalmente en telecomunicaciones y redes . Hacia finales de la década, los FPGA se abrieron camino en aplicaciones de consumo, automotrices e industriales. [ 8 ]
Para 2013, Altera (31 por ciento), Xilinx (36 por ciento) y Actel (10 por ciento) representaban en conjunto aproximadamente el 77 por ciento del mercado de FPGA. [ 9 ]
Empresas como Microsoft han comenzado a utilizar FPGA para acelerar sistemas de alto rendimiento y con gran carga computacional (como los centros de datos que operan su motor de búsqueda Bing ), debido a la ventaja de rendimiento por vatio que ofrecen las FPGA. [ 10 ] Microsoft comenzó a utilizar 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 ]
Desde 2019, las generaciones modernas de FPGA se han integrado con otras arquitecturas, como motores de IA, para abordar cargas de trabajo en el dominio de la inteligencia artificial. [ 12 ]
Crecimiento
Los siguientes cronogramas muestran el progreso en diferentes aspectos del diseño de FPGA.
Puertas
Tamaño del mercado
- 1985: Primer FPGA comercial : Xilinx XC2064 [ 5 ] [ 6 ]
- 1987: $14 millones [ 6 ]
- c. 1993 : >$385 millones [ 6 ]
- 2005: 1.900 millones de dólares [ 14 ]
- Estimaciones de 2010: 2750 millones de dólares [ 14 ]
- 2013: 5.400 millones de dólares [ 15 ]
- Estimación para 2020: $9.8 mil millones [ 15 ]
- Estimación para 2030: 23.340 millones de dólares [ 16 ]
El diseño comienza
Un inicio de diseño es un nuevo diseño personalizado para su implementación en un FPGA.
Diseño
Los FPGA contemporáneos cuentan con amplias compuertas lógicas y bloques de RAM para implementar cálculos digitales complejos. Los FPGA pueden utilizarse 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 [ 19 ] y los bajos costos de ingeniería no recurrentes en comparación con un diseño ASIC (a pesar del costo unitario generalmente más alto) ofrecen ventajas para muchas aplicaciones. [ 1 ]
Dado que los diseños de FPGA emplean velocidades de E/S muy rápidas y buses de datos bidireccionales , resulta un desafío verificar la correcta sincronización de los datos válidos dentro del tiempo de configuración y el tiempo de retención. [ 20 ] La planificación de la distribución física ayuda a la asignación de recursos dentro de las FPGA para cumplir con estas restricciones de sincronización.
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 conmutación programable en cada pin de salida. Esto permite al usuario establecer velocidades bajas en pines con poca carga que de otro modo oscilarían o se acoplarían de forma inaceptable, y establecer velocidades más altas en canales de alta velocidad con mucha carga que de otro modo funcionarían demasiado lento. [ 21 ] [ 22 ] También son comunes los circuitos de control de osciladores de cristal de cuarzo, los osciladores RC en el chip y los bucles de enganche de fase con osciladores controlados por voltaje integrados utilizados para la generación y gestión de reloj, así como para los relojes de transmisión del serializador y deserializador de alta velocidad (SERDES) y la recuperación del reloj del receptor. Son bastante comunes los comparadores diferenciales en los pines de entrada diseñados para conectarse a canales de señalización diferencial . Algunos FPGA de señal mixta tienen convertidores analógico-digitales (ADC) y convertidores digital-analógicos (DAC) periféricos integrados con bloques de acondicionamiento de señal analógica, lo que les permite operar como un sistema en un chip (SoC). [ 23 ] Estos dispositivos difuminan la línea entre un 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

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 fabricante), 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 el ancho de una columna en 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 cruzada requiere mucho más enrutamiento que una matriz sistólica con la misma cantidad de compuertas. 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 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." [ 24 ]
En general, un bloque lógico consta de varias 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 puede dividirse en dos LUT de 3 entradas. En modo normal, estas se combinan en una LUT de 4 entradas mediante el 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 , según la programación del tercer mux. En la práctica, el sumador completo o partes del mismo se almacenan como funciones en las LUT para ahorrar espacio . [ 25 ] [ 26 ] [ 27 ]
bloques duros
Las familias de FPGA modernas amplían las capacidades mencionadas para incluir funcionalidades de nivel superior integradas en el silicio. Al integrar estas funciones comunes en el circuito, se reduce el área requerida y se mejora su rendimiento en comparación con su implementación a partir de primitivas lógicas. Algunos ejemplos son los multiplicadores , los bloques DSP genéricos , los procesadores integrados , la lógica de E/S de alta velocidad y las memorias integradas .
Los FPGA de gama alta pueden contener transceptores multigigabit de alta velocidad y núcleos IP de hardware , 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 coexisten con la estructura programable, pero están construidos con transistores en lugar de LUT, por lo que ofrecen un rendimiento y un consumo de energía similares a los de un ASIC sin consumir una cantidad significativa de recursos de la estructura, dejando así más recursos disponibles para la lógica específica de la aplicación. Los transceptores multigigabit también contienen circuitos de acondicionamiento de señal de alto rendimiento , junto con serializadores y deserializadores de alta velocidad, componentes que no pueden construirse con 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 lógica de hardware, dependiendo del FPGA.
núcleo blando

Una alternativa al uso de procesadores macro de hardware consiste en utilizar núcleos IP de procesadores de software implementados en la lógica de la FPGA. Nios II , MicroBlaze y Mico32 son ejemplos de procesadores de núcleos de software populares. Muchas FPGA modernas se programan en tiempo de ejecución , lo que ha dado lugar a la idea de la computación reconfigurable o los sistemas reconfigurables : CPU que se reconfiguran para adaptarse a la tarea en cuestión. Además, están surgiendo nuevas arquitecturas que no son 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 los de una 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 las FPGA tradicionales con microprocesadores integrados y periféricos relacionados para formar un sistema completo en un chip programable . Ejemplos de estas tecnologías híbridas se pueden encontrar en el SoC totalmente programable Xilinx Zynq-7000 , [ 28 ] que incluye un procesador ARM Cortex-A9 MPCore de doble núcleo de 1,0 GHz integrado en la estructura lógica de la FPGA, [ 29 ] o en la FPGA Altera Arria V, que incluye un ARM Cortex-A9 MPCore de doble núcleo de 800 MHz . El Atmel FPSLIC es otro dispositivo de este tipo, 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 ARM Cortex-M3 (con hasta 512 kB de memoria flash y 64 kB de RAM) y periféricos analógicos, como convertidores analógico-digitales multicanal y convertidores digital-analógicos, en su arquitectura FPGA basada en memoria flash .
Registro de tiempo
La mayor parte de la lógica dentro de un FPGA es un circuito síncrono que requiere una señal de reloj . Los FPGA contienen redes de enrutamiento globales y regionales dedicadas para el reloj y el reinicio, generalmente implementadas como un árbol H , por lo que pueden entregarse con una desviación mínima . Los FPGA pueden contener componentes de bucle de enganche de fase analógico o bucle de enganche de retardo para sintetizar nuevas frecuencias de reloj y gestionar la fluctuación . Los diseños complejos pueden usar múltiples relojes con diferentes relaciones de frecuencia y fase, cada uno formando dominios de reloj separados . Estas señales de reloj pueden ser generadas localmente por un oscilador o pueden ser recuperadas de un flujo de datos . Se debe tener cuidado al construir circuitos que crucen dominios de 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 FIFOs y búferes de doble puerto que conectan dominios de reloj.
arquitecturas 3D
Para reducir el tamaño y el consumo de energía de las FPGA, proveedores como Tabula y Xilinx han introducido arquitecturas 3D o apiladas . [ 30 ] [ 31 ] Tras la introducción de sus FPGA de la serie 7 de 28 nm , Xilinx dijo que varias de las partes de mayor densidad en esas líneas de productos FPGA se construirán utilizando múltiples chips en un paquete, empleando tecnología desarrollada para la construcción 3D y ensamblajes de chips apilados.
El enfoque de Xilinx consiste en apilar varios (tres o cuatro) chips FPGA activos uno al lado del otro en un interponedor de silicio , una sola pieza de silicio que contiene la interconexión pasiva. [ 31 ] [ 32 ] La construcción multichip también permite crear diferentes partes del FPGA con distintas tecnologías de proceso, ya que los requisitos de proceso son diferentes entre la propia estructura del FPGA y los transceptores seriales de muy alta velocidad de 28 Gbit/s . Un FPGA construido de esta manera se denomina FPGA heterogéneo . [ 33 ]
El enfoque heterogéneo de Altera implica el uso de un único chip FPGA monolítico y la conexión de otros chips y tecnologías al FPGA mediante la tecnología EMIB (embedded multi-die interconnect bridge) de Intel. [ 34 ]
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 diagrama esquemático . El formato HDL es más adecuado para trabajar con estructuras grandes, ya que permite especificar el comportamiento funcional de alto nivel en lugar de dibujar cada componente a mano. Sin embargo, la entrada de datos mediante diagramas esquemáticos facilita la visualización del diseño y sus módulos componentes .
Mediante una herramienta de automatización del diseño electrónico , se genera una lista de conexiones con mapeo tecnológico . Esta lista se adapta a la arquitectura FPGA real mediante un proceso de colocación y enrutamiento , generalmente realizado por el software propietario del fabricante de la FPGA. El usuario valida los resultados mediante análisis de temporización , simulación y otras técnicas de verificación y validación . Una vez finalizado el proceso de diseño y validación, el archivo binario generado, normalmente con el software propietario del fabricante de la FPGA, se utiliza para (re)configurar la FPGA. Este archivo se transfiere a la FPGA mediante una interfaz serie ( JTAG ) o a un dispositivo de memoria externa, como una EEPROM .
Los lenguajes de descripción de hardware (HDL) más comunes son VHDL y Verilog . El lenguaje de programación gráfica LabVIEW de National Instruments (a veces denominado G ) cuenta con un módulo adicional para FPGA que permite programar hardware FPGA. Verilog se creó para simplificar el proceso, haciendo que el HDL sea más robusto y flexible. Verilog tiene una sintaxis similar a la de C, [ 35 ] a diferencia de VHDL, que se basa en Ada .
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 conocen comúnmente como núcleos de propiedad intelectual (IP) y están disponibles a través de fabricantes de FPGA y proveedores de IP de terceros. Rara vez son gratuitos y, por lo general, se distribuyen bajo licencias propietarias. Otros circuitos predefinidos están disponibles a través de comunidades de desarrolladores como OpenCores (generalmente distribuidos bajo licencias libres y de código abierto como la GPL , BSD o 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 simula el diseño en múltiples etapas a lo largo del proceso. Inicialmente, se simula la descripción RTL en VHDL o Verilog mediante la creación de bancos de prueba para simular el sistema y observar los resultados. Luego, una vez que el motor de síntesis ha mapeado el diseño a una lista de conexiones, esta se traduce a una descripción a nivel de compuertas, donde se repite la simulación para confirmar que la síntesis se realizó sin errores. Finalmente, el diseño se implementa en la FPGA, momento en el que se pueden anotar los valores de retardo de propagación en la lista de conexiones y ejecutar nuevamente la simulación 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 ofrecen las FPGA. OpenCL permite a los programadores desarrollar código en el lenguaje de programación C. [ 36 ] Para obtener más información, consulte síntesis de alto nivel y C a HDL .
La mayoría de las FPGA se basan en un enfoque basado en SRAM para su programación. Estas FPGA son programables y reprogramables en el sistema, pero requieren dispositivos de arranque externos. Por ejemplo, los dispositivos de memoria flash o EEPROM pueden cargar contenido en la SRAM interna que controla el enrutamiento y la lógica. El enfoque SRAM se basa en CMOS .
Entre las alternativas menos comunes al enfoque SRAM se incluyen:
- Fusible : programable una sola vez. Bipolar. Obsoleto.
- Antifusible : programable una sola vez. CMOS. Ejemplos: familias Actel SX y Axcelerator; familia Quicklogic Eclipse II. [ 37 ]
- PROM : tecnología de memoria de solo lectura programable. Programable una sola vez debido a su embalaje de plástico. Obsoleto.
- EPROM : tecnología de memoria de solo lectura programable y borrable. Programable una sola vez, pero con una ventana que permite borrarla con luz ultravioleta (UV). CMOS. Obsoleto.
- EEPROM : tecnología de memoria de solo lectura programable y borrable eléctricamente. Se puede borrar, incluso en encapsulados de plástico. Algunos dispositivos EEPROM, pero no todos, se pueden programar en el sistema. CMOS.
- Flash : tecnología EPROM de borrado flash. Se puede borrar, incluso en encapsulados de plástico. Algunos dispositivos flash, pero no todos, se pueden programar en el sistema. Generalmente, una celda flash es más pequeña que una celda EEPROM equivalente y, por lo tanto, su fabricación es menos costosa. CMOS. Ejemplo: familia Actel ProASIC. [ 37 ]
fabricantes
En 2016, los rivales de larga data de la industria Xilinx (ahora parte de AMD ) y Altera eran los líderes del mercado de FPGA. [ 38 ] En ese momento, controlaban casi el 90 por ciento del mercado.
Tanto Xilinx como Altera proporcionan software propietario de automatización del 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. [ 39 ] [ 40 ]
En marzo de 2010, Tabula anunció su tecnología FPGA que utiliza lógica multiplexada en el tiempo e interconexión, la cual afirma que ofrece posibles ahorros de costos para aplicaciones de alta densidad. [ 41 ] El 24 de marzo de 2015, Tabula cerró oficialmente. [ 42 ]
El 1 de junio de 2015, Intel anunció que adquiriría Altera por aproximadamente 16.700 millones de dólares estadounidenses y completó la adquisición el 30 de diciembre de 2015. [ 43 ]
El 27 de octubre de 2020, AMD anunció que adquiriría Xilinx [ 44 ] y completó la adquisición, valorada en aproximadamente 50 mil millones de dólares estadounidenses, en febrero de 2022. [ 45 ]
En febrero de 2024, Altera volvió a independizarse de Intel. [ 46 ]
Otros fabricantes incluyen:
- Achronix , fabricante de FPGA basadas en SRAM con velocidad de tejido de 1,5 GHz [ 47 ]
- Altium proporciona un entorno de diseño de hardware y software para sistemas en FPGA. [ 48 ]
- Cologne Chip, diseñador y productor de FPGA respaldado por el gobierno alemán [ 49 ]
- Efinix ofrece FPGA de tamaño pequeño a mediano. Estas combinan interconexiones lógicas y de enrutamiento en una celda XLR configurable.
- GOWIN Semiconductors fabrica FPGAs de tamaño pequeño y mediano basadas en SRAM y memoria flash. También ofrecen reemplazos compatibles en cuanto a pines para algunos productos de Xilinx, Altera y Lattice.
- Lattice Semiconductor fabrica FPGAs de bajo consumo basadas en SRAM que incorporan memoria flash de configuración integrada, encendido instantáneo y reconfiguración en tiempo real.
- SiliconBlue Technologies ofrece FPGA basadas en SRAM de consumo extremadamente bajo con memoria de configuración no volátil integrada opcional ; adquirida por Lattice en 2011.
- Microchip :
- Microsemi (anteriormente Actel ), fabricante de FPGAs de señal mixta basadas en memoria flash y con protección antifusible ; adquirida por Microchip en 2018.
- Atmel , una segunda fuente de algunos dispositivos compatibles con Altera; también FPSLIC mencionado anteriormente; [ 50 ] adquirido por Microchip en 2016
- QuickLogic fabrica concentradores de sensores de ultrabajo consumo, FPGA basadas en SRAM de muy bajo consumo y baja densidad, con puentes de visualización con entradas MIPI y RGB; salidas MIPI, RGB y LVDS. [ 51 ]
Aplicaciones
Un FPGA puede utilizarse para resolver cualquier problema computable . Los FPGA pueden emplearse para implementar un microprocesador programable , como el Xilinx MicroBlaze o el Altera Nios II . Su ventaja radica en que son significativamente más rápidos para algunas aplicaciones debido a su naturaleza paralela y su optimización en cuanto al número de compuertas utilizadas para ciertos procesos. [ 52 ]
Los FPGA se introdujeron originalmente como competidores de los dispositivos lógicos programables complejos (CPLD) para implementar la lógica de interconexión en placas de circuitos impresos . A medida que aumentaron su tamaño, capacidades y velocidad, los FPGA asumieron funciones adicionales hasta el punto de que algunos se comercializan ahora como sistemas en chip (SoC) completos. En particular, con la introducción de multiplicadores dedicados en las arquitecturas FPGA a finales de la década de 1990, las aplicaciones que tradicionalmente habían sido exclusivas de los procesadores de señales digitales (DSP) comenzaron a utilizar FPGA. [ 53 ] [ 54 ]
La evolución de las FPGA ha motivado un aumento en el uso de estos dispositivos, cuya arquitectura permite el desarrollo de soluciones de hardware optimizadas para tareas complejas, como la segmentación de imágenes de resonancia magnética 3D, la transformada discreta de ondículas 3D, la reconstrucción de imágenes tomográficas o los sistemas PET/RM. [ 55 ] [ 56 ] Las soluciones desarrolladas pueden realizar tareas de computación intensivas con procesamiento paralelo, son dinámicamente reprogramables y tienen un bajo costo, todo ello cumpliendo con los estrictos requisitos de tiempo real asociados a la imagen médica.
Otra tendencia en el uso de FPGA es la aceleración por 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 de propósito general. El motor de búsqueda Bing es conocido por adoptar la aceleración por FPGA para su algoritmo de búsqueda en 2014. [ 57 ] A partir de 2018Los FPGA están experimentando un uso cada vez mayor como aceleradores de IA , incluido el Proyecto Catapult de Microsoft [ 11 ] , y para acelerar redes neuronales artificiales para aplicaciones de aprendizaje automático .
Originalmente, los FPGA se reservaban para aplicaciones verticales específicas con volúmenes de producción reducidos. Para estas aplicaciones de bajo volumen, el costo adicional que las empresas pagan por unidad de hardware para un chip programable es más asequible que los recursos de desarrollo invertidos en la creación de un ASIC. A menudo, un chip personalizado sería más económico si se fabricara en grandes cantidades, pero los FPGA pueden elegirse para lanzar rápidamente un producto al mercado. La nueva dinámica de costos y rendimiento ha ampliado el abanico de aplicaciones viables. [ 58 ]
Otros usos de los FPGA incluyen:
- Espacio (con endurecimiento contra la radiación [ 59 ] )
- Módulos de seguridad de hardware [ 60 ]
- Transacciones financieras de alta velocidad [ 61 ] [ 62 ]
- Retrocomputación (por ejemplo, los proyectos MARS y MiSTer FPGA) [ 63 ]
- Analizadores diferenciales digitales integrados a gran escala , una forma de computadora analógica basada en elementos de computación digital [ 64 ].
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 Conjunto de Radio Táctica (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 seguro y personalizable. En el JTRS, utilizado por el ejército estadounidense, los FPGA proporcionan adaptabilidad y procesamiento en tiempo real, fundamentales para cumplir con diversos estándares de comunicación y métodos de cifrado. [ 65 ]
Seguridad
En cuanto a la seguridad del hardware , las FPGA presentan ventajas y desventajas en comparación con los ASIC o los microprocesadores seguros. La flexibilidad de las FPGA reduce el riesgo de modificaciones maliciosas durante la fabricación . [ 66 ] Anteriormente, en muchas FPGA, el flujo de bits del diseño quedaba expuesto mientras la FPGA lo cargaba desde la memoria externa, normalmente durante el encendido. Actualmente, todos los principales proveedores de FPGA ofrecen a los diseñadores una gama de soluciones de seguridad, 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 inclonables (PUF) son circuitos integrados con firmas únicas que pueden utilizarse para proteger las FPGA ocupando muy poco espacio de hardware. [ 67 ]
Los FPGA que almacenan su configuración internamente en memoria flash no volátil, como el ProAsic 3 de Microsemi o los dispositivos programables XP2 de Lattice , no exponen el flujo de bits y no necesitan cifrado . Los clientes que deseen una mayor garantía de resistencia a la manipulación pueden utilizar FPGA de escritura única y antifusibles de proveedores como Microsemi .
Con sus FPGA y SoC Stratix 10, Altera introdujo un Administrador de Dispositivos Seguros y funciones físicas inclonables para proporcionar altos niveles de protección contra ataques físicos. [ 68 ]
En 2012, los investigadores Sergei Skorobogatov y Christopher Woods demostraron que algunos FPGA pueden ser vulnerables a intenciones maliciosas. Descubrieron que se había fabricado una vulnerabilidad crítica de puerta trasera en el silicio como parte del Actel/Microsemi ProAsic 3, lo que lo 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 características de silicio de bajo nivel y la extracción de datos de configuración . [ 69 ]
En 2020, se descubrió una vulnerabilidad crítica (denominada Starbleed) en todos los FPGA de la serie 7 de Xilinx que inutilizaba el cifrado de flujo de bits. No existe ninguna solución alternativa. Xilinx no lanzó una revisión de hardware. Los dispositivos Ultrascale y posteriores, que ya estaban en el mercado en ese momento, no se vieron afectados. [ 70 ]
Tecnologías similares
Históricamente, las FPGA han sido más lentas, menos eficientes energéticamente y, en general, han logrado una funcionalidad menor que sus contrapartes ASIC fijas. 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 se ejecutan a un tercio de la velocidad de las implementaciones ASIC correspondientes. [ 71 ]
Entre las ventajas de las FPGA se incluye la capacidad de reprogramar equipos en campo para corregir errores o realizar otras mejoras. Algunas FPGA permiten la reconfiguración parcial, lo que posibilita reprogramar una parte del dispositivo mientras otras partes continúan funcionando. [ 72 ] [ 73 ] Otras ventajas pueden incluir un menor tiempo de comercialización y menores costos de ingeniería no recurrentes . Los proveedores también pueden optar por una vía intermedia mediante el prototipado con FPGA : desarrollar su hardware prototipo en FPGA, pero fabricar la versión final como un ASIC una vez que el diseño se haya definido. Esto también suele ocurrir con los nuevos diseños de procesadores. [ 74 ]
Las principales diferencias entre CPLD y FPGA son arquitectónicas . Un CPLD tiene una estructura relativamente restrictiva que consiste en una o más matrices lógicas programables de suma de productos que alimentan un número relativamente pequeño de registros síncronos . Como resultado, los CPLD son menos flexibles, pero tienen la ventaja de un retardo de propagación más predecible . Las arquitecturas FPGA, por otro lado, están dominadas por la interconexión. Esto las hace mucho más flexibles, pero también mucho más complejas de diseñar, o al menos requieren un software de automatización del diseño electrónico (EDA) más complejo. Otra distinción entre FPGA y CPLD es el tamaño, ya que las FPGA suelen ser mucho más grandes en términos de recursos que los CPLD. Normalmente, solo las 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 integrada para almacenar su configuración, mientras que las FPGA normalmente almacenan su configuración en SRAM y requieren memoria no volátil externa para inicializarla al encenderse. Cuando un diseño requiere un encendido instantáneo simple, generalmente se prefieren los CPLD. A veces, se utilizan tanto CPLD como FPGA en un mismo diseño de sistema. En esos diseños, los CPLD generalmente realizan funciones de lógica de interconexión. [ 75 ]
Véase también
- Matriz reconfigurable de grano grueso
- Tarjeta FPGA CRUVI : tarjeta hija estándar diseñada específicamente para las necesidades de las FPGA.
- Tarjeta mezzanine FPGA – Estándar de entrada/salida ANSI/VITA
- Lista de simuladores HDL
Referencias
- 1 2 3 "Arquitectura FPGA para el desafío" . toronto.edu . Universidad de Toronto .
- ↑ 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.
- 1 2 3 4 "Historia de las FPGA" . Archivado del original el 12 de abril de 2007. Recuperado el 11 de julio de 2013 .
- ↑ Wilson, Ron (21 de abril de 2015). "En el principio" . altera.com . Archivado del original el 21 de abril de 2015.
- 1 2 "XCELL número 32" (PDF) . Xilinx. Archivado (PDF) del original el 7 de enero de 2011.
- 1 2 3 4 5 6 Universo de financiación. " Xilinx, Inc. " Consultado el 15 de enero de 2009.
- ↑ Maxfield, Clive (15 de mayo de 2006). "Xilinx presenta la revolucionaria arquitectura FPGA de 65 nm: la familia Virtex-5" . Programmable Logic DesignLine . Archivado del original el 25 de diciembre de 2009. Consultado el 5 de febrero de 2009 .
- 1 2 Maxfield, Clive (2004). The Design Warrior's Guide to FPGAs: Devices, Tools and Flows . Elsevier. p. 4. ISBN 978-0-7506-7604-5.
- ↑ "Principales empresas de FPGA para 2013" . sourcetech411.com . 28 de abril de 2013. Archivado del original el 9 de julio de 2015. Consultado el 8 de julio de 2015 .
- ↑ "Microsoft potencia la búsqueda de Bing con chips programables" . WIRED . 16 de junio de 2014.
- 1 2 "Proyecto Catapult" . Microsoft Research . Julio de 2018.
- ↑ Gaide, Brian; Gaitonde, Dinesh; Ravishankar, Chirag; Bauer, Trevor (2019-02-20). "Plataforma de aceleración de cómputo adaptativa Xilinx: arquitectura versátil" . Actas del Simposio Internacional ACM/SIGDA de 2019 sobre matrices de puertas programables en campo . ACM. págs. 84–93 . doi : 10.1145/3289602.3293906 . ISBN 978-1-4503-6137-8.
- ↑ Maxfield, Max. "Xilinx UltraScale FPGA ofrece 50 millones de puertas ASIC equivalentes" . www.eetimes.com . EE Times.
- 1 2 McGrath, Dylan (24 de mayo de 2006). "El mercado de FPGA superará los 2.700 millones de dólares en 2010, según In-Stat" . EE Times .
- 1 2 "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 .
- ↑ "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 .
- ↑ McGrath, Dylan (13 de junio de 2005). "Analista de Gartner Dataquest da el visto bueno a los mercados de ASIC y FPGA" . EE Times .
- ↑ "Descripción general de la familia Virtex-4" (PDF) . xilinx.com . Archivado (PDF) del original el 22 de noviembre de 2007. Consultado el 14 de abril de 2018 .
- ^ 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.
- ↑ Oklobdzija, Vojin G. (2017). Diseño y Fabricación Digital . Prensa CRC. ISBN 9780849386046.
- ↑ "Tutorial de integridad de señal FPGA" . altium.com . Archivado del original el 7 de marzo de 2016. Consultado el 15 de junio de 2010 .
- ↑ NASA: Potencia de accionamiento de FPGA. Archivado el 5 de diciembre de 2010 en Wayback Machine.
- ↑ Thompson, Mike (2 de julio de 2007). "Los FPGA de señal mixta proporcionan ENERGÍA VERDE" . Diseño y reutilización .
- ↑ Mb, Swami; Vp, Pawar (31-07-2014). "VLSI DESIGN: A NEW APPROACH" . Journal of Intelligence Systems . 4 (1): 60– 63. ISSN 2229-7057 .
- ↑ 2. Arquitectura de CycloneII. Archivado el 14 de diciembre de 2010 en Wayback Machine . Altera. Febrero de 2007.
- ↑ "Documentación: Dispositivos Stratix IV" (PDF) . Altera.com. 11 de junio de 2008. Archivado del original (PDF) el 26 de septiembre de 2011. Consultado el 1 de mayo de 2013 .
- ↑ Guía del usuario de la FPGA Virtex-4 (1 de diciembre de 2008). Xilinx, Inc.
- ↑ "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 .
- ↑ "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 .
- ↑ Dean Takahashi, VentureBeat. " La conexión con Intel ayudó a la empresa emergente de chips Tabula a recaudar 108 millones de dólares ". 2 de mayo de 2011. Consultado el 13 de mayo de 2011.
- 1 2 Lawrence Latif, The Inquirer. " Fabricante de FPGA afirma haber superado la Ley de Moore ". 27 de octubre de 2010. Consultado el 12 de mayo de 2011.
- ↑ EDN Europe. " Xilinx adopta el empaquetado 3D de chips apilados. Archivado el 19 de febrero de 2011 en Wayback Machine ." 1 de noviembre de 2010. Consultado el 12 de mayo de 2011.
- ↑ Saban, Kirk (11 de diciembre de 2012). "La tecnología de interconexión de silicio apilado de Xilinx ofrece una capacidad, ancho de banda y eficiencia energética revolucionarias para FPGA" (PDF) . xilinx.com . Archivado (PDF) del original el 5 de noviembre de 2010. Consultado el 30 de noviembre de 2018 .
- ↑ "Intel Custom Foundry EMIB" . Intel . Archivado del original el 13 de julio de 2015. Consultado el 13 de julio de 2015 .
- ↑ "Batalla por el FPGA: ¡VHDL contra Verilog! ¿Quién es el verdadero campeón?" . digilentinc.com . Archivado del original el 26/12/2020 . Consultado el 16/12/2020 .
- ↑ "¿Por qué usar OpenCL en FPGAs?" . StreamComputing . 16-09-2014. Archivado del original el 01-01-2017 . Consultado el 17-07-2015 .
- 1 2 "Todo sobre las FPGA" . 21 de marzo de 2006.
- ↑ Dillien, Paul (6 de marzo de 2017). "Y el ganador del premio al mejor FPGA de 2016 es..." EETimes . Archivado del original el 5 de enero de 2019. Consultado el 7 de septiembre de 2017 .
- ↑ "Xilinx ISE Design Suite" . www.xilinx.com . Consultado el 1 de diciembre de 2018 .
- ↑ "Software de diseño de FPGA - Intel Quartus Prime" . Intel . Consultado el 1 de diciembre de 2018 .
- ↑ "La máquina del tiempo de Tabula : informe sobre microprocesadores" (PDF) . Archivado del original (PDF) el 10 de abril de 2011.
- ↑ Tabula cerrará sus puertas; se perderán 120 empleos en la empresa de chips sin fábrica propia Silicon Valley Business Journal
- ↑ "Intel comprará Altera por 16.700 millones de dólares en su mayor operación hasta la fecha" . Reuters . Junio de 2015.
- ↑ "AMD adquirirá Xilinx, creando el líder de la industria en computación de alto rendimiento" . Octubre de 2020.
- ↑ "AMD cierra un acuerdo récord en la industria de los semiconductores con la compra de Xilinx por un valor estimado de 50 mil millones de dólares" . Reuters . Febrero de 2022.
- ↑ "Intel lanza Altera, su nueva empresa independiente de FPGA" . Intel (Comunicado de prensa) . Consultado el 29 de febrero de 2024 .
- ↑ "Achronix utilizará la tecnología de fabricación de 22 nm de Intel" . Sala de prensa de Intel (Comunicado de prensa). 1 de noviembre de 2010. Archivado del original el 30 de septiembre de 2015. Consultado el 1 de diciembre de 2018 .
- ↑ Maxfield, Clive (16 de junio de 2004). The Design Warrior's Guide to FPGAs . Elsevier Science. ISBN 9780080477138.
- ↑ "Acerca de la empresa – Cologne Chip" . Consultado el 27 de febrero de 2024 .
- ↑ "Principales empresas de FPGA para 2013" . Fuente: Tech411 . 28 de abril de 2013. Archivado del original el 24 de agosto de 2018. Consultado el 1 de diciembre de 2018 .
- ↑ "QuickLogic — Soluciones de semiconductores personalizables para dispositivos móviles" . www.quicklogic.com . QuickLogic Corporation . Consultado el 7 de octubre de 2018 .
- ↑ "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 .
- ↑ "Publicaciones y presentaciones" . bdti.com . Archivado del original el 21 de agosto de 2010. Consultado el 2 de noviembre de 2018 .
- ↑ LaPedus, Mark (5 de febrero de 2007). "Xilinx apunta a las FPGA de 65 nm en aplicaciones DSP" . EETimes .
- ↑ 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 .
- ↑ Nagornov, Nikolay N.; Lyakhov, Pavel A.; Valueva, Maria V.; Bergerman, Maxim V. (2022). "Aceleradores FPGA basados en RNS para el procesamiento de ondículas 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 .
- ↑ Morgan, Timothy Pricket (3 de septiembre de 2014). "Cómo Microsoft está utilizando FPGA para acelerar la búsqueda de Bing" . Enterprise Tech. Archivado del original el 18 de septiembre de 2018. Recuperado el 18 de septiembre de 2018 .
- ↑ "El auge del mercado de FPGA de gama baja" . Plantilla de sitio web de carga útil . Consultado el 29 de junio de 2026 .
- ↑ "Microsemi presenta dispositivos de desarrollo FPGA para aplicaciones espaciales resistentes a la radiación" . www.militaryaerospace.com . 3 de junio de 2016. Consultado el 2 de noviembre de 2018 .
- ↑ "CrypTech: Construyendo Transparencia en la Criptografía" (PDF) . Archivado (PDF) del original el 7 de agosto de 2016.
- ↑ Mann, Tobias (8 de marzo de 2023). "Mientras se retrasan las XPU de Intel, aquí hay algunas FPGA más para que te entretengas" . The Register .
- ↑ Leber, Christian; Geib, Benjamin; Litz, Heiner (septiembre de 2011). Aceleración de operaciones de alta frecuencia mediante FPGA . Conferencia internacional sobre lógica programable en campo y aplicaciones. IEEE. doi : 10.1109/FPL.2011.64 .
- ↑ "El dispositivo portátil DIY MiSTer" . 16 de diciembre de 2024.
- ↑ DDA en FPGA: una computadora analógica moderna
- ↑ "Radio definida por software y JTRS" . Military Aerospace . 1 de diciembre de 2004. Consultado el 17 de enero de 2024 .
- ↑ Huffmire, Ted; Brotherton, Brett; Sherwood, Timothy; Kastner, Ryan; Levin, Timothy; Nguyen, Thuy D.; Irvine, Cynthia (2008). "Gestión de la seguridad en sistemas embebidos basados en FPGA". IEEE Design & Test of Computers . 25 (6): 590– 598. Bibcode : 2008IDTC...25..590H . doi : 10.1109/MDT.2008.166 . hdl : 10945/7159 . S2CID 115840 .
- ↑ 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" . Sensors . 22 ( 15): 5577. Bibcode : 2022Senso..22.5577B . doi : 10.3390/s22155577 . ISSN 1424-8220 . PMC 9331300. PMID 35898079 .
- ↑ "EETimes sobre PUF: Características de seguridad para no expertos en seguridad – Intrinsic ID" . Intrinsic ID . 9 de junio de 2015. Archivado del original el 13 de julio de 2015. Consultado el 12 de julio de 2015 .
- ↑ Skorobogatov, Sergei; Woods, Christopher (2012). "Un avance en el escaneo de silicio descubre una puerta trasera en un chip militar". Hardware criptográfico y sistemas embebidos – CHES 2012. Notas de clase en ciencias de la computación. Vol. 7428. págs. 23–40 . doi : 10.1007/978-3-642-33027-8_2 . ISBN 978-3-642-33026-1.
- ↑ Kovacs, Eduard (2020-04-20). "Starbleed: Fallo en chips FPGA expone dispositivos críticos para la seguridad a ataques" . SecurityWeek . Recuperado el 25 de febrero de 2026 .
- ↑ Kuon, Ian; Rose, Jonathan (2006). "Medición de la brecha entre FPGA y ASIC" (PDF) . Actas del simposio internacional sobre matrices 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 del original (PDF) el 22-06-2010 . Consultado el 25-10-2017 .
- ↑ "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 .
- ↑ "¿Pueden los FPGA modificar dinámicamente su lógica?" . Electrical Engineering Stack Exchange . Consultado el 1 de diciembre de 2018 .
- ↑ 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 . Archivado del original el 27 de agosto de 2019.
- ↑ "CPLD vs FPGA: ¿Diferencias entre ellos y cuál usar? – Centro de ayuda de Numato Lab" . numato.com . 29/11/2017.
Lecturas adicionales
- 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: Un libro de texto introductorio . Springer. ISBN 978-3-540-58577-0.
- Mencer, Oskar et al. (2020). «Historia, estado actual y futuro de las FPGA». Communications of the ACM. ACM. Vol. 63, n.º 10. doi:10.1145/3410669
Enlaces externos
- ¿Qué es un FPGA? (en YouTube)
- Migración de MCU a FPGA en Wayback Machine (archivado el 16/03/2023)
- Matrices de puertas programables en campo
- matrices de puertas
- circuitos integrados
- Dispositivos semiconductores
- Dispositivos de computación OpenCL
- Inventos estadounidenses
- aceleración de hardware