(57)【特許請求の範囲】
【請求項１】
パルス信号を遅延させる複数の遅延素子をリング状に直列接続した構造を有するリングオシレータ（２）と、
前記リングオシレータにおける前記パルス信号の周回数をカウントするカウンタ回路（３）と、
予め用意された基準クロックの周期に対する倍率で表された周期設定値を取得し、前記倍率の整数部をカウント値として、前記基準クロックをカウントとすることで、前記整数部が表す周期毎の粗周期タイミングを生成する粗周期生成部（７１）と、
前記倍率の小数点部を、前記パルス信号が前記遅延素子を通過する段数に換算することで端数を生成する端数換算部（７２）と、
前記リングオシレータおよび前記カウンタ回路の出力が、前記換算部で生成された端数に対応した値となるタイミングを、前記粗周期タイミングから前記端数に対応した時間だけ経過した出力タイミングとして選択し、該出力タイミングを用いて前記周期設定値が示す周期で発振する出力信号を生成する出力処理部（７３，８）と、
を備えることを特徴とするデジタル制御発振回路。
【請求項２】
前記出力処理部は、前記端数を、前記カウンタ回路の出力に対応した値を表すカウンタ位置および前記リングオシレータの出力に対応した値を表すオシレータ位置に分離し、前記カウンタ回路の出力が出力カウント値に一致した直後の前記出力オシレータ位置に対応する遅延素子が出力する信号のエッジを前記出力タイミングとして選択することを特徴とする請求項１に記載のデジタル制御発振回路。
【請求項３】
前記端数換算部は、前記粗周期タイミング毎に前記小数点部の値を累積加算した加算結果を求め、該加算結果または該加算結果が前記基準クロックの周期に相当する基準周期値を超える桁上状態にある場合に前記加算結果から前記基準周期値を減じた結果を、前記桁上状態にない場合には前記加算結果を、前記端数として生成し、
前記粗周期生成部は、前記端数換算部が前記桁上状態にある時に限り前記カウント値を１増加させることを特徴とする請求項１に記載のデジタル制御発振回路。
【請求項４】
予め用意された基準クロックの周期を、前記パルス信号が前記遅延素子を通過した段数で符号化することで前記基準周期値を生成する基準周期符号化部（５）を備えることを特徴とする請求項３に記載のデジタル制御発振回路。
【請求項５】
前記基準クロックとは非同期に入力される計測対象信号によって決まる計測対象期間の計測開始タイミングおよび計測終了タイミングのそれぞれについて、予め設定された起動タイミングから前記計測開始タイミングまでの間、および前記起動タイミングから前記計測終了タイミングまでの間に前記パルス信号が前記遅延素子を通過した段数に応じて符号化する計測対象符号化部と、
前記計測対象期間中に含まれる前記基準クロックの周期数をカウントするカウント部（６５）と、
前記基準クロックの周期毎のタイミングを基準タイミングとして、前記基準周期符号化部および前記計測対象符号化部での符号化結果に基づいて、前記計測開始タイミングから該計測開始タイミング後に最初に現れる前記基準タイミングまでの時間差を表す前端数、および前記計測終了タイミングから該計測終了タイミング後に最初に現れる前記基準タイミングまでの時間差を表す後端数を求め、前記前端数および前記後端数から、前記基準タイミングの周期を前記カウント部でのカウント値倍した期間と前記計測対象期間との差を表す端数データを求める端数演算部（６３，６４）と、
前記カウント部でのカウント値および前記端数データを、前記計測対象期間の長さを表す計測値として出力する計測値出力部（６７）と、
を備えることを特徴とする請求項４に記載のデジタル制御発振回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リングオシレータを用いて所望周期のクロックを生成する技術に関する。
【背景技術】
【０００２】
従来、推奨発振子などを用いて生成された周波数の安定した基準クロックの周期を、高速クロック信号によってカウントし、そのカウント値に基づいて、基準クロックの周期を逓倍又は分周したクロック信号を生成する技術が知られている（例えば、特許文献１参照）。なお、この技術では、パルス信号を遅延させる複数の遅延素子をリング状に接続したリングオシレータによって高速クロックを生成し、また、このリングオシレータが生成する高速クロックをカウントすることによって、出力となるクロック信号を生成している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−１８３８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、リングオシレータを構成する個々の遅延素子の遅延時間は、電源電圧の揺らぎや熱雑音等によって揺らぎ、その揺らぎが通過した遅延素子の数だけ蓄積される。このため、従来技術では、出力するクロック信号の周期が長くなるほど、その周期の揺らぎが大きくなってしまうという問題があった。
【０００５】
本発明は、こうした問題に鑑みてなされたものであり、周期の長さによらず精度の安定したクロックを生成する技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のデジタル制御発振回路は、リングオシレータと、カウンタ回路と、粗周期生成部と、端数換算部と、出力処理部とを備える。
リングオシレータは、パルス信号を遅延させる複数の遅延素子をリング状に直列接続した構造を有する。カウンタ回路は、リングオシレータにおけるパルス信号の周回数をカウントする。粗周期生成部は、基準クロックの周期に対する倍率で表された周期設定値を取得し、倍率の整数部をカウント値として、基準クロックをカウントとすることで、整数部が表す周期毎の粗周期タイミングを生成する。端数換算部は、倍率の小数点部を、パルス信号が遅延素子を通過する段数に換算することで端数を生成する。出力処理部は、リングオシレータおよびカウンタ回路の出力が、端数換算部で生成された端数に対応した値となるタイミングを、粗周期タイミングから端数に対応した時間だけ経過した出力タイミングとして選択し、該出力タイミングを用いて周期設定値が示す周期で発振する出力信号を生成する。
【０００７】
このような構成によれば、周期設定値の整数部に対応する粗周期タイミングを、周期が正確な基準クロックによって生成し、周期設定値の小数点部に対応する細かいタイミングをリングオシレータおよびカウンタ回路の出力によって生成し、この両者を組み合わせることで出力信号の生成に必要な出力タイミングが得られるようにされている。このため、リングオシレータを構成する各遅延素子の出力に含まれる揺らぎの蓄積を必要最小限に抑えることができ、ひいては最終的な出力信号が有する周期の揺らぎを抑制することができるため、精度のよい出力信号、即ち周期設定値が示す周期で発振するクロックを得ることができる。
【０００８】
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【０００９】
【図１】Ｗ−ＴＤＣ−ＤＣＯの構成を示すブロック図である。
【図２】時間計測回路（Ｗ−ＴＤＣ）の構成を示すブロック図である。
【図３】端数処理部の構成を示すブロック図である。
【図４】処理タイミング生成部の構成を示す回路図である。
【図５】処理タイミング生成部の動作を示すタイミング図である。
【図６】境界端数演算部の構成を示すブロック図である。
【図７】端数演算実行部での処理内容を示すテーブルである。
【図８】図７に示したテーブルの設定内容に関する説明図であり、（ａ）が通常検出状態でのタイミング、（ｂ）が遅延検出状態でのタイミングを示す。
【図９】端数補正値演算部の構成を示すブロック図である。
【図１０】周期端数演算部での処理内容を示すテーブルである。
【図１１】図１０に示したテーブルの設定内容に関する説明図であり、（ａ）は前端数が後端数より大きい場合、（ｂ）は前端数が後端数より小さい場合を示す。
【図１２】カウント値補正部の構成を示すブロック図である。
【図１３】補正演算部での処理内容を示すテーブルである。
【図１４】図１３に示したテーブルの設定内容に関する説明図であり、（ａ）がＰＭ１＿Ｂ＝０，ＰＭ１＝０の場合、（ｂ）がＰＭ１＿Ｂ＝１，ＰＭ１＝０の場合、（ｃ）がＰＭ１＿Ｂ＝０，ＰＭ１＝１の場合、（ｄ）がＰＭ１＿Ｂ＝１，ＰＭ１＝１の場合を示す。
【図１５】端数処理部の全体的な動作を示すタイミング図である。
【図１６】デジタル制御発振回路（ＤＣＯ）の構成を示すブロック図である。
【図１７】処理起動位置検出部の構成を示すブロック図である。
【図１８】処理起動位置検出部の動作を示すタイミング図である。
【図１９】処理起動位置検出部の動作を示すタイミング図である。
【図２０】周期換算／端数処理部の構成を示すブロック図である。
【図２１】周期換算／端数処理部の動作を示すタイミング図である。
【図２２】出力位置カウント値演算部の構成を示すブロック図である。
【図２３】出力処理部の構成を示すブロック図である。
【図２４】出力位置カウント値演算部および出力処理部等の動作を示すタイミング図である。
【図２５】カウンタ位置補正回路８２３および遅延回路８２６の動作に関する説明図である。
【図２６】デジタル制御発振回路の全体的な動作に関する説明図である。
【発明を実施するための形態】
【００１０】
以下に本発明が適用された実施形態について、図面を用いて説明する。
［１．全体構成］
図１に示すＷ−ＴＤＣ−ＤＣＯ１は、リングオシレータ２と、カウンタ回路３と、Ｗ−ＴＤＣブロック１０と、ＤＣＯブロック２０とを備える。このうち、リングオシレータ２、カウンタ回路３、Ｗ−ＴＤＣブロック１０は、時間計測回路（ＴＤＣ）１ａを構成する。また、リングオシレータ２、カウンタ回路３、ＤＣＯブロック２０は、デジタル制御発振回路（ＤＣＯ）１ｂを構成する。つまり時間計測回路１ａおよびデジタル制御発振回路１ｂは、リングオシレータ２およびカウンタ回路３を共用するように構成されている。
【００１１】
［２．リングオシレータ］
リングオシレータ２は、遅延素子として奇数個（本実施形態では１５個）の反転回路を使用し、これら反転回路を直列に接続し、かつ、最終段の出力を初段の入力とすることでリング状に接続されている。但し、初段の反転回路は、２入力のナンドゲート、それ以外はインバータゲートで構成されている。ナンドゲートの入力端のうち、リング状の接続に使用されない側の入力端は、外部から起動信号ＳＰを入力するための入力端子に接続されている。以下では、リングオシレータ２の出力を一括してＰ［１４：０］と表記する。但し、個々の反転回路の出力をＰ［ｉ］（ｉ＝０〜１４）と表記し、初段の反転回路の出力をＰ［０］、以下、反転回路の接続順に従って各出力をＰ［１］〜Ｐ［１４］とする。
【００１２】
このように構成されたリングオシレータ２では、起動信号ＳＰがロウレベルの時には、初段の反転回路の出力Ｐ［０］は、最終段の反転回路の出力Ｐ［１４］の信号レベルに関わらず常にハイレベルとなるため、出力Ｐ［０］〜Ｐ［１４］はいずれも変化せず停止した状態となる。この停止した状態での出力Ｐ［１４］はハイレベルとなる。また、起動信号ＳＰがロウレベルからハイレベルに変化するタイミングを起動タイミングとして、起動タイミングに続けて起動信号ＳＰのハイレベルが保持されると、初段の反転回路の出力Ｐ［０］がハイレベルからロウレベルに反転する。以下、各反転回路で遅延しながら、各反転回路の出力が反転し、出力Ｐ［１４］がロウレベルに変化する。すると、初段の反転回路の出力Ｐ［０］がハイレベルに変化することによって、信号レベルの反転エッジが周回し続けることになる。なお、反転エッジは、ロウレベルからハイレベルに変化するエッジと、ハイレベルからロウレベルに変化するエッジがある。そしていずれか一つの出力Ｐ［ｉ］に着目し、一方の反転エッジを先頭エッジとすると、パルス信号は、反転エッジが２周する毎、即ち反転回路３０段分の遅延時間を周期として出力されることになる。
【００１３】
［３．カウンタ回路］
カウンタ回路３は、リングオシレータ２の出力Ｐ［１４］をカウントクロックとして動作する９ビットのカウンタである。ここでは、出力Ｐ１４がロウレベルからハイレベルに変化するタイミングでカウントアップする。従って、カウンタ回路３のカウント値は、パルス信号が反転回路を３０段通過する毎に１増加する。また、カウント値が最大値に達した状態でカウントアップされるとカウント値は０に戻り、その後もカウント動作を継続するように構成されている。以下では、カウンタ回路３の出力をＲＣＮＴ［８：０］と表記する。
【００１４】
［４．Ｗ−ＴＤＣブロック］
Ｗ−ＴＤＣブロック１０は、第１符号化部４、第２符号化部５、端数処理部６を備え、図２に示すように、上述したリングオシレータ２、カウンタ回路３と共に、時間計測回路１ａを構成する。
【００１５】
［４．１．第１符号化部］
第１符号化部４は、ラッチ回路４１，４２，４３、エンコーダ４４、セレクタ４５、遅延回路４６を備える。なお、第１符号化部４は、公知の技術（例えば、特開平７−１８３８００号公報を参照）であるが、その概要について説明する。
【００１６】
ラッチ回路４１は、外部から入力される計測対象クロックＲＣＬＫの立ち上がりエッジのタイミングで、リングオシレータ２の出力Ｐ［１４：０］をラッチする。ラッチ回路４２は、同じく計測対象クロックＲＣＬＫの立ち上がりエッジのタイミングで、カウンタ回路３の出力ＲＣＮＴ［８：０］をラッチする。ラッチ回路４３は、計測対象クロックＲＣＬＫを遅延回路４６にて半周期分だけ遅延させたタイミングで、カウンタ回路３の出力ＲＣＮＴ［８：０］をラッチする。
【００１７】
エンコーダ４４は、ラッチ回路４１がラッチした結果から、リングオシレータ２を構成する反転回路の入出力が同一信号レベルとなっている箇所を特定し、該当する反転回路の位置と、同一となっている信号レベル（ハイレベルかロウレベルか）とに従って、０〜３０の値を表す２進数に符号化する。以下では、エンコーダ４４の出力をＥＮＣ［４：０］と表記する。
【００１８】
セレクタ４５は、エンコーダ４４の出力の最上位ビットＥＮＣ［４］の値に従い、ＥＮＣ［４］＝１の時にラッチ回路４２の出力を選択し、ＥＮＣ［４］＝０の時にラッチ回路４３の出力を選択する。以下では、セレクタ４５が選択した出力をＣＮＴ［８：０］と表記する。なお、このように異なるタイミングでラッチされたいずれかを選択的に使用するのは、値が不安定な状態でラッチされたカウント値を、後段の処理に供給してしまうことがないようにするためである。
【００１９】
第１符号化部４は、エンコーダ４４の出力ＥＮＣ［４：０］を下位ビット、セレクタ４５の出力ＣＮＴ［８：０］を上位ビットとする合計１４ビットのデータである第１計測出力ＤＲ［１３：０］を、計測対象クロックＲＣＬＫの立ち上がりエッジのタイミング毎に端数処理部６に供給する。
【００２０】
［４．２．第２符号化部］
第２符号化部５は、第１符号化部４と同様の構成をしているため、その詳細については説明を省略する。但し、計測対象クロックＲＣＬＫの代わりに、基準クロックＳＣＬＫが入力され、第１計測出力ＤＲ［１３：０］の代わりに、第２計測出力ＤＫ［１３：０］を、基準クロックＳＣＬＫの立ち上がりエッジのタイミング毎に端数処理部６に供給する。
【００２１】
なお、基準クロックＳＣＬＫは、水晶発振器の出力等から生成される安定性の高いクロックである。基準クロックＳＣＬＫの周期は、リングオシレータ２を構成する各反転回路の遅延時間の数十〜数百倍程度（例えば１００ｎｓ程度）に設定される。また、基準クロックＳＣＬＫの周期およびカウンタ回路３の出力のビット幅は、第１計測出力ＤＲ［１３：０］および第２計測出力ＤＫ［１３：０］によって表すことができる最大値に対応する時間が、基準クロックＳＣＬＫの周期の２倍以上となるように設定されている。更に、基準クロックＳＣＬＫは、計測対象クロックＲＣＬＫより十分に短い周期（例えば１／１００以下）となるように設定されている。以下では、第１計測出力ＤＲ［１３：０］および第２計測出力ＤＫ［１３：０］を単にＤＲ，ＤＫとも表記する。他の複数ビットを表す記号も同様である。
【００２２】
［４．３．端数処理部］
端数処理部６は、図３に示すように、処理タイミング生成部６１と、ＳＣＬＫ周期演算部６２と、境界端数演算部６３と、端数補正値演算部６４と、ＲＣＬＫ周期カウント部６５と、カウント値補正部６６と、出力部６７とを備える。
【００２３】
［４．３．１．処理タイミング生成部］
処理タイミング生成部６１は、図４に示すように、ラッチ回路６１１，６１２，６１３およびアンドゲート６１４を備える。ラッチ回路６１１は、計測対象クロックＲＣＬＫの立ち上がりエッジのタイミング（以下「ＲＣＬＫタイミング」という）で出力Ｓ１がハイレベルに変化する。ラッチ回路６１２は、基準クロックＳＣＬＫの立ち上がりエッジのタイミング（以下「ＳＣＬＫタイミング」という）で出力Ｓ１の信号レベルをラッチした出力Ｓ２を生成する。ラッチ回路６１３は、ＳＣＬＫタイミングで出力Ｓ２の信号レベルをラッチし、その信号レベルを反転させた出力Ｓ３を生成する。この出力Ｓ３は、ラッチ回路６１１のリセット端子に入力され、出力Ｓ３がロウレベルの時に、ラッチ回路６１１の出力Ｓ１をロウレベルにリセットする。アンドゲート６１４は、出力Ｓ１，Ｓ２がいずれもハイレベルの時にハイレベルを出力する。このアンドゲート６１４の出力が処理タイミング信号ＨＩＴとして各部に供給される。
【００２４】
このように構成された処理タイミング生成部６１では、図５に示すように、ＲＣＬＫタイミングで、出力Ｓ１がロウレベルからハイレベルに変化する。その後、最初のＳＣＬＫタイミングで、出力Ｓ２がロウレベルからハイレベルに変化し、これに伴って、処理タイミング信号ＨＩＴもロウレベルからハイレベルに変化する。これに続くＳＣＬＫタイミングで、出力Ｓ３はハイレベルからロウレベルに変化する。これに伴って、ラッチ回路６１１がリセットされることにより出力Ｓ１がハイレベルからロウレベルに変化し、更に、処理タイミング信号ＨＩＴもハイレベルからロウレベルに変化する。これに続くＳＣＬＫタイミングで、出力Ｓ２はハイレベルからロウレベルに変化し、出力Ｓ３はロウレベルからハイレベルに変化する。以後、ＲＣＬＫタイミングが再び現れるまで、この状態が維持される。
【００２５】
つまり、処理タイミング生成部６１が生成する処理タイミング信号ＨＩＴは、ＲＣＬＫタイミングが検出される毎に、その直後のＳＣＬＫタイミングでハイレベルに変化し、更に次のＳＣＬＫタイミングでロウレベルに変化する。即ち、基準クロックＳＣＬＫの１周期の間だけハイレベルが保持されることになる。以下では、この期間を処理対象期間ともいう。但し、計測対象クロックＲＣＬＫと基準クロックＳＣＬＫとは非同期に動作するため、ＲＣＬＫタイミングから最初のＳＣＬＫタイミングまでの期間が短いと、出力Ｓ２はその最初のＳＣＬＫタイミングで変化できずに、その次のＳＣＬＫタイミングでハイレベルに変化する場合がある。従って、この場合は、処理タイミング信号ＨＩＴは、ＲＣＬＫタイミングの検出後、２個目のＳＣＬＫタイミングから３個目のＳＣＬＫタイミングまでの間ハイレベルとなる。以下では、ＲＣＬＫタイミング検出後の最初のＳＣＬＫタイミングで処理タイミング信号ＨＩＴがハイレベルとなる場合を「通常検出状態」、２番目のＳＣＬＫタイミングで処理タイミング信号ＨＩＴがハイレベルとなる場合を「遅延検出状態」と呼ぶ。
【００２６】
［４．３．２．ＲＣＬＫ周期カウント部］
図３に戻り、ＲＣＬＫ周期カウント部６５は、処理タイミング信号ＨＩＴの立ち上がりエッジ毎に、前の立ち上がりエッジから今回の立ち上がりエッジまでの間に、基準クロックＳＣＬＫによってカウントされたカウント値を出力する。具体的には、処理タイミング信号ＨＩＴの立ち上がりエッジでカウント値を０にリセットし、以後、ＳＣＬＫタイミング毎にカウント値を１ずつインクリメントする。そして、次の処理タイミング信号ＨＩＴの立ち上がりエッジのタイミングで、カウント値を０にリセットすると共に、リセット直前の値をカウント結果として保持し、出力する。
【００２７】
［４．３．３．境界端数演算部］
境界端数演算部６３は、図６に示すように、ラッチ回路６３１、端数演算実行部６３２、二進補正部６３３を備える。ラッチ回路６３１は、ＳＣＬＫタイミングで第２計測出力ＤＫをラッチする。端数演算実行部６３２は、第１計測出力ＤＲ、第２計測出力ＤＫ、ラッチ回路６３１にラッチされた１クロック前の第２計測出力ＤＫＢの大小関係を比較し、その比較結果から図７に示すテーブルに従って、端数演算値ＳＵＢおよび第１補正値ＰＭ１を生成する。
【００２８】
端数演算値ＳＵＢは、ＲＣＬＫタイミングからその直後のＳＣＬＫタイミングまでの間に、リングオシレータ２においてパルス信号が反転回路を通過した段数を表す。そして、通常検出状態では、図８（ａ）に示すように、ＳＵＢ＝ＤＫ−ＤＲとなる。一方、遅延検出状態では、図８（ｂ）に示すように、ＳＵＢ＝ＤＫＢ−ＤＲとなる。
【００２９】
但し、第１計測出力ＤＲおよび第２計測出力ＤＫは、ＲＤＬフリーラン（リングオシレータ２およびカウンタ回路３の出力Ｐ，ＲＣＮＴが示す値）を、計測対象クロックＲＣＬＫおよび基準クロックＳＣＬＫの立ち上がりエッジのタイミングでラッチしたものである。また、ＲＤＬフリーランは、図８に示すように、０から上限値までの値を繰り返し、しかも、両クロックＲＣＬＫ，ＳＣＬＫのいずれとも同期していない。このため、ＤＫ，ＤＲ，ＤＫＢの大小関係は、必ずしもＤＫ≧ＤＲ、ＤＫＢ≧ＤＲとなるとは限らない。しかし、ＤＫ＜ＤＲ、ＤＫＢ＜ＤＲの場合は、ＤＫ，ＤＫＢの最上位ビットの更に上位ビットが１であるものとして上述の減算処理を実行し、端数演算値ＳＵＢが常に非負の値となるようにしている。
【００３０】
また、ＲＤＬフリーランの周期が基準クロックＳＣＬＫの周期の２倍以上に設定されていることにより、ＤＫ，ＤＲ，ＤＫＢとＲＤＬフリーランとの関係は、通常検出状態および遅延検出状態のいずれの場合も、３パターンずつに集約される。即ち、図８（ａ）に示すように、ＤＫＢ＜ＤＲ＜ＤＫ（実線の場合）、ＤＲ＜ＤＫ＜ＤＫＢ（点線の場合）、ＤＫ＜ＤＫＢ＜ＤＲ（一点鎖線の場合）であれば、通常検出状態であると判断することができる。また、図８（ｂ）に示すように、ＤＲ＜ＤＫＢ＜ＤＫ（実線の場合）、ＤＫＢ＜ＤＫ＜ＤＲ（点線の場合）、ＤＫ＜ＤＲ＜ＤＫＢ（一点鎖線の場合）であれば、遅延検出状態であると判断することができる。
【００３１】
また、ＲＣＬＫ周期カウント部６５では、カウントの開始／終了を処理タイミング信号ＨＩＴに従って行うため、遅延検出状態では、カウントの開始／終了が１クロック分遅れることになる。これを表すために第１補正値ＰＭ１は、通常検出状態ではＰＭ１＝０（カウント値の補正不要）に設定され、遅延検出状態ではＰＭ１＝１（カウント値の補正必要）に設定される。
【００３２】
二進補正部６３３は、端数演算実行部６３２で求められた端数演算値ＳＵＢを、二進数で表された値となるように補正する。即ち、カウンタ回路３の出力に基づく、第１計測出力ＤＲおよび第２計測出力ＤＫ（ひいては端数演算値ＳＵＢ）の上位９ビットの値ＳＵＢ＿Ｕは、下位４ビットで表される値が３０に達する毎に、１カウントアップされる値であることから、この上位９ビットが表す数値を２倍した値を、端数演算値ＳＵＢから減算した結果を、補正された端数演算値ＳＵＢ（←ＳＵＢ−ＳＵＢ＿Ｕ×２）として出力する。
【００３３】
［４．３．４．ＳＣＬＫ周期演算部］
図３に戻り、ＳＣＬＫ周期演算部６２は、第２計測出力ＤＫと、境界端数演算部６３から供給される１クロック前の第２計測出力ＤＫＢとに基づいて減算処理を行うことにより、基準クロックＳＣＬＫの周期を表すＳＣＬＫ周期演算値ＳＣＷ（＝ＤＫ−ＤＫＢ）を求める。但し、このＳＣＬＫ周期演算値ＳＣＷは、端数演算実行部６３２にて求められた端数演算値ＳＵＢと同様に、正確な二進数ではないため、二進補正部６３３と同様の処理を実行し、補正されたＳＣＬＫ周期演算値ＳＣＷを出力する。
【００３４】
［４．３．５．端数補正値演算部］
端数補正値演算部６４は、図９に示すように、ラッチ回路６４１、周期端数演算部６４２を備える。ラッチ回路６４１は、処理タイミング信号ＨＩＴがハイレベルの時に、ＳＣＬＫタイミングで端数演算値ＳＵＢをラッチする。実際には、処理タイミング信号ＨＩＴがハイレベルからロウレベルに変化する時のＳＣＬＫタイミングでラッチする。周期端数演算部６４２は、端数演算値（後端数）ＳＵＢとラッチ回路６４１にラッチされた前回の処理対象期間での端数演算値（前端数）ＳＵＢ＿Ｂとの大小関係を比較し、その比較結果から図１０に示すテーブルに従って、ＲＣＬＫ周期端数演算値ＲＣＨおよび第２補正値ＰＭ２を生成する。
【００３５】
ＲＣＬＫ周期端数演算値ＲＣＨは、計測対象クロックＲＣＬＫの１周期（計測対象期間）から、基準クロックＳＣＬＫの周期（以下「ＳＣＬＫ周期」という）の整数倍の時間を減算した結果として残るＳＣＬＫ周期未満の残り時間を表す値であり、その残り時間の間に、リングオシレータ２においてパルス信号が通過した反転回路の段数を表す。図１１に示すように、前端数ＳＵＢ＿Ｂは、計測対象期間の開始タイミングで検出される端数であり、後端数ＢＵＢは、計測対象期間の終了タイミングで検出される端数を表す。
【００３６】
そして、ＲＣＬＫ周期端数演算値ＲＣＨは、ＳＵＢ＿Ｂ≧ＳＵＢである場合、ＳＵＢ＿Ｂ−ＳＵＢで求められ（図１１（ａ）参照）、一方、ＳＵＢ＿Ｂ＜ＳＵＢである場合、ＳＣＬＫ周期演算値ＳＣＷを利用して、ＳＣＷ−（ＳＵＢ−ＳＵＢ＿Ｂ）で求められる（図１１（ｂ）参照）。
【００３７】
また、計測対象期間中の含まれる基準クロックＳＣＬＫの周期数は、ＳＵＢ＿Ｂ≧ＳＵＢである場合、ＲＣＬＫ周期カウント部６５でのカウント値と一致し（図１１（ａ）参照）、一方、ＳＵＢ＿Ｂ＜ＳＵＢである場合、ＲＣＬＫ周期カウント部６５でのカウント値から１を減じたものと一致する（図１１（ｂ）参照）。これを表すために第２補正値ＰＭ２は、ＳＵＢ＿Ｂ≧ＳＵＢの場合は、ＰＭ２＝０（カウント値の補正不要）に設定され、ＳＵＢ＿Ｂ＜ＳＵＢの場合は、ＰＭ２＝１（カウント値の補正必要）に設定される。
【００３８】
［４．３．６．カウント値補正部］
カウント値補正部６６は、図１２に示すように、ラッチ回路６６１、補正演算部６６２を備える。ラッチ回路６６１は、処理タイミング信号ＨＩＴがハイレベルの時に、ＳＣＬＫタイミングで第１補正値ＰＭ１をラッチする。実際には、処理タイミング信号ＨＩＴがハイレベルからロウレベルに変化する時のＳＣＬＫタイミングでラッチする。補正演算部６６２は、第１補正値ＰＭ１と、ラッチ回路６６１にラッチされた前回の処理タイミングでの第１補正値ＰＭ１＿Ｂと、第２補正値ＰＭ２とに基づき、図１３に示すテーブルに従って、ＲＣＬＫ周期カウント部６５で求められたカウント値ＣＴを補正することによって、ＲＣＬＫ周期カウント値ＲＣＣを生成する。
【００３９】
第１補正値ＰＭ１は、ＲＣＬＫタイミングでの処理タイミング信号ＨＩＴの検出状態が、通常検出状態（ＰＭ１＝０）か遅延検出状態（ＰＭ１＝１）かを表すものである。そして、計測対象期間の開始タイミングでの第１補正値ＰＭ１＿Ｂと、計測対象期間の終了タイミングでの第１補正値ＰＭ１との組み合わせで４パターンの補正が存在する。即ち、開始タイミング、終了タイミングのいずれもが通常検出状態（ＰＭ１＿Ｂ＝０，ＰＭ１＝０）の場合、図１４（ａ）に示すように、カウント値ＣＴは、開始タイミングの直後のＳＣＬＫタイミングからカウントが開始され、終了タイミングの直前のＳＣＬＫタイミングでカウントが終了する。この場合、カウント値ＣＴを補正する必要がない。開始タイミングが遅延検出状態、終了タイミングが通常検出状態（ＰＭ１＿Ｂ＝１，ＰＭ１＝０）の場合、図１４（ｂ）に示すように、カウント値ＣＴは、開始タイミング後の２個目のＳＣＬＫタイミングからカウントが開始され、終了タイミング直前のＳＣＬＫタイミングでカウントが終了する。この場合、開始タイミング直後の未カウント分を補正するために、カウント値ＣＴを１増加させる必要がある。開始タイミングが通常検出状態、終了タイミングが遅延検出状態（ＰＭ１＿Ｂ＝０，ＰＭ１＝１）の場合、図１４（ｃ）に示すように、カウント値ＣＴは、開始タイミングの直後のＳＣＬＫタイミングからカウントが開始され、終了タイミングの直後のＳＣＬＫタイミングでカウントが終了する。この場合、終了タイミング直後の不要なカウント分を補正するために、カウント値ＣＴを１減少させる必要がある。開始タイミング、終了タイミングのいずれもが遅延検出状態（ＰＭ１＿Ｂ＝１，ＰＭ１＝１）の場合、図１４（ｄ）に示すように、カウント値ＣＴは、開始タイミング後の２個目のＳＣＬＫタイミングからカウントが開始され、終了タイミングの直後のＳＣＬＫタイミングでカウントが終了する。この場合、開始タイミング直後の未カウント分、および終了タイミング直後の不要なカウント分を補正する必要がある。しかし、前者が１増加、後者が１減少で相殺されるため、結局、カウント値ＣＴを補正する必要はない。
【００４０】
第２補正値ＰＭ２は、端数補正値演算部６４で説明したように、ＰＭ２＝０であればカウント値ＣＴを補正する必要はなく、ＰＭ２＝１であれば、カウント値ＣＴを１減少させる必要がある。つまり、補正演算部６６２では、第１補正値ＰＭ１，ＰＭ１＿Ｂによる４パターンの補正と、第２補正値ＰＭ２による２パターンの補正とを組み合わせた合計８パターンの補正を実行することになる（図１３参照）。
【００４１】
［４．３．７．出力部］
図３に戻り、出力部６７は、ラッチ回路６７１，６７２，６７３を備える。
ラッチ回路６７１〜６７３は、いずれも処理タイミング信号ＨＩＴがハイレベルの時に、ＳＣＬＫタイミングでそれぞれの入力値をラッチする。但し、ラッチ回路６７１は、ＳＣＬＫ周期演算部６２で生成されたＳＣＬＫ周期演算値ＳＣＷを入力値とし、ラッチ回路６７２は、端数補正値演算部６４で生成されたＲＣＬＫ周期端数演算値ＲＣＨを入力とし、ラッチ回路６７３は、カウント値補正部６６で生成されたＲＣＬＫ周期カウント値ＲＣＣを入力値とする。
【００４２】
［４．３．８．端数処理部の動作］
このように構成された端数処理部６では、図１５に示すように、ＲＣＬＫタイミングおよびＳＣＬＫタイミングから生成された処理タイミング信号ＨＩＴに基づいて、カウント値ＣＴを生成する。また、処理タイミング信号ＨＩＴがハイレベルとなる処理対象期間の間に、端数処理部６を構成する各部が演算を実行して、第１計測出力ＤＲおよび第２計測出力ＤＫからＲＣＬＫ周期端数演算値ＲＣＨ、カウント値ＣＴを補正することでＲＣＬＫ周期カウント値ＲＣＣ、第２計測出力ＤＫからＳＣＬＫ周期演算値ＳＣＷを生成する。そして、処理対象期間の終了時のＳＣＬＫタイミングで各演算結果ＲＣＨ，ＲＣＣ，ＳＣＷをラッチして出力する。なお、ＳＣＬＫ周期演算値ＳＣＷは、例えば、ＲＣＬＫ周期端数演算値ＲＣＨを、基準クロックＳＣＬＫの周期を基準（例えば１）とした値に変換する際に使用される。
【００４３】
［５．ＤＣＯブロック］
図１に戻り、ＤＣＯブロック２０は、出力タイミング生成部７、出力処理部８を備え、上述したリングオシレータ２、カウンタ回路３と共に、デジタル制御発振回路１ｂを構成する。
【００４４】
ＤＣＯブロック２０は、出力指示信号ＰＴ、周期設定値ＣＤ［２３：０］、リングオシレータ２の出力Ｐ［１４：０］、カウンタ回路３の出力ＲＣＮＴ［８：０］、Ｗ−ＴＤＣブロック１０から供給されるＳＣＬＫ周期演算値ＳＣＷ［１３：０］、第２計測出力ＤＫ［１３：０］に従って、出力指示信号ＰＴがハイレベルに保持されている間、周期設定値ＣＤ［２３：０］に応じた周期を有するＤＣＯ出力ＰＯＵＴ，ＰＯＵＴ２を生成する。
【００４５】
なお、周期設定値ＣＤ［２３：０］は、ＤＣＯ出力ＰＯＵＴの周期を基準クロックＳＣＬＫの周期に対する倍率で表現した２４ビットの値である。但し、周期設定値の上位１４ビットＣＤ［２３：１０］を整数部、下位１０ビットＣＤ［９：０］を小数点部と呼び、整数部は、所望周期を基準クロックＳＣＬＫの周期で除算した結果の整数部分の値が設定され、小数点部は、上記除算した結果の小数点以下の値、即ち、基準クロックＳＣＬＫの１周期に満たない部分の大きさを、基準クロックＳＣＬＫの周期の１／２10を単位として表した値が設定される。
【００４６】
［５．１．出力タイミング生成部］
出力タイミング生成部７は、図１６に示すように、処理起動位置検出部７１、周期換算／端数処理部７２、出力位置カウント値演算部７３を備える。
【００４７】
［５．１．１．起動タイミング検出部］
処理起動位置検出部７１を、図１７、図１８、図１９を参照して説明する。処理起動位置検出部７１は、ＳＣＬＫ同期部７１１、開始信号生成部７１２、ＳＣＬＫカウント部７１３、起動信号生成部７１４を備える。
【００４８】
ＳＣＬＫ同期部７１１は、出力指示信号ＰＴを、基準クロックＳＣＬＫの立ち上がりエッジのタイミングであるＳＣＬＫタイミングでラッチすることで、基準クロックＳＣＬＫに同期した出力指示同期信号ＳＰＴを生成する。
【００４９】
開始信号生成部７１２は、出力指示同期信号ＳＰＴの立ち上がりエッジから、基準クロックＳＣＬＫで１クロック遅延したタイミングで立ち上がり、その後、基準クロックＳＣＬＫのクロック分ハイレベルを保持した後立ち下がる開始位置信号ＳＥＴＤを生成する。
【００５０】
ＳＣＬＫカウント部７１３は、開始位置信号ＳＥＴＤの立ち下がりタイミングで、周期設定値の整数部ＣＤ［２３：１０］の値Ｎをカウント値ＣＮＴＤ［１３：０］としてプリセットし、その後、ＳＣＬＫタイミングでカウント値ＣＮＴＤ［１３：０］をダウンカウントする。以後、ＳＣＬＫカウント部７１３は、起動信号生成部７１４が出力する起動位置信号ＤＩＮＴの立ち下がりタイミング毎に、カウント値ＣＮＴＤ［１３：０］をプリセットして、同様の処理を繰り返す。
【００５１】
起動信号生成部７１４は、周期換算／端数処理部７２からの端数値桁上信号ＣＲＤＬ、およびＳＣＬＫカウント部７１３のカウント値ＣＮＴＤ［１３：０］に従って、起動位置信号ＤＩＮＴを生成する。具体的には、ＣＲＤＬ＝０の場合、即ち桁上げなしの場合は、カウント値ＣＮＴＤ［１３：０］が１となるタイミングで起動位置信号ＤＩＮＴをハイレベルとし（図１８参照）、ＣＲＤＬ＝１の場合、即ち桁上げありの場合は、カウント値ＣＮＴＤ［１３：０］が０となるタイミングで起動位置信号ＤＩＮＴをハイレベルとする（図１９参照）。なお、端数値桁上信号ＣＲＤＬは、端数加算値ＤＣＯＡ［９：０］がＳＣＬＫの１周期分の値に達する毎、即ち、ＤＣＯＡ［１０］＝１となる毎に‘１’となる。
【００５２】
［５．１．２．周期換算／端数処理部］
次に、周期換算／端数処理部７２を、図２０、図２１を参照して説明する。周期換算／端数処理部７２は、端数保持部７２１、端数加算部７２２、周期換算部７２３、端数換算部７２４、周期加算部７２５、換算端数保持部７２６を備える。
【００５３】
端数保持部７２１は、処理起動位置検出部７１の起動信号生成部７１４が出力する起動位置信号ＤＩＮＴがハイレベルの時のＳＣＬＫタイミング、即ちＤＩＮＴの立ち下がりタイミングで、端数加算部７２２が出力する端数加算値ＤＣＯＡ［９：０］を保持する。但し、端数保持部７２１が保持する端数保持値ＤＣＯＳ［９：０］は、処理起動位置検出部７１の開始信号生成部７１２から出力される開始位置信号ＳＥＴＤがハイレベルの時、即ち、出力指示信号ＰＴが入力されることによって０にリセットされる。
【００５４】
端数加算部７２２は、周期設定値の小数点部ＣＤ［９：０］と、端数保持部７２１が保持する端数保持値ＤＣＯＳ［９：０］を加算する。その加算結果ＤＣＯＡ［１０：０］のうち、下位１０ビットを端数加算値ＤＣＯＡ［９：０］として出力し、残りの最上位ビットＤＣＯＡ［１０］を、端数値桁上信号ＣＲＤＬとして出力する。
【００５５】
周期換算部７２３は、端数加算部７２２が出力する端数加算値ＤＣＯＡ［９：０］に、ＳＣＬＫ周期演算値ＳＣＷ［１３：０］を乗じた結果を、換算値ＣＯＲＸ［２３：０］として出力する。
【００５６】
端数換算部７２４は、周期換算部７２３が出力する換算値ＣＯＲＸ［２３：０］を、所定値１０２４（＝２10）で除算した結果、即ち、下位１０ビットを除去した結果を端数換算値ＣＯＲＹ［１３：０］として出力する。
【００５７】
周期加算部７２５は、端数換算部７２４が出力する端数換算値ＣＯＲＹ［１３：０］に、ＳＣＬＫ周期演算値ＳＣＷ［１３：０］を加算した端数演算値ＣＯＲＺ［１３：０］を出力する。
【００５８】
換算端数保持部７２６は、起動位置信号ＤＩＮＴがハイレベルの時のＳＣＬＫタイミング、即ちＤＩＮＴの立ち下がりタイミングで、周期加算部７２５が出力する端数演算値ＣＯＲＺ［１３：０］をラッチし、換算端数保持値ＣＯＲ［１３：０］として出力する。
【００５９】
つまり、周期換算／端数処理部７２では、起動位置信号ＤＩＮＴのタイミング毎に、小数点部ＣＤ［９：０］の値を積算して端数加算値ＤＣＯＡ［９：０］を求め、その端数加算値ＤＣＯＡを、ＳＣＬＫ周期演算値ＳＣＷ［１３：０］を用いて、リングオシレータ２での遅延素子の通過段数に換算した換算端数保持値ＣＯＲ［１３：０］を求めている。
【００６０】
具体的には、図２１に示すように、小数点部ＣＤ［９：０］の値をＰ、ｉ番目の起動位置信号ＤＩＮＴのタイミング（以下、単に「ｉ番目のタイミング」という）でのＳＣＬＫ周期演算値ＳＣＷ［１３：０］の値をＢｉ、ｉ番目のタイミングでの端数加算値ＤＣＯＡ［９：０］の値をＡｉ、ｉ番目のタイミングでの換算端数保持値ＣＯＲ［１３：０］の値をＲｉとすると、Ｒｉは（１）式で求められる。但し、Ａｉは（２）式で求められＡｉの初期値はＡ０＝０である。
【００６１】
Ｒｉ＝Ｂｉ＋Ａｉ×Ｂｉ／１０２４    （１）
Ａｉ＝Ａｉ−１＋Ｐ                  （２）
なお、（１）式における除算（即ち、端数換算部７２４での除算）は、小数点部ＣＤ［９：０］の値‘１’が整数部での値‘１’の１／１０２４を単位として表現されていることによるものである。また（１）式におけるＢｉの加算（即ち、周期加算部７２５でのＳＣＷ［１３：０］の加算）は、処理時間を確保するためのものである。ここでは１クロック分の値を加算しているが、２クロック分以上の値を加算するように構成してもよい。
【００６２】
［５．１．３．出力位置カウント値演算部］
出力位置カウント値演算部７３は、図２２に示すように、二進補正部７３１、出力位置演算部７３２、端数段分離処理部７３３、ラッチ回路７３４、反転回路７３５、オシレータ位置保持部７３６、カウンタ位置保持部７３７を備える。
【００６３】
二進補正部７３１は、第２計測出力ＤＫ［１３：０］を二進数に変換した結果を、ＲＤＬフリーラン位置ＣＤＫ［１３：０］として出力する。二進補正部７３１は、上述の二進補正部６３３と同様のものであるため、その説明は省略する。なお、二進数に変換する処理を奇数段補正処理ともいう。
【００６４】
出力位置演算部７３２は、ＲＤＬフリーラン位置ＣＤＫ［１３：０］に、周期換算／端数処理部７２が出力する換算端数保持値ＣＯＲ［１３：０］を加算した結果を、出力絶対位置ＰＯＳ［１３：０］として出力する。
【００６５】
端数段分離処理部７３３は、出力絶対位置ＰＯＳ［１３：０］に３２／３０を乗じることで得られた演算結果のうち、整数部分をカウンタ位置ＣＮＴＢ［８：０］、余りをオシレータ位置ＥＮＣＢ［４：０］として出力する。つまり、二進数で表されたＰＯＳ［１３：０］に対して、奇数段補正処理の逆処理である逆奇数段補正処理を施すことにより、出力絶対位置ＰＯＳ［１３：０］を、カウンタ回路３でのカウント値を表すカウンタ位置ＣＮＴＢ［８：０］と、リングオシレータ２でのパルス位置を表すオシレータ位置ＥＮＣＢ［４：０］に換算する。
【００６６】
ラッチ回路７３４は、処理起動位置検出部７１が出力する起動位置信号ＤＩＮＴを、ＳＣＬＫタイミングでラッチした結果を、遅延起動位置信号ＤＤとして出力する。この遅延起動位置信号ＤＤは、起動位置信号ＤＩＮＴを基準クロックＳＣＬＫの１周期分遅延させたものとなる。
【００６７】
反転回路７３５は、基準クロックＳＣＬＫを反転させた反転基準クロックＲＳＣＬＫを出力する。
オシレータ位置保持部７３６およびカウンタ位置保持部７３７は、遅延起動位置信号ＤＤがハイレベルの時に反転基準クロックＲＳＣＬＫの立ち上がりエッジのタイミング（以下「反転ＳＣＬＫタイミング」ともいう）で、それぞれ、端数段分離処理部７３３が出力するオシレータ位置ＥＮＣＢ［４：０］およびカウンタ位置ＣＮＴＢ［８：０］を保持し、その保持した値を、保持オシレータ位置ＨＥＮＣ［４：０］および保持カウンタ位置ＨＣＮＴ［８：０］として出力する。
【００６８】
［５．２．出力処理部］
出力処理部８は、図２３に示すように、オシレータ位置選択部８１と、カウンタ位置選択部８２と、信号生成部８３とを備える。
【００６９】
オシレータ位置選択部８１は、セレクタ８１１を備える。セレクタ８１１は、リングオシレータ２の出力Ｐ［１４：０］を構成する各ビットＰ［ｉ］（ｉ＝０〜１４）の立ち上がりエッジおよび立下りエッジが示す３０のタイミング中から、保持オシレータ位置ＨＥＮＣ［４：０］に従って選択された一つのタイミングに同期し、その選択されたタイミングを立ち上がりエッジとして有する出力クロックＰＯＣＫを生成する。また、オシレータ位置選択部８１は、保持オシレータ位置の最上位ビットＨＥＮＣ［４］を切替信号として出力する。
【００７０】
カウンタ位置選択部８２は、反転回路８２１、ラッチ回路８２２、カウンタ位置補正部８２３、セレクタ８２４、カウンタ一致検出部８２５、遅延回路８２６、セレクタ８２７を備える。反転回路８２１は、基準クロックＳＣＬＫを反転させた反転基準クロックを生成する。ラッチ回路８２２は、遅延起動位置信号ＤＤを、反転基準クロックの立ち上がりエッジ、即ち基準クロックＳＣＬＫの立ち下がりエッジでラッチしたものを許可信号ＯＥＮとして出力する。但し、ラッチ回路８２２は、ＤＣＯ出力ＰＯＵＴのハイレベルでリセットされる。カウンタ位置補正部８２３は、保持カウンタ位置ＨＣＮＴ［８：０］が示す値（以下単に「ＨＣＮＴ」と示す）を１減じて出力する。セレクタ８２４は、選択信号ＨＥＮＣ［４］に従い、ＨＥＮＣ［４］＝１の場合は保持カウンタ位置ＨＣＮＴを、ＨＥＮＣ［４］＝０の場合はカウンタ位置補正部８２３の出力（即ち、ＨＣＮＴ−１）を選択して出力する。カウンタ一致検出部８２５は、許可信号ＯＥＮがハイレベルの時に、カウンタ回路３の出力ＲＣＮＴがセレクタ８２４の出力（ＨＣＮＴまたはＨＣＮＴ−１）と一致するとハイレベルとなる一致信号ＣＭＲを出力する。遅延回路８２６は、一致信号ＣＭＲを出力クロックＰＯＣＫの半周期分だけ遅延させた遅延一致信号ＣＭＲＤを出力する。セレクタ８２７は、選択信号ＨＥＮＣ［４］に従い、ＨＥＮＣ［４］＝１の場合は一致信号ＣＭＲを、ＨＥＮＣ［４］＝０の場合は遅延一致信号ＣＭＲＤを選択して出力する。
【００７１】
信号生成部８３は、セレクタ８３１、ラッチ回路８３２、遅延回路８３３、分周器８３４を備える。セレクタ８３１は、ラッチ回路８３２の出力ＰＯに従い、ＰＯ＝０の場合はセレクタ８２７の出力（ＣＭＲまたはＣＭＲＤ）を、ＰＯ＝１の場合は‘１’を選択して出力する。ラッチ回路８３２は、セレクタ８３１の出力を出力クロックＰＯＣＫの立ち上がりエッジのタイミングでラッチしたものを出力ＰＯとする。但し、ラッチ回路８３２は、ＤＣＯ出力ＰＯＵＴのハイレベルでリセットされる。遅延回路８３３は、ラッチ回路８３２の出力ＰＯを遅延させたものをＤＣＯ出力ＰＯＵＴとして出力する。このＤＣＯ出力ＰＯＵＴによってラッチ回路８３２がリセットされるため、遅延回路８３３での遅延時間がＤＣＯ出力ＰＯＵＴのパルス幅となる。分周器８３４は、ＤＣＯ出力ＰＯＵＴを分周することで、ＤＣＯ出力ＰＯＵＴの２倍の周期を有しかつデューティ５０％の信号を生成し、これを第２ＤＣＯ出力ＰＯＵＴ２として出力する。
【００７２】
このように構成された出力処理部８では、図２４に示すように、ＲＣＮＴがＨＣＮＴと一致している期間だけＣＭＲ＝１となり、その期間中に現れる出力クロックＰＯＣＫの立ち上がりエッジ、即ち、基準クロックＳＣＬＫの一周期以下の端数を表す保持オシレータ位置ＨＥＮＣ［４：０］に対応するリングオシレータ２の出力Ｐ［ｉ］のタイミングで、ラッチ回路８３２の出力ＰＯ、ひいてはＤＣＯ出力ＰＯＵＴが立ち上がる。
【００７３】
図２５に示すように、出力クロックＰＯＣＫは、ＨＥＮＣ［４］＝１の時は、ＣＭＲ＝１である期間の後半のタイミングで立ち上がり、ＨＥＮＣ［４］＝０の時は、ＣＭＲ＝１である期間の前半のタイミングで立ち上がる。但し、カウンタ回路３の出力ＲＣＮＴ［８：０］は、リングオシレータ２の出力［４：０］に対して遅延があるため、カウンタ回路３の出力ＲＣＮＴ［８：０］に基づいて生成される一致信号ＣＭＲは、リングオシレータ２の出力Ｐ［１４：０］に基づいて生成される出力クロックＰＯＣＫより遅延したものとなる。この遅延の影響を受けて。ＨＥＮＣ＝０〜４の場合に生成される出力クロックＰＯＣＫにより、ラッチ回路８３２は、一致信号ＣＭＲの信号レベルが安定する前にラッチをしてしまい、信号レベルを正しくラッチできない可能性がある。
【００７４】
このため、出力処理部８では、ＨＥＮＣ＝０〜４の期間を含むＨＥＮＣ［４］＝０の時には、一致信号ＣＭＲを出力クロックＰＯＣＫの半周期分遅延させた遅延一致信号ＣＭＲＤを用い、ＣＭＲＤ＝１の後半のタイミングで出力クロックＰＯＣＫが立ち上がるようにしている。また、この場合、ＣＭＲＤ＝１をラッチするタイミングが、出力クロックＰＯＣＫの１クロック分遅延することになるため、ＨＥＮＣ［４］＝０の時には、ＨＣＮＴの代わりに、オシレータ位置補正部８２３にて求めたＨＣＮＴ−１を用いてＲＣＮＴと比較することにより、ＣＭＲ＝１（ひいてはＣＭＲＤ＝１）がＰＯＣＫの１クロック分早く出力されるようにしている。
【００７５】
［６．動作］
このように構成されたデジタル制御発振回路１ｂでは、図２４に示すように、ＤＩＮＴ＝１の期間に換算端数保持値ＣＯＲ［１３：０］を演算して、起動位置信号ＤＩＮＴの立ち下がりエッジのタイミングで値を確定さる。続く、ＤＤ＝１のタイミングでＤＣＯ出力ＰＯＵＴの周期毎のタイミングを表すカウンタ位置ＣＮＴＢ［８：０］およびオシレータ位置ＥＮＣＢ［４：０］を求め、その値を基準クロックＳＣＬＫの立ち下がりエッジのタイミングで確定（ＨＣＮＴ，ＨＥＮＣ）させると共に、ＯＥＮ＝１にすることで、ＨＣＮＴとＲＣＮＴの比較を開始する。両者が一致するとＣＭＲ＝１がＰ［１４］の１周期分だけ出力され、そのＣＭＲ＝１の期間中に現れる出力クロックＰＯＣＫの立ち上がりエッジのタイミングが、ＤＣＯ出力ＰＯＵＴの周期（以下「ＰＯＵＴ周期」という）を表すタイミングとして使用される。
【００７６】
つまり、図２６に示すように、周期設定値の整数部ＣＤ［２３：１０］に対応した基準クロックＳＣＬＫの整数倍の周期（即ち、粗周期タイミング）を示す、起動位置信号ＤＩＮＴの立ち下がりエッジのタイミング（以下「ＤＩＮＴタイミング」という）を基点として、周期設定値の小数点部［９：０］に対応した換算端数保持値ＣＯＲに相当する時間だけ遅延したタイミングの出力絶対位置ＰＯＳ（カウンタ位置ＣＮＴＢ，オシレータ位置ＥＮＣＢ）を求める。そして、リングオシレータ２およびカウンタ回路３の出力Ｐ［１４：０］，ＲＣＮＴ［８：０］が、保持オシレータ位置ＨＥＮＣ（＝ＥＮＣＢ）および保持カウンタ位置ＨＣＮＴ（＝ＣＮＴＢ）と一致したタイミングを、ＰＯＵＴ周期を表すタイミングとしている。
【００７７】
なお、ＰＯＵＴ周期が、基準クロックＳＣＬＫのＮ（図ではＮ＝４）周期分と、基準クロックＳＣＬＫの１周期に満たない端数Ｍ（図ではＭ＝Ｎ×２／５）とで表現される場合、ＤＩＮＴタイミングは、基本的には、基準クロックＳＣＬＫのＮクロック毎に発生する。但し、端数の累積値が基準クロックＳＣＬＫの１クロック分を超える場合（ＣＲＤＬ＝１の場合）、端数累積値から１クロック分の値が減じられ、代わりにＤＩＮＴタイミングが１クロック遅れて発生する（即ちＤＩＮＴタイミングの間隔がＮ＋１クロックとなる）。
【００７８】
［７．効果］
デジタル制御発振回路（ＤＣＯ）１ｂによれば、ＤＣＯ出力ＰＯＵＴの周期を、正確な周期を有する基準クロックＳＣＬＫに対する倍率で指定し、その倍率の整数部に相当する期間を基準クロックＳＣＬＫのカウントで表現し、小数点部に相当する期間を、リングオシレータ２およびカウンタ回路３の出力Ｐ［１４：０］，ＲＣＮＴ［８：０］により特定されるＲＤＬフリーラン位置で表現するようにされている。これにより、リングオシレータ２を構成する遅延素子の出力に含まれる揺らぎの蓄積を一定範囲内に抑えることができ、ＤＣＯ出力ＰＯＵＴの周期の長さによらず、高精度かつ安定した周期を有するＤＣＯ出力ＰＯＵＴを生成することができる。
【００７９】
また、デジタル制御発振回路１ｂは、時間計測回路（Ｗ−ＴＤＣ）１ａとリングオシレータ２およびカウンタ回路３を共用しており、時間計測回路１ａにて計測されたＳＣＬＫ周期演算値ＳＣＷ［１３：０］を用いて演算を行っているため、環境変化等によってリングオシレータの動作状態が変動したとしても、その変動した状態に応じたＳＣＬＫ周期演算値ＳＣＷ［１３：０］を用いてＤＣＯ出力ＰＯＵＴを生成するための演算が実行されるため、環境変化等によるＤＣＯ出力ＰＯＵＴの精度劣化を抑制することができる。
【００８０】
［８．他の実施形態］
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されることなく、種々の形態を採り得る。
【００８１】
（１）上記実施形態では、デジタル制御発振回路１ｂは、Ｗ−ＴＤＣブロックから、ＤＫ［１３：０］，ＳＣＷ［１３：０］を、Ｗ−ＴＤＣブロック１０から取得しているが、これに限るものではない。例えば、Ｗ−ＴＤＣブロック１０から、ＤＫ［１３：０］，ＳＣＷ［１３：０］の生成に関わる部分以外を省略した構成のものを、Ｗ−ＴＤＣブロック１０の代わりに用いてもよい。
【００８２】
（２）上記実施形態では、リングオシレータ２を奇数個の反転回路で構成すると共に、リングオシレータの出力が２の累乗ではないため、後段にて二進数にする奇数段補正処理を行っているが、出力が２の累乗となるリングオシレータを用いてもよい。この場合、奇数段補正処理や逆奇数段補正処理を省略することができ、装置構成をより簡易なものとすることができる。
【００８３】
（３）上記実施形態における一つの構成要素が有する機能を複数の構成要素に分散させたり、複数の構成要素が有する機能を一つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換等してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【００８４】
（４）上述したデジタル制御発振回路の他、当該デジタル制御発振回路を構成要素とする各種システムなど、種々の形態で実現することもできる。
【符号の説明】
【００８５】
１…Ｗ−ＴＤＣ−ＤＣＯ、１ａ…時間計測回路、１ｂ…デジタル制御発振回路、２…リングオシレータ、３…カウンタ回路、４…第１符号化部、５…第２符号化部、６…端数処理部、７…出力タイミング生成部、８…出力処理部、１０…Ｗ−ＴＤＣブロック、２０…ＤＣＯブロック、７１…処理起動位置検出部、７２…周期換算／端数処理部、７３…出力位置カウント値演算部、８１…オシレータ位置選択部、８２…カウンタ位置選択部、８３…信号生成部
【図１】
0006481533.tif 000002
【図２】
0006481533.tif 000003
【図３】
0006481533.tif 000004
【図４】
0006481533.tif 000005
【図５】
0006481533.tif 000006
【図６】
0006481533.tif 000007
【図７】
0006481533.tif 000008
【図８】
0006481533.tif 000009
【図９】
0006481533.tif 000010
【図１０】
0006481533.tif 000011
【図１１】
0006481533.tif 000012
【図１２】
0006481533.tif 000013
【図１３】
0006481533.tif 000014
【図１４】
0006481533.tif 000015
【図１５】
0006481533.tif 000016
【図１６】
0006481533.tif 000017
【図１７】
0006481533.tif 000018
【図１８】
0006481533.tif 000019
【図１９】
0006481533.tif 000020
【図２０】
0006481533.tif 000021
【図２１】
0006481533.tif 000022
【図２２】
0006481533.tif 000023
【図２３】
0006481533.tif 000024
【図２４】
0006481533.tif 000025
【図２５】
0006481533.tif 000026
【図２６】
0006481533.tif 000027