Modelsim的安装及Modelsim+Vivado联合仿真教程
注意:本文中所有图片均使用阿里云OSS存储,如遇到图片无法显示,请联系我balddonkey@outlook.com
0. 安装前准备
0.1 检查版本号
Modelsim与Vivado的联合仿真需要版本号相匹配,Xilinx官方文档UG973中给出了所有版本的Vivado兼容Modelsim的版本情况,Xilinx-UG973中 Requirements 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程序
如下图所示。
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文件,如下图所示。
将该文件保存到Modelsim安装目录的根目录下面,...\modeltech64_10.6d\LICENSE.TXT
1.2.2 环境变量
依次按照如图所示的顺序打开环境变量设置。右键“此电脑” -> 属性 -> 高级系统设置(在windows11之前的系统上此页面可能有所不同,高级系统设置在左侧边栏菜单) -> 环境变量
按照以下步骤新建环境变量,变量名为 MGLS_LICENSE_FILE ,变量值为LICENSE.TXT文件的地址,如图所示。
如果有必要,请同时新建 LM_LICENSE_FILE,变量值为LICENSE.TXT文件的地址,在部分计算机上,需要此环境变量,而非 MGLS*。
1.2.3 最后的工作
取消安装目录下 modelsim.ini文件的只读选项,如图所示。
使用文本编辑器,例如记事本,Vscode,Notepad++,SublimeText,Fleet等,打开该配置文件,搜索 VoptFlow ,修改 "VoptFlow = 1" 为 "VoptFlow = 0" 以关闭自动优化。
1.3 Enjoy Modelsim
安装和破解完成,此时Modelsim可以正常使用。以下部分是Modelsim+Vivado联合仿真的配置教程。
2. Modelsim+Vivado联合仿真
2.1 预编译xilinx的IP库
打开任意一个工程,按照以下的步骤编译IP。
注意,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分钟左右完成,取决于电脑性能。
我这里一共编译了28分钟,但是遇到了错误,不过不影响。
2.2 配置工程的仿真器
依次点击,Tools -> Settings -> 3rd Party Simulators
在此处指定Modelsim安装目录,以及默认的编译库(2.1节中指定的地址)。然后点击 Apply。注意,Modelsim的安装目录并不是安装目录的根目录,而是~/win64/。
在左侧 Simulation 选项卡中修改 Target Simulator 为 Modelsim,检查编译库位置,如果不是前面那个地址,那么你就需要手动的选择编译库的地址,刚刚设定的默认编译库地址仅在新建工程后有效。
之后点击 Run Simulation 就可以正常调用Modelsim进行仿真了。
2.3 Modelsim仿真操作
可以看到Modelsim的仿真窗口与Vivado自带的类似,这里简单放一张图说明一下,后面介绍一些常用的操作。
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选项,确保配置定点化时只选中了一个信号)
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文件,默认保存到工程的仿真目录下,如果重置仿真,则保存的数据文件会被删除,因此我建议把数据文件保存到工程的根目录下,而非仿真目录。
如何加载波形数据文件呢?打开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