主要内容

无限制的SystemC / TLM模拟

此示例使用Simulink®型号从Simulink®Coder™或嵌入式译码器®生成Systemc™/ TLM组件时,突出显示“无疑”时序模式的使用。金宝app

在Si金宝appmulink®模型中,通过信号采样率和集中定时求解器来控制源和沉积之间的数据的移动。在SystemC / TLM模型中,数据宿源之间的交互由Systemc仿真内核和时间通过SC_THREADS协同地屈服于另一个螺纹的时间来控制等待呼叫。

对于未定义的SystemC / TLM模拟,模型忽略了用于通信接口和处理的注释延迟。在这种模型中,目标只是具有模拟,通过确保启动器和目标可以成功同步数据的移动来产生正确的结果。没有尝试评估部署系统的性能。在一个无限的模拟中,不应该经过模拟时间,因为同步是基于完全事件的。

对于此示例,我们使用FIR滤波器的Simulink模金宝app型作为SystemC / TLM生成的基础。

下载188bet金宝搏运行此演示所需的产品:

  • Systemc 2.3.1(包括TLM库)

  • 对于代码验证,制作和兼容GNU-Compiler,GCC,在Windows®上的LaveS中的Linux®或VisualStudio®编译器中的路径中

注意:该示例包括代码生成构建过程。金宝appSimulink不允许您在MATLAB安装区域中构建程序。如有必要,请在开始任何构建之前更改为不在MATLAB安装区域的工作目录。

1.打开预配置的模型

打开TLM无疑是测试窗模型, 点击开放式按钮。

以下模型在Simulink中打开。金宝app

2.查看TLM生成器目标配置选项

在Simuli金宝appnk ToolStrip中,选择模型设置来自造型标签。在里面配置参数对话框,选择TLM发电机查看和标签tlm testbench.并查看测试台设置,如下图所示。选择详细的测试铃声消息复选框,以查看SystemC / TLM模拟中的启动器/目标交互的完整日志。由于这将是数千行,如果需要,取消选择选项以获取SystemC / TLM模拟的简化日志。

3.构建模型

在“模型”窗口中,右键单击DualFilter块并选择C / C ++代码>为此子系统生成代码在上下文菜单中启动TLM组件和测试禁止生成。或者您可以在MATLAB命令窗口中执行以下命令:

>> SLBUILD('tlmgdemo_uttb / dualfilter')

当Matlab命令窗口中显示以下消息时,生成将完成:

###启动Simulink金宝app编码器型号的构建过程================================================================= DualFilter代码生成的代码生成信息文件不存在。1个型号中的1个(0型号已达到迄今为止)构建持续时间:0H 0M 21.319S

4.打开生成的文件

通过单击生成的报告中的“Dualfilter_Uttb_tlm_tb.cpp”或Matlab编辑器中的“Dualfilter_Uttb_tlm_tb.cpp”打开生成的测试窗源代码:

5.查看生成的代码

“无时序”的规范导致测试禁止指示TLM组件通过特殊配置界面以无解点模式运行,mw_backdoorcfg_if.。由于代码指示,定时模式的选择是动态的,并且可以在仿真过程中改变。由于这种选择纯粹是模拟构造,因此它不通过“前门”TLM交易编程。

此外,由于代码指示,TestBench必须使用正确的时序模式设置本地辅助对象,以确保其启动器线程在TLM事务呼叫中使用适当的同步。

实现无疑同步类,mw_syncuntimed_tb., 在里面mw_金宝appsupport_tb.cpp.文件显示了启动器线程和TLM事务所使用的各种同步呼叫的详细信息。如前所述,呼叫使用等待sc_zero_time,并且不会允许延迟累积。

6.验证生成的代码

在里面配置参数对话框,进入tlm testbench.配置参数对话框和推送验证TLM组件按钮到在未定时的定时模式下运行生成的测试窗或在MATLAB命令窗口中执行:

>> VerifyTLMGDEMOMODEL('UTTB')

这个动作将:

  • 构建生成的代码

  • 运行Si金宝appmulink以捕获输入刺激和预期结果

  • 将Simulink数据转金宝app换为TLM向量

  • 运行独立的Systemc / TLM测试台可执行文件

  • 将TLM结果转换回Simulink数据金宝app

  • 执行数据比较

  • 为具有数据错误 - 比较的任何信号生成图形窗口