Main Content

cgsl_0402: コンポーネント展開用の信号インターフェイス

ID: タイトルcgsl_0402: コンポーネント展開用の信号インターフェイス
説明

コンポーネントのルート レベルにある信号インターフェイスは、次の 1 種類の端子のみを使用してモデル化する必要があります。

  • 名前ベースの端子 — In Bus Element ブロックおよび Out Bus Element ブロック

  • インデックスベースの端子 — Inport ブロックおよび Outport ブロック

名前ベースの端子の使用:

  • 結線や複雑度が低減されるため、モデルの明確性が向上します。

  • インデックスベースの端子を使用した場合に端子の並べ替えで生じる問題が回避されます。

A

In Bus Element ブロックと Out Bus Element ブロックを使用する構造化された信号の場合、ブロック パラメーターを次のように設定します。

  • [データ型]Bus: <object name> に設定します。

  • [バスの仮想性]nonvirtual に設定します。

それぞれの名前ベースの端子について、インターフェイスを個別に構成します。

B

Inport ブロックと Outport ブロックを使用する構造化された信号の場合、ブロック パラメーターを次のように設定します。

  • [データ型]Bus: <object name> に設定します。

  • Outport ブロックのパラメーター [親モデル内の非バーチャル バスとして出力] を選択して、ルート レベルの出力バスを非バーチャルとして指定します。

  • Inport ブロックのパラメーター [非バーチャル バスとして出力] を選択して、バス データの読み込みに使用される最上位の Inport ブロックの出力を非バーチャルとして指定。

C

メモリ使用量が最小になるように信号要素を選択するには、サブシステムがバスのサブセットのみを使用する場合でも、バーチャル バスまたは非バーチャル バス全体を Atomic サブシステムに渡してデータ コピーの数を減らします。インターフェイスからバスの要素を選択するには、In Bus Element ブロックを使用します。

Atomic サブシステム インターフェイスがバスの一部のみを受け取ると、データ コピーが作成されます。たとえば、バスからバス要素が選択され、そのバス要素がサブシステムに渡されたときに、データ コピーが作成されます。

次の表では、Atomic サブシステムがバス全体ではなくバス要素を受け取ったときのデータ コピーの作成について説明します。

関数のパッケージ化関数インターフェイスデータ コピー
Non-reusable functionvoid_void関数で使用されるグローバルなブロック I/O 構造体で、入力バス要素のコピーが作成されます。
Non-reusable functionAllow arguments (Optimized)関数に渡されたローカル変数で、入力バス要素のコピーが作成されます。
Reusable functionN/A関数に渡されたローカル変数で、入力バス要素のコピーが作成されます。
メモ
  • 信号インターフェイスにデータストア メモリは使用しないでください。

  • Embedded Coder® の設定 (最適化など) により、先行するブロック、信号ストレージ クラス、および実際の結果は表と異なる場合があります。

  • バーチャル バスはグローバル データをサポートしていません。

  • サブシステムに対して [関数のパッケージ化]Inline に設定されている場合、データ コピーは行われません。

根拠

In Bus Element ブロックおよび Out Bus Element ブロックを使用すると、結線が低減されます。名前ベースの手法では、端子の並べ替えの問題が回避されます。

複雑度が軽減され、モデルが明確になります。

モデル アドバイザー チェックこのガイドラインの検証には、モデル アドバイザー チェック信号インターフェイスのチェック (Embedded Coder)を使用します。
最終更新R2023b

このモデルでは、In Bus Element ブロックは非バーチャル バスからベクトルを選択します。選択されたベクトルは、関数のパッケージ化が Reusable function に設定された Atomic サブシステムに入ります。

Example model showing bus elements and generated code

サブシステム インターフェイスの前にベクトルが選択されるため、選択されたベクトルのみが関数に渡されます。関数には非バーチャル バスから独立したベクトルのデータ コピーが必要です。

:

バージョン履歴

すべて展開する

R2022b で導入