"周波数分周器であって、第1の入力信号、第1のプログラムビット、及び第1のモード信号を受け取り、第1の分周された信号及び第1の出力モード信号を生成するように結合される最下位段であって、前記第1のモード信号及び前記第1のプログラムビットが、前記最下位段によって用いられるべき分周モードを特定する、最下位段、カスケード式に結合される複数のより上位の分周器段であって、前記複数のより上位の分周器段の各々が、直前の段の出力の周波数を、対応するプログラムビット及び対応する入力モード信号により特定される値によって分周する複数のより上位の分周器段であって、前記複数のより上位の分周器段が第1の分周器段を含み、前記第1の分周器段が第1の分周された信号を受け取り、前記第1のモード信号を生成するように結合される、複数のより上位の分周器段、及び前記第1の出力モード信号及びモードビットを受け取り、第1の出力信号を生成するための出力段であって、前記出力段が、前記モードビットが1の論理レベルにある場合、前記第1の出力モード信号の周波数を2で分周することによって、前記第1の出力信号を生成し、そうでない場合、前記出力段が前記出力モード信号を前記第1の出力信号として転送する出力段、を含む周波数分周器。請求項1に記載の周波数分周器であって、分周係数Mを受け取り、前記第1のプログラムビット、前記対応するプログラムビットの各々、及び前記モードビットの値を計算するためのプログラムブロックを更に含み、前記第1の出力信号の周波数が、前記第1の入力信号の周波数の1/Mであり、前記プログラムブロックが値Pを計算し、ここで前記分周係数Mが2に等しい場合Pはゼロに等しく、Mが2より大きい場合、Pは、Mが偶数の場合M/2に等しいが、Mが奇数の場合M-l/2に等しく、前記最下位段が、付加的にに第3のビットを受け取り、Mが4より大きい場合、前記第3のビットはMの2進表示の最下位ビットと同じ値を有し、そうでない場合、前記第3のビットはゼロであり、前記最下位段によって用いられるべき前記分周モードが、2分周モード、3分周モード、及び4分周モードの1つであり、そして、前記最下位段が、Mの前記最下位ビット、前記第1のモード信号の論理レベル、及び前記第1のプログラムビットの値に基づいて、前記入力信号の周波数を、2、3、又は4に等しい係数で分周するように動作する、周波数分周器。請求項2に記載の周波数分周器であって、前記複数のより上位の分周器段の各段が、前記対応する直前の段の前記出力の前記周波数を、前記対応する入力モード信号の前記論理レベル、及び前記対応するプログラムビットの前記値に基づいて、2又は3に等しい係数で分周するように動作する、周波数分周器。請求項3に記載の周波数分周器であって、前記プログラムブロックが、前記第1のプログラムビット、前記対応するプログラムビットの各々、及び前記モードビットが整合時点よりも前に計算されていたとしても、前記整合時点においてのみ、前記第1のプログラムビットを前記最下位段に、前記対応するプログラムビットの各々を前記複数の段の前記対応する段に、前記モードビットを前記出力段に転送し、そして、前記整合時点が、前記第1の出力信号が論理ゼロのときに前記出力モード信号の立ち上がりが起こる時点である、又は前記出力モード信号の立ち上がりが起こり、且つ、前記モードビットの前記直前の値が、前記出力段が遅延モードで動作することを特定した場合の時点である、周波数分周器。請求項4に記載の周波数分周器であって、第1のインバータを含む複数のインバータを更に含み、前記第1の分周された信号の論理レベルが、入力として前記第1の分周器段に提供される前に、前記第1のインバータによって反転され、そして、前記複数の前記より上位の周波数分周器段の対応する段の出力の論理レベルが、入力としてその後の段に提供される前に、対応するインバータによって反転される、周波数分周器。請求項5に記載の周波数分周器であって、前記複数のより上位の分周器段の各段が、第1のフリップフロップであって、前記第1のフリップフロップのクロック端子が、前記第1の入力信号をクロック信号として受け取るように結合される、第1のフリップフロップ、対応する入力モード信号と段イネーブル信号の逆数とを入力として受け取り、第1のOR出力を生成するための第1のORゲート、前記第1のOR出力と前記第1のフリップフロップの出力とを入力として受け取り、第1のAND出力を対応する出力モード信号として生成する第1のANDゲート、第2のフリップフロップであって、前記第2のフリップフロップのクロック端子が、前記第1の入力信号をクロック信号として受け取るように結合され、前記第2のフリップフロップの入力端子が、前記第1のAND出力を受け取るように結合される、第2のフリップフロップ、前記第2のフリップフロップの出力と、対応するプログラムビットとを入力として受け取り、第2のAND出力を生成する、第2のANDゲート、及び、前記第2のAND出力と前記第1のフリップフロップの出力とを入力として受け取り、第1のNOR出力を出力するための第1のNORゲートであって、前記第1のNOR出力が前記第1のフリップフロップの入力端子に結合される、第1のNORゲート、を含み、前記第1のフリップフロップの前記出力が、対応する分周された信号を表す、周波数分周器。請求項5に記載の周波数分周器であって、前記最下位段が、第3のフリップフロップであって、前記第3のフリップフロップのクロック端子が、前記第1の入力信号をクロック信号として受け取るように結合される、第3のフリップフロップ、前記第1のモード信号と第1の段イネーブル信号の逆数とを入力として受け取り、第2のOR出力を生成するための第2のORゲート、前記第2のOR出力と前記第3のフリップフロップの出力とを入力として受け取り、第3のAND出力を前記第1の出力モード信号として生成するための第3のANDゲート、前記第3のAND出力と第3のOR入力とを入力として受け取り、第3のOR出力を生成するための第3のORゲート、第4のフリップフロップであって、前記第2のフリップフロップのクロック端子が、前記第1の入力信号をクロック信号として受け取るように結合され、前記第4のフリップフロップの入力端子が前記第3のOR出力を受け取るように結合される、第4のフリップフロップ、前記第4のフリップフロップの出力と前記第1のプログラムビットとを入力として受け取り、第4のAND出力を生成するための第4のANDゲート、前記第1の出力モード信号、前記第3のビット、及び前記第1の出力信号を入力として受け取り、第5のAND出力を生成するための第5のANDゲート、第5のフリップフロップであって、前記第5のフリップフロップのクロック端子が、前記第1の入力信号をクロック信号として受け取るように結合され、前記第5のフリップフロップの入力端子が、前記第5のAND出力を受け取るように結合され、前記第5のフリップフロップの出力が前記第3のOR入力である、第5のフリップフロップ、前記第4のフリップフロップの前記出力と前記第5のフリップフロップの前記出力とを受け取り、第4のOR出力を生成するための第4のORゲート、及び、前記第4のAND出力と前記第4のOR出力とを受け取り、第2のNOR出力を生成するための第2のNORゲートであって、前記第2のNOR出力が前記第3のフリップフロップの入力端子に結合される第2のNORゲート、を含み、前記第3のフリップフロップの前記出力が前記第1の分周された信号である、周波数分周器。請求項5に記載の周波数分周器であって、前記出力段が、前記第1の出力モード信号を第1の選択信号として受け取り、第1のマルチプレクサ出力を提供するための第1のマルチプレクサ、前記第1のマルチプレクサ出力と前記第1の出力モード信号とを入力として受け取り、前記モードビットの前記値に基づき、前記第1のマルチプレクサ出力と前記第1の出力モード信号との一方を、第2のマルチプレクサ出力として提供するための第2のマルチプレクサ、及び、第6のフリップフロップであって、前記第6のフリップフロップのクロック端子が、前記第1の入力信号をクロック信号として受け取るように結合され、前記第6のフリップフロップの入力端子が前記第2のマルチプレクサ出力を受け取るように結合される、第6のフリップフロップ、を含み、前記第6のフリップフロップの出力と前記第6のフリップフロップの前記出力の逆数とが入力として前記第1のマルチプレクサに提供され、前記第1のマルチプレクサが、前記第1の選択信号の前記値に基づいて、前記第6のフリップフロップの前記出力と前記第6のフリップフロップの前記出力の前記逆数との一方を第1のマルチプレクサ出力として提供し、そして、前記第6のフリップフロップの前記出力が前記第1の出力信号である、周波数分周器。請求項5に記載の周波数分周器であって、前記プログラムブロックが、前記分周係数Mを受け取り、第1のプログラムビット、前記対応するプログラムビットの各々、前記モードビット、及び前記第3のビットの前記値を、デコードされた出力として生成するためのデコードロジックブロック、前記デコードされた出力を整合信号の立ち上がりで記憶するための制御設定レジスタであって、前記記憶されたデコードされた出力を、第1のプログラムビット、前記対応するプログラムビットの各々、前記モードビット、及び前記第3のビットの前記対応するものとして提供するための制御設定レジスタ、前記第1の出力信号の論理逆数と前記モードビットの論理逆数とを受け取り、第5のOR出力を生成するための第5のORゲート、及び、前記第5のOR出力と前記第1の出力モード信号とを入力として受け取り、前記整合信号を出力として生成するための第6のANDゲート、を含む、周波数分周器。位相同期ループであって、入力クロック及び局所クロックを入力として受け取るように結合され、前記入力クロックの位相と前記局所クロックの位相との間の位相差に比例する比較出力を生成するための位相周波数弁別器、前記比較出力を受け取り、対応するローパスフィルタリングされた信号を生成するためのループフィルタ、前記ローパスフィルタリングされた信号を受け取り、中間クロックを生成するように結合される電圧制御発振器であって、前記中間クロックの周波数が前記ローパスフィルタリングされた信号の強度に比例する、電圧制御発振器、及び、前記中間クロックを受け取り、前記中間クロックの周波数を分周係数Mで分周して前記局所クロックを生成するための第1の周波数分周器、を含み、前記第1の周波数分周器が、第1の入力信号の周波数を、前記係数の、2、3、又は4の1つで分周するように設計される最下位段、第1のより上位段を含む複数のより上位段であって、前記複数のより上位段の各々が、対応する入力信号の周波数を前記係数の2又は3の1つで分周するように設計される、複数のより上位段、及び、最終入力信号を2で分周するか、又は分周を行わないように設計される出力段、を含み、前記第1の入力信号が前記中間クロックであり、前記最下位段が、前記中間クロックを受け取り、第1の分周されたクロック及び第1の出力モード信号を生成するように結合され、前記第1の分周されたクロックの周波数が前記中間クロックの前記周波数より低く、前記第1のより上位段が、前記第1の分周されたクロックを受け取るように結合され、第2の分周されたクロックを生成し、前記第2の分周されたクロックの周波数が、前記第1の分周されたクロックの前記周波数より低く、そして、前記最終入力信号が前記第1の出力モード信号であり、前記出力段が、前記第1の出力モード信号を受け取るように結合され、前記局所クロックを生成する、位相同期ループ。請求項10に記載の位相同期ループであって、前記複数のより上位段の各々が、直前の段によって生成された対応するクロックの周波数を分周して、直前の段によって生成された前記対応するクロックの周波数よりも低い周波数を持つクロックを生成し、そして、前記第1の出力モード信号の周波数が、前記複数のより上位段に含まれる最上位段によって生成された対応するクロックの周波数に等しい、位相同期ループ。請求項11に記載の位相同期ループであって、前記第1の周波数分周器が、前記分周係数Mを受け取るためのプログラムブロックを更に含み、前記プログラムブロックが値Pを算出し、ここで、P[0]~P[N]がPの前記2進表示のビットを表し、NがPの最上位ビットであり、0がPの前記最下位ビットであり、前記分周係数Mが2に等しい場合、Pはゼロに等しく、Mが2より大きい場合、Mが偶数の場合PはM/2に等しく、Mが奇数の場合PはM-l/2に等しく、そして、前記プログラムブロックが、プログラムビットとしてP[0]を前記最下位段に提供し、対応するプログラムビットとして、P[1]~P[N]を前記より上位段のそれそれに提供する、位相同期ループ。請求項12に記載の位相同期ループであって、前記最下位段と前記複数のより上位段の各々が、対応する入力モード信号を受け取り、前記複数のより上位段の各々が、対応する出力モード信号を生成し、前記第1のより上位段の出力モード信号が入力モード信号として前記最下位段に提供され、そして、前記複数のより上位段内の対応する段によって生成される出力モード信号が、前記入力モード信号として直前の段に提供される、位相同期ループ。請求項13に記載の位相同期ループであって、前記最下位段と前記複数のより上位段の各々が、対応するイネーブル信号を受け取り、そして、前記最下位段及び前記複数のより上位段に含まれる段kへのイネーブル信号が論理ゼロである場合、kより上位の段がリセット状態に維持される、位相同期ループ。請求項14に記載の位相同期ループであって、前記最下位段が前記中間クロックの前記周波数を、前記最下位段及びP[0]に対する前記対応する入力モード信号の値に基づいて、係数2、3、及び4の1つで分周する、位相同期ループ。請求項15に記載の位相同期ループであって、前記複数のより上位段の各々が、前記直前の段の前記出力の周波数を、前記対応する入力モード信号の前記値、及びビットP[1]~P[N]の前記対応するものに基づいて、係数2及び3の1つで分周する、位相同期ループ。請求項16に記載の位相同期ループであって、Mが4以上である場合、前記出力段が前記第1の出力モード信号の前記周波数を2で分周し、そうでない場合、前記出力段が前記第1の出力モード信号を分周しないで転送し、そして、前記プログラムブロックがモードビットを前記出力段に提供し、前記モードビットが、前記出力段が前記出力モード信号の前記周波数を2で分周するかどうかを特定する、位相同期ループ。請求項17に記載の位相同期ループであって、P[0]~P[N]及び前記モードビットが整合時点より前に算出されていたとしても、前記整合時点においてのみ、前記プログラムブロックが、P[0]を前記最下位段に、P[1]~P[N]の前記対応するものを前記より上位段の前記それぞれのものに、前記モードビットを前記出力段に転送し、そして、前記整合時点が、前記局所クロックが論理ゼロであるときに、前記出力モード信号の立ち上がりが起こる時点である、又は、前記出力モード信号の立ち上がりが起こり、且つ、前記モードビットの前記直前の値が、前記出力段が2で分周されないことを特定した場合の時点である、位相同期ループ。請求項17に記載の位相同期ループであって、第2の周波数分周器、第3の周波数分周器、及び制御ブロックを更に含み、前記第2の周波数分周器が、外部クロックを受け取り、前記外部クロックの周波数を分周係数Nで分周して前記入力クロックを生成し、前記第3の周波数分周器が、前記中間クロックを受け取り、前記中間クロックの周波数を分周係数Qで分周して出力クロックを生成し、前記制御ブロックが、外部構成要素から分周係数A、B、及びCを受け取り、前記分周係数M、N、及びQを生成し、分周係数M、N、及びQが分周係数B、A、及びCにそれぞれ対応し、前記制御ブロックが、分周係数Mを分周係数Bの値辺りで変動させ、分周係数Nの値を分周係数Aの値辺りで変動させ、そして、前記位相同期ループの電源ON時に、前記制御ブロックが分周係数Qの値を分周係数Cより大きい値に設定し、次いで前記制御ブロックが、対応するステップにおいて、分周係数Qの前記値を分周係数Cに等しい値まで下げる、位相同期ループ。周波数分周器であって、カスケード式に結合される複数の段であって、前記複数の段が、最下位段及び最上位より上位の段を含む、複数の段と、出力段と、を含み、前記最下位段の入力端子が入力クロックを受け取るように結合され、前記最下位段が前記入力クロックの周波数を分周して、第1の出力端子上に第1の出力クロックを生成し、前記より上位段の入力端子が前記第1の出力端子に結合され、前記より上位段が第2の出力クロックを生成し、前記第2の出力クロックの周波数が前記入力クロックの周波数の1/Pであり、前記より上位段が最上位出力モード信号を第2の出力端子上に生成し、前記最下位段の別の入力端子が前記第2の出力端子に結合され、前記最下位段が第1の出力モード信号を生成し、前記第1の出力モード信号の周波数が前記第2の出力クロックの周波数に等しく、そして、前記出力段が、前記第1の出力モード信号を受け取り、出力クロックを生成するように結合され、前記出力クロックの前記周波数が、前記第1の出力モード信号の周波数の半分であるか、又は、前記出力モード信号の前記周波数に等しいかのいずれかである、周波数分周器。1.例示の環境図1は、幾つかの実施形態が実装されうる例示の環境を示すブロック図である。図1の位相同期ループPLL100は、周波数分周器110、160、及び170、位相周波数弁別器PFD120、ループフィルタ140、電圧制御発振器150、及び制御ブロック180を含んで図示されている。図1の構成要素及びブロックは説明のために示されているにすぎない。別の位相同期ループ実装では、これより多くの又はこれより少ない構成要素/ブロックが含まれうる。また、本開示の実施形態を他の環境内で、又は他のシステム又は構成要素の一部として用いることもできる。位相同期ループPLL100はパス101上の周波数F1の入力信号を受け取り、パス199上に周波数F2の出力信号を生成する。比F2/F1は、PLL100への入力として例えば、パス181を介して特定され得る。制御ブロック180は、それぞれ信号199及び101の周波数F2及びFlの比F2/F1を特定するパス181上の値を受け取る。パス181上の値は、図示されていないが、例えば、プロセッサによって生成されうる。それに応じて、制御ブロック180が分周係数N、M、及びQの値を算出し、その分周係数をそれぞれのパス111、161、及び171に提供する。或いは、制御ブロック180がパス181を介して個別の値A、B、及びCを受け取り、それぞれの値A、B、及びCに基づいて、係数N,M、及びQの値を算出してもよい。制御ブロック180はPLL100の動作中に係数N,M、及びQの1つ又は複数を動的に変化させうる。分周器110は、入力信号101を受け取り、信号101の周波数を係数Nで分周し、分周された信号をパス112上に提供する。PFD120は、信号112と分周器160の出力162との間の位相差を比較し、パス124上に、その位相差に比例する誤差信号を生成する。ループフィルタ140は、誤差信号124にローパスフィルタリングを提供し、フィルタリングされた信号をパス145上に生成する。電圧制御発振器VCO150は、周期信号例えば、正弦波又は矩形波をパス157上に生成し、周期信号の周波数は、信号145の強度によって決定される。分周器170は、信号157の周波数を係数Qで分周し、分周された信号をPLL100の出力としてパス199上に提供する。分周器160は、信号157の周波数を係数Mで分周し、分周された信号をパス162上でPFD120に提供する。分周器160は、信号157の周波数を分周するために用いられる分周係数Mの値を特定するパス161上のプログラミング入力を受け取り、信号162を生成する。PLL100は、全デジタルPLLとして実装され得、その構成要素110、120、140、150、160、及び170の各々はデジタル構成要素として実装され得る。そのような実装において、VCO150はデジタル制御発振器DCOとして実装されうる。他の実装では、図1の構成要素の1つ又は複数がアナログ又は混合信号の構成要素/ブロックとして実装されうる。それぞれ分周器110、160、及び170の分周係数N、M、及びQは、上述のように、対応する入力を介してプログラム可能でありうる。一実施形態では、PLL100は、出力信号199の周波数を広範囲で、即ち、非常に低い周波数から非常に高い周波数例えば、2ギガヘルツ程度まで、提供するように実装される。分周器110、160、及び170の1つ又は複数は従ってそのような高周波数に適応するように実装される必要がある。また、分周器は、グリッチフリー出力を提供するため、低ジッタ、1つの分周比から別の分周比へのシームレスな遷移動的変化等の他の要件もサポートする必要がある。2.周波数分周器図2は一実施形態における周波数分周器のブロック図である。周波数分周器200は、T/D段210、周波数分周器段段220及び230-1~230-N、インバータ225-1~225-N、及びプログラムブロック260を含んで図示されている。図1の周波数分周器110、160、及び170の任意のものが周波数分周器200として実装されうる。分周器160が周波数分周器200として実装される場合、パス157及び162上の信号は、それぞれ図2の信号201入力及び299出力に対応する。また信号201入力及び299出力は、本明細書中ではそれぞれ、第1の入力信号及び第1の出力信号と称される。201入力の周波数を分周して299出力を生成するために周波数分周器200が必要とする分周係数Mは、図1のパス161に対応する、パス251M上で受け取られる。一実施形態において、Mは2以上の任意の整数であってよい。段220及び230-1~230-Nは、201入力の周波数を係数Pで分周するよう設計される。Pは、Mが偶数である場合M/2に等しく、Mが奇数である場合M-l/2に等しい。M[0]は、Mの2進表示の最下位ビットLSBを指し、M[1]、M[2]等は、Mのより高次のビットを指す。同様に、P[0]は、Pの2進表示のLSBを指し、P[1]、P[2]等は、Pのより高次のビットを指す。段210は、段220及び230-1~230-Nによって提供された出力の最終の2分周動作を実行するか又は分周を実行せず、299出力を生成する。段220最下位段は、パス201上で受け取る入力信号の周波数を2、3、及び4の1つである分周係数で分周即ち、2分周、3分周、及び4分周し、分周された出力第1の分周された信号をパス221上に提供する。2分周、3分周、及び4分周動作は、対応する分周モードとみなされうる。分周係数の任意の1つが分周器200の動作の全期間に適用されてもよく、或いは、図5に関してより詳細に説明されるように、係数の1つが幾つかの時間インターバルで用いられ、他の係数が幾つかの他のインターバルで用いられてもよい。出力221の論理レベルが、インバータ225-1によって反転され、入力として次のより高次の段230-1に提供される。段220が入力信号201を分周して信号221を生成するために用いる特定の係数は、プログラムビット第1のプログラムビット及びパス242を介して提供される信号EN-MOD-EXTEND、信号299出力の値、及びパス239-1上で受け取るモード信号第1のモード信号の値に依存する。段220はモード信号出力モード信号/Modout[0]をパス229上に生成する。段220はさらに、出力299を入力として受け取る。このような結合段210への入力の1つとして提供される段220の出力、及びその逆によって、フリップフロップFF3、FF4、及びFF5の又は、段220外部のフリップフロップとフリップフロップFF3、FF4、及びFF5の任意のものとの任意のペア間の論理エレメントの数の最小化を可能にし、それにより、周波数分周器200の高速動作及び省電力消費及び実装面積削減を図ることができる。出力221の論理レベルは、インバータ225-1によって反転され、次のより高次の段230-1へ入力として提供される。インバータ225-2~225-N225-2及び225-Nのみが図2に示されているが同様に、他の段230-1~230-N-1230-N-1は図2に示されていないの間に用いられる。インバータ225-1~225-Nを用いることで、入力モード信号239-1~239-Nが段220のFF3図5に示すの立ち下がりでトグルすることを確実にすることができる。その結果、Modout[0]を生成するANDゲート540がModout[0]にグリッチを発生させることが防止される。段230-1は、入力として受け取る信号226の周波数を係数2及び3の一方である分周係数で分周し、分周された出力をパス231上に提供する。入力信号226の周波数を分周する特定の係数2又は3は、パス234-1上に提供される入力の値、並びにパス232上の別の入力として受け取られるモード信号の値に依存する。段230-1はモード信号MODOUT[1]をパス239-1上に生成する。段230-2段230-2は図2に示されていない~230-Nの各々も同様に、対応する入力を受け取り、対応する入力の周波数を2又は3の係数で分周し、対応する分周された出力信号を生成する。段230-2~230-Nの各々は、モード信号それぞれMODIN[1]~MODIN[N]を直ぐ次のより高次の段から受け取る。段230-2~230-Nの各々は、入力として直前のより低次の段に提供する対応するモード信号それぞれMODOUT[1]~MODOUT[N]を生成する。段230-Nは、インバータ225-Nを介する入力信号236、及びパス238上の対応するモード信号MODIN[N]を受け取るように図示されている。段230-1~230-Nは、本明細書中では、より高次段とも称され、順次/カスケード方式で接続される。段230-1~230-Nは、本明細書中では2/3分周段とも称される。2/3分周段の総数Nは、周波数分周器200が提供するように要求又は設計される最大値分周値分周係数Mとも称されるに基づいて決定される。T/D段210同様に本明細書中では出力段とも称されるは、Modout[0]229第1の出力モード信号を入力として受け取る。T/D段210は、信号229の周波数を係数2で分周するように、或いは、単にクロック入力として受け取る信号201入力の1サイクル分信号229を遅延させるように動作し、出力信号第1の出力信号をパス299出力上に生成する。信号201入力は、周波数分周器200に提供され、周波数分周器200の出力信号299出力を生成するために所望の数で分周される、入力信号である。299出力を生成するために、201入力が分周されるべき数又は値は、入力243、242、及び234-1~234-Nを介して特定又は制御される。プログラムブロック260は、パス251M上の分周値M及び出力信号299出力を受け取る。分周値は、信号299出力を生成するために周波数分周器200が信号201入力に適用する必要がある分周係数Mを表す。Mの受け取りに応答して、プログラムブロック260は対応するプログラム値プログラムビット及び選択信号を生成する。プログラムブロック260は、それぞれのプログラムビットをブロック220及び230-1~230-Nのそれぞれのブロックに、それぞれパス242及び234-1~234-Nを介して提供し、選択ビットをパス243を介してブロック210に提供する。プログラムブロック260は、それぞれのパス242、243、及び234-1~234-N上の値を、後述するように、分周係数間のシームレス切り替えを可能にするような方式で提供する又は転送する。プログラム値は、ブロック210、220、及び230-1及び、従って周波数分周器200が入力信号210入力の周波数の1/Mに等しい周波数を持つ出力信号299出力を生成できるように生成される。周波数分周器200に実装されるべき段の数は、周波数分周器200が適応するように設計された分周係数Mの最大数に依存する。最大分周係数M-maxのために、1つのT/D段210、1つの2/3/4分周段220、及びX個の2/3分周段を実装する必要がある。Xの値は、次に示すように決定される。M-max=7の場合即ち、Mの値が1~7の場合、X=0;M-max=15の場合、X=l;M-max=31の場合、X=2;及びM-max=63の場合、X=3。一般に、M=l、2、及び3の場合、X=0である。M-maxがこれより高い値である場合、Xの値は下記関係で決定される。2Λq-1<=M-max<2Λq、X=q-3ここで、qは任意の正の整数であり、Λは累乗演算を表す。分周係数Mの値のカレント値から新値への変化に応答して、プログラムブロック260は対応する新プログラム値をパス242、243、及び234-1~234-N上に生成するよう動作する。一実施形態において、プログラムブロック260は、周波数分周器200の内部信号の1つ又は複数に及び、従って信号299出力上にグリッチ及び他の望ましくない影響が発生するのを防止するような方式で新プログラム値が適用されるパス242、243、及び234-1~234-N上に転送されることを確実にするように実装される。信号299におけるグリッチとは、信号299の意図しない及び望ましくないロジックエクスカーションを指す。そうでないと、周波数分周器200が1つのカレントの分周係数の提供から新しい分周係数に切り替えるときに遷移周期の間にこのようなグリッチが起こりうる。後に詳しく説明するように、プログラムブロック260は、グリッチを起こすことなく、1つの分周係数から別の分周係数への切り替えを確実に行うように実装される。上述のように、図1の分周器110、160、及び170の各々が図2の周波数分周器200として実装され得、分周器110、160、及び170はそれぞれ分周係数N、M、及びQを受け取り、これらは、対応する分周係数A、B、及びCに基づいて制御ブロック180によって生成される。図1及び図2を組み合わせて参照すると、拡散スペクトル技術をサポートするPLL100の一実施形態では、信号229Modout[0]のエッジで、Mの値が任意の整数値によって変更される。Mの変化は値B辺りで変動する即ち、値Bより大きいことも、小さいこともある。同様に、係数N及びQも信号229のエッジで変更されうる。Nの変化は値A辺りで変動する。この実施形態では、Qの値は、PLL100の電源ON時に、緩やかに例えば、段階的にCより高い値から値Cへ下がりうる。分周係数QのCより高い値から値Cへのこのような緩やかな減少によって、299出力を入力クロック又は入力信号として用いるデバイス又は構成要素により消費される電流がゼロから最終値まで急激に上昇することなく、緩やかに上昇することを確実にし、そのためそのデバイスや構成要素に電力供給するために用いられる電源に対する要件が緩和される。係数N,M、及びQは、それぞれ、2以上の任意の正の整数でありうる。次に図1のブロックを詳しく説明する。3.2/3分周段図3は、一実施形態における2/3分周段の実装詳細を示すブロック図である。2/3分周段300は、NORゲート310、フリップフロップ320FF1、ANDゲート330及び360、ORゲート340、NOTゲート345、及びフリップフロップ350FF2を含んで図示されている。図2の段230-1~230-Nの各々は段300として実装され、従って、段300[k]はこのような段の任意段を総称として指し、段300[1]~300[N]は、それぞれ、段230-1第1の分周器段~230-Nを指す。これに対応して、段300[k]の入力及び出力も指数kを含んで示され、kは1~Nの範囲である。段300[k]は、入力信号CLKIN[k]301の周波数を、プログラムビットP[k]361及び入力モード信号MODIN[k]341に基づいて、22分周又は33分周の係数で分周して、対応する分周された出力信号CLKOUT[k]232を生成する。信号CLKOUT[k]は、入力信号CLKIN[k]の1周期の間、論理高にあり、2分周又は3分周のどちらが段300[k]によって実行されるかに依存して、CLKIN[k]の1又は2周期の間、論理低にある。図2の段230-1は、段230-1~230-Nによって形成される多数の2/3分周段の組内の第1の分周器段とみなされうる。段300[k]は信号MODOUT[k]335を生成する。MODOUT[k]は、分周器200においてアクティブであるようイネーブルされた最右段最上位段とも称されるの出力信号CLKOUTの各サイクルで、入力クロックCLKIN[k]の1周期の間、論理高であるよう生成される。明確にするために、段230-N図2がアクティブな即ち、入力信号201の周波数を分周するように動作可能にされた最右段であると仮定し、段230-1図2を段300[1]と称するとすると、出力信号CLKOUT[N]、即ち、信号237、の各サイクルの入力信号CLKIN[1]即ち、信号226の1周期の間、MODOUT[1]が論理高であるよう生成される。分周器200内でアクティブであるようイネーブルされた最右段の出力信号CLKOUTの周期の残りの間は、MODOUT[k]は論理低であるよう生成される。段300[k]の信号MODOUT[k]は、前の段300[k-1]のMODIN[k-1]として接続され、段300[k-1]に、段300[k-1]が3分周動作を実行するべき時間インターバルを特定し、その際P[k-1]もそのような3分周の分周を許可することを条件とする。同様に、段300[k]のMODIN[k]が、次に高次の段段300[k1]のMODOUT[k1]として接続され、段300[k]に、段300[k]が3分周動作を実行すべき時間インターバルを特定し、その際P[k]もそのような3分周の分周を許可することを条件とする。段300[k]の信号P[k]は、プログラムブロック260図3から受け取られ、分周係数Mに依存する値を有する。P[k]の値が論理低又は論理0であると、段300[k]が常に2分周動作を実行すべきであることを特定する。P[k]の値が論理高又は論理1であると、段300[k]は、MODIN[k]が論理高である期間/インターバルにおいて3分周動作を実行すべきであり、MODIN[k]が論理低である期間/インターバルにおいて2分周動作を実行すべきであることを特定する。Modout[0]図2の229の周波数は、アクティブであるようにイネーブルされた最上位段のCLKOUT信号の周波数に等しい。例えば、Mの値が、段220、230-1~230-Nのすべてが分周に関してアクティブ/動作状態であるようにイネーブルされると仮定すると、Modout[0]の周波数は、信号237アクティブであるようにイネーブルされた最上位段230-NのCLKOUTの周波数に等しい。段300[k]の信号CLKIN[k]は段300[k-1]のCLKOUT[k-1]の論理逆数として受け取られる。段300[k]のCLKOUT[k]の論理逆数は、段300[k1]のCLKIN[k1]として提供される。上述のように接続された一組の段300[k]複数の分周器段は、カスケード接続されていると称される。段220の段230-1~230-Nとの組み合わせも、カスケード接続されているとみなされうる。MODIN-EN[k]イネーブル信号の値が論理ゼロであると、その段段300[k]のMODIN[k]の効果をディスエーブルし、あたかもMODIN[k]が論理1であるかのように、そのP入力P[k]の値のみに依存して、段300[k]に2又は3分周させる。そのため、MODIN-EN[k]が論理ゼロであるとき、段300[k]は、P[k]が論理ゼロである場合2で分周し、P[k]が論理1である場合3で分周する。MODIN-EN[k]の値が論理1であると、段300[k]によって実行される分周に影響を与えるようにMODIN[k]をイネーブルする。MODIN-EN[k]が論理1のときは、MODIN[k]が論理1のときのみ、段300[k]は上述のようにP[k]の値に依存して2又は3で分周する。MODIN[k]が論理ゼロのときMODIN-EN[k]は論理1である、段300[k]は2で分周する。段300[k]のMODIN-EN[k]が論理ゼロである場合、すべてのより高次段段300[k1]、段300[k2]等は動作中になることを要求されず、リセット状態即ち、動作からディスエーブルされるに維持されうる。そのようなシナリオでは、MODIN-EN[k]=0であるこのような段300[k]の最も低いもの最下位が最上位段を表し、Modout[0]の周波数はCLKOUT[k]の周波数に等しい。図2及び図3を組み合わせて参照すると、各段300[k]の信号MODIN-EN[k]及びP[k]がプログラムブロック260から受け取られる。このように、例えば、段230-1を段300[1]とすると、2/3分周ブロック230-1図1のMODIN-EN[1]及びP[1]が、プログラムブロック260からパス234-1を介して受け取られる。信号226はCLKIN[1]に対応し、信号231はCLKOUT[1]に対応し、信号232はMODIN[1]に対応し、信号239-1はMODOUT[1]に対応する。同様に、段230-Nを段300[N]とすると、2/3分周ブロック230-NのMODIN-EN[N]及びP[N]が、プログラムブロック260からパス234-Nを介して受け取られる。信号236はCLKIN[N]に対応し、信号237はCLKOUT[N]に対応し、信号238はMODIN[N]に対応し、信号239-NはMODOUT[N]に対応する。ブロック220及び230-1~230-Nの全てがイネーブルされるまた、分周のために動作可能にされると仮定すると、230-Nは周波数分周器200の最上位又は最右の2/3分周段を表し、MODIN-EN[1]~MODIN-EN[N]の各々はイネーブルされる論理高ことになる。MODIN[N]一般には、最上位のイネーブルされた段のMODINは論理高に設定される。CLKIN[k]がクロック入力としてポジティブエッジトリガ型フリップフロップFF1及びFF2のクロック端子に提供される。NORゲート310は、ANDゲート360の出力369及びFF1のQ出力323の論理NOR演算を実行し、その結果をFF1のD入力としてパス312上に提供する。CLKOUT[k]はFF1のQ出力323である。インバータ345は、信号342MODIN-EN[k]の論理NOT演算を実行し、信号342の逆数をパス345上に提供する。ORゲート340はパス343上に信号341MODIN[k]及び信号345の論理OR結果を提供する。ANDゲートはパス335上に信号343及び323の論理AND結果を提供する。信号335はFF2のD入力として提供される。信号335は出力信号MODOUT[k]としても提供される。ANDゲートは信号356FF2のQ出力及び信号361P[k]のAND演算の結果を提供する。FF1とFF2との間、及びFF1及びFF2からの/FF1及びFF2への、段300[k]の内部又は外部のその他の任意のフリップフロップからの、信号パスの組合せエレメント一般的にはメモリエレメントの数は先行技術の2/3分周段の実装よりも少なく、そのため相対的により高速な演算が可能になり、段300[k]の実装に必要な電力消費及び面積も低減される。図4A及び図4Bは、図3の回路の幾つかのノードの例示の波形を示す。図4Aはノード361上に提供されるP[k]の値が論理ゼロのときの、図3の段300[k]のノード361、301、341、335、及び323の例示の波形を示す。上述のように、P[k]の値がゼロであると、段300[k]を2分周モードで動作させ、ノード301CLKIN[k]及び323CLKOUT[k]の波形を比較することによってわかるように、CLKOUT[k]は交互に論理高及び論理低である。P[k]がゼロに等しいとき、信号MODIN[k]は分周動作には影響を与えず、段300[k]は2分周モードのみで動作する。図4Bは、ノード361上に提供されるP[k]の値が論理1のときの、図3の段300[k]のノード361、301、341、335、及び323の例示の波形を示す。P[k]が論理1であるとき、段300[k]はMODIN[k]の論理1レベルに応答して矢印410で示すように3分周モードで動作し、MODIN[k]が論理ゼロのとき矢印420で示すように2分周モードで動作する。そのため、CLKOUT[k]は、MODIN[k]の値に依存して、交互に、CLKIN[k]の1周期の間論理高であり、CLKIN[k]の1又は2周期の間論理低である。図4Cは、各々図3に示すように実装された3つのカスケードされた段300[1]、300[2]、及び300[3]のP、CLKIN、MODIN、MODOUT、及びCLKOUTノードの波形を示す。各段のそれぞれの入力及び出力は図3に関して上述したように接続される。CLKIN[1]は、分周される入力クロックであり、外部ソースから受け取ることができる。この例ではCLKIN[1]が132進数では1101で分周されるものと仮定する。それぞれの段300[1]、300[2]、及び300[3]に対する1、0、及び1のP入力は、2進数1101の下位3ビット1、0、及び1に等しい。なお、各段は単独で3で分周できるので、13分周動作全体のためには3段が必要であることに留意されたい。段300[3]のMODIN[3]は論理1に設定される。図4Cから、CLKOUT[3]の周波数はCLKIN[1]の周波数の1/13であることが観察されうる。また、CLKOUT[3]の各サイクル最右最上位段、この例では段300[3]のCLKOUTのCLKIN[1]の1周期の間、MODOUT[1]が論理高のみであり、それ以外は論理ゼロであることも観察されうる。同様に、CLKOUT[3]の各サイクルのCLKIN[2]の1周期の間、MODOUT[2]は論理高のみである。また、図4Cから、MODOUT[1]の周波数はCLKIN[1]の周波数の1/13であることも観察されうる。4.2/3/4分周段図5は、一実施形態の2/3/4分周段の実装の詳細を示す図である。図にはNORゲート510、フリップフロップ520FF3、560FF4、及び590FF5、ORゲート530、550、及び595、インバータ535、ANDゲート540、570、及び580が示されている。周波数分周器200図2では、最下位段LS段220が、図5の2/3/4分周段として実装されている。段220は、プログラムの値又は後述する他の入力信号に基づいて、2分周、3分周、又は4分周の分周を実行するように設計されている。信号242a、242b、及び242cは、パス242図2に含まれていると仮定される。段220はPの最下位ビットを受け取るので、段220は最下位LS段と称される。インバータ535は信号242aModin-en[0]の論理逆数を出力として提供する。ORゲート530は、信号239-1Modin[0]第1のモード信号及び信号242aModin-en[0]の論理逆数の論理OR演算の結果を出力として提供する。ANDゲート540は、ORゲート530の出力及びFF3のQ出力221Clkout[0]第1の分周された信号の論理ANDを出力229Modout[0]出力モード信号として提供する。ORゲート550は、ANDゲート540の出力及びFF5のQ出力の論理OR結果を出力として提供し、ORゲート550の出力はFF4のD入力に提供される。ANDゲート570は、信号242bプログラムビットP[0]及びFF4のQ出力の論理ANDを出力として提供する。3入力ANDゲート580は、信号229、242cEN-MOD-EXTEND及び299出力図2の論理AND結果を出力として提供し、この出力はFF5のD入力として提供される。ORゲート595は、FF3及びFF5のQ出力の論理OR結果を出力として提供する。NORゲート510は、ORゲート595の出力及びANDゲート570の出力の論理NOR結果を出力として提供し、この出力はFF3のD入力として提供される。FF3、FF4、及びFF5の各々は、ポジティブエッジトリガ型フリップフロップとして実装されて図示されており、信号201入力図1によってクロックされる。しかしながら、他の実施形態では、これらのフリップフロップが異なって実装されてもよい。信号242cEN-MOD-EXTEND本明細書では第3のビットとも称されるは、Mが4より大きい場合、分周係数Mの2進数表示の最下位ビットM[0]に等しく、Mが4以下の場合は0に等しい。段220の図5の実装はFF3、FF4、及びFF5から構成されるフリップフロップペア間の信号パスに最小の組合せ論理を含む。更に、タイミングクリティカルパスの長さを短くすることができるように、フリップフロップペアの間の論理エレメントの数がほぼ等しい。その結果、図5の実装は、高速の動作速度に適応し得、電力消費が少なくなり得、小面積に実装可能である。更に、段220の設計により、確実にModout[0]が信号201入力の1周期の間のみ論理高になり、それにより、Modout[0]をT/D段210のフリップフロップのD入力として用いることができる。1つの段のCLKOUTと別の段のCLKINの間にインバータを用いることによって図2に示すように、全てのMODIN信号がFF3図5の520の立ち下がりでトグルするようにすることを確実にできる。そのため、信号Modout[0]はグリッチフリーになり得る。Modin-en[0]の値が論理ゼロであると、段220のModin[0]の効果をディスエーブルし、あたかもModin[0]が論理1であるかのように、段220を動作させる。Modin-en[0]の値が論理1であると、Modin[0]の効果をイネーブルし、段220により実行される分周に影響を与える。段220のModin-en[0]が論理ゼロである場合、全てのより高次の段段230-1~230-Nは、動作中となることを要求されず、リセット状態即ち、動作からティスエーブルされるに維持されうる。そのようなシナリオでは、段220は最上位段を表し、Modout[0]の周波数はClkout[0]の周波数に等しい。信号201入力の2分周、3分周、又は4分周の分周を実行する図5の分周器220の動作は、次の論理によって説明される。信号Modin[0]239-1が0論理低に等しいとき、分周器220は2分周を実行し、信号221Clkout[0]は交互に論理高及び論理低である。信号Modin[0]が1論理高に等しく、且つ、M[1]が0に等しい場合、分周器220は信号299出力の交互の半周期で2分周及び3分周を実行する。信号Modin[0]が1に等しく、且つ、M[1]が1に等しい場合、分周器220は信号299出力の交互の半周期で3分周及び4分周を実行する。例として、Mが13に等しい場合、P即ち、M-l/2は62進法では110に等しく、M[1]P[0]にも等しいは偶数である。従って、信号Modin[0]が論理高のとき、分周器220は2分周及び3分周を信号299出力の交互の半周期で行う。一方、Mが15に等しい場合、Pは72進数では111に等しく、M[1]P[0]にも等しいは奇数である。従って、信号Modin[0]が論理高のとき、分周器220は3分周及び4分周を信号299出力の交互の半周期で行う。4分周動作は、P[0]が1に等しい場合の分周係数Mの値例えば、M=ll、M=15、M=19に適応するために必要とされる。M[1]が奇数のとき、信号221Clkout[0]の交互の半サイクルは、201入力のXサイクルの間、論理高である必要があり、201入力の次のX1サイクルの間、論理低である必要があり、ここで、XはM-l/2に等しい。例えば、分周係数Mが31の場合T/D段210は最終の2分周を提供する、信号221Clkout[0]の交互の半サイクルは、201入力の15サイクルの間、論理高である必要があり、201入力の次の16サイクルの間、論理低である必要がある。分周器220は、信号299出力の半周期毎に、信号201入力の1周期のみの間、条件Modin[0]=1が発生するように設計される。図5及び図2を組み合わせて参照すると、信号229Modout[0]が入力としてT/D段210図2に提供される。T/D段210は、信号229を2で分周するか、もしくは更なる分周を行わずに201入力の1サイクルに等しい遅延を行って信号229を提供する。図6A及び図6Bは図5の回路の幾つかのノードの例示の波形を示す。図6Aは、M[1]=0、即ち、M/2比が偶数Pビットの値は、M[1]と同じであるときの、分周器220図5のノード242bP[0]、201入力、239-1Modin[0]、229Modout[0]、及び221Clkout[0]の例示の波形を示す。信号221Clkout[0]は、信号201入力の半分の周波数を有し、239-1Modin[0]がゼロのインターバルにおいて交互に論理高及び論理低であることが観察されうる。しかしながら、Modin[0]の論理1から論理ゼロへの遷移に直ぐ続いて、信号221Clkout[0]は、Modin[0]の交互のサイクル毎に201入力の2サイクルの間、論理ゼロである。明確にするために、221Clkout[0]は、矢印610aで示す時点において201入力の1サイクルのみの間、論理ゼロであるが、矢印610bで示す次の時点において201入力の2サイクルの間、論理ゼロである。このパターンは、図6Aの他の時点のClkout[0]の値から観察されるように、Modin[0]が論理1であるとき又は論理1から論理ゼロへの遷移で繰り返す。このように、分周器220は、Modin[0]の論理高の値の間、交互にModin[0]の交互のサイクルで2及び3で分周する。分周器220は他のすべての時間は2で分周する。図6Bは、M[1]=l、即ち、M/2比が奇数P[0]ビットの値は、M[1]と同じであるときの、図5の段220のノード242aP[0]、201入力、239-1Modin[0]、229Modout[0]、及び221Clkout[0]の例示の波形を示す。信号221Clkout[0]は、信号201入力の半分の周波数を有し、239-1Modin[0]がゼロのインターバルにおいて交互に論理高及び論理低であることが観察されうる。しかしながら、信号221Clkout[0]は、Modin[0]の論理1から論理ゼロへの遷移に直ぐ続いて、201入力の2及び3サイクルの間、交互に即ち、Modin[0]の交互の論理高から論理低への遷移毎に論理ゼロである。明確にするために、221Clkout[0]は、矢印620aで示す時点において201入力の3サイクルの間、論理ゼロであるが、矢印620bで示す次の時点においては、201入力の2サイクルの間、論理ゼロである。このパターンは、図6Bの他の時点のClkout[0]の値から観察されるように、Modin[0]が論理1のとき又は論理1から論理ゼロへの遷移で繰り返す。このように、分周器220は、Modin[0]の論理高の値に対応して交互にModin[0]の交互のサイクルで3及び4で分周する。分周器220は他のすべての時間は2で分周する。Clkout[0]の論理ゼロレベルのこの付加的な延長は、信号M0これは分周係数MのLSBであると、信号299で示される299出力の特定の半サイクルとによって制御される。このような延長は、図6A及び6Bから観察されうるように、Modin[0]の対応する交互の論理高から論理低への遷移の後直ちに生成される。5.トグル/遅延段図7は、一実施形態のT/D段210の実装の詳細を示す図である。T/Dトグル/遅延段210は、出力段とも称され、マルチプレクサMUX710及び720、フリップフロップ730FF6、及びインバータ740を含んで図示されている。MUX710は、選択信号として信号229Modout[0]を受け取り、信号229の値に基づいて、信号299出力及び741の一方を出力712として提供する。図7では、信号229の値が論理高であると741を出力712として選択し、信号229の値が論理低であると信号299を出力712として選択すると仮定される。MUX720は、信号243図2を選択信号として受け取り、信号243の値に基づいて、信号712及び229の一方を出力723として提供する。信号723は、フリップフロップ730FF6のD入力として提供される。FF6のQ出力は、周波数分周器200の出力299出力として提供される。信号229は、MUX710への1つの入力として提供される。信号299の逆数がインバータ740によって生成され、パス741上に提供される。FF6は、ポジティブエッジトリガ型フリップフロップとして実装され、そのクロック入力として201入力を受け取るように図示されている。FF6は、そのクロック信号としての信号201入力を用いて動作するので、電源図示されていないが周波数分周器200に電力供給するために用いられるから出力299出力に転送される電源ジッタの程度は、最上位のイネーブルされた段のCLKOUTをFF6がその入力クロック信号として受け取る場合に比べて大幅に小さい。また、入力201と出力299との間の遅延待ち時間も、最上位のイネーブルされた段のCLKOUTをFF6又は一般的にはT/D段210がその入力クロック信号として受け取る場合の実装に比べて大幅に小さい。動作では、分周係数Mが4未満である場合、選択入力又はモードビット243はT/D段210を遅延モードに設定し、信号243は論理ゼロに等しく、MUX720は信号229を出力723として提供する。遅延モードでは、T/D段210具体的にはFF6は、201入力の1サイクル周期に等しい遅延の後、信号229Modin[0]を299出力として転送する。分周係数Mが4以上である場合、選択入力243はT/D段210をトグルモードに設定し、信号243は論理1に等しく、MUX720は信号712を出力723として提供する。トグルモードでは、Modout0上で論理高が検知される図8ではModout0の高から低への遷移で検知されるように示されるとき、FF6のQ出力即ち、信号229出力はそのカレント状態からトグルする即ち、現在論理低である場合は論理高に切り替わり、その反対も同様である。信号229出力は、等しい高期間及び低期間を有するが、Mの奇数の値の場合は例外である。Mが奇数のときは、299出力の高時間と低時間との間に、201入力の1周期の差がある。例えば、M値が72である場合、信号299出力は201入力の36サイクルの間、論理高であり、201入力の36サイクルの間、論理低である。M値が73である場合、信号299出力は、201入力の36サイクルの間、論理高であり、201入力の37サイクルの間、論理低である。信号229は、周波数分周器200において動作するようイネーブルされた最上位段のサイクルCLKOUT毎に信号201入力の1周期の間、論理高である。図8は、信号201、242c、229、及び299の例示の波形を示す図である。図8の例では、分周係数Mは4より大きく且つ奇数であると仮定される。242cEN-MOD-EXTENDが1奇数であるため、信号299出力が、論理高よりも1つ余分の論理低の期間を有することが観察されうる。また、Mは4より大きいと仮定されるので、T/D段210は上述のようなトグルモードで動作する。周波数分周器200は、1つの分周係数から別の分周係数へシームレスに切り替わるように設計される。即ち、周波数分周器200の出力299が、1つの周波数から別の所望の新しい周波数へ、如何なるグリッチを示すことなく切り替わるように設計される。加えて、このようなシームレス切り替え一般的には、グリッチフリー動作では、1つの周波数から別の周波数への切り替えの時点又はその付近で、出力299が誤った分周意図しない時間周期を示さないこと、及びいかなる時間長もブランクにしないようにすることが必要とされうる。一般には、シームレス切り替えでは、出力299のカンレントサイクルを完了し、所望の新しい周波数に対応する新しいサイクルを開始する際に、出力299にギャップやグリッチが無いことが要求される。このような能力によって、上述した好ましくない影響の1つ又は複数を生じることなく、周波数分周器200の分周係数Mを動的に変えることが可能になる。プログラムブロック260はそのようなシームレス切り替えをサポートするように実装される。プログラムブロック260は、また、パス242、243、及び234-1~234-N上にプログラム値を生成する。一実施形態において、上述の入力を生成するためのプログラムブロック260の動作方法を次に説明する。6.プログラムブロックプログラムブロック260図2は、パス251M上の分周係数Mを受け取り、プログラム値をパス242、243、及び234-1~234-N上に提供する。分周係数Mの受け取りに応答して、プログラムブロック260はMをデコードして、P入力段220に提供するためのP[0]、それぞれ段230-1~230-Nに提供するためのP[1]~P[N]、段イネーブル信号段220に提供するためのModin-en[0]、それぞれ段230-1~230-Nに提供するためのMODIN-EN[1]~MODIN-EN[N]、T/Dモード信号234、及びEN-MOD-EXTENDを生成する。このように生成された信号は、プログラムブロック260によって、後述するような整合条件alignconditionが満足されたときのみ、周波数分周器200の対応するエレメントに印加される又は提供される。しかしながら、先ず、上述のプログラム入力又はプログラムビットを生成する方法を以下に説明する。以下の説明では、論理ゼロ又は低は0に対応し、論理1又は高は1に対応する。P入力の生成:分周係数Mが2に等しい場合、Pは0に等しく、T/Dモードは遅延モードに設定される。そのため、プログラムブロック260は、P[1]~P[N]を論理ゼロとして生成し、T/Dモードビット243も論理0として生成する。Mが2より大きく且つMが偶数である場合、プログラムブロック260はM/2に等しい値Pを生成する。ここで、P[0]、P[1]~P[N]は、Pの2進法表示の対応するビットを表す。ここで、P[0]はPの2進法表示のLSBであり、P[1]~P[N]は、連続するより上位のビットを表し、P[N]は最上位ビットMSBを表す。Mが奇数である場合、プログラムブロック260は、M-l/2に等しい値Pを生成する。上述したように、P[0]、P[1]~P[N]は、このように取得したPの2進値の対応するビットを表す。Modin-en入力の生成:Mの値が2及び3に等しい場合、Modin-en[0]が論理高1に設定され、kの全ての値に関して、MODIN-EN[k]が論理低0に設定される。Mの値がこれより上の場合、下記表現によって特定されるようにModin-en信号が生成される。M=2X~2x1-lの場合、ここで、x>=2であり、yが0~x-2のEnyは1に設定され、y>x-2の全ての値のEnyは0に設定される。上記の表現では、En0が段-en[0]であり、Enl~EnN-lはそれぞれMODIN-EN[1]~MODIN-EN[N]に等しい。例えば、M=4~7の値即ち、x=2に対応するの場合、段-en[0]は1に設定され、MODIN-EN[1]~MODIN-EN[N]は0に設定される。M=8~15の値即ち、x=3に対応するの場合、段-en[0]及びMODIN-EN[1]は1に設定され、MODIN-EN[2]~MODIN-EN[N]は0に設定される。M=16~31の値即ち、x=4に対応するの場合、段-en[0]、MODIN-EN[1]、及びMODIN-EN[2]は1に設定され、MODIN-EN[3]~MODIN-EN[N]は0に設定される。T/Dモード信号/ビットパス243上の生成:Mが4未満の場合、プログラムブロック260はT/Dモード信号パス243を論理ゼロ遅延モードとして生成する。Mが4以上の場合、プログラムブロック260はT/Dモード信号パス243を論理1トグルモードとして生成する。EN-MOD-EXTENDの生成:Mが4より大きい場合、プログラムブロック260はM[0]をEN-MOD-EXTENDとして図5のパス242c上に転送する。Mが4以下の場合、パス242c上の信号EN-MOD-EXTENDが論理ゼロに設定される。プログラム入力がこのように生成されるが、パス242、243、及び234-1~234-Nの対応する1つにまだ提供されていないと、プログラムブロック260は、整合条件が発生するのを待つ。整合条件は、信号229Modout[0]図2で示されるように、プログラムブロック260の入力としても提供される信号の立ち上がりで発生し、そのような信号299の立ち上がりが、直前のT/Dモードが遅延モードに設定された又は出力クロックが論理ゼロであるという付加的な論理条件が満たされるときに又は満たされるのと同時に起こるとき、発生したとみなされる。直前のT/Dモードとは、Mの変化の直前のMの値即ち、Mの新値の直前に対応するT/Dモードを指す。上述した付加的な条件が満たされる即ち、TRUEであると評価されるとき、整合条件が満足され、プログラムブロック260は、生成されたプログラム入力を、対応するパス242、243、及び234-1~234-N上に信号229の直ぐ次の立ち上がりで提供する。図9は、例示のシナリオを示すもので、ここでは上述の整合条件要件に一致して、制御入力がプログラムブロック260によって提供される。図9では、Mの値パス251は、時点t901で変化すると仮定される。また、T/Dモードは、t901でのMの変化の直前のMの値に対応する遅延モードに設定されたと仮定される。信号910は、Mの値が変化するときに必ずトグルする信号であり、t91において論理低から論理高へ遷移して図示され、Mの新値又は、電源オン又は初期化の後最初にMが受け取られる場合の有効値がプログラムブロック260に受け取られたことを示している。これに応答して、プログラムブロック260は、Mの値をデコードして、t91又はその付近で、対応するプログラム入力を生成する。しかしながら、t91又はその付近では上述の整合条件が満たされていないので、プログラムブロック260は、t92で整合条件が満たされるまで、生成されたプログラム入力を提供しない。t92で、両方の299出力が論理ゼロであり、T/Dモードの直前の値が遅延モードに設定されたと仮定されて、整合条件が満たされる。従ってプログラムブロック260は、信号229Modout[0]の立ち上がりに同期してt92において、プログラム入力の新値をパス243、及び234-1~234-Nのそれぞれのパス上に提供する。整合条件が満たされる時点例えば、t92は整合時点とも称される。信号910は、周波数分周器200の外部の構成要素によって信号229の立ち下がりに整合されて提供されてもよく、或いは信号229の立ち下がりに、内部的にプログラムブロック260によって同期又は整合されて提供されてもよい。図9の信号910はこのように同期及び整合された信号を表す。どの図にも示していないが、周波数分周器200図2は、外部生成されたグローバルリセット信号を受け取ることもある。グローバルリセット信号は、周波数分周器200内の全てのフリップフロップをリセット状態に維持することによって、周波数分周器200の動作をディスエーブルするために用いられうる。例として、周波数分周器200内のフリップフロップのリセット状態、及びグローバルリセットから離脱した後直ちに4に等しい分周係数Mを印加することに対応する、制御設定レジスタ1020のビットを以下に示す。リセット値は、グローバルリセットからの離脱でModout[0]229がトグルすることを確実にし、それによりリセットからの解放後直ちにプログラムブロック260がM値を記憶できるように設計される。制御設定レジスタの、対応するビットのリセット値は以下に示すとおりである。i制御設定レジスタ1020内のビット:aT/D=1トグルモードbEN-MOD-EXTEND=0c段en[0]=0;全てのkに関して、MODIN-EN[k]=0dP[0]=0;P[1]=l;1より大きいすべてのkに関して、P[k]=0iiFF6段210の出力が0にリセットされる。iiiFF3、FF4、及びFF5段220の各々の出力が0にリセットされる。ivより上位段の各々のFF1の出力が1にセットされる。より上位段の各々のFF2の出力は0にリセットされる。一実施形態において、フリップフロップ及びビット上述は、グローバルリセットがアクティブ例えば、論理1のときのみ、それぞれのリセット状態同じく上述にある。しかしながら、別の実施形態では、段210、段220のフリップフロップ、及び制御設定レジスタ1020の記憶ビット位置が、グローバルリセットがアクティブのときのみリセットされ得、段230-1~230-Nのフリップフロップは、グローバルリセット信号又は追加のリセット制御信号のいずれかがアクティブのときにリセットされ得る。このような付加的なリセット制御信号は、対応する段が動作中であることを要求されているか否かに基づいて、段230-1~230-Nの各々のために生成されてもよい。例えば、段300[k]のための付加的なリセット制御信号が、MODIN-EN[k-1]の逆数と同じであってもよい。段230-1~230-Nの各々のために、グローバルリセット信号及び前段のMODIN-EN[k-1]の逆数段230-1ではModin-en[0]の論理OR組合せをリセット制御信号として用いてもよい。図10は一実施形態におけるプログラムブロック260の実装を示す。図10のプログラムブロック260は、デコードロジック1010、制御設定レジスタ1020、ORゲート1030、ANDゲート1040、及びインバータ1050及び1060を含んで図示されている。デコードロジック1010は、パス251M上の分周係数Mを受け取り、段210、220、及び230-1~230-Nに提供される必要がある対応するプログラム入力をパス1012上に生成する。パス1012上の出力は、段210、220、及び230-1~230-Nに直接に又は直ちに提供されることはない。その代わりに、出力1012が入力として制御設定レジスタ1020に提供される。制御設定レジスタ1020は、上述の整合条件が満たされた時点で、パス1012上の出力を記憶する。制御設定レジスタ内に出力1012を記憶することにより、段210、220、及び230-1~230-Nの各々の段がこれらの出力を入力P入力、段イネーブル入力、T/Dモード信号、及びEN-MOD-EXTENDとして直ぐに使用できるようにする。T/Dモードを特定するT/Dビットが記憶位置1021に記憶されて図示されている。そのため、Mの値が動的に変更されるときは、制御設定レジスタ1020はそれぞれの段にプログラム入力のカレント値を連続的に提供する。デコードロジック1010は、新しいMの値をデコードして、制御設定レジスタ1020の次の新しい設定を形成し、これらの設定は、整合条件が満たされる時点で、制御設定レジスタ1020のみによって記憶される且つ、プログラム入力として提供される。インバータ1050は、信号299出力を受け取り、信号299の論理逆数を入力としてORゲート1030に提供する。インバータ1060は、位置1021に記憶されたT/Dモードビットの前の値を受け取り、T/Dモードビットの論理逆数を、別の入力としてORゲート1030に提供する。ORゲート1030は、インバータ1050及び1060の出力の論理OR組合せの結果を、入力1032としてANDゲート1040に提供する。Modout[0]299が、別の入力としてANDゲート1040に提供される。ANDゲート1040は、受け取った入力の論理AND組合せの結果を信号1042整合信号として制御設定レジスタ1020のクロック端子に提供する。信号1042は制御設定レジスタ1020へのクロック入力として動作する。ANDゲート1040は、信号1032が論理高として検知されたとき、パス1042上に立ち上がりを生成するよう動作する。信号1042のそのような立ち上がりで、制御設定レジスタ1020のための新しい設定Mの新値に対応するが制御設定レジスタ1020にロードされる。信号229Modout[0]の立ち上がりで信号1032が高であることによって、プログラムブロック260の内部及び外部の信号がMの変化時にグリッチを示さないことが確実にされている。他の実施形態において、Mの変化が予期されるときのみ、Modout[0]229がプログラムブロック260に提供されるようにしてもよい。Mの変化及び対応する制御設定レジスタ1020の新設定の前及び後に、信号229がプログラムブロック260からゲートオフされてもよい。即ち、プログラムブロック260への信号229の提供がディスエーブルされてもよい。このようなゲート/ディスエーブルによって、Mが変化しないときに周波数分周器200の電力消費を低減することができる。組合せ論理を用いて、Mのビットにおける変化を検知し、プログラムブロック260に信号229を提供することを可能にする信号を生成するようにすることもできる。制御設定レジスタ1020の入力1012と出力242、243、234-1-234-Nとの比較を用いて、プログラムブロック260への信号229の提供がいつディスエーブルされるのかを決めてもよい。上述のように実装された周波数分周器200は、いくつかの利点を提供しうる。これらの利点には、出力信号299における低ジッタ、高速演算速度及び低電力消費、分周係数Mのグリッチフリーな動的変化、Mが偶数値のとき出力299の50のデューティサイクル及びMが奇数値のときほぼ50のデューティサイクル、及び、広範囲の分周係数を適用可能であることなどが含まれる。また、分周器110、160、及び170の1つ又は複数の代わりに、周波数分周器200を用いて実装したPLL100図1も同様の利点を有しうる。図1、図2、図3、図5、及び図7の図において、端子/ノードが、他の様々な端子と直接接続されて示されているが、パス上に追加の構成要素特定の環境に適したものが存在してもよく、従って、それらが接続されている端子に電気的に結合されているとみなされてもよいことを理解されたい。当業者にとっては本発明の請求の範囲内で他の実施形態及び変形が可能であることが理解されるであろう。"