Общие шаблоны моделирования, которые приводят к мертвой логике в модели, включают:
Когда вы выполняете анализ поиска ошибок проектирования, Simulink® Design Verifier™ сообщает о частых причинах мертвой логики в окне Results.
Simulink Design Verifier обрабатывает логические блоки, как будто они закорачивают при анализе для мертвой логики.
Например, в этой модели, если In2
является ложным, программное обеспечение игнорирует третий вход из-за замыкания накоротко. Окно Results перечисляет этот порт как мертвую логику. Смотрите, что Логические операции Закорачивают.
Если ваша модель состоит из Switch или блоков Multiport Switch, и параметр Conditional input branch execution устанавливается на On
, условное выполнение может часто вызывать неожиданную мертвую логику.
Рассмотрите эту модель в качестве примера, где параметр Conditional input branch execution устанавливается на On
. Блок AND Logical Operator условно выполняется, который вызывает мертвую логику для блока. Для получения дополнительной информации смотрите, что вход Conditional переходит выполнение.
Если ваша модель содержит параметры, Simulink Design Verifier обрабатывает значения как константы по умолчанию. Эта мертвая логика причины силы в модели. В этих случаях полагайте, что конфигурирование этих параметров настраивается во время анализа. Для получения дальнейшей информации смотрите Встроенные Параметры.
Например, рассмотрите эту модель, где все параметры обнуляются. Эти настройки вызывают мертвую логику для блока Less Than.
Когда конкретный блок имеет мертвую логику, это часто приводит к каскадному эффекту, который заставляет нисходящие блоки иметь мертвую логику.
Рассмотрите вышеупомянутую модель в качестве примера. Мертвая логика в блоке Less Than вызывает мертвую логику в соответствующих нисходящих блоках. Поэтому часто полезно рассмотреть восходящую мертвую логику прежде, чем рассмотреть любую нисходящую мертвую логику.
Библиотечные блоки могут быть записаны с защитными условиями, которые избыточны в некоторых местоположениях, где они используются. В некоторых случаях это может вызвать мертвую логику. Смотрите Исключают и Выравнивают по ширине Цели для Поиска ошибок проектирования.
Inport блоки корневого уровня с минимальными и максимальными значениями как ограничения и блоки Test Condition в генерации тестов могут вызвать мертвую логику. Например, рассмотрите блок switch ConditionGreaterThan0, где второй Inport блок имеет минимальную и максимальную область значений 1 и 100, соответственно. Это заставляет блок switch в этой подсистеме иметь мертвую логику.