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

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

3天内不再提示

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

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

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 免费版本

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

我们从对话框中可以看到,Project Name(工程名)就是用来设置我们的工程名,这里我们将它命名为 Verilog_First,这里的命名方式,我们建议大家最好根据我们仿真的文件来进行命名,时间久了,当我们记不得这个仿真工程是用来仿真什么的时候,我们看到这个工程名,就能够知道它是用来做什么的了。

Project Location(工程路径),可以设置工程保存的文件夹,使用者可以根据需要把工程保存到不同的位置。这 里 我 们 将 路 径 设 置 在 了E:/A4_Plus_Verilog/Verilog_First/simulation/manual_modelsim 文件夹中。下面这两部分是用来设置仿真库名称和路径的,这里我们使用默认即可。设置好工程名、工程位置,我们点击【OK】按钮

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

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

4.2 编译仿真文件

添加完文件以后,接下来我们就需要编译我们的仿真文件。编译的方有两种:Compile Selected(编译所选)和 Compile All(编译全部)。编译所选功能需要先选中一个或几个文件,执行该命令可以完成对选中文件的编译;

编译全部功能不需要选中文件,该命令是按编译顺序对工程中的所有文件进行编译。我们可以在菜单栏【Compile】中找到这两个命令,也可以在快捷工具栏或者在工作区中的右键弹出的菜单中找到这两个命令。下面我们单击 Compile All(编译全部),将会出现如图

文件编译后 Status 列可能会有三个不同状态。除了上述的用“√”显示的通过状态,还有两个在设计中不希望出现的状态:编译错误和包含警告的编译通过。编译错误即 Modelsim 无法完成文件的编译工作。

通常这种情况是因为被编译文件中包含明显的语法错误,这是 Modelsim会识别出这些语法错误并提示使用者,使用者可根据 Modelsim 的提示信息进行修改。编译错误时会在 Status 列中显示红色的“×”。包含警告的编译通过是一种比较特殊的状态,表示被编译的文件没有明显的语法错误,但是可能包含一些影响最终输出结果的因素。

这种状态在实际使用中也较少会出现,该状态在 Status 栏中也会显示“√”,但是在对号的后面会出现一个黄色的三角符号,这类信息一般在功能仿真的时候不会带来明显的影响,不过可能会在后续的综合和时序仿真中造成无法估计的错误,所以出现这种状态时推荐读者也要根据警告信息修改代码,确保后续使用的安全性。

4.3 配置仿真环境

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

从配置仿真功能页面中我们可以看出,该页面中含有 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 标签

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

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 窗口就会出现该单元包含的输入/输出端口,如图

接下来我们在 Object 窗口中选中我们需要仿真的信号,然后点击右键,在弹出的菜单栏中找到【Add Wave】并单击,我们会发现,我们的信号添加到了 Wave 窗口中。

这时,我们可以按快捷键 F9,也可以在 ModelSim 的菜单栏中找到【Run】按钮,点击运行就会出现我们想要的波形,这里我们需要注意的是,默认的运行时间一次运行的是 100ps,我们可以在菜单栏中进行修改,也可以直接在控制台中输入命令 run 100ns,直接运行 100ns

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

编辑:jq

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

    关注

    5

    文章

    172

    浏览量

    46757

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

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

收藏 人收藏

    评论

    相关推荐

    最实用的Modelsim使用教程

    过程又有两种方法,一种是通过Quartus调用Modelsim,Quartus在编译之后自动把仿真需要的.vo文件以及需要的仿真库加到modelsim中,操作简单;一种是
    发表于 03-19 16:40

    Modelsim报错, -novopt 开关打开,仿真失败

    在使用紫光同创PDS和Modelsim联合仿真时,modelsim报错不会解决,如下图
    发表于 02-18 10:26

    如何使用 ModelSim 进行设计仿真

    ModelSim为HDL仿真工具,我们可以利用该软件来实现对所设计的VHDL或Verilog程 序进行仿真,支持IEEE常见的各种硬件描述语言标准。可以进行两种语言的混合仿真,但 推荐
    发表于 01-14 09:47 0次下载

    modelsim安装运行patch闪退

    模拟器的安装和运行是计算机科学中非常重要的一环。ModelSim是一种流行的数字电子设计自动化工具,用于验证和仿真硬件设计。然而,有时安装和运行Patch可能会导致闪退问题。本文将详细解释如何安装
    的头像 发表于 01-04 10:43 525次阅读

    怎样单独使用modelsim仿真xilinx呢?

    直接在modelsim软件内执行.do文件进行仿真,不通过vivado调用modelsim,vivado仅用于生成IP核。
    的头像 发表于 12-04 18:26 591次阅读
    怎样单独使用<b class='flag-5'>modelsim</b><b class='flag-5'>仿真</b>xilinx呢?

    如何用Python实现Vivado和ModelSim仿真自动化?

    我们在Windows系统下使用Vivado的默认设置调用第三方仿真器比如ModelSim进行仿真时,一开始仿真软件都会默认在波形界面中加载testbench顶层的信号波形
    的头像 发表于 09-13 09:23 761次阅读
    如何用Python实现Vivado和<b class='flag-5'>ModelSim</b><b class='flag-5'>仿真</b>自动化?

    使用modelsim仿真时为什么会出现error呀?

    使用modelsim仿真时为什么会出现error呀
    发表于 08-12 07:57

    将vivado的仿真器改成modelsim仿真modelsim的transcript没法打印出e203实时运行的信息怎么解决?

    原来仿真使用的是vivado simulator,最近将vivado的仿真器改成modelsim,发现仿真的时候modelsim的trans
    发表于 08-11 09:47

    使用vivado的仿真仿真时,modelsim的transcript界面无法输出C程序的printf语句是为什么?

    我现在将vivado和modelsim做了联合仿真,用来仿真蜂鸟e203协处理器扩展实现的功能。现在的问题是:使用vivado的仿真仿真
    发表于 08-11 06:44

    vivado软件和modelsim软件的安装方法

    本文详细介绍了vivado软件和modelsim软件的安装,以及vivado中配置modelsim仿真设置,每一步都加文字说明和图片。
    的头像 发表于 08-07 15:48 1723次阅读
    vivado软件和<b class='flag-5'>modelsim</b>软件的安装方法

    Vivado调用Modelsim仿真

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

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

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

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

    ,目前支持ModelSim和QuestaSim,本教程选择ModelSim; 【Language】:仿真库用的语言; 【Library】:选择 usim 则是 GTP 前仿库,vsim 则是 VOP 后
    发表于 06-26 10:45

    modelsim仿真和实际上板结果不一致的原因及其解决办法

    某项目在完成算法模型的modelsim仿真之后,开始硬件上板调试。
    的头像 发表于 06-11 15:04 2994次阅读

    【正点原子DFPGL22G开发板体验】ModelSim 的安装和使用 FPGA开发仿真

    PDS 和仿真软件 Modelsim 放在 B 盘),文件列 表如下图所示:使用 Modelsim 软件需要添加 License,请多多支持正版。至此,Modelsim 安装完成。学
    发表于 04-30 17:24