UCLI(Unified Command-line Interface)为Synopsys验证工具了提供一组通用命令,通过UCLI可以执行任意TCL(Tool Command Language)命令。在我们的验证环境中,通常跟ucli打交道的地方是用来控制开始dump和结束dump 波形的时间,以及dump 的hierarchy。以下是通常的流程和命令。
-
//指定波形文件名字和最大的size(可选) $fsdbDumpfile(fsdb_name[,limit_size]) 如:$fsdbDumpfile("top.fsdb")
-
//设定开始时间 run $BEGIN_TIME 如:run 10ns
-
//设定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) -
//指定结束dump时间 run $END_TIME 如:run 100us
-
//结束dump dump -close
- ucli是sim 命令,不用编译就能起效,常用的方式为:
simv -ucli -do $ucli_name.tcl //ucli_name.tcl是自己写的tcl,如上面1-5的内容
需要注意的是,ucli起效的前提是需要开启vcs deug 功能,根据编译选项权限的不同,能够使用的UCLI的范围有限:
不同的debug 功能的具体可以参考这篇博文:
Synopsys VCS 编译时,启用debug选项_debug_access-CSDN博客
ps: ucli 常用命令: