7 シリーズ dsp48e1 スライス - xilinx · 7 シリーズ dsp48e1 ユーザー ガイド...

60
7 シリーズ DSP48E1 スライス ユーザー ガイド UG479 (v1.8) 2014 11 10 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先しま す。資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の 上、最新情報につきましては、必ず最新英語版をご参照ください。

Upload: others

Post on 21-Apr-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 スライス

ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきましては、必ず最新英語版をご参照ください。

Page 2: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日

The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products.Tothe maximum extent permitted by applicable law:(1) Materials are made available "AS IS" and with all faults, Xilinx herebyDISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOTLIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULARPURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory ofliability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (includingyour use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including lossof data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if suchdamage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes noobligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to productspecifications.You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent.Certainproducts are subject to the terms and conditions of Xilinx’s limited warranty, please refer to Xilinx’s Terms of Sale which can beviewed at http://www.xilinx.com/legal.htm#tos; IP cores may be subject to warranty and support terms contained in a licenseissued to you by Xilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in such critical applications, please refer toXilinx’s Terms of Sale which can be viewed at http://www.xilinx.com/legal.htm#tos.

AUTOMOTIVE APPLICATIONS DISCLAIMERXILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN ANY APPLICATIONREQUIRING FAIL-SAFE PERFORMANCE, SUCH AS APPLICATIONS RELATED TO:(I) THE DEPLOYMENT OFAIRBAGS, (II) CONTROL OF A VEHICLE, UNLESS THERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICHDOES NOT INCLUDE USE OF SOFTWARE IN THE XILINX DEVICE TO IMPLEMENT THE REDUNDANCY) AND AWARNING SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD TO DEATH ORPERSONAL INJURY.CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE OF XILINX PRODUCTSIN SUCH APPLICATIONS.

© Copyright 2011-2014 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and otherdesignated brands included herein are trademarks of Xilinx in the United States and other countries.All other trademarks are theproperty of their respective owners.

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、 [email protected] まで、 または各ページの右下にある [フ ィードバッ ク送信] ボタンをク リ ッ クする と表示されるフォームからお知らせください。いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめご了承ください。

改訂履歴

次の表に、 この文書の改訂履歴を示します。

日付 バージ ョ ン 内容

2011 年 3 月 1 日 1.0 初版

2011 年 3 月 28 日 1.1 第 1 章 「概要」 を追加。

「DSP48E1 ス ラ イ スの機能」 を更新。 表 2-1 から XC7K30T を削除し、 XC7K355T、XC7K420T、 XC7K480T を追加。

2011 年 10 月 18 日 1.2 「スタ ッ ク ド シ リ コン インターコネク ト (SSI)」 を追加。

「DSP48E1 タイルおよびインターコネク ト 」 で、 DSP48E1 カラムの範囲および DSP スライス数の 大値を更新。表 2-1 に Artix-7 および Virtex-7 ファ ミ リ を追加 (表の注釈を

含む)。

「メモ リ マップされた I/O レジスタ アプリ ケーシ ョ ン」 を追加。

Page 3: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

UG479 (v1.8) 2014 年 11 月 10 日 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

2012 年 1 月 30 日 1.3 高速度 600MHz の表記を文書全体から削除。 表 2-1 から XC7A8、 XC7A15、XC7A30T、 XC7A50T を削除し、 XC7K420T および XC7VX550T のカラムあた りの

DSP48E1 スライス数を更新。「DSP48E1 タイルおよびインターコネク ト 」 で、DSP48E1カラムおよび DSP スライスの数の 小値を更新。

2012 年 10 月 2 日 1.4 「デバイス リ ソース」 を更新。

「DSP48E1 タイルおよびインターコネク ト 」 の 初の段落の 後の文を更新。 表 2-1 から XC7A350T と XC7V1500T を削除し、 XC7VH580T と XC7VH870T を追加。

2013 年 4 月 3 日 1.5 「その他の資料」 の UG687 のリ ンクを更新。 表 2-1 および表 2-2 を更新。 「旧世代と比

較した場合の機能」 の 初と 後の段落を更新。

2013 年 8 月 7 日 1.6 「その他の資料」 および表 2-1 を更新。

2014 年 5 月 10 日 1.7 「このユーザー ガイ ドについて」 で UG958 へのリ ンクを追加。表 2-2 および表 2-3 の説

明で内容を若干変更。 図 2-7 および図 2-8 を小変更。

2014 年 11 月 10 日 1.8 表 2-1 に 7A15T デバイスを追加。 「MULTSIGNOUT と CARRYCASCOUT」 の 後の

段落を更新。

日付 バージ ョ ン 内容

Page 4: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日

Page 5: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 5UG479 (v1.8) 2014 年 11 月 10 日

改訂履歴. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

このユーザー ガイドについて内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

その他の資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

その他のリ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

第 1 章 : 概要

DSP48E1 スライスの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

旧世代と比較した場合の機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

デバイス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

デザイン推奨事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

