Multiply-Add

Умножение-добавление комбинированной операции

Библиотека

Операции HDL-кодера/HDL

  • Multiply-Add block

Описание

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

Операция умножения является полной точностью, независимо от типа выхода. Настройки Integer rounding mode, Output data type и Saturate on integer overflow применяются только к операции сложения.

Используйте блок Multiply-Add, чтобы сопоставить комбинированную операцию умножения-сложения или умножения-вычитания с модулем DSP в вашем целевом компьютере. Можно выбрать настройку Function в диалоговом окне Параметров блоков для блока Multiply-Add.

Чтобы сопоставить с модулем DSP, задайте SynthesisTool свойство для вашей модели. Когда вы генерируете HDL-код для вашей модели, HDL- Coder™ конфигурирует операцию multiply-add, чтобы инструмент синтеза мог сопоставить с модулем DSP.

Примечание

Некоторые модули DSP не имеют возможности умножения-добавления. Чтобы увидеть, имеет ли ваше оборудование возможность multiply-add, обратитесь к документации по оборудованию.

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

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

Можно использовать матричные типы данных с блоком Multiply-Add. Когда вы используете эти типы, размерности портов входов 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

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

Floor

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

Nearest

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

Round

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

Simplest

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

Zero

Число округлений к нулю. Эквивалентно MATLAB fix функция.

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

Информацию о командной строке см. в разделе Параметры.

См. также

Для получения дополнительной информации см. Раздел Округление.

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

Укажите, насыщаются ли переполнения.

Настройки

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

На

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

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

Прочь

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

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

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

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

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

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

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

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

Алгоритмы

расширить все

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Введенный в R2015b