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