主要内容

验证HDL模块万博1manbetx试验台

教程概述

本章将指导您使用Simulink设置一个HDL验证器™会话的基本步骤万博1manbetx®高密度脂蛋白Cosimulation块来验证一个HDL模型。的高密度脂蛋白Cosimulation模块通过在ModelSim中对一个HDL模型应用输入信号并读取其输出信号来对硬件组件进行仿真®/,®Sim卡。的高密度脂蛋白Cosimulation块支持任一V万博1manbetxHDL的仿真®或Verilog®模型。在本节的教程中,您将共同模拟一个简单的VHDL模型。

请注意

本教程专门针对Mentor Graphics®模拟器用户;然而,大部分过程对于Incisive来说是一样的®用户。

开发硬件描述语言(VHDL)代码

典型的Simulin万博1manbetxk和ModelSim场景是为ModelSim中的特定硬件组件创建模型,稍后需要将其集成到更大的Simulink模型中。第一步是在ModelSim中设计开发VHDL模型。在本教程中,您将使用ModelSim和VHDL来开发一个代表以下逆变器的模型:

这个模型的VHDL实体将用一个港口和端口类型的STD_LOGIC_VECTOR.一种输入时钟信号STD_LOGIC将触发位反转过程时设置。

执行以下步骤:

  1. 开始ModelSim

  2. 更改为可写文件夹MyPlayArea,您可能已经在另一个教程中创建了它。如果您还没有创建文件夹,请现在创建它。文件夹必须是可写的。

    ModelSim > cd C: / MyPlayArea

  3. 打开一个新的VHDL源代码编辑窗口。

  4. 添加以下VHDL代码:

    --------------------------------------------------- -- 万博1manbetx仿真软件和ModelSim逆变器教程——版权2003 - 2004 MathWorks, Inc . . -- --------------------------------------------------- 图书馆ieee;使用ieee.std_logic_1164.ALL;ENTITY逆变器IS PORT (sin: IN std_logic_vector(7 DOWNTO 0);sout: OUT std_logic_vector(7 DOWNTO 0);clk: IN std_logic);逆变器;图书馆ieee;使用ieee.std_logic_1164.ALL;BEGIN PROCESS(clk) BEGIN IF (clk' event AND clk = '1') THEN sout <= NOT sin;如果; END PROCESS; END behavioral;
  5. 将文件保存到inverter.vhd

编译硬件描述语言(VHDL)代码

本节解释如何设置设计库和编译inverter.vhd,如下所示:

  1. 验证文件inverter.vhd在当前文件夹中输入ls命令在ModelSim命令提示符处。

  2. 创建一个设计库来保存编译结果。创建所需的库_info文件,输入vlibvmap命令如下:

    ModelSim> vlib工作

    如果设计库工作已经存在,ModelSim覆盖当前库,但显示以下警告:

    # ** Warning: (vlib-34) Library already exists at "work". # ** Warning: (vlib-34) Library已经存在。

    请注意

    您必须使用ModelSim文件菜单或vlib命令创建库文件夹,以便所需的_info创建文件。不要使用操作系统命令创建库。

  3. 编译VHDL文件。编译文件的一种方法是单击项目工作区中的文件名并选择编译>编译所有.方法指定VHDL文件的名称威科姆公司命令,如下所示:

    ModelSim >威科姆公司inverter.vhd

    如果编译成功,则命令窗口中将出现信息消息,编译器将使用编译结果填充工作库。

创建万博1manbetx模型

现在创建您的Simulink模型万博1manbetx。对于本教程,您将创建一个简单的Simulink模型,该模型将输入驱动到表示您编万博1manbetx码的VHDL逆变器的块中开发硬件描述语言(VHDL)代码并显示反向输出。

首先创建一个模型,如下所示:

  1. 开始MATLAB®,如果它还没有运行。打开一个新的模型窗口。然后,打开Simulink万博1manbetx库浏览器

  2. 从Simulink拖动以下块万博1manbetx库浏览器到模型窗口:

    • 常数块从Simulink万博1manbetx来源图书馆

    • 高密度脂蛋白Cosimulation从HDL验证器块库

    • 显示块从Simulink万博1manbetx图书馆

    按照下图所示的顺序排列这三个块。

接下来,配置常数块,它是模型的输入源,通过执行以下操作:

  1. 双击常数块图标以打开常数块参数对话框。在文件中输入以下参数值主要面板:

    • 恒定值0

    • 样品时间10

    稍后,您可以更改这些初始值,以查看不同的示例时间对不同模拟运行的影响。

    现在应该出现如下对话框。

  2. 单击信号的属性选项卡。对话框现在显示输出数据类型菜单。

    选择uint8输出数据类型菜单。该数据类型规范由HDL Verifier软件支持,不需要进行类型万博1manbetx转换。它直接映射到VHDL端口的VHDL类型STD_LOGIC_VECTOR(7报纸0)

    现在应该出现如下对话框。

  3. 点击好吧.的常数块参数对话框关闭,并且常数块图标变为0。

接下来,配置高密度脂蛋白Cosimulation模块,表示用VHDL编写的逆变器模型。开始港口窗格,通过执行以下操作:

  1. 双击高密度脂蛋白Cosimulation块图标。的块的参数对话框的高密度脂蛋白Cosimulation块出现。单击港口选项卡。

  2. 港口窗格中,选择采样信号/高级/ sig1通过双击它,可以从窗格中心的信号列表中找到它。

  3. 替换样本信号路径名称/高级/ sig1/逆变器/罪.然后单击应用.信号的名称高密度脂蛋白Cosimulation块的变化。

  4. 同样地,选择采样信号/高级/ sig2.改变完整的高密度脂蛋白的名字/逆变器/多.选择输出I / O模式列表。改变样品时间参数10.然后单击应用更新名单。

  5. 选择采样信号/高级/ sig3.单击删除按钮。信号现在从列表中删除了。

    港口窗格应该如下所示。

现在配置的参数连接窗格,执行以下操作:

  1. 单击连接选项卡。

  2. 离开连接模式作为完整的模拟

  3. 连接方法列表。此选项指定Simulink和ModelSim将通过指定万博1manbetx的TCP/IP套接字端口进行通信。观察另外两个字段,端口号或服务主机名,现已可见。

    注意,因为HDL模拟器在这台计算机上运行主机名字段是禁用的。在这个配置中,Simulink和ModelSim都在同一万博1manbetx台计算机上执行,因此您不需要输入远程主机系统名。

  4. 端口号或服务文本框中,输入套接字端口号4449或者,如果该端口在您的系统上不可用,则使用另一个有效的端口号或服务名。模型将使用TCP/IP套接字通信与ModelSim链接。注意您为该参数输入的内容。当您设置ModelSim以与Simulink链接时,您将指定相同的套接字端口信息。万博1manbetx

    连接窗格应该如下所示。

  5. 点击应用

现在配置时钟窗格,执行以下操作:

  1. 单击时钟选项卡。

  2. 单击按钮。一个新的带有空信号名称的时钟信号被添加到信号列表中。

  3. 双击要编辑的新信号名称。进入信号通路/逆变器/ clk.然后选择不断上升的边缘列表。设置参数10

  4. 时钟窗格应该如下所示。

  5. 点击应用

接下来,输入一些简单的Tcl命令,在模拟前后分别执行,如下所示:

  1. 单击模拟选项卡。

  2. Pre-simulation Tcl命令文本框,编辑默认Tcl命令:

    将“在Simulink中运行逆变器!”万博1manbetx
  3. Post-simulation Tcl命令文本框,编辑默认Tcl命令:

    把“逆变器完成”

    模拟窗格应该如下所示。

  4. 点击应用

接下来,查看时间尺度窗格,以确保将其设置为默认参数,如下所示:

  1. 单击时间尺度选项卡。

  2. 的默认设置时间尺度窗格如下图所示。本示例的操作需要这些设置。看到模拟时间尺度为进一步的信息。

  3. 点击好吧关闭块的参数对话框。

最后一步是连接块、配置模型范围的参数并保存模型。执行以下操作:

  1. 按照下图连接积木。

    此时,您可能还需要考虑调整块注释。

  2. 配置固定步长离散仿真的Sim万博1manbetxulink求解器选择;这是联合仿真操作所必需的。执行以下操作:

    1. 建模选项卡,点击模型设置.的模型配置参数对话框打开,显示解算器的选择窗格。

    2. 选择固定步类型菜单。

    3. 选择离散(无连续状态)解算器菜单。

    4. 点击应用

    5. 点击好吧关闭模型配置参数对话框。

      看到设置Si万博1manbetxmulink模型配置参数有关Simulink设置的进一步信息,该设置最适合与H万博1manbetxDL验证软件一起使用。

  3. 保存模型。

设置ModelSim使用万博1manbetx

现在您有了逆变器的VHDL表示和应用该逆变器的Simulink模型。万博1manbetx要启动ModelSim以便它可以与Simulink一起使用,请在MATLAB命令窗口中输入以下命令行:万博1manbetx

vsim (' sock万博1manbetxetsimulink ', 4449)

请注意

如果在配置时输入了不同的套接字端口规范高密度脂蛋白Cosimulation块,将前面命令行中万博1manbetx的端口号4449替换为适用于您的模型的套接字端口信息。的vsim函数通知ModelSim TCP/IP套接字用于与您的Simulink模型建立通信链接。万博1manbetx

负载的实例硬件描述语言(VHDL)用于协同仿真的实体万博1manbetx

本节介绍如何使用v万博1manbetxsimulink命令来加载VHDL实体的实例,以便与Simulink进行协同仿真。万博1manbetx的v万博1manbetxsimulink命令是ModelSim的一个HDL验证器变体vsim命令。它作为ModelSim配置的一部分提供。

的实例逆变器实体,执行以下操作:

  1. 将输入焦点更改为ModelSim窗口。

  2. 如果您的VHD文件不在当前文件夹中,请将文件夹更改为您的inverter.vhd文件。例如:

    ModelSim > cd C: / MyPlayArea
  3. 输入以下v万博1manbetxsimulink命令:

    ModelSim > 万博1manbetxvsimulink work.inverter

    ModelSim开始vsim模拟器,以便可以模拟实体逆变器在Simulink模型的上下文中。万博1manbetxModelSim命令窗口的显示应该类似如下所示。

运行仿真

本节将介绍一个运行和监视协同模拟会话的场景。

执行以下操作:

  1. 打开并添加逆变器信号到a窗口,输入以下ModelSim命令:

    VSIMn添加波/逆变器/*

    以下窗口出现。

  2. 将输入焦点更改为Simulink模型窗口。万博1manbetx

  3. 启动Simuli万博1manbetxnk仿真。的值显示块的变化255.还要注意ModelSim中发生的更改窗口。您可能需要放大以更好地查看信号数据。

  4. 在Simuli万博1manbetxnk模型中,更改恒定值255,保存模型,并启动另一个模拟。的值显示块的变化0和ModelSim窗口更新如下。

  5. 在Simuli万博1manbetxnk模型中,更改恒定值2样品时间到20,然后开始另一个模拟。这一次,值显示块的变化253和ModelSim窗口显示如下图所示。

    请注意示例时间的变化窗口。

关闭模拟

本节介绍如何有序关闭模拟,具体操作步骤如下:

  1. 在ModelSim中,通过选择停止模拟模拟>最后仿真

  2. ModelSim辞职。

  3. 关闭Simulink万博1manbetx模型窗口。