...

Spartan-6 FPGA クロック リソース ユーザー ガイド

by user

on
Category: Documents
31

views

Report

Comments

Transcript

Spartan-6 FPGA クロック リソース ユーザー ガイド
Spartan-6 FPGA
ク ロ ッ ク リ ソ ース
[Guide
ユーザーSubtitle]
ガイ ド
[optional]
UG382 (v1.3) 2010 年 2 月 22 日 [optional]
Xilinx is disclosing this user guide, manual, release note, and/or specification (the "Documentation") to you solely for use in the
development of designs to operate with Xilinx hardware devices. You may not reproduce, distribute, republish, download,
display, post, or transmit the Documentation in any form or by any means including, but not limited to, electronic, mechanical,
photocopying, recording, or otherwise, without the prior written consent of Xilinx. Xilinx expressly disclaims any liability
arising out of your use of the Documentation. Xilinx reserves the right, at its sole discretion, to change the Documentation
without notice at any time. Xilinx assumes no obligation to correct any errors contained in the Documentation, or to advise you
of any corrections or updates. Xilinx expressly disclaims any liability in connection with technical support or assistance that may
be provided to you in connection with the Information.
THE DOCUMENTATION IS DISCLOSED TO YOU “AS-IS” WITH NO WARRANTY OF ANY KIND. XILINX MAKES
NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE
DOCUMENTATION, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANY
CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOSS OF
DATA OR LOST PROFITS, ARISING FROM YOUR USE OF THE DOCUMENTATION.
© 2009-2010 Xilinx, Inc. XILINX, the Xilinx logo, Virtex, Spartan, ISE, 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.
改訂履歴
次の表に、 こ の文書の改訂履歴を示 し ます。
日付
バージ ョ ン
2009 年 6 月 24 日
1.0
初版 リ リ ース
2009 年 8 月 17 日
1.1
第 1 章 : 図 1-1 「グ ロ ーバル ク ロ ッ ク 接続の概要」 を削除。 「グ ロ ーバル ク ロ ッ ク イ ン
フ ラ ス ト ラ ク チ ャ 」 の表 1-1 お よ び 表 1-2 を変更。 「バン ク 全体で 1 つの I/O ク ロ ッ ク
を使用」 お よ び 「 ク ロ ッ ク 入力」 の説明 と 、 図 1-5 お よ び 図 1-6 を修正。 23 ページの図
1-8 を追加。 表 1-8 か ら BUFIO2 を削除。 34 ページの 「BUFGMUX_1」 か ら 例外を削
除。 38 ページの 「高速 I/O ク ロ ッ ク リ ージ ョ ンの ク ロ ッ ク バ ッ フ ァ 」 、 表 1-15 お よ び
表 1-16 を追加。 表 1-17 か ら 表 1-23 を更新 し 、 図 1-26、 図 1-27、 図 1-33、 お よ び図
1-31 を追加ま たは修正。 27 ページの 「高速 I/O ク ロ ッ ク ネ ッ ト ワ ー ク 接続の例」 を追
加。
第 2 章 : 表 2-1 お よび表 2-2 の XC6SLX4 リ ソ ース を更新。表 2-3 に メ モを追加 し 、56
ページの 「位相シ フ ト 」 の説明を明確に変更。 表 2-6 の CLKIN_PERIOD の説明を更
新。 「DCM_CLKGEN プ リ ミ テ ィ ブ」 の リ ス ト を更新。 すべての周波数範囲に対 し 表
2-10 を更新。
第 3 章 : 表 3-4 の CLKIN2 お よ び CLKINSEL の説明を更新。 図 3-5 につなが る 説明を
更新。 図 3-15 を編集。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
内容
japan.xilinx.com
UG382 (v1.3) 2010 年 2 月 22 日
日付
バージ ョ ン
内容
2010 年 1 月 4 日
1.2
「 ク ロ ッ ク リ ソ ース」 を明確にす る ために説明を追加。 表 1-1 お よ び表 1-2 を更新。 図
1-2 を追加。 表 1-3、 表 1-4、 お よび表 1-5 を追加。 図 1-5、 図 1-6、 お よび図 1-7 を修
正。 表 1-6 を追加。 「 ク ロ ッ ク 構造のガ イ ド ラ イ ン」 を追加。 「高速 I/O ク ロ ッ ク ネ ッ
ト ワ ー ク 接続の例」 を移動。 図 1-16 を追加。 表 1-12、 図 1-19、 図 1-20 を追加。 表
1-15 にあ る BUFIO2 お よ び BUFIO2_2CLK の 「I/O ク ロ ッ ク ネ ッ ト ワ ー ク 入力」 を
更新。 表 1-15 に GTP_DUAL を追加。 「BUFGMUX_1」 を更新。 表 1-16 の入力定義を
更新。 図 1-26、 図 1-27、 図 1-30 を更新。 表 1-20 の GCLK の説明を更新。 表 1-21 お よ
び表 1-23 に ENABLE_SYNC を追加。
表 1-12、 図 1-15、 図 1-16 を追加。
表 2-8 で SPREAD_SPECTRUM を更新、 CLKFX_MD_MAX お よ び メ モを追加。 「ス
ペ ク ト ラ ム拡散 ク ロ ッ ク 生成」 を更新。
図 3-1 を更新。 式 3-1 の下の BUFIO2FB の説明を追加。 「CLKOUT[0:5]_ PHASE」 の
説明を更新。 「PLL ク ロ ッ ク 入力信号」 に BUFIO2 を追加。
2010 年 2 月 22 日
1.3
表 1-3、 表 1-4、 図 1-5、 図 1-7、 お よ び図 1-8 で BUFIO2 ク ロ ッ ク 領域を更新。 表
1-16 か ら メ モ 1 を削除。 図 1-16 の変更お よ び例 7 ( 図 1-17 を含む ) を更新。 「 ク ロ ッ
ク バ ッ フ ァ お よ びマルチプ レ ク サ」 に内容を追加。
表 2-5 の STATUS[7:3] の説明を更新 し 、 STATUS[7:3] を表 2-7 に追加。 「RST 入力の
動作」 に低消費電力デバ イ ス の リ セ ッ ト 回路の説明を追加。
図 3-3 お よ び図 3-4 を更新。 式 3-2 ~ 式 3-6 を追加。 式 3-7 お よび式 3-9 を変更 し 、
式 3-8 を追加。 表 3-5 で EXTERNAL 補正の説明を更新。
本資料は英語版 (v1.3) を翻訳 し た も ので、 内容に相違が生 じ る場合には原文を優先 し ます。
資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。
日本語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
japan.xilinx.com
UG382 (v1.3) 2010 年 2 月 22 日
目次
改訂履歴. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
こ のマニ ュ アルについて
マニ ュ アルの内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
その他の資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
その他の リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
第 1 章 : ク ロ ッ ク リ ソ ース
概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
は じ めに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
ク ロ ッ ク リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
グ ロ ーバル ク ロ ッ ク イ ン フ ラ ス ト ラ ク チ ャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
I/O ク ロ ッ ク イ ン フ ラ ス ト ラ ク チ ャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
バン ク 全体で 1 つの I/O ク ロ ッ ク を使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
ク ロ ッ ク 入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
ク ロ ッ ク 構造のガ イ ド ラ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
SDR デー タ レー ト (IOB の FD レ ジ ス タ 、 IOSERDES2 な し ). . . . . . . . . . . . . . . . . . . .25
DDR デー タ レー ト (IDDR2、 ODDR2、 IOSERDES2 な し ) . . . . . . . . . . . . . . . . . . . . .25
ア ド バン ス シ リ アル化用の高速 IOSERDES2 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
グ ロ ーバル ク ロ ッ ク 入力バ ッ フ ァ のプ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
高速 I/O ク ロ ッ ク ネ ッ ト ワ ー ク 接続の例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
ク ロ ッ ク バ ッ フ ァ お よ びマルチプ レ ク サ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
グ ロ ーバル ク ロ ッ ク バ ッ フ ァ プ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
BUFGMUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
BUFGMUX_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
BUFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
BUFGCE お よ び BUFGCE_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
高速 I/O ク ロ ッ ク リ ージ ョ ンの ク ロ ッ ク バ ッ フ ァ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
BUFIO2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
BUFIO2_2CLK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
BUFPLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
BUFPLL_MCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
BUFIO2FB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
ク ロ ッ ク マネージ メ ン ト について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
DCM の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
DCM について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
ほかのザ イ リ ン ク ス FPGA フ ァ ミ リ と の互換性お よ び比較 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
DCM の機能の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
遅延 ロ ッ ク ループ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
デジ タ ル周波数合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
位相シ フ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
ス テー タ ス ロ ジ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
DCM プ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
DCM_SP プ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
DCM_CLKGEN プ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
DCM_SP 設計のガ イ ド ラ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
入力 ク ロ ッ ク 周波数の範囲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
5
出力 ク ロ ッ ク 周波数の範囲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
入力 ク ロ ッ ク と ク ロ ッ ク フ ィ ー ド バ ッ ク の変動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
サ イ ク ル間ジ ッ タ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
周期ジ ッ タ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
DLL の フ ィ ー ド バ ッ ク 遅延の変動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
スペ ク ト ラ ム拡散 ク ロ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
DCM ク ロ ッ ク 入力お よ び外部フ ィ ー ド バ ッ ク 入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
LOCKED 出力の動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
LOCKED 信号の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
RST 入力の動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
DCM_CLKGEN 設計のガ イ ド ラ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
ダ イ ナ ミ ッ ク 周波数合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
スペ ク ト ラ ム拡散 ク ロ ッ ク 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
スペ ク ト ラ ム拡散生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
固定スペ ク ト ラ ム拡散 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
ソ フ ト スペ ク ト ラ ム拡散 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
フ リ ー ラ ン ニ ン グ オシ レー タ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
第 3 章 : 位相ロ ッ ク ループ (PLL)
概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
位相 ロ ッ ク ループ (PLL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
CLK_FEEDBACK お よ び BUFIOFB を使用 し た PLL のア ラ イ メ ン ト . . . . . . . . . . . . .84
一般的な使用法について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
PLL プ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
PLL_BASE プ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
PLL_ADV プ リ ミ テ ィ ブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
ク ロ ッ ク ネ ッ ト ワー ク ス キ ュー調整 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
周波数合成のみ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
ジ ッ タ フ ィ ル タ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
VCO 動作範囲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
最小お よ び最大入力周波数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
デ ュ ーテ ィ サ イ ク ルのプ ロ グ ラ ム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
位相シ フ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
PLL プ ロ グ ラ ミ ン グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
入力周波数の決定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
M お よ び D 値の決定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
PLL ポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
PLL 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
PLL ク ロ ッ ク 入力信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
カ ウ ン タ 制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
ク ロ ッ ク シ フ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95
VCO お よ び出力カ ウ ン タ の波形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
入力 ク ロ ッ ク ま たはフ ィ ー ド バ ッ ク ク ロ ッ ク の不在 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
PLL の使用モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
ク ロ ッ ク ネ ッ ト ワー ク ス キ ュー調整 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
内部フ ィ ー ド バ ッ ク のあ る PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
ゼ ロ 遅延バ ッ フ ァ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
DCM で PLL を駆動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
PLL で DCM を駆動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
PLL 同士の接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
アプ リ ケーシ ョ ン ガ イ ド ラ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
PLL アプ リ ケーシ ョ ン例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
6
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
こ のマニ ュ アルについて
こ のユーザー ガ イ ド では、 Spartan®-6 FPGA の ク ロ ッ キ ン グについて説明 し ます。
Spartan-6 FPGA フ ァ ミ リ の最新版ユーザー ガ イ ド は、 ザ イ リ ン ク ス の ウ ェ ブ サ イ ト
http://japan.xilinx.com/support/documentation/spartan-6.htm か ら 入手 し て く だ さ い。
マニ ュ アルの内容
こ のマニ ュ アルには、 次の章か ら 構成 さ れてい ます。
•
第 1 章 「 ク ロ ッ ク リ ソ ース」
•
第 2 章 「 ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ」
•
第 3 章 「位相 ロ ッ ク ループ (PLL)」
その他の資料
Spartan-6 に関す る その他の情報は、 http://japan.xilinx.com/support/documentation/spartan-6.htm
か ら 次を参照 し て く だ さ い。
•
『Spartan-6 フ ァ ミ リ 概要』
Spartan-6 フ ァ ミ リ の機能 と デバ イ ス の概要を示 し ます。
•
『Spartan-6 デー タ シー ト : DC 特性お よ びス イ ッ チ特性』
Spartan-6 フ ァ ミ リ の DC 特性お よ びス イ ッ チ特性が記載 さ れてい ます。
•
『Spartan-6 FPGA パ ッ ケージお よ びピ ン配置仕様』
デバ イ ス / ピ ンの組み合わせ と 最大 I/O 数、 ピ ン定義、 ピ ン配置図、 機械的図面、 熱仕様が記載
さ れてい ます。
•
『Spartan-6 FPGA コ ン フ ィ ギ ュ レーシ ョ ン ガ イ ド 』
コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス ( シ リ アルお よ びパ ラ レル)、複数の ビ ッ ト ス ト リ ー
ムの管理、 ビ ッ ト ス ト リ ームの暗号化、 バ ウ ン ダ リ ス キ ャ ンお よ び JTAG コ ン フ ィ ギ ュ レー
シ ョ ン、 リ コ ン フ ィ ギ ュ レーシ ョ ン手法な ど、 コ ン フ ィ ギ ュ レーシ ョ ンについて詳細に説明 し
ます。
•
『Spartan-6 FPGA SelectIO リ ソ ース ユーザー ガ イ ド 』
すべての Spartan-6 デバ イ ス に含まれてい る SelectIOTM について説明 し ます。
•
『Spartan-6 FPGA ブ ロ ッ ク RAM リ ソ ース ユーザー ガ イ ド 』
Spartan-6 デバ イ ス のブ ロ ッ ク RAM の機能について説明 し ます。
•
『Spartan-6 FPGA コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド 』
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月22 日
japan.xilinx.com
7
こ のマニ ュ アルについて
すべての Spartan-6 デバ イ ス で使用可能な コ ン フ ィ ギ ャ ブル ロ ジ ッ ク ブ ロ ッ ク (CLB) の機能
について説明 し ます。
•
『Spartan-6 FPGA DSP48A1 ス ラ イ ス ユーザー ガ イ ド 』
Spartan-6 FPGA の DSP48A1 ス ラ イ ス のアーキ テ ク チ ャ について説明 し 、 コ ン フ ィ ギ ュ レー
シ ョ ン例を示 し ます。
•
『Spartan-6 FPGA GTP ト ラ ン シーバ ユーザー ガ イ ド 』
Spartan-6 LXT FPGA で使用可能な GTP ト ラ ン シーバについて説明 し ます。
•
『Spartan-6 FPGA メ モ リ コ ン ト ロ ー ラ ユーザー ガ イ ド 』
Spartan-6 FPGA の メ モ リ コ ン ト ロ ー ラ ブ ロ ッ ク について説明 し ます。メ モ リ コ ン ト ロ ー ラ ブ
ロ ッ ク は、 Spartan-6 FPGA を よ く 使用 さ れ る メ モ リ 規格に接続す る際の イ ン タ ーフ ェ イ ス を
簡略化す る エンベデ ッ ド マルチポー ト メ モ リ コ ン ト ロ ー ラ です。
•
『Spartan-6 FPGA PCB デザ イ ン ガ イ ド 』
PCB お よ び イ ン タ ーフ ェ イ ス レベルでデザ イ ン を決定す る ための ス ト ラ テジに焦点を置い
て、 Spartan-6 デバ イ ス の PCB デザ イ ンに関す る情報を示 し ます。
その他の リ ソ ース
シ リ コ ン、 ソ フ ト ウ ェ ア、 IP に関する ア ンサー デー タ ベース を検索 し た り 、 テ ク ニ カル サポー ト の
ウ ェ ブ ケース を開 く 場合は、 次の ウ ェ ブ ページにア ク セ ス し て く だ さ い。
http://japan.xilinx.com/support
8
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月22 日
第1章
ク ロ ッ ク リ ソ ース
概要
こ の章では、 Spartan-6 FPGA のグ ロ ーバル ク ロ ッ ク リ ソ ース (専用 ク ロ ッ ク 入力、バ ッ フ ァ 、配線
な ど ) を活用す る 方法を説明 し ます。 ク ロ ッ ク イ ン フ ラ ス ト ラ ク チ ャ は、 FPGA 全体に高周波数の
ク ロ ッ ク 信号を分配す る のに適 し た キ ャ パシ タ ン ス の低い、ロ ー ス キ ュ ー イ ン タ ー コ ネ ク ト で構成
さ れてお り 、 ク ロ ッ ク ス キ ュ ーを最小限に抑え、 パフ ォーマ ン ス を向上 さ せます。 すべての ク ロ ッ
ク 信号に こ の イ ン フ ラ ス ト ラ ク チ ャ を使用す る 必要があ り ます。 サー ド パーテ ィ の合成ツール、 ザ
イ リ ン ク ス の合成ツールお よ び イ ンプ リ メ ン テーシ ョ ン ツールでは、 フ ァ ン ア ウ ト の大 き い ク ロ ッ
ク 信号に対 し て こ れ ら の リ ソ ース がい く つか自動的に使用 さ れます。
ク ロ ッ ク 配線は、DCM お よ び PLL と 組み合わせて使用で き ます。詳細は、第 2 章「 ク ロ ッ ク マネー
ジ メ ン ト テ ク ノ ロ ジ」 お よび第 3 章 「位相 ロ ッ ク ループ (PLL)」 を参照 し て く だ さ い。
は じ めに
各 Spartan-6 FPGA デバ イ ス には、 最適なパフ ォーマ ン ス を達成する ため、 高速の ロ ー ス キ ュ ー グ
ロ ーバル ク ロ ッ ク リ ソ ース が 16 個含まれてお り 、こ れ ら はザ イ リ ン ク ス ツールで自動的に使用 さ
れます。 ク ロ ッ ク レー ト が比較的低い場合で も 、 タ イ ミ ン グの問題を防ぐ ため、 グ ロ ーバル配線 リ
ソ ース を使用す る 必要があ り ます。 こ れ ら の リ ソ ース を定義 し 、 最大限に活用す る方法を理解 し て
お く こ と が重要です。
ま た、 各 Spartan-6 FPGA には、 超高速の ロ ー ス キ ュ ー I/O リ ージ ョ ナル ク ロ ッ ク リ ソ ース が 40
個提供 さ れていて、ロ ーカルのシ リ ア ラ イ ザ/デシ リ ア ラ イ ザ (ISERDES お よ び OSERDES) 回路 と
し て使用で き ます。 ISERDES お よ び OSERDES の詳細は、 UG381 『Spartan-6 FPGA SelectIO リ
ソ ース ユーザー ガ イ ド 』 お よ び XAPP1064 『Source-Synchronous Serialization and Deserialization
(up to 1050 Mb/s)』 を参照 し て く だ さ い。
ク ロ ッ ク リ ソ ース、SelectIO ロ ジ ッ ク 、I/O 規格の互換性お よ び配線を正 し く 使用す る には、ISE ソ
フ ト ウ ェ アですべてのデザ イ ン ルールをチ ェ ッ ク する よ う に し て く だ さ い。デザ イ ンが完成 し てい
る 場合は、 配置お よ び ロ ジ ッ ク 制限がすべて正 し く チ ェ ッ ク さ れます。
ピ ン割 り 当て を支援す るデザ イ ンのチ ェ ッ ク リ ス ト は、 UG393 『Spartan-6 FPGA PCB デザ イ ン ガ
イ ド 』 を参照 し て く だ さ い。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
9
第 1 章 : ク ロ ッ ク リ ソ ース
ク ロ ッ ク リ ソ ース
Spartan-6 FPGA ク ロ ッ ク リ ソ ース の接続には次の 4 つの タ イ プがあ り ます。
•
グ ロ ーバル ク ロ ッ ク 入力パ ッ ド (GCLK)
•
グ ロ ーバル ク ロ ッ ク マルチプ レ ク サ
•
I/O ク ロ ッ ク バ ッ フ ァ
•
ク ロ ッ ク 配線ネ ッ ト ワ ー ク
ク ロ ッ ク ネ ッ ト ワー ク には次の 2 タ イ プがあ り ます。
•
グ ロ ーバル ク ロ ッ ク マルチプ レ ク サ (BUFGMUX) で駆動 さ れ る グ ロ ーバル ク ロ ッ ク ネ ッ ト
ワーク
•
I/O ク ロ ッ ク バ ッ フ ァ (BUFIO2) お よ び PLL ク ロ ッ ク バ ッ フ ァ (BUFPLL) で駆動 さ れ る I/O
ク ロ ッ ク ネ ッ ト ワー ク
BUFGMUX は、 2 つのグ ロ ーバル ク ロ ッ ク ソ ース のいずれかを選択す る ため、 ま たは単純な
BUFG ク ロ ッ ク バ ッ フ ァ と し て使用で き ます。 ク ロ ッ ク バ ッ フ ァ で駆動で き る のはグ ロ ーバル ク
ロ ッ ク 配線 リ ソ ー ス のみで、 こ の ク ロ ッ ク 配線 リ ソ ース で駆動で き る のは ク ロ ッ ク 入力のみです。
FPGA の フ リ ッ プ フ ロ ッ プの ク ロ ッ ク 入力は汎用配線で も 駆動で き ますが、 ス キ ューが大 き く な る
ため、 こ の よ う な配線は最小限に抑え て く だ さ い。
BUFPLL お よ び BUFIO2 は、 I/O リ ージ ョ ナル ク ロ ッ ク ネ ッ ト ワ ー ク に配線 さ れてい る ク ロ ッ ク
のみを、 グ ロ ーバル ク ロ ッ ク ネ ッ ト ワ ー ク よ り も さ ら に高速に駆動する ために使用 し ます。 こ のた
め、 その駆動先は、 FPGA の各バン ク にあ る 入力シ リ アル/パ ラ レ ル ロ ジ ッ ク リ ソ ース (ISERDES)
ま たは出力パ ラ レ ル/ シ リ アル ロ ジ ッ ク リ ソ ース に (OSERDES) に限 ら れます。
BUFIO2 は DDR パ ス の ILOGIC お よ び OLOGIC を駆動で き ます。BUFIO2 はグ ロ ーバル ク ロ ッ
ク ま たは DCM への GTP ク ロ ッ ク ピ ンお よ び PLL ク ロ ッ ク 入力を配線す る こ と も で き ます。
10
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク リ ソ ース
グ ローバル ク ロ ッ ク イ ン フ ラ ス ト ラ ク チ ャ
Spartan-6 FPGA のグ ロ ーバル ク ロ ッ ク イ ン フ ラ ス ト ラ ク チ ャ の詳細は図 1-1 に ま と め ら れてい
ます。
X-Ref Target - Figure 1-1
ု⋥䉴䊌䉟䊮
䉪䊨䉾䉪▤ℂ䉺䉟䊦
16
㪟㪚㪣㪢㩷ⴕ
㪟㪚㪣㪢㩷ⴕ
16
16
PLL
16
DCM (x2)
16
16
16
16
Ꮐฝ䊋䊮䉪䈎䉌䈱䉪䊨䉾䉪౉ജ
16
਄ਅ䊋䊮䉪䈎䉌䈱䉪䊨䉾䉪౉ജ
16
㪧㪣㪣㪆㪛㪚㪤㩷䈍䉋䈶䊂䊋䉟䉴䈎䉌䈱䉪䊨䉾䉪
㪙㪬㪝㪞㪆㪙㪬㪝㪞㪤㪬㪯㩷㩿㪈㪍㪀
䈍䉋䈶䉴䉟䉾䉼㩷䊗䉾䉪䉴
16
16
PLL
16
16
DCM (x2)
㪟㪚㪣㪢㩷ⴕ
㪟㪚㪣㪢㩷ⴕ㩷㪤㪬㪯
㪟㪚㪣㪢㩷ⴕ
ု⋥䉴䊌䉟䊮
UG382_c1_01_081009
図 1-1 : Spartan-6 FPGA グローバル ク ロ ッ ク の構造
Spartan-6 FPGA のグ ローバル ク ロ ッ ク ネ ッ ト ワー ク は、デバ イ スの中央にあ る 16 個の BUFGMUX
で駆動 さ れます。こ の 16 個の BUFGMUX は 3 つの異な る ソ ース、つま り 、上下バン ク か ら の ク ロ ッ
ク 入力、左右バン ク か ら の ク ロ ッ ク 入力、FPGA ロ ジ ッ ク イ ン タ ーコ ネ ク ト お よ び PLL/DCM か ら
の ク ロ ッ ク か ら ク ロ ッ ク 信号を得 る こ と がで き ます。こ の 3 つの ク ロ ッ ク ソ ースはデバ イ ス中央に
あ る ス イ ッ チ ボ ッ ク ス を マルチプ レ ク サ と し て使用 し て供給 さ れます。
次に 16 個の BUFGMUX は垂直スパ イ ン を駆動 し ます。 そ し て、 リ ージ ョ ナル プ リ ミ テ ィ ブに ク
ロ ッ ク を提供す る ために使用 さ れ る HCLK 行の ク ロ ッ ク に向かっ て水平方向に ク ロ ッ ク を提供 し
てい き ます。HCLK 行は、垂直スパ イ ン と PLL/DCM 出力の間にあ る専用マルチプ レ ク サ ス イ ッ チ
ク ロ ッ ク を介 し て、 ク ロ ッ ク が供給 さ れます。 各 HCLK 行には PLL が 1 つ、 ま たは DCM が 2 つ
あ り ます。
Spartan-6 デバ イ ス には、 最大 32 個の GCLK 入力ピ ン と グ ロ ーバル ク ロ ッ ク バ ッ フ ァ が 16 個あ
る ため、 2 つの GCLK ピ ンのいずれかで各グ ロ ーバル ク ロ ッ ク バ ッ フ ァ を駆動す る こ と が可能で
す。 グ ロ ーバル ク ロ ッ ク バ ッ フ ァ (BUFG ま たは BUFGMUX) を グ ロ ーバル ク ロ ッ ク ピ ン
(IBUFG ま たは IBUFGDS) で直接駆動す る場合、 バン ク 0、 1、 お よ び 5 のグ ロ ーバル ク ロ ッ ク ピ
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
11
第 1 章 : ク ロ ッ ク リ ソ ース
ンは、 同 じ 8 つのグ ロ ーバル ク ロ ッ ク バ ッ フ ァ を共有 し ます (表 1-1 参照)。 同様に、 バン ク 2、 3、
お よ び 4 も 8 つのグ ロ ーバル ク ロ ッ ク バ ッ フ ァ を共有 し ます (表 1-2 参照)。
BUFGMUX 入力を共有する こ と で発生する 配線問題を理解する ため、 GCLK19 と GCLK11 を使
用 し たデザ イ ン を例に挙げます。 表 1-1 で示す よ う に、 グ ロ ーバル ク ロ ッ ク の両方が BUFGMUX
_X2Y1 に接続 さ れていて、 配線エ ラ ーの原因にな っ てい ます。
配線に柔軟性を持たせ る ため、BUFIO2 を使用 し てい る 場合は追加で BUFIO2 を使用 し て 2 番目の
グ ロ ーバル ク ロ ッ ク バ ッ フ ァ を配線する こ と がで き ます (表 1-1)。 BUFIO2 を使用 し てい る場合、
BUFIO2 を通過す る 標準遅延が発生 し 、 ま た、 I/O ク ロ ッ ク ネ ッ ト ワ ー ク に接続 し てい る ク ロ ッ ク
に も 影響 し ます。 追加配線情報は、 19 ページの 「バン ク 全体で 1 つの I/O ク ロ ッ ク を使用」 を参照
し て く だ さ い。
差動グ ロ ーバル ク ロ ッ ク を使用する 場合は、差動ペアのマ ス タ側 (P) に関連 し た グ ロ ーバル ク ロ ッ
ク に よ り 、 使用 さ れ る グ ロ ーバル ク ロ ッ ク リ ソ ース が決定 し ます。
表 1-1 : バン ク 0 および 1 の共有グローバル ク ロ ッ ク リ ソ ース
BUFGMUX 配線制限
BUFGMUX_X2Y1 (I0)
BUFGMUX_X2Y2 (I1)
BUFGMUX_X2Y2 (I0)
BUFGMUX_X2Y1 (I1)
BUFGMUX_X2Y3 (I0)
BUFGMUX_X2Y4 (I1)
BUFGMUX_X2Y4 (I0)
BUFGMUX_X2Y3 (I1)
BUFGMUX_X3Y5 (I0)
BUFGMUX_X3Y6 (I1)
BUFGMUX_X3Y6 (I0)
BUFGMUX_X3Y5 (I1)
BUFGMUX_X3Y7 (I0)
BUFGMUX_X3Y8 (I1)
12
バン ク 0
バン ク 1
ダ イ レ ク ト 配線
GCLK_19
GCLK_11
イ ン ダ イ レ ク ト BUFIO2
GCLK_19 <BUFIO2_X2Y28>
GCLK_11 <BUFIO2_X4Y20>
イ ン ダ イ レ ク ト BUFIO2
GCLK_15 <BUFIO2_X2Y28>
GCLK_7 <BUFIO2_X4Y20>
ダ イ レ ク ト 配線
GCLK_18
GCLK_10
イ ン ダ イ レ ク ト BUFIO2
GCLK_18 <BUFIO2_X2Y29>
GCLK_10 <BUFIO2_X4Y21>
イ ン ダ イ レ ク ト BUFIO2
GCLK_14 <BUFIO2_X2Y29>
GCLK_6 <BUFIO2_X4Y21>
ダ イ レ ク ト 配線
GCLK_17
GCLK_9
イ ン ダ イ レ ク ト BUFIO2
GCLK_17 <BUFIO2_X2Y26>
GCLK_9 <BUFIO2_X4Y18>
イ ン ダ イ レ ク ト BUFIO2
GCLK_13 <BUFIO2_X2Y26>
GCLK_5 <BUFIO2_X4Y18>
ダ イ レ ク ト 配線
GCLK_15
GCLK_7
イ ン ダ イ レ ク ト BUFIO2
GCLK_15 <BUFIO2_X4Y28>
GCLK_7 <BUFIO2_X3Y12>
イ ン ダ イ レ ク ト BUFIO2
GCLK_19 <BUFIO2_X4Y28>
GCLK_11 <BUFIO2_X3Y12>
ダ イ レ ク ト 配線
GCLK_16
GCLK_8
イ ン ダ イ レ ク ト BUFIO2
GCLK_16 <BUFIO2_X2Y27>
GCLK_8 <BUFIO2_X4Y19>
イ ン ダ イ レ ク ト BUFIO2
GCLK_12 <BUFIO2_X2Y27>
GCLK_4 <BUFIO2_X4Y19>
ダ イ レ ク ト 配線
GCLK_14
GCLK_6
イ ン ダ イ レ ク ト BUFIO2
GCLK_14 <BUFIO2_X4Y29>
GCLK_6 <BUFIO2_X3Y13>
イ ン ダ イ レ ク ト BUFIO2
GCLK_18 <BUFIO2_X4Y29>
GCLK_10 <BUFIO2_X3Y13>
ダ イ レ ク ト 配線
GCLK_13
GCLK_5
イ ン ダ イ レ ク ト BUFIO2
GCLK_13 <BUFIO2_X4Y26>
GCLK_5 <BUFIO2_X3Y10>
イ ン ダ イ レ ク ト BUFIO2
GCLK_17 <BUFIO2_X4Y26>
GCLK_9 <BUFIO2_X3Y10>
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク リ ソ ース
表 1-1 : バン ク 0 および 1 の共有グローバル ク ロ ッ ク リ ソ ース (続き )
BUFGMUX 配線制限
BUFGMUX_X3Y8 (I0)
BUFGMUX_X378 (I1)
バン ク 0
バン ク 1
ダ イ レ ク ト 配線
GCLK_12
GCLK_4
イ ン ダ イ レ ク ト BUFIO2
GCLK_12 <BUFIO2_X4Y27>
GCLK_4 <BUFIO2_X3Y11>
イ ン ダ イ レ ク ト BUFIO2
GCLK_16 <BUFIO2_X4Y27>
GCLK_8 <BUFIO2_X3Y11>
表 1-2 : バン ク 2 および 3 の共有グローバル ク ロ ッ ク リ ソ ース
BUFGMUX 配線制限
BUFGMUX_X2Y9 (I0)
BUFGMUX_X2Y10 (I1)
BUFGMUX_X2Y10 (I0)
BUFGMUX_X2Y9 (I1)
BUFGMUX_X2Y11 (I0)
BUFGMUX_X2Y12 (I1)
BUFGMUX_X2Y12 (I0)
BUFGMUX_X2Y11 (I1)
BUFGMUX_X3Y13 (I0)
BUFGMUX_X3Y14 (I1)
BUFGMUX_X3Y14 (I0)
BUFGMUX_X3Y13 (I1)
BUFGMUX_X3Y15 (I0)
BUFGMUX_X3Y16 (I1)
BUFGMUX_X3Y16 (I0)
BUFGMUX_X3Y15 (I1)
バン ク 2
バン ク 3
ダ イ レ ク ト 配線
GCLK_3
GCLK_27
イ ン ダ イ レ ク ト BUFIO2
GCLK_3 <BUFIO2_X3Y0>
GCLK_27 <BUFIO2_X1Y8>
イ ン ダ イ レ ク ト BUFIO2
GCLK_31 <BUFIO2_X3Y0>
GCLK_23 <BUFIO2_X1Y8>
ダ イ レ ク ト 配線
GCLK_2
GCLK_26
イ ン ダ イ レ ク ト BUFIO2
GCLK_2 <BUFIO2_X3Y1>
GCLK_26 <BUFIO2_X1Y9>
イ ン ダ イ レ ク ト BUFIO2
GCLK_30 <BUFIO2_X3Y1>
GCLK_22 <BUFIO2_X1Y9>
ダ イ レ ク ト 配線
GCLK_1
GCLK_25
イ ン ダ イ レ ク ト BUFIO2
GCLK_1 <BUFIO2_X3Y6>
GCLK_25 <BUFIO2_X1Y14>
イ ン ダ イ レ ク ト BUFIO2
GCLK_29 <BUFIO2_X3Y6>
GCLK_21 <BUFIO2_X1Y14>
ダ イ レ ク ト 配線
GCLK_31
GCLK_23
イ ン ダ イ レ ク ト BUFIO2
GCLK_31 <BUFIO2_X1Y0>
GCLK_23 <BUFIO2_X0Y16>
イ ン ダ イ レ ク ト BUFIO2
GCLK_3 <BUFIO2_X1Y0>
GCLK_27 <BUFIO2_X0Y16>
ダ イ レ ク ト 配線
GCLK_0
GCLK_24
イ ン ダ イ レ ク ト BUFIO2
GCLK_0 <BUFIO2_X3Y7>
GCLK_24 <BUFIO2_X1Y15>
イ ン ダ イ レ ク ト BUFIO2
GCLK_28 <BUFIO2_X3Y7>
GCLK_20 <BUFIO2_X1Y15>
ダ イ レ ク ト 配線
GCLK_30
GCLK_22
イ ン ダ イ レ ク ト BUFIO2
GCLK_30 <BUFIO2_X1Y1>
GCLK_22 <BUFIO2_X0Y17>
イ ン ダ イ レ ク ト BUFIO2
GCLK_2 <BUFIO2_X1Y1>
GCLK_26 <BUFIO2_X0Y17>
ダ イ レ ク ト 配線
GCLK_29
GCLK_21
イ ン ダ イ レ ク ト BUFIO2
GCLK_29 <BUFIO2_X1Y6>
GCLK_21 <BUFIO2_X0Y22>
イ ン ダ イ レ ク ト BUFIO2
GCLK_1 <BUFIO2_X1Y6>
GCLK_25 <BUFIO2_X0Y22>
ダ イ レ ク ト 配線
GCLK_28
GCLK_20
イ ン ダ イ レ ク ト BUFIO2
GCLK_28 <BUFIO2_X1Y7>
GCLK_20 <BUFIO2_X0Y23>
イ ン ダ イ レ ク ト BUFIO2
GCLK_0 <BUFIO2_X1Y7>
GCLK_24 <BUFIO2_X0Y23>
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
13
第 1 章 : ク ロ ッ ク リ ソ ース
競合のあ る BUFGMUX 入力 図 1-2 お よ び図 1-3 に示 し てい ます。
X-Ref Target - Figure 1-2
GCLK4
GCLK5
BUFIO2_X3Y11
GCLK6
BUFIO2_X3Y10
GCLK7
BUFIO2_X3Y13
BUFIO2_X3Y12
GCLK8
GCLK9
BUFIO2_X4Y19
GCLK10
BUFIO2_X4Y18
GCLK11
BUFIO2_X4Y21
BUFIO2_X4Y20
GCLK12
GCLK13
BUFIO2_X4Y27
GCLK14
BUFIO2_X4Y26
GCLK15
Bank 1
BUFIO2_X4Y29
BUFIO2_X4Y28
GCLK16
GCLK17
BUFIO2_X2Y27
GCLK18
BUFIO2_X2Y26
BUFIO2_X2Y29
BUFIO2_X2Y28
GCLK19
Bank 0
BUFGMUX_X2Y1
BUFGMUX_X2Y2
BUFGMUX_X2Y3
BUFGMUX_X2Y4
BUFGMUX_X3Y5
BUFGMUX_X3Y6
BUFGMUX_X3Y7
BUFGMUX_X3Y8
UG382_01_121709
図 1-2 : バン ク 0 およびバン ク 1 の BUFGMUX 接続
14
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク リ ソ ース
X-Ref Target - Figure 1-3
GCLK27
GCLK26
BUFIO2_X1Y8
GCLK25
BUFIO2_X1Y9
GCLK24
BUFIO2_X1Y14
BUFIO2_X1Y15
GCLK23
GCLK22
BUFIO2_X0Y16
GCLK21
BUFIO2_X0Y17
GCLK20
BUFIO2_X0Y22
BUFIO2_X0Y23
GCLK3
GCLK2
BUFIO2_X3Y0
BUFIO2_X3Y1
BUFIO2_X3Y6
BUFIO2_X3Y7
GCLK1
Bank 3
GCLK0
GCLK31
GCLK30
BUFIO2_X1Y0
GCLK29
BUFIO2_X1Y1
BUFIO2_X1Y6
BUFIO2_X1Y7
GCLK28
Bank 2
BUFGMUX_X2Y9
BUFGMUX_X2Y10
BUFGMUX_X2Y11
BUFGMUX_X2Y12
BUFGMUX_X3Y13
BUFGMUX_X3Y14
BUFGMUX_X3Y15
BUFGMUX_X3Y16
UG382_02_121709
図 1-3 : バン ク 2 およびバン ク 3 の BUFGMUX 接続
GTP ト ラ ン シーバを使用 し たデザ イ ンの場合、各 GTP リ フ ァ レ ン ス ク ロ ッ ク は BUFIO2 に関連付
け ら れてい ます。こ れは、バン ク 0 お よ びバン ク 2 にあ る グ ロ ーバル ク ロ ッ ク ピ ンに影響す る可能
性があ り ます。 SDR イ ン タ ーフ ェ イ ス の GCLK 入力は表 1-3 に リ ス ト さ れてい ます。 DDR イ ン
タ ーフ ェ イ ス の場合は、 表 1-4 にあ る よ う に、 BUFIO2 配置を反転 さ せて ク ロ ッ ク を反転す る には
2 つ目の BUFIO2 が必要にな る可能性があ り ます。
GTP_DUAL 配置の詳細は、 『Spartan-6 FPGA GTP ト ラ ン シーバ ユーザー ガ イ ド 』 (UG386) にあ
る 配置図を参照 し て く だ さ い。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
15
第 1 章 : ク ロ ッ ク リ ソ ース
表 1-3 : SDR の BUFIO2 入力競合 (ISERDES2 (SDR)、 OSERDES2(SDR))
バン ク
BUFIO2
GCLK 入力
BUFIO2_X2Y26
GCLK17
GCLK13
BUFIO2_X2Y27
GCLK16
GCLK12
サン プル デザイ ンの
GTP リ フ ァ レ ン ス
ク ロ ッ ク (1)
共有 GTPCLKOUT
BUFIO2
ク ロ ッ ク 領域
GTPCLKOUT1[0]
TL
GTPCLKOUT1[1]
TL
GTPA1_DUAL_X0Y1
バン ク 0
BUFIO2_X2Y28
GCLK19
GCLK15
GTPCLKOUT0[0]
TL
BUFIO2_X2Y29
GCLK18
GCLK14
GTPCLKOUT0[1]
TL
BUFIO2_X4Y26
GCLK13
GCLK17
GTPCLKOUT1[0]
TR
BUFIO2_X4Y27
GCLK12
GCLK16
GTPCLKOUT1[1]
TR
GTPA1_DUAL_X1Y1
BUFIO2_X4Y28
GCLK15
GCLK19
GTPCLKOUT0[0]
TR
BUFIO2_X4Y29
GCLK14
GCLK18
GTPCLKOUT0[1]
TR
BUFIO2_X1Y0
GCLK31
GCLK3
GTPCLKOUT0[0]
BL
BUFIO2_X1Y1
GCLK30
GCLK2
GTPCLKOUT0[1]
BL
GTPA1_DUAL_X0Y0
バン ク 2
BUFIO2_X1Y6
GCLK29
GCLK1
GTPCLKOUT1[0]
BL
BUFIO2_X1Y7
GCLK28
GCLK0
GTPCLKOUT1[1]
BL
BUFIO2_X3Y0
GCLK3
GCLK31
GTPCLKOUT0[0]
BR
BUFIO2_X3Y1
GCLK2
GCLK30
GTPCLKOUT0[1]
BR
GTPA1_DUAL_X1Y0
BUFIO2_X3Y6
GCLK1
GCLK29
GTPCLKOUT1[0]
BR
BUFIO2_X3Y7
GCLK0
GCLK28
GTPCLKOUT1[1]
BR
メモ :
1. FG(G)900 パ ッ ケージの LX100T/LX150T を使用
16
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク リ ソ ース
表 1-4 : DDR の BUFIO2 入力競合 (IDDR2、 ODDR2、 ISERDES2 (DDR)、 OSERDES2 (DDR))
バン ク
BUFIO2
GCLK 入力 ( 反転 )
BUFIO2_X2Y26
(I_INVERT = TRUE)
GCLK16
GCLK12
BUFIO2_X2Y27
(I_INVERT = TRUE)
GCLK17
GCLK13
サン プル デバイ スの
GTP リ フ ァ レ ン ス
ク ロ ッ ク (1)
共有 GTPCLKOUT
BUFIO2
ク ロ ッ ク 領域
GTPCLKOUT1[0]
TL
GTPCLKOUT1[1]
TL
GTPA1_DUAL_X0Y1
バン ク 0
BUFIO2_X2Y28
(I_INVERT = TRUE)
GCLK18
GCLK14
GTPCLKOUT0[0]
TL
BUFIO2_X2Y29
(I_INVERT = TRUE)
GCLK19
GCLK15
GTPCLKOUT0[1]
TL
BUFIO2_X4Y26
(I_INVERT = TRUE)
GCLK12
GCLK16
GTPCLKOUT1[0]
TR
BUFIO2_X4Y27
(I_INVERT = TRUE)
GCLK13
GCLK17
GTPCLKOUT1[1]
TR
GTPA1_DUAL_X1Y1
BUFIO2_X4Y28
(I_INVERT = TRUE)
GCLK14
GCLK18
GTPCLKOUT0[0]
TR
BUFIO2_X4Y29
(I_INVERT = TRUE)
GCLK15
GCLK19
GTPCLKOUT0[1]
TR
BUFIO2_X1Y0
(I_INVERT = TRUE)
GCLK30
GCLK2
GTPCLKOUT0[0]
BL
BUFIO2_X1Y1
(I_INVERT = TRUE)
GCLK31
GCLK3
GTPCLKOUT0[1]
BL
BUFIO2_X1Y6
(I_INVERT = TRUE)
GCLK28
GCLK0
GTPCLKOUT1[0]
BL
BUFIO2_X1Y7
(I_INVERT = TRUE)
GCLK29
GCLK1
GTPCLKOUT1[1]
BL
BUFIO2_X3Y0
(I_INVERT = TRUE)
GCLK2
GCLK30
GTPCLKOUT0[0]
BR
BUFIO2_X3Y1
(I_INVERT = TRUE)
GCLK3
GCLK31
GTPCLKOUT0[1]
BR
GTPA1_DUAL_X0Y0
バン ク 2
GTPA1_DUAL_X1Y0
BUFIO2_X3Y6
(I_INVERT = TRUE)
GCLK0
GCLK28
GTPCLKOUT1[0]
BR
BUFIO2_X3Y7
(I_INVERT = TRUE)
GCLK1
GCLK29
GTPCLKOUT1[1]
BR
メモ :
1. FG(G)900 パ ッ ケージの LX100T/LX150T を使用
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
17
第 1 章 : ク ロ ッ ク リ ソ ース
I/O ク ロ ッ ク イ ン フ ラ ス ト ラ ク チ ャ
図 1-4 は I/O ク ロ ッ ク イ ン フ ラ ス ト ラ ク チ ャ を示 し てい ます。
X-Ref Target - Figure 1-4
BUFIO2
BUFIO2
BUFPLL
I/O
Inputs
I/O
Inputs
PLL
I/O
Inputs
I/O
Inputs
ug382_c1_03_120809
図 1-4 : I/O バン ク の Spartan-6 FPGA I/O ク ロ ッ クの構造
4 つの専用BUFIO2バ ッ フ ァ で駆動 さ れてい る BUFIO2 ク ロ ッ ク 領域ご と に高速 I/O ク ロ ッ ク が 4
つあ り ます。 バン ク が 4 つ し かないデバ イ ス の場合、 各バン ク には2 つの BUFIO2 ク ロ ッ ク 領域が
あ り ます。 バン ク が 6 つあ る デバ イ ス の場合は 『Spartan-6 FPGA パ ッ ケージお よびピ ン配置仕様』
(UG385) を参照 し て く だ さ い。バン ク 4 に関連 し た GCLK は引 き続 き VCCO_3 で駆動 さ れ、バン
ク 5 に関連 し た GCLK ピ ンは VCCO_1 で駆動 さ れます。
18
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク リ ソ ース
バン ク 全体で 1 つの I/O ク ロ ッ ク を使用
バン ク (バン ク の ど ち ら かの端) にあ る BUFIO2 バ ッ フ ァ に接続 さ れてい る 1 つの I/O ク ロ ッ ク 入
力で、 バン ク 全体に ク ロ ッ ク を供給可能です。 図 1-5 は、 バン ク 0 の接続を示 し てい ます。 2 つの
BUFIO2 リ ソ ース があ り 、 1 つは BUFIO2_X2Y28、 も う 1 つが BUFIO2_X4Y28 に使用 さ れてい
ます。図 1-5 の点線は I_INVERT パ ス を示 し ます。BUFIO2 プ リ ミ テ ィ ブを 2 つ使用 し てバン ク 全
体に ク ロ ッ ク を提供で き る のは、ク ロ ッ ク 入力が直接 BUFIO2 プ リ ミ テ ィ ブに接続 さ れてい る場合
のみです。アプ リ ケーシ ョ ンに よ っ ては、入力 ク ロ ッ ク を遅延 さ せ る ために IODELAY2 が必要にな
る場合があ り ます。IODELAY2 は 1 つの BUFIO2 に し か接続で き ないため、遅延 し た GCLK 入力
の配線は、 1 つの BUFIO2 ク ロ ッ ク 領域に制限 さ れます。
ま たは、 IODELAY2 プ リ ミ テ ィ ブ を使用 し てバン ク 全体を駆動す る には、 BUFPLL プ リ ミ テ ィ ブ
のあ る PLL を使用 し ます。
I/O ク ロ ッ ク ネ ッ ト ワー ク も BUFPLL バ ッ フ ァ を介 し て PLL に よ り 駆動で き ます。 各 PLL には
I/O バン ク 全体に使用す る ためのバ ッ フ ァ が 2 つあ り ます。
メ モ : I/O バン ク 全体で IODELAY2 を使用す る こ と はサポー ト さ れてい ません。
X-Ref Target - Figure 1-5
I/O BANK 0
GCLK19 GCLK18 GCLK17 GCLK16
P
N
P
GCLK15 GCLK14 GCLK13 GCLK12
N
P
BUFIO2_
X2Y28
BUFIO2_
X4Y28
BUFIO2_
X2Y29
BUFIO2_
X4Y29
BUFIO2_
X2Y26
BUFIO2_
X4Y26
BUFIO2_
X2Y27
BUFIO2_
X4Y27
N
P
N
㻮㼁㻲㻵㻻㻞㻌䜽䝻䝑䜽㡿ᇦ
㼀㻾㻌䜈䛾㻌㻵㻛㻻㻌䜽䝻䝑䜽
㻮㼁㻲㻵㻻㻞㻌䜽䝻䝑䜽㡿ᇦ
㼀㻸㻌䜈䛾㻌㻵㻛㻻㻌䜽䝻䝑䜽
ug382_c1_04_020510
図 1-5 : バン ク全体で使用 さ れる I/O ク ロ ッ ク
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
19
第 1 章 : ク ロ ッ ク リ ソ ース
ク ロ ッ ク入力
ク ロ ッ ク ピ ンは、 外部 ク ロ ッ ク 信号を受信 し 、 BUFGMUX/BUFIO2 プ リ ミ テ ィ ブに直接接続 さ れ
ます。 ク ロ ッ ク ピ ンは、 汎用 I/O と し て も 使用で き ます。 入力か ら ク ロ ッ ク を I/O ク ロ ッ ク ネ ッ ト
ワ ー ク に配線す る だけでな く 、 BUFIO2 は PLL/DCM お よ び BUFG への専用 ク ロ ッ ク パ ス も 提供
し ます。 図 1-6 はその専用 ク ロ ッ ク 配線を示 し てい ます。
メ モ : フル バン ク での IODELAY2 ク ロ ッ ク の使用はサポー ト さ れてい ません。
X-Ref Target - Figure 1-6
P
N
P
P
N
N
BUFIO2_X2Y28
BUFIO2_X4Y28
SERDESSTROBE IOCLK DIVCLK
DIVCLK IOCLK SERDESSTROBE
P
N
CLK
IOCE
CLK
IOCE
IOI
IOI
IOI
IOI
IOI
To
To
BUFG PLL/DCM
To
To
BUFG PLL/DCM
IOI
IOI
IOI
IOI
IOI
ug382_c1_05_121709
図 1-6 : BUFIO2 で配線 さ れた専用ク ロ ッ ク 入力
各 Spartan-6 FPGA には、 次の も のがあ り ます。
•
FPGA の 4 辺にあ る 最高 32 個ま でのグ ロ ーバル ク ロ ッ ク 入力
•
デバ イ ス の各辺の中央にあ る 8 個の専用 ク ロ ッ ク 入力
•
8 個の BUFIO2 ク ロ ッ ク 領域
表 1-5 にはグ ロ ーバル ク ロ ッ ク ピ ン ロ ケーシ ョ ンが リ ス ト さ れてい ます。 P は差動ペアの正側、 N
は負側を示 し ます。
20
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク 入力
表 1-5 : グローバル ク ロ ッ ク ピ ン ロ ケーシ ョ ン
CSG324
GCLK
P/N TQG144
CPG196
CSG225
CSG484
FGG484
FGG676
FGG900
FGG256
LX
LXT
LX
LXT
LX
LXT
LX
LXT
LX
LXT
GCLK0
N
P55
P8
N7
T8
V10
V10
AB12
AB12
AB13
AB13
AF13
AC14
AK18
AG16
GCLK1
P
P56
N8
M8
P8
U10
U10
AA12
AA12
Y13
Y13
AE13
AB14
AJ18
AF16
GCLK2
N
なし
なし
R8
N8
T10
T10
Y10
Y10
Y12
U12
AF14
AF15
AK19
AD16
GCLK3
P
なし
なし
N8
M9
R10
R10
W11
W11
W12
T12
AD14
AE15
AH19
AC16
GCLK4
N
P84
H12
J15
J16
H18
H18
L22
L22
J22
L22
U26
U26
W30
W30
GCLK5
P
P85
H11
J14
J14
H17
H17
L20
L20
J20
L20
U25
U25
W29
W29
GCLK6
N
P87
H14
H15
K11
L16
L16
K20
K20
L19
N19
W24
W24
AB30
AB30
GCLK7
P
P88
H13
H13
K12
L15
L15
L19
L19
M20
P20
V23
V23
AB28
AB28
GCLK8
N
P92
F14
G15
K14
K16
K16
M19
M19
H22
K22
P22
R26
W28
W28
GCLK9
P
P93
F13
G14
J13
K15
K15
M18
M18
H21
K21
P21
R25
W27
W27
GCLK10
N
P94
G14
L12
J12
L13
L13
K17
L17
K19
M19
M21
U24
V27
V27
GCLK11
P
P95
G13
K12
J11
L12
L12
L17
M17
K20
M20
N20
U23
V26
V26
GCLK12
N
P123
A8
A9
C10
A10
E12
C12
F12
A12
F16
A15
A14
A18
D16
GCLK13
P
P124
B8
B9
E10
C10
F12
D11
G12
B12
E16
C15
B14
C18
E16
GCLK14
N
P126
C8
A8
E8
C11
G11
A12
G11
C12
F15
C14
A12
A16
A16
GCLK15
P
P127
D8
C8
E7
D11
G9
B12
H11
D11
F14
D14
B12
C16
C16
GCLK16
N
P131
A7
A7
A10
A9
E8
A11
F11
A11
G11
A14
A13
A15
A15
GCLK17
P
P132
B7
B7
B10
B9
G8
C11
F10
C11
H12
B14
C13
B15
B15
GCLK18
N
P133
A6
D8
A9
C9
F7
A10
G10
A10
F10
A13
D13
C15
G15
GCLK19
P
P134
B6
E7
C9
D9
E6
B10
H10
B10
G9
C13
E13
D15
H15
GCLK20
N
P14
F1
G1
H3
H3
H3
G1
G1
J4
L4
R1
R1
V3
V3
GCLK21
P
P15
F2
G2
H4
H4
H4
G3
G3
K3
M3
R2
R2
V4
V4
GCLK22
N
P16
H1
J3
H5
K5
K5
P3
P3
K4
M4
P8
R6
W4
W4
GCLK23
P
P17
H2
K4
J6
L5
L5
N4
N4
K5
M5
N8
R7
W5
W5
GCLK24
N
P21
G1
H1
J4
K3
K3
H1
H1
L4
N4
W3
W3
AB1
AB1
GCLK25
P
P22
G2
H3
K3
K4
K4
H2
H2
M3
P3
V4
V4
AB2
AB2
GCLK26
N
P23
J1
J1
F1
H1
H1
J1
J1
J1
L1
T1
T1
AA1
AA1
GCLK27
P
P24
J2
J2
F2
H2
H2
J3
J3
J3
L3
T3
T3
AA3
AA3
GCLK28
N
なし
なし
R7
T7
V9
V9
AB10
AB10
AB11
AB11
AF12
AF14
AK17
AK17
GCLK29
P
なし
なし
P7
R7
T9
T9
AA10
AA10
Y11
Y11
AD12
AD14
AH17
AJ17
GCLK30
N
P50
P7
L8
M7
T8
T8
AB11
AB11
AB12
AB12
AD13
AF13
AK16
AK16
GCLK31
P
P51
N7
K8
P7
R8
R8
Y11
Y11
AA12
AA12
AC13
AE13
AJ16
AH16
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
21
第 1 章 : ク ロ ッ ク リ ソ ース
図 1-7 は 4 バン ク あ る Spartan-6 (XC6SLX4、XC6SLX9、XC6SLX16、XC6SLX25、XC6SLX25T、
XC6SLX45、 XC6SLX45T、 お よ び FG(G)484 と CSG484 パ ッ ケージの XC6SLX75/75T、
XC6SLX100/100T、 XC6SLX150/150T) の GCLK ピ ン レ イ ア ウ ト を示 し てい ます。
X-Ref Target - Figure 1-7
BANK0 (BUFPLL Clock Region)
BUFIO2 CLOCKING REGION TL
BUFIO2 CLOCKING REGION TR
GCLK19 (P)
GCLK18 (N)
GCLK17 (P)
GCLK16 (N)
GCLK13 (P)
GCLK12 (N)
BUFIO2_X4Y28
BUFIO2_X4Y29
BUFIO2_X0Y16
BUFIO2_X0Y17
BUFIO2_X0Y22
BUFIO2_X0Y23
BUFIO2_X0Y16
BUFIO2_X0Y17
DIVCLK
DIVCLK
IOCLK
GCLK22 (N)
GCLK23 (P)
GCLK11 (P)
GCLK10 (N)
BUFGMUX_X2Y1
BUFGMUX_X2Y2
BUFGMUX_X2Y3
BUFGMUX_X2Y4
BU F IO2_X4Y21
BU F IO2_X4Y20
BUFGMUX_X3Y5
BU F IO2_X4Y19
BU F IO2_X4Y18
BUFGMUX_X3Y6
BUFGMUX_X3Y7
BUFGMUX_X3Y8
GCLK9 (P)
GCLK8 (N)
GCLK7 (P)
GCLK6 (N)
BUFIO2_X1Y8
BUFIO2_X1Y9
BUFGMUX_X2Y9
PLL
DCM
DCM
PLL
DCM
DCM
PLL
DCM
DCM
DIVCLK
IOCLK
GCLK26 (N)
GCLK27 (P)
DIVCLK
BUFGMUX_X2Y10
BUFGMUX_X3Y13
GCLK5 (P)
GCLK4 (N)
BUFGMUX_X3Y14
BUFGMUX_X3Y15
BUFGMUX_X3Y16
IOCLK
DIVCLK
IOCLK
BUFIO2_X1Y7
BUFIO2_X1Y1
BUFIO2_X3Y7
BUFIO2_X3Y1
BUFIO2_X1Y6
BUFIO2_X1Y0
BUFIO2_X3Y6
BUFIO2_X3Y0
GCLK28 (N)
GCLK29 (P)
BU F IO2_X3Y11
BU F IO2_X3Y10
BUFGMUX_X2Y11
BUFGMUX_X2Y12
BU F IO2_X3Y13
BU F IO2_X3Y12
IOCLK
BUFIO2_X1Y14
BUFIO2_X1Y15
DIVCLK
GCLK24 (N)
GCLK25 (P)
BUFIO2 CLOCKING REGION LB
BANK3 (BUFPLL Clock Region)
PLL
DCM
DCM
PLL
DCM
DCM
PLL
DCM
DCM
IOCLK
GCLK30 (N)
GCLK31 (P)
GCLK0 (N)
GCLK1 (P)
BUFIO2 CLOCKING REGION BL
BUFIO2 CLOCKING REGION RB
GCLK20 (N)
GCLK21 (P)
IOCLK
DIVCLK
BUFIO2 CLOCKING REGION LT
DIVCLK
BUFIO2_X4Y26
BUFIO2_X4Y27
BUFIO2 CLOCKING REGION RT
BUFIO2_X2Y26
BUFIO2_X2Y27
IOCLK
BUFIO2_X2Y28
BUFIO2_X2Y29
GCLK15 (P)
GCLK14 (N)
GCLK2 (N)
GCLK3 (P)
BUFIO2 CLOCKING REGION BR
BANK2 (BUFPLL Clock Region)
UG382_c1_06_021
図 1-7 : Spartan-6 FPGA ク ロ ッ ク ピ ン レ イ アウ ト (バン ク が 4 つあるデバイ ス )
22
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク 入力
図 1-8 は、 バン ク 4 お よ び 5 のあ る大型デバ イ ス の GCLK ピ ン レ イ ア ウ ト を示 し た も ので、
FG(G)676 パ ッ ケージの XC6SLX75、 XC6SLX75T、お よ び FG(G)676 と FG(G)900 パ ッ ケージの
XC6SLX100、 XC6SLX100T、 XC6SLX150、 XC6SLX150T が対象です。 GLK20 か ら GCLK23 は
バン ク 3 の VCCO か ら 電力供給を受け、 IOCLK は BUFIO2 ク ロ ッ ク 領域 LT に接続 し てい ます。
同様に、GCLK8 か ら GCLK11はバン ク 1 の VCCO か ら 電力供給を受け、IOCLK は BUFIO2 ク ロ ッ ク
領域 RT に接続 し てい ます。
X-Ref Target - Figure 1-8
BANK0 (BUFPLL Clock Region)
BUFIO2 CLOCKING REGION TL
BUFIO2 CLOCKING REGION TR
GCLK15 (P)
GCLK17 (P)
GCLK14 (N)
GCLK16 (N)
DIVCLK
GCLK20 (N)
GCLK21 (P)
BUFIO2_X0Y22
BUFIO2_X0Y23
BUFIO2_X0Y16
BUFIO2_X0Y17
IOCLK
BUFIO2_X4Y28
BUFIO2_X4Y29
DIVCLK
IOCLK
GCLK22 (N)
GCLK23 (P)
IOCLK
BUFGMUX_X2Y1
PLL
DCM
DCM
PLL
DCM
DCM
PLL
DCM
DCM
DIVCLK
BUFIO2_X4Y26
BUFIO2_X4Y27
GCLK11 (P)
GCLK10 (N)
BUFGMUX_X2Y2
BUFGMUX_X2Y3
BUFGMUX_X2Y4
BUFIO2_X4Y21
BUFIO2_X4Y20
BUFGMUX_X3Y5
BUFGMUX_X3Y6
BUFGMUX_X3Y7
BUFGMUX_X3Y8
BUFIO2_X4Y19
BUFIO2_X4Y18
BANK5
BUFIO2_X2Y26
BUFIO2_X2Y27
DIVCLK
GCLK9 (P)
GCLK8 (N)
GCLK7 (P)
GCLK6 (N)
DIVCLK
BUFIO2_X1Y7
BUFIO2_X1Y6
GCLK28 (N)
GCLK29 (P)
BUFGMUX_X2Y10
BUFIO2_X3Y11
BUFIO2_X3Y10
BUFGMUX_X2Y11
BUFGMUX_X2Y12
BUFGMUX_X3Y13
BUFGMUX_X3Y14
GCLK5 (P)
GCLK4 (N)
BUFGMUX_X3Y15
BUFGMUX_X3Y16
IOCLK
BUFIO2_X1Y1
BUFIO2_X1Y0
DIVCLK
BUFIO2_X3Y7
BUFIO2_X3Y6
GCLK30 (N) GCLK0 (N)
GCLK31 (P) GCLK1 (P)
IOCLK
BUFIO2_X3Y1
BUFIO2_X3Y0
BANK1
IO C LK
GCLK26 (N)
GCLK27 (P)
BUFIO2_X3Y13
BUFIO2_X3Y12
IOCLK
BUFIO2 CLOCKING REGION LB
BANK3
BUFIO2_X1Y8
BUFIO2_X1Y9
BUFGMUX_X2Y9
PLL
DCM
DCM
PLL
DCM
DCM
PLL
DCM
DCM
BUFIO2_X1Y14
BUFIO2_X1Y15 D IVC LK
DIVCLK
GCLK24 (N)
GCLK25 (P)
BUFIO2 CLOCKING REGION RB
BUFIO2 CLOCKING REGION LT
BANK4
BUFIO2_X2Y28
BUFIO2_X2Y29
GCLK13 (P)
GCLK12 (N)
BUFIO2 CLOCKING REGION RT
GCLK19 (P)
GCLK18 (N)
IOCLK
BUFPLL Region
GCLK2 (N)
GCLK3 (P)
BUFIO2 CLOCKING REGION BR
BUFIO2 CLOCKING REGION BL
BANK2 (BUFPLL Clock Region)
BUFPLL
Region
UG382_c1_07_021210
図 1-8 : Spartan-6 FPGA ク ロ ッ ク ピ ン レ イ アウ ト (バン ク が 6 つあるデバイ ス )
デバ イ ス にバン ク が 4 つあ る 場合で も 6 つあ る 場合で も 、 グ ロ ーバル ク ロ ッ ク 入力は常に同 じ
VCCO バン ク か ら 電力供給を受け ます。 こ のため、 バン ク が 6 つあ るデバ イ ス の場合、 GCLK[8:11]
は VCCO1 の電力供給を受け、 ロ ジ ッ ク に GCLK ピ ン を使用 し てい るデザ イ ンはその影響を受け る
可能性があ り ます。 IOLOGIC2 は引 き続 き バン ク 5 に関連 し た BUFIO2 ロ ケーシ ョ ンに よ り 駆動
さ れます。 同様に、 GCLK[20:23] は VCCO バン ク の VCCO3 の電力供給を受け ます。 GCLK[20:23]
を IOLOGIC2 と し て使用 し てい る場合は、 バン ク 4 に関連 し た BUFIO2 に よ り IOCLK が駆動 さ
れます (表 1-6)。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
23
第 1 章 : ク ロ ッ ク リ ソ ース
表 1-6 : GCLK VCCO バン ク サポー ト (IOLOGIC2 と の比較)
VCCO
(6 つのバン ク )
BUFIO2
(IOLOGIC2)
BUFGMUX に接続 さ れる
BUFIO2
GCLK[0:3]
2
X3Y[0,1,6,7]
X1Y[0,1,6,7]
X3Y[0,1,6,7]
GCLK[4:7]
1
X3Y[10,11,12,13]
X3Y[10,11,12,13]
X4Y[18,19,20,21]
GCLK[8:11]
1
X4Y[18,19,20,21]
X3Y[10,11,12,13]
X4Y[18,19,20,21]
GCLK[12:15]
0
X4Y[26,27,28,29]
X4Y[26,27,28,29]
X2Y[26,27,28,29]
GCLK[16:19]
0
X2Y[26,27,28,29]
X4Y[26,27,28,29]
X2Y[26,27,28,29]
GCLK[20:23]
3(1)
X0Y[16,17,22,23]
X0Y[16,17,22,23]
X1Y[14,15,18,19]
GCLK[24:27]
3
X1Y[14,15,18,19]
X0Y[16,17,22,23]
X1Y[14,15,18,19]
GCLK[28:31]
2
X1Y[0,1,6,7]
X1Y[0,1,6,7]
X3Y[0,1,6,7]
GCLK
グ ロ ーバル ク ロ ッ ク ピ ンが DCM ま たは PLL に配線 さ れてい る 場合、BUFIO2 お よ び VCCO バン
ク の制限は有効な BUFIO2 ロ ケーシ ョ ンに影響 し ません。 グ ロ ーバル ク ロ ッ ク ピ ンに対 し 有効な
BUFIO2 ロ ケーシ ョ ンは表 1-1 を参照 し て く だ さ い。
デバ イ ス の上半分にあ る BUFIO2 (BUFIO2 ク ロ ッ ク 領域 TL、 TR、 LT、 RT) は、 デバ イ ス の上半
分にあ る DCM/PLL に し か配線で き ません。同様に、デバ イ ス の下半分 (BUFIO2 ク ロ ッ ク 領域 BL、
BR、 LB、 RB) に接続 さ れてい る BUFIO2 バ ッ フ ァ は、 デバ イ ス の下半分にあ る DCM/PLL に配線
し ます。 図 1-7 お よ び図 1-8 を参照 し て く だ さ い。
GCLK 入力ピ ンは ク ロ ッ ク バ ッ フ ァ を駆動す る のに使用 さ れます。 差動 ク ロ ッ ク 入力には、 2 つの
グ ロ ーバル ク ロ ッ ク 入力が必要です。 P お よ び N 入力は、 ク ロ ッ ク 入力ピ ン上の標準入力 と 同 じ コ
ン フ ィ ギ ュ レーシ ョ ンにな り ます。 ク ロ ッ ク 番号が連続 し た ク ロ ッ ク 入力 (偶数番号の ク ロ ッ ク と
それ よ り 1 大 き い奇数番号の ク ロ ッ ク ) がペア と な り ます。た と えば、GCLK0 と GCLK1、GCLK20
と GCLK21 が差動ペア と な り ます。
Spartan-6 FPGA には、グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ご と に 2 つの ク ロ ッ ク 入力があ り 、最高 16 個
ま での差動グ ロ ーバル ク ロ ッ ク 入力が使用で き ます。
デザ イ ンでは、 ク ロ ッ ク 入力ピ ンはすべて IBUFG プ リ ミ テ ィ ブで表わ さ れています。 IBUFG は通
常、最上位 ク ロ ッ ク ポー ト に対 し て推論 さ れますが、 さ ら に制御が必要な場合は、I ポー ト を直接最
上位ポー ト に接続、 O ポー ト を DCM、 BUFG、 ま たは汎用 ロ ジ ッ ク に接続 し て、 IBUFG を イ ン ス
タ ン シエー ト で き ます。 ほ と ん ど の合成ツールでは、 IBUFG を FPGA の ク ロ ッ ク リ ソ ース に接続
す る と 、 BUFG が自動的に推論 さ れます。
24
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク 入力
ク ロ ッ ク 構造のガ イ ド ラ イ ン
Spartan-6 FPGA SelectIO ロ ジ ッ ク の高度な機能を使用す る には、 広範囲の SelectIO ソ リ ュ ーシ ョ
ン を サポー ト す る ための異な る ク ロ ッ ク 構造が必要に な り ま す。 こ のセ ク シ ョ ン では、 最適なパ
フ ォーマ ン ス を得 る ために推奨 さ れ る ク ロ ッ キ ン グ ソ リ ュ ーシ ョ ンの概要を説明 し ます。 ク ロ ッ キ
ン グ ソ リ ュ ーシ ョ ンの リ ス ト は 「ア ド バン ス シ リ アル化用の高速 IOSERDES2 使用」 を参照 し て
く だ さ い。
SDR デー タ レー ト (IOB の FD レ ジ ス タ 、 IOSERDES2 な し )
デバ イ ス にデー タ を格納す る には次の 2 つの SelectIO オプシ ョ ンがあ り ます。
•
図 1-9 では、 FPGA ロ ジ ッ ク レ ジ ス タ を駆動す る BUFG (BUFIO2-DIVCLK) を使用 し I/O フ
リ ッ プ フ ロ ッ プを駆動す る BUFIO2 (IOCLK) が使用 さ れてい ます。IODELAY2 を使用 し て も
し な く て も 動作 し ます。
•
図 1-10 では、 FPGA ロ ジ ッ ク と I/O の両方を駆動す る BUFG (GCLK) が使用 さ れてい ます。
IODELAY2 を使用 し て も し な く て も 動作 し ます。
X-Ref Target - Figure 1-9
FPGA
Logic
IBUFG
BUFIO2
I
CLOCK
DIVCLK
BUFG
FDRSE
IOCLK
SERDESSTROBE
USE_DOUBLER = FALSE
C
CE
D
R
S
Q
UG382_c2_09_121709
図 1-9 : BUFIO2 を使用 し た I/O フ リ ッ プ フ ロ ッ プのク ロ ッ ク
X-Ref Target - Figure 1-10
FPGA
Logic
IBUFG
BUFG
CLOCK
FDRSE
C
CE
D
R
S
Q
UG382_c2_10_121709
図 1-10 : BUFG を使用 し た I/O フ リ ッ プ フ ロ ッ プの ク ロ ッ ク
DDR デー タ レ ー ト (IDDR2、 ODDR2、 IOSERDES2 な し )
IDDR2 お よ び ODDR2 プ リ ミ テ ィ ブの ク ロ ッ キ ン グには次のオプシ ョ ンがあ り ます。
•
パフ ォーマ ン ス が重要でない場合、 ク ロ ッ ク (C0) と ロ ーカル反転を使用 し た反転 ク ロ ッ ク
(C1) の両方を駆動する のに 1 つの DCM 出力を使用 し ます。 IODELAY2 を使用 し て も し な く
て も 動作 し ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
25
第 1 章 : ク ロ ッ ク リ ソ ース
•
最高速のパフ ォーマン ス を得 る には、 位相差が 180°の BUFG のあ る 2 つの DCM を使用 し ま
す。 IODELAY2 を使用 し て も し な く て も 動作 し ます。 図 1-24 を参照 し て く だ さ い。
•
DCM を使用 し ていない場合は、 GCLK 入力は 2 つの BUFIO2 を直接駆動す る必要があ り ま
す。 同 じ GCLK に接続 さ れてい る 1 つ目の BUFIO2 (USE_DOUBLER) は C0 用、 BUFIO2
(I_INVERT = TRUE) を使用 し た反転 ク ロ ッ ク を C1 用に と 、 2 つの BUFIO2 を使用 し ます。
FPGA ロ ジ ッ ク は BUFG (C0 BUFIO2-DIVCLK) に よ っ て駆動 さ れます。 図 1-21 を参照 し て
く だ さ い。
•
IODELAY2 を使用す る場合は IBUFGDS_DIFF_OUT が必要です (29 ページの図 1-14 を
参照 )。
•
•
IODELAY2 のシ ン グルエン ド 入力はサポー ト さ れてい ません。
双方向 イ ン タ ーフ ェ イ ス の場合、 入力お よ び出力 ロ ジ ッ ク の両方で同 じ デー タ レー ト (IDDR2
お よ び ODDR2) を使用す る必要があ り ます。 SDR と DDR の双方向 I/O を混在 さ せ る こ と は
で き ません。
ア ド バン ス シ リ アル化用の高速 IOSERDES2 使用
IOSERDES2 (SDR)
IOSERDES2 (SDR) には BUFIO2 が 1 つ必要です。 BUFIO2-SERDESSTROBE で駆動 さ れ る
IOCE お よ び BUFG (BUFIO2-DIVCLK) で駆動 さ れ る
CLKDIV のあ る
BUFIO2
(USE_DOUBLER = FALSE お よ び I_INVERT = FALSE) です。 FPGA ロ ジ ッ ク は BUFG
(BUFIO2 - DIVCLK) で駆動 さ れます。IODELAY2 を使用 し て も し な く て も 動作 し ます。図 1-18 を
参照 し て く だ さ い。
IOSERDES2 (DDR)
IOSERDES2 (DDR) には BUFIO2 が 2 つ必要です。 1 つ目の BUFIO2 (USE_DOUBLER = TRUE)
は、BUFIO2 (SERDESSTROBE) で駆動 さ れ る IOCE お よび BUFG (BUFIO2-DIVCLK) で駆動 さ
れ る CLKDIV を使用 し ます。2 つ目の BUFIO2 (I_INVERT = TRUE, USE_DOUBLER = FALSE)
は、 C1 ク ロ ッ ク 入力を駆動する のに使用 し ます。 図 1-21 を参照 し て く だ さ い。
•
IODELAY2 を使用す る場合は IBUFGDS_DIFF_OUT が必要です (49 ページの図 1-33 を
参照 )。
•
IODELAY2 のシ ン グルエン ド 入力はサポー ト さ れてい ません。
PLL を使用 し た IOSERDES2
SDR のみがサポー ト さ れてい ます。GCLK 入力は自動推論 さ れた BUFIO2 の DIVCLK 出力を駆動
し ます。こ の出力は PLL ク ロ ッ ク 出力を駆動 し ます。PLL は BUFG 出力か ら の BUFPLL の PLLIN
入力お よ び BUFPLL の GCLK を駆動す る ため、 2 つの ク ロ ッ ク 出力を使用 し ます。 BUFPLL の
LOCKED 入力を PLL の LOCKED 出力に接続 し て く だ さ い。 IODELAY2 を使用 し て も し な く て
も 動作 し ます。 図 1-22 を参照 し て く だ さ い。
双方向 イ ン タ ー フ ェ イ ス の場合、 入力お よ び出力の両方で入力 ロ ジ ッ ク と 出力 ロ ジ ッ ク と 同 じ
DATA_RATE を設定す る必要があ り ます。SDR お よ び DDR の双方向 I/O を混在 さ せ る こ と はで き
ません。
グ ローバル ク ロ ッ ク 入力バ ッ フ ァ のプ リ ミ テ ィ ブ
表 1-7 の IBUFG お よ び IBUFGDS プ リ ミ テ ィ ブは、 ク ロ ッ ク 入力バ ッ フ ァ の異な る コ ン フ ィ ギ ュ
レーシ ョ ンです。 IOSTANDARD 属性を該当す る規格に設定す る と 、 こ れ ら の 2 つのプ リ ミ テ ィ ブ
を Spartan-6 FPGA の I/O リ ソ ース に対 し て使用で き る よ う にな り ます。 使用可能な I/O 規格の詳
細は、 『Spartan-6 FPGA SelectIO リ ソ ース ユーザー ガ イ ド 』 を参照 し て く だ さ い。
26
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
高速 I/O ク ロ ッ ク ネ ッ ト ワー ク 接続の例
表 1-7 : ク ロ ッ ク バ ッ フ ァ のプ リ ミ テ ィ ブ
プリ ミティブ
IBUFG
IBUFGDS
入力
出力
説明
I
O
シ ン グルエン ド I/O の入力 ク ロ ッ ク バ ッ フ ァ
I、 IB
O
差動 I/O の入力 ク ロ ッ ク バ ッ フ ァ
高速 I/O ク ロ ッ ク ネ ッ ト ワー ク接続の例
こ のセ ク シ ョ ンにあ る 例は、 高速 イ ン タ ーフ ェ イ ス用にグ ロ ーバル ク ロ ッ ク バ ッ フ ァ 、 I/O ク ロ ッ
ク バ ッ フ ァ 、 お よび I/O タ イ ルが ど の よ う に使用 さ れ る かを示 し てい ます。
図 1-11 の例は、 ISERDES2 に ク ロ ッ ク 供給す る ための簡単な イ ンプ リ メ ン テーシ ョ ン を示 し てい
ます。 BUFIO2 は、 FPGA ロ ジ ッ ク に ク ロ ッ ク と 、 ISERDES2 で使用 さ れ る ス ト ロ ーブ信号を提供
し ます。 シ リ アル デー タ は I/O ク ロ ッ ク ネ ッ ト ワ ー ク にあ る IOCLK を使用 し て出力 さ れます。 パ
ラ レ ル デー タ は、 DIVCLK 出力 と 同期 SERDESSTROBE 信号を使用 し て FPGA ク ロ ッ ク 領域に
出力 さ れます。
X-Ref Target - Figure 1-11
FPGA
Logic
IBUFG
CLOCK
BUFIO2
DIVCLK
I
BUFG
IOCLK
ISERDES2
CLKDIV
CLK0
CLK1
SERDESSTROBE
IOCE
USE_DOUBLER = FALSE
DATA_RATE = SDR
UG382_c1_08_120809
図 1-11 : 例 1: ISERDES2 (DATA_RATE = SDR) を駆動する BUFIO2
シ リ アル化 さ れたデー タ が入力 ク ロ ッ ク の立ち上が り と 立ち下が り エ ッ ジの両方で ク ロ ッ ク と 同期
す る DDR アプ リ ケーシ ョ ンでは、 図 1-12 に示す よ う に、CLK1 を駆動する ために 2 つ目の反転 ク
ロ ッ ク が必要にな り ます。デー タ が IOCLK の両エ ッ ジで同期する ため、USE_DOUBLER = TRUE
と 設定 し て、 DIVCLK は DIVIDE/2 で逓倍 さ れます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
27
第 1 章 : ク ロ ッ ク リ ソ ース
X-Ref Target - Figure 1-12
FPGA
Logic
IBUFG
CLOCK
BUFIO2
DIVCLK
I
ISERDES2
BUFG
CLKDIV
IOCLK
CLK0
CLK1
SERDESSTROBE
USE_DOUBLER = TRUE
I_INVERT = FALSE
IOCE
I
DATA_RATE = DDR
BUFIO2
DIVCLK
I
IOCLK
SERDESSTROBE
USE_DOUBLER = FALSE
I_INVERT = TRUE
UG382_c1_09_120809
図 1-12 : 例 2: ISERDES2 (DATA_RATE = DDR) を駆動する BUFIO2
入力 ク ロ ッ ク がシ リ アル デー タ ではな く パ ラ レ ル デー タ の周波数で実行 さ れ る、 ビデオ アプ リ
ケーシ ョ ン用の ピ ク セル ク ロ ッ ク な ど のアプ リ ケーシ ョ ンでは、入力 ク ロ ッ ク を高速 I/O ク ロ ッ ク
を生成す る ために入力 ク ロ ッ ク を乗算す る必要があ り ます。図 1-13 は、ISERDES に必要な高速 I/O
ク ロ ッ ク を提供す る PLL を示 し てい ます。
GCLK ク ロ ッ ク 入力は、 BUFIO2 を使用 し て自動的に PLL お よ び DCM ク ロ ッ ク 入力に配線 さ れ
ます。 こ の BUFIO2 配線パ ス に よ り 、 必要な場合入力パ ス は BUFIO2FB を使用 し て ス キ ュー調整
さ れます。
PLL は CLKOUT0 出力で I/O ク ロ ッ ク ネ ッ ト ワ ー ク を駆動 し ます。 BUFIO2FB は、プ ラ イ マ リ の
BUFIO2 に関連 し た入力配線遅延の ス キ ューを調整す る よ う バ ラ ン ス を取 り ます。 FPGA ク ロ ッ ク
領域は、 BUFG を使用 し た別の PLL ク ロ ッ ク 出力で駆動 さ れます。
28
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
高速 I/O ク ロ ッ ク ネ ッ ト ワー ク 接続の例
X-Ref Target - Figure 1-13
FPGA
Logic
CLK_FEEDBACK = CLKOUT0
PLL_BASE
BUFIO2
CLKOUT0
DIVCLK
CLOCK
I
IOCLK
SERDESSTROBE
CLKIN
CLKOUT1
CLKDIV
CLKFB
CLKOUT2
CLK0
RST
CLKOUT3
CLK1
CLKOUT4
IOCE
BUFIO2FB
I
ISERDES2
BUFG
CLKOUT5
O
CLKFBOUT
DATA_RATE = SDR
LOCKED
BUFPLL
PLLIN
LOCK
GCLK
IOCLK
LOCKED
SERDESSTROBE
UG382_c1_10_121709
図 1-13 : 例 3 : 基本 PLL ISERDES2 (SDR)
高速 ソ ース 同期出力のデザ イ ンの場合、GCLK 入力か ら I/O ク ロ ッ ク 領域ま での タ イ ミ ン グ遅延が
正確であ る 必要はあ り ません。タ イ ミ ン グ ア ラ イ メ ン ト が不要な場合は、ク ロ ッ ク バ ッ フ ァ を使用
せずに PLL で CLKFBOUT か ら CLKFBIN への専用フ ィ ー ド バ ッ ク を使用す る こ と がで き ます
(図 1-14)。
X-Ref Target - Figure 1-14
BUFG
IBUFG
CLOCK
PLL_BASE
BUFIO2
DIVCLK
I
CLKOUT0
CLKIN
IOCLK
CLKFBIN
SERDESSTROBE
RST
CLKOUT1
CLKOUT2
CLKOUT3
BUFPLL
OSERDES2
GCLK
LOCK
PLLIN
IOCLK
LOCKED
CLKOUT4
CLKDIV
CLK0
SERDESSTROBE
CLK1
IOCE
CLKOUT5
CLKFBOUT
LOCKED
DATA_RATE_OQ = SDR
DATA_RATE_OT = SDR
CLK_FEEDBACK = CLKFBOUT
UG382_c1_11_120809
図 1-14 : 例 4 : 基本 PLL OSERDES2 (SDR)
DCM_SP のパフ ォーマン ス が十分なデザ イ ンでは、 BUFG ク ロ ッ ク バ ッ フ ァ を最高 3 つま で使用
し て IOLOGIC (IDDR2) を駆動す る ためにDCM_SP を使用す る こ と がで き ます。 入力配線遅延を
一致 さ せ る ため、 CLK0 ま たは CLK2X を使用 し て BUFIO2FB を駆動す る必要があ り ます (図
1-15)。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
29
第 1 章 : ク ロ ッ ク リ ソ ース
DCM を使用 し て最善のデューテ ィ サ イ ク ル パフ ォーマン ス を維持する には、 別の DCM ク ロ ッ ク
出力を使用し て C0 および C1 を駆動 し ます。各 DCM 出力は個別にグ ローバル バ ッ フ ァ を駆動 し ま
す。可能ではあ り ますが、BUFG を使用し て I/O タ イ ル内の 1 位相を ロ ーカルで反転する のは避けて
く だ さ い。 ク ロ ッ ク の 1 つを ローカルで反転 さ せる と 、 デューテ ィ サ イ ク ルの歪みが発生 し ます。
X-Ref Target - Figure 1-15
IBUFG
DIVCLK
I
GCLK
DCM_SP
BUFIO2
CLKIN
IOCLK
CLK2X
CLKFBIN
SERDESSTROBE
BUFIO2FB
I
IDDR2
BUFG
CLK0
BUFG
C0
CLKFX
RST
C1
CLKFX180
BUFG
LOCKED
O
CLKFEEDBACK = <1X / 2X>
UG382_c1_12_120809
図 1-15 : 例 5 : 入力への DCM スキ ュ ー調整
GTP ト ラ ン シーバを使用 し てい る 場合、GTP リ フ ァ レ ン ス ク ロ ッ ク に CMT ( ク ロ ッ ク マネージ メ
ン ト タ イ ル) への接続に使用可能な BUFIO2 への専用配線接続が含まれます。 図 1-16 の例 6 は、
BUFIO2FB を使用 し て配線 し た GTP_DUAL か ら の フ ィ ー ド バ ッ ク パ ス と PLL_BASE を使用 し
た シ ン グル レーンの PCI Express の例です。詳細は 『 Spartan-6 FPGA GTP ト ラ ン シーバ ユーザー
ガ イ ド 』 (UG386) を参照 し て く だ さ い。
X-Ref Target - Figure 1-16
BUFIO2 DIVCLK
I
IOCLK
GTPCLKOUT0[0]
PLL_BASE
SERDESSTROBE
BUFIO2FB
GTPCLKFBWEST[0]
I
O
GTPCLKFBSEL0WEST=00
CLKIN
CLKOUT0
CLKFBIN CLKOUT1
CLKOUT2
RST
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
LOCKED
BUFG
BUFG
MUX
TXUSRCLK0
CLK_FEEDBACK = CLKOUT0
COMPENSATION = SOURCE_SYNCHRONOUS
RXUSRCLK0
TXUSRCLK1
RXUSRCLK1
TXUSRCLK20
RXUSRCLK20
TXUSRCLK21
RXUSRCLK21
PCIe One Lane
ug382_c1_16_020510
図 1-16 : 例 6 : PCI Express のシ ングル レーン ク ロ ッ キング
30
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
高速 I/O ク ロ ッ ク ネ ッ ト ワー ク 接続の例
図 1-17 の例 7 は、入力周波数 と フ ィ ー ド バ ッ ク 周波数が異な る シ ン グル レーンの PCI Express デザ
イ ン を示し ています。入力周波数 と フ ィ ー ド バ ッ ク 周波数が一致し ないので、PLL 設定を解析する 必
要があ り ます。こ の例では、GTPCLKOUT0[0] が 100MHz の ク ロ ッ ク です。GTP_DUAL および PLL
の両方の要件を満たす リ フ ァ レ ン ス ク ロ ッ ク 周波数を作成する には、 TXDATAWIDTH0[0] = 2 を
設定 し て 250MHz の リ フ ァ レ ン ス ク ロ ッ ク を選択 し ます。
PFD (位相周波数検出器) の周波数 と 一致す る よ う な柔軟性を持たせ る こ と がで き る よ う 、PLL では
CLK_FEEDBACK = CLKOUT0 を使用で き ます。 PFD が 50MHz で動作す る と き 、 VCO は
500MHz です。
PLL 設定の選択方法の詳細は、 第 3 章 「位相 ロ ッ ク ループ (PLL)」 を参照 し て く だ さ い。 詳細は、
UG386 『Spartan-6 FPGA GTP ト ラ ン シーバ ユーザー ガ イ ド 』 を参照 し て く だ さ い。
X-Ref Target - Figure 1-17
BUFIO2 DIVCLK
I
100 MHz
IOCLK
GTPCLKOUT0[0]
PLL_BASE
SERDESSTROBE
BUFIO2FB
GTPCLKFBWEST[0]
I
O
250 MHz
GTPCLKFBSEL0WEST=00
CLKIN
CLKOUT0
CLKFBIN CLKOUT1
CLKOUT2
RST
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
LOCKED
BUFG
250 MHz
62.5 MHz
BUFG
125 MHz
BUFG
MUX
TXUSRCLK0
CLK_FEEDBACK = CLKOUT0
COMPENSATION = SOURCE_SYNCHRONOUS
CLKFB_MULT = 5
DIVCLK_DIVIDE = 2
CLKOUT0_DIVIDE = 2
CLKOUT1_DIVIDE = 8
CLKOUT2_DIVIDE = 4
RXUSRCLK0
TXUSRCLK1
RXUSRCLK1
TXUSRCLK20
RXUSRCLK20
TXUSRCLK21
RXUSRCLK21
TXDATAWIDTH0[0] = 2
FTXUSRCLK2 = FTXUSRCLK/4
ug382_c1_17_020510
図 1-17 : 例 7 : ク ロ ッ ク が 100MHz の PCI Express のシ ングル レーンのク ロ ッ キング
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
31
第 1 章 : ク ロ ッ ク リ ソ ース
ク ロ ッ ク バ ッ フ ァ お よびマルチプ レ クサ
ク ロ ッ ク バ ッ フ ァ お よ びマルチプ レ ク サは、 ク ロ ッ ク 信号を直接 ク ロ ッ ク ラ イ ン (BUFG ま たは
BUFPLL) に駆動する か、 2 つの関連のない ク ロ ッ ク 信号、 可能であれば非同期 ク ロ ッ ク 信号か ら 1
つを選択す る ために使用で き ます (BUFGMUX)。
ク ロ ッ ク バ ッ フ ァ は、 ク ロ ッ ク 信号を駆動する よ う に設計 さ れてい ます。
•
ス ラ イ ス の リ セ ッ ト / セ ッ ト に使用す る と き は、次のいずれかの ロ ケーシ ョ ンに配置す る必要が
あ り ます 。
BUFGMUX_X2Y9 、 BUFGMUX_X2Y10 、 BUFGMUX_X2Y11 、 BUFGMUX_X2Y12 、
BUFGMUX_X3Y13、BUFGMUX_X3Y14、BUFGMUX_X3Y15、ま たは BUFGMUX_X3Y16
•
ブ ロ ッ ク RAM、ス ラ イ ス の組み合わせ入力、ま たは ク ロ ッ ク イ ネーブルの リ セ ッ ト / セ ッ ト 、ま
たは BUFGMUX の入力 と し て使用す る と き は、 次のいすれかの ロ ケーシ ョ ンに配置す る必要
があ り ます。
BUFGMUX_X2Y1 、 BUFGMUX_X2Y2 、 BUFGMUX_X2Y3 、 BUFGMUX_X2Y4 、
BUFGMUX_X3Y5、 BUFGMUX_X3Y6、 BUFGMUX_X3Y7、 ま たは BUFGMUX_X3Y8
グ ローバル ク ロ ッ ク バ ッ フ ァ プ リ ミ テ ィ ブ
表 1-8 に、 グ ロ ーバル ク ロ ッ ク バ ッ フ ァ のプ リ ミ テ ィ ブ を示 し ます。
表 1-8 : グローバル ク ロ ッ ク バ ッ フ ァ プ リ ミ テ ィ ブ
プリ ミティブ
入力
出力
制御
BUFGMUX
I0、 I1
O
S
BUFGMUX_1
I0、 I1
O
S
BUFG
I
O
-
BUFGCE
I
O
CE
BUFGCE_1
I
O
CE
BUFGMUX
各 BUFGMUX プ リ ミ テ ィ ブは、 図 1-18 に示す よ う に、 2:1 マルチプ レ ク サです。 セ レ ク ト ラ イ ン
S に よ り 、 I0 ま たは I1 の ど ち ら か を使用 し て BUFGMUX 出力信号 O を駆動す る かを選択 し ます
(表 1-9 を参照)。 Spartan-6 FPGA デー タ シー ト で指定 さ れてい る よ う に、 S 入力にはセ ッ ト ア ッ プ
タ イ ム要件があ り ます。 極性は指定可能です。
X-Ref Target - Figure 1-18
BUFGMUX
I1
O
I0
S
ug382_ c1_14_120809
図 1-18 : BUFGMUX プ リ ミ テ ィ ブ
32
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク バ ッ フ ァ およびマルチ プ レ ク サ
表 1-9 : BUFGMUX プ リ ミ テ ィ ブ
S 入力
O 出力
0
I0 入力
1
I1 入力
表 1-10 : BUFGMUX 属性
属性名
CLK_SEL_TYPE
説明
値
同期ま たは非同期を指定
デ フ ォル ト 値
SYNC、 ASYNC
SYNC
BUFGMUX は、 1 つの ク ロ ッ ク ソ ース か ら グ リ ッ チのない完全非同期の ク ロ ッ ク ソ ース に切 り 替
え る こ と で タ イ ミ ン グ問題を軽減 し ます。 S が変化 し て別の ク ロ ッ ク ソ ース が選択 さ れ る と 、 いず
れかの入力の次のア ク テ ィ ブ ク ロ ッ ク エ ッ ジ ま で、出力が非ア ク テ ィ ブ状態に保持 さ れます。 こ の
と き の出力は、 High ま たは Low にで き ます(デフ ォル ト は Low)。 ク ロ ス に接続 さ れた レ ジ ス タ ペ
アに よ り 、 BUFGMUX の出力で不正な ク ロ ッ ク エ ッ ジが生成 さ れ る の を防ぎ ます。
S 入力が変化す る と 、現在の ク ロ ッ ク 入力が Low にな り 、新 し い ク ロ ッ ク 入力が High か ら Low に
遷移す る ま で、 新 し い入力は O に出力 さ れません (表 1-11)。 出力の切 り 替えは、 入力の Low か ら
High への最初の遷移では発生 し ないため、 出力 ク ロ ッ ク パルス が入力 ク ロ ッ ク パルス の最短パル
ス よ り も 短 く な る こ と はあ り ません。
S 入力が Low の場合は I0 が選択 さ れ、 High の場合は I1 が選択 さ れますが、極性は指定可能で、 I0
と I1 を入れ替え る こ と がで き ます。 ク ロ ッ ク 信号の極性は各フ リ ッ プ フ ロ ッ プで指定可能で、 立ち
上が り エ ッ ジ ま たは立ち下が り エ ッ ジで ト リ ガで き る ため、2 つの異な る ク ロ ッ ク 信号を生成 し て、
伝搬す る 必要はあ り ません。
表 1-11 : BUFGMUX の機能
入力
出力
I0
I1
S
O
I0
X
0
I0
X
I1
1
I1
X
X
↑
0
X
X
↓
0
ク ロ ッ ク 入力が 1 つだけ必要な場合、 2 つ目の ク ロ ッ ク 入力お よ びセ レ ク ト ラ イ ンは使用 さ れない
ため、 BUFG プ リ ミ テ ィ ブ を選択す る必要があ り ます。
BUFGMUX は、 電源供給時お よ びグ ロ ーバル セ ッ ト / リ セ ッ ト (GSR) のアサー ト 時に I0 が選択 さ
れ る よ う 初期化 さ れます。 シ ミ ュ レーシ ョ ンで も 、 時間 0 で S = 0 が選択 さ れ る よ う にす る必要が
あ り ます。時間 0 で S = 1 が選択 さ れ る と 、I1 の次の立ち下が り エ ッ ジ ま で出力が不明にな り ます。
セ レ ク ト ラ イ ンは、 ク ロ ッ ク の ス テー ト お よ び遷移に関係な く 常時変更可能ですが、 選択 さ れた ク
ロ ッ ク 入力の立ち上が り エ ッ ジの前、セ ッ ト ア ッ プ タ イ ム内に S が変化す る と 、出力に ラ ン ト パル
ス が現れ る こ と があ り ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
33
第 1 章 : ク ロ ッ ク リ ソ ース
BUFGMUX_1
BUFGMUX と BUFGMUX_1 では、 S の値が変化 し た後 ク ロ ッ ク が切 り 替わ る ま で保持 さ れ る 出
力ス テー ト が異な り ます。BUFGMUX では出力ス テー ト が 0 に、BUFGMUX_1 では出力ス テー ト
が 1 に保持 さ れます (表 1-12)。
表 1-12 : BUFGMUX_1 の機能
入力
出力
I0
I1
S
O
I0
X
0
I0
X
I1
1
I1
X
X
↑
1
X
X
↓
1
図 1-19 は BUFGMUX_1 の タ イ ミ ン グ図です。
X-Ref Target - Figure 1-19
S
I0
I1
O
begin
switching using I1
ug382_c1_15_120809
図 1-19 : BUFGMUX の タ イ ミ ング図
図 1-19 は次の よ う にな っ てい ます。
•
現在の ク ロ ッ ク は I0 です。
•
S は High にな っ てい ます。
•
I0 が High の場合、 マルチプ レ ク サは I0 が Low にアサー ト さ れ る ま で待機 し ます。
•
I0 が Low にな る と 、 I1 が High か ら Low へ と 遷移す る ま でマルチプ レ ク サ出力は Low の ま
ま にな り ます。
•
I1 が High か ら Low へ と 遷移す る と 、 出力は I1 に切 り 替わ り ます。
•
グ リ ッ チ ま たは短いパルスは出力に現れません。
BUFGMUX_1 は立ち上が り エ ッ ジで変化 し 、入力が切 り 替わ る前に High に保持 さ れます。図 1-20
は BUFGMUX_1 の タ イ ミ ン グ図です。
34
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク バ ッ フ ァ およびマルチ プ レ ク サ
RXUSRCLK0
X-Ref Target - Figure 1-20
TXUSRCLK1
RXUSRCLK1
TXUSRCLK20
RXUSRCLK20
TXUSRCLK21
RXUSRCLK21
PCIe One Lane
図 1-20 : BUFGMUX_1 の タ イ ミ ング図
図 1-20 は次の よ う にな っ てい ます。
•
現在の ク ロ ッ ク は I0 です。
•
S は High にな っ てい ます。
•
I0 が High の場合、 マルチプ レ ク サは I0 が High にアサー ト さ れ る ま で待機 し ます。
•
I0 が High にな る と 、 I1 が Low か ら High へ と 遷移す る ま でマルチプ レ ク サ出力は High の ま
ま にな り ます。
•
I1 が Low か ら High へ と 遷移す る と 、 出力は I1 に切 り 替わ り ます。
•
グ リ ッ チ ま たは短いパルスは出力に現れません。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
35
第 1 章 : ク ロ ッ ク リ ソ ース
BUFG
BUFGMUX は、デバ イ ス に含まれ る物理的な ク ロ ッ ク バ ッ フ ァ ですが、1 入力の ク ロ ッ ク バ ッ フ ァ
と し て も 使用で き ます。 BUFG ク ロ ッ ク バ ッ フ ァ プ リ ミ テ ィ ブ (図 1-21 を参照) は、 1 つの ク ロ ッ
ク 信号を ク ロ ッ ク ネ ッ ト ワー ク に駆動 し ます。 ク ロ ッ ク 選択機能がないだけで、 基本的には
BUFGMUX と 同 じ です。 BUFG は、 複数の Virtex お よ び Spartan アーキ テ ク チ ャ で共通の ク ロ ッ
ク バ ッ フ ァ プ リ ミ テ ィ ブです。
X-Ref Target - Figure 1-21
BUFG
O
I
ug382_c1_17_120809
図 1-21 : BUFG プ リ ミ テ ィ ブ
図 1-22 に示す よ う に、 BUFG は BUFGMUX か ら 構築 さ れてい ます。
X-Ref Target - Figure 1-22
BUFGMUX
I1
O
I
I0
S
GND
ug382_c1_18_120809
図 1-22 : BUFGMUX から 構築 さ れた BUFG
36
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク バ ッ フ ァ およびマルチ プ レ ク サ
BUFGCE お よび BUFGCE_1
BUFGCE プ リ ミ テ ィ ブは、 BUFGMUX の ク ロ ッ ク 選択機能を使用 し て、 ク ロ ッ ク バ ッ フ ァ の イ
ネーブル入力を作成 し ます (図 1-23 を参照)。 BUFGCE は、 ク ロ ッ ク イ ネーブル入力付 き グ ロ ーバ
ル ク ロ ッ ク バ ッ フ ァ です。 O 出力は、 ク ロ ッ ク イ ネーブル (CE) が Low (非ア ク テ ィ ブ) の と き に
0 にな り ます。CE が High にな る と 、I 入力の値が O に出力 さ れます。表 1-13 はその真理値表です。
X-Ref Target - Figure 1-23
BUFGCE
CE
O
I
ug382_c1_19_120809
図 1-23 : BUFGCE プ リ ミ テ ィ ブ
表 1-13 : BUFGCE 真理値表
S 入力
O 出力
I
CE
O
X
0
0
X
1
I
BUFGCE は、 BUFGMUX で 1 つの入力を固定値にす る こ と に よ っ て構成 さ れてい ます。 デ ィ ス
エーブルの場合のデフ ォ ル ト 値は Low です。 BUFGCE_1 プ リ ミ テ ィ ブは、 VCC を I1 に接続す る
こ と に よ り 、デ ィ ス エーブルの場合のデフ ォ ル ト 値を High に し てい ます。 ま た、入力間の遷移中に
グ リ ッ チのない動作を提供す る ために BUFGMUX_1 プ リ ミ テ ィ ブが使用 さ れます。
エ レ メ ン ト はプ リ ミ テ ィ ブですが、 図 1-24 に等価機能を示 し ます。 CE の反転は
BUFGMUX 機能に組み込まれてい ます。 0 は、 未使用の ど の LUT か ら で も 供給で き ます。
ラ イブラ リ
X-Ref Target - Figure 1-24
BUFGMUX
GND
I
I1
O
I0
S
INV
CE_IN
ug382_c1_20_120809
図 1-24 : BUFGCE の等価機能
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
37
第 1 章 : ク ロ ッ ク リ ソ ース
高速 I/O ク ロ ッ ク リ ージ ョ ンの ク ロ ッ ク バ ッ フ ァ
I/O タ イ ルのパフ ォーマン ス を向上 さ せ る ため、 Spartan-6 FPGA には、 パフ ォーマン ス が最 も 重要
と な る 接続用に専用 I/O ク ロ ッ ク ネ ッ ト ワ ー ク が含まれてい ます。 表 1-14 に記載 さ れてい る I/O
ク ロ ッ ク バ ッ フ ァ は、 I/O ク ロ ッ ク ネ ッ ト ワ ー ク と FPGA ロ ジ ッ ク を接続 し 、 I/O タ イ ルにあ る
IODELAY2、 IDDR2、 ODDR2、 ISERDES2、 お よ び OSERDES2 ロ ジ ッ ク で使用で き ます。 I/O ク
ロ ッ ク ネ ッ ト ワー ク で使用可能な I/O ク ロ ッ ク バ ッ フ ァ 出力は表 1-15 に記載 さ れてい ます。
表 1-14 : I/O ク ロ ッ ク バ ッ フ ァ
プリ ミティブ
入力
出力
制御
BUFIO2
I
IOCLK、 DIVCLK、 SERDESSTROBE
BUFIO2_2CLK
I、 IB
DIVCLK、 IOCLK、 SERDESSTROBE
BUFPLL
GCLK、 PLLIN、 LOCKED IOCLK、 SERDESSTROBE、 LOCK
BUFPLL_MCB
PLLIN0、 PLLIN1
IOCLK0, IOCLK1、 SERDESSTROBE0、
SERDESSTROBE1
BUFIO2_2FB
I
O
表 1-15 には、 I/O ク ロ ッ ク ネ ッ ト ワ ー ク で使用可能なポー ト が記載 さ れてい ます。
表 1-15 : I/O ク ロ ッ ク ネ ッ ト ワー ク 信号
プリ ミティブ
I/O ク ロ ッ ク ネ ッ ト ワー ク 入力
I/O ク ロ ッ ク ネ ッ ト ワー ク 出力
リ ソ ース
BUFIO2
I
IOCLK(1)、 SERDESSTROBE(1)
I/O ク ロ ッ ク バ ッ フ ァ
BUFIO2_2CLK
I
IOCLK(1)、 SERDESSTROBE(1)
I/O ク ロ ッ ク バ ッ フ ァ
BUFPLL
IOCLK(1)、 SERDESSTROBE(1)
I/O ク ロ ッ ク バ ッ フ ァ
BUFPLL_MCB
IOCLK0(1)、 IOCLK1(1)、
SERDESSTROBE0(1)、
SERDESSTROBE1(1)
I/O ク ロ ッ ク バ ッ フ ァ
BUFIO2_2FB
I
I/O ク ロ ッ ク バ ッ フ ァ
ILOGIC2
C0、 C1
I/O タ イ ル ロ ジ ッ ク
OLOGIC2
C0、 C1
I/O タ イ ル ロ ジ ッ ク
ISERDES2
CLK0、 CLK1、 IOCE
I/O タ イ ル ロ ジ ッ ク
OSERDES2
CLK0、 CLK1、 IOCE
I/O タ イ ル ロ ジ ッ ク
IODELAY2
IOCLK0、 IOCLK1
GTP_DUAL
DATAOUT
I/O タ イ ル ロ ジ ッ ク
CLKOUT0[1:0]、 CLKOUT1[1:0]
GTP_DUAL タ イ ル
メモ :
1. 出力は I/O ク ロ ッ ク ネ ッ ト ワ ー ク への接続専用です。 FPGA ロ ジ ッ ク へは接続で き ません。
38
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク バ ッ フ ァ およびマルチ プ レ ク サ
BUFIO2
BUFIO2 には GCLK ク ロ ッ ク 入力が使用 さ れ、図 1-25 にあ る よ う に ク ロ ッ ク 出力 2 つ と ス ト ロ ー
ブ パルス 1 つが生成 さ れます。
X-Ref Target - Figure 1-25
BUFIO2
DIVCLK
IOCLK
I
SERDESSTROBE
ug382_c1_21_120809
図 1-25 : BUFIO2 プ リ ミ テ ィ ブ
表 1-16 には BUFIO2 ポー ト が リ ス ト さ れてい ます。IOCLK 出力はバ ッ フ ァ を介 し た入力 ク ロ ッ ク
(I) です。DIVCLK 出力の周期お よ びデ ューテ ィ サ イ ク ルは、表 1-17 に リ ス ト さ れてい る 属性の設
定に よ っ て変わ り ます。
表 1-16 : BUFIO2 ポー ト の定義
ポー ト 名
タ イプ
定義
ク ロ ッ ク 入力。
I
入力
IODELAY2 (DATAOUT) ま たは GTP_DUAL タ イ ル
(GTPCLKOUT0[1:0]、 GTPCLKOUT1[1:0]) に接続で
き ます。
IOCLK
出力
I/O ク ロ ッ ク ネ ッ ト ワ ー ク 出力。 IODDR2 (C0 ま たは
C1)、 IOSERDES2 (CLK0 ま たは CLK1)、 ま たは
IODELAY2 (IOCLK0、 IOCLK1) に接続 し ます。
DIVCLK
出力
逓倍 ク ロ ッ ク 出力。
BUFG、PLL_BASE (CLKIN)、DCM_SP (CLKIN)、お
よ び DCM_CLKGEN (CLKIN) に接続 し ます。
SERDESSTROBE
出力
IOSERDES2 (IOCE) 駆動用の I/O ク ロ ッ ク ネ ッ ト
ワ ー ク 出力。
表 1-17 : BUFIO2 属性
属性名
説明
値
デ フ ォル ト 値
DIVCLK お よ び SERDESSTRONBE の
分周値を設定 し ます。
DIVIDE
FDIVCLK = FIN / DIVIDE
<USE_DOUBLER = FALSE>
1、 2、 3、 4、 5、
1
6、 7、 8
FDIVCLK = (2 * FIN) / DIVIDE
<USE_DOUBLER = TRUE>
DIVIDE_BYPASS
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DIVCLK 出力 ソ ース は FALSE の場合
分周器か ら 、TRUE の場合 は分周器をバ
イ パ ス し た入力 I か ら です。
japan.xilinx.com
TRUE、 FALSE
TRUE
39
第 1 章 : ク ロ ッ ク リ ソ ース
表 1-17 : BUFIO2 属性 (続き )
属性名
I_INVERT
USE_DOUBLER
説明
値
TRUE に設定 さ れてい る 場合、
BUFIO2 の配置は BUFIO2 の
I_INVERT ロ ケーシ ョ ンに制限 さ れ ま
す ( 図 1-5)。 IOCLK 出力は 180° シ フ
ト さ れま す。 主に IODDR2 ま たは
IOSERDES2 (DATA_RATE = DDR) に
使用 さ れ ます。
TRUE、 FALSE
FALSE
TRUE、 FALSE
FALSE
DATA_RATE = DDR の
ISERDES2/OSERDES2 に使用 さ れま
す。 TRUE に設定 さ れてい る 場合、
DIVCLK お よ び SERDESSTROBE 周波
数が倍にな り ます。
デ フ ォル ト 値
FDIVCLK = (2 * FIN) / DIVIDE
表 1-17 にあ る よ う に、 DIVIDE_BYPASS が TRUE の場合、 DIVCLK 出力はバ ッ フ ァ を介 し た入
力 ク ロ ッ ク で、SERDESSTROBE 出力は 1 に駆動 さ れます。DIVIDE_BYPASS が FALSE の場合、
USE_DOUBLER を使用す る場合を除 き、DIVCLK お よ び SERDESSTROBE 出力は除算属性で設
定 さ れてい る 値で分周 さ れた入力 ク ロ ッ ク にな り ます。
I/O ク ロ ッ ク ネ ッ ト ワー ク が DDR ク ロ ッ ク で駆動 さ れ る アプ リ ケーシ ョ ンの場合は、 USEDOUBLER を TRUE に設定す る必要があ り ます。 USE_DOUBLER = TRUE に設定す る と 、
DATA_RATE = DDR
の
IOSERDES2
に接続す る 場合、 必要な DIVCLK お よ び
SERDESSTROBE 出力が提供 さ れます (図 1-26)。 180°の位相シ フ ト を作成す る には追加の
BUFIO2 が必要です (図 1-27)。
40
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク バ ッ フ ァ およびマルチ プ レ ク サ
X-Ref Target - Figure 1-26
BUFIO2
USE_DOUBLER = FALSE
SERDESSTROBE
RXCLK
IOCLK
Single-ended or Differential
DIVCLK
RXCLK
IOCLK
DIVIDE = 1
(Default)
DIVIDE = 2
DIVCLK
SERDESSTROBE
DIVCLK
SERDESSTROBE
DIVIDE = 3
DIVCLK
SERDESSTROBE
DIVIDE = 4
DIVCLK
SERDESSTROBE
DIVIDE = 5
DIVCLK
SERDESSTROBE
DIVIDE = 6
DIVCLK
SERDESSTROBE
DIVIDE = 7
DIVCLK
SERDESSTROBE
DIVIDE = 8
DIVCLK
SERDESSTROBE
UG382_c1_22_120809
図 1-26 : BUFIO2_2CLK SDR ク ロ ッ ク
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
41
第 1 章 : ク ロ ッ ク リ ソ ース
X-Ref Target - Figure 1-27
BUFIO2
USE_DOUBLER = TRUE
SERDESSTROBE
RXCLK
IOCLK0
Single-ended or Differential
DIVCLK
BUFIO2
I_INVERT = TRUE
IOCLK1
RXCLK
IOCLK0
IOCLK1
DIVIDE = 2
(DEFAULT)
DIVIDE = 3
DIVCLK
SERDESSTROBE
DIVCLK
SERDESSTROBE
DIVIDE = 4
DIVCLK
SERDESSTROBE
DIVIDE = 5
DIVCLK
SERDESSTROBE
DIVIDE = 6
DIVCLK
SERDESSTROBE
DIVIDE = 7
DIVCLK
SERDESSTROBE
DIVIDE = 8
DIVCLK
SERDESSTROBE
UG382_c1_23_120809
図 1-27 : BUFIO2 DDR ク ロ ッ ク
42
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク バ ッ フ ァ およびマルチ プ レ ク サ
各 BUFIO2 は I/O イ ン タ ーフ ェ イ ス タ イ ルご と に 1 つの ク ロ ッ ク し か配線で き ません。 こ のため、
DDR ク ロ ッ ク を使用す る場合は、 2 番目の ク ロ ッ ク を 180° 位相シ フ ト す る必要があ り ます (図
1-27)。 BUFIO2 ク ロ ッ ク バ ッ フ ァ を 2 つ使用 し 180° 位相シ フ ト さ せる 例は 28 ページの図 1-12 を
参照 し て く だ さ い。
PLL ま たは DCM を使用 し 最適パフ ォーマン ス を得 る には、 BUFIO2 を使用 し ます。 各 GCLK は
2 つの BUFIO2 に関連付け ら れてい ます (完全 リ ス ト は表 1-1 を参照)。
ス ト ロ ーブお よ び ク ロ ッ ク 出力の使用方法の詳細は、27 ページの 「高速 I/O ク ロ ッ ク ネ ッ ト ワ ー ク
接続の例」 を参照 し て く だ さ い。
BUFIO2_2CLK
BUFIO2_2CLK の論理ビヘ イ ビ アは BUFIO2 (USE_DOUBLER = TRUE) と ほぼ同 じ ですが、シ ン
グルエン ド の ク ロ ッ ク で 2 ク ロ ッ ク 必要であ る こ と 、ま たは差動ペア (IBUFDS_DIFF_OUT か ら の
出力) を入力 と し て使用す る点が異な り ます (図 1-28)。 表 1-18 には BUFIO2_2CLK ポー ト が リ ス
ト さ れ、 表 1-19 には属性が リ ス ト さ れてい ます。
X-Ref Target - Figure 1-28
BUFIO2_2CLK
DIVCLK
I
IOCLK
IB
SERDESSTROBE
ug382_c1_24_120809
図 1-28 : BUFIO2_2CLK プ リ ミ テ ィ ブ
表 1-18 : BUFIO2_2CLK ポー ト の定義
ポー ト 名
タ イプ
定義
I
入力
GCLK ク ロ ッ ク 入力
IB
入力
反転 さ れた GCLK ク ロ ッ ク 入力
IOCLK
出力
I/O ク ロ ッ ク ネ ッ ト ワ ー ク 出力。 IODDR2 (C0 ま たは
C1)、 IOSERDES2 (CLK0 ま たは CLK1) ま たは
IODELAY2 (IOCLK0、 IOCLK1) に接続 し ます。
DIVCLK
出力
逓倍 ク ロ ッ ク 出力。 BUFG、 PLL_BASE (CLKIN)、
DCM (CLKIN)、 お よ び DCM_CLKGEN (CLKIN) に
接続 し ます。
SERDESSTROBE 出力
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
IOSERDES2 (IOCE) 駆動用の I/O ク ロ ッ ク ネ ッ ト ワ ー
ク 出力。
japan.xilinx.com
43
第 1 章 : ク ロ ッ ク リ ソ ース
表 1-19 : BUFIO2_2CLK 属性
属性名
説明
値
デ フ ォル ト 値
2、 3、 4、 5、 6、
7、 8
2
DIVCLK お よ び SERDESSTROBE の
DIVIDE
分周値を設定する デー タ レー ト の設定
です。
FDIVCLK = (2 * FIN) / DIVIDE
FALSE の場合 DIVCLK 出力 ソ ース は
DIVIDE_BYPASS 分周器か ら 、 TRUE の場合 DIVCLK 出 TRUE、 FALSE
力 ソ ース は分周器をバ イ パス し た入力 I
TRUE
か ら です。
図 1-29 に示す よ う に、 BUFIO2_2CLK は差動 GCLK 入力に接続す る こ と がで き ます。
X-Ref Target - Figure 1-29
IBUFDS_DIFF_OUT
I
O
BUFIO2_2CLK
I
DIVCLK
IOCLK
SERDESSTROBE
IB
OB
IB
UG382_c1_25_120809
図 1-29 : 差動 GCLK ク ロ ッ ク 入力で駆動する BUFIO2_2CLK
図 1-30 は、 ISERDES2 (DATA_PATH = DDR) ま たは OSERDES2 (DATA_PATH_OQ = DDR) に
対 し 使用す る 2 番目の BUFIO2 も ま と めた タ イ ミ ン グ波形図です。
44
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク バ ッ フ ァ およびマルチ プ レ ク サ
X-Ref Target - Figure 1-30
IBUFGDS_DIFF_OUT
BUFIO2_2CLK
SERDESSTROBE
RXCLK_P
IOCLK0
RXCLK_N
DIVCLK
BUFIO2
I_INVERT = FALSE
IOCLK1
RXCLK
IOCLK0
IOCLK1
DIVIDE = 2
(Default)
DIVIDE = 3
DIVCLK
SERDESSTROBE
DIVCLK
SERDESSTROBE
DIVIDE = 4
DIVCLK
SERDESSTROBE
DIVIDE = 5
DIVCLK
SERDESSTROBE
DIVIDE = 6
DIVCLK
SERDESSTROBE
DIVIDE = 7
DIVCLK
SERDESSTROBE
DIVIDE = 8
DIVCLK
SERDESSTROBE
UG382_c1_26_120809
図 1-30 : BUFIO2_2CLK DDR ク ロ ッ ク
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
45
第 1 章 : ク ロ ッ ク リ ソ ース
BUFPLL
BUFPLL (図 1-31) は高速 I/O 配線を目的に し た も ので、 ISERDES2 (SDR) と OSERDES2 (SDR)
プ リ ミ テ ィ ブに対 し て ク ロ ッ ク お よ びス ト ロ ーブ パルス を生成 し ます。 「BUFPLL_MCB」 では、
BUFPLL が同 じ バン ク に 2 個含まれてい ます。 こ のため、 BUFPLL_MCB と BUFPLL は同時に使
用で き ません。
ま た、 BUFPLL では PLL の LOCK 出力を GCLK、 SERDES ス ト ローブ、 PLL ク ロ ッ ク に揃え ま
す。 IOCLK は入力 ク ロ ッ ク がバ ッ フ ァ さ れた出力です。 LOCK 出力の機能は、 PLL が ロ ッ ク さ れ
SERDESSTROBE 信号に正 し く 揃え ら れ る ま で High にな ら ない点を除 き 、PLL の LOCKED 信号
と 同 じ です。 BUFPLL ポー ト を表 1-20 に、 属性を 表 1-21 に示 し ます。
X-Ref Target - Figure 1-31
BUFPLL
LOCK
GCLK
IOCLK
PLLIN
LOCKED
SERDESSTROBE
ug382_c1_27_120809
図 1-31 : BUFPLL プ リ ミ テ ィ ブ
表 1-20 : BUFPLL のポー ト と 定義
ポー ト 名
PLLIN
GCLK
タ イプ
入力
入力
定義
PLL か ら の ク ロ ッ ク 入力 (CLKOUT0、 CLKOUT1)
バン ク 1、 3、 4、 お よ び 5 で も BUFG (O) を駆動
で き ます。
BUFG ま たは CLK か ら の ク ロ ッ ク 入力。 GCLK の
周波数は、予期 さ れ る SERDESSTROBE の周波数に
一致 し てい る 必要があ り ます。
FGCLK = FPLLIN/DIVIDE
46
LOCKED
入力
PLL か ら の LOCKED 信号
IOCLK
出力
I/O ク ロ ッ ク ネ ッ ト ワ ー ク 出力。
IOSERDES2
(CLK0)、 BUFIO2FB
(I)、 ま たは
IODELAY2 (IOCLK0、 IOCLK1) に接続 し ます。
SERDESSTROBE
出力
LOCK
出力
IOSERDES2 (IOCE) 駆動用の I/O ク ロ ッ ク ネ ッ ト
ワ ー ク 出力。
同期 し た LOCK 出力
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク バ ッ フ ァ およびマルチ プ レ ク サ
表 1-21 : BUFPLL 属性
属性名
DIVIDE
ENABLE_SYNC
説明
SERDESSTROBE に対 し PLLIN の分
周値を設定 し ます。
TRUE の と き に SERDESSTROBE が
GCLK 入力に揃え ら れます。BUFPLL が
BUFG で駆動 さ れ る場合のみ ク リ ア さ
値
デ フ ォル ト 値
1、 2、 3、 4、 5、 6、
1
7、 8
TRUE、 FALSE
TRUE
れます。
「高速 I/O ク ロ ッ ク ネ ッ ト ワ ー ク 接続の例」 を参照 し て く だ さ い。
BUFPLL_MCB
BUFPLL_MCB プ リ ミ テ ィ ブは、Spartan-6 FPGA に搭載 さ れてい る メ モ リ コ ン ト ロ ー ラ ブ ロ ッ ク
を サポー ト す る ための も のです。BUFPLL_MCB のポー ト を表 1-22 に、属性を表 1-23 に示 し ます。
BUFPLL_MCB プ リ ミ テ ィ ブには、LOCK_SRC 属性が INDEPENDENT の場合に独立 し て動作す
る バ ッ フ ァ が 2 つあ り ます。 こ の回路は SERDESSTROBE0 お よ び SERDESSTROBE1 を同期 さ
せます。 こ の同期は、 LOCK_SRC を LOCK_TO_0 ま たは LOCK_TO_1 に設定す る と 有効にな り
ます。 LOCK_TO_1 に設定 さ れてい る 場合は、SERDESSTROBE0 が ク ロ ッ ク の 1 サ イ ク ル遅れて
SERDESSTROBE1
に続 き ます。 同様に、 LOCK_TO_0
に設定 さ れてい る 場合は、
SERDESSTROBE1 が ク ロ ッ ク の 1 サ イ ク ル遅れて SERDESSTROBE0 に続 き ます。 詳細は、
UG388 『Spartan-6 FPGA メ モ リ コ ン ト ロ ー ラ ユーザー ガ イ ド 』 を参照 し て く だ さ い。
表 1-22 : BUFPLL_MCB ポー ト の定義
ポー ト 名
PLLIN0
タ イプ
入力
定義
PLL か ら の ク ロ ッ ク 入力 (CLKOUT0 ま たは CLKOUT1)。
バン ク 1、 3、 4、 お よ び 5 は BUFG (O) で駆動す る こ と が
で き ます。
PLLIN1
入力
PLL か ら の ク ロ ッ ク 入力 (CLKOUT0 ま たは CLKOUT1)。
バン ク 1、 3、 4、 お よ び 5 は BUFG (O) で駆動す る こ と が
で き ます。
IOCLK0
出力
I/O ク ロ ッ ク ネ ッ ト ワー ク 出力。IOSERDES2 (CLK0) ま た
は BUFIO2FB (I) に接続 し ます。
IOCLK1
出力
I/O ク ロ ッ ク ネ ッ ト ワー ク 出力。IOSERDES2 (CLK0) ま た
は BUFIO2FB (I) に接続 し ます。
SERDESSTROBE0
出力
IOSERDES2 (IOCE) 駆動用の I/O ク ロ ッ ク ネ ッ ト ワー ク
出力。
SERDESSTROBE1
出力
IOSERDES2 (IOCE) 駆動用の I/O ク ロ ッ ク ネ ッ ト ワー ク
出力。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
47
第 1 章 : ク ロ ッ ク リ ソ ース
表 1-23 : BUFPLL_MCB 属性
属性名
LOCK_SRC
DIVIDE
ENABLE_
SYNC
説明
値
PLLIN0 お よ び PLLIN1 が独立 し てい
る か ま たは固定か を設定 し ます。固定 さ
れてい る場合、信号は PLLIN0 ま たは
PLLIN1 に固定 さ れます。
INDEPENDENT
LOCK_TO_0
LOCK_TO_1
LOCK_TO_0
SERDESSTROBE0 お よ び
SERDESSTROBE1 に対 し 、 PLLIN0 お
よ び PLLIN1 の分周値を設定 し ます。
1、2、3、4、5、6、7、8
2
TRUE、 FALSE
TRUE
TRUE の と き に SERDESSTROBE が
GCLK 入力に揃え ら れます。 BUFPLL
が BUFG で駆動 さ れ る 場合のみ ク リ ア
デ フ ォル ト 値
さ れます。
BUFIO2FB
BUFIO2FB は、 属性を使用 し て出力遅延を決定す る シ ンプルなバ ッ フ ァ です。 こ れは 1 出力、 1 入
力のみを使用 し ます (図 1-32)。 BUFIO2 ポー ト は、 表 1-24 に リ ス ト さ れてい ます。 表 1-25 にあ る
よ う に、 DIVIDE_BYPASS が TRUE の場合、 遅延は BUFIO2 バ イ パ ス遅延 と 同等にな り ます。
FALSE の場合、遅延は BUFIO2 の DIVCLK 出力の近似値にな り 、 BUFIO2 と BUFIO2FB 位相の
出力が揃い ます。
X-Ref Target - Figure 1-32
BUFIO2FB
O
I
ug382_c1_28_120809
図 1-32 : BUFIO2FB プ リ ミ テ ィ ブ
表 1-24 : BUFIO2FB ポー ト の定義
ポー ト 名
タ イプ
定義
フ ィ ー ド バ ッ ク ク ロ ッ ク 入力。
48
I
入力
O
出力
BUFIO2
(IOCLK)、 BUFPLL
(IOCLK)、 IODELAY2
(DATAOUT)、 GTPCLKFBWEST、 GTPCLKFBEAST、
ま たは BUFG (O) で駆動す る こ と がで き ます。
出力フ ィ ー ド バ ッ ク ク ロ ッ ク
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ク ロ ッ ク バ ッ フ ァ およびマルチ プ レ ク サ
表 1-25 : BUFIO2FB 属性
属性名
DIVIDE_BYPASS
説明
値
デ フ ォル ト 値
FALSE の場合 DIVCLK 出力 ソ ースは
分周器か ら で、 CLKDIV_DIVIDE は 1
に設定す る必要があ り ます。TRUE の場
合 DIVCLK 出力 ソ ースは分周器をバ イ
パ ス し た入力 I か ら の出力 ソ ース です。
TRUE、 FALSE
TRUE
図 1-33 に示す よ う に BUFIO2FB バ ッ フ ァ を使用 し 、 CMT (PLL ま たは DCM) リ フ ァ レ ン ス出力
CLKIN と フ ィ ー ド バ ッ ク CLKFB の間の ク ロ ッ ク 配線遅延を一致 さ せ る こ と がで き ます。 CMT
フ ィ ー ド バ ッ ク パ ス が使用 さ れてい る 場合は、 ISE Design Suite に よ っ て BUFIO2FB お よ び
BUFIO2 バ ッ フ ァ が自動挿入 さ れます。
X-Ref Target - Figure 1-33
Clock Input
I/O
Input
BUFIO2
CLK_REF or CLKIN
ILOGIC
BUFIO2FB
CLK_FB
CLKMUX
CLKOUT
PLL/DCM
BUFG/
BUFPLL
ug382_c1_29_120809
図 1-33 : ク ロ ッ ク 配線遅延 と 一致する BUFIO2FB バ ッ フ ァ
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
49
第 1 章 : ク ロ ッ ク リ ソ ース
50
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
第2章
ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
ク ロ ッ ク マネージ メ ン ト について
Spartan-6 の ク ロ ッ ク マネージ メ ン ト タ イ ル (CMT) は、非常に柔軟性に富み、かつ高性能な ク ロ ッ
ク 機能を提供す る も のです。Spartan-6 FPGA の CMT ブ ロ ッ ク (図 2-1) は垂直のグ ロ ーバル ク ロ ッ
ク ツ リ ーに沿っ た中央列にあ り ます。各 CMT ブ ロ ッ ク には DCM が 2 つ、PLL が 1 つ含まれてい
ます。
PLL
CMT
DCM
(x2)
PLL
CMT
DCM
(x2)
ု⋥䉫䊨䊷䊋䊦㩷䉪䊨䉾䉪㩷䉿䊥䊷
X-Ref Target - Figure 2-1
PLL
CMT
DCM
(x2)
PLL
CMT
DCM
(x2)
ု⋥䉫䊨䊷䊋䊦㩷䉪䊨䉾䉪㩷䉿䊥䊷
㪙㪬㪝㪞㩷䈍䉋䈶ਛᄩ䉴䉟䉾䉼
ug382_c2_01_081009
図 2-1 : Spartan-6FPGA DCMの位置
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
51
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
表 2-1 は、 各 Spartan-6 デバ イ ス で使用可能な CMT、 DCM、 PLL を ま と めた も のです。
表 2-1 : 使用可能な CMT、 DCM、 PLL リ ソ ース
デバイ ス
CMT 数
DCM 数
PLL 数
XC6SLX4
2
4
2
XC6SLX9
2
4
2
XC6SLX16
2
4
2
XC6SLX25
2
4
2
XC6SLX25T
2
4
2
XC6SLX45
4
8
4
XC6SLX45T
4
8
4
XC6SLX75
6
12
6
XC6SLX75T
6
12
6
XC6SLX100
6
12
6
XC6SLX100T
6
12
6
XC6SLX150
6
12
6
XC6SLX150T
6
12
6
ク ロ ッ ク ス キ ュ ーを最小限にす る には、 CMT か ら の ク ロ ッ ク 出力にグ ロ ーバル ク ロ ッ ク バ ッ フ ァ
を使用 し ます。ク ロ ッ ク バ ッ フ ァ が限 ら れてい る 場合、CMT ク ロ ッ ク 出力はオプシ ョ ンでグ ロ ーバ
ル ク ロ ッ ク バ ッ フ ァ な し に使用する こ と がで き ますが、すべての ロ ジ ッ ク を 1 つの ク ロ ッ ク 領域内
に配置す る 必要があ り ます。各 ク ロ ッ ク 領域には垂直方向に 16 個の CLB があ り 、 18Kb のブ ロ ッ ク
RAM が 4 つま で、 DSP48A1 ス ラ イ ス が 4 つま で含まれています。
DCM の概要
デジ タ ル ク ロ ッ ク マネージ ャ (DCM) は、 Spartan-6 FPGA アプ リ ケーシ ョ ンに高度な ク ロ ッ ク 機
能を提供 し ます。 DCM を使用す る と 、 ク ロ ッ ク ス キ ューを取 り 除 く こ と がで き る ため、 シ ス テ ム
のパフ ォーマ ン ス が向上 し ます。 ま た、 ク ロ ッ ク 周期のあ る 割合だけ入力 ク ロ ッ ク の位相を シ フ ト
し た り 、 入力 ク ロ ッ ク の周波数を逓倍 ま たは分周 し て新 し い周波数を合成 し た り で き ます。 DCM
は、 FPGA のグ ロ ーバル ロ ー ス キ ュ ー ク ロ ッ ク 分配ネ ッ ト ワ ー ク に直接組み込まれてい ます。
DCM について
DCM に よ り 、FPGA のグ ロ ーバル ロ ー ス キ ュ ー ク ロ ッ ク 分配ネ ッ ト ワ ー ク に高度な ク ロ ッ ク 制御
機構を組み込む こ と がで き る ため、 特に高パフ ォーマン ス、 高周波数のアプ リ ケーシ ョ ンで発生 し
やすい さ ま ざ ま な ク ロ ッ ク の問題を解決で き ます。
52
•
ク ロ ッ ク ス キ ュ ーの除去 : デバ イ ス内ま たは外部 コ ン ポーネ ン ト への ク ロ ッ ク ス キ ュ ーを取
り 除 く こ と に よ り 、 シ ス テ ム全体のパフ ォーマン ス を向上 し 、 ク ロ ッ ク 分配遅延を削除 し ます。
•
位相シ フ ト : ク ロ ッ ク 周波数の固定の割合ま たは イ ン ク リ メ ン ト 分だけ ク ロ ッ ク 信号の位相を
シ フ ト し ます。
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ほかのザイ リ ン ク ス FPGA フ ァ ミ リ と の互換性および比較
•
入力 ク ロ ッ ク 周波数を逓倍す る か、 ま たは、逓倍 し た ス タ テ ィ ッ ク / ダ イ ナ ミ ッ ク ク ロ ッ ク を組
み合わせ新 し い周波数を合成 し ます。
•
デ ュ ーテ ィ ー サ イ ク ルの調整 : デ ュ ーテ ィ サ イ ク ルが 50% の ク ロ ッ ク が出力 さ れ る よ う 調整
し ます。
•
ク ロ ッ ク 信号の ミ ラ ー、転送、再バ ッ フ ァ : 入力 ク ロ ッ ク 信号を ス キ ュ ー調整 し 、別の I/O 規格
に変換 し ます。 た と えば、 入力 LVTTL ク ロ ッ ク を転送 し LVDS に変換 し ます。
•
ク ロ ッ ク 入力ジ ッ タ フ ィ ル タ リ ン グ
•
フ リ ー ラ ン ニ ン グ オシ レー タ
•
スペ ク ト ラ ム拡散 ク ロ ッ ク 生成
表 2-2 : DCM の機能
特性
DCM 信号
説明
デバ イ ス ご と の DCM 数
デバ イ ス のサ イ ズに応 じ て 4 ~ 12 個。 詳細は表 2-1 を参照。
すべて
ク ロ ッ ク 入力 ソ ース
GCLK 入力、 BUFG 出力、 カ ス ケー ド さ れた DCM ま たは PLL
出力 (同 じ CMT 内)
CLKIN
周波数合成の出力
DCM_CLKGEN プ リ ミ テ ィ ブが使用 さ れてい る 場合は CLKIN
を M/D (M = {2..256}、 D = {1..256}) で逓倍
CLKFX、
CLKFX180
ク ロ ッ ク 分周出力
CLKIN を 1.5、 2、 2.5、 3、 3.5、 4、 4.5、 5、 5.5、 6、 6.5、 7、 7.5、 CLKDV
8、 9、 10、 11、 12、 13、 14、 15、 ま たは 16 で分周
2 逓倍 ク ロ ッ ク 出力
CLKIN の周波数を 2 で逓倍
CLK2X、
CLK2X180
デ ュ ーテ ィ サ イ ク ル調整
ほ と ん ど の出力で実行 さ れます。
すべて
1/4 周期位相シ フ ト 出力
0°(位相シ フ ト な し )、 90°(1/4 周期)、 180°(1/2 周期)、 270°(3/4 周
期)
CLK0、 CLK90、
CLK180、 CLK270
半周期位相シ フ ト 出力
0°位相シ フ ト 出力 と 180°位相シ フ ト 出力のペア (DDR アプ リ
ケーシ ョ ンに理想的)
CLK0、 CLK180、
CLK2X、、 CLK2X180、
CLKFX、 CLKFX180
可変位相シ フ ト
動作中に DCM ク ロ ッ ク 出力で位相シ フ ト を調整で き る よ う に し
ます。
PSEN、 PSINCDEC、
PSCLK、 PSDONE
汎用 DCM 動作 イ ン ジ ケー タ
汎用 イ ン タ ー コ ネ ク ト に接続 さ れ る DCM ク ロ ッ ク 出力の数
STATUS、 LOCKED
ほかのザイ リ ン ク ス FPGA フ ァ ミ リ と の互換性および比較
Spartan-6 FPGA には Spartan-3E お よ び Extended Spartan-3A フ ァ ミ リ と 非常に類似 し た DCM デ
ザ イ ンが含まれてい ますが、 Spartan-6 フ ァ ミ リ と Virtex-5 FPGA の間には DCM デザ イ ンにおい
て大 き な違いがい く つかあ り ます。
Spartan-3E お よ び Extended Spartan-3A フ ァ ミ リ と 同様、 Spartan-6 FPGA の DCM では、 動作範
囲が自動判断 さ れ、動作周波数範囲に制限 さ れません。 Spartan-6 FPGA では可変位相シ フ ト 動作の
イ ンプ リ メ ン テーシ ョ ンが異な り ます。 Spartan-6 FPGA には、 ジ ッ タ 低減、 周波数逓倍のダ イ ナ
ミ ッ ク プ ロ グ ラ ミ ン グ、 スペ ク ト ラ ム拡散 ク ロ ッ ク の逓倍 と 生成 と いっ た高度な機能を サポー ト す
る DCM_CLKGEN プ リ ミ テ ィ ブが含まれてい ます。 ザ イ リ ン ク ス FPGA の DCM 機能比較は表
2-3 を参照 し て く だ さ い。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
53
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
表 2-3 : ザイ リ ン ク ス FPGA での DCM の機能比較
Spartan-3E および
Extended Spartan3A FPGA
Virtex-5 FPGA(1)
機能
Spartan-6 FPGA
デザ イ ン プ リ ミ テ ィ ブ
DCM_BASE
DCM_ADV
DCM_SP
DCM_SP
DCM_CLKGEN
設定可能な DLL 動作周波数範囲の数
2:
1
1
1
1
DCM_DELAY_STEP
15 ~ 35ps (時間)
DCM_DELAY_STEP
Spartan-6 FPGA デー タ
低周波数モー ド (LOW)
と 高 周 波 数 モ ー ド
(HIGH)
設定可能な DFS 動作周波数範囲の数
2:
低周波数モー ド (LOW)
と 高 周 波 数 モ ー ド
(HIGH)
可変位相シ フ ト の増分/減分の単位
CLKIN 周期の 1/256
(度数)
シー ト を参照。
DCM の VCCAUX 電源
2.5V
2.5V ま たは 3.3V
2.5V ま たは 3.3V
位相ア ラ イ メ ン ト よ り も 優先 さ れた
ジ ッ タ低減
なし
なし
あり
周波数逓倍/分周のダ イ ナ ミ ッ ク
プロ グ ラ ミ ング
なし
なし
あり
スペ ク ト ラ ム拡散 ク ロ ッ ク 生成
なし
なし
あり
メモ :
1. Virtex-5 FPGA の DCM_ADV ま たは DCM_BASE プ リ ミ テ ィ ブ を使用 し て古いデザ イ ン を変換す る 場合は、 Spartan-6 FPGA の
DCM_SP ま たは DCM_CLKGEN プ リ ミ テ ィ ブ を使用 し て く だ さ い。
54
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM の機能の概要
DCM の機能の概要
DCM には 4 つの主な機能があ り 、 それぞれ単独で使用 し た り 、 ま たは併用する こ と がで き ます。
図 2-2 は DCM の簡単なブ ロ ッ ク 図です。
X-Ref Target - Figure 2-2
DCM
PSINCDEC
PSEN
PSCLK
఩┦
䝅䝣䝍
ฟຊ䝇䝔䞊䝆
ධຊ䝇䝔䞊䝆
DLL
㐜ᘏ䝇䝔䝑䝥
CLK0
CLKIN
CLKFB
PSDONE
DFS
CLK90
CLK180
CLK270
CLK2X
CLK2X180
CLKDV
䜽䝻䝑䜽
ศ㓄
㐜ᘏ
CLKFX
CLKFX180
RST
䝇䝔䞊䝍䝇
䝻䝆䝑䜽
LOCKED
STATUS
ug382_c2_02_051209
図 2-2 : DCM フ ァ ン ク シ ョ ン ブ ロ ッ ク
遅延ロ ッ ク ループ
遅延 ロ ッ ク ループ (DLL) は、オンチ ッ プのデジ タ ル ス キ ュ ー調整回路であ り 、実質的な遅延が 0 の
ク ロ ッ ク 出力信号を効率的に生成 し ます。 DCM の CLK0 ま たは CLK2X 出力を モニ タ し て ク ロ ッ
ク 配線ネ ッ ト ワ ー ク の遅延を補正す る こ と に よ り 、 外部 ク ロ ッ ク 入力ポー ト か ら デバ イ ス 内の ク
ロ ッ ク ロ ー ド への遅延を削除 し ます。グ ロ ーバル ク ロ ッ ク 分配ネ ッ ト ワ ー ク でバ ッ フ ァ を適切に使
用す る と 、 負荷の違いに よ る ク ロ ッ ク ス キ ュ ーを最小限に抑え る こ と がで き ます。
入力配線を正確に ス キ ュー調整す る には、BUFIO2FB バ ッ フ ァ を 49 ページの図 1-33 に示す よ う に
使用す る 必要があ り ます。 BUFIO2FB はプ ラ イ マ リ BUFIO2 バ ッ フ ァ と 一致 し 、 ス キ ュー調整を
1 つの DCM に制限 し ます。
DLL ユニ ッ ト の入力信号は CLKIN と CLKFB で、出力信号は CLK0、CLK90、CLK180、CLK270、
CLK2X、 CLK2X180 お よ び CLKDV です。
DLL ユニ ッ ト は、 2 逓倍 ク ロ ッ ク (CLK2X、 CLK2X180)、 ク ロ ッ ク 分周 (CLKDV)、 お よび 1/4 位
相シ フ ト の出力を生成 し ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
55
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
デジ タ ル周波数合成
デジ タ ル周波数合成 (DFS) は、2 つの係数 M (CLKFX_MULTIPLY) と D (CLKFX_DIVIDE) の比
に基づいて、 広範囲の出力周波数を生成 し ます。 出力周波数は、 入力 ク ロ ッ ク (CLKIN) に逓倍値 と
分周値を同時に適用す る こ と に よ り 求め ら れます。 DFS 機能は、 単独ま たは DLL 機能 と 共に使用
で き ます。 DLL を使用 し ない場合は、 CLKIN と DFS 出力の間に位相関係は成立 し ません。
DFS ユニ ッ ト は周波数合成 (CLKFX お よ び CLKFX180) の出力を生成 し ます。
位相シ フ ト
位相シ フ ト (PS) は、CLKIN 入力に対する DCM の ク ロ ッ ク 出力の位相関係を制御 し ます。 PS は固
定ま たは位相シ フ ト モー ド で使用で き ます。
9 つの DCM ク ロ ッ ク 出力信号の位相は、固定位相シ フ ト を使用 し た場合、入力 ク ロ ッ ク 周期の固定
値でシ フ ト さ れます。 固定位相シ フ ト 値は設計時に設定 さ れ、 FPGA の コ ン フ ィ ギ ュ レーシ ョ ン時
に DCM に読み込まれます。 ス キ ュー調整フ ィ ー ド バ ッ ク ク ロ ッ ク は DLL に よ っ て提供 さ れ る た
め、 DLL が使用 さ れていない場合、 DFS 出力 ク ロ ッ ク はス キ ュー調整 さ れません。
PS は、可変位相シ フ ト と い う 、位相シ フ ト 値を FPGA アプ リ ケーシ ョ ンの動作中に変更可能なデジ
タ ル イ ン タ ーフ ェ イ ス と し て も 使用で き ます。 Spartan-6 FPGA の可変位相シ フ ト は、 Spartan-6
FPGA デー タ シー ト で定義 さ れてい る よ う に、範囲が固定 さ れてい る DCM_DELAY_STEP の 1 ス
テ ッ プ分変化 し ます。
PS 入力信号は、 PSINCDEC、 PSEN、 お よ び PSCLK で、 出力信号は PSDONE お よ び STATUS[0]
です。
ス テー タ ス ロ ジ ッ ク
ス テー タ ス ロ ジ ッ ク は LOCKED お よ び STATUS[0] 出力信号を使用 し て DCM の現在の ス テー タ
ス を示 し ます。 LOCKED 出力信号は、 DCM 出力の位相が CLKIN 入力に対 し て正 し く 調整 さ れて
い る か ど う かを示 し ます。 STATUS 出力信号は、 DLL お よ び PS の動作ス テー ト を示 し ます。
RST 入力信号は、 DCM ロ ジ ッ ク を リ セ ッ ト し 、 コ ン フ ィ ギ ュ レ ーシ ョ ン前の状態に戻 し ま す。
リ セ ッ ト を適用す る と 、 CLKIN 入力が再取得 さ れ、 DCM がその ク ロ ッ ク に ロ ッ ク さ れます。
DCM プ リ ミ テ ィ ブ
DCM プ リ ミ テ ィ ブ (図 2-3) の DCM_SP お よ び DCM_CLKGEN は DCM 内のすべての機能を表
し てい ます。 STATUS[7:0] は、 低消費電力 Spartan-6 FPGA デバ イ ス の CLKGEN を使用す る と き
にシ ミ ュ レーシ ョ ンで使用 さ れます。
56
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM プ リ ミ テ ィ ブ
X-Ref Target - Figure 2-3
DCM_CLKGEN
DCM_SP
CLKIN
CLK0
CLKFB
CLK90
RST
CLKIN
CLKFX
CLKFX180
RST
CLK180
CLK270
CLKFXDV
FREEZEDCM
CLK2X
CLK2X180
CLKDV
CLKFX
CLKFX180
PSEN
STATUS[7:0]
PROGEN
STATUS[2:1]
LOCKED
PSINCDEC
LOCKED
PROGDATA
PSCLK
PSDONE
PROGCLK PROGDONE
UG382_c2_03_061109
図 2-3 : DCM プ リ ミ テ ィ ブ
各 DCM 接続ポー ト 、 属性、 プ ロ パテ ィ 、 お よ び制約は こ のセ ク シ ョ ンに ま と め ら れています。
DCM_SP プ リ ミ テ ィ ブ
DCM_SP プ リ ミ テ ィ ブは従来の DCM 機能を利用 し 、 ク ロ ッ ク ス キ ュ ー調整、周波数合成、固定お
よ び可変位相シ フ ト を行います。
各ポー ト の説明には、信号方向 と 、 DCM に必要な接続 (R) が記載 さ れてい ます。表 2-4 には 表 2-5
で使用 さ れてい る各フ ァ ン ク シ ョ ンの略称が リ ス ト さ れ、 表 2-5 には DCM_SP ポー ト が リ ス ト さ
れてい ます。
表 2-4 : 表 2-5 の フ ァ ン ク シ ョ ン ユニ ッ ト の略称
略称
DLL
PS
DFS
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM フ ァ ン ク シ ョ ン
遅延 ロ ッ ク ループ
位相シ フ ト
デジ タ ル周波数合成
japan.xilinx.com
57
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
表 2-5 : DCM_SP ポー ト
ポー ト
方向
CLKIN
クロック
入力
CLKFB
入力
説明
DLL
PS
DFS
DCM への ク ロ ッ ク 入力。 すべての フ ァ ン ク シ ョ ンで必須です。
CLKIN の周波数 と ジ ッ タ は、 デー タ シー ト で指定 さ れた範囲内
R
R
R
R
R
オプシ ョ ン
R
R
R
にす る 必要があ り ます。
DCM への ク ロ ッ ク フ ィ ー ド バ ッ ク 入力。DFS 出力、CLKFX ま
たは CLKFX180 が単独で使用 さ れていない限 り 、こ の フ ィ ー ド
バ ッ ク 入力が必要です。 CLKFB 入力の ソ ース と し ては、 DCM
か ら の CLK0 ま たは CLK2X 出力を使用す る 必要があ り 、 ど ち
ら を使用す る かに よ っ て CLK_FEEDBACK を 1X ま たは 2X
に設定 し ます。 NONE に設定 さ れてい る 場合は CLKFB は使用
さ れません。フ ィ ー ド バ ッ ク ポ イ ン ト には、内部ま たは外部で ク
ロ ッ ク 分配ネ ッ ト ワ ー ク に追加 さ れ る 遅延が含 ま れてい る のが
理想的です。
RST
入力
非同期 リ セ ッ ト 入力。 DCM ロ ジ ッ ク を コ ン フ ィ ギ ュ レーシ ョ ン
後の ス テー ト に リ セ ッ ト し ます。 リ セ ッ ト を適用す る と 、CLKIN
入力が再取得 さ れ、 DCM がその ク ロ ッ ク に ロ ッ ク さ れます。
DCM ブ ロ ッ ク 内で反転で き ます。 反転 し ない場合の動作を次に
示 し ます。
0 : 変化な し
1 : DCM ブ ロ ッ ク を リ セ ッ ト し ます。 CLKIN の 3 サ イ ク ル分
High に保持する 必要があ り ます。
可変位相シ フ ト イ ネーブル。DCM ブ ロ ッ ク 内で反転 さ せ る こ と
がで き ます。 反転 し ない場合の動作を次に示 し ます。
PSEN
入力
0 : 可変位相シ フ ト をデ ィ ス エーブルに し ます。 位相シ フ ト への
入力は無視 さ れます。
R
1 : PSCLK ク ロ ッ ク の次の立ち上が り エ ッ ジで、可変位相シ フ ト
を イ ネーブルに し ます。
位相シ フ ト の増分/減分。DCM ブ ロ ッ ク 内で反転 さ せ る こ と がで
き ます。 反転 し ない場合の動作を次に示 し ます。
PSINCDEC
入力
0 : 可変位相シ フ ト が イ ネーブルの と き の PSCLK ク ロ ッ ク の次
の立ち上が り エ ッ ジで、 位相シ フ ト 値を減分 し ます。
R
1 : 可変位相シ フ ト が イ ネーブルの と き の PSCLK ク ロ ッ ク の次
の立ち上が り エ ッ ジで、 位相シ フ ト 値を増分 し ます。
可変位相シ フ ト の ク ロ ッ ク 入力。 可変位相シ フ ト 動作は、 こ の ク
ロ ッ ク の立ち上が り エ ッ ジに同期 し ます。
PSCLK
58
クロック
入力
グ ロ ーバル ク ロ ッ ク バ ッ フ ァ を使用 し てい る場合、PSCLK を駆
動 で き る の は、 BUFGMUX_X2Y1、 BUFGMUX_X2Y2、
BUFGMUX_X2Y3、 BUFGMUX_X2Y4、 BUFGMUX_X3Y5、
BUFGMUX_X3Y6、 BUFGMUX_X3Y7、 BUFGMUX_X3Y8、
の上部の 8 つの BUFGMUX のみです。
japan.xilinx.com
R
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM プ リ ミ テ ィ ブ
表 2-5 : DCM_SP ポー ト (続き )
方向
説明
DLL
CLK0
クロック
出力
CLKIN と 周波数が同 じ で、 位相シ フ ト が 0°(位相シ フ ト な し ) の
ク ロ ッ ク 出力。 Spartan-6 FPGA で 50% のデュ ーテ ィ サ イ ク ル
に常にな る よ う 設定 さ れてい ます。CLK0 を ス キ ュー調整す る に
は、 CLK_FEEDBACK を 1X ま たは 2X に設定す る必要があ り
ます。 CLK_FEEDBACK が NONE に設定 さ れてい る場合、
CLKIN と の位相関係はあ り ません。
R
CLK90
クロック
出力
CLKIN と 周波数が同 じ で、位相を 90°(周期の 1/4) シ フ ト し た ク
ロ ッ ク 出力。 Spartan-6 FPGA ではデ ュ ーテ ィ サ イ ク ルは常に
50% に設定 さ れてい ます。
R
CLK180
クロック
出力
CLKIN と 周波数が同 じ で、 位相を 180°(周期の 1/2) シ フ ト し た
ク ロ ッ ク 出力。 Spartan-6 FPGA ではデ ューテ ィ サ イ ク ルは常に
50% に設定 さ れてい ます。
R
CLK270
クロック
出力
CLKIN と 周波数が同 じ で、 位相を 270°(周期の 3/4) シ フ ト し た
ク ロ ッ ク 出力。 Spartan-6 FPGA ではデ ューテ ィ サ イ ク ルは常に
50% に設定 さ れてい ます。
R
CLK2X
クロック
出力
周波数が CLKIN の 2 逓倍で、 位相シ フ ト が 0°の ク ロ ッ ク 出力
デ ュ ーテ ィ サ イ ク ルは、常に 50% に調整 さ れます。 DLL フ ァ ン
ク シ ョ ンの フ ィ ー ド バ ッ ク ソ ース と し て、CLK0 ま たは CLK2X
が必要です。 ク ロ ッ ク 2 逓倍 (CLK2X、 CLK2X180) の出力
R
CLK2X180
クロック
出力
周波数が CLKIN の 2 逓倍で、 位相シ フ ト が 180°の ク ロ ッ ク 出
力。 デ ュ ーテ ィ サ イ ク ルは、 常に 50% に調整 さ れます。 ク ロ ッ
ク 2 逓倍 (CLK2X、 CLK2X180) の出力。
R
ポー ト
CLKDV
CLKFX
クロック
出力
クロック
出力
PS
DFS
CLKDV_DIVIDE 属性に よ っ て制御 さ れ る 逓倍 さ れた ク ロ ッ ク
出力。 CLKDV_DIVIDE 属性が整数の場合、 CLKDV 出力は
50% デ ュ ーテ ィ サ イ ク ルにな り ます。
R
F CLKIN
FCLKDV = ----------------------------------------------CLKDV_DIVIDE
合成 さ れた ク ロ ッ ク 出力で、 CLKFX_MULTIPLY と CLKFX_
DIVIDE 属性に よ っ て制御 さ れます。 デュ ーテ ィ サ イ ク ルは、
常に 50% に調整 さ れます。 CLKFX ま たは CLKFX180 ク ロ ッ
ク 出力を単独で使用す る場合は、 フ ィ ー ド バ ッ ク は不要です。
R
CLKFX_MULTIPLY
F CLKFX = F CLKIN -------------------------------------------------------CLKFX_DIVIDE
CLKFX180
クロック
出力
周波数合成 ク ロ ッ ク 出力 CLKFX の位相を 180° シ フ ト し た ク
ロ ッ ク 出力 (CLKFX の反転出力)。 デ ュ ーテ ィ サ イ ク ルは、 常に
50% に調整 さ れます。 CLKFX ま たは CLKFX180 ク ロ ッ ク 出力
を単独で使用す る 場合は、 フ ィ ー ド バ ッ ク は不要です。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
R
59
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
表 2-5 : DCM_SP ポー ト (続き )
ポー ト
STATUS[0]
DLL
方向
説明
出力
可変位相シ フ ト のオーバーフ ロ ー。可変フ ァ イ ン位相シ フ ト の制
御出力です。可変位相シ フ ト が最小値ま たは最大値に達 し た場合
に出力 さ れます。 最大値お よ び最小値は ±255 か、 遅延 ラ イ ンの
最後に達 し た場合はそれ以下にな り ます。
PS
DFS
R
0 : 位相シ フ ト は最大値ま たは最小値に達 し てい ません。
1 : 位相シ フ ト が最大値ま たは最小値に達 し てい ます。
CLKIN 入力が停止 し た こ と を示 し ます。 CLKFB フ ィ ー ド バ ッ
ク 入力が接続 さ れてい る場合にのみ有効です。 LOCKED 出力が
STATUS[1]
出力
アサー ト さ れ る ま で、 リ セ ッ ト に保持 さ れます。 ア ク テ ィ ブにな
る には、CLKIN が最低で も 1 サ イ ク ル必要です。CLKIN が ト グ
ル し ない場合は、 アサー ト さ れません。
R
0 : CLKIN 入力が ト グル し ています。
1 : CLKIN 入力が ト グル さ れま てい ません ( ロ ッ ク さ れた出力は
High の可能性あ り )。
CLKFX ま たは CLKFX180 出力が停止 し た こ と を示 し ます。
STATUS[2]
出力
0 : CLKFX お よ び CLKFX180 出力は ト グル し てい ます。
R
1 : CLKFX お よ び CLKFX180 出力が ト グル し てい ません (出力
は High の可能性あ り )。
STATUS[7:3]
出力
予約済み。 低消費電力 Spartan-6 FPGA デバ イ ス の リ セ ッ ト 回路
を シ ミ ュ レーシ ョ ンす る と き に使用。
DCM のすべての機能が CLKIN の周波数に ロ ッ ク さ れてい る こ
と を示 し ます。 CLKIN が指定の範囲内であれば ク ロ ッ ク 出力は
有効です。
LOCKED
出力
0 : CLKIN の周波数に ロ ッ ク さ れていません。 DCM の ク ロ ッ ク
出力は無効です。
R
R
R
1 : CLKIN の周波数に ロ ッ ク さ れています。 DCM の ク ロ ッ ク 出
力は有効です。
1 → 0 : DCM の ロ ッ ク 状態が解除 さ れま し た。DCM を リ セ ッ ト
す る 必要があ り ます。
可変位相シ フ ト が完了 し た こ と を示 し ます。
PSDONE
出力
0 : 位相シ フ ト 操作が実行 さ れていないか、 位相シ フ ト 操作を実
行中です。
R
1 : 位相シ フ ト が完了 し てい ます。 PSCLK の 1 サ イ ク ル分 High
にな り ます。 次の可変位相シ フ ト が開始で き ます。
60
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM プ リ ミ テ ィ ブ
表 2-6 には DCM_SP 属性が リ ス ト さ れてい ます。 すべての属性は設計時に設定 し 、 コ ン フ ィ ギ ュ
レーシ ョ ン中にプ ロ グ ラ ム し ます。 可変位相シ フ ト 機能に関す る属性以外は、 FPGA アプ リ ケー
シ ョ ンの実行中に変更す る こ と はで き ません。 <ATTRIBUTE>=<SETTING> をデザ イ ン入力ツール
に適 し た方法で設定 し ます。
表 2-6 : DCM_SP 属性
属性
可能な設定 と 説明
DLL_FREQUENCY_MODE
こ れは古い属性です。 DCM は常に自動周波数検索モー ド にな っ てお り 、 High/Low
に設定 し て も 影響はあ り ません。
DFS_FREQUENCY_MODE
こ れは古い属性です。 DCM は常に自動周波数検索モー ド にな っ てお り 、 High/Low
に設定 し て も 影響はあ り ません。
CLKIN_PERIOD
DCM の CLKIN ピ ン を駆動す る ク ロ ッ ク の周期を ns で指定 し ます。
Spartan-6 FPGA の CLKIN_PERIOD を設定す る と DFS ジ ッ タ を低減 し やす く な
り ロ ッ ク に必要な時間を短縮で き ます。
CLK_FEEDBACK
フ ィ ー ド バ ッ ク ク ロ ッ ク を指定 し ます。
1X : デフ ォル ト 。 CLK0 フ ィ ー ド バ ッ ク です。 CLKIN の周波数 と 同 じ です。
2X : CLK2X フ ィ ー ド バ ッ ク です。 CLKIN の周波数の 2 逓倍です。
NONE : フ ィ ー ド バ ッ ク は使用 さ れません。DCM お よ び DLL 出力が固定位相な し
で出力 さ れます。
CLKDV_DIVIDE
CLKDV 出力の周波数を定義 し ます。 設定可能な値は、 1.5、 2、 2.5、 3、 3.5、 4、 4.5、
5、 5.5、 6、 6.5、 7、 7.5、 8、 9、 10、 11、 12、 13、 14、 15、 16 です。
整数以外の値を使用する と 、 ロ ッ ク さ れ る ま での時間が長 く な り 、 出力ジ ッ タ が大
き く な り ます。
FCLKIN
F CLKDV = ----------------------------------------------CLKDV_DIVIDE
CLKFX_MULTIPLY
CLKFX お よ び CLKFX180 出力の周波数を設定す る逓倍値を定義 し ます。
CLKFX_DIVIDE 属性 と 併用 し ます。 設定可能な値は 2 ~ 32 の整数で、 デフ ォ ル
ト 値は 4 です。
CLKFX_MULTIPLY
F CLKFX = FCLKIN -------------------------------------------------------CLKFX_DIVIDE
CLKFX_DIVIDE
CLKFX お よ び CLKFX180 出力の周波数を設定す る分周値を定義 し ます。
CLKFX_MULTIPLY と 併用 し て使用 し ます。 設定可能な値は 1 ~ 32 の整数で、
デフ ォル ト 値は 1 です。
CLKFX_MULTIPLY
F CLKFX = FCLKIN -------------------------------------------------------CLKFX_DIVIDE
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
61
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
表 2-6 : DCM_SP 属性 (続き )
属性
PHASE_SHIFT
可能な設定 と 説明
CLKOUT_PHASE_SHIFT 属性が FIXED ま たは VARIABLE に設定 さ れてい る 場
合にのみ適用 さ れます。 CLKIN と DCM ク ロ ッ ク 出力の位相シ フ ト を定義 し ます。
ス キ ュ ーま たは位相シ フ ト 値は、 「フ ァ イ ン位相シ フ ト 」 の式に示す よ う に、 ク ロ ッ
ク 周期の割合を示す整数で指定 さ れます。 こ の整数値の範囲は -255 ~ 255 で、 デ
フ ォル ト 値は 0 です。 実際に使用可能な値は入力周波数に よ っ て変わ り 、 実際の範
囲は TCLKIN > FINE_SHIFT_RANGE の場合、 狭 く な り ます。
FINE_SHIFT_RANGE は、 位相シ フ ト 遅延 ラ イ ンのすべての タ ッ プの総遅延を示
し ます。
CLKOUT_PHASE_SHIFT
位相シ フ ト モー ド を設定 し ます。 PHASE_SHIFT 制約 と 併用 し 、 DCM の DPS 機
能を イ ンプ リ メ ン ト し ます。 こ の属性の設定は、 DLL お よ び DFS ユニ ッ ト の両方
の ク ロ ッ ク 出力に影響 し ます。
NONE : デフ ォル ト 。 CLKIN と CLKFB は同相 ( ス キ ュ ーな し ) で、 位相関係は変
更で き ません。 こ れは、 FIXED に設定 し 、 PHASE_SHIFT の値を 0 に し た場合 と
同 じ です。
FIXED : 位相関係は PHASE_SHIFT 属性値に基づいて コ ン フ ィ ギ ュ レーシ ョ ン時
に設定 さ れ、 アプ リ ケーシ ョ ンで動作中に変更する こ と はで き ません。
VARIABLE : 位相関係は PHASE_SHIFT 属性値に基づいて コ ン フ ィ ギ ュ レーシ ョ
ン時に設定 さ れますが、 可変位相シ フ ト を制御す る PSEN、 PSCLK、 PSINCDEC、
お よ び PSDONE を使用 し て、 アプ リ ケーシ ョ ンで動作中に変更で き ます。
DESKEW_ADJUST
FPGA の ク ロ ッ ク 入力ピ ン と DCM ク ロ ッ ク 出力の間の ク ロ ッ ク 遅延調整を制御 し
ます。
SYSTEM_SYNCHRONOUS : デフ ォ ル ト 。 すべてのデバ イ ス に、 共通のシ ス テ ム
全体の ク ロ ッ ク ソ ース が供給 さ れます。
SOURCE_SYNCHRONOUS : ク ロ ッ ク はデー タ ソ ース ( ソ ース 同期アプ リ ケー
シ ョ ン ) か ら 供給 さ れます。
こ の設定を、 DCM ク ロ ッ ク 出力の位相を シ フ ト す る ために使用 し ないで く だ さ い。
正確な位相シ フ ト を行 う には、 CLK お よ び PHASE_SHIFT を使用 し ます。
STARTUP_WAIT
FPGA コ ン フ ィ ギ ュ レーシ ョ ン DONE 信号を High にす る の を、DCM の LOCKED
信号がアサー ト さ れ る ま で待つかど う かを指定 し ます。
FALSE : デフ ォル ト 。DONE 信号は コ ン フ ィ ギ ュ レーシ ョ ンが完了す る と アサー ト
さ れ、 DCM の LOCKED 信号がアサー ト さ れ る ま で待ち ません。
TRUE : DONE 信号は、 DCM の LOCKED 信号が High にな る ま で High にな り ま
せん。 STARTUP_WAIT の指定にかかわ ら ず、 LOCKED 信号は High にな り ます。
FPGA の ス タ ー ト ア ッ プ シーケ ン ス も 変更 し 、 延期サ イ ク ルの前に LCK ( ロ ッ ク )
サ イ ク ルを挿入する 必要があ り ます。DONE サ イ ク ルま たは GWE サ イ ク ルが一般
的です。
複数の DCM を コ ン フ ィ ギ ュ レーシ ョ ンす る 場合は、 すべての DCM が ロ ッ ク さ れ
る ま で DONE ピ ンは High にな り ません。
62
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM プ リ ミ テ ィ ブ
表 2-6 : DCM_SP 属性 (続き )
属性
可能な設定 と 説明
CLKIN_DIVIDE_BY_2
CLKIN を DCM ブ ロ ッ ク に入力す る前に 2 で 分周 し ます。 アプ リ ケーシ ョ ンに
よ っ ては、 CLKIN_DIVIDE_BY_2 を使用 し て入力 ク ロ ッ ク 周波数を許容範囲に低
減 し ます。
FALSE : デフ ォル ト 。 CLKIN を DCM ブ ロ ッ ク に直接入力 し ます。
TRUE : CLKIN を DCM ブ ロ ッ ク に入力する 前に 2 で分周 し 、 デ ューテ ィ サ イ ク
ルをお よ そ 50% に し ます。 高周波数 ク ロ ッ ク を使用 し ていて、 DCM の入力 ク ロ ッ
ク 周波数要件お よ びデュ ーテ ィ サ イ ク ル要件を満たす必要があ る場合に有益です。
動作周波数モー ド を決定 し 、位相シ フ ト 範囲を算出す る際は、 ク ロ ッ ク 周波数を 1/2
に し て く だ さ い。
LOC
DCM の物理的な位置を指定 し ます。
DCM_CLKGEN プ リ ミ テ ィ ブ
DCM_CLKGEN プ リ ミ テ ィ ブを使用 し 、 さ ら に高度な DFS 機能が利用で き ます。
•
CLKFX お よ び CLKFX180 で低出力ジ ッ タ
•
CLKIN でのジ ッ タ 許容を改善
•
M お よ び D 値を ダ イ ナ ミ ッ ク プ ロ グ ラ ミ ン グ。
CLKFX_MULTIPLY お よび CLKFX_DIVIDE 属性を上書き し ます。
•
固定 CLKFX_MULTIPLY お よび CLKFX_DIVIDE 属性 よ り 幅広い範囲か ら M お よ び D 値
を指定
•
CLKFXDV で CLKFX 出力を追加逓倍
•
入力 ク ロ ッ ク 損失の場合の フ リ ー ラ ン ニ ン グ オシ レー タ
•
スペ ク ト ラ ム拡散 ク ロ ッ ク 生成
表 2-7 には DCM_CLKGEN ポー ト が リ ス ト さ れてい ます。 各ポー ト には簡単な説明 と 信号方向が
記載 さ れてい ます。
表 2-7 : DCM_CLKGEN ポー ト
ポー ト
CLKIN
方向
説明
クロック
入力
DCM への ク ロ ッ ク 入力。すべての フ ァ ン ク シ ョ ンで必須です。CLKIN の周波数 と ジ ッ タ は、
デー タ シー ト で指定 さ れた範囲内にす る 必要があ り ます。フ リ ー ラ ン ニ ン グ オシ レー タ モー
ド の場合、 ラ ン ニ ン グ ク ロ ッ ク を DCM が ロ ッ ク さ れ る ま で接続す る必要があ り 、 その後 ク
ロ ッ ク を削除で き ます。 ほかのモー ド では、 フ リ ー ラ ン ニ ン グ ク ロ ッ ク を提供お よ び保持す
る 必要があ り ます。
非同期 リ セ ッ ト 入力。 DCM ロ ジ ッ ク を コ ン フ ィ ギ ュ レーシ ョ ン後の ス テー ト に リ セ ッ ト し
ます。 リ セ ッ ト を適用す る と 、 CLKIN 入力が再取得 さ れ、 DCM がその ク ロ ッ ク に ロ ッ ク さ
れます。 DCM ブ ロ ッ ク 内で反転で き ます。 反転 し ない場合の動作を次に示 し ます。
RST
入力
0 : 変化な し
1 : DCM ブ ロ ッ ク を リ セ ッ ト し ます。 CLKIN の 3 サ イ ク ル分 High に保持す る必要があ り
ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
63
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
表 2-7 : DCM_CLKGEN ポー ト (続き )
ポー ト
方向
FREEZEDCM
入力
CLKFX
クロック
出力
説明
CLKIN 入力損失の場合の タ ッ プ調整 ド リ フ ト を防ぎ ます。DCM はその後フ リ ー ラ ン ニ ン グ
モー ド に コ ン フ ィ ギ ュ レーシ ョ ン さ れます。
合成 さ れた ク ロ ッ ク 出力で、 CLKFX_MULTIPLY お よ び CLKFX_DIVIDE 属性に よ っ て制
御 さ れます。ス タ テ ィ ッ ク にプ ロ グ ラ ム、ま たは 4 つの専用ワ イ ヤ SPI ポー ト (PROGDATA、
PROGCLK、 PROGDONE、 お よ び PROGEN) を使用 し てダ イ ナ ミ ッ ク にプ ロ グ ラ ムで き ま
す。 デ ュ ーテ ィ サ イ ク ルは、 常に 50% に調整 さ れます。
CLKFX_MULTIPLY
F CLKFX = F CLKIN -------------------------------------------------------CLKFX_DIVIDE
CLKFX180
クロック
出力
周波数合成 ク ロ ッ ク 出力 CLKFX の位相を 180° シ フ ト し た ク ロ ッ ク 出力 (CLKFX の反転出
力)。 デュ ーテ ィ サ イ ク ルは、 常に 50% に調整 さ れます。
同期出力は DCM が動作準備完了であ る こ と を示 し ます。
LOCKED
出力
0 : DCM の ク ロ ッ ク 出力は無効です。
1 : DCM は準備完了。
1 → 0 : DCM の ロ ッ ク 状態が解除 さ れま し た。 DCM を リ セ ッ ト する 必要があ り ます。
STATUS[1]
出力
STATUS[1] ポー ト は CLKGEN には使用 さ れません。
CLKFX ま たは CLKFX180 出力が停止 し た こ と を示 し ます。
STATUS[2]
出力
0 : CLKFX お よ び CLKFX180 出力は ト グル し てい ます。
1 : CLKFX お よ び CLKFX180 出力が ト グル し てい ません (出力は High の可能性あ り )。
STATUS[7:3]
CLKFXDV
出力
クロック
出力
予約済み。 低消費電力 Spartan-6 FPGA デバ イ ス の リ セ ッ ト 回路を シ ミ ュ レーシ ョ ンす る と
き に使用。
分周 し た CLKFX 出力 ク ロ ッ ク 。 CLKFXDV_DIVIDE 属性か ら 派生 し た値で分周 し ます。
CLKFX と CLKFXDV の間の位相ア ラ イ メ ン ト はあ り ません。
F
CLKFX
FCLKFXDV = ------------------------------------------------------CLKFXDV_DIVIDE
M お よ び D のプ ロ グ ラ ミ ン グが完了 し た こ と を示 し ます。
PROGDONE
出力
0 : M お よ び D のプ ロ グ ラ ミ ン グが行われていないか、 ま たはプ ロ グ ラ ミ ン グ中です。
1 : リ ク エ ス ト さ れたプ ロ グ ラ ミ ン グ完了。 PROGCLK の 1 サ イ ク ル分 High にな り ます。次
の PROGCLK 操作が開始で き ます。
PROGDATA
64
入力
DCM の M お よ び D 値のプ ロ グ ラ ミ ン グのシ リ アル デー タ 入力。 PROGCLK 入力に同期す
る 必要があ り ます。
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM プ リ ミ テ ィ ブ
表 2-7 : DCM_CLKGEN ポー ト (続き )
ポー ト
方向
説明
M お よ び D 値のプ ロ グ ラ ミ ン グが有効にな っ てい る か ど う かを示 し ます。
PROGEN
入力
0 : CLKFX_MULTIPLY お よ び CLKFX_DIVIDE のプ ロ グ ラ ミ ン グが無効にな っ てい ます。
1 : CLKFX_MULTIPLY お よ び CLKFX_DIVIDE のプ ロ グ ラ ミ ン グが有効にな っ てい ます。
M お よ び D 値のプ ロ グ ラ ミ ン グ用 ク ロ ッ ク 入力。
PROGCLK
入力
グ ロ ーバル ク ロ ッ ク バ ッ フ ァ を使用 し てい る場合、 PROGCLK を駆動で き る のは、
BUFGMUX_X2Y1 、 BUFGMUX_X2Y2 、 BUFGMUX_X2Y3 、 BUFGMUX_X2Y4 、
BUFGMUX_X3Y5、 BUFGMUX_X3Y6、 BUFGMUX_X3Y7、 BUFGMUX_X3Y8 の上部
の 8 つの BUFGMUX のみです。
表 2-8 には DCM_CLKGEN 属性が リ ス ト さ れてい ます。すべての属性は設計時に設定 し 、コ ン フ ィ
ギ ュ レーシ ョ ン中にプ ロ グ ラ ム さ れます。 <ATTRIBUTE>=<SETTING> をデザ イ ン入力ツールに適
し た方法で設定 し ます。CLKFX_MULTIPLY お よ び CLKFX_DIVIDE は FPGA アプ リ ケーシ ョ ン
で ラ ン タ イ ム時に変更可能です。
表 2-8 : DCM_CLKGEN 属性
属性
CLKFX_MULTIPLY
可能な設定 と 説明
CLKFX お よ び CLKFX180 出力の周波数を設定す る逓倍値を定義 し ます。
CLKFX_DIVIDE 属性 と 併用 し ます。 設定可能な値は 2 ~ 256 の整数で、 デフ ォ ル ト 値は
4 です。
CLKFX_MULTIPLY
F CLKFX = F CLKIN -------------------------------------------------------CLKFX_DIVIDE
CLKFX_DIVIDE
CLKFX お よ び CLKFX180 出力の周波数を設定す る分周値を定義 し ます。
CLKFX_MULTIPLY と 併用 し て使用 し ます。 設定可能な値は 1 ~ 256 の整数で、 デフ ォ ル
ト 値は 1 です。
CLKFX_MULTIPLY
F CLKFX = F CLKIN -------------------------------------------------------CLKFX_DIVIDE
52MHz 未満の入力周波数で正 し く ロ ッ ク する には次の式にな り ます。
F CLKIN
CLKFX_DIVIDE < --------------------------
0.500MHz
CLKFXDV_DIVIDE
CLKFXDV 出力の周波数を設定す る分周値を定義 し ます。 設定可能な値は 2、 4、 8、 16、
32 で、 デフ ォ ル ト 値は 2 です。
FCLKFX
FCLKFXDV = ------------------------------------------------------CLKFXDV_DIVIDE
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
65
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
表 2-8 : DCM_CLKGEN 属性 (続き )
属性
可能な設定 と 説明
M お よ び D 値のダ イ ナ ミ ッ ク プ ロ グ ラ ミ ン グが使用 さ れてい る場合、 こ の属性で M お よ
び D の最大比が指定 さ れます。 CLKFX_MD_MAX は主に ス タ テ ィ ッ ク タ イ ミ ン グ解析で
使用 さ れます。 デフ ォル ト 値は次の と お り です。
CLKFX_MD_MAX
CLKFX_MULTIPLY
-------------------------------------------------------CLKFX_DIVIDE
DFS_BANDWIDTH
予約済み
PROG_MD_BANDWIDTH
予約済み
SPREAD_SPECTRUM
スペ ク ト ラ ム拡散モー ド の設定 :
CENTER_LOW_SPREAD、 CENTER_HIGH_SPREAD、 VIDEO_LINK_M0(1)、 VIDEO_
LINK_M1(1)、 VIDEO_LINK_M2(1)
STARTUP_WAIT
FPGA コ ン フ ィ ギ ュ レーシ ョ ン DONE 信号を High にする の を、DCM の LOCKED 信号が
アサー ト さ れ る ま で待つか ど う か を指定 し ます。
FALSE : デフ ォ ル ト 。 DONE 信号は コ ン フ ィ ギ ュ レーシ ョ ンが完了す る と アサー ト さ れ、
DCM の LOCKED 信号がアサー ト さ れ る ま で待ち ません。
TRUE : DONE 信号は、 DCM の LOCKED 信号が High にな る ま で High にな り ません。
STARTUP_WAIT の指定にかかわ ら ず、LOCKED 信号は High にな り ます。FPGA の ス タ ー
ト ア ッ プ シーケ ン ス も 変更 し 、 延期サ イ ク ルの前に LCK ( ロ ッ ク ) サ イ ク ルを挿入す る必要
があ り ます。 DONE サ イ ク ルま たは GWE サ イ ク ルが一般的です。
複数の DCM を コ ン フ ィ ギ ュ レーシ ョ ンす る場合は、 すべての DCM が ロ ッ ク さ れ る ま で
DONE ピ ンは High にな り ません。
CLKIN_PERIOD
CLKFX/CLKFX180 出力を最適化す る ため CLKIN 周期を指定 し ます。ロ ッ ク にかか る時間
が短縮 さ れます。 任意を実数を指定で き ます。 デフ ォ ル ト は 0 です。
CLKFX_MD_MAX
M お よ び D 値のダ イ ナ ミ ッ ク プ ロ グ ラ ミ ン グが使用 さ れてい る場合、 ま たは SPREAD_
SPECTRUM 属性が使用 さ れてい る場合、 こ の属性で M お よ び D の最大比が指定 さ れます。
CLKFX_MD_MAX は、主に ス タ テ ィ ッ ク タ イ ミ ン グ解析で使用 さ れます。浮動小数点を使
用で き 、 デフ ォ ル ト の値は CLKFX_MULTIPLY/CLKFX_DIVIDE です。
メモ :
1. ス ペ ク ト ラ ム拡散の ソ フ ト モー ド を正 し く 動作 さ せ る には、 外部 ス テー ト マ シ ン が必要です。 PROGCLK お よ び PROGDATA を外部 ス
テー ト マ シ ンに接続 し て、 スペ ク ト ラ ム拡散 ク ロ ッ ク ソ ース を生成す る 必要があ り ます。
DCM_SP 設計のガ イ ド ラ イ ン
入力 ク ロ ッ ク 周波数の範囲
DCM の ク ロ ッ ク 入力周波数は、 アプ リ ケーシ ョ ンで DLL、 DFS、 ま たはその両方が使用 さ れてい
る かに よ っ て異な り ます。
Spartan-6 FPGA のデー タ シー ト には、 ク ロ ッ ク 入力 (CLKIN)、 お よ び DFS と DLL の両方の周波
数範囲が指定 さ れてい ます。 DFS を単独で使用す る場合は、 DLL よ り も 周波数範囲が広 く な り ま
す。 DLL お よ び DFS 両方がアプ リ ケーシ ョ ンで使用 さ れてい る 場合、 DLL の要件は さ ら に厳 し く
な り ます。表 2-9 には、Spartan-6 FPGA デー タ シー ト で使用 さ れてい る入力周波数範囲が ま と め ら
れてい ます。
66
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM_SP 設計のガ イ ド ラ イ ン
表 2-9 : 入力ク ロ ッ ク 周波数の範囲
フ ァ ンクシ ョ ン
最小周波数
最大周波数
DFS
CLKIN_FREQ_FX_MIN
CLKIN_FREQ_FX_MAX
DLL
CLKIN_FREQ_DLL_MIN
CLKIN_FREQ_DLL_MAX
出力 ク ロ ッ ク 周波数の範囲
DCM の出力 ク ロ ッ ク に も 周波数範囲が指定 さ れてい ます。
入力 ク ロ ッ ク と ク ロ ッ ク フ ィ ー ド バ ッ ク の変動
DCM では、安定し た単調な ク ロ ッ ク 入力が求め ら れますが、CLKIN 入力にあ る程度の ク ロ ッ ク ジ ッ
タ、 そ し て CLKIN 入力および CLKFB フ ィ ー ド バ ッ ク 入力に多少の周波数変動は許容さ れます。
CLKIN 入力のジ ッ タ には、 次の 2 種類があ り ます。
•
サ イ ク ル間ジ ッ タ
•
周期ジ ッ タ
サイ ク ル間ジ ッ タ
サ イ ク ル間ジ ッ タ は、 あ る サ イ ク ル と 次のサ イ ク ルの間での CLKIN 入力周期の変動を示 し ます。
表 2-10 に、 許容 さ れ る最大サ イ ク ル間ジ ッ タ (Spartan-6 FPGA デー タ シー ト 仕様での名前 と 予測
値) を示 し ます。
表 2-10 : 許容 さ れる最大サイ クル間ジ ッ タ
フ ァ ンクシ ョ ン
周波数範囲
DFS
CLKIN_CYC_JITT_FX
DLL
CLKIN_CYC_JITT_DLL
周期ジ ッ タ
も う 1 つの タ イ プのジ ッ タ は周期ジ ッ タ で、多数の ク ロ ッ ク サ イ ク ルにわた る ク ロ ッ ク 周期の変動
を示 し ます。 サ イ ク ル間ジ ッ タ は、 1 つの ク ロ ッ ク サ イ ク ル と 次の ク ロ ッ ク サ イ ク ル と の変動を示
し ますが、周期ジ ッ タ は長時間にわた る 周期の変動を示 し ます。表 2-11 に、許容 さ れ る最大周期ジ ッ
タ (Spartan-6 FPGA デー タ シー ト 仕様での名前 と 予測値) を示 し ます。
表 2-11 : 許容 さ れる最大周期ジ ッ タ
周波数範囲
フ ァ ンクシ ョ ン
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
≤150MHz
≥ 150MHz
DFS
CLKIN_PER_JITT_FX_LF
CLKIN_PER_JITT_FX_HF
DLL
CLKIN_PER_JITT_DLL_LF
LKIN_PER_JITT_DLL_HF
japan.xilinx.com
67
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
DLL のフ ィ ー ド バ ッ ク遅延の変動
DCM の安定性には、DLL で使用 さ れ る ク ロ ッ ク フ ィ ー ド バ ッ ク パ ス も 関係 し ます。フ ィ ー ド バ ッ
ク パ ス の遅延の変動は、 表 2-12 に示す範囲内であ る必要があ り ます。 オンチ ッ プでの変動は、 グ
ロ ーバル ク ロ ッ ク ラ イ ンに接続 し てい る場合は最小限なので、 こ の制限は外部フ ィ ー ド バ ッ ク パ
ス にのみ適用 さ れます。
表 2-12 : 外部 フ ィ ー ド バ ッ ク パス遅延の変動
仕様
説明
CLKFB_DELAY_VAR_EXT
オ フ チ ッ プ CLKFB フ ィ ー ド バ ッ ク パス に許容 さ れ る
最大変動
スペ ク ト ラ ム拡散 ク ロ ッ ク
DCM には一般的な スペ ク ト ラ ム拡散 ク ロ ッ ク を入力で き ます。グ ロ ーバル ク ロ ッ ク を FPGA 内部
ロ ジ ッ ク に駆動す る ため、 DCM の DLL 部分に よ り 、 一般的な スペ ク ト ラ ム拡散 ク ロ ッ ク で生成 さ
れた周波数の変動が認識 さ れます。スペ ク ト ラ ム拡散 ク ロ ッ ク は、デー タ シー ト にあ る DLL 入力要
件を満たす必要があ り ます。 DLL の推奨動作条件 (Recommended Operating Conditions for the
DLL) の表で [入力 ク ロ ッ ク ジ ッ タ 耐性お よ び遅延パ ス偏差] (Input Clock Jitter Tolerance and
Delay Path Variation) の CLKIN_CYC_JITT_DLL、お よ び CLKIN_PER_JITT_DLL を参照 し て く
だ さ い。
DFS は、 入力 ク ロ ッ ク 仕様を満た し てい る 限 り 、 標準スペ ク ト ラ ム拡散入力を監視 し ます。
DCM ク ロ ッ ク 入力お よび外部 フ ィ ー ド バ ッ ク入力
各 DCM には、 入力 ク ロ ッ ク 信号お よ び外部フ ィ ー ド バ ッ ク 信号用に複数の入力があ り ます。
LOCKED 出力の動作
DCM の LOCKED 出力は、イ ネーブルにな っ てい る DCM のすべての機能が CLKIN 入力に ロ ッ ク
さ れてい る か ど う かを示 し ます。
図 2-4 に、 LOCKED 出力の動作を示 し ます。 FPGA の コ ン フ ィ ギ ュ レーシ ョ ン プ ロ セ ス が完了 し
た と き 、 ま たは RST 入力がアサー ト さ れ る と 、 LOCKED 信号は Low にな り ます。
コ ン フ ィ ギ ュ レーシ ョ ン後は、 CLKIN 入力が安定する ま で RST 入力を アサー ト す る こ と を強 く 推
奨 し ます。RST 入力が解除 さ れ る と 、DCM は安定 し た CLKIN 入力の周波数に ロ ッ ク し ます。DLL
では、 CLKIN 入力 と CLKFB フ ィ ー ド バ ッ ク 入力を使用 し 、 ロ ッ ク 状態 (CLKIN と CLKFB の立
ち上が り エ ッ ジの位相が揃 う ) にな っ たか ど う か を判断 し ます。 有効な周波数が出力に現れ る と 、
DFS は出力 ク ロ ッ ク を合成 し て ロ ッ ク し ます。
Spartan-6 FPGA デー タ シー ト には、DCM が ロ ッ ク 状態にな る ま での ワ ース ト ケース の予測時間が
記載 さ れてい ます。通常、 ク ロ ッ ク 周波数が高い方が DLL ユニ ッ ト の出力が ロ ッ ク 状態にな る ま で
の時間が短 く な り ます。 DFS が ロ ッ ク 状態にな る ま での時間は、動作周波数や周波数の逓倍/分周値
な ど の要因に よ っ て変動 し ます。 逓倍値 と 分周値を小 さ く す る と 、 ロ ッ ク 状態に達す る ま での時間
が短 く な り ます。
シ ス テ ム ク ロ ッ ク が安定 し てか ら デバ イ ス動作を開始 さ せる ため、 DCM が ロ ッ ク 状態にな る ま で
デ バ イ ス の コ ン フ ィ ギ ュ レ ー シ ョ ン の 完 了 を 遅 ら せ る こ と が で き ま す。 こ の 機 能 は、
STARTUP_WAIT 属性で制御 し ます。
68
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM_SP 設計のガ イ ド ラ イ ン
LOCKED が High にな る ま で DCM ク ロ ッ ク 出力は安定 し てい ません。 LOCKED 信号が High に
な る 前の DCM の出力 ク ロ ッ ク には、 グ リ ッ チ、 スパ イ ク な ど の不正な波形が含まれてい る可能性
があ り ます。
DCM が最初に ロ ッ ク し た後、 CLKIN が停止する と LOCKED 信号が High の ま ま にな る 場合があ
り ます。 CLKIN が大 き く 変動す る場合 も LOCKED 信号が High の ま ま にな る こ と があ り ます。
Spartan-6 FPGA では、 隣接す る 2 つの DCM を使用す る場合、 両方の DCM が ロ ッ ク 状態にな ら
ない限 り 出力が有効にな り ません。 ま た、 隣接す る DCM は同 じ リ セ ッ ト 信号を共有 し ています。
X-Ref Target - Figure 2-4
㪝㪧㪞㪘
䉮䊮䊐䉞䉩䊠䊧䊷䉲䊢䊮
䉴䉺䊷䊃䉝䉾䊒㩷䊐䉢䊷䉵
㪩㪪㪫㩷౉ജ䈏
䉝䉰䊷䊃䈘䉏䉎
㪣㪦㪚㪢㪜㪛㩷಴ജ䈏㩷㪣㫆㫎
㪚㪣㪢㪠㪥㩷䈏ਇ቟ቯ䈭႐ว䈲㩷
㪩㪪㪫㩷౉ജ䉕㩷㪚㪣㪢㪠㪥㩷䈏቟ቯ
䈜䉎䉁䈪䉝䉰䊷䊃
㪚㪣㪢㪠㪥㩷䈏
ᜰቯ▸࿐ౝ䈪
቟ቯ䈚䈩䈇䉎䈎
Y
N
㪝㪧㪞㪘㩷䉝䊒䊥䉬䊷䉲䊢䊮䈏
㪩㪪㪫㩷౉ജ䉕䉝䉰䊷䊃
䊨䉾䉪៊ᄬ䈱႐ว㩷㪩㪪㪫㩷౉ജ䉕
䉝䉰䊷䊃䈚㩷㪛㪚㪤㩷䈏䊨䉾䉪䉕
ౣขᓧ䈜䉎䉋䈉䈮䈜䉎
૏⋧䈲ឥ䈦䈩䈇䉎䈎
಴ജ䉪䊨䉾䉪䈲⦟䈇䈎
N
䊨䉾䉪៊ᄬ
㪣㪦㪚㪢㪜㪛㩷಴ജ䈏㩷㪣㫆㫎
Y
㪣㪦㪚㪢㪜㪛㩷಴ജ䈏㩷㪟㫀㪾㪿
ug382_c2_04_120408
図 2-4 : LOCKED 出力の動作
DCM の ロ ッ ク 状態が解除 さ れ る と 、自動的に ロ ッ ク 状態に戻 る こ と はあ り ません。 DCM の ロ ッ ク
が解除 さ れた場合は (LOCKED が High か ら Low にな る )、 RST 入力を アサー ト し て DCM を リ
セ ッ ト す る な ど、 FPGA アプ リ ケーシ ョ ンで適切な操作を実行す る必要があ り ます。
LOCKED 信号の使用
DCM を正 し く 動作 さ せ る には、安定 し た単調な ク ロ ッ ク 入力が必要です。 DCM が ロ ッ ク 状態にな
る と 、 Spartan-6 FPGA デー タ シー ト で指定 さ れてい る値ま での ク ロ ッ ク 周期の変動は許容 さ れま
す。 し か し 、 た と えば、 CLKIN が ト グル し な く な っ た場合な ど、 ク ロ ッ ク が指定範囲内を超え て し
ま っ てい る 、 LOCKED 出力が High にな っ た ま ま であ る 、 そ し て DCM 出力が無効であ る可能性が
あ り ます。 そのため、 LOCKED お よ び STATUS 信号の両方を監視す る こ と を推奨 し ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
69
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
STATUS[1] は、 CLKIN が停止 し てい る (CLKIN の許容範囲を超え て し ま っ てい る ) こ と を示す信
号です。 こ の信号は CLKIN が 1 サ イ ク ル停止する と High にな り ますが、 CLKIN が戻 る と ま た
Low に戻 り ます。 LOCKED お よ び STATUS[1] の両方を監視 し てお く と 、 DCM 出力 ク ロ ッ ク の ス
テー タ ス を き ちん と 把握で き ます。
同様に、 STATUS[2] は DFS の出力 CLKFX が停止 し た こ と を示 し ます。 LOCKED = 0 お よ び
STATUS[2] = 1 の場合 DCM を リ セ ッ ト す る必要があ り ます。 FPGA アプ リ ケーシ ョ ンで も DCM
が リ セ ッ ト さ れ る 場合は、 アプ リ ケーシ ョ ンか ら の リ セ ッ ト 信号 と 監視 し ていた出力信号を
OR
ゲー ト に接続 し ます。
X-Ref Target - Figure 2-5
DCM_SP
㻔㻲㻼㻳㻭㻌䜰䝥䝸䜿䞊䝅䝵䞁䛛䜙䛾㻕
DCM_RESET
STATUS[2]
OR
RESET
LOCKED
AND
DCM_LOCKED
CLKFX_STOPPED
ug382_c2_05_051209
図 2-5 : Spartan-6 FPGA DCM DFS ロ ッ ク ロ ジ ッ ク
RST 入力の動作
非同期 RST 入力は、 DCM を コ ン フ ィ ギ ュ レーシ ョ ン後の ス テー ト に リ セ ッ ト し ます。 入力 ク ロ ッ
ク の周波数を変更す る 場合、 RST 入力を使用 し ます。 RST ピ ンはア ク テ ィ ブ High で、 ダ イ ナ ミ ッ
ク 信号ま たはグ ラ ン ド に接続す る必要があ り ます。 RST 入力は、有効な CLKIN の 3 ク ロ ッ ク サ イ
ク ル間以上アサー ト す る必要があ り ます。
コ ン フ ィ ギ ュ レーシ ョ ンが完了 し て も 入力 ク ロ ッ ク 周波数が安定 し ていない場合は、 ク ロ ッ ク が安
定す る ま で RST を アサー ト し ます。外部フ ィ ー ド バ ッ ク を使用す る場合は、 コ ン フ ィ ギ ュ レーシ ョ
ンの直後に DCM を リ セ ッ ト の状態に し ます。
DCM の ロ ッ ク 状態が解除 さ れた場合は (LOCKED が High にな っ た後 Low にな る )、 FPGA アプ
リ ケーシ ョ ンで RST 入力を アサー ト し 、DCM を再び入力 ク ロ ッ ク 周波数で ロ ッ ク さ せ る必要があ
り ます。 LOCKED 出力が High の場合に RST がアサー ト さ れ る と 、 ソ ース ク ロ ッ ク の 4 サ イ ク ル
以内に LOCKED がデ ィ アサー ト さ れます。 RST がアサー ト さ れ る と 、 DCM は再度 ロ ッ ク 状態に
な る 必要があ り ます。
RST を アサー ト する と 、 DCM の遅延 タ ッ プの位置 も ゼ ロ に リ セ ッ ト さ れます。 タ ッ プ位置の変更
に よ り 、 DCM の ク ロ ッ ク 出力ピ ンにグ リ ッ チが発生する 場合があ り ます。 ま た、 RST のアサー ト
に よ り 、 ク ロ ッ ク 出力のデ ュ ーテ ィ サ イ ク ルに も 影響が出る 可能性があ り ます。
RST を アサー ト する と 、 可変位相シ フ ト 値 も PHASE_SHIFT 属性で指定 さ れた値に戻 り ます。
低消費電力 Spartan-6 FPGA デザ イ ンでは、 小規模 リ セ ッ ト 回路が自動的にデザ イ ンに挿入 さ れま
す。 DCM_SP ま たは CLKGEN を VCCINT = 1.0V と 使用す る と き は、 正 し く 動作 さ せ る ために ロ
ジ ッ ク を追加す る 必要があ り ます。 こ の追加回路に よ り 、 一部の信号名が変更 さ れます。
70
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM_CLKGEN 設計のガ イ ド ラ イ ン
DCM_CLKGEN 設計のガ イ ド ラ イ ン
DCM_SP に さ ま ざ ま な ク ロ ッ ク フ ァ ン ク シ ョ ン を管理お よ び生成す る機能が既に備わっ てい ます
が、 Spartan-6 FPGA には、 従来の DCM や PLL にはない高度な ク ロ ッ ク 合成機能を必要 と す る ア
プ リ ケーシ ョ ンのニーズに応え る ため、新 し いプ リ ミ テ ィ ブ (DCM_CLKGEN) があ り ます。こ の新
し いプ リ ミ テ ィ ブを使用 し 、特に民生市場におけ る FPGA アプ リ ケーシ ョ ンの応用範囲を拡大 さ せ
る こ と がで き ます。
•
家庭用電化製品向けデザ イ ンに よ っ ては、従来の DCM や PLL の許容範囲外の ノ イ ズやジ ッ タ
の CLKIN を供給す る も のがあ り ます。
•
不安定であ っ た り 弱いケーブル信号か ら CLKIN を得 る アプ リ ケーシ ョ ン も あ り ます。 こ の よ
う な場合で も DCM 出力は継続 し て実行す る こ と が求め ら れます。
•
フ ラ ッ ト パネル LCD テ レ ビ には、 高額な金属シール ド を使用 し ない EMI 低減機能が必要で
す。
•
異な る 画面デ ィ ス プ レ イ モー ド に対 し さ ま ざ ま な ビデオ タ イ ミ ン グ フ ォーマ ッ ト に準拠す る
には、 ビデオ ピ ク セル ク ロ ッ ク ジ ェ ネ レー タ に、 標準操作中に周波数調整す る機能が必要で
す。
•
複雑な電力管理には、 電力消費量のニーズに合わせダ イ ナ ミ ッ ク に ク ロ ッ ク 周波数を変動 さ せ
る 機能が必要です。
次のセ ク シ ョ ンでは、 DCM_CLKGEN の新機能について詳 し く 説明 し ます。
ダ イ ナ ミ ッ ク 周波数合成
Spartan-6 FPGA の DCM_SP のセ ク シ ョ ンで説明 さ れてい る ス タ テ ィ ッ ク ク ロ ッ ク 周波数合成 と
異な り 、 DCM_CLKGEN プ リ ミ テ ィ ブでは DFS で ク ロ ッ ク 周波数を ダ イ ナ ミ ッ ク に合成で き ま
す。 PROGDATA、 PROGEN、 PROGCLK、 PROGDONE の 4 つの ピ ン を使用 し たプ ロ グ ラ ミ ン グ
ポー ト を持つ専用シ リ アル ペ リ フ ェ ラ ル イ ン タ ーフ ェ イ ス (SPI) バ ス を使用 し 、 CLKFX_
MULTIPLY お よ び CLKFX_DIVIDE ス タ テ ィ ッ ク 属性を上書 き す る よ う 、M お よ び D 値を プ ロ グ
ラ ム可能です。SPI ポー ト は常に ス レーブ デバ イ ス と し て コ ン フ ィ ギ ュ レーシ ョ ン さ れます。SPI マ
ス タ は FPGA ロ ジ ッ ク を使用 し て構築で き ます。 ま た、 PROGEN と PROGDONE の両方の ピ ン を
使用 し て、 複数の DCM ス レーブを 1 つのマ ス タ で制御で き ます。 図 2-6 はマ ス タ と ス レーブの関
係 と その接続を示 し た も のです。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
71
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
X-Ref Target - Figure 2-6
DCM2_SEL
DCM_CLKGEN
(#0)
DCM1_SEL
DCM0_SEL
PROGEN
PROGCLK
PROGCLK
M_D_VALUE
㻿㻼㻵㻌䝬䝇䝍
㻔㻲㻼㻳㻭㻌䝻䝆䝑䜽㻕
PROGDATA
DCM0_DONE
CLKIN
CLKFX
CLKIN0
CLKFX0
PROGDONE
DCM0_LOCKED
LOCKED
DCM1_DONE
DCM1_LOCKED
DCM_CLKGEN
(#1)
DCM2_DONE
DCM2_LOCKED
PROGEN
PROGCLK
CLKIN
CLKFX
CLKIN1
CLKFX1
PROGDATA
PROGDONE
LOCKED
DCM_CLKGEN
(#2)
PROGEN
PROGCLK
CLKIN
CLKFX
CLKIN2
CLKFX2
PROGDATA
PROGDONE
LOCKED
FrequencyCLKFX = FrequencyCLKIN x
M
D
UG382_c2_06_051209
図 2-6 : DCM_CLKGEN M および D のプ ログ ラ ミ ング イ ン タ ー フ ェ イ ス
M/D プ ロ グ ラ ミ ン グ シーケ ン ス は次の よ う にな っ てい ます。
•
2 ビ ッ ト の LoadD コ マ ン ド 10 の後、 LSB を先頭に 8 ビ ッ ト (D-1) が続 き ます。 PROGEN ピ
ン を 10 サ イ ク ル間 ロ ジ ッ ク High に保持する 必要があ り ます。
•
2 ビ ッ ト の LoadM コ マ ン ド 11 の後、LSB を先頭に 8 ビ ッ ト (M-1) が続き ます。 PROGEN ピ
ン を 10 サ イ ク ル間 ロ ジ ッ ク High に保持する 必要があ り ます。
•
1 ビ ッ ト の GO コ マ ン ド 0 が続 き ます。PROGEN ピ ン を 1 サ イ ク ル間 ロ ジ ッ ク High に保持す
る必要があ り ます。
•
SPI マ ス タ は PROGDONE ピ ン を監視 し 、 ロ ジ ッ ク High にアサー ト さ れ る ま で待機 し ます。
•
DCM で LOCKED 信号が High にアサー ト さ れ、新 し く 有効な ク ロ ッ ク 周波数が CLKFX ピ ン
に出力 さ れます。
図 2-7 では M が 14 に、 D が 3 にプ ロ グ ラ ム さ れてい ます。 コ マン ド 間のギ ャ ッ プには最小値があ
り 、 LoadD と LoadM と の間のギ ャ ッ プは最低 2 サ イ ク ルです。 LoadM と GO と の間のギ ャ ッ プ
は最低 1 サ イ ク ルです。
72
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM_CLKGEN 設計のガ イ ド ラ イ ン
X-Ref Target - Figure 2-7
LoadD
LoadM
Go
䝁䝬䞁䝗
䝁䝬䞁䝗
䝁䝬䞁䝗
PROGCLK
PROGEN
PROGDATA
GAP
GAP
PROGDONE
LOCKED
“D–1” ್
(2 = 00000010)
“M–1” ್
(13 = 00001101)
㻳㻻㻌䝁䝬䞁䝗䛾ᚋ䚸㻹㻛㻰㻌䛿㻌
㻼㻾㻻㻳㻰㻻㻺㻱㻌㻩㻌㻝㻌䛻䛺䜛䜎䛷
䝻䞊䝗䛥䜜䛺䛔
䝻䝑䜽᫬㛫䛿࿘Ἴᩘ䛾ኚື䛻䜘䛳䛶␗䛺䜛
UG382_c2_07_061109
図 2-7 : DCM_CLKGEN の M お よび D コ ン フ ィ ギ ュ レーシ ョ ンの タ イ ミ ング波形
出力が PLL を駆動 し てい る ダ イ ナ ミ ッ ク 周波数合成に DCM_CLKGEN が使用 さ れてい る場合、
PLL の VCO 範囲 も 考慮す る必要があ り ます。 DCM_CLKGEN では幅広い範囲の出力周波数がサ
ポー ト さ れてい ます。PLL セ ッ ト ア ッ プに関連 し た VCO 周波数が PLL の VCO 範囲外でない こ と
を確認す る ためすべての周波数をチ ェ ッ ク す る必要があ り ます (第 3 章 の 「周波数合成のみ」 )。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
73
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
スペ ク ト ラ ム拡散 ク ロ ッ ク 生成
スペ ク ト ラ ム拡散 ク ロ ッ ク 生成 (SSCG) は、 エ レ ク ト ロ ニ ク ス デバ イ ス で生成 さ れ る EMI の スペ
ク ト ル密度を低減す る ためその製造者の間で広 く 使用 さ れてい ます。 EMI 放出レベルは、 近接す る
ほかの電子デバ イ ス の動作に影響を与え る レベル以下に抑え る必要があ り ます。 た と えば、 電話が
ビデオ デ ィ ス プ レ イ の隣にあ っ て も 通話の質が落ち る よ う な こ と があ っ てはな り ません。 同様に、
デ ィ ス プ レ イ も 電話使用中に影響を受け る よ う な こ と がない よ う に し なければな り ません。
電磁適合性 (EMC) に関する 規制は、 こ う し た電磁妨害を引き 起 こ す ノ イ ズや EMI を抑制す る ため
の も のです。 EMC 要件に適合 さ せ る ための一般的手段 と し ては、高額なシール ド 、フ ェ ラ イ ト ビー
ズ、 チ ョ ー ク な ど を追加す る方法があ り ます。 こ う し た方法は、 PCB の配線を複雑に し た り 、 製品
開発サ イ ク ルが長 く な る な ど し て、 最終製品の コ ス ト に影響す る可能性があ り ます。
SSCG は、 電磁エネルギーを幅広い周波数帯域に拡散 さ せ、 狭い周波数の幅の中で計測 さ れた電磁
界強度を効果的に抑制 し ます。あ る 周波数でのピー ク 電磁エネルギーは SSCG 出力を モジ ュール化
す る こ と で低減 さ れます。
SSCG は通常次のパ ラ メ ー タ で定義 さ れます。
•
周波数偏差、 つま り 入力周波数の割合
•
モジ ュ レーシ ョ ン周波数
•
拡散 タ イ プ : 上方/下方/中央
•
三角形な ど、 モジ ュ レーシ ョ ンのプ ロ フ ァ イ ル
通常スペ ク ト ラ ム拡散 ク ロ ッ ク は 75MHz (入力周波数)、 ±2.0% の中央拡散、お よ び 75KHz の三角
形モジ ュ レーシ ョ ン と 定義 さ れます。 図 2-8 は、 中央お よ び下方拡散 タ イ プのパ ラ メ ー タ 定義を示
し た も のです。
X-Ref Target - Figure 2-8
๟ᵄᢙ
౉ജ๟ᵄᢙ
+2.0%
๟ᵄᢙ
ਛᄩ᜛ᢔ
±2.0%
䊝䉳䊠䊧䊷䉲䊢䊮
๟ᵄᢙ
౉ജ๟ᵄᢙ
ਅᣇ᜛ᢔ
–4.0%
౉ജ๟ᵄᢙ
䊝䉳䊠䊧䊷䉲䊢䊮
๟ᵄᢙ
౉ജ๟ᵄᢙ
–2.0%
౉ജ๟ᵄᢙ
–4.0%
๟ᵄᢙ஍Ꮕ
๟ᵄᢙ஍Ꮕ
ᤨ㑆
ᤨ㑆
UG382_c2_08_051209
図 2-8 : 一般パラ メ ー タ を定義 し た 2 タ イ プのスペ ク ト ラム拡散ク ロ ッ ク
スペ ク ト ラ ム拡散生成
Spartan-6 FPGA は標準固定周波数オシ レー タ か ら スペ ク ト ラ ム拡散 ク ロ ッ ク を生成で き ます。 こ
の生成には、 DCM_CLKGEN
で、 単純な イ ンプ リ メ ン テーシ ョ ンには固定スペ ク ト ラ ム拡散 ソ
リ ュ ーシ ョ ン、複雑な場合は、DCM_CLKGEN を継続的に再プ ロ グ ラ ムす る追加 ロ ジ ッ ク を必要 と
す る ソ フ ト スペ ク ト ラ ム拡散 ソ リ ュ ーシ ョ ンが使用 さ れます。詳細は表 2-13 を参照 し て く だ さ い。
74
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM_CLKGEN 設計のガ イ ド ラ イ ン
表 2-13 : DCM_CLKGEN スペ ク ト ラム拡散モー ド
スペ ク ト ラ ム拡散値
固定スペ ク ト ラム拡散モー ド
ソ フ ト スペ ク ト ラム拡散モー ド
CENTER_LOW_SPREAD
CENTER_HIGH_SPREAD
VIDEO_LINK_M0、
VIDEO_LINK_M1、 VIDEO_LINK_M2
追加 ロ ジ ッ ク
なし
SOFT_SS
モジ ュ レーシ ョ ン プ ロ フ ァ イ ル
三角
三角
拡散方向
中央
下方
拡散範囲
固定
図を参照
FIN/1024
図を参照
CLKFX_MULTIPLY
2 ~ 32
7
CLKFX_DIVIDE
1~4
2、 4
なし
PROGCLK、 PROGEN、 PROGDATA、
PROGDONE
SPREAD_SPECTRUM 値
FMOD
DCM_CLKGEN プ ロ グ ラ ミ ン グ
ポー ト
固定スペ ク ト ラ ム拡散
スペ ク ト ラ ム拡散の最 も 簡単な イ ンプ リ メ ン ト には DCM_CLKGEN プ リ ミ テ ィ ブの固定モー ド
(図 2-9) を使用 し ます。
SPREAD_SPECTRUM = < CENTER_LOW_SPREAD,CENTER_HIGH_SPREAD>
固定モー ド を使用す る と 、 DCM_CLKGEN で自動的に スペ ク ト ラ ム拡散 ク ロ ッ ク が生成 さ れます。
モジ ュ レーシ ョ ン周波数は入力周波数に基づいてい ます (モジ ュ レーシ ョ ン周波数 = 入力周波数
/1024)。
X-Ref Target - Figure 2-9
DCM_CLKGEN
CLOCK
CLKIN
RESET
RST
CLKFX
CLKFX180
PROGCLK
CLKFXDV
PROGEN
LOCKED
PROGDATA
CLKFX
LOCK
STATUS[2:1]
FREEZEDCM PROGDONE
SPREAD_SPECTRUM =
<CENTER_LOW_SPREAD / CENTER_HIGH_SPREAD>
ug382_02_10_120809
図 2-9 : 固定スペ ク ト ラ ム拡散
ソ フ ト スペ ク ト ラ ム拡散
下方拡散モジ ュ レーシ ョ ンが必要なアプ リ ケーシ ョ ンの場合、 DCM_CLKGEN ではプ ロ グ ラ ミ ン
グ値を切 り 替え る レー ト を制御す る ため、 3 つあ る スペ ク ト ラ ム拡散モー ド の う ちの 1 つが使用 さ
れます。 小型のカ ウ ン タ ベース の ス テー ト マシ ンは三角の スペ ク ト ラ ム拡散 ク ロ ッ ク ソ ース を提
供す る ための DCM_CLKGEN を制御す る こ と がで き ます (図 2-10)。
CM_CLKGEN には ソ フ ト スペ ク ト ラ ム拡散用の外部ス テー ト マシ ンが必要にな る ため、
PROGCLK お よ び PROGDATA を ロ ジ ッ ク に接続で き ない と 、 DRC エ ラ ーが発生 し ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
75
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
X-Ref Target - Figure 2-10
SSCLKGEN
CLOCK
CLK
PROGEN
RESET
RST
PROGDATA
DCM_CLKGEN
SS_CLK
CLKIN
SS_LOCK_IN
RST
PROGDONE
PROGCLK
BUFG
CLKFX
CLKFX
CLKFX180
CLKFXDV
PROGEN
PROGDATA
LOCK
LOCKED
STATUS[2:1]
FREEZEDCM PROGDONE
SPREAD_SPECTRUM =
<VIDEO_LINK_M0 /
VIDEO_LINK_M1 /
VIDEO_LINK_M2>
ug382_c2_11_120809
図 2-10 : ソ フ ト スペ ク ト ラ ム拡散
典型的な ビデオ リ ン ク アプ リ ケーシ ョ ンには 7:1 のシ リ アル化が必要です。IOSERDES2 を使用す
る と 、 ク ロ ッ ク 生成に DCM_CLKGEN お よび PLL の両方が必要にな り ます。 DCM_CLKGEN は
通常 M = 7 お よ び D = 2 で スペ ク ト ラ ム拡散 ク ロ ッ ク ソ ース を生成 し ます。高速 I/O ク ロ ッ ク ネ ッ
ト ワ ー ク にア ク セ スす る には、PLL で BUFPLL を使用 し た SDR ク ロ ッ キ ン グに必要な ク ロ ッ ク 周
波数ま で ク ロ ッ ク が逓倍 さ れます (図 2-11)。
X-Ref Target - Figure 2-11
BUFPLL
DCM_CLKGEN
CLKIN
CLKIN
CLKFX
RST
PLL_BASE
CLKIN
CLKOUT0
CLKFX180
PROGCLK
PROGEN
PROGDATA
CLKFXDV
LOCKED
CLKOUT1
CLKFBIN
CLKOUT2
RST
CLKOUT3
STATUS[2:1]
GCLK
PLLIN
LOCK
IOCLK
BUFG
LOCKED
SERDESSTROBE
CLKOUT4
FREEZEDCM PROGDONE
CLKOUT5
CLKFBOUT
CLKFX_MULTIPLY = 7;
CLKFX_DIVIDE = 2;
SPREAD_SPECTRUM
= [VIDEO_LINK_M0 /
VIDEO_LINK_M1 /
VIDEO_LINK_M2]
LOCKED
DIVCLK_DIVIDE = 1;
CLKFBOUT_MULT = 2;
ug382_c2_12_120809
図 2-11 : 下方向のスペ ク ト ラ ム拡散の VIDEO_LINK セ ッ ト ア ッ プ (20 ~ 107 MHz)
(FIN × 3.5 < CLKOUT_FREQ_FX の場合)
VIDEO_LINK_M0、VIDEO_LINK_M1、お よ び VIDEO_LINK_M2 が一般的な ピ ク セル ク ロ ッ ク
周波数用に選択 さ れています。 VIDEO_LINK_M0 のモジ ュ レーシ ョ ン周波数応答は最速で、
20MHz ピ ク セル ク ロ ッ ク に関連 し た高い周期を補正 し ます。 実際モジ ュ レーシ ョ ン周波数は
SSCLKGEN のセ ッ ト ア ッ プに よ っ て異な り ます。 VIDEO_LINK_M1 は VIDEO_LINK_M0 よ り
も 遅 く 、 VIDEO_LINK_M2 が最 も 遅いモー ド にな り ます。
CLKFX_MULITPLY = 7、 CLKFX_DIVIDE = 2 の ピ ク セル ク ロ ッ ク 周波数は、 CLKOUT_
FREQ_FX の最大値が保持 さ れてい る 場合に使用 さ れます。 PLL 追加の補正を行 う には、 DCM_
CLKGEN を CLKFX_MULTIPLY = 7 お よ び CLKFX_DIVIDE = 4 に変更す る必要があ り ます。
76
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
DCM_CLKGEN 設計のガ イ ド ラ イ ン
図 2-12 を参照 し て く だ さ い。 こ れは VIDEO_LINK_M1 を必要 と す る モジ ュ レーシ ョ ン周波数を
ス ロ ーダ ウ ン さ せます。
BUFPLL
DCM_CLKGEN
CLKIN
CLKIN
PLL_BASE
CLKFX
RST
CLKIN
PROGEN
PROGDATA
LOCKED
CLKFBIN
CLKOUT2
RST
CLKOUT3
STATUS[2:1]
CLKOUT4
FREEZEDCM PROGDONE
CLKOUT5
IOCLK
BUFG
CLKOUT1
CLKFXDV
LOCK
PLLIN
CLKOUT0
CLKFX180
PROGCLK
GCLK
LOCKED
SERDESSTROBE
CLKFBOUT
CLKFX_MULTIPLY = 7;
CLKFX_DIVIDE = 4;
SPREAD_SPECTRUM
= [VIDEO_LINK_M0 /
VIDEO_LINK_M1 /
VIDEO_LINK_M2]
LOCKED
DIVCLK_DIVIDE = 1;
CLKFBOUT_MULT = 4;
ug382_c2_13_120809
X-Ref Target - Figure 2-12
図 2-12 : 下方向のスペ ク ト ラ ム拡散の VIDEO_LINK セ ッ ト ア ッ プ (FIN > 107 MHz の場合)
フ リ ー ラ ン ニ ング オシ レ ー タ
DCM_CLKGEN を使用 し 、 LOCKED 出力ピ ン を FREEZEDCM 入力ピ ンに接続 し て ク ロ ッ ク
ソ ース を生成で き ます。 こ のモー ド で DCM を使用す る場合は開始を促す メ カ ニズ ムが必要です。
DCM では、 ク ロ ッ ク を常に実行す る代わ り に DCM が ロ ッ ク 状態にな る ま で安定 し た レー ト で信
号を ト グルで き ます。 図 2-13 はその例です。
X-Ref Target - Figure 2-13
CLKFX_MULTIPLY = ?
CLKFX_DIVIDE = ?
DCM_CLKGEN
FPGA
ไᚚ䝻䝆䝑䜽
CLKIN
CLKFX
䝻䝑䜽≧ែ䛻䛺䜛䜎䛷
Ᏻᐃ㻛ᅛᐃ䛧䛯
䝺䞊䝖䛷䝖䜾䝹
FREEZEDCM
LOCKED
FCLKFX = FCLKIN x
CLKFX_MULTIPLY
CLKFX_DIVIDE
UG382_c2_14_120809
図 2-13 : フ リ ー ラ ン ニ ング オシ レー タ のセ ッ ト ア ッ プ
CLKFX ピ ンに確定的な周波数出力を得る には、 DCM が ロ ッ ク 状態にな る ま で CLKIN を安定 し た
速度で ト グル し 続け る必要があ り ます。その後、CLKIN は不要にな る ので削除 し て も か まい ません。
DCM_CLKGEN は同 じ 周波数で実行 し 続け ます。温度ま たは電圧レベルが変動す る と 、周波数 も 変
動 し ます。周波数 ド リ フ ト 内での最大周波数を反映 さ せ る よ う タ イ ミ ン グ制約を調整 し て く だ さ い。
新 し い ク ロ ッ ク 入力が適用 さ れ る と 、 リ セ ッ ト を アサー ト す る必要があ り ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
77
第 2 章 : ク ロ ッ ク マネージ メ ン ト テ ク ノ ロ ジ
78
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
第3章
位相ロ ッ ク ループ (PLL)
概要
Spartan-6 FPGA の ク ロ ッ ク マネージ メ ン ト タ イ ル (CMT) には、 DCM が 2 つ、 PLL が 1 つ含ま
れてい ます。 コ ンポーネ ン ト 同士は、 CMT 内にあ る専用配線を使用 し て接続で き ます。 タ イ ル内の
各ブ ロ ッ ク は個別に扱 う こ と がで き ますが、 ブ ロ ッ ク 間に専用配線があ る ため接続に よ っ ては制限
が生 じ ます。専用配線を使用す る こ と に よ り 、 グ ロ ーバル リ ソ ース をほかのデザ イ ン エ レ メ ン ト に
使用で き る よ う にな り ます。 さ ら に、 CMT 内の ロ ーカル配線を使用す る と 、 配線は ロ ーカルで処理
さ れ る ため ノ イ ズ カ ッ プ リ ン グが起 こ り に く く な り 、 ク ロ ッ ク パ ス を改善で き ます。
図 3-1 は、 さ ま ざ ま な ク ロ ッ ク 入力 ソ ース間の接続 と 、 DCM か ら PLL、 PLL か ら DCM の専用配
線の概要を示 し た も のです。 合計 6 つの PLL 出力 ク ロ ッ ク はマルチプ レ ク サに よ り 、 1 つの ク ロ ッ
ク 信号 と し て出力 さ れ、 DCM への リ フ ァ レ ン ス ク ロ ッ ク 信号 と し て使用 さ れます。 PLL か ら の
2 つの出力 ク ロ ッ ク で DCM を駆動で き ます。 こ の 2 つの ク ロ ッ ク は完全に独立 し てい ます。 PLL
出力 ク ロ ッ ク 0 が DCM1 を、 PLL 出力カ ク ロ ッ ク 1 が DCM2 を駆動で き ます。 DCM の各出力は
マルチプ レ ク サを通 し て 1 つの ク ロ ッ ク 信号 と し て出力 さ れ、PLL の リ フ ァ レ ン ス ク ロ ッ ク 信号 と
し て使用可能です。PLL への リ フ ァ レ ン ス ク ロ ッ ク と し て使用で き る DCM は、常に 1 つのみです。
DCM は PLL の フ ィ ー ド バ ッ ク パ ス へは挿入で き ません。 PLL と DCM を個別フ ァ ン ク シ ョ ン と
し て、 別々に使用す る こ と も 可能です。 PLL か ら の出力は スペ ク ト ラ ム拡散ではあ り ません。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
79
第 3 章 : 位相ロ ッ ク ループ (PLL)
X-Ref Target - Figure 3-1
㻮㼁㻲㻵㻻㻞㻌㻔㻰㻵㼂㻯㻸㻷㻕
䛷᥎ㄽ䛥䜜䛯㻌㻳㻯㻸㻷㻌㓄⥺
㻮㼁㻲㻳㻌䛛䜙䛾䜽䝻䝑䜽
㻮㼁㻲㻵㻻㻞㻲㻮㻌䛛䜙䛾
䝣䜱䞊䝗䝞䝑䜽㻌䜽䝻䝑䜽
CLKIN
PLL
CLKOUT[5:0]
6
DCM1
CLKOUT[9:0]
10
DCM2
CLKOUT[9:0]
10
PLL_CLKOUT
CLKFB
CLKIN
DCM1_CLKO
CLKFB
CLKIN
DCM2_CLKO
CLKFB
ug382_c
図 3-1 : Spartan-6 FPGA CMT のブ ロ ッ ク図
80
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
概要
PLL に関連付け ら れた高速 SDR ク ロ ッ ク レー ト をサポー ト する には、 各 BUFPLL を限定数の
PLL ロ ケーシ ョ ンに直接配線 し ます。表 3-1 は各 BUFPLL に接続可能な PLL ロ ケーシ ョ ンの一覧
です。
表 3-1 : BUFPLL に直接接続可能な PLL
デバイ ス別の有効な PLL ロ ケーシ ョ ン
BUFPLL ロ ケーシ ョ ン
LX4、 LX9、 LX16、
LX25/LX25T
LX45/LX45T
LX75/LX75T
LX100/LX100T
LX150/LX150T
0
PLL_ADV_X0Y1
PLL_ADV_X0Y0
PLL_ADV_X0Y3
PLL_ADV_X0Y2
PLL_ADV_X0Y1
PLL_ADV_X0Y0
PLL_ADV_X0Y5
PLL_ADV_X0Y3
PLL_ADV_X0Y2
PLL_ADV_X0Y0
1 (5)
PLL_ADV_X0Y1
PLL_ADV_X0Y0
PLL_ADV_X0Y3
PLL_ADV_X0Y2
PLL_ADV_X0Y1
PLL_ADV_X0Y0
PLL_ADV_X0Y5
PLL_ADV_X0Y3
PLL_ADV_X0Y2
PLL_ADV_X0Y0
2
PLL_ADV_X0Y1
PLL_ADV_X0Y0
PLL_ADV_X0Y3
PLL_ADV_X0Y2
PLL_ADV_X0Y1
PLL_ADV_X0Y0
PLL_ADV_X0Y5
PLL_ADV_X0Y3
PLL_ADV_X0Y2
PLL_ADV_X0Y0
3 (4)
PLL_ADV_X0Y1
PLL_ADV_X0Y0
PLL_ADV_X0Y3
PLL_ADV_X0Y2
PLL_ADV_X0Y1
PLL_ADV_X0Y0
PLL_ADV_X0Y5
PLL_ADV_X0Y3
PLL_ADV_X0Y2
PLL_ADV_X0Y0
バン ク
BUFPLL_X1Y5
BUFPLL_X1Y4
BUFPLL_MCB_X1Y9
BUFPLL_X0Y2
BUFPLL_X0Y3
BUFPLL_MCB_X0Y5
BUFPLL_X1Y0
BUFPLL_X1Y1
BUFPLL_MCB_X1Y5
BUFPLL_X2Y2
BUFPLL_X2Y3
BUFPLL_MCB_X2Y5
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
81
第 3 章 : 位相ロ ッ ク ループ (PLL)
位相ロ ッ ク ループ (PLL)
Spartan-6 FPGA デバ イ ス には最大 6 個の CMT タ イ ルが含まれます。広範囲の周波数合成 と 、DCM
と 併用 し た外部ま たは内部 ク ロ ッ ク のジ ッ タ フ ィ ル タ が、 PLL の主な機能です。
図 3-2 は PLL コ ン ポーネ ン ト の概要を示 し た図です。
X-Ref Target - Figure 3-2
D
PFD
CP
LF
VCO
O0
Clock Pin
O1
O2
M
O3
O4
O5
ug382_3_02_051209
図 3-2 : Spartan-6 FPGA PLL のブ ロ ッ ク図
入力マルチプ レ ク サは、 IBUFG、 BUFG、 IBUF、 PLL 出力ま たは DCM 出力の 1 つか ら 、 リ フ ァ
レ ン ス ク ロ ッ ク お よびフ ィ ー ド バ ッ ク ク ロ ッ ク を選択 し ます。各 ク ロ ッ ク 入力には、プ ロ グ ラ ム可
能なカ ウ ン タ D があ り ます。PFD (位相周波数検出器) では、入力 ( リ フ ァ レ ン ス ) ク ロ ッ ク と フ ィ ー
ド バ ッ ク ク ロ ッ ク の位相お よび周波数が比較 さ れます。最小限の High/Low パルス が維持 さ れてい
る 限 り デ ュ ーテ ィ サ イ ク ルは重要 と な ら ないため、立ち上が り エ ッ ジのみが考慮 さ れます。 PFD を
使用 し て 2 つの ク ロ ッ ク 間の位相お よ び周波数に比例 し た信号が生成 さ れます。 こ の信号は、 CP
(Charge Pump) お よ び LF (Loop Filter) を駆動 し 、VCO (Voltage Controlled Oscillator) に対す る 参
照電圧を生成 し ます。 ま た、 PFD では CP ま たは LF に対 し て ア ッ プ信号ま たダ ウ ン信号を生成 し 、
VCO の動作周波数を決定 し ます。 VCO 動作周波数が高すぎ る場合は、 PFD がダ ウ ン信号を使用 し
て、 制御電圧で VCO 動作電圧を下げます。 ま た、 VCO 動作周波数が低すぎ る 場合には、 ア ッ プ信
号を使用 し 電圧を上げます。 VCO には 8 つの出力位相があ り 、 各出力位相は、 出力カ ウ ン タ の リ
フ ァ レ ン ス ク ロ ッ ク と し て選択可能です。 図 3-3 お よ び図 3-4 を参照 し て く だ さ い。各カ ウ ン タ は、
カ ス タ マ デザ イ ン用にプ ロ グ ラ ムで き ます。 さ ら に、 特別な カ ウ ン タ 、 M も 備わっ てい ます。 こ の
カ ウ ン タ は、 PLL の フ ィ ー ド バ ッ ク ク ロ ッ ク を制御 し 、 広範囲の周波数合成を可能に し ます。
82
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
概要
X-Ref Target - Figure 3-3
ỗ⏝
㓄⥺
䝻䝑䜽᳨ฟ
䜽䝻䝑䜽
䝇䜲䝑䝏
ᅇ㊰
䝻䝑䜽
䝻䝑䜽┘ど
㻤㻌఩┦
䝍䝑䝥
CLKIN1
CLKIN2
D
CP
PFD
LF
O0
VCO
O1
CLKFBIN
CLKFBOUT
O2
8
M
O3
㈇䛾఩┦䝅䝣䝖䜢䛩䜉䛶䛾
ฟຊ䛻཯ᫎ䛥䛫䜛䛯䜑䛾
㼂㻯㻻㻌䝣䜱䞊䝗䝞䝑䜽఩┦㑅ᢥ
O4
O5
ug382_c3_03a_020510
図 3-3 : PLL ブ ロ ッ ク 詳細図 : CLK_FEEDBACK = CLKFBOUT
X-Ref Target - Figure 3-4
ỗ⏝
㓄⥺
䝻䝑䜽᳨ฟ
䜽䝻䝑䜽
䝇䜲䝑䝏
ᅇ㊰
CLKIN1
CLKIN2
䝻䝑䜽
䝻䝑䜽┘ど
8-phase
taps
D
PFD
CP
LF
VCO
O0
O1
M
CLKFBIN
㈇䛾఩┦䝅䝣䝖䜢
䛩䜉䛶䛾ฟຊ䛻཯ᫎ
䛥䛫䜛䛯䜑䛾㻌㼂㻯㻻㻌
䝣䜱䞊䝗䝞䝑䜽఩┦㑅ᢥ
O2
O3
O4
O5
ug382_c3_04new_021110
図 3-4 : PLL ブ ロ ッ ク詳細図 : CLK_FEEDBACK = CLKOUT0
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
83
第 3 章 : 位相ロ ッ ク ループ (PLL)
CLK_FEEDBACK お よび BUFIOFB を使用 し た PLL のア ラ イ メ ン ト
Spartan-6 FPGA の PLL には専用フ ィ ー ド バ ッ ク 配線があ り 、 位相 ノ イ ズの低減や、 BUFG のパ
フ ォーマ ン ス制限を越えた PLL ク ロ ッ ク 機能のパフ ォーマン ス の拡大に使用 さ れます。 こ の専用
PLL 配線を使用す る には、 CLK_FEEDBACK を CLKOUT0 に設定 し 、 図 3-5 に示す よ う に
BUFPLL お よ び BUFIO2FB を使用する 必要があ り ます。
BUFPLL お よ び BUFPLL_MCB 入力 ク ロ ッ ク は、PLL か ら の CLKOUT0 ま たは CLKOUT1 に接
続で き ます。
X-Ref Target - Figure 3-5
Clock Input
I/O
Input
BUFIO2
CLK_REF or CLKIN
ILOGIC
D
BUFIO2FB
CLK_FB
M
CLKMX
CLKOUT0
CLKOUT0_DIVIDE
PLL
CLKFBOUT
CLK_FEEDBACK = CLKOUT0
BUFPLL
ug382_c3_xx_060209
図 3-5 : CLKOUT0 フ ィ ー ド バ ッ ク を使用 し た PLL
CLKOUT0 か ら の専用フ ィ ー ド バ ッ ク を使用す る と 、 出力カ ウ ン タ CLKOUT0_DIVIDE が VCO
周波数に影響を与え ます。
f IN × M × CLKOUT0_DIVIDE
f VCO = --------------------------------------------------------------------------------D
式 3-1
入力の配線を正確に ス キ ュー調整す る には、BUFIO2FB バ ッ フ ァ を 49 ページの図 1-33 に示す よ う
に使用す る 必要があ り ます。BUFIO2FB は BUFIO2 バ ッ フ ァ と 一致 し てお り 、ス キ ュ ー調整を 1 つ
の DCM に制限 し てい ます。
84
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
概要
CLK_FEEDBACK = CLKOUT0 を使用す る と 、CLKFBIN の周波数を PFD の周波数 と 異な る値に
設定で き ます。 CLK_FEEDBACK = CLKOUT0 を設定する と き は、 PFD に よ り 入力 ク ロ ッ ク
(式 3-2) の周波数 と フ ィ ー ド バ ッ ク ク ロ ッ ク の周波数が一致する ので注意 し て く だ さ い。
FCLKIN
FPFD_ CLKIN = -------------------------------------------
DIVCLK_DIVIDE
式 3-2
CLK_FEEDBACK = CLKFBOUT の と き 、CLKFBOUT (式 3-3) の周波数は、PFD の フ ィ ー ド バ ッ
ク 周波数に一致 し ます。
F VCO
F CLKFBOUT = -----------------------------------------------------CLKFBOUT _ MULT
式 3-3
F PFD _ CLKFBOUT = F CLKFB
式 3-4
CLK_FEEDBACK = CLKOUT0 の と き 、CLKOUT0 (式 3-5) の出力周波数は CLKFB_MULT に従
い フ ィ ー ド バ ッ ク 周波数 と 異な る値に設定で き ます。 図 3-4 に示す よ う に CLKOUT0 の周波数は
CLKFB_MULT で除算 さ れ、 CLKFB_MULT (式 3-6) に依存 し た PFD 周波数にな り ます。
F VCO
F CLKOUT 0 = ----------------------------------------------------CLKOUT 0_ DIVIDE
式 3-5
F CLKOUT 0
F PFD _ CLKOUT 0 = ---------------------------------------CLKFB _ MULT
式 3-6
式 3-5 では、 CLKOUT0 の出力周波数を VCO 周波数 と 異な る値に設定で き ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
85
第 3 章 : 位相ロ ッ ク ループ (PLL)
一般的な使用法について
PLL プ リ ミ テ ィ ブ
図 3-6 は、 Spartan-6 FPGA の PLL プ リ ミ テ ィ ブ、 PLL_BASE お よ び PLL_ADV の図です。
X-Ref Target - Figure 3-6
CLKIN
CLKOUT0
CLKIN1
CLKOUT0
CLKOUT1
CLKIN2
CLKOUT1
CLKFBIN
CLKOUT2
CLKFBIN
CLKOUT2
RST
CLKOUT3
RST
CLKOUT3
CLKOUT4
CLKINSEL
CLKOUT4
CLKOUT5
CLKOUT5
CLKFBOUT
CLKFBOUT
CLKOUTDCM0
CLKOUTDCM1
CLKOUTDCM2
CLKOUTDCM3
CLKOUTDCM4
CLKOUTDCM5
CLKFBDCM
LOCKED
LOCKED
PLL_BASE
PLL_ADV
ug382_c3_05_080309
図 3-6 : PLL プ リ ミ テ ィ ブ
PLL_BASE プ リ ミ テ ィ ブ
PLL_BASE プ リ ミ テ ィ ブは、ス タ ン ド ア ロ ンの PLL で最 も 頻繁に使用 さ れ る機能を提供 し ます。ク
ロ ッ ク ス キ ュ ー調整、 周波数合成、 コース位相シ フ ト 、 お よ びデ ューテ ィ サ イ ク ル調整機能が使用
可能です。 表 3-2 にはポー ト が リ ス ト さ れてい ます。
表 3-2 : PLL_BASE ポー ト
説明
86
ポー ト
ク ロ ッ ク 入力
CLKIN、 CLKFBIN
制御入力
RST
ク ロ ッ ク 出力
CLKOUT0 ~ CLKOUT5、 CLKFBOUT
ス テー タ ス お よ びデー タ 出力
LOCKED
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
一般的な使用法について
PLL_ADV プ リ ミ テ ィ ブ
PLL_ADV プ リ ミ テ ィ ブは PLL_BASE の持つ機能をすべて提供 し ます。 こ の資料には PLL_ADV
は参照のため記載 さ れています。 こ のプ リ ミ テ ィ ブはデバ イ ス を タ ーゲ ッ ト し 直す場合に使用で き
ますが、ほ と ん ど の場合は PLL_BASE プ リ ミ テ ィ ブや ク ロ ッ ク ウ ィ ザー ド を使用 し ます。表 3-3 に
はポー ト が リ ス ト さ れています。
表 3-3 : PLL_ADV ポー ト
説明
ポー ト
ク ロ ッ ク 入力
CLKIN1、 CLKIN2、 CLKFBIN
制御入力お よ びデー タ 入力
RST、 CLKINSEL
ク ロ ッ ク 出力
CLKOUT0 ~ CLKOUT5、 CLKFBOUT
CLKOUTDCM0 ~ CLKOUTDCM5、 CLKFBDCM
ス テー タ ス お よ びデー タ 出力
LOCKED
Spartan-6 FPGA の PLL は信号が混在す る ブ ロ ッ ク で、 ク ロ ッ ク ネ ッ ト ワ ー ク の ス キ ュー調整、 周
波数合成、 お よ びジ ッ タ 低減をサポー ト す る ための も のです。 こ れ ら 3 つの動作モー ド の詳細は後
述 し ます。 VCO の動作周波数は、 次の関係に よ っ て決定 さ れます。
CLK_FEEDBACK = CLKFBOUT を式 3-7 で示 し ます。
M
F VCO = F CLKIN × ----D
CLK_FEEDBACK = CLKOUT0 を式 3-8 で示 し ます。
M× O
FVCO = FCLKIN × ----------------
D
FVCO
FOUT = ------------O
式 3-7
式 3-8
式 3-9
こ こ で、 M、 D、 O は 図 3-3 に示 し た カ ウ ン タ です。
6 個の O カ ウ ン タ は個別にプ ロ グ ラ ム可能です。 た と えば、 O0 を 2 分周用にプ ロ グ ラ ム し 、 O1 を
3 分周用にプ ロ グ ラ ムで き ます。ただ し 、1 つの VCO ド ラ イ バがすべてのカ ウ ン タ を駆動す る ため、
VCO 動作周波数は、 すべての出力カ ウ ン タ に対 し て同一でなければな り ません。
ク ロ ッ ク ネ ッ ト ワー ク スキ ュ ー調整
通常、 I/O タ イ ミ ン グ バジ ェ ッ ト において、 ク ロ ッ ク ネ ッ ト ワ ー ク での遅延の発生は望ま し い も の
ではないため、 PLL や DLL を使用 し て こ の遅延を調整 し ます。 Spartan-6 FPGA の PLL では、 こ
の遅延調整機能がサポー ト さ れています。 リ フ ァ レ ン ス ク ロ ッ ク CLKIN の周波数 と 同一周波数の
ク ロ ッ ク 出力 (通常は CLKFBOUT ま たは CLKOUT) が BUFG に接続 さ れ、PLL の CLKFBIN ピ
ンに フ ィ ー ド バ ッ ク 入力 さ れます。 それ以外の出力は ク ロ ッ ク 分周に使用で き、 周波数合成を行 う
こ と がで き ます。 こ の場合、 すべての出力 ク ロ ッ ク で、 入力 リ フ ァ レ ン ス ク ロ ッ ク に対す る位相関
係が定義 さ れてい ます。
入力配線を正確に ス キ ュー調整す る には、BUFIO2FB バ ッ フ ァ を 図 3-16 に示す よ う に使用す る必
要があ り ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
87
第 3 章 : 位相ロ ッ ク ループ (PLL)
周波数合成のみ
PLL は周波数合成専用に使用する こ と も で き ます。 こ の場合、 PLL で ク ロ ッ ク ネ ッ ト ワ ー ク の ス
キ ュ ーは調整で き ませんが、 ほかのブ ロ ッ ク 用の出力 ク ロ ッ ク 周波数を生成で き ます。 PLL フ ィ ー
ド バ ッ ク パ ス を INTERNAL に設定する と 、 すべての ロ ーカル配線が保持 さ れ る ので、 ジ ッ タ が最
小限に抑え ら れます。 図 3-7 は、 周波数合成回路 と し て コ ン フ ィ ギ ュ レーシ ョ ン し た PLL です。 こ
の例では、PCI Express x1 Gen1 用に ク ロ ッ ク が コ ン フ ィ ギ ュ レーシ ョ ン さ れています。100MHz の
リ フ ァ レ ン ス ク ロ ッ ク は GTP ト ラ ン シーバの REFCLKOUT か ら 供給 さ れます。 カ ウ ン タ を
M = 5、 D = 1 に設定す る と 、 VCO は 500MHz (100MHz x 5) でオシ レー ト さ れます。 VCO 周波数
が Spartan-6 FPGA デー タ シー ト で指定 さ れてい る 範囲内であ る こ と を確認 し ます。 6 つあ る PLL
出力の う ち 4 つは、 次を提供す る よ う プ ロ グ ラ ム さ れます。
•
250MHz の ク ロ ッ ク (GTP ト ラ ン シーバの TXUSRCLK お よ び RXUSRCLK に供給)
•
125MHz の ク ロ ッ ク (PCI Express PHY イ ン タ ーフ ェ イ スお よ び 2 バ イ ト のデー タ 送信の
GTP ト ラ ン シーバの TXUSRCLK2 と RXUSRCLK2 用)
•
62.5MHz の ク ロ ッ ク (PCI Express ユーザー イ ン タ ーフ ェ イ スお よびブ ロ ッ ク RAM イ ン タ ー
フ ェ イ ス用)
•
50MHz の ク ロ ッ ク ( その他のグルー ロ ジ ッ ク 用)
こ の例では、 リ フ ァ レ ン ス ク ロ ッ ク と 出力 ク ロ ッ ク 間の位相が関連 し てい る必要はあ り ませんが、
出力 ク ロ ッ ク 間の位相は一致 し てい る必要があ り ます。
X-Ref Target - Figure 3-7
㻝㻜㻜㻌㻹㻴㼦
䝸䝣䜯䝺䞁䝇
䜽䝻䝑䜽
D=1
PFD, CP,
LF, VCO
O0 = 2
O1 = 4
M=5
O2 = 8
O3 =10
TXUSERCLK/RXUSERCLK
㻼㻯㻵㻌㻱㼤㼜㼞㼑㼟㼟㻌㻼㻴㼅㻌䜲䞁䝍䞊䝣䜵䜲䝇
㼀㼄㼁㻿㻱㻾㻯㻸㻷㻛㻾㼄㼁㻿㻱㻾㻯㻸㻷
㻼㻯㻵㻌㻱㼤㼜㼞㼑㼟㼟㻌䝴䞊䝄䞊䜲䞁䝍䞊䝣䜵䜲䝇
䛚䜘䜃䝯䝰䝸䜲䞁䝍䞊䝣䜵䜲䝇
䛭䛾௚䜾䝹䞊䝻䝆䝑䜽
O4 =
O5 =
ug382_c3_05_051209
図 3-7 : 周波数合成器 と し ての PLL
ジ ッ タ フ ィ ルタ
PLL は、常に リ フ ァ レ ン ス ク ロ ッ ク 上のジ ッ タ を低減す る 機能があ り ます。 PLL は、別のブ ロ ッ ク
(DCM を含む) が駆動 さ れ る 前に外部 ク ロ ッ ク か ら ジ ッ タ を フ ィ ル タ す る ため、 単独の フ ァ ン ク
シ ョ ン と し て イ ン ス タ ン シエー ト で き ます。 ジ ッ タ フ ィ ル タ と し て使用する 場合、 PLL はバ ッ フ ァ
の よ う に動作 し 、 入力周波数 と 同一周波数の出力を再生成 し ます (FIN = 100MHz、
FOUT = 100MHz な ど )。 一般的に、 PLL の BANDWIDTH 属性を Low に設定す る と 、 よ り 大 き な
ジ ッ タ フ ィ ル タ 機能が作成で き ます。 ただ し 、 BANDWIDTH を Low に設定す る と PLL の ス タ
テ ィ ッ ク オフ セ ッ ト が増加す る 可能性があ り ます。
制限
PLL には順守すべ き い く つかの制限があ り ます。PLL の電気的仕様は、Spartan-6 FPGA デー タ シー
ト に記載 さ れています。 主な制限には、 VCO 動作範囲、 入力周波数、 デ ューテ ィ サ イ ク ルのプ ロ グ
ラ ム、 位相シ フ ト があ り ます。
88
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
一般的な使用法について
VCO 動作範囲
VCO の最大お よ び最小動作周波数は、 Spartan-6 FPGA デー タ シー ト の電気的仕様で定義 さ れてい
ます。 こ れ ら の値は ス ピー ド 仕様か ら も 得 る こ と がで き ます。
最小およ び最大入力周波数
CLKIN の最大お よ び最小入力周波数は、 Spartan-6 FPGA デー タ シー ト の電気的仕様で定義 さ れて
います。
デ ュ ーテ ィ サイ ク ルのプ ロ グ ラ ム
あ る VCO 動作周波数 に対 し 、特定のデュ ーテ ィ サ イ ク ルのみ可能です。出力のデ ューテ ィ サ イ ク
ルを決定す る ためのカ ウ ン タ 設定は、 「カ ウ ン タ 制御」 で説明 し てい ます。
位相シ フ ト
多 く のケース で ク ロ ッ ク 間の位相を シ フ ト さ せ る 必要があ り ます。VCO は 45°ずつ位相シ フ ト し た
8 個の ク ロ ッ ク を作成で き る ため、 時間を単位 と す る 位相シ フ ト 精度は、 PS = 1/8 FVCO ま たは
D/8MFIN と 定義 さ れます。
VCO 周波数が高いほ ど、位相シ フ ト 精度は精密にな り ます。VCO には明確な動作範囲があ る ため、
1/8 FVCO_MIN ~ 1/8 FVCO_MAX の範囲を使用 し 、 位相シ フ ト 精度を制限可能です。
各出力カ ウ ン タ は個別にプ ロ グ ラ ム可能で、 VCO の出力周波数に基づいて異な る位相シ フ ト 精度
を設定で き ます。
メ モ : 45°以上の位相シ フ ト も 可能です。位相シ フ ト の制度は出力デューテ ィ サ イ ク ル と 0 値に よ っ
て変化 し ます。 その他の位相シ フ ト 設定については ク ロ ッ ク ウ ィ ザー ド を参考に し て く だ さ い。
PLL プ ログ ラ ミ ング
安定性 と 性能を確保で き る コ ン フ ィ ギ ュ レーシ ョ ンにす る には、指定 さ れた フ ローに従っ て PLL を
プ ロ グ ラ ムす る 必要があ り ます。 こ のセ ク シ ョ ンでは、デザ イ ン要件に基づ く PLL のプ ロ グ ラ ム方
法を説明 し ます。デザ イ ンは、GUI イ ン タ ーフ ェ イ ス ( ク ロ ッ ク ウ ィ ザー ド ) を使用す る方法 と PLL
を イ ン ス タ ン シエー ト す る方法の 2 通 り で イ ンプ リ メ ン ト で き ます。 イ ンプ リ メ ン テーシ ョ ン方法
にかかわ ら ず、 PLL のプ ロ グ ラ ムには次の情報が必要です。
•
リ フ ァ レ ン ス ク ロ ッ ク 周期
•
出力 ク ロ ッ ク 周波数 (最大 6 つの周波数)
•
出力 ク ロ ッ ク デ ュ ーテ ィ サ イ ク ル (デフ ォ ル ト 50%)
•
最速出力 ク ロ ッ ク のサ イ ク ル数に相対す る出力 ク ロ ッ ク 位相シ フ ト
•
PLL バン ド 幅 (デフ ォ ル ト は OPTIMIZED であ り 、 ソ フ ト ウ ェ アで選択)
•
補正モー ド ( ソ フ ト ウ ェ アで自動的に決定)
•
単位が UI の リ フ ァ レ ン ス ク ロ ッ ク ジ ッ タ ( リ フ ァ レ ン ス ク ロ ッ ク 周期の比率な ど )
入力周波数の決定
最初に入力周波数を決定 し ます。 D カ ウ ン タ 範囲を決定す る最小お よ び最大入力周波数、 M カ ウ ン
タ 範囲を決定す る VCO 動作範囲、お よび出力カ ウ ン タ 範囲を使用 し て、可能な出力周波数が決定で
き ます。 周波数の範囲は非常に広 く 、 組み合わせに よ っ ては、 128 x 128 x 128 = 2,097,152 の周波
数が考え ら れます。し か し 、実際には M お よ び D カ ウ ン タ の範囲内にあ る値をすべて使用す る こ と
は不可能で、 重複 し た設定 も あ る ため、 周波数の総数は少な く な り ます。 た と えば、 FIN = 100MHz
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
89
第 3 章 : 位相ロ ッ ク ループ (PLL)
を例に と っ て考え てみま し ょ う 。 最小 PFD 周波数が 19MHz の場合、 D は 1 ~ 5 です。 D = 1 の場
合 M は 4 ~ 10、 D = 2 では M は 8 ~ 20 と な り ます。 ま た、 D = 1、 M = 4 は、 D = 2、 M = 8 の
サブセ ッ ト であ る ため、 D = 1、 M = 4 のケースは除外で き ます。
こ れで、 可能な出力周波数の数は大 き く 減 り ます。 出力周波数は連続 し て選択 さ れます。 目的の出
力周波数は、 生成 さ れた可能な出力周波数に対 し てチ ェ ッ ク し てお く 必要があ り ます。 最初の出力
周波数が決定す る と 、 M お よ び D の値が さ ら に制限 さ れ、 2 番目の出力周波数が制限 さ れ る こ と に
な り ます。 すべての出力周波数が選択 さ れ る ま で、 こ のプ ロ セ ス を繰 り 返 し ます。
M お よ び D 値の決定に使用す る制約は次の式で表 さ れます。
fIN
DMIN = roundup----------------------fPFD MAX
式 3-10
fIN
DMAX = rounddown --------------------fPFD MIN
式 3-11
fVCOMIN⎞
- × DMIN
MMIN = ⎛⎝ roundup--------------------fIN ⎠
式 3-12
DMAX × fVCOMAX
MMAX = rounddown--------------------------------------------fIN
式 3-13
M および D 値の決定
入力周波数が決定す る と 、 M お よ び D 値があ る 程度決ま り ます。 次の ス テ ッ プでは、 最適な M お
よ び D 値を決定 し ます。 まず M の開始値を決定 し ます。 こ の値は、 VCO タ ーゲ ッ ト 周波数、 つま
り VCO の理想的な動作周波数に基づいて決定 し ます。
DMIN × fVCOMAX
MIDEAL = -------------------------------------------fIN
式 3-14
こ こ では、 VCO の理想周波数に最 も 近 く な る M 値を決定 し ます。 プ ロ セ ス の開始には D の最小値
が使用 さ れます。 ƒ VCO を可能な限 り 高 く 保持 し なが ら 、 D お よ び M の最小値を決定 し ます。
PLL ポー ト
表 3-4 は PLL ポー ト が、 表 3-5 に PLL 属性が リ ス ト さ れてい ます。
表 3-4 : PLL ポー ト
90
ピ ン名
I/O
CLKIN
入力
一般的な ク ロ ッ ク 入力
CLKIN1
入力
再 タ ーゲ ッ ト に使用す る PLL_ADV ピ ンです。 一般的な ク ロ ッ ク 入力。
CLKIN2
入力
再 タ ーゲ ッ ト に使用す る PLL_ADV ピ ンです。 セカ ン ダ リ ク ロ ッ ク 入力。
CLKFBIN
入力
フ ィ ー ド バ ッ ク ク ロ ッ ク 入力
説明
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
一般的な使用法について
表 3-4 : PLL ポー ト (続き )
ピ ン名
I/O
説明
CLKINSEL
入力
再 タ ーゲ ッ ト に使用す る PLL_ADV ピ ンです。 PLL_ADV の ク ロ ッ ク 入力を制御 し 、
ス タ テ ィ ッ ク High ま たはス タ テ ィ ッ ク Low に接続 し ます。
(High = CLKIN1、 Low = CLKIN2)
RST
入力
非同期 リ セ ッ ト 信号。 PLL の非同期 リ セ ッ ト です。 こ の信号が解放 さ れ る と 、 PLL は同
期 し て再び有効にな り ます。 周波数な ど入力 ク ロ ッ ク の状態が変動す る と 、 リ セ ッ ト が
必要です。
CLKOUT[0:5](1)
出力
VCO 位相調整出力 (ユーザー制御可) か ら 1 (バ イ パ ス ) ~ 128 分周 さ れたユーザー コ
ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク 出力 (0 ~ 5) です。 入力 ク ロ ッ ク と 出力 ク ロ ッ ク の位相
は一致 し ます。
CLKFBOUT
出力
専用 PLL フ ィ ー ド バ ッ ク 出力。
CLKOUTDCM[0:5](1)
出力
再 タ ーゲ ッ ト に使用す る PLL_ADV ピ ンです。 PLL と 同 じ CMT にあ る DCM に接続
可能なユーザー コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク (0 ~ 5) です。
CLKFBDCM
出力
再 タ ーゲ ッ ト に使用す る PLL_ADV ピ ンです。 PLL が DCM を駆動す る場合の調整用
PLL フ ィ ー ド バ ッ ク 。 CLKFBOUT ピ ンが こ の目的で使用 さ れてい る 場合、 ソ フ ト ウ ェ
アで自動的に正 し いポー ト にマ ッ プ さ れます。
PLL か ら の非同期出力で、 あ ら か じ め指定 さ れた PPM 範囲内にあ る周波数が得 ら れた
こ と と 、指定ウ ィ ン ド ウ 内の位相ア ラ イ メ ン ト が完了 し た こ と を示 し ます。 PLL は電源
投入後に自動的に ロ ッ ク 状態にな る ので、 余分な リ セ ッ ト は不要です。 入力 ク ロ ッ ク が
停止 し た場合、 ま たは位相ア ラ イ メ ン ト に違反があ っ た場合 (入力 ク ロ ッ ク 位相シ フ ト
な ど )、LOCKED がデ ィ アサー ト さ れます。 PLL は LOCKED がデ ィ アサー ト さ れた後
に リ セ ッ ト す る 必要があ り ます。
LOCKED
出力
DO[15:0]
出力
PLL_ADV ピ ンはサポー ト さ れてい ません。
DRDY
出力
PLL_ADV ピ ンはサポー ト さ れてい ません。
メモ :
1. CLKOUTN お よ び CLKOUTDCMN は同 じ 出力カ ウ ン タ を使用 し てお り 、 個別に動作 さ せ る こ と はで き ま せん。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
91
第 3 章 : 位相ロ ッ ク ループ (PLL)
PLL 属性
表 3-5 : PLL 属性
属性
COMPENSATION
タ イプ
値
デ フ ォル ト
説明
文字列
SYSTEM_
SYNCHRONOUS
SOURCE_
SYNCHRONOUS
EXTERNAL
SYSTEM_
SYNCHRONOUS
入力 ク ロ ッ ク の PLL の位相補正を指定
し ます。SYSTEM_SYNCHRONOUS で
は、 ホール ド タ イ ムが 0 にな る よ う 、 す
べての ク ロ ッ ク 遅延を補正 し よ う と し ま
す。 ク ロ ッ ク はデー タ と 共に送信 さ れ る
ため、ク ロ ッ ク で位相調整 さ れ る と き に、
SOURCE_SYNCHRONOUS が使用 さ
れます。
EXTERNAL は FPGA 外部の ク ロ ッ ク
を配線す る こ と で補正す る と き に使用 し
ます。
次の追加属性が ISE で自動的に選択 さ れ
ます。
INTERNAL
DCM2PLL
PLL2DCM
BANDWIDTH
文字列
HIGH
LOW
OPTIMIZED
OPTIMIZED
PLL のジ ッ タ、 位相マージ ン、 その他の
特性に影響を与え る PLL のプ ロ グ ラ ミ
ン グ アルゴ リ ズ ム を指定 し ます。
CLKOUT[0:5]_
DIVIDE
整数
1 ~ 128
1
異 な る 周波数 を 使用す る 必要が あ る 場
合、 CLKOUT ク ロ ッ ク 出力を分周す る
値 を 指 定 し ま す。 CLKFBOUT_MULT
と DIVCLK_DIVIDE の値の組み合わせ
で、 出力周波数を決定 し ます。
CLKOUT[0:5]_
PHASE
実数
-360.0 ~ 360.0
0.0
関連す る CLKOUT ク ロ ッ ク 出力の出力
位相関係を度数で指定で き ます (90 は
90° ま たは 1/4 サ イ ク ルの位相オ フ セ ッ
ト を示 し 、 180 は 180° ま たは 1/2 サ イ ク
ルの位相オフ セ ッ ト を示 し ます)。
CLK_FEEDBACK = CLKOUT0 を設定
す る 場合、 残 り すべての ク ロ ッ ク 出力の
位相シ フ ト は負の値にな り ます。
CLKOUT[0:5]_
DUTY_CYCLE
実数
0.01 ~ 0.99
0.50
CLKOUT ク ロ ッ ク 出力のデ ュ ーテ ィ サ
イ ク ルをパーセ ン ト で指定 し ます。 0.50
の場合デ ューテ ィ サ イ ク ルは 50% にな
り ます。
CLKFBOUT_MULT
92
整数
1
1 ~ 64
japan.xilinx.com
異 な る 周波数 を 使用す る 必要が あ る 場
合、 すべての CLKOUT ク ロ ッ ク 出力の
逓 倍 値 を 指 定 し ま す。 関 連 す る
CLKOUT#_DIVIDE と DIVCLK_
DIVIDE と の組み合わせで、 こ の出力周
波数を決定 し ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
一般的な使用法について
表 3-5 : PLL 属性 (続き )
属性
タ イプ
値
デ フ ォル ト
説明
DIVCLK_DIVIDE
整数
1 ~ 52
1
入力 ク ロ ッ ク と すべての出力 ク ロ ッ ク の
分周比を指定 し ます。
CLKFBOUT_PHASE
実数
0.0 ~ 360.0
0.0
ク ロ ッ ク フ ィ ー ド バ ッ ク 出力の位相オ
フ セ ッ ト を度数で指定 し ます。 フ ィ ー ド
バ ッ ク ク ロ ッ ク をシフ ト する こ と によ
り 、すべての出力 ク ロ ッ ク は PLL に対 し
て負の方向に位相シ フ ト し ます。
REF_JITTER
実数
0.000 ~ 0.999
0.100
PLL
CLKIN1_PERIOD
実数
1.408 ~ 52.630
0.000
PLL CLKIN1 入力に対す る入力周期を
ns で指定 し ます。 単位は ps ま で細か く
のパフ ォーマン ス を一層最適化す
る よ う 、 リ フ ァ レ ン ス ク ロ ッ ク 上のジ ッ
タ 期待値を指定で き ます。 バン ド 幅の設
定が OPTIMIZED に設定 さ れてい る 場
合、 ジ ッ タ 値が不明の と き入力 ク ロ ッ ク
の最適パ フ ォ ーマ ン ス が選択 さ れ ま す。
ジ ッ タ 値がわか っ てい る と き は、 入力 ク
ロ ッ ク 上のジ ッ タ 期待値を UI パーセン
テージ (最大 Peak to Peak 値) で指定す
る 必要があ り ます。
指定可能です。 こ の値は必ず指定す る 必
要があ り ます。
CLKIN2_PERIOD
実数
1.408 ~ 52.630
0.000
PLL CLKIN2 入力に対す る入力周期を
ns で指定 し ます。 単位は ps ま で細か く
指定可能です。 こ の値は必ず指定す る 必
要があ り ます。
CLK_FEEDBACK
RESET_ON_LOSS
_OF_LOCK
文字列
文字列
CLKFBOUT ま たは
CLKOUT0
CLKFBOUT
FALSE
FALSE
CLKFB_IN を駆動す る ための ク ロ ッ ク
ソ ース を指定 し ます。 フ ィ ー ド バ ッ ク リ
ソ ース の使用お よ び VCO 周波数の算出
については 84 ページの図 3-5 を参照 し
て く だ さ い。
FALSE に設定する 必要があ り ますが、デ
バ イ ス ではサポー ト さ れてい ません。
PLL ク ロ ッ ク入力信号
PLL ク ロ ッ ク の ソ ース には次の も のがあ り ます。
•
IBUFG : グ ロ ーバル ク ロ ッ ク 入力バ ッ フ ァ 。 PLL は こ のパ ス の遅延を補正 し ます。
•
BUFG : 内部グ ロ ーバル ク ロ ッ ク バ ッ フ ァ 。 PLL は こ のパ ス の遅延を補正 し ません。
•
IBUF : PLL では ロ ーカル配線の遅延を補正で き ないため、 こ のバ ッ フ ァ の使用は推奨 し ませ
ん。 IBUF ク ロ ッ ク 入力は、 PLL に配線す る前に BUFG に配線す る必要があ り ます。
•
DCMOUT : PLL への DCM 出力すべてが こ のパ ス の遅延を補正 し ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
93
第 3 章 : 位相ロ ッ ク ループ (PLL)
•
BUFIO2 : IBUFG と 併用する 場合、DIVCLK 出力は直接 PLL ク ロ ッ ク 入力に接続 し ます。PLL
は こ の遅延を補正 し ます。
グ ロ ーバル ク ロ ッ ク 入力が PLL への接続に使用 さ れ る場合、29 ページの図 1-13 に示す よ う に最適
なパフ ォーマ ン ス を得 る ためにBUFIO2 ク ロ ッ ク バ ッ フ ァ が自動推論 さ れます。 各 BUFIO2 はデ
バ イ ス上辺ま たは下辺にあ る CMT に配線 さ れます。 推論 さ れた BUFIO2 バ ッ フ ァ は、 正 し い位相
ア ラ イ メ ン ト を得 る ために配線を制限 し ます。
BUFIO2 の ク ロ ッ ク 領域 TL、 TR、 RT の BUFIO2 バ ッ フ ァ は、 デバ イ ス上半分にあ る DCM/PLL
に接続 さ れます。 同様に、 BUFIO2 の ク ロ ッ ク 領域 BL、 BR、 RB、 お よ び LB の BUFIO2 バ ッ フ ァ
は、 デバ イ ス下半分の DCM/PLL に接続 さ れます。
カ ウ ン タ 制御
PLL の出力カ ウ ン タ は、 DIVIDE、 DUTY_CYCLE、 お よ び PHASE を組み合わせて使用 し 、 広範
囲に渡 る 合成 ク ロ ッ ク を提供 し ます。 図 3-8 に、 カ ウ ン タ 設定 と その出力の関係を示 し ます。
最初の波形は、 PLL モー ド での VCO か ら の出力です。
X-Ref Target - Figure 3-8
Counter Clock Input
(VCO)
DIVIDE = 2
DUTY_CYCLE = 0.5
PHASE = 0
DIVIDE = 2
DUTY_CYCLE = 0.5
PHASE = 180
DIVIDE = 2
DUTY_CYCLE = 0.75
PHASE = 180
DIVIDE = 1
DUTY_CYCLE = 0.5
PHASE = 0
DIVIDE = 1
DUTY_CYCLE = 0.5
PHASE = 360
DIVIDE = 3
DUTY_CYCLE = 0.33
PHASE = 0
DIVIDE = 3
DUTY_CYCLE = 0.5
PHASE = 0
ug382_c3_07_080309
図 3-8 : 出力カ ウン タ でのク ロ ッ ク 合成の例
94
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
VCO および出力カ ウン タ の波形
クロ ッ ク シフ ト
リ フ ァ レ ン ス ま たはフ ィ ー ド バ ッ ク パ ス のいずれかで、 8 つの位相か ら 1 つを選択す る こ と に よ っ
て遅延を挿入 し 、PLL 出力 ク ロ ッ ク はシ フ ト で き ます。図 3-9 は、PLL の出力での ク ロ ッ ク 信号エ ッ
ジへの影響を示 し ます。 こ こ では、 シ フ ト がない場合、 フ ィ ー ド バ ッ ク パ ス に遅延を挿入 し た場合、
リ フ ァ レ ン ス パ ス に遅延を挿入 し た場合を示 し てい ます。
X-Ref Target - Figure 3-9
ర䈱䉪䊨䉾䉪
DT feedback
䊐䉞䊷䊄䊋䉾䉪䊌䉴䈮
ㅊടㆃᑧ
DT reference
䊥䊐䉜䊧䊮䉴䊌䉴䈮
ㅊടㆃᑧ
ug382_c3_07_051209
図 3-9 : 基本的な出力ク ロ ッ ク のシ フ ト
VCO および出力カ ウン タ の波形
図 3-10 は、 8 つの VCO 位相出力、 4 つの異な る カ ウ ン タ出力を示 し た も のです。 各 VCO 位相は、
適切な ス タ ー ト ア ッ プ シーケ ン ス で示 さ れてい ます。こ の位相関係お よ びス タ ー ト ア ッ プ シーケ ン
ス は、 正 し い位相が維持 さ れ る こ と が確認 さ れてい ます。 つま り 、 0°位相の立ち上が り エ ッ ジは
45°位相の立ち上が り エ ッ ジ よ り も 前にあ る こ と にな り ます。 O0 カ ウ ン タ は、 リ フ ァ レ ン ス ク ロ ッ
ク と し て、 位相 タ ッ プが 0°の単純な 2 分周を実行す る よ う プ ロ グ ラ ム さ れてい ます。 O1 カ ウ ン タ
も 単純な 2 分周を実行す る よ う プ ロ グ ラ ム さ れてい ますが、 VCO か ら の 180°の位相 タ ッ プを使用
し ます。 VCO の 1 周期 よ り も 大き な位相シ フ ト は可能で、 こ のカ ウ ン タ 設定を使用す る と 、 リ フ ァ
レ ン ス ク ロ ッ ク のエ ッ ジがデー タ 遷移に揃え ら れ る DDR イ ン タ ーフ ェ イ ス用の ク ロ ッ ク が生成で
き ます。 O2 カ ウ ン タ は 3 分周を実行す る よ う プ ロ グ ラ ム さ れてい ます。 O3 出力は O2 出力 と 同 じ
プ ロ グ ラ ミ ン グですが、 位相が 1 サ イ ク ル遅れてい る 点が異な り ます。
PLL があ る 位相関係を提供す る よ う に コ ン フ ィ ギ ュ レーシ ョ ン さ れてい る場合、 入力周波数が変化
す る と 、 VCO 周波数が変化する こ と に よ っ て位相関係 も 変わ り 、 絶対シ フ ト 値 (単位は ps) も 変わ
り ます。 PLL を使用 し た設計を行 う 場合は、 こ の点を考慮 し て く だ さ い。 CLK や CLK90 な ど さ ま
ざ ま な ク ロ ッ ク 出力間で、 あ る位相関係の維持が重要 と な るデザ イ ンでは、 入力 ク ロ ッ ク 周波数に
かかわ ら ず、 こ の関係は保持 さ れます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
95
第 3 章 : 位相ロ ッ ク ループ (PLL)
X-Ref Target - Figure 3-10
0°
45°
90°
㪭㪚㪦
㪏㩷䈧䈱૏⋧
135°
180°
225°
270°
315°
O0
䉦䉡䊮䉺
಴ജ
O1
O2
O3
㪈㩷䉰䉟䉪䊦ㆃᑧ
ug382_c3_09_080309
図 3-10 : VCO 位相の選択
すべての 「O」 カ ウ ン タ は同 じ 機能を持ち、 O0 でで き る こ と は O1 で も で き ます。 こ のため、 PLL
出力を グ ロ ーバル ク ロ ッ ク ネ ッ ト ワ ー ク 接続す る場合、出力がすべて同 じ にな る ため便利です。通
常、 こ の レベルの詳細は、 PLL 属性お よ び ク ロ ッ ク ウ ィ ザー ド での入力に従っ て ソ フ ト ウ ェ ア と
ウ ィ ザー ド で適切に指定 さ れ る よ う にな っ てい ます。
入力 ク ロ ッ ク またはフ ィ ー ド バ ッ ク ク ロ ッ ク の不在
入力 ク ロ ッ ク ま たはフ ィ ー ド バ ッ ク ク ロ ッ ク が失われ る と 、PLL が出力 ク ロ ッ ク を駆動す る周波数
は低 く な っ た り 、 高 く な っ た り し 、 すべての出力 ク ロ ッ ク の周波数がその影響を受け、 高 く な っ た
り 低 く な っ た り し ます。 こ の影響で、 ク ロ ッ ク 出力周波数が元の コ ン フ ィ ギ ュ レーシ ョ ンの 6 倍に
な る 場合があ り ます。
PLL の使用モデル
PLL を使用 し たデザ イ ンにはい く つかの設計方法があ り ます。 ISE ソ フ ト ウ ェ アの ク ロ ッ ク ウ ィ
ザー ド は、多様な PLL パ ラ メ ー タ を生成す る ための ツールです。PLL は コ ン ポーネ ン ト と し て手動
で イ ン ス タ ン シエー ト も 可能です。 ま た、 IP コ ア と マージ さ せ る こ と も で き ます。 IP コ アには PLL
を含め、 管理す る 機能があ り ます。
ク ロ ッ ク ネ ッ ト ワー ク スキ ュ ー調整
PLL は ク ロ ッ ク ネ ッ ト ワー ク の ス キ ュー調整に広 く 使用 さ れます。 図 3-11 は こ の PLL 使用例で
す。 O カ ウ ン タ の 1 つか ら の ク ロ ッ ク 出力を使用 し 、 デバ イ ス内部の ロ ジ ッ ク お よ び I/O を駆動 し
ます。 フ ィ ー ド バ ッ ク カ ウ ン タ は、 入力 ク ロ ッ ク と 出力 ク ロ ッ ク 間の正確な位相関係 (90°位相シ フ
ト さ せ る な ど ) を制御す る ために使用 さ れます。 入力 ク ロ ッ ク と 出力 ク ロ ッ ク 間の位相ア ラ イ メ ン
ト が必要な場合の ク ロ ッ ク 波形を図の右側に示 し ます。 こ れが最 も 柔軟性のあ る コ ン フ ィ ギ ュ レー
シ ョ ンですが、 グ ロ ーバル ク ロ ッ ク ネ ッ ト ワ ー ク が 2 つ必要 と な り ます (図 3-11)。
96
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
PLL の使用モデル
X-Ref Target - Figure 3-11
BUFG
IBUFG
1
2
3
4
CLKIN1
5
CLKOUT0
1
To Logic
2
CLKFBIN CLKOUT1
RST
CLKOUT2
3
CLKOUT3
PLL
CLKOUT4
CLKOUT5
CLKFBOUT
4
BUFG
6
5
6
UG382_c3_10_080309
図 3-11 : 2 つの BUFG を使用する ク ロ ッ ク スキ ュ ー調整
フ ィ ー ド バ ッ ク の イ ンプ リ メ ン ト にはい く つかの制限があ り ます。 CLKFBOUT 出力は、 フ ィ ー ド
バ ッ ク ク ロ ッ ク 信号 と し て も 使用で き ます。 まず、 基本的な制限ですが、 PFD への 2 つの入力周波
数は同一でなければな り ません。 し たがっ て、 次の関係を満たす必要があ り ます。
fIN
fVCO
------ = fFB = ----------D
M
式 3-15
た と えば、 ƒIN = 166MHz、D = 1、M = 3、O = 1 の場合、VCO と ク ロ ッ ク 出力周波数は共に 498MHz
と な り ます。 フ ィ ー ド バ ッ ク パ ス の M 値は 3 であ る ため、 PFD での 2 つの入力周波数は 166MHz
です。
入力周波数 = 66.66MHz、 D = 2、 M = 15、 O = 2 と い う 複雑な ケース を考え てみます。 こ の場合の
VCO 周波数は 500MHz、 O 出力周波数は 250MHz と な り ます。 し たがっ て、 PFD の フ ィ ー ド バ ッ
ク 周波数は 500/15 ま たは 33.33MHz で、 PFD の入力周波数 66.66MHz/2 に一致 し ます。
内部フ ィ ー ド バ ッ ク のあ る PLL
PLL を合成回路ま たはジ ッ タ フ ィ ル タ と し て使用 し 、 かつ PLL の入力 ク ロ ッ ク と 出力 ク ロ ッ ク 間
の位相が関連 し ていな く て も よ い場合、 PLL 内部で フ ィ ー ド バ ッ ク さ せ る こ と がで き ます。 こ の
フ ィ ー ド バ ッ ク ク ロ ッ ク は、 コ ア電源が供給 さ れてい る ブ ロ ッ ク を通過 し ないため、 こ の電源の ノ
イ ズの影響を受け る こ と がな く 、 PLL のパフ ォーマ ン ス が向上 し ます。 CLKIN 信号お よ び BUFG
の ノ イ ズはあ り ます (図 3-12)。
X-Ref Target - Figure 3-12
IBUFG
BUFG
CLKIN1
To Logic
CLKOUT0
CLKFBIN CLKOUT1
RST
CLKOUT2
CLKOUT3
CLKOUT4
PLL
CLKOUT5
CLKFBOUT
UG382_c3_11_080309
図 3-12 : 内部フ ィ ー ド バ ッ ク のある PLL
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
97
第 3 章 : 位相ロ ッ ク ループ (PLL)
ゼロ遅延バ ッ フ ァ
PLL を使用 し 、 ゼ ロ 遅延バ ッ フ ァ ク ロ ッ ク を生成す る こ と も で き ます。 ゼ ロ 遅延バ ッ フ ァ は、 1 つ
の ク ロ ッ ク 信号が、複数の目的地点に低ス キ ューで接続 さ れてい る アプ リ ケーシ ョ ンに便利です。こ
の コ ン フ ィ ギ ュ レーシ ョ ン を図 3-13 に示 し ます。 こ こ では、チ ッ プ外か ら フ ィ ー ド バ ッ ク 信号が入
力 さ れ、ボー ド ト レース フ ィ ー ド バ ッ ク が外部 コ ン ポーネ ン ト への ト レース と 一致す る よ う 設計 さ
れてい ます。 こ の コ ン フ ィ ギ ュ レーシ ョ ンでは、 ク ロ ッ ク エ ッ ジは FPGA の入力お よ び外部 コ ン
ポーネ ン ト の入力で揃 う こ と を想定 し てい ます。 フ ィ ー ド バ ッ ク パ ス で許容 さ れ る最大遅延には制
限があ り ます。
X-Ref Target - Figure 3-13
IBUFG
Inside FPGA
CLKIN1
BUFG
OBUF
CLKOUT0
እ㒊䝁䞁䝫䞊
䝛䞁䝖䜈
CLKOUT1
CLKFBIN
CLKOUT2
RST
CLKOUT3
CLKOUT4
PLL
CLKOUT5
BUFG
CLKFBOUT
UG382_c3_12_080309
図 3-13 : ゼロ遅延バ ッ フ ァ
外部 コ ン ポーネ ン ト の入力キ ャ パシ タ ン ス と FPGA の フ ィ ー ド バ ッ ク パ ス のキ ャ パシ タ ン ス の間
に負荷の差があ る ため、 場合に よ っ ては、 正確な位相ア ラ イ メ ン ト がで き ない こ と があ り ます。 た
と えば、外部 コ ン ポーネ ン ト の入力キ ャ パシ タ ン ス値は 1pF ~ 4pF の範囲ですが、 FPGA の場合は
約 8pF です。 信号の傾 き に差があ り 、 ス キ ュ ーが発生 し ます。 タ イ ミ ン グ を満たすには こ の点を考
慮す る 必要があ り ます。
DCM で PLL を駆動
DCM には、正確に位相シ フ ト し た ク ロ ッ ク を生成す る と い う 優れた機能があ り ますが、 リ フ ァ レ ン
ス ク ロ ッ ク のジ ッ タ は低減で き ません。 PLL を使用す る と 、 1 つの DCM の ク ロ ッ ク 出力の出力
ジ ッ タ を削減で き る よ う にな り ます。こ の コ ン フ ィ ギ ュ レーシ ョ ン を図 3-14 に示 し ます。こ の PLL
は位相がシ フ ト し ない (PLL で遅延は追加 さ れない ) よ う に コ ン フ ィ ギ ュ レーシ ョ ン さ れてい ます。
ブ ロ ッ ク 図の右側に関連 し た波形を示 し ます。 DCM の出力で PLL を直接駆動す る場合、 DCM と
PLL は同 じ CMT 内に存在す る必要があ り ます。ロ ーカルの専用配線上の ノ イ ズが最小 と な る ため、
こ の イ ンプ リ メ ン テーシ ョ ンが推奨 さ れます。 DCM を BUFG に接続後、 PLL の CLKIN 入力に接
続す る こ と も で き ます。
98
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
PLL の使用モデル
X-Ref Target - Figure 3-14
BUFG
IBUFG
1
2
3
CLK0
CLKIN
CLK90
CLK180
CLKFBIN
RST
CLK270
DCM
1
CLK2X
CLK2X180
2
CLKDV
CLKFX
3
CLKFX180
4
BUFG
4
୍⮴
5
CLKIN1
CLKOUT0
CLKFBIN
CLKOUT1
CLKOUT2
RST
PLL
5
6
䝻䝆䝑䜽䛺䛹䜈
6
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
ug382_c3_13_080309
図 3-14 : DCM で PLL を駆動
PLL で DCM を駆動
ク ロ ッ ク ジ ッ タ低減の 2 つ目のオプシ ョ ン と し て、 DCM を駆動す る前に、 PLL を使用 し て入力 ク
ロ ッ ク ジ ッ タ を ク リ ーン ア ッ プする 方法があ り ます。 こ れに よ り 、 全 DCM 出力の出力ジ ッ タ が改
善 さ れますが、DCM に よ っ て追加 さ れた ジ ッ タ はその ま ま ク ロ ッ ク 出力に現れます。PLL と DCM
間には専用 リ ソ ース があ り 、遅延が追加 さ れない よ う にな っ てい る ため、PLL と DCM は同一 CMT
ブ ロ ッ ク になければな り ません。 PLL と DCM が同 じ CMT にない場合は、 BUFG を介 し た接続 し
かな く 、 ス キ ュ ー調整の妨げ と な る可能性があ り ます。
リ フ ァ レ ン ス周波数が 1 つの PLL で生成で き る場合、1 つの PLL で複数の DCM を駆動で き ます。
た と えば、 33MHz の リ フ ァ レ ン ス ク ロ ッ ク が PLL に入力 さ れ、 デザ イ ンに 200MHz で動作す る
DCM が 1 つ と 、 100MHz で動作す る DCM が 1 つあ る場合、 VCO は 600MHz (M1 = 18) で動作
で き ます。 VCO 周波数を 3 分周 し て 200MHz の ク ロ ッ ク を生成、 6 分周 し て 100MHz ク ロ ッ ク を
生成で き ます。 図 3-15 の例では、 1 つの PLL で 2 つの DCM を駆動で き ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
99
第 3 章 : 位相ロ ッ ク ループ (PLL)
X-Ref Target - Figure 3-15
IBUFG
1
2
3
CLKIN1
CLKOUT0
CLKFBIN
CLKOUT1
CLKOUT2
RST
PLL
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
Matches
1
CLKIN
CLKFBIN
RST
CLK0
CLK90
CLK180
CLK270
DCM
CLK2X
BUFG
4
2
5
䝻䝆䝑䜽䛺䛹䜈
3
6
䝻䝆䝑䜽䛺䛹䜈
4
CLK2X180
CLKDV
5
CLKFX
CLKFX180
6
ug382_c3_14_080309
図 3-15 : PLL で DCM を駆動
PLL 同士の接続
PLL を カ ス ケー ド 接続す る こ と に よ っ て、 よ り 広範囲の ク ロ ッ ク 周波数が生成可能です。 周波数の
範囲には制限があ り ます。式 3-16 は、最終出力周波数 と 入力周波数の関係 と 、2 つの PLL (図 3-16)
のカ ウ ン タ 設定を示 し た も のです。2 つ目の PLL の出力 ク ロ ッ ク と 入力 ク ロ ッ ク の位相関係は定義
さ れてい ません。 PLL を カ ス ケー ド す る には、 最初の PLL の出力を BUFG に配線 し た後、 2 つ目
の PLL の CLKIN ピ ンに配線 し ます。 こ のパ ス のデバ イ ス ジ ッ タ の値は最小値にな り ます。
MPLL 2
MPLL 1
MPLL 2
- = fIN--------------------------------------- × --------------------------------------- 式 3-16
fOUTPLL 2 = fOUTPLL 1 --------------------------------------DPLL 2 × OPLL 2
DPLL 1 × OPLL 1 DPLL 2 × OPLL 2
100
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
ア プ リ ケーシ ョ ン ガ イ ド ラ イ ン
X-Ref Target - Figure 3-16
IBUFG
BUFG
CLKIN1
CLKOUT0
BUFG
CLKIN1
CLKOUT0
CLKFBIN CLKOUT1
CLKFBIN CLKOUT1
RST
RST
CLKOUT2
PLL
CLKOUT2
CLKOUT3
CLKOUT3
CLKOUT4
To Logic
PLL
CLKOUT4
CLKOUT5
CLKOUT5
CLKFBOUT
CLKFBOUT
ug382_c3_15_080309
図 3-16 : 2 つの PLL のカ スケー ド
ア プ リ ケーシ ョ ン ガ イ ド ラ イ ン
こ のセ ク シ ョ ンには、 いつ DCM と PLL の ど ち ら を選択すれば よ いのかが ま と め ら れてい ます。
Spartan-6 FPGA の PLL では、 最大 6 個の独立 し た出力が使用で き ます。 複数の異な る出力を使用
す る デザ イ ンでは PLL を使用 し て く だ さ い。 こ の場合のデザ イ ン例は次の よ う にな っ てい ます。
DCM には リ フ ァ レ ン ス ク ロ ッ ク を基本に し た予め定義 さ れた出力が固定数あ り ますが、 PLL では
幅広い範囲で出力が生成で き、 その出力数 も 設定可能なため、 PLL は複数出力が必要なデザ イ ンに
は理想的な ソ リ ュ ーシ ョ ンです。 一方で、 フ ァ イ ン位相シ フ ト やダ イ ナ ミ ッ ク 可変位相シ フ ト が必
要なアプ リ ケーシ ョ ンでは、 DCM が よ り 適 し た ソ リ ュ ーシ ョ ン と な り ます。
PLL ア プ リ ケーシ ョ ン例
次の PLL 属性設定に よ り 、 広い周波数範囲の合成 ク ロ ッ ク が生成 さ れます。
CLKOUT0_PHASE = 0;
CLKOUT0_DUTY_CYCLE = 0.5;
CLKOUT0_DIVIDE = 2;
CLKOUT1_PHASE = 90;
CLKOUT1_DUTY_CYCLE = 0.5;
CLKOUT1_DIVIDE = 2;
CLKOUT2_PHASE = 0;
CLKOUT2_DUTY_CYCLE = 0.25;
CLKOUT2_DIVIDE = 4;
CLKOUT3_PHASE = 90;
CLKOUT3_DUTY_CYCLE = 0.5;
CLKOUT3_DIVIDE = 8;
CLKOUT4_PHASE = 0;
CLKOUT4_DUTY_CYCLE = 0.5;
CLKOUT4_DIVIDE = 8;
CLKOUT5_PHASE = 135;
CLKOUT5_DUTY_CYCLE = 0.5;
CLKOUT5_DIVIDE = 8;
CLKFBOUT_PHASE = 0;
CLKFBOUT_MULT = 8;
DIVCLK_DIVIDE = 1;
CLKIN1_PERIOD = 10.0;
図 3-17 に こ の波形を示 し ます。
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
japan.xilinx.com
101
第 3 章 : 位相ロ ッ ク ループ (PLL)
X-Ref Target - Figure 3-17
REFCLK
VCOCLK
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
UG382_c3_16_080309
図 3-17 : 波形例
102
japan.xilinx.com
Spartan-6 FPGA ク ロ ッ ク リ ソ ース
UG382 (v1.3) 2010 年 2 月 22 日
Fly UP