Using Simulink    
Bitwise Logical Operator

符号なし整数信号のビットを論理マスク、反転、シフトします。

ライブラリ

Math

詳細



Bitwise Logical Operatorは、符号なし整数信号のビットについて、論理マスク(AND, OR, XOR)、反転(NOT), シフト(SHIFT_LEFT, SHIFT_RIGHT)演算を行います。ブロックのパラメータダイアログを使って実行する演算を選択することができます。Bitwise Logical Operatorブロックを使って、スカラの符号なし整数信号と同様にベクトルについてもビット単位の演算を行うことができます。

マスク演算

Bitwise Logical Operatorのマスク演算(AND, OR, XOR)は、入力信号の各ビットを、マスクと呼ばれる定数オペランドの対応するビットと論理的に組み合わせます。マスクの値と論理演算をブロックのパラメータダイアログによって指定します。マスクと論理演算は、出力信号の各ビットの値を以下のように決定します。

演算
マスクビット
入力ビット
出力ビット
AND
1
1
1

1
0
0

0
1
0

0
0
0
OR
1
1
1

0
1
1

1
0
1

0
0
0
XOR
1
1
0

1
0
1

0
1
1

0
0
0

スカラ入力とベクトル入力についてマスクの配列またはベクトルを指定することができます。入力信号がベクトルの場合は、ブロックは最初のマスクを最初の入力要素に適用し、2番目のマスクを2番目の入力に適用し、3番目以降も同様にして、ベクトル出力を作成します。入力がスカラである場合は、ブロックは、対応するマスクを入力に適用した結果を要素とするベクトル出力を生成します。

マスキング演算を選択する際に、ブロックのパラメータダイアログのSecond operand フィールドを使って単数または複数のマスクを指定します。スカラ、ベクトル、セル配列を評価する任意のMATLAB表現を入力することができます。マスク表現で文字列を用いると、16進数を指定します(例., 'FFFF')。

必要ならば、ブロックはマスクの高次のビットを打ち切って、入力信号のデータタイプのワードサイズに合わせます。たとえば、マスクの値を 'FF00' と指定し、入力信号のタイプが uint8 であるとします。ブロックは、指定した値を '00' に打ち切ります。

ベクトルを使って16進のマスクを指定することができますが、この方法の思わぬ落とし穴に気を付けてください。たとえば、MATLAB表現 ['00' 'FF'] は、2つの文字列ではなく、単一の文字列 'FF00' を表わします。同様に、表現 ['FFFF'; '0000'] は、2つの文字列を表わしますが、表現 ['FFFF'; '00'] は不正でありMATLABはエラーを発生します。これらの間違いは、マスクに対して常にセル配列を使って16進数値を指定するか、10進数と16進数を混在させることによって防ぐことができます。たとえば、つぎのモデル

は、セル配列 ({'F0' '0F'} ) を用いて2要素入力ベクトルのマスクに対する16進値を指定します。

反転演算

Bitwise Logical Operatorの NOT 演算は、入力信号のビットを反転します。特に、入力信号について1の補数演算を行い、対応する入力ビットが0である場合は各ビットが1である出力信号を生成し、逆の場合も同様です。

シフト演算

Bitwise Logical Operatorのシフト演算 SHIFT_LEFT および SHIFT_RIGHT は、入力信号のビットを左または右にシフトして、出力信号を生成します。シフトの量はブロックのパラメータダイアログの Second operand フィールドで指定します。入力信号のワードサイズよりも大きいシフト量を指定する場合は、ブロックは入力のワードサイズをシフト量として利用し、その結果出力はゼロ信号になります。

スカラ入力とベクトル入力に対して配列またはベクトルのシフトファクタを指定することができます。入力信号がベクトルである場合、ブロックは最初のシフトファクタを最初の入力要素に適用し、2番目のファクタを2番目の入力に適用し、のようにしてベクトル出力を生成します。入力がスカラである場合、ブロックは、対応するシフトファクタを入力に適用した結果を要素とするベクトル出力を生成します。

サポートされているデータタイプ

Bitwise Logical Operatorは、符号なし整数のデータタイプ、uint8, uint16, uint32 の実数値入力を受け入れます。ベクトル入力のすべての要素は、同じデータタイプでなければなりません。出力信号は、入力と同じデータタイプです。

パラメータとダイアログボックス

Bitwise operator
入力信号に適用するビット単位の演算子を指定
Second operand
マスク演算に対するマスクオペランドとシフト操作に対するシフト量を指定します。スカラ、ベクトル、セル配列を評価する任意のMATLAB表現を入力することができます。ブロック入力がベクトルである場合は、ブロックは各値を対応する入力の要素に適用します。入力がスカラである場合は、ブロックは、対応するパラメータ値を入力に適用した結果を要素とするベクトルを出力します。

特性

サンプル時間
接続されるブロックから継承
スカラ拡張
入力と Second operand パラメータについて
ベクトル化

状態
なし
ゼロクロッシング
なし
直接フィードスルー
あり


 Band-Limited White Noise Bus Selector