Constrained Random Verification
TechniqueConstrained Random Verification (CRV) is a constrained-random stimulus-generation technique used in hardware design verification, in which random inputs are sampled subject to protocol or design constraints so that only legal actions are produced. The provided evidence portrays CRV as a baseline technique in chip-design verification studies (sampling uniformly over legal actions per cycle, enforcing legality by construction, and used within coverage-driven simulation flows such as UVM-based verification and RISC-V instruction stream generators like riscv-dv), as a conventional method whose coverage limitations motivate newer approaches such as coverage-guided fuzzing and reinforcement-learning-based stimulus generation, and as the subject of dedicated RISC-V verification studies. New evidence also documents a broader landscape of uniformity-aware CRV samplers, including SAT-witness generators that adapt MCMC, BDD, hashing, and interval-propagation techniques to constrained-random verification, with heuristic variants preserving scalability but sacrificing theoretical guarantees, and PyUVM/PyVSC-based Python verification environments targeting constrained randomization and functional coverage.
WIKI
Constrained Random Verification
Overview
Constrained Random Verification (CRV) is a constrained-random or constraint-based testcase-generation technique used in hardware design verification. In the evidence available, CRV is described as a stimulus generator that "samples uniformly over the subset of legal actions at each cycle, modeling typical constrained-random stimulus," and is used as one of several compared stimulus-generation methods in recent chip-verification studies. [crv-stimulusrl]