RISCBoy:一个人从 Verilog 到 PCB 手搓一台 RISC-V 掌机

RISCBoy:一个人从 Verilog 到 PCB 手搓一台 RISC-V 掌机

RISC-VFPGAVerilog硬件RISCBoy掌机开源

数据源:HN + GitHub · HN

2026 年 7 月 12 日,HN 上一条「RISCBoy is an open-source portable games console, designed from scratch」冲到 146 分、21 条评论。点进去会发现,这东西的「from scratch」比大多数人预期的更彻底。

作者 Luke Wren(GitHub 名 Wren6991)给它的定位很浪漫,也很硬核:「如果 RISC-V 在 2001 年就存在,那 Game Boy Advance 就是这个平行宇宙里的样子。它是一封写给童年掌机的情书,也是一封凌晨三点带着醉意发给那些驱动了掌机的技术的情书。」

但浪漫下是实打实的工程量。RISCBoy 包含的东西有:一个 RISC-V 兼容的 CPU、一条光栅图形管线加显示控制器、其他芯片基础设施(总线 fabric、内存控制器、UART、GPIO 等)、以及一块 KiCad 画的 PCB。整套设计用可综合的 Verilog 2005 写就,目标是塞进一颗 iCE40-HX8k FPGA。

7680 个逻辑单元里塞一台 32 位掌机

iCE40-HX8k 是一颗基于 LUT4 的 FPGA,只有 7680 个逻辑单元。作者自己的原话是:「要把一台 32 位游戏机塞进去,得用撬棍加点凡士林——或者干脆靠仔细的设计。」HX8k 曾是开源 Icestorm FPGA 工具链支持过的最大 FPGA,后来工具链已经去追求更大的目标了。

这颗芯片的局促,反过来定义了整个项目的设计取舍:要在极度受限的资源里做架构选择,而不是「能跑就行」地凑合。RISCBoy 的处理器支持 RV32IMC 指令集——也就是 32 位整数基集(I)、乘法除法扩展(M)、原子操作(A)、压缩指令(C)。它通过了 RISC-V 官方的 compliance suite,也过了 riscv-formal 形式化验证套件,外加作者自己写的一些形式化属性检查:取指前端一致性、基础的总线合规性。

除了 RV32IMC,这个核还支持 M-mode 的 CSR、异常,以及一套简单的、合规的向量化外部中断扩展。

从 CPU 到一块能拿在手里的板子

RISCBoy 不只在仿真里跑跑,仓库的目录结构暴露了它的野心:

  • hdl/:全部硬件描述,分模块组织
  • board/:PCB 相关,Rev A 板兼容 iTead 的 4 层 5×5 cm 打样服务,10 块板子 65 美元
  • software/:跑在 RISCBoy 上的软件,需要配套的 RV32IMC 工具链
  • test/:测试,包括处理器的独立测试和软件测试
  • doc/:文档,含一份 riscboy_doc.pdf

为了在更小的 FPGA(比如 iCE40 UP5k)上也能跑,RISCBoy 可以配置成用更精简的 RV32I 变体,而不是高配的 RV32IMC。作者特别提醒:在 RV32I-only 的处理器上跑一个链接了 RV32IMC 标准库的 RV32I 可执行文件,「会让你的日子很难过」——工具链的 --with-multilib 参数必须和目标 ISA 严格匹配。

仿真流程由 Xilinx ISIM 14.x 驱动,makefile 在 scripts/ 里。跑全套 HDL 级测试需要先把 RISC-V compliance suite 作为子模块拉下来。仓库本身也用子模块管理 HDL 和测试,克隆时必须加 --recursive

一个细节:它过了形式化验证

在「从零造硬件」的项目里,RISCBoy 的特别之处在于它认真对待正确性。riscv-formal 是一套对 RISC-V 实现做形式化验证的框架,用 SMT 求解器证明每一条指令的行为符合规范。一个个人项目愿意走到这一步,说明作者的目标是「行为可证明正确的硅前设计」,而不是一个「能亮屏的 demo」。

从公开信息看,RISCBoy 不是一个还在提案阶段的项目:它有 736 个 commit、10 个分支、18 个 fork,最近一次提交(PPU 修复 size-1 span 渲染并补了测试)在 8 个月前。它更像是一个被认真打磨过、但作者生活重心转移后放缓的长期工程。

为什么这种项目值得写一笔

在 2026 年,芯片设计对多数人来说是个黑箱:你用的是 ARM 或 x86 的核,是别人验证好的。RISCBoy 的价值在于它把「从地面造一台计算机」这件事,压缩到一个个人在业余时间能触及的尺度——一颗 65 美元的板子、一套开源工具链、一份能过形式化验证的 Verilog。

它也不是纯粹怀旧。RV32IMC、压缩指令、向量化中断,这些选择都和今天真实嵌入式 RISC-V 的取舍一致。用 2020 年代的开源 FPGA 工具,RISCBoy 重走了一遍 2001 年那代掌机工程师走过的路——只是这一次,每一步都是公开、可综合、可被外人复现的。

本文的素材来自公开信息和社区讨论。如果你对这个话题有更深入的一手经验,欢迎指出文中的不足。

参考链接: