Добавьте или вычтите входные параметры
Simulink / Математические операции
HDL Coder / Операции Плавающей точки HDL
HDL Coder / Математические операции
Блок Sum выполняет сложение или вычитание на его входных параметрах. Добавление, Вычтите, Сумма Элементов, и блоки Суммы являются идентичными блоками. Этот блок может добавить или вычесть скаляр, вектор или матричные входные параметры. Это может также свернуть элементы сигнала и выполнить суммирование.
Вы задаете операции блока параметром List of signs с плюс (+
минус, -
), и распорная деталь (|
).
Количество +
и -
символы равняются количеству входных параметров. Например, +-+
требует трех входных параметров. Блок вычитает второй (средний) вход из первого (главного) входа, и затем добавляет третье (нижняя часть) вход.
Символ распорной детали создает дополнительное пространство между портами на значке блока.
При выполнении только сложения, можно использовать численное значение, равное количеству входных параметров.
Если только существует только один входной порт, один +
или -
добавляет или вычитает элементы по всем размерностям или в заданном измерении.
Блок Sum сначала преобразует тип входных данных в свой тип данных аккумулятора, затем выполняет заданные операции. Блок преобразует результат в свой тип выходных данных с помощью заданного округления и режимов переполнения.
Выходное вычисление для блока Sum зависит от количества входных параметров блока и знака входных портов:
Если блок Sum имеет... | И... | Формула для выходного вычисления... | Где... |
---|---|---|---|
Один входной порт |
Знак входного порта + |
y = e [0] + e[1] + e[2]... + e [m] |
|
Знак входного порта – |
y = 0.0 – e [0] – e[1] – e[2]... – e [m] | ||
Два или больше входных порта |
Все знаки входного порта – |
y = 0.0 – u [0] – u[1] – u[2]... – u [n] |
|
K-ой входной порт является первым портом, где знак + |
y = u [k] – u [0] – u[1] – u[2] – u [k–1] (+/–) u [k+1]... (+/–) u [n] |
Входные параметры могут иметь различные типы данных, если вы не выбираете параметр Require all inputs to have the same data type.
Port_1
— Сначала введите сигнал операндаВходной сигнал к операции сложения или операции вычитания. Если существует только один входной сигнал, то сложение или вычитание выполняются на элементах по всем размерностям или заданному измерению.
Типы данных: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
Port_n
N
th вводят сигнал операндаn
входной сигнал th к операциям. Количество входных параметров соответствует, количество входит в систему параметр List of signs. Блок применяет операции к входным параметрам в перечисленном порядке. Можно также использовать численное значение, равное количеству входных портов как параметр List of signs. Блок создает входные порты и применяет добавление ко всем входным параметрам. Например, если вы присваиваете 5
для параметра List of signs блок создает 5
входные порты и добавляют их вместе, чтобы произвести выход.
Все нескалярные входные параметры должны иметь те же размерности. Скалярные входные параметры расширены, чтобы иметь те же размерности как другие входные параметры.
Типы данных: 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
Icon shape
— Блокируйте форму значкаОпределяйте форму значка блока как прямоугольную или круглую.
Для прямоугольного блока первый входной порт является верхним портом. Для круглого блока Sum первый входной порт является портом, самым близким к 12-часовому положению, входящему в направление против часовой стрелки вокруг блока. Точно так же другие входные порты появляются в, против часовой стрелки командуют блок.
Параметры блоков: IconShape |
Ввод: символьный вектор |
Значения: 'rectangular' | 'round' |
Значение по умолчанию: 'round' |
List of signs
— Операции выполняются на входных параметрах++
(значение по умолчанию) | +
| -
| |
| integer
Введите операции сложения и операции вычитания, выполняемые на входных параметрах. Входной порт создается для каждой операции. Распорная деталь (|
) создает дополнительное пространство между входными портами на значке блока. Сложение является операцией по умолчанию. Если вы только хотите добавить входные параметры, введите номер входных портов. Операции выполняются в перечисленном порядке.
При вводе только один элемент, блок включает параметр Sum over. Для одного векторного входа, +
или -
добавляет или вычитает элементы по всем размерностям или в заданном измерении.
Можно управлять положениями входных портов на блоке путем вставки распорных деталей (|
) между знаками в Списке параметра знаков. Например, “++|--
” создает дополнительное пространство между вторыми и третьими входными портами.
Параметры блоков: Inputs |
Ввод: символьный вектор |
Значения: '+' | '-' | | | целое число |
Значение по умолчанию: '++' |
Sum over
— Размерности для операций на одном векторном входеВыберите размерность, по которой блок выполняет сумму - по операции.
Для All dimensions суммированы все входные элементы. Когда вы выбираете параметр конфигурации Use algorithms optimized for row-major array layout, Simulink® включает упорядоченные по строкам алгоритмы для симуляции. Чтобы сгенерировать упорядоченный по строкам код, установите параметр конфигурации Array layout (Simulink Coder) к Row-major
в дополнение к выбору Use algorithms optimized for row-major array layout. Упорядоченные по столбцам и упорядоченные по строкам алгоритмы отличаются только по порядку суммирования. В некоторых случаях, из-за различной операции заказывают на том же наборе данных, вы можете испытать незначительные числовые различия в выходных параметрах упорядоченных по столбцам и упорядоченных по строкам алгоритмов.
Когда вы выбираете Specified dimensions, другой параметр, Dimension появляется. Выберите определенную размерность для подведения итогов векторного входа.
Enabled, когда вы перечисляете, только один входит в систему параметр List of signs.
Параметры блоков: CollapseMode |
Ввод: символьный вектор |
Значения: 'All dimensions' | 'Specified dimension' |
Значение по умолчанию: 'All dimensions' |
Dimension
— Размерность для суммирования на векторном входе
(значение по умолчанию) | integer
Когда вы выбираете Specified dimension для параметра Sum over, задаете размерность, по которой можно выполнить операцию.
Блок следует тем же правилам суммирования как MATLAB®
sum
функция.
Предположим, что вы имеете 2 3 матрица U.
Установка Dimension к 1
результаты в выходе Y, вычисляемом как:
Установка Dimension к 2
результаты в выходе Y, вычисляемом как:
Если заданное измерение больше размерности входа, сообщение об ошибке появляется.
Enabled, когда вы выбираете Specified dimension
для параметра Sum over.
Параметры блоков: CollapseDim |
Ввод: символьный вектор |
Значение: integer |
Значение по умолчанию: '1' |
Sample time
— Задайте шаг расчета как значение кроме -1
(значение по умолчанию) | скаляр | векторЗадайте шаг расчета как значение кроме-1. Для получения дополнительной информации см. Настройку времени выборки.
Этот параметр не отображается, если он явным образом не установлен в значение кроме -1
. Чтобы узнать больше, смотрите Блоки, для Которых Не Рекомендуется Шаг расчета.
Параметры блоков:
SampleTime |
Ввод: символьный вектор |
Значения: скаляр или вектор |
Значение по умолчанию:
'-1' |
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Require all inputs to have the same data type
— Потребуйте, чтобы все входные параметры имели совпадающий тип данныхoff
(значение по умолчанию) | on
Задайте, должны ли входные сигналы все иметь совпадающий тип данных. Если вы включаете этот параметр, то ошибка происходит в процессе моделирования, если типы входного сигнала отличаются.
Параметры блоков:
InputSameDT |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Accumulator data type
— Тип данных аккумулятораInherit: Inherit via internal rule
(значение по умолчанию) | 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 выбирает тип данных, чтобы сбалансировать числовую точность, эффективность и размер сгенерированного кода, при принятии во внимание свойств оборудования целевого процессора.
Параметры блоков: AccumDataTypeStr |
Ввод: символьный вектор |
Значения: 'Inherit: Inherit via internal rule | '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>' |
Значение по умолчанию: 'Inherit: Inherit via internal rule' |
Output minimum
— Минимальное выходное значение для проверки диапазона[]
(значение по умолчанию) | скалярНижнее значение выходной области значений это Simulink Check.
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: Keep LSB
| Inherit: Inherit via back propagation
| Inherit: Same as first input
| Inherit: Same as accumulator
| 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 выбирает тип данных, чтобы сбалансировать числовую точность, эффективность и размер сгенерированного кода, при принятии во внимание свойств оборудования целевого процессора.
Примечание
Аккумулятор внутреннее правило способствует большей числовой точности, возможно за счет менее эффективного сгенерированного кода. Чтобы получить ту же точность для выхода, установите тип выходных данных на Inherit: Inherit same as accumulator
.
Inherit: Keep MSB
– Simulink выбирает тип данных, который обеспечивает полный спектр операции, затем уменьшает точность выхода к размеру, подходящему для оборудования целевого процессора.
Совет
Для более эффективного сгенерированного кода, набор Accumulator data type к Inherit: Inherit via internal rule
, и отмените выбор параметра Saturate on integer overflow.
Это правило никогда не производит переполнение.
Inherit: Keep LSB
– Simulink выбирает тип данных, который обеспечивает точность операции, но уменьшает область значений, если полный тип не соответствует на оборудовании целевого процессора.
Совет
Для более эффективного сгенерированного кода, набор Accumulator data type к Inherit: Inherit via internal rule
, и отмените выбор параметра Saturate on integer overflow.
Это правило может произвести переполнение.
Если вы изменяете настройки целевого процессора, тип данных, выбранный этими внутренними правилами, может измениться. Для программного обеспечения не всегда возможно оптимизировать КПД кода и числовую точность одновременно. Если правила не удовлетворяют ваши определенные потребности для числовой точности или эффективности, используйте одну из следующих опций:
Задайте тип выходных данных явным образом.
Используйте простой выбор Inherit: Same as first 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 first input
— Используйте тип данных первого входного сигнала.
Inherit: Inherit same as accumulator
— Используйте тип данных аккумулятора.
Параметры блоков: OutDataTypeStr |
Ввод: символьный вектор |
Значения: 'Inherit: Inherit via internal rule |'Inherit: Keep MSB' |'Inherit: Keep LSB' | 'Inherit: Inherit via back propagation' 'Inherit: Same as first input' | 'Inherit: Same as accumulator' | '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 data type settings against changes by the fixed-point tools
— Препятствуйте тому, чтобы Fixed-Point Tool заменили типы данныхoff
(значение по умолчанию) | on
Выберите, чтобы заблокировать настройки типа данных этого блока против изменений Fixed-Point Tool и Советником Фиксированной точки. Для получения дополнительной информации смотрите Блокировку Установка Типа Выходных данных (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' |
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Linear
по умолчанию архитектура генерирует цепь операций N (сумматоры) для входных параметров N.
Для блока Sum of Elements HDL Coder поддерживает Tree
и Cascade
архитектуры за Сумму блоков Элементов, которые имеют один векторный вход с несколькими элементами.
Этот блок имеет реализации мультицикла, которые вводят дополнительную задержку в сгенерированном коде. Чтобы видеть добавленную задержку, просмотрите сгенерированную модель или модель валидации. См. Сгенерированную Модель Модели и Валидации (HDL Coder).
Архитектура | Дополнительные циклы задержки | Описание |
---|---|---|
Linear | 0 | Генерирует линейную цепь сумматоров, чтобы вычислить сумму продуктов. |
Tree | 0 | Генерирует древовидную структуру сумматоров, чтобы вычислить сумму продуктов. |
Cascade | 1, когда блок имеет один векторный входной порт. | Эта реализация оптимизирует задержку * область и быстрее, чем Смотрите каскадные лучшые практики архитектуры (HDL Coder). |
Примечание
Чтобы использовать установку LatencyStrategy во вкладке Native Floating Point диалогового окна HDL Block Properties, задайте Linear
или Tree
как архитектура HDL.
Общий | |
---|---|
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
Примечание
Блок Sum of Elements не поддерживает генерацию HDL-кода с двойными типами данных в Native Floating Point режиме.
Нативная плавающая точка | |
---|---|
LatencyStrategy | Задайте, сопоставить ли блоки в вашем проекте к |
NFPCustomLatency | Чтобы задать значение, установите LatencyStrategy на |
Linear
по умолчанию комплексные данные поддержки внедрения.
Tree
комплексные данные поддержки внедрения с +
для параметров блоков List of signs. С нативной поддержкой с плавающей точкой, Tree
комплексные данные поддержки внедрения с обоими +
и -
для List of signs.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.