DSP58 のアーキテクチャの特長

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

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

DSP58 には、A および B レジスタの後に 27 ビットの入力ベクターを持つ前置加算器があります。この入力ベクターは D レジスタと呼ばれ、前置加算器のレジスタとして使用できるほか、乗算器への代替入力としても使用できます。次の図に、DSP58 固有の機能を示します。

図 1. DSP58 の入力レジスタと前置加算器の階層図

各 DSP58 には、2 入力マルチモード乗算器、マルチプレクサー、および 4 入力の加算器/減算器/アキュムレータが、この順番に配置されています。DSP58 乗算器の入力は非対称で、24 ビットおよび 27 ビットの 2 の補数オペランドを受け取ります。この乗算器では、2 つの部分積で構成される 51 ビットの 2 の補数を出力します。これらの部分積は X および Y マルチプレクサーでそれぞれ 58 ビットへ符号拡張され、4 入力加算器へ送信されて最終的に合算されます。つまり、乗算器が使用される場合、加算器は事実上 3 入力加算器となります。

USE_MULT 属性を NONE に設定し、OPMODE を適切に設定することで乗算器をバイパスすると、2 段目の加算器/減算器には 58 ビットの 2 の補数値が 4 つと 1 ビットの CARRYIN が入力され、58 ビットの 2 の補数結果が 1 つ出力されます。SIMD モードの場合、この加算器/減算器は CARRYOUT ビットを使用して、デュアル 24 ビットまたはクワッド 12 ビット SIMD 演算が可能です。2 段目の加算器/減算器では、動的制御信号の ALUMODE により、2 つの 58 ビット 2 進数 (特殊な XOR3 の場合は 3 つの 58 ビット 2 進数) に対するビット単位の論理演算もサポートします。

DSP カラム内で DSP58 をカスケード接続すると、より高レベルの DSP 機能をサポートできます。2 つのデータパス (ACOUT、BCOUT)、および DSP58 出力 (PCOUT、MULTSIGNOUT、CARRYCASCOUT) がカスケード接続可能です。データパスのカスケード接続は、フィルター デザインで活用されます。たとえば、有限インパルス応答 (FIR) フィルター デザインは、カスケード入力を使用して一連の入力データ サンプルを包括し、カスケード出力を使用して部分的な出力結果をまとめあげます。カスケード接続は内部ロジックの一般配線を使用しないため、高性能かつ低消費電力な DSP フィルター機能を構築できます。

C 入力により、3 入力加算器や加算器付き 2 入力乗算器など多くの 3 入力演算ファンクションを構築できます。このファンクションのサブセットは、0 または無限大の方向への対称丸め乗算をサポートします。C 入力にパターン検出機能を組み合わせると、収束丸めもサポートされます。C 入力を使用して各種丸めモードを実装する方法は、丸め処理 を参照してください。

高精度演算の場合、DSP58 は 23 ビット ( UltraScale™ アーキテクチャからの移行の場合は 17 ビット) の右シフトが可能で、混在精度の演算が可能です。これにより、1 つの DSP58 から出力される部分積を右揃えにして、同じカラムの上に隣接する DSP58 で計算した部分積へ加算できます。この方法により、同じカラムの複数の DSP58 を使用してより高精度な乗算器を構築できます。

入力オペランド、中間積、およびアキュムレータ出力のプログラム可能なパイプラインは、スループットを向上します。58 ビット内部バス (PCOUT/PCIN) を使用し、同じカラムの DSP をまとめることができます。複数の DSP カラムにまたがる場合は、CLB ロジックが必要になります。

DSP58 の出力にあるパターン検出器は、収束丸め、オーバーフロー/アンダーフロー、ブロック浮動小数点、およびアキュムレータ ターミナル カウント (カウンター自動リセット) をサポートします。パターン検出器は、マスク制限されたパターンと DSP58 の出力が一致しているかどうかを検出します。