首页 > 代码库 > modelsim(3) - tips(zt)

modelsim(3) - tips(zt)

1)如果需要跟踪信号,可以使用dataflow,直观,缺点是后仿太慢!

http://www.cnblogs.com/asus119/archive/2011/04/01/2002525.html

    ModelSim SE6..2b还有一个很好用的功能。就是可以看整个文件所形成的数据流程,各个模块之间的逻辑联系。具体方法是在仿真后执行命令  view datalflow 就可以打开dataflow文件,在dataflow的窗口菜单中点击add中的view all nets就可以观察到各个模块之间的逻辑联系,模块一般都为initial模块、always模块、assign模块等等。点击中一个模块,则这个模块变 为红色。这时候在view菜单下点击show wave就可以在窗口下方弹出wave窗口,不同的是这个wave窗口所显示的信号变量仅为点击中的模块所包括的信号变量,这时候也可以点击仿真run –all小图标来仿真有关这个模块的输入输出关系。

2)偶尔看到这个网页,介绍一些tips,感觉OK

http://wiki.fpganotes.com/doku.php/ise:sim:modelsim_tips

ModelSim Tips

 

Verilog FSM state name

Verilog写的状态机在仿真时状态名是数字。如果能使用状态名来调试就会方便许多。

使用virtual function。太长,方法请参考这里

ModelSim的系统设置

ModelSim的设置信息一个是modelsim.ini,另一个在注册表[HKEY_CURRENT_USER\Software\Model Technology Incorporated\ModelSim]路径下

如果要使用两个自己编译的库

众所周知,ModelSim PE/SE是要编译Xilinx库的。如果既想要ISE8.1的库,又想要ISE8.2的库,直接编译两次会使ModelSim的lib极其混乱。

解决方案就是,保留三个modelsim.ini文件,一个8.1的,一个8.2的,一个原始的。8.1的和8.2的很好理解,什么时候要用就复制到Modelsim安装目录下去;原始的为了以后还要编译别的版本而保留。

保存所有信号记录

log -r /*

可以将所有信号的翻转情况记录下来,如果需要在Wave窗口再添加信号,就不用restart,添加信号,然后再重新run了。

View VCD Files

Run command in ModelSim console:

vcd2wlf xx.vcd xx.wlf

Then use File –> Open to open the wlf file.

waveform compare

比较两个wlf文件。

Tools -> Waveform Compare -> Comparision Wizard

dataflow hierarchy

在dataflow窗口显示出某个信号所在的hierarchy。

Dataflow窗口 -> Tools -> Options -> Show Hierarchy

udo file

将某个添加了除顶层端口信号的wave的do文件保存下来,以便下一次开启时不用重新添加信号和restart。此方法是我觉得最简单的调试方法。

Wave窗口 -> File -> Save -> Format -> x.do

打开do文件并将有用的内容复制到ISE工程目录下的.udo文件中,以后每次做仿真都可以不用再添加信号了。

如果更改了源代码需要重新compile,也不需要将ModelSim关掉,只需要按向上键,执行一次xx.fdo或者xx.tdo文件即可,因为fdo和tdo文件都会自动调用udo。

 

Change Directory

改变当前目录,可以使用File菜单下的Change Directory,也可以在Transcript窗口中直接输入cd命令。

只不过cd命令不认windows中的反斜杠,会以为这是一个转义符。解决方法当然有很多,比如手动把所有的\都改成/。

更方便的方法是在这个用到\的路径两边加上花括号,比如:

cd {F:\Project}

ModelSim仿真结果不正确

如果仿真出现在某些机器上是正确的,某些机器上不正确,或者没有出现想象中的结果又没有找到错误所在,可以尝试关掉优化选项。即在vsim命令中加 -novopt 属性。 参考:AR24776,AR24293

常用快捷键

  • F4: Wave缩小至全图
  • F5: 缩小
  • F6: 放大
  • Ctrl + 鼠标左键按住后拖动 : 放大局部

modelsim(3) - tips(zt)