Si alguna vez has leído sobre la emulación de juegos retro, es posible que te hayas topado con un tipo de semiconductor llamado matriz de puertas programables en campo (FPGA). Se trata de circuitos integrados especiales que pueden reconfigurarse después de su fabricación gracias a bloques lógicos configurables (CLB). En otras palabras, básicamente puedes reprogramar el chipset para que actúe como cualquier otro tipo de circuito digital, lo que tiene múltiples aplicaciones en la IA, el diseño de chipsets y otros campos.

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

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

A diferencia de un chipset estándar (elSnapdragon 8 Gen 2, por ejemplo), un FPGA no está diseñado para ser reprogramado en el campo. Es un sistema en chip (SoC) compuesto por varias partes, entre ellas una GPU, una NPU y una CPU. Una vez que se envía, eso es lo que recibirán los consumidores y las empresas.

Sin embargo, los FPGA están pensados ​​para ser maleables, de modo que el usuario pueda cambiar partes del chip sin introducir costes ni riesgos adicionales. En sectores de rápido crecimiento, como los automóviles autónomos, se pueden introducir nuevas normas y reglamentos en cualquier momento para cualquier aspecto del dispositivo. El uso de un 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 menor. Por ejemplo, un FPGA con 10 canales para el procesamiento de datos puede ejecutar operaciones de multiplicación de dos números por 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?

3-Bolsillo analógico para todos los ángulos

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

Por ejemplo, el Analogue Pocket puede leer juegos de Game Boy directamente en su ranura de cartuchos y reproducirlos como si fuera la consola original. No solo eso, sino que los adaptadores de cartuchos también agregan soporte adicional para otros dispositivos, como Game Gear, Atari Lynx y más. Esto solo es posible debido a la naturaleza reprogramable de un FPGA que utiliza emulación de hardware en lugar de emulación de software para garantizar que los juegos sean reproducibles. Un MiSTer (que utiliza una placa FPGA DE-10 Nano como base y requiere módulos adicionales sobre ella) es similar en el sentido de que se puede usar para emular consolas como SNES, Sega Genesis e incluso GameCube. La emulación de hardware generalmente es 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 esa misma experiencia de hardware.

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

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

Además, obtienes el beneficio adicional de jugar esos juegos de una manera que se siente real pero en un mejor hardware en general. Puedes comprar una 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 compatibilidad con dock.

Desventajas de los FPGAs

DE-10 Nano para la construcción de un FPGA MiSTer
DE-10 Nano para la construcción de un FPGA MiSTer

Sin embargo, tienen algunas desventajas. Para empezar, ocupan mucho más espacio que las CPU tradicionales y también son significativamente más caras de producir. Dispositivos como el Analogue Pocket y el MiSTer FPGA cuestan mucho dinero; este último cuesta más de 500 dólares si también se adquieren algunos complementos. La mayoría de las personas prefieren emular juegos en sus teléfonos inteligentes o sus computadoras y no les importa la precisión de píxeles perfecta que proporciona la emulación a nivel de hardware.

Por supuesto, los FPGAs también están en sus primeras etapas en el ámbito de los consumidores, y su popularidad solo ha aumentado en los últimos años. En realidad, ya llevan mucho tiempo utilizándose en casos de uso profesional por parte de científicos, arquitectos de conjuntos de chips, IA y similares, pero recién en los últimos años han surgido dispositivos de consumo y son viables para su uso en formas más informales o para entusiastas.

Para la mayoría de las personas que quieren adentrarse en la emulación, la comodidad de un dispositivo dedicado que garantice una experiencia fiel al original es tentadora, pero no es algo que todos necesiten o que les importe. Personalmente, si quiero jugar a un juego como Super Mario Bros, me conformo con jugarlo en mi teléfono mientras estoy fuera de casa. No necesito un dispositivo dedicado para ello, pero entiendo el atractivo de tener uno.