Умножьте вход на константу
Simulink / Обычно Используемые Блоки
Simulink / Математические операции
HDL Coder / Обычно Используемые Блоки
HDL Coder / Операции Плавающей точки HDL
HDL Coder / Математические операции
Блок Gain умножает вход на постоянное значение (усиление). Вход и усиление могут каждый быть скаляром, вектором или матрицей.
Вы задаете значение усиления в параметре Gain. Параметр Multiplication позволяет вам задать поэлементное или умножение матриц. Для умножения матриц этот параметр также позволяет вам указать на порядок множимых.
Усиление преобразовано от, удваивается до типа данных, заданного в маске блока оффлайн с помощью раунда-к-самому-близкому и насыщения. Вход и усиление затем умножаются, и результат преобразован в тип выходных данных с помощью заданного округления и режимов переполнения.
Port_1
— Входной сигналБлок Gain принимает действительный или скаляр с комплексным знаком, вектор или матричный вход. Блок Gain поддерживает типы данных с фиксированной точкой. Если вход блока Gain действителен, и усиление является комплексным, выход является комплексным.
Типы данных: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
Port_1
— Введите умноженный на усилениеБлок Gain выводит вход, умноженный на постоянное значение усиления. Когда вход с блоком Gain действителен, и усиление является комплексным, выход является комплексным.
Типы данных: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
Gain
— Значение, на которое можно умножить вход
(значение по умолчанию) | real or complex-valued scalar, vector, or matrix
Задайте значение, на которое можно умножить вход. Усиление может быть действительным или скаляром с комплексным знаком, вектором или матрицей.
Параметры блоков:
Gain |
Ввод: символьный вектор |
Значения:
'1' | real- or complex-valued scalar, vector, or matrix |
Значение по умолчанию:
'1' |
Multiplication
— Задайте режим умноженияElement-wise(K.*u)
(значение по умолчанию) | Matrix(K*u)
| Matrix(u*K)
| Matrix(K*u) (u vector)
Задайте один из этих режимов умножения:
Element-wise(K.*u)
— Каждый элемент входа умножается на каждый элемент усиления. Блок выполняет расширения, при необходимости, так, чтобы вход и усиление имели те же размерности.
Matrix(K*u)
— Вход и усиление умножаются на матрицу с входом как второй операнд.
Matrix(u*K)
— Вход и усиление умножаются на матрицу с входом как первый операнд.
Matrix(K*u) (u vector)
— Вход и усиление являются матрицей, умноженной с входом как второй операнд. Этот режим идентичен Matrix(K*u)
, за исключением того, как определяются размерности.
Предположим тот K
m-by-n
матрица. Matrix(K*u)(u vector)
устанавливает вход на вектор из длины n
и выход к вектору из длины m
. В отличие от этого Matrix(K*u)
распространение использования, чтобы определить размерности для ввода и вывода. Для m-by-n
получите матрицу, вход может распространить к n-by-q
матрица и выход становятся m-by-q
матрица.
Параметр:
Multiplication
|
Ввод: символьный вектор |
Значение:
'Element-wise(K.*u)' | 'Matrix(K*u)' | 'Matrix(u*K)' | 'Matrix(K*u) (u vector)' |
Значение по умолчанию:
'Element-wise(K.*u)'
|
Sample time
— Задайте шаг расчета как значение кроме -1
(значение по умолчанию) | скаляр | векторЗадайте шаг расчета как значение кроме-1. Для получения дополнительной информации см. Настройку времени выборки.
Этот параметр не отображается, если он явным образом не установлен в значение кроме -1
. Чтобы узнать больше, смотрите Блоки, для Которых Не Рекомендуется Шаг расчета.
Параметры блоков:
SampleTime |
Ввод: символьный вектор |
Значения: скаляр или вектор |
Значение по умолчанию:
'-1' |
Output minimum
— Минимальное выходное значение для проверки диапазона[]
(значение по умолчанию) | скалярНижнее значение выходной области значений, что Simulink® проверки.
Simulink использует минимум, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков) для некоторых блоков.
Проверка диапазона симуляции (см., Указывает Диапазоны сигнала и Включает Проверку диапазона Симуляции).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и влиять на результаты некоторых режимов симуляции, такие как SIL или режим external mode. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Embedded Coder).
Примечание
Output minimum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.
Параметры блоков: OutMin |
Ввод: символьный вектор |
Значения: '[ ]' | скаляр |
Значение по умолчанию: '[ ]' |
Output maximum
— Максимальное выходное значение для проверки диапазона[]
(значение по умолчанию) | скалярВерхнее значение выходной области значений это Simulink Check.
Simulink использует максимальное значение, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков) для некоторых блоков.
Проверка диапазона симуляции (см., Указывает Диапазоны сигнала и Включает Проверку диапазона Симуляции).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и влиять на результаты некоторых режимов симуляции, такие как SIL или режим external mode. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Embedded Coder).
Примечание
Output maximum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.
Параметры блоков: OutMax |
Ввод: символьный вектор |
Значения: '[ ]' | скаляр |
Значение по умолчанию: '[ ]' |
Output data type
— Задайте тип выходных данныхInherit: Inherit via internal rule
(значение по умолчанию) | Inherit: Keep MSB
| Inherit: Match scaling
| Inherit: Inherit via back propagation
| Inherit: Same as input
| double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| int64
| uint64
| uint32
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <data type expression>
Выберите тип данных для выхода. Тип может быть наследован, задан непосредственно или описан как объект типа данных, такой как Simulink.NumericType
.
Когда вы выбираете наследованную опцию, блок предоставляет эти поведения:
Inherit: Inherit via internal rule
— Simulink выбирает тип данных, чтобы сбалансировать числовую точность, эффективность и размер сгенерированного кода, при принятии во внимание свойств оборудования целевого процессора. Если вы изменяете настройки целевого процессора, тип данных, выбранный внутренним правилом, может измениться. Например, если блок умножает вход типа int8
усилением int16
и ASIC/FPGA
задан как целенаправленный тип оборудования, типом выходных данных является sfix24
. Если Unspecified (assume 32-bit Generic)
, другими словами, типовой 32-битный микропроцессор, задан как целевой компьютер, типом выходных данных является int32
. Если ни один из размеров слова, обеспеченных целевым микропроцессором, не может вместить выходную область значений, программное обеспечение Simulink отображает ошибку в Диагностическом Средстве просмотра.
Inherit: Keep MSB
– Simulink выбирает тип данных, который обеспечивает полный спектр операции, затем уменьшает точность выхода к размеру, подходящему для оборудования целевого процессора.
Совет
Для более эффективного сгенерированного кода отмените выбор параметра Saturate on integer overflow.
Это правило никогда не производит переполнение.
Inherit: Match scaling
– Simulink выбирает тип данных, масштабирование которого соответствий масштабирование входа вводит. Если полный спектр типа не соответствует на оборудовании целевого процессора, область значений уменьшается, давая к типу, подходящему для оборудования целевого процессора. Это правило может произвести переполнение.
Для программного обеспечения не всегда возможно оптимизировать КПД кода и числовую точность одновременно. Если эти внутренние правила не удовлетворяют ваши определенные потребности для числовой точности или эффективности, используйте одну из следующих опций:
Задайте тип выходных данных явным образом.
Используйте простой выбор Inherit: Same as input
.
Явным образом задайте тип данных по умолчанию, такой как fixdt(1,32,16)
и затем используйте Fixed-Point Tool, чтобы предложить типы данных для вашей модели. Для получения дополнительной информации смотрите fxptdlg
(Fixed-Point Designer).
Чтобы задать ваше собственное правило наследования, используйте Inherit: Inherit via back propagation
и затем используйте блок Data Type Propagation. Примеры того, как использовать этот блок, доступны в библиотеке Signal Attributes блок Data Type Propagation Examples.
Inherit: Inherit via back propagation
— Используйте тип данных ведущего блока.
Inherit: Same as input
— Используйте тип данных входного сигнала.
Когда введенный тип данных с плавающей точкой, меньший, чем одинарная точность, Inherit: Inherit via internal rule
тип выходных данных зависит от установки Того, чтобы наследовать выходной тип с плавающей точкой, меньший, чем параметр конфигурации одинарной точности. Типы данных меньше, чем одинарная точность, когда количество битов должно было закодировать тип данных, меньше, 32 бита должны были закодировать тип данных с одинарной точностью. Например, half
и int16
меньше, чем одинарная точность.
Параметры блоков: OutDataTypeStr |
Ввод: символьный вектор |
Значения: 'Inherit: Inherit via internal rule' | 'Inherit: Keep MSB' | 'Inherit: Match scaling' | 'Inherit: Same as input' | 'Inherit: Inherit via back propagation' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
Значение по умолчанию: 'Inherit: Inherit via internal rule' |
Lock output data type setting against changes by the fixed-point tools
— Препятствуйте тому, чтобы Fixed-Point Tool заменили тип Выходных данныхoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили тип данных Output, который вы задаете на блоке. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).
Параметры блоков:
LockScale |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Integer rounding mode
— Режим Rounding для операций фиксированной точкиFloor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Задайте округляющийся режим для операций фиксированной точки. Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).
Параметры блоков всегда вокруг к самому близкому представимому значению. Чтобы управлять округлением параметров блоков, введите выражение с помощью MATLAB® функция округления в поле маски.
Параметры блоков:
RndMeth |
Ввод: символьный вектор |
Значения:
'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
Значение по умолчанию:
'Floor' |
Saturate on integer overflow
— Метод действия переполненияoff
(значение по умолчанию) | on
Задайте, насыщает ли переполнение или переносится.
Действие | Объяснение | Повлияйте на переполнение | Пример |
---|---|---|---|
Установите этот флажок ( |
Ваша модель имеет возможное переполнение, и вы хотите явную защиту насыщения в сгенерированном коде. |
Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных. |
Максимальное значение, что |
Не устанавливайте этот флажок ( |
Вы хотите оптимизировать КПД своего сгенерированного кода. Вы не хотите чрезмерно определять, как блок обрабатывает сигналы из области значений. Для получения дополнительной информации смотрите Ошибки Диапазона сигнала Поиска и устранения неисправностей. |
Переполнение переносится к соответствующему значению, которое является представимым, по условию вводят. |
Максимальное значение, что |
Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, не только выходу или результату. Обычно, процесс генерации кода может обнаружить, когда переполнение не возможно. В этом случае генератор кода не производит код насыщения.
Параметры блоков: SaturateOnIntegerOverflow |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию: 'off' |
Parameter minimum
— Задайте минимальное значение усиления[]
(значение по умолчанию) | скалярЗадайте минимальное значение усиления. Значением по умолчанию является []
(незаданный). Simulink использует это значение, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков),
Автоматическое масштабирование типов данных с фиксированной точкой
Параметры блоков: ParamMin |
Ввод: символьный вектор |
Значение: скаляр |
Значение по умолчанию: '[ ]' |
Parameter maximum
— Задайте максимальное значение усиления[]
(значение по умолчанию) | скалярЗадайте максимальное значение усиления. Значением по умолчанию является []
(незаданный). Simulink использует это значение, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков),
Автоматическое масштабирование типов данных с фиксированной точкой
Параметры блоков: ParamMax |
Ввод: символьный вектор |
Значение: скаляр |
Значение по умолчанию: '[ ]' |
Parameter data type
— Задайте тип данных параметра УсиленияInherit: Inherit via internal rule
(значение по умолчанию) | Inherit: Same as input
| Inherit: Inherit from 'Gain'
| double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| <data type expression>
Задайте тип данных параметра Gain.
Параметры блоков: ParamDataTypeStr |
Ввод: символьный вектор |
Значения: 'Inherit: Inherit via internal rule | 'Inherit: Same as input' | 'Inherit: Inherit via back propagation' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' int32 | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
Значение по умолчанию: 'Inherit: Inherit via internal rule' |
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Можно использовать настраиваемый параметр в блоке Gain, предназначенном для генерации HDL-кода. Для получения дополнительной информации смотрите, Генерируют Порты DUT для Настраиваемых параметров (HDL Coder).
ConstMultiplierOptimization | Описание |
---|---|
none (Значение по умолчанию) | По умолчанию HDL Coder не выполняет CSD или оптимизацию FCSD. Код, сгенерированный для блока Gain, сохраняет операции множителя. |
csd | Когда вы задаете эту опцию, сгенерированный код уменьшает область, используемую моделью при поддержании или увеличении тактовой частоты, использовании методов канонической цифры со знаком (CSD). CSD заменяет операции множителя на, добавляют и вычитают операции. CSD минимизирует количество операций сложения, требуемых для постоянного умножения путем представления двоичных чисел минимальным количеством ненулевых цифр. |
fcsd | Эта опция использует учтенный CSD (FCSD) методы, которые заменяют операции множителя на сдвиг и добавляют/вычитают операции на определенных факторах операндов. Эти факторы являются обычно главными, но могут также быть номером близко к степени 2, который способствует сокращению области. Можно достигнуть большего сокращения области с FCSD за счет уменьшения тактовой частоты. |
auto | Когда вы задаете эту опцию, кодер выбирает между CSD или оптимизацией FCSD. Кодер выбирает оптимизацию, которая дает к большей части эффективного внедрения области, на основе количества требуемых сумматоров. Когда вы задаете |
Общий | |
---|---|
ConstMultiplierOptimization | Каноническая цифра со знаком (CSD) или учтенная оптимизация CSD. Значением по умолчанию является |
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
DSPStyle | Синтез приписывает для отображения множителя. Значением по умолчанию является |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
Примечание
Для определенных значений параметра Gain нативная плавающая точка реализует алгоритм по-другому вместо того, чтобы использовать множители. Например, если вы устанавливаете параметр Gain на 1
, сгенерированная модель использует провод, чтобы передать вход выходу. Если вы устанавливаете параметр Gain на -1
, сгенерированная модель показывает блок Unary Minus, который инвертирует полярность входного сигнала. Эта реализация уменьшает задержку и использование ресурсов на целевой платформе.
Нативная плавающая точка | |
---|---|
HandleDenormals | Задайте, хотите ли вы, чтобы HDL Coder вставил дополнительную логику, чтобы обработать нестандартные числа в вашем проекте. Нестандартные числа являются числами, которые имеют величины меньше, чем самое маленькое число с плавающей запятой, которое может быть представлено без начальных нулей в мантиссе. Значением по умолчанию является |
LatencyStrategy | Задайте, сопоставить ли блоки в вашем проекте к |
NFPCustomLatency | Чтобы задать значение, установите LatencyStrategy на |
MantissaMultiplyStrategy | Задайте, как реализовать операцию умножения мантиссы во время генерации кода. При помощи различных настроек можно управлять использованием DSP на целевом устройстве FPGA. Значением по умолчанию является |
Этот блок поддерживает генерацию кода для комплексных сигналов.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.