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

Switch

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

Тип: Switch

Путь в библиотеке:

/Basic/Signal Routing/Switch

Описание

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

Порты

Выход

# OUT_1 — выходной сигнал
скаляр | вектор

Details

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

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

Поддержка комплексных чисел

Да

Вход

# IN_1 — первый входной сигнал
скаляр | вектор

Details

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

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

Поддержка комплексных чисел

Да

# IN_2 — управляющий сигнал
скаляр | вектор

Details

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

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

Поддержка комплексных чисел

Да

# IN_3 — второй входной сигнал
скаляр | вектор

Details

Второй из двух входных сигналов. Блок передает либо один, либо другой входной сигнал на выход, исходя из значения управляющего сигнала. Условие, при котором блок пропускает на выход сигнал с первого входа, задается параметрами Criteria for passing first input и Threshold.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

Поддержка комплексных чисел

Да

Параметры

Основные

# Criteria for passing first input — критерий для выбора передачи первого входного сигнала
u2 >= Threshold | u2 > Threshold | u2 ~= 0

Details

Выберите условие, при котором блок передаст на выход первый входной сигнал. Если управляющий вход IN_2 удовлетворяет условиям, заданным в параметре Criteria for passing first input, блок передаст первый входной сигнал In_1. В ином случае блок передает второй входной сигнал IN_3. Варианты для выбора:

  • u2 >= Threshold — управляющий вход больше или равен пороговому значению;

  • u2 > Threshold — управляющий вход больше порогового значения;

  • u2 ~= 0 — управляющий вход отличен от нуля.

Подсказка

Если управляющим вводом является булевый сигнал, используйте одну из следующих комбинаций условия и порогового значения:

  • u2 >= Threshold, где пороговое значение равно 1;

  • u2 > Threshold, где пороговое значение равно 0;

  • u2 ~= 0.

В ином случае блок Switch игнорирует пороговые значения и использует булево значение для маршрутизации сигнала. При значении 1 блок передает первый вход, а при значении 0 – третий вход.

Значения

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

Значение по умолчанию

u2 > Threshold

Имя для программного использования

Criteria

Настраиваемый

Нет

Вычисляемый

Нет

# Threshold — пороговое значение, используемое в критерии
Scalar / array of real numbers

Details

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

Зависимости

Чтобы использовать этот параметр, установите для параметра Criteria for passing first input значение u2 >= Threshold или u2 > Threshold.

Значение по умолчанию

0.0

Имя для программного использования

Threshold

Настраиваемый

Да

Вычисляемый

Да

Атрибуты сигнала

# Require all data inputs to have the same data type — все входные данные должны иметь одинаковый тип
Logical

Details

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

Значение по умолчанию

false (выключено)

Имя для программного использования

InputSameDT

Настраиваемый

Нет

Вычисляемый

Нет

# Output data type — тип выходных данных
Inherit: auto | Same as first input | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Bool | Fixed-point

Details

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

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

Значения

Inherit: auto | Same as first input | Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Bool | Fixed-point

Значение по умолчанию

Inherit: auto

Имя для программного использования

OutDataTypeStr

Настраиваемый

Нет

Вычисляемый

Нет

# Output fixed-point type — тип выходных данных с фиксированной точкой
Data type

Details

Укажите тип выходных данных с фиксированной точкой.

Зависимости

Чтобы использовать этот параметр, установите для параметра Output data type значение Fixed-point.

Значение по умолчанию

fixdt(1, 16, 0)

Имя для программного использования

OutDataTypeStrFixed

Настраиваемый

Нет

Вычисляемый

Да

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

Details

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

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

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

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

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

  • Round — округляет число до ближайшего целого числа.

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

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

Значения

Ceiling | Convergent | Floor | Nearest | Round | Zero

Значение по умолчанию

Floor

Имя для программного использования

RndMeth

Настраиваемый

Нет

Вычисляемый

Нет

# Saturate on integer overflow — метод действия при переполнении
Logical

Details

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

Действие Причины для принятия этого решения Что происходит при переполнении Пример

Установите этот флажок.

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

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

Переполнение, связанное со знаковым 8-битным целым числом, может насытиться до -128 или 127.

Не устанавливайте этот флажок.

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

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

Число 130 не помещается в знаковое 8-битное целое число и сворачивается в -126

Значение по умолчанию

false (выключено)

Имя для программного использования

SaturateOnIntegerOverflow

Настраиваемый

Нет

Вычисляемый

Нет

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

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

Генерация Verilog: Да