Main Content

Bitwise Operator

对输入执行指定的按位运算

  • Bitwise Operator block

库:
Simulink / Logic and Bit Operations
HDL Coder / Logic and Bit Operations

描述

Bitwise Operator 模块执行您为一个或多个操作数指定的按位运算。与 Logical Operator 模块的逻辑运算不同的是,按位运算将操作数视为位向量,而不是单个值。

对模块运算的限制

Bitwise Operator 模块不支持移位运算。对于移位运算,请使用 Shift Arithmetic 模块。

当配置为多输入 XOR 门时,此模块将按照 IEEE® 逻辑元素标准的规定执行模 2 加法。

示例

全部展开

以下模型显示 Bitwise Operator 模块如何处理无符号输入。

每个 Constant 模块输出一个 8 位无符号整数 (uint8)。要确定每个 Constant 模块输出的二进制值,请使用 dec2bin 函数。所有逻辑运算的结果都显示在下面的表中。

以下模型显示 Bitwise Operator 模块如何处理有符号输入。

每个 Constant 模块输出一个 8 位有符号整数 (int8)。要确定每个 Constant 模块输出的二进制值,请使用 dec2bin 函数。所有逻辑运算的结果都显示在下面的表中。

端口

输入

全部展开

输入信号,指定为标量或向量。

  • NOT 运算符仅接受一个输入,该输入可以是标量也可以是向量。如果输入为向量,则输出为相同大小的向量,其中包含输入向量元素的按位逻辑补码。

  • 对于单个向量输入,模块会将运算(除 NOT 运算符外)应用于向量的所有元素。

  • 对于两个或更多输入,模块将在所有输入之间执行运算。如果输入为向量,模块将在对应的向量元素之间执行运算以生成向量输出。

数据类型: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

输出

全部展开

指定为输出数据类型的输出信号,模块从驱动模块继承该输出数据类型,且该数据类型必须准确表示零。满足此条件的数据类型包括有符号整数和无符号整数数据类型。

模块输出的大小取决于输入的数量、向量大小以及您选择的运算符。如果您不指定位掩码,则输出为标量。如果您指定位掩码,则输出为向量。

数据类型: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

参数

全部展开

为模块操作数指定按位逻辑运算符。

您可以选择以下按位运算之一:

按位运算描述

AND

如果对应的位全部为 TRUE,则为 TRUE

OR

如果至少一个对应的位为 TRUE,则为 TRUE

NAND

如果至少一个对应的位为 FALSE,则为 TRUE

NOR

如果没有对应的位为 TRUE,则为 TRUE

XOR

如果有奇数个对应位为 TRUE,则为 TRUE

NOT

如果输入为 FALSE,则为 TRUE(仅适用于单个输入)

编程用法

模块参数logicop
类型:字符向量
'AND'|'OR' |'NAND'|'NOR' |'XOR' | 'NOT'
默认值'AND'

选择要使用位掩码。清除此复选框将启用输入端口数目并禁用位掩码将掩码视为

编程用法

模块参数UseBitMask
类型:字符向量
'off'|'on'
默认值'on'

指定输入的数量。您可以有多个输入端口。

依存关系

清除使用位掩码复选框将启用输入端口数目并禁用位掩码将掩码视为

编程用法

模块参数NumInputPorts
类型:字符向量
:正整数
默认值'1'

指定要与单个输入关联的位掩码。此参数将值读取为十六进制值。

您可以使用位掩码设置、获取或清除输入位。

要执行...将 Operator 参数设置为...并按此方式创建位掩码...
位设置OR对您要设置为 1 的每个对应的输入位使用 1
位清除AND对您要设置为 0 的每个对应的输入位使用 0
位获取AND对您要获取的每个对应的输入位使用 1

假设您要设置 8 位输入向量的第四位。位掩码将为 00010000,对于位掩码参数,您可以将其指定为 2^4。要清除该位,位掩码将为 11101111,对于位掩码参数,您可以将其指定为 2^7+2^6+2^5+2^3+2^2+2^1+2^0

提示

不要使用大于 53 位的掩码。否则,仿真过程中将出现错误消息。

依存关系

仅当您选择使用位掩码时,此参数才可用。

编程用法

模块参数BitMask
类型:字符向量
:正整数
默认值'bin2dec('11011001')'

指定将掩码视为真实值还是存储的整数。

编码方案是 V = SQ + B,如 Fixed-Point Designer™ 文档中的定标 (Fixed-Point Designer)部分所述。真实值将掩码视为 V存储的整数将掩码视为 Q

依存关系

仅当您选择使用位掩码时,此参数才可用。

编程用法

模块参数BitMaskRealWorld
类型:字符向量
'Real World Value' | 'Stored Integer'
默认值'Stored Integer'

模块特性

数据类型

Booleana | fixed point | integer

直接馈通

多维信号

可变大小信号

过零检测

a 建议不要对布尔信号进行位运算。

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2006a 之前推出