0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ModelSim手动仿真教程

FPGA之家 来源:数字积木 作者:数字积木 2022-07-11 10:58 次阅读

4.1 新建仿真工程

在开始动手仿真之前,首先,我们需要创建一个文件夹用来放置我们的 ModelSim 仿真工程文件,这里我们就在之前创建的 Quartus 工程目录下的 simulation 文件夹中创建一个manual_modelsim 文件夹。manual_modelsim 文件夹创建好以后,我们还需要将已经编写好的Verilog 仿真文件和 Testbench 仿真文件添加至我们的 manual_modelsim 文件夹中,这里我们就将自动仿真时用到的 Verilog_First.v 文件和 Verilog_First.vt 文件复制到 manual_modelsim文件夹。(Verilog_First.v 文件在我们的 Quartus II 工程目录下,Verilog_First.vt 文件在我们的Quartus II 工程目录下 simulation 文件夹下的 modelsim 文件夹中。)完成以上准备工作之后,我们就可以打开 ModelSim-Altera 10.1d (Quartus II 13.1)软件了,这里我们需要注意的是,我们打开的 ModelSim 软件版本是 ModelSim-Altera Starter Edition 免费版本,如图

f37f0c32-00c3-11ed-ba43-dac502259ad0.png

打开软件之后,我们在 ModelSim 软件界面的菜单栏中找到【File】→【New】→【Project】菜单并点击打开,弹出的对话框如图

f3960cc0-00c3-11ed-ba43-dac502259ad0.png

我们从对话框中可以看到,Project Name(工程名)就是用来设置我们的工程名,这里我们将它命名为 Verilog_First,这里的命名方式,我们建议大家最好根据我们仿真的文件来进行命名,时间久了,当我们记不得这个仿真工程是用来仿真什么的时候,我们看到这个工程名,就能够知道它是用来做什么的了。Project Location(工程路径),可以设置工程保存的文件夹,使用者可以根据需要把工程保存到不同的位置。这 里 我 们 将 路 径 设 置 在 了E:/A4_Plus_Verilog/Verilog_First/simulation/manual_modelsim 文件夹中。下面这两部分是用来设置仿真库名称和路径的,这里我们使用默认即可。设置好工程名、工程位置,我们点击【OK】按钮,弹出如图

f3a42ec2-00c3-11ed-ba43-dac502259ad0.png

我们可以从该图中的选择窗口中看出,它共有四种操作:Create New File(创建新文件)、Add Existing File(添加已有文件)、Create Simulation(创建仿真)和 Create New Folder(创建新文件夹)。这里我们选择 Add Existing File(添加已有文件),如图

f3c0ee54-00c3-11ed-ba43-dac502259ad0.png

在 该 页 面 中 我 们 可 以 看 到 , 我 们 将 我 们 之 前 准 备 的 好 两 个 文 件 Verilog_First.v 和Verilog_First.vt 添加至我们的 ModelSim 仿真工程中。添加好以后,我们点击【OK】按钮,然后我们再关闭【Add items to the Project】对话框,如图

f3d2a19e-00c3-11ed-ba43-dac502259ad0.png

4.2 编译仿真文件

添加完文件以后,接下来我们就需要编译我们的仿真文件。编译的方有两种:Compile Selected(编译所选)和 Compile All(编译全部)。编译所选功能需要先选中一个或几个文件,执行该命令可以完成对选中文件的编译;编译全部功能不需要选中文件,该命令是按编译顺序对工程中的所有文件进行编译。我们可以在菜单栏【Compile】中找到这两个命令,也可以在快捷工具栏或者在工作区中的右键弹出的菜单中找到这两个命令。下面我们单击 Compile All(编译全部),将会出现如图

f3eb0d42-00c3-11ed-ba43-dac502259ad0.png

文件编译后 Status 列可能会有三个不同状态。除了上述的用“√”显示的通过状态,还有两个在设计中不希望出现的状态:编译错误和包含警告的编译通过。编译错误即 Modelsim 无法完成文件的编译工作。通常这种情况是因为被编译文件中包含明显的语法错误,这是 Modelsim会识别出这些语法错误并提示使用者,使用者可根据 Modelsim 的提示信息进行修改。编译错误时会在 Status 列中显示红色的“×”。包含警告的编译通过是一种比较特殊的状态,表示被编译的文件没有明显的语法错误,但是可能包含一些影响最终输出结果的因素。这种状态在实际使用中也较少会出现,该状态在 Status 栏中也会显示“√”,但是在对号的后面会出现一个黄色的三角符号,这类信息一般在功能仿真的时候不会带来明显的影响,不过可能会在后续的综合和时序仿真中造成无法估计的错误,所以出现这种状态时推荐读者也要根据警告信息修改代码,确保后续使用的安全性。

