Functional Verification Debug Blog - SimVision Gems
Most engineers are familiar with the “Butterfly effect” – the notion that a small change can result in enormous repercussions in the future. A similar notion applies in verification. We might expect waveform traces to match between, say, an RTL simulation and post-synthesis gate-level design for a certain signal, but we want to be sure. We want to ensure no small changes or differences in expected results result in eventual total failure of our design.
The Incisive simulation platform includes the "simcompare" tool for checking differences between waveform databases. However, if you are already working in the SimVision Waveform window, rather than running an external tool, you might like to perform a "Quick Diff" operation to check for differences between two or more waveforms that are currently being viewed.
Fortunately, this is exceedingly easy to do in SimVision.
The screenshot below shows two signals in the SimVision Waveform window that you might like to check for differences. (For illustration purposes, the second signal is simply a time-shifted version of the first.)
You can select two of those signals, and then right-click to display a popup menu. When you invoke the "Create->Quick Diff" operation, a third waveform trace is added to the Waveform window representing the differences between the two selected signals. On this signal the regions of difference between the original signals are highlighted with a red hash mark.
This is shown in the screenshot below:
You can select the "Compare" trace and perform operations on it like any other signal. For example, you can use the "advance to next edge" toolbar button to advance the time cursor to the next change in the comparison trace. This will allow you to traverse to each difference between the original signals, as shown below:
If you need more control over the differences calculation (e.g. setting threshold values for when differences are detected), you can invoke the SimCompare Manager via the "Windows->Tools->SimCompare Manager" menu. However, in many cases the "Quick Diff" operation is sufficient and is easily accessible within the Waveform window itself.
More details on the “Quick Diff” operation are available on the Cadence Online Support website here.
So, as we have seen, we can avoid the butterfly effect and check for waveform differences quickly and easily in SimVision.
Happy Debugging!
Doug Koslow