exponenta event banner

Параметры конфигурации модели: оптимизация генерации кода

Категория Создание кода (Code Generation) > Оптимизация (Optimization) включает параметры для повышения скорости моделирования моделей и повышения производительности генерируемого кода. Параметры конфигурации модели для улучшения генерируемого кода требуют Simulink ® Coder™ или Embedded Coder ®.

ПараметрОписание

Поведение параметров по умолчанию

Преобразование числовых параметров блока в постоянные встроенные значения в созданном коде.

Пропускать многократно используемые выходы подсистемы как

Укажите способ передачи выходных данных повторно используемой подсистемой.

Удаление инициализации нулевого ввода-вывода на корневом уровне

Укажите, следует ли создавать код инициализации для входов и выходов корневого уровня, имеющих нулевое значение.

Удалить инициализацию внутреннего нуля данных

Укажите, следует ли создавать код инициализации для внутренних рабочих структур, таких как состояния блоков и выходы блоков, равным нулю.

Уровень

Выберите уровень оптимизации, который требуется применить к сгенерированному коду.

Приоритет

Оптимизируйте созданный код для повышения эффективности выполнения, уменьшения потребления ОЗУ или баланса между ними.

Укажите пользовательские оптимизации

Вместо применения уровня оптимизации выберите этот параметр, чтобы выбрать параметры оптимизации в разделе Подробно.

Использовать memcpy для назначения вектора

Оптимизация кода, созданного для назначения вектора, путем замены for петли с memcpy.

Пороговое значение Memcpy (байт)

Укажите минимальный размер массива в байтах, для которого memcpy и memset вызовы функций должны заменять for циклы для векторных назначений в сгенерированном коде.

Включить локальные блочные выходы

Укажите, объявляются ли сигналы блоков локально или глобально.

Повторное использование выходных данных локальных блоков

Укажите, будет ли программное обеспечение Simulink Coder повторно использовать память сигналов.

Исключение лишних локальных переменных (сворачивание выражений)

Сверните вычисления блоков в отдельные выражения.

Повторное использование глобальных блочных выходов

Повторное использование глобальной памяти для блочных выходов.

Обновление по месту для блоков назначения и назначения шины

По возможности повторно используйте входные и выходные переменные блоков «Назначение шины» и «Назначение».

Повторное использование буферов для блоков чтения и записи хранилища данных

Удаление временных буферов для блоков чтения и записи хранилища данных. По возможности используйте непосредственно блок памяти хранилища данных.

Упрощение индексирования массивов

Замена операций умножения в индексах массива при доступе к массивам в цикле.

Упаковать логические данные в битовые поля

Укажите, хранятся ли логические сигналы как однобитовые битовые поля или как логический тип данных.

Спецификатор типа декларатора битфайла

Укажите тип битового поля при выборе параметра конфигурации Pack Boolean data to bitfields.

Повторное использование буферов различных размеров и размеров

Уменьшите потребление памяти за счет повторного использования буферов для хранения данных различных размеров и размеров.

Оптимизация глобального доступа к данным

Выберите глобальную оптимизацию переменных.

Оптимизация порядка работы блока в сгенерированном коде

Изменение порядка операций блока в сгенерированном коде для повышения скорости выполнения кода.

Использовать битсеты для сохранения конфигурации состояния

Используйте битовые наборы, чтобы уменьшить объем памяти, необходимый для хранения переменных конфигурации состояния.

Использовать битовые наборы для хранения булевых данных

Используйте битовые наборы, чтобы уменьшить объем памяти, необходимый для хранения логических данных.

Максимальный размер стека (байт)

Укажите максимальный размер стека в байтах для модели.

Порог разгрузки шлейфа

Укажите минимальный сигнал или ширину параметра, для которого for генерируют цикл.

Оптимизация с использованием указанных минимального и максимального значений

Оптимизируйте сгенерированный код, используя указанные минимальное и максимальное значения для сигналов и параметров в модели.

Максимальное количество аргументов для выходных данных подсистемы

Установите максимальное количество выходов подсистемы для индивидуальной передачи.

Инлайн инвариантные сигналы

Преобразование символьных имен инвариантных сигналов в постоянные значения.

Удаление кода из преобразования с плавающей запятой в целое с насыщением, которое отображает NaN в ноль

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

Используйте memset для инициализации поплавков и двойников до 0.0

Укажите, нужно ли создавать код, который явно инициализирует данные с плавающей запятой до 0.0.

Удаление кода из преобразования с плавающей запятой в целое число, которое переносит значения за пределы диапазона

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

Удалить код из настраиваемых выражений параметров, насыщающих значения вне диапазона

Удалите код упаковки настраиваемых параметров.

Удаление кода, защищающего от арифметических исключений деления

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

Буфер для повторно используемых подсистемУлучшите повторное использование путем вставки буферов на границах повторно используемых подсистем.

Отключить несовместимые оптимизации

Укажите, следует ли отключить оптимизации, несовместимые с инспектором кода Simulink.

Базовый тип склада для автоматически создаваемых перечисленийЗадайте тип и размер хранилища для перечислений, созданных с выводом активного состояния.
Использовать сигнальные метки для управления повторным использованием буфераДля сигналов с той же меткой генератор кода пытается использовать ту же память сигналов.
Создание параллельных циклов дляУкажите, должны ли for-loops в сгенерированном коде реализовываться параллельно для Matlab Function, Matlab System или блока For Each.
Повторное использование памяти сигналовУкажите повторное использование буферов памяти, выделенных для хранения входных и выходных сигналов блоков, тем самым уменьшая требования к памяти программы реального времени
Оператор для представления блоков Bitwise и Logical OperatorУкажите, содержит ли созданный код побитовые или логические операторы или и то и другое.

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