このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Subsystem
モデルの階層構造を作成するためのブロックのグループ化
ライブラリ:
Simulink /
Commonly Used Blocks
Simulink /
Ports & Subsystems
HDL Coder /
Ports & Subsystems
説明
Subsystem ブロックには、モデルまたはシステム内のブロックのサブセットが含まれています。Subsystem ブロックは、バーチャル サブシステムを表す場合も非バーチャル サブシステムを表す場合もあります。
非バーチャル サブシステム – サブシステムの内容が単一のユニットとして評価される (アトミック実行) タイミングを制御します。トリガー、関数呼び出し、アクション、入力の有効化においてイベントが発生した場合にのみ実行される条件付き実行のサブシステムを作成します (条件付き実行サブシステムとモデルを参照してください)。
バーチャル サブシステム – サブシステムは条件付きで実行されることも、アトミックに実行されることもありません。バーチャル サブシステムにはチェックサムがありません。サブシステムがバーチャルかどうかを判断するには、関数
get_param
を使用して boolean で表されるブロック パラメーターIsSubsystemVirtual
を確認します。
Atomic Subsystem ブロックは、ブロック パラメーター [Atomic サブシステムとして扱う] が選択された Subsystem ブロックであり、非バーチャル サブシステムを表します。
Code Reuse Subsystem ブロックは、パラメーター [Atomic サブシステムとして扱う] が選択され、パラメーター [関数のパッケージ化] が [再利用可能な関数]
に設定された Subsystem ブロックであり、サブシステムの関数コード生成形式を指定します。
サブシステムを作成するには、以下のいずれかを行います。
Ports & Subsystems ライブラリから Subsystem ブロックをモデルにコピーします。次に、Subsystem ブロックを開き、ブロックをその Subsystem ブロック内にコピーすることで、ブロックをサブシステムに追加します。
サブシステムを構成するすべてのブロックとラインを選択し、[複数] タブで、[サブシステムの作成] をクリックします。Simulink® はそのブロックを Subsystem ブロックに置き換え、必要な Inport ブロックと Outport ブロックがそのサブシステムの入出力信号に反映されるようにします。
Subsystem ブロックのアイコン上に描画される入力端子の数は、サブシステム内の Inport ブロックの数に対応します。同様に、ブロック上に描画される出力端子の数は、サブシステム内の Outport ブロックの数に対応します。
Subsystem ブロックは、サブシステムの Inport ブロックと Outport ブロックを通じて信号ラベルの伝播をサポートします。
メモ
参照サブシステムは、Subsystem Reference ブロックを使用して参照される別のファイルに格納されるサブシステムです。サブシステムを再利用するには、同じサブシステム ファイルを参照する複数の Subsystem Reference ブロックを追加します。参照サブシステムは、実行時に通常のサブシステムと同様に動作します。
例
端子
入力
In — サブシステムへの信号入力
スカラー | ベクトル | 行列
Inport ブロックをサブシステム内に配置することで、Subsystem ブロックへの外部入力端子が追加されます。端子ラベルは Inport ブロックの名前と一致します。
ローカル環境から信号を取得するには、Inport ブロックを使用します。
データ型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
reinit — サブシステムの再初期化イベントの制御信号
スカラー
再初期化イベント端子は、サブシステムの再初期化イベントをトリガーする関数呼び出し制御信号を提供します。これにより、サブシステムの状態がリセットされます。
サブシステムには、各サブシステムの再初期化イベントに対応する Reinitialize Function ブロックが含まれていなければなりません。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。
端子名を指定するには、Reinitialize Function ブロック内の Event Listener ブロックの [イベント名] パラメーターを使用します。
依存関係
このタイプの端子を有効にするには、[サブシステム再初期化端子の表示] チェック ボックスを選択します。
出力
Out — サブシステムからの信号出力
スカラー | ベクトル | 行列
Outport ブロックをサブシステム内に配置することで、Subsystem ブロックの出力端子が追加されます。Subsystem ブロック上の端子ラベルは Outport ブロックの名前です。
信号をローカル環境に送信するには、Outport ブロックを使用します。
データ型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
パラメーター
メイン
端子ラベルを表示 — 端子ラベルのオプションを表示
[FromPortIcon]
(既定値) | [FromPortBlockName]
| [SignalName]
Subsystem ブロック アイコンに端子ラベルを表示する方法を選択します。
なし
端子ラベルを表示しません。
[FromPortIcon]
対応する端子アイコン上に信号名が表示される場合、Subsystem ブロック上に信号名を表示します。それ以外の場合は、端子のブロック名、またはブロック名が既定の名前の場合は端子番号を表示します。
[FromPortBlockName]
Subsystem ブロック上に対応する端子のブロック名を表示します。
[SignalName]
端子に接続されている信号に名前が付いている場合、Subsystem ブロック上の信号の名前を表示します。それ以外の場合は、対応する端子のブロック名を表示します。
Subsystem ブロックでの端子ラベルの編集については、サブシステムの端子ラベルの編集を参照してください。
プログラムでの使用
パラメーター: ShowPortLabels |
型: 文字ベクトル |
値: 'FromPortIcon' | 'FromPortBlockName' | 'SignalName' |
既定の設定: 'FromPortIcon' |
読み取り/書き込み権限 — サブシステムの内容へのアクセスのレベル
[ReadWrite]
(既定値) | [ReadOnly]
| [NoReadOrWrite]
サブシステムの内容へのユーザー アクセスを制御します。
[ReadWrite]
サブシステムの内容を開き、修正することができます。
[ReadOnly]
サブシステムを開くことはできますが、修正することはできません。サブシステムがブロック ライブラリに存在する場合、サブシステムへのリンクを作成して開くことができます。また、サブシステムのローカル コピーを作成して変更することはできますが、アクセス許可や元のライブラリ インスタンスの内容を変更することはできません。
[NoReadOrWrite]
サブシステムを開くことも修正することもできません。サブシステムがライブラリに存在する場合、モデルにあるサブシステムのリンクを作成することはできますが、サブシステムを開いたり、アクセス許可を変更したり、サブシステムのローカル コピーを作成したりすることはできません。
メモ
[読み取り/書き込みアクセス許可] パラメーターが [NoReadOrWrite]
に設定されているサブシステムの内容を表示しようとしても、応答はありません。たとえば、そのようなサブシステムをダブルクリックしても、Simulink はサブシステムを開きませんし、メッセージも表示しません。
プログラムでの使用
パラメーター: Permissions |
型: 文字ベクトル |
値: 'ReadWrite' | 'ReadOnly' | 'NoReadOrWrite' |
既定の設定: 'ReadWrite' |
エラー コールバック関数名 — エラーが発生すると呼び出される関数の名前
''
(既定値) | 関数名
Simulink によるサブシステムの実行中にエラーが発生した場合に呼び出される関数名を入力します。
Simulink により 2 つの引数が関数に渡されます。その引数は、サブシステムのハンドルと、エラー タイプを指定する文字ベクトルです。関数が指定されていない場合、サブシステムの実行によってエラーが発生すると、Simulink は一般的なエラー メッセージを表示します。
プログラムでの使用
パラメーター: ErrorFcn |
型: 文字ベクトル |
値: '' | '<function name>' |
既定の設定: '' |
階層の関連付けを許可 — ワークスペースの変数名の関連付け
すべて
(既定値) | 明示的のみ
| なし
このサブシステムによって参照されるワークスペース変数名を解決するかどうかを選択します。
詳細については、記号の解釈および記号関連付けプロセスを参照してください。
すべて
ブロック パラメーター値と Simulink データ オブジェクト (
Simulink.Signal
オブジェクトなど) の指定に使用されるワークスペース変数など、このサブシステムが使用するワークスペース変数のすべての名前を解決します。明示的のみ
ブロックのパラメーター値、データ ストア メモリ (ここにはブロックは存在しません)、信号、"must resolve" というマークの付いた状態) を指定するために使用されるワークスペース変数名だけを解決します。
なし
ワークスペース変数名を解決しません。
プログラムでの使用
パラメーター: PermitHierarchicalResolution |
型: 文字ベクトル |
値: 'All' | 'ExplicitOnly' | 'None' |
既定の設定: 'All' |
Atomic サブシステムとして扱う — サブシステムを単一ユニットとして実行するオプション
オフ (既定値) | オン
ブロック メソッドの実行順序を決定するときに、Simulink でサブシステムをユニットとして扱います。
オフ
ブロック メソッドの実行順序を決める際に、サブシステム内のすべてのブロックを、モデルの階層構造内でサブシステムと同じ階層にあるものとして取り扱います。これは、サブシステム内のブロックのメソッドの実行が、サブシステム外のブロックのメソッドの実行にインターリーブする原因となります。
オン
ブロック メソッドの実行順序を決定するときに、サブシステムをユニットとして扱います。たとえば、サブシステムの出力を計算する必要がある場合、Simulink は、他のブロックの出力メソッドを Subsystem ブロックと同じレベルで実行する前に、サブシステムのすべてのブロックの出力メソッドを実行します。
プログラムでの使用
パラメーター: TreatAsAtomicUnit |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
サブシステム再初期化端子の表示 — 再初期化イベント端子を表示するオプション
オフ (既定値) | オン
再初期化イベント端子を表示するには、このパラメーターを選択します。端子を削除するには、このパラメーターの選択を解除します。
依存関係
このパラメーターを有効にするには、[Atomic サブシステムとして扱う] チェック ボックスを選択します。
プログラムでの使用
ブロック パラメーター: ShowSubsystemReinitializePorts |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
代数ループの発生の最小化 — 疑似代数ループを削除するオプション
オフ (既定値) | オン
Atomic Subsystem を含むすべての人為的な代数ループを解消しようとします。
オフ
Atomic Subsystem を含むすべての人為的な代数ループを解消しません。
オン
Atomic Subsystem を含むすべての人為的な代数ループを解消しようとします。
依存関係
このパラメーターを有効にするには、[Atomic サブシステムとして扱う] パラメーターをオンにします。
プログラムでの使用
パラメーター: MinAlgLoopOccurrences |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
名前を付けてスケジュール — スケジューリングのタイプ
サンプル時間
(既定値) | 周期的分割
| 非周期的分割
サブシステムをスケジューリングする方法を指定します。
サンプル時間
このサブシステムのすべてのブロックを同じレートで実行すべきか、異なるレートで実行できるかどうかを指定します。
周期的分割
サブシステムを周期的分割としてスケジューリングします。分割の名前と、分割を実行するレートに対応するサンプル時間を指定します。
非周期的分割
サブシステムを非周期的分割としてスケジューリングします。分割の名前を指定します。
依存関係
このパラメーターを有効にするには、[Atomic サブシステムとして扱う] パラメーターをオンにします。
プログラムでの使用
パラメーター: ScheduleAs |
型: 文字ベクトル |
値: 'SampleTime' | 'PeriodicParition' | 'AperiodicPartition' |
既定の設定: 'SampleTime' |
分割の名前 — 分割の名前
文字ベクトル
サブシステムの分割の名前を指定します。
依存関係
このパラメーターを有効にするには、[Atomic サブシステムとして扱う] パラメーターを選択し、[名前を付けてスケジュール] を [周期的分割]
または [非周期的分割]
に設定します。
プログラムでの使用
パラメーター: PartitionName |
型: 文字ベクトル |
値: '' |
既定の設定: '' |
サンプル時間 — 時間間隔
-1
(既定値) | [Ts 0]
このサブシステムのすべてのブロックを同じレートで実行すべきか、異なるレートで実行できるかどうかを指定します。
サブシステム内のブロックが異なるレートで実行できる場合、サブシステムのサンプル時間を継承 (
-1
) に指定します。すべてのブロックを同じレートで実行しなければならない場合、[サンプル時間] パラメーターの値として、このレートに相当するサンプル時間を指定します。
サブシステム内の任意のブロックで異なるサンプル時間 (
-1
またはinf
以外) が指定されていると、Simulink は、モデルを更新またはシミュレートするときにエラー メッセージを表示します。たとえば、サブシステム内のすべてのブロックが 1 秒につき5
回実行する必要があるとします。これを確実にするには、サブシステムのサンプル時間を0.2
に指定します。この例では、サブシステム内の任意のブロックで0.2
、-1
またはinf
以外のサンプル時間が指定されると、Simulink は、モデルを更新またはシミュレートするときにエラーを表示します。
-1
継承サンプル時間を指定します。サブシステム内のブロックが異なるレートで実行できる場合、このサンプル時間を使用します。
[Ts 0]
周期的なサンプル時間を指定します。
依存関係
このパラメーターを有効にするには、[Atomic サブシステムとして扱う] パラメーターをオンにします。
プログラムでの使用
パラメーター: SystemSampleTime |
型: 文字ベクトル |
値: '-1' | '[Ts 0]'
|
既定の設定: '-1' |
バリアント制御 — バリアント制御 (条件) 式
Variant
(既定値) | 論理式
式が true
と評価された場合にバリアント Simulink Function ブロックを実行するバリアント制御 (条件) 式を指定します。
詳細については、Simulink.Variant
を参照してください。
Variant
論理 (boolean) 式の既定の名前。
- 論理式
論理式を表す論理 (boolean) 式または
Simulink.Variant
オブジェクト。関数は、式が
true
に評価される場合に有効になります。モデルのコードを生成する場合、式の変数を
Simulink.Parameter
オブジェクトとして定義します。
依存関係
Subsystem ブロックを Variant Subsystem ブロック内に追加することで、このパラメーターを有効にします。
プログラムでの使用
ブロック パラメーター: VariantControl |
型: 文字ベクトル |
値: 'Variant' | '<logical expression>' |
既定の設定: 'Variant' |
バリアント条件の伝播時にはグループとして処理 — バリアント条件の伝播時にサブシステムをユニットとして処理するオプション
on
(既定値) | off
Simulink は、バリアント条件を Variant Source ブロックからまたは Variant Sink ブロックに伝播するときにサブシステムをユニットとして処理します。
オン
Simulink は、バリアント条件を Variant Source ブロックからまたは Variant Sink ブロックに伝播するときにサブシステムをユニットとして処理します。たとえば、Simulink ではサブシステムのバリアント条件を計算するときに、その条件をサブシステム内のすべてのブロックに伝播します。
オフ
バリアント条件を決める際に、Simulink はサブシステム内のすべてのブロックを、モデルの階層構造内でサブシステムそのものと同じ階層にあるものとして取り扱います。
プログラムでの使用
パラメーター: TreatAsGroupedWhenPropagatingVariantConditions |
型: 文字ベクトル |
値: 'on' | 'off' |
既定の設定: 'on' |
コード生成
[コード生成] タブのパラメーターには、Simulink Coder™ または Embedded Coder® のライセンスが必要です。
関数のパッケージ化 — コードの形式
Auto
(既定値) | インライン
| 再利用できない関数
| 再利用可能な関数
atomic (非バーチャル) サブシステムに対して生成されるコード形式を選択します。
自動
Simulink Coder と Embedded Coder は、モデル内に存在するサブシステムのインスタンスのタイプと数に基づいて、最適な形式を選択します。
インライン
Simulink Coder と Embedded Coder は、無条件にサブシステムをインライン化します。
再利用できない関数
[ファイル名オプション] が
[自動]
に設定されている場合、Simulink Coder と Embedded Coder は、モデル ファイル内に個別の関数をパッケージ化します。[ファイル名オプション] が別のファイル名を使用する[サブシステム名を使用]
、[関数名を使用]
、または[ユーザー指定]
に設定されている場合、Simulink Coder と Embedded Coder は、別々のファイルに個々の関数をパッケージ化します。このように設定されたサブシステムは、関数インターフェイスパラメーターの設定に基づく引数をもつ関数を生成します。生成された関数とファイルは、関数名およびファイル名 (拡張子なし)パラメーターを使用して名前を付けることができます。これらの関数は再呼び出し可能ではありません。
再利用可能な関数
Simulink Coder と Embedded Coder は、モデルが複数のサブシステムのインスタンスを含む場合、サブシステムのコードの再利用を可能にする引数をもつ関数を生成します。
このオプションは、参照モデル全体にわたりサブシステムの複数のインスタンスを含むモデル参照階層の生成コードで、サブシステム コードの再利用を可能とする引数をもつ関数も生成します。この場合、サブシステムはライブラリに含まれていなければなりません。
詳細については、以下を参照してください。
個別のサブシステムのコードと実行可能ファイルの生成 (Simulink Coder)
インライン化されたサブシステム コードの生成 (Simulink Coder)
サブシステム コードを別々の関数およびファイルとして生成 (Simulink Coder)
モデル間で共有されるライブラリ サブシステムからの再利用可能なコードの生成 (Simulink Coder)
ヒント
サブシステムの複数のインスタンスを 1 つの再利用が可能な関数として表す場合、それぞれ
自動
または[再利用可能な関数]
として指定できます。それらのどちらか一方を使用するのが最適です。両方を使用すると、各指定につき 1 つずつ、2 つの再利用可能な関数が作成されます。これらの選択の結果は、再利用が不可能な場合にのみ異なります。自動
を選択しても、サブシステム コードの関数やファイル名は制御できません。[再利用可能な関数]
と自動
のオプションは両方とも、サブシステムのインスタンスが複数存在するかどうかと、コードが再利用可能かどうかを判定しようとします。再利用が不可能な場合、以下のようにオプションの動作はそれぞれ異なります。[自動]
はインライン化されたコードを生成し、インライン化が禁止されている場合は、サブシステムのインスタンスごとに別の関数を生成します。[再利用可能な関数]
はモデル内のサブシステムのインスタンスごとに、引数をもつ別の関数を生成します。
生成コードがソース管理下にある場合に
[再利用可能な関数]
を選択する場合は、[ファイル名オプション] をサブシステム名を使用
、[関数名を使用]
、ユーザー指定
のいずれかに設定してください。この設定を行わないと、モデルを変更するたびにコード ファイルの名前が変更され、ファイルのソース管理ができません。[自動]
または[インライン]
以外のオプションとモデル コンフィギュレーション パラメーター [状態] を選択した場合、コード ジェネレーターは出力メソッドと更新メソッドを別々に生成します。コード ジェネレーターでは、[コード生成およびシミュレーション用に出力メソッドと更新メソッドを結合] の指定は考慮されません。
依存関係
このパラメーターには、コード生成用に Simulink Coder が必要です。
このパラメーターを有効にするには、[Atomic サブシステムとして扱う] をオンにします。
プログラムでの使用
パラメーター: RTWSystemCode |
型: 文字ベクトル |
値: 'Auto' | 'Inline' | 'Nonreusable function' | 'Reusable function' |
既定の設定: 'Auto' |
関数名オプション — 生成される関数の命名方法
Auto
(既定値) | サブシステム名を使用
| ユーザー指定
Simulink Coder がサブシステム用に生成する関数に名前を付ける方法を選択します。
Embedded Coder ライセンスをお持ちの場合、コンフィギュレーション パラメーターの [コード生成] 、 [識別子] ペインのオプションで関数名を制御できます。
自動
既定の名前付けの規則、
を使用して一意の関数名を割り当てます。ここでmodel
_subsystem
()model
はモデルの名前であり、subsystem
はサブシステムの名前 (または、コードが再使用される場合に同一のものの名前) です。[関数のパッケージ化] パラメーターに
[再利用可能な関数]
を選択し、モデル参照階層に再利用可能なサブシステムのインスタンスが複数ある場合に、サブシステムで再利用可能なコードを生成するには、[関数名オプション] を自動
に設定しなければなりません。サブシステム名を使用
関数名にサブシステム名を使用します。既定では、関数名は命名規則
を使用します。model
_subsystem
メモ
サブシステムがライブラリ ブロックにあり、そのサブシステムのパラメーター関数のパッケージ化が
[再利用可能な関数]
に設定されている場合、[サブシステム名を使用]
オプションを設定すると、コード ジェネレーターはそのサブシステムの関数名とファイル名に対してライブラリ ブロックの名前を使用します。ユーザー指定
[関数名] フィールドが有効になります。有効な C または C++ 関数名 (固有でなければならない) を入力します。
詳細については、サブシステム コードを別々の関数およびファイルとして生成 (Simulink Coder)を参照してください。
依存関係
このパラメーターには Simulink Coder のライセンスが必要です。
このパラメーターを有効にするには、[関数のパッケージ化] を
[再利用できない関数]
または[再利用可能な関数]
に設定します。
プログラムでの使用
パラメーター: RTWFcnNameOpts |
型: 文字ベクトル |
値: 'Auto' | 'Use subsystem name' | 'User specified' |
既定の設定: 'Auto' |
関数名 — サブシステム コードの関数の名前
''
(既定値) | 関数名
サブシステム コードに対して、一意で有効な C または C++ 関数名を指定します。
Simulink Coder コード ジェネレーターで自動生成された名前を割り当てたり、サブシステム名を使用したりする代わりに、関数に特定の名前を割り当てるには、このパラメーターを使用します。詳細については、サブシステム コードを別々の関数およびファイルとして生成 (Simulink Coder)を参照してください。
依存関係
このパラメーターには Simulink Coder のライセンスが必要です。
このパラメーターを有効にするには、[関数名オプション] パラメーターを
[ユーザー指定]
に設定します。
プログラムでの使用
パラメーター: RTWFcnName |
型: 文字ベクトル |
値: '' | '<function name>' |
既定の設定: '' |
ファイル名オプション — 生成されるファイルの命名方法
Auto
(既定値) | サブシステム名を使用
| 関数名を使用
| ユーザー指定
Simulink Coder がサブシステムに対して生成する関数の個々のファイルに名前を付ける方法を選択します。
Auto
サブシステムの構成およびモデルにあるインスタンスの数によって、
自動
は異なる結果を返します。コード ジェネレーターがサブシステムに個別のファイルを "生成しない" 場合、サブシステムの親システムから生成されたコード モジュール内で、サブシステム コードが生成されます。サブシステムの親がモデル自体の場合、サブシステム コードは
またはmodel
.c
内で生成されます。model
.cpp[関数のパッケージ化] パラメーターに
[再利用可能な関数]
を選択し、生成コードがソース管理下にある場合、[ファイル名オプション] に自動
以外の値を指定することを検討してください。これにより、関係のないモデル変更によって生成されたファイル名が変更されるのを防止できます。これは、ソース管理を使用して構成を管理する場合に問題となる点です。[関数のパッケージ化] パラメーターに
[再利用可能な関数]
を選択し、モデル参照階層に再利用可能なサブシステムのインスタンスが複数ある場合、サブシステムで再利用可能なコードを生成するには、[ファイル名オプション] を自動
に設定しなければなりません。
サブシステム名を使用
コード ジェネレーターは、サブシステム (またはライブラリ ブロック) 名をファイル名として使用して、別のファイルを生成します。
メモ
[ファイル名オプション] を
[サブシステム名を使用]
に設定すると、モデルに Model ブロックが含まれている場合、またはモデルのモデル参照ターゲットが生成されている場合に、サブシステムのファイル名はマングルされます。これらの状況で、サブシステムのファイル名はモデル名を前置したサブシステムの名前で構成されます。関数名を使用
コード ジェネレーターは [関数名オプション] により指定される関数名をファイル名として使用します。
ユーザー指定
このオプションは [ファイル名 (拡張子なし)] テキスト入力フィールドを有効にします。コード ジェネレーターは入力された名前をファイル名として使用します。任意のファイル名を入力しますが、
.c
や.cpp
(などの) 拡張子は含めないでください。このファイル名は、固有でなくても構いません。メモ
サブシステムのソース ファイル名は固有でなくても構いませんが、循環依存状態となる非固有名を付けるのは避けなければなりません (
sys_a.h
がsys_b.h
を含み、sys_b.h
がsys_c.h
を含み、sys_c.h
がsys_a.h
を含むなど)。
依存関係
このパラメーターには Simulink Coder のライセンスが必要です。
このパラメーターを有効にするには、[関数のパッケージ化] を
[再利用できない関数]
または[再利用可能な関数]
に設定します。
プログラムでの使用
パラメーター: RTWFileNameOpts |
型: 文字ベクトル |
値: 'Auto' | 'Use subsystem name' | 'Use function name' | 'User specified' |
既定の設定: 'Auto' |
ファイル名 (拡張子なし) — 生成されたファイルの名前
''
(既定値) | ファイル名
指定するファイル名は、一意である必要はありません。ただし、循環的な依存状態 (たとえば、sys_a.h
が sys_b.h
を含み、sys_b.h
が sys_c.h
を含み、sys_c.h
が sys_a.h
を含む) になるような一意でない名前を付けることは避けてください。
詳細については、サブシステム コードを別々の関数およびファイルとして生成 (Simulink Coder)を参照してください。
依存関係
このパラメーターには Simulink Coder のライセンスが必要です。
このパラメーターを有効にするには、[ファイル名オプション] を
[ユーザー指定]
に設定します。
プログラムでの使用
パラメーター: RTWFileName |
型: 文字ベクトル |
値: '' | '<file name>' |
既定の設定: '' |
関数インターフェイス — 生成される関数での引数の使用を選択
void_void
(既定値) | 引数を許可 (最適化)
| 引数を許可 (グラフィカル インターフェイスとの一致)
生成される関数で引数を使用することを選択します。
void_void
引数をもたない関数を生成し、グローバル変数でデータを渡します。以下に例を示します。
void subsystem_function(void)
引数を許可 (最適化)
グローバル変数でデータを渡さずに引数を使用する関数を生成します。これを指定すると、グローバル RAM が節約されます。これにより、コード サイズが削減され、実行速度が改善されます。また、コード ジェネレーターによりさらなる最適化が有効になります。以下に例を示します。
場合によっては、最適化されたコードの生成時に、コード ジェネレーターが引数をもつ関数を生成しない可能性があります。void subsystem_function(real_T rtu_In1, real_T rtu_In2, real_T *rty_Out1)
引数を許可 (グラフィカル インターフェイスとの一致)
Subsystem のグラフィカル ブロック インターフェイスに一致する引数を使用する関数インターフェイスを生成します。生成される関数インターフェイスは予測可能であり変更されません。予測可能なインターフェイスは、デバッグやコードのテスト、外部アプリケーションとの統合において有用である可能性があります。たとえば、モデルに 2 つの Inport と 2 つの Outport がある場合、生成される関数インターフェイスは次のようになります。
void subsystem_function(real_T rtu_In1, real_T rtu_In2, real_T *rty_Out1, real_T *rty_Out2)
詳細については、以下を参照してください。
Reduce Global Variables in Nonreusable Subsystem Functions (Embedded Coder)
Generate Predictable Function Interface to Match Graphical Block Interface (Embedded Coder)
非バーチャル サブシステムのモジュラー関数コードの生成 (Embedded Coder)
依存関係
このパラメーターには Embedded Coder と ERT ベースのシステム ターゲット ファイルが必要です。
このパラメーターを有効にするには、[関数のパッケージ化] を
[再利用できない関数]
に設定します。
プログラムでの使用
パラメーター: FunctionInterfaceSpec |
型: 文字ベクトル |
値: 'void_void' | 'Allow arguments (Optimized)' | 'Allow arguments (Match graphical interface)' |
既定の設定: 'void_void' |
別々のデータをもつ関数 — サブシステムのコード生成を制御
オフ (既定値) | オン
Atomic Subsystem 用の内部データが親モデルから分離され、サブシステムに所有されているサブシステムの関数コードを生成します。
オフ
Atomic Subsystem 用の内部データが親モデルから分離され、サブシステムに所有されているサブシステムの関数コードを生成しません。
オン
Atomic Subsystem 用の内部データが親モデルから分離され、サブシステムに所有されているサブシステムの関数コードを生成します。サブシステムのデータ構造は、親モデルのデータ構造とは別に宣言されます。個別のデータをもつサブシステムは、独自のブロック I/O と
DWork
データ構造対をもちます。結果として、サブシステムに対して生成されたコードの方が、追跡とテストが容易になります。また、データを分離すると、データが複数のデータ構造に分割されるため、モデル全体のデータ構造の最大サイズが小さくなる傾向があります。
Atomic Subsystem の modular function コードを生成する方法の詳細は、非バーチャル サブシステムのモジュラー関数コードの生成 (Embedded Coder)を参照してください。
Atomic Subsystem にメモリ セクションを適用する方法の詳細は、Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)を参照してください。
依存関係
このパラメーターは Embedded Coder のライセンスと ERT ベースのシステム ターゲット ファイルを必要とします。
このパラメーターを有効にするには、[関数のパッケージ化] を
[再利用できない関数]
に設定します。
プログラムでの使用
パラメーター: FunctionWithSeparateData |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
初期化/終了関数のメモリ セクション — メモリ セクションの適用方法を選択
モデルから継承
(既定値) | 既定の設定
| 目的のメモリ セクション
Embedded Coder におけるサブシステムの初期化および終了関数へのメモリ セクションの適用方法を選択します。
モデルから継承
ルート モデルのメモリ セクションをサブシステムの関数コードに適用します。
既定の設定
任意のモデルレベルの仕様を無効にして、サブシステムのシステム コードにメモリ セクションを適用しません。
目的のメモリ セクション
モデルのメモリ セクションの 1 つをサブシステムに適用します。
ヒント
入力可能な値は、モデル コンフィギュレーションに対してメモリ セクションを設定するかどうか、どのようにパッケージを設定するかによって異なります。Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder)およびモデル コンフィギュレーション パラメーター: コード生成 (Simulink Coder)を参照してください。
パッケージを使用してモデルを構成していない場合、
モデルから継承
のみが値として表示されます。そうでない場合、このリストには[既定の設定]
と、モデルのパッケージに含まれているすべてのメモリ セクションが表示されます。これらのオプションは、指定されたサブシステム モデルのメモリ セクションの設定を無効にする場合に利用できます。Atomic Subsystem にメモリ セクションを適用する方法の詳細は、Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)を参照してください。
依存関係
このパラメーターは Embedded Coder のライセンスと ERT ベースのシステム ターゲット ファイルを必要とします。
このパラメーターを有効にするには、[関数のパッケージ化] を
[再利用できない関数]
または[再利用可能な関数]
に設定します。
プログラムでの使用
パラメーター: RTWMemSecFuncInitTerm |
型: 文字ベクトル |
値: 'Inherit from model' | 'Default' | 'The memory section of interest' |
既定の設定: 'Inherit from model' |
実行関数のメモリ セクション — メモリ セクションの適用方法を選択
モデルから継承
(既定値) | 既定の設定
| 目的のメモリ セクション
Embedded Coder におけるサブシステムの実行関数へのメモリ セクションの適用方法を選択します。
モデルから継承
ルート モデルのメモリ セクションをサブシステムの関数コードに適用します。
既定の設定
任意のモデルレベルの仕様を無効にして、サブシステムのシステム コードにメモリ セクションを適用しません。
目的のメモリ セクション
モデルのメモリ セクションの 1 つをサブシステムに適用します。
ヒント
入力可能な値は、モデル コンフィギュレーションに対してメモリ セクションを設定するかどうか、どのようにパッケージを設定するかによって異なります。Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder)およびモデル コンフィギュレーション パラメーター: コード生成 (Simulink Coder)を参照してください。
パッケージを使用してモデルを構成していない場合、
モデルから継承
のみが値として表示されます。そうでない場合、このリストには[既定の設定]
と、モデルのパッケージに含まれているすべてのメモリ セクションが表示されます。これらのオプションは、指定されたサブシステム モデルのメモリ セクションの設定を無効にする場合に利用できます。Atomic Subsystem にメモリ セクションを適用する方法の詳細は、Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)を参照してください。
依存関係
このパラメーターは Embedded Coder のライセンスと ERT ベースのシステム ターゲット ファイルを必要とします。
このパラメーターを有効にするには、[関数のパッケージ化] を
[再利用できない関数]
または[再利用可能な関数]
に設定します。
プログラムでの使用
パラメーター: RTWMemSecFuncExecute |
型: 文字ベクトル |
値: 'Inherit from model' | 'Default' | 'The memory section of interest' |
既定の設定: 'Inherit from model' |
定数のメモリ セクション — メモリ セクションの適用方法を選択
モデルから継承
(既定値) | 既定の設定
| 目的のメモリ セクション
Embedded Coder におけるサブシステムの定数へのメモリ セクションの適用方法を選択します。
モデルから継承
ルート モデルのメモリ セクションをサブシステム データに適用します。
既定の設定
任意のモデル レベルの仕様を無効にして、サブシステムのシステムのデータにメモリ セクションを適用しません。
目的のメモリ セクション
モデルのメモリ セクションの 1 つをサブシステムに適用します。
ヒント
指定したメモリ セクションが、生成されたコードの対応するグローバル データ構造体に適用されます。Atomic サブシステムに対して生成されるグローバル データ構造体の基本情報については、標準のデータ構造体 (Simulink Coder)を参照してください。
入力可能な値は、モデル コンフィギュレーションに対してメモリ セクションを設定するかどうか、どのようにパッケージを設定するかによって異なります。Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder)を参照してください。
パッケージを使用してモデルを構成していない場合、
モデルから継承
のみが値として表示されます。そうでない場合、このリストには[既定の設定]
と、モデルのパッケージに含まれているすべてのメモリ セクションが表示されます。これらのオプションは、指定されたサブシステム モデルのメモリ セクションの設定を無効にする場合に利用できます。Atomic Subsystem にメモリ セクションを適用する方法の詳細は、Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)を参照してください。
依存関係
このパラメーターは Embedded Coder のライセンスと ERT ベースのシステム ターゲット ファイルを必要とします。
このパラメーターを有効にするには、[関数のパッケージ化] を
[再利用できない関数]
に設定し、[別々のデータをもつ関数] パラメーターを選択します。
プログラムでの使用
パラメーター: RTWMemSecDataConstants |
型: 文字ベクトル |
値: 'Inherit from model' | 'Default' | 'The memory section of interest' |
既定の設定: 'Inherit from model' |
内部データのメモリ セクション — メモリ セクションの適用方法を選択
モデルから継承
(既定値) | 既定の設定
| 目的のメモリ セクション
Embedded Coder におけるサブシステムの内部データへのメモリ セクションの適用方法を選択します。
モデルから継承
ルート モデルのメモリ セクションをサブシステム データに適用します。
既定の設定
任意のモデル レベルの仕様を無効にして、サブシステムのシステムのデータにメモリ セクションを適用しません。
目的のメモリ セクション
モデルのメモリ セクションの 1 つをサブシステムに適用します。
ヒント
指定したメモリ セクションが、生成されたコードの対応するグローバル データ構造体に適用されます。Atomic サブシステムに対して生成されるグローバル データ構造体の基本情報については、標準のデータ構造体 (Simulink Coder)を参照してください。
入力可能な値は、モデル コンフィギュレーションに対してメモリ セクションを設定するかどうか、どのようにパッケージを設定するかによって異なります。Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder)を参照してください。
パッケージを使用してモデルを構成していない場合、
モデルから継承
のみが値として表示されます。そうでない場合、このリストには[既定の設定]
と、モデルのパッケージに含まれているすべてのメモリ セクションが表示されます。これらのオプションは、指定されたサブシステム モデルのメモリ セクションの設定を無効にする場合に利用できます。Atomic Subsystem にメモリ セクションを適用する方法の詳細は、Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)を参照してください。
依存関係
このパラメーターは Embedded Coder のライセンスと ERT ベースのシステム ターゲット ファイルを必要とします。
このパラメーターを有効にするには、[関数のパッケージ化] を
[再利用できない関数]
に設定し、[別々のデータをもつ関数] パラメーターを選択します。
プログラムでの使用
パラメーター: RTWMemSecDataInternal |
型: 文字ベクトル |
値: 'Inherit from model' | 'Default' | 'The memory section of interest' |
既定の設定: 'Inherit from model' |
パラメーターのメモリ セクション — メモリ セクションの適用方法を選択
モデルから継承
(既定値) | 既定の設定
| 目的のメモリ セクション
Embedded Coder におけるサブシステムのパラメーターへのメモリ セクションの適用方法を選択します。
モデルから継承
ルート モデルのメモリ セクションをサブシステムの関数コードに適用します。
既定の設定
任意のモデル レベルの仕様を無効にして、サブシステムのシステム コードにメモリ セクションを適用しません。
- 目的のメモリ セクション
モデルのメモリ セクションの 1 つをサブシステムに適用します。
ヒント
指定したメモリ セクションが、生成されたコードの対応するグローバル データ構造体に適用されます。Atomic サブシステムに対して生成されるグローバル データ構造体の基本情報については、標準のデータ構造体 (Simulink Coder)を参照してください。
入力可能な値は、モデル コンフィギュレーションに対してメモリ セクションを設定するかどうか、どのようにパッケージを設定するかによって異なります。Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder)を参照してください。
パッケージを使用してモデルを構成していない場合、
モデルから継承
のみが値として表示されます。そうでない場合、このリストには[既定の設定]
と、モデルのパッケージに含まれているすべてのメモリ セクションが表示されます。これらのオプションは、指定されたサブシステム モデルのメモリ セクションの設定を無効にする場合に利用できます。Atomic Subsystem にメモリ セクションを適用する方法の詳細は、Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)を参照してください。
依存関係
このパラメーターは Embedded Coder のライセンスと ERT ベースのシステム ターゲット ファイルを必要とします。
このパラメーターを有効にするには、[関数のパッケージ化] を
[再利用できない関数]
に設定し、[別々のデータをもつ関数] パラメーターを選択します。
プログラムでの使用
パラメーター: RTWMemSecDataParameters |
型: 文字ベクトル |
値: 'Inherit from model' | 'Default' | 'The memory section of interest' |
既定の設定: 'Inherit from model' |
サブシステム参照
サブシステム ファイル名 — 参照サブシステムのファイル名
string スカラー | 文字ベクトル
参照するサブシステム ファイルを指定します。サブシステム参照の詳細については、サブシステム参照を参照してください。
依存関係
このパラメーターにアクセスするには、[サブシステム参照] セクションで [変換] をクリックします。
サブシステムを参照サブシステムに変換する方法の詳細については、既存のサブシステムから参照サブシステムへの変換を参照してください。
プログラムでの使用
パラメーター: ReferencedSubsystem |
型: 文字ベクトル |
値: '' | '<filename>' |
既定の設定: '' |
ブロックの特性
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
実際のコード生成のサポートは、ブロックの実装に依存します。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための Verilog および VHDL のコードを生成します。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加のコンフィギュレーション オプションがあります。
アーキテクチャ | 説明 |
---|---|
Module (既定値) | サブシステムとそのサブシステム内のブロックのコードを生成します。 |
BlackBox | ブラック ボックス インターフェイスを生成します。生成された HDL コードには、サブシステムの入力/出力端子定義のみ含まれます。したがって、モデル内のサブシステムを使用して、手動作成された既存の HDL コードへのインターフェイスを生成できます。 サブシステムのブラックボックス インターフェイスの生成は、クロック信号を使用しない Model ブロック インターフェイスの生成と似ています。 |
| 生成されたコードからサブシステムを削除します。シミュレーションでサブシステムを使用できますが、HDL コード内では "ノーオペレーション" として扱います。 |
[BlackBox]
アーキテクチャについて、端子名をカスタマイズして、外部コンポーネントのインターフェイスの属性を設定できます。ブラック ボックスまたは HDL コシミュレーション インターフェイスのカスタマイズ (HDL Coder)を参照してください。
一般 | |
---|---|
AdaptivePipelining | 合成ツール、ターゲット周波数、乗算器の語長に基づくパイプラインの自動挿入。既定の設定は |
BalanceDelays | あるパスに新しい遅延が導入されたことを検出し、それに一致する遅延を他のパスに挿入します。既定の設定は |
ClockRatePipelining | パイプライン レジスタを低速のデータ レートではなく高速のクロック レートで挿入します。既定の設定は |
ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
DistributedPipelining | パイプライン レジスタの分散、またはレジスタのリタイミング。既定の設定は |
DSPStyle | 乗算器のマッピングの合成属性。既定の設定は |
FlattenHierarchy | 生成された HDL コードからサブシステム階層を削除します。既定の設定は |
InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
SharingFactor | 単一の共有リソースにマッピングされる、機能的に等価なリソースの数。既定の設定は 0 です。リソース共有 (HDL Coder)も参照してください。 |
StreamingFactor | 時間多重化されてシリアルのスカラー データ パスに変換される、パラレル データ パスの数、またはベクトルの数。既定値は 0 であり、パラレル データ パスがそのまま実装されます。ストリーミング (HDL Coder)も参照してください。 |
このブロックが DUT でない場合、[ターゲット仕様] タブのブロック プロパティ設定は無視されます。HDL ワークフロー アドバイザーで、IP コア生成ワークフローを使用すると、これらのターゲット仕様のブロック プロパティ値はモデルに保存されます。hdlset_param
を使用してターゲット仕様のブロック プロパティ値を指定した場合、HDL ワークフロー アドバイザーを開くと、フィールドに対応する値が設定されています。
ターゲット仕様 | |
---|---|
AdditionalTargetInterfaces | 追加のターゲット インターフェイス。文字ベクトルとして指定します。 このブロック プロパティをモデルで保存するには、インターフェイスを追加する DUT 端子に対応する IP コア生成ワークフローの [ターゲット インターフェイスを設定] タスクで [さらに追加] を選択します。これで、[Add New Target Interfaces] ダイアログ ボックスでさらにインターフェイスを追加できます。インターフェイスのタイプ、追加のインターフェイスの数、それぞれの追加のインターフェイスの一意の名前を指定します。 値: 例: |
ProcessorFPGASynchronization | プロセッサ/FPGA 同期モード。文字ベクトルで指定します。 このブロック プロパティをモデルに保存する場合は、IP コア生成ワークフローの [ターゲット インターフェイスを設定] タスクで [プロセッサ/FPGA 同期] を指定します。 値: 例: |
TestPointMapping | このブロック プロパティをモデルに保存するには、IP コア生成ワークフローの [ターゲット インターフェイスを設定] タスクで、テスト ポイント端子のターゲット プラットフォーム インターフェイスへのマッピングを指定します。 値: 例: |
TunableParameterMapping | このブロック プロパティをモデルに保存するには、IP コア生成ワークフローの [ターゲット インターフェイスを設定] タスクで、調整可能なパラメーター端子のターゲット プラットフォーム インターフェイスへのマッピングを指定します。 値: 例: |
AXI4RegisterReadback | このブロック プロパティをモデルに保存するには、IP コア生成ワークフローの [RTL コードと IP コアの生成] タスクにおいて、AXI4 下位書き込みレジスタでの再読み取りを有効にするかどうかを指定します。詳細については、AXI4 スレーブ インターフェイスの生成のための設計のモデル化 (HDL Coder)を参照してください。 値: |
AXI4SlaveIDWidth | このブロック プロパティをモデルに保存するには、IP コア生成ワークフローの [RTL コードと IP コアの生成] タスクで [AXI4 スレーブ ID の幅] 設定を使用して、DUT IP コアを接続する AXI マネージャー インターフェイスの数を指定します。詳細については、DUT AXI4 スレーブ インターフェイスにアクセスするためのリファレンス設計での複数の AXI Master インターフェイスの定義 (HDL Coder)を参照してください。 値: |
AXI4SlavePortToPipelineRegisterRatio | このブロック プロパティをモデルに保存するには、IP コア生成ワークフローの [RTL コードと IP コアの生成] タスクで [AXI4 スレーブの端子とパイプライン レジスタの比率] 設定を使用して、パイプライン レジスタを挿入する AXI4 下位端子の数を指定します。詳細については、AXI4 スレーブ インターフェイスの生成のための設計のモデル化 (HDL Coder)を参照してください。 値: |
GenerateDefaultAXI4Slave | このブロック プロパティをモデルに保存するには、IP コア生成ワークフローの [RTL コードと IP コアの生成] タスクで、既定の AXI4 下位インターフェイスの生成を無効にするかどうかを指定します。 値: |
IPCoreAdditionalFiles | 設計内のブラック ボックスの Verilog® ファイルまたは VHDL® ファイル。各ファイルの絶対パスを指定し、ファイル名はセミコロン (;) で区切ります。 このプロパティは HDL ワークフロー アドバイザーの [追加ソース ファイル] フィールドで設定できます。 値: 例: |
IPCoreName | IP コア名。文字ベクトルとして指定します。 このプロパティは HDL ワークフロー アドバイザーの [IP コア名] フィールドで設定できます。このプロパティを既定値に設定すると、HDL ワークフロー アドバイザーは DUT の名前に基づいて IP コア名を作成します。 値: 例: |
IPCoreVersion | IP コア バージョン数。文字ベクトルで指定します。 このプロパティは、HDL ワークフロー アドバイザーの [IP コア バージョン] フィールドで設定できます。このプロパティを既定値に設定すると、HDL ワークフロー アドバイザーで IP コア バージョンが設定されます。 値: 例: |
IPDataCaptureBufferSize | FPGA Data Capture のバッファー サイズ。文字ベクトルとして指定します。FPGA Data Capture を使用して、FPGA での実行時の設計内の信号を観察します。 バッファー サイズは、128*2^n の値を使用します。ここで n は整数です。既定では、バッファー サイズは 128 (n=0) です。n の最大値は 13 であり、バッファー サイズの最大値が 1048576 (=128*2^13) であることを意味します。 値: 例: |
DUT がマスク サブシステムの場合は、モデルの最上位にある場合にのみコードを生成できます。
詳細については、以下を参照してください。
外部コンポーネントのインターフェイス (HDL Coder)
サブシステムのブラック ボックス インターフェイスの生成 (HDL Coder)
PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。
PLC コード生成をサポートするには、サブシステムが Atomic である必要があります。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
実際のデータ型のサポートは、ブロックの実装に依存します。
バージョン履歴
R2007a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)