...

DCM - Xilinx

by user

on
Category: Documents
40

views

Report

Comments

Transcript

DCM - Xilinx
ア プ リ ケーシ ョ ン ノ ー ト : Spartan-3 FPGA フ ァ ミ リ
R
Spartan-3 FPGA におけるデジ タ ル ク ロ ッ ク
マネージ ャ (DCM) の使用
XAPP462 (v1.0) 2003 年 7 月 11 日
概要
デジ タ ル ク ロ ッ ク マネージ ャ (DCM) を使用する こ と に よ っ て、 Spartan-3 FPGA アプ リ ケーシ ョ ンに
おいて高度な ク ロ ッ ク 機能の設計が可能にな り ます。 DCM は必要に応 じ て入力 ク ロ ッ ク の周波数を逓
倍ま たは分周 し て周波数合成を行 う だけでな く 、 ク ロ ッ ク ス キ ュ ーを削減 し 、 シ ス テ ムのパフ ォーマ ン
ス を向上 さ せます。 ま た、 入力 ク ロ ッ ク 周期の何分の一か遅れた ク ロ ッ ク を出力す る よ う な位相シ フ ト
を行 う こ と がで き ます。 こ の よ う な機能を持つ DCM は、 FPGA の低ス キ ュ ーな グ ロ ーバル ク ロ ッ ク 分
散ネ ッ ト ワー ク に直接統合で き ます。
は じ めに
DCM は、 Spartan-3 のグ ロ ーバル ク ロ ッ ク 分散ネ ッ ト ワ ー ク に高度な ク ロ ッ ク 機能を統合 し ます。 こ
の こ と に よ っ て、 Spartan-3 では、 特に高性能、 かつ高周波数のアプ リ ケーシ ョ ン で起 こ り やすい ク ロ ッ
ク 設計の問題を解決で き ます。
•
入力 ク ロ ッ ク 周波数の逓倍ま たは分周に よ る 周波数合成を行い、 新 し い周波数の ク ロ ッ ク を生成 し
ます。
•
ク ロ ッ ク 調整を行 う こ と に よ っ て、デ ュ ーテ ィ サ イ ク ルが 50% の ク ロ ッ ク を確実に出力で き ます。
•
位相シ フ ト では、ク ロ ッ ク 周期の分数分、ま たは ク ロ ッ ク 周期に係数を掛けた値分シ フ ト し た ク ロ ッ
ク 信号を生成 し ます。
•
デバ イ ス内部ま たは外部 コ ン ポーネ ン ト と の ク ロ ッ ク ス キ ュ ーを削減す る こ と に よ っ て、 シ ス テ ム
全体のパフ ォーマ ン ス を向上 さ せ、 ク ロ ッ ク 分散遅延を低減 さ せます。
•
ク ロ ッ ク 信号の ミ ラ ー、 フ ォ ワー ド 、 リ バ ッ フ ァ に よ っ て、 異な る I/O 標準への入力 ク ロ ッ ク 信号
の ス キ ュ ー調整お よ び変換を行い ます。 た と えば、 LVTTL 入力 ク ロ ッ ク を LVDS へフ ォ ワー ド し 、
変換 し ます。
•
こ れ ら の機能は併用で き ます。
表 1 : DCM の特長および機能
機能
各デバ イ ス におけ る DCM の個数
DCM 信号
説明
• 4 個 (XC3S50 以外)
すべて
• 2 個 (XC3S50 の場合)
デジ タ ル周波数合成 (DFS) の入力周波数範囲*
1 MHz ~ 326 MHz
CLKIN
遅延 ロ ッ ク ループ (DLL) の入力周波数範囲*
24 MHz ~ 326 MHz
CLKIN
• グ ロ ーバル バ ッ フ ァ 入力パ ッ ド
CLKIN
ク ロ ッ ク 入力 ソ ース
• グ ロ ーバル バ ッ フ ァ 出力
• 汎用 I/O ( ス キ ュ ー調整な し )
• 内部 ロ ジ ッ ク ( ス キ ュ ー調整な し )
© 2003 Xilinx, Inc. All rights reserved. すべての Xilinx の商標、登録商標、特許、免責条項は、http://www.xilinx.co.jp/legal.htm にリストされています。他のすべての商標お
よび登録商標は、それぞれの所有者が所有しています。すべての仕様は通知なしに変更される可能性があります。
保証否認の通知 : Xilinx ではデザイン、コード、その他の情報を「現状有姿の状態」で提供しています。この特徴、アプリケーションまたは規格の一実施例としてデザイン、
コード、その他の情報を提供しておりますが、Xilinx はこの実施例が権利侵害のクレームを全く受けないということを表明するものではありません。お客様がご自分で実装
される場合には、必要な権利の許諾を受ける責任があります。Xilinx は、実装の妥当性に関するいかなる保証を行なうものではありません。この保証否認の対象となる保証
には、権利侵害のクレームを受けないことの保証または表明、および市場性や特定の目的に対する適合性についての黙示的な保証も含まれます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
1
R
概要
表 1 : DCM の特長および機能 (Continued)
機能
周波数合成出力
ク ロ ッ ク 分周出力
説明
DCM 信号
CLKIN を (M/D) 逓倍
(M={2..32}、 D={1..32})
• CLKFX
CLKIN 周波数を 1.5、 2、 2.5、 3、 3.5、
4、 4.5、 5、 5.5、 6、 6.5、 7、 7.5、 8、
9、 10、 11、 12、 13、 14、 15、 16 で
CLKDV
• CLKFX180
分周
2 逓倍 ク ロ ッ ク 出力
• CLK2X
CLKIN 周波数を 2 逓倍
• CLK2X180
ク ロ ッ ク 調整 と デ ュ ーテ ィ サ イ ク ル調整
常にほ と ん ど の出力で可能
CLK0、 CLK90、 CLK180、 CLK270 で
はオプシ ョ ン
50% デュ ーテ ィ サ イ ク ル ± 100 ps*
すべて
1/4 位相シ フ ト 出力
0°(位相シ フ ト な し )
90°(1/4 周期)
180°(1/2 周期)
270°(3/4 周期)
• CLK0
0°お よ び 180°の位相シ フ ト 出力ペア
DDR アプ リ ケーシ ョ ンに理想的
• CLK0、 CLK180
1/2 周期位相シ フ ト 出力
• CLK90
• CLK180
• CLK270
• CLK2X、 CLK2X180
• CLKFX、 CLKFX180
動的位相シ フ ト ま たは固定位相シ フ ト
ク ロ ッ ク 周期の 1/256 単位
( ま たは 30 ∼ 50 ps) *
すべて
汎用内部接続への ク ロ ッ ク 出力数
最大 9 出力
すべて
グ ロ ーバル ク ロ ッ ク ネ ッ ト ワ ー ク への ク ロ ッ ク 出力数
4 出力
すべて
出力ピ ンへの ク ロ ッ ク 出力数
最大 9 出力
すべて
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
概要
こ のアプ リ ケーシ ョ ン ノ ー ト は、 特定の FPGA アプ リ ケーシ ョ ン に限定す る も のではな く 、 デジ タ ル
ク ロ ッ ク マネージ ャ に関連 し た内容を総合的に説明 し ます。
「DCM 機能の概要」 では、 DCM お よ びその機能についての概要を述べ ます。 次に 「DCM プ リ ミ テ ィ
ブ」 では、 DCM に関連 し たすべての接続ポー ト と 属性、 お よ び制約について説明 し 、 「DCM Wizard」、
「VHDL お よ び Verilog の イ ン ス タ ン シエーシ ョ ン」では、DCM デザ イ ンの指定方法について示 し ます。
続 く 、 「DCM 使用のための ク ロ ッ ク 条件」 お よ び 「入力 ク ロ ッ ク お よ び出力 ク ロ ッ ク の周波数条件」 で
は、 DCM を使用す る 場合の ク ロ ッ ク 入力お よ び ク ロ ッ ク 出力の周波数条件について説明 し ます。 ま た、
「 ク ロ ッ ク ジ ッ タ お よ び位相 ノ イ ズ」 では、 出力 ク ロ ッ ク におけ る ジ ッ タ の影響について考察 し ます。
最後に、 「 ク ロ ッ ク ス キ ュ ーの低減」、 「 ク ロ ッ ク 調整」、 「位相シ フ ト - ク ロ ッ ク 周期の分数で ク ロ ッ ク を
遅延」、 「 ク ロ ッ ク 逓倍、 ク ロ ッ ク 分周、 周波数合成」、 お よ び 「 ク ロ ッ ク の フ ォ ワー ド 、 ミ ラ ー、 リ バ ッ
フ ァ 」 では、 DCM ブ ロ ッ ク を使用 し た さ ま ざ ま な アプ リ ケーシ ョ ン を示 し ます。
2
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
DCM 位置および ク ロ ッ ク分散 ネ ッ ト ワー ク イ ン タ ー フ ェ イ ス
DCM 位置お よび
ク ロ ッ ク分散
ネ ッ ト ワー ク
イン ターフ ェ イス
図 1 に示す よ う に、2 個の DCM ブ ロ ッ ク を持つ XC3S50 以外の Spartan-3 FPGA デバ イ ス には 4 個の
DCM ブ ロ ッ ク があ り 、 こ れ ら のブ ロ ッ ク は、 FPGA デバ イ ス の左右に位置する ブ ロ ッ ク RAM/乗算器
列の上下に位置 し ます。 ま た、 XC3S50 にあ る 2 個の DCM は左側にあ る ブ ロ ッ ク RAM/乗算器列の上
下に位置 し ます。
XC3S50 only
Global buffer multiplexers
DCM_X0Y1
DCM_X1Y1
Block RAM
Column
Embedded
Multiplier
Column
DCM_X0Y0
Global buffer multiplexers
DCM_X1Y0
x462_01_061803
図 1 : Spartan-3 FPGA における 4 つの DCM ブ ロ ッ ク位置
DCM ブ ロ ッ ク には、 デバ イ ス 上で同一エ ッ ジにあ る グ ロ ーバル バ ッ フ ァ 入力お よ びグ ロ ーバル バ ッ
フ ァ マルチプ レ ク サへの専用接続があ り ます。図 2 に示す よ う に、DCM は FPGA のグ ロ ーバル ク ロ ッ
ク 設計構造には不可欠な要素であ り 、 ク ロ ッ ク 分散ネ ッ ト ワー ク では必要に応 じ てオプシ ョ ン と し て使
用で き ます。 図 2a では、 ク ロ ッ ク 入力はグ ロ ーバル バ ッ フ ァ 入力お よ びグ ロ ーバル ク ロ ッ ク バ ッ フ ァ
を介 し て、 低ス キ ュ ー、 かつ高フ ァ ン ア ウ ト のグ ロ ーバル ク ロ ッ ク ネ ッ ト ワー ク を駆動 し ます。
アプ リ ケーシ ョ ン で複数、 ま たはすべての DCM の ク ロ ッ ク 機能を使用す る 場合には、 図 2b に示す よ
う に、 DCM を グ ロ ーバル バ ッ フ ァ 入力 と グ ロ ーバル ク ロ ッ ク バ ッ フ ァ 間で使用 し ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
3
R
DCM 機能の概要
Global Buffer Input
Global Clock Buffer
IBUFG
I
GCLK
BUFG
O
I
O
Low-Skew
Global Clock
Network
x462_02a_062403
a. グローバル バ ッ フ ァ 入力およびグローバル ク ロ ッ ク バ ッ フ ァ が低スキ ュ ーのグローバル
ネ ッ ト ワー ク を駆動する例
Global
Buffer Input
IBUFG
I
O
GCLK
Global
Clock Buffer
Digital Clock
Manager
CLKIN
Output
BUFG
I
O
DCM
CLKFB
x462_02b_062403
b. DCM を直接グローバル ク ロ ッ ク パスに挿入する例
図 2 : FPGA のグローバル ク ロ ッ ク ネ ッ ト ワー ク に不可欠な要素 と し ての DCM
DCM 機能の概要
図 3 に示す よ う に、デジ タ ル ク ロ ッ ク マネージ ャ (DCM) と 呼ばれ る 1 つのエン ト リ は、実際には別々
の機能を持つ 4 つのユニ ッ ト で構成 さ れ、 こ れ ら は独立 し て、 ま たは互いに関連 し て動作 し ます。 次に
各ユニ ッ ト の機能について説明 し ます。
DCM
PSINCDEC
PSEN
PSCLK
Phase
Shifter
Output Stage
Delay Taps
Input Stage
CLK90
CLK180
CLK270
CLK2X
CLK2X180
CLKDV
CLKFX
CLKFX180
DFS
DLL
RST
Clock
Distribution
Delay
CLK0
CLKIN
CLKFB
PSDONE
Status
Logic
8
LOCKED
STATUS [7:0]
DS099-2_07_040103
図 3 : DCM 機能ブ ロ ッ ク図
4
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
DCM 機能の概要
遅延ロ ッ ク ループ (DLL)
遅延 ロ ッ ク ループ (DLL) ユニ ッ ト は、 ク ロ ッ ク の出力信号の伝搬遅延がゼ ロ にな る よ う にチ ッ プ上で
ス キ ュ ー調整を行い ま す。 ス キ ュ ーを調整す る ためのデジ タ ル回路では、 ク ロ ッ ク 出力 (CLK0 ま たは
CLK2X) を確認 し 、 ネ ッ ト ワ ー ク 配線上に遅延を挿入 し ます。 DLL は、 外部 ク ロ ッ ク 入力ポー ト か ら デ
バ イ ス内の各 ク ロ ッ ク 入力ま での遅延を削減す る 場合に有効です。 効率的にバ ッ フ ァ を使用 し た グ ロ ー
バル ネ ッ ト ワ ー ク では、 さ ま ざ ま な負荷がかか る こ と に よ っ て発生す る ネ ッ ト ワ ー ク 上の ク ロ ッ ク ス
キ ュ ーを最小限に抑え る こ と がで き ます。
DLL への入力信号は CLKIN お よ び CLKFB であ り 、DLL か ら の出力信号は CLK0、CLK90、CLK180、
CLK270、 CLK2X、 CLK2X180 お よ び CLKDV です。
こ の DLL を使用す る こ と に よ っ て、 2 逓倍 ク ロ ッ ク (CLK2X、 CLK2X180)、 ク ロ ッ ク 分周 (CLKDV)
お よ び 1/4 位相シ フ ト 出力の各出力を生成で き ます。
デジ タ ル周波数合成 (DFS)
デジ タ ル周波数合成 (DFS) ユニ ッ ト は、 設計者が定義 し た 2 つの整数、 逓倍値 (CLKFX_MULTIPLY)
お よ び分周値 (CLKFX_DIVIDE)、 を使用 し て、 柔軟、 かつ広範囲の出力周波数を生成 し ます。 こ こ で
は、 入力 ク ロ ッ ク (CLKIN) 周波数を逓倍ま たは分周 し 、 派生出力 ク ロ ッ ク 周波数を生成 し ます。 こ の機
能は、 DCM の DLL 機能の有無に関わ ら ず使用で き 、 DLL を使用 し ない場合には CLKIN と DFS 出力
間に位相関係はあ り ません。
DFS は、 周波数合成回路 (CLKFX、 CLKFX180) 出力を生成 し ます。
位相シ フ ト (PS)
位相シ フ ト (PS) ユニ ッ ト は、 DCM の CLKIN 入力に対する ク ロ ッ ク 出力の位相関係を制御 し ます。
PS は、 位相シ フ ト 値を入力 ク ロ ッ ク 周期の分数で指定 し 、 9 つすべての DCM ク ロ ッ ク 出力信号の位相
を シ フ ト さ せます。 こ の位相シ フ ト 値は設計段階で指定 し 、 FPGA コ ン フ ィ ギ ュ レーシ ョ ン中に DCM
に読み込まれます。
PS は現在の ク ロ ッ ク 周期の 1/256 単位で前後に位相を シ フ ト さ せ る こ と がで き る FPGA ア プ リ ケー
シ ョ ンのデジ タ ル イ ン タ ーフ ェ イ ス を提供 し ます。
PS の入力信号は PSINCDEN、 PSEN お よ び PSCLK であ り 、 出力信号は PSDONE お よ び STATUS[0]
です。
ス テー タ ス ロ ジ ッ ク
ス テー タ ス ロ ジ ッ ク は、 LOCKED と STATUS[0]、 STATUS[1]、 お よ び STATUS[2] 出力信号に よ っ て
DCM の現在の ス テー ト を示 し ます。 LOCKED 出力信号は DCM 出力が CLKIN と 同位相であ る か を示
し 、 STATUS 出力信号は DLL お よ び PS の ス テー ト を示 し ます。
RST 入力信号に よ っ て、 DCM 全体が リ セ ッ ト さ れ、 コ ン フ ィ ギ ュ レーシ ョ ン後の ス テー ト に戻 る ため、
リ セ ッ ト 後は CLKIN 入力に再び ロ ッ ク する 必要があ り ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
5
R
DCM
プリ ミティブ
DCM プ リ ミ テ ィ ブ
DCM プ リ ミ テ ィ ブは、デジ タ ル ク ロ ッ ク マネージ ャ のすべての機能を表 し ます。図 4 に DCM プ リ ミ
テ ィ ブ を示 し 、 次に DCM の接続ポー ト 、 属性、 プ ロ パテ ィ 、 お よ び制約の要約を示 し ます。
シ ンボル
DCM
CLKIN
CLK0
CLKFB
CLK90
CLK180
CLK270
CLK2X
CLK2X180
CLKDV
CLKFX
CLKFX180
RST
PSEN
STATUS[7:0]
PSINCDEC
LOCKED
PSCLK
PSDONE
x462_04_061803
図 4 : DCM プ リ ミ テ ィ ブ
接続ポー ト
表 3 にデジ タ ル ク ロ ッ ク マネージ ャ の接続ポー ト を示 し 、 各ポー ト について、 信号方向お よ びその接
続を必要 と す る DCM ユニ ッ ト な ど を簡潔に説明 し ます。 表 2 には、 表 3 で使用 し てい る 各機能ユニ ッ
ト の略称を示 し ます。
表 2 : 表 3 で使用 し ている機能ユニ ッ ト の略称
略称
6
機能ユニ ッ ト
DLL
遅延 ロ ッ ク ループ
PS
位相シ フ ト
DFS
デジ タ ル周波数合成
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
DCM プ リ ミ テ ィ ブ
表 3 : DCM 接続ポー ト
機能ユニ ッ ト
ポー ト
方向
CLKIN
ク ロ ッ ク 入力
CLKFB
入力
説明
DLL
PS
DFS
DCM への ク ロ ッ ク 入力であ り 、 常に必要です。 CLKIN の周波数お よ び
ジ ッ タ は、 『Spartan-3 デー タ シー ト 』 で指定 さ れた範囲内であ る 必要があ
り 、 周波数モー ド は DLL_FREQUENCY_MODE 属性ま たは
DFS_FREQUENCY_MODE 属性で指定 さ れます。
9
9
9
DCM への ク ロ ッ ク フ ィ ー ド バ ッ ク 入力です。 フ ィ ー ド バ ッ ク 入力はデジ
タ ル周波数合成出力であ る CLKFX ま たは CLKFX180 のみが使用 さ れてい
る 場合は必要あ り ません。 CLKFB 入力の ソ ースは DCM か ら の CLK0 出力
ま たは CLK2X 出力であ り 、状況に応 じ て CLK_FEEDBACK を 1X ま たは
2X に設定す る 必要があ り ます。 理論的には、 フ ィ ー ド バ ッ ク 地点には内部
9
オプ
ション
9
9
9
9
ま たは外部の ク ロ ッ ク 分散ネ ッ ト ワー ク で追加 さ れた遅延が含まれます。
「確実な ソ ース か ら の フ ィ ー ド バ ッ ク 」 を参照 し て く だ さ い。
RST
PSEN
入力
入力
非同期の リ セ ッ ト 入力であ り 、 DCM ロ ジ ッ ク を リ セ ッ ト し て コ ン フ ィ ギ ュ
レーシ ョ ン後の設定に戻 し ます。 こ の入力を使用 し た場合、 DCM では再び
CLKIN を確認 し 、 ロ ッ ク し ます。 ま た DCM ブ ロ ッ ク 内部で反転可能であ
り 、 反転 さ せない場合の動作については下表に示 し ます。 「RST 入力」 を参
照 し て く だ さ い。
0
影響な し
1
DCM ブ ロ ッ ク を リ セ ッ ト し ます。 ア ク テ ィ ブ High であ り 、
最低 2ns 間 High を維持す る 必要があ り ます。
動的位相シ フ ト イ ネーブル信号であ り 、 DCM ブ ロ ッ ク 内部で反転可能で
す。 反転 さ せない場合の動作については下表に示 し ます。 「動的フ ァ イ ン位
相シ フ ト 」 を参照 し て く だ さ い。
0
動的位相シ フ ト をデ ィ ス エーブルに し 、 PS への入力は無視
さ れます。
1
PSCLK ク ロ ッ ク の次の立ち上が り エ ッ ジで動的位相シ フ ト
9
を イ ネーブルに し ます。
PSINCDEC
PSCLK
入力
ク ロ ッ ク 入力
動的位相シ フ ト 値を増減す る 場合に使用 し 、 DCM ブ ロ ッ ク 内部で反転可能
です。 反転 さ せない場合の動作については下表に示 し ます。 「動的フ ァ イ ン
位相シ フ ト 」 を参照 し て く だ さ い。
0
次の有効な PSCLK ク ロ ッ ク の立ち上が り エ ッ ジで位相シ フ
ト 値を増加 さ せます。
1
次の有効な PSCLK ク ロ ッ ク の立ち上が り エ ッ ジで位相シ フ
ト 値を減少 さ せます。
PS への ク ロ ッ ク 入力であ り 、 立ち上が り エ ッ ジで入力 さ れます。 DCM ブ
ロ ッ ク 内部で反転可能です。 周波数モー ド は DLL_FREQUENCY_MODE
9
9
属性に よ っ て指定 さ れます。 「動的フ ァ イ ン位相シ フ ト 」 を参照 し て く だ さ
い。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
7
R
DCM プ リ ミ テ ィ ブ
表 3 : DCM 接続ポー ト (Continued)
機能ユニ ッ ト
ポー ト
方向
説明
CLK0
ク ロ ッ ク 出力
位相シ フ ト は 0°であ り 、 CLKIN と 同一周波数の出力です。
DUTY_CYCLE_CORRECTION 属性が TRUE の場合は、 デ ュ ーテ ィ サ イ
ク ルが 50% に調整 さ れます。 DLL 機能にはフ ィ ー ド バ ッ ク ソ ース と し て
CLK0 ま たは CLK2X を使用する 必要があ り ます。 「1/2 ク ロ ッ ク 周期位相
シ フ ト 出力」 お よ び 「1/4 位相シ フ ト 出力」 を参照 し て く だ さ い。
9
CLK90
ク ロ ッ ク 出力
90°(1/4 周期) 位相シ フ ト し た CLKIN と 同一周波数であ り 、
DLL_FREQUENCY_MODE 属性が High に設定 さ れてい る 場合は使用で
き ません。 ま た、 DUTY_CYCLE_CORRECTION 属性が TRUE の場合は、
デ ュ ーテ ィ サ イ ク ルが 50% に調整 さ れます。 「1/4 位相シ フ ト 出力」 を参照
9
DLL
PS
DFS
し て く だ さ い。
CLK180
ク ロ ッ ク 出力
180°(1/2 周期) 位相シ フ ト し た CLKIN と 同一周波数であ り 、
DUTY_CYCLE_CORRECTION 属性が TRUE の場合はデ ュ ーテ ィ サ イ ク
ルが 50% に調整 さ れます。 「1/2 ク ロ ッ ク 周期位相シ フ ト 出力」 お よ び
「1/4 位相シ フ ト 出力」 を参照 し て く だ さ い。
9
CLK270
ク ロ ッ ク 出力
270°(3/4 周期) 位相シ フ ト し た CLKIN と 同一周波数であ り 、
DLL_FREQUENCY_MODE 属性が High に設定 さ れてい る 場合は使用で
き ません。 ま た、 DUTY_CYCLE_CORRECTION 属性が TRUE の場合は、
デ ュ ーテ ィ サ イ ク ルが 50% に調整 さ れます。 「1/4 位相シ フ ト 出力」 を参照
9
し て く だ さ い。
CLK2X
ク ロ ッ ク 出力
位相シ フ ト は 0°であ り 、 周波数が 2 倍の ク ロ ッ ク 出力です。
DLL_FREQUENCY_MODE 属性が High に設定 さ れてい る 場合は使用で
き ません。 使用可能な場合には、 常にデュ ーテ ィ サ イ ク ルが 50% と な り 、
DLL への フ ィ ー ド バ ッ ク ソ ース と し て CLK0 ま たは CLK2X を使用す る 必
要があ り ます。 こ れは、 2 逓倍 ク ロ ッ ク (CLK2X、 CLK2X180) 出力です。
「1/2 ク ロ ッ ク 周期位相シ フ ト 出力」 を参照 し て く だ さ い。
9
CLK2X180
ク ロ ッ ク 出力
180°位相シ フ ト し 、 周波数が 2 倍の ク ロ ッ ク 出力です。
DLL_FREQUENCY_MODE 属性が High に設定 さ れてい る 場合は使用で
き ません。 使用可能な場合は、デュ ーテ ィ サ イ ク ルが常に 50% と な り ます。
こ れは、 2 逓倍 ク ロ ッ ク (CLK2X、 CLK2X180) 出力です。 「1/2 ク ロ ッ ク 周
9
期位相シ フ ト 出力」 を参照 し て く だ さ い。
CLKDV
ク ロ ッ ク 出力
分周 ク ロ ッ ク 出力であ り 、 CLKDV_DIVIDE 属性で制御 さ れます。
DLL_FREQUENCY_MODE 属性が High であ り 、 CLKDV_DIVIDE 属性
の値が整数ではない場合を除 き 、 CLKDV 出力のデ ュ ーテ ィ サ イ ク ルは
50% です。 ま た、 CLKDV_DIVIDE 値が整数ではないではない場合は、
ロ ッ ク 状態にな る ま でに必要な時間が長 く な り ます。 こ れは ク ロ ッ ク 分周
(CLKDV) 出力です。
9
F CLKIN
F CLKDV = ------------------------------------------------CLKDV _ DIVIDE
8
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
DCM プ リ ミ テ ィ ブ
表 3 : DCM 接続ポー ト (Continued)
機能ユニ ッ ト
ポー ト
CLKFX
方向
説明
ク ロ ッ ク 出力
合成 ク ロ ッ ク 出力であ り 、 CLKFX_MULTIPLY 属性お よ び
CLKDV_DIVIDE 属性で制御 さ れます。 デュ ーテ ィ サ イ ク ルは常に 50%
です。 CLKFX ま たは CLKFX180 ク ロ ッ ク 出力のみが使用 さ れてい る 場合
には、 ク ロ ッ ク フ ィ ー ド バ ッ ク は必要あ り ません。 「周波数合成回路
(CLKFX、 CLKFX180)」 お よ び 「1/2 ク ロ ッ ク 周期位相シ フ ト 出力」 を参
照 し て く だ さ い。
DLL
PS
DFS
9
CLKFX _ MULTIPLY
F CLKFX = F CLKIN • ----------------------------------------------------------CLKFX _ DIVIDE
CLKFX180
ク ロ ッ ク 出力
9
CLKFX を 180°位相シ フ ト し た (CLKFX を反転 し た よ う に見え る ) 合成 ク
ロ ッ ク 出力であ り 、 デ ュ ーテ ィ サ イ ク ルは常に 50% です。 CLKFX ク ロ ッ
ク 出力ま たは CLKFX180 ク ロ ッ ク 出力が DCM で使用 さ れてい る 場合に
は、 フ ィ ー ド バ ッ ク ループは必要あ り ません。 「周波数合成回路 (CLKFX、
CLKFX180)」 お よ び 「1/2 ク ロ ッ ク 周期位相シ フ ト 出力」 を参照 し て く だ
さ い。
STATUS[0]
STATUS[1]
STATUS[2]
出力
出力
出力
9
動的位相シ フ ト がオーバーフ ロ ーであ る こ と を示 し ます。 動的フ ァ イ ン位
相シ フ ト の制御出力で、 動的位相シ フ ト が最小値ま たは最大値に達 し てい
る こ と を示 し ます。 制限値は ±255 ま たは位相シ フ ト 遅延 ラ イ ンの最後に達
し た場合は、 その値以下にな り ます。 「動的フ ァ イ ン位相シ フ ト 」 を参照 し
て く だ さ い。
0
位相シ フ ト は制限値に達 し てい ません。
1
位相シ フ ト が制限値に達 し てい ます。
CLKIN 入力が停止 し た こ と を示 し 、 CLKFB フ ィ ー ド バ ッ ク 入力が接続 さ
れてい る 場合のみに使用で き ます。 LOCKED 出力がアサー ト さ れ る ま では
リ セ ッ ト 状態であ り 、 ア ク テ ィ ブにな る ためには CLKIN が 1 サ イ ク ル以上
必要です。 CLKIN が最初か ら ト グル し ない場合にはアサー ト さ れません。
0
CLKIN が ト グル し てい ます。
1
CLKIN が ト グル し てい ません。
CLKFX 出力ま たは CLKFX180 出力が停止 し た こ と を示 し ます。 周波数合
成回路 (CLKFX、 CLKFX180) を参照 し て く だ さ い。
0
CLKFX 出力お よ び CLKFX180 出力が ト グル し てい ます。
1
CLKFX 出力お よ び CLKFX180 出力が ト グル し てい ません。
ただ し 、 LOCKED 出力が High に維持 さ れてい る 場合があ り
9
9
9
9
ます。
STATUS[7:3
]
出力
予約済み
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
9
R
DCM プ リ ミ テ ィ ブ
表 3 : DCM 接続ポー ト (Continued)
機能ユニ ッ ト
ポー ト
方向
説明
LOCKED
出力
すべての DCM 機能は CLKIN の周波数に ロ ッ ク し てい ます。 CLKIN が指
定 さ れた範囲内 ( 「DCM 使用のための ク ロ ッ ク 条件」 に記載) であ る 場合
に、 ク ロ ッ ク 出力が有効です。 「周波数合成回路 (CLKFX、 CLKFX180)」
を参照 し て く だ さ い。
0
DCM は CLKIN の周波数に対 し て ロ ッ ク する 過程であ り 、
DCM の ク ロ ッ ク 出力は無効です。
1
DCM は CLKIN の周波数に対 し て ロ ッ ク し 、 DCM の ク ロ ッ
DLL
PS
DFS
9
9
9
ク 出力は有効です。
1→0
DCM の ロ ッ ク 状態が解除 さ れ、 DCM を リ セ ッ ト す る 必要
があ り ます。
PSDONE
出力
動的位相シ フ ト が完了 し た こ と を示 し ます。 「動的フ ァ イ ン位相シ フ ト 」 を
参照 し て く だ さ い。
0
1
9
位相シ フ ト が行われていない、 ま たは実行中です。
要求 さ れた位相シ フ ト は完了 し てい ます。 こ の出力が
PSCLK の 1 サ イ ク ル間 High にな っ た後、次の位相シ フ ト を
実行で き ます。
10
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
DCM プ リ ミ テ ィ ブ
属性、 プ ロパテ ィ 、 および制約
表 4 にデジ タ ル ク ロ ッ ク マネージ ャ の属性を示 し ます。すべての属性は設計段階で設定 さ れ、 コ ン フ ィ
ギ ュ レーシ ョ ン中にプ ロ グ ラ ム さ れます。 動的フ ァ イ ン位相シ フ ト 以外では、 FPGA アプ リ ケーシ ョ ン
の実行中に こ れ ら の設定を変更す る こ と はで き ません。
使用す る デザ イ ン入力ツールに合わせて <属性>=<設定> を使用 し 、 属性を設定 し ます。
表 4 : DCM 属性
属性
DLL_FREQUENCY_MODE
CLK_FEEDBACK
DUTY_CYCLE_CORRECTION
可能な設定および説明
CLKIN 入力、 PSCLK 入力、 お よ び遅延 ロ ッ ク ループ (DLL) か ら の出力 ク ロ ッ ク の有効周
波数範囲を指定 し ます。 DLL ク ロ ッ ク 出力には、 CLK0、 CLK90、 CLK180、 CLK270、
CLK2X、 CLK2X180、 CLKDV が含まれます。
LOW
デフ ォ ル ト です。 DLL は低周波数モー ド で動作 し 、 DLL に関連 し たすべての
出力が有効です。 ク ロ ッ ク 入力お よ び ク ロ ッ ク 出力の周波数は、 『Spartan-3
デー タ シー ト 』 に記載 さ れてい る 低周波数 DLL の指定範囲内にあ り ます。
HIGH
DLL は高周波数モー ド で動作 し ます。 2 逓倍 ク ロ ッ ク (CLK2X、 CLK2X180)
出力、 お よ び 1/4 位相シ フ ト 出力 CLK90 と CLK270 は無効です。
CLKDV_DIVIDE 属性が整数以外の場合、 CLKDV 出力のデュ ーテ ィ サ イ ク
ルは 50% にな り ません。 ク ロ ッ ク 入力お よ び ク ロ ッ ク 出力の周波数は、
『Spartan-3 デー タ シー ト 』 に記載 さ れてい る 高周波数 DLL の指定範囲内にあ
り ます。
フ ィ ー ド バ ッ ク ク ロ ッ ク の周波数を指定 し ます。
1X
デフ ォ ル ト であ り 、 CLK0 フ ィ ー ド バ ッ ク です。 周波数は CLKIN と 同一です。
2X
CLK2X フ ィ ー ド バ ッ ク であ り 、 周波数は CLKIN の 2 倍です。
なし
フ ィ ー ド バ ッ ク ク ロ ッ ク はあ り ません。 CLKFX 出力ま たは CLKFX180 出力
のみを使用 し てい る 場合に可能です。
DLL か ら の出力であ る CLK0、 CLK90、 CLK180 お よ び CLK270 に対す る 50% デ ュ ー
テ ィ サ イ ク ル調整を イ ネーブルま たはデ ィ ス エーブルに設定 し ます。
CLKDV_DIVIDE
TRUE
デフ ォ ル ト であ り 、 デ ュ ーテ ィ サ イ ク ルは 50% に調整 さ れます。
FALSE
デ ュ ーテ ィ サ イ ク ル調整は行われません。
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 です。
F CLKIN
F CLKDV = ------------------------------------------------CLKDV _ DIVIDE
CLKDV_DIVIDE が整数ではない場合、 ロ ッ ク す る ために必要な時間が長 く な り 、 出力
ジ ッ タ が増加 し ます。
CLKFX_MULTIPLY
CLKFX 出力お よ び CLKFX180 出力の周波数を逓倍する 場合の係数を指定 し ます。 こ の値
は CLKDV_DIVIDE 属性の値 と と も に使用 さ れます。 CLKFX_MULTIPLY に設定可能な範
囲は整数値の 2 か ら 32 であ り 、 デフ ォ ル ト は 4 です。
CLKFX _ MULTIPLY
F CLKFX = F CLKIN • ----------------------------------------------------------CLKFX _ DIVIDE
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
11
R
DCM プ リ ミ テ ィ ブ
表 4 : DCM 属性 (Continued)
属性
CLKDV_DIVIDE
可能な設定および説明
CLKFX 出力お よ び CLKFX180 出力の周波数を分周する 場合の係数を指定 し ます。 こ の値
は CLKFX_MULTIPLY 属性の値 と と も に使用 さ れます。設定可能な範囲は整数値の 1 か ら
32 であ り 、 デフ ォ ル ト は 1 です。
CLKFX _ MULTIPLY
F CLKFX = F CLKIN • ----------------------------------------------------------CLKFX _ DIVIDE
PHASE_SHIFT
こ の属性は、 CLKOUT_PHASE_SHIFT 属性が FIXED ま たは VARIABLE に設定 さ れてい
る 場合にのみ使用で き ます。 CLKIN と すべての DCM ク ロ ッ ク 出力間の立ち上が り エ ッ ジ
におけ る ス キ ュ ーを コ ン フ ィ ギ ュ レーシ ョ ンで定義 し 、 DCM ク ロ ッ ク 出力を位相シ フ ト さ
せます。
ス キ ュ ーま たは位相シ フ ト 値は整数で指定 さ れます。 こ の整数値は、 次の等式に示す よ う に
ク ロ ッ ク 周期の分数で表 さ れ、 範囲は -255 か ら 255 にな り ます。 デフ ォ ル ト 値は 0 であ り 、
実際に設定可能な値は入力 ク ロ ッ ク 周波数に よ っ て異な り ます。 ま た、 TCLKIN >
FINE_SHIFT_RANGE の場合には、 実際の範囲は よ り 小 さ く な り ます。
FINE_SHIFT_RANGE は遅延 ラ イ ンにおけ る すべての タ ッ プの総遅延を示 し ます。 詳細は、
「フ ァ イ ン位相シ フ ト 」 を参照 し て く だ さ い。
CLKOUT_PHASE_SHIFT
位相シ フ ト モー ド を指定 し ます。 PHASE_SHIFT 制約 と 共に使用 し 、 DCM のデジ タ ル位
相シ フ ト (DPS) 機能を イ ンプ リ メ ン ト し ます。 ま た、 こ の設定は DLL お よ び DFS か ら のす
べての ク ロ ッ ク 出力に反映 さ れます。 詳細は、 「フ ァ イ ン位相シ フ ト 」 を参照 し て く だ さ い。
なし
DESKEW_ADJUST
デフ ォ ル ト です。 CLKIN お よ び CLKFB は同位相 ( ス キ ュ ーな し ) であ り 、
位相関係は変更で き ません。 PHASE_SHIFT = 0 の場合の FIXED 設定 と
同一です。
FIXED
位相関係は、 コ ン フ ィ ギ ュ レーシ ョ ンで PHASE_SHIFT 属性に よ っ て設
定 さ れ、 アプ リ ケーシ ョ ンでは変更で き ません。
VARIABLE
位相関係は、 コ ン フ ィ ギ ュ レーシ ョ ンで PHASE_SHIFT 属性に よ っ て設
定 さ れますが、 動的位相シ フ ト 制御信号、 PSEN、 PSCLK、 PSINCDEC
お よ び PSDONE を使用 し て アプ リ ケーシ ョ ンで変更可能です。
FPGA ク ロ ッ ク 入力ピ ン と DCM 出力 ク ロ ッ ク 間の ク ロ ッ ク 遅延調整を制御 し ます。 「ス
キ ュ ー調整」 を参照 し て く だ さ い。
SYSTEM_SYNCHRONOUS
デフ ォ ル ト であ り 、 すべてのデバ イ ス がシ ス テ ム全体
に共通の ク ロ ッ ク ソ ース で動作 し ます。
SOURCE_SYNCHRONOUS
デー タ ソ ース か ら ク ロ ッ ク が入力 さ れます。 ソ ース
同期アプ リ ケーシ ョ ンがその一例です。
こ の設定を DCM ク ロ ッ ク 出力の位相シ フ ト に使用 し ないで く だ さ い。 正確な位相シ フ ト を
行 う 場合には、 CLKOUT_PHASE_SHIFT 制約ま たは PHASE_SHIFT 制約を使用 し て く だ
さ い。
12
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
DCM プ リ ミ テ ィ ブ
表 4 : DCM 属性 (Continued)
属性
DFS_FREQUENCY_MODE
STARTUP_WAIT
可能な設定および説明
DCM のデジ タ ル周波数合成 (DFS) か ら の ク ロ ッ ク 出力であ る CLKFX お よ び CLKFX180
に有効な周波数範囲を指定 し ます。 DLL ク ロ ッ ク 出力が使用 さ れてい る 場合は、
DLL_FREQUENCY_MODE に よ っ て CLKIN 入力の周波数範囲が よ り 制限 さ れます。 .
LOW
デフ ォ ル ト であ り 、 DFS は低周波数モー ド で動作 し ます。 CLKFX 出力お よ び
CLKFX180 出力の周波数は、 『Spartan-3 デー タ シー ト 』 に記載 さ れてい る 低
周波数 DFS の指定範囲内であ る 必要があ り ます。 ま た、 DLL ク ロ ッ ク 出力を
使用 し てい る 場合、 CLKIN 入力の周波数範囲はその出力に よ っ て変化 し ます。
HIGH
DFS は高周波数モー ド で動作 し ます。 CLKFX 出力お よ び CLKFX180 出力の
周波数は、 『Spartan-3 デー タ シー ト 』 に記載 さ れてい る 高周波数 DFS の指定
範囲内であ る 必要があ り ます。 ま た、 DLL ク ロ ッ ク 出力を使用 し てい る 場合、
CLKIN 入力の周波数範囲はその出力に よ っ て変化 し ます。
DCM の LOCKED 信号のアサー ト よ り 先に FPGA コ ン フ ィ ギ ュ レーシ ョ ンの DONE 信号
を High にす る か ど う かを制御 し ます。
FALSE デフ ォ ル ト であ り 、 DCM が ロ ッ ク 状態にな る のを待たずに DONE 信号がア
サー ト さ れます。
TRUE
DCM が ロ ッ ク 状態にな る ま で DONE 信号は High にな り ません。 ただ し 、 こ
の STARTUP_WAIT は、 LOCKED 信号が High にな る のを妨げ る も のではあ
り ません。 ま た、FPGA の ス タ ー ト ア ッ プ シーケ ン ス のサ イ ク ルの始めに LCK
( ロ ッ ク ) サ イ ク ルを挿入す る よ う に修正す る 必要があ り ます
( 「ビ ッ ト ス ト リ ーム生成の設定」 を参照 し て く だ さ い)。 通常は、 DONE サ イ
ク ルま たは GWE サ イ ク ルがその後に続 き ます。
2 つ以上の DCM を コ ン フ ィ ギ ュ レーシ ョ ン し てい る 場合は、 すべての DCM が ロ ッ ク する
必要があ り ます。
CLKIN_DIVIDE_BY_2
CLKIN が DCM ブ ロ ッ ク に入力 さ れ る 前に、 周波数を 2 分周 し ます。 アプ リ ケーシ ョ ンに
よ っ ては、 入力 ク ロ ッ ク の周波数を適切な範囲内に低減で き ます。
FALSE
デフ ォ ル ト であ り 、 CLKIN は直接 DCM ブ ロ ッ ク に入力 さ れます。
TRUE
CLKIN が DCM に入力す る 前に、 その周波数を 2 分周 さ れ、 デ ュ ーテ ィ サ イ
ク ルは約 50% に調整 さ れます。 こ れは、 高周波数の ク ロ ッ ク を使用 し 、 DCM
の入力 ク ロ ッ ク の周波数条件ま たはデ ュ ーテ ィ サ イ ク ル条件を満たす場合に有
効です。 ま た、 周波数モー ド を決定す る 場合、 ま たは位相シ フ ト 範囲を算出す
る 場合に、 ク ロ ッ ク 周波数を 2 分周 し ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
13
R
その他のザイ リ ン ク ス FPGA フ ァ ミ リ と の互換性
表 4 : DCM 属性 (Continued)
属性
FACTORY_JF
可能な設定および説明
DCM の DLL ユニ ッ ト で タ ッ プ設定を修正する 頻度を制御 し ます。 こ の設定は、 DLL エ レ
メ ン ト のジ ッ タ 特性に影響を与え、 DLL_FREQUENCY_MODE 属性に基づいて自動的に
指定 さ れます。
DLL_FREQUENCY_MODE
FACTORY_JF
LOW
0xC080
HIGH
0xF0F0
設計方法 と し て推奨 さ れた場合以外は、 デフ ォ ル ト 設定を変更 し ないで く だ さ い
(「FACTORY_JF 設定の修正」 を参照 し て く だ さ い)。
LOC
その他のザイ リ ン
ク ス FPGA フ ァ
ミ リ と の互換性
図 1 に示す よ う に、 DCM の物理的な配置位置を指定 し ます。
DCM_X0Y0
DCM の左下
DCM_X1Y0
DCM の右下 (XC3S50 では設定不可)
DCM_X0Y1
DCM の左上
DCM_X1Y1
DCM の右上 (XC3S50 では設定不可)
Spartan-3 のデジ タ ル ク ロ ッ ク マネージ ャ (DCM) は Virtex™-II お よ び Virtex-II Pro FPGA フ ァ ミ リ
で使用 さ れてい る DCM と ほぼ同様の機能を持ち ますが、 Spartan-3 DCM は第三世代の DCM デザ イ ン
で あ り 、 さ ら に機能が向上 し てい ま す。 特に、 Virtex-II デバ イ ス と 比較す る と 、 Spartan-3 デバ イ ス は
VCCAUX 供給電源におけ る ノ イ ズ耐性が改善 さ れ、Virtex-II/Pro フ ァ ミ リ よ り も 位相シ フ ト 機能に柔軟
性があ り ます。 出力の周波数制限値は、 Virtex-II お よ び Virtex-II Pro フ ァ ミ リ の DCM の方が高 く な っ
てい ます。
ま た、 Spartan-II/IIE と 比較する と 、 Spartan-3 DCM の遅延 ロ ッ ク ループ (DLL) 機能は、 大幅に改善 さ
れ、 Spartan-II/IIE DLL の機能をすべて備え てい る だけでな く 、 周波数合成お よ び位相シ フ ト 機能が追
加 さ れま し た。 Spartan-3 の周波数合成では、 最大 32 ま での係数を使用 し て入力 ク ロ ッ ク を逓倍 し ます
が、 Spartan-II/IIE DLL での周波数合成機能は 2 逓倍ま でです。 同様に、 Spartan-3 DCM の分周機能は
Spartan-II DLL よ り 広範囲に対応 し てい ます。
DCM 使用のため
DCM は、 その機能に最大限の柔軟性が あ る よ う に設計 さ れてい ま すが、 ク ロ ッ ク の周波数 と 安定性、
のク ロ ッ ク 条件
周波数の変動、 お よ び ク ロ ッ ク ジ ッ タ にい く つかの条件があ り ます。
入力 ク ロ ッ ク周波数範囲
DCM の ク ロ ッ ク 入力周波数は、 アプ リ ケーシ ョ ン におけ る DLL ユニ ッ ト 、 DFS ユニ ッ ト 、 ま たはそ
の両方に よ っ て決定 さ れます。
表 5 に デジ タ ル周波数合成 (DFS) ユニ ッ ト での入力 ク ロ ッ ク CLKIN の周波数範囲を示 し ます。 DFS ユ
ニ ッ ト を単独で使用す る 場合の周波数範囲は DLL 入力ニ ッ ト よ り も 広 く な り ますが、 両ユニ ッ ト を使
用す る 場合には、 よ り 厳 し い周波数条件を DLL に適用す る 必要があ り ます。 表には、 デー タ シー ト に
記載 さ れてい る 仕様名お よ び概算値の 1 つを示 し てい ますが、実際の値はデザ イ ンに必要な ス ピー ド グ
レー ト に よ っ て変化 し 、 概算値 よ り も デー タ シー ト で指定 さ れてい る 値を優先 し ます。
14
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
DCM 使用のための ク ロ ッ ク条件
表 5 : デジ タ ル周波数合成 (DFS) ユニ ッ ト のク ロ ッ ク 入力周波数範囲
機能
最小周波数
最大周波数
デジ タ ル周波数合成 (DFS)
CLKIN_FREQ_FX_MIN
~ 1.00 MHz*
CLKIN_FREQ_FX_MAX
~ 326 MHz*
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
表 6 に遅延 ロ ッ ク ループ (DLL) ユニ ッ ト での入力 ク ロ ッ ク 、 CLKIN、 の周波数範囲を示 し ます。 DLL
が単独で使用 さ れてい る 場合 と DFS と と も に使用 さ れてい る 場合では、 同一の周波数条件が適用 さ れ
ます。 表には、 低周波数モー ド お よ び高周波数モー ド の場合の DLL の周波数範囲を示 し てい ます。 こ の
周波数モー ド は、 DLL_FREQUENCY_MODE 属性に よ っ て指定 さ れます。 表には、 デー タ シー ト に記
載 さ れてい る 仕様名お よ び概算値の 1 つを示 し てい ま すが、 実際の値はデザ イ ン に必要な ス ピー ド グ
レー ト に よ っ て変化 し 、 概算値 よ り も デー タ シー ト で指定 さ れてい る 値を優先 し ます。
表 6 : 遅延ロ ッ ク ループ ユニ ッ ト の ク ロ ッ ク入力周波数範囲
DLL 周波数モー ド 属性 (DLL_FREQUENCY_MODE)
= LOW
機能
遅延 ロ ッ ク ループ
(DLL)
= HIGH
最小周波数
最大周波数
CLKIN_FREQ_DLL_LF_M
IN
~ 24 MHz*
CLKIN_FREQ_DLL_LF_M
AX
~ 180 MHz*
最小周波数
最大周波数
CLKIN_FREQ_DLL_HF_M CLKIN_FREQ_DLL_HF_M
IN
IN
~ 326 MHz*
~ 48 MHz*
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
出力 ク ロ ッ ク周波数範囲
DCM の出力 ク ロ ッ ク に対 し て も 周波数範囲が指定 さ れてい ます。 詳細は、 「入力 ク ロ ッ ク お よ び出力 ク
ロ ッ ク の周波数条件」 を参照 し て く だ さ い。
ク ロ ッ ク入力および ク ロ ッ ク フ ィ ー ド バ ッ ク 入力の変動
「安定 し た単調な ク ロ ッ ク 入力」 で説明す る よ う に、 DCM では安定性があ り 、 単調な ク ロ ッ ク 入力を使
用す る 必要があ り ます。 し か し 、 DCM 機能の柔軟性を最大限に使用 し よ う と す る 場合、 CLKIN で発生
す る ク ロ ッ ク ジ ッ タ お よ び CLKIN 入力 と CLKFB 入力の変動を あ る 程度ま で許容 し なければな り ませ
ん。
CLKIN 入力におけ る ジ ッ タ には 2 つの タ イ プがあ り ます。 1 つは、 サ イ ク ル間ジ ッ タ であ り 、 こ のジ ッ
タ は CLKIN 入力周期が あ る サ イ ク ルか ら 次のサ イ ク ル間で ど の程度の変化を許容で き る か を示 し ま
す。 表 7 に、 デー タ シー ト に記載 さ れてい る 仕様名お よ び概算値を含むサ イ ク ル間ジ ッ タ の最大許容範
囲を示 し ます。
表 7 : サイ ク ル間ジ ッ タ の最大許容範囲
周波数モー ド
機能ユニ ッ ト
Low
High
デジ タ ル周波数合成 (DFS)
CLKIN_CYC_JITT_FX_LF
~ ±300 ps*
CLKIN_CYC_JITT_FX_HF
~ ±150 ps*
遅延 ロ ッ ク ループ (DLL)
CLKIN_CYC_JITT_DLL_LF
~ ±300 ps*
CLKIN_CYC_JITT_DLL_HF
~ ±150 ps*
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
15
R
LOCKED 出力
も う 1 つのジ ッ タ は、 周期ジ ッ タ と 呼ばれ、 ク ロ ッ ク 周期間の最大変動を示 し ます。 サ イ ク ル間ジ ッ タ
があ る サ イ ク ル と 次のサ イ ク ルの差を示すのに対 し 、 周期ジ ッ タ は ク ロ ッ ク 周期全体での変化範囲を示
し ます。 表 8 に、 デー タ シー ト に記載 さ れてい る 仕様名お よ び概算値を含む周期ジ ッ タ の最大許容範囲
を示 し ます。
表 8 : 周期ジ ッ タ の最大許容範囲
周波数モー ド
機能ユニ ッ ト
Low
High
デジ タ ル周波数合成 (DFS)
CLKIN_PER_JITT_FX_LF
~ ±1,000 ps* (±1 ns)
CLKIN_PER_JITT_FX_HF
~ ±1,000 ps* (±1 ns)
遅延 ロ ッ ク ループ (DLL)
CLKIN_PER_JITT_DLL_LF
~ ±1,000 ps* (±1 ns)
CLKIN_PER_JITT_DLL_HF
~ ±1,000 ps* (±1 ns)
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
DCM の安定性に影響 を 与え る 別の要素は、 DLL で使用 さ れ る ク ロ ッ ク フ ィ ー ド バ ッ ク パ ス です。
フ ィ ー ド バ ッ ク パ ス遅延の変動は、 表 9 に示す範囲内でな ければな り ま せん。 ただ し 、 グ ロ ーバル ク
ロ ッ ク ラ イ ン に接続 さ れ る 場合はチ ッ プ上の変動が最小に な る た め、 こ こ に示 し た範囲制限は外部
フ ィ ー ド バ ッ ク パ ス にのみ適用 さ れます。
表 9 : 外部フ ィ ー ド バ ッ ク パス遅延範囲
解説
チ ッ プ外にあ る CLKFB フ ィ ー ド バ ッ ク パ ス遅延の最大許容範囲
指定範囲
CLKFB_DELAY_VAR_EXT
~ ±1,000 ps* (±1 ns)
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
LOCKED 出力
DCM の LOCKED 出力は、 すべ て の DCM 機能が CLKIN 入力に ロ ッ ク し て い る こ と を 示 し ま す。
LOCKED 信号がアサー ト さ れ る 場合には、 FPGA アプ リ ケーシ ョ ン内で出力 ク ロ ッ ク を使用で き ます。
図 5 に LOCKED 出力信号の動作を示 し ます。 LOCKED 出力は FPGA の コ ン フ ィ ギ ュ レーシ ョ ン終了
直後に Low にな り 、 RST 入力がアサー ト さ れてい る 場合は常に Low です。
コ ン フ ィ ギ ュ レーシ ョ ン後、 DCM は CLKIN 信号の有効/無効に関わ ら ず、 常に ロ ッ ク 状態にな ろ う と
し ます。 入力 ク ロ ッ ク が安定 し ていない場合には、 CLKIN 入力が安定す る ま で、 FPGA 回路 で RST 入
力を アサー ト す る 必要があ り ます。 DLL では CLKIN 入力お よ び CLKFB 入力の両方を使用 し 、 こ れ ら
の立ち上が り エ ッ ジが同位相であ る 時に完全に ロ ッ ク 状態であ る こ と を確認 し ます。DFS では、CLKIN
を使用 し て ク ロ ッ ク の周波数が有効であ る か を確認 し ます。 ま た、 DCM が ロ ッ ク 状態にな る ために数
千 ク ロ ッ ク サ イ ク ルのサンプルが必要 と な る 場合があ り ます。
DCM の CLKIN に対す る ロ ッ ク が完了す る と 、LOCKED 出力が High にアサー ト さ れ、DCM の ク ロ ッ
ク 出力が有効 と な る ため、 FPGA アプ リ ケーシ ョ ン内で こ れ ら の出力を使用で き ます。 『Spartan-3 デー
タ シー ト 』 の タ イ ミ ン グに関す る 章には、 ロ ッ ク に必要な時間の ワース ト ケース が記載 さ れてい ます。
通常、 ク ロ ッ ク 周波数が高いほ ど、 DLL 出力は短時間で ロ ッ ク 状態にな り ます。 ま た、 DFS 出力が ロ ッ
ク する ためには非常に長い時間が必要 と な り ます。 こ の時間は、 逓倍ま たは分周の係数に よ っ て変化 し
ますが、 こ れ ら の係数が小 さ いほ ど時間は短縮 し ます。
シ ス テ ム ク ロ ッ ク が安定 し てか ら FPGA の コ ン フ ィ ギ ュ レーシ ョ ン を完了 さ せ る ために、 オプシ ョ ン
と し て、 DCM が ロ ッ ク 状態にな る ま で コ ン フ ィ ギ ュ レーシ ョ ン の完了を遅 ら せ る こ と がで き ます。 こ
の機能は、 STARTUP_WAIT 属性で制御 し ます。
LOCKED が High にな る 前の DCM ク ロ ッ ク 出力信号の動作は保証 し てい ません。 LOCKED が High
にな る 前の DCM 出力 ク ロ ッ ク には、 グ リ ッ チ、 スパ イ ク な ど の不正な波形が含まれてい る 場合があ り
ます。
16
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
RST 入力
FPGA
RST
LOCKED
LOW
CLKIN
RST
CLKIN
N
FPGA
RST
Y
RST
N
LOCKED
LOW
Y
LOCKED
HIGH
x462_05_062103
図 5 : LOCKED 出力の機能的な動作
CLKIN 入力の周波数が指定範囲内であ る 場合、 DCM は内部遅延の タ ッ プ を調整 し 、 ロ ッ ク 状態を維持
し ますが、 その制限を大幅に満た し ていない場合には、 ロ ッ ク 状態が解除 さ れ、 LOCKED 出力が Low
にな り ます。
一度 DCM の ロ ッ ク 状態が解除 さ れ る と 、 自動的に再び ロ ッ ク 状態に戻 る こ と はあ り ません。 ロ ッ ク 状
態が解除 さ れた場合、 つま り LOCKED が High か ら Low と な っ た場合には、 FPGA アプ リ ケーシ ョ ン
では RST 入力を使用 し て DCM を リ セ ッ ト す る な ど の適切な方法を使用 し て、 再び ロ ッ ク 状態にす る
必要があ り ます。
RST 入力
非同期の RST 入力は、 DCM ロ ジ ッ ク を リ セ ッ ト し て コ ン フ ィ ギ ュ レ ーシ ョ ン後の設定に戻 し ま す。
RST ピ ンは、 FPGA を再コ ン フ ィ ギ ュ レーシ ョ ンす る 場合、 ま たは許容範囲を超え てい る 入力周波数を
変更す る 場合に使用 し て く だ さ い。 こ の ピ ンはア ク テ ィ ブ High であ り 、 ダ イ ナ ミ ッ ク 信号ま たはグ ラ
ン ド に接続す る 必要があ り ます。 ま た、 RST 入力は最低 2ns 間アサー ト し なければな り ません。
コ ン フ ィ ギ ュ レ ーシ ョ ン後に、 入力 ク ロ ッ ク 周波数が安定 し てい ない場合、 ク ロ ッ ク が安定す る ま で
RST を アサー ト し て く だ さ い。 ま た、 外部フ ィ ー ド バ ッ ク を使用 し てい る 場合は、 コ ン フ ィ ギ ュ レ ー
シ ョ ン直後に DCM を リ セ ッ ト し ます。31 ページの図 20 に SRL16 シ フ ト レ ジ ス タ プ リ ミ テ ィ ブ を使
用 し た リ セ ッ ト 方法の例を示 し ます。
LOCKED 周波数が High か ら Low にな る 場合の よ う に、 DCM の ロ ッ ク 状態が解除 さ れ る と 、 FPGA
アプ リ ケーシ ョ ンでは RST を アサー ト し 、DCM に入力 ク ロ ッ ク 周波数に対 し て再 ロ ッ ク さ せ る 必要が
あ り ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
17
R
DCM Wizard
DCM の LOCKED 出力が High の場合、 RST がアサー ト さ れ る と 、 こ の LOCKED 出力は 4 ク ロ ッ ク
サ イ ク ル以内に Low にな り ます。 こ のため、 リ セ ッ ト 後は、 DCM を再び ロ ッ ク 状態に さ せます。
ま た、 RST を アサー ト す る こ と に よ っ て、 DCM の遅延 タ ッ プ位置がゼ ロ に戻 り 、 こ の タ ッ プ位置を変
更す る こ と に よ っ て、 DCM の ク ロ ッ ク 出力ピ ン でグ リ ッ チが発生す る 可能性があ り ます。 同様に、 RST
は ク ロ ッ ク 出力のデ ュ ーテ ィ サ イ ク ルに も 影響を与え ます。
さ ら に、 RST がアサー ト さ れ る と 、 現在の可変位相シ フ ト 値は PHASE_SHIFT 属性で指定 さ れた値に
戻 り ます。
DCM Wizard
DCM を使用す る アプ リ ケーシ ョ ン を容易にする ために、 ザ イ リ ン ク ス ISE には、 順を追っ て DCM を
設定で き る ソ フ ト ウ ェ ア Wizard が含まれてい ます。 図 6 に示す よ う に、 DCM Wizard を使用す る こ と
に よ っ て、 VHDL 構文ま たは Verilog 構文で DCM を イ ン ス タ ン シエー ト す る ベン ダ固有の ロ ジ ッ ク 合
成フ ァ イ ルを生成で き ます。 ま た、 DCM Wizard では特定の イ ンプ リ メ ン テーシ ョ ン用にユーザー制約
フ ァ イ ル (UCF) を生成で き ます。 さ ら に、すべてのユーザー仕様は、Xilinx Architecture Wizard (XAW)
設定フ ァ イ ルに保存 さ れます。
DCM Wizard
Graphically configure a
Spartan-3 Digital Clock
Manager (DCM)
Xilinx Architecture
Wizard (XAW)
settings file
Vendor-specific
VHDL or Verilog
User contraints
file (UCF)
x462_06_061803
図 6 : DCM Wizard の DCM 設定用グ ラ フ ィ カル イ ン タ ー フ ェ イ ス
DCM Wizard の起動
DCM Wizard を起動す る ためには、Windows の ス タ ー ト ボ タ ンか ら 起動する 、ま たはザ イ リ ン ク ス ISE
Project Navigator ソ フ ト ウ ェ アか ら 起動す る と い う 2 つの方法があ り ます。
Windows のス タ ー ト ボ タ ンから起動
DCM Wizard を Windows ス タ ー ト ボ タ ンか ら 起動す る 場合は、[ ス タ ー ト ] → [すべてのプ ロ グ ラ ム ] →
[Xilinx ISE 5] → [ ア ク セサ リ ] → [Architecture Wizard] を ク リ ッ ク し ます。 図 7 に設定ウ ィ ン ド ウ を
示 し ます。
18
•
DCM のオプシ ョ ン設定を保存する Xilinx Architecture Wizard (.xaw) フ ァ イ ル名を入力 し ます。
•
こ こ で、 [Browse] ボ タ ン を ク リ ッ ク し て *.xaw フ ァ イ ルを選択す る こ と も 可能です。
•
出力フ ァ イ ルの ロ ジ ッ ク 合成言語を VHDL ま たは Verilog か ら 選択 し ます。
•
ロ ジ ッ ク 合成ツールを選択 し ます。 DCM Wizard では、 指定 し た合成ツールに応 じ て、 ベン ダ固有
の出力フ ァ イ ルが生成 さ れます。
•
タ ーゲ ッ ト デバ イ ス に Spartan-3 を選択 し ます。
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
DCM Wizard
DCM
Xilinx Architecture Wizard Setup
XAW File:
Browse ...
My_Spartan-3
Output File Type
VHDL
Verilog
Synthesis Tool:
XST
Part:
XC3S1000-FT256-4
Select ...
OK
Spartan-3
Cancel
[OK]
x462_07_061803
図 7 : Architecture Wizard の設定
Project Navigator から 起動
Project Navigator の メ ニ ュ ー バーか ら 、 ま たは [Sources in Project] ウ ィ ン ド ウ か ら DCM Wizard を起
動で き ます。 メ ニ ュ ー バーで [Project] → [New Source] を選択す る か、 [Sources in Project] ウ ィ ン ド
ウ で右 ク リ ッ ク し 、 [New Source] を選択 し て く だ さ い。
図 8 に 示す よ う に、 リ ス ト か ら [Architecture Wizard] を 選択 し ま す。 Xilinx Architecture Wizard
(*.xaw) フ ァ イ ル名を入力 し 、 その フ ァ イ ルを保存す る デ ィ レ ク ト リ を選択 し た後、 [Next] を ク リ ッ ク
し ます。
New
User Document
VHDL Module
CoreGen IP
Schematic
VHDL Library
VHDL Package
VHDL Test Bench
Test Bench Waveform
BMM File
MEM File
Implementation Constraints File
Architecture Wizard
State Diagram
F ile Name:
DCM
My_Spartan-3
Lo c ation:
...
MyDirectory
Architecture Wizard
Add to Project
< Back
N ext >
Cancel
Help
[Next]
x462_08_061803
図 8 : Project Navigator での Architecture Wizard 設定
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
19
R
DCM Wizard
Wizard 選択
前述 し た手順はすべての ISE Architecture Wizard に共通ですが、 Spartan-3 FPGA は図 9 に示す DCM
Wizard をサポー ト し ます。 こ こ で [OK] を ク リ ッ ク し 、 次に進みます。
Xilinx Architecture Wizard Selection
Select Wizard:
DCM Wizard
OK
Cancel
Spartan-3
DCM Wizard
[OK]
x462_09_061703
図 9 : Spartan-3 FPGA でのみ選択可能な DCM Wizard
[General Setup]
図 10 に示す よ う に、 ほ と ん ど のオプシ ョ ンは、 DCM Wizard の [General Setup] ダ イ ア ロ グ ボ ッ ク ス
で設定 し ます。 楕円の枠内には、 その設定に対応す る DCM プ リ ミ テ ィ ブ属性名を示 し ます。
•
DCM の イ ン ス タ ン ス名を入力 し ます。 こ の イ ン ス タ ン ス名は Verilog ま たは VHDL 出力フ ァ イ ル
内で使用 さ れます。
•
最終的な アプ リ ケーシ ョ ンにおけ る 出力お よ び機能を選択す る ためには、 必要な DCM ク ロ ッ ク 出
力のチ ェ ッ ク ボ ッ ク ス を オ ン に し ます。 チ ェ ッ ク ボ ッ ク ス を オ ン に し た出力に対 し ては、 それに
関連 し たオプシ ョ ンの設定が可能にな り ます。
•
CLKIN ク ロ ッ ク 入力の周波数を入力 し ます。 周波数を MHz で指定す る か、 ま たは ク ロ ッ ク 周期を
ns で指定 し て く だ さ い。 こ の値に よ っ て、 DCM の DLL_FREQUENCY_MODE 属性が設定 さ れ
ます。
•
CLKIN ソ ース が FPGA の内部であ る か、外部であ る かを指定 し ます。 [External] を選択 し た場合、
DCM Wizard は 自動的 に グ ロ ー バ ル バ ッ フ ァ 入 力 (IBUFG) プ リ ミ テ ィ ブ を 挿入 し ま す。
[Internal] を選択 し た場合は、 ソ ース信号は HDL ソ ース フ ァ イ ル内の ト ッ プ レベル入力 と な り ま
す。
•
CLKDV 出力をオンに し た場合は、 ク ロ ッ ク 分周回路の [Divide by Value] 値を指定 し ます。 こ の
値に よ っ て、 DCM の CLKDV_DIVIDE 属性が設定 さ れます。
•
DCM への フ ィ ー ド バ ッ ク パス を指定 し ます。 CLKFX 出力ま たは CLKFX180 出力のみを使用す
る 場合は、 [None] を選択 し ます。 こ れ ら の出力を使用 し ない場合は、 フ ィ ー ド バ ッ ク が必要です。
FPGA 内部か ら の フ ィ ー ド バ ッ ク を使用す る 場合は [Internal] を選択 し 、 外部か ら の フ ィ ー ド バ ッ
ク ループ を使用す る 場合は [External] を選択 し ま す。 さ ら に、 DCM フ ィ ー ド バ ッ ク の ソ ー ス を
CLK0 (1X) ま たは CLK2X (2X) か ら 選択 し ます。 こ の選択に よ っ て、 DCM の CLK_FEEDBACK
属性が設定 さ れます。
20
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
DCM Wizard
Xilinx DCM Wizard - General Setup
DCM
DCM Instance Name:
MY_DCM
CLKIN
CLKFB
MHz
CLK0
CLK90
CLK180
CLK270
CLKDV
CLK2X
CLK2X180
CLKFX
CLKFX180
ns
STATUS
LOCKED
PSDONE
DLL_FREQUENCY_MODE
MHz
IBUFG
[External]
[Internal]
CLKDV_DIVIDE
Input Clock Frequency
30
CLKFX
CLKFX180
CLKIN
RST
PSEN
PSINCDEC
PSCLK
(BUFG)
CLKDV
CLKIN Source
Internal
ns
CLKDV
Divide By Value
2
External
Feedback
Source:
CLK0 (1X)
CLK2X (2X)
Value:
Phase Shift
None
Duty Cycle Correction
Internal
External
1X
2X
Yes
CLK_FEEDBACK
CLKOUT_PHASE_SHIFT
Phase Shift Value:
[Fixed]
PSEN PSINCDEC
PSCLK
None
Fixed
Variable
PHASE_SHIFT
23
< B ack
N ext >
No
DUTY_CYCLE_
CORRECTION
Advanced ...
[Yes]
CLK0
CLK90 CLK180 CLK270
50%
Advanced
More Info
Cancel
[Next]
[Variable]
DCM
x462_10_061803
図 10 : [General Setup] ダ イ ア ログ ボ ッ ク スでの DCM オプ シ ョ ン設定
•
すべての DCM 出力におけ る 位相シ フ ト の有無を指定 し ます。 デフ ォ ル ト 設定は、 位相シ フ ト な し
(None) です。 位相シ フ ト が必要な場合は、 位相シ フ ト 値 と し て [Fixed] ま たは [Variable] を選択
し ます。 [Variable] を選択す る こ と に よ っ て、 動的位相シ フ ト 制御、 PSEN、 PSINCDEC、
PSCLK、 お よ び PSDONE が使用可能 と な り 、 DCM の CLKOUT_PHASE_SHIFT 属性が指定 さ
れます。 Fixed モー ド お よ び Variable モー ド のいずれを選択する 場合で も 、 固定位相シ フ ト 値あ
る いは動的位相シ フ ト の初期値を決定す る [Phase Shift Value] を指定 し ます。 こ の値に よ っ て、
DCM の PHASE_SHIFT 属性が設定 さ れます。
•
ア ド バン ス ド オプシ ョ ン ウ ィ ン ド ウ を開 く 場合は、 [Advanced] ボ タ ン を ク リ ッ ク し ます。
•
設定の完了後、 [Next] を ク リ ッ ク し 、 ク ロ ッ ク バ ッ フ ァ ダ イ ア ロ グ ボ ッ ク ス に進みます。
ア ド バン ス ド オプ シ ョ ン
図 11 に示すア ド バン ス ド オプシ ョ ン ウ ィ ン ド ウ で、 さ ら に詳細な DCM オプシ ョ ン を設定で き ます。
•
XAPP462 (v1.0) 2003 年 7 月 11 日
デフ ォ ル ト では、DCM は FPGA の コ ン フ ィ ギ ュ レーシ ョ ンに対 し て影響を与え ませんが、 [Yes] を
ク リ ッ ク し た場合は、 DCM が LOCKED 出力を アサー ト す る ま で、 FPGA コ ン フ ィ ギ ュ レーシ ョ
ン で DONE 信号のアサー ト を遅 ら せ る こ と がで き ま す。 こ の設定は、 DCM の STARTUP_WAIT
属性で定義 し ます。 こ の よ う に [Yes] を選択 し た場合は、 ビ ッ ト ス ト リ ーム生成オプシ ョ ン の追加
www.xilinx.co.jp
21
R
DCM Wizard
変更が必要です。 こ の変更については、 「DCM LOCKED 出力 と コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク
の設定」 で説明 し ます。
•
あ る 特定の DCM において CLKIN 入力の周波数が高すぎ る 場合には、 [Divide Input Click by 2]
の [Yes] を ク リ ッ ク し 、 入力周波数を半減 さ せて く だ さ い。 こ れに よ っ て、 DCM ブ ロ ッ ク に入力
前のデ ュ ーテ ィ サ イ ク ルは約 50% にな り ます。 こ の設定は、 DCM の CLK_FEEDBACK 属性で
定義 し ます。
•
ソ ース同期のデー タ 転送が必要な アプ リ ケーシ ョ ン では、 [DCM Deskew Adjust] 値を
[SOURCE_SYNCHRONOUS] に変更 し ます。 SOURCE_SYNCHRONOUS ま たは
SYSTEM_SYNCHRONOUS 以外の値を使用する 場合は、ザ イ リ ン ク ス にお問い合わせ く だ さ い。
こ の設定は、 DCM の CLK_FEEDBACK 属性を定義 し ます。 「ス キ ュ ー調整」 を参照 し て く だ さ
い。
•
[OK] を ク リ ッ ク し 、 変更を適用 し て [General Setup] ウ ィ ン ド ウ に戻 り ます。
FPGA
Xilinx DCM Wizard Advanced
DONE
DCM
Wait for DCM lock before DONE signal goes high?
Yes
No
STARTUP_WAIT
DCM
Divide Input Clock by 2?
CLKIN
1/2
Yes
No
CLKIN_DIVIDE_BY_2
DCM Deskew
Adjust:
SYSTEM_SYNCHRONOUS
DESKEW_ADJUST
OK
Cancel
[OK]
DCM
x462_11_061703
図 11 : DCM ア ド バン ス ド オプ シ ョ ン設定
クロ ッ ク バッ フ ァ
次に DCM の各 ク ロ ッ ク 出力に対す る ク ロ ッ ク バ ッ フ ァ を定義 し ます(図 12 参照)。 DCM Wizard のデ
フ ォ ル ト 設定では、 自動的にすべての DCM ク ロ ッ ク 出力にグ ロ ーバル バ ッ フ ァ (BUFG) を使用 し ま
すが、 Spartan-3 デバ イ ス では、 上辺お よ び下辺のそれぞれにあ る 4 つのグ ロ ーバル バ ッ フ ァ を同一辺
にあ る 2 つの DCM で共有 し ます。 XC3S50 では、 上辺ま たは下辺に 1 つの DCM があ り 、 オプシ ョ ン
と し て同 じ 辺にあ る 4 つの ク ロ ッ ク バ ッ フ ァ すべてに接続で き ます。
•
[Clock Buffer Settings] にあ る [Customize] を ク リ ッ ク し 、 DCM の各 ク ロ ッ ク 出力に ク ロ ッ ク
バ ッ フ ァ の種類を指定 し ます。
•
DCM の各 ク ロ ッ ク 出力に対 し て、 リ ス ト か ら [Clock Buffer] 出力 タ イ プを選択 し ます。 表 10 に
選択可能な ク ロ ッ ク バ ッ フ ァ オプシ ョ ン を示 し ます。
•
[Enabled Buffer] 出力 タ イ プ を使用す る 際には、 バ ッ フ ァ イ ネーブル (CE) 入力の信号名を指定で
き ますが、 自動的に作成 さ れた信号名 も 使用で き ます。
22
•
[Clock Mux] 出力 タ イ プ を使用する 場合 も セ レ ク ト (S) 入力の信号名を指定で き ますが、 自動的に
作成 さ れた信号名 も 使用で き ます。
•
[Next] ま はた [Finish] を ク リ ッ ク し 、 設定を完了 し ます。 [Next] ボ タ ンが表示 さ れ る のは、
[General Setup] ダ イ ア ロ グ ウ ィ ン ド ウ で CLKFX 出力 ま たは CLKFX180 出力 を選択 し た場合の
みです。 それ以外の場合は、 [Finish] を ク リ ッ ク し 、 HDL 出力を生成 し ます ( 「HDL 出力の生成」
を参照 し て く だ さ い)。
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
DCM Wizard
Xilinx DCM Wizard - Clock Buffers
DCM Wizard
This dialog sets up the clock buffers for all the DCM clock outputs selected in the General
Setup dialog.
BUFG
DCM
Clock Buffer Settings
U se Global Buffer (BUFG) for all selected DCM clock outputs
C ustomize (using grid below)
DCM
FPGA
Reference the ‘More Info’ button for more information on customizing the global buffers.
Clock Buffer
FPGA
Input I0
Input I1
Input CE/S
Output O
Global Buffer
CLK0
Enabled Buffer
CLK90
CLK0_OUT
Clock Mux
CLK2X180
Lowskewline
CLK180
CLK180_OUT
Local Routing
CLK270
CLK270_OUT
Global Buffer
Global Buffer
CLK2X
CLK2X_OUT
CLKFX
CLK90_ENABLE_IN
CLK90_OUT
CLKFX_SELECT_IN
CLKFX_OUT
Enabled Buffer
Clock Mux
Lowskewline
Local Routing
None
M ore Info
< Back
N ext >
Cancel
[Next]
x462_12_061703
図 12 : DCM Wizard を使用 し た DCM 出力のバ ッ フ ァ オプ シ ョ ン設定
表 10 : ク ロ ッ ク バ ッ フ ァ 出力 タ イ プの設定
クロ ッ ク バッ フ ァ
図
4 つあ る グ ロ ーバル バ ッ フ ァ (BUFG) の 1 つを同 じ 辺にあ る DCM に接続 し ます。
グ ロ ーバル
バッ フ ァ
BUFG
I0
イ ネーブル
バッ フ ァ
説明
O
BUFGCE
I0
CE
XAPP462 (v1.0) 2003 年 7 月 11 日
O
4 つあ る グ ロ ーバル バ ッ フ ァ の う ち イ ネーブル ク ロ ッ ク バ ッ フ ァ (BUFGCE) と し て設定
し てい る バ ッ フ ァ に接続 し ます。 CE 入力は High の場合にバ ッ フ ァ を イ ネーブルに し 、
Low の場合は、 バ ッ フ ァ 出力がゼ ロ にな り ます。
www.xilinx.co.jp
CE
O
0
0
1
I0
23
R
DCM Wizard
表 10 : ク ロ ッ ク バ ッ フ ァ 出力 タ イ プの設定
クロ ッ ク バッ フ ァ
クロック
マルチプ レ ク サ
図
説明
BUFGMUX
4 つあ る グ ロ ーバル バ ッ フ ァ の う ち イ ネーブル ク ロ ッ ク マルチプ レ ク サ (BUFGMUX) と
し て設定 し てい る バ ッ フ ァ に接続 し ます。 S 入力は ク ロ ッ ク ソ ース を選択 し ます。
I0
O
I1
S
低ス キ ュ ー ラ イ ン
S
O
0
I0
1
I1
低ス キ ュ ーのプ ロ グ ラ マブル相互接続に接続 し ます。
I0
ロ ーカル配線
ス キ ュ ーが重要ではない場合において、 ロ ーカル相互接続に接続 し ます。
I0
なし
DCM 出力をデ ィ ス エーブルに し ます。
ク ロ ッ ク周波数合成
図 13 に示す ク ロ ッ ク 周波数合成ダ イ ア ロ グ ボ ッ ク ス は、 [General Setup] ダ イ ア ロ グ ウ ィ ン ド ウ で
CLKFX 出力ま たは CLKFX180 出力を選択 し た場合のみに表示 さ れます。
こ こ では、 必要な出力周波数、 ま たは逓倍お よ び分周の係数を指定 し ます。 [Valid Ranges for Selected
Speed Grade] で周波数範囲 (CLKIN を ns で指定 し た場合は遅延) を 指定 し ま す。 周波数範囲には、
DFS_FREQUENCY_MODE 属性で設定可能な両方の値が表示 さ れ ま す。 DCM で DLL に関係 し た ク
ロ ッ ク 出力を使用す る 場合、 こ の範囲条件は よ り 厳 し く な り ます。
•
[Use output frequency] のチ ェ ッ ク を オンに し 、 MHz ま たは ns で周波数を入力 し ます。
[Calculate] を ク リ ッ ク す る と 、 CLKFX_MULTIPLY 属性お よ び CLKDV_DIVIDE 属性の値が算
出 さ れます。 入力 し た範囲か ら 可能な逓倍値お よ び分周値を算出で き ない場合は、 DCM Wizard で
別の出力周波数値を入力す る よ う に求め る エ ラ ー メ ッ セージが表示 さ れます。 ソ リ ュ ーシ ョ ンがあ
る 場合は、 [Generated Output] に逓倍値、 分周値、 お よ びジ ッ タ の値が表示 さ れます ( 「 ク ロ ッ
ク ジ ッ タ お よ び位相 ノ イ ズ」 を参照 し て く だ さ い)。
24
•
オプシ ョ ン と し て、 [Use Multiply (M) and Divide (D) values] のチ ェ ッ ク をオンに し 、 こ れ ら の値
を 入力 で き ま す。 [Calculate] を ク リ ッ ク し 、 出力周波数お よ び ジ ッ タ を 計算 し ま す。 結果は
[Generated Output] に表示 さ れます。
•
最後に、[Finish] を ク リ ッ ク し 、HDL 出力を生成 し ます ( 「HDL 出力の生成」 を参照 し て く だ さ い)。
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
VHDL お よび Verilog のイ ン ス タ ン シ エーシ ョ ン
Xilinx DCM Wizard - Clock Frequency Synthesizer
Valid Ranges for Selected Speed Grade:
DFS_FREQUENCY_MODE
MHz
ns
[Calculate]
DCM Wizard
(M)
(D)
DFS
Mode
Fin (MHz)
Low
24.000 - 18]0.000
24.000 - 210.000
High
50.000 - 270.000
210.000 - 270.000
Fout (MHz)
Inputs for Jitter Calculations
U se output frequency
87.5
M Hz
ns
[Calculate]
(M)
(D)
U se Multiply (M) and Divide (D) values:
[Calculate]
M
4
1
D
CLKFX_MULTIPLY
CLKFX_DIVIDE
C alculate
Input Clock Frequency: 30 ns
Generated Output:
M
D
Output
Frequency
(MHz)
29
11
87.5
CLKFX_MULTIPLY
Period Jitter
(unit interval)
0.10
Period Jitter
(pk-to-pk ns)
1.11
CLKFX_DIVIDE
M ore Info
< Back
Finish
Cancel
[Finish]
DCM
x462_13_061803
図 13 : デジ タ ル周波数合成の逓倍値 と 分周値の設定、 お よびジ ッ タ の算出
HDL 出力の生成
すべてのパ ラ メ ー タ を入力後、 [Finish] を ク リ ッ ク する と 、 図 14 に示す よ う に DCM Wizard が自動的
に VHDL ま たは Verilog HDL 出力フ ァ イ ルを生成 し ます。 ま た、 ユーザー制約フ ァ イ ル (UCF) も 生成
さ れます。
Xilinx Architecture Wizard
Generating HDL file...
Cancel
x462_14_061803
図 14 : DCM Wizard での VHDL または Verilog HDL 出力フ ァ イルの生成
VHDL および
Verilog のイ ン ス
DCM Wizard を 使用 し 、 VHDL ま た は Verilog HDL 記述 を 作成す る 方法が最 も 容易ですが、 VHDL
ソ ースお よ び Verilog ソ ース も 利用で き ます。
タ ン シ エーシ ョ ン
Project Navigator の言語テ ン プ レー ト
ISE 5.2i お よ びそれ以降の Project Navigator では、 DCM の言語テ ン プ レー ト が使用で き ます。 DCM
テ ンプ レー ト を選択す る 場合は、Project Navigator の メ ニ ュ ーで [Edit] → [Language Templates] を ク
リ ッ ク し ま す。 図 15 に示すテ ン プ レ ー ト で Verilog フ ォ ルダ ま たは VHDL フ ォ ルダ を展開表示 し 、
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
25
R
ク ロ ッ ク スキ ュ ーの低減
Component Instantiation フ ォ ルダの DCM フ ォ ルダ を選択 し ます。 次に、DCM フ ォ ルダにあ る DCM
ソ ース フ ァ イ ルを選択す る と 、 隣接 し た ウ ィ ン ド ウ に ソ ース フ ァ イ ルが表示 さ れます。
Templates:
Verilog
Component Instantiation
Block RAM
DCM
// Module: BUFG_CLK0_SUBM
//
// Description: Verilog Submodule
//
DCM with CLK0 deskew
//
/////////////////////////////module BUFG_CKL0_SUBM (
CLK0
CLK0_FB
CLK2X
CLK_IN,
RST,
CLK1X,
LOCK
Language Templates
x462_15_061803
図 15 : Project Navigator 言語テ ン プ レー ト での DCM デザイ ンの選択
こ の フ ァ イ ルは参照用 と し て、 ま たは内容を新規 ソ ース フ ァ イ ルに貼 り 付けて使用で き ます。
VHDL お よび Verilog リ フ ァ レ ン ス フ ァ イル
ま た、 こ の VHDL お よ び Verilog の ソ ース フ ァ イ ルは、 次のザ イ リ ン ク ス FTP サ イ ト か ら ダ ウ ン ロ ー
ド で き ます。
ク ロ ッ ク スキ ュ ー
の低減
•
VHDL DCM リ フ ァ レ ン ス フ ァ イ ル
ftp://ftp.xilinx.com/pub/applications/xapp/xapp462_vhdl.zip
•
Verilog DCM リ フ ァ レ ン ス フ ァ イ ル
ftp://ftp.xilinx.com/pub/applications/xapp/xapp462_verilog.zip
ス キ ュ ーの低減は、 DCM の基本的な機能の 1 つです。 50 MHz 以上の速度で動作する デザ イ ンでは、 ク
ロ ッ ク ス キ ュ ーの低減が重要であ り 、 こ の ク ロ ッ ク ス キ ュ ーの低減に関連す る 概念は DCM を使用 し
たその他のアプ リ ケーシ ョ ンに も 応用で き ます。
ク ロ ッ ク スキ ュ ー と は
ク ロ ッ ク ス キ ュ ーは、本質的にすべての同期シ ス テ ムに存在 し ます。 ク ロ ッ ク ソ ース に よ っ て生成 さ れ
た ク ロ ッ ク エ ッ ジは、 シ ス テ ム内の異な る 点に、 異な る 時間に到達 し ます。 こ れは、 1 つのデバ イ ス内
の場合 も ク ロ ッ ク で接続 さ れた異な る デバ イ スへの ク ロ ッ ク 入力の場合 も あ り ます。 こ こ で発生す る 到
達時間の差が ク ロ ッ ク ス キ ュ ーです。
図 16 に、 同期シ ス テ ムにおけ る ク ロ ッ ク ス キ ュ ーの例を示 し ます。 ク ロ ッ ク ソ ース に よ っ て、 ク ロ ッ
ク 入力が FPGA へ駆動 さ れ、 FPGA 上の入力 ピ ン に入 る と 、 内部の低 ス キ ュ ー グ ロ ーバル ク ロ ッ ク
ネ ッ ト ワー ク を使用 し て分配 さ れ、 FPGA 内部のフ リ ッ プ フ ロ ッ プに到達 し ます。 ク ロ ッ ク パ ス にあ る
各エ レ メ ン ト に よ っ て、 フ リ ッ プ フ ロ ッ プに ク ロ ッ ク エ ッ ジが到達する 時間に遅延が生 じ ます。 その結
果 と し て、 フ リ ッ プ フ ロ ッ プにおけ る ク ロ ッ ク 入力 (B) で遅延が発生する 、 つま り ク ロ ッ ク ソ ース (A)
と 比較 し て ス キ ュ ーが発生 し ます。 こ の例では、 ク ロ ッ ク ス キ ュ ー、 つま り 到達時間の差を ∆b と し ま
す。
26
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク スキ ュ ーの低減
FPGA
B
A
C
Other
Device on
Board
A
B
C
b
c
x462_16_062403
図 16 : すべての同期シ ス テムに存在する ク ロ ッ ク スキ ュ ー
同様に、 ク ロ ッ ク ソ ー ス は FPGA 内部で再びバ ッ フ ァ を介 し 、 ボー ド 上にあ る 別のデバ イ ス を駆動 し
ます。 こ の例では、 ク ロ ッ ク ソ ース は再び入力ピ ン を通っ て FPGA に入 り 、 グ ロ ーバル ク ロ ッ ク ネ ッ
ト ワー ク で分配 さ れ、 FPGA の出力ピ ン を通っ て、 PCB 上の ト レース で別のデバ イ ス に接続 さ れます。
そのため、 ク ロ ッ ク パ ス におけ る 総遅延が大 き く な り 、 その結果 と し て発生す る ス キ ュ ー ∆c も 大 き く
な り ます。
ク ロ ッ ク スキ ュ ー : パフ ォ ーマ ン ス低下の原因
ク ロ ッ ク ス キ ュ ーに よ っ て、 セ ッ ト ア ッ プ時間 お よ び clock-to-output 遅延が増加 し 、 ク ロ ッ ク サ イ ク
ル時間が長 く な る ため、 デザ イ ン のパフ ォ ーマ ン ス全体が低下す る 可能性があ り ます。 ま た、 ク ロ ッ ク
ス キ ュ ーに よ っ て、 長いホール ド 時間が必要 と な る 場合があ り 、 こ のホール ド 時間を確保で き ない場合
には、 不安定な動作を引 き 起 こ す可能性があ り ます。
スキ ュ ーの削除
ク ロ ッ ク ス キ ュ ー を 削除す る 方法は あ る の で し ょ う か。 幸い に も 、 デ ジ タ ル ク ロ ッ ク マ ネー ジ ャ
(DCM) は こ の よ う な機能を備え てい ます。 図 17 に、図 16 と 同様の例を示 し ますが、 こ こ では Spartan3 デバ イ ス を使用 し てい ます。 2 つの DCM に よ っ て、 次の よ う に ク ロ ッ ク ス キ ュ ーが削除 さ れます。 1
つの DCM がFPGA 内部で ク ロ ッ ク 入力 さ れた も のか ら の ス キ ュ ーを削除 し 、も う 一方の DCM が ボー
ド 上で別のデバ イ ス に ク ロ ッ ク 入力す る 場合の ス キ ュ ーを削除 し ます。 こ の結果、 (A)、 (B) お よ び (C)
のすべての点で理想的な ク ロ ッ ク 間のア ラ イ メ ン ト を実現で き ます。
実際には、 ク ロ ッ ク ス キ ュ ーは ど の よ う に削除 さ れ る ので し ょ う か。 ク ロ ッ ク ス キ ュ ーの原因は、 ク
ロ ッ ク パ ス におけ る 遅延で あ る こ と を 思い出 し て く だ さ い。 図 17 では、 (B) の ク ロ ッ ク で ∆ 分の ス
キ ュ ーがあ り 、 (C) の ク ロ ッ ク に ∆c 分の ス キ ュ ーがあ り ま し たが、 ク ロ ッ ク を (B) に ∆b 分早 く 到達 さ
せ、 (C) に ∆c 分早 く 到達 さ せ る 方法があ る 場合には、 ど の よ う にな る で し ょ う か。 こ の よ う な場合に
は、 すべての ク ロ ッ ク のエ ッ ジが一致する よ う に調整 さ れ、 セ ッ ト ア ッ プ時間お よ び clock-to-output 遅
延が減少す る ため、 シ ス テ ム全体のパフ ォーマ ン ス が向上 し ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
27
R
ク ロ ッ ク スキ ュ ーの低減
DCM
Spartan-3 FPGA
B
A
Other
Device on
Board
DCM
C
A
B
C
Ideal Clock Alignment
A
B
b
C
c
Early Clocks Eliminate Skew
x462_17_062403
図 17 : Spartan-3 デザイ ンにおける ク ロ ッ ク スキ ュ ーの削減
過去のク ロ ッ ク動作から 将来の ク ロ ッ ク動作を予測
Spartan-3 FPGA は非常に高度なデジ タ ル ロ ジ ッ ク を使用 し てい ますが、 将来の動作を予測す る こ と は
で き ま せん。 だた し 、 DCM は過去の ク ロ ッ ク 動作を使用 し 、 将来の ク ロ ッ ク 動作を予測す る ために役
立て ます。 シ ス テ ムに入力 さ れ る ほ と ん ど の ク ロ ッ ク の周波数は、 不変で単調であ る ため、 入力 ク ロ ッ
ク の周期 (T) も ほぼ一定にな り ます。
マ イ ナ ス の遅延を挿入 し 、 ク ロ ッ ク ス キ ュ ーの影響を無効にす る こ と はで き ないため、 DCM は目的 と
し てい る 時間に到達 し てい る よ う に見え る よ う に ク ロ ッ ク を遅 ら せます。 こ れは、 ど の よ う に行われ る
ので し ょ う か。 ク ロ ッ ク サ イ ク ルは、 一定の周期 (T) で繰 り 返 さ れます。 図 18 に示す よ う に、 (B) にお
け る ク ロ ッ ク は ∆b 分進んでい る よ う にみえ ますが、 実際には、 (T – ∆b) 分遅 く な っ てい ます。 同様に、
(C) におけ る ク ロ ッ ク は (T – ∆c) 分遅れてい ます。
Clock Period (T)
A
Delay=T-
b
b
B
Delay=T-
c
c
C
x462_18_061803
図 18 : 一定周波数のク ロ ッ ク を遅延 さ せる
28
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク スキ ュ ーの低減
入力 ク ロ ッ ク 信号は単調であ る ため、 ク ロ ッ ク 周期 (T) は容易にわか り ますが、 ク ロ ッ ク ス キ ュ ー遅延
であ る ∆b お よ び ∆c はど う で し ょ う か。 異な る 条件の元で、 複数のシ ス テ ムにおけ る 動作を詳細に検証
す る こ と に よ っ て、 こ れ ら の値を決定す る こ と も で き ますが、 実際には現実的であ る と は言え ません。
さ ら に、 ∆b お よ び∆c の値はデバ イ ス に よ っ て異な り 、 同一のデバ イ ス上で も 温度ま たは電圧に よ っ て
変化 し ます。
Spartan-3 DCM では、 ∆b お よ び ∆c を あ ら か じ め決定す る のではな く 、 フ ィ ー ド バ ッ ク ループに よ っ
て遅延を確認す る 遅延 ロ ッ ク ループ (DLL) を使用 し ます (図 17 を参照 し て く だ さ い)。 こ こ で示 し てい
る 例では、 2 つの DCM を使用 し て、 1 つの DCM が内部信号の ス キ ュ ーを削減 し 、 も う 一方の DCM
が外部デバ イ ス への信号の ス キ ュ ーを削減 し ま す。 ま た、 両方の DCM に各 ク ロ ッ ク フ ィ ー ド バ ッ ク
ループがあ り ます。 DLL は温度ま たは電圧に よ っ て引き 起 こ さ れ る わずかな変更に も 適応 し ます。
タ ーゲ ッ ト のロ ッ ク
適切な遅延を決定 し 、 挿入す る ためには、 DCM で数千 ク ロ ッ ク サ イ ク ルのサンプルが必要です。 DCM
で適切な遅延が挿入 さ れ る と 、 LOCKED 出力信号がアサー ト さ れます。
DCM で LOCKED 信号がアサー ト さ れ る ま で、 DCM ク ロ ッ ク 出力は使用 し ないで く だ さ い。 DCM が
入力 ク ロ ッ ク 信号に対 し て ロ ッ ク 状態にな る ま での ク ロ ッ ク 出力は無効です。 DCM が ロ ッ ク 状態にな
る 前の DCM 出力 ク ロ ッ ク には、 グ リ ッ チ、 スパ イ ク な ど の不正な要素が含まれてい る 可能性があ り ま
す。
アプ リ ケーシ ョ ンでは、 LOCKED 信号を出力 ク ロ ッ ク が有効であ る こ と を確認す る ために使用 し ます。
LOCKED 信号を ク ロ ッ ク 信号が使用可能な状態であ る こ と を示す も の と し て理解 し て く だ さ い。
安定 し た単調な ク ロ ッ ク 入力
DCM が適切に動作す る ためには、 安定 し た単調な ク ロ ッ ク 入力が必要です。 その よ う な ク ロ ッ ク 入力
に よ っ て、 ク ロ ッ ク 周期を予測で き 、 出力 ク ロ ッ ク の タ イ ミ ン グ を適切に調整で き ます。 DCM は、 いっ
たん ロ ッ ク 状態にな る と 、 『Spartan-3 デー タ シー ト 』 で指定 さ れた値ま での ク ロ ッ ク 周期変動に対応で
き ます。 「DCM 使用のための ク ロ ッ ク 条件」 を参照 し て く だ さ い。
入力 ク ロ ッ ク 周波数が変動 し て 指定 さ れ た 範囲外 と な っ た 場合、 DCM の ロ ッ ク 状態が解除 さ れ、
LOCKED 出力は Low にな り ます。 ロ ッ ク 状態が解除 さ れた場合、 DCM を リ セ ッ ト し て再び ロ ッ ク す
る 必要があ り ます。 入力 ク ロ ッ ク が指定 さ れた制限を満た し てい る 場合は、 LOCKED 出力が High であ
る 限 り 、 出力 ク ロ ッ ク は常に有効です。 し か し 、 LOCKED 出力は High を維持 し てい ますが、 ク ロ ッ ク
入力が指定 さ れた範囲外で、 CLKDV 出力ま たは CLKFX 出力が無効 と な る 場合があ る ため、 問題のな
いデザ イ ン を作成す る ためには、 安定 し た単調な ク ロ ッ ク 入力が重要です。
DCM CLKIN 入力へのパ ス と し て、 4 つのグ ロ ーバル バ ッ フ ァ 入力 (IBUFG) の う ち、 デバ イ ス上で同
一辺に あ る バ ッ フ ァ 入力の 1 つを使用す る こ と を推奨 し ま す。 IBUFG パ ス を使用す る こ と に よ っ て、
パ ッ ド か ら グ ロ ーバル バ ッ フ ァ を通っ て DCM に到達ま での遅延が、 ス キ ュ ー調整 さ れた出力か ら 削除
さ れ ま す。 ただ し 、 表 11 に示すその他のパ ス も 使用で き ま す。 ま た、 CLKIN 入力を駆動す る 信号は、
汎用相互接続を通 る 汎用入力ピ ン (IBUF プ リ ミ テ ィ ブ )、 グ ロ ーバル バ ッ フ ァ 入力 (IBUFG)、 グ ロ ーバ
ル バ ッ フ ァ マルチプ レ ク サ (BUFGMUX、 BUFGCE) か ら の入力 と し て使用で き ます。 同様に、 LVDS
ク ロ ッ ク 入力を ク ロ ッ ク 入力 と し て使用で き る 場合 も あ り ます。 ス キ ュ ー調整 ロ ジ ッ ク は、LVCMOS ま
たは LVTTL の よ う なシ ン グル エン ド の ク ロ ッ ク 入力のために特性評価 さ れてい ます。 ただ し 、 差動信
号では、 I/O タ イ ミ ン グに よ っ て、 わずかな位相エ ラ ーが発生す る 可能性があ り ます。 特定の I/O タ イ
ミ ン グについては 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
29
R
ク ロ ッ ク スキ ュ ーの低減
表 11 : ク ロ ッ ク入力 ソ ース
CLKIN ソ ース
グ ロ ーバル バ ッ フ ァ 入力を使
用
IBUFG
I
説明
グ ロ ーバル バ ッ フ ァ 入力、 IBUFG、 は DCM への外部 ク ロ ッ ク の ソ ース と し て適切です。 パ ッ ド
か ら グ ロ ーバル バ ッ フ ァ を通 り 、 CLKIN 入力ま での遅延が算出 さ れ、 デス キ ュ ー ク ロ ッ ク 出力
か ら 削除 さ れます。
O
グ ロ ーバル ク ロ ッ ク バ ッ フ ァ
BUFG
I
O
BUFG、 BUFGCE、 ま たは BUFGMUX プ リ ミ テ ィ ブ を使用する グ ロ ーバル ク ロ ッ ク バ ッ フ ァ は
内部生成 さ れた DCM への ク ロ ッ ク ソ ース と し て適切です。 グ ロ ーバル バ ッ フ ァ を通 る 際の遅延
が算出 さ れ、 デス キ ュ ー ク ロ ッ ク 出力か ら 削除 さ れます。
BUFGCE
I
O
CE
BUFGMUX
I0
O
I1
S
汎用 I/O を使用
IBUF
I
O
内部 ロ ジ ッ ク か ら 派生
Internal
Logic
任意のユーザー I/O、 IBUF は、 外部 ク ロ ッ ク の ソ ース と し て使用で き ます。 パ ッ ド か ら DCM へ
の遅延を あ ら か じ め決定する こ と はで き ません。 こ れは入力パス と な る 可能性を持つパス が多数
存在す る ためであ り 、 その結果、 DCM は遅延を削除で き ません。
FPGA 内部の ロ ジ ッ ク も ク ロ ッ ク ソ ース と し て使用で き ます。 し か し 、 ロ ジ ッ ク か ら DCM への遅
延を あ ら か じ め決定する こ と はで き ないため、 DCM は遅延を削除で き ません。
確実な ソ ースからのフ ィ ー ド バ ッ ク
適切な遅延に対 し て ロ ッ ク 信号を アサー ト す る ために、 DCM は、 入力 ク ロ ッ ク お よ び ク ロ ッ ク 分散遅
延後に タ ッ プ さ れ る フ ィ ー ド バ ッ ク ク ロ ッ ク の両方を モニ タ し ます。 ク ロ ッ ク フ ィ ー ド バ ッ ク パ ス に
おけ る 総遅延に制限はあ り ま せん。 DLL では、 必要に応 じ て逓倍 し た ク ロ ッ ク 周期を使用す る こ と に
よ っ て出力 ク ロ ッ ク を遅 ら せます。 こ の よ う に、 DCM は内部遅延ま たは外部遅延を相殺で き ますが、 ク
ロ ッ ク フ ィ ー ド バ ッ ク は適切な フ ィ ー ド バ ッ ク 地点に接続す る 必要があ り ます。
内部 ク ロ ッ ク信号からのスキ ュ ー削除
図 19 に示す よ う に、 FPGA 内部の ス キ ュ ーを削減する 場合、 フ ィ ー ド バ ッ ク タ ッ プは FPGA 内部のエ
レ メ ン ト に入力 さ れ る ク ロ ッ ク と 同一の ク ロ ッ ク と な り ます。 通常、 フ ィ ー ド バ ッ ク ク ロ ッ ク は、 デバ
イ ス上で DCM と 同一辺にあ る ク ロ ッ ク バ ッ フ ァ (BUFG)、 ま たはグ ロ ーバル ク ロ ッ ク マルチプ レ ク
サ (BUFGMUX ま たは BUFGCE) に接続 さ れてい る DCM か ら の CLK0 出力 (位相シ フ ト な し ) です。
ま たは、 CLK0 出力ではな く 、 DCM の CLK2K 出力 (位相シ フ ト な し 、 2 逓倍) を フ ィ ー ド バ ッ ク と し
て使用で き ます。
30
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク スキ ュ ーの低減
(or BUFGMUX,
or BUFGCE)
IBUFG
I
BUFG
O
CLKIN
I
CLK0
(or CLK2X)
(
O
FPGA
DCM
CLKFB
)
“Clock Good”
LOCKED
)
(
x462_19_061803
図 19 : 内部ク ロ ッ ク信号でのスキ ュ ー削減
外部 ク ロ ッ ク信号からのスキ ュ ー削除
外部 ク ロ ッ ク を使用 し た DCM フ ィ ー ド バ ッ ク の設計は、内部 ク ロ ッ ク の場合 よ り も 複雑です。 図 20 に
示す よ う に、理想的には、 フ ィ ー ド バ ッ ク ク ロ ッ ク は PCB ト レース、 ま たは外部 ク ロ ッ ク の再バ ッ フ ァ
の後のすべての外部 ク ロ ッ ク に入力 さ れ る 点か ら 始ま り ます。
FPGA
IBUFG
I
OBUF
O
CLKIN
IBUFG
I
I
CLK0
(or CLK2X)
CLKFB
CLK
OBUF
DCM
O
O
I
LOCKED
O
ENABLE
SRL16
D
Q
RESET
WCLK
A[3:0]
INIT=000F
(
)
x462_20_062203
図 20 : 外部ク ロ ッ ク信号でのスキ ュ ー削減
LOCKED 信号は、 DCM が ロ ッ ク 状態にな っ た こ と 、 お よ び ク ロ ッ ク 信号が有効であ る こ と を示 し ま
す。 LOCKED 信号に よ っ て、 外部デバ イ ス が使用可能にな り 、 その反転バージ ョ ンはア ク テ ィ ブ Low
のチ ッ プ イ ネーブル信号に接続で き ます。
コ ン フ ィ ギ ュ レーシ ョ ン後の DCM リ セ ッ ト
外部 フ ィ ー ド バ ッ ク を 使用す る 場合、 コ ン フ ィ ギ ュ レ ーシ ョ ン 直後に DCM の リ セ ッ ト を パル ス し 、
DCM の ロ ッ ク 状態を維持する 必要があ り ます。 図 20に示す よ う に、 0x000F で初期化 さ れた SRL16 か
ら 必要な リ セ ッ ト パルス信号を出力で き ます。 「RST 入力」 を参照 し て く だ さ い。
なぜ リ セ ッ ト する必要があるのか
なぜ、 こ の よ う に追加的な リ セ ッ ト パル ス が必要なので し ょ う か。 最適に ロ ッ ク す る ためには、 DCM
を ロ ッ ク 状態に し 、 その状態で安定 さ せ る ために、 外部フ ィ ー ド バ ッ ク で コ ン フ ィ ギ ュ レーシ ョ ン さ れ
た DCM で CLKIN お よ び CLK0 ま たは CLK2X のいずれかの信号を使用す る 必要があ り ます。 コ ン
フ ィ ギ ュ レーシ ョ ン実行中は、 FPGA の I/O バ ッ フ ァ が ま だア ク テ ィ ブではないために、 外部フ ィ ー ド
バ ッ ク 、 CLKFB を使用で き ません。
コ ン フ ィ ギ ュ レ ーシ ョ ン の終了時に、 デバ イ ス が ス タ ー ト ア ッ プ シーケ ン ス を開始す る と 、 DCM は
キ ャ プチ ャ プ ロ セ ス を開始 し ます。 こ の時点では FPGA のグ ロ ーバル 3- ス テー ト 信号 (GTS) はアサー
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
31
R
ク ロ ッ ク スキ ュ ーの低減
ト さ れてい る ため、 すべての出力ピ ンは 3- ス テー ト (ハ イ - イ ン ピーダ ン ス、 フ ロ ーテ ィ ン グ ) 状態を維
持 し てい ます。 こ のため、 CLKFB 信号の ロ ジ ッ ク ス テー ト はわか り ません。
GTS のアサー ト 状態の解除後、CLKFB に信号が現れ、DCM が CLKFB 信号を取 り 込みますが、 リ セ ッ
ト パルス がない場合、 DCM が適切な時点で ロ ッ ク し ない可能性があ り 、 DCM でジ ッ タ がわずかに増
加 し 、 ク ロ ッ ク サ イ ク ル レ イ テ ン シ も 増加す る 可能性があ り ます。
ま た、 リ セ ッ ト パル ス がない場合、 PCB のシ グナル イ ン テ グ リ テ ィ の問題に よ っ て、 3- ス テー ト 状態
にあ る CLKFB 信号がボー ド 上でほかの信号 と ク ロ ス カ ッ プルす る と い う 問題が発生す る 可能性があ
り ます。 DCM では、 こ の無効な ク ロ ス カ ッ プル さ れた信号を CLKFB 信号 と 認識 し 、 ロ ッ ク す る ため、
GTS 信号のアサー ト が解除 さ れ、 適切な CLKFB 信号が現れた と き に ロ ッ ク で き ない場合があ り ます。
遅延ロ ッ ク ループ と は
ク ロ ッ ク 遅延を削除す る ための 2 つの タ イ プの回路
•
遅延 ロ ッ ク ループ (DLL)
•
位相 ロ ッ ク ループ (PLL)
DLL お よ び PLL には、 ク ロ ッ ク 分散遅延を削除す る と い う 機能以外に、 周波数合成、 ク ロ ッ ク 調整、 お よ び位相シ フ ト な ど の機能が
あ り ます。
遅延ロ ッ ク ループ (DLL)
図 21 に示す よ う に、単純な形の DLL は タ ッ プ遅延 ラ イ ンお よ び制御 ロ ジ ッ ク で構成 さ れます。 遅延 ラ イ ンは、入力 ク ロ ッ ク 、CLKIN、
に遅延を挿入 し た ク ロ ッ ク を生成 し 、 ク ロ ッ ク 分散ネ ッ ト ワ ー ク では、 その ク ロ ッ ク がすべての内部レ ジ ス タ お よ び ク ロ ッ ク フ ィ ー
ド バ ッ ク CLKFB ピ ンに配線 さ れます。 一方、 制御 ロ ジ ッ ク は、 遅延 ラ イ ン を調整す る ために、 常に入力 ク ロ ッ ク お よ びフ ィ ー ド バ ッ
ク ク ロ ッ ク をサンプル し ます。 遅延 ラ イ ンでは、電圧制御遅延ま たは不連続の遅延エ レ メ ン ト が使用 さ れてい ます。 最適で安定 し たパ
フ ォーマ ン ス を実現す る ために、 Spartan-3 DLL ではすべてのデジ タ ル遅延 ラ イ ン を使用 し ます。
CLKIN
Variable
Delay Line
CLKOUT
Clock
Distribution
Network
Control
CLKFB
x462_21_061903
図 21 : 遅延ロ ッ ク ループ (DLL) ブ ロ ッ ク図
DLL は入力 ク ロ ッ ク と フ ィ ー ド バ ッ ク ク ロ ッ ク の立ち上が り エ ッ ジが調整 さ れ る ま で、 それ ら の ク ロ ッ ク 間に遅延を挿入 し 、 ク ロ ッ
ク 周期か ら ク ロ ッ ク 分散遅延分を差 し 引いた時間だけ フ ィ ー ド バ ッ ク ク ロ ッ ク を遅 ら せる こ と に よ っ て機能 し ます。 DLL お よ び PLL
の専門的解説では、 フ ィ ー ド バ ッ ク ク ロ ッ ク は 360° 位相がずれた も の、 つま り 同一の位相に再び現れ る も の と 定義 さ れてい ます。
入力 ク ロ ッ ク と フ ィ ー ド バ ッ ク ク ロ ッ ク のエ ッ ジが調整 さ れ る と 、 DLL が ロ ッ ク し 、 こ れ ら の 2 つの ク ロ ッ ク 間に認識で き る 差異は
な く な り ます。 つま り 、 DLL 出力 ク ロ ッ ク の ク ロ ッ ク 分散ネ ッ ト ワー ク におけ る 遅延がな く な り 、 ソ ース ク ロ ッ ク と その ロ ー ド 間の
遅延を効果的に削除 さ れてい ます。
32
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク スキ ュ ーの低減
位相ロ ッ ク ループ (PLL)
PLL は DLL と 同様の基本的な機能を持つ よ う に設計 さ れてい ますが、異な る アーキ テ ク チ ャ を使用 し ます。 図 22 に示す よ う に、PLL
と DLL の根本的な違いは、 DLL が遅延 ラ イ ン を使用す る のに対 し て、 PLL では電圧制御オシ レー タ を使用 し 、 CLKIN と 同様の ク
ロ ッ ク 信号を生成 し ます。 位相検出器お よ びフ ィ ル タ で構成 さ れ る 制御 ロ ジ ッ ク は、 ク ロ ッ ク 分散シ ス テ ムでの遅延を補 う よ う にオシ
レー タ の周波数 と 位相を調整 し ます。 PLL の制御 ロ ジ ッ ク は、 入力 ク ロ ッ ク と フ ィ ー ド バ ッ ク ク ロ ッ ク 、 CLKFB を比較 し 、 入力 ク
ロ ッ ク の立ち上が り エ ッ ジが フ ィ ー ド バ ッ ク ク ロ ッ ク の立ち上が り エ ッ ジ と 一致す る よ う にオシ レー タ の ク ロ ッ ク を調整 し ます。 そ
の後 PLL は ロ ッ ク 状態にな り ます。
Voltage Controlled
Oscillator
CLKIN
CLKOUT
Clock
Distribution
Network
Control
CLKFB
x462_22_061903
図 22 : 位相ロ ッ ク ループ (PLL) ブ ロ ッ ク図
イ ン プ リ メ ン テーシ ョ ン
DLL お よ び PLL 内部では、 アナ ロ グ回路ま たはデジ タ ル回路のいずれかが使用 さ れ、 各回路はぞれぞれに利点があ り ます。 慎重な回
路設計を行っ た アナ ロ グ回路の場合、 DLL ま たは PLL では よ り 厳密に タ イ ミ ン グ を調整で き 、 使用す る シ リ コ ン エ リ アが少な く な
り ます。
一方、 デジ タ ル回路を使用 し た設計の場合、 ノ イ ズ耐性が優れ、 消費電力が低 く 、 ジ ッ タ のパフ ォーマ ン ス よ り 良い と い う 利点があ り
ます。 ま た、 ク ロ ッ ク を停止 さ せ る こ と がで き る ため、 電力管理が容易にな り ます。 アナ ロ グ設計では、 追加の電力供給が必要な場合
があ り 、よ り 正確に電源供給の制御を行 う 必要があ る ために、新 し い処理テ ク ノ ロ ジに移行す る 際に問題が発生す る 可能性があ り ます。
DLL と PLL
アプ リ ケーシ ョ ンで PLL ま たは DLL を選択す る 場合は、 アーキ テ ク チ ャ の違い を理解す る こ と が重要です。 PLL で使用 さ れ る オシ
レー タ は、 本質的に不安定な状態であ る ため、 ク ロ ッ ク 分散ネ ッ ト ワ ー ク の遅延を補 う 際に PLL のパフ ォーマ ン ス が低下 し ます。 逆
に、 常に安定 し てい る DLL アーキ テ ク チ ャ は、 遅延お よ び ク ロ ッ ク 調整の機能の点では PLL よ り 優れてい る 一方で、 PLL はDLL よ
り 柔軟に新 し い ク ロ ッ ク 周波数の合成を行い ます。
スキ ュ ー調整
こ こ では、主に ス キ ュ ーの削減方法お よ び ク ロ ッ ク ソ ース に対す る 内部 ク ロ ッ ク と 外部 ク ロ ッ ク の位相
調整の方法について説明 し ます。 実際には、 DCM は、 DESKEW_ADJUST と い う 属性を使用 し 、 意図
的にわずかな ス キ ュ ーを追加 し ます。 DCM Wizard では、 ア ド バン ス ド オプシ ョ ン ウ ィ ン ド ウ で こ の
DESKEW_ADJUST 属性を設定 し ます。
こ の属性には 、 STEM_SYNCHRONOUS お よ び SOURCE_SYNCHRONOUS と い う 2 つの基本的な
アプ リ ケーシ ョ ンがあ り ます。 大多数のアプ リ ケーシ ョ ンでは、 SYSTEM_SYNCHRONOUS 設定を使
用 し ます。 次に、 各モー ド の目的を説明 し ます。
シス テム同期
図 23 に示す よ う に、 シ ス テ ム同期アプ リ ケーシ ョ ン では、 1 つのデー タ パ ス にあ る すべてのデバ イ ス
が共通の ク ロ ッ ク ソ ース を使用 し ます。 こ れが、 従来の最 も 一般的なシ ス テ ム構成です。 デフ ォ ル ト 設
定であ る SYSTEM_SYNCHRONOUS オプシ ョ ン を選択す る と 、 デー タ キ ャ プチ ャ 時のホール ド 時間
がゼ ロ にな る よ う に、 わずかな ク ロ ッ ク 遅延が追加 さ れます。 ホール ド 時間 と は、 基本的にベス ト ケー
ス のデー タ パ ス と ワ ー ス ト ケース の ク ロ ッ ク パ ス間の差です。 DCM の ク ロ ッ ク ス キ ュ ー削減機能は
ク ロ ッ ク を進め る こ と に よ っ て、 動的に ワ ース ト ケース の ク ロ ッ ク パ ス を短縮 し ます。 し か し 、 ク ロ ッ
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
33
R
ク ロ ッ ク スキ ュ ーの低減
ク パ ス を短縮す る こ と に よ っ て、 ク ロ ッ ク がデー タ の前に現れ る 場合には、 結果 と し て ホール ド 時間が
発生 し ます。 SYSTEM_SYNCHRONOUS オプシ ョ ン を使用す る こ と に よ っ て、 ホール ド 時間がゼ ロ に
な る ために十分な ス キ ュ ーを ク ロ ッ ク パ ス に追加で き る 一方で、clock-to-output 時間がわずかに増加 し
ます。
DATA_OUT
DATA_IN
Clock
Source
x462_23_061903
図 23 : 共通の ク ロ ッ ク ソ ースによ っ て ク ロ ッ ク入力 さ れる シ ス テム同期ア プ リ ケーシ ョ ン
ソ ース同期
SOURCE_SYNCHRONOUS モー ド は、 本来、 高速デー タ 通信 イ ン タ ーフ ェ イ ス で使用 さ れ る 高度な設
定です。 図 24 に示す よ う に、 ソ ース同期アプ リ ケーシ ョ ンでは、 デー タ お よ び ク ロ ッ ク の両方が同一の
ク ロ ッ ク ソ ース か ら 派生 し ます。 送信デバ イ ス は、 デー タ お よ び ク ロ ッ ク を受信デバ イ ス に送信 し 、 受
信デバ イ ス はデー タ に対 し て最適な ク ロ ッ ク が入力 さ れ る よ う に ク ロ ッ ク タ イ ミ ン グ を調整 し ます。 高
速デ ュ アル デー タ レー ト (DDR) お よ び LVDS 接続な ど が こ のシ ス テ ムの例です。
DATA_OUT
Clock
Source
DATA_IN
DATA_CLK
x462_24_061903
図 24 : デー タ ソ ースがデー タ ク ロ ッ ク を入力する ソ ース同期ア プ リ ケーシ ョ ン
SOURCE_SYNCHRONOUS 設定に よ っ て、入力 ク ロ ッ ク と DCM か ら のデス キ ュ ー出力 ク ロ ッ ク 間の
位相を ゼ ロ に し 、 次に FPGA アプ リ ケーシ ョ ン では固定位相シ フ ト モー ド ま たは動的フ ァ イ ン位相シ
フ ト モー ド を使用 し て ク ロ ッ ク の タ イ ミ ン グ を調整 し ます。 次のアプ リ ケーシ ョ ン ノ ー ト では、 ソ ース
同期デザ イ ンお よ び動的位相調整について説明 し てい ます。
•
XAPP268: 動的位相調整
http://www.xilinx.com/xapp/xapp268.pdf
•
XAPP622: SDR LVDS 送信機/受信機
http://www.xilinx.com/xapp/xapp622.pdf
ま た、 次のアプ リ ケーシ ョ ン ノ ー ト では、 シ ス テ ム レベルの タ イ ミ ン グについて詳細に解説 し てい ま
す。 こ のアプ リ ケーシ ョ ン ノ ー ト は、Virtex-II お よ び Virtex-II Pro FPGA アーキ テ ク チ ャ について説明
す る も のですが、 ほ と ん ど の概念を Spartan-3 FPGA に適用で き ます。
•
XAPP259: シ ス テ ム イ ン タ ーフ ェ イ ス タ イ ミ ン グ パ ラ メ ー タ
http://www.xilinx.co.jp/xapp/xapp259.pdf
タ イ ミ ングの比較
図 25 に、デ ュ アル デー タ レー ト (DDR) アプ リ ケーシ ョ ンで SYSTEM_SYNCHRONOUS 設定お よ び
SOURCE_SYNCHRONOUS 設定を使用 し た場合の タ イ ミ ン グ比較を示 し ます。 DDR アプ リ ケーシ ョ
ン では、 各デー タ ラ イ ンに 2 つのデー タ ビ ッ ト が、 ク ロ ッ ク 周期の前半お よ び後半に各 1 つずつ現れ
ます。
34
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク調整
SYSTEM_SYNCHRONOUS モー ド では、 DCM の ク ロ ッ ク パス に適切な ス キ ュ ーが追加 さ れ、 ホール
ド 時間がゼ ロ にな り ます。
こ れに対 し て、 SOURCE_SYNCHRONOUS モー ド では DCM の ク ロ ッ ク パ ス に ス キ ュ ーは追加 さ れ
ま せんが、 FPGA ア プ リ ケーシ ョ ン で ス キ ュ ー追加、 ま たは位相シ フ ト が行われ、 ク ロ ッ ク はデー タ
ウ ィ ン ド ウ において理想的な位置で入力 さ れます。
Data capture window
or data “eye”
DATA_IN
SYSTEM_SYNCHRONOUS
SOURCE_SYNCHRONOUS
SOURCE_SYNCHRONOUS
+ Fixed or Dynamic Phase Shift
x462_25_061903
図 25 : デ ュ アル デー タ レー ト (DDR) ア プ リ ケーシ ョ ンにおける SYSTEM_SYNCHRONOUS
モー ド および SOURCE_SYNCHRONOUS モー ド の タ イ ミ ング比較
ク ロ ッ ク調整
ク ロ ッ ク 調整 と は、 入力 ク ロ ッ ク のデ ュ ーテ ィ サ イ ク ルが 50% 以外の場合に 50% に調整す る 機能で
す。 図 26 に、 High 時間が約 40% であ り 、 Low 時間が約 60% (40%/60% デュ ーテ ィ サ イ ク ル) であ る
入力 ク ロ ッ ク を、 ほぼ完全な 50% デ ュ ーテ ィ サ イ ク ルを持つ入力 ク ロ ッ ク に調整す る 例を示 し ま す。
完 全 な 50% デ ュ ー テ ィ サ イ ク ル と な ら な い 理由 は、 CLKOUT_DUTY_CYCLE_DLL お よ び
CLKOUT_DUTY_CYCLE_FX で指定 さ れ る デ ュ ーテ ィ サ イ ク ルのずれが存在す る ためです。 こ れ ら
の値は 『Spartan-3 デー タ シー ト 』 に記載 さ れてい ます。 デ ュ ーテ ィ サ イ ク ルのずれの概算値は 150ps
未満です。
40%
60%
CLKIN
Conditioned
Clock Output
50%
50%
x462_26_061903
図 26 : DCM におけるデ ュ ーテ ィ サイ ク ル修正機能
ク ロ ッ ク のデ ュ ーテ ィ サ イ ク ルが 50% であ る こ と は、 VLDS ま たはデュ アル デー タ レー ト (DDR) ア
プ リ ケーシ ョ ン な ど の高速通信 イ ン タ ーフ ェ イ ス、 ク ロ ッ ク 転送アプ リ ケーシ ョ ン、 ま たは ク ロ ッ ク ミ
ラ ー アプ リ ケーシ ョ ンにおいて不可欠な条件です。 「デ ュ アル デー タ レー ト (DDR) ク ロ ッ ク の例」 を
参照 し て く だ さ い。
DCM では、 自動的にほ と ん ど の ク ロ ッ ク 出力のデ ュ ーテ ィ サ イ ク ルが 50% に調整 さ れ、 それ以外の
場合には動作条件ま たは属性設定に よ っ て、 オプシ ョ ン と し て調整 さ れ ます。 表 12 を参照 し て く だ さ
い。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
35
R
位相シ フ ト - ク ロ ッ ク周期の分数で ク ロ ッ ク を遅延
表 12 : デ ュ ーテ ィ サイ クルを 50% にする ための ク ロ ッ ク出力調整
DCM ク ロ ッ ク
50% デ ュ ーテ ィ サイ ク ル出力
出力
CLK0
DUTY_CYCLE_CORRECTION = TRUE
CLK90
CLK180
DLL_FREQUENCY_MODE 属性
CLK270
LOW
HIGH
DUTY_CYCLE_CORRECTION = TRUE
出力は使用不可
CLK2X
DLL_FREQUENCY_MODE 属性
CLK2X180
LOW
HIGH
常に
出力は使用不可
CLKDV
DLL_FREQUENCY_MODE 属性
LOW
HIGH
常に
CLKFX
CLKDV_DIVIDE が整数値の場合
常に
CLKFX180
1/4 位相シ フ ト 出力であ る CLK0、 CLK90、 CLK180 お よ び CLK270 は、
DUTY_CYCLE_CORRECTION 属性を使用 し 、 ク ロ ッ ク 調整を行 う こ と がで き ます。 デフ ォ ル ト で
は、 DUTY_CYCLE_CORRECTION 属性は TRUE に設定 さ れ、 こ れ ら の出力は 50% デ ュ ーテ ィ サ イ
ク ルに調整 さ れます。 こ の属性を FALSE に設定す る 場合、 ク ロ ッ ク 調整は機能せず、 ク ロ ッ ク 出力の
デ ュ ーテ ィ サ イ ク ルは入力 ク ロ ッ ク と ほぼ同一にな り ますが、 完全に CLKIN のデ ュ ーテ ィ サ イ ク ル
と 一致す る こ と は保証 さ れてい ません。
位相シ フ ト - ク
ロ ッ ク 周期の分数
で ク ロ ッ ク を遅延
ま た、 DCM では ク ロ ッ ク 周期の分数分だけ入力 ク ロ ッ ク を遅 ら せ る こ と に よ っ て、 位相を シ フ ト さ せ
る こ と がで き ます。
DCM は 4 つの位相シ フ ト タ イ プ をサポー ト し 、 各 タ イ プを別々に使用す る こ と 、 ま たはほかの位相シ
フ ト タ イ プ と 組み合わせて使用す る こ と がで き ます。 表 13 に、 各 ク ロ ッ ク 出力での位相シ フ ト 機能を
示 し ます。
1. ほ と ん ど の 1/2 ク ロ ッ ク 周期位相シ フ ト 出力では、 50% デュ ーテ ィ サ イ ク ル調整を行い ます。 出力
のペアの立ち上が り エ ッ ジは、 0°お よ び 180°位相シ フ ト し た位置、 ま たは ク ロ ッ ク 周期の最初お
よ び 1/2 周期の位置にあ り ます。
2. 0°(CLK0)、 90°(CLK90)、 180°(CLK180) お よ び 270°(CLK270) の 1/4 位相シ フ ト 出力では、
オプシ ョ ン と し て 50% デ ュ ーテ ィ サ イ ク ル調整を行い ます。
3. 固定フ ァ イ ン位相シ フ ト では、すべての DCM ク ロ ッ ク 出力の位相が 1/256 ク ロ ッ ク サ イ ク ル単位
でシ フ ト し ます。
4. 動的フ ァ イ ン位相シ フ ト では、 FPGA アプ リ ケーシ ョ ン内部のすべての DCM ク ロ ッ ク 出力の位相
が 1/256 ク ロ ッ ク サ イ ク ル単位でシ フ ト し ます。
36
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
位相シ フ ト - ク ロ ッ ク 周期の分数で ク ロ ッ ク を遅延
表 13 : ク ロ ッ ク出力の位相シ フ ト 機能
ク ロ ッ ク出力
CLK0
1/2 ク ロ ッ ク
1/4 ク ロ ッ ク
周期
周期
固定または動的
位相シ フ ト
9
9
9
9
9
9
9
9
9
CLK90
9
CLK180
CLK270
CLK2X
9
9
CLK2X180
9
9
9
CLKDV
CLKFX
9
9
CLKFX180
9
9
1/2 ク ロ ッ ク周期位相シ フ ト 出力
1/2 周期位相シ フ ト 出力では、 位相シ フ ト のない ク ロ ッ ク 、 お よ びその ク ロ ッ ク を 1/2 周期シ フ ト さ せ
た (180°位相シ フ ト ) ク ロ ッ ク が出力 さ れます。 1/2 周期位相シ フ ト 出力は、 表 14 に示す よ う にペアで
出力 さ れます。
表 14 : 1/2 ク ロ ッ ク周期位相シ フ ト 出力
出力ペア
解説
位相シ フ ト な し
180°位相シ フ ト
CLK0
CLK180
CLK2X
CLK2X180
2 逓倍 ク ロ ッ ク (CLK2X、 CLK2X180) か ら の出力です。 周波数は CLKIN 周波数の 2 倍
であ り 、 デ ュ ーテ ィ サ イ ク ルは常に 50% です。
CLKFX
CLKFX180
周波数合成回路 (CLKFX、 CLKFX180) か ら の出力です。 出力周波数は周波数合成の属
性に よ っ て決定 さ れます。 デ ュ ーテ ィ サ イ ク ルは常に 50% です。
XAPP462 (v1.0) 2003 年 7 月 11 日
周波数は CLKIN と 同一です。 デフ ォ ル ト で、 50% デュ ーテ ィ サ イ ク ルに調整 さ れ、
DUTY_CYCLE_CORRECTION 属性に制御 さ れます。
www.xilinx.co.jp
37
R
位相シ フ ト - ク ロ ッ ク周期の分数で ク ロ ッ ク を遅延
1/2 周期位相シ フ ト 出力は、 高速デ ュ アル デー タ レー ト (DDR) デザ イ ンお よ び ク ロ ッ ク ミ ラ ーな ど の
デ ュ ーテ ィ サ イ ク ルが重要 と な る デザ イ ンに と っ て理想的です。 図 27 に示す よ う に、1/2 周期位相シ フ
ト 出力のペアの 1 つは ク ロ ッ ク 周期の始めに立ち上が り 、 も う 1 つはその ク ロ ッ ク 周期の半分の地点で
正確に立ち上が り ます。
Delay (fraction of
clock period)
Phase Shift (degrees)
0
½T
1T
0˚
180˚
360˚
CLKx
CLKx180
Clock Period (T)
x462_27_061903
図 27 : 1/2 周期位相シ フ ト 出力
1/2 周期位相シ フ ト 出力によ るデ ュ ーテ ィ サイ ク ルのずれの削減
DCM の ク ロ ッ ク 出力が 50% デ ュ ーテ ィ サ イ ク ルに調整 さ れた場合、 180°位相シ フ ト ク ロ ッ ク は、 位
相シ フ ト のない ク ロ ッ ク を反転 さ せた よ う に見え ます。 低周波数アプ リ ケーシ ョ ン では、 基本的に こ れ
が成立 し ます。
し か し 、 アプ リ ケーシ ョ ンが非常に高い周波数で動作す る 場合は、 各 ト ラ ン ジ ス タ の立ち上が り 時間お
よ び立ち下が り 時間の差が原因 と な っ て発生す る デ ュ ーテ ィ サ イ ク ルのずれが FPGA 内部で問題 と な
り ます。 つま り 、 始めはデュ ーテ ィ サ イ ク ルが 50% の場合で も 、 ク ロ ッ ク サ イ ク ル間で常に ク ロ ッ ク
High と ク ロ ッ ク Low の間に差が生 じ ます。
デ ュ アル デー タ レー ト (DDR) ク ロ ッ クの例
図 28 に DCM ク ロ ッ ク 出力、 CLKx が、 デ ュ アル デー タ レー ト (DDR) 出力フ リ ッ プ フ ロ ッ プの 2 つ
の ク ロ ッ ク を駆動す る 例を示 し ます。 DDR ク ロ ッ ク 入力の 1 つは、ク ロ ッ ク 出力を その ま ま使用 し ます
が、 も う 一方の入力は DDR フ リ ッ プ フ ロ ッ プ内部で ク ロ ッ ク を反転 さ せます。 DCM か ら の CLKx 出
力のデ ュ ーテ ィ サ イ ク ルは 50% ですが、 FPGA の ク ロ ッ ク ネ ッ ト ワ ー ク を伝搬する 間に、 デ ュ ーテ ィ
サ イ ク ルにずれが発生 し ます。 こ こ で示す例では、 こ のデュ ーテ ィ サ イ ク ルのずれに よ っ て、 ク ロ ッ ク
High 時間が短縮 さ れ、 ク ロ ッ ク Low 時間が長 く な り ます。 その結果 と し て、 C1 ク ロ ッ ク 入力は ク ロ ッ
ク 周期の半分の時点 よ り も わずかに前に ト リ ガ し ます。 低周波数の場合、 こ のずれは無視 し て問題あ り
ませんが、 高性能の DDR ベース のシ ス テ ムでは、 正確な ク ロ ッ ク 設計が必要です。
38
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
位相シ フ ト - ク ロ ッ ク 周期の分数で ク ロ ッ ク を遅延
OFDDRCPE
D0
Q
D1
DCM
BUFG
CLKIN
CLKx
CE
C0
C1
CLKx
(50% duty cycle)
Duty-cycle distortion
CLKx at Flip-Flop
(with duty-cycle distortion)
Factor in distortion
when using a single,
inverted clock
x462_28_061903
図 28 : デ ュ アル デー タ レー ト (DDR) 出力におけ るデ ュ ーテ ィ サイ クルのずれ
図 29 に、 図 28 に若干の修正を加えた回路例を示 し ます。 こ の例では、 DCM か ら の位相シ フ ト し てい
な い出力お よ び 180 °位相 シ フ ト し た 出力の両方が DDR 出力 フ リ ッ プ フ ロ ッ プ に入力 さ れ ま す。
CLKx ク ロ ッ ク 信号は、 ク ロ ッ ク 周波数の開始時点で正確に DDR フ リ ッ プ フ ロ ッ プの C0 入力を ト リ
ガ し 、 CLKx180 ク ロ ッ ク 信号は ク ロ ッ ク 周波数の半分の時点で正確に C1 入力を ト リ ガ し ます。 こ の
方法を使用す る 場合には、 追加のグ ロ ーバル バ ッ フ ァ お よ びグ ロ ーバル ク ロ ッ ク ラ イ ンが必要にな り
ますが、 約 300 ps ( こ の値は概算です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ー
ル 3 を参照 し て く だ さ い) ま でのデュ ーテ ィ サ イ ク ルを削減で き ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
39
R
位相シ フ ト - ク ロ ッ ク周期の分数で ク ロ ッ ク を遅延
OFDDRCPE
D0
Q
D1
DCM
BUFG
CLKIN
CE
CLKx
C0
CLKx180
C1
BUFG
CLKx
(50% duty cycle)
CLKx at Flip-Flop
(with duty-cycle distortion)
180 ˚
Phase Shift
CLKx180 at Flip-Flop
(with duty-cycle distortion)
x462_29_061903
図 29 : 1/2 周期位相シ フ ト 出力を使用 し たデ ュ ーテ ィ サイ ク ルのずれの削減
表 15 に、 DDR 出力フ リ ッ プ フ ロ ッ プお よ び LVDS 出力を使用 し て測定 し たデュ ーテ ィ サ イ ク ルのず
れの値を示 し ます。 こ の出力 タ イ プ以外では、 立ち上が り 時間お よ び立ち下が り 時間に差が生 じ る こ と
に よ っ て、 さ ら にずれが大 き く な る 可能性があ り ます。 こ のずれは IBIS を使用 し て シ ミ ュ レーシ ョ ン
を実行 し 、 検証で き ます。
表 15 : デ ュ ーテ ィ サイ クルのずれのパラ メ ー タ
パラ メ ー タ
説明
概算値
TDCD_CLK0
I/O ブ ロ ッ ク にあ る DDR エ レ メ ン ト に対 し て、 ク ロ ッ ク 立ち下が り エ ッ ジで ロ ーカル反転 し た
ク ロ ッ ク を入力す る 場合のデ ュ ーテ ィ サ イ ク ルのずれです。 図 28 を参照 し て く だ さ い。
~400 ps*
TDCD_CLK180
I/O ブ ロ ッ ク にあ る DDR エ レ メ ン ト に対 し て、 DCM CLKx180 を ク ロ ッ ク 入力す る 場合の
デ ュ ーテ ィ サ イ ク ルのずれです。 図 29 を参照 し て く だ さ い。
~60 ps*
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
1/4 位相シ フ ト 出力
図 30 お よ び表 17 に示す よ う に、 1/4 位相シ フ ト 出力は CLKIN 入力を 1/4 周期分シ フ ト さ せた も ので
す。 1/4 位相シ フ ト 出力には CLKFB 入力へ戻る フ ィ ー ド バ ッ ク パス が必要であ る ため、 CLK0 出力の
位相は CLKIN 入力の立ち上が り エ ッ ジ と 一致す る よ う に調整 さ れます。 CLK90 出力は CLKIN 入力を
90°位相シ フ ト さ せて生成 し た も のであ り 、 ほかの位相シ フ ト 出力 も 同様に生成 さ れます。
40
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
位相シ フ ト - ク ロ ッ ク 周期の分数で ク ロ ッ ク を遅延
Delay (fraction of
clock period)
Phase Shift (degrees)
0
¼T
½T
¾T
1T
0˚
90˚
180˚
270˚
360˚
CLK0
CLK90
CLK180
CLK270
Clock Period
(T)
x462_30_061903
図 30 : CLKIN 入力 の 1/4 周期位相シ フ ト 出力 (デ ュ ーテ ィ サイ クル修正イ ネーブルの場合)
DLL 周波数モー ド によ る出力の有効性
1/4 位相シ フ ト 出力が有効であ る かは、 DLL_FREQUENCY_MODE 属性で制御 さ れ る DLL の周波数
モー ド に よ っ て決定 さ れます。 表 16 に示す よ う に、 低周波数モー ド
(DLL_FREQUENCY_MODE=LOW) では、 すべての 1/4 位相シ フ ト 出力が有効ですが、 高周波数モー
ド で も 有効な出力は、 CLK0 お よ び CLK180 のみです。
表 16 : DLL 周波数モー ド によ る 1/4 位相シ フ ト 出力の有効性
DLL_FREQUENCY_MODE
出力
LOW
HIGH
CLK0
9
9
CLK90
9
CLK180
9
CLK270
9
9
50/50 デ ュ ーテ ィ サイ クル調整オプ シ ョ ン
オプ シ ョ ン と し て、 DUTY_CYCLE_CORRECT 属性 を 使用 し 、 1/4 位相シ フ ト 出力 を 一括 し て 50%
デ ュ ーテ ィ サ イ ク ルに調整で き ま す。 こ の属性が TRUE の場合 ( デ フ ォ ル ト )、 4 つの出力すべて の
デ ュ ーテ ィ サ イ ク ルが 50% にな り 、 FALSE の場合は、 各出力のデ ュ ーテ ィ サ イ ク ル と CLKIN 入力
のデ ュ ーテ ィ サ イ ク ルは一致 し ません。 詳細は、 「 ク ロ ッ ク 調整」 を参照 し て く だ さ い。
4 つの位相、 遅延 ク ロ ッ ク エ ッ ジ、 位相パルス
表 17 に示す よ う に、 1/4 位相シ フ ト 出力は、 ぞれぞれ 1 つ前のパル ス か ら 1/4 周期遅れた立ち上が り
エ ッ ジで出力 さ れます。 こ れ ら の出力は、 メ モ リ イ ン タ ーフ ェ イ スお よ びペ リ フ ェ ラ ル制御な ど のアプ
リ ケーシ ョ ンにおけ る タ イ ミ ン グ を柔軟に し ます。
ま た、 デ ュ ー テ ィ サ イ ク ル修正オ プ シ ョ ン が イ ネーブルの場合 (DUTY_CYCLE_CORRECTION =
TRUE の場合)、 こ れ ら の出力を次の よ う に考え る こ と がで き ます。 こ れ ら の出力には 1/4 周期の間隔で
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
41
R
位相シ フ ト - ク ロ ッ ク周期の分数で ク ロ ッ ク を遅延
立ち下が り エ ッ ジがあ り ます (表 17 を参照)。 同様に、各出力には周期幅が同一であ る High パルス時間
と Low パルス時間があ る こ と にな り 、 た と えば、 図 30 に示す CLK90 の High パルス部分は CLK0 ク
ロ ッ ク 周期の中央に位置 し てい ます。
表 17 : 1/4 位相シ フ ト 出力 と それ らの特性 (DUTY_CYCLE_CORRECTION=TRUE)
DCM 出力
位相シ フ ト
ク ロ ッ ク周期
に対する遅延
立ち上が り
エッジ
立ち下が り
エッジ
CLK0
0°
0
0
½T
ス キ ュ ー調整 さ れた入力 ク ロ ッ ク 。 位相シ フ ト な し 。
CLK90
90°
¼T
¼T
¾T
High パルス (¾T 周期幅、 周期の中央)
CLK180
180°
½T
½T
0T
CLK0 の反転 (立ち上が り エ ッ ジは周期の中央)
CLK270
270°
¾T
¾T
¼T
Low パルス (¾T 周期幅、 周期の中央)
解説
フ ァ イ ン位相シ フ ト
DCM では、 フ ァ イ ン位相シ フ ト を使用する こ と に よ っ て、 ク ロ ッ ク ス キ ュ ーを制御す る こ と も で き ま
す。 フ ァ イ ン位相調整は、 すべての DCM 出力に対 し て同時に機能 し ます。 こ の位相調整には、 DCM の
DLL 機能ユニ ッ ト を使用す る ため、 CLKFB 入力を通 る ク ロ ッ ク フ ィ ー ド バ ッ ク が必要です。
物理的には、 CLKIN と CLKFB の立ち上が り エ ッ ジ間の位相関係を調整す る こ と に よ っ て シ フ ト が行
われますが、 すべての DCM 出力が CLKIN 入力に関連 し て位相シ フ ト さ れます。
デフ ォ ル ト では、 フ ァ イ ン位相シ フ ト はデ ィ ス エーブル (CLKOUT_PHASE_SHIFT=NONE) です。 つ
ま り 、 ク ロ ッ ク 入力は CLKIN で位相調整 さ れてい ます。 こ の場合、 入力 ク ロ ッ ク CLKIN と フ ィ ー ド
バ ッ ク ク ロ ッ ク 間に、おお よ その フ ィ ー ド バ ッ ク 地点で計測 さ れ る ス キ ュ ーはあ り ません ( 「確実な ソ ー
ス か ら の フ ィ ー ド バ ッ ク 」 を参照 し て く だ さ い)。 図 31 に示す よ う に、 フ ァ イ ン位相シ フ ト が イ ネーブ
ルの場合、 出力 ク ロ ッ ク のエ ッ ジは位相シ フ ト さ れ、 CLKIN 入力の前ま たは後にな り ます。
次に フ ァ イ ン位相シ フ ト の 2 つのモー ド について説明 し ます。 一般に高速デー タ 通信アプ リ ケーシ ョ ン
では、 両方のモー ド が使用 さ れます。 「 ソ ース同期」 を参照 し て く だ さ い。
1. 固定フ ァ イ ン位相シ フ ト モー ド は、位相シ フ ト 値を設計段階で設定 し ます。 位相シ フ ト 値は、FPGA
コ ン フ ィ ギ ュ レーシ ョ ン実行中に取 り 込まれ、 アプ リ ケーシ ョ ン で変更す る こ と はで き ません。
2. 動的フ ァ イ ン位相シ フ ト モー ド には、 初期位相シ フ ト 値があ り 、 固定フ ァ イ ン位相シ フ ト の場合 と
同様に、 こ の値は FPGA コ ン フ ィ ギ ュ レーシ ョ ン中に取 り 込まれますが、 DCM の LOCKED 出力
が High にな っ た後であれば、 アプ リ ケーシ ョ ン で変更可能です。
固定 フ ァ イ ン位相シ フ ト
固定フ ァ イ ン位相シ フ ト モー ド では、 設計段階で指定 さ れた シ フ ト 値が FPGA コ ン フ ィ ギ ュ レーシ ョ
ン実行中に設定 さ れ、 こ の値はアプ リ ケーシ ョ ン で変更で き ません。
こ のモー ド は、 次の 2 つの属性に よ っ て制御 さ れます。 CLKOUT_PHASE_SHIFT 属性が FIXED に設
定 し 、 PHASE_SHIFT 属性が位相シ フ ト 量を制御 し ます。 図 31 に示す よ う に、 PHASE_SHIFT = 0 の
場 合 は、 出 力 ク ロ ッ ク お よ び CLKIN 入力 の 位相 が 一致す る よ う 調整 さ れ。 ク ロ ッ ク 出力 は、
PHASE_SHIFT が負の整数の場合に CLKIN の前に位相シ フ ト し 、 正の整数の場合には CLKIN の後に
位相シ フ ト し ます。
固定 フ ァ イ ン位相シ フ ト 範囲
PHASE_SHIFT 属性は常に整数値で あ り 、 その範囲は -255 ~ +255 ですが、 実際の範囲は使用 さ れ る
CLKIN の周波数に よ っ て異な り ます。
42
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
位相シ フ ト - ク ロ ッ ク 周期の分数で ク ロ ッ ク を遅延
CLKIN
Clock Outputs
Fixed Phase Shift
- Limit
Fixed Phase Shift
+ Limit
0
PHASE_SHIFT
CLKIN
DCM
x462_31_061903
図 31 : 固定フ ァ イ ン位相シ フ ト
PHASE_SHIFT 属性の範囲は、 次の 2 つの値に よ っ て決定 さ れます。
1. 1 つはナ ノ セカ ン ド で測定 さ れ る CLKIN 入力の周期 であ る TCLKIN 値です。
2. も う 1 つは Spartan-3 デバ イ スお よ びス ピー ド グ レー ド に よ っ て指定 さ れ る
FINE_SHIFT_RANGE の値です。 こ の値は 『Spartan-3 デー タ シー ト 』 モジ ュ ール 3 に記載 さ れ
てい ます。 FINE_SHIFT_RANGE は、 位相シ フ ト 遅延 ラ イ ンにおけ る 総遅延であ り 、 回路内の遅
延 タ ッ プ数の関数です。 実際の遅延 ラ イ ンは FINE_SHIFT_RANGE よ り 長い場合があ り ますが、
FINE_SHIFT_RANGE ま での値が保証 さ れてい ます。
こ れ ら の値を 等式 1 に適用 し 、SHIFT_DELAY_RATIO を算出 し ます。 PHASE_SHIFT 属性の範囲は、
こ の算出結果 と 1 と の不等式関係に よ っ て異な り ます。
_ SHIFT _ RANGESHIFT _ DELAY _ RATIO = FINE
---------------------------------------------------------------T CLKIN
等式 1
SHIFT_DELAY_RATIO < 1 の場合
ク ロ ッ ク 周期が FINE_SHIFT_RANGE よ り 長い場合は、SHIFT_DELAY_RATIO < 1 であ り 、最大フ ァ
イ ン位相シ フ ト 範囲は FINE_SHIFT_RANGE に よ っ て決定 さ れます。
SHIFT_DELAY_RATIO < 1 の場合、 PHASE_SHIFT 範囲は 等式 2 か ら 求め る こ と がで き ます。
FINE _ SHIFT _ RANGE
PHASE _ SHIFT LIMITS = ± INTEGER ⎛⎝ 256 • -----------------------------------------------------------------⎞⎠
T CLKIN
等式 2
た と えば、 FCLKIN が 75 MHz (TCLKIN = 13.33 ns) であ り 、 FINE_SHIFT_RANGE が 10.00 ns(1) の場
合、 PHASE_SHIFT 値は ±191 と な り ます。
し たがっ て、 SHIFT_DELAY_RATIO < 1 の場合の位相シ フ ト 値は、 等式 3 と な り ます。
PHASE_SHIFT = 1 と し て く だ さ い。
PHASE _ SHIFT
T PhaseShift = ⎛⎝ ----------------------------------------------------------------------⎞⎠ • FINE _ SHIFT _ RANGE
PHASE _ SHIFT LIMITS
等式 3
1. 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモ ジ ュ ール 3 を参照 し て く だ さ い。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
43
R
位相シ フ ト - ク ロ ッ ク周期の分数で ク ロ ッ ク を遅延
SHIFT_DELAY_RATIO ≥ 1 の場合
一方、 ク ロ ッ ク 周期が FINE_SHIFT_RANGE よ り 短い場合は、 SHIFT_DELAY_RATIO ≥ 1 で あ り 、
最大フ ァ イ ン位相シ フ ト 範囲は ±255 です。
PHASE _ SHIFT LIMITS = ± 255
等式 4
し たがっ て、 SHIFT_DELAY_RATIO ≥ 1 の場合の位相シ フ ト 値は、 等式 5 と な り ます。
PHASE_SHIFT = 1 と し て く だ さ い。
PHASE _ SHIFT
T PhaseShift = ⎛⎝ --------------------------------------------⎞⎠ • T CLKIN
256
等式 5
最小位相シ フ ト
最小位相シ フ ト の大 き さ は、 次の値の大 き な方に よ っ て決定 さ れます。
1. 『Spartan-3 デー タ シー ト 』 に DCM_TAP_MIN 仕様 と し て記載 さ れてい る 最小遅延 ラ イ ン タ ッ プ
値 (概算値は ~30ps)
2. ク ロ ッ ク 周期の 1/256
その他の考察点
固定位相シ フ ト モー ド では、 動的位相シ フ ト 制御入力を グ ラ ン ド に接続す る 必要があ り ます。 こ の接続
は、 DCM Wizard では自動的に行われます。
DCM Wizard
固定位相シ フ ト モー ド を使用す る 場合は、 図 32 に示す よ う に、 DCM Wizard の [General Setup] ダ イ ア
ロ グ ウ ィ ン ド ウ に表示 さ れ る Phase Shift で [Fixed] を ク リ ッ ク し て く だ さ い。
こ れに よ っ て、 CLKOUT_PHASE_SHIFT 属性が FIXED に設定 さ れます。
[Phase Shift Value] を入力 し ますが、 こ の値は、 上述 し た範囲内にあ る 整数でなければな り ません。 こ
れに よ っ て、 PHASE_SHIFT 属性値が設定 さ れます。 DCM Wizard は、 位相シ フ ト 値が指定範囲内であ
る か を確認 し ます。
Fixed
Phase Shift
None
Phase Shift Value:
Fixed
Variable
23
x462_32_061803
図 32 : 固定フ ァ イ ン位相モー ド の選択
動的 フ ァ イ ン位相シ フ ト
動的フ ァ イ ン位相シ フ ト モー ド では、 固定フ ァ イ ン位相シ フ ト モー ド と 同様に、 初期ス キ ュ ーま たは
初期位相シ フ ト が コ ン フ ィ ギ ュ レーシ ョ ン中に PHASE_SHIFT 属性に よ っ て制御 さ れます。 ただ し 、動
的シ フ ト モー ド の場合、 DCM の LOCKED 入力が High にな っ た後に、 動的フ ァ イ ン位相シ フ ト 制御
入力、 PSEN、 PSCLK お よ び PSINCDEC を使用 し て、 FPGA アプ リ ケーシ ョ ン で現在の位相シ フ ト 値
を修正で き ます。
動作
図 33 に示す よ う に、 位相シ フ ト 制御入力を使用 し 、 現在の位相シ フ ト 値を修正 し ます。 すべての動的位
相シ フ ト は、 PSCLK の立ち上が り エ ッ ジに同期 し て行われ、 有効な位相シ フ ト は PSEN イ ネーブル入
44
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
位相シ フ ト - ク ロ ッ ク 周期の分数で ク ロ ッ ク を遅延
力を正確に 1 PSCLK ク ロ ッ ク 周期間アサー ト す る こ と に よ っ て開始 し ます。 PSEN を 1 ク ロ ッ ク 周期
よ り 長 く アサー ト す る 場合には、 適切に位相シ フ ト を行 う こ と がで き ない可能性があ り ます。
PSINCDEC の値は制御入力の増減を指定 し 、 位相シ フ ト の方向を決定 し ます。 PSINCDEC を High に
設定す る と 、 動的位相シ フ ト 値が増加 し 、 Low に設定す る と その値は減少 し ます。
実際の位相シ フ ト が行われ る タ イ ミ ン グ は さ ま ざ ま で あ り 、 DCM で PSCLK ク ロ ッ ク の 1 周期間、
PSDONE 出力が High にアサー ト さ れた時に完了 し ます。 PSEN が イ ネーブルであ り 、 PSDONE がア
サー ト さ れ る ま での間、 DCM 出力 ク ロ ッ ク は、 初期位相シ フ ト 値か ら 新 し い位相シ フ ト 値ま で 1 ビ ッ
ト ずつス ラ イ ド し ます。 シ フ ト が行われてい る 間、 DCM は入力 ク ロ ッ ク に対 し て ロ ッ ク 状態、 つま り
LOCKED 出力がアサー ト さ れた状態を維持 し ます。
PSDONE がアサー ト さ れた と き 、 ま たはアサー ト 後に、 次の位相シ フ ト 処理が開始 さ れます。
PSDONE
PSCLK
PSEN
PSINCDEC
0=
1=
PSDONE
STATUS[0]
(
)
If phase shift incremented or
decremented to limit value,
STATUS[0] stays High until new
operation shifts away from limit.
x462_33_062403
図 33 : 動的フ ァ イ ン位相シ フ ト 制御イ ン タ ー フ ェ イ ス
動的フ ァ イ ン位相シ フ ト モー ド を使用す る 場合は、 CLKOUT_PHASE_SHIFT 属性を VARIABLE に
設定 し 、 FPGA コ ン フ ィ ギ ュ レーシ ョ ン後に PHASE_SHIFT 属性値に よ っ て、 位相シ フ ト の初期位置
を設定で き ます。 DCM の LOCKED 出力が High にな る と 、 FPGA アプ リ ケーシ ョ ンでは DCM 出力
ク ロ ッ ク におけ る ス キ ュ ー、 ま たは位相シ フ ト を動的に修正で き ます。 ま た、 DCM が リ セ ッ ト さ れた
場合は、 PHASE_SHIFT 値は初期設定値に戻 り ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
45
R
位相シ フ ト - ク ロ ッ ク周期の分数で ク ロ ッ ク を遅延
CLKIN
PHASE_SHIFT
DCM
RESET
LOCKED
Clock Outputs
Fixed Phase Shift
- Limit
Fixed Phase Shift
+ Limit
0
Dynamic Phase Shift
- Limit
Dynamic Phase Shift
+ Limit
0
Decrem ent Phase
Shift Value
DCM Variable Phase
Shift Control
Increm ent Phase
Shift Value
PSEN
Enable
Increment/Decrement
PSINCDEC
Phase Shift Clock
PSCLK
PSDONE
STATUS[0]
Phase Shift Done
Variable Phase
Shift Overflow
DCM LOCKED
FPGA
x462_34_061903
図 34 : 動的位相シ フ ト 制御
動的 フ ァ イ ン位相シ フ ト 範囲
PHASE_SHIFT と 同様に、 動的位相シ フ ト に対 し て も 位相シ フ ト 範囲の制限があ り ます。 図 34 を参照
し て く だ さ い。 ま た、 その範囲は、 SHIFT_DELAY_RATIO 等式で示 し た よ う に、
FINE_SHIFT_RANGE 対入力 ク ロ ッ ク 周期の比率に よ っ て決定 さ れます。
SHIFT_DELAY_RATIO < 2
指定 さ れた FINE_SHIFT_RANGE 値が ク ロ ッ ク 周期の 2 倍 よ り 小 さ い場合 (SHIFT_DELAY_RATIO
< 2)、 最大動的位相シ フ ト 値は最大遅延 タ ッ プ値であ る FINE_SHIFT_RANGE に よ っ て決定 さ れます。
SHIFT_DELAY_RATIO < 2 の場合、 動的位相シ フ ト 範囲は 等式 6 に よ っ て決定 さ れます。
FINE _ SHIFT _ RANGE
DynamicPhaseShift LIMITS = ± INTEGER ⎛⎝ 128 • -----------------------------------------------------------------⎞⎠
T CLKIN
等式 6
た と えば、 FCLKIN が 75 MHz (TCLKIN = 13.33 ns) であ り 、 FINE_SHIFT_RANGE が 10.00 ns(1) の場
合、 動的位相シ フ ト 値の範囲は ±96 と な り ます。
1. 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモ ジ ュ ール 3 を参照 し て く だ さ い。
46
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
位相シ フ ト - ク ロ ッ ク 周期の分数で ク ロ ッ ク を遅延
し たがっ て、 SHIFT_DELAY_RATIO < 2 の場合、 動的位相シ フ ト 値は、 等式 7 と な り ます。
PHASE_SHIFT = 1 と し て く だ さ い。
DynamicPhaseShift
T PhaseShift = ⎛⎝ -----------------------------------------------------------------------------------⎞⎠ • FINE _ SHIFT _ RANGE
DynamicPhaseShift LIMITS
等式 7
SHIFT_DELAY_RATIO ≥ 2
一方、 ク ロ ッ ク 周期が FINE_SHIFT_RANGE よ り 短い場合は、 SHIFT_DELAY_RATIO ≥ 2 で あ り 、
最大フ ァ イ ン位相シ フ ト 範囲は ±255 です。
DynamicPhaseShift LIMITS = ± 255
等式 8
し たがっ て、 SHIFT_DELAY_RATIO ≥ 2 の場合の位相シ フ ト 値は、 等式 9 と な り ます。
PHASE_SHIFT = 1 と し て く だ さ い。
DynamicPhaseShift
T PhaseShift = --------------------------------------------------------- • T CLKIN
等式 9
256
制御
45 ページの図 33、 46 ページの図 34 に示す よ う に、 DCM の動的位相シ フ ト 制御信号に よ っ て、 FPGA
アプ リ ケーシ ョ ンは現在の CLKIN 入力 と DCM ク ロ ッ ク 出力間の関係を修正で き ます。 表 18 に、 制
御入力、 現在の位相 と 次の位相の関係、 遅延 タ ッ プへの影響 と 制御出力の関係を示 し ます。
表 18 : 動的位相シ フ ト 制御 (内部反転がない場合)
PSEN
PSINCDEC
PSCLK
0
X
1
1
遅延 ラ イ ン
PSDONE
STATUS[0]
( オーバー フ ロー )
動作
変更な し
変更な し
?
?
動的位相シ フ ト はデ ィ ス エーブル
> -制限
現在の位相
シ フ ト -1
現在の位相
シ フ ト -1
1*
0
位相シ フ ト お よ びシ フ ト ポ イ ン タ
のデ ク リ メ ン ト
≤ -制限
および
現在の位相
シ フ ト -1
変更な し
1*
1
遅延 ラ イ ンの終点。 位相シ フ ト に
変更はな く 、 位相ポ イ ン タ がデ ク
リ メント
現在の
次の
位相シ フ ト
位相シ フ ト
X
X
0
↑
0
↑
> -255
1
0
↑
-255
-255
変更な し
1*
1
遅延 ラ イ ンの終点。 位相シ フ ト に
変更はな く 、 位相ポ イ ン タ が制限
値にあ る
1
1
↑
< +制限
現在の位相
シ フ ト +1
現在の位相
シ フ ト +1
1*
0
位相シ フ ト お よ びシ フ ト ポ イ ン タ
のイ ン ク リ メ ン ト
1
1
↑
≥+制限
および
現在の位相
シ フ ト +1
変更な し
1*
1
遅延 ラ イ ンの終点。 位相シ フ ト に
変更はな く 、 位相ポ イ ン タ が イ ン
ク リ メント
+255
変更な し
1*
1
遅延 ラ イ ンの終点。 位相シ フ ト に
変更はな く 、 位相ポ イ ン タ が制限
値にあ る
< +255
1
1
↑
+255
メモ :
X = 考慮す る 必要があ り ません。
? = 不確定であ り 、 現在のアプ リ ケーシ ョ ンの状態に よ っ て決定 さ れます。
1* = PSDONE が 1 PSCLK 周期間 High にアサー ト さ れます。
- 制限 = 遅延 ラ イ ンの最小位置
+ 制限 = 遅延 ラ イ ンの最大位置
PSEN を 1 PSCLK サ イ ク ル間アサー ト し ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
47
R
位相シ フ ト - ク ロ ッ ク周期の分数で ク ロ ッ ク を遅延
PSEN が Low の場合、 動的位相シ フ ト はデ ィ ス エーブルであ り 、 その他のすべての入力は無視 さ れ ま
す。 し たがっ て、 すべての現在のシ フ ト 値お よ び遅延 ラ イ ン位置に変更はあ り ません。
遅延 ラ イ ンがその制限 (デ ク リ メ ン ト で - 制限、 ま たは -255、 イ ン ク リ メ ン ト で + 制限、 ま たは +255)
に到っ ていない場合、 FPGA アプ リ ケーシ ョ ンでは PSEN を High にアサー ト す る と に よ っ て現在の位
相シ フ ト 値を変更で き 、 PSCLK の次の立ち上が り エ ッ ジの前に PSINCDEC に対 し て適切な イ ン ク リ
メ ン ト /デ ク リ メ ン ト 値を設定で き ます。 位相シ フ ト 値は、 指定 さ れた よ う に イ ン ク リ メ ン ト ま たはデ ク
リ メ ン ト し ます。 位相シ フ ト の最後に PSDONE が PSCLK の 1 周期間、 High にアサー ト さ れ、 位相シ
フ ト が完了 し た こ と を 示 し ま す。 ま た、 位相 シ フ ト の オーバー フ ロ ー状態が発生 し て い な い た め、
STATUS[0] は Low を維持 し ます。
DCM が +255 を超え る 値に イ ン ク リ メ ン ト さ れた場合、 ま たは -255 よ り 小 さ な値にデ ク リ メ ン ト さ れ
た場合には、 遅延 ラ イ ンの位置は、 その限界であ る +255 ま たは -255 か ら 変更 さ れず、 位相は変更 さ れ
ま せん。 STATUS[0] は High にな り 、 動的位相シ フ ト がオーバー フ ロ ーで あ る こ と を示 し ま す。 こ こ
で、 新 し い位相シ フ ト に よ っ て値が、 た と えば制限値内に戻 る よ う に、 変更 さ れた場合は、 STATUS[0]
が Low に戻 り ます。
位相シ フ ト が +255 ま たは -255 には達 し てい ませんが、 遅延 ラ イ ン範囲 (表 18 では + 制限お よ び - 制
限) を超えてい る 場合には、位相は変更 さ れませんが、STATUS[0] が再び High にな り ます。 STATUS[0]
出力は、 遅延 タ ッ プが遅延 ラ イ ンの限界に到達 し た と き を示 し ます。 ただ し 、 FPGA アプ リ ケーシ ョ ン
では、 等式 8 ま たは等式 6 を使用 し て制限値が算出 さ れ、 求め ら れた遅延 ラ イ ンの制限値は保証 さ れた
値 と な り ます。 特定のデバ イ ス では、 処理電圧ま たは処理温度に よ っ て、 遅延 ラ イ ン が長 く な る 場合が
あ り ますが、 こ れの値はデバ イ ス に よ っ て異な る ため、 保証 さ れてい ません。 遅延 ラ イ ンの位置ではな
く 、 位相シ フ ト 値は +255 ま たは -255 に到達す る ま で イ ン ク リ メ ン ト ま たはデ ク リ メ ン ト を続け ます。
新 し い位相シ フ ト に よ っ て値が、 た と えば制限値内に戻 る よ う に、 変更 さ れた場合は、 STATUS[0] が
Low に戻 り ます。 こ こ で、 位相シ フ ト 値は、 遅延 ラ イ ンにおいて有効な遅延値に対応す る 値に戻 る よ う
に イ ン ク リ メ ン ト ま たはデ ク リ メ ン ト さ れます。
DCM Wizard
動的位相シ フ ト は、図 35 に示す DCM Wizard の [General Setup] ダ イ ア ロ グ ウ ィ ン ド ウ で設定 し ます。
動的フ ァ イ ン位相シ フ ト を有効にす る ためには、 図 35 に示す よ う に [Variable] を選択 し ます。 次に初
期の [Phase Shift Value] を入力 し ます。 初期値は、前述 し た固定フ ァ イ ン位相シ フ ト モー ド の場合 と 同
様に動作 し ます。
[Variable]
Phase Shift
None
Phase Shift Value:
Fixed
Variable
23
x462_35_061903
図 35 : DCM Wizard での動的フ ァ イ ン位相シ フ ト モー ド の選択
図 36 に示す よ う に、[Variable] モー ド を選択する こ と に よ っ て、動的位相シ フ ト 制御信号であ る PSEN、
PSINCDEC、 PSCLK お よ び PSDONE が イ ネーブルに な り ま す。 こ れ ら の制御信号 を FPGA ア プ リ
ケーシ ョ ンで使用す る ために、入力お よ び出力チ ェ ッ ク ボ ッ ク ス を オンに し て く だ さ い。 ま た、STATUS
48
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク逓倍、 ク ロ ッ ク 分周、 周波数合成
出力のボ ッ ク ス を オ ンに し 、 STATUS[0] 信号を イ ネーブルに し ます。 STATUS[0] は、 位相シ フ ト 値が
その最大ま たは最小制限値に達 し た と き を示 し ます。
PSEN
PSINCDEC
PSCLK
STATUS
LOCKED
PSDONE
STATUS[0]
STATUS
x462_36_061903
図 36 : DCM Wizard での動的位相シ フ ト 制御出力の選択
ア プ リ ケーシ ョ ン例
動的位相調整を行 う 場合の動的位相シ フ ト 機能については、 次の リ ン ク か ら アプ リ ケーシ ョ ン ノ ー ト
XAPP268 を参照 し て く だ さ い。
•
ク ロ ッ ク逓倍、
ク ロ ッ ク分周、
周波数合成
XAPP268: 動的位相調整
http://www.xilinx.com/xapp/xapp268.pdf
DCM アプ リ ケーシ ョ ンの も っ と も 使用 さ れ る 機能の 1 つ と し て、 新 し い ク ロ ッ ク 周波数を柔軟に生成
で き る 機能があ り ます。 次に説明す る よ う に、 Spartan-3 DCM は 3 つの独立 し た周波数合成機能を持ち
ます。 図 37 お よ び表 19 を参照 し て く だ さ い。 アプ リ ケーシ ョ ンでは、 こ れ ら の機能の 1 つを使用す る
場合、 ま たはすべて を同時に使用す る 場合があ り ます。 次に、 各機能の詳細について説明 し ます。
1. 2 逓倍 ク ロ ッ ク (CLK2X、 CLK2X180) は、 入力 ク ロ ッ ク の周波数を 2 倍に し ます。
2. ク ロ ッ ク 分周 (CLKDV) は、 入力 ク ロ ッ ク 周波数を一定の分周値を使用 し て分周 し ます。
3. 周波数合成回路 (CLKFX、 CLKFX180) は、 入力 ク ロ ッ ク 周波数か ら 新 し い周波数を生成 し ます。
Deskewed Clock
CLKIN
CLK0
or
CLK2X
Clock
Distribution
Delay
Clock Feedback Loop
CLK0 CLK2X CLK2X180
CLKDV
CLKFB
CLK0
CLK0
F = FCLKIN
DUTY_CYCLE_CORRECTION=TRUE
50%
DCM
CLKFB
CLK2X
CLK2X180
Clock Doubler
F = 2 FCLKIN
DLL_FREQUENCY_MODE=LOW
50%
Clock Divider
FCLKIN
CLKDV
F=
CLKFX
CLKDV_DIVIDE
CLKFX180
50%
CLKFX
Frequency Synthesizer
F = FCLKIN
CLKFX180
CLKFX_MULTIPLY
CLKFX_DIVIDE
50%
x462_37_062203
図 37 : ク ロ ッ ク合成オプ シ ョ ン
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
49
R
ク ロ ッ ク逓倍、 ク ロ ッ ク分周、 周波数合成
CLKDV 以外のすべての周波数合成出力は、 50/50 デ ュ ーテ ィ サ イ ク ルを持ち ます。 表 23 に示す よ う
に、 高周波数で分周値が整数の場合、 通常 CLKDV は 50% のデ ュ ーテ ィ サ イ ク ルを持ち ます。 ま た、 2
逓倍 ク ロ ッ ク (CLK2X、 CLK2X180) 回路は高周波数では使用で き ません。
CLKFX お よ び CLKFX180 以外のすべての DCM ク ロ ッ ク 出力は、 DCM の 遅延 ロ ッ ク ループ (DLL)
ユニ ッ ト で生成 さ れ、 CLKFB ピ ンへの ク ロ ッ ク フ ィ ー ド バ ッ ク が必要にな り ます。 DCM の デジ タ ル
周波数合成 (DFS) ユニ ッ ト は、CLKFX お よ び CLKFX180 ク ロ ッ ク 出力を生成 し ます。 アプ リ ケーシ ョ
ンで CLKFX 出力ま たは CLKFX180 出力のみが使用 さ れ る 場合には、フ ィ ー ド バ ッ ク パ ス を削除で き 、
DCM の動作範囲が広 く な り ます。 周波数合成回路は、 DCM 内部に CLKIN に基づいた フ ィ ー ド バ ッ
ク パ ス を持ち ます。
表 19 : DCM 周波数合成オプ シ ョ ン
機能
DCM 出力
ス キ ュ ー調整
クロック
CLK0
2 逓倍 ク ロ ッ ク
CLK2X
DCM の機能
周波数
ユニ ッ ト
50% の
フ ィ ードバッ ク
デ ュ ーテ ィ サイ クル
F CLKIN
DLL
必要
DUTY_CYCLE_
CORRECTION = TRUE の
場合に 50% です。
2 • F C LK I N
DLL
必要
常に 50% です。
DLL
必要
高周波数モー ド で分周値が
整数以外の場合を除いて常
に 50% です。
DFS
オプシ ョ ン。
フ ィードバッ クに
よ っ て、 ク ロ ッ ク
入力周波数範囲は
広く なる こ とは
あ り ません。
CLK2X180
分周 ク ロ ッ ク
CLKDV
周波数合成
CLKFX
F CLKIN
--------------------------------------------------CLKDV _ DIVIDE
CLKFX180
CLKFX _ MULTIPLY
FCLKIN • ⎛⎝ ------------------------------------------------------------⎞⎠
CLKFX _ DIVIDE
常に 50% です。
ク ロ ッ ク フ ィ ー ド バ ッ ク を使用 し た場合、 すべての出力 ク ロ ッ ク の位相が調整 さ れます。 ま た、 出力の
い く つかは分周 ク ロ ッ ク であ る ため、すべての DCM 出力が ク ロ ッ ク エ ッ ジで一致す る よ う に調整 さ れ
る こ と は ま れであ る こ と がわか り ます。 た と えば、 CLKDV 出力は CLKDV_DIVID の各サ イ ク ルご と
に CLKIN お よ び CLK0 に対 し て調整 さ れ、 CLK2X 出力は CLK0 のサ イ ク ル 1 つおき に、 こ の信号に
対 し て調整 さ れます。 ま た、 CLKFX 出力は、 CLKIN の CLKFX_DIVIDE サ イ ク ルご と お よ び CLKFB
の CLKFX_MULTIPLY サ イ ク ルご と に CLKIN に位相調整 さ れます。
周波数合成ア プ リ ケーシ ョ ン
周波数合成を使用す る アプ リ ケーシ ョ ンは、 ほぼ無制限に考え ら れますが、 次にい く つかのアプ リ ケー
シ ョ ン例を示 し ます。
50
•
ボー ド 上で利用可能な ク ロ ッ ク を使用 し てい る FPGA お よ び外部 ロ ジ ッ ク に対 し て完全に新 し い
ク ロ ッ ク 周波数を生成す る
•
低速の外部 ク ロ ッ ク ソ ース か ら 高周波数の内部 ク ロ ッ ク を生成 し 、 シ ス テ ムの EMI を低減する
•
図 38 に示す よ う に、高速シ リ アルデー タ ク ロ ッ ク を分周 し 、FPGA 内部でデー タ の並行処理を行 う
•
同様に 図 38 に示す よ う に、 高速シ リ アル デー タ フ ォーマ ッ ト に変換す る 前に、 並行で動作す る
デー タ ク ロ ッ ク の周波数を逓倍す る
•
適切な速度の機能を イ ンプ リ メ ン ト す る 場合に、 入力 ク ロ ッ ク を逓倍 し 、 内部 ロ ジ ッ ク を ク ロ ッ ク
ア ッ プす る こ と に よ っ て、 使用す る リ ソ ース を削減す る
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク逓倍、 ク ロ ッ ク 分周、 周波数合成
F
F
FPGA
DCM
DCM
F
n
F
High-speed serial data
down-converted to
slower parallel data
F
n-bits
wide
F.m
m-bits
wide
Slower parallel data
up-converted to highspeed serial data
Overclocked,
time-shared logic
F.x
F
DCM
F
x462_38_070903
図 38 : 周波数合成ア プ リ ケーシ ョ ンの一般的な例
入力 ク ロ ッ ク および出力 ク ロ ッ クの周波数条件
周波数合成を行 う 場合の入力 ク ロ ッ ク お よ び出力 ク ロ ッ ク の周波数条件は、 DCM で使用 さ れ る ク ロ ッ
ク 出力に よ っ て決定 さ れ ます。 た と えば、 CLKFX 出力お よ び CLKFX180 出力は DCM のデジ タ ル周
波数合成 (DFS) ユニ ッ ト のみを使用 し 、 その他のすべての出力は遅延 ロ ッ ク ループ (DLL) ユニ ッ ト を
使用 し ます。 DLL におけ る 周波数の制限は、 DFS よ り も 厳 し いため、 DFS のみを使用す る 場合の方が
周波数の動作範囲は広 く な り ます。 DFS お よ び DLL の両方を使用す る 場合、 アプ リ ケーシ ョ ンは DLL
の周波数範囲に よ っ て制限 さ れます。
ま た、 DLL お よ び DFS は、 低周波数モー ド と 高周波数モー ド の両方で動作可能であ る ため、 モー ド 設
定に よ っ て も 有効な周波数範囲が変動 し ます。
DCM デザ イ ンが有効であ る ためには、 CLKIN 周波数が 『Spartan-3 デー タ シー ト 』 モジ ュ ール 3 に記
載 さ れてい る 動作範囲内であ る 必要があ り 、 使用 さ れてい る すべての出力 ク ロ ッ ク の周波数 も それぞれ
指定 さ れた範囲内でなければな り ません。
図 39 に、 ク ロ ッ ク 入力お よ び ク ロ ッ ク 出力 と 対応する 周波数範囲を示 し ます。 ただ し 、 こ こ で示すのは
低周波数モー ド の場合のみです。 デー タ シー ト に記載 さ れてい る 仕様名は影付 き のボ ッ ク ス内に示 し て
い ます。 ま た、 表 20 に DCM アプ リ ケーシ ョ ンの例お よ び周波数条件を示 し ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
51
R
ク ロ ッ ク逓倍、 ク ロ ッ ク分周、 周波数合成
~1 MHz*
~326 MHz*
DFS
(CLKIN_FREQ_FX_{MIN,MAX})
FCLKIN
~24 MHz*
~180 MHz*
DLL (Low-Frequency Mode)
(CLKIN_FREQ_DLL_LF_{MIN,MAX})
~24 MHz*
FCLKFX
~200 MHz*
DFS (Low-Frequency Mode)
FCLKFX180
(CLKOUT_FREQ_FX_LF_{MIN,MAX})
~1.5 MHz*
FCLKDV
~120 MHz*
DLL, CLKDV (Low-Frequency Mode)
(CLKOUT_FREQ_FX_LF_{MIN,MAX})
~48 MHz*
FCLK2X
FCLK2X180
~326 MHz*
DLL, CLK2X (Low-Frequency Mode)
(CLKOUT_FREQ_2X_LF_{MIN,MAX})
x462_39_070903
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
図 39 : 入力 ク ロ ッ ク および出力ク ロ ッ クの周波数条件 (低周波数モー ド )
表 20 : DCM 周波数条件の例
入力周波数
出力周波数
解説
1.2 MHz
12.8 MHz
1 つの DCM のみを使用する 場合には条件を満た し ません。 FCLKIN は DFS の条件を満たす範囲内で
すが、 FCLKFX は最低 24MHz 出力周波数が必要です。
1.2 MHz
32.4 MHz
DFS を使用す る DCM で条件を満た し ます。 CLKFX_MULTIPLY=27 と 設定 し て く だ さ い。 FCLKFX
は DFS 出力周波数範囲内です。
25 MHz
2.5 MHz
DFS お よ び DLL を使用す る DCM で条件を満た し ます。 CLKDV 出力を 2.5MHz 信号に使用 し 、
CLKDV_DIVIDE=10 と 設定 し て く だ さ い。 ま た、 CLKFX 出力を 30MHz 信号に使用 し 、
CLKFX_MULTIPLY=6 お よ び CLKFX_DIVIDE=5 と 設定 し て く だ さ い。 すべての入力周波数お よ
30 MHz
び出力周波数は適切な範囲内です。
2 逓倍ク ロ ッ ク (CLK2X、 CLK2X180)
表 21 に示す よ う に、 2 逓倍 ク ロ ッ ク 回路に よ っ て、 CLKIN 入力の周波数は 2 倍にな り ます。 こ の 2 逓
倍 ク ロ ッ ク 回路は DLL 機能ユニ ッ ト の一部であ り 、 CLK0 出力ま たは CLK2X 出力か ら CLKFB への
フ ィ ー ド バ ッ ク パ ス を必要 と し ます。 2 逓倍 ク ロ ッ ク 回路か ら の出力は CLK2X お よ び CLK2X180 で
あ り 、 こ れ ら の出力のデ ュ ーテ ィ サ イ ク ルは常に 50% です。 ま た、 こ れ ら の周波数は同一ですが、
CLK2X180 は CLK2X を 180°位相シ フ ト し た も のであ り 、 基本的に CLK2X 出力を反転 し た も のに
な り ます。 高性能のデ ュ アル デー タ レー ト (DDR) アプ リ ケーシ ョ ン、 ま たは ク ロ ッ ク 転送アプ リ ケー
シ ョ ンでは、 両方の位相を使用す る こ と が不可欠です。
CLK2X 出力お よ び CLK2X180 出力は DLL_FREQUENCY_MODE 属性が LOW に設定 さ れてい る 場
合のみに使用で き ます。 アプ リ ケーシ ョ ンにおけ る 必要性に応 じ て、オプシ ョ ンの 2 分周機能を使用 し 、
CLKIN 入力周波数を低下 さ せて く だ さ い ( 「ア ド バン ス ド オプシ ョ ン」 を参照)。
52
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク逓倍、 ク ロ ッ ク 分周、 周波数合成
表 21 : 2 逓倍ク ロ ッ ク 回路のま と め
DCM 出力
CLK2X
CLK2X180
出力周波数
2 • F CLK I N
DCM の機能ユニ ッ ト
遅延 ロ ッ ク ループ (DLL)
フ ィードバッ ク
必要です。
50% デ ュ ーテ ィ サ イ ク ル出力
はい
制御属性
DLL_FREQUENCY_MODE
CLK2X 出力お よ び CLK2X180 出力は DLL_FREQUENCY_MODE = LOW の場合にのみ有効
です。
CLKIN
CLKIN の周波数は DLL_FREQUENCY_MODE 属性に よ っ て指定 さ れます。 2 逓倍 ク ロ ッ ク の
出力は、 高周波数モー ド では使用で き ませんが、 ほかの DCM ク ロ ッ ク 出力に必要 と な る 場合が
あ り ます。
DLL_
FREQUENCY_
MODE
CLK2X
CLK2X180
最小周波数
最大周波数
LOW
CLKIN_FREQ_DLL_LF_MIN
(~24 MHz)*
CLKIN_FREQ_DLL_LF_MAX
(~180 MHz)*
HIGH
CLKIN_FREQ_DLL_HF_MIN
(~48 MHz)*
CLKIN_FREQ_DLL_HF_MAX
(~326 MHz)*
CLKDV の周波数は DLL_FREQUENCY_MODE 属性に よ っ て指定 さ れます。
DLL_
FREQUENCY_
MODE
最小周波数
最大周波数
LOW
CLKOUT_FREQ_2X_LF_MIN
(48 MHz)*
CLKOUT_FREQ_2X_LF_MAX
(~325 MHz)*
HIGH
設定不可
設定不可
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
53
R
ク ロ ッ ク逓倍、 ク ロ ッ ク分周、 周波数合成
ク ロ ッ ク分周 (CLKDV)
表 22 に概要を示す ク ロ ッ ク 分周ユニ ッ ト は、 デザ イ ン に設定 し た CLKDV_DIVIDE 属性の値を使用
し 、 CLKIN 入力の周波数 を 分周 し ま す。 ク ロ ッ ク 分周ユ ニ ッ ト は DLL 機能ユ ニ ッ ト の一部で あ り 、
CLK0 出力ま たは CLK2X 出力か ら CLKFB への フ ィ ー ド バ ッ ク パ ス を必要 と し ます。
表 22 : ク ロ ッ ク分周回路のま と め
DCM 出力
CLKDV
出力周波数
F CLKIN
-------------------------------------------------CLKDV _ DIVIDE
DCM の機能ユニ ッ ト
遅延 ロ ッ ク ループ (DLL)
フ ィードバッ ク
DCM か ら の CLK0 出力ま たは CLK2X 出力を使用する 場合に必要です。
50% デ ュ ーテ ィ サ イ ク ル出力
はい。 ただ し 、 DLL_FREQUENCY_MODE=HIGH お よ び CLKDV_DIVIDE が整数値ではない
場合を除 き ます。
制御属性
DLL_FREQUENCY_MODE
CLKDV は両モー ド で使用で き ます。 分周値に よ っ ては、 出力のデ ュ ーテ ィ サ イ ク ルに影響を与
え る 場合があ り ます ( 「CLKDV ク ロ ッ ク 調整」 を参照 し て く だ さ い)。
CLKDV_DIVIDE
上記の等式に基づ き 、 出力周波数を制御 し ます。 有効な値は 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 であ り 、 整数値の場合、 よ り 短時間
で DLL は ロ ッ ク 状態にな り ます。 ま た、 整数値を設定す る 場合には出力ジ ッ タ が低 く な り ます。
周波数制約
CLKIN
CLKIN の周波数は DLL_FREQUENCY_MODE 属性に よ っ て指定 さ れます。
DLL_
FREQUENCY_
MODE
CLKDV
最小周波数
最大周波数
LOW
CLKIN_FREQ_DLL_LF_MIN (24
MHz)*
CLKIN_FREQ_DLL_LF_MAX
(~180 MHz)*
HIGH
CLKIN_FREQ_DLL_HF_MIN
(48 MHz)*
CLKIN_FREQ_DLL_HF_MAX
(~325 MHz)*
CLKDV の周波数は DLL_FREQUENCY_MODE 属性に よ っ て指定 さ れます。
DLL_
FREQUENCY_
MODE
最小周波数
最大周波数
LOW
CLKOUT_FREQ_DV_LF_MIN
(1.5 MHz)*
CLKOUT_FREQ_DV_LF_MAX
(~120 MHz)*
HIGH
CLKOUT_FREQ_DV_HF_MIN
(3.0 MHz)*
CLKOUT_FREQ_DV_HF_MAX
(~240 MHz)*
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
54
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク逓倍、 ク ロ ッ ク 分周、 周波数合成
CLKDV ク ロ ッ ク調整
DLL_FREQUENCY_MODE 属性が High であ り 、CLKDV_DIVIDE 属性の値が整数ではない場合を除
き 、 CLKDV 出力のデ ュ ーテ ィ サ イ ク ルは 50% にな り ます。 表 23 に CLKDV のデ ュ ーテ ィ サ イ ク ル
を示 し ます。 Spartan-3 DCM では CLKIN のデ ュ ーテ ィ サ イ ク ルが 60%/40% ( ま たは 40%/60%) 以上
であ る 必要があ り 、 高周波数モー ド の場合に 1.5 で分周 さ れた CLKDV 出力は、 次にカ ス ケー ド 接続 さ
れた DCM へ ク ロ ッ ク 入力する こ と はで き ません。
表 23 : CLKDV デ ュ ーテ ィ サイ クル (DLL_FREQUENCY_MODE=HIGH の場合)
CLKDV_DIVIDE 属性
デ ュ ーテ ィ サイ クル
High 時間/
総サイ クル
整数
50.000%
1/2
1.5
33.333%
1/3
2.5
40.000%
2/5
3.5
42.857%
3/7
4.5
44.444%
4/9
5.5
45.454%
5/11
6.5
46.154%
6/13
7.5
46.667%
7/15
CLKDV のジ ッ タ は、 周波数モー ド お よび属性値が整数か、 整数ではないかによ っ て決定 さ れます。
CLKDV_DIVIDE 属性に整数値を設定す る こ と に よ っ て、 出力ジ ッ タ が半分にな り 、 DLL が ロ ッ ク 状
態にな る ために要す る 時間 も 短縮 さ れます。
表 24 : CLKDV 出力ジ ッ タ
CLKDV_DIVIDE
CLKDV 出力周期ジ ッ タ
整数値
CLKOUT_PER_JITT_DV1 (±~150 ps)*
整数以外の値
CLKOUT_PER_JITT_DV2 (±~300 ps)*
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
DCM Wizard
ク ロ ッ ク 分 周 は DCM Wizard の[General Setup] ウ ィ ン ド ウ で 設定 し ま す。 図 40a に 示す よ う に
CLKDV 出力のチ ェ ッ ク ボ ッ ク ス をオンに し 、 次に図 40b に示す よ う に、 ド ロ ッ プ ダ ウ ン リ ス ト か ら
[Divide by Value] を選択 し ます。
CLKDV
Divide By Value
2
x462_40a_061903
x462_40b_061903
a. CLKDV 出力のチ ェ ッ ク ボ ッ ク ス を オ ン
b. ド ロ ッ プ ダウン リ ス ト から [Divide by Value
を選択]
図 40 : DCM Wizard での分周ク ロ ッ ク設定
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
55
R
ク ロ ッ ク逓倍、 ク ロ ッ ク分周、 周波数合成
周波数合成回路 (CLKFX、 CLKFX180)
周波数合成回路を使用す る こ と に よ っ て、 入力周波数の逓倍、 分周、 ま たはその両方を も っ と も 柔軟に
行 う こ と がで き ます。 表 25 に示す よ う に、 2 つの周波数合成出力は CLKFX お よ び CLKFX180 です。
CLKFX180 出力は CLKFX と 同一の周波数を持ち ますが、CLKFX を 180°ま たは 1/2 ク ロ ッ ク 周期位
相 シ フ ト さ せ た も の で す。 こ れ ら の 周波数合成出力 の デ ュ ー テ ィ サ イ ク ル は 50% で あ る た め、
CLKFX180 は CLKFX の反転 ク ロ ッ ク の よ う に見え ます。
表 25 にあ る 等式が示す よ う に、設計段階で 2 つの属性を使用 し 、合成出力周波数を制御 し ます。 CLKIN
ク ロ ッ ク 入力は、 CLKFX_MULTIPLY が分子、 CLKDV_DIVIDE が分母であ る 比率を使用 し て逓倍 さ
れ ます。 た と えば、 75MHz CLKIN 入力を使用 し て 155MHz の出力を生成す る ためには、 周波数合成
回路では 31/15 の比率で CLKIN を逓倍 し ます。 こ れは、 CLKIN を始めに 31 倍 し 、 次に 15 で割 る こ
と ではあ り ません。CLKIN を 31 倍す る こ と に よ っ て、出力周波数は2.325GHz と な り 、Spartan-3 DCM
の周波数範囲を越え る こ と にな り ます。
6/8 を 3/4 と 約分す る よ う に、 逓倍値お よ び分周値は も っ と も 簡潔な値にす る 必要があ り ます。 こ の こ
と に よ っ て、 ロ ッ ク す る ために必要な時間が短縮 し ます。
周波数合成には、 常に ク ロ ッ ク フ ィ ー ド バ ッ ク が必要ですが、 DFS には CLKIN を 基準 と し た内部
フ ィ ー ド バ ッ ク ループがあ る ため、 DLL を使用せずに DFS を使用する 場合には、 CLKFB に別のルー
プは必要あ り ません。
ま た、 CLKFB 出力は、 CLKIN の CLKFX_DIVIDE サ イ ク ルご と 、 お よ び CLKFB の
CLKFX_MULTIPLY サ イ ク ルご と に CLKIN に対 し て位相調整 さ れます。 た と えば、
CLKFX_MULTIPLY = 3 であ り 、 CLKFX_DIVIDE = 5 の場合、 CLKFX 出力の位相は CLKIN の各 5
サ イ ク ルご と 、 お よ び CLKFB の 3 サ イ ク ルご と に CLKIN 入力に対 し て位相調整 さ れます。 DCM で
LOCKED 出力がアサー ト さ れ る と 、 DFS は CLKIN 入力の立ち上が り エ ッ ジ ご と に再同期 し 、 ほぼ完
璧に位相調整 さ れます。
表 25 : 周波数合成回路のま と め
DCM 出力
CLKFX
CLKFX180 (CLKFX を 180°位相シ フ ト し た場合 と 同一)
出力周波数
CLKFX _ MULTIPLY
F CLKIN • ----------------------------------------------------------CLKFX _ DIVIDE
DCM の機能ユニ ッ ト
デジ タ ル周波数合成 (DFS)
フ ィードバッ ク
CLKIN を基準に し て内部フ ィ ー ド バ ッ ク を使用す る ため、 必要あ り ません。 遅延 ロ ッ ク ループ
(DLL) を使用す る 場合は、 オプシ ョ ン と し て CLKFB 入力を使用で き ます。
50% デ ュ ーテ ィ サ イ ク ル出力
常に 50% です。
制御属性
DFS_FREQUENCY_MODE
CLKIN、 CLKFX 出力、 CLKFX180 出力の周波数条件に影響 し ます。
DLL_FREQUENCY_MODE
アプ リ ケーシ ョ ンで DLL 出力が使用 さ れ る 場合に、 周波数合成回路のみに影響を与え ます。
ま た、 よ り 厳 し い DLL の条件に適用す る よ う に CLKIN 周波数を低下 さ せ る 可能性があ り ます。
CLKFX 出力ま たは CLKFX180 出力が使用 さ れてい る 場合、 周波数条件は
DFS_FREQUENCY_MODE に よ っ てのみ指定 さ れます。
CLKFX_MULTIPLY
上記の等式に基づ き 、 出力周波数を制御 し ます。 設定可能な範囲は整数値の 2 か ら 32 であ り 、
デフ ォ ル ト は 4 です。
CLKDV_DIVIDE
上記の等式に基づ き 、 出力周波数を制御 し ます。 設定可能な範囲は整数値の 1 か ら 32 であ り 、
デフ ォ ル ト は 1 です。
56
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク逓倍、 ク ロ ッ ク 分周、 周波数合成
表 25 : 周波数合成回路のま と め (Continued)
周波数制約
CLKIN
アプ リ ケーシ ョ ンで 遅延 ロ ッ ク ループ (DLL) か ら の出力が使用 さ れていない場合、 CLKIN の周
波数条件は DFS_FREQUENCY_MODE 属性に よ っ て指定 さ れます。 DLL が使用 さ れてい る 場
合は、 DLL の ク ロ ッ ク 周波数条件は よ り 厳 し く な り ます。
最小周波数
最大周波数
CLKIN_FREQ_FX_MIN (~1.0 MHz)*
CLKIN_FREQ_FX_MAX (~326 MHz)*
CLKIN 出力お よ び CLKFX180 出力の周波数条件は DFS_FREQUENCY_MODE 属性に よ っ て
CLKFX
CLKFX180
指定 さ れます。
DFS_
FREQUENCY_
MODE
最小周波数
最大周波数
LOW
CLKIN_FREQ_FX_LF_MIN
(~24 MHz)*
CLKIN_FREQ_FX_LF_MAX
(~210 MHz)*
HIGH
CLKIN_FREQ_FX_HF_MIN
(~210 MHz)*
CLKIN_FREQ_FX_HF_MAX
(~325 MHz)*
* 概算値です。 正確な数値については 『Spartan-3 デー タ シー ト 』 のモジ ュ ール 3 を参照 し て く だ さ い。
DCM Wizard
周波数合成を使用す る 場合、 図 41 に示す よ う に、 DCM Wizard の[General Setup] ダ イ ア ロ グ ボ ッ ク ス
で CLKFX ま たは CLKFX180 あ る いはその両方のチ ェ ッ ク ボ ッ ク ス をオンに し て く だ さ い。
CLKFX
CLKFX180
DCM
CLK0
CLKFX
CLKFX180
CLKFX
CLKFX180
x462_41_070903
図 41 : DCM Wizard での Frequency Synthesizer 設定
CLKFX 出力ま たは CLKFX180 出力のみを使用す る 場合は、オプシ ョ ン と し て DLL ク ロ ッ ク 出力お よ
びフ ィ ー ド バ ッ ク をデ ィ ス エーブルにす る こ と に よ っ て、 周波数範囲を広げ る こ と がで き ます。
•
デフ ォ ル ト では、 CLK0 出力は常にオンにな っ てい ますが、 CLKFX ま たは CLKFX180 のみを使
用す る 場合は、 CLK0 のチ ェ ッ ク ボ ッ ク ス を オ フ に し て く だ さ い。
•
図 42 に示す よ う に、 DCM フ ィ ー ド バ ッ ク をデ ィ ス エーブルにす る 場合は、 [None] を選択 し て く
だ さ い。 フ ィ ー ド バ ッ ク を使用 し ない場合は、 CLKFX お よ び CLKFX180 の周波数範囲は、 高域 と
低域の両方で広 く な り ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
57
R
ク ロ ッ クのフ ォ ワー ド 、 ミ ラ ー、 リ バ ッ フ ァ
If only using the CLKFX or CLKFX180
clock ouputs, optionally click None to
extend the DCM frequency limits.
Feedback
Source:
Value:
Internal
External
1X
2X
None
x462_42_070903
図 42 : フ ィ ー ド バ ッ ク に [None] を選択 し 、 周波数範囲を拡大
DCM Wizard の ク ロ ッ ク 周波数合成で示 し た よ う に、必要は出力周波数ま たは逓倍値 と 分周値を入力 し
ます。
ク ロ ッ クの フ ォ
ワー ド 、 ミ ラ ー、
リバッ フ ァ
DCM は高度な ク ロ ッ ク 制御機能を持ち、 さ ら に Spartan-3 I/O ピ ンは多様な I/O 電圧標準をサポー ト す
る ため、 通常 Spartan-3 FPGA では ク ロ ッ ク 信号の リ バ ッ フ ァ 、 ま たは ミ ラ ーを行い、 入力 ク ロ ッ ク の
電圧を変更ために使用 さ れ ます。 同様に、 DCM の入力 ク ロ ッ ク 条件を変更 し 、 デ ュ ーテ ィ サ イ ク ルを
50% に調整 し ます。
図 20 に、 DCM の入力 ク ロ ッ ク を 50% デ ュ ーテ ィ サ イ ク ルに調整 し 、 その周波数で CLK0 出力を使
用 し て ク ロ ッ ク を フ ォ ワー ド す る 、 ま たは DCM CLK2X を使用 し て周波数を 2 倍にす る DCM の例を
示 し ま し た。 DCM が LOCKED 出力を アサー ト す る と 、 入力 ク ロ ッ ク お よ び出力 ク ロ ッ ク は位相調整
さ れます。 CLKFB への フ ィ ー ド バ ッ ク パス は、 外部の ク ロ ッ ク フ ィ ー ド バ ッ ク 地点で ク ロ ッ ク 分散遅
延を確認 し 、 削除 し ます。
出力 ク ロ ッ ク のデ ュ ーテ ィ サ イ ク ルが 50% であ る こ と は重要であ る ため、出力 I/O 標準が 50% デ ュ ー
テ ィ サ イ ク ル を維持で き る ために十分な速度で ス イ ッ チで き る こ と を確認 し て く だ さ い。 デ ュ ーテ ィ
サ イ ク ルの動作は、 出力信号でのシ ミ ュ レ ーシ ョ ン を行 う こ と に よ っ て検証 し ま す。 IBIS シ ミ ュ レ ー
シ ョ ンで確認で き る よ う に、 I/O 標準には立ち上が り と 立ち下が り が対称的ではな く 、 デ ュ ーテ ィ サ イ
ク ルにずれが発生 し てい る も の も あ り ます。 HSTL、 SSTL お よ び LVCMOS の DCI バージ ョ ン の I/O
標準の立ち上が り お よ び立ち下が り が よ り 対称的です。
100 MHz を 越 え る 場合のデ ュ ー テ ィ サ イ ク ル を 確実に 50% にす る た め に は、 CLKIN の ソ ー ス の
デ ュ ーテ ィ サ イ ク ルが 50% の場合に も 、 DCM のデ ュ ーテ ィ サ イ ク ル調整機能を使用す る 必要があ り
ます。 し たがっ て、 ク ロ ッ ク フ ォ ワー ド に CLK0、 CLK90、 CLK180 ま たは CLK270 を使用す る 場合
は、 DUTY_CYCLE_CORRECTION 属性を TRUE に設定 し て く だ さ い。 通常、その他の DCM ク ロ ッ
ク 出力は常に 50% のデ ュ ーテ ィ サ イ ク ルに調整 さ れます ( 「 ク ロ ッ ク 調整」 を参照 し て く だ さ い)。
200 MHz 以上で動作す る 場合のデ ュ ーテ ィ サ イ ク ルを最適にす る ためには、図 43 に示す よ う な回路を
使用 し て く だ さ い。 こ こ では、 DCM か ら の CLKx 出力お よ び CLKx180 出力がデ ュ アル デー タ レー
ト (DDR) 出力フ リ ッ プ フ ロ ッ プの C0 入力お よ び C1 入力を駆動する よ う に使用 し ます。 DDR フ リ ッ
プ フ ロ ッ プの D0 入力を VCC に接続 し 、 D1 入力を GND に接続 し ます。 ま た、 DCM の各出力は個々
のグ ロ ーバル バ ッ フ ァ を駆動 し 、 デュ ーテ ィ サ イ ク ルのずれを最小に し ます。 高周波数の場合に、 1 つ
の ク ロ ッ ク のみ を 分散 し 、 DDR フ リ ッ プ フ ロ ッ プ内部で ロ ーカ ル位相シ フ ト を 行 う と 、 約 150ps の
デ ュ ーテ ィ サ イ ク ルのずれが発生す る ため、 こ の よ う な回路設計は推奨 し てい ません。
周波数が 250 MHz 以上の場合には、 分散 ク ロ ッ ク に LVDS の よ う な差動信号標準を使用 し ます。 図 43
に、CLKIN ク ロ ッ ク 入力お よ び ク ロ ッ ク 出力が と も に VLDS を使用する 例を示 し ます。 さ ら に、ク ロ ッ
ク フ ィ ー ド バ ッ ク パ ス も LVDS を使用 し ます。 パフ ォーマ ン ス を最適にす る ためには、 ク ロ ッ ク 入力
お よ び ク ロ ッ ク フ ィ ー ド バ ッ ク パ ス にグ ロ ーバル バ ッ フ ァ 入力 (IBUFGDS) を使用す る 必要があ り ま
す。 こ れに よ っ て、 デバ イ ス の一辺にあ る すべてのグ ロ ーバル バ ッ フ ァ 入力を使用す る こ と にな り ます
が、 高周波数での ク ロ ッ ク フ ォ ワー ド を最適に行 う こ と がで き ます。
58
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク ジ ッ タ および位相 ノ イ ズ
FPGA
OFDDRCPE
IBUFGDS
VCC
D0
GND
D1
DCM
BUFG
CLKIN
CLKx
CLKFB
CLKx180
IBUFGDS
OBUFDS
Q
CE
C0
C1
BUFG
External Clock Feedback (LVDS)
x462_43_061903
図 43 : 高周波数 (250 MHz 以上) での LVDS ク ロ ッ ク フ ォ ワー ド 回路
クロ ッ ク ジッ タお
よび位相 ノ イ ズ
も っ と も 高価で、 高精度な も のの場合において も 、 すべての ク ロ ッ ク には ク ロ ッ ク ジ ッ タ ま たは位相 ノ
イ ズがあ り ます。 こ こ では、 Spartan-3 デジ タ ル ク ロ ッ ク マネージ ャ に固有のジ ッ タ 特性について説明
し ま す。 低周波数、 た と えば 20 MHz、 で動作す る 場合は、 一般に、 ジ ッ タ の影響は無視で き ま すが、
200 MHz の よ う な高周波数で動作す る 場合には、 特にデ ュ アル デー タ レー ト (DDR) アプ リ ケーシ ョ
ンにおいて、 ジ ッ タ はデザ イ ンの問題に関連す る 要素 と な り ます。 ク ロ ッ ク ジ ッ タ に よ っ て、 ア ク テ ィ
ブ ク ロ ッ ク エ ッ ジ間で実際に有効な時間が削減 さ れ る ため、 FPGA アプ リ ケーシ ョ ン で使用で き る 時
間が制限 さ れます。
ク ロ ッ ク ジ ッ タ とは
図 44 に示す よ う に、 ク ロ ッ ク ジ ッ タ と は、理想的な ク ロ ッ ク エ ッ ジ と 実際の ク ロ ッ ク エ ッ ジの相違で
す。 太線は、 理想的な ク ロ ッ ク 信号を表 し ます。 各 ク ロ ッ ク エ ッ ジでは、 理想的な ク ロ ッ ク エ ッ ジ と 実
際の ク ロ ッ ク エ ッ ジ間に若干のずれがあ り 、 こ のずれの最大値 と 最小値の差異を ピー ク ジ ッ タ と 呼び
ま す。 ジ ッ タ は、 ア ク テ ィ ブな ク ロ ッ ク エ ッ ジのみに関係 し ま す。 た と えば、 シ ン グル デー タ レー ト
(SDR) アプ リ ケーシ ョ ンの場合、 デー タ は各立ち上が り エ ッ ジで ク ロ ッ ク 入力 さ れ、 こ の場合のジ ッ タ
は総 ク ロ ッ ク 周期か ら 引 く こ と に よ っ て求め ら れ ま す。 一方、 デ ュ アル デー タ レー ト (DDR) の場合、
デー タ は各 ク ロ ッ ク 周期の始ま り 、 お よ び 1/2 ク ロ ッ ク 周期の点で ク ロ ッ ク 入力 さ れ る ため、 ジ ッ タ は
1/2 ク ロ ッ ク 周期ご と に影響を与え ます。
x462_44_061903
図 44 : ク ロ ッ ク信号におけ る ジ ッ タ
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
59
R
ク ロ ッ ク ジ ッ タ および位相 ノ イ ズ
ク ロ ッ ク ジ ッ タ の原因
ク ロ ッ ク ジ ッ タ はすべてのシ ス テ ムに存在 し 、それを避け る こ と はで き ません。 ク ロ ッ ク ジ ッ タ の原因
は、 シ ス テ ム内の ノ イ ズの ソ ース、 ま たは不完全な信号であ り 、 実際、 ジ ッ タ は時間軸上におけ る ノ イ
ズであ る と 言え ます。 た と えば、 入力 ク ロ ッ ク ソ ース には、 ク リ ス タ ルか ら の任意の温度振動 ノ イ ズ、
ま たは機械的な振動 ノ イ ズに よ る 固有のジ ッ タ 特性があ り ます。 多 く の同時ス イ ッ チ出力 (SSO) は、 回
路基板に ノ イ ズ を追加す る ため、 内部ス イ ッ チ し き い値がわずかに変更 し 、 ジ ッ タ が増加 し ます。 同様
に、適切に設計 さ れていない電源供給、 ま たは不十分なデカ ッ プ リ ン グに よ っ て も ジ ッ タ は増加 し ます。
その他のジ ッ タ の原因 と し ては、 近接 し た信号の ク ロ ス ト ー ク 、 不適切な終端、 グ ラ ン ド バ ウ ン ス、 電
磁干渉 (EMI) な ど が考え ら れます。
こ のアプ リ ケーシ ョ ン ノ ー ト では、 Spartan-3 デジ タ ル ク ロ ッ ク マネージ ャ (DCM) お よ び FPGA 内
部でのジ ッ タ 全般について説明 し ます。
ク ロ ッ ク ジ ッ タ 特性の理解
ク ロ ッ ク ジ ッ タ の特性は さ ま ざ ま な方法で定め ら れ、次の よ う にいろいろ な方法でその特徴を捉え る こ
と がで き ます。
サイ クル間ジ ッ タ
隣接サ イ ク ル ジ ッ タ と も 呼ばれ る サ イ ク ル間ジ ッ タ は、 図 45 に示す よ う に、 1 つの ク ロ ッ ク サ イ ク ル
と 次の ク ロ ッ ク サ イ ク ル間での ク ロ ッ ク 周期の最大差異です。 こ の例では、あ る ク ロ ッ ク サ イ ク ル と 次
の ク ロ ッ ク サ イ ク ル間の最大差異は +100 ps お よ び -100 ps、 ま たは ±100 ps です。 数百万 ク ロ ッ ク サ
イ ク ル間の計測を行 う 場合には、ク ロ ッ ク 周期の変動の絶対値が大 き く な る 可能性があ り ますが、ク ロ ッ
ク サ イ ク ル間の変動が ±100 ps よ り 大き く な る こ と はあ り ません。
T0
T1 = T0 + 100 ps
T2 = T1 - 100 ps
x462_45_062203
図 45 : サイ クル間ジ ッ タ 例
サ イ ク ル間ジ ッ タ は、 ク ロ ッ ク 出力ま たはオシ レー タ の特性を測定す る ために重要ですが、 アプ リ ケー
シ ョ ンの タ イ ミ ン グ解析には有効ではあ り ません。
周期ジ ッ タ
周期ジ ッ タ は、 数百万 ク ロ ッ ク サ イ ク ル間で計測 し たサ イ ク ル間ジ ッ タ の合計です。 ピー ク ジ ッ タ は、
理想的な ク ロ ッ ク 移行時間 と 比較 し た場合の最短お よ び最小移行時間を示 し ます。
デジ タ ル ク ロ ッ ク マネージ ャ の周期ジ ッ タ は、一定では く ピー ク 間ジ ッ タ と し て表 さ れます。 図 46 に
示す よ う に、 理論的には、 ク ロ ッ ク 移行位置は理想的な ク ロ ッ ク 位置を中心 と す る 確率的な分散、 ま た
は ヒ ス ト グ ラ ムですが、実際の分散はガ ウ ス分布ではな く 、二峰性分布の場合があ り ます。 実際の ク ロ ッ
ク 移行のほ と ん どは理想的な ク ロ ッ ク 位置付近で起 こ り ますが、数百万 ク ロ ッ ク サ イ ク ルにおけ る 測定
の結果、 望ま し い位置か ら 離れた地点で起 こ る ク ロ ッ ク 移行 も あ り ます。
理想的な位置か ら の統計的な距離は、σ ( シ グマ ) と 呼ばれ る 標準偏差で測定 さ れます。 DCM はすべてデ
ジ タ ルで機能す る デザ イ ンであ る ため、 非常に安定 し てお り 、 ザ イ リ ン ク ス では、 ジ ッ タ の偏差を ±7σ
ま たはピー ク 間ジ ッ タ を 14σ と 定めてい ます。 判断基準 と し て、 偏差が ±7σ であ る と い う こ と は ジ ッ
タ の 99.99999999974% が指定 さ れた ワ ー ス ト ケー ス ジ ッ タ よ り 小 さ い値であ る こ と を保証 し てい ま
60
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク ジ ッ タ および位相 ノ イ ズ
す。 ま た、 14σ ピー ク 間ジ ッ タ 、 ±7σ ジ ッ タ 偏差は、 最大ビ ッ ト エ ラ ー レー ト (BER) が
1.28 x 10-12 と い う こ と を意味 し ます。
Number of samples
Desired clock period
-7σ
+7σ
Measured clock period
Peak-to-peak Period Jitter
(14σ)
x462_46_061903
図 46 : ピー ク間周期ジ ッ タ 例
ユニ ッ ト イ ン タ ーバル(UI)
ジ ッ タ の仕様を単位間隔 (UI) の割合 と し て指定す る 別の方法 も あ り ます。 1 UI は、 周波数に関わ ら ず、
1 ビ ッ ト 時間を表 し ます。 ク ロ ッ ク の立ち上が り エ ッ ジ、 ま たは立ち下が り エ ッ ジのいずれかでデー タ
が取 り 込まれ る シ ン グル デー タ レー ト (SDR) アプ リ ケーシ ョ ン では、1 UI は 1 ク ロ ッ ク 周期にな り ま
す。 一方、 2 倍の ク ロ ッ ク レー ト でデー タ が ク ロ ッ ク 入力 さ れ る デュ アル デー タ レー ト (DDR) アプ リ
ケーシ ョ ンでは、 1 UI が 1/2 ク ロ ッ ク 周期にな り ます。
UI で指定 さ れ る ピー ク 間ジ ッ タ 幅は、 総ビ ッ ト 周期時間に対す る ピー ク 間ジ ッ タ 値の比率です。
Bit Period
Unit Interval (UI)
x462_47_061903
図 47 : ユニ ッ ト イ ン タ ーバルの比率で示 さ れた周期ジ ッ タ
総ジ ッ タ の計算
『Spartan-3 デー タ シー ト 』 には、 CLKFX/CLKFX180 以外の DCM の ク ロ ッ ク 出力におけ る ジ ッ タ が
記載 さ れて ます。 デジ タ ル周波数合成 (DFS) ジ ッ タ は、 逓倍値お よ び分周値に基づいて算出 さ れます。
デー タ シー ト には、 DLL か ら の ク ロ ッ ク 出力 (CLKFX お よ び CLKFX180 を除 く すべての ク ロ ッ ク 出
力) に対す る ワ ー ス ト ケース ジ ッ タ が記載 さ れてい ま す。 DLL ではジ ッ タ が削減 さ れないため、 DLL
ク ロ ッ ク 出力の総ジ ッ タ には、 入力 ク ロ ッ ク であ る CLKIN のジ ッ タ お よ びデー タ シー ト に記載 さ れた
値が含まれます。
ま た、 DFS ク ロ ッ ク 出力であ る CLKFX お よ び CLKFX180 では、 入力 ク ロ ッ ク ジ ッ タ があ る 程度削
減 さ れ る ため、 算出 さ れた出力ジ ッ タ が総ジ ッ タ にな り ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
61
R
ク ロ ッ ク ジ ッ タ および位相 ノ イ ズ
DLL 出力ジ ッ タ への入力ジ ッ タ の加算
入力ジ ッ タ に DLL 出力ジ ッ タ を加え る 場合、 ノ イ ズ計算 と 同様に 2 乗平均平方根 (RMS) 計算を使用 し
ます。
ピー ク間
( JITTER
JITTER TOTAL =
2
INPUT ) + ( JITTER SPEC )
2
等式 10
ピー ク間偏差
JITTER TOTAL = ±
2
2
( JITTER INPUT ) + ( JITTER SPEC )
-------------------------------------------------------------------------------------------------------2
等式 11
定義
JITTERINPUT =
FPGA の ク ロ ッ ク 入力ピ ンで測定 さ れた入力周期ジ ッ タ
JITTERSPEC =
『Spartan-3 デー タ シー ト 』 に記載 さ れてい る 適切な出力ポー ト に対す る
DLL ク ロ ッ ク 出力周期ジ ッ タ
JITTERTOTAL =
予想 さ れ る 総出力周期ジ ッ タ
例
入力 ク ロ ッ ク の ピー ク 間周期ジ ッ タ が 150 ps (±75 ps) であ り 、 こ の ク ロ ッ ク のデ ュ ーテ ィ サ イ ク ルが
DCM の CLK0 出力 と 同一の周波数を使用 し て修正 さ れ る 場合について考え ます。
こ の場合、 JITTERINPUT = 150 ps であ り 、 JITTERSPEC の値は 『Spartan-3 デー タ シー ト 』 で指定 さ れ
てい る CLKOUT_JITT_PER_0 と 呼ばれ る 値です。 こ れは、 ピー ク 間で ±100 ps、 ま たは 200 ps であ
る と 概算 さ れます。
JITTER TOTAL =
2
2
( 150 ps ) + ( 200 ps ) = 250 ps
し たがっ て、 DCM 出力の総ジ ッ タ はピー ク 間で 250 ps、 ま たは ±125 ps です。
カ スケー ド 接続 さ れた DCM のジ ッ タ 計算
図 48 に、 複数の DCM を カ ス ケー ド 接続 し 、 さ ま ざ ま な出力周波数を生成 し てい る アプ リ ケーシ ョ ン
の例を示 し ます。 こ の場合のジ ッ タ は、 次に よ っ て決定 さ れます。
•
前の ソ ース か ら のジ ッ タ
•
使用 さ れてい る DCM 出力
デー タ シー ト に記載 さ れてい る よ う に、ジ ッ タ 特性は各 DCM 出力に よ っ てわずかに異な り ます。 ま た、
DFS か ら の CLKFX 出力お よ び CLKFX180 出力は、 入力ジ ッ タ を あ る 程度削減 し 、 ジ ッ タ 値は DCM
Wizard で算出 さ れます ( 「 ク ロ ッ ク 周波数合成」 参照 し て く だ さ い)。
62
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク ジ ッ タ および位相 ノ イ ズ
DCM
CLKIN
RST
CLKx
LOCKED
DCM
A
CLKIN
DCM
B
CLKx
CLKIN
RST LOCKED
RST
C
CLKx
LOCKED
x462_48_061903
図 48 : カ スケー ド 接続 さ れた DCM のジ ッ タ 計算
し たがっ て、 カ ス ケー ド 接続 さ れた DCM チ ェーンの任意の点におけ る ジ ッ タ は、 前述 し た 2 つの要因
に よ っ て決定 さ れます。 次の例では、 回路上のい く つかの点で総ジ ッ タ を計算す る 方法を示 し ます。
例 1 : すべての DCM が DLL 出力を使用する場合
こ の例では、 入力 ク ロ ッ ク の周期ジ ッ タ が 150 ps (±75 ps) です。
こ こ では DCM (A) が CLK2X 出力を使用す る 場合について考え ます。 ま た、 DCM 出力ジ ッ タ に対 し
て、 『Spartan-3 デー タ シー ト 』 に記載 さ れてい る CLKOUT_PER_JITT_2X 値を使用 し て く だ さ い。 こ
の値は 400 ps (±200 ps) と 概算 さ れてい ます。 等式 10 を使用 し 、ク ロ ッ ク (A) の総周期ジ ッ タ を計算 し
ます。
JITTER TOTAL ( A ) =
2
2
( 150ps ) + ( 400ps ) = 427ps = ± 214ps
次に、 DCM (B) で分周値が整数であ る CLKDV 出力を使用す る 場合について考え ます。 ま た、 DCM 出
力ジ ッ タ に対 し て、 『Spartan-3 デー タ シー ト 』 に記載 さ れてい る CLKOUT_PER_JITT_DV1 値を使用
し て く だ さ い。 こ の値は 300 ps (±150 ps) と 概算 さ れてい ます。 等式 10 を使用 し 、 ク ロ ッ ク (B) の総
周期ジ ッ タ を計算 し ます。 こ の場合、 入力ジ ッ タ 、 DCM (A) か ら のジ ッ タ 、 DCM (B) か ら のジ ッ タ を
考慮す る 必要があ る ため、 RMS 等式は次の よ う にな り ます。
JITTER TOTAL ( B ) =
2
2
2
( 150ps ) + ( 400ps ) + ( 300ps ) = 522ps = ± 261ps
最後に、 DCM (C) が DCM (B) か ら の出力を 90°位相シ フ ト する 場合について考え ます。 ま た、 DCM
出力ジ ッ タ に対 し て、『Spartan-3 デー タ シー ト 』 に記載 さ れてい る CLKOUT_PER_JITT_90 値を使用
し て く だ さ い。 こ の値は 300 ps (±150 ps) と 概算 さ れてい ます。 等式 10 を使用 し 、 ク ロ ッ ク (C) の総
周期ジ ッ タ を計算 し ま す。 こ の場合、 入力ジ ッ タ 、 DCM (A) か ら のジ ッ タ 、 DCM (B) か ら のジ ッ タ 、
DCM (C) か ら のジ ッ タ を考慮す る 必要があ る ため、 RMS 等式は次の よ う にな り ます。
JITTER TOTAL ( C ) =
2
2
2
2
( 150 ps ) + ( 400 ps ) + ( 300 ps ) + ( 300 ps ) = 602 ps = ± 301 ps
例 2 : CLKFX 出力または CLKFX180 出力を使用する DCM がある場合
こ の例は、 DFS か ら の CLKFX 出力ま たは CLKFX180 出力を使用す る DCM があ る 点以外は、 例 1 :
すべての DCM が DLL 出力を使用する 場合 と 同様です。
こ の例では、 75MHz 入力 ク ロ ッ ク の周期ジ ッ タ が 150 ps (±75 ps) です。
例 1 と 同様に、 まず DCM (A) が CLK2X 出力を使用す る 場合について考え ます。 出力ジ ッ タ は、 次に
示す等式にな り ます。
こ の例では、 DCM (A) で生成 さ れた 150MHz を使用 し て、 DCM (B) で 90MHz 合成 ク ロ ッ ク を生成 し
ま す。 DCM Wizard ( 「 ク ロ ッ ク 周波数合成」 を参照 し て く だ さ い) を使用 し 、 CLKFX_MULTIPLY=3
お よ び CLKFX_DIVIDE=5 と 設定 し ます。 ワ ース ト ケース の出力周期ジ ッ タ は 700 ps と な り ます。
JITTER TOTAL ( B ) = 700ps = ± 350ps
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
63
R
ク ロ ッ ク ジ ッ タ および位相 ノ イ ズ
最後に、 DCM (C) が DCM (B) か ら の出力を 90°位相シ フ ト さ せ る 場合について考え ます。 DCM 出力
ジ ッ タ に対 し て、『Spartan-3 デー タ シー ト 』 に記載 さ れてい る CLKOUT_PER_JITT_90 値を使用 し て
く だ さ い。 こ の値は 300 ps (±150 ps) と 概算 さ れてい ます。 次の等式を使用 し 、 ク ロ ッ ク (C) の総周期
ジ ッ タ を計算 し ま す。 次の DCM では CLKFX を使用す る ため、 総入力ジ ッ タ は、 ワ ー ス ト ケー ス で
700 ps と な り ます。 次の RMS 等式を使用 し 、 出力ジ ッ タ を計算 し ます。
JITTER TOTAL ( C ) =
2
2
( 700ps ) + ( 300ps ) = 762ps = ± 381ps
カ スケー ド 接続 し た DCM を使用する場合の推奨デザイ ン
DCM を カ ス ケー ド 接続 し て使用す る 場合、 図 48 に示す よ う に、 DCM か ら の LOCKED 出力が次の
DCM の RST 入力を制御 し てい る こ と を確認 し て く だ さ い。 カ ス ケー ド 接続 し た DCM では、 1 つ前の
DCM で LOCKED 出力がアサー ト さ れ、 ク ロ ッ ク が安定 し てい る こ と が示 さ れて た後に、 入力 ク ロ ッ
ク に ロ ッ ク す る 必要があ り ます。
ま た、 DCM を カ ス ケー ド 接続す る 場合には、 最 も ジ ッ タ の影響を回避す る 必要のあ る ク ロ ッ ク 出力が
最初の DCM に接続 さ れ る よ う に DCM チ ェ ーン を構成 し て く だ さ い。
シ ス テム パ フ ォ ーマ ン スにおける ジ ッ タ の影響
ク ロ ッ ク ジ ッ タ に よ っ て も 、 有効な ビ ッ ト 周期が狭 く な り 、 シ ス テ ム パフ ォーマ ン ス が低下 し ます。 次
の等式に示す よ う に、 FPGA アプ リ ケーシ ョ ン で使用可能な ビ ッ ト 周期は、 総ビ ッ ト 周期 TBIT か ら い
く つかの影響を差 し 引いた も のです。 シ ン グル デー タ レー ト (SDR) アプ リ ケーシ ョ ン では、 ク ロ ッ ク
周期 と ビ ッ ト 周期は一致 し ますが、 デュ アル デー タ レー ト (DDR) アプ リ ケーシ ョ ンのビ ッ ト 周期は ク
ロ ッ ク 周期の 1/2 にな り ます。
T AVAILABLE = T BIT – t TOTAL _ JITTER – t DUTY _ CYCLE _ DISTORTION
定義
TBIT =
ビ ッ ト 周期時間
tTOTAL_JITTER =
総 ク ロ ッ ク ジ ッ タ 。 ク ロ ッ ク 入力ジ ッ タ に DCM 出力ジ ッ タ 、 ま た
はカ ス ケー ド 接続 さ れた DCM のジ ッ タ を加算 し た も のです。
tDUTY_CYCLE_DISTORTION =
デ ュ ーテ ィ サ イ ク ルのずれ。 デュ アル デー タ レー ト (DDR) アプ リ
ケーシ ョ ンのみで必要であ り 、 それ以外の場合はゼ ロ です。 使用す
る DCM ク ロ ッ ク 出力に よ っ て、 デー タ シー ト に記載 さ れてい る
CLKOUT_DUTY_CYCLE_DLL ま たは
CLKOUT_DUTY_CYCLE_FX を使用 し ます。
総ジ ッ タ が ク ロ ッ ク 周期か ら の偏差ではな く 正の値に指定 さ れてい る 場合 ( た と えば ±100 ps ではな く
200 ps の場合)、 正の値を 2 で割 り ます (100 ps)。 ビ ッ ト 周期は負の偏差に よ っ てのみ短 く な り 、 正の
偏差に よ っ てはビ ッ ト 周期が長 く な り 、 さ ら に タ イ ミ ン グ ス ラ ッ ク が追加 さ れます。
例
入力 ク ロ ッ ク 信号の周波数は 75 MHz であ り 、 ク ロ ッ ク ソ ース のジ ッ タ は ±100 ps です。 アプ リ ケー
シ ョ ンは内部で生成 さ れた 150 MHz の ク ロ ッ ク の立ち上が り エ ッ ジでデー タ を入力 し ます。 ま た、 総
ビ ッ ト 周期、 TBIT、 は 6.67 ns です。 ジ ッ タ の影響を考慮す る と 、 有効な ビ ッ ト 周期、 TAVAILABLE、 は
ど の よ う にな る で し ょ う か。
2 逓倍 ク ロ ッ ク 回路か ら の CLK2X 出力に よ っ て、 75MHz ク ロ ッ ク 入力か ら 150MHz ク ロ ッ ク が生成
さ れ ます。 『Spartan-3 デー タ シー ト 』 の CLKOUT_PER_JITT_2X 仕様に よ る と 、 2 逓倍 ク ロ ッ ク 出
力であ る CLK2X には ±~200 ps (概算) の ワース ト ケース ジ ッ タ があ り ます。 2 乗平均平方根を使用 し 、
64
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
ク ロ ッ ク ジ ッ タ および位相 ノ イ ズ
DCM の ジ ッ タ ±200 ps に ク ロ ッ ク ソ ー ス の ジ ッ タ ±100 ps を 加算す る こ と に よ っ て、 総 ジ ッ タ 、
tTOTAL_JITTER が ±0.223 ns であ る こ と がわか り ます。
2
2
( ± 100ps ) + ( ± 200ps ) = ± 223.60ps = ± 0.223ns
t TOTAL _JITTER =
デー タ は ク ロ ッ ク の立ち上が り エ ッ ジでのみ入力 さ れ る ため、デュ ーテ ィ サ イ ク ルのずれが影響を与え
る こ と はな く 、 tDUTY_CYCLE_DISTORTION = 0 です。
結果 と し て、 有効な総 ク ロ ッ ク 周期、 TAVAILABLE、 は総ビ ッ ト 周期であ る 6.667 ns か ら 6.444 ns に減
少 し ます。 結果 と し て、 ロ ジ ッ ク は 150 MHz ではな く 155.1831 MHz で動作 し ます。
T AVAILABLE = 6.667ns – 0.223ns = 6.444ns
ク ロ ッ ク ジ ッ タ を最小限にする ための推奨デザイ ン
高性能アプ リ ケーシ ョ ンでは、 ク ロ ッ ク ジ ッ タ に よ っ て有効な ビ ッ ト 周期が短 く な り ます。 シ ス テ ム全
体の ク ロ ッ ク ジ ッ タ を最小限にす る ためには次の推奨デザ イ ン を参考に し て く だ さ い。
適切な電力分散シス テム設計
電力プ レーン デカ ッ プ リ ン グ を含む、 電力分散シ ス テ ム (PDS) を適切に設計す る こ と に よ っ て、 安定
し た電力環境を 作成 し 、 シ ス テ ム ジ ッ タ を 削減で き ま す。 ア プ リ ケーシ ョ ン ノ ー ト XAPP623 では、
PDS の適切な設計にについて説明 し てい ます。
•
XAPP623: 電力分散シ ス テ ム (PDS) デザ イ ン : バ イ パ ス /デカ ッ プ リ ン グ キ ャ パシ タ
http://www.xilinx.com/xapp/xapp623.pdf
適切な プ リ ン ト サーキ ッ ト ボー ド の設計
予想 さ れ る 動作周波数範囲お よ びア プ リ ケーシ ョ ン 環境に適 し た プ リ ン ト サーキ ッ ト ボー ド 設計 を
行っ て く だ さ い。
•
WP174: PCB への効果的な FPGA 統合
http://www.xilinx.co.jp/publications/whitepapers/wp_pdf/wp174.pdf
•
PCB チ ェ ッ ク リ ス ト
http://support.xilinx.com/xlnx/xil_prodcat_product.jsp?title=si_pcbcheck
同時ス イ ッ チ出力 (SSO) の推奨デザイ ン
DCM への ク ロ ッ ク 入力、 ま たは DCM か ら の ク ロ ッ ク 出力の信号に関連 し た問題を回避す る ために、
『Spartan-3 デー タ シー ト 』 に記載 さ れてい る 同時ス イ ッ チ出力 (SSO) 仕様に沿っ てい る こ と を確認 し
て く だ さ い。
ま た、 可能な限 り 、 DCM の入力ま たは出力を ス イ ッ チン グ回数の多い I/O の近 く に配置す る こ と を避
けて く だ さ い。 特に、 出力電圧幅が大 き い I/O、 ま たは駆動電流が高い I/O の場合には こ の こ と が重要
です。
仮想グ ラ ン ド ピ ン を DCM 入力および出力接続の近 く に配置
さ ま ざ ま な影響を受けやす く 、 高周波数であ る DCM の入力ま たは出力では、 仮想グ ラ ン ド ピ ンの よ う
なユーザー I/O ピ ン を追加 し て PCB へ別の接続を作成 し ます。 こ の よ う な仮想グ ラ ン ド ピ ンは、 ジ ッ
タ の影響を受けやすい DCM 信号に近接す る I/O パ ッ ド に配置 し て く だ さ い。 I/O パ ッ ド は、 パ ッ ケー
ジの ピ ン ま たはボール上だけでな く 、 FPGA のダ イ レベルで も 近接 し てい る こ と を確認 し て く だ さ い。
BGA パ ッ ケージ上で隣接 し てい る ボールは、 必ず し も FPGA 上にあ る 隣接 し たパ ッ ド に接続す る 必要
はあ り ません。 こ の よ う に設計す る こ と に よ っ て、 内部電圧降下が軽減 さ れ、 ジ ッ タ が削減 さ れます。
仮想グ ラ ン ド を作成す る 場合は、 図 49 に示す よ う に、 IOB を GND (Low ロ ジ ッ ク レベル) を駆動す る
出力 と し て設定 し 、 その IOB を外部で直接グ ラ ン ド プ レーンに接続 し ます。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
65
R
ク ロ ッ ク ジ ッ タ および位相 ノ イ ズ
“Virtual”
ground pin
Direct connection
to PCB ground
plane
Sensitive DCM
Clock Input
FPGA
OBUF
GND
IBUFG
To DCM
CLKIN Input
OBUF
GND
x462_49_061903
図 49 : DCM 入力または出力ク ロ ッ ク 信号への仮想グ ラ ン ド ピ ンの使用
VCCAUX 考察
デジ タ ル ク ロ ッ ク マネージ ャ は VCCAUX 入力に よ っ て電源が供給 さ れます。 FPGA への電源供給入力
であ る VCCAUX の過剰 ノ イ ズは DCM の特性、 特にジ ッ タ 特性を低下 さ せます。 DCM のパフ ォーマ ン
ス を最適にす る ために、 次に従っ て く だ さ い。
1. 図 50 に示す よ う に、 VCCAUX 電源供給、 ま たはグ ラ ン ド 上の変動を 1 ms 間で 10 mV よ り 小 さ く
し て く だ さ い。 こ の制限に よ っ て、 DCM は変動に適切に対応 し て動作 し ます。
2. 図 50 に示す よ う に、 電源供給の ノ イ ズ を ピー ク 間で 200 mV 以内に し て く だ さ い。
VCCAUX
Supply
Keep VCCAUX noise
envelope to < 200 mV,
peak-to-peak
(at FPGA)
dV < 10 mV
Avoid sudden changes from
one DC level to another.
Keep dV/dt < 10mV/mS.
dt < 1 mS
x462_50_061903
図 50 : 電圧降下を回避する ための VCCAUX 考察
3. VCCAUX お よ び VCCO が同一の電源プ レーンにあ る 場合、 すべての VCCAUX/VCCO ピ ン を適切に
デカ ッ プ リ ン グ、 ま たはバ イ パスする 必要があ り ます ( 「適切な電力分散シ ス テ ム設計」 を参照 し て
く だ さ い)。 ま た、 上記の 1 お よ び 2 を維持で き ない場合、 VCCAUX と VCCO を分離 し て使用 し て
く だ さ い。
4. 特に、 CLK2X 出力は電源シ フ ト ま たはグ ラ ン ド シ フ ト の影響を受け ます。 し たがっ て、 すべての
IOB お よ び CLB で ス イ ッ チン グがあ る 場合には、 CLKFX_MULTIPLY =2 お よ び
CLKFX_DIVIDE=1 と 設定 さ れてい る CLKFX 出力は よ り よ い特性を持つ出力を供給 し ます。
DFS モー ド の場合、 CLK2X 出力の更新が遅いのに対 し て、 CLKFB 迂回回路では 3 入力 ク ロ ッ ク
ご と に タ ッ プが更新 さ れます。
FACTORY_JF 設定の修正
適切に設計 さ れ、 安定 し 、 適切にデカ ッ プ リ ン グ さ れた電源供給が、 FPGA 内の ク ロ ッ ク ス キ ュ ーお
よ びジ ッ タ を低減す る ために も っ と も 有効な方法ですが、 FACTORY_JF 属性を 0xFFFF に設定す る こ
と に よ っ て、 問題の発生 し てい る ボー ド 上のジ ッ タ を低減で き る 場合があ り ます。
FACTORY_JF=FFFF の場合、 DCM はお よ そ 20 入力 ク ロ ッ ク ご と に タ ッ プ設定を更新 し 、 周波数を
基に し たデフ ォ ル ト 設定 よ り も タ ッ プ更新の間隔は短 く な り ます。
66
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
その他
ただ し 、 FACTORY_JF の設定値を大 き く す る こ と に よ っ て、 DCM では遅延 ラ イ ンが頻繁に更新 さ れ、
ジ ッ タ がわずかに増加す る (~30 ps) 可能性 も あ る ため、 FACTORY_JF のデフ ォ ル ト 設定は最大値では
あ り ません。 電源供給が不安定の場合には、 発生 し た位相エ ラ ーが増加 し た ジ ッ タ よ り 大 き い場合があ
り 、 こ の場合には FACTORY_JF の設定値を大き く する こ と に よ っ て、 デザ イ ンのパフ ォーマ ン ス を向
上で き ます。
その他
ビ ッ ト ス ト リ ーム生成の設定
DCM では、 次の 2 つの ビ ッ ト ス ト リ ーム生成 (BitGen) オプシ ョ ンがあ り ます。
•
-g lck_cycle : こ のオプシ ョ ン を使用す る 場合、イ ン ス タ ン シエー ト さ れた DCM で LOCKED 出力
がアサー ト さ れ る ま で、 FPGA の コ ン フ ィ ギ ュ レーシ ョ ン ス タ ー ト ア ッ プ シーケ ン ス を遅 ら せ る
こ と がで き ます。
•
-g DCMShutdown : こ のオプシ ョ ン を使用する 場合、 JTAG ポー ト を使用 し た部分再 コ ン フ ィ ギ ュ
レーシ ョ ン、 ま たは全体の再 コ ン フ ィ ギ ュ レーシ ョ ン を実行中に、 コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ
ク に SHUTDOWN コ マ ン ド が ロ ー ド さ れ る と 、 DCM ロ ジ ッ ク が リ セ ッ ト さ れます。
Project Navigator でのビ ッ ト ス ト リ ーム生成オプ シ ョ ン
ISE 5.2i Project Navigator を使用す る 場合は、 図 51 に示す よ う に、 [Processes for Source] ウ ィ ン ド ウ
で [Generate Programming File] を右 ク リ ッ ク し 、 [Properties] を選択する こ と に よ っ て、 ビ ッ ト ス ト
リ ーム生成オプシ ョ ン を設定 し ます。
Processes for Current Source:
Run
Rerun
Rerun All
Programming File Generation
Stop
Report
Open without Updating
Generate Programming File
Properties ...
x462_51_061903
図 51 : Project Navigator でのビ ッ ト ス ト リ ーム生成 (BitGen) オプ シ ョ ン
詳細は、 「BitGen ス イ ッ チお よ びオプシ ョ ン」 を参照 し て く だ さ い。
コ マ ン ド ラ イ ン、 またはス ク リ プ ト を使用 し た ビ ッ ト ス ト リ ーム生成オプ シ ョ ン
設定可能なオプシ ョ ン を表示す る ためには、 次の コ マ ン ド を入力 し ます。
bitgen -help spartan3
DCM LOCKED 出力 と コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ クの設定
DCM の STARTUP_WAIT 属性を使用する こ と に よ っ て、 DCM で LOCKED 出力がアサー ト さ れ る ま
で FPGA で DONE 信号がアサー ト さ れ る を遅 ら せ、FPGA の コ ン フ ィ ギ ュ レーシ ョ ン ス タ ー ト ア ッ プ
ロ ジ ッ ク を待たせ る こ と がで き ます。 ただ し 、 こ のためには設計段階で次の二つの設定を行 う 必要があ
り ます。 まず、 ロ ッ ク 状態にな っ てか ら コ ン フ ィ ギ ュ レーシ ョ ン を完了す る 必要があ る 各 DCM に対す
る STARTUP_WAIT 属性を TRUE に設定 し ます。 次に、 各信号が ス タ ー ト ア ッ プの 6 ク ロ ッ ク サ イ ク
ルで 図 52 に示す よ う に動作す る よ う に ビ ッ ト ス ト リ ーム生成オプシ ョ ン を変更 し ます。 デバ イ ス が コ
ン フ ィ ギ ュ レーシ ョ ン ス タ ー ト ア ッ プ シーケ ン ス を完了す る ためには、DCM が LOCKED を アサー ト
後に十分な コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク サ イ ク ルが必要です。
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
67
R
その他
Start-up Cycles
0
1
2
3
4
5
6
Start-up CLK
A
GTS_cycle
LCK_cycle
B
GWE_cycle
C
DONE_cycle
D
x462_52_062403
図 52 : DCM LOCKED 出力 と ス タ ー ト ア ッ プ ロ ジ ッ クの相互関係
A. FPGA 内部のグ ロ ーバル ト ラ イ ス テー ト 信号 (GTS_cycle) を開放 し 、 すべての I/O 信号を イ ネー
ブルに し ます。
B. GTS_cycle 後に DCM で LOCKED がアサー ト さ れ る ま で ス タ ー ト ア ッ プ ロ ジ ッ ク が待機す る よ
にサ イ ク ルを設定 し ます。 DCM では、 ク ロ ッ ク 信号で ロ ッ ク 状態にな る 前に、 ク ロ ッ ク お よ び可
能な ら ばフ ィ ー ド バ ッ ク 信号の よ う な外部入力が必要です。
C. DCM が ロ ッ ク 状態にな っ た後、 FPGA の内部グ ロ ーバル書 き 込み イ ネーブル (GWE_cycle) 信号
を アサー ト し ます。
D. 最後に、 内部の DONE 信号を アサー ト し ます。
図 53 に Project Navigator を使用 し たオプシ ョ ン設定を示 し ます。
[Startup options]
Process Properties
Startup options
General Options
Property Name
FPGA Startup Clock
Configuration Options
Done_cycle
after LCK_cycle.
Readback Options
Value
GTS_cycle must occur
before LCK_cycle to enable
I/O pins.
CCLK
Enable Internal Done Pipe
Done (Output Events)
6
Enable Outputs (Output Events)
Release Write Enable (Output Events)
Release DLL (Output Events)
3
5
4
Match Cycle (Output Events)
Default (NoWait)
Optionally, set GWE_cycle
to follow GTS_cycle
ensuring DCM(s) reset after
I/Os activate.
Drive Done Pin High
OK
Cancel
Default
Help
LCK_cycle indicates cycle
where start-up logic waits
for DCM(s) to assert
LOCKED.
[OK]
x462_53_061903
図 53 : BitGen オプ シ ョ ン
ス タ ー ト ア ッ プ位相 タ イ ミ ン グお よ び GWE_cycle と DONE_cycle の タ イ ミ ン グには柔軟性があ り ま
すが、 DCM で STARTUP_WAIT 属性を使用す る 場合は、 必ず LCK_cycle の前に GTS_cycle がなけれ
ばな り ません。 シーケ ン ス が こ の よ う にな っ ていない場合には、 DCM が ロ ッ ク せず、 コ ン フ ィ ギ ュ レー
シ ョ ンが完了 し ません。
68
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
その他
JTAG を使用 し た部分再コ ン フ ィ ギ ュ レーシ ョ ン、 または全体の再コ ン フ ィ ギ ュ レーシ ョ ン中の DCM
リセッ ト
も う 1 つの ビ ッ ト ス ト リ ーム オプシ ョ ン と し て、 SelectMAP を使用 し た部分再 コ ン フ ィ ギ ュ レーシ ョ
ン中、 ま たは JTAG ポー ト を使用 し た全体お よ び部分再コ ン フ ィ ギ ュ レーシ ョ ン中に、 FPGA にあ る す
べての DCM を リ セ ッ ト で き ます。 こ のオプシ ョ ン を使用す る 場合、 SHUTDOWN コ マ ン ド シーケ ン
ス中に AGHIGH コ ン フ ィ ギ ュ レーシ ョ ン コ マ ン ド が発行 さ れ る と 、DCM が リ セ ッ ト さ れます。 JTAG
を 使用 し て再 コ ン フ ィ ギ ュ レ ーシ ョ ン を 行 う 場合には、 必ず DCM を リ セ ッ ト す る 必要が あ り ま す。
Project Navigator でビ ッ ト ス ト リ ーム生成オプシ ョ ン を変更す る ためには (「Project Navigator でのビ ッ
ト ス ト リ ーム生成オプシ ョ ン」 を参照)、 図 54 に示す よ う に、 Configuration options タ ブ を ク リ ッ ク
し 、 [Reset DCM if SHUTDOWN & AGHIGH performed] オプシ ョ ンのチ ェ ッ ク ボ ッ ク ス を オンに
し て く だ さ い。
Process Properties
Click Configuration
options tab.
Configuration options General Options Startup options
Readback Options
Property Name
Value
Configuration Pin Done
JTAG Pin TCK
JTAG Pin TDI
JTAG Pin TDO
JTAG Pin TMS
Unused IOBs
UserID Code (8 Digit Hexadecimal)
Reset DCM if SHUTDOWN & AGHIGH performed
OK
Cancel
Pull Up
Pull Up
Pull Up
Float
Pull Up
Pull Down
0xFFFFFFFF
Default
Click OK when
finished.
Check to reset all the DCMs
in the FPGA if the AGHIGH
command issued during
SHUTDOWN sequence.
Help
x462_54_062103
図 54 : 再 コ ン フ ィ ギ ュ レーシ ョ ン中に DCM を リ セ ッ ト する ためのコ ン フ ィ ギ ュ レーシ ョ ン オプ シ ョ ン
一時的な CLKIN の停止
厳密な アナ ロ グ測定を行っ てい る 間のシ ス テ ム全体の ノ イ ズ を削減す る ため、 FPGA アプ リ ケーシ ョ ン
のその他の部分に影響を与え る こ と な く 、 一時的に DCM への ク ロ ッ ク 入力を停止で き ます。 こ れが可
能であ る 理由の一部は、DCM がすべてデジ タ ルで安定 し て機能す る シ ス テ ムであ る ためです。 DCM で
は最初に入力 ク ロ ッ ク に対 し て ロ ッ ク し 、次に LOCKED 出力を アサー ト す る 必要があ り ます。 DCM が
リ セ ッ ト し ない場合には、 デス キ ュ ー回路にほ と ん ど影響を与えずに CLKIN 入力 ク ロ ッ ク を一時的に
停止で き ますが、 次の条件を満たす必要があ り ます。
•
デバ イ ス が冷却す る こ と に よ る タ ッ プ遅延の変化の影響を最小限にす る ために、 ク ロ ッ ク の停止時
間は 100 ms 未満であ る 必要があ り ます。
•
ク ロ ッ ク が Low であ る 間に停止す る 必要があ り 、1/2 周期分の High か ら 再開す る 必要があ り ます。
上述の条件は、 理論的には ク ロ ッ ク 入力ジ ッ タ の仕様に違反 し ますが、 DCM の LOCKED 出力は High
を維持 し 、 ク ロ ッ ク が再び動作す る 際に も High を維持 し てい ます。 し たがっ て、 LOCKED が High で
あ る こ と は、必ず し も 有効な ク ロ ッ ク が使用可能であ る こ と にはな り ません。 こ のため、実際には ク ロ ッ
ク 入力ジ ッ タ の仕様に違反 し てい ますが、 こ れ ら の条件を満たす限 り 問題はあ り ません。
CLKIN を停止す る 際には、 DCM のデジ タ ル遅延 ラ イ ンにあ る ク ロ ッ ク が出力 さ れ る ため、 1 か ら 8 出
力 ク ロ ッ ク サ イ ク ルが生成 さ れます。 同様に、 CLKIN が再開する 場合には、 遅延 ラ イ ンが満た さ れ る
XAPP462 (v1.0) 2003 年 7 月 11 日
www.xilinx.co.jp
69
R
参考資料
ま での 1 か ら 4 ク ロ ッ ク サ イ ク ル間は出力 ク ロ ッ ク が生成 さ れません。 通常、 遅延 ラ イ ンが満た さ れ る
ためは、 2 ま たは 3 ク ロ ッ ク サ イ ク ルが必要です。
ま た、 入力 ク ロ ッ ク を停止す る こ と に よ っ て、 位相シ フ ト を行 う こ と がで き ます。 こ の位相シ フ ト は、
DCM に よ る 制御を中断 さ せ る こ と な く 、 1 か ら 4 ク ロ ッ ク サ イ ク ル後の ク ロ ッ ク 出力か ら 影響を与え
ます。
図 55 に、 CLKIN 入力 ク ロ ッ ク を一時的に停止す る 例を示 し ます。 ま た、 こ の図には CLK2X ク ロ ッ ク
出力への影響 も 示 し てい ます。
Clock input must be
stopped in Low phase and
for no more than 100 ms.
When restarted, the clock
input must generate a full
High half-period.
CLKIN
CLK2X
x462_55_062403
図 55 : CLKIN の一時的な停止
参考資料
•
『Spartan-3 デー タ シー ト 』 ( モジ ュ ール 2)
デジ タ ル ク ロ ッ ク マネージ ャ の特長お よ び機能
http://www.xilinx.co.jp/bvdocs/publications/ds099-2.pdf
•
『Spartan-3 デー タ シー ト 』 ( モジ ュ ール 3)
タ イ ミ ン グお よ びジ ッ タ 特性
http://www.xilinx.co.jp/bvdocs/publications/ds099-3.pdf
•
ザ イ リ ン ク ス ISE 5.2i ラ イ ブ ラ リ ガ イ ド
DCM プ リ ミ テ ィ ブ
http://toolbox.xilinx.com/docsan/xilinx5/pdf/docs/lib/lib.pdf
•
Architecture Wizard
録音版 Web セ ミ ナー
http://support.xilinx.co.jp/support/training/japan-home-page.htm
•
XAPP259: シ ス テ ム イ ン タ ーフ ェ イ ス タ イ ミ ン グ パ ラ メ ー タ
http://www.xilinx.co.jp/xapp/xapp259.pdf
•
XAPP268: 動的位相調整
http://www.xilinx.com/xapp/xapp268.pdf
•
XAPP622: SDR LVDS 送信機/受信機
http://www.xilinx.co.jp/xapp/xapp622.pdf
•
『開発シ ス テ ム リ フ ァ レ ン ス ガ イ ド 』 15 章 「BitGen」
ビ ッ ト ス ト リ ーム生成プ ロ グ ラ ムお よ びオプシ ョ ン 335-367 ページ
http://toolbox.xilinx.com/docsan/xilinx5/pdf/docs/dev/dev.pdf
70
www.xilinx.co.jp
XAPP462 (v1.0) 2003 年 7 月 11 日
R
改訂履歴
改訂履歴
次の表に、 こ のアプ リ ケーシ ョ ン ノ ー ト の改訂履歴を示 し ます。
日付
バージ ョ ン
2003/07/09
1.0
XAPP462 (v1.0) 2003 年 7 月 11 日
履歴
初版 リ リ ース
www.xilinx.co.jp
71
Fly UP