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 月