Skip to content
STIMSMITH

Golden Model

Concept

A golden model (or reference model) is a high-level software model of a processor or design used as the expected-behavior baseline during verification. In co-simulation and hardware-fuzzing flows, architectural state computed by the golden model — most commonly an ISA-level simulation result — is cross-checked against the design-under-test (DUT). The Spike and Dromajo simulators are common RISC-V instances. Golden models are widely used because randomly generated tests are not naturally self-checking, but the cost of building and maintaining them has motivated 'golden-free' verification methods in adjacent areas such as hardware-Trojan detection.

First seen 5/27/2026
Last seen 6/9/2026
Evidence 6 chunks
Wiki v3

WIKI

Definition

A golden model (also called a reference model) is a high-level software model of a processor or design used as the expected-behavior baseline during verification. It is characterized as fast and uncomplicated, omitting implementation details such as pipeline depth, buffer sizes, or branch prediction, and updating architectural state at instruction-level granularity rather than cycle-by-cycle (Kabylkas et al., MICRO-54, 2021; survey on hardware fuzzing, Boston University).

In the RTL-fuzzing literature, the golden model is explicitly described as an ISA-level simulation result used for differential comparison: "DIFUZZRTL keeps comparing an execution result of an RTL design with that of a golden model (i.e., an ISA-level simulation result), thus detecting the bugs at ISA level." (Hur et al., DIFUZZRTL)

READ FULL ARTICLE →

NEIGHBORHOOD

3 nodes · 3 edges
graph · golden model · depth=1

RELATIONSHIPS

6 connections
Dromajo ← implements 100% 4e
Dromajo acts as the golden model in the co-simulation framework.
DiFuzzRTL ← uses 100% 2e
DIFUZZRTL uses an ISA-level golden model to compare against RTL simulation results for bug detection.
Differential Fuzzing ← uses 100% 2e
Differential fuzzing uses a golden model to compare against RTL execution results.
Co-simulation ← uses 100% 1e
Co-simulation compares the DUT against the golden model.
ProcessorFuzz ← uses 90% 1e
ProcessorFuzz uses ISA simulator as golden model for comparison
spike ← implements 1e
Spike acts as the golden model reference for verifying RISC-V core execution.

CITATIONS

15 sources
15 citations — click to expand
[1] A golden model is an ISA-level simulation result used for differential comparison against RTL execution. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[2] Differential testing with a golden model is used in RTL verification and inspired DIFUZZRTL. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[3] DIFUZZRTL combines coverage-guided fuzzing (dynamic testing) with differential testing against a golden model to identify RTL vulnerabilities at the ISA level. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[4] DIFUZZRTL is reported as having identified the first and only CVE vulnerabilities in any RISC-V cores, including a BOOM bug analogous to the Pentium FDIV defect. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[5] A golden model is a high-level, fast software model that updates architectural state at instruction-level granularity, omitting microarchitectural details such as pipeline depth, buffer sizes, and branch prediction. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[6] In co-simulation, the golden model and the DUT run the same code and architectural state is compared at any given moment; mismatches are investigated to uncover bugs. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[7] Randomly generated verification tests are not naturally self-checking; comparing DUT execution against a golden model yields automatic pass/fail behavior. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[8] End-of-simulation comparison dumps and compares register-file and memory state after running the same code on both models. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[9] End-of-simulation comparison has two drawbacks: buggy architectural state can be overwritten by later correct execution, and debugging may begin far from the original point of divergence. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[10] Immediate comparison halts execution close to the divergence and reports the responsible stimulus; interrupt handling requires messaging from the RTL to the emulator so the model follows the interrupt-driven path. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[11] The golden model is concretely an ISA simulator that computes architectural register and memory state after each instruction, while the RTL simulator is cycle-accurate; the fuzzer cross-checks trace logs from both. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[12] Spike is the RISC-V ISA simulator used as a golden model in the ElectraIC Advanced Verification Suite (EAVS); EAVS was demonstrated on the cv32e40p core. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[13] Dromajo is an RV64GC emulator used as a co-simulation golden model; integrating it into verification of CVA6, BlackParrot, and BOOM found nine bugs, and combining it with the Logic Fuzzer increased the count to thirteen. DIFUZZRTL: Differential Fuzz Testing to Find RTL Bugs
[14] Many hardware-Trojan detection methods rely on golden models and detailed circuit specifications, motivating golden-free alternatives such as a formal property-checking method for non-interfering accelerators at RTL. A Golden-Free Formal Method for Trojan Detection in Non-Interfering Accelerators
[15] A Programmable Sensor Array (PSA) approach to run-time hardware-Trojan detection is described as golden-model free and was demonstrated on an AES-128 test chip with four AES Trojans. Programmable EM Sensor Array for Golden-Model Free Run-time Trojan Detection and Localization