CRAVE - Constrained RAndom Verification Environment
NEW: Preview of CRAVE integration in UVM-SystemC available here
CRAVE is a new library for constrained random stimuli generation. The syntax of CRAVE has been designed to naturally fit with C++ and SystemC.
CRAVE is freely available under the MIT license.
- 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.
Notification of updates
Please consider subscribing to our mailing list.
NEW: A pre-release version of CRAVE 2.0 is available together with a preview of CRAVE integration in UVM-SystemC uvm-crave-0.9-alpha.tar.gz(source)
Old version: CRAVE Bundle Version 1, from November 28th, 2011 crave-bundle-2011-11-28.tar.bz2(source)
- Boosting SystemC-based Testbenches with Modern C++ and Coverage-Driven Generation (DVCon Europe 2015)
- CRAVE 2.0: The Next Generation Constrained Random Stimuli Generator for SystemC (DVCon Europe 2014)
- CRAVE: An Advanced Constrained RAndom Verification Environment for SystemC (SoC 2012)
- Industrial application:
The System Verification Methodology for Advanced TLM Verification (CODES+ISSS 2012)
- ESCUG Slides - Slides presented at 24th European SystemC User's Group Meeting
- metaSMT - The solver framework used in CRAVE
Some features of CRAVE are based on the following publications: