【个人笔记】如何使用Verdi

用verdi / 看波形

启动/使用

  • 启动 verdi 来看波形
  1. verdi [option] & 打开verdi ;

    & 表示后台工作;

    option有这些:

    -f code_file 直接选择code文件;

    -ssf fsdb_file 直接选择波形文件(不限fsdb格式)文件,从而不需要进入verdi后手动选择;

    -simflow 让verdi使用vcs仿真产生的kdb库(默认是simv.daidir/);

    -dbdir daidir_file 手动指定kdb库文件名;

  2. import 入design文件:

    • 003:是 chiron.v和另一个 chiron_lib.v文件;
    • 005:是 ccd_top.vchiron.v
  3. 打开波形文件(./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+小写)

  1. 固定cursor和marker的距离:x
  2. 在代码中按,是所有变量显示当前值:x
  3. 将cursor所在位置显示在屏幕中央:yy
  4. 改变信号和波形颜色:c或者t
  5. 此波形的上一个上升沿或下降沿:n (next)
  6. 此波形的下一个上升沿或下降沿:N (next)
  7. 添加新信号:g (get signals)
  8. 复制信号:ctrl+p
  9. 粘贴信号:Insert
  10. 保存信号列表:S
  11. 恢复信号列表:r
  12. 删除所有信号列表:ctrl+d
  13. 只删除此信号:delete
  14. 撤销选择信号:d
  15. 显示信号全路径:h
  16. 复制信号全路径:ctrl+h
  17. 高亮显示所选信号:H (Highlight)
  18. 将信号移动到黄线位置:m (move)
  19. 添加标记时刻:M
  20. 放大波形:Z (zoom in)
  21. 缩小波形:z (zoom out)
  22. 展示全部波形:f (full, zoom all)
  23. 波形开头:b (begin)
  24. 波形结尾:e (end)
  25. 上一次打开波形的位置:l (last view)
  26. 重新载入波形(重新仿真后):L
  27. 向右移动半屏:ctrl + right
  28. 向左移动半屏:ctrl + left
  29. 把信号变量加入到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的,向上追)?

    1. 在hierarchy中直接搜 signal 的string path,定位其位置后,把其实参(不是形参)都拉到wve中(ctrl+w);

    2. 按X (使code中变量可直接显示其值变化,方便debug);

    3. 根据需要,可双击波形中的signal,可以定位其在代码中的位置;

    4. 双击code中的signal,可不断向上trace drive此signal的上级signal;

    5. 找到顶层出问题的signal(如,谁先变成X态),就可以反馈给designer了!

相关推荐
Charles Ray35 分钟前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码35 分钟前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
我要吐泡泡了哦2 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫1232 小时前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
贾saisai4 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
北岛寒沫4 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
烟雨666_java4 小时前
JDBC笔记
笔记
GEEKVIP4 小时前
Android 恢复挑战和解决方案:如何从 Android 设备恢复删除的文件
android·笔记·安全·macos·智能手机·电脑·笔记本电脑
铁匠匠匠5 小时前
从零开始学数据结构系列之第六章《排序简介》
c语言·数据结构·经验分享·笔记·学习·开源·课程设计
Moliay6 小时前
【资料分析】刷题日记2
笔记·公考·行测·常识·资料分析