返回

文章详情

RISCBoy 是一款从零开始设计的开源便携式游戏机

Hacker News2026年7月11日 21:58

RISCBoy 是一款从零开始设计的开源便携式游戏机。这包括:与 RISC-V 兼容的 CPU,一个光栅图形管线和显示控制器,其他芯片基础设施:总线结构、内存控制器、UART、GPIO 等。在一个 RISC-V 于 2001 年就已存在的平行宇宙中,它是 Gameboy Advance。它是我童年手持游戏机的情书,也是对驱动它们的技术的凌晨 3 点醉酒短信。设计是用可综合的 Verilog 2005 编写的,旨在适配 iCE40-HX8k FPGA。这是一个基于 LUT4 的 FPGA,有 7680 个逻辑元素,因此要将 32 位游戏机装入其中,需要撬杠和一些润滑油,或者更可能是小心的设计。HX8k 曾经是开源 Icestorm FPGA 工具链所针对的最大 FPGA,但该工具链自此已发展到了更伟大的项目。更详细的信息可以在文档中找到。处理器支持 RV32IMC 指令集,并且通过了这些指令的 RISC-V 兼容性测试套件,以及 riscv-formal 验证套件,还有我自己的一些正式属性检查,以验证指令前端的一致性和基本总线合规性。它还支持 M 模式 CSR、异常,以及一个简单的符合规范的向量外部中断扩展。克隆此存储库使用 HDL 的子模块以及测试 git clone --recursive https://github.com/Wren6991/RISCBoy.git riscboy 或者 git clone https://github.com/Wren6991/RISCBoy.git riscboy cd riscboy git submodule update --init --recursive 注意,运行处理器的独立测试需要递归更新子模块。这对于构建 RISCBoy 门件并不是必需的。构建 RV32IMC 工具链 RV32IMC 工具链是编译基于软件的测试所必需的。按照 RISC-V GNU 工具链 GitHub 上的说明执行,但请注意 configure 一行:# Ubuntu 20.04 的先决条件 sudo apt install -y autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev cd /tmp git clone --recursive https://github.com/riscv/riscv-gnu-toolchain cd riscv-gnu-toolchain # ./configure 参数是最重要的不同 ./configure --prefix=/opt/riscv --with-arch=rv32imc --with-abi=ilp32 --with-multilib-generator=" rv32i-ilp32--;rv32ic-ilp32--;rv32im-ilp32--;rv32imc-ilp32-- " sudo mkdir /opt/riscv sudo chown $(whoami) /opt/riscv make -j $(nproc) 在较小的 FPGA 上,如 iCE40 UP5k,RISCBoy 可以配置为使用较小的 RV32I 处理器变体,而不是高性能的 RV32IMC 版本。编译器将支持 RISCBoy 上可用的任何 ISA 变种,但我们还必须指示工具链构建脚本通过 --with-multilib 参数生成这些变种的标准库。在 RV32I-only 处理器上运行链接到 RV32IMC 标准库的 RV32I 可执行文件会毁掉你的一天!仿真仿真流程由 Xilinx ISIM 14.x 驱动;makefile 位于 scripts/ 文件夹中。此功能仅在 Linux 版本的 ISIM 中经过测试。您还需要检查 RISC-V 兼容性测试套件,以便运行这些测试(注意 -- test 是必须的,以防 git 在 KiCad 目录中查找并抱怨库结构)。$ git submodule update --init --recursive 准备好后,您应该能够运行以下命令:. sourceme cd test ./runtests,这将运行所有 HDL 级别的测试。软件测试需要 RV32IC 工具链。如果 ISIM 安装在非默认位置,您可能需要调整 sourceme 中的一些路径。要图形化调试一个测试,请直接运行其 makefile:cd system make TEST=helloworld gui PCB 图像显示的是 Rev A PCB。它兼容 iTead 的 4-layer 5x5 cm 原型服务,目前每 10 块电路板的费用为 65 美元。原理图可以在此查看(pdf)Rev B 将会大不相同;我正在等待门件和引导加载程序成熟后再继续。目前我的开发硬件看起来与我的 Snowflake FPGA 板非常相似。综合对于 iCE40 的 FPGA 综合使用开源工具链。如果您想使用现有的 makefile 构建此项目,您首先需要构建我使用的工具链:用于综合的 Yosys,用于布局和布线的 nextpnr,生成比特流的 Project Icestorm。请注意,我仅在 Linux 上构建过这些。我听说在 Windows 上构建是可能的,但我没有尝试过。然而,它们可以在 Raspberry Pi 上构建,这很酷。一旦工具链到位,运行 . sourceme cd synth make -f HX8k-EVN.mk bit 以生成适合 Lattice HX8k 评估板的 FPGA 图像。还有高度实验性的支持(即不是我的主要开发平台)针对 ECP5,具备 Lattice LEF5UM5G-85F-EVN 评估板的板文件:make -f ECP5-EVN.mk BUILD=full bit 该构建替换了外部的 512 KiB 16 位...

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