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 コンポーネントの通信インターフェイスを定義する必要があります。この SystemC/TLM コンポーネントの使用目的に応じて、この通信インターフェイスでは、コンポーネント内の各入力/出力に対してメモリ マップ (またはアドレス) を構築することが必要になる場合があります。このメモリ マップは、単純なもの、詳細なもの、または IP-XACT 仕様ファイルからインポートされたものになります。

インポート IP-XACT オプションは、IP-XACT 仕様ファイルに従って TLM コンポーネントを生成します。この特定の例では、IP-XACT ファイルは、Simulink モデルの入力/出力用にメモリ マップなしの tlm ソケットを 1 つ指定し、調整可能なパラメータ用にメモリ マップなしのソケットを 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 ファイル を 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.構成パラメータ ダイアログ ボックスで、左側のペインから TLM ジェネレーター ビューを選択します。

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

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

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

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

6. モデルの作成

モデル ウィンドウで、DualFilter ブロックを右クリックし、[C/C++ コード] > [このサブシステムのコード生成] を選択します。このオプションは、TLM コンポーネントの生成を開始します。あるいは、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 10.475s

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 トランザクションを送信する必要があります。