主要内容

高密度脂蛋白Cosimulation

通过连接来模拟HDL设计万博1manbetx使用HDL模拟器

  • 库:
  • HDL验证器/用于Cadence Incisive

    HDL验证程序/用于Mentor Graphics ModelSim

  • 高密度脂蛋白Cosimulation块
  • 高密度脂蛋白Cosimulation块

描述

高密度脂蛋白Cosimulation块通过在HDL模拟器中对一个HDL模型施加输入信号并从该HDL模型读取输出信号来对硬件组件进行仿真。您可以使用此块建模源或接收设备,方法是仅使用输入或输出端口配置该块。

您可以在块上配置这些选项:

  • 将模块的输入和输出端口与HDL模块的信号(包括内部信号)相对应的映射。您必须为每个输出端口指定一个示例时间。您可以选择为每个输出端口指定数据类型。

  • 用于在模拟器之间交换数据的通信类型和通信设置。

  • Simulink中仿真时间单位之间的时序关系万博1manbetx®以及HDL模拟器。

  • 用于模型的上升沿或下降沿时钟。您可以指定每个时钟信号的周期。

  • 在模拟前后运行的Tcl命令。

兼容万博1manbetx代码生成

  • 该模块使用HDL Coder™参与HDL代码生成。编码器生成一个接口到您手工编写的或遗留的HDL代码。它不参与C代码生成万博1manbetxSimulink编码器™

港口

模块上显示的端口与运行在HDL模拟器中的HDL设计信号相对应。通过更改块参数,您可以添加和删除端口,并配置它们的数据类型和样本时间。的港口选项卡显示与端口对应的HDL信号。您可以添加、删除和更改端口的顺序。使用自动填充按钮通过向HDL模拟器发出端口信息请求来填充表。这个请求返回在HDL模拟器中运行的HDL设计中的端口名称和信息。请参阅“从HDL模拟器获取信号信息”以了解该特性的详细描述。

配置时指定的所有信号高密度脂蛋白Cosimulation块必须在HDL模拟器中具有读/写访问权限。有关详细信息,请参阅HDL模拟器产品文档。

当您导入VHDL时®来自HDL模拟器的信号,HDL验证器™返回所有大写的信号名称。

输入

全部展开

模块上的端口与你的HDL设计上的端口相对应。添加或移除端口港口标签。

数据类型:int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔值|定点

输出

全部展开

模块上的端口与你的HDL设计上的端口相对应。添加或移除端口港口标签。

数据类型:int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔值|定点

参数

全部展开

港口

消除当模型包含纯组合路径时,协同模拟和Simulink之间出现的单输出采样延迟差异。如果出现以下情况,请清除此复选框:万博1manbetx高密度脂蛋白Cosimulation块处于反馈循环中,并生成代数循环警告或错误。当您模拟一个在数据路径上有寄存器的顺序电路时,指定直接馈通不会影响该数据路径的时间。

使用HDL模拟器路径名语法指定信号路径名。例如,manchester.samp为深刻的®高密度脂蛋白模拟器。信号可以在HDL设计层次结构的任何级别。的高密度脂蛋白Cosimulation该信号对应的块端口被标记为这个名称。

有关在Simulink中指定端口和模块路径名称的规则,请参阅“指定HDL信号/端口和模块路径以进行协同模拟”万博1manbetx。

您可以直接从HDL模拟器复制信号路径名称波动窗口,粘贴到完整的高密度脂蛋白的名字字段。使用路径。的名字视图,而不是Db::Path.Name视图。将信号路径名粘贴到完整的高密度脂蛋白的名字点击应用完成粘贴操作并更新信号列表。

要添加双向端口,请将端口添加到列表中两次,作为输入和输出。

输入-Simulink驱动的HDL信号。S万博1manbetximulink以指定的采样率将值存储在指定的HDL模拟器信号上。

请注意

定义块输入端口时,请确保仅设置一个源以将输入驱动到该信号。例如,避免定义具有多个实例的输入端口。如果多个源将输入驱动到单个信号,则仿真模型会产生意外结果。

输出-Simulink读取的HDL信号。对万博1manbetx于输出信号,必须指定显式采样时间。也可以指定数据类型,但宽度必须与HDL中的信号宽度匹配。有关指定数据类型的详细信息,请参阅数据类型部分长度参数。

万博1manbetxSimulink信号没有三状态语义,因为没有“Z”价值为了与双向信号接口,连接到输出驱动器的输入和启用信号以及输入驱动器的输出信号。这种方法在HDL中保留了实际的三态缓冲区,解析函数可以处理与其他三态缓冲区的接口。

应用于输出端口的连续采样之间的时间间隔。

