Description
CRAVE is a library for constrained random stimuli generation. The syntax of CRAVE has been designed to naturally fit with C++ and SystemC.
Where?
We have contributed CRAVE to the Accellera Systems Initiative and it is further developed by the Verification Working Group (VWG). Hence, CRAVE can be found on the official Accellera GitHub here.
Features
- New constraint specification API
A very intuitive and user-friendly Application Programming Interface (API)
to specify random variables and random objects has been developed.
- Dynamic constraints and data structures
Constraints can be controlled dynamically at run-time. Moreover,
constraints for elements of dynamic data structures like e.g. STL vectors
can be specified.
- Improved usability
Inline constraints can be formulated and changed incrementally at run-time.
- Parallel constraint-solving
BDD-based and SAT/SMT-based techniques have been integrated for
constraint-solving. A portfolio approach is used to enable very fast
generation of constraint solutions.