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

This part of the handbook explores the authors choice of C++ for verification. In the next chapter we take a brief look at the other choices available, and then look at the benefits and drawbacks of using C++.
Next, we weave three different themes together: the evolution of programming in general and C++ in particular, the creation of object-oriented programming (OOP) techniques, and the evolution of functional verification. The reason we chose to look at these three themes is to show why OOP exists and how it can be harnessed to benefit verification.
A major theme of this handbook is to build a verification system in layers. C++ in general, and OOP techniques specifically, are well-suited to this approach. In the last chapter of this section, we ll look at a canonical verification system by using a standard approach to building verification components.
A language is a dialect with an army.
Old proverb
We, in the functional verification trade, write code for a living. Well, we do that, and also puzzle over code that has been written and that has yet to be written. Because functional verification is a task that only gets more complex as designs become more complex, the language we work in determines how well we can cope with this increasing complexity.
The authors believe that C++ is the most appropriate choice for functional verification, but as with...