Programmable Logic DesignLine Blog
Hardware Verification with C++
Clive Maxfield
2/12/2007 2:52 PM EST
Here's another item of trivia – although I love technology, I tend not to read many technical books these days, because most of them bore my socks off. I mean, really, have you seen some of the books out there? It's like the publishers go out of their way to say "what is the most boring font we can use and how can we present the material so as to make it hard to read?" Meanwhile, the authors of technical books almost invariably discard their sense of humor (and any semblance of grammar) as they start to write their Magnum Opus.
Thus, I was very pleasantly surprised when I spent this past weekend curled up with a book titled Hardware Verification with C++ (A Practitioner's Handbook) by Mike Mintz and Robert Ekendahl. Published by Springer (ISBN: 0-387-25543-5), this little rapscallion is a gem. Quite apart from anything else, the authors write with an easy-going style that makes the book a pleasure to read (any technical book that includes quotes from The Hitchhikers Guide to The Galaxy immediately attracts my interest). Also, the layout and ordering, the use of section titles, and so forth make the book very accessible.
But the real reason I like this little scamp is that it really teaches you something without making your brain ache. The authors are proponents of C++ and Object-Oriented Programming (OOP), but they don't just stand around beating a drum "accentuating the positive and eliminating the negative." Instead, they walk us through the pros and cons (benefits and drawbacks) of various languages in the context of verification so that we can make informed decisions.
I've also come to realize how valuable it is to have two authors collaborate on a book like this. First you double the amount of experience being brought into play (Mike has more than 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). As the authors note, they had heated discussions over each line of code in the book, and the results are apparent in that all of the code that made it through is actually useful and makes sense.
The book itself comprises 16 chapters divided into four main sections:
- Part 1: C++ and Verification (the Why and How)
- Part 2: An Open-Source Environment with C++
- Part 3: Using OOP for Verification (Best Practices)
- Part 4: Examples (Putting It All Together)
What really sets this book apart to my mind is that it wasn't written by two academics waffling on endlessly about theory that is almost impossible to put into practice in the real world. Instead, it is obvious that this tome was written by engineers slaving away in the trenches who actually know what they are talking about and can explain it in ways we can all understand.
Anyone can write a book. Very few people can write a good book. Mike and Robert are firmly established in this latter category. In a nutshell, I learned more about verifying hardware using C++ in one weekend with this book than I have in the last few years!
FYI Mike and Robert have a verification website at www.trusster.com where you'll find all sorts of interesting "stuff" (including the latest and greatest versions of the code referenced in their book).
Questions? Comments? Feel free to email me – Clive "Max" Maxfield – at max@techbites.com). And, of course, if you haven't already done so, don't forget to Sign Up for our weekly Programmable Logic DesignLine Newsletter.




