主要内容

没有内存地图选项

此示例在使用Simulink®模型中使用Simulink®模型的System™/ TLM组件使用Simulink编码器或嵌入式编码器™生成SystemC™/ TLM组件时,请突出显示“无内存映射”选项。金宝app

在Si金宝appmulink中,每个块输入或输出被绑定到另一个块的点对点。在SystemC / TLM中,每个组件通过TLM套接字通信。此套接字处理在TLM事务内格式化的所有传入和传出通信。因为每个系统处理不同的方式,所以在从Simulink模型中生成时,我们必须定义用于SystemC / TLM组件的通信接口。金宝app根据本系统/ TLM组件的预期用途,该通信接口可能需要为组件中的每个输入/输出构建内存映射(或地址)。此内存映射可能很简单或详细。

无内存映射选项生成TLM组件,只有一个读取和一个写入寄存器,没有任何地址。Simu金宝applink模型输入绑定到写寄存器,输出绑定到读寄存器。在使用此选项创建时,生成的TLM组件可以在虚拟平台(VP)中用作测试台中的独立组件,作为直接结合的协处理单元,或者它可以使用适配器附加到通信信道。

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

运行此示例的要求:

  • Systemc 2.3.1(包括TLM库)

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

1.打开预配置的模型

打开FIR滤波器模型没有内存映射, 点击开放式按钮。

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

2.将选项设置为没有内存映射

在里面配置参数对话框,选择TLM发电机查看在左侧窗格中。在里面tlm mapping.标签,下面套接字映射, 选择用于输入数据的一个组合TLM套接字,输出数据和控制。在下面组合TLM插座, 选择没有记忆映射,如下图所示。

3.设置其他选项

根据您的首选项设置剩余的TLM生成选项(或留下默认值)并单击应用这些设置并退出配置参数对话框。

4.构建模型

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

>> SLBUILD('tlmgdemo_nomem / dualfilter');

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

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

5.打开生成的文件

在Matlab编辑器中打开以下文件:

6.观察生成的代码

找到以下代码行。这些行代表了作为没有内存映射的TLM组件生成时的FIR滤波器的输入和输出定义。

要为生成的TLM组件提供一组输入,TLM Initiator应该向没有地址发送写入TLM事务,并且有一个包含类型的基准的有效载荷dualfilter_combined_in_bank_t.

要从生成的TLM组件获取一组输出时,TLM发起者应发送没有地址的读取TLM事务,并且有一个包含类型的基准的有效载荷dualfilter_combined_out_bank_t.