論理演算のショートサーキット
ショートサーキットは、&& (AND)
演算子および || (OR)
演算子を含む論理式によって示されます。
&&
演算子を含む論理式は、左辺の式が false
と評価されると式全体も false
と評価されます。この場合、左辺の式によって結果が既に確定しているため右辺の式は評価されません。
同様に、||
演算子を含む論理式の場合、左辺の式が true
と評価されると、左辺の式によって結果が確定するため右辺の式は評価されません。このショートサーキットを使用した論理式の評価は、結果が既に確定している場合の不要な評価を回避して実行を最適化するのに役立ちます。
Condition
オブジェクティブおよび MCDC
オブジェクティブのショートサーキットの動作
Condition
オブジェクティブおよび MCDC
オブジェクティブの論理演算子と論理式は、デッド ロジックの解析時やテストの生成時に、ショートサーキットと見なされる場合と見なされない場合があります。次の表は、その違いについての考慮事項をまとめたものです。
Condition
オブジェクティブおよび MCDC
オブジェクティブのショートサーキットについての考慮事項:
モデリング要素 | Condition オブジェクティブおよび MCDC オブジェクティブのショートサーキットについての考慮事項 |
---|---|
論理ブロック (スタンドアロン/カスケード) |
|
Enabled Subsystem と Triggered Subsystem |
|
MATLAB®、Stateflow® (C または MATLAB をアクション言語として使用)、その他の Simulink® ブロック (Fcn、If) |
|
Condition
オブジェクティブのショートサーキットの動作
次の表は、Condition
オブジェクティブについて、CovLogicBlockShortCircuit
パラメーターによる違いをまとめたものです。
CovLogicBlockShortCircuit
パラメーターに基づく Condition
オブジェクティブのショートサーキットについての考慮事項
ブロック | Condition オブジェクティブ | CovLogicBlockShortCircuit が ON の場合の条件式 | CovLogicBlockShortCircuit が OFF の場合の条件式 |
---|---|---|---|
3 つの端子をもつ論理 |
| (in1 && ~in2) | (~in2) |
3 つの端子をもつ論理 |
| (~in1 && ~in2) | (~in2) |
式 (u1 && u2 && u3) を含む MATLAB 関数またはチャート | 'u2' | (u1 && ~u2) | (u1 && ~u2) |
MCDC
オブジェクティブのショートサーキットの動作
次の表は、CovLogicBlockShortCircuit
パラメーターに基づいて変化するオブジェクティブの違いをまとめたものです。
CovLogicBlockShortCircuit
パラメーターに基づく MCDC
オブジェクティブのショートサーキットについての考慮事項:
ブロック | MCDC オブジェクティブ | CovLogicBlockShortCircuit が ON の場合の MCDC の式 | CovLogicBlockShortCircuit が OFF の場合の MCDC の式 |
---|---|---|---|
3 つの端子をもつ論理 | 入力端子 2 が | (in1 && ~in2) | (in1 && ~in2 && in3) |
入力端子 2 が | (in1 && in2 && in3) | (in1 && in2 && in3) | |
式 (u1 && u2 && u3) を含む MATLAB 関数またはチャート | 入力端子 2 が | (in1 && ~in2) | (in1 && ~in2) |
入力端子 2 が | (in1 && in2 && in3) | (in1 && in2 && in2) |
メモ
MCDC
式がカスケードされたロジックから派生している場合、論理ブロックと同様の定義に従います。
詳細については、カスケード論理ブロックの MCDC の解析 (Simulink Coverage)の「MCDC の論理式のショートサーキット」を参照してください。
Condition
と MCDC
の結果に対する CovLogicBlockShortCircuit
パラメーターの影響
場合によっては、CovLogicBlockShortCircuit
パラメーターに基づいて MCDC
オブジェクティブのカバレッジ結果が次のように変わることがあります。
CovLogicBlockShortCircuit
パラメーターが OFF の場合、すべての入力が検討されます。
CovLogicBlockShortCircuit
パラメーターに基づく Condition
オブジェクティブのショートサーキットについての考慮事項:
ブロック | Condition オブジェクティブ | CovLogicBlockShortCircuit が ON の場合の Condition の式 | CovLogicBlockShortCircuit が OFF の場合の Condition の式 |
---|---|---|---|
3 つの端子をもつ論理 |
| (in1 && in2 && ~in2) (デッド ロジック) | (~in2) (アクティブ ロジック) |
CovLogicBlockShortCircuit
パラメーターに基づく MCDC
オブジェクティブのショートサーキットについての考慮事項:
ブロック | MCDC オブジェクティブ | CovLogicBlockShortCircuit が ON の場合の MCDC の式 | CovLogicBlockShortCircuit が OFF の場合の MCDC の式 |
---|---|---|---|
3 つの端子をもつ論理 | 入力端子 2 が | (in1 && ~in2) (アクティブ ロジック) | (in1 && ~in2 && in2) (デッド ロジック) |