Vivado和Modelsim联合仿真问题记录

写在前面

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

版本:Vivado2018.3、Modelsim10.7
安装时间:2021年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之后,在工程路径:20201019_fifo\20201019_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,重新仿真结果

  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值