Анализ результатов для Мертвой логики анализа

Этот пример демонстрирует, как изолировать потенциальные причины мертвой логики с помощью sldvexCommonCausesOfDeadLogic модель. Обнаружение мертвой логики находит недостижимые цели в модели, которые заставляют элемент модели оставаться неактивным.

Рабочий процесс

The sldvexCommonCausesOfDeadLogic модель демонстрирует некоторые общие шаблоны, которые часто приводят к мертвой логике в модели. Шесть подсистем в модели представляют другой шаблон. Этими подсистемами являются:

  1. Условное выполнение подсистемы

  2. Короткое замыкание блока логического оператора во время анализа

  3. Значения параметров, рассматриваемые как onstants

  4. Блоки, связанные с библиотекой

  5. Блоки в восходящем направлении

  6. Ограничения на диапазоны сигнала

Раздел 1: Запуск анализа Мертвой логики

Выполните следующие шаги, чтобы запустить мертвый логический анализ:

1: Откройте модель sldvexCommonCausesOfDeadLogic.

open_system('sldvexCommonCausesOfDeadLogic');

2: В области приложений откройте Design Verifier.

3: На вкладке Design Verifier, нажмите Выявление Ошибок Settings.

4: В диалоговом окне Параметров конфигурации, выберите Мертвую логику (частичный).

5: На вкладке Design Verifier, нажмите Обнаружить ошибки проектирования.

Раздел 2: Анализ и анализ результатов

Программа анализирует модель на наличие мертвой логики и отображает результаты в окне Сводных данных результатов. Результаты показывают, что 19 из 44 целей являются мертвой логикой.

Раздел 3: Подсветка результатов анализа в блоках Subsystem

В этом разделе объясняются общие шаблоны, которые приводят к мертвой логике в sldvexCommonCausesOfDeadLogic модель. В окне Сводных данных результатов нажмите на Highlight analysis results on model. Подсистемы с мертвой логикой подсвечиваются красным цветом. Этими подсистемами являются:

  1. ConditionallyExecuteInputs

  2. ShortCircuiting

  3. Параметры

  4. Библиотека

  5. CascadingDeadLogic

  6. ConditionGreaterThan0

Подсистемы в sldvexCommonCausesOfDeadLogic модель объясняют эти шаблоны. Каждый блок подсистемы, выделенный красным цветом, имеет мертвую логику красного цвета. Рассмотрите каждую подсистему один за другим, чтобы проанализировать и осветить результаты.

1. Условное выполнение подсистемы

Если ваша модель включает блоки Switch или Multiport Switch, и параметр выполнения условной входной ветви установлен в Onусловное выполнение часто может вызвать неожиданную мертвую логику. Откройте подсистему ConditionallyExecuteInputs и щелкните блок AND, выделенный красным цветом. В окне Results суммируется мертвая логика.

В этой подсистеме параметр выполнения Условной входной ветви устанавливается в On. Блок AND Logical Оператора выполняется по условию, что вызывает мертвую логику для подсистемы.

2. Короткое замыкание блока логического оператора во время анализа

Simulink Design Verifier обрабатывает логические блоки так, как если бы они были короткозамкнутыми при анализе на мертвую логику. Откройте подсистему ShortCircuiting и щелкните блок AND, выделенный красным цветом. В окне Results суммируется мертвая логика.

В этой модели, если In3 false, программное обеспечение игнорирует третий вход из-за короткого замыкания. Это предлагается как потенциальное объяснение мертвой логики в окне Results.

3. Значения параметров, рассматриваемые как константы

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

Здесь все параметры установлены в нуль. Это вызывает мертвую логику для блока Less Than.

4. Блоки, связанные с библиотекой

Подсистема библиотеки ProtectedDivide имеет защиту для деления на нули. Библиотечные блоки могут быть записаны с защитными условиями, которые являются избыточными в некоторых местах, где они используются. В некоторых случаях это может вызвать мертвую логику. Откройте библиотечный блок и щелкните подсистему ProtectedDivide, выделенную красным цветом. В этом случае входы в подсистему библиотеки ProtectedDivide никогда не могут испытывать деления на нули. Это приводит к смерти логики охраны. Блок Equal показывает мертвую логику. В окне Results суммируется мертвая логика.

Рассмотрите обоснование мертвой логики, которая возникает из этих библиотечных блоков.

5. Блоки в восходящем направлении

Когда конкретный блок имеет мертвую логику, это часто приводит к каскадному эффекту, который заставляет нисходящие блоки также иметь мертвую логику. Откройте подсистему CascadingDeadLogic и щелкните блок Less Than, выделенный красным цветом. В окне Results суммируется мертвая логика.

Мертвая логика в блоке Less Than вызывает мертвую логику в соответствующих нисходящих блоках. Поэтому часто полезно просмотреть вышестоящую мертвую логику, прежде чем рассматривать любую нисходящую мертвую логику.

6. Ограничения на диапазоны сигнала

Блоки Inport корневого уровня с минимальными и максимальными значениями в качестве ограничений и блоки Test Condition в генерации тестов могут вызвать мертвую логику. Например, рассмотрим блок ConditionGreaterThan0 Switch, где второй блок Inport иметь минимальную и максимальную область значений значений 1 и 100, соответственно. Это заставляет блок Switch в этой подсистеме иметь мертвую логику, потому что ограниченная область значений означает, что сигнал всегда будет больше 0.

Раздел 4: Просмотр отчета по анализу

В окне сводных данных результатов щелкните HTML, чтобы просмотреть детальный анализ отчет. В отчете результирующие все результаты мертвой логики в модели.

Чтобы выполнить исчерпывающий анализ для мертвой логики, в Окне параметров конфигурации на панели Поиске ошибок проектирования выберите Выполнить исчерпывающий анализ. Программное обеспечение сохраняет результаты детального анализа в DeadLogic field в файлах данных Simulink Design Verifier. Можно использовать файл данных для дальнейшего анализа результатов.

Похожие темы