主要内容

高密度脂蛋白Cosimulation

通过连接cosimulation HDL设计金宝app使用HDL模拟器

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

    HDL验证器/用于Mentor Graphics ModelSim

    HDL验证器/用于Xilinx Vivado模拟器

  • HDL Cosimulation模块
  • HDL Cosimulation模块
  • HDL Cosimulation模块

描述

高密度脂蛋白Cosimulationblock通过将输入信号应用到HDL模型并从HDL模拟器中仿真的HDL模型读取输出信号来共同模拟硬件组件。属性配置并生成此块Cosimulation向导.当与Vivado共模拟时®方法生成此块,则必须首先使用Cosimulation向导.当与ModelSim进行联合仿真时®或Xcelium™,您可以选择绕过向导,直接配置块。

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

  • 块的输入输出端口与HDL模块信号(包括内部信号)对应的映射。必须为每个输出端口指定采样时间。您可以选择为每个输出端口指定数据类型。Vivado协同仿真不支持内部信号的映射。金宝app

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

  • Simulink中仿真时间单元之间的时序关系金宝app®和HDL模拟器。

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

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

您可以通过仅配置输入或输出端口块来使用此块对源设备或接收器设备建模。

兼容金宝app代码生成

  • 此块参与HDL代码生成与HDL Coder™。编码器生成一个接口到您手动编写的或遗留的HDL代码。它不参与C代码的生成金宝app仿真软件编码器™

港口

块上显示的端口对应于HDL模拟器中运行的HDL设计的信号。的港口选项卡显示对应于端口的HDL信号。

当使用Xcelium或ModelSim模拟器时,您可以通过更改块参数添加和删除端口,并配置它们的数据类型和采样时间。使用自动填充按钮,通过向HDL模拟器发送端口信息请求来填充表格。此请求返回端口名称和来自HDL模拟器中运行的HDL设计的信息(如果您使用的是Cosimulation向导生成块)。看到从HDL模拟器获得信号信息

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

输入

全部展开

块上的端口与HDL设计上的端口相对应。上添加或删除端口港口选项卡。

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

输出

全部展开

块上的端口与HDL设计上的端口相对应。上添加或删除端口港口选项卡。

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

参数

全部展开

此属性是只读的。

属性生成此块后,此部分将显示相关信息Cosimulation向导.显示如下内容:

  • HDL模拟器- Vivado模拟器

  • HDL设计库- HDL库文件的位置

  • HDL语言- VHDL或Verilog

  • HDL时间精度- HDL设计的时间精度

  • HDL波形文件-波形文件的名称和路径

当为Vivado模拟器生成一个联合仿真块时,您不能使用块掩码更改端口、时钟、重置或时间精度的名称和方向。要更改这些项,请打开Cosimulation向导并重新生成块。

依赖关系

此参数仅在使用Vivado cosimulation时可见。

港口

消除了当您的模型包含纯组合路径时,协同仿真和Simulink之间发生的一个输出-样本延迟差异。金宝app清除此复选框,如果高密度脂蛋白Cosimulation块处于反馈循环中,并生成代数循环警告或错误。当模拟在数据路径上有寄存器的顺序电路时,指定直接馈通不会影响该数据路径的计时。

使用HDL模拟器路径名称语法指定信号路径名称。例如,manchester.samp用于Xcelium HDL模拟器。信号可以位于HDL设计层次结构的任何级别。的高密度脂蛋白Cosimulation信号对应的块端口用此名称标记。

有关在Simulink中指定端口和模块路径名称的规则,请参见“为Cosimulation指定HDL信号/端口金宝app和模块路径”。

您可以直接从HDL模拟器复制信号路径名称窗口并将它们粘贴到HDL全名字段。使用路径。的名字查看与不查看Db:路径。的名字视图。将信号路径名称粘贴到HDL全名,点击应用完成粘贴操作并更新信号列表。

依赖关系

方法生成的块Cosimulation向导,此值不应更改。对于Vivado HDL Cosimulation块,参数是只读的。

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

输入- Simulink驱动的HDL信号。金宝app金宝appSimulink以指定的采样率在指定的HDL模拟器信号上沉积值。

请注意

在定义块输入端口时,请确保只设置了一个源来驱动该信号的输入。例如,避免定义具有多个实例的输入端口。如果多个源驱动输入到单个信号,您的仿真模型将产生意想不到的结果。

