用verdi / 看波形
启动/使用
- 启动 verdi 来看波形
-
verdi [option] &
打开verdi ;&
表示后台工作;option有这些:
-f code_file
直接选择code文件;-ssf fsdb_file
直接选择波形文件(不限fsdb格式)文件,从而不需要进入verdi后手动选择;-simflow
让verdi使用vcs仿真产生的kdb库(默认是simv.daidir/
);-dbdir daidir_file
手动指定kdb库文件名; -
import 入design文件:
- 003:是
chiron.v
和另一个chiron_lib.v
文件; - 005:是
ccd_top.v
和chiron.v
;
- 003:是
-
打开波形文件(
./run
以后会自动生成,每生成说明./bld
错了).fsdb
文件;
-
run
文件里生成波形的要点 -
代码
-
正确:
-fsdb_config vtrace_fsdb +fsdbon:0
-
不要写这个 :
-fsdb_config vtrace_fsdb +fsdbon:0 +fsdboff:10000000
因为 10000000 其实完全不够,看到的信号都是X,你还不知道为什么 (ㄒoㄒ) ... 血与泪的教训啊家人们! -
若
run
里的fsdboff=1e7
,实际上的sim时间是到1e-5 s
,所以可以知道run
内的fsdb的时间单位是ps
( 1 e − 12 1e-12 1e−12) ,不是最小单位fs
...
-
快捷键
(P.S. 大写字母=Shift+小写)
- 固定cursor和marker的距离:x
- 在代码中按,是所有变量显示当前值:x
- 将cursor所在位置显示在屏幕中央:yy
- 改变信号和波形颜色:c或者t
- 此波形的上一个上升沿或下降沿:n (next)
- 此波形的下一个上升沿或下降沿:N (next)
- 添加新信号:g (get signals)
- 复制信号:ctrl+p
- 粘贴信号:Insert
- 保存信号列表:S
- 恢复信号列表:r
- 删除所有信号列表:ctrl+d
- 只删除此信号:delete
- 撤销选择信号:d
- 显示信号全路径:h
- 复制信号全路径:ctrl+h
- 高亮显示所选信号:H (Highlight)
- 将信号移动到黄线位置:m (move)
- 添加标记时刻:M
- 放大波形:Z (zoom in)
- 缩小波形:z (zoom out)
- 展示全部波形:f (full, zoom all)
- 波形开头:b (begin)
- 波形结尾:e (end)
- 上一次打开波形的位置:l (last view)
- 重新载入波形(重新仿真后):L
- 向右移动半屏:ctrl + right
- 向左移动半屏:ctrl + left
- 把信号变量加入到Wave中,Add Signal to Wave:Ctrl+w
- 没搞懂干啥的
- Active Trace:Ctrl+e
- 保存波形信号列表:r (restore signals ) 和 S 的区别是啥?
菜单栏功能
- 双击信号波形: 跳转到代码,并用绿色高亮该信号
- 双击信号:按位展开(expand),Struct展开下一层。再双击折叠(collapse)
- 右键信号名->Bus Operations->Expand as Sub-bus->可以按指定位宽展开,比如512bits的信号分成4个128的,方便查看
- 右键 Add Blank 可以让信号分组看起来更清晰
- 菜单栏中的By:可以选择Search不同的值:Any Change, Rising Edge, Falling Edge, Bus Value等
- 信号可以分组,组合信号都可以Rename
- 改变波形进制:十进制,按住ALT,再依次按 W+R+D;二进制,按住ALT,再依次按 W+R+B
- 改变波形无符号和有符号: 无符号,按住ALT,再依次按W+N+U;有符号2的补码,按住ALT,再按W+N+2
- 波形其他属性调整:
https://www.dazhuanlan.com/2019/12/09/5dee5424b012a/
注意事项
-
verdi的几个使用注意点
-
搜索
搜信号的时候,是在当前module内搜,子module内的不搜!
-
Set Active
信号变量为灰色,说明不可见波形 ;要先 右键->set Active Scope 后,变量会变成红色,才可加入 Wave 中。
-
追波形 和 chx系列的RTL 寄存器变量定位方法(zx的dv信号专用)
看波形要根据信号去cndebug里面的 debug.m4里 取信号,然后在RTL里搜,然后邮件->set active,然后就可以观察波形了!
-
-
【手把手教你】如何trace signal(找谁drive这个signal的,向上追)?
-
在hierarchy中直接搜 signal 的string path,定位其位置后,把其实参(不是形参)都拉到wve中(ctrl+w);
-
按X (使code中变量可直接显示其值变化,方便debug);
-
根据需要,可双击波形中的signal,可以定位其在代码中的位置;
-
双击code中的signal,可不断向上trace drive此signal的上级signal;
-
找到顶层出问题的signal(如,谁先变成X态),就可以反馈给designer了!
-