主要内容

导入IP-XACT,无内存映射

这个例子展示了当你从一个带tlmgenerator目标的Simulink®模型生成SystemC™/TLM组件时,如何使用一个导入的IP-XACT规范而不带内存映射。万博1manbetx您可以在Simulink Coder或Embedded Coder™中使用tlmgenerat万博1manbetxor目标。

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

导入IP-XACT选项根据IP-XACT规范文件生成TLM组件。在这个特殊的例子中,IP-XACT文件为Simulink模型输入/输出指定了一个没有内存映射的tlm套接字,为可调参数指定了一个没有内存映射的套接字。万博1manbetxSimu万博1manbetxlink模型的输入被绑定到唯一的写寄存器,输出被绑定到第一个tlm套接字中的唯一读寄存器。可调参数绑定到第二个tlm套接字中的唯一读/写寄存器。使用此选项创建时,生成的TLM组件可以在虚拟平台(VP)中作为测试台中独立的组件使用,也可以作为直接绑定的协同处理单元使用,或者可以使用适配器连接到通信通道。

对于这个例子,我们使用一个FIR滤波器的Simulin万博1manbetxk模型作为SystemC/TLM生成的基础。

运行这个例子的要求:

  • SystemC 2.3.1(包括TLM库)

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

1.开放式预配置模型

打开导入IPXact的FIR Filter模型(不含内存映射),按开放模式按钮。

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

2.打开IP-XACT文件

打开IP-XACT文件本例在MATLAB编辑器中使用。或者,在MATLAB命令窗口中执行以下命令:

> >开放(“tlmgdemo_ipxactnomem.xml”);

IP-XACT文件在MATLAB编辑器中打开。

3.检查IP-XACT文件

使用MATLAB编辑器,找到以下代码行(MWMapInput, MWMapOutput)。这些行表示Inout TLM套接字上的FIR Filter输入和输出映射(由IPXact中的总线接口表示)。

类似地,下面的代码行(MWMapParam)表示Config TLM套接字上的FIR Filter参数映射。

4.“选项”设置为“通过导入IP-XACT文件定义”

一个。配置参数对话框中,选择TLM发电机在左侧窗格中查看。

b。TLM映射选项卡,在套接字映射中,选择由导入的IP-XACT文件定义

c。导入IP-XACT文件,浏览到IP-XACT文件的位置,如下图所示。

5.设置其他选项

根据您的首选项设置其余的TLM生成选项(或保留默认值),然后单击好吧要应用这些设置并退出配置参数对话框。

6.构建模型

在模型窗口中,右键单击DualFilter块并选择C/ c++代码>为这个子系统生成代码.此选项将启动TLM组件生成.您也可以在MATLAB命令窗口中执行以下命令:

> > slbuild (' tlmgdemo_ipxactnomem / DualFilter ');

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

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

7.打开生成的文件

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

DualFilter_VP / DualFilter_ipxactnomem_tlm / include / DualFilter_ipxactnomem_tlm_def.h

8.检查生成的代码

使用MATLAB编辑器,找到以下代码行。这些行表示在作为没有内存映射的TLM组件生成时FIR Filter的输入和输出定义。

为了向生成的TLM组件提供一组输入,TLM启动器应该发送一个写TLM事务,该事务在InOut套接字处没有地址,并且带有一个包含类型的数据的有效负载InOut_IN_BANK_T

为了从生成的TLM组件获得一组输出,TLM启动器应该发送一个读TLM事务,该事务在InOut套接字处没有地址,并且带有一个包含类型的数据的有效负载InOut_OUT_BANK_T

要修改生成的TLM组件可调参数,TLM启动器应该发送一个写TLM事务,在Config套接字上没有地址,并且带有一个包含类型的数据的有效负载DualFilter_Config_PARAM_BANK_T