riscv-ovpsim
Overview
riscv-ovpsim is the GitHub organization / project line maintained by Imperas that distributes the RISC-V instruction set simulators (ISS) used as free reference models for RISC-V processor design verification. The family includes the freely available riscvOVPsim compliance simulator and the extended riscvOVPsimPlus reference model, both of which are based on Imperas's OVP (Open Virtual Platform) simulation infrastructure.
The associated GitHub repository riscv-ovpsim/imperas-riscv-tests is written primarily in C and is used as a repository of RISC-V test programs paired with the simulator [chunk: 23fd1557-b2ac-4168-b6af-d1445f1a1d18; a2405b2a-182f-437d-98b3-f2b642af6917].
Purpose and role in RISC-V verification
riscvOVPsim is provided free of charge by Imperas to support basic RISC-V architectural conformance validation. It supports all of the standard ratified RISC-V extensions and can be used for simple tests of basic architectural compliance [chunk: a2405b2a-182f-437d-98b3-f2b642af6917].
riscvOVPsimPlus extends riscvOVPsim with additional functionality required for use as a full verification reference model. Documented extensions include [chunk: 23fd1557-b2ac-4168-b6af-d1445f1a1d18]:
- Fully configurable instruction trace
- GDB/Eclipse debug support
- Memory configuration options
- CLIC (Core-Local Interrupt Controller) support
- Debug Module / Debug Mode support
- Multi-hart simulation
- H-hypervisor simulation
- Recently ratified ISA extensions: V-vector, B-bitmanip, K-crypto (scalar), and Zfinx
- 'Near-ratified' extensions: P-SIMD/DSP and Zmmul
riscvOVPsimPlus also supports both configuration options and version references for the underlying RISC-V specifications, covering the full envelope of verification reference model requirements [chunk: a2405b2a-182f-437d-98b3-f2b642af6917].
Verification flows in which riscv-ovpsim is used
Simple log / signature comparison (Stage 1)
A simple verification flow applies the RISC-V international architectural compliance test suites, which are configured as tests with an integrated signature indicating pass. The reference simulator riscvOVPsim (available free from GitHub) is used in this flow. Because it supports all standard ratified RISC-V extensions, it can be used for simple basic architectural validation testing [chunk: 54ea4c86-3ed8-4a43-8ed1-d3aff6b3ffaf; a2405b2a-182f-437d-98b3-f2b642af6917].
Post-simulation trace-compare (Stage 2)
In the trace-based design verification flow, an Instruction Stream Generator (ISG) generates random but legal RISC-V instruction sequences, which are applied to both the RTL under test and the ISS in reference mode. Separate trace log files are written by each and run through a compare program to observe differences or failures. Imperas provides the free reference model riscvOVPsimPlus to support this trace-based flow [chunk: 54ea4c86-3ed8-4a43-8ed1-d3aff6b3ffaf; 23fd1557-b2ac-4168-b6af-d1445f1a1d18; a2405b2a-182f-437d-98b3-f2b642af6917].
The compare step inspects the program counter (PC), Control and Status Registers (CSRs), General Purpose Registers (GPRs), and other internal state, instruction by instruction, examining execution flow, program data, and programmers' / internal state. This immediate comparison allows direct debug examination at the point of failure. The approach has been used on CV32E40P in OpenHW 1H 2020 [chunk: 23fd1557-b2ac-4168-b6af-d1445f1a1d18].
The trace-compare method has efficiency limitations: trace files can become very large, and discrepancies may occur early in the test, making the method suitable mainly for simple processors. It also does not work for asynchronous events, control flow effects, or hardware real-time effects [chunk: 23fd1557-b2ac-4168-b6af-d1445f1a1d18; a2405b2a-182f-437d-98b3-f2b642af6917].
Use as a co-simulation ISS
Google's RISCV-DV (riscv-dv) instruction stream generator supports co-simulation with multiple ISS implementations, including spike, riscv-ovpsim, whisper, and sail-riscv [chunk: 3bb5e1c5-98cd-40eb-80c1-a6b331968f8e].
Use in compliance and floating-point testing research
riscvOVPsim is one of the RISC-V simulators evaluated in mutation-based compliance testing research, alongside SPIKE, VP, GRIFT, and SAIL [chunk: e125a551-dae2-4884-9f3a-d65c5b0886b2].
In floating-point testing research, riscvOVPsim is used to measure only the F and D floating-point extensions of RISC-V when comparing against other simulators such as Spike and QEMU [chunk: 8f484457-517e-4cc4-a99d-662e2fa502d8].
Repository status (public context)
The public repository metadata for riscv-ovpsim/imperas-riscv-tests reports [source: github metadata]:
- Primary language: C
- Stars: 201
- Forks: 40
- Last updated: 2026-05-20
- Repository URL: https://github.com/riscv-ovpsim/imperas-riscv-tests
A mirror of the same repository is also published on Gitee under the user fjwei, tagged v20230724, and described as a 20230830 mirror of the upstream GitHub repository. The Gitee mirror does not specify a license, and users are directed to consult the upstream project description and its upstream code dependencies [chunk: 9279c1af-696a-41c8-941c-0c3b364b6fe7].
Licensing
The Gitee mirror of imperas-riscv-tests does not specify a license; users are advised to verify licensing against the upstream project [chunk: 9279c1af-696a-41c8-941c-0c3b364b6fe7]. The upstream license terms for the riscv-ovpsim organization repositories are not explicitly captured in the provided evidence.
Related entities
- imperas-riscv-tests — Part of the riscv-ovpsim project line; this is the associated RISC-V test suite repository under the same GitHub organization, used alongside the simulators for compliance and reference-model testing.
- Imperas — Authored by / maintained by Imperas, the organization that develops and distributes the riscvOVPsim and riscvOVPsimPlus reference models.