User guide
21-62
OpenVera Native Testbench
Depending on the nature of constraints, and the number of calls to
randomize() made per class, one or the other solver might be more
suitable.
Automatic Solver Orchestration
As discussed before, VCS has two general purpose solvers. The user
can indicate a preferred solver choice by setting the
+vera_solver_mode option at runtime. In addition, there is a
specialized solver that applies to simple constraint sets.
The system is very adaptive in the selection of the solver, and use
the +vera_solver_mode setting is only interpreted as an initial
guideline.
The behavior of the system is:
1. +vera_solver_mode remains the only user control provided. This
setting will specify the preferred solver as either 1 or 2, which are
the modes for the two general-purpose solvers mentioned above.
2. If an analysis of the constraints reveals that the specified
constraints are better solved by the non-preferred solver, or by
the specialized solver for simple constraints mentioned above,
then the preferred solver setting is overridden. Thus, the initial
solver choice is determined.
3. If the current solver choice results in a timeout while solving the
constraints (timeout limits cannot be controlled by the user), then
the solver mode is switched. A timeout cannot occur with the
specialized solver, so the switched solver mode is either 1 or 2.
4. If the switched solver choice results in a timeout as well, then a
timeout is reported to the user.