exponenta event banner

Умножение-сложение

Комбинированная операция умножения-сложения

Библиотека

Кодер ЛПВП/операции ЛПВП

  • Multiply-Add block

Описание

Блок умножения-сложения вычисляет произведение первых двух входов, a и b, и добавляет результат к третьему входу, c. Входами могут быть векторы или скаляры.

Операция умножения имеет полную точность независимо от типа вывода. Параметры Режим округления целых чисел, Тип выходных данных и Насыщение при переполнении целых чисел применяются только к операции сложения.

Блок Multiply-Add используется для отображения комбинированной операции умножения-сложения или умножения-вычитания на блок DSP в целевом оборудовании. Можно выбрать параметр «Функция» в диалоговом окне «Параметры блока» для блока «Умножение-Добавление».

Для сопоставления с блоком DSP укажите SynthesisTool свойство для модели. При создании кода HDL для модели HDL Coder™ настраивает операцию умножения-сложения таким образом, чтобы инструмент синтеза мог сопоставляться с блоком DSP.

Примечание

Некоторые блоки DSP не имеют возможности многократного добавления. Информацию о том, имеет ли аппаратное обеспечение возможность многократного добавления, см. в документации по аппаратному обеспечению.

Поддержка типов данных

Блок Multiply-Add принимает и выводит сигналы числового типа, поддерживаемого Simulink ®, включая типы данных с фиксированной точкой.

С блоком «Умножение-Добавление» можно использовать матричные типы данных. При использовании этих типов размеры портов входных данных a и b должно совпадать. Например, в MATLAB ® можно выполнить следующие операции матрицы:

a = [1 2; 3 4];
b = [5; 6];
c = 7;

c + (a.*b)
ans =

    12    17
    25    31
Однако при выполнении этого умножения в среде Simulink появляется ошибка: Error in port widths or dimensions.

См. раздел Типы данных, поддерживаемые Simulink.

Параметры

Функция

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

Настройки

По умолчанию: c+(a.*b)

Для функции можно установить значение:

  • c+(a.*b)

  • c-(a.*b)

  • (a.*b)-c

Тип выходных данных

Укажите тип выходных данных.

Настройки

По умолчанию: Inherit: Inherit via internal rule

Задайте тип выходных данных:

  • Правило, наследующее тип данных, например: Inherit: Same as input

  • Выражение, которое вычисляет допустимый тип данных, например: fixdt([],16,0)

Нажмите кнопку Show data type assistant, чтобы открыть диалоговое окно Data Type Assistant, в котором можно задать параметр Output data type.

Дополнительные сведения см. в разделе Типы данных управляющих сигналов.

Режим округления целых чисел

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

Настройки

По умолчанию: Floor

Ceiling

Округляет положительные и отрицательные числа в сторону положительной бесконечности. Эквивалентно MATLAB ceil функция.

Convergent

Округляет число до ближайшего представимого значения. Если возникает связь, округляется до ближайшего чётного целого числа. Эквивалентно Designer™ фиксированной точки convergent функция.

Floor

Округляет положительные и отрицательные числа в сторону отрицательной бесконечности. Эквивалентно MATLAB floor функция.

Nearest

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

Round

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

Simplest

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

Zero

Округляет число до нуля. Эквивалентно MATLAB fix функция.

Информация командной строки

Сведения о командной строке см. в разделе Параметры, зависящие от блока.

См. также

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

Насыщение при целочисленном переполнении

Укажите, будут ли переполнения насыщаться.

Настройки

По умолчанию: Откл.

На

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

Например, переполнение, связанное со значащим 8-битным целым числом, может насытиться до -128 или 127.

Прочь

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

Например, число 130 не помещается в знаковое 8-битовое целое число и переносится в -126.

Совет
  • Рекомендуется установить этот флажок, если модель имеет возможное переполнение и требуется явная защита от насыщения в сгенерированном коде.

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

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

  • Если этот флажок установлен, насыщение применяется ко всем внутренним операциям блока, а не только к выводу или результату.

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

Информация командной строки
Параметр: SaturateOnIntegerOverflow
Текст: символьный вектор
Значение: 'off' | 'on'
По умолчанию: 'off'

Алгоритмы

развернуть все

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен в R2015b