スタ ッ ク ド シ リ コン インターコネク ト (SSI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

第 2 章 : DSP48E1 の説明および詳細

DSP48E1 スライスの機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

7 シ リーズ FPGA DSP48E1 スライスのアーキテクチャの特長 . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

DSP48E1 スライスのプリ ミ ティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

簡略された DSP48E1 スライス動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

第 3 章 : DSP48E1 のデザイン上の留意点

パフォーマンス向上のための設計. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

電力削減のための設計. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

加算器ツ リーと加算器カスケード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

カラム内での DSP48E1 スライスの接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

DSP48E1 スライスの時分割多重化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

備考および推奨 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

DSP48E1 のデザイン リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

前置加算器ブロッ クの用途 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

メモ リ マップされた I/O レジスタ アプリ ケーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

付録 A : CARRYOUT、 CARRYCASCOUT、 および MULTSIGNOUTCARRYOUT/CARRYCASCOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

MULTSIGNOUT と CARRYCASCOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

ま とめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

目次

Page 6: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

6 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

Page 7: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 7UG479 (v1.8) 2014 年 11 月 10 日

このユーザー ガイドについて

ザイ リ ンクス 7 シ リーズ FPGA には、 3 つの FPGA ファ ミ リがあ り ます。 これらはすべて も低

い消費電力を達成するよ う設計されており、 適な電力、 性能、 コス トの実現に向けて、 標準デザ

インをファ ミ リ間で拡張させるこ とが可能です。Artix®-7 ファ ミ リは、量産アプリ ケーシ ョ ン向け

に開発され、 も低いコス ト と消費電力を実現するよ う 適化されています。 Virtex®-7 ファ ミ リ

は、 高のシステム性能と容量を提供するよ うに 適化されています。 Kintex®-7 ファ ミ リは、 対

コス ト性能に も優れた新しいク ラスの FPGA です。 このユーザー ガイ ドは、 7 シ リーズ FPGAの DSP48E1 スライスについて説明した技術的な リ ファレンスです。

内容

このユーザー ガイ ドは、 次の各章で構成されています。

• 第 1 章 「概要」

• 第 2 章 「DSP48E1 の説明および詳細」

• 第 3 章 「DSP48E1 のデザイン上の留意点」

• 付録 A 「CARRYOUT、 CARRYCASCOUT、 および MULTSIGNOUT」

その他の資料

次の文書は、 このユーザー ガイ ドの補足資料と して役立ちます。

1. UG193 : 『Virtex-5 FPGA XtremeDSP ユーザー ガイ ド』

2. DS180 : 『7 シ リーズ FPGA 概要』

3. UG687 : 『XST ユーザー ガイ ド (Virtex-6、 Spartan-6、 および 7 シ リーズ デバイス用)』4. UG958 : 『Vivado Design Suite リ ファレンス ガイ ド : System Generator を使用したモデル ベー

スの DSP デザイン』 5. 7 シ リーズ FPGA データシート

6. UG073 : 『Virtex-4 FPGA の XtremeDSP ユーザー ガイ ド』

その他のリソース

シ リ コンおよびソフ ト ウェアに関するアンサー データベースを検索した り、 テクニカル サポート

のウェブケースを開く場合は、 次のウェブサイ トにアクセスして ください。

http://japan.xilinx.com/support

Page 9: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 9UG479 (v1.8) 2014 年 11 月 10 日

第 1 章

概要

DSP48E1 スライスの概要

FPGA は、 カスタマイズされた完全な並列アルゴ リズムをインプ リ メン トできるため、 デジタル信

号処理 (DSP) アプリ ケーシ ョ ンに有効です。 DSP アプリ ケーシ ョ ンは、 専用の DSP スライスに

適にインプ リ メ ン ト された多数のバイナ リ乗算器およびアキュムレータを使用します。 すべての

7 シ リーズ FPGA は、専用で完全にカスタマイズされた低消費電力 DSP スライスを数多く装備し、

システム デザインの柔軟性を維持しながら、 高速処理および小型化を実現しています。 DSP スラ

イスは、 デジタル信号処理のほかにも多くのアプリ ケーシ ョ ンで速度と効率性を向上させます。 こ

のよ うなアプリ ケーシ ョ ンには、バス幅の広いダイナミ ッ ク シフター、メモ リ アドレス ジェネレー

ター、 多入力マルチプレ クサー、 メ モ リ マップされた I/O レジス タが含まれます。 図 1-1 に、

DSP48E1 スライスの基本的な機能を示します。全詳細は、図 2-1 と第 2 章 「DSP48E1 の説明およ

び詳細」 を参照して ください。

DSP の主な特長は次のとおりです。

• 25 × 18 の 2 の補数乗算器

• ダイナミ ッ ク バイパス

• 48 ビッ ト アキュムレータ

• 同期アップ/ダウン カウンターと して使用可能

• 低消費電力の前置加算器

• 対称フ ィルター アプリ ケーシ ョ ンを 適化し、 DSP スライス要件を削減

X-Ref Target - Figure 1-1

図 1-1 : DSP48E1 スライスの基本機能

UG479_c1_21_032111

48-Bit Accumulator/Logic Unit

Pattern Detector

25 x 18Multiplier

Pre-adder

B

A

D

C

P

+ / –

X

=

+–

Page 10: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

10 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 1 章 : 概要

• 単一命令複数データ (SIMD) 演算ユニッ ト

• デュアル 24 ビッ ト またはクワッ ド 12 ビッ トの加算/減算/累算

• オプシ ョ ンの論理ユニッ ト

• 2 つのオペランドの 10 個の異なるロジッ ク ファンクシ ョ ンのいずれかを生成可能

• パターン検出器

• 収束丸め込みまたは対称丸め込み

• 論理ユニッ ト と組み合わせて使用した場合、 96 ビッ ト幅のロジッ ク ファンクシ ョ ン

• 高度な機能

• オプシ ョ ンと して、 カスケード接続用のパイプラインおよび専用バス

旧世代と比較した場合の機能

7 シ リーズ FPGA DSP48E1 スライスは、Virtex®-6 FPGA DSP48E1 スライス と機能的に等価で完

全な互換性があ り、Virtex-5 FPGA DSP48E スライス [参照 1] の上位セッ トです。7 シ リーズ FPGADSP48E1 スラ イスは Spartan®-6 FPGA ファ ミ リの DSP48A1 スラ イスよ り多くの機能を備えて

います。 具体的な相違点は、 次のとおりです。

• DSP48A1 から拡張された機能

• 乗算器の幅は、 Spartan-6 ファ ミ リの 18x18 から拡張され、 7 シ リーズでは 25x18

• A レジスタの幅は、Spartan-6 ファ ミ リの 18 ビッ トから拡張され、7 シリーズでは 30 ビッ ト

- 7 シ リーズでは、 A レジスタ と B レジスタを連結可能

- 7 シ リーズでは、 B レジスタではなく A レジスタの後に前置加算器がある

• 大規模な乗算器や後置加算器用に、 両方のパイプライン パスでカスケード接続可能

• DSP48A1 にはない DSP48E1 独自の機能

• 論理演算ユニッ ト (ALU)

• SIMD モード

• パターン検出器

• 17 ビッ ト シフター

Virtex-6 ファ ミ リの DSP デザインは、7 シ リーズの DSP リ ソースにそのまま移行します。カスケー

ド接続された DSP スライスを含むデザインを移行する場合、 カラムあたりの DSP スライス数を考

慮する必要があ り ます。 Spartan-6 フ ァ ミ リ の DSP デザイ ン も 7 シ リ ーズに移行でき ますが、

DSP48E1 スライスのよ り優れた性能を活用する方法を考察する必要があ り ます。詳細は、『7 シ リー

ズ FPGA マイグレーシ ョ ン メ ソ ド ロジ ガイ ド』 (UG429) を参照してください。

デバイス リソース

DSP リ ソースはすべての 7 シ リーズ ファ ミ リで 適化されており、 異なる リ ソース量のデバイス

がスケーラブルに用意されています。 アーキテクチャは共通のため、 インプリ メンテーシ ョ ンの効

率、 IP インプリ メンテーシ ョ ン、デザイン移行が改善されます。 7 シ リーズ ファ ミ リの各デバイス

では、 DSP48E1 スライスの数および DSP とその他のデバイス リ ソースの比率が異なり ます。 7 シ

リーズ ファ ミ リ間のマイグレーシ ョ ンでは、 DSP48E1 に関するデザイン変更は一切不要です。

Page 11: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 11UG479 (v1.8) 2014 年 11 月 10 日

デザイン推奨事項

7 シ リーズ FPGA で使用できる DSP48E1 リ ソースについては、 表 2-1 を参照してください。 すべ

ての 7 シ リーズ FPGA に関する 新の情報は、 『7 シ リーズ FPGA 概要』 [参照 2] を参照して くだ

さい。

デザイン推奨事項

7 シ リーズ アーキテクチャは、 多くの DSP デザインに十分適しています。 このアーキテクチャを

活用するには、 その基盤となる機能や性能を理解し、 これらのリ ソースのメ リ ッ ト を 大限引き出

すデザイン入力コードを作成する必要があ り ます。 DSP48E1 リ ソースは、 ほとんどの DSP ファン

クシ ョ ンと多くの演算ファンクシ ョ ンに自動的に使用されます。通常、 DSP リ ソースは推論による

実装が適しています。合成に XST を使用する場合は、『XST ユーザー ガイ ド (Virtex-6、Spartan-6、および 7 シ リーズ デバイス用)』 [参照 3] の「XST ハードウェア記述言語 (HDL) コーディング手法」

の章を参照するこ とを推奨します。 インスタンシエートするこ とで、 特定の DSP48E1 スライス機

能にアクセスできるよ うにな り ます。 DSP48E1 スライスを使用する際に推奨される事項は、 次の

とおりです。

• HDL ソースで符号付きの値を使用する

• パフォーマンス向上と消費電力低減のため、 DSP48E1 スライス とファブ リ ッ クの両方でパイ

プライン化する

• 小規模な乗算器、 加算器、 およびカウンターのインプリ メン トには、 コンフ ィギャラブル ロ

ジッ ク ブロ ッ ク (CLB) キャ リー ロジッ クを使用する

• フ ィルター係数の格納場所には、 CLB SRL、 CLB 分散 RAM、 ブロ ッ クRAM のすべてか、 い

ずれかを使用する

• 加算器または論理ユニッ トのみを使用する場合は、 消費電力削減のために USE_MULT を

NONE に設定する

• パフォーマンスの 大化および消費電力の 小化のため、 ファブ リ ッ クではなく専用リ ソース

を使用してカスケード接続し、 使用するカラムは 1 つに留める

• デザインに時分割多重化を使用するこ とを検討する

設計手法の詳細は、 第 3 章 「DSP48E1 のデザイン上の留意点」 を参照してください。

スタ ック ド シリコン インターコネク ト (SSI)インターポーザー (SLR : Super Logic Region の境界) を越えて DSP スライスをカスケード接続す

るこ とはできません。 SSI テク ノ ロジの詳細は、 『ザイ リ ンクスのスタ ッ ク ド シ リ コン インターコ

ネク ト テク ノ ロジで飛躍的な FPGA 容量、帯域幅、電力効率を実現』 (WP380) を参照してください。

Page 13: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 13UG479 (v1.8) 2014 年 11 月 10 日

第 2 章

DSP48E1 の説明および詳細

この章では、7 シ リーズ FPGA が備える DSP エレ メン ト、DSP48E1 スライスについて技術的な詳

細を説明します。

DSP48E1 スラ イスを使用する と、 柔軟性と利便性の向上、 アプ リ ケーシ ョ ンの効率化、 総消費電

力の削減、 大周波数の増加が実現します。 また、 DSP48E1 スライスは高性能なため、 時分割多

重化方式を利用して 1 つの DSP48E1 スライスで複数の低速の処理を実行できます。

DSP48E1 スラ イスは、 乗算器、 乗算アキュムレータ (MACC)、 乗算加算器、 3 入力加算器、 バレ

ル シフター、多入力マルチプレクサー、マグニチュード コンパレータ、ビッ ト単位のロジッ ク ファ

ンクシ ョ ン、パターン検出、および多入力カウンターなど、多くの独立した機能をサポート します。

さ らに、 複数の DSP48E1 スライスをカスケード接続できるアーキテクチャによって、 多入力の数

値演算や DSP フ ィルター、 および複素数演算にも、 汎用のロジッ クを使用せずに対応できます。

この章には、 次のセクシ ョ ンがあ り ます。

• 「DSP48E1 スライスの機能」

• 「7 シ リーズ FPGA DSP48E1 スライスのアーキテクチャの特長」

• 「簡略された DSP48E1 スライス動作」

図 2-1 に 7 シ リ ーズ FPGA DSP48E1 ス ラ イ スを示し ます。 このス ラ イ スは、 Virtex®-6 FPGADSP48E1 スライス と機能的に同等であ り、『Virtex-5 FPGA XtremeDSP ユーザー ガイ ド』 [参照 1]で説明されている Virtex-5 デバイスの DSP48E スライスを拡張したものです。

Page 14: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

14 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

DSP48E1 スライスの機能

このセクシ ョ ンでは、 7 シ リーズ FPGA DSP48E1 スライスの機能を説明します。

DSP スライスは 1 つの乗算器と、それに後置する 1 つのアキュムレータで構成されています。乗算

と積和演算のどちらの演算についても、 高速度で処理するには 3 つ以上のパイプライン レジスタ

が必要です。 1 段目の乗算演算で 2 つの部分積が生成され、 2 段目でその部分積の和を求めます。

乗算器内にレジスタが 1 つまたは 2 つしかない場合は、 消費電力削減と性能向上のため、 常に Mレジスタを使用する必要があ り ます。

加算/減算と論理ユニッ ト演算を 高速度で実行するには、 少な く と も 2 つ (入力と出力) のパイプ

ライン レジスタが必要です。

DSP スライスのカスケード接続によって、加算器ツ リーの代わりに加算器カスケード上にパイプラ

イン化した高速フ ィルターを、 きわめて効率的にインプリ メン トできます。

マルチプレクサーは OPMODE、 ALUMODE、 CARRYINSEL などの制御信号によって動的に制

御されるため、 非常に柔軟な制御が可能になっています。 レジスタ とダイナミ ッ ク動作モードを採

用したデザインは、乗算器の組み合わせに比べ、DSP スライスの機能を活用する上で適しています。

一般的に、 DSP スライスはダイナミ ッ ク OPMODE とカスケード機能によって、 シーケンシャル、

カスケードの両方の演算をサポー ト し ます。 DSP ス ラ イ スの用途と しては、 高速フー リ エ変換

(FFT) や浮動小数点演算、四則演算 (乗算、加算/減算、除算)、 カウンター、大きなバス マルチプレ

クサーなどが挙げられます。

その他には、同期リセッ ト 、 ク ロ ッ ク イネーブル、デュアル A 入力パイプライン レジスタ、パター

ン検出、 論理ユニッ ト機能、 SIMD (単一命令複数データ) 機能、 および MACC と加算器/アキュム

レータの 96 ビッ ト拡張などがあ り ます。また、DSP スライスは収束丸め込みと対称丸め込み、ター

X-Ref Target - Figure 2-1

図 2-1 : 7 シリーズ FPGA DSP48E1 スライス

UG369_c1_01_052109

*These signals are dedicated routing paths internal to the DSP48E1 column. They are not accessible via fabric routing resources.

X

17-Bit Shift

17-Bit Shift

0

Y

Z

10

0

48

48

4

48

BCIN* ACIN*

OPMODE

PCIN*

MULTSIGNIN*

PCOUT*

CARRYCASCOUT*

MULTSIGNOUT*

CREG/C Bypass/Mask

CARRYCASCIN*

CARRYIN

CARRYINSEL

A:B

ALUMODE

B

B

A

C

M

P

PP

C

MULT25 X 18

A

18

30

3

PATTERNDETECT

PATTERNBDETECT

CARRYOUT

4

7

48

48

30

18P

P

5

D 25

25

INMODE

BCOUT* ACOUT*

18

30

4 1

3018

Dual B Register

Dual A, D,and Pre-adder

Page 15: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 15UG479 (v1.8) 2014 年 11 月 10 日

DSP48E1 スライスの機能

ミナル カウン ト検出とカウンターの自動リセッ ト、 およびシーケンシャル アキュムレータのオー

バーフロー /アンダーフロー検出をサポート します。

7 シ リーズ FPGA DSP48E1 スライスの ALU ファンクシ ョ ンは、Virtex-6 FPGA DSP48E1 スライ

スのものと同じです。 詳細は、 35 ページの 「ALUMODE 入力」 を参照してください。

Page 16: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

16 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

7 シリーズ FPGA DSP48E1 スライスのアーキテクチャの特長

7 シ リーズ FPGA DSP48E1 スライスは、 Virtex-6 FPGA DSP48E1 と機能的に同等です。 7 シ リー

ズ FPGA DSP48E1 スライス内には、 A レジスタの後に 25 ビッ トの入力ベクターを持つ前置加算

器があ り ます。 この入力ベクターは D レジスタ と呼ばれ、前置加算器のレジスタ と して使用できる

ほか、 乗算器への代替入力と しても使用可能です。 図 2-2 に、 DSP48E1 の新機能を示します。 詳

細は、 29 ページの 「入力ポート 」 以降で説明しています。

X-Ref Target - Figure 2-2

図 2-2 : 7 シリーズ DSP48E1 スライスの入力レジスタと前置加算器の階層図

X

17-Bit Shift

17-Bit Shift

0

Y

Z

10

0

48

48

18

4

3

48

30

BCIN* ACIN*

OPMODE

PCIN*

MULTSIGNIN*

PCOUT*

CARRYCASCOUT*

MULTSIGNOUT*

CREG/C Bypass/Mask

CARRYCASCIN*

CARRYIN

CARRYINSEL

A:B

ALUMODE

B

A

C

B

M

P

PP

C

MULT25 X 18

PATTERNDETECT

PATTERNBDETECT

CARRYOUT

4

7

48

48

30

18

P

P

5

D 25

25

INMODE

BCOUT* ACOUT*

18

30

4

3018

Dual B Register

Dual A, D,and Pre-adder

1

+–

UG369_c1_02_072209

A

D

30A1ACIN

25

25

A MULT

ACOUT

X MUX30

30

2525 INMODE[2]

INMODE[3]

INMODE[0]

INMODE[1]

D

A2

AD

CEA1 RSTA

CED RSTD

CEA2 RSTA

CEAD RSTD

B18

B1BCIN

BCOUT

X MUX18

18

18

INMODE[4]

B MULTB2

CEB1 RSTB CEB2 RSTB

Page 17: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 17UG479 (v1.8) 2014 年 11 月 10 日

7 シリーズ FPGA DSP48E1 スライスのアーキテクチャの特長

7 シ リーズ FPGA DSP48E1 スライスの機能は次のとおりです。

• D レジスタを持つ 25 ビッ トの前置加算器で A パスの性能を拡張

• 乗算 (A*B) と加算 (A:B) の動的な切り替え時に、 INMODE 制御によ りパイプラインのバラン

ス調整が可能

• 25 x 18 乗算器

• 30 ビッ ト A 入力の下位 25 ビッ トは乗算器の A 入力へ送信され、 全 30 ビッ ト入力は 48 ビッ

ト A:B 連結内部バスの上位 30 ビッ ト を形成する

• A 入力と B 入力のカスケード接続

• 直接パスおよびカスケード パスにおいてパイプライン化を選択可能

• 2 段構成の A および B 入力レジスタにそれぞれ専用のクロ ッ ク イネーブルがあ り、 個別

にレジスタを有効化できる

• 独立型 C 入力および C レジスタ (専用リセッ ト と ク ロ ッ ク イネーブル付き)

• 内部カスケード信号 CARRYCASCIN および CARRYCASCOUT で、2 つの DSP48E1 スライ

スを使用する 96 ビッ ト アキュムレータ /加算器/減算器のサポート

• OPMODE が設定可能な MULTSIGNIN および MULTSIGNOUT 内部カスケード信号で、 96ビッ ト MACC への拡張が可能

• 3 入力加算器/減算器に単一命令複数データ (SIMD) モードを使用し、 1 段目の乗算器の使用を

不要にする

• 2 つの独立 CARRYOUT 信号付きデュアル 24 ビッ ト SIMD 加算器/減算器/アキュムレータ

• 4 つの独立 CARRYOUT 信号付きクワッ ド 12 ビッ ト SIMD 加算器/減算器/アキュムレータ

• 48 ビッ トの論理ユニッ ト

• ビッ ト単位ロジッ ク動作 - 2 入力 AND、OR、NOT、NAND、NOR、XOR、および XNOR

• ALUMODE を使用して動的に選択可能なユニッ ト モード

• パターン検出器

• オーバーフロー /アンダーフロー

• 偶数丸め込み

• ターミナル カウン ト検出および自動リセッ ト

• 48 ビッ トの P バスのカスケード接続によ り、 低消費電力の内部加算器カスケードをサポート

• 48 ビッ トの P バスによ り、 12 ビッ ト (クワ ッ ド ) または 24 ビッ ト (デュアル) SIMD モー

ド加算器がインプリ メン ト可能

• オプシ ョ ンの 17 ビッ ト右方向シフ トで、 大規模な乗算器を構築可能

• ダイナミ ッ ク ユーザー制御型の動作モード

• 7 ビッ トの OPMODE 制御バスによ り、 X、 Y、 および Z マルチプレクサーへ選択信号が

送られる

• 2 段目の加算器へのキャ リーイン

• 丸め込み

• 大規模な加算器/減算器

• 3 ビッ ト CARRYINSEL マルチプレクサー

• 2 段目の加算器へのキャ リーアウ ト

• 大規模な加算器/減算器

Page 18: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

18 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

• 各 SIMD 加算器で利用可能 ( 大 4)

• CARRYCASCOUT および MULTSIGNOUT のカスケード接続で、 96 ビッ ト MACC への拡張が可能

• オプシ ョ ンの入力、 パイプライン、 および出力/累算レジスタ

• 制御信号 (OPMODE、 ALUMODE、 CARRYINSEL) 用のオプシ ョ ン制御レジスタ

• 独立したクロ ッ ク イネーブルおよびリセッ トで柔軟性強化、 リセッ トが優先される

• 電力を節約するため 1 段目の乗算器を使用しない場合には、 USE_MULT 属性を使用して内部

乗算ロジッ クのゲート をオフにする

各 DSP48E1 スラ イスには、 2 入力乗算器、 マルチプレクサー、 および 3 入力の加算器/減算器/アキュムレータが、 この順番に配置されています。 DSP48E1 乗算器は非対称入力があ り、 18 ビッ ト

および 25 ビッ トの 2 の補数オペランドを受信します。 この乗算器では、 2 つの部分積で構成され

る 43 ビッ トの 2 の補数を出力します。これらの部分積は X および Y マルチプレクサーでそれぞれ

48 ビッ トへ符号拡張され、3 入力加算器へ送信されて 終的に合算されます。 この結果は、43 ビッ

トの乗算出力とな り、 48 ビッ トに符号拡張されます。つま り、乗算器が使用される場合、加算器は

事実上 2 入力加算器とな り ます。

USE_MULT 属性を NONE に設定し、 OPMODE を適切に設定するこ とで乗算器をバイパスする

と、2 段目の加算器/減算器には 48 ビッ トの 2 の補数値が 3 つ入力され、48 ビッ トの 2 の補数結果

が 1 つ出力されます。SIMD モードの場合、 48 ビッ ト加算器/減算器は CARRYOUT ビッ ト を使用

して、デュアル 24 ビッ ト またはクワ ッ ド 12 ビッ ト SIMD 演算が可能です。このコンフ ィギュレー

シ ョ ンの場合、 動的に ALUMODE 制御信号を使用して、 2 つの 48 ビッ ト バイナリ上でのビッ ト

単位ロジッ ク動作も可能になり ます。

DSP48E1 カラム内で DSP48E1 スライスをカスケード接続する と、 よ り高いレベルの DSP 機能が

可能になり ます。2 つのデータパス (ACOUT、BCOUT)、および DSP48E1 スライス出力 (PCOUT、MULTSIGNOUT、CARRYCASCOUT) がカスケード接続可能です。データパスのカスケード接続

は、 フ ィルター デザインで活用されます。 たとえば、 有限インパルス応答 (FIR) フ ィルター デザ

インは、 カスケード入力を使用して一連の入力データ サンプルを包括し、 カスケード出力を使用し

て部分的な出力結果をまとめあげます。カスケード接続は FPGA ファブリ ッ クの一般配線を使用し

ないため、 高性能かつ低消費電力な DSP フ ィルター機能が構築されます。

C 入力ポートによ り、 3 入力加算器や加算器付き 2 入力乗算器などの多くの 3 入力演算機能を構築

できます。 このファンクシ ョ ンのサブセッ トは、 0 または無限大の方向への対称丸め込み乗算をサ

ポート します。 C 入力にパターン検出機能を組み合わせる場合でも、 偶数丸め込みがサポート され

ます。

高精度演算の場合、 DSP48E1 スライスは 17 ビッ ト分右方向へシフ ト します。 これによ り、 1 つの

DSP48E1 スライスから出力される部分積は右揃いになり、隣接する DSP48E1 スライスで算出され

た部分積へ加算されます。この手法が使用できるため、大規模な乗算器を構築する場合は、DSP48E1スライスが使用されます。

入力オペランド、 中間積、 およびアキュムレータ出力のプログラム可能なパイプラインは、 スルー

プッ ト を向上します。 48 ビッ ト内部パス (PCOUT/PCIN) によ り、 単一カラム内に DSP スラ イス

を集合させるこ とが可能です。複数カラムにまたがる場合は、FPGA ファブリ ッ ク ロジッ クが必要

になり ます。

DSP48E1 スラ イスの出力にあるパターン検出器は、 偶数丸め込み、 オーバーフロー /アンダーフ

ロー、ブロ ッ ク浮動小数点、およびアキュムレータ ターミナル カウン ト (カウンター自動リセッ ト )をサポート します。 パターン検出器は、 マスク制限されたパターンと DSP48E1 スライス出力が一

致しているか検出します。

Page 19: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 19UG479 (v1.8) 2014 年 11 月 10 日

7 シリーズ FPGA DSP48E1 スライスのアーキテクチャの特長

DSP48E1 タイルおよびインターコネク ト

DSP48E1 タイルは、 2 つの DSP48E1 スライス と専用のインターコネク トで構成されています (図 2-3 参照)。 DSP48E1 タ イルは、 DSP48E1 カラム内で縦方向に積み重なり ます。 DSP48E1 タイルの高さは、 コンフ ィギャラブル ロジッ ク ブロ ッ ク (CLB) 5 個分またはブロ ッ ク RAM 1 個分

の高さ と同じです。7 シ リーズ デバイスのブロ ッ ク RAM は、2 つの 18K ブロ ッ ク RAM に分割で

きます。 各 DSP48E1 スライスは、 1 個の 18K ブロ ッ ク RAM と横並びに配置されています。 7 シ

リーズ デバイスの DSP48E1 カラム数は、 大 20 個です。

7 シ リーズ デバイスには、デバイスあたり 60 ~ 3,600 の DSP スライスがあ り、数十 GMAC/s から

数千 GMAC/s (ピーク ) の圧倒的な処理性能を発揮し、 負荷がきわめて大きい DSP アプリ ケーシ ョ

ンに対応します。 表 2-1 に、 7 シ リーズの各デバイスの DSP48E1 スライス数を示します。 Artix-7、Kintex-7、 Virtex-7 ファ ミ リの情報は、 japan.xilinx.com からデバイス一覧表を参照してください。

X-Ref Target - Figure 2-3

図 2-3 : DSP48E1 のインターコネク ト と関連するエレメン トのサイズ

DSP48E1Slice

DSP48E1Slice

Inte

rcon

nect

UG479_c1_03_060910

表 2-1 : 7 シリーズの各デバイスの DSP48E1 スライス数

デバイスデバイスあたりの

DSP48E1 スライス数

デバイスあたりの DSP48E1 カラム数

カラムあたりの DSP48E1 スライス数

7A15T 45 2 60(2)

7A35T 90 2 60(2)

7A50T 120 2 60

7A75T 180 3 80(2)

7A100T 240 3 80

7A200T 740 9 100(1)

7K70T 240 3 80

7K160T 600 6 100

7K325T 840 6 140

7K355T 1,440 12 120

7K410T 1,540 11 140

7K420T 1,680 12 160(2)

7K480T 1,920 12 160

7V585T 1,260 7 180

7V2000T 2,160 9 240(3)

7VX330T 1,120 8 140

Page 20: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

20 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

7VX415T 2,160 18 120

7VX485T 2,800 20 140

7VX550T 2,880 18 200(2)

7VX690T 3,600 18 200

7VX980T 3,600 20 180

7VX1140T 3,360 14 240(3)

7VH580T 1,680 14 120(3)

7VH870T 2,520 14 180(3)

注記 :

1. 中央の 4 つの DSP カラムには GTP クワ ッ ドが含まれます。 1 つの GTP クワ ッ ドは DSP スライス 20 個分に相当します。

2. DSP スライスの総数は、 ツールによって制限されます。

3. 各 SLR には、 カラムあた り 60 の DSP スライスがあ り ます。

表 2-1 : 7 シリーズの各デバイスの DSP48E1 スライス数 (続き)

デバイスデバイスあたりの

DSP48E1 スライス数

デバイスあたりの DSP48E1 カラム数

カラムあたりの DSP48E1 スライス数

Page 21: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 21UG479 (v1.8) 2014 年 11 月 10 日

DSP48E1 スライスのプリ ミテ ィブ

DSP48E1 スライスのプリ ミテ ィブ

図 2-4 に、 DSP48E1 のプリ ミ ティブを示します。 この図では、 DSP48E1 スライスの入力および出

力ポート を示し、各ポートのビッ ト幅も示しています。表 2-2 で各ポートについて説明しています。

X-Ref Target - Figure 2-4

図 2-4 : DSP48E1 スライスのプリ ミテ ィブ

A[29:0]B[17:0]C[47:0]

OPMODE[6:0]ALUMODE[3:0]CARRYINCARRYINSEL[2:0]

CEA 1CEA 2CEB 1CEB 2CECCEDCEMCEPCEAD

RSTARSTB

ACOUT[29:0]BCOUT[17:0]PCOUT[47:0]

P[47:0]

CARRYOUT[3:0]CARRYCASCOUT

MULTSIGNOUT

PATTERNDETECTPATTERNBDETECT

OVERFLOWUNDERFLOW

RSTC RSTDRSTMRSTPRSTCTRLRSTALLCARRYIN

CLK

RSTALUMODERSTINMODE

ACIN[29:0]BCIN[17:0]PCIN[47:0]CARRYCASCINMULTSIGNIN

CEALUMODECECTRLCECARRYINCEINMODE

30

18

48

D[24:0]25

30

18

48

48

7

4

3

INMODE[4:0]5

4

30

18

48

UG369_c1_04_051209

Page 22: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

22 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

表 2-2 : DSP48E1 の各ポート とその説明

ポート名 方向 ビッ ト幅 説明

A(1) 入力 30 A[24:0] は、 乗算器または前置加算器の A 入力。 A[29:0] は、 2 段目の加算

器/乗算器またはロジッ ク ファンクシ ョ ンへの A:B 連結入力の MSB ( 上

位ビッ ト )

ACIN(2) 入力 30 カスケード接続されている上位 DSP48E1 スラ イス (A とマルチプレクス)の ACOUT と接続するデータ入力

ACOUT(2) 出力 30 カスケード接続されている下位 DSP48E1 ス ラ イ スの ACIN へ接続する

データ出力

ALUMODE 入力 4 DSP48E1 ス ラ イ ス内のロ ジ ッ ク フ ァ ン ク シ ョ ンの選択を制御する

(43 ページの表 2-13 参照)

B(1) 入力 18 乗算器の B 入力。 B[17:0] は、 2 段目の加算器/乗算器またはロジッ ク ファ

ンクシ ョ ンへの A:B 連結入力の LSB ( 下位ビッ ト )

BCIN(2) 入力 18 カスケード接続されている上位 DSP48E1 スラ イス (B とマルチプレクス)の BCOUT と接続するデータ入力

BCOUT(2) 出力 18 カスケード接続されている下位 DSP48E1 ス ラ イ スの BCIN へ接続する

データ出力

C(1) 入力 48 2 段目の加算器/減算器、 パターン検出器、 またはロジッ ク ファンクシ ョ ン

へのデータ入力

CARRYCASCIN(2) 入力 1 カスケード接続されている上位 DSP48E1 スラ イスの CARRYCASCOUTと接続するキャ リー入力

CARRYCASCOUT(2) 出力 1 カスケード接続されている下位 DSP48E1 スライスの CARRYCASCIN へ接続する キ ャ リ ーア ウ ト。 この信号は、 同じ DSP48E1 ス ラ イ スの

CARRYINSEL マルチプレクサー入力へ内部フ ィードバッ ク される

CARRYIN 入力 1 FPGA ロジッ クからのキャ リー入力

CARRYINSEL 入力 3 キャ リー ソースを選択する (表 2-11 参照)

CARRYOUT 出力 4 アキュムレータ /加算器/論理ユニッ ト の各 12 ビ ッ ト フ ィールドからの 4ビッ ト CARRYOUT 信号。通常の 48 ビッ ト演算には CARRYOUT3 だけが

使用される。 SIMD 演算では 4 ビッ ト キャ リーアウ ト (CARRYOUT[3:0])が使用可能

CEA1 入力 1 1 段目の A (入力) レジスタ用のクロ ッ ク イネーブル。A1 は、AREG = 2 または INMODE[0] = 1 の場合のみ使用される

CEA2 入力 1 2 段目の A (入力) レジスタ用のクロ ッ ク イネーブル。A2 は、AREG = 1 または 2、 および INMODE[0] = 0 の場合のみ使用される

CEAD 入力 1 前置加算器出力 AD パイプライン レジスタ用のクロ ッ ク イネーブル

CEALUMODE 入力 1 ALUMODE (制御入力) レジスタ用のクロ ッ ク イネーブル

CEB1 入力 1 1 段目の B (入力) レジスタ用のクロ ッ ク イネーブル。 B1 は、 BREG = 2 または INMODE[4] = 1 の場合のみ使用される

CEB2 入力 1 2 段目の B (入力) レジスタ用のクロ ッ ク イネーブル。 B2 は、 BREG = 1 または 2、 および INMODE[4] = 0 の場合のみ使用される

CEC 入力 1 C (入力) レジスタ用のクロ ッ ク イネーブル

Page 23: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 23UG479 (v1.8) 2014 年 11 月 10 日

DSP48E1 スライスのプリ ミテ ィブ

CECARRYIN 入力 1 CARRYIN (FPGA ロジッ クからの入力) レジスタ用のクロ ッ ク イネーブル

CECTRL 入力 1 OPMODE および CARRYINSEL (制御入力) レジスタ用のクロ ッ ク イネー

ブル

CED 入力 1 D (入力) レジスタ用のクロ ッ ク イネーブル

CEINMODE 入力 1 INMODE 制御入力レジスタ用のクロ ッ ク イネーブル

CEM 入力 1 乗算後の M (パイプラ イン) レジスタおよび内部乗算丸め込み CARRYINレジスタ用のクロ ッ ク イネーブル

CEP 入力 1 P (出力) レジスタ用のクロ ッ ク イネーブル

CLK 入力 1 DSP48E1 入力クロ ッ ク。 すべての内部レジスタおよびフ リ ップフロ ップで

共通

D(1) 入力 25 前置加算器への 25 ビッ ト データ入力または乗算器への代替入力。前置加算

器は INMODE3 信号で指定される D + A を実行する

INMODE 入力 5 前置加算器、 A、 B、 D 各入力、 および入力レジスタの機能を選択する 5 つの制御ビッ ト。 接続しない場合、 これらのビッ ト の設定は 5’b00000。 各

ビッ トは必要に応じて反転可能、 柔軟な配線が可能

MULTSIGNIN(2) 入力 1 MACC 拡張用に上位 DSP48E1 スライスから渡される乗算結果の符号

MULTSIGNOUT(2) 出力 1 MACC 拡張用に、 カスケード接続されている下位 DSP48E1 スライスに渡

す乗算結果の符号

OPMODE 入力 7 DSP48E1 スライス内の X、 Y、 および Z マルチプレクサーへの入力を制御

する (表 2-7、 表 2-8、 および表 2-9 参照)

OVERFLOW 出力 1 適切に設定したパターン検出器を使用した場合、オーバーフローを示す出力

P 出力 48 2 番目の加算器/減算器またはロジッ ク ファンクシ ョ ンからのデータ出力

PATTERNBDETECT 出力 1 P[47:0] とパターン バーの一致を示す出力

PATTERNDETECT 出力 1 P[47:0] とパターンの一致を示す出力

PCIN(2) 入力 48 カスケード接続されている上位 DSP48E1 スラ イスの加算器 PCOUT と接

続するデータ入力

PCOUT(2) 出力 48 カスケード接続されている下位 DSP48E1 ス ラ イ スの PCIN へ接続する

データ出力

RSTA 入力 1 両方の A (入力) レジスタ用のリセッ ト

RSTALLCARRYIN 入力 1 キャ リー (内部パス) および CARRYIN レジスタ用のリセッ ト

RSTALUMODE 入力 1 ALUMODE (制御入力) レジスタ用のリセッ ト

RSTB 入力 1 両方の B (入力) レジスタ用のリセッ ト

RSTC 入力 1 C (入力) レジスタ用のリセッ ト

RSTCTRL 入力 1 OPMODE および CARRYINSEL (制御入力) レジスタ用のリセッ ト

RSTD 入力 1 D (入力) レジスタおよび前置加算器 (出力) AD パイプライン レジスタ用の

リセッ ト

RSTINMODE 入力 1 INMODE (制御入力) レジスタ用のリセッ ト

表 2-2 : DSP48E1 の各ポート とその説明 (続き)

ポート名 方向 ビッ ト幅 説明

Page 24: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

24 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

簡略された DSP48E1 スライス動作

DSP48E1 スライスの演算部分は、 25 ビッ トの前置加算器、 25 x 18 ビッ トの 2 の補数乗算器があ

り、 その後に 3 つの 48 ビッ ト データパス マルチプレクサー (X、 Y、 および Z 出力) があ り ます。

さ らに、 3 入力の加算器/減算器または 2 入力論理ユニッ トが配置されています (図 2-5 参照)。 2 入力論理ユニッ ト を使用する場合、 乗算器は使用できません。

DSP48E1 スラ イスのデータおよび制御入力は、 演算およびロジッ ク ステージへと送信されます。

A および B データ入力は、 オプシ ョ ンで 1 つまたは 2 つのレジスタを使用できるため、 パイプラ

イン ステージ数の多い DSP アプリ ケーシ ョ ン ソ リ ューシ ョ ンに有効です。D パスと AD パスはそ

れぞれ 1 回レジスタに保持できます。 その他のデータ入力および制御入力は、 オプシ ョ ンと して 1つのレジスタを使用できます。 データシートに記載された 大周波数で動作させるには、 パイプラ

イン レジスタを使用します。 タイ ミ ング情報の詳細は、第 3 章 「DSP48E1 のデザイン上の留意点」

を参照して ください。

基本的に、 加算器/減算器/論理ユニッ トの出力は、 その入力のファンクシ ョ ンです。 入力は、 上位

マルチプレクサー、 キャ リー セレク ト ロジッ ク、 および乗算アレイで駆動されます。

式 2-1 に、 加算器/減算器による X、 Y、 Z および CIN 出力の組み合わせを示します。 CIN、 X マルチプレクサー出力および Y マルチプレクサー出力は常に合算されます。 この結果を、Z マルチプ

レクサー出力と選択的に加算または減算できます。 減算に使用するには、 ALUMODE を 0001 に設定します。

加算器 / 減算器出力 = (Z ± (X + Y + CIN)) または (-Z + (X + Y + CIN) – 1)) 式 2-1