输出- Simulink读取的HDL信号。金宝app对于输出信号,必须指定一个明确的采样时间。您还可以指定数据类型,但宽度必须与HDL中信号的宽度匹配。有关指定数据类型的详细信息,请参见数据类型而且部分长度参数。

金宝appSimulink信号没有三态语义,因为没有“Z”价值。要与双向信号接口,连接到输入端并使能输出驱动和输入驱动的输出信号。这种方法将实际的三态缓冲区留在HDL中,其中解析函数可以处理与其他三态缓冲区的接口。

依赖关系

方法生成的块Cosimulation向导,此值不应更改。对于Vivado HDL Cosimulation块,参数是只读的。

此属性是只读的。

控件所配置的HDL端口信号类型Cosimulation向导

依赖关系

此参数仅在生成用于Vivado cosimulation的块时可见。

此属性是只读的。

控件所配置的HDL端口信号的尺寸Cosimulation向导

依赖关系

此参数仅在生成用于Vivado cosimulation的块时可见。

连续采样到输出端口的时间间隔。

金宝appSimulink以此处指定的采样速率从相关HDL模拟器信号中读取一个值。

一般来说,Simulin金宝appk处理端口采样周期如下:

  • 如果将一个输入端口连接到一个具有明确采样周期的信号(基于正向传播),Simulink将该速率应用于端口。金宝app

  • 如果您将一个输入端口连接到一个没有明确采样周期的信号,Simulink将分配一个采样周期,该采样周期等于模型中所有确定的输入端口采样周期的最小公倍数(LCM)。金宝app

  • 必须为每个输出端口指定显式采样时间。

对应于Simulink采样时间命中的HDL时间取决于金宝app时间尺度设置。看到模拟时间尺度

依赖关系

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

选择继承自动确定数据类型。该块检查继承的单词长度是否与从HDL模拟器查询的单词长度匹配。如果它们不匹配,Simulink将生成一条错金宝app误消息。例如,如果你连接一个信号规范块的输出,继承属性指定的数据类型信号规范块到输出端口。

如果S金宝appimulink不能确定连接到输出端口的信号的数据类型,它将向HDL模拟器查询端口的数据类型。例如,如果HDL模拟器返回VHDL®数据类型STD_LOGIC_VECTOR对于一个大小的信号N位,数据类型ufixN在输出端口上强制。隐式分数长度为0。

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

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

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

  • Verilog®的信号线注册类型

依赖关系

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

在与Vivado模拟器进行联合仿真时,此参数显示为金宝appSimulink数据类型

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

依赖关系

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

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

依赖关系

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

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

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

  • 的Verilog信号线注册类型

时钟

请注意

在与Vivado模拟器进行联合仿真时,此选项卡被命名时钟,重置,启用

创建可选的上升边缘和下降边缘时钟,将刺激应用到您的联合仿真模型。滚动列表显示HDL时钟,它使用沉积方法将值驱动到您正在建模的HDL信号。时钟信号必须为单比特信号。不支持矢量信号。金宝app有关添加和编辑时钟信号的说明,请参见使用HDL Cosimulation块的时钟窗格创建可选的时钟

指定在开始共同模拟之前运行HDL模拟所需的时间。指定一个非负整数,并从菜单中选择时间单位。

  • fs——飞秒

  • ps——皮秒

  • ns——纳秒

  • 我们——微秒

  • 女士——毫秒

  • 年代- - - - - -秒

依赖关系

为了启用这个参数,为Vivado cosimulation生成这个块。

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

有关Simulink中路径规范的信息和要求,请参见金宝app指定Simulink试验台协同仿真的HDL信号/端口和模块路径金宝app

您可以直接从HDL模拟器复制信号路径名称窗口并将它们粘贴到HDL全名字段。使用路径。的名字查看与不查看Db:路径。的名字视图。将信号路径名称粘贴到HDL全名,点击应用完成粘贴操作并更新信号列表。

依赖关系

方法生成的块Cosimulation向导,此值不应更改。对于Vivado HDL Cosimulation块,参数是只读的。

选择以下选项之一。

  • 不断上升的—指定上升边缘时钟。

  • 下降—指定跌落边缘时钟。

周期和持续时间为Simulink时间。金宝app要将Simulink金宝app时间与HDL时间关联起来,请转到时间尺度选择并单击现在就确定时间表