万博1manbetxSimulink将输入端口信号以指定的采样率存储在HDL模拟器信号上。相反,Simulink以万博1manbetx指定的采样率从指定的HDL模拟器信号中读取输出端口信号。

一般来说,Simulin万博1manbetxk处理端口样本周期如下:

  • 如果将输入端口连接到具有显式采样周期的信号,则Simulink会基于正向传播将该速率应用于该端口。万博1manbetx

  • 如果您将一个输入端口连接到一个没有显式采样周期的信号,Simulink将分配一个采样周期,该采样周期等于模型中所有已识别输入端口采样周期的最小公倍数(LCM)。万博1manbetx

  • 在Simul万博1manbetxink设置了输入端口采样周期后,它将用户指定的输出采样时间应用于所有输出端口。您必须为每个输出端口指定一个显式的示例时间。

输出端口采样时间的准确解释取决于时间尺度系统参数高密度脂蛋白Cosimulation块另见模拟时间尺度

依赖关系

要启用该参数,请设置I / O模式输出

选择继承自动确定数据类型。该块检查继承的字长是否与从HDL模拟器查询的字长匹配。如果它们不匹配,Simulink将生成一条错误消息。例如,如果您连接万博1manbetx信号规格块到输出,继承强制由指定的数据类型信号规格块到输出端口。

如果S万博1manbetximulink不能确定连接到输出端口的信号的数据类型,它会查询HDL模拟器以获取端口的数据类型。例如,如果HDL模拟器返回VHDL数据类型STD_LOGIC_VECTOR一个大小的信号N位,数据类型乌菲克森在输出端口上强制。隐式分数长度为0。

您还可以指定显式数据类型(可选)部分长度.属性的输出端口上强制使用定点数据类型,通过显式地分配数据类型高密度脂蛋白Cosimulation块例如,对于8位输出端口,设置签名签署以及设置部分长度5强制将数据类型设置为sfix8_En5.你不能强迫宽度。宽度总是继承自HDL模拟器。

依赖关系

要启用该参数,请设置I / O模式输出

数据类型部分长度属性仅适用于以下类型的HDL信号:

  • 任何逻辑类型的VHDL信号,例如STD_LOGICSTD_LOGIC_VECTOR

  • Verilog®的信号线注册类型

用于显式输出端口数据类型的符号指定。

依赖关系

要启用该参数,请设置I / O模式输出,并设置数据类型不动点

定点输出信号的小数部分的大小,以比特为单位。例如,对于8位输出端口,设置签名签署以及设置部分长度5强制将数据类型设置为sfix8_En5.你不能强迫宽度;宽度总是继承自HDL模拟器。

依赖关系

要启用该参数,请设置I / O模式输出,数据类型财产不动点

数据类型部分长度属性仅适用于以下类型的HDL信号:

  • 任何逻辑类型的VHDL信号,例如STD_LOGICSTD_LOGIC_VECTOR

  • 计算机的Verilog信号线注册类型

时钟

创建可选的上升沿和下降沿时钟,将刺激应用到您的协同模拟模型。滚动列表显示HDL时钟,使用存款方法将值驱动到您正在建模的HDL信号。时钟信号必须是单位信号。不支持向量信号。万博1manbetx有关添加和编辑时钟信号的说明,请参见使用HDL协同仿真块的时钟窗格创建可选时钟

使用HDL模拟器路径名语法,将每个时钟指定为信号路径名。例如:/ / clk曼彻斯特曼彻斯特.clk

有关Simulink中路径规范的信息和要求,请参阅“指定HDL信号/端口和模块路径以进行协同模拟”。万博1manbetx

您可以直接从HDL模拟器复制信号路径名称波动窗口,粘贴到完整的高密度脂蛋白的名字字段。使用路径。的名字视图,而不是Db::Path.Name视图。将信号路径名粘贴到完整的高密度脂蛋白的名字点击应用完成粘贴操作并更新信号列表。

选择不断上升的下降指定上升沿时钟或下降沿时钟。

要指定显式时钟周期,请输入等于或大于两个分辨率单位(刻度)的采样时间。

如果时钟周期不是偶数整数,Simulink无法创建50%的占空比。相反,HDL验证器软件万博1manbetx在clockperiod / 2(四舍五入到最近的整数)。

时间尺度

手动或自动选择Simulink和HDL模拟器之间的定时关系。这些参数指定一万博1manbetx秒钟的Simulink时间和一些HDL模拟器时间之间的对应关系。此HDL模拟器时间可以用以下方式之一表示:

  • 相对时间关系(Simulink的秒对应于HDL万博1manbetx模拟器定义的时间间隔)

  • 完全的定时关系(Simulink秒对应于HDL模万博1manbetx拟器时间的绝对单位)

有关计算相对和绝对定时模式的更多信息,请参见定义Simulink和HD万博1manbetxL模拟器定时关系