A および B 入力が乗算されて結果が C レジスタへ加算される、 または結果が C レジスタから減算

される という ファンクシ ョ ン構築にこのスライスが使用されています。 制御およびデータ入力に関

する詳細は、 このセクシ ョ ンの後半で説明します。 乗算器ファンクシ ョ ンを選択する と、 X および

Y マルチプレクサー出力の両方を使用して加算器へ送信されます。乗算器から出力された 2 つの 43ビッ ト部分積は、 加算器/減算器へ送信される前に 48 ビッ トへ符号拡張されます。

1 段目の乗算器を使用しない場合、48 ビッ トのデュアル入力ビッ ト単位のロジッ ク ファンクシ ョ ン

は、 AND、 OR、 NOT、 NAND、 NOR、 XOR、 および XNOR を実行します。 これらのファンク

シ ョ ン入力は、 A:B、 C、 P または PCIN であ り、 X および Z マルチプレクサーで選択されます (ロジッ ク動作によ り、 Y マルチプレクサーはすべて 1 またはすべて 0 を選択)。

加算器/減算器または論理ユニッ トの出力は、 パターン検出ロジッ クへ送信されます。 DSP48E1 スライスは、 このパターン検出器によって、 カウン トが 大値に達したと きの偶数丸め込みやカウン

ター自動リセッ ト、 およびアキュムレータでのオーバーフロー /アンダーフロー /飽和をサポート し

RSTM 入力 1 M (パイプライン) レジスタ用のリセッ ト

RSTP 入力 1 P (出力) レジスタ用のリセッ ト

UNDERFLOW 出力 1 適切に設定したパターン検出器を使用した場合に、アンダーフローを示す出力

注記 :

1. これらのデータ ポートが使用されていないと き、 リーク電力の損失を抑えるには、 データ ポート入力信号を High、 ポート入力レジスタ

を選択、 そして CE および RST 入力制御信号を Low にする必要があ り ます。 未使用の C ポートの推奨される設定例は、 C[47:0] = すべ

て 1、 CREG = 1、 CEC = 0、 および RSTC = 0 とするこ とです。

2. これらの信号は、 DSP48E1 カラム内の専用配線パスです。 FPGA ファブリ ッ クの配線リ ソースを使用して、 これらの信号へアクセスで

きません。

3. 信号はすべてアクティブ High です。

表 2-2 : DSP48E1 の各ポート とその説明 (続き)

ポート名 方向 ビッ ト幅 説明

Page 25: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 25UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

ます。パターン検出器と論理ユニッ ト を組み合わせる と、2 つの 48 ビッ ト フ ィールドの 48 ビッ ト

のダイナミ ッ ク比較が実行可能になり ます。 これによ り、「A:B NAND C = = 0」 または 「A:B (ビッ

ト単位ロジッ ク ) C = = インプリ メン ト されるパターン」 という ファンクシ ョ ンが有効になり ます。

図 2-5 に、 DSP48E1 スライスの簡略図を示します。 7 ビッ トの OPMODE が X、 Y、 および Z マルチプレクサーの選択を制御し、加算器/減算器または論理ユニッ トへの入力へ接続します。乗算器

から X、 Y、 および Z マルチプレクサーへ渡される 43 ビッ トの部分積データは符号拡張され、 48ビッ ト入力データ パスを形成して加算器/減算器へ送信されます。 43 ビッ ト オペランドおよび 48ビッ ト アキュムレータ出力に基づき、 「ガードビッ ト 」 (オーバーフローから保護するビッ ト ) は 5になり ます。 MACC 動作数を拡張させるには、 MACC_EXTEND を使用する必要があ り ます。 こ

れによ り、 2 つの DSP48E1 スライスを使用する 96 ビッ トの MACC へ拡張できます。 A ポートが

18 ビッ トに制限されている (符号拡張後は 25 ビッ ト ) 場合、 MACC 用のガード ビッ トは 12 ビッ

ト にな り ます。 CARRYOUT ビ ッ ト は、 乗算動作中は無効です。 OPMODE、 ALUMODE、CARRYINSEL、 および CARRYIN の組み合わせによって、 加算器/減算器または論理ユニッ トの

ファンクシ ョ ンを制御します。

