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 仕様ファイルに従って TLM コンポーネントを生成します。この特定の例では、IP-XACT ファイルは、 Simulinkモデルの入出力用にメモリ マップのない 1 つの tlm ソケットと、調整可能なパラメーター用のメモリ マップのない 1 つのソケットを指定しました。Simulinkモデルの入力は、最初の tlm ソケットの一意の書き込みレジスタにバインドされ、出力は一意の読み取りレジスタにバインドされます。調整可能なパラメーターは、 2 番目の 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_ipxactnomem.xml');

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

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

MATLABエディターで、次のコード行 (MWMapInput、MWMapOutput) を見つけます。これらの行は、Inout TLM ソケット (IPXact のバス インターフェイスで表される) 上の FIR フィルターの入力および出力マッピングを表します。

同様に、次のコード行 (MWMapParam) は、Config TLM ソケット上の FIR フィルターパラメーターマッピングを表します。

4.オプションをインポートされた IP-XACT ファイルによって定義されたものに設定

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

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

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

5.その他のオプションを設定する

残りの TLM 生成オプションを好みに応じて設定し (またはデフォルト値のままにし)、「OK」をクリックしてこれらの設定を適用し、「構成パラメーター」ダイアログ ボックスを終了します。

6.モデルを構築する

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

  >> slbuild('tlmgdemo_ipxactnomem/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 14.697s

7.生成されたファイルを開く

MATLABエディターで次のファイルを開きます。

DualFilter_VP/DualFilter_ipxactnomem_tlm/include/DualFilter_ipxactnomem_tlm_def.h

8.生成されたコードを調べる

MATLABエディターを使用して、次のコード行を見つけます。これらの行は、メモリ マップなしで TLM コンポーネントとして生成された場合の FIR フィルターの入力定義と出力定義を表します。

生成された TLM コンポーネントに一連の入力を提供するには、TLM イニシエーターは、InOut ソケットにアドレスを持たず、InOut_IN_BANK_T タイプのデータを含むペイロードを持つ書き込み TLM トランザクションを送信する必要があります。

生成された TLM コンポーネントから一連の出力を取得するには、TLM イニシエーターは、InOut ソケットにアドレスを持たず、InOut_OUT_BANK_T タイプのデータを含むペイロードを持つ読み取り TLM トランザクションを送信する必要があります。

生成された TLM コンポーネントの調整可能パラメーターを変更するには、TLM イニシエーターは、Config ソケットにアドレスを持たず、DualFilter_Config_PARAM_BANK_T タイプのデータを含むペイロードを持つ書き込み TLM トランザクションを送信する必要があります。