Get email delivery of the Cadence blog featured here
Do you remember what life was like before the internet and smart phones? If you wanted to find information about something, you had to go to the library and find a book that could answer your question, which usually meant a delay of anything from a few hours to several days. Then the internet happened, and the world as we know it changed forever. Smart phones came along, and brought with them a new kind of freedom and unprecedented levels of productivity gains. Now, any information that we need to get our jobs done is but a measly click away. These seismic changes in our lifestyle have also brought about a big change in our attitude toward how we approach problems. We value our time more, and want to spend it on things that are creative, enjoyable, and productive. And this includes the way we debug code while designing complex Systems-on-Chip.
Several years ago, finding and root-causing bugs in chips meant staring at long lines of zeroes and ones in trace files until one went cross-eyed from all that strain. Waveform viewers made things a little better, but tracking down a bug on a complex standard bus was still a nightmare. There was no way to easily compare different transactions in a channel, trace the different packets, and compare data at different simulation times to see what went wrong and where. And to decode the complex bus state machine during debug meant drawing the whole machine on a white board in the office with multi-colored marker pens.
Not anymore! Cadence’s Indago Protocol Debug App is a productivity tool that lives up to every letter of its long name! It is truly a verification engineer’s dream come true. It has everything you could’ve wished for in a debug tool and several things that you never knew you needed. Take, for instance, its channel viewer. The channel viewer provides a visual representation of protocol traffic on all the instances of Verification IP on your SoC. It allows you to choose any interface, and immediately shows you all the traffic on the interface channels at any given time. You can scroll the timeline to see traffic at different points in the simulation. If you are trying to trace, say, a READ, you can click on it and choose to highlight linked content. This highlights the data that was returned during that READ transaction so you can look at it right away. You can also click on any command, and see the contents of the packet fields, and, this is the best part – you can choose several packets to compare data side by side! This feature alone, would’ve saved me days of debug and frantic scrolling of long waveforms back and forth trying to trace packets on interfaces channels and their contents.
The state machine viewer is another piece of magic that I could’ve really used when I was doing verification. Debugging state machines can be a real bear, especially when they are very complex. And let’s face it—none of the standard protocols are simple anymore, and their complexity is only increasing with every new generation. The state machine viewer essentially brings the entire protocol state machine to life—except, it does it within the context of that particular simulation. This means, that instead of a generic protocol state machine diagram, you are now looking at one that shows you exactly what happened with the state machine in that particular simulation. It is the difference between looking at a generic Disney World map, and one that shows at all times where you are now, where you were before and which rides you’ve already been on! With the state machine viewer, you can see what state you were in at any given time, what the previous state was, how you got there, and what the next state will be. The states that were never visited during that simulation are greyed out. And all this is done in a pictorial representation so it’s very intuitive to grasp and navigate.
The memory viewer allows you to see the entire contents of the memory at any given time. The smart log viewer lets you search by string for error and warning messages that were generated during simulation, and a nifty little feature that allows you to save queries and share them with colleagues. The life story viewer allows you to choose any item in one of the other viewers and see what it did during the entire simulation.
Cadence is now offering a free trial for this productivity tool that will make your life so much easier. Watch a demo of the tool, and sign up for the free trial now. You can thank me later.
Join the future of SoC verification. All that extra time you will have now—imagine the possibilities!