Выполните умножение - накапливают операцию на входных параметрах
HDL Coder / Операции HDL / Умножаются - Накапливаются
Блок Multiply - Accumulate выполняет эту операцию на входных параметрах a
и b
и смещение c
, чтобы вычислить результат dataOut
.
dataOut = sum(a.* b) + c
По умолчанию блок действует в векторном режиме. Входные параметры a
и b
могут быть скалярами или векторами. Значение смещения по умолчанию, c
, равно нулю, и блок вычисляет скалярное произведение входных параметров a
и b
. Можно задать ненулевое значение для c
с помощью Dialog
или Input port
как Источник. Блок добавляет это смещение к скалярному произведению a
и b
. Операция умножения является полной точностью независимо от установки типа Выходных данных. Тип Выходных данных и Целочисленные настройки режима округления применяются к операции сложения.
При помощи установки Operation Mode можно задать потоковые режимы операции для блока Multiply - Accumulate. Для генерации HDL-кода, когда вы используете режим работы потоковой передачи, вводят скалярные значения к блоку. Блок имеет два потоковых режима: Streaming - using Start and End ports
и Streaming - using Number of Samples
. Когда вы выбираете эти потоковые режимы, можно задать управляющие сигналы использовать с режимом. Управляющие сигналы задают, когда запустить и закончить накопление, и когда вывод допустим.
a
Входной сигналvector
| matrix
| array
| bus
Порт, чтобы предоставить входной параметр блоку.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
b
Входной сигналscalar
| vector
| matrix
| array
| bus
Порт, чтобы предоставить входной параметр блоку.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| булевская переменная
| фиксированная точка
| перечисленный
| шина
c
Сигнал смещенияscalar
| vector
| matrix
| array
| bus
Порт, чтобы обеспечить смещение сигнализирует к блоку. Блок добавляет это смещение к входным параметрам. Убедитесь, что данные сигнала смещения вводят соответствия то из скалярного произведения входных параметров.
Чтобы включить этот порт, установите Источник на Input port
.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
startIn
— Запустите управляющего сигнала накопленияscalar
| vector
| matrix
| array
| bus
Порт, чтобы обеспечить управляющий сигнал запустить накопление. Рекомендуется, чтобы вы использовали сигнал типа данных boolean
, как введено для порта. Начинать получать накопленное выходное значение из сигнала выходных данных, и запускаться и сигналы validIn должно быть высоким. Сигнал выходных данных производит накопленный результат следующего такта.
Включить этот порт, Режим операции присвоения к Streaming - using Start and End Ports
.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
validIn
— Допустимый сигнал элемента управления вводомscalar
| vector
| matrix
| array
| bus
Порт, чтобы обеспечить управляющий сигнал указать, что входной сигнал допустим для накопления. Рекомендуется, чтобы вы использовали сигнал типа данных boolean
, как введено для порта. Чтобы начать получать накопленное выходное значение из сигнала выходных данных, и validIn и запускать сигналы должен быть высоким. Сигнал выходных данных производит накопленный результат следующего такта. Сигнал validIn имеет более высокий приоритет, чем запуск и окончание сигналов.
Включить этот порт, Режим операции присвоения к Streaming - using Start and End Ports
или Streaming - using Number of Samples
.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
endIn
— Конец управляющего сигнала накопленияscalar
| vector
| matrix
| array
| bus
Порт, чтобы обеспечить управляющий сигнал указать на конец накопления. Можно использовать запуск и окончание сигналов с сигналом validIn указать на кадр, который содержит накопленный вывод.
Включить этот порт, Режим операции присвоения к Streaming - using Start and End Ports
и затем выбрать порты ввода и вывода End.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
dataOut
— Выходной сигналscalar
| vector
| matrix
| array
| bus
Порт, который генерирует выходные данные от умножения - накапливает операцию. По умолчанию блок использует режим работы Vector
и вычисляет скалярное произведение входных сигналов и добавляет смещение, чтобы привести к результату. Если вы задаете потоковый режим операции как Режим работы, значение сигнала выходных данных зависит от управляющих сигналов, что вы обеспечиваете. Тип данных выходного сигнала - то же самое как тот из аккумулятора.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
startOut
— Запустите сигнала элемента управления выводом накопленияscalar
| vector
| matrix
| array
| bus
Порт, который генерирует сигнал элемента управления выводом указать на запуск накопления. Когда и validIn и запуск высоки, сигнал startOut становится высоким за следующий такт. Такт, в котором startOut становится высоким, указывает на запуск кадра и что сигнал выходных данных начал производить допустимый накопленный вывод.
Включить этот порт, Режим операции присвоения к Streaming - using Start and End Ports
и затем выбрать выходной порт Start.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
validOut
— Допустимый сигнал элемента управления выводомscalar
| vector
| matrix
| array
| bus
Порт, который генерирует сигнал элемента управления выводом указать, что сигнал выходных данных допустим. Когда сигнал validIn становится высоким, сигнал validOut становится высоким за следующий такт и указывает, что выходные данные допустимы.
Включить этот порт, Режим операции присвоения к Streaming - using Start and End Ports
и затем выбрать Valid output port.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
endOut
— Конец сигнала элемента управления выводом накопленияscalar
| vector
| matrix
| array
| bus
Порт, который генерирует сигнал элемента управления выводом указать на конец накопления. Можно использовать такты между тем, когда сигнал startOut становится высоким и когда сигнал endOut становится высоким, чтобы указать на допустимый кадр, который содержит накопленный вывод.
Включить этот порт, Режим операции присвоения к Streaming - using Start and End Ports
и затем выбрать порты ввода и вывода End.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
countOut
— Считайте сигнал элемента управления выводомscalar
| vector
| matrix
| array
| bus
Порт, который генерирует сигнал элемента управления выводом указать на количество выборок, чтобы накопиться. Значение этого сигнала увеличивается от 1
до значения, которое вы задаете для Количества Выборок. Пока сигнал validIn высок, инкременты countOut 1
каждый такт.
Включить этот порт, Режим операции присвоения к Streaming - using Number of Samples
и затем выбрать выходной порт Count.
Типы данных: единственный
| удваиваются
| int8
| int16
| int32
| uint8
| uint16
| uint32
| фиксированная точка
Operation Mode
— Режим накопления входных параметров'Vector'
(значение по умолчанию) | 'Streaming - using Start and End Ports'
| 'Streaming - using Number of Samples'
Можно задать Режим работы как:
Vector
: можно использовать скаляры или векторы как входные параметры. Блок выполняет скалярное произведение входных параметров u1
и u2
и добавляет, смещают k
, чтобы привести к результату.
Streaming - using Start and End Ports
: Используйте скалярные входные параметры для генерации HDL-кода. В этом режиме можно использовать запуск и конечные управляющие сигналы определить, когда запустить и остановить накопление. Выходные данные допустимы, когда validIn высок.
Streaming - using Number of Samples
: Используйте скалярные входные параметры для генерации HDL-кода. В этом режиме можно задать Количество Выборок и использовать управляющий сигнал подсчета определить, когда запустить и остановить накопление. Выходные данные допустимы, когда validIn высок.
Блочный параметр:
opMode |
Ввод: символьный вектор |
Значение:
'Вектор' | 'Передающий потоком - использование Запускается и Оконечные порты' | 'Передающий потоком - использование Количества Выборок |
Значение по умолчанию:
'Vector' |
Bias
— Сместите, чтобы добавить к входному скалярному произведению{'0.0'}
(значение по умолчанию)Можно задать смещение с:
Источник как Dialog
. Затем задайте Значение.
Источник как Input port
. Эта установка создает внешний входной порт c
, чтобы ввести сигнал смещения к блоку.
Блочный параметр:
initValueSetting |
Ввод: символьный вектор |
Значение:
'Диалоговое окно' | 'Входной порт' |
Значение по умолчанию:
диалоговое окно |
Если вы устанавливаете Источник как Dialog
, можно задать начальное значение при помощи установки initValue2
.
Блочный параметр:
initValue2 |
Ввод: символьный вектор |
Значение: Целое число, больше, чем или равный нулю |
Значение по умолчанию:
'0.0' |
Number of Samples
— Количество выборок допустимого накопленного выходного сигнала{'2'}
(значение по умолчанию)Можно задать Количество Выборок, чтобы задать кадр, содержащий количество выборок допустимых накопленных выходных выходных данных.
Включить этот порт, Режим операции присвоения к Streaming - using Number of Samples
.
Блочный параметр:
numSamples |
Ввод: символьный вектор |
Значение: Целое число, больше, чем или равный нулю |
Значение по умолчанию:
'2' |
Output data type
— Тип данных блока выводитсяInherit: Inherit via back propagation
(значение по умолчанию)Установите тип выходных данных на:
Правило, которое наследовало тип данных, такой как Inherit: Same as first input
.
Встроенный тип данных, такой как single
или int16
.
Имя объекта типа данных. например, объект Simulink.NumericType
.
Выражение, которое оценивает к допустимому типу данных, например, fixdt(1,16,0)
Потоковые режимы не делают suuport Inherit: Inherit via internal rule
. Когда вы устанавливаете тип Выходных данных, можно использовать Ассистент Типа данных. Чтобы отобразить ассистент, нажмите ассистент типа данных Show
.
Блочный параметр:
OutDataTypeStr |
Ввод: символьный вектор |
Значение по умолчанию:
{'Inherit: Inherit via internal rule'} |
Чтобы видеть возможные значения, которые можно задать для этого параметра, смотрите Специфичные для блока Параметры.
Integer rounding mode
— Rounding для операций фиксированной точкиFloor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Задайте округляющееся действие как:
Ceiling
Округляет положительные и отрицательные числа к положительной бесконечности. Эквивалентный
функции MATLAB® ceil
.
Convergent
Номер раундов к самому близкому представимому значению. Если связь происходит, раунды к самому близкому даже целое число. Эквивалентный Фиксированной точке Designer™ функция convergent
.
Пол
Округляет положительные и отрицательные числа к отрицательной бесконечности. Эквивалентный функции floor
MATLAB.
Самый близкий
Округляет номер к самому близкому представимому значению. Если связь происходит, раунды к положительной бесконечности. Эквивалентный Fixed-Point Designer функция nearest
.
Вокруг
Номер раундов к самому близкому представимому значению. Если связь происходит, округляет положительные числа к положительной бесконечности и округляет отрицательные числа к отрицательной бесконечности. Эквивалентный Fixed-Point Designer функция round
.
Simplest
Принимает решение между округлением к полу и округлением к нулю сгенерировать округление кода, который максимально эффективен.
Zero
Номер раундов к нулю. Эквивалентный функции fix
MATLAB.
Блочный параметр:
RndMeth |
Ввод: символьный вектор |
Значение по умолчанию:
пол |
Чтобы видеть возможные значения, которые можно задать для этого параметра, смотрите Специфичные для блока Параметры.
Valid output port
— Управляйте генерацией validOut выходного портаУправляйте генерацией validOut выходного порта. Этот порт указывает, допустимы ли выходные данные.
Не отображает validOut выходной порт.
Отобразите validOut выходной порт.
Включить этот порт, Режим операции присвоения к Streaming - using Number of Samples
или Streaming - using Start and End Ports
.
Блочный параметр:
validOut |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
End input and output ports
— Управляйте генерацией окончания входного порта и endOut выходного портаУправляйте генерацией конечного входного порта и endOut выходного порта. Порты указывают на конец кадра, содержащего допустимое накопление вывод.
Не отображает конечный входной порт и endOut выходной порт.
Отобразите конечный входной порт и endOut выходной порт.
Включить этот порт, Режим операции присвоения к Streaming - using Start and End Ports
.
Блочный параметр:
endInandOut |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Start output port
— Управляйте генерацией startOut выходного портаУправляйте генерацией startOut выходного порта. Этот порт генерирует сигнал startOut, который указывает на запуск кадра, содержащего допустимый накопленный вывод.
Не отображает startOut выходной порт.
Отобразите startOut выходной порт.
Включить этот порт, Режим операции присвоения к Streaming - using Start and End Ports
.
Блочный параметр:
startOut |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Count output port
— Управляйте генерацией countOut выходного портаУправляйте генерацией countOut выходного порта. Этот порт генерирует счетчик, который указывает на кадр, содержащий допустимые выборки.
Не отображает countOut выходной порт.
Отобразите countOut выходной порт.
Включить этот порт, Режим операции присвоения к Streaming - using Number of Samples
.
Блочный параметр:
countOut |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Типы данных |
|
'SampleTime' |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Можно использовать установку Operation Mode для блока, чтобы задать потоковый режим операции. Когда вы выбираете Streaming - using Start and End Ports
, вы видите, что три дополнительных настройки включили по умолчанию. Настройки включают:
Допустимый выходной порт
Закончите порты ввода и вывода
Запустите выходной порт
Рекомендуется, чтобы вы уехали, эти настройки включили. Когда вы применяете настройки, три дополнительных входных порта и три дополнительных выходных порта появляются:
Входные порты | Выходные порты |
---|---|
запуск | startOut |
validIn | validOut |
окончание | endOut |
Эта фигура иллюстрирует потоковый режим операции с помощью запуска и оконечных портов. В этом примере значением смещения является 8
.
Первоначально, когда validIn является низким, выходные данные нуль. Во время 1s
и запуск и validIn становятся высокими. Поэтому validOut становится высоким за следующий такт, и выходные данные начинает производить допустимое накопление вывод. Во время накопления выходные данные принимают значения a и b от предыдущего такта. Например, во время t = 2s
, выходные данные = 1*1 + 8 = 9.
Чтобы продолжить накопление, сделайте запуск низко в следующем такте и поддержите validIn на высоком уровне. выходные данные продолжают накапливать входные параметры, пока validIn не становится низким. На каждом временном шаге выходные данные вычисляют продукт входных параметров от предыдущего такта и суммируют результат со значением выходных данных от предыдущего такта. Например, во время t = 3 с, выходные данные = 2*2 + 9 = 13.
Когда validIn становится низким, выходные данные содержит выходное значение, как замечено во время t = 5 с. В t = 5 с, окончание и validIn высоки. Поэтому endOut становится высоким за следующий такт, который указывает на конец кадра. Поэтому кадр между t = 2 с (когда startOut высок) и t = 6 с (когда endOut высок) указывает на кадр, содержащий допустимый вывод.
При запуске validIn, и окончание оба высоки в то же время, только выходные данные, соответствующие тем входным параметрам, накапливаются, как замечено в t = 8 с. Если запуск высок для нескольких тактов, и если validIn высок, аккумулятор сбрасывается в каждом такте, как замечено в t = 10-е и t = 11. Накопление продолжается в t = 12.
Можно использовать установку Operation Mode для блока, чтобы задать потоковый режим операции. Когда вы выбираете Streaming - using Number of Samples
, вы видите, что две дополнительных настройки включили по умолчанию. Настройки включают:
Допустимый выходной порт
Считайте выходной порт
Рекомендуется, чтобы вы уехали, эти настройки включили. Когда вы применяете настройки, у вас есть дополнительный входной порт validIn, и появляются три дополнительных выходных порта:
endOut
validOut
countOut
Эта фигура иллюстрирует потоковый режим операции с помощью количества выборок. В этом примере значением смещения является 8
, и Количеством Выборок является 5
.
Первоначально, когда validIn является низким, выходные данные 0
, и countOut является 1
. Во время 1s
, validIn становится высоким. Поэтому validOut становится высоким за следующий такт, и выходные данные начинают производить допустимое накопление вывод. Во время накопления выходные данные принимают значения a и b от предыдущего такта. Например, во время t = 2s
, выходные данные = 1*1 = 1
. инкременты countOut 1
в следующем такте, то есть, в t = 3s
, countOut становится 2
.
Чтобы продолжить накопление, поддержите validIn на высоком уровне. выходные данные продолжают накапливать входные параметры, пока validIn не становится низким. Когда пять допустимых выходных параметров получены из выходных данных, countOut становится 5
, и endOut становится высоким, который указывает на конец кадра. Поэтому время между тем, когда countOut является 1
и когда countOut равняется пяти, указывает на кадр, содержащий допустимый вывод.
Счетчик аккумулятора теперь сбрасывается, и countOut начинает с 1
. Когда validIn становится высоким снова, выходные данные начинает накапливать новое множество значений, и countOut начинает постепенно увеличивать для каждого допустимые выходные данные.
Если имеют HDL установленный Coder™, можно сопоставить сгенерированный HDL-код для блока эффективно к срезам DSP на FPGA, когда вы синтезируете свой дизайн. Для получения дополнительной информации смотрите, Умножаются - Накапливаются.
Можно использовать типы данных, упомянутые выше для портов, когда вы моделируете блок. Чтобы сгенерировать HDL-код, убедитесь, что вы используете входные параметры vector
и сигнал смещения scalar
. При использовании single
или типы данных double
для входных параметров, блок не может сопоставить сгенерированный код со срезами DSP на FPGA.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.