Объедините несколько сигналов в один сигнал
Simulink/Обычно используемые блоки
Simulink/Маршрутизация сигнала
HDL-кодер/обычно используемые блоки
HDL-кодер/сигнальная маршрутизация
Блок Switch проходит через первый вход или третий входной сигнал на основе значения второго входа. Первый и третий входы являются входными данными. Второй вход является управляющим входом. Задайте условие, при котором блок передает первый вход с помощью параметров Criteria for passing first input и Threshold.
Блок Switch является блоком с поддержкой шины. Входы данных могут быть виртуальными или невиртуальными шинными сигналами, удовлетворяющими следующим ограничениям:
Все шины должны быть эквивалентными (одинаковая иерархия с идентичными именами и атрибутами для всех элементов).
Все сигналы в невиртуальной шине, вводимой в блок Switch, должны иметь одинаковый шаг расчета. Требование сохраняется, даже если элементы связанного объекта шины задают унаследованные шаги расчета.
Можно использовать блок Rate Transition, чтобы изменить шаг расчета отдельного сигнала или всех сигналов в шине. Смотрите Modify Sample Times для Невиртуальных Шин и Блоков с поддержкой Шины для получения дополнительной информации.
Можно использовать массив шин в качестве входного сигнала к блоку Switch. Для получения дополнительной информации об определении и использовании массива шин смотрите Group Nonvirtual Buses in Arrays of Buses. При использовании массива шин установите параметр Threshold на скалярное значение.
Если входы данных в блок Switch являются шинами, имена элементов обеих шин должны быть одинаковыми. Использование тех же имен элементов гарантирует, что шина выхода имеет те же имена элементов независимо от того, какую входную шину выбирает блок. Чтобы убедиться, что ваша модель соответствует этому требованию, используйте объект шины, чтобы задать шины и установить диагностику Element name mismatch равной error
. Для получения дополнительной информации см. Обзор диагностики подключений.
Port_1
- Первый входной сигнал данныхПервый из двух входов данных. Блок распространяет либо первый, либо второй вход данных на выход. Блок выбирает вход, который должен пройти, на основе входа управления. Задайте условие для того, чтобы вход управления прошел первый вход, используя параметры Criteria for passing first input и Threshold.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
Port_2
- Управляющий входной сигналУправляйте сигналом, который блок использует, чтобы определить, передавать ли первый или второй вход данных на выход. Если вход управления соответствует набору условий в параметре Criteria for passing first input, то блок передает первые данные. В противном случае блок передает второй вход данных.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
Port_3
- Второй входной сигнал данныхВторой из двух входов данных. Блок распространяет либо первый, либо второй вход данных на выход. Блок выбирает вход, который должен пройти, на основе входа управления. Задайте условие для того, чтобы вход управления прошел первый или второй вход, используя параметры Criteria for passing first input и Threshold.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
Port_1
- Выходной сигналВыход сигнал, распространенный из первого или второго входного сигнала на основе значения сигналов управления.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
Criteria for passing first input
- Критерии выбора для прохождения первого входа данныхu2 >= Threshold
(по умолчанию) | u2 > Threshold
| u2 ~= 0
Выберите условие, при котором блок проходит первый вход данных. Если вход управления соответствует набору условий в параметре Criteria for passing first input, блок передает первый вход. В противном случае блок передает второй входной сигнал данных от входного Port_3
.
u2 >= Threshold
Проверяет, больше или равен ли вход управления порога значению.
u2 > Threshold
Проверяет, больше ли вход управления порогового значения.
u2 ~=0
Проверяет, является ли вход управления ненулевым.
Примечание
Блок Switch не поддерживает u2 ~=0
режим для перечисленных типов данных.
Когда вход управления является логическим сигналом, используйте одну из следующих комбинаций условия и порогового значения:
u2 >= Threshold
, где пороговое значение равняется 1
u2 > Threshold
, где пороговое значение равняется 0
u2 ~=0
В противном случае блок Switch игнорирует пороговые значения и использует логическое значение для маршрутизации сигнала. Для значения 1 блок передает первый вход, а для значения 0 - третий вход. Предупреждающее сообщение, которое описывает это поведение, также появляется в MATLAB® Командное окно.
Параметры блоков:
Criteria |
Тип: Вектор символов |
Значение:
'u2 >= Threshold' | 'u2 > Threshold' | 'u2 ~=0' |
По умолчанию:
'u2 >= Threshold' |
Threshold
- Порог, используемое в критериях0
(по умолчанию) | scalar
Присвойте порог, используемый в Criteria for passing first input, который определяет, какой вход блок передает в выход. Threshold должно быть больше Output minimum и меньше Output maximum.
Чтобы задать нескалярный порог, используйте скобки. Для примера действительны следующие значения:
[1 4 8 12]
[MyColors.Red, MyColors.Blue]
Установка значения Criteria for passing first input u2 ~=0
отключает этот параметр.
Параметры блоков:
Threshold |
Тип: Вектор символов |
Значение:
'off' | 'on' |
По умолчанию:
'off'
|
Enable zero-crossing detection
- Включить обнаружение пересечения нулемon
(по умолчанию) | ЛогическийВыберите, чтобы включить обнаружение пересечения нулем. Для получения дополнительной информации смотрите Обнаружение пересечения нулем.
Параметры блоков: ZeroCross |
Тип: Вектор символов, строка |
Значения: 'off' | 'on' |
По умолчанию: 'on' |
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать атрибуты type данных. Для получения дополнительной информации смотрите Задать типы данных Используя Data Type Assistant.
Require all data port inputs to have the same data type
- Требовать, чтобы порты данных имели совпадающий тип данныхoff
(по умолчанию) | on
Требовать, чтобы все входы данных имели совпадающий тип данных.
Параметры блоков:
InputSameDT |
Тип: Вектор символов |
Значение: |
По умолчанию:
'0' |
Output minimum
- Минимальное выходное значение для проверки области значений[]
(по умолчанию) | скаляромБолее низкое значение выходной области значений, который Simulink® проверки.
Simulink использует минимум для выполнения:
Проверка области значений параметров (см. «Задание минимальных и максимальных значений для параметров блоков») для некоторых блоков.
Проверка области значений симуляции (см. «Задание диапазонов сигнала» и «Включение проверки области значений симуляции»).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов симуляции, таких как SIL или режим external mode. Для получения дополнительной информации смотрите Оптимизировать используя указанные минимальное и максимальное значения (Embedded Coder).
Примечание
Output minimum не насыщает или не зажимает фактический выходной сигнал. Вместо этого используйте блок Saturation.
Параметры блоков: OutMin |
Тип: Вектор символов |
Значения: '[ ]' | скаляр |
По умолчанию: '[ ]' |
Output maximum
- Максимальное выходное значение для проверки области значений[]
(по умолчанию) | скаляромВерхнее значение выходной области значений, который Simulink проверяет.
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)
| string
| Enum: <class name>
| <data type expression>
Задайте тип выходных данных.
Inherit: Inherit via internal rule
Для определения типа данных выходов используются следующие правила.
Тип данных первого Input port | Выход данных |
---|---|
Имеет больший положительный область значений, чем третий входной порт | Унаследовано от первого входного порта |
Имеет ту же положительную область значений, что и третий входной порт | Унаследовано от третьего входного порта |
Имеет меньшую положительную область значений, чем третий входной порт |
Inherit: Inherit via back propagation
Использует тип данных ведущего блока.
Inherit: Inherit same as first input
Использует тип данных первого входного порта данных.
double
Задает тип выходных данных double
.
single
Задает тип выходных данных single
.
half
Задает тип выходных данных half
.
int8
Задает тип выходных данных int8
.
uint8
Задает тип выходных данных uint8
.
int16
Задает тип выходных данных int16
.
uint16
Задает тип выходных данных uint16
.
int32
Задает тип выходных данных int32
.
uint32
Задает тип выходных данных uint32
.
int64
Задает тип выходных данных int64
.
uint64
Задает тип выходных данных uint64
.
fixdt(1,16,0)
Задает тип выходных данных фиксированную точку fixdt(1,16,0)
.
fixdt(1,16,2^0,0)
Задает тип выходных данных фиксированную точку fixdt(1,16,2^0,0)
.
Enum: <class name>
Использует перечисленный тип данных, например Enum: BasicColors
.
string
Задает выход данных строковый.
<data type expression>
Использует объект типа данных, например Simulink.NumericType
.
Когда выход имеет перечисленный тип, оба входов данных должны использовать тот же перечисленный тип, что и выход.
Параметры блоков: OutDataTypeStr |
Тип: Вектор символов |
Значения: '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)' | Enum: <class name> | 'string' | '<data type expression>' |
По умолчанию: 'Inherit: Inherit via internal rule' |
Lock data type settings against changes by the fixed-point tools
- Предотвратить переопределение типов данных инструментами с фиксированной точкойoff
(по умолчанию) | on
Выберите этот параметр, чтобы предотвратить переопределение инструментами с фиксированной точкой типов данных, заданных в этом блоке. Для получения дополнительной информации смотрите Блокировка настройки типа выходных данных (Fixed-Point Designer).
Параметры блоков: LockScale |
Тип: Вектор символов |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Integer rounding mode
- Задайте режим округления для операций с фиксированной точкойFloor
(по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Выберите один из следующих режимов округления.
Ceiling
Округлает как положительные, так и отрицательные числа к положительной бесконечности. Эквивалентно MATLAB ceil
функция.
Convergent
Округлить число до ближайшего представимого значения. Если происходит связывание, округляет до ближайшего четного целого числа. Эквивалентно Fixed-Point Designer™ convergent
функция.
Floor
Округлает как положительные, так и отрицательные числа к отрицательной бесконечности. Эквивалентно MATLAB floor
функция.
Nearest
Округлить число до ближайшего представимого значения. Если происходит галстук, округляет к положительной бесконечности. Эквивалентен Fixed-Point Designer nearest
функция.
Round
Округлить число до ближайшего представимого значения. Если происходит связывание, округляет положительные числа к положительной бесконечности и округляет отрицательные числа к отрицательной бесконечности. Эквивалентен Fixed-Point Designer round
функция.
Simplest
Автоматически выбирает между скруглением к полу и скруглением к нулю, чтобы сгенерировать код округления, который максимально эффективен.
Zero
Число округлений к нулю. Эквивалентно MATLAB fix
функция.
Параметры блоков: RndMeth |
Тип: Вектор символов |
Значения: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
По умолчанию: 'Floor' |
Для получения дополнительной информации см. раздел Округление (Fixed-Point Designer).
Saturate on integer overflow
- Метод действия переполненияoff
(по умолчанию) | on
Укажите, будут ли переполнения насыщаться или переноситься.
off
- Переполнения переходят к соответствующему значению, которое может представлять тип данных.
Для примера число 130 не помещается в 8-разрядное целое число со знаком и переносами к -126.
on
- Переполнения достигают минимального или максимального значения, которое может представлять тип данных.
Для примера переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщаться до -128 или 127.
Совет
Рассмотрите выбор этого флажка, когда ваша модель имеет возможное переполнение, и вы хотите явную защиту от насыщения в сгенерированном коде.
Рассмотрите снятие этого флажка, когда вы хотите оптимизировать эффективность вашего сгенерированного кода.
Снятие этого флажка также помогает вам избежать переопределения того, как блок обрабатывает сигналы вне области допустимого. Для получения дополнительной информации смотрите Поиск и устранение ошибок диапазона сигнала.
Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, а не только к выходу или результату.
В целом процесс генерации кода может обнаружить, когда переполнение невозможно. В этом случае генератор кода не производит код насыщения.
Параметры блоков: SaturateOnIntegerOverflow |
Тип: Вектор символов |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Allow different data input sizes
- Разрешить различные размеры входных данныхoff
(по умолчанию) | on
Установите этот флажок, чтобы разрешить входные сигналы с различными размерами. Блок распространяет размер входного сигнала на выход сигнал. Если два входов данных являются сигналами переменного размера, максимальный размер сигналов может быть равным или различным.
Параметры блоков:
AllowDiffInputSizes
|
Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'off'
|
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Сгенерированный код опирается на memcpy
или memset
функций (string.h) при определенные обстоятельства.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет одну архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
Этот блок поддерживает генерацию кода для сложных сигналов.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.