(57)【要約】【課題】クロック逓倍してクロック信号を発生するクロック発生回路のロックインタイムを短縮する。【解決手段】ロックイン状態において、２つの数値データＣｉ，Ｃ（ｉ＋１）を積和演算器が出力し、各数値データに従って発振器１１の発振周期を設定して、その出力クロック信号のパルス数をカウントして第１および第２のカウント値を生成する。これらの２つの数値データと２つのカウント値と周期目標データとに従って、発振器の発振周期を設定する第３の数値データを生成して、発振器の発振周期を設定する。【選択図】図２
2008017422.tif 000002
【特許請求の範囲】
【請求項１】
与えられる数値データに応じてクロック信号の周期を変化させる発振器と、
前記クロック信号のパルス数を所定期間カウントし、カウント値を出力するカウンタと、
前記カウント値に基づいて、前記クロック信号の周期を目標周期に設定するために前記発振器に与える前記数値データの演算を行なう演算器とを備え、
前記演算器は、第１および第２の数値データを順次出力し、前記第１および第２の数値データの出力に応じて受ける第１および第２のカウント値と前記目標周期を示すデータとから、前記目標周期に応じた第３の数値データを決定する、クロック発生回路。
【請求項２】
前記発振器は、前記数値データに対して前記クロック信号の周期をリニアに変化させる、請求項１に記載のクロック発生回路。
【請求項３】
前記演算器は、前記演算を終了する終了条件が満たされるまで、前記演算を繰り返し実行し、
前記演算の再実行時には、前記第１および第２の数値データとして、前回実行時における前記第２の数値データおよび前記第３の数値データがそれぞれ用いられ、前記第１および第２のカウント値として、前記前回実行時における前記第２のカウント値と前記第３の数値データに応じた第３のカウント値とがそれぞれ用いられる、請求項１に記載のクロック発生回路。
【請求項４】
前記終了条件は、前記第３のカウント値と前記目標周期に対応する値とが一致する条件である、請求項３に記載のクロック発生回路。
【請求項５】
前記終了条件は、前記第３の数値データが、前記前回実行時に得られた前記第３の数値データに一致する条件である、請求項３に記載のクロック発生回路。
【請求項６】
前記終了条件は、前記第３のカウント値と前記目標周期に対応する値との差が所定の範囲内に含まれる条件である、請求項３に記載のクロック発生回路。
【請求項７】
前記終了条件は、前記第３の数値データと、前記前回実行時に得られた前記第３の数値データとの差が、所定の範囲内に含まれる条件である、請求項３に記載のクロック発生回路。
【請求項８】
前記演算の回数が所定回数に達した場合に、前記演算を終了するよう前記演算器に指示する制御回路をさらに備える、請求項３に記載のクロック発生回路。
【請求項９】
前記発振器は、
前記第３の数値データを受けて前記クロック信号の遅延時間を変化させるコース遅延回路と、
前記数値データとして入力される微調整データに従って、前記コース遅延回路よりも前記遅延時間を小さく変化させるファイン遅延回路とを含み、
前記演算器は、前記第３の数値データを決定した後に、前記微調整データをさらに求める、請求項３に記載のクロック発生回路。
【請求項１０】
前記演算器は、前記第３の数値データと前記前回実行時に得られた前記第３の数値データと前記目標周期を指示するデータとから前記微調整データを求める、請求項９に記載のクロック発生回路。
【請求項１１】
前記演算器は、前記微調整データを求める際にオーバーフローまたはアンダーフローが発生した場合には、前記第３の数値データを修正する、請求項９に記載のクロック発生回路。
【請求項１２】
前記演算器は、前記クロック信号の周期の変化に対する前記数値データの変化の割合を求め、前記変化の割合を用いて前記第３の数値データを決定する、請求項１に記載のクロック発生回路。
【請求項１３】
前記演算器は、前記第１および第２の数値データから得られる数値データの差分を、前記第１および第２のカウント値から得られる前記周期の差分で除算して商と剰余とを求め、前記商が正の場合、または、前記商が負でありかつ前記剰余が０の場合には、前記商の小数部の切捨てを行なって前記変化の割合を求め、前記商が負でありかつ前記剰余が０でない場合には、前記小数部の切捨てを行なうとともに切捨て後の商から１を減算して前記変化の割合を求める、請求項１２に記載のクロック発生回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はクロック発生回路に関し、特に数十ｋＨｚ程度のクロック信号から数十ＭＨｚ程度のクロック信号を生成する高逓倍のクロック逓倍器に関する。
【背景技術】
【０００２】
マイクロコンピュータやプロセッサ等のＬＳＩ（Large Scale Integrated circuit）において、クロック信号は内部回路や外部デバイスとの同期を取るために必要とされる信号である。多くの場合、ＬＳＩには数十ｋＨｚ程度の周波数のクロック信号から数十ＭＨｚ程度のクロック信号を生成するクロック逓倍器が内蔵される。
【０００３】
クロック逓倍器は数十ｋＨｚ程度のクロック信号から１０００逓倍以上という高逓倍のクロック信号を生成する。このためクロック逓倍器は、たとえば逓倍数をカウントするカウンタを備えた高精度のデジタルＰＬＬ（Phase Locked Loop）回路により構成される。
【０００４】
デジタルＰＬＬ回路（以下、単に「ＰＬＬ回路」とも称する）ではリファレンスクロック信号の１周期に出力されるクロック信号のパルス数（逓倍数）がターゲット値と比較される。発振器は制御コードに応じ、たとえばクロック信号の遅延時間を変化させて発振周期を変化させる。パルス数とターゲット値との比較結果に基づいて制御コードの更新（制御コードのインクリメントまたはデクリメント）が行なわれることで、パルス数とターゲット値とが一致する。
【０００５】
ＰＬＬ回路がロックした状態ではリファレンスクロックの１周期ごとに制御コードの更新が行なわれる。リファレンスクロック信号の周波数が３２ｋＨｚの場合には、１周期すなわち約３１μｓに１回、制御コードが更新される。ロックイン時にはロック後の動作（通常動作）と異なるフローに従ってＰＬＬ回路の処理が実行される。
【０００６】
ロックイン時には「クロック信号のパルス数のカウント」と「結果判定および制御コードの更新」とがリファレンスクロック信号の１周期ごとに繰返し行なわれる。つまり制御コードはリファレンスクロック信号の２周期（６２μｓ）に１回更新される。ロックするまでに制御コードの設定が１６回必要であれば、ロックインタイムは３２周期（約１ｍｓ）となる。
【０００７】
従来のデジタルＰＬＬ回路では精度を上げるため、制御コードの１ビットあたりの遅延値を小さくし、制御コードのビット数を増やすという手法が一般的に用いられる。しかし、この手法によればロックインタイムが増大するという問題が生じる。たとえば制御コードが１６ビット（６５５３６ステップ）のデジタルＰＬＬ回路の場合、制御コードの初期値を中央値に設定し、最小値または最大値まで制御コードを順次変化させると、処理ステップの数は３２７６８になる。
【０００８】
このような問題を解決するため、たとえば特開平１０−２２８２２号公報（特許文献１）に開示されたデジタルＰＬＬ回路では、ロックイン動作時には位相比較結果をもとにして、最上位のビット（ＭＳＢ）から最下位のビット（ＬＳＢ）に向けて制御コードを順次変化させる二分検索法が用いられる。この手法では制御コードが１６ビットの場合、制御コードの値によらず１６回コードを設定することによってクロック信号の周期を目標の周期に設定することができる。
【特許文献１】特開平１０−２２８２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
高精度のデジタルＰＬＬ回路により構成されるクロック逓倍器の場合には、位相差を正確に検出するために、リファレンスクロック信号の周波数が低い（１周期の時間が長い）ため、ロックインタイムが長くなるという問題がある。特開平１０−２２８２２号公報（特許文献１）に開示された手法を用いても同様の問題が生じる。この特許文献１の手法によれば、リファレンスクロックの周波数が３２ｋＨｚで制御コードのビット数が１６であれば、判定およびコード設定に２サイクルが必要とされ、ロックインタイムは約１ｍｓになる。二分検索の初期値の設定のためのサイクルを考慮すると、制御コードが、ｍビットのときには、リファレンスクロックの２・（ｍ＋１）サイクルが必要とされる。
【００１０】
たとえば携帯電話に内蔵されるＬＳＩにおいて、スタンバイモードでは消費電力の低減を図るためクロック逓倍器への電源供給が停止される。ロックインタイムが長くなるとスタンバイ状態からのリカバリ時間が長くなるため、ＬＳＩをスタンバイモードに移行させることが難しくなる。しかしながら、ＬＳＩをスタンバイモードに移行できないと、携帯電話の消費電力が増加する。従って、ＰＬＬ回路のロックインタイムを短くすることが必要になる。
【００１１】
リカバリ時間が長いということは、ＬＳＩが処理を再開できるようになるまでのペナルティ時間が長いということを意味する。ＬＳＩへの入力が無効となってからスタンバイモードへの移行の可否を判定するまでの期間を短くすれば、ＬＳＩはスタンバイモードに頻繁に移行することになる。この場合には、判定後に有効な入力が与えられる状態が増加し、スタンバイモードの期間が短くなるとともにＬＳＩをスタンバイモードから復帰させる回数が増える。この結果、スタンバイモードの期間が短いにも関わらず、復帰させるごとに長いリカバリ時間が必要となり、ＬＳＩの処理の効率が落ちる。
【００１２】
この発明の目的は、ロックインタイムを短くすることが可能なクロック発生回路を提供することである。
【課題を解決するための手段】
【００１３】
この発明に係るクロック発生回路は、与えられた数値データに応じてクロック信号の周期を変化させる発振器と、クロック信号のパルス数を所定期間カウントし、カウント値を出力するカウンタと、カウント値に基づいて、クロック信号の周期を目標周期に設定するために発振器に与える数値データの演算を行なう演算器とを備える。演算器は、第１および第２の数値データを順次出力し、第１および第２の数値データの出力に応じて受ける第１および第２ののカウント値とから、与えられた目標周期に応じた第３の数値データを決定する。
【発明の効果】
【００１４】
この発明のクロック発生回路によれば、２つの数値データ、および各数値データに応じたクロック信号のパルス数のカウント値から、クロック信号の周期を目標周期に設定するために発振器に与える数値データを演算しており、ロックインタイムを短縮できる。
【発明を実施するための最良の形態】
【００１５】
以下、この発明の実施の形態について図面を参照して詳細に説明する。なお、各図中同一符号は、同一または相当部分を示す。
【００１６】
［実施の形態１］
図１は、この発明に従うクロック発生回路の適用例を示す図である。図１を参照して、電子機器５０は、通常動作状態とスタンバイ状態とを切換えることができる電子機器であり、たとえば携帯電話である。電子機器５０は、各種機能を実現するための半導体集積回路１００を含む。半導体集積回路１００は、逓倍数の大きいクロック信号を必要とするＬＳＩであればよく、特にその用途は限定されない。なお、図１に示さないが、電子機器５０は、半導体集積回路１００以外にも、各種の機能を実行するための回路（たとえば携帯電話における送受信回路等）を含む。
【００１７】
半導体集積回路１００は、クロック発生回路１と、クロック発生回路１から出力されるクロック信号ＣＫｏｕｔに同期して処理を実行する処理部２とを備える。クロック発生回路１は、たとえば３２ｋＨｚのリファレンスクロック信号ＣＫｒｅｆを受けて、数十ＭＨｚのクロック信号ＣＫｏｕｔを出力する。
【００１８】
処理部２は、クロック発生回路１に対しターゲット値Ｎｔ、イネーブル信号ＥＮ、およびリセット信号ＲＳＴを送る。ターゲット値Ｎｔは、クロック信号ＣＫｏｕｔの目標周期に対応する値であり、具体的にはリファレンスクロック信号ＣＫｒｅｆの１周期（たとえば３１μｓである）におけるクロック信号ＣＫｏｕｔのパルス数（逓倍数）の目標値である。リファレンスクロック信号ＣＫｒｅｆの１周期は、この発明に従うクロック発生回路における「所定期間」に相当する。
【００１９】
イネーブル信号ＥＮは、クロック発生回路１を動作状態に設定する信号である。リセット信号ＲＳＴは、クロック発生回路１の動作をリセットする信号である。
【００２０】
ターゲット値Ｎｔおよび信号ＥＮは、処理部２に含まれるモード制御回路（図示せず）から送出され、リセット信号ＲＳＴは、処理部２に含まれるリセット回路（図示せず）から送出される。ただし、ターゲット値Ｎｔおよび信号ＥＮ，ＲＳＴは、半導体集積回路１００の外部から、例えばオペレータ操作に従って入力されてもよい。
【００２１】
リファレンスクロックＣＫｒｅｆは、この電子機器５０内において、特に限定されないが、例えば水晶発振子を用いた発振器から発生される。
【００２２】
図２は、図１のクロック発生回路１の構成を概略的に示す図である。図２を参照して、クロック発生回路１は、入力される数値データに応じてクロック信号ＣＫｏｕｔの周期を変化させる発振器１１と、クロック信号ＣＫｏｕｔのパルス数をカウントし、リファレンスクロック信号ＣＫｒｅｆの１周期内にカウントしたパルス数をカウント値として出力するカウンタ１２と、カウント値に従って、クロック信号ＣＫｏｕｔの周期を目標周期に設定するために発振器１１に与える数値データの演算を行なう積和演算器１３と、ターゲット値Ｎｔを一時的に格納するレジスタ１４と、コードのインクリメント（またはデクリメント）を行なう加算器１５とを含む。
【００２３】
発振器１１は、積和演算器１３または加算器１５から与えられた数値データの変化に対してクロック信号ＣＫｏｕｔの遅延時間をリニアに変化させる。すなわち、発振器１１は、例えば遅延列を含むリングオシレータで構成され、数値データに従って遅延列の遅延時間が設定されて、応じて、発振器１１の発振周波数／位相が設定される。
【００２４】
積和演算器１３は、この発明に従うクロック発生回路における「演算器」に相当する。また、「目標周期」は、ターゲット値Ｎｔの逆数で与えられる。
【００２５】
ロックイン時には、発振器１１、カウンタ１２および積和演算器１３によりＰＬＬ回路が構成され、ロック後は、発振器１１、カウンタ１２および加算器１５によりＰＬＬ回路が構成される。クロック発生回路１における「ロック状態」とは、カウンタ１２によるカウント値とターゲット値Ｎｔとの差が０もしくは極めて小さい状態（許容誤差内の状態）を示す。ロックイン状態においては、ロック状態を設定する数値データを求める動作（ロック検索動作）が行なわれる。
【００２６】
同期引き込みを行うロックイン状態においては、積和演算器１３は、２つの数値データを出力する。カウンタ１２は、各数値データが発振器１１に設定されたときのクロック信号ＣＫｏｕｔのパルス数をカウントする。積和演算器１３は、第１および第２の数値データを順次出力し、第１および第２の数値データの出力にそれぞれ応じた第１および第２ののカウント値を受ける。積和演算器１３は、これらの第１および第２のカウント値から、積和演算を行って、与えられた目標周期（ターゲット値Ｎｔ）に応じた数値データを決定する。後に詳細に説明するように、数値データのビット数に関係なく、数値データを３回設定するだけでクロック発生回路１をロックさせることができ、ロックインタイムを短くすることができる。
【００２７】
なお、積和演算器１３および加算器１５から出力される数値データは、一定の規則に従って符号化されており、以下の説明においては、符号化された数値データのことを「コード」と称する。
【００２８】
加算器１５は、ロック後にカウント値Ｎｉとターゲット値Ｎｔとを比較し、該比較結果に従って、ロックイン状態で決定されたコードのインクリメントまたはデクリメントを行なう。
【００２９】
クロック発生回路１は、さらに、制御回路１７から受ける信号に従って積和演算器１３および加算器１５の一方からのコードを選択して出力するセレクタ１６と、各機能ブロックの動作タイミングを規定するタイミング信号を生成する制御回路１７と、セレクタ１６からレジスタ１９を介して与えられたコードをデコードするデコーダ１８とを含む。
【００３０】
制御回路１７からのタイミング信号に従って、ロック時には、リファレンスクロック信号ＣＫｒｅｆの１周期ごとにコードが計算される。また、制御回路１７は、リセット解除後、ロック検索動作のために、各機能ブロックに対するタイミング信号および制御信号を生成する。
【００３１】
制御回路１７は、ロックイン状態時に、積和演算器１３における演算結果に基づいてロック判定を行ない、この判定結果に従ってセレクタ１６の選択経路を制御する信号を生成する。この選択経路制御信号に従って、セレクタ１６は、ロックイン時には積和演算器１３から与えられるコードをレジスタ１９に出力し、ロック後は加算器１５から与えられるコードをレジスタ１９に出力する。
【００３２】
制御回路１７は、さらに、イネーブル信号ＥＮに応じて、ロック検索動作の過程（ロックイン状態）において、発振器１１の発振を制御するための発振制御信号ＩＥＮを生成する。この発振制御信号に従って、発振器１１が、選択的に発振動作を行う。
【００３３】
レジスタ１９は、セレクタ１６から送出されたコードを一時的に格納し、制御回路１７から与えられる制御信号に応答して、格納したコードＣｉを出力する。すなわち、レジスタ１９は、ロックイン時には、デコーダ１８および積和演算器１３にコードＣｉを送出し、ロック時には、デコーダ１８および加算器１５にコードＣｉを送出する。
【００３４】
デコーダ１８は、レジスタ１９を介して受けるコードをデコードして、発振器１１での遅延量（発振周波数）を決定する数値データを生成する。
【００３５】
なお、カウンタ１２、積和演算器１３、加算器１５、セレクタ１６、制御回路１７、デコーダ１８は、たとえば論理合成によって生成される一般的な回路により構成される。
【００３６】
図３は、図２に示す発振器１１の構成の一例を示す図である。図３を参照して、発振器１１は、遅延量が疎調整されるコース遅延回路１１Ｃと、遅延量が微調整されるファイン遅延回路１１Ｆと、発振器１１の発振動作を発振制御信号ＩＥＮに従って選択的に活性化／停止させるＮＡＮＤ回路ＮＡ１とを含む。
【００３７】
ファイン遅延回路１１Ｆは、コース遅延回路１１Ｃと「粒度」が異なる回路である。「粒度」とは遅延回路においてユニットディレイ（コード１つ分の遅延値；遅延ステップ値）を意味する。たとえば、コース遅延回路１１Ｃのユニットディレイが１６０ｐｓであり、ファイン遅延コードが５ビット（３２個の状態を表現）で構成されているとすると、ファイン遅延回路１１Ｆのユニットディレイは１６０／３２＝５ｐｓとなる。すなわち、ファイン遅延回路１１Ｆは、コース遅延回路１１Ｃよりもクロック信号ＣＫｏｕｔの遅延時間を小さく変化させる回路である。
【００３８】
コース遅延回路１１Ｃは、デコーダ１８から与えられる信号ＣＣ１〜ＣＣｎ（ｎは自然数）に応じて遅延量が決定され、ファイン遅延回路１１Ｆは、デコーダ１８から与えられる信号Ｆ０およびＦＡ１〜ＦＡｍ（ｍは自然数であり、たとえばｍ＝５）に応じて遅延量が決定される。これらのコース遅延回路１１Ｃおよびファイン遅延回路１１Ｆは、ともに、積和演算器１３から送られるコードに対して遅延時間をリニアに変化させることができる。
【００３９】
コース遅延回路１１Ｃは、ｎ個の縦続接続される遅延素子ＤＬ１〜ＤＬｎと、遅延素子ＤＬ１〜ＤＬｎの出力それぞれに対応して設けられるスイッチＳＷ１〜ＳＷｎとを含む。スイッチＳＷ１〜ＳＷｎは、コース遅延回路１１Ｃの出力に並列に結合され、信号ＣＣ１〜ＣＣｎそれぞれに応答して導通する。信号ＣＣ1〜ＣＣｎは、デコーダ１８により１つが選択状態とされ、応じて、スイッチＳＷ１〜ＳＷｎの１つが導通状態に設定される。これにより、コース遅延回路１１Ｃの遅延段数が設定され、応じて、遅延時間が決定される。なお、遅延素子ＤＬ１〜ＤＬｎは、それぞれ、同一の遅延時間を有し、各々の遅延量Ｔが、コース遅延回路１１Ｃのユニットディレイに対応し、たとえば１６０ｐｓである。
【００４０】
遅延素子ＤＬ１〜ＤＬｎは、それぞれ、遅延線で構成されてもよく、また、偶数段のインバータで構成されてもよい。それぞれが同一の遅延時間を与える構成であれば、このＲ遅延素子ＤＬ１〜ＤＬｎとしては、どのような構成が利用されてもよい。
【００４１】
ファイン遅延回路１１Ｆは、コース遅延回路１１Ｃの出力信号を受ける入力ノードＷ１と内部ノードＷ３の間に接続される遅延素子ＤＬＡと、ノードＷ１およびＷ３の間に互いに並列に接続されるトライステートバッファ２０１〜２０ｍと、内部ノードＷ３とファイン遅延回路１１Ｆの出力ノードとの間に接続されるトライステートバッファ２２と、内部ノードＷ３と接地ノードとの間に接続されるキャパシタ２４とを備える。
【００４２】
遅延素子ＤＬＡは、コース遅延回路１１Ｃの遅延素子ＤＬ１〜ＤＬｎそれぞれと同一の遅延時間を有し、制御信号Ｆ０に従って選択的に活性状態とされる。この制御信号Ｆ０は、制御信号ＦＡ１〜ＦＡｍが全て非活性状態のときに活性状態に設定され、このファイン遅延回路１１Ｆの初期遅延時間を与える。通常、ロックイン動作時においては、コース遅延回路１１Ｃにより遅延時間を粗いステップで設定した後に、ファイン遅延回路１１Ｆにより、粗く設定された遅延時間が微調整される。コース遅延回路１１Ｃによる遅延時間の設定操作時においては、ファイン遅延回路１１Ｆの遅延時間は、デフォルト値に設定され、このデフォルト値が遅延素子ＤＬＡにより与えられる。従って、この遅延素子ＤＬＡは、遅延時間が０のトランスミッションゲートで置き換えることも可能である。
【００４３】
トライステートバッファ２０１−２０ｍは、それぞれデコーダ１８から与えられる制御信号ＦＡ１−ＦＡｍに従って選択的に動作状態とされ、非活性状態においては出力ハイインピーダンス状態に設定される。
【００４４】
キャパシタ２４は、内部ノードＷ３の供給される電流に応じて充電電圧を変化させる。このキャパシタ２４の充電電圧の変化速度に応じて、遅延時間が設定される。
【００４５】
トライステートバッファ２２は、内部ノードＷ３の信号をバッファ処理して出力端子からクロック信号ＣＫｏｕｔを出力する。
【００４６】
トライステートバッファ２０１−２０ｍは、各々、偶数段（例えば２段）の縦続接続されるクロックドインバータで構成される。トライステートバッファ２０１内のクロックドインバータを構成するＰチャネルＭＯＳトランジスタとＮチャネルＭＯＳトランジスタは、チャネル幅（以下単に「サイズ」という。）ｗを有し、トライステートバッファ２０２は、トランジスタは、サイズ２ｗを有し、トライステートバッファ２０ｍは、トランジスタサイズ２m-1×ｗを有する。ただし、チャネル長Ｌを全て同じとしている。
【００４７】
ここで、ＰチャネルＭＯＳトランジスタとＮチャネルＭＯＳトランジスタとは、同じサイズ（チャネル幅）を有する必要はない。トライステートバッファ２０１〜２０ｍにおいて、それぞれ、ＰチャネルＭＯＳトランジスタおよびＮチャネルＭＯＳトランジスタそれぞれについて上述のサイズの関係が満たされていればよい。
【００４８】
このトランジスタサイズの調整により、トライステートバッファ２０１−２０ｍの電流駆動力が、２のべき乗に従って順次増大され、この結果、遅延時間が２のべき乗に従って減少される。
【００４９】
トライステートバッファ２０１−２０ｍは、ノードＷ１およびＷ３の間に並列に接続されており、デコーダからの信号ＦＡ１−ＦＡｍに従って、内部ノードＷ３に対する電流駆動力を調整することができ、キャパシタ２４の充放電速度を調整することができ、応じて、内部ノードＷ３に伝達される信号に対する遅延時間を調整することができる（電流駆動力が大きくなれば、遅延時間が短くなる）。
【００５０】
トライステートバッファ２０１〜２０ｍの出力駆動トランジスタ（ＰおよびＮチャネルＭＯＳトランジスタ各々）の合成サイズｗＡは、サイズｗのステップで、信号ＦＡ１〜ＦＡｍに従って、（２m−１）×ｗから０まで変化する。最小遅延時間を与えるトライステートバッファ２０ｍの有する遅延時間をΔＴとすると、合成サイズがｗ増加するごとに、遅延時間がΔＴだけ短くされる。ノードＷ２から出力されるクロック信号ＣＫｏｕｔは、ノードＷ１に入力される信号に対して、合成サイズｗＡに応じてユニットディレイ時間Ｔｕステップで遅延する。具体的に、ｍビットの信号ＦＡ１〜ＦＡｍにより、合成サイズがｗＡのときの遅延時間ΔＴ（ｗＡ）は次式で与えられる。
【００５１】
ΔＴ（ｗＡ）＝  （２（ｍ＋１）−（ｗＡ／ｗ））ΔＴ
トライステートバッファ２０ｍの有する遅延時間ΔＴが、遅延素子ＤＬ１−ＤＬｎおよびＤＬＡ各々の有する遅延時間Ｔの１／２ｍ倍に設定される。例えば、ｍが５ビットで、コースユニットディレイＴが１６０ｐｓのときには，ファインユニットディレイΔＴは、３２ｐｓに設定される。
【００５２】
ＮＡＮＤ回路ＮＡ１は、発振制御信号ＩＥＮとクロック信号ＣＫｏｕｔとを受けて、コース遅延回路の初段の遅延素子ＤＬ１にその出力信号を供給する。発振制御信号ＩＥＮが立上がると、ＮＡＮＤ回路ＮＡ１がインバータとして動作し、リングオシレータが形成され、発振器１１からクロック信号ＣＫｏｕｔが出力可能になる。発振制御信号ＩＥＮが立下がると、ＮＡＮＤ回路ＮＡ１の出力信号がＨレベルに固定され、発振器１１の発振が停止する。
【００５３】
なお、この発明の実施の形態１では、コース遅延回路１１Ｃのみが用いられる。従って、実施の形態１では、発振器１１は、コース遅延回路のみを含むように構成されていてもよい。また、実施の形態１では、ファイン遅延回路１１Ｆに与えられる信号Ｆ０，ＦＡ１〜ＦＡｍが一定であってもよい（それぞれの電圧レベルが固定される）。この場合、信号Ｆ０が活性状態で、残りの信号Ｆ１〜Ｆｍが非活性状態に設定されていてもよく、また、信号Ｆ０が非活性状態で、信号ＦＡ１〜ＦＡｍが、選択的に活性状態に設定されていてもよい。ファイン遅延回路１１Ｆの遅延時間が固定されていればよい。以下では、説明の便宜上、発振器１１はコース遅延回路１１Ｃのみを含むものとして説明する。
【００５４】
図４は、この発明の実施の形態１に従うロックイン状態での処理フローを示す図である。なお、以下に説明する発振器１１、カウンタ１２、積和演算器１３の動作は、制御回路１７により制御される。
【００５５】
図４を参照して、処理が開始されると、まず、ステップＳ１において、レジスタ１４に処理部２から与えられたターゲット値Ｎｔが設定される。また、発振器１１に含まれる遅延回路の遅延段数を初期設定するために、積和演算器１３により初期コードＣ１が設定される。コードＣ１により、遅延段数は最終段までの段数ｎの１／２に設定される。コードＣ１は、たとえば７ビットのコード「１００００００」で示される。セレクタ１６は、積和演算器１３の出力コードを選択する状態に設定される。積和演算器１３からのコードに従って発振器１１の発振周波数が設定される。
【００５６】
ステップＳ２において、カウンタ１２は、クロック信号ＣＫｏｕｔのパルス数のカウント（クロックカウント）を行ない、レファレンスクロック信号ＣＫｒｅｆの１周期内でカウント値Ｎ１を得る。
【００５７】
ステップＳ３において、積和演算器１３は、このカウント値Ｎ１に基づいてコードＣ２を設定する。コードＣ２によって、遅延段数は、最終段までの段数ｎの３／４に設定される。コードＣ２はたとえば「１１０００００」と示される。
【００５８】
ステップＳ４において、カウンタ１２は再びクロックカウントを行ない、カウント値Ｎ２を得る。
【００５９】
ステップＳ５において、積和演算器１３は、カウント値Ｎ１，Ｎ２からターゲット値Ｎｔに対応するコードＣ３（第３の数値データ）を演算し、発振器１１に対してコードＣ３を出力する。これにより、発振器１１にはコードＣ３が設定される。ステップＳ５での処理が終了すると、ロックイン全体の処理が終了し、クロック発生回路１はロック後の動作、すなわち通常動作を行なう。すなわち、加算器１５の出力コードに従って、発振器１１の発振周波数の調整が行われる。
【００６０】
この手法は、いわゆる二分検索法に一部類似するように見える。しかしながら、本実施の形態１においては、カウント値Ｎ１とターゲット値Ｎｔとの比較の基づいて、第２のコードＣ２を設定するのではなく、この第２のコードＣ２のコード値は、予め定められている。発振器においては、コードＣの値に従って遅延時間がリニアに変化しており、２つのコードＣ１、Ｃ２と対応のカウント値Ｎ１、Ｎ２とから、２点を通る直線を求め、この直線上でのターゲット値Ｎｔに対応するコードＣ３を求める。
【００６１】
従って、第２のコードＣ２が予め定められていても、ターゲット値Ｎｔに対応するコードを算出することができる。勿論、カウント値Ｎ１とターゲット値Ｎｔとの比較結果に従って、第２のコードＣ２が設定されてもよい。発振器の動作特性が、リニアリティからずれている場合、ターゲット値Ｎｔに近い領域において直線近似を行うため、リニアリティからのずれが小さい領域でコード算出を行うことができる。
【００６２】
なお、以後は説明の便宜のため、ステップＳ１〜Ｓ５の処理を「コード演算基本処理」と称し、ステップＳ１〜Ｓ５の処理を１つのステップＳ１Ａにまとめて示す。
【００６３】
図５は、ロックイン状態での処理を詳細に説明する図である。図５を参照して、リセット解除後のリファレンスクロック信号ＣＫｒｅｆのｎ番目のサイクルをＴｎと示す。図５では、サイクルＴ１〜Ｔ８が示される。
【００６４】
サイクルＴ１において、ターゲット値Ｎｔがレジスタ１４に設定され、積和演算器１３によりコードＣ１が設定される。サイクルＴ２において、クロックカウントが行なわれてカウント値Ｎ１が求められる。
【００６５】
サイクルＴ３において、積和演算器１３によりコードＣ２が設定される。サイクルＴ４において、クロックカウントが行なわれ、カウント値Ｎ２が求められる。
【００６６】
サイクルＴ５において、積和演算器１３によりコードＣ１，Ｃ２およびカウント値Ｎ１，Ｎ２からコードＣ３が求められる。サイクルＴ６においてクロックカウントが行なわれ、カウント値Ｎ３が求められる。
【００６７】
サイクルＴ７以後、ロック後の動作が行なわれる。サイクルＴ７において、加算器１５が、カウント値Ｎ３とターゲット値Ｎｔとを比較して（減算を行なって）、クロック信号ＣＫｏｕｔの発振周波数を上げるか下げるかを判定する。発振周波数を上げる（カウント値を上げる）場合には、コードＣ３のデクリメントを行なう（遅延回路の遅延段数を低減する）。発振周波数を下げる（カウント値を下げる）場合には、コードＣ３のインクリメントを行なう（遅延回路の遅延段数を増大させる）。
【００６８】
サイクルＴ７においては、また、更新後のコードに応じたクロックパルスのカウントが行なわれる。サイクルＴ８以後、サイクルＴ７と同様に、加算器１５は、前のサイクルでのカウント値をターゲット値Ｎｔと比較し、その比較結果に従って発振周波数を上げるか下げるかの判定を行なう。この判定結果に従ってコードのインクリメント（またはデクリメント）を行なう。また、同じサイクルにおいて、更新後のコードに従って設定されたクロックパルスのカウントが行なわれる。
【００６９】
以下に、クロック信号ＣＫｏｕｔの目標周期に対応するコードＣＴを求める演算式（１）を示す。式（１）において、ｉは２以上の整数であり、実施の形態１ではＣＴ＝Ｃ３である。なお、コードＣ（ｉ−１），Ｃｉは、それぞれ、この発明における「第１の数値データ」および「第２の数値データ」に対応し、カウント値Ｎ（ｉ−１），Ｎｉは、それぞれ、この発明における「第１のカウント値」および「第２のカウント値」に相当する。また、各（）内の数字は、式（１）内の下付の文字に対応する。
【００７０】
【数１】
2008017422.tif 000003
【００７１】
発振器１１は、数値データに対して遅延量、すなわち発振周期がリニアに変化するという特性を持つ。この発明に従うクロック発生回路は、このような特性を有する発振器を備えることにより、２つの数値データＣｉ，Ｃｉ−１の差分と２つの発振周期の差分１／Ｎｉ、１／Ｎ（ｉ−１）とから、周期の変化に対する数値データの変化の割合を用いて第３の数値データに対応するコードＣＴを算出することができる。発振周期は、カウント値の逆数で表わされるため、上述の式（１）が得られる。
【００７２】
図６は、コード（第３の数値）ＣＴを求める演算式を説明する図である。
図６を参照して、グラフの横軸は発振周期すなわちカウント値の逆数を示し、グラフの縦軸はコードを示す。発振周期に対しコードはリニアに変化する。グラフの直線の傾きは、（Ｃｉ−Ｃ（ｉ＋１））／（１／Ｎｉ−１／Ｎ（ｉ＋１））である。従って、この２点を通る直線を求めることにより、ターゲット値Ｎｔに対応するコードを求めることができる。
【００７３】
次に、実施の形態１による効果について説明する。たとえばコードが、ｍビット（ｍは自然数）の場合、特開平１０−２２８２２号公報（特許文献１）に示される二分検索法では、ｍ回のコード設定およびクロックカウントが行なわれるため、ロックするまでにリファレンスクロックの２・ｍサイクルが必要になる。
【００７４】
実施の形態１によれば、コードのビット数とロックインタイムとは関係しない。実施の形態１では、ロックイン状態において３回のコード生成／設定と２回のクロックカウントが行なわれればよい。従って、リファレンスクロック信号ＣＫｒｅｆの６サイクル目でクロック発生回路１をロックさせることができる。
【００７５】
以上のように、実施の形態１に従えば、コードを３回設定するだけでクロック発生回路をロックさせることができるので、ロックインタイムを短縮することができる。
【００７６】
また、実施の形態１によれば、このクロック発生回路を内蔵するＬＳＩにおいてスタンバイモードからのリカバリ時間を短縮することができる。リカバリ時間におけるロックイン時間の割合が高い（たとえば約６０％）ほど、リカバリ時間が大幅に短縮される。
【００７７】
さらに、実施の形態１によれば、クロック発生回路を内蔵するＬＳＩのリカバリ時間が短縮されるので、このＬＳＩを搭載したシステム（たとえば携帯電話）をスタンバイモードに遷移させる回数を増やすことができる。よって、システムの消費電力を下げることができる。
【００７８】
［実施の形態２］
実施の形態２におけるクロック発生回路の構成自体は、図２に示すクロック発生回路１の構成と同様であり、その詳細説明は省略する。
【００７９】
図７は、実施の形態２におけるロックイン状態での処理フローを示す図である。
図７を参照して、処理が開始されると、まず、ステップＳ１〜Ｓ５においてコードＣ３が求められる。図７の処理フローにおけるステップＳ１〜Ｓ５でのそれぞれの処理は、図４の基本演算処理フローＳ１ＡにおけるステップＳ１〜Ｓ５におけるそれぞれの処理と同様であり、その詳細説明は省略する。基本演算処理ステップＳ１Ａの実行後、ステップＳ６において、カウンタ１２は、クロックカウントを行なって、コードＣ３に対応するカウント値Ｎ３を得る。
【００８０】
ステップＳ７での判定条件は、コードＣＴの計算を終了する終了条件に相当する。この終了条件が満たされるまで、式（１）に従って繰り返し計算が実行される。ステップＳ７において、積和演算器１３は、カウント値Ｎ３とターゲット値Ｎｔとの差を求め、制御回路１７に結果を出力する。差が０である場合、制御回路１７は、クロック発生回路１がロックしたと判定し、ロック後の動作を行なうように、加算器１５およびセレクタ１６等を制御する。
【００８１】
一方、ステップＳ７において差が０でない場合、ステップＳ８において、制御回路１７は、積和演算器１３にコードを再計算するよう指示する。積和演算器１３は、前述の式（１）に従って、ターゲット値Ｎｔを得るためのコードＣ（ｉ＋１）を演算する。ここで、ｉは、３以上の整数である。
【００８２】
続いて、ステップＳ９において、発振器１１は、コードＣ（ｉ＋１）に応じて遅延量を変化させる。カウンタ１２はクロック信号ＣＫｏｕｔのパルス数をカウントして、カウント値Ｎ（ｉ＋１）を得る。ステップＳ９での処理が終了すると、処理は、判定ブロックのステップＳ７に戻る。なお、ステップＳ９からステップＳ７に処理が戻る際に、ｉが１増分され、ｉ＝ｉ＋１と設定される。
【００８３】
すなわち、演算の再実行時には、コードＣｉ，Ｃ（ｉ−１）（第１および第２のコード）として、前回の実行時におけるコードＣ（ｉ＋１），Ｃｉがそれぞれ用いられる。また、演算の再実行時には、カウント値Ｎｉ，Ｎ（ｉ−１）として、前回実行時におけるカウント値Ｎ（ｉ＋１）（前回実行時のコードＣ（ｉ＋１）に応じたカウント値）とカウント値Ｎｉとがそれぞれ用いられる。
【００８４】
このように、実施の形態２においては、カウント値Ｎｉ（第３のカウント値）とターゲット値Ｎｔが一致するまで、ステップＳ７〜Ｓ９の処理が繰返される。
【００８５】
カウント値は、カウンタ１２における切捨て操作により常に整数となる。しかしながら、リファレンスクロック信号ＣＫｒｅｆの周期に対するクロック信号ＣＫｏｕｔの周期の比は、実際には整数ではない可能性が高い。また、発振器１１に含まれる遅延回路の各遅延素子の遅延値も、実際には同一ではなくばらつきが存在する。これらの理由により、実際には、発振周期は、コードに対してリニアに変化しない可能性が高い。
【００８６】
式（１）に誤差が生じた場合、１回目の計算で得られたコードＣ３とコードＣＴとが異なる場合が生じる。しかしながら、コードＣ３はコードＣＴに近似する。従って、コードＣ２，Ｃ３を用いてコードＣＴの再計算を行なうことにより、前回の演算時よりもコードＣＴに近似したコードＣ４が得られる。式（１）の演算を繰返すたびに得られるコードは、コードＣＴに近づくので、従来よりもロックインタイムを短縮することができる。
【００８７】
以上のように、実施の形態２に従えば、コードの計算を繰返し行なうことによって、発振器に含まれる遅延段の特性の誤差や計算の誤差があっても、従来のＰＬＬ回路よりもロックインタイムを短縮することができる。
【００８８】
［実施の形態３］
実施の形態３に従うクロック発生回路の構成自体は、図２に示すクロック発生回路１の構成と同様であり、その詳細説明は省略する。
【００８９】
図８は、実施の形態３におけるロックイン状態での処理フローを示す図である。以下、実施の形態２の処理フローを示す図７と対比して、図８に示される実施の形態３の従う処理フローについて説明する。
【００９０】
図８および図７を参照して、図８に示す処理フローは、図７に示すステップＳ７〜Ｓ９に代えてステップＳ１１〜Ｓ１４が含まれる点で、図７に示す処理フローと異なる。他の処理フローの部分は同様であり、以下においては、ステップＳ１１〜Ｓ１４についてのみ説明し、図７の処理フローと同様の処理ステップに関する説明は、省略する。
【００９１】
ステップＳ１１においては、積和演算器１３は、式（１）に従ってコードＣ（ｉ＋１）を求める。ここで、ｉは３以上の整数である。ステップＳ１２において、積和演算器１３は、コードＣ（ｉ＋１）とコードＣｉとの差を求める。
【００９２】
差が０である場合、ロック後の動作に移り、処理は終了する。すなわち、実施の形態３においては、コードＣ（ｉ＋１）とコードＣｉとが一致する場合に、この発明における「終了条件」が満たされる。一方、差が０でない場合には、ステップＳ１３において、発振器１１にコードＣ（ｉ＋１）が設定される。ステップＳ１４においては、カウンタ１２が、クロック信号ＣＫｏｕｔのパルス数をカウントし、コードＣ（ｉ＋１）に応じたカウント値Ｎ（ｉ＋１）が求められる。ステップＳ１４での処理が終了すると、処理はステップＳ１１に戻る。ステップＳ１４からステップＳ１１に処理が戻る際に、ｉが１増分され、ｉ＝ｉ＋１となる。
【００９３】
以後、コードＣ（ｉ＋１）がコードＣｉと一致するまで、ステップＳ１１〜Ｓ１４の処理が繰返される。
【００９４】
デジタル制御の発振回路においては、遅延時間すなわち発振周波数は連続せずに量子化されている。このため、ターゲット値Ｎｔに対応する発振周波数を実現するコードが存在しない場合がある。
【００９５】
実施の形態３に従えば、カウント値ではなく、算出コードが変化しなくなるまで、すなわち、ターゲット値に対応したコード（量子化されたコード）に達するまでコードの計算が繰返される。従って、発振周波数が量子化されていても、ＰＬＬ回路を確実にロックさせることができる。
【００９６】
また、実施の形態３においても、コードの計算を繰返すほど、得られるコードがターゲットコードＣＴに近づくため、現サイクルにおいて計算により得られたコードと前回の計算によって得られたコードとの差が、計算回数が増加するに伴って小さくなるので、ロックインタイムを短縮することができる。
【００９７】
［実施の形態４］
実施の形態４のクロック発生回路の構成自体は、図２に示すクロック発生回路１の構成と同様であるので、その詳細説明は省略する。
【００９８】
図９は、実施の形態４におけるロックイン状態での処理フローを示す図である。以下、図８と図９とを対比して、この発明の実施の形態４に従うロックイン処理動作について説明する。
【００９９】
図９および図８を参照して、図９に示すこの発明の実施の形態４に従う処理フローは、ステップＳ１３，Ｓ１４に代えてステップＳ２１〜Ｓ２４が含まれる点で、図８に示す実施の形態３に従う処理フローと異なり、他の部分は図８の処理フローと同様である。従って、以下においては、ステップＳ２１〜Ｓ２４についてのみ説明し、図８の処理フローと同様の処理ステップに関する説明は、省略する。
【０１００】
ステップＳ２１において、コードＣ（ｉ＋１）とコードＣｉとの差が＋１か−１かのいずれかであれば、ステップＳ２２において、コードＣ（ｉ＋１）が発振器１１に設定されて全体の処理が終了する。すなわち、実施の形態４においては、コードＣ（ｉ＋１）とコードＣｉとの差が所定の範囲内に含まれる場合に、この発明における「終了条件」が満たされる。
【０１０１】
一方、ステップＳ２１においてＣ（ｉ＋１）−Ｃｉの値が２以上または−２以下の場合には、ステップＳ２３において、コードＣ（ｉ＋１）が発振器１１に設定される。続いて、ステップＳ２４において、クロックカウントが行なわれ、カウント値Ｎ（ｉ＋１）が求められる。ステップＳ２４での処理が終了すると、再びステップＳ１１においてコードの再計算が行なわれる。また、ステップＳ２４からステップＳ１１に処理が戻る際に、ｉ＝ｉ＋１と設定されて，ｉが１増分される。
【０１０２】
ロックイン終了時の周波数は、遅延段の特性、コード計算、またはデジタル制御による発振周波数の量子化によって、誤差を含んでいる。そのため、理想的なロック判定条件を設定すると、その条件は、ロック後のコード更新の条件よりも厳しくなる場合が多い。
【０１０３】
コード計算の繰返し回数が多くなると、ロックインタイムの削減効果が減少する。実施の形態４においては、ロック判定条件にある幅を持たせることによって、ロックイン達成を容易としており、ロックインタイムを短縮することができる。
【０１０４】
なお、先の実施の形態２においても、ロック判定条件（終了条件）に幅を持たせることができる。たとえば、図７のフローチャートにおいて、ステップＳ７での判定条件を、Ｎｉ＝ＮｔまたはＮｉ＝Ｎｔ±１、すなわち、|Ｎｉ−Ｎｉ＋１｜≦１に変更する。この条件を満たす場合に、ロックイン全体の処理を終了させることで、実施の形態４と同様の効果が得られる。
【０１０５】
以上のように、実施の形態４においては、ロック判定条件に幅を持たせており、ロックインタイムを短縮することができる。
【０１０６】
［実施の形態５］
実施の形態５のクロック発生回路の構成自体は、図２のクロック発生回路１の構成と同様であるので、その詳細説明は省略する。
【０１０７】
図１０は、この発明の実施の形態５に従うロックイン状態での処理フローを示す図である。以下、図９と図１０とを対比して、この発明の実施の形態５に従うロックイン処理動作について説明する。
【０１０８】
図１０および図９を参照して、図１０に示すこの発明の実施の形態５に従う処理フローは、ステップＳ２４の後にステップＳ２５が追加されている点で、図９に示す処理フローと異なり、他の部分は図９の処理フローと同様である。従って、以下においては、ステップＳ２５についてのみ説明し、図９の処理フローと同様の処理ステップに関する説明は省略する。
【０１０９】
ステップＳ２５においては、積和演算器１３がコードを計算した回数が、所定回数であるか否かが制御回路１７によって判定される。所定回数は、たとえば８回である。計算回数ｉが、８未満の場合（判定ステップＳ２５においてＹＥＳ）、処理は、再びステップＳ１１に戻る。一方、計算回数ｉが８以上の場合（判定ステップＳ２５においてＮＯ）、制御回路１７が、積和演算器１３に対して演算の終了を指示し、ロックインの全体の処理が終了する。
【０１１０】
なお、所定回数は、適切に設定される。所定回数が８回であれば、最大でもリファレンスクロック信号ＣＫｒｅｆの１６番目のサイクルＴ１６においてロックイン時の処理が終了するので、従来の手法よりもロックインタイムを短縮できる。
【０１１１】
先に、実施の形態４において説明したように、ロック判定条件に幅を持たせることにより、ロックインタイムを短縮できる。しかし、判定条件の幅が小さすぎるとロックインタイムが長くなる。一方、判定条件の幅が大きすぎると、ターゲット値との誤差が大きい状態でロックしたと判定されてしまう。
【０１１２】
コードの計算回数を制限することにより、デジタル制御による量子化の誤差および／または動作環境の変動（たとえば電源電圧の変動やリファレンスクロックのジッタなど）が小さくなるので、ロック後のコード変動が小さいクロック逓倍器においては、精度よくロックさせることができる。また、上述の誤差が大きくロック後のコードの変動が大きくなるクロック逓倍器においては、発振周波数の精度を下げることにより、ロックインタイムを短縮することができる。
【０１１３】
なお、実施の形態２に対してもコードの計算回数を制限することにより、実施の形態５と同様の効果を得ることができる。
【０１１４】
以上のように、実施の形態５に従えば、コードの繰り返し計算回数を制限しており、ロックイン確立時のクロック信号の発振周波数に誤差が存在する場合においても、ロックイン完了とすることができ、ロックインタイムを短縮できる。
【０１１５】
［実施の形態６］
実施の形態６のクロック発生回路の構成自体は、図２のクロック発生回路１の構成と同様である。ただし、実施の形態６においては、図３に示す発振器１１においてコース遅延回路１１Ｃとファイン遅延回路１１Ｆの両方が用いられる点で、実施の形態１から実施の形態５と異なる。
【０１１６】
図１１は、実施の形態６におけるロックイン状態での処理フローを示す図である。
図１１を参照して、処理が開始されると、ステップＳ１Ａ〜Ｓ２９の処理においては、ファインコードが固定された状態で、コースコード（第３の数値データ）が決定される。ファインコードは、数値データとしてファイン遅延回路１１Ｆに入力される微調整データに相当する。この微調整データに従って、先の図３に示す信号ＦＡ１−ＦＡｍが生成される。ファイン遅延回路１１Ｆは、ファインコードに応じてクロック信号ＣＫｏｕｔの遅延時間を変化させる。このときのファインコードＦは、たとえば「０００００」に固定される。この状態においては、図３に示すファイン遅延回路１１Ｆにおいて、遅延素子ＤＬＡにより遅延時間Ｔが与えられる。このファイン遅延回路１１Ｆの遅延時間は、０の状態に初期設定されていてもよく、また、その中央値に初期設定されている構成とされてもよい。
【０１１７】
上述のように、ステップＳ１Ａでのコード演算基本処理は、図４に示すステップＳ１〜Ｓ５までの一連の処理に対応する。従って、ステップＳ１Ａ〜Ｓ２５の各ステップにおける処理は、図１０の処理フローにおいて対応するステップの処理と同様であり、それらの詳細説明は省略する。
【０１１８】
ステップＳ１２において、Ｃ（ｉ＋１）−Ｃｉ＝０の場合、ステップＳ２６において、積和演算器１３により、発振周波数を高くするか低くするか、すなわち、位相をアップ（Ｕｐ）するかダウン（Ｄｏｗｎ）するかが判定される。なお、Ｎ（ｉ＋１）＝Ｎｔであれば、リファレンスクロック信号ＣＫｒｅｆのエッジが、クロック信号ＣＫｏｕｔのＨレベルとＬレベルとのどちらにあるかにより、位相をアップさせるかダウンさせるかが判定される。
【０１１９】
ステップＳ２６において、位相をアップさせる場合には、ステップＳ２７においてコースコードが（Ｃｉ）−１（コードＣｉから１を減じたコード）に設定され、遅延時間（発振周期）が短くされる。ステップＳ２６において位相をダウンさせる場合には、ステップＳ２８において、コースコードが（Ｃｉ）＋１（コードＣｉに１を加えたコード）に設定され、遅延時間（発振周期）が長くされる。
【０１２０】
ステップＳ２６〜Ｓ２８の処理は、コースコードの決定後にファインコードＦを計算するために必要なものである。ファインコードＦは、最小ファイン遅延量を表現する制御ビットでコースコードを分割した分割数（解像度）を有する。すなわち、コースコードのステップをファインコードＦの最大値により除算した幅で、各コースコードのステップが区分される。ファインコードに従ってリニアにファイン遅延回路の遅延時間が変化する。従って、連続した２つのコースコードと、各コースコードに応じたカウント値とから、２点を通る直線を求めて、ターゲット値に対応するカウント値を与える最適なファインコードＦを決定することができる。
【０１２１】
ファイン遅延回路１１Ｆの有する最大遅延時間は、コース遅延回路１１ＣのユニットディレイＴである。従って、あるコースコードが１つ前に求められたコースコードに対して±１だけ異なる場合には、１つ前のコースコードとそのコースコードに対応するカウント値とを用いて、ファインコードＦを計算することができる。しかし、あるコースコードが１つ前に求められたコースコードと２以上の差がある場合、ファインコードＦを計算するためには、＋１または−１だけ互いに異なる２つのコースコードと各コースコードに応じたカウント値が必要になる。
【０１２２】
なお、ステップＳ１２においてＣ（ｉ＋１）−Ｃｉ＝０，±１であることが、この発明における「終了条件」に相当する。ステップＳ２２，Ｓ２７，Ｓ２８において、コースコードが設定されると、続いて、ステップＳ２９において、決定後のコースコードに応じてクロックカウントが行なわれ、カウント値Ｎ（ｉ＋１）が求められる。ステップＳ２９に続いて、ステップＳ３０においては、カウント値Ｎｉ，Ｎ（ｉ＋１）からファインコードＦが計算され、計算後のファインコードＦが、ファイン遅延回路１１Ｆに設定される。
【０１２３】
ファインコードＦは、最後に求められたコースコードＣ（ｎ＋１）、およびコースコードＣ（ｎ＋１）の１つ前のコースコードＣｎとを用いて計算される。ファインコードＦを求める演算式を以下に示す。
【０１２４】
【数２】
2008017422.tif 000004
【０１２５】
ここで、ＦｍａｘはファインコードＦの解像度を示す。たとえばファインコードＦのビット数が５であればＦｍａｘ＝３２である。また、コードＣ（ｎ＋１），ＣｎについてはＣ（ｎ＋１）＝（Ｃｎ）±１の関係が成立する。
【０１２６】
上式（２）は、コードＣ（ｎ）およびＣ（ｎ＋１）を結ぶ直線上で、ターゲット値Ｎｔに対する解像度Ｆｍａｘの比例配分操作を行なうことを示す。
【０１２７】
なお、式（２）において、ファインコードＦがオーバーフローまたはアンダーフローした場合には、ターゲット値がコードＣ（ｎ）およびＣ（ｎ＋１）を結ぶ直線の間の単位遅延領域（Ｆｍａｘで表現可能な領域）にないことを示しており、オーバーフローおよびアンダーフローに応じて、コースコードの増減が行なわれる。このようなオーバーフローまたはアンダーフローは、計算回数の制限により生じる。また、後に詳細に説明するように、ファイン遅延回路の構成（ファインコードに従ってリニアに遅延時間が変化する構成）と設定されるコースコードの値との関係によっても生じる。
【０１２８】
図１２は、図１１の処理フローのステップＳ３０における処理を詳細に示す図である。図１２を参照して、処理が開始されると、まずステップＳ３１において、カウント値Ｎｉ，Ｎ（ｉ＋１）からファインコードＦが計算される。次に、ステップＳ３２において、ファインコードＦの計算時にオーバーフローまたはアンダーフローが発生したか否かが判定される。
【０１２９】
オーバーフローまたはアンダーフローが発生した場合（ステップＳ３２においてＹＥＳ）、ステップＳ３３においてオーバーフローとアンダーフローとのうちのいずれが発生したかが判定される。オーバーフローが発生した場合には、ターゲット値が、コードＣ（ｎ）およびＣ（ｎ＋１）により規定される領域よりも遅延時間（発振周期）が長い領域にあり、ステップＳ３４においてコースコードＣ（ｎ＋１）のインクリメントが行なわれる。逆に、アンダーフローが発生した場合には、ステップＳ３５において、コースコードＣ（ｎ＋１）のデクリメントが行なわれる。
【０１３０】
ステップＳ３４またはステップＳ３５において、コースコードの修正が行なわれると、ファインコード計算のステップＳ３０の全体の処理が終了する。また、ステップＳ３２において、オーバーフローおよびアンダーフローのいずれも発生していない場合（ステップＳ３２においてＮＯ）にも、ステップＳ３０の全体の処理が終了する。
【０１３１】
図１３は、図１２に示すステップＳ３１のファインコードの算出方法を説明するための図である。図１３において、横軸に周期を取り、縦軸にコードの値を取る。図１３において、ファイン遅延回路１１Ｆにおいても、ファインコードに従ってその遅延時間がリニアに変化する。今、ファインコードが５ビットであり、その初期値が（０００００）に設定されている状態が、最大遅延時間を与えるとする（図３の遅延素子ＤＬＡによる遅延時間）。ファイン遅延回路１１Ｆの遅延ステップは、１／Ｆｍａｘである。
【０１３２】
コードＣ（ｉ＋１）の値がコードＣｉよりも高い場合を考える。コードＣｉによりカウント値Ｎｉであり、コードＣ（ｉ＋１）のときにカウント値Ｎ（ｉ＋１）である。この状態においては、図１３に示すように、コードＣｉおよびＣ（ｉ＋１）とカウント値Ｎ（ｉ＋１）の２点を結ぶ直線を考える。コードＣｉおよびＣ（ｉ＋１）の差は１であり、この差１が、ファイン遅延回路（１１Ｆ）の解像度Ｆｍａｘにより分割される。
【０１３３】
従って、直角３角形の相似から、比例配分により、または２点と通る直線の式から差分値ＦＴが求められる。今、コースコードロックインにより、コードＣ（ｉ＋１）がコース遅延回路に設定されている。ファイン遅延回路において、１−ＦＴに従って制御信号ＦＡ１−ＦＡｍを生成することにより、コースコードＣ（ｉ＋１）により設定された遅延時間を短くして、ターゲット値ＮＴに対応する周期の発振信号を得ることができる。
【０１３４】
図１４は、ファインコード算出時の他の例を示す図である。この図１４に示す構成においては、コードＣｉの値がコードＣ（ｉ＋１）の値よりも大きい。図１３に示す場合と同様に、２点を通る直線の式または、相似形に基づく比例配分に従ってファインコードＦＴを求める。この場合、コースコードＣ（ｉ＋１）が設定されており、ファイン遅延回路において遅延時間を長くして、周期１／Ｎｉよりも長いターゲット周期１／ＮＴを設定する必要がある。図３に示すファイン遅延回路１１Ｆの構成においては、遅延時間を短縮する方向にしか、遅延時間を調整することができない。従って、この場合には、前述の式（２）において、符号が負となり、制御信号ＦＡ１−ＦＡｍにより形成されるコード１−ＦＴにおいて、オーバフローが生じるため、最終のコースコードとして、コースコードＣ（ｉ＋１）をインクリメントして、コードＣｉが設定される。これにより、正確にファインコードＦＴに従って、発振器の遅延時間を設定することができる。
【０１３５】
なお、このアンダーフロー／オーバーフローの発生の判定条件は、ファイン遅延回路の構成に応じて、異なり、ファイン遅延回路の構成に応じて適切に設定される。例えば、ファイン遅延回路において初期値（０００００）により、遅延時間が最小値に設定される場合には、遅延時間を長くする方向にしか、遅延時間を調整することができない。この場合には、ファインコードＦＴに従って制御信号ＦＡ１−ＦＡｍが生成される。従って、コードＣ（ｉ＋１）がコードＣｉよりも大きいときに、アンダーフローが生じたと判定され、コードＣ（ｉ＋１）がデクレメントされ、コードＣｉが設定される。
【０１３６】
また、計算回数をステップＳ２５において限定している。従って、この場合には、差分値Ｃ（ｉ＋１）−Ｃｉが１より大きい場合が生じ、ファインコードＦＴにおいてアンダーフロー／オーバーフローが生じる。この場合においても、アンダーフローおよびオーバーフローの判定条件は、用いられるファイン遅延回路の構成に応じて設定される。
【０１３７】
図１５は、図３に示すファイン遅延回路１１ＦにおいてＦＡ０−ＦＡｍとしてＦＡ１−ＦＡ３が用いられ、ｍビットとして３ビットが利用される場合、合成サイズｗＡと遅延良との関係を一覧にして示す図である。
【０１３８】
図１５において、トライステートバッファ２０１が、サイズＷを有し、トライステートバッファ２０２が、サイズ２Ｗを有し、トライステートバッファ２０３が、サイズ４Ｗを有する。制御信号ＦＡ１−ＦＡ３は、最上位ビットがＦＡ３、最下位ビットがＦＡ１として、ファインコードＦＴとの間に１の補数の関係を満たす。制御信号Ｆ０がキャリとして利用される。従って、トライステートバッファの合成サイズｗＡが、ファインコードＦＴの値が増加するにつれて、順次減少し、応じて、遅延量が増大する。遅延素子ＤＬＡによる遅延時間Ｔに代えてトライステートバッファ２０１−２０３によりファインコードＦＴに応じた遅延時間が設定される。
【０１３９】
なお、ファイン遅延回路１１Ｆの構成としては、図１６に示すように、複数の縦続接続される遅延素子（遅延線）ＦＤＬ１−ＦＤＬｋが用いられてもよい。遅延素子ＦＤＬ１−ＦＤＬｋは、それぞれ遅延時間ΔＴを有する。ファインコードがｍビットのときには、ファイン遅延段数ｋは、２ｍで与えられる。遅延素子ＦＤＬ１−ＦＤＬｋの出力を、それぞれ、制御信号ＦＣ１−ＦＣｋに従って導通するスイッチング素子ＦＳＷ１−ＦＳＷｋにより選択して内部ノードＷ４へ、選択遅延素子の出力を結合する。前段のコース遅延回路の出力信号を受ける入力ノードＷ１に対してスイッチング素子ＦＳＷ０を設け、入力ノードＷ１と内部ノードＷ４との間を短絡して、遅延時間０の状態を実現する。内部ノードＷ４の信号を駆動力の大きなバッファＢＦによりバッファ処理して、クロック信号ＣＫｏｕｔを生成する。
【０１４０】
この図１６に示すようなファイン遅延回路を利用しても、ファインコードに従って制御信号を選択的にかつ択一的に活性状態とすることにより、ファインコードに従ってリニアに遅延時間を変化させるファイン遅延回路を実現することができ、この実施の形態６に示されるファインコード設定手法に従って、ファインコードを算出してファイン遅延回路の遅延時間を設定することができる。
【０１４１】
また、図１６に示すファイン遅延回路を利用する場合、２つのコースコードＣｉおよびＣ（ｉ＋１）のうち、コースコードとして値の小さなコースコードを設定して、ファインコードに従って、遅延量を増大させることも可能となる。
【０１４２】
実施の形態６のように、回路構成が異なる２つの遅延回路が発振器に含まれる場合、電圧依存性や温度依存性などの特性、あるいは仕上がりばらつきなどが異なる。従って、コース遅延回路およびファイン遅延回路を同時に動かしてコードの計算を行なうと、それぞれの誤差が重なり、計算結果の誤差が大きくなる。
【０１４３】
そこで、実施の形態６においては、まず、ファインコードＦを固定してコースコードだけを求め、次に、ファインコードＦを求める。実施の形態６では、このような手法に従って各コードを求めることにより、コード計算の誤差を抑えることができる。その結果、計算回数が削減できる可能性が大きくなり、ロックインタイムを短縮することができる。
【０１４４】
また、実施の形態６において、積和演算器は、コースコードとファインコードとを分けてコードを計算する。これによって、各コードのビット数を小さくすることができ、回路規模を削減することができる。
【０１４５】
さらに、実施の形態６では、一旦決定したコースコードを用いてファインコードの計算を行なった際に、オーバーフローまたはアンダーフローが生じた場合には、コースコードを変更する。これによって、より精度の高いコード（コースコードおよびファインコード）を得ることが可能になる。
【０１４６】
［実施の形態７］
実施の形態７のクロック発生回路の構成自体は、図２のクロック発生回路１の構成と同様であるので、以後の説明は繰返さない。また、実施の形態７のクロック発生回路のロックイン時における処理フローは図４に示す処理フローと同様であるので、その詳細説明は省略する。
【０１４７】
実施の形態７においては、前述の式（１）に従ってコードを演算する。ただし、式（１）での除算（コードの差分を周期の差分で割る）において得られる商の符号と余りとを確認して、同じ方向に商の丸めを行なう。
【０１４８】
除算で得られた商を別の値に加算し、小数点以下の数を単に切捨てる丸め処理が行なわれたと仮定する。このような丸め処理では、商が正の場合、和に切り捨てが生じる。一方、商が負の場合、和に切上げが生じる。
【０１４９】
実施の形態７においては、除算により得られた商について、小数部を切捨てる。商の符号が正であれば、商に対して小数部の切り捨てのみ行なわれる。また、商の符号が負かつ余りが０のときにも、商に対して小数部の切り捨てのみが行なわれる。
【０１５０】
一方、商が負かつ余りが０でないときは、商の小数部を切り捨て、かつ、商から１を引く。これにより、式（１）に従って得られるコードは、商の符号に関係なく、値を小さくする切捨ての方向に丸め処理される。
【０１５１】
コードの計算ごとに丸め込みの方向が異なると、計算誤差が増大して、計算回数が増加する可能性がある。実施の形態７においては、商の符号に関係なく同じ方向に丸め込みの処理が行なわれる。これによって、計算誤差を抑制することができ、計算回数が増加するのを防ぐことができ、ロックインタイムを短縮することができる。
【産業上の利用可能性】
【０１５２】
この発明に従うクロック発生回路は、一般に、リファレンスクロック信号を逓倍してターゲットクロック信号を生成するクロック発生回路に適用することができ、高精度かつ低消費電力のクロック発生回路を実現することができる。従って、この発明に従うクロック発生回路を携帯端末の内部クロック発生回路に適用することにより、携帯端末の電池電源寿命を長くすることのできるクロック発生回路を実現することができる。また、プロセッサなどのＬＳＩにおいてクロック発生回路に適用することにより、低消費電力のＬＳＩを実現することができる。
【０１５３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１５４】
【図１】この発明のクロック発生回路の適用例を示す図である。
【図２】図１のクロック発生回路１の構成を示す概略図である。
【図３】図２の発振器１１の構成例を示す図である。
【図４】実施の形態１におけるロックイン状態での処理フローを示す図である。
【図５】ロックイン状態での処理を詳細に説明する図である。
【図６】コードＣＴを求める演算式を説明する図である。
【図７】実施の形態２におけるロックイン状態での処理フローを示す図である。
【図８】実施の形態３におけるロックイン状態での処理フローを示す図である。
【図９】実施の形態４におけるロックイン状態での処理フローを示す図である。
【図１０】実施の形態５におけるロックイン状態での処理フローを示す図である。
【図１１】実施の形態６におけるロックイン状態での処理フローを示す図である。
【図１２】図１１の処理フローにおけるステップＳ３０での処理を詳細に示す図である。
【図１３】この発明の実施の形態６におけるファインコード算出を説明するための図である。
【図１４】この発明の実施の形態６における別のコースコードの組合わせに対するファインコード算出を説明するための図である。
【図１５】ファイン遅延回路の遅延制御信号および遅延量とファインコードとの対応関係の一例を一覧にして示す図である。
【図１６】ファイン遅延回路の変更例を示す図である。
【符号の説明】
【０１５５】
１  クロック発生回路、２  処理部、１１  発振器、１１Ｃ  コース遅延回路、１１Ｆ  ファイン遅延回路、１２  カウンタ、１３  積和演算器、１４  レジスタ、１５  加算器、１６  セレクタ、１７  制御回路、１８  デコーダ、１９  レジスタ、２２  インバータ、２４  キャパシタ、５０  電子機器、１００  半導体集積回路、２０１〜２０ｍ  トライステートバッファ、ＤＬ１〜ＤＬｎ，ＤＬＡ  遅延素子、ＮＡ１  ＮＡＮＤ回路、Ｓ１〜Ｓ３５，Ｓ１Ａ  基本演算処理ステップ、ＳＷ１〜ＳＷｎ  スイッチ、Ｗ１〜Ｗ３  ノード。
【図１】
2008017422.tif 000005
【図２】
2008017422.tif 000006
【図３】
2008017422.tif 000007
【図４】
2008017422.tif 000008
【図５】
2008017422.tif 000009
【図６】
2008017422.tif 000010
【図７】
2008017422.tif 000011
【図８】
2008017422.tif 000012
【図９】
2008017422.tif 000013
【図１０】
2008017422.tif 000014
【図１１】
2008017422.tif 000015
【図１２】
2008017422.tif 000016
【図１３】
2008017422.tif 000017
【図１４】
2008017422.tif 000018
【図１５】
2008017422.tif 000019
【図１６】
2008017422.tif 000020