Skip to content
STIMSMITH

riscv-formal

Tool

riscv-formal is referenced in RISC-V verification literature as a RISC-V formal verification framework and as a notable model-checking-based formal verification approach.

First seen 5/26/2026
Last seen 8/7/2026
Evidence 31 chunks
Wiki v1

WIKI

Overview

riscv-formal is a tool/framework in the RISC-V verification ecosystem. A 2020 paper on cross-level processor verification for RISC-V identifies riscv-formal as a notable formal verification approach that leverages model checking, and its references list it as the “RISC-V formal verification framework” at https://github.com/SymbioticEDA/riscv-formal.

Role in RISC-V verification

READ FULL ARTICLE →

NEIGHBORHOOD

No graph connections found for this entity yet. It may appear in future ingestion runs.

explore full graph →

RELATIONSHIPS

49 connections
formal verification implements → 98% 5e
riscv-formal is a framework for performing formal verification of RISC-V cores.
The paper mentions riscv-formal as a notable formal verification approach for RISC-V.
The paper discusses riscv-formal as a related formal verification approach and compares it to its own methodology.
RISC-V Formal Interface (RVFI) uses → 100% 3e
RVFI is part of the riscv-formal framework and is used for formal verification of RISC-V processors.
The paper mentions riscv-formal as a related formal verification tool for RISC-V.
genchecks.py uses → 98% 2e
genchecks.py is a tool within riscv-formal used to automatically generate testbench macros and checks.
EPEX ← compares with 85% 2e
EPEX is compared with riscv-formal as both target RISC-V processor verification.
The paper mentions riscv-formal as a model checking-based verification tool.
RVFI uses → 98% 2e
riscv-formal uses RVFI as its interface for connecting CSRs and retired instruction data.
RVFI-DII Interface uses → 90% 1e
riscv-formal uses the RVFI interface for formal property checking.
Model Checking implements → 95% 1e
riscv-formal leverages model checking for RISC-V verification.
ISA compliance verification implements → 99% 1e
riscv-formal is the framework used to perform ISA compliance verification of RISC-V processors
Bounded Model Check uses → 97% 1e
riscv-formal supports setting up tests as bounded model checks
unbounded verification uses → 97% 1e
riscv-formal supports unbounded verification tasks in addition to bounded model checks
smtbmc uses → 90% 1e
riscv-formal uses smtbmc as the engine for certain solver tasks such as outputting SMT2 traces
boolector uses → 97% 1e
riscv-formal defaults to boolector as its solver
RISC-V evaluates → 97% 1e
riscv-formal evaluates RISC-V processor implementations for ISA compliance
Formal Verification ← uses 95% 1e
riscv-formal is used to perform formal verification by checking instructions one by one.
SystemVerilog uses → 93% 1e
riscv-formal uses SystemVerilog/Verilog for instruction-level formal checks.
Bounded Model Checking (BMC) uses → 100% 1e
riscv-formal applies a Bounded Model Checking approach for RISC-V processor verification.
RISC-V implements → 90% 1e
riscv-formal is a formal verification framework for RISC-V processors.
YosysHQ authored by → 97% 1e
riscv-formal is maintained by YosysHQ.
rvfi_macros.vh uses → 98% 1e
riscv-formal requires rvfi_macros.vh to be the first verilog file read after defining configuration macros.
bounded model checking implements → 90% 1e
riscv-formal supports bounded model checking via the RISCV_FORMAL_CHECK_CYCLE macro.
Unbounded Model Checking implements → 90% 1e
riscv-formal supports unbounded model checking via the RISCV_FORMAL_UNBOUNDED macro.
liveness checking implements → 90% 1e
riscv-formal supports liveness checks with fairness guarantees.
blackbox register file uses → 92% 1e
riscv-formal supports black-boxing the register file during instruction checks.
blackbox ALU uses → 92% 1e
riscv-formal supports black-boxing the ALU during consistency checks.
Control and Status Registers (CSRs) uses → 93% 1e
riscv-formal supports verifying CSRs through the RVFI interface using dedicated macros.
word-aligned memory access uses → 90% 1e
riscv-formal provides configuration for cores that only support word-aligned memory access.
Physical Memory Attributes (PMA) uses → 88% 1e
riscv-formal supports PMA configuration via the RISCV_FORMAL_PMA_MAP macro.
WFI instruction uses → 85% 1e
riscv-formal provides configuration macros to handle WFI and WFI-like wait instructions.
U-mode uses → 92% 1e
riscv-formal supports U-mode verification via the RISCV_FORMAL_UMODE macro.
S-mode uses → 92% 1e
riscv-formal supports S-mode verification via the RISCV_FORMAL_SMODE macro.
RISC-V Compressed ISA uses → 95% 1e
riscv-formal supports the RISC-V Compressed ISA via the RISCV_FORMAL_COMPRESSED macro.
fused instructions uses → 87% 1e
riscv-formal accommodates fused instructions through the ILEN configuration macro.
assume_stmts.vh uses → 93% 1e
riscv-formal includes assume_stmts.vh in the testbench when RISCV_FORMAL_ASSUME is defined.
rvformal_rand_reg uses → 95% 1e
riscv-formal uses the rvformal_rand_reg macro to declare random registers for formal and simulation contexts.
rvformal_rand_const_reg uses → 95% 1e
riscv-formal uses the rvformal_rand_const_reg macro to declare random constant registers for formal and simulation contexts.
Yosys uses → 95% 1e
riscv-formal supports Yosys as a formal verification backend.
RISC-V uses → 98% 1e
riscv-formal targets RISC-V processor cores for formal verification.
The paper mentions riscv-formal as a formal verification approach for RISC-V.
Model Checking implements → 90% 1e
riscv-formal is a formal verification approach for RISC-V based on model checking.
Bounded Model Checking (BMC) implements → 95% 1e
riscv-formal applies a Bounded Model Checking approach for RISC-V processor verification.
MicroRV32 ← evaluates 85% 1e
MicroRV32 was also verified using the riscv-formal tool.
Mutation-based Compliance Testing for RISC-V ← mentions 95% 1e
The paper mentions riscv-formal as a formal verification approach for RISC-V.
The paper discusses riscv-formal as a formal property checking framework.
Model Checking uses → 100% 1e
riscv-formal leverages model checking for RISC-V verification.
Formal Property Checking via RVFI implements → 95% 1e
riscv-formal implements formal property checking via the RVFI interface.

CITATIONS

5 sources
5 citations — click to expand
[1] riscv-formal is identified as a notable RISC-V formal verification approach leveraging model checking.
[2] riscv-formal is referenced as the “RISC-V formal verification framework” at https://github.com/SymbioticEDA/riscv-formal.
[3] Formal methods can provide correctness guarantees, but are more difficult to apply than simulation-based methods and may have complexity and scalability issues.
[4] The RISC-V ISA includes mandatory base integer instruction sets such as RV32I, RV64I, and RV128I, plus optional extensions such as M and C.
[5] The RISC-V privileged architecture includes execution modes, including mandatory Machine mode, and Control and Status Registers used for environment interaction, operating-system execution, and trap handling.