CARP Core Project¶
1. Project Overview¶
CARP Core is the flagship design effort of the Computer Architecture Research Project (CARP). It extends the original OTTER RV32I five-stage pipelined processor into a feature-complete, open-source RISC-V core capable of running modern embedded workloads, ported to ASIC flows, and validated against standard reference models.
Key Objectives:
Extend OTTER’s baseline RV32I to RV32IMAC_Zicsr_Zifencei_Zicntr.
Target both FPGA and ASIC implementations using open-source tools.
Port and run FreeRTOS on the core.
Verify functionality against the RISC-V Spike simulator.
2. Target ISA and Features¶
Current baseline¶
RV32I, 5-stage pipeline (IF, ID, EX, MEM, WB).
Basic hazard handling (stall + forwarding).
No branch or jump support yet (to be extended).
Planned extensions¶
M: Integer multiply/divide (pipelined or iterative multiplier).
A: Atomic instructions (
LR/SC, AMOs).C: Compressed instructions for code density.
Zicsr: Control/status registers for privileged mode and interrupts.
Zifencei: Instruction cache fence.
Zicntr: Base counters/timers (
cycle,instret).
3. Microarchitecture Roadmap¶
Pipeline Enhancements
Add branch/jump handling.
Forwarding + hazard detection unit.
Instruction/data memory interfaces with handshake support.
M Extension
Hardware multiplier/divider (parameterizable).
Evaluate performance vs area tradeoffs.
A Extension
Memory system update for atomics.
Reservation sets for LR/SC.
C Extension
Compressed instruction decoder front-end.
Maintain compatibility with 32-bit pipeline.
CSR & Privilege Support
Implement Zicsr instructions and machine-mode CSRs.
Hook up counters (Zicntr).
Add interrupt/trap handler flow.
4. Verification Strategy¶
Unit tests: Self-checking SystemVerilog/C++ testbenches for ALU, multiplier, CSR unit, etc.
ISA tests: Run RISC-V compliance suite for I/M/A/C/Zicsr extensions.
Reference model: Compare against Spike using differential testing.
Simulation: Use Verilator for cycle-driven C++ simulation.
Waveform debug: VCD/FST dumps for GTKWave.
5. Toolchain & Software Support¶
Toolchain: Build custom GCC / binutils targeting
rv32imac_zicsr_zifencei_zicntr.RTOS: Port FreeRTOS kernel to CARP Core (machine mode, UART console, timers).
Test Programs: Bare-metal apps, benchmarks (CoreMark), RTOS demo tasks.
6. ASIC Flow & Implementation¶
Use OpenLane 2 / OpenROAD on Sky130 PDK.
Explore standard cell synthesis, place & route, and GDSII export.
Analyze PPA (Power, Performance, Area) vs FPGA baseline.
Deliver a tapeout-ready netlist for academic publication.
7. Milestones¶
Phase |
Deliverable |
Target Date |
|---|---|---|
Phase 1 |
Branch/jump + hazard unit integrated into OTTER |
Fall 2025 |
Phase 2 |
RV32IM implemented (multiplier/divider) |
Fall 2025 |
Phase 3 |
CSR + Zicntr + interrupts |
Winter 2026 |
Phase 4 |
FreeRTOS boots on FPGA prototype |
Winter 2026 |
Phase 5 |
ASIC flow RTL → GDSII with Sky130 |
Spring 2026 |
Phase 6 |
Compliance suite + Spike differential testing complete |
Spring 2026 |
Phase 7 |
Final FreeRTOS demo + CARP Core publication |
Summer 2026 |
8. Impact¶
Students gain hands-on experience with ISA design, pipelining, RTOS, and ASIC flows.
Open-source contribution of a teaching-quality yet industrially relevant RISC-V core.
Builds a reusable foundation for future CARP projects (accelerators, coprocessors, autonomic SoCs).