关于Simulink和HDL模拟器在协同仿真过程中的关系,以及相对和绝对定时模式的操作的详细信息,请参见万博1manbetx模拟时间尺度

如果选择此选项,HDL Verifier将在启动Simulink模拟时计算时间刻度。如果未选择此选项,请单击万博1manbetx现在确定时间刻度在不启动模拟的情况下立即计算时间刻度。或者,您可以手动选择时间刻度。有关自动时间刻度计算的指导,请参阅自动指定定时关系

该参数由a组成时间价值与a时间单位价值

要为联合模拟配置相对计时模式,请执行以下操作:

  1. 核实蜱虫的默认设置时间单位,如果未选中,则从右侧列表中选择。

  2. 在列表中输入比例因子时间文本框左边。默认的比例因子是1。

要为联合模拟配置绝对计时模式,请执行以下操作:

  1. 时间单位以绝对时间为单位:fs(飞秒),附言(皮秒),ns(纳秒),我们(微秒),女士(毫秒),或年代(秒)。

  2. 在列表中输入比例因子时间文本框左边。默认的比例因子是1。

联系

Simulink和HDL模拟器之间的连接类型。万博1manbetx

  • 完整的模拟:确认接口并运行HDL模拟。

  • 仅确认接口:连接到HDL模拟器并检查信号名称、尺寸和数据类型,但不运行HDL模拟。在Simuli万博1manbetxnk仿真过程中,没有与HDL模拟器的接触。

  • 没有关系:不要与HDL模拟器通信。HDL模拟器不需要启动。

当两个应用程序运行在同一台计算机上时,您可以为应用程序之间的通信通道选择共享内存或TCP套接字。如果不选择此选项,则只有TCP/IP套接字模式可用连接方法列表将不可用。

  • 套接字: 万博1manbetxSimulink和HDL模拟器通过指定的TCP/IP套接字进行通信。TCP/IP套接字模式更加通用。您可以将它用于单系统和网络配置。这个选项提供了最大的可伸缩性。有关TCP/IP套接字通信的更多信息,请参见TCP / IP套接字端口

  • 共享内存:S万博1manbetximulink和HDL模拟器通过共享内存进行通信。共享内存通信提供最佳性能,是默认的通信模式。

依赖关系

选择时显示此参数HDL模拟器正在这台计算机上运行

如果在不同的计算机上运行Simulink和HDL模拟器,则此参数适用万博1manbetx。

如果未使用共享内存,请为计算机系统指定有效的TCP套接字端口号或服务。有关选择TCP套接字端口的信息,请参阅TCP / IP套接字端口

当您选择此选项时高密度脂蛋白Cosimulation块图标显示当前的通信参数设置。如果选择共享内存,则显示图标共享内存. 如果选择TCP套接字通信,则会显示图标套接字并以以下格式显示主机名和端口号:主机名:端口

此信息可以帮助您区分多个高密度脂蛋白Cosimulation块,其中每个块与HDL模拟器的不同实例通信。

模拟

指定在Simulink中开始模拟之前运行HDL模拟器的时间量。指定此时间将正确对齐Simulink块的信号和HDL信号,以便可以直接比较和验证它们,而无需额外延迟。万博1manbetx

这个设置包括一个运行前价值与a预运行单元价值

  • 运行前:任何有效的时间值。默认值为0。

  • 预运行单元:指定时间单位运行前

    • 蜱虫

    • 年代

    • 女士

    • 我们

    • ns

    • 附言

    • fs

在模拟Simulink模型的HDL组件之前,协同模拟工具在HDL模拟器中执行这些命令。如果在一行中输入多个命令,请在每个命令后面加上分号(;),这是标准的Tcl连接运算符。万博1manbetx

例如,使用此参数生成一行echo命令以确认正在运行模拟,或执行广泛的模拟初始化和启动序列的复杂脚本。不能使用这些命令更改模拟状态。

您可以指定任何有效的Tcl命令。您指定的Tcl命令不能包括加载HDL模拟器项目或修改模拟器状态的命令。例如,字符向量不能包含以下命令:开始停止重新启动(适用于ModelSim)®)或停止重置(的)。

在模拟Simulink模型的HDL组件之后,协同仿真工具在HDL模拟器中执行这些命令。万博1manbetx

您可以指定任何有效的Tcl命令。您指定的Tcl命令不能包括加载HDL模拟器项目或修改模拟器状态的命令。例如,字符串不能包括以下命令:开始停止重新启动(对于ModelSim)或停止重置(的)。

请注意

在每次ModelSim模拟之后,模拟器需要时间来更新覆盖率结果。为了防止此过程与下一次联合模拟会话之间的潜在冲突,请在每次连续模拟之间添加一个短暂的暂停。

扩展能力

介绍了R2008a