Constrained Randomization
ConceptConstrained randomization is a verification methodology in which random stimuli are generated subject to user-defined constraints, allowing tests to focus on interesting input regions while still exercising a broad design space. It is most commonly associated with SystemVerilog's rand variables and constraint blocks, where the randomize() method produces values that satisfy a constraint expression. The technique is foundational to modern functional verification flows, including UVM, and is being progressively implemented in open-source simulators such as Verilator via translation of SystemVerilog constraints to SMT-LIB2.
WIKI
Constrained Randomization
Overview
Constrained randomization is a stimulus-generation methodology used in functional verification of digital designs. Instead of applying purely unconstrained random values to a design under test (DUT), the verification engineer declares a set of variables as random (rand in SystemVerilog) and writes constraints that restrict the legal values those variables may take. Calling randomize() then produces values that satisfy every constraint, giving the testbench random but valid stimuli [1]. The technique concentrates simulation effort on inputs considered useful and interesting, allowing verification regressions to converge faster than naive random testing [1].
NEIGHBORHOOD
No graph connections found for this entity yet. It may appear in future ingestion runs.
explore full graph →