搜索
bottom↓
回复: 0

《ATK-DFPGL22G之FPGA开发指南_V1.0》第五章Modelsim软件的安装和使用

[复制链接]

出0入234汤圆

发表于 2023-1-11 15:55:56 | 显示全部楼层 |阅读模式
本帖最后由 正点原子 于 2023-1-11 15:55 编辑

1)实验平台:正点原子紫光PGL22G开发板
2)购买链接:https://item.taobao.com/item.htm?&id=692368045899
3)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-340253-1-1.html
4)正点原子官方B站:https://space.bilibili.com/394620890
5)正点原子FPGA交流群:994244016 lQLPJxaFi2zaB4UWWrDAMgIsFEW2pwLb3abnwDMA_90_22.png
lQDPJxaFi2nfFizMjM0CbLCPlxn_FVheIQLb3aGrwFQA_620_140.jpg

lQLPJxaFi2nfFhLMkM0BXrDNvOUyeU_FPgLb3aGvQNIA_350_144.png



第五章Modelsim软件的安装和使用
Mentor公司的ModelSim是工业界使用广泛的语言仿真器之一,它支持Windows和Linux系统,是单一内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、单一内核仿真,不仅编译仿真速度业界最快、编译的代码与平台无关,而且便于保护IP核。它还提供了最友好的调试环境,具有个性化的图形界面和用户接口,为用户加快调试提供强有力的手段,它是FPGA/ASIC设计的首选仿真软件。
本章包括以下几个部分:
5.1ModelSim的安装
5.2ModelSim的使用
5.3ModelSim手动仿真
5.4ModelSim与PDS的联合仿真

5.1Modelsim的安装

Modelsim有几种常见的版本:SE(System Edition)、PE(Personal Edition)和OEM(Orignal Equipment Manufactuce,即原始设备制造商),其中SE是最高级的版本,而集成在Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是OEM版本。我们这里选择使用的是功能最全的SE版本。
首先在【正点原子】ATK-DFPGL22G开发板工具盘(B盘)→Modelsim文件夹下找到Modelsim的安装包文件(注意:由于网盘容量有限,我们将FPGA开发软件PDS和仿真软件Modelsim放在B盘),文件列表如下图所示:
Modelsim软件的安装和使用601.png

图 5.1.1 Modelsim安装包文件夹

双击运行“modelsim-win64-10.4-se.exe”文件,进入如图 5.1.2所示的modelsim软件的安装引导页面。
Modelsim软件的安装和使用777.png

图 5.1.2 安装引导页面

我们直接点击【Next>】,进入如图 5.1.3所示页面。
Modelsim软件的安装和使用909.png

图 5.1.3 选择安装路径

为了不占用系统盘空间和有条理的管理电脑安装的软件,这里我们不使用默认的安装路径,更改安装路径到D盘,如上图所示。
接下来点击【Next>】,弹出图 5.1.4所示界面
Modelsim软件的安装和使用1078.png

图 5.1.4 创建安装目录

这是因为D盘下面没有该目录,所以我们点击“Yes”,创建该目录。然后进入图 5.1.5所示界面。
Modelsim软件的安装和使用1213.png

图 5.1.5 协议认同

选择“Agree”,进入图 5.1.6所示页面。
Modelsim软件的安装和使用1321.png

图 5.1.6 自动安装过程中

现在处于安装过程,在安装的过程中会出现两次信息提示框,第一次提示是否在桌面建立快捷方式,点击“Yes”,如图 5.1.7所示:
Modelsim软件的安装和使用1471.png

图 5.1.7 桌面建立快捷方式

第二次提示是否将Modelsim可执行文件放入Path变量,选择“Yes”时可以从DOS提示符执行Modelsim,这里我们选择“Yes”,如图 5.1.8所示:
Modelsim软件的安装和使用1640.png

图 5.1.8 添加Modelsim到Path变量

