目录
方法一: 使用verilog自带的系统函数
方法二: 使用UCLI command
2.1 需要了解什么是vcs的ucli,怎么使用ucli?
2.2 使用ucli dump波形的方法
使用vcs仿真产生fsdb波形有两种方式,本文参考《vcs user guide 2021》 page 1960 Dumping FSDB File for Various Flows
方法一: 使用verilog自带的系统函数
使用$fsdbDumpfile指定生成的fsdb的名称
使用$fsdbDumpvars指定dump的hierarchy和层级,0表示该层次及其以下所有的都dump,1表示只dump该层级,2表示dump该层级及其下面一层。
如果不指定fsdb的名字,默认生成的名字为novas.fsdb
方法二: 使用UCLI command(推荐使用)
2.1 需要了解什么是vcs的ucli,怎么使用ucli?
这里参考《vcs user guide 2021》 page 355 Using UCLI
使用-ucli命令可以实现如下的事情:
- Control simulation
- Dump the FSDB and VPD files
- Save/Restore the simulation state
- Force/Release a signal
- Debug the design using breakpoints, scope/thread information, and built-in macros
使用-ucli的前提是,在vcs编译时,添加-debug_access+r 的选项,当vcs添加编译选项-ucli时,将会进入和vcs的交互界面,
% simv -ucli
ucli%
接下来执行ucli命令有三种方式
- 一行一行输入tcl命令,所有的ucli的cmd都是符合tcl语法的
- 多行tcl命令可以写在一个文件中执行,source xxx_cmd.file
- 直接在simv命令行加入选项simv -ucli -do xxx_cmd.file
2.2 使用ucli dump波形的方法
有两种命令方式,这里推荐右边这种方式
fsdbDumpfile指定波形名字,fsdbDumpvars指定dump层次和层级
我们提前准备一个dump fsdb的tcl文件,如果simple_wave.tcl
fsdbAutoSwitchDumpfile 20000 debussy.fsdb 10
fsdbDumpvars 2 Mtop
fsdbDumpvars 2 Mtop.u_aaa_top
fsdbDumpvars 0 Mtop.u_aaa_top.u_bbb
fsdbDumpvars 1 Mtop.u_aaa_top.u_bbb.u_ccc.u_ddd
在simv仿真时,使用命令行
simv -ucli -do simple_wave.tcl
既可dump fsdb波形,此外tcl中可以控制dump波形的时间等等,例子之后添加