Умножение входного сигнала на константу
Simulink/Часто используемые блоки
Операции с симуляцией/математикой
Кодер HDL/обычно используемые блоки
Кодер HDL/Операции с плавающей точкой HDL
Кодер HDL/Математические операции
Блок усиления умножает входной сигнал на постоянное значение (усиление). Каждый из входных сигналов и коэффициентов усиления может быть скаляром, вектором или матрицей.
Значение коэффициента усиления задается в параметре «Коэффициент усиления». Параметр Умножение позволяет задать умножение по элементам или матричное умножение. Для матричного умножения этот параметр также позволяет указать порядок умножения.
Коэффициент усиления преобразуется из двойных в тип данных, указанный в маске блока в автономном режиме, с использованием округления до ближайшего и насыщения. Затем происходит умножение входного сигнала и коэффициента усиления, и результат преобразуется в выходной тип данных с использованием указанных режимов округления и переполнения.
Port_1 - Входной сигналБлок усиления принимает действительный или комплексный скалярный, векторный или матричный ввод. Блок усиления поддерживает фиксированные типы данных. Если вход блока усиления является реальным, а коэффициент усиления - комплексным, то выходной сигнал является комплексным.
Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point
Port_1 - Вход, умноженный на коэффициент усиленияБлок усиления выводит входной сигнал, умноженный на постоянное значение усиления. Когда вход блока усиления является реальным, а коэффициент усиления - комплексным, выходной сигнал является комплексным.
Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point
Gain - Значение, на которое умножается входной сигнал1 (по умолчанию) | 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. Дополнительные сведения см. в разделе Указание времени образца.
Этот параметр не отображается, если для него явно не задано значение, отличное от -1. Дополнительные сведения см. в разделе Блоки, для которых образец времени не рекомендуется.
Параметр блока:
SampleTime |
| Текст: символьный вектор |
| Значения: скаляр или вектор |
По умолчанию:
'-1' |
Output minimum - Минимальное выходное значение для проверки дальности[] (по умолчанию) | скалярМеньшее значение диапазона вывода, которое проверяет Simulink ®.
Simulink использует минимум для выполнения:
Проверка диапазона параметров (см. раздел Задание минимальных и максимальных значений для параметров блока) для некоторых блоков.
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов и Включение проверки диапазона моделирования).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Минимальный выходной сигнал не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: OutMin |
| Текст: символьный вектор |
Значения: '[ ]'| скаляр |
По умолчанию: '[ ]' |
Output maximum - Максимальное выходное значение для проверки дальности[] (по умолчанию) | скалярВерхнее значение диапазона вывода, которое проверяет Simulink.
Simulink использует максимальное значение для выполнения:
Проверка диапазона параметров (см. раздел Задание минимальных и максимальных значений для параметров блока) для некоторых блоков.
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов и Включение проверки диапазона моделирования).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Выходной максимум не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: 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) а затем с помощью инструмента «Фиксированная точка» предложите типы данных для модели. Дополнительные сведения см. в разделе fxptdlg (Конструктор фиксированных точек).
Чтобы указать собственное правило наследования, используйте Inherit: Inherit via back propagation а затем используйте блок распространения типа данных. Примеры использования этого блока доступны в блоке Примеры распространения типов данных библиотеки атрибутов сигнала.
Inherit: Inherit via back propagation - Использовать тип данных управляющего блока.
Inherit: Same as input - Использовать тип данных входного сигнала.
Если входные данные имеют тип данных с плавающей запятой, меньший, чем единичная точность, Inherit: Inherit via internal rule тип выходных данных зависит от настройки выходного типа Inherit с плавающей запятой, меньшего, чем параметр конфигурации с одинарной точностью. Типы данных меньше, чем единичная точность, когда количество битов, необходимое для кодирования типа данных, меньше, чем 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 - Запретить переопределение типа выходных данных инструментами с фиксированной точкойoff (по умолчанию) | onВыберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли тип данных «Вывод», указанный в блоке. Дополнительные сведения см. в разделе Использование параметров типа выходных данных блокировки (конструктор фиксированных точек).
Параметр блока:
LockScale |
| Текст: символьный вектор |
Значения:
'off' | 'on' |
По умолчанию:
'off' |
Integer rounding mode - Режим округления для операций с фиксированной точкойFloor (по умолчанию) | Ceiling | Convergent | Nearest | Round | Simplest | ZeroУкажите режим округления для операций с фиксированной точкой. Дополнительные сведения см. в разделе Округление (конструктор фиксированных точек).
Параметры блока всегда округляются до ближайшего представимого значения. Для управления округлением параметра блока введите выражение с помощью функции округления 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 - Укажите тип данных параметра GainInherit: 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 и синтезированную логику.
Можно использовать настраиваемый параметр в блоке усиления, предназначенном для генерации кода HDL. Дополнительные сведения см. в разделе Создание портов DUT для настраиваемых параметров (кодер HDL).
ConstMultiplierOptimization | Описание |
|---|---|
none(По умолчанию) | По умолчанию кодер HDL не выполняет оптимизацию CSD или FCSD. Код, генерируемый для блока усиления, сохраняет операции умножителя. |
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 вставлять дополнительную логику для обработки денормальных чисел в конструкцию. Денормальные числа - это числа, значения которых меньше наименьшего числа с плавающей запятой, которое можно представить без ведущих нулей в мантиссе. Значение по умолчанию: |
| LatencyStrategy | Укажите, следует ли сопоставлять блоки в проекте |
| NFPCustomLatency | Чтобы задать значение, задайте для параметра LatencyStrategy значение |
| MantissaMultiplyStrategy | Укажите способ выполнения операции умножения мантиссы во время генерации кода. С помощью различных настроек можно управлять использованием DSP на целевом устройстве FPGA. Значение по умолчанию: |
Этот блок поддерживает генерацию кода для сложных сигналов.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.


