主要内容

导入的IP-Xact没有内存映射

此示例显示如何在使用TLMGenerator目标从Simulink®模型生成SystemC™/ TLM组件时,如何使用导入的IP-Xact规范。金宝app您可以使用Simulink编码器或嵌入式编码器™的TLMGenerator目标。金宝app

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

导入IP-Xact选项根据IP-XACT规范文件生成TLM组件。在该特定示例中,IP-XACT文件指定了一个TLM插座,无需存储器映射,用于Simulink模型输入/输出和一个插座,无需记住参数的存储器映射。金宝appSimu金宝applink模型输入绑定到唯一的写入寄存器,并且输出绑定到第一TLM插座中的唯一读寄存器。可调谐参数绑定到第二个TLM套接字中的唯一读/写寄存器。当用此选项创建时,生成的TLM组件可以在虚拟平台(vp)中作为测试工作台中的独立组件,或者作为直接结合的协处理单元,或者它可以使用a适配器。

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

运行此示例的要求:

  • Systemc 2.3.1(包括TLM库)

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

1.打开预配置模型

打开FIR滤波器模型与导入ipxact(没有内存地图), 点击开放式按钮。

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

2.打开IP-Xact文件

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

>>打开('tlmgdemo_ipxactnomem.xml');

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

3.检查IP-Xact文件

使用MATLAB编辑器,查找以下代码行(MWMAPINPUT,MWMAPOUTPUT)。这些行表示INOUT TLM套接字上的FIR滤波器输入和输出映射(由IPxact中的总线接口表示)。

类似地,以下代码行(MWMAPPARAM)表示CONFIC TLM套接字上的FIR滤波器参数映射。

4.将选项设置为由导入的IP-xact文件定义

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

在里面tlm mapping.标签,下面套接字映射, 选择由导入的IP-Xact文件定义

C。在下面导入IP-Xact文件,浏览到IP-xact文件的位置,如下图所示。

5.设置其他选项

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

6.构建模型

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

>> SLBUILD('tlmgdemo_ipxactnomem / dualfilter');

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

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

7.打开生成的文件

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

dualfilter_vp / dualfilter_ipxactnomem_tlm /包含/ dualfilter_ipxactnomem_tlm_def.h

8.检查生成的代码

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

要为生成的TLM组件提供一组输入,TLM启动器应在InOut套接字上发送写TLM事务,没有地址,并且有一个包含类型的基准的有效载荷Inout_in_bank_t.

要从生成的TLM组件获取一组输出,TLM发起者应在InOut套接字处发送读取的TLM事务,并且在INOUT套接字上没有地址,并且有有效负载包含一个类型的类型Inout_out_bank_t.

要修改生成的TLM组件可调参数,TLM启动器应在CONFIG SOCKECTERT处发送WATHAST地址的写入TLM事务,并具有包含类型的基准的有效负载dualfilter_config_param_bank_t.