Простейший режим округления позволяет уменьшить или устранить необходимость в дополнительном коде округления в сгенерированном коде с помощью комбинации методов. Почти во всех случаях простейший режим округления обеспечивает наиболее эффективный генерируемый код.
Для весьма специализированного случая разделения, отвечающего трем конкретным критериям, более эффективным может быть переход от одного уровня к другому. Этими тремя критериями являются:
Деление с фиксированной точкой/целочисленным знаком
Знаменатель - инвариантная константа
Знаменатель - точная степень двух
В этом случае установите режим округления на пол и Параметры конфигурации модели > Реализация оборудования > Производственное оборудование > Подписанные целочисленные округления деления на параметр, чтобы описать поведение округления целевого объекта производства.
Блок преобразования типа данных передает сигнал с одним типом данных на другой тип данных. Когда блок передает сигнал типу данных с меньшей длиной слова, чем исходный тип данных, точность теряется, и происходит округление. Простейший режим округления автоматически выбирает наилучшее округление для этих случаев на основе следующих правил:
При отливке из одного целого типа данных или типа данных с фиксированной точкой в другой простейший режим округляется в сторону пола.
При переходе от типа данных с плавающей запятой к целому типу данных или типу данных с фиксированной запятой простейший режим округляется до нуля.
Простейший режим округления выбирает наилучшее округление для каждой высокоуровневой арифметической операции. Например, рассмотрим операцию y = u1 × u2/u3, реализованную с использованием блока Product:

Как указано в стандарте C, наиболее эффективным режимом округления для операций умножения всегда является floor. Однако стандарт C не задает режим округления для деления в случаях, когда по крайней мере один из операндов отрицателен. Поэтому наиболее эффективным режимом округления для операции деления со подписанными типами данных может быть floor или zero, в зависимости от цели производства.
Простейший режим округления:
Скругления на пол для всех операций без разделения.
Скругления к нулю или полу для деления в зависимости от настройки параметров конфигурации модели > Реализация оборудования > Производственное оборудование > Скругления целочисленного деления для параметра.
Чтобы получить наиболее эффективный код, необходимо задать параметр Signed integer division rounds to, чтобы указать, равны ли целочисленные целочисленные раунды целочисленным. Большинство производственных целей округляются до нуля для операций целочисленного деления. Обратите внимание, что Simplest округление позволяет округлять «смешанный режим» для таких случаев, так как округляется до пола для умножения и до нуля для деления.
Если параметр Signed integer division rounds to имеет значение Undefinedпростейший режим округления может оказаться не в состоянии создать наиболее эффективный код. Простейший режим округляется до нуля для деления в этом случае, но он не может полагаться на производственный целевой объект для выполнения округления, потому что параметр Undefined. Поэтому для обеспечения округления до нуля необходим дополнительный код округления.
Примечание
Для знакового деления с фиксированной точкой, где знаменателем является инвариантная постоянная степень 2, простейший режим округления не генерирует наиболее эффективный код. В этом случае установите режим округления на пол.
Для арифметики с фиксированной точкой с ненулевым наклоном и смещением простейший режим округления также выбирает наилучшее округление для каждой промежуточной арифметической операции. Например, рассмотрим операцию y = u1/u2, реализованную с использованием блока Product, где u1 и u2 - величины с фиксированной точкой:

Как описано в разделе «Типы данных и масштабирование в цифровом оборудовании», каждая величина фиксированной точки рассчитывается с использованием ее наклона, смещения и сохраненного целого числа. В этом примере операция разделения высокого уровня, заданная блоком, приводит к промежуточным операциям сложения и умножения:
B1S2Q2 + B2
Простейший режим округления выполняет наилучшее округление для каждой из этих операций, высокоуровневое и промежуточное, для получения наиболее эффективного кода. Правила, используемые для выбора соответствующего округления для промежуточных арифметических операций, аналогичны правилам, описанным в разделе Оптимизация округления для высокоуровневых арифметических операций. Опять же, это позволяет округление в смешанном режиме, причем наиболее распространенным случаем является округление по направлению к полу, используемое для сложений, вычитаний и умножений, и округление по направлению к нулю, используемое для делений.
Помните, что для создания наиболее эффективного кода с использованием простейшего режима округления необходимо задать Параметры конфигурации модели > Реализация оборудования > Производственное оборудование > Целочисленные округления целочисленного деления для параметра, описывающего поведение округления целевого объекта производства.
Примечание
Для знакового деления с фиксированной точкой, где знаменателем является инвариантная постоянная степень 2, простейший режим округления не генерирует наиболее эффективный код. В этом случае установите режим округления на пол.