¿Qué son los FPGA?

Los conjuntos de puertas programables en campo suenan complicados, pero abren un mundo completamente nuevo para los desarrolladores.

Si alguna vez ha leído sobre la emulación de juegos retro, es posible que se haya encontrado con un tipo de semiconductor llamado Field-Programmable Gate Array (FPGA). Se trata de circuitos integrados especiales que pueden reconfigurarse después de ser fabricados gracias a bloques lógicos configurables (CLB). En otras palabras, básicamente se puede reprogramar el conjunto de chips para que actúe como cualquier otro tipo de circuito digital, que tiene múltiples aplicaciones en IA, diseño de conjuntos de chips y otros campos.

Los FPGA tienen muchos casos de uso y dispositivos como Analogue Pocket los utilizan para admitir diferentes dispositivos portátiles. Sin embargo, Microsoft también utiliza FPGA para impulsar Bing, ya que le permite a la empresa reprogramarlos rápidamente para admitir nuevos algoritmos a medida que se desarrollan.

FPGA vs CPU tradicionales: ¿Cuál es la diferencia?

A diferencia de un chipset estándar, el Snapdragon 8 Generación 2, por ejemplo, una FPGA no está diseñada para ser reprogramada en el campo. Es un System on Chip (SoC) compuesto por varias partes, incluidas una GPU, NPU y CPU. Una vez enviado, eso es lo que recibirán los consumidores y las empresas.

Sin embargo, los FPGA están destinados a ser maleables para que el usuario pueda cambiar partes del chip sin introducir costos o riesgos adicionales. En industrias de rápido movimiento, como los automóviles autónomos, se pueden introducir nuevas regulaciones y estándares en cualquier momento para cualquier aspecto del dispositivo. El uso de una FPGA puede permitir una actualización OTA para reprogramar el chip para que admita nuevos estándares.

Una gran diferencia entre los FPGA y las CPU tradicionales es que están diseñados para procesar datos en paralelo a cambio de una velocidad de reloj mucho más baja. Por ejemplo, una FPGA con 10 canales para procesamiento de datos puede ejecutar operaciones de multiplicación en dos números para cada canal, multiplicando 20 números por ciclo. Una CPU tradicional puede multiplicar dos números por ciclo, por núcleo y en orden secuencial.

¿Cómo funcionan los FPGA para la emulación?

Los FPGA se utilizan a menudo para la emulación de hardware y una parte interesante del proceso de diseño del chipset es el uso de FPGA para emular diferentes partes del SoC en las pruebas. Los diseñadores de conjuntos de chips pueden utilizar múltiples FPGA para crear prototipos de un circuito integrado de aplicación específica (ASIC). Se utiliza un lenguaje de descripción de hardware (HDL) para crear un diseño de hardware, y este lenguaje le dice a la FPGA cómo organizarse. En el caso de Analogue Pocket, estos diseños se distribuyen en forma de "núcleos" típicamente escritos en Verilog, y los usuarios pueden descargar un núcleo para preparar la computadora de mano para consolas específicas.

Por ejemplo, Analogue Pocket puede leer juegos de Game Boy directamente en su ranura para cartuchos y reproducirlos como si fuera la consola original. No solo eso, sino que los adaptadores de cartucho también agregan soporte adicional para otros dispositivos, como Game Gear, Atari Lynx y más. Esto sólo es posible debido a la naturaleza reprogramable de una FPGA que utiliza emulación de hardware en lugar de emulación de software para garantizar que los juegos se puedan reproducir. Un MiSTer (que utiliza una placa DE-10 Nano FPGA como base y requiere módulos adicionales encima) es similar en que se puede utilizar para emular consolas como SNES, Sega Genesis e incluso la Cubo de juego. La emulación de hardware es generalmente más precisa que la emulación de software y, al mismo tiempo, ofrece beneficios de rendimiento.

Si bien el hardware envejece y puede volverse poco confiable con el tiempo, los FPGA pueden simplemente reprogramarse para emular la misma experiencia de hardware.

Por supuesto, eso no significa que los núcleos sean una interpretación HDL perfecta de un conjunto de chips. Se acercan bastante, pero con el tiempo se realizan correcciones y mejoras en los núcleos para solucionar problemas que pueden identificarse durante el uso normal. Estos núcleos se fabrican mediante ingeniería inversa de los conjuntos de chips que se incluyen en estos dispositivos y requieren un mapeo de todos y cada uno de los componentes de la placa base. En los conjuntos de chips propietarios personalizados se vuelve aún más difícil, y los desarrolladores a menudo necesitan ver un chip "destapado" con un microscopio para ver qué sucede exactamente dentro del chip y replicarlo.

Por eso los FPGA también son importantes para la preservación del hardware. Si bien el hardware envejece y puede volverse poco confiable con el tiempo, los FPGA pueden simplemente reprogramarse para emular la misma experiencia de hardware. El chip reorganizará su propia lógica física dentro de sí mismo para que coincida con cualquier núcleo que se le haya asignado. El ecosistema openFPGA está diseñado para ayudar en la preservación del hardware.

Además de eso, obtienes el beneficio adicional de jugar esos juegos de una manera legítima pero en un mejor hardware en general. Puedes adquirir un Analogue Pocket por $220 y jugar juegos de Game Boy como lo hacías en el pasado, pero con una mayor calidad de construcción, mejor pantalla e incluso soporte para base.

Desventajas de los FPGA

DE-10 Nano para una construcción MiSTer FPGA

Sin embargo, existen algunos inconvenientes. Para empezar, ocupan mucho más espacio que las CPU tradicionales y su producción también es significativamente más cara. Los dispositivos como el Analogue Pocket y el MiSTer FPGA cuestan mucho dinero, y este último te cuesta más de $500 si también adquieres algunos complementos. La mayoría de las personas simplemente preferirían emular juegos en sus teléfonos inteligentes o en sus computadoras y no les importa la precisión perfecta de píxeles que proporciona la emulación a nivel de hardware.

Por supuesto, los FPGA también se encuentran en su infancia relacionada con el consumo, y su popularidad solo ha aumentado en los últimos años. En realidad, han existido durante tanto tiempo en casos de uso profesional por parte de científicos, arquitectos de chipsets, inteligencia artificial y similares, pero Sólo en los últimos años han surgido dispositivos de consumo que son viables para un uso más informal o entusiasta.

Para la mayoría de las personas que desean iniciarse en la emulación, la conveniencia de un dispositivo dedicado que garantice una La experiencia fiel al original es atractiva, pero no es algo que todos necesiten o que siquiera les interese. Personalmente, si quiero jugar un juego como Super Mario Bros, estoy feliz de poder jugarlo en mi teléfono mientras viajo. No necesito un dispositivo dedicado para ello, pero entiendo el atractivo de tener uno.