依赖关系

此参数仅对ModelSim或Xcelium协同仿真可见。

对于Vivado协同仿真,选择以下选项之一。

  • 主动上升沿时钟-创建一个占空比为50%的周期信号,其中上升沿从Simulink驱动输入时偏移。金宝app

  • 主动落沿时钟-创建一个占空比为50%的周期信号,其中下降沿从Simulink驱动输入时偏移。金宝app

  • 步骤0到1-创建一个步进函数,在指定的持续时间内驱动0,然后转换为1。

  • 步骤1到0-创建一个步进函数,在指定的时间内驱动1,然后转换为0。

周期和持续时间为Simulink时间。金宝app要将Simulink金宝app时间与HDL时间关联起来,请转到时间尺度选择并单击显示时间和建议时间表

依赖关系

此参数仅在Vivado cosimulation中可见。

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

如果时钟周期不是偶数,Simulink无法创建50%占空比。金宝app相反,HDL验证器™软件创建下降边缘在clockperiod / 2(舍入到最接近的整数)。

对于ModelSim或Xcelium,周期和持续时间指定为Simulink时间,而对于Vivado,它们指定为HDL时间。金宝app

时间尺度

选择Simulink和HDL模拟器之间的定时关系,可以手动选择,也可以自动金宝app选择。这些参数指定了一秒的Simulink时间和一些HDL模拟器时间之间的对应关系。金宝app这个HDL模拟器时间的数量可以用以下方式之一表示:

  • 相对计时关系(Simulink秒对应HDL模拟金宝app器精度,或“tick”。

  • 绝对计时关系(Simulink秒对应于HDL模金宝app拟器时间的绝对单位)

有关计算相对和绝对计时模式的详细信息,请参见定义Simulink和HD金宝appL模拟器定时关系

有关在共同仿真期间Simulink和HDL模拟器之间的关系以及相对和绝对定时模式的操作的详细信息,请参见金宝app模拟时间尺度

要查看所有端口、时钟、重置和启用单击的Simulink时间和HDL时间之金宝app间的关系显示时间和建议时间表.如果需要,此操作还会自动确定可用的时间刻度。

如果选择此选项,HDL验证器将在启动Simulink模拟时计算时间刻度。金宝app如果未选中,单击现在就确定时间表在不开始模拟的情况下立即计算时间刻度。对于Vivado cosimulation,这个按钮显示为显示时间和建议时间表.或者,您也可以手动选择时间刻度。有关自动时间刻度计算的指导,请参见自动指定定时关系

该参数由a时间价值和TimeUnit价值。

为协仿真配置相对定时模式:

  1. 验证蜱虫的默认设置TimeUnit选中。如果不是,则从右侧列表中选择。

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

为协仿真配置绝对计时模式:

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

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

连接

在与Vivado模拟器进行联合仿真时,此选项卡不可见。

Simulink和HDL模拟器之间的连接类型。金宝app

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

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

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

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

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

  • 共享内存: 金宝appSimulink和HDL模拟器通过共享内存进行通信。共享内存通信提供了最佳性能,并且是默认的通信模式。

依赖关系

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

如果在不同的计算机上运行Simulink和HDL模拟器,则应用此参数金宝app。

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

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

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

模拟

在与Vivado模拟器进行联合仿真时,此选项卡不可见。

指定在Simulink中开始模拟之前运行HDL模拟器的时间量。金宝app指定这个时间可以正确地对齐Simulink块的信号和HDL信号,这样就可以直接比较和验证它们,而不会产生额外的金宝app延迟。

该设置由PreRunTime价值和PreRunTimeUnit价值。

  • PreRunTime:任何有效的时间值。默认值为0。

  • PreRunTimeUnit:的时间单位PreRunTime

    • 蜱虫

    • 年代

    • 女士

    • 我们

    • ns

    • ps

    • fs

在模拟Simulink模型的HDL组件之前,协同仿真工具在HDL模拟器中执行这些命令。金宝app如果在一行中输入多个命令,请在每个命令后面加上分号(;),分号是标准的Tcl连接操作符。

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

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

在模拟Simulink模型的HDL组件之后,协同仿真工具在HDL模拟器中执行这些命令。金宝app

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

请注意

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

扩展功能

版本历史

在R2008a中引入