ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日...

102
Spartan-6 FPGA クロック リソース ユーザー ガイド UG382 (v1.3) 2010 2 22

Transcript of ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日...

Page 1: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

[Guide Subtitle] [optional]

UG382 (v1.3) 2010 年 2 月 22 日 [optional]

Spartan-6 FPGA クロック リソース

ユーザー ガイド

UG382 (v1.3) 2010 年 2 月 22 日

Page 2: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 を編集。

Page 3: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 補正の説明を更新。

日付 バージョ ン 内容

Page 4: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

Spartan-6 FPGA クロッ ク リソース japan.xilinx.com UG382 (v1.3) 2010 年 2 月 22 日

Page 5: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

目次

Page 6: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 7: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 コンフ ィギャブル ロジッ ク ブロ ッ ク ユーザー ガイ ド』

Page 8: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 9: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 デザイン ガイ ド』 を参照してください。

Page 10: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 ク ロ ッ ク入力を配線するこ と もできます。

Page 11: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 12: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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>

Page 13: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 14: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 15: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 16: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 を使用

Page 17: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 を使用

Page 18: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 19: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 20: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 21: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 22: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 23: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 つあるデバイス)

Page 24: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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]

Page 25: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 26: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 リ ソース ユーザー ガイ ド』 を参照して ください。

Page 27: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 28: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 29: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 30: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 31: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 32: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 33: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 34: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 35: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 36: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 37: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 38: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 ロジッ クへは接続できません。

Page 39: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 40: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 属性 (続き)

属性名 説明 値 デフォルト値

Page 41: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 42: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 43: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 44: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 45: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 46: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 47: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 ク ロ ッ ク ネッ ト ワーク

出力。

Page 48: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 49: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 50: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

50 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース

UG382 (v1.3) 2010 年 2 月 22 日

第 1 章 : クロック リソース

Page 51: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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)

Page 52: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 53: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 54: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 プ リ ミ テ ィブを使用して ください。

Page 55: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 56: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 を使用する と き

にシ ミ ュレーシ ョ ンで使用されます。

Page 57: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 デジタル周波数合成

Page 58: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 59: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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--------------------------------------------------------=

Page 60: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 61: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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--------------------------------------------------------=

Page 62: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 属性 (続き)

属性 可能な設定と説明

Page 63: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 に保持する必要があ り

ます。

Page 64: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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-------------------------------------------------------=

Page 65: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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-------------------------------------------------------=

Page 66: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

--------------------------------------------------------

Page 67: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 68: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 フ ィードバッ ク パスに許容される

大変動

Page 69: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 70: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 71: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 はマスタ と スレーブの関

係とその接続を示したものです。

Page 72: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 73: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 74: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 75: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 76: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 77: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 78: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

78 japan.xilinx.com Spartan-6 FPGA クロッ ク リソース

UG382 (v1.3) 2010 年 2 月 22 日

第 2 章 : クロック マネージメン ト テク ノロジ

Page 79: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 からの出力はスペク ト ラム拡散ではあ り ません。

Page 80: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 81: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 82: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 83: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 84: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

----------------------------------------------------------------------------------=

Page 85: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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-----------------------------------------=

Page 86: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 87: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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--------------=

Page 88: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 89: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 90: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 入力 フ ィードバッ ク ク ロ ッ ク入力

Page 91: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 説明

Page 92: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 との組み合わせで、 この出力周

波数を決定します。

Page 93: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 属性 (続き)

属性 タイプ 値 デフォルト 説明

Page 94: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 95: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 96: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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 位相の選択

45°

90°

135°

180°

225°

270°

315°

O0

O1

O2

O3

ug382_c3_09_080309

Page 97: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 98: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 99: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 100: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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×----------------------------------------×= =

Page 101: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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

Page 102: ザイリンクス UG382 Spartan-6 FPGA クロック リ …...UG382 (v1.3) 2010 年 2 月 22 日 japan.xilinx.com Spartan-6 FPGA クロック リソース本資料は英語版 (v1.3)

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