【个人笔记】如何使用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了!

相关推荐
爱码小白5 分钟前
网络编程(王铭东老师)笔记
服务器·网络·笔记
LuH112443 分钟前
【论文阅读笔记】Learning to sample
论文阅读·笔记·图形渲染·点云
一棵开花的树,枝芽无限靠近你2 小时前
【PPTist】组件结构设计、主题切换
前端·笔记·学习·编辑器
犬余3 小时前
设计模式之桥接模式:抽象与实现之间的分离艺术
笔记·学习·设计模式·桥接模式
数据爬坡ing3 小时前
小白考研历程:跌跌撞撞,起起伏伏,五个月备战历程!!!
大数据·笔记·考研·数据分析
咖肥猫4 小时前
【ue5学习笔记2】在场景放入一个物体的蓝图输入事件无效?
笔记·学习·ue5
郭尘帅6665 小时前
Ajax学习笔记
笔记·学习·ajax
我叫啥都行5 小时前
计算机基础复习12.23
java·开发语言·笔记·后端·学习
bohu838 小时前
sentinel学习笔记7-熔断降级
笔记·sentinel·熔断降级·degradeslot·circuitbreaker
地中海~8 小时前
Certifying LLM Safety against Adversarial Prompting
人工智能·笔记·language model·攻防