4.3 配置仿真环境

我们编译完成后,接下来我们就开始配置仿真环境,我们在 ModelSim 菜单栏中找到【Simulate】→【Start Simulation...】菜单并点击,弹出如图

f3fbb7e6-00c3-11ed-ba43-dac502259ad0.png

从配置仿真功能页面中我们可以看出,该页面中含有 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 进行仿真的时候,有一个最小的时间单位,这个单位是使用者可以指定的。如最小单位是 10ns,在仿真器工作的时候都是按 10ns 为单位进行仿真,对 10ns 单位一下发生的信号变化不予考虑或不予显示,当测试文档有类似于#1 a=1'b1;的句子时,Modelsim 就不会考虑句中延迟。这个选项一般都是设置在默认的状态,这时会根据仿真器中指定的最小时间刻度来进行仿真,如果设计文件中没有指定,则按 1ns 来进行仿真。最下方的区域是 Optimization 区域,可以再仿真开始的时候激活优化,由于我们是免费版本,很多功能都受限制,所以我们可以看到这里我们不能使用。第二个介绍的标签是 Libraries 标签,如图

f41804c8-00c3-11ed-ba43-dac502259ad0.png

在该页面中,我们可以设置搜索库,可以指定一个库来搜索实例化的 VHDL 设计单元。Search Libraries 和 Search Libraries First 的功能基本一致,唯一不同的是 Search Libraries First 中指定的库会被指定在用户库之前被搜索。第三个介绍的标签是 SDF,其内容如图

f4285a44-00c3-11ed-ba43-dac502259ad0.png

SDF 是 Standard Delay Format(标准延迟格式)的缩写,内部包含了各种延迟信息,也是用于时序仿真的重要文件。SDF Files 区域用来添加 SDF 文件,选择 Add 进行添加,选择 Modify进行修改,选择 Delete 删除添加的文件。SDF Options 设置 SDF 文件的 warning 和 error 信息。第一个 Disable SDF warning 是禁用 SDF 警告,第二个 Reduce SDF errors to warnings 是把所有的 SDF 错误信息编程警告信息。Multi-Source delay 可以控制多个目标对同一端口的驱动,如果有多个控制信号同时控制同一个端口或互连,且每个信号的延迟值不同,可以在此选项统一延迟。下拉菜单中可供选择的有三个选项:latest、min 和 max。max 即选择所有信号中延迟最大的值作为统一值,min 即选择所有信号中延迟最小的值作为统一值,latest 则是选择最后的延迟作为统一值。至此,这三个标签我们就介绍完了,接下来我们在 Design 标签页面中选择 work 库中的Verilog_First_vlg_tst 模块,然后点击【OK】就可以开始进行功能仿真了,其余标签页面中的配置我们使用默认就可以了。

4.4 开始功能仿真

在仿真前,Workspace 区域一般只有 Project 和 Library 两个标签。开始仿真后,在Workspace 区域一般会增加 sim 标签、Files 标签和 Memory List 标签。除了 Workspace 区域会增加标签,在 MDI 窗口也会新出现一个 Object 窗口等,在 Workspace 区域中的 sim 标签选中一个设计单元,在 Object 窗口就会出现该单元包含的输入/输出端口,如图

f433fffc-00c3-11ed-ba43-dac502259ad0.png

接下来我们在 Object 窗口中选中我们需要仿真的信号,然后点击右键,在弹出的菜单栏中找到【Add Wave】并单击,我们会发现,我们的信号添加到了 Wave 窗口中。这时,我们可以按快捷键 F9,也可以在 ModelSim 的菜单栏中找到【Run】按钮,点击运行就会出现我们想要的波形,这里我们需要注意的是,默认的运行时间一次运行的是 100ps,我们可以在菜单栏中进行修改,也可以直接在控制台中输入命令 run 100ns,直接运行 100ns,如图

f44478d2-00c3-11ed-ba43-dac502259ad0.png

到了这里,我们就完成了手动的功能仿真,后面的工作就是分析我们仿真出的波形,由于这部分内容和我们在自动仿真中所讲的内容完全是一样的,所以我们这里就不再进一步重复讲解了。


审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132161
  • Verilog
    +关注

    关注

    28

    文章

    1326

    浏览量

    109302
  • ModelSim
    +关注

    关注

    5

    文章

    172

    浏览量

    46757
