Requirements Table
ライブラリ:
Requirements Toolbox
説明
Requirements Table ブロックは、形式的要件をモデル化します。ブロックは、最初に [前提条件] 列の条件を評価します。条件が満たされている場合、ブロックは他のシミュレーション データが [事後条件] 列の条件を満たすかどうかを確認するか、[アクション] 列のアクションを実行します。詳細については、Requirements Table ブロックを使用した形式的要件の作成を参照してください。
[仮定] タブで仮定を定義すれば、モデルの物理的な制限に基づいて要件を制約できます。要件への仮定の追加を参照してください。
このブロックは、Requirements Toolbox™ がある場合にのみ設定できます。
例
Model Dice Game Rules Using a Requirements Table Block
Use a Requirements Table block to model the rules and the game outcome associated with a dice game.
- R2022a 以降
- モデルを開く
電気自動車充電器のロック機構の形式的要件についての解析
Requirements Table ブロックと Simulink® Design Verifier™ を使用して、電気自動車充電ステーションのロック機構の形式的要件を作成、解析、更新する。
- R2022a 以降
- ライブ スクリプトを開く
Define Formal Requirements with a Duration
Define formal requirements that use a duration.
- R2022a 以降
- ライブ スクリプトを開く
Requirements Table ブロックでのプロパティの証明
Requirements Table ブロックと Simulink Design Verifier を使用してモデルのプロパティを証明する。
- R2023a 以降
- モデルを開く
端子
入力
入力データ。実数値のスカラー、ベクトル、または行列として指定します。定義した各入力データには対応する入力端子が含まれます。
依存関係
入力端子を作成するには、[シンボル] ペインでブロックを開き、入力データを作成します。Requirements Table ブロックのデータの定義を参照してください。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | string | fixed point | enumerated | bus
出力
出力データ。実数値のスカラー、ベクトル、または行列として指定します。定義した各出力データには対応する出力端子が含まれます。
依存関係
出力端子を作成するには、[シンボル] ペインでブロックを開き、出力データを作成します。Requirements Table ブロックのデータの定義を参照してください。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | string | fixed point | enumerated | bus
パラメーター
ブロック パラメーターを対話形式で編集するには、次の方法があります。
プロパティ インスペクターを使用する。Simulink ツールストリップから、[シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。
[テーブル プロパティ] ウィンドウを使用する。ブロックを開きます。次に、[シミュレーション] タブの [準備] セクションで [テーブル プロパティ] をクリックします。
メモ
Requirements Table ブロックには、ブロックを右クリックして [ブロック パラメーター (Subsystem)] をクリックすることでアクセスできる Subsystem (Simulink) ブロック パラメーターもあります。ただし、それらのブロック パラメーターを更新することは推奨されません。
Requirements Table ブロックをアクティブにする方法を次の値のいずれかとして指定します。
継承— Simulink モデルからの入力により Requirements Table ブロックがアクティブになります。入力データを定義すると、Requirements Table ブロックは最も速い入力データのレートでサンプリングします。入力データを定義しないでおくと、Requirements Table ブロックは親サブシステムの実行動作で定義されたレートでサンプリングします。
離散— Requirements Table ブロックの [サンプル時間] パラメーターで指定するレートを使用して Requirements Table ブロックをサンプリングします。Requirements Table ブロックは指定されたレートに対応する一定の時間間隔で暗黙的イベントを生成します。モデルの他のブロックは、異なるサンプル時間をもつ可能性があります。
シミュレーション中に Requirements Table ブロックがアクティブになる時間間隔を指定します。既定値は、ブロックが Simulink からサンプル時間を継承することを示します。このプロパティは Simulink で使用するのと同じ形式を使用します。サンプル時間の指定の詳細については、サンプル時間の指定 (Simulink)を参照してください。
Subsystem ブロック パラメーターの [サンプル時間] パラメーターは使用しないでください。代わりに、[テーブル プロパティ] ウィンドウを使用します。
依存関係
このパラメーターを有効にするには、ブロック パラメーター [更新方法] を [離散] に設定します。
Requirements Table ブロックのデータが整数オーバーフローで飽和するかどうかを次の値のいずれかとして指定します。
on— ブロックは整数をワード サイズで許容される最大の正または負の値に設定することにより飽和します。この設定は MATLAB® の動作と一致します。off— ブロックは値をラップします。
詳細については、飽和とラップ (Fixed-Point Designer)を参照してください。
シミュレーション中に次元が変化する入力と出力のデータを Requirements Table ブロックがサポートするかどうかを指定します。このパラメーターが on の場合、出力データで [可変サイズ] プロパティを有効にして可変サイズの出力を定義できます。詳細については、可変サイズを参照してください。
[スコープ] が [出力] に設定されたデータをブロックが前提条件で使用できるかどうかを指定します。このパラメーターを無効にすると、出力データを使用している前提条件のセルが強調表示され、警告アイコン
が表示されます。これは、データが getPrevious の入力引数である場合には該当しません。ただし、getPrevious でタイム ステップにおけるデータの値を返すときに、そのデータが定義されていないと getPrevious から未定義の動作が返されます。
ヒント
前提条件で出力データを使用すると、シミュレーション時に要件で書き込み前の読み取りの問題が発生することがあります。それらの問題を解決するには、要件を順番に指定します。詳細については、Detect Read-Before-Write Issuesおよび形式的要件の評価順序の活用を参照してください。
固定小数点プロパティ
Requirements Table ブロックの既定の fimath オブジェクト プロパティを次の値のいずれかとして指定します。
Same as MATLAB— ブロックは現在の既定のfimathオブジェクトと同じfimathオブジェクト プロパティを使用します。テキスト ボックスがグレー表示され、現在のグローバルfimathオブジェクトが表示されます。Specify other— テキスト ボックス内で独自のfimathオブジェクトを指定します。次の 2 つの方法があります。fimathオブジェクトをテキスト ボックス内で作成する。fimathオブジェクトを MATLAB またはモデル ワークスペース内で作成して、その変数名をテキスト ボックスに入力する。このオプションを使用し、モデルを他のユーザーと共有する場合は、変数をモデル ワークスペースで定義します。
fimathオブジェクトの詳細については、fimath オブジェクトの作成 (Fixed-Point Designer)を参照してください。
ヒント
Requirements Table ブロックの
fimathオブジェクトは、ブロックの内容に対するglobalfimath(Fixed-Point Designer) として動作します。ブロックは、このパラメーターのfimathオブジェクト プロパティを、fiオブジェクトとして取り扱うように選択したブロックに対する固定小数点と整数の入力信号に関連付けます。Requirements Table ブロックでのfiオブジェクトの作成には、追加の考慮事項があります。fiオブジェクトの作成時にfimathオブジェクトがオブジェクトに関連付けられない場合、[要件テーブル fimath] のプロパティに関係なく、fiコンストラクターは既定のfimathオブジェクト設定を使用します。fiオブジェクトの作成後にオブジェクトで操作を実行する場合、オブジェクトは [要件テーブル fimath] のプロパティを採用します。fiコンストラクターでfimathオブジェクトを指定する場合、fiコンストラクターは値を量子化するときにそのfimathオブジェクトを維持します。fiコンストラクターで指定されないfimath設定では、[要件テーブル fimath] で指定されたプロパティが使用されます。
拡張機能
実際のデータ型、または機能のサポートは、ブロックの実装に依存します。
実際のデータ型、または機能のサポートは、ブロックの実装に依存します。
HDL Coder™ は、HDL の実装と合成ロジックのための追加の構成オプションを提供します。
このブロックには 1 つの既定の HDL アーキテクチャがあります。
| ConstMultiplierOptimization | 正準符号付き桁数 (CSD) または因数分解された CSD による最適化。既定の設定は |
| ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
| DistributedPipelining | パイプライン レジスタの分散、またはレジスタのリタイミング。既定の設定は |
| GuardIndexVariables | 配列インデックスを条件付きステートメントからホイストするかどうかを指定します。RAM マッピング、ループ ストリーミング、共有などの特定の最適化を有効にすると、式が配列インデックスから移動します。式の一時変数が作成されるため、シミュレーション中にインデックスが範囲外になるエラーが発生する可能性があります。既定の設定は |
| InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
| InstantiateFunctions | 各関数について VHDL® |
| LoopOptimization | ループを展開、またはストリームするか、最適化しません。既定の設定は |
| MapPersistentVarsToRAM | 永続配列を RAM にマッピングします。既定の設定は |
| OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
| ResetType | リセット ロジックの生成を抑制します。既定の設定は |
| SharingFactor | 単一の共有リソースにマッピングされる、機能的に等価なリソースの数。既定の設定は 0 です。リソース共有 (HDL Coder)も参照してください。 |
ブロックは、速度と面積を最適化するための次の HDL 最適化で使用されます。
速度と面積の最適化
| 最適化 | 説明 |
|---|---|
| 分散型パイプライン方式 (HDL Coder) | "分散型パイプライン"、つまりレジスタのリタイミングとは、設計の既存の遅延を移動して、機能的動作を維持しながらクリティカル パスを低減する速度の最適化です。 |
| リソース共有 (HDL Coder) | "リソース共有" とは、HDL Coder によって行われる面積の最適化の 1 つです。機能的に等価な複数のリソースが特定され、単一のリソースに置き換えられます。 |
| HDL Coder での遅延の均衡化の理解 (HDL Coder) | "遅延の均衡化" は、最適化やブロック実装のオプションによってモデルのクリティカル パスに遅延が導入された場合に、特定のパスで新しい遅延が導入されたことを検出すると、他のパスに同じ遅延を挿入します。 |
| クロックレート パイプライン (HDL Coder) | "クロックレート パイプライン" は、他の速度と面積の最適化でクロック レートでのレイテンシを導入できるようにする HDL Coder の最適化フレームワークです。 |
| 適応パイプライン (HDL Coder) | "適応パイプライン" 最適化は、設計内のブロックにパイプライン レジスタを挿入することによって、達成可能なクロック周波数を向上し、FPGA ボード上の使用面積を削減できる、ブロックとレジスタの特定のパターンまたは組み合わせを作成します。 |
| クリティカル パスの推定 (HDL Coder) | クリティカル パスの可能性が最も高いパスを設計内で簡単に特定するには、"クリティカル パスの推定" を使用します。クリティカル パスの推定は、クリティカル パスを検出する反復的プロセスを高速化します。クリティカル パスの推定で特徴付けられるブロックについては、特徴付けられるブロック (HDL Coder)を参照してください。 |
最適化の適用に際して、ブロックには次の制限があります。
HDL 最適化は Trigger 端子をもつブロックではサポートされません。
実際のデータ型、または機能のサポートは、ブロックの実装に依存します。
バージョン履歴
R2022a で導入Requirements Table ブロックで string データを作成および操作できるようになりました。この string データ型は MATLAB および Simulink の string と互換性があります。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)




