There are many of them these days. They used to be multi-millionaires but you know how these things go. Now, before you get too excited to find out the latest scoop on the yacht sailing, private jet flying, Davos skiing crowd, remember that I don’t typically hang out with Larry, Steve or Mark, I hang out with my friend Coverage. So this is not about the folks on the cover of Forbes Magazine, it’s about our favorite chips and the billion transistors they pack these days. More precisely it’s about verifying that a billion switches turning on and off, somehow harmoniously join forces to perform billions of instructions per second, transfer the proverbial Library of Congress across the country in minutes or make your picture on the iPad look better than the reality. How do we make sure that these ever growing billionaires do what they’re supposed to without collapsing under the enormous amount of verification data they generate?
These days it seems that you need to have a plan for everything. You need short, medium and long-term plans, you need backup and alternative plans, you need business and execution plans, you need a plan to eat (“I already have a dinner plan”), you need a plan to relax (“I’m working on my vacation plan”), and you even need a plan if you don’t want to do anything (“I plan to do nothing this afternoon”). Clearly, without plans, the world as we know it will cease to exist so I had to ask my friend Coverage, what his thoughts were on the whole planning business. To my surprise he got very agitated. “Planning and Coverage go hand in hand”, he said, “but they are not synonymous and yet people often use them interchangeably”. “Verification needs a plan, to do proper verification, you need coverage, to do proper coverage, you need to plan for it, and once you have the plan, you need to make sure you cover it, but coverage and the plan are not one and the same”. With that, he grumbled away, leaving me dazed and confused. I made a plan to revisit the topic once the dust of excessive wisdom crashing on my head settled.
The few of you who regularly read this blog, may have wondered what happened to my friend Coverage in the past 3 months. It turns out he has been on a worldwide quest to collect wisdom from verification experts near and far. The other day I bumped into him and he was clearly troubled. After some prodding he grudgingly admitted to his concerns. “People are amassing coverage data as if it was an inflation hedge”, he blurted. “Soon it will overwhelm them to the point where it will be difficult to extract useful information from it and they will start ignoring it”.
After a surprisingly long period of sunny skies, the clouds have returned to the Bay Area. Now, although some say that predicting when a chip will be ready for tape-out is akin to forecasting the next storm, I have not decided to subtly shift the topic of this blog to the exciting world of meteorology. Instead, I wanted to explore the nexus of coverage, the kind my friend is so enthused with, and cloud computing. If you haven’t yet heard about cloud computing, you’re probably reading this blog by accident but that’s ok, my friend and I are highly socially predisposed and we’re always happy to meet new people. There are many significantly better descriptions of what cloud computing really is but I will offer my own to keep things simple. According to my irrelevant opinion, cloud computing is a combination of hardware and software resources provided as a service to some end consumer. The cloud part comes from the fact that you don’t really have to know or care about where these services reside or come from, kind of like the clouds, you don’t know where they come from, where they’ll go next, or how high up they are, only whether they provide shade, rain, that sort of thing. In any case, cloud computing is part of our new reality, so I asked my friend whether he thinks there is any potential symbiosis between the lofty clouds and our daily challenges. The answer came with lightening speed and in a thunderous voice.
It is once again that time of the year when I panic. What gifts, for whom, do they even need them, what if I don’t, etc. I am naturally always on the lookout for some good advice and so I asked my friend to share some wisdom. “I give everybody the gift of coverage of course”, he replied slightly raising his eyebrow as if to remind me to refrain from asking the obvious. “Everybody needs it even if they don’t know it yet, and if they don’t get it, there will always be a hole in their lives.” I nodded in thoughtful agreement while at the same wondering whether the gifts of coverage end up piling up in the equivalent of my garage somewhere, or whether people have the patience to go through the many levels of wrapping to extract its true value. I was still thinking about this when I entered the UPS office where I had to pick up an undelivered package and I somewhat irritated noticed that there was a line at the counter. Of course, it is December and shipping companies are in high gear, kind of like computers in the month before tape-out. They need to collect all the packages, sort them and then distribute them to the appropriate destination. Similarly, coverage data needs to be collected, merged, processed and reports sent to the appropriate stakeholders. Just like processing the incoming packages needs to be done simultaneously at multiple locations, coverage data from the many regressions runs needs to be merged in parallel to prevent the entire verification process to slow down to a snail’s speed (no punt to snail mail maliciously intended). So while the speed with which coverage data is produced retains its critical importance, the speed with which the coverage data is collected and merged should not be overlooked lest it becomes the frightening bottleneck. The key of course is to efficiently parallelize the process so this season when you share my friend’s gift, don’t forget to ask your shipping company woops I mean Verification vendor, how to do it in parallel!
You may remember the suggestive metaphor of a butterfly flapping its wings in California and causing a tornado on the other side of the globe. No, I am not attempting to apply chaos theory to coverage (although… ;-)), I am merely picking up where I left off last time and make a case that the various parts that collectively define the coverage problem are tightly connected and that the decisions we take for each part will inevitably have a profound effect on the others. Let’s take a look at some of these connections and the potential pitfalls if we ignore them.
I once had lunch with the CEO of a start-up and asked him what skills he thought I needed to acquire if I wanted to run my own company. He quickly replied I needed to understand Marketing. Now if you come from the Engineering side of our world as I do, your reaction is probably similar to mine at the time: “What?” I thought, “is getting ready for DAC really that important??”. In case this is indeed what you’re thinking, here are 2 must-reads: “Marketing High Technology” by William Davidow and “Crossing the Chasm” by Geoffrey Moore. It turns out that there is a lot more to Marketing than meets the ignorant eye. Among the many interesting concepts, the one that stuck with me is called in one way or another, “The Whole Product”. Its beauty lies, as it often does, in its simplicity, and goes something like this: real success comes from delivering to the market a Whole Product and not just a piece of technology. It is pretty common sense, you don’t just put out a chip or a piece of software and hope somebody will figure out what to do with them, you either build (or make sure somebody else does) complete systems around the chip or integrate your software within existing flows, you strike alliances with other software and/or hardware providers, you build a support infrastructure, delivery channels, prepare documents, trainings, etc. etc. You get the idea and if you don’t, try typing iPhone in your search bar.