高密度脂蛋白Cosimulation
通过连接cosimulation HDL设计金宝app使用HDL模拟器
- 库:
HDL验证器/用于Cadence Xcelium
HDL验证器/用于Mentor Graphics ModelSim
HDL验证器/用于Xilinx Vivado模拟器
描述
的高密度脂蛋白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_input_port_name
信号从Simulink传递到HDL模拟器金宝app
标量|向量
块上的端口与HDL设计上的端口相对应。上添加或删除端口港口选项卡。
数据类型:int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|定点
输出
HDL_output_port_name
-信号从HDL模拟器传递到Simulink金宝app
标量|向量
块上的端口与HDL设计上的端口相对应。上添加或删除端口港口选项卡。
数据类型:int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|定点
参数
块的信息
- Vivado cosimulation的块信息
生成块
此属性是只读的。
属性生成此块后,此部分将显示相关信息Cosimulation向导.显示如下内容:
HDL模拟器- Vivado模拟器
HDL设计库- HDL库文件的位置
HDL语言- VHDL或Verilog
HDL时间精度- HDL设计的时间精度
HDL波形文件-波形文件的名称和路径
当为Vivado模拟器生成一个联合仿真块时,您不能使用块掩码更改端口、时钟、重置或时间精度的名称和方向。要更改这些项,请打开Cosimulation向导并重新生成块。
依赖关系
此参数仅在使用Vivado cosimulation时可见。
港口
启用直馈
-绕过代数循环警告
真正的
(默认)|假
消除了当您的模型包含纯组合路径时,协同仿真和Simulink之间发生的一个输出-样本延迟差异。金宝app清除此复选框,如果高密度脂蛋白Cosimulation块处于反馈循环中,并生成代数循环警告或错误。当模拟在数据路径上有寄存器的顺序电路时,指定直接馈通不会影响该数据路径的计时。
HDL全名
-信号路径名称
字符串
使用HDL模拟器路径名称语法指定信号路径名称。例如,manchester.samp
用于Xcelium HDL模拟器。信号可以位于HDL设计层次结构的任何级别。的高密度脂蛋白Cosimulation信号对应的块端口用此名称标记。
有关在Simulink中指定端口和模块路径名称的规则,请参见“为Cosimulation指定HDL信号/端口金宝app和模块路径”。
您可以直接从HDL模拟器复制信号路径名称波窗口并将它们粘贴到HDL全名字段。使用路径。的名字
查看与不查看Db:路径。的名字
视图。将信号路径名称粘贴到HDL全名,点击应用完成粘贴操作并更新信号列表。
依赖关系
方法生成的块Cosimulation向导,此值不应更改。对于Vivado HDL Cosimulation块,参数是只读的。
I / O模式
-端口方向
输入
|输出
若要添加双向端口,请将该端口添加到列表中两次,分别作为输入和输出。
输入
- Simulink驱动的HDL信号。金宝app金宝appSimulink以指定的采样率在指定的HDL模拟器信号上沉积值。
请注意
在定义块输入端口时,请确保只设置了一个源来驱动该信号的输入。例如,避免定义具有多个实例的输入端口。如果多个源驱动输入到单个信号,您的仿真模型将产生意想不到的结果。
输出
- Simulink读取的HDL信号。金宝app对于输出信号,必须指定一个明确的采样时间。您还可以指定数据类型,但宽度必须与HDL中信号的宽度匹配。有关指定数据类型的详细信息,请参见数据类型而且部分长度参数。
金宝appSimulink信号没有三态语义,因为没有“Z”
价值。要与双向信号接口,连接到输入端并使能输出驱动和输入驱动的输出信号。这种方法将实际的三态缓冲区留在HDL中,其中解析函数可以处理与其他三态缓冲区的接口。
依赖关系
方法生成的块Cosimulation向导,此值不应更改。对于Vivado HDL Cosimulation块,参数是只读的。
高密度脂蛋白类型
- HDL端口信号的类型
逻辑
(默认)|向量
此属性是只读的。
控件所配置的HDL端口信号类型Cosimulation向导.
依赖关系
此参数仅在生成用于Vivado cosimulation的块时可见。
高密度脂蛋白降低
- HDL端口信号尺寸
标量|向量
此属性是只读的。
控件所配置的HDL端口信号的尺寸Cosimulation向导.
依赖关系
此参数仅在生成用于Vivado cosimulation的块时可见。
样品时间
—输出端口读取采样的间隔时间
1(默认)|整数
连续采样到输出端口的时间间隔。
金宝appSimulink以此处指定的采样速率从相关HDL模拟器信号中读取一个值。
一般来说,Simulin金宝appk处理端口采样周期如下:
如果将一个输入端口连接到一个具有明确采样周期的信号(基于正向传播),Simulink将该速率应用于端口。金宝app
如果您将一个输入端口连接到一个没有明确采样周期的信号,Simulink将分配一个采样周期,该采样周期等于模型中所有确定的输入端口采样周期的最小公倍数(LCM)。金宝app
必须为每个输出端口指定显式采样时间。
对应于Simulink采样时间命中的HDL时间取决于金宝app时间尺度设置。看到模拟时间尺度.
依赖关系
若要启用该参数,请设置I / O模式来输出
.
数据类型
- 金宝appSimulink输出信号的数据类型
继承
(默认)|定点
|双
|单
|一半
选择继承
自动确定数据类型。该块检查继承的单词长度是否与从HDL模拟器查询的单词长度匹配。如果它们不匹配,Simulink将生成一条错金宝app误消息。例如,如果你连接一个信号规范块的输出,继承
属性指定的数据类型信号规范块到输出端口。
如果S金宝appimulink不能确定连接到输出端口的信号的数据类型,它将向HDL模拟器查询端口的数据类型。例如,如果HDL模拟器返回VHDL®数据类型STD_LOGIC_VECTOR
对于一个大小的信号N
位,数据类型ufixN
在输出端口上强制。隐式分数长度为0。
您还可以使用optional指定显式数据类型部分长度.类的输出端口上强制指定定点数据类型高密度脂蛋白Cosimulation块。例如,对于8位输出端口,设置标志来签署
和设置部分长度来5
强制数据类型为sfix8_En5
.你不能强迫宽度。宽度总是继承自HDL模拟器。
的数据类型而且部分长度属性仅适用于以下类型的HDL信号:
任何逻辑类型的VHDL信号,例如
STD_LOGIC
或STD_LOGIC_VECTOR
Verilog®的信号
线
或注册
类型
依赖关系
若要启用该参数,请设置I / O模式来输出
.
在与Vivado模拟器进行联合仿真时,此参数显示为金宝appSimulink数据类型.
标志
-输出数据类型的符号组件
无符号
(默认)|签署
显式输出端口数据类型的符号指定。
依赖关系
若要启用该参数,请设置I / O模式来输出
,并设置数据类型来定点
.
部分长度
—输出数据类型的小数位数
整数
定点输出信号的小数部分的大小(以位为单位)。例如,对于8位输出端口,设置标志来签署
和设置部分长度来5
强制数据类型为sfix8_En5
.你不能强迫宽度;宽度总是继承自HDL模拟器。
依赖关系
若要启用该参数,请设置I / O模式来输出
,数据类型财产定点
.
的数据类型而且部分长度属性仅适用于以下类型的HDL信号:
任何逻辑类型的VHDL信号,例如
STD_LOGIC
或STD_LOGIC_VECTOR
的Verilog信号
线
或注册
类型
时钟
请注意
在与Vivado模拟器进行联合仿真时,此选项卡被命名时钟,重置,启用.
创建可选的上升边缘和下降边缘时钟,将刺激应用到您的联合仿真模型。滚动列表显示HDL时钟,它使用沉积方法将值驱动到您正在建模的HDL信号。时钟信号必须为单比特信号。不支持矢量信号。金宝app有关添加和编辑时钟信号的说明,请参见使用HDL Cosimulation块的时钟窗格创建可选的时钟.
在开始联合仿真之前运行HDL模拟器
-开始联合仿真前HDL仿真所需的时间
0
(默认)|非负整数
指定在开始共同模拟之前运行HDL模拟所需的时间。指定一个非负整数,并从菜单中选择时间单位。
fs
——飞秒ps
——皮秒ns
——纳秒我们
——微秒女士
——毫秒年代
- - - - - -秒
依赖关系
为了启用这个参数,为Vivado cosimulation生成这个块。
HDL全名
-信号路径名称
字符串
使用HDL模拟器路径名语法将每个时钟指定为信号路径名。例如:/ / clk曼彻斯特
或manchester.clk
.
有关Simulink中路径规范的信息和要求,请参见金宝app指定Simulink试验台协同仿真的HDL信号/端口和模块路径金宝app.
您可以直接从HDL模拟器复制信号路径名称波窗口并将它们粘贴到HDL全名字段。使用路径。的名字
查看与不查看Db:路径。的名字
视图。将信号路径名称粘贴到HDL全名,点击应用完成粘贴操作并更新信号列表。
依赖关系
方法生成的块Cosimulation向导,此值不应更改。对于Vivado HDL Cosimulation块,参数是只读的。
主动时钟边缘
- HDL时钟边缘用于采样信号
不断上升的
(默认)|下降
选择以下选项之一。
不断上升的
—指定上升边缘时钟。下降
—指定跌落边缘时钟。
周期和持续时间为Simulink时间。金宝app要将Simulink金宝app时间与HDL时间关联起来,请转到时间尺度选择并单击现在就确定时间表.
依赖关系
此参数仅对ModelSim或Xcelium协同仿真可见。
波形类型
-生成波形驱动时钟,重置,或使HDL设计
不断上升的
(默认)|下降
|步骤1到0
|步骤0到1
对于Vivado协同仿真,选择以下选项之一。
主动上升沿时钟
-创建一个占空比为50%的周期信号,其中上升沿从Simulink驱动输入时偏移。金宝app主动落沿时钟
-创建一个占空比为50%的周期信号,其中下降沿从Simulink驱动输入时偏移。金宝app步骤0到1
-创建一个步进函数,在指定的持续时间内驱动0,然后转换为1。步骤1到0
-创建一个步进函数,在指定的时间内驱动1,然后转换为0。
周期和持续时间为Simulink时间。金宝app要将Simulink金宝app时间与HDL时间关联起来,请转到时间尺度选择并单击显示时间和建议时间表.
依赖关系
此参数仅在Vivado cosimulation中可见。
期/持续时间
-时钟周期
2(默认)|整数
若要指定显式的时钟周期,请输入等于或大于两个分辨率单位(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,这个按钮显示为显示时间和建议时间表.或者,您也可以手动选择时间刻度。有关自动时间刻度计算的指导,请参见自动指定定时关系.
Simulink中的1秒金宝app对应于HDL模拟器中的{}
- Simulink与HDL模拟器的时序关系金宝app
整数和时间单位
该参数由a时间价值和TimeUnit价值。
为协仿真配置相对定时模式:
验证
蜱虫
的默认设置TimeUnit选中。如果不是,则从右侧列表中选择。中输入比例因子时间左边的文本框。默认比例因子为1。
为协仿真配置绝对计时模式:
集TimeUnit绝对时间单位:
fs
(飞秒),ps
(皮秒),ns
(纳秒),我们
(微秒),女士
(毫秒),或年代
(秒)。中输入比例因子时间左边的文本框。默认比例因子为1。
连接
在与Vivado模拟器进行联合仿真时,此选项卡不可见。
连接模式
- Simulink与HDL模拟器的连接金宝app
完整的模拟
(默认)|仅确认接口
|没有关系
Simulink和HDL模拟器之间的连接类型。金宝app
完整的模拟
:确认接口并运行HDL仿真。仅确认接口
:连接到HDL模拟器并检查信号名称、尺寸和数据类型,但不运行HDL模拟。在Simuli金宝appnk仿真过程中,没有与HDL模拟器的接触。没有关系
:不与HDL模拟器通信。HDL模拟器不需要启动。
这台计算机上正在运行HDL模拟器
- HDL模拟器和Simulink的主机相同金宝app
真正的
(默认)|假
当两个应用程序在同一台计算机上运行时,可以选择共享内存或TCP套接字作为应用程序之间的通信通道。如果不选择此选项,则只支持TCP/IP套接字模式连接方法列表不可用。
连接方法
- HDL模拟器与Simulink的连接金宝app
套接字
(默认)|共享内存
套接字
: 金宝appSimulink和HDL模拟器通过指定的TCP/IP套接字进行通信。TCP/IP套接字模式更通用。您可以将它用于单系统和网络配置。这个选项提供了最大的可伸缩性。有关TCP/IP套接字通信的更多信息,请参见TCP/IP Socket端口.共享内存
: 金宝appSimulink和HDL模拟器通过共享内存进行通信。共享内存通信提供了最佳性能,并且是默认的通信模式。
依赖关系
此参数表示选择的时间这台计算机上正在运行HDL模拟器.
主机名
- HDL模拟器主机
字符串
如果在不同的计算机上运行Simulink和HDL模拟器,则应用此参数金宝app。
端口号或服务
- Socket端口号
字符串
如果没有使用共享内存,则为计算机系统指示有效的TCP套接字端口号或服务。有关选择TCP套接字端口的信息,请参见TCP/IP Socket端口.
在图标上显示连接信息
-在块图标上添加连接参数
真正的
(默认)|假
选择此选项时,高密度脂蛋白Cosimulation块图标显示当前通信参数设置。如果选择共享内存,则显示此图标SharedMem
.如果选择TCP套接字通信,则显示图标套接字
并以格式显示主机名和端口号主机名:端口
.
这些信息可以帮助您区分多个高密度脂蛋白Cosimulation块,其中每个块都与HDL模拟器的不同实例通信。
模拟
在与Vivado模拟器进行联合仿真时,此选项卡不可见。
在开始联合仿真之前运行HDL模拟器
-将Simulink与HDL模拟器对齐的偏金宝app移量
整数和时间单位
指定在Simulink中开始模拟之前运行HDL模拟器的时间量。金宝app指定这个时间可以正确地对齐Simulink块的信号和HDL信号,这样就可以直接比较和验证它们,而不会产生额外的金宝app延迟。
该设置由PreRunTime价值和PreRunTimeUnit价值。
PreRunTime:任何有效的时间值。默认值为0。
PreRunTimeUnit:的时间单位PreRunTime.
蜱虫
年代
女士
我们
ns
ps
fs
预模拟Tcl命令
-在协同仿真之前在HDL模拟器中运行的命令
字符串
在模拟Simulink模型的HDL组件之前,协同仿真工具在HDL模拟器中执行这些命令。金宝app如果在一行中输入多个命令,请在每个命令后面加上分号(;),分号是标准的Tcl连接操作符。
例如,使用该参数生成一行echo命令来确认模拟正在运行,或者使用复杂的脚本执行大量的模拟初始化和启动序列。不能使用这些命令更改模拟状态。
您可以指定任何有效的Tcl命令。指定的Tcl命令不能包括加载HDL模拟器项目或修改模拟器状态的命令。例如,字符向量不能包含命令开始
,停止
,或重新启动
(对于ModelSim)或运行
,停止
,或重置
(Xcelium)。
后模拟Tcl命令
协同仿真后在HDL模拟器中运行的命令
字符串
在模拟Simulink模型的HDL组件之后,协同仿真工具在HDL模拟器中执行这些命令。金宝app
您可以指定任何有效的Tcl命令。指定的Tcl命令不能包括加载HDL模拟器项目或修改模拟器状态的命令。例如,字符串不能包含命令开始
,停止
,或重新启动
(对于ModelSim)或运行
,停止
,或重置
(Xcelium)。
请注意
在每次ModelSim模拟之后,模拟器都需要时间来更新覆盖结果。为了防止这个过程和下一个共同模拟会话之间的潜在冲突,在每个连续的模拟之间添加一个短暂的暂停。
扩展功能
HDL代码生成
使用HDL Coder™为FPGA和ASIC设计生成Verilog和VHDL代码。
HDL Coder提供了影响HDL实现和合成逻辑的额外配置选项。您可以生成与Mentor Graphics一起使用的共同模拟块的HDL代码®ModelSim,节奏®Xcelium或Xilinx®Vivado模拟器。
每一个高密度脂蛋白Cosimulationblock通过向HDL模型应用输入信号和从HDL模型读取输出信号来共同模拟硬件组件,HDL模型在HDL模拟器下执行。看到生成一个共同仿真模型(高密度脂蛋白编码器).
有关设置HDL联合仿真时的时间、延迟、数据类型、基于帧的处理和其他问题的信息,请参见定义HDL共模拟块接口.
你可以使用高密度脂蛋白Cosimulation块与HDL Coder生成接口手动编写或遗留的HDL代码。当一个高密度脂蛋白Cosimulation模块包含在模型中,编码器根据所选择的目标语言生成VHDL或Verilog接口。
当目标语言为VHDL时,生成的接口包括:
一个实体定义。实体定义的端口(输入、输出和时钟)在名称和数据类型上对应于上配置的端口高密度脂蛋白Cosimulation块。时钟启用和复位端口也被声明。
RTL体系结构包括组件声明,组件配置声明信号对应于连接到的信号高密度脂蛋白Cosimulation端口和组件实例化。
模型所需的端口分配语句。
当目标语言为Verilog时,生成的接口包括:
定义端口(输入、输出和时钟)的模块,在名称和数据类型上对应于端口配置高密度脂蛋白Cosimulation块。该模块还定义了时钟启用和重置端口,以及
线
的信号所对应的声明高密度脂蛋白Cosimulation港口。一个模块实例。
模型所需的端口分配语句。
在开始代码生成之前,检查模型是否满足代码生成的要求。要检查代码生成的需求,请选择调试选项卡,然后单击更新模型.
这个块有一个默认的HDL架构。
实现参数说明请参见自定义黑匣子或HDL协同仿真接口(高密度脂蛋白编码器).
版本历史
在R2008a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。