Создание скалярного произведения двух векторов
Операции с симуляцией/математикой
Кодер HDL/Математические операции
Блок скалярного произведения генерирует скалярное произведение входных векторов. Скалярный выход, 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 или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Минимальный выходной сигнал не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: OutMin |
| Текст: символьный вектор |
Значения: '[ ]'| скаляр |
По умолчанию: '[ ]' |
Output maximum - Максимальное выходное значение для проверки дальности[] (по умолчанию) | скалярУкажите верхнее значение диапазона вывода, которое Simulink проверяет как конечное, вещественное, двойное, скалярное значение.
Примечание
Если в качестве типа данных для этого блока указан объект шины, не устанавливайте максимальное значение для данных шины в блоке. Simulink игнорирует этот параметр. Вместо этого задайте максимальные значения для элементов шины объекта шины, указанного в качестве типа данных. Для получения информации о параметре Maximum для элемента шины см. Simulink.BusElement.
Simulink использует максимальное значение для выполнения:
Проверка диапазона параметров (см. раздел Задание минимальных и максимальных значений для параметров блока) для некоторых блоков.
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов и Включение проверки диапазона моделирования).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Выходной максимум не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: 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 отображает ошибку в средстве просмотра диагностики.
Программное обеспечение не всегда может оптимизировать эффективность кода и числовую точность одновременно. Если внутреннее правило не соответствует конкретным требованиям к числовой точности или производительности, используйте один из следующих вариантов:
Явно укажите тип выходных данных.
Используйте простой выбор Inherit: Same as input.
Явно укажите тип данных по умолчанию, например fixdt(1,32,16) а затем с помощью инструмента «Фиксированная точка» предложите типы данных для модели. Дополнительные сведения см. в разделе fxptdlg (Конструктор фиксированных точек).
Чтобы указать собственное правило наследования, используйте Inherit: Inherit via back propagation а затем используйте блок распространения типа данных. Примеры использования этого блока доступны в блоке Примеры распространения типов данных библиотеки атрибутов сигнала.
Примечание
Если входные данные имеют тип данных с плавающей запятой, меньший, чем единичная точность, Inherit: Inherit via internal rule зависит от настройки выходного типа Inherit с плавающей запятой, меньшего, чем параметр конфигурации одиночной точности. Типы данных меньше, чем единичная точность, когда количество битов, необходимое для кодирования типа данных, меньше, чем 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. Дополнительные сведения см. в разделе Использование параметров типа выходных данных блокировки (конструктор фиксированных точек).
Параметр блока: 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Укажите, будут ли переполнения насыщаться или переноситься.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

