主要内容

HDL协同模拟

通过连接来共同模拟HDL设计金宝app使用HDL模拟器

  • 图书馆:
  • HDL验证器/用于Cadence Incisive

    HDL验证程序/用于Mentor Graphics ModelSim

  • HDL协同模拟块
  • HDL协同模拟块

描述

这个HDL协同模拟块通过向HDL模拟器中模拟的HDL模型应用输入信号并从中读取输出信号,从而对硬件组件进行联合模拟。通过仅使用输入或输出端口配置该块,可以使用该块对源或接收器设备进行建模。

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

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

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

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

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

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

兼容金宝app代码生成

  • 该模块使用HDL编码器参与HDL代码生成™. 编码器生成与手动编写的或传统HDL代码的接口。它不参与使用的C代码生成金宝appSimulink编码器™.

港口

块上显示的端口与HDL模拟器中运行的HDL设计信号相对应。通过更改块参数,可以添加和删除端口,并配置其数据类型和采样时间。这个港口选项卡显示与端口对应的HDL信号。您可以添加、删除和更改端口的顺序。使用自动填充按钮,通过HDL模拟器的端口信息请求填写表格。此请求返回在HDL模拟器中运行的HDL设计中的端口名和信息。有关此功能的详细说明,请参阅“从HDL模拟器获取信号信息”。

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

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

输入

全部展开

块上的端口与HDL设计上的端口相对应。在服务器上添加或删除端口港口标签。

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

输出

全部展开

块上的端口与HDL设计上的端口相对应。在服务器上添加或删除端口港口标签。

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

参数

全部展开

港口

消除当模型包含纯组合路径时,协同模拟和Simulink之间出现的单输出采样延迟差异。如果出现以下情况,请清除此复选框:金宝appHDL协同模拟块位于反馈循环中,并生成代数循环警告或错误。模拟数据路径上有寄存器的时序电路时,指定直接馈通不会影响该数据路径的定时。

使用HDL模拟器路径名语法指定信号路径名。例如曼彻斯特,桑普精辟®HDL模拟器。信号可以是HDL设计层次的任何级别。这个HDL协同模拟与信号对应的块端口标有此名称。

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

您可以直接从HDL模拟器复制信号路径名称窗口并将它们粘贴到HDL全名字段。使用路径名观而不见Db::Path.Name看法将信号路径名称粘贴到HDL全名点击申请完成粘贴操作并更新信号列表。

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

输入-Simulink驱动的HDL信号。S金宝appimulink以指定的采样率将值存储在指定的HDL模拟器信号上。

笔记

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

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

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

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

金宝appSimulink以指定的采样率在HDL模拟器信号上存储输入端口信号。相反,Simulink以指定的采样率从指定的HDL模拟器信号读取输出端口信号。

通常,Simulink按金宝app如下方式处理端口采样周期:

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

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

  • Simuli金宝appnk设置输入端口采样周期后,将用户指定的输出采样时间应用于所有输出端口。必须为每个输出端口指定显式采样时间。

输出端口采样时间的准确解释取决于时间尺度参数HDL协同模拟块另见模拟时间尺度.

依赖关系

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

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

如果S金宝appimulink无法确定连接到输出端口的信号的数据类型,它将向HDL模拟器查询端口的数据类型。例如,如果HDL模拟器返回VHDL数据类型标准逻辑向量对于大小的信号N位,数据类型ufixN强制输出端口。隐式分数长度是0。

您还可以指定一个显式数据类型(可选)分数长度. 通过显式分配数据类型,可以在的输出端口上强制使用定点数据类型HDL协同模拟块例如,对于8位输出端口,设置标志签署并设置分数长度5.强制将数据类型设置为sfix8_En5. 不能强制宽度。宽度始终从HDL模拟器继承。

依赖关系

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

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

  • 任何逻辑类型的VHDL信号,例如标准逻辑标准逻辑向量

  • Verilog®信号金属丝规则类型

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

依赖关系

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

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

依赖关系

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

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

  • 任何逻辑类型的VHDL信号,例如标准逻辑标准逻辑向量

  • Verilog的信号金属丝规则类型

时钟

创建可选的上升沿和下降沿时钟,将刺激应用于您的协同模拟模型。滚动列表显示HDL时钟,这些时钟使用存款方法将值驱动到正在建模的HDL信号。时钟信号必须是单位信号。不支持矢量信号。有关添加和编辑时钟信号的说明,请参阅金宝app使用HDL协同模拟块的时钟窗格创建可选时钟.

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

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

您可以直接从HDL模拟器复制信号路径名称窗口并将它们粘贴到HDL全名字段。使用路径名观而不见Db::Path.Name看法将信号路径名称粘贴到HDL全名点击申请完成粘贴操作并更新信号列表。

选择上升坠落指定上升沿时钟或下降沿时钟。

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

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

时间尺度

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

  • 相对的定时关系(Simulink秒对应于HDL模金宝app拟器定义的刻度间隔)

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

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

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

如果您选择此选项,当您启动Simulink仿真时,HDL验证器将计算时间刻度。金宝app如果不勾选,请单击现在确定时间刻度在不启动模拟的情况下立即计算时间尺度。或者,您可以手动选择时间刻度。有关自动时间刻度计算的指导,请参见自动指定定时关系.

此参数由一个时间价值与aTimeUnit价值。

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

  1. 核实打上钩的默认设置TimeUnit,如果未选中,则从右侧列表中选择。

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

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

  1. 设置TimeUnit到绝对时间单位:财政司司长(飞秒),ps(皮秒),ns(纳秒),我们(微秒),太太(毫秒),或s(秒)。

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

连接

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

  • 全模拟:确认接口,运行HDL仿真。

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

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

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

  • 插座:S金宝appimulink和HDL模拟器通过指定的TCP/IP套接字进行通信。TCP/IP套接字模式更通用。您可以将其用于单个系统和网络配置。此选项提供了最大的可扩展性。有关TCP/IP套接字通信的更多信息,请参阅TCP/IP套接字端口.

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

依赖关系

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

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

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

当您选择此选项时,HDL协同模拟块图标显示当前通信参数设置。如果选择共享内存,将显示图标SharedMem. 如果选择TCP套接字通信,则会显示图标插座并以格式显示主机名和端口号主机名:端口.

这个信息可以帮助你区分多重HDL协同模拟块,其中每个块与HDL模拟器的不同实例通信。

模拟

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

此设置由运行前价值与aPreRunTimeUnit价值。

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

  • PreRunTimeUnit:指定的时间单位运行前.

    • 打上钩

    • s

    • 太太

    • 我们

    • ns

    • ps

    • 财政司司长

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

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

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

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

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

笔记

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

扩展功能

2008年推出