All simulation-based verification suffers from the issue that you can never run enough test vectors to exhaustively test the whole design, ...
All simulation-based verification suffers from the issue that you can
never run enough test vectors to exhaustively test the whole design, or
even any significant part of a complex design. One way to address this
issue is using constrained random stimulus. The use of random stimulus
brings two very significant benefits. Firstly, random stimulus is great
for uncovering unexpected bugs, because given enough time and resources
it can allow the entire state space of the design to be explored free
from the selective biases of a human test writer. Secondly, random
stimulus allows compute resources to be maximally utilised by running
parallel compute farms and overnight runs. Of course, pure random
stimulus would be nonsensical, so adding constraints to make random
stimulus legal is an important part of the verification process, and is
explicitly supported by SystemVerilog and UVM