RISCBoy是什么:从指令集到布线,一个人全包了
GitHub用户Wren6991放出了一个叫RISCBoy的项目,标题写着“从零设计的便携游戏机”。这句话不是客套——他自己写了一颗兼容RISC-V的CPU,支持RV32IMC指令集;自己搭了光栅图形管线和显示控制器;总线交叉开关、内存控制器、UART、GPIO这些芯片基础设施也是自研的;连PCB都是他用KiCad画的。
代码用Verilog 2005写成,目标芯片是Lattice iCE40-HX8k,一颗只有7680个逻辑单元的LUT4型FPGA。这颗CPU不是随手糊一个能跑的玩具:它通过了RISC-V官方合规测试套件、riscv-formal形式化验证,作者还自己写了总线一致性和指令前端的形式化检查,支持M-mode CSR、异常处理,以及一套自定义的向量化外部中断扩展。Rev A的PCB兼容iTead的4层5x5cm打样服务,10片报价65美元。
这套组合放在个人硬件项目里并不常见。大多数“自制掌机”要么复用现成的ARM芯片,要么在别人写好的CPU核心上加壳;连指令集实现本身都自己设计、还要塞进最小号FPGA的,非常少。
7680个逻辑单元,能装下多少东西
原文通篇没有给读者一个坐标系去判断“7680个逻辑单元”到底是宽松还是逼仄。放到商业产品里看会清楚很多:消费级复古掌机Analogue Pocket用的是Cyclone V FPGA,逻辑单元数在四万九千左右,另外还配了一颗更小的辅助FPGA。RISCBoy的目标芯片,逻辑资源不到它的六分之一。
这颗HX8k还有一层意义:它曾是开源FPGA工具链IceStorm能支持的最大芯片。这条工具链后来把接力棒交给了支持Lattice ECP5的Trellis、支持Xilinx的prjxray,转向更大的平台。RISCBoy卡在这个节点上开工,等于是在开源工具链能力的上限边缘做设计,很大程度上决定了它必须“抠”——用作者自己的话说,把32位游戏机塞进这颗芯片,靠的是“一根撬棍加点润滑,或者干脆是精细设计”。
它不是GBA兼容机,是造CPU的教具
标题里那句“平行宇宙里如果RISC-V在2001年就存在的GBA”容易让人以为这是又一台能读GBA卡带的开源复刻机。不是。RISCBoy不支持原版GBA的ROM和卡带,它的CPU、图形管线、总线都是全新设计,跟GBA唯一的关系是精神致敬。
三者根本不是竞品关系。MiSTer图的是系统覆盖广、社区成熟;Analogue Pocket图的是消费级体验,开放程度停在openFPGA这一层;RISCBoy把“开放”做到了最底层——连CPU微架构都公开、可读、可改。代价是它现阶段几乎不具备“打开就能玩”的可用性。
全栈自研的开放,和能不能玩游戏,是两件事
- 结论.对RISC-V开源硬件社区和FPGA工具链维护者来说,RISCBoy的价值是一份完整的“CPU+外设+PCB”参考设计,能直接拿来当教学案例用。
存疑的部分,以及接下来该看什么
有一份挂在同一账号下的笔记提到过RISCBoy音频处理单元的设计目标——48kHz、8位立体声、36MHz时钟,靠两块iCE40片上BRAM实现。这类具体参数没法确认是否已经并入主仓库,更像是开发过程中的草稿,不建议当作确定规格来看。
- 风险.项目文档里Rev B PCB“会长得很不一样”,但发布时间没有给出;bootloader和gateware的成熟度、是否已有真正能跑起来的游戏demo,目前都缺少公开信息,想复刻的爱好者最好先确认这些进度,再决定要不要现在就下单打样。
对普通DIY爱好者,门槛不在10片65美元的打样费,而在前面那一长串工具链——Yosys、nextpnr、IceStorm,加上RISC-V GNU工具链的编译配置,都要自己搭。这类项目真正吸引的,是愿意花时间读Verilog、想搞懂一颗CPU到底怎么从晶体管逻辑走到能跑代码的人,不是想周末攒一台掌机打游戏的人。
