このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
メモリマップオプションなし
この例では、Simulink Coder または Embedded Coder ™ のいずれかの tlmgenerator ターゲットを使用して Simulink® モデルから SystemC™/TLM コンポーネントを生成するときに、メモリ マップなしオプションを使用する方法を示します。
Simulink では、各ブロックの入力または出力は、別のブロックにポイントツーポイントでバインドされます。SystemC/TLM では、各コンポーネントは TLM ソケットを介して通信します。このソケットは、TLM トランザクション内でフォーマットされたすべての受信および送信通信を処理します。各システムは通信を異なる方法で処理するため、Simulink モデルから SystemC/TLM コンポーネントを生成するときに、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. オプションをメモリマップなしに設定する
構成パラメータ ダイアログ ボックスで、左側のペインから TLM ジェネレーター ビューを選択します。TLM マッピング タブの ソケット マッピング で、入力データ、出力データ、および制御用の 1 つの結合 TLM ソケット を選択します。次の図に示すように、結合された TLM ソケット の下で、メモリ マップなし を選択します。
3. その他のオプションを設定する
残りの TLM 生成オプションを好みに応じて設定し (またはデフォルト値のままにし)、OK をクリックしてこれらの設定を適用し、構成パラメータ ダイアログ ボックスを終了します。
4. モデルの作成
モデル ウィンドウで、DualFilter ブロックを右クリックし、コンテキスト メニューで C/C++ コード > このサブシステムのコード生成 を選択して、TLM コンポーネント生成 を開始します。または、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 25.854s
5. 生成されたファイルを開く
MATLAB エディタで次のファイルを開きます。
6. 生成されたコードを観察する
次のコード行を見つけます。これらの行は、メモリ マップのない TLM コンポーネントとして生成された場合の FIR フィルターの入力および出力定義を表します。
生成された TLM コンポーネントに入力セットを提供するには、TLM イニシエーターは、アドレスがなく、ペイロードに DualFilter_combined_IN_BANK_T タイプのデータを含む書き込み TLM トランザクションを送信する必要があります。
生成された TLM コンポーネントから出力セットを取得するには、TLM イニシエーターは、アドレスがなく、ペイロードに DualFilter_combined_OUT_BANK_T タイプのデータを含む読み取り TLM トランザクションを送信する必要があります。