【博文连载】cadence indago征程(三)indago工具的使用
启动indago工具之后,indago的界面,如下图所示:
下面,就介绍一些,indago的炫酷技能。
一、smartlog
smartlog,显示log,并且可以将打印的一行log,和仿真状态进行关联。
在每行log的开头,有一个向前或者向后的按钮,点击,表示,将仿真状态,定义到这一时刻,此时,代码窗口,显示打印这行log的代码处。
在smartlog的界面,可以配置,打印log的verbosity级别,以及log的类型。便于查看自己想要看的log。
在代码处,右键,选择add smartprint to log。
输入想打印的变量,然后选择时间范围,如果不选择,就默认为整个仿真时间,在设置打印的verbosity。
点击add之后,就会发现神奇的一幕出现了。
在smartlog界面,会将代码被调用的时刻,把设置的变量全部打印出来。这就意味着,将来再也不需要在环境中,增加额外的打印代码,来帮助调试了。
二、代码区
在代码区,可以查看代码,包括RTL和tb,都可以。
如果代码行,前面有向前或者向后的按钮,表示,这行代码,在仿真过程中,有执行过,可以点击按钮,将当前的仿真状态,恢复到执行这一行代码的状态。
上图中的红色框的按钮,是控制仿真过程的按钮,可以执行:
向前单步
向后单步
向前跳过
向后跳过
indago的一个很炫酷的功能,是可以支持向后跳转,也就是我们可以知道,当前仿真状态的前一个仿真状态是什么。
点击左上角的 Files,可以加载指定的文件。
文件前面的黄色标志,表示,当前仿真状态在执行这个文件。代码行前的黄色标志,表示当前仿真状态,要执行这一行代码。
如果打开,variable界面,那么在该界面,会自动显示各个变量的值。
三、top界面
在top界面,可以查看design和test bench的代码。对于rtl代码,可以选择信号,加入到波形中。
在波形窗口中,对波形信号,双击,会跳转到rtl代码中,并且将仿真状态,切换到该波形时刻。
四、active threads
在active threads窗口,点击刷新按钮,可以查看激活的线程,有哪一些。选择任意一个线程,就可以跳转到代码处。
五、call stack
call stack界面,用来查看调用栈,也就是函数的调用关系层次是怎么样的。
对于my_driver中的driver_one_pkt函数,是由my_driver中的main_phase函数调用的。
六、diagnostics
诊断窗口,会显示,在产生indago database过程中,影响仿真速度的一些文件和代码。
从该界面中,可以知道哪些文件影响了仿真速度,如果该文件,对查看状态不影响,可以在ida_probe命令中,将这个文件ingore掉。从而提高仿真速度。
七、总结
该工具,还有其他的一些功能,这个就需要大家自己去使用的时候,研究了。这里,只是给大家简单介绍indago工具的使用。
总的来说,indago工具,根据仿真得到的database,以图形化界面呈现给我们,让我们能够回看仿真的任意时刻状态,从而方便我们去debug。