Шаблоны модели, которые могут привести к отказам верификации кода

Избыточные шаблоны моделирования

Модели с избыточными шаблонами моделирования приводят верификацию кода к сбою. При генерации кода Simulink® Coder™ устраняет избыточную функциональность блока. Если это устранение приводит к структурному изменению сгенерированного кода, инспекционных сбоев. Например:

  • Блоки switch с входными параметрами от тех же локальных сигналов. switch 3 блок устраняется в сгенерированном коде. Блоки switch switch 1 и switch 2 не устраняются, потому что они соединяются с корневым импортом. Simulink Code Inspector™ сообщает, что он как Не пройдено проверяет.

  • Блок чтения хранилища данных, соединенный с хранилищем данных, пишет блок. Оба Data Store Read и Data Store Write1 блоки устраняются в сгенерированном коде. Simulink Code Inspector сообщает о состоянии Warning.

  • Минимакс блокируется с входными параметрами от тех же локальных сигналов. Блок сравнивает две эквивалентных стоимости, приводящие к if оператор с пустым телом в сгенерированном коде. Simulink Code Inspector сообщает, что он как Не пройдено проверяет.

Блоки с постоянными неличными Выходными параметрами

Если ваша модель содержит блоки с постоянными неличными выходными параметрами, модель может привести верификацию кода к сбою. Результат является Отказавшим, чтобы проверить.

В этом примере, Math Function блок фиксируется в бесконечности. Несмотря на то, что Simulink Coder генерирует код для модели, сбоев верификации кода.

Подсистемы действия с Выходом, не связанным, чтобы объединить блоки

Если ваша модель содержит подсистемы действия, и выходные параметры не соединяются с одним блоком слияния, модель может привести верификацию кода к сбою. Результат является Отказавшим, чтобы проверить.

В этом примере существует две подсистемы действия, каждый с выходом, соединенным с блоком усиления. Сбои верификации кода.

Чтобы передать верификацию кода, рассмотрите соединение выхода всех подсистем действия с одним блоком слияния, как показано ниже. Simulink Code Inspector может затем проверить модель.

Многопортовые блоки switch с входом от того же локального сигнала

Ваша модель может привести верификацию кода к сбою, если это содержит многопортовый блок switch с обоими:

  • Больше чем один вход от того же локального сигнала.

  • Выведите к локальному сигналу.

Сгенерированный код может иметь операторов case оператора switch с, проваливаются операторы выбора. Результат является Отказавшим, чтобы проверить.

В этом примере, Multiport Switch блокируйте входные порты 1, и 3 соединяются с тем же локальным сигналом. Сбои верификации кода.

Модели, инициировавшие оптимизацию кода, чтобы избежать копий данных

Модели с Assignment, Selector или 2D-inport блоками Multiport Switch могут инициировать оптимизацию, которая изменяет выбор индекса, чтобы избежать копий данных в сгенерированном коде. В этом примере, OneBased Многопортовый блок switch имеет два импорта. Gain5 блок умножает сигнал импортировать 2:

Во время генерации кода оптимизация перемещает Gain5 избегать данных копирует в сгенерированном коде:

Сбои верификации кода.

Блок модели - ссылки с отключенным выходным портом

Если ваша модель отвечает каждому из следующих условий, верификации кода сбоя силы модели:

  • Модель содержит блок модели - ссылки.

  • Блок модели - ссылки имеет один выходной порт, который отключен.

  • Управление прототипом функции используется в блоке модели - ссылки, приводящем к порту возврата, заданному как отключенный выходной порт.

Похожие темы