Switch
Переключает выход между первым и третьим входами на основе значения второго входа.
Описание
Блок Switch пропускает сигнал с первого или третьего входа в зависимости от значения сигнала на втором входе. Первый и третий входы — входные сигналы, второй вход — управляющий. Условие, при котором блок пропускает на выход сигнал с первого входа, задается параметрами Criteria for passing first input и Threshold.
Порты
Вход
Port_1 — первый входной сигнал
скаляр
| вектор
Первый из двух входных сигналов. Блок передает либо один, либо другой входной сигнал на выход, исходя из значения управляющего сигнала. Условие, при котором блок пропускает на выход сигнал с первого входа, задается параметрами Criteria for passing first input и Threshold.
Типы данных: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, Int128
, UInt8
, UInt16
, UInt32
, UInt64
, UInt128
, Bool
, Fixed
Поддержка комплексных чисел: Да
Port_2 — управляющий сигнал
скаляр
| вектор
Управляющий сигнал, который блок использует для определения того, какой вход следует передавать на выход. Если управляющий сигнал удовлетворяет условиям, заданным в параметре Criteria for passing first input, то блок передает первый входной сигнал. В ином случае блок передает второй входной сигнал.
Типы данных: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, Int128
, UInt8
, UInt16
, UInt32
, UInt64
, UInt128
, Bool
, Fixed
Поддержка комплексных чисел: Нет
Port_3 — второй входной сигнал
скаляр
| вектор
Второй из двух входных сигналов. Блок передает либо один, либо другой входной сигнал на выход, исходя из значения управляющего сигнала. Условие, при котором блок пропускает на выход сигнал с первого входа, задается параметрами Criteria for passing first input и Threshold.
Типы данных: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, Int128
, UInt8
, UInt16
, UInt32
, UInt64
, UInt128
, Bool
, Fixed
Поддержка комплексных чисел: Да
Выход
Port_1 — выходной сигнал
скаляр
| вектор
Выходной сигнал, полученный либо из первого, либо из второго входного сигнала, в зависимости от значения управляющего сигнала.
Типы данных: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, Int128
, UInt8
, UInt16
, UInt32
, UInt64
, UInt128
, Bool
, Fixed
Поддержка комплексных чисел: Да
Параметры
Main
Criteria for passing first input — критерий для выбора передачи первого входного сигнала
u2 > Threshold
(по умолчанию) | u2 >= Threshold
| u2 ~= 0
Выберите условие, при котором блок передаст на выход первый входной сигнал. Если управляющий вход Port_2 удовлетворяет условиям, заданным в параметре Criteria for passing first input, блок передаст первый входной сигнал Port_1. В ином случае блок передает второй входной сигнал Port_3. Варианты для выбора:
-
u2 >= Threshold
— управляющий вход больше или равен пороговому значению; -
u2 > Threshold
— управляющий вход больше порогового значения; -
u2 ~= 0
— управляющий вход отличен от нуля.
Подсказка
Если управляющим вводом является булевый сигнал, используйте одну из следующих комбинаций условия и порогового значения:
-
u2 >= Threshold
, где пороговое значение равно1
; -
u2 > Threshold
, где пороговое значение равно0
; -
u2 ~= 0
.
В ином случае блок Switch игнорирует пороговые значения и использует булево значение для маршрутизации сигнала. При значении 1
блок передает первый вход, а при значении 0
– третий вход.
Параметр блока |
|
Значение |
|
По умолчанию |
|
Threshold — пороговое значение, используемое в критерии
0 (по умолчанию)
| скаляр
| вектор
| матрица
| массив
Пороговое значение, используемое в параметре Criteria for passing first input, который определяет, какой вход блок передает на выход.
Параметр блока |
|
Значение |
|
По умолчанию |
|
Signal Attributes
Require all data port inputs to have the same data type — все входные данные должны иметь одинаковый тип
выключено (по умолчанию)
| включено
Включите этот параметр, чтобы все входные данные имели один и тот же тип данных.
Параметр блока |
|
Значение |
|
По умолчанию |
|
Output data type — тип выходных данных
Inherit: auto (по умолчанию)
|Same as first input
| Float16
| Float32
| Float64
| Int8
| Int16
| Int32
| Int64
| Int128
| UInt8
| UInt16
| UInt32
| UInt64
| UInt128
| Fixed point
| Bool
Укажите тип выходных данных.
Тип может быть унаследован или указан напрямую.
Параметр блока |
|
Значения |
|
По умолчанию |
|
Integer rounding mode — режим округления для операций с фиксированной точкой
Floor (по умолчанию)
| Ceiling
| Convergent
| Nearest
| Round
| Zero
Выберите режим округления для операций с фиксированной точкой. Вы можете выбрать:
-
Floor
— округляет как положительные, так и отрицательные числа в меньшую сторону (в сторону отрицательной бесконечности). -
Ceiling
— округляет как положительные, так и отрицательные числа в большую сторону (в сторону положительной бесконечности). -
Convergent
— округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется до ближайшего четного целого числа. -
Nearest
— округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется в большую сторону (в сторону положительной бесконечности). -
Round
— округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, положительные числа округляются в большую сторону (в сторону положительной бесконечности), а отрицательные – в меньшую (в сторону отрицательной бесконечности).
-
Zero
— округляет число в сторону нуля.
Параметры блока всегда округляют до ближайшего представимого значения.
Параметр блока |
|
Значения |
|
По умолчанию |
|
Saturate on integer overflow — насыщение до целого при переполнении
выключено (по умолчанию)
| включено
Флажок, при установке которого используется арифметика насыщения для целых чисел и чисел с фиксированной точкой: при переполнении результат автоматически заменяется максимально возможным (по модулю) для типа данных значением.
Действие | Обоснование | Влияние на переполнение | Пример |
---|---|---|---|
Флажок Saturate on integer overflow установлен (включен). |
Для вашей модели возможно переполнение, и вы хотите, чтобы в сгенерированном коде была явная защита от переполнения. |
При переполнении результат автоматически заменяется максимально возможным (по модулю) для типа данных значением. |
Максимальное значение, которое может представлять тип данных Любой результат операции с блоком, превышающий это максимальное значение, приводит к переполнению 8-битного целого числа. При установленном флажке выходной сигнал блока насыщается до 127. Аналогично, выходной сигнал блока насыщается при минимальном выходном значении -128. |
Флажок Saturate on integer overflow не установлен (выключен). |
Вы хотите оптимизировать эффективность вашего сгенерированного кода. Вы хотите избежать чрезмерного определения того, как блок обрабатывает сигналы, находящиеся вне диапазона. |
Переполнения переносятся в соответствующее значение, которое может быть представлено типом данных. |
Максимальное значение, которое может представлять тип данных Любой результат операции с блоком, превышающий это максимальное значение, приводит к переполнению 8-битного целого числа. Если флажок снят, программное обеспечение интерпретирует значение, вызывающее переполнение, как |
Когда вы устанавливаете этот флажок, насыщение применяется ко всем внутренним операциям в блоке, а не только к входным/выходным данным или результату.
Параметр блока |
|
Значения |
|
По умолчанию |
|