生成Cosimulation模型
需求
要使用该功能,您的安装必须包括高密度脂蛋白验证人™许可证。
确保DUT子系统没有无关的输出端口。看到终止无关联的块输出和使用注释块。
Cosimulation模型是什么?
cosimulation模型是一个自动生成的仿真软件金宝app®模型配置为两种仿真软件仿真和设计cosimulati金宝appon HDL模拟器。高密度脂蛋白编码器™支金宝app持自动生成cosimulation模型作为试验台生成过程的一部分。
cosimulation模型包括:
行为模型的设计,在仿真软件子系统实现。金宝app
一个相应的高密度脂蛋白Cosimulation块,配置为cosimulate使用HDL验证器的设计。高密度脂蛋白编码器配置高密度脂蛋白Cosimulation块与导师图形使用®ModelSim®,节奏敏锐的®,或者Xilinx®Vivado®模拟器。
测试输入数据,计算从您指定的试验台的刺激。
块范围,让你观察和比较DUT高密度脂蛋白cosimulation输出,以及这些信号之间的任何错误。
Goto和块捕获DUT的刺激和响应信号,使用这些信号来驱动cosimulation。
比较/断言机制报告之间的差异原来DUT输出和cosimulation输出。
除了生成模型,高密度脂蛋白编码器生成一个TCL脚本启动并配置cosimulation工具。注释脚本文件文档中的时钟、复位和其他定时信号信息定义的编码器cosimulation工具。
生成一个Cosimulation模型使用模型配置参数
这个例子演示了生成cosimulation模型的过程。模型的例子中,hdl_cosim_demo1
,实现了一个简单的乘法和积累(MAC)算法。打开模型通过输入MATLAB的名字®命令行:
hdl_cosim_demo1
下图显示了顶级模型。
DUT的MAC子系统。
Cosimulation模型试验台的一代发生在一代。作为一项最佳实践,生成HDL代码生成测试前的长椅上,如下:
打开配置参数对话框。右键单击空白的Simulink仿真模型和选择金宝app模型配置参数。
在HDL代码生成面板的配置参数对话框中,设置产生高密度脂蛋白来
hdl_cosim_demo1 / MAC
。点击应用。
点击生成。HDL编码显示进度信息,如以下清单所示:
# # #应用高密度脂蛋白HDL代码生成控制语句# # #开始检查。# # # HDL检查完成0错误,警告和0的消息。代码生成# # # # # #开始硬件描述语言(VHDL)致力于hdl_cosim_demo1 / MAC hdlsrc \ MAC。vhd # # # HDL代码生成完成。
接下来,配置试验台选项包括代cosimulation模型:
选择HDL代码生成>试验台面板的配置参数对话框。
选择Cosimulation模型复选框。然后选择你仿真工具的下拉菜单。
配置要求试验台选项。HDL编码记录选项设置在生成的脚本文件Cosimulation脚本文件)。
点击应用。
接下来,生成和cosimulation模型试验台代码:
底部的试验台窗格中,单击生成测试工作台。HDL编码显示进度信息见下面的清单:
# # # # # #开始TestBench代产生新的cosimulation模型:gm_hdl_cosim_demo1_mq0。mdl # # #产生新的cosimulation tcl脚本:hdlsrc / gm_hdl_cosim_demo1_mq0_tcl。米# # # Cosimulation模型生成完成。# # #生成试验台:hdlsrc \ MAC_tb。vhd # # #请稍等…# # # HDL TestBench代完成。
当试验台一代完成,高密度脂蛋白编码器打开生成的cosimulated模型。下面的图显示生成的模型。
保存生成的模型。生成的模型只存在于内存中,除非你保存它。
显示的代码生成消息,高密度脂蛋白编码器生成下列文件除了通常的HDL试验台文件:
cosimulation模型(
gm_hdl_cosim_demo1_mq
)一个文件,它包含一个TCL cosimulation脚本和信息设置的cosimulation模型(
gm_hdl_cosim_demo1_mq_tcl.m
)
生成的文件名称源自模型名称、描述命名约定Cosimulation生成模型和脚本。
在下一节中,生成的结构模型,描述了模型的特点。在运行cosimulation之前,熟悉这些特性。
生成的结构模型
您可以使用控制设置和启动cosimulation位于生成的模型。本节探讨了MAC子系统模型产生的例子。
模拟路径
模型由两个平行的信号路径。的模拟路径位于窗口的上半部分模型,原始DUT几乎是相同的。模拟路径的目的是执行一个正常仿真软件模拟和cosimulation提供一个参考信号进行比较的结果。金宝app下面的图显示了模拟路径。
这两个子系统的标签ToCosimSrc
和ToCosimSink
不改变模拟路径的性能。他们的目的是捕获刺激和DUT的响应信号和路线的高密度脂蛋白cosimulation块(见信号模拟和Cosimulation之间的路由路径)。
Cosimulation路径
的cosimulation路径位于窗口的下半部分模型,包含生成的高密度脂蛋白Cosimulation块。下面的图显示了cosimulation路径。
的FromCosimSrc
子系统接收相同的输入信号,驱动DUT。在gm_hdl_cosim_demo1_mq0
子系统模型,简单地通过输入的高密度脂蛋白Cosimulation块。其他数据类型需要进一步的信号处理在这个阶段(见信号模拟和Cosimulation之间的路由路径)。
的比较
子系统的cosimulation路径比较cosimulation输出到模拟产生的参考输出路径。如果检测到一个比较差异,断言块比较
子系统显示一条警告消息。如果需要,您可以禁用断言和控制的其他操作比较
子系统。看到控制断言和显示范围获取详细信息。
高密度脂蛋白编码器填充高密度脂蛋白Cosimulation块的编译DUT的I / O接口。下面的图显示了港口面板的Mac_mq
高密度脂蛋白Cosimulation块。
HDL编码设置完整的高密度脂蛋白的名字,样品时间,数据类型和其他领域所需的模型。高密度脂蛋白编码器还配置高密度脂蛋白Cosimulation块参数下时间尺度和Tcl窗格。
提示
高密度脂蛋白编码器配置生成的高密度脂蛋白Cosimulation块的共享内存
连接方法。
开始模拟控制
ModelSim或深刻的®用户——当你双击开始模拟器控制,启动所选cosimulation工具,通过在启动命令的工具。启动模拟器图标显示的启动命令,如下图所示。
执行的命令,当你双击启动模拟器图标启动并建立cosimulation工具,但他们不实际cosimulation开始。启动一个Cosimulation描述了如何运行一个cosimulation使用生成的模型。
Vivado模拟器用户——当你双击开始模拟器控制,再生一个共享库(DLL文件)。启动模拟器图标显示这些信息,如下图所示。
信号模拟和Cosimulation之间的路由路径
生成的模型路线之间的信号模拟和cosimulation路径使用Goto和块。例如,转到块中ToCosimSrc
子系统每个DUT输入信号路由到相应的块FromCosimSrc
子系统。下图显示了Goto和块在每个子系统。
之前的数据显示简单的标量输入。信号的复杂和向量数据类型需要进一步处理。看到复杂的Cosimulation生成模型和矢量信号为进一步的信息。
控制断言和显示范围
的比较
子系统允许您控制信号的显示范围,并从断言警告消息。下面的图显示了比较
子系统的gm_hdl_cosim_demo1_mq0
模型。
对于每个DUT的输出,高密度脂蛋白编码器生成一个断言检查子系统(Assert_OutN
)。子系统计算差异(犯错
)之间的原始DUT输出(dut裁判
)和相应的cosimulation输出(cosim
)。子系统的路线比较结果断言。如果比较结果不是零,断言块报告差异。
下面的图显示了Assert_Out1
子系统的gm_hdl_cosim_demo1_mq0
模型。
这个子系统还路线dut裁判
,cosim
,犯错
信号范围的显示模型的顶层。
默认情况下,生成的cosimulation模型使所有断言和显示所有范围。使用上的按键比较
子系统或隐藏范围禁用断言。
提示
断言信息警告,不停止仿真。
启动一个Cosimulation
运行cosimulation使用生成的模型:
双击
比较
子系统配置范围和断言的设置。如果你想禁用范围显示或断言cosimulation警告之前,使用上的按键
比较
子系统(如下图所示)。双击启动模拟器控制。
启动模拟器控制启动了你的高密度脂蛋白模拟器(在这种情况下,高密度脂蛋白校验使用导师图形ModelSim)。
高密度脂蛋白模拟器执行启动脚本。在这种情况下,启动脚本由位于TCL命令
gm_hdl_cosim_demo1_mq0_tcl.m
。高密度脂蛋白模拟器完成执行启动脚本时,它显示一个消息如下。#准备cosimulation……
在模型编辑器中金宝app生成的模型,开始模拟。
cosimulation运行,高密度脂蛋白模拟器显示信息如下。
#运行仿真软件Cos金宝appimulation块。#芯片名称:- > hdl_cosim_demo1 / MAC #目标语言:- - >硬件描述语言(vhdl) #目标目录:- - > hdlsrc #星期五2009年6月05东部时间下午4:26:34 #仿真停止请求外国接口。#做
cosimulation结束,如果你有启用显示范围,比较范围显示以下信号:
cosim
:信号输出的结果高密度脂蛋白Cosimulation块。dut裁判
:DUT的参考输出信号。犯错
:这两个之间的区别(错误)输出。
下面的图显示了这些信号。
Cosimulation脚本文件
生成的脚本文件有两个部分:
评论部分相关的文档模型设置cosimulation。
一个函数,商店TCL的几行代码到一个变量,
tclCmds
。cosimulation工具启动cosimulation时执行这些命令。
头评论部分
下面的清单显示了生成的脚本文件的评论部分hdl_cosim_demo1
模型:
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %自动生成cosimulation tclstart的脚本% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %源模型:hdl_cosim_demo1。mdl %生成的模型:gm_hdl_cosim_demo1。mdl % Cosimulation模型:gm_hdl_cosim_demo1_mq。mdl % % DUT来源:gm_hdl_cosim_demo1_mq / MAC % Cosimulation DUT: gm_hdl_cosim_demo1_mq / MAC_mq % %文件位置:hdlsrc / gm_hdl_cosim_demo1_mq_tcl。m %创建:2009-06-16 10:51:01 % %由MATLAB 7.9和HDL编码器1.6% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ClockName: clk % ResetName:重置% ClockEnableName: clk_enable % % ClockLowTime: 5 ns % ClockHighTime: 5 ns % ClockPeriod: 10 ns % % ResetLength: 20 ns % ClockEnableDelay: 10 ns % HoldTime: 2 ns % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ModelBaseSampleTime: 1% OverClockFactor: 1% % % % % % % %金宝app % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %的映射DutBaseSampleTime ClockPeriod % % N = (ClockPeriod / DutBaseSampleTime) * OverClockFactor % 1秒10 ns模型对应的HDL模拟器(N = 10) % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % ResetHighAt: (ClockLowTime + ResetLength + HoldTime) % ResetRiseEdge: 27 ns % ResetType:异步% ResetAssertedLevel: 1% % ClockEnableHighAt: (ClockLowTime + ResetLength + ClockEnableDelay + HoldTime) % ClockEnableRiseEdge: 37 ns % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
在评论部分包括以下部分:
头的评论:这部分文档模型和生成的源文件的名称和源和DUT生成。
试验台的设置:这部分文档
makehdltb
影响cosimulation模型生成的属性值。生成的TCL脚本使用这些值来初始化cosimulation工具。样品时间信息:接下来的两个小节将文档的基本样本时间和过采样因子模型。高密度脂蛋白编码器使用
ModelBaseSampleTime
和OverClockFactor
模型的时钟周期映射到高密度脂蛋白cosimulation时钟周期。时钟,时钟使,重置波形:这部分文档的责任周期的计算
clk
,clk_enable
,重置
信号。
TCL命令部分
下面的清单显示了TCL命令生成一个脚本文件的部分hdl_cosim_demo1
模型:
函数tclCmds = gm_hdl_cosim_demo1_mq_tcl tclCmds = {MAC_compile.do’,……%编译生成的代码' vsimulink work.MAC’,…金宝app…%发起cosimulation‘添加波/ MAC / clk’,……%为芯片添加波命令输入信号加波/ MAC /重置,…“添加/ MAC / clk_enable浪潮”,……“添加波/ MAC /三机一体”,……“添加波/ MAC / In2”,……“添加/ MAC / ce_out浪潮”,……%为芯片输出信号添加波命令添加波/ MAC /着干活,…UserTimeUnit ns,这……%设置仿真时间单位“将”“”,…把“准备cosimulation…”,… }; end
复杂的Cosimulation生成模型和矢量信号
输入信号的复杂或向量数据类型需要额外的元素插入cosimulation路径。本节描述这些元素。
复杂的信号
cosimulation模型自动生成了复杂输入实部和虚部。下面的图显示了一个FromCosimSrc
子系统接收两个复杂的输入信号。子系统把输入分为实部和虚部之前通过子系统输出。
模型保持真实和虚构的成分的分离整个cosimulation路径。的比较
子系统执行单独的比较和单独的真实和虚构的信号组件的显示范围。
矢量信号
向量输入生成的cosimulation模型趋于平缓。下面的图显示了一个FromCosimSrc
子系统接收两个向量维数2的输入信号。子系统减小输入标量之前通过子系统输出。
从命令行生成一个Cosimulation模型
从命令行生成一个cosimulation模型,通过GenerateCosimModel
财产makehdltb
函数。GenerateCosimModel
采用下列属性值之一:
“ModelSim”
:生成一个cosimulation模型配置为使用导师图形ModelSim HDL校验。“尖锐”
:生成一个cosimulation模型配置为高密度脂蛋白校验与节奏的使用。“Vivado模拟器”
:生成一个cosimulation模型配置为使用Xilinx Vivado HDL校验。
下面的命令,makehdltb
生成一个cosimulation模型配置为使用导师图形ModelSim HDL校验。
makehdltb (“hdl_cosim_demo1 / MAC”、“GenerateCosimModel”,“ModelSim”);
命名约定Cosimulation生成模型和脚本
cosimulation生成模型的命名约定
前缀
_modelname
_
toolid
_
后缀,地点:
前缀
是字符串通用汽车
。modelname
生成模型的名称。toolid
是一个标识符表明选择的高密度脂蛋白模拟器Cosimulation模型为:选择。有效的toolid
字符串是“mq”
,“在”
,或“与”
。后缀是一个整数,为每个生成的模型提供了一个唯一的名称。后缀的增量与每个连续试验台一代对于一个给定的模型。例如,如果原始模型的名字
测试
,然后生成的序列cosimulation模型名称gm_test_toolid_0
,gm_test_toolid_1
,等等。
cosimulation脚本生成的命名约定是一样的模型,除了文件扩展名。m
。
限制Cosimulation模型生成
当您配置cosimulation模型生成的模型,观察以下限制:
显式地指定源块的样品时间到DUT的模拟路径。使用默认的样品时间(
1
源块中)可能会导致样品时间传播问题在cosimulation路径生成的模型。高密度脂蛋白编码器软件不支持连续样本时间cosimulation金宝app模型生成。不要使用样本
0
或正
在源块模拟路径。如果你设置时钟输入来
多个
,高密度脂蛋白编码器不支持代cosimul金宝appation模型。组合输出路径(由于没有登记在生成的代码)在cosimulation有一个额外的延迟周期。为了避免差异对比模拟和cosimulation输出,允许直接引线选择在港口面板的高密度脂蛋白Cosimulation块将自动被选中。
或者,您可以通过指定输出管道(见避免延迟OutputPipeline)。这将完全注册在代码生成输出。
不支持的数据类型的两倍金宝app高密度脂蛋白Cosimulation块。避免使用双数据类型的模拟路径生成HDL代码和cosimulation模型。