Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

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_BlockAnd_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 解析表が含まれていることを確認します。

参考

| |

関連するトピック