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文件的波形