Debussy---快速上手(2)

fsdb display

Debussy本身不含模拟器(simulator),必须呼叫外部模拟器(如Verilog-XL or ModelSim)产生FSDB file,其显示波形的单元"nWave"透过读取FSDB file,才能显示波形或讯号值的变化。

FSDB文件产生

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

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

Debussy支持的波形格式是fsdb,是Fast Signal Database的简写。Debussy也可以读取vcd文件,在它读入vcd文件时,先自动把vcd文件转换成fsdb文件,然后在读入debussy。同vcd相比,fsdb文件小很多。而fsdb可以采用Modelsim软件进行产生。

要在ModelSim中仿真时直接生成fsdb文件,当然首先必须安装ModelSim和debussy。然后需要做两件事情:

  1. 是在ModelSim仿真的脚本中,需要添加一些命令来使得ModelSim能够调用debussy的一些命令。

软件平台为modelsim SE 6.2b 和debussy 5.4V9

【1】首先将debussy安装目录下的F:\Debussy\share\PLI\modelsim_pli54下的   Novas.dll文件复制到modelsim安装目录下的win32下 ;

【2】更改modelsim的配置文件modelsim.ini(该文件一般情况下是只读模式需要改为读写,在属性里面进行设置),然后找到: 

Veriuser =veriuser.s1

将其改为:

Veriuser = F:\Debussy\share\PLI\modelsim_pli54/WINNT/novas.dll

注意modelsim中的目录层次为 /   

【3】新建环境变量 PLIOBJS 

PLIOBJS = F:\Debussy\share\PLI\modelsim_pli54\WINNT\novas.dll

2、需要在testbench中添加产生fsdb的一些系统函数。当然这些系统函数不是ModelSim自带的,而是debussy的系统函数。所以第一步就是让modelSim也可以使用这些系统函数。

如何在modelsim里面产生.fsdb文件呢?可以在testbench文件里面输入如下代码:

initial begin

$fsdbDumpfile("Debussy.fsdb");//文件名称可以自行设定

$fsdbDumpvars;

end

关于怎么使用Modelsim这里就不多说了,这里需要跑完整个仿真流程,然后产生fsdb文件,并将波形数据保存到fsdb文件中,这里需要注意:如果没有关闭modelsim仿真是不能直接在debussy调入fsdb文件的,不然就没有显示,如下图所示:

 

在modelSim外部要调用fsdb文件前,要先在modelSim中结束仿真。如果不结束仿真,可以看到,在fsdb文件生成的同时,还会有如下相关文件生成,且前3个文件大小都为0。

wave_test.fsdb.chain

wave_test.fsdb.lock

wave_test.fsdb.slist

wave_test.fsdb.tlist

可以使用以下两种方式中的一种:

1、在ModelSim的Transcript窗口输入Quit –sim或者写在脚本中。

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

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

 

通过Modelsim软件产生的Debussy.fsdb文件如下图所示:

FSDB波形文件导入

nWave是用来查看信号波形的,所以使用nWave的前提就是你已经生成了格式为fsdb的波形文件(前面已经讲过,在ModelSim仿真时产生)。Debussy默认的界面是nTrace,我们在nTrace界面下,单击下图红色方框里的图标,即New Waveform。

出现以下窗口,点击打开文件

出现以下fsdb文件选择窗口,选择用modelsim产生的fsdb文件

完成文件导入之后接着需要导入信号,点击signal,选择get signals;

接着弹出如下图所示的窗口,根据下图提示进行选择需要查看波形的信号;

点击"OK"之后就出现在Modelsim产生的波形。

nWave工具的使用

有几个操作知识点:

1、改变信号位置,可以通过按住鼠标中键(即滚轮)进行移动。

2、如果想改变某个信号的颜色显示,可以在左边选中该信号,然后在菜单栏中WaveForm-> Color/Pattern进行选择。

3、右边波形窗口中有两条线,分别是黄线代表光标时间线(鼠标左键来点击),白色代表标记时间线(鼠标右键来点击),两者的数值在工具栏中有显示,并给出了两者之间的时间差。可以通过单击鼠标中建放大两者之间的显示,即铺满波形窗口。

4、状态机波形显示的数值,不够直观,怎么能显示定义的参数名字呢?软件还是提供了这功能的。切换到nTrace窗口,执行Tools –> Extract Interactive FSM,弹出如下窗口,选中all stages就可以显示状态机定义的名字了。

nTrace和nWave的交互使用

Debussy的强大更在于各个功能窗口之间的交互。

  1. 最实用的是我们可以在nTrace的源代码中想查看某个信号的波形,我们可以选中后按住鼠标中键别松开,直接拖到nWave进行显示,非常方便。

  1. 在调试波形过程中发现错误,我们可以双击鼠标左键,软件会自动定位到源代码中的位置,便于我们调试。

  1. 在nTrace中,执行Source –> Active Annotation可以标出仿真结果在source code下方,非常利于我们调试。在波形中选择一个时间点,那么在代码下方显示的就是这个信号在此时间点的值或者趋势

  1. 此外,还打开了参数注释,执行Source –> Parameter annotation,在状态机参数下方显示定义的数值。

5.在nTrace中,选中某个信号,如时钟信号clk_50M,选择下图红色矩形框中的箭头,可以实现在波形中前后移动。

大西瓜FPGA-->https://daxiguafpga.taobao.com

博客资料、代码、图片、文字等属大西瓜FPGA所有,切勿用于商业! 若引用资料、代码、图片、文字等等请注明出处,谢谢!

 

posted @ 2017-01-14 10:55  logic3  阅读(3354)  评论(0编辑  收藏  举报