Чтобы обнаружить скрытые ошибки проектирования в вашей модели в начале процесса верификации, используйте анализ поиска ошибок проектирования. Это руководство показов, как выполнить поиск ошибок проектирования анализ, просмотреть результаты анализа, а затем исправить идентифицированные ошибки проектирования.
Допустим, контроллер, который имеет три входа датчика: SensorA
, SensorB
, и SensorC
. Работа алгоритма регулятора осуществляется согласно уравнению:
Алгоритм моделируется как:
Для выполнения поиска ошибок проектирования анализа:
Откройте модель sldvexControllerIntegerOverflow.
На вкладке Design Verifier, в разделе Mode, выберите Design Error Detection.
Нажмите Error Detection Settings. В диалоговом окне Параметры конфигурации на панели Design Verifier > Design Error Detection выберите проверки, которые необходимо выполнить.
Чтобы выполнить поиск ошибок проектирования анализ, на вкладке Design Verifier нажмите Detect Design Errors. Программа анализирует модель на ошибки проектирования и отображает результаты в окне Сводка результатов (Results Summary). Результаты показывают, что три из шести целей были сфальсифицированы.
Можно просмотреть результаты анализа, подсвечивая результаты на модели и просматривая отчет анализа.
На вкладке Design Verifier, в разделе Review Results, нажмите Highlight in Model.
Элементы модели, выделенные красным цветом, являются целями, которые привели к ошибкам. Можно реплицировать ошибку, симулируя тест.
Выберите Sum блок. В окне Результатов Inspector отображаются целочисленное переполнение цели блока Sum.
Чтобы отлажить целочисленное переполнение ошибку, нажмите View test case. Модель тестовой обвязки и Signal Builder блок открываются.
Когда входное значение SensorA
является 96
и SensorB
является 160
Выходные выходы блока Sum переполнены. Тип данных аккумулятора блока Sum устанавливается на неправильное целое значение uint8
это приводит к ошибкам переполнения и делению на нули ошибок на нисходящем блоке Divide.
Чтобы просмотреть HTML, в Review Results, нажмите HTML Report. В разделе Поиск Ошибок Проектирования Targets перечислены цели каждых элементов модели и их описание.
В модели руководства анализ поиска ошибок проектирования обнаружил целочисленное переполнение и деление на нули ошибок в модели. Ошибки были вызваны несоответствием целочисленного типа данных.
Чтобы исправить ошибки, измените тип данных Accumulator на uint16
для обработки области значений возможных значений сигналов. Выберите блок Sum и установите Accumulator data type значение uint16. Когда вы перезапускаете анализ поиска ошибок проектирования, окно Сводных данных результатов сообщает, что 6/6
цели действительны. Когда вы симулируете тест для Sum, замечайте, что тест устраняет ошибку.
Проект верификатора: Поиск ошибок проектирования | Цели Главы состояния