(57)【特許請求の範囲】
【請求項１】
入力信号に応じた周期の発振信号を生成する発振器と、
電源電圧に応じた検出信号を出力する電圧検出器と、
前記検出信号を時間平均した信号に応じた分周率で前記発振信号を分周して分周信号を生成する分周器と、
前記分周信号と参照信号との位相差に応じた第１の信号と前記検出信号に応じた第２の信号との和を求め、前記和に応じた信号を前記入力信号として前記発振器に供給する加算器と
を含む電子回路。
【請求項２】
前記検出信号及び前記入力信号は複数ビットで表現されたデジタルコードであり、前記発振器はデジタル制御発振器である請求項１記載の電子回路。
【請求項３】
前記電源電圧で駆動する論理回路を更に含み、前記論理回路中のフリップフロップのクロック入力端に前記発振信号が印加される請求項１記載の電子回路。
【請求項４】
前記電圧検出器は、
第１の電圧が印加されるとともに前記発振信号を第１の制御信号に基づいて遅延させた第１の遅延発振信号を出力する第１の可変ディレイラインと、第２の電圧が印加されるとともに前記発振信号を第２の制御信号に基づいて遅延させた第２の遅延発振信号を出力する第２の可変ディレイラインと、前記第２の遅延発振信号が各クロック端子に供給されるとともに前段の第１のフリップフロップのデータ入力からそれぞれ第１の所定ディレイ分遅延させた第１の遅延発振信号がそれぞれデータ入力に入力されるｎ個の第１のフリップフロップと、前段の第２のフリップフロップのクロック入力からそれぞれ第２の所定ディレイ分遅延させた第２の遅延発振信号がそれぞれ各クロック端子に供給されるとともに前記第１の遅延発振信号がそれぞれデータ入力に入力されるｎ個の第２のフリップフロップとを備えるディレイモニタ回路と、
前記ディレイモニタ回路が出力する２ｎ個の出力信号を、入力される２ｎ個のマスク信号に基づいてマスクした２ｎ個のマスク後出力信号を前記検出信号として出力するマスク回路と、
前記検出信号に基づき前記第１の制御信号と前記第２の制御信号とを出力するとともに、前記２ｎ個のマスク信号を出力する制御回路
を含む請求項１乃至３いずれか一項記載の電子回路。
【請求項５】
前記電圧検出器は、
前記電源電圧が印加されるとともに前記発振信号を遅延させた第１の遅延発振信号を出力する擬似クリティカルパス回路と、基準電圧が印加されるとともに前記発振信号を制御信号に基づいて遅延させた第２の遅延発振信号を出力する可変ディレイラインと、入力される選択信号に基づき前記発振信号又は前記第２の遅延発振信号の何れかである第３の遅延発振信号を選択して出力する選択部と、前記第３の遅延発振信号が各第１入力端子に供給されるとともに前段の第１のフリップフロップの第２入力端子からそれぞれ第１の所定ディレイ分遅延させた第１の遅延発振信号がそれぞれ第２入力端子に入力されるｎ個の第１のフリップフロップと、前段の第２のフリップフロップの第１入力端子からそれぞれ第２の所定ディレイ分遅延させた第３の遅延発振信号がそれぞれ各第１入力端子に供給されるとともに前記第１の遅延発振信号がそれぞれ第２入力端子に入力されるｎ個の第２のフリップフロップとを備えるディレイモニタ回路と、
前記ディレイモニタ回路が出力する２ｎ個の出力信号を、入力される２ｎ個のマスク信号に基づいてマスクした２ｎ個のマスク後出力信号を前記検出信号として出力するマスク回路と、
前記検出信号に基づき前記制御信号を出力するとともに、前記２ｎ個のマスク信号を出力する制御回路
を含む請求項１乃至３いずれか一項記載の電子回路。
【請求項６】
前記擬似クリティカルパス回路は、前記電子回路の最大動作周波数に対応するディレイを有する請求項５記載の電子回路。
【請求項７】
発振器への入力信号に応じた周期の発振信号を前記発振器により生成し、
電源電圧に応じた検出信号を生成し、
前記検出信号を時間平均した信号に応じた分周率で前記発振信号を分周して分周信号を生成する分周信号生成処理を実行し、
前記分周信号と参照信号との位相差に応じた第１の信号と前記検出信号に応じた第２の信号との和を求め、前記和に応じた信号を前記入力信号として前記発振器に供給する入力信号供給処理を実行する、
各段階を含む発振器の制御方法。
【請求項８】
第１の可変ディレイラインに印加される第１の駆動電圧と第２の可変ディレイラインに印加される第２の駆動電圧とを等しい電圧に設定し、
前記第１の駆動電圧と前記第２の駆動電圧とが等しい状態で、前記第１の可変ディレイラインの回路遅延と前記第２の可変ディレイラインの回路遅延との回路遅延差がゼロになるように調整する処理を実行し、
前記調整する処理を実行後に前記電源電圧を前記第１の可変ディレイラインに印加する
各段階を更に含み、前記第１の可変ディレイラインが前記電源電圧で駆動し且つ前記第２の可変ディレイラインが前記第２の駆動電圧で駆動している状態で前記回路遅延差に応じた信号を前記検出信号として生成して前記分周信号生成処理及び前記入力信号供給処理を実行する請求項７記載の発振器の制御方法。
【請求項９】
疑似クリティカルパス回路及び可変ディレイラインにそれぞれ前記電源電圧及び所定の駆動電圧を印加し、
前記可変ディレイラインの遅延時間長をクロック信号の１サイクルに等しい長さに調整する処理を実行し、
前記調整する処理を実行後に前記疑似クリティカルパス回路の回路遅延と前記可変ディレイラインの回路遅延との回路遅延差を測定する
各段階を更に含み、前記回路遅延差に応じた信号を前記検出信号として生成して前記分周信号生成処理及び前記入力信号供給処理を実行する請求項７記載の発振器の制御方法。
【請求項１０】
前記調整する処理は、
前記疑似クリティカルパス回路に前記クロック信号を入力し、
前記疑似クリティカルパス回路により遅延された前記クロック信号の第１のパルスと前記クロック信号の前記第１のパルスの直後の第２のパルスとの時間差を測定し、
前記疑似クリティカルパス回路の回路遅延と前記可変ディレイラインの回路遅延との回路遅延差が前記時間差に等しくなるように前記可変ディレイラインの遅延時間長を調整する
各段階を含む請求項９記載の発振器の制御方法。
【請求項１１】
前記クロック信号は前記発振信号である請求項９又は１０記載の発振器の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、電子回路及び発振器の制御方法に関する。
【背景技術】
【０００２】
ＬＳＩ（大規模集積回路）のデジタル回路はクロック信号に同期して動作するため、回路規模が大きい場合には、クロックの遷移タイミングで大電流が消費され、電源電圧にＩＲドロップと呼ばれる電源ノイズが発生する。このＩＲドロップにより、電源電圧は、電源配線及び安定化容量等のインピーダンスにより定まる周波数帯域の電圧変化を示す。一般にこの変動は５０ＭＨｚから１５０ＭＨｚ程度の周波数帯域を有する。
【０００３】
電源電圧が低下すると、ＬＳＩ中の信号経路を伝搬する信号の変化速度が低下し、信号伝搬のタイミング余裕が小さいクリティカルパス等において、適切にデータが転送されない場合がある。そのようなタイミングエラーを回避するために、プロセッサ等のＬＳＩでは、電圧低下に応じて適応的に動作周波数を制御するものがある。具体的には、電圧を測定し、電圧低下に起因するデータパスの遅延の増加量を見積もり、当該遅延増加量を相殺するようにクロック周期を長くする。
【０００４】
クロック周期を変化させる方法として、ＰＬＬ（Phase Locked Loop）回路の分周比を切替える方法が一般的に知られている。この方法では、電圧低下によるタイミングへの影響を測定し、その測定値に基づいてＰＬＬ回路の分周比を変更し、ＰＬＬ回路の発振周波数を下げることにより適応的周波数制御を実現する。
【０００５】
上記の適応的周波数制御では、ＰＬＬ回路の制御系を用いて発振周波数を変更するので、分周比を切り替えてからＰＬＬ回路の発振周波数が目標値になる迄に非常に時間がかかる。具体的には、リファレンスクロックのサイクル数換算で例えば２００サイクル以上の時間が必要になる。電圧低下が遅い変化（周波数にして数十ｋＨｚ程度の変化）であれば、上記の制御でも、クロック周波数の変化は十分に電圧低下に追従できる。
【０００６】
しかし、例えばプロセッサで動作率が上がったとき等に発生するＩＲドロップは、前述のように５０ＭＨｚから１５０ＭＨｚ程度の周波数帯域を有する高速な変化である。そのため、ＰＬＬ回路において分周比を変更する適応的周波数制御では、クロック周波数の変化が電圧低下の速度に間に合わず、タイミングエラーを回避できない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−２８８３２５号公報
【特許文献２】特開２００２−２０２８２９号公報
【非特許文献】
【０００８】
【非特許文献１】Dong Jiao, Bongjin Kim, and Chris H. Kim, "Design, Modeling, and Test of a Programmable Adaptive Phase-Shifting PLL for Enhancing Clock Data Compensation," The Journal of Solid-state Circuits, VOL. 47, NO. 10, October 2012, pp 2505 - 2012
【非特許文献２】M. S. Floyd, et al., "Runtime power reduction capability of the IBM POWER7+ chip," IBM J. RES. & DEV. VOL. 57, NO. 6, PAPER 2, November/December 2013, pp 2:1 - 2:17
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以上を鑑みると、電源ノイズに追従して高速に発振周波数を変化可能な電子回路が望まれる。
【課題を解決するための手段】
【００１０】
電子回路は、入力信号に応じた周期の発振信号を生成する発振器と、電源電圧に応じた検出信号を出力する電圧検出器と、前記検出信号を時間平均した信号に応じた分周率で前記発振信号を分周して分周信号を生成する分周器と、前記分周信号と参照信号との位相差に応じた第１の信号と前記検出信号に応じた第２の信号との和を求め、前記和に応じた信号を前記入力信号として前記発振器に供給する加算器とを含む。
【発明の効果】
【００１１】
少なくとも１つの実施例によれば、電子回路において、電源ノイズに追従して高速に発振周波数を変化させることができる。
【図面の簡単な説明】
【００１２】
【図１】電源ノイズに追従して発振周波数を変化可能な電子回路の実施例の一例を示す図である。
【図２】電源電圧ＶＤＤの急激な変動に対する図１に示すＰＬＬ回路の動作の一例を示す図である。
【図３】電源電圧ＶＤＤの継続的な変動に対する図１に示すＰＬＬ回路の動作の一例を示す図である。
【図４】電源電圧ＶＤＤの継続的な変動に対する図１に示すＰＬＬ回路の動作を説明するための図である。
【図５】電源電圧ＶＤＤの継続的な変動に対する図１に示すＰＬＬ回路の動作を説明するための図である。
【図６】回路遅延測定に基づいて電源ノイズに追従して発振周波数を変化可能な電子回路の実施例の一例を示す図である。
【図７】図６に示す電子回路の変形例を示す図である。
【図８】ディレイモニタ回路の構成の一例を示す図である。
【図９】可変ディレイラインの構成の一例を示す図である。
【図１０】可変ディレイラインのためのコード変換を行うコード変換部を示す図である。
【図１１】マスク回路の構成の一例を示す図である。
【図１２】制御回路による設定動作の一例を示すフローチャートである。
【図１３】回路遅延測定に基づいて電源ノイズに追従して発振周波数を変化可能な電子回路の実施例の別の一例を示す図である。
【図１４】図１３に示す電子回路の変形例を示す図である。
【図１５】クリティカルパスモニタ＆ディレイモニタ回路の構成の一例を示す図である。
【図１６】疑似クリティカルパス回路の構成の一例を示す図である。
【図１７】疑似クリティカルパス回路の構成の別の一例を示す図である。
【図１８】疑似クリティカルパス回路の構成の別の一例を示す図である。
【図１９】疑似クリティカルパス回路の構成の別の一例を示す図である。
【図２０】制御回路による設定動作の一例を示すフローチャートである。
【図２１】制御回路による設定動作の一例を示すタイミング図である。
【発明を実施するための形態】
【００１３】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１４】
図１は、電源ノイズに追従して発振周波数を変化可能な電子回路の実施例の一例を示す図である。図１に示す電子回路は、ＰＬＬ回路１０、ＡＤ変換器１１、平均化部１２、コード変換部１３、及び論理回路１４を含む。ＰＬＬ回路１０は、デジタル制御発振器（ＤＣＯ）２０、分周器２１、位相比較器２２、ループフィルタ２３、正規化部２４、及び加算器２５を含む。論理回路１４はデータパス３０を含み、データパス３０はフリップフロップ３１及び３２、及び回路素子群３３を含む。フリップフロップ３１及び３２のクロック入力端子には、ＰＬＬ回路１０が生成する発振信号（クロック信号）が印加される。
【００１５】
図１において、各ボックスで示される各回路又は機能ブロックと他の回路又は機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。各回路又は機能ブロックは、他のブロックと物理的にある程度分離された１つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の１つの機能を示したものであってもよい。
【００１６】
電源電圧ＶＤＤは論理回路１４に供給され、論理回路１４内の各回路素子は電源電圧ＶＤＤを電源として駆動される。電源電圧ＶＤＤは更に、ＡＤ変換器１１に印加される。ＡＤ変換器１１は、電圧検出器として機能して、印加される電源電圧に応じた検出信号Ｑを生成する。検出信号Ｑは、例えば、各ビットが０又は１の値をとる複数ビットで表現されたデジタルコードであってよい。ＡＤ変換器１１の出力する検出信号Ｑは、平均化部１２に供給されると共に、ＰＬＬ回路１０の加算器２５に供給される。
【００１７】
平均化部１２は、検出信号Ｑの時間平均をとり、平均値信号Ｑａｖｒを生成する。検出信号Ｑがデジタルコードの場合、２以上の所定の数のクロックサイクルに亘り検出信号Ｑの値を加算し、加算結果を当該所定の数で除算することにより、平均値信号Ｑａｖｒを生成してよい。平均化部１２が生成した平均値信号Ｑａｖｒは、コード変換部１３に供給される。
【００１８】
コード変換部１３は、平均値信号Ｑａｖｒに応じた分周率設定コードを生成する。コード変換部１３が生成した分周率設定コードは、分周率を設定するための制御信号としてＰＬＬ回路１０の分周器２１に供給される。
【００１９】
ＰＬＬ回路１０のデジタル制御発振器２０は、デジタル制御発振器２０への入力信号に応じた周期（又は周波数）の発振信号を生成する。デジタル制御発振器２０の発振する発振信号は分周器２１に供給され、分周器２１が、前記分周率設定コードに応じた分周率（即ち検出信号Ｑに応じた分周率）で発振信号を分周して分周信号を生成する。
【００２０】
位相比較器２２は、分周器２１から出力される分周信号と参照信号ＲＥＦとの位相差に応じた位相検出信号を生成する。位相検出信号は、分周信号の位相が参照信号ＲＥＦの位相より遅い場合には例えばマイナス値（或いは所定の基準値より小さい値）となり、分周信号の位相が参照信号ＲＥＦの位相より早い場合には例えばプラス値（或いは所定の基準値より大きい値）となってよい。また位相検出信号は、その値の大きさ（或いは所定の基準値からの差の大きさ）が、分周信号の位相と参照信号ＲＥＦの位相との差に応じたものであってよい。位相検出信号は、例えば、各ビットが０又は１の値をとる複数ビットで表現されたデジタルコードであってよい。
【００２１】
ループフィルタ２３は、位相比較器２２から出力される位相検出信号の低周波成分を通過させ高周波成分を遮断又は抑制する低域通過フィルタであり、例えばデジタルフィルタにより実現されてよい。ループフィルタ２３は、位相検出信号を低域通過フィルタ処理することにより、一時的な細かい変動に影響されずにある程度長い期間に亘る位相差の傾向を示す位相差情報を生成し、生成した位相差情報を正規化部２４に供給する。位相差情報は、例えば、各ビットが０又は１の値をとる複数ビットで表現されたデジタルコードであってよい。
【００２２】
正規化部２４は、供給された位相差情報に所定の係数を乗算することにより、デジタル制御発振器２０の入力信号として適切な値を有する位相差コードを生成する。デジタル制御発振器２０において、入力信号のＬＳＢ（Least Significant Bit）の１ビット変化に対する発振周波数の変化の大きさ（感度）は、発振周波数によって異なる。正規化部２４により、デジタル制御発振器２０の発振周波数に応じた感度の違いを相殺するような係数を位相差情報に乗算することで、デジタル制御発振器２０の感度の周波数依存の影響をなくすことができる。デジタル制御発振器２０の感度の周波数依存の影響を無視してよい場合には、正規化部２４は設けなくともよい。正規化部２４により生成された位相差コードは、加算器２５に供給される。位相差コードは、例えば、各ビットが０又は１の値をとる複数ビットで表現されたデジタルコードであってよい。
【００２３】
加算器２５は、分周信号と参照信号ＲＥＦとの位相差に応じた信号である上記位相差コードとＡＤ変換器１１の出力である検出信号Ｑに応じた信号との和を求め、当該和に応じた信号をデジタル制御発振器２０に入力信号として供給する。加算器２５により位相差コードと加算される信号は、ＡＤ変換器１１の出力である検出信号Ｑそのものであってもよいし、デジタル制御発振器２０の入力として適切なサイズとなるよう検出信号Ｑを定数倍して正規化した信号であってもよい。
【００２４】
また或いは、例えば電源電圧ＶＤＤの低下に応答して検出信号Ｑの値が大きくなる設計であれば、所定値以下の検出信号Ｑを切り捨てることにより、当該所定値以上では検出信号Ｑに等しく、最小値が当該所定値となるように調整した信号を用いてもよい。このように調整した信号を用いることにより、例えば、電源電圧ＶＤＤが所望の値より大きくなった場合には、ＰＬＬ回路１０による周波数調整動作を実行しないような制御動作を実現することができる。即ち、所望のレベルからの電源電圧ＶＤＤの低下に対しては周波数調整を行うが、所望のレベル以上への電源電圧ＶＤＤの上昇に対しては周波数調整を行わないようにしてもよい。
【００２５】
図１に示す例では、正規化部２４の出力である位相差コードと加算器２５により加算される信号は、ＡＤ変換器１１の出力である検出信号Ｑそのものである。但し、例えばＡＤ変換器１１の出力自体に下限値を設けておくことにより、上記のように、所望のレベルからの電源電圧ＶＤＤの低下に対しては周波数調整を行うが、所望のレベル以上への電源電圧ＶＤＤの上昇に対しては周波数調整を行わないようにしてもよい。
【００２６】
デジタル制御発振器２０の入力信号は、例えば、各ビットが０又は１の値をとる複数ビットで表現されたデジタルコードであってよい。デジタル制御発振器２０は例えばＬＣ発振器でよい。複数個のバラクタ等の可変容量素子が並列に接続されることで並列容量を形成し、それら複数の可変容量素子の制御端子のそれぞれに入力信号の対応するビットが印加されてよい。入力信号の各ビットを０又は１に設定することにより並列容量の大きさを制御し、制御された並列容量に応じた周期（又は周波数）でデジタル制御発振器２０が発振してよい。
【００２７】
ＰＬＬ回路１０のデジタル制御発振器２０が発振する発振信号は、クロック信号として論理回路１４に供給される。前述のように、論理回路１４は電源電圧ＶＤＤで駆動する。クロック信号は、論理回路１４中のフリップフロップのクロック端子に印加される。
【００２８】
図１に示す電子回路において、デジタル制御発振器２０の入力信号の値が増加すると、デジタル制御発振器２０の発振信号の周期の長さが増加してよい。逆に、デジタル制御発振器２０の入力信号の値が減少すると、デジタル制御発振器２０の発振信号の周期の長さが減少してよい。この場合、電源電圧ＶＤＤが下降するとＡＤ変換器１１の出力である検出信号Ｑの値が大きくなってよい。仮にデジタル制御発振器２０の入力信号の値の増減とデジタル制御発振器２０の発振信号の周期の長さの増減との関係が上記とは逆であれば、電源電圧ＶＤＤの下降に応答して、ＡＤ変換器１１の出力である検出信号Ｑの値が小さくなってよい。
【００２９】
電源電圧ＶＤＤの下降に応答して検出信号Ｑの値が大きくなり、その状態がある程度長い時間継続すると、平均化部１２の出力である平均値信号Ｑａｖｒの値も大きくなる。コード変換部１３は、平均値信号Ｑａｖｒの値が大きくなると、分周率が小さくなるように分周率設定コードを変化させる。その結果、ＰＬＬ回路１０の発振周波数は低くなり、発振信号の発振周期が長くなる。このように、長い時間の平均で判断して電源電圧ＶＤＤが低下している場合は、平均化部１２の出力である平均値信号Ｑａｖｒの値が大きくなり、ＰＬＬ回路１０の発振するクロック信号の周期が長くなる。
【００３０】
電源電圧ＶＤＤで駆動する論理回路１４においては、電源電圧ＶＤＤが低下すると、各回路素子の出力信号を変化させる駆動力が低下し、回路素子間の信号伝搬速度、ひいてはフリップフロップ間の信号伝搬速度が低下する。例えば、図１に示す論理回路１４において、論理回路１４に含まれるデータパスの中でも例えばデータパス３０がタイミング余裕の小さいクリティカルなパスであるとする。データパス３０では、フリップフロップ３１から出力されたデータが、回路素子群３３中を伝搬して、フリップフロップ３２に取り込まれる。フリップフロップ３２によるデータ取り込みは、ＰＬＬ回路１０が生成するクロック信号（発振信号）に同期して行われる。電源電圧ＶＤＤの低下に起因してデータパス３０のフリップフロップ３１及び３２の間の信号伝搬にかかる時間が増大すると、受信側のフリップフロップ３２におけるデータ取り込みに失敗してしまう可能性がある。
【００３１】
上述のように、長い時間の平均で判断して電源電圧ＶＤＤが低下している場合は、分周率が小さく設定されることにより、ＰＬＬ回路１０の発振するクロック信号の周期が長くなる。これにより、論理回路１４に含まれるデータパス３０等のデータパスにおいて、データ転送の失敗を回避することができる。
【００３２】
論理回路１４がＰＬＬ回路１０のクロック信号に同期して動作すると、クロックの遷移タイミングで電流が消費され、電源電圧ＶＤＤにＩＲドロップが発生する可能性がある。通常の論理回路１４の動作時には顕著なＩＲドロップは発生しないが、論理回路１４が例えばプロセッサであり、その動作モードに遷移が発生した場合等に発生するＩＲドロップは、無視できない程の大きさになる。この場合、前述のように５０ＭＨｚから１５０ＭＨｚ程度の周波数帯域を有する電源電圧ＶＤＤの急激な変動が発生する。
【００３３】
このような急激な電源電圧ＶＤＤの変動が発生した場合、上記のようにコード変換部１３により分周器２１の分周率を変化させるだけでは、デジタル制御発振器２０の発振するクロック信号の周期は十分な速さで変化しない。そもそも平均化部１２による平均化動作により瞬時的な電源電圧ＶＤＤの変動は無視されるが、仮に平均化部１２を設けずに、瞬時的な電源電圧ＶＤＤの変動に応じて分周器２１の分周率を変化させても、クロック信号の周期は十分な速さで変化しない。何故なら、前述のように、ＰＬＬ回路の制御系を用いて発振周波数を変更する場合には、分周率を切り替えてからＰＬＬ回路の発振周波数が目標値に到達する迄に長い時間がかかるからである。
【００３４】
図１に示す電子回路では、ＡＤ変換器１１の出力信号である検出信号Ｑを、デジタル制御発振器２０への入力信号に加算器２５を介して加算することにより、急激な電源電圧ＶＤＤの変動に対して瞬時にＰＬＬ回路１０の発振周波数を変化させることができる。即ち、ＰＬＬ回路１０では、デジタル制御発振器２０へのデジタルコード入力に対して検出信号Ｑに相当するデジタルコードを加算しているので、電源電圧ＶＤＤの低下により検出信号Ｑの値が大きくなると、デジタル制御発振器２０への入力値が大きくなる。デジタル制御発振器２０は、入力値に応じた発振周期で発振するように設計されており、入力値が大きくなると発振周期の長さが増大する。この発振周期の制御は、デジタル制御発振器２０の入力を直接に調整して実現しているので、電源電圧ＶＤＤの変動に直ぐに反応して迅速に発振周期が変動する。即ち、電源電圧ＶＤＤの変動に追従する発振周期の変化を実現することが可能となる。
【００３５】
図２は、電源電圧ＶＤＤの急激な変動に対する図１に示すＰＬＬ回路の動作の一例を示す図である。図２において、（ａ）は電源電圧ＶＤＤの電圧値を示す。（ｂ）はＰＬＬ回路１０の発振周期を示す。（ｃ）はＰＬＬ回路１０の発振周期の平均値を示す。（ｄ）は論理回路１４のクリティカルパスであるデータパス３０のタイミング余裕を示す。各波形図における横軸は時間である。電圧Ｖ１は、図１に示される電子回路に供給される電源電圧ＶＤＤの所望の電圧レベルである。発振周期Ｔ１は、電源電圧ＶＤＤに対応するＰＬＬ回路１０の所望の発振周期である。
【００３６】
まず図２（ａ）に示すように、例えばＩＲドロップにより、電源電圧ＶＤＤにおいて波形４１で示す変動が発生する。この電圧変動は、５０ＭＨｚから１５０ＭＨｚ程度の周波数帯域を有する高速な変化である。ＩＲドロップにより電源電圧ＶＤＤが所望の電圧Ｖ１から低下し、その後、安定化容量や電源配線を介しての電流供給により電圧が回復し、回復時の電流供給により電圧のオーバーシュートが発生し、電源電圧ＶＤＤは一時的に所望の電圧Ｖ１よりも高くなっている。
【００３７】
波形４１の電圧低下に応答してデジタル制御発振器２０へのデジタルコード入力が増大し、デジタル制御発振器２０の発振周期が、図２（ｂ）に波形４２として示すように変化する。ＰＬＬの制御ループ（位相同期ループ）のループフィルタ２３による平均化或いは積分機能を考慮した発振周期の平均値は、図２（ｃ）に波形４３として示すように変化する。
【００３８】
データパス３０のタイミング余裕における電源電圧ＶＤＤの変動の寄与分は、図２（ａ）に示す電源電圧ＶＤＤの変動の波形４１と同様に変化する。また、データパス３０のタイミング余裕におけるクロック周期の調整の寄与分は、図２（ｂ）に示すクロック周期の変化の波形４２と同様に変化する。従って、電源電圧ＶＤＤの変動分をクロック周期の調整分で相殺したタイミング余裕は、図２（ａ）の波形４１と図２（ｂ）の波形４２とをサイズを適宜合わせて合算したものとなり、例えば図２（ｄ）に示す波形４４のようになる。図２（ｄ）の波形４４に示されるように、タイミング余裕がゼロであるレベル以上の状態（即ちある程度のタイミング余裕が存在する状態）が維持されており、論理回路１４はタイミングエラーなく適切に動作することができる。
【００３９】
図３は、電源電圧ＶＤＤの継続的な変動に対する図１に示すＰＬＬ回路の動作の一例を示す図である。図３において、（ａ）は電源電圧ＶＤＤの電圧値を示す。（ｂ）はＰＬＬの制御ループの目標となる発振周期であり、分周器２１に設定される分周率に応じた発振周期を示す。（ｃ）はＰＬＬ回路１０の発振周期を示す。（ｄ）はＰＬＬ回路１０の発振周期の平均値を示す。（ｅ）は論理回路１４のクリティカルパスであるデータパス３０のタイミング余裕を示す。各波形図における横軸は時間である。電圧Ｖ１は、図１に示される電子回路に供給される電源電圧ＶＤＤの所望の電圧レベルである。発振周期Ｃ１は、電源電圧ＶＤＤに対応するＰＬＬ回路１０の目標の発振周期である。発振周期Ｔ１は、電源電圧ＶＤＤに対応するＰＬＬ回路１０の所望の発振周期である。
【００４０】
図３（ａ）に示す例では、ＩＲドロップにより、電源電圧ＶＤＤに波形５１で示す周期的な変動が発生している。この電圧変動は、５０ＭＨｚから１５０ＭＨｚ程度の周波数帯域を有する高速な変化である。例えばプロセッサ等のＬＳＩの動作モードが周期的にスタンバイモードから動作モードに遷移する場合等に、図３（ａ）に示すような電源電圧ＶＤＤの変動が発生する。なお図３（ａ）の波形５１では、所望の電圧Ｖ１の上側の波形と電圧Ｖ１の下側の波形とが略同一振幅のように示されている。しかしながら、実際には、ＩＲドロップによる電源電圧ＶＤＤの低下とその後のオーバーシュートによる電源電圧ＶＤＤの上昇とにより波形５１が形成されるので、電圧Ｖ１の上側の波形は電圧Ｖ１の下側の波形よりも小さな振幅となる。
【００４１】
図３（ａ）に示される電源電圧ＶＤＤの波形５１では、電源電圧ＶＤＤが平均的に所望の電圧Ｖ１よりも低下している状態が持続するので、ＰＬＬの制御ループの目標発振周期、即ち、分周器２１に設定される分周率に対応する発振周期の長さが増大する。従って、図３（ｂ）に波形５２として示されるように、ＰＬＬの制御ループの目標となる発振周期は増大する。
【００４２】
また、図３（ａ）に示される波形４１の電圧低下に応答してデジタル制御発振器２０へのデジタルコード入力が増大し、デジタル制御発振器２０の発振周期が、図３（ｃ）に波形５３として示すように変化する。更に、ＰＬＬの制御ループ（位相同期ループ）のループフィルタ２３による平均化或いは積分機能を考慮した発振周期の平均値は、図３（ｄ）に波形５４として示すように変化する。
【００４３】
更に、電源電圧ＶＤＤの変動分をクロック周期の調整分で相殺したタイミング余裕は、図３（ａ）の波形５１と図３（ｃ）の波形５３とをサイズを適宜合わせて合算したものとなり、例えば図３（ｅ）に示す波形５５のようになる。図３（ｅ）の波形５５に示されるように、タイミング余裕がゼロであるレベル以上の状態（即ちある程度のタイミング余裕が存在する状態）が維持されており、論理回路１４はタイミングエラーなく適切に動作することができる。
【００４４】
図３（ａ）乃至（ｅ）に示す動作例では、ＰＬＬの制御ループのループフィルタ２３による平均化或いは積分機能を考慮した発振周期の平均値（図３（ｄ））は、ＰＬＬの制御ループの目標発振周期（図３（ｂ））と略一致している。これは、ＰＬＬの制御ループの動作により発振周期の平均値が目標発振周期に追従しているというよりは、寧ろ、デジタル制御発振器２０の入力への検出信号Ｑの加算による発振周期の平均値の増加が、目標発振周期の増加に一致した結果である。検出信号Ｑの加算による発振周期の平均値の増加が、目標発振周期の増加に一致した結果、ＰＬＬの制御ループの安定状態（位相ロックした状態）が実現され、図３（ｂ）の波形５２と図３（ｄ）の波形５４とは一致する状態が保たれている。
【００４５】
図４は、電源電圧ＶＤＤの継続的な変動に対する図１に示すＰＬＬ回路の動作を説明するための図である。図４に示す各波形は、図１に示すＰＬＬ回路において、デジタル制御発振器２０の入力信号に対してＡＤ変換器１１の検出信号Ｑを加算する加算器２５の加算動作を停止した場合に、電源電圧ＶＤＤの継続的な変動に対してどのようにＰＬＬ回路が動作するかを示す。図４（ａ）乃至（ｅ）に示される信号は、図３（ａ）乃至（ｅ）に示される信号と同様である。
【００４６】
図４（ａ）に示される電源電圧ＶＤＤの波形６１では、電源電圧ＶＤＤが平均的に所望の電圧Ｖ１よりも低下している状態が持続するので、ＰＬＬの制御ループの目標発振周期、即ち、分周器２１に設定される分周率に対応する発振周期の長さが増大する。従って、図４（ｂ）に波形６２として示されるように、ＰＬＬの制御ループの目標となる発振周期は増大する。
【００４７】
ＰＬＬの制御ループの目標発振周期が図４（ｂ）に示されるように増大することにより、デジタル制御発振器２０の発振周期が、図４（ｃ）に波形６３として示すように変化する。更に、ＰＬＬの制御ループ（位相同期ループ）のループフィルタ２３による平均化或いは積分機能を考慮した発振周期の平均値は、図４（ｄ）に波形６４として示すように変化する。
【００４８】
この動作例では、ＰＬＬの制御ループのループフィルタ２３による平均化或いは積分機能を考慮した発振周期の平均値（図４（ｄ））は、ＰＬＬの制御ループの目標発振周期（図４（ｂ））の増大に追従するように、徐々に増大している。これは、発振周期の平均値が目標発振周期に追従するように、ＰＬＬの制御ループの動作により発振周期が変化するためである。前述のように、図４（ａ）乃至（ｅ）に示す動作例は、デジタル制御発振器２０の入力信号に対してＡＤ変換器１１の検出信号Ｑを加算する加算器２５の加算動作を停止した場合に、ＰＬＬ回路がどのように動作するのかを示す例である。図４（ｃ）に示すＰＬＬ回路１０の発振周期は、図３（ｃ）に示す発振周期とは異なり、急峻な電源電圧変化に応答した高速な変化は示さない。
【００４９】
電源電圧ＶＤＤの変動分をクロック周期の調整分で相殺したタイミング余裕は、図４（ａ）の波形６１と図４（ｃ）の波形６３とをサイズを適宜合わせて合算したものとなり、例えば図４（ｅ）に示す波形６５のようになる。図４（ｅ）の波形６５に示されるように、電源電圧ＶＤＤが変動を開始してからしばらくの間は、電源電圧ＶＤＤの変動に発振周期が高速に応答することができず、タイミング余裕がゼロ以下にまで低下する状態が発生してしまう。そのため、図１に示す電子回路の論理回路１４は、タイミングエラーにより適切に動作できない可能性がある。その後、ＰＬＬの制御ループによる制御動作により、ＰＬＬ回路１０の発振周期が徐々に増大すると、タイミング余裕も徐々に増大し、タイミング余裕がゼロであるレベル以上の状態が維持されるようになる。
【００５０】
図４（ａ）乃至（ｅ）に示されるように、ＡＤ変換器１１の出力である検出信号Ｑに応じて分周器２１の分周率を変化させるだけでは、電源電圧ＶＤＤに急激な変動があった場合に、当該変動に応じて高速に発振周期を変化させることができない。その結果、タイミング余裕がなくなり、論理回路１４のデータパスにおいてタイミングエラーが発生してしまう。従って、図１に示されるＰＬＬ回路１０のように、分周率を制御する動作に加え、更に、デジタル制御発振器２０の入力信号に対してＡＤ変換器１１の検出信号Ｑを加算器２５により加算し、直接にデジタル制御発振器２０の発振周期を変化させることが好ましい。
【００５１】
図５は、電源電圧ＶＤＤの継続的な変動に対する図１に示すＰＬＬ回路の動作を説明するための図である。図５に示す各波形は、図１に示すＰＬＬ回路において、分周器２１の分周率をＡＤ変換器１１の検出信号Ｑに応じて調整する動作を停止した場合に、電源電圧ＶＤＤの継続的な変動に対してどのようにＰＬＬ回路が動作するかを示す。図５（ａ）乃至（ｅ）に示される信号は、図３（ａ）乃至（ｅ）に示される信号と同様である。
【００５２】
図５（ａ）に示される電源電圧ＶＤＤの波形７１では、電源電圧ＶＤＤが平均的に所望の電圧Ｖ１よりも低下している状態が持続する。但し、図５（ａ）乃至（ｅ）に示される動作においては、ＰＬＬの制御ループの目標発振周期を調整する動作を停止した場合を想定しているので、図５（ｂ）に波形７２として示されるように、ＰＬＬの制御ループの目標となる発振周期は同一の値Ｃ１を維持する。
【００５３】
また、図５（ａ）に示される波形７１の電圧低下に応答してデジタル制御発振器２０へのデジタルコード入力が加算器２５の加算動作により増大し、デジタル制御発振器２０の発振周期が、図５（ｃ）に波形７３として示すように変化する。更に、ＰＬＬの制御ループ（位相同期ループ）のループフィルタ２３による平均化或いは積分機能を考慮した発振周期の平均値は、図５（ｄ）に波形７４として示すように変化する。
【００５４】
この動作例では、図５（ｃ）に波形７３として示すように発振周期が電源変動に高速に応答して増大するので、ＰＬＬの制御ループのループフィルタ２３による平均化或いは積分機能を考慮した発振周期の平均値（図５（ｄ））も最初に増加を示す。しかしその後、図５（ｄ）に波形７４として示されるように、ＰＬＬの制御ループの目標発振周期（図５（ｂ））の一定値Ｃ１に相当する周期Ｔ１に近づくように、発振周期の平均値は徐々に減少している。これは、発振周期の平均値が目標発振周期に近づくように、ＰＬＬの制御ループの動作により発振周期が変化するためである。
【００５５】
電源電圧ＶＤＤの変動分をクロック周期の調整分で相殺したタイミング余裕は、図５（ａ）の波形７１と図５（ｃ）の波形７３とをサイズを適宜合わせて合算したものとなり、例えば図５（ｅ）に示す波形７５のようになる。図５（ｅ）の波形７５に示されるように、電源電圧ＶＤＤが変動を開始してからしばらくの間は、電源電圧ＶＤＤの変動に発振周期が高速に応答しているので、タイミング余裕がゼロレベル以上である状態が維持される。しかしながら、その後、ＰＬＬの制御ループによる制御動作により、ＰＬＬ回路１０の発振周期が徐々に減少すると、タイミング余裕も徐々に減少し、タイミング余裕がゼロであるレベル以下の状態が発生してしまう。従って、図１に示す電子回路の論理回路１４は、タイミングエラーにより適切に動作できない可能性がある。
【００５６】
図５（ａ）乃至（ｅ）に示されるように、デジタル制御発振器２０の入力信号に対してＰＬＬループ外部から信号加算して直接にデジタル制御発振器２０の発振周期を変化させるだけでは、目標発振周期と平均発振周期とが異なってしまう。その結果、図５（ａ）に示すような電源電圧ＶＤＤの変動が発生する場合、ある程度以上の長い時間が変動発生から経過すると、ＰＬＬの制御ループの動作による発振周期の減少により、タイミングエラーが発生する可能性がある。従って、図１に示されるＰＬＬ回路１０のように、デジタル制御発振器２０の入力信号に対してＰＬＬループ外部から信号加算して直接にデジタル制御発振器２０の発振周期を変化させる動作に加え、更に、分周率を制御する動作を実行することが好ましい。
【００５７】
これまでの説明のように、図１に示される電子回路においては、電源電圧ＶＤＤの低下によりＡＤ変換器１１の出力である検出信号Ｑのデジタルコードの値が大きくなると、デジタル制御発振器２０の発振周期の長さが増大する。このとき、電源電圧ＶＤＤのΔＶの低下に対して、ＡＤ変換器１１の出力である検出信号Ｑのデジタルコードが１ＬＳＢ増大し、発振周期の長さがΔＴｏ長くなるとする。また、電源電圧ＶＤＤのΔＶの低下により、論理回路１４のデータパス３０における信号の伝搬時間がΔＴｐ増大するとする。この場合、検出信号Ｑの１ＬＳＢの増大に応答する発振周期の増大ΔＴｏが、データパス３０の信号伝搬時間の増大ΔＴｐよりも大きいか等しいことが好ましい。またタイミングエラーを回避しつつ最速の動作速度を実現するためには、検出信号Ｑの１ＬＳＢの増大に応答する発振周期の増大ΔＴｏが、データパス３０の信号伝搬時間の増大ΔＴｐと等しいことが好ましい。従って、これらの条件を満たすように、入力デジタルコードの１ＬＳＢ変化に対するデジタル制御発振器２０の発振周期の変化（即ち発振周期制御の感度）を調整することが好ましい。
【００５８】
図１に示す構成では、電圧検出器として機能するＡＤ変換器１１が検出信号Ｑを出力しているが、検出信号Ｑを生成する電圧検出器としては、アナログの電源電圧をデジタルの検出信号Ｑに変換するＡＤ変換機能に基づくものに限られない。電圧検出器は、電源電圧の電圧変化に起因する回路遅延を測定して、当該回路遅延を示す測定値を検出信号Ｑとして出力してもよい。
【００５９】
図６は、回路遅延測定に基づいて検出信号Ｑを生成する電圧検出器を用いることにより、電源ノイズに追従して発振周波数を変化可能な電子回路の実施例の一例を示す図である。図６において、図１と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００６０】
図６に示す電子回路は、図１に示すおけるＡＤ変換器１１の代わりに、制御回路８０、ディレイモニタ回路（ＤＤＭ）８１、マスク回路（ＭＡＳＫ）８２、及びＰＬＬ回路８３を含む。制御回路８０、ディレイモニタ回路８１、及びマスク回路８２が、電圧検出器に相当する。
【００６１】
制御回路８０は、ディレイモニタ回路８１及びマスク回路８２を制御する回路である。制御回路８０は、それぞれｋビット（ｋは２以上の整数）の第１の制御信号Ｃ及び第２の制御信号Ｒをディレイモニタ回路８１に供給すると共に、２ｎビット（ｎは１以上の整数）のマスク信号Ｍをマスク回路８２に供給する。ディレイモニタ回路８１は、前記第１及び第２の制御信号Ｃ及びＲによりそれぞれ遅延時間が設定される２つの可変ディレイラインの回路遅延差を、クロック信号に基づいて測定し、当該測定の結果を回路遅延測定値として出力する。これら２つの可変ディレイラインはそれぞれ電源電圧ＶＤＤ及び基準電圧ＶＲＥＦにより駆動し、２つの可変ディレイラインの回路遅延差の変化が電源電圧ＶＤＤの変化を示すことになる。マスク回路８２は、ディレイモニタ回路８１が出力する２ｎビットの回路遅延測定値を、マスク信号Ｍに基づいてビット毎にマスクし、２ｎビットのマスク後の回路遅延測定値を出力する。このマスク後の回路遅延測定値は、検出信号Ｑとして、ＰＬＬ回路１０及び平均化部１２に供給される。
【００６２】
ディレイモニタ回路８１が使用するクロック信号は、ＰＬＬ回路８３からディレイモニタ回路８１のクロック入力端子ＣＫに供給されてよい。以降、このクロック信号をクロック信号ＣＫと表記する。ディレイモニタ回路８１は、１つのクロックパルスが上記２つの可変ディレイラインを通過する際の時間差に基づいて回路遅延を測定する。この際、クロック信号ＣＫ中の一連の複数のクロックパルスのうち、回路遅延を一回測定するためには１つのクロックパルスのみが用いられ、回路遅延を一回のみ測定するのであれば単発のパルス信号をディレイモニタ回路８１に供給すればよい。複数のクロックパルスを継続的にディレイモニタ回路８１に供給することによって、複数回の回路遅延測定が継続的に行われることになる。従って、回路遅延測定値そのものはクロック信号ＣＫの周波数に依存することはなく、クロック信号ＣＫの周波数は、回路遅延を測定するサンプリング周期を規定するものとして、適宜設定されればよい。
【００６３】
図７は、図６に示す電子回路の変形例である。図７に示す電子回路においては、ディレイモニタ回路８１が使用するクロック信号ＣＫはＰＬＬ回路１０から供給される。即ち、ＰＬＬ回路１０のデジタル制御発振器２０が生成して論理回路１４に供給されるクロック信号が、ディレイモニタ回路８１のクロック入力端子ＣＫにも印加される。前述のように、ディレイモニタ回路８１が出力する回路遅延測定値は、クロック入力端子ＣＫに印加されるクロック信号の周波数には依存しない。従って、制御対象として周波数が変化するＰＬＬ回路１０の発振周波数をクロック入力端子ＣＫに印加する構成としても、ディレイモニタ回路８１による回路遅延測定結果が、ＰＬＬ回路１０の制御に伴い変化してしまうことはない。即ち、ディレイモニタ回路８１は、ＰＬＬ回路１０の発振周波数の変化に影響を受けることなく、電源電圧ＶＤＤの変化のみを検出することができる。図７の電子回路の構成とすることにより、図６の電子回路の構成に比較して、ＰＬＬ回路の数を削減することが可能となる。
【００６４】
図８は、ディレイモニタ回路８１の構成の一例を示す図である。図８に示すディレイモニタ回路８１は、第１の可変ディレイライン９０、第２の可変ディレイライン９１、及び時間差測定回路９２を含む。
【００６５】
第１の可変ディレイライン９０は、電源電圧ＶＤＤが印加されるとともに、クロック信号ＣＫを第１の制御信号Ｃに基づいて遅延させた第１の遅延発振信号を出力する。第２の可変ディレイライン９１は、基準電圧ＶＲＥＦが印加されるとともに、クロック信号ＣＫを第２の制御信号Ｒに基づいて遅延させた第２の遅延発振信号を出力する。
【００６６】
時間差測定回路９２は、複数の遅延回路１０１、複数の遅延回路１０２、ｎ個の第１のフリップフロップ１０３、及びｎ個の第２のフリップフロップ１０４を含む。第１のフリップフロップ１０３においては、第２の可変ディレイライン９１の出力する第２の遅延発振信号が各クロック端子に供給される。また、前段の第１のフリップフロップ１０３のデータ入力から遅延回路１０１によりそれぞれ第１の所定ディレイ分遅延させた、第１の可変ディレイライン９０の出力である第１の遅延発振信号が、それぞれのデータ入力端子に入力される。
【００６７】
第２のフリップフロップ１０４においては、第１の可変ディレイライン９０の出力する第１の遅延発振信号がそれぞれのデータ入力端子に入力される。また、前段の第２のフリップフロップ１０４のクロック入力から遅延回路１０２によりそれぞれ第２の所定ディレイ分遅延させた、第２の可変ディレイライン９１の出力である第２の遅延発振信号が各クロック端子に供給される。なお遅延回路１０１の各々の遅延時間（ディレイ）と遅延回路１０２の各々の遅延時間（ディレイ）とは等しくてよい。即ち、上記の第１の所定ディレイと第２の所定ディレイとは等しくてよい。
【００６８】
時間差測定回路９２の出力する２ｎビットの回路遅延測定値Ｑ［２ｎ−１：０］は、ｎ個の第２のフリップフロップ１０４のｎビットの出力データを下位ｎビットとし、ｎ個の第２のフリップフロップ１０４のｎビットの出力データを下位ｎビットとする。第１の可変ディレイライン９０と第２の可変ディレイライン９１との遅延時間が等しい場合、回路遅延測定値Ｑ［２ｎ−１：０］は、上位ｎビットが全て０であり、下位ｎビットが全て１となる。この値を有する回路遅延測定値Ｑ［２ｎ−１：０］を、｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝と表記する。ｎが例えば４の場合、回路遅延測定値Ｑ［７：０］は"００００１１１１"となる。
【００６９】
第１の可変ディレイライン９０の回路遅延が第２の可変ディレイライン９１の回路遅延よりも長い場合には、第１の可変ディレイライン９０の出力する第１の遅延発振信号が第２の可変ディレイライン９１の発信する第２の遅延発振信号よりも遅れることになる。この場合、ｎ個の第２のフリップフロップ１０４のうちで例えば図面の一番左に位置する第２のフリップフロップ１０４は、第１の遅延発振信号がＨＩＧＨになる前に第１の遅延発振信号をデータ入力として取り込むことになる。その結果、ｎ個の第２のフリップフロップ１０４のｎビットの出力データのうちの何ビットかは、１ではなく０になる。第１の可変ディレイライン９０と第２の可変ディレイライン９１との回路遅延差が、前記の所定ディレイの例えば３個分と４個分との間に相当する場合、ｎ＝４の場合の回路遅延測定値Ｑ［７：０］は"０００００００１"となる。また、第１の可変ディレイライン９０と第２の可変ディレイライン９１との回路遅延差が、前記の所定ディレイの例えば２個分と３個分との間に相当する場合、ｎ＝４の場合の回路遅延測定値Ｑ［７：０］は"００００００１１"となる。
【００７０】
第１の可変ディレイライン９０の回路遅延が第２の可変ディレイライン９１の回路遅延よりも短い場合には、第１の可変ディレイライン９０の出力する第１の遅延発振信号が第２の可変ディレイライン９１の発信する第２の遅延発振信号よりも早まることになる。この場合、ｎ個の第１のフリップフロップ１０３のうちで例えば図面の一番左に位置する第２のフリップフロップ１０４は、第１の遅延発振信号がＨＩＧＨになった後に第１の遅延発振信号をデータ入力として取り込むことになる。その結果、ｎ個の第１のフリップフロップ１０３のｎビットの出力データのうちの何ビットかは、０ではなく１になる。第１の可変ディレイライン９０と第２の可変ディレイライン９１との回路遅延差が、前記の所定ディレイの例えば３個分と４個分との間に相当する場合、ｎ＝４の場合の回路遅延測定値Ｑ［７：０］は"０１１１１１１１"となる。また、第１の可変ディレイライン９０と第２の可変ディレイライン９１との回路遅延差が、前記の所定ディレイの例えば２個分と３個分との間に相当する場合、ｎ＝４の場合の回路遅延測定値Ｑ［７：０］は"００１１１１１１"となる。
【００７１】
なお図８に示す回路構成では、第１の可変ディレイライン９０の出力がフリップフロップ１０３及び１０４のデータ入力端子に印加され、第２の可変ディレイライン９１の出力がフリップフロップ１０３及び１０４のクロック端子に印加される。この逆に、第１の可変ディレイライン９０の出力がフリップフロップ１０３及び１０４のクロック端子に印加され、第２の可変ディレイライン９１の出力がフリップフロップ１０３及び１０４のデータ入力端子に印加されてもよい。この場合、第１の可変ディレイライン９０と第２の可変ディレイライン９１との回路遅延差の変化に応じた回路遅延測定値Ｑ［２ｎ−１：０］の増減が上記とは逆になるが、それを考慮に入れて、回路遅延測定値Ｑに基づく制御動作を適宜設計すればよい。
【００７２】
このようにしてディレイモニタ回路８１は、第１の可変ディレイライン９０と第２の可変ディレイライン９１との回路遅延差を示すサーモメータコードである回路遅延測定値Ｑ［２ｎ−１：０］を出力する。第１の可変ディレイライン９０は電源電圧ＶＤＤにより駆動し、第２の可変ディレイライン９１は基準電圧ＶＲＥＦにより駆動する。ここで基準電圧ＶＲＥＦは、電源電圧ＶＤＤとは別個に外部から供給される電源電圧であり、図６又は図７に示す電子回路の他の回路部分で使用されることはなく、雑音の混じっていない、変動のない、一定電圧に維持される電圧である。従って、第１の可変ディレイライン９０と第２の可変ディレイライン９１との回路遅延差を示す回路遅延測定値Ｑ［２ｎ−１：０］は、電源電圧ＶＤＤの値を一義的に反映したものとなる。電源電圧ＶＤＤが低下すると、第１の可変ディレイライン９０の回路遅延は長くなり、電源電圧ＶＤＤが上昇すると、第１の可変ディレイライン９０の回路遅延は短くなる。従って、電源電圧ＶＤＤが低下すると、回路遅延測定値Ｑ［２ｎ−１：０］中の値０のビット数が多くなり、電源電圧ＶＤＤが上昇すると、回路遅延測定値Ｑ［２ｎ−１：０］中の値１のビット数が多くなる。
【００７３】
第１の可変ディレイライン９０の回路遅延と第２の可変ディレイライン９１の回路遅延とが同一長となるように回路を製造したくとも、プロセスばらつきや配線ばらつきの影響により、同一長にすることは困難である。従って、予め実行する初期化作業により、第１の可変ディレイライン９０の回路遅延と第２の可変ディレイライン９１の回路遅延とが同一長となるように設定しておくことが望ましい。この初期設定の作業については、後ほど説明する。
【００７４】
図９は、可変ディレイラインの構成の一例を示す図である。図８に示す第１の可変ディレイライン９０及び第２の可変ディレイライン９１の各々は、図９に示す可変ディレイラインの回路構成を含んでよい。図９に示す可変ディレイラインは、複数個のインバータ１１１、２ｋ個のスイッチ回路１１２、及び複数個の容量素子１１３を含む。インバータ１１１が縦続接続され、ディレイラインを形成する。２ｋ個のスイッチ回路１１２のそれぞれには、スイッチ制御コードＴ［０］乃至Ｔ［２ｋ−１］が印加される。スイッチ回路１１２の各々は、印加されるスイッチ制御コードの対応ビット値が１の場合にオンになり（導通され）、当該スイッチ回路１１２に直列に接続される容量素子１１３がインバータ１１１の出力に接続される。スイッチ回路１１２の各々は更に、印加されるスイッチ制御コードの対応ビット値が０の場合にオフになり（遮断され）、当該スイッチ回路１１２に直列に接続される容量素子１１３がインバータ１１１の出力から分離される。
【００７５】
スイッチ制御コードＴ［０］乃至Ｔ［２ｋ−１］の値１のビット数が多いほど、図９に示すディレイラインに接続される容量素子１１３の個数が多くなり、遅延時間が長くなる。またスイッチ制御コードＴ［０］乃至Ｔ［２ｋ−１］の値０のビット数が多いほど、図９に示すディレイラインに接続される容量素子１１３の個数が小さくなり、遅延時間が短くなる。
【００７６】
図１０は、可変ディレイラインのためのコード変換を行うコード変換部を示す図である。図８に示す第１の可変ディレイライン９０及び第２の可変ディレイライン９１の各々は、図１０に示すコード変換部を含んでよい。図１０に示すコード変換部１１５には、例えば第１の可変ディレイライン９０に対応してｋビットの第１の制御信号Ｃ［ｋ−１：０］が供給される。コード変換部１１５は、第１の制御信号Ｃ［ｋ−１：０］が示す０乃至２ｋ−１のうちの１つの値に等しい数のビットが値１であるような２ｋビットのサーモメータコードを生成する。即ち例えば、第１の制御信号Ｃ［３：０］が"１０１１"で十進数値１１を示す場合、コード変換部１１５の出力Ｔ［０］乃至Ｔ［１５］は、全１６ビットのうち１１個のビットが値１であるサーモメータコード"１１１１１１１１１１１０００００"となる。第２の可変ディレイライン９１については、同様のコード変換部が、第２の制御信号Ｒ［ｋ−１：０］を同様に２ｋビットのサーモメータコードに変換してよい。
【００７７】
図１１は、図６又は図７に示すマスク回路８２の構成の一例を示す図である。図６又は図７に示すマスク回路８２は、ディレイモニタ回路８１からの２ｎ−１ビットの回路遅延測定値Ｑ［２ｎ−１：０］をＡ入力に受け取り、制御回路８０からの２ｎ−１ビットのマスク信号ＭをＢ入力に受け取る。図１１では、Ａ入力に受け取る２ｎ−１ビットの信号がＡ［０］乃至Ａ［２ｎ−１］として示され、Ｂ入力に受け取る２ｎ−１ビットの信号がＢ［０］乃至Ｂ［２ｎ−１］として示される。
【００７８】
図１１に示すマスク回路は、２ｎ−１個のＯＲ回路１２０を含む。２ｎ−１個のＯＲ回路１２０の出力Ｘ［０］乃至Ｘ［２ｎ−１］が、２ｎ−１ビットのマスク後の回路遅延測定値としてマスク回路から出力される。各ＯＲ回路１２０は、Ａ［０］乃至Ａ［２ｎ−１］のうちの対応する１ビットとＢ［０］乃至Ｂ［２ｎ−１］のうちの対応する１ビットとのＯＲ演算を実行し、ＯＲ演算の結果をＸ［０］乃至Ｘ［２ｎ−１］のうちの対応する１ビットとして出力する。このようにして、２ｎ−１ビットの回路遅延測定値Ｑ［２ｎ−１：０］のうち、２ｎ−１ビットのマスク信号Ｍの値１のビットに対応するビットがマスクされ、マスク後の回路遅延測定値が出力される。
【００７９】
図１２は、制御回路による設定動作の一例を示すフローチャートである。図６又は図７に示される電子回路が、その本来の意図されるルーチン処理の実行を開始する前に、図１２のフローチャートに示す初期設定手順を実行する。例えば電子回路が通信回路である場合には、電子回路による通信処理の実行が開始される前に、図１２のフローチャートに示す初期設定手順が実行される。当該初期設定が行われた後に、電子回路がルーチン処理を実行すると共に、電源電圧ＶＤＤの変化に応じてＰＬＬ回路１０の発振周波数を制御する適応的周波数制御が実行される。
【００８０】
ステップＳ１において、基準電圧ＶＲＥＦ及び電源電圧ＶＤＤを同一の電圧に設定すると共に、制御回路８０によりマスク信号Ｍの全ビットを１に設定する。電圧設定については、例えば制御回路８０が外部の電圧源に対して電圧設定命令を送信することにより、上記の電圧設定を実行するようにしてよい。ここで基準電圧ＶＲＥＦ及び電源電圧ＶＤＤを設定する同一の設定電圧は、電子回路がルーチン処理を実行する際に電源電圧ＶＤＤが設定される定格電圧よりも低い電圧であり、適応的周波数制御のトリガ電圧であってよい。即ち、ルーチン処理を実行中に電源電圧ＶＤＤが定格電圧から低下して所定の電圧に到達したときに、適応的周波数制御によるＰＬＬ回路１０の発振周波数を低くする動作を開始させたい場合（トリガしたい場合）に、上記の設定電圧は当該所定の電圧に等しくてよい。またマスク信号Ｍの全ビットが１に設定されることにより、マスク回路８２の出力の全ビットが値１に固定され、ＰＬＬ回路１０及び平均化部１２に供給される検出信号Ｑの全ビットが値１に固定される。これにより、ＰＬＬ回路１０の発振周波数を制御する適応的周波数制御が停止状態とされる。
【００８１】
ステップＳ２において、制御回路８０は、第1の制御信号Ｃ及び第２の制御信号Ｒの各々を２ｋ−１−１に設定する。これにより、ディレイモニタ回路８１の第１の可変ディレイライン９０及び第２の可変ディレイライン９１の各々は、最大遅延長と最小遅延長との中間の遅延長に設定される。ステップＳ３において、制御回路８０は、ディレイモニタ回路８１が出力する回路遅延測定値Ｑを取得する。
【００８２】
ステップＳ４において、制御回路８０は、ステップＳ３で取得した回路遅延測定値Ｑが｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝よりも小さいか否かを判定する。即ち、第１の可変ディレイライン９０の回路遅延が第２の可変ディレイライン９１の回路遅延よりも大きいか否かを判定する。判定結果がＹｅｓの場合には処理手順はステップＳ５に進み、判定結果がＮｏの場合には処理手順はステップＳ７に進む。
【００８３】
ステップＳ５において、制御回路８０は、第１の制御信号Ｃが０の場合には第２の制御信号Ｒを１だけ増加させ、第１の制御信号Ｃが０でない場合には第１の制御信号Ｃを１だけ減少させる。即ち、制御回路８０はまず第１の可変ディレイライン９０の回路遅延を短くするように制御信号を変化させ、第１の可変ディレイライン９０の回路遅延が最短になった後は、第２の可変ディレイライン９１の回路遅延を長くするように制御信号を変化させる。ステップＳ６において、制御回路８０は変化後の第１及び第２の制御信号Ｃ及びＲをディレイモニタ回路８１に対して出力する。その後、処理手順はステップＳ３に戻り以降の処理を繰り返す。
【００８４】
ステップＳ７において、制御回路８０は、ステップＳ３で取得した回路遅延測定値Ｑが｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝よりも大きいか否かを判定する。即ち、第１の可変ディレイライン９０の回路遅延が第２の可変ディレイライン９１の回路遅延よりも小さいか否かを判定する。判定結果がＹｅｓの場合には処理手順はステップＳ８に進み、判定結果がＮｏの場合には処理手順はステップＳ９に進む。
【００８５】
ステップＳ８において、制御回路８０は、第１の制御信号Ｃが２ｋ−１の場合には第２の制御信号Ｒを１だけ減少させ、第１の制御信号Ｃが２ｋ−１でない場合には第１の制御信号Ｃを１だけ増加させる。即ち、制御回路８０はまず第１の可変ディレイライン９０の回路遅延を長くするように制御信号を変化させ、第１の可変ディレイライン９０の回路遅延が最短になった後は、第２の可変ディレイライン９１の回路遅延を短くするように制御信号を変化させる。その後ステップＳ６において、制御回路８０は変化後の第１及び第２の制御信号Ｃ及びＲをディレイモニタ回路８１に対して出力する。その後、処理手順はステップＳ３に戻り以降の処理を繰り返す。
【００８６】
処理手順がステップＳ９に到達したとき、回路遅延測定値Ｑは｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝に等しくなっている。即ち、第１の可変ディレイライン９０の回路遅延と第２の可変ディレイライン９１の回路遅延とは等しい状態となっている。この状態において、ステップＳ９において、電源電圧ＶＤＤを定格電圧に設定する。電圧設定については、例えば制御回路８０が外部の電圧源に対して電圧設定命令を送信することにより、上記の電圧設定を実行するようにしてよい。
【００８７】
ステップＳ１０において、制御回路８０は全ビットが１ではないマスク信号Ｍを出力し、適応的周波数制御を開始する。ここで、マスク信号Ｍの値は、｛ｎ'ｂ１１・・・１１，ｎ'ｂ００・・・００｝を左にＴＨビットだけシフトさせた値である。
【００８８】
ここでＴＨは、適応的周波数制御によりＰＬＬ回路１０の発振周波数が実際に変化するまでにかかる時間を見越して、時間的余裕を設けるために設定される閾値である。時間的余裕を考えない場合にはＴＨは０に等しくてよい。即ち、マスク信号Ｍの値は、｛ｎ'ｂ１１・・・１１，ｎ'ｂ００・・・００｝に等しくてよい。上述の図１２の初期設定動作により、電源電圧ＶＤＤが基準電圧ＶＲＥＦ（＝トリガ電圧）に等しいときに、第１の可変ディレイライン９０と第２の可変ディレイライン９１とで回路遅延が等しくなる。このとき、回路遅延測定値Ｑは、｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝に等しくなる。従って、定格電圧（＞トリガ電圧）に設定された電源電圧ＶＤＤが基準電圧ＶＲＥＦ（＝トリガ電圧）まで低下したときに、回路遅延測定値Ｑは｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝となる。マスク信号Ｍの値が｛ｎ'ｂ１１・・・１１，ｎ'ｂ００・・・００｝である場合、回路遅延測定値Ｑが｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝より小さくなったときに、マスク回路８２の出力する検出信号Ｑが初めて変化する。図６又は図７に示す電子回路において、デジタル制御発振器２０の入力信号の値が減少すると、デジタル制御発振器２０の発振信号の周期の長さが増加してよい。逆に、デジタル制御発振器２０の入力信号の値が増大すると、デジタル制御発振器２０の発振信号の周期の長さが減少してよい。上記のようにして生成された検出信号Ｑの値の変化に応じてＰＬＬ回路１０による周波数調整動作が実行されるので、定格電圧に設定された電源電圧ＶＤＤが基準電圧ＶＲＥＦより低下したときに、ＰＬＬ回路１０による周波数調整動作が開始されることになる。
【００８９】
しかしＰＬＬ回路１０による周波数調整動作が開始されてからクロック周波数が適切な周波数に到達するまでには、通常、ある程度の時間がかかる。クロック周波数が適切な周波数に到達するまでに時間がかかると、論理回路１４のクリティカルパスにおいてデータ転送エラーが発生してしまう可能性がある。従って実際には、制御にかかる時間を見越して、時間的余裕を設けておくことが好ましい。以上を考慮して、マスク信号Ｍを左にＴＨビットだけシフトさせることにより、マスクする上位ビット数を少なくし、早めに検出信号Ｑの値が変化するようにする。制御遅延をＤｃ［ｎｓｅｃ］、電圧降下の勾配をＳｎ［ｍＶ／ｎｓｅｃ］、ディレイモニタ回路８１の出力の１ＬＳＢの変化に相当する電源電圧ＶＤＤの変化をｈ［ｍＶ］とすれば、ＴＨは以下の式を満たせばよい。
【００９０】
Ｄｃ＜（ｈ／Ｓｎ）・ＴＨ
従ってＴＨは、以下の式を満たす正の整数となる。
【００９１】
ＴＨ＞（Ｄｃ・Ｓｎ）／ｈ
なおこの閾値ＴＨは、電子回路のメモリに格納されており、当該メモリから制御回路８０に供給されてよい。
【００９２】
図１３は、回路遅延測定に基づいて電源ノイズに追従して発振周波数を変化可能な電子回路の実施例の別の一例を示す図である。図１３において、図６と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００９３】
図１３に示す電子回路では、図６に示す制御回路８０の代わりに制御回路８０Ａが設けられ、図６に示すおけるディレイモニタ回路８１の代わりにクリティカルパスモニタ＆ディレイモニタ回路（ＣＰＭ／ＤＤＭ）８１Ａが設けられている。制御回路８０Ａは、レジスタＱＭ及びステートマシンＦＳＭを含む。レジスタＱＭは、クリティカルパスモニタ＆ディレイモニタ回路８１Ａが測定した疑似クリティカルパス回路の回路遅延測定値Ｑを格納する。ステートマシンＦＳＭは、制御回路８０Ａの実行する動作を制御する。クリティカルパスモニタ＆ディレイモニタ回路８１Ａは、疑似クリティカルパスをモニタする機能と回路遅延をモニタする機能との両方の機能を有する回路であり、以降、簡略化してディレイモニタ回路８１Ａと呼ぶ。制御回路８０Ａ、ディレイモニタ回路８１Ａ、及びマスク回路８２が、電圧検出器に相当する。
【００９４】
ディレイモニタ回路８１Ａは、制御信号Ｒにより遅延時間が設定される可変ディレイラインと疑似クリティカルパスとの回路遅延差を、クロック信号ＣＫに基づいて測定し、当該測定の結果を回路遅延測定値として出力する。疑似クリティカルパス及び可変ディレイラインはそれぞれ電源電圧ＶＤＤ及び基準電圧ＶＲＥＦにより駆動し、疑似クリティカルパスと可変ディレイラインとの間の回路遅延差の変化が電源電圧ＶＤＤの変化を示すことになる。このディレイモニタ回路８１Ａの構成及び動作については後ほど説明する。ディレイモニタ回路８１Ａにおいては、ディレイモニタ回路８１の場合と同様に、回路遅延測定値そのものはクロック信号ＣＫの周波数に依存することはない。
【００９５】
図１４は、図１３に示す電子回路の変形例を示す図である。図１４に示す電子回路においては、ディレイモニタ回路８１Ａが使用するクロック信号ＣＫはＰＬＬ回路１０から供給される。前述のように、ディレイモニタ回路８１Ａが出力する回路遅延測定値は、クロック入力端子ＣＫに印加されるクロック信号の周波数には依存しない。従って、制御対象として周波数が変化するＰＬＬ回路１０の発振周波数をクロック入力端子ＣＫに印加する構成としても、ディレイモニタ回路８１Ａによる回路遅延測定結果が、ＰＬＬ回路１０の制御に伴い変化してしまうことはない。即ち、ディレイモニタ回路８１Ａは、ＰＬＬ回路１０の発振周波数の変化に影響を受けることなく、電源電圧ＶＤＤの変化のみを検出することができる。図１４の電子回路の構成とすることにより、図１３の電子回路の構成に比較して、ＰＬＬ回路の数を削減することが可能となる。
【００９６】
図１５は、ディレイモニタ回路８１Ａの構成の一例を示す図である。図１５に示すディレイモニタ回路８１Ａは、疑似クリティカルパス回路１３１、ディレイ制御回路１３２、及び時間差測定回路９２を含む。ディレイ制御回路１３２は、可変ディレイライン１４１及び選択回路１４２を含む。
【００９７】
疑似クリティカルパス回路１３１は、電源電圧ＶＤＤが印加されるとともに、クロック信号ＣＫを遅延させた第１の遅延発振信号を出力する。可変ディレイライン１４１は、基準電圧ＶＲＥＦが印加されるとともに、クロック信号ＣＫを制御信号Ｒに基づいて遅延させた第２の遅延発振信号を出力する。選択回路１４２は、入力される選択信号Ｓに基づきクロック信号ＣＫ又は第２の遅延発振信号の何れかである第３の遅延発振信号を選択して出力する。
【００９８】
時間差測定回路９２に含まれる第１のフリップフロップ１０３においては、選択回路１４２の出力する第３の遅延発振信号が、各第１入力端子（本例ではクロック端子）に供給される。また前段の第１のフリップフロップ１０３の第２入力端子（本例ではデータ入力端子）から遅延回路１０１によりそれぞれ第１の所定ディレイ分遅延させた、疑似クリティカルパス回路１３１の出力である第１の遅延発振信号が、それぞれの第２入力端子に入力される。
【００９９】
第２のフリップフロップ１０４においては、疑似クリティカルパス回路１３１の出力する第１の遅延発振信号がそれぞれの第２入力端子（本例ではデータ入力端子）に入力される。また、前段の第２のフリップフロップ１０４の第１入力端子（本例ではクロック入力端子）からそれぞれ遅延回路１０２により第２の所定ディレイ分遅延させた、選択回路１４２の出力する第３の遅延発振信号がそれぞれ各第１入力端子に供給される。なお遅延回路１０１の各々の遅延時間（ディレイ）と遅延回路１０２の各々の遅延時間（ディレイ）とは等しくてよい。即ち、上記の第１の所定ディレイと第２の所定ディレイとは等しくてよい。
【０１００】
適応的周波数制御を活性化するルーチン処理時においては、選択回路１４２は可変ディレイライン１４１の出力を選択して出力する。この状態において、疑似クリティカルパス回路１３１と可変ディレイライン１４１との遅延時間が等しい場合、回路遅延測定値Ｑ［２ｎ−１：０］は、上位ｎビットが全て０であり、下位ｎビットが全て１となる。即ち、回路遅延測定値Ｑ［２ｎ−１：０］は、｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝となる。
【０１０１】
疑似クリティカルパス回路１３１の回路遅延が可変ディレイライン１４１の回路遅延よりも長い場合には、ｎ個の第２のフリップフロップ１０４のｎビットの出力データのうちの何ビットかは、１ではなく０になる。即ち、回路遅延測定値Ｑ［２ｎ−１：０］は、｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝よりも小さくなる。
【０１０２】
疑似クリティカルパス回路１３１の回路遅延が可変ディレイライン１４１の回路遅延よりも短い場合には、ｎ個の第１のフリップフロップ１０３のｎビットの出力データのうちの何ビットかは、０ではなく１になる。即ち、回路遅延測定値Ｑ［２ｎ−１：０］は、｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝よりも大きくなる。
【０１０３】
このようにしてディレイモニタ回路８１Ａは、疑似クリティカルパス回路１３１と可変ディレイライン１４１との回路遅延差を示すサーモメータコードである回路遅延測定値Ｑ［２ｎ−１：０］を出力する。疑似クリティカルパス回路１３１は電源電圧ＶＤＤにより駆動し、可変ディレイライン１４１は基準電圧ＶＲＥＦにより駆動する。ここで基準電圧ＶＲＥＦは、電源電圧ＶＤＤとは別個に外部から供給される電源電圧であり、図６又は図７に示す電子回路の他の回路部分で使用されることはなく、雑音の混じっていない、変動のない、一定電圧に維持される電圧である。
【０１０４】
電子回路のルーチン処理時の動作クロック信号の１クロックサイクルと同等の長さの遅延時間となるよう可変ディレイライン１４１を設計し、論理回路１４中のクリティカルパスと同等の遅延時間長を有するように疑似クリティカルパス回路１３１を設計しておく。このように設計しておけば、疑似クリティカルパス回路１３１の回路遅延が１クロックサイクルよりも短かければ、回路遅延測定値Ｑは｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝よりも大きい状態である。一方、疑似クリティカルパス回路１３１の回路遅延が１クロックサイクルよりも長くなると、回路遅延測定値Ｑは｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝よりも小さくなる。従って、マスク信号Ｍの値を｛ｎ'ｂ１１・・・１１，ｎ'ｂ００・・・００｝にしておけば、疑似クリティカルパス回路１３１の回路遅延が１クロックサイクルよりも長くなったときに、マスク回路８２の出力する検出信号Ｑが初めて変化（減少）することになる。この変化に応じてＰＬＬ回路１０の周波数調整動作が実行される。実際には、制御にかかる時間を見越して、時間的余裕を設けておくことが好ましい。従って、マスク信号Ｍを左にＴＨビットだけシフトさせることにより、マスクする上位ビット数を少なくし、早めに検出信号Ｑの値が変化するようにする。
【０１０５】
可変ディレイライン１４１の回路遅延が１クロックサイクルと等しくなるように回路を製造したくとも、プロセスばらつきや配線ばらつきの影響により、１クロックサイクルに等しい回路遅延を実現することは困難である。従って、予め実行する初期化作業により、可変ディレイライン１４１の回路遅延が１クロックサイクルと等しくなるように設定しておくことが望ましい。この初期設定の作業については、後ほど説明する。
【０１０６】
図１６は、疑似クリティカルパス回路の構成の一例を示す図である。図１６に示す疑似クリティカルパス回路は、複数偶数個のインバータ１５１が縦続接続されることにより、所望の遅延時間を実現する。この回路構成では、比較的単純な回路により、ゲート遅延が支配的な疑似クリティカルパス回路を実現することができる。
【０１０７】
図１７は、疑似クリティカルパス回路の構成の別の一例を示す図である。図１７に示す疑似クリティカルパス回路は、インバータ１５２、複数個のＮＯＲ回路１５３、複数個のＡＮＤ回路１５４、複数個のＮＡＮＤ回路１５５を含む。ここで１個のＮＯＲ回路１５３と２個のＡＮＤ回路１５４とで形成される論理回路は、２ＡＮＤ−２ＯＲインバータ出力の複合論理回路である。これらの論理ゲートが適宜組み合わされ縦続接続されることにより、所望の遅延時間を実現する。この回路構成では、実際のクリティカルパス同様に様々な論理ゲートを組み合わせてゲート遅延が支配的な疑似クリティカルパス回路を実現しており、実際のクリティカルパスの回路遅延により近い振る舞いを示す回路遅延を実現することができる。
【０１０８】
図１８は、疑似クリティカルパス回路の構成の別の一例を示す図である。図１８に示す疑似クリティカルパス回路は、複数偶数個のインバータ１５６と複数の抵抗素子１５７とが交互に縦続接続されることにより、所望の遅延時間を実現する。この回路構成では、比較的単純な回路により、配線遅延が支配的な疑似クリティカルパス回路を実現することができる。
【０１０９】
図１９は、疑似クリティカルパス回路の構成の別の一例を示す図である。図１９に示す疑似クリティカルパス回路は、インバータ１５８、複数個のＮＯＲ回路１５９、複数個のＡＮＤ回路１６０、ＮＡＮＤ回路１６１、及び複数個の抵抗素子１６２を含む。ここで１個のＮＯＲ回路１５９と２個のＡＮＤ回路１６０とで形成される論理回路は、２ＡＮＤ−２ＯＲインバータ出力の複合論理回路である。これらの論理ゲート及び抵抗素子が適宜組み合わされ縦続接続されることにより、所望の遅延時間を実現する。この回路構成では、実際のクリティカルパス同様に様々な論理ゲートを組み合わせて配線遅延が支配的な疑似クリティカルパス回路を実現しており、実際のクリティカルパスの回路遅延により近い振る舞いを示す回路遅延を実現することができる。
【０１１０】
図２０は、制御回路による設定動作の一例を示すフローチャートである。図１３又は図１４に示される電子回路が、その本来の意図されるルーチン処理の実行を開始する前に、図２０のフローチャートに示す初期設定手順を実行する。例えば電子回路が通信回路である場合には、電子回路による通信処理の実行が開始される前に、図１２のフローチャートに示す初期設定手順が実行される。当該初期設定が行われた後に、電子回路がルーチン処理を実行すると共に、電源電圧ＶＤＤの変化に応じてＰＬＬ回路１０の発振周波数を制御する適応的周波数制御が実行される。
【０１１１】
ステップＳ２１において、制御回路８０Ａによりマスク信号Ｍの全ビットを１に設定するとともに、選択信号Ｓ及び制御信号Ｒを０に設定する。マスク信号Ｍの全ビットが１に設定されることにより、マスク回路８２の出力の全ビットが値１に固定され、ＰＬＬ回路１０及び平均化部１２に供給される検出信号Ｑの全ビットが値１に固定される。これにより、ＰＬＬ回路１０の発振周波数を制御する適応的周波数制御が停止状態とされる。
【０１１２】
ステップＳ２２において、制御回路８０Ａは、ディレイモニタ回路８１Ａが出力する回路遅延測定値Ｑを取得する。このとき、選択信号Ｓは０であるので図１５に示される選択回路１４２は、可変ディレイライン１４１を介さず直接入力されるクロック信号ＣＫを選択して出力している。従って、ディレイモニタ回路８１Ａが出力する回路遅延測定値Ｑは、遅延無しのクロック信号ＣＫと疑似クリティカルパス回路１３１により遅延されたクロック信号ＣＫとの時間差を示す値となり、疑似クリティカルパス回路１３１の回路遅延そのものを表す値となる。なお疑似クリティカルパス回路１３１の遅延時間長を論理回路１４のクリティカルパスの遅延時間長と略等しい長さに設定してある場合には、クロック信号ＣＫとしては、電子回路のルーチン処理実行時の動作クロック信号と同じ周波数とすることが好ましい。疑似クリティカルパス回路１３１の遅延時間長は、クロック信号の１クロックサイクルよりも僅かに短い時間長に通常は設計されている。回路遅延測定値Ｑは、クロック信号ＣＫのあるパルスが疑似クリティカルパス回路１３１により遅延されたパルスと、クロック信号ＣＫのその次のパルスがそのまま選択回路１４２から出力されたパルスとの間で、時間差が測定された値となる。なお疑似クリティカルパス回路１３１の遅延時間長を論理回路１４のクリティカルパスの遅延時間長の例えばＮ倍に設定してある場合には、クロック信号ＣＫとしては、電子回路のルーチン処理実行時の動作クロック信号のＮ倍の周波数とすることが好ましい。
【０１１３】
ステップＳ２３において、制御回路８０Ａは、回路遅延測定値ＱをレジスタＱＭに格納する。ステップＳ２４において、制御回路８０Ａは、選択信号Ｓを１に設定すると共に、制御信号Ｒを０に設定する。制御信号Ｒが０であるので、ディレイモニタ回路８１Ａの可変ディレイライン１４１は、遅延時間が最も短い状態となる。
【０１１４】
ステップＳ２５において、制御回路８０Ａは、ディレイモニタ回路８１Ａが出力する回路遅延測定値Ｑを取得する。このとき、選択信号１は０であるので図１５に示される選択回路１４２は、可変ディレイライン１４１により遅延されたクロック信号ＣＫを選択して出力している。従って、ディレイモニタ回路８１Ａが出力する回路遅延測定値Ｑは、可変ディレイライン１４１により遅延されたクロック信号ＣＫと疑似クリティカルパス回路１３１により遅延されたクロック信号ＣＫとの時間差を示す値となる。即ち、回路遅延測定値Ｑは、クロック信号ＣＫのあるパルスが疑似クリティカルパス回路１３１により遅延されたパルスと、クロック信号ＣＫの当該パルスが可変ディレイライン１４１により遅延されたパルスとの間で、時間差が測定された値となる。
【０１１５】
ステップＳ２６において、制御回路８０Ａは、ステップＳ３で取得した回路遅延測定値ＱがレジスタＱＭの格納値である回路遅延測定値Ｑ（即ちステップＳ２２で取得した回路遅延測定値）よりも小さいか否かを判定する。判定結果がＹｅｓの場合には処理手順はステップＳ２７に進み、判定結果がＮｏの場合には処理手順はステップＳ２８に進む。
【０１１６】
ステップＳ２７において、制御回路８０Ａは、制御信号Ｒを１だけ増加させ、ディレイモニタ回路８１Ａに対して増加後の制御信号Ｒを出力する。即ち、制御回路８０Ａは、ディレイモニタ回路８１Ａの可変ディレイライン１４１の遅延時間長を最小変化分だけ増大させる。その後、処理手順はステップＳ２５に戻り以降の処理を繰り返す。
【０１１７】
処理手順がステップＳ２８に到達したとき、現在の制御信号Ｒに応じた回路遅延測定値Ｑは、レジスタＱＭの格納値である回路遅延測定値Ｑに等しくなっている。即ち、疑似クリティカルパス回路１３１により遅延されたクロックパルスと遅延無しのその次のサイクルのクロックパルスとの時間差が、疑似クリティカルパス回路１３１の遅延時間と可変ディレイライン１４１の遅延時間との差と等しくなっている。このことは、この状態における可変ディレイライン１４１の遅延時間長が、クロック信号ＣＫの１クロックサイクルに等しくなっていることを意味する。この状態において、ステップＳ２８において、制御回路８０Ａは、制御信号Ｒを確定し、ディレイモニタ回路８１Ａに対して確定後の制御信号Ｒを出力する。
【０１１８】
ステップＳ２９において、制御回路８０Ａは全ビットが１ではないマスク信号Ｍを出力し、適応的周波数制御を開始する。ここで、マスク信号Ｍの値は、｛ｎ'ｂ１１・・・１１，ｎ'ｂ００・・・００｝を左にＴＨビットだけシフトさせた値である。
【０１１９】
以上のようにして、図２０に示す初期設定動作により、電子回路のルーチン処理時の動作クロック信号の１クロックサイクルに等しい遅延時間長を有するように可変ディレイライン１４１を設定することができる。この設定により、疑似クリティカルパス回路１３１の回路遅延が１クロックサイクルよりも長くなると、回路遅延測定値Ｑは｛ｎ'ｂ００・・・００，ｎ'ｂ１１・・・１１｝よりも小さくなる。従って、マスク信号Ｍの値を｛ｎ'ｂ１１・・・１１，ｎ'ｂ００・・・００｝にしておけば、疑似クリティカルパス回路１３１の回路遅延が１クロックサイクルよりも長くなったときに、マスク回路８２の出力する検出信号Ｑが初めて変化（減少）することになる。但し、制御にかかる時間を見越して、マスク信号Ｍを左にＴＨビットだけシフトさせることにより、マスクする上位ビット数を少なくし、早めに検出信号Ｑの値が変化するようにする。
【０１２０】
なお図６又は図７に示される電子回路に対して図１２に示される初期化動作により初期設定を行う場合には、電源電圧ＶＤＤを変化される動作が実行される。それに対して、図１３又は図１４に示される電子回路に対して図２０に示される初期化動作により初期設定を行う場合には、電源電圧を変化させる動作が含まれない。これら初期化動作は、通常、電子回路の電源投入直後の立ち上がり動作時に実行されるが、そのような立ち上がり動作時に上記のような電源電圧を変化させる動作を実行することは避けたい場合がある。図１３又は図１４に示される電子回路においては、初期化動作時に電源電圧を変化させる必要がないので、その点において好ましいと言える。
【０１２１】
図２１は、制御回路による設定動作の一例を示すタイミング図である。例えばｎ＝４の場合について、図２０に示す初期設定動作を実行する場合の各信号値の変化の一例が、図２１に示されている。この例においては、ＴＨ＝２に固定である。また初期状態において、図２０に示されるステップＳ２１が実行されることにより、選択信号Ｓは０に設定され、マスク信号Ｍの全ビットは値１に設定され、制御信号Ｒは０に設定されている。
【０１２２】
図２１に示されるタイミングＴ１において、図２０に示されるステップＳ２２及びＳ２３の動作が実行され、選択信号Ｓ＝０の状態でディレイモニタ回路８１Ａの出力する回路遅延測定値ＱがレジスタＱＭに格納される。この例において、レジスタＱＭに格納される回路遅延測定値Ｑは、８ｂ'０１１１＿１１１１である。即ち、回路遅延測定値Ｑは８ビットのデータであり、その値は"０１１１１１１１"である。
【０１２３】
その後タイミングＴ２において、図２０に示されるステップＳ２４及びＳ２５の動作が実行される。これにより、選択信号Ｓ＝１の状態で、可変ディレイライン１４１により遅延されたクロック信号ＣＫと疑似クリティカルパス回路１３１により遅延されたクロック信号ＣＫとの時間差を示す回路遅延測定値Ｑが得られる。この例において、最初に得られる回路遅延測定値Ｑは８ｂ'００００＿０１１１であり、レジスタＱＭの格納値８ｂ'０１１１＿１１１１よりも小さい値となっている。従って、図２０に示されるステップＳ２７の動作により制御信号Ｒが増加されていく。制御信号Ｒが順次増加されていくにつれ、ディレイモニタ回路８１Ａが出力する回路遅延測定値Ｑも徐々に増加していく。
【０１２４】
その後、回路遅延測定値ＱがレジスタＱＭの格納値に等しくなったことに応答し、タイミングＴ３において、図２８に示されるステップＳ２８の動作が実行され、制御信号Ｒの値が１５に確定される。更にタイミングＴ４において、８ｂ'１１１１＿００００を左にＴＨビット（即ち２ビット）シフトして得られる値８ｂ'１１００＿００００をマスク信号Ｍとして出力し、適応的周波数制御を開始する。
【０１２５】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【０１２６】
１０  ＰＬＬ回路
１１  ＡＤ変換器
１２  平均化部
１３  コード変換部
１４  論理回路
２０  デジタル制御発振器（ＤＣＯ）
２１  分周器
２２  位相比較器
２３  ループフィルタ
２４  正規化部
２５  加算器
３０  データパス
３１，３２  フリップフロップ
３３  回路素子群
【図１】
0006623745.tif 000002
【図２】
0006623745.tif 000003
【図３】
0006623745.tif 000004
【図４】
0006623745.tif 000005
【図５】
0006623745.tif 000006
【図６】
0006623745.tif 000007
【図７】
0006623745.tif 000008
【図８】
0006623745.tif 000009
【図９】
0006623745.tif 000010
【図１０】
0006623745.tif 000011
【図１１】
0006623745.tif 000012
【図１２】
0006623745.tif 000013
【図１３】
0006623745.tif 000014
【図１４】
0006623745.tif 000015
【図１５】
0006623745.tif 000016
【図１６】
0006623745.tif 000017
【図１７】
0006623745.tif 000018
【図１８】
0006623745.tif 000019
【図１９】
0006623745.tif 000020
【図２０】
0006623745.tif 000021
【図２１】
0006623745.tif 000022