このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Logical Operator のカスケード パターン
この例では、改良条件判定カバレッジ (MCDC) メトリクスのモデル カバレッジ解析の目的で Simulink® Coverage™ が Logical Operator ブロックのカスケードを識別する際の基準について説明します。
モデルを開く
モデル例には、Logical Operator ブロックのカスケードのパターンが含まれています。
改良条件判定カバレッジ (MCDC) 用にモデルを解析すると、Simulink Coverage は Logical Operator ブロックのカスケードを検索します。ロジック カスケードは、Logical Operator ブロックが他の Logical Operator ブロックの下流に存在している場合に生じます。Simulink Coverage はロジック カスケードを識別する際、各ブロックを個別に解析するのではなく、ブロックの組み合わせによって表される全体的な式を解析します。Logical Operator ブロックがロジック カスケードの一部でない場合、個別のブロックの MCDC 結果のみが得られます。
以下のすべての条件が満たされている場合にのみ、Logical Operator ブロックはロジック カスケードの一部として MCDC の対象となります。
ブロックの入出力信号がすべてスカラーである。
ブロックの演算が XOR/NXOR でない。
ブロックに複数の入力信号がある (その演算が NOT でない場合)。
入力信号が別の非バーチャル ブロックに分岐していない。
[実行 (カバレッジ)] をクリックしてモデルをシミュレートします。シミュレーションが完了すると、[カバレッジの詳細] ペインが開きます。
最初のカスケードの表示
And_Block
という名前の And ブロックをクリックします。
カバレッジ レポートに 3 つの条件が表示されます。各条件には 2 つの可能な結果があり、1 つの結果は達成されています。ただし、カバレッジ レポートには And_Block
の MCDC データは表示されていません。これは、And_Block
がロジック カスケードの一部であるためです。代わりに、レポート内の MCDC 行に、ロジック カスケードのルートを表すブロック Not_Block
へのリンクがあります。リンク [Not_Block
を参照してください] をクリックします。
Not_Block
のカバレッジ レポートに、2 つの可能な結果をもつ 1 つの条件が表示されています。この MCDC の表に、And_Block
および Not_Block
のロジック カスケードの結合された出力のカバレッジ結果が表示されています。And_Block
は、各入力がブール値である論理演算 C1 && C2 && C3
を表しています。Not_Block
が And_Block
を否定しているため、Simulink Coverage は MCDC 表で全体的な式 ~(C1 && C2 && C3)
を解析します。シミュレーション時に発生した条件結果は 1 つのみであったため、このカスケードでは達成された MCDC 結果はありません。
2 番目のカスケードの表示
Nor_Block
という名前の Logical Operator ブロックをクリックします。
And_Block
と同様に、カバレッジ レポートに Nor_Block
の 1 つの達成された結果をもつ条件の表が表示されていますが、MCDC 解析表は表示されていません。レポートの MCDC 行に、Masked Subsystem
という名前のサブシステム内にある Masked_AND_Block
へのリンクがあります。モデルで Masked Subsystem
をクリックします。
2 番目のカスケードへの入力信号でもある最初のカスケードの出力信号は分岐しているため、2 番目のカスケードは最初のカスケードとは別個のものです。信号がバーチャル ブロックにのみ分岐している場合、MCDC カスケードは中断されることなく継続します。信号が非バーチャル ブロックに分岐している場合、Simulink Coverage はロジックを 2 つの別個の論理カスケードとして扱います。
Masked Subsystem
は、Masked_AND_Block
という名前の Logical Operator ブロックを含むサブシステムです。サブシステムへの最初の入力は Nor_Block
の出力へのバーチャル接続です。Nor_Block
は論理式 ~(C1 |
C2)
を表し、Masked_AND_Block
がその式の出力を 3 番目のブール値 C3
と結合しています。これにより、カスケードされた論理式 ~(C1 |
C2) && C3
が得られます。MCDC 表には、カスケードされたロジックを表す式も表示されています。
サポートされていない論理演算
最上位モデルで、Or_Block
という名前の Logical Operator ブロックをクリックします。
カバレッジ レポートに条件の表とそのブロックの MCDC 表が表示されています。XOR_Block
をクリックします。
今回は、カバレッジ レポートに両方のブロックの MCDC 解析表が表示されています。これは、カスケードされた MCDC 解析では XOR 演算および NXOR 演算はサポートされていないためです。結果として、Simulink Coverage はこれらのブロックの MCDC を個別に解析します。
Vector_AND_Block
という名前の Logical Operator ブロックをクリックして、カスケードされた MCDC 解析ではベクトル入力がサポートされていないため、そのブロックのレポートにも MCDC 解析表が含まれていることを確認します。