At the risk of dating myself—oops, it is too late, I already did so last August while talking about display density innovation—I will use a metaphor from a nineteen eighties movie to illustrate the power of calculated messages.
Sometimes you come across a feature, or a product, that deserves the term magical. The late Steve Jobs used it when introducing the iPad in January 2010. [Sorry I only found an iTunes link for the official footage.] Some people think his comment was over the top, but I think he truly believed it. When I used an iPad in an Apple Store for the first time, I could sense what he meant. At that moment, he got me, and I am truly a fan, if you have not realized it by now. For modern innovations like high precision, useful touch interfaces on smartphones, magic really did happen; at least at the time when those products hit the market. By now we are all used to it, and we have stopped appreciating the magic of devices using iOS and Android, although they only hit the market in 2007 and 2008 respectively—a mere seven and eight years ago!
In 1986, the movie Highlander was a big hit (at least in Europe), in particular with adolescent males. Although it is somewhat of a fantasy movie, which I typically cannot stand, I must admit I liked this one at the time. I’m not sure what I would think if I saw it today for the first time. I will find out once my kids watch it with me some day—and if I am not too forgetful, I’ll report back on this channel.
The gist of the movie is that there are these magical guys, stemming from the Scottish Highlands who are immortal. This immortality however, is a curse rather than a blessing. As we follow the main characters through the centuries, we discover that, for some odd reason, all Highlanders need to kill each other. Their motto is: There can be only one! So, our hero kills the other Highlanders, with a sword nonetheless, and even in the 20th century, if I recall correctly. Some of his opponents are also acting this way. The group is reduced over time until there are only two Highlanders left. The last one standing will become a mere mortal and shed himself of the curse of immortality.
As we have the advantage of being mortal already, we do not have to go through all this bloodshed. However, it would be great to have a little bit of pure magic at our disposal. And I am happy to say that Cadence can give you some. As I mentioned in my last post about IoT and Incisive Debug Analyzer, we have a very potent and innovative debug product in the Incisive Debug Analyzer (IDA) that can dramatically increase your debug productivity. And, it has some magic in it, too!
One aspect of this IDA magic is a feature called: Calculated Messages, which is another way to help you reduce debug iterations. During a complex debug cycle, you are in a quest looking for answers, looking for the cause of a problem. In the Highlander movie, the quest was to become mortal. In debugging, the quest is bug root cause analysis.
A typical debug database or simulation run produces tons of data. It is your job to navigate this ocean of data and extract meaningful bits to help you find the cause of a problem. Often, this involves the annotation of additional log messages. Classically, it requires a change to your code, testbench, or DUT and then yet another simulation run, and a stop at the watercooler, or an extended coffee break in cases where you have a complex and long-running test. The classic approach is extremely expensive because of the extra run time, wait time, associated frustration, and loss of productivity due to temporal discontinuity of the debug process.
IDA’s calculated message feature addresses this problem head on. A typical verification environment already includes a lot of message generation capability. You can control the message verbosity, the debug scope, and so on. However, up until recently, you were stuck with what you had. Now, with the magical message generation feature of IDA, you can add incremental messages on the fly.
(Please visit the site to view this video)
In other words, you can calculate new messages, whose values for variables and such, can be derived from your debug database. This is pretty awesome and you need to try it as soon as possible! Many users have found this to be a killer feature of the Incisive Debug Analyzer. To get a better sense of the magic at work, see the video below.
Our motto is not: There can be only one! Instead it is: We can be heroes (too and for more than one day)!
Axel Scherer