6. Stratix II & Stratix II GX デバイスの DSP ブロック

6. Stratix II & Stratix II GX デバイスの
DSP ブロック
この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用
ください。設計の際には、最新の英語版で内容をご確認ください。
SII52006-2.0
はじめに
Stratix® II および Stratix II GX デバイスは、高データ・スループットが要求
される DSP アプリケーションに最適化された専用のデジタル信号処理
(DSP)ブロックを備えています。DSP ブロックとプログラマブル・ロジッ
ク・デバイス(PLD)の柔軟性を組み合わせることにより、様々な高性能
DSP ファンクションを簡単に実装することができます。CDMA2000、Voice
over Internet Protocol(VoIP)、高精細テレビ(HDTV)などの複雑なシス
テムは、データを処理するために高性能 DSP ブロックを必要とします。こ
れらのシステム・デザインは一般的に、有限インパルス応答(FIR)フィル
タ、複合 FIR フィルタ、高速フーリエ変換(FFT)ファンクション、離散コ
サイン変換(DCT)
、および相関器として DSP ブロックを使用します。
Stratix II および Stratix II GX の DSP ブロックは、乗算、減算、累算、お
よび総和演算を行う専用ブロックの組み合わせで構成されています。こ
れらのブロックをコンフィギュレーションして、ほとんどの DSP ファン
クションに必要な、乗算器、乗算加算器、および乗算累積器などの演算
ファンクションを実装できます。
DSPブロックと共に、Stratix IIおよびStratix II GXデバイスのTriMatrixTM
メモリ構造もさまざまなソフト・マルチプライヤの実装をサポートして
います。ソフト・マルチプライヤと専用 DSP ブロックの組み合わせによ
り、Stratix II および Stratix II GX デバイスではより多くの乗算器が使用
でき、システム設計時に幅広い実装オプションと柔軟性が得られます。
Stratix II および Stratix II GX デバイスについて詳しくは、
「Stratix II デバ
イス・ハンドブック Volume 1」の「Stratix II デバイス・ファミリ・デー
タシート」および「Stratix II GX デバイス・ハンドブック Volume 1」の
「Stratix II GX デバイス・ファミリ・データシート」をそれぞれ参照して
ください。
DSP ブロックの
概要
Stratix II および Stratix II GX デバイスは、乗算、乗算累積(MAC)およ
び積和ファンクションを効率的に実装する 2 ∼ 4 カラムの DSP ブロック
を備えています。図 6-1 に DSP ブロック・カラムとその周りの LAB を
示します。各 DSP ブロックは、以下をサポートするようにコンフィギュ
レーションできます。
8 個の 9 × 9 ビット乗算器
4 個の 18 × 18 ビット乗算器
■ 1 個の 36 × 36 ビット乗算器
■
■
Altera Corporation
2005 年 10 月
6–1
DSP ブロックの概要
図 6-1.
縦列に配置された DSP ブロックと隣接する LAB
DSP Block
Column
4 LAB
Rows
DSP Block
乗算器は、DSP ブロック内の加算器またはアキュムレータ・ブロックに
データを供給します。Stratix II および Stratix II GX デバイスの乗算器は、
Q1.15 入力フォーマットでの丸め機能および飽和機能をサポートしてい
ます。DSP ブロックには、FIR フィルタなどのファンクションを効率的
に実装するために、シフト・レジスタ・チェインで動作するようにコン
フィギュレーションできる入力レジスタもあります。DSP ブロック内の
乗算累積器は任意の値に初期化でき、乗算器への Q1.15 入力フォーマッ
トの丸め機能および飽和機能をサポートしています。シングル DSP ブ
ロックは分割して、異なるコンフィギュレーション・モードで同時に動
作させることができます。
6–2
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
Q1.15 フォーマットについて詳しくは、
「飽和機能および丸め機能」の項
を参照してください。
1 カラムあたりの DSP ブロック数と使用可能なカラム数は、デバイスの
集積度が大きくなるにつれて増加します。表 6–1 に、各 Stratix II デバイ
スの DSP ブロック数と実装可能な乗算器数を示します。
表 6–1. Stratix II デバイスの DSP ブロック数
デバイス
注 (1)
DSP
9 × 9 乗算器 18 × 18 乗算器 36 × 36 乗算器
ブロック数
EP2S15
12
96
48
12
EP2S30
16
128
64
16
EP2S60
36
288
144
36
EP2S90
48
384
192
48
EP2S130
63
504
252
63
EP2S180
96
768
384
96
表 6–1 の注:
(1) 各デバイスには、記載した数の 9 × 9、18 × 18、または 36 × 36 ビット乗算器
があります。各デバイスの乗算器の総数はすべての乗算器の合計数ではあり
ません。
表 6–2 に、各 Stratix II GX デバイスの DSP ブロック数と実装可能な乗算
器数を示します。
表 6–2. Stratix II GX デバイスの DSP ブロック数
デバイス
DSP
ブロック
注 (1)
9 × 9 乗算器 18 × 18 乗算器 36 × 36 乗算器
EP2SGX30C
EP2SGX30D
16
128
64
16
EP2SGX60C
EP2SGX60D
EP2SGX60E
36
288
144
36
EP2SGX90E
EP2SGX90F
48
384
192
48
EP2SGX130G
63
504
252
63
表 6–2 の注:
(1) 各デバイスには、記載した数の 9 × 9、18 × 18、または 36 × 36 ビット乗算器
があります。各デバイスの乗算器の総数はすべての乗算器の合計数ではあり
ません。
Altera Corporation
2005 年 10 月
6–3
Stratix II デバイスハンドブック Volume 2
DSP ブロックの概要
DSP ブロック乗算器に加え、Stratix II または Stratix II GX デバイスの
TriMatrix メモリ・ブロックをソフト・マルチプライヤに使用できます。
ソフト・マルチプライヤの可用性は、デバイス内で使用可能な乗算器数
が増えるにつれて高くなります。表 6–3 に、DSP ブロックおよびソフ
ト・マルチプライヤを使用した Stratix II デバイスで利用可能な乗算器の
総数を示します。
表 6–3. Stratix II デバイスの乗算器数
DSP ブロック
(18 × 18)
ソフト・
マルチプライヤ
(16 × 16)(1)、(2)
乗算器の総数
(3)、(4)
EP2S15
48
100
148 (3.08)
EP2S30
64
189
253 (3.95)
EP2S60
144
325
469 (3.26)
EP2S90
192
509
701 (3.65)
EP2S130
252
750
1,002 (3.98)
EP2S130
384
962
1,346 (3.51)
デバイス
表 6–3 の注:
(1) ソフト・マルチプライヤは乗算の和モードで実装されています。RAM ブロッ
クは、18 ビット・データ幅と最大 18 ビットの係数の和でコンフィギュレー
ションされます。
(2) ソフト・マルチプライヤは、M4K および M512 TriMatrix メモリ・ブロック
にのみ実装されます。M-RAM ブロックには実装できません。
(3) 括弧内の数字は増加係数を示しています。これは、ソフト・マルチプライヤ
を使用した乗算器の総数を DSP ブロックでのみサポートされている 18 × 18
乗算器の数で除算した値です。
(4) 乗算器の総数は、使用される乗算器モードに応じて変化する場合があります。
6–4
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
表 6–4 に、DSP ブロックおよびソフト・マルチプライヤを使用した
Stratix II GX デバイスで利用可能な乗算器の総数を示します。
表 6–4. Stratix II GX デバイスの乗算器数
DSP ブロック
(18 × 18)
ソフト・
マルチプライヤ
(16 × 16)(1)、(2)
乗算器の総数
(3)、(4)
EP2SGX30C
EP2SGX30D
64
189
253 (3.95)
EP2SGX60C
EP2SGX60D
EP2SGX60E
144
325
469 (3.26)
EP2SGX90E
EP2SGX90F
192
509
701 (3.65)
EP2SGX130G
252
750
1,002 (3.98)
デバイス
表 6–4 の注:
(1) ソフト・マルチプライヤは乗算の和モードで実装されています。RAM ブロッ
クは、18 ビット・データ幅と最大 18 ビットの係数の和でコンフィギュレー
ションされます。
(2) ソフト・マルチプライヤは、M4K および M512 TriMatrix メモリ・ブロック
にのみ実装されます。M-RAM ブロックには実装できません。
(3) 括弧内の数字は増加係数を示しています。これは、ソフト・マルチプライヤ
を使用する乗算器の総数を DSP ブロックでのみサポートされている 18 × 18
乗算器の数で除算した値です。
(4) 乗算器の総数は、使用される乗算器モードに応じて変化する場合があります。
Stratix II または Stratix II GX の TriMatrix メモリ・ブロックについて詳
しくは、
「Stratix II デバイス・ハンドブック Volume 1」の「Stratix II アー
キテクチャ」および「Stratix II GX デバイス・ハンドブック Volume 1」
の「Stratix II GX Architecture」の章を参照してください。ソフト・マル
チプライヤについて詳しくは、「AN306: Implementing Multipliers in
FPGA Devices」を参照してください。
図 6-2 に、18 × 18 ビット乗算器コンフィギュレーション・モードにコン
フィギュレーションされた DSP ブロックを示します。また、図 6-3 に、
DSP ブロックの 9 × 9 ビット乗算器コンフィギュレーションを示します。
Altera Corporation
2005 年 10 月
6–5
Stratix II デバイスハンドブック Volume 2
DSP ブロックの概要
図 6-2.
18 × 18 モードの DSP ブロック
Optional Serial Shift
Register Inputs from
Previous DSP Block
Output
Selection
Multiplexer
Adder Output Block
PRN
D
Multiplier Block
Q
ENA
CLRN
From the row
interface block
PRN
Q1.15
Round/
Saturate
PRN
D
Q
D
Q
ENA
CLRN
ENA
CLRN
D
Adder/
Subtractor/
Accumulator
1
Q1.15
Round/
Saturate
PRN
Q
ENA
CLRN
D
Optional Stage Configurable
as Accumulator or Dynamic
Adder/Subtractor
PRN
Q1.15
Round/
Saturate
PRN
Q
D
Q
ENA
CLRN
Summation
Block
ENA
CLRN
Adder
D
Q
ENA
CLRN
PRN
D
Q
ENA
CLRN
PRN
Q1.15
Round/
Saturate
PRN
D
Q
D
Q
ENA
CLRN
D
D
Adder/
Subtractor/
Accumulator
2
Q1.15
Round/
Saturate
PRN
Q
ENA
CLRN
Optional Serial Shift
Register Outputs to
Next DSP Block
in the Column
Summation Stage
for Adding Four
Multipliers Together
ENA
CLRN
PRN
Q1.15
Round/
Saturate
PRN
Q
ENA
CLRN
D
Q
ENA
CLRN
Optional Pipline
Register Stage
Optional Input Register
Stage with Parallel Input or
Shift Register Configuration
to MultiTrack
Interconnect
6–6
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
図 6-3.
9 × 9 モードの DSP ブロック
D
Q
ENA
CLRN
D
Q
ENA
D
Q
ENA
CLRN
Adder/
Subtractor/
1a
CLRN
D
Q
ENA
CLRN
D
Q
ENA
D
Q
ENA
CLRN
CLRN
Summation
D
Q
ENA
CLRN
D
Q
ENA
D
Q
ENA
CLRN
Adder/
Subtractor/
1b
CLRN
D
Q
ENA
CLRN
D
Q
ENA
D
Q
ENA
CLRN
Output
Selection
Multiplexer
CLRN
D
Q
ENA
CLRN
D
Q
ENA
D
Q
ENA
CLRN
D
Q
ENA
CLRN
Adder/
Subtractor/
2a
CLRN
D
Q
ENA
CLRN
D
Q
ENA
D
Q
ENA
CLRN
CLRN
Summation
D
Q
ENA
CLRN
D
Q
ENA
D
Q
ENA
CLRN
Adder/
Subtractor/
2b
CLRN
D
Q
ENA
CLRN
D
Q
ENA
D
Q
ENA
CLRN
CLRN
To MultiTrack
Interconnect
Altera Corporation
2005 年 10 月
6–7
Stratix II デバイスハンドブック Volume 2
アーキテクチャ
アーキテクチャ
DSP ブロックは以下の要素で構成されます。
■
■
乗算器ブロック
加算器 / 減算器 / アキュムレータ・ブロック
■ 合計ブロック
■ 入力および出力インタフェース
■ 入力および出力レジスタ
乗算器ブロック
各乗算器ブロックは、以下の要素で構成されています。
■
■
■
入力レジスタ
乗算器ブロック
Q1.15 入力フォーマットの丸めおよび / または飽和ステージ
■ パイプライン出力レジスタ
図 6-4 に、乗算器ブロック・アーキテクチャを示します。
6–8
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
図 6-4.
乗算器ブロック・アーキテクチャ
mult_round (1)
mult_saturate (1)
signa (1)
signb (1)
aclr[3..0]
shiftinb
clock[3..0]
shiftina
ena[3..0]
sourcea
D
Data A
Data Out
Q
ENA
Q1.15
Round/
Saturate
CLRN
sourceb
(3)
D
Data B
D
ENA
Q
CLRN
(2)
Q
Output
Register
Pipeline
Register
ENA
mult_is_saturated
CLRN
D
ENA
Q
CLRN
Multiplier Block
DSP Block
shiftoutb shiftouta
図 6-4 の注:
(1) これらの信号は、データ・パス・パイプラインにマッチングさせるために、ラッチされないか、または
1 回ラッチされます。
(2) これらの信号は、1 個または 2 個のパイプライン・レジスタを通して送信できます。
(3) 丸め機能および / または飽和機能は、Q1.15 入力用の 18 × 18 ビット符号付き乗算でのみサポートされています。
入力レジスタ
各乗算器のオペランドは、入力レジスタまたは直接乗算器に供給できま
す。以下の DSP ブロック信号は、DSP ブロック内の各入力レジスタを
コントロールします。
■
clock[3..0]
ena[3..0]
■ aclr[3..0]
■
Altera Corporation
2005 年 10 月
6–9
Stratix II デバイスハンドブック Volume 2
アーキテクチャ
shiftoutaおよびshiftoutb
入力レジスタは乗算器にデータを供給し、
の 2 本の専用シフト出力ラインをドライブします。1 個の乗算器ブロック
からの専用シフト出力は、図 6-5 に示す通り、同じ DSP ブロック内でそ
の下にある隣接する乗算器、または隣の DSP ブロックの最初の乗算器の
入力レジスタに直接供給され、シフト・レジスタ・チェインを形成しま
す。専用シフト・レジスタ・チェインは 1 カラムに収まりますが、通常の
FPGA ルーチン・リソースを使用して複数のカラムを必要とするより長い
シフト・レジスタ・チェインを実装できます。したがって、このシフト・
レジスタ・チェインは、Stratix II または Stratix II GX デバイス・ファミリ
の最大メンバにおいては、768 個のレジスタまで任意の長さで構成するこ
とができます。
シフト・レジスタは FIR フィルタなどの DSP ファンクションに役立ちま
す。9 × 9 および 18 × 18 乗算器を実装する場合、入力シフト・レジスタ
が DSP ブロック内部にあるので、シフト・レジスタ・チェインを作成す
るための外部ロジックは必要ありません。この実装により、必要な LE リ
ソースは大幅に削減され、ルーチンの競合が回避されるため、結果とし
てタイミングが予測可能になります。
Stratix II および Stratix II GX の DSP ブロックにより、ユーザは特定の乗
算器オペランドを通常のデータ入力または sourcea および sourceb 信
号を使用する専用シフト・レジスタ入力によって供給するか否かをダイ
ナミックに選択することができます。sourcea 信号のロジック 1 は、
データ A が専用のスキャン・チェインによって供給されることを示し、
ロジック 0 は通常のデータ入力によって供給されることを示します。こ
の機能により、シフト・レジスタがスキャン・チェインを使用して正常
に動作するダイナミックにロード可能なシフト・レジスタの実装が可能
となり、データ入力値を使用してパラレルにダイナミックにロードする
こともできます。
6–10
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
図 6-5.
シフト・レジスタ・チェイン
注 (1)
DSP Block 0
Data A
D
Q
A[n] × B[n]
ENA
CLRN
Data B
D
Q1.15
Round/
Saturate
D
Q
ENA
CLRN
Q
ENA
CLRN
shiftoutb
shiftouta
D
Q
A[n − 1] × B[n − 1]
ENA
CLRN
D
Q1.15
Round/
Saturate
D
Q
ENA
CLRN
Q
ENA
CLRN
shiftoutb
shiftouta
DSP Block 1
D
Q
A[n − 2] × B[n − 2]
ENA
CLRN
D
Q1.15
Round/
Saturate
D
Q
ENA
CLRN
Q
ENA
CLRN
shiftoutb
shiftouta
図 6-5 の注:
(1) Data A または Data B 入力のいずれかを定数係数乗算用のパラレル入力に設定できます。
Altera Corporation
2005 年 10 月
6–11
Stratix II デバイスハンドブック Volume 2
アーキテクチャ
表 6–5 に、DSP ブロックの入力レジスタ・モードの概要を示します。
表 6–5. 入力レジスタ・モード
9×9
18 × 18
36 × 36
パラレル入力
√
√
√
シフト・レジスタ入力
√
√
レジスタ入力モード
乗算器ステージ
乗算器ステージは、9 × 9、18 × 18、および 36 × 36 乗算器、そしてこれ
らのコンフィギュレーション間において他のより小さな乗算器をサポー
トします。詳細については、6–21 ページの「動作モード」を参照してく
ださい。乗算器のデータ幅に応じて、シングル DSP ブロックは多数の乗
算をパラレルに実行できます。
各乗算器オペランドは、一意の符号付きまたは符号なし数値になります。
signaおよびsignbの2つの信号は、それぞれ各オペランドの表現をコン
トロールします。signa 信号のロジック 1 はデータ A が符号付き数値
であることを示し、ロジック 0 は符号なし数値であることを示します。
表 6–6 は、さまざまなオペランドの符号表現に対する乗算結果の符号を
示しています。乗算結果には、オペランドの 1 つが符号付き数値の場合
は符号が付けられます。
表 6–6. 乗算器の符号付き表現
データ A(signa 値) データ B(signb 値)
結果
符号なし(ロジック 0)
符号なし(ロジック 0)
符号なし
符号なし(ロジック 0)
符号付き(ロジック 1)
符号付き
符号付き(ロジック 1)
符号なし(ロジック 0)
符号付き
符号付き(ロジック 1)
符号付き(ロジック 1)
符号付き
各 DSP ブロックには、1 つの signa 信号と 1 つの signb 信号しかあり
ません。したがって、同じ DSP ブロックに供給されるすべてのデータ A
入力は、同じ符号表現でなければなりません。同様に、同じ DSP ブロッ
クに供給されるすべてのデータ B 入力も同じ符号表現でなければなりま
せん。乗算器は、符号表現に関係なく完全精度を提供します。
signa 信号と signb 信号を使用しない場合、Quartus® II ソフト
ウェアは、デフォルトにより乗算器が符号なし乗算を実行するよ
う設定します。
6–12
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
飽和機能および丸め機能
DSP ブロックには、Q1.15 入力フォーマット用の各 18 × 18 乗算器の後
に、オプションの飽和機能および丸め機能の実行をサポートするハード
ウェアがあります。
Q1.15 入力フォーマットは 16 ビット入力幅を必要とするため、デ
ザインでは飽和機能および丸め機能オプションに 18 × 18 乗算器
を使用する必要があります。
Q1.15 入力フォーマットの乗算には符号付き乗算器が必要です。
Q1.15 入力フォーマットの最上位ビット (MSB) は、値の符号ビッ
トを表します。乗算中に符号拡張が正しく処理されるようにする
には、符号付き乗算器を使用します。
Q1.15 フォーマットは、16 ビットを使用して各固定小数点入力を表現し
ます。MSB は符号ビットで、残りの 15 ビットは小数点(または小数値)
の後の値を表現するために使用されます。この Q1.15 の値は、以下の等
式に示すように、215 で除算される 16 ビットの整数値表現に相当します。
−
1
2
1
8
= 1 100 0000 0000 0000 = −
= 0 001 0000 0000 0000 =
0x4000
215
0x1000
215
Q1.15 の数値はすべて –1 と 1 の間にあります。
乗算を実行する際、Q1.15 入力は 18 の乗算器入力のうち 16 しか使用し
ないにもかかわらず、乗算器には 18 ビット入力バス全体が送信されま
す。これは 2 つの最下位ビット(LSB)が常に 0 になる 1.17 入力に似て
います。
乗算器の出力は、丸め機能または飽和機能の実行前は 2.34 の値(合計 36
ビット)になります。2 つの MSB は符号ビットです。出力には 1 つの符
号ビットしか必要ないため、2 つの MSB のうち 1 つを無視でき、結果と
して丸め機能または飽和機能の実行前には Q1.34 の値となります。
デザインで飽和機能を実行すると、乗算器出力は 1.31 フォーマットで
0x7FFFFFFF に飽和します。これは全 36 ビット乗算器出力のうちビッ
ト [34..3] を使用します。3 つの LSB は 0 に設定されます。
Altera Corporation
2005 年 10 月
6–13
Stratix II デバイスハンドブック Volume 2
アーキテクチャ
DSP ブロックは、乗算器または乗算累積器の出力の LSB から
mult_is_saturatedまたはaccum_is_saturatedオーバフロー信号
値を取得します。したがって、飽和が発生するたびに、乗算器または乗
算 累 積 器 の 出 力 の LSB は、1 を mult_is_saturated ま た は
accum_is_saturated オーバフロー信号に送ります。
それ以外の場合、
飽和機能がイネーブルされるかまたは乗算器または乗算累積器の出力の
LSB の値を反映するときには、このオーバフロー信号は 0 になります。
デザインで丸め機能を実行するとき、1.31 フォーマットの 0x00008000 を
乗算器の出力に加算し、全 36 ビット乗算器出力のビット [34..15] のみを
使用します。1.31 フォーマットの 0x00008000 を 36 ビット乗算器の結果
に加算することは、2.34 フォーマットの 0x0 0004 0000 を加算するのと
同等です。16 の LSB は 0 に設定されます。図 6-6 に、デザインが乗算で
丸め機能および飽和機能を実行するときに使用されるビットを示しま
す。
6–14
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
図 6-6.
丸めおよび飽和ビット
18 × 18 Multiplication
1 Sign
Bit
15 Bits
2 LSBs
18
00
2 Sign
Bits (1)
31 Bits
3 LSBs
36
000
1 Sign
Bit
15 Bits
2 LSBs
18
00
Saturated Output Result
2 Sign
Bits (1)
31 Bits
1 11
3 LSBs
111000
Rounded Output Result
2 Sign
Bits (1)
31 Bits
2 Sign
Bits (1)
3 LSBs
000
+
15 Bits
18 Bits
0000 000 0 0000 000001 0000 000 0 0000 000000
19 LSBs
are Ignored
=
00 0000 000 0 0000 00000
図 6-6 の注:
(1) 両方の符号ビットは同じものです。デザインは 1 つの符号ビットのみ使用し、もう 1 つは無視されます。
デザインが multiply_accumulate または multiply_add 演算を実
行する場合、乗算器の出力は、2.31 の値として加算器 / 減算器 / アキュ
ムレータ・ブロックに入力され、3 つの LSB は 0 になります。
Altera Corporation
2005 年 10 月
6–15
Stratix II デバイスハンドブック Volume 2
アーキテクチャ
パイプライン・レジスタ
乗算器からの出力はパイプライン・レジスタに供給できますが、このレ
ジスタはバイパスできます。パイプライン・レジスタはどの乗算器サイ
ズに対しても実装でき、DSP ブロックの最大性能を向上させることがで
きます。特に後続の DSP ブロックの加算器ステージを使用するときには
有効です。パイプライン・レジスタは加算器 / 減算器 / アキュムレー
タ・ブロックと加算器 / 出力ブロック間の長い信号パスを分割して、2
つの短いパスを作成します。
加算器 / 出力ブロック
加算器 / 出力ブロックは、以下の要素で構成されています。
加算器 / 減算器 / アキュムレータ・ブロック
合計ブロック
■ 出力選択マルチプレクサ
■ 出力レジスタ
■
■
図 6-7 に、加算器 / 出力ブロック・アーキテクチャを示します。
加算器 / 出力ブロックは、以下のようにコンフィギュレーションできま
す。
■
出力インタフェース
オプションでロード可能な乗算累積器
■ 1 レベル加算器
■ 第 1 レベル加算器にダイナミック加算 / 減算コントロールを備えた 2 レ
ベル加算器
■ 36 ビット乗算器、9 × 9 複素数乗算器、または 18 × 18 複素数乗算器の
最終ステージ
■
出力選択マルチプレクサはDSPブロックの出力コンフィギュレーション
を設定します。出力レジスタは加算器 / 出力ブロックの出力をラッチす
るのに使用できます。
加算器/出力ブロックを乗算器と別々に使用することはできません。
6–16
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
図 6-7.
加算器 / 出力ブロック・アーキテクチャ
adder1_round (2)
注 (1)
Accumulator Feedback
Output Select
Multiplexer
Result A /
accum_sload_upper_data
Output Registers
accum_sload0 (2)
addnsub1 (2)
Adder/
Subtractor/
Accumulator 1
overflow0
Q1.15
Rounding
(3)
Result B
signa (2)
Summation
Output
Register Block
signb (2)
Result C /
accum_sload_upper_data
accum_sload1 (2)
addnsub3 (2)
Adder/
Subtractor/
Accumulator 2
Q1.15
Rounding
(3)
overflow1
Result D
adder3_round (2)
Accumulator Feedback
図 6-7 の注:
(1) 加算器 / 出力ブロックは、18 × 18 モードです。9 × 9 モードでは、4 つの加算器 / 減算器ブロックと 2 つの
合計ブロックがあります。
(2) これらの信号はパイプライン・レジスタを通して送信できます。パイプラインの長さは 1または 2に設定できます。
(3) Q1.15 入力は、9 × 9 または 36 × 36 モードでは使用できません。
加算器 / 減算器 / アキュムレータ・ブロック
加算器 / 減算器 / アキュムレータ・ブロックは、加算器 / 出力ブロック
の第 1 レベルの加算器ステージです。このブロックは乗算累積器または
加算器 / 減算器としてコンフィギュレーション可能です。
Altera Corporation
2005 年 10 月
6–17
Stratix II デバイスハンドブック Volume 2
アーキテクチャ
アキュムレータ
図 6-7 のように、加算器 / 減算器 / アキュムレータが乗算累積器として
コンフィギュレーションされると、加算器 / 出力ブロックの出力は乗算
累積器にフィードバックされます。乗算累積器は、加算のみまたは減算
のみ実行するようにセットアップできます。あるいは addnsub 信号を
使用して累算方向をダイナミックにコントロールすることも可能です。
addnsub信号のロジック 1は乗算累積器が加算を実行していることを示
し、ロジック 0 は減算を示します。
accum_sload
各乗算累積器はDSPブロック出力レジスタをクリアするか、
信号を使用してクリアできます。accum_sload 信号を使用した乗算累積
器のクリアは、出力レジスタのリセットとは関係がないため、クロック・
サイクルを失うことなく累算をクリアして、新しい累算を開始できます。
accum_sload 信号は、フィードバック・マルチプレクサをコントロール
して、乗算器の出力をアキュムレータ・フィードバック・パスではなく 0
と合計するように指定します。
乗算累積器は、accum_sload 信号および 1 クロック・サイクル・レイ
テンシを伴う accum_sload_upper_data バスを使用して、0 以外の値
で初期化 / プリロードすることも可能です。乗算累積器のプリロードは、
乗算器の結果にaccum_sload_upper_dataバス上の指定された値を加
算することによって行われます。乗算累積器をクリアする場合と同様に、
accum_sload 信号はフィードバック・マルチプレクサに対して、乗算累積
器フィードバック信号の代わりに、accum_sload_upper_data 信号で乗
算累積器にデータを供給するよう指定します。accum_sload_upper_data
信号は、乗算累積器の上位 36 ビットのみロードします。乗算累積器全体
にロードするには、乗算累積器にデータを供給している乗算器を 1 の乗
算を実行するように設定し、その乗算器を通して下位 16 ビットの値を送
信する必要があります。
乗算累積器がオーバフローまたはアンダフローを検出すると、クロック
の正エッジでオーバフロー信号が High になります。オーバフロー信号
は、オーバフローまたはアンダフローが検出された後、オーバフローま
たはアンダフロー状態が持続している場合でも、1 クロック・サイクル
の間のみ High になります。オーバフロー信号を無期限に、またはラッ
チがクリアされるまで保持するには、DSP ブロック外部のラッチを使用
する必要があります。
6–18
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
DSP ブロックは各乗算累積器で Q1.15 入力フォーマットの飽和機能およ
び丸め機能をサポートします。飽和機能または丸め機能、あるいはその
両方が乗算累積器の出力に対して実行される場合は、以下の信号が使用
できます。
■
accum_round
accum_saturation
■ accum_is_saturated 出力
■
各 DSP ブロックには、2 組の accum_round 信号と accum_saturation
信号があり、それぞれ(各乗算累積器に対して 1 組の信号)乗算累積器
出力で丸め機能または飽和機能を実行するかどうかをコントロールしま
す。乗算累積器出力の丸め機能および飽和機能は、Q1.15 入力フォーマッ
トの計算に必要なビット幅に適合する 16 × 16 乗算累算器を実装する場
合にのみ使用可能です。accum_round 信号および accum_saturation
信号のロジック 1 は、丸め機能および飽和機能が実行されたことを示し、
ロジック 0 は丸め機能および飽和機能が実行されていないことを示しま
す。accum_is_saturated 出力信号のロジック 1 は、乗算累積器の結
果に飽和が発生したことを知らせます。
図 6-10 に、乗算器・乗算累積器動作を実行するようにコンフィギュレー
ションされた DSP ブロックを示します。
加算器 / 減算器
addnsub1 または addnsub3 信号は、加算または減算のいずれを実行し
ているかを指定します。addnsub1 信号または addnsub3 信号のロジッ
ク 1 は、加算器 / 減算器が加算を実行していることを示し、ロジック 0
は減算を示します。これらの信号は、DSP ブロックの外部ロジックを使
用してダイナミックにコントロールできます。最初のステージが減算器
としてコンフィギュレーションされた場合、出力は A – B および C – D
となります。
加算器 / 減算器ブロックは、乗算器ブロックと同じ signa 信号と signb
信号を共有します。signa および signb 信号は、1 または 2 クロック・
サイクルのレイテンシでパイプライン化すること、またはパイプライン
化しないことが可能です。
DSP ブロックは、各加算器 / 減算器の後で Q1.15 入力フォーマットの丸
め機能(飽和機能ではなく)をサポートします。addnsub1_round 信
号と addnsub3_round 信号は、加算器 / 減算器の出力に丸め機能が実
行されているかどうかを判断します。
Altera Corporation
2005 年 10 月
6–19
Stratix II デバイスハンドブック Volume 2
アーキテクチャ
addnsub1_round信号はトップ加算器/減算器の丸め機能をコントロー
ルし、addnsub3_round 信号はボトム加算器 / 減算器の丸め機能をコ
ントロールします。加算器出力の丸め機能は、Q1.15 入力フォーマット
の演算に必要なビット幅に適合する 16 × 16 乗算器・加算器を実装する
場合にのみ使用可能です。addnsub_round 信号のロジック 1 は、丸め
機能が実行されたことを示し、ロジック 0 は丸め機能が実行されていな
いことを示します。
合計ブロック
加算器 / 減算器ブロックの出力は、加算器 / 減算器ブロックの両方の出
力を合計する加算器ブロックであるオプションの合計ブロックに供給さ
れます。合計ブロックは 3 つ以上の乗算器の結果を合計するときに使用
されます。これは FIR フィルタリングなどのアプリケーションに役立ち
ます。
出力選択マルチプレクサ
加算器 / 出力ブロックの各種エレメントの出力は、出力選択マルチプレ
クサによって送信されます。出力マルチプレクサは、DSP ブロックの動
作モードに基づいて、乗算器ブロックの出力、加算器 / 減算器 / 乗算累
積器の出力、または合計ブロックの出力のいずれを DSP ブロックの出力
に送るかを選択します。出力選択マルチプレクサのコンフィギュレー
ションは、指定した DSP ブロックの動作モードに基づいて、ソフトウェ
アで自動的に設定されます。
出力レジスタ
出力レジスタを使用して DSP ブロック出力をラッチすることができま
す。以下の信号は、DSP ブロック内の各出力レジスタをコントロールで
きます。
■
■
■
clock[3..0]
ena[3..0]
aclr[3..0]
出力レジスタはどの DSP ブロック動作モードでも使用できます。
出力レジスタは、乗算累積モードでは乗算累積器の一部を形成し
ます。
6–20
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
DSP ブロックの配線およびインタフェースについて詳しくは、
「Stratix II
デバイス・ハンドブック Volume 1」の「Stratix II アーキテクチャ」の
章および
「Stratix II GXデバイス・ハンドブック Volume 1」の「Stratix II GX
アーキテクチャ」の章を参照してください。
動作モード
DSP ブロックは、アプリケーションのニーズに応じて、4 つの基本動作
モードの 1 つ、または 2 つのモードの組み合わせで使用できます。表 6–7
に、4 つの基本動作モードとモードに応じて 1 つの DSP ブロック内に実
装可能な乗算器数を示します。
表 6–7. DSP ブロック動作モード
乗算器数
モード
単純な乗算器
乗算累積
9×9
8 個の乗算器と
8 つの積の出力
-
18 × 18
4 個の乗算器と
4 つの積の出力
2 つの 52 ビット
乗算累積ブロック
36 × 36
1 つの乗算器
-
2 乗算器・加算器 4 個の 2 乗算器・
2 個の 2 乗算器・
加算器(2 つの
加算器(1 つの
9 × 9 複素数乗算) 18 × 18 複素数乗算)
-
4 乗算器・加算器 2 個の 4 乗算器・
加算器
-
1 個の 4 乗算器・
加算器
Quartus II ソフトウェアには、乗算器の動作モードをコントロールする
のに使用するメガファンクションが含まれています。メガファンクショ
ンの MegaWizard® プラグイン・マネージャを使用して適切なパラメー
タ設定を作成した後、Quartus II ソフトウェアは自動的に DSP ブロック
をコンフィギュレーションします。
Stratix II および Stratix II GX の DSP ブロックは、異なるモードで同時に
動作できます。たとえば、1 つの DSP ブロックを分割して、両方の乗算
器の入力 a および入力 b が同じ符号表現を持つ 9 × 9 乗算器や 18 × 18 乗
算器・加算器を動作させることができます。これにより、DSP ブロック
のリソース効率が向上し、Stratix II または Stratix II GX デバイス内によ
り多くの乗算器を実装できます。Quartus II ソフトウェアは、同じブロッ
ク内で同じ DSP ブロック・リソースを共有可能な乗算器を自動的に配置
します。
Altera Corporation
2005 年 10 月
6–21
Stratix II デバイスハンドブック Volume 2
動作モード
さらに、Stratix II または Stratix II GX の各 DSP ブロックを、以下の 3 つ
のモードでダイナミックに切り替わるようにセットアップできます。
最大 4 個の独立した 18 ビット乗算器
最大 2 個の 18 ビット乗算器・乗算累積器
■ 1 個の 36 ビット乗算器
■
■
Stratix II または Stratix II GX の DSP ブロックのそれぞれの半分には、独
立したモード・コントロール信号があり、同じ DSP ブロック内に複数の
18 ビット乗算器、または乗算器・乗算累積器を実装して、(DSP ブロッ
クの半分に別々に存在する場合)それらを別々にダイナミックに切り替
えることができます。デザインに 36 ビット乗算器が必要な場合、乗算器
には DSP ブロック全体が必要なため、それに対応して DSP ブロック全
体を切り替える必要があります。ダイナミック・モード切り替えをサポー
トする最小入力ビット幅は 18 ビットです。
単純な乗算器モード
単純な乗算器モードでは、DSP ブロックは、汎用乗算器や多数の個別乗
算演算を必要とするコンピューティング・イコライザ係数アップデート
などのアプリケーションに対して、個別の乗算演算を実行します。
9 ビットおよび 18 ビット乗算器
各 DSP ブロック乗算器は、9 ビットまたは 18 ビット乗算器用にコンフィ
ギュレーションされます。1 つの DSP ブロックは最大 8 個の個別の 9 × 9
乗算器、または最大 4 個の個別の 18 × 18 乗算器をサポートできます。最
大 9 ビットのオペランド幅には 9 × 9 乗算器が実装され、10 から 18 ビッ
トのオペランド幅には 18 × 18 乗算器が実装されます。図 6-8 に、単純な
乗算器動作モードでの DSP ブロックを示します。
6–22
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
図 6-8.
単純な乗算器モード
mult_round (1)
mult_saturate (1)
signa (1)
signb (1)
aclr[3..0]
shiftinb
clock[3..0]
shiftina
ena[3..0]
sourcea
Output Register
D
Data A
Data Out
Q
ENA
CLRN
sourceb
D
Q
ENA
Q1.15
Round/
Saturate
(3)
D
Data B
CLRN
Q
mult_is_saturated (2)
D
Q
ENA
ENA
CLRN
D
Q
ENA
CLRN
CLRN
Multiplier Block
DSP Block
shiftoutb
shiftouta
図 6-8 の注:
(1) これらの信号は、データ・パス・パイプラインにマッチングさせるために、ラッチされないか、または
1 回ラッチされます。
(2) この信号はデータ・パスと同じレイテンシを持っています。
(3) 丸め機能および飽和機能は、Q1.15 入力用の 18 × 18 ビットの符号付き乗算でのみサポートされています。
乗算器オペランドは、符号付き整数、符号なし整数、またはそれらの組
み合わせを受け入れ可能です。signa 信号および signb 信号はダイナ
ミックに変更でき、DP ブロックにラッチできます。さらに、乗算器の
入力と結果は個別にラッチ可能です。DSP ブロック内のパイプライン・
レジスタは乗算器の結果をパイプライン化するのに使用でき、DSP ブ
ロックの性能を向上させます。
Altera Corporation
2005 年 10 月
6–23
Stratix II デバイスハンドブック Volume 2
動作モード
36 ビット乗算器
36 ビット乗算器も単純な乗算器モードですが、36 × 36 ビット乗算演算
を実装する加算器 / 出力ブロックを含む DSP ブロック全体を使用しま
す。このデバイスは 36 ビット入力のうち 18 ビット・セクションを 4 個
の 18 ビット乗算器に入力します。加算器 / 出力ブロックは、合計ブロッ
クを使用して乗算器から取得した部分積を追加します。パイプライン・
レジスタは乗算器ステージと合計ブロックの間で使用でき、乗算時間を
短縮します。36 × 36 ビット乗算器は、符号付き、符号なし、および符号
が混合した乗算をサポートしています。図 6-9 に、36 ビット乗算器を実
装するようにコンフィギュレーションされた DSP ブロックを示します。
6–24
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
図 6-9.
36 ビット乗算器
signa (1)
signb (1)
aclr
clock
ena
18
A[17..0]
D
Q
ENA
CLRN
Q
CLRN
18
B[17..0]
D
ENA
D
Q
ENA
CLRN
18
A[35..18]
D
Q
D
ENA
ENA
CLRN
B[35..18]
D
ENA
Q
36 × 36
Multiplier
Adder
CLRN
18
D
Q
Data Out
CLRN
Q
signa (2)
ENA
signb (2)
CLRN
18
A[35..18]
D
Q
ENA
CLRN
Q
CLRN
18
B[17..0]
D
ENA
D
Q
ENA
CLRN
18
A[17..0]
D
Q
ENA
CLRN
Q
CLRN
18
B[35..18]
D
ENA
D
Q
ENA
CLRN
図 6-9 の注:
(1) これらの信号は、パイプラインをマッチングさせるために、ラッチされないか、または 1 回ラッチされます。
(2) これらの信号は、データ・パス・パイプラインにマッチングさせるために、ラッチされないか、1 回または 2 回
ラッチされます。
Altera Corporation
2005 年 10 月
6–25
Stratix II デバイスハンドブック Volume 2
動作モード
36 ビット乗算器は、高精度浮動小数点の仮数の乗算を行う演算アプリ
ケーションなど、18 ビットを超える精度を必要とするアプリケーション
に有効です。
乗算累積モード
乗算累積モードでは、乗算器ステージの出力は乗算累積器または減算器
としてコンフィギュレーションされた加算器 / 出力ブロックに供給され
ます。図 6-10 に、乗算累積モードで動作するようにコンフィギュレー
ションされた DSP ブロックを示します。
図 6-10.
乗算累積モード
aclr[3..0]
clock[3..0]
ena[3..0]
Data A
accum_sload_upper_data (3)
accum_sload (3)
shiftina
shiftinb
D
Q
D
ENA
CLRN
D
Q1.15
Round/
Saturate
Q
ENA
Q1.15
Round/
Saturate
Q
Data Out
ENA
Accumulator
CLRN
CLRN
accum_is_saturated (4)
Data B
D
D
Q
ENA
Q
ENA
CLRN
D
Q
overflow
ENA
D
Q
ENA
shiftoutb
shiftouta
signb (1), (2)
signa (1), (2)
mult_round (2)
mult_saturate (2)
D
Q
ENA
mult_is_saturated (4)
addnsub (3)
signb (1), (3)
signa (1), (3)
accum_round (3)
accum_saturate (3)
図 6-10 の注:
(1) signa 信号および signb 信号は、乗算器ステージと加算器 / 出力ブロックでは同じです。
(2) これらの信号は、データ・パス・パイプラインにマッチングさせるために、ラッチされないか、または
1 回ラッチされます。
(3) これらの信号は、1 個または 2 個のパイプライン・レジスタを通して送信できます。
(4) これらの信号はデータ・パスのレイテンシと一致します。
1 つの DSP ブロックは、最大 2 個の独立した 18 ビット乗算器・乗算累
積器を実装できます。Quartus II ソフトウェアは、18 ビット乗算器の未
使用の下位ビットをグランドに接続することにより、小さな乗算器・乗
算累積器を実装します。
6–26
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
乗算器・乗算累積器の出力は、16 ビットの累算による 36 ビット乗算
器の結果に対応するために、最大 52 ビット幅にすることができます。
このモードでは、DSP ブロックは出力レジスタと accum_sload 信号
およびオーバフロー信号を使用します。accum_sload 信号は、クロッ
ク・サイクルを失わずに新しい累算演算を開始できるよう乗算累積器
をクリアするために使用されます。この信号は、ラッチしない、ある
いは 1 回または 2 回ラッチすることができます。accum_sload 信号
は、1 クロック・サイクルのペナルティで、accum_sload_upper_data
信号に指定された値を乗算累積器にプリロードするのにも使用できま
す。accum_sload_upper_data 信号は、乗算累積器の上位 36 ビッ
ト(乗算累積器の [51..16] ビット)のみロードします。乗算累積器
全体にロードするには、1 の乗算を実行するように設定された乗算器を
持つ乗算累積器にデータを供給している乗算器を通して、下位 16 ビット
(ビット [15..0])の値を送信する必要があります。ビット [17..16]
は、accum_sload_upper_data 信号と乗算器出力の両方でオーバラッ
プされます。これらの信号のいずれかは、ビット [17..16] をロードす
るのに使用できます。
オーバフロー信号は、乗算累積器のオーバフローまたはアンダフローを
示します。この信号は、サイクルごとに新しい累算操作が実行されるた
め、クロック・サイクルごとにアップデートされます。信号を保存する
には、外部ラッチを使用できます。addnsub 信号は、累算または減算が
ダイナミックに実行されるかどうかを指定するのに使用できます。
DSP ブロックは、後に乗算累積器が続く乗算器ステージで 1 の乗
算を指定することにより、1 個の乗算累積器のみ(乗算なし)を
実装して、Quartus II ソフトウェアにその機能を DSP ブロック内
に実装させることができます。
乗算・加算モード
乗算・加算モードでは、乗算器ステージの出力は、2 個以上の乗算器の
出力を合計または減算する加算器または減算器としてコンフィギュレー
ションされた加算器 / 出力ブロックに供給されます。DSP ブロックは、
2 つの乗算・加算(2 個の乗算器の出力を加算 / 減算)または 4 つの乗
算・加算ファンクション(4 個の乗算器の出力を加算 / 減算)を実装す
るようにコンフィギュレーションできます。
DSP ブロック内の加算器ブロックは、乗算演算に続く場合にのみ
使用できます。
Altera Corporation
2005 年 10 月
6–27
Stratix II デバイスハンドブック Volume 2
動作モード
2 乗算器・加算器
2 乗算器・加算器コンフィギュレーションでは、DSP ブロックは 4 個の
9 ビットまたはそれより以下の乗算器・加算器、または 2 個の 18 ビット
乗算器・加算器を実装します。加算器は両方の乗算器出力の和、または
両方の乗算器出力の差をとるようにコンフィギュレーションできます。
合計 / 減算演算をダイナミックに変更するオプションがあります。これ
らの乗算・加算ファンクションは FFT や複素数 FIR フィルタなどのアプ
リケーションに役立ちます。図 6-11 に、2 乗算器・加算器モードでコン
フィギュレーションされた DSP ブロックを示します。
図 6-11.
2 乗算器・加算器モード
mult_round (1)
mult_saturate (1)
signa (1)
signb (1)
aclr[3..0]
clock[3..0]
ena[3..0]
shiftina
signb (2)
signa (2)
addnsub_round (2)
addnsub1 (2)
shiftinb
mult0_is_saturated (3)
D
ENA
D
Data A 1
Q
ENA
CLRN
D
Data B 1
D
ENA
Q
D
Q1.15
Round/
Saturate
Q
PRN
Q
ENA
CLRN
Q
ENA
Adder/
Subtractor/
Accumulator
1
CLRN
D
Data A 2
Q
ENA
CLRN
D
Data B 2
D
Q
ENA
Data Out 1
CLRN
PRN
Q
ENA
CLRN
Q
ENA
shiftoutb
D
Q1.15
Round/
Saturate
Q1.15
Rounding
mult1_is_saturated (3)
D
ENA
Q
D
ENA
Q
shiftouta
図 6-11 の注:
(1) これらの信号は、データ・パス・パイプラインにマッチングさせるために、ラッチされないか、または
1 回ラッチされます。
(2) これらの信号はパイプライン・レジスタを通して送信できます。パイプラインの長さは 1または 2に設定できます。
(3) これらの信号はデータ・パスのレイテンシと一致します。
6–28
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
複素数乗算器
DSP ブロックは 2 乗算器・加算器モードを使用して、複素数乗算器を実
装するようにコンフィギュレーションできます。シングル DSP ブロック
は、1 個の 18 × 18 ビットの複素数乗算器、または 2 個の 9 × 9 ビットの
複素数乗算器を実装できます。
複素数乗算は、以下のとおり記述できます。
(a + jb) × (c + jd) = ((a × c) – (b × d)) + j ((a × d) + (b × c))
この複素数乗算を DSP ブロック内に実装するには、18 ビットまでのデー
タに対して、1 個の減算器ブロックに供給される 2 個の乗算器を使用し
て実数部 ((a × c) – (b × d)) が実装され、加算ブロックに供給される他の 2
個の乗算器を使用して虚数部 ((a × d) + (b × c)) が実装されます。図 6-12
に、18 ビット複素数乗算を示します。9 ビットまでのデータ幅に対して
は、DSP ブロックは 4 つの加算器 / 減算器 / アキュムレータ・ブロック
に供給される 8 個の 9 ビット乗算器を使用して、2 つの別々の複素数乗
算演算を実行できます。DSP ブロックの外部リソースを使用して、正し
い実数部と虚数部の入力成分を適切な乗算器入力に送って、正しい複素
数乗算演算を実行する必要があります。
図 6-12.
2 乗算器・加算器モードを使用する複素数乗算器
DSP Block
18
18
A
36
18
18
C
18
37
Subtractor
18
B
(A × C) − (B × D)
(Real Part)
36
18
18
D
18
A
36
18
D
37
Adder
18
B
(A × D) + (B × C)
(Imaginary Part)
36
18
C
Altera Corporation
2005 年 10 月
6–29
Stratix II デバイスハンドブック Volume 2
動作モード
4 乗算器・加算器
4 乗算器・加算器コンフィギュレーションでは、DSP ブロックは 1 個の
18 × 18 乗算器・加算器か、2 個の個別 9 × 9 乗算器・加算器を実装でき
ます。これらのモードは、1 次元または 2 次元フィルタリング・アプリ
ケーションの実装に役立ちます。4 乗算器・加算器は、2 つの加算ステー
ジで実行されます。4 個の乗算器の 2 つの出力は、2 つの第 1 ステージの
加算器 / 減算器 / アキュムレータ・ブロックにおいて内部で合計されま
す。これら 2 つの加算器 / 減算器 / アキュムレータ・ブロックは、最終
ステージの合計ブロックで合計され、最終的な 4 乗算器・加算器の結果
を生成します。図 6-13 に、4 乗算器・加算器モードでコンフィギュレー
ションされた DSP ブロックを示します。
6–30
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
図 6-13.
4 乗算器・加算器モード
mult_round (1)
mult_saturate (1)
signa (1)
signb (1)
aclr[3..0]
clock[3..0]
ena[3..0]
shiftina
shiftinb
D
PRN
Q
D
ENA
CLRN
D
Data A 1
Q
ENA
CLRN
Q1.15
Round/
Saturate
(4)
D
Data B 1
D
PRN
Q
mult0_is_saturated (3)
ENA
CLRN
PRN
Q
ENA
CLRN
Q
ENA
Adder/
Subtractor/
Accumulator
1
CLRN
D
Data A 2
Q
ENA
CLRN
Q1.15
Round/
Saturate
(4)
D
Data B 2
D
Q1.15
Rounding
(4)
PRN
Q
D
ENA
CLRN
PRN
D
Q
ENA
CLRN
D
addnsub1 (2)
addnsub1/3_round (2)
signa (2)
signb (2)
addnsub3 (2)
Adder
Q
ENA
CLRN
Q1.15
Round/
Saturate
(4)
D
Data B 1
D
Q1.15
Round/
Saturate
(4)
D
Q1.15
Rounding
(4)
PRN
Q
ENA
CLRN
Q
ENA
D
PRN
Q
ENA
CLRN
shiftoutb
mult0_is_saturated (3)
ENA
CLRN
Adder/
Subtractor/
Accumulator
1
Q
CLRN
D
PRN
Q
Q
ENA
Data B 2
D
ENA
CLRN
CLRN
D
Data Out 1
CLRN
PRN
Q
ENA
Data A 2
D
Q
ENA
PRN
Q
ENA
CLRN
D
mult1_is_saturated (3)
ENA
CLRN
Q
ENA
Data A 1
PRN
Q
D
PRN
Q
mult1_is_saturated (3)
ENA
CLRN
shiftouta
図 6-13 の注:
(1) これらの信号は、データ・パス・パイプラインにマッチングさせるために、ラッチされないか、または
1 回ラッチされます。
(2) これらの信号は、データ・パスのレイテンシとマッチさせるため、パイプライン・レジスタを通して送信す
る必要があります。
(3) これらの信号はデータ・パスのレイテンシと一致します。
(4) 丸め機能および飽和機能は、Q1.15 入力用の 18 × 18 ビットの符号付き乗算でのみサポートされています。
Altera Corporation
2005 年 10 月
6–31
Stratix II デバイスハンドブック Volume 2
動作モード
FIR フィルタ
4 乗算器・加算器モードは、FIR フィルタおよび複素数 FIR フィルタの
アプリケーションの実装に使用できます。これを行うために、DSP ブ
ロックは、1 組の入力レジスタを専用シフト・レジスタ・チェインを使
用してシフト・レジスタとしてコンフィギュレーションした 4 乗算器・
加算器モードでセットアップされます。シフト・レジスタとしてコンフィ
ギュレーションされた入力レジスタ・セットには入力データが含まれ、
通常入力としてコンフィギュレーションされた入力にはフィルタ係数が
保持されます。図 6-14 に、入力レジスタを使用して 4 乗算器・加算器
モードでコンフィギュレーションされた DSP ブロックを示します。
6–32
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
図 6-14.
入力シフト・レジスタにより 4 乗算器・加算器モードを使用して実装された FIR フィルタ
Data A
D
18
Q
ENA
CLRN
Coefficient 0
D
18
Q
D
ENA
Q
A[n] × Coefficient 0
(to Adder)
CLRN
ENA
CLRN
D
Q
ENA
CLRN
Coefficient 1
D
18
Q
D
ENA
Q
A[n − 1] × Coefficient 1
(to Adder)
CLRN
ENA
CLRN
D
Q
ENA
CLRN
Coefficient 2
D
18
Q
D
ENA
Q
A[n − 2] × Coefficient 2
(to Adder)
CLRN
ENA
CLRN
Altera Corporation
2005 年 10 月
6–33
Stratix II デバイスハンドブック Volume 2
ソフトウェア・サポート
DSP ブロック内のビルトイン入力シフト・レジスタ・チェインによって、
ロジック・エレメント(LE)内の DSP ブロック外部のシフト・レジス
タは不要になります。このアーキテクチャ機能では、フィルタ回路はす
べて DSP ブロック内でローカライズされるため、フィルタ・デザインが
簡略化されフィルタ性能が向上します。
36 ビットの単純な加算器モード用の入力シフト・レジスタは、
DSPブロックの外部レジスタを使用して実装する必要があります。
1 つの DSP ブロックは、4 タップの 18 ビット FIR フィルタを実装できま
す。4 タップを超えるフィルタを実装する場合、LE を使用して実装され
た追加の加算器ステージによって、DSP ブロックをカスケード接続でき
ます。
ソフトウェア・
サポート
アルテラは、ユーザ・デザインに各種モードの DSP ブロックを実装する
ために、インスタンス化と推定の 2 つの明確な方法を提供しています。
どちらの方法も以下の 3 つの Quartus II メガファンクションを使用しま
す。
■
lpm_mult
altmult_add
■ altmult_accum
■
Quartus II ソフトウェアでメガファンクションをインスタンス化して、
DSP
ブロックを使用することができます。あるいは、推定により、ユーザは
HDL デザインを作成し、LeonardoSpectrum や Synplify などのサードパー
ティ製シンセシス・ツール、または乗算器、乗算器・加算器、および乗算
器・乗算累積器を認識することによって適切なメガファンクションを推定
する Quartus II Native Synthesis を使用して、それを合成することができま
す。いずれの方法を使用する場合も、Quartus II ソフトウェアはコンパイ
ル中に機能を DSP ブロックにマップします。
メガファンクションおよび MegaWizard Plug-In マネージャの使用方法
については、Quartus II オンライン・ヘルプを参照してください。
詳 し く は、「Quartus II Development Software HandbookVolume1」の
「Synthesis」の項を参照してください。
6–34
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月
Stratix II & Stratix II GX デバイスの DSP ブロック
まとめ
Altera Corporation
2005 年 10 月
Stratix II および Stratix II GX デバイスの DSP ブロックは、FIR フィルタ、
FFT ファンクション、エンコーダなど、高データ・スループットを要求す
る DSP アプリケーションをサポートするように最適化されています。これ
らの DSP ブロックには柔軟性が高く、特定のアプリケーションに適合する
いくつかの動作モードの 1 つを実装するようコンフィギュレーションでき
ます。ビルトイン・シフト・レジスタ・チェイン、加算器 / 減算器 / ア
キュムレータ・ブロック、および合計ブロックによって、これらのファン
クションの実装に必要な外部ロジック量が削減され、リソース利用が効率
的になり、DSP アプリケーションの性能とデータ・スループットが向上し
ます。Quartus II ソフトウェアは、LeonardoSpectrum™ および Synplify ソ
フトウェアと共に、DSP ブロックにこれらの乗算器ファンクションを実装
するための完全で使いやすいフローを提供します。
6–35
Stratix II デバイスハンドブック Volume 2
まとめ
6–36
Stratix II デバイスハンドブック Volume 2
Altera Corporation
2005 年 10 月