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