Modelsim的安装及Modelsim+Vivado联合仿真教程

注意:本文中所有图片均使用阿里云OSS存储,如遇到图片无法显示,请联系我balddonkey@outlook.com

0. 安装前准备

0.1 检查版本号

Modelsim与Vivado的联合仿真需要版本号相匹配,Xilinx官方文档UG973中给出了所有版本的Vivado兼容Modelsim的版本情况,Xilinx-UG973Requirements and Setup\(\rightarrow\)Compatible Third-Party Tools

方便起见,我在这里整理了从2016.1到2022.2的支持情况,如下表所示。过早的版本请参考UG973。

Vivado版本号 Modelsim版本号
Vivado Design Suite 2022.2 Mentor Graphics ModelSim DE (2022.2)
Vivado Design Suite 2022.1 Mentor Graphics ModelSim SE (2021.3)
Vivado Design Suite 2021.2 Mentor Graphics ModelSim SE (2020.4)
Vivado Design Suite 2021.1 Mentor Graphics ModelSim SE (2020.4)
Vivado Design Suite 2020.2 Mentor Graphics ModelSim SE (2020.2)
Vivado Design Suite 2020.1 Mentor Graphics ModelSim SE (2019.4)
Vivado Design Suite 2019.2 Mentor Graphics ModelSim SE/DE/PE (2019.2)
Vivado Design Suite 2019.1 Mentor Graphics ModelSim SE/DE/PE (10.7c)
Vivado Design Suite 2018.3 Mentor Graphics ModelSim SE/DE/PE (10.6c)
Vivado Design Suite 2018.2 Mentor Graphics ModelSim SE/DE/PE (10.6c)
Vivado Design Suite 2018.1 Mentor Graphics ModelSim SE/DE/PE (10.6c)
Vivado Design Suite 2017.4 Mentor Graphics ModelSim SE/DE/PE (10.6b)
Vivado Design Suite 2017.3 Mentor Graphics ModelSim SE/DE/PE (10.6b)
Vivado Design Suite 2017.2 Mentor Graphics ModelSim SE/DE/PE (10.5c)
Vivado Design Suite 2017.1 Mentor Graphics ModelSim SE/DE/PE (10.5c)
Vivado Design Suite 2016.4 Mentor Graphics ModelSim SE/DE/PE (10.5c)
Vivado Design Suite 2016.3 Mentor Graphics ModelSim SE/DE/PE (10.5c)
Vivado Design Suite 2016.2, 2016.1 Mentor Graphics ModelSim SE/DE/PE (10.4d)

请下载与您的Vivado版本对应的Modelsim。

0.2 准备必备文件

一般应包含以下几个文件:

  • modelsim-win64-10.6d-se.exe: Modelsim对应版本安装包
  • mgls.dll: 32位Modelsim破解需要的文件
  • path_dll.bat: 32位Modelsim破解需要的文件
  • mgls64.dll: 64位Modelsim破解需要的文件
  • path64_dll.bat: 64位Modelsim破解需要的文件
  • MentorKG.exe: 用于生成License文件的Key Generator程序

如下图所示。

image-20221029104903236

1. 开始安装

1.1 安装Modelsim

运行“modelsim-win64-10.6d-se.exe”,一直点击 下一步 就可以。注意安装目录支持直接编辑,不需要手动打开文件夹。

1.2 破解Modelsim

1.2.1 补丁与许可文件

将 0.2 节提到的除安装文件的其他5个文件复制到 ...\modeltech64_10.6d\win64 路径下,其中 ... 是你的安装路径,选择“替换所有文件”。

运行“patch64_dll.bat”,此时会生成一个License文件,如下图所示。

image-20221029130832141

将该文件保存到Modelsim安装目录的根目录下面,...\modeltech64_10.6d\LICENSE.TXT

1.2.2 环境变量

依次按照如图所示的顺序打开环境变量设置。右键“此电脑” -> 属性 -> 高级系统设置(在windows11之前的系统上此页面可能有所不同,高级系统设置在左侧边栏菜单) -> 环境变量

image-20221029131357811

按照以下步骤新建环境变量,变量名为 MGLS_LICENSE_FILE ,变量值为LICENSE.TXT文件的地址,如图所示。

image-20221029131907018

如果有必要,请同时新建 LM_LICENSE_FILE,变量值为LICENSE.TXT文件的地址,在部分计算机上,需要此环境变量,而非 MGLS*。

1.2.3 最后的工作

取消安装目录下 modelsim.ini文件的只读选项,如图所示。

image-20221029132206256

使用文本编辑器,例如记事本,Vscode,Notepad++,SublimeText,Fleet等,打开该配置文件,搜索 VoptFlow ,修改 "VoptFlow = 1" 为 "VoptFlow = 0" 以关闭自动优化。

image-20221029132602707

1.3 Enjoy Modelsim

安装和破解完成,此时Modelsim可以正常使用。以下部分是Modelsim+Vivado联合仿真的配置教程。

2. Modelsim+Vivado联合仿真

2.1 预编译xilinx的IP库

打开任意一个工程,按照以下的步骤编译IP。

image-20221029205508243 image-20221029205520499

注意,Compiled library location不能随便乱选,也不能用默认,默认是当前工程文件夹下,这个编译后的我们可以给所有工程使用,仿真的时候就不用再一次次编译了,建议取名字为 xilinx_compiled_lib。在Vivado2020.2之后的版本中,需要指定GCC路径,GCC的官方下载地址如下,gcc - the gnu compiler collection,不要去各种下载站下载。如果不会下载,也可以指定Vivado自带的gcc路径,如 >D:\Xilinx\Vivado\2020.2\tps\win64\msys64\mingw64\bin [1]

