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

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

3天内不再提示

新建仿真工程如何开始仿真

FPGA之家 来源:FPGA之家 作者:FPGA之家 2022-07-11 11:05 次阅读

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

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

原文标题:ModelSim 使用【四】ModelSim手动仿真

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

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

    关注

    50

    文章

    3872

    浏览量

    132166
  • 软件
    +关注

    关注

    67

    文章

    4350

    浏览量

    85639
  • 编译
    +关注

    关注

    0

    文章

    615

    浏览量

    32397

原文标题:ModelSim 使用【四】ModelSim手动仿真

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    IC设计中前仿真和后仿真的区别

    一个完整的电路设计中必然包含前仿真和后仿真两个部分,它们都属于芯片验证中的关键环节。
    发表于 03-29 11:35 175次阅读

    fpga前仿真和后仿真的区别

    FPGA的前仿真和后仿真在芯片设计和验证过程中扮演着不同的角色,各自具有独特的特点和重要性。
    的头像 发表于 03-15 15:29 363次阅读

    STM32CUBE生成的工程如何进行KEIL的软件仿真

    通过STM32CUBE生成的工程如何进行KEIL的软件仿真有异常,做了很多的尝试,没能成功 1、根据网上的资料,进行魔术棒的相关修改,如下图 2、能顺利进入仿真界面,但是全速仿真,不
    发表于 03-13 06:04

    calibre后仿真参数提取

    Calibre是一种先进的电子设计自动化(EDA)工具,用于电子电路的设计和仿真。它为工程师提供了一个强大的平台,可以进行多个级别的仿真,包括电路级仿真、行为级
    的头像 发表于 01-04 17:24 428次阅读

    芯片前仿真和后仿真的区别

    在芯片设计中,前仿真和后仿真都是非常重要的环节,但它们在功能和目的上存在明显的区别。本文将详细介绍前仿真和后仿真的区别,以及它们在芯片设计中的应用和重要性。 一、前
    的头像 发表于 12-13 15:06 2459次阅读

    PCB仿真软件有哪些?PCB仿真软件是如何进行LAYOUT仿真的?

    PCB仿真软件有哪些?PCB仿真软件是如何进行LAYOUT仿真的? PCB仿真软件是为了帮助电子工程师在设计和开发PCB电路板时进行各种
    的头像 发表于 11-24 14:51 6363次阅读

    使用Keil软件新建单片机工程并点亮LED灯

    Keil软件是一款专业的嵌入式开发工具,可以用来编写、调试和仿真各种嵌入式系统的程序。本文将介绍如何使用Keil软件新建一个工程,并编写一个简单的点亮LED灯的程序。
    的头像 发表于 11-10 11:26 1181次阅读
    使用Keil软件<b class='flag-5'>新建</b>单片机<b class='flag-5'>工程</b>并点亮LED灯

    工程师如何使用ADS仿真?如何优化ADS仿真

    工程师如何使用ADS仿真?如何优化ADS仿真?我需要详尽、详实、细致的最少1500字的文章 摘要: 高级设计系统(ADS)是一种强大的模拟和设计软件工具,被世界各地的射频和微波工程师所
    的头像 发表于 10-20 14:22 1445次阅读

    STM32CubeIDE实用技巧之仿真带外扩FLASH的工程

    电子发烧友网站提供《STM32CubeIDE实用技巧之仿真带外扩FLASH的工程.pdf》资料免费下载
    发表于 09-19 16:55 2次下载
    STM32CubeIDE实用技巧之<b class='flag-5'>仿真</b>带外扩FLASH的<b class='flag-5'>工程</b>

    时序仿真与功能仿真的区别有哪些?

    时序仿真与功能仿真的区别有哪些? 时序仿真和功能仿真都是电子设计自动化(EDA)过程中的常见任务,它们都是为了验证或验证电路设计的正确性。然而,它们之间也有明显的区别。 时序
    的头像 发表于 09-17 14:15 2908次阅读

    DDR3缓存模块仿真平台构建步骤

    复制Vivado工程路径vivado_prj\at7.srcs\sources_1\ip\mig_7series_0下的mig_7series_0文件夹。粘贴到仿真路径testbench\tb_ddr3_cache(新建用于DD
    的头像 发表于 08-12 11:08 809次阅读

    modelsim自动化仿真实验 利用脚本实现modelsim自动化仿真

    大家好!今天给大家带来的是modelsim自动化仿真程序。我们在代码编写完成时,通常都需要先进行仿真,然后上板实验。但是如果我们每次仿真都要去新建一个
    的头像 发表于 07-19 10:10 1069次阅读
    modelsim自动化<b class='flag-5'>仿真</b>实验 利用脚本实现modelsim自动化<b class='flag-5'>仿真</b>

    MES50HP——PDS与Modelsim联合仿真教程

    1.打开仿真库编译: 打开工程,点击 PDS 的【tools】 菜单下的【Compile Simulation Libraries】。 2.设置: 【Simulator】:第三方仿真工具
    发表于 06-26 10:45

    电磁仿真软件的应用

    今天我们一起来聊一下电磁仿真软件 当我们开始接触电磁波和微波工程的时候,第一件事就是仿真。电磁仿真可以说是一个射频
    的头像 发表于 06-17 09:50 946次阅读
    电磁<b class='flag-5'>仿真</b>软件的应用

    软件仿真、硬件仿真、原型验证是如何工作的?

    面对复杂的设计代码,我们如何确保其准确性?功能验证就是这场战斗的关键过程。工程师们通常使用的验证方法包括软件仿真、硬件仿真和原型验证等。这些不同的验证方法都有各自的优点,也有各自的不足。
    的头像 发表于 06-11 14:24 535次阅读
    软件<b class='flag-5'>仿真</b>、硬件<b class='flag-5'>仿真</b>、原型验证是如何工作的?