主要内容

具有单地址选项的自动生成内存映射

此示例突出显示了在生成SystemC时使用自动生成的内存映射和单地址选项™/来自Simulink®模型的TLM组件,使用Simulink编码器或嵌入式编码器的TLM生成器目标™.万博1manbetx

在Si万博1manbetxmulink中,每个组件的输入或输出点对点地绑定到另一个组件。在SystemC/TLM中,每个组件通过一个TLM套接字进行通信。这个套接字处理TLM事务中格式化的所有传入和传出通信。因为每个系统处理通信的方式不同,所以当SystemC/TLM组件从Simulink模型生成时,我们必须为它定义一个通信接口。万博1manbetx根据SystemC/TLM组件的预期用途,该通信接口可能需要为组件中的每个输入/输出构建内存映射(或地址)。这个记忆图可能是简单的,也可能是详细的。

带有单个地址选项的自动生成内存映射生成一个TLM组件,该组件只有一个读寄存器和一个写寄存器,每个寄存器都有一个地址。Simu万博1manbetxlink模型的输入绑定到写寄存器,输出绑定到读寄存器。使用此选项创建时,生成的TLM组件可以作为测试台上的独立组件在虚拟平台(VP)中使用,也可以附加到通信通道。

对于本例,我们使用FIR滤波器的Simulink模型万博1manbetx作为SystemC/TLM生成的基础。

运行此示例的要求:

  • SystemC 2.3.1(包括TLM库)

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

1.打开预配置的模型

打开使用单地址自动生成内存映射的FIR滤波器模型,单击开放模型按钮。

下面的模型在Simulink中打开。万博1manbetx

2.将“选项”设置为“单地址自动生成内存映射”

配置参数对话框中,选择TLM发电机在左侧窗格中查看。在TLM映射选项卡,在套接字映射选项选择一个组合的TLM套接字用于输入数据、输出数据和控制.下组合式TLM插座中,选择自动生成内存映射单输入和输出地址偏移量,如下图所示。

3.设置其他选项

将剩下的TLM代选项根据您的首选项(或保持默认值),然后单击好啊要应用这些设置并退出配置参数对话框。

4.构建模型

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

> > slbuild (' tlmgdemo_asmem / DualFilter ');

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

###正在启动模型的Sim万博1manbetxulink编码器生成过程:DualFilter###成功完成模型的Simulink编码器生成过程:DualFilter生成摘要已生成的顶级模型目标:模型操作重建原因===============================================================================================================================================================================================================================================================================================================================================================================文件不存在。已构建的1个模型中的1个(0个模型已更新)构建持续时间:0h 0m 15.743s

5.打开生成的文件

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

6.观察生成的代码

找到以下代码行。这些线表示FIR Filter作为带有单地址内存映射的TLM组件生成时的输入和输出定义。

为了向生成的TLM组件提供一组输入,TLM启动器应该发送一个包含类型为数据的有效负载的写入TLM事务DualFilter_combined_IN_BANK_T在的地址双过滤器组合在银行地址

要从生成的TLM组件获取一组输出,TLM启动器应发送一个读取TLM事务,其中有效负载包含类型为的数据DualFilter_combined_OUT_BANK_T在的地址双过滤器\u组合\u输出\u银行\u地址