主要内容

验证HDL模块金宝app试验台

教程概述

本章将指导您完成设置使用Simulink的HDL Verifier™会话的基本步骤金宝app®高密度脂蛋白Cosimulation块来验证HDL模型。的高密度脂蛋白Cosimulationblock通过将输入信号应用到ModelSim中仿真的HDL模型并从其读取输出信号来共同仿真硬件组件®/,®Sim卡。的高密度脂蛋白Cosimulationblock支金宝app持任一VHDL的模拟®或Verilog®模型。在本节的教程中,您将共同模拟一个简单的VHDL模型。

请注意

本教程是专门针对Mentor Graphics的®模拟器用户;然而,这一过程在很大程度上与Incisive是相同的®用户。

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

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

该模型的VHDL实体将表示输入和输出信号值的8位流港口和类型端口STD_LOGIC_VECTOR.类型的输入时钟信号STD_LOGIC将触发位反转过程时设置。

请执行以下步骤:

  1. 开始ModelSim

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

    ModelSim > cd C: / MyPlayArea

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

  4. 添加以下VHDL代码:

    --------------------------------------------------- -- 金宝app仿真软件和ModelSim逆变器教程——版权2003 - 2004 MathWorks, Inc . . -- --------------------------------------------------- 图书馆ieee;使用ieee.std_logic_1164.ALL;实体逆变器是端口(sin:在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命令。

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

    ModelSim> vlib work ModelSim> vmap work work

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

    # **警告:(vlib-34)库已经存在于“工作”。

    请注意

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

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

    ModelSim> vcom逆变器

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

创建金宝app模型

现在创建您的Simulink模型金宝app。对于本教程,您将创建一个简单的Simulink模型,该模型将输入驱动到表示您所金宝app编码的VHDL逆变器的块中开发VHDL代码并显示反向输出。

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

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

  2. 从Simulink中拖动以下块金宝app库浏览器到你的模型窗口:

    • 常数块从Simulink金宝app来源图书馆

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

    • 显示块从Simulink金宝app图书馆

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

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

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

    • 恒定值0

    • 样品时间10

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

    对话框现在应该如下所示。

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

    选择uint8输出数据类型菜单。该数据类型规范由HDL Verifier软件支持,不需要进行类型金宝app转换。它直接映射到VHDL端口的VHDL类型Std_logic_vector (7 downto 0)

    对话框现在应该如下所示。

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

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

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

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

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

  4. 类似地,选择采样信号/高级/ sig2.改变HDL全名/逆变器/多.选择输出I / O模式列表。改变样品时间参数10.然后单击应用更新列表。

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

    港口窗格应该如下所示。

的参数连接窗格,执行以下操作:

  1. 单击连接选项卡。

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

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

    请注意,因为HDL模拟器正在这台计算机上运行,则默认选择主机名字段被禁用。在此配置中,Simulink和ModelSim都在同一台金宝app计算机上执行,因此不需要输入远程主机系统名称。

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

    连接窗格应该如下所示。

  5. 点击应用

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

  1. 单击时钟选项卡。

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

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

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

  5. 点击应用

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

  1. 单击模拟选项卡。

  2. 预模拟Tcl命令文本框,编辑默认的Tcl命令:

    把“运行逆变器在Simulink!”金宝app
  3. 后模拟Tcl命令文本框,编辑默认的Tcl命令:

    把“逆变器完成”

    模拟窗格应该如下所示。

  4. 点击应用

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

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

  2. 的默认设置时间尺度窗格,如下图所示。这些设置是本例操作所必需的。看到模拟时间尺度获取更多信息。

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

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

  1. 按下图所示连接砌块。

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

  2. 配置Simulink求解器选金宝app择固定步骤,离散仿真;这是协同仿真操作所必需的。请执行以下操作:

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

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

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

    4. 点击应用

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

      看到设置Si金宝appmulink模型配置参数有关最适合与HDL验证器软件一起使用的Simulink金宝app设置的进一步信息。

  3. 保存模型。

设置ModelSim金宝app

现在您已经有了逆变器的VHDL表示和应用逆变器的Simulink模型。金宝app要启动ModelSim,以便与Simulink一起使用,请在MATLAB命令窗口中输入以下命令行:金宝app

vsim (' sock金宝appetsimulink ', 4449)

请注意

属性时输入了不同的套接字端口规范高密度脂蛋白Cosimulation在Simulink金宝app中,将上面命令行的端口号4449替换为适用于您的模型的套接字端口信息。的vsim函数通知ModelSim要使用的TCP/IP套接字来建立与Simulink模型的通信链接。金宝app

加载实例硬件描述语言(VHDL)用于共同仿真的实体金宝app

方法的使用v金宝appsimulink命令加载VHDL实体的实例,以便与Simulink进行联合仿真。金宝app的v金宝appsimulink命令是ModelSim的HDL验证器变体vsim命令。它作为ModelSim配置的一部分提供。

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

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

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

    ModelSim> cd C:/MyPlayArea
  3. 输入以下内容v金宝appsimulink命令:

    ModelSim> v金宝appsimulink work.逆变器

    ModelSim启动vsim模拟器,以便它准备模拟实体逆变器在Simulink模型的上下文中。金宝appModelSim命令窗口显示应该类似于以下内容。

运行仿真

本节将指导您完成一个运行和监视联合模拟会话的场景。

请执行以下操作:

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

    VSIMn>添加波/逆变器/*

    以下窗口出现。

  2. 将输入焦点更改为Simulink模型窗口。金宝app

  3. 启动Simuli金宝appnk仿真。的值。显示阻止更改为255.还要注意ModelSim中发生的更改窗口。您可能需要放大以更好地查看信号数据。

  4. 在Simuli金宝appnk模型中,更改恒定值255,保存模型,并开始另一个模拟。的值。显示阻止更改为0以及ModelSim窗口更新如下。

  5. 在Simuli金宝appnk模型中,更改恒定值2而且样品时间到20,开始另一个模拟。的值显示阻止更改为253以及ModelSim窗口,如下图所示。

    中采样时间的变化窗口。

停机模拟

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

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

  2. ModelSim辞职。

  3. 关闭Simulink金宝app模型窗口。