收藏 人收藏

    评论

    相关推荐

    modelsim时序仿真总是出错为什么

    在使用quartusii modelsim仿真时。。功能仿真可以好用,。但是时序仿真就出错。。无论是手动打开
    发表于 11-26 21:06

    【锆石A4 FPGA试用体验】ModelSim(二) 手动仿真

    前面的仿真是使用Quartus II开打开ModelSim进行的仿真,一切都是Quartus II软件做的工作,那么独自打开ModelSim软件是否也可以
    发表于 09-06 21:06

    【雨的FPGA笔记】基础实践-------ModelSim手动仿真

    基于流水灯的ModelSIm软件仿真为例子在工程文件sim下新建一个文件夹用来存放仿真文件代码然后新建Modelsim文件存放在工程文件sim下 然后把在quartus II 写的代码
    发表于 01-13 16:34

    【正点原子DFPGL22G开发板体验】PDS联合modelsim进行HDL语言级别仿真

    modelsim进行HDL语言级别仿真,操作比较简洁,流程清晰,对modelsim第三方软件支持较好,该方式比modelsim手动
    发表于 02-06 22:36

    Modelsim SE中如何指定altera仿真

    Modelsim SE中如何指定altera仿真
    发表于 09-09 17:50 44次下载

    Altera ModelSim 6.5仿真入门教程

    Altera ModelSim 6.5仿真入门教程,需要的可自行下载。 平台 软件:ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition 内容 1 设计流程 使用
    发表于 08-15 15:40 255次下载
    Altera <b class='flag-5'>ModelSim</b> 6.5<b class='flag-5'>仿真</b>入门教程

    MODELSIM仿真(适合xilinx ISE)

    基于Xilinx ISE的modelsim仿真教程
    发表于 11-30 15:52 8次下载

    使用 ModelSim 进行设计仿真详解

    本章为ModelSim的初级教程,读者读完本章可以较为熟练的使用ModelSim进行设计仿真,本章没有也不可能涉及ModelSim的各个方面,要想全面的掌握
    发表于 12-24 18:29 0次下载

    仿真软件ModelSim及其应用,ModelSim仿真流程

    ModelSim不仅可以用于数字电路系统设计的功能仿真,还可以应用于数字电路系统设计的时序仿真ModelSim的使用中,最基本的步骤包括创建工程、编写源代码、编译、启动
    的头像 发表于 12-29 11:35 9261次阅读

    Modelsim仿真教程Modelsim的基础入门基础教程免费下载

    笔者一直以来都在纠结,自己是否要为仿真编辑相关的教程呢?一般而言,Modelsim等价仿真已经成为大众的常识,但是学习仿真是否学习Modelsim
    发表于 04-30 18:24 23次下载
    <b class='flag-5'>Modelsim</b><b class='flag-5'>仿真</b>教程<b class='flag-5'>Modelsim</b>的基础入门基础教程免费下载

    基于ModelSim使用四ModelSim手动仿真教程

    4.1 新建仿真工程 在开始动手仿真之前,首先,我们需要创建一个文件夹用来放置我们的 ModelSim 仿真工程文件,这里我们就在之前创建的 Quartus 工程目录下的 simula
    的头像 发表于 07-23 11:10 3579次阅读

    基于ModelSim使用modelsim手动时序仿真教程

    时序仿真与功能仿真的步骤大体相同,只不过中间需要添加仿真库、网表(.vo)文件和延时(.sdo)文件。到了这里,问题来了,仿真库、网表(.vo)文件和延时(.sdo)文件怎么获得呢?网
    的头像 发表于 07-23 11:55 1955次阅读

    如何夹带modelsim仿真波形白底黑线

    Modelsim使用技巧—波形白底黑线设置 在发表期刊或者论文时,我们需要夹带modelsim仿真波形在我们的论文里,在modelsim默认模式下的波形一般是黑底绿线白字,如图1所示
    的头像 发表于 08-26 11:23 3511次阅读

    芯片设计之Modelsim仿真工具

    Modelsim仿真将设计以树状表示,设计中的每一个实体,每一个module、每一个进程(always块、initial块等)在Modelsim仿真中以对象的形式展现。
    的头像 发表于 08-12 15:04 2232次阅读

    Vivado调用Modelsim仿真

    Modelsim是十分常用的外部仿真工具,在Vivado中也可以调用Modelsim进行仿真,下面将介绍如何对vivado进行配置并调用Models
    的头像 发表于 07-24 09:04 2001次阅读
    Vivado调用<b class='flag-5'>Modelsim</b><b class='flag-5'>仿真</b>