主要内容

创建金宝app模型组件Cosimulation

在大多数情况下,创建仿真软件没什么不同金宝app®模型作为一个高密度脂蛋白比有从创建仿真软件模型组件作为试验台。金宝app使用仿真软件作为一个组金宝app件时,您可能有多个HDL Cosimulation块而不是单一HDL Cosimulation块,虽然没有多少限制HDL Cosimulation块在两种情况下你可以使用。

请注意

这个配置不支持Vivado金宝app®cosimulation。

这些步骤描述如何cosimulate HDL设计与仿真软件测试所建模的算法软件。金宝app

  1. 创建一个HDL设计。编译、精心设计和高密度脂蛋白模拟器模拟模块。看到代码一个高密度脂蛋白组件

  2. 在仿真软件设计算法和模型算法。金宝app运行和测试您的模型前彻底更换或添加硬件模型组件作为Cosimulation块。

  3. 开始为使用MATLAB HDL模拟器®和仿真软金宝app件和负载高密度脂蛋白校验™库。看到开始为Cosimulation HDL模拟器仿真软件金宝app

  4. 添加一个或多个HDL Cosimulation块提供模拟器之间的通信。看到插入HDL Cosimulation块

  5. 高密度脂蛋白Cosimulation块的参数设置。看到定义HDL Cosimulation块接口

  6. (可选)添加VCD文件块记录模拟会话期间更改变量的值。看到添加一个值改变转储(VCD)文件

  7. 首先开始运行仿真软件模型,然后开始c金宝apposimulation HDL的模拟器。看到运行一个仿真金宝app软件Cosimulation会话

代码一个高密度脂蛋白组件

高密度脂蛋白验证器接口高密度脂蛋白之间的所有数据模拟器和仿真软件端口数据。金宝app软件与任何现有的高密度脂蛋白HDL校验模块。然而,当您代码的高密度脂蛋白模块针对仿真软件验证,您应该考虑的类型在两个环境之间共享数据模式和方向。金宝app

指定端口方向模式在高密度脂蛋白模块组件模拟

在您的模块声明中,您必须指定每个端口与一个方向模式(输入、输出或双向)。下表定义了这三种模式。

使用硬件描述语言(VHDL)®模式…… 用Verilog®模式…… 对港口……
输入 代表信号可以由一个MATLAB函数或模型试验台金宝app
输出 表示信号值传递给一个MATLAB函数或模型试验台金宝app
INOUT inout 代表双向信号可以由值传递给一个MATLAB函数或模型试验台金宝app

指定端口的数据类型在高密度脂蛋白模块组件模拟

本节描述如何为港口在你的指定数据类型兼容MATLAB HDL模块。的细节HDL验证器接口转换数据类型的MATLAB环境,明白了金宝app支持的数据类型

请注意

如果你使用不受支持的类型,金宝app高密度脂蛋白校验软件问题,而忽略了港口在运行时的一个警告。例如,如果您定义的接口和五个港口,其中一个是硬件描述语言(VHDL)访问端口,在运行时,界面显示一个警告和代码只能看到4个端口。

端口的数据类型硬件描述语言(VHDL)实体

端口的数据类型Verilog实体

编译和精致的HDL设计组件模拟

请参阅HDL模拟器文档的指令编译和精化HDL设计。

定义HDL Cosimulation块接口

插入HDL Cosimulation块

后代码模型的一个组件在HDL硬件描述语言(VHDL)或Verilog和模拟模拟器环境下,高密度脂蛋白表示融入你的模型作为一个模型金宝app高密度脂蛋白Cosimulation块通过执行以下步骤:

  1. 打开你的仿真软件模型金宝app,如果尚未开放。

  2. 删除的模型组件高密度脂蛋白Cosimulation块来代替。

  3. 在模型库浏览器金宝app,点击HDL校验块库。你可以选择块库支持高密度脂蛋白模拟器。金宝app选择的导师图形®ModelSim®高密度脂蛋白Cosimulation块,或节奏®Xcelium™高密度脂蛋白Cosimulation块,如下所示。

  4. 复制高密度脂蛋白Cosimulation块从图书馆浏览您的模型。

块连接端口

连接任何高密度脂蛋白Cosimulation块港口在仿真软件模型适用的阻塞端口。金宝app

  • 水槽模型装置,配置块的输入。

  • 模型源设备,配置块的输出。

开放的HDL Cosimulation块接口

打开块参数对话框高密度脂蛋白Cosimulation块,双击图标。金宝app模型显示以下块参数对话框(作为一个例子,的对话框高密度脂蛋白Cosimulation块用于ModelSim如下所示)。

