1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Vivado和Modelsim联合仿真问题记录

Vivado和Modelsim联合仿真问题记录

时间:2022-10-06 18:32:13

相关推荐

Vivado和Modelsim联合仿真问题记录

目录

写在前面Modelsim安装1.以管理员身份运行安装程序2.去掉mgls.dll和mgl64s.dll文件“只读”属性,直接双击运行patch64_dll.bat 编译Vivado仿真库1.以管理员身份运行Vivado,编译仿真库 联合仿真常用操作1. 缩短modelsim信号端口名2.记录所有信号仿真结果3. modelsim仿真验证后,修改源码,立刻实现原代码的recompile和仿真

写在前面

主要是对安装与联合仿真过程中的出现的问题,进行记录分享

版本:Vivado.3、Modelsim10.7

安装时间:7月5日

个人感觉,Modelsim的仿真功能真的比Vivado自带的仿真器功能强大太多,使用Vivado真的要学会使用Modelsim联合仿真。

联合仿真步骤参考:vivado与modelsim的联合仿真

Modelsim安装

1.以管理员身份运行安装程序

这一步很重要,关系到后面编译Xilinx仿真库,至少在我的电脑上,用管理员安装的软件后面才可以编译仿真库。

2.去掉mgls.dll和mgl64s.dll文件“只读”属性,直接双击运行patch64_dll.bat

有的教程说要用管理员运行patch64_dll.bat,但在我的电脑上,用管理员反而显示找不到mgls.dll和mgl64s.dll,直接双击运行patch64_dll.bat文件,就可以生成license文件。详细的过程网上有很多,可以参考modelsim 10.7安装教程,这里就不再赘述。

编译Vivado仿真库

1.以管理员身份运行Vivado,编译仿真库

这是困扰了我最久的问题,当我按照正常流程,点击Vivado的Compiler Simulatioon Libraries,调用Modelsim编译Xilinx的仿真库,总是会出现错误:

User Exception: The file specified with the MODELSIM environment variable does not exist! Please set this variable to an existing modelsim.ini file location.

原因:环境变量没有设置,

让我怀疑是不是自己Modelsim是不是装错了,重新安装了好多遍,直到找到上面modelsim 10.7安装教程,以管理员身份运行安装程序,这个错误才算解决

但是!!!!

又出现了新的错误:

User Exception: The file specified with the MODELSIM environment variable is not writeable! Please ……

说我没有权限读写,或者没有权限调用modelsim

看到这里明白了,没有权限,那就给你加上权限,用管理员身份运行Vivado,重新编译,成功!!!打开一个工程,仿真也成功!!!

注意:后面使用Vivado的时候也需要用管理员身份来运行,才可以正常调用Modelsim,否则会出错

联合仿真常用操作

1. 缩短modelsim信号端口名

在modelsim仿真波形界面,可以点击这个小按钮,不显示信号完整的端口路径,缩短信号端口名,方便查找目标信号

点击后

2.记录所有信号仿真结果

在用Modelsim,有时可能会因为忘记添加目标信号,不得不 将信号重新添加进仿真波形界面,再重新run波形

可以在仿真前,在指令栏中输入:log -r ./*

记录工程所有信号的仿真结果,当需要观察信号波形时,只需将信号添加进波形界面就可以观察信号了

这个操作比较适合小工程,大的工程记录所有信号,对电脑内存是个很大的负担

3. modelsim仿真验证后,修改源码,立刻实现原代码的recompile和仿真

仿真路径文件介绍

从vivado中调用modelsim之后,在工程路径:_fifo\_fifo.sim\sim_1\behav\modelsim下会产生如下文件(这里以fifo_test工程为例):

其中上述比较重要的文件为:

compile.bat——编译脚本;

xxxx_simulate.do——仿真脚本文件;

xxxx_wave.do——仿真波形属性文件;

simulate.bat——仿真脚本文件;

其他的比如xx_log即为对应的log文件,在编译或这仿真时,提示的warinings & errors也会在这里面显示,如果在软件中寻找不方便,可以在这里进行查找。

对应的xxx_rom_init_rx.dat和xxx_rom_init_tx.dat为初始ROM值,在Source文件中调用;

快捷编译

如果修改过tb文件或这RTL的源码文件,可以直接双击compile.bat进行编译,弹出cmd窗口进行编译(修改过源文件一定要记得编译,再进行仿真)。

如果出错窗口就一直显示,可根据提示内容进行修改。如果不出错,cmd窗口会自动退出。

感兴趣的可以用记事本打开此文件,内部通过modelsim执行了xxxx_compile.do文件,对每个已将加入到xxxx_compile.do的.v文件进行编译。

通过双击compile.bat文件进行编译,比使用vivado GUI进行调用方便。

快捷仿真

如果不打开vivado GUI,可以通过双击simulate.bat进行modelsim仿真。

脚本会自动打开Vsim窗口,并在脚本窗口运行xxxx_simulate.do脚本。

在xxxx_simulate.do脚本中,可以修改仿真的时间,波形属性文件等。

波形保存

如果在仿真时候,对波形进行了调整,比如添加了一系列波形名字,调整了波形的颜色,波形的属性,数值的格式等,可以直接在wave窗口下使用Ctrl + S,将波形保存为xxxx_wave.do文件,并将刚才描述的xxxx_simulator.do文件中修改为:

do {xxxx_wave.do}

这样,在下次使用xxxx_simulate.do的时候就会加载上次保存的波形属性了。

注意 ,如果只保存为wave.do可能造成下次被默认覆盖。

常用的操作

如果通过仿真波形调整到了BUG,需要修改源文件再进行仿真,笔者一般会这么操作:

在波形窗口中保存波形文件;

在Atom编辑器中修改了Source文件之后,双击compile.bat文件进行编译;

通过之后,在Vsim的Transcript窗口中,按方向键↑,找到命令:do xxxxsimulate.do

回车,等待仿真完成,继续查看波形;

这是一种操作方法

也可以在编译完以后,直接restart,再run,也可以查看修改后的波形,

但如果源码添加新的模块,这种操作方法会失效,建议还是使用do xxxxsimulate.do,重新仿真结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。