验证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
将触发位反转过程时设置。
请执行以下步骤:
开始ModelSim
更改为可写文件夹
MyPlayArea
,这可能是您为另一个教程创建的。如果您还没有创建该文件夹,现在就创建它。文件夹必须是可写的。ModelSim > cd C: / MyPlayArea
打开一个新的VHDL源代码编辑窗口。
添加以下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;
将文件保存到
inverter.vhd
.
编译硬件描述语言(VHDL)代码
本节解释如何设置和编译设计库inverter.vhd
,详情如下:
验证文件
inverter.vhd
在当前文件夹中通过输入ls
命令。创建一个设计库来保存编译结果。创建所需的库
_info
文件,输入vlib
而且vmap
命令如下:ModelSim> vlib work ModelSim> vmap work work
如果设计库工作已经存在,则ModelSim不覆盖当前库,但显示以下警告:
# **警告:(vlib-34)库已经存在于“工作”。
请注意
您必须使用ModelSim文件菜单或
vlib
命令创建所需的库文件夹_info
文件创建完成。不要使用操作系统命令创建库。编译VHDL文件。编译文件的一种方法是在项目工作区中单击文件名并选择编译>编译所有.方法指定VHDL文件的名称
威科姆公司
命令如下:ModelSim> vcom逆变器
如果编译成功,命令窗口中将出现信息性消息,编译器将用编译结果填充工作库。
创建金宝app模型
现在创建您的Simulink模型金宝app。对于本教程,您将创建一个简单的Simulink模型,该模型将输入驱动到表示您所金宝app编码的VHDL逆变器的块中开发VHDL代码并显示反向输出。
首先创建一个模型,如下所示:
开始MATLAB®,如果它还没有运行。打开一个新的模型窗口。然后,打开Simulink金宝app库浏览器.
从Simulink中拖动以下块金宝app库浏览器到你的模型窗口:
常数块从Simulink金宝app来源图书馆
高密度脂蛋白Cosimulation块从HDL验证程序块库
显示块从Simulink金宝app汇图书馆
按照下图所示的顺序排列这三块积木。
接下来,配置常数Block,它是模型的输入源,通过执行以下操作:
双击常数块图标打开常数块参数对话框。中输入以下参数值主要面板:
恒定值:
0
样品时间:
10
稍后,您可以更改这些初始值,以查看不同采样时间对不同模拟运行的影响。
对话框现在应该如下所示。
单击信号的属性选项卡。对话框现在显示输出数据类型菜单。
选择
uint8
从输出数据类型菜单。该数据类型规范由HDL Verifier软件支持,不需要进行类型金宝app转换。它直接映射到VHDL端口的VHDL类型罪
,Std_logic_vector (7 downto 0)
.对话框现在应该如下所示。
点击好吧.的常数块参数对话框关闭,并且常数块图标变为0。
接下来,配置高密度脂蛋白Cosimulation块,它表示用VHDL编写的逆变器模型。从港口窗格,执行以下操作:
双击高密度脂蛋白Cosimulation块图标。的块的参数对话框。高密度脂蛋白Cosimulation块出现。单击港口选项卡。
在港口窗格中,选择采样信号
/高级/ sig1
从窗格中心的信号列表中双击它。替换样本信号路径名称
/高级/ sig1
与/逆变器/罪
.然后单击应用.的信号名称高密度脂蛋白Cosimulation块的变化。类似地,选择采样信号
/高级/ sig2
.改变HDL全名来/逆变器/多
.选择输出
从I / O模式列表。改变样品时间参数10
.然后单击应用更新列表。选择采样信号
/高级/ sig3
.单击删除按钮。信号现在从列表中删除。的港口窗格应该如下所示。
的参数连接窗格,执行以下操作:
单击连接选项卡。
离开连接模式作为完整的模拟.
从连接方法列表。此选项指定Simulink和ModelSim将通过指定金宝app的TCP/IP套接字端口进行通信。观察另外两个字段,端口号或服务而且主机名,现在可见。
请注意,因为HDL模拟器正在这台计算机上运行,则默认选择主机名字段被禁用。在此配置中,Simulink和ModelSim都在同一台金宝app计算机上执行,因此不需要输入远程主机系统名称。
在端口号或服务文本框,输入套接字端口号
4449
或者,如果此端口在您的系统上不可用,请使用另一个有效的端口号或服务名称。该模型将使用TCP/IP套接字通信与ModelSim连接。注意您为此参数输入的内容。在设置ModelSim与Simulink链接时,您将指定相同的套接字端口信息。金宝app的连接窗格应该如下所示。
点击应用.
现在配置时钟窗格,执行以下操作:
单击时钟选项卡。
单击新按钮。一个新的时钟信号被添加到信号列表中,信号名称为空。
双击新的信号名称进行编辑。进入信号路径
/逆变器/ clk
.然后选择不断上升的
从边缘列表。设置期参数10
.的时钟窗格应该如下所示。
点击应用.
接下来,输入一些简单的Tcl命令,在模拟前后执行,如下所示:
单击模拟选项卡。
在预模拟Tcl命令文本框,编辑默认的Tcl命令:
把“运行逆变器在Simulink!”金宝app
在后模拟Tcl命令文本框,编辑默认的Tcl命令:
把“逆变器完成”
的模拟窗格应该如下所示。
点击应用.
接下来,查看时间尺度窗格以确保它被设置为默认参数,如下所示:
单击时间尺度选项卡。
的默认设置时间尺度窗格,如下图所示。这些设置是本例操作所必需的。看到模拟时间尺度获取更多信息。
点击好吧关闭块的参数对话框。
最后一步是连接块,配置模型范围的参数,并保存模型。请执行以下操作:
按下图所示连接砌块。
此时,您可能还想考虑调整块注释。
配置Simulink求解器选金宝app择固定步骤,离散仿真;这是协同仿真操作所必需的。请执行以下操作:
在建模选项卡,点击模型设置.的型号配置参数对话框打开,显示解算器的选择窗格。
选择
固定步
从类型菜单。选择
离散(无连续状态)
从解算器菜单。点击应用.
点击好吧关闭型号配置参数对话框。
看到设置Si金宝appmulink模型配置参数有关最适合与HDL验证器软件一起使用的Simulink金宝app设置的进一步信息。
保存模型。
设置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配置的一部分提供。
方法的实例逆变器
实体,执行以下操作:
将输入焦点更改为ModelSim窗口。
如果您的VHD文件不在当前文件夹中,请将文件夹更改为您的VHD文件所在的位置
inverter.vhd
文件。例如:ModelSim> cd C:/MyPlayArea
输入以下内容
v金宝appsimulink
命令:ModelSim> v金宝appsimulink work.逆变器
ModelSim启动
vsim
模拟器,以便它准备模拟实体逆变器
在Simulink模型的上下文中。金宝appModelSim命令窗口显示应该类似于以下内容。
运行仿真
本节将指导您完成一个运行和监视联合模拟会话的场景。
请执行以下操作:
打开并添加逆变器信号到a波窗口,输入ModelSim命令:
VSIMn>添加波/逆变器/*
以下波窗口出现。
将输入焦点更改为Simulink模型窗口。金宝app
启动Simuli金宝appnk仿真。的值。显示阻止更改为
255
.还要注意ModelSim中发生的更改波窗口。您可能需要放大以更好地查看信号数据。在Simuli金宝appnk模型中,更改恒定值来
255
,保存模型,并开始另一个模拟。的值。显示阻止更改为0
以及ModelSim波窗口更新如下。在Simuli金宝appnk模型中,更改恒定值来
2
而且样品时间到20,开始另一个模拟。的值显示阻止更改为253
以及ModelSim波窗口,如下图所示。中采样时间的变化波窗口。
停机模拟
本节介绍如何有序关闭模拟,具体操作如下:
在ModelSim中,通过选择停止模拟模拟>最后仿真.
ModelSim辞职。
关闭Simulink金宝app模型窗口。