(57)【要約】デジタルクロックマネージャを提供する。デジタルクロックマネージャは、スキュークロック信号と基準クロック信号とを同期させる出力クロック信号を生成する。さらに、デジタルクロックマネージャは並列発生周期の間に出力クロック信号と同期される周波数調節クロック信号を生成する。デジタルクロックマネージャは、遅延ロックループ（ＤＬＬ）とデジタル周波数合成器（ＤＦＳ）とを含む。出力クロック信号は、同期クロック信号よりもＤＬＬ出力遅延だけ遅れる。同様に、周波数調節クロック信号は同期クロック信号よりもＤＦＳ出力遅延だけ遅れる。ＤＬＬ出力遅延とＤＦＳ出力遅延とを一致させることにより、デジタルクロックマネージャは出力クロック信号と周波数調節クロック信号とを同期する。
2004511160.tif 000002
【特許請求の範囲】
【請求項１】
基準入力端子と、スキュー入力端子と、出力端子と、周波数調節出力端子とを有するデジタルクロックマネージャであって、
前記基準入力端子と、前記スキュー入力端子と、前記出力端子とに結合される遅延ロックループ（ＤＬＬ）と、
前記遅延ロックループと前記周波数調節出力端子とに結合される、デジタル周波数合成器とを含む、デジタルクロックマネージャ。
【請求項２】
前記遅延ロックループは、前記出力端子に出力クロック信号を生成するよう構成され、前記出力クロック信号は、前記基準入力端子の基準クロック信号と前記スキュー入力端子のスキュークロック信号とを同期させる、請求項１に記載のデジタルクロックマネージャ。
【請求項３】
前記デジタル周波数合成器は、前記周波数調節出力端子に周波数調節クロック信号を生成するよう構成され、前記周波数調節クロック信号は並列発生の間に前記出力クロック信号と同期される、請求項１に記載のデジタルクロックマネージャ。
【請求項４】
前記遅延ロックループは、ＤＬＬ出力遅延を有するＤＬＬ出力回路を含む、請求項１に記載のデジタルクロックマネージャ。
【請求項５】
前記遅延ロックループと前記出力端子との間に結合される可変遅延回路をさらに含む、請求項１に記載のデジタルクロックマネージャ。
【請求項６】
前記デジタル周波数合成器と前記周波数調節出力端子との間に結合される可変遅延回路をさらに含む、請求項１に記載のデジタルクロックマネージャ。
【請求項７】
基準信号から出力クロック信号と周波数調節クロック信号とを生成する方法であって、前記出力クロック信号は前記周波数調節クロック信号と並列発生の間に同期され、前記方法は、
同期クロック信号を生成するステップと、
ＤＬＬ出力遅延をＤＦＳ出力遅延と一致させるステップと、
ＤＬＬ出力遅延だけ前記同期クロック信号から遅れる出力クロック信号を生成するステップと、
並列発生の間に、前記周波数調節クロック信号のアクティブエッジが前記同期クロック信号のアクティブエッジからＤＦＳ出力遅延だけ遅れるよう、前記周波数調節クロック信号を生成するステップとを含む、方法。
【請求項８】
前記ＤＬＬ出力遅延をＤＦＳ出力遅延と一致させるステップは、ＤＬＬ出力回路とＤＦＳ出力回路とを同期させるステップを含む、請求項７に記載の方法。
【請求項９】
ロック獲得を行なうステップをさらに含む、請求項７に記載の方法。
【請求項１０】
ロック獲得の間に周波数探索を行なうステップをさらに含む、請求項７に記載の方法。
【発明の詳細な説明】
【０００１】
発明の分野
この発明は、デジタル電子機器のためのデジタルクロック回路に関する。より特定的には、この発明は、異なった周波数の多数の位相ロック出力クロック信号を生成し得るデジタルクロックマネージャに関する。
【０００２】
発明の背景
ボードレベルシステムおよびチップレベルシステムを含む同期デジタルシステムは、１つ以上のクロック信号により、システムを通して素子を同期する。典型的に、１つ以上のクロック信号は、システムにわたって１つ以上のクロック線上で分配される。しかしながら、クロックバッファ遅延、重い負荷のクロック線の高容量および伝播遅延などのさまざまな問題のために、システムの異なる部分でクロック信号の立上がりエッジが同期しないことがある。システムのある部分の立上がり（または立下がり）エッジとシステムの別の部分の対応の立上がり（または立下がり）エッジとの間の時間差を「クロックスキュー」と称する。
【０００３】
クロックスキューはデジタルシステムを誤動作させる可能性がある。たとえば、デジタルシステム中の回路は、第２のフリップフロップ入力を駆動する第１のフリップフロップ出力を有するのが一般的である。両フリップフロップのクロック入力上に同期したクロックがある場合、第１のフリップフロップ中のデータは正確に第２のフリップフロップにクロックされる。しかしながら、第２のフリップフロップ上のアクティブエッジがクロックスキュー分だけ遅延されると、第２のフリップフロップは、第１のフリップフロップが状態を変更する前に第１のフリップフロップからのデータを取り込まないことがある。
【０００４】
クロックスキューを最小化するため、デジタルシステムでは遅延ロックループを用いる。遅延ロックループは典型的に遅延素子を用い、システムの１つの部分での基準クロック信号のアクティブエッジをシステムの第２の部分からのフィードバッククロック信号と同期させる。図１は、論理回路１９０に結合された従来の遅延ロックループ１００のブロック図である。遅延ライン１１０および位相検出器１２０を含む遅延ロックループ１００は、基準クロック信号ＲＥＦ＿ＣＬＫを受け、かつ、出力クロック信号Ｏ＿ＣＬＫを駆動する。
【０００５】
遅延ライン１１０は、可変伝播遅延Ｄだけ基準クロック信号ＲＥＦ＿ＣＬＫを遅延して、出力クロック信号Ｏ＿ＣＬＫを出力する。したがって、出力クロック信号Ｏ＿ＣＬＫの各クロックエッジは、基準クロック信号ＲＥＦ＿ＣＬＫの対応のクロックエッジから伝播遅延Ｄだけ遅れている（図２（ａ）参照）。位相検出器１２０は後述のように遅延ライン１１０を制御する。遅延ライン１１０は、最小伝播遅延Ｄ＿ＭＩＮおよび最大伝播遅延Ｄ＿ＭＡＸを発生することができる。
【０００６】
出力クロック信号Ｏ＿ＣＬＫが論理回路１９０に到達する前に、出力クロック信号Ｏ＿ＣＬＫはクロックスキュー１８０によってスキューされる。クロックスキュー１８０は、さまざまなクロックバッファ（図示せず）における遅延または（たとえばクロック信号線に対する重い負荷による）出力クロック信号Ｏ＿ＣＬＫを搬送するクロック信号線上の伝播遅延によって引起こされ得る。出力クロック信号Ｏ＿ＣＬＫとスキューされた出力クロック信号Ｏ＿ＣＬＫとを区別するため、スキューされた方の信号をスキュークロック信号Ｓ＿ＣＬＫと称する。スキュークロック信号Ｓ＿ＣＬＫは、論理回路１９０内のクロックされた回路のクロック入力端子（図示せず）を駆動する。また、スキュークロック信号Ｓ＿ＣＬＫはフィードバック経路１７０上にを伝搬され、遅延ロックループ１００に戻される。典型的に、フィードバック経路１７０は、特に、スキュークロック信号Ｓ＿ＣＬＫの遅延ロックループ１００への伝搬専用である。したがって、フィードバック経路１７０上のいかなる伝播遅延も最小限のものであり、無視できるほどのスキューしか生じさせない。
【０００７】
図２（ａ）は、基準クロック信号ＲＥＦ＿ＣＬＫ、出力クロック信号Ｏ＿ＣＬＫおよびスキュークロック信号Ｓ＿ＣＬＫのタイミング図を示す。すべての３つのクロック信号は同じ周波数Ｆ（図示せず）および周期Ｐを有し、すべてアクティブハイである（すなわち、立上がりエッジがアクティブエッジである）。出力クロック信号Ｏ＿ＣＬＫは伝播遅延Ｄだけ遅延されるので、出力クロック信号Ｏ＿ＣＬＫのクロックエッジ２２０は、基準クロック信号ＲＥＦ＿ＣＬＫの対応のクロックエッジ２１０よりも伝播遅延Ｄだけ遅れている。同様に、スキュークロック信号Ｓ＿ＣＬＫのクロックエッジ２３０は、出力クロック信号Ｏ＿ＣＬＫの対応のクロックエッジ２２０よりも伝播遅延ＳＫＥＷだけ遅れている。なお、伝播遅延ＳＫＥＷはクロックスキュー１８０（図１）によって生じる伝播遅延である。したがって、スキュークロック信号Ｓ＿ＣＬＫのクロックエッジ２３０は、基準クロック信号ＲＥＦ＿ＣＬＫのクロックエッジ２１０よりも、伝播遅延Ｄ＋伝播遅延ＳＫＥＷに等しい伝播遅延ＤＳＫＥＷだけ遅れている。
【０００８】
遅延ロックループ１００は、遅延ライン１１０を制御することによって伝播遅延Ｄを制御する。しかしながら、遅延ライン１１０は負の遅延を発生することはできない。したがって、クロックエッジ２３０は、クロックエッジ２１０に同期することはできない。幸いに、クロック信号は周期的な信号である。したがって、遅延ロックループ１００は、スキュークロック信号Ｓ＿ＣＬＫのクロックエッジ２４０が基準クロック信号ＲＥＦ＿ＣＬＫのクロックエッジ２１０と同期するように、出力クロック信号Ｏ＿ＣＬＫをさらに遅延させることにより、基準クロック信号ＲＥＦ＿ＣＬＫとスキュークロック信号Ｓ＿ＣＬＫとを同期させることができる。図２（ｂ）に示されるように、伝播遅延Ｄは、伝播遅延ＤＳＫＥＷが周期Ｐに等しくなるように調節される。具体的には、伝播遅延Ｄが周期Ｐ−伝播遅延ＳＫＥＷと等しくなるまで伝播遅延Ｄを増加させるように遅延ライン１１０を調整する。伝播遅延ＤＳＫＥＷを周期Ｐの任意の倍数に増して同期を達成することができるが、大部分の遅延ロックループは、そのような大きな伝播遅延を発生可能な遅延ラインを含まない。
【０００９】
位相検出器１２０（図１）は遅延ライン１１０を制御して伝播遅延Ｄを調整する。遅延ロックループ１００の実際の制御メカニズムは異なり得る。たとえば、１つのタイプの遅延ロックループ１００では、遅延ライン１１０は、電源投入またはリセットの後、最小伝播遅延Ｄ＿ＭＩＮと等しい伝播遅延Ｄで起動される。位相検出器１１０は次に、基準クロック信号ＲＥＦ＿ＣＬＫがスキュークロック信号Ｓ＿ＣＬＫと同期するまで伝播遅延Ｄを増大させる。別のシステムでは、遅延ロックループ１００は、電源投入またはリセットの後、最小伝播遅延Ｄ＿ＭＩＮと最大伝播遅延Ｄ＿ＭＡＸとの平均と等しい伝播遅延Ｄで起動される。次に位相検出器１２０は、基準クロック信号ＲＥＦ＿ＣＬＫとスキュークロック信号Ｓ＿ＣＬＫとを同期させるために、伝播遅延Ｄを増大させるかまたは減少するか（またはそのいずれも行なわない）を決定する。たとえば、位相検出器１２０は、図２（ａ）に示されるクロック信号に対しては伝播遅延Ｄを増大させる。しかしながら、位相検出器１２０は、図２（ｃ）に示されるクロック信号に対しては伝播遅延Ｄを低減する。
【００１０】
図２（ｃ）では、スキュークロック信号Ｓ＿ＣＬＫは基準クロック信号ＲＥＦ＿ＣＬＫよりも「遅れている」と言われる。なぜなら、基準クロック信号ＲＥＦ＿ＣＬＫの立上がりエッジとスキュークロック信号Ｓ＿ＣＬＫの次の立上がりエッジとの間の時間が、スキュークロック信号Ｓ＿ＣＬＫの立上がりエッジと基準クロック信号ＲＥＦ＿ＣＬＫの次の立上がりエッジとの間の時間よりも小さいからである。しかしながら、図２（ａ）では、基準クロック信号ＲＥＦ＿ＣＬＫがスキュークロック信号Ｓ＿ＣＬＫよりも「遅れている」と言われる。なぜなら、スキュークロック信号Ｓ＿ＣＬＫの立上がりエッジと基準クロック信号ＲＥＦ＿ＣＬＫの次の立上がりエッジとの間の時間が、基準クロック信号ＲＥＦ＿ＣＬＫの立上がりエッジとスキュークロック信号Ｓ＿ＣＬＫの次の立上がりクロックエッジとの間の時間よりも小さいからである。これに代えて、図２（ａ）では、スキュークロック信号Ｓ＿ＣＬＫが基準クロック信号ＲＥＦ＿ＣＬＫよりも「進んでいる」と言える。
【００１１】
基準クロック信号ＲＥＦ＿ＣＬＫとスキュークロック信号Ｓ＿ＣＬＫとが同期した後、遅延ロックループ１００は、基準クロック信号ＲＥＦ＿ＣＬＫおよびスキュークロック信号Ｓ＿ＣＬＫをモニタし、かつ、伝播遅延Ｄを調節して同期を維持する。たとえば、おそらくは温度の上昇によって伝播遅延ＳＫＥＷが増大すると、遅延ロックループ１００は伝播遅延Ｄを減少させて補償しなければならない。これに対し、おそらくは温度の低下により伝播遅延ＳＫＥＷが減少すると、遅延ロックループ１００は伝播遅延Ｄを増大させて補償しなければならない。遅延ロックループ１００がまず基準クロック信号ＲＥＦ＿ＣＬＫとスキュークロック信号Ｓ＿ＣＬＫとを同期しようとしている時間をロック獲得と称する。遅延ロックループ１００が同期を維持しようとしている時間をロック維持と称する。ロック獲得の終わり、すなわち最初に同期が確立するときの伝播遅延Ｄの値を初期伝播遅延ＩＤと称する。
【００１２】
クロックスキューに関する別の複雑さは、異なった周波数での多数のクロック信号を有するマイクロプロセッサおよびＦＰＧＡのような、複雑なデジタルシステムに存在する。たとえば、いくつかのマイクロプロセッサにおいて、内部回路は第１のクロック周波数の第１のクロック信号によってクロックされるのに対し、入力／出力（Ｉ／Ｏ）回路は第２のクロック周波数の第２のクロック信号によってクロックされる。典型的には、第２のクロック周波数は第１のクロック周波数よりも遅い。
【００１３】
ほとんどのシステムは、第１のクロック信号を生成するための１つのクロック生成回路と、第１のクロック信号から他のクロック信号を導出するための専用回路とを用いる。たとえば、クロック分周器が、基準クロック信号からより低い周波数の１つ以上のクロック信号を生成するために用いられる。典型的には、クロック分周器は基準クロック信号の周波数を整数値で除算する。逆に、クロック逓倍器は基準クロック信号からより高い周波数の１つ以上のクロック信号を生成するために用いられる。クロック逓倍器とクロック分周器とを組合せると、基準クロック信号の周波数の分数値である周波数を有する１つ以上のクロック信号を生成し得るクロック回路をもたらす。
【００１４】
こうして、クロック回路は典型的には基準クロック信号ＲＥＦ＿ＣＬＫと結合されて周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成する。しかしながら、クロック回路は伝播遅延およびゲートスイッチング時間のために、付加的なスキューを加える。したがって、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫは、基準クロック信号ＲＥＦ＿ＣＬＫおよび出力クロック信号Ｏ＿ＣＬＫの両方と比較して、スキューし得る。よって、出力クロック信号および基準クロック信号の両方におけるスキューを補償し得る方法および回路に対する必要性が存在する。
【００１５】
要約
この発明は、デスキューされた出力クロック信号とデスキューされた周波数調節クロック信号とを生成するデジタルクロックマネージャを提供する。特定的には、出力クロック信号はスキュークロック信号と基準クロック信号とを同期させる。周波数調節クロック信号は、並列発生の間に出力クロック信号と同期される。一般的に、周波数調節クロック信号は選択クロック周波数に駆動されるが、該選択クロック周波数は、出力クロック信号のクロック周波数を乗数Ｍで乗算し、除数Ｄで除算したものに等しく、ここでＭおよびＤは自然数である。周波数調節クロック信号の周波数が選択周波数に等しく、かつ周波数調節クロック信号が出力クロック信号と同位相であれば、周波数調節クロック信号のＭ番目ごとの立上がりエッジが出力クロック信号の立上がりエッジと整列する。この整列は、一般に並列発生と称する。
【００１６】
デジタルクロックマネージャの一実施例は、遅延ロックループ（ＤＬＬ）とデジタル周波数合成器（ＤＦＳ）とを含む。遅延ロックループは、基準クロック信号とスキュークロック信号とを同期させる出力クロック信号を生成するよう構成される。遅延ロックループはまた、同期クロック信号をも生成し、これはデジタル周波数合成器に与えられる。遅延ロックループはＤＬＬ出力回路を有し、これはＤＬＬ出力遅延だけ同期クロック信号から遅れる出力クロック信号を生成する。デジタル周波数合成器においては、ＤＦＳ出力回路が、並列発生周期の間に、周波数調節クロック信号のアクティブエッジが同期クロック信号のアクティブエッジからＤＦＳ出力遅延だけ遅れる周波数調節クロック信号を生成する。ＤＬＬ出力遅延とＤＦＳ出力遅延とを一致させることにより、出力クロック信号と周波数調節クロック信号とは同期される。
【００１７】
以下の説明と図面とを参照することにより、この発明はより完全に理解されるであろう。
【００１８】
詳細な説明
図３は、この発明の一実施例に従った、デジタルクロックマネージャ３００のブロック図である。基準クロック信号ＲＥＦ＿ＣＬＫおよびスキュークロック信号Ｓ＿ＣＬＫを受けるデジタルクロックマネージャ３００は、スキュークロック信号Ｓ＿ＣＬＫを基準クロック信号ＲＥＦ＿ＣＬＫに同期させる出力クロック信号Ｏ＿ＣＬＫと、並列発生の間に出力クロック信号Ｏ＿ＣＬＫと位相ロックされる周波数調節クロック信号ＦＲＥＱ＿ＣＬＫとを生成する。一般的に、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫは、調節された周波数Ｆ＿ＡＤＪを有するが、これは出力信号Ｏ＿ＣＬＫの周波数を乗数Ｍで乗算し、かつ除数Ｄで除算したものと等しい。もし周波数調節クロック信号ＦＲＥＱ＿ＣＬＫがクロック信号Ｏ＿ＣＬＫと同位相であれば、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫのＭ番目ごとの立上がりエッジは、出力クロック信号Ｏ＿ＣＬＫの立上がりエッジと整列する。この整列を、一般に並列発生と称する。基準クロック信号ＲＥＦ＿ＣＬＫと出力クロック信号Ｏ＿ＣＬＫとは、同じ周波数を有する。明確化のために、基準周波数Ｆ＿ＲＥＦは、基準クロック信号ＲＥＦ＿ＣＬＫおよび出力クロック信号Ｏ＿ＣＬＫの両方の周波数を表わすために用いられる。
【００１９】
図３の実施例は、遅延ロックループ３１０とデジタル周波数合成器３２０とを含む。以下に遅延ロックループ３１０およびデジタル周波数合成器３２０の特定の実施例を説明するが、この発明の原理はほとんどいかなる遅延ロックループおよびいかなるデジタル周波数合成器に使用するように対応可能である。こうして、クロックマネージャ３００についての説明は、一般的な用語で遅延ロックループ３１０とデジタル周波数合成器３２０とを説明する。当業者においては、この発明の原理を適応させて、さまざまな遅延ロックループおよびデジタル周波数合成器を備えたデジタルクロックマネージャを製作することが可能である。
【００２０】
遅延ロックループ３１０は、ＤＬＬクロック回路３１２およびＤＬＬ出力回路３１４を含む。ＤＬＬクロック回路３１２は、同期クロック信号ＳＹＮＣＨ＿ＣＬＫを生成し、これはＤＬＬ出力回路３１４とデジタル周波数合成器３２０のＤＦＳ出力回路３２４に与えられる。一般的に、同期クロック信号ＳＹＮＣＨ＿ＣＬＫは、基準クロック信号ＲＥＦ＿ＣＬＫおよび出力クロック信号Ｏ＿ＣＬＫの周波数Ｆ＿ＲＥＦと等しい周波数を有する。ＤＬＬ出力回路３１４は、出力クロック信号Ｏ＿ＣＬＫを駆動する。ＤＬＬ出力回路３１４は、同期クロック信号ＳＹＮＣＨ＿ＣＬＫと出力クロック信号Ｏ＿ＣＬＫとの間にＤＬＬ出力遅延３１６を導入する。すなわち、出力クロック信号Ｏ＿ＣＬＫは、ＤＬＬ出力遅延３１６だけ同期クロック信号ＳＹＮＣＨ＿ＣＬＫよりも遅れる。ＤＬＬクロック回路３１２とＤＬＬ出力回路３１４とは併せて、スキュークロック信号Ｓ＿ＣＬＫを基準クロック信号ＲＥＦ＿ＣＬＫに同期させる。この発明の一実施例で用いられる遅延ロックループ３１０の具体的実施例を以下に説明する。
【００２１】
デジタル周波数合成器３２０は、同期クロック信号ＳＹＮＣＨ＿ＣＬＫを受け、調節された周波数Ｆ＿ＡＤＪを有する周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成するが、これは出力クロック信号Ｏ＿ＣＬＫの周波数を乗数Ｍで乗算し、かつ除数Ｄで除算したものに等しい。図３に示すように、デジタル周波数合成器３２０は、ＤＦＳクロック回路３２２とＤＦＳ出力回路３２４とを含む。ＤＦＳ出力回路３２４は、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを駆動し、ＤＦＳ出力遅延３２６を、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫと同期クロック信号ＳＹＮＣＨ＿ＣＬＫとの間に導入する。特定的には、同期クロック信号ＳＹＮＣＨ＿ＣＬＫと周波数調節クロック信号ＦＲＥＱ＿ＣＬＫとの並列発生周期の間に、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫのアクティブエッジは、ＤＦＳ出力遅延３２６だけ、同期クロック信号ＳＹＮＣＨ＿ＣＬＫのアクティブエッジより遅れる。ＤＦＳクロック回路３２２とＤＦＳ出力回路３２４とは組合されて、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成するために必要である周波数調節を行なう。
【００２２】
出力クロック信号Ｏ＿ＣＬＫが、ＤＬＬ出力遅延３１６だけ同期クロック信号ＳＹＮＣＨ＿ＣＬＫから遅れ、かつ周波数調節クロック信号ＦＲＥＱ＿ＣＬＫがＤＦＳ出力遅延３２６だけ同期クロック信号ＳＹＮＣＨ＿ＣＬＫから遅れるので、ＤＬＬ出力遅延３１６とＤＦＳ出力遅延３２６とを一致させることにより、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫと出力クロック信号Ｏ＿ＣＬＫとを同期させることができる。こうして、この発明のいくつかの実施例に従って、ＤＦＳ出力回路３２６およびＤＬＬ出力回路３１４の構成要素は、ＤＬＬ出力遅延３１６とＤＦＳ出力遅延３２６とを一致させるよう選択される。たとえば、この発明のいくつかの実施例においては、ＤＬＬ出力回路３１４およびＤＦＳ出力回路３２４は同一の構成要素を含む。さらに、この発明のいくつかの実施例においては、ＤＬＬ出力回路３１４のレイアウトおよび経路設定は、ＤＦＳ出力回路３２４のレイアウトおよび経路設定にぴったりと一致する。構成要素、レイアウト、および経路設定を一致させることにより、この発明のこれらの実施例は、ＤＬＬ出力遅延３１６とＤＦＳ出力遅延３２６とのほぼ完全な一致を達成する。
【００２３】
しかしながら、この発明のいくつかの実施例は、ＤＦＳ出力遅延３２６とＤＬＬ出力遅延３１６との好適な一致を達成することができない。これらの実施例については、さらなる遅延回路が用いられて、出力クロック信号Ｏ＿ＣＬＫと周波数調節クロック信号ＦＲＥＱ＿ＣＬＫとを同期させる。図４は、この発明の一実施例に従った、可変遅延回路４１０および４２０を用いるデジタルクロックマネージャ４００のブロック図である。デジタルクロックマネージャ４００は、デジタルクロックマネージャ３００と同様であるので、同じ参照符号が同じ要素について用いられる。さらに、簡略化のために、繰返される要素については説明が省かれる。可変遅延回路４１０は、ＤＬＬ出力回路３１４に結合され、出力クロック信号Ｏ＿ＣＬＫを生成する。同様に、可変遅延回路４２０はＤＦＳ出力回路３２４に結合されて、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成する。
【００２４】
デジタルクロックマネージャ４００においては、ＤＬＬ出力遅延３１６とＤＦＳ出力遅延３２６とを適切に一致させることができない。しかしながら、ＤＬＬ出力遅延３１６にさらなる遅延を与える可変遅延回路４１０と、ＤＦＳ出力遅延３２６にさらなる遅延を加える可変遅延回路４２０とを、出力クロック信号Ｏ＿ＣＬＫと周波数調節クロック信号ＦＲＥＱ＿ＣＬＫとを同期させるために用い得る。特定的には、ＤＬＬ出力遅延３１６に可変遅延回路４１０から与えられる遅延を足したものは、ＤＦＳ出力遅延３２６に可変遅延回路４２０から与えられる遅延を足したものと一致するべきである。この発明の多くの実施例においては、遅延一致は可変遅延回路４１０または４２０のいずれかのみを用いて達成し得る。したがって、これらの実施例は、可変遅延回路４１０と可変遅延回路４２０との両方を含む必要はない。
【００２５】
図５は、この発明の一実施例に従った、デジタルクロックマネージャ５００のブロック図である。デジタルクロックマネージャ５００はデジタルクロックマネージャ３００と同様であるので、同じ参照符号が同じ要素について用いられる。さらに、簡略化のために繰返される要素の説明が省かれる。デジタルクロックマネージャ５００は、デジタルクロックマネージャ３００と比較すると、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成するために要求される時間を低減する。当該技術分野においては周知であるように、遅延ロックループは、ロック獲得モードで動作してから、安定した出力クロック信号を生成する。同様に、デジタル周波数合成器は、さまざまな周波数探索位相で動作してから、安定した周波数調節クロック信号を生成する。デジタルクロックマネージャ３００においては、遅延ロックループ３１０は、最初にロック獲得モードに入ってから、同期クロック信号ＳＹＮＣＨ＿ＣＬＫを生成しなければならない。次いで、デジタル周波数生成器は、さまざまな周波数探索位相に入ってから、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成しなければならない。
【００２６】
しかしながら、デジタルクロックマネージャ５００においては、遅延ロックループ３１０によるロック獲得とデジタル周波数合成器３２０による周波数探索位相とを同時に行なって、出力クロック信号Ｏ＿ＣＬＫおよび周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成するのに必要となる時間を減じることが可能である。特定的には、デジタルクロックマネージャ５００は、マルチプレクサ５１０を含み、これは第１の入力端子を基準クロック信号ＲＥＦ＿ＣＬＫを受けるよう結合され、第２の入力端子を同期クロック信号ＳＹＮＣＨ＿ＣＬＫを受けるよう結合され、出力端子をデジタル周波数合成器３２０に結合される。マルチプレクサ５１０は、デジタル周波数合成器３２０からのクロック遷移制御信号ＣＬＫ＿ＴＲＡＮによって制御される。クロック遷移制御信号ＣＬＫ＿ＴＲＡＮは、遅延ロックループがロック獲得を行なっている間、またはデジタル周波数合成器３２０がクロック遷移に対して準備ができていない間に、インアクティブ状態に駆動される。もしクロック遷移制御信号がインアクティブ状態にあるならば、マルチプレクサ５１０は基準クロック信号ＲＥＦ＿ＣＬＫをデジタル周波数合成器３２０に結合する。
【００２７】
基準クロック信号ＲＥＦ＿ＣＬＫが既に基準周波数Ｆ＿ＲＥＦにあるので、デジタル周波数合成器３２０は、基準クロック信号ＲＥＦ＿ＣＬＫを用いて、必要な周波数探索位相を行なうことができる。遅延ロックループ３１０がロック獲得を終了した後で、制御信号ＤＬＬ＿ＬＯＣＫＥＤはアクティブ状態に駆動されて（たとえば論理ハイ）、遅延ロックループ３１０がロック獲得を完了したことをデジタル周波数合成器３２０に知らせる。次いで、デジタル周波数合成器が同期クロック信号ＳＹＮＣＨ＿ＣＬＫに遷移する準備ができたときに、クロック遷移制御信号ＣＬＫ＿ＴＲＡＮがアクティブ状態に駆動されるが、これにより同期クロック信号ＳＹＮＣＨ＿ＣＬＫがデジタル周波数合成器３２０に与えられる。たとえば、この発明のいくつかの実施例においては、デジタル周波数合成器３２０は周波数探索位相を完了した後で制御信号ＣＬＫ＿ＴＲＡＮを駆動し、同期クロック信号ＳＹＮＣＨ＿ＣＬＫを選択する。さらに、この発明のいくつかの実施例においては、デジタル周波数合成器３２０は停止された後で基準クロック信号ＲＥＦ＿ＣＬＫから同期クロック信号ＳＹＮＣＨ＿ＣＬＫに切換わり、次いで再始動される。こうして、デジタルクロックマネージャ５００は、遅延ロックループ３１０によるロックの獲得とデジタル周波数合成器３２０による周波数探索とを同時に行なうことを可能にすることにより、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成するために必要となる時間を減じる。
【００２８】
図６は、この発明の１つの実施例に従う遅延ロックループ６００を用いるシステムのブロック図である。遅延ロックループ６００は、遅延ライン６１０、クロック移相器６５０、コントローラ６３０、出力生成器６４０および位相検出器６２０を含む。遅延ロックループ６００は、基準入力端子６０２で基準クロック信号ＲＥＦ＿ＣＬＫを受け、出力端子６０４に出力クロック信号Ｏ＿ＣＬＫを生成する。図１について上述されたように、出力クロック信号Ｏ＿ＣＬＫはクロックスキュー１８０だけスキューされてスキュークロック信号Ｓ＿ＣＬＫとなり、これが論理回路１９０をクロックする。また、スキュークロック信号Ｓ＿ＣＬＫは、フィードバック経路１７０を遅延ロックループ６００のフィードバック端子６０６に戻される。
【００２９】
遅延ロックループ６００内で、基準クロック信号ＲＥＦ＿ＣＬＫは遅延ライン６１０によって遅延され、遅延クロック信号Ｄ＿ＣＬＫを生成する。遅延クロック信号Ｄ＿ＣＬＫは、遅延ライン６１０でクロック信号ＲＥＦ＿ＣＬＫから伝播遅延Ｄだけ遅延される。遅延ロックループ６００の１つの実施例は、「グレイコードマルチプレクサを用いたグリッチレス遅延ライン」（“Ｇｌｉｔｃｈｌｅｓｓ Ｄｅｌａｙ Ｌｉｎｅ Ｕｓｉｎｇ Ｇｒａｙ Ｃｏｄｅ Ｍｕｌｔｉｐｌｅｘｅｒ”）と題された、米国特許出願連続番号第０９／１０２，７０４号に記載の調節可能遅延ラインを用いる。しかしながら、他の調節可能遅延ラインも遅延ロックループ６００とともに用いることができる。遅延クロック信号Ｄ＿ＣＬＫは、クロック移相器６５０の入力端子および出力生成器６４０の入力端子に与えられる。
【００３０】
クロック移相器６５０は１つ以上の移相クロック信号Ｐ＿ＣＬＫ＿１からＰ＿ＣＬＫ＿Ｎ−１を生成する。ここでＮは正の整数である。１つの実施例では、移相クロック信号Ｐ＿ＣＬＫ＿１は遅延クロック信号Ｄ＿ＣＬＫから３６０／Ｎ°だけ移相される。移相クロック信号Ｐ＿ＣＬＫ＿２は２＊（３６０／Ｎ）°だけ移相される。移相クロック信号Ｐ＿ＣＬＫ＿Ｎ−１は（Ｎ−１）＊（３６０／Ｎ）°だけ移相される。したがって、一般的に、移相クロック信号Ｐ＿ＣＬＫ＿ＺはＺ＊（３６０／Ｎ）だけ移相される。ここでＺは１以上（Ｎ−１）以下の整数である。遅延クロック信号Ｄ＿ＣＬＫは移相クロック信号Ｐ＿ＣＬＫ＿０と考えることができる。なぜなら、遅延クロック信号Ｄ＿ＣＬＫはそれ自身から０°移相を有するからである。さらに、遅延ロックループ６００のいくつかの実施例では、クロック移相器６５０は、遅延クロック信号Ｄ＿ＣＬＫと同じ位相および周波数を有する移相信号Ｐ＿ＣＬＫ＿Ｎを生成する。
【００３１】
したがって、Ｎが４と等しい場合のクロック移相器６５０の実施例では、移相クロック信号Ｐ＿ＣＬＫ＿１は、遅延クロック信号Ｄ＿ＣＬＫから９０°移相される。このことから、移相クロック信号Ｐ＿ＣＬＫ＿２は遅延クロック信号Ｄ＿ＣＬＫから１８０°移相され、移相クロック信号Ｐ＿ＣＬＫ＿３は遅延クロック信号Ｄ＿ＣＬＫから２７０°移相されることが論理的にわかる。しかしながら、この発明の原則は、移相クロック信号間で他のパターンの移相を用いるクロック移相器６５０の他の実施例にも好適である。
【００３２】
移相はクロック信号の周波数領域における概念である。時間領域において移相と同等であるのはクロック信号を遅延させることである。具体的に、第１のクロック信号が第２のクロック信号からＸ°だけ移相されると、第１のクロック信号はＸ＊（Ｐ／３６０）だけ遅延される。ここで、Ｐは第１および第２のクロック信号の周期である。したがって、移相クロック信号Ｐ＿ＣＬＫ＿１が遅延クロック信号Ｄ＿ＣＬＫから９０°移相されると、移相クロック信号Ｐ＿ＣＬＫ＿１は遅延クロック信号Ｄ＿ＣＬＫの周期の４分の１だけ遅延される。移相によって生じる遅延と他の伝播遅延とを区別するため、移相による遅延を移送遅延Ｐ＿Ｄ＿Ｚと称する。移相クロック信号Ｐ＿ＣＬＫ＿ＺはＺ＊（３６０／Ｎ）°だけ移相されるので、移相クロック信号Ｐ＿ＣＬＫ＿ＺはＺ＊（Ｐ／Ｎ）に等しい移送遅延Ｐ＿Ｄ＿Ｚを有する。ここで、Ｚは１以上（Ｎ−１）以下の整数である。
【００３３】
図７は、Ｎが４と等しい場合の遅延ロックループ６００（図６）のためのタイミング図である。具体的に、クロック移相器６５０は、遅延クロック信号Ｄ＿ＣＬＫと９０°位相がずれた移相クロック信号Ｐ＿ＣＬＫ＿１を生成する。したがって、移相クロック信号Ｐ＿ＣＬＫ＿１はクロック周期Ｐの４分の１だけ遅延される。クロック移相器６５０は、遅延クロック信号Ｄ＿ＣＬＫと１８０°位相がずれた移相クロック信号Ｐ＿ＣＬＫ＿２を生成する。したがって、移相クロック信号Ｐ＿ＣＬＫ＿２はクロック周期Ｐの半分だけ遅延される。最後に、クロック移相器６５０は、遅延クロック信号Ｄ＿ＣＬＫから２７０°位相がずれた移相クロック信号Ｐ＿ＣＬＫ＿３を生成する。したがって、移相クロック信号Ｐ＿ＣＬＫ＿３はクロック周期Ｐの４分の３だけ遅延される。
【００３４】
図６に戻って、クロック移相器６５０は、移相クロック信号を出力生成器６４０のさまざまな入力端子に与える。遅延ロックループ６００のいくつかの実施例では、クロック移相器６５０は、オプションのコンフィギュレーションバス６６０上の１つ以上のコンフィギュレーション信号ＣＦＧを用いて構成され得る。コンフィギュレーション信号ＣＦＧによって構成されるクロック移相器６５０の実施例が、図１０について以下に記載される。コンフィギュレーション信号ＣＦＧはコンフィギュレーション端子６０８で受けられ、コンフィギュレーションバス６６０によりクロック移相器６５０およびコントローラ６３０に伝搬される。出力生成器６４０は遅延クロック信号Ｄ＿ＣＬＫまたは移相クロック信号のうち１つのいずれかを選択して出力クロック信号Ｏ＿ＣＬＫとして与える。クロック移相器６５０が移相クロック信号Ｐ＿ＣＬＫ＿Ｎを与える遅延ロックループ６００の実施例について、出力生成器６４０は、遅延クロック信号Ｄ＿ＣＬＫの代わりに移相クロック信号Ｐ＿ＣＬＫ＿Ｎを用いることができる。コントローラ６３０は出力生成器６４０を制御する。
【００３５】
コントローラ６３０は、位相検出器６２０から、基準クロック信号ＲＥＦ＿ＣＬＫおよびスキュークロック信号Ｓ＿ＣＬＫに関する移相情報を受ける。具体的に、位相検出器６２０は、基準クロック信号ＲＥＦ＿ＣＬＫとスキュークロック信号Ｓ＿ＣＬＫとの同期を達成するためには遅延ライン６１０からの伝播遅延Ｄを増大させるべきかまたは減少させるべきかをコントローラ６３０に知らせる。伝播遅延Ｄを増大させるかまたは減少させるかを定めるのみである位相検出器６２０の実施例について、ジッタフィルタ（図示せず）を用いてクロックジッタを低減することができる。１つの実施例では、ジッタフィルタは、伝播遅延Ｄを低減すべき場合には１だけ減分され、伝播遅延Ｄを増大すべき場合には１だけ増分するアップ／ダウンカウンタ（図示せず）である。しかしながら、アップ／ダウンカウンタが０または他の予め定められた数に達するまでは伝播遅延Ｄは調節されない。伝播遅延が調節されると、アップ／ダウンカウンタは最大値の２分の１にリセットされる。他の実施例では、位相検出器６２０は、伝播遅延Ｄを増大させるまたは減少させるべき量を計算する。ロック獲得の間、コントローラ６３０は、伝播遅延Ｄの初期伝播遅延ＩＤがロックウインドウＷ内に存在するように、スキュークロック信号Ｓ＿ＣＬＫと基準クロック信号ＲＥＦ＿ＣＬＫとを同期させようとする。
【００３６】
図８はロックウインドウＷの概念を図示する。上述のように、伝播遅延Ｄは、最小伝播遅延Ｄ＿ＭＩＮと最大伝播遅延Ｄ＿ＭＡＸとの間になければならない。Ｄ＿ＭＩＮおよびＤ＿ＭＡＸの典型的な値はそれぞれ３．２ナノ秒および４６．８ナノ秒である。ロック獲得の間、コントローラ６３０は、伝播遅延Ｄの初期伝播遅延ＩＤが確実にロックウインドウＷ内にあるようにする。具体的に、最初に同期が確立されるとき、初期伝播遅延ＩＤはロックウインドウ最小値Ｗ＿ＭＩＮとロックウインドウ最大値Ｗ＿ＭＡＸとの間になければならない。ロックウインドウＷの限界は、遅延ロックループ６００が一旦ロック獲得を完了すると、遅延ロックループ６００を含むシステムがシステムの設計ガイドライン内で動作する限りは遅延ロックループ６００が同期を維持できるのを保証するように設定される。
【００３７】
たとえば、遅延ロックループ６００を含むシステムは、一般的に、動作条件範囲内で動作することができる。動作条件範囲は、伝播遅延値ＳＫＥＷ＿ＭＡＸで伝播遅延ＳＫＥＷが最大となる最大極限条件を含む。同様に、動作条件範囲は、伝播遅延値ＳＫＥＷ＿ＭＩＮで伝播遅延ＳＫＥＷが最小となる最小極限条件も含む。したがって、システムの動作の間の伝播遅延ＳＫＥＷの最大変化（ＤＥＬＴＡ＿ＳＫＥＷ）は伝播遅延値ＳＫＥＷ＿ＭＡＸ−伝播遅延値ＳＫＥＷ＿ＭＩＮと等しい（すなわち、ＤＥＬＴＡ＿ＳＫＥＷ＝ＳＫＥＷ＿ＭＡＸ−ＳＫＥＷ＿ＭＩＮ）。ロック維持の間の最大限の保護のため、ロックウインドウ最小値Ｗ＿ＭＩＮは、最小伝播遅延Ｄ＿ＭＩＮ＋ＤＥＬＴＡ＿ＳＫＥＷと等しいものであり得る。同様に、ロックウインドウ最大値Ｗ＿ＭＡＸは、最大伝播遅延Ｄ＿ＭＡＸ−ＤＥＬＴＡ＿ＳＫＥＷと等しいものであり得る。この発明の１つの実施例では、ロックウインドウ最小値Ｗ＿ＭＩＮは最大伝播遅延Ｄ＿ＭＡＸの約１６．５％と等しく、ロックウインドウ最大値Ｗ＿ＭＡＸは最大伝播遅延Ｄ＿ＭＡＸの約６７．８％と等しい。
【００３８】
図１を参照して上述のように、従来の遅延ロックループについては、スキュークロック信号Ｓ＿ＣＬＫと基準クロック信号ＲＥＦ＿ＣＬＫとの同期は、伝播遅延Ｄと伝播遅延ＳＫＥＷとを加算すると周期Ｐの倍数に等しい場合に達成される。方程式の形では次のとおりである。
【００３９】
Ｄ＋ＳＫＥＷ＝ＭＵＬＴ（Ｐ）　　　　　　　　　　（１）
ここでＭＵＬＴ（Ｐ）はＰの倍数を指す。通常は、ＳＫＥＷよりも大きいＰの最小倍数が用いられる。
【００４０】
遅延ロックループ６００により、コントローラ６３０は移相クロック信号からの遅延をも用い得る。こうして遅延ロックループ６００は、伝播遅延と、移相クロック信号からの移相遅延Ｐ＿Ｄと、伝播遅延ＳＫＥＷとを加算して周期Ｐの倍数になれば、同期を達成する。方程式の形では以下のとおりである。
【００４１】
Ｄ＋Ｐ＿Ｄ＿Ｚ＋ＳＫＥＷ＝ＭＵＬＴ（Ｐ）　　　　（２）
ここで、Ｐ＿Ｄ＿Ｚは、移相クロック信号Ｐ＿ＣＬＫ＿Ｚからの移相遅延を指す。通常、伝播遅延ＳＫＥＷよりも大きなＰの最小倍数に移相遅延Ｐ＿Ｄ＿Ｚを加算したものが用いられる。図６を参照して上に説明したように、クロック移相器６５０の一実施例においては、移相クロック信号Ｐ＿ＣＬＫ＿Ｚの移相遅延Ｐ＿Ｄ＿ＺはＺ＊（Ｐ／Ｎ）に等しく、ここで、Ｚは、０以上（Ｎ−１）以下の整数である。もしＺが０に等しければ、コントローラ６３０は出力生成器６４０に出力クロック信号Ｏ＿ＣＬＫとして遅延クロック信号Ｄ＿ＣＬＫを使用させる。こうして、移相遅延Ｐ＿Ｄ＿０は０に等しい。
【００４２】
明確化のために、初期遅延ＩＤは、もし出力生成器６４０が出力クロック信号Ｏ＿ＣＬＫに対して遅延クロック信号Ｄ＿ＣＬＫを用いるのであれば、初期遅延ＩＤ＿０と呼ぶことができる。同様に、初期遅延ＩＤは、もし出力生成器６４０が出力クロック信号Ｏ＿ＣＬＫに対して移相クロック信号Ｐ＿ＣＬＫ＿Ｚを用いるのであれば、初期遅延ＩＤ＿Ｚと呼ぶことができるが、ここで、Ｚは１以上（Ｎ−１）以下の正の整数である。こうして、ロック獲得の最後に、方程式（２）は次のとおりに書換えることができる。
【００４３】
ＩＤ＿Ｚ＋Ｐ＿Ｄ＿Ｚ＋ＳＫＥＷ＝ＭＵＬＴ（Ｐ）　　　（３）
方程式（３）を再構成すると、以下のとおりである。
【００４４】
ＩＤ＿Ｚ＝ＭＵＬＴ（Ｐ）−ＳＫＥＷ−Ｐ＿Ｄ＿Ｚ　　　（４）
Ｚ＊（Ｐ／Ｎ）をＰ＿Ｄ＿Ｚに代入すると、以下のとおりである。
【００４５】
ＩＤ＿Ｚ＝ＭＵＬＴ（Ｐ）−ＳＫＥＷ−Ｚ＊（Ｐ／Ｎ）　（５）
通常、正の初期遅延ＩＤ＿ＺをもたらすＰの最小倍数が用いられる。初期遅延ＩＤ＿Ｚが最小伝播遅延Ｄ＿ＭＩＮよりも小さいか、または最大伝播遅延Ｄ＿ＭＡＸよりも大きい場合は、遅延ロックループ６００は移相クロック信号Ｐ＿ＣＬＫ＿Ｚを用いて、スキュークロック信号Ｓ＿ＣＬＫと基準クロック信号ＲＥＦ＿ＣＬＫとを同期させることができない。
【００４６】
コントローラ６３０は、出力クロック信号Ｏ＿ＣＬＫを駆動させるために、移相クロック信号Ｐ＿ＣＬＫ＿Ｚの任意の１つを選択できるので、コントローラ６３０はＮ個の初期遅延値から選択することができる。可能な初期遅延値の範囲は、最小オフセット値（ＭＵＬＴ（Ｐ）−ＳＫＥＷ）から最大値（ＭＵＬＴ（Ｐ）−ＳＫＥＷ）および（Ｎ−１）／Ｎ周期Ｐにわたる。各初期遅延値の間の差は、周期ＰをＮで除算したものである。たとえば、もしＮが４に等しく、周期Ｐが４０ナノ秒に等しく、伝播遅延ＳＫＥＷが２５ナノ秒に等しければ、初期遅延ＩＤ＿０、ＩＤ＿１、ＩＤ＿２、およびＩＤ＿３は、それぞれ１５ナノ秒、５ナノ秒、３５ナノ秒、および２５ナノ秒に等しい（方程式（５）を用いて計算する）。もしＮが４に等しく、周期Ｐが４０ナノ秒に等しく、伝播遅延ＳＫＥＷが５５ナノ秒に等しければ、初期遅延ＩＤ＿０、ＩＤ＿１、ＩＤ＿２、およびＩＤ＿３はそれぞれ２５ナノ秒、１５ナノ秒、５ナノ秒および３５ナノ秒に等しい。こうして、コントローラ６３０は、ロックウインドウＷ内に１つ以上の初期遅延値を見出し得る。もし１つ以上の初期遅延がロックウインドウＷ内にあれば、コントローラ６３０はロックウインドウＷ内の初期遅延値の任意の１つを選択し得る。
【００４７】
コントローラ６３０のいくつかの実施例は、上述の計算を行なって、どの移相クロック信号Ｐ＿ＣＬＫ＿Ｚを用いるかを決定し得る。しかしながら、他の実施例は、試行錯誤を用いて、どの移相クロック信号Ｐ＿ＣＬＫ＿Ｚを用いるかを決定する。コントローラ６３０の試行錯誤を用いる実施例は、後に図１２を参照して説明する。
【００４８】
図９は、図６のクロック移相器６５０の一実施例を示す。図９におけるクロック移相器６５０の実施例は、位相検出器９２０と、複数の遅延ライン９１０＿１から９１０＿Ｎを含む。遅延ライン９１０＿１から９１０＿Ｎは、直列に結合される。遅延ライン９１０＿１の入力端子は、遅延クロック信号Ｄ＿ＣＬＫ（図６）のような入力クロック信号を受ける。遅延ライン９１０＿Ｎの出力端子は、位相検出器９２０の入力端子に結合される。位相検出器９２０は、別の入力端子で入力クロック信号Ｄ＿ＣＬＫをも受ける。位相検出器９２０は、制御ライン９２５を介してすべての遅延ラインを並行して制御し、各遅延ラインは、同じ量の伝播遅延をもたらす。したがって、遅延ライン９１０＿Ｎの出力端子上の入力クロック信号Ｄ＿ＣＬＫおよびクロック信号Ｐ＿ＣＬＫ−Ｎは同期される、すなわち、同位相である。さらに、位相検出器９２０は、遅延ライン９１０＿１から９１０＿Ｎによって生成された伝播遅延の合計を、入力信号の１つの周期Ｐと等しくさせる。こうして、各遅延ラインはＰ／Ｎの伝播遅延をもたらす。こうして、遅延ライン９１０＿１の出力端子は、入力クロック信号からＰ／Ｎだけ遅延されるクロック信号を提供するのに対し、遅延ライン９１０＿２の出力端子は、入力信号から２＊Ｐ／Ｎだけ遅延されるクロック信号をもたらす。一般的に、遅延ライン９１０＿Ｚの出力端子は、入力信号からＺ＊Ｐ／Ｎだけ遅延されたクロック信号を提供するが、ここでＺは１以上Ｎ−１以下の整数である。したがって、もし入力クロック信号が遅延クロック信号Ｄ＿ＣＬＫであれば、遅延ライン９１０＿１から９１０＿Ｎ−１の出力端子は、それぞれＰ＿ＣＬＫ＿１からＰ＿ＣＬＫ＿Ｎ−１の移相クロック信号をもたらす。クロック移相器６５０のいくつかの実施例は、遅延クロック信号Ｄ＿ＣＬＫと同位相であるクロック信号Ｐ＿ＣＬＫ＿Ｎを遅延ライン９１０＿Ｎの出力端子に生成する。
【００４９】
図１０は、図６のクロック移相器６５０の構成可能な実施例を示す。特定的には、図１０のクロック移相器は、第１のモードにおいて入力クロック信号に対し９０°、１８０°、および２７０°位相がずれている３つの移相クロック信号を生成するよう構成され得る。第２のモードにおいては、図１０のクロック移相器は、入力クロック信号に対し１８０°位相がずれている単一の移相クロック信号を生成する。図１０のクロック移相器は、位相検出器１０２０、遅延ライン１０１０＿１、１０１０＿２、１０１０＿３、および１０１０＿４、およびマルチプレクサ１０３０＿１、１０３０＿２、１０３０＿３、および１０３０＿４を含む。コンフィギュレーションライン１０４０は、マルチプレクサ１０３０＿１から１０３０＿４の選択端子に結合される。
【００５０】
遅延ライン１０１０＿１の入力端子は、遅延クロック信号Ｄ＿ＣＬＫ（図６）のような入力クロック信号を受けるよう結合される。各遅延ライン１０１０＿Ｚの出力端子は、マルチプレクサ１０３０＿Ｚの論理１入力端子に結合され、ここでＺは、１以上４以下の整数である。各マルチプレクサ１０３０＿Ｚの出力端子は、遅延ライン１０１０＿Ｚ＋１の入力端子に結合され、ここでＺは１以上３以下の整数である。マルチプレクサ１０３０＿４の出力端子は、位相検出器１０２０の入力端子に結合される。マルチプレクサ１０３０＿１およびマルチプレクサ１０３０＿３の論理０入力端子は、接地に結合される。しかしながら、マルチプレクサ１０３０＿２の論理０入力端子は、遅延ライン１０１０＿１の出力端子に結合される。同様に、マルチプレクサ１０３０＿４の論理０入力端子は、遅延ライン１０１０＿３の出力端子に結合される。位相検出器１０２０はまた、別の入力端子で入力クロック信号Ｄ＿ＣＬＫを受ける。位相検出器１０２０は、位相検出器９２０に関して上述のように、遅延ライン１０１０＿１から１０１０＿４を並行に制御する。
【００５１】
コンフィギュレーションライン１０４０が論理１にされると、これは図１０の実施例を第１のモードに入れ、遅延ライン１０１０＿１から１０１０＿４は直列に結合される。第１のモードにおいては、各遅延ラインはＰ／４の遅延をもたらす。こうして、もし入力クロック信号が遅延クロック信号Ｄ＿ＣＬＫであれば、各マルチプレクサ１０３０＿Ｚの出力端子は移相クロック信号Ｐ＿ＣＬＫ＿１、Ｐ＿ＣＬＫ＿２、およびＰ＿ＣＬＫ＿３をもたらし得る。
【００５２】
しかしながら、もしコンフィギュレーションライン１０４０が論理０にされると、これは図１０の実施例を第２のモードに入れ、遅延ライン１０１０＿１および遅延ライン１０１０＿３のみが直列に結合される。遅延ライン１０１０＿２および１０１０＿４はそれらの入力端子をマルチプレクサ１０３０＿１および１０３０＿３をそれぞれ介して接地に結合される。第２のモードにおいては、遅延ライン１０１０＿１および１０１０＿３は各々、Ｐ／２の遅延をもたらす。遅延ライン１０１０＿２および１０１０＿４の入力端子を接地に結合すると、消費電力とスイッチングノイズとが減じられる。しかしながら、第２のモードにおいては、図１０の実施例は１つの出力クロック信号しか生成せず、これは入力クロック信号に対して１８０°位相がずれており、マルチプレクサ１０３０＿２の出力端子で生成される。
【００５３】
図１１は、図６の出力生成器６４０の一実施例を示す。図１１の出力生成器は、Ｎ入力マルチプレクサ１１１０を含む。Ｎ入力マルチプレクサ１１１０は、１１１０＿０から１１１０＿Ｎ−１と符号付けされるＮ個の入力端子と、選択端子１１１２と、出力端子１１１４とを含む。図１１の出力生成器６４０の実施例が図６の遅延ロックループ６００で用いられる場合、選択端子１１１２がコントローラ６３０に結合され、入力端子１１１０＿０は遅延クロック信号Ｄ＿ＣＬＫを受けるよう結合され、出力端子１１１４は出力クロック信号Ｏ＿ＣＬＫをもたらし、入力端子１１１０＿１から１１１０＿Ｎ−１はそれぞれ移相クロック信号Ｐ＿ＣＬＫ＿１からＰ＿ＣＬＫ＿Ｎ−１を受けるよう結合される。選択端子１１１２上の選択信号は、どの入力信号が出力端子１１１４に与えられるかを決定する。出力生成器６４０の他の実施例は、クロックバッファおよびクロック分周器のような、さらなる回路を含む。さらに、出力生成器６４０のいくつかの実施例は、さまざまなバージョンの移相クロック信号のような、さらなるクロック信号を駆動し得る。
【００５４】
図１２は、図６のコントローラ６３０の一実施例に対するステート図１２００を示す。電源投入時またはリセット時に、コントローラ６３０はリセットステージ１２１０に遷移する。リセットステージ１２１０において、コントローラ６３０は位相カウンタ（図示せず）を０に設定し、これにより出力生成器６４０は出力クロック信号Ｏ＿ＣＬＫとして遅延クロック信号Ｄ＿ＣＬＫを提供し、遅延ライン６１０の伝播遅延Ｄは開始遅延値に調節される（図６）。伝播遅延Ｄに対する開始遅延値は、たとえば、最小伝播遅延Ｄ＿ＭＩＮ、最大伝播遅延Ｄ＿ＭＡＸ、または最小伝播遅延Ｄ＿ＭＩＮおよび最大伝播遅延Ｄ＿ＭＡＸの平均を含み得る。コントローラ１２１０は次いで、ロック獲得ステージ１２２０に遷移する。
【００５５】
ロック獲得ステージ１２２０において、コントローラ６３０は基準クロック信号ＲＥＦ＿ＣＬＫとスキュークロック信号Ｓ＿ＣＬＫとを同期させる。特定的には、コントローラ６３０は位相検出器６２０からの信号に基づいて遅延ライン６１０の伝播遅延Ｄを調節する。位相検出器６２０は、スキュークロック信号Ｓ＿ＣＬＫと基準クロック信号ＲＥＦ＿ＣＬＫとを同期させるために、伝播遅延Ｄを増大させるべきかまたは減少させるべきかを判断する。ロック獲得は、図６から図９を参照して上に詳細に説明した。したがって、その説明は繰返さない。いくつかの実施例においては、クロック移相器６５０はまた、電源投入／リセット信号によってリセットされる。これらの実施例のいくつかについては、コントローラ６３０は、クロック移相器６５０が移相クロック信号Ｐ＿ＣＬＫ＿１からＰ＿ＣＬＫ＿Ｎ−１を生成するまで、伝播遅延Ｄを調節しない。もしコントローラ６３０が、スキュークロック信号Ｓ＿ＣＬＫと基準クロック信号ＲＥＦ＿ＣＬＫとを同期させることができなければ、コントローラ６３０は増分位相ステージ１２５０に遷移するが、これを以下に説明する。そうでなければ、コントローラ６３０は、コントローラ６３０がスキュークロック信号Ｓ＿ＣＬＫと基準クロック信号ＲＥＦ＿ＣＬＫとを（遅延ライン６１０における初期伝播遅延ＩＤで）同期させた後に、チェックロックウインドウステージ１２３０に遷移する。。
【００５６】
チェックロックウインドウステージ１２３０において、コントローラ６３０は初期伝播遅延ＩＤがロックウインドウＷ内にあるか否かを判断しなければならない。特定的には、伝播遅延ＩＤがロックウインドウ最小Ｗ＿ＭＩＮよりも大きく、かつロックウインドウ最大Ｗ＿ＭＡＸよりも小さければ、伝播遅延ＩＤはロックウインドウＷ内にある。初期伝播遅延ＩＤがロックウインドウＷ内になければ、コントローラ６３０は増分位相ステージ１２５０に遷移する。そうでなければ、コントローラ６３０はロック維持ステージ１２４０に遷移する。
【００５７】
ロック維持ステージ１２４０において、コントローラ６３０は、遅延ライン６１０の伝播遅延Ｄを調節して、スキュークロック信号Ｓ＿ＣＬＫと基準クロック信号ＲＥＦ＿ＣＬＫとの同期を維持する。ロック維持は、上で詳細に説明した。したがって、その説明は繰返さない。上述のように、この発明はロックを、システム環境状態全体にわたって維持することができる。したがって、コントローラ６３０をリセットステージ１２１０に遷移させるリセットが発生しない限り、コントローラ６３０はロック維持ステージ１２４０にとどまる。
【００５８】
増分位相ステージ１２５０において、コントローラ６３０は位相カウンタを増分し、これにより出力生成器６４０は異なった移相クロック信号を選択する。さらに、コントローラ６３０は、遅延ライン６１０をリセットして、伝播遅延Ｄをリセットステージ１２１０において用いられた開始遅延値に戻す。コントローラ６３０は次いで、ロック獲得ステージ１２２０に遷移して、上述のように続行する。
【００５９】
図１３は、遅延ロックループ６００の別の実施例のブロック図である。図１３の実施例は、図６の実施例について説明した原理と同じ原理を用いる。しかしながら、図１３の実施例においては、クロック移相器６５０は基準クロック信号ＲＥＦ＿ＣＬＫを用いて移相クロック信号Ｐ＿ＣＬＫ＿１からＰ＿ＣＬＫ＿Ｎ−１を生成する。基準クロック信号ＲＥＦ＿ＣＬＫおよび移相クロック信号Ｐ＿ＣＬＫ＿１からＰ＿ＣＬＫ＿Ｎ−１は、入力セレクタ１３４０に結合される。入力セレクタ１３４０は、基準クロック信号ＲＥＦ＿ＣＬＫ、または移相クロック信号Ｐ＿ＣＬＫ＿１からＰ＿ＣＬＫ＿Ｎ−１のうちの１つを遅延ライン入力クロック信号ＤＬＩ＿ＣＬＫとして選択し、これは遅延ライン６１０の入力端子に与えられる。遅延ライン６１０は、出力クロック信号Ｏ＿ＣＬＫを駆動する。コントローラ１３３０は、位相検出器６２０によって与えられた位相情報に基づいて入力セレクタ１３４０と遅延ライン６１０とを制御し、それにより遅延ライン６１０は、スキュークロック信号Ｓ＿ＣＬＫと基準クロック信号ＲＥＦ＿ＣＬＫとを同期させる伝播遅延Ｄをもたらす。入力セレクタ１３４０は、出力生成器６４０と同様の回路設計を用いて実現し得る。
【００６０】
図１４（ａ）は、この発明の一実施例に従ったデジタル周波数合成器１４００のブロック図である。デジタル周波数合成器１４００は、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成するが、これは同期クロック信号ＳＹＮＣＨ＿ＣＬＫのクロック周波数Ｆ＿ＳＹＮＣＨを乗数Ｍで乗算し、かつ除数Ｄで除算したものに等しいクロック周波数Ｆ＿ＡＤＪを有する（すなわち、Ｆ＿ＡＤＪ＝Ｍ＊Ｆ＿ＳＹＮＣＨ／Ｄ）。上述のように、デジタル周波数合成器３２０がデジタルクロックマネージャ３００、４００または５００に用いられる場合、同期クロック信号ＳＹＮＣＨ＿ＣＬＫのクロック周波数Ｆ＿ＳＹＮＣＨは、基準クロック信号ＲＥＦ＿ＣＬＫのクロック周波数Ｆ＿ＲＥＦに等しい。デジタル周波数合成器１４００は、クロック分周器１４１０および１４２０、任意のクロックセレクタ１４３０、位相比較器１４４０、停止／再始動回路１４４５、初期化回路１４５０、発振器制御回路１４６０、および可変デジタル発振器１４７０を含む。クロック分周器１４１０は、可変デジタル発振器１４７０によって生成された周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを受け、出力クロックＦＲＥＱ＿ＣＬＫの周波数Ｆ＿ＡＤＪを乗数Ｍで除算したものに等しい周波数Ｆ＿ＦＢＫを有するフィードバッククロック信号ＦＢＫ＿ＣＬＫを生成する。クロック分周器１４１０は、フィードバッククロック信号ＦＢＫ＿ＣＬＫを、初期化回路１４５０および位相比較器１４４０へと駆動する。クロック分周器１４２０は、同期クロック信号ＳＹＮＣＨ＿ＣＬＫを受け、同期クロック信号ＳＹＮＣＨ＿ＣＬＫの周波数Ｆ＿ＳＹＮＣＨを除数Ｄで除算したものに等しい周波数Ｆ＿Ｄ＿ＳＹＮＣＨを有する分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫを生成する。クロック分周器１４２０は、分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫを、初期化回路１４５０および位相比較器１４４０へと駆動する。
【００６１】
クロックセレクタ１４３０は、同期クロック信号ＳＹＮＣＨ＿ＣＬＫおよび周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの両方を受け、制御クロック信号ＣＴＲＬ＿ＣＬＫとして、同期クロック信号ＳＹＮＣＨ＿ＣＬＫまたは周波数調節クロック信号ＦＲＥＱ＿ＣＬＫのいずれかを選択的に、初期化回路１４５０および発振器制御回路１４６０に駆動する。一般的に、同期クロック信号ＳＹＮＣＨ＿ＣＬＫは、粗周波数探索位相の間に用いられる。次いで、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫが、密周波数探索位相に対して、およびクロック維持位相の間に、すなわち、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの周波数を選択された周波数に維持する間に用いられる。この発明の一実施例に対する、粗周波数探索位相、密周波数探索位相、および維持位相を、以下に詳細に説明する。停止／再始動回路１４４５は、粗周波数探索位相および密周波数探索位相において用いられるが、これを以下に説明する。
【００６２】
電源投入時またはリセット時に、初期化回路１４５０は、発振器制御回路１４６０を制御して、可変デジタル発振器１４７０を調整して周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成する。特定的には、初期化回路１４５０は、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの周波数Ｆ＿ＡＤＪが選択周波数Ｆ＿ＳＥＬと等しくなるよう可変デジタル発振器１４７０を調整するが、この選択周波数Ｆ＿ＳＥＬは、同期クロック信号ＳＹＮＣＨ＿ＣＬＫの周波数Ｆ＿ＳＹＮＣＨを乗数Ｍで乗算し、除数Ｄで除算したものに等しい。周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの周波数Ｆ＿ＡＤＪが選択クロック周波数Ｆ＿ＳＥＬに到達した後で、初期化回路１４５０は発振器制御回路１４６０および可変デジタル発振器１４７０の制御を、位相比較器１４４０にパスする。位相比較器１４４０は、可変デジタル発振器１４７０を調整して、温度などの環境変化にかかわらず周波数Ｆ＿ＡＤＪを選択周波数Ｆ＿ＳＥＬに維持する。
【００６３】
デジタル周波数合成器１４００のいくつかの実施例は、従来のクロック分周器、クロックセレクタ、停止／再始動回路、および位相比較器を用い得る。しかしながら、初期化回路１４５０、発振器制御回路１４６０、および可変デジタル発振器１４７０の特定の実施例の詳細な説明を以下に示す。
【００６４】
図１４（ｂ）は、デジタル周波数合成器１４００のタイミング図である。明確化のために、図１４（ｂ）は理想化され、伝播遅延およびスキューなどの要因は省かれる。図１４（ｂ）において、乗数Ｍは７に等しく、除数Ｄは５に等しい。こうして、図１４（ｂ）に示すように、分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫは、立上がりエッジ１４２１、１４２３、および１４２５などの立上がりエッジを、同期クロック信号ＳＹＮＣＨ＿ＣＬＫの５番目の立上がりエッジごとに、すなわち、立上がりエッジ１４１０、１４３０、１４５０に、有する。同様に、フィードバッククロック信号ＦＢＫ＿ＣＬＫは、立上がりエッジ１４１１、１４１３、および１４１５などの立上がりエッジを、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの７番目の立上がりエッジごとに、すなわち立上がりエッジ１４７１、１４７３、および１４７５に、有する。周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの周波数Ｆ＿ＡＤＪが選択周波数Ｆ＿ＳＥＬに等しく、かつ同期クロック信号ＳＹＮＣＨ＿ＣＬＫが周波数調節クロック信号ＦＲＥＱ＿ＣＬＫと同位相である場合、フィードバッククロック信号ＦＢＫ＿ＣＬＫと分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫとは同じ位相および周波数を有する。したがって、初期化回路１４５０および位相比較器１４４０は、可変デジタル発振器１４７０を調整して、分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫとフィードバッククロック信号ＦＢＫ＿ＣＬＫとの位相および周波数を一致させ、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを選択周波数Ｆ＿ＳＥＬで駆動する。分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫおよびフィードバッククロック信号ＦＢＫ＿ＣＬＫの位相および周波数が一致すれば、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫのＭ番目ごとの立上がりエッジは、同期クロック信号ＳＹＮＣＨ＿ＣＬＫの立上がりエッジと整列する。たとえば、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの立上がりエッジ１４７１および１４７３は、同期クロック信号ＳＹＮＣＨ＿ＣＬＫの立上がりエッジ１４０１および１４０３と整列する。この整列を一般に、並列発生と称する。２つの連続する並列発生の間の時間を一般に、並列発生周期と称する。
【００６５】
図１５は、可変デジタル発振器１４７０の実施例のブロック図である。図３の実施例は、二重入力エッジトリガＳＲ回路１５１０と、インバータ１５４０と、低精度遅延ライン１５２５およびトリム回路１５２７を有する可変遅延ライン１５２０とを含む。二重入力エッジトリガＳＲ回路１５１０は、第１のセット入力端子Ｓ＿ＩＮ１、第１のセットイネーブル入力端子Ｓ＿ＥＮ１、第２のセット入力端子Ｓ＿ＩＮ２、第２のセットイネーブル入力端子Ｓ＿ＥＮ２、第１のリセット入力端子Ｒ＿ＩＮ１、第１のリセットイネーブル入力端子Ｒ＿ＥＮ１、第２のリセット入力端子Ｒ＿ＩＮ２、第２のリセットイネーブル入力端子Ｒ＿ＥＮ２、および出力端子ＯＵＴを含む。二重入力エッジトリガＳＲ回路の動作および構造は、当該技術分野においては周知であり、したがってここでは詳細には説明しない。表１は、二重入力エッジトリガＳＲ回路１５１０のアクティブハイ構成に対する真理表を提供する。基本的に、セット入力信号のアクティブ（たとえば、立上がり）エッジがセット端子にあるとき、セットイネーブル端子の対応のセットイネーブル信号がイネーブルされた論理レベル（たとえば、論理ハイ）にあれば、出力端子ＯＵＴは出力信号をアクティブ状態（たとえば論理ハイ）に駆動する。逆に、リセット入力信号のアクティブ（たとえば、立上がり）エッジがリセット端子にある一方、リセットイネーブル端子の対応のリセットイネーブル信号がイネーブルされた論理レベル（たとえば、論理ハイ）にあれば、出力端子ＯＵＴは出力信号をインアクティブ状態（たとえば論理ロー）に駆動する。明確化のために、ここでの回路は、論理ハイを、イネーブルされた論理レベルおよびアクティブ論理レベルとして用いて説明する。同様に、立上がりエッジは、アクティブエッジとして用いられる。しかしながら、当業者は異なったイネーブルされた論理レベル、アクティブ論理レベルおよびアクティブエッジを用いて、この発明の原理を適用することができる。
【００６６】
【表１】
2004511160.tif 000003
【００６７】
ここでＲＥは立上がりエッジであり、Ｈは論理ハイであり、Ｌは論理ローであり、Ｘはドントケア条件である。
【００６８】
同期クロック信号ＳＹＮＣＨ＿ＣＬＫは、第１のセット入力端子Ｓ＿ＩＮ１に結合され、基準クロックイネーブル信号Ｒ＿ＣＬＫ＿ＥＮは、第１イネーブル入力端子Ｓ＿ＥＮ１に結合される。二重エッジトリガＳＲ回路１５１０の出力端子ＯＵＴは、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを駆動し、かつ可変遅延ライン１５２０に結合される。図１５の実施例においては、可変遅延ライン１５２０は基本遅延ＢＤを有する低精度遅延ライン１５２５および、基本遅延ＢＤの０、０．２５、０．５０、または０．７５倍の遅延をもたらすトリム回路１５２７を用いて実現される。この発明の他の実施例は、従来の可変遅延ラインを用い得る。可変遅延ライン１５２０は、二重入力エッジトリガＳＲ回路１５１０の出力信号を、発振器制御回路１４６０の制御下で可変量だけ遅延して、遅延出力信号Ｄ＿ＯＵＴを生成する。遅延出力信号Ｄ＿ＯＵＴは、第１のリセット入力信号Ｒ＿ＩＮ１とインバータ１５４０の入力端子とに結合される。インバータ１５４０の出力端子は、第２のセット入力端子Ｓ＿ＩＮ２に結合される。発振器イネーブル信号ＯＳＣ＿ＥＮは、第２のセットイネーブル端子Ｓ＿ＥＮ２に結合される。通常の動作下では、発振器イネーブル信号ＯＳＣ＿ＥＮは論理ハイ状態であり、可変デジタル発振器１４７０をイネーブルする。したがって、可変遅延ライン１５２０によって遅延される出力端子ＯＵＴからの立上がりエッジは、二重入力エッジトリガＳＲ回路１５１０を論理ローに遷移させる。逆に、可変遅延ライン１５２０によって遅延されかつインバータ１５４０によって反転される出力端子ＯＵＴからの立下がりエッジは、二重入力エッジトリガＳＲ回路１５１０を論理ハイに遷移させる。こうして、可変デジタル発振器１４７０は、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫのようなクロック信号を生成する。周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの周波数は、可変遅延ライン１５２０によって提供される遅延量により制御される。
【００６９】
図１５の実施例においては、低精度可変遅延ライン１５２５は、低精度基本遅延ＬＢＤの０から１２７倍にわたる可変遅延をもたらすが、ここで低精度基本遅延ＬＢＤは、低精度可変遅延１５２５によってもたらされる最小の非ゼロの遅延である。さらに、トリム回路１５３０は、０、０．２５、０．５または０．７５基本遅延単位の付加的な遅延をもたらす。こうして、図１５の実施例においては、可変遅延ライン１５２０は、５１２個の遅延値をもたらし得るが、これは０．２５低精度基本遅延ＬＢＤの倍数のうちの、０から１２７．７５倍の低精度基本遅延ＬＢＤの範囲にわたる。こうして、図１５の実施例においては、可変遅延ライン１５２０は、基本遅延ＢＤの０から５１１倍の間の遅延をもたらすが、これは低精度基本遅延ＬＢＤの０．２５倍に等しい。
【００７０】
同期クロック信号ＳＹＮＣＨ＿ＣＬＫの周波数Ｆ＿ＳＹＮＣＨ、乗数Ｍ、および除数Ｄに依存して、可変遅延ライン１５２０は、選択周波数Ｆ＿ＳＥＬの周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成するのに必要である正確な遅延量を提供できないおそれがある。図１６は、クロック生成回路においてデジタル遅延ラインを用いるこの問題を示す。特定的には、図１６は、この発明の一実施例に従って、二重入力エッジトリガＳＲ回路１５１０を用いて生成された、同期クロック信号ＳＹＮＣＨ＿ＣＬＫ、従来の周波数調節クロック信号Ｃ＿ＦＲＥＱ＿ＣＬＫ、および周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを示す。図１６において、同期クロック信号ＳＹＮＣＨ＿ＣＬＫ、従来の周波数調節クロック信号Ｃ＿ＦＲＥＱ＿ＣＬＫ、および周波数調節クロック信号ＦＲＥＱ＿ＣＬＫのそれぞれの立上がりエッジ１６５１、１６６１、および１６７１が同期される。
【００７１】
図１６において、乗数Ｍは４に等しく、除数Ｄは１に等しい。同期クロック信号ＳＹＮＣＨ＿ＣＬＫは、５０ナノ秒の周期を有する。したがって、２５ナノ秒が、同期クロック信号ＳＹＮＣＨ＿ＣＬＫにおける連続するクロックエッジの各々を分離する。理想的には、可変遅延ライン１５２０は、２５を４で除算したものに等しい６．２５ナノ秒の遅延をもたらし得る。しかしながら、もし可変遅延ライン１５２０（図１５）の基本遅延単位が１ナノ秒であれば、可変遅延ライン１５２０は周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ１の連続するエッジの間に６ナノ秒の遅延を与えるよう構成される。上述のように、並列発生の間に、すなわち４周期ごとに、従来の周波数調節クロック信号Ｃ＿ＦＲＥＱ＿ＣＬＫの立上がりエッジは、同期クロック信号ＳＹＮＣＨ＿ＣＬＫの立上がりエッジと同時に生じるべきである。しかしながら、図１６に示すように、従来の出力クロックＣ＿ＦＲＥＱ＿ＣＬＫの立上がりエッジ１６６５は、同期クロック信号ＳＹＮＣＨ＿ＣＬＫの立上がりエッジ１６５５に２ナノ秒先立つ。この２ナノ秒の位置ずれは、並列発生周期ごとに繰返す。こうして、時間の経過につれて、位置ずれはデジタルシステムにおける深刻な同期問題を引き起こし得る。
【００７２】
この位置ずれをなくすために、並列発生の直前に、すなわち同期クロック信号ＳＹＮＣＨ＿ＣＬＫの立上がりエッジが周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの立上がりエッジと整列するべきときに、発振器イネーブル信号ＯＳＣ＿ＥＮがデアサートされ、基準クロックイネーブル信号がアサートされる。こうして、並列発生の間に、二重入力エッジトリガＳＲ回路１５１０の入力端子Ｓ＿ＩＮ１上の同期クロック信号ＳＹＮＣＨ＿ＣＬＫの立上がりエッジは、二重入力エッジトリガＳＲ回路１５１０の周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを駆動する出力端子ＯＵＴ上に立上がりエッジを生じさせる。並列発生の後で、発振器イネーブル信号ＯＳＣ＿ＥＮが再びアサートされ、基準クロックイネーブル信号Ｒ＿ＣＬＫ＿ＥＮがデアサートされる。こうして、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫのＭ番目のクロック周期ごとに、周波数調節クロック信号ＦＲＥＱ＿ＣＬＱは同期クロック信号ＳＹＮＣＨ＿ＣＬＫに再び整列されるが、これはたとえ可変遅延ライン１５２０が選択周波数Ｆ＿ＳＥＬの周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを駆動するために必要である正確な遅延を提供しない場合であっても行なわれる。
【００７３】
したがって、図１６に示すように、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの立上がりエッジ１６７５は、同期クロック信号ＳＹＮＣＨ＿ＣＬＫの立上がりエッジ１６５５と整列される。したがって、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの立下がりエッジ１６７１と、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの立上がりエッジ１６７５との間の時間は、６ナノ秒ではなく８ナノ秒である。こうして、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの並列発生サイクルの間の期間は、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫのクロックエッジを制御するために可変遅延ライン１５２０のみを用いて行なわれる場合の４８ナノ秒ではなく、５０ナノ秒に等しい。したがって、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの並列発生周期の平均は、選択周波数Ｆ＿ＳＥＬに等しい。
【００７４】
図１７は、この発明の一実施例に従った、発振器制御回路１４６０のブロック図である。図１７の実施例は、遅延ラインレジスタ１７１０、任意のインクリメンタ１７３０、任意の遅延ライン微調コントローラ１７２０、および任意のＯＲゲート１７４０を含む。遅延ラインレジスタ１７１０は、遅延値ＤＶ［８：０］を初期化回路１４５０（図１４）から受ける。遅延ラインレジスタ１７１０の内容は、遅延値フィードバック信号ＤＶ＿ＦＢ［８：０］としてインクリメンタ１７３０および初期化回路１４５０に与えられる。初期化回路１４５０は、粗周波数探索位相の間に遅延値ＤＶ［８：０］を調節して、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの周波数Ｆ＿ＡＤＪを選択された周波数Ｆ＿ＳＥＬに一致させるが、これを以下に説明する。遅延ラインレジスタ１７１０はまた、キャリー信号ＣＡＲＲＹおよびボロー信号ＢＯＲＲＯＷを、遅延ライン微調コントローラ１７２０から受ける。もし遅延ライン微調コントローラ１７２０がイネーブルされれば、遅延ラインレジスタ１７１０は、キャリー信号ＣＡＲＲＹがアクティブ論理レベル（たとえば論理ハイ）である場合に増分し、ボロー信号ＢＯＲＲＯＷがアクティブ論理レベル（たとえば論理ハイ）である場合に減分するように構成される。キャリー信号ＣＡＲＲＹおよびボロー信号ＢＯＲＲＯＷの生成を以下に説明する。
【００７５】
遅延ラインレジスタ１７１０における遅延値は、インクリメンタ１７３０によって選択的に増分されて遅延選択信号ＤＥＬＡＹ＿ＳＥＬ［８：０］を生成し、可変遅延ライン１５２０（図１５）に結合される。特定的には、遅延ライン微調コントローラ１７２０は、微調増分制御信号ＦＴ＿ＩＮＣをインクリメンタ１７３０に駆動する。もし微調増分制御信号ＦＴ＿ＩＮＣがアクティブ論理レベル（たとえば論理ハイ）であれば、インクリメンタ１７３０は遅延ラインレジスタ１７１０からの値を増分する。遅延ライン微調コントローラ１７２０は、制御信号Ａ／！Ｓを用いて周波数比較器１４５０によって、または位相比較器制御信号ＰＣ＿ＣＴＲＬを用いて位相比較器１４４０（図１４（ａ））によって制御される。図１７の実施例については、もし遅延ライン微調コントローラ１７２０がイネーブルされており、かつもし制御信号Ａ／！Ｓまたは位相比較器信号ＰＣ＿ＣＴＲＬのいずれかがアクティブ状態にあれば（すなわち、論理ハイ）、遅延ライン微調コントローラ１７２０が付加的な遅延を並列発生周期の間に付与するよう構成される。こうして、ＯＲゲート１７４０は、制御信号Ａ／！Ｓおよび位相比較器制御信号ＰＣ＿ＣＴＲＬから遅延付加信号ＡＤＤ＿ＤＥＬＡＹを生成する。遅延ライン微調コントローラ１７２０の用法は、後に詳細に説明する。
【００７６】
図１８は、この発明の一実施例に従った、初期化回路１４５０のブロック図である。初期化回路１４５０は、可変遅延ライン１５２０の値を設定するために、粗周波数探索を行なう。特定的には、粗周波数探索の間に、図１８の実施例は高速バイナリーサーチを行なって遅延ラインレジスタ１７１０に対する遅延値ＤＶ［８：０］を決定するが、これによりフィードバッククロックＦＢＫ＿ＣＬＫの周波数Ｆ＿ＦＢＫと分周基準クロックＤ＿ＳＹＮＣＨ＿ＣＬＫの周波数Ｆ＿Ｄ＿ＳＹＮＣＨとが等しくなる。初期化回路１４５０の他の実施例は、遅延ラインレジスタ１７１０に対する遅延値ＤＶ［８：０］を選択するために他の方法を用い得る。図１８の実施例は、右シフトレジスタ１８３０、加算器／減算器１８４０、周波数比較器１８５０、およびオーバフローレジスタ１８６０を含む。
【００７７】
初期化時には、加算器／減算器１８４０は、可変遅延ライン１５２０が与えることのできる最大遅延の５０％を、可変遅延ライン１５２０に与えさせる遅延値ＤＶ［８：０］を出力するよう構成される。図１５の実施例に対しては、遅延値ＤＶ［８：０］は初期化時には２５６、すなわち０と５１１との中間に設定される。右シフトレジスタ１８３０は初期化時には、遅延値ＤＶ［８：０］の初期値の半分と等しくなるよう構成される。こうして、図１５の実施例に対しては、右シフタ１８３０は１２８の初期値で構成される。加算器／減算器１８４０は、右シフタ１８３０内の値を遅延ラインレジスタ１７１０（図１７）内の値に加算するか、または右シフタ１８３０内の値を遅延ラインレジスタ１７１０内の値から減算するよう、周波数比較器１８５０によって制御される。特定的には、遅延値レジスタ１７１０内の値が、遅延値フィードバック信号ＤＶ＿ＦＢ［８：０］によって提供される。各加算または減算動作の後で、右シフタ１８３０の内容が「右シフト」され、これにより右シフタ１８３０における値が効果的に半分に除算される。しかしながら、右シフタ１８３０は１の最小値を維持する。
【００７８】
周波数比較器１８５０は、フィードバッククロック信号ＦＢＫ＿ＣＬＫと分周基準信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫとを受け、加算器／減算器１８４０がＡＤＤ（加算）動作またはＳＵＢＴＲＡＣＴ（減算）動作のいずれを行なうべきかを決定する制御信号Ａ／！Ｓを生成する。特定的には、フィードバッククロック信号ＦＢＫ＿ＣＬＫの周波数Ｆ＿ＦＢＫが分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫの周波数Ｆ＿Ｄ＿ＳＹＮＣＨよりも大きければ、可変遅延ラインが与える遅延は増加されるべきである。したがって、周波数比較器１８５０は、制御信号Ａ／！Ｓを加算論理レベル（典型的には論理ハイ）に駆動することにより、加算器／減算器１８４０に、ＡＤＤ動作を行なわせる。逆に、もしフィードバッククロック信号ＦＢＫ＿ＣＬＫの周波数Ｆ＿ＦＢＫが分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫの周波数Ｆ＿Ｄ＿ＳＹＮＣＨよりも小さければ、可変遅延ラインが与える遅延は減じられるべきである。したがって、周波数比較器１８５０は、制御信号Ａ／！Ｓを減算論理レベル（典型的には論理ロー）に駆動することにより、加算器／減算器１８４０に、ＳＵＢＴＲＡＣＴ動作を行なわせる。加算または減算の各々の後で、停止／再始動回路１４４５（図１４）は、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫが同期クロック信号ＳＹＮＣＨ＿ＣＬＫと同位相で始動されるように、初期化回路１４５０および発振器制御回路１４６０を停止させ、再始動させる。停止および再始動により、周波数比較器１８５０は、位相変動を補償する必要なしに制御信号Ａ／！Ｓの適切な値を決定することが可能になる。しかしながら、この発明のいくつかの実施例は、位相変動を自動的に補償する周波数比較器を用い得る。これらの実施例に対しては、停止および再始動は必要ではない。
【００７９】
この発明のいくつかの実施例においては、周波数比較器１８５０はまた、周波数比較器逆転信号ＦＣ＿ＲＥＶをも生成する。周波数比較器逆転信号ＦＣ＿ＲＥＶは、周波数クロック信号ＦＢＫ＿ＣＬＫの周波数Ｆ＿ＦＢＫが分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫの周波数Ｆ＿Ｄ＿ＳＹＮＣＨよりも大きくなった場合、および分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫの周波数Ｆ＿Ｄ＿ＳＹＮＣＨがフィードバッククロック信号ＦＢＫ＿ＣＬＫの周波数Ｆ＿ＦＢＫよりも大きくなった場合に、アクティブ状態（たとえば論理ハイ）に駆動される。この発明の一実施例においては、粗周波数探索位相は、右シフタ１８３０の値が１に等しくなった場合に終了する。
【００８０】
表２は、図１８における初期化回路１４５０の実施例に対する動作の例を示す。表２の例において、３７１．５の遅延値ＤＶは、フィードバッククロック信号ＦＢＫ＿ＣＬＫの周波数Ｆ＿ＦＢＫと分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫの周波数Ｆ＿Ｄ＿ＳＹＮＣＨとを一致させるために最適である遅延をもたらす。
【００８１】
【表２】
2004511160.tif 000004
【００８２】
上述のように、初期時には遅延ラインレジスタ１７１０は、２５６を含むように構成され、右シフトレジスタ１８３０は１２８を含むように構成される。遅延値ＤＶの理想的な値は３７１．５なので、制御信号Ａ／！Ｓは加算状態（すなわち、論理ハイ）にある。ステップ１において、加算器／減算器１８４０は、１２８を２５６に加算し、遅延ラインレジスタ１７１０は３８４（すなわち、２５６＋１２８）を記憶する。右シフタ１８３０は１２８を右シフトし、これは６４となる。遅延ラインレジスタ１７１０が３８４を含む場合、周波数比較器１８５０は、制御ラインＡ／！Ｓを減算論理レベル（すなわち、論理ロー）に駆動する。次いで、ステップ２において、加算器／減算器１８４０は３８６から６４を減算し、遅延回路レジスタ１７１０は３２０（すなわち、３８４−６４）を記憶して、右シフタ１８３０は６４を右シフトし、３２となる。遅延ラインレジスタ１７１０が３２０を含む場合、周波数比較器１８５０は制御ラインＡ／！Ｓを加算論理レベル（すなわち論理ハイ）に駆動する。このプロセスは、遅延ラインレジスタ１７１０における値が、可能な限り最適な値に近づくまで続けられる。
【００８３】
オーバーフローレジスタ１８６０は、加算器／減算器１８４０の出力ビット９を受ける。もし出力ビット９がアクティブであれば、オーバーフロー状態が起こり、外部の制御システム（図示せず）によって対処しなければならない。典型的には、オーバーフロー状態は、クロック分周器／逓倍器１４００が、可変遅延ライン１５２０が与える可能性のある遅延時間に比べて速すぎるか遅すぎるクロック周波数で用いられる場合にのみ起こる。
【００８４】
上述のように、この発明のいくつかの実施例は、初期化回路１４５０が遅延値ＤＶ［８：０］を確立した後で、遅延ライン微調コントローラ１７２０を用いて密周波数探索を行なう。上述のように、可変デジタル遅延ラインは、選択周波数Ｆ＿ＳＥＬの周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを生成するのに必要である正確な遅延をもたらし得ない場合がある。この発明は、二重入力エッジトリガＳＲ回路１５１０（図１５）を用いて、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫおよび周波数クロック信号ＳＹＮＣＨ＿ＣＬＫの並列発生の間に、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの立上がりクロックエッジを基準クロックＳＹＮＣＨ＿ＣＬＫに同期させることにより、この問題を解決する。上述のように、並列発生は、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの立上がりエッジが同期クロック信号ＳＹＮＣＨ＿ＣＬＫの立上がりエッジと、すなわちＭ番目の立上がりエッジごとに整列すべき場合に生じる。しかしながら、並列発生と並列発生との間では、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの周波数および位相は、選択周波数Ｆ＿ＳＥＬでの理想的なクロック信号とは異なり得る。遅延ライン微調コントローラ１７２０は、可変遅延ライン２５２０によって提供される遅延を選択的に調節して、理想的な周波数調節クロック信号の周波数および位相をより一致させる。
【００８５】
効果的に、遅延ライン微調コントローラ１７２０は、並列発生周期中のさまざまな時点で可変遅延ライン１５２０が与える遅延を１つの基本遅延ＢＤだけ選択的に増加させて、可変遅延ライン１５２０にさらなる精度を与える。図１９は、遅延ライン微調コントローラ１７２０がもたらす利点を示す。特定的には、図１９は同期クロック信号ＳＹＮＣＨ＿ＣＬＫ、位相周波数調節クロック信号Ｉ＿ＦＲＥＱ＿ＣＬＫ、この発明の一実施例に従った二重入力エッジトリガＳＲ回路を用いた周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ１、およびこの発明の別の実施例に従った二重入力エッジトリガＳＲ回路と遅延ライン微調コントローラ１７２０との両方を用いた周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ２を示す。
【００８６】
図１９において、乗数Ｍは４に等しく、除数Ｄは１に等しい。同期クロック信号ＳＹＮＣＨ＿ＣＬＫは、５０ナノ秒の周期を有する。したがって、２５ナノ秒が同期クロック信号ＳＹＮＣＨ＿ＣＬＫにおける連続するクロックエッジの各々を分離する。理想周波数調節クロック信号Ｉ＿ＦＲＥＱ＿ＣＬＫは、１２．５ナノ秒の周期を有する。したがって、６．２５ナノ秒が理想周波数調節クロック信号Ｉ＿ＦＲＥＱ＿ＣＬＫにおける連続するクロックエッジの各々を分離する。もし可変遅延ライン１５２０（図１５）における基本遅延単位が１ナノ秒であれば、可変遅延ライン１５２０は、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ１の連続するエッジとエッジとの間に６ナノ秒の遅延をもたらすよう構成される。しかしながら、並列発生の間に、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ１の立上がりエッジは、同期クロック信号ＳＹＮＣＨ＿ＣＬＫの立上がりエッジによって制御される。したがって、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ１の立上がりエッジ１９３５は、同期クロック信号ＳＹＮＣＨ＿ＣＬＫの立上がりエッジと整列する。したがって、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ１の立下がりエッジ１９３４と、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ１の立上がりエッジ１９３４との間の時間は、８ナノ秒である。こうして、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ１の並列発生サイクルの間の平均周期は、１２．５ナノ秒に等しい。しかしながら、並列発生周期の間の付加的に要求される遅延が並列発生周期の最後にひとまとめにされているので、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ１は、位相周波数調節クロック信号Ｉ＿ＦＲＥＱ＿ＣＬＫから歪められている。
【００８７】
遅延ライン微調コントローラ１７２０は、遅延ライン１５２０によって与えられる遅延を選択的に増分して、理想周波数調節クロック信号Ｉ＿ＦＲＥＱ＿ＣＬＫにより密接に一致させる。周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ２の平均周期を、理想周波数調節クロック信号Ｉ＿ＦＲＥＱ＿ＣＬＫに一致させるために必要となる付加的な遅延を並列発生周期の最後にまとめるのではなく、遅延ライン微調コントローラ１７２０は、付加的な要求される基本遅延単位を、並列発生周期の全体に分散させる。こうして、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ２の立下がりクロックエッジ１９４２と立上がりクロックエッジ１９４３とは、６ナノ秒ではなく７ナノ秒だけ分離される。同様に、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ２の立下がりクロックエッジ２０４６と立上がりクロックエッジ１９４７とは、６ナノ秒ではなく７ナノ秒だけ分離される。こうして、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ１よりも、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫ２の波形は理想周波数調節クロック信号Ｉ＿ＦＲＥＱ＿ＣＬＫに密接に一致する。
【００８８】
図２０は、この発明の一実施例に従った、遅延ライン微調コントローラ１７２０のブロック図である。図２０の実施例は、アップ／ダウンカウンタ２０２０、モジューロＭデルタシグマ回路２０３０、ＡＮＤゲート２０４０、ＡＮＤゲート２０５０、およびインバータ２０６０を含む。アップ／ダウンカウンタ２０２０は、モジューロＭにおいてカウントするよう構成される。たとえば、もしＭが４に等しければ、アップ／ダウンカウンタ２０２０は０，１，２，３，０，１などのシーケンスでカウントアップし、３，２，１，０，３，２などのシーケンスでカウントダウンする。
【００８９】
概念的に、アップ／ダウンカウンタ２０２０は、遅延ラインレジスタ１７１０に高精度ビットを提供するよう用いられる。特定的には、アップ／ダウンカウンタ２０２０における値は、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの周波数Ｆ＿ＡＤＪを選択周波数Ｆ＿ＳＥＬにより密接に一致させるために並列発生の間に必要となる付加基本遅延単位の数を示す。図１９の実施例においては、基本遅延値は１ナノ秒であり、遅延ラインレジスタ１７１０における遅延値は６に等しく（すなわち、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫの１周期は１２ナノ秒である）、並列発生周期の長さは５０ナノ秒に等しく、Ｍは４に等しい。こうして、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫのＭ周期は４８ナノ秒に等しい（すなわち、４＊１２ナノ秒）。しかしながら、並列発生周期は５０ナノ秒なので、各並列発生周期の間にさらに２つの基本遅延単位を周波数調節クロック信号ＦＲＥＱ＿ＣＬＫに加える。したがって、アップ／ダウンカウンタ２０２０は、値２を含む。こうして、一般的にアップ／ダウンカウンタ２０２０は、並列発生周期からＭ×２×基本遅延値を引いたものに等しい。しかしながら、実際の動作の間には、アップ／ダウンカウンタ２０２０に対する値を計算するための情報は利用可能ではない。したがって、アップ／ダウンカウンタ２０２０に対する値を計算するために、探索技術が用いられる。この発明の一実施例に従った探索技術を以下に説明する。
【００９０】
アップ／ダウンカウンタ２０２０は、信号Ｍ＿ｍ１［７：０］を介して、入力端子ＩＮ［７：０］で値Ｍ−１（すなわち、乗数Ｍから１を減算したもの）を受ける。アップ／ダウンカウンタ２０２０は、出力値ＯＵＴ［７：０］および次の値ＮＥＸＴ［７：０］の両方を提供する。出力値ＯＵＴ［７：０］は、制御クロックＣＴＲＬ＿ＣＬＫの立上がりクロックエッジに遷移する。対照的に、次の値ＮＥＸＴ［７：０］は、ＯＵＴ［７：０］が次の立上がりクロックエッジの後にとる値に等しい。遅延付与制御信号ＡＤＤ＿ＤＥＬＡＹも制御端子ＵＰに与えられる。もし遅延付加信号ＡＤＤ＿ＤＥＬＡＹがアクティブ論理レベル（すなわち、論理ハイ）に駆動されるのであれば、アップ／ダウンカウンタ２０２０はカウントアップする。そうでなければ、アップ／ダウンカウンタ２０２０はカウントダウンする。
【００９１】
モジューロＭカウンティングを行なわせるために、アップ／ダウンカウンタ２０２０は、ＡＮＤゲート２０４０の出力端子に結合される同期リセット端子を含む。ステータス信号ＯＵＴ＝Ｍ＿ｍ１および遅延付加信号ＡＤＤ＿ＤＥＬＡＹを受けるＡＮＤゲート２０４０は、キャリー信号ＣＡＲＲＹを生成する。ステータス信号ＯＵＴ＝Ｍ＿ｍ１は、出力値ＯＵＴ［７：０］が乗数Ｍ−１に等しい場合に論理ハイに駆動される。ステータス信号ＯＵＴ＝Ｍ＿ｍ１は典型的には比較器（図示せず）によって生成される。こうして、もしアップ／ダウンカウンタ２０２０がカウントアップし、出力値ＯＵＴ［７：０］が乗数Ｍ−１に等しければ、アップ／ダウンカウンタ２０２０はクロック信号ＣＴＲＬ＿ＣＬＫの次の立上がりエッジで０にリセットされる。キャリー信号ＣＡＲＲＹもまた遅延ラインレジスタ１７１０に与えられる。キャリー信号ＣＡＲＲＹのアクティブ論理レベル（たとえば論理ハイ）は、遅延ラインレジスタ１７１０の増分を可能にする。
【００９２】
アップ／ダウンカウンタ２０２０はまた、ＡＮＤゲート２０５０の出力端子に結合される負荷制御端子ＬＯＡＤをも含む。ＡＮＤゲート２０５０は、インバータ２０６０を介してステータス信号ＯＵＴ＝ＺＥＲＯおよび遅延付与制御信号ＡＤＤ＿ＤＥＬＡＹを受け、ボロー信号ＢＯＲＲＯＷを生成する。ステータス信号ＯＵＴ＝ＺＥＲＯは、出力値ＯＵＴ［７：０］が０に等しい場合論理ハイに駆動される。ステータス信号ＯＵＴ＝ＺＥＲＯは典型的には比較器（図示せず）によって生成される。こうして、もしアップ／ダウンカウンタ２０２０がカウントダウンしており、かつ出力値ＯＵＴ［７：０］が０に等しければ、アップ／ダウンカウンタ２０２０はＭ−１をロードするように構成される。ボロー信号ＢＯＲＲＯＷはまた、遅延ラインレジスタ１７１０にも与えられる。ボロー信号ＢＯＲＲＯＷ上のアクティブ論理レベル（たとえば論理ハイ）は、遅延ラインレジスタ１７１０の減分を可能にする。
【００９３】
次の信号ＮＥＸＴ［７：０］は、モジューロＭデルタシグマ回路２０３０のパルス入力端子Ｐ＿ＩＮ［７：０］に結合される。モジューロＭデルタシグマ回路２０３０はまた、信号Ｍ＿ｍ１［７：０］を介してモジューロ入力端子Ｍ＿ＩＮ［７：０］で値Ｍ−１（すなわち、乗数Ｍから１を減算したもの）と、並列発生前信号ＰＲＥ＿ＣＯＮＣ、および制御クロック信号ＣＴＲＬ＿ＣＬＫを受ける。モジューロＭデルタシグマ回路２０３０は、微調増分制御信号ＦＴ＿ＩＮＣを駆動する。明確化のために、モジューロＭデルタシグマ回路２０３０は、モジューロ値Ｍ（図２０の実施例においては実際にはＭから１を減算したものが受取られているが）、およびパルスカウントＰを受取るものとする。並列発生前信号ＰＲＥ＿ＣＯＮＣは、モジューロＭデルタシグマ回路２０３０のリセット端子ＲＥＳＥＴに与えられて、並列発生前のクロックサイクルにおいて、アクティブ論理レベル（たとえば、論理ハイ）に駆動される。Ｍ周期の間に、微調増分制御信号ＦＴ＿ＩＮＣは、Ｐ個のアクティブパルスを含む。微調増分制御信号ＦＴ＿ＩＮＣ上のアクティブパルスは、Ｍ周期をわたって分散する。表３は、微調増分制御信号ＦＴ＿ＩＮＣのいくつかの例を示し、ここで「１」はアクティブパルスを表わし、「０」はインアクティブパルスを表わす。
【００９４】
【表３】
2004511160.tif 000005
【００９５】
図２１は、この発明の一実施例に従った、モジューロＭデルタシグマ回路２０３０のブロック図である。図２１の実施例は、インクリメンタ２１０５、乗算器２１１０、減算器２１２０、加算器２１３０、多重化回路２１４０、ラッチ２１５０および比較器２１６０を含む。モジューロ入力端子Ｍ＿ＩＮ［７：０］は、インクリメンタ２１０５の入力ポートＩＮ、多重化回路２１４０の第２の入力ポートＩＮ２、および比較器２１６０の第２の入力ポートＩＮ２に結合される。図２１の特定の実施例は、モジューロ入力端子Ｍ＿ＩＮ［７：０］でモジューロ値Ｍではなく、モジューロ値Ｍから１を減算したものを受けるよう設計されているので、インクリメンタ２１０５はモジューロ入力端子Ｍ＿ＩＮ［７：０］に与えられる値を１だけ増分してモジューロ値Ｍを生成し、これが乗算器２１１０の第１の入力ポートに与えられる。この発明の他の実施例は、モジューロ入力端子Ｍ＿ＩＮ［７：０］でモジューロ値Ｍを受け得る。これらの実施例は、インクリメンタ２１０５が必要ではない。乗算器２１１０の第２の入力ポートＩＮ２は比較器２１６０の出力端子に結合される。乗算器２１１０は、モジューロ入力端子Ｍ＿ＩＮ［７：０］に与えられる値を比較器２１６０の出力値で乗算して出力積を生成し、これが減算器２１２０の第２の入力ポートＩＮ２に与えられる。この発明の多くの実施例においては、比較器２１６０の出力値が１ビットなので、乗算器２１１０は多数のＡＮＤゲートを用いて実現される。
【００９６】
パルス入力端子Ｐ＿ＩＮ［７：０］は、減算器２１２０の第１の入力端子に結合される。減算器２１２０は、パルス入力端子Ｐ＿ＩＮ［７：０］に提供されるパルス値から、乗算器２１１０の出力値を減算して、減算器２１２０の出力ポートＯＵＴにデルタ値ＤＥＬＴＡを生成するよう構成される。減算器２１２０の出力ポートＯＵＴは、加算器２１３０の第１の入力ポートＩＮ１に結合される。加算器２１３０の第２の入力ポートＩＮ２は、ラッチ２１５０の出力ポートＯＵＴに結合される。加算器２１３０は、減算器２１２０から与えられたデルタ値ＤＥＬＴＡをラッチ２１５０によって与えられたラッチ値ＬＡＴＣＨに加算して、加算器２１３０の出力ポートＯＵＴにシグマ値ＳＩＧＭＡを生成するよう構成される。加算器２１３０の出力ポートＯＵＴは、多重化回路２１４０の第１の入力ポートＩＮ１に結合される。この発明のいくつかの実施例は、３入力加算器などのシグマ計算回路を用いてシグマ値ＳＩＧＭＡを計算するが、これは減算器２１２０のような別々のデルタ計算回路を用いるよりも速く計算を行なうことができる。この実施例においては、シグマ計算回路は減算器２１２０および加算器２１３０を置きかえる。３入力加算器を用いる実施例については、乗算器２１１０の出力値は３入力加算器の前段で２の補数形式に変換され得る。さらに、インクリメンタ２１０５と乗算器２１１０とを回路内で組合せて２の補数形式を計算してもよい。
【００９７】
多重化回路２１４０は、シグマ値ＳＩＧＭＡまたはモジューロ入力端子Ｍ＿ＩＮ［０：７］に与えられる値のいずれかを、多重化回路２１４０の出力ポートＯＵＴを介してラッチ２１５０の入力ポートＩＮに駆動するよう構成される。リセット端子ＲＥＳＥＴは、多重化回路２１４０の制御端子に結合される。図２０のリセット端子ＲＥＳＥＴに結合される並列発生前信号ＰＲＥ＿ＣＯＮＣは、、多重化回路２１４０の出力値を決定する。特定的には、並列発生のクロックサイクルの間に、多重化回路２１４０はモジューロ入力端子Ｍ＿ＩＮ［７：０］に与えられる値をラッチ２１５０の入力ポートＩＮに駆動するよう構成される。そうでなければ、多重化回路２１４０は、シグマ値ＳＩＧＭＡをラッチ２１５０の入力ポートＩＮに駆動するよう構成される。ラッチ２１５０は制御クロック信号ＣＴＲＬ＿ＣＬＫによってクロックされて、ラッチ２１５０の出力ポートＯＵＴのラッチ値を比較器２１６０の第１の入力ポートＩＮ１に与える。比較器２１６０は、ラッチ値ＬＡＴＣＨとモジューロ入力端子Ｍ＿ＩＮ［７：０］に与えられる値とを比較するよう構成され、比較器２１６０の出力端子ＯＵＴに微調増分信号ＦＴ＿ＩＮＣを生成する。特定的には、もしラッチ値ＬＡＴＣＨがモジューロ入力端子Ｍ＿ＩＮ［７：０］に与えられるモジューロ値より大きければ、微調増分信号ＦＴ＿ＩＮＣがアクティブ論理レベル（たとえば論理ハイ）に駆動される。そうでなければ、微調増分信号ＦＴ＿ＩＮＣはインアクティブ論理レベル（たとえば論理ロー）に駆動される。
【００９８】
表４は、モジューロＭデルタシグマ回路２０３０の第２の実施例の擬似コード実現化を提供する。デジタル設計の当業者においては、図４の擬似コードをＶｅｒｉｌｏｇのようなハードウェア記述言語に変換して回路を実現することが可能である。
【００９９】
【表４】
2004511160.tif 000006
【０１００】
上述のように、この発明の一実施例は、デジタル周波数合成器１４００を３つの別個の位相で動作させる。特定的には、デジタル周波数合成器１４００は、粗周波数探索位相、密周波数探索位相、およびクロック維持位相で動作する。粗周波数探索位相の間に、可変遅延ライン１５２０（図１５）が、上述のように高速バイナリサーチを用いて構成される。遅延ライン微調コントローラ１７２０（図１７）は、粗周波数探索位相の間にディスエーブルされる。粗周波数探索位相は、右シフタ１８３０（図１８）が１の値を含む場合に終了する。
【０１０１】
密周波数探索位相の間に、遅延ライン微調コントローラ１７２０はアクティブ化され、クロックセレクタ１４３０（図１４）は制御クロック信号ＣＴＲＬ＿ＣＬＫとして周波数調節クロック信号ＦＲＥＱ＿ＣＬＫを選択するよう構成される。密周波数探索位相の間に、遅延ライン微調コントローラ１７２０は、上述のように制御信号Ａ／！Ｓを用いて周波数比較器１８５０（図１８）によって制御される。特定的には、制御信号Ａ／！Ｓは、アップ／ダウンカウンタ２０２０の増分または減分を決定する。停止／再始動回路１４４５もまた、各並列発生周期の間に密周波数探索位相において用いられる。密周波数探索位相において、アップ／ダウンカウンタ２０２０は、各並列発生周期において１だけ減分または増分する。上述のように、アップ／ダウンカウンタ２０２０は、キャリー信号ＣＡＲＲＹおよびボロー信号ＢＯＲＲＯＷによって遅延ラインレジスタ１７１０にリンクされる。こうして、遅延ラインレジスタ１７１０における値は、密周波数探索位相の間に変化し得る。密周波数探索位相は、周波数比較器１８５０が逆転を検出し、周波数比較器逆転信号をアクティブ状態に駆動した場合に終了する。
【０１０２】
クロック維持位相の間に、位相比較器１４４０（図１４）は、発振器制御回路１４６０の制御を初期化回路１４５０から引継ぐ。維持位相の間に、遅延ライン微調コントローラ１７２０が選択的にイネーブルされる。特定的には、この発明の一実施例においては、維持位相は３つのサブ位相を循環する。各サブ位相は、１つの並列発生周期の間、続く。第１のサブ位相においては、位相比較器１４４０が初期化される。第１のサブ位相の間に、アップ／ダウンカウンタ２０２０の値は変化しない。第２のサブ位相の間に、位相比較器１４４０は、フィードバッククロック信号ＦＢＫ＿ＣＬＫが、分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫよりも進んでいるかまたは遅れているかを判断する。第３のサブ位相においては、遅延ライン微調コントローラ１７２０がイネーブルされる。こうして、アップ／ダウンカウンタ２０２０は、位相比較器制御信号ＰＣ＿ＣＴＲＬによって制御されて、１だけ増分または減分することができる。上述のように、位相比較器制御信号ＰＣ＿ＣＴＲＬは、フィードバッククロック信号ＦＢＫ＿ＣＬＫが、分周同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫよりも進んでいるかまたは遅れているかを判断する。もし遅延同期クロック信号Ｄ＿ＳＹＮＣＨ＿ＣＬＫがフィードバッククロック信号ＦＢＫ＿ＣＬＫよりも進んでいれば、位相比較器１４４０は、アップ／ダウンカウンタ２０２０に第２のサブ位相の間に減分させる。そうでなければ、位相比較器１４４０はアップ／ダウンカウンタ２０２０に第２のサブ位相の間に増分させる。他の実施例においては、維持位相はより多くのまたはより少ないサブ位相を含み得る。たとえば、一実施例においては、上述の第１のサブ位相および第２のサブ位相は、単一のサブ位相に組合せられることができる。この発明のいくつかの実施例は、周波数調節クロック信号ＦＲＥＱ＿ＣＬＫが選択周波数Ｆ＿ＳＥＬにあると宣言する前に、位相比較器１４４０が多数の逆転（たとえば４つの逆転）を検出するのを待つ。
【０１０３】
この発明のさまざまな実施例において、デジタルクロックマネージャについて新規な構造が説明された。一致した出力遅延を備えた同期クロック信号を用いることにより、この発明は同期周波数調節クロック信号でデスキューされた出力信号を提供することができる。上述のこの発明の構造および方法のさまざまな実施例は、この発明の原理を例示するものであり、この発明の範囲を説明される実施例に限定することを意図したものではない。たとえば、この開示の観点から、当業者は他の遅延ロックループ、出力生成回路、出力遅延、可変遅延回路、デジタル周波数合成器、クロック移相器、遅延ライン、出力生成器、コントローラ、位相検出器、ラッチ、レジスタ、クロック分周器、位相比較器、周波数比較器、アップ／ダウンカウンタ、初期化回路、デルタシグマ回路、ラッチ、停止再始動回路、遅延ライン、可変デジタル発振器、エッジトリガＳＲ回路、アクティブエッジ、イネーブル論理レベルなどを定義することができ、これらの代替的な特徴を用いて、この発明の原理に従った、方法、回路またはシステムを作ることが可能である。こうして、この発明は前掲の特許請求の範囲によってのみ限定される。
【図面の簡単な説明】
【図１】従来の遅延ロックループを用いるシステムのブロック図である。
【図２（ａ）】図１のシステムに対するタイミング図である。
【図２（ｂ）】図１のシステムに対するタイミング図である。
【図２（ｃ）】図１のシステムに対するタイミング図である。
【図３】この発明の一実施例に従った、デジタルクロックマネージャのブロック図である。
【図４】この発明の一実施例に従った、デジタルクロックマネージャのブロック図である。
【図５】この発明の一実施例に従った、デジタルクロックマネージャのブロック図である。
【図６】この発明に従った遅延ロックループの実施例を用いるシステムのブロック図である。
【図７】図６の遅延ロックループに対するタイミング図である。
【図８】この発明の一実施例に従って用いられるロックウィンドウを示す図である。
【図９】この発明に従った、クロック移相器の実施例のブロック図である。
【図１０】この発明に従った、クロック移相器の別の実施例のブロック図である。
【図１１】この発明に従った、出力生成器のブロック図である。
【図１２】この発明に従った、コントローラの実施例に対するステート図である。
【図１３】この発明に従った、遅延ロックループの別の実施例を用いるシステムのブロック図である。
【図１４（ａ）】この発明の一実施例に従った、可変クロック回路のブロック図である。
【図１４（ｂ）】図１４（ａ）の可変クロック回路に対するタイミング図である。
【図１５】この発明の一実施例に従った、可変デジタル発振器の概略図である。
【図１６】図１５のデジタル発振器を用いた、図１４（ａ）の可変クロック回路に対するタイミング図である。
【図１７】この発明の一実施例に従った、発振器制御回路のブロック図である。
【図１８】この発明の第２の実施例に従った初期化回路のブロック図である。
【図１９】遅延ライン微調コントローラを用いた、図１４（ａ）の可変クロック回路に対するタイミング図である。
【図２０】この発明の一実施例に従った、遅延ライン微調コントローラのブロック図である。
【図２１】この発明の一実施例に従ったモジューロＭデルタシグマ回路のブロック図である。
【図１】
2004511160.tif 000007
【図３】
2004511160.tif 000008
【図４】
2004511160.tif 000009
【図５】
2004511160.tif 000010
【図６】
2004511160.tif 000011
【図８】
2004511160.tif 000012
【図９】
2004511160.tif 000013
【図１０】
2004511160.tif 000014
【図１１】
2004511160.tif 000015
【図１２】
2004511160.tif 000016
【図１３】
2004511160.tif 000017
【図１４（ａ）】
2004511160.tif 000018
【図１５】
2004511160.tif 000019
【図１７】
2004511160.tif 000020
【図１８】
2004511160.tif 000021
【図２０】
2004511160.tif 000022
【図２１】
2004511160.tif 000023
【国際公開パンフレット】
2004511160.tif 000024
2004511160.tif 000025
2004511160.tif 000026
2004511160.tif 000027
2004511160.tif 000028
2004511160.tif 000029
2004511160.tif 000030
2004511160.tif 000031
2004511160.tif 000032
2004511160.tif 000033
2004511160.tif 000034
2004511160.tif 000035
2004511160.tif 000036
2004511160.tif 000037
2004511160.tif 000038
2004511160.tif 000039
2004511160.tif 000040
2004511160.tif 000041
2004511160.tif 000042
2004511160.tif 000043
2004511160.tif 000044
2004511160.tif 000045
2004511160.tif 000046
2004511160.tif 000047
2004511160.tif 000048
2004511160.tif 000049
2004511160.tif 000050
2004511160.tif 000051
2004511160.tif 000052
2004511160.tif 000053
2004511160.tif 000054
2004511160.tif 000055
2004511160.tif 000056
2004511160.tif 000057
2004511160.tif 000058
2004511160.tif 000059
2004511160.tif 000060
2004511160.tif 000061
2004511160.tif 000062
2004511160.tif 000063
2004511160.tif 000064
2004511160.tif 000065
2004511160.tif 000066
2004511160.tif 000067
2004511160.tif 000068
2004511160.tif 000069
2004511160.tif 000070
2004511160.tif 000071
2004511160.tif 000072
2004511160.tif 000073
2004511160.tif 000074
2004511160.tif 000075
2004511160.tif 000076
2004511160.tif 000077
2004511160.tif 000078
2004511160.tif 000079
2004511160.tif 000080
2004511160.tif 000081
2004511160.tif 000082
2004511160.tif 000083
2004511160.tif 000084
2004511160.tif 000085
2004511160.tif 000086
2004511160.tif 000087
2004511160.tif 000088
2004511160.tif 000089
2004511160.tif 000090
2004511160.tif 000091
2004511160.tif 000092
2004511160.tif 000093
2004511160.tif 000094
2004511160.tif 000095
2004511160.tif 000096
【国際公開パンフレット（コレクトバージョン）】
2004511160.tif 000097
【国際調査報告】
2004511160.tif 000098
2004511160.tif 000099
2004511160.tif 000100