Introduction

About RVComp

RVComp is a RISC-V SoC (System on Chip) with a five-stage pipeline. It supports the RV32IMASU_Zicntr_Zicsr_Zifencei instruction set, including privileged modes and the Sv32 virtual memory system, so it can run Linux. The RVComp project began in June 2024 and offers the following characteristics:

  • High operating frequency: Achieves a maximum clock frequency of 170 MHz on a Nexys A7-100T (XC7A100T-1CSG324C)

  • HDL implementation: About 7,757 lines of Verilog HDL (as of October 2025), with a from-scratch design except for the DRAM controller and clock generation

  • Permissive licensing: All HDL components except IP are provided under the MIT license

LICENSE

RVComp files we developed from scratch are distributed under the MIT license, so the project source code can be freely used, modified, and redistributed.

However, please note that the RVComp project uses multiple open-source components. The following components follow their respective licenses; see the LICENSE file for full details.

System overview

For the overall system structure, refer to SoC Architecture.

Supported instruction sets

  • Base ISA: RV32I (integer)

  • Extensions:

    • M extension: multiplication and division instructions

    • A extension: atomic instructions (LR/SC and AMO)

    • S extension: supervisor mode

    • U extension: user mode

    • Zicntr: counter access instructions

    • Zicsr: CSR access instructions

    • Zifencei: instruction-fetch fences

  • Virtual memory: Sv32 (two-level page tables with 4 KB pages)

Development environment

  • OS: Ubuntu 22.04 LTS (x86_64)

  • Cross-compiler: riscv-gnu-toolchain (14.2.0)

  • HDL: Verilog HDL for RTL, SystemVerilog for the testbench

  • Simulator: Verilator (v5.033)

  • FPGA synthesis: Vivado Edition 2024.1

  • Supported boards:

    • Nexys 4 DDR 100T (DDR2, 128 MB)

    • Arty A7 35T (DDR3, 256 MB)

We develop on Ubuntu 22.04 LTS, and this guide is primarily written for that environment. We have also confirmed operation on Windows 11 Education, but some tools do not provide Windows installers, so WSL2 is required in those cases. Commands in the Makefiles use Unix conventions, so WSL2 is recommended for Windows users. Some tools do not support Arm environments. If you plan to work on Arm hardware, consider using an x86_64 virtual machine.

Verification status

RVComp has been validated in simulation using the following test suites:

  • riscv-tests: Covers the RISC-V ISA(RV32IMASU) (passes all tests except ma_data)

  • riscv-arch-test: Passes every test(RV32IMASU) when compared against Spike via RISCOF

The ma_data test in riscv-tests checks misaligned accesses. Implementing hardware support for this rarely used feature would add significant complexity, so handling it with software exceptions is acceptable. RVComp intentionally raises a software exception instead, which is why the test does not pass. We also boot Linux kernel 6.13.0, run the CoreMark-PRO benchmark in validation mode, and confirm that it produces the expected results.