亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> VHDL

使用 Modelsim 进行 FPGA 和 ASIC 仿真的初学者指南

教程 - 使用 Modelsim 进行仿真,适合初学者。

Modelsim 是由 Mentor Graphics 创建的程序,用于模拟 VHDL 和 Verilog 设计。它是商业和教育领域使用最广泛的模拟程序。本教程首先解释为什么仿真很重要,然后展示如何免费获取 Modelsim Student Edition 供个人使用。

仿真是设计 FPGA 和 ASIC 的关键步骤。模拟允许设计者刺激他或她的设计并查看他们编写的代码如何对刺激做出反应。出色的模拟将演练设计的所有可能状态,以确保所有输入场景都得到适当处理。您是否在某处忘记了 if 语句?您是否记得分配所有可能的案例陈述?当您不对设计进行仿真时,很容易出现这些类型的错误。让我们开始吧。

您的计算机上是否下载并安装了 Modelsim?在这里获取它。使用默认参数执行安装。 请注意,您需要向 Mentor Graphics 申请许可证 。安装结束时,您必须选择“完成”,然后将打开一个浏览器窗口,其中包含许可证请求表。单击浏览器书签或网络上发布的链接中的现有许可证请求链接将不起作用。

我们将模拟的代码是下面的 VHDL 设计。实际代码并不重要,所以如果您正在学习 Verilog 就没关系!对于本教程,您不需要了解 VHDL。 VHDL 代码创建一个简单的与门,并通过测试台为其提供一些输入。将以下代码复制到 and_gate.vhd,将测试平台复制到 and_gate_tb.vhd。

and_gate.vhd:

<前>04

and_gate_tb.vhd:

<前>13

让我们打开 Modelsim。您会看到一个如下所示的窗口

Modelsim主窗口

为了运行模拟,您需要创建一个项目。单击文件 -> 新建 -> 项目。您将看到左侧显示的窗口。为新项目选择一个位置并将其命名为 and_gate。 Modelsim 中的项目的文件扩展名为 .prj。将其他设置保留为默认值。这只是说所有代码都将被编译到“work”库中。

单击添加现有文件,如右图所示。导航到下载 and_gate.vhd 和 and_gate_tb.vhd 的位置,并将它们添加到您的项目中。将其他设置保留为默认值。完成后单击“确定”。

Modelsim 项目窗口 – 添加到项目的文件

现在请注意,文件已成功添加到您的项目中。看到上面 Modelsim 项目窗口图中的两个蓝色问号了吗?这意味着 Modelsim 尚未编译这些文件。您将需要编译源文件。为此,请右键单击 and_gate.vhd,单击“编译”,然后单击“全部编译”。您应该会看到控制台窗口中的消息显示为绿色,表明编译成功,如下面的屏幕截图所示。

编译成功的结果

要开始模拟,请单击菜单栏中的“模拟”,然后单击“开始模拟”。这将打开“启动模拟”窗口。单击work旁边的加号,然后单击and_gate_tb旁边的加号。确保选择 and_gate_tb 而不是 and_gate,因为我们要在测试台级别模拟设计。 and_gate_tb 突出显示后,单击“确定”。

Modelsim 仿真窗口 – 仿真就绪

快到了!模拟已准备就绪并等待。现在,您使用 Modelsim 的大部分时间都花在查看波形视图上。波形视图包含设计中所有信号的波形(二进制 0 和 1、十六进制数字、二进制数字、枚举类型等)。它显示了您的模块对不同刺激的反应。下图显示了波形视图的样子,但首先您需要添加一些信号进行监视。在此示例中,我们将监控测试台中的所有信号。为此,右键单击 在 sim 窗口中的 and_gate_tb 上,然后单击添加 Wave 。您还可以在 Modelsim 中的其他窗口中单击信号并将其拖动到波形窗口。

这是您的波形窗口。所有测试台信号均已添加为您可以监控的信号。要运行模拟,请单击带有一张小纸和 100 ns 时间旁边的向下箭头的图标。这将使您的模拟运行 100 纳秒。观察信号如何变化!恭喜!您已经创建了第一个 Modelsim 模拟!

本教程向您展示了如何在 Modelsim 中创建自己的项目、向项目添加文件、编译源文件、启动仿真以及查看波形。您已准备好探索此网页上的所有示例并自行运行模拟。使用页面顶部的侧边栏进行导航。


VHDL

  1. 基本 VHDL 测验 - 第 3 部分
  2. 在 Linux VPS 上使用 Jenkins、Vivado 和 GitHub 自动化 FPGA 开发
  3. 如何在 VHDL 中使用 For 循环
  4. 使用来自 FPGA 引脚的 PWM 的 RC 伺服控制器
  5. 如何在 VHDL 中使用端口映射实例化
  6. 如何在 VHDL 中创建有限状态机
  7. 如何使用 TEXTIO 从文件初始化 RAM
  8. 如何在 VHDL 中创建并发语句
  9. 记录 - VHDL 示例
  10. 如何在 VHDL 测试平台中停止仿真
  11. 如何在 VHDL 中使用函数
  12. 如何在 VHDL 中使用条件语句:If-Then-Elsif-Else