Main Content

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

メモリマップオプションなし

この例では、 Simulink CoderまたはEmbedded Coder ™ の tlmgenerator ターゲットを使用してSimulink®モデルから SystemC™/TLM コンポーネントを生成するときの、メモリ マップなしオプションの使用について説明します。

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

メモリ マップなしオプションでは、アドレスなしで 1 つの読み取りレジスタと 1 つの書き込みレジスタのみを持つ TLM コンポーネントが生成されます。Simulinkモデルの入力は書き込みレジスタにバインドされ、出力は読み取りレジスタにバインドされます。このオプションを使用して作成すると、生成された TLM コンポーネントは、仮想プラットフォーム (VP) でテストベンチのスタンドアロン コンポーネントとして、または直接バインドされたコプロセッシング ユニットとして使用でき、またはアダプターを使用して通信チャネルに接続できます。 。

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

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

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

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

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

メモリ マップのない FIR フィルター モデル を開くには、モデルを開く ボタンをクリックします。

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

2.オプションをメモリマップなしに設定します

「Configuration パラメーター」ダイアログボックスの左側のペインで「TLM Generator」ビューを選択します。「TLM マッピング」タブの「ソケット マッピング」で、「入力データ、出力データ、および制御用に 1 つの結合 TLM ソケット」を選択します。次の図に示すように、Combined TLM SocketNo Memory Map を選択します。

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

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

4.モデルを構築する

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

  >> slbuild('tlmgdemo_nomem/DualFilter');

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

### 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 20.103s

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

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

6.生成されたコードを観察する

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

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

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