Posted by Alex Seibulescu on November 9, 2010
Halloween and Elections just zoomed by so naturally they were the focal point of the conversation I had the other day with my friend Coverage. First, I asked him whether he applies his expertise to teach kids how to strategize the candy collection process. I figured trick-or-treating has enough similarities with hunting for bugs: the candies are the bugs, the kids are the verification engineers (pardon the analogy) and the kids want to collect as many candies as possible. Since not everybody in the neighborhood may be inclined to treat, the kids need to come up with some good coverage points to make sure they hit the houses that are most generous with their candy. Pretty straightforward I thought however, the frown on my friend’s face was a clear indication that I didn’t exactly hit the nail on the head. “Verification”, he said “is a marathon, not a sprint, it’s not about going out one night and hitting the bug jackpot”. He continued to explain that it is more like Halloween lasted for many months and although the goal was still to collect as many candies as you can before the time is up, scaling the process down to a couple of hours won’t paint the correct picture nor will it teach us what paint brushes to use. Ideally, he reasoned, one would design and apply coverage based candy collection in such a way that it not only maximizes the total quantity of candies but also provides a relatively constant stream of candies over the life of the collection process. Bug-overload and sugar-overload are nasty beasts to tame so there’s no need to rush the coverage driven attack plan. When to start looking at coverage is something that is sadly often overlooked but important nevertheless in the quest for an efficient verification strategy. After all, knocking on a few neighbor’s doors will provide enough candies to get your kids started and similarly, finding the first bug load does not require collecting coverage numbers.
OK, let’s move on to Election Day, and no, my friend and I did not discuss Election Coverage, we talked about a different kind of coverage. Ever wondered why before elections when you open the TV, they show most of the candidates in diners? It is because diners are excellent coverage points for voters. Candidates want to collect as many votes as possible before tape-out, sorry election, and they want to hit the places where they maximize their chances for finding the voters that could be swayed to change their vote. Sorry folks but we’re going to pretend the voters are bugs, just for allegorical purposes, this blog is definitely not trying to make a political statement :-). The kind of bugs you’re looking for varies, for instance if you’re a Republican candidate, you want to find bugs that are on the fence, Independent bugs, mild Democratic bugs, etc. but the point is that if you want to efficiently scour for votes, you need to set up your cover targets at the key crossroads of the various neighborhoods in your district. Similarly, defining your coverage points on the key intersections of simulation paths and hitting them will have a good potential of bringing out some bugs from the shadows. This may sound easy but alas, diners are not the only cover points you need to worry about, there are ads, town hall meetings, mail-ins, etc. sadly, the cost of elections just as the cost of verification is only going up! Voters and bugs get more sophisticated by the day, their number is on the rise so there are many voters to convince and many bugs to catch. My advice, get my friend involved in your campaign and come Election Day, you too could be a winner.
"Coverage is by now pervasive in most verification flows but has in the modest opinion of this blogger, yet to reach its full potential. Although I have spent most of my 18 years in EDA (ouch!) on the R&D side, I have always been a good listener to our customers' concerns. My hope is that this blog will be an informal venue for all of us to explore how to push the benefits of Coverage and related methodologies to new levels" —Alex Seibulescu