Hardware Verification with C++
So what makes a person write a book? Insanity is a definite probability.
Another possibility is a strong desire to help. We are not special people. We
have worked in several companies, large and small, made mistakes, and
generally muddled through our work. There are many people in the industry
who are smarter than we are, and many coworkers who are more experienced.
We have been in the lab when we bring up the chips fresh from the fab, with
customers and sales breathing down our necks. We’ve been through software
bring-up and worked on drivers that had to work around bugs, er, features,
in producTIon chips.
What we feel makes us unique is our combined broad experience from both
the software and hardware worlds. Mike has over 20 years of experience from
the software world that he applies in this book to hardware verificaTIon.
Robert has over 12 years of experience with hardware verificaTIon, with a
focus on environments and methodology.
So what we bring to the task of funcTIonal verification is over three decades
of combined experience, from design, verification, software development,
and management. It is our experiences that speak in this handbook. It is our
desire that others might learn and benefit from these experiences.
We have had heated discussions over each line of code in this book and in
our open-source libraries. We rarely agree at first, but by having to argue our
cases we arrive at what we feel are smart, efficient, flexible, and simple
solutions. Most of these we have “borrowed” from the software industry but
have applied to the field of verification.
We believe that the verification industry can benefit from the lessons learned
from the software domain. By using the industry-standard C++ language, the
verification domain can adapt techniques and code from over twenty calendar
years of software effort, the scope of which is nothing short of stunning.
Many brilliant people have paved the way in the software field. Although the
field of verification is much younger, we could benefit greatly from listening,
learning, and adapting mature programming techniques to the production of
products of the highest quality.
So why did we include open-source software with the handbook? Open-source
software is a key to uniting and increasing the productivity of our industry.There is almost no successful closed-source (“hard macro”) intellectual
property (IP), for a good reason. Without the ability to look at the source
and edit as necessary, the task is much more difficult and the chances for
success are slim.
You can find the open-source software and the examples used in this
handbook on the accompanying CD. We’ve also included a simulator,
which can be used for 30 days. The installer should run automatically,
but in case it does not on your system, you can find the code at the top
level of the CD.
The writing of this handbook has been a great and interesting, if slightly
tiring, ride for us. We hope that the reading—and better yet, the application—
of the basic principles inside will be of value for you.