Добавление или вычитание входных данных
Операции с симуляцией/математикой
Кодер HDL/Операции с плавающей точкой HDL
Кодер HDL/Математические операции
Блок Sum выполняет сложение или вычитание на своих входах. Блоки «Добавить», «Вычесть», «Сумма элементов» и «Сумма» являются идентичными блоками. Этот блок может добавлять или вычитать скалярные, векторные или матричные входы. Он также может свернуть элементы сигнала и выполнить суммирование.
Операции блока задаются параметром Список знаков с плюсом (+), минус (-) и проставку (|).
Количество + и - символы равны количеству входов. Например, +-+ требует трех входов. Блок вычитает второй (средний) вход из первого (верхнего), а затем добавляет третий (нижний) вход.
Символ разделителя создает дополнительное пространство между портами на значке блока.
При выполнении только сложения можно использовать числовое значение, равное количеству входов.
Если имеется только один входной порт, то один + или - добавляет или вычитает элементы для всех размеров или для указанного размера.
Блок Sum сначала преобразует тип входных данных в его тип данных накопителя, а затем выполняет указанные операции. Блок преобразует результат в тип выходных данных, используя указанные режимы округления и переполнения.
Расчет выходного сигнала для блока Sum зависит от количества входов блока и знака входных портов:
| Если блок Sum имеет... | И... | Формула для расчета выходных данных... | Где... |
|---|---|---|---|
|
Один входной порт |
Знак входного порта + |
y = e [0] + e [1] + e [2]... + e [m] |
|
|
Знак входного порта - |
y = 0,0 - e [0] - e [1] - e [2]... - e [м] | ||
|
Два или более входных порта |
Все знаки входных портов - |
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] |
Входные данные могут иметь различные типы данных, если не выбран параметр Требовать, чтобы все входные данные имели один и тот же тип данных.
Port_1 - Первый входной сигнал операндаВходной сигнал для операции сложения или вычитания. Если имеется только один входной сигнал, то выполняется сложение или вычитание элементов по всем размерам или заданному размеру.
Типы данных: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point
Port_n — nвходной сигнал операндаnвторой входной сигнал к операциям. Количество входов соответствует количеству знаков в параметре List of signes. Блок применяет операции к входам в указанном порядке. В качестве параметра List of signes можно также использовать числовое значение, равное количеству входных портов. Блок создает входные порты и применяет добавление ко всем входам. Например, при назначении 5 для параметра List of signes блок создает 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 - Размеры для операций с одним векторным входомВыберите размер, над которым блок выполняет операцию суммирования.
Для всех размеров все входные элементы суммируются. При выборе параметра конфигурации Использовать алгоритмы, оптимизированные для макета массива основных строк, Simulink ® включает алгоритмы основных строк для моделирования. Чтобы создать основной код строки, установите параметр конфигурации Array layout (Simulink Coder) в значениеRow-major в дополнение к выбору Use algoriths optimized for row-major array layout (Использовать алгоритмы, оптимизированные для компоновки основных массивов строк). Алгоритмы «столбец-большая» и «строка-большая» различаются только порядком суммирования. В некоторых случаях из-за различной последовательности операций в одном и том же наборе данных могут возникнуть незначительные числовые различия в выходах алгоритмов «столбец-большая» и «строка-большая».
При выборе параметра Заданные размеры (Specified dimensions) появляется другой параметр Размер (Dimension). Выберите конкретный размер для суммирования векторного ввода.
Включено, если в параметре List of signes указан только один знак.
Параметр блока: CollapseMode |
| Текст: символьный вектор |
Значения: 'All dimensions' | 'Specified dimension' |
По умолчанию: 'All dimensions' |
Dimension - Размер для суммирования на векторном входе1 (по умолчанию) | integerПри выборе параметра Сумма над (Sum over) параметра Заданный размер (Specified dimension) укажите размер, над которым будет выполняться операция.
Блок следует тем же правилам суммирования, что и MATLAB
®sum функция.
Предположим, что имеется матрица 2 на 3 U.
Установка размера в 1 в результате выходные данные Y вычисляются следующим образом:
j)
Установка размера в 2 в результате выходные данные Y вычисляются следующим образом:
j)
Если указанный размер больше, чем размер ввода, появляется сообщение об ошибке.
Включено при выборе Specified dimension для параметра Sum over.
Параметр блока: CollapseDim |
| Текст: символьный вектор |
Значение: integer |
По умолчанию: '1' |
Sample time - Укажите время выборки в качестве значения, отличного от -1-1 (по умолчанию) | скаляр | векторУкажите время выборки в качестве значения, отличного от -1. Дополнительные сведения см. в разделе Указание времени образца.
Этот параметр не отображается, если для него явно не задано значение, отличное от -1. Дополнительные сведения см. в разделе Блоки, для которых образец времени не рекомендуется.
Параметр блока:
SampleTime |
| Текст: символьный вектор |
| Значения: скаляр или вектор |
По умолчанию:
'-1' |
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
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 ruleSimulink выбирает тип данных, чтобы сбалансировать числовую точность, производительность и размер сгенерированного кода с учетом свойств встроенного целевого оборудования.
Параметр блока: 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.
Simulink использует минимум для выполнения:
Проверка диапазона параметров (см. раздел Задание минимальных и максимальных значений для параметров блока) для некоторых блоков.
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов и Включение проверки диапазона моделирования).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Минимальный выходной сигнал не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: OutMin |
| Текст: символьный вектор |
Значения: '[ ]'| скаляр |
По умолчанию: '[ ]' |
Output maximum - Максимальное выходное значение для проверки дальности[] (по умолчанию) | скалярВерхнее значение диапазона вывода, которое проверяет Simulink.
Simulink использует максимальное значение для выполнения:
Проверка диапазона параметров (см. раздел Задание минимальных и максимальных значений для параметров блока) для некоторых блоков.
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов и Включение проверки диапазона моделирования).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Выходной максимум не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: 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: Inherit via internal rule тип выходных данных зависит от настройки выходного типа Inherit с плавающей запятой, меньшего, чем параметр конфигурации с одинарной точностью. Типы данных меньше, чем единичная точность, когда количество битов, необходимое для кодирования типа данных, меньше, чем 32 бита, необходимых для кодирования типа данных с одинарной точностью. Например, half и int16 меньше, чем единичная точность.
Inherit: Keep MSB- Simulink выбирает тип данных, который поддерживает полный диапазон операций, затем снижает точность вывода до размера, соответствующего встроенному целевому оборудованию.
Совет
Для более эффективного создания кода установите тип данных Accumulator равным Inherit: Inherit via internal ruleи отмените выбор параметра Saturate on integer overflow.
Это правило никогда не приводит к переполнению.
Inherit: Keep LSB- Simulink выбирает тип данных, который поддерживает точность операции, но уменьшает диапазон, если полный тип не умещается на встроенном целевом оборудовании.
Совет
Для более эффективного создания кода установите тип данных Accumulator равным Inherit: Inherit via internal ruleи отмените выбор параметра Saturate on integer overflow.
Это правило может привести к переполнению.
При изменении встроенных целевых параметров тип данных, выбранный этими внутренними правилами, может измениться. Программное обеспечение не всегда может оптимизировать эффективность кода и числовую точность одновременно. Если правила не соответствуют конкретным требованиям к числовой точности или производительности, используйте один из следующих вариантов:
Явно укажите тип выходных данных.
Используйте простой выбор Inherit: Same as first input.
Явно укажите тип данных по умолчанию, например fixdt(1,32,16) а затем с помощью инструмента «Фиксированная точка» предложите типы данных для модели. Дополнительные сведения см. в разделе fxptdlg (Конструктор фиксированных точек).
Чтобы указать собственное правило наследования, используйте Inherit: Inherit via back propagation а затем используйте блок распространения типа данных. Примеры использования этого блока доступны в блоке Примеры распространения типов данных библиотеки атрибутов сигнала.
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 - Предотвращение переопределения типов данных инструментами с фиксированной точкой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' |
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|
HDL Coder™ предоставляет дополнительные опции конфигурации, которые влияют на реализацию HDL и синтезированную логику.
Дефолт Linear архитектура генерирует цепочку из N операций (сумматоров) для N входов.
Для блока «Сумма элементов» поддерживается кодер HDL Tree и Cascade архитектуры для блоков Sum of Elements, имеющих один векторный вход с несколькими элементами.
Этот блок имеет многоцикловые реализации, которые вводят дополнительную задержку в генерируемый код. Чтобы увидеть добавленную задержку, просмотрите созданную модель или модель проверки. См. раздел Сгенерированная модель и модель проверки (кодер HDL).
| Архитектура | Дополнительные циклы задержки | Описание |
|---|---|---|
Linear | 0 | Создает линейную цепочку сумматоров для вычисления суммы произведений. Для нескольких входов, имеющих разную битовую ширину, |
Tree | 0 | Создает древовидную структуру сумматоров для вычисления суммы произведений. |
Cascade | 1, когда блок имеет один векторный входной порт. | Эта реализация оптимизирует область задержки * и быстрее, чем См. Передовые практики каскадной архитектуры (кодер HDL). |
Примечание
Чтобы использовать параметр LatencyStrategy на вкладке Native Floating Point диалогового окна Свойства блока HDL, укажите Linear или Tree в качестве архитектуры HDL.
| Общая информация | |
|---|---|
| ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках проекта. Распределенная конвейерная обработка не перераспределяет эти регистры. Значение по умолчанию: |
| InputPipeline | Количество входных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| OutputPipeline | Количество выходных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
Примечание
Блок Sum of Elements не поддерживает создание кода HDL с двойными типами данных в режиме Native Floating Point.
| Собственная плавающая точка | |
|---|---|
| LatencyStrategy | Укажите, следует ли сопоставлять блоки в проекте |
| NFPCustomLatency | Чтобы задать значение, задайте для параметра LatencyStrategy значение |
Дефолт Linear реализация поддерживает сложные данные.
Tree реализация поддерживает сложные данные с + для параметра блока Список знаков. С собственной поддержкой с плавающей запятой, Tree реализация поддерживает сложные данные с обоими + и - для списка знаков.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
