FSDB:Fast Signal Database 相比较于VCD文件,FSDB文件的大小比VCD波形小5-50倍。
各家的仿真器都支持在simulation的过程中,直接生成FSDB文件
将VCD文件转换为FSDB文件的三种方式:
1) vfast工具
2) 在nTrace中使用File---Load simulation Tesults打开
3) 在nWave中使用File---Open命令来打开 将Fsdb文件转换为Vcd文件: 1) fsdb2vcd工具,
在进行仿真时,novas_dump.log文件会产生,其中记录verdi的环境变量
FSDB Dumper支持三种方式来加入options:
1) simulator的command line中添加,simv +fsdbfile+high.fsdb
2) 直接在env中添加,setenv NOVAS_FSDB_FIEL mid_prio.fsdb
3) FSDB Dumping cmd中添加,$fsdbDumpfile("+fsdbfile+low_prio.fsdb")
其中,并不是每个option都支持三种方式,cmd line中的优先级最高
FSDB Dumping cmd line option
+fsdbfile+filename,指定FSDB文件的名字,默认名字是novas.fsdb。
+fsdbfile+test1.fsdb +fsdbLogOff,不打印出log信息。+fsdbLogOff
+fsdbLog=severity,按severity的方式dump log信息。+fsdbLog=3
+fsdb+all[=on|off],dump所有支持的类型,+fsdb+all=on
+fsdb+autoflush,在simulation stop或者ctrl+c停止时自动将缓冲中的波形输出,+fsdb+autoflush
+fsdb+dump_log[=on|off],使能或者关闭novas_dump.log,+fsdb+dump_log=on
+fsdb+glitch=num,0表示所有的glitch都保存,1表示最近的glitch保存,2表示最近两个glitch被保存,+fsdb+glitch=0 +fsdb+dumpoff_glitch+time,表示停止dump glitch的时间,+fsdb+dumpoff_glitch+30
+fsdb+dumpoff+time,指定dump结束的时间,+fsdb+dumpoff+2500,+fsdb+dumpoff+2500ps
+fsdb+dumpon+time,指定dump开始的时间,+fsdb+dumpon+500,+fsdb+dumpon+2500ps
+fsdb+io_only,只dump input/output的信号,+fsdb+io_only
+fsdb+parameter,使能parameter的dump,默认关闭,+fsdb+parameter=on
+fsdb+reg_only,只dump寄存器类型的信号,+fsdb+reg_only
+fsdb+psl_prop,只dump PSL property类型的信号,+fsdb+psl_prop
+fsdb+sequential,使能sequence的dump,+fsdb+sequential
+fsdb+strength[=on|off],使能或者不dump strength信息,+fsdb+strength=on
+fsdb+struct[=on|off],使能或者不dump struct信息,+fsdb+struct=on
+fsdb+writer+mem_limit=num,设置limit进行FSDB Flush单位为M,+fsdb+writer_mem_limit=64
+fsdb+sva_status,使能assertion status的dump,+fsdb_sva_status
FSDB Dumping task $fsdbDumpfile,设置FSDB的名字,默认是“novas.fsdb”,$fsdbDumpfile("FSDB_NAME",Limit_Size);
必须在fsdbDumpvars task之前设置。
$fsdbDumpvars(depth,instance,"option="),$fsdbDumpvars(0,system,"+fsdbfile+novas.fsdb");
不指定scope,等同于整个design,等同于"+all"。
$fsdbDumpvarsByFile("txtFileName","option"),将需要dump的信号写入一个file中。
$fsdbDumpFinish,本身FSDB Files在simulation结束时,都会自己关闭,也可以显式调用该task,来关闭。
$fsdbDumpflush,清空缓存中的波形数据。
$fsdbDumpon("options");$fsdbDumpoff("option");
$fsdbAutoSwitchDumpfile(10,"test.fsdb",20),表示在fsbd文件到10M大小之后,创建新的fsbd文件,最多创建20个fsdb文件。
$fsdbSwitchDumpfile("NewFileName"."+fsdbfile+src_file"),执行到该task之后,关闭上一个dump,开始新的dump文件。。
$fsdbSwitchDumpfile(test1.fsdb,"+fsdbfile+test0.fsdb")
$fsdbDumpSVA(depth,instance,"option"),将assertion的结果存在某个fsdb中,
$fsdbDumpSVA(1,system.arbiter,"+fsdbfile=SVA.fsdb"),将该instance下所有assert全部dump到该fsdb中。
$fsdbDumpMDA(depth, instance, options),将多维变量的值dump到fsdb中,MDA(multidimensional array),在VCS中使用,compile的时候需要加-debug_pp