User guide

24-82
SystemVerilog Testbench Constructs
A default constraint block can be defined externally (that is, in a
different file from the one in which the constraint block is
declared).
You can use ordering constraints in default blocks, but these
constraints will be treated as non-default constraints.
Overriding default constraints.
Default constraints are applied when they are not overridden by any
non-default constraints and contain at least one default variable.
Default variables are variables that are rand with rand mode ON
and part of the default constraint. VCS ignores default constraints
that do not have any default variables in it.
A non-default constraint must possess the following properties to
override a default constraint:
The constraint mode for the constraint block having a non-default
constraint must be ON, or the non-default constraint must be
inside a randomize-with constraint block.
Must have at least one default variable of the default constraint
block.
If the default variable is on the right-hand side of the guarded
constraint, the guard must be TRUE, irrespective of it having
random variables.
Must not be a ordering constraint.
The non-default constraint does not override the default constraint if
the default variable is in the guard of the non-default constraint.