ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Sum ブロックでの入力の並べ替え

この例では、Sum ブロックでの入力の並べ替えの方法を示します。- 符号を最初の演算として使用すると、可能な場合は、ブロックで入力が並べ替えられて + 演算が使用されます。たとえば、式 output = -a-b+c では、output = c-a-b となるように、Sum ブロックにより入力が並べ替えられます。アキュムレータを初期化するには、Sum ブロックでは最初の + 入力端子を使用します。

ブロックでは最初のオペランド a で単項マイナス演算が実行されるのを避けます。単項マイナス演算が実行されると a の値が固定小数点データ型用に変更されてしまうためです。その場合、出力値は、abc の値の累計結果と異なります。

どちらの定数入力でも int8 データ型が使用されます。Sum ブロックはアキュムレータと出力データ型にも int8 を使用し、[整数オーバーフローで飽和] が有効になっています。Sum ブロックで入力が並べ替えられて、127 の理想的な結果が得られます。

  1. 入力を (-Input1 + Input2) から (Input2 - Input1) に並べ替えます。

  2. 最初の + 入力端子を使用して、アキュムレータを初期化します。Accumulator = int8(-1) = -1

  3. 値の累積を続けます。Accumulator = Accumulator - int8(-12) = 127

  4. ブロック出力を計算します。Output = int8(127) = 127

Sum ブロックで入力が並べ替えられない場合は、理想的ではない結果 126 が算出されます。

  1. 最初の入力端子を使用して、アキュムレータを初期化します。Accumulator = int8(-(-128)) = 127

  2. 飽和が on に設定されているため、アキュムレータの初期値は 127 で飽和し、ラップしません。

  3. 値の累積を続けます。Accumulator = Accumulator + int8(-1) = 126

  4. ブロック出力を計算します。Output = int8(126) = 126

output = -a-b+c の単項マイナス演算を明示的に指定するには、Math Operations ライブラリの Unary Minus ブロックを使用できます。