X-Ref Target - Figure 2-5

図 2-5 : DSP スライス動作の簡略図

X

Y

OPMODE, CARRYINSEL, and ALUMODE Control Behavior

X

PA:B

A

B

C

PCINAll 0s

Shifters

P

Z

UG369_c1_05_051209

D

+

OPMODE Controls Behavior

All 1s

Page 26: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

26 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

DSP48E1 スライスの属性

このセクシ ョ ンでは、 DSP48E1 スライスの合成属性について説明します。 属性は制御およびデー

タパス上のパイプライン レジスタを呼び出し、 属性値はパイプライン レジスタの段数を示します。

表 2-3 を参照してください。

表 2-3 : 属性設定の説明

属性名 設定 (デフォルト ) 属性の説明

レジスタ制御属性

ACASCREG 0、 1、 2 (1) AREG と併用し、 A カスケード パス (ACOUT) 上の A 入力レジ

スタ数を選択します。 値は AREG と同じか 1 つ少なくな り ます。

AREG が 0 の場合 : ACASCREG は必ず 0 AREG が 1 の場合 : ACASCREG は必ず 1 AREG が 2 の場合 : ACASCREG は 1 または 2 に設定可能

ADREG 0、 1 (1) AD パイプライン レジスタ数を選択します。

ALUMODEREG 0、 1 (1) ALUMODE 入力レジスタ数を選択します。

AREG 0、 1、 2 (1) A 入力レジスタ数を選択します。 1 を選択する と、 A2 レジスタが

使用されます。

BCASCREG 0、 1、 2 (1) BREG と併用し、B カスケード パス (BCOUT) 上の B 入力レジス

タ数を選択します。 値は BREG と同じか 1 つ少なくな り ます。

BREG が 0 の場合 : BCASCREG は必ず 0 BREG が 1 の場合 : BCASCREG は必ず 1 BREG が 2 の場合 : BCASCREG は 1 または 2 に設定可能

BREG 0、 1、 2 (1) B 入力レジスタ数を選択します。 1 を選択する と、 B2 レジスタが

使用されます。

CARRYINREG 0、 1 (1) CARRYIN 入力レジスタ数を選択します。

CARRYINSELREG 0、 1 (1) CARRYINSEL 入力レジスタ数を選択します。

CREG 0、 1 (1) C 入力レジスタ数を選択します。

DREG 0、 1 (1) D 入力レジスタ数を選択します。

INMODEREG 0、 1 (1) INMODE 入力レジスタ数を選択します。

MREG 0、 1 (1) M パイプライン レジスタ数を選択します。

OPMODEREG 0、 1 (1) OPMODE 入力レジスタ数を選択します。

PREG 0、 1 (1) P 出力レジスタ数を選択します (CARRYOUT、PATTERN_DETECT、CARRYCASCOUT、 MULTSIGNOUT にも使用)。

機能制御属性

A_INPUT DIRECT、 CASCADE (DIRECT)

A ポート入力をパラレル入力 (DIRECT)、 または前のスライス と

カスケード接続された入力 (CASCADE) から選択します。

B_INPUT DIRECT、 CASCADE (DIRECT)

B ポート入力をパラレル入力 (DIRECT)、 または前のスラ イス と

カスケード接続された入力 (CASCADE) から選択します。

USE_DPORT TRUE、 FALSE (FALSE) 前置加算器と D ポート を使用するかど うか指定します。

Page 27: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 27UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

USE_MULT NONE、 MULTIPLY、

DYNAMIC (MULTIPLY)乗算器の使用法を選択します。 加算器または論理ユニッ トのみを

使用する場合は、 消費電力削減のために NONE に設定します。

A*B 演算と A:B 演算を動的に切り替えるために、 2 つのパスの

ワース ト ケースのタ イ ミ ングを特定する必要があ る場合は、

DYNAMIC を使用します。

USE_SIMD ONE48、 TWO24、FOUR12 (ONE48)

加算器/減算器の動作モードを選択します。 属性設定には、 1 つの

48 ビッ ト加算器モード (ONE48)、 2 つの 24 ビッ ト加算器モード

(TWO24)、 および 4 つの 12 ビッ ト加算器モード (FOUR12) があ

り ます。ONE48 は Virtex-6 デバイスの DSP48 動作と互換性があ

り、 実際は、 SIMD モードではあ り ません。 標準的な乗算/加算動

作は、 ONE48 モードで設定されている場合にサポート されます。

TWO24 または FOUR12 モードのいずれかを選択した場合は、乗

算器を使用しないでください。USE_MULT は NONE に設定する

必要があ り ます。

パターン検出属性

AUTORESET_PATDET NO_RESET、RESET_MATCH、

RESET_NOT_MATCH (NO_RESET)

パターン検出イベン トが現在のクロ ッ ク サイ クルで発生した場合

に、 P レジスタ (累積値またはカウンター値) を次のクロ ッ ク サイ

クルで自動的に リ セ ッ ト し ます。 RESET_MATCH および

RESET_NOT_MATCH は、DSP48E1 スライスが次のクロ ッ ク サイ クルで P レジスタを自動リセッ トする条件を指定します。

• パターンが一致する場合

または

• 現在のクロ ッ ク サイクルではパターンは一致しないが、直前の

サイ クルで一致した場合

MASK 48 ビッ ト フ ィールド (0011...11)

パターン検出中に特定ビッ ト をマス クするために使用される 48ビッ ト値です。 値が 1 の MASK ビッ トに対応するパターン ビッ

トは無視され、 値が 0 の MASK ビッ トに対応するパターン ビッ

トが照合されます。

PATTERN 48 ビッ ト フ ィールド (00...00)

パターン検出器で使用される 48 ビッ ト値です。

SEL_MASK MASK、 C、

ROUNDING_MODE1、ROUNDING_MODE2

(MASK)

パターン検出器に使用されるマス ク を選択し ます。 C および

MASK は、 標準的なパターン検出 (カウンター、 オーバーフロー

検出など) の設定です。ROUNDING_MODE1 (C バーを 1 ビッ ト

左シフ ト ) および ROUNDING_MODE2 (C バーを 2 ビッ ト左シ

フ ト ) は、 オプシ ョ ンでレジスタに保持する C ポート を基準とす

る特殊なマスクを選択します。これらの丸め込みモードは、パター

ン検出器を使用して DSP48E1 スラ イスに偶数丸め込みをインプ

リ メン トする場合に使用できます。

表 2-3 : 属性設定の説明 (続き)

属性名 設定 (デフォルト ) 属性の説明

Page 28: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

28 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

SEL_PATTERN PATTERN、 C (PATTERN)

マスク フ ィールド用の入力ソースを選択します。 この入力ソース

は、48 ビッ トの動的「C」入力または 48 ビッ トの静的な属性値項目。

USE_PATTERN_DETECT NO_PATDET、 PATDET (NO_PATDET)

パターン検出器および関連する機能が使用されている場合は

PATDET、 使用されていない場合は NO_PATDET に設定します。

この属性は、 スピード仕様およびシ ミ ュレーシ ョ ン モデルにのみ

使用されます。

表 2-3 : 属性設定の説明 (続き)

属性名 設定 (デフォルト ) 属性の説明

表 2-4 : 内部レジスタの説明

レジスタ 説明および関連する属性

2 段の A レジスタ A 入力の 2 つのオプシ ョ ン レジスタです。 AREG で選択され、 それぞれ CEA1 および

CEA2 で有効にでき、 RSTA で同期リセッ ト されます。

2 段の B レジスタ B 入力の 2 つのオプシ ョ ン レジスタです。 BREG で選択され、 それぞれ CEB1 および

CEB2 で有効になり、 RSTB で同期リセッ ト されます。

AD レジスタ オプシ ョ ンの前置加算器の結果用レジスタです。 ADREG で選択され、 CEAD で有効にな

り、 RSTD で同期リセッ ト されます。

ALUMODE レジスタ ALUMODE 制御信号用のオプシ ョ ンのパイプライン レジスタです。 ALUMODEREG で選択され、 CEALUMODE で有効にでき、 RSTALUMODE で同期リセッ ト されます。

C レジスタ C 入力用のオプシ ョ ン レジスタです。 CREG で選択され、 CEC で有効になり、 RSTC で同期リセッ ト されます。

CARRYIN レジスタ CARRYIN 制御信号用のオプシ ョ ンのパイプライン レジスタです。 CARRYINREG で選

択され、 CECARRYIN で有効になり、 RSTALLCARRYIN で同期リセッ ト されます。

CARRYINSEL レジスタ CARRYINSEL 制御信号用のオプシ ョ ンのパイプライン レジスタです。CARRYINSELREGで選択され、 CECTRL で有効になり、 RSTCTRL で同期リセッ ト されます。

D レジスタ オプシ ョ ンの D 前置加算器入力用のレジスタです。 DREG で選択され、 CED で有効にな

り、 RSTD で同期リセッ ト されます。

INMODE レジスタ 前置加算器とそのモード、および乗算器に送られる A レジスタの符号と ソースを選択する

5 ビ ッ ト のレジス タです。 INMODEREG で選択され、 CEINMODE で有効にな り、

RSTINMODE で同期リセッ ト されます。

Internal Mult Carry レジスタ 内部キャ リー信号用 (乗算対称丸め込み専用) のオプシ ョ ンのパイプライン レジスタです。

CEM で有効になり、 RSTM で同期リセッ ト されます。

M レジスタ 43 ビッ トの部分積 2 つで構成される乗算器出力用のオプシ ョ ンのパイプライン レジスタ

です。

これらの 2 つの部分積は X および Y マルチプレクサーへ送信され、 終的に加算器/減算

器へ送られて出力を生成します。

MREG で選択され、 CEM で有効になり、 RSTM で同期リセッ ト されます。

Page 29: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 29UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

入力ポート

A、 B、 C、 CARRYIN、 CARRYINSEL、 OPMODE、 BCIN、 PCIN、 ACIN、 ALUMODE、

CARRYCASCIN、 MULTSIGNIN、 および対応するク ロ ッ ク イネーブル入力およびリセッ ト入力

は、 従来のファ ミ リ と共通のポートです。 D ポート と INMODE ポートは DSP48E1 スライス固有

です。

このセクシ ョ ンでは、 DSP48E1 ス ラ イ スの入力ポー ト について詳し く説明し ます。 図 2-6 に、

DSP48E1 スライスの入力ポート を示します。

A、 B、 C、 および D ポート

DSP48E1 スライスの入力データ ポートは、一般的な DSP および演算アルゴ リ ズムを多数サポート

しています。 DSP48E1 スラ イスには、 4 つの直接入力データ ポート (A、 B、 C、 D) があ り ます。

A データ ポートは 30 ビッ ト幅、B データ ポートは 18 ビッ ト幅、C データ ポートは 48 ビッ ト幅、

前置加算器 D データ ポートは 25 ビッ ト幅です。

OPMODE レジスタ OPMODE 制御信号用のオプシ ョ ンのパイプライン レジスタです。 OPMODEREG で選択

され、 CECTRL で有効になり、 RSTCTRL で同期リセッ ト されます。

出力レジスタ P、 OVERFLOW、 UNDERFLOW、 PATTERNDETECT、 PATTERNDETECT、 お よ び

CARRYOUT 出力用のオプシ ョ ンのレジスタです。PREG で選択され、CEP で有効になり、

RSTP で同期リセッ ト されます。 PCOUT、 CARRYCASCOUT、 および MULTSIGNOUTも同じレジスタから同期出力され、 次の DSP48E1 スライスへ接続します。

表 2-4 : 内部レジスタの説明 (続き)

レジスタ 説明および関連する属性

X-Ref Target - Figure 2-6

図 2-6 : DSP48E1 スライスの入力ポート

X

17-Bit Shift

17-Bit Shift

0

Y

Z

10

0

48

48

18

4

48

30

BCIN* ACIN*

OPMODE

PCIN*

MULTSIGNIN*

PCOUT*

CARRYCASCOUT*

MULTSIGNOUT*

CARRYCASCIN*

CARRYIN

CARRYINSEL

A:B

ALUMODE

B

A

C

M

P

PP

C

MULT25 X 18

CREG/C Bypass/Mask

PATTERNDETECT

PATTERNBDETECT

CARRYOUT

UG369_c1_06_052109

4

7

48

48

30

18

P

P

*These signals are dedicated routing paths internal to the DSP48E1 column. They are not accessible via fabric routing resources.

18

35

D 25

25

INMODE

ACOUT*

18

30

4

3018

Dual B Register

Dual A, D,and Pre-adder

1

Page 30: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

30 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

25 ビッ ト A (A[24:0]) および 18 ビッ ト B ポートは、 25 x 18 ビッ トの 2 の補数乗算器へ入力デー

タを送信します。 独立型 C ポート を使用する と、 各 DSP48E1 スラ イスで乗算/加算、 乗算/減算、

および乗算/丸め込み演算が可能になり ます。

連結された A ポート と B ポート (A:B) は、 乗算器をバイパスして X マルチプレクサー入力へ接続

します。 30 ビッ トの A 入力ポートは、 A:B 連結データパスの上位 30 ビッ ト を形成し、 18 ビッ ト

の B 入力ポートは、A:B データパスの下位 18 ビッ ト を形成します。A:B データパス と C 入力ポー

ト を使用する と、 各 DSP48E1 ス ラ イスに 48 ビッ ト の加算器/減算器をインプ リ メ ン ト できます

(USE_MULT を NONE または DYNAMIC に設定して乗算器を使用しない場合)。

また、 各 DSP48E1 スライスには 2 本のカスケード入力データパス (ACIN および BCIN) があ り、

隣接する DSP48E1 ス ラ イス との入力をカスケード接続します。 A 入力のカスケード パスは 30ビッ ト幅で、 B 入力のカスケード パスは 18 ビッ ト幅です。 これらの使用は、 FIR フ ィルター、 複

素数乗算、 高精度乗算、 および複素数 MACC などのアプリ ケーシ ョ ンで有効です。

A および B 入力ポート と ACIN および BCIN カスケード ポートは、 データパス上にパイプライン

ステージを 0、 1、 または 2 と して設定できます。 図 2-7 に、 デュアル A、 D、 および前置加算器の

ポート ロジッ クを示します。 図 2-8 はデュアル B レジスタのポート ロジッ クを示しています。 属

性を使用して異なるパイプライン ステージの設定も可能です。 A および B 直接入力用のパイプラ

イン ステージ数を選択する場合は、 AREG および BREG 属性を使用し ます。 ACOUT および

BCOUT カスケード データ パス上のパイプライン ステージ数を選択する場合は、 ACASCREG および BCASCREG 属性を使用します。表 2-3 に、使用可能な属性値を示します。 コンフ ィギュレー

シ ョ ン ビッ トで制御されるマルチプレクサーは、 パス、 オプシ ョ ンのレジスタ、 またはカスケード

接続された入力を使用してフローを選択します。 データ ポート レジスタによ り、 ク ロ ッ ク周波数

を増加 (パフォーマンス向上) させる こ とが可能にな り ますが、 データ レイテンシという ト レード

オフが生じます。

X-Ref Target - Figure 2-7

図 2-7 : デュアル A、 D、 および前置加算器のロジック

+–

UG369_c1_07_040914

A

D

30A1ACIN

25

25

A MULT

ACOUT

X MUX30

30

2525 INMODE[2]

INMODE[3]

INMODE[0]

INMODE[1]

D

A2

AD

CEA1 RSTA

CED RSTD

CEA2 RSTA

CEAD RSTD

0

1

Page 31: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 31UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

表 2-5 に、 INMODE[3:0] 制御ビッ トのエンコードを示します。 これらのビッ トによ り、 前置加算

器、 A、 および D 入力レジスタの機能が決定されます。 表 2-5 に示す前置加算器機能を有効にする

には、 USE_DPORT 属性を TRUE に設定する必要があ り ます。 B1 と B2 のどちらかを選択する

INMODE[4] は、 表 2-6 に示されています。

つま り、 INMODE および USE_DPORT 属性によ り、 前置加算器の機能と乗算器の前に置かれた

A、 B、 および D レジスタのバス マルチプレクサーが制御されます。 前置加算器が使用されない場

合、 USE_DPORT のデフォルト値は FALSE です。

X-Ref Target - Figure 2-8

図 2-8 : デュアル B レジスタのロジック

表 2-5 : INMODE[3:0] の機能 (AREG が 1 または 2 の場合)

