#VERDI# 关于通过 ucli 方式控制FSDB波形文件产生

本文介绍了如何使用VCS编译工具和UCLI命令行来控制仿真波形的dump操作,包括Makefile的编写,仿真参数设置,以及通过ucli脚本来动态管理fsdb文件。通过这种方式,可以在不修改测试平台的情况下灵活控制波形输出,提高仿真效率。
摘要由CSDN通过智能技术生成

目录

一 编写 Makefile  

二  添加仿真运行参数

三  编写ucli 脚本


有的时候我们不想对TB进行改动,也不想重新编译仿真顶层来修改fsdb信息,可以直接修改脚本完成对dump fsdb的控制,这时使用UCLI命令行来dump fsdb的优势就很明显了。

使用这种交互式的接口,控制更加灵活,仿真过程中可以修改dump信息。请注意:ucli 的波形操控方式,使得在run-time 期间灵活控制fsdb 文件,成为可能。

一 编写 Makefile  

export  file_name = top_tb

NOVAS_HOME = /share/eda/Synopsys/Verdi/L-2016.06/     # 这是我电脑上Verdi的目录
NOVAS_ARGS = ${NOVAS_HOME}/share/PLI/VCS/LINUX64/novas.tab \    # 这部分基本是固定的
${NOVAS_HOME}/share/PLI/VCS/LINUX64/pli.a  \
	
vcomp:
	vcs -full64 -debug_pp -LDCLASS -rdynamic -P ${NOVAS_ARGS} \
	-f complie.f \
	-l compile.log

解释一下上面的命令:

(1)debug/debug_pp/debug_all ,使能ucli命令。
(2)-LDFLAGS ,传递参数给VCS的linker,与后面的-rdynamic和-P配合使用
(3)-rdynamic,指定需要加载的动态库
(4)-P ${NOVAS_ARGS},指定需要加载的表格文件(.tab)和静态库(.a)
(5)export file_name = tb.v ,是为了向后面脚本中传递变量而使用的。Makefile中当一个变量使 用 export 进行声明后,变量和它的值将被加入到当前工作的环境变量中。

二  添加仿真运行参数

相应地仿真时的脚本文件,如下:

sim:
	./simv  \
	-ucli -i dump_fsdb.tcl	\
	+fsdb+autoflush 	\
	-l sim.log

verdi:	
	verdi -nologo -sv -f complie.f -ssf *.fsdb
	
clean:
	rm -rf *.csrc *.daidir *simv* ucli* *.vpd *.fsdb *novas* *.log 

解释上面的命令:

  • simv 是 VCS编译Verilog后生成的二进制可执行文件,./simv执行这个文件,进行仿真;
  • -ucli 是启动UCLI命令行模式,-i 吃进去 tcl 脚本文件;
  • +fsdb+autofulsh,一边仿真,一边dump 波形;

三  编写ucli 脚本

下面是一个 利用VCS/ucli 控制波形加载的程序,谢大神分享!!!

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#file ucli.do
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
run 1ms
 
//每fsdb每满500M就切一个file,最多生成100个
call {$fsdbAutoSwitchDumpfile(500,"dut.fsdb",100,"dut.fsdb.log")}
 
lappend dump_scope [list 0 top.dut_i.l2_tx_top]  //指定需要dump 波形的hierarchy,其中0代表当前hierarchy以下的module都dump波形,1代表只dump当前层,2:只dump当前层及下一层,3以此类推
 
lappend dump_scope [list 0 top.dut_i.l3_tx_top]
 
proc dump {} {
  global dump_scope 
  foreach itr $dump_scope{
    eval [list fsdbDumpvars [lindex $itr 0]   [lindex $itr 1]]
  }
 
}
 
run 1ms;
 
dump
 
run 5 ms
 
fsdbDumpoff
 
run

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值