【VCS】Verdi常用指令

【VCS】Verdi常用指令ctrl w 将鼠标指向需要添加到波形上的信号名 通过该快捷键将该信号添加到波形上 shift l 当鼠标指向波形区时刷新波形 当鼠标指向代码区 src1 时刷新代码 z 缩小波形 显示更长时

大家好,欢迎来到IT知识分享网。

  1. 使用技巧:

    verdi实用技巧-腾讯云开发者社区-腾讯云

  2. ctrl+w:将鼠标指向需要添加到波形上的信号名,通过该快捷键将该信号添加到波形上;

    verdi常用快捷键总结:

    shift+l:当鼠标指向波形区时刷新波形,当鼠标指向代码区(src1)时刷新代码;

    z:缩小波形,显示更长时间的波形;

    Z:放大波形,显示更短时间内的波形;

    f:显示全局的波形;

    shift+s:将当前存在于到波形区的信号保存为.rc后缀的信号列表;

    shift+m:波形区快捷添加标记时刻;

    ctrl+d:删除所有信号列表;

    x:在代码区快捷查看所有信号的当前状态;

    在波形区域固定curson(鼠标左键)和marker(鼠标中键)的距离;

    h:在波形区快捷查看信号的全路径;

    c:自定义信号的颜色和粗细;

    t:按一次切换一次信号颜色;

    m:将信号移动到黄线位置;

    y:移至中央并保持居中,再按取消固定居中;

    n:指针跳到信号的下一个跳变沿;

    N:指针跳到信号的上一个跳变沿;

  3. 查找:

    1. 查寻模块实例化的位置cd2c4bd2aa6344e8a677c9e6237b7804.png
    2. .查寻字符串,配合正则匹配效率更高aea3c84ab3734f739ecec9d822639d4b.png
    3. verdi还提供onesearch,支持正则,可以搜索各种类型的信息,速度快4e8ca41b0a1d4aac98d2fd55f3ba7ac2.png

    在Instance列找到hierarchy81f7282f4a994037b81b1843faa15444.png

  4. 波形信号操作:

    1. 8dfc73f847264bd0971f0a437d1a5541.png
    2. 状态机还原:状态机寄存器如何回到原来的数值进制显示,选中信号,然后点remove alias0fa595cd2e134cc5b769741618893104.png
    3. 显示上升沿/下降沿数量:选择信号->选择要选定的时间范围e5a93f0a1b074c0aa8e35e07baef8cac.png
    4. 显示信号的数量:选择信号->右键->Add/Remove->Add counter signal97521fdcfe114a5b9fc540cbed4eb4a1.png
    5. 通过逻辑表达式重新生成新的信号波形:选择信号->右键2df8ecc4f6d448b2ba991642267035d1.png
    6. 查找某信号某值坐在位置:点击by旁边的下拉小箭头,选择bus value,然后在框中填写查找值,点击右箭头4f578f5e6aaa45a080b8648d6211b2d2.png
    7. 信号拆分方法:右键信号->填写位数fcc824506ead4ed2a900cf9c2477c240.png5d425183f6b94b13bbe7b5de96f67936.png
    8. 信号合并:右键信号24497dba6d4048debaec228c743bc1ea.png
    9. 波形里glich的调试方法:view->expand delta  怎么在fsdb波形中构造一个0ps的毛刺

    显示状态机名称(注意要求是原始的状态机信号)

  5. 工具使用:

    1. 调整字体大小方法:Tools -> Preference,然后搜索fontbf650215942c4be8a5921a899546eb12.png
  6. Verdi打开波形文件指令

    1. verdi -dbdir simv.daidir/ 打开仿真器数据库(database)文件夹,其中存放的是包含了编译信息的中间数据
    2. verdi -ssf xxx.fsdb 打开fsdb波形文件,或vf文件(virtual fsdb)
    3. verdi -simflow 打开VCS产生的KDB(knowledge databse)
  7. Verdi收集覆盖率指令

    1. urg -full64 -dir cov/*.vdb -dbname xxx_cov_date
    2. urg merge option
      指令 含义
      -full64/-mode64 以64bit的程序进行merge
      -parallel 并行merge
      -dir <dir> 指定要拿到的db的hier
      -dbname <dir_name> 指定输出的merge后的文件夹
      -elfile <file> 忽略掉指定el文件中的覆盖率
      -elfilelist <file> 忽略掉指定el文件列表中的覆盖率
      -hier <file> 指定文件,该文件包含要排除的module definitions,instances,hierarchies
      -f <xxx_path/xxx_vdb.fl> 指定filelist,filelist包含多个vdb
      -report <dir> 输出report
      -noreport 不输出最终的report,只merge
      -warn none 忽略warning信息
      -matric +[line,cond,fsm,tgl,branch,assert] 提取特定的coverage
      -line nocasedef line覆盖率包含不考虑default case
      -show tests 显示覆盖率信息具体对应的用例
      -show ratios 显示每种得分下覆盖的数量和总数
      -tgl portsonly 仅提取port的toggle覆盖率,不考虑net和variables
      -map <mod> 提取需要merge coverage的模块名
      -grade testfile 在当前目录的urgReport下产生gradedtests.txt文件,显示用例对提升覆盖率的贡献排名
    3. 打开覆盖率文件:(注意要在自己的路径下打开,他人路径打开会失败,因为verdi需要缓存一些环境变量等)
      verdi -cov -cov_dir simv.vdb dve -cov -dir simv.vdb //无license时可用
    4. 打开带exclude文件的覆盖率:
      verdi -cov -covdir xxx.vdb -elfile xxx.el //指定el文件 verdi -cov -covdir xxx.vdb -elfilelist xxx.el//指定el list
    5. exclude掉层级及层级以下的选项:【VCS】Verdi常用指令
    6. exclude信号及信号全部路径:
      1. 选择File->Manage Verdi ELAB database,导入simv.daidir文件
      2. 对于要exclude的信号,右键信号->Exclude Connected Signals  
    7. 指定生成的覆盖率层级:vcs option: -cm_hier xxx.cfg 
      *cm_hier.list -tree xxx_hier 0 +tree xxx_hier 1 //参数含义: 数字:0代表全部层级;1代表当前层级;2代表当前及往下一个层级 +/-tree hier_name:对/不对指定层级统计coverage +/-module module_name:对/不对指定模块统计coverage +/-file file_name:只对file_name文件里面指定的模块的t统计coverage +/-moduletree module_name:对/不对指定的模块以及该模块下的模块,统计coverage +/-node 信号绝对路径:包括/去除对指定信号toggle coverage的统计 

    生成覆盖率文件:

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/133268.html

(0)
上一篇 2025-07-24 21:10
下一篇 2025-07-24 21:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信