块面具的HDL Cosimulation块。

高密度脂蛋白信号映射到阻塞端口

配置HDL验证人的第一步高密度脂蛋白Cosimulation块地图信号和信号的实例HDL设计在你的端口定义高密度脂蛋白Cosimulation块。除了确定输入和输出端口,您可以指定一个样品时间为每个输出端口。你也可以指定一个定点为每个输出端口的数据类型。

地图的信号可以在任何水平的HDL设计层次结构。

信号映射,您可以执行下面的操作:

  • 输入信号信息手动进入港口窗格块参数对话框。这种方法可以更有效的当你想连接少量的信号从你的HDL模型来仿真软件。金宝app

  • 使用自动填充按钮的高密度脂蛋白Cosimulation块获取信号信息为您发送一个查询的HDL模拟器。这种方法可以节省大量的努力当你想cosimulate的HDL模型有许多信号,你想连接到仿真软件模型。金宝app然而,在某些情况下,您将需要编辑查询返回的信号数据。

请注意

验证信号用于cosimulation读/写访问。对于更高的性能,您只需要提供访问到这些信号用于cosimulation。这条规则适用于所有的信号港口,时钟,模拟窗格,所有信号中添加任何其他方式。

高密度脂蛋白信号/端口和指定模块路径金宝app组件Cosimulation。这些规则是为信号/端口和规范在仿真软件模块路径。金宝app其他规格可以工作但不显式或隐式地支持在当前或将来的版本。金宝app

HDL设计通常有层次;这是该语法的原因。本规范并不代表一个文件名的层次结构。

路径规格Verilog顶级

路径规格硬件描述语言(VHDL)顶级

高密度脂蛋白模拟器获得信号的信息。自动填充按钮可以让你开始一个高密度脂蛋白模拟器查询和提供一个路径组件或模块在高密度脂蛋白HDL模型下仿真模拟器。通常,需要一些改变端口信息的查询完成后。你必须与高密度脂蛋白HDL模拟器运行模块加载自动填充去工作。

下面的例子描述了所需的步骤。

请注意

的例子是基于修改拷贝曼彻斯特接收机模型,首先删除了所有信号港口时钟窗格。

  1. 打开块参数对话框高密度脂蛋白Cosimulation块。单击港口选项卡。的港口窗格中打开(作为一个例子,港口面板的高密度脂蛋白Cosimulation块用于ModelSim下面的插图所示)。

    高密度脂蛋白Cosimulation块块面具,打开端口选项卡。

    提示

    删除所有港口之前执行自动填充以确保没有未使用的信号仍在端口列表中。

  2. 单击自动填充按钮。的自动填充对话框打开。

    这个模态对话框请求实例路径在高密度脂蛋白模型组件或模块;在这里你编辑字段中输入一个显式的高密度脂蛋白路径。您输入的路径不是一个文件路径与源文件无关。

  3. 在这个例子中,自动填充功能获得港口硬件描述语言(VHDL)组件的数据曼彻斯特。高密度脂蛋白的路径被指定为/高级/曼彻斯特。路径规范将取决于你的HDL模拟器,明白了指定/ HDL信号端口Cosimulation仿真软件组件和模块路径金宝app

  4. 点击填满将对话框,查询传播。

  5. 高密度脂蛋白模拟器返回港口数据后,进入到自动填充功能港口窗格中,如下图所示(使用节奏Xcelium例子所示)。

  6. 点击应用提交端口添加。

  7. 删除未使用的信号从端口面板和添加时钟信号。

    前面的图显示,查询输入时钟,时钟使,和复位端口(标记clk,启用,重置分别)端口列表。

    删除clk,启用重置信号从港口面板,添加clk信号的时钟窗格。

    这些行为导致的信号显示在接下来的数字。

  8. 自动填充返回的默认值输出端口:

    • 样品时间:1

    • 数据类型:继承

    • 部分长度:继承

    您可能需要更改这些值根据您的模型。在这个例子中,样品时间应该设置为10对所有输出。看到“指定信号数据类型”。

  9. 之前关闭块参数对话框中,点击应用提交任何编辑。

观察到自动填充返回的信息所有目标组件的输入和输出。在许多情况下,这将包括信号功能的高密度脂蛋白模拟器仿真软件模型中但不能连接。金宝app你可能会从列表中删除任何这样的条目港口如果他们不想要的窗格。你可以从模型驱动信号;金宝app你只需要定义他们的价值观,制定仿真软件模块的标准。金宝app

