Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

インポートされた IP-XACT とメモリ マップ

この例では、tlmgenerator ターゲットを使用してSimulink®モデルから SystemC™ またはトランザクション レベル モデリング (TLM) コンポーネントを生成するときに、インポートされた IP-XACT 仕様をメモリ マップとともに使用する方法を示します。tlmgenerator ターゲットは、 Simulink Coder™ またはEmbedded Coder™ で使用できます。

Simulinkでは、各ブロックの入力または出力は別のブロックにポイントツーポイントでバインドされます。SystemC または TLM では、各コンポーネントは TLM ソケットを通じて通信します。このソケットは、TLM トランザクションとしてフォーマットされたすべての受信および送信通信を処理します。システムごとに通信の処理方法が異なるため、 Simulinkモデルから生成される SystemC または TLM コンポーネントの通信インターフェイスを定義する必要があります。この SystemC または TLM コンポーネントの使用目的に応じて、この通信インターフェイスでは、コンポーネント内の各入力または出力のメモリ マップを構築する必要がある場合があります。このメモリ マップは、単純なもの、詳細なもの、または IP-XACT 仕様ファイルからインポートされたものにすることができます。

IP-XACT インポート オプションは、IP-XACT 仕様ファイルに従ってSimulinkモデルから TLM コンポーネントを生成します。この例では、IP-XACT ファイルは、調整可能なパラメーターのメモリ マップを持つ 1 つの tlm ソケットを指定します。各パラメーターは、この TLM ソケット内の対応する読み取りまたは書き込みレジスタにバインドされます。生成された TLM コンポーネントは、仮想プラットフォーム (VP) でテストベンチのスタンドアロン コンポーネントとして使用するか、通信チャネルに接続します。

この例では、SystemC または TLM 生成の基礎として FIR フィルターのSimulinkモデルを使用します。

この例を実行するための要件:

  • SystemC 2.3.1 (TLM ライブラリを含む)

メモ: この例には、コード生成ビルド手順が含まれています。Simulink、 MATLAB®インストール領域でプログラムをビルドすることはできません。必要に応じて、ビルドを開始する前に、 MATLABインストール領域にない作業ディレクトリに変更します。

1. 事前構成されたモデルを開く

「インポートされた IPXact を使用した FIR フィルター モデル (メモリ マップ付き)」を開くには、「モデルを開く」ボタンをクリックします。

次のモデルがSimulinkで開きます。

2.IP-XACTファイルを開く

この例で使用されているIP-XACT fileをMATLABエディターで開きます。あるいは、 MATLABコマンド ウィンドウで次のコマンドを実行します。

  >> open('tlmgdemo_ipxactmem.xml');

IP-XACT ファイルがMATLABエディターで開きます。

3.IP-XACT ファイルを調べる

この IP-XACT ファイルのアーキテクチャ ビューと対応するSimulinkモデルを以下に示します。この IP-XACT には、2 つの入力ポート (LPF_input および LPHPF_input)、2 つの出力ポート (LPF_output および LPHPF_output)、および 1 つのバス インターフェイス (PROCESSOR_BUS) を持つ DualFilter コンポーネントが含まれています。これらの入力ポートと出力ポートは、それぞれ DualFilter モデルの入力と出力にマップされます。バス インターフェイス (PROCESSOR_BUS) にはメモリ マップ (DualFilter_MEM_MAP) が含まれています。メモリ マップ内には、3 つのアドレス ブロック (LP_FILTER_BANK​​LPHP_FILTER_BANK、および EXCLUDED_BANK) があります。 LP_FILTER_BANK には、 Simulinkモデルの LP フィルター係数パラメーターにマップされるレジスターが含まれています。 LPHP_FILTER_BANK には、 Simulinkモデルの LPHP フィルター係数入力にマップされるレジスターが含まれています。 EXCLUDED_BANK は、 Simulinkモデルに対応する表現がない追加のレジスタ バンクです。

このセクション (MWMapInput) は、 Simulinkモデル入力 LPF_input がポート LPF_input の TLM コンポーネントにマップされることを示します。

同様に、このセクション (MWMapOutput) は、 Simulinkモデル出力 LPF_output が TLM コンポーネント出力ポート LPF_output にマップされることを示します。

このセクション (MWMap) は、バス インターフェイス PROCESSOR_BUS が TLM ソケットにマップされていることを示します。このバス インターフェイスには、DualFilter_MEM_MAP という名前のメモリ マップが含まれています。

このセクション (MWMapParam) は、LP フィルタパラメーターLPF_coef_1 のレジスタ LPF_COEF_1 へのマッピングを表します。

このセクション (MWMapInput) は、レジスタ LPHPF_COEF_1 への LPHP フィルタ入力 coef_1 のマッピングを表します。

メモリ マップから特定のアドレス ブロックまたはレジスタのコードを生成したくない場合は、アドレス ブロックまたはレジスタに対して MWMap を false に設定します。このセクション (MWMap) は、EXCLUDED_BANK という名前のアドレス ブロックを TLM コード生成から除外する方法を示します。

同様に、このセクション (MWMap) では、EXCLUDED_REG_1 という名前のレジスタを TLM コード生成から除外する方法を示します。

4.構成パラメーターオプションの設定

このモデルを TLM 生成用に構成するには、構成パラメーターで次のオプションを設定します。

a. 「Configuration パラメーター」ダイアログボックスの左側のペインで「TLM Generator」ビューを選択します。

「b.」 「TLM マッピング」タブの「ソケット マッピング」で、「インポートされた IP-XACT ファイルによって定義」を選択します。

「c.」次の図に示すように、「IP-XACT ファイルのインポート」で、IP-XACT ファイルの場所を参照します。

「d.」 (オプション) Simulinkモデルに対応する表現がないレジスタ/ビットフィールドのコードを生成する場合は、IP-XACT ファイルのインポート で、マップされていない IP-XACT レジスタ/ビットフィールドのコードを生成 を選択します。

5.モデルを構築する

モデル ウィンドウで DualFilter ブロックを右クリックし、C/C++ コード > Build This Subsystem を選択します。ポップアップウィンドウでBuildをクリックします。このオプションはTLM component generationを開始します。あるいは、 MATLABコマンド ウィンドウで次のコマンドを実行することもできます。

  >> slbuild('tlmgdemo_ipxactmem/DualFilter');

次のメッセージがMATLABコマンド ウィンドウに表示されると、TLM の生成が完了します。

### Starting Simulink Coder build procedure for model: DualFilter
### Successful completion of Simulink Coder build procedure for model: DualFilter

Build Summary

Top model targets built:

Model       Action           Rebuild Reason                                    
===============================================================================
DualFilter  Code generated.  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 16.22s

生成された 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 イニシエーターはアドレス LP_FILTER_BANK_ADDR + LPF_COEF_1_ADDR で TLM トランザクションを送信する必要があります。

7.結論

この例では、インポートされた IP-XACT 仕様に基づいてSimulinkモデルから TLM コンポーネントを生成する方法を示します。この IP-XACT には、 Simulinkポートの TLM ポートへのマッピング、 SimulinkパラメーターのTLM レジスタへのマッピング、 Simulink入力の TLM レジスタへのマッピングが含まれます。この例では、メモリ マップからアドレス ブロック (またはレジスタ) を除外する方法も示します。