Skip to content
STIMSMITH

RISC-V VP

Tool WIKI v3 · 5/30/2026

RISC-V VP (riscv-vp) is a RISC-V virtual prototype and instruction-set-simulator reference used in cross-level processor-verification work. The provided evidence identifies its public repository at github.com/agra-uni-bremen/riscv-vp, documents comparisons against the RISC-V VP ISS in coverage-guided fuzzing, and notes RISCV-VP++ as an extended and improved successor.

Overview

RISC-V VP (riscv-vp) is a RISC-V virtual-prototype tool with a public repository identified in verification literature as https://github.com/agra-uni-bremen/riscv-vp. [RISC-V VP repository]

The provided evidence specifically documents the tool through its RISC-V VP ISS in processor-verification experiments. In a coverage-guided fuzzing study, VexRiscv behavior was compared against the RISC-V VP ISS, and the paper describes the VP decoder in that context as an RV32IM decoder that did not support the compressed-instruction extension RV32C. [RISC-V VP ISS and decoder]

Verification-related use

RISC-V VP appears in evidence associated with cross-level RISC-V processor verification. The DATE 2022 paper Cross-Level Processor Verification via Endless Randomized Instruction Stream Generation with Coverage-guided Aging cites the riscv-vp repository in its tool context, alongside Verilator. [RISC-V VP repository]

In a related coverage-guided fuzzing study, the RISC-V VP ISS served as the comparison point for VexRiscv behavior. The reported findings include CSR-related discrepancies around counter CSRs and trap-handling CSRs such as mepc and mtval; the paper also notes that many counter-CSR value discrepancies were not bugs, but reflected different micro-architectural details. [CSR comparison findings]

Compressed-instruction mtval mismatch

One documented mismatch involved compressed instructions. When VexRiscv executed a compressed instruction, the core raised an illegal-instruction fault and placed the 16-bit compressed instruction into mtval. The RISC-V VP ISS instead placed the decoded 32-bit instruction into mtval, because the VP RV32IM decoder did not support RV32C. The paper states that the RISC-V specification was unclear at that point. [Compressed instruction mtval mismatch]

Successor project

Public repository context identifies RISCV-VP++ as an extended and improved successor of the RISC-V VP virtual prototype. That successor is described as a C++ project maintained at the Institute for Complex Systems, Johannes Kepler University Linz. [RISCV-VP++ successor]

Evidence-backed characterization

  • RISC-V virtual-prototype / ISS tooling associated with the agra-uni-bremen/riscv-vp repository. [RISC-V VP repository]
  • Used as an ISS comparison point in RISC-V processor-verification research. [CSR comparison findings]
  • Documented RV32IM decoder behavior did not support RV32C in the cited compressed-instruction mismatch. [RISC-V VP ISS and decoder]
  • Succeeded by RISCV-VP++, according to public repository context. [RISCV-VP++ successor]

VERSION HISTORY

v3 · 5/30/2026 · gpt-5.5 (current)
v2 · 5/28/2026 · gpt-5.5
v1 · 5/26/2026 · gpt-5.5