fsdb(Fast Signal DataBase) 是Spring Soft (Novas)公司 Debussy / Verdi 支持的波形文件,一般較小,使用較為廣泛,其余仿真工具如ncsim,modlesim等等可以通過加載Verdi 的PLI (一般位於安裝目錄下的share/pli 目錄下) 而直接dump fsdb文件。
fsdb文件是verdi使用一種專用的數據格式,類似於VCD,但是它是只提出了仿真過程中信號的有用信息,除去了VCD中信息冗余,就像對VCD數據進行了一次huffman編碼。因此fsdb數據量小,而且會提高仿真速度。
VCD文件使用verilog內置的系統函數來實現的,fsdb是通過verilog的PLI接口來實現的,如$fsdbDumpfile,$fsdbDumpvars等
1 如果要Dump FSDB波形,將以下語句選擇性加在TB中。 2 3 4 initial begin 5 6 $fsdbDumpfile(“dump.fsdb”) ; //fsdbDumpfile - 指定FSDB文件名 7 $fsdbDumpvars (level,start_module) ; //要記錄的信號,level=0表示記錄所有 8 $dumpvars (2, top. u1); // Dump實例top. u1及其下一層的信號 9 $fsdbDumpMDA(); //fsdb dump波形時會記錄二維數組2D array signal的值,便於在verdi中debug查memory內部信號。 10 $fsdbDumpSingle; //Dump指定的信號 11 $fsdbDumpvariable; //Dump指定的VHDL變量 12 $fsdbSwitchDumpFile(“<new FSDB name>”); //將dumping切換到另一個FSDB文件 13 $fsdbAutoSwitchDumpfile(<file size>, “<FSDB name>”,< number of file>); //限制文件大小並在數據量過大時自動創建新的FSDB文件 14 $fsdbDumpMem(<reg name>, [<start addr>, [<size>]]); 15 $fsdbDumpoff; //停止記錄 16 $fsdbDumpon; //重新開始記錄 17 $fsdbDumplimit(); //限制VCD文件的大小(以字節為單位) 18 $fsdbDumpall; //記錄所有指定的信號值 19 20 end
如下圖所示:
之后就可以打開verdi查看dump.fsdb文件的波形