• 検索結果がありません。

固定小数点演算の動作モード

3 Arria ® 10 デバイスにおける可変精度 DSP ブロック

3.5 動作モードの説明

3.5.1 固定小数点演算の動作モード

3.5.1.1 独立乗算器モード

独立した入力および出力乗算器モードでは、可変精度 DSP ブロックは汎用乗算器の個別の乗算演算 を実行します。

コンフィグレーション ブロックごとの乗算器数

18 ( 符号あり ) x 19 ( 符号あり ) 2

18 ( 符号なし ) x 18 ( 符号なし ) 2

27 ( 符号ありまたは符号なし ) x 27 ( 符号ありまたは符号なし ) 1

3.5.1.1.1 18 x 18または18 x 19独立乗算器

図 -30: Arria 10デバイスの各可変精度 DSP ブロックにおける 2 つの18 x 18または18 x 19独立乗 算器

変数は、下の図で次のように定義されます。

18 x 19オペランドの場合、n = 19およびm = 37

18 x 18オペランドの場合、n = 18およびm = 36

[(m-1)..0]

Multiplier

x

Multiplier

x

Input Register Bank

data_b1[(n-1)..0]

data_a1[17..0]

n

18

Variable-Precision DSP Block

data_b0[(n-1)..0]

data_a0[17..0]

n

18

m

[(m-1)..0]

m

Output Register Bank

Pipeline Register

3.5.1.1.2 27 x 27独立乗算器

図 -31: Arria 10デバイスの各可変精度 DSP ブロックにおける 1 つの27 x 27独立乗算器モード

このモードでは、チェーンアウト加算器またはアキュムレーターと組み合わせた場合、resultは最大64 ビットになり得ます。

Input Register Bank

Multiplier

x Result[53..0]

dataa_b0[26..0]

dataa_a0[26..0]

27

27

54 Variable-Precision DSP Block

Output Register Bank

Pipeline Register

3.5.1.2 独立複素数乗算器

Arria 10デバイスは、2 つの固定小数点演算 Multiplier Adder Sum モードを使用して18 x 19複 素数乗算器モードをサポートします。

図 -32: 複素数乗算式のサンプル

虚部の [(a × d) + (b × c)] は 1 番目の可変精度 DSP ブロックに実装され、実部の [(a × c) - (b

× d)] は 2 番目の可変精度 DSP ブロックに実装されます。

3.5.1.2.1 18 x 19複素数乗算

図 -33: Arria 10デバイスの 2 つの可変精度 DSP ブロックを有する 1 つの18 x 19複素数乗算器

Variable-Precision DSP Block 1

Variable-Precision DSP Block 2

Input Register Bank

Imaginary Part (ad+bc) Multiplier

c[18..0]

b[17..0]

19

18

Multiplier d[18..0]

a[17..0]

19

18

38 Adder

+

x x

Output Register Bank

Input Register Bank

Real Part (ac-bd) d[18..0]

b[17..0]

19

18

c[18..0]

a[17..0]

19

18

38

Output Register Bank

Multiplier

Multiplier

Adder

-x x

Pipeline RegisterPipeline Register

3.5.1.3 Multiplier Adder Sum モード

図 -34: Arria 10デバイスの 1 つの可変精度 DSP ブロックと 2 つの18 x 19乗算器の和

Input Register Bank

Result[37..0]

dataa_y0[18..0]

dataa_x0[17..0]

19

18

Variable-Precision DSP Block

datab_y1[18..0]

datab_x1[17..0]

19

18

38 Multiplier

Multiplier

Adder +/-SUB_COMPLEX

Output Register Bank

x

x

Pipeline Register

3.5.1.4 36 ビット入力に加算する18 x 19乗算モード

Arria 10の可変精度 DSP ブロックは、1 つの18 x 19乗算を36 ビット入力に加算することができ

ます。

下部の乗算器がバイパスされている間は、上位の乗算器を使用して18 x 19乗算への入力を提供しま す。 datab_y1[17..0]信号とdatab_y1[35..18]信号は、36 ビット入力を生成するために連 結されます。

図 -35: Arria 10デバイスの36 ビット入力に加算する18 x 19乗算モード

Input Register Bank

Result[37..0]

dataa_y0[17..0]

dataa_x0[17..0]

19

18

Variable-Precision DSP Block

datab_y1[35..18]

datab_y1[17..0]

18

18

37 Multiplier

Adder SUB_COMPLEX

Output Register Bank

x

+/-Pipeline Register

3.5.1.5 シストリック FIR モード

FIR フィルターの基本構造は、加算による一連の乗算で構成されています。

図 -36: 基本的な FIR フィルターの式

タップの数や入力の容量により、多数の加算器のチェーンを介する遅延が非常に大きくなる場合があり ます。遅延性能の問題を解決するには、遅延は増加しますが、タップごとに配置される追加の遅延要素で シストリック形式を使用して、増加するレイテンシーを代償に性能を向上させます。

図 -37: シストリック FIR フィルターの等価回路

1

− c k ]

