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