请注意,自动填充不返回的信息为内部信号。如果你的仿真软件金宝app模型需要访问这样的信号,你必须进入到港口手动面板。例如,在曼彻斯特接收机模型的情况下,您将需要添加输出端口条目/ / sync_i曼彻斯特,/ / isum_i曼彻斯特,/ / qsum_i曼彻斯特在步骤8中所示。

Xcelium和ModelSim用户:注意,时钟、复位和clk_enable可能在时钟和模拟窗格,但他们没有。这些信号可以是港口如果你选择让他们明确从仿真软件。金宝app

请注意

当你导入使用硬件描述语言(VHDL)信号自动填充,高密度脂蛋白模拟器返回信号名称全部用大写字母。

手动输入信号的信息。直接在输入信号的信息港口窗格中,执行以下步骤:

  1. 高密度脂蛋白的模拟器,确定HDL信号的信号路径名你计划来定义在你的街区。例如,在ModelSim仿真器,以下波窗口显示所有信号都从属于顶层模块曼彻斯特

  2. 在仿真金宝app软件,为你打开块参数对话框高密度脂蛋白Cosimulation块,如果尚未开放。

  3. 选择港口窗格选项卡。金宝app模型显示如下对话框(Xcelium)所示的例子。

    在这个面板中,您定义设计的高密度脂蛋白的信号,你想要包含在模型块,设置一个样品时间为输出端口和数据类型。金宝app你应该指定的参数港口面板的类型取决于设备块建模如下:

    • 对于一个设备都有输入和输出:指定块的输入端口、输出端口,输出样本时间和输出数据类型。

      输出端口,接受默认或输入一个显式的样品时间。可以显式地指定数据类型,或一组继承(默认)。在默认情况下,输出端口数据类型是继承了从信号连接到端口,或来源于HDL模型。

    • 水槽设备:指定块输出端口。

    • 源设备:指定块的输入端口。

  4. 输入信号的路径名完整的高密度脂蛋白的名字列通过双击现有的默认的信号。

    当你已经完成了编辑时钟信号,点击应用与仿真软件注册您的更改。金宝app

    以下对话框显示了一个端口定义高密度脂蛋白Cosimulation块。信号路径名称匹配路径名称出现在高密度脂蛋白模拟器窗口(Xcelium例子如图所示)。

    请注意

    当你定义一个输入端口,确保只有一个源设置强制输入端口。如果多个数据源驱动信号,仿真软件模型可能产生不可预知的结果。金宝app

  5. 您必须指定一个示例的输出端口。金宝app仿真软件使用您指定的值,和当前的设置时间尺度窗格中,计算实际的模拟样品时间。

    有关样品次HDL的更多信息校验cosimulation环境,明白了模拟时间尺度

  6. 您可以配置每个输出端口的定点数据类型明确如果需要,或使用默认的(继承了)。在默认情况下,模型决定了输出端口的数据类型金宝app如下:

    如果模金宝app型可以确定的数据类型信号连接到输出端口,它适用于数据类型到输出端口。例如,连接信号的数据类型规范块被反向传播。否则,高密度脂蛋白模拟金宝app器仿真软件查询来确定信号的数据类型的HDL模块。

    显式定点数据类型分配给一个信号,执行以下步骤:

    1. 选择签署无符号数据类型列。

    2. 如果信号有小数部分,输入部分长度

      例如,如果有一个8位信号模型签署数据类型和部分长度5,高密度脂蛋白Cosimulation块分配它的数据类型sfix8_En5。如果模型有一个无符号没有小数部分(16位信号部分长度0),高密度脂蛋白Cosimulation块分配它的数据类型ufix16

  7. 在关闭对话框之前,点击应用注册你的编辑。

导入信号信息直接输入端口的价值。启用直接引线使输入端口值变化传播到输出端口在零时间,从而消除可能的延迟输出样本的HDL与纯组合逻辑设计。指定的选项来启用直接引线港口窗格中,如下图所示。

指定数据类型的信号

数据类型部分长度参数仅适用于输出信号。看到数据类型部分长度在港口窗格的描述高密度脂蛋白Cosimulation块。

配置金宝app和HDL模拟器时机的关系

配置时间模型和高密度脂蛋白模拟器使用之间的关系金宝app时间尺度窗格块参数对话框。之前的设置时间尺度参数,读模拟时间尺度理解支持计时模式和时机的问题,将决定金宝app你的选择模式。

您可以指定一个相对或绝对时间模型和高密度脂蛋白模拟器之间的关系金宝app时间尺度窗格中描述高密度脂蛋白Cosimulation块参考。

