総和処理
加算は、プロセッサが実行する最も一般的な算術演算です。n ビットの 2 つの数を加算すると、左端の数字からの桁上げによって、n + 1 の非零数を使用した結果が出る可能性が常にあります。
3 つの数値を合計するとします。これらの各数値は 8 ビット ワードで表され、それぞれに異なる 2 進小数点のみのスケーリングがあります。また、出力は 2 進小数点のみのスケーリングが 2-3 の 8 ビット ワードに制限されます。
入力値 19.875、5.4375、および 4.84375 の総和を次のモデルで示します。
合計は以下の手順に従います。
バイアスが一致するため、Qa の初期値は重要ではありません。
合計する最初の数値 (19.875) には、出力小数部の勾配と一致する小数部の勾配があります。さらに、2 進小数点とストレージ タイプが同一なので、変換は重要ではありません。
総和演算は次のように実行されます。
合計する 2 番目の数値 (5.4375) には、出力小数部の勾配と一致する小数部の勾配があるので、勾配の調整は不要です。ストレージ データ型も一致しますが、2 進小数点の違いにより、ビットと 2 進小数点の両方を右へ 1 桁シフトする必要があります。
精度が 1 ビット低下し、結果の値は丸めモードによって決定された QTemp になります。この例では、無限大方向への丸めが使用されます。この場合、ビットと 2 進小数点が両方とも右へシフトするため、オーバーフローは起こり得ません。
総和演算は次のように実行されます。
オーバーフローは発生しませんでしたが、この演算では起こり得ます。
合計する 3 番目の数値 (4.84375) には、出力小数部の勾配と一致する小数部の勾配があるので、勾配の調整は不要です。ストレージ データ型も一致しますが、2 進小数点の違いにより、ビットと 2 進小数点の両方を右へ 2 桁シフトする必要があります。
2 ビットの精度低下が発生し、結果の値は丸めモードによって決定された QTemp になります。この例では、無限大方向への丸めが使用されます。この場合、ビットと 2 進小数点が両方とも右へシフトするため、オーバーフローは起こり得ません。
総和演算は次のように実行されます。
オーバーフローは発生しませんでしたが、この演算では起こり得ます。
以下に示すように、手順 7 の結果は理想的な合計とは異なります。
加算と減算を実行するブロックには、Add、Gain、Discrete FIR Filter などがあります。