(57)【特許請求の範囲】
【請求項１】
周波数分周器であって、
第１の入力信号と第１のプログラムビットと第１のモード信号とを受け取り、第１の周波数分周信号と第１の出力モード信号とを生成するように結合される最下位段であって、前記第１のモード信号と前記第１のプログラムビットとが、前記最下位段によって用いられるべき分周モードを特定する、前記最下位段と、
カスケード式に結合される複数のより上位の分周器段であって、前記複数のより上位の分周器段の各々が、直前の段の出力の周波数を、対応するプログラムビットと対応する入力モード信号とにより特定される値によって分周し、前記複数のより上位の分周器段が第１の分周器段を含み、前記第１の分周器段が、前記第１の周波数分周信号を受け取り、前記第１の入力モード信号を生成するように結合される、前記複数のより上位の分周器段と、
前記第１の出力モード信号とモードビットとを受け取り、第１の出力信号を生成する、出力段であって、前記出力段が、前記モードビットが１の論理レベルにある場合に、前記第１の出力モード信号の周波数を２で分周することによって、前記第１の出力信号を生成し、そうでない場合に、前記出力段が前記出力モード信号を前記第１の出力信号として転送する、前記出力段と、
を含む、周波数分周器。
【請求項２】
請求項１に記載の周波数分周器であって、
分周係数Ｍを受け取り、前記第１のプログラムビットと前記対応するプログラムビットの各々と前記モードビットとの値を計算する、プログラムブロックを更に含み、
前記第１の出力信号の周波数が、前記第１の入力信号の周波数の１／Ｍであり、前記プログラムブロックが値Ｐを計算し、前記分周係数Ｍが２に等しい場合にＰがゼロに等しく、Ｍが２より大きい場合であってＭが偶数の場合にＰがＭ／２に等しく、Ｍが２より大きい場合であってＭが奇数の場合にＰが（Ｍ−ｌ）／２に等しく、
前記最下位段が、付加的に第３のビットを受け取り、Ｍが４より大きい場合に前記第３のビットがＭの２進表示の最下位ビットと同じ値を有し、そうでない場合に前記第３のビットがゼロであり、前記最下位段によって用いられるべき前記分周モードが２分周モードと３分周モードと４分周モードとの１つであり、
前記最下位段が、Ｍの前記最下位ビットと前記第１のモード信号の論理レベルと前記第１のプログラムビットとの値に基づいて、前記入力信号の周波数を２、３又は４に等しい係数で分周するように動作する、周波数分周器。
【請求項３】
請求項２に記載の周波数分周器であって、
前記複数のより上位の分周器段の各段が、前記対応する入力モード信号の前記論理レベルと前記対応するプログラムビットとの前記値に基づいて、前記対応する直前の段の前記出力の前記周波数を２又は３に等しい係数で分周するように動作する、周波数分周器。
【請求項４】
請求項３に記載の周波数分周器であって、
前記プログラムブロックが、前記第１のプログラムビットと前記対応するプログラムビットの各々と前記モードビットとが整合時点よりも前に計算されていたとしても、前記整合時点においてのみ、前記第１のプログラムビットを前記最下位段に、前記対応するプログラムビットの各々を前記複数の段の前記対応する段に、前記モードビットを前記出力段に、転送し、
前記整合時点が、前記第１の出力信号が論理ゼロのときに前記出力モード信号の立ち上がりが起こる時点である、又は前記出力モード信号の立ち上がりが起こり、且つ、前記モードビットの前記直前の値が、前記出力段が遅延モードで動作することを特定した場合の時点である、周波数分周器。
【請求項５】
請求項４に記載の周波数分周器であって、
第１のインバータを含む複数のインバータを更に含み、
前記第１の周波数分周信号の論理レベルが、入力として前記第１の分周器段に提供される前に、前記第１のインバータによって反転され、
前記複数のより上位の分周器段の対応する段の出力の論理レベルが、入力としてその後の段に提供される前に、対応するインバータによって反転される、周波数分周器。
【請求項６】
請求項５に記載の周波数分周器であって、
前記複数のより上位の分周器段の各段が、
第１のフリップフロップであって、前記第１のフリップフロップのクロック端子が前記第１の入力信号をクロック信号として受け取るように結合される、前記第１のフリップフロップと、
対応する入力モード信号と段イネーブル信号の逆数とを入力として受け取り、第１のＯＲ出力を生成する、第１のＯＲゲートと、
前記第１のＯＲ出力と前記第１のフリップフロップの出力とを入力として受け取り、第１のＡＮＤ出力を対応する出力モード信号として生成する、第１のＡＮＤゲートと、
第２のフリップフロップであって、前記第２のフリップフロップのクロック端子が前記第１の入力信号をクロック信号として受け取るように結合され、前記第２のフリップフロップの入力端子が前記第１のＡＮＤ出力を受け取るように結合される、前記第２のフリップフロップと、
前記第２のフリップフロップの出力と対応するプログラムビットとを入力として受け取り、第２のＡＮＤ出力を生成する、第２のＡＮＤゲートと、
前記第２のＡＮＤ出力と前記第１のフリップフロップの出力とを入力として受け取り、第１のＮＯＲ出力を出力する、第１のＮＯＲゲートであって、前記第１のＮＯＲ出力が前記第１のフリップフロップの入力端子に結合される、前記第１のＮＯＲゲートと、
を含み、
前記第１のフリップフロップの前記出力が対応する周波数分周信号を表す、周波数分周器。
【請求項７】
請求項５に記載の周波数分周器であって、
前記最下位段が、
第３のフリップフロップであって、前記第３のフリップフロップのクロック端子が前記第１の入力信号をクロック信号として受け取るように結合される、前記第３のフリップフロップと、
前記第１のモード信号と第１の段イネーブル信号の逆数とを入力として受け取り、第２のＯＲ出力を生成する、第２のＯＲゲートと、
前記第２のＯＲ出力と前記第３のフリップフロップの出力とを入力として受け取り、第３のＡＮＤ出力を前記第１の出力モード信号として生成する、第３のＡＮＤゲートと、
前記第３のＡＮＤ出力と第３のＯＲ入力とを入力として受け取り、第３のＯＲ出力を生成する、第３のＯＲゲートと、
第４のフリップフロップであって、前記第２のフリップフロップのクロック端子が前記第１の入力信号をクロック信号として受け取るように結合され、前記第４のフリップフロップの入力端子が前記第３のＯＲ出力を受け取るように結合される、前記第４のフリップフロップと、
前記第４のフリップフロップの出力と前記第１のプログラムビットとを入力として受け取り、第４のＡＮＤ出力を生成する、第４のＡＮＤゲートと、
前記第１の出力モード信号と前記第３のビットと前記第１の出力信号とを入力として受け取り、第５のＡＮＤ出力を生成する、第５のＡＮＤゲートと、
第５のフリップフロップであって、前記第５のフリップフロップのクロック端子が前記第１の入力信号をクロック信号として受け取るように結合され、前記第５のフリップフロップの入力端子が前記第５のＡＮＤ出力を受け取るように結合され、前記第５のフリップフロップの出力が前記第３のＯＲ入力である、前記第５のフリップフロップと、
前記第４のフリップフロップの前記出力と前記第５のフリップフロップの前記出力とを受け取り、第４のＯＲ出力を生成する、第４のＯＲゲートと、
前記第４のＡＮＤ出力と前記第４のＯＲ出力とを受け取り、第２のＮＯＲ出力を生成する、第２のＮＯＲゲートであって、前記第２のＮＯＲ出力が前記第３のフリップフロップの入力端子に結合される、前記第２のＮＯＲゲートと、
を含み、
前記第３のフリップフロップの前記出力が前記第１の周波数分周信号である、周波数分周器。
【請求項８】
請求項５に記載の周波数分周器であって、
前記出力段が、
前記第１の出力モード信号を第１の選択信号として受け取り、第１のマルチプレクサ出力を提供する、第１のマルチプレクサと、
前記第１のマルチプレクサ出力と前記第１の出力モード信号とを入力として受け取り、前記モードビットの前記値に基づき、前記第１のマルチプレクサ出力と前記第１の出力モード信号との一方を第２のマルチプレクサ出力として提供する、第２のマルチプレクサと、
第６のフリップフロップであって、前記第６のフリップフロップのクロック端子が前記第１の入力信号をクロック信号として受け取るように結合され、前記第６のフリップフロップの入力端子が前記第２のマルチプレクサ出力を受け取るように結合される、前記第６のフリップフロップと、
を含み、
前記第６のフリップフロップの出力と前記第６のフリップフロップの前記出力の反転とが入力として前記第１のマルチプレクサに提供され、前記第１のマルチプレクサが、前記第１の選択信号の前記値に基づいて、前記第６のフリップフロップの前記出力と前記第６のフリップフロップの前記出力の前記反転との一方を第１のマルチプレクサ出力として提供し、
前記第６のフリップフロップの前記出力が前記第１の出力信号である、周波数分周器。
【請求項９】
請求項５に記載の周波数分周器であって、
前記プログラムブロックが、
前記分周係数Ｍを受け取り、第１のプログラムビットと前記対応するプログラムビットの各々と前記モードビットと前記第３のビットとの前記値を、デコードされた出力として生成する、デコードロジックブロックと、
前記デコードされた出力を整合信号の立ち上がりで記憶する制御設定レジスタであって、前記記憶されたデコードされた出力を、第１のプログラムビットと前記対応するプログラムビットの各々と前記モードビットと前記第３のビットとの前記対応するものとして提供する、前記制御設定レジスタと、
前記第１の出力信号の論理反転と前記モードビットの論理反転とを受け取り、第５のＯＲ出力を生成する、第５のＯＲゲートと、
前記第５のＯＲ出力と前記第１の出力モード信号とを入力として受け取り、前記整合信号を出力として生成する、第６のＡＮＤゲートと、
を含む、周波数分周器。
【請求項１０】
位相同期ループであって、
入力クロックと局所クロックとを入力として受け取るように結合され、前記入力クロックの位相と前記局所クロックの位相との間の位相差に比例する比較出力を生成する、位相周波数弁別器と、
前記比較出力を受け取り、対応するローパスフィルタリングされた信号を生成するように結合される、ループフィルタと、
前記ローパスフィルタリングされた信号を受け取り、中間クロックを生成するように結合される電圧制御発振器であって、前記中間クロックの周波数が前記ローパスフィルタリングされた信号の強度に比例する、前記電圧制御発振器と、
前記中間クロックを受け取り、前記中間クロックの周波数を分周係数Ｍで分周して前記局所クロックを生成する、第１の周波数分周器と、
を含み、
前記第１の周波数分周器が、
第１の入力信号の周波数を前記係数の２、３又は４の１つで分周するように設計される最下位段と、
第１のより上位段を含む複数のより上位段であって、前記複数のより上位段の各々が、対応する入力信号の周波数を前記係数の２又は３の１つで分周するように設計される、前記複数のより上位段と、
最終入力信号を２で分周するか、又は分周を行わないように設計される、出力段と、
を含み、
前記第１の入力信号が前記中間クロックであり、前記最下位段が、前記中間クロックを受け取り、第１の分周されたクロックと第１の出力モード信号とを生成するように結合され、前記第１の分周されたクロックの周波数が前記中間クロックの前記周波数より低く、
前記第１のより上位段が、前記第１の分周されたクロックを受け取り、第２の分周されたクロックを生成するように結合され、前記第２の分周されたクロックの周波数が前記第１の分周されたクロックの前記周波数より低く、
前記最終入力信号が前記第１の出力モード信号であり、前記出力段が、前記第１の出力モード信号を受け取り、前記局所クロックを生成するように結合される、位相同期ループ。
【請求項１１】
請求項１０に記載の位相同期ループであって、
前記複数のより上位段の各々が、直前の段によって生成された対応するクロックの周波数を分周し、直前の段によって生成された前記対応するクロックの周波数よりも低い周波数を持つクロックを生成し、
前記第１の出力モード信号の周波数が、前記複数のより上位段に含まれる最上位段によって生成された対応するクロックの周波数に等しい、位相同期ループ。
【請求項１２】
請求項１１に記載の位相同期ループであって、
前記第１の周波数分周器が、前記分周係数Ｍを受け取るプログラムブロックを更に含み、前記プログラムブロックが値Ｐを算出し、ここで、Ｐ［０］〜Ｐ［Ｎ］がＰの前記２進表示のビットを表し、ＮがＰの最上位ビットであり、０がＰの前記最下位ビットであり、
前記分周係数Ｍが２に等しい場合、Ｐがゼロに等しく、
Ｍが２より大きい場合、Ｍが偶数の場合にＰがＭ／２に等しく、Ｍが奇数の場合にＰが（Ｍ−ｌ）／２に等しく、
前記プログラムブロックが、プログラムビットとしてＰ［０］を前記最下位段に提供し、対応するプログラムビットとしてＰ［１］〜Ｐ［Ｎ］を前記より上位段のそれぞれに提供する、位相同期ループ。
【請求項１３】
請求項１２に記載の位相同期ループであって、
前記最下位段と前記複数のより上位段の各々とが対応する入力モード信号を受け取り、前記複数のより上位段の各々が対応する出力モード信号を生成し、前記第１のより上位段の出力モード信号が入力モード信号として前記最下位段に提供され、
前記複数のより上位段内の対応する段によって生成される出力モード信号が、前記入力モード信号として直前の段に提供される、位相同期ループ。
【請求項１４】
請求項１３に記載の位相同期ループであって、
前記最下位段と前記複数のより上位段の各々とが、対応するイネーブル信号を受け取り、
前記最下位段と前記複数のより上位段とに含まれる段「ｋ」へのイネーブル信号が論理ゼロである場合、「ｋ」より上位の段がリセット状態に維持される、位相同期ループ。
【請求項１５】
請求項１４に記載の位相同期ループであって、
前記最下位段が、前記最下位段及びＰ［０］に対する前記対応する入力モード信号の値に基づいて、前記中間クロックの前記周波数を係数２、３及び４の１つで分周する、位相同期ループ。
【請求項１６】
請求項１５に記載の位相同期ループであって、
前記複数のより上位段の各々が、前記対応する入力モード信号の前記値とビットＰ［１］〜Ｐ［Ｎ］の前記対応するものとに基づいて、前記直前の段の前記出力の周波数を係数２及び３の１つで分周する、位相同期ループ。
【請求項１７】
請求項１６に記載の位相同期ループであって、
Ｍが４以上である場合、前記出力段が前記第１の出力モード信号の前記周波数を２で分周し、そうでない場合、前記出力段が前記第１の出力モード信号を分周しないで転送し、
前記プログラムブロックがモードビットを前記出力段に提供し、前記モードビットが前記出力段が前記出力モード信号の前記周波数を２で分周するかどうかを特定する、位相同期ループ。
【請求項１８】
請求項１７に記載の位相同期ループであって、
Ｐ［０］〜Ｐ［Ｎ］と前記モードビットとが整合時点より前に算出されていたとしても、前記整合時点においてのみ、前記プログラムブロックが、Ｐ［０］を前記最下位段に、Ｐ［１］〜Ｐ［Ｎ］の前記対応するものを前記より上位段の前記それぞれのものに、前記モードビットを前記出力段に、転送し、
前記整合時点が、前記局所クロックが論理ゼロであるときに、前記出力モード信号の立ち上がりが起こる時点である、又は、前記出力モード信号の立ち上がりが起こり、且つ、前記モードビットの前記直前の値が、前記出力段が２で分周されないことを特定した場合の時点である、位相同期ループ。
【請求項１９】
請求項１７に記載の位相同期ループであって、
第２の周波数分周器と、第３の周波数分周器と、制御ブロックとを更に含み、
前記第２の周波数分周器が、外部クロックを受け取り、前記外部クロックの周波数を分周係数Ｎで分周して前記入力クロックを生成し、
前記第３の周波数分周器が、前記中間クロックを受け取り、前記中間クロックの周波数を分周係数Ｑで分周して出力クロックを生成し、
前記制御ブロックが、外部構成要素から分周係数Ａ、Ｂ及びＣを受け取り、前記分周係数Ｍ、Ｎ及びＱを生成し、分周係数Ｍ、Ｎ及びＱが分周係数Ｂ、Ａ及びＣにそれぞれ対応し、
前記制御ブロックが、分周係数Ｍを分周係数Ｂの値辺りで変動させ、分周係数Ｎの値を分周係数Ａの値辺りで変動させ、
前記位相同期ループの電源ＯＮ時に、前記制御ブロックが分周係数Ｑの値を分周係数Ｃより大きい値に設定し、次いで前記制御ブロックが、対応するステップにおいて、分周係数Ｑの前記値を分周係数Ｃに等しい値まで下げる、位相同期ループ。
【請求項２０】
周波数分周器であって、
カスケード式に結合される複数の段であって、前記複数の段が、最下位段と最上位（より上位の）段とを含む、前記複数の段と、
出力段と、
を含み、
前記最下位段の入力端子が入力クロックを受け取るように結合され、前記最下位段が前記入力クロックの周波数を分周して第１の出力端子上に第１の出力クロックを生成し、
前記より上位段の入力端子が前記第１の出力端子に結合され、前記より上位段が第２の出力クロックを生成し、前記第２の出力クロックの周波数が前記入力クロックの周波数の１／Ｐであり、前記より上位段が最上位出力モード信号を第２の出力端子上に生成し、
前記最下位段の別の入力端子が前記第２の出力端子に結合され、前記最下位段が第１の出力モード信号を生成し、前記第１の出力モード信号の周波数が前記第２の出力クロックの周波数に等しく、
前記出力段が、前記第１の出力モード信号を受け取り、出力クロックを生成するように結合され、前記出力クロックの前記周波数が、前記第１の出力モード信号の周波数の半分であるか、又は、前記出力モード信号の前記周波数に等しいかのいずれかである、周波数分周器。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、全般的に電子回路に関連し、より詳細には、高速周波数分周器、及び高速周波数分周器を用いる位相同期ループに関する。
【背景技術】
【０００２】
周波数分周器は、入力信号の周波数を分周し、入力信号より低い周波数を有する出力信号を提供する回路である。周波数分周器が入力信号の周波数を分周するための分周係数は、固定されてもよく、又は対応するプログラム信号を介して（静的又は動的に）プログラム可能であってもよい。周波数分周器の入力及び出力信号の周波数範囲が、典型的に、その周波数分周器の動作「速度」を決定する。一般に、周波数分周器の入力及び／又は出力信号の最大周波数が高いほど、その周波数分周器の「速度」は速くなる。従って、例えば、ギガヘルツ範囲の入力及び／又は出力信号で動作可能な周波数分周器は高速周波数分周器とみなすことができる。
【０００３】
入力基準信号と同期する出力信号を生成するために位相同期ループ（ＰＬＬ）回路がよく用いられる。出力信号は一般に入力基準信号の所望の倍数に等しい周波数を有するように設計されている。また出力信号は、理想的には、入力基準信号に位相固定される。関連技術においてよく知られているように、ＰＬＬによって生成される信号（例えば、クロック信号）は、様々な外部回路（例えば、プロセッサ）へ提供されうる。
【０００４】
本開示の幾つかの実施形態は、高速周波数分周器、及びそのような高速周波数分周器を用いる位相同期ループを対象とする。
【発明の概要】
【０００５】
周波数分周器は、最下位（ＬＳ）段、複数のカスケードされた分周器段、及び出力段を含む。ＬＳ段は、入力信号、第１のプログラムビット、及び第１のモード信号を受け取るように結合され、第１の分周された信号及び出力モード信号を生成する。第１のモード信号は、第１のプログラムビットとの組み合わせで、ＬＳ段によって用いられる分周モードを特定する。複数の分周器段の各々は、直前の段の出力の周波数を、対応するプログラムビット及び対応するモード信号によって特定された値で分周する。複数の分周器段の第１の分周器段は、第１の分周された信号を受け取るように、及び第１のモード信号を生成するように結合される。出力段は、出力モード信号及び制御信号を受け取るように結合され、制御信号の論理レベルが１である場合、出力モード信号の周波数を２で分周することによって出力信号を生成する。そうでない場合は、出力分周器段は、分周なしに出力モード信号を転送する。
【０００６】
以下に、説明を目的として、付図を参照して例示の実施形態を説明する。
【図面の簡単な説明】
【０００７】
【図１】幾つかの実施形態が実装されうる例示の環境のブロック図である。
【０００８】
【図２】周波数分周器のブロック図である。
【０００９】
【図３】周波数分周器に用いられる２／３分周段の実装詳細を示すブロック図である。
【００１０】
【図４Ａ】実施形態の周波数分周器に用いられる２／３分周段の幾つかのノードの例示の波形を示す図である。
【図４Ｂ】実施形態の周波数分周器に用いられる２／３分周段の幾つかのノードの例示の波形を示す図である。
【図４Ｃ】実施形態の周波数分周器に用いられる２／３分周段の幾つかのノードの例示の波形を示す図である。
【００１１】
【図５】周波数分周器に用いられる２／３／４分周段の実装詳細を示す図である。
【００１２】
【図６Ａ】周波数分周器に用いられる２／３／４分周段のノードの例示の波形を示す図である。
【図６Ｂ】周波数分周器に用いられる２／３／４分周段のノードの例示の波形を示す図である。
【００１３】
【図７】周波数分周器に用いられる出力段の実装詳細を示す図である。
【００１４】
【図８】周波数分周器に用いられる出力段の幾つかのノードの例示の波形を示す図である。
【００１５】
【図９】用いられる分周係数が動的に変更されるとき、周波数分周器の対応する段に制御入力が提供される方式を示す図である。
【００１６】
【図１０】周波数分周器に用いられるプログラムブロックの図である。
【発明を実施するための形態】
【００１７】
１．  例示の環境
図１は、幾つかの実施形態が実装されうる例示の環境を示すブロック図である。図１の位相同期ループ（ＰＬＬ）１００は、周波数分周器１１０、１６０、及び１７０、位相周波数弁別器（ＰＦＤ）１２０、ループフィルタ１４０、電圧制御発振器１５０、及び制御ブロック１８０を含んで図示されている。図１の構成要素及びブロックは説明のために示されているにすぎない。別の位相同期ループ実装では、これより多くの又はこれより少ない構成要素／ブロックが含まれうる。また、本開示の実施形態を他の環境内で、又は他のシステム又は構成要素の一部として用いることもできる。位相同期ループＰＬＬ１００はパス１０１上の周波数Ｆ１の入力信号を受け取り、パス１９９上に周波数Ｆ２の出力信号を生成する。比Ｆ２／Ｆ１は、ＰＬＬ１００への入力として（例えば、パス１８１を介して）特定され得る。
【００１８】
制御ブロック１８０は、それぞれ信号１９９及び１０１の周波数Ｆ２及びＦｌの比Ｆ２／Ｆ１を特定する（パス１８１上の）値を受け取る。パス１８１上の値は、図示されていないが、例えば、プロセッサによって生成されうる。それに応じて、制御ブロック１８０が分周係数Ｎ、Ｍ、及びＱの値を算出し、その分周係数をそれぞれのパス１１１、１６１、及び１７１に提供する。或いは、制御ブロック１８０がパス１８１を介して個別の値（Ａ、Ｂ、及びＣ）を受け取り、それぞれの値Ａ、Ｂ、及びＣに基づいて、係数Ｎ，Ｍ、及びＱの値を算出してもよい。制御ブロック１８０はＰＬＬ１００の動作中に係数Ｎ，Ｍ、及びＱの１つ又は複数を動的に変化させうる。
【００１９】
分周器１１０は、入力信号１０１を受け取り、信号１０１の周波数を係数Ｎで分周し、分周された信号をパス１１２上に提供する。ＰＦＤ１２０は、信号１１２と分周器１６０の出力１６２との間の位相差を比較し、パス１２４上に、その位相差に比例する誤差信号を生成する。ループフィルタ１４０は、誤差信号１２４にローパスフィルタリングを提供し、フィルタリングされた信号をパス１４５上に生成する。電圧制御発振器（ＶＣＯ）１５０は、周期信号（例えば、正弦波又は矩形波）をパス１５７上に生成し、周期信号の周波数は、信号１４５の強度によって決定される。分周器１７０は、信号１５７の周波数を係数Ｑで分周し、分周された信号をＰＬＬ１００の出力としてパス１９９上に提供する。
【００２０】
分周器１６０は、信号１５７の周波数を係数Ｍで分周し、分周された信号をパス１６２上でＰＦＤ１２０に提供する。分周器１６０は、信号１５７の周波数を分周するために用いられる分周係数（Ｍ）の値を特定するパス１６１上のプログラミング入力を受け取り、信号１６２を生成する。
【００２１】
ＰＬＬ１００は、全デジタルＰＬＬとして実装され得、その構成要素１１０、１２０、１４０、１５０、１６０、及び１７０の各々はデジタル構成要素として実装され得る。そのような実装において、ＶＣＯ１５０はデジタル制御発振器（ＤＣＯ）として実装されうる。他の実装では、図１の構成要素の１つ又は複数がアナログ又は混合信号の構成要素／ブロックとして実装されうる。それぞれ分周器１１０、１６０、及び１７０の分周係数Ｎ、Ｍ、及びＱは、上述のように、対応する入力を介してプログラム可能でありうる。一実施形態では、ＰＬＬ１００は、（出力信号１９９の）周波数を広範囲で、即ち、非常に低い周波数から非常に高い周波数（例えば、２ギガヘルツ程度）まで、提供するように実装される。分周器１１０、１６０、及び１７０の１つ又は複数は従ってそのような高周波数に適応するように実装される必要がある。また、分周器は、グリッチフリー出力を提供するため、低ジッタ、１つの分周比から別の分周比へのシームレスな遷移（動的変化）等の他の要件もサポートする必要がある。
２．  周波数分周器
【００２２】
図２は一実施形態における周波数分周器のブロック図である。周波数分周器２００は、Ｔ／Ｄ段２１０、周波数分周器段（段）２２０及び２３０−１〜２３０−Ｎ、インバータ２２５−１〜２２５−Ｎ、及びプログラムブロック２６０を含んで図示されている。図１の周波数分周器１１０、１６０、及び１７０の任意のものが周波数分周器２００として実装されうる。
【００２３】
分周器１６０が周波数分周器２００として実装される場合、パス１５７及び１６２上の信号は、それぞれ図２の信号２０１（入力）及び２９９（出力）に対応する。また信号２０１（入力）及び２９９（出力）は、本明細書中ではそれぞれ、第１の入力信号及び第１の出力信号と称される。２０１（入力）の周波数を分周して２９９（出力）を生成するために周波数分周器２００が必要とする分周係数Ｍは、図１のパス１６１に対応する、パス２５１（Ｍ）上で受け取られる。一実施形態において、Ｍは２以上の任意の整数であってよい。段２２０及び２３０−１〜２３０−Ｎは、２０１（入力）の周波数を係数Ｐで分周するよう設計される。Ｐは、Ｍが偶数である場合Ｍ／２に等しく、Ｍが奇数である場合（Ｍ−ｌ）／２に等しい。Ｍ［０］は、Ｍの２進表示の最下位ビット（ＬＳＢ）を指し、Ｍ［１］、Ｍ［２］等は、Ｍのより高次のビットを指す。同様に、Ｐ［０］は、Ｐの２進表示のＬＳＢを指し、Ｐ［１］、Ｐ［２］等は、Ｐのより高次のビットを指す。段２１０は、（段２２０及び２３０−１〜２３０−Ｎによって提供された出力の）最終の２分周動作を実行するか又は分周を実行せず、２９９（出力）を生成する。
【００２４】
段２２０（最下位段）は、パス２０１上で受け取る入力信号の周波数を２、３、及び４の１つである分周係数で分周（即ち、２分周、３分周、及び４分周）し、分周された出力（第１の分周された信号）をパス２２１上に提供する。２分周、３分周、及び４分周動作は、対応する分周モードとみなされうる。分周係数の任意の１つが分周器２００の動作の全期間に適用されてもよく、或いは、図５に関してより詳細に説明されるように、係数の１つが幾つかの時間インターバルで用いられ、他の係数が幾つかの他のインターバルで用いられてもよい。出力２２１の論理レベルが、インバータ２２５−１によって反転され、入力として次の（より高次の）段２３０−１に提供される。段２２０が入力信号２０１を分周して信号２２１を生成するために用いる特定の係数は、プログラムビット（第１のプログラムビット）及び（パス２４２を介して提供される）信号ＥＮ−ＭＯＤ−ＥＸＴＥＮＤ、信号２９９（出力）の値、及びパス２３９−１上で受け取る「モード」信号（第１のモード信号）の値に依存する。
【００２５】
段２２０はモード信号（出力モード信号／Ｍｏｄｏｕｔ［０］）をパス２２９上に生成する。段２２０はさらに、出力２９９を入力として受け取る。このような結合（段２１０への入力の１つとして提供される段２２０の出力、及びその逆）によって、フリップフロップＦＦ３、ＦＦ４、及びＦＦ５の（又は、段２２０外部のフリップフロップとフリップフロップＦＦ３、ＦＦ４、及びＦＦ５の任意のものとの）任意のペア間の論理エレメントの数の最小化を可能にし、それにより、周波数分周器２００の高速動作及び省電力消費及び実装面積削減を図ることができる。
【００２６】
出力２２１の論理レベルは、インバータ２２５−１によって反転され、次の（より高次の）段２３０−１へ入力として提供される。インバータ２２５−２〜２２５−Ｎ（２２５−２及び２２５−Ｎのみが図２に示されている）が同様に、他の段２３０−１〜２３０−Ｎ−１（２３０−Ｎ−１は図２に示されていない）の間に用いられる。インバータ２２５−１〜２２５−Ｎを用いることで、入力モード信号２３９−１〜２３９−Ｎが段２２０のＦＦ３（図５に示す）の立ち下がりでトグルすることを確実にすることができる。その結果、（Ｍｏｄｏｕｔ［０］を生成する）ＡＮＤゲート５４０がＭｏｄｏｕｔ［０］にグリッチを発生させることが防止される。
【００２７】
段２３０−１は、入力として受け取る信号２２６の周波数を係数２及び３の一方である分周係数で分周し、分周された出力をパス２３１上に提供する。入力信号２２６の周波数を分周する特定の係数（２又は３）は、パス２３４−１上に提供される入力の値、並びにパス２３２上の別の入力として受け取られるモード信号の値に依存する。段２３０−１はモード信号（ＭＯＤＯＵＴ［１］）をパス２３９−１上に生成する。
【００２８】
段２３０−２（段２３０−２は図２に示されていない）〜２３０−Ｎの各々も同様に、対応する入力を受け取り、対応する入力の周波数を２又は３の係数で分周し、対応する分周された出力信号を生成する。段２３０−２〜２３０−Ｎの各々は、モード信号（それぞれＭＯＤＩＮ［１］〜ＭＯＤＩＮ［Ｎ］）を直ぐ次の（より高次の）段から受け取る。段２３０−２〜２３０−Ｎの各々は、入力として直前の（より低次の）段に提供する対応するモード信号（それぞれＭＯＤＯＵＴ［１］〜ＭＯＤＯＵＴ［Ｎ］）を生成する。段２３０−Ｎは、インバータ２２５−Ｎを介する入力信号２３６、及びパス２３８上の対応するモード信号（ＭＯＤＩＮ［Ｎ］）を受け取るように図示されている。段２３０−１〜２３０−Ｎは、本明細書中では、より高次段とも称され、順次／カスケード方式で接続される。段２３０−１〜２３０−Ｎは、本明細書中では「２／３分周」段とも称される。２／３分周段の総数「Ｎ」は、周波数分周器２００が提供するように要求又は設計される最大値分周値（分周係数Ｍとも称される）に基づいて決定される。
【００２９】
Ｔ／Ｄ段２１０（同様に本明細書中では出力段とも称される）は、Ｍｏｄｏｕｔ［０］（２２９）（第１の出力モード信号）を入力として受け取る。Ｔ／Ｄ段２１０は、信号２２９の周波数を係数２で分周するように、或いは、単にクロック入力として受け取る信号２０１（入力）の１サイクル分信号２２９を遅延させるように動作し、出力信号（第１の出力信号）をパス２９９（出力）上に生成する。信号２０１（入力）は、周波数分周器２００に提供され、周波数分周器２００の出力信号２９９（出力）を生成するために所望の数で分周される、入力信号である。２９９（出力）を生成するために、２０１（入力）が分周されるべき数又は値は、入力２４３、２４２、及び２３４−１〜２３４−Ｎを介して特定又は制御される。
【００３０】
プログラムブロック２６０は、パス２５１（Ｍ）上の分周値（Ｍ）及び出力信号２９９（出力）を受け取る。分周値は、信号２９９（出力）を生成するために周波数分周器２００が信号２０１（入力）に適用する必要がある分周係数（Ｍ）を表す。Ｍの受け取りに応答して、プログラムブロック２６０は対応するプログラム値（プログラムビット）及び選択信号を生成する。プログラムブロック２６０は、それぞれのプログラムビットをブロック２２０及び２３０−１〜２３０−Ｎのそれぞれのブロックに、それぞれパス２４２及び２３４−１〜２３４−Ｎを介して提供し、選択ビットをパス２４３を介してブロック２１０に提供する。プログラムブロック２６０は、それぞれのパス２４２、２４３、及び２３４−１〜２３４−Ｎ上の値を、後述するように、分周係数間のシームレス切り替えを可能にするような方式で提供する（又は転送する）。プログラム値は、ブロック２１０、２２０、及び２３０−１（及び、従って周波数分周器２００）が入力信号２１０（入力）の周波数の１／Ｍに等しい周波数を持つ出力信号２９９（出力）を生成できるように生成される。
【００３１】
周波数分周器２００に実装されるべき段の数は、周波数分周器２００が適応するように設計された分周係数（Ｍ）の最大数に依存する。最大分周係数Ｍ−ｍａｘのために、１つのＴ／Ｄ段（２１０）、１つの２／３／４分周段（２２０）、及び「Ｘ」個の２／３分周段を実装する必要がある。Ｘの値は、次に示すように決定される。
Ｍ−ｍａｘ＝７の場合（即ち、Ｍの値が１〜７の場合）、Ｘ＝０；
Ｍ−ｍａｘ＝１５の場合、Ｘ＝ｌ；
Ｍ−ｍａｘ＝３１の場合、Ｘ＝２；及び
Ｍ−ｍａｘ＝６３の場合、Ｘ＝３。
一般に、Ｍ＝ｌ、２、及び３の場合、Ｘ＝０である。Ｍ−ｍａｘがこれより高い値である場合、Ｘの値は下記関係で決定される。
２Λ（ｑ−１）＜＝Ｍ−ｍａｘ＜（２Λｑ）、Ｘ＝（ｑ−３）
ここで、ｑは任意の正の整数であり、Λは「累乗」演算を表す。
【００３２】
分周係数「Ｍ」の値の（カレント値から新値への）変化に応答して、プログラムブロック２６０は対応する新プログラム値をパス２４２、２４３、及び２３４−１〜２３４−Ｎ上に生成するよう動作する。一実施形態において、プログラムブロック２６０は、周波数分周器２００の内部信号の１つ又は複数に（及び、従って信号２９９（出力）上に）グリッチ及び他の望ましくない影響が発生するのを防止するような方式で新プログラム値が適用される（パス２４２、２４３、及び２３４−１〜２３４−Ｎ上に転送される）ことを確実にするように実装される。信号２９９におけるグリッチとは、信号２９９の意図しない（及び望ましくない）ロジックエクスカーションを指す。そうでないと、周波数分周器２００が１つの（カレントの）分周係数の提供から新しい分周係数に切り替えるときに遷移周期の間にこのようなグリッチが起こりうる。後に詳しく説明するように、プログラムブロック２６０は、グリッチを起こすことなく、１つの分周係数から別の分周係数への切り替えを確実に行うように実装される。
【００３３】
上述のように、図１の分周器１１０、１６０、及び１７０の各々が図２の周波数分周器２００として実装され得、分周器１１０、１６０、及び１７０はそれぞれ分周係数Ｎ、Ｍ、及びＱを受け取り、これらは、対応する分周係数Ａ、Ｂ、及びＣに基づいて制御ブロック１８０によって生成される。図１及び図２を組み合わせて参照すると、拡散スペクトル技術をサポートするＰＬＬ１００の一実施形態では、信号２２９（Ｍｏｄｏｕｔ［０］）のエッジで、Ｍの値が（任意の整数値によって）変更される。Ｍの変化は値Ｂ辺りで変動する（即ち、値Ｂより大きいことも、小さいこともある）。同様に、係数Ｎ及びＱも信号２２９のエッジで変更されうる。Ｎの変化は値Ａ辺りで変動する。
【００３４】
この実施形態では、Ｑの値は、ＰＬＬ１００の電源ＯＮ時に、緩やかに（例えば、段階的に）Ｃより高い値から値Ｃへ下がりうる。分周係数ＱのＣより高い値から値Ｃへのこのような緩やかな減少によって、２９９（出力）を入力クロック又は入力信号として用いるデバイス又は構成要素により消費される電流がゼロから最終値まで急激に上昇することなく、緩やかに上昇することを確実にし、そのためそのデバイスや構成要素に電力供給するために用いられる電源に対する要件が緩和される。係数Ｎ，Ｍ、及びＱは、それぞれ、２以上の任意の正の整数でありうる。次に図１のブロックを詳しく説明する。
３．  ２／３分周段
【００３５】
図３は、一実施形態における２／３分周段の実装詳細を示すブロック図である。２／３分周段３００は、ＮＯＲゲート３１０、フリップフロップ３２０（ＦＦ１）、ＡＮＤゲート３３０及び３６０、ＯＲゲート３４０、ＮＯＴゲート３４５、及びフリップフロップ３５０（ＦＦ２）を含んで図示されている。図２の段２３０−１〜２３０−Ｎの各々は段３００として実装され、従って、段３００［ｋ］はこのような段の任意段を総称として指し、段３００［１］〜３００［Ｎ］は、それぞれ、段２３０−１（第１の分周器段）〜２３０−Ｎを指す。これに対応して、段３００［ｋ］の入力及び出力も指数ｋを含んで示され、ｋは１〜Ｎの範囲である。
【００３６】
段３００［ｋ］は、入力信号ＣＬＫＩＮ［ｋ］（３０１）の周波数を、プログラムビットＰ［ｋ］（３６１）及び入力モード信号ＭＯＤＩＮ［ｋ］（３４１）に基づいて、２（２分周）又は３（３分周）の係数で分周して、対応する分周された出力信号ＣＬＫＯＵＴ［ｋ］（２３２）を生成する。信号ＣＬＫＯＵＴ［ｋ］は、入力信号ＣＬＫＩＮ［ｋ］の１周期の間、論理高にあり、２分周又は３分周のどちらが段３００［ｋ］によって実行されるかに依存して、ＣＬＫＩＮ［ｋ］の１又は２周期の間、論理低にある。図２の段２３０−１は、段２３０−１〜２３０−Ｎによって形成される多数の２／３分周段の組内の第１の分周器段とみなされうる。
【００３７】
段３００［ｋ］は信号ＭＯＤＯＵＴ［ｋ］（３３５）を生成する。ＭＯＤＯＵＴ［ｋ］は、分周器２００においてアクティブであるようイネーブルされた最右段（最上位段とも称される）の出力信号ＣＬＫＯＵＴの各サイクルで、入力クロックＣＬＫＩＮ［ｋ］の１周期の間、論理高であるよう生成される。明確にするために、段２３０−Ｎ（図２）がアクティブな（即ち、入力信号２０１の周波数を分周するように動作可能にされた）最右段であると仮定し、段２３０−１（図２）を段３００［１］と称するとすると、出力信号ＣＬＫＯＵＴ［Ｎ］、即ち、信号２３７、の各サイクルの入力信号ＣＬＫＩＮ［１］（即ち、信号２２６）の１周期の間、ＭＯＤＯＵＴ［１］が論理高であるよう生成される。分周器２００内でアクティブであるようイネーブルされた最右段の出力信号ＣＬＫＯＵＴの周期の残りの間は、ＭＯＤＯＵＴ［ｋ］は論理低であるよう生成される。
【００３８】
段３００［ｋ］の信号ＭＯＤＯＵＴ［ｋ］は、前の段３００［ｋ−１］のＭＯＤＩＮ［ｋ−１］として接続され、段３００［ｋ−１］に、段３００［ｋ−１］が３分周動作を実行するべき時間インターバルを特定し、その際Ｐ［ｋ−１］もそのような３分周の分周を許可することを条件とする。同様に、段３００［ｋ］のＭＯＤＩＮ［ｋ］が、次に高次の段（段３００［ｋ＋１］）のＭＯＤＯＵＴ［ｋ＋１］として接続され、段３００［ｋ］に、段３００［ｋ］が３分周動作を実行すべき時間インターバルを特定し、その際Ｐ［ｋ］もそのような３分周の分周を許可することを条件とする。段３００［ｋ］の信号Ｐ［ｋ］は、プログラムブロック２６０（図３）から受け取られ、分周係数Ｍに依存する値を有する。Ｐ［ｋ］の値が論理低（又は論理０）であると、段３００［ｋ］が常に２分周動作を実行すべきであることを特定する。Ｐ［ｋ］の値が論理高（又は論理１）であると、段３００［ｋ］は、ＭＯＤＩＮ［ｋ］が論理高である期間／インターバルにおいて３分周動作を実行すべきであり、ＭＯＤＩＮ［ｋ］が論理低である期間／インターバルにおいて２分周動作を実行すべきであることを特定する。Ｍｏｄｏｕｔ［０］（図２の２２９）の周波数は、アクティブであるようにイネーブルされた最上位段のＣＬＫＯＵＴ信号の周波数に等しい。例えば、Ｍの値が、段２２０、２３０−１〜２３０−Ｎのすべてが（分周に関して）アクティブ／動作状態であるようにイネーブルされると仮定すると、Ｍｏｄｏｕｔ［０］の周波数は、信号２３７（アクティブであるようにイネーブルされた最上位段２３０−ＮのＣＬＫＯＵＴ）の周波数に等しい。
【００３９】
段３００［ｋ］の信号ＣＬＫＩＮ［ｋ］は段３００［ｋ−１］のＣＬＫＯＵＴ［ｋ−１］の論理逆数として受け取られる。段３００［ｋ］のＣＬＫＯＵＴ［ｋ］の論理逆数は、段３００［ｋ＋１］のＣＬＫＩＮ［ｋ＋１］として提供される。上述のように接続された一組の段３００［ｋ］（複数の分周器段）は、カスケード接続されていると称される。段２２０の段２３０−１〜２３０−Ｎとの組み合わせも、カスケード接続されているとみなされうる。
【００４０】
ＭＯＤＩＮ−ＥＮ［ｋ］（イネーブル信号）の値が論理ゼロであると、その段（段３００［ｋ］）のＭＯＤＩＮ［ｋ］の効果をディスエーブルし、あたかもＭＯＤＩＮ［ｋ］が論理１であるかのように、そのＰ入力（Ｐ［ｋ］）の値のみに依存して、段３００［ｋ］に２又は３分周させる。そのため、ＭＯＤＩＮ−ＥＮ［ｋ］が論理ゼロであるとき、段３００［ｋ］は、Ｐ［ｋ］が論理ゼロである場合２で分周し、Ｐ［ｋ］が論理１である場合３で分周する。
【００４１】
ＭＯＤＩＮ−ＥＮ［ｋ］の値が論理１であると、段３００［ｋ］によって実行される分周に影響を与えるようにＭＯＤＩＮ［ｋ］をイネーブルする。ＭＯＤＩＮ−ＥＮ［ｋ］が論理１のときは、ＭＯＤＩＮ［ｋ］が論理１のときのみ、段３００［ｋ］は（上述のようにＰ［ｋ］の値に依存して）２又は３で分周する。ＭＯＤＩＮ［ｋ］が論理ゼロのとき（ＭＯＤＩＮ−ＥＮ［ｋ］は論理１である）、段３００［ｋ］は２で分周する。
【００４２】
段３００［ｋ］のＭＯＤＩＮ−ＥＮ［ｋ］が論理ゼロである場合、すべてのより高次段（段３００［ｋ＋１］、段３００［ｋ＋２］等）は動作中になることを要求されず、リセット状態（即ち、動作からディスエーブルされる）に維持されうる。そのようなシナリオでは、ＭＯＤＩＮ−ＥＮ［ｋ］＝０であるこのような段３００［ｋ］の最も低いもの（最下位）が最上位段を表し、Ｍｏｄｏｕｔ［０］の周波数はＣＬＫＯＵＴ［ｋ］の周波数に等しい。
【００４３】
図２及び図３を組み合わせて参照すると、各段３００［ｋ］の信号ＭＯＤＩＮ−ＥＮ［ｋ］及びＰ［ｋ］がプログラムブロック２６０から受け取られる。このように、例えば、段２３０−１を段３００［１］とすると、２／３分周ブロック２３０−１（図１）のＭＯＤＩＮ−ＥＮ［１］及びＰ［１］が、プログラムブロック２６０からパス２３４−１を介して受け取られる。信号２２６はＣＬＫＩＮ［１］に対応し、信号２３１はＣＬＫＯＵＴ［１］に対応し、信号２３２はＭＯＤＩＮ［１］に対応し、信号２３９−１はＭＯＤＯＵＴ［１］に対応する。同様に、段２３０−Ｎを段３００［Ｎ］とすると、２／３分周ブロック２３０−ＮのＭＯＤＩＮ−ＥＮ［Ｎ］及びＰ［Ｎ］が、プログラムブロック２６０からパス２３４−Ｎを介して受け取られる。信号２３６はＣＬＫＩＮ［Ｎ］に対応し、信号２３７はＣＬＫＯＵＴ［Ｎ］に対応し、信号２３８はＭＯＤＩＮ［Ｎ］に対応し、信号２３９−ＮはＭＯＤＯＵＴ［Ｎ］に対応する。ブロック２２０及び２３０−１〜２３０−Ｎの全てがイネーブルされる（また、分周のために動作可能にされる）と仮定すると、２３０−Ｎは周波数分周器２００の最上位（又は最右の）２／３分周段を表し、ＭＯＤＩＮ−ＥＮ［１］〜ＭＯＤＩＮ−ＥＮ［Ｎ］の各々はイネーブルされる（論理高）ことになる。ＭＯＤＩＮ［Ｎ］（一般には、最上位のイネーブルされた段のＭＯＤＩＮ）は論理高に設定される。
【００４４】
ＣＬＫＩＮ［ｋ］がクロック入力としてポジティブエッジトリガ型フリップフロップＦＦ１及びＦＦ２のクロック端子に提供される。ＮＯＲゲート３１０は、ＡＮＤゲート３６０の出力３６９及びＦＦ１のＱ出力３２３の論理ＮＯＲ演算を実行し、その結果をＦＦ１のＤ入力としてパス３１２上に提供する。ＣＬＫＯＵＴ［ｋ］はＦＦ１のＱ出力３２３である。インバータ３４５は、信号３４２（ＭＯＤＩＮ−ＥＮ［ｋ］）の論理ＮＯＴ演算を実行し、信号３４２の逆数をパス３４５上に提供する。ＯＲゲート３４０はパス３４３上に信号３４１（ＭＯＤＩＮ［ｋ］）及び信号３４５の論理ＯＲ結果を提供する。ＡＮＤゲートはパス３３５上に信号３４３及び３２３の論理ＡＮＤ結果を提供する。信号３３５はＦＦ２のＤ入力として提供される。信号３３５は出力信号ＭＯＤＯＵＴ［ｋ］としても提供される。ＡＮＤゲートは信号３５６（ＦＦ２のＱ出力）及び信号３６１（Ｐ［ｋ］）のＡＮＤ演算の結果を提供する。ＦＦ１とＦＦ２との間、及びＦＦ１及びＦＦ２からの／ＦＦ１及びＦＦ２への、段３００［ｋ］の内部又は外部のその他の任意のフリップフロップからの、信号パスの組合せエレメント（一般的にはメモリエレメント）の数は先行技術の２／３分周段の実装よりも少なく、そのため相対的により高速な演算が可能になり、段３００［ｋ］の実装に必要な電力消費及び面積も低減される。
【００４５】
図４Ａ及び図４Ｂは、図３の回路の幾つかのノードの例示の波形を示す。図４Ａはノード３６１上に提供されるＰ［ｋ］の値が論理ゼロのときの、図３の段３００［ｋ］のノード３６１、３０１、３４１、３３５、及び３２３の例示の波形を示す。上述のように、Ｐ［ｋ］の値がゼロであると、段３００［ｋ］を２分周モードで動作させ、ノード３０１（ＣＬＫＩＮ［ｋ］）及び３２３（ＣＬＫＯＵＴ［ｋ］）の波形を比較することによってわかるように、ＣＬＫＯＵＴ［ｋ］は交互に論理高及び論理低である。Ｐ［ｋ］がゼロに等しいとき、信号ＭＯＤＩＮ［ｋ］は分周動作には影響を与えず、段３００［ｋ］は２分周モードのみで動作する。
【００４６】
図４Ｂは、ノード３６１上に提供されるＰ［ｋ］の値が論理１のときの、図３の段３００［ｋ］のノード３６１、３０１、３４１、３３５、及び３２３の例示の波形を示す。Ｐ［ｋ］が論理１であるとき、段３００［ｋ］はＭＯＤＩＮ［ｋ］の論理１レベルに応答して（矢印４１０で示すように）３分周モードで動作し、ＭＯＤＩＮ［ｋ］が論理ゼロのとき（矢印４２０で示すように）２分周モードで動作する。そのため、ＣＬＫＯＵＴ［ｋ］は、ＭＯＤＩＮ［ｋ］の値に依存して、交互に、ＣＬＫＩＮ［ｋ］の１周期の間論理高であり、ＣＬＫＩＮ［ｋ］の１又は２周期の間論理低である。
【００４７】
図４Ｃは、各々図３に示すように実装された３つのカスケードされた段３００［１］、３００［２］、及び３００［３］のＰ、ＣＬＫＩＮ、ＭＯＤＩＮ、ＭＯＤＯＵＴ、及びＣＬＫＯＵＴノードの波形を示す。各段のそれぞれの入力及び出力は図３に関して上述したように接続される。ＣＬＫＩＮ［１］は、分周される入力クロックであり、外部ソースから受け取ることができる。この例ではＣＬＫＩＮ［１］が１３（２進数では１１０１）で分周されるものと仮定する。それぞれの段３００［１］、３００［２］、及び３００［３］に対する１、０、及び１のＰ入力は、２進数１１０１の下位３ビット（１、０、及び１）に等しい。なお、各段は単独で３で分周できるので、１３分周動作全体のためには３段が必要であることに留意されたい。段３００［３］のＭＯＤＩＮ［３］は論理１に設定される。
【００４８】
図４Ｃから、ＣＬＫＯＵＴ［３］の周波数はＣＬＫＩＮ［１］の周波数の１／１３であることが観察されうる。また、ＣＬＫＯＵＴ［３］の各サイクル（最右（最上位）段、この例では段３００［３］のＣＬＫＯＵＴ）のＣＬＫＩＮ［１］の１周期の間、ＭＯＤＯＵＴ［１］が論理高（のみ）であり、それ以外は論理ゼロであることも観察されうる。同様に、ＣＬＫＯＵＴ［３］の各サイクルのＣＬＫＩＮ［２］の１周期の間、ＭＯＤＯＵＴ［２］は論理高のみである。また、図４Ｃから、ＭＯＤＯＵＴ［１］の周波数はＣＬＫＩＮ［１］の周波数の１／１３であることも観察されうる。
４．  ２／３／４分周段
【００４９】
図５は、一実施形態の２／３／４分周段の実装の詳細を示す図である。図にはＮＯＲゲート５１０、フリップフロップ５２０（ＦＦ３）、５６０（ＦＦ４）、及び５９０（ＦＦ５）、ＯＲゲート５３０、５５０、及び５９５、インバータ５３５、ＡＮＤゲート５４０、５７０、及び５８０が示されている。周波数分周器２００（図２）では、最下位段（ＬＳ段２２０）が、図５の２／３／４分周段として実装されている。段２２０は、プログラムの値又は後述する他の入力信号に基づいて、２分周、３分周、又は４分周の分周を実行するように設計されている。信号２４２ａ、２４２ｂ、及び２４２ｃは、パス２４２（図２）に含まれていると仮定される。段２２０はＰの最下位ビットを受け取るので、段２２０は最下位（ＬＳ）段と称される。
【００５０】
インバータ５３５は信号２４２ａ（Ｍｏｄｉｎ−ｅｎ［０］）の論理逆数を出力として提供する。ＯＲゲート５３０は、信号２３９−１（Ｍｏｄｉｎ［０］（第１のモード信号））及び信号２４２ａ（Ｍｏｄｉｎ−ｅｎ［０］）の論理逆数の論理ＯＲ演算の結果を出力として提供する。ＡＮＤゲート５４０は、ＯＲゲート５３０の出力及びＦＦ３のＱ出力２２１（Ｃｌｋｏｕｔ［０］（第１の分周された信号））の論理ＡＮＤを出力２２９（Ｍｏｄｏｕｔ［０］（出力モード信号））として提供する。ＯＲゲート５５０は、ＡＮＤゲート５４０の出力及びＦＦ５のＱ出力の論理ＯＲ結果を出力として提供し、ＯＲゲート５５０の出力はＦＦ４のＤ入力に提供される。ＡＮＤゲート５７０は、信号２４２ｂ（プログラムビットＰ［０］）及びＦＦ４のＱ出力の論理ＡＮＤを出力として提供する。３入力ＡＮＤゲート５８０は、信号２２９、２４２ｃ（ＥＮ−ＭＯＤ−ＥＸＴＥＮＤ）及び２９９（出力）（図２）の論理ＡＮＤ結果を出力として提供し、この出力はＦＦ５のＤ入力として提供される。ＯＲゲート５９５は、ＦＦ３及びＦＦ５のＱ出力の論理ＯＲ結果を出力として提供する。ＮＯＲゲート５１０は、ＯＲゲート５９５の出力及びＡＮＤゲート５７０の出力の論理ＮＯＲ結果を出力として提供し、この出力はＦＦ３のＤ入力として提供される。ＦＦ３、ＦＦ４、及びＦＦ５の各々は、ポジティブエッジトリガ型フリップフロップとして実装されて図示されており、信号２０１（入力）（図１）によってクロックされる。しかしながら、他の実施形態では、これらのフリップフロップが異なって実装されてもよい。信号２４２ｃ（ＥＮ−ＭＯＤ−ＥＸＴＥＮＤ）（本明細書では第３のビットとも称される）は、Ｍが４より大きい場合、分周係数Ｍの２進数表示の最下位ビット（Ｍ［０］）に等しく、Ｍが４以下の場合は０に等しい。
【００５１】
段２２０の図５の実装は（ＦＦ３、ＦＦ４、及びＦＦ５から構成される）フリップフロップペア間の信号パスに最小の組合せ論理を含む。更に、タイミングクリティカルパスの長さを短くすることができるように、フリップフロップペアの間の論理エレメントの数がほぼ等しい。その結果、図５の実装は、高速の動作速度に適応し得、電力消費が少なくなり得、小面積に実装可能である。更に、段２２０の設計により、確実にＭｏｄｏｕｔ［０］が信号２０１（入力）の１周期の間のみ論理高になり、それにより、Ｍｏｄｏｕｔ［０］をＴ／Ｄ段２１０のフリップフロップのＤ入力として用いることができる。１つの段のＣＬＫＯＵＴと別の段のＣＬＫＩＮの間にインバータを用いることによって（図２に示すように）、全てのＭＯＤＩＮ信号がＦＦ３（図５の５２０）の立ち下がりでトグルするようにすることを確実にできる。そのため、信号Ｍｏｄｏｕｔ［０］はグリッチフリーになり得る。
【００５２】
Ｍｏｄｉｎ−ｅｎ［０］の値が論理ゼロであると、段２２０のＭｏｄｉｎ［０］の効果をディスエーブルし、あたかもＭｏｄｉｎ［０］が論理１であるかのように、段２２０を動作させる。
【００５３】
Ｍｏｄｉｎ−ｅｎ［０］の値が論理１であると、Ｍｏｄｉｎ［０］の効果をイネーブルし、段２２０により実行される分周に影響を与える。
【００５４】
段２２０のＭｏｄｉｎ−ｅｎ［０］が論理ゼロである場合、全てのより高次の段（段２３０−１〜２３０−Ｎ）は、動作中となることを要求されず、リセット状態（即ち、動作からティスエーブルされる）に維持されうる。そのようなシナリオでは、段２２０は最上位段を表し、Ｍｏｄｏｕｔ［０］の周波数はＣｌｋｏｕｔ［０］の周波数に等しい。
【００５５】
信号２０１（入力）の２分周、３分周、又は４分周の分周を実行する図５の分周器２２０の動作は、次の論理によって説明される。
信号Ｍｏｄｉｎ［０］（２３９−１）が０（論理低）に等しいとき、分周器２２０は２分周を実行し、信号２２１（Ｃｌｋｏｕｔ［０］）は交互に論理高及び論理低である。信号Ｍｏｄｉｎ［０］が１（論理高）に等しく、且つ、Ｍ［１］が０に等しい場合、分周器２２０は信号２９９（出力）の交互の半周期で２分周及び３分周を実行する。信号Ｍｏｄｉｎ［０］が１に等しく、且つ、Ｍ［１］が１に等しい場合、分周器２２０は信号２９９（出力）の交互の半周期で３分周及び４分周を実行する。
【００５６】
例として、Ｍが１３に等しい場合、Ｐ（即ち、（Ｍ−ｌ）／２）は６（２進法では１１０）に等しく、Ｍ［１］（Ｐ［０］にも等しい）は偶数である。従って、信号Ｍｏｄｉｎ［０］が論理高のとき、分周器２２０は２分周及び３分周を信号２９９（出力）の交互の半周期で行う。一方、Ｍが１５に等しい場合、Ｐは７（２進数では１１１）に等しく、Ｍ［１］（Ｐ［０］にも等しい）は奇数である。従って、信号Ｍｏｄｉｎ［０］が論理高のとき、分周器２２０は３分周及び４分周を信号２９９（出力）の交互の半周期で行う。４分周動作は、Ｐ［０］が１に等しい場合の分周係数Ｍの値（例えば、Ｍ＝ｌｌ、Ｍ＝１５、Ｍ＝１９）に適応するために必要とされる。Ｍ［１］が奇数のとき、信号２２１（Ｃｌｋｏｕｔ［０］）の交互の半サイクルは、２０１（入力）のＸサイクルの間、論理高である必要があり、２０１（入力）の次のＸ＋１サイクルの間、論理低である必要があり、ここで、Ｘは（Ｍ−ｌ）／２に等しい。例えば、分周係数Ｍが３１の場合（Ｔ／Ｄ段２１０は最終の２分周を提供する）、信号２２１（Ｃｌｋｏｕｔ［０］）の交互の半サイクルは、２０１（入力）の１５サイクルの間、論理高である必要があり、２０１（入力）の次の１６サイクルの間、論理低である必要がある。
【００５７】
分周器２２０は、信号２９９（出力）の半周期毎に、信号２０１（入力）の１周期のみの間、条件（Ｍｏｄｉｎ［０］＝１）が発生するように設計される。図５及び図２を組み合わせて参照すると、信号２２９（Ｍｏｄｏｕｔ［０］）が入力としてＴ／Ｄ段２１０（図２）に提供される。Ｔ／Ｄ段２１０は、信号２２９を２で分周するか、もしくは更なる分周を行わずに２０１（入力）の１サイクルに等しい遅延を行って信号２２９を提供する。
【００５８】
図６Ａ及び図６Ｂは図５の回路の幾つかのノードの例示の波形を示す。図６Ａは、Ｍ［１］＝０、即ち、Ｍ／２比が偶数（Ｐビットの値は、Ｍ［１］と同じ）であるときの、分周器２２０（図５）のノード２４２ｂ（Ｐ［０］）、２０１（入力）、２３９−１（Ｍｏｄｉｎ［０］）、２２９（Ｍｏｄｏｕｔ［０］）、及び２２１（Ｃｌｋｏｕｔ［０］）の例示の波形を示す。信号２２１（Ｃｌｋｏｕｔ［０］）は、信号２０１（入力）の半分の周波数を有し、２３９−１（Ｍｏｄｉｎ［０］）がゼロのインターバルにおいて交互に論理高及び論理低であることが観察されうる。しかしながら、Ｍｏｄｉｎ［０］の論理１から論理ゼロへの遷移に直ぐ続いて、信号２２１（Ｃｌｋｏｕｔ［０］）は、Ｍｏｄｉｎ［０］の交互のサイクル毎に２０１（入力）の２サイクルの間、論理ゼロである。明確にするために、２２１（Ｃｌｋｏｕｔ［０］）は、矢印６１０ａで示す時点において２０１（入力）の１サイクルのみの間、論理ゼロであるが、矢印６１０ｂで示す次の時点において２０１（入力）の２サイクルの間、論理ゼロである。このパターンは、図６Ａの他の時点のＣｌｋｏｕｔ［０］の値から観察されるように、Ｍｏｄｉｎ［０］が論理１であるとき（又は論理１から論理ゼロへの遷移で）繰り返す。このように、分周器２２０は、Ｍｏｄｉｎ［０］の論理高の値の間、交互に（Ｍｏｄｉｎ［０］の交互のサイクルで）２及び３で分周する。分周器２２０は他のすべての時間は２で分周する。
【００５９】
図６Ｂは、Ｍ［１］＝ｌ、即ち、Ｍ／２比が奇数（Ｐ［０］ビットの値は、Ｍ［１］と同じ）であるときの、図５の段２２０のノード２４２ａ（Ｐ［０］）、２０１（入力）、２３９−１（Ｍｏｄｉｎ［０］）、２２９（Ｍｏｄｏｕｔ［０］）、及び２２１（Ｃｌｋｏｕｔ［０］）の例示の波形を示す。信号２２１（Ｃｌｋｏｕｔ［０］）は、信号２０１（入力）の半分の周波数を有し、２３９−１（Ｍｏｄｉｎ［０］）がゼロのインターバルにおいて交互に論理高及び論理低であることが観察されうる。しかしながら、信号２２１（Ｃｌｋｏｕｔ［０］）は、Ｍｏｄｉｎ［０］の論理１から論理ゼロへの遷移に直ぐ続いて、２０１（入力）の２及び３サイクルの間、交互に（即ち、Ｍｏｄｉｎ［０］の交互の論理高から論理低への遷移毎に）論理ゼロである。明確にするために、２２１（Ｃｌｋｏｕｔ［０］）は、矢印６２０ａで示す時点において２０１（入力）の３サイクルの間、論理ゼロであるが、矢印６２０ｂで示す次の時点においては、２０１（入力）の２サイクルの間、論理ゼロである。このパターンは、図６Ｂの他の時点のＣｌｋｏｕｔ［０］の値から観察されるように、Ｍｏｄｉｎ［０］が論理１のとき（又は論理１から論理ゼロへの遷移で）繰り返す。このように、分周器２２０は、Ｍｏｄｉｎ［０］の論理高の値に対応して交互に（Ｍｏｄｉｎ［０］の交互のサイクルで）３及び４で分周する。分周器２２０は他のすべての時間は２で分周する。
【００６０】
Ｃｌｋｏｕｔ［０］の論理ゼロレベルのこの付加的な「延長」は、信号Ｍ０（これは分周係数ＭのＬＳＢである）と、信号２９９で示される２９９（出力）の特定の半サイクルとによって制御される。このような延長は、図６Ａ及び６Ｂから観察されうるように、Ｍｏｄｉｎ［０］の対応する（交互の）論理高から論理低への遷移の後直ちに生成される。
５．  トグル／遅延段
【００６１】
図７は、一実施形態のＴ／Ｄ段２１０の実装の詳細を示す図である。Ｔ／Ｄ（トグル／遅延）段２１０は、出力段とも称され、マルチプレクサ（ＭＵＸ）７１０及び７２０、フリップフロップ７３０（ＦＦ６）、及びインバータ７４０を含んで図示されている。
【００６２】
ＭＵＸ７１０は、選択信号として信号２２９（Ｍｏｄｏｕｔ［０］）を受け取り、信号２２９の値に基づいて、信号２９９（出力）及び７４１の一方を出力７１２として提供する。図７では、信号２２９の値が論理高であると７４１を出力７１２として選択し、信号２２９の値が論理低であると信号２９９を出力７１２として選択すると仮定される。ＭＵＸ７２０は、信号２４３（図２）を選択信号として受け取り、信号２４３の値に基づいて、信号７１２及び２２９の一方を出力７２３として提供する。信号７２３は、フリップフロップ７３０（ＦＦ６）のＤ入力として提供される。ＦＦ６のＱ出力は、周波数分周器２００の出力２９９（出力）として提供される。信号２２９は、ＭＵＸ７１０への１つの入力として提供される。信号２９９の逆数がインバータ７４０によって生成され、パス７４１上に提供される。ＦＦ６は、ポジティブエッジトリガ型フリップフロップとして実装され、そのクロック入力として２０１（入力）を受け取るように図示されている。
【００６３】
ＦＦ６は、そのクロック信号としての信号２０１（入力）を用いて動作するので、電源（図示されていないが周波数分周器２００に電力供給するために用いられる）から出力２９９（出力）に転送される電源ジッタの程度は、最上位のイネーブルされた段のＣＬＫＯＵＴをＦＦ６がその入力クロック信号として受け取る場合に比べて大幅に小さい。また、入力２０１と出力２９９との間の遅延（待ち時間）も、最上位のイネーブルされた段のＣＬＫＯＵＴをＦＦ６（又は一般的にはＴ／Ｄ段２１０）がその入力クロック信号として受け取る場合の実装に比べて大幅に小さい。
【００６４】
動作では、分周係数Ｍが４未満である場合、選択入力（又はモードビット）２４３はＴ／Ｄ段２１０を「遅延」モードに設定し、信号２４３は論理ゼロに等しく、ＭＵＸ７２０は信号２２９を出力７２３として提供する。「遅延」モードでは、Ｔ／Ｄ段２１０（具体的にはＦＦ６）は、２０１（入力）の１サイクル（周期）に等しい遅延の後、信号２２９（Ｍｏｄｉｎ［０］）を２９９（出力）として転送する。分周係数Ｍが４以上である場合、選択入力２４３はＴ／Ｄ段２１０を「トグル」モードに設定し、信号２４３は論理１に等しく、ＭＵＸ７２０は信号７１２を出力７２３として提供する。「トグル」モードでは、Ｍｏｄｏｕｔ（０）上で論理高が検知される（図８ではＭｏｄｏｕｔ（０）の高から低への遷移で検知されるように示される）とき、ＦＦ６のＱ出力（即ち、信号２２９（出力））はそのカレント状態からトグルする（即ち、現在論理低である場合は論理高に切り替わり、その反対も同様である）。信号２２９（出力）は、等しい高期間及び低期間を有するが、Ｍの奇数の値の場合は例外である。Ｍが奇数のときは、２９９（出力）の高時間と低時間との間に、２０１（入力）の１周期の差がある。例えば、Ｍ値が７２である場合、信号２９９（出力）は２０１（入力）の３６サイクルの間、論理高であり、２０１（入力）の３６サイクルの間、論理低である。Ｍ値が７３である場合、信号２９９（出力）は、２０１（入力）の３６サイクルの間、論理高であり、２０１（入力）の３７サイクルの間、論理低である。信号２２９は、周波数分周器２００において動作するようイネーブルされた最上位段のサイクルＣＬＫＯＵＴ毎に信号２０１（入力）の１周期の間、論理高である。
【００６５】
図８は、信号２０１、２４２ｃ、２２９、及び２９９の例示の波形を示す図である。図８の例では、分周係数Ｍは４より大きく且つ奇数であると仮定される。２４２ｃ（ＥＮ−ＭＯＤ−ＥＸＴＥＮＤ）が１（奇数）であるため、信号２９９（出力）が、論理高よりも１つ余分の論理低の期間を有することが観察されうる。また、Ｍは４より大きいと仮定されるので、Ｔ／Ｄ段２１０は上述のような「トグル」モードで動作する。
【００６６】
周波数分周器２００は、１つの分周係数から別の分周係数へシームレスに切り替わるように設計される。即ち、周波数分周器２００の出力（２９９）が、１つの周波数から別の（所望の新しい）周波数へ、如何なるグリッチを示すことなく切り替わるように設計される。加えて、このようなシームレス切り替え（一般的には、グリッチフリー動作）では、１つの周波数から別の周波数への切り替えの時点又はその付近で、出力（２９９）が誤った分周（意図しない時間周期）を示さないこと、及びいかなる時間長もブランクにしないようにすることが必要とされうる。一般には、シームレス切り替えでは、出力２９９のカンレントサイクルを完了し、所望の新しい周波数に対応する新しいサイクルを開始する際に、出力２９９にギャップやグリッチが無いことが要求される。このような能力によって、上述した好ましくない影響の１つ又は複数を生じることなく、周波数分周器２００の分周係数Ｍを動的に変えることが可能になる。プログラムブロック２６０はそのようなシームレス切り替えをサポートするように実装される。プログラムブロック２６０は、また、パス２４２、２４３、及び２３４−１〜２３４−Ｎ上にプログラム値を生成する。一実施形態において、上述の入力を生成するためのプログラムブロック２６０の動作方法を次に説明する。
６．  プログラムブロック
【００６７】
プログラムブロック２６０（図２）は、パス２５１（Ｍ）上の分周係数Ｍを受け取り、プログラム値をパス２４２、２４３、及び２３４−１〜２３４−Ｎ上に提供する。分周係数Ｍの受け取りに応答して、プログラムブロック２６０はＭをデコードして、Ｐ入力（段２２０に提供するためのＰ［０］、それぞれ段２３０−１〜２３０−Ｎに提供するためのＰ［１］〜Ｐ［Ｎ］）、段イネーブル信号（段２２０に提供するためのＭｏｄｉｎ−ｅｎ［０］、それぞれ段２３０−１〜２３０−Ｎに提供するためのＭＯＤＩＮ−ＥＮ［１］〜ＭＯＤＩＮ−ＥＮ［Ｎ］）、Ｔ／Ｄモード（信号２３４）、及びＥＮ−ＭＯＤ−ＥＸＴＥＮＤを生成する。このように生成された信号は、プログラムブロック２６０によって、後述するような「整合条件（ａｌｉｇｎ  ｃｏｎｄｉｔｉｏｎ）」が満足されたときのみ、周波数分周器２００の対応するエレメントに印加される（又は提供される）。しかしながら、先ず、上述のプログラム入力（又はプログラムビット）を生成する方法を以下に説明する。以下の説明では、論理ゼロ（又は低）は０に対応し、論理１（又は高）は１に対応する。
Ｐ入力の生成：
【００６８】
分周係数Ｍが２に等しい場合、Ｐは０に等しく、Ｔ／Ｄモードは遅延モードに設定される。そのため、プログラムブロック２６０は、Ｐ［１］〜Ｐ［Ｎ］を論理ゼロとして生成し、Ｔ／Ｄモードビット（２４３）も論理０として生成する。
【００６９】
Ｍが２より大きく且つＭが偶数である場合、プログラムブロック２６０はＭ／２に等しい値「Ｐ」を生成する。ここで、Ｐ［０］、Ｐ［１］〜Ｐ［Ｎ］は、「Ｐ」の２進法表示の対応するビットを表す。ここで、Ｐ［０］は「Ｐ」の２進法表示のＬＳＢであり、Ｐ［１］〜Ｐ［Ｎ］は、連続するより上位のビットを表し、Ｐ［Ｎ］は最上位ビット（ＭＳＢ）を表す。Ｍが奇数である場合、プログラムブロック２６０は、（Ｍ−ｌ）／２に等しい値「Ｐ」を生成する。上述したように、Ｐ［０］、Ｐ［１］〜Ｐ［Ｎ］は、このように取得した「Ｐ」の２進値の対応するビットを表す。
Ｍｏｄｉｎ−ｅｎ入力の生成：
【００７０】
Ｍの値が２及び３に等しい場合、Ｍｏｄｉｎ−ｅｎ［０］が論理高（１）に設定され、ｋの全ての値に関して、ＭＯＤＩＮ−ＥＮ［ｋ］が論理低（０）に設定される。
【００７１】
Ｍの値がこれより上の場合、下記表現によって特定されるようにＭｏｄｉｎ−ｅｎ信号が生成される。
Ｍ＝２Ｘ〜２（ｘ＋１）−ｌの場合、ここで、ｘ＞＝２であり、ｙが０〜（ｘ−２）のＥｎ（ｙ）は１に設定され、ｙ＞ｘ−２の全ての値のＥｎ（ｙ）は０に設定される。
上記の表現では、Ｅｎ（０）が段−ｅｎ［０］であり、Ｅｎ（ｌ）〜Ｅｎ（Ｎ−ｌ）はそれぞれＭＯＤＩＮ−ＥＮ［１］〜ＭＯＤＩＮ−ＥＮ［Ｎ］に等しい。
例えば、Ｍ＝４〜７の値（即ち、ｘ＝２に対応する）の場合、段−ｅｎ［０］は１に設定され、ＭＯＤＩＮ−ＥＮ［１］〜ＭＯＤＩＮ−ＥＮ［Ｎ］は０に設定される。Ｍ＝８〜１５の値（即ち、ｘ＝３に対応する）の場合、段−ｅｎ［０］及びＭＯＤＩＮ−ＥＮ［１］は１に設定され、ＭＯＤＩＮ−ＥＮ［２］〜ＭＯＤＩＮ−ＥＮ［Ｎ］は０に設定される。Ｍ＝１６〜３１の値（即ち、ｘ＝４に対応する）の場合、段−ｅｎ［０］、ＭＯＤＩＮ−ＥＮ［１］、及びＭＯＤＩＮ−ＥＮ［２］は１に設定され、ＭＯＤＩＮ−ＥＮ［３］〜ＭＯＤＩＮ−ＥＮ［Ｎ］は０に設定される。
Ｔ／Ｄモード信号／ビット（パス２４３上）の生成：
【００７２】
Ｍが４未満の場合、プログラムブロック２６０はＴ／Ｄモード信号（パス２４３）を論理ゼロ（遅延モード）として生成する。Ｍが４以上の場合、プログラムブロック２６０はＴ／Ｄモード信号（パス２４３）を論理１（トグルモード）として生成する。
ＥＮ−ＭＯＤ−ＥＸＴＥＮＤの生成：
【００７３】
Ｍが４より大きい場合、プログラムブロック２６０はＭ［０］をＥＮ−ＭＯＤ−ＥＸＴＥＮＤとして図５のパス２４２ｃ上に転送する。Ｍが４以下の場合、パス２４２ｃ上の信号ＥＮ−ＭＯＤ−ＥＸＴＥＮＤが論理ゼロに設定される。
【００７４】
プログラム入力がこのように生成される（が、パス２４２、２４３、及び２３４−１〜２３４−Ｎの対応する１つにまだ提供されていない）と、プログラムブロック２６０は、「整合条件」が発生するのを待つ。「整合条件」は、信号２２９Ｍｏｄｏｕｔ［０］（図２で示されるように、プログラムブロック２６０の入力としても提供される信号）の立ち上がりで発生し、そのような信号２９９の立ち上がりが、「直前のＴ／Ｄモードが遅延モードに設定された又は出力クロックが論理ゼロである」という付加的な論理条件が満たされるときに（又は満たされるのと同時に）起こるとき、発生したとみなされる。
【００７５】
「直前のＴ／Ｄモード」とは、Ｍの変化の直前のＭの値（即ち、Ｍの新値の直前）に対応するＴ／Ｄモードを指す。上述した付加的な条件が満たされる（即ち、ＴＲＵＥであると評価される）とき、整合条件が満足され、プログラムブロック２６０は、生成されたプログラム入力を、対応するパス２４２、２４３、及び２３４−１〜２３４−Ｎ上に信号２２９の直ぐ次の立ち上がりで提供する。図９は、例示のシナリオを示すもので、ここでは上述の「整合条件」要件に一致して、制御入力がプログラムブロック２６０によって提供される。
【００７６】
図９では、Ｍの値（パス２５１）は、時点ｔ９０１で変化すると仮定される。また、Ｔ／Ｄモードは、ｔ９０１でのＭの変化の直前のＭの値に対応する遅延モードに設定されたと仮定される。信号９１０は、Ｍの値が変化するときに必ずトグルする信号であり、ｔ９１において論理低から論理高へ遷移して図示され、Ｍの新値（又は、電源オン又は初期化の後最初にＭが受け取られる場合の有効値）がプログラムブロック２６０に受け取られたことを示している。これに応答して、プログラムブロック２６０は、Ｍの値をデコードして、ｔ９１又はその付近で、対応するプログラム入力を生成する。しかしながら、ｔ９１又はその付近では上述の「整合条件」が満たされていないので、プログラムブロック２６０は、ｔ９２で整合条件が満たされるまで、生成されたプログラム入力を提供しない。ｔ９２で、両方の２９９（出力）が論理ゼロであり、Ｔ／Ｄモードの直前の値が遅延モードに設定され（たと仮定され）て、整合条件が満たされる。従ってプログラムブロック２６０は、信号２２９（Ｍｏｄｏｕｔ［０］）の立ち上がりに同期してｔ９２において、プログラム入力の新値をパス２４３、及び２３４−１〜２３４−Ｎのそれぞれのパス上に提供する。整合条件が満たされる時点（例えば、ｔ９２）は整合時点とも称される。
【００７７】
信号９１０は、周波数分周器２００の外部の構成要素によって信号２２９の立ち下がりに整合されて提供されてもよく、或いは信号２２９の立ち下がりに、内部的に（プログラムブロック２６０によって）同期又は整合されて提供されてもよい。図９の信号９１０はこのように同期及び整合された信号を表す。
【００７８】
どの図にも示していないが、周波数分周器２００（図２）は、外部生成された「グローバルリセット」信号を受け取ることもある。グローバルリセット信号は、周波数分周器２００内の全てのフリップフロップをリセット状態に維持することによって、周波数分周器２００の動作をディスエーブルするために用いられうる。
【００７９】
例として、周波数分周器２００内のフリップフロップのリセット状態、及びグローバルリセットから離脱した後直ちに４に等しい分周係数Ｍを印加することに対応する、制御設定レジスタ１０２０のビットを以下に示す。リセット値は、グローバルリセットからの離脱でＭｏｄｏｕｔ［０］（２２９）がトグルすることを確実にし、それによりリセットからの解放後直ちにプログラムブロック２６０がＭ値を記憶できるように設計される。制御設定レジスタの、対応するビットのリセット値は以下に示すとおりである。
ｉ）制御設定レジスタ１０２０内のビット：
ａ）Ｔ／Ｄ＝１（トグルモード）
ｂ）ＥＮ−ＭＯＤ−ＥＸＴＥＮＤ＝０
ｃ）段ｅｎ［０］＝０；全てのｋに関して、ＭＯＤＩＮ−ＥＮ［ｋ］＝０
ｄ）Ｐ［０］＝０；Ｐ［１］＝ｌ；１より大きいすべてのｋに関して、Ｐ［ｋ］＝０
ｉｉ）ＦＦ６（段２１０）の出力が０にリセットされる。
ｉｉｉ）ＦＦ３、ＦＦ４、及びＦＦ５（段２２０）の各々の出力が０にリセットされる。
ｉｖ）より上位段の各々のＦＦ１の出力が１にセットされる。より上位段の各々のＦＦ２の出力は０にリセットされる。
【００８０】
一実施形態において、フリップフロップ及びビット（上述）は、グローバルリセットがアクティブ（例えば、論理１）のときのみ、それぞれのリセット状態（同じく上述）にある。しかしながら、別の実施形態では、段２１０、段２２０のフリップフロップ、及び制御設定レジスタ１０２０の記憶ビット位置が、グローバルリセットがアクティブのときのみリセットされ得、段２３０−１〜２３０−Ｎのフリップフロップは、グローバルリセット信号又は追加のリセット制御信号のいずれかがアクティブのときにリセットされ得る。このような付加的なリセット制御信号は、対応する段が動作中であることを要求されているか否かに基づいて、段２３０−１〜２３０−Ｎの各々のために生成されてもよい。例えば、段３００［ｋ］のための付加的なリセット制御信号が、ＭＯＤＩＮ−ＥＮ［ｋ−１］の逆数と同じであってもよい。段２３０−１〜２３０−Ｎの各々のために、グローバルリセット信号及び前段のＭＯＤＩＮ−ＥＮ［ｋ−１］の逆数（段２３０−１ではＭｏｄｉｎ−ｅｎ［０］）の論理ＯＲ組合せをリセット制御信号として用いてもよい。
【００８１】
図１０は一実施形態におけるプログラムブロック２６０の実装を示す。図１０のプログラムブロック２６０は、デコードロジック１０１０、制御設定レジスタ１０２０、ＯＲゲート１０３０、ＡＮＤゲート１０４０、及びインバータ１０５０及び１０６０を含んで図示されている。
【００８２】
デコードロジック１０１０は、パス２５１（Ｍ）上の分周係数Ｍを受け取り、段２１０、２２０、及び２３０−１〜２３０−Ｎに提供される必要がある対応するプログラム入力をパス１０１２上に生成する。パス１０１２上の出力は、段２１０、２２０、及び２３０−１〜２３０−Ｎに直接に（又は直ちに）提供されることはない。その代わりに、出力１０１２が入力として制御設定レジスタ１０２０に提供される。
【００８３】
制御設定レジスタ１０２０は、（上述の）整合条件が満たされた時点で、パス１０１２上の出力を記憶する。制御設定レジスタ内に出力１０１２を記憶することにより、段２１０、２２０、及び２３０−１〜２３０−Ｎの各々の段がこれらの出力を入力（Ｐ入力、段イネーブル入力、Ｔ／Ｄモード信号、及びＥＮ−ＭＯＤ−ＥＸＴＥＮＤ）として直ぐに使用できるようにする。Ｔ／Ｄモードを特定するＴ／Ｄビットが記憶位置１０２１に記憶されて図示されている。
【００８４】
そのため、Ｍの値が動的に変更されるときは、制御設定レジスタ１０２０はそれぞれの段にプログラム入力の「カレント」値を連続的に提供する。デコードロジック１０１０は、「新しい」Ｍの値をデコードして、制御設定レジスタ１０２０の「次の」（新しい）設定を形成し、これらの設定は、整合条件が満たされる時点で、制御設定レジスタ１０２０（のみ）によって記憶される（且つ、プログラム入力として提供される）。
【００８５】
インバータ１０５０は、信号２９９（出力）を受け取り、信号２９９の論理逆数を入力としてＯＲゲート１０３０に提供する。インバータ１０６０は、位置１０２１に記憶されたＴ／Ｄモードビットの「前の」値を受け取り、Ｔ／Ｄモードビットの論理逆数を、別の入力としてＯＲゲート１０３０に提供する。ＯＲゲート１０３０は、インバータ１０５０及び１０６０の出力の論理ＯＲ組合せの結果を、入力１０３２としてＡＮＤゲート１０４０に提供する。Ｍｏｄｏｕｔ［０］（２９９）が、別の入力としてＡＮＤゲート１０４０に提供される。ＡＮＤゲート１０４０は、受け取った入力の論理ＡＮＤ組合せの結果を信号１０４２（整合信号）として制御設定レジスタ１０２０のクロック端子に提供する。信号１０４２は制御設定レジスタ１０２０へのクロック入力として動作する。ＡＮＤゲート１０４０は、信号１０３２が論理高として検知されたとき、パス１０４２上に立ち上がりを生成するよう動作する。信号１０４２のそのような立ち上がりで、制御設定レジスタ１０２０のための「新しい」設定（Ｍの新値に対応する）が制御設定レジスタ１０２０にロードされる。信号２２９（Ｍｏｄｏｕｔ［０］）の立ち上がりで信号１０３２が高であることによって、プログラムブロック２６０の内部及び外部の信号がＭの変化時にグリッチを示さないことが確実にされている。
【００８６】
他の実施形態において、Ｍの変化が予期されるときのみ、Ｍｏｄｏｕｔ［０］（２２９）がプログラムブロック２６０に提供されるようにしてもよい。Ｍの変化（及び対応する制御設定レジスタ１０２０の新設定）の前及び後に、信号２２９がプログラムブロック２６０からゲートオフされてもよい。即ち、プログラムブロック２６０への信号２２９の提供がディスエーブルされてもよい。このようなゲート／ディスエーブルによって、Ｍが変化しないときに周波数分周器２００の電力消費を低減することができる。組合せ論理を用いて、Ｍのビットにおける変化を検知し、プログラムブロック２６０に信号２２９を提供することを可能にする信号を生成するようにすることもできる。制御設定レジスタ１０２０の入力（１０１２）と出力（２４２、２４３、２３４−１−２３４−Ｎ）との比較を用いて、プログラムブロック２６０への信号２２９の提供がいつディスエーブルされるのかを決めてもよい。
【００８７】
上述のように実装された周波数分周器２００は、いくつかの利点を提供しうる。これらの利点には、出力信号２９９における低ジッタ、高速演算速度及び低電力消費、分周係数Ｍのグリッチフリーな動的変化、Ｍが偶数値のとき出力２９９の５０％のデューティサイクル及びＭが奇数値のときほぼ５０％のデューティサイクル、及び、広範囲の分周係数を適用可能であることなどが含まれる。また、分周器１１０、１６０、及び１７０の１つ又は複数の代わりに、周波数分周器２００を用いて実装したＰＬＬ１００（図１）も同様の利点を有しうる。
【００８８】
図１、図２、図３、図５、及び図７の図において、端子／ノードが、他の様々な端子と直接接続されて示されているが、パス上に追加の構成要素（特定の環境に適したもの）が存在してもよく、従って、それらが接続されている端子に電気的に結合されているとみなされてもよいことを理解されたい。
【００８９】
当業者にとっては本発明の請求の範囲内で他の実施形態及び変形が可能であることが理解されるであろう。
【図１】
0005893026.tif 000002
【図２】
0005893026.tif 000003
【図３】
0005893026.tif 000004
【図４Ａ】
0005893026.tif 000005
【図４Ｂ】
0005893026.tif 000006
【図４Ｃ】
0005893026.tif 000007
【図５】
0005893026.tif 000008
【図６Ａ】
0005893026.tif 000009
【図６Ｂ】
0005893026.tif 000010
【図７】
0005893026.tif 000011
【図８】
0005893026.tif 000012
【図９】
0005893026.tif 000013
【図１０】
0005893026.tif 000014