RISCBoy, una consola portátil de código abierto diseñada desde cero con RISC-V y FPGA

Fuentes: RISCBoy: an open-source portable games console designed from scratch around RISC-V and an iCE40 FPGA

RISCBoy es un proyecto de hardware abierto que reproduce, desde la base, una consola de juegos portátil al estilo de la Game Boy Advance, pero con la arquitectura RISC-V como núcleo. El diseño incluye una CPU compatible con el conjunto de instrucciones RV32IMC, un pipeline de gráficos raster y un controlador de pantalla, además de infraestructura de bus tipo AHB-lite/APB, controladores de memoria y periféricos como UART, SPI, PWM y GPIO. Todo se describe en Verilog 2005 sintetizable y está pensado para caber en una FPGA iCE40-HX8k, un chip con 7.680 elementos lógicos LUT4 que exige un diseño muy ajustado para soportar una consola de 32 bits.

El procesador, bautizado Hazard5 y autocontenido, supera la suite oficial de conformidad RISC-V para RV32IMC y la verificación formal riscv-formal, e incluye soporte para CSRs en modo máquina, excepciones y una extensión propia de interrupciones externas vectorizadas. En FPGAs más pequeñas, como la iCE40 UP5k, puede compilarse una variante reducida RV32I.

El proyecto se completa con un layout de PCB en KiCad (revisión A, compatible con el servicio de prototipos de 4 capas de 5×5 cm de iTead, a 65 dólares por 10 placas) y una pila de herramientas totalmente libres: Yosys para síntesis, nextpnr para place-and-route y Project Icestorm para generar el bitstream. Existe además soporte experimental para ECP5. El flujo de simulación se apoya en Xilinx ISIM 14.x, y los tests software requieren una toolchain RISC-V configurada con multilib para rv32i, rv32ic, rv32im y rv32imc. La documentación completa se distribuye en PDF dentro del repositorio.