Una introducción a los FPGA y la lógica programable
Este video es una presentación introductoria sobre FPGA y tecnología de lógica programable. Pronuncié esta charla de 45 minutos en un evento organizado por 7 Peaks Software en Bangkok, Tailandia, el 19 de noviembre de 2019.
Los puntos destacados de la presentación incluyen:
- 05:07 ¿Quién usa FPGA?
- 09:06 ¿Qué es un FPGA?
- 12:13 Cómo emular puertas lógicas usando RAM estática
- 17:47 Primitivos FPGA comunes
- 19:51 FPGA más barato y más caro
- 20:53 Plano de planta de un FPGA
- 24:30 VHDL
- 28:05 Síntesis y Lugar y Ruta
- 30:50 núcleos blandos
- 33:15 híbrido FPGA/CPU (Zynq-7000)
- 36:44 Ventajas y desventajas de FPGA
- 40:28 Ejemplos de productos que contienen FPGA
- 45:18 Recursos de aprendizaje gratuitos de VHDLwhiz.com
¿Quién usa FPGA?
Existe una amplia gama de aplicaciones para la tecnología FPGA. Productos que van desde satélites en el espacio hasta robots comerciales en Wall Street utilizan lógica programable. Aquí siguen algunas industrias que son conocidas por ser grandes usuarios de FPGA.
Defensa
La industria de la defensa se encuentra en una excelente posición para beneficiarse de las implementaciones de FPGA personalizadas. Tienen mucho dinero y altos requisitos de calidad. Las listas de especificaciones de sus productos suelen ser extremas porque el equipo de grado militar es un nivel de ingeniería confiable muy por encima de los grados industriales y de consumo. Sus presupuestos son siempre altos y, a veces, prácticamente ilimitados, y provienen de una fuente estable como el respaldo del gobierno.
Todas las anteriores son razones por las que los FPGA se usan mucho para aplicaciones de defensa. No solo para armas, sino también para cosas como dispositivos de comunicación por radio y equipos de prueba. He trabajado en la industria. Puede leer más sobre mi experiencia como ingeniero de FPGA en la industria de defensa aquí.
Espacio
Los FPGA se utilizan ampliamente en toda la industria espacial. Hay muchas razones por las que son una buena opción para los satélites. Son inherentemente de bajo consumo, se pueden endurecer por radiación y es más fácil verificar la corrección de un FPGA que el software que se ejecuta en una CPU o microcontrolador.
Muchos diseños electrónicos en el espacio son para cosas como control de interfaz, lectura de datos de sensores, procesamiento de señales o sistemas de control, tareas que se adaptan bien a un FPGA. Además, las aplicaciones espaciales a menudo se encuentran bajo los mismos requisitos de confiabilidad que son estándar en la industria aeroespacial.
Aeroespacial
La industria aeroespacial ama los FPGA por muchas de las mismas razones que la industria espacial, pero lo más importante es que es más fácil verificar la corrección de un FPGA que el software.
Demostrar que un programa de computadora no tiene consecuencias no deseadas es difícil y requiere mucho tiempo. Las normas internacionales para los sistemas aerotransportados exigen que los dispositivos electrónicos utilizados en las aeronaves sigan estrictos requisitos de verificación.
Si bien el software debe seguir el estándar de aviación DO-178C, los FPGA se incluyen en la guía de garantía de diseño DO-254 para hardware electrónico aerotransportado. En la mayoría de los casos, es más fácil y económico cumplir con el requisito del estándar de hardware que con una implementación de software correspondiente.
Automoción
Los fabricantes de vehículos utilizan FPGA para cosas como el control de motores diésel en camiones y también para sistemas de conducción automatizados. Incluso puede encontrar sistemas de comunicación y entretenimiento acelerados por FPGA en automóviles modernos.
Además, es probable que los vehículos eléctricos e híbridos utilicen FPGA para tareas de control de motores. Los motores de inducción trifásicos requieren un estricto control de tiempo de los campos magnéticos a medida que gira el motor. Cualquier imprecisión se traducirá en una pérdida de eficiencia energética.
Telecomunicaciones
La infraestructura de telecomunicaciones utiliza mucha tecnología FPGA. Como ya se mencionó, los FPGA son estándar en aplicaciones espaciales como los satélites de comunicación. Otros usos de los FPGA en la industria de las telecomunicaciones incluyeron enrutadores de red y estaciones base inalámbricas.
Para equipos de telecomunicaciones de consumo como teléfonos móviles, los FPGA no son tan comunes. Es más probable que vea un ASIC que un FPGA para una solución personalizada en un teléfono móvil. Aunque el costo inicial de producción de ASIC es mucho mayor que el de un FPGA, siguen siendo económicos debido a los altos volúmenes de venta de teléfonos móviles.
Centros de datos
Las cuatro grandes empresas tecnológicas desarrollan soluciones FPGA personalizadas para usar en sus centros de datos. Los FPGA son esenciales para que puedan manejar volúmenes de datos tan altos con una latencia tan baja.
Es difícil encontrar detalles sobre qué tipo de problemas están resolviendo con los FPGA. Aún así, a juzgar por la evidencia circunstancial, como las ofertas de trabajo, se hace evidente que dependen en gran medida de los FPGA. Servicios como Amazon AWS, Microsoft Azure, Google y Facebook son posibles en parte gracias a los FPGA.
Negociación de alta frecuencia
El comercio bursátil algorítmico de alta frecuencia (HFT) se trata de procesar los números más rápido que la competencia. Las empresas que participan en estas actividades hacen todo lo que está a su alcance para reducir la latencia de sus canales de procesamiento.
Sus servidores se ubican físicamente cerca de la bolsa de valores e invierten en el hardware de computadora más rápido que el dinero puede comprar. Cuando la competencia usa CPU y GPU, recurre a FPGA. Luego, pueden ejecutar el análisis estadístico de los datos de mercado entrantes un poco más rápido y ganar más dinero.
Minería de criptomonedas
Los FPGA han experimentado un renacimiento entre la comunidad de TI dominante en los últimos años. Debido a la exageración de Bitcoin, muchas personas comunes ahora han oído hablar de los FPGA.
La economía de la minería de criptomonedas tiene que ver con la gestión de la factura de la electricidad. La moneda tiene que valer más de lo que pagó por la electricidad para extraerla para que sea rentable.
Una solución de FPGA personalizada suele ser más eficiente en términos de energía que un algoritmo que se ejecuta en una CPU o incluso en una GPU. En los últimos años han aparecido muchas placas de minería de FPGA financiadas con fondos colectivos.
Ejemplos de productos que contienen FPGA
Los FPGA no se encuentran tan comúnmente en la electrónica de consumo. Aún así, hay muchos ejemplos de ello. A continuación, se incluyen algunos productos de los que quizás haya oído hablar que contienen FPGA.
HTC Vive
Este auricular VR usa tres Lattice FPGA, como podemos ver en este desmontaje. No está claro cuál es el propósito de los FPGA en este diseño.
Sin embargo, estos son dispositivos de capacidad relativamente baja, por lo que una buena suposición es que es para controlar una interfaz o leer un sensor, en lugar de procesar imágenes.
Google Waymo
El coche autónomo de Google funciona con tecnología FPGA. El proyecto aún se encuentra en la etapa de desarrollo y los FPGA son excelentes para la creación de prototipos.
El artículo al que se hace referencia afirma que usan FPGA para el "procesamiento de sensores", que pueden ser los sistemas LiDAR que tiene el automóvil.
iPhone 7
Es poco común encontrar un FPGA en un teléfono móvil. Un ASIC suele ser más económico debido a las grandes cantidades de producción de teléfonos móviles. A pesar de esto, el iPhone 7 usa un FPGA.
El artículo vinculado sugiere que puede ser para alguna característica nueva de inteligencia artificial (IA). Quizás Apple no había terminado con este hardware en particular y necesitaba la posibilidad de enviar actualizaciones de hardware por aire (OTA) a este chip. Ese es un uso innovador de un FPGA.
Postcombustión de Apple
La tarjeta aceleradora de gráficos de gama alta de Apple puede reproducir hasta 3 transmisiones de video RAM ProRes de 8k simultáneamente, en tiempo real.
Curiosamente, utiliza un FPGA para realizar el trabajo pesado. El procesamiento de imágenes es algo que los FPGA hacen muy bien. Tal vez necesitaban crear una solución personalizada porque las GPU no podían manejar videos de 8k lo suficientemente rápido.
Nvidia G-Sync
La tarjeta Nvidia G-Sync sincroniza la salida de la tarjeta gráfica con la frecuencia de actualización de la pantalla. Si eres un jugador de PC, es posible que hayas oído hablar de V-Sync, que es la solución de software de Nvidia para este problema.
La sincronización de la velocidad de fotogramas es un ejemplo de una tarea que es fácil de realizar en hardware pero consume mucha CPU cuando se realiza con software.
Osciloscopio Sigilent
El Sigilent SDS 1202X-E es un osciloscopio de 200 MHz y 2 + 1 canales. Un desmontaje realizado por EEVblog revela lo que lo impulsa, una CPU/FPGA híbrida Xilinx Zynq-7000.
El chip Zynq-7000 tiene dos CPU ARM duras y una parte FPGA programable en el chip. La ventaja de usar Zynq es que puede ejecutar Linux en la parte del sistema de procesamiento (PS). Con Linux, puede usar todas las bibliotecas GUI de alto nivel para crear una hermosa interfaz de usuario.
Al mismo tiempo, puede muestrear los datos del sensor a altas velocidades mediante el uso de lógica personalizada en la parte de lógica programable (PL) del chip. La interconexión entre la parte PS y PL tiene un ancho de banda muy alto ya que está dentro de la misma matriz de silicio. En general, un chip excelente para crear aplicaciones de Internet de las cosas (IoT) de alto rendimiento.
UltraMiner FPGA
El UltraMiner es uno de los muchos mineros de FPGA financiados colectivamente que han aparecido a lo largo de los años. La campaña de financiación aún está en curso en el momento de escribir este artículo.
Según los puntos de venta en la página del proyecto, tiene cuatro veces la eficiencia energética de un minero de GPU.
Tiempo de guijarros
El Pebble es uno de los primeros relojes inteligentes que se financió a través de una campaña de Kickstarter en 2012. Utiliza una pequeña FPGA para controlar la pantalla LCD.
Si tenías un Pebble, has estado caminando con un FPGA en tu muñeca todo el tiempo. El firmware para controlar el Pebble es de código abierto, el código para interactuar con el FPGA está en su repositorio en GitHub.
¿Quieres aprender a programar un FPGA?
Para crear lógica para un FPGA, debe usar un lenguaje de descripción de hardware (HDL). Este blog se especializa en VHDL, que es uno de los dos HDL populares.
Puede probar la programación VHDL en su computadora en la comodidad de su hogar de forma gratuita. Cada desarrollo de VHDL comienza en un simulador, y los tutoriales básicos de VHDL gratuitos le enseñan cómo simular utilizando la edición para estudiantes del simulador de VHDL más popular:ModelSim.
Recursos de aprendizaje VHDLwhiz
GRATIS: Tutoriales básicos de VHDL
PREMIUM: Curso Dot Matrix FPGA y VHDL
Vía rápida de FPGA y VHDL:práctica para principiantes absolutos¿Está familiarizado con la programación pero es nuevo en VHDL?
¿Necesita una breve introducción a este tema desconocido?
¿Tu horario está lleno y no te queda tiempo para estudiar?
¡Comprenda los conceptos básicos del desarrollo de FPGA usando VHDL en unas pocas tardes! Este curso es para profesionales de TI y estudiantes que necesitan un resumen rápido del tema. Con este curso y la placa de desarrollo Lattice iCEstick de bajo costo, estará desarrollando hardware real en cuestión de horas.
Haga clic aquí para leer más e inscribirse:
Vía rápida de FPGA y VHDL:práctica para principiantes absolutos
VHDL
- Tutorial - Introducción a VHDL
- Introducción a Verilog
- Introducción a las bisagras continuas
- Introducción a la estereolitografía (SLA)
- Introducción a la aleación de titanio
- Introducción a los circuitos de CC
- Introducción a los circuitos de CA
- Introducción a SPICE
- Introducción al álgebra booleana
- Lo que debe saber sobre los controladores lógicos programables
- Arreglo de puerta programable de campo (FPGA) versus microcontrolador:¿cuál es la diferencia?