Сгенерируйте скалярный продукт двух векторов
Simulink/Математические операции
HDL-кодер/математические операции
Блок Dot Product генерирует скалярный продукт входных векторов. Скалярный выход, y
, равно MATLAB® операция
y = sum(conj(u1) .* u2 )
где u1
и u2
представляют входные векторы. Входами могут быть векторы, векторы-столбцы (матрицы с одним столбцом) или скаляры. Если оба входов являются векторами или векторами-столбцами, они должны быть одной и той же длиной. Если u1
и u2
являются векторы-столбцы, блок выводит эквивалент выражения MATLAB u1'*u2
.
Элементами входных векторов могут быть реальные или комплексные сигналы. Тип сигнала (комплексный или действительный) выхода зависит от типов сигналов входов.
Вход 1 | Вход 2 | Выход |
---|---|---|
реальный |
реальный |
реальный |
реальный |
комплекс |
комплекс |
комплекс |
реальный |
комплекс |
комплекс |
комплекс |
комплекс |
Port_1
- Первый входной сигнал операндаСигнал, представляющий первый операнд, вычислению продукта.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Port_2
- Второй входной сигнал операндаСигнал, представляющий второй операнд, вычислению точечного продукта.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Port_1
- выходной сигнал точечного произведенияВыходной сигнал, полученный из вычисления скалярного продукта двух входных сигналов.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Require all inputs to have the same data type
- Требовать, чтобы все входы имели совпадающий тип данныхon
(по умолчанию) | off
Снимите этот флажок, чтобы все входы имели различные типы данных.
Параметры блоков: InputSameDT |
Тип: Вектор символов |
Значения: 'on' | 'off' |
По умолчанию: 'on' |
Output minimum
- Минимальное выходное значение для проверки области значений[]
(по умолчанию) | скаляромБолее низкое значение выходной области значений, который Simulink® проверки.
Simulink использует минимум для выполнения:
Проверка области значений параметров (см. «Задание минимальных и максимальных значений для параметров блоков») для некоторых блоков.
Проверка области значений симуляции (см. «Задание диапазонов сигнала» и «Включение проверки области значений симуляции»).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов симуляции, таких как SIL или режим external mode. Для получения дополнительной информации смотрите Оптимизировать используя указанные минимальное и максимальное значения (Embedded Coder).
Примечание
Output minimum не насыщает или не зажимает фактический выходной сигнал. Вместо этого используйте блок Saturation.
Параметры блоков: OutMin |
Тип: Вектор символов |
Значения: '[ ]' | скаляр |
По умолчанию: '[ ]' |
Output maximum
- Максимальное выходное значение для проверки области значений[]
(по умолчанию) | скаляромЗадайте верхнее значение выходной области значений, который Simulink проверяет как конечное, вещественное, двойное, скалярное значение.
Примечание
Если вы задаете объект шины в качестве типа данных для этого блока, не устанавливайте максимальное значение для данных шины на блоке. Simulink игнорирует эту настройку. Вместо этого установите максимальные значения для элементов шины объекта шины, заданные как тип данных. Для получения информации о параметре Maximum для элемента шины смотрите Simulink.BusElement
.
Simulink использует максимальное значение для выполнения:
Проверка области значений параметров (см. «Задание минимальных и максимальных значений для параметров блоков») для некоторых блоков.
Проверка области значений симуляции (см. «Задание диапазонов сигнала» и «Включение проверки области значений симуляции»).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов симуляции, таких как SIL или режим external mode. Для получения дополнительной информации смотрите Оптимизировать используя указанные минимальное и максимальное значения (Embedded Coder).
Примечание
Output maximum не насыщает или не зажимает фактический выходной сигнал. Вместо этого используйте блок Saturation.
Параметры блоков: OutMax |
Тип: Вектор символов |
Значения: скаляр |
По умолчанию: '[ ]' |
Output data type
- Задайте тип выходных данныхInherit: Inherit via internal rule
(по умолчанию) | Inherit: Inherit via back propagation
| Inherit: Same as first input
| 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>
Выберите тип данных для выхода. Тип может быть унаследован, задан непосредственно или выражен как объект типа данных, такой как Simulink.NumericType
. Для получения дополнительной информации см. «Типы данных сигналов управления».
Когда вы выбираете унаследованную опцию, блок ведет себя следующим образом:
Inherit: Inherit via internal rule
- Simulink выбирает тип данных, чтобы сбалансировать числовую точность, эффективность и размер сгенерированного кода, принимая во внимание свойства встроенного целевого оборудования. Если вы измените настройки целевого процессора, тип данных, выбранный внутренним правилом, может измениться. Для примера, если блок умножает вход типа int8
усилением int16
и ASIC/FPGA
задается как тип целевого оборудования, тип выходных данных sfix24
. Если Unspecified (assume 32-bit Generic)
другими словами, типовой 32-разрядный микропроцессор, задается как целевой компьютер, тип выходных данных int32
. Если ни одна из размеров слова, обеспечиваемых целевым микропроцессором, не может включать выходную область значений, программное обеспечение Simulink отображает ошибку в Diagnostic Viewer.
Не всегда программное обеспечение может оптимизировать эффективность кода и числовую точность одновременно. Если внутреннее правило не соответствует вашим конкретным потребностям в числовой точности или эффективности, используйте одну из следующих опций:
Явным образом задайте тип выходных данных.
Используйте простой выбор 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 internal rule
зависит от значения выходного типа наследования с плавающей точкой, меньшего, чем параметр конфигурации с одинарной точностью. Типы данных меньше одной точности, когда количество бит, необходимых для кодирования типа данных, меньше 32 битов, необходимых для кодирования типа данных с одной точностью. Для примера, half
и int16
меньше, чем одинарная точность.
Inherit: Inherit via back propagation
- Используйте тип данных ведущего блока.
Inherit: Same as first input
- Используйте тип данных первого входного сигнала.
Параметры блоков: OutDataTypeStr |
Тип: Вектор символов |
Значения: 'Inherit: Inherit via internal rule | 'Inherit: Same as first input' | 'Inherit: Inherit via back propagation' | '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>' |
По умолчанию: 'Inherit: Inherit via internal rule' |
Lock output data type setting against changes by the fixed-point tools
- Предотвратить переопределение типов данных инструментами с фиксированной точкойoff
(по умолчанию) | on
Выберите, чтобы заблокировать настройку типа выходных данных этого блока от изменений с помощью Fixed-Point Tool и Fixed-Point Advisor. Для получения дополнительной информации смотрите Использование настройки типа выходных данных блокировки (Fixed-Point Designer).
Параметры блоков: LockScale |
Тип: Вектор символов |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Integer rounding mode
- Режим округления для операций с фиксированной точкой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
Укажите, будут ли переполнения насыщаться или переноситься.
off
- Переполнения переходят к соответствующему значению, которое может представлять тип данных.
Для примера число 130 не помещается в 8-разрядное целое число со знаком и переносами к -126.
on
- Переполнения достигают минимального или максимального значения, которое может представлять тип данных.
Для примера переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщаться до -128 или 127.
Совет
Рассмотрите выбор этого флажка, когда ваша модель имеет возможное переполнение, и вы хотите явную защиту от насыщения в сгенерированном коде.
Рассмотрите снятие этого флажка, когда вы хотите оптимизировать эффективность вашего сгенерированного кода.
Снятие этого флажка также помогает вам избежать переопределения того, как блок обрабатывает сигналы вне области допустимого. Для получения дополнительной информации смотрите Поиск и устранение ошибок диапазона сигнала.
Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, а не только к выходу или результату.
В целом процесс генерации кода может обнаружить, когда переполнение невозможно. В этом случае генератор кода не производит код насыщения.
Параметры блоков: SaturateOnIntegerOverflow |
Тип: Вектор символов |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Архитектура | Описание |
---|---|
Linear (по умолчанию) | Генерирует линейную цепь сумматоров для вычисления суммы продуктов. |
Tree | Генерирует древовидную структуру сумматоров для вычисления суммы продуктов. |
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.