目录
一、安装准备
1.1 安装支持环境
操作系统:Windows系统(本文示例环境window10)、Red hat、Centos、SUSE Linux、Ubuntu
安装包:vivado2024.2 安装包,modelsim2020.4安装包
下载链接:Downloads
需注意:完整的安装包大小达到了有史以来的最大值129.54G,需充分考虑到安装环境磁盘空间大小
1.2 磁盘空间要求
1)下载的vivado2024.2压缩包大小130G
2)解压后的文件夹大小124G,如果只是安装Vivado的基础组件功能,安装目录大小最少79G,因此共需约至少210G的空间
安装文件夹大小79G
3)modelsim安装包 750M+安装大小1.5G
二、Vivado2024.2安装与配置
2.1 Vivado安装
将下载的vivado安装包解压, 解压后,进入到解压后的文件夹中,如下图所示,双击“xsetup.exe”进行安装。
进入安装界面,点击“Next”
进入到选择安装工具的界面,可选择的包括Vitis,Vivado,Vitis Embedded Development,BootGen,Lab Edition,Hardware Server,Power Design Manager,Documentation Navigator,根据实际需要选择安装。此处以选择Vivado为例后,点击“Next”
Vivado版本选择,有2个选项,个人使用一般是选择“Vivado ML Standard”
进入到组件选择界面,分为设计工具(Design Tools)选择以及器件选择(Device),如果是个人学习使用,设计工具建议选择Vivado Design Suite和Power Design Manager(功耗管理工具)和DocNav(文档工具,包含各种使用文档),Device使用默认选项
进入到接受license协议界面,全部无条件勾选即可,否则"Next"一直置灰,全部勾选后点击“Next”
进入安装路径设置界面,默认为C盘,此处因C盘空间不够,以红色告警提示,需修改成实际空间足够的路径安装。
选择有效的安装路径后,将不存在空间不足的告警,同时Installation Locations中会显示安装的插件,此处为Vivado,Vitis_HLS,PDM,Docnav和前面设置的一致,,Disk Space Required中会显示当前路径可用空间以及安装需要空间58.85G,再点击“Next”图标。
此时会再次对这次安装的设置概览,确保与预期的一致,点击“Install”进行安装
安装中,左上角有安装进度显示,安装时间会比较久,耐心等待安装完
安装完后桌面会有以下四个图标,点击“Vivado 2024.2”打开
2.2 License导入
进入到“Help->Manage License”
选择“View License Status”查看当前license状态,右侧内容为空表示无license
进入“Manage License Search Paths”中,在LM_LICENSE_FILE中输入lic文件地址,点击“Set”保存
重新进入查看license状态,已经多了很多工具的license信息
重新打开vivado,安装破解成功的界面
三、Modelsim安装
3.1 Modelsim版本
Modelsim版本路径以及破解工具
下载链接:https://pan.baidu.com/s/1Yy-w_7VfSa6cMzUyPw7atg 提取码: c4x4
3.2 安装步骤
1、下载解压安装包,得到软件原程序和patch破解文件夹;
2、首先双击文件“modelsim-win64-2020.4-se.exe”安装软件,选择“下一步”,
选择“下一步”,按默认路径安装即可。
选择“同意”
安装中,几分钟就能结束
注意:这一步选“否”,不要安装Key Driver;
完成安装界面
3.3 license导入
1、软件成功安装后,先不运行软件,打开crack 1破解文件夹,将MentorKG.exe、mgls64.dll和patch64_dll.bat复制到安装目录下的win64文件夹中;默认路径:C:\modeltech64_2020.4\win64,需修改为实际设置的安装路径
进行覆盖替换
管理员身份运行patch_dll.bat,将生成的许可证另存为LICENSE.TXT,保存到软件安装目录下;
接下来,创建系统环境变量:
变量名:LM_LICENSE_FILE
变量值:LICENSE.TXT的路径。
默认为:C:\modeltech64_2020.4\win64\LICENSE.TXT
软件成功激活,运行即可免费使用
3.4 license失败问题
执行patch_dll.bat失败,失败原因是找不到mgls.dll,mgls64.dll文件
mgls.dll可不管,先确保mgls64.dll的确存在该路径下,在该路径直接打开cmd窗口
直接输入“cmd”
再逐条复制里面的命令执行
四、Vivado配置modelsim
4.1 生成仿真库
打开vivado,进入“Tools->Compile Simulation Libraries”进行仿真库编译
仿真库设置,“Simulation”设置为“Modelsim Simulator”,language,Library,Family为默认值“All”即可
“Compiled library location”设置为编译的仿真库所存放的路径,该路径自定义,"Simulation executable path"设置为之前安装的modelsim的路径(包含modelsim.exe文件的路径)。
仿真库编译中,编译完成大概需要一个半小时
编译完成后在 “Compiled library location”设置的路径下可看到仿真库文件
大小1.62G
同时仿真库目录下有一个modelsim.ini文件,记录了当下所有库与路径
所有库与对应路径,该内容可用于后续章节中对于modelsim批量添加库文件
4.2 modelsim配置仿真库(逐个添加)
modelsim安装完后只有一些自带的库,如下图
打开modelsim,任意选中一个存在的library,鼠标右键弹出弹框,选择“New->library”创建新库
因为前面已经使用vivado编译了仿真库,故"Create"选择“a map to an existing library”,“library name”自定义,最好和库文件夹同名方便识别,"Library Maps to"选择需添加的仿真库路径,此处以路径E:\lib1\zynq_ultra_ps_e_vip_v1_0_12下的库为例
添加成功后如图所示,在zynq_ultra_ps_e_vip库下面可以看到相关的文件
4.3 modelsim添加仿真库(批量添加)
上一小节介绍的是单个库添加,当有较多库需添加时该方法效率低,此时就需要批量添加的操作,进入modelsim安装环境中,安装路径下有一个modelsim.ini文件,默认文件是只读的,取消只读属性后打开文件
在"Library"下添加vivado编译的仿真库路径,可将上一章节中编译库中的modelsim.ini的库文件内容复制到此处
如图所示进行添加保存,此处添加了一千多个库
重新打开modelsim,都是通过modelsim.ini批量添加的库
4.4 Vivado设置modelsim仿真
上述步骤已完成仿真库的编译,modelsim仿真库路径配置,最后一步是将Vivado的默认仿真工具设置为modelsim。进入“Tool->Settings”,将Target simulator设为Modelsim Simulator,保存设置即可
五、仿真操作示例
5.1 设计示例
以一个计数器的例子为例,Verilog代码如下
module counter (
input wire clk, // 时钟信号
input wire rst_n, // 异步复位信号,低电平有效
input wire en, // 计数使能信号
input wire load, // 加载使能信号
input wire [7:0] data, // 并行加载数据
output reg [7:0] count // 计数器输出
);
// 计数器逻辑
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
// 异步复位
count <= 8'b0;
end else if (load) begin
// 同步加载
count <= data;
end else if (en) begin
// 计数使能
count <= count + 1;
end
end
endmodule
测试文件代码
`timescale 1ns/1ps
module counter_tb;
// 输入信号
reg clk;
reg rst_n;
reg en;
reg load;
reg [7:0] data;
// 输出信号
wire [7:0] count;
// 实例化被测模块
counter uut (
.clk(clk),
.rst_n(rst_n),
.en(en),
.load(load),
.data(data),
.count(count)
);
// 时钟生成
initial begin
clk = 0;
forever #10 clk = ~clk; // 50MHz时钟
end
// 测试激励
initial begin
// 初始化输入
rst_n = 0;
en = 0;
load = 0;
data = 8'h00;
// 复位
#20 rst_n = 1;
// 测试1: 正常计数
en = 1;
#200; // 计数10个周期
// 测试2: 暂停计数
en = 0;
#100;
// 测试3: 加载数据
load = 1;
data = 8'h55;
#20;
load = 0;
en = 1;
#100;
// 测试4: 复位
rst_n = 0;
#20;
rst_n = 1;
en = 1;
#100;
// 结束仿真
$finish;
end
// 监控输出
initial begin
$monitor("Time = %t, rst_n = %b, en = %b, load = %b, data = %h, count = %h",
$time, rst_n, en, load, data, count);
end
endmodule
5.2 Vivado运行流程
将源文件和测试文件添加到工程中
执行完implement阶段
5.3 Vivado执行仿真
Implement成功后,如下图,进行仿真,选择“Post-Implementation Functional Simulation”
仿真会自动打开modelsim展示结果,但显示时间精认默认,不友好,如下图
按下图标号一次操作步骤1,2,3,步骤1位restart,步骤3位run,在wave中重新生成结果
再点击下图红框图标“zoom full”.展示结果
鼠标点击波形任一需要查看的位置,会出现一根黄色的定位线,不断地进行放大,如下图即可看到清晰的结果
六、常见问题
6.1 Flow Navigator窗口中无法执行simulation操作
如下图,如之前出现过仿真报错的情况,则此时“Flow Navigator”窗口中"Simulation"下的仿真选项是reset状态,无法执行simulation
进入“Sources->Simulation Sources” 下面的仿真文件夹,鼠标右键弹出仿真弹框,选择“Run Simulation”即可执行各阶段的仿真
6.2 切换工程文件和源文件,仿真失败
在vivado中如果一个工程和仿真结束后,需要切换到其他工程进行仿真时,对应的project summary中,Top module name需设置为新的源文件模块
仿真文件切换,进入“Tools->Settings”界面
进入“Flow->Settings->Simulation settings”界面,“Simulation top module name”需设置为simulation 文件的module,非Design Sources中.v文件的module
6.3 仿真输出结果为z
运行仿真后,如果某个变量的值一直为1'hz,如下图的tesett,表示tesett的状态为不定状态,新手容易犯的一个错误是无信号输入,此时要检查设计仿真文件,是否无信号传入到tesett
6.4 license无效
安装完后查看View License Status界面显示为空白
出现该问题的原因可能是安装vivado前环境变量配置了其他的license,导致安装后失效
解决方法,重新进行license导入操作,将license放置到安装目录下,在license manager中将LM_LICENSE_FILE配置为license路径
配置完后点击“set”图标,重启vivado即可。重启后重新进入查看View License Status,显示不为空白
6.5 Vivado和Modelsim lic环境变量同名
前面的配置中Vivado和Modelsim的License环境变量同名LM_LICENSE_FILE,设置方法是同时设置两个变量值即可