INMODE[3] INMODE[2] INMODE[1] INMODE[0] USE_DPORT 乗算器 A ポート

0 0 0 0 FALSE A2

0 0 0 1 FALSE A1

0 0 1 0 FALSE 0

0 0 1 1 FALSE 0

0 0 0 0 TRUE A2

0 0 0 1 TRUE A1

0 0 1 0 TRUE 0

0 0 1 1 TRUE 0

0 1 0 0 TRUE D + A2(1)

0 1 0 1 TRUE D + A1(1)

0 1 1 0 TRUE D

0 1 1 1 TRUE D

1 0 0 0 TRUE -A2

1 0 0 1 TRUE -A1

1 0 1 0 TRUE 0

1 0 1 1 TRUE 0

1 1 0 0 TRUE D – A2(1)

1 1 0 1 TRUE D – A1(1)

UG369_c1_08_040914

B18

B1BCIN

BCOUT

X MUX18

18

18

INMODE[4]

B MULTB2

CEB1 RSTB CEB2 RSTB

0

1

Page 32: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

32 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

INMODE[0] は、 A1 (INMODE[0] = 1) または A2 (INMODE[0] = 0) のどちらかを指定します。

INMODE[1] = 1 の場合、 前置加算器への A 入力が強制的に 0 になり ます。

INMODE[2] = 0 の場合、 前置加算器への D 入力が強制的に 0 になり ます。

INMODE[3] は前置加算器の減算制御です。 INMODE[3] = 1 は減算、 INMODE[3] = 0 は加算を示

します。

INMODE[4] は乗算器 B ポート を表 2-6 に示すよ うに指定します。

48 ビッ トの C ポートは、 Y および Z マルチプレクサー共通の入力と して使用され、加算、減算、 3入力加算/減算、 およびロジッ ク ファンクシ ョ ンを実行します。 また、 C 入力をパターン検出器に

接続する と、 丸め込み機能もインプ リ メ ン ト可能です。 図 2-9 に、 C ポート ロジッ クを示します。

CREG 属性を使用して、 C 入力データパスのパイプライン数を選択します。

1 1 1 0 TRUE D

1 1 1 1 TRUE D

注記 :

1. 前置加算器は飽和をサポート していないため、 前置加算器がオーバーフローもし くはアンダーフローしな

いよ う、 D および A1/A2 ポートにデータを入力します。 41 ページの 「前置加算器」 を参照して ください。

表 2-6 : INMODE[4] の値と乗算器 B ポート (BREG が 1 または 2 の場合)

INMODE[4] 乗算器 B ポート

0 B2

1 B1

X-Ref Target - Figure 2-9

図 2-9 : C ポート ロジック

表 2-5 : INMODE[3:0] の機能 (AREG が 1 または 2 の場合) (続き)

INMODE[3] INMODE[2] INMODE[1] INMODE[0] USE_DPORT 乗算器 A ポート

DEN

RST

CEC

RSTC

C C Input toY and Z Multiplexers and Pattern Detector

48

UG369_c1_09_051209

48

48

Page 33: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 33UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

OPMODE、 ALUMODE、 および CARRYINSEL ポート ロジック

OPMODE、 ALUMODE、 および CARRYINSEL ポート のロジッ クは、 フロースルーまたはレジ

スタを介する入力制御信号をサポート します。コンフ ィギュレーシ ョ ン ビッ トで制御されるマルチ

プレクサーが、 オプシ ョ ン と してのレジスタ使用を選択します。 制御ポート レジスタによ り、 ク

ロ ッ ク周波数を増加 (パフォーマンス向上) させるこ とが可能にな り ますが、 データ レイテンシと

いう ト レードオフが生じます。レジスタには独立したクロ ッ ク イネーブルと リセッ ト信号があ り ま

す。 OPMODE および CARRYINSEL レジス タは RSTCTRL で リ セ ッ ト され、 ALUMODE はRSTALUMODE でリセッ ト されます。図 2-10 に、ク ロ ッ ク イネーブルと OPMODE、ALUMODE、および CARRYINSEL ポート ロジッ クを示します。

X、 Y、 および Z マルチプレクサー

OPMODE (動作モード ) 制御入力には、 X、 Y、 および Z マルチプレクサー選択用のフ ィールドが

あ り ます。

OPMODE 入力によって、 ク ロ ッ ク サイ クルの切り替えに伴い、 DSP48E1 の機能を動的に変更で

きます (与えられた計算シーケンスに基づく、 DSP48E1 スラ イスの内部データパス コンフ ィギュ

レーシ ョ ンの変更など)。

OPMODE ビッ トは、OPMODEREG 属性を使用してオプシ ョ ンのレジスタを設定できます (表 2-3参照)。

X-Ref Target - Figure 2-10

図 2-10 : OPMODE、 ALUMODE、 および CARRYINSEL ポート ロジック

DEN

RST

CECTRL

RSTCTRL

OPMODE To the X, Y, ZMultiplexers and3-Input Adder/Subtracter

7

UG369_c1_10_051209

7

1

DEN

RST

CEALUMODE

RSTALUMODE

ALUMODE

To Adder/Subtracter4

4

1

1

DEN

RST

CARRYINSELTo Carry Input Select Logic

3

3

1

Page 34: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

34 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

表 2-7、 表 2-8、 および表 2-9 に、 OPMODE で使用可能な値および 3 つのマルチプレクサー (X、

Y および Z) の出力結果を示します。 マルチプレクサー出力は 3 つのオペランドを加算器/減算器へ

送信します。 マルチプレクサー セレク ト ビッ トのすべての組み合わせが可能ではあ り ません。 「違

反セレクシ ョ ン」 と記載されている組み合わせは不定結果が生じます。 乗算出力が選択されている

場合は、 X および Y マルチプレクサーを使用して乗算部分積が加算器/減算器へ送信されます。

表 2-7 : OPMODE の制御ビッ トおよび X マルチプレクサー出力

Z OPMODE[6:4]

YOPMODE[3:2]

XOPMODE[1:0]

X

マルチプレクサー出力メモ

xxx xx 00 0 デフォルト

xxx 01 01 M OPMODE[3:2] = 01 で選択する必

要がある

xxx xx 10 P PREG = 1 で選択する必要がある

xxx xx 11 A:B 48 ビッ ト幅

表 2-8 : OPMODE の制御ビッ トおよび Y マルチプレクサー出力

Z OPMODE[6:4]

YOPMODE[3:2]

XOPMODE[1:0]

Y

マルチプレクサー出力メモ

xxx 00 xx 0 デフォルト

xxx 01 01 M OPMODE[1:0] = 01 で選択する必

要がある

xxx 10 xx 48'FFFFFFFFFFFF 主に X および Z マルチプレクサー

上での論理ユニッ ト のビ ッ ト 単位

操作で使用される

xxx 11 xx C

表 2-9 : OPMODE の制御ビッ トおよび Z マルチプレクサー出力

Z OPMODE[6:4]

YOPMODE[3:2]

XOPMODE[1:0]

Z

マルチプレクサー出力メモ

000 xx xx 0 デフォルト

001 xx xx PCIN

010 xx xx P PREG = 1 で選択する必要がある

011 xx xx C

100 10 00 P MACC 拡張にのみ使用する。

PREG = 1 で選択する必要がある

101 xx xx 17 ビッ ト シフ ト (PCIN)

110 xx xx 17 ビッ ト シフ ト (P) PREG = 1 で選択する必要がある

111 xx xx xx 違反セレクシ ョ ン

Page 35: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 35UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

ALUMODE 入力

4 ビッ トの ALUMODE は、2 段目の加算器/減算器/論理ユニッ トの動作を制御します。ALUMODE= 0000 では、 加算動作 Z + (X + Y + CIN) が選択されます。 CIN は CARRYIN マルチプレクサー

の出力です (図 2-11 参照)。 ALUMODE = 0011 では、 減算動作 Z - (X + Y + CIN) が選択されま

す。ALUMODE = 0001 で –Z + (X + Y + CIN) – 1 が、ALUMODE = 0010 で –(Z + X + Y + CIN)– 1 がインプリ メン トできます。 後者は not (Z + X + Y + CIN) と等価です。 2 の補数は、 ビッ ト単

位で反転して 1 を加算するこ とで負の値に変換できます (例 : –k = not (k) + 1)。強化された加算/減算/論理ユニッ ト を使用してその他の減算動作やロジッ ク動作もインプ リ メ ン ト可能です。 表 2-10を参照して ください。

2 入力 ALUMODE 演算については、 43 ページの表 2-13 および 58 ページの図 A-3 を参照して く

ださい。

表 2-10 : 3 入力 ALUMODE 演算

DSP 演算 OPMODE[6:0]ALUMODE[3:0]

3 2 1 0

Z + X + Y + CIN 任意の有効な OPMODE 0 0 0 0

Z – (X + Y + CIN) 任意の有効な OPMODE 0 0 1 1

–Z + (X + Y + CIN) – 1 =not (Z) + X + Y + CIN

任意の有効な OPMODE 0 0 0 1

not (Z + X + Y + CIN) = –Z – X – Y – CIN - 1

任意の有効な OPMODE 0 0 1 0

注記 :

1. 2 の補数の場合は、 –Z = not (Z) + 1 です。

Page 36: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

36 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

キャリー入力ロジック

7 シ リーズ デバイスの場合、キャ リー入力ロジッ クの結果は、 3 ビッ ト幅の CARRYINSEL 信号の

ファンクシ ョ ンにな り ます。 図 2-11 に、 キャ リー入力ロジッ クの入力を示します。 加算器および

減算器用の結果を生成するキャ リー入力は、常にク リ ティカル パス上にあ り ます。 このロジッ クを

シ リ コン上にインプリ メン トするこ とで、高パフォーマンスが実現します。 キャ リー ロジッ クへの

キャ リー入力は、 常に X、 Y、 および Z マルチプレクサーの出力の前に 「収集」 されるため、 7 シ

リーズ デバイスでは、 CARRYIN は OPMODE の影響を受けません。

図 2-11 に、 3 ビ ッ ト CARRYINSEL 制御で選択された 8 入力を示し ます。 初の入力である

CARRYIN (CARRYINSEL はバイナリ 000 に設定) は、 汎用ロジッ クから得られます。 このオプ

シ ョ ンによ り、 ユーザー ロジッ クに基づいたキャ リー ファンクシ ョ ンのインプ リ メ ンテーシ ョ ン

が可能にな り ます。 CARRYIN はオプシ ョ ンでレジスタを付ける こ とが可能です。 2 番目の入力

(CARRYINSEL はバイナ リ 010 に設定) は、 隣接する DSP48E1 ス ラ イ スか ら接続される

CARRYCASCIN 入力です。 3 番目の入力 (CARRYINSEL はバイナ リ 100 に設定) は、 同じ

DSP48E1 スラ イスから接続されてフ ィードバッ ク される CARRYCASCOUT です。 キャ リー ロジッ クに関する内部レジスタの説明は、 表 2-4 を参照してください。

4 番目の入力 (CARRYINSEL はバイナ リ 110 に設定) は対称丸め込み乗算器の出力の A[24]XNOR B[17] です。 この信号には、 MREG パイプライン遅延と一致するよ うにオプシ ョ ンでレジ

スタを追加できます。5 番目と 6 番目の入力 (CARRYINSEL はバイナリ 111 および 101) は、P 出力の対称丸め込みのために正の P 出力 MSB P[47] または反転した P 出力 MSB P[47] を選択しま

す。 7 番目と 8 番目の入力 (CARRYINSEL はバイナリ 011 および 001) は、 P 入力の対称丸め込

みを実行するため、正のカスケード P 入力 MSB PCIN[47] または反転したカスケード P 入力 MSBPCIN[47] を選択します。

X-Ref Target - Figure 2-11

図 2-11 : CARRYINSEL ポート ロジック

RST

CED

RSTALLCARRYIN

CECARRYIN

CARRYCASCIN

Fabric CARRYIN

Large Add/Sub/Acc(Parallel Op)

Large Add/Sub/Acc(Seq Op)

UG369_c1_11_051209

000

010

100

110

111

101

011

001

CARRYCASCOUT

A[24] XNOR B[17]

Inverted P[47]

Inverted PCIN[47]

3

RST

CED

RSTALLCARRYIN

CEM

Round A * B

Round Output

CARRYINSEL

CIN

Page 37: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 37UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

表 2-11 に、 3 つのキャ リー入力セレク ト ビッ ト (CARRYINSEL) および結果のキャ リー入力また

はソースを示します。

出力ポート

このセクシ ョ ンでは、 7 シ リーズ FPGA DSP48E1 スライスの出力ポートについて詳し く説明しま

す。 図 2-12 に、 DSP48E1 スライスの出力ポート を示します。

表 2-11 : CARRYINSEL 制御のキャリー ソース

CARRYINSELセレク ト メモ

2 1 0

0 0 0 CARRYIN 汎用インターコネク ト

0 0 1 ~PCIN[47] PCIN の丸め込み (無限大の方向へ丸め込み)

0 1 0 CARRYCASCIN 大規模な加算/減算/累算 (パラレル動作)

0 1 1 PCIN(47) PCIN の丸め込み (0 の方向へ丸め込み)

1 0 0 CARRYCASCOUT 桁数の多い加算/減算/累算 (内部フ ィードバッ

クを介した順次演算)。 PREG = 1 で選択する

必要がある

1 0 1 ~P[47] P の丸め込み (無限大の方向へ丸め込み)。PREG = 1 で選択する必要がある

1 1 0 A[24] XNOR B[17] AxB の丸め込み

1 1 1 P[47] P の丸め込み (0 の方向へ丸め込み)。 PREG =1 で選択する必要がある

Page 38: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

38 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

ACOUT および BCOUT を除くすべての出力ポートは、 RSTP で リセッ ト され、 CEP でイネーブ

ルにな り ます (図 2-13 参照)。 ACOUT と BCOUT は、 RSTA および RSTB (図 2-7 および図 2-8参照) でそれぞれリセッ ト されます。

P ポート

各 DSP48E1 スライスには、48 ビッ ト幅の出力ポート P があ り ます。 この出力は、内部 PCOUT パスを使用して隣接する DSP48E1 スライスへ接続 (カスケード接続) できます。 PCOUT は、 隣接す

る DSP48E1 スライス内の Z マルチプレクサー (PCIN) の入力へ接続します。 このパスによ り、 隣

接する DSP48E1 スライス間で出力ス ト リームをカスケード接続できます。

X-Ref Target - Figure 2-12

図 2-12 : DSP48E1 スライスの出力ポート

X

17-Bit Shift

17-Bit Shift

0

Y

Z

10

0

48

48

18

4

3

48

30

BCIN* ACIN*

OPMODE

PCIN*

MULTSIGNIN*

PCOUT*

CARRYCASCOUT*

MULTSIGNOUT*

CREG/C Bypass/Mask

CARRYCASCIN*

CARRYIN

CARRYINSEL

A:B

ALUMODE

B

A

C

M

P

PP

C

MULT25 X 18

PATTERNDETECT

PATTERNBDETECT

CARRYOUT

UG369_c1_12_052109

4

7

48

48

30

18P

P

*These signals are dedicated routing paths internal to the DSP48E1 column. They are not accessible via fabric routing resources.

5

D 25

25

INMODE

BCOUT* ACOUT*

18

30

4

3018

Dual B Register

Dual A, D,and Pre-adder

1

X-Ref Target - Figure 2-13

図 2-13 : 出力ポートのロジック

DEN Q

RST

CEP

RSTP

P/PCOUT/MULTSIGNOUT/CARRYCASCOUT/

CARRYOUT/PATTERNDETECT/

PATTERNBDETECT

DSP48E1Slice Output

UG369_c1_13_051209

Page 39: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 39UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

CARRYCASCOUT および CARRYOUT ポート

各 DSP48E1 スライスからのキャ リーアウ トは、CARRYOUT ポート を介して FPGA ロジッ クに送

信できます。 このポートは 4 ビッ ト幅です。 CARRYOUT[3] は、 2 入力の 48 ビッ ト加算器/減算器

または 1 入力のアキュムレータの有効なキャ リーアウ トです。 この場合、 USE_SIMD = ONE48 がデフォルト設定とな り、 SIMD モードではないこ とを示します。 2 入力加算器/減算器または 1 入力

アキュムレータが、 TWO24 または FOUR12 などの SIMD モードで使用される場合に有効なキャ

リーアウ ト信号を表 2-12 に示します。3 入力加算器/減算器 (例 : A:B + C + PCIN) または 2 入力ア