定义金宝app和HDL模拟器时机的关系。仿真时间的差异表示可以以两种方式使用HDL和好验证器接口:

  • 通过定义手动(时间关系时间尺度面板)

    当你手动定义的关系,你确定有多少飞秒,纳秒、皮秒,微秒,毫秒、秒,或蜱虫在高密度脂蛋白模拟器在仿真软件代表1秒。金宝app

    这个量的HDL模拟器可以表示在下列方法之一:

    • 相对(即。,as some number of HDL simulator ticks). In this case, the cosimulation is said to operate in相对时间模式。的高密度脂蛋白Cosimulation块为cosimulation默认为相对时间模式。更多相对定时模式,明白了相对时间模式

    • 绝对单位(如毫秒或纳秒)。在这种情况下,据说cosimulation操作绝对时间模式。绝对的计时模式,明白了绝对时间模式

    相对和绝对时间,明白了模拟时间尺度

  • 通过允许HDL验证器定义时间表(时间尺度面板)

    当你允许链接软件定义时间关系,它试图设置高密度脂蛋白模拟器之间的时间尺度因子和模型尽可能接近1秒的HDL模拟器仿真软件= 1秒。金宝app如果这个设置是不可能的,这个链接产品试图设置信号速率仿真软件模型端口上尽可能低的高密度脂蛋白模拟器蜱虫的数量。金宝app

    在您开始之前,验证高密度脂蛋白模拟器运行。高密度脂蛋白校验软件可以解决极限的高密度脂蛋白模拟器只有当模拟器运行。

    你可以选择高密度脂蛋白校验计算的时间表在你设置的参数块对话框点击时间尺度然后点击选择现在确定时间表或者你可以有HDL校验计算时间尺度模拟开始时通过选择在仿真开始自动确定时间表

    当你点击现在确定时间表与高密度脂蛋白,高密度脂蛋白验证器连接仿真软件模金宝app拟器,这样它可以使用HDL模拟器解决计算最好的时间表。你可以接受这个时间尺度高密度脂蛋白校验表明或者你可以直接在港口进行更改。如果你想恢复到最初计算设置,点击使用建议的时间表。如果你想查看样本时间所有端口的HDL设计、选择显示所有港口和时钟

    如果您选择在仿真开始自动确定时间表在仿真开始时,你会得到相同的对话框在仿真软件。金宝app同样的调整,如果适用的话,你会如果你点击现在确定时间表当你在配置块。

在高密度脂蛋白Cosimulation块配置通信链路

你必须选择共享内存或套接字通信。看到高密度脂蛋白Cosimulation与MATLAB仿真软件金宝app

你决定哪种类型的沟通后,配置一块的通信链路连接窗格块参数对话框中所示的示例(ModelSim)。

下面的步骤指导您完成通信配置:

  1. 确定模型和高密度脂蛋白模拟器运行在同金宝app一台计算机上。如果他们是,跳到第4步。

  2. 清晰的高密度脂蛋白模拟器在这台电脑上运行。(此复选框默认选中。)因为仿真软件和高金宝app密度脂蛋白模拟器是运行在不同的计算机,高密度脂蛋白验证器设置连接方法套接字

  3. 输入计算机的主机名模拟运行你的高密度脂蛋白(HDL模拟器)主机名文本字段。在端口号或服务文本字段中,指定一个有效的端口号或服务为你的计算机系统。对于选择TCP / IP套接字端口信息,明白了TCP / IP套接字端口。跳到步骤5。

  4. 如果HDL模拟器和仿真软件是运行在同一台计算机上,金宝app决定是否要使用共享内存或TCP / IP套接字的通信通道。信息沟通的不同模式,请参阅高密度脂蛋白Cosimulation与MATLAB仿真软件金宝app

    如果你选择TCP / IP套接字通信,指定一个有效的端口数量为你的计算机系统或服务端口号或服务文本字段。对于选择TCP / IP套接字端口信息,明白了TCP / IP套接字端口

    如果您选择共享内存通信,选择共享内存复选框。

  5. 如果你想绕过HDL模拟器运行仿真软件模拟时,使用金宝app连接模式选项来指定你想要什么类型的模拟连接。选择以下选项之一:

    • 完整的模拟:确认界面和运行HDL模拟(默认)。

    • 只确认界面:检查HDL模拟器预期信号名称,尺寸,和数据类型,但是不要HDL模拟运行。

    • 没有关系:不要与高密度脂蛋白模拟器通信。高密度脂蛋白模拟器不需要开始。

    第二个和第三个选项,不与高密度脂蛋白HDL校验软件在仿真软件仿真模拟器。金宝app

  6. 点击应用

