Repository navigation
mmRISC-2 Rev.02, the final version (2026-10-20). A 64-bit RISC-V CPU (RV64GC) designed entirely by Claude Code, booting Linux 7.2 on the Digilent Arty A7-100T at 50 MHz.
mmRISC-2 の最終版 Rev.02(2026-10-20)。Claude Code がすべてを設計した 64-bit RISC-V CPU(RV64GC)で、Digilent Arty A7-100T の上で 50 MHz で Linux 7.2 が起動する。
What is new since Rev.01
- Larger TLBs: ITLB of 16 and DTLB of 32 entries (from 8 / 8), with PMU events for the page table walks (decisions 79 to 81). On Linux loads against Rev.01:
awk−20.5 %,gunzip−11.4 %,ls -lR−8.7 %, the other kernel loads −3.5 to −5.9 %. - Decision 82: a load on the wrong path of a late branch no longer leaves MR waiting for the DTLB. CoreMark had lost 0.3 %; now 3.034 CoreMark/MHz.
- Bare-metal development in the Eclipse IDE: a start-up kit (crt0, linker script, printf to the UART, the timer and interrupts), example projects, build and debug on the board over JTAG / cJTAG, on Ubuntu and Windows (
LitexSystem/docs/ECLIPSE.md). - Debian 13 on the board, with gcc: Debian (riscv64) boots from the SD card in place of BusyBox, and gcc 14, make, gdb 16, git and
aptrun on mmRISC-2 itself (LitexSystem/docs/DEBIAN.md). - Tried and not taken: write-validate of whole lines (W1, +0.1 % in simulation) and posted uncached stores (W2, under 0.1 % by measurement) (
ROADMAP.md).
Rev.01 からの変更
- TLB の拡大: ITLB 16・DTLB 32 エントリ(8 / 8 から)と、ページテーブル探索の PMU イベント(決定 79〜81)。Rev.01 と比べた Linux の負荷:
awk−20.5 %、gunzip−11.4 %、ls -lR−8.7 %、ほかのカーネルの負荷 −3.5〜−5.9 %。 - 決定 82: late branch の外れた経路のロードが、MR に DTLB を待たせないように。0.3 % 下がっていた CoreMark が 3.034 /MHz に。
- 統合開発環境 Eclipse によるベアメタル開発: 起動キット(crt0、リンカスクリプト、UART への printf、タイマと割り込み)とサンプルのプロジェクト。JTAG / cJTAG でボード上でビルド・デバッグ。Ubuntu と Windows で(
ECLIPSE_J.md)。 - ボード上の Debian 13 と gcc: BusyBox の代わりに Debian(riscv64)が SD カードから起動し、gcc 14、make、gdb 16、git、
aptが mmRISC-2 そのものの上で動く(DEBIAN_J.md)。 - 試して取り込まなかったもの: ライン全体の write-validate(W1、シミュレーションで +0.1 %)、キャッシュ無しのストアを待たない(W2、測って 0.1 % 未満)(
ROADMAP_J.md)。
Numbers / 数値
| Rev.02 | |
|---|---|
| CoreMark/MHz (board, Linux) | 2.504 (rv64gc -O2), 2.794 (Zba/Zbb -O2), 3.034 (fastest options) |
| DMIPS/MHz | 1.495 / 1.501 (-O2), 1.541 / 1.545 (fastest options) |
| Floating point | FIR 66.6 MFLOPS, matrix multiply 43.6 MFLOPS (50 MHz) |
| ISA | RV64IMAFDC, Zba, Zbb, Zbs, Zbc, Zicond, Zicboz, Zihintpause, Zihintntl, Sstc, Sdtrig, Zihpm / Sscofpmf / Smcntrpmf, Sv39, PMP 8 |
| FPGA | 50 MHz, WNS +0.140 ns, LUT 50,301 (79.3 %), slices 92.9 % |
| Verification | 554 bug injections, all detected; 120-minute stress test PASS (memory, Ethernet, SD at once) |
Attached / 添付
20261020_WhitePaper_mmRISC-2.pdf: white paper (English, A4, 18 pages): how Claude Code designed mmRISC-2, the specification, the history, the rework and verification, the software environments, an evaluation of AI-driven design.20261020_WhitePaper_mmRISC-2_J.pdf: ホワイトペーパー(日本語版)。
Everything to make an SD card (Image, fw_jump.bin, boot.json) is in LitexSystem/software/boot/ of the source; the corresponding source of the Linux kernel is in the release linux-src-4929f78c004e. The repository is under the Apache License 2.0.
SD カードを作るファイル一式(Image、fw_jump.bin、boot.json)はソースの LitexSystem/software/boot/ にある。Linux カーネルの対応するソースはリリース linux-src-4929f78c004e に置いてある。リポジトリは Apache License 2.0。