Skip to content
STIMSMITH

Processor Verification using Symbolic Execution: A RISC-V Case-Study

Paper
First seen 6/19/2026
Last seen 9/28/2026
Evidence 28 chunks

NEIGHBORHOOD

6 nodes · 6 edges
graph · Processor Verification using Symbolic Execution: A RISC-V Case-Study · depth=1

RELATIONSHIPS

50 connections
Symbolic Execution uses → 100% 5e
The title indicates symbolic execution is the method applied for processor verification.
KLEE uses → 100% 5e
The paper uses KLEE as the symbolic execution engine for the co-simulation.
Error Injection uses → 100% 4e
The paper uses error injection to evaluate the bug-hunting capabilities of its approach.
Co-simulation uses → 100% 4e
The paper integrates the ISS and RTL processor in a co-simulation setting.
Instruction Set Simulator (ISS) uses → 100% 4e
The paper utilizes an ISS as a reference model for processor verification.
Sliced Symbolic Registers uses → 100% 4e
The paper introduces sliced symbolic registers to keep the state space manageable.
MicroRV32 evaluates → 100% 4e
The paper presents results on verifying the MicroRV32 processor as a case study.
RISC-V VP uses → 100% 4e
The paper uses the ISS from RISC-V VP as the reference model for verification.
Verilator uses → 100% 4e
The paper uses Verilator to translate the Verilog RTL processor into C++ for co-simulation.
Voter (Mismatch Detection) uses → 100% 4e
The paper uses a voter component to detect mismatches between ISS and RTL processor outputs.
riscv-formal compares with → 90% 3e
The paper discusses riscv-formal as a related formal verification approach and compares it to its own methodology.
Fuzzing compares with → 90% 3e
The paper compares symbolic execution to fuzzing, noting that fuzzing is susceptible to missing corner-case bugs.
instruction stream uses → 90% 3e
The co-simulation uses an instruction stream as part of its structure.
RISC-V Formal Interface (RVFI) uses → 100% 2e
The voter in the paper's approach is based on RVFI to observe processor execution state.
Symbolic Instruction Memory uses → 95% 2e
The paper introduces and uses symbolic instruction memory to provide symbolic instructions to both ISS and RTL core.
Symbolic Data Memory uses → 95% 2e
The paper introduces and uses symbolic data memory for cross-processor verification.
Symbolic Execution Interface introduces → 90% 2e
The paper designs and introduces a dedicated symbolic execution interface for co-simulation integration.
Sliced Symbolic Registers introduces → 90% 2e
The paper introduces the concept of sliced symbolic registers as an optimization.
PicoRV32 mentions → 85% 2e
The paper mentions PicoRV32 as an example of a RISC-V processor with a native bus interface.
Model-Based Test Generation mentions → 85% 2e
The paper discusses model-based approaches as related work for test generation.
Niklas Bruns authored by → 100% 2e
The paper is authored by Niklas Bruns.
Vladimir Herdt authored by → 100% 2e
The paper is authored by Vladimir Herdt.
Rolf Drechsler authored by → 100% 2e
The paper is authored by Rolf Drechsler.
Cross-Level Processor Verification introduces → 95% 2e
The paper proposes a cross-level processor verification methodology using symbolic execution.
SpinalHDL uses → 90% 2e
The paper uses SpinalHDL as the hardware description language for the processor.
Symbolic Memory uses → 100% 2e
The paper uses symbolic memory as part of the co-simulation.
Execution Controller uses → 90% 2e
The paper uses an execution controller to enforce runtime limitations.
Symbolic Instruction Generation uses → 90% 2e
The paper generates instructions symbolically for the co-simulation.
Control and Status Registers (CSRs) uses → 90% 2e
The paper handles CSR verification and notes riscv-formal does not support CSRs.
Instruction Bus (IBus) uses → 90% 2e
The paper uses the IBus to connect the symbolic instruction memory to the RTL core.
Data Bus (DBus) uses → 90% 2e
The paper uses the DBus to connect the symbolic data memory to the RTL core.
VexRiscv mentions → 85% 2e
The paper mentions VexRiscV as a popular SpinalHDL-based processor.
Bounded Model Checking (BMC) mentions → 85% 2e
The paper mentions BMC as used by riscv-formal and discusses it as related work.
Symbolic Values uses → 100% 1e
The paper uses symbolic values to represent instructions and register values.
DFKI GmbH published by → 90% 1e
Two authors are affiliated with DFKI GmbH.
constrained-random instruction generation compares with → 85% 1e
The paper mentions that MicroRV32 was already tested using constrained random techniques, contrasting with symbolic execution.
University of Bremen published by → 95% 1e
The paper is affiliated with and published by authors from the University of Bremen.
Register-Transfer Level (RTL) uses → 100% 1e
The paper targets processor verification at the RTL level.
RISC-V uses → 100% 1e
The paper uses RISC-V as the ISA for the case study.
Coverage-guided Fuzzing mentions → 90% 1e
The paper mentions coverage-guided fuzzing as a related technique from the SW domain.
RV32I Instruction Set uses → 100% 1e
The paper verifies MicroRV32 using the RV32I instruction subset.
riscv-dv mentions → 75% 1e
The paper references RISCV-DV in its bibliography.
Randomized Instruction Stream Generation mentions → 85% 1e
The paper mentions randomized instruction stream generation as a classical test generation approach.
The paper discusses processor-level input stimuli generation techniques.
Coverage-Guided Fuzzing mentions → 90% 1e
The paper discusses coverage-guided fuzzing as a related approach for processor verification.
RISC-V targets ISA → 95% 1e
The title explicitly states the case study is for RISC-V.
Concolic Testing mentions → 85% 1e
The paper mentions concolic testing on RTL models as related work.
LLVM uses → 95% 1e
The paper compiles the co-simulation into bytecode using the LLVM toolchain.
LLVM Toolchain uses → 100% 1e
The paper uses the LLVM toolchain to compile the co-simulation into bytecode.
libFuzzer mentions → 90% 1e
The paper mentions libFuzzer as a coverage-guided fuzzing tool.