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的目标芯片,逻辑资源不到它的六分之一。

同一件事,两种芯片预算 RISCBoy 目标芯片 7680 iCE40-HX8k 逻辑单元 开源工具链能打的顶点 Analogue Pocket 主芯片 约49000 Cyclone V 逻辑单元 另配一颗辅助FPGA 资源差距六倍以上

这颗HX8k还有一层意义:它曾是开源FPGA工具链IceStorm能支持的最大芯片。这条工具链后来把接力棒交给了支持Lattice ECP5的Trellis、支持Xilinx的prjxray,转向更大的平台。RISCBoy卡在这个节点上开工,等于是在开源工具链能力的上限边缘做设计,很大程度上决定了它必须“抠”——用作者自己的话说,把32位游戏机塞进这颗芯片,靠的是“一根撬棍加点润滑,或者干脆是精细设计”。

它不是GBA兼容机,是造CPU的教具

标题里那句“平行宇宙里如果RISC-V在2001年就存在的GBA”容易让人以为这是又一台能读GBA卡带的开源复刻机。不是。RISCBoy不支持原版GBA的ROM和卡带,它的CPU、图形管线、总线都是全新设计,跟GBA唯一的关系是精神致敬。

三种“开放”,不在同一条赛道 RISCBoy CPU到PCB全自研,不兼容任何原版游戏,教学/实验属性 MiSTer 基于Terasic DE10-Nano,主打多系统核心复现,非便携形态 Analogue Pocket 消费级成品,openFPGA半开放,追求即插即玩体验

三者根本不是竞品关系。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到底怎么从晶体管逻辑走到能跑代码的人,不是想周末攒一台掌机打游戏的人。