Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

モデル スライサーを使用した整数オーバーフロー設計エラー検出のデバッグ

この例では、モデル スライサーを使用して、Simulink モデルで整数オーバーフロー設計エラーをデバッグする方法を説明します。

必要条件

この例では、次の製品を使用して、設計エラー検出違反のデバッグを説明します。

  • Simulink Design Verifier

  • Simulink Check (モデル スライサー)

1.モデル sldvdemo_design_error_detection を開きます。

open_system('sldvdemo_design_error_detection');

2.[アプリ][Design Verifier] をクリックして、Simulink Design Verifier を開きます。

3.[Design Verifier] タブで [設計エラー検出] をクリックします。Simulink Design Verifier はモデルを解析し、[検証結果の概要] ウィンドウに結果を表示します。

モデルで、不合格となったオブジェクティブがあるサブシステムが強調表示されます。

4.Controller サブシステムを開き、赤色で強調表示されたブロックのいずれかを選択します。

5.[結果] ウィンドウで、[デバッグ] をクリックして、モデル スライサーを使用して違反をデバッグします。または、[Design Verifier] タブで [結果の確認][スライサーを使用したデバッグ] をクリックして、モデル スライサーを使用して違反をデバッグします。

いずれかのエントリ ポイントをデバッグのためクリックすると、モデルに対して以下のセットアップが実行されます。

  • 選択された不合格のオブジェクティブのあるブロックが、モデル スライサーの開始点として追加されます。

  • 不合格となるオブジェクティブの原因となっているスライスについて、モデルが強調表示されます。

  • 設計モデルがシミュレートされ、違反の時点で一時停止します。

6.端子ラベルを検査して、モデルをデバッグし解析します。

ヒント:Sum ブロックの出力信号線をクリックして、ブロックの端子の値のラベルを有効にします。

入力変数の合計が結果として非ゼロの数になることが観察できます。

7.Sum ブロックの入力と出力のデータ型を調べます。

Sum ブロックの出力に、出力のデータ型が格納できる最大値よりも大きな値があります。そのため、この条件は結果として整数オーバーフローとなります。

検証

整数オーバーフローが解決されたことを確認するには、[Design Verifier] タブで [設計エラー検出] をクリックします。解析の完了後に、すべてのオブジェクティブが有効であることがレポートされます。

追加の機能

この例で示しているワークフローを使用して、モデル スライサーを使用して他の設計エラー検出違反をデバッグできます。サポートされている設計エラーを次に示します。

  • ゼロ除算

  • 整数のオーバーフロー

  • 非有限で NaN (非数値) の浮動小数点値

  • 指定された最小値と最大値の違反

  • データストアのアクセス違反

  • 指定したブロック入力範囲違反