What's planned but not yet built.
- Run RISC-V architectural compliance test suite (riscv-arch-test)
- Identify and fix any ISA conformance gaps
- Target: full RV32IM compliance certification
- Generate test ELFs from Lean behavioral models targeting specific pipeline states
- 20 hazard patterns cataloged (see
docs/hazard-patterns.md):- Data hazards: RAW forwarding, WAW renaming, CDB dual wakeup, x0 sink
- Structural hazards: RS/ROB/free-list exhaustion
- Control hazards: branch misprediction, JAL/JALR
- Memory hazards: store-to-load forwarding, store buffer full, width matrix
- Execution: divider occupancy, multiplier pipeline fill, M-extension corners
- Combined: multi-hazard combos, pipeline drain
- ~240 targeted ELFs estimated
- 9 RS4 generic axioms (issue preserves existing entries, CDB broadcast correctness, etc.)
- 7 LSU/memory system axioms (store buffer FIFO ordering, forwarding correctness)
- Estimated effort: ~20 hours of manual Lean tactics
- Vec-based bundled I/O for all large modules (currently >500-port modules use flat vectors)
- SystemVerilog
struct packedtypes for semantic port grouping - Chisel
Bundletypes with bulk connect - RAM as DSL primitive (async/sync read modes)
- Two-pair LEC: netlist-to-hierarchical + hierarchical-to-Chisel
- Bracket notation in DSL:
mkWire "foo[3]"instead offoo3 - Hierarchical naming:
entry[0].validinstead ofe00 - Priority encoder primitive (
mkPriorityEncoder n) - Partial port mapping for
CircuitInstance(unused outputs left dangling)
- Tier 1 (hours):
shoumei-clangwrapper with microarchitecture-tuned flags (unroll limits from ROB/RS sizes) - Tier 2 (days):
llvm-mcascheduling model for pipeline profiling - Tier 3 (weeks): Full TableGen scheduling model in LLVM RISC-V backend
- Instruction cache (reduce fetch bubbles)
- Branch prediction (static, then dynamic BTB/BHT)
- Superscalar dispatch (2-wide issue)
- Speculative execution (beyond branch prediction)
- Privileged ISA (M/S/U modes, CSRs, interrupts, page tables)
- Compressed instructions (RV32IMC)
- Atomic extensions (RV32IMA)
- Multicore (cache coherence, interconnect)
- FPGA prototyping (target board TBD)