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

Категория Code Generation > Optimization включает параметры для улучшения скорости симуляции ваших моделей и улучшения эффективности сгенерированного кода. Моделируйте параметры конфигурации, чтобы улучшить сгенерированный код, требуйте Simulink® Coder™ или Embedded Coder®.

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

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

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

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

Задайте, как переиспользуемая подсистема передает выходы.

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

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

Удалите внутренние данные нули инициализации

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

Уровень

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

Приоритет

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

Задайте пользовательскую оптимизацию

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

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

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

Порог Memcpy (байт)

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

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

Задайте, объявлены ли сигналы блоков локально или глобально.

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

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

Устранение лишних локальных переменных (складывание выражений)

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

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

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

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

При возможности повторно используйте входную и выходную переменные блоков Bus Assignment и Assignment.

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

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

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

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

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

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

Спецификатор типа декларатора битового поля

Задайте тип битового поля при выборе параметра конфигурации Упакуйте логические данные в битовые поля.

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

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

Оптимизируйте доступ к глобальным данным

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

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

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

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

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

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

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

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

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

Циклический порог разворачивания

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

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

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

Maximum number of arguments for subsystem outputs

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

Встроенные инвариантные сигналы

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

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

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

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

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

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

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

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

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

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

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

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

Disable incompatible optimizations

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

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

Похожие темы