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

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

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

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

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

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

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

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

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

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

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

Уровень

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

Приоритет

Оптимизируйте сгенерированный код для увеличенного КПД выполнения, уменьшил потребление RAM или баланс между двумя.

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

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

Используйте memcpy в векторном присвоении

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

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

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

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

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

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

Задайте, сигнализируют ли повторные использования программного обеспечения Simulink Coder о памяти.

Устраните лишние локальные переменные (Сворачивание выражения)

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

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

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

Выполните оперативные обновления для блоков Присвоения Присвоения и Шины

Снова используйте переменные ввода и вывода блоков Присвоения и Присвоения Шины, если это возможно.

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

Демонтируйте временные буферы для блоков Записи Чтения и Хранилища данных Хранилища данных. Используйте Блок памяти Хранилища данных непосредственно, если это возможно.

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

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

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

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

Оператор объявления битового поля вводит спецификатор

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

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

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

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

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

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

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

Используйте bitsets в хранении настройки состояния

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

Используйте bitsets в том, что он хранил булевы данные

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

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

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

Порог развертывания цикла

Задайте минимальный сигнал или ширину параметра для который 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Задайте, должны ли циклы for в сгенерированном коде быть реализацией параллельно для Matlab Function, Matlab System или блока For Each.
Повторное использование памятиЗадайте повторное использование буферов памяти, выделенных, чтобы сохранить сигналы ввода и вывода блока, таким образом, уменьшающие требования к памяти программы в реальном времени

Похожие темы