← 返回信息流
AI 资讯Hacker News·2 小时前

RISCBoy 开源掌机问世:从零设计打造

原标题:RISCBoy is an open-source portable games console, designed from scratch

速览

RISCBoy 是一款完全从零开始设计、开源的便携式游戏机,硬件和软件均开放。它展示了可定制化掌机的可能性,为开发者提供了学习与二次创作平台。项目强调自主性与开放性,有望推动开源游戏硬件生态发展。

AI 深度解读

背景

RISCBoy 是一款完全从零设计的开源便携游戏机,其灵感来源于作者童年时期的手持游戏机,尤其是 Gameboy Advance 的架构,但设想在一个平行宇宙中,RISC-V 指令集在 2001 年就已存在。该项目是作者对童年掌机的致敬,也是对驱动这些设备的技术的深情表达。整个设计使用可综合的 Verilog 2005 编写,目标平台是 iCE40-HX8k FPGA——这是一款基于 LUT4 的 FPGA,拥有 7680 个逻辑单元,要在如此有限的资源中实现一台 32 位游戏机,需要极其精心的设计(作者形容为“可能需要撬棍和凡士林”)。HX8k 曾是开源 Icestorm FPGA 工具链支持的最大 FPGA,但该工具链现已支持更大型的器件。

核心内容

RISCBoy 是一个完整的手持游戏机开源项目,其硬件设计包括以下组件:

  • RISC-V 兼容 CPU:支持 RV32IMC 指令集,通过了 RISC-V 合规性测试套件、riscv-formal 形式化验证套件,以及作者自写的指令前端一致性和基本总线合规性形式化属性检查。该 CPU 还支持 M-mode CSR、异常以及简单的合规向量化外部中断扩展。
  • 光栅图形管线与显示控制器:负责像素处理和显示输出。
  • 其他芯片基础设施:包括总线结构(AHB-lite 交叉开关和 APB 外设总线)、内存控制器、UART、GPIO 等。
  • PCB 布局:使用 KiCad 设计,Rev A 版本兼容 iTead 的 4 层 5×5 cm 原型打样服务(当前价格 10 块板 65 美元)。Rev B 将有很大不同,作者正在等待门电路和引导加载程序成熟后再推进。

FPGA 实现:目标 FPGA 为 iCE40-HX8k(LUT4 架构,7680 个逻辑单元),也可配置为更小的 iCE40 UP5k(此时使用 RV32I 子集而非 RV32IMC)。此外,还有高度实验性的 ECP5 支持(LEF5UM5G-85F-EVN 评估板),该版本将外部 512 KiB 16 位宽 SRAM 替换为内部 256 KiB 32 位宽同步内存(由 Trellis 工具链利用 ECP5 sysmem 块构建)。

开发工具链

  • 综合使用 Yosys
  • 布局布线使用 nextpnr
  • 比特流生成使用 Project Icestorm
  • 仿真使用 Xilinx ISIM 14.x(仅测试过 Linux 版本)
  • RISC-V 工具链需要配置为 RV32IMC 多库支持(通过 --with-multilib-generator 参数指定多个变体)

软件与测试

  • 软件测试需要 RV32IMC 工具链,硬件测试(HDL 级别)可通过 ./runtests 运行。
  • 仓库包含子模块,需递归克隆。
  • 目录结构包括:board(KiCad 文件)、doc(文档)、hdl(Verilog 源码,分总线、图形、CPU、内存、外设、核心、FPGA 顶层等子目录)、reference(标准 PDF)、scriptssoftware(系统级测试 C 文件)、synth(综合工作目录)、test(回归测试)。

关键要点

  • 完全开源:从 CPU 架构到 PCB 设计,全部开源,使用 Verilog 2005 和 KiCad。
  • RISC-V 核:支持 RV32IMC,通过形式化验证,具备 M-mode、中断等标准特性。
  • 严格资源优化:针对 iCE40-HX8k 的 7680 LUT 极限设计,体现了极高效率的硬件工程。
  • 双 FPGA 平台支持:主要面向 iCE40,额外支持 ECP5(替换外部 SRAM 为内部块内存)。
  • 开源工具链:综合、布局布线、比特流生成全部使用开源工具(Yosys、nextpnr、Icestorm),仿真使用 Xilinx ISIM(Linux 版)。
  • 多库编译支持:RISC-V 工具链需配置多库,以支持不同 ISA 变体(RV32I、RV32IC、RV32IM、RV32IMC)。
  • PCB 可打样:Rev A 设计兼容 5×5 cm 4 层板低成本打样服务。
  • 项目未完成:Rev B 和引导加载程序仍在开发中,当前目标是等待门电路和软件成熟。

意义与影响

RISCBoy 项目展示了在极低成本、极低资源(7680 LUT)的 FPGA 上,通过开源工具链实现完整 RISC-V 游戏机的可能性。它不仅是怀旧情怀的产物,更是对开源硬件生态的有力推动:从 CPU 设计、图形管线、总线架构到 PCB 布局,所有环节均公开可复现。该项目为 RISC-V 在嵌入式/娱乐领域的应用提供了参考模板,同时验证了开源 FPGA 工具链(Yosys + nextpnr + Icestorm)在复杂设计中的可行性。对于硬件爱好者、教育者和 RISC-V 社区而言,RISCBoy 是一个极具学习价值的完整案例,它证明了一台 2001 年水准的掌机完全可以用现代开源架构重新实现,并激励更多人在低端 FPGA 上探索高性能计算与图形系统。

查看原文 →github.com