加算器の丸めと飽和

Versal ACAP DSP エンジン アーキテクチャ マニュアル (AM004)

Document ID
AM004
Release Date
2022-09-11
Revision
1.2.1 日本語

加算/減算の飽和 (SAT) と丸め (RND) を実装するには、DSP58 をもう 1 つ追加し、最初の DSP58 からの P 出力の一部のビットを使用して SAT 条件を検出します。次の図に、この実装の概略ブロック図を示します。

図 1. 加算器の丸めと飽和

プログラマブル ロジックで実装したマルチプレクサーを DSP 1 の P 出力ビットで制御し、DSP 2 で使用する OPMODE と CARRYIN を生成します。加算/減算のオペランドは、DSP 1 の A:B と C に入力します。丸め値は WMUX に入力します (無限大への丸めを静的に実装)。このユース ケースのデザインでは、入力を加算するか減算するかを専用の入力ピン (subadd) で判定します。出力は 26 ビット (整数部 8 ビットと小数部 18 ビット) で表現されるため、DSP 1 からの P 出力のビット 27、26、および 25 をチェックすると飽和条件 (正または負の大きさ) を検出できます。ビット 25 は符号ビットです。ビット 26 および 27 はガード ビットです。ガード ビットが 2 つ必要なのは、ワースト ケースでは RND 加算によるオーバーフローの可能性があるためです。飽和の場合、X および W マルチプレクサーに入力される一意の値がそれぞれ ALU の出力として選択されます。出力 (8 ビットの整数部) は、10 進数表現で正の最大値 +127 から負の最大値 -128 までの範囲となります。

W、X、Y、Z および CIN に対する演算は、ALUMODE を次のように設定して制御します。

詳細は、ALUMODE 入力 を参照してくだい。

ALUMODE = 0001 の場合に -1 をオフセットするには、加算と減算を選択する入力ピンを DSP 1 の CARRYIN ポートに接続します。

このユース ケースに関連するリファレンス デザイン ファイルは、デザイン アーカイブ ファイル am004-versal-dsp-engine.zip rounding_saturation ディレクトリにあります。