下面的示例对话框显示了一个沟通的定义高密度脂蛋白Cosimulation块。块被配置为仿真软件和高密度脂蛋白模拟器运行在同一台计算机金宝app上,在TCP / IP套接字通信模式在TCP / IP端口4449。

指定和Post-Simulation Tcl命令与高密度脂蛋白Cosimulation块参数对话框

您可以选择指定Tcl命令执行之前和之后的HDL模拟器仿真软件模型模拟了高密度脂蛋白的组成部分。金宝appTcl是一种可编程脚本语言支持的大多数HDL仿真环境。金宝app使用Tcl的范围可以从简单的一行命令来确认一个模拟运行或完成一个复杂的脚本,执行一个广泛的仿真初始化和启动序列。例如,您可以使用仿真命令后场模拟面板上指示HDL模拟器启动的模拟运行。

请注意,ModelSim用户

每次仿真后,需要ModelSim时间更新报道的结果。防止这一过程之间的潜在冲突和第二cosimulation会话,每个连续模拟之间添加一个短暂停。

你可以指定pre-simulation post-simulation Tcl输入Tcl命令的命令Pre-simulation命令或Post-simulation命令的文本字段模拟面板的高密度脂蛋白Cosimulation块参数对话框。

指定Tcl命令,执行以下步骤:

  1. 选择模拟选项卡块参数对话框。出现如下的对话框(ModelSim)所示的例子。

    Pre-simulation命令文本框包含一个命令用于参考目的。

  2. 在输入一个或多个命令Pre-simulation命令Post-simulation命令文本框。您可以指定一个Tcl命令每行文本框或每行输入多个命令通过添加分号(;)每个命令,这是标准的Tcl连接操作。

    ModelSim做文件

  3. 点击应用

通过编程控制块参数

一种方法是通过控制块的参数高密度脂蛋白Cosimulation块图形对话框。不过,您也可以通过编程的方式控制控制块面具的运行参数值和模拟。使用仿真软件可以读取的参数值金宝appget_param使用仿真软件功能和写金宝appset_param函数。所有块参数属性表明他们是否:

  • 可调的属性可以改变在模拟运行。

  • 评估参数值进行评估,确定其实际价值使用的功能。

高密度脂蛋白Cosimulation块没有任何可调参数;因此,你得到一个错误,如果你试图改变模拟运行时的值。然而,它确实有几个评估参数。

你可以看到参数列表及其属性通过执行右键点击,选择视图面具,然后参数选项卡。的变量列显示了编程参数名称。另外,您可以通过编程通过选择名字高密度脂蛋白Cosimulation块,然后输入以下命令在MATLAB提示:

> > get_param (gcb DialogParameters)

面具的一些示例使用MATLAB控制模拟和参数值。通常,命令放在一个脚本或函数文件,被称为由几个回调钩子模型开发人员可用。您可以将这些建议模型的代码在任何地点:金宝app

  • 在模型中工作区。在建模选项卡,设计部分中,点击模型浏览器。在Model Explorer对话框模型层次结构窗格中,选择金宝app仿真软件根>model_name>模型的工作空间。在模型的工作空间窗格中,从数据源列表。选择模型文件

  • 在模型中回调。在建模选项卡,设置部分中,点击模型设置>模型属性。在模型中属性对话框中,指定的回调函数回调选项卡。

  • 在一个子系统调。右键单击,然后选择一个空的子系统属性>回调。许多HDL校验演示使用这种技术开始HDL模拟器将MATLAB代码的OpenFcn回调。

  • 高密度脂蛋白Cosimulation块回调。右键点击高密度脂蛋白Cosimulation块,然后选择属性>回调

例如:脚本的值为高密度脂蛋白模拟器通信套接字数量。在回归环境中,您可能需要确定模型/ HDL模拟器连接的套接字数量在与其他模拟运行仿真,以避免碰撞。金宝app这个例子展示了代码可以处理这个任务。一个32位Linux的脚本®平台。

ttcp_exec = [matlabroot ' /工具箱/共享/ hdllink /脚本/ ttcp_glnx ');[状态,结果]=系统([ttcp_exec '——']);如果~ s parsed_result = textscan(结果,' % s ');avail_port = parsed_result {1} {2};其他错误(结果);结束
set_param (‘MyModel / HDL Cosimulation’,‘CommPortNumber’, avail_port);