キュムレータ (例 : A:B + C + P) のコンフ ィギュレーシ ョ ンが使用される場合、 あるいは乗算器が

使用される場合は、 キャ リーアウ ト信号は有効ではあ り ません。

3 入力 ALUMODE 演算については、 35 ページの表 2-10 も参照してください。

CARRYOUT 信号は、 CARRYCASCOUT ポート を介して、隣接する次の DSP48E1 スライスにカ

スケード接続します。CARRYCASCOUT 出力ポート を使用する と、桁数の多い加算、減算、ACC、

および MACC フ ァ ン ク シ ョ ンのイ ンプ リ メ ン ト が可能にな り ます。 1 ビ ッ ト の

CARRYCASCOUT 信号は CARRYOUT[3] に対応しますが、 両者は同等ではあ り ません。 また、

CARRYCASCOUT 信号は CARRYINSEL マルチプレクサーを介して、同じ DSP48E1 スライスへ

フ ィードバッ ク されます。

乗算器または 3 入力加算/減算動作が使用される場合、 CARRYOUT[3] 信号は無視されます。

MACC 演算ではアキュムレータ ステージに 3 入力の加算器が含まれるため、 2 つの DSP48E1 スライスを結合した 96 ビッ ト MACC を実行するには、MULTSIGNOUT 信号と CARRYCASCOUT信号が必要にな り ます。 2 番目の DSP48E1 ス ラ イ スの OPMODE は、 CARRYCASCOUT とMULTSIGNOUT の両方を使用するために、 MACC_EXTEND (1001000) を設定する必要があ り

ます。 これによ り、 上位 DSP48E1 ス ラ イ スの 3 入力加算器キ ャ リ ー制限がな く な り ます。

CARRYOUT/CARRYCASCOUT の実際のハード ウェア インプ リ メ ン ト と、 これらの違いについ

ては、付録 A 「CARRYOUT、CARRYCASCOUT、および MULTSIGNOUT」 を参照してください。

MULTSIGNOUT ポート ロジック

MULTSIGNOUT は、ハード ウェア信号をソフ ト ウェアで抽象化したものです。乗算器出力の MSBと してモデル化されており、用途は 96 ビッ ト MACC を構築するための MACC 拡張に限られます。

MULTSIGNOUT の実際のハード ウ ェア イ ンプ リ メ ン ト については、 付録 A 「CARRYOUT、CARRYCASCOUT、 および MULTSIGNOUT」 を参照してください。

乗算器出力の MSB は、 MULTSIGNIN ポート を介して次の DSP48E1 スライスへカスケード接続

され、 96 ビッ ト アキュムレータを構築する MACC 拡張アプ リ ケーシ ョ ンでのみ使用されます。

MULTSIGNOUT の実際のハード ウ ェア イ ンプ リ メ ン ト については、 付録 A 「CARRYOUT、CARRYCASCOUT、 および MULTSIGNOUT」 を参照してください。

表 2-12 : 各種 SIMD モード と CARRYOUT ビッ トの対応

SIMD モード 加算器のビッ ト幅 対応するキャリーアウト

FOUR12 P[11:0] CARRYOUT[0]

P[23:12] CARRYOUT[1]

P[35:24] CARRYOUT[2]

P[47:36] CARRYOUT[3]

TWO24 P[23:0] CARRYOUT[1]

P[47:24] CARRYOUT[3]

ONE48 P[47:0] CARRYOUT[3]

Page 40: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

40 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

PATTERNDETECT および PATTERNBDETECT ポート ロジック

P バスと指定パターンの一致、またはパターンの補数との一致を検出するため、DSP48E1 スライス

の出力にはパターン検出器が追加されています。 加算器の出力が指定パターンと一致する場合は、

PATTERNDETECT (PD) 出力が High になり ます。加算器の出力が指定パターンの補数と一致する

場合は、 PATTERNBDETECT (PBD) が High になり ます。

パターン検出器の特定ビッ ト位置を隠すにはマスク フ ィールドを使用します。PATTERNDETECTは、 ビッ ト単位で ((P == pattern)||mask) を計算し、 結果を AND 演算してシングル出力ビッ ト を出

力します。同様に、 PATTERNBDETECT は、 ((P == ~pattern)||mask) かど うかを検出できます。パ

ターン フ ィールド とマスク フ ィールドは、 それぞれ 48 ビッ ト コンフ ィギュレーシ ョ ン フ ィール

ドの設定または (レジスタ付きの) C 入力の設定を用いるこ とができます。 C 入力が PATTERN として使用される場合、 Z マルチプレクサーの入力で、 OPMODE が 0 を選択するよ うに設定する必

要があ り ます。 すべてのレジスタが リセッ ト される と、 RESET ピンがディアサート された直後か

ら 1 ク ロ ッ ク サイクル間、 PATTERNDETECT は High になり ます。

パターン検出器によ り、 DSP48E1 スラ イスはカウン トが上限に達したと きに偶数丸め込みとカウ

ンター自動リセッ ト を実行できるほか、 アキュムレータのオーバーフロー、 アンダーフロー、 およ

び飽和もサポート しています。

オーバーフローおよびアンダーフロー ポート ロジック

DSP48E1 スライスの専用の OVERFLOW および UNDERFLOW 出力は、 パターン検出器を使用

して、 DSP48E1 スライス内の演算が P[N] ビッ ト (N = 1 ~ 46) を超えてオーバーフローしたかを

検出します。 オーバーフローおよびアンダーフロー ポートの使用中は、 P レジスタを有効にする必

要があ り ます。 詳細は、 「エンベデッ ド ファンクシ ョ ン」 を参照してください。

Page 41: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 41UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

エンベデッ ド ファンクシ ョ ン

7 シ リーズ デバイスに組み込まれたファンクシ ョ ンには、 25 x 18 乗算器、 加算器/減算器/論理ユ

ニッ ト、 およびパターン検出器ロジッ クが含まれます (図 2-14 参照)。

前置加算器

7 シ リーズ FPGA DSP スライスには、25 ビッ ト前置加算器が搭載されています。前置加算器は、Aレジスタ パス (図 2-14 およびその拡大図の 30 ページの図 2-7 参照) にあ り ます。 前置加算器を使

用するこ とで、 乗算器への入力前に加算や減算を行う こ とが可能になり ます。 前置加算器は飽和演

算ロジッ クを持たないため、 演算中にオーバーフローまたはアンダーフローしないよ う、 入力オペ

ランドを 24 ビッ トの 2 の補数の符号拡張データに制限する必要があ り ます。 また、 D を乗算器へ

の新しい入力パスにして、 前置加算器をバイパスするこ と も可能です。 D パスを使用しない場合、

A パイプラインの出力は乗算器への入力前にネゲートできます。 前置加算器ブロ ッ クには 大 10の動作モードがあ り、 きわめて柔軟に活用できます。

式 2-2 では、 A と D が前置加算器/減算器を介して 初に加算されます。 その結果が B に乗算され

た後、 乗算結果が C 入力に加算されます。 この論理式によ り、 対称フ ィルターが効率化されます。

式 2-2

X-Ref Target - Figure 2-14

図 2-14 : DSP48E1 スライスのエンベデッ ド ファンクシ ョ ン

X

17-Bit Shift

17-Bit Shift

0

Y

Z

10

0

48

48

18

4

3

48

30

BCIN* ACIN*

OPMODE

PCIN*

MULTSIGNIN*

PCOUT*

CARRYCASCOUT*

MULTSIGNOUT*

CREG/C Bypass/Mask

CARRYCASCIN*

CARRYIN

CARRYINSEL

A:B

ALUMODE

B

A

C

M

P

PP

C

MULT25 X 18

PATTERNDETECT

PATTERNBDETECT

CARRYOUT

UG369_c1_14_052109

4

7

48

48

30

18

P

P

*These signals are dedicated routing paths internal to the DSP48E1 column. They are not accessible via fabric routing resources.

5

D 25

25

INMODE

ACOUT*

18

30

4

3018

Dual B Register

Dual A, D,and Pre-adder

1

Adder/Subtracter Output C B D A±( )× CIN+( )±=

Page 42: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

42 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

2 の補数乗算器

図 2-14 に示す DSP48E1 スライス内の 2 の補数乗算器は、25 ビッ トの 2 の補数入力および 18 ビッ

トの 2 の補数入力を受け取り ます。 乗算器は 43 ビッ ト部分積を 2 つ生成します。 この 2 つの部分

積が結合されて、図 2-15 に示すよ うに乗算器出力から 86 ビッ トの結果が出力されます。 よ り大き

な積を得るために乗算器をカスケード接続するには、17 ビッ ト右方向シフ トするカスケード出力バ

スを使用します。 右方向シフ ト を使用して、 適切なビッ ト数だけ部分積をシフ ト して右揃えにしま

す。 このカスケード パスは、 隣接する DSP48E1 スライスの加算器/減算器に接続している Z マル

チプレクサーへ接続します。 入力オペランドの MSB を 0 に設定する と、 乗算器は符号なしの演算

をエミ ュレートできます。

図 2-15 に、乗算器出力用のオプシ ョ ンのパイプライン レジスタ (MREG) を示します。 レジスタを

使用する と、 1 ク ロ ッ ク分のレイテンシが生じますがパフォーマンスは向上します。

加算器/減算器または論理ユニッ ト

加算器/減算器または論理ユニッ トの出力は、制御入力とデータ入力で決定されます (図 2-16 参照)。OPMODE および CARRYINSEL 信号で、加算器/減算器のデータ入力が選択されます。ALUMODE信号で、 加算器/減算器にインプ リ メ ン ト されているファンクシ ョ ンが選択されます。 このよ うに、

エンベデッ ド加算器 / 減算器 / 論理ユニ ッ ト の機能性は、 OPMODE、 ALUMODE、 および

CARRYSEL 信号で判断されます。論理ユニッ ト を使用する場合、乗算器を使用してはいけません。

OPMODEREG と CARRYINSELREG の値は同一でなければなり ません。

入力マルチプレクサーも同様に、OPMODE ビッ トによってファンクシ ョ ンの一部が選択されます。

表中のシンボル 「±」 は加算または減算を意味し、 これは ALUMODE 制御信号のステートによっ

て決定されます。 シンボル 「:」 は連結を意味し、 X、 Y マルチプレクサーの出力と CIN の値は常

に合計されます。 詳細は、 35 ページの 「ALUMODE 入力」 を参照して ください。

2 入力の論理ユニッ ト

7 シ リーズ デバイスでは、DSP48E1 スライス内の加算、減算、および単純なロジッ ク ファンクシ ョ

ンは、 2 段目の 3 入力加算器を使用するこ とで実現されます。

表 2-13 に、2 段目の 3 入力加算器/減算器/論理ユニッ トにインプリ メン ト可能なロジッ ク ファンク

シ ョ ンを示します。 また、 OPMODE および ALUMODE 制御信号の設定も示します。

OPMODE[3:2] を 「00」 に設定する と、 Y マルチプレクサー出力がデフォルトの 「0」 値にな り ま

す。 OPMODE[3:2] を 「10」 に設定する と、 Y マルチプレクサー出力が 「すべて 1」 にな り ます。

OPMODE[1:0] は、X マルチプレクサーの出力を選択し、OPMODE[6:4] は Z マルチプレクサーの

出力を選択します。

X-Ref Target - Figure 2-15

図 2-15 : 2 の補数乗算器とオプシ ョ ンの MREG

XA or AD

Partial Product 1

Partial Product 2B

OptionalMREG

UG369_c1_15_051209

86

43

43

Page 43: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 43UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

SIMD (単一命令複数データ ) モード

この分割されたセグメン ト間のキャ リー伝搬はブロ ッ ク され、 すべてのセグメン トに対する独立動

作を確実にします。加算器/減算器/アキュムレータは、4 つの 12 ビッ ト加算器/減算器/アキュムレー

タまたは 2 つの 24 ビッ ト加算器/減算器/アキュムレータに分割するこ とが可能で、各セグメン トに

はキャ リーアウ ト信号があ り ます。 ダイナミ ッ ク OPMODE タイプ制御とは対照的に、 SIMD モー

ド分割はスタティ ッ ク コンフ ィギュレーシ ョ ンです (図 2-16 参照)。

表 2-13 : OPMODE および ALUMODE 制御ビッ トおよび論理ユニッ トの出力

論理ユニッ ト モードOPMODE[3:2] ALUMODE[3:0]

3 2 3 2 1 0

X XOR Z 0 0 0 1 0 0

X XNOR Z 0 0 0 1 0 1

X XNOR Z 0 0 0 1 1 0

X XOR Z 0 0 0 1 1 1

X AND Z 0 0 1 1 0 0

X AND (NOT Z) 0 0 1 1 0 1

X NAND Z 0 0 1 1 1 0

(NOT X) OR Z 0 0 1 1 1 1

X XNOR Z 1 0 0 1 0 0

X XOR Z 1 0 0 1 0 1

X XOR Z 1 0 0 1 1 0

X XNOR Z 1 0 0 1 1 1

X OR Z 1 0 1 1 0 0

X OR (NOT Z) 1 0 1 1 0 1

X NOR Z 1 0 1 1 1 0

(NOT X) AND Z 1 0 1 1 1 1

Page 44: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

44 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

• 4 つの 2 入力または 3 入力加算器 (各セグメン トには 12 ビッ ト入力、 12 ビッ ト出力、 および

キャ リーアウ トがある)

• ファンクシ ョ ンは ALUMODE[3:0] で動的に制御され、 オペランド ソースは OPMODE[6:0]

• 4 つすべての加算器/減算器/アキュムレータは同じファンクシ ョ ンを実行する

• 2 つの 2 入力または 3 入力加算器 (各セグメン トには、 24 ビッ ト入力、 24 ビッ ト出力、および

キャ リーアウ トがある) の構築も可能 (非表示)

図 2-16 に示す SIMD 機能は、48 ビッ トの論理ユニッ ト を複数の小規模論理ユニッ トに分割できま

す。 各小規模論理ユニ ッ ト は同じ フ ァ ン ク シ ョ ン を実行し ます。 こ のフ ァ ン ク シ ョ ンは、

ALUMODE[3:0] および OPMODE 制御入力を使用して動的に変更可能です。

パターン検出ロジック

パターン検出器は、 DSP48E1 スライスの加算器/減算器/論理ユニッ トの出力に接続されています (図 2-14 参照)。

パターン検出器とは、P 出力と同じサイクルで結果を生成する加算器/減算器/論理ユニッ トの出力に

対する同一性チェッ クです。 パターン検出出力と DSP48E1 スライスの P 出力の間には、 追加のレ

イテンシはあ り ません。 パターン検出器を使用する場合、 パターン検出パスにロジッ クが追加され

るため、 スピードが多少低減します (図 2-17 参照)。

X-Ref Target - Figure 2-16

図 2-16 : 4 つの 12 ビッ ト SIMD 加算器コンフ ィギュレーシ ョ ン

X0

P

ALUMODE[3:0]

P[11:0], CARRYOUT[0]

P[23:12], CARRYOUT[1]

P[35:24], CARRYOUT[2]

P[47:36], CARRYOUT[3][47:0]

[47:0]

[47:36]

[35:24]

[23:12]

[11:0]

UG369_c1_16_051209

01

PCIN

P

C

Z

Y

A:B

C

0

Page 45: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 45UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

パターン検出器を使用して実行可能なアプリ ケーシ ョ ンを次に示します。

• オプシ ョ ンのマスク付きパターン検出

• ダイナミ ッ ク C 入力と A x B パターンの一致

• P[46] を超えるオーバーフロー /アンダーフロー /飽和

• A:B == C およびダイナミ ッ ク パターン マッチ。 例 : A:B OR C == 0、 A:B AND C == 1

• A:B {function} C == 0

• 48 ビッ ト カウンター自動リセッ ト (ターミナル カウン ト検出)

• 丸め込み動作用の中間ポイン ト検出

パターン検出器を使用しない場合、 次のよ うにその他の機能のインプリ メン トに利用できます。

• ファンアウ ト を低減してスピードを向上させるためにピン (符号ビッ ト など) を複製する

• FPGA ファブリ ッ クへ配線せずに、1 ビッ ト (例 : 符号ビッ ト ) にビルト イン インターバルをイ

ンプリ メン ト

• 浮動小数点のスティ ッキー ビッ トのチェッ ク、 特殊なケースへの対応、 または DSP48E1 スラ

イス出力のモニタ リ ング

