主要内容

松时间SystemC/TLM仿真

本例强调了在使用Simulink®Coder™或Embedded Coder®的tlmgenerator目标从Simulink®模型生成SystemC™/TLM组件时使用“Timed”计时模式。金宝app

在Si金宝appmulink®模型中,数据在源和接收器之间的移动由信号采样率和集中定时求解器控制。在SystemC/TLM模型中,数据接收器和源之间的交互由SystemC模拟内核控制,时间通过SC_THREADs协作地将控制权交给另一个线程等待调用。

对于定时的SystemC/TLM模拟,模型遵循通信接口和处理的注释延迟。对于时间松散的模拟,该模型不允许线程在时间上“提前运行”,因此不存在与其他线程的时间感不同的“本地时间”概念。相反,启动器立即同步TLM事务返回的延迟,并且通常执行非零时间等待,以便执行轮询循环和按需同步。仿真时间将在一个时间松散的模型中前进,以反映系统中的通信、处理和轮询延迟。该模型的目标,除了像不定时系统一样正确地同步数据移动之外,还包括具有快速时钟执行时间的功能正确的模拟。这种速度允许在SystemC/TLM体系结构模型上进行接近实时的软件开发。

对于这个例子,我们使用一个FIR滤波器的Simuli金宝appnk模型作为SystemC/TLM生成的基础。

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

  • SystemC 2.3.1(包括TLM库)

  • 要进行代码验证,请在Linux®的路径中制作和兼容的gnu编译器gcc,或在Windows®的路径中制作Visual Studio®编译器

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

1.打开预配置模型

打开TLM松时间试验台模型,按开放模式按钮。

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

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

在“Simul金宝appink工具条”中,选择模型设置建模选项卡。在配置参数对话框中,选择TLM发电机视图,然后TABTLM Testbench如下图所示,查看并检查测试台设置。选择verbose testbench message复选框以查看SystemC/TLM模拟中启动器/目标交互的完整日志。由于这将有数千行,如果需要,可以取消选择该选项以获得SystemC/TLM模拟的简短日志。

3.构建模型

在模型窗口中,右键单击DualFilter块并选择C/ c++代码>为这个子系统生成代码在上下文菜单中启动TLM组件和测试台的生成.或者在MATLAB命令窗口中执行以下命令:

> > slbuild(“tlmgdemo_lttb / DualFilter”)

当MATLAB命令窗口中出现以下消息时,生成完成:

成功完成Simulink 金宝appCoder模型的构建过程:DualFilter构建摘要构建的顶级模型目标:模型动作重建原因===============================================================================生成的DualFilter代码。代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建持续时间:0h 0m 9.3076s

4.打开生成的文件

通过在生成的报告或MATLAB编辑器中单击“DualFilter_lttb_tlm_tb.cpp”,在MATLAB web浏览器中打开生成的测试台源代码:

5.检查生成的代码

“带计时”规范导致测试台中指示TLM组件通过特殊配置接口以计时模式运行,mw_backdoorcfg_IF.如代码所示,定时模式的选择是动态的,可以在模拟过程中改变。因为这个选择纯粹是一个模拟构造,所以它不是通过“前门”TLM事务来编程的。

此外,正如代码所示,测试台必须设置一个具有正确计时模式的本地helper对象,以确保其启动线程在TLM事务调用中使用正确的同步。

时间松散的同步类的实现,mw_syncfunctimed_tb,在mw_金宝appsupport_tb.cpp文件显示了启动器线程和TLM事务使用的各种同步调用的详细信息。与非限时模拟不同,调用利用非零次的等待,但是,与非限时模拟一样,不允许累积“本地时间”延迟。

6.验证生成的代码

配置参数对话框,进入TLM Testbench配置参数对话框,并推验证TLM组件按钮以松散计时模式运行生成的测试台或在MATLAB命令窗口中执行:

> > verifyTlmgDemoModel(“lttb”)

这项行动将:

  • 构建生成的代码

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

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

  • 运行独立的SystemC/TLM测试工作台可执行文件

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

  • 执行数据比较

  • 为任何有数据错误比较的信号生成一个图窗口