Hardware Verification with C++: A Practitioner's Handbook

The previous part of the handbook was a high-level look at C++ and how to architect a verification system by using layers. Now we focus on a specific implementation of such a system.
This part of the handbook introduces two open-source libraries, called Teal and Truss, that together implement a verification environment that uses C++. The authors and others have used these libraries at several companies to verify real projects.
The libraries are free and open source because the authors feel strongly that this is the only way to unite and move the industry forward. Locking up people s infrastructure is not the way to encourage innovation and standardization both of which are needed if the verification industry is to improve.
Consequently, you ll find no simulator-company bias in these libraries. These libraries work on all major simulators.
In this part we discuss the following:
Teal, a C++-to-HDL interface that enables C++ for verification
Truss, a layered verification framework that defines roles and responsibilities
How to use Teal and Truss to build a verification system
A first example, showing how all the parts we talk about fit together
Coming together is a beginning. Keeping together is progress. Working together is success.
Henry Ford
Building a verification system is a daunting task, but build we must. That is why we use the technique of layering, to break the problem down. By starting...