Overview
In simulation-based hardware verification, stimulus generation refers to producing inputs that are applied to a design under test (DUT) so that the resulting behavior can be observed and checked against expectations. The cited evidence describes the prevailing approach as generating stimuli, applying those stimuli to the design, and using simulation-derived metrics to assess verification progress. In directed simulation, explicitly specified stimulus patterns written by verification engineers stimulate specific scenarios; random simulation instead generates random stimuli such as random addresses or data for bus communication. [C1][C2]
Forms of stimuli
Stimuli may take several forms depending on the design under test. The evidence identifies bit vectors applied to design input ports, programs loaded into program memory, and, more generally, random addresses, data, and other inputs needed to exercise bus communication and other interfaces. In modern LLM-based hardware verification, stimuli are represented as testbenches (e.g., Verilog testbenches) that drive the DUT. [C2][C3]
Constraint-based random simulation
The evidence describes constrained-random simulation as a paradigm in which stimuli are generated subject to a set of declarative constraints. Generators used in this paradigm include the SystemC Verification (SCV) library and constraint solvers embedded in commercial and research flows. Constraint solvers in this setting include ATPG-based solvers for smart random simulation and word-level constraint engines that combine Boolean SAT techniques with decision diagrams. Stimulus generation in this regime is closely related to constraint satisfaction problems (CSP): a generator solves a CSP whose solution is the input vector or sequence applied to the design. [C4]
Graph-based CSP for stimulus generation
When verifying complex mechanisms such as the hardware address translation path in modern microprocessors, the constraint structure is naturally directed and acyclic, since the translation process passes through a sequence of dependent steps. The cited evidence describes a framework called graph-based constraint satisfaction problems (GCSP) that combines a directed graph with a CSP, where each variable and constraint of the CSP is linked to a particular node or edge of the graph. A solution to the problem is a path in the graph such that all constraints defined along that path are satisfied. The algorithm for solving GCSPs is based on conditional CSP, and the technology was used to verify the memory management units of several industrial microprocessors. [C5]
Coverage-driven stimulus generation
The evidence describes coverage-driven stimulus generation in which the generator adapts its behavior using coverage feedback. In classical coverage-guided flows, coverage feedback from simulation of the design under verification is used to alter the generator's parameters—e.g., dynamically altering constraints of a pseudorandom generator using a recurrent neural network that receives the coverage signal. In the LLM setting, the evidence introduces Coverage-Driven Direct Preference Optimization (CD-DPO), a fine-tuning method that integrates quantitative coverage feedback directly into the optimization objective, guiding the model toward generating stimuli that maximize verification coverage. The training data, called PairaNet, pairs high- and low-quality testbenches labeled using simulation-derived coverage metrics. [C6][C7]
Constraint contradictions in random simulation
A recurring practical obstacle in constrained-random stimulus generation is that the constraint set can be over-constrained, yielding no solutions and stalling the generator. The cited evidence describes an automatic technique for analyzing such contradictions: after reformulating the overall constraint and building an abstraction, self-contradictory constraints and non-relevant constraints are identified, and then for the remaining small set, all minimal reasons for the contradiction are computed and presented to the verification engineer. Industrial experiments at the AMD Dresden Design Center demonstrated significant reductions in constraint contradiction debug time using this analysis. [C8]
Demonstrated uses and reported effects
Reported experimental results across the cited evidence indicate several outcomes:
- Coverage closure was reached much sooner and a small set of high-coverage stimuli could be isolated for use in regression tests on processor designs from Codasip. [C9]
- Graph-based CSP stimulus generation was used to verify the memory management units of several industrial microprocessors. [C5]
- An LLM-based framework trained with CD-DPO outperformed open-source and commercial baselines on the CVDP CID12 benchmark, achieving up to 77.27% improvement in code coverage. [C7]
- Automatic contradiction analysis significantly reduced debug time in a real-life SystemC-based verification environment at AMD Dresden Design Center. [C8]
Related techniques and tooling
The cited evidence explicitly connects stimulus generation to constraint satisfaction problems (CSP), including graph-based and conditional variants, and to address translation as a representative target for which sophisticated stimulus generation tools are required. Test generation tools implement stimulus generation across these flows. [C4][C5]