JP2004511933A - デジタル移相器 - Google Patents
デジタル移相器 Download PDFInfo
- Publication number
- JP2004511933A JP2004511933A JP2002533474A JP2002533474A JP2004511933A JP 2004511933 A JP2004511933 A JP 2004511933A JP 2002533474 A JP2002533474 A JP 2002533474A JP 2002533474 A JP2002533474 A JP 2002533474A JP 2004511933 A JP2004511933 A JP 2004511933A
- Authority
- JP
- Japan
- Prior art keywords
- clock signal
- delay
- signal
- clk
- delay line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000004044 response Effects 0.000 claims abstract description 13
- 230000010363 phase shift Effects 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 15
- 230000001360 synchronised effect Effects 0.000 claims description 15
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 230000003111 delayed effect Effects 0.000 description 45
- 238000010586 diagram Methods 0.000 description 37
- 239000000047 product Substances 0.000 description 24
- 230000001934 delay Effects 0.000 description 17
- 230000000630 rising effect Effects 0.000 description 16
- 238000001228 spectrum Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 12
- 230000007704 transition Effects 0.000 description 11
- 230000007423 decrease Effects 0.000 description 9
- 238000009792 diffusion process Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 241001323319 Psen Species 0.000 description 4
- 230000007480 spreading Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- TVZRAEYQIKYCPH-UHFFFAOYSA-N 3-(trimethylsilyl)propane-1-sulfonic acid Chemical group C[Si](C)(C)CCCS(O)(=O)=O TVZRAEYQIKYCPH-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/081—Details of the phase-locked loop provided with an additional controlled phase shifter
- H03L7/0812—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
- H03L7/0814—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the phase shifting device being digitally controlled
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/081—Details of the phase-locked loop provided with an additional controlled phase shifter
- H03L7/0812—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
- H03L7/0816—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the controlled phase shifter and the frequency- or phase-detection arrangement being connected to a common input
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
- Pulse Circuits (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
遅延ロックループが基準クロック信号をスキュークロック信号に同期した後、デジタル移相器を用いて、スキュークロック信号を基準クロック信号に対して少量だけシフトすることができる。遅延ロックループの主経路中の遅延線のタップ/トリム設定をデジタル移相器に伝送し、それにより、デジタル移相器に基準クロック信号の周期を知らせることができる。応答して、デジタル移相器は、基準クロック信号またはスキュークロック信号のいずれかに遅延を導入する位相制御信号を与える。位相制御信号は、あらかじめ定められた、基準クロック信号の周期の分数に比例する。
Description
【0001】
【発明の分野】
この発明はデジタルエレクトロニクスのための遅延ロックループ(DLL)に関する。より特定的には、この発明は、広い周波数範囲にわたってクロック信号をロックすることができるDLLに関する。
【0002】
【発明の背景】
ボードレベルシステムおよびチップレベルシステムを含む同期デジタルシステムは、1つ以上のクロック信号により、システムにわたって素子を同期させる。典型的に、1つ以上のクロック信号は、システムにわたり1つ以上のクロック線上に分散される。しかしながら、クロックバッファ遅延、重い負荷のクロック線の高容量および伝播遅延などのさまざまな問題のために、システムの異なる部分のクロック信号の立上がりエッジが同期しないことがある。システムのある部分の立上がり(または立下がり)エッジとシステムの別の部分の対応の立上がり(または立下がり)エッジとの間の時間差を「クロックスキュー」と称する。
【0003】
クロックスキューはデジタルシステムを誤動作させる可能性がある。たとえば、デジタルシステム中の回路は、第2のフリップフロップ入力を駆動する第1のフリップフロップ出力を有するのが一般的である。両フリップフロップのクロック入力上に同期したクロックがある場合、第1のフリップフロップ中のデータは連続して第2のフリップフロップにクロッキングされる。しかしながら、第2のフリップフロップ上のアクティブエッジがクロックスキュー分だけ遅延されると、第2のフリップフロップは、第1のフリップフロップが状態を変更する前に第1のフリップフロップからのデータを取込まないことがある。
【0004】
クロックスキューを最小化するため、デジタルシステムでは遅延ロックループを用いる。遅延ロックループは典型的に遅延素子を用い、システムの1つの部分での基準クロック信号のアクティブエッジをシステムの第2の部分からのフィードバッククロック信号と同期させる。図1は、論理回路190に結合された従来の遅延ロックループ100のブロック図である。遅延線110および位相検出器120を含む遅延ロックループ100は、基準クロック信号REF_CLKを受け、かつ、出力クロック信号O_CLKを駆動する。
【0005】
遅延線110は、出力クロック信号O_CLKを与える前に、可変伝播遅延Dだけ基準クロック信号REF_CLKを遅延する。したがって、出力クロック信号O_CLKの各クロックエッジは、基準クロック信号REF_CLKの対応のクロックエッジよりも伝播遅延Dだけ遅れている(図2A参照)。位相検出器120は後述のように遅延線110を制御する。遅延線110は、最小伝播遅延D_MINおよび最大伝播遅延D_MAXを発生することができる。
【0006】
出力クロック信号O_CLKが論理回路190に達する前に、出力クロック信号O_CLKはクロックスキュー180だけスキューする。クロックスキュー180は、さまざまなクロックバッファ(図示せず)における遅延または(たとえばクロック信号線に対する重い負荷による)出力クロック信号O_CLKを搬送するクロック信号線上の伝播遅延によって引起こされ得る。出力クロック信号O_CLKとスキューされた出力クロック信号O_CLKとを区別するため、スキューされた方の信号をスキュークロック信号S_CLKと称する。スキュークロック信号S_CLKは、論理回路190内のクロックされた回路のクロック入力端子(図示せず)を駆動する。また、スキュークロック信号S_CLKはフィードバック経路170上を介して伝搬され、遅延ロックループ100に戻される。典型的に、フィードバック経路170は、特に、スキュークロック信号S_CLKの遅延ロックループ110への伝送専用である。したがって、フィードバック経路170上のいかなる伝播遅延も最小限のものであり、無視できるほどのスキューしか生じない。
【0007】
図2Aは、基準クロック信号REF_CLK、出力クロック信号O_CLKおよびスキュークロック信号S_CLKのタイミング図を示す。すべての3つのクロック信号は同じ周波数F(図示せず)および周期Pを有し、すべてアクティブハイである(すなわち、立上がりエッジがアクティブエッジである)。出力クロック信号O_CLKは伝播遅延Dだけ遅延されるので、出力クロック信号O_CLKのクロックエッジ220は、基準クロック信号REF_CLKの対応のクロックエッジ210に対して伝播遅延Dだけ遅れている。同様に、スキュークロック信号S_CLKのクロックエッジ230は、出力クロック信号O_CLKの対応のクロックエッジ220に対して伝播遅延SKEWだけ遅れている。なお、伝播遅延SKEWはクロックスキュー180(図1)によって生じる伝播遅延である。したがって、スキュークロック信号S_CLKのクロックエッジ230は、基準クロック信号REF_CLKのクロックエッジ210に対して、伝播遅延D+伝播遅延SKEWに等しい伝播遅延DSKEWだけ遅れている。
【0008】
遅延ロックループ100は、遅延線110を制御することによって伝播遅延Dを制御する。しかしながら、遅延線110は負の遅延を発生することはできない。したがって、クロックエッジ230をクロックエッジ210に同期することはできない。幸いに、クロック信号は周期的な信号である。したがって、遅延ロックループ100は、スキュークロック信号S_CLKのクロックエッジ240が基準クロック信号REF_CLKのクロックエッジ210と同期するように、出力クロック信号O_CLKをさらに遅延させることにより、基準クロック信号REF_CLKとスキュークロック信号S_CLKとを同期させることができる。図2Bに示されるように、伝播遅延Dは、伝播遅延DSKEWが周期Pに等しくなるように調節される。具体的には、伝播遅延Dが周期P−伝播遅延SKEWと等しくなるまで伝播遅延Dを増大させるように遅延線110を調整する。伝播遅延DSKEWを周期Pの任意の倍数に増大して同期を達成することができるが、大部分の遅延ロックループは、そのような大きな伝播遅延を発生可能な遅延線を含まない。
【0009】
位相検出器120(図1)は遅延線110を制御して伝播遅延Dを調整する。遅延ロックループ100の実際の制御メカニズムは異なり得る。たとえば、1つのタイプの遅延ロックループ100では、遅延線110は、電源投入またはリセットの後、最小伝播遅延D_MINと等しい伝播遅延Dで始動する。位相検出器110は次に、基準クロック信号REF_CLKがスキュークロック信号S_CLKと同期するまで伝播遅延Dを増大させる。別のシステムでは、遅延ロックループ100は、電源投入またはリセットの後、最小伝播遅延D_MINと最大伝播遅延D_MAXとの平均と等しい伝播遅延Dで始動する。次に位相検出器120は、基準クロック信号REF_CLKとスキュークロック信号S_CLKとを同期させるために、伝播遅延Dを増大するかまたは減少するか(またはそのいずれも行なわない)を定める。たとえば、位相検出器120は、図2Aに示されるクロック信号に対しては伝播遅延Dを増大させる。しかしながら、位相検出器120は、図2Cに示されるクロック信号に対しては伝播遅延Dを減少させる。
【0010】
図2Cでは、スキュークロック信号S_CLKは基準クロック信号REF_CLKより「遅れている」と言われる。なぜなら、基準クロック信号REF_CLKの立上がりエッジとスキュークロック信号S_CLKの次の立上がりエッジとの間の時間が、スキュークロック信号S_CLKの立上がりエッジと基準クロック信号REF_CLKの次の立上がりエッジとの間の時間よりも小さいからである。しかしながら、図2Aでは、基準クロック信号REF_CLKがスキュークロック信号S_CLKよりも「遅れている」と言われる。なぜなら、スキュークロック信号S_CLKの立上がりエッジと基準クロック信号REF_CLKの次の立上がりエッジとの間の時間が、基準クロック信号REF_CLKの立上がりエッジとスキュークロック信号S_CLKの次の立上がりクロックエッジとの間の時間よりも小さいからである。これに代えて、図2Aでは、スキュークロック信号S_CLKが基準クロック信号REF_CLKよりも「進んでいる」と言える。
【0011】
基準クロック信号REF_CLKとスキュークロック信号S_CLKとを同期した後、遅延ロックループ100は、基準クロック信号REF_CLKおよびスキュークロック信号S_CLKをモニタし、かつ、伝播遅延Dを調節して同期を維持する。たとえば、おそらくは温度の上昇によって伝播遅延SKEWが増大すると、遅延ロックループ100は伝播遅延Dを減少させて補償しなければならない。これに対し、おそらくは温度の低下により伝播遅延SKEWが減少すると、遅延ロックループ100は伝播遅延Dを増大させて補償しなければならない。遅延ロックループ100が基準クロック信号REF_CLKとスキュークロック信号S_CLKとをまず同期させようとしている時間をロック獲得と称する。遅延ロックループ100が同期を維持しようとしている時間をロック維持と称する。ロック獲得の終わり、すなわち同期が最初に確立するときの伝播遅延Dの値を初期伝播遅延IDと称する。
【0012】
しかしながら、上述のように、遅延線110は、最小伝播遅延D_MINと最大伝播遅延D_MAXとの間の伝播遅延を与えることしかできない。ロック維持の間、同期を維持するのに最小伝播遅延D_MINよりも小さな伝播遅延Dが必要である場合、遅延ロックループ100は同期を失うことがある。同様に、同期を維持するために最大伝播遅延D_MAXよりも大きな伝播遅延Dが必要な場合、同期を失い得る。
【0013】
たとえば、遅延ロックループ100を用いるシステムが非常に高温にある際にロック獲得が起こると、遅延ロックループ100は非常に小さな初期伝播遅延IDで同期を達成する傾向がある。なぜなら、伝播遅延SKEWは周期Pに対して大きくなりやすいからである。システムの温度がさらに上昇すると、伝播遅延SKEWは、伝播遅延SKEW+最小伝播遅延D_MINが周期Pよりも大きくなる点まで増加する傾向がある。この状況では、遅延ロックループ100は再びロック獲得を経なければならず、このために、出力クロック信号O_CLKにグリッチおよびノイズが導入されることがあり、これが次にスキュークロック信号S_CLKにグリッチおよびノイズを生じてしまう。微妙なシステムにとってそのようなグリッチは許容不可能である。さらに、複数のクロック周波数で動作するように設計されたシステムにとっては、低周波動作は、クロック周期Pが非常に長いために問題を複雑にしがちである。長いクロック周期のために伝播遅延Dがより広い時間間隔にわたって変化してしまうことがある。したがって、広範囲のクロック周波数および極端な環境に対して同期を維持することができる遅延ロックループの必要性が存在する。
【0014】
さらに、従来の遅延ロックループ回路は、基準クロック信号REF_CLKとスキュークロック信号S_CLKとの正確な同期を与えている。基準クロック信号REF_CLKに対して比較的少量だけ正確にシフトされるスキュークロック信号S_CLKを与えることができる遅延ロックループ回路を有することが望ましい。そのような遅延ロックループ回路が進みと遅れの関係の両方を与えることができれば、さらに望ましい。そのような遅延ロックループ回路は、論理回路におけるクロック位相の正確な制御を可能にする。そのような制御により、たとえば、より正確なタイミングバジェットの割当が可能になり、これにより、同期デジタルシステムがより高速で動作することが可能になる。
【0015】
遅延ロックループ回路100は、REF_CLK信号に応答して、単一の周波数を有するS_CLK信号を与える。たとえば、S_CLK信号は100MHzの周波数を有し得る。連邦通信委員会(FCC)は、テストされるシステムの特徴に依存する特定の周波数帯域内でチップが放出し得る電磁エネルギに対して制限を設けている。1つのそのような測定法は1MHz帯域ウインドウを用いる。S_CLK信号が放出するエネルギのすべては単一の周波数に存在するため、全エネルギもそのようなウインドウ内に存在する。したがって、準拠のためには、FCCの制限に違反するシステムに特殊な技術を用いる必要がある。従来の準拠技術には、スタンドアロン(すなわちオフチップ)スペクトル拡散クロック発振器および放射構成要素のまわりの金属シールドの使用が含まれる。
【0016】
したがって、遅延ロックループ100の電磁放出制限を克服するクロック信号を有することが望ましい。
【0017】
【発明の概要】
この発明は、ロックウインドウ内に初期伝播遅延を有する遅延線を用いて基準クロック信号とスキュークロック信号とを同期させる遅延ロックループを提供する。ロックウインドウは、伝播遅延の最小遅延と最大伝播遅延との間の期間である。ロックウインドウの大きさは、遅延線の伝播遅延を変更することによって環境条件またはクロック周波数の変化が補償される場合に同期が失われないのを確実にするように選ばれる。この発明の1つの実施例に従う遅延ロックループは、遅延線だけでなくクロック移相器を組み入れて基準クロックを同期させる。クロック移相器によってもたらされる柔軟性の増大により、遅延ロックループが動作する周波数範囲が増大する。
【0018】
遅延線は、遅延ロックループの基準入力端子から基準クロック信号を受ける。遅延線の出力(すなわち遅延されたクロック信号)は、1つ以上の移相クロック信号を生成可能なクロック移相器に与えられる。出力発生器は、遅延されたクロック信号および1つ以上の移相されたクロック信号を受ける。出力発生器は、出力端子上に出力クロック信号として、クロック信号のうち1つを与える。位相検出器は基準クロック信号と遅延ロックループのフィードバック入力端子で受けるスキュークロック信号とを比較し、遅延線の伝播遅延を増大させるかまたは減少させるかを定めて基準クロック信号とスキュークロック信号とを同期する。
【0019】
クロック移相器の1つの実施例は、N−1個の移相クロック信号を生成する。移相クロック信号の各々は、他のN−2個のクロック信号および遅延されたクロック信号から360/N°だけ移相される。たとえば、クロック移相器が3つの移相クロック信号(すなわちNは4に等しい)を生成する場合、移相クロック信号は遅延クロック信号から90°、180°、および270°移相される。クロック移相器は、N本の遅延線と位相検出器とを用いて実現可能である。
【0020】
遅延ロックループは、遅延線と出力発生器とを制御するコントローラを含み得る。この発明の1つの実施例では、コントローラは、出力クロックとして出力発生器に遅延クロック信号を駆動させる。コントローラは、遅延線の伝播遅延を初期遅延に調節することにより、基準クロック信号とスキュークロック信号とを同期させる。初期遅延がロックウインドウ内にない場合、コントローラは、出力発生器に出力信号としての第1の移相クロック信号を駆動させる。次にコントローラおよび移相器は、遅延線の伝播遅延を第2の初期遅延に調節することにより、基準クロック信号とスキュークロック信号とを同期させる。第2の初期遅延がロックウインドウ内にない場合、コントローラは、出力クロックとして出力発生器に第2の移相クロック信号を用いさせる。ロックウインドウ内の初期遅延が見出されるまで、コントローラはこの態様で続ける。
【0021】
この発明の別の実施例では、クロック移相器は基準クロック信号を受けるように結合される。クロック移相器は、基準クロック信号から移相される移相クロック信号を生成する。クロック移相器からの移相クロック信号の1つまたは基準クロック信号が遅延線の入力信号となるように選択される。遅延線はコントローラおよび位相検出器によって制御されて入力クロック信号を遅延し、スキュークロック信号と基準クロック信号とを同期する。
【0022】
遅延ロックループが基準クロック信号とスキュークロック信号とを同期させた後、デジタル移相器を用いて基準クロック信号に対して少量だけスキュークロック信号をシフトすることができる。1つの実施例に従うと、クロック移相器中の遅延線のタップ設定およびより細かなトリミング設定がデジタル移相器に伝送され、それにより、デジタル移相器に基準クロック信号の周期を知らせる。応答して、デジタル移相器は、基準クロック信号またはスキュークロック信号のいずれかに、基準クロック信号の周期を基準とする遅延を導入する位相制御信号を与える。位相制御信号は基準クロック信号の周期の分数に比例する。1つの実施例では、基準クロック信号の周期はクロック移相器の遅延線のタップ/トリム設定から定められる。遅延線は、たとえば、512のタップ/トリム単位を有し得る。位相制御信号は、クロック移相器中の遅延線が用いるのと同等のタップ/トリム単位を分数で乗算することによって定められる。分数は、FPGAに記憶されるコンフィギュレーションメモリビットの内容またはユーザが規定する信号によって定めることができる。
【0023】
デジタル移相器は、2つの固定モードのうち1つまたは2つの可変モードのうち1つで動作するように制御され得る。第1の固定モードでは、デジタル移相器はスキュークロック信号に遅延を導入する。たとえば、第1の固定モードで、デジタル移相器は0から511タップ/トリム単位の範囲の遅延をスキュークロック信号に導入し得る。第2の固定モードでは、デジタル移相器は基準クロック信号に遅延を導入する。たとえば、第2の固定モードで、デジタル移相器は0から511タップ/トリム単位の範囲の遅延を基準クロック信号に導入し得る。第1の可変モードでは、デジタル移相器は、255から−255タップ/トリム単位に等しい遅延を基準クロック信号に導入し得る。第2の可変モードでは、デジタル移相器は、255から−255タップ/トリム単位に等しい遅延をスキュークロック信号に導入し得る。
【0024】
別の実施例に従うと、デジタル移相器は、低周波モードまたは高周波モードで動作することができる。デジタル移相器は、クロック移相器の遅延線が与えるタップ/トリム設定を調節して、低周波モードおよび高周波モードでクロック移相器が遭遇する異なるオーバーヘッド遅延を補償するように制御される。
【0025】
この発明のまた別の実施例では、スキュークロック信号の周波数は基本周波数付近でディザーされ得るので、多くの場合にこのクロック信号が電磁放出に対するFCCの要件に準拠するようになる。すなわち、連続する周期においてスキュークロック信号が僅かに異なる周波数を呈するように遅延を導入することができる。たとえば、100MHzのクロック信号の周波数は、異なる周期の間に、約98、98.5、99、99.5、100、100.5、101、101.5および102MHzの周波数を有するように調節可能である。この構成は、100MHzの基本周波数に加えて8つの周波数が生成されるため、「8拡散」構成と称される。1MHzウインドウ測定法について、周波数は0.5MHz単位で拡散されるため、ウインドウの中には9つの周波数のうち3つしか含まれない。その結果、クロック信号がFCCの電磁放出要件を満たすか否かを判断する際に、クロック信号のエネルギの2/3は含まれない。基本周波数の上下に周波数を規則的に拡散することにより、クロック信号の平均周波数は基本周波数と等しくなる。この発明に従うと、2拡散、4拡散および6拡散構成を含むが、それらに限られない他の構成を実現することができる。
【0026】
好ましい実施例では、クロック周波数はデジタルスペクトル拡散(DSS)回路によって生成される。これは、デジタル移相器とともに動作してスキュークロック信号に小さな遅延を挿入するものである。デジタル移相器遅延はその開始点に対して上下に調節可能でなければならないため、典型的に、デジタル移相器の可変モードはDSS回路と関連して用いられる。1つの実施例に従うと、DSS回路は特定のパターンのデジタルタップ/トリム調節を施してデジタル移相器の動作を最適化する。
【0027】
別の実施例では、デジタル移相器とは独立して、拡散スペクトル生成をうまく実現するのに必要なデジタルタップ/トリム調節のパターンおよび/またはDSS回路を従来の遅延線とともに用いることができる。
【0028】
この発明は以下の説明および図面を参照してより十分に理解されるであろう。
【0029】
【図面の詳細な説明】
図3は、この発明の1つの実施例に従う遅延ロックループ300を用いるシステムのブロック図である。遅延ロックループ300は、遅延線310、クロック移相器350、コントローラ330、出力発生器340および位相検出器320を含む。遅延ロックループ300は、基準入力端子302で基準クロック信号REF_CLKを受け、出力端子304に出力クロック信号O_CLKを生成する。図1について上述されたように、出力クロック信号O_CLKはクロックスキュー180によってスキューされてスキュークロック信号S_CLKとなり、これが論理回路190をクロックする。また、スキュークロック信号S_CLKは、フィードバック経路170を遅延ロックループ300のフィードバック端子306に戻される。
【0030】
遅延ロックループ300内で、基準クロック信号REF_CLKは遅延線310によって遅延され、遅延クロック信号D_CLKを生成する。遅延クロック信号D_CLKは、遅延線310でクロック信号REF_CLKから伝播遅延Dだけ遅延される。遅延ロックループ300の1つの実施例は、上記に参照される、「グレイコードマルチプレクサを用いるグリッチレス遅延線」(“Glitchless Delay Line Using Gray Code Multiplexer”)と題された、米国特許出願連続番号第09/102,704号に記載の調節可能遅延線を用いる。しかしながら、他の調節可能遅延線も遅延ロックループ300に用いることができる。遅延クロック信号D_CLKは、クロック移相器350の入力端子および出力発生器340の入力端子に与えられる。
【0031】
クロック移相器350は1つ以上の移相クロック信号P_CLK_1からP_CLK_N−1を生成する。ここでNは正の整数である。1つの実施例では、移相クロック信号P_CLK_1は遅延クロック信号D_CLKから360/N°だけ移相される。移相クロック信号P_CLK_2は2*(360/N)°だけ移相される。移相クロック信号P_CLK_N−1は(N−1)*(360/N)°だけ移相される。したがって、一般的に、移相クロック信号P_CLK_ZはZ*(360/N)だけ移相される。ここでZは1以上(N−1)以下の整数である。遅延クロック信号D_CLKはそれ自身から0°移相を有するため、遅延クロック信号D_CLKは移相クロック信号P_CLK_0と考えることができる。さらに、遅延ロックループ300のいくつかの実施例では、クロック移相器350は、遅延クロック信号D_CLKと同じ位相および周波数を有する移相信号P_CLK_Nを生成する。
【0032】
したがって、Nが4と等しい場合のクロック移相器350の実施例では、移相クロック信号P_CLK_1は、遅延クロック信号D_CLKから90°移相される。このことから、移相クロック信号P_CLK_2は遅延クロック信号D_CLKから180°移相され、移相クロック信号P_CLK_3は遅延クロック信号D_CLKから270°移相されることが論理的にわかる。しかしながら、この発明の原理は、移相クロック信号間で他のパターンの移相を用いるクロック移相器350の他の実施例にも好適である。
【0033】
移相はクロック信号の周波数領域における概念である。時間領域において移相と同等であるのはクロック信号を遅延させることである。具体的に、第1のクロック信号が第2のクロック信号からX°だけ移相されると、第1のクロック信号はX*(P/360)だけ遅延される。ここで、Pは第1および第2のクロック信号の周期である。したがって、移相クロック信号P_CLK_1が遅延クロック信号D_CLKから90°移相されると、移相クロック信号P_CLK_1は遅延クロック信号D_CLKの周期の4分の1だけ遅延される。移相によって生じる遅延と他の伝播遅延とを区別するため、移相による遅延を移送遅延P_D_Zと称する。移相クロック信号P_CLK_ZはZ*(360/N)°だけ移相されるので、移相クロック信号P_CLK_ZはZ*(P/N)に等しい移送遅延P_D_Zを有する。ここで、Zは1以上(N−1)以下の整数である。
【0034】
図4は、Nが4と等しい場合の遅延ロックループ300(図3)のタイミング図である。具体的に、クロック移相器350は、遅延クロック信号D_CLKと90°位相がずれた移相クロック信号P_CLK_1を生成する。したがって、移相クロック信号P_CLK_1はクロック周期Pの4分の1だけ遅延される。クロック移相器350は、遅延クロック信号D_CLKと180°位相がずれた移相クロック信号P_CLK_2を生成する。したがって、移相クロック信号P_CLK_2はクロック周期Pの2分の1だけ遅延される。最後に、クロック移相器350は、遅延クロック信号D_CLKから270°位相がずれた移相クロック信号P_CLK_3を生成する。したがって、移相クロック信号P_CLK_3はクロック周期Pの4分の3だけ遅延される。
【0035】
図3に戻って、クロック移相器350は、移相クロック信号を出力発生器340のさまざまな入力端子に与える。遅延ロックループ300のいくつかの実施例では、クロック移相器350は、オプションのコンフィギュレーションバス360上の1つ以上のコンフィギュレーション信号CFGを用いて構成され得る。コンフィギュレーション信号CFGによって構成されるクロック移相器350の実施例が、図7について以下に記載される。コンフィギュレーション信号CFGはコンフィギュレーション端子308で受けられ、コンフィギュレーションバス360によりクロック移相器350およびコントローラ330に伝達される。出力発生器340は遅延クロック信号D_CLKまたは移相クロック信号のうち1つのいずれかを選択して出力クロック信号O_CLKとして与える。クロック移相器350が移相クロック信号P_CLK_Nを与える遅延ロックループ300の実施例について、出力発生器340は、遅延クロック信号D_CLKの代わりに移相クロック信号P_CLK_Nを用いることができる。コントローラ330は出力発生器340を制御する。
【0036】
コントローラ330は、位相検出器320から、基準クロック信号REF_CLKおよびスキュークロック信号S_CLKに関する位相情報を受ける。具体的に、位相検出器320は、基準クロック信号REF_CLKとスキュークロック信号S_CLKとの同期を達成するために遅延線310からの伝播遅延Dを増大させるべきかまたは減少させるべきかをコントローラ330に知らせる。伝播遅延Dを増大させるかまたは減少させるかを判断するのみである位相検出器320の実施例については、ジッタフィルタ(図示せず)を用いてクロックジッタを低減することができる。1つの実施例では、ジッタフィルタは、伝播遅延Dを減少すべき場合には1だけ減分し、伝播遅延Dを増大すべき場合には1だけ増分するアップ/ダウンカウンタ(図示せず)である。しかしながら、アップ/ダウンカウンタが0または他の予め定められた数に達するまでは伝播遅延Dは調節されない。伝播遅延Dが調節されると、アップ/ダウンカウンタは最大値の2分の1にリセットされる。他の実施例では、位相検出器320は、伝播遅延Dを増大または減少させるべき量を計算する。ロック獲得の間、コントローラ330は、伝播遅延Dの初期伝播遅延IDがロックウインドウW内に存在するように、スキュークロック信号S_CLKと基準クロック信号REF_CLKとを同期させようとする。
【0037】
図5はロックウインドウWの概念を図示する。上述のように、伝播遅延Dは、最小伝播遅延D_MINと最大伝播遅延D_MAXとの間になければならない。D_MINおよびD_MAXの典型的な値はそれぞれ3.2ナノ秒および46.8ナノ秒である。ロック獲得の間、コントローラ330は、伝播遅延Dの初期伝播遅延IDが確実にロックウインドウW内にあるようにする。具体的に、最初に同期が確立されるとき、初期伝播遅延IDはロックウインドウ最小値W_MINとロックウインドウ最大値W_MAXとの間になければならない。ロックウインドウWの限界は、遅延ロックループ300が一旦ロック獲得を完了すると、遅延ロックループ300を含むシステムがシステムの設計ガイドライン内で動作する限りは遅延ロックループ300が同期を維持できるのを保証するように設定される。
【0038】
たとえば、遅延ロックループ300を含むシステムは、一般的に、動作条件の範囲において動作することができる。動作条件の範囲は、伝播遅延値SKEW_MAXで伝播遅延SKEWが最大となる最大極限条件を含む。同様に、動作条件の範囲は、伝播遅延値SKEW_MINで伝播遅延SKEWが最小となる最小極限条件も含む。したがって、システムの動作の間の伝播遅延SKEWの最大変化(DELTA_SKEW)は、伝播遅延値SKEW_MAX−伝播遅延値SKEW_MINと等しい(すなわち、DELTA_SKEW=SKEW_MAX−SKEW_MIN)。ロック維持の間の最大限の保護のため、ロックウインドウ最小値W_MINは、最小伝播遅延D_MIN+DELTA_SKEWと等しいものであり得る。同様に、ロックウインドウ最大値W_MAXは、最大伝播遅延D_MAX−DELTA_SKEWと等しいものであり得る。この発明の1つの実施例では、ロックウインドウ最小値W_MINは最大伝播遅延D_MAXの約16.5%と等しく、ロックウインドウ最大値W_MAXは最大伝播遅延D_MAXの約67.8%と等しい。
【0039】
図1を参照して上述されたように、従来の遅延ロックループについて、スキュークロック信号S_CLKと基準クロック信号REF_CLKとの同期は、伝播遅延Dと伝播遅延SKEWとを加算すると周期Pの倍数に等しくなる場合に達成される。式の形では次のとおりである。
【0040】
D+SKEW=MULT(P) (1)
ここでMULT(P)はPの倍数を指す。通常は、SKEWよりも大きいPの最小倍数が用いられる。
【0041】
遅延ロックループ300では、コントローラ330は移相クロック信号からの遅延も用い得る。こうして遅延ロックループ300は、伝播遅延Dと、移相クロック信号からの移相遅延P_Dと、伝播遅延SKEWとを加算して周期Pの倍数になれば、同期を達成することができる。式の形では以下のとおりである。
【0042】
D+P_D_Z+SKEW=MULT(P) (2)
ここで、P_D_Zは、移相クロック信号P_CLK_Zからの移相遅延を指す。通常は、伝播遅延SKEWよりも大きなPの最小倍数に移相遅延P_D_Zを加算したものが用いられる。図3を参照して上で説明したように、クロック移相器350の一実施例においては、移相クロック信号P_CLK_Zの移相遅延P_D_ZはZ*(P/N)に等しい。ここで、Zは0以上(N−1)以下の整数である。もしZが0に等しければ、コントローラ330は出力発生器340に出力クロック信号O_CLKとして遅延クロック信号D_CLKを使用させる。こうして、移相遅延P_D_0は0に等しい。
【0043】
わかりやすくするために、もし出力発生器340が出力クロック信号O_CLKに遅延クロック信号D_CLKを用いるのであれば、初期遅延IDを初期遅延ID_0と呼ぶことができる。同様に、もし出力発生器340が出力クロック信号O_CLKとして移相クロック信号P_CLK_Zを用いるのであれば、初期遅延IDを初期遅延ID_Zと呼ぶことができる。ここで、Zは1以上(N−1)以下の正の整数である。こうして、ロック獲得の最後に、式(2)は次のように書換えることができる。
【0044】
ID_Z+P_D_Z+SKEW=MULT(P) (3)
式(3)を再構成すると、以下のとおりである。
【0045】
ID_Z=MULT(P)−SKEW−P_D_Z (4)
Z*(P/N)をP_D_Zに代入すると、以下のとおりである。
【0046】
ID_Z=MULT(P)−SKEW−Z*(P/N) (5)
通常、正の初期遅延ID_ZをもたらすPの最小倍数が用いられる。初期遅延ID_Zが最小伝播遅延D_MINよりも小さいか、または、最大伝播遅延D_MAXよりも大きい場合、遅延ロックループ300は移相クロック信号P_CLK_Zを用いてスキュークロック信号S_CLKと基準クロック信号REF_CLKとを同期させることができない。
【0047】
コントローラ330は、出力クロック信号O_CLKを駆動するために移相クロック信号P_CLK_Zの任意の1つを選択できるので、コントローラ330はN個の初期遅延値から選択することができる。可能な初期遅延値の範囲は、最小オフセット値(MULT(P)−SKEW)から最大値(MULT(P)−SKEW)+(N−1)/N*周期P)にわたる。各初期遅延値間の差は、周期PをNで除算したものである。たとえば、もしNが4に等しく、周期Pが40ナノ秒に等しく、かつ、伝播遅延SKEWが25ナノ秒に等しければ、初期遅延ID_0、ID_1、ID_2およびID_3は、それぞれ15ナノ秒、5ナノ秒、35ナノ秒および25ナノ秒に等しい(式(5)を用いて計算する)。もしNが4に等しく、周期Pが40ナノ秒に等しく、かつ、伝播遅延SKEWが55ナノ秒に等しければ、初期遅延ID_0、ID_1、ID_2およびID_3はそれぞれ25ナノ秒、15ナノ秒、5ナノ秒および35ナノ秒に等しい。こうして、コントローラ330は、ロックウインドウW内に1つ以上の初期値遅延値を見出し得る。もし1つ以上の初期遅延がロックウインドウW内にあれば、コントローラ330はロックウインドウW内の初期遅延値の任意の1つを選択し得る。
【0048】
コントローラ330のいくつかの実施例は、上述の計算を行なって、どの移相クロック信号P_CLK_Zを用いるかを決定し得る。しかしながら、他の実施例は、試行錯誤を用いて、どの移相クロック信号P_CLK_Zを用いるかを決定する。コントローラ330の試行錯誤を用いる実施例は、図9を参照して後述する。
【0049】
図6は、図3のクロック移相器350の一実施例を示す。図6におけるクロック移相器350の実施例は、位相検出器620と、複数の遅延線610_1から610_Nとを含む。遅延線610_1から610_Nは直列に結合される。遅延線610_1の入力端子は、遅延クロック信号D_CLK(図3)のような入力クロック信号を受ける。遅延線610_Nの出力端子は、位相検出器620の入力端子に結合される。位相検出器620は、別の入力端子で入力クロック信号D_CLKも受ける。位相検出器620は、制御線625を介してすべての遅延線を並行して制御し、各遅延線は、同じ量の伝播遅延をもたらす。したがって、遅延線610_Nの出力端子上のクロック信号P_CLK−Nと入力クロック信号D_CLKとは同期される、すなわち、同位相である。さらに、位相検出器620は、遅延線610_1から610_Nによって生成された伝播遅延の合計を、入力信号の1周期Pと等しくさせる。こうして、各遅延線はP/Nの伝播遅延をもたらす。こうして、遅延線610_1の出力端子は、入力クロック信号からP/Nだけ遅延されるクロック信号を与えるのに対し、遅延線610_2の出力端子は、入力クロック信号から2*P/Nだけ遅延されるクロック信号を与える。一般的に、遅延線610_Zの出力端子は、入力クロック信号からZ*P/Nだけ遅延されたクロック信号を与える。ここでZは1以上N−1以下の整数である。したがって、もし入力クロック信号が遅延クロック信号D_CLKであれば、遅延線610_1から610_N−1の出力端子は、それぞれP_CLK_1からP_CLK_N−1の移相クロック信号をもたらす。クロック移相器350のいくつかの実施例は、遅延クロック信号D_CLKと同相であるクロック信号P_CLK_Nを遅延線610_Nの出力端子上に生成する。
【0050】
図7は、図3のクロック移相器350の構成可能な実施例を示す。特定的には、図7のクロック移相器は、第1のモードにおいて入力クロック信号に対して90°、180°および270°位相がずれている3つの移相クロック信号を生成するよう構成され得る。第2のモードにおいては、図7のクロック移相器は、入力クロック信号に対し180°位相がずれている単一の移相クロック信号を生成する。図7のクロック移相器は、位相検出器720、遅延線710_1、710_2、710_3および710_4、ならびに、マルチプレクサ730_1、730_2、730_3および730_4を含む。構成線740は、マルチプレクサ730_1から730_4の選択端子に結合される。
【0051】
遅延線710_1の入力端子は、遅延クロック信号D_CLK(図6)のような入力クロック信号を受けるように結合される。各遅延線710_Zの出力端子は、マルチプレクサ730_Zの論理1入力端子に結合される。ここでZは1以上3以下の整数である。各マルチプレクサ730_Zの出力端子は、遅延線710_Z+1の入力端子に結合される。ここでZは1以上3以下の整数である。マルチプレクサ730_4の出力端子は、位相検出器720の入力端子に結合される。マルチプレクサ730_1およびマルチプレクサ730_3の論理0入力端子は接地に結合される。しかしながら、マルチプレクサ730_2の論理0入力端子は、遅延線710_1の出力端子に結合される。同様に、マルチプレクサ730_4の論理0入力端子は、遅延線710_3の出力端子に結合される。位相検出器720はまた、別の入力端子で入力クロック信号D_CLKを受ける。位相検出器720は、位相検出器620について上述したように、遅延線710_1から710_4を並行に制御する。
【0052】
構成線740が論理1にされると、これは図7の実施例を第1のモードに入れ、遅延線710_1から710_4は直列に結合される。第1のモードにおいて、各遅延線はP/4の遅延をもたらす。こうして、もし入力クロック信号が遅延クロック信号D_CLKであれば、各マルチプレクサ730_Zの出力端子は移相クロック信号P_CLK_1、P_CLK_2およびP_CLK_3をもたらし得る。
【0053】
しかしながら、もし構成線740が論理0にされると、これは図7の実施例を第2のモードに入れ、遅延線710_1および遅延線710_3のみが直列に結合される。遅延線710_2および710_4の入力端子はマルチプレクサ730_1および730_3をそれぞれ介して接地に結合される。第2のモードにおいては、遅延線710_1および710_3は各々、P/2の遅延をもたらす。遅延線710_2および710_4の入力端子を接地に結合すると、消費電力とスイッチングノイズとが減じられる。しかしながら、第2のモードでは、図7の実施例は出力クロック信号を1つしか生成せず、これは入力クロック信号に対して180°位相がずれており、マルチプレクサ730_2の出力端子に生成される。
【0054】
図8は、図3の出力発生器340の一実施例を示す。図8の出力発生器は、N入力マルチプレクサ810を含む。N入力マルチプレクサ810は、810_0から810_N−1として参照されるN個の入力端子と、選択端子812と、出力端子814とを含む。図8の出力発生器340の実施例が図3の遅延ロックループ300で用いられる場合、選択端子812がコントローラ330に結合され、入力端子810_0は遅延クロック信号D_CLKを受けるよう結合され、出力端子814は出力クロック信号O_CLKをもたらし、かつ、入力端子810_1から810_N−1はそれぞれ移相クロック信号P_CLK_1からP_CLK_N−1を受けるよう結合される。選択端子812上の選択信号は、どの入力信号を出力端子814に与えるかを決定する。出力発生器340の他の実施例は、クロックバッファおよびクロック分周器のような、さらなる回路を含み得る。さらに、出力発生器340のいくつかの実施例は、さまざまなバージョンの移相クロック信号のような、さらなるクロック信号を駆動する。
【0055】
図9は、図3のコントローラ330の一実施例に対するステートダイアグラム900を示す。電源投入時またはリセット時に、コントローラ330はリセット段階910に遷移する。リセット段階910において、コントローラ330は位相カウンタ(図示せず)を0に設定し、これにより出力発生器340は出力クロック信号O_CLKとして遅延クロック信号D_CLKを与え、遅延線310の伝播遅延Dは開始遅延値に調節される(図3)。伝播遅延Dに対する開始遅延値は、たとえば、最小伝播遅延D_MIN、最大伝播遅延D_MAX、または、最小伝播遅延D_MINと最大伝播遅延D_MAXとの平均を含む。コントローラ910は次いで、ロック獲得段階920に遷移する。
【0056】
ロック獲得段階920において、コントローラ330は基準クロック信号REF_CLKとスキュークロック信号S_CLKとを同期させる。特定的には、コントローラ330は、位相検出器320からの信号に基づいて遅延線310の伝播遅延Dを調節する。位相検出器320は、スキュークロック信号S_CLKと基準クロック信号REF_CLKとを同期させるために伝播遅延Dを増大させるべきかまたは減少させるべきかを判断する。ロック獲得は、図3から図6を参照して上に詳細に説明される。したがって、その説明は繰返さない。いくつかの実施例においては、クロック移相器350はまた、電源投入/リセット信号によってリセットされる。これらの実施例のいくつかについては、コントローラ330は、クロック移相器350が移相クロック信号P_CLK_1からP_CLK_N−1を生成するまでは伝播遅延Dを調節しない。もしコントローラ330がスキュークロック信号S_CLKと基準クロック信号REF_CLKとを同期させることができなければ、コントローラ330は位相インクリメント段階950に遷移する。これは後に説明する。そうでない場合、コントローラ330は、コントローラ330がスキュークロック信号S_CLKと基準クロック信号REF_CLKとを(遅延線310における初期伝播遅延IDで)同期させた後に、チェックロックウインドウ段階930に遷移する。
【0057】
チェックロックウインドウ段階930において、コントローラ330は初期伝播遅延IDがロックウインドウW内にあるか否かを判断しなければならない。特定的には、伝播遅延IDがロックウインドウ最小W_MINよりも大きくかつロックウインドウ最大W_MAXよりも小さければ、伝播遅延IDはロックウインドウW内にある。初期伝播遅延IDがロックウインドウW内になければ、コントローラ330は位相インクリメント段階950に遷移する。そうでなければ、コントローラ330はロック維持段階940に遷移する。
【0058】
ロック維持段階940において、コントローラ330は、遅延線310の伝播遅延Dを調節して、スキュークロック信号S_CLKと基準クロック信号REF_CLKとの同期を維持する。ロック維持は上で詳細に説明される。したがって、その説明は繰返さない。上述のように、この発明は、システム環境条件全体にわたってロックを維持することができる。したがって、コントローラ330をリセット段階910に遷移させるリセットが発生しない限り、コントローラ330はロック維持段階940にとどまる。
【0059】
位相インクリメント段階950において、コントローラ330は位相カウンタを増分し、これにより出力発生器340は異なる移相クロック信号を選択する。さらに、コントローラ330は、遅延線310をリセットして、伝播遅延Dをリセット段階910で用いられた開始遅延値に戻す。コントローラ330は次いで、ロック獲得段階920に遷移して、上述のように続行する。
【0060】
図10は、遅延ロックループ300の別の実施例のブロック図である。図10の実施例は、図3の実施例について説明したのと同じ原理を用いる。しかしながら、図10の実施例においては、クロック移相器350は基準クロック信号REF_CLKを用いて移相クロック信号P_CLK_1からP_CLK_N−1を生成する。基準クロック信号REF_CLKおよび移相クロック信号P_CLK_1からP_CLK_N−1は入力セレクタ1040に結合される。入力セレクタ1040は、基準クロック信号REF_CLK、または移相クロック信号P_CLK_1からP_CLK_N−1のうちの1つを遅延線入力クロック信号DLI_CLKとして選択し、これを遅延線310の入力端子に与える。遅延線310は出力クロック信号O_CLKを駆動する。コントローラ1030は、位相検出器320が与えた位相情報に基づいて入力セレクタ1040と遅延線310とを制御し、それにより遅延線310は、スキュークロック信号S_CLKと基準クロック信号REF_CLKとを同期させる伝播遅延Dをもたらす。入力セレクタ1040は、出力発生器340と同様の回路設計を用いて実現され得る。
【0061】
この発明のさまざまな実施例では、遅延ロックループに対する新たな構造を記載する。クロック移相器を用いてクロック信号の周期に比例する伝播遅延を与えることにより、この発明は、ロック獲得の際の初期伝播遅延のクロック信号制御を提供することができる。ロックウインドウ内の初期伝播遅延のみを受け入れることにより、この発明は、この発明を用いるシステムの環境条件の全範囲にわたりクロック信号の同期を維持することができる。さらに、クロック移相器はクロック信号の周期に比例する伝播遅延を与えるので、この発明は、高周波および低周波クロック信号の両者を用いるシステムに適用可能である。さらに、この発明の遅延ロックループは、FPGA、DSPチップまたはマイクロプロセッサなどの、単一のシリコンチップ上に完全に組み込み可能な純デジタル回路によって実現可能である。
【0062】
図11は、この発明の別の実施例に従う、遅延ロックループ300の代わりに使用可能な遅延ロックループ400のブロック図である。遅延ロックループ400(図11)は遅延ロックループ300(図3)と同様であるので、図3および図11の同じ要素を同じ参照番号で標識付ける。したがって、遅延ロックループ400は、遅延線310、位相検出器320、コントローラ330、出力発生器340およびクロック移相器350を含む。さらに、遅延ロックループ400はデジタル移相器1100を含む。これは、スキュークロック信号S_CLKが基準クロック信号REF_CLKよりも進んでいるまたは遅れる関係を有するのを可能にする。
【0063】
遅延ロックループ400内では、基準クロック信号REF_CLKとスキュークロック信号S_CLKとの両者はデジタル移相器1100の入力端子に与えられる。応答して、デジタル移相器1100は、移相基準クロック信号PS_REF_CLKと、移相フィードバッククロック信号PS_S_CLKとを与える。移相基準クロック信号PS_REF_CLKは、遅延線310および位相検出器320の入力端子に与えられる。したがって、遅延ロックループ400のPS_REF_CLK信号は、遅延ロックループ300の基準クロック信号REF_CLKと同じ態様で伝達される。移相フィードバッククロック信号PS_S_CLKは位相検出器320の入力端子に与えられる。したがって、遅延ロックループ400のPS_S_CLK信号は、遅延ロックループ300のスキュークロック信号S_CLKと同じ態様で伝達される。
【0064】
より詳細に後述されるように、デジタル移相器1100は、REF_CLKとS_CLK信号との位相関係を調節してそれぞれPS_REF_CLKおよびPS_S_CLK信号を与える。その結果、S_CLK信号は、REF_CLK信号よりも進んだまたは遅れた位相関係を有するように制御され得る。
【0065】
記載の実施例では、クロック移相器350は、図7に図示された態様(すなわちN=4)で構成される。遅延線710_1、710_2、710_3および710_4の各々は、128タップ遅延とトリム遅延回路とを含む。トリム遅延回路は、タップ遅延間に最大3トリム遅延を加算するように制御され得る。したがって、遅延線710_3は、512(128+3*128)の可能なタップ/トリム遅延設定を有する。図12は、遅延線710_3の選択されたセクションに対するタップ/トリム遅延を図示する。タップ/トリム遅延を与えるための回路構成は、アンドルー・ケイ・パーシー(Andrew K. Percey)による、「グレイコードマルチプレクサを用いるグリッチレス遅延線」と題された、同一人に所有され同時係属中の米国特許出願連続番号第09/102,704号に記載されている。
【0066】
位相検出器720は、同じタップ/トリム設定(+/−1トリム遅延)を有するように遅延線710_1、710_2、710_3および710_4の各々を制御する。コンフィギュレーション信号CFGが論理「1」値を有する(すなわち、遅延ロックループ400が低周波モードで構成される)場合、遅延線710_1、710_2、710_3および710_4の4つがすべて直列に結合される。その結果、遅延線の各々のタップ/トリム設定が選択する遅延はD_CLK信号の約4分の1サイクルに相当する。
【0067】
同様に、コンフィギュレーション信号CFGが論理「0」値を有する(すなわち、遅延ロックループ400が高周波モードで構成される)場合、2つの遅延線710_1および710_3が直列に結合される。その結果、遅延線710_1および710_3の各々のタップトリム設定が選択する遅延は、D_CLK信号の約2分の1サイクルに相当する。
【0068】
クロック移相器350は、遅延線710_3のタップ/トリム設定をデジタル移相器1100に与え、それにより、デジタル移相器1100に、D_CLK信号の周期に対応する信号を与える。より詳細に後述されるように、この情報を用いてデジタル移相器1100が導入する移相を選択する。
【0069】
図13はこの発明の1つの実施例に従うデジタル移相器1100のブロック図である。デジタル移相器1100は、マルチプレクサM0−M7、オーバーヘッド遅延回路1301−1302、64タップ遅延回路1303、調節可能な512タップ/トリム遅延線1304、バイナリ−グレイデコーダ1305、(アップ/ダウンカウンタ1311を含む)移相制御論理1310およびDLL制御回路構成1312を含む。
【0070】
デジタル移相器1100は以下のように制御される。まず、デジタル移相器1100は4つのモードのうち1つで動作するように選択される。これらの4つのモードは、第1の固定モード、第2の固定モード、第1の可変モードおよび第2の可変モードを含む。第1の固定モードでは、デジタル移相器1100はスキュークロック信号に遅延を導入する。たとえば、第1の固定モードで、デジタル移相器1100は0から511タップ/トリム単位の範囲の遅延をスキュークロック信号に導入するように制御され得る。第2の固定モードでは、デジタル移相器1100は基準クロック信号に遅延を導入する。たとえば、第2の固定モードで、デジタル移相器1100は、0から511タップ/トリム単位の範囲の遅延を基準クロック信号に導入するように制御され得る。第1の可変モードでは、デジタル移相器1100は、255から−255タップ/トリム単位に等しい遅延を基準クロック信号に導入するように制御され得る。第2の可変モードでは、デジタル移相器1100は、255から−255タップ/トリム単位に等しい遅延をスキュークロック信号に導入するように制御され得る。
【0071】
モードは、S_LAGS_REFおよびCENTERED制御信号に応答して選択される。CENTERED制御信号はローでデアサートされ、S_LAGS_REF信号はローでデアサートされて、第1の固定モードでS_CLK信号がREF_CLK信号よりも進んでいることを示す。これと反対に、CENTERED制御信号はローでデアサートされ、S_LAGS_REF信号はハイでアサートされて、第2の固定モードでS_CLK信号がREF_CLK信号よりも遅れていることを示す。CENTERED制御信号はハイでアサートされ、S_LAGS_REF信号はハイでアサートされて第1の可変モードをイネーブルする。CENTERED制御信号はハイでアサートされ、S_LAGS_REF信号はローでデアサートされて、第2の可変モードをイネーブルする。1つの実施例では、プログラマブル論理デバイスのコンフィギュレーションメモリビットがこれらの制御信号を与えるが、これが必要なわけではない。
【0072】
図14Aは、第1の固定モードについてREF_CLKおよびS_CLK信号を図示する波形図である。第1の固定モードに入るため、S_LAGS_REF制御信号は論理「0」状態にデアサートされ、CENTERED制御信号は論理「0」状態にデアサートされる。これらの条件下で、REF_CLK信号は、マルチプレクサM0、M2およびM6ならびにオーバーヘッド遅延回路1301を通って伝達され、PS_REF_CLK信号を与える。S_CLK信号は、マルチプレクサM1、M4およびM7、オーバーヘッド遅延回路1302ならびに512タップ/トリム遅延線1304を通して伝達され、PS_S_CLK信号を与える。オーバーヘッド遅延回路1301および1302は適用される信号に同じ遅延を導入する。したがって、512タップ/トリム遅延線1304が0遅延を有するように設定されれば、REF_CLK信号およびS_CLK信号はデジタル移相器1100を通して同一の遅延を有する。
【0073】
遅延ロックループ400により、常にPS_REF_CLKとPS_S_CLK信号とは同期する。その結果、遅延素子1301−1304が導入するいかなる移相もREF_CLKおよびS_CLK信号によって実現される。第1の固定モードでは、512タップ/トリム遅延線1304が導入する遅延が増大すると、REF_CLK信号はS_CLK信号よりも遅れる。遅延線710_3(図7)と同一の512タップ/トリム遅延線1304は、511トリム単位の最大タップ/トリム遅延を与える(それによりREF_CLK信号に最大遅れを与える)ように構成され得る。
【0074】
図14Bは、第2の固定モードについて、REF_CLKおよびS_CLK信号を図示する波形図である。第2の固定モードに入るため、S_LAGS_REF制御信号は論理「1」状態にアサートされ、CENTERED制御信号は論理「0」状態にデアサートされる。これらの条件下で、REF_CLK信号は、マルチプレクサM1、M2およびM6、オーバーヘッド遅延回路1302ならびに512タップ/トリム遅延線1304を通して伝達され、PS_REF_CLK信号を与える。S_CLK信号は、マルチプレクサM0、M4およびM7ならびにオーバーヘッド遅延回路1301を通して伝達され、PS_S_CLK信号を与える。512タップ/トリム遅延線1304が0遅延を有するように設定されると、REF_CLK信号およびS_CLK信号はデジタル移相器1100を通して同一の遅延を有する。
【0075】
第2の固定モードでは、512タップ/トリム遅延線1304が導入する遅延が増大すると、REF_CLK信号はS_CLK信号よりも進み始める。512タップ/トリム遅延線1304が511トリム単位の最大タップ/トリム遅延を与えるように構成されると、REF_CLK信号に最大の位相進みが与えられる。
【0076】
図14Cは、第1および第2の可変モードについて、REF_CLKおよびS_CLK信号を図示する波形図である。第1の可変モードに入るため、CENTERED制御信号は論理「1」状態にアサートされ、S_LAGS_REF制御信号は論理「1」状態にアサートされる。その結果、REF_CLK信号は、マルチプレクサM1、M3およびM6、オーバーヘッド遅延回路1302ならびに512タップ/トリム遅延線1304を通して伝達され、PS_REF_CLK信号を与える。S_CLK信号は、マルチプレクサM0、M5およびM7、オーバーヘッド遅延回路1302ならびに64タップ遅延線1303を通して伝達される。64タップ遅延回路1303は、512タップ/トリム遅延線1304(または遅延線710_3)の最大遅延の2分の1に等しい固定遅延を与える。512タップ/トリム遅延線1304は、まず、0トリム単位に等しい遅延に設定され、64タップ(256トリム単位)に等しい遅延まで増分される。このとき、遅延回路1303および1304による遅延がまず一致する(すなわち0移相が存在する)。512タップ/トリム遅延線1304が導入する遅延は64タップ遅延よりも大きくなるように増大され、それにより、S_CLK信号をREF_CLK信号よりも遅らせることができる。これに対して、512タップ/トリム遅延線1304が導入する遅延を64タップ遅延よりも小さくすることができ、それにより、S_CLK信号をREF_CLK信号よりも進ませる。遅延線1304の中間点(すなわち256トリム単位)で0移相が得られるので、第1の可変モードでは、この遅延線1304は各方向にさらに255トリム単位の遅延を与えることしかできない。
【0077】
図14Cも、第2の可変モードについて、REF_CLKおよびS_CLK信号を表わす。第2の可変モードに入るため、CENTERED制御信号は論理「1」状態にアサートされ、S_LAGS_REF制御信号は論理「0」状態にアサートされる。その結果、REF_CLK信号は、マルチプレクサM0、M3およびM4、オーバーヘッド遅延回路1301ならびに64タップ遅延線1303を通して伝達され、PS_REF_CLK信号を与える。S_CLK信号は、マルチプレクサM1、M6およびM7、オーバーヘッド遅延回路1301ならびに512タップ/トリム遅延線1304を通して伝達される。512タップ/トリム遅延線1304は、まず、0トリム単位に等しい遅延に設定され、64タップ(256トリム単位)に等しい遅延にまで増分される。このとき、遅延回路1303および1304による遅延がまず一致する(すなわち0移相が存在する)。512タップ/トリム遅延線1304が導入する遅延は64タップ遅延よりも大きくなるように増大させることができ、それにより、S_CLK信号をREF_CLK信号よりも進ませる。これと反対に、512タップ/トリム遅延線1304が導入する遅延を64タップ遅延よりも小さくすることができ、それにより、S_CLK信号をREF_CLK信号よりも遅れさせる。第2の可変モードは第1の可変モードと同様である。しかしながら、第1の可変モードでは、512タップ/トリム遅延線1304がREF_CLK信号と対応し、第2の可変モードでは、512タップ/トリム遅延線1304がS_CLK信号と対応している。記載の実施例では、以下の理由のために第1の可変モードが好ましい。512タップ/トリム遅延線1304がS_CLK信号と対応している場合、遅延線310は、後に、遅延線1304が行なう調節を補償する必要があり、それにより、遅延線310に残る利用可能なタップ調節の数が減少する。
【0078】
遅延ロックループ400は、この発明の1つの実施例に従い、以下のように動作する。
【0079】
まず、S_LAGS_REFおよびCENTERED制御信号の状態を規定するためにコンフィギュレーションメモリビットを設定し、それにより、デジタル移相器1100が、第1の固定モード(REF_CLKがS_CLKよりも遅れる)、第2の固定モード(REF_CLKがS_CLKよりも進む)または第1もしくは第2の可変モードで動作するのかを規定する。
【0080】
コンフィギュレーションメモリビットは、PS_SIGN、PS_MAG[7:0]、HF_MODE、LFCおよびHFC制御信号の状態を規定するようにも設定される。PS_MAG[7:0]制御信号は、デジタル移相器1100が導入すべき移相の大きさを識別する。PS_SIGN制御信号は、デジタル移相器1100が可変モード(すなわちCENTERED=1)で構成されるときにPS_MAG[7:0]の極性を識別するのに用いられる。デジタル移相器1100が固定モードで構成される場合、PS_SIGN制御信号は用いられない。PS_SIGN信号が(負の極性を示す)論理「1」状態を有する場合、PS_MAG[7:0]信号は論理0値を有することができない。なぜなら、PS_MAG[7:0]信号は、この実施例では、2の補数で表わされるためである。
【0081】
すべての4つの遅延線710_1−710_4が1つの周期全体を発生する必要がある、デジタル移相器100が低周波クロック信号に応答して動作する場合、HF_MODE制御信号は論理「0」値に設定される。これと反対に、1つの周期全体を発生するには2つの遅延線710_1および710_3のみで十分である、デジタル移相器1100が高周波クロック信号に応答して動作する場合、HF_MODE制御信号は論理「1」値に設定される。HF_MODE制御信号は、低周波モード定数LFC[7:0]または高周波モード定数HFC[7:0]を選択するのに用いられる。
【0082】
CFG信号が論理「1」値を有しかつ遅延線710_1−710_4のタップ/トリム設定のすべてが0に設定される場合、低周波モード定数LFC[7:0]は、クロック移相器350(図7)にある遅延チェーン(delay chain)を通してトリム単位で信号経路のオーバーヘッドを表わす。
【0083】
同様に、CFG信号が論理「0」値を有しかつ遅延線710_1および710_3のタップ/トリム設定のすべてが0に設定される場合、高周波モード定数HFC[7:0]は、クロック移相器350(図7)の中にある遅延チェーンを通してトリム単位で信号経路のオーバーヘッドを表わす。低周波モード定数LFC[7:0]および高周波モード定数HFC[7:0]は、記載の実施例ではSpicdシミュレーションによって定められる。
【0084】
上述の定数が設定された後、RESET信号がアサートされ、それにより、アップ/ダウンカウンタ1311を、遅延線1304の0タップ/トリム遅延に対応する値にリセットする。遅延線310も、0タップ/トリム遅延に対応する値に設定される。これらの設定は、クロック移相器350がロック状態を達成した後まで維持される。より具体的には、REF_CLK信号はデジタル移相器1100および遅延線310を通して伝達され、(D_CLK信号として)クロック移相器350に与えられる。応答して、クロック移相器350は、図7と関連して上述された態様で動作して、REF_CLK信号に対してロック状態を達成する。留意すべきなのは、デジタル移相器1100および遅延線310は、REF_CLK信号を用いてクロック移相器350がロックしている間は、それらの遅延線を調節しないようにされることである。クロック移相器350がロック状態を達成した後、遅延線710_3のタップ/トリム設定は、基準クロック信号REF_CLKの周期の1/4(低周波モード)または1/2(高周波モード)のいずれかを表わす。この状態の終わりに、遅延線710_3のタップ/トリム設定は、TAP_TRIM[8:0]信号として移相制御論理1310に与えられる。RESET信号は、クロック移相器350がロックされた後にデアサートされる。
【0085】
RESET信号がデアサートされた後、デジタル移相器1100は遅延線1304を調節することを許される。しかしながら、デジタル移相器1100が遅延線1304を調節している間、クロック移相器350および遅延線310はそれらの遅延線を調節しないようにされる。デジタル移相器1100はカウンタ1311を増分して、512タップ/トリム遅延線1304の初期設定を与える。512タップ/トリム遅延線1304の初期設定は、TAP_TRIM[8:0]信号ならびにPS_SIGNおよびPS_MAG[6:0]値の関数として計算される。アップ/ダウンカウンタ1311は、このカウンタ1311のカウントが計算された初期設定に一致するまで増分(または減分)される。このカウントは、バイナリ−グレイコード変換器1305を通して512タップ/トリム遅延線1304にそのまま伝えられる。バイナリ−グレイコード変換器は、同一人に所有され、同時係属中の米国特許出願連続番号第09/102,704号により詳細に記載される。
【0086】
より具体的には、512タップ/トリム遅延線1304の初期設定は、1周期当りの等価タップ/トリム(ETT/P)をまず定めることによって定められる。低周波モードについて、ETT/Pは以下の式によって定められる。
【0087】
ETT/P=(4×(TAP_TRIM[8:0]))+LFC[7:0] (6)
高周波モードについて、ETT/Pは以下の式によって定められる。
【0088】
ETT/P=(2×(TAP_TRIM[8:0]))+HFC[7:0] (7)
次に、512タップ/トリム遅延線1304の初期設定を以下の態様でETT/P値から定める。動作の第1および第2の固定モードについて、512タップ/トリム遅延線1304の初期タップ/トリム設定は以下のものに等しい。
【0089】
(PS_MAG[7:0]/256)×ETT/P (8)
動作の第1および第2の可変モードについて、512タップ/トリム遅延線1304の初期タップ/トリム設定は以下のものに等しい。
【0090】
256+((PS_MAG[7:0]/256)×ETT/P) (9)
PS_SIGN=0の場合 または
256−((PS_MAG[7:0]/256)×ETT/P) (10)
PS_SIGN=1の場合。
【0091】
デジタル移相器1100には遅延線1304が1本しかないため、PS_MAG[7:0]/256の最大値は、低周波および高周波モードについて、それぞれ最長周期の約1/4および1/2未満である。
【0092】
512タップ/トリム遅延線1304の初期タップ/トリム設定が設定された後、デジタル移相器1100およびクロック移相器350は、一時的にそれらの遅延線を調節しないようにされる。このとき、遅延線310が解放されることによって遅延線310を調節できるようになり、PS_REF_CLKとPS_S_CLK信号とが同期される。すなわち、遅延線310はロック状態を達成できるようになる。このとき、S_CLKおよびREF_CLK信号は、512タップ/トリム遅延線1304が導入する遅延に対応するスキューを呈する。一般的に、処理は上述の態様で進むので、次の状態の間、クロック移相器350は、デジタル移相器1100中の遅延線1304および遅延線310がそれらの以前に定められた値で保持される間、ロックすることができる。次の状態の間、デジタル移相器1100の遅延線1304は、クロック移相器350中の遅延線および遅延線310がそれらの以前に定められた値で保持される間、(以前の状態の間にクロック移相器350によって定められたTAP_TRIM[8:0]信号を用いて)ロックすることができる。次の状態の間、遅延線310は、デジタル移相器1100の遅延線1304およびクロック移相器350の遅延線がそれらの以前に定められた値で保持される間、ロックすることができる。遅延線310、クロック移相器350およびデジタル移相器1100のうち1つだけがいずれかのある時間にそれらの遅延線を調節するのを許容することにより、遅延線310と、クロック移相器350と、デジタル移相器1100との間での競合を防止する。
【0093】
上述のように、512タップ/トリム遅延線1304のタップ/トリム設定は、クロック移相器350の遅延線710_3が与える現在のTAP_TRIM[8:0]値を用いて周期的に再計算される。新たなTAP_TRIM[8:0]値が、古いTAP_TRIM[8:0]値よりも大きいか、それと同じか、またはそれよりも小さいかに依存して、アップ/ダウンカウンタ1311は、それぞれ、増分されるか、不変であるか、または減分される。上述のように、遅延ロックループマネージャ(図示せず)により、512タップ/トリム遅延線1304内で実現されるトリム変更によって一時的に延長または短縮されるサイクルで遅延線310およびクロック移相器350が位相をまったくチェックしないことが確実になる。
【0094】
遅延線1304のタップ/トリム設定は、ユーザインターフェイス1320を介して遅延ロックループ400のユーザによる修正も可能である。ユーザインターフェイス1320は、位相インクリメント/デクリメント信号PSINCDEC、移相イネーブル信号PSEN、移相クロック信号PSCLKおよび移相完了信号PSDONEを含み、これらは移相制御論理1310に与えられる。PSCLK信号はPS_DLY_OUTクロック信号とは異なるため、移相制御論理1310内でこれら2つのクロック領域の調整が必要である。PSEN信号はPSCLK信号の1サイクルの間ハイでアサートされる。このサイクルと同時にまたはこのサイクルの前に、PSINCDEC信号がハイまたはローでアサートされ、それにより、式(8)、(9)または(10)の分数の分子がそれぞれ1だけ増減される。アップ/ダウンカウンタ1311のカウント値の変更を保証するのに分子の増減で十分である場合、この変更が実現される。デジタル移相器1100が増減動作を完了すると、移相制御論理1310は、PSCLK信号の1サイクルの間PSDONE信号をアサートし、それにより、遅延線1304のタップ/トリム設定を再び修正可能であることをユーザに示す。
【0095】
図15は、移相制御論理1310をより詳細に図示するブロック図である。記載の実施例では、移相制御論理1310は、マルチプレクサ1501−1506、アップ/ダウン符号付カウンタ1511、レジスタM0−M1、加算器1531、バイアス加算器/減算器1532、コンパレータブロック1533、積レジスタ1541、ORゲート1542、ANDゲート1543、制御ブロック1550およびアップ/ダウンカウンタ1311を含む。
【0096】
移相制御論理1310は数理演算を行ない、TAP_TRIM[8:0]、LFC[7:0]、HFC[7:0]、PS_SIGNおよびPS_MAG[7:0]信号をPS_TT[8:0]値に変換し、これにより、遅延線1304が導入する移相遅延はクロック周期の所望の分数部分となる。移相制御論理1310は、動的位相調節を可能にするユーザインターフェイス1320およびDLLコントロール1312へのインターフェイスも含む。
【0097】
DLLコントロール1312は、移相制御論理1310がいつPS_TT[8:0]信号を変更してよいかを指定する。DLLコントロール1312は、GO信号(DLLコントロール1312からの要求)とDONE信号(移相制御論理1310からの応答)との間の非同期4波面ハンドシェイクサイクルでこれを行なう。
【0098】
RESET信号の後にアサートされる最初のGO信号は、PS_TT[8:0]信号を0から正しい初期設定に増分させる。その後のサイクルで、PS_TT[8:0]信号は、正しい遅延(すなわち、REF_CLK周期の現在指定される分数部分)を維持するため、不変であるか、増大されるかまたは低減される。
【0099】
移相制御論理1310の1次ステートマシンは、DLLコントロール1312からGO信号を受けるまでは休止したままである。GO信号が取込まれ、ローカルクロック信号に同期された後で、この主ステートマシンを用いて、上に与えられた式(6)−(10)ごとに現在のPS_TT[8:0]を計算する。計算およびPS_TT更新が完了すると、DONE信号が活性化され、動作が完了したことをDLLコントロール1312に知らせる。1次ステートマシンが始動した後、特に他に注記されなければ、コントロールは1クロックサイクル後に次の状態に進む。1次ステートマシンのさまざまな状態をここに記載する。
【0100】
IDLE状態の間、PS_SIGNおよびPS_MAG[7:0]信号がアップ/ダウン符号付カウンタ1511にロードされる。符号付カウンタ1511はSIGN信号としてPS_SIGN信号を与え、PS[7:0]信号としてPS_MAG[7:0]信号を与える。PS[7:0]信号はレジスタM0にロードされる。
【0101】
さらに、HF_MODE信号は、HFC[7:0]値またはLFC[7:0]値のいずれかをマルチプレクサ1501を通して伝達する。記載の例では、HF_MODE信号は論理「0」値(低周波モード)を有するため、LFC[7:0]値を通過させる。マルチプレクサ1502、1503および1504は、マルチプレクサ1501の出力からレジスタM1へLFC[7:0]値を通過させるように制御される。LFC[7:0]値はレジスタM1にロードされ、それによりIDLE状態を完了する。
【0102】
次に、1次ステートマシンはM1_TO_PROD状態に入る。ここで、レジスタM1の内容が積レジスタ1541に転送される。留意すべきなのは、積レジスタ1541はまずリセットされて、論理0値を記憶することである。加算器1531はまず(加算器1531のB入力端子上の)この初期0値を(加算器1531のA入力端子上の)レジスタM1の内容に加算する。結果(すなわちLFC[7:0]定数)は積レジスタ1541にロードされ、それにより、M1_TO_PROD状態を完了する。
【0103】
次に、1次ステートマシンはTAP_TRIM_TO_M1状態に入る。ここで、TAP_TRIM[8:0]信号はレジスタM1にロードされる。主ステートマシンはマルチプレクサ1502−1504を制御して、TAP_TRIM[8:0]信号をレジスタM1に伝達する。
【0104】
次に、1次ステートマシンはSHIFT1状態に入る。ここで、TAP_TRIM[8:0]信号は2で乗算される。これは、レジスタM1の出力からマルチプレクサ1506の「1」入力端子にTAP_TRIM[8:0]信号を伝達することによって達成される。この経路はTAP_TRIM[8:0]信号を1ビットだけ左にシフトし、それにより、実質的にTAP_TRIM[8:0]信号を2で乗算する。これは、式(7)に上述される2倍関数に対応する。シフトされたTAP_TRIM[8:0]信号は、マルチプレクサ1506、1503および1504を通して伝達され、レジスタM1に再ロードされる。
【0105】
HF_MODE信号が論理「0」状態(すなわち低周波モード)を有する場合、1次ステートマシンはSHIFT2状態に入る。ここで、TAP_TRIM[8:0]信号は再び2で乗算される(それにより、式(6)が必要とする、4倍関数を与える)。SHIFT2状態の2での乗算演算は、SHIFT1状態の2での乗算演算と同じ態様で行なわれる。HF_MODE信号が論理「1」状態(すなわち高周波モード)を有する場合、1次ステートマシンはSHIFT2状態をスキップする。
【0106】
次に、1次ステートマシンはETTP_TO_M1状態に入る。ここで、レジスタM1に記憶された、シフトされたTAP_TRIM[8:0]信号が、積レジスタ1541に記憶されたLFC[7:0]定数に加算され、それにより、ETT/P値を生じる。これを達成するため、加算器1531は、レジスタM1の内容(すなわち、シフトされたTAP_TRIM[8:0]値)と積レジスタ1541の内容(すなわち、LFC[7:0]定数)とを加算するように制御される。この結果(すなわちETT/P値)はマルチプレクサ1504を通して伝達され、レジスタM1にロードされる。
【0107】
次に、1次ステートマシンはRST_PROD状態に入る。ここで、積レジスタ1541の内容が0値にリセットされる。
【0108】
次に、1次ステートマシンはMULTIPLY状態に入る。ここで、レジスタM1に記憶されたETT/P値は、レジスタM0に記憶されたPS[7:0]値で乗算される。19ビット加算器1531は、反復加算およびシフト法を用いてこれらの値を乗算するのに用いられる。したがって、加算器1531はまずETT/P値に0を加算し、それにより、まず積レジスタ1541の入力端子にETT/P値が与えられる。このとき、PS[0]ビットが積レジスタ1541のロード端子に与えられる。PS[0]ビットが論理「1」値を有する場合、ETT/P値が積レジスタ1541にロードされる。PS[0]ビットが論理「0」値を有する場合、ETT/P値は積レジスタ1541にはロードされない(すなわち、積レジスタ1541は0値を記憶し続ける)。積レジスタ1541の内容は、P[18:0]信号として加算器1531のB入力端子に与えられる。
【0109】
この最初の反復の後、PS[7:0]値は1ビットだけ右にシフトされ、これにより、レジスタM0は、積レジスタ1541のロード入力端子にPS[1]ビットを与える。また、第1の反復の後に、レジスタM1に記憶されたETT/P値は、マルチプレクサ1506およびマルチプレクサ1503−1504の左シフト入力端子を通してこの値を伝達することにより、1ビットだけ左にシフトされる。この左シフトされたETT/P値がレジスタM1にロードされる。次に加算器1531は、左シフトされたETT/P値と積レジスタ1541との内容との合計に等しい出力を与える。PS[1]ビットが論理「1」値を有する場合、加算器1531の出力は積レジスタ1541にロードされる。PS[1]ビットが論理「0」値を有する場合、加算器1531の出力は積レジスタ1541にはロードされず、積レジスタ1541の内容は不変のままである。
【0110】
処理は繰返され、各々の反復の際、レジスタM1に記憶されたETT/P値は左シフトされ、レジスタM0中のPS[7:0]信号は右シフトされる。ビットM0[7:1]がすべて論理「0」値を有するとき、この処理が完了する。このとき、積レジスタ1541は、ETT/P×PS_MAGに等しい値を保持する(式(8)、(9)、(10)を参照)。積レジスタ1541が与えるビットP[18:17]のいずれか1つが論理「1」値を有する場合、オーバーフロー条件が存在する。これらの条件下では、ORゲート1542は論理ハイのOVERFLOW信号を与え、積レジスタ1541は、MULTIPLY状態から出るまで状態を変更しないようにされる。
【0111】
MULTIPLY状態が完了した後、1次ステートマシンはPASS状態に入る。PASS状態の間、バイアス加算器/減算器1532は、加算または減算演算を完了する時間を許される。積レジスタ1541のビットP[16:8]はバイアス加算器/減算器1532の「A」入力端子に与えられ、それにより、積レジスタ1541の内容を8ビットだけ右シフトする。これは、積レジスタの内容を256で実質的に除算する(式(8)、(9)、(10)参照)。バイアス加算器/減算器1532の「B」入力端子は、「0」(CENTERED=0の場合)または256(CENTERED=1の場合)のいずれかの値を受けるように結合される。ANDゲート1543が論理「0」出力信号を与える場合、バイアス加算器/減算器1532は加算(B+A)を行なう。これと反対に、ANDゲート1543が論理「1」出力信号を与える場合、バイアス加算器/減算器1532は減算(B−A)を行なう。遅延ロックループ400が可変モードで構成される場合(CENTERED=1)、ANDゲート1543は論理「1」信号を与えるのみであり、アップ/ダウン符号付カウンタ1511は負の値(SIGN=1)を有する。バイアス加算器/減算器1532のビットR[9]が論理「1」値を有する場合、ORゲート1542はOVERFLOW信号をアサートし、それにより、オーバーフロー条件が存在することを示す。OVERFLOW信号がアサートされない限り、バイアス加算器/減算器1532が与える結果R[8:0]は所望のPS_TT[8:0]信号を表わす。
【0112】
留意すべきなのは、OVERFLOW信号が以下のいずれかによって設定され得ることである。すなわち、(a)積レジスタ1541が与える値が0以上1FFFF以下でない。(b)バイアス加算器/減算器1532のR[8:0]出力は0以上1FF以下でない。(c)タップ/トリムカウンタ1311は、選択された方向で変更されるとラップする。(d)アップ/ダウンカウンタ1511は、選択された方向で変更されるとラップする。
【0113】
PASS状態が完了した後、1次ステートマシンはADJUST_PSTT状態に入る。この状態で、PS_TT[8:0]信号は、バイアス加算器/減算器1532が与える結果R[8:0]と等しくなるように設定される。コンパレータ1533の「A」入力端子は、バイアス加算器/減算器の結果R[8:0]を受けるように結合される。コンパレータ1533の「B」入力端子は、アップ/ダウンカウンタ1311からPS_TT[8:0]信号を受けるように結合される。R[8:0]信号がPS_TT[8:0]信号に等しくない場合、コンパレータ1533は、アップ/ダウンカウンタ1311のクロックイネーブル入力端子(CE)に論理ハイの信号を与え、それにより、アップ/ダウンカウンタ1311をイネーブルする。また、PS_TT[8:0]信号がR[8:0]信号よりも小さい場合、コンパレータ1533は、アップ/ダウンカウンタ1311のUP端子に論理ハイの信号を与える。これと反対に、PS_TT[8:0]信号がR[8:0]信号よりも大きいかまたはそれに等しい場合、論理ブロック1533は、アップ/ダウンカウンタ1311のUP端子に論理ローの信号を与える。UP端子が論理「1」信号を受けると、アップ/ダウンカウンタ1311は1だけ増分され、UP端子が論理「0」信号を受けると、これは1だけ減分される。RESETの際、アップ/ダウンカウンタ1311は論理0値にリセットされる。その結果、アップ/ダウンカウンタ1311は、PS_TT[8:0]値がR[8:0]値と等しくなるまで(またはオーバーフローが起こるまで)PS_TT[8:0]を調節する。PS_TT[8:0]信号がR[8:0]信号に等しいかまたはOVERFLOWが真であると、制御論理1550はDONE信号を設定する。制御論理1550は、DONE信号がRESETの後に初めてアサートされるときにPS_LOCKED信号を設定する。PS_LOCKED信号は、DLLコントロール1312に、移相論理1310が適切に初期化されたことを知らせる。例外はロッキングプロセスの間である。この場合、OVERFLOWが真であればDONE信号は設定されず、したがって、PS_LOCKED信号も設定されない。
【0114】
次に、主ステートマシンはWT_GONOT状態に入る。ここで、ステートマシンは、GO信号が不活性になるまで待機し、次にIDLE状態に入る。
【0115】
通常動作の間の移相に対する動的変更(すなわち、式(8)、(9)、(10)の分数の分子)を許すため、外部ユーザインターフェイス1320を設ける。ユーザは分数の分子を増減し得る。可変モードでは、分数の分子は、正からゼロを通って負におよびその逆に交差し得る。外部ユーザインターフェイス1320は外部クロック信号PSCLKと同期する。移相制御回路1310のクロックされた素子の残りは、PS_DLY_OUTクロック信号によってクロックされることに留意されたい。モジュールは標準的な技術を用いて、PSCLK領域からPS_DLY_OUTクロック領域へおよびその逆に交差する。
【0116】
第2のステートマシン、すなわち動的位相変更(DPS)ステートマシンはユーザインターフェイス1320を制御する。PS_DLY_OUTクロック領域を走り、DPSステートマシンは、主ステートマシンが符号付アップ/ダウンカウンタ1511を用いていないときにしかこのカウンタに変更が加えられないのを確実にする。DPSステートマシンが始動した後、以下の説明で特に注記されなければ、コントロールは1クロックサイクル後に次の状態に進む。
【0117】
DPSステートマシンはDPS_IDLE状態で始動する。ここで、ステートマシンはPSEN信号がアサートされるのを待つ。(PSCLK信号によってクロックされたものとして)PSEN信号を検出すると、DPSステートマシンは次の状態に進む。しかしながら、論理的不連続性を回避するため、主ステートマシンがIDLE状態にない場合は、DPS_IDLE状態から出ることはできない。
【0118】
次に、DPSステートマシンはDPS_CNTR状態に入る。ここで、取込まれたPSINCDEC信号が論理「1」値を有する場合、カウンタ1511はインクリメントされ、取込まれたPSINCDEC信号が論理「0」値を有する場合、これはデクリメントされる。
【0119】
次に、DPSステートマシンはDPS_W_ADJUST_PSTT状態に入る。ここで、DPSステートマシンは、主ステートマシンが対応の調節サイクルを完了するまで待機する。一次状態ADJUST_PSTTのための終了条件が真になるまで、DPSステートマシンはこの状態にとどまる。
【0120】
次に、DPSステートマシンはDPS_SETDONE状態に入る。ここで、(PSCLK領域に結合される)PSDONE信号が設定される。アサートされたPSDONE信号は、要求された位相変更が完了したことをユーザに知らせる。次に処理はDPS_IDLE状態に戻る。
【0121】
以上のように、デジタル移相器1100は、REF_CLKとS_CLK信号との間の遅延を正確に修正することができる。この動作は、低周波および高周波信号ならびに温度変化を補うように制御される。有利には、自動的におよびユーザコントロールにより位相を修正可能である。
【0122】
図16は、この発明の別の実施例に従うデジタルスペクトル拡散(DSS)回路1600のブロック図である。DSS回路1600は、アップ/ダウンカウンタ1311とバイナリ−グレイ変換回路1305(図13を参照)との間に結合される。アップ/ダウンカウンタ1311とDSS回路1600との両者はPS_DLY_OUT信号によってクロックされる。一般的に、DSS回路1600は、予め定められた小さな値をPS_TT[8:0]信号に加算するかまたは減算して、JOINT_TT[8:0]信号を発生するように構成され得る。この場合、DSS回路1600は拡散スペクトルモードにある。拡散スペクトルモードでは、JOINT_TT[8:0]信号は、PS_DLY_OUT信号のクロック周期において小さな変化を生じさせる。
【0123】
DSS回路1600は、拡散スペクトルモードをディスエーブルするようにも構成され得るので、PS_TT[8:0]信号は変更されずにDSS回路1600を通して伝送される。これをDSSバイパスモードと称する。
【0124】
図17AはDSSバイパスモードを図示する。ここで、PS_DLY_OUT信号は周波数100MHzおよびエネルギXを有する。チップの電磁放出を定めるため、FCCは特定の幅(たとえば1MHz)を有するウインドウ1701を用いる。PS_DLY_OUT信号は単一の周波数を有するため、1MHzウインドウ1701はPS_DLY_OUT信号のエネルギXのすべてを捕捉する。
【0125】
図17Bは、DSS回路1600のスペクトル拡散モードのうち1つを図示する。ここで、PS_DLY_OUT信号は、約98、98.5、99、99.5、100、100.5、101、101.5および102MHzの周波数を呈するように制御される。これらの周波数の各々は、時間の1/9しか存在しないため、PS_DLY_OUT信号は、これらの周波数の各々において1/9Xのエネルギを有する。その結果、1MHzウインドウ1701は、いずれの時間においても9つの周波数のうち3つしか捕捉しない。その結果、1MHzウインドウが検出するエネルギは最大値1/3Xを有する。これは、バイパスモードに対するEMIエネルギの大幅な低減を表わす。PS_DLY_OUT信号の基本周波数が変化するにつれ、1MHzウインドウ内に存在する周波数の数が変化し得る。
【0126】
図18は、この発明の1つの実施例に従うDSS回路1600の回路図である。DSS回路1600は、パターン発生器1801、符号付加算器1802、パイプラインレジスタ1803、5ビットアップカウンタ1804、Dフリップフロップ1805−1806、インバータ1807、ORゲート1808およびNANDゲート1809を含む。DSS回路1600の素子はPS_DLY_OUT信号によってクロックされる。
【0127】
DSS回路1600をイネーブルするため、コンフィギュレーションメモリビットは、論理ローのEN_DSS♯信号を記憶するようにプログラムされ、それにより、遅延ロックループ400の通常動作の間にDSS回路1600を用い得るか否かをユーザが選択できるようにする。ユーザがDSS回路1600を用いたい場合、ユーザは、論理ハイのDSS_EN信号もNANDゲート1809に与えなければならない。このときRESET信号はハイでアサートされ、これにより、ORゲート1808が論理ハイの信号を与えてパターン発生器1801をクリアし、フリップフロップ1805をクリアし、かつ、5ビットアップカウンタ1804を値「10000」(すなわち二進法の16)に非同期に設定する。
【0128】
まず、遅延ロックループ400はロックされない(すなわち、DLL_LOCKEDはローである)。その結果、NANDゲートは論理「1」値を与え、これはフリップフロップ1805にロードされる。この論理「1」の値により、ORゲート1808は論理「1」出力値を与え、それにより、パターン発生器1801をクリアされた状態に維持する。このとき、パターン発生器1801は、値0を有するトリム信号t[9:0]を与える。その結果、アップ/ダウンカウンタ1311が与えるPS_TT[8:0]信号は、不変のまま加算器1802およびパイプラインレジスタ1803を通る。これは、遅延ロックループ400からDSS回路1600を実質的に取除く。
【0129】
遅延ロックループ400がロックされた後、DLLS_LOCKED信号は論理ハイ値に遷移する。応答して、NANDゲート1809は論理「0」出力信号を与える。この論理「0」信号は、PS_DLY_OUT信号の次の立上がりエッジでフリップフロップ1805にラッチされる。その結果、ORゲート1808は論理「0」信号を与え、これは、パターン発生器1801、5ビットアップカウンタ1804およびフリップフロップ1805を解放する。このとき、パターン発生器1801がイネーブルされ、予め定められたパターンを生成する。SPREADSEL[3:0]信号によって特定のパターンが選択される。1つの実施例では、パターン発生器1801は、2拡散、4拡散、6拡散、8拡散、16拡散、32拡散および64拡散構成を生じるためのパターンを生成することができる。この例では、SPREADSEL[3:0]信号は、8拡散構成のためのパターンを与えるように選択される。
【0130】
述べられた実施例では、アップ/ダウンカウンタ1311の内容が変更されているときに、アップ/ダウンカウンタ1311はCHANGE_PS信号をアサートする。CHANGE_PS信号がアサートされると、パターン発生器1801の出力t[9:0]は変化しないようにされ、それにより、パターン発生器1801とアップ/ダウンカウンタ1311との間の競合を回避する。
【0131】
一般的に、パターン発生器は加算器1802のA入力端子にトリム値t[9:0]を与え、カウンタ1311は加算器1802のB入力端子にPS_TT[8:0]信号を与える。留意すべきなのは、論理「0」値を有するPS_TT[9]ビットがPS_TT[8:0]信号に連結されることである。また、留意すべきなのは、ビットt[9:4]がt[3]と等しくなるように設定されることである。8拡散パターンでは、トリム値t[9:0]は、0、+1、+2、−1および−2の値を有し得る。
【0132】
加算器1802は、PS_TT[9:0]とt[9:0]信号との符号付加算を行ない、それにより、サム信号s[9:0]を与える。サムビットs[9]が論理「0」値を有する限り、サム値s[8:0]は512タップ遅延線1304の動作範囲内にある。論理「0」サムビットs[9]は、パイプラインレジスタ1803がs[8:0]信号をラッチできるようにする。次に、パイプラインレジスタ1803は、PS_TAP_TRIM[8:0]信号としてs[8:0]をバイナリ−グレイデコーダ1305に伝送する。
【0133】
サムビットs[9]が値「1」を有する場合、パイプラインレジスタ1803はディスエーブルされ、対応のs[8:0]信号をラッチしない。論理「1」のs[9]ビットはPS_DLY_OUT信号によってフリップフロップ1805にクロックされ、かつ、5ビットアップカウンタ1804の同期入力端子SI(6)に与えられる。PS_DLY_OUT信号がハイでアサートされると、5ビットアップカウンタ1804は値「00110」に設定される。
【0134】
留意すべきなのは、値「00110」でカウンタ1804をロードする前に、カウンタ1804が値「10000」に設定されたことである。カウンタのビット[4](すなわち、「10000」の「1」ビット)はインバータ1807に与えられる。次に、インバータ1807は、5ビットアップカウンタ1804のイネーブル入力(CE)に論理「0」ビットを与える。その結果、5ビットアップカウンタ1804は、それが「00110」値でロードされるまで実質的にディスエーブルされる。インバータ1807の出力はDSS_OVERFLOW信号としても用いられる。
【0135】
「00110」値が5ビットアップカウンタ1804にロードされた後、カウンタのビット[4]は論理「0」状態を有する。その結果、DSS_OVERFLOW信号がハイでアサートされ、5ビットアップカウンタ1804がイネーブルされる。DSS_OVERFLOW信号が一旦論理ハイ状態に設定されると、この信号は、PS_DLY_OUT信号の少なくとも10サイクルの間、論理ハイ状態にとどまる。s[9]信号が論理「0」値に遷移して戻れば、DSS_OVERFLOW信号は論理ロー値にリセットされ、PS_DLY_OUT信号の連続10サイクルの間、論理「0」値にとどまる。s[9]信号が論理「0」値に遷移した後、カウンタ1804はカウントアップを始める。s[9]信号が10クロックサイクルの間、論理「0」状態にとどまれば、カウンタ1804は「10000」までカウントし、それにより、DSS_OVERFLOW信号をクリアする。しかしながら、s[9]信号がこれらの10クロックサイクルの間のいずれかの時点で論理「1」値を有すれば、5ビットカウンタは「00110」値にリセットされ、それにより、論理ハイDSS_OVERFLOW信号を生じる。これにより、ユーザは、DSS_OVERFLOW信号のステータスを確実にサンプリングできるようになる。(述べられた実施例では、DSS_OVERFLOW信号は、図15のOVERFLOW信号と論理的にOR演算され、それにより、単一の信号を与えてオーバーフロー条件を識別する。)
パターン発生器1801が生成するトリム信号t[9:0]は、PS_DLY_OUT信号の周期がどのように調節されるかを定める。ここで8拡散構成が説明される。この例は、REF_CLK信号が基本周波数100MHzを有し、かつ、512タップ/トリム遅延線1304がREF_CLK信号の経路に接続される(すなわち、S_LAGS_REF=1かつCENTERED=1)と仮定する。この例は、1トリム遅延が50ピコ秒(ps)に等しいとも仮定する。
【0136】
図19A−19Bは、DSS回路1600が8拡散構成を実現するように制御される際の、REF_CLKおよびS_CLK信号を図示する波形図である。最初の3クロックサイクルC1−C3(すなわち30000nsまで)の間、DSS回路1600は、ユーザが与えるDSS_EN信号によってディスエーブルされる。その結果、パターン発生器1801は、値0を有するトリム信号t[9:0]を与える。これらの3クロックサイクルC1−C3の間、REF_CLKとS_CLKとは同期され、これらの信号の各々は10000nsの周期を有する。
【0137】
第4のクロックサイクルC4の間、パターン発生器1801がイネーブルされ、2トリム設定に等しい値を有するトリム信号t[9:0]を与える。応答して、符号付加算器回路1802は、アップ/ダウンカウンタ1311が与えるPS_TT[8:0]信号に2トリム設定を加算する。その結果、S_CLK信号のサイクルC4は、2トリム設定または100psだけ長くなる。したがって、S_CLK信号のサイクルC4は10100nsの周期を有するため、S_CLK信号の第5のサイクルC5の立上がりエッジは40100nsで発生する。このとき、REF_CLK信号とS_CLK信号との間に100nsの初期オフセットが存在する。この初期オフセットは、通常の8拡散構成を実現する前に一度だけ与えられる。この初期オフセットにより、以下に述べるような最適な態様で8拡散構成を実現することができる。
【0138】
第5のクロックサイクルC5の間に、パターン発生器1801は、1トリム設定に等しい値を有するトリム信号t[9:0]を与える。これは、以前のサイクルに対する−1トリム設定(−50ps)の変更を表わす。その結果、S_CLK信号は、10000ps−50psまたは9950psに等しい周期を有し、それにより、次のクロックサイクルC6の立上がりエッジは50050nsで発生する。S_CLK信号の周波数は、サイクルC5の間は100.5MHzに等しい。
【0139】
第6のクロックサイクルC6の間、パターン発生器1801は、2トリム設定に等しい値を有するトリム信号t[9:0]を与える。これは、以前のサイクルに対する+1トリム設定(+50ps)の変更を表わす。その結果、S_CLK信号は、10000ps+50psまたは10050psに等しい周期を有するので、次のクロックサイクルC7の立上がりエッジは60100nsで発生する。S_CLK信号の周波数は、サイクルC5の間は99.5MHzに等しい。
【0140】
プロセスは継続し、パターン発生器1801は、クロックサイクルC7−C13の間に、それぞれ値0、2、−1、2、−2、2および2を有するトリム信号t[9:0]を与える。これらのトリム値は、クロックサイクルC7−C13の間のトリム差−2、2、−3、3、−4、4および0にそれぞれ対応する。その結果、S_CLK信号は、クロックサイクルC7−C13の間にそれぞれ9900、10100、9850、10150、9800、10200および10000psの周期を有する。これは、S_CLK信号がクロックサイクルC7−C13の間にそれぞれ101、99、101.5、98.5、102、98および100MHzの周波数を有することを意味する。これは、図17Bに図示される8つの周波数の各々と100MHzの基本周波数とを与える。クロックサイクルC5−C13のパターンは遅延ロックループ400の動作の間繰返され、それにより拡散スペクトル動作を継続する。
【0141】
図19Aおよび19Bの例では、REF_CLK信号とS_CLK信号との間のスキューは、それぞれクロックサイクルC5−C13の間の50、100、0、100、−50、100、−100、100および100psに等しい。したがって、これらの2つの信号間のスキューは、最大値100psおよび平均値44.4psを有する。与えられる多数の周波数を鑑みると、これは比較的安定したクロック信号である。
【0142】
この発明の別の実施例では、クロックサイクルC4の間に与えられる初期オフセットを排除することができる。この実施例では、パターン発生器1801が与えるトリム値は、クロックサイクルC5−C13の間に、それぞれ−1、0、−2、0、−3、0、−4、0および0となるように選択される。これらのトリム値は、クロックサイクルC5−C13間のトリム差−1、1、−2、2、−3、3、−4、4および0にそれぞれ対応する。その結果、S_CLK信号は、クロックサイクルC5−C13の間に、それぞれ9950、10050、9900、10100、9850、10150、9800、10200および10000psの周期を有する。これは、S_CLK信号が、クロックサイクルC5−C13の間にそれぞれ100.5、99.5、101、99、101.5、98.5、102、98および100MHzの周波数を有することを意味する。ここでも、これは、図17Bに図示される8つの周波数の各々と、100MHzの基本周波数とを与える。クロックサイクルC5−C13のパターンは遅延ロックループ400の動作の間繰返され、それにより拡散スペクトル動作を継続する。この例では、REF_CLK信号とS_CLK信号との間のスキューは、それぞれクロックサイクルC5−C13の間、それぞれ−50、0、−100、0、−150、0、−200、0および0psに等しい。したがって、これらの2つの信号間のスキューは、最大値200psおよび平均値−55.6psを有する。
【0143】
8拡散構成(すなわち、基本周波数+8つの拡散周波数)が説明されたが、他の拡散スペクトル構成も実現可能であり、この発明の範囲内に入ると考えられることを理解されたい。たとえば、2拡散、4拡散および6拡散構成を設けることができる。パターン発生器1801は、−1、0および0に等しいトリム値のパターンを与えて、2拡散構成の3つの周波数を与える。
【0144】
パターン発生器1801は、−1、0、−2、0および0に等しいトリム値のパターンを与えて、4拡散構成の5つの周波数を与える。初期オフセットを加えるため、パターン発生器1801は、1(初期オフセット)、0、1、−1、1および1に等しいトリム値のパターンを与えて、4拡散構成の5つの周波数を与えることができる。
【0145】
パターン発生器1801は、−1、0、−2、0、−3、0および0に等しいトリム値のパターンを与えて、6拡散構成の7つの周波数を与える。初期オフセットを加えるため、パターン発生器1801は、1(初期オフセット)、0、1、−1、1、−2、1および1に等しいトリム値のパターンを与え、6拡散構成の7つの周波数を与えることができる。
【0146】
以下の表1は、100MHzの基本クロック信号について、2拡散、4拡散、6拡散および8拡散構成の特徴をまとめる。
【0147】
【表1】
【0148】
以下の表2は、25MHzから400MHzの間の選択された周波数について、さまざまなDSSモードに対する基本クロック信号の+/−拡散をまとめる。
【0149】
【表2】
【0150】
以下の表3は、25MHzから400MHzの間の選択された周波数について、さまざまなDSSモードに対する1MHzウインドウ内の理想的なピークの数をまとめる。
【0151】
【表3】
【0152】
以下の表4は、25MHzから400MHzの間の選択された周波数について、さまざまなDSSモードに対する1MHzウインドウ内のEMIエネルギ低減率をまとめる。
【0153】
【表4】
【0154】
以下の表5は、25MHzから400MHzの間の選択された周波数について、さまざまなDSSモードに対する1MHzウインドウ内のEMIエネルギ低減をdbでまとめる。
【0155】
【表5】
【0156】
以下の表6は、25MHzから400MHzの間の選択された周波数についての1MHzウインドウ範囲をまとめる。
【0157】
【表6】
【0158】
この発明はいくつかの実施例に関連して説明されたが、この発明は開示された実施例に限定されるものではなく、当業者には明らかなさまざまな変形が可能であることを理解されたい。たとえば、この開示を鑑み、当業者は、他のクロック移相器、遅延線、出力発生器、コントローラ、位相検出器などを規定し、これらの代替的な特徴を用いて、この発明の原理に従う方法、回路またはシステムを作製することができる。したがって、この発明は添付の請求項によってのみ限定されるものである。
【図面の簡単な説明】
【図1】従来の遅延ロックループを用いるシステムのブロック図である。
【図2A】図1のシステムのためのタイミング図である。
【図2B】図1のシステムのためのタイミング図である。
【図2C】図1のシステムのためのタイミング図である。
【図3】この発明に従う遅延ロックループの実施例を用いるシステムのブロック図である。
【図4】図3の遅延ロックループのためのタイミング図である。
【図5】この発明の1つの実施例に従って用いられるようなロックウインドウの図である。
【図6】この発明に従うクロック移相器の実施例のブロック図である。
【図7】この発明に従うクロック移相器の別の実施例のブロック図である。
【図8】この発明に従う出力発生器のブロック図である。
【図9】この発明に従うコントローラの実施例のステートダイアグラムである。
【図10】この発明に従う遅延ロックループの別の実施例を用いるシステムのブロック図である。
【図11】この発明の別の実施例に従う、図3の遅延ロックループの代わりに用い得る遅延ロックループのブロック図である。
【図12】図7のクロック移相器中の遅延線の選択されたセクションに対するタップ/トリム遅延を図示する概略図である。
【図13】この発明の1つの実施例に従うデジタル移相器のブロック図である。
【図14A】図11の遅延ロックループの第1の固定モードについて、基準クロック信号およびスキュークロック信号をそれぞれ示す波形図である。
【図14B】図11の遅延ロックループの第2の固定モードについて、基準クロック信号およびスキュークロック信号をそれぞれ示す波形図である。
【図14C】図11の遅延ロックループの第1および第2の可変モードについて、基準クロック信号およびスキュークロック信号を示す波形図である。
【図15】図13の移相制御論理をより詳細に図示するブロック図である。
【図16】この発明の別の実施例に従うデジタルスペクトル拡散(DSS)回路のブロック図である。
【図17A】図16のDSS回路のDSSバイパスモードを図示するグラフの図である。
【図17B】図16のDSS回路のスペクトル拡散モードを図示するグラフの図である。
【図18】この発明の1つの実施例に従う、図16のDSS回路の回路図である。
【図19A】図16のDSS回路が8拡散構成を実現するように制御されるときに生じる基準クロック信号およびスキュークロック信号を図示する波形図である。
【図19B】図16のDSS回路が8拡散構成を実現するように制御されるときに生じる基準クロック信号およびスキュークロック信号を図示する波形図である。
【発明の分野】
この発明はデジタルエレクトロニクスのための遅延ロックループ(DLL)に関する。より特定的には、この発明は、広い周波数範囲にわたってクロック信号をロックすることができるDLLに関する。
【0002】
【発明の背景】
ボードレベルシステムおよびチップレベルシステムを含む同期デジタルシステムは、1つ以上のクロック信号により、システムにわたって素子を同期させる。典型的に、1つ以上のクロック信号は、システムにわたり1つ以上のクロック線上に分散される。しかしながら、クロックバッファ遅延、重い負荷のクロック線の高容量および伝播遅延などのさまざまな問題のために、システムの異なる部分のクロック信号の立上がりエッジが同期しないことがある。システムのある部分の立上がり(または立下がり)エッジとシステムの別の部分の対応の立上がり(または立下がり)エッジとの間の時間差を「クロックスキュー」と称する。
【0003】
クロックスキューはデジタルシステムを誤動作させる可能性がある。たとえば、デジタルシステム中の回路は、第2のフリップフロップ入力を駆動する第1のフリップフロップ出力を有するのが一般的である。両フリップフロップのクロック入力上に同期したクロックがある場合、第1のフリップフロップ中のデータは連続して第2のフリップフロップにクロッキングされる。しかしながら、第2のフリップフロップ上のアクティブエッジがクロックスキュー分だけ遅延されると、第2のフリップフロップは、第1のフリップフロップが状態を変更する前に第1のフリップフロップからのデータを取込まないことがある。
【0004】
クロックスキューを最小化するため、デジタルシステムでは遅延ロックループを用いる。遅延ロックループは典型的に遅延素子を用い、システムの1つの部分での基準クロック信号のアクティブエッジをシステムの第2の部分からのフィードバッククロック信号と同期させる。図1は、論理回路190に結合された従来の遅延ロックループ100のブロック図である。遅延線110および位相検出器120を含む遅延ロックループ100は、基準クロック信号REF_CLKを受け、かつ、出力クロック信号O_CLKを駆動する。
【0005】
遅延線110は、出力クロック信号O_CLKを与える前に、可変伝播遅延Dだけ基準クロック信号REF_CLKを遅延する。したがって、出力クロック信号O_CLKの各クロックエッジは、基準クロック信号REF_CLKの対応のクロックエッジよりも伝播遅延Dだけ遅れている(図2A参照)。位相検出器120は後述のように遅延線110を制御する。遅延線110は、最小伝播遅延D_MINおよび最大伝播遅延D_MAXを発生することができる。
【0006】
出力クロック信号O_CLKが論理回路190に達する前に、出力クロック信号O_CLKはクロックスキュー180だけスキューする。クロックスキュー180は、さまざまなクロックバッファ(図示せず)における遅延または(たとえばクロック信号線に対する重い負荷による)出力クロック信号O_CLKを搬送するクロック信号線上の伝播遅延によって引起こされ得る。出力クロック信号O_CLKとスキューされた出力クロック信号O_CLKとを区別するため、スキューされた方の信号をスキュークロック信号S_CLKと称する。スキュークロック信号S_CLKは、論理回路190内のクロックされた回路のクロック入力端子(図示せず)を駆動する。また、スキュークロック信号S_CLKはフィードバック経路170上を介して伝搬され、遅延ロックループ100に戻される。典型的に、フィードバック経路170は、特に、スキュークロック信号S_CLKの遅延ロックループ110への伝送専用である。したがって、フィードバック経路170上のいかなる伝播遅延も最小限のものであり、無視できるほどのスキューしか生じない。
【0007】
図2Aは、基準クロック信号REF_CLK、出力クロック信号O_CLKおよびスキュークロック信号S_CLKのタイミング図を示す。すべての3つのクロック信号は同じ周波数F(図示せず)および周期Pを有し、すべてアクティブハイである(すなわち、立上がりエッジがアクティブエッジである)。出力クロック信号O_CLKは伝播遅延Dだけ遅延されるので、出力クロック信号O_CLKのクロックエッジ220は、基準クロック信号REF_CLKの対応のクロックエッジ210に対して伝播遅延Dだけ遅れている。同様に、スキュークロック信号S_CLKのクロックエッジ230は、出力クロック信号O_CLKの対応のクロックエッジ220に対して伝播遅延SKEWだけ遅れている。なお、伝播遅延SKEWはクロックスキュー180(図1)によって生じる伝播遅延である。したがって、スキュークロック信号S_CLKのクロックエッジ230は、基準クロック信号REF_CLKのクロックエッジ210に対して、伝播遅延D+伝播遅延SKEWに等しい伝播遅延DSKEWだけ遅れている。
【0008】
遅延ロックループ100は、遅延線110を制御することによって伝播遅延Dを制御する。しかしながら、遅延線110は負の遅延を発生することはできない。したがって、クロックエッジ230をクロックエッジ210に同期することはできない。幸いに、クロック信号は周期的な信号である。したがって、遅延ロックループ100は、スキュークロック信号S_CLKのクロックエッジ240が基準クロック信号REF_CLKのクロックエッジ210と同期するように、出力クロック信号O_CLKをさらに遅延させることにより、基準クロック信号REF_CLKとスキュークロック信号S_CLKとを同期させることができる。図2Bに示されるように、伝播遅延Dは、伝播遅延DSKEWが周期Pに等しくなるように調節される。具体的には、伝播遅延Dが周期P−伝播遅延SKEWと等しくなるまで伝播遅延Dを増大させるように遅延線110を調整する。伝播遅延DSKEWを周期Pの任意の倍数に増大して同期を達成することができるが、大部分の遅延ロックループは、そのような大きな伝播遅延を発生可能な遅延線を含まない。
【0009】
位相検出器120(図1)は遅延線110を制御して伝播遅延Dを調整する。遅延ロックループ100の実際の制御メカニズムは異なり得る。たとえば、1つのタイプの遅延ロックループ100では、遅延線110は、電源投入またはリセットの後、最小伝播遅延D_MINと等しい伝播遅延Dで始動する。位相検出器110は次に、基準クロック信号REF_CLKがスキュークロック信号S_CLKと同期するまで伝播遅延Dを増大させる。別のシステムでは、遅延ロックループ100は、電源投入またはリセットの後、最小伝播遅延D_MINと最大伝播遅延D_MAXとの平均と等しい伝播遅延Dで始動する。次に位相検出器120は、基準クロック信号REF_CLKとスキュークロック信号S_CLKとを同期させるために、伝播遅延Dを増大するかまたは減少するか(またはそのいずれも行なわない)を定める。たとえば、位相検出器120は、図2Aに示されるクロック信号に対しては伝播遅延Dを増大させる。しかしながら、位相検出器120は、図2Cに示されるクロック信号に対しては伝播遅延Dを減少させる。
【0010】
図2Cでは、スキュークロック信号S_CLKは基準クロック信号REF_CLKより「遅れている」と言われる。なぜなら、基準クロック信号REF_CLKの立上がりエッジとスキュークロック信号S_CLKの次の立上がりエッジとの間の時間が、スキュークロック信号S_CLKの立上がりエッジと基準クロック信号REF_CLKの次の立上がりエッジとの間の時間よりも小さいからである。しかしながら、図2Aでは、基準クロック信号REF_CLKがスキュークロック信号S_CLKよりも「遅れている」と言われる。なぜなら、スキュークロック信号S_CLKの立上がりエッジと基準クロック信号REF_CLKの次の立上がりエッジとの間の時間が、基準クロック信号REF_CLKの立上がりエッジとスキュークロック信号S_CLKの次の立上がりクロックエッジとの間の時間よりも小さいからである。これに代えて、図2Aでは、スキュークロック信号S_CLKが基準クロック信号REF_CLKよりも「進んでいる」と言える。
【0011】
基準クロック信号REF_CLKとスキュークロック信号S_CLKとを同期した後、遅延ロックループ100は、基準クロック信号REF_CLKおよびスキュークロック信号S_CLKをモニタし、かつ、伝播遅延Dを調節して同期を維持する。たとえば、おそらくは温度の上昇によって伝播遅延SKEWが増大すると、遅延ロックループ100は伝播遅延Dを減少させて補償しなければならない。これに対し、おそらくは温度の低下により伝播遅延SKEWが減少すると、遅延ロックループ100は伝播遅延Dを増大させて補償しなければならない。遅延ロックループ100が基準クロック信号REF_CLKとスキュークロック信号S_CLKとをまず同期させようとしている時間をロック獲得と称する。遅延ロックループ100が同期を維持しようとしている時間をロック維持と称する。ロック獲得の終わり、すなわち同期が最初に確立するときの伝播遅延Dの値を初期伝播遅延IDと称する。
【0012】
しかしながら、上述のように、遅延線110は、最小伝播遅延D_MINと最大伝播遅延D_MAXとの間の伝播遅延を与えることしかできない。ロック維持の間、同期を維持するのに最小伝播遅延D_MINよりも小さな伝播遅延Dが必要である場合、遅延ロックループ100は同期を失うことがある。同様に、同期を維持するために最大伝播遅延D_MAXよりも大きな伝播遅延Dが必要な場合、同期を失い得る。
【0013】
たとえば、遅延ロックループ100を用いるシステムが非常に高温にある際にロック獲得が起こると、遅延ロックループ100は非常に小さな初期伝播遅延IDで同期を達成する傾向がある。なぜなら、伝播遅延SKEWは周期Pに対して大きくなりやすいからである。システムの温度がさらに上昇すると、伝播遅延SKEWは、伝播遅延SKEW+最小伝播遅延D_MINが周期Pよりも大きくなる点まで増加する傾向がある。この状況では、遅延ロックループ100は再びロック獲得を経なければならず、このために、出力クロック信号O_CLKにグリッチおよびノイズが導入されることがあり、これが次にスキュークロック信号S_CLKにグリッチおよびノイズを生じてしまう。微妙なシステムにとってそのようなグリッチは許容不可能である。さらに、複数のクロック周波数で動作するように設計されたシステムにとっては、低周波動作は、クロック周期Pが非常に長いために問題を複雑にしがちである。長いクロック周期のために伝播遅延Dがより広い時間間隔にわたって変化してしまうことがある。したがって、広範囲のクロック周波数および極端な環境に対して同期を維持することができる遅延ロックループの必要性が存在する。
【0014】
さらに、従来の遅延ロックループ回路は、基準クロック信号REF_CLKとスキュークロック信号S_CLKとの正確な同期を与えている。基準クロック信号REF_CLKに対して比較的少量だけ正確にシフトされるスキュークロック信号S_CLKを与えることができる遅延ロックループ回路を有することが望ましい。そのような遅延ロックループ回路が進みと遅れの関係の両方を与えることができれば、さらに望ましい。そのような遅延ロックループ回路は、論理回路におけるクロック位相の正確な制御を可能にする。そのような制御により、たとえば、より正確なタイミングバジェットの割当が可能になり、これにより、同期デジタルシステムがより高速で動作することが可能になる。
【0015】
遅延ロックループ回路100は、REF_CLK信号に応答して、単一の周波数を有するS_CLK信号を与える。たとえば、S_CLK信号は100MHzの周波数を有し得る。連邦通信委員会(FCC)は、テストされるシステムの特徴に依存する特定の周波数帯域内でチップが放出し得る電磁エネルギに対して制限を設けている。1つのそのような測定法は1MHz帯域ウインドウを用いる。S_CLK信号が放出するエネルギのすべては単一の周波数に存在するため、全エネルギもそのようなウインドウ内に存在する。したがって、準拠のためには、FCCの制限に違反するシステムに特殊な技術を用いる必要がある。従来の準拠技術には、スタンドアロン(すなわちオフチップ)スペクトル拡散クロック発振器および放射構成要素のまわりの金属シールドの使用が含まれる。
【0016】
したがって、遅延ロックループ100の電磁放出制限を克服するクロック信号を有することが望ましい。
【0017】
【発明の概要】
この発明は、ロックウインドウ内に初期伝播遅延を有する遅延線を用いて基準クロック信号とスキュークロック信号とを同期させる遅延ロックループを提供する。ロックウインドウは、伝播遅延の最小遅延と最大伝播遅延との間の期間である。ロックウインドウの大きさは、遅延線の伝播遅延を変更することによって環境条件またはクロック周波数の変化が補償される場合に同期が失われないのを確実にするように選ばれる。この発明の1つの実施例に従う遅延ロックループは、遅延線だけでなくクロック移相器を組み入れて基準クロックを同期させる。クロック移相器によってもたらされる柔軟性の増大により、遅延ロックループが動作する周波数範囲が増大する。
【0018】
遅延線は、遅延ロックループの基準入力端子から基準クロック信号を受ける。遅延線の出力(すなわち遅延されたクロック信号)は、1つ以上の移相クロック信号を生成可能なクロック移相器に与えられる。出力発生器は、遅延されたクロック信号および1つ以上の移相されたクロック信号を受ける。出力発生器は、出力端子上に出力クロック信号として、クロック信号のうち1つを与える。位相検出器は基準クロック信号と遅延ロックループのフィードバック入力端子で受けるスキュークロック信号とを比較し、遅延線の伝播遅延を増大させるかまたは減少させるかを定めて基準クロック信号とスキュークロック信号とを同期する。
【0019】
クロック移相器の1つの実施例は、N−1個の移相クロック信号を生成する。移相クロック信号の各々は、他のN−2個のクロック信号および遅延されたクロック信号から360/N°だけ移相される。たとえば、クロック移相器が3つの移相クロック信号(すなわちNは4に等しい)を生成する場合、移相クロック信号は遅延クロック信号から90°、180°、および270°移相される。クロック移相器は、N本の遅延線と位相検出器とを用いて実現可能である。
【0020】
遅延ロックループは、遅延線と出力発生器とを制御するコントローラを含み得る。この発明の1つの実施例では、コントローラは、出力クロックとして出力発生器に遅延クロック信号を駆動させる。コントローラは、遅延線の伝播遅延を初期遅延に調節することにより、基準クロック信号とスキュークロック信号とを同期させる。初期遅延がロックウインドウ内にない場合、コントローラは、出力発生器に出力信号としての第1の移相クロック信号を駆動させる。次にコントローラおよび移相器は、遅延線の伝播遅延を第2の初期遅延に調節することにより、基準クロック信号とスキュークロック信号とを同期させる。第2の初期遅延がロックウインドウ内にない場合、コントローラは、出力クロックとして出力発生器に第2の移相クロック信号を用いさせる。ロックウインドウ内の初期遅延が見出されるまで、コントローラはこの態様で続ける。
【0021】
この発明の別の実施例では、クロック移相器は基準クロック信号を受けるように結合される。クロック移相器は、基準クロック信号から移相される移相クロック信号を生成する。クロック移相器からの移相クロック信号の1つまたは基準クロック信号が遅延線の入力信号となるように選択される。遅延線はコントローラおよび位相検出器によって制御されて入力クロック信号を遅延し、スキュークロック信号と基準クロック信号とを同期する。
【0022】
遅延ロックループが基準クロック信号とスキュークロック信号とを同期させた後、デジタル移相器を用いて基準クロック信号に対して少量だけスキュークロック信号をシフトすることができる。1つの実施例に従うと、クロック移相器中の遅延線のタップ設定およびより細かなトリミング設定がデジタル移相器に伝送され、それにより、デジタル移相器に基準クロック信号の周期を知らせる。応答して、デジタル移相器は、基準クロック信号またはスキュークロック信号のいずれかに、基準クロック信号の周期を基準とする遅延を導入する位相制御信号を与える。位相制御信号は基準クロック信号の周期の分数に比例する。1つの実施例では、基準クロック信号の周期はクロック移相器の遅延線のタップ/トリム設定から定められる。遅延線は、たとえば、512のタップ/トリム単位を有し得る。位相制御信号は、クロック移相器中の遅延線が用いるのと同等のタップ/トリム単位を分数で乗算することによって定められる。分数は、FPGAに記憶されるコンフィギュレーションメモリビットの内容またはユーザが規定する信号によって定めることができる。
【0023】
デジタル移相器は、2つの固定モードのうち1つまたは2つの可変モードのうち1つで動作するように制御され得る。第1の固定モードでは、デジタル移相器はスキュークロック信号に遅延を導入する。たとえば、第1の固定モードで、デジタル移相器は0から511タップ/トリム単位の範囲の遅延をスキュークロック信号に導入し得る。第2の固定モードでは、デジタル移相器は基準クロック信号に遅延を導入する。たとえば、第2の固定モードで、デジタル移相器は0から511タップ/トリム単位の範囲の遅延を基準クロック信号に導入し得る。第1の可変モードでは、デジタル移相器は、255から−255タップ/トリム単位に等しい遅延を基準クロック信号に導入し得る。第2の可変モードでは、デジタル移相器は、255から−255タップ/トリム単位に等しい遅延をスキュークロック信号に導入し得る。
【0024】
別の実施例に従うと、デジタル移相器は、低周波モードまたは高周波モードで動作することができる。デジタル移相器は、クロック移相器の遅延線が与えるタップ/トリム設定を調節して、低周波モードおよび高周波モードでクロック移相器が遭遇する異なるオーバーヘッド遅延を補償するように制御される。
【0025】
この発明のまた別の実施例では、スキュークロック信号の周波数は基本周波数付近でディザーされ得るので、多くの場合にこのクロック信号が電磁放出に対するFCCの要件に準拠するようになる。すなわち、連続する周期においてスキュークロック信号が僅かに異なる周波数を呈するように遅延を導入することができる。たとえば、100MHzのクロック信号の周波数は、異なる周期の間に、約98、98.5、99、99.5、100、100.5、101、101.5および102MHzの周波数を有するように調節可能である。この構成は、100MHzの基本周波数に加えて8つの周波数が生成されるため、「8拡散」構成と称される。1MHzウインドウ測定法について、周波数は0.5MHz単位で拡散されるため、ウインドウの中には9つの周波数のうち3つしか含まれない。その結果、クロック信号がFCCの電磁放出要件を満たすか否かを判断する際に、クロック信号のエネルギの2/3は含まれない。基本周波数の上下に周波数を規則的に拡散することにより、クロック信号の平均周波数は基本周波数と等しくなる。この発明に従うと、2拡散、4拡散および6拡散構成を含むが、それらに限られない他の構成を実現することができる。
【0026】
好ましい実施例では、クロック周波数はデジタルスペクトル拡散(DSS)回路によって生成される。これは、デジタル移相器とともに動作してスキュークロック信号に小さな遅延を挿入するものである。デジタル移相器遅延はその開始点に対して上下に調節可能でなければならないため、典型的に、デジタル移相器の可変モードはDSS回路と関連して用いられる。1つの実施例に従うと、DSS回路は特定のパターンのデジタルタップ/トリム調節を施してデジタル移相器の動作を最適化する。
【0027】
別の実施例では、デジタル移相器とは独立して、拡散スペクトル生成をうまく実現するのに必要なデジタルタップ/トリム調節のパターンおよび/またはDSS回路を従来の遅延線とともに用いることができる。
【0028】
この発明は以下の説明および図面を参照してより十分に理解されるであろう。
【0029】
【図面の詳細な説明】
図3は、この発明の1つの実施例に従う遅延ロックループ300を用いるシステムのブロック図である。遅延ロックループ300は、遅延線310、クロック移相器350、コントローラ330、出力発生器340および位相検出器320を含む。遅延ロックループ300は、基準入力端子302で基準クロック信号REF_CLKを受け、出力端子304に出力クロック信号O_CLKを生成する。図1について上述されたように、出力クロック信号O_CLKはクロックスキュー180によってスキューされてスキュークロック信号S_CLKとなり、これが論理回路190をクロックする。また、スキュークロック信号S_CLKは、フィードバック経路170を遅延ロックループ300のフィードバック端子306に戻される。
【0030】
遅延ロックループ300内で、基準クロック信号REF_CLKは遅延線310によって遅延され、遅延クロック信号D_CLKを生成する。遅延クロック信号D_CLKは、遅延線310でクロック信号REF_CLKから伝播遅延Dだけ遅延される。遅延ロックループ300の1つの実施例は、上記に参照される、「グレイコードマルチプレクサを用いるグリッチレス遅延線」(“Glitchless Delay Line Using Gray Code Multiplexer”)と題された、米国特許出願連続番号第09/102,704号に記載の調節可能遅延線を用いる。しかしながら、他の調節可能遅延線も遅延ロックループ300に用いることができる。遅延クロック信号D_CLKは、クロック移相器350の入力端子および出力発生器340の入力端子に与えられる。
【0031】
クロック移相器350は1つ以上の移相クロック信号P_CLK_1からP_CLK_N−1を生成する。ここでNは正の整数である。1つの実施例では、移相クロック信号P_CLK_1は遅延クロック信号D_CLKから360/N°だけ移相される。移相クロック信号P_CLK_2は2*(360/N)°だけ移相される。移相クロック信号P_CLK_N−1は(N−1)*(360/N)°だけ移相される。したがって、一般的に、移相クロック信号P_CLK_ZはZ*(360/N)だけ移相される。ここでZは1以上(N−1)以下の整数である。遅延クロック信号D_CLKはそれ自身から0°移相を有するため、遅延クロック信号D_CLKは移相クロック信号P_CLK_0と考えることができる。さらに、遅延ロックループ300のいくつかの実施例では、クロック移相器350は、遅延クロック信号D_CLKと同じ位相および周波数を有する移相信号P_CLK_Nを生成する。
【0032】
したがって、Nが4と等しい場合のクロック移相器350の実施例では、移相クロック信号P_CLK_1は、遅延クロック信号D_CLKから90°移相される。このことから、移相クロック信号P_CLK_2は遅延クロック信号D_CLKから180°移相され、移相クロック信号P_CLK_3は遅延クロック信号D_CLKから270°移相されることが論理的にわかる。しかしながら、この発明の原理は、移相クロック信号間で他のパターンの移相を用いるクロック移相器350の他の実施例にも好適である。
【0033】
移相はクロック信号の周波数領域における概念である。時間領域において移相と同等であるのはクロック信号を遅延させることである。具体的に、第1のクロック信号が第2のクロック信号からX°だけ移相されると、第1のクロック信号はX*(P/360)だけ遅延される。ここで、Pは第1および第2のクロック信号の周期である。したがって、移相クロック信号P_CLK_1が遅延クロック信号D_CLKから90°移相されると、移相クロック信号P_CLK_1は遅延クロック信号D_CLKの周期の4分の1だけ遅延される。移相によって生じる遅延と他の伝播遅延とを区別するため、移相による遅延を移送遅延P_D_Zと称する。移相クロック信号P_CLK_ZはZ*(360/N)°だけ移相されるので、移相クロック信号P_CLK_ZはZ*(P/N)に等しい移送遅延P_D_Zを有する。ここで、Zは1以上(N−1)以下の整数である。
【0034】
図4は、Nが4と等しい場合の遅延ロックループ300(図3)のタイミング図である。具体的に、クロック移相器350は、遅延クロック信号D_CLKと90°位相がずれた移相クロック信号P_CLK_1を生成する。したがって、移相クロック信号P_CLK_1はクロック周期Pの4分の1だけ遅延される。クロック移相器350は、遅延クロック信号D_CLKと180°位相がずれた移相クロック信号P_CLK_2を生成する。したがって、移相クロック信号P_CLK_2はクロック周期Pの2分の1だけ遅延される。最後に、クロック移相器350は、遅延クロック信号D_CLKから270°位相がずれた移相クロック信号P_CLK_3を生成する。したがって、移相クロック信号P_CLK_3はクロック周期Pの4分の3だけ遅延される。
【0035】
図3に戻って、クロック移相器350は、移相クロック信号を出力発生器340のさまざまな入力端子に与える。遅延ロックループ300のいくつかの実施例では、クロック移相器350は、オプションのコンフィギュレーションバス360上の1つ以上のコンフィギュレーション信号CFGを用いて構成され得る。コンフィギュレーション信号CFGによって構成されるクロック移相器350の実施例が、図7について以下に記載される。コンフィギュレーション信号CFGはコンフィギュレーション端子308で受けられ、コンフィギュレーションバス360によりクロック移相器350およびコントローラ330に伝達される。出力発生器340は遅延クロック信号D_CLKまたは移相クロック信号のうち1つのいずれかを選択して出力クロック信号O_CLKとして与える。クロック移相器350が移相クロック信号P_CLK_Nを与える遅延ロックループ300の実施例について、出力発生器340は、遅延クロック信号D_CLKの代わりに移相クロック信号P_CLK_Nを用いることができる。コントローラ330は出力発生器340を制御する。
【0036】
コントローラ330は、位相検出器320から、基準クロック信号REF_CLKおよびスキュークロック信号S_CLKに関する位相情報を受ける。具体的に、位相検出器320は、基準クロック信号REF_CLKとスキュークロック信号S_CLKとの同期を達成するために遅延線310からの伝播遅延Dを増大させるべきかまたは減少させるべきかをコントローラ330に知らせる。伝播遅延Dを増大させるかまたは減少させるかを判断するのみである位相検出器320の実施例については、ジッタフィルタ(図示せず)を用いてクロックジッタを低減することができる。1つの実施例では、ジッタフィルタは、伝播遅延Dを減少すべき場合には1だけ減分し、伝播遅延Dを増大すべき場合には1だけ増分するアップ/ダウンカウンタ(図示せず)である。しかしながら、アップ/ダウンカウンタが0または他の予め定められた数に達するまでは伝播遅延Dは調節されない。伝播遅延Dが調節されると、アップ/ダウンカウンタは最大値の2分の1にリセットされる。他の実施例では、位相検出器320は、伝播遅延Dを増大または減少させるべき量を計算する。ロック獲得の間、コントローラ330は、伝播遅延Dの初期伝播遅延IDがロックウインドウW内に存在するように、スキュークロック信号S_CLKと基準クロック信号REF_CLKとを同期させようとする。
【0037】
図5はロックウインドウWの概念を図示する。上述のように、伝播遅延Dは、最小伝播遅延D_MINと最大伝播遅延D_MAXとの間になければならない。D_MINおよびD_MAXの典型的な値はそれぞれ3.2ナノ秒および46.8ナノ秒である。ロック獲得の間、コントローラ330は、伝播遅延Dの初期伝播遅延IDが確実にロックウインドウW内にあるようにする。具体的に、最初に同期が確立されるとき、初期伝播遅延IDはロックウインドウ最小値W_MINとロックウインドウ最大値W_MAXとの間になければならない。ロックウインドウWの限界は、遅延ロックループ300が一旦ロック獲得を完了すると、遅延ロックループ300を含むシステムがシステムの設計ガイドライン内で動作する限りは遅延ロックループ300が同期を維持できるのを保証するように設定される。
【0038】
たとえば、遅延ロックループ300を含むシステムは、一般的に、動作条件の範囲において動作することができる。動作条件の範囲は、伝播遅延値SKEW_MAXで伝播遅延SKEWが最大となる最大極限条件を含む。同様に、動作条件の範囲は、伝播遅延値SKEW_MINで伝播遅延SKEWが最小となる最小極限条件も含む。したがって、システムの動作の間の伝播遅延SKEWの最大変化(DELTA_SKEW)は、伝播遅延値SKEW_MAX−伝播遅延値SKEW_MINと等しい(すなわち、DELTA_SKEW=SKEW_MAX−SKEW_MIN)。ロック維持の間の最大限の保護のため、ロックウインドウ最小値W_MINは、最小伝播遅延D_MIN+DELTA_SKEWと等しいものであり得る。同様に、ロックウインドウ最大値W_MAXは、最大伝播遅延D_MAX−DELTA_SKEWと等しいものであり得る。この発明の1つの実施例では、ロックウインドウ最小値W_MINは最大伝播遅延D_MAXの約16.5%と等しく、ロックウインドウ最大値W_MAXは最大伝播遅延D_MAXの約67.8%と等しい。
【0039】
図1を参照して上述されたように、従来の遅延ロックループについて、スキュークロック信号S_CLKと基準クロック信号REF_CLKとの同期は、伝播遅延Dと伝播遅延SKEWとを加算すると周期Pの倍数に等しくなる場合に達成される。式の形では次のとおりである。
【0040】
D+SKEW=MULT(P) (1)
ここでMULT(P)はPの倍数を指す。通常は、SKEWよりも大きいPの最小倍数が用いられる。
【0041】
遅延ロックループ300では、コントローラ330は移相クロック信号からの遅延も用い得る。こうして遅延ロックループ300は、伝播遅延Dと、移相クロック信号からの移相遅延P_Dと、伝播遅延SKEWとを加算して周期Pの倍数になれば、同期を達成することができる。式の形では以下のとおりである。
【0042】
D+P_D_Z+SKEW=MULT(P) (2)
ここで、P_D_Zは、移相クロック信号P_CLK_Zからの移相遅延を指す。通常は、伝播遅延SKEWよりも大きなPの最小倍数に移相遅延P_D_Zを加算したものが用いられる。図3を参照して上で説明したように、クロック移相器350の一実施例においては、移相クロック信号P_CLK_Zの移相遅延P_D_ZはZ*(P/N)に等しい。ここで、Zは0以上(N−1)以下の整数である。もしZが0に等しければ、コントローラ330は出力発生器340に出力クロック信号O_CLKとして遅延クロック信号D_CLKを使用させる。こうして、移相遅延P_D_0は0に等しい。
【0043】
わかりやすくするために、もし出力発生器340が出力クロック信号O_CLKに遅延クロック信号D_CLKを用いるのであれば、初期遅延IDを初期遅延ID_0と呼ぶことができる。同様に、もし出力発生器340が出力クロック信号O_CLKとして移相クロック信号P_CLK_Zを用いるのであれば、初期遅延IDを初期遅延ID_Zと呼ぶことができる。ここで、Zは1以上(N−1)以下の正の整数である。こうして、ロック獲得の最後に、式(2)は次のように書換えることができる。
【0044】
ID_Z+P_D_Z+SKEW=MULT(P) (3)
式(3)を再構成すると、以下のとおりである。
【0045】
ID_Z=MULT(P)−SKEW−P_D_Z (4)
Z*(P/N)をP_D_Zに代入すると、以下のとおりである。
【0046】
ID_Z=MULT(P)−SKEW−Z*(P/N) (5)
通常、正の初期遅延ID_ZをもたらすPの最小倍数が用いられる。初期遅延ID_Zが最小伝播遅延D_MINよりも小さいか、または、最大伝播遅延D_MAXよりも大きい場合、遅延ロックループ300は移相クロック信号P_CLK_Zを用いてスキュークロック信号S_CLKと基準クロック信号REF_CLKとを同期させることができない。
【0047】
コントローラ330は、出力クロック信号O_CLKを駆動するために移相クロック信号P_CLK_Zの任意の1つを選択できるので、コントローラ330はN個の初期遅延値から選択することができる。可能な初期遅延値の範囲は、最小オフセット値(MULT(P)−SKEW)から最大値(MULT(P)−SKEW)+(N−1)/N*周期P)にわたる。各初期遅延値間の差は、周期PをNで除算したものである。たとえば、もしNが4に等しく、周期Pが40ナノ秒に等しく、かつ、伝播遅延SKEWが25ナノ秒に等しければ、初期遅延ID_0、ID_1、ID_2およびID_3は、それぞれ15ナノ秒、5ナノ秒、35ナノ秒および25ナノ秒に等しい(式(5)を用いて計算する)。もしNが4に等しく、周期Pが40ナノ秒に等しく、かつ、伝播遅延SKEWが55ナノ秒に等しければ、初期遅延ID_0、ID_1、ID_2およびID_3はそれぞれ25ナノ秒、15ナノ秒、5ナノ秒および35ナノ秒に等しい。こうして、コントローラ330は、ロックウインドウW内に1つ以上の初期値遅延値を見出し得る。もし1つ以上の初期遅延がロックウインドウW内にあれば、コントローラ330はロックウインドウW内の初期遅延値の任意の1つを選択し得る。
【0048】
コントローラ330のいくつかの実施例は、上述の計算を行なって、どの移相クロック信号P_CLK_Zを用いるかを決定し得る。しかしながら、他の実施例は、試行錯誤を用いて、どの移相クロック信号P_CLK_Zを用いるかを決定する。コントローラ330の試行錯誤を用いる実施例は、図9を参照して後述する。
【0049】
図6は、図3のクロック移相器350の一実施例を示す。図6におけるクロック移相器350の実施例は、位相検出器620と、複数の遅延線610_1から610_Nとを含む。遅延線610_1から610_Nは直列に結合される。遅延線610_1の入力端子は、遅延クロック信号D_CLK(図3)のような入力クロック信号を受ける。遅延線610_Nの出力端子は、位相検出器620の入力端子に結合される。位相検出器620は、別の入力端子で入力クロック信号D_CLKも受ける。位相検出器620は、制御線625を介してすべての遅延線を並行して制御し、各遅延線は、同じ量の伝播遅延をもたらす。したがって、遅延線610_Nの出力端子上のクロック信号P_CLK−Nと入力クロック信号D_CLKとは同期される、すなわち、同位相である。さらに、位相検出器620は、遅延線610_1から610_Nによって生成された伝播遅延の合計を、入力信号の1周期Pと等しくさせる。こうして、各遅延線はP/Nの伝播遅延をもたらす。こうして、遅延線610_1の出力端子は、入力クロック信号からP/Nだけ遅延されるクロック信号を与えるのに対し、遅延線610_2の出力端子は、入力クロック信号から2*P/Nだけ遅延されるクロック信号を与える。一般的に、遅延線610_Zの出力端子は、入力クロック信号からZ*P/Nだけ遅延されたクロック信号を与える。ここでZは1以上N−1以下の整数である。したがって、もし入力クロック信号が遅延クロック信号D_CLKであれば、遅延線610_1から610_N−1の出力端子は、それぞれP_CLK_1からP_CLK_N−1の移相クロック信号をもたらす。クロック移相器350のいくつかの実施例は、遅延クロック信号D_CLKと同相であるクロック信号P_CLK_Nを遅延線610_Nの出力端子上に生成する。
【0050】
図7は、図3のクロック移相器350の構成可能な実施例を示す。特定的には、図7のクロック移相器は、第1のモードにおいて入力クロック信号に対して90°、180°および270°位相がずれている3つの移相クロック信号を生成するよう構成され得る。第2のモードにおいては、図7のクロック移相器は、入力クロック信号に対し180°位相がずれている単一の移相クロック信号を生成する。図7のクロック移相器は、位相検出器720、遅延線710_1、710_2、710_3および710_4、ならびに、マルチプレクサ730_1、730_2、730_3および730_4を含む。構成線740は、マルチプレクサ730_1から730_4の選択端子に結合される。
【0051】
遅延線710_1の入力端子は、遅延クロック信号D_CLK(図6)のような入力クロック信号を受けるように結合される。各遅延線710_Zの出力端子は、マルチプレクサ730_Zの論理1入力端子に結合される。ここでZは1以上3以下の整数である。各マルチプレクサ730_Zの出力端子は、遅延線710_Z+1の入力端子に結合される。ここでZは1以上3以下の整数である。マルチプレクサ730_4の出力端子は、位相検出器720の入力端子に結合される。マルチプレクサ730_1およびマルチプレクサ730_3の論理0入力端子は接地に結合される。しかしながら、マルチプレクサ730_2の論理0入力端子は、遅延線710_1の出力端子に結合される。同様に、マルチプレクサ730_4の論理0入力端子は、遅延線710_3の出力端子に結合される。位相検出器720はまた、別の入力端子で入力クロック信号D_CLKを受ける。位相検出器720は、位相検出器620について上述したように、遅延線710_1から710_4を並行に制御する。
【0052】
構成線740が論理1にされると、これは図7の実施例を第1のモードに入れ、遅延線710_1から710_4は直列に結合される。第1のモードにおいて、各遅延線はP/4の遅延をもたらす。こうして、もし入力クロック信号が遅延クロック信号D_CLKであれば、各マルチプレクサ730_Zの出力端子は移相クロック信号P_CLK_1、P_CLK_2およびP_CLK_3をもたらし得る。
【0053】
しかしながら、もし構成線740が論理0にされると、これは図7の実施例を第2のモードに入れ、遅延線710_1および遅延線710_3のみが直列に結合される。遅延線710_2および710_4の入力端子はマルチプレクサ730_1および730_3をそれぞれ介して接地に結合される。第2のモードにおいては、遅延線710_1および710_3は各々、P/2の遅延をもたらす。遅延線710_2および710_4の入力端子を接地に結合すると、消費電力とスイッチングノイズとが減じられる。しかしながら、第2のモードでは、図7の実施例は出力クロック信号を1つしか生成せず、これは入力クロック信号に対して180°位相がずれており、マルチプレクサ730_2の出力端子に生成される。
【0054】
図8は、図3の出力発生器340の一実施例を示す。図8の出力発生器は、N入力マルチプレクサ810を含む。N入力マルチプレクサ810は、810_0から810_N−1として参照されるN個の入力端子と、選択端子812と、出力端子814とを含む。図8の出力発生器340の実施例が図3の遅延ロックループ300で用いられる場合、選択端子812がコントローラ330に結合され、入力端子810_0は遅延クロック信号D_CLKを受けるよう結合され、出力端子814は出力クロック信号O_CLKをもたらし、かつ、入力端子810_1から810_N−1はそれぞれ移相クロック信号P_CLK_1からP_CLK_N−1を受けるよう結合される。選択端子812上の選択信号は、どの入力信号を出力端子814に与えるかを決定する。出力発生器340の他の実施例は、クロックバッファおよびクロック分周器のような、さらなる回路を含み得る。さらに、出力発生器340のいくつかの実施例は、さまざまなバージョンの移相クロック信号のような、さらなるクロック信号を駆動する。
【0055】
図9は、図3のコントローラ330の一実施例に対するステートダイアグラム900を示す。電源投入時またはリセット時に、コントローラ330はリセット段階910に遷移する。リセット段階910において、コントローラ330は位相カウンタ(図示せず)を0に設定し、これにより出力発生器340は出力クロック信号O_CLKとして遅延クロック信号D_CLKを与え、遅延線310の伝播遅延Dは開始遅延値に調節される(図3)。伝播遅延Dに対する開始遅延値は、たとえば、最小伝播遅延D_MIN、最大伝播遅延D_MAX、または、最小伝播遅延D_MINと最大伝播遅延D_MAXとの平均を含む。コントローラ910は次いで、ロック獲得段階920に遷移する。
【0056】
ロック獲得段階920において、コントローラ330は基準クロック信号REF_CLKとスキュークロック信号S_CLKとを同期させる。特定的には、コントローラ330は、位相検出器320からの信号に基づいて遅延線310の伝播遅延Dを調節する。位相検出器320は、スキュークロック信号S_CLKと基準クロック信号REF_CLKとを同期させるために伝播遅延Dを増大させるべきかまたは減少させるべきかを判断する。ロック獲得は、図3から図6を参照して上に詳細に説明される。したがって、その説明は繰返さない。いくつかの実施例においては、クロック移相器350はまた、電源投入/リセット信号によってリセットされる。これらの実施例のいくつかについては、コントローラ330は、クロック移相器350が移相クロック信号P_CLK_1からP_CLK_N−1を生成するまでは伝播遅延Dを調節しない。もしコントローラ330がスキュークロック信号S_CLKと基準クロック信号REF_CLKとを同期させることができなければ、コントローラ330は位相インクリメント段階950に遷移する。これは後に説明する。そうでない場合、コントローラ330は、コントローラ330がスキュークロック信号S_CLKと基準クロック信号REF_CLKとを(遅延線310における初期伝播遅延IDで)同期させた後に、チェックロックウインドウ段階930に遷移する。
【0057】
チェックロックウインドウ段階930において、コントローラ330は初期伝播遅延IDがロックウインドウW内にあるか否かを判断しなければならない。特定的には、伝播遅延IDがロックウインドウ最小W_MINよりも大きくかつロックウインドウ最大W_MAXよりも小さければ、伝播遅延IDはロックウインドウW内にある。初期伝播遅延IDがロックウインドウW内になければ、コントローラ330は位相インクリメント段階950に遷移する。そうでなければ、コントローラ330はロック維持段階940に遷移する。
【0058】
ロック維持段階940において、コントローラ330は、遅延線310の伝播遅延Dを調節して、スキュークロック信号S_CLKと基準クロック信号REF_CLKとの同期を維持する。ロック維持は上で詳細に説明される。したがって、その説明は繰返さない。上述のように、この発明は、システム環境条件全体にわたってロックを維持することができる。したがって、コントローラ330をリセット段階910に遷移させるリセットが発生しない限り、コントローラ330はロック維持段階940にとどまる。
【0059】
位相インクリメント段階950において、コントローラ330は位相カウンタを増分し、これにより出力発生器340は異なる移相クロック信号を選択する。さらに、コントローラ330は、遅延線310をリセットして、伝播遅延Dをリセット段階910で用いられた開始遅延値に戻す。コントローラ330は次いで、ロック獲得段階920に遷移して、上述のように続行する。
【0060】
図10は、遅延ロックループ300の別の実施例のブロック図である。図10の実施例は、図3の実施例について説明したのと同じ原理を用いる。しかしながら、図10の実施例においては、クロック移相器350は基準クロック信号REF_CLKを用いて移相クロック信号P_CLK_1からP_CLK_N−1を生成する。基準クロック信号REF_CLKおよび移相クロック信号P_CLK_1からP_CLK_N−1は入力セレクタ1040に結合される。入力セレクタ1040は、基準クロック信号REF_CLK、または移相クロック信号P_CLK_1からP_CLK_N−1のうちの1つを遅延線入力クロック信号DLI_CLKとして選択し、これを遅延線310の入力端子に与える。遅延線310は出力クロック信号O_CLKを駆動する。コントローラ1030は、位相検出器320が与えた位相情報に基づいて入力セレクタ1040と遅延線310とを制御し、それにより遅延線310は、スキュークロック信号S_CLKと基準クロック信号REF_CLKとを同期させる伝播遅延Dをもたらす。入力セレクタ1040は、出力発生器340と同様の回路設計を用いて実現され得る。
【0061】
この発明のさまざまな実施例では、遅延ロックループに対する新たな構造を記載する。クロック移相器を用いてクロック信号の周期に比例する伝播遅延を与えることにより、この発明は、ロック獲得の際の初期伝播遅延のクロック信号制御を提供することができる。ロックウインドウ内の初期伝播遅延のみを受け入れることにより、この発明は、この発明を用いるシステムの環境条件の全範囲にわたりクロック信号の同期を維持することができる。さらに、クロック移相器はクロック信号の周期に比例する伝播遅延を与えるので、この発明は、高周波および低周波クロック信号の両者を用いるシステムに適用可能である。さらに、この発明の遅延ロックループは、FPGA、DSPチップまたはマイクロプロセッサなどの、単一のシリコンチップ上に完全に組み込み可能な純デジタル回路によって実現可能である。
【0062】
図11は、この発明の別の実施例に従う、遅延ロックループ300の代わりに使用可能な遅延ロックループ400のブロック図である。遅延ロックループ400(図11)は遅延ロックループ300(図3)と同様であるので、図3および図11の同じ要素を同じ参照番号で標識付ける。したがって、遅延ロックループ400は、遅延線310、位相検出器320、コントローラ330、出力発生器340およびクロック移相器350を含む。さらに、遅延ロックループ400はデジタル移相器1100を含む。これは、スキュークロック信号S_CLKが基準クロック信号REF_CLKよりも進んでいるまたは遅れる関係を有するのを可能にする。
【0063】
遅延ロックループ400内では、基準クロック信号REF_CLKとスキュークロック信号S_CLKとの両者はデジタル移相器1100の入力端子に与えられる。応答して、デジタル移相器1100は、移相基準クロック信号PS_REF_CLKと、移相フィードバッククロック信号PS_S_CLKとを与える。移相基準クロック信号PS_REF_CLKは、遅延線310および位相検出器320の入力端子に与えられる。したがって、遅延ロックループ400のPS_REF_CLK信号は、遅延ロックループ300の基準クロック信号REF_CLKと同じ態様で伝達される。移相フィードバッククロック信号PS_S_CLKは位相検出器320の入力端子に与えられる。したがって、遅延ロックループ400のPS_S_CLK信号は、遅延ロックループ300のスキュークロック信号S_CLKと同じ態様で伝達される。
【0064】
より詳細に後述されるように、デジタル移相器1100は、REF_CLKとS_CLK信号との位相関係を調節してそれぞれPS_REF_CLKおよびPS_S_CLK信号を与える。その結果、S_CLK信号は、REF_CLK信号よりも進んだまたは遅れた位相関係を有するように制御され得る。
【0065】
記載の実施例では、クロック移相器350は、図7に図示された態様(すなわちN=4)で構成される。遅延線710_1、710_2、710_3および710_4の各々は、128タップ遅延とトリム遅延回路とを含む。トリム遅延回路は、タップ遅延間に最大3トリム遅延を加算するように制御され得る。したがって、遅延線710_3は、512(128+3*128)の可能なタップ/トリム遅延設定を有する。図12は、遅延線710_3の選択されたセクションに対するタップ/トリム遅延を図示する。タップ/トリム遅延を与えるための回路構成は、アンドルー・ケイ・パーシー(Andrew K. Percey)による、「グレイコードマルチプレクサを用いるグリッチレス遅延線」と題された、同一人に所有され同時係属中の米国特許出願連続番号第09/102,704号に記載されている。
【0066】
位相検出器720は、同じタップ/トリム設定(+/−1トリム遅延)を有するように遅延線710_1、710_2、710_3および710_4の各々を制御する。コンフィギュレーション信号CFGが論理「1」値を有する(すなわち、遅延ロックループ400が低周波モードで構成される)場合、遅延線710_1、710_2、710_3および710_4の4つがすべて直列に結合される。その結果、遅延線の各々のタップ/トリム設定が選択する遅延はD_CLK信号の約4分の1サイクルに相当する。
【0067】
同様に、コンフィギュレーション信号CFGが論理「0」値を有する(すなわち、遅延ロックループ400が高周波モードで構成される)場合、2つの遅延線710_1および710_3が直列に結合される。その結果、遅延線710_1および710_3の各々のタップトリム設定が選択する遅延は、D_CLK信号の約2分の1サイクルに相当する。
【0068】
クロック移相器350は、遅延線710_3のタップ/トリム設定をデジタル移相器1100に与え、それにより、デジタル移相器1100に、D_CLK信号の周期に対応する信号を与える。より詳細に後述されるように、この情報を用いてデジタル移相器1100が導入する移相を選択する。
【0069】
図13はこの発明の1つの実施例に従うデジタル移相器1100のブロック図である。デジタル移相器1100は、マルチプレクサM0−M7、オーバーヘッド遅延回路1301−1302、64タップ遅延回路1303、調節可能な512タップ/トリム遅延線1304、バイナリ−グレイデコーダ1305、(アップ/ダウンカウンタ1311を含む)移相制御論理1310およびDLL制御回路構成1312を含む。
【0070】
デジタル移相器1100は以下のように制御される。まず、デジタル移相器1100は4つのモードのうち1つで動作するように選択される。これらの4つのモードは、第1の固定モード、第2の固定モード、第1の可変モードおよび第2の可変モードを含む。第1の固定モードでは、デジタル移相器1100はスキュークロック信号に遅延を導入する。たとえば、第1の固定モードで、デジタル移相器1100は0から511タップ/トリム単位の範囲の遅延をスキュークロック信号に導入するように制御され得る。第2の固定モードでは、デジタル移相器1100は基準クロック信号に遅延を導入する。たとえば、第2の固定モードで、デジタル移相器1100は、0から511タップ/トリム単位の範囲の遅延を基準クロック信号に導入するように制御され得る。第1の可変モードでは、デジタル移相器1100は、255から−255タップ/トリム単位に等しい遅延を基準クロック信号に導入するように制御され得る。第2の可変モードでは、デジタル移相器1100は、255から−255タップ/トリム単位に等しい遅延をスキュークロック信号に導入するように制御され得る。
【0071】
モードは、S_LAGS_REFおよびCENTERED制御信号に応答して選択される。CENTERED制御信号はローでデアサートされ、S_LAGS_REF信号はローでデアサートされて、第1の固定モードでS_CLK信号がREF_CLK信号よりも進んでいることを示す。これと反対に、CENTERED制御信号はローでデアサートされ、S_LAGS_REF信号はハイでアサートされて、第2の固定モードでS_CLK信号がREF_CLK信号よりも遅れていることを示す。CENTERED制御信号はハイでアサートされ、S_LAGS_REF信号はハイでアサートされて第1の可変モードをイネーブルする。CENTERED制御信号はハイでアサートされ、S_LAGS_REF信号はローでデアサートされて、第2の可変モードをイネーブルする。1つの実施例では、プログラマブル論理デバイスのコンフィギュレーションメモリビットがこれらの制御信号を与えるが、これが必要なわけではない。
【0072】
図14Aは、第1の固定モードについてREF_CLKおよびS_CLK信号を図示する波形図である。第1の固定モードに入るため、S_LAGS_REF制御信号は論理「0」状態にデアサートされ、CENTERED制御信号は論理「0」状態にデアサートされる。これらの条件下で、REF_CLK信号は、マルチプレクサM0、M2およびM6ならびにオーバーヘッド遅延回路1301を通って伝達され、PS_REF_CLK信号を与える。S_CLK信号は、マルチプレクサM1、M4およびM7、オーバーヘッド遅延回路1302ならびに512タップ/トリム遅延線1304を通して伝達され、PS_S_CLK信号を与える。オーバーヘッド遅延回路1301および1302は適用される信号に同じ遅延を導入する。したがって、512タップ/トリム遅延線1304が0遅延を有するように設定されれば、REF_CLK信号およびS_CLK信号はデジタル移相器1100を通して同一の遅延を有する。
【0073】
遅延ロックループ400により、常にPS_REF_CLKとPS_S_CLK信号とは同期する。その結果、遅延素子1301−1304が導入するいかなる移相もREF_CLKおよびS_CLK信号によって実現される。第1の固定モードでは、512タップ/トリム遅延線1304が導入する遅延が増大すると、REF_CLK信号はS_CLK信号よりも遅れる。遅延線710_3(図7)と同一の512タップ/トリム遅延線1304は、511トリム単位の最大タップ/トリム遅延を与える(それによりREF_CLK信号に最大遅れを与える)ように構成され得る。
【0074】
図14Bは、第2の固定モードについて、REF_CLKおよびS_CLK信号を図示する波形図である。第2の固定モードに入るため、S_LAGS_REF制御信号は論理「1」状態にアサートされ、CENTERED制御信号は論理「0」状態にデアサートされる。これらの条件下で、REF_CLK信号は、マルチプレクサM1、M2およびM6、オーバーヘッド遅延回路1302ならびに512タップ/トリム遅延線1304を通して伝達され、PS_REF_CLK信号を与える。S_CLK信号は、マルチプレクサM0、M4およびM7ならびにオーバーヘッド遅延回路1301を通して伝達され、PS_S_CLK信号を与える。512タップ/トリム遅延線1304が0遅延を有するように設定されると、REF_CLK信号およびS_CLK信号はデジタル移相器1100を通して同一の遅延を有する。
【0075】
第2の固定モードでは、512タップ/トリム遅延線1304が導入する遅延が増大すると、REF_CLK信号はS_CLK信号よりも進み始める。512タップ/トリム遅延線1304が511トリム単位の最大タップ/トリム遅延を与えるように構成されると、REF_CLK信号に最大の位相進みが与えられる。
【0076】
図14Cは、第1および第2の可変モードについて、REF_CLKおよびS_CLK信号を図示する波形図である。第1の可変モードに入るため、CENTERED制御信号は論理「1」状態にアサートされ、S_LAGS_REF制御信号は論理「1」状態にアサートされる。その結果、REF_CLK信号は、マルチプレクサM1、M3およびM6、オーバーヘッド遅延回路1302ならびに512タップ/トリム遅延線1304を通して伝達され、PS_REF_CLK信号を与える。S_CLK信号は、マルチプレクサM0、M5およびM7、オーバーヘッド遅延回路1302ならびに64タップ遅延線1303を通して伝達される。64タップ遅延回路1303は、512タップ/トリム遅延線1304(または遅延線710_3)の最大遅延の2分の1に等しい固定遅延を与える。512タップ/トリム遅延線1304は、まず、0トリム単位に等しい遅延に設定され、64タップ(256トリム単位)に等しい遅延まで増分される。このとき、遅延回路1303および1304による遅延がまず一致する(すなわち0移相が存在する)。512タップ/トリム遅延線1304が導入する遅延は64タップ遅延よりも大きくなるように増大され、それにより、S_CLK信号をREF_CLK信号よりも遅らせることができる。これに対して、512タップ/トリム遅延線1304が導入する遅延を64タップ遅延よりも小さくすることができ、それにより、S_CLK信号をREF_CLK信号よりも進ませる。遅延線1304の中間点(すなわち256トリム単位)で0移相が得られるので、第1の可変モードでは、この遅延線1304は各方向にさらに255トリム単位の遅延を与えることしかできない。
【0077】
図14Cも、第2の可変モードについて、REF_CLKおよびS_CLK信号を表わす。第2の可変モードに入るため、CENTERED制御信号は論理「1」状態にアサートされ、S_LAGS_REF制御信号は論理「0」状態にアサートされる。その結果、REF_CLK信号は、マルチプレクサM0、M3およびM4、オーバーヘッド遅延回路1301ならびに64タップ遅延線1303を通して伝達され、PS_REF_CLK信号を与える。S_CLK信号は、マルチプレクサM1、M6およびM7、オーバーヘッド遅延回路1301ならびに512タップ/トリム遅延線1304を通して伝達される。512タップ/トリム遅延線1304は、まず、0トリム単位に等しい遅延に設定され、64タップ(256トリム単位)に等しい遅延にまで増分される。このとき、遅延回路1303および1304による遅延がまず一致する(すなわち0移相が存在する)。512タップ/トリム遅延線1304が導入する遅延は64タップ遅延よりも大きくなるように増大させることができ、それにより、S_CLK信号をREF_CLK信号よりも進ませる。これと反対に、512タップ/トリム遅延線1304が導入する遅延を64タップ遅延よりも小さくすることができ、それにより、S_CLK信号をREF_CLK信号よりも遅れさせる。第2の可変モードは第1の可変モードと同様である。しかしながら、第1の可変モードでは、512タップ/トリム遅延線1304がREF_CLK信号と対応し、第2の可変モードでは、512タップ/トリム遅延線1304がS_CLK信号と対応している。記載の実施例では、以下の理由のために第1の可変モードが好ましい。512タップ/トリム遅延線1304がS_CLK信号と対応している場合、遅延線310は、後に、遅延線1304が行なう調節を補償する必要があり、それにより、遅延線310に残る利用可能なタップ調節の数が減少する。
【0078】
遅延ロックループ400は、この発明の1つの実施例に従い、以下のように動作する。
【0079】
まず、S_LAGS_REFおよびCENTERED制御信号の状態を規定するためにコンフィギュレーションメモリビットを設定し、それにより、デジタル移相器1100が、第1の固定モード(REF_CLKがS_CLKよりも遅れる)、第2の固定モード(REF_CLKがS_CLKよりも進む)または第1もしくは第2の可変モードで動作するのかを規定する。
【0080】
コンフィギュレーションメモリビットは、PS_SIGN、PS_MAG[7:0]、HF_MODE、LFCおよびHFC制御信号の状態を規定するようにも設定される。PS_MAG[7:0]制御信号は、デジタル移相器1100が導入すべき移相の大きさを識別する。PS_SIGN制御信号は、デジタル移相器1100が可変モード(すなわちCENTERED=1)で構成されるときにPS_MAG[7:0]の極性を識別するのに用いられる。デジタル移相器1100が固定モードで構成される場合、PS_SIGN制御信号は用いられない。PS_SIGN信号が(負の極性を示す)論理「1」状態を有する場合、PS_MAG[7:0]信号は論理0値を有することができない。なぜなら、PS_MAG[7:0]信号は、この実施例では、2の補数で表わされるためである。
【0081】
すべての4つの遅延線710_1−710_4が1つの周期全体を発生する必要がある、デジタル移相器100が低周波クロック信号に応答して動作する場合、HF_MODE制御信号は論理「0」値に設定される。これと反対に、1つの周期全体を発生するには2つの遅延線710_1および710_3のみで十分である、デジタル移相器1100が高周波クロック信号に応答して動作する場合、HF_MODE制御信号は論理「1」値に設定される。HF_MODE制御信号は、低周波モード定数LFC[7:0]または高周波モード定数HFC[7:0]を選択するのに用いられる。
【0082】
CFG信号が論理「1」値を有しかつ遅延線710_1−710_4のタップ/トリム設定のすべてが0に設定される場合、低周波モード定数LFC[7:0]は、クロック移相器350(図7)にある遅延チェーン(delay chain)を通してトリム単位で信号経路のオーバーヘッドを表わす。
【0083】
同様に、CFG信号が論理「0」値を有しかつ遅延線710_1および710_3のタップ/トリム設定のすべてが0に設定される場合、高周波モード定数HFC[7:0]は、クロック移相器350(図7)の中にある遅延チェーンを通してトリム単位で信号経路のオーバーヘッドを表わす。低周波モード定数LFC[7:0]および高周波モード定数HFC[7:0]は、記載の実施例ではSpicdシミュレーションによって定められる。
【0084】
上述の定数が設定された後、RESET信号がアサートされ、それにより、アップ/ダウンカウンタ1311を、遅延線1304の0タップ/トリム遅延に対応する値にリセットする。遅延線310も、0タップ/トリム遅延に対応する値に設定される。これらの設定は、クロック移相器350がロック状態を達成した後まで維持される。より具体的には、REF_CLK信号はデジタル移相器1100および遅延線310を通して伝達され、(D_CLK信号として)クロック移相器350に与えられる。応答して、クロック移相器350は、図7と関連して上述された態様で動作して、REF_CLK信号に対してロック状態を達成する。留意すべきなのは、デジタル移相器1100および遅延線310は、REF_CLK信号を用いてクロック移相器350がロックしている間は、それらの遅延線を調節しないようにされることである。クロック移相器350がロック状態を達成した後、遅延線710_3のタップ/トリム設定は、基準クロック信号REF_CLKの周期の1/4(低周波モード)または1/2(高周波モード)のいずれかを表わす。この状態の終わりに、遅延線710_3のタップ/トリム設定は、TAP_TRIM[8:0]信号として移相制御論理1310に与えられる。RESET信号は、クロック移相器350がロックされた後にデアサートされる。
【0085】
RESET信号がデアサートされた後、デジタル移相器1100は遅延線1304を調節することを許される。しかしながら、デジタル移相器1100が遅延線1304を調節している間、クロック移相器350および遅延線310はそれらの遅延線を調節しないようにされる。デジタル移相器1100はカウンタ1311を増分して、512タップ/トリム遅延線1304の初期設定を与える。512タップ/トリム遅延線1304の初期設定は、TAP_TRIM[8:0]信号ならびにPS_SIGNおよびPS_MAG[6:0]値の関数として計算される。アップ/ダウンカウンタ1311は、このカウンタ1311のカウントが計算された初期設定に一致するまで増分(または減分)される。このカウントは、バイナリ−グレイコード変換器1305を通して512タップ/トリム遅延線1304にそのまま伝えられる。バイナリ−グレイコード変換器は、同一人に所有され、同時係属中の米国特許出願連続番号第09/102,704号により詳細に記載される。
【0086】
より具体的には、512タップ/トリム遅延線1304の初期設定は、1周期当りの等価タップ/トリム(ETT/P)をまず定めることによって定められる。低周波モードについて、ETT/Pは以下の式によって定められる。
【0087】
ETT/P=(4×(TAP_TRIM[8:0]))+LFC[7:0] (6)
高周波モードについて、ETT/Pは以下の式によって定められる。
【0088】
ETT/P=(2×(TAP_TRIM[8:0]))+HFC[7:0] (7)
次に、512タップ/トリム遅延線1304の初期設定を以下の態様でETT/P値から定める。動作の第1および第2の固定モードについて、512タップ/トリム遅延線1304の初期タップ/トリム設定は以下のものに等しい。
【0089】
(PS_MAG[7:0]/256)×ETT/P (8)
動作の第1および第2の可変モードについて、512タップ/トリム遅延線1304の初期タップ/トリム設定は以下のものに等しい。
【0090】
256+((PS_MAG[7:0]/256)×ETT/P) (9)
PS_SIGN=0の場合 または
256−((PS_MAG[7:0]/256)×ETT/P) (10)
PS_SIGN=1の場合。
【0091】
デジタル移相器1100には遅延線1304が1本しかないため、PS_MAG[7:0]/256の最大値は、低周波および高周波モードについて、それぞれ最長周期の約1/4および1/2未満である。
【0092】
512タップ/トリム遅延線1304の初期タップ/トリム設定が設定された後、デジタル移相器1100およびクロック移相器350は、一時的にそれらの遅延線を調節しないようにされる。このとき、遅延線310が解放されることによって遅延線310を調節できるようになり、PS_REF_CLKとPS_S_CLK信号とが同期される。すなわち、遅延線310はロック状態を達成できるようになる。このとき、S_CLKおよびREF_CLK信号は、512タップ/トリム遅延線1304が導入する遅延に対応するスキューを呈する。一般的に、処理は上述の態様で進むので、次の状態の間、クロック移相器350は、デジタル移相器1100中の遅延線1304および遅延線310がそれらの以前に定められた値で保持される間、ロックすることができる。次の状態の間、デジタル移相器1100の遅延線1304は、クロック移相器350中の遅延線および遅延線310がそれらの以前に定められた値で保持される間、(以前の状態の間にクロック移相器350によって定められたTAP_TRIM[8:0]信号を用いて)ロックすることができる。次の状態の間、遅延線310は、デジタル移相器1100の遅延線1304およびクロック移相器350の遅延線がそれらの以前に定められた値で保持される間、ロックすることができる。遅延線310、クロック移相器350およびデジタル移相器1100のうち1つだけがいずれかのある時間にそれらの遅延線を調節するのを許容することにより、遅延線310と、クロック移相器350と、デジタル移相器1100との間での競合を防止する。
【0093】
上述のように、512タップ/トリム遅延線1304のタップ/トリム設定は、クロック移相器350の遅延線710_3が与える現在のTAP_TRIM[8:0]値を用いて周期的に再計算される。新たなTAP_TRIM[8:0]値が、古いTAP_TRIM[8:0]値よりも大きいか、それと同じか、またはそれよりも小さいかに依存して、アップ/ダウンカウンタ1311は、それぞれ、増分されるか、不変であるか、または減分される。上述のように、遅延ロックループマネージャ(図示せず)により、512タップ/トリム遅延線1304内で実現されるトリム変更によって一時的に延長または短縮されるサイクルで遅延線310およびクロック移相器350が位相をまったくチェックしないことが確実になる。
【0094】
遅延線1304のタップ/トリム設定は、ユーザインターフェイス1320を介して遅延ロックループ400のユーザによる修正も可能である。ユーザインターフェイス1320は、位相インクリメント/デクリメント信号PSINCDEC、移相イネーブル信号PSEN、移相クロック信号PSCLKおよび移相完了信号PSDONEを含み、これらは移相制御論理1310に与えられる。PSCLK信号はPS_DLY_OUTクロック信号とは異なるため、移相制御論理1310内でこれら2つのクロック領域の調整が必要である。PSEN信号はPSCLK信号の1サイクルの間ハイでアサートされる。このサイクルと同時にまたはこのサイクルの前に、PSINCDEC信号がハイまたはローでアサートされ、それにより、式(8)、(9)または(10)の分数の分子がそれぞれ1だけ増減される。アップ/ダウンカウンタ1311のカウント値の変更を保証するのに分子の増減で十分である場合、この変更が実現される。デジタル移相器1100が増減動作を完了すると、移相制御論理1310は、PSCLK信号の1サイクルの間PSDONE信号をアサートし、それにより、遅延線1304のタップ/トリム設定を再び修正可能であることをユーザに示す。
【0095】
図15は、移相制御論理1310をより詳細に図示するブロック図である。記載の実施例では、移相制御論理1310は、マルチプレクサ1501−1506、アップ/ダウン符号付カウンタ1511、レジスタM0−M1、加算器1531、バイアス加算器/減算器1532、コンパレータブロック1533、積レジスタ1541、ORゲート1542、ANDゲート1543、制御ブロック1550およびアップ/ダウンカウンタ1311を含む。
【0096】
移相制御論理1310は数理演算を行ない、TAP_TRIM[8:0]、LFC[7:0]、HFC[7:0]、PS_SIGNおよびPS_MAG[7:0]信号をPS_TT[8:0]値に変換し、これにより、遅延線1304が導入する移相遅延はクロック周期の所望の分数部分となる。移相制御論理1310は、動的位相調節を可能にするユーザインターフェイス1320およびDLLコントロール1312へのインターフェイスも含む。
【0097】
DLLコントロール1312は、移相制御論理1310がいつPS_TT[8:0]信号を変更してよいかを指定する。DLLコントロール1312は、GO信号(DLLコントロール1312からの要求)とDONE信号(移相制御論理1310からの応答)との間の非同期4波面ハンドシェイクサイクルでこれを行なう。
【0098】
RESET信号の後にアサートされる最初のGO信号は、PS_TT[8:0]信号を0から正しい初期設定に増分させる。その後のサイクルで、PS_TT[8:0]信号は、正しい遅延(すなわち、REF_CLK周期の現在指定される分数部分)を維持するため、不変であるか、増大されるかまたは低減される。
【0099】
移相制御論理1310の1次ステートマシンは、DLLコントロール1312からGO信号を受けるまでは休止したままである。GO信号が取込まれ、ローカルクロック信号に同期された後で、この主ステートマシンを用いて、上に与えられた式(6)−(10)ごとに現在のPS_TT[8:0]を計算する。計算およびPS_TT更新が完了すると、DONE信号が活性化され、動作が完了したことをDLLコントロール1312に知らせる。1次ステートマシンが始動した後、特に他に注記されなければ、コントロールは1クロックサイクル後に次の状態に進む。1次ステートマシンのさまざまな状態をここに記載する。
【0100】
IDLE状態の間、PS_SIGNおよびPS_MAG[7:0]信号がアップ/ダウン符号付カウンタ1511にロードされる。符号付カウンタ1511はSIGN信号としてPS_SIGN信号を与え、PS[7:0]信号としてPS_MAG[7:0]信号を与える。PS[7:0]信号はレジスタM0にロードされる。
【0101】
さらに、HF_MODE信号は、HFC[7:0]値またはLFC[7:0]値のいずれかをマルチプレクサ1501を通して伝達する。記載の例では、HF_MODE信号は論理「0」値(低周波モード)を有するため、LFC[7:0]値を通過させる。マルチプレクサ1502、1503および1504は、マルチプレクサ1501の出力からレジスタM1へLFC[7:0]値を通過させるように制御される。LFC[7:0]値はレジスタM1にロードされ、それによりIDLE状態を完了する。
【0102】
次に、1次ステートマシンはM1_TO_PROD状態に入る。ここで、レジスタM1の内容が積レジスタ1541に転送される。留意すべきなのは、積レジスタ1541はまずリセットされて、論理0値を記憶することである。加算器1531はまず(加算器1531のB入力端子上の)この初期0値を(加算器1531のA入力端子上の)レジスタM1の内容に加算する。結果(すなわちLFC[7:0]定数)は積レジスタ1541にロードされ、それにより、M1_TO_PROD状態を完了する。
【0103】
次に、1次ステートマシンはTAP_TRIM_TO_M1状態に入る。ここで、TAP_TRIM[8:0]信号はレジスタM1にロードされる。主ステートマシンはマルチプレクサ1502−1504を制御して、TAP_TRIM[8:0]信号をレジスタM1に伝達する。
【0104】
次に、1次ステートマシンはSHIFT1状態に入る。ここで、TAP_TRIM[8:0]信号は2で乗算される。これは、レジスタM1の出力からマルチプレクサ1506の「1」入力端子にTAP_TRIM[8:0]信号を伝達することによって達成される。この経路はTAP_TRIM[8:0]信号を1ビットだけ左にシフトし、それにより、実質的にTAP_TRIM[8:0]信号を2で乗算する。これは、式(7)に上述される2倍関数に対応する。シフトされたTAP_TRIM[8:0]信号は、マルチプレクサ1506、1503および1504を通して伝達され、レジスタM1に再ロードされる。
【0105】
HF_MODE信号が論理「0」状態(すなわち低周波モード)を有する場合、1次ステートマシンはSHIFT2状態に入る。ここで、TAP_TRIM[8:0]信号は再び2で乗算される(それにより、式(6)が必要とする、4倍関数を与える)。SHIFT2状態の2での乗算演算は、SHIFT1状態の2での乗算演算と同じ態様で行なわれる。HF_MODE信号が論理「1」状態(すなわち高周波モード)を有する場合、1次ステートマシンはSHIFT2状態をスキップする。
【0106】
次に、1次ステートマシンはETTP_TO_M1状態に入る。ここで、レジスタM1に記憶された、シフトされたTAP_TRIM[8:0]信号が、積レジスタ1541に記憶されたLFC[7:0]定数に加算され、それにより、ETT/P値を生じる。これを達成するため、加算器1531は、レジスタM1の内容(すなわち、シフトされたTAP_TRIM[8:0]値)と積レジスタ1541の内容(すなわち、LFC[7:0]定数)とを加算するように制御される。この結果(すなわちETT/P値)はマルチプレクサ1504を通して伝達され、レジスタM1にロードされる。
【0107】
次に、1次ステートマシンはRST_PROD状態に入る。ここで、積レジスタ1541の内容が0値にリセットされる。
【0108】
次に、1次ステートマシンはMULTIPLY状態に入る。ここで、レジスタM1に記憶されたETT/P値は、レジスタM0に記憶されたPS[7:0]値で乗算される。19ビット加算器1531は、反復加算およびシフト法を用いてこれらの値を乗算するのに用いられる。したがって、加算器1531はまずETT/P値に0を加算し、それにより、まず積レジスタ1541の入力端子にETT/P値が与えられる。このとき、PS[0]ビットが積レジスタ1541のロード端子に与えられる。PS[0]ビットが論理「1」値を有する場合、ETT/P値が積レジスタ1541にロードされる。PS[0]ビットが論理「0」値を有する場合、ETT/P値は積レジスタ1541にはロードされない(すなわち、積レジスタ1541は0値を記憶し続ける)。積レジスタ1541の内容は、P[18:0]信号として加算器1531のB入力端子に与えられる。
【0109】
この最初の反復の後、PS[7:0]値は1ビットだけ右にシフトされ、これにより、レジスタM0は、積レジスタ1541のロード入力端子にPS[1]ビットを与える。また、第1の反復の後に、レジスタM1に記憶されたETT/P値は、マルチプレクサ1506およびマルチプレクサ1503−1504の左シフト入力端子を通してこの値を伝達することにより、1ビットだけ左にシフトされる。この左シフトされたETT/P値がレジスタM1にロードされる。次に加算器1531は、左シフトされたETT/P値と積レジスタ1541との内容との合計に等しい出力を与える。PS[1]ビットが論理「1」値を有する場合、加算器1531の出力は積レジスタ1541にロードされる。PS[1]ビットが論理「0」値を有する場合、加算器1531の出力は積レジスタ1541にはロードされず、積レジスタ1541の内容は不変のままである。
【0110】
処理は繰返され、各々の反復の際、レジスタM1に記憶されたETT/P値は左シフトされ、レジスタM0中のPS[7:0]信号は右シフトされる。ビットM0[7:1]がすべて論理「0」値を有するとき、この処理が完了する。このとき、積レジスタ1541は、ETT/P×PS_MAGに等しい値を保持する(式(8)、(9)、(10)を参照)。積レジスタ1541が与えるビットP[18:17]のいずれか1つが論理「1」値を有する場合、オーバーフロー条件が存在する。これらの条件下では、ORゲート1542は論理ハイのOVERFLOW信号を与え、積レジスタ1541は、MULTIPLY状態から出るまで状態を変更しないようにされる。
【0111】
MULTIPLY状態が完了した後、1次ステートマシンはPASS状態に入る。PASS状態の間、バイアス加算器/減算器1532は、加算または減算演算を完了する時間を許される。積レジスタ1541のビットP[16:8]はバイアス加算器/減算器1532の「A」入力端子に与えられ、それにより、積レジスタ1541の内容を8ビットだけ右シフトする。これは、積レジスタの内容を256で実質的に除算する(式(8)、(9)、(10)参照)。バイアス加算器/減算器1532の「B」入力端子は、「0」(CENTERED=0の場合)または256(CENTERED=1の場合)のいずれかの値を受けるように結合される。ANDゲート1543が論理「0」出力信号を与える場合、バイアス加算器/減算器1532は加算(B+A)を行なう。これと反対に、ANDゲート1543が論理「1」出力信号を与える場合、バイアス加算器/減算器1532は減算(B−A)を行なう。遅延ロックループ400が可変モードで構成される場合(CENTERED=1)、ANDゲート1543は論理「1」信号を与えるのみであり、アップ/ダウン符号付カウンタ1511は負の値(SIGN=1)を有する。バイアス加算器/減算器1532のビットR[9]が論理「1」値を有する場合、ORゲート1542はOVERFLOW信号をアサートし、それにより、オーバーフロー条件が存在することを示す。OVERFLOW信号がアサートされない限り、バイアス加算器/減算器1532が与える結果R[8:0]は所望のPS_TT[8:0]信号を表わす。
【0112】
留意すべきなのは、OVERFLOW信号が以下のいずれかによって設定され得ることである。すなわち、(a)積レジスタ1541が与える値が0以上1FFFF以下でない。(b)バイアス加算器/減算器1532のR[8:0]出力は0以上1FF以下でない。(c)タップ/トリムカウンタ1311は、選択された方向で変更されるとラップする。(d)アップ/ダウンカウンタ1511は、選択された方向で変更されるとラップする。
【0113】
PASS状態が完了した後、1次ステートマシンはADJUST_PSTT状態に入る。この状態で、PS_TT[8:0]信号は、バイアス加算器/減算器1532が与える結果R[8:0]と等しくなるように設定される。コンパレータ1533の「A」入力端子は、バイアス加算器/減算器の結果R[8:0]を受けるように結合される。コンパレータ1533の「B」入力端子は、アップ/ダウンカウンタ1311からPS_TT[8:0]信号を受けるように結合される。R[8:0]信号がPS_TT[8:0]信号に等しくない場合、コンパレータ1533は、アップ/ダウンカウンタ1311のクロックイネーブル入力端子(CE)に論理ハイの信号を与え、それにより、アップ/ダウンカウンタ1311をイネーブルする。また、PS_TT[8:0]信号がR[8:0]信号よりも小さい場合、コンパレータ1533は、アップ/ダウンカウンタ1311のUP端子に論理ハイの信号を与える。これと反対に、PS_TT[8:0]信号がR[8:0]信号よりも大きいかまたはそれに等しい場合、論理ブロック1533は、アップ/ダウンカウンタ1311のUP端子に論理ローの信号を与える。UP端子が論理「1」信号を受けると、アップ/ダウンカウンタ1311は1だけ増分され、UP端子が論理「0」信号を受けると、これは1だけ減分される。RESETの際、アップ/ダウンカウンタ1311は論理0値にリセットされる。その結果、アップ/ダウンカウンタ1311は、PS_TT[8:0]値がR[8:0]値と等しくなるまで(またはオーバーフローが起こるまで)PS_TT[8:0]を調節する。PS_TT[8:0]信号がR[8:0]信号に等しいかまたはOVERFLOWが真であると、制御論理1550はDONE信号を設定する。制御論理1550は、DONE信号がRESETの後に初めてアサートされるときにPS_LOCKED信号を設定する。PS_LOCKED信号は、DLLコントロール1312に、移相論理1310が適切に初期化されたことを知らせる。例外はロッキングプロセスの間である。この場合、OVERFLOWが真であればDONE信号は設定されず、したがって、PS_LOCKED信号も設定されない。
【0114】
次に、主ステートマシンはWT_GONOT状態に入る。ここで、ステートマシンは、GO信号が不活性になるまで待機し、次にIDLE状態に入る。
【0115】
通常動作の間の移相に対する動的変更(すなわち、式(8)、(9)、(10)の分数の分子)を許すため、外部ユーザインターフェイス1320を設ける。ユーザは分数の分子を増減し得る。可変モードでは、分数の分子は、正からゼロを通って負におよびその逆に交差し得る。外部ユーザインターフェイス1320は外部クロック信号PSCLKと同期する。移相制御回路1310のクロックされた素子の残りは、PS_DLY_OUTクロック信号によってクロックされることに留意されたい。モジュールは標準的な技術を用いて、PSCLK領域からPS_DLY_OUTクロック領域へおよびその逆に交差する。
【0116】
第2のステートマシン、すなわち動的位相変更(DPS)ステートマシンはユーザインターフェイス1320を制御する。PS_DLY_OUTクロック領域を走り、DPSステートマシンは、主ステートマシンが符号付アップ/ダウンカウンタ1511を用いていないときにしかこのカウンタに変更が加えられないのを確実にする。DPSステートマシンが始動した後、以下の説明で特に注記されなければ、コントロールは1クロックサイクル後に次の状態に進む。
【0117】
DPSステートマシンはDPS_IDLE状態で始動する。ここで、ステートマシンはPSEN信号がアサートされるのを待つ。(PSCLK信号によってクロックされたものとして)PSEN信号を検出すると、DPSステートマシンは次の状態に進む。しかしながら、論理的不連続性を回避するため、主ステートマシンがIDLE状態にない場合は、DPS_IDLE状態から出ることはできない。
【0118】
次に、DPSステートマシンはDPS_CNTR状態に入る。ここで、取込まれたPSINCDEC信号が論理「1」値を有する場合、カウンタ1511はインクリメントされ、取込まれたPSINCDEC信号が論理「0」値を有する場合、これはデクリメントされる。
【0119】
次に、DPSステートマシンはDPS_W_ADJUST_PSTT状態に入る。ここで、DPSステートマシンは、主ステートマシンが対応の調節サイクルを完了するまで待機する。一次状態ADJUST_PSTTのための終了条件が真になるまで、DPSステートマシンはこの状態にとどまる。
【0120】
次に、DPSステートマシンはDPS_SETDONE状態に入る。ここで、(PSCLK領域に結合される)PSDONE信号が設定される。アサートされたPSDONE信号は、要求された位相変更が完了したことをユーザに知らせる。次に処理はDPS_IDLE状態に戻る。
【0121】
以上のように、デジタル移相器1100は、REF_CLKとS_CLK信号との間の遅延を正確に修正することができる。この動作は、低周波および高周波信号ならびに温度変化を補うように制御される。有利には、自動的におよびユーザコントロールにより位相を修正可能である。
【0122】
図16は、この発明の別の実施例に従うデジタルスペクトル拡散(DSS)回路1600のブロック図である。DSS回路1600は、アップ/ダウンカウンタ1311とバイナリ−グレイ変換回路1305(図13を参照)との間に結合される。アップ/ダウンカウンタ1311とDSS回路1600との両者はPS_DLY_OUT信号によってクロックされる。一般的に、DSS回路1600は、予め定められた小さな値をPS_TT[8:0]信号に加算するかまたは減算して、JOINT_TT[8:0]信号を発生するように構成され得る。この場合、DSS回路1600は拡散スペクトルモードにある。拡散スペクトルモードでは、JOINT_TT[8:0]信号は、PS_DLY_OUT信号のクロック周期において小さな変化を生じさせる。
【0123】
DSS回路1600は、拡散スペクトルモードをディスエーブルするようにも構成され得るので、PS_TT[8:0]信号は変更されずにDSS回路1600を通して伝送される。これをDSSバイパスモードと称する。
【0124】
図17AはDSSバイパスモードを図示する。ここで、PS_DLY_OUT信号は周波数100MHzおよびエネルギXを有する。チップの電磁放出を定めるため、FCCは特定の幅(たとえば1MHz)を有するウインドウ1701を用いる。PS_DLY_OUT信号は単一の周波数を有するため、1MHzウインドウ1701はPS_DLY_OUT信号のエネルギXのすべてを捕捉する。
【0125】
図17Bは、DSS回路1600のスペクトル拡散モードのうち1つを図示する。ここで、PS_DLY_OUT信号は、約98、98.5、99、99.5、100、100.5、101、101.5および102MHzの周波数を呈するように制御される。これらの周波数の各々は、時間の1/9しか存在しないため、PS_DLY_OUT信号は、これらの周波数の各々において1/9Xのエネルギを有する。その結果、1MHzウインドウ1701は、いずれの時間においても9つの周波数のうち3つしか捕捉しない。その結果、1MHzウインドウが検出するエネルギは最大値1/3Xを有する。これは、バイパスモードに対するEMIエネルギの大幅な低減を表わす。PS_DLY_OUT信号の基本周波数が変化するにつれ、1MHzウインドウ内に存在する周波数の数が変化し得る。
【0126】
図18は、この発明の1つの実施例に従うDSS回路1600の回路図である。DSS回路1600は、パターン発生器1801、符号付加算器1802、パイプラインレジスタ1803、5ビットアップカウンタ1804、Dフリップフロップ1805−1806、インバータ1807、ORゲート1808およびNANDゲート1809を含む。DSS回路1600の素子はPS_DLY_OUT信号によってクロックされる。
【0127】
DSS回路1600をイネーブルするため、コンフィギュレーションメモリビットは、論理ローのEN_DSS♯信号を記憶するようにプログラムされ、それにより、遅延ロックループ400の通常動作の間にDSS回路1600を用い得るか否かをユーザが選択できるようにする。ユーザがDSS回路1600を用いたい場合、ユーザは、論理ハイのDSS_EN信号もNANDゲート1809に与えなければならない。このときRESET信号はハイでアサートされ、これにより、ORゲート1808が論理ハイの信号を与えてパターン発生器1801をクリアし、フリップフロップ1805をクリアし、かつ、5ビットアップカウンタ1804を値「10000」(すなわち二進法の16)に非同期に設定する。
【0128】
まず、遅延ロックループ400はロックされない(すなわち、DLL_LOCKEDはローである)。その結果、NANDゲートは論理「1」値を与え、これはフリップフロップ1805にロードされる。この論理「1」の値により、ORゲート1808は論理「1」出力値を与え、それにより、パターン発生器1801をクリアされた状態に維持する。このとき、パターン発生器1801は、値0を有するトリム信号t[9:0]を与える。その結果、アップ/ダウンカウンタ1311が与えるPS_TT[8:0]信号は、不変のまま加算器1802およびパイプラインレジスタ1803を通る。これは、遅延ロックループ400からDSS回路1600を実質的に取除く。
【0129】
遅延ロックループ400がロックされた後、DLLS_LOCKED信号は論理ハイ値に遷移する。応答して、NANDゲート1809は論理「0」出力信号を与える。この論理「0」信号は、PS_DLY_OUT信号の次の立上がりエッジでフリップフロップ1805にラッチされる。その結果、ORゲート1808は論理「0」信号を与え、これは、パターン発生器1801、5ビットアップカウンタ1804およびフリップフロップ1805を解放する。このとき、パターン発生器1801がイネーブルされ、予め定められたパターンを生成する。SPREADSEL[3:0]信号によって特定のパターンが選択される。1つの実施例では、パターン発生器1801は、2拡散、4拡散、6拡散、8拡散、16拡散、32拡散および64拡散構成を生じるためのパターンを生成することができる。この例では、SPREADSEL[3:0]信号は、8拡散構成のためのパターンを与えるように選択される。
【0130】
述べられた実施例では、アップ/ダウンカウンタ1311の内容が変更されているときに、アップ/ダウンカウンタ1311はCHANGE_PS信号をアサートする。CHANGE_PS信号がアサートされると、パターン発生器1801の出力t[9:0]は変化しないようにされ、それにより、パターン発生器1801とアップ/ダウンカウンタ1311との間の競合を回避する。
【0131】
一般的に、パターン発生器は加算器1802のA入力端子にトリム値t[9:0]を与え、カウンタ1311は加算器1802のB入力端子にPS_TT[8:0]信号を与える。留意すべきなのは、論理「0」値を有するPS_TT[9]ビットがPS_TT[8:0]信号に連結されることである。また、留意すべきなのは、ビットt[9:4]がt[3]と等しくなるように設定されることである。8拡散パターンでは、トリム値t[9:0]は、0、+1、+2、−1および−2の値を有し得る。
【0132】
加算器1802は、PS_TT[9:0]とt[9:0]信号との符号付加算を行ない、それにより、サム信号s[9:0]を与える。サムビットs[9]が論理「0」値を有する限り、サム値s[8:0]は512タップ遅延線1304の動作範囲内にある。論理「0」サムビットs[9]は、パイプラインレジスタ1803がs[8:0]信号をラッチできるようにする。次に、パイプラインレジスタ1803は、PS_TAP_TRIM[8:0]信号としてs[8:0]をバイナリ−グレイデコーダ1305に伝送する。
【0133】
サムビットs[9]が値「1」を有する場合、パイプラインレジスタ1803はディスエーブルされ、対応のs[8:0]信号をラッチしない。論理「1」のs[9]ビットはPS_DLY_OUT信号によってフリップフロップ1805にクロックされ、かつ、5ビットアップカウンタ1804の同期入力端子SI(6)に与えられる。PS_DLY_OUT信号がハイでアサートされると、5ビットアップカウンタ1804は値「00110」に設定される。
【0134】
留意すべきなのは、値「00110」でカウンタ1804をロードする前に、カウンタ1804が値「10000」に設定されたことである。カウンタのビット[4](すなわち、「10000」の「1」ビット)はインバータ1807に与えられる。次に、インバータ1807は、5ビットアップカウンタ1804のイネーブル入力(CE)に論理「0」ビットを与える。その結果、5ビットアップカウンタ1804は、それが「00110」値でロードされるまで実質的にディスエーブルされる。インバータ1807の出力はDSS_OVERFLOW信号としても用いられる。
【0135】
「00110」値が5ビットアップカウンタ1804にロードされた後、カウンタのビット[4]は論理「0」状態を有する。その結果、DSS_OVERFLOW信号がハイでアサートされ、5ビットアップカウンタ1804がイネーブルされる。DSS_OVERFLOW信号が一旦論理ハイ状態に設定されると、この信号は、PS_DLY_OUT信号の少なくとも10サイクルの間、論理ハイ状態にとどまる。s[9]信号が論理「0」値に遷移して戻れば、DSS_OVERFLOW信号は論理ロー値にリセットされ、PS_DLY_OUT信号の連続10サイクルの間、論理「0」値にとどまる。s[9]信号が論理「0」値に遷移した後、カウンタ1804はカウントアップを始める。s[9]信号が10クロックサイクルの間、論理「0」状態にとどまれば、カウンタ1804は「10000」までカウントし、それにより、DSS_OVERFLOW信号をクリアする。しかしながら、s[9]信号がこれらの10クロックサイクルの間のいずれかの時点で論理「1」値を有すれば、5ビットカウンタは「00110」値にリセットされ、それにより、論理ハイDSS_OVERFLOW信号を生じる。これにより、ユーザは、DSS_OVERFLOW信号のステータスを確実にサンプリングできるようになる。(述べられた実施例では、DSS_OVERFLOW信号は、図15のOVERFLOW信号と論理的にOR演算され、それにより、単一の信号を与えてオーバーフロー条件を識別する。)
パターン発生器1801が生成するトリム信号t[9:0]は、PS_DLY_OUT信号の周期がどのように調節されるかを定める。ここで8拡散構成が説明される。この例は、REF_CLK信号が基本周波数100MHzを有し、かつ、512タップ/トリム遅延線1304がREF_CLK信号の経路に接続される(すなわち、S_LAGS_REF=1かつCENTERED=1)と仮定する。この例は、1トリム遅延が50ピコ秒(ps)に等しいとも仮定する。
【0136】
図19A−19Bは、DSS回路1600が8拡散構成を実現するように制御される際の、REF_CLKおよびS_CLK信号を図示する波形図である。最初の3クロックサイクルC1−C3(すなわち30000nsまで)の間、DSS回路1600は、ユーザが与えるDSS_EN信号によってディスエーブルされる。その結果、パターン発生器1801は、値0を有するトリム信号t[9:0]を与える。これらの3クロックサイクルC1−C3の間、REF_CLKとS_CLKとは同期され、これらの信号の各々は10000nsの周期を有する。
【0137】
第4のクロックサイクルC4の間、パターン発生器1801がイネーブルされ、2トリム設定に等しい値を有するトリム信号t[9:0]を与える。応答して、符号付加算器回路1802は、アップ/ダウンカウンタ1311が与えるPS_TT[8:0]信号に2トリム設定を加算する。その結果、S_CLK信号のサイクルC4は、2トリム設定または100psだけ長くなる。したがって、S_CLK信号のサイクルC4は10100nsの周期を有するため、S_CLK信号の第5のサイクルC5の立上がりエッジは40100nsで発生する。このとき、REF_CLK信号とS_CLK信号との間に100nsの初期オフセットが存在する。この初期オフセットは、通常の8拡散構成を実現する前に一度だけ与えられる。この初期オフセットにより、以下に述べるような最適な態様で8拡散構成を実現することができる。
【0138】
第5のクロックサイクルC5の間に、パターン発生器1801は、1トリム設定に等しい値を有するトリム信号t[9:0]を与える。これは、以前のサイクルに対する−1トリム設定(−50ps)の変更を表わす。その結果、S_CLK信号は、10000ps−50psまたは9950psに等しい周期を有し、それにより、次のクロックサイクルC6の立上がりエッジは50050nsで発生する。S_CLK信号の周波数は、サイクルC5の間は100.5MHzに等しい。
【0139】
第6のクロックサイクルC6の間、パターン発生器1801は、2トリム設定に等しい値を有するトリム信号t[9:0]を与える。これは、以前のサイクルに対する+1トリム設定(+50ps)の変更を表わす。その結果、S_CLK信号は、10000ps+50psまたは10050psに等しい周期を有するので、次のクロックサイクルC7の立上がりエッジは60100nsで発生する。S_CLK信号の周波数は、サイクルC5の間は99.5MHzに等しい。
【0140】
プロセスは継続し、パターン発生器1801は、クロックサイクルC7−C13の間に、それぞれ値0、2、−1、2、−2、2および2を有するトリム信号t[9:0]を与える。これらのトリム値は、クロックサイクルC7−C13の間のトリム差−2、2、−3、3、−4、4および0にそれぞれ対応する。その結果、S_CLK信号は、クロックサイクルC7−C13の間にそれぞれ9900、10100、9850、10150、9800、10200および10000psの周期を有する。これは、S_CLK信号がクロックサイクルC7−C13の間にそれぞれ101、99、101.5、98.5、102、98および100MHzの周波数を有することを意味する。これは、図17Bに図示される8つの周波数の各々と100MHzの基本周波数とを与える。クロックサイクルC5−C13のパターンは遅延ロックループ400の動作の間繰返され、それにより拡散スペクトル動作を継続する。
【0141】
図19Aおよび19Bの例では、REF_CLK信号とS_CLK信号との間のスキューは、それぞれクロックサイクルC5−C13の間の50、100、0、100、−50、100、−100、100および100psに等しい。したがって、これらの2つの信号間のスキューは、最大値100psおよび平均値44.4psを有する。与えられる多数の周波数を鑑みると、これは比較的安定したクロック信号である。
【0142】
この発明の別の実施例では、クロックサイクルC4の間に与えられる初期オフセットを排除することができる。この実施例では、パターン発生器1801が与えるトリム値は、クロックサイクルC5−C13の間に、それぞれ−1、0、−2、0、−3、0、−4、0および0となるように選択される。これらのトリム値は、クロックサイクルC5−C13間のトリム差−1、1、−2、2、−3、3、−4、4および0にそれぞれ対応する。その結果、S_CLK信号は、クロックサイクルC5−C13の間に、それぞれ9950、10050、9900、10100、9850、10150、9800、10200および10000psの周期を有する。これは、S_CLK信号が、クロックサイクルC5−C13の間にそれぞれ100.5、99.5、101、99、101.5、98.5、102、98および100MHzの周波数を有することを意味する。ここでも、これは、図17Bに図示される8つの周波数の各々と、100MHzの基本周波数とを与える。クロックサイクルC5−C13のパターンは遅延ロックループ400の動作の間繰返され、それにより拡散スペクトル動作を継続する。この例では、REF_CLK信号とS_CLK信号との間のスキューは、それぞれクロックサイクルC5−C13の間、それぞれ−50、0、−100、0、−150、0、−200、0および0psに等しい。したがって、これらの2つの信号間のスキューは、最大値200psおよび平均値−55.6psを有する。
【0143】
8拡散構成(すなわち、基本周波数+8つの拡散周波数)が説明されたが、他の拡散スペクトル構成も実現可能であり、この発明の範囲内に入ると考えられることを理解されたい。たとえば、2拡散、4拡散および6拡散構成を設けることができる。パターン発生器1801は、−1、0および0に等しいトリム値のパターンを与えて、2拡散構成の3つの周波数を与える。
【0144】
パターン発生器1801は、−1、0、−2、0および0に等しいトリム値のパターンを与えて、4拡散構成の5つの周波数を与える。初期オフセットを加えるため、パターン発生器1801は、1(初期オフセット)、0、1、−1、1および1に等しいトリム値のパターンを与えて、4拡散構成の5つの周波数を与えることができる。
【0145】
パターン発生器1801は、−1、0、−2、0、−3、0および0に等しいトリム値のパターンを与えて、6拡散構成の7つの周波数を与える。初期オフセットを加えるため、パターン発生器1801は、1(初期オフセット)、0、1、−1、1、−2、1および1に等しいトリム値のパターンを与え、6拡散構成の7つの周波数を与えることができる。
【0146】
以下の表1は、100MHzの基本クロック信号について、2拡散、4拡散、6拡散および8拡散構成の特徴をまとめる。
【0147】
【表1】
【0148】
以下の表2は、25MHzから400MHzの間の選択された周波数について、さまざまなDSSモードに対する基本クロック信号の+/−拡散をまとめる。
【0149】
【表2】
【0150】
以下の表3は、25MHzから400MHzの間の選択された周波数について、さまざまなDSSモードに対する1MHzウインドウ内の理想的なピークの数をまとめる。
【0151】
【表3】
【0152】
以下の表4は、25MHzから400MHzの間の選択された周波数について、さまざまなDSSモードに対する1MHzウインドウ内のEMIエネルギ低減率をまとめる。
【0153】
【表4】
【0154】
以下の表5は、25MHzから400MHzの間の選択された周波数について、さまざまなDSSモードに対する1MHzウインドウ内のEMIエネルギ低減をdbでまとめる。
【0155】
【表5】
【0156】
以下の表6は、25MHzから400MHzの間の選択された周波数についての1MHzウインドウ範囲をまとめる。
【0157】
【表6】
【0158】
この発明はいくつかの実施例に関連して説明されたが、この発明は開示された実施例に限定されるものではなく、当業者には明らかなさまざまな変形が可能であることを理解されたい。たとえば、この開示を鑑み、当業者は、他のクロック移相器、遅延線、出力発生器、コントローラ、位相検出器などを規定し、これらの代替的な特徴を用いて、この発明の原理に従う方法、回路またはシステムを作製することができる。したがって、この発明は添付の請求項によってのみ限定されるものである。
【図面の簡単な説明】
【図1】従来の遅延ロックループを用いるシステムのブロック図である。
【図2A】図1のシステムのためのタイミング図である。
【図2B】図1のシステムのためのタイミング図である。
【図2C】図1のシステムのためのタイミング図である。
【図3】この発明に従う遅延ロックループの実施例を用いるシステムのブロック図である。
【図4】図3の遅延ロックループのためのタイミング図である。
【図5】この発明の1つの実施例に従って用いられるようなロックウインドウの図である。
【図6】この発明に従うクロック移相器の実施例のブロック図である。
【図7】この発明に従うクロック移相器の別の実施例のブロック図である。
【図8】この発明に従う出力発生器のブロック図である。
【図9】この発明に従うコントローラの実施例のステートダイアグラムである。
【図10】この発明に従う遅延ロックループの別の実施例を用いるシステムのブロック図である。
【図11】この発明の別の実施例に従う、図3の遅延ロックループの代わりに用い得る遅延ロックループのブロック図である。
【図12】図7のクロック移相器中の遅延線の選択されたセクションに対するタップ/トリム遅延を図示する概略図である。
【図13】この発明の1つの実施例に従うデジタル移相器のブロック図である。
【図14A】図11の遅延ロックループの第1の固定モードについて、基準クロック信号およびスキュークロック信号をそれぞれ示す波形図である。
【図14B】図11の遅延ロックループの第2の固定モードについて、基準クロック信号およびスキュークロック信号をそれぞれ示す波形図である。
【図14C】図11の遅延ロックループの第1および第2の可変モードについて、基準クロック信号およびスキュークロック信号を示す波形図である。
【図15】図13の移相制御論理をより詳細に図示するブロック図である。
【図16】この発明の別の実施例に従うデジタルスペクトル拡散(DSS)回路のブロック図である。
【図17A】図16のDSS回路のDSSバイパスモードを図示するグラフの図である。
【図17B】図16のDSS回路のスペクトル拡散モードを図示するグラフの図である。
【図18】この発明の1つの実施例に従う、図16のDSS回路の回路図である。
【図19A】図16のDSS回路が8拡散構成を実現するように制御されるときに生じる基準クロック信号およびスキュークロック信号を図示する波形図である。
【図19B】図16のDSS回路が8拡散構成を実現するように制御されるときに生じる基準クロック信号およびスキュークロック信号を図示する波形図である。
Claims (10)
- 基準クロック信号と生成されたクロック信号との間の位相ずれを制御する方法であって、
第1の遅延線を用いて、基準クロック信号の1周期に対応する第1の制御信号を導出するステップと、
基準クロック信号と生成されたクロック信号との間の所望の位相ずれ量に対応する第2の制御信号を選択するステップとを含み、第2の制御信号は、基準クロック信号の周期の分数を規定し、さらに
第1および第2の制御信号に応答して第2の遅延線の設定を定めるステップを含み、第2の遅延線は、基準クロック信号または生成されたクロック信号のいずれかの経路に結合される、方法。 - 第1の遅延線と関連の第1のオーバーヘッド遅延を表わす第1の遅延定数を定めるステップと、
第1の制御信号と第1の遅延定数とを組み合わせて、基準クロック信号の1つの周期に対応する第3の制御信号を発生するステップと、
第2および第3の制御信号に応答して第2の遅延線の設定を定めるステップとを含む、請求項1に記載の方法。 - 第2の遅延線の設定は、第1および第2の制御信号を乗算し、その結果を定数で除算することにより定められる、請求項1に記載の方法。
- ユーザインターフェイスを通して第2の遅延線の設定を修正するステップをさらに含む、請求項1に記載の方法。
- 定められた第2の遅延線の設定が第2の遅延線の範囲を超える場合、オーバーフロー信号をアサートするステップをさらに含む、請求項1に記載の方法。
- 生成されたクロック信号の経路に第2の遅延線を結合し、生成されたクロック信号よりも基準クロック信号が進むかまたは遅れるようにするステップをさらに含む、請求項1に記載の方法。
- 基準クロック信号に対して移相された、生成クロック信号を与えるためのシステムであって、
基準クロック信号の周期を表わす第1の制御信号を生成するように構成された第1の制御回路と、
基準クロック信号、生成クロック信号および第1の制御信号を受けるように構成されたデジタル移相器とを含み、デジタル移相器は、基準クロック信号および生成クロック信号に遅延差を導入し、それにより、移相された基準クロック信号および移相された生成クロック信号を発生し、遅延差の持続時間は第1の制御信号から導出される、システム。 - 第1の制御回路は、
1つ以上の遅延線を含み、その各々は複数の遅延ユニットを含み、1つ以上の遅延線は直列に接続され、さらに
1つ以上の遅延線の遅延ユニットを制御するように構成された遅延調節回路を含み、
遅延調節回路は、基準クロック信号の1周期と等しい遅延を導入するのに必要な数の遅延ユニットをイネーブルする、請求項7に記載のシステム。 - システムは、移相された基準クロック信号および移相された生成クロック信号を受けるように結合された位相検出器をさらに含み、位相検出器は、移相された基準クロック信号と移相された生成クロック信号との間の遅延差を表わす第2の制御信号を与え、さらにシステムは
移相された基準クロック信号および第2の制御信号を受けるように結合されたシステム遅延線を含み、システム遅延線は、移相された基準クロック信号が移相された生成クロック信号と同期されるようにシステム遅延線が導入する遅延を調節するように構成される、請求項8に記載のシステム。 - デジタル移相器は、
固定遅延線と、
調節可能遅延線と、
スイッチ回路とを含み、スイッチ回路は、固定遅延線を通して基準クロック信号をおよび調節可能遅延線を通して生成クロック信号を選択的に伝達するかまたは、調節可能遅延線を通して基準クロック信号をおよび固定遅延線を通して生成クロック信号を伝達する、請求項7に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/684,540 US6775342B1 (en) | 1998-06-22 | 2000-10-06 | Digital phase shifter |
PCT/US2001/031450 WO2002029975A2 (en) | 2000-10-06 | 2001-10-05 | Digital phase shifter |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004511933A true JP2004511933A (ja) | 2004-04-15 |
Family
ID=24748471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002533474A Pending JP2004511933A (ja) | 2000-10-06 | 2001-10-05 | デジタル移相器 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1323234B1 (ja) |
JP (1) | JP2004511933A (ja) |
CA (1) | CA2424706C (ja) |
WO (1) | WO2002029975A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007251371A (ja) * | 2006-03-14 | 2007-09-27 | Nec Electronics Corp | スペクトラム拡散クロック制御装置及びスペクトラム拡散クロック発生装置 |
JP2013078129A (ja) * | 2007-06-11 | 2013-04-25 | Sk Hynix Inc | 周波数調整装置及びそれを含むdll回路 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003098414A1 (en) * | 2002-05-16 | 2003-11-27 | Infineon Technologies Ag | Apparatus for adjusting the phase of a digital signal |
KR100541548B1 (ko) | 2003-09-08 | 2006-01-11 | 삼성전자주식회사 | 대역 확산 클럭 발생회로 및 방법 |
SG120185A1 (en) | 2004-08-30 | 2006-03-28 | Micron Technology Inc | Delay lock loop phase glitch error filter |
US8238409B2 (en) | 2004-12-03 | 2012-08-07 | St-Ericsson Sa | Managing tap positions in a digital delay line |
JP4846486B2 (ja) * | 2006-08-18 | 2011-12-28 | 富士通株式会社 | 情報処理装置およびその制御方法 |
KR102632074B1 (ko) * | 2021-03-16 | 2024-02-02 | 한국전자통신연구원 | 부궤환 루프 구조의 위상 복조기 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289068B1 (en) * | 1998-06-22 | 2001-09-11 | Xilinx, Inc. | Delay lock loop with clock phase shifter |
US6043717A (en) * | 1998-09-22 | 2000-03-28 | Intel Corporation | Signal synchronization and frequency synthesis system configurable as PLL or DLL |
-
2001
- 2001-10-05 CA CA2424706A patent/CA2424706C/en not_active Expired - Lifetime
- 2001-10-05 JP JP2002533474A patent/JP2004511933A/ja active Pending
- 2001-10-05 WO PCT/US2001/031450 patent/WO2002029975A2/en active Application Filing
- 2001-10-05 EP EP01981418A patent/EP1323234B1/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007251371A (ja) * | 2006-03-14 | 2007-09-27 | Nec Electronics Corp | スペクトラム拡散クロック制御装置及びスペクトラム拡散クロック発生装置 |
JP2013078129A (ja) * | 2007-06-11 | 2013-04-25 | Sk Hynix Inc | 周波数調整装置及びそれを含むdll回路 |
Also Published As
Publication number | Publication date |
---|---|
WO2002029975A2 (en) | 2002-04-11 |
EP1323234B1 (en) | 2011-12-07 |
CA2424706A1 (en) | 2002-04-11 |
CA2424706C (en) | 2010-12-14 |
EP1323234A2 (en) | 2003-07-02 |
WO2002029975A3 (en) | 2003-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6775342B1 (en) | Digital phase shifter | |
US7295053B2 (en) | Delay-locked loop circuits | |
JP4056388B2 (ja) | 同期マルチ出力デジタルクロックマネージャ | |
US6225840B1 (en) | Clock generation circuit which reduces a transition time period and semiconductor device using the same | |
US6240152B1 (en) | Apparatus and method for switching frequency modes in a phase locked loop system | |
US7276944B2 (en) | Clock generation circuit and clock generation method | |
KR101165491B1 (ko) | 다중 기준 클럭 신시사이저 | |
JP3323207B2 (ja) | 周波数―電圧変換回路、遅延量判定回路、周波数―電圧変換回路を備えたシステム、周波数―電圧変換回路の入出力特性を調整する方法、および周波数―電圧変換回路の入出力特性を自動調整する装置 | |
US7282971B2 (en) | Digital delay lock loop | |
US7321249B2 (en) | Oscillator, frequency multiplier, and test apparatus | |
US10790837B1 (en) | Self-tuning digital clock generator | |
CA2424706C (en) | Digital phase shifter | |
US6967536B2 (en) | Phase-locked loop circuit reducing steady state phase error | |
US7564283B1 (en) | Automatic tap delay calibration for precise digital phase shift | |
KR101000486B1 (ko) | 지연고정 루프 기반의 주파수 체배기 | |
KR100884642B1 (ko) | 자가 보정 기능을 갖는 지연 고정 루프 기반의 주파수 체배장치 및 방법 | |
US7073086B2 (en) | System for controlling a tunable delay by transferring a signal from a first plurality of points along a first propagating circuit to a second plurality of points along a second propagating circuit | |
JP4686108B2 (ja) | 同期を有するディジタルクロック逓倍器および分周器 | |
WO2004010583A1 (en) | Loop filter capacitor leakage current control | |
JPH1141095A (ja) | クロック生成回路 | |
JP2004062578A (ja) | 多相出力クロック発生回路 | |
JP2003218691A (ja) | ディレイロックドループ回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040917 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061101 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070306 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070731 |