(57)【要約】波形発生器は、自走リングオシレータと、代数モジュールと、スイッチモジュールと、出力モジュールとを含む。自走リングオシレータは、ループ状に接続された複数の遅延素子と、遅延素子間に配置された複数のタップとを含み、各タップは、独自に整相した振動遷移信号を提供する。代数モジュールは、入力信号に応答して、任意波形の第一の立ち上がりエッジを示す出力信号を生成する。スイッチモジュールは、代数データ出力ポートに電気的に連通するスイッチ入力ポートと、自走リングオシレータタップに電気的に連通する複数のスイッチタップ入力ポートと、スイッチ出力ポートとを含む。スイッチ出力ポートにおいて、スイッチモジュールは、スイッチ入力ポートで受領された第一の立ち上がりエッジを示す信号に応答して、複数の自走リングオシレータタップの一つから選択された第一の遷移信号を提供する。出力モジュールは、スイッチ出力ポートに電気的に連通する遷移信号入力ポートと、代数データ出力ポートに電気的に連通するウィンドウ入力ポートと、代数モジュールのクロック入力ポートに電気的に連通する波形出力ポートとを含む。出力モジュールは、出力モジュールの遷移信号入力ポートで受領した第一の遷移信号と、ウィンドウ入力ポートで受領した第一の立ち上がりエッジの信号とに応答して、波形出力ポートで任意波形を形成する。
2005522081.tif 000002
【特許請求の範囲】
【請求項１】
任意波形を提供する波形発生器であって、
ループ状に接続された複数の遅延素子と、
遅延素子間に配置され、独自に整相した振動遷移信号をそれぞれが提供する複数の
タップと、
を含む自走リングオシレータと、
代数データ入力ポートとクロック入力ポートと代数データ出力ポートとを有する代数モジュールにして、代数データ入力ポートで受領された信号に応答して、任意波形の第一の立ち上がりエッジを示す信号を代数データ出力ポートで生成する代数モジュールと、
代数データ出力ポートに電気的に連通するスイッチ入力ポートと、前記複数の自走リングオシレータタップに電気的に連通する複数のスイッチタップ入力ポートと、スイッチ出力ポートとを有するスイッチモジュールにして、スイッチ入力ポートで受領された第一の立ち上がりエッジを示す信号に応答して、複数のタップの一つから選択された第一の遷移信号をスイッチ出力ポートで提供するスイッチモジュールと、
スイッチ出力ポートに電気的に連通する遷移信号入力ポートと、代数データ出力ポートに電気的に連通するウィンドウ入力ポートと、代数モジュールのクロック入力ポートに電気的に連通する波形出力ポートとを有する出力モジュールにして、出力モジュールの遷移信号入力ポートで受領した第一の遷移信号と、ウィンドウ入力ポートで受領した第一の立ち上がりエッジを示す信号とに応答して、波形出力ポートで任意波形を生成する出力モジュールと、
を備える任意波形発生器。
【請求項２】
基準クロック入力ポートと、複数のタップに電気的に接続されたタップ入力ポートとを有するループ平均化モジュールにして、基準クロック入力ポートで受領された基準クロック信号に応答して、（ｉ）基準クロック信号のエッジ間で発生したタップ遷移の数をカウントし、（ｉｉ）カウントに応答して、平均ループ速度を計算するように構成されたループ平均化モジュールを更に備える、請求項１記載の任意波形発生器。
【請求項３】
（ｉ）計算された平均ループ速度と（ｉｉ）捕捉された複数のループの状態とに応答して、リングオシレータの瞬間位相を計算するように更に構成された、請求項２記載のループ平均化モジュール。
【請求項４】
スイッチ出力ポートに電気的に連通する信号入力ポートと、代数モジュールの代数データ出力ポートに電気的に連通する選択入力ポートと、出力モジュールの入力ポートに電気的に連通する微小遅延出力ポートとを含む微小遅延モジュールにして、選択入力ポートで受領された第一の立ち上がりエッジを示す信号に応答して、スイッチモジュールのスイッチ出力ポートから出力モジュールの入力ポートへの第一の遷移信号の伝搬を遅延させる微小遅延モジュールを更に備え、
出力モジュールの入力ポートは、微小遅延モジュールを通じて、スイッチモジュールのスイッチ出力ポートに電気的に連通する、請求項１記載の任意波形発生器。
【請求項５】
代数モジュールが、同期入力ポートを更に備え、代数モジュールが、代数データ入力ポートで受領された信号と同期入力ポートとで受領された信号とに応答して、代数データ出力ポートにおいて、任意波形内で第一の立ち上がりエッジを示す信号を生成する、請求項１記載の任意波形発生器。
【請求項６】
代数モジュールが、第一の立ち上がりエッジを示す信号を生成し、結果として任意波形における第一の立ち上がりエッジのシームレスな組み込みを発生させる、請求項５記載の任意波形発生器。
【請求項７】
遅延素子の一つが、反転遅延素子である、請求項１記載の任意波形発生器。
【請求項８】
それぞれの遅延素子に同一の負荷が加えられる、請求項１記載の任意波形発生器。
【請求項９】
少なくとも一つの遅延素子が、テスト制御入力ポートとテストデータ入力ポートとを有するテストスイッチモジュールを更に備え、遅延素子が、テスト制御入力ポートで受領された信号に応答して、テストデータ入力ポートで受領された信号と同一の信号を応答するタップにおいて形成する、請求項１記載の任意波形発生器。
【請求項１０】
代数モジュールに電気的に連通するデータ出力ポートと、基準クロックのソースの周波数変更パラメータを示す信号を受領するための補正入力ポートとを有する補正モジュールにして、周波数変更パラメータに関連する基準クロックの周波数における変動を推定する補正モジュールにして、変動に応答して、補正出力ポートにおいて補正信号を生成する補正モジュールを更に備える、請求項１記載の任意波形発生器。
【請求項１１】
周波数変更パラメータが、基準クロックのソースの温度である、請求項１０記載の任意波形発生器。
【請求項１２】
周波数変更パラメータが、基準クロックのソースの年数である、請求項１０記載の任意波形発生器。
【請求項１３】
代数モジュールが、代数入力ポートで受領された信号に応答して、代数データ出力ポートにおいて、任意波形内の第一の立ち下がりエッジを示す第二の信号を生成するように更に構成される、請求項１記載の任意波形発生器。
【請求項１４】
出力モジュールが、ウィンドウ入力ポートで受領された第一の立ち上がりエッジを示す誤信号を示すキャッチアップ信号を生成するように更に構成される、請求項１記載の任意波形発生器。
【請求項１５】
任意波形発生器が、ＣＭＯＳ集積回路内で実施される、請求項１記載の任意波形発生器。
【請求項１６】
リングオシレータに結合された電源からの電源ノイズの少なくとも一つの成分を順方向に供給する増幅器と
前記増幅器と電気的に連通するループ速度補正回路と、
を更に備える、請求項１記載の任意波形発生器。
【請求項１７】
それぞれが複数の信号パスのそれぞれと電気的に連通する複数の容量素子にして、それぞれの所定の静電容量を有して、それぞれの信号パスを通る遷移信号の伝搬時にそれぞれの所定の時間遅延を生成し、以って第一の信号パスでの遷移のための伝搬時間が第二の信号パスでの遷移のための伝搬時間と実質的に等しくなるようにする複数の容量素子、
を更に備える、請求項１記載の任意波形発生器。
【請求項１８】
複数の容量素子の各容量素子が、約５０フェムトファラッドより小さな値を有する、請求項１７記載の任意波形発生器。
【請求項１９】
複数の信号パスのそれぞれが、第一の容量素子と第二の容量素子とに電気的に連通する、請求項１７記載の任意波形発生器。
【請求項２０】
第一の容量素子及び第二の容量素子が、温度に対する異なる感度を有する、請求項１９記載の任意波形発生器。
【請求項２１】
第一の容量素子及び第二の容量素子が、プロセスに対する異なる感度を有する、請求項１９記載の任意波形発生器。
【請求項２２】
第一の容量素子及び第二の容量素子が、電圧に対する異なる感度を有する、請求項１９記載の任意波形発生器。
【請求項２３】
任意波形を形成する方法であって、
遅延素子のループとして遷移の連続シーケンスを生成するステップと、
ループ内の遅延素子の一つで発生する遷移をカウントするステップと、
任意波形を生成するために望ましい第一の立ち上がりエッジ時間及び第一の立ち下がりエッジ時間を決定するステップと、
カウントされた遷移と内部クロックとに基づいて、望ましい第一の立ち上がりエッジ時間に応答して遷移の連続シーケンスにおける第一の遷移を選択するステップと、
カウントされた遷移及び内部クロックに基づいて、望ましい第一の立ち下がりエッジ時間に応答して遷移の連続シーケンスにおける第二の遷移を選択するステップと、
任意波形を形成するために、選択された第一及び第二の遷移を使用して出力信号を生成するステップと、
出力信号に基づいて内部クロック信号を生成するステップと、
を含む方法。
【請求項２４】
出力信号を生成するステップが、過去において発生した望ましい第一の立ち上がりエッジ時間に応答して出力信号を生成するために、遷移の連続シーケンスの遷移のそれぞれを使用するステップを更に含む、請求項２３記載の方法。
【請求項２５】
入力基準クロックに関する遅延素子の一つにおける平均遷移率を計算するステップを更に含む、請求項２３記載の方法。
【請求項２６】
（１）計算された平均遷移率と（ｉｉ）遅延素子ループの複数の捕捉された状態とに応答して、遅延素子のループ内の瞬間位相を計算するステップを更に含む、請求項２５記載の方法。
【請求項２７】
選択された遷移に、複数の伝搬遅延の一つを追加するステップを更に含み、複数の伝搬遅延の二つの間の差異が、遅延素子のループにおける遅延素子を通じた遷移の平均伝搬時間よりも小さい、請求項２３記載の方法。
【請求項２８】
外部同期信号を受領するステップと、
受領された同期信号に応答して、第一の遷移及び第二の遷移の選択を修正するステップと、
を更に含む、請求項２３記載の方法。
【請求項２９】
修正するステップが、任意波形を形成するために出力信号における第一の立ち上がりエッジのシームレスな組み込みが存在するように、第一の遷移の選択を修正するステップを更に含む、請求項２８記載の方法。
【請求項３０】
それぞれの遷移が、極性を有し、遷移の連続シーケンスを生成するステップが、遅延素子により遷移の極性を反転するステップを更に含む、請求項２３記載の方法。
【請求項３１】
遷移の連続シーケンスを生成するステップが、遅延素子のそれぞれに同一の負荷を提供するステップを更に含む、請求項２３記載の方法。
【請求項３２】
基準クロックのソースの周波数変更パラメータを示す信号を受領するステップと、
周波数変更パラメータによる基準クロックの変動を決定するステップと、
決定された変動に応答して、第一の遷移の選択を変更するステップと、
を更に含む、請求項２３記載の方法。
【請求項３３】
周波数変更パラメータが、基準クロックのソースの温度である、請求項３２記載の方法。
【請求項３４】
周波数変更パラメータが、基準クロックのソースの年数である、請求項３２記載の方法。
【請求項３５】
信号経路を通る遷移の伝搬時間が第二の信号経路を通る遷移の伝搬時間と実質的に等しくなるように、それぞれの信号パスを通る遷移の伝搬に所定の時間遅延を追加するステップを更に含む、請求項２３記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、波形生成の分野に関し、特に、自走リングオシレータを使用して任意波形を生成する方法及び装置に関する。
【背景技術】
【０００２】
時間の単位又は距離の単位を、安価な形で更に小さな単位に分割するのが望ましい事例は数多く存在する。例えば、距離検出器において、発信信号と着信信号との間で経過する時間は非常に短く、数ナノ秒程度であり、標準の基準クロックを使用して経過時間をカウントすると、不正確なカウントが生じ、結果として、不正確な距離計算が発生する。
【０００３】
別の例において、レーザプリンタでは、高解像度のために、一定の行セル内で、様々な距離で白から黒（又はその逆）への遷移を提供するのが望ましい場合が多い。参照により本明細書に組み込む米国特許第５，１０９，２８３号を参照せよ。しかしながら、プリンタのピクセルクロックレートである１０ＭＨｚでクロックされる白−黒信号又は黒−白信号は、プリンタのレーザダイオードにおいて、一定のプリントセル内でのプリント遷移を正確に制御する上で十分に微細には分解されない。より高速のクロックは、コストが高すぎ、及び／又は、高解像度のグラフィックイメージに必要な高い時間分解能（例えば、数ミクロン程度のプリントセルの距離に応答する１ナノ秒）でプリント遷移を参照することができない。
【０００４】
上記の問題に対する解決策の一つは、自走リングオシレータ（相互に交換可能な用語としてループオシレータとも呼ばれる）を組み込んだデバイスを使用することである。米国特許第５，７９３，７０９号及び第５，９０３，５２２号は、こうした解決策について説明しており、この参照により本明細書に組み込まれるものとする。しかしながら、ＣＤ−ＲＷ、ＤＶＤ、通信、及びレーダの分野における応用での信号要件で更に高い周波数及び精度での遷移エッジが必要になるにしたがって、制限が生じる。回路の導電性パス長及び実施ハードウェアの相違が顕著になる。基準クロックの周波数に基づく代数クロックは、代数回路によって行われる計算の速度を制限する。自走ループオシレータ（「ループ」）の速度を計算する外部回路も、代数回路によって行われる計算の速度を制限する。出力を使用するデバイスは、同期信号が使用される時に、出力信号における突然の予測不可能な遷移を許容できない場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、こうした必要性に対処する。
【０００６】
したがって、本発明の目的は、様々な実施ハードウェア及び等しくないパス長を補正することである。本発明の別の目的は、基準クロックより大幅に高速である可能性のある、生成中の出力信号に基づいた遷移エッジ計算のための内部クロックを生成することである。本発明は、更に、遷移エッジ計算が誤ったものとなる場合に内部クロックを供給するウォチドッグを含む。本発明の別の目的は、計算の全体的な許容周波数を高めるために、平均ループ速度を内部的に計算することである。回路は、更に、精度を高めるために、平均ループ速度に基づいて、ループ内の遷移位置を計算する。本発明の別の目的は、出力位相の意図的な変更時に、更新済み出力波形を以前の出力波形にシームレスに連結する出力を生成することである。ＣＤ−ＲＷ、ＤＶＤ、通信、及びレーダの分野における応用では、より高速で精度の高いエッジ遷移が求められる。
【課題を解決するための手段】
【０００７】
本発明は、任意波形を生成する方法及び装置に関する。一態様において、本発明は、任意波形を生成する波形発生器に関する。波形発生器は、自走リングオシレータと、代数モジュールと、スイッチモジュールと、出力モジュールとを含む。自走リングオシレータは、ループ状に接続された複数の遅延素子と、遅延素子間に配置された複数のタップとを含み、各タップは、独自に整相した振動遷移信号を提供する。代数モジュールは、代数データ入力ポートと、クロック入力ポートと、代数データ出力ポートとを含む。代数モジュールは、代数データ入力ポートで受領された信号に応答して、任意波形の第一の立ち上がりエッジを示す信号を代数データ出力ポートで生成する。スイッチモジュールは、代数データ出力ポートに電気的に連通するスイッチ入力ポートと、自走リングオシレータタップに電気的に連通する複数のスイッチタップ入力ポートと、スイッチ出力ポートとを含む。スイッチ出力ポートにおいて、スイッチモジュールは、スイッチ入力ポートで受領された第一の立ち上がりエッジを示す信号に応答して、複数の自走リングオシレータタップの一つから選択された第一の遷移信号を提供する。出力モジュールは、スイッチ出力ポートに電気的に連通する遷移信号入力ポートと、代数データ出力ポートに電気的に連通するウィンドウ入力ポートと、代数モジュールのクロック入力ポートに電気的に連通する波形出力ポートとを含む。出力モジュールは、出力モジュールの遷移信号入力ポートで受領した第一の遷移信号と、ウィンドウ入力ポートで受領した第一の立ち上がりエッジの信号とに応答して、波形出力ポートで任意波形を形成する。
【０００８】
一実施形態において、任意波形発生器は、ループ平均化モジュールを含み、ループ平均化モジュールは、基準クロック入力ポートと、自走リングオシレータ内の複数のタップに電気的に接続されたタップ入力ポートとを含む。基準クロック入力ポートで受領された基準クロック信号に応答して、ループ平均化モジュールは、基準クロック信号のエッジ間で発生したタップ遷移の数をカウントし、カウントに応答して、平均ループ速度を計算する。ループ平均化モジュールは、更に、計算された平均ループ速度と、捕捉された複数のループの状態とに応答して、リングオシレータの瞬間位相を計算できる。
【０００９】
別の実施形態において、任意波形発生器は、微小遅延モジュールを含む。微小遅延モジュールは、スイッチ出力ポートに電気的に連通する信号入力ポートと、代数モジュールの代数データ出力ポートに電気的に連通する選択入力ポートと、出力モジュールの入力ポートに電気的に連通する微小遅延出力ポートとを含む。微小遅延モジュールは、選択入力ポートで受領された第一の立ち上がりエッジの信号に応答して、スイッチモジュールのスイッチ出力ポートから出力モジュールの入力ポートへの第一の遷移信号の伝搬を遅延させる。出力モジュールの選択入力ポートは、微小遅延モジュールを通じて、スイッチモジュールのスイッチ出力ポートに電気的に連通する。
【００１０】
別の実施形態において、代数モジュールは、同期入力ポートを含む。代数データ入力ポートと同期入力ポートとで受領された信号に応答して、代数モジュールは、代数データ出力ポートにおいて、任意波形内で第一の立ち上がりエッジの信号を形成する。代数モジュールは、その後、第一の立ち上がりエッジの信号を生成し、結果として任意波形発生器における第一の立ち上がりエッジのシームレスな組み込みを発生させる。
【００１１】
別の実施形態において、遅延素子の一つは、反転遅延素子であり、各遅延素子には同一の負荷が加えられる。別の実施形態では、少なくとも一つの遅延素子は、テストスイッチモジュールを含む。テストスイッチモジュールは、テスト制御入力ポートとテストデータ入力ポートとを有する。テスト制御入力ポートで受領された信号に応答して、遅延素子は、テストデータ入力ポートで受領された信号と同一の信号を応答するタップにおいて形成する。
【００１２】
別の実施形態において、任意波形発生器は、補正モジュールを含む。補正モジュールは、代数モジュールに電気的に連通するデータ出力ポートと、基準クロックのソースの周波数変更パラメータを示す信号を受領するための補正入力ポートとを含む。補正モジュールは、基準クロックのソースの周波数変更パラメータに関連する基準クロックの周波数における変動を推定する。補正モジュールは、その後、この周波数の変動に応答して、補正出力ポートにおいて補正信号を形成する。別の実施形態において、周波数変更パラメータは、基準クロックのソースの温度である。別の実施形態において、周波数変更パラメータは、基準クロックのソースの年数である。
【００１３】
別の実施形態において、代数モジュールは、代数入力ポートで受領された信号に応答して、代数データ出力ポートにおいて、任意波形内の第一の立ち下がりエッジの第二の信号を形成するように作成される。別の実施形態において、出力モジュールは、ウィンドウ入力ポートで受領された第一の立ち上がりエッジの誤信号のキャッチアップ信号を形成するように作成される。別の実施形態において、任意波形発生器は、ＣＭＯＳ集積回路内で実施される。
【００１４】
別の実施形態において、任意波形発生器は、増幅器とループ速度補正回路とを含む。増幅器は、リングオシレータに結合された電源からの電源ノイズの少なくとも一つの成分を順方向で供給し、ループ速度補正回路は、増幅器と電気的に連通する。一実施形態において、ループ速度補正回路は、ループ平均化モジュールと電気的に連通し、増幅済みノイズに応答して、計算された平均ループ速度を調整する。別の実施形態において、ループ速度補正回路は、代数モジュールと電気的に連通し、増幅済みノイズに応答して、計算された平均ループ速度を調整する。
【００１５】
別の実施形態において、任意波形発生器は、複数の容量素子を含み、そのそれぞれは、複数の信号パスのそれぞれと電気的に連通する。各容量素子は、それぞれの所定の静電容量を有し、それぞれの信号パスを通じた遷移信号の伝搬において、それぞれの所定の時間遅延を形成し、第一の信号パスでの遷移のための伝搬時間が第二の信号パスでの遷移のための伝搬時間と実質的に等しくなるようにする。
【００１６】
別の実施形態において、複数の容量素子の各容量素子は、約５０フェムトファラッドより小さな値を有する。更なる実施形態において、複数の信号パスのそれぞれは、第一の容量素子と第二の容量素子とに電気的に連通する。更なる実施形態において、第一及び第二の容量素子は、温度と、プロセスと、供給電圧とに対する異なる感度を有する。
【００１７】
別の態様において、本発明は、任意波形を形成する方法に関する。任意波形を形成する方法は、遅延素子のループにおける遷移の連続シーケンスを生成するステップと、ループ内の遅延素子の一つで発生する遷移をカウントするステップと、望ましい第一の立ち上がりエッジ時間及び第一の立ち下がりエッジ時間を決定するステップと、カウントされた遷移及び内部クロックに基づいて、望ましい第一の立ち上がりエッジに応答して、遷移の連続シーケンスにおける第一の遷移を選択するステップと、カウントされた遷移及び内部クロックに基づいて、望ましい第一の立ち下がりエッジ時間に応答して、遷移の連続シーケンスにおける第二の遷移を選択するステップと、第一及び第二の選択済み遷移を使用して出力信号を生成するステップと、出力信号に基づいて内部クロック信号を生成するステップとを含む。
【００１８】
一実施形態において、出力信号を生成する方法は、過去において発生した望ましい第一の立ち上がりエッジ時間に応答して出力信号を生成するために、遷移の連続シーケンスの遷移のそれぞれを使用するステップを含む。
【００１９】
別の実施形態において、方法は、入力基準クロックに関する遅延素子の一つにおける平均遷移率の計算を含む。
【００２０】
別の実施形態において、方法は、計算された平均遷移率と、遅延素子ループの複数の捕捉された状態とに応答した、遅延素子のループ内の瞬間位相の計算を含む。
【００２１】
別の実施形態において、方法は、選択された遷移に、複数の伝搬遅延の一つを追加するステップを含み、複数の伝搬遅延の二つの間の差異は、遅延素子のループにおける遅延素子を通じた遷移の平均伝搬時間よりも小さい。
【００２２】
別の実施形態において、方法は、外部同期信号を受領するステップと、受領された同期信号に応答して、第一及び第二の遷移の選択を修正するステップとを含む。更なる実施形態において、修正プロセスは、任意波形を形成するために出力信号における第一の立ち上がりエッジのシームレスな組み込みが存在するように、第一の遷移の選択を調整するステップを含む。
【００２３】
別の実施形態において、各遷移は、極性を有する。更なる実施形態において、遷移の連続シーケンスを生成するステップは、遅延素子により遷移の極性を反転するステップを含む。更なる実施形態において、遷移の連続シーケンスの生成は、遅延素子のそれぞれに同一の負荷を提供する。
【００２４】
別の実施形態において、方法は、基準クロックのソースの周波数変更パラメータを示す信号を受領するステップと、周波数の変更による基準クロックの任意の変動を決定するステップと、決定された変動に応答して、第一の遷移の選択を変更するステップとを含む。別の実施形態において、周波数変更パラメータは、基準クロックのソースの温度である。別の実施形態において、周波数変更パラメータは、基準クロックのソースの年数である。
【００２５】
別の実施形態において、方法は、信号経路を通じた遷移の伝搬時間が第二の信号経路を通じた遷移の伝搬時間と実質的に等しくなるような、それぞれの信号パスを通じた遷移の伝搬に対する所定の時間遅延の追加を含む。
【００２６】
その他の目的、特徴、及び利点は、以下の好適な実施形態の説明と添付図面とに基づき、当業者は想到し得よう。
【発明を実施するための最良の形態】
【００２７】
図１Ａは、出力信号１３６を形成するために使用される任意波形発生器１００を高レベルで表している。任意波形発生器１００は、自走ループオシレータ１０４と、スイッチモジュール１１２と、代数モジュール１０８と、出力モジュール１１４とを含む。ループ１０４は、スイッチモジュール１１２に対して遷移エッジを伝送するために、タップを介してスイッチモジュール１１２に電気的に接続される。代数モジュール１０８は、外部基準クロック信号１２８と代数データ入力信号１３２とを受領する。これらの信号１２８、１３２を使用して、代数モジュール１０８は、下で更に詳細に説明するように、出力信号１３６の次の遷移エッジを生成するためにタップからどの遷移エッジを選択するべきかを計算する。代数モジュール１０８は、出力信号１３６を生成するのに使用される計算済み遷移エッジを伝送するために、スイッチモジュール１１２及び出力モジュール１１４に電気的に接続される。スイッチングモジュール１１２は、代数モジュール１０８から遷移エッジ情報を受領し、計算済み遷移エッジに応答するループ１０４のタップを選択する。スイッチモジュールは、選択されたタップから出力モジュール１１４へ遷移エッジを伝送するために、出力モジュール１１４に電気的に接続される。出力モジュールは、遷移エッジを受領し、出力信号１３６として提供する。
【００２８】
自走ループオシレータ１０４は、外部リセット信号１４０のための入力と、一連の遅延素子モジュール１２０ａ、１２０ｂ、１２０ｃ、１２０ｏ、１２０ｐ（全般的に１２０）と、少なくとも一つの反転素子１２４とを含む。このリセット信号１４０は、二つの状態、即ち、リセット状態と実行状態とを有する。信号１４０がリセット状態である時、ループ１０４は、振動しない。信号１４０が実行状態に遷移する時、ループ１０４は、振動を開始する。遷移は、第一の遅延素子モジュール１２０ａを通じて、次の遅延素子モジュール１２０ｂの入力へ伝搬する。信号が遅延素子モジュール１２０の入力に受領された直後に、信号は、応答するタップで出力される。
【００２９】
例えば、遷移が遅延素子モジュール１２０ａの入力へ伝搬した後の何らかの時点で、遷移は、タップ０にも現れる。遷移が遅延素子モジュール１２０ａの出力に伝搬し、その後、次の遅延素子モジュール１２０ｂの入力に伝搬すると、遷移は、タップ１にも現れる。このプロセスは、遷移が全てを通って最後の遅延素子モジュール１２０ｐ及びタップ１５まで進行するに従って繰り返される。図１Ａの例示的な実施形態では、１６のタップを表している。タップの数は、変化させることができる。タップの数は、設計上の考慮事項によって選択され、部分的には、望ましい周波数と、利用可能な実施ハードウェアと、代数モジュール計算の速度とに応じて変化する。
【００３０】
図１Ｂの例示的な実施形態は、図１Ａの応答するタップに現れる遷移を表している。図１Ｂに図示したように、各タップでの各遷移間には約３００ピコ秒の遅延が存在する。この遅延時間は、遷移が遅延素子モジュール１２０の入力から応答するタップの出力へ伝搬するのに要する時間を表している。この遅延時間は、設計を実施するのに使用されるハードウェアに依存する。図示した実施形態は、０．３５ミクロンプロセスのＡＳＩＣにおいて実施された。０．２５ミクロンプロセスのＡＳＩＣは、０．３５ミクロンプロセスのＡＳＩＣの遅延時間の約半分となる遅延時間をもたらすことができる。小さな遅延時間によって、代数モジュール１０８は、出力信号１３６における遷移エッジの更に正確な配置を計算する。遅延時間は、望ましい周波数と、利用可能な実施ハードウェアと、代数モジュールの計算速度とに応じて、設計上の考慮事項によって選択される。
【００３１】
別の実施形態において、各遅延素子モジュール１２０は、反転素子を含む。反転素子は、一つおきのタップにおいて、ループでの単一のエッジの伝搬を反対方向に遷移させる。例えば、タップ１、タップ３、タップ５、タップ７、タップ９、タップ１３、及びタップ１５は、それぞれ、図１Ｂに示したロー状態からハイ状態ではなく、ハイ状態からロー状態へ遷移する。正の遷移の伝搬時間が負の遷移の伝搬時間とは異なるため、反転素子の使用により、ループでの更に一貫した伝搬時間が生じる。更に、反転素子により、電源の更に均一な負荷が生じる。
【００３２】
図２を参照すると、遷移は、一連の遅延素子モジュール１２０ａ乃至１２０ｐを通じて伝搬する。最後の遅延素子モジュール１２０ｐの出力に達すると、遷移は、一回のループ（ラップとも呼ばれる）を完了する。ループ１０８の例示的な実施形態は、最後の遅延素子モジュール１２０ｐの出力に接続された反転論理素子２０８を含む。この反転論理素子２０８は、先行する遅延素子モジュール１２０の出力に接続された、各遅延素子モジュール１２０に含まれる反転論理素子４０４（図３）と同様である。これにより、各タップでの遷移間の時間が同様となるように、最後の遅延素子モジュール１２０ｐの出力に他の遅延素子モジュール１２０ａ乃至１２０ｏと同様の負荷が加わる状態が確保される。ハードウェア実施の許容範囲も、遅延時間をどのくらい等しくできるかを決定できる。
【００３３】
「ループ」効果を形成するために、一連の遅延素子モジュール１２０ａ、１２０ｂ、１２０ｃ、１２０ｏ、１２０ｐを通じた遷移の伝搬は、繰り返す必要がある。これを達成するために、一つの遷移が（例えば、遅延素子モジュール１２０ｏから）選択され、反転素子１２４を通じて、第一の遅延素子モジュール１２０ａの入力に返送される。使用されるインバータ素子１２４の数は、選択された遅延素子モジュール１２０（例えば、遅延素子モジュール１２０ｏ）が第一の遅延素子モジュール１２０ａの反対方向で遷移を出力するかどうかに応じて決まる。
【００３４】
例えば、第一の遅延素子モジュール１２０ａが、以前にローからハイに遷移しており、選択された遷移（例えば、遅延素子モジュール１２０ｏ）も、ローからハイに遷移している場合、第一の遅延素子モジュール１２０ａの入力に伝送される遷移をハイからローにするために、パスには一つのインバータ１２４が存在する必要がある。実施形態がインバータ素子を含んだ遅延素子モジュール１２０を有し、選択された遷移が第一の遅延素子モジュール１２０ａに関して既に反転されている場合には、反対の遷移が第一の遅延素子１２０ａに伝送された状態を確保するために、二つの反転素子１２４、１２４’（図示せず）が直列で使用される。インバータ１２４に接続される遅延素子モジュール１２０ｏは、選択された遅延素子モジュール１２０ｏから（複数の）インバータ要素１２４を介した第一の遅延素子モジュール１２０ａへの遷移の伝搬時間と、選択された遅延素子モジュール１２０ｏから最後の遅延素子モジュール１２０ｐの出力への遷移の伝搬時間とがほぼ等しくなるように選択される。
【００３５】
説明のための例において、各遅延素子モジュール１２０は、反転要素を含む。二つの反転要素１２４、１２４’（図示せず）を通じた伝搬時間は、二つの遅延素子モジュール１２０の伝搬時間に等しい。タップ１３に応答する遅延素子モジュール１２０ｎ（図示せず）が選択される。遅延素子モジュール１２０ｎは、第一の遅延素子モジュール１２０ａの反対の遷移であるため、正しい極性を確保するために二つの反転要素１２４、１２４’が必要となる。タイミングも正しいため、遷移がタップ１３からタップ１５に伝搬する時点では、遷移は、二つの反転要素１２４、１２４’を介して、第一の遅延素子モジュール１２０ａの入力にも到着する。
【００３６】
図２に図示したように、ループ１０４は、更に、ラップカウンタモジュール２００と状態捕捉モジュール２０４とを含む。代数モジュール１０８は、更に、ループ平均化モジュール２１２を含む。ラップカウンタモジュール２００は、遷移エッジが遅延素子モジュール１２０ａを通じて伝搬する際に遷移エッジを受領するために、第一の遅延素子モジュール１２０ａに電気的に接続される。ラップカウンタモジュール２００は、格納されたラップの数を伝送するために、状態捕捉モジュール２０４に電気的に接続される。状態捕捉モジュール２０４は、基準クロック信号１２８を受領する。状態捕捉モジュール２０４は、基準クロック信号１２８の遷移におけるループ１０４のタップとラップカウンタモジュール２００との状態を受領及び格納するために、それぞれのタップと、ラップカウンタモジュール２００とに電気的に接続される。状態捕捉モジュール２０４は、更に、格納済み状態情報２２０を伝送するために、代数モジュール１０８に電気的に接続される。ループ平均化モジュール２１２は、状態捕捉モジュール２０４から伝送された格納済み状態情報２２０を受領し、代数モジュール１０８の計算において使用される平均ループ速度を計算する。
【００３７】
ラップカウンタ２００は、二つのカウンタを含む。正エッジカウンタ２００ａ（図示せず）は、正のエッジ遷移（例えば、ロジックローからハイへの遷移）が第一の遅延素子モジュール１２０ａを通じて伝搬するたびに、一つをカウントする。負エッジカウンタ２００ｂ（図示せず）は、負のエッジ遷移（例えば、ロジックハイからローへの遷移）が第一の遅延素子モジュール１２０ａを通じて伝搬するたびに、一つをカウントする。したがって、負エッジカウンタ２００ｂは、正エッジカウンタ２００ａとの１８０度の位相差を有する。二つのカウンタ２００ａ、２００ｂは、一方のカウンタが更新中であっても、任意波形発生器１００の他のモジュールが安定した正確なカウンタへアクセスし、ラップ数を決定する状態を確保するために使用される。各カウンタのサイズ（即ち、ビット数）は変化させることが可能で、望ましい周波数と、利用可能な実施ハードウェアと、代数モジュールの計算の速度とに応じて、設計上の考慮事項によって選択される。各カウンタは、カウントを継続し、最大値に到達すると、ゼロに戻り、カウントを継続する。
【００３８】
状態捕捉モジュール２０４は、基準クロック信号１２８を自分のクロックとして使用するレジスタ２０４ａ（図示せず）を含む。基準クロック信号１２８の遷移時（通常は正のエッジ遷移）、レジスタ２０４ａは、ループ１０４の状態を格納する（捕捉とも呼ばれる）。一実施形態において、レジスタ２０４ａは、１６ビットデータワードを格納する。この実施形態において、１１ビットは、ラップカウンタ２００の値として使用される。四ビットは、１６のタップを表すのに使用される。これらの四ビットは、タップの状態のために使用され、捕捉の時点で遷移が伝搬し通過した最後のタップを表す。一ビットは、第一の遅延素子モジュール１２０ａを通過する際の遷移の状態（即ち、正のエッジ又は負のエッジ）を表すのに使用される。このビットは、代数モジュール１０８によって選択された遷移エッジが正のエッジか、負のエッジかを決定し、スイッチモジュール１１２によって反転する必要があるかを決定するのに必要となる。
【００３９】
遅延素子モジュール１２０は、タップに出力されて捕捉される遷移エッジを形成する。遅延素子モジュール１２０の一つは、図３に更に詳細に図示されている。遅延素子モジュール１２０は、ＮＡＮＤ素子４０４を含む。ＮＡＮＤ素子４０４の二つの入力４０８、４１２は、それぞれ、前の遅延素子モジュール１２０出力からの信号と、ロジックハイ信号４２４とを受領する。ロジックハイ信号は、ＮＡＮＤ素子４０４の出力が前の遅延素子モジュール１２０出力からの入力信号４０８の反転信号となる状態を確保する。
【００４０】
第一の遅延素子モジュール１２０ａ（図２）に関して、ロジックハイ信号は、リセット信号１４０に置き換えられ、入力信号４０８は、前の遅延素子１２０ではなく、反転出力素子１２４から受領される。リセット信号１４０がリセット状態であるロジックローである時、ＮＡＮＤ素子４０４の出力は、入力信号４０８に関係なくロジックハイとなる。自走ループオシレータ１０４の残りの遅延素子モジュール１２０ｂ乃至１２０ｐ（図２）は、応答する状態に駆動され、ループ１０４は、リセット信号が実行状態であるロジックハイに遷移するまで、リセット状態を維持する。
【００４１】
ＮＡＮＤ素子４０４の出力４１２は、次の遅延素子モジュール１２０へ送信される。出力４１２は、インバータ４１６への入力にもなる。選択された一つの遅延素子モジュール１２０（例えば、遅延素子モジュール１２０ｏ、図２）のインバータ出力４２０からの遷移は、別のインバータ１２４（図２）に送信され、その後、第一の遅延素子モジュール１２０ａに送信され、ループ１０４の振動が維持される。他の遅延素子モジュール１２０ａ、１２０ｂ、１２０ｃ、１２０ｐに対して、出力４２０は接続されない。一実施形態において、インバータ４１６は、負荷バランシングの目的から、接続の有無にかかわらず、それぞれの遅延素子モジュール１２０に含まれる。上記のように、遅延素子モジュール１２０の負荷を可能な限り同様及び均等に維持することで、各遅延素子モジュール１２０を通じた伝搬時間は、一貫した状態に維持される。
【００４２】
ＮＡＮＤ素子４０４の出力４１２は、テストスイッチモジュール４００に接続される。テストスイッチモジュール４００は、テスト入力信号４４０を受領する。この信号４４０の状態は、テストスイッチモジュール４００によって生成される信号を決定する。例えば、テスト入力信号４４０が非テスト状態（例えば、ロジックロー）である場合、ＮＡＮＤ素子４２８は、ＮＡＮＤ素子４０４の出力４１２の反対状態を有する信号を出力する。ＮＡＮＤ素子４３２は、テストデータ入力信号４４４に関係なく、ロジックハイを出力する。そのため、ＮＡＮＤ素子４３６は、ＮＡＮＤ素子４０４の出力４１２の状態と同じである、ＮＡＮＤ素子４２８の出力の反対状態を出力する。テスト入力信号４４０がテスト状態（例えば、ロジックハイ）である場合、ＮＡＮＤ素子４２８は、ＮＡＮＤ素子４０４の出力４１２に関係なく、ロジックハイを出力する。ＮＡＮＤ素子４３２は、テストデータ入力信号４４４の反対状態を出力する。そのため、ＮＡＮＤ素子４３６は、テストデータ入力信号４４４と同じ状態である、ＮＡＮＤ素子４３２の出力の反対状態を出力する。
【００４３】
反転ドライバ４４８は、テストスイッチモジュール４００の出力であるＮＡＮＤ素子４３６の出力を増幅する。反転ドライバ４４８の出力は、スイッチモジュール１１２（図２）へ送られるタップ信号４５６である。そのため、テスト入力信号４４０の状態に応じて、反転ドライバ４４８の出力は、ＮＡＮＤ素子４０４の出力又はテストデータ入力信号４４４のいずれかの反対状態となる。
【００４４】
第一の遅延素子モジュールでは、ＮＡＮＤ素子４３６の出力は、反転ドライバ４５２に対する入力でもある。反転ドライバ４５２の出力は、ラップカウンタモジュール２００に接続される。ラップカウンタは、反転ドライバ４５２から出力された各遷移をカウントする。その他の遅延素子モジュール１２０ｂ乃至１２０ｐに対して、反転ドライバ４５２の出力は接続されない。一実施形態において、反転ドライバ４５２は、負荷バランシングの目的から、接続の有無にかかわらず、それぞれの遅延素子モジュール１２０に含まれる。
【００４５】
図４は、任意波形発生器１００’の代替実施形態を表している。任意波形発生器１００’は、更に、微小遅延モジュール３１０と、補正モジュール３２０と、状態捕捉モジュール２０４’を含む自走ループオシレータ１０４’と、同期モジュール３０４を含む代数モジュール１０８’とを含む。微小遅延モジュール３１０は、遷移エッジを受領するために、スイッチモジュール１１２に電気的に接続される。微小遅延モジュール３１０は、遅延素子モジュール１２０を通じた伝搬遅延よりも小さな差動遅延を遷移エッジに追加する。微小遅延モジュール３１０は、更に遅延させた遷移エッジを出力モジュール１１４に伝送するために、出力モジュールに電気的に接続される。補正モジュール３２０は、補正入力信号３２４を受領する。補正モジュールは、調整信号を伝送するために、代数モジュール１０８’に電気的に接続される。
【００４６】
一実施形態において、補正モジュール３２０は、基準クロック入力信号１２８を形成するオシレータ（即ち、基準クロック１２８のソース）の温度を表す補正入力信号３２４を受領する。補正モジュール３２０は、温度と周波数との所定の関係（例えば、ルックアップテーブル）を使用して、補正入力信号３２４に基づいて、基準クロック１２８の周波数の変化を決定する。補正モジュール３２０は、代数モジュール１０８’に対して、変化情報と共に、調整信号を出力する。基準クロック１２８の周期デルタに関する変化は、望ましい出力周期１３２に代数的に追加され、オーブン又はウォームアップ遅延のない出力信号１３６として、超安定時間基準が生成される。
【００４７】
別の実施形態では、年数インジケータ信号（例えば、現行データ）を補正入力信号３２４として利用することで、水晶の経年変化も同様の形で補正してよい。補正モジュール３２０は、年数と周波数との所定の関係（例えば、ルックアップテーブル）を使用して、補正入力信号３２４に基づいて、基準クロック１２８の周波数の変化を決定する。
【００４８】
状態捕捉モジュール２０４’は、同期入力信号３００を受領する。状態捕捉モジュール２０４’は、同期信号３００の遷移におけるループ１０４’のタップとラップカウンタモジュール２００との状態を受領及び格納するために、それぞれのタップと、ラップカウンタモジュール２００とに電気的に接続される。状態捕捉モジュール２０４’は、同期信号をクロックとして使用する第二のレジスタ２０４ｂ（図示せず）を含む。同期信号３００の遷移時（通常は正のエッジ遷移）、第二のレジスタ２０４ｂは、ループ１０４’の状態を格納する。一実施形態において、第二のレジスタ２０４ｂは、１６ビットデータワードを格納し、ビットは第一のレジスタ２０４ａについて説明したように使用される。
【００４９】
状態捕捉モジュール２０４’は、更に、格納済み状態情報３３０を伝送するために、代数モジュール１０８’に電気的に接続される。代数モジュール１０８’の同期モジュール３０４は、状態捕捉モジュール２０４’から伝送された格納済み状態情報３３０を受領し、その後の遷移エッジの選択を計算し、出力信号１３６が同期信号３００と同じ位相となるようにする。
【００５０】
図５は、代数モジュール１０８’を更に詳細に表している。代数モジュール１０８’は、ラップと、出力信号１３６の各遷移エッジを形成するためにループ１０４’から必要になるタップとを計算する。一実施形態では、四チャネル代数モジュール１０８’が、出力信号１３６の次の二つの立ち上がりエッジと、応答する立ち下がりエッジとを計算する。第一の立ち上がりエッジは、位相０信号と呼ばれ、応答する立ち下がりエッジは、位相１信号と呼ばれ、第二の立ち上がりエッジは、位相２信号と呼ばれ、応答する立ち下がりエッジは、位相３信号と呼ばれる。明確にするために、注記がない場合、図は、位相０信号を形成する回路を表している。その他の三種類の位相信号のための回路は、特に注記がない限り、同様である。四種類のエッジを並行して計算することで、代数モジュール１０８’は、より高速な周波数で動作し、したがって、出力信号１３６をより高い周波数にすることができる。別の実施形態では、求められる性能に応じて、四チャネルより多い又は少ないものが必要となる。
【００５１】
代数モジュール１０８’は、基準クロック１２８とＲＩＳＥクロック５４０とを受領する。ＲＩＳＥクロック５４０は、出力モジュール１１４の位相結合モジュール１２２５（図１２）から受領される。ＲＩＳＥクロック５４０は、出力信号１３６の半分の周波数となり、出力信号１３６の立ち上がりエッジに応答するエッジを有する。代数モジュール１０８’は、計算を実行し、レジスタ内にデータを格納するためのクロックとして、ＲＩＳＥクロック５４０を使用する。代数モジュール１０８’は、更に、代数データ入力信号１３２を受領する。代数データ入力信号１３２は、基準クロック入力信号１２８の周期の乗数を表すデータワード１３２ａを含み、乗数の積は出力信号１３６の望ましい周期を定める。
【００５２】
一実施形態において、データワード１３２ａは、２７ビットワードであり、最初の６ビットは、乗数の整数を表し、他の２１ビットは、乗数の端数を表す。２７ビットを使用することで、ユーザは、１ｐｐｍより優れた精度で出力信号１３６の周波数を定義できる。例えば、基準クロック入力１２８の半分の周期（即ち、二倍の周波数）である出力信号１３６について、データワード１３２ａは、００００００．１００００００００００００００００００００となる。基準クロック入力１２８の四分の一の周期（即ち、四倍の周波数）である出力信号１３６について、データワード１３２ａは、００００００．０１０００００００００００００００００００となる。別の例において、基準クロック入力１２８の２．２５倍（即ち、０．４４４４４４．．．．倍の周波数）である出力信号１３６では、データワード１３２ａは、００００１０．０１０００００００００００００００００００となる。
【００５３】
乗数データワード１３２ａは、基準クロック信号１２８と相対的に、次の立ち上がりエッジが発生する時期を決定するために、周期積分モジュール５００によって使用される。図６は、周期積分モジュール５００を更に詳細に表している。乗数データワード１３２ａは、二つの成分、即ち、ｎ倍モジュール６００と加算器６３２’とに入力される。乗数データワード１３２ａは、基準クロック信号１２８に関して、第一の立ち上がりエッジである位相０及び第二の立ち上がりエッジである位相２として望ましい遷移を計算するために、これらの成分６００、６３２’にそれぞれ使用される。ｎ倍モジュール６００は、一実施形態においてＩＣに物理的に組み込まれた定数によって、乗数データワード１３２ａを乗算する。定数は、下で説明するように、様々な条件で異なる。使用される定数は、設計の要件によって決定される。
【００５４】
説明のための例において、選択される定数は、２（通常の条件）、６（キャッチアップモード用）、及び１１（同期モード用）である。通常の条件下では、位相０の計算で一つおきの立ち上がりエッジが計算されるため、ｎ倍モジュール６８０は、乗数データワード１３２ａを２で乗算する。下で説明するように「キャッチアップ」は、代数モジュール１０８’が何らかの形で計算を誤り、既に発生している必要なエッジを要求するモードである。結果として、キャッチアップモジュール１２０５（図１２）は、代数モジュール１０８’が遅れを取り戻し、将来発生する必要なエッジを要求できるまで、ＲＩＳＥクロック５４０を更に高速で動作させる。したがって、通常の条件下で使用される２より大きな定数は、遅れを取り戻す時間を許容するために必要となる。同期モードでは、同期信号の後、代数モジュール１０８’が遷移エッジを配置する前に発生するレイテンシ期間が存在する。このレイテンシ期間は、同期モジュール３０４が「シームレス」な同期を発生させるために遷移エッジを配置できる時期を計算するのに必要な時間を表す。定数は、このレイテンシ期間に応答して、精密かつ正確に決定される必要がある。
【００５５】
通常の条件又はキャッチアップモードにおいて、ｎ倍モジュール６００の出力は、加算器６２８に送信される。この出力は、通常の条件又はキャッチアップモードのいずれかである適正モードのための定数によって乗算された乗数データワード１３２ａである。適正モードは、キャッチアップモジュール１２０５から受領した入力信号６０４によって決定され、入力信号６０４は、任意波形発生器１００’がキャッチアップモードであるかどうかを示す。同期モードでは、同期モード用定数に乗数データワード１３２ａを乗算した結果である出力が、加算器６２４に送信される。
【００５６】
ｎ倍モジュール６００の出力は、加算器６２８において、レジスタ６１６に格納された現行値に加算される。レジスタ６１６に格納される現行値は、現在の位相０エッジを表す。通常の条件下において、加算器６２８の出力は、現在の位相０エッジに、基準クロック信号１２８に関して望ましい周期の二倍を追加したものとなる。これは、次の位相０エッジを表し、ＭＵＸ６０８を通じて伝搬し、次のＲＩＳＥクロック信号５４０で、レジスタ６１６にクロックされる。ＭＵＸ６０８は、同期モジュール３０４から受領した切替信号５９６に基づいて、加算器６２４又は加算器６２８の選択を行う。通常の条件下では、加算器６２８の出力が選択される。このループ（例えば、レジスタ６１６のコンテンツをｎ倍モジュール６００の出力に追加し、次のＲＩＳＥクロック５４０で格納すること）は、次の奇数の立ち上がりエッジ遷移を決定するために繰り返される。
【００５７】
位相２信号の決定（及び応答する回路）は、僅かに異なる。レジスタ６１６は、現在の位相０エッジを含む。次の（例えば、第二の）立ち上がりエッジを計算するために、レジスタ６１６の出力（即ち、第一の立ち上がりエッジ）は、加算器６３２’に送信され、基準クロック１２８（即ち、乗数データワード１３２ａ）に関して望ましい期間が追加される。加算器６３２’の出力は、第二の（例えば、偶数の）立ち上がりエッジの値を表す。加算器６３２’の出力は、次の反転クロックパルスＲＩＳＥｂ５４０’において、レジスタ６２０’にクロックされる。反転クロックパルスＲＩＳＥｂ５４０’は、位相０と１８０度の位相差を有するエッジを生成する位相２チャネルにおける厳しいタイミング要件を満たすために使用される。乗数データワード１３２ａは、（第一及び／又は第二及び／又は第三等の）各立ち上がりエッジ計算において変化させることができる。したがって、周期を各立ち上がりエッジにより変化させ、任意波形を生成することができる。
【００５８】
再び図５を参照すると、周期積分モジュール５００の出力は、加算器５７２に送信される。上記のように、周期積分モジュール５００の出力は、基準クロック１２８に関して、次の奇数遷移エッジが必要となる時期を表す。加算器５７２に対する別の入力は、現行クロック時間５０８である。クロック領域転送モジュール２１２から受領した現行クロック時間５０８は、次の奇数遷移エッジの配置前に、残存するクロックパルス１２８の数及び端数を決定するために、次の奇数遷移エッジから減算される。図６に示したように、次の偶数遷移エッジのための周期積分モジュール５００の出力は、同一の加算器５７２’（図示せず）に送信される。次の奇数遷移エッジを計算するための図５に図示した回路は、次の偶数遷移エッジを計算するためのものとほぼ同一である。違いの一つは、全てのレジスタ５１２’、５１６’、５２０’、５２４’、５２８’、５３２’、５３６’がＲＩＳＥｂクロックパルス５４０’によってクロックされることである。
【００５９】
ユーザは、望ましいエッジの位相をシフトできる。これは、代数データ入力信号１３２の一部である第二のデータワード１３２ｂによって達成される。一実施形態において、第二のデータワード１３２ｂは、２１ビット符号付きワードであり、最初の８ビットは、整数の基準クロック周期を表し、他の１３ビットは、端数の基準クロック周期を表す。出力信号の位相は、１２８の基準クロック周期まで、順方向（正の場合等）又は逆方向（負の場合等）にシフトできる。同期モードである場合、位相シフトは、最後の同期入力３００に関するものとなる。
【００６０】
第二のデータワード１３２ｂを使用して位相シフト入力が要求された場合、位相シフトは、レジスタ５３２に格納され、加算器５７２に追加される。加算器５７２の出力は、基準クロック１２８の周期単位での、現在のマスタクロック信号５０８を超えた次のエッジの位置である。加算器５７２の出力は、各ＲＩＳＥクロックパルス５４０においてレジスタ５２０にクロックされる。この値は基準クロック１２８に関するものであるため、乗算器５７６によってループ１０４’のラップ及びタップの単位に変換する必要がある。乗算器５７６は、現在の平均ループ速度（即ち、基準クロックパルス１２８当たりのタップ）であるレジスタ５１２の出力によってレジスタ５２０の出力（即ち、基準クロック１２８に関するΔエッジの配置）を乗算する。結果は、ループ１０４’のラップ及びタップに関する、現在のマスタクロック信号５０８からの次のエッジの時間となる。この結果（即ち、乗算器５７６の出力）は、ＲＩＳＥクロックパルス５４０において、レジスタ５２４にクロックされる。
【００６１】
一実施形態において、乗算器５７６は、１７ビット掛ける１７ビットのフラッシュ乗算器である。加算器５７２の出力は、一実施形態において２１ビットであり、バレルシフタ（図示せず）が、加算器５７２とレジスタ５２０との間において直列で使用される。バレルシフタは、バイナリ表現を１７ビットに低減するために、加算器５７２の出力からの四つまでの先行する（例えば、ＭＳＢの）ゼロをシフトし、シフトされたゼロの実際の数は相対的なループ速度に応じて決まる。
【００６２】
ラップ及びタップの数によって望ましいエッジ時間を表すレジスタ５２４の出力は、加算器５８０ａに送信され、ループ１０４’の現在の状態に追加され、次のエッジ配置の絶対位置が決定される。一実施形態において、合計は、レジスタ５３６に格納された値を追加することで、更に位相シフトできる。レジスタ５３６に格納される値は、代数データ入力信号１３２の一部である第三のデータワード１３２ｃとして受領される。位相シフトは基準クロック信号１２８ではなくタップに関するものであるため、システム内の伝搬遅延は、第三のデータワード１３２ｃ入力を使用して、正確に相殺することができる。
【００６３】
加算器５８０の出力は、定数５５０の追加のために、加算器５８４に送信される。定数５５０は、実施の選択によって決定される。例えば、チップのレイアウトによって決定可能であり、エッジのフリップフロップ１２１５、１２２０での最大のセットアップ／ホールドマージンが可能となるように選択される。定数５５０は、選択されたタップ遷移をウィンドウの中心に置くために、既知の伝搬遅延（例えば、タップ単位）に基づいたものとなる。定数５５０は、ラップの選択のみに影響し、タップの選択には影響しない。加算器５８４の出力は、ＲＩＳＥクロックパルス５４０において、レジスタ５２８にクロックされる。レジスタ５２８に格納される値５６０は、次のエッジ遷移を選択するために使用されるラップ及びタップの値５６０である。レジスタの値５６０は、スイッチモジュール１１２と、微小遅延モジュール３１０と、出力モジュール１１４とに送信され、出力信号１３６における次の偶数立ち上がりエッジ（位相０信号）遷移のための適正エッジ遷移が選択される。
【００６４】
位相２信号回路は、同様に、次の奇数立ち上がりエッジ遷移の値を格納するレジスタ５２８’を有する。一実施形態において、応答する偶数及び奇数の立ち下がりエッジ（位相１信号及び位相３信号）を形成する回路は、レジスタ５２８及び５２８’のコンテンツを加算する加算器（図示せず）で構成される。代数モジュール１０８は、二つの立ち上がりエッジ間の半分の時間に応答する値を取得するために、加算器の出力を二つに分割する。別個の加算器が、偶数及び奇数立ち下がりエッジを形成する。別の実施形態では、図５に示したものと同様の回路で第四のデータワード１３２ｄ（図示せず）を使用して、第四のデータワード１３２ｄに基づいて、偶数及び奇数立ち上がりエッジ間のどこかに立ち下がりエッジを配置できる。
【００６５】
遷移エッジの配置の計算において、代数モジュール１０８’は、ループ平均化モジュール２１２とクロック領域転送モジュール５０４とを使用する。図７は、ループ平均化モジュール２１２を更に詳細に表している。ループ平均化モジュール２１２は、基準クロック信号１２８を受領し、情報をレジスタ７００、７１２、７３４、７５０にクロックする。ループ平均化モジュール２１２は、更に、状態捕捉モジュール２０４’から格納済み状態情報２２０を受領する。上記のように、格納済み状態情報２２０は、ラップカウンタ２００の状態と、基準クロック１２８遷移での捕捉時に遷移が伝搬し通過した最後のタップとを含む。ループ平均化モジュールは、ループの平均速度を基準クロック１２８当たりのタップの単位で計算する。ループ平均化モジュール２１２は、更に、最新の基準クロックパルス１２８におけるループの平均化された位置、或いは言い換えれば、最新の基準クロックパルス１２８におけるループの瞬間位相を計算する。
【００６６】
ループ平均化モジュール２１２の平均ループ速度の部分は、減算素子７０４の正の入力において、現在の格納済み状態情報を受領する。レジスタ７００は、以前の基準クロックパルス１２８での格納済み状態情報２２０の値を格納する。減算素子７０４は、負の入力において、レジスタ７００に格納された値を受領する。減算素子７０４の出力は、差異を表し、一つの基準クロック１２８周期中に遷移が伝搬し通過したタップの数となる。この値は、レジスタ７１２に格納される。一実施形態では、演算素子７１６、７２０を使用し、６４のループ速度値（例えば、減衰時定数＝６４）により、レジスタ７１２に格納されたループ速度値を平均化して、平均ループ速度を取得する。６４のクロックパルスによる平均化は、シンセサイザの全体的な精度に一致するループ速度の精度を提供するための設計上の選択である。別の実施形態において、平均化に使用される基準クロックパルス１２８の数は異なる。
【００６７】
平均速度は、レジスタ７３４に格納され、クロック領域転送モジュール５０４と同期モジュール３０４とに提供される。一実施形態では、ＭＵＸ７３０を使用して、現行ループ速度が基準クロックパルス１２８当たり８タップより大きく平均ループ速度から変化した場合、最新のループ速度をレジスタ７３４に切り替える。これにより、平均をリセットするためのループ速度の急変が可能となり、スタートアップ中に発生する可能性がある大きな過渡状態が最小化される。８タップより大きな変動は、設計上の選択であり、設計の目的を満たすために変更できる。
【００６８】
図示していない別の実施形態において、平均ループ速度５６４は、リングオシレータ１０４に電力を供給する電源における変動を補正するために更に調整される。この変動は、他の回路を通じて除去されない周波数でのノイズによるものである。増幅回路（図示せず）は、変動の電圧レベルを、補正回路で使用可能なレベルまで拡大する。補正回路（図示せず）は、電源電圧の増幅済み変動（ノイズ等）を測定し、この変動をデジタル化する（例えば、Ａ／Ｄコンバータを通じてノイズ信号を送信する）。補正回路は、計算された平均ループ速度５６４を調整するために、デジタル変動信号をループ平均化モジュール２１２に送信する。変動は線形従属（即ち、電圧の増加がループ速度を増加させる）であるため、計算された平均ループ速度５６４は、相応に調整される。デジタル変動信号は、この技術で知られた任意の手法を使用して、必要に応じて拡大縮小できる。デジタル変動信号において多くのビットを使用することで、補正の精度は増加する。別の実施形態において、補正回路は、電源の変動を補正するために、デジタル変動信号を代数モジュール１０８に送信する。
【００６９】
ループ平均化モジュール２１２の平均化位置（即ち、瞬間位相）部分は、タップの断片において計算されたループ位置を追跡し、経時的に位置を平均化する。計算済み平均位置は、精度を高めるために使用される。ループ平均化モジュール２１２の平均ループ位置の部分は、減算素子７３８の正の入力において、現在の格納済み状態情報２２０を受領する。減算素子７３８は、負の入力において、計算済み平均ループ位置を受領し、計算済み平均ループ位置はレジスタ７に格納されたコンテンツの出力であり、加算器７５８においてレジスタ７３４に格納された平均ループ速度に追加される、以前の計算済み平均ループ位置である。差異、即ち、減算素子７３８の出力は、実際のループ位置と計算済み平均ループ位置との間の差異である。一実施形態では、算術素子７４２及び７４６を使用して、３２の値で差異を平均化し、過去の３２の基準クロックパルス１２８での差異の平均を取得する。３２以外の値を使用することが可能である。計算済み平均ループ位置は、レジスタ７５０に格納される。
【００７０】
一実施形態では、最新の計算済み平均ループ位置が実際のループ位置から８タップより大きく異なる場合、ＭＵＸ７５４を更に使用して、以前のループ位置をレジスタ７００に格納されたものに切り替える。これにより、平均をリセットするためのループ位相の急変が可能となり、スタートアップ中に発生する可能性がある大きな過渡状態が最小化される。８タップより大きな変動は、設計上の選択であり、設計の目的を満たすために変更できる。ＭＵＸ７５４の状態に応じて、レジスタ７５０の出力又はレジスタ７００の出力が、加算器７５８において、平均ループ速度５６４に追加され、計算済み平均ループ位置５６８が形成される。計算済み平均ループ位置５６８は、クロック領域転送モジュール５０４と同期モジュール３０４とに送信される。平均ループ速度信号５６４と、ｃｌｅａｎ＿ｃｎｔ＿ａｔ＿ｃｌｋ信号５６８とは、それぞれの時定数により正しいとされるものよりも精度の高い余分なビットを運ぶ。これは、体系的な丸め誤差からのＤＣバイアスが蓄積するのを回避するために行われる。
【００７１】
クロック領域転送モジュール５０４は、図８に更に詳細に表示されている。クロック領域転送モジュール５０４は、基準クロック１２８領域においてクロックされるループ平均化モジュール２１２から平均ループ速度５６４と計算済み平均ループ位置５６８とを受領する。クロック領域転送モジュール５０４は、基準クロック１２８領域の信号を、ＲＩＳＥクロック５４０領域の信号に転送する。クロック領域転送モジュール５０４は、ＲＩＳＥクロック５４０領域においてクロックする代数モジュール１０８’のレジスタ５１２、５１６（図５）に、安定した値を提供する。クロック領域転送モジュール５０４は、更に、基準クロック１２８領域のカウンタ６４０として開始され、ＲＩＳＥクロック５４０領域において動作する加算器に送信される、現行クロック時間５０８を提供する。図示した実施形態において、カウンタ６４０は、８ビットカウンタであり、最大値に到達するとゼロに戻る。図示した回路は、こうしたＲＩＳＥｂ（例えば、位相２回路）に対する信号を同時に訂正する。
【００７２】
基準クロック信号１２８から、ｈａｌｆ＿ｃｌｋ信号６４３が形成される。基準クロック信号１２８の周波数を二つに分割することで、ｈａｌｆ＿ｃｌｋ信号６４３が形成される。レジスタ６４４、６４８、６７６、６８０、６９０、６９２の第一の層は、基準クロック信号１２８によりクロックされる。レジスタ６４４、６４８、６７６、６８０、６９０、６９２の第一の層は、信号５０８、５６４、５６８が基準クロック１２８領域において正しく捕捉される状態を確保する。各信号５０８、５６４、５６８のための回路（即ち、伝搬パス）は、第一の層のレジスタ６４４及び６４８、６７６及び６８０、６９０及び６９２のペアをそれぞれ含む。各ペア６４４、６７６、６９０の一方のレジスタは、ｈａｌｆ＿ｃｌｋ信号６４３が正の状態にある時に有効となる。ペア６４４、６７６、６９０の他方のレジスタは、ｈａｌｆ＿ｃｌｋ信号６４３が負の状態にある時に有効となる。位相０遷移エッジの計算のためには、レジスタの第二の層のレジスタ６５２、６８２、６９４が使用される。第一の層のレジスタ６４４及び６４８、６７６及び６８０、６９０及び６９２のペアを使用することで、ＲＩＳＥクロック５４０領域のレジスタ６５２、６８２、６９４に対してクロックする時に、ペアの少なくとも一方のレジスタが安定した状態が確保される。安定性は、ＲＩＳＥクロック５４０領域のレジスタ６５２、６８２、６９４のクロック中に基準クロック信号１２８が遷移する場合にも保証される。各ＭＵＸ６６０、６８６、６９８は、クロック領域転送モジュール５０４の出力として、第一の層のレジスタ６４４及び６４８、６７６及び６８０、６９０及び６９２のペアのどれが使用されるかを決定する。使用されるものは、安定状態となる。ＭＵＸのチャネルの選択は、レジスタ６４１に格納されるｈａｌｆ＿ｃｌｋ６４３の状態によって行われる。このレジスタは、ＲＩＳＥクロック５４０がＲＩＳＥクロック５４０領域のレジスタ６５２、６８２、６９４にデータをクロックした後、何らかの遅延のある時点で、ｈａｌｆ＿ｃｌｋ信号６４３の状態を格納する。捕捉される際にｈａｌｆ＿ｃｌｋが遷移している時は常に、レジスタ６４１及び６４２’の出力は、予測不可能となる。しかしながら、第一の層の全てのレジスタは、この時点で安定状態となるため、ｍａｓｔｅｒ＿ｃｌｋ信号５０８とｃｌｅａｎ＿ｃｎｔ＿ａｔ＿ｃｌｋ信号５６８とのために同じものが選択される限り、選択されるものは問題とならない。図示した遅延は、この特性を保証するのに必要となる。
【００７３】
位相２（偶数遷移エッジ等）の計算には、同様の回路が使用される（即ち、レジスタ６５６’、６８４’、６９６’、６４２’及びＭＵＸ６６４’、６８８’、６９９’）。違いの一つは、全てのレジスタ６５６’、６８４’、６９６’、６４２’が、ＲＩＳＥｂ信号５４０’を使用してクロックされることである。図示した実施形態において、ループ平均化モジュール２１２から受領される平均ループ速度信号５６４は、２１ビットである。バレルシフタ６６８及び自動範囲素子６７２は、四つまでの先行ビットをシフトアウトし、信号を１７ビットに変換するのに使用される。
【００７４】
出力信号１３６の位相を決定するために同期信号が使用される場合（即ち、同期モード）、同期モジュール３０４は、次のエッジ遷移の時間を計算することに関与する。図９Ａは、同期モジュール３０４を更に詳細に表している。同期モジュール３０４は、同期入力３００と、平均ループ速度５６４と、計算済み平均位置５６８とをループ平均化モジュール２１２から受領する。同期モジュール３０４は、格納済み状態情報３３０を状態捕捉モジュール２０４から受領する。格納済み状態情報３３０は、ラップカウンタ２００の状態と、同期入力３００の遷移での捕捉時の最後の遷移済みタップとを含む。同期モジュール３０４は、シームレスな遷移エッジを配置可能な時間を表すｓｔａｒｔ＿ｉｎｔｅｇｒａｔｅ信号５９２を出力する。新たな位相の出力と古いものとを最低限の「不具合」で置き換えられる時に、同期モジュール３０４が正確なハーフサイクルを決定するため、エッジ遷移は、シームレスになる。同期モジュール３０４は、出力信号１３６を同期入力３００と同じ位相のものに切り替えるポイントとして、この遷移エッジを選択する。同期モジュール３０４は、切替信号５９６を生成し、周期積分モジュール５００に対して、必要なエッジ遷移が同期モジュール３０４によって計算されており、周期積分モジュール５００において置き換えるべきであることを示す。
【００７５】
シームレスなエッジ遷移の配置を計算するために、同期モジュール３０４は、減算素子８２０を使用して、以前の参照クロック１２８パルスの時点での計算済み平均位置５６８を格納済み状態情報３３０から減算する。減算素子８２０の出力は、基準クロック１２８と同期入力信号３００との間の位相シフトを、タップの単位で表す。三つのレジスタ８０８、８１２、８１６は、同期デバウンスモジュール８００が同期信号３００をデバウンスするのに要する時間である二つの追加基準クロック１２８パルスに渡って、以前の基準クロック１２８パルスの時点でのループ１０４’の計算済み平均位置５６８を保持するために使用される。
【００７６】
同期デバウンサモジュール８００は、図９Ｂに更に詳細に図示されている。ＸＯＲ素子９０４は、ユーザが同期入力信号３００の極性を設定することを可能にするオプション素子である。ｓｙｎｃ＿ｐｏｌ入力は、同期入力信号３００のアクティブな遷移に対して設定される。図示した実施形態において、デバウンス回路は、アクティブな立ち上がり同期入力信号３００のために設定される。ＸＯＲ素子９０４は、使用される同期入力信号３００の極性に関係なく、ＸＯＲ素子９０４の出力がアクティブな立ち上がり信号となる状態を確保する。ＡＮＤ素子９０８により、ユーザは、同期モードを有効化及び無効化できる。ｓｙｎｃ＿ｅｎａｂｌｅが無効である場合（例えば、ロー状態）、同期パルスは、同期デバウンサモジュール８００を通じて伝搬しない。
【００７７】
同期デバウンサモジュール８００は、ｓｙｎｃ＿ｂｕｆｆ信号９５０を出力する。ｓｙｎｃ＿ｂｕｆｆ信号９５０は、周期積分モジュール５００の出力を捕捉するレジスタ８３２（図９Ａ）をクロックするのに使用され、同期パルス３００の時点での次の望ましい遷移エッジ、位相０及び位相２を表す。ｓｙｎｃ＿ｂｕｆｆは、状態捕捉モジュール２０４’に対する同期入力を提供する。論理素子９３６は、同期入力３００が遷移した時点からフリップフロップ９１２への第一のＤ入力が状態を変化させるまでの間のみ、ｓｙｎｃ＿ｂｕｆｆ信号を継続させる。遅延９４４は、モジュール２０４’に対する同期入力がＤフリップフロップ９１２でのエッジに先行する状態を確保するために追加される。ｓｙｎｃ＿ｂｕｆｆ信号９５０のための時間枠は狭く、ＳＹＮＣ信号がエラーなしでｒｅｆ＿ｃｌｋ１２８のエッジに自然に近づくことを可能にする。レジスタ８３２が情報を格納し、第一のＤフリップフロップが状態を変化させると、次のＤフリップフロップ９１６が、後続の基準クロック１２８パルスにおいて状態を変化させる。ＡＮＤ素子９２４は、同期パルス（即ち、ＡＮＤ素子９０８の出力）がハイであり、第一のＤフリップフロップ９１２がハイ状態に変更されており、第二及び第三のＤフリップフロップ９１６、９２０がロー状態である場合、ハイ状態にのみ切り替わる。後続の基準クロック１２８パルスにおいてＡＮＤ素子９２４の出力がハイである場合、第二のＤフリップフロップ９１５の出力は、ハイ状態へ変化する。これにより、安定した（即ち、デバウンスした）同期信号９００（「ＳＹＮＣｓｙｎｃ」）が形成される。二つの基準クロックパルスよりも継続時間が短いＳＹＮＣ信号は見られないことになる。ＳＹＮＣｓｙｎｃ信号９００は、基準クロック１２８の一周期に渡って継続する。ＮＡＮＤ素子９２８、９３２と第三のＤフリップフロップ９２０は、ＳＹＮＣｓｙｎｃ信号９００に続く次のクロックパルスにおいて、第二のＤフリップフロップ９１６が再度状態を変化させることを確保する。第二のＤフリップフロップ９１６が再度状態を変化させる時、ＳＹＮＣｓｙｎｃ信号９００は終了する。
【００７８】
図９Ａを参照すると、ＳＹＮＣｓｙｎｃ信号９００は、レジスタ８２４を有効化するために使用される。レジスタ８２４は、ＳＹＮＣｓｙｎｃ信号９００に続く次の基準クロック１２８パルスで減算素子８２０の出力を格納する。ＳＹＮＣｓｙｎｃ信号９００は、更に、ＳＹＮＣｓｙｎｃ信号９００に続く次の基準クロック１２８パルスで平均ループ速度５６４を格納するレジスタ８５０を有効化するために使用される。リップル除算器８０４は、タップの単位であるレジスタ８２４内の格納済み位相シフト情報を、基準クロック１２８当たりのタップの単位である、レジスタ８５０内に格納された平均ループ速度によって除算する。結果は、基準クロック１２８と同期入力３００との間の差異を表し、単位は基準クロック１２８となる。
【００７９】
結果は、アナログ加算器８４０の正の入力に送信される。レジスタ８２８に格納される現在のクロック時間５０８も、アナログ加算器８４０の正の入力に送信される。定数３が、アナログ加算器８４０の負の入力に送信される。この定数は、同期デバウンサモジュール８００のための三つの基準クロック１２８のレイテンシを表し、したがって減算される。現在（即ち、切替時）の位相０エッジ配置は、アナログ加算器８４０の正の入力に送信される。レジスタ８３２に捕捉された位相０エッジ配置又は位相２エッジ配置のいずれかは、アナログ加算器８４０の負の入力に送信される。ＭＵＸ８３６は、遅延８５４に等しい何らかの時間周期でのＦＡＬＬｂ信号の状態に基づいて、使用されるべき信号を選択する。これは、ｓｙｎｃ＿ｂｕｆｆ信号９５０に先行するクロック領域間でのデータの非同期転送である。選択された信号は、同期パルス３００の時点での計算済み遷移エッジを表す。これは、同期モジュール３０４のレイテンシを補正するために、現在（即ち、切替時）の位相０エッジ遷移から減算される。アナログ加算器８４０の出力５９２は、周期積分モジュール５００（図６）のレジスタ６１２（図６）に送信される。出力５９２は、基準クロック１２８に関して同期入力３００と同じ位相である出力信号１３６のための第一のシームレスなエッジ遷移を表す。
【００８０】
Ｄフリップフロップ８５０、８５４、８５８は、切替が発生する前にリップル除算器８０４が解を出す状態を確保する遅延として使用される。Ｄフリップフロップ８６２、８６６は、切替信号を、周期積分モジュール８００内のレジスタが使用するクロックであるＲＩＳＥクロック５４０に合わせるために使用される。Ｄフリップフロップ８６６とＡＮＤ素子８５８とは、切替信号がＲＩＳＥクロック５４０の一周期のみで継続する状態を確保する。切替信号５９６は、ＭＵＸ６０８（図６）によって使用される。アクティブである時、ＭＵＸ６０８は、同期モジュール３０４からの計算済みエッジ遷移を含む加算器６２４の出力を選択する。次のＲＩＳＥクロック５４０において、計算済みエッジ遷移はレジスタ６１６にクロックされ（図６）、切替信号は、非アクティブになる。ＭＵＸ６０８は、次に、上で述べたように望ましい周期長を以前の遷移エッジに加算し続ける加算器６２８の出力からの選択を行う。
【００８１】
図５を参照して上で説明したように、基準クロック１２８に関して同期入力３００と同じ位相である出力信号１３６のための第一のシームレスなエッジ遷移は、周期積分モジュール５００からの出力である。この出力は、加算器５７２と乗算器５７６とに伝搬し、ここで、基準クロック１２８の周期からタップ数に変換される。エッジ遷移の計算は、その後、加算器５８０と加算器５８４とを通じて進行し、ここでＲＩＳＥクロック５４０パルスにおいて、レジスタ５２８に格納される。タップ及びラップによってエッジ遷移の配置を表すレジスタ５２８の出力５６０は、スイッチモジュール１１２に送信される。スイッチモジュール１１２は、この情報を使用して、ループ１０４’の望ましいタップを選択し、次のエッジ遷移を形成する。
【００８２】
図１０Ａ及び１０Ｂは、スイッチモジュール１１２を更に詳細に表している。図１０Ａは、位相０信号のためのエッジを選択するＭＵＸ１０００、１００３、１０１０の構成を表している。一実施形態では、１６対１タップ選択モジュール１００３を使用して、ループ１０４’の１６のタップの一つから遷移エッジを選択する。ラップ選択モジュール１００３は、五つの平衡ＭＵＸモジュール１０００で形成される。
【００８３】
図１０Ｂは、平衡ＭＵＸモジュール１０００を更に詳細に表している。平衡ＭＵＸモジュール１０００は、４対１ＭＵＸである。平衡ＭＵＸモジュール１０００は、ＮＡＮＤ素子１０１５、１０２０、１０２５、１０３０、１０３５と、容量遅延素子１０４０、１０４５、１０５０、１０５５とを含む。一実施形態において、容量遅延素子１０４０、１０４５、１０５０、１０５５は、この技術で知られているような、ＩＣにおいてキャパシタを形成する目的で設計されたＩＣライブラリセルを使用して実施される。容量遅延素子１０４０、１０４５、１０５０、１０５５のキャパシタンスは、信号が応答するパスに沿って伝搬する際に、信号の伝送の遅延を発生させる。平衡ＭＵＸモジュール１０００は、一実施形態において四つの入力のどれが選択されるかを定義する２ビット信号であるエッジ選択入力を受領する。ＮＡＮＤ素子１０１５、１０２０、１０２５、１０３０、１０３５は、要求されたエッジを選択し、出力に伝搬させるのに使用される。
【００８４】
ＮＡＮＤ素子１０１５、１０２０、１０２５、１０３０、１０３５は、図１０Ａに示したそれぞれの平衡ＭＵＸモジュール１０００ａ、１０００ｂ、１０００ｃ、１０００ｄ、１０００ｅ、１０００ｆ、１０００ｇ、１０００ｈ、１０００ｉ、１０００ｊについて同じとなる。しかしながら、容量遅延素子１０４０、１０４５、１０５０、１０５５は、図１０Ａに示したそれぞれの平衡ＭＵＸモジュール１０００ａ、１０００ｂ、１０００ｃ、１０００ｄ、１０００ｅ、１０００ｆ、１０００ｇ、１０００ｈ、１０００ｉ、１０００ｊについて異なる。これが必要となるのは、容量遅延素子１０４０、１０４５、１０５０、１０５５の値が二つの要素に基づいており、その値がそれぞれの平衡ＭＵＸモジュール１０００ａ、１０００ｂ、１０００ｃ、１０００ｄ、１０００ｅ、１０００ｆ、１０００ｇ、１０００ｈ、１０００ｉ、１０００ｊについて異なるためである。
【００８５】
第一の要素は、伝搬している遷移が正に向かう遷移（即ち、ロー状態からハイ状態）か、或いは負に進む遷移（即ち、ハイ状態からロー状態）かである。二種類の遷移は、ＮＡＮＤ素子１０１５、１０２０、１０２５、１０３０、１０３５とパス内のその他の素子とを、異なる速度で伝搬する。容量遅延素子１０４０、１０４５、１０５０、１０５５は、こうした二種類の速度を補正する。第二の要素は、タップからスイッチモジュール１１２及びスイッチモジュール１１２を通じてエッジが伝搬するパスが異なる長さを有することである。容量遅延素子１０４０、１０４５、１０５０、１０５５の値は、こうした異なるパス長を補正する。容量遅延素子１０４０、１０４５、１０５０、１０５５の値は、信号の極性或いは信号が伝搬する必要のあるパス長に関係なく、遷移がタップからスイッチモジュール１１２の出力に伝搬する時間が等しくなる状態を確保する。容量遅延素子１０４０、１０４５、１０５０、１０５５の値は、実施ハードウェアのレイアウトに応じて変化する。こうしたキャパシタは、更に、遅延素子１０４のループの任意の不規則性を補正する。
【００８６】
別の実施形態において、平衡ＭＵＸモジュール１０００の第一の各容量遅延素子１０４０、１０４５、１０５０、１０５５は、第二の応答する容量遅延素子１０４０ａ、１０４５ａ、１０５０ａ、１０５５ａ（図示せず）を有する。第二の応答する各容量遅延素子１０４０ａ、１０４５ａ、１０５０ａ、１０５５ａは、関連する容量遅延素子と並列になる（即ち、１０４０は１０４０ａと並列）。第一の容量遅延素子１０４０、１０４５、１０５０、１０５５のセットは、温度、プロセス、及び供給電圧の変動に同様に反応する。第二の応答する容量遅延素子１０４０ａ、１０４５ａ、１０５０ａ、１０５５ａのセットは、温度、プロセス、及び供給電圧の変動に同様に反応しない。これにより、温度、プロセス、及び供給電圧の変動に関して線形ではない遷移遅延における変動を、第二の応答する容量遅延素子１０４０ａ、１０４５ａ、１０５０ａ、１０５５ａにより補正できる。第二のセットの応答する容量遅延素子１０４０ａ、１０４５ａ、１０５０ａ、１０５５ａは、第一の容量遅延素子１０４０、１０４５、１０５０、１０５５のセットを実施するのに使用されたものとは異なるＩＣプロセスにより実施される。この技術で知られるいくつかの方法のいずれかを利用できる。
【００８７】
図１０Ａを再び参照すると、第一のタップ選択モジュール１００３ａは、ループ１０４’のタップから立ち上がり（即ち、正に向かう）遷移を受領するために使用され、キャリブレーション（即ち、容量遅延素子の値の選択）が行われる。第二のタップ選択モジュール１００３ｂは、ループ１０４’のタップから立ち下がり（即ち、負に向かう）遷移を受領するために使用され、キャリブレーション（即ち容量遅延素子１０４０、１０４５、１０５０、１０５５の値の選択）が行われる。選択されたタップが立ち下がりエッジであり、したがって、第二のタップ選択モジュール１００３ｂによって選択された場合は、インバータ１００５により反転される。ＭＵＸ１０１０は、代数モジュール１０８’から受領した入力に基づいて、どちらのタップ選択モジュール１００３ａ、１００３ｂが使用されるかを選択する。位相１、位相２、及び位相３信号は、それぞれ、応答するエッジを選択するために同様のＭＵＸの構成を有する。ＭＵＸ１０１０からの立ち上がりエッジは、常にアクティブなエッジとなる。
【００８８】
図１１は、微小遅延モジュールを更に詳細に表している。微小遅延モジュール３１０の目的は、ループ１０４’のタップ間の時間よりも小さな（即ち、図１Ｂに示した３００ピコ秒より小さな）時間の差動量によって、遷移エッジを遅延させることである。微小遅延モジュール３１０は、出力信号１３６でのエッジ遷移の配置の精度を高める。微小遅延モジュール３１０は、ＮＡＮＤ素子１１０５、１１１０、１１１５、１１２０、１１２５、１１３０、１１３５、１１４０と、容量遅延素子１１５０、１１５５、１１６０、１１６５、１１７０、１１７５とを含む。微小遅延モジュール３１０は、一実施形態において八つの可能なパスのどれが使用されるかを定義する３ビット信号であるエッジ選択入力を受領する。ＮＡＮＤ素子１１０５、１１１０、１１１５、１１２０、１１２５、１１３０、１１３５、１１４０は、請求されたエッジを選択及び伝搬させるために使用され、八つの可能なパスの一つを通じてエッジをルート指定する。任意波形発生器１００’は、代数モジュール１０８’が計算したそれぞれのチャネル（例えば、位相０、位相１、位相２、及び位相３）のための微小遅延モジュールを含む。対象となるエッジは、常に正に向かう状態で、微小遅延モジュール１０５に入り、退出する。
【００８９】
上記のように、容量遅延素子１１５０、１１５５、１１６０、１１６５、１１７０、１１７５は、各微小遅延モジュール３１０について異なるものにすることができる。しかしながら、好適な実施形態において、微小遅延素子の内部レイアウトは、全て同一であり、結果として同一の容量値が生じる。更に上記のように、各微小遅延モジュールは、応答する第二の容量遅延素子１１５０ａ、１１５５ａ、１１６０ａ、１１６５ａ、１１７０ａ、１１７５ａを含むことができる。一実施形態において、微小遅延モジュール１０８を通じた最も高速のパスでも、各タップ間の遅延時間より遙かに大きくなる。しかしながら、八つの可能な経路の任意の二つの間での遅延時間の差異は、各タップ間の遅延時間より小さい。微小遅延モジュールにより追加される遅延の大きな固定成分は、代数モジュール１０８’によって使用される定数５５０（図５）の一部と、（随意的に）代数モジュール１０８’の位相補正入力１３２ｃの一部によって補正される。微小遅延モジュール３１０の出力は、出力モジュール１１４に送信される。
【００９０】
出力モジュール１１４は、図１２において、更に詳細に表される。出力モジュールは、エッジフリップフロップ１２１５、１２２０と、ウィンドウモジュール１２１０とを含む。これら三つのコンポーネント１２１５、１２２０、１２１０は、各チャネル（例えば、位相０、位相１、位相２、及び位相３）に含まれる。出力モジュール１１４は、更に、位相又はチャネル結合モジュール１２２５を含む。各チャネル（例えば、位相０、位相１、位相２、及び位相３）のための一対のエッジフリップフロップ１２１５、１２２０の出力は、位相又はチャネル結合モジュール１２２５に送信される。位相又はチャネル結合モジュール１２２５は、全てのチャネル信号（例えば、位相０、位相１、位相２、及び位相３）を結合し、単一の出力１３６にする。多数の出力が必要である場合、チャネルの様々な組み合わせを、各出力のためのそれぞれのチャネル結合モジュール１２２５によって結合する。出力モジュール１１４は、更に、キャッチアップモジュールを含む。一実施形態において、キャッチアップモジュールは、立ち上がりエッジチャネル（例えば、位相０、位相２）のみを含む。
【００９１】
キャッチアップモジュール１２０５、ウィンドウモジュール１２１０、及び一対のエッジフリップフロップ１２１５、１２２０は、図１３において、更に詳細に表される。微小遅延モジュール３１０から受領された位相０エッジは、エッジＪＫフリップフロップ１２１５、１２２０の両方のためのクロックとして使用される。一対のエッジフリップフロップ１２１５、１２２０のＪＫ入力は、ウィンドウモジュールから受領される。一実施形態において、ウィンドウモジュール１２１０は、二つのコンパレータ１３３６、１３６０を有する。第一のコンパレータ１３３６は、代数モジュール１０８’によって計算されたラップを同じ位相のラップカウンタ２００ａと比較する。第二のコンパレータ１３６０は、代数モジュール１０８’によって計算されたラップを異なる位相のラップカウンタ２００ｂと比較する。代数モジュール１０８’によって計算されたラップがラップカウンタ２００と等しい時には、ウィンドウが開放される。一対のエッジフリップフロップは、ＡＮＤ素子１３７６又は１３８２によって微小遅延モジュール３１０から入力されたエッジ遷移をクロックするように設定される。ウィンドウ開放フリップフロップ１３４０又はフリップフロップ１３７２のいずれかが使用され、代数において計算された単一のビットに基づいてＭＵＸ１３４４によって選択される。ＸＯＲ素子１３４８、フリップフロップ１３５２、及びＮＡＮＤ素子１３５６は、望ましいエッジ遷移が一対のエッジフリップフロップ１２１５、１２２０をクロックするのに成功した後、ウィンドウをリセット及び閉鎖するために使用される。フリップフロップ１３６８とＡＮＤ素子１３６４とは、代数信号ｐｈ０＿ｗｉｎ＿ｏｐｅｎによって命令された時に、代用ウィンドウを形成するために使用される。代用ウィンドウは、例えばフリーループ自体よりも高い周波数等、高い周波数での波形シンセサイザの動作を可能にするために使用される。こうした状況において、望ましいループは、既に進行中であり、コンパレータ１３５０、１３３６を含むメカニズムを使用するには遅すぎる。代わりに、代用ウィンドウが、遅延を除いて即座に「開放」され、関連データを有効化できる。
【００９２】
第一のコンパレータ１３３６は、更に、代数モジュール１０８’によって計算されるラップがラップカウンタ２００ａの現在の値にレイテンシのマージンを追加したものより小さいかどうかを決定する。小さい場合には、代数モジュール１０８’は誤った計算を伝送したことになり、第一のコンパレータは、キャッチアップモジュール１２０５に信号を送る。キャッチアップモジュール１２０５は、代数モジュール１０８が過去に発生したラップを要求した時（即ち、要求されたラップが現在のラップより小さい時）、アクティブとなる。コンパレータ１３３６の出力は、過去のラップが要求されたことを示すものであり、キャッチアップモジュール１２０５のフリップフロップ１３０８に送信される。ループ１０４’の次の周期において、エラー信号は、フリップフロップ１３０８にクロックされる。フリップフロップ１３０８の出力は、ｐｈ０＿ｃａｔｃｈと記載されたもので、ＯＲ素子１３１２に送信される。位相２信号は、同様のキャッチアップモジュール１２０５’（図示せず）を有する。違いの一つは、フリップフロップ素子１３０９とＯＲ素子１３１０とが位相２キャッチアップモジュール１２０５’と共に含まれないことである。位相１及び位相３は、キャッチアップモジュール１２０５を有していない。位相２キャッチアップモジュール１２０５’のフリップフロップ１３０８’（図示せず）の出力も、ＯＲ素子１３１２に入力され、フリップフロップ１３０９に入力される。フリップフロップ１３０８’の変化に続くＲＩＳＥｂクロック５４０’パルスにおいて、フリップフロップ１３０９は、アクティブなキャッチアップ信号をＯＲ素子１３１０に出力する。ＯＲ素子１３１０は、アクティブなキャッチアップ信号６０４を、周期積分モジュール５００のｎ倍モジュール６００に出力する。上記のように、ｎ倍モジュール６００は、この信号を使用して、任意波形発生器がキャッチアップモードであるかを決定し、適正な乗数を適用する。キャッチアップモードである時、ＮＡＮＤ素子１３１６、１３２０、１３２４、１３２８と、ＡＮＤ素子１３３２とは、一対のエッジフリップフロップ１２１５、１２２０のセット及びリセット入力を使用して、フリーループ１０４’の四分の一の速度であるＲＩＳＥクロック５４０パルスを形成するために使用される。上記のように、キャッチアップモードは、代数モジュール１０８’のために代用の高速クロックを形成し、要求されたラップが将来において再度要求されるまで、プログラムされた周期を増加させる。この時点で、キャッチアップモジュール１２０５は、キャッチアップモードを終了させる（例えば、キャッチアップ信号６０４を非アクティブ状態に変更する）。復帰する時、回路は適正な位相で復帰する。
【００９３】
図１４を参照すると、出力モジュール１１４の位相又はチャネル結合モジュール１２２５は、三つの平衡ＸＯＲモジュール１５００ａ、１５００ｂ、１５００ｃと、四つの反転ドライバ素子１４０５、１４１０、１４１５、１４２０とを含む。第一の二つの平衡ＸＯＲモジュール１５００ａ、１５００ｂは、出力モジュール１１４から代数モジュール１０８’に送信され、上記のように、代数モジュール１０８’によって、計算用のクロックとして使用される。出力は、更に、出力信号１３６を形成するために、第三の平衡ＸＯＲモジュール１５００ｃに送信される。第一の平衡ＸＯＲモジュール１５００ａは、立ち上がりエッジチャネル信号（即ち、位相０、位相２）を受領する。次の平衡ＸＯＲモジュール１５００ｂは、立ち下がりエッジチャネル信号（即ち、位相１、位相３）を受領する。位相結合モジュール１２２５は、それぞれの信号（即ち、位相０、位相１、位相２、位相３）を結合するために使用される。位相結合モジュール１２２５は、信号（即ち、位相０、位相１、位相２、位相３）又は信号の極性に関係なく、一対のフリップフロップ１２１５、１２２０から出力信号１３６への遷移遅延時間が上手く同じになるように、平衡状態で結合を行う。
【００９４】
図１５は、平衡ＸＯＲモジュール１５００を更に詳細に示している。平衡ＸＯＲモジュール１５００は、六つのＮＡＮＤ素子１５０５、１５１０、１５１５、１５２０、１５２５、１５３０と、八つのインバータ１５３５、１５４０、１５４５、１５５０、１５５５、１５６０、１５６５、１５７０とを含む。平衡ＸＯＲモジュール１５００は、更に、容量遅延素子１５７５ａ、１５７５ｂ、１５７５ｃ、１５７５ｄ、１５７５ｅ、１５７５ｆ、１５７５ｇ、１５７５ｈを含む。容量遅延素子１５７５ａ、１５７５ｂ、１５７５ｃ、１５７５ｄ、１５７５ｅ、１５７５ｆ、１５７５ｇ、１５７５ｈは、図１４に示した平衡ＸＯＲモジュール１５００ａ、１５００ｂ、１５００ｃのそれぞれについて異なる。上記のように、容量遅延素子１５７５ａ、１５７５ｂ、１５７５ｃ、１５７５ｄ、１５７５ｅ、１５７５ｆ、１５７５ｇ、１５７５ｈは、各入力のための異なるパス長と、入力が立ち上がりエッジ又は立ち下がり遷移を扱うかどうかとを補正するために異なるものとなる。同じく上記のように、各平衡ＸＯＲモジュールは、一組の応答する第二の容量遅延素子１５７５ａａ、１５７５ａｂ、１５７５ａｃ、１５７５ａｄ、１５７５ａｅ、１５７５ａｆ、１５７５ａｇ、１５７５ａｈを含むことができる。
【００９５】
説明のための例として、図１６は、七ナノ秒の周期（即ち、約１４３ＭＨｚ）を有する方形波である出力信号１３６’’を出力する任意波形発生器１００’’のタイミング図を表している。タイミング図は、代数モジュール１０８’’が二つの交互性立ち上がりエッジ（即ち、位相０及び位相２）と二つの交互性立ち下がりエッジ（即ち、位相１、位相３）との計算のための並列回路を含む任意波形発生器１００’’を表している。タイミング図は、スイッチモジュール１１２’’への入力から出力モジュール１１４’’に向かう各信号を示している。
【００９６】
「１６：１  ＭＵＸ」と記載されたブロックは、タップ選択モジュール（例えば、図１０Ａのタップ選択モジュール１００３ａ）を通じた伝搬時間を表す。「サイン」と記載されたブロックは、正（即ち、立ち上がりエッジ）のタップ選択モジュール（例えば、図１０Ａの１００３ａ）又は負（即ち、立ち下がりエッジ）のタップ選択モジュール（例えば、図１０Ａの１００３ｂ）の間で選択を行うＭＵＸサイン選択（図１０ＡのＭＵＸ１０１０）を通じた伝搬時間を表す。「バーニア」と記載されたブロックは、微小遅延モジュール（例えば、図１１の微小遅延モジュール３１０）を通じた伝搬時間を表す。バーニアブロックの前のエッジ上の二重線は、微小遅延モジュール３１０を通じた可変伝搬を表す。「ＪＫフロップ」と記載されたブロックは、一対のエッジフリップフロップ（例えば、図１３のエッジフリップフロップ１２１５、１２２０）を通じた伝搬時間を表す。「ＪＫフロップ」と記載されたブロックの直後の「ＸＯＲ」と記載されたブロックは、第一の平衡ＸＯＲモジュール（例えば、図１４の位相０又は位相２信号のための平衡ＸＯＲモジュール１５００ａ或いは位相１又は位相３信号のための平衡ＸＯＲモジュール１５００ｂ）を通じた伝搬時間を表す。「ＸＯＲ」と記載されたブロックの直後の「ＸＯＲ」と記載された次のブロックは、次のＸＯＲモジュール（例えば、図１４の平衡ＸＯＲモジュール１５００ｃ）を通じた伝搬時間を表す。「クロックツリー」と記載されたブロックは、クロックツリー（例えば、図１４に図示したクロックツリー）を通じた伝搬時間を表す。「ｏｕｔ＿ｃｌｋ」と記載された信号は、任意波形発生器１００’’によって出力される出力信号１３６’’を表す。
【００９７】
等価物
本発明は、その趣旨又は基本特性から逸脱することなく他の特定の形態で実施し得る。そのため、上記の実施形態は、あらゆる点で、本明細書で説明した本発明を限定するものではなく、例示するものとして見做されるべきである。したがって、本発明の範囲は、上記の説明ではなく、付記した請求項によって示される。そのため、請求項の等価物の意味及び範囲内に入る全ての変更は、本発明の範囲に包含されるものである。
【図面の簡単な説明】
【００９８】
【図１Ａ】本発明の一実施形態の高レベルブロック図
【図１Ｂ】図１Ａに示した自走ループオシレータのタップからの信号のタイミング図
【図２】追加モジュールを示す本発明の一実施形態の高レベルブロック図
【図３】図２に示した遅延素子モジュールの一実施形態の詳細ブロック図
【図４】本発明の別の実施形態の高レベルブロック図
【図５】本発明の代数モジュールの一実施形態の詳細ブロック図
【図６】図５に示した周期積分モジュールの一実施形態の詳細ブロック図
【図７】図５に示したループ平均化モジュールの一実施形態の詳細ブロック図
【図８】図５に示したクロック領域転送モジュールの一実施形態の詳細ブロック図
【図９Ａ】図５に示した同期モジュールの一実施形態の詳細ブロック図
【図９Ｂ】図９Ａに示した同期デバウンサモジュールの一実施形態の詳細ブロック図
【図１０Ａ】本発明のスイッチモジュールの一実施形態の詳細ブロック図
【図１０Ｂ】図１０Ａに示した平衡ＭＵＸモジュールの一実施形態の詳細ブロック図
【図１１】本発明の微小遅延モジュールの一実施形態の詳細ブロック図
【図１２】本発明の出力モジュールの一実施形態の詳細ブロック図
【図１３】図１２に示したキャッチアップモジュールと、ウィンドウモジュールと、エッジフリップフロップとの一実施形態の詳細ブロック図
【図１４】図１２に示した位相結合モジュールの一実施形態の詳細ブロック図
【図１５】図１４に示した平衡ＸＯＲモジュールの一実施形態の詳細ブロック図
【図１６】本発明の一実施形態を通じた信号伝搬のタイミング図
【図１Ａ】
2005522081.tif 000003
【図１Ｂ】
2005522081.tif 000004
【図２】
2005522081.tif 000005
【図３】
2005522081.tif 000006
【図４】
2005522081.tif 000007
【図５】
2005522081.tif 000008
【図６】
2005522081.tif 000009
【図７】
2005522081.tif 000010
【図８】
2005522081.tif 000011
【図９Ａ】
2005522081.tif 000012
【図９Ａ−１】
2005522081.tif 000013
【図９Ａ−２】
2005522081.tif 000014
【図９Ｂ】
2005522081.tif 000015
【図１０Ａ】
2005522081.tif 000016
【図１０Ｂ】
2005522081.tif 000017
【図１１】
2005522081.tif 000018
【図１２】
2005522081.tif 000019
【図１３】
2005522081.tif 000020
【図１３Ａ】
2005522081.tif 000021
【図１３Ｂ】
2005522081.tif 000022
【図１４】
2005522081.tif 000023
【図１５】
2005522081.tif 000024
【図１６】
2005522081.tif 000025
【図１６Ａ】
2005522081.tif 000026
【図１６Ｂ】
2005522081.tif 000027
【図１６Ｃ】
2005522081.tif 000028
【図１６Ｄ】
2005522081.tif 000029
【国際調査報告】
2005522081.tif 000030
2005522081.tif 000031