Engee 文档

开关

根据第二输入端的值,在第一和第三输入端之间切换输出。

类型: Switch

图书馆中的路径:

/Basic/Signal Routing/Switch

说明

开关*程序块根据第二输入端的信号值传递第一或第三输入端的信号。第一和第三输入端为输入信号,第二输入端为控制信号。程序块将信号从第一输入端传递到输出端的条件由*传递第一输入端的标准*和*阈值*参数设定。

港口

输入

端口_1 - 第一个输入信号
标量

两个输入信号中的第一个。程序块根据控制信号的值,将一个或另一个输入信号传递到输出端。程序块将信号从第一个输入端传递到输出端的条件由*传递第一个输入端的标准*和*阈值*参数指定。

数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

支持复数:是

端口 2 - 控制信号
scalar | vector

控制信号,用于确定哪个输入信号应传递到输出端。如果控制信号满足*传递第一个输入*中指定的条件,则程序块传递第一个输入信号。否则,程序块将传递第二个输入信号。

数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

支持复数:不支持

端口 3 - 第二个输入信号
标量

两个输入信号中的第二个。程序块根据控制信号的值,将一个或另一个输入信号传递到输出端。程序块将信号从第一个输入端传递到输出端的条件由*传递第一个输入端的标准*和*阈值*参数指定。

数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

支持复数:是

输出

端口_1 - 输出信号
标量

根据控制信号的值,从第一个或第二个输入信号导出的输出信号。

数据类型: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

*支持复数:是

参数

主要参数

通过第一个输入信号的标准 - 选择通过第一个输入信号的标准
u2 > 阈值(默认) | u2 >= 阈值 | u2 ~= 0

选择使程序块将第一个输入信号传递到输出端的条件。如果控制输入 Port_2 满足 Criteria for passing first input 中指定的条件,程序块将把第一个输入信号传递到 Port_1。否则,程序块将传递第二个输入信号 Port_3。选择选项:

  • u2 >= Threshold - 控制输入大于或等于阈值;

  • u2 > Threshold - 控制输入大于阈值;

  • u2 ~= 0 - 控制输入值不同于零。

提示

如果控制输入是布尔信号,则使用以下条件和阈值组合之一:

  • u2 >= 阈值,其中阈值为 1

  • u2 > 阈值,其中阈值为`0`;

  • u2 ~= 0.

否则,开关 模块会忽略阈值,并使用布尔值来路由信号。当值为 1 时,程序块将路由第一个输入,而当值为 0 时,它将路由第三个输入。

软件使用

块参数

Criteria

价值观

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

默认值

u2 > Threshold

阈值 - 标准中使用的阈值
0(默认)` | 标量 | 向量 | 矩阵 | `数组

用于传递第一个输入*参数的*标准中的阈值,它决定了程序块将哪个输入传递到输出。

依赖关系

要使用此参数,请将传递第一个输入*参数的*标准设置为`u2 >= 阈值`或`u2 > 阈值`。

软件使用

块参数

threshold

价值观

scalar| vector| matrix| array

默认值

'0'

信号属性

要求所有数据端口输入具有相同的数据类型 - 所有数据输入必须具有相同的数据类型
已禁用(默认) | 已启用

启用此参数后,所有数据输入都具有相同的数据类型。

软件使用

块参数

InputSameDT

价值观

disabled| enabled

默认值

输出数据类型 - 输出数据类型
| Inherit: auto (default) | 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` - 正数和负数都向下舍入(向负无穷)。

  • 天花板"- 将正数和负数向上舍入(向正无穷舍入)。

  • 收敛"- 将数字舍入到最接近的可表示值。如果数字的小数部分以 5 结尾,则将数字舍入为最接近的偶数整数。

  • 最近"- 将数字舍入到最接近的可表示值。如果数字的小数部分以 5 结尾,则数字向上舍入(向正无穷)。

  • Round` - 将数字舍入到最接近的可表示值。如果数字的小数部分以 5 结尾,正数向上舍入(向正无穷),负数向下舍入(向负无穷)。

  • Zero - 将数字舍入为零。

块参数总是四舍五入到最接近的可表示值。

计划使用

块参数

RndMeth

价值观

Ceiling | Convergent | Floor | Nearest | Round | Zero

默认值

Floor

整数溢出时饱和 - 整数溢出时饱和
已禁用(默认) | 已启用

选中该复选框时,将对整数和定点数使用饱和运算:发生溢出时,结果将自动替换为数据类型的最大可能(模)值。

操作 原理 对溢出的影响 示例

已选中(启用)Saturate on integer overflow 复选框。

您的模型可能存在溢出,您希望生成的代码明确防止溢出。

当发生溢出时,结果将自动替换为数据类型可能的最大值(模)。

Int8(有符号 8 位整数)数据类型可表示的最大值是 127。

块操作的任何结果如果超过这个最大值,都会导致 8 位整数溢出。检查时,块输出饱和到 127。同样,在最小输出值为 -128 时,程序块输出也会饱和。

整数溢出时饱和*复选框未选中(禁用)。

您希望优化生成代码的效率。

您希望避免过度确定程序块如何处理超出范围的信号。

溢出将以数据类型所能表示的适当值承载。

Int8(有符号的 8 位整数)数据类型可表示的最大值为 127。

块操作的任何结果如果超过这个最大值,都会导致 8 位整数溢出。如果未选中复选框,软件会将导致溢出的值解释为 Int8,这可能会导致意外结果。例如,以 Int8 表示的块 130(二进制代码 1000 0010)的结果为 -126。

选择该复选框后,饱和将应用于程序块中的所有内部操作,而不仅仅是输入/输出数据或结果。

计划使用

块参数

SaturateOnIntegerOverflow

价值观

|

默认值

附加选项

C 代码生成: 是

Verilog生成:是