[ n x

] [ n y

c1 c 2 ck

] 1 n[

w w2 n[ ] w k−1 n[ ] w k[ n]

Arria 10の可変精度 DSP ブロックは、次のシストリック FIR 構造をサポートします。

• 18 ビット

• 27 ビット

シストリック FIR モードでは、乗算器の入力はソースの 4 つの異なるセットから供給できます。

• 2 つのダイナミック入力

• 1 つのダイナミック入力と 1 つの係数入力

• 1 つの係数入力と 1 つのプリアダー出力

• 1 つのダイナミック入力と 1 つのプリアダー出力

3.5.1.5.1 可変精度ブロック・アーキテクチャー・ビューへのシストリック・モード・ユーザー・ビューのマッピング 次の図は、レジスターをリタイミングし、加算器を再構築することで、Arria 10の可変精度 DSP ブロッ

ク (d) を使用して、シストリック FIR フィルター (a) のユーザービューを実装できることを図示したも

のです。レジスター B は、(b) に示すようにチェーンイン、ataa_y0 および dataa_x0 入力パスでシス トリック・レジスターにリタイミングができます。レジスターのリタイミングの最終結果は (c) に示されて います。加算器の入力と位置の再構築による 2 つの乗算器の加算結果は、(d) に示すようにチェーンア ウト加算器によってチェーンイン入力に加算されます。

図 -38: 可変精度ブロック・アーキテクチャー・ビューへのシストリック・モード・ユーザー・ビューのマッピング

x[n]

c1

(a) Systolic FIR Filter

User View (b) Variable Precision Block Architecture View (Before Retiming)

Second DSP Block dataa_y0 x[n]

dataa_x0 c1 datab_y1 x[n-2]

datab_x1 c2 w1[n]

w2[n]

dataa_y0 x[n-4]

dataa_x0 c3 w3[n]

Register B datab_y1 x[n-6]

datab_x1 c4 w4[n]

Register C

y[n]

Register A Multiplier

Multiplier

Adder Output Register Bank Result First DSP Block

Result Output Register Bank

Retiming Chainout Adder Chainin from Previous DSP Block

(c) Variable Precision Block Architecture View (After Retiming)

Second DSP Block dataa_y0 x[n]

dataa_x0 c1 datab_y1 x[n-2]

datab_x1 c2 w1[n]

w2[n]

dataa_y0 x[n-4]

dataa_x0 c3

w3[n]

Register B

datab_y1 x[n-6]

datab_x1 c4 w4[n]

Register C

y[n]

Register A Multiplier

Multiplier

Adder Output Register Bank Result First DSP Block

Result Output Register Bank

Chainout Adder Chainin from Previous DSP Block

Systolic Register Systolic

Registers

(d) Variable Precision Block Architecture View (Adder Restructured)

Second DSP Block dataa_y0 x[n]

dataa_x0 c1 datab_y1 x[n-2]

datab_x1 c2 w1[n]

w2[n]

dataa_y0 x[n-4]

dataa_x0 c3

w3[n]

Register B

datab_y1 x[n-6]

datab_x1 c4 w4[n]

Register C

y[n]

Register A Multiplier

Multiplier

Adder Output Register Bank Result First DSP Block

Result Output Register Bank

Chainout Adder Chainin from Previous DSP Block

Systolic Register Systolic

Registers

Adder x[n-2]

c2 w1[n]

w2[n]

x[n-4]

c3 w3[n]

x[n-6]

c4 w4[n]

y[n]

Register B

Register A Register A

3.5.1.5.2 18 ビットのシストリック FIR モード

18 ビットのシストリック FIR モードでは、加算器はデュアル44 ビット加算器としてコンフィグレーシ

ョンされます。そのため、18 x 19動作モードを使用する際にオーバーヘッドの7 ビットとなり、結果的 に37 ビットとなります。これにより、合計 16 個の 18 x 19 乗算器あるいはシストリック FIR ストラ クチャーとしてカスケード化できる 8 個の Arria 10可変精度 DSP ブロックが使用可能となります。

図 -39: Arria 10デバイスでの18 ビット・シストリック FIR モード

Input Register Bank

dataa_y0[17..0]

dataa_z0[17..0]

dataa_x0[17..0]

COEFSELA[2..0]

datab_y1[17..0]

datab_z1[17..0]

datab_x1[17..0]

COEFSELB[2..0]

+/-Pre-Adder

+/-Pre-Adder

+/-Internal Coefficient

Internal Coefficient

Multiplier

Multiplier Adder

+/-Systolic

Registers

Systolic Register

Chainout adder or accumulator

+

Output Register Bank

chainin[43..0]

chainout[43..0]

Result[43..0]

18-bit Systolic FIR x

x 18

18 18 18 18 18

3

3

44 44 44

Pipeline Register

イネーブルされると、シストリック・レジスターは 出力レジスターバンクとして同じクロックソースで   クロックされます。

3.5.1.5.3 27 ビットのシストリック FIR モード

27 ビットのシストリック FIR モードでは、チェーンアウト加算器やアキュムレーターは64 ビットで動

作するようコンフィグレーションされます。このため、27 ビットのデータ (54 ビット積 ) を使用する際、

オーバーヘッドの10 ビットとなります。これにより、合計 11 個の 27 x 27 乗算器あるいはシストリッ ク FIR ストラクチャーとしてカスケード化が可能な 11 個の Arria 10の可変精度 DSP ブロックが使 用可能となります。

27 ビット・シストリック FIR モードでは、DSP ブロックごとに 1 ステージのシストリック・フィルターを 実装することができます。なお、このモードではシストリック・レジスターは不要です。

図 -40: Arria 10デバイスでの27 ビット・シストリック FIR モード

Input Register Bank

dataa_y0[25..0]

dataa_z0[25..0]

dataa_x0[26..0]

COEFSELA[2..0]

Pre-Adder

+/-Internal Coefficient

Multiplier

Adder

+/-Chainout adder or accumulator

+ chainin[63..0]

chainout[63..0]

27-bit Systolic FIR

27 x

Output Register Bank

26

3 27 26

64 64

Pipeline Register