• 特殊条件が満たされたと きに、 または特殊条件が満たされないと きにフラグをあげる

マスク フ ィールドを使用して、 パターン検出器で特定のビッ ト位置をマスク アウ トするこ と も可

能です。 パターン フ ィールドおよびマスク フ ィールドには、 48 ビッ トのコンフ ィギュレーシ ョ ン

フ ィールドの値、 または C 入力で設定した値を使用します。

X-Ref Target - Figure 2-17

図 2-17 : パターン検出器ロジック

C (Register)

PATTERN

P

UG369_c1_17_051209

C (Register)

MASK

C Shift by 2, 00 (Mode 2)

C Shift by 1, 0 (Mode 1)

SEL_MASK

PATTERNMASK

= 48’b00000000...= 48’b00111111...

SEL_MASK

SEL_PATTERN

PATTERNBDETECTPAST(1)

PATTERNBDETECT

PATTERNDETECT

Notes:1. Denotes an internal signal.

P

PATTERNDETECTPAST(1)

Page 46: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

46 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 2 章 : DSP48E1 の説明および詳細

オーバーフローおよびアンダーフロー ロジック

こ こで説明するオーバーフロー /アンダーフローの内容は、1 つの DSP48E1 スライスにインプ リ メ

ン ト されたシーケンシャル アキュムレータ (MACC または加算器/アキュムレータ) に当てはま り

ます。 アキュムレータには 1 ビ ッ ト以上のガード ビ ッ ト が必要です。 パターン検出器がマス ク

0011111 …1 (デフォル ト設定) でパターン = 00000…0 を検出するよ うに設定されている場合、

DSP48E1 スライスは 00111 … 1 を超えるオーバーフロー、 または 11000… 0 を下回るアンダー

フローに対してフラグを立てます。 USE_PATTERN_DETECT 属性を PATDET に設定する と、 パ

ターン検出ロジッ クの使用が有効になり ます。 このオーバーフロー /アンダーフロー インプリ メン

テーシ ョ ンは冗長符号ビッ ト を使用し、 出力ビッ ト幅を 47 に削減します。

マスク値を 0000111 …1 に変更する と、オーバーフローが検出されるビッ ト値 P[N] を変更できま

す。 このロジッ クは、 2N - 1 の正の値への飽和および 2 の補数表現での 2N の負の値への飽和をサ

ポート します (N はマスク フ ィールド内の値 1 の桁数)。

N = 2 の場合、 オーバーフロー /アンダーフロー条件を確認するには、 次の例を使用します。

• マスクが 0...11 に設定されている

• (N) LSB ビッ トは、 比較には考慮されない

• N = 2 の場合、 合法的な値 (パターン) は、 22-1 ~ –22 または 3 ~ -4

図 2-19 および図 2-20 は、 それぞれオーバーフローとアンダーフローの例を示しています。

X-Ref Target - Figure 2-18

図 2-18 : パターン検出のオーバーフロー /アンダーフロー ロジック

X-Ref Target - Figure 2-19

図 2-19 : パターン検出のオーバーフロー条件

PATTERNBDETECTPAST(1)

PATTERNBDETECTPATTERNDETECT

Notes:1. Denotes an internal signal.

Underflow

PATTERNDETECTPAST(1)

PATTTERNBDETECTPATTTERNDETECT

Overflow

UG369_c1_18_051209

PATTERNMASK

= 48’b00000000...= 48’b00111111...

x x x x x 0 .. 0000 0 .. 0001 0 .. 0010 0 .. 0011 0 .. 0100

PD Caused by Overflow

UG369_c1_19_051209

High to Low

Overflow

Page 47: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 47UG479 (v1.8) 2014 年 11 月 10 日

簡略された DSP48E1 スライス動作

• P == pattern または mask の場合、 PD は 1

• P == patternb または mask の場合、 PBD は 1

オーバーフローは、加算によって加算器/減算器/論理ユニッ トの出力値が 3 を超える と発生します。

終値 0..0011 に 1 を加算する と 0..0100 とな り、 これによ り PD 出力は 0 になり ます。PD 出力が 1 から 0 になる と、 オーバーフローがアサート されます。

アンダーフローは、減算によって値が –4 未満になる と発生します。 1..1100 から 1 を減算する と

1..1010 (–5) とな り、 これによ り PBD 出力は 0 になり ます。 PBD 出力が 1 から 0 になる とアン

ダーフローがアサート されます。

X-Ref Target - Figure 2-20

図 2-20 : パターン検出のアンダーフロー条件

x x x x 1 .. 1111 1 .. 1110 1 .. 1101 1 .. 1100 1 .. 1010

PBD Caused by Underflow

UG369_c1_20_051209

High to Low

Underflow

0 .. 0000

Page 49: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 49UG479 (v1.8) 2014 年 11 月 10 日

第 3 章

DSP48E1 のデザイン上の留意点

この章では、 パフォーマンス向上、 低消費電力、 および低リ ソース使用率を実現するための設計手

法とテクニッ クについて説明します。

この章には、 次のセクシ ョ ンがあ り ます。

• 「パフォーマンス向上のための設計」

• 「電力削減のための設計」

• 「加算器ツ リーと加算器カスケード」

• 「カラム内での DSP48E1 スライスの接続」

• 「DSP48E1 スライスの時分割多重化」

• 「備考および推奨」

• 「前置加算器ブロ ッ クの用途」

パフォーマンス向上のための設計

DSP48E1 スラ イスの使用時に 大限の性能を得るには、 デザインを完全にパイプライン化する必

要があ り ます。 乗算器ベースのデザインでは、 DSP48E1 スライスに 3 段のパイプラインが必要で

す。乗算器ベース以外のデザインでは、2 段のパイプラインを使用します。『7 シ リーズ FPGA デー

タシート : DC 特性およびスイ ッチ特性』 [参照 5] も参照してください。レイテンシが重要なデザイ

ンで、DSP48E1 スライス内でレジスタを 1 つまたは 2 つしか使用できない場合は、常に M レジス

タを使用して ください。

電力削減のための設計

USE_MULT 属性は、 乗算器の用法を選択します。 加算器/論理ユニッ トのみ使用する場合は、 この

属性を NONE に設定して ください。 DSP48E1 スラ イス内にインプ リ メ ン ト したファンクシ ョ ン

は、 ファブ リ ッ ク内のファンクシ ョ ンよ り も低消費電力です。 ファブリ ッ クの配線リ ソースを使用

する代わりに DSP48E1 スライス内のカスケード パスを使用するこ とによっても、消費電力を抑え

るこ とができます。 M レジスタを使用する乗算器は、 M レジスタを使用しない乗算器よ り も消費

電力が低くな り ます。 25 x 18 未満のオペランドの場合、オペランドを MSB 側に配置し、未使用の

下位ビッ トに 0 をパディングするこ とで、 FPGA ファブ リ ッ クの消費電力を削減できます。

Page 50: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

50 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 3 章 : DSP48E1 のデザイン上の留意点

加算器ツリーと加算器カスケード

加算器ツリー

標準的な直接型 FIR フ ィルターの場合、 一連の入力サンプルは、 DSP48E1 スライス内の乗算器の

一方の入力に渡されます。 乗算器のも う一方に係数が提供されます。 複数の乗算器からの出力を結

合するために、 加算器ツ リーが使用されます (図 3-1 参照)。

X-Ref Target - Figure 3-1

図 3-1 : 従来型の FIR フ ィルターの加算器ツリー

48

48

y(n-6)

18

1848

48

×

+

+18

18

18

18

18

18

h0(n)

X(n)

h1(n)

48

48

18

1848

48

×

+×18

18

×

18

18

18

18

h2(n)

X(n)

h3(n)

h4(n)

X(n-2)

X(n-4)

h5(n)

h6(n)

h7(n)

+

+

Z-2

Z-2

Z-2

×

×

×

× +

The final stages of the post addition in logic are the performance bottleneck thatconsume more power.

UG479_c2_01_072210

+

Page 51: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 51UG479 (v1.8) 2014 年 11 月 10 日

加算器ツリーと加算器カスケード

従来の FPGA の場合、ファブリ ッ ク加算器はパフォーマンス向上の障害とな り ます。必要な加算器

数および配線数は、 フ ィルター サイズによって異なり ます。加算器ツ リーの深さは、 フ ィルターの

タ ップ数の log2 とな り ます。 また、図 3-1 に示す加算器ツ リーの構造は、 コス ト 、 ロジッ ク リ ソー

ス、 および電力を増加させる可能性もあ り ます。

7 シ リーズ FPGA の CLB では、1 つのスライス内で 6 LUT とキャ リー チェーンの両方を使用する

こ とで、 効率的な 3 入力加算器が構築できます。 CLB 内の 6 LUT は、 デュアル 5 LUT と して機

能します。 この 5 LUT は 3:2 コンプレッサーと して使用され、3 つの入力値を加算して 2 つの出力

値を生成します。 図 3-2 に、 3:2 コンプレッサーを示します。

2 入力キャ リー カスケード加算器と結合したデュアル 5LUT (3:2 コンプレッサーと してコンフ ィ

ギュレーシ ョ ン) は、 必要な数のスライスを縦方向に積み重ねるこ とによ り、 図 3-3 に示すよ うに

3 つの N ビッ ト値を加算して 1 つの N+2 ビッ ト出力を生成します。

X-Ref Target - Figure 3-2

図 3-2 : 3 入力加算器/減算器 (3:2 コンプレッサー )

X(1)Y(1)

Z(1)

BBUS(0)SUB/

ADDB

BBUS(0)

SUB/ADDB

SUB/ADDB

AX

A5

A2

A3A4

IN5

00 1

O6A

CY(0)

CY(1)

GND

O5A

1

VDD

IN6

IN2

DAQ

AMUX

SUM(0)

BBUS(0)

Q

CK

IN3IN4

X(0)Y(0)

Z(0)

BX

B5

B2

B3B4

IN5

B1 IN1

00 1

O6B

O5B

1

VDD

IN6

IN2

DBQ

BMUX

SUM(1)

BBUS(1)

Q

CK

IN3IN4 ABUS(1)

ABUS(0)

UG479_c2_02_072210

Page 52: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

52 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 3 章 : DSP48E1 のデザイン上の留意点

3:1 加算器 (図 3-3 参照) は、 大規模な加算器ツ リー用の構築ブロ ッ ク と して使用されます。 追加さ

れる入力数しだいで、複数の 5 LUT または 6 LUT を使用してファブリ ッ ク ロジッ ク内に 5:3 また

は 6:3 コンプレッサーも構築できます。 6:3 コンプレッサーと 2 つの DSP48E1 スライスをシ リ ア

ルに組み合わせる と、 6 つのオペランドを加算して 1 つの出力を生成します (図 3-4 参照)。 初の

DSP48E1 スライスの LSB ビッ トは、Y バスと Z バスの左シフ トによ り空いたままになっているた

め、 0 の値を配置する必要があ り ます。 後の DSP48E1 スライスは、 2 段の A:B 入力レジスタを

使用して X バスを 初の DSP48E1 スライスの出力に合わせて調整 (パイプライン マッチ) します。

複数レベルの 6:3 コンプレッサーを使用する と、 入力バス数を拡張できます。

図 3-4 の X、 Y、 および Z バスの論理式は次のとおりです。

X(n) = A(n) XOR B(n) XOR C(n) XOR D(n) XOR E(n) XOR F(n) 式 3-1

式 3-2

式 3-3

コンプレッサー エレ メ ン トおよびカスケード加算器は、 よ り大規模な加算器を構築するためにツ

リー状に配置できます。 後の加算ステージは DSP48E1 スライスにインプリ メ ン トする必要があ

り ます。デザインのタイ ミ ング条件を満たすため、必要に応じてパイプライン レジスタを追加して

ください。 これらの加算器は、 加算器カスケード よ り もエ リ ア使用率や電力が高くなり ます。

加算器カスケード

加算器カスケードのインプリ メン トでは、 DSP48E1 スライスのカスケード パスを使用するこ とに

よって、 小限のシ リ コン リ ソースで加算後処理を実現できます。図 3-5 に示すよ うなカスケード

X-Ref Target - Figure 3-3

図 3-3 : 3 入力加算器

X-Ref Target - Figure 3-4

図 3-4 : 6 入力加算器

A

C

3:2Compressor

ABUS

BBUS

SUM48

2-InputCascade

Adder

UG479_c2_03_072210

B

Left Shift By 1

46

46

46

A

F

6:3Compressor

Left Shift By 2

Left Shift By 1

X

Y

Z

SUM

48DSP48E1

Slice

UG479_c2_04_072210

DSP48E1Slice

45

45

Y(n) = A(n)B(n) XOR A(n)C(n) XOR A(n)D(n) XOR A(n)E(n) XOR A(n)F(n) XOR B(n)C(n) XOR B(n)D(n) XOR B(n)E(n) XOR B(n)F(n) XOR C(n)D(n) XOR C(n)E(n) XOR C(n)F(n)

XOR D(n)E(n) XOR D(n)F(n) XOR E(n)F(n)

Z(n) = A(n)B(n)C(n)D(n) OR A(n)B(n)C(n)E(n) OR A(n)B(n)C(n)F(n) OR A(n)B(n)D(n)E(n) OR A(n)B(n)D(n)F(n) OR A(n)B(n)E(n)F(n)OR A(n)C(n)D(n)E(n) OR A(n)C(n)D(n)F(n) OR A(n)C(n)E(n)F(n)OR A(n)D(n)E(n)F(n) OR B(n)C(n)D(n)E(n) OR B(n)C(n)D(n)F(n)OR B(n)C(n)E(n)F(n) OR B(n)D(n)E(n)F(n) OR C(n)D(n)E(n)F(n)

Page 53: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 53UG479 (v1.8) 2014 年 11 月 10 日

加算器ツリーと加算器カスケード

接続手法を使用する場合は、 加法演算結果をインク リ メ ンタル (追加的) に計算する必要があ り ま

す。

カスケード接続された加算器の場合、 正しい結果を得るためには入力サンプルの遅延と係数遅延の

均衡が重要とな り ます。 係数は、 時間の経過に従って不安定になり ます (ウェーブ係数)。

X-Ref Target - Figure 3-5

図 3-5 : 加算器カスケード

Slice 7

No Wire Shift

Slice 8

Slice 6

Slice 5

48

48

48

18

18 48

48

48

48

×

× +

×

18

18

18

18

×18

18

48 Y(n–10)

h0(n)

X(n)

h1(n-1)

Slice 3

No Wire Shift

Slice 4

Slice 2

Slice 1

Zero

48

48

48

18

18 48

48

48

48

×

×

×

18

18

18

18

×18

18

h2(n-2)

h3(n-3)

h4(n-4)

h5(n-5)

h6(n-6)

h7(n-7)

No Wire Shift

No Wire Shift

No Wire Shift

No Wire Shift

48

No Wire Shift

The post adders arecontained entirely indedicated silicon forhighest performanceand lowest power.

+

+

+

+

+

+

+

Sign Extended from 36 Bits to 48 Bits UG479_c2_05_072210

Page 54: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

54 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 3 章 : DSP48E1 のデザイン上の留意点

カラム内での DSP48E1 スライスの接続

カスケード パスを使用して加算器をインプ リ メン トする場合、消費電力およびスピードが大幅に向

上します。 1 つのパス上で使用できる 大カスケード数は、 チップのカラム内にある DSP48E1 スライスの合計数にのみ制限されます。

DSP カラムの高さは Virtex-5、 Virtex-6、 7 シ リーズ のデバイス間で異なるため、 これらのデバイ

スをポーティングする際には注意が必要です。複数のカラムにまたがる場合は、 DSP カラムの 上

位からの P バス出力を使用し、 隣接する DSP カラムの 下位 DSP48E1 スライスの C ポートにこ

の P バスを接続するためにファブ リ ッ ク パイプライン レジスタを追加します。 また、 このよ うに

複数の DSP カラムにまたがる場合は、 入力オペランドのアライ メン ト も必要になり ます。

DSP48E1 スライスの時分割多重化 DSP48E1 スライスの高速演算エレ メン トによ り、 DSP デザインでは時分割多重化を使用するこ と

が可能です。 時分割多重化とは、 1 つの DSP48E1 スライス内で複数のファンクシ ョ ンを異なる時

間インスタンスで実行するプロセスです。 サンプル レー ト が低いデザインなどに使用されます。

