Skip to content
STIMSMITH

STING

Tool

STING is a Synopsys bare-metal, software-driven test generator for RISC-V processor and SoC verification. It produces portable, self-checking constrained-random and directed stimulus that can be reused across simulation, emulation, FPGA prototyping, and silicon, and it is used as part of a hybrid RISC-V verification methodology alongside ImperasDV and ImperasTS.

First seen 5/25/2026
Last seen 9/30/2026
Evidence 6 chunks
Wiki v2

WIKI

Overview

STING is a bare-metal functional verification tool for RISC-V designs, developed for processor and SoC implementation verification. It generates constrained-random and directed tests whose stimulus is intended to run across simulation, ZeBu emulation, HAPS FPGA prototyping, and silicon. The generated programs are architecturally self-checking, which simplifies debugging in verification flows. [C1]

STING is positioned for RISC-V verification because the modular RISC-V ISA and its optional extensions increase verification complexity. The source material emphasizes that comprehensive RISC-V verification typically requires multiple stimulus techniques rather than either random or directed testing alone. [C2]

READ FULL ARTICLE →

NEIGHBORHOOD

1 nodes · 0 edges
graph · STING · depth=1

RELATIONSHIPS

17 connections
Portable Stimulus implements → 97% 3e
STING generates portable stimulus that runs across simulation, emulation, prototyping, and silicon.
Bare-Metal Test Generation implements → 99% 2e
STING is explicitly described as a bare-metal functional verification tool generating bare-metal tests.
Self-Checking Tests implements → 97% 2e
STING-generated tests are architecturally self-checking, simplifying debugging.
constrained-random test generation implements → 99% 2e
STING is a bare-metal generator that produces constrained-random test streams for RISC-V verification.
VCS ← uses 95% 2e
VCS executes STING-generated random tests as part of the verification flow.
ZeBu ← uses 95% 2e
STING-generated portable tests are executed on ZeBu emulation platform.
HAPS ← uses 95% 2e
STING-generated portable tests are executed on HAPS FPGA prototyping platform.
Hybrid Verification Methodology ← uses 97% 2e
The hybrid methodology uses STING for constrained-random test generation.
Hypervisor Extensions evaluates → 93% 1e
STING is particularly effective at stressing hypervisor extensions.
fence.i Instruction evaluates → 92% 1e
STING has exposed mishandling of the fence.i instruction in practice.
Floating-Point NaN evaluates → 91% 1e
STING has exposed floating-point NaN quirks during verification.
Cache Coherence Conflicts evaluates → 91% 1e
STING has exposed cache coherence conflicts during verification runs.
Page Table Walk evaluates → 93% 1e
STING has exposed deadlocks in page-table walks.
Stimulus Graph uses → 96% 1e
STING uses stimulus graphs to enable user control of scheduling of random and directed tests.
Privilege-Mode Transitions evaluates → 93% 1e
STING is particularly effective at stressing privilege levels where traditional flows may miss bugs.
Memory Protection evaluates → 93% 1e
STING stresses memory protection, an area where traditional flows may miss bugs.
CSR evaluates → 93% 1e
STING stresses CSRs as part of its verification capability.

CITATIONS

11 sources
11 citations — click to expand
[1] STING is a bare-metal functional verification tool for RISC-V designs that generates constrained-random and directed tests, with stimulus portable across simulation, emulation, FPGA prototyping, and silicon. RISC-V Test Generation: Random, Directed & Coverage
[2] Comprehensive RISC-V verification typically requires multiple stimulus techniques rather than either random or directed testing alone. RISC-V Test Generation: Random, Directed & Coverage
[3] STING produces C++-based random streams and ASM-style directed tests, built on a lightweight kernel, libraries, and device drivers, and includes a programming framework for developing directed tests. RISC-V Test Generation: Random, Directed & Coverage
[4] STING uses stimulus graphs to enable user control of the scheduling of both random and directed tests generated. RISC-V Test Generation: Random, Directed & Coverage
[5] STING is particularly effective at stressing privilege levels, memory protection, CSRs, and hypervisor extensions. RISC-V Test Generation: Random, Directed & Coverage
[6] STING has exposed issues such as deadlocks in page-table walks, mishandling of the RISC-V fence.i instruction, floating-point NaN quirks, and cache coherence conflicts. RISC-V Test Generation: Random, Directed & Coverage
[7] STING-generated programs are portable across simulation (VCS), emulation (ZeBu), FPGA prototypes (HAPS), and silicon. RISC-V Test Generation: Random, Directed & Coverage
[8] STING's portability enables a shift-left methodology in which tests developed during RTL bring-up remain valuable through later validation stages and silicon. RISC-V Test Generation: Random, Directed & Coverage
[9] A hybrid flow combines constrained-random sweeps using STING with ImperasFC functional coverage analysis and directed ImperasTS suites for coverage closure, with results merged in Verdi and failing cases replayed deterministically in VCS. RISC-V Test Generation: Random, Directed & Coverage
[10] Random stimulus with STING can accelerate coverage closure by uncovering unexpected behaviors, while directed tests improve convergence by targeting known coverage gaps in Sv39/Sv48 page table walks, MMU, PMP, and vector extensions. RISC-V Test Generation: Random, Directed & Coverage
[11] STING-generated tests are self-checking; the methodology pairs them with lock-step comparison against an ImperasDV reference model, and uses logged seeds and directed reruns for reproducibility across regression cycles. RISC-V Test Generation: Random, Directed & Coverage