fsdb dump操作命令记录
1. 命令介绍:
$fsdbDumpon - 打开 FSDB dumping
$fsdbDumpoff - 关闭 FSDB dumping
$fsdbDumpfile("FSDB_NAME",Limit_Size) - 指定dump文件
fsdb_name 为user指定的文件名,如"my_sim.fsdb"
Limit_Size 为dump波形的最大size
$fsdbDumpvars(depth,instance,"option=") dump指定模块的信号
depth - 0 表示dump instance下所有层级的信号 1表示只dump instance这一层的信号
instance - 指定dump的hierarchy 如 dut.top.ddr_controller
option - dump时可以选择的一些选项,"+mda" 表示dump memory或者MDA(多维数据)的数据,"+packedmda"表示dump压缩的memory数据,"+functions" dump function和task里的信号,"+Reg_Only"只dump reg类型的数据,"+all" dump all,"+struct" dump struct数据
这个命令可以多次使用,用来dump不同instance的波形
还可以直接指定dump的fsdb file
$fsdbDumpvars(0,top.arbiter,"+fsdbfile+novas.fsdb");
$fsdbDumpMDA(depth, instance, "options") dump指定模块中的多维数组
$fsdbDumpSVA(depth,instance,"option"),dump指定模块的assertion
$fsdbDumpSVA(1,system.arbiter,"+fsdbfile=SVA.fsdb"),将该instance下所有assert全部dump到该fsdb中 可以用+fsdbfile=SVA.fsdb dump到新的fsdb文件中
$fsdbSwitchDumpfile(“new_file_name”[, “+fsdbfile+src_file”])
关闭现有的波形文件,以一个新的文件名开始加载波形;
new_file_name—创建一个新的波形文件,将波形加载到这个文件中;
+fsdbfile+src_file—指定要停止加载并关闭的波形文件, 这个参数不指定时,将默认使用当前正在加载的波形文件;
$fsdbDumpflush
在仿真过程中强制将信号值加载到波形中,便于在仿真过程中查看波形
$fsdbAutoSwitchDumpfile(file_size, “fsdb_name”, number_of_files[, “log_file_name”, “+fsdb+no_overwrite”])
当波形的大小达到限制后自动以一个新的波形文件起始加载波形;在所有的波形文件加载完成后,会创建一个virtual FSDB文件,文件后缀.vf。查看波形时只需要加载此文件就可以合并所有的波形文件。
file_size—波形文件大小限制,单位为MB,最小为10M,若值小于10M则默认10M;
file_name—波形文件的名字,在实际加载波形时,文件名为file_name_000.fsdb ile_name_001.fsdb…;
number_of_files—最多可以加载多少个file_size这么大的波形文件,如果写为0,则默认没有限制;
log_file_name—指定log文件的名字,log文件中会记录每段波形的起始和中止时间
+fsdb+no_overwrite—当number_of_files限制的个数达到时停止dump波形;
$fsdbDumpvarsToFile("dump.list");
将需要dump的hier以及depth放到一个文件里吃进来
比如dump.list 内容 #用于注释)
0 test_top
#1 test_top
#0 test_top.dut
#0 test_top.dut.m1
#0 test_top.dut.m2
波形裁剪:
fsdbextract source.fsdb -bt 1500ns -et 2000ns -o output.fsdb
source.fsdb是原始波形文件,-bt 1500ns裁剪的开始时间点 -et 2000ns裁剪的结束时间点,output.fsdb是截取出来的波形文件名
2. 实际操作:
有按size切不同fsdb文件需求,可以如下操作,这里fsdbDumpvars指定了特定的module,也可以直接从top上dump所有的波形
没有size切换需求可以按下面操作
更多推荐








所有评论(0)