Skip to content
STIMSMITH

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

Paper
First seen 6/19/2026
Last seen 7/12/2026
Evidence 27 chunks

NEIGHBORHOOD

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

explore full graph →

RELATIONSHIPS

50 connections
KLEE uses → 100% 5e
The paper uses KLEE as the symbolic execution engine for the co-simulation.
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.
Error Injection uses → 100% 4e
The paper uses error injection to evaluate the bug-hunting capabilities of its approach.
RISC-V VP uses → 100% 4e
The paper uses the ISS from RISC-V VP as the reference model for verification.
Sliced Symbolic Registers uses → 100% 4e
The paper introduces sliced symbolic registers to keep the state space manageable.
Verilator uses → 100% 4e
The paper uses Verilator to translate the Verilog RTL processor into C++ for co-simulation.
Symbolic Execution uses → 100% 4e
The paper proposes leveraging symbolic execution techniques for processor verification.
Voter (Mismatch Detection) uses → 100% 4e
The paper uses a voter component to detect mismatches between ISS and RTL processor outputs.
MicroRV32 evaluates → 100% 4e
The paper presents results on verifying the MicroRV32 processor as a case study.
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.
riscv-formal compares with → 90% 3e
The paper discusses riscv-formal as a related formal verification approach and compares it to its own methodology.
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.
Execution Controller uses → 90% 2e
The paper uses an execution controller to enforce runtime limitations.
Symbolic Memory uses → 100% 2e
The paper uses symbolic memory as part of the co-simulation.
Symbolic Instruction Generation uses → 90% 2e
The paper generates instructions symbolically for the co-simulation.
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.
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.
RISC-V Formal Interface (RVFI) uses → 100% 2e
The voter in the paper's approach is based on RVFI to observe processor execution state.
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 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.
libFuzzer mentions → 90% 1e
The paper mentions libFuzzer as a coverage-guided fuzzing tool.
DFKI GmbH published by → 90% 1e
Two authors are affiliated with DFKI GmbH.
LLVM uses → 95% 1e
The paper compiles the co-simulation into bytecode using the LLVM toolchain.
constrained-random instruction generation compares with → 85% 1e
The paper mentions that MicroRV32 was already tested using constrained random techniques, contrasting with symbolic execution.
Coverage-guided Fuzzing mentions → 90% 1e
The paper mentions coverage-guided fuzzing as a related technique from the SW domain.
riscv-dv mentions → 75% 1e
The paper references RISCV-DV in its bibliography.
LLVM Toolchain uses → 100% 1e
The paper uses the LLVM toolchain to compile the co-simulation into bytecode.
Symbolic Values uses → 100% 1e
The paper uses symbolic values to represent instructions and register values.
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.
RV32I Instruction Set uses → 100% 1e
The paper verifies MicroRV32 using the RV32I instruction subset.
The paper discusses processor-level input stimuli generation techniques.
Concolic Testing mentions → 85% 1e
The paper mentions concolic testing on RTL models as related work.
University of Bremen published by → 95% 1e
The paper is affiliated with and published by authors from the University of Bremen.
american fuzzy lop (AFL) mentions → 90% 1e
The paper mentions AFL as a coverage-guided fuzzer.
OSS-Fuzz mentions → 85% 1e
The paper mentions OSS-Fuzz as a fuzzing platform.
Randomized Instruction Stream Generation mentions → 85% 1e
The paper mentions randomized instruction stream generation as a classical test generation approach.