文章摘要
RISCBoy是一个完全从零设计的开源便携游戏机,包含RISC-V兼容CPU、图形管线、显示控制器及PCB布局等完整硬件方案,基于iCE40-HX8k FPGA实现,致敬童年掌机体验。
文章总结
RISCBoy 是一款完全从零设计的开源便携式游戏机,其核心组件包括:基于 RISC-V 架构的 CPU、光栅图形渲染管线与显示控制器、总线架构与内存控制器等芯片基础设施,以及使用 KiCad 设计的 PCB 布局。这款设备被形容为“来自平行宇宙的 Game Boy Advance”,假设 RISC-V 在 2001 年就已存在,是对童年掌机与驱动它们的技术的致敬。
设计采用可综合的 Verilog 2005 语言编写,目标平台为 iCE40-HX8k FPGA(拥有 7680 个逻辑单元的 LUT4 型 FPGA)。由于资源有限,在如此紧凑的 FPGA 上实现 32 位游戏机需要精心的设计优化。处理器支持 RV32IMC 指令集,并通过了 RISC-V 合规性测试套件、riscv-formal 验证套件以及自定义的形式化属性检查,同时支持 M 模式 CSR、异常和向量化外部中断。
项目使用子模块管理 HDL 和测试代码,克隆时需执行 git clone --recursive。构建 RV32IMC 工具链时,需配置 --with-arch=rv32imc 和 --with-abi=ilp32 等参数,并注意在小型 FPGA(如 iCE40 UP5k)上使用 RV32I 变体时,需通过 --with-multilib 参数生成对应标准库。仿真流程依赖 Xilinx ISIM 14.x,通过 scripts/ 目录下的 Makefile 驱动,运行 ./runtests 可执行所有 HDL 级测试。
PCB 设计方面,Rev A 版本兼容 iTead 的 4 层 5x5 cm 打样服务,Rev B 版本将根据门电路和引导加载程序的成熟度进行调整。FPGA 综合使用开源工具链(Yosys、nextpnr、Project Icestorm),在 Linux 环境下运行 make -f HX8k-EVN.mk bit 即可生成适用于 Lattice HX8k 评估板的位流文件。此外,项目还实验性支持 ECP5 FPGA,通过 make -f ECP5-EVN.mk BUILD=full bit 构建,将外部 SRAM 替换为内部同步内存。
目录结构清晰:board/ 存放 KiCad 文件,hdl/ 包含所有 Verilog 源码(处理器、图形单元、内存控制器等),doc/ 提供文档和图表,software/ 为系统级测试的 C 文件,synth/ 是综合工作目录,test/ 包含回归测试用例。
评论总结
根据评论内容,主要观点和论据如下:
项目背景与创意:评论2引用GitHub描述,称RISCBoy是“来自平行宇宙的Gameboy Advance,假设RISC-V在2001年就已存在”,评论3赞赏这种“来自平行宇宙的硬件”项目创意。
- 关键引用:评论2 “It is a Gameboy Advance from a parallel universe where RISC-V existed in 2001.”
- 关键引用:评论3 “i love the 'hardware from an alternate universe' projects.”
开发者身份与成就:评论4指出作者Luke Wren是树莓派的ASIC设计工程师,评论5补充其还设计了RP2040的DVI/HDMI接口。
- 关键引用:评论4 “Oh this is Luke Wren’s work. He’s an ASIC design engineer at Raspberry Pi.”
- 关键引用:评论5 “This guy also designed DVI/HDMI from RP2040.”
技术疑问与开放性:评论1询问RISCBoy能否运行Godot引擎,评论6对项目中开源AHB/APB内容表示惊讶,认为这些通常被视为ARM专有。
- 关键引用:评论1 “Does RISCBoy run Godot Engine? How can I make RISCBoy run Godot Engine?”
- 关键引用:评论6 “I'm surprised to see that it's OK that he has opensource AHB/APB stuff in it.”
总结:评论整体对RISCBoy项目持高度认可态度,聚焦其创意概念(平行宇宙硬件)、开发者背景(树莓派工程师)及技术开放性(开源AHB/APB),同时存在对兼容性(Godot引擎)的疑问。