用UCLI(TCL)控制verdi dump 波形

         UCLI(Unified Command-line Interface)为Synopsys验证工具了提供一组通用命令,通过UCLI可以执行任意TCL(Tool Command Language)命令。在我们的验证环境中,通常跟ucli打交道的地方是用来控制开始dump和结束dump 波形的时间,以及dump 的hierarchy。以下是通常的流程和命令。

  1. //指定波形文件名字和最大的size(可选)
    $fsdbDumpfile(fsdb_name[,limit_size])
    如:$fsdbDumpfile("top.fsdb")
  2. //设定开始时间
    run $BEGIN_TIME
    如:run 10ns
  3. //设定dump的design hierarchy
    $fsdbDumpvars([depth, instance][, “option”])
    

    depth表示要加载波形的层次:0表示当前instance下的所有变量以及其它module实例的波形;1表示当前instance中的变量的波形,不包括当前instance中的其它module实例的波形;2表示包含当前instance以及其中的第一级子instance的波形;以此类推。
           instance指定要加载波形的module名。
           option加载波形的选项,如:
                 +IO_Only – 只加载IO port信号;
                 +Reg_Only – 只加载reg类型信号;
                 +mda – 加载memory和MDA信号;
                 +packedmda – 加载packed MDA;
                 +struct – 加载structs;
                 +parameter – 加载parameter;
                 +fsdbfile+filename – 指定fsdb文件名字。
            例如:$fsdbDumpvars(0,top.a,+mda)   

  4. //指定结束dump时间
    run $END_TIME
    如:run 100us
  5. //结束dump
    dump -close
  6.   ucli是sim 命令,不用编译就能起效,常用的方式为:
    simv -ucli -do $ucli_name.tcl //ucli_name.tcl是自己写的tcl,如上面1-5的内容

            需要注意的是,ucli起效的前提是需要开启vcs deug 功能,根据编译选项权限的不同,能够使用的UCLI的范围有限:

用UCLI(TCL)控制verdi dump 波形_第1张图片

不同的debug 功能的具体可以参考这篇博文:

Synopsys VCS 编译时,启用debug选项_debug_access-CSDN博客

ps: ucli 常用命令:

用UCLI(TCL)控制verdi dump 波形_第2张图片

用UCLI(TCL)控制verdi dump 波形_第3张图片

用UCLI(TCL)控制verdi dump 波形_第4张图片

你可能感兴趣的:(日常工作技巧,verdi,ucli,vcs)