Документация Engee

Switch

Переключает выход между первым и третьим входами на основе значения второго входа.

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 – третий вход.

Программное использование

Параметр блока

Criteria

Значение

u2 >= Threshold | u2 > Threshold | u2 ~= 0

По умолчанию

u2 > Threshold

Threshold — пороговое значение, используемое в критерии
0 (по умолчанию) | скаляр | вектор | матрица | массив

Пороговое значение, используемое в параметре Criteria for passing first input, который определяет, какой вход блок передает на выход.

Программное использование

Параметр блока

threshold

Значение

скаляр | вектор | матрица | массив

По умолчанию

'0'

Signal Attributes

Require all data port inputs to have the same data type — все входные данные должны иметь одинаковый тип
выключено (по умолчанию) | включено

Включите этот параметр, чтобы все входные данные имели один и тот же тип данных.

Программное использование

Параметр блока

InputSameDT

Значение

выключено | включено

По умолчанию

выключено

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

Укажите тип выходных данных.

Тип может быть унаследован или указан напрямую.

Программное использование

Параметр блока

OutDataTypeStr

Значения

Inherit: auto (по умолчанию) |Same as first input | Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Fixed point | Bool

По умолчанию

Inherit: auto

Integer rounding mode — режим округления для операций с фиксированной точкой
Floor (по умолчанию) | Ceiling | Convergent | Nearest | Round | Zero

Выберите режим округления для операций с фиксированной точкой. Вы можете выбрать:

  • Floor — округляет как положительные, так и отрицательные числа в меньшую сторону (в сторону отрицательной бесконечности).

  • Ceiling — округляет как положительные, так и отрицательные числа в большую сторону (в сторону положительной бесконечности).

  • Convergent — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется до ближайшего четного целого числа.

  • Nearest — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется в большую сторону (в сторону положительной бесконечности).

  • Round — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, положительные числа округляются в большую сторону (в сторону положительной бесконечности), а отрицательные – в меньшую (в сторону отрицательной бесконечности).

  • Zero — округляет число в сторону нуля.

Параметры блока всегда округляют до ближайшего представимого значения.

Программное использование

Параметр блока

RndMeth

Значения

Ceiling | Convergent | Floor | Nearest | Round | Zero

По умолчанию

Floor

Saturate on integer overflow — насыщение до целого при переполнении
выключено (по умолчанию) | включено

Флажок, при установке которого используется арифметика насыщения для целых чисел и чисел с фиксированной точкой: при переполнении результат автоматически заменяется максимально возможным (по модулю) для типа данных значением.

Действие Обоснование Влияние на переполнение Пример

Флажок Saturate on integer overflow установлен (включен).

Для вашей модели возможно переполнение, и вы хотите, чтобы в сгенерированном коде была явная защита от переполнения.

При переполнении результат автоматически заменяется максимально возможным (по модулю) для типа данных значением.

Максимальное значение, которое может представлять тип данных Int8 (знаковое, 8-битное целое), равно 127.

Любой результат операции с блоком, превышающий это максимальное значение, приводит к переполнению 8-битного целого числа. При установленном флажке выходной сигнал блока насыщается до 127. Аналогично, выходной сигнал блока насыщается при минимальном выходном значении -128.

Флажок Saturate on integer overflow не установлен (выключен).

Вы хотите оптимизировать эффективность вашего сгенерированного кода.

Вы хотите избежать чрезмерного определения того, как блок обрабатывает сигналы, находящиеся вне диапазона.

Переполнения переносятся в соответствующее значение, которое может быть представлено типом данных.

Максимальное значение, которое может представлять тип данных Int8 (знаковое, 8-битное целое), равно 127.

Любой результат операции с блоком, превышающий это максимальное значение, приводит к переполнению 8-битного целого числа. Если флажок снят, программное обеспечение интерпретирует значение, вызывающее переполнение, как Int8, что может привести к непреднамеренному результату. Например, результат блока 130 (двоичный код 1000 0010), выраженный как Int8, равен -126.

Когда вы устанавливаете этот флажок, насыщение применяется ко всем внутренним операциям в блоке, а не только к входным/выходным данным или результату.

Программное использование

Параметр блока

SaturateOnIntegerOverflow

Значения

выключено | включено

По умолчанию

выключено

Дополнительные возможности

Генерация Си кода: Да