DSP58 の動作の概略

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

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

DSP58 の固定小数点演算部分には 27 ビットの前置加算器、27 x 24 ビットの 2 の補数乗算器 (オプションで積のネゲートをサポート) があり、その後に 4 つの 58 ビット データパス マルチプレクサー (W、X、Y、および Z 出力) があります。さらにその後には、4 入力の加算器/減算器または 2 入力論理ユニットが配置されています。2 入力論理ユニットを使用する場合、乗算器は使用できません。

DSP58 へのデータおよび制御入力は、演算およびロジック段へ送信されます。A および B データ入力は、オプションで 1 つまたは 2 つのレジスタを使用できるため、パイプライン段数の多い DSP アプリケーション ソリューションに有効です。D パスと AD パスはそれぞれ 1 回レジスタに保持できます。その他のデータ入力および制御入力は、オプションとして 1 つのレジスタを使用できます。

次式に、加算器/減算器による W、X、Y、Z と CIN の組み合わせを示します。CIN、W マルチプレクサー出力、X マルチプレクサー出力、および Y マルチプレクサー出力は常に合算されます。この結果を、Z マルチプレクサー出力と加算または減算できます。減算に使用するには、ALUMODE を 0001 に設定します。

DSP58 の一般的な使用法は、A 入力と B 入力を乗算した結果を C レジスタに加算する、または C レジスタから減算するというものです。乗算器ファンクションを選択すると、X および Y マルチプレクサー出力の両方を使用して加算器へ送信されます。乗算器から出力された 2 つの 51 ビット部分積は、58 ビットへ符号拡張されてから加算器/減算器へ送信されます。

1 段目の乗算器を使用しない場合、58 ビットの 2 入力ビット単位ロジック ファンクションは、AND、OR、NOT、NAND、NOR、XOR、および XNOR を実行します。これらのファンクションへの入力は次のとおりです。

  • W マルチプレクサーにはすべて 0
  • X マルチプレクサーには A:B または P
  • Y マルチプレクサーには論理演算に応じてすべて 1 またはすべて 0
  • Z マルチプレクサーには C、P、PCIN のいずれか

PCIN はカスケード接続した下位の DSP58 からの入力であるため、このカスケード パスを使用してさらに多ビットの論理演算を作成できます。Y マルチプレクサーで C 入力を選択し、ALUMODE[3:0] = 0100 とした場合、58 ビット、3 入力のビット単位 XOR3 論理演算がサポートされます。

加算器/減算器または論理ユニットの出力は、パターン検出ロジックへ送信されます。パターン検出器により、DSP58 はカウントが上限に達したときに収束丸めとカウンター自動リセットを実行できるほか、アキュムレータのオーバーフロー、アンダーフロー、および飽和もサポートされます。パターン検出器と論理ユニットを組み合わせると、2 つの 58 ビット フィールドの 58 ビットのダイナミック比較が実行可能になります。

次の図に、DSP58 の概略図を示します。9 ビットの OPMODE が W、X、Y、および Z マルチプレクサーの選択を制御し、加算器/減算器または論理ユニットへの入力へ接続します。いずれの場合も、乗算器から X、Y、および Z マルチプレクサーへ渡される 51 ビットの部分積データは符号拡張され、58 ビット入力データパスを形成して加算器/減算器へ送信されます。51 ビット オペランドおよび 58 ビット アキュムレータ出力に基づき、「ガードビット」 (オーバーフローから保護するビット) は 7 になります。MACC 動作数を拡張させるには、MACC_EXTEND を使用する必要があります。これにより、2 つの DSP58 を使用する 116 ビットの MACC へ拡張できます。A と B の両方が 18 ビットに制限され、27 および 24 ビットへ符号拡張されている場合、MACC 用のガード ビットは 22 (58–36) ビットになります。CARRYOUT ビットは、乗算動作中は無効です。OPMODE、ALUMODE、CARRYINSEL、および CARRYIN の組み合わせによって、加算器/減算器または論理ユニットのファンクションを制御します。

図 1. DSP58 の動作の概略