ザイリンクス ug382 spartan-6 fpga クロック リ …...ug382 (v1.3) 2010 年 2 月 22 日...
TRANSCRIPT
[Guide Subtitle] [optional]
UG382 (v1.3) 2010 年 2 月 22 日 [optional]
Spartan-6 FPGA クロック リソース
ユーザー ガイド
UG382 (v1.3) 2010 年 2 月 22 日
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com UG382 (v1.3) 2010 年 2 月 22 日
Xilinx is disclosing this user guide, manual, release note, and/or specification (the "Documentation") to you solely for use in thedevelopment 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 liabilityarising out of your use of the Documentation. Xilinx reserves the right, at its sole discretion, to change the Documentationwithout notice at any time. Xilinx assumes no obligation to correct any errors contained in the Documentation, or to advise youof any corrections or updates. Xilinx expressly disclaims any liability in connection with technical support or assistance that maybe provided to you in connection with the Information.
THE DOCUMENTATION IS DISCLOSED TO YOU “AS-IS” WITH NO WARRANTY OF ANY KIND. XILINX MAKESNO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THEDOCUMENTATION, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULARPURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANYCONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOSS OFDATA 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 aretrademarks 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 を編集。
UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
本資料は英語版 (v1.3) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。
資料によっては英語版の更新に対応していないものがあ り ます。
日本語版は参考用と してご使用の上、 新情報につきましては、 必ず 新英語版をご参照ください。
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 補正の説明を更新。
日付 バージョ ン 内容
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com UG382 (v1.3) 2010 年 2 月 22 日
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 5UG382 (v1.3) 2010 年 2 月 22 日
改訂履歴. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
このマニュアルについてマニュアルの内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7その他の資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7その他のリ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
第 1 章 : クロック リソース概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9はじめに. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9ク ロ ッ ク リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
グローバル ク ロ ッ ク インフラス ト ラ クチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11I/O クロ ッ ク インフラス ト ラ クチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
バンク全体で 1 つの I/O ク ロ ッ クを使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19ク ロ ッ ク入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
ク ロ ッ ク構造のガイ ド ライン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25SDR データ レート (IOB の FD レジスタ、 IOSERDES2 なし ). . . . . . . . . . . . . . . . . . . .25DDR データ レート (IDDR2、 ODDR2、 IOSERDES2 なし) . . . . . . . . . . . . . . . . . . . . .25アドバンス シ リ アル化用の高速 IOSERDES2 使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
グローバル ク ロ ッ ク入力バッファのプリ ミ ティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26高速 I/O ク ロ ッ ク ネッ ト ワーク接続の例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27ク ロ ッ ク バッファおよびマルチプレクサ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
グローバル ク ロ ッ ク バッファ プリ ミ ティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32BUFGMUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32BUFGMUX_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34BUFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36BUFGCE および BUFGCE_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37高速 I/O ク ロ ッ ク リージ ョ ンのク ロッ ク バッファ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38BUFIO2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39BUFIO2_2CLK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43BUFPLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46BUFPLL_MCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47BUFIO2FB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
第 2 章 : クロック マネージメン ト テク ノロジク ロ ッ ク マネージメン トについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51DCM の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52DCM について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52ほかのザイ リ ンクス FPGA ファ ミ リ との互換性および比較 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53DCM の機能の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
遅延ロッ ク ループ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55デジタル周波数合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56位相シフ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56ステータス ロジッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
DCM プリ ミ ティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56DCM_SP プリ ミ ティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57DCM_CLKGEN プリ ミ ティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
DCM_SP 設計のガイ ド ラ イン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66入力クロ ッ ク周波数の範囲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
目次
6 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
出力クロ ッ ク周波数の範囲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67入力クロ ッ ク と ク ロ ッ ク フ ィードバッ クの変動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
サイクル間ジッタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67周期ジッタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67DLL のフ ィードバッ ク遅延の変動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
スペク ト ラム拡散クロ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68DCM クロ ッ ク入力および外部フ ィードバッ ク入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68LOCKED 出力の動作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68LOCKED 信号の使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69RST 入力の動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
DCM_CLKGEN 設計のガイ ド ラ イン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71ダイナミ ッ ク周波数合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71スペク ト ラム拡散クロ ッ ク生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74スペク ト ラム拡散生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
固定スペク ト ラム拡散 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75ソフ ト スペク ト ラム拡散 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77フ リーランニング オシレータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
第 3 章 : 位相ロック ループ (PLL)概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
位相ロッ ク ループ (PLL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82CLK_FEEDBACK および BUFIOFB を使用した PLL のアライ メン ト . . . . . . . . . . . . .84
一般的な使用法について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86PLL プリ ミ ティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
PLL_BASE プリ ミ ティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86PLL_ADV プリ ミ ティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
ク ロ ッ ク ネッ ト ワーク スキュー調整 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87周波数合成のみ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88ジッタ フ ィルタ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
VCO 動作範囲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89小および 大入力周波数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
デューティ サイクルのプログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89位相シフ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
PLL プログラ ミ ング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89入力周波数の決定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89M および D 値の決定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
PLL ポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90PLL 属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92PLL ク ロ ッ ク入力信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93カウンタ制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94ク ロ ッ ク シフ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95
VCO および出力カウンタの波形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95入力クロ ッ クまたはフ ィードバッ ク ク ロ ッ クの不在 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
PLL の使用モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96ク ロ ッ ク ネッ ト ワーク スキュー調整 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
内部フ ィードバッ クのある PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97ゼロ遅延バッファ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98DCM で PLL を駆動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98PLL で DCM を駆動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99PLL 同士の接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
アプリ ケーシ ョ ン ガイ ド ライン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101PLL アプリケーシ ョ ン例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 7UG382 (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 コンフ ィギャブル ロジッ ク ブロ ッ ク ユーザー ガイ ド』
8 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月22 日
このマニュアルについて
すべての 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
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 9UG382 (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 デザイン ガイ ド』 を参照してください。
10 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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 ク ロ ッ ク入力を配線するこ と もできます。
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 11UG382 (v1.3) 2010 年 2 月 22 日
クロック リソース
グローバル クロック インフラス ト ラクチャ
Spartan-6 FPGA のグローバル ク ロ ッ ク インフラス ト ラ クチャの詳細は図 1-1 にま とめられています。
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 のグローバル クロ ッ ク ピ
X-Ref Target - Figure 1-1
図 1-1 : Spartan-6 FPGA グローバル クロックの構造
16
16
16
16
16
16
16
16
16
16
16
16
UG382_c1_01_081009
PLL
PLL
16
DCM (x2)
DCM (x2)
16
12 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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 配線制限 バンク 0 バンク 1
BUFGMUX_X2Y1 (I0)BUFGMUX_X2Y2 (I1)
ダイレク ト配線 GCLK_19 GCLK_11
インダイレク ト BUFIO2 GCLK_19 <BUFIO2_X2Y28> GCLK_11 <BUFIO2_X4Y20>
インダイレク ト BUFIO2 GCLK_15 <BUFIO2_X2Y28> GCLK_7 <BUFIO2_X4Y20>
BUFGMUX_X2Y2 (I0)BUFGMUX_X2Y1 (I1)
ダイレク ト配線 GCLK_18 GCLK_10
インダイレク ト BUFIO2 GCLK_18 <BUFIO2_X2Y29> GCLK_10 <BUFIO2_X4Y21>
インダイレク ト BUFIO2 GCLK_14 <BUFIO2_X2Y29> GCLK_6 <BUFIO2_X4Y21>
BUFGMUX_X2Y3 (I0)BUFGMUX_X2Y4 (I1)
ダイレク ト配線 GCLK_17 GCLK_9
インダイレク ト BUFIO2 GCLK_17 <BUFIO2_X2Y26> GCLK_9 <BUFIO2_X4Y18>
インダイレク ト BUFIO2 GCLK_13 <BUFIO2_X2Y26> GCLK_5 <BUFIO2_X4Y18>
BUFGMUX_X2Y4 (I0)BUFGMUX_X2Y3 (I1)
ダイレク ト配線 GCLK_15 GCLK_7
インダイレク ト BUFIO2 GCLK_15 <BUFIO2_X4Y28> GCLK_7 <BUFIO2_X3Y12>
インダイレク ト BUFIO2 GCLK_19 <BUFIO2_X4Y28> GCLK_11 <BUFIO2_X3Y12>
BUFGMUX_X3Y5 (I0)BUFGMUX_X3Y6 (I1)
ダイレク ト配線 GCLK_16 GCLK_8
インダイレク ト BUFIO2 GCLK_16 <BUFIO2_X2Y27> GCLK_8 <BUFIO2_X4Y19>
インダイレク ト BUFIO2 GCLK_12 <BUFIO2_X2Y27> GCLK_4 <BUFIO2_X4Y19>
BUFGMUX_X3Y6 (I0)BUFGMUX_X3Y5 (I1)
ダイレク ト配線 GCLK_14 GCLK_6
インダイレク ト BUFIO2 GCLK_14 <BUFIO2_X4Y29> GCLK_6 <BUFIO2_X3Y13>
インダイレク ト BUFIO2 GCLK_18 <BUFIO2_X4Y29> GCLK_10 <BUFIO2_X3Y13>
BUFGMUX_X3Y7 (I0)BUFGMUX_X3Y8 (I1)
ダイレク ト配線 GCLK_13 GCLK_5
インダイレク ト BUFIO2 GCLK_13 <BUFIO2_X4Y26> GCLK_5 <BUFIO2_X3Y10>
インダイレク ト BUFIO2 GCLK_17 <BUFIO2_X4Y26> GCLK_9 <BUFIO2_X3Y10>
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 13UG382 (v1.3) 2010 年 2 月 22 日
クロック リソース
BUFGMUX_X3Y8 (I0)BUFGMUX_X378 (I1)
ダイレク ト配線 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 配線制限 バンク 2 バンク 3
BUFGMUX_X2Y9 (I0)BUFGMUX_X2Y10 (I1)
ダイレク ト配線 GCLK_3 GCLK_27
インダイレク ト BUFIO2 GCLK_3 <BUFIO2_X3Y0> GCLK_27 <BUFIO2_X1Y8>
インダイレク ト BUFIO2 GCLK_31 <BUFIO2_X3Y0> GCLK_23 <BUFIO2_X1Y8>
BUFGMUX_X2Y10 (I0)BUFGMUX_X2Y9 (I1)
ダイレク ト配線 GCLK_2 GCLK_26
インダイレク ト BUFIO2 GCLK_2 <BUFIO2_X3Y1> GCLK_26 <BUFIO2_X1Y9>
インダイレク ト BUFIO2 GCLK_30 <BUFIO2_X3Y1> GCLK_22 <BUFIO2_X1Y9>
BUFGMUX_X2Y11 (I0)BUFGMUX_X2Y12 (I1)
ダイレク ト配線 GCLK_1 GCLK_25
インダイレク ト BUFIO2 GCLK_1 <BUFIO2_X3Y6> GCLK_25 <BUFIO2_X1Y14>
インダイレク ト BUFIO2 GCLK_29 <BUFIO2_X3Y6> GCLK_21 <BUFIO2_X1Y14>
BUFGMUX_X2Y12 (I0)BUFGMUX_X2Y11 (I1)
ダイレク ト配線 GCLK_31 GCLK_23
インダイレク ト BUFIO2 GCLK_31 <BUFIO2_X1Y0> GCLK_23 <BUFIO2_X0Y16>
インダイレク ト BUFIO2 GCLK_3 <BUFIO2_X1Y0> GCLK_27 <BUFIO2_X0Y16>
BUFGMUX_X3Y13 (I0)BUFGMUX_X3Y14 (I1)
ダイレク ト配線 GCLK_0 GCLK_24
インダイレク ト BUFIO2 GCLK_0 <BUFIO2_X3Y7> GCLK_24 <BUFIO2_X1Y15>
インダイレク ト BUFIO2 GCLK_28 <BUFIO2_X3Y7> GCLK_20 <BUFIO2_X1Y15>
BUFGMUX_X3Y14 (I0)BUFGMUX_X3Y13 (I1)
ダイレク ト配線 GCLK_30 GCLK_22
インダイレク ト BUFIO2 GCLK_30 <BUFIO2_X1Y1> GCLK_22 <BUFIO2_X0Y17>
インダイレク ト BUFIO2 GCLK_2 <BUFIO2_X1Y1> GCLK_26 <BUFIO2_X0Y17>
BUFGMUX_X3Y15 (I0)BUFGMUX_X3Y16 (I1)
ダイレク ト配線 GCLK_29 GCLK_21
インダイレク ト BUFIO2 GCLK_29 <BUFIO2_X1Y6> GCLK_21 <BUFIO2_X0Y22>
インダイレク ト BUFIO2 GCLK_1 <BUFIO2_X1Y6> GCLK_25 <BUFIO2_X0Y22>
BUFGMUX_X3Y16 (I0)BUFGMUX_X3Y15 (I1)
ダイレク ト配線 GCLK_28 GCLK_20
インダイレク ト BUFIO2 GCLK_28 <BUFIO2_X1Y7> GCLK_20 <BUFIO2_X0Y23>
インダイレク ト BUFIO2 GCLK_0 <BUFIO2_X1Y7> GCLK_24 <BUFIO2_X0Y23>
表 1-1 : バンク 0 および 1 の共有グローバル クロック リソース (続き)
BUFGMUX 配線制限 バンク 0 バンク 1
14 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
競合のある BUFGMUX 入力 図 1-2 および図 1-3 に示しています。
X-Ref Target - Figure 1-2
図 1-2 : バンク 0 およびバンク 1 の BUFGMUX 接続
BUFGMUX_X2Y1
UG382_01_121709
Bank 0 Bank 1
BU
FIO
2_X
3Y11
BU
FIO
2_X
3Y10
BU
FIO
2_X
3Y13
BU
FIO
2_X
3Y12
BU
FIO
2_X
4Y19
BU
FIO
2_X
4Y18
BU
FIO
2_X
4Y21
BU
FIO
2_X
4Y20
GC
LK19
GC
LK18
GC
LK17
GC
LK16
GC
LK15
GC
LK14
GC
LK13
GC
LK12
GC
LK11
GC
LK10
GC
LK9
GC
LK8
GC
LK7
GC
LK6
GC
LK5
GC
LK4
BUFGMUX_X2Y2
BUFGMUX_X2Y3
BUFGMUX_X2Y4
BUFGMUX_X3Y5
BUFGMUX_X3Y6
BUFGMUX_X3Y7
BUFGMUX_X3Y8
BU
FIO
2_X
4Y27
BU
FIO
2_X
4Y26
BU
FIO
2_X
4Y29
BU
FIO
2_X
4Y28
BU
FIO
2_X
2Y27
BU
FIO
2_X
2Y26
BU
FIO
2_X
2Y29
BU
FIO
2_X
2Y28
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 15UG382 (v1.3) 2010 年 2 月 22 日
クロック リソース
GTP ト ランシーバを使用したデザインの場合、各 GTP リ ファレンス ク ロ ッ クは BUFIO2 に関連付
けられています。これは、バンク 0 およびバンク 2 にあるグローバル クロ ッ ク ピンに影響する可能
性があ り ます。 SDR インターフェイスの GCLK 入力は表 1-3 にリ ス ト されています。 DDR イン
ターフェイスの場合は、 表 1-4 にあるよ うに、 BUFIO2 配置を反転させてクロ ッ クを反転するには
2 つ目の BUFIO2 が必要になる可能性があ り ます。
GTP_DUAL 配置の詳細は、 『Spartan-6 FPGA GTP ト ランシーバ ユーザー ガイ ド』 (UG386) にあ
る配置図を参照してください。
X-Ref Target - Figure 1-3
図 1-3 : バンク 2 およびバンク 3 の BUFGMUX 接続
BUFGMUX_X2Y9
UG382_02_121709
Bank 2 Bank 3
BU
FIO
2_X
1Y8
BU
FIO
2_X
1Y9
BU
FIO
2_X
1Y14
BU
FIO
2_X
1Y15
BU
FIO
2_X
0Y16
BU
FIO
2_X
0Y17
BU
FIO
2_X
0Y22
BU
FIO
2_X
0Y23
GC
LK28
GC
LK29
GC
LK30
GC
LK31
GC
LK0
GC
LK1
GC
LK2
GC
LK3
GC
LK20
GC
LK21
GC
LK22
GC
LK23
GC
LK24
GC
LK25
GC
LK26
GC
LK27
BUFGMUX_X2Y10
BUFGMUX_X2Y11
BUFGMUX_X2Y12
BUFGMUX_X3Y13
BUFGMUX_X3Y14
BUFGMUX_X3Y15
BUFGMUX_X3Y16
BU
FIO
2_X
3Y0
BU
FIO
2_X
3Y1
BU
FIO
2_X
3Y6
BU
FIO
2_X
3Y7
BU
FIO
2_X
1Y0
BU
FIO
2_X
1Y1
BU
FIO
2_X
1Y6
BU
FIO
2_X
1Y7
16 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
表 1-3 : SDR の BUFIO2 入力競合 (ISERDES2 (SDR)、 OSERDES2(SDR))
バンク BUFIO2 GCLK 入力サンプル デザインの GTP リファレンス
クロック (1)共有 GTPCLKOUT
BUFIO2クロック領域
バンク 0
BUFIO2_X2Y26 GCLK17 GCLK13
GTPA1_DUAL_X0Y1
GTPCLKOUT1[0] TL
BUFIO2_X2Y27 GCLK16 GCLK12 GTPCLKOUT1[1] TL
BUFIO2_X2Y28 GCLK19 GCLK15 GTPCLKOUT0[0] TL
BUFIO2_X2Y29 GCLK18 GCLK14 GTPCLKOUT0[1] TL
BUFIO2_X4Y26 GCLK13 GCLK17
GTPA1_DUAL_X1Y1
GTPCLKOUT1[0] TR
BUFIO2_X4Y27 GCLK12 GCLK16 GTPCLKOUT1[1] TR
BUFIO2_X4Y28 GCLK15 GCLK19 GTPCLKOUT0[0] TR
BUFIO2_X4Y29 GCLK14 GCLK18 GTPCLKOUT0[1] TR
バンク 2
BUFIO2_X1Y0 GCLK31 GCLK3
GTPA1_DUAL_X0Y0
GTPCLKOUT0[0] BL
BUFIO2_X1Y1 GCLK30 GCLK2 GTPCLKOUT0[1] BL
BUFIO2_X1Y6 GCLK29 GCLK1 GTPCLKOUT1[0] BL
BUFIO2_X1Y7 GCLK28 GCLK0 GTPCLKOUT1[1] BL
BUFIO2_X3Y0 GCLK3 GCLK31
GTPA1_DUAL_X1Y0
GTPCLKOUT0[0] BR
BUFIO2_X3Y1 GCLK2 GCLK30 GTPCLKOUT0[1] BR
BUFIO2_X3Y6 GCLK1 GCLK29 GTPCLKOUT1[0] BR
BUFIO2_X3Y7 GCLK0 GCLK28 GTPCLKOUT1[1] BR
メモ :
1. FG(G)900 パッケージの LX100T/LX150T を使用
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 17UG382 (v1.3) 2010 年 2 月 22 日
クロック リソース
表 1-4 : DDR の BUFIO2 入力競合 (IDDR2、 ODDR2、 ISERDES2 (DDR)、 OSERDES2 (DDR))
バンク BUFIO2 GCLK 入力 ( 反転 )サンプル デバイスのGTP リファレンス
クロック (1)共有 GTPCLKOUT
BUFIO2クロック領域
バンク 0
BUFIO2_X2Y26 (I_INVERT = TRUE) GCLK16 GCLK12
GTPA1_DUAL_X0Y1
GTPCLKOUT1[0] TL
BUFIO2_X2Y27 (I_INVERT = TRUE)
GCLK17 GCLK13 GTPCLKOUT1[1] TL
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
GTPA1_DUAL_X1Y1
GTPCLKOUT1[0] TR
BUFIO2_X4Y27 (I_INVERT = TRUE)
GCLK13 GCLK17 GTPCLKOUT1[1] TR
BUFIO2_X4Y28 (I_INVERT = TRUE) GCLK14 GCLK18 GTPCLKOUT0[0] TR
BUFIO2_X4Y29 (I_INVERT = TRUE)
GCLK15 GCLK19 GTPCLKOUT0[1] TR
バンク 2
BUFIO2_X1Y0 (I_INVERT = TRUE)
GCLK30 GCLK2
GTPA1_DUAL_X0Y0
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
GTPA1_DUAL_X1Y0
GTPCLKOUT0[0] BR
BUFIO2_X3Y1 (I_INVERT = TRUE)
GCLK3 GCLK31 GTPCLKOUT0[1] BR
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 を使用
18 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
I/O クロック インフラス ト ラクチャ
図 1-4 は I/O ク ロ ッ ク インフラス ト ラ クチャを示しています。
4 つの専用BUFIO2バッファで駆動されている BUFIO2 クロ ッ ク領域ごとに高速 I/O ク ロ ッ クが 4つあり ます。バンクが 4 つしかないデバイスの場合、各バンクには2 つの BUFIO2 ク ロ ッ ク領域が
あ り ます。バンクが 6 つあるデバイスの場合は 『Spartan-6 FPGA パッケージおよびピン配置仕様』
(UG385) を参照してください。バンク 4 に関連した GCLK は引き続き VCCO_3 で駆動され、バン
ク 5 に関連した GCLK ピンは VCCO_1 で駆動されます。
X-Ref Target - Figure 1-4
図 1-4 : I/O バンクの Spartan-6 FPGA I/O クロッ クの構造
BUFIO2BUFIO2
BUFPLL
PLLI/OInputs
I/OInputs
I/OInputs
I/OInputs
ug382_c1_03_120809
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 19UG382 (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
図 1-5 : バンク全体で使用される I/O クロック
BUFIO2_X2Y28
I/O BANK 0GCLK19 GCLK18 GCLK17 GCLK16 GCLK15 GCLK14 GCLK13 GCLK12
N
BUFIO2_X4Y28
PNP
ug382_c1_04_020510
NPNP
BUFIO2_X2Y29
BUFIO2_X4Y29
BUFIO2_X2Y26
BUFIO2_X4Y26
BUFIO2_X2Y27
BUFIO2_X4Y27
20 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
クロッ ク入力
ク ロ ッ ク ピンは、外部クロ ッ ク信号を受信し、 BUFGMUX/BUFIO2 プリ ミ ティブに直接接続され
ます。 クロ ッ ク ピンは、汎用 I/O と しても使用できます。入力から クロ ッ クを I/O クロ ッ ク ネッ ト
ワークに配線するだけでなく、BUFIO2 は PLL/DCM および BUFG への専用クロ ッ ク パスも提供
します。 図 1-6 はその専用クロ ッ ク配線を示しています。
メモ : フル バンクでの IODELAY2 クロ ッ クの使用はサポート されていません。
各 Spartan-6 FPGA には、 次のものがあ り ます。
• FPGA の 4 辺にある 高 32 個までのグローバル ク ロ ッ ク入力
• デバイスの各辺の中央にある 8 個の専用クロ ッ ク入力
• 8 個の BUFIO2 クロ ッ ク領域
表 1-5 にはグローバル ク ロ ッ ク ピン ロケーシ ョ ンがリ ス ト されています。P は差動ペアの正側、Nは負側を示します。
X-Ref Target - Figure 1-6
図 1-6 : BUFIO2 で配線された専用クロック入力
BUFIO2_X2Y28
N
BUFIO2_X4Y28
PNP
IOI
ug382_c1_05_121709
CLKIOCE
CLK
IOCLK IOCLKDIVCLKDIVCLK
IOCE
SERDESSTROBE SERDESSTROBE
ToBUFG
ToPLL/DCM
ToBUFG
ToPLL/DCM
IOIIOIIOI IOI
NPNP
IOI IOI IOI IOIIOI
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 21UG382 (v1.3) 2010 年 2 月 22 日
クロック入力
表 1-5 : グローバル クロッ ク ピン ロケーシ ョ ン
GCLK P/N TQG144 CPG196 CSG225 FGG256CSG324 CSG484 FGG484 FGG676 FGG900
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
22 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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
図 1-7 : Spartan-6 FPGA クロッ ク ピン レイアウト (バンクが 4 つあるデバイス)B
AN
K3 (B
UF
PLL C
lock Region)
BUFIO2 CLOCKING REGION TR
BU
FIO
2 C
LOC
KIN
G R
EG
ION
RT
BU
FIO
2 C
LOC
KIN
G R
EG
ION
RB
BUFIO2 CLOCKING REGION BRBUFIO2 CLOCKING REGION BL
BUFIO2_X3Y1BUFIO2_X1Y1 BUFIO2_X3Y7
BU FIO2_X3Y13BU FIO2_X3Y12
BU FIO2_X4Y21BU FIO2_X4Y20
BU FIO2_X4Y19BU FIO2_X4Y18
BU FIO2_X3Y11BU FIO2_X3Y10
BUFIO2_X1Y7
BUFIO2_X3Y6BUFIO2_X1Y6 BUFIO2_X3Y0BUFIO2_X1Y0
UG382_c1_06_021
BUFIO2_X2Y28BUFIO2_X2Y29
BUFIO2_X2Y26BUFIO2_X2Y27
BUFIO2_X4Y28BUFIO2_X4Y29
BUFIO2_X4Y26BUFIO2_X4Y27
PLLDCMDCMPLLDCMDCMPLLDCMDCM
GCLK19 (P)GCLK18 (N)
GCLK28 (N)GCLK29 (P)
GCLK30 (N)GCLK31 (P)
GCLK2 (N)GCLK3 (P)
GCLK5 (P) GCLK4 (N)
GCLK7 (P) GCLK6 (N)
GCLK9 (P) GCLK8 (N)
GCLK11 (P) GCLK10 (N)
GCLK0 (N)GCLK1 (P)
GCLK20 (N) GCLK21 (P)
GCLK22 (N) GCLK23 (P)
GCLK24 (N) GCLK25 (P)
GCLK26 (N) GCLK27 (P)
BUFIO2_X0Y22BUFIO2_X0Y23
BUFIO2_X0Y16BUFIO2_X0Y17
BUFIO2_X0Y16BUFIO2_X0Y17
BUFIO2_X1Y14BUFIO2_X1Y15
BUFIO2_X1Y8BUFIO2_X1Y9
DIVCLK
DIVCLK
IOCLK
IOCLK
DIVCLK IOCLK DIVCLK IOCLKD
IVC
LKIO
CLK
DIVCLK IOCLKDIVCLK IOCLK
BANK2 (BUFPLL Clock Region)
BANK0 (BUFPLL Clock Region)
BUFIO2 CLOCKING REGION TL
GCLK17 (P)GCLK16 (N)
GCLK15 (P)GCLK14 (N)
GCLK13 (P)GCLK12 (N)
BUFGMUX_X2Y1
BUFGMUX_X2Y2
BUFGMUX_X2Y3
BUFGMUX_X2Y4
BUFGMUX_X3Y5
BUFGMUX_X3Y6
BUFGMUX_X3Y7
BUFGMUX_X3Y8
BUFGMUX_X2Y9
BUFGMUX_X2Y10
BUFGMUX_X2Y11
BUFGMUX_X2Y12
BUFGMUX_X3Y13
BUFGMUX_X3Y14
BUFGMUX_X3Y15
BUFGMUX_X3Y16
BU
FIO
2 CLO
CK
ING
RE
GIO
N LB
BU
FIO
2 CLO
CK
ING
RE
GIO
N LT
DIV
CLK
IOC
LK
PLLDCMDCMPLLDCMDCMPLLDCMDCM
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 23UG382 (v1.3) 2010 年 2 月 22 日
クロック入力
BUFIO2 CLOCKING REGION TL
UG382_c1_07_021210
BUFIO2_X2Y28BUFIO2_X2Y29
BUFIO2_X0Y22BUFIO2_X4Y21
BUFIO2_X3Y13
BUFIO2_X3Y11
BUFIO2_X3Y12
BUFIO2_X3Y10
BUFIO2_X4Y20
BUFIO2_X4Y19BUFIO2_X4Y18
BUFIO2_X0Y23
BUFIO2_X1Y14BUFIO2_X1Y15
BUFIO2_X1Y8BUFIO2_X1Y9
BUFIO2_X0Y16BUFIO2_X0Y17
BUFIO2_X1Y7BUFIO2_X1Y6
BUFIO2_X1Y1BUFIO2_X1Y0
BUFIO2_X2Y26BUFIO2_X2Y27
BUFIO2_X4Y28BUFIO2_X4Y29
BUFIO2_X4Y26BUFIO2_X4Y27
GCLK19 (P) GCLK18 (N)
GCLK20 (N) GCLK21 (P)
GCLK22 (N) GCLK23 (P)
GCLK24 (N) GCLK25 (P)
GCLK26 (N) GCLK27 (P)
GCLK17 (P) GCLK16 (N)
GCLK13 (P) GCLK12 (N)
GCLK0 (N) GCLK1 (P)
GCLK2 (N) GCLK3 (P)
GCLK28 (N) GCLK29 (P)
GCLK30 (N) GCLK31 (P)
GCLK11 (P) GCLK10 (N)
GCLK9 (P) GCLK8 (N)
GCLK7 (P) GCLK6 (N)
GCLK5 (P) GCLK4 (N)
DIVCLK
D IVC LK
IOCLK
IOC LK
DIV
CLK
IOC
LK
DIVCLK IOCLK DIVCLK IOCLK
DIVCLK IOCLKDIVCLK IOCLK
BANK0 (BUFPLL Clock Region)
BA
NK
4
BUFPLL Region
BUFPLLRegion
GCLK15 (P) GCLK14 (N)
BUFGMUX_X2Y1
BUFGMUX_X2Y2
BUFGMUX_X2Y3
BUFGMUX_X2Y4
BUFGMUX_X3Y5
BUFGMUX_X3Y6
BUFGMUX_X3Y7
BUFGMUX_X3Y8
BUFGMUX_X2Y9
BUFGMUX_X2Y10
BUFGMUX_X2Y11
BUFGMUX_X2Y12
BUFGMUX_X3Y13
BUFGMUX_X3Y14
BUFGMUX_X3Y15
BUFGMUX_X3Y16
BUFIO2_X3Y1BUFIO2_X3Y0
BUFIO2_X3Y7BUFIO2_X3Y6
BUFIO2 CLOCKING REGION TR
BUFIO2 CLOCKING REGION BL
BANK2 (BUFPLL Clock Region)
BUFIO2 CLOCKING REGION BR
BA
NK
3
BU
FIO
2 CLO
CK
ING
RE
GIO
N LB B
UF
IO2
CLO
CK
ING
RE
GIO
N R
B
BA
NK
1B
AN
K5
DIV
CLK
IOC
LK
PLLDCMDCMPLLDCMDCMPLLDCMDCM
PLLDCMDCMPLLDCMDCMPLLDCMDCM
BU
FIO
2 C
LOC
KIN
G R
EG
ION
RT
BU
FIO
2 CLO
CK
ING
RE
GIO
N LT
図 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 に接続しています。
デバイスにバンクが 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)。
X-Ref Target - Figure 1-8
図 1-8 : Spartan-6 FPGA クロッ ク ピン レイアウト (バンクが 6 つあるデバイス)
24 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
グローバル ク ロ ッ ク ピンが 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 が自動的に推論されます。
表 1-6 : GCLK VCCO バンク サポート (IOLOGIC2 との比較)
GCLK 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]
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 25UG382 (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 を使用しても しな くても動作します。
DDR データ レート (IDDR2、 ODDR2、 IOSERDES2 なし )
IDDR2 および ODDR2 プリ ミ ティブのク ロ ッキングには次のオプシ ョ ンがあ り ます。
• パフォーマンスが重要でない場合、 ク ロ ッ ク (C0) と ローカル反転を使用した反転クロ ッ ク
(C1) の両方を駆動するのに 1 つの DCM 出力を使用します。 IODELAY2 を使用してもしなく
ても動作します。
X-Ref Target - Figure 1-9
図 1-9 : BUFIO2 を使用した I/O フリ ップフロップのクロック
X-Ref Target - Figure 1-10
図 1-10 : BUFG を使用した I/O フリ ップフロップのクロック
CLOCK
BUFIO2IBUFG
I
BUFGDIVCLK
IOCLK
SERDESSTROBE
FPGALogic
FDRSE
USE_DOUBLER = FALSE
C
CE
D
R
S
Q
UG382_c2_09_121709
CLOCK
IBUFGBUFG
FPGALogic
FDRSE
C
CE
D
R
S
Q
UG382_c2_10_121709
26 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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 リ ソース ユーザー ガイ ド』 を参照して ください。
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 27UG382 (v1.3) 2010 年 2 月 22 日
高速 I/O クロック ネッ トワーク接続の例
高速 I/O クロック ネッ トワーク接続の例
このセクシ ョ ンにある例は、高速インターフェイス用にグローバル ク ロ ッ ク バッファ、 I/O ク ロ ッ
ク バッファ、 および I/O タイルがどのよ うに使用されるかを示しています。
図 1-11 の例は、 ISERDES2 にクロ ッ ク供給するための簡単なインプ リ メンテーシ ョ ンを示してい
ます。BUFIO2 は、FPGA ロジッ クにク ロ ッ ク と、 ISERDES2 で使用されるス ト ローブ信号を提供
します。シ リ アル データは I/O ク ロ ッ ク ネッ ト ワークにある IOCLK を使用して出力されます。パ
ラレル データは、 DIVCLK 出力と同期 SERDESSTROBE 信号を使用して FPGA ク ロ ッ ク領域に
出力されます。
シ リ アル化されたデータが入力クロ ッ クの立ち上がり と立ち下がりエッジの両方でクロ ッ ク と同期
する DDR アプリケーシ ョ ンでは、 図 1-12 に示すよ うに、CLK1 を駆動するために 2 つ目の反転ク
ロ ッ クが必要になり ます。データが IOCLK の両エッジで同期するため、USE_DOUBLER = TRUEと設定して、 DIVCLK は DIVIDE/2 で逓倍されます。
表 1-7 : クロック バッファのプリ ミテ ィブ
プリ ミテ ィブ 入力 出力 説明
IBUFG I O シングルエンド I/O の入力クロ ッ ク バッファ
IBUFGDS I、 IB O 差動 I/O の入力クロ ッ ク バッファ
X-Ref Target - Figure 1-11
図 1-11 : 例 1: ISERDES2 (DATA_RATE = SDR) を駆動する BUFIO2
UG382_c1_08_120809
FPGALogic
CLOCK
ISERDES2BUFIO2
USE_DOUBLER = FALSE
DATA_RATE = SDR
CLKDIVDIVCLKIBUFG
BUFG
IOCLK
SERDESSTROBE
ICLK0
CLK1
IOCE
28 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
入力クロ ッ クがシ リアル データではなくパラレル データの周波数で実行される、 ビデオ アプリ
ケーシ ョ ン用のピクセル ク ロ ッ クなどのアプリ ケーシ ョ ンでは、入力クロ ッ クを高速 I/O ク ロ ッ ク
を生成するために入力クロ ッ クを乗算する必要があ り ます。図 1-13 は、ISERDES に必要な高速 I/Oク ロ ッ クを提供する PLL を示しています。
GCLK ク ロ ッ ク入力は、 BUFIO2 を使用して自動的に PLL および DCM ク ロ ッ ク入力に配線され
ます。 この BUFIO2 配線パスによ り、 必要な場合入力パスは BUFIO2FB を使用してスキュー調整
されます。
PLL は CLKOUT0 出力で I/O ク ロ ッ ク ネッ ト ワークを駆動します。BUFIO2FB は、プライマ リの
BUFIO2 に関連した入力配線遅延のスキューを調整するよ うバランスを取り ます。FPGA ク ロ ッ ク
領域は、 BUFG を使用した別の PLL ク ロ ッ ク出力で駆動されます。
X-Ref Target - Figure 1-12
図 1-12 : 例 2: ISERDES2 (DATA_RATE = DDR) を駆動する BUFIO2
UG382_c1_09_120809
FPGALogic
CLOCK
ISERDES2BUFIO2
USE_DOUBLER = TRUEI_INVERT = FALSE
USE_DOUBLER = FALSEI_INVERT = TRUE
DATA_RATE = DDR
CLKDIVDIVCLKIBUFG
BUFG
IOCLK
SERDESSTROBE
I
I
CLK0
CLK1
IOCE
BUFIO2DIVCLK
IOCLK
SERDESSTROBE
I
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 29UG382 (v1.3) 2010 年 2 月 22 日
高速 I/O クロック ネッ トワーク接続の例
高速ソース同期出力のデザインの場合、GCLK 入力から I/O ク ロ ッ ク領域までのタイ ミ ング遅延が
正確である必要はあ り ません。タイ ミ ング アライ メン トが不要な場合は、ク ロ ッ ク バッファを使用
せずに PLL で CLKFBOUT からCLKFBIN への専用フ ィードバッ クを使用する こ とができます
(図 1-14)。
DCM_SP のパフォーマンスが十分なデザインでは、 BUFG ク ロ ッ ク バッファを 高 3 つまで使用
して IOLOGIC (IDDR2) を駆動するためにDCM_SP を使用するこ とができます。 入力配線遅延を
一致させるため、 CLK0 または CLK2X を使用して BUFIO2FB を駆動する必要があ り ます (図1-15)。
X-Ref Target - Figure 1-13
図 1-13 : 例 3 : 基本 PLL ISERDES2 (SDR)
UG382_c1_10_121709
FPGALogic
CLOCK
ISERDES2BUFIO2
BUFIO2FB
DATA_RATE = SDR
CLK_FEEDBACK = CLKOUT0
CLKDIVDIVCLK
BUFG
IOCLK
SERDESSTROBE
I
I O
CLK0
CLK1
IOCE
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
LOCKED
PLL_BASE
CLKIN
CLKFB
RST
BUFPLLLOCK
IOCLK
SERDESSTROBE
GCLK
PLLIN
LOCKED
X-Ref Target - Figure 1-14
図 1-14 : 例 4 : 基本 PLL OSERDES2 (SDR)
UG382_c1_11_120809
OSERDES2
CLK_FEEDBACK = CLKFBOUT
CLKDIV
BUFG
CLK0
CLK1
IOCE
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
LOCKED
PLL_BASE
CLKIN
CLKFBIN
RST
BUFPLLLOCK
IOCLK
SERDESSTROBE
GCLK
PLLIN
LOCKED
DATA_RATE_OQ = SDRDATA_RATE_OT = SDR
CLOCK
BUFIO2IBUFG DIVCLK
IOCLK
SERDESSTROBE
I
30 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
DCM を使用して 善のデューティ サイクル パフォーマンスを維持するには、 別の DCM クロ ッ ク
出力を使用して C0 および C1 を駆動します。各 DCM 出力は個別にグローバル バッファを駆動しま
す。可能ではあ り ますが、BUFG を使用して I/O タイル内の 1 位相をローカルで反転するのは避けて
ください。 クロ ッ クの 1 つをローカルで反転させると、 デューティ サイクルの歪みが発生します。
GTP ト ランシーバを使用している場合、GTP リ ファレンス ク ロ ッ クに CMT (ク ロ ッ ク マネージメ
ン ト タイル) への接続に使用可能な BUFIO2 への専用配線接続が含まれます。 図 1-16 の例 6 は、
BUFIO2FB を使用して配線した GTP_DUAL からのフ ィードバッ ク パスと PLL_BASE を使用し
たシングル レーンの PCI Express の例です。詳細は『 Spartan-6 FPGA GTP ト ランシーバ ユーザー
ガイ ド』 (UG386) を参照してください。
X-Ref Target - Figure 1-15
図 1-15 : 例 5 : 入力への DCM スキュー調整
UG382_c1_12_120809
IDDR2
CLKFEEDBACK = <1X / 2X>
C0BUFG
C1
CLK0
CLK2X
CLKFX
CLKFX180
DCM_SP
CLKIN
CLKFBIN
RST
BUFG
BUFG
GCLK
BUFIO2
BUFIO2FB
IBUFG DIVCLK
IOCLK
SERDESSTROBE
I
I OLOCKED
X-Ref Target - Figure 1-16
図 1-16 : 例 6 : PCI Express のシングル レーン クロッキング
MUX
BUFIO2FBI O
CLKIN
CLKFBIN
CLKOUT0CLKOUT1CLKOUT2CLKOUT3CLKOUT4CLKOUT5
CLKFBOUTLOCKED
ug382_c1_16_020510
RST
PLL_BASEGTPCLKOUT0[0]
BUFIO2
IOCLK
SERDESSTROBE
I
DIVCLK
CLK_FEEDBACK = CLKOUT0COMPENSATION = SOURCE_SYNCHRONOUS
BUFGGTPCLKFBWEST[0]
BUFG
GTPCLKFBSEL0WEST=00
PCIe One Lane
TXUSRCLK20
RXUSRCLK20
TXUSRCLK21
RXUSRCLK21
TXUSRCLK0
RXUSRCLK0
TXUSRCLK1
RXUSRCLK1
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 31UG382 (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
図 1-17 : 例 7 : クロックが 100MHz の PCI Express のシングル レーンのクロッキング
MUX
BUFIO2FBI O
CLKIN
CLKFBIN
CLKOUT0CLKOUT1CLKOUT2CLKOUT3CLKOUT4CLKOUT5
CLKFBOUTLOCKED
ug382_c1_17_020510
RST
PLL_BASEGTPCLKOUT0[0]
100 MHz
250 MHz
250 MHz62.5 MHz
125 MHz
BUFIO2
IOCLK
SERDESSTROBE
I
DIVCLK
CLK_FEEDBACK = CLKOUT0COMPENSATION = SOURCE_SYNCHRONOUSCLKFB_MULT = 5DIVCLK_DIVIDE = 2CLKOUT0_DIVIDE = 2CLKOUT1_DIVIDE = 8CLKOUT2_DIVIDE = 4
BUFGGTPCLKFBWEST[0]
BUFG
GTPCLKFBSEL0WEST=00
TXDATAWIDTH0[0] = 2FTXUSRCLK2 = FTXUSRCLK/4
TXUSRCLK20
RXUSRCLK20
TXUSRCLK21
RXUSRCLK21
TXUSRCLK0
RXUSRCLK0
TXUSRCLK1
RXUSRCLK1
BUFG
32 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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 に、 グローバル ク ロ ッ ク バッファのプ リ ミ ティブを示します。
BUFGMUX各 BUFGMUX プリ ミ ティブは、図 1-18 に示すよ うに、2:1 マルチプレクサです。セレク ト ライン
S によ り、 I0 または I1 のどちらかを使用して BUFGMUX 出力信号 O を駆動するかを選択します
(表 1-9 を参照)。 Spartan-6 FPGA データシートで指定されているよ うに、 S 入力にはセッ ト アップ
タイム要件があ り ます。 極性は指定可能です。
表 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
X-Ref Target - Figure 1-18
図 1-18 : BUFGMUX プリ ミテ ィブ
BUFGMUX
ug382_ c1_14_120809
OI1
I0
S
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 33UG382 (v1.3) 2010 年 2 月 22 日
クロック バッファおよびマルチプレクサ
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 つだけ必要な場合、2 つ目のクロ ッ ク入力およびセレク ト ラインは使用されない
ため、 BUFG プリ ミ ティブを選択する必要があ り ます。
BUFGMUX は、電源供給時およびグローバル セッ ト / リセッ ト (GSR) のアサート時に I0 が選択さ
れるよ う初期化されます。 シ ミ ュレーシ ョ ンでも、 時間 0 で S = 0 が選択されるよ うにする必要が
あ り ます。時間 0 で S = 1 が選択される と、I1 の次の立ち下がりエッジまで出力が不明になり ます。
セレク ト ラ インは、 クロ ッ クのステートおよび遷移に関係なく常時変更可能ですが、選択されたク
ロ ッ ク入力の立ち上がりエッジの前、セッ ト アップ タイム内に S が変化する と、出力にラン ト パル
スが現れるこ とがあ り ます。
表 1-9 : BUFGMUX プリ ミテ ィブ
S 入力 O 出力
0 I0 入力
1 I1 入力
表 1-10 : BUFGMUX 属性
属性名 説明 値 デフォルト値
CLK_SEL_TYPE 同期または非同期を指定 SYNC、 ASYNC SYNC
表 1-11 : BUFGMUX の機能
入力 出力
I0 I1 S O
I0 X 0 I0
X I1 1 I1
X X ↑ 0
X X ↓ 0
34 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
BUFGMUX_1BUFGMUX と BUFGMUX_1 では、 S の値が変化した後クロ ッ クが切り替わるまで保持される出
力ステートが異なり ます。BUFGMUX では出力ステートが 0 に、BUFGMUX_1 では出力ステート
が 1 に保持されます (表 1-12)。
図 1-19 は BUFGMUX_1 のタイ ミ ング図です。
図 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 のタイ ミ ング図です。
表 1-12 : BUFGMUX_1 の機能
入力 出力
I0 I1 S O
I0 X 0 I0
X I1 1 I1
X X ↑ 1
X X ↓ 1
X-Ref Target - Figure 1-19
図 1-19 : BUFGMUX のタイ ミング図
S
I0
I1
O
ug382_c1_15_120809
beginswitching using I1
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 35UG382 (v1.3) 2010 年 2 月 22 日
クロック バッファおよびマルチプレクサ
図 1-20 は次のよ うになっています。
• 現在のクロ ッ クは I0 です。
• S は High になっています。
• I0 が High の場合、 マルチプレクサは I0 が High にアサート されるまで待機します。
• I0 が High になる と、 I1 が Low から High へと遷移するまでマルチプレクサ出力は High のま
まになり ます。
• I1 が Low から High へと遷移する と、 出力は I1 に切り替わり ます。
• グ リ ッチまたは短いパルスは出力に現れません。
X-Ref Target - Figure 1-20
図 1-20 : BUFGMUX_1 のタイ ミング図
PCIe One Lane
TXUSRCLK20
RXUSRCLK20
TXUSRCLK21
RXUSRCLK21
RXUSRCLK0
TXUSRCLK1
RXUSRCLK1
36 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
BUFGBUFGMUX は、デバイスに含まれる物理的なクロ ッ ク バッファですが、1 入力のクロ ッ ク バッファ
と しても使用できます。BUFG クロ ッ ク バッファ プリ ミ ティブ (図 1-21 を参照) は、1 つのクロ ッ
ク信号をクロ ッ ク ネッ ト ワークに駆動します。 ク ロ ッ ク選択機能がないだけで、 基本的には
BUFGMUX と同じです。 BUFG は、 複数の Virtex および Spartan アーキテクチャで共通のクロ ッ
ク バッファ プリ ミ ティブです。
図 1-22 に示すよ うに、 BUFG は BUFGMUX から構築されています。
X-Ref Target - Figure 1-21
図 1-21 : BUFG プリ ミテ ィブ
X-Ref Target - Figure 1-22
図 1-22 : BUFGMUX から構築された BUFG
BUFG
ug382_c1_17_120809
OI
BUFGMUX
ug382_c1_18_120809
OI1
I0
S
GND
I
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 37UG382 (v1.3) 2010 年 2 月 22 日
クロック バッファおよびマルチプレクサ
BUFGCE および BUFGCE_1BUFGCE プリ ミ ティブは、 BUFGMUX のクロ ッ ク選択機能を使用して、 ク ロ ッ ク バッファのイ
ネーブル入力を作成します (図 1-23 を参照)。BUFGCE は、 クロ ッ ク イネーブル入力付きグローバ
ル ク ロ ッ ク バッファです。 O 出力は、 クロ ッ ク イネーブル (CE) が Low (非アクティブ) のと きに
0 になり ます。CE が High になる と、I 入力の値が O に出力されます。表 1-13 はその真理値表です。
BUFGCE は、 BUFGMUX で 1 つの入力を固定値にするこ とによって構成されています。 ディ ス
エーブルの場合のデフォルト値は Low です。 BUFGCE_1 プリ ミ ティブは、 VCC を I1 に接続する
こ とによ り、ディ スエーブルの場合のデフォルト値を High にしています。また、入力間の遷移中に
グ リ ッチのない動作を提供するために BUFGMUX_1 プリ ミ ティブが使用されます。
ライブラ リ エレ メン トはプ リ ミ ティブですが、 図 1-24 に等価機能を示します。 CE の反転は
BUFGMUX 機能に組み込まれています。 0 は、 未使用のどの LUT からでも供給できます。
X-Ref Target - Figure 1-23
図 1-23 : BUFGCE プリ ミテ ィブ
表 1-13 : BUFGCE 真理値表
S 入力 O 出力
I CE O
X 0 0
X 1 I
X-Ref Target - Figure 1-24
図 1-24 : BUFGCE の等価機能
BUFGCE
ug382_c1_19_120809
OI
CE
S
I1
I0
O
BUFGMUX
ug382_c1_20_120809
I
GND
INVCE_IN
38 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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-15 には、 I/O ク ロ ッ ク ネッ ト ワークで使用可能なポートが記載されています。
表 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 クロック ネッ トワーク信号
プリ ミテ ィブ 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 DATAOUT I/O タイル ロジッ ク
GTP_DUAL CLKOUT0[1:0]、 CLKOUT1[1:0] GTP_DUAL タイル
メモ : 1. 出力は I/O ク ロ ッ ク ネッ ト ワークへの接続専用です。 FPGA ロジッ クへは接続できません。
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 39UG382 (v1.3) 2010 年 2 月 22 日
クロック バッファおよびマルチプレクサ
BUFIO2BUFIO2 には GCLK クロ ッ ク入力が使用され、図 1-25 にあるよ うにク ロ ッ ク出力 2 つとス ト ロー
ブ パルス 1 つが生成されます。
表 1-16 には BUFIO2 ポートが リ ス ト されています。IOCLK 出力はバッファを介した入力クロ ッ ク
(I) です。DIVCLK 出力の周期およびデューティ サイクルは、表 1-17 にリ ス ト されている属性の設
定によって変わり ます。
X-Ref Target - Figure 1-25
図 1-25 : BUFIO2 プリ ミテ ィブ
表 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 属性
属性名 説明 値 デフォルト値
DIVIDE
DIVCLK および SERDESSTRONBE の分周値を設定します。
FDIVCLK = FIN / DIVIDE <USE_DOUBLER = FALSE>
FDIVCLK = (2 * FIN) / DIVIDE <USE_DOUBLER = TRUE>
1、 2、 3、 4、 5、6、 7、 8
1
DIVIDE_BYPASSDIVCLK 出力ソースは FALSE の場合
分周器から、TRUE の場合 は分周器をバ
イパスした入力 I からです。
TRUE、 FALSE TRUE
BUFIO2
ug382_c1_21_120809
IOCLK
DIVCLK
SERDESSTROBE
I
40 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
表 1-17 にあるよ うに、 DIVIDE_BYPASS が TRUE の場合、 DIVCLK 出力はバッファを介した入
力クロ ッ クで、SERDESSTROBE 出力は 1 に駆動されます。DIVIDE_BYPASS が FALSE の場合、
USE_DOUBLER を使用する場合を除き、DIVCLK および SERDESSTROBE 出力は除算属性で設
定されている値で分周された入力クロ ッ クになり ます。
I/O ク ロ ッ ク ネッ ト ワークが DDR ク ロ ッ クで駆動されるアプリケーシ ョ ンの場合は、 USE-DOUBLER を TRUE に設定する必要があ り ます。 USE_DOUBLER = TRUE に設定する と、
DATA_RATE = DDR の IOSERDES2 に接続する場合、 必要な DIVCLK および
SERDESSTROBE 出力が提供されます (図 1-26)。 180°の位相シフ ト を作成するには追加の
BUFIO2 が必要です (図 1-27)。
I_INVERT
TRUE に設定されている場合、BUFIO2 の配置は BUFIO2 の I_INVERT ロケーシ ョ ンに制限されます ( 図 1-5)。 IOCLK 出力は 180° シフト されます。 主に IODDR2 または IOSERDES2 (DATA_RATE = DDR) に使用されます。
TRUE、 FALSE FALSE
USE_DOUBLER
DATA_RATE = DDR のISERDES2/OSERDES2 に使用されます。 TRUE に設定されている場合、 DIVCLK および SERDESSTROBE 周波数が倍になり ます。
FDIVCLK = (2 * FIN) / DIVIDE
TRUE、 FALSE FALSE
表 1-17 : BUFIO2 属性 (続き)
属性名 説明 値 デフォルト値
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 41UG382 (v1.3) 2010 年 2 月 22 日
クロック バッファおよびマルチプレクサ
X-Ref Target - Figure 1-26
図 1-26 : BUFIO2_2CLK SDR クロッ ク
UG382_c1_22_120809
BUFIO2
DIVIDE = 2
DIVIDE = 1(Default)
DIVCLK
RXCLKSingle-ended or Differential
USE_DOUBLER = FALSE
IOCLK
SERDESSTROBE
RXCLK
IOCLK
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
DIVCLK
42 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
X-Ref Target - Figure 1-27
図 1-27 : BUFIO2 DDR クロック
UG382_c1_23_120809
BUFIO2
DIVIDE = 2(DEFAULT)
DIVCLK
RXCLKSingle-ended or Differential
USE_DOUBLER = TRUE
IOCLK0
SERDESSTROBE
BUFIO2I_INVERT = TRUE
IOCLK1
RXCLK
IOCLK0
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
IOCLK1
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 43UG382 (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_2CLKBUFIO2_2CLK の論理ビヘイビアは BUFIO2 (USE_DOUBLER = TRUE) とほぼ同じですが、シン
グルエンドのク ロ ッ クで 2 クロ ッ ク必要であるこ と、または差動ペア (IBUFDS_DIFF_OUT からの
出力) を入力と して使用する点が異なり ます (図 1-28)。表 1-18 には BUFIO2_2CLK ポートが リ ス
ト され、 表 1-19 には属性がリ ス ト されています。
X-Ref Target - Figure 1-28
図 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 出力IOSERDES2 (IOCE) 駆動用の I/O ク ロ ッ ク ネッ ト ワーク出力。
BUFIO2_2CLK
ug382_c1_24_120809
IOCLK
DIVCLK
SERDESSTROBE
I
IB
44 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
図 1-29 に示すよ うに、 BUFIO2_2CLK は差動 GCLK 入力に接続するこ とができます。
図 1-30 は、 ISERDES2 (DATA_PATH = DDR) または OSERDES2 (DATA_PATH_OQ = DDR) に対し使用する 2 番目の BUFIO2 もま とめたタイ ミ ング波形図です。
表 1-19 : BUFIO2_2CLK 属性
属性名 説明 値 デフォルト値
DIVIDE
DIVCLK および SERDESSTROBE の分周値を設定するデータ レートの設定です。
FDIVCLK = (2 * FIN) / DIVIDE
2、 3、 4、 5、 6、7、 8
2
DIVIDE_BYPASS
FALSE の場合 DIVCLK 出力ソースは分周器から、 TRUE の場合 DIVCLK 出力ソースは分周器をバイパスした入力 I からです。
TRUE、 FALSE TRUE
X-Ref Target - Figure 1-29
図 1-29 : 差動 GCLK クロック入力で駆動する BUFIO2_2CLK
UG382_c1_25_120809
BUFIO2_2CLK
DIVCLKIBUFDS_DIFF_OUT
IOCLK
SERDESSTROBE
I
IB
I
IB
O
OB
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 45UG382 (v1.3) 2010 年 2 月 22 日
クロック バッファおよびマルチプレクサ
X-Ref Target - Figure 1-30
図 1-30 : BUFIO2_2CLK DDR クロック
UG382_c1_26_120809
BUFIO2_2CLKIBUFGDS_DIFF_OUT
DIVIDE = 2(Default)
DIVCLK
RXCLK_P
RXCLK_NIOCLK0
SERDESSTROBE
BUFIO2I_INVERT = FALSE
IOCLK1
RXCLK
IOCLK0
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
IOCLK1
46 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
BUFPLLBUFPLL (図 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
図 1-31 : BUFPLL プリ ミテ ィブ
表 1-20 : BUFPLL のポート と定義
ポート名 タイプ 定義
PLLIN 入力
PLL からのクロ ッ ク入力 (CLKOUT0、 CLKOUT1)バンク 1、 3、 4、 および 5 でも BUFG (O) を駆動できます。
GCLK 入力
BUFG または CLK からのクロ ッ ク入力。 GCLK の周波数は、予期される SERDESSTROBE の周波数に
一致している必要があ り ます。
FGCLK = FPLLIN/DIVIDE
LOCKED 入力 PLL からの LOCKED 信号
IOCLK 出力
I/O クロ ッ ク ネッ ト ワーク出力。
IOSERDES2 (CLK0)、 BUFIO2FB (I)、 または
IODELAY2 (IOCLK0、 IOCLK1) に接続します。
SERDESSTROBE 出力IOSERDES2 (IOCE) 駆動用の I/O クロ ッ ク ネッ ト
ワーク出力。
LOCK 出力 同期した LOCK 出力
BUFPLL
ug382_c1_27_120809
IOCLK
LOCK
SERDESSTROBE
PLLIN
GCLK
LOCKED
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 47UG382 (v1.3) 2010 年 2 月 22 日
クロック バッファおよびマルチプレクサ
「高速 I/O クロ ッ ク ネッ ト ワーク接続の例」 を参照してください。
BUFPLL_MCBBUFPLL_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-21 : BUFPLL 属性
属性名 説明 値 デフォルト値
DIVIDE SERDESSTROBE に対し PLLIN の分
周値を設定します。
1、2、3、4、5、6、7、 8
1
ENABLE_SYNC
TRUE のと きに SERDESSTROBE がGCLK 入力に揃えられます。BUFPLL がBUFG で駆動される場合のみク リアさ
れます。
TRUE、 FALSE TRUE
表 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 ク ロ ッ ク ネッ ト ワーク
出力。
48 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
BUFIO2FBBUFIO2FB は、属性を使用して出力遅延を決定するシンプルなバッファです。 これは 1 出力、 1 入力のみを使用します (図 1-32)。BUFIO2 ポートは、表 1-24 にリ ス ト されています。表 1-25 にある
よ うに、 DIVIDE_BYPASS が TRUE の場合、 遅延は BUFIO2 バイパス遅延と同等になり ます。
FALSE の場合、遅延は BUFIO2 の DIVCLK 出力の近似値になり、BUFIO2 と BUFIO2FB 位相の
出力が揃います。
表 1-23 : BUFPLL_MCB 属性
属性名 説明 値 デフォルト値
LOCK_SRC PLLIN0 および PLLIN1 が独立してい
るかまたは固定かを設定します。固定さ
れている場合、信号は PLLIN0 または
PLLIN1 に固定されます。
INDEPENDENTLOCK_TO_0LOCK_TO_1
LOCK_TO_0
DIVIDE SERDESSTROBE0 および
SERDESSTROBE1 に対し、PLLIN0 および PLLIN1 の分周値を設定します。
1、2、3、4、5、6、7、8 2
ENABLE_SYNC
TRUE のと きに SERDESSTROBE がGCLK 入力に揃えられます。 BUFPLLが BUFG で駆動される場合のみク リ ア
されます。
TRUE、 FALSE TRUE
X-Ref Target - Figure 1-32
図 1-32 : BUFIO2FB プリ ミテ ィブ
表 1-24 : BUFIO2FB ポートの定義
ポート名 タイプ 定義
I 入力
フ ィードバッ ク クロ ッ ク入力。
BUFIO2 (IOCLK)、 BUFPLL (IOCLK)、 IODELAY2(DATAOUT)、 GTPCLKFBWEST、 GTPCLKFBEAST、または BUFG (O) で駆動するこ とができます。
O 出力 出力フ ィードバッ ク クロ ッ ク
BUFIO2FB
ug382_c1_28_120809
OI
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 49UG382 (v1.3) 2010 年 2 月 22 日
クロック バッファおよびマルチプレクサ
図 1-33 に示すよ うに BUFIO2FB バッファを使用し、 CMT (PLL または DCM) リ ファレンス出力
CLKIN とフ ィードバッ ク CLKFB の間のクロ ッ ク配線遅延を一致させるこ とができます。 CMTフ ィードバッ ク パスが使用されている場合は、 ISE Design Suite によって BUFIO2FB および
BUFIO2 バッファが自動挿入されます。
表 1-25 : BUFIO2FB 属性
属性名 説明 値 デフォルト値
DIVIDE_BYPASS
FALSE の場合 DIVCLK 出力ソースは
分周器からで、 CLKDIV_DIVIDE は 1に設定する必要があ り ます。TRUE の場
合 DIVCLK 出力ソースは分周器をバイ
パスした入力 I からの出力ソースです。
TRUE、 FALSE TRUE
X-Ref Target - Figure 1-33
図 1-33 : クロック配線遅延と一致する BUFIO2FB バッファ
PLL/DCM
ILOGIC
I/OInput
CLK_FB
CLKOUT
CLK_REF or CLKIN
Clock Input
BUFG/BUFPLL
BUFIO2FB
CLKMUX
BUFIO2
ug382_c1_29_120809
50 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 1 章 : クロック リソース
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 51UG382 (v1.3) 2010 年 2 月 22 日
第 2 章
クロック マネージメン ト テク ノロジ
クロック マネージメン トについて
Spartan-6 のクロ ッ ク マネージメン ト タイル (CMT) は、非常に柔軟性に富み、かつ高性能なクロ ッ
ク機能を提供するものです。Spartan-6 FPGA の CMT ブロ ッ ク (図 2-1) は垂直のグローバル ク ロ ッ
ク ツ リーに沿った中央列にあ り ます。各 CMT ブロ ッ クには DCM が 2 つ、PLL が 1 つ含まれてい
ます。
X-Ref Target - Figure 2-1
図 2-1 : Spartan-6FPGA DCMの位置
CMT
PLL
DCM(x2)
ug382_c2_01_081009
CMT
PLL
DCM(x2)
CMT
PLL
DCM(x2)
CMT
PLL
DCM(x2)
52 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
表 2-1 は、 各 Spartan-6 デバイスで使用可能な CMT、 DCM、 PLL をま とめたものです。
ク ロ ッ ク スキューを 小限にするには、CMT からのクロ ッ ク出力にグローバル ク ロ ッ クバッファ
を使用します。クロ ッ ク バッファが限られている場合、CMT ク ロ ッ ク出力はオプシ ョ ンでグローバ
ル ク ロ ッ ク バッファなしに使用するこ とができますが、すべてのロジッ クを 1 つのクロ ッ ク領域内
に配置する必要があ り ます。各クロ ッ ク領域には垂直方向に 16 個の CLB があ り、 18Kb のブロ ッ ク
RAM が 4 つまで、 DSP48A1 スライスが 4 つまで含まれています。
DCM の概要
デジタル ク ロ ッ ク マネージャ (DCM) は、 Spartan-6 FPGA アプリケーシ ョ ンに高度なクロ ッ ク機
能を提供します。 DCM を使用する と、 ク ロ ッ ク スキューを取り除く こ とができるため、 システム
のパフォーマンスが向上します。 また、 ク ロ ッ ク周期のある割合だけ入力クロ ッ クの位相をシフ ト
した り、 入力ク ロ ッ クの周波数を逓倍または分周して新しい周波数を合成した りできます。 DCMは、 FPGA のグローバル ロー スキュー ク ロ ッ ク分配ネッ ト ワークに直接組み込まれています。
DCM について
DCM によ り、FPGA のグローバル ロー スキュー ク ロ ッ ク分配ネッ ト ワークに高度なクロ ッ ク制御
機構を組み込むこ とができるため、 特に高パフォーマンス、 高周波数のアプリケーシ ョ ンで発生し
やすいさまざまなク ロ ッ クの問題を解決できます。
• ク ロ ッ ク スキューの除去 : デバイス内または外部コンポーネン トへのクロ ッ ク スキューを取
り除く こ とによ り、システム全体のパフォーマンスを向上し、ク ロ ッ ク分配遅延を削除します。
• 位相シフ ト : ク ロ ッ ク周波数の固定の割合またはインク リ メン ト分だけクロ ッ ク信号の位相を
シフ ト します。
表 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
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 53UG382 (v1.3) 2010 年 2 月 22 日
ほかのザイリンクス FPGA ファ ミ リ との互換性および比較
• 入力クロ ッ ク周波数を逓倍するか、または、逓倍したスタティ ッ ク /ダイナミ ッ ク ク ロ ッ クを組
み合わせ新しい周波数を合成します。
• デューティー サイクルの調整 : デューティ サイクルが 50% のクロ ッ クが出力されるよ う調整
します。
• ク ロ ッ ク信号のミ ラー、転送、再バッファ : 入力クロ ッ ク信号をスキュー調整し、別の I/O 規格
に変換します。 たとえば、 入力 LVTTL クロ ッ クを転送し LVDS に変換します。
• ク ロ ッ ク入力ジッタ フ ィルタ リ ング
• フ リーランニング オシレータ
• スペク ト ラム拡散クロ ッ ク生成
ほかのザイリンクス 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 を参照して ください。
表 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、8、 9、 10、 11、 12、 13、 14、 15、 または 16 で分周
CLKDV
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
54 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
表 2-3 : ザイリンクス FPGA での DCM の機能比較
機能 Virtex-5 FPGA(1)Spartan-3E および
Extended Spartan-3A FPGA
Spartan-6 FPGA
デザイン プリ ミ ティブ DCM_BASEDCM_ADV
DCM_SP DCM_SPDCM_CLKGEN
設定可能な DLL 動作周波数範囲の数 2 :
低周波数モード (LOW)と 高 周 波 数 モ ー ド
(HIGH)
1 1
設定可能な DFS 動作周波数範囲の数 2 :
低周波数モード (LOW)と 高 周 波 数 モ ー ド
(HIGH)
1 1
可変位相シフ トの増分/減分の単位 CLKIN 周期の 1/256(度数)
DCM_DELAY_STEP
15 ~ 35ps (時間)
DCM_DELAY_STEP
Spartan-6 FPGA データ
シート を参照。
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 プ リ ミ テ ィブを使用して ください。
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 55UG382 (v1.3) 2010 年 2 月 22 日
DCM の機能の概要
DCM の機能の概要
DCM には 4 つの主な機能があ り、 それぞれ単独で使用したり、 または併用するこ とができます。
図 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 位相シフ トの出力を生成します。
X-Ref Target - Figure 2-2
図 2-2 : DCM ファンクシ ョ ン ブロック
ug382_c2_02_051209
DCM
PSINCDECPSEN
PSCLK
CLKIN
CLKFB
RST
DFS
DLL
PSDONE
CLK0
CLK90CLK180CLK270CLK2XCLK2X180CLKDV
CLKFX
CLKFX180
LOCKED
STATUS
56 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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-6FPGA データシートで定義されているよ うに、範囲が固定されている 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 を使用する と き
にシ ミ ュレーシ ョ ンで使用されます。
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 57UG382 (v1.3) 2010 年 2 月 22 日
DCM プリ ミテ ィブ
各 DCM 接続ポート、 属性、 プロパティ、 および制約はこのセクシ ョ ンにま とめられています。
DCM_SP プリ ミテ ィブ
DCM_SP プリ ミ ティブは従来の DCM 機能を利用し、クロ ッ ク スキュー調整、周波数合成、固定お
よび可変位相シフ ト を行います。
各ポートの説明には、信号方向と、DCM に必要な接続 (R) が記載されています。表 2-4 には 表 2-5で使用されている各ファンクシ ョ ンの略称がリ ス ト され、 表 2-5 には DCM_SP ポートが リ ス ト さ
れています。
X-Ref Target - Figure 2-3
図 2-3 : DCM プリ ミテ ィブ
CLK0
CLK90
CLK180
CLK270
CLK2X
CLK2X180
CLKDV
CLKFX
CLKFX180
STATUS[7:0] STATUS[2:1]
LOCKED
PSDONE
CLKIN
CLKFB
RST
PSEN
PSINCDEC
PSCLK
DCM_SP
CLKFX
CLKFX180
CLKFXDV
LOCKED
PROGDONE
CLKIN
RST
FREEZEDCM
PROGEN
PROGDATA
PROGCLK
DCM_CLKGEN
UG382_c2_03_061109
表 2-4 : 表 2-5 のファンクシ ョ ン ユニッ トの略称
略称 DCM ファンクシ ョ ン
DLL 遅延ロッ ク ループ
PS 位相シフ ト
DFS デジタル周波数合成
58 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
表 2-5 : DCM_SP ポート
ポート 方向 説明 DLL PS DFS
CLKIN クロ ッ ク
入力
DCM へのクロ ッ ク入力。 すべてのファンクシ ョ ンで必須です。
CLKIN の周波数とジッ タは、 データシートで指定された範囲内
にする必要があ り ます。
R R R
CLKFB 入力
DCM へのクロ ッ ク フ ィードバッ ク入力。DFS 出力、CLKFX または CLKFX180 が単独で使用されていない限り、このフ ィード
バッ ク入力が必要です。 CLKFB 入力のソース と しては、 DCMからの CLK0 または CLK2X 出力を使用する必要があ り、 どち
らを使用するかによって CLK_FEEDBACK を 1X または 2Xに設定します。 NONE に設定されている場合は CLKFB は使用
されません。フ ィードバッ ク ポイン トには、内部または外部でク
ロ ッ ク分配ネッ ト ワークに追加される遅延が含まれているのが
理想的です。
R R オプシ ョ ン
RST 入力
非同期リセッ ト入力。 DCM ロジッ クをコンフ ィギュレーシ ョ ン
後のステートに リセッ ト します。 リセッ ト を適用する と、CLKIN入力が再取得され、 DCM がそのクロ ッ クにロ ッ ク されます。
DCM ブロッ ク内で反転できます。 反転しない場合の動作を次に
示します。
0 : 変化なし
1 : DCM ブロ ッ クを リセッ ト します。 CLKIN の 3 サイクル分
High に保持する必要があ り ます。
R R R
PSEN 入力
可変位相シフ ト イネーブル。DCM ブロ ッ ク内で反転させるこ と
ができます。 反転しない場合の動作を次に示します。
0 : 可変位相シフ ト をディ スエーブルにします。 位相シフ トへの
入力は無視されます。
1 : PSCLK ク ロ ッ クの次の立ち上がりエッジで、可変位相シフ ト
をイネーブルにします。
R
PSINCDEC 入力
位相シフ トの増分/減分。DCM ブロ ッ ク内で反転させるこ とがで
きます。 反転しない場合の動作を次に示します。
0 : 可変位相シフ トがイネーブルのときの PSCLK ク ロ ッ クの次
の立ち上がりエッジで、 位相シフ ト値を減分します。
1 : 可変位相シフ トがイネーブルのときの PSCLK ク ロ ッ クの次
の立ち上がりエッジで、 位相シフ ト値を増分します。
R
PSCLK クロ ッ ク
入力
可変位相シフ トのクロ ッ ク入力。可変位相シフ ト動作は、 このク
ロ ッ クの立ち上がりエッジに同期します。
グローバル クロ ッ ク バッファを使用している場合、PSCLK を駆
動 で き る の は、 BUFGMUX_X2Y1、 BUFGMUX_X2Y2、BUFGMUX_X2Y3、 BUFGMUX_X2Y4、 BUFGMUX_X3Y5、BUFGMUX_X3Y6、 BUFGMUX_X3Y7、 BUFGMUX_X3Y8、の上部の 8 つの BUFGMUX のみです。
R
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 59UG382 (v1.3) 2010 年 2 月 22 日
DCM プリ ミテ ィブ
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 クロ ッ ク
出力
CLKDV_DIVIDE 属性によって制御される逓倍されたクロ ッ ク
出力。 CLKDV_DIVIDE 属性が整数の場合、 CLKDV 出力は 50% デューティ サイクルになり ます。
R
CLKFX クロ ッ ク
出力
合成されたクロ ッ ク出力で、 CLKFX_MULTIPLY と CLKFX_DIVIDE 属性によって制御されます。 デューティ サイクルは、
常に 50% に調整されます。 CLKFX または CLKFX180 クロ ッ
ク出力を単独で使用する場合は、 フ ィードバッ クは不要です。 R
CLKFX180 クロ ッ ク
出力
周波数合成クロ ッ ク出力 CLKFX の位相を 180°シフ ト したク
ロ ッ ク出力 (CLKFX の反転出力)。デューティ サイクルは、常に
50% に調整されます。CLKFX または CLKFX180 ク ロ ッ ク出力
を単独で使用する場合は、 フ ィードバッ クは不要です。
R
表 2-5 : DCM_SP ポート (続き)
ポート 方向 説明 DLL PS DFS
FCLKDV
FCLKINCLKDV_DIVIDE-----------------------------------------------=
FCLKFX FCLKINCLKFX_MULTIPLY
CLKFX_DIVIDE--------------------------------------------------------=
60 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
STATUS[0] 出力
可変位相シフ トのオーバーフロー。可変ファイン位相シフ トの制
御出力です。可変位相シフ トが 小値または 大値に達した場合
に出力されます。 大値および 小値は ±255 か、 遅延ラインの
後に達した場合はそれ以下になり ます。
0 : 位相シフ トは 大値または 小値に達していません。
1 : 位相シフ トが 大値または 小値に達しています。
R
STATUS[1] 出力
CLKIN 入力が停止したこ とを示します。 CLKFB フ ィードバッ
ク入力が接続されている場合にのみ有効です。 LOCKED 出力が
アサート されるまで、 リセッ トに保持されます。アクティブにな
るには、CLKIN が 低でも 1 サイクル必要です。CLKIN がト グ
ルしない場合は、 アサート されません。
0 : CLKIN 入力がト グルしています。
1 : CLKIN 入力がト グルされまていません (ロ ッ ク された出力は
High の可能性あ り )。
R
STATUS[2] 出力
CLKFX または CLKFX180 出力が停止したこ とを示します。
0 : CLKFX および CLKFX180 出力はト グルしています。
1 : CLKFX および CLKFX180 出力がト グルしていません (出力
は High の可能性あ り )。
R
STATUS[7:3] 出力予約済み。低消費電力 Spartan-6 FPGA デバイスのリセッ ト回路
をシ ミ ュレーシ ョ ンする と きに使用。
LOCKED 出力
DCM のすべての機能が CLKIN の周波数にロッ ク されているこ
とを示します。 CLKIN が指定の範囲内であればクロ ッ ク出力は
有効です。
0 : CLKIN の周波数にロッ ク されていません。 DCM のクロ ッ ク
出力は無効です。
1 : CLKIN の周波数にロッ ク されています。 DCM のクロ ッ ク出
力は有効です。
1 → 0 : DCM のロ ッ ク状態が解除されました。DCM を リセッ ト
する必要があ り ます。
R R R
PSDONE 出力
可変位相シフ トが完了したこ とを示します。
0 : 位相シフ ト操作が実行されていないか、 位相シフ ト操作を実
行中です。
1 : 位相シフ トが完了しています。 PSCLK の 1 サイクル分 Highになり ます。 次の可変位相シフ トが開始できます。
R
表 2-5 : DCM_SP ポート (続き)
ポート 方向 説明 DLL PS DFS
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 61UG382 (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 です。
整数以外の値を使用する と、 ロ ッ ク されるまでの時間が長くな り、 出力ジッタが大
き くな り ます。
CLKFX_MULTIPLY CLKFX および CLKFX180 出力の周波数を設定する逓倍値を定義します。
CLKFX_DIVIDE 属性と併用します。 設定可能な値は 2 ~ 32 の整数で、 デフォル
ト値は 4 です。
CLKFX_DIVIDE CLKFX および CLKFX180 出力の周波数を設定する分周値を定義します。
CLKFX_MULTIPLY と併用して使用します。 設定可能な値は 1 ~ 32 の整数で、
デフォルト値は 1 です。
FCLKDV
FCLKINCLKDV_DIVIDE-----------------------------------------------=
FCLKFX FCLKINCLKFX_MULTIPLY
CLKFX_DIVIDE--------------------------------------------------------=
FCLKFX FCLKINCLKFX_MULTIPLY
CLKFX_DIVIDE--------------------------------------------------------=
62 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
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 になり ません。
表 2-6 : DCM_SP 属性 (続き)
属性 可能な設定と説明
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 63UG382 (v1.3) 2010 年 2 月 22 日
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 ポートが リ ス ト されています。 各ポートには簡単な説明と信号方向が
記載されています。
CLKIN_DIVIDE_BY_2 CLKIN を DCM ブロ ッ クに入力する前に 2 で 分周します。 アプ リ ケーシ ョ ンに
よっては、 CLKIN_DIVIDE_BY_2 を使用して入力クロ ッ ク周波数を許容範囲に低
減します。
FALSE : デフォルト。 CLKIN を DCM ブロ ッ クに直接入力します。
TRUE : CLKIN を DCM ブロ ッ クに入力する前に 2 で分周し、 デューティ サイク
ルをおよそ 50% にします。高周波数クロ ッ クを使用していて、DCM の入力クロ ッ
ク周波数要件およびデューティ サイクル要件を満たす必要がある場合に有益です。
動作周波数モードを決定し、位相シフ ト範囲を算出する際は、クロ ッ ク周波数を 1/2にして ください。
LOC DCM の物理的な位置を指定します。
表 2-6 : DCM_SP 属性 (続き)
属性 可能な設定と説明
表 2-7 : DCM_CLKGEN ポート
ポート 方向 説明
CLKIN ク ロ ッ ク
入力
DCM へのクロッ ク入力。すべてのファンクシ ョ ンで必須です。CLKIN の周波数とジッ タは、
データシートで指定された範囲内にする必要があ り ます。フ リーランニング オシレータ モー
ドの場合、 ランニング ク ロ ッ クを DCM がロ ッ ク されるまで接続する必要があ り、 その後ク
ロ ッ クを削除できます。ほかのモードでは、フ リー ランニング クロ ッ クを提供および保持す
る必要があ り ます。
RST 入力
非同期リセッ ト入力。 DCM ロジッ クをコンフ ィギュレーシ ョ ン後のステートに リセッ ト し
ます。 リセッ ト を適用する と、 CLKIN 入力が再取得され、 DCM がそのクロ ッ クにロ ッ ク さ
れます。 DCM ブロッ ク内で反転できます。 反転しない場合の動作を次に示します。
0 : 変化なし
1 : DCM ブロ ッ クを リセッ ト します。 CLKIN の 3 サイクル分 High に保持する必要があ り
ます。
64 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
FREEZEDCM 入力CLKIN 入力損失の場合のタップ調整ド リ フ ト を防ぎます。DCM はその後フ リー ランニング
モードにコンフ ィギュレーシ ョ ンされます。
CLKFX ク ロ ッ ク
出力
合成されたクロ ッ ク出力で、 CLKFX_MULTIPLY および CLKFX_DIVIDE 属性によって制
御されます。スタティ ッ クにプログラム、または 4 つの専用ワイヤ SPI ポート (PROGDATA、
PROGCLK、 PROGDONE、および PROGEN) を使用してダイナミ ッ クにプログラムできま
す。 デューティ サイクルは、 常に 50% に調整されます。
CLKFX180 ク ロ ッ ク
出力
周波数合成クロ ッ ク出力 CLKFX の位相を 180°シフ ト したクロ ッ ク出力 (CLKFX の反転出
力)。 デューティ サイクルは、 常に 50% に調整されます。
LOCKED 出力
同期出力は DCM が動作準備完了であるこ とを示します。
0 : DCM のクロ ッ ク出力は無効です。
1 : DCM は準備完了。
1 → 0 : DCM のロ ッ ク状態が解除されました。 DCM を リセッ トする必要があ り ます。
STATUS[1] 出力 STATUS[1] ポートは CLKGEN には使用されません。
STATUS[2] 出力
CLKFX または CLKFX180 出力が停止したこ とを示します。
0 : CLKFX および CLKFX180 出力はト グルしています。
1 : CLKFX および CLKFX180 出力がト グルしていません (出力は High の可能性あ り )。
STATUS[7:3] 出力予約済み。 低消費電力 Spartan-6 FPGA デバイスのリセッ ト回路をシ ミ ュレーシ ョ ンする と
きに使用。
CLKFXDV ク ロ ッ ク
出力
分周した CLKFX 出力クロッ ク。 CLKFXDV_DIVIDE 属性から派生した値で分周します。
CLKFX と CLKFXDV の間の位相アライ メン トはあ り ません。
PROGDONE 出力
M および D のプログラ ミ ングが完了したこ とを示します。
0 : M および D のプログラ ミ ングが行われていないか、 またはプログラ ミ ング中です。
1 : リ クエス ト されたプログラ ミ ング完了。PROGCLK の 1 サイクル分 High になり ます。次
の PROGCLK 操作が開始できます。
PROGDATA 入力DCM の M および D 値のプログラ ミ ングのシ リ アル データ入力。PROGCLK 入力に同期す
る必要があ り ます。
表 2-7 : DCM_CLKGEN ポート (続き)
ポート 方向 説明
FCLKFX FCLKINCLKFX_MULTIPLY
CLKFX_DIVIDE--------------------------------------------------------=
FCLKFXDV
FCLKFXCLKFXDV_DIVIDE-------------------------------------------------------=
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 65UG382 (v1.3) 2010 年 2 月 22 日
DCM プリ ミテ ィブ
表 2-8 には DCM_CLKGEN 属性がリ ス ト されています。すべての属性は設計時に設定し、コンフ ィ
ギュレーシ ョ ン中にプログラムされます。 <ATTRIBUTE>=<SETTING> をデザイン入力ツールに適
した方法で設定します。CLKFX_MULTIPLY および CLKFX_DIVIDE は FPGA アプリケーシ ョ ン
でランタイム時に変更可能です。
PROGEN 入力
M および D 値のプログラ ミ ングが有効になっているかど うかを示します。
0 : CLKFX_MULTIPLY および CLKFX_DIVIDE のプログラ ミ ングが無効になっています。
1 : CLKFX_MULTIPLY および CLKFX_DIVIDE のプログラ ミ ングが有効になっています。
PROGCLK 入力
M および D 値のプログラ ミ ング用クロ ッ ク入力。
グローバル ク ロ ッ ク バッファを使用している場合、 PROGCLK を駆動できるのは、
BUFGMUX_X2Y1、 BUFGMUX_X2Y2、 BUFGMUX_X2Y3、 BUFGMUX_X2Y4、BUFGMUX_X3Y5、 BUFGMUX_X3Y6、 BUFGMUX_X3Y7、 BUFGMUX_X3Y8 の上部
の 8 つの BUFGMUX のみです。
表 2-7 : DCM_CLKGEN ポート (続き)
ポート 方向 説明
表 2-8 : DCM_CLKGEN 属性
属性 可能な設定と説明
CLKFX_MULTIPLY CLKFX および CLKFX180 出力の周波数を設定する逓倍値を定義します。
CLKFX_DIVIDE 属性と併用します。 設定可能な値は 2 ~ 256 の整数で、 デフォルト値は 4 です。
CLKFX_DIVIDE CLKFX および CLKFX180 出力の周波数を設定する分周値を定義します。
CLKFX_MULTIPLY と併用して使用します。設定可能な値は 1 ~ 256 の整数で、デフォル
ト値は 1 です。
52MHz 未満の入力周波数で正し く ロ ッ クするには次の式になり ます。
CLKFXDV_DIVIDE CLKFXDV 出力の周波数を設定する分周値を定義します。 設定可能な値は 2、 4、 8、 16、32 で、 デフォルト値は 2 です。
FCLKFX FCLKINCLKFX_MULTIPLY
CLKFX_DIVIDE--------------------------------------------------------=
FCLKFX FCLKINCLKFX_MULTIPLY
CLKFX_DIVIDE--------------------------------------------------------=
CLKFX_DIVIDEFCLKIN
0.500MHz--------------------------<
FCLKFXDV
FCLKFXCLKFXDV_DIVIDE-------------------------------------------------------=
66 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
DCM_SP 設計のガイド ライン
入力クロック周波数の範囲
DCM のクロ ッ ク入力周波数は、 アプ リ ケーシ ョ ンで DLL、 DFS、 またはその両方が使用されてい
るかによって異なり ます。
Spartan-6 FPGA のデータシートには、 クロ ッ ク入力 (CLKIN)、および DFS と DLL の両方の周波
数範囲が指定されています。 DFS を単独で使用する場合は、 DLL よ り も周波数範囲が広くなり ま
す。DLL および DFS 両方がアプリ ケーシ ョ ンで使用されている場合、DLL の要件はさ らに厳し く
なり ます。表 2-9 には、Spartan-6 FPGA データシートで使用されている入力周波数範囲がまとめら
れています。
CLKFX_MD_MAX M および D 値のダイナミ ッ ク プログラ ミ ングが使用されている場合、 この属性で M およ
び D の 大比が指定されます。 CLKFX_MD_MAX は主にスタティ ッ ク タイ ミ ング解析で
使用されます。 デフォルト値は次のとおりです。
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 を外部ステート マシンに接続して、 スペク ト ラム拡散クロ ッ ク ソースを生成する必要があ り ます。
表 2-8 : DCM_CLKGEN 属性 (続き)
属性 可能な設定と説明
CLKFX_MULTIPLYCLKFX_DIVIDE
--------------------------------------------------------
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 67UG382 (v1.3) 2010 年 2 月 22 日
DCM_SP 設計のガイドライン
出力クロック周波数の範囲
DCM の出力クロ ッ クにも周波数範囲が指定されています。
入力クロックとクロック フ ィードバックの変動
DCM では、安定した単調なクロッ ク入力が求められますが、CLKIN 入力にある程度のクロッ ク ジッ
タ、 そして CLKIN 入力および CLKFB フィードバッ ク入力に多少の周波数変動は許容されます。
CLKIN 入力のジッタには、 次の 2 種類があ り ます。
• サイクル間ジッタ
• 周期ジッタ
サイクル間ジッ タ
サイクル間ジッタは、 あるサイクルと次のサイクルの間での CLKIN 入力周期の変動を示します。
表 2-10 に、 許容される 大サイクル間ジッタ (Spartan-6 FPGA データシート仕様での名前と予測
値) を示します。
周期ジッ タ
も う 1 つのタイプのジッタは周期ジッタで、多数のクロ ッ ク サイクルにわたるク ロ ッ ク周期の変動
を示します。サイ クル間ジッタは、1 つのクロ ッ ク サイクルと次のクロ ッ ク サイクルとの変動を示
しますが、周期ジッタは長時間にわたる周期の変動を示します。表 2-11 に、許容される 大周期ジッ
タ (Spartan-6 FPGA データシート仕様での名前と予測値) を示します。
表 2-9 : 入力クロック周波数の範囲
ファンクシ ョ ン 最小周波数 最大周波数
DFS CLKIN_FREQ_FX_MIN CLKIN_FREQ_FX_MAX
DLL CLKIN_FREQ_DLL_MIN CLKIN_FREQ_DLL_MAX
表 2-10 : 許容される最大サイクル間ジッ タ
ファンクシ ョ ン 周波数範囲
DFS CLKIN_CYC_JITT_FX
DLL CLKIN_CYC_JITT_DLL
表 2-11 : 許容される最大周期ジッ タ
ファンクシ ョ ン周波数範囲
≤150MHz ≥ 150MHz
DFS CLKIN_PER_JITT_FX_LF CLKIN_PER_JITT_FX_HF
DLL CLKIN_PER_JITT_DLL_LF LKIN_PER_JITT_DLL_HF
68 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
DLL のフ ィードバッ ク遅延の変動
DCM の安定性には、DLL で使用されるクロ ッ ク フ ィードバッ ク パスも関係します。フ ィードバッ
ク パスの遅延の変動は、 表 2-12 に示す範囲内である必要があ り ます。 オンチップでの変動は、 グ
ローバル ク ロ ッ ク ラインに接続している場合は 小限なので、 この制限は外部フィードバッ ク パスにのみ適用されます。
スペク ト ラム拡散クロック
DCM には一般的なスペク ト ラム拡散クロ ッ クを入力できます。グローバル クロ ッ クを FPGA 内部
ロジッ クに駆動するため、DCM の DLL 部分によ り、一般的なスペク ト ラム拡散クロ ッ クで生成さ
れた周波数の変動が認識されます。スペク ト ラム拡散クロ ッ クは、データシートにある DLL 入力要
件を満たす必要があ り ます。 DLL の推奨動作条件 (Recommended Operating Conditions for theDLL) の表で [入力クロ ッ ク ジッ タ耐性および遅延パス偏差] (Input Clock Jitter Tolerance andDelay 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 属性で制御します。
表 2-12 : 外部フ ィードバック パス遅延の変動
仕様 説明
CLKFB_DELAY_VAR_EXT オフチップ CLKFB フ ィードバッ ク パスに許容される
大変動
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 69UG382 (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 は同じ リセッ ト信号を共有しています。
DCM のロ ッ ク状態が解除される と、自動的にロ ッ ク状態に戻るこ とはあ り ません。DCM のロ ッ ク
が解除された場合は (LOCKED が High から Low になる)、 RST 入力をアサート して DCM を リ
セッ トするなど、 FPGA アプリケーシ ョ ンで適切な操作を実行する必要があ り ます。
LOCKED 信号の使用
DCM を正し く動作させるには、安定した単調なクロ ッ ク入力が必要です。DCM がロ ッ ク状態にな
る と、 Spartan-6 FPGA データシートで指定されている値までのクロ ッ ク周期の変動は許容されま
す。 しかし、たとえば、CLKIN がト グルしな くなった場合など、 ク ロ ッ クが指定範囲内を超えてし
まっている、LOCKED 出力が High になったままである、そして DCM 出力が無効である可能性が
あ り ます。 そのため、 LOCKED および STATUS 信号の両方を監視するこ とを推奨します。
X-Ref Target - Figure 2-4
図 2-4 : LOCKED 出力の動作
Y
N
Y
N
ug382_c2_04_120408
70 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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ゲートに接続します。
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 と使用する と きは、 正し く動作させるためにロ
ジッ クを追加する必要があ り ます。 この追加回路によ り、 一部の信号名が変更されます。
X-Ref Target - Figure 2-5
図 2-5 : Spartan-6 FPGA DCM DFS ロック ロジック
RESET LOCKED
STATUS[2]
DCM_SP
OR
AND
DCM_RESET
CLKFX_STOPPEDDCM_LOCKED
ug382_c2_05_051209
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 71UG382 (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 はマスタ と スレーブの関
係とその接続を示したものです。
72 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
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 サイクルです。
X-Ref Target - Figure 2-6
図 2-6 : DCM_CLKGEN M および D のプログラ ミング インターフェイス
FrequencyCLKFX = FrequencyCLKIN x
DCM_CLKGEN(#0)
DCM_CLKGEN(#1)
DCM_CLKGEN(#2)
UG382_c2_06_051209
DCM2_SEL
DCM1_SEL
DCM0_SEL
PROGCLK
M_D_VALUE
PROGEN
PROGCLKCLKIN
CLKFX
CLKIN0
CLKFX0
CLKIN
CLKFX
CLKIN1
CLKFX1
CLKIN
CLKFX
CLKIN2
CLKFX2
PROGDATA
PROGDONE
LOCKED
PROGEN
PROGCLK
PROGDATA
PROGDONE
LOCKED
PROGEN
PROGCLK
PROGDATA
PROGDONE
LOCKED
DCM0_DONE
DCM0_LOCKED
DCM1_DONE
DCM1_LOCKED
DCM2_DONE
DCM2_LOCKED
MD
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 73UG382 (v1.3) 2010 年 2 月 22 日
DCM_CLKGEN 設計のガイドライン
出力が PLL を駆動しているダイナミ ッ ク周波数合成に DCM_CLKGEN が使用されている場合、
PLL の VCO 範囲も考慮する必要があ り ます。 DCM_CLKGEN では幅広い範囲の出力周波数がサ
ポート されています。PLL セッ ト アップに関連した VCO 周波数が PLL の VCO 範囲外でないこ と
を確認するためすべての周波数をチェッ クする必要があ り ます (第 3 章 の 「周波数合成のみ」 )。
X-Ref Target - Figure 2-7
図 2-7 : DCM_CLKGEN の M および D コンフ ィギュレーシ ョ ンのタイ ミング波形
PROGCLK
PROGEN
PROGDATA
PROGDONE
LOCKED
LoadD
“D–1” (2 = 00000010)
“M–1” (13 = 00001101)
LoadM
GAP
Go
UG382_c2_07_061109
GAP
74 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
スペク ト ラム拡散クロック生成
スペク ト ラム拡散クロ ッ ク生成 (SSCG) は、 エレク ト ロニクス デバイスで生成される EMI のスペ
ク トル密度を低減するためその製造者の間で広く使用されています。EMI 放出レベルは、近接する
ほかの電子デバイスの動作に影響を与えるレベル以下に抑える必要があ り ます。 たとえば、 電話が
ビデオ ディ スプレイの隣にあっても通話の質が落ちるよ うなこ とがあってはなり ません。 同様に、
ディ スプレイ も電話使用中に影響を受けるよ う なこ とがないよ うにしなければなり ません。
電磁適合性 (EMC) に関する規制は、 こ う した電磁妨害を引き起こすノ イズや EMI を抑制するため
のものです。EMC 要件に適合させるための一般的手段と しては、高額なシールド、フェライ ト ビー
ズ、 チョークなどを追加する方法があ り ます。 こ う した方法は、 PCB の配線を複雑にしたり、製品
開発サイクルが長くなるなどして、 終製品のコス トに影響する可能性があ り ます。
SSCG は、 電磁エネルギーを幅広い周波数帯域に拡散させ、 狭い周波数の幅の中で計測された電磁
界強度を効果的に抑制します。ある周波数でのピーク電磁エネルギーは SSCG 出力をモジュール化
するこ とで低減されます。
SSCG は通常次のパラ メータで定義されます。
• 周波数偏差、 つま り入力周波数の割合
• モジュレーシ ョ ン周波数
• 拡散タイプ : 上方/下方/中央
• 三角形など、 モジュレーシ ョ ンのプロファ イル
通常スペク ト ラム拡散クロ ッ クは 75MHz (入力周波数)、±2.0% の中央拡散、および 75KHz の三角
形モジュレーシ ョ ンと定義されます。 図 2-8 は、 中央および下方拡散タイプのパラ メータ定義を示
したものです。
スペク ト ラム拡散生成
Spartan-6 FPGA は標準固定周波数オシレータからスペク ト ラム拡散クロ ッ クを生成できます。 こ
の生成には、 DCM_CLKGEN で、 単純なインプ リ メンテーシ ョ ンには固定スペク ト ラム拡散ソ
リ ューシ ョ ン、複雑な場合は、DCM_CLKGEN を継続的に再プログラムする追加ロジッ クを必要と
するソフ ト スペク ト ラム拡散ソ リ ューシ ョ ンが使用されます。詳細は表 2-13 を参照して ください。
X-Ref Target - Figure 2-8
図 2-8 : 一般パラメータを定義した 2 タイプのスペク ト ラム拡散クロック
+2.0% ±2.0%
–2.0%
–4.0%
–4.0%
UG382_c2_08_051209
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 75UG382 (v1.3) 2010 年 2 月 22 日
DCM_CLKGEN 設計のガイドライン
固定スペク ト ラム拡散
スペク ト ラム拡散の も簡単なインプ リ メン トには DCM_CLKGEN プリ ミ ティブの固定モード (図 2-9) を使用します。
SPREAD_SPECTRUM = < CENTER_LOW_SPREAD,CENTER_HIGH_SPREAD>
固定モードを使用する と、DCM_CLKGEN で自動的にスペク ト ラム拡散クロッ クが生成されます。
モジュレーシ ョ ン周波数は入力周波数に基づいています (モジュレーシ ョ ン周波数 = 入力周波数
/1024)。
ソフ ト スペク ト ラム拡散
下方拡散モジュレーシ ョ ンが必要なアプリケーシ ョ ンの場合、 DCM_CLKGEN ではプログラ ミ ン
グ値を切り替えるレート を制御するため、 3 つあるスペク ト ラム拡散モードのうちの 1 つが使用さ
れます。 小型のカウンタ ベースのステート マシンは三角のスペク ト ラム拡散クロ ッ ク ソースを提
供するための DCM_CLKGEN を制御するこ とができます (図 2-10)。
CM_CLKGEN にはソフ ト スペク ト ラム拡散用の外部ステート マシンが必要になるため、
PROGCLK および PROGDATA をロジッ クに接続できないと、 DRC エラーが発生します。
表 2-13 : DCM_CLKGEN スペク ト ラム拡散モード
スペク ト ラム拡散値 固定スペク ト ラム拡散モード ソフ ト スペク ト ラム拡散モード
SPREAD_SPECTRUM 値CENTER_LOW_SPREADCENTER_HIGH_SPREAD
VIDEO_LINK_M0、VIDEO_LINK_M1、 VIDEO_LINK_M2
追加ロジッ ク なし SOFT_SS
モジュレーシ ョ ン プロファ イル 三角 三角
拡散方向 中央 下方
拡散範囲 固定 図を参照
FMOD FIN/1024 図を参照
CLKFX_MULTIPLY 2 ~ 32 7
CLKFX_DIVIDE 1 ~ 4 2、 4
DCM_CLKGEN プログラ ミ ング ポート
なしPROGCLK、 PROGEN、 PROGDATA、
PROGDONE
X-Ref Target - Figure 2-9
図 2-9 : 固定スペク ト ラム拡散
DCM_CLKGENCLOCK CLKFX
LOCK
RESET
CLKIN
RST
PROGCLK
PROGEN
PROGDATA
FREEZEDCM
CLKFX
CLKFX180
CLKFXDV
LOCKED
STATUS[2:1]
PROGDONE
SPREAD_SPECTRUM = <CENTER_LOW_SPREAD / CENTER_HIGH_SPREAD>
ug382_02_10_120809
76 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
典型的なビデオ リ ンク アプリ ケーシ ョ ンには 7:1 のシ リアル化が必要です。IOSERDES2 を使用す
る と、 クロ ッ ク生成に DCM_CLKGEN および PLL の両方が必要になり ます。 DCM_CLKGEN は通常 M = 7 および D = 2 でスペク ト ラム拡散クロ ッ ク ソースを生成します。高速 I/O ク ロ ッ ク ネッ
ト ワークにアクセスするには、PLL で BUFPLL を使用した SDR ク ロ ッキングに必要なクロ ッ ク周
波数までクロ ッ クが逓倍されます (図 2-11)。
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 に変更する必要があ り ます。
X-Ref Target - Figure 2-10
図 2-10 : ソフ ト スペク ト ラム拡散
DCM_CLKGENCLOCK
CLKFX
LOCK
RESET
CLKIN
RST
PROGCLK
PROGEN
PROGDATA
FREEZEDCM
CLKFX
BUFG
CLKFX180
CLKFXDV
LOCKED
STATUS[2:1]
PROGDONE
SSCLKGENCLK
RST
SS_CLK
SS_LOCK_IN
PROGDONE
PROGEN
PROGDATA
SPREAD_SPECTRUM =<VIDEO_LINK_M0 / VIDEO_LINK_M1 /VIDEO_LINK_M2>
ug382_c2_11_120809
X-Ref Target - Figure 2-11
図 2-11 : 下方向のスペク ト ラム拡散の VIDEO_LINK セッ トアップ (20 ~ 107 MHz) (FIN × 3.5 < CLKOUT_FREQ_FX の場合)
DCM_CLKGENBUFPLL
CLKIN CLKIN
RST
PROGCLK
PROGEN
PROGDATA
FREEZEDCM
CLKFX BUFG
CLKFX180
CLKFXDV
LOCKED
STATUS[2:1]
PROGDONE
PLL_BASECLKIN
CLKFBIN
RST
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
LOCKED
LOCKED
PLLIN
GCLK LOCK
IOCLK
SERDESSTROBE
CLKFX_MULTIPLY = 7;CLKFX_DIVIDE = 2;SPREAD_SPECTRUM= [VIDEO_LINK_M0 / VIDEO_LINK_M1 /VIDEO_LINK_M2]
DIVCLK_DIVIDE = 1;CLKFBOUT_MULT = 2;
ug382_c2_12_120809
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 77UG382 (v1.3) 2010 年 2 月 22 日
DCM_CLKGEN 設計のガイドライン
図 2-12 を参照して ください。 これは VIDEO_LINK_M1 を必要とするモジュレーシ ョ ン周波数を
スローダウンさせます。
フリーランニング オシレータ
DCM_CLKGEN を使用し、 LOCKED 出力ピンを FREEZEDCM 入力ピンに接続してク ロ ッ ク
ソースを生成できます。 このモードで DCM を使用する場合は開始を促すメカニズムが必要です。
DCM では、 クロ ッ クを常に実行する代わりに DCM がロ ッ ク状態になるまで安定したレートで信
号を ト グルできます。 図 2-13 はその例です。
CLKFX ピンに確定的な周波数出力を得るには、 DCM がロッ ク状態になるまで CLKIN を安定した
速度でト グルし続ける必要があり ます。その後、CLKIN は不要になるので削除してもかまいません。
DCM_CLKGEN は同じ周波数で実行し続けます。温度または電圧レベルが変動する と、周波数も変
動します。周波数ド リ フ ト内での 大周波数を反映させるよ う タイ ミ ング制約を調整して ください。
新しいク ロ ッ ク入力が適用される と、 リセッ ト をアサートする必要があ り ます。
X-Ref Target - Figure 2-12
図 2-12 : 下方向のスペク ト ラム拡散の VIDEO_LINK セッ トアップ (FIN > 107 MHz の場合)
DCM_CLKGENBUFPLL
CLKIN CLKIN
RST
PROGCLK
PROGEN
PROGDATA
FREEZEDCM
CLKFX BUFG
CLKFX180
CLKFXDV
LOCKED
STATUS[2:1]
PROGDONE
PLL_BASECLKIN
CLKFBIN
RST
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
LOCKED
LOCKED
PLLIN
GCLK LOCK
IOCLK
SERDESSTROBE
CLKFX_MULTIPLY = 7;CLKFX_DIVIDE = 4;SPREAD_SPECTRUM= [VIDEO_LINK_M0 / VIDEO_LINK_M1 /VIDEO_LINK_M2]
DIVCLK_DIVIDE = 1;CLKFBOUT_MULT = 4;
ug382_c2_13_120809
X-Ref Target - Figure 2-13
図 2-13 : フリー ランニング オシレータのセッ トアップ
UG382_c2_14_120809
DCM_CLKGEN
CLKINFPGA
FCLKFX = FCLKIN x
CLKFX_MULTIPLY = ?CLKFX_DIVIDE = ?
CLKFX_MULTIPLY
LOCKED
CLKFX
FREEZEDCM
CLKFX_DIVIDE
78 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 2 章 : クロック マネージメン ト テク ノロジ
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 79UG382 (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 からの出力はスペク ト ラム拡散ではあ り ません。
80 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 3 章 : 位相ロック ループ (PLL)
X-Ref Target - Figure 3-1
図 3-1 : Spartan-6 FPGA CMT のブロック図
PLL
CLKOUT[5:0] PLL_CLKOUT
DCM1_CLKO
DCM2_CLKO
CLKIN
CLKFB
CLKOUT[9:0]
CLKIN
CLKFB
CLKOUT[9:0]
CLKIN
CLKFB
DCM210
DCM1
ug382_c
10
6
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 81UG382 (v1.3) 2010 年 2 月 22 日
概要
PLL に関連付けられた高速 SDR クロ ッ ク レート をサポートするには、 各 BUFPLL を限定数の
PLL ロケーシ ョ ンに直接配線します。表 3-1 は各 BUFPLL に接続可能な PLL ロケーシ ョ ンの一覧
です。
表 3-1 : BUFPLL に直接接続可能な PLL
BUFPLL ロケーシ ョ ン バンク
デバイス別の有効な PLL ロケーシ ョ ン
LX4、 LX9、 LX16、LX25/LX25T LX45/LX45T
LX75/LX75TLX100/LX100TLX150/LX150T
BUFPLL_X1Y5BUFPLL_X1Y4BUFPLL_MCB_X1Y9
0PLL_ADV_X0Y1PLL_ADV_X0Y0
PLL_ADV_X0Y3PLL_ADV_X0Y2PLL_ADV_X0Y1PLL_ADV_X0Y0
PLL_ADV_X0Y5PLL_ADV_X0Y3PLL_ADV_X0Y2PLL_ADV_X0Y0
BUFPLL_X0Y2BUFPLL_X0Y3BUFPLL_MCB_X0Y5
1 (5)PLL_ADV_X0Y1PLL_ADV_X0Y0
PLL_ADV_X0Y3PLL_ADV_X0Y2PLL_ADV_X0Y1PLL_ADV_X0Y0
PLL_ADV_X0Y5PLL_ADV_X0Y3PLL_ADV_X0Y2PLL_ADV_X0Y0
BUFPLL_X1Y0BUFPLL_X1Y1BUFPLL_MCB_X1Y5
2PLL_ADV_X0Y1PLL_ADV_X0Y0
PLL_ADV_X0Y3PLL_ADV_X0Y2PLL_ADV_X0Y1PLL_ADV_X0Y0
PLL_ADV_X0Y5PLL_ADV_X0Y3PLL_ADV_X0Y2PLL_ADV_X0Y0
BUFPLL_X2Y2BUFPLL_X2Y3BUFPLL_MCB_X2Y5
3 (4)PLL_ADV_X0Y1PLL_ADV_X0Y0
PLL_ADV_X0Y3PLL_ADV_X0Y2PLL_ADV_X0Y1PLL_ADV_X0Y0
PLL_ADV_X0Y5PLL_ADV_X0Y3PLL_ADV_X0Y2PLL_ADV_X0Y0
82 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 3 章 : 位相ロック ループ (PLL)
位相ロック ループ (PLL)Spartan-6 FPGA デバイスには 大 6 個の CMT タイルが含まれます。広範囲の周波数合成と、DCMと併用した外部または内部クロ ッ クのジッ タ フ ィルタが、 PLL の主な機能です。
図 3-2 は 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 のフ ィードバッ ク ク ロ ッ クを制御し、 広範囲の周波数合成を可能にします。
X-Ref Target - Figure 3-2
図 3-2 : Spartan-6 FPGA PLL のブロック図
Clock Pin
D
M
PFD CP LF VCO O0
O1
O2
O3
O4
O5
ug382_3_02_051209
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 83UG382 (v1.3) 2010 年 2 月 22 日
概要
X-Ref Target - Figure 3-3
図 3-3 : PLL ブロック詳細図 : CLK_FEEDBACK = CLKFBOUT
D
M8
PFDCLKIN1CLKIN2
CLKFBIN
CLKFBOUT
CP LF VCO O0
O1
O2
O3
ug382_c3_03a_020510
O4
O5
X-Ref Target - Figure 3-4
図 3-4 : PLL ブロック詳細図 : CLK_FEEDBACK = CLKOUT0
D
M
PFDCLKIN1CLKIN2
CLKFBIN
CP LF VCO
8-phasetaps
O0
O1
O2
O3
ug382_c3_04new_021110
O4
O5
84 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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 に接
続できます。
CLKOUT0 からの専用フ ィードバッ クを使用する と、 出力カウンタ CLKOUT0_DIVIDE が VCO周波数に影響を与えます。
式 3-1
入力の配線を正確にスキュー調整するには、BUFIO2FB バッファを 49 ページの図 1-33 に示すよ う
に使用する必要があ り ます。BUFIO2FB は BUFIO2 バッファ と一致しており、スキュー調整を 1 つの DCM に制限しています。
X-Ref Target - Figure 3-5
図 3-5 : CLKOUT0 フ ィードバックを使用した PLL
PLL
ILOGIC
I/OInput
CLK_FB
CLKOUT0
CLKFBOUT
CLKOUT0_DIVIDE
CLK_FEEDBACK = CLKOUT0
CLK_REF or CLKIN
Clock Input
BUFPLL
BUFIO2FB
CLKMX
BUFIO2
ug382_c3_xx_060209
M
D
fVCO
fIN M× CLKOUT0_DIVIDE×D
----------------------------------------------------------------------------------=
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 85UG382 (v1.3) 2010 年 2 月 22 日
概要
CLK_FEEDBACK = CLKOUT0 を使用する と、CLKFBIN の周波数を PFD の周波数と異なる値に
設定できます。 CLK_FEEDBACK = CLKOUT0 を設定する と きは、 PFD によ り入力クロ ッ ク (式 3-2) の周波数とフ ィードバッ ク ク ロ ッ クの周波数が一致するので注意して ください。
式 3-2
CLK_FEEDBACK = CLKFBOUT のと き、CLKFBOUT (式 3-3) の周波数は、PFD のフ ィードバッ
ク周波数に一致します。
式 3-3
式 3-4
CLK_FEEDBACK = CLKOUT0 のと き、CLKOUT0 (式 3-5) の出力周波数は CLKFB_MULT に従
いフ ィードバッ ク周波数と異なる値に設定できます。 図 3-4 に示すよ うに CLKOUT0 の周波数は
CLKFB_MULT で除算され、 CLKFB_MULT (式 3-6) に依存した PFD 周波数になり ます。
式 3-5
式 3-6
式 3-5 では、 CLKOUT0 の出力周波数を VCO 周波数と異なる値に設定できます。
FPFD_CLKINFCLKIN
DIVCLK_DIVIDE--------------------------------------------=
FCLKFBOUT
FVCO
CLKFBOUT_MULT-------------------------------------------------------=
FPFD_CLKFBOUT FCLKFB=
FCLKOUT0
FVCO
CLKOUT0_DIVIDE------------------------------------------------------=
FPFD_CLKOUT0
FCLKOUT0
CLKFB_MULT-----------------------------------------=
86 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 3 章 : 位相ロック ループ (PLL)
一般的な使用法について
PLL プリ ミテ ィブ
図 3-6 は、 Spartan-6 FPGA の PLL プリ ミ ティブ、 PLL_BASE および PLL_ADV の図です。
PLL_BASE プリ ミテ ィブ
PLL_BASE プリ ミ ティブは、スタンドアロンの PLL で も頻繁に使用される機能を提供します。ク
ロ ッ ク スキュー調整、周波数合成、 コース位相シフ ト、およびデューティ サイクル調整機能が使用
可能です。 表 3-2 にはポートが リ ス ト されています。
X-Ref Target - Figure 3-6
図 3-6 : PLL プリ ミテ ィブ
CLKIN
CLKFBIN
RST
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
LOCKED
PLL_BASE
ug382_c3_05_080309
CLKIN1
CLKIN2
CLKFBIN
CLKINSEL
RST
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
CLKOUTDCM0
CLKOUTDCM1
CLKOUTDCM2
CLKOUTDCM3
CLKOUTDCM4
CLKOUTDCM5
CLKFBDCM
LOCKED
PLL_ADV
表 3-2 : PLL_BASE ポート
説明 ポート
ク ロ ッ ク入力 CLKIN、 CLKFBIN
制御入力 RST
ク ロ ッ ク出力 CLKOUT0 ~ CLKOUT5、 CLKFBOUT
ステータスおよびデータ出力 LOCKED
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 87UG382 (v1.3) 2010 年 2 月 22 日
一般的な使用法について
PLL_ADV プリ ミテ ィブ
PLL_ADV プリ ミ ティブは PLL_BASE の持つ機能をすべて提供します。 この資料には PLL_ADVは参照のため記載されています。 このプ リ ミ ティブはデバイスをターゲッ ト し直す場合に使用でき
ますが、ほとんどの場合は PLL_BASE プリ ミ ティブやクロッ ク ウ ィザードを使用します。表 3-3 にはポートが リ ス ト されています。
Spartan-6 FPGA の PLL は信号が混在するブロ ッ クで、 ク ロ ッ ク ネッ ト ワークのスキュー調整、周
波数合成、 およびジッタ低減をサポートするためのものです。 これら 3 つの動作モードの詳細は後
述します。 VCO の動作周波数は、 次の関係によって決定されます。
CLK_FEEDBACK = CLKFBOUT を式 3-7で示します。
式 3-7
CLK_FEEDBACK = CLKOUT0 を式 3-8 で示します。
式 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 に示すよ うに使用する必
要があ り ます。
表 3-3 : PLL_ADV ポート
説明 ポート
ク ロ ッ ク入力 CLKIN1、 CLKIN2、 CLKFBIN
制御入力およびデータ入力 RST、 CLKINSEL
ク ロ ッ ク出力 CLKOUT0 ~ CLKOUT5、 CLKFBOUT CLKOUTDCM0 ~ CLKOUTDCM5、 CLKFBDCM
ステータスおよびデータ出力 LOCKED
FVCO FCLKINMD-----×=
FVCO FCLKINM O×
D----------------×=
FOUTFVCO
O--------------=
88 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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 のクロ ッ ク (その他のグルー ロジッ ク用)
この例では、 リ ファレンス クロ ッ ク と出力クロ ッ ク間の位相が関連している必要はあ り ませんが、
出力クロ ッ ク間の位相は一致している必要があ り ます。
ジッ タ フ ィルタ
PLL は、常にリ ファレンス クロ ッ ク上のジッタを低減する機能があ り ます。PLL は、別のブロ ッ ク
(DCM を含む) が駆動される前に外部クロ ッ クからジッ タをフ ィルタするため、 単独のファンク
シ ョ ンと してインスタンシエートできます。ジッ タ フ ィルタ と して使用する場合、PLL はバッファ
のよ うに動作し、 入力周波数と同一周波数の出力を再生成します (FIN = 100MHz、FOUT = 100MHz など)。 一般的に、 PLL の BANDWIDTH 属性を Low に設定する と、 よ り大きな
ジッタ フ ィルタ機能が作成できます。 ただし、 BANDWIDTH を Low に設定する と PLL のスタ
ティ ッ ク オフセッ トが増加する可能性があ り ます。
制限
PLL には順守すべきいくつかの制限があ り ます。PLL の電気的仕様は、Spartan-6 FPGA データシー
トに記載されています。主な制限には、VCO 動作範囲、入力周波数、デューティ サイクルのプログ
ラム、 位相シフ トがあ り ます。
X-Ref Target - Figure 3-7
図 3-7 : 周波数合成器としての PLL
TXUSERCLK/RXUSERCLK
ug382_c3_05_051209
O4 =
O2 = 8
O3 =10
M = 5
O5 =
O1 = 4
D = 1 PFD, CP,LF, VCO
O0 = 2
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 89UG382 (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
90 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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 値の決定に使用する制約は次の式で表されます。
式 3-10
式 3-11
式 3-12
式 3-13
M および D 値の決定
入力周波数が決定する と、 M および D 値がある程度決ま り ます。 次のステップでは、 適な M および D 値を決定します。 まず M の開始値を決定します。 この値は、 VCO ターゲッ ト周波数、つま
り VCO の理想的な動作周波数に基づいて決定します。
式 3-14
こ こでは、VCO の理想周波数に も近くなる M 値を決定します。プロセスの開始には D の 小値
が使用されます。 ƒ VCO を可能な限り高く保持しながら、 D および M の 小値を決定します。
PLL ポート
表 3-4 は PLL ポートが、 表 3-5 に PLL 属性がリ ス ト されています。
DMIN roundupfIN
fPFD MAX-----------------------=
DMAX rounddownfIN
fPFD MIN----------------------=
MMIN roundupfVCOMIN
fIN----------------------⎝ ⎠
⎛ ⎞ DMIN×=
MMAX rounddownDMAX fVCOMAX×
fIN----------------------------------------------=
MIDEALDMIN fVCOMAX×
fIN--------------------------------------------=
表 3-4 : PLL ポート
ピン名 I/O 説明
CLKIN 入力 一般的なクロ ッ ク入力
CLKIN1 入力 再ターゲッ トに使用する PLL_ADV ピンです。 一般的なクロ ッ ク入力。
CLKIN2 入力 再ターゲッ トに使用する PLL_ADV ピンです。 セカンダ リ クロ ッ ク入力。
CLKFBIN 入力 フ ィードバッ ク ク ロ ッ ク入力
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 91UG382 (v1.3) 2010 年 2 月 22 日
一般的な使用法について
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 ピンがこの目的で使用されている場合、ソフ ト ウェ
アで自動的に正しいポートにマップされます。
LOCKED 出力
PLL からの非同期出力で、あらかじめ指定された PPM 範囲内にある周波数が得られた
こ と と、指定ウ ィンド ウ内の位相アライ メン トが完了したこ とを示します。PLL は電源
投入後に自動的にロッ ク状態になるので、余分な リセッ トは不要です。入力クロ ッ クが
停止した場合、 または位相アライ メン トに違反があった場合 (入力クロ ッ ク位相シフ ト
など)、LOCKED がディアサート されます。PLL は LOCKED がディアサート された後
にリセッ トする必要があ り ます。
DO[15:0] 出力 PLL_ADV ピンはサポート されていません。
DRDY 出力 PLL_ADV ピンはサポート されていません。
メモ :
1. CLKOUTN および CLKOUTDCMN は同じ出力カウンタを使用しており、 個別に動作させるこ とはできません。
表 3-4 : PLL ポート (続き)
ピン名 I/O 説明
92 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 3 章 : 位相ロック ループ (PLL)
PLL 属性
表 3-5 : PLL 属性
属性 タイプ 値 デフォルト 説明
COMPENSATION 文字列 SYSTEM_SYNCHRONOUS
SOURCE_SYNCHRONOUS
EXTERNAL
SYSTEM_SYNCHRONOUS
入力クロ ッ クの PLL の位相補正を指定
します。SYSTEM_SYNCHRONOUS では、ホールド タイムが 0 になるよ う、す
べてのクロ ッ ク遅延を補正しよ う と しま
す。 ク ロ ッ クはデータ と共に送信される
ため、クロ ッ クで位相調整される と きに、
SOURCE_SYNCHRONOUS が使用さ
れます。
EXTERNAL は FPGA 外部のクロ ッ ク
を配線するこ とで補正する と きに使用し
ます。
次の追加属性が ISE で自動的に選択され
ます。
INTERNALDCM2PLLPLL2DCM
BANDWIDTH 文字列 HIGHLOW
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 整数 1 ~ 64 1 異なる周波数を使用する必要がある場
合、 すべての CLKOUT ク ロ ッ ク出力の
逓 倍 値 を 指 定 し ま す。 関 連 す る
CLKOUT#_DIVIDE と DIVCLK_DIVIDE との組み合わせで、 この出力周
波数を決定します。
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 93UG382 (v1.3) 2010 年 2 月 22 日
一般的な使用法について
PLL クロック入力信号
PLL ク ロ ッ クのソースには次のものがあ り ます。
• IBUFG : グローバル ク ロ ッ ク入力バッファ。 PLL はこのパスの遅延を補正します。
• BUFG : 内部グローバル クロ ッ ク バッファ。 PLL はこのパスの遅延を補正しません。
• IBUF : PLL ではローカル配線の遅延を補正できないため、 このバッファの使用は推奨しませ
ん。 IBUF クロ ッ ク入力は、 PLL に配線する前に BUFG に配線する必要があ り ます。
• DCMOUT : PLL への DCM 出力すべてがこのパスの遅延を補正します。
DIVCLK_DIVIDE 整数 1 ~ 52 1 入力クロ ッ ク とすべての出力クロ ッ クの
分周比を指定します。
CLKFBOUT_PHASE 実数 0.0 ~ 360.0 0.0 クロ ッ ク フ ィードバッ ク出力の位相オ
フセッ ト を度数で指定します。 フ ィード
バッ ク ク ロ ッ クをシフ トするこ とによ
り、すべての出力クロ ッ クは PLL に対し
て負の方向に位相シフ ト します。
REF_JITTER 実数 0.000 ~ 0.999 0.100 PLL のパフォーマンスを一層 適化す
るよ う、 リ ファレンス ク ロ ッ ク上のジッ
タ期待値を指定できます。 バンド幅の設
定が OPTIMIZED に設定されている場
合、 ジッ タ値が不明のと き入力クロ ッ ク
の 適パフォーマンスが選択されます。
ジッ タ値がわかっている と きは、 入力ク
ロ ッ ク上のジッタ期待値を UI パーセン
テージ ( 大 Peak to Peak 値) で指定す
る必要があ り ます。
CLKIN1_PERIOD 実数 1.408 ~ 52.630 0.000 PLL CLKIN1 入力に対する入力周期を
ns で指定します。 単位は ps まで細かく
指定可能です。 この値は必ず指定する必
要があ り ます。
CLKIN2_PERIOD 実数 1.408 ~ 52.630 0.000 PLL CLKIN2 入力に対する入力周期を
ns で指定します。 単位は ps まで細かく
指定可能です。 この値は必ず指定する必
要があ り ます。
CLK_FEEDBACK 文字列 CLKFBOUT または CLKOUT0
CLKFBOUT CLKFB_IN を駆動するためのクロ ッ ク
ソースを指定します。フ ィードバッ ク リソースの使用および VCO 周波数の算出
については 84 ページの図 3-5 を参照し
て ください。
RESET_ON_LOSS_OF_LOCK
文字列 FALSE FALSE FALSE に設定する必要があ り ますが、デ
バイスではサポート されていません。
表 3-5 : PLL 属性 (続き)
属性 タイプ 値 デフォルト 説明
94 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 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
図 3-8 : 出力カウンタでのクロック合成の例
Counter Clock Input(VCO)
DIVIDE = 2DUTY_CYCLE = 0.5
PHASE = 0
DIVIDE = 2DUTY_CYCLE = 0.5
PHASE = 180
DIVIDE = 2DUTY_CYCLE = 0.75
PHASE = 180
DIVIDE = 1DUTY_CYCLE = 0.5
PHASE = 0
DIVIDE = 1DUTY_CYCLE = 0.5
PHASE = 360
DIVIDE = 3DUTY_CYCLE = 0.33
PHASE = 0
DIVIDE = 3DUTY_CYCLE = 0.5
PHASE = 0
ug382_c3_07_080309
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 95UG382 (v1.3) 2010 年 2 月 22 日
VCO および出力カウンタの波形
クロック シフ ト
リ ファレンスまたはフ ィードバッ ク パスのいずれかで、8 つの位相から 1 つを選択するこ とによっ
て遅延を挿入し、PLL 出力クロ ッ クはシフ トできます。図 3-9 は、PLL の出力でのクロ ッ ク信号エッ
ジへの影響を示します。こ こでは、シフ トがない場合、フ ィードバッ ク パスに遅延を挿入した場合、
リ ファレンス パスに遅延を挿入した場合を示しています。
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 などさま
ざまなク ロ ッ ク出力間で、 ある位相関係の維持が重要となるデザインでは、 入力クロ ッ ク周波数に
かかわらず、 この関係は保持されます。
X-Ref Target - Figure 3-9
図 3-9 : 基本的な出力クロックのシフ ト
DT reference
DT feedback
ug382_c3_07_051209
96 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 3 章 : 位相ロック ループ (PLL)
すべての 「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)。
X-Ref Target - Figure 3-10
図 3-10 : VCO 位相の選択
0°
45°
90°
135°
180°
225°
270°
315°
O0
O1
O2
O3
ug382_c3_09_080309
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 97UG382 (v1.3) 2010 年 2 月 22 日
PLL の使用モデル
フ ィードバッ クのインプ リ メン トにはいくつかの制限があ り ます。 CLKFBOUT 出力は、 フ ィード
バッ ク ク ロ ッ ク信号と しても使用できます。まず、基本的な制限ですが、PFD への 2 つの入力周波
数は同一でなければなり ません。 したがって、 次の関係を満たす必要があ り ます。
式 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-11
図 3-11 : 2 つの BUFG を使用するクロック スキュー調整
CLKIN1
CLKFBIN
RST
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
PLL
IBUFG
1 2 4 5
3
BUFG
BUFG
To Logic
6
UG382_c3_10_080309
6
5
4
3
2
1
fIND------ fFB
fVCOM
------------= =
X-Ref Target - Figure 3-12
図 3-12 : 内部フ ィードバックのある PLL
CLKIN1
CLKFBIN
RST
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
PLL
IBUFG BUFG
To Logic
UG382_c3_11_080309
98 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 3 章 : 位相ロック ループ (PLL)
ゼロ遅延バッファ
PLL を使用し、 ゼロ遅延バッファ クロ ッ クを生成するこ と もできます。 ゼロ遅延バッファは、 1 つのクロ ッ ク信号が、複数の目的地点に低スキューで接続されているアプリ ケーシ ョ ンに便利です。こ
のコンフ ィギュレーシ ョ ンを図 3-13 に示します。こ こでは、チップ外からフ ィードバッ ク信号が入
力され、ボード ト レース フ ィードバッ クが外部コンポーネン トへのト レースと一致するよ う設計さ
れています。 このコンフ ィギュレーシ ョ ンでは、 ク ロ ッ ク エッジは FPGA の入力および外部コン
ポーネン トの入力で揃う こ とを想定しています。フ ィードバッ ク パスで許容される 大遅延には制
限があ り ます。
外部コンポーネン トの入力キャパシタンス と FPGA のフ ィードバッ ク パスのキャパシタンスの間
に負荷の差があるため、 場合によっては、 正確な位相アライ メン トができないこ とがあ り ます。 た
とえば、外部コンポーネン トの入力キャパシタンス値は 1pF ~ 4pF の範囲ですが、FPGA の場合は
約 8pF です。 信号の傾きに差があ り、 スキューが発生します。 タイ ミ ングを満たすにはこの点を考
慮する必要があ り ます。
DCM で PLL を駆動
DCM には、正確に位相シフ ト したクロ ッ クを生成する という優れた機能があ り ますが、リ ファレン
ス ク ロ ッ クのジッ タは低減できません。 PLL を使用する と、 1 つの DCM のクロ ッ ク出力の出力
ジッタを削減できるよ うになり ます。このコンフ ィギュレーシ ョ ンを図 3-14 に示します。この PLLは位相がシフ ト しない (PLL で遅延は追加されない) よ うにコンフ ィギュレーシ ョ ンされています。
ブロ ッ ク図の右側に関連した波形を示します。 DCM の出力で PLL を直接駆動する場合、 DCM とPLL は同じ CMT 内に存在する必要があ り ます。ローカルの専用配線上のノ イズが 小となるため、
このインプ リ メンテーシ ョ ンが推奨されます。DCM を BUFG に接続後、PLL の CLKIN 入力に接
続するこ と もできます。
X-Ref Target - Figure 3-13
図 3-13 : ゼロ遅延バッファ
CLKIN1
CLKFBIN
RST
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
PLL
IBUFGInside FPGA
OBUFBUFG
BUFG
UG382_c3_12_080309
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 99UG382 (v1.3) 2010 年 2 月 22 日
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 を駆動できます。
X-Ref Target - Figure 3-14
図 3-14 : DCM で PLL を駆動
CLKIN
RST
IBUFG
1 2
3
4
5
6
BUFG
BUFG
CLK0
CLK180
CLK270
CLK2X
CLK2X180
CLKDV
CLKFX
CLKFX180
CLK90
DCM
CLKFBIN
PLL
ug382_c3_13_080309
CLKIN1
RST
CLKFBIN
CLKOUT0
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
CLKOUT1
1
2
3
4
5
6
100 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 3 章 : 位相ロック ループ (PLL)
PLL 同士の接続
PLL をカスケード接続するこ とによって、 よ り広範囲のクロッ ク周波数が生成可能です。周波数の
範囲には制限があ り ます。式 3-16 は、 終出力周波数と入力周波数の関係と、2 つの PLL (図 3-16)のカウンタ設定を示したものです。2 つ目の PLL の出力クロ ッ ク と入力クロ ッ クの位相関係は定義
されていません。 PLL をカスケードするには、 初の PLL の出力を BUFG に配線した後、 2 つ目
の PLL の CLKIN ピンに配線します。 このパスのデバイス ジッタの値は 小値になり ます。
式 3-16
X-Ref Target - Figure 3-15
図 3-15 : PLL で DCM を駆動
CLKIN
RST
IBUFG
1 2
3
CLK0
CLK180
CLK270
CLK2X
CLK2X180
CLKDV
CLKFX
CLKFX180
CLK90
DCM
CLKFBIN
PLL
ug382_c3_14_080309
BUFG
CLKIN1
Matches
RST
CLKFBIN
CLKOUT0
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
CLKOUT1
1
2
3
4
5
6
45
6
fOUTPLL2 fOUTPLL1
MPLL2
DPLL2 OPLL2×---------------------------------------- fIN
MPLL1
DPLL1 OPLL1×----------------------------------------
MPLL2
DPLL2 OPLL2×----------------------------------------×= =
Spartan-6 FPGA クロッ ク リソース japan.xilinx.com 101UG382 (v1.3) 2010 年 2 月 22 日
アプリケーシ ョ ン ガイドライン
アプリケーシ ョ ン ガイド ライン
このセクシ ョ ンには、 いつ 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 にこの波形を示します。
X-Ref Target - Figure 3-16
図 3-16 : 2 つの PLL のカスケード
CLKIN1
CLKFBIN
RST
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
CLKIN1
CLKFBIN
RST
PLLPLL
CLKOUT0 To Logic
IBUFG BUFG BUFG
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
CLKFBOUT
ug382_c3_15_080309
102 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース
UG382 (v1.3) 2010 年 2 月 22 日
第 3 章 : 位相ロック ループ (PLL)
X-Ref Target - Figure 3-17
図 3-17 : 波形例
REFCLK
VCOCLK
CLKOUT0
CLKOUT1
CLKOUT2
CLKOUT3
CLKOUT4
CLKOUT5
UG382_c3_16_080309