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

Data Type Conversion

Изменение типа данных сигнала.

data type conversion

Описание

Блок Data Type Conversion преобразует входной сигнал любого типа данных, поддерживаемого Engee, в указанный тип данных.

Порты

Вход

Port_1 — входной сигнал
скаляр | вектор | матрица | массив

Входной сигнал в виде скаляра, вектора, матрицы или массива.

Входным сигналом может быть любой вещественный или комплексный сигнал. Если входной сигнал вещественный, то выходной сигнал вещественный. Если входной сигнал комплексный, то выходной сигнал комплексный. Блок преобразует входной сигнал к указанному в параметре Output data type типу данных.

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

Выход

Port_1 — выходной сигнал
скаляр | вектор | матрица | массив

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

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128

Параметры

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

Output data type — тип выходных данных
Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Fixed

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

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

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

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

OutDataTypeStr

Значение:

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

По умолчанию:

Float64

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

Значения

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

По умолчанию

выключено

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

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