From a03760a54a0f0f0de1c75f449427554674aabaaa Mon Sep 17 00:00:00 2001 From: Richard Qin Date: Thu, 19 Mar 2026 02:25:41 +0800 Subject: Update the latest progress --- rv64cpu/docs/isa_support.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/rv64cpu/docs/isa_support.md b/rv64cpu/docs/isa_support.md index e56eac6..cf8c9c4 100644 --- a/rv64cpu/docs/isa_support.md +++ b/rv64cpu/docs/isa_support.md @@ -14,14 +14,22 @@ Equivalent to `RV64IMAFDCZicsr_Zifencei` | Extension | Full Name | Status | Description | |---|---|---|---| -| **I** | Base Integer (RV64I) | 🔴 Not implemented | 64-bit base integer instruction set | +| **I** | Base Integer (RV64I) | 🟡 In progress | Five-stage RV64I pipeline, ALU, and branch unit implemented and covered by unit tests ([rtl/core/alu.sv](rtl/core/alu.sv), [tb/unit/tb_alu.cc](tb/unit/tb_alu.cc), [tb/unit/tb_branch.cc](tb/unit/tb_branch.cc)) | | **M** | Multiply/Divide | 🔴 Not implemented | Multiply, divide, remainder | | **A** | Atomic | 🔴 Not implemented | LR/SC, AMO atomic instructions | | **F** | Single-Precision Float | 🔴 Not implemented | 32-bit IEEE 754 floating-point | | **D** | Double-Precision Float | 🔴 Not implemented | 64-bit IEEE 754 floating-point | | **C** | Compressed | 🔴 Not implemented | 16-bit compressed instructions | -| **Zicsr** | CSR Instructions | 🔴 Not implemented | CSRRW/CSRRS/CSRRC/CSRRWI/CSRRSI/CSRRCI | -| **Zifencei** | Instruction Fence | 🔴 Not implemented | FENCE.I instruction | +| **Zicsr** | CSR Instructions | 🟢 Implemented | Full CSR unit with delegation, FCSR, and dedicated testbench ([rtl/core/csr_unit.sv](rtl/core/csr_unit.sv), [tb/unit/tb_csr.cc](tb/unit/tb_csr.cc)) | +| **Zifencei** | Instruction Fence | 🟡 Decoding only | Decoder recognizes FENCE.I; cache invalidation hookup pending | + +--- + +## Recent Progress Highlights (2026-03) + +- **CSR subsystem**: `csr_unit` now handles delegation, privilege transitions, and floating-point CSRs, verified by [tb/unit/tb_csr.cc](tb/unit/tb_csr.cc). +- **Integer execution path**: ALU, branch, and decode paths for RV64I arithmetic/logic instructions are implemented with passing unit tests ([tb/unit/tb_alu.cc](tb/unit/tb_alu.cc), [tb/unit/tb_branch.cc](tb/unit/tb_branch.cc)). +- **Decoder coverage**: Load/store, immediate, and system opcode paths exist with clear TODO markers for upcoming M/A/F extensions, see [rtl/core/decoder.sv](rtl/core/decoder.sv). --- -- cgit v1.2.3