Skip to content

Latest commit

 

History

49 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SARV A Risc-V

SARV32 Core Logo

SARV is a 32-bit RISC-V processor implementing the RV32I base ISA together with selected standard extensions including Bit Manipulation (B), Compressed Instructions (C), Zmmul, Zicond, and Zicsr.

The core is written in Verilog HDL and targets FPGA and ASIC implementations. It is designed as a compact embedded processor with a modular RTL architecture.


Documentation

ISA Support

Extension Description Status
RV32I Base Integer Instructions Full
Zmmul Integer Multiplication (no division) Full
Zicond Conditional Operations Full
Zihintpause Pause Hint Instruction Full

Compressed Instructions (C)

Sub-extension Description Status
Zca Integer Compressed Instructions Full
Zcb Additional Compressed Instructions Full

Bit Manipulation (B)

Sub-extension Description Status
Zba Address Generation Full
Zbb Basic Bit-Manipulation Full
Zbs Single-Bit Operations Full
Zbc Carry-less Multiplication Full

Control & Status

Extension Description Status
Zicsr Control Status Registers Full
Zihpm Hardware Performance Monitors Full

Interrupts

Type Description Status
MEI Machine External Interrupt Supported
MTI Machine Timer Interrupt Supported
MSI Machine Software Interrupt Supported

Power Management

Feature Description Status
WFI Wait for Interrupt — halts core until IRQ Supported

CoreMark Performance

Metric Value
CoreMark 1508.755307
Frequency 500 MHz (simulated)
CoreMark/MHz 3.017510614
Simulation Gate-level, ideal memory
Flags -march=rv32ib_zicond_zmmul_zicsr_zca -mabi=ilp32 -Ofast

Measured in gate-level simulation without cache/memory latency. Provides architectural comparison point.

The design under test uses a Branch Target Buffer (BTB) with 8 entries (BRANCH_PREDICTION_ENTRY_INDEX_BITS = 3) and a Return Address Stack (RAS) with 2 entries (RETURN_ADDRESS_PREDICTION_ENTRY_INDEX_BITS = 1).

Verification

Test Suite Status
CoreMark Pass
Custom tests Pass

Synthesis Results

Technology: Nangate 45nm Open Cell Library

Metric Value
Total Area 34,881.644 µm²
Cell Count 24,463
KGE 13.105 kGE
Flip-Flops (DFFR/DFFS) 2730
Synthesis Tool Yosys
Post-synthesis estimated Fmax 550 MHz

Architecture

The figure below shows the top level organization of the SARV core. Detailed down to wire and module documentation are available in the docs/ directory.

SARV Architecture

Simulation

The SARV core has been tested using:

  • Simulator: QuestaSim 2024.1

Compile

vlog rtl/*.v

Run

vsim work.tb_top
run -all

Note: Before running the simulation, update the instruction memory initialization file (memory.txt) to point to your desired program image and current path.

License

SARV is licensed under the CERN Open Hardware Licence Version 2 – Strongly Reciprocal (CERN-OHL-S-2.0).

You are free to use, modify, and manufacture hardware based on this project, provided you comply with the terms of the CERN-OHL-S v2.

See the LICENSE file for details.

Releases

Contributors

Languages