Goauld , ¿Que es un FPGA?


FPGA en sistemas de 8 bits: hardware reconfigurable para el mundo retro

Un FPGA (Field-Programmable Gate Array) es un dispositivo de lógica digital reconfigurable: en vez de ejecutar instrucciones como un microprocesador convencional, se “programa” para comportarse como un circuito. Eso permite implementar desde lógica de pegamento (glue logic) hasta CPUs completas, controladores de bus, vídeo, audio o periféricos.

La gracia, especialmente en máquinas retro, es que un FPGA puede replicar no solo la funcionalidad, sino también los timings (señales y temporización) que muchos equipos de 8 bits dan por hechos. En MSX (Z80), por ejemplo, el bus y el comportamiento temporal importan tanto como “lo que hace” el sistema.

¿Qué hay dentro de un FPGA?

A nivel de arquitectura, un FPGA está compuesto por bloques que permiten construir circuitos digitales:

  • LUTs (Look-Up Tables): implementan lógica combinacional.
  • Flip-flops: almacenamiento de 1 bit para lógica secuencial (registros, contadores, estados).
  • Ruteado programable: interconexión entre bloques.
  • Según el chip: PLLs (para relojes), bloques DSP, memorias internas, etc.

Con eso puedes “dibujar” hardware: un núcleo de CPU, un VDP, un mezclador de audio… no como software, sino como lógica que se evalúa en paralelo.

Cómo se aplica un FPGA a un sistema de 8 bits

En retrocomputación, lo habitual es usar el FPGA de tres maneras:

  1. Periférico / acelerador: el FPGA cuelga del bus y añade funciones (memoria, almacenamiento, vídeo, etc.).
  2. Sustitución de un chip: el FPGA reemplaza una pieza crítica (CPU, controlador de vídeo…) manteniendo el resto del ordenador.
  3. Reimplementación completa: el FPGA recrea la máquina entera (core completo), a veces con conectividad moderna.

En MSX, el enfoque de sustituir la CPU o “pinchar” en puntos clave del bus es especialmente potente, porque te permite actuar sobre el sistema desde el centro: arbitraje de señales, prioridades y compatibilidad.


Tang Nano 20K: un FPGA compacto ideal para proyectos retro

La Tang Nano 20K es una placa pequeña basada en el FPGA Gowin GW2AR-18 (QN88). Según la documentación del fabricante, el chip ofrece aproximadamente 20.736 LUT4 y 15.552 flip-flops, además de 2 PLL y unidades DSP (multiplicación 18×18), lo que da margen para integrar bastante lógica en un formato reducido.

Por tamaño, coste y recursos, se ha vuelto popular en el mundo retro para integrar en mods internos o proyectos que requieren “meter un sistema entero” dentro de una máquina antigua.


Goa’uld en MSX: convertir un MSX clásico en un MSX2+ desde el zócalo del Z80

Dentro del ecosistema MSX, el proyecto Goa’uld propone una idea muy directa: una placa que se inserta en el zócalo del Z80 y permite transformar un MSX (por ejemplo MSX1) en un sistema con prestaciones de MSX2+, sin tener que hacer modificaciones complejas en la placa base. Esta filosofía de “upgrade desde el corazón del bus” es parte de lo que hace el proyecto tan atractivo.

En la variante Goa’uld SD , la Tang Nano 20K actúa como base para integrar dentro del FPGA varios bloques típicos del “motor” MSX2+ moderno: núcleo Z80, vídeo tipo V9958 con salida HDMI, BIOS MSX2+, soporte SD con Nextor, mappers grandes, RTC y audio (PSG/OPLL), entre otros.

Diagrama conceptual de bloques

Este esquema resume la idea (no es un esquemático eléctrico, sino un mapa lógico):

¿Qué aporta esto al usuario final?

  • Compatibilidad y “sensación hardware”: no es emulación en un sistema operativo, es lógica que actúa como circuito.
  • Vídeo moderno (HDMI): salida directa, útil para monitores actuales.
  • Almacenamiento y sistema: SD + Nextor facilita el uso diario y el acceso a software.
  • Expansiones integradas: mappers grandes, MegaRAM SCC, RTC, etc., reduciendo periféricos externos.

Fuentes y enlaces de referencia

Documento Revisado por IA