Main Content

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

単一アドレスオプションを備えた自動生成メモリマップ

この例では、 Simulink CoderまたはEmbedded Coder ™ の tlmgenerator ターゲットを使用してSimulink®モデルから SystemC™/TLM コンポーネントを生成する場合に、単一アドレス オプションで自動生成されたメモリ マップの使用方法を示します。

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

単一アドレスの自動生成メモリ マップ オプションは、それぞれ 1 つのアドレスを持つ 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 ソケット」を選択します。次の図に示すように、結合 TLM ソケット で、自動生成メモリ マップ単一の入力および出力アドレス オフセット を選択します。

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

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

4.モデルを構築する

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

  >> slbuild('tlmgdemo_asmem/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 11.201s

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

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

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

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

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

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