RISCBoy is an open-source portable games console, designed from scratch
208 points • 5 days agoArticle Link

RISCBoy 是一个从零开始打造的开源便携游戏机项目,设想如果在 2001 年就有 RISC-V 架构,掌机会是什么样子——可把它看作对 Gameboy Advance 的一种重构。项目覆盖完整的硬件栈:定制的 RISC-V 兼容 CPU 、光栅图形流水线、显示控制器,以及总线结构、内存控制器等必要的芯片基础设施。

硬件以可综合的 Verilog 2005 编写,目标器件为 iCE40-HX8k FPGA 。在该 FPGA 仅有 7680 个逻辑单元的资源约束下,设计必须经过高度优化,才能实现一个 32 位的游戏系统。集成处理器名为 Hazard5,支持 RV32IMC 指令集,已通过 RISC-V 合规测试套件并针对指令一致性进行了形式化属性检查。

仓库中还包含用 KiCad 设计的完整 PCB 布局,兼容常见的四层原型制造服务。项目结构对开发者友好:为硬件描述语言(HDL)模块、系统级软件测试、 FPGA 综合脚本和文档各自设立独立目录。 HDL 部分模块化良好,处理器、图形单元、内存控制器和外设驱动等都做成独立且易于管理的子模块。

开发流程基于开源工具链:用 Yosys 做综合、 nextpnr 做布局布线、 Project Icestorm 生成比特流。虽然以 iCE40 为主,项目也提供对 ECP5 FPGA 的实验性支持,允许采用不同的存储配置,例如用 ECP5 的内部系统内存块替代主要开发板上的外部 SRAM 。

为帮助他人构建或仿真系统,项目提供了配置交叉编译工具链和运行回归测试的详细说明。用户还可以用 Xilinx ISIM 等工具对网表进行仿真,以在投片到物理硬件前进行调试验证。作为一个完全开源且自包含的架构,RISCBoy 既是一台可实际运行的掌机,也是一套面向 FPGA 设计与 RISC-V 实现学习的完整教学资源。

35 comments • Comments Link

该项目用 RISC-V 替换原始硬件,重新构想了 Gameboy Advance 的架构,以向这款经典掌机致敬。

项目文档以专业、无表情符号的风格呈现,因而广受关注,许多人将其视为高质量、人工创作而非自动生成的证据。创作者是在 Raspberry Pi 任职的资深 ASIC 设计工程师,因参与 CPU 核心开发并创建 Hazard3 RISC-V 核心而知名。其技术文档详细描述了基于可编程扫描线缓冲区的渲染管线,受到对定制硬件设计感兴趣的读者高度评价。该设计属于 wafer.space 的首批生产批次,功能是否完善尚未得到证实。创作者此前的成果(如 PicoDVI)也体现了他在打造独特硬件接口方面的持续造诣。

值得指出的是,AHB 、 APB 等 AMBA 协议属于开放标准,这澄清了人们常把它们误认为是 ARM 专有技术的误解。对于软件策略,采用现成的开发流程(例如移植 GB Studio)被认为比强行在该设备上迁移臃肿的现代游戏引擎更为务实。在受限硬件上开发与现代计算不同:可以采用更简化的资源管理方式,例如静态内存分配和直接控制外设,而无需应对安全机制或操作系统开销带来的复杂性。由于硬件限制严格,在内存极小且无独立 GPU 的设备上运行现代游戏引擎从根本上不可行。

总体而言,该项目是复古游戏怀旧情绪与现代开源硬件工程之间一次引人注目的交汇。技术讨论凸显了人们对创作者工作的高度尊重,尤其是在 RISC-V 实现和定制渲染管线方面;讨论主要集中在硬件与软件整合的务实挑战上,既强调了早期主机开发的简约实用,也指出了将现代、资源密集型游戏引擎强行移植到此类受限平台的不可行性。