生成仿真波形vcd vpd fsdb

1. verilog系统函数生成vcd

VCD (Value Change Dump)是一个通用的格式。 VCD文件是IEEE1364标准(Verilog HDL语言标准)中定义的一种ASCII文件。它主要包含了头信息,变量的预定义和变量值的变化信息。正是因为它包含了信号的变化信息,就相当于记录了整个仿真的信息,我们可以用这个文件来再现仿真,也就能够显示波形。

特别说明的一点是,正是因为VCD记录了信号的完整变化信息,我们还可以通过VCD文件来估计设计的功耗,而这一点也是其他波形文件所不具备的。Encounter 和 PrimeTime PX (Prime Power)都可以通过输入网表文件,带功耗信息的库文件以及仿真后产生的VCD文件来实现功耗分析。

1
2
3
4
5
6
7
8
9
10
// 指明生成的文件名
$dumpfile("tb.dump") ;
//"tb.vcd"也可以
//dumpfile("tb.vcd");

//记录所有变量的值,也可以给函数设置参数只记录某些模块的某些变量
$dumpfile;
//还可以控制文件生成的时间,也可以不加这两句
$dumpfileon; //开始dump波形
$dumpfileoff;//停止

2. 生成vpd波形

vpd波形是synopsys公司的vcs dve需要读入的文件格式,可以用
**$vpdpluson;**产生

3. 生成fsdb波形

fsdb波形文件是verdi工具支持的文件格式,可以用vcs来产生。

步骤:

  1. 设计环境变量

在.bashrc文件下设置NOVAS_HOME变量

1
export NOVAS_HOME=$Synopsys_Dir/Verdi2015
  1. 用System verilog系统函数生成fsdb波形
1
2
3
4
5
6
7
initial begin
$fsdbDumpfile("tb.fsdb");
$fsdbDumpvars;
$fsdbDumpon;
#10000;
$fsdbDumpoff;
end
  1. 还要再VCS仿真命令中设置-P选项

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     novas = "/opt/Synopsys/Verdi2015/share/PLI/VCS/LINUXAMD64/novas.tab"
    pli = "/opt/Synopsys/Verdi2015/share/PLI/VCS/LINUXAMD64/pli.a"
    vcs \
    -full64 \
    +v2k \
    -f filelist \
    -debug_all \
    -sverilog \
    -R \
    -P $(novas) $(pli)
  2. 另一个参考方法

http://blog.chinaaet.com/heyuanpi/p/5100058552


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!