式 3-4 に、 1 つの DSP48E1 スライスにインプリ メン ト可能なファンクシ ョ ン数 (N) を求める式を

示します。

N * チャネル周波数 £ DSP48E1 スライスの最大周波数 式 3-4

時分割多重化した DSP デザインでは、オプシ ョ ンのパイプライン化で、1 秒間に 大 5 億サンプル

までの複数チャネルを集約するこ とが可能です。 DSP48E1 スライスを使用して時分割多重化した

デザインをインプリ メン トするこ とは、結果と して リ ソース使用率と消費電力の削減に繋がり ます。

DSP48E1 スラ イスには、 従来型 FIR フ ィルターの基本的なエレ メン ト と して、 乗算器、 加算器、

遅延/パイプライン レジスタがあ り、 汎用スライス ファブ リ ッ クを使用するこ とな く入力ス ト リー

ム (B バス) および出力ス ト リーム (P バス) をカスケード接続できます。

マルチチャネル フ ィルタ リ ングは、 時分割多重化したシングルチャネル フ ィルターと見なすこ と

ができます。 標準的なマルチチャネル フ ィルタ リ ングでは、 各チャネルに対して個別のデジタル

フ ィ ルターを使用して、 複数の入力チャネルがフ ィ ルターされます。 7 シ リ ーズ デバイ スの

DSP48E1 スライスは高性能であるため、 8x ク ロ ッ クでクロ ッ クを供給するこ とによ り、 8 つの入

力チャネルすべてを 1 つのデジタル フ ィルターでフ ィルタ リ ングできます。このインプリ メンテー

シ ョ ンは、 各チャネルを個別にインプ リ メ ン トする方法と比較する と、 合計 FPGA リ ソース数の

1/8 になり ます。

備考および推奨

• 4 x 4 乗算器のよ うな小規模な乗算器と、ビッ ト幅が小さい加算器およびカウンターのインプ リ

メ ン ト には、 インターコネク ト ロジッ クの LUT およびキャ リー チェーンを使用して くださ

い。小規模な加算器やカウンターを数多く使用する場合は、SIMD モードを使用して DSP48E1スラ イスにインプ リ メ ン ト します。 SIMD モードのファンクシ ョ ンでは、 DSP48E1 スライス

内に入力レジスタも含むこ とで、インターコネク ト ロジッ クを使用する場合と比べて 1/2 のエ

リ アおよび電力の削減になり ます。

• 少ビッ ト幅ファンクシ ョ ンをインプリ メン トする場合は、 常に入力オペランドに符号を拡張し

ます。 ファブ リ ッ クの消費電力を低く抑える場合は、 オペランド命令に MSB を使用し、 LSBをすべてグランド (GND) にします。

• 異なる DSP48E1 スライスをカスケード接続する場合は、 異なる信号パスのパイプライン ステージを一致させる必要があ り ます。

Page 55: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 55UG479 (v1.8) 2014 年 11 月 10 日

DSP48E1 のデザイン リソース

• DSP48E1 スライスに 1 ずつカウン ト アップするカウンターをインプリ メン トする場合は、

CARRYIN 入力を使用してください。 N ずつカウン ト または可変のカウンターの場合は、 C または A:B 入力を使用できます。

• DSP48E1 カウンターは、 大限の速度で動作する制御ロジッ クをインプリ メン トするために

使用できます。

• CLB 内の SRL16/SRL32 およびブロ ッ ク RAM は、 フ ィルター係数の格納場所と して使用す

るか、DSP48E1 スライス との組み合わせでレジスタ ファ イルまたはメモ リ エレ メン ト と して

使用して ください。 入力ビッ トのピッチ (各インターコネク トに対して 4 ビッ ト ) は、 CLB およびブロ ッ ク RAM のビッ ト ピッチと一致する必要があ り ます。

• DSP デザインの制御ロジッ クを駆動する高速有限ステート マシンと して、 ブロ ッ ク RAM を使用するこ と も可能です。

• DSP48E1 スライスは、 MicroBlaze™ や PicoBlaze™ などのプロセッサと組み合わせて、プロ

セッサ ファンクシ ョ ンの、 ハード ウェアを使用した設計促進に利用できます。

• DSP48E1 スライスの入力へ接続する前に、SRL16 やブロッ ク RAM の出力にパイプライン レジスタを使用して ください。 これによ り、 DSP48E1 スラ イスへ送信される入力オペランドの

パフォーマンスが向上します。

• 7 シ リーズ デバイスの場合、 スライス内の SRL16 の出力に付いているレジスタにはリセッ ト

ピンおよびク ロ ッ ク イネーブル ピンがあ り ます。 SRL を リ セッ トするには、 16 サイ クル間

SRL16 へ 0 を入力して、 その間、 出力レジスタのリセッ ト信号を High に保持します。 特に、

SRL16 を使用して入力データを格納するよ う なフ ィルター インプ リ メ ンテーシ ョ ンには、 こ

の機能が有効です。

DSP48E1 のデザイン リソース

『XST ユーザー ガイ ド (Virtex-6、 Spartan-6、 および 7 シ リーズ デバイス用)』 [参照 3] の 「XSTハードウェア記述言語 (HDL) コーディング手法」 の章を参照してください。 さまざまな DSP フ ィ

ルターおよび DSP ファンクシ ョ ン用の VHDL および Verilog 推論コーディング テンプレートが記

載されています。

前置加算器ブロックの用途

DSP48E1 スライスの前置加算器は、LTE (Long-Term Evolution) 規格に含まれるアルゴ リ ズムなど

の無線アプリ ケーシ ョ ン、汎用フ ィルター (FIR、 IIR)、 アルファ ブレンディングなどの動画処理を

含む、 さまざまな用途で効果的に使用できます。

図 3-6 は、8 タ ップの偶数対称シス ト リ ッ ク FIR のデザインにおける前置加算器 (灰色の部分) の活

用例を示しています。

Page 56: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

56 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

第 3 章 : DSP48E1 のデザイン上の留意点

メモリ マップされた I/O レジスタ アプリケーシ ョ ン

DSP48E1 スライスを メモ リ マップされた I/O レジスタ と して使用するには、 この目的で使用する

すべての DSP48E1 スライスに接続する書き込みデータ バスをユーザーがブロードキャス トする必

要があ り ます。 読み出しアクセスをランダムにするには、 多入力マルチプレ クサーが必要です。

DSP48E1 スラ イスを追加して多入力マルチプレクサーと してコンフ ィギュレーシ ョ ンする と、 配

線密集を緩和できます。 アドレス デコーダーはファブ リ ッ ク ロジッ クにインプ リ メ ン ト し、 書き

込みデータ バスから適切な DSP 出力レジスタを読み込むよ うに、 各 PREG CE を制御する必要が

あ り ます。

X-Ref Target - Figure 3-6

図 3-6 : 8 タ ップの偶数対称シスト リ ック FIR

DSP Slice DSP Slice DSP Slice DSP SliceUG479_c2_06_072210

z-2

z-8

(SRL16)

x(n)

h0 h1 h2 h3

y(n-8)

z-1

z-1

+

Duplicate Tap Delay

x

+

z-1

z-1

z-1

z-2

z-1

z-1

+

x

+

z-1

z-1

z-1

z-2

z-1

z-1

+

x

+

z-1

z-1

z-1

z-2

z-1

z-1

+

x

+

z-1

z-1

z-1

Page 57: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 57UG479 (v1.8) 2014 年 11 月 10 日

付録 A

CARRYOUT、 CARRYCASCOUT、 および MULTSIGNOUT

CARRYOUT/CARRYCASCOUTDSP48E1 スライス とファブ リ ッ ク キャ リー チェーンでは、減算ファンクシ ョ ンのインプリ メン ト

スタイルが異なり ます。 CLB スライス内のキャ リー チェーンのインプ リ メ ン トでは、 減算処理の

間、 ファブリ ッ クのキャ リー入力ピンを定数 1 に接続する必要があ り ます。 DSP48E1 スライス内

での標準的な減算 (ALUMODE = 0011) では、CARRYIN ピンを 1 に設定する必要はあ り ません。

2 の補数表現で負の値を得るには、–B = ((not B) + 1) のよ うにビッ ト単位で反転して 1 を加算しま

す。 CLB で A-B は (A + (not B) + 1) と してインプリ メン ト されます (図 A-1 参照)。 2 入力減算器

は図 A-2 に示すよ うに、 [not (B + (not A))] と してインプリ メン トするこ と もできます。 この代替

インプリ メン トでは、 加算器/減算器へのキャ リー入力を通常の用途にも使用できます。

X-Ref Target - Figure A-1

図 A-1 : FPGA ロジック インターコネク ト ベースの加算器/減算器

+A

B

0

Carry Input

A + B

UG369_A_01_111208

0

1

+A

B

Sub/Add = 1/0

(Carry input must be 1 for a subtract operation, so it is not available for other uses.)

A ± B

0

1

Page 58: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

58 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

付録 A : CARRYOUT、 CARRYCASCOUT、 および MULTSIGNOUT

DSP48E1 スライスは 2 番目のインプリ メン ト を、 CARRYIN 入力を加えた 3 入力加算器で拡張し

て使用します (図 A-3 参照)。 これによ り DSP48E1 の SIMD 演算では、 小さな加算/減算ユニッ ト

ごとに CARRYIN を使用するこ とな く減算処理を実行できます。

Virtex-6 および 7 シ リーズ FPGA ALUMODE では、さ らに次の減算処理もサポート されています。

ALUMODE = 0001 が (-Z + (X + Y + CIN) – 1) をインプリ メン ト します。

• ほとんどの場合、 CIN は -1 を相殺するため 1 に設定されます。

ALUMODE = 0010 は、 実際には -(Z + X + Y + CIN) – 1 をインプリ メン ト します。

• ALUMODE 0010 を使用して得られた P 出力の反転をほかのスライスにカスケード接続して、

2 の補数減算をインプリ メン トできます。

加算演算の場合、 CARRYOUT[3] と CARRYCASCOUT は同一ですが、 減算用のボローを示すた

めに使用される表現が異なり ます。CARRYOUT[3] はファブリ ッ ク減算と同じ表現です。したがっ

て、 ファブ リ ッ クの加算/減算ファンクシ ョ ンで CARRYOUT[3] ピンを直接使用し、 DSP48E1 スライスの 2 入力減算をファブリ ッ クまで拡張できます。 一方、 CARRYCASCOUT は DSP スライ

スの減算表現に従っているため、 上に重ねられたほかの DSP スライスへのカスケード接続に 適

です。

CARRYOUT[3] 信号と CARRYCASCOUT 信号によって、 複数の DSP48E1 スライスを使用する

か、 あるいは DSP48E1 スラ イス と ファブ リ ッ クの加算器/減算器を併用した、 高精度の加算/減算

ファンクシ ョ ンの構築が可能になり ます。

X-Ref Target - Figure A-2

図 A-2 : オプシ ョ ンのキャリー入力を使用する加算器/減算器

X-Ref Target - Figure A-3

図 A-3 : DSP48E1 スライスの 3 入力加算器

UG369_A_02_111208

+B

A

Sub/add

Opt. carry input

(Carryin available as an input even for subtract operations)

A +/– (B + optional carry input)

0

1

0

1

UG369_A_03_111208

+Y

X

Z

ALUMODE[0]

CIN

ALUMODE[1]

DSP48E1 Slice Add/Subtract

0

1

0

1

Page 59: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com 59UG479 (v1.8) 2014 年 11 月 10 日

MULTSIGNOUT と CARRYCASCOUT

MULTSIGNOUT と CARRYCASCOUTCARRYOUT[3] は乗算に使用すべきではあ り ません。 DSP48E1 スライスでは 1 段目の乗算器で 2つの部分積が生成され、 2 段目でそれらの和が求められるからです。

DSP のすべての 3 入力加算演算 (乗算/加算、加算累算を含む) では、精度を完全に維持するために、

2 つの CARRYOUT ビッ トが生成されます。 これを図 A-4 に示します。

MULTSIGNOUT と CARRYCASCOUT は、MACC_EXTEND 演算用の 2 つのキャ リー ビッ ト と

して機能します。 MULTSIGNOUT が乗算器の符号ビッ ト 、 CARRYCASCOUT がカスケード接続

のキャ リーアウ ト ビッ トの場合、 結果は図 A-4 に示すソフ ト ウェア/UNISIM モデルと して抽象化

されます。

このシ ミ ュレーシ ョ ン モデルの MULTSIGNOUT と CARRYCASCOUT はハードウェアとは一致

しませんが、 出力 P ビッ トは MACC_EXTEND など、 サポート されるファンクシ ョ ンと一致しま

す。 た と えば、 上位 DSP ス ラ イ ス内ですべて 0 を使用し て FPGA ロ ジ ッ ク に配線し た

CARRYCASCOUT は、 下位 DSP スラ イスの CARRYOUT[3] と一致しません。 同様に、 ファブ

リ ッ クに配線した MULTSIGNOUT は、 実際の乗算結果の符号ではあ り ません。

この MULTSIGNOUT 信号と CARRYCASCOUT 信号によって、 大精度 96 ビッ ト のアキュム

レータ用に累積され、DSP48E1 スライスの 大周波数で動作する 25 x 18 乗算器など、高精度の積

和演算 (MACC_EXTEND) ファンクシ ョ ンの構築が可能になり ます。

96 ビ ッ ト 積和演算のよ う な大規模なアキ ュ ム レータ を構築する場合は、 OPMODEREG と

CARRYINSELREG を 1 に設定する必要があ り ます。 これによ り、 リ セッ ト発生時にシ ミ ュレー

シ ョ ン モデルから上位の DSP48E1 スライスに不明ステートが伝搬されなくな り ます。

まとめ

加算器/減算器のみ

CARRYOUT[3] : ハードウェアと ソフ ト ウェアが一致します。

CARRYCASCOUT : ALUMODE = 0000 の場合に一致し、ALUMODE = 0011 の場合に反転しま

す。 不一致は、 DSP48E1 スライスで減算に使用されるアルゴ リズムが FPGA ロジッ クで使用され

るものと異なるために発生します。 したがって、 FPGA ロジッ クからの CARRYOUT は、 反転し

て DSP48E1 スライスに渡す必要があ り ます。

MULTSIGNOUT は加算器だけの場合には無効です。

X-Ref Target - Figure A-4

図 A-4 : DSP48E1 の 3 入力加算器

UG369_aA_04_051509

+Y

X

Z P[47:0]

CIN

One Bit Carry Out to FabricCARRYOUT[3]

Two CARRYOUT bits are produced in the hardware and are labeled as MULTSIGNOUT and CARRYCASCOUT in the simulation model.

Page 60: 7 シリーズ DSP48E1 スライス - Xilinx · 7 シリーズ DSP48E1 ユーザー ガイド japan.xilinx.com UG479 (v1.8) 2014 年 11 月 10 日 The information disclosed to you

60 japan.xilinx.com 7 シリーズ DSP48E1 ユーザー ガイド

UG479 (v1.8) 2014 年 11 月 10 日

付録 A : CARRYOUT、 CARRYCASCOUT、 および MULTSIGNOUT

MACC 演算

CARRYOUT[3] は MACC 演算では無効です。

CARRYCASCOUT および MULTSIGNOUT : ハードウェアと ソフ ト ウェアは、 モデルの違いによ

り一致しません。 ソフ ト ウェアのシ ミ ュレーシ ョ ン モデルは、 ハード ウェア モデルを抽象化した

ものです。 CARRYCASCOUT と MULTSIGNOUT をソフ ト ウェアで表す場合、 UNISIM モデル

で高精度の MACC 機能を構築するこ とが可能です。 これらはハード ウェアの CARRYCASCOUTおよび MULTSIGNOUT と論理的に等価ではあ り ません。 ハード ウェアと ソフ ト ウェアの結果 (P出力) だけが論理的に等価であ り、内部信号 (CARRYCASCOUT および MULTSIGNOUT) は異な

り ます。 図 A-5 を参照してください。

X-Ref Target - Figure A-5

図 A-5 : MACC のソフ トウェアとハードウェアのモデル

UG369_A_05_111208

+A

B

Partial products from the multiply operation are added together in the second stage ternary adder.

CARRYCASCOUT

MULTSIGNOUT

x

Hardware Implementation

Software Model

+A

B

CARRYIN

Zmux (e.g., C, P, PCIN)

CARRYCASCOUT

MULTSIGNOUT

x

CARRYIN

Zmux (e.g., C, P, PCIN)

P[47:0]

P[47:0]