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

ブロック・アーキテクチャー

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]