3 Arria ® 10 デバイスにおける可変精度 DSP ブロック
3.4 ブロック・アーキテクチャー
Arria 10の可変精度 DSP ブロックは次の要素で構成されています。
表 22. ブロック・アーキテクチャー
DSP 実装 固定小数点演算 浮動小数点演算
ブロック・アーキテクチャー • 入力レジスターバンク
• パイプライン・レジスター
• プリアダー
• 内部係数
• 乗算器
• 加算器
• アキュムレーターとチェーンアウト加算器
• シストリック・レジスター
• ダブル累算レジスター
• 出力レジスターバンク
• 入力レジスターバンク
• パイプライン・レジスター
• 乗算器
• 加算器
• アキュムレーターとチェーンアウト加算器
• 出力レジスターバンク
可変精度 DSP ブロックが固定小数点演算シストリック FIR モードでコンフィグレーションされない場 合、両方のシストリック・レジスターがバイパスされます。
図 -25: Arria 10デバイスにおける固定小数点演算の可変精度 DSP ブロック・アーキテクチャー (18 x 19モード )
Input Register Bank
scanin
scanout LOADCONST
ACCUMULATE NEGATE
dataa_y0[18..0]
dataa_z0[17..0]
dataa_x0[17..0]
COEFSELA[2..0]
datab_y1[18..0]
datab_z1[17..0]
datab_x1[17..0]
COEFSELB[2..0]
SUB
+/-Pre-Adder
+/-Pre-Adder
+/-Internal Coefficient
Internal Coefficient
Multiplier
Adder
+/-
+/-Systolic Registers
Systolic Register
Chainout adder/
accumulator +
Output Register Bank
Constant
Double Accumulation
Register chainin[63..0]
chainout[63..0]
Resulta_[63:0]
Multiplier x
x CLK[2..0]
ENA[2..0]
ACLR[1..0]
イネーブルされると、シストリック・レジスターは 出力レジスターバンクとして同じクロックソースで クロックされます。
Pipleine Register
Resultb_[36:0]
図 -26: Arria 10デバイスにおける固定小数点演算の可変精度 DSP ブロック・アーキテクチャー (27 x 27モード )
+
Constant
64 Double Accumulation
Register
Result[63..0]
chainout[63..0]
Internal Coefficients
+/-LOADCONST
ACCUMULATE NEG dataa_y0[26..0]
dataa_z0[25..0]
dataa_x0[26..0]
COEFSELA[2..0]
Multiplier x chainin[63..0]
Output Register Bank Chainout Adder/
Accumulator Input
Register Bank
Pre-Adder +/-Pipeline Register
図 -27: Arria 10デバイスにおける浮動小数点演算の可変精度 DSP ブロック・アーキテクチャー
chainout[31:0]
chainin[31:0]
accumulate
dataa_x0[31:0]
dataa_y0[31:0]
dataa_z0[31:0]
Output Register Bank
result[31:0]
Input Register
Bank
Multiplier
Adder
Pipeline Register
Pipeline Register
Pipeline Register
3.4.1 入力レジスターバンク
表 23. 入力レジスターバンク
固定小数点演算 浮動小数点演算
• データ
• ダイナミック・コントロール信号
• 遅延レジスターの 2 セット
• データ
• ダイナミック ACCUMULATE コントロール信号
DSP ブロック内のすべてのレジスターは、ポジティブエッジでトリガーされ、パワーアップ時にクリアー されます。各乗算器オペランドは、入力レジスターをバイパスして直接入力レジスターまたは乗算器を供 給することができます。
次の可変精度 DSP ブロック信号は、可変精度 DSP ブロック内の入力レジスターを制御します。
• CLK[2..0]
• ENA[2..0]
• ACLR[0]
固定小数点演算の18 x 19モードでは、入力カスケードとチェーンアウト機能の両方を使用する場合、
遅延レジスターを使用してレイテンシー要件のバランスが図れます。
タップ遅延ライン機能を使用すると、一般配線またはカスケードチェーンから乗算器入力の上位レグ、固 定小数点演算18 x 19モードの dataa_y0 と datab_y1、および固定小数点演算27 x 27モードの みの dataa_y0 が駆動できます。
3.4.1.1 固定小数点演算の遅延レジスターの 2 セット
固定小数点演算の18 x 19モードで使用可能な、入力カスケードチェーンに沿った 2 つの遅延レジス ターは、上位遅延レジスターと下位遅延レジスターになります。遅延レジスターは、36 ビット入力と 27 x 27 モードに加算する 18 x 19 乗算ではサポートされません。
図 -28: Arria 10デバイスにおける固定小数点演算18 x 19モードの可変精度 DSP ブロックの入力レジ スター
次の図は、データレジスターのみを表しています。コントロール信号のレジスターは図示されていません。
dataa_y0[18..0]
dataa_z0[17..0]
dataa_x0[17..0]
datab_y1[18..0]
Top delay registers
datab_z1[17..0]
datab_x1[17..0]
Bottom delay registers scanin[18..0]
scanout[18..0]
CLK[2..0]
ENA[2..0]
ACLR[0]
図 -29: Arria 10デバイスにおける固定小数点演算27 x 27モードの可変精度 DSP ブロックの入力レジ スター
次の図は、データレジスターのみを表しています。コントロール信号のレジスターは図示されていません。
dataa_y0[26..0]
dataa_z0[25..0]
dataa_x0[26..0]
scanin[26..0]
CLK[2..0]
ENA[2..0]
ACLR[0]
scanout[26..0]
3.4.2 パイプライン・レジスター
パイプライン・レジスターは最大 Fmax 性能を得るために使用されます。なお、高い Fmax が不要の場 合、パイプライン・レジスターはバイパスすることができます。
次の可変精度 DSP ブロック信号により、可変精度 DSP ブロック内のパイプライン・レジスターを制御 します。
• CLK[2..0]
• ENA[2..0]
• ACLR[1]
浮動小数点演算は、次のいずれかが実行できるパイプライン・レジスターの 2 つのレイテンシー・レイヤ ーを有します。
• パイプライン・レジスターのすべてのレイテンシー・レイヤーをバイパスする
• パイプライン・レジスターのレイテンシー・レイヤーのいずれか 1 つを使用する
• パイプライン・レジスターの両方のレイテンシー・レイヤーを使用する
3.4.3 固定小数点演算でのプリアダー
各可変精度 DSP ブロックは、それぞれ 2 つの19 ビット・プリアダーを有します。これらのプリアダー は次の構成でコンフィグレーションが可能です。
• 2 つの独立した19 ビット・プリアダー
• 1 つの27 ビット・プリアダー
プリアダーは、次の入力コンフィグレーションで加算と減算の両方をサポートします。
• 18 x 19モードにおける18 ビット ( 符号あり、または符号なし ) の加算または減算
• 27 x 27モードにおける26 ビットの加算あるいは減算
同じ DSP ブロック内のプリアダーの両方が使用される場合、プリアダーは同じ動作タイプ ( 加算また は減算のいずれか ) を共有する必要があります。
3.4.4 固定小数点演算での内部係数
Arria 10の可変精度 DSP ブロックでは、ダイナミック入力または内部係数のいずれかから被乗数を
柔軟に選択することができます。
内部係数は、18 ビット・モードと27 ビット・モードで被乗数の定数係数を最大 8 つサポートすることが できます。内部係数機能をイネーブルすると、係数マルチプレクサーの選択を制御するにあたって COEFSELA/COEFSELBが使用されます。
3.4.5 マルチプライヤー数
1 つの可変精度 DSP ブロックは、乗算器のデータ幅と実装に応じて多数の乗算を並行して実行するこ とができます。
各可変精度 DSP ブロックはそれぞれ、2 つの乗算器を有します。これら 2 つの乗算器は、いくつかの動 作モードでコンフィグレーションすることができます。
表 24. 動作モード
固定小数点演算 浮動小数点演算
• 1 つの27 x 27乗算器
• 2 つの18 ( 符号ありまたは符号なし ) x 19 ( 符号あり ) 乗算器
1 つの浮動小数点演算単精度乗算器
関連情報
53ページの 動作モードの説明
乗算器の動作モードについての詳細を提供します。
3.4.6 加算器
動作モードに応じて、次の加算器を使用することができます。
• 1 つの55 ビット加算器または38 ビット加算器
• 1 つの浮動小数点演算単精度加算器
DSP 実装 ダイナミック SUB ポートを使用した加算 ダイナミック SUB ポートを使用した減算
固定小数点演算 可能 可能
浮動小数点演算 不可能 不可能
3.4.7 固定小数点演算のアキュムレーターとチェーンアウト加算器
Arria 10の可変精度 DSP ブロックでは、固定小数点演算向けの64 ビットのアキュムレーターと
64 ビットの加算器をサポートしています。
次の信号は、アキュムレーターの機能をダイナミックに制御することができます。
• NEGATE
• LOADCONST
• ACCUMULATE
アキュムレーターは、出力レジスターバンクとアキュムレーターの間に位置する 64 ビットのダブル累 算レジスターをイネーブルすることで、ダブル累算をサポートします。
アキュムレーターおよびチェーンアウト加算器機能は、2 つの固定小数点演算の独立した18 x 19モ ードではサポートされません。
表 25. アキュムレーター機能とダイナミック・コントロール信号
次の表は、各機能のダイナミック信号の設定と説明をリストしています。なお、この表中の X は、"don't care" の値を示します。
機能 説明 NEGATE LOADCONST ACCUMULATE
Zeroing アキュムレーターをディスエーブ
ルします。 0 0 0
Preload
結果は常にプリロード値に加算 されます。 64 ビットのプリロー ド値の 1 ビットのみは「1」です。
この値は64 ビットの結果の任意 の位置への DSP 結果の丸めとし て使用できます。
0 1 0
Accumulation 前回の累算結果に現在の結果を
加算します。 0 X 1
Decimation + Accumulate
この機能は現在の結果を 2 の補 数に変換し、以前の結果に加算し ます。
1 X 1
Decimation + Chainout Adder
この機能は現在の結果を 2 の補 数に変換し、以前の DSP ブロッ クの出力に加算します。
1 0 0
3.4.8 固定小数点演算のシストリック・レジスター
各可変精度 DSP ブロックは、それぞれ 2 つのシストリック・レジスターを有します。可変精度 DSP ブ ロックが固定小数点演算シストリック FIR モードでコンフィグレーションされない場合、両方のシスト リック・レジスターがバイパスされます。
シストリック・レジスターの最初のセットは、上位乗算器の 18 ビット入力と 19 ビット入力をそれぞれ 登録するために使用される 18 ビットおよび 19 ビットのレジスターで構成されています。
シストリック・レジスターの 2 番目のセットは、以前の可変精度 DSP ブロックからのチェーンイン入力 を遅延させるために使用されます。
また、同じクロックソースのすべてのシストリック・レジスターを、出力レジスターとしてクロックする必要 があります。なお、出力レジスターはオンにしておく必要があります。
3.4.9 固定小数点演算のダブル累算レジスター
ダブル累算レジスターは、アキュムレーターのフィードバック・パスにおける追加のレジスターです。ダブ ル累算レジスターをイネーブルすると、アキュムレーターのフィードバック・パスにて追加のクロックサイ クル遅延が生じます。
このレジスターは、出力レジスターバンクと同じCLK、ENA、およびACLRの設定を有します。
このレジスターをイネーブルすることで、同じ数の可変精度 DSP ブロックを使用する 2 つのアキュム レーター・チャネルを有することができます。これはインターリーブした複雑なデータ (I、Q) を処理する 際に役立ちます。
3.4.10 出力レジスターバンク
クロック信号のポジティブエッジは 74 ビットのバイパス可能な出力レジスターバンクをトリガーし、パ ワーアップ後にクリアーされます。
次の可変精度 DSP ブロック信号は、各可変精度 DSP ブロックの出力レジスターを制御します。
• CLK[2..0]
• ENA[2..0]
• ACLR[1]