Skip to content
STIMSMITH

Spike ISA simulator

Tool WIKI v1 · 5/28/2026

Spike is an open-source ISA simulator used by ProcessorFuzz as a reference model and as the basis for extended ISA trace generation during RISC-V processor fuzzing.

Overview

Spike is described in the ProcessorFuzz evaluation as an open-source ISA simulator. ProcessorFuzz used Spike as a reference model to verify correctness during fuzzing of the Rocket Core and BOOM Core processor designs.

Role in ProcessorFuzz

ProcessorFuzz relies on ISA simulation to generate an extended ISA trace log. In the reported implementation, the authors extended Spike so that it stored the values of monitored control and status registers (CSRs). ProcessorFuzz then used those ISA-side traces as part of its fuzzing workflow.

When ProcessorFuzz's transition unit determines that a test input produces a unique CSR transition, ProcessorFuzz runs RTL simulation and generates an extended RTL trace log. It then compares that RTL trace log with the extended ISA trace log. A difference between the two logs is treated as a potential processor-design bug requiring further investigation.

Instrumentation overhead

The ProcessorFuzz implementation reported low overhead for its Spike changes: 0.4% instrumentation overhead in terms of C++ lines of code and 0.15% runtime overhead.

Evaluated uses

In the ProcessorFuzz evaluation, Spike was used as the reference model for Rocket Core and BOOM Core correctness checking during fuzzing. The same study used a different reference model, Dromajo, for BlackParrot.

CITATIONS

5 sources
5 citations
[1] Spike is an open-source ISA simulator. ProcessorFuzz: Processor Fuzzing with Control and
[2] ProcessorFuzz extended Spike to store monitored CSR values and generate an extended ISA trace log. ProcessorFuzz: Processor Fuzzing with Control and
[3] ProcessorFuzz compares extended RTL trace logs with extended ISA trace logs, treating differences as potential processor-design bugs. ProcessorFuzz: Processor Fuzzing with Control and
[4] The reported Spike instrumentation overhead in ProcessorFuzz was 0.4% in C++ lines of code and 0.15% runtime overhead. ProcessorFuzz: Processor Fuzzing with Control and
[5] ProcessorFuzz used Spike as a reference model to verify correctness during fuzzing of Rocket Core and BOOM Core, while using Dromajo for BlackParrot. ProcessorFuzz: Processor Fuzzing with Control and