网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61EDA中国电子网 >> 服务导航 >> 帮助中心 >> HDL语言 >> 正文
  使用ModelSim仿真时同时生成fsdb文件           ★★★ 【字体:
使用ModelSim仿真时同时生成fsdb文件
作者:Free    文章来源:本站原创    点击数:    更新时间:2008-2-16    

ModelSim本身也是一个可以提供调试功能的平台,但是相比之下,Debussy的调试功能更加强大。比如一个很有用的功能:如果我预先只想看设计中的10个信号,但是我可能在debug时发现又想看另外5个信号,在modelSim中,通常需要再加信号到波形中,然后重新跑仿真。而如果使用debussyfsdb文件则可以把设计中的全部信号或者指定层次之上的全部信号都dump出来,debug时想看哪个就看哪个,不用重新运行仿真。

 

因此,通常可以考虑使用ModelSim仿真,而使用debussy来进行调试。这里的调试主要是指观测波形,进行bug原因分析,而不是广义的调试。广义的调试应该包括仿真本身。Debussy不支持仿真功能。

 

Debussy支持的波形格式是fsdb,是Fast Signal Database的简写。Debussy也可以读取vcd文件,在它读入vcd文件时,先自动把vcd文件转换成fsdb文件,然后在读入debussy

 

vcd相比,fsdb文件小很多。

 

 

 

这是debussy帮助文件中的说明,更详细的说明可以参考debussy帮助文件:

 

Debussy supports a new and open FSDB file format that has the following advantages over the standard VCD file format:

 

l        An FSDB file is much more compact than the standard VCD file. Typically, an FSDB file is about 5 to 50 times smaller than a VCD file.

 

l        The simulation run time for an FSDB file is faster than that for a VCD file. With FSDB files, Debussy displays waveform. and back-annotated signal values faster.

 

Debussy provides several PLI routines that allow you to dump an FSDB file instead of a VCD file directly during a simulation. For existing VCD files, Debussy provides the conversion utility vfast, which is used to convert VCD files to FSDB files. In addition, Debussy converts VCD files to FSDB files automatically when you open a VCD file using the nTrace pull-down menu command File->Load Simulation Result or nWave File->Open. Debussy also provides another conversion utility, fsdb2vcd, which converts FSDB files back to VCD files.

 

 

 

要在ModelSim中仿真时直接生成fsdb文件,当然首先必须安装ModelSimdebussy

 

然后需要做两件事情:

 

1, 是在ModelSim仿真的脚本中,需要添加一些命令来使得ModelSim能够调用debussy的一些命令。当然这些命令对于VHDLverilog又有不同,本文只针对verilog设计。VHDL的设计如何做,在debussy的帮助文件中有说明,并且网上也已经有了很多帖子说明这个问题。

 

2, 是需要在testbench中添加产生fsdb的一些系统函数。当然这些系统函数不是ModelSim自带的,而是debussy的系统函数。所以第一步就是让modelSim也可以使用这些系统函数。相关的命令可以参考下面章节。当然也可以在脚本中进行相关操作,具体操作参考debussy帮助文件。

 

1步的操作如下:

 

假设modelSim安装根目录为<mds>, Debussy的安装根目录为<dbs>,那么需要在modelSim的仿真脚本中的vsim命令行加入这样调用PLI的选项:

 

-pli <dbs>/ share/PLI/modelsim_pli/WINNT/novas.dll

 

或者可以在<dbs>\ share\PLI\modelsim_pli\WINNT目录把novas.dll拷贝到ModelSimwin32目录,然后使用–pli <mds>/win32/novas.dll

 

注意ModelSim的目录层次是使用前先斜杠“/”而不是Windows系统的后向斜杠“\”。

 

 

 

2步在测试平台添加fsdb系统函数,典型的可以把如下语句加到测试平台中:

 

initial

 

 begin

 

   $fsdbDumpfile("wave_test.fsdb");

 

   $fsdbDumpvars;

 

 end

 

很多网上的帖子说,生成fsdb文件后,如果不关闭modelSim,就用debussy打开fsdb文件,会提示错误,而导致不能打开fsdb文件;或者打开文件后,信号也能导入,但是全部信号都显示NF,也就是没有波形出来。并由此认为这是debussy或者modelSim的问题。其实这是因为在测试平台控制不当,fsdb文件还没有生成好。就像我们通常在tb中要把内容输出到文件要先新建一个文件,写完后要及时关闭文件一样,在modelSim生成fsdb文件时,也是先新建fsdb文件,然后写入波形数据。因此在modelSim外部要调用fsdb文件前,要先在modelSim中结束仿真。如果不结束仿真,可以看到,在fsdb文件生成的同时,还会有如下相关文件生成:

 

wave_test.fsdb.chain

 

wave_test.fsdb.lock

 

wave_test.fsdb.slist

 

wave_test.fsdb.tlist

 

且前3个文件大小都为0

 

 

 

可以使用:

 

1,ModelSimTranscript窗口输入Quit sim;或者写在脚本中。

 

2,在tb中使用系统函数$finish()来结束仿真,并且在ModelSim提示是否finish仿真时,点击yes,这样会关闭ModelSim,同样可以结束fsdb文件的写操作和关闭操作。

 

注意:在仿真tb中使用$stop()系统函数,或者使用$finish()但是在ModelSim提示是否finish仿真时点击no,这两种情况下都不会结束对fsdb文件的操作。

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    ModelSim使用的一点心得
    我的仿真工作流程(Verilog/M…
    关于仿真的一些看法
    ModelSim作布局布线后仿真的…
    怎样用modelsim做后仿
    ModelSim se完全编译Xilinx库…
    Modelsim 包会教程…
    如何在ModelSim里仿真Altera…
    Modelsim 初学者心得…
    Debussy和modelsim协同仿真(…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长: