Multiply-Add

Умножьтесь - добавляет объединенная операция

Библиотека

HDL Coder / Операции HDL

Описание

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

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

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

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

Примечание

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

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

Блок 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 (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.

Для получения дополнительной информации смотрите Типы данных Управляющего сигнала (Simulink).

Целочисленный режим округления

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

Настройки

Значение по умолчанию: Floor

Ceiling

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

Convergent

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

Floor

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

Nearest

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

Round

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

Simplest

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

Zero

Номер раундов к нулю. Эквивалентный fix MATLAB функция.

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

Смотрите Специфичные для блока Параметры (Simulink) для получения информации о командной строке.

Смотрите также

Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).

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

Задайте, насыщает ли переполнение.

Настройки

Значение по умолчанию: 'off'

На

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

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

'off'

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

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

Советы

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

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

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

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

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

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

Параметр: SaturateOnIntegerOverflow
Ввод: символьный вектор
Значение: 'off' | 'on'
Значение по умолчанию: 'off'

Алгоритмы

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

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

Введенный в R2015b