前一段时间IC君比较忙,没有更新文章,最近稍微闲下来点,继续更新Verdi相关的文章。
Verdi提供了很强大的搜索查找功能,充分利用好这些功能在IC设计/验证过程中可以大大提高debug效率。 下面我们就结合实际应用来介绍一下Verdi中常用的搜索查找功能以及一些使用技巧。
1 层次浏览器窗格中寻找实例(instance)
在利用 Verdi debug时,首先需要找到我们负责模块的实例(instance),再选择相应的信号来观察它们的行为来debug。 当设计很庞大时,要找到底层的一个小模块,如果用鼠标从top一层一层的往下点,效率会比较低; 又或者我们只负责了一个小模块,对整个设计的层级关系并不清楚的时候,找到我们的底层设计会变得非常困难。
这时,只要我们知道底层模块的实例名,就可以利用Verdi的“Show Navigation Text Field”功能快速查找了。 操作方法如下图,
a) 在Verdi的层次浏览器窗格(Verdi界面的左部)点右键,弹出菜单里选“Show Navigation Text Field”或快捷键“Ctrl+S”
b) 在输入对话框里输入相应的实例名,再点右边的搜索按钮就可以了。
2. 搜索源代码
源代码窗格里提供了三种搜索指令,功能各不相同,用来应付不同的使用场景。
1) 查找范围
Find scope适用于整个chip里面的查找。 前面提到的应用场景——寻找底层模块,find scope 也可以很轻松的办到,如下:
A) 来源 – >查找范围
B) 在弹出对话框里Scope Type选module
Filter内填要找module关键字
Instance list 里面选择一个,点Go To,source code就会打开该module
另外,对话框最下面列出了整个设计中找到的个数,可以知道该module被instance次数。
2) 查找信号/实例/输入端口
这个指令可以查找指定模块内的信号、实例或输入输出端口。 这个指令的好处是可以把要查找的内容都列出来,想看哪一个就用鼠标点一下,就会切换到源代码窗格对应位置。 当模块内要查找的signal(instance or input/output port)比较多时,可以快速的找到想看的signal。
操作方法如下:
源 –> 查找信号/实例/输入端口
选择要查找的类型:signal, instance or instport
输入框里面输入信号名,点Find 按钮,下面会列出所有找到的信号
点击某个信号,就会到达source code 里面对应的信号
3)查找字符串
Find string应该是debug 过程中使用频率最高的查找指令了。 只要在输入框里面输入部分或全部要查找的字符串,再点一下find
按钮就可以了。
这个指令可以在当前文档(current File)或者全部文档(All file)里面查找,因为字符串查找匹配得比较多,要根据需要选择在当前文档或全部文档查找,以提高查找效率。
因为使用频率高,Verdi也很贴心的在默认工具栏里放置了Find string的输入窗口,如下:
输入栏输入字符串有几种方法
(1)手动输入,好处是可以只输入部分字符,不用全部输入信号名
(2)点击信号,按中键拖入输入栏,然后点向上或向下查找,找同名信号
(3)点击信号,按快捷键”Ctrl+F”,信号名就会自动输入到输入栏。 这个快捷键很好用,大家要善加利用哦。
3. nWave里面的信号追溯源代码
Debug过程中,往nWave 里添加信号后,查看了信号波形,如果看到异常往往要回头看一下源代码。 如果一时找不到了,find string当然可以找得到,但是需要输入一串字符,可能就不那么乐意了。
其实Verdi很贴心,可以直接把nwave里面的波形拖到nTrace里面,可以快速的找到要找的信号。
操作方法:nWave里面选择信号,如out_den
按住中键,直接拖到source code plane,
然后放开,就会显示你要找的信号了
上述内容介绍了Verdi常用的几种搜索查找功能和技巧。 希望对大家有帮助,debug效率更上一个档次。 如果你有什么好想法,也欢迎留言一起讨论。
全部0条评论
快来发表一下你的评论吧 !