...

7 シリーズ DSP48E1 スライス ユーザー ガイド

by user

on
Category: Documents
4

views

Report

Comments

Transcript

7 シリーズ DSP48E1 スライス ユーザー ガイド
7 シ リ ーズ DSP48E1 ス ラ イ ス
ユーザー ガ イ ド
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.To
the maximum extent permitted by applicable law:(1) Materials are made available "AS IS" and with all faults, Xilinx hereby
DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT
LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR
PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory of
liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (including
your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss
of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such
damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no
obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product
specifications.You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent.Certain
products are subject to the terms and conditions of Xilinx’s limited warranty, please refer to Xilinx’s Terms of Sale which can be
viewed at http://www.xilinx.com/legal.htm#tos; IP cores may be subject to warranty and support terms contained in a license
issued to you by Xilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring failsafe performance; you assume sole risk and liability for use of Xilinx products in such critical applications, please refer to
Xilinx’s Terms of Sale which can be viewed at http://www.xilinx.com/legal.htm#tos.
AUTOMOTIVE APPLICATIONS DISCLAIMER
XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN ANY APPLICATION
REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS APPLICATIONS RELATED TO:(I) THE DEPLOYMENT OF
AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESS THERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH
DOES NOT INCLUDE USE OF SOFTWARE IN THE XILINX DEVICE TO IMPLEMENT THE REDUNDANCY) AND A
WARNING SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD TO DEATH OR
PERSONAL INJURY.CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE OF XILINX PRODUCTS
IN SUCH APPLICATIONS.
© Copyright 2011-2014 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other
designated brands included herein are trademarks of Xilinx in the United States and other countries.All other trademarks are the
property 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 レ ジ ス タ アプ リ ケーシ ョ ン」 を追加。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
japan.xilinx.com
UG479 (v1.8) 2014 年 11 月 10 日
日付
バージ ョ ン
内容
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」 の最後の
段落を更新。
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
japan.xilinx.com
UG479 (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、 および MULTSIGNOUT
CARRYOUT/CARRYCASCOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
MULTSIGNOUT と CARRYCASCOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
ま と め . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
5
6
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (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.
2.
3.
4.
5.
6.
UG193 : 『Virtex-5 FPGA XtremeDSP ユーザー ガ イ ド 』
DS180 : 『7 シ リ ーズ FPGA 概要』
UG687 : 『XST ユーザー ガ イ ド (Virtex-6、 Spartan-6、 お よ び 7 シ リ ーズ デバ イ ス用)』
UG958 : 『Vivado Design Suite リ フ ァ レ ン ス ガ イ ド : System Generator を使用 し たモデル ベー
ス の DSP デザ イ ン』
7 シ リ ーズ FPGA デー タ シー ト
UG073 : 『Virtex-4 FPGA の XtremeDSP ユーザー ガ イ ド 』
その他の リ ソ ース
シ リ コ ンお よ び ソ フ ト ウ ェ アに関す る ア ン サー デー タ ベース を検索 し た り 、 テ ク ニ カル サポー ト
の ウ ェ ブケース を開 く 場合は、 次の ウ ェ ブサ イ ト にア ク セ ス し て く だ さ い。
http://japan.xilinx.com/support
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
7
こ のユーザー ガ イ ド について
8
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
第1章
概要
DSP48E1 ス ラ イ スの概要
FPGA は、 カ ス タ マ イ ズ さ れた完全な並列アルゴ リ ズ ム を イ ンプ リ メ ン ト で き る ため、 デジ タ ル信
号処理 (DSP) アプ リ ケーシ ョ ンに有効です。 DSP アプ リ ケーシ ョ ンは、 専用の DSP ス ラ イ ス に最
適に イ ン プ リ メ ン ト さ れた多数のバ イ ナ リ 乗算器お よ びア キ ュ ム レ ー タ を使用 し ま す。 すべての
7 シ リ ーズ FPGA は、専用で完全にカ ス タ マ イ ズ さ れた低消費電力 DSP ス ラ イ ス を数多 く 装備 し 、
シ ス テ ム デザ イ ン の柔軟性を維持 し なが ら 、 高速処理お よ び小型化を実現 し てい ま す。 DSP ス ラ
イ ス は、 デジ タ ル信号処理のほかに も 多 く のアプ リ ケーシ ョ ン で速度 と 効率性を向上 さ せます。 こ
の よ う な アプ リ ケーシ ョ ンには、バ ス幅の広いダ イ ナ ミ ッ ク シ フ タ ー、メ モ リ ア ド レ ス ジ ェ ネ レー
タ ー、 多入力 マ ルチ プ レ ク サー、 メ モ リ マ ッ プ さ れ た I/O レ ジ ス タ が含 ま れ ま す。 図 1-1 に、
DSP48E1 ス ラ イ ス の基本的な機能を示 し ます。 全詳細は、 図 2-1 と 第 2 章 「DSP48E1 の説明お よ
び詳細」 を参照 し て く だ さ い。
X-Ref Target - Figure 1-1
48-Bit Accumulator/Logic Unit
B
+
X
A
+/–
D
P
–
25 x 18
Multiplier
=
Pre-adder
Pattern Detector
C
UG479_c1_21_032111
図 1-1 : DSP48E1 ス ラ イ スの基本機能
DSP の主な特長は次の と お り です。
•
25 × 18 の 2 の補数乗算器
•
•
48 ビ ッ ト ア キ ュ ム レー タ
•
•
ダ イナ ミ ッ ク バイパス
同期ア ッ プ/ ダ ウ ン カ ウ ン タ ー と し て使用可能
低消費電力の前置加算器
•
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
対称フ ィ ル タ ー アプ リ ケーシ ョ ン を最適化 し 、 DSP ス ラ イ ス要件を削減
japan.xilinx.com
9
第 1 章 : 概要
•
単一命令複数デー タ (SIMD) 演算ユニ ッ ト
•
•
オプシ ョ ンの論理ユニ ッ ト
•
•
•
デ ュ アル 24 ビ ッ ト ま たは ク ワ ッ ド 12 ビ ッ ト の加算/減算/累算
2 つのオペ ラ ン ド の 10 個の異な る ロ ジ ッ ク フ ァ ン ク シ ョ ンのいずれか を生成可能
パ タ ーン検出器
•
収束丸め込みま たは対称丸め込み
•
論理ユニ ッ ト と 組み合わせて使用 し た場合、 96 ビ ッ ト 幅の ロ ジ ッ ク フ ァ ン ク シ ョ ン
高度な機能
•
オプシ ョ ン と し て、 カ ス ケー ド 接続用のパ イ プ ラ イ ンお よ び専用バ ス
旧世代 と 比較 し た場合の機能
7 シ リ ーズ FPGA DSP48E1 ス ラ イ ス は、 Virtex®-6 FPGA DSP48E1 ス ラ イ ス と 機能的に等価で完
全な互換性があ り 、Virtex-5 FPGA DSP48E ス ラ イ ス [参照 1] の上位セ ッ ト です。7 シ リ ーズ FPGA
DSP48E1 ス ラ イ ス は 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 に関する デザ イ ン変更は一切不要です。
10
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (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 のすべてか、 い
ずれか を使用す る
•
加算器ま たは論理ユニ ッ ト のみを使用す る 場合は、 消費電力削減のために
NONE に設定す る
•
パフ ォーマ ン ス の最大化お よ び消費電力の最小化のため、 フ ァ ブ リ ッ ク ではな く 専用 リ ソ ース
を使用 し て カ ス ケー ド 接続 し 、 使用す る カ ラ ムは 1 つに留め る
•
デザ イ ンに時分割多重化を使用す る こ と を検討す る
USE_MULT
ロ
を
設計手法の詳細は、 第 3 章 「DSP48E1 のデザ イ ン上の留意点」 を参照 し て く だ さ い。
ス タ ッ ク ド シ リ コ ン イ ン タ ー コ ネ ク ト (SSI)
イ ン タ ーポーザー (SLR : Super Logic Region の境界) を越えて DSP ス ラ イ ス を カ ス ケー ド 接続す
る こ と はで き ません。 SSI テ ク ノ ロ ジの詳細は、 『ザ イ リ ン ク ス の ス タ ッ ク ド シ リ コ ン イ ン タ ー コ
ネ ク ト テ ク ノ ロ ジで飛躍的な FPGA 容量、帯域幅、電力効率を実現』 (WP380) を参照 し て く だ さ い。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
11
第 1 章 : 概要
12
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (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 FPGA
DSP48E1 ス ラ イ ス と 機能的に同等であ り 、『Virtex-5 FPGA XtremeDSP ユーザー ガ イ ド 』 [参照 1]
で説明 さ れてい る Virtex-5 デバ イ ス の DSP48E ス ラ イ ス を拡張 し た も のです。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
13
第 2 章 : DSP48E1 の説明および詳細
X-Ref Target - Figure 2-1
CARRYCASCOUT*
BCOUT*
ACOUT*
18
48
MULTSIGNOUT*
A:B
30
ALUMODE
18
4
B
Dual B Register
B
MULT
25 X 18
30
A
D
25
30
48
X
P
M
0
1
25
Y
P
4
CARRYOUT
48
P
C
48
INMODE
0
30
Dual A, D,
and Pre-adder
4
P
18
18
A
PCOUT*
0
C
P
17-Bit Shift
1
PATTERNBDETECT
Z
17-Bit Shift
5
PATTERNDETECT
CREG/C Bypass/Mask
3
MULTSIGNIN*
CARRYIN
OPMODE
7
CARRYCASCIN*
CARRYINSEL
48
BCIN*
ACIN*
PCIN*
*These signals are dedicated routing paths internal to the DSP48E1 column. They are not accessible via fabric routing resources.
UG369_c1_01_052109
図 2-1 : 7 シ リ ーズ FPGA 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 ス ラ イ ス は収束丸め込み と 対称丸め込み、 タ ー
14
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
DSP48E1 ス ラ イ スの機能
ミ ナル カ ウ ン ト 検出 と カ ウ ン タ ーの自動 リ セ ッ ト 、 お よ びシーケ ン シ ャ ル ア キ ュ ム レー タ のオー
バーフ ロ ー / ア ン ダーフ ロ ー検出をサポー ト し ます。
7 シ リ ーズ FPGA DSP48E1 ス ラ イ ス の ALU フ ァ ン ク シ ョ ンは、 Virtex-6 FPGA DSP48E1 ス ラ イ
ス の も の と 同 じ です。 詳細は、 35 ページの 「ALUMODE 入力」 を参照 し て く だ さ い。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
15
第 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
BCOUT
18
X MUX
18
B
B2
18
B MULT
B1
BCIN
18
CEB2 RSTB
CEB1 RSTB
BCOUT*
ACOUT*
18
48
CARRYCASCOUT*
INMODE[4]
MULTSIGNOUT*
A:B
30
ALUMODE
18
B
D
MULT
25 X 18
30
P
48
X
0
4
P
M
CARRYOUT
30
Dual A, D,
and Pre-adder
18
4
18
Dual B RegisterB
A
PCOUT*
0
1
25
Y
48
P
P
30
25
C
48
1
4
0
C
17-Bit Shift
PATTERNDETECT
PATTERNBDETECT
Z
17-Bit Shift
5
INMODE
P
CREG/C Bypass/Mask
3
MULTSIGNIN*
CARRYIN
OPMODE
CARRYINSEL
7
CARRYCASCIN*
ACOUT
BCIN*
48
30
ACIN*
X MUX
PCIN*
30
A
A2
30
CEA1 RSTA
25
INMODE[1]
A1
ACIN
CEA2 RSTA
INMODE[0]
A MULT
+
D
D
25
–
AD
25
25
INMODE[2]
INMODE[3]
CEAD RSTD
CED RSTD
UG369_c1_02_072209
図 2-2 : 7 シ リ ーズ DSP48E1 ス ラ イ スの入力レ ジス タ と 前置加算器の階層図
16
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (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 段目の加算器へのキ ャ リ ーア ウ ト
•
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
大規模な加算器/減算器
japan.xilinx.com
17
第 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 ス ラ イ ス出力が一
致 し てい る か検出 し ます。
18
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (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 個です。
X-Ref Target - Figure 2-3
Interconnect
DSP48E1
Slice
DSP48E1
Slice
UG479_c1_03_060910
図 2-3 : DSP48E1 のイ ン タ ー コ ネ ク ト と 関連する エ レ メ ン ト のサイ ズ
7 シ リ ーズ デバ イ ス には、 デバ イ ス あた り 60 ~ 3,600 の DSP ス ラ イ スがあ り 、 数十 GMAC/s か ら
数千 GMAC/s ( ピー ク ) の圧倒的な処理性能を発揮 し 、 負荷が き わめて大 き い DSP アプ リ ケーシ ョ
ンに対応 し ます。 表 2-1 に、 7 シ リ ーズの各デバ イ ス の DSP48E1 ス ラ イ ス数を示し ます。 Artix-7、
Kintex-7、 Virtex-7 フ ァ ミ リ の情報は、 japan.xilinx.com か ら デバ イ ス一覧表を参照し て く だ さ い。
表 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
デバイ ス
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
19
第 2 章 : DSP48E1 の説明および詳細
表 2-1 : 7 シ リ ーズの各デバイ スの DSP48E1 ス ラ イ ス数 (続き )
デバイ スあた り の
デバイ スあた り の
カ ラ ムあた り の
DSP48E1 ス ラ イ ス数
DSP48E1 カ ラ ム数
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 ス ラ イ ス があ り ます。
20
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
DSP48E1 ス ラ イ スのプ リ ミ テ ィ ブ
DSP48E1 ス ラ イ スのプ リ ミ テ ィ ブ
図 2-4 に、 DSP48E1 のプ リ ミ テ ィ ブ を示 し ます。 こ の図では、 DSP48E1 ス ラ イ ス の入力お よ び出
力ポー ト を示 し 、各ポー ト のビ ッ ト 幅 も 示 し てい ます。表 2-2 で各ポー ト について説明 し てい ます。
X-Ref Target - Figure 2-4
30
18
48
25
7
4
3
5
A[29:0]
B[17:0]
C[47:0]
D[24:0]
OPMODE[6:0]
ALUMODE[3:0]
CARRYIN
CARRYINSEL[2:0]
INMODE[4:0]
CEA 1
CEA 2
CEB 1
CEB 2
CEC
CED
CEM
CEP
CEAD
CEALUMODE
CECTRL
CECARRYIN
CEINMODE
ACOUT[29:0]
BCOUT[17:0]
PCOUT[47:0]
30
18
48
P[47:0]
48
CARRYOUT[3:0]
CARRYCASCOUT
MULTSIGNOUT
4
PATTERNDETECT
PATTERNBDETECT
OVERFLOW
UNDERFLOW
RSTA
RSTB
RSTC
RSTD
RSTM
RSTP
RSTCTRL
RSTALLCARRYIN
RSTALUMODE
RSTINMODE
CLK
30
18
48
ACIN[29:0]
BCIN[17:0]
PCIN[47:0]
CARRYCASCIN
MULTSIGNIN
UG369_c1_04_051209
図 2-4 : DSP48E1 ス ラ イ スのプ リ ミ テ ィ ブ
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
21
第 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 (入力) レ ジ ス タ 用の ク ロ ッ ク イ ネーブル
22
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
DSP48E1 ス ラ イ スのプ リ ミ テ ィ ブ
表 2-2 : 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
入力
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
1
INMODE (制御入力) レ ジ ス タ 用の リ セ ッ ト
japan.xilinx.com
23
第 2 章 : DSP48E1 の説明および詳細
表 2-2 : 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 です。
簡略 さ れた 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 ス
ラ イ ス は、 こ のパ タ ーン検出器に よ っ て、 カ ウ ン ト が最大値に達 し た と き の偶数丸め込みやカ ウ ン
タ ー自動 リ セ ッ ト 、 お よ びア キ ュ ム レー タ でのオーバーフ ロ ー / ア ン ダーフ ロ ー /飽和をサポー ト し
24
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (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 ビ ッ
ビ ッ ト は、 乗算動作中 は 無効 で す。 OPMODE、 ALUMODE、
ト に な り ま す。 CARRYOUT
CARRYINSEL、 お よ び CARRYIN の組み合わせに よ っ て、 加算器/減算器 ま たは論理ユニ ッ ト の
フ ァ ン ク シ ョ ン を制御 し ます。
X-Ref Target - Figure 2-5
OPMODE Controls Behavior
P
A:B
X
D
+
A
X
B
Y
All 1s
P
C
All 0s
PCIN
Z
OPMODE, CARRYINSEL,
and ALUMODE Control
Behavior
Shifters
UG369_c1_05_051209
図 2-5 : DSP ス ラ イ ス動作の簡略図
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
25
第 2 章 : DSP48E1 の説明および詳細
DSP48E1 ス ラ イ スの属性
こ のセ ク シ ョ ン では、 DSP48E1 ス ラ イ ス の合成属性について説明 し ます。 属性は制御お よ びデー
タ パス上のパ イ プ ラ イ ン レ ジ ス タ を呼び出 し 、 属性値はパ イ プ ラ イ ン レ ジ ス タ の段数を示 し ます。
表 2-3 を参照 し て く だ さ い。
表 2-3 : 属性設定の説明
属性名
設定 (デ フ ォル ト )
属性の説明
0、 1、 2 (1)
AREG と 併用 し 、 A カ ス ケー ド パス (ACOUT) 上の A 入力レ ジ
ス タ 数を選択 し ます。 値は AREG と 同 じ か 1 つ少な く な り ます。
レ ジ ス タ 制御属性
ACASCREG
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
26
TRUE、 FALSE (FALSE)
前置加算器 と D ポー ト を使用す る か ど う か指定 し ます。
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
簡略 さ れた DSP48E1 ス ラ イ ス動作
表 2-3 : 属性設定の説明 (続き )
属性名
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 ス ラ イ ス に偶数丸め込みを イ ン プ
リ メ ン ト する 場合に使用で き ます。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
27
第 2 章 : DSP48E1 の説明および詳細
表 2-3 : 属性設定の説明 (続き )
属性名
SEL_PATTERN
USE_PATTERN_DETECT
設定 (デ フ ォル ト )
属性の説明
PATTERN、 C
(PATTERN)
マ ス ク フ ィ ール ド 用の入力 ソ ース を選択 し ます。 こ の入力 ソ ース
は、48 ビ ッ ト の動的 「C」入力ま たは 48 ビ ッ ト の静的な属性値項目。
NO_PATDET、 PATDET
(NO_PATDET)
PATDET、 使用 さ れていない場合は NO_PATDET に設定 し ます。
パ タ ー ン 検出器お よ び関連す る 機能 が 使用 さ れ て い る 場合 は
こ の属性は、 ス ピー ド 仕様お よ びシ ミ ュ レーシ ョ ン モデルにのみ
使用 さ れます。
表 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 で同期 リ セ ッ ト さ れます。
28
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
簡略 さ れた DSP48E1 ス ラ イ ス動作
表 2-4 : 内部レ ジ ス タ の説明 (続き )
レ ジス タ
説明および関連する属性
OPMODE レ ジ ス タ
OPMODE 制御信号用のオプシ ョ ンのパ イ プ ラ イ ン レ ジ ス タ です。 OPMODEREG で選択
さ れ、 CECTRL で有効にな り 、 RSTCTRL で同期 リ セ ッ ト さ れます。
出力レ ジ ス タ
P、 OVERFLOW、 UNDERFLOW、 PATTERNDETECT、 PATTERNDETECT、 お よ び
CARRYOUT 出力用のオプシ ョ ンのレ ジ ス タ です。 PREG で選択 さ れ、 CEP で有効にな り 、
RSTP で同期 リ セ ッ ト さ れます。 PCOUT、 CARRYCASCOUT、 お よ び MULTSIGNOUT
も 同 じ レ ジ ス タ か ら 同期出力 さ れ、 次の DSP48E1 ス ラ イ スへ接続 し ます。
入力ポー ト
A 、 B 、 C 、 CARRYIN 、 CARRYINSEL 、 OPMODE 、 BCIN 、 PCIN 、 ACIN 、 ALUMODE 、
CARRYCASCIN、 MULTSIGNIN、 お よ び対応す る ク ロ ッ ク イ ネーブル入力お よ び リ セ ッ ト 入力
は、 従来の フ ァ ミ リ と 共通のポー ト です。 D ポー ト と INMODE ポー ト は DSP48E1 ス ラ イ ス固有
です。
こ の セ ク シ ョ ン で は、 DSP48E1 ス ラ イ ス の入力ポー ト につい て 詳 し く 説明 し ま す。 図 2-6 に、
DSP48E1 ス ラ イ ス の入力ポー ト を示 し ます。
X-Ref Target - Figure 2-6
CARRYCASCOUT*
48
ACOUT*
18
MULTSIGNOUT*
A:B
30
ALUMODE
4
18
B
18
MULT
25 X 18
30
0
48
P
18
0
1
25
Dual A, D,
and Pre-adder
X
M
30
D 25
P
18
Dual B Register
A
PCOUT*
Y
P
4
CARRYOUT
48
P
30
C
48
P
17-Bit Shift
1
4
INMODE
CARRYIN
OPMODE
CARRYINSEL
0
C
PATTERNBDETECT
Z
17-Bit Shift
5
PATTERNDETECT
3
CREG/C Bypass/Mask
MULTSIGNIN*
7
CARRYCASCIN*
48
BCIN*
ACIN*
PCIN*
*These signals are dedicated routing paths internal to the DSP48E1 column. They are not accessible via fabric routing resources.
UG369_c1_06_052109
図 2-6 : DSP48E1 ス ラ イ スの入力ポー ト
A、 B、 C、 および D ポー ト
DSP48E1 ス ラ イ ス の入力デー タ ポー ト は、一般的な DSP お よ び演算アルゴ リ ズ ム を多数サポー ト
し てい ます。 DSP48E1 ス ラ イ ス には、 4 つの直接入力デー タ ポー ト (A、 B、 C、 D) があ り ます。
A デー タ ポー ト は 30 ビ ッ ト 幅、 B デー タ ポー ト は 18 ビ ッ ト 幅、 C デー タ ポー ト は 48 ビ ッ ト 幅、
前置加算器 D デー タ ポー ト は 25 ビ ッ ト 幅です。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
29
第 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
ACOUT
30
X MUX
30
A
0
A2
30
ACIN
25
INMODE[1]
A1
1
CEA1 RSTA
CEA2 RSTA
INMODE[0]
A MULT
+
D
D
25
–
AD
25
25
INMODE[2]
INMODE[3]
CEAD RSTD
CED RSTD
UG369_c1_07_040914
図 2-7 : デ ュ アル A、 D、 および前置加算器のロ ジ ッ ク
30
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
簡略 さ れた DSP48E1 ス ラ イ ス動作
X-Ref Target - Figure 2-8
BCOUT
18
X MUX
18
B
0
B2
18
B MULT
B1
BCIN
1
CEB2 RSTB
CEB1 RSTB
18
INMODE[4]
UG369_c1_08_040914
図 2-8 : デ ュ アル B レ ジ ス タ のロ ジ ッ ク
表 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 です。
表 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)
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
31
第 2 章 : DSP48E1 の説明および詳細
表 2-5 : INMODE[3:0] の機能 (AREG が 1 または 2 の場合) (続き )
INMODE[3] INMODE[2] INMODE[1] INMODE[0] USE_DPORT
乗算器 A ポー ト
1
1
1
0
TRUE
D
1
1
1
1
TRUE
D
注記 :
1. 前置加算器は飽和を サポー ト し ていないため、 前置加算器がオーバーフ ロ ー も し く はア ン ダーフ ロ ー し な
い よ う 、 D お よ び A1/A2 ポー ト にデー タ を入力 し ます。 41 ページの 「前置加算器」 を参照 し て く だ さ い。
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 に示す よ う に指定 し ます。
表 2-6 : INMODE[4] の値 と 乗算器 B ポー ト (BREG が 1 または 2 の場合)
INMODE[4]
乗算器 B ポー ト
0
B2
1
B1
48 ビ ッ ト の C ポー ト は、 Y お よ び Z マルチプ レ ク サー共通の入力 と し て使用 さ れ、 加算、 減算、 3
入力加算/減算、 お よ び ロ ジ ッ ク フ ァ ン ク シ ョ ン を実行 し ます。 ま た、 C 入力をパ タ ーン検出器に
接続す る と 、 丸め込み機能 も イ ンプ リ メ ン ト 可能です。 図 2-9 に、 C ポー ト ロ ジ ッ ク を示 し ます。
CREG 属性を使用 し て、 C 入力デー タ パス のパ イ プ ラ イ ン数を選択 し ます。
X-Ref Target - Figure 2-9
48
C
48
CEC
D
EN
48
C Input to
Y and Z
Multiplexers and
Pattern Detector
RST
RSTC
UG369_c1_09_051209
図 2-9 : C ポー ト ロ ジ ッ ク
32
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
簡略 さ れた DSP48E1 ス ラ イ ス動作
OPMODE、 ALUMODE、 および CARRYINSEL ポー ト ロ ジ ッ ク
OPMODE、 ALUMODE、 お よ び CARRYINSEL ポー ト の ロ ジ ッ ク は、 フ ロ ー ス ルー ま たは レ ジ
ス タ を介す る 入力制御信号をサポー ト し ます。 コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト で制御 さ れ る マルチ
プ レ ク サーが、 オプシ ョ ン と し ての レ ジ ス タ 使用を選択 し ま す。 制御ポー ト レ ジ ス タ に よ り 、 ク
ロ ッ ク 周波数を増加 (パ フ ォ ーマ ン ス 向上) さ せ る こ と が可能にな り ますが、 デー タ レ イ テ ン シ と
い う ト レー ド オ フ が生 じ ます。 レ ジ ス タ には独立 し た ク ロ ッ ク イ ネーブル と リ セ ッ ト 信号があ り ま
す。 OPMODE お よ び CARRYINSEL レ ジ ス タ は RSTCTRL で リ セ ッ ト さ れ、 ALUMODE は
RSTALUMODE で リ セ ッ ト さ れます。図 2-10 に、ク ロ ッ ク イ ネーブル と OPMODE、ALUMODE、
お よ び CARRYINSEL ポー ト ロ ジ ッ ク を示 し ます。
X-Ref Target - Figure 2-10
OPMODE
CECTRL
7
7
1
D
EN
To the X, Y, Z
Multiplexers and
3-Input Adder/Subtracter
RST
RSTCTRL
ALUMODE
CEALUMODE
1
4
4
1
D
EN
To Adder/Subtracter
RST
RSTALUMODE
CARRYINSEL
1
3
3
D
EN
To Carry Input
Select Logic
RST
UG369_c1_10_051209
図 2-10 : OPMODE、 ALUMODE、 および CARRYINSEL ポー ト ロ ジ ッ ク
X、 Y、 および Z マルチ プ レ クサー
OPMODE (動作モー ド ) 制御入力には、 X、 Y、 お よ び Z マルチプ レ ク サー選択用の フ ィ ール ド が
あ り ます。
OPMODE 入力に よ っ て、 ク ロ ッ ク サ イ ク ルの切 り 替えに伴い、 DSP48E1 の機能を動的に変更で
き ます (与え ら れた計算シーケ ン ス に基づ く 、 DSP48E1 ス ラ イ ス の内部デー タ パ ス コ ン フ ィ ギ ュ
レーシ ョ ンの変更な ど )。
OPMODE ビ ッ ト は、OPMODEREG 属性を使用 し てオプシ ョ ンの レ ジ ス タ を設定で き ます (表 2-3
参照)。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
33
第 2 章 : DSP48E1 の説明および詳細
表 2-7、 表 2-8、 お よ び表 2-9 に、 OPMODE で使用可能な値お よ び 3 つのマルチプ レ ク サー (X、
Y お よ び Z) の出力結果を示 し ます。 マルチプ レ ク サー出力は 3 つのオペ ラ ン ド を加算器/減算器へ
送信 し ます。 マルチプ レ ク サー セ レ ク ト ビ ッ ト のすべての組み合わせが可能ではあ り ません。 「違
反セ レ ク シ ョ ン」 と 記載 さ れてい る 組み合わせは不定結果が生 じ ます。 乗算出力が選択 さ れてい る
場合は、 X お よ び Y マルチプ レ ク サーを使用 し て乗算部分積が加算器/減算器へ送信 さ れます。
表 2-7 : OPMODE の制御ビ ッ ト および X マルチ プ レ クサー出力
Z
OPMODE[6:4]
Y
OPMODE[3:2]
X
OPMODE[1:0]
X
マルチ プ レ クサー出力
xxx
xx
00
0
デフ ォ ル ト
xxx
01
01
M
OPMODE[3:2] = 01 で選択す る 必
メモ
要があ る
xxx
xx
10
P
xxx
xx
11
A:B
PREG = 1 で選択する 必要があ る
48 ビ ッ ト 幅
表 2-8 : OPMODE の制御ビ ッ ト および Y マルチ プ レ クサー出力
Z
OPMODE[6:4]
Y
OPMODE[3:2]
X
OPMODE[1:0]
Y
マルチ プ レ ク サー出力
xxx
00
xx
0
xxx
01
01
M
メモ
デフ ォ ル ト
OPMODE[1:0] = 01 で選択する 必
要があ る
xxx
10
xx
48'FFFFFFFFFFFF
xxx
11
xx
C
主に X お よ び Z マルチプ レ ク サー
上での論理ユ ニ ッ ト の ビ ッ ト 単位
操作で使用 さ れ る
表 2-9 : OPMODE の制御ビ ッ ト および Z マルチ プ レ クサー出力
34
Z
OPMODE[6:4]
Y
OPMODE[3:2]
X
OPMODE[1:0]
Z
マルチ プ レ クサー出力
000
xx
xx
0
001
xx
xx
PCIN
010
xx
xx
P
011
xx
xx
C
100
10
00
P
101
xx
xx
17 ビ ッ ト シ フ ト
(PCIN)
110
xx
xx
17 ビ ッ ト シ フ ト (P)
111
xx
xx
xx
japan.xilinx.com
メモ
デフ ォ ル ト
PREG = 1 で選択す る 必要があ る
MACC
拡張に のみ使用す る。
PREG = 1 で選択す る 必要があ る
PREG = 1 で選択す る 必要があ る
違反セ レ ク シ ョ ン
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (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-10 : 3 入力 ALUMODE 演算
OPMODE[6:0]
DSP 演算
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 です。
2 入力 ALUMODE 演算については、 43 ページの表 2-13 お よ び 58 ページの図 A-3 を参照 し て く
だ さ い。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
35
第 2 章 : DSP48E1 の説明および詳細
キ ャ リ ー入力ロ ジ ッ ク
7 シ リ ーズ デバ イ ス の場合、 キ ャ リ ー入力 ロ ジ ッ ク の結果は、 3 ビ ッ ト 幅の CARRYINSEL 信号の
フ ァ ン ク シ ョ ン にな り ます。 図 2-11 に、 キ ャ リ ー入力 ロ ジ ッ ク の入力を示 し ま す。 加算器お よ び
減算器用の結果を生成す る キ ャ リ ー入力は、 常に ク リ テ ィ カル パ ス上にあ り ます。 こ の ロ ジ ッ ク を
シ リ コ ン上に イ ンプ リ メ ン ト す る こ と で、 高パフ ォーマ ン ス が実現 し ます。 キ ャ リ ー ロ ジ ッ ク への
キ ャ リ ー入力は、 常に X、 Y、 お よ び Z マルチプ レ ク サーの出力の前に 「収集」 さ れ る ため、 7 シ
リ ーズ デバ イ ス では、 CARRYIN は OPMODE の影響を受け ません。
X-Ref Target - Figure 2-11
Fabric CARRYIN
3
RSTALLCARRYIN
CECARRYIN
RST
D
CE
CARRYINSEL
000
Large Add/Sub/Acc CARRYCASCIN
(Parallel Op)
Large Add/Sub/Acc CARRYCASCOUT
(Seq Op)
A[24] XNOR B[17]
Round A * B
010
100
RSTALLCARRYIN
CEM
RST
D
CE
110
CIN
111
Round Output
Inverted P[47]
101
011
Inverted PCIN[47]
001
UG369_c1_11_051209
図 2-11 : CARRYINSEL ポー ト ロ ジ ッ ク
図 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 入力 MSB
PCIN[47] を選択 し ます。
36
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
簡略 さ れた DSP48E1 ス ラ イ ス動作
表 2-11 に、 3 つのキ ャ リ ー入力セ レ ク ト ビ ッ ト (CARRYINSEL) お よ び結果のキ ャ リ ー入力ま た
は ソ ース を示 し ます。
表 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 で選択する 必要があ る
出力ポー ト
こ のセ ク シ ョ ン では、 7 シ リ ーズ FPGA DSP48E1 ス ラ イ ス の出力ポー ト について詳 し く 説明 し ま
す。 図 2-12 に、 DSP48E1 ス ラ イ ス の出力ポー ト を示 し ます。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
37
第 2 章 : DSP48E1 の説明および詳細
X-Ref Target - Figure 2-12
CARRYCASCOUT*
BCOUT*
ACOUT*
18
48
MULTSIGNOUT*
A:B
30
ALUMODE
4
18
B
18
D
MULT
25 X 18
30
25
30
P
0
X
4
P
M
30
Dual A, D,
and Pre-adder
0
1
25
C
48
1
4
Y
P
0
C
P
17-Bit Shift
17-Bit Shift
5
CARRYOUT
48
P
PATTERNDETECT
PATTERNBDETECT
Z
INMODE
CARRYIN
48
18
Dual B Register
A
PCOUT*
CREG/C Bypass/Mask
3
MULTSIGNIN*
OPMODE
CARRYINSEL
7
CARRYCASCIN*
48
BCIN*
ACIN*
PCIN*
*These signals are dedicated routing paths internal to the DSP48E1 column. They are not accessible via fabric routing resources.
UG369_c1_12_052109
図 2-12 : DSP48E1 ス ラ イ スの出力ポー ト
ACOUT お よ び BCOUT を除 く すべての出力ポー ト は、 RSTP で リ セ ッ ト さ れ、 CEP で イ ネーブ
ルにな り ま す (図 2-13 参照)。 ACOUT と BCOUT は、 RSTA お よ び RSTB (図 2-7 お よ び図 2-8
参照) でそれぞれ リ セ ッ ト さ れます。
X-Ref Target - Figure 2-13
P/PCOUT/MULTSIGNOUT/
CARRYCASCOUT/
CARRYOUT/
PATTERNDETECT/
PATTERNBDETECT
CEP
D
EN
DSP48E1
Slice Output
Q
RST
RSTP
UG369_c1_13_051209
図 2-13 : 出力ポー ト のロ ジ ッ ク
P ポー ト
各 DSP48E1 ス ラ イ ス には、 48 ビ ッ ト 幅の出力ポー ト P があ り ます。 こ の出力は、 内部 PCOUT パ
ス を使用 し て隣接す る DSP48E1 ス ラ イ スへ接続 ( カ ス ケー ド 接続) で き ます。 PCOUT は、 隣接す
る DSP48E1 ス ラ イ ス内の Z マルチプ レ ク サー (PCIN) の入力へ接続 し ます。 こ のパ ス に よ り 、 隣
接す る DSP48E1 ス ラ イ ス間で出力ス ト リ ーム を カ ス ケー ド 接続で き ます。
38
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (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) の コ ン フ ィ ギ ュ レーシ ョ ン が使用 さ れ る 場合、 あ る いは乗算器が
使用 さ れ る 場合は、 キ ャ リ ーア ウ ト 信号は有効ではあ り ません。
表 2-12 : 各種 SIMD モー ド と CARRYOUT ビ ッ ト の対応
SIMD モー ド
加算器のビ ッ ト 幅
対応するキ ャ リ ーアウ ト
P[11:0]
CARRYOUT[0]
P[23:12]
CARRYOUT[1]
P[35:24]
CARRYOUT[2]
P[47:36]
CARRYOUT[3]
P[23:0]
CARRYOUT[1]
P[47:24]
CARRYOUT[3]
P[47:0]
CARRYOUT[3]
FOUR12
TWO24
ONE48
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」 を参照 し て く だ さ い。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
39
第 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 レ ジ ス タ を有効にす る 必
要があ り ます。 詳細は、 「エンベデ ッ ド フ ァ ン ク シ ョ ン」 を参照 し て く だ さ い。
40
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
簡略 さ れた DSP48E1 ス ラ イ ス動作
エ ンベデ ッ ド フ ァ ン ク シ ョ ン
7 シ リ ーズ デバ イ ス に組み込ま れた フ ァ ン ク シ ョ ン には、 25 x 18 乗算器、 加算器/減算器/論理ユ
ニ ッ ト 、 お よ びパ タ ーン検出器 ロ ジ ッ ク が含まれます (図 2-14 参照)。
X-Ref Target - Figure 2-14
CARRYCASCOUT*
48
ACOUT*
18
MULTSIGNOUT*
A:B
ALUMODE
30
4
18
B
Dual B Register
18
A
30
D
25
MULT
25 X 18
0
P
P
M
30
0
1
25
Dual A, D,
and Pre-adder
C
48
P
4
CARRYOUT
48
P
PATTERNDETECT
PATTERNBDETECT
Z
17-Bit Shift
5
INMODE
P
17-Bit Shift
1
4
Y
0
C
48
X
30
18
PCOUT*
CREG/C Bypass/Mask
3
MULTSIGNIN*
CARRYIN
OPMODE
CARRYINSEL
7
CARRYCASCIN*
48
BCIN*
ACIN*
PCIN*
*These signals are dedicated routing paths internal to the DSP48E1 column. They are not accessible via fabric routing resources.
UG369_c1_14_052109
図 2-14 : DSP48E1 ス ラ イ スのエ ンベデ ッ ド フ ァ ン ク シ ョ ン
前置加算器
7 シ リ ーズ FPGA DSP ス ラ イ ス には、 25 ビ ッ ト 前置加算器が搭載 さ れてい ます。 前置加算器は、 A
レ ジ ス タ パ ス (図 2-14 お よ びその拡大図の 30 ページの図 2-7 参照) にあ り ます。 前置加算器を使
用す る こ と で、 乗算器への入力前に加算や減算を行 う こ と が可能にな り ます。 前置加算器は飽和演
算 ロ ジ ッ ク を持たないため、 演算中にオーバーフ ロ ーま たはア ン ダーフ ロ ー し ない よ う 、 入力オペ
ラ ン ド を 24 ビ ッ ト の 2 の補数の符号拡張デー タ に制限す る 必要があ り ます。 ま た、 D を乗算器へ
の新 し い入力パ ス に し て、 前置加算器をバ イ パ スす る こ と も 可能です。 D パ ス を使用 し ない場合、
A パ イ プ ラ イ ン の出力は乗算器への入力前にネゲー ト で き ま す。 前置加算器ブ ロ ッ ク には最大 10
の動作モー ド があ り 、 き わめて柔軟に活用で き ます。
式 2-2 では、 A と D が前置加算器/減算器を介 し て最初に加算 さ れます。 その結果が B に乗算 さ れ
た後、 乗算結果が C 入力に加算 さ れます。 こ の論理式に よ り 、 対称フ ィ ル タ ーが効率化 さ れます。
Adder/Subtracter Output = C ± ( B × ( D ± A ) + C IN )
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
式 2-2
41
第 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 ク ロ ッ ク 分の レ イ テ ン シが生 じ ますがパフ ォーマ ン ス は向上 し ます。
X-Ref Target - Figure 2-15
43
A or AD
B
Partial Product 1
86
X
43
Partial Product 2
Optional
MREG
UG369_c1_15_051209
図 2-15 : 2 の補数乗算器 と オプ シ ョ ンの MREG
加算器/減算器または論理ユニ ッ ト
加算器/減算器ま たは論理ユニ ッ ト の出力は、制御入力 と デー タ 入力で決定 さ れます (図 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 マルチプ レ ク サーの
出力を選択 し ます。
42
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
簡略 さ れた DSP48E1 ス ラ イ ス動作
表 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
SIMD (単一命令複数デー タ ) モー ド
こ の分割 さ れたセグ メ ン ト 間のキ ャ リ ー伝搬はブ ロ ッ ク さ れ、 すべてのセグ メ ン ト に対す る 独立動
作を確実に し ます。加算器/減算器/ ア キ ュ ム レー タ は、4 つの 12 ビ ッ ト 加算器/減算器/ ア キ ュ ム レー
タ ま たは 2 つの 24 ビ ッ ト 加算器/減算器/ ア キ ュ ム レー タ に分割する こ と が可能で、各セグ メ ン ト に
はキ ャ リ ーア ウ ト 信号があ り ます。 ダ イ ナ ミ ッ ク OPMODE タ イ プ制御 と は対照的に、 SIMD モー
ド 分割は ス タ テ ィ ッ ク コ ン フ ィ ギ ュ レーシ ョ ンです (図 2-16 参照)。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
43
第 2 章 : DSP48E1 の説明および詳細
X-Ref Target - Figure 2-16
0
A:B
P
X
[47:0]
[47:36]
P[47:36], CARRYOUT[3]
[35:24]
0
1
P[35:24], CARRYOUT[2]
Y
C
[23:12]
P[23:12], CARRYOUT[1]
0
PCIN
Z
P
[11:0]
[47:0]
P[11:0], CARRYOUT[0]
C
ALUMODE[3:0]
UG369_c1_16_051209
図 2-16 : 4 つの 12 ビ ッ ト SIMD 加算器コ ン フ ィ ギ ュ レーシ ョ ン
•
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 参照)。
44
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
簡略 さ れた DSP48E1 ス ラ イ ス動作
X-Ref Target - Figure 2-17
P
P
PATTERNBDETECTPAST(1)
PATTERNBDETECT
SEL_PATTERN
PATTERNDETECTPAST(1)
C (Register)
PATTERNDETECT
PATTERN
C Shift by 2, 00 (Mode 2)
C Shift by 1, 0 (Mode 1)
C (Register)
PATTERN = 48’b00000000...
MASK
= 48’b00111111...
MASK
SEL_MASK
SEL_MASK
Notes:
1. Denotes an internal signal.
UG369_c1_17_051209
図 2-17 : パ タ ーン検出器ロ ジ ッ ク
パ タ ーン検出器を使用 し て実行可能な アプ リ ケーシ ョ ン を次に示 し ます。
•
オプシ ョ ンのマ ス ク 付 き パ タ ーン検出
•
ダ イ ナ ミ ッ ク 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 入力で設定 し た値を使用 し ます。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
45
第 2 章 : DSP48E1 の説明および詳細
オーバー フ ローおよびア ン ダー フ ロー ロ ジ ッ ク
こ こ で説明す る オーバーフ ロ ー / ア ン ダーフ ロ ーの内容は、 1 つの DSP48E1 ス ラ イ ス に イ ンプ リ メ
ン ト さ れた シーケ ン シ ャ ル ア キ ュ ム レー タ (MACC ま たは加算器/ ア キ ュ ム レー タ ) に当ては ま り
ま す。 ア キ ュ ム レ ー タ には 1 ビ ッ ト 以上の ガー ド ビ ッ ト が必要です。 パ タ ー ン 検出器が マ ス ク
0011111 …1 (デ フ ォ ル ト 設定) でパ タ ーン = 00000…0 を検出す る よ う に設定 さ れてい る 場合、
DSP48E1 ス ラ イ ス は 00111 … 1 を超え る オーバーフ ロ ー、 ま たは 11000… 0 を下回 る ア ン ダー
フ ロ ーに対 し て フ ラ グ を立て ます。 USE_PATTERN_DETECT 属性を PATDET に設定す る と 、 パ
タ ーン検出 ロ ジ ッ ク の使用が有効にな り ます。 こ のオーバーフ ロ ー / ア ン ダーフ ロ ー イ ン プ リ メ ン
テーシ ョ ンは冗長符号ビ ッ ト を使用 し 、 出力ビ ッ ト 幅を 47 に削減 し ます。
X-Ref Target - Figure 2-18
PATTERNDETECTPAST(1)
PATTTERNBDETECT
PATTTERNDETECT
Overflow
PATTERNBDETECTPAST(1)
PATTERNBDETECT
PATTERNDETECT
Underflow
PATTERN = 48’b00000000...
MASK
= 48’b00111111...
Notes:
1. Denotes an internal signal.
UG369_c1_18_051209
図 2-18 : パ タ ーン検出のオーバー フ ロー / ア ン ダー フ ロー ロ ジ ッ ク
マ ス ク 値を 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-19
x
x
x
x
PD Caused by Overflow
x
0 .. 0000
0 .. 0001
0 .. 0010
0 .. 0011
0 .. 0100
High to Low
Overflow
UG369_c1_19_051209
図 2-19 : パ タ ーン検出のオーバー フ ロー条件
46
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
簡略 さ れた DSP48E1 ス ラ イ ス動作
X-Ref Target - Figure 2-20
x
x
x
x
0 .. 0000
1 .. 1111
PBD Caused by Underflow
1 .. 1110
1 .. 1101
1 .. 1100
1 .. 1010
High to Low
Underflow
UG369_c1_20_051209
図 2-20 : パ タ ーン検出のア ン ダー フ ロー条件
•
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 にな る と ア ン
ダーフ ロ ーがアサー ト さ れます。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
47
第 2 章 : DSP48E1 の説明および詳細
48
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (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 フ ァ ブ リ ッ ク の消費電力を削減で き ます。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
49
第 3 章 : DSP48E1 のデザイ ン上の留意点
加算器ツ リ ー と 加算器カ スケー ド
加算器ツ リ ー
標準的な直接型 FIR フ ィ ル タ ーの場合、 一連の入力サンプルは、 DSP48E1 ス ラ イ ス内の乗算器の
一方の入力に渡 さ れます。 乗算器の も う 一方に係数が提供 さ れます。 複数の乗算器か ら の出力を結
合す る ために、 加算器ツ リ ーが使用 さ れます (図 3-1 参照)。
X-Ref Target - Figure 3-1
h7(n)
18
×
48
+
18
48
h6(n)
18
X(n-4)
Z-2
×
+
18
h5(n)
18
×
48
+
18
48
h4(n)
18
X(n-2)
Z-2
×
18
h3(n)
18
+
×
48
y(n-6)
+
18
48
h2(n)
18
X(n)
Z-2
×
+
The final stages of the post
addition in logic are the
performance bottleneck that
consume more power.
18
h1(n)
18
×
18
48
+
48
h0(n)
X(n)
18
×
18
UG479_c2_01_072210
図 3-1 : 従来型の FIR フ ィ ル タ ーの加算器ツ リ ー
50
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (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 コ ンプ レ ッ サーを示 し ます。
X-Ref Target - Figure 3-2
CY(1)
X(1)
Y(1)
Z(1)
BBUS(0)
SUB/
ADDB
B4 IN4
B3 IN3
ABUS(1)
O6B
0 1
0
1
B2 IN2
BMUX
BBUS(1)
BQ
SUM(1)
AMUX
BBUS(0)
AQ
SUM(0)
B5 IN5
B1 IN1
D Q
VDD
O5B
CK
IN6
BBUS(0)
BX
CY(0)
X(0)
Y(0)
Z(0)
SUB/
ADDB
A4 IN4
A3 IN3
ABUS(0)
O6A
0 1
0
1
A2 IN2
A5 IN5
D Q
VDD
O5A
CK
IN6
SUB/
ADDB
AX
GND
UG479_c2_02_072210
図 3-2 : 3 入力加算器/減算器 (3:2 コ ン プ レ ッ サー )
2 入力キ ャ リ ー カ ス ケー ド 加算器 と 結合 し たデ ュ アル 5LUT (3:2 コ ン プ レ ッ サー と し て コ ン フ ィ
ギ ュ レーシ ョ ン ) は、 必要な数の ス ラ イ ス を縦方向に積み重ね る こ と に よ り 、 図 3-3 に示す よ う に
3 つの N ビ ッ ト 値を加算 し て 1 つの N+2 ビ ッ ト 出力を生成 し ます。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
51
第 3 章 : DSP48E1 のデザイ ン上の留意点
X-Ref Target - Figure 3-3
A
B
C
ABUS
46
46
2-Input
Cascade
Adder
3:2
Compressor
BBUS
46
SUM
48
Left Shift By 1
UG479_c2_03_072210
図 3-3 : 3 入力加算器
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 コ ンプ レ ッ サーを使用す る と 、 入力バ ス数を拡張で き ます。
X-Ref Target - Figure 3-4
A
F
X
45
6:3
Compressor
Y
Z
45
Left Shift By 1
Left Shift By 2
DSP48E1
Slice
SUM
48
DSP48E1
Slice
UG479_c2_04_072210
図 3-4 : 6 入力加算器
図 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
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)
式 3-2
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)
式 3-3
コ ン プ レ ッ サー エ レ メ ン ト お よ びカ ス ケー ド 加算器は、 よ り 大規模な加算器を構築す る ために ツ
リ ー状に配置で き ます。 最後の加算ス テージは DSP48E1 ス ラ イ ス に イ ンプ リ メ ン ト す る 必要があ
り ます。 デザ イ ンの タ イ ミ ン グ条件を満たすため、 必要に応 じ てパ イ プ ラ イ ン レ ジ ス タ を追加 し て
く だ さ い。 こ れ ら の加算器は、 加算器カ ス ケー ド よ り も エ リ ア使用率や電力が高 く な り ます。
加算器カ スケー ド
加算器カ ス ケー ド の イ ンプ リ メ ン ト では、 DSP48E1 ス ラ イ ス のカ ス ケー ド パ ス を使用す る こ と に
よ っ て、 最小限のシ リ コ ン リ ソ ース で加算後処理を実現で き ます。 図 3-5 に示す よ う な カ ス ケー ド
52
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
加算器ツ リ ー と 加算器カ スケー ド
接続手法を使用す る 場合は、 加法演算結果を イ ン ク リ メ ン タ ル (追加的) に計算す る 必要が あ り ま
す。
X-Ref Target - Figure 3-5
Slice 8
h7(n-7)
18
×
+
48
18
48
Y(n–10)
No Wire Shift
48
Slice 7
h6(n-6)
18
×
+
48
18
No Wire Shift
48
Slice 6
h5(n-5)
18
×
+
48
18
No Wire Shift
48
Slice 5
h4(n-4)
18
×
+
48
18
No Wire Shift
48
Slice 4
h3(n-3)
18
×
+
48
The post adders are
contained entirely in
dedicated silicon for
highest performance
and lowest power.
18
No Wire Shift
48
Slice 3
h2(n-2)
18
×
+
48
18
No Wire Shift
48
Slice 2
h1(n-1)
18
×
+
48
18
No Wire Shift
48
Slice 1
h0(n)
X(n)
18
×
+
48
18
Zero
Sign Extended from 36 Bits to 48 Bits
UG479_c2_05_072210
図 3-5 : 加算器カ スケー ド
カ ス ケー ド 接続 さ れた加算器の場合、 正 し い結果を得 る ためには入力サンプルの遅延 と 係数遅延の
均衡が重要 と な り ます。 係数は、 時間の経過に従っ て不安定にな り ます ( ウ ェーブ係数)。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
53
第 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 のエ
リ アお よ び電力の削減にな り ます。
54
•
少ビ ッ ト 幅フ ァ ン ク シ ョ ン を イ ンプ リ メ ン ト す る 場合は、 常に入力オペ ラ ン ド に符号を拡張 し
ます。 フ ァ ブ リ ッ ク の消費電力を低 く 抑え る 場合は、 オペ ラ ン ド 命令に MSB を使用 し 、 LSB
をすべて グ ラ ン ド (GND) に し ます。
•
異な る DSP48E1 ス ラ イ ス を カ ス ケー ド 接続する 場合は、 異な る 信号パス のパ イ プ ラ イ ン ス
テージ を一致 さ せ る 必要があ り ます。
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (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 のデザ イ ンにおけ る 前置加算器 (灰色の部分) の活
用例を示 し てい ます。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
55
第 3 章 : DSP48E1 のデザイ ン上の留意点
X-Ref Target - Figure 3-6
Duplicate Tap Delay
z-8
(SRL16)
x(n)
z-2
z-2
z-2
z-1
h0
z-1
z-2
z-1
z-1
z-1
+
+
+
+
z-1
z-1
z-1
z-1
h1
x
z-1
+
DSP Slice
z-1
h2
x
z-1
z-1
z-1
+
DSP Slice
h3
x
z-1
+
z-1
z-1
x
z-1
z-1
DSP Slice
+
z-1
y(n-8)
DSP Slice
UG479_c2_06_072210
図 3-6 : 8 タ ッ プの偶数対称シ ス ト リ ッ ク FIR
メ モ リ マ ッ プ さ れた I/O レ ジス タ ア プ リ ケーシ ョ ン
DSP48E1 ス ラ イ ス を メ モ リ マ ッ プ さ れた I/O レ ジ ス タ と し て使用す る には、 こ の目的で使用す る
すべての DSP48E1 ス ラ イ ス に接続する 書き 込みデー タ バ ス を ユーザーがブ ロ ー ド キ ャ ス ト す る 必
要が あ り ま す。 読み出 し ア ク セ ス を ラ ン ダ ム にす る には、 多入力マルチプ レ ク サーが必要です。
DSP48E1 ス ラ イ ス を追加 し て多入力マルチプ レ ク サー と し て コ ン フ ィ ギ ュ レーシ ョ ンす る と 、 配
線密集を緩和で き ます。 ア ド レ ス デ コ ーダーは フ ァ ブ リ ッ ク ロ ジ ッ ク に イ ン プ リ メ ン ト し 、 書 き
込みデー タ バ ス か ら 適切な DSP 出力レ ジ ス タ を読み込む よ う に、 各 PREG CE を制御す る 必要が
あ り ます。
56
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
付録 A
CARRYOUT、 CARRYCASCOUT、 およ
び MULTSIGNOUT
CARRYOUT/CARRYCASCOUT
DSP48E1 ス ラ イ ス と フ ァ ブ リ ッ ク キ ャ リ ー チ ェ ーンでは、 減算フ ァ ン ク シ ョ ンの イ ンプ リ メ ン ト
ス タ イ ルが異な り ます。 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
B
0
1
+
A+B
0
Carry Input
A
B
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.)
UG369_A_01_111208
図 A-1 : FPGA ロ ジ ッ ク イ ン タ ー コ ネ ク ト ベースの加算器/減算器
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
57
付録 A : CARRYOUT、 CARRYCASCOUT、 および MULTSIGNOUT
X-Ref Target - Figure A-2
B
0
1
A
+
0
1
Sub/add
Opt. carry input
A +/– (B + optional carry input)
(Carryin available as an input even for subtract operations)
UG369_A_02_111208
図 A-2 : オプ シ ョ ンのキ ャ リ ー入力を使用する加算器/減算器
DSP48E1 ス ラ イ ス は 2 番目の イ ンプ リ メ ン ト を、 CARRYIN 入力を加え た 3 入力加算器で拡張 し
て使用 し ます (図 A-3 参照)。 こ れに よ り DSP48E1 の SIMD 演算では、 小 さ な加算/減算ユニ ッ ト
ご と に CARRYIN を使用する こ と な く 減算処理を実行で き ます。
X-Ref Target - Figure A-3
X
Y
0
1
Z
+
0
1
ALUMODE[0]
CIN
ALUMODE[1]
DSP48E1 Slice Add/Subtract
UG369_A_03_111208
図 A-3 : DSP48E1 ス ラ イ スの 3 入力加算器
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 ス ラ イ ス と フ ァ ブ リ ッ ク の加算器/減算器を併用 し た、 高精度の加算/減算
フ ァ ン ク シ ョ ンの構築が可能にな り ます。
58
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
MULTSIGNOUT と CARRYCASCOUT
MULTSIGNOUT と CARRYCASCOUT
CARRYOUT[3] は乗算に使用すべき ではあ り ません。 DSP48E1 ス ラ イ ス では 1 段目の乗算器で 2
つの部分積が生成 さ れ、 2 段目でそれ ら の和が求め ら れ る か ら です。
DSP のすべての 3 入力加算演算 (乗算/加算、 加算累算を含む) では、精度を完全に維持す る ために、
2 つの CARRYOUT ビ ッ ト が生成 さ れます。 こ れを図 A-4 に示 し ます。
MULTSIGNOUT と CARRYCASCOUT は、MACC_EXTEND 演算用の 2 つのキ ャ リ ー ビ ッ ト と
し て機能 し ます。 MULTSIGNOUT が乗算器の符号ビ ッ ト 、 CARRYCASCOUT がカ ス ケー ド 接続
のキ ャ リ ーア ウ ト ビ ッ ト の場合、 結果は図 A-4 に示す ソ フ ト ウ ェ ア /UNISIM モデル と し て抽象化
さ れます。
X-Ref Target - Figure A-4
Two CARRYOUT bits are produced in the
hardware and are labeled as MULTSIGNOUT
and CARRYCASCOUT in the simulation model.
X
One Bit Carry Out to Fabric
CARRYOUT[3]
Y
+
Z
P[47:0]
CIN
UG369_aA_04_051509
図 A-4 : DSP48E1 の 3 入力加算器
こ のシ ミ ュ レーシ ョ ン モデルの 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 は加算器だけの場合には無効です。
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
japan.xilinx.com
59
付録 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
Software Model
A
MULTSIGNOUT
x
+
CARRYCASCOUT
P[47:0]
B
CARRYIN
Zmux (e.g., C, P, PCIN)
Hardware Implementation
A
x
MULTSIGNOUT
+
CARRYCASCOUT
P[47:0]
B
CARRYIN
Zmux (e.g., C, P, PCIN)
Partial products from the multiply operation are added together in the second stage ternary adder.
UG369_A_05_111208
図 A-5 : MACC のソ フ ト ウ ェ ア と ハー ド ウ ェ アのモデル
60
japan.xilinx.com
7 シ リ ーズ DSP48E1 ユーザー ガ イ ド
UG479 (v1.8) 2014 年 11 月 10 日
Fly UP