主要内容

导入IP-XACT内存映射

的Simulink®模型生成SystemC™或事务级建模(TLM)组件时,此示例展示了如何使用导入的IP-XACT规范和内存映射金宝apptlmgenerator目标。您可以使用tlmgenerator目标为Simulink Coder™金宝app或Embedded Coder™。

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

导入IP-XACT选项根据IP-XACT规范文件从Simulink模型生成TLM组件。金宝app在本例中,IP-XACT文件指定了一个tlm套接字,该套接字带有可调参数的内存映射。每个参数都绑定到tlm套接字中相应的读或写寄存器。将虚拟平台(VP)中生成的TLM组件作为测试台中独立的组件使用,或者将其附加到通信通道上。

在本例中,我们使用FIR滤波器的Simulink模型金宝app作为SystemC或TLM生成的基础。

运行这个例子的要求:

  • SystemC 2.3.1(包括TLM库)

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

1.开放式预配置模型

打开导入IPXact的FIR滤波器模型(带内存映射),按开放模式按钮。

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

2.打开IP-XACT文件

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

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

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

3.检查IP-XACT文件

这个IP-XACT文件的体系结构视图和相应的Simulink模型如下所示。金宝app此IP-XACT包含一个DualFilter组件,该组件有两个端口(LPF_input而且LPHPF_input),两个输出端口(LPF_output而且LPHPF_output),以及一个总线接口(PROCESSOR_BUS).这些输入和输出端口分别映射到DualFilter模型的输入和输出。总线接口(PROCESSOR_BUS)包含一个内存映射(DualFilter_MEM_MAP).在内存映射中,有三个地址块(LP_FILTER_BANKLPHP_FILTER_BANK,EXCLUDED_BANK).LP_FILTER_BANK包含寄存器,这些寄存器映射到Simulink模型中的LP滤波器系数参数。金宝appLPHP_FILTER_BANK包含映射到Simulink模型中LPHP滤波器系数输入的寄存器。金宝appEXCLUDED_BANK是一个附加的寄存器库,在Simulink模型中没有相应的表示。金宝app

本节(MWMapInput)表示Simulink模型输入金宝appLPF_input映射到端口中的TLM组件LPF_input

类似地,本节(MWMapOutput)表示Simulink模型输出金宝appLPF_output映射到TLM组件输出端口LPF_output

这个部分(MWMap)表示总线接口PROCESSOR_BUS映射到TLM套接字。此总线接口包含一个名为DualFilter_MEM_MAP

这个部分(MWMapParam)表示LP过滤器参数的映射LPF_coef_1注册LPF_COEF_1

这个部分(MWMapInput)表示LPHP筛选器输入coef_1映射到寄存器LPHPF_COEF_1

如果不想从内存映射为特定的地址块或寄存器生成代码,请将地址块或寄存器的MWMap设置为false。本节(MWMap)展示如何排除命名为EXCLUDED_BANK从TLM代码生成

类似地,本节(MWMap)展示如何排除名为EXCLUDED_REG_1从TLM代码生成

4.设置配置参数选项

要为tlm生成配置此模型,请在配置参数中设置以下选项。

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

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

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

d。(可选)如果您想为在Simulink模型中没有相应表示的寄存器/位字段生成代码,请在金宝app导入IP-XACT文件中,选择为未映射的IP-XACT寄存器/位字段生成代码

5.构建模型

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

> > slbuild (' tlmgdemo_ipxactmem / DualFilter ');

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

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

生成的TLM组件的体系结构视图如下图所示:

6.检查生成的代码

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

DualFilter_VP / DualFilter_ipxactmem_tlm / include / DualFilter_ipxactmem_tlm.h

本节分别表示FIR滤波器的输入和输出到生成的TLM组件的输入和输出端口的映射。

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

DualFilter_VP / DualFilter_ipxactmem_tlm / include / DualFilter_ipxactmem_tlm_def.h

这个部分显示了在IP-XACT文件中指定的LP过滤器和LPHP过滤器系数寄存器的地址映射。

修改生成的TLM寄存器LPF_COEF_1, TLM发起者应在该地址发送TLM事务LP_FILTER_BANK_ADDR+LPF_COEF_1_ADDR

7.结论

这个例子展示了如何根据导入的IP-XACT规范从Simulink模型中生成TLM组件。金宝app该IP-XACT包括将Simulink端口映射到TLM端口、将S金宝appimulink参数映射到TLM寄存器以及将Simulink输入映射到TLM寄存器。这个例子还演示了如何从内存映射中排除一个地址块(或寄存器)。