Una matriz de puertas programables en campo ( FPGA ) es un circuito integrado diseñado para ser configurado por un cliente o un diseñador después de la fabricación, de ahí el término " programable en campo ". La configuración de FPGA generalmente se especifica usando un lenguaje de descripción de hardware (HDL), similar al que se usa para un circuito integrado específico de la aplicación (ASIC). Los diagramas de circuitos se usaban anteriormente para especificar la configuración, pero esto es cada vez más raro debido a la llegada de las herramientas de automatización de diseño electrónico .
Los FPGA contienen una serie de bloques lógicos programables y una jerarquía de "interconexiones reconfigurables" que permiten que los bloques se "conecten entre sí", como muchas puertas lógicas que pueden interconectarse en diferentes configuraciones. Los bloques lógicos se pueden configurar para realizar funciones combinacionales complejas , o simplemente 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 simples flip-flops o bloques de memoria más completos. [1] Muchos FPGA se pueden reprogramar para implementar diferentes funciones lógicas , lo que permite una computación reconfigurable flexible como se realiza en software de computadora . Los FPGA tienen un papel destacado en el desarrollo de sistemas integrados debido a su capacidad [2] para iniciar el desarrollo de software (SW) del sistema simultáneamente con el hardware (HW), permitir simulaciones de rendimiento del sistema en una fase muy temprana del desarrollo y permitir varias particiones del sistema ( SW y HW) pruebas e iteraciones antes de la congelación final de la arquitectura del sistema.
Diseño técnico
Los arreglos de puertas programables en campo (FPGA) contemporáneos tienen grandes recursos de puertas lógicas y bloques de RAM para implementar cálculos digitales complejos. Como los diseños de FPGA emplean velocidades de E / S muy rápidas y buses de datos bidireccionales , se convierte en un desafío verificar la sincronización correcta de los datos válidos dentro del tiempo de configuración y tiempo de espera.
La planificación del piso permite la asignación de recursos dentro de las FPGA para cumplir con estas limitaciones de tiempo. Los FPGA se pueden utilizar para implementar cualquier función lógica que pueda realizar un ASIC . La capacidad de actualizar la funcionalidad después del envío, la reconfiguración parcial de una parte del diseño [3] 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]
Algunas FPGA tienen características analógicas además de funciones digitales. La característica analógica más común es una velocidad de respuesta programable en cada pin de salida, lo que permite al ingeniero establecer velocidades bajas en pines con poca carga que de otra manera sonarían o se acoplarían de manera inaceptable, y establecer velocidades más altas en pines muy cargados en canales de alta velocidad que lo harían de lo contrario, corre demasiado lento. [4] [5] También son comunes los osciladores de cristal de cuarzo , los osciladores de capacitancia de resistencia en el chip y los lazos de bloqueo de fase con osciladores controlados por voltaje integrados que se utilizan para la generación y administración de relojes, así como para el serializador-deserializador de alta velocidad ( SERDES) transmiten relojes y recuperan el 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 . Algunas " FPGA de señal mixta " tienen conversores periféricos de analógico a digital (ADC) y conversores de digital a analógico (DAC) con bloques de acondicionamiento de señal analógica que les permiten operar como un sistema en un chip (SoC) . [6] Dichos dispositivos difuminan la línea entre una 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.
Historia
La industria de FPGA surgió de la memoria programable de solo lectura (PROM) y los dispositivos lógicos programables (PLD). Los PROM y los PLD tenían la opción de programarse en lotes en una fábrica o en el campo (programables en el campo). Sin embargo, la lógica programable estaba cableada entre las puertas lógicas. [7]
Altera se fundó en 1983 y entregó 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 hacer brillar una lámpara ultravioleta en el troquel para borrar las celdas EPROM que contenían la configuración del dispositivo. . [8]
Los cofundadores de Xilinx , Ross Freeman y Bernard Vonderschmitt, inventaron la primera matriz de puertas programables en campo comercialmente viable en 1985: la XC2064. [9] El XC2064 tenía puertas programables e interconexiones programables entre puertas, los inicios de una nueva tecnología y mercado. [10] El XC2064 tenía 64 bloques lógicos configurables (CLB), con dos tablas de búsqueda de tres entradas (LUT). [11] Más de 20 años después, Freeman ingresó en el Salón de la Fama de los Inventores Nacionales por su invento. [12] [13]
En 1987, el Naval Surface Warfare Center 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. [7]
Altera y Xilinx continuaron sin ser cuestionados y crecieron rápidamente desde 1985 hasta mediados de la década de 1990, cuando surgieron competidores, lo que erosionó una parte significativa de su participación de mercado. En 1993, Actel (ahora Microsemi ) atendía alrededor del 18 por ciento del mercado. [10] Para 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. [14]
La década de 1990 fue un período de rápido crecimiento para las FPGA, tanto en la sofisticación del circuito como en el volumen de producción. A principios de la década de 1990, las FPGA se usaban principalmente en telecomunicaciones y redes . A fines de la década, las FPGA se abrieron camino en aplicaciones industriales, automotrices y de consumo. [15]
Compañías como Microsoft han comenzado a usar FPGA para acelerar sistemas de alto rendimiento, computacionalmente intensivos (como los centros de datos que operan su motor de búsqueda Bing ), debido a la ventaja de rendimiento por vatio que ofrecen los FPGA. [16] Microsoft comenzó a usar FPGA para acelerar Bing en 2014, y en 2018 comenzó a implementar FPGA en otras cargas de trabajo de centros de datos para su plataforma de computación en la nube Azure . [17]
Integración
En 2012, el enfoque arquitectónico de grano grueso dio un paso más al combinar los bloques lógicos y las interconexiones de los FPGA tradicionales con microprocesadores integrados y periféricos relacionados para formar un " sistema completo en un chip programable ". Este trabajo refleja la arquitectura creada por Ron Perloff y Hanan Potash de Burroughs Advanced Systems Group en 1982, que combinó una arquitectura de CPU reconfigurable en un solo chip llamado SB24. [18]
Se pueden encontrar ejemplos de tales tecnologías híbridas en el Xilinx Zynq-7000 All Programmable SoC , [19] 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 [20] o en el Altera Arria V FPGA, 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 duro ARM Cortex-M3 (con hasta 512 kB de flash y 64 kB de RAM) y periféricos analógicos como convertidores multicanal de analógico a digital y convertidores de digital a analógico para su estructura FPGA basada en memoria flash .
Núcleo blando
Un enfoque alternativo al uso de procesadores macros rígidos es hacer uso de núcleos IP de procesadores suaves que se implementan dentro de la lógica FPGA. Nios II , MicroBlaze y Mico32 son ejemplos de procesadores softcore populares . Muchos FPGA modernos se programan en "tiempo de ejecución", lo que ha llevado a la idea de computación reconfigurable o sistemas reconfigurables: CPU que se reconfiguran para adaptarse a la tarea en cuestión. Además, están empezando a surgir 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 FPGA en el mismo chip.
Líneas de tiempo
Puertas
- 1987: 9.000 puertas, Xilinx [10]
- 1992: 600.000, Departamento de Guerra de Superficie Naval [7]
- Principios de la década de 2000: millones [15]
- 2013: 50 millones, Xilinx [21]
Tamaño de mercado
- 1985: Primera FPGA comercial: Xilinx XC2064 [9] [10]
- 1987: 14 millones de dólares [10]
- C. 1993 :> $ 385 millones [10] [ verificación fallida ]
- 2005: 1.900 millones de dólares [22]
- Estimaciones de 2010: 2.750 millones de dólares [22]
- 2013: 5.400 millones de dólares [23]
- Estimación para 2020: 9.800 millones de dólares [23]
El diseño comienza
Un comienzo de diseño es un nuevo diseño personalizado para su implementación en una FPGA.
- 2005: 80.000 [24]
- 2008: 90.000 [25]
Comparaciones
A los ASIC
Históricamente, los FPGA han sido más lentos, menos eficientes energéticamente y, en general, han logrado menos funcionalidad que sus homólogos ASIC fijos . Un estudio más antiguo [ ¿cuándo? ] mostró que los diseños implementados en FPGA 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. [ cita requerida ]
Más recientemente, FPGA como el Xilinx Virtex-7 o el Altera Stratix 5 han llegado a competir con las soluciones correspondientes ASIC y ASSP ("Parte estándar específica de la aplicación", como un chip de interfaz USB independiente [26] ) al proporcionar una potencia significativamente reducida. uso , mayor velocidad, menor costo de materiales, espacio mínimo de implementación y mayores posibilidades de reconfiguración 'sobre la marcha'. Ahora se puede lograr un diseño que incluía de 6 a 10 ASIC utilizando solo una FPGA. [27]
Las ventajas de las FPGA incluyen la capacidad de reprogramar cuando ya están implementadas (es decir, "en el campo") para corregir errores y, a menudo, incluyen un tiempo de comercialización más corto y menores costos de ingeniería no recurrentes . Los proveedores también pueden tomar un camino intermedio a través de la creación de prototipos FPGA : desarrollar su hardware prototipo en FPGA, pero fabricar su versión final como un ASIC para que ya no se pueda modificar una vez que se haya comprometido el diseño. Este suele ser también el caso de los nuevos diseños de procesadores. [28]
Tendencias
Algunas FPGA tienen la capacidad de reconfiguración parcial que permite reprogramar una parte del dispositivo mientras otras partes continúan ejecutándose. [29] [30]
Dispositivos lógicos programables complejos (CPLD)
Las principales diferencias entre los dispositivos lógicos programables complejos (CPLD) y los FPGA son de arquitectura . Un CPLD tiene una estructura comparativamente restrictiva que consta de una o más matrices lógicas programables de suma de productos que alimentan un número relativamente pequeño de registros sincronizados . Como resultado, los CPLD son menos flexibles, pero tienen la ventaja de contar con demoras de tiempo más predecibles y una mayor proporción de lógica a interconexión. [ cita requerida ] Las arquitecturas FPGA, por otro lado, están dominadas por la interconexión . Esto los hace mucho más flexibles (en términos de la gama de diseños que son prácticos para su implementación) pero también mucho más complejos de diseñar, o al menos requieren un software de automatización de diseño electrónico (EDA) más complejo .
En la práctica, la distinción entre FPGA y CPLD suele ser de tamaño, ya que las FPGA suelen ser mucho más grandes en términos de recursos que las 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 FPGA generalmente requieren una memoria externa no volátil (pero no siempre).
Cuando un diseño requiere un encendido instantáneo simple (la lógica ya está configurada en el encendido) , generalmente se prefieren los CPLD. Para la mayoría de las otras aplicaciones, generalmente se prefieren los FPGA. A veces, tanto los CPLD como los FPGA se utilizan en un diseño de sistema único. En esos diseños, los CPLD generalmente realizan funciones de lógica de pegamento y son responsables de " arrancar " la FPGA, así como de controlar el reinicio y la secuencia de arranque de la placa de circuito completa. Por lo tanto, dependiendo de la aplicación, puede ser sensato utilizar FPGA y CPLD en un solo diseño. [31]
Consideraciones de Seguridad
Los FPGA tienen ventajas y desventajas en comparación con los ASIC o microprocesadores seguros, en lo que respecta a la seguridad del hardware . La flexibilidad de los FPGA hace que las modificaciones maliciosas durante la fabricación sean un riesgo menor. [32] Anteriormente, para muchos FPGA, el flujo de bits de diseño estaba expuesto mientras el FPGA lo cargaba desde una memoria externa (generalmente en cada encendido). Todos los principales proveedores de FPGA ofrecen ahora un espectro de soluciones de seguridad a los diseñadores, como el cifrado y la autenticación de flujo de bits . Por ejemplo, Altera y Xilinx ofrecen cifrado AES (hasta 256 bits) para flujos de bits almacenados en una memoria flash externa.
Los FPGA que almacenan su configuración internamente en una memoria flash no volátil, como los dispositivos programables ProAsic 3 de Microsemi o XP2 de Lattice , no exponen el flujo de bits y no necesitan cifrado . Además, la memoria flash para una tabla de búsqueda proporciona protección contra alteraciones de un solo evento para aplicaciones espaciales. [ aclaración necesaria ] Los clientes que deseen una mayor garantía de resistencia a la manipulación pueden utilizar FPGA antifuse de escritura única de proveedores como Microsemi .
Con sus FPGA y SoC Stratix 10, Altera introdujo un Administrador de dispositivos seguro y funciones físicamente imposibles de clonar para proporcionar altos niveles de protección contra ataques físicos. [33]
En 2012, los investigadores Sergei Skorobogatov y Christopher Woods demostraron que los FPGA pueden ser vulnerables a intenciones hostiles. Descubrieron que se había fabricado una vulnerabilidad crítica de puerta trasera en silicio como parte de Actel / Microsemi ProAsic 3, lo que lo hacía vulnerable en muchos niveles, como la reprogramación de claves de acceso y cifrado , el acceso al flujo de bits no cifrado, la modificación de funciones de silicio de bajo nivel y la extracción de datos de configuración . [34]
Aplicaciones
Se puede utilizar un FPGA para resolver cualquier problema que sea computable . Esto está trivialmente probado por el hecho de que los FPGA se pueden usar para implementar un microprocesador suave , como Xilinx MicroBlaze o Altera Nios II . Su ventaja radica en que son significativamente más rápidos para algunas aplicaciones debido a su naturaleza paralela y su optimización en términos del número de puertas utilizadas para ciertos procesos. [35]
Los FPGA comenzaron originalmente como competidores de los CPLD para implementar la lógica de pegamento para placas de circuito impreso . A medida que aumentaron su tamaño, capacidades y velocidad, los FPGA asumieron funciones adicionales hasta el punto de que algunos ahora se comercializan como sistemas completos en chips (SoC). Particularmente con la introducción de multiplicadores dedicados en arquitecturas FPGA a finales de la década de 1990, las aplicaciones que tradicionalmente habían sido la reserva exclusiva del hardware de procesador de señal digital (DSP) comenzaron a incorporar FPGA en su lugar. [36] [37]
Otra tendencia en el uso de FPGA es la aceleración de hardware , donde se puede usar la FPGA para acelerar ciertas partes de un algoritmo y compartir parte del cálculo entre la FPGA y un procesador genérico. El motor de búsqueda Bing se destaca por adoptar la aceleración FPGA para su algoritmo de búsqueda en 2014. [38] A partir de 2018[actualizar], Los FPGA están experimentando un mayor uso como aceleradores de IA, incluido el denominado "Proyecto Catapulta" de Microsoft [17] y para acelerar las redes neuronales artificiales para aplicaciones de aprendizaje automático .
Tradicionalmente, [ ¿cuándo? ] Las FPGA se han reservado para aplicaciones verticales específicas donde el volumen de producción es pequeño. Para estas aplicaciones de bajo volumen, la prima que pagan las empresas en costo de hardware por unidad por un chip programable es más asequible que los recursos de desarrollo gastados en la creación de un ASIC. A partir de 2017[actualizar], la nueva dinámica de costes y rendimiento ha ampliado la gama de aplicaciones viables.
La empresa Gigabyte creó una tarjeta i-RAM que usaba una FPGA Xilinx, aunque un chip hecho a medida sería más barato si se fabricara en grandes cantidades. La FPGA fue elegida para llevarla rápidamente al mercado y la ejecución inicial fue de solo 1000 unidades, lo que hace que una FPGA sea la mejor opción. Este dispositivo permite a las personas utilizar la memoria RAM de la computadora como disco duro. [39]
Aplicaciones habituales
- Aeroespacial y defensa
- Aviónica / DO-254
- Comunicaciones
- Misiles y municiones
- Soluciones seguras
- Espacio (es decir, con endurecimiento por radiación [40] )
- Audio
- Soluciones de conectividad
- Convertidor de digital a analógico
- Electrónica portátil
- Radio definida por software
- Procesamiento de señales digitales (DSP)
- Reconocimiento de voz
- Sintetizadores
- Automotor
- Video de alta resolución
- Procesamiento de imágenes
- Conectividad y redes de vehículos
- Infoentretenimiento automotriz
- Redes neuronales artificiales
- Bioinformática
- Transmisión
- Escala de colores
- Motor de video en tiempo real
- EdgeQAM
- Codificadores
- Muestra
- Switches y enrutadores
- Electrónica de consumo
- Pantallas digitales
- Cámaras digitales
- Impresoras multifunción
- Electrónica portátil
- Decodificadores
- Cartuchos flash
- Centro de datos
- Servidores
- Seguridad
- Módulo de seguridad de hardware [41]
- Enrutadores
- Interruptores
- Pasarelas
- Balanceo de carga
- Computación de alto rendimiento
- Servidores
- Supercomputadoras
- Sistemas de inteligencia de señales
- Radares de gama alta
- Sistemas de formación de vigas de alta gama
- Sistemas de minería de datos
- Industrial
- Imagen industrial
- Redes industriales
- Control del motor
- Diseño de circuito integrado
- Creación de prototipos ASIC
- Emulación de hardware informático
- Financiero
- Minería de criptomonedas
- Negociación de alta frecuencia
- Médico
- Ultrasonido
- Tomografía computarizada
- Resonancia magnética
- radiografía
- MASCOTA
- Sistemas quirúrgicos
- Instrumentos cientificos
- Amplificadores de bloqueo
- Promotores de vagones
- Bucles de fase bloqueada
- Astronomía radial
- Seguridad
- Imagen industrial
- Soluciones seguras
- Módulo de seguridad de hardware [41]
- Craqueo de contraseñas
- Procesamiento de imágenes
- Equipo de prueba y medida
- Osciloscopios
- Analizadores de espectro
- Analizadores de redes vectoriales
- Generadores de señales
- Adquisición y registro de datos (DAQ)
- Multiplexores y arreglos de conmutación
- Procesamiento de video e imágenes
- Video de alta resolución
- Video sobre puerta de enlace IP
- Pantallas digitales
- Imagen industrial
- Visión por computador
- Imagen térmica
- Comunicaciones cableadas
- Redes de transporte ópticas
- Procesamiento de red
- Interfaces de conectividad
- Comunicaciones inalámbricas
- Banda base
- Interfaces de conectividad
- Backhaul móvil
- Radio
Arquitectura
Bloques lógicos
La arquitectura FPGA más común consiste en una serie de bloques lógicos , pads de E / S [nota 1] y canales de enrutamiento. [1] Generalmente, todos los canales de enrutamiento tienen el mismo ancho (número de cables). Varias almohadillas de E / S pueden caber en la altura de una fila o en el ancho de una columna de la matriz.
Se debe asignar un circuito de aplicación a una FPGA con los recursos adecuados. Si bien el número de CLB / LAB y E / S necesarios se determina fácilmente a partir del diseño, el número de pistas de enrutamiento necesarias puede variar considerablemente incluso entre diseños con la misma cantidad de lógica. [nota 2]
Por ejemplo, un interruptor de barra transversal requiere mucho más enrutamiento que una matriz sistólica con el mismo recuento de puertas. Dado que las pistas de enrutamiento no utilizadas aumentan el costo (y disminuyen el rendimiento) de la pieza sin proporcionar ningún beneficio, los fabricantes de FPGA intentan proporcionar las pistas 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 ser enrutado . [nota 2] Esto se determina mediante estimaciones como las derivadas de la regla de Rent o mediante experimentos con diseños existentes. A partir de 2018[actualizar], se están desarrollando arquitecturas de red en chip para enrutamiento e interconexión.
En general, un bloque lógico consta de unas pocas celdas lógicas (denominadas ALM, LE, corte, etc.). Una celda típica consta de una LUT de 4 entradas [ ¿período de tiempo? ] , un sumador completo (FA) y un flip-flop tipo D , como se muestra arriba. En esta figura, los LUT están divididos en dos LUT de 3 entradas. En el modo normal, se combinan en una LUT de 4 entradas a través del multiplexor izquierdo (mux). En modo aritmético , sus salidas se envían al sumador. La selección del modo se programa en el MUX medio. La salida puede ser síncrona o asíncrona , dependiendo de la programación del mux a la derecha, en el ejemplo de la figura. En la práctica, todo el sumador o partes del mismo se almacenan como funciones en las LUT para ahorrar espacio . [42] [43] [44]
Bloques duros
Las familias modernas de FPGA amplían las capacidades anteriores para incluir una funcionalidad de nivel superior fijada en silicio. Tener estas funciones comunes integradas en el circuito reduce el área requerida y les da a esas funciones una mayor velocidad en comparación con la construcción de las primitivas lógicas. Ejemplos de estos incluyen multiplicadores , bloques DSP genéricos , procesadores integrados , lógica de E / S de alta velocidad y memorias integradas .
FPGAs de gama más alta pueden contener de alta velocidad transceptores de múltiples gigabits y núcleos IP duros tales como núcleos de procesador , Ethernet unidades de control de acceso al medio , PCI / PCI Express controladores y los controladores de memoria externos. Estos núcleos existen junto con la estructura programable, pero están construidos con transistores en lugar de LUT, por lo que tienen un rendimiento y consumo de energía a nivel de ASIC sin consumir una cantidad significativa de recursos de la estructura, lo que deja una mayor parte de la estructura libre para la lógica específica de la aplicación. Los transceptores de varios gigabits también contienen circuitos de entrada y salida analógicos 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 de nivel superior (PHY), como la codificación de línea, puede implementarse o no junto con los serializadores y deserializadores en lógica rígida, según la FPGA.
Reloj
La mayoría de los circuitos integrados dentro de un FPGA son circuitos síncronos que requieren una señal de reloj. Los FPGA contienen redes de enrutamiento regionales y globales dedicadas para el reloj y el reinicio, de modo que puedan entregarse con un sesgo mínimo . Además, los FPGA generalmente contienen componentes de bucle de bloqueo de fase analógico y / o de bucle de bloqueo de retardo para sintetizar nuevas frecuencias de reloj y atenuar la fluctuación de fase . 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 se pueden generar localmente mediante un oscilador o se pueden recuperar de un flujo de datos en serie de alta velocidad. Se debe tener cuidado al construir circuitos de cruce de dominios de reloj para evitar la metaestabilidad . Los FPGA generalmente contienen RAM de bloque que son capaces de funcionar como RAM de puerto dual con diferentes relojes, lo que ayuda en la construcción de FIFO de construcción y búferes de puerto dual que conectan dominios de reloj diferentes.
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 . [45] [46] 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 solo paquete, empleando tecnología desarrollada para la construcción 3D y conjuntos de matrices apiladas.
El enfoque de Xilinx apila varios (tres o cuatro) troqueles FPGA activos uno al lado del otro en un intercalador de silicio , una sola pieza de silicio que lleva una interconexión pasiva. [46] [47] La construcción de múltiples matrices también permite crear diferentes partes de la FPGA con diferentes tecnologías de proceso, ya que los requisitos del proceso son diferentes entre la estructura de la FPGA y los transceptores seriales de muy alta velocidad de 28 Gbit / s. Una FPGA construida de esta manera se denomina FPGA heterogénea . [48]
El enfoque heterogéneo de Altera implica el uso de una única matriz FPGA monolítica y la conexión de otras matrices / tecnologías a la FPGA utilizando la tecnología de puente de interconexión de múltiples matrices (EMIB) integrada de Intel. [49]
Diseño y programación
Para definir el comportamiento de la FPGA, el usuario proporciona un diseño en un lenguaje de descripción de hardware (HDL) o como un diseño esquemático . La forma HDL es más adecuada para trabajar con estructuras grandes porque es posible especificar un comportamiento funcional de alto nivel en lugar de dibujar cada pieza a mano. Sin embargo, la entrada esquemática puede permitir una visualización más sencilla de un diseño y sus módulos componentes .
Utilizando una herramienta de automatización de diseño electrónico , se genera una lista de conexiones mapeada por tecnología . Luego, la lista de redes se puede ajustar a la arquitectura FPGA real mediante un proceso llamado lugar y ruta , generalmente realizado por el software de lugar y ruta patentado por la compañía FPGA. El usuario validará los resultados del mapa, el lugar y la ruta mediante análisis de tiempo , simulación y otras metodologías de verificación y validación . Una vez que se completa el proceso de diseño y validación, el archivo binario generado, generalmente utilizando el software propietario del proveedor de FPGA, se utiliza para (volver a) configurar la FPGA. Este archivo se transfiere a la FPGA / CPLD a través de una interfaz en serie ( JTAG ) oa un dispositivo de memoria externo como una EEPROM .
Los HDL más comunes son VHDL y Verilog , así como extensiones como SystemVerilog . Sin embargo, en un intento por reducir la complejidad del diseño en HDL, que se han comparado con el equivalente de los lenguajes ensambladores , hay movimientos [¿ por quién? ] elevar el nivel de abstracción mediante la introducción de lenguajes alternativos . National Instruments ' LabVIEW lenguaje de programación gráfica (a veces conocido como 'G') tiene una FPGA complemento módulo de disposición de hardware de destino y el programa FPGA. Verilog se creó para simplificar el proceso y hacer que HDL sea más robusto y flexible. Verilog es actualmente el más popular. Verilog crea un nivel de abstracción para ocultar los detalles de su implementación. Verilog tiene una sintaxis similar a C, a diferencia de VHDL. [50]
Para simplificar el diseño de sistemas complejos en FPGA, existen bibliotecas de circuitos y funciones complejas predefinidas que se han probado y optimizado 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 (normalmente publicado bajo licencias de código abierto y libre como la GPL , BSD o licencia similar) y otras fuentes. 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, la descripción RTL en VHDL o Verilog se simula creando bancos de prueba para simular el sistema y observar los resultados. Luego, después de que el motor de síntesis ha mapeado el diseño a una lista de conexiones, la lista de conexiones se traduce a una descripción a nivel de puerta donde se repite la simulación para confirmar que la síntesis se realizó sin errores. Finalmente, el diseño se presenta en la FPGA, en cuyo punto se pueden agregar retrasos de propagación y la simulación se ejecuta nuevamente con estos valores anotados en la lista de conexiones.
Más recientemente, los programadores están utilizando OpenCL (Open Computing Language) para aprovechar el rendimiento y la eficiencia energética que proporcionan los FPGA. OpenCL permite a los programadores desarrollar código en el lenguaje de programación C y apuntar a funciones FPGA como kernels OpenCL usando construcciones OpenCL. [51] Para obtener más información, consulte síntesis de alto nivel y C a HDL .
Tipos de tecnología de proceso básica
- SRAM : basado en tecnología de memoria estática. Programable y reprogramable en el sistema. Requiere dispositivos de arranque externos. CMOS . Actualmente en uso. [ cuando? ] En particular, los dispositivos de memoria flash o EEPROM a menudo pueden cargar contenido en la SRAM interna que controla el enrutamiento y la lógica.
- Fusible : programable una vez. Bipolar. Obsoleto.
- Antifusible : programable una vez. CMOS.
- PROM : tecnología de memoria programable de solo lectura. Programable una vez debido a los envases de plástico. Obsoleto.
- EPROM : tecnología de memoria de sólo lectura programable y borrable. Programable una vez pero con ventana, se puede borrar con luz ultravioleta (UV). CMOS. Obsoleto.
- EEPROM : tecnología de memoria de sólo lectura programable y borrable eléctricamente. Puede borrarse incluso en envases de plástico. Algunos dispositivos EEPROM, pero no todos, pueden programarse en el sistema. CMOS.
- Flash : tecnología EPROM de borrado de flash. Puede borrarse incluso en envases 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.
Principales fabricantes
En 2016, los antiguos rivales de la industria Xilinx (ahora AMD) y Altera (ahora una subsidiaria de Intel ) fueron los líderes del mercado de FPGA. [52] En ese momento, controlaban casi el 90 por ciento del mercado.
Tanto Xilinx [nota 3] como Altera [nota 4] proporcionan software de automatización de diseño electrónico patentado para Windows y Linux ( ISE / Vivado y Quartus ) que permite a los ingenieros diseñar , analizar, simular y sintetizar ( compilar ) sus diseños. [53] [54]
Otros fabricantes incluyen:
- Microchip :
- Microsemi (anteriormente Actel ), que produce FPGA antifusibles, basados en flash y de señal mixta ; adquirida por Microchip en 2018
- Atmel , una segunda fuente de algunos dispositivos compatibles con Altera; también FPSLIC [ aclaración necesaria ] mencionado anteriormente; [55] adquirido por Microchip en 2016
- Lattice Semiconductor , que fabrica FPGAs basados en SRAM de bajo consumo con configuración flash integrada, instant-on y reconfiguración en vivo
- SiliconBlue Technologies , que proporciona FPGAs basados en SRAM de potencia extremadamente baja con memoria de configuración no volátil integrada opcional ; adquirida por Lattice en 2011
- QuickLogic, [56] que fabrica concentradores de sensores de potencia ultrabaja, FPGAs basados en SRAM de baja densidad y potencia extremadamente baja, con puentes de visualización, entradas MIPI y RGB, salidas MIPI, RGB y LVDS
- Achronix , fabrica FPGAS basado en SRAM con una velocidad de tejido de 1,5 GHz [57]
En marzo de 2010, Tabula anunció su tecnología FPGA que utiliza interconexión y lógica multiplexada en el tiempo que afirma ahorros de costos potenciales para aplicaciones de alta densidad. [58] El 24 de marzo de 2015, Tabula cerró oficialmente. [59]
El 1 de junio de 2015, Intel anunció que adquiriría Altera por aproximadamente $ 16.7 mil millones y completó la adquisición el 30 de diciembre de 2015. [60]
El 27 de octubre de 2020, AMD anunció que adquiriría Xilinx. [61]
Ver también
- Tarjeta de entresuelo FPGA
- Creación de prototipos FPGA
- Lista de simuladores de HDL
- Lista de FPGA de Xilinx
- Lenguajes de descripción de hardware Verilog y SystemVerilog
- VHDL , lenguaje de descripción de hardware de circuito integrado de muy alta velocidad
- Aceleración de hardware para una descripción general de la informática basada principalmente en hardware
Notas
- ^ Llamado bloque lógico configurable (CLB) o bloque de matriz lógica (LAB), según el proveedor
- ^ a b Para obtener más información, consulte el enrutamiento en la automatización del diseño electrónico , como parte del paso de lugar y ruta de la fabricación de circuitos integrados.
- ^ ahora AMD
- ^ ahora Intel
Referencias
- ^ a b c "Arquitectura FPGA para el desafío" . toronto.edu . Universidad de Toronto .
- ^ Simpson, PA (2015). FPGA Design, Best Practices for Team Based Reuse, 2da edición . Suiza: Springer International Publishing AG. pag. 16. ISBN 978-3-319-17924-7.
- ^ Wisniewski, Remigiusz (2009). Síntesis de unidades de control de microprogramas composicionales para dispositivos programables . Zielona Góra: Universidad de Zielona Góra. pag. 153. ISBN 978-83-7481-293-1.
- ^ "Tutorial de integridad de la señal FPGA" . altium.com . Archivado desde el original el 7 de marzo de 2016 . Consultado el 15 de junio de 2010 .
- ↑ NASA: FPGA drive Strength Archivado el 5 de diciembre de 2010 en la Wayback Machine.
- ^ Mike Thompson. "Los FPGA de señal mixta proporcionan POTENCIA VERDE" . EE Times, 2007-07-02.
- ^ a b c "Historia de las FPGA" . Archivado desde el original el 12 de abril de 2007 . Consultado el 11 de julio de 2013 .
- ^ "En el principio" . altera.com . 21 de abril de 2015.
- ^ a b "XCELL número 32" (PDF) . Xilinx.
- ^ a b c d e f Universo de financiación. " Xilinx, Inc. " Consultado el 15 de enero de 2009.
- ^ Clive Maxfield, Programmable Logic DesignLine, " Xilinx desvela la revolucionaria arquitectura FPGA de 65 nm: la familia Virtex-5 . 15 de mayo de 2006. Consultado el 5 de febrero de 2009.
- ^ Comunicado de prensa, " Ross Freeman, cofundador de Xilinx, honrado como miembro del Salón de la Fama de Inventores Nacionales 2009 por la invención de FPGA Archivado 2016-10-06 en Wayback Machine "
- ^ US 4870302 , Freeman, Ross H., "Circuito eléctrico configurable con elementos lógicos configurables e interconexiones configurables", publicado el 19 de febrero de 1988, publicado el 26 de septiembre de 1989
- ^ "Principales empresas FPGA para 2013" . sourcetech411.com . 2013-04-28.
- ^ a b Maxfield, Clive (2004). La guía del guerrero del diseño para FPGA: dispositivos, herramientas y flujos . Elsevier. pag. 4. ISBN 978-0-7506-7604-5.
- ^ "Microsoft sobrealimenta Bing Search con chips programables" . CON CABLE . 16 de junio de 2014.
- ^ a b "Proyecto Catapulta" . Investigación de Microsoft . Julio de 2018.
- ^ [1] , "Dispositivo digital con matriz de interconexión", publicado el 29 de septiembre de 1981
- ^ "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 .
- ^ Maxfield, Max. "Xilinx UltraScale FPGA ofrece 50 millones de puertas ASIC equivalentes" . www.eetimes.com . EE Times.
- ^ a b Dylan McGrath, EE Times , "El mercado FPGA pasará $ 2.7 mil millones para el '10, dice In-Stat ". 24 de mayo de 2006. Consultado el 5 de febrero de 2009.
- ^ a b "Análisis de mercado global de FPGA y pronósticos de segmento para 2020 - industria de FPGA, perspectivas, tamaño, aplicación, producto, participación, perspectivas de crecimiento, oportunidades clave, dinámica, tendencias, análisis, informe de FPGA - Grand View Research Inc" . grandviewresearch.com .
- ^ Dylan McGrath, EE Times , " Gartner Dataquest Analyst da ASIC, FPGA Markets Clean Bill of Health ". 13 de junio de 2005. Consultado el 5 de febrero de 2009.
- ^ "Descripción general de la familia Virtex-4" (PDF) . xilinx.com . Consultado el 14 de abril de 2018 .
- ^ "ASIC, ASSP, SoC, FPGA - ¿Cuál es la diferencia?" . eetimes.com .
- ^ Kuon, Ian; Rose, Jonathan (2006). "Medición de la brecha entre FPGA y ASIC" (PDF) . Actas del simposio internacional sobre arreglos de puertas programables de campo - FPGA'06 . Nueva York, NY: ACM. págs. 21-30. doi : 10.1145 / 1117201.1117205 . ISBN 1-59593-292-5.
- ^ https://www.anandtech.com/show/14798/xilinx-announces-world-largest-fpga-virtex-ultrascale-vu19p-with-9m-cells
- ^ "AN 818: Tutorial de reconfiguración parcial de actualización estática: para placa de desarrollo Intel Stratix 10 GX FPGA" . www.intel.com . Consultado el 1 de diciembre de 2018 .
- ^ "¿Pueden los FPGA modificar dinámicamente su lógica?" . Intercambio de pila de ingeniería eléctrica . Consultado el 1 de diciembre de 2018 .
- ^ "CPLD vs FPGA: ¿Diferencias entre ellos y cuál usar? - Centro de ayuda de Numato Lab" . numato.com . 2017-11-29.
- ^ 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". Diseño y Prueba de Computadoras IEEE . 25 (6): 590–598. doi : 10.1109 / MDT.2008.166 . S2CID 115840 .
- ^ "EETimes en PUF: características de seguridad para no expertos en seguridad - ID intrínseco" . Identificación intrínseca . 2015-06-09.
- ^ Skorobogatov, Sergei; Woods, Christopher (2012). "Avance de escaneo de silicio descubre puerta trasera en chip militar". Hardware criptográfico y sistemas integrados - CHES 2012 . Apuntes de conferencias en informática. 7428 . págs. 23–40. doi : 10.1007 / 978-3-642-33027-8_2 . ISBN 978-3-642-33026-1.
- ^ "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 desde el original el 21 de agosto de 2010 . Consultado el 2 de noviembre de 2018 .
- ^ LaPedus, Mark. "Xilinx tiene como objetivo FPGA de 65 nm en aplicaciones DSP" . EETimes .
- ^ Morgan, Timothy Pricket (3 de septiembre de 2014). "Cómo Microsoft está utilizando FPGA para acelerar la búsqueda de Bing" . Tecnología empresarial . Consultado el 18 de septiembre de 2018 .
- ^ "I-RAM de Gigabyte: almacenamiento de estado sólido asequible" . anandtech.com . 2005-07-25 . Consultado el 16 de diciembre de 2020 .
- ^ "Dispositivos de desarrollo FPGA para aplicaciones espaciales endurecidas por radiación introducidas por Microsemi" . www.militaryaerospace.com . 2016-06-03 . Consultado el 2 de noviembre de 2018 .
- ^ a b "CrypTech: transparencia de la construcción en la criptografía t" (PDF) .
- ^ 2. Arquitectura CycloneII . Altera. Febrero de 2007
- ^ "Documentación: dispositivos Stratix IV" (PDF) . Altera.com. 2008-06-11. Archivado desde el original (PDF) el 26 de septiembre de 2011 . Consultado el 1 de mayo de 2013 .
- ^ Guía del usuario de Virtex-4 FPGA (1 de diciembre de 2008). Xilinx, Inc.
- ^ Dean Takahashi, VentureBeat. " La conexión Intel ayudó a la startup de chips Tabula a recaudar 108 millones de dólares ". 2 de mayo de 2011. Consultado el 13 de mayo de 2011.
- ↑ a b 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.
- ^ EDN Europa. " Xilinx adopta el empaque 3D de matriz apilada ". 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 FPGA, un ancho de banda y una eficiencia energética innovadores" (PDF) . xilinx.com . Consultado el 30 de noviembre de 2018 .
- ^ "Intel Custom Foundry EMIB" . Intel .
- ^ "¡Batalla por la FPGA: VHDL vs Verilog! ¿Quién es el verdadero campeón?" . digilentinc.com . Consultado el 16 de diciembre de 2020 .
- ^ "¿Por qué utilizar OpenCL en FPGA?" . StreamComputing . 2014-09-16.
- ^ Dillien, Paul (6 de marzo de 2017). "Y el Ganador de Mejor FPGA de 2016 es ..." EETimes . Archivado desde el 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 FPGA - Intel Quartus Prime" . Intel . Consultado el 1 de diciembre de 2018 .
- ^ "Principales empresas FPGA para 2013" . SourceTech411 . 2013-04-28 . 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 .
- ^ "Achronix para utilizar la fabricación de 22 nm de Intel" . Sala de prensa de Intel . 2010-11-01 . Consultado el 1 de diciembre de 2018 .
- ^ "Máquina del tiempo de Tabula - Informe del microprocesador" (PDF) . Archivado desde el original (PDF) el 10 de abril de 2011.
- ^ Tabula para cerrar; 120 puestos de trabajo perdidos en la empresa de chips Silicon Valley Business Journal
- ^ "Intel comprará Altera por $ 16.7 mil millones en su mayor acuerdo hasta la fecha" . Reuters . Junio de 2015.
- ^ "AMD para adquirir Xilinx, creando líder en informática de alto rendimiento de la industria" . Octubre de 2020.
Otras lecturas
- Sadrozinski, Hartmut F.-W .; Wu, Jinyuan (2010). Aplicaciones de las matrices de puertas programables en campo en la investigación científica . Taylor y Francis. ISBN 978-1-4398-4133-4.
- Wirth, Niklaus (1995). Diseño de circuitos digitales Un libro de texto de introducción . Saltador. ISBN 978-3-540-58577-0.
- Mitra, Jubin (2018). "Un sistema de medición de fase basado en FPGA". Transacciones IEEE en sistemas de integración a gran escala (VLSI) . IEEE. 26 : 133-142. doi : 10.1109 / TVLSI.2017.2758807 . S2CID 4920719 .
- Mencer, Oskar y col. (2020). "La historia, el estado y el futuro de las FPGA". Comunicaciones de la ACM. ACM. Vol. 63, No. 10. doi: 10.1145 / 3410669
enlaces externos
- ¿Qué es una FPGA? en YouTube