You might have seen the Generation Debugger of Specman's new Generation Engine IntelliGen in presentations or blogs (like Corey's blog on the testcase utility). Let's go a little bit beyond the pictures and high level descriptions and have a look at the details of this new debugger.
First, a few words on the general concepts of Generation Debug:
Now to the specifics of IntelliGen. To enable collection of generation debug information you have the following choices:
A - Use one of the new 'break on gen *' commandsThis command enables collection of generation debug information and stops at the specified point (depending on the command options)B - Use the new "gstep" command to step into generation debug modeThe new Generation Debugger is closely linked with the Source Debugger of Specman. This has the benefit of being able to 'interrupt' source debugging and switch into Generation Debug mode on-the-fly.
Note: the 'collect gen' command only works for the old generator "PGen", but not for IntelliGen.
For the visualisation of the debug data there is a new Generation Debugger GUI. In the video below I'll explain how to navigate this new GUI and how to use it for generation debugging.
In general there are 2 reasons for using the generation debugger. Lets look at both cases and the detailed steps you need to follow in order to collect generation debug information and view it in the new debug GUI:
1 - You need to debug a contradiction
2 - You want to find out why a specific value has been generated
The generation debug GUI organizes the data according to the generation process. This process looks like this:
To really appreciate the benefits of the new debugger I always find it best to look at examples. The following video introduces the generation debug GUI. It shows how all the data is organized and presented and how one can navigate between different windows to get to the desired information.
I hope this gave you a good introduction to the new generation debugger in IntelliGen. For more information have a look in the documentation or ask your local AE for a more detailed training.
Until the next time!
Hannes FroehlichSenior Product EngineerCadence Design Systems, Inc.