Repolode
munetomo-maruyama

munetomo-maruyama/mmRISC-2

用 SystemVerilog 编写的 64 位 RISC-V CPU 核心,可在 Arty A7 FPGA 开发板上启动 Linux,全部设计由 Claude Code 完成。

Star
168
Fork
32
未关闭 Issue
0
最近提交
18天前

这是什么?

mmRISC-2 是用 SystemVerilog 编写的 64 位 RISC-V 处理器核心(RV64GC),目标平台为 Digilent Arty A7-100T FPGA 开发板。核心包含 8 级顺序流水线、带 PMP 的 Sv39 MMU、分支预测、单双精度 FPU、各 16 KB 的 L1 指令和数据缓存,以及 256 KB 的 L2 缓存。外设来自 LiteX,并内置 JTAG/cJTAG 调试逻辑。

在 50 MHz 的开发板上,项目可从 SD 卡启动 LiteX BIOS、OpenSBI 和 Linux 7.2,直到 BusyBox 命令行;也能启动 Debian 13(riscv64),并在板上直接运行 gcc、make 和 gdb。裸机 C 程序可通过 JTAG 在 Eclipse IDE 中编译和调试。核心提供 29 个性能计数器事件,可配合 Linux 的 perf 使用。

仓库还记录了验证环境,包括自制测试、riscv-tests、参考模型和故障注入,并提供中英日文的设计历程与规格文档。

核心功能

  • 01RV64GC 核心,支持 M、S、U 模式、Sv39 MMU 和 8 项 PMP。
  • 028 级顺序流水线,带分支预测(BTB、gshare、返回地址栈)。
  • 03单双精度 FPU,采用流水线数据通路。
  • 0416 KB 的 L1 指令和数据缓存,外加 256 KB 的 L2 缓存。
  • 05可从 SD 卡在 Arty A7-100T 上启动 Linux 7.2 和 Debian 13。
  • 06支持 JTAG/cJTAG 片上调试和硬件触发器,可配合 OpenOCD 与 gdb 使用。

适用场景

  • 学习如何用 SystemVerilog 实现 RISC-V CPU 核心、缓存和 MMU。
  • 在低成本 FPGA 开发板上的自制 RISC-V 核心上运行 Linux。
  • 通过 Eclipse 在 FPGA 上的 RISC-V 核心进行裸机 C 开发与调试。
  • 参考其基于参考模型和故障注入的处理器验证方法。

使用前须知

  • 它需要特定的 FPGA 开发板 Digilent Arty A7-100T,无法直接在其他硬件上运行,移植需要额外工作。
  • 项目以 Rev.02 结束,之后不计划继续开发。

标签

#risc-v#cpu#fpga#systemverilog#hardware-design#linux#rtl#processor-verification

常见问题

mmRISC-2 是什么?
用 SystemVerilog 编写的 64 位 RISC-V CPU 核心,可在 Arty A7 FPGA 开发板上启动 Linux,全部设计由 Claude Code 完成。 mmRISC-2 是用 SystemVerilog 编写的 64 位 RISC-V 处理器核心(RV64GC),目标平台为 Digilent Arty A7-100T FPGA 开发板。核心包含 8 级顺序流水线、带 PMP 的 Sv39 MMU、分支预测、单双精度 FPU、各 16 KB 的 L1 指令和数据缓存,以及 256 KB 的 L2 缓存。外设来自 LiteX,并内置 JTAG/cJTAG 调试逻辑。
mmRISC-2 可以免费使用吗?用的什么许可证?
mmRISC-2 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
mmRISC-2 还在维护吗?
活跃维护中。mmRISC-2 最近一次提交是在 2026年10月20日。
mmRISC-2 适合用来做什么?
学习如何用 SystemVerilog 实现 RISC-V CPU 核心、缓存和 MMU。 在低成本 FPGA 开发板上的自制 RISC-V 核心上运行 Linux。 通过 Eclipse 在 FPGA 上的 RISC-V 核心进行裸机 C 开发与调试。 参考其基于参考模型和故障注入的处理器验证方法。
在哪里获取 mmRISC-2?
源代码和安装说明在 GitHub 上:https://github.com/munetomo-maruyama/mmRISC-2

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目