Constrained Random Stimulus
ConceptConstrained random stimulus is a design-verification technique in which pseudo-random input generation is steered through constraints and coverage feedback so that hard-to-hit corner cases of a digital design are exercised. It sits between pure random stimulus (theoretically complete but practically too slow for complex designs) and fully directed stimulus, and is the dominant stimulus-generation paradigm in modern SystemVerilog/UVM testbenches. The technique is widely used across processor and SoC IP verification, but its effectiveness depends on extensive human expertise to craft constraints and coverage models, and it has been a target for machine-learning-driven improvements (including LLM/LLM-agent-assisted testbench synthesis tools such as HAVEN, which trigger predefined constrained-random sequence patterns and then layer LLM-generated targeted sequences on top to close remaining coverage gaps).
WIKI
Overview
Constrained random stimulus is a ubiquitous method for stimulating a design's functionality and ensuring it meets expectations. It extends pure random stimulus by steering the Design Verification (DV) environment so that hard-to-hit combinations can be generated when needed, rather than relying on the (impractical) hope that a fully random sweep will hit every interesting state. [C1][C2]
Motivation and role in design verification
In theory, random stimulus can exercise all possible input combinations given enough simulation time. In practice, as integrated circuits grow more complex, a purely random approach has difficulty exercising all possible combinations in a timely fashion, so the DV environment must be steered toward hard-to-hit combinations. This steerability is what gives the constrained-random approach its power. [C1][C2]
The same approach is used to generate the very large numbers of pseudo-random tests that CPU and SoC verification flows depend on. The RISC-V processor verification survey describes a typical CPU hardware DV flow in which, after reusable sub-circuit tests are obtained, a huge number of pseudo-random tests are generated and run until functional and code coverage metrics are reached. Coverage models and covergroups are paired with constrained random stimulus to demonstrate that the test intent has been adequately met. [C3][C4]
NEIGHBORHOOD
No graph connections found for this entity yet. It may appear in future ingestion runs.
explore full graph →