exponenta event banner

Обнаружение ошибок переполнения целых чисел

В этом примере показано, как обнаруживать целочисленные ошибки переполнения в модели с помощью анализа обнаружения ошибок конструкции. Simulink ® Design Verifier™ определяет конструкции модели, которые могут привести к переполнению целых чисел, а затем либо доказывает, что переполнение целых чисел не может произойти во время моделирования, либо создает тестовые примеры, демонстрирующие ошибку переполнения целых чисел.

В этом примере выполняется анализ обнаружения ошибок конструкции для модели, а затем создается отчет, показывающий, какие целочисленные цели переполнения были допустимыми, а какие привели к ошибкам.

Шаг 1: Открытие модели

В командной строке введите:

open_system('sldvdemo_design_error_detection');

Шаг 2: Выполнение анализа обнаружения ошибок проекта

Модель предварительно настроена с включенной опцией Переполнение целых чисел (Integer overflow) в диалоговом окне Параметры конфигурации (Configuration Parameters) на панели Проверка конструкции (Design Verifier) > Обнаружение ошибок конструкции (Design Error Detection).

На вкладке «Проверка проекта» выберите «Обнаружение ошибок проекта».

Программа анализирует модель на наличие ошибок переполнения целых чисел. После завершения анализа в окне Сводка результатов (Results Summary) сообщается, что пять целей действительны, а две цели фальсифицированы.

Шаг 3: Анализ результатов анализа

Чтобы выделить результаты анализа на модели, в окне Сводка результатов (Results Summary) щелкните Подсветить результаты анализа на модели (Highlight analysis results on model). Действительные цели выделены зеленым цветом, а сфальсифицированные цели - красным.

Дважды щелкните значок Controller подсистема. Щелкните на блоке «Сумма», выделенном красным цветом. В окне Инспектор результатов (Results Inspector) отображаются целочисленные цели переполнения.

Чтобы просмотреть тестовый случай, который приводит к ошибке, щелкните Просмотр тестового случая. Откроется модель электрического жгута, и блок Построитель сигналов отобразит тестовый пример, который приведет к ошибке.

Шаг 4: Исправление ошибки переполнения целых чисел

Для обоих блоков Sum, которые создали переполнение целого числа, включите параметр Saturate on integer overflow. Также можно дважды нажать кнопку «Переключить насыщение при переполнении» в редакторе Simulink Editor.

Чтобы убедиться в том, что ошибка переполнения целочисленных значений устранена, на вкладке «Проверка проекта» нажмите кнопку «Обнаружить ошибки проекта». После завершения анализа программное обеспечение сообщает, что все цели действительны.

Связанные темы