点击 Compile 即可开始编译,Tcl console 中可以看到实时进度,大约需要30-60分钟左右完成,取决于电脑性能。

image-20221029215531008

我这里一共编译了28分钟,但是遇到了错误,不过不影响。

2.2 配置工程的仿真器

依次点击,Tools -> Settings -> 3rd Party Simulators

image-20221029221115230

在此处指定Modelsim安装目录,以及默认的编译库(2.1节中指定的地址)。然后点击 Apply。注意,Modelsim的安装目录并不是安装目录的根目录,而是~/win64/

image-20221029220030189

在左侧 Simulation 选项卡中修改 Target SimulatorModelsim,检查编译库位置,如果不是前面那个地址,那么你就需要手动的选择编译库的地址,刚刚设定的默认编译库地址仅在新建工程后有效。

之后点击 Run Simulation 就可以正常调用Modelsim进行仿真了。

2.3 Modelsim仿真操作

可以看到Modelsim的仿真窗口与Vivado自带的类似,这里简单放一张图说明一下,后面介绍一些常用的操作。

image-20221029221903229

2.3.1 信号分组

首先,可以选中 Wave 窗口,Ctrl+A,Delete,把默认这些信号都删除掉。

然后,在左边的 Sim 窗口中,单击选中父层级,例如图中的 tb_fft_demo 和 下一级的 tb_fft_demo ,使用 Ctrl+W 可以将该层级下的所有信号添加到仿真窗口,按照这个操作,把所有子模块的信号都添加进去,不要担心信号太多会乱,只有Vivado会。

此时右侧仿真窗口已经有许多信号,此时,Ctrl+A 全选,然后 Ctrl+G,Modelsim就可以给我们自动分好组。如果觉得名字太长,可以点击仿真窗口左下角的六个图标中左上角那个图标,toggle leaf names <-> full names。依次点击 “-” ,就可以看到我们的各个子模块了,想要看哪个模块,就点开就可以了。

就我个人而言,这个功能是完胜Vivado自带的仿真工具的。

2.3.2 信号查找

Ctrl+F,与Vivado一样,可以查名字,也可以查值,不过有一点我比较喜欢的是默认是查名字,夸夸。

2.3.3 定点化设定

右键信号,依次点击 Radix -> Global Signal Radix -> Custom Fixed/Float...,Modelsim在Radix菜单中就提供了对应的定点化选项,只用设置一次,之后就不用来回设定了。(注意:在选中多个信号的时候没有Custom Fixed/Float选项,确保配置定点化时只选中了一个信号)

image-20221029223135263

2.3.4 快捷键快速定位

Modelsim最方便的莫过于他的快捷键了。

在仿真窗口,按下 I,就可以放大(Zoom In),按下 O ,就可以缩小(Zoom Out),按下 C,就可以把标尺当前位置移动到窗口中间并放大,按下 F ,就可以缩小到全局(Zoom Full),查看整体的情况。在缩小的情况下,连续按多次C,看可以快速查看某个位置的信号情况。

Tab,在选择了某个信号的条件下,可以快速跳转到它的下一个跳变沿,利用 Valid 或者Start等信号的特性,可以快速定位到一段数据的起始或是结束。

它的快捷键太多了,这里只介绍了几个必须的,Google上有很多关于Modelsim的操作手册,感兴趣的可以学习。

2.3.4 波形配置保存

类似Vivado的wcfg,在Modelsim的仿真界面按 Ctrl+S 可以保存 .do文件,默认名为 wave.do,可以将波形配置保存,几乎包括所有信息。

如何加载配置呢?在使用默认的保存路径的情况下,下次仿真打开Modelsim窗口,只需要在命令行输入 > do wave.do,即可加载保存的波形配置。

2.3.5 波形数据保存

保存波形数据文件的好处是,即便你关闭了Modelsim和Vivado,下次打开Modelsim就可以加载此文件,观察上次的仿真结果,而不需要重新仿真,并且你还可以重设信号和信号分组,> do wave.do 命令也是允许的。

首先选中 Sim 窗口,然后依次点击 File -> Save Dataset,或者直接按 Ctrl+S,就可以保存波形数据文件,.wlf文件,默认保存到工程的仿真目录下,如果重置仿真,则保存的数据文件会被删除,因此我建议把数据文件保存到工程的根目录下,而非仿真目录。

image-20221029225136890

如何加载波形数据文件呢?打开Modelsim(全新的也可以),Files -> Open,打开保存的 wlf 文件,如果当前工作目录在工程下,可以直接执行 **> do wave.do **,否则可以用传统的 Ctrl+W, Ctrl+G 的方法加载信号,保存的波形数据就会再次呈现在仿真窗口。

2.3.6 不用修改testbench重新编译直接导出数据

modelsim 自带 list 功能,借助该功能以及文本处理工具可以很轻易的导出数据并提供给 matlab 或者 vhdl 使用。请参照以下步骤:

https://www.cnblogs.com/devindd/articles/17426494.html

参考资料


  1. https://blog.csdn.net/weixin_42837669/article/details/107829499 ↩︎

posted @ 2022-10-28 20:07  devindd  阅读(4736)  评论(2编辑  收藏  举报