Dump(储存) FSDB脚本

 

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

 

posted @ 2021-07-07 10:24  will_w  阅读(5054)  评论(0)    收藏  举报