安装完成后进入图 5.1.9所示界面,大致内容为:如果你有License,请选择“No”,选择“Yes”将会为Modelsim-64使用的HW安全key安装一个软件驱动,如果你不确定你电脑上的驱动是否适用于此版本,选择“Yes”会重启电脑完成整个安装。这里因为有License,所以选择“No”,当然了如果经过整个的指导操作还是使用不了,不妨卸载了选择“Yes“试试,一般选择“No“是没问题的。
Modelsim软件的安装和使用1935.png

图 5.1.9 安装硬件安全Key驱动

进入图 5.1.10所示界面,选择“Done”完成整个安装。
Modelsim软件的安装和使用2056.png

图 5.1.10 完成安装

如果没有License或没有正确安装License,打开Modelsim时,结果图 5.1.11:
Modelsim软件的安装和使用2190.png

图 5.1.11 未安装License时结果

使用Modelsim软件需要添加License,请多多支持正版。至此,Modelsim安装完成。

5.2Modelsim的使用
安装完ModelSim软件之后,接下来我们再来介绍一下ModelSim的使用流程。在介绍ModelSim的使用流程之前,我们先看一下典型的FPGA设计流程,流程图如图 5.2.1:
Modelsim软件的安装和使用2438.png

图 5.2.1 FPGA的设计流程

从上图可以看到,在设计输入之后,设计综合前进行RTL级仿真,称为综合前仿真,也称为前仿真或功能仿真。前仿真也就是纯粹的功能仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟。在完成一个设计的代码编写工作之后,可以直接对代码进行仿真,检测源代码是否符合功能要求。这时,仿真的对象为HDL代码,可以比较直观的观察波形的变化,在设计的最初阶段发现问题,节省大量的精力。
在布局布线后进行的仿真称为布局布线后仿真,也称为后仿真或时序仿真。时序仿真可以真实地反映了逻辑的时延与功能,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时序违规。
接下来我们说一下ModelSim软件的使用,ModelSim的使用主要分为两种情况,第一种就是直接使用ModelSim软件进行仿真,也就是手动仿真;第二种情况就是通过其它的EDA工具如PDS调用Modelsim进行仿真,这种情况也就是我们通常所说的自动仿真或者联合仿真。不管是手动仿真还是自动仿真,它们都遵循以下5个步骤:
1)新建工程。
2)编写Verilog文件和Testbench仿真文件。
3)编译工程
4)启动仿真器并加载设计顶层
5)执行仿真。
当我们执行了仿真以后,ModelSim软件会根据我们的设计文件和仿真文件生成波形图,最后,我们观察波形并判断设计的代码功能是否正确。前仿真完成以后,接下来我们就可以根据需要进行后仿真了,后仿真与前仿真的步骤大体相同,只不过中间需要添加仿真库、网表和延时文件等步骤。一般而言,对于时序要求不严格的小规模设计,我们一般只进行功能仿真。
功能仿真需要的文件:
1)设计HDL源代码:可以使VHDL语言或Verilog语言。
2)测试激励代码,也被称为TestBench:根据设计要求输入/输出的激励程序,由于不需要进行综合,书写具有很大的灵活性。
3)仿真模型/库:根据设计内调用的器件供应商提供的模块而定,如:FIFO、ADD_SUB等。
5.3Modelsim手动仿真
说完了ModelSim的使用流程,接下来我们将对每个流程进行详细的操作演示,一步步、手把手带领大家学习使用ModelSim软件。首先我们讲解的是ModelSim手动仿真,对Modelsim有个基本的认识。
在第八章我们使用PDS创建了LED流水灯的工程,现在我们使用Modelsim对该工程进行Modelsim的手动仿真。
5.3.1建立Modelsim工程并添加仿真文件
首先在LED流水灯的“sim_1”文件夹下新建文件夹“new”,然后启动Modelsim软件,我们直接双击桌面上的Modelsim软件图标,打开Modelsim软件,在Modelsim中选择File->Change Directory,如下图所示:
Modelsim软件的安装和使用3661.png

图 5.3.1更改目录

在弹出的对话框中选择目录路径为刚才新建的new文件夹。
在modelsim中建立project,选择File->New->Project,如下图所示:
Modelsim软件的安装和使用3794.png

图 5.3.2创建工程

弹出如下界面:
Modelsim软件的安装和使用3859.png

图 5.3.3编辑工程名和路径

在“Project Name”栏中填写工程名,这里的命名方式,我们建议大家最好根据仿真的文件来进行命名,时间久了,当我们记不得这个仿真工程是用来仿真什么的时候,我们看到这个工程名,就能够知道它是用来做什么的了。工程名一般在被仿真文件的前面加“tb_”或者在被仿真文件的后面加“_tb”,这里我们把工程命名为“tb_flow_led”,也就是在LED流水灯模块名“flow_led”前面添加“tb_”。“Project Location”是工程路径,可以根据需要把工程保存到不同的位置。因为前一步骤更改目录的时候已经做了选择,所以这里保持默认即可。下面这两部分是用来设置仿真库名称和路径的,这里我们使用默认即可。设置好工程名、工程位置,我们点击【OK】按钮,弹出如下图所示界面:
Modelsim软件的安装和使用4259.png

图 5.3.4添加和创建工程文件

我们可以从该图的选择窗口中看出,它共有四种操作:Create New File(创建新文件)、Add Existing File(添加已有文件)、Create Simulation(创建仿真)和 Create New Folder(创建新文件夹)。这里我们先选择“Add Existing File”(添加已有文件),如下图所示:
Modelsim软件的安装和使用4487.png

图 5.3.5添加工程文件

在该页面我们点击“Browse”按钮选择“flow_led.v”文件,其他的保持默认设置,最后点击【OK】按钮。
5.3.2建立TestBench仿真文件
我们选择“Create New File”(创建新文件),如下图所示:
Modelsim软件的安装和使用4655.png

图 5.3.6创建工程文件

在“File Name”栏中输入文件名“tb_ flow_led”,与工程名一致。“Add file as type”栏中选择文件类型为“Verilog”类型,点击【OK】按钮,然后我们再关闭【Add items to the Project】对话框。此时可以看到,两个文件“flow_led.v”和“tb_ flow_led.v”添加至我们的ModelSim仿真工程中,如下图所示。
Modelsim软件的安装和使用4907.png

图 5.3.7成功添加工程文件

双击“tb_flow_led.v”文件,弹出下图所示界面:
Modelsim软件的安装和使用4998.png

图 5.3.8编写测试代码

在其中编写TestBench仿真代码如下:
1   `timescale  1ns/1ns                // 定义仿真时间单位1ns和仿真时间精度为1ns
2   
3   module  tb_flow_led();               // 测试模块
4   
5   //输入
6   reg  sys_clk;                      // 时钟信号
7   reg  sys_rst_n;                    // 复位信号
8   
9   //输出
10  wire  [3:0]  led;
11  
12  //*****************************************************
13  //**                    main code
14  //*****************************************************
15  
16  //给输入信号初始值
17  initial begin
18      sys_clk            = 1'b0;
19      sys_rst_n          = 1'b0;     // 复位
20      #20  sys_rst_n  = 1'b1;     // 在第21ns的时候复位信号信号拉高
21  end
22  
23  //50Mhz的时钟,周期则为1/50Mhz=20ns,所以每10ns,电平取反一次
24  always #10 sys_clk = ~sys_clk;
25  
26  //例化led模块
27  flow_led  u0_flow_led (
28      .sys_clk     (sys_clk  ),
29      .sys_rst_n   (sys_rst_n),
30      .led         (led      )
31  );
32  
33  endmodule
编写完成后,单击下图所框的保存按钮。
Modelsim软件的安装和使用5968.png

图 5.3.9保存测试代码

为了让读者能够更好的理解,这里我们就简单介绍一下TestBench源代码。进行仿真首先要规定时间单位,我们建议大家最好在Testbench里面统一规定时间单位,不要在工程代码里定义,因为不同的模块如果时间单位不同可能会为仿真带来一些问题。代码的第1行的timescale是Verilog语法中的不可综合语法,用于定义仿真的时间单位和精度,此处表示仿真的单位时间为1ns,精度为1ns。代码的第3行就是TestBench的模块名定义,其中第6行至第10行是我们的数据类型定义,到了第12~18行是信号的初始化,第21行是时钟信号的生成。第23到28行是被测模块的调用。
接下来我们就需要编译我们的仿真文件。
在开始编译之前,有一点需要注意,我们在PDS软件中实现的功能是LED流水灯效果,它的间隔时间是0.5s,如果我们想要仿真这个功能,那么我们仿真软件运行时间最低就是0.5s。这0.5s在我们看来是很短很短的,而对仿真软件来说是很漫长的,毕竟我们的仿真时间单位可是1ns。为了便于我们仿真,这里我们需要稍微改动一下“led_twinkle.v”文件的代码,将计时器cnt的最大计时值设为5,如下图所示,方框中注释的代码即为修改的位置。
Modelsim软件的安装和使用6546.png

图 5.3.10修改源文件

要记得这是在仿真的时候修改的哦,在仿真结束后是要改回来的,接下来我们开始编译。
5.3.3编译仿真文件
编译的方式有两种:Compile Selected(编译所选)和Compile All(编译全部)。编译所选功能需要先选中一个或几个文件,执行该命令可以完成对选中文件的编译;编译全部功能不需要选中文件,该命令是按编译顺序对工程中的所有文件进行编译。我们可以在菜单栏【Compile】中找到这两个命令,也可以在快捷工具栏或者在工作区中的右键弹出的菜单中找到这两个命令。下面我们单击Compile All(编译全部),如下图所示。
Modelsim软件的安装和使用6866.png

图 5.3.11编译工程

编译完成后,结果如下图所示:
Modelsim软件的安装和使用6939.png

图 5.3.12编译完成

文件编译后“Status”列可能会有三个不同状态。除了上图的用“√”表示的通过状态外,还有两个在设计中不希望出现的状态:编译错误(显示红色的“×”)和包含警告的编译通过(对号的后面会出现一个黄色的三角符号)。编译错误即Modelsim无法完成文件的编译工作。通常这种情况是因为被编译文件中包含明显的语法错误,Modelsim会识别出这些语法错误并提示使用者,使用者可根据Modelsim的提示信息进行修改。编译结果中包含警告信息是一种比较特殊的状态,表示被编译的文件没有明显的语法错误,但是可能包含一些影响最终输出结果的因素。这种状态在实际使用中较少出现,这类信息一般在功能仿真的时候不会带来明显的影响,不过可能会在后续的综合和时序仿真中造成无法估计的错误,所以出现这种状态时推荐读者也要根据警告信息修改代码,确保后续使用的安全性。
5.3.4配置仿真环境
编译完成后,接下来我们就开始配置仿真环境,我们在ModelSim菜单栏中找到【Simulate】→【Start Simulation...】菜单并点击,弹出如下右图所示页面。
Modelsim软件的安装和使用7459.png

图 5.3.13开始仿真

从配置仿真功能页面中我们可以看出,该页面中包含6个标签,分别是:Design、VHDL、Verilog、Libraries、SDF和Others。对于这6个标签,我们用的最多的是Design、Libraries和SDF这三个标签了,下面我们就来简单的介绍一下这3个标签,其余的标签我们一般用不到,这里我们就不再进行介绍了。
首先看一下Design标签,该标签内居中的部分是Modelsim中当前包含的全部库,可展开看到库中包含的设计单元,这些库和单元是为仿真服务的,使用者可以选择需要进行仿真的设计单元开始仿真,此时被选中的仿真单元的名字就会出现在下方的Design Unit(s)位置。Modelsim支持同时对多个文件进行仿真,可以使用Ctrl和Shift键来选择多个文件,被选中的全部文件名都会出现在Design Unit(s)区域。在Design Unit(s)区域的右侧是Resolution选项,这里可以选择仿真的时间精度。在Modelsim进行仿真的时候,有一个最小的时间单位,这个单位是使用者可以指定的,如最小单位是1ns,仿真器在工作的时候按1ns为单位进行仿真,对小于1ns发生的信号变化不予考虑或不予显示。因而这个最小时间单位也就是仿真的时间精度。这个选项一般都是设置在默认状态,这时Modelsim依照仿真设计文件中指定的最小时间刻度来进行仿真,如果设计文件中没有指定,则按1ns来进行仿真。最下方的区域是Optimization区域,可以在仿真开始的时候使能优化。接下来我们来看一下Libraries标签,如下图所示。
Modelsim软件的安装和使用8190.png

图 5.3.14 Libraries标签

在该标签中,我们可以设置搜索库。Search Libraries和Search Libraries First的功能基本一致,唯一不同的是Search Libraries First中指定的库会在指定的用户库之前被搜索。现在我们来看一下SDF标签,如下图所示。
SDF是Standard Delay Format(标准延迟格式)的缩写,内部包含了各种延迟信息,也是用于时序仿真的重要文件。SDF Files区域用来添加SDF文件,可以选择Add按钮进行添加,选择Modify按钮进行修改,选择Delete按钮删除添加的文件。
Modelsim软件的安装和使用8519.png

图 5.3.15 SDF标签

SDF Options区域设置SDF文件的warning和error信息。第一个“Disable SDF warning”是禁用SDF警告,第二个“Reduce SDF errors to warnings”是把所有的SDF错误信息变成警告信息。区域Multi-Source delay中可以控制多个目标对同一端口的驱动,如果有多个控制信号同时控制同一个端口或互连,且每个信号的延迟值不同,可以使用此选项统一延迟。下拉列表中可供选择的有三个选项:latest、min和max。latest选项选择最后的延迟作为统一值,max选项选择所有信号中延迟最大的值作为统一值,min选项选择所有信号中延迟最小的值作为统一值。
至此,这三个标签我们就介绍完了,接下来我们在Design标签页面中选择work库中的flow_led_tb模块,在Optimization一栏中取消勾选(注意一定要取消优化的勾选,否则无法观察信号波形),然后点击【OK】就可以开始进行功能仿真了,其余标签页面中的配置我们使用默认就可以了,如下图所示。
Modelsim软件的安装和使用9038.png

图 5.3.16 Design窗口选项

点击【OK】后弹出下图所示界面:
Modelsim软件的安装和使用9120.png

图 5.3.17 Sim窗口

鼠标右键单击“u0_flow_led”,选择“Add Wave”选项,如下图所示:
Modelsim软件的安装和使用9222.png

图 5.3.18添加查看的信号

弹出下图所示界面,可以看到信号已经添加到窗口中。
Modelsim软件的安装和使用9308.png

图 5.3.19信号添加到仿真窗口

我们选择仿真时间为1ms,如下图所示,单击右边的运行按钮。
Modelsim软件的安装和使用9401.png

图 5.3.20设置仿真时间

运行后的结果如下图所示:
Modelsim软件的安装和使用9474.png

图 5.3.21仿真结果

为了方便大家更容易观察波形,我们这里将会对ModelSim软件中几个常用小工具进行简单的讲解。
Modelsim软件的安装和使用9580.png

图 5.3.22常用小工具

前面的几个放大镜模样的工具是放大、缩小和全局显示功能,鼠标放到图标上会显示出它们的快捷键,后边的黄色图标是用来在波形图上添加用来标志的黄色竖线,紧跟着的是将添加的黄色竖线对齐到信号的下降沿和上升沿。利用上述工具出来,可以看到在仿真结果中,可以看出,cnt每计数到4,led的电平状态就切换一次。证明我们的HDL设计达到了我们想要的功能。
Modelsim软件的安装和使用9808.png

图 5.3.23结果局部波形图

到这里手动仿真的步骤就给大家介绍完了,最后再提醒大家一句,我们在仿真一些复杂的工程的时候往往需要对工程里的IP核进行仿真,当我们需要对IP核进行仿真时一定要事先将IP核的库文件加载到Modelsim库中去。
5.4ModelSim与PDS的联合仿真
介绍完了ModelSim的手动仿真流程,接下来我们将给大家介绍一下ModelSinm与PDS软件的联合仿真的操作演示。首先我们要给大家介绍一下联合仿真的步骤。
在流水灯实验中,我们使用PDS创建了LED流水灯的工程,现在我们使用Modelsim对该工程进行Modelsim的联合仿真。
5.4.1仿真库的编译
进行Pango Design Suite 2021.4-SP1.2与Modelsim联合仿真,我们首先需要对仿真库进行编译。打开我们的LED流水灯的工程,如图 5.4.1所示,点击“Tools”选择“Compile Simulation Libraries”选项。
Modelsim软件的安装和使用10299.png

图 5.4.1 打开仿真编译库

在弹出的界面中,第一步是按红色框中路径设置,把编译库pango_sim_libraries放在E:/Verilog/1_flow_led/prjx工程文件夹下(编译库的路径是可以根据用户的需求来自己选择的,此路径为相对路径。);第二步需要添加Modelsim文件的环境变量,此路径是安装软件的绝对路径,选择win64路径即可;然后点击【compile】即开始编译。如果是第一次编译会出现一个弹窗,根据弹窗提醒选择“Yes”即可。具体步骤可以参考下图所示:
Modelsim软件的安装和使用10588.png

图 5.4.2 编译库的路径选择

编译完成后的界面如图 5.4.3所示,在完成上述所有步骤后,PDS软件与ModelSim就可以进行联合仿真了。
Modelsim软件的安装和使用10731.png

图 5.4.3 编译完成
5.4.2建立TestBench仿真文件
在其中编写TestBench仿真代码如下:
1   `timescale  1ns/1ns                // 定义仿真时间单位1ns和仿真时间精度为1ns
2   
3   module  tb_flow_led();             // 测试模块
4   
5   //输入
6   reg  sys_clk;                      // 时钟信号
7   reg  sys_rst_n;                    // 复位信号
8   
9   //输出
10  wire  [3:0]  led;
11  
12  //*****************************************************
13  //**                    main code
14  //*****************************************************
15  
16  //给输入信号初始值
17  initial begin
18      sys_clk            = 1'b0;
19      sys_rst_n          = 1'b0;     // 复位
20      #20  sys_rst_n          = 1'b1;     // 在第21ns的时候复位信号信号拉高
21  end
22  
23  //50Mhz的时钟,周期则为1/50Mhz=20ns,所以每10ns,电平取反一次
24  always #10 sys_clk = ~sys_clk;
25  
26  //例化led模块
27  flow_led  u0_flow_led (
28      .sys_clk     (sys_clk  ),
29      .sys_rst_n   (sys_rst_n),
30      .led         (led      )
31  );
32  
33  endmodule
编写完成后,保存代码即可。
为了让读者能够更好的理解,这里我们就简单介绍一下Testbench源代码。进行仿真首先要规定时间单位,我们建议大家最好在Testbench里面统一规定时间单位,不要在工程代码里定义,因为不同的模块如果时间单位不同可能会为仿真带来一些问题。代码的第1行的timescale是Verilog语法中的不可综合语法,用于定义仿真的时间单位和精度,此处表示仿真的单位时间为1ns,精度为1ns。代码的第3行就是Testbench的模块名定义,其中第6行至第10行是我们的数据类型定义,到了第12~18行是信号的初始化,第21行是时钟信号的生成。第23到28行是被测模块的调用。
接下来我们就需要将我们编写好的的仿真文件添加到工程文件中并进行联合仿真。
在开始编译之前,有一点需要注意,我们在PDS软件中实现的功能是LED流水灯效果,它的间隔时间是0.2s,如果我们想要仿真这个功能,那么我们仿真软件运行时间最低就是0.2s。这0.2s在我们看来是很短很短的,而对仿真软件来说是很漫长的,毕竟我们的仿真时间单位可是1ns。为了便于我们仿真,这里我们需要稍微改动一下“flow_led.v”文件的代码,将计时器cnt的最大计时值设为5,如图 5.4.4所示,方框中注释的代码即为修改的位置。
Modelsim软件的安装和使用12274.png

图 5.4.4修改源文件

要记得这是在仿真的时候修改的,在仿真完成后是要改回来的,接下来我们添加仿真文件。
5.4.3添加仿真文件
编写好Testbench文件后,我们就可以添加已经编写好的TestBench文件了。打开我们的LED流水灯的工程,在Sources下方选中Simulation并双击它会弹出“Add Sources”窗口。在出现的窗口中选择“Add Files”选项,选择“sim”文件夹下“tb”文件中的TestBench文件即可(这个文件路径是提前将之前创建好的TestBench保存到该路径的,用户可以根据自己TestBench文件的路径进行添加)。
Modelsim软件的安装和使用12600.png

图 5.4.5 添加仿真文件

添加完成后如图 5.4.6所示:
Modelsim软件的安装和使用12702.png

图 5.4.6添加Testbench文件

5.4.4进行联合仿真
仿真文件添加到项目中,我们就可以进行联合仿真了。第一步右击“Simulation”中的“flow_led_tb”文件,选择选项中的“Run Behavior Simulation”如下图所示,如果没有出现报错,PDS会调用Modelsim仿真软件开始工作的,如图 5.4.8所示。
Modelsim软件的安装和使用12941.png

图 5.4.7 运行联合仿真

Modelsim软件的安装和使用13001.png

图 5.4.8Modelsim仿真界面

实际仿真图比较密集,若大家想看到上图所示的效果只需点击一下上图中箭头所指Zoom Full (变焦)图标即可。大家可以发现这里的仿真看不到计数器信号(count),这是因为该仿真所示的是tb_flow_led.v中的输入输出信号,我们只需将关闭该仿真界面,然后对flow_led .v(即u0_flow_led.v)文件进行仿真即可,流程如下所述。
选择Sim窗口,鼠标右键单击“u0_flow_led”,选择“Add Wave”选项,如图 5.4.9所示:
Modelsim软件的安装和使用13321.png

图 5.4.9添加查看的信号

点击“Add Wave”后会弹出Wave界面,如图 5.4.10所示,此时可以看到信号已经添加到窗口中了。
Modelsim软件的安装和使用13460.png

图 5.4.10信号添加到仿真窗口

我们选择仿真时间为1ms,如图 5.4.11所示,单击右边的运行按钮。
Modelsim软件的安装和使用13584.png

图 5.4.11设置仿真时间

运行后的结果如图 5.4.12所示:
Modelsim软件的安装和使用13688.png

图 5.4.12仿真结果

为了方便大家更容易观察波形,我们这里将会对ModelSim软件中几个常用小工具进行简单的讲解。
Modelsim软件的安装和使用13794.png

图 5.4.13常用小工具

图 5.4.13中前面的几个放大镜模样的工具是放大、缩小和全局显示功能,鼠标放到图标上会显示出它们的快捷键,后边的黄色图标是用来在波形图上添加用来标志的黄色竖线,紧跟着的是将添加的黄色竖线对齐到信号的下降沿和上升沿。利用上述工具出来,可以看到在仿真结果中,从图 5.4.14中可以看出,cnt每计数到4,led的电平状态就切换一次。证明我们的HDL设计达到了我们想要的功能。
Modelsim软件的安装和使用14091.png

图 5.4.14仿真结果局部波形图

到这里联合仿真的步骤及使用就已经给大家介绍完毕了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 22:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表