¿Qué es FPGA?
FPGA son las siglas de Field Programmable Gate Array (matriz de puertas programables) y se refiere a un dispositivo que integra circuitos lógicos que pueden ser programados por el diseñador para configurar circuitos lógicos sobre el terreno.
Los circuitos integrados lógicos especializados tienen circuitos fijos y requieren el rediseño/reproducción de máscaras, etc. cuando se cambian partes de ellos, mientras que las FPGAs se caracterizan por circuitos lógicos que el diseñador puede cambiar libremente.
Los PLD han sido tradicionalmente los dispositivos que han cumplido este objetivo, escribiendo sus PLD a mayor escala y la estructura de sus circuitos en SRAM, las FPGAs permiten modificar el circuito tantas veces como sea necesario. La FPGA ha sido desarrollada por Xilinx (EE.UU.).
Usos de las FPGAs
Las FPGAs se utilizan en dispositivos de automoción, sensores de datos, aprendizaje profundo, etc. Los circuitos lógicos a gran escala se emplean para realizar operaciones lógicas de alta velocidad que no pueden procesarse mediante programación de CPU. Una solución es diseñar y fabricar LSI dedicados (por ejemplo, ASIC), pero los LSI dedicados son difíciles de cambiar de circuito.
Por otro lado, las FPGAs permiten a los diseñadores de circuitos diseñar libremente circuitos de aplicación y facilitan la modificación de circuitos, lo que reduce significativamente el coste de desarrollo de circuitos lógicos. Estas características han hecho que las FPGAs se utilicen ampliamente en diversos campos.
1. Equipos para Vehículos
Entre las razones que justifican su adopción en los equipos integrados en los vehículos figuran la reducción de los ciclos de desarrollo, la flexibilidad a la hora de afrontar cambios y la aparición de dispositivos que cumplen los requisitos de calidad. Un ejemplo concreto es el análisis de vídeo en los sistemas de asistencia al conductor.
Los sistemas de asistencia a la conducción necesitan analizar instantáneamente señales de vídeo en tiempo real procedentes de las cámaras del vehículo para apoyar las operaciones de conducción del conductor, y requieren algoritmos de baja latencia y alta precisión. Para ello es necesario un procesamiento aritmético de alta velocidad, para el que resultan adecuadas las FPGAs, ya que satisfacen este requisito y permiten modificar las funciones de control electrónico dentro del dispositivo según sea necesario.
2. Centros de Datos
Las FPGAs se utilizan cada vez más en los centros de datos. En concreto, sustituyen a las CPU y se encargan del procesamiento de IA, seguridad, autenticación, análisis en tiempo real, aprendizaje profundo, etc. Las FPGAs también se están utilizando para mejorar el rendimiento de los grandes sistemas de datos. Proporcionan conectividad de gran ancho de banda y baja latencia a los sistemas de red/almacenamiento, acelerando así el procesamiento de datos. Además, admiten la compresión de datos y el procesamiento de relleno.
3. Aprendizaje Profundo
En el mundo del aprendizaje profundo, la flexibilidad de las FPGAs para cambiar los circuitos es extremadamente útil, ya que el modelado óptimo cambia a diario. Las FPGAs son dispositivos ideales para aplicaciones como ésta, en las que el sistema debe mejorarse con frecuencia.
Principio de las FPGAs
Las FPGAs son LSI basadas en una estructura en la que los bloques lógicos programables a escala relativamente pequeña se disponen en una rejilla con cables verticales y horizontales entre ellos. Aunque cada bloque lógico es a pequeña escala, pueden combinarse muchos bloques para realizar circuitos a gran escala.
Un bloque lógico básico consta de una LUT (Look Up Table), Flip-Flops y circuitos adicionales. Los bloques lógicos pueden conectarse arbitrariamente mediante matrices de conmutación (puertas de transferencia) en las vías de cables.
Las LUT utilizan SRAM. La matriz de conmutación también se controla mediante los datos escritos en la SRAM. Como los datos de la SRAM se pierden cuando se desconecta la alimentación, la FPGA lee la información del circuito (datos de configuración) desde el exterior cuando se conecta la alimentación.
La estructura interna de una FPGA incluye los bloques lógicos básicos, los cables internos, los cables de reloj dedicados, los multiplicadores (DSP), las secciones de E/S, los PLL y las RAM de bloque. Están dispuestos en forma de malla para facilitar el enrutamiento de cualquier patrón de circuito.
Más Información sobre las FPGAs
1. Herramientas de Diseño
Tradicionalmente, se ha utilizado RTL (Register Transfer Level) como lenguaje de diseño para el diseño de FPGAs. Basándose en el RTL del diseñador, se generaba un archivo de descarga para ser escrito en la FPGA a partir de una herramienta proporcionada por el vendedor de la FPGA.
Sin embargo, recientemente, los proveedores de FPGA han lanzado herramientas conocidas como compiladores de síntesis de alto nivel. El uso de este compilador de síntesis de alto nivel permite un diseño eficiente y, al mismo tiempo, reduce el tiempo necesario para la verificación del circuito. Como resultado, contribuye a acortar los plazos de desarrollo del producto.
En la actualidad, los proveedores de FPGA ofrecen los tres compiladores de síntesis de alto nivel siguientes
- Compiladores basados en modelos (DSP)
- Compiladores HLS
- Compiladores OpenCL
Las tarjetas de evaluación suelen utilizarse cuando se investigan circuitos que utilizan FPGAs. Las placas de evaluación son comercializadas por diversas empresas, entre las que se incluyen proveedores de semiconductores, fabricantes de placas de evaluación y empresas de diseño por contrato. Como consecuencia, existe un gran número de tipos diferentes de placas de evaluación, y es necesario seleccionar la adecuada en función del nivel técnico y la finalidad. Los seis fabricantes típicos son los siguientes:
- HiTech Global
- BittWare
- TUL
- IOxOS
- Portwell Japón
- ANVENT
2. Mercado
Un informe de abril de 2020 de Global Information prevé que el mercado de FPGAs alcance un valor de 8.600 millones de dólares en 2025, frente a los 5.900 millones de 2020. Se espera que la tasa de crecimiento anual compuesto (CAGR) sea del 7,6%. Aunque no se dispone de cifras detalladas, cuando se clasifica el mercado de FPGA por nodos tecnológicos, se observa que el mayor porcentaje de la combinación de productos se sitúa por debajo de los 28 nm en 2019.
Además, el informe predice un alto crecimiento de los productos por debajo de 28 nm hacia 2025 debido a la aparición de productos de bajo consumo, etc. Entre las aplicaciones que impulsarán el mercado de FPGA de 2020 a 2025 se incluyen los ordenadores de alto rendimiento para la computación en la nube y las redes 5G. computación en nube y redes 5G.