Skip to content
STIMSMITH

Portable Stimulus

Concept WIKI v1 · 5/26/2026

Portable Stimulus, in the cited RISC-V verification flow, refers to generated tests that can execute across multiple validation platforms such as simulation, emulation, FPGA prototyping, and silicon. The evidence presents STING-generated C++ random streams and ASM-style directed tests as portable, architecturally self-checking stimulus that supports shift-left verification and reuse across the verification lifecycle.

Overview

Portable Stimulus is a verification concept in which generated tests remain usable across multiple execution targets. In the RISC-V verification flow described in the evidence, portable stimulus is illustrated by STING-generated C++ random streams and ASM-style directed tests that execute across simulation, emulation, FPGA prototypes, and silicon. [C1]

This portability supports a shift-left methodology: tests created during RTL bring-up can remain useful in later validation stages and even in silicon. [C2]

Role in RISC-V verification

RISC-V processor verification is challenging because the ISA is modular and includes many optional extensions. The cited flow argues that comprehensive coverage requires more than one verification or comparison methodology and more than one stimulus technique. [C3]

Portable stimulus is used as part of a hybrid strategy that combines constrained-random stimulus for broad exploration with directed suites for precise closure. Random testing can uncover unexpected behavior, while directed tests systematically target features such as privilege-mode transitions, page-table walks, and memory protection. [C4]

STING as an example generator

The evidence identifies STING as a bare-metal functional verification tool for RISC-V. It generates constrained-random and directed tests and produces portable, self-checking programs that can run across simulation, emulation, FPGA prototypes, and silicon. [C5]

STING-generated programs are described as architecturally self-checking. They are portable across simulation, ZeBu emulation, HAPS FPGA prototypes, and silicon, which makes them reusable across different validation stages. [C6]

Execution platforms

The cited flow explicitly connects portable stimulus to the following execution targets:

  • Simulation, including RTL simulation environments. [C1]
  • ZeBu emulation, used for hardware-assisted verification of long software-driven tests, OS bring-up, and large-scale workloads. [C7]
  • HAPS FPGA prototyping, used for pre-silicon software development, performance validation, and extended regression cycles. [C8]
  • Silicon, enabling tests developed earlier to continue providing value after fabrication. [C2]

Verification benefits

The evidence attributes several benefits to portable stimulus in the RISC-V verification lifecycle:

  • Reuse across stages: Tests developed during RTL bring-up remain valuable through later validation and silicon. [C2]
  • Shift-left enablement: Portable tests allow validation activity to begin earlier and carry forward into emulation, prototyping, and silicon. [C2]
  • Debug support: Portable, self-checking tests can be combined with lock-step comparison in ImperasDV to identify mismatches immediately and simplify root-cause analysis. [C9]
  • Scalability and reproducibility: The cited methodology scales from simple embedded cores to complex multi-hart systems, with logged seeds and directed reruns supporting reproducible regressions. [C10]

Relationship to coverage closure

Portable stimulus contributes to coverage closure when used with both random and directed test generation. The cited flow states that constrained-random stimulus from STING uncovers unexpected behavior, while directed suites such as ImperasTS provide structured compliance and feature coverage. Together, they accelerate coverage closure and reduce late bug escapes. [C11]

The flow also describes integration with coverage and debug infrastructure: ImperasFC/SC results can be merged into Verdi, and failing cases can be replayed deterministically in VCS. [C12]

CITATIONS

12 sources
12 citations
[1] Portable stimulus is illustrated by STING-generated C++ random streams and ASM-style directed tests that execute across simulation, emulation, prototyping, and silicon. source
[2] Portability enables shift-left verification because tests developed during RTL bring-up remain useful in later validation stages and silicon. source
[3] RISC-V verification complexity is increased by the ISA's modular design and optional extensions, and comprehensive coverage requires multiple stimulus techniques. source
[4] A hybrid strategy combines constrained-random stimulus for breadth with directed suites for precise closure; random testing can miss features such as privilege transitions, page-table walks, and memory protection. source
[5] STING is a bare-metal RISC-V verification tool that generates constrained-random and directed tests and produces portable, self-checking programs. source
[6] STING-generated programs are architecturally self-checking and portable across simulation, ZeBu emulation, HAPS FPGA prototypes, and silicon. source
[7] ZeBu emulation is used for hardware-assisted verification of long software-driven tests, OS bring-up, and large-scale workloads. source
[8] HAPS prototyping is an FPGA-based prototyping solution for pre-silicon software development, performance validation, and extended regression cycles. source
[9] Architecturally self-checking tests combined with lock-step compare in ImperasDV help identify mismatches immediately and simplify root-cause analysis. source
[10] The methodology scales from simple embedded cores to complex multi-hart systems, while logged seeds and directed reruns support reproducible regression cycles. source
[11] Constrained-random stimulus from STING uncovers unexpected behavior, while ImperasTS directed suites provide structured compliance and feature coverage; together they accelerate coverage closure and reduce late bug escapes. source
[12] Coverage and debug integration can merge ImperasFC/SC results into Verdi and replay failing cases deterministically in VCS. source