(57)【要約】【課題】適応的周波数制御の精度を向上させる情報処理装置、情報処理方法及び情報処理プログラムを提供する。【解決手段】ＴＤＣは、電圧変動に応じた遅延時間の時間差を測定する。ＤＣＯ１５５は、入力された信号に応じた周期の発振信号を生成する。分周器１５６は、発振信号を分周して分周信号を生成する。加算器１５４は、分周信号と参照信号との位相差に応じた第１信号に、ＴＤＣにより測定された時間差に応じてＤＣＯ１５５の発振周期を変更する第２信号を加えた信号をＤＣＯ１５５に入力する。制御回路１１は、ＴＤＣの測定時間分解能を求め、ＤＣＯ１５５の周期変調時間分解能をＴＤＣの測定時間分解能に一致させる。【選択図】図１
2018101222.tif 000002
【特許請求の範囲】
【請求項１】
電圧変動に応じた遅延時間の時間差を測定する電圧変動検知部と、
入力された信号に応じた周期の発振信号を生成する発振器と、
前記発振信号を分周して分周信号を生成する分周器と、
前記分周信号と参照信号との位相差に応じた第１信号に、前記電圧変動検知部により測定された前記時間差に応じて前記発振器の発振周期を変更する第２信号を加えた信号を前記発振器に入力する加算器と、
前記電圧変動検知部の測定時間分解能を求め、前記発振器の周期変調時間分解能を前記電圧変動検知部の測定時間分解能に一致させる制御部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記発振器は、複数の駆動ゲートを含むリングオシレータを有し、
前記制御部は、前記駆動ゲートの駆動数を変更する制御信号を用いて前記発振器の前記周期変調時間分解能を前記電圧変動検知部の前記測定時間分解能に一致させる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記電圧変動検知部は、基準電圧の場合の基準信号及び電圧変動が発生した場合の比較信号に順次遅延を加える複数の遅延回路を有し、各前記遅延回路により遅延が与えられた前記基準信号と遅延が与えられる前の前記比較信号との比較及び各前記遅延回路により遅延が与えられた前記比較信号と遅延が与えられる前の前記基準信号との比較により前記遅延時間を測定し、
前記制御部は、前記遅延回路をリングオシレータ化させ、リングオシレータ化された前記遅延回路の発振周期を基に前記測定時間分解能を求める
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記制御部は、前記周期変調時間分解能を最も細かい状態から粗くしていくことで、前記電圧変動検知部の前記測定時間分解能に一致させることを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記情報処理装置のプロセスが予め決められた基準プロセスよりも早いか遅いかを検出する検出部をさらに備え、
前記制御部は、前記プロセスが前記基準プロセスよりも早い場合、前記周期変調時間分解能を最も細かい状態から粗くしていくことで、前記電圧変動検知部の前記測定時間分解能に一致させ、前記プロセスが前記基準プロセスよりも遅い場合、前記周期変調時間分解能を最も粗い状態から細かくしていくことで、前記電圧変動検知部の前記測定時間分解能に一致させる
ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項６】
電圧変動に応じた遅延時間の時間差を測定する電圧変動検知回路の測定時間分解能を求め、
発振器の発振信号を分周した分周信号と参照信号との位相差に応じた第１信号に前記時間差に応じて発振周期を変更する第２信号を加えた信号に応じた周期の発振信号を生成する前記発振器の周期変調時間分解能を前記電圧変動検知回路の測定時間分解能に一致させる
ことを特徴とする情報処理方法。
【請求項７】
電圧変動に応じた遅延時間の時間差を測定する電圧変動検知回路の測定時間分解能を求め、
発振器の発振信号を分周した分周信号と参照信号との位相差に応じた第１信号に前記時間差に応じて発振周期を変更する第２信号を加えた信号に応じた周期の発振信号を生成する前記発振器の周期変調時間分解能を前記電圧変動検知回路の測定時間分解能に一致させる
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
プロセッサ等に用いられるＬＳＩ（Large  Scale  Integration）のデジタル回路は、クロック信号に同期して動作する。また、ＬＳＩは、プロセッサ電源から供給された電源電圧により駆動する。
【０００３】
ＬＳＩに供給される電源電圧は、変動が生じることがある。例えば、クロックの遷移タイミングでの大電流消費により発生する電源ノイズの影響を受けて、電源配線及びで安定化容量などのインピーダンスにより定まる周波数帯域の電圧変化が電源電圧に発生する。
【０００４】
電源電圧が低下した場合、ＬＳＩ中の信号経路を伝搬する信号の速度が低下する場合がある。ＬＳＩ中の信号経路には、１クロックのサイクル以内の信号の伝播が要求されるクリティカルパスが存在する。信号速度が低下すると、ＬＳＩ中の信号経路の中で信号伝播のタイミング余裕が小さいクリティカルパスなどにおいて、遅延時間がクロックサイクル以上に延びてタイミングエラーが発生し、適切なデータ転送が行えないおそれがある。
【０００５】
そのようなタイミングエラーを回避するために、プロセッサ等に用いられるＬＳＩには、電源電圧の低下に応じて適応的に動作周波数を制御するＬＳＩが存在する。具体的には、電圧変動を遅延変動に変換し、その遅延変動に対してＴＤＣ（Time-to-Digital  Converter）を用いて時間差を測定し、その時間差分ＰＬＬ（Phase  Locked  Loop）回路の発振周期を延ばす制御が行われる。
【０００６】
また、タイミングエラーを回避する技術として、クロック生成回路に、制御回路のクリティカルパス回路と同一の構成を有する回路を用いることで、クリティカルパス回路とクロック生成回路の遅延量を合わせる従来技術がある。また、制御回路内の遅延時間を計測し、計測結果に合わせてクロック周波数を制御する従来技術がある。また、ＣＰＵの動作周波数と電源電圧値を設定するテーブルから取得した測定した測定した動作周波数に対応する電源電圧値を基に補正を加えたクリティカルパスモニタ回路を用いて測定していない動作周波数に対する電源電圧値の調整を行う従来技術がある。さらに、不揮発性メモリに対して生産試験中に性能のバラつきを提供化したチップ固有のデータを格納する従来技術がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−１９９１３３号公報
【特許文献２】特開平０７−２５３８２４号公報
【特許文献３】国際公開第２０１５／００８３７２号
【特許文献４】特表２０１０−５１１２４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、プロセス、電圧及び温度の３条件を表すＰＶＴ（Process  Voltage  Temperature）条件によって、ＴＤＣの測定時間分解能及びＰＬＬのデジタル制御発振器（ＤＣＯ：Digitally  Controlled  Oscillator）の周波変調時間分解能は変化する。ここで、ＴＤＣの測定時間分解能とＤＣＯの周波数変調時間分解能が等しくなるように設計した時のＰＶＴ条件を基準条件とする。プロセスが基準条件よりも遅い場合、ＴＤＣの測定時間分解能は基準条件の場合よりも大きくなり、ＤＣＯの周波数時間分解能は基準条件の場合よりも小さくなる。逆に、プロセスが基準条件よりも早い場合、ＴＤＣの測定時間分解能は基準条件の場合よりも小さくなり、ＤＣＯの周波数時間分解能は基準条件の場合よりも大きくなる。また、電圧が基準条件よりも高い場合、ＴＤＣの測定時間分解能は基準条件の場合よりも小さくなり、ＤＣＯの周波数時間分解能は基準条件の場合よりも大きくなる。逆に、電圧が基準条件よりも低い場合、ＴＤＣの測定時間分解能は基準条件の場合よりも大きくなり、ＤＣＯの周波数時間分解能は基準条件の場合よりも小さくなる。このように、プロセスと電圧のバラつきが与える遅延時間への変動は、ＴＤＣの測定時間分解能とＤＣＯの周波数時間分解能とでは逆方向になる。そのため、ＰＶＴ条件が変化は、適応的周波数制御の精度を低下させるおそれがある。
【０００９】
また、クロック生成回路に制御回路のクリティカルパス回路と同一の構成を有する回路を用いる従来技術を用いても、ＴＤＣの測定時間分解能とＤＣＯの周波数時間分解能の差は増大してしまい、適応的周波数制御の精度を向上させることは困難である。また、制御回路内の遅延時間の計測結果にしたがってクロック周波数を制御する従来技術では、プロセスのバラつきなどは考慮されておらず、適応的周波数制御の精度を向上させることは困難である。また、測定した動作周波数に対応する電源電圧値を基に補正を加えたクリティカルパスモニタ回路を用いて電源電圧値の調整を行う従来技術を用いても、ＴＤＣの測定時間分解能とＤＣＯの周波数時間分解能の差は増大してしまい、適応的周波数制御の精度を向上させることは困難である。また、不揮発性メモリに対してチップ固有のデータを格納する従来技術は、ＣＰＵの性能調整に対応させることは難しく、適応的周波数制御の精度を向上させることは困難である。
【００１０】
開示の技術は、上記に鑑みてなされたものであって、適応的周波数制御の精度を向上させる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する情報処理装置、情報処理方法及び情報処理プログラムの一つの態様において、電圧変動検知部は、電圧変動に応じた遅延時間の時間差を測定する。発振器は、入力された信号に応じた周期の発振信号を生成する。分周器は、前記発振信号を分周して分周信号を生成する。加算器は、前記分周信号と参照信号との位相差に応じた第１信号に、前記電圧変動検知部により測定された前記時間差に応じて前記発振器の発振周期を変更する第２信号を加えた信号を前記発振器に入力する。制御部は、前記電圧変動検知部の測定時間分解能を求め、前記発振器の周期変調時間分解能を前記電圧変動検知部の測定時間分解能に一致させる。
【発明の効果】
【００１２】
１つの側面では、本発明は、適応的周波数制御の精度を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係るＣＰＵのブロック図である。
【図２】図２は、ＤＤＭの概略図である。
【図３】図３は、疑似クリティカルパス回路の構成の一例を示す図である。
【図４】図４は、ＴＤＣの詳細を表す回路図である。
【図５】図５は、ＴＤＣにおける発振信号のカウントを説明するためのタイミングダイヤグラムである。
【図６】図６は、ＭＡＳＫ回路１３の一例を示す図である。
【図７】図７は、ＭＡＳＫ回路１４の一例を示す図である。
【図８】図８は、ＤＣＯの詳細を表す回路図である。
【図９】図９は、オンオフ回路の回路図である。
【図１０】図１０は、ＤＣＯにおける発振信号のカウントを説明するためのタイミングダイヤグラムである。
【図１１】図１１は、ＤＣＯの周波数変調時間分解能がＴＤＣの測定時間分解能より低い場合の時間分解能の調整を説明するための図である。
【図１２】図１２は、ＤＣＯの周波数変調時間分解能がＴＤＣの測定時間分解能より高い場合の時間分解能の調整を説明するための図である。
【図１３】図１３は、実施例１に係るＤＣＯ周期変調時間分可能キャリブレーションのフローチャートである。
【図１４】図１４は、ＴＤＣの測定時間分解能の取得処理のフローチャートである。
【図１５】図１５は、ＤＣＯの周期変調時間分解能とＴＤＣの測定置換分解能とを一致させる処理のフローチャートである。
【図１６】図１６は、プロセスのバラつき及び電圧の変化の時間分解能への影響を表す図である。
【図１７】図１７は、変形例に係るＴＤＣの詳細を表す回路図である。
【図１８】図１８は、実施例２に係るＣＰＵのブロック図である。
【図１９】図１９は、実施例２に係るＤＣＯの周期変調時間分解能がＴＤＣの測定時間分解能より高い場合の時間分解能の調整を説明するための図である。
【図２０】図２０は、実施例２に係るＤＣＯ周期変調時間分可能キャリブレーションのフローチャートである。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する情報処理装置、情報処理方法及び情報処理プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。
【実施例１】
【００１５】
図１は、実施例１に係るＣＰＵのブロック図である。ＣＰＵ１は、制御回路１１、ＤＤＭ（Data  Delay  Monitor）１２、ＭＡＳＫ回路１３、ＭＡＳＫ回路１４、ＰＬＬ回路１５及び論理回路１６を有する。
【００１６】
プロセッサ電源２から供給される電源電圧ＶＤＤは論理回路１６に供給される。また、プロセッサ電源２から供給される電源電圧ＶＤＤは、ＤＤＭ１２に印加される。
【００１７】
論理回路１６は、データパス回路１６０を複数有する。データパス回路１６０は、フリップフロップ１６１及び１６２、並びに、回路素子群１６３を含む。データパス回路１６０を含む論理回路１６内の各回路素子は電源電圧ＶＤＤを電源として駆動される。また、フリップフロップ１６１及び１６２のクロック入力端子には、ＰＬＬ回路１５が生成するクロック信号が印加される。
【００１８】
図２は、ＤＤＭの概略図である。図２に示すように、ＤＤＭ１２は、疑似クリティカルパス回路１２１及び１２２、インバータ１２３及び１２４、並びに、ＴＤＣ２００を有する。
【００１９】
ＤＤＭ１２は、ＰＬＬ回路１５から出力されたクロック（ＣＫ）信号が入力される。また、ＤＤＭ１２は、制御回路１１から出力された第１ＣＥＮ（Counter  Enable）信号及びＲＥＮ（Ring  Oscillator）信号が入力される。
【００２０】
クロックは、ＣＰＵ１の動作周波数であり、データパス回路１６０には、クロックの１サイクル（１クロック）の間にデータを通過させることが望まれるバスもある。第１ＣＥＮ信号は、後述するＴＤＣ２００が有するカウンタを動作させる信号である。ＲＥＮ信号は、ＴＤＣ２００内の回路をリングオシレータ化する信号である。
【００２１】
疑似クリティカルパス回路１２１及び１２２は、例えば、図３のような構成を有する。図３は、疑似クリティカルパス回路の構成の一例を示す図である。疑似クリティカルパス回路１２１及び１２２は、同様の構成を有するため、図３では、疑似クリティカルパス回路１２１を例に記載した。図３に示すように、疑似クリティカルパス回路１２１は、複数偶数個のインバータ１２５が縦列接続されることにより、所望の遅延時間を実現する。疑似クリティカルパス回路１２１は、例えば、データパス３０の中の信号伝搬のタイミング余裕が小さいクリティカルパスの内の信号の伝搬速度が一番遅いものを再現して設計される。
【００２２】
疑似クリティカルパス回路１２１は、プロセッサ電源２から供給される電源電圧ＶＤＤが印加される。プロセッサ電源２は、システム基板上のＤＣ（Direct  Current）−ＤＣコンバータのような電源回路から供給される。疑似クリティカルパス回路１２１は、実際にデータパス回路１６０が動作する場合に用いる電源電圧ＶＤＤにより動作する。
【００２３】
疑似クリティカルパス回路１２１は、ＰＬＬ回路１５から出力されたクロック信号が入力される。そして、疑似クリティカルパス回路１２１は、入力されたクロック信号を自己が有するインバータ１２５を経由させた後に、インバータ１２３及びＴＤＣ２００へ出力する。
【００２４】
疑似クリティカルパス回路１２１は電源電圧ＶＤＤで動作するので、疑似クリティカルパス回路１２１から出力されるクロック信号には、実際のデータパス回路１６０で発生する遅延と同様の遅延がクロック信号に与えられる。ここでは、疑似クリティカルパス回路１２１から出力されるクロック信号を、比較（ＣＭＰ：Compare）クロック信号という。図２では、比較クロック信号を「ＣＭＰ」と表す。
【００２５】
疑似クリティカルパス回路１２２は、基準電圧ＶＲＥＦが印加される。ここで基準電圧ＶＲＥＦは、電源電圧ＶＤＤとは別個に外部から供給される電源電圧であり、図１に示すＤＤＭ１２以外の回路部分で使用されることはなく、雑音の混じっていない、変動のない、一定電圧に維持される電圧である。すなわち、疑似クリティカルパス回路１２２は、設計時に決められた所定電圧により動作する。
【００２６】
疑似クリティカルパス回路１２２は、ＰＬＬ回路１５から出力されたクロック信号が入力される。そして、疑似クリティカルパス回路１２２は、入力されたクロック信号を自己が有するインバータ１２５を経由させた後に、インバータ１２４及びＴＤＣ２００へ出力する。
【００２７】
疑似クリティカルパス回路１２２は基準電圧ＶＲＥＦで動作するので、疑似クリティカルパス回路１２２から出力されるクロック信号には、設計時の所望の電圧でデータパス回路１６０が動作した場合の遅延がクロック信号に与えられる。ここでは、疑似クリティカルパス回路１２２から出力されるクロック信号を、参照（ＲＥＦ：Reference）クロック信号という。図２では、参照クロック信号を「ＲＥＦ」と表す。
【００２８】
インバータ１２３は、比較クロック信号の入力を疑似クリティカルパス回路１２１から受ける。そして、インバータ１２３は、比較クロック信号を反転させた反転比較クロック信号をＴＤＣ２００へ出力する。図２では、反転比較クロック信号を「ＣＭＰ＃」と表す。
【００２９】
インバータ１２４は、参照クロック信号の入力を疑似クリティカルパス回路１２２から受ける。そして、インバータ１２４は、参照クロック信号を反転させた反転参照クロック信号をＴＤＣ２００へ出力する。図２では、反転参照クロック信号を「ＲＥＦ＃」と表す。
【００３０】
図４は、ＴＤＣの詳細を表す回路図である。このＴＤＣ２００が、「電圧変動検知部」の一例にあたる。ＴＤＣ２００は、疑似クリティカルパス回路１２１から出力された比較クロック信号及び反転比較クロック信号が入力される経路を有する。比較クロック信号及び反転比較クロック信号が入力される経路は、２つに分岐され一方は遅延回路２１１〜２１６を経由し、他方は遅延回路２４１を経由する。
【００３１】
また、ＴＤＣ２００は、疑似クリティカルパス回路１２２から出力された参照クロック信号及び反転参照クロック信号が入力される経路を有する。参照クロック信号及び反転参照クロック信号が入力される経路は、２つに分岐され一方は遅延回路２０１及び２０２を経由し、他方は遅延回路２３１〜２３６を経由する。
【００３２】
遅延回路２０１及び２０２は、入力された参照クロック信号及び参照比較クロック信号に所定の遅延を与え、反転して出力する。すなわち、遅延回路２０２は、疑似クリティカルパス回路１２２から出力された信号と同じ値を有する参照クロック信号及び参照比較クロック信号を出力する。
【００３３】
遅延回路２１２〜２１５は、偶数個配置される。遅延回路２１１〜２１６は、入力された比較クロック信号及び反転比較クロック信号に所定の遅延を与え、反転して出力する。すなわち、遅延回路２１１〜２１６の内の先頭から奇数番目の回路は、入力された信号と反対の値を有する比較クロック信号及び反転比較クロック信号を出力する。また、遅延回路２１１〜２１６の内の先頭から偶数番目の回路は、入力された信号と同じ値を有する比較クロック信号及び反転比較クロック信号を出力する。遅延回路２１５は、奇数番目の回路なので入力された信号と反対の値を有する比較クロック信号及び反転比較クロック信号を出力する。また、遅延回路２１６は、偶数番目の回路なので入力された信号と同じ値を有する比較クロック信号及び反転比較クロック信号を出力する。
【００３４】
遅延回路２３２〜２３５は、偶数個配置される。遅延回路２３１〜２３６は、入力された参照クロック信号及び反転参照クロック信号に所定の遅延を与え、反転して出力する。すなわち、遅延回路２３１〜２３６の内の先頭から奇数番目の回路は、入力された信号と反対の値を有する参照クロック信号及び反転参照クロック信号を出力する。また、遅延回路２３１〜２３６の内の先頭から偶数番目の回路は、入力された信号と同じ値を有する参照クロック信号及び反転参照クロック信号を出力する。遅延回路２３５は、奇数番目の回路なので入力された信号と反対の値を有する参照クロック信号及び反転参照クロック信号を出力する。また、遅延回路２３６は、偶数番目の回路なので入力された信号と同じ値を有する参照クロック信号及び反転参照クロック信号を出力する。
【００３５】
遅延回路２４１は、入力された比較クロック信号及び反転比較クロック信号に所定の遅延を与え、反転して出力する。すなわち、遅延回路２４１は、入力された信号と反対の値を有する比較クロック信号及び反転比較クロック信号を出力する。
【００３６】
また、遅延回路２１１及び２１６は、ＲＥＮ信号の入力を制御回路１１から受ける。遅延回路２１１は、ＲＥＮ信号が０の場合、通常のインピーダンスの出力を行う。これに対して、ＲＥＮ信号が１の場合、遅延回路２１１は、ハイインピーダンスの出力を行い、遅延回路２１１から遅延回路２１２への信号の入力は遮断される。一方、遅延回路２１６は、ＲＥＮ信号が０の場合、ハイインピーダンスの出力を行う。この場合、遅延回路２１６から遅延回路２１２への経路はハイインピーダンスとなり、遅延回路２１６から遅延回路２１２への信号の送信は遮断される。これに対して、ＲＥＮ信号が１の場合、遅延回路２１６から出力された信号は、遅延回路２１２へ入力される。遅延回路２１２〜２１６は、奇数個であるため、リングオシレータ化し発振する。すなわち、遅延回路２１６は、一定の発振周期を有する信号をカウンタ２６１へ出力する。以下では、遅延回路２１２〜２１６がリングオシレータ化した状態で、遅延回路２１６が出力する信号を「第１ＯＳＣ（Oscillator）信号」とする。
【００３７】
また、遅延回路２３１及び２３６も同様に、ＲＥＮ信号の入力を制御回路１１から受ける。遅延回路２３１は、ＲＥＮ信号が０の場合、通常のインピーダンスの出力を行う。これに対して、ＲＥＮ信号が１の場合、遅延回路２３１は、ハイインピーダンスの出力を行い、遅延回路２３１から遅延回路２３２への信号の入力は遮断される。一方、遅延回路２３６は、ＲＥＮ信号が０の場合、ハイインピーダンスの出力を行う。この場合、遅延回路２３６から遅延回路２３２への経路はハイインピーダンスとなり、遅延回路２３６から遅延回路２３２への信号の送信は遮断される。これに対して、ＲＥＮ信号が１の場合、遅延回路２３６から出力された信号は、遅延回路２３２へ入力される。遅延回路２３２〜２３６は、奇数個であるため、リングオシレータ化し発振する。すなわち、遅延回路２３６は、一定の発振周期を有する信号をカウンタ２６２へ出力する。以下では、遅延回路２３２〜２３６がリングオシレータ化した状態で、遅延回路２３６が出力する信号を「第２ＯＳＣ信号」とする。
【００３８】
カウンタ２６１は、遅延回路２１２〜２１６がリングオシレータ化した状態で、遅延回路２１６から第１ＯＳＣ信号の入力を受ける。また、カウンタ２６１は、第１ＣＥＮ信号の入力を制御回路１１から受ける。ＣＮＥ信号が０の場合、カウンタ２６１は、動作を停止する。ＣＮＥ信号が０の場合、カウンタ２６１は、第１ＯＳＣ信号をクロックとしてカウントを行う。そして、ＣＮＥ信号が０から１に変化すると、カウンタ２６１は、カウント値を平均化回路２７０へ出力する。
【００３９】
カウンタ２６２は、遅延回路２３２〜２３６がリングオシレータ化した状態で、遅延回路２３６から第２ＯＳＣ信号の入力を受ける。また、カウンタ２６２は、第１ＣＥＮ信号の入力を制御回路１１から受ける。ＣＮＥ信号が０の場合、カウンタ２６２は、動作を停止する。ＣＮＥ信号が０の場合、カウンタ２６２は、第２ＯＳＣ信号をクロックとしてカウントを行う。そして、ＣＮＥ信号が０から１に変化すると、カウンタ２６２は、カウント値を平均化回路２７０へ出力する。
【００４０】
図５は、ＴＤＣにおける発振信号のカウントを説明するためのタイミングダイヤグラムである。グラフ４０１は、ＲＥＮ信号を示すグラフである。グラフ４０２は、第１ＯＳＣ信号を示すグラフである。グラフ４０３は、第２ＯＳＣ信号を示すグラフである。グラフ４０４は、第１ＣＥＮ信号を示すグラフである。グラフ４０５は、カウンタ２６１のカウント値であるＣＮＴ（Count）＃１を示すグラフである。グラフ４０６は、カウンタ２６２のカウント値であるＣＮＴ＃２を示すグラフである。
【００４１】
グラフ４０１でＲＥＮ信号がＨｉｇｈになっている間に、グラフ４０２に示すように遅延回路２１６は第１ＯＳＣ信号を出力し、グラフ４０３に示すように遅延回路２３６は第２ＯＳＣ信号を出力する。そして、第１ＯＳＣ信号及び第２ＯＳＣ信号の出力が開始された後に、グラフ４０４に示すように、第１ＣＥＮ信号がＨｉｇｈとなり、カウンタ２６１及び２６２はカウントを開始する。そして、期間ＴＣＥＮ１経過後、第１ＣＥＮ信号はＬｏｗに変化し、カウンタ２６１及び２６２はカウントを停止し、その状態でのＣＮＴ＃１及びＣＮＴ＃２の値を保持する。この場合、グラフ４０５及び４０６は、期間ＴＣＥＮ１の間に、カウンタ２６１及び２６２ともに、Ｎ個のクロックをカウントする。
【００４２】
図４に戻って説明を続ける。平均化回路２７０は、カウント値の入力をカウンタ２６１から受ける。また、平均化回路２７０は、カウント値の入力をカウンタ２６２から受ける。そして、平均化回路２７０は、それぞれのカウント値の平均を算出し、算出した値を第１カウント値として制御回路１１へ出力する。図４では、平均化回路２７０が出力するカウント値を第１ＣＮＴとして表す。
【００４３】
ＰＣ（Phase  Comparator：比較回路）２２１〜２２４は、疑似クリティカルパス回路１２２から出力された信号と同じ値を有する参照クロック信号が入力される。また、ＰＣ２２１〜２２４の内の先頭から奇数番目の回路は、遅延回路２１２〜２１５の内の奇数番目の回路から、疑似クリティカルパス回路１２１から出力された信号と同じ値を有する比較クロック信号の入力を受ける。また、ＰＣ２２１〜２２４の内の先頭から偶数番目の回路は、遅延回路２１２〜２１５の内の偶数番目の回路から、インバータ１２３から出力された信号と反対の値を有する反転比較クロック信号の入力を受ける。
【００４４】
ＰＣ２２１〜２２４の内の先頭から奇数番目の回路は、比較クロック信号と参照クロック信号との立上りの位相を比較し、比較クロックが進んでいると１を出力し、遅れていると０を出力する。また、ＰＣ２２１〜２２４の内の先頭から偶数番目の回路は、参照クロック信号と反転させられた比較参照クロック信号との立上りの位相を比較し、比較クロックが進んでいると１を出力し、遅れていると０を出力する。すなわち、比較クロック信号が参照クロック信号と同じか又は進んでいる場合、ＰＣ２２１〜２２４は、全て０を出力する。また、比較クロック信号が参照クロック信号より遅れている場合、ＰＣ２２１〜２２４の内のタイミングが一致する遅延が比較クロック信号又は反転比較クロック信号に与えられる回路以降の回路は０を出力し、それ以前の回路は１を出力する。すなわち、ＰＣ２２１〜２２４は、比較クロック信号が参照クロック信号に対して進んでいる分だけ１を出力する。
【００４５】
例えば、比較クロック信号と参照クロックとの遅延差が、遅延回路２１２〜２１５の２つ分と３つ分の間に相当する場合、ＰＣ２２１及び２２２が１を出力し、ＰＣ２２３〜２２４が０を出力する。このように、１の数で比較クロック信号が参照クロック信号に対してどの程度進んでいるかが表される。疑似クリティカルパス回路１２１の回路遅延が、疑似クリティカルパス回路１２２の回路遅延よりも短い場合、比較クロック信号が参照クロック信号に対して進む。そこで、ＰＣ２２１〜２２４が出力する１の数で、疑似クリティカルパス回路１２１の回路遅延が、疑似クリティカルパス回路１２２の回路遅延よりもどのくらい短いのか表される。
【００４６】
ＰＣ２５１〜２５４は、疑似クリティカルパス回路１２１から出力された信号と反対の値を有する比較クロック信号が入力される。また、ＰＣ２５１〜２５４の内の先頭から奇数番目の回路は、遅延回路２３２〜２３５の内の奇数番目の回路から、疑似クリティカルパス回路１２２から出力された信号と同じ値を有する参照クロック信号の入力を受ける。また、ＰＣ２５１〜２５４の内の先頭から偶数番目の回路は、遅延回路２３２〜２３５の内の偶数番目の回路から、インバータ１２４から出力された信号と反対の値を有する反転参照クロック信号の入力を受ける。
【００４７】
ＰＣ２５１〜２５４の内の先頭から奇数番目の回路は、参照クロック信号と反転させられた比較クロック信号との立上りの位相を比較し、比較クロックが遅れていると１を出力し、進んでいると０を出力する。また、ＰＣ２５１〜２５４の内の先頭から偶数番目の回路は、反転させられた反転参照クロック信号と反転させられた比較クロック信号との立上りの位相を比較し、比較クロックが遅れていると１を出力し、進んでいると０を出力する。すなわち、比較クロック信号の位相がと参照クロックの位相と同じか又は進んでいる場合、ＰＣ２５１〜２５４は、全て１を出力する。また、比較クロック信号の位相が参照クロック信号の位相より進んでいる場合、ＰＣ２５１〜２５４の内のタイミングが一致する遅延が参照クロック信号又は反転参照クロック信号に与えられる回路以降の回路は０を出力し、それ以前の回路は１を出力する。すなわち、ＰＣ２５１〜２５４は、比較クロック信号が参照クロック信号に対して遅れている分だけ１を出力する。
【００４８】
例えば、比較クロック信号と参照クロック信号との遅延差が遅延回路２３２〜２３５の２つ分と３つ分の間に相当する場合、ＰＣ２５１及び２５２が１を出力し、ＰＣ２５３〜２５４が０を出力する。このように、０の数で比較クロックが参照クロックに対してどの程度遅れているかが表される。疑似クリティカルパス回路１２１の回路遅延が、疑似クリティカルパス回路１２２の回路遅延よりも長い場合、比較クロック信号が参照クロック信号に対して遅れる。そこで、ＰＣ２５１〜２５４が出力する０の数で、疑似クリティカルパス回路１２１の回路遅延が、疑似クリティカルパス回路１２２の回路遅延よりもどの程度長いのか表される。
【００４９】
ＴＤＣ２００は、ＰＣ２２１〜２２４から出力されたデータを順番に並べて下位ビットとし、ＰＣ２５１〜２５４から出力されたデータを順番に並べて上位ビットとした信号を回路遅延測定値ＱとしてＭＡＳＫ回路１３及び制御回路１１へ出力する。例えば、ＰＣ２２１〜２２４をｎ個とし、ＰＣ２５１〜２５４をｎ個とした場合、ＴＤＣ２００は、２ｎビットの回路遅延測定値Ｑを出力する。その場合、２ｎビットの回路遅延測定値ＱをＱ［２ｎ−１：０］とすると、Ｑ［２ｎ−１：ｎ］が、ＰＣ２２１〜２２４から出力されたデータを順番に並べた値を有し、Ｑ［ｎ−１：ｎ］が、ＰＣ２５１〜２５４から出力されたデータを順番に並べた値を有する。図４では、Ｑ［２ｎ−１：０］のビット位置に合わせて、ＰＣ２２１〜２２４が出力するデータをそれぞれＱ［ｎ］〜［２ｎ−１］であり、ＰＣ２５１〜２５４が出力するデータをそれぞれＱ［ｎ−１］〜［０］である。
【００５０】
疑似クリティカルパス回路１２１の回路遅延が、疑似クリティカルパス回路１２２の回路遅延が等しい場合、Ｑ［２ｎ−１：０］の上位ｎビットが０になり、下位ｎビットが１になる。この値を有するＱ［２ｎ−１：０］を、｛ｎ’ｂ００・・・００，ｎ’ｂ１１・・・１１｝＝｛ｎ（１’ｂ０），ｎ（１’ｂ）と表記する。ｎが例えば、８の場合、疑似クリティカルパス回路１２２の回路遅延が等しければ、Ｑ［１６：０］は、“００００００００１１１１１１１１”となる。また、比較クロック信号が参照信号に対して、所定の遅延の２倍と３倍との間に相当する遅延差で遅れている場合、Ｑ［１６：０］は、“００００００００００１１１１１１”となる。逆に、比較クロック信号が参照信号に対して、所定の遅延の２倍と３倍との間に相当する遅延差で進んでいる場合、Ｑ［１６：０］は、“００００００１１１１１１１１１１”となる。
【００５１】
図１に戻って説明を続ける。ＭＡＳＫ回路１３及び１４は、ＤＤＭ１２から出力された回路遅延測定値Ｑの所定のビットを特定の値に固定するための回路である。以下に、図６及び７を参照して、ＭＡＳＫ回路１３及び１４の詳細について説明する。
【００５２】
図６は、ＭＡＳＫ回路１３の一例を示す図である。ＭＡＳＫ回路１３は、ＯＲ回路１３１〜１３５を有する。ＯＲ回路１３１〜１３５は、ＴＤＣ２００が出力する回路遅延測定値Ｑのビット数と同じ数が配置される。そして、ＯＲ回路１３１〜１３５には、それぞれ回路遅延測定値Ｑの各ビットの値が入力される。すなわち、ＰＣ２２１〜２２４及び２５１〜２５４がそれぞれｎ個ずつの場合、ＯＲ回路１３１〜１３５は、２ｎ個であり、回路遅延測定値Ｑ［０］〜［２ｎ−１］がそれぞれに入力される。
【００５３】
また、ＯＲ回路１３１〜１３５は、それぞれ１ビットの第１マスク信号の入力を制御回路１１から受ける。ここでは、ＯＲ回路１３１〜１３５が２ｎ個の場合で説明する。そして、ＯＲ回路１３１〜１３５に入力される第１マスク信号の値は、それぞれＭ１［０］〜［２ｎ−１］である。ここで、第１マスク信号Ｍ１［０］〜［２ｎ−１］をまとめた信号を第１マスク信号Ｍ１とし、各ビットを表す場合にはＭ１［２ｎ−１：０］と表記する。
【００５４】
ＯＲ回路１３１〜１３５は、回路遅延測定値Ｑと第１マスク信号Ｍ１との論理和をＭＡＳＫ回路１４へ出力する。ここでは、ＯＲ回路１３１〜１３５のそれぞれが出力する値をＡ［０］〜［２ｎ−１］と表す。第１マスク信号Ｍ１の値が１の場合、ＯＲ回路１３１〜１３５から出力される値は１に固定される。これに対して、第１マスク信号Ｍ１の値が０の場合、ＯＲ回路１３１〜１３５から出力される値は固定遅延測定値の値となる。すなわち、ＭＡＳＫ回路１３は、回路遅延測定値Ｑの各ビットを、対応する第１マスク信号Ｍ１の値が１であれば、１に固定するようにマスクする。
【００５５】
図７は、ＭＡＳＫ回路１４の一例を示す図である。ＭＡＳＫ回路１４は、ＡＮＤ回路１４１〜１４５を有する。ＡＮＤ回路１４１〜１４５は、ＭＡＳＫ回路１３のＯＲ回路１３１〜１３５と同数が配置される。そして、ＡＮＤ回路１４１〜１４５には、それぞれＭＡＳＫ回路１３のＯＲ回路１３１〜１３５から出力された信号が入力される。すなわち、ＰＣ２２１〜２２４及び２５１〜２５４がそれぞれｎ個ずつの場合、ＡＮＤ回路１４１〜１４５は、２ｎ個であり、Ａ［０］〜［２ｎ−１］がそれぞれに入力される。
【００５６】
また、ＡＮＤ回路１４１〜１４５は、それぞれ１ビットの第２マスク信号の入力を制御回路１１から受ける。ここでは、ＡＮＤ回路１４１〜１４５が２ｎ個の場合で説明する。そして、ＡＮＤ回路１４１〜１４５に入力される第２マスク信号の値は、それぞれＭ２［０］〜［２ｎ−１］である。ここで、Ｍ２［０］〜［２ｎ−１］をまとめた信号を第２マスク信号Ｍ２とし、各ビットを表す場合はＭ２［２ｎ−１：０］と表記する。
【００５７】
ＡＮＤ回路１４１〜１４５は、ＯＲ回路１３１〜１３５から出力された信号と第２マスク信号Ｍ２との論理積をＰＬＬ回路１５へ出力する。ここでは、ＡＮＤ回路１４１〜１４５のそれぞれが出力する値をＸ［０］〜［２ｎ−１］と表す。第２マスク信号Ｍ２の値が０の場合、ＡＮＤ回路１４１〜１４５から出力される値は０に固定される。これに対して、第２マスク信号Ｍ２の値が１の場合、ＡＮＤ回路１４１〜１４５から出力される値はＯＲ回路１３１〜１３５から出力された信号の値となる。すなわち、ＭＡＳＫ回路１３は、ＯＲ回路１３１〜１３５から出力された信号を、対応する第２マスク信号Ｍ２の値が０であれば、０に固定するようにマスクする。
【００５８】
図１に戻って説明を続ける。ＰＬＬ回路１５は、位相比較器１５１、ループフィルタ１５２、正規化部１５３、加算器１５４、デジタル制御発振器（ＤＣＯ）１５５及び分周器１５６を有する。
【００５９】
位相比較器１５１は、外部のクロック生成装置３から出力された参照信号の入力を受ける。また、位相比較器１５１は、後述する分周器１５６から出力される分周信号の入力を受ける。そして、位相比較器１５１は、分周信号と参照信号との位相差に応じた位相検出信号を生成する。位相検出信号は、分周信号の位相が参照信号の位相より遅い場合には例えばマイナス値（或いは所定の基準値より小さい値）となり、分周信号の位相が参照信号の位相より早い場合には例えばプラス値（或いは所定の基準値より大きい値）となってよい。また位相検出信号は、その値の大きさ（或いは所定の基準値からの差の大きさ）が、分周信号の位相と参照信号の位相との差に応じたものであってよい。位相検出信号は、例えば、各ビットが０又は１の値をとる複数ビットで表現されたデジタルコードであってよい。
【００６０】
ループフィルタ１５２は、位相比較器１５１から出力される位相検出信号の低周波成分を通過させ高周波成分を遮断又は抑制する低域通過フィルタであり、例えばデジタルフィルタにより実現されてよい。ループフィルタ１５２は、位相比較器１５１から出力された位相検出信号を低域通過フィルタ処理することにより、一時的な細かい変動に影響されずにある程度長い期間に亘る位相差の傾向を示す位相差情報を生成し、生成した位相差情報を正規化部１５３に供給する。位相差情報は、例えば、各ビットが０又は１の値をとる複数ビットで表現されたデジタルコードであってよい。
【００６１】
正規化部１５３は、位相差情報の入力をループフィルタ１５２から受ける。正規化部１５３は、供給された位相差情報に所定の係数を乗算することにより、ＤＣＯ１５５の入力信号として適切な値を有する位相差コードを生成する。ＤＣＯ１５５において、入力信号のＬＳＢ（Least  Significant  Bit）の１ビット変化に対する発振周波数の変化の大きさ（感度）は、発振周波数によって異なる。正規化部１５３により、ＤＣＯ１５５の発振周波数に応じた感度の違いを相殺するような係数を位相差情報に乗算することで、ＤＣＯ１５５の感度の周波数依存の影響をなくすことができる。ＤＣＯ１５５の感度の周波数依存の影響を無視してよい場合には、正規化部１５３は設けなくともよい。正規化部１５３により生成された位相差コードは、加算器１５４に供給される。位相差コードは、例えば、各ビットが０又は１の値をとる複数ビットで表現されたデジタルコードであってよい。
【００６２】
加算器１５４は、分周信号と参照信号との位相差に応じた信号である位相差コードの入力を正規化部１５３から受ける。さらに、加算器１５４は、回路遅延測定値Ｑに対してＭＡＳＫ回路１３及び１４によりマスクが行われた信号を検出信号としてＭＡＳＫ回路１４から取得する。検出信号は、回路遅延測定値Ｑがマスクされた信号であり、同じビット数を有するので、以下では、回路遅延測定値Ｑと同様に、Ｑ［２ｎ−１：０］と表し、個々のビットをＱ［０］〜［２ｎ−１］と表す。
【００６３】
さらに、加算器１５４は、オンする駆動ゲートの数を調整するための制御信号ＣＳ（Control  Signal）の入力を制御回路１１から受ける。この制御信号ＣＳは、例えば、検出信号のビット数と同じ数だけ存在する。例えば、検出信号が２ｎビットの場合、加算器１５４は、２ｎ個の制御信号ＣＳの入力を受ける。さらに、制御信号ＣＳのビット数は、そのビット数と検出信号のビット数とを乗算した場合にＤＣＯ１５５が有するオンオフ可能な駆動ゲート数以下となる値である。以下では、制御信号ＣＳのビット数をｈとし検出信号のビット数を２ｎとした場合の制御信号ＣＳを、制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］と表す。
【００６４】
そして、加算器１５４は、検出信号Ｑ［１］〜［２ｎ−１］と制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］とを１つずつ対応させて組を作る。さらに、加算器１５４は、作成した検出信号及び制御信号を組とした信号及び位相コードをＤＣＯ１５５に入力信号として供給する。加算器１５４により位相差コードと加算される信号は、ＭＡＳＫ回路１４の出力である検出信号そのものであってもよいし、ＤＣＯ１５５の入力として適切なサイズとなるよう検出信号を定数倍して正規化した信号であってもよい。
【００６５】
ＤＣＯ１５５は、検出信Ｑ号及び制御信号ＣＳが組とされた信号の入力を加算器１５４から受ける。そして、ＤＣＯ１５５は、入力信号に応じた周期（又は周波数）の発振信号を生成する。ＤＣＯ１５５の発振する発振信号は分周器１５６に供給される。このＤＣＯ１５５が、「発振器」の一例にあたる。
【００６６】
また、ＤＣＯ１５５が発振する発振信号は、クロック信号として論理回路１６に供給される。例えば、ＤＣＯ１５５への入力信号の値が増加すると、ＤＣＯ１５５の発振信号の周期の長さが増加する。逆に、ＤＣＯ１５５の入力信号の値が減少すると、ＤＣＯ１５５の発振信号の周期の長さが減少する。この場合、電源電圧ＶＤＤが下降するとＤＤＭ１２の出力信号である回路遅延測定値Ｑを用いた検出信号Ｑの値が大きくなる。逆に、電源電圧ＶＤＤが上昇するとＤＤＭ１２の出力信号である回路遅延測定値Ｑを用いたＭＡＳＫ回路１４から入力される検出信号の値が小さくなる。仮にＤＣＯ１５５の入力信号の値の増減とＤＣＯ１５５の発振信号の周期の長さの増減との関係が上記とは逆であれば、電源電圧ＶＤＤの下降に応答して、ＭＡＳＫ回路１４から入力される検出信号の値が大きくなってよい。
【００６７】
ただし、ＤＣＯ１５５は、ＰＬＬ回路１５におけるクロックの同期が完了すると、一旦、制御回路１１により適応的周波数制御を停止される。その後、制御回路１１により、ＴＤＣ２００の測定時間分解能とＤＣＯ１５５の周波数変調時間分解能を一致させるためにオンする駆動ゲートの数を調整する制御信号ＣＳの決定が行われる。この制御信号ＣＳは、駆動ゲートの駆動数を変更する制御信号である。その後、決定された制御信号ＣＳが制御回路１１から出力され、ＤＣＯ１５５は、その制御信号ＣＳを用いて、適応的周波数制御を行い、入力信号に応じた周期数の発振信号が生成し出力する。
【００６８】
ここで、図８を参照して、ＤＣＯ１５５の駆動ゲートのオンオフの処理の詳細について説明する。図８は、ＤＣＯの詳細を表す回路図である。
【００６９】
ＤＣＯ１５５は、オシレータを構成する駆動ゲート３０１及び３０２を有する。駆動ゲート３０１は、値が１の信号ＦＣが入力され、常にオンの状態である。これに対して、駆動ゲート３０２は、入力される信号の値が１又は０であり、信号の値が１の場合はオンとなり、信号の値が０の場合はオフとなる。すなわち、駆動ゲート３０１は、常にオシレータとして使用されるが、駆動ゲート３０２はオシレータに使用されない物が存在し、その数により発振周波数が調整される。
【００７０】
さらに、ＤＣＯ１５５は、オンオフ制御回路３１１〜３１６を有する。オンオフ制御回路３１１〜３１６は、検出信号のビット数と同数が配置される。例えば、検出信号のビット数が２ｎビットであれば、オンオフ制御回路３１１〜３１６は、２ｎ個配置される。
【００７１】
２ｎ個のオンオフ制御回路３１１〜３１６は、それぞれ検出信号の各ビットの値であるＱ［０］〜［２ｎ−１］の入力を受ける。また、オンオフ制御回路３１１〜３１６は、それぞれ入力された検出信号のビットに対応する制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］の入力を受ける。以下では、オンオフ制御回路３１１〜３１６を区別せずに、「オンオフ回路３１０」とし、入力された２つの信号をそれぞれ検出信号Ｑ及び制御信号ＣＳ［ｈ−１：０］として説明する。検出信号Ｑは、Ｑ［０］〜［２ｎ−１］の何れかである。また、制御信号ＣＳ［ｈ−１：０］は、ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］の何れかである。
【００７２】
図９は、オンオフ回路の回路図である。オンオフ回路３１０は、ＯＲ回路３２１〜３２５を有する。ＯＲ回路３２１〜３２５は、制御信号ＣＳのビット数と同数が配置される。ここでは、制御信号ＣＳのビット数をｈとした場合で説明する。ＯＲ回路３２１〜３２５は、それぞれ、検出信号Ｑが入力される。さらに、ＯＲ回路３２１〜３２５は、それぞれ、制御信号ＣＳ［ｈ−１：０］の各ビットの値である制御信号ＣＳ［０］〜ＣＳ［ｈ−１］が入力される。そして、ＯＲ回路３２１〜３２５は、それぞれに入力された信号の論理和を求め、算出結果を出力する。ここでは、ＯＲ回路３２１〜３２５のそれぞれが出力する信号をＯＵＴ［０］〜ＯＵＴ［ｈ−１］と表す。
【００７３】
回路遅延測定値Ｑのビットの値が１であれば、制御信号ＣＳ［０］〜ＣＳ［ｈ−１］の値に関わらず、ＯＲ回路３２１〜３２５は、値が１の信号を出力する。これに対して、回路遅延測定値Ｑのビットの値が０の場合、ＯＲ回路３２１〜３２５は、制御信号ＣＳ［０］〜ＣＳ［ｈ−１］の値が０であれば０を出力し、制御信号ＣＳ［０］〜ＣＳ［ｈ−１］の値が１であれば１を出力する。そして、オンオフ制御回路３１１〜３１６から出力された１の値を有する信号の数の駆動ゲート３０２がオンされ、オンオフ制御回路３１１〜３１６から出力された０の値を有する信号の数の駆動ゲート３０２がオフされる。
【００７４】
カウンタ３２０は、第２ＣＥＮ信号の入力を制御回路１１から受ける。第２ＣＥＮ信号の値が０の場合、カウンタ３２０はカウントを停止する。そして、第２ＣＥＮ信号の値が０から１に変わると、カウンタ３２０は、いったん０にリセットされる。そして、カウンタ３２０は、駆動ゲート３０１及び３０２で形成されるオシレータから出力される発振信号をクロックとしてカウントを行う。その後、第２ＣＥＮ信号の値が１から０に変わると、カウンタ３２０は、カウントを停止し、その時点でのカウント値を保持し第２ＣＮＴとして制御回路１１へ出力する。
【００７５】
図１０は、ＤＣＯにおける発振信号のカウントを説明するためのタイミングダイヤグラムである。グラフ４１１は、駆動ゲート３０１及び３０２で形成されるオシレータから出力される発振信号であるＤＣＯＯＳＣ信号を示すグラフである。グラフ４１２は、第２ＣＥＮ信号を示すグラフである。グラフ４１３は、カウンタ３２０のカウント値である第２ＣＮＴを示すグラフである。
【００７６】
グラフ４１１に示すように、駆動ゲート３０１及び３０２で形成されるオシレータは、発振信号であるＤＣＯＯＳＣ信号を出力する。カウンタ３２０は、制御回路１１から入力される第１ＣＥＮ信号の値が０である場合、カウントを行わない。すなわち、グラフ４１２の第２ＣＥＮの値が１になる前の０の値の部分では、グラフ４１３に示すように、カウンタ３２０のカウント値である第２ＣＮＴは不定である。そして、制御回路１１から入力される第２ＣＥＮの値が０から１に変わると、カウンタ３２０は、カウント値をリセットした上で、カウントを開始する。すなわち、グラフ４１２の第２ＣＥＮの値が０から１に変わったタイミングで、グラフ４１３に示すように、カウンタ３２０はカウントを開始する。その後、制御回路１１から入力される第２ＣＥＮの値が１から０に変わると、カウンタ３２０は、カウントを停止し、その時点のカウント値を第２ＣＮＴとして保持する。図１０では、第２ＣＥＮは、期間ＴＣＥＮ２の間は値が１である。すなわち、グラフ４１２に示すように、第２ＣＥＮの値が１になってから期間ＴＣＥＮ２に０に変わる。そして、第２ＣＥＮの値が１から０に変わったタイミングで、グラフ４１３に示すように、カウンタ３２０はカウントを停止し、その後、そのタイミングでのカウント値を第２ＣＮＴとしてする。図１０では、カウンタ３２０は、Ｎを第２ＣＥＮとして保持する。
【００７７】
図１に戻って説明を続ける。分周器１５６が、分周率設定コードに応じた分周率（即ち検出信号Ｑに応じた分周率）で発振信号を分周して分周信号を生成する。分周器１５６は、生成した分周信号を位相比較器１５１へ出力する。
【００７８】
次に、制御回路１１について説明する。制御回路１１は、例えば、マイクロコンピュータなどで実現してもよい。制御回路１１は、以下に説明する処理を実現するためのプログラムを含む各種プログラムをメモリなどに格納し、それら各種プログラムを読み出して実行することで以下に説明する機能を実現する。ここでは、ＰＣ２２１〜２２４及びＰＣ２５１〜２５４がそれぞれｎ個存在する場合、すなわち回路遅延測定値Ｑが２ｎビットの場合で説明する。
【００７９】
制御回路１１は、ＣＰＵ１が動作開始しＰＬＬ回路１５におけるクロックの同期が完了するまで待機する。例えば、制御回路１１は、ＰＬＬ回路１５におけるクロックの同期が完了するのに十分な時間を記憶しておき、ＣＰＵ１の動作開始後にその時間待機してもよい。
【００８０】
次に、制御回路１１は、第１マスク信号Ｍ１として２ｎビット全てが１である信号（Ｍ１＝｛２ｎ（１’ｂ１）｝）をＭＡＳＫ回路１３へ出力する。また、制御回路１１は、第２マスク信号Ｍ２として２ｎビット全てが１である信号（Ｍ２＝｛２ｎ（１’ｂ１）｝）をＭＡＳＫ回路１４へ出力する。これにより、ＭＡＳＫ回路１３は、ＤＤＭ１２が出力する回路遅延測定値Ｑの全てのビットを１に設定する。また、ＭＡＳＫ回路１４は、ＭＡＳＫ回路１３が出力する信号として全てのビットが１である信号の入力を受け、さらに全てのビットが１である第２マスク信号Ｍ２の入力を受けるので、全てのビットが１の信号をＰＬＬ回路１５の加算器１５４へ出力する。これにより、制御回路１１は、ＰＬＬ回路１５に対する適応的周波数制御を停止する。
【００８１】
この状態では、制御回路１１は、値が０のＲＥＮ信号をＤＤＭ１２へ出力しており、ＴＤＣ２００の遅延回路２１２〜２１６及び２３１〜２３６はいずれもリングオシレータ化されていない。また、制御回路１１は、値が０の第１ＣＥＮ信号をＤＤＭ１２へ出力しており、カウンタ２６１及２６２はカウントを行わない状態である。また、制御回路１１は、値が０の第２ＣＥＮ信号をＰＬＬ回路１５のＤＣＯ１５５へ出力しており、ＤＣＯ１５５のカウンタ３２０はカウントを行わない状態である。また、この状態ではＤＣＯ１５５の制御を行っていないので、制御回路１１は、制御信号ＣＳとして適当な値を出力してよい。
【００８２】
その後、制御回路１１は、ＤＤＭ１２へ出力するＲＥＮ信号の値を１に変更する。そして、制御回路１１は、５Ｇクロックサイクル待機する。ここで、ＲＥＮ信号の値が１に変化すると、ＴＤＣ２００の遅延回路２１２〜２１６及び２３１〜２３６はいずれもリングオシレータ化し発振する。そこで、制御回路１１は、リングオシレータ化された遅延回路２１２〜２１６及び２３１〜２３６の発振が安定するまで待機する。そのため、制御回路１１が待機する時間は、リングオシレータ化された遅延回路２１２〜２１６及び２３１〜２３６の発振が安定するまでの時間であれば他の時間でもよい。
【００８３】
次に、制御回路１１は、ＤＤＭ１２へ出力する第１ＣＥＮ信号を１に変更する。その後、制御回路１１は、予め決められたＧ１Ｇクロックサイクル待機する。このＧ１Ｇクロックサイクルは、第１ＣＥＮ信号の値が１となる期間であり、カウンタ２６１及び２６２にリングオシレータ化された遅延回路２１２〜２１６及び２３１〜２３６の発振信号のカウントを行わせる期間である。すなわち、Ｇ１Ｇクロックサイクルは、図５における期間ＴＣＥＮ１にあたる。
【００８４】
そして、Ｇ１Ｇクロックサイクル待機後、制御回路１１は、ＤＤＭ１２へ出力する第１ＣＥＮ信号を０に変更しカウンタ２６１及び２６２のカウントを停止した後、１Ｇクロックサイクル待機する。その後、制御回路１１は、ＤＤＭ１２へ出力するＲＥＮ信号の値を１に変更し、遅延回路２１２〜２１６及び２３１〜２３６のリングオシレータ化を解除して、電圧変動を遅延変動に変換して時間差を測定するという通常動作にＴＤＣ２００を戻す。
【００８５】
そして、制御回路１１は、Ｇ１Ｇクロックサイクルにおけるカウンタ２６１及び２６２カウント値の平均である第１ＣＮＴをＤＤＭ１２の平均化回路２７０から取得する。次に、制御回路１１は、第１ＣＥＮ信号を出力する期間ＴＣＥＮ１を第１ＣＮＴで除算してリングオシレータ化された遅延回路２１２〜２１６及び２３１〜２３６の発振周期を求める。さらに、制御回路１１は、求めた発振周期を遅延回路２１２〜２１６及び２３１〜２３６の数で除算する。これにより、制御回路１１は、遅延回路２１２〜２１６及び２３１〜２３６の１つ分の遅延時間を求める。遅延回路２１２〜２１６及び２３１〜２３６の１つ分の遅延時間は、ＰＣ２２１〜２２４間の１つ分の遅延時間であり、ＴＤＣ２００の測定時間分解能ＴＴＤＣにあたる。
【００８６】
例えば、１Ｇクロックサイクルの時間がＴＧＣＬＫの場合、期間ＴＣＥＮ１は、Ｇ１×ＴＧＣＬＫである。そこで、制御回路１１は、遅延回路２１２〜２１６及び２３１〜２３６の発振周期を、Ｇ１×ＴＧＣＬＫ／第１ＣＮＴとして求める。次に、制御回路１１は、遅延回路２１２〜２１６及び２３１〜２３６の１つ分の遅延時間を、（Ｇ１×ＴＧＣＬＫ／第１ＣＮＴ）／２（ｎ＋１）として求める。すなわち、制御回路１１は、ＴＤＣ２００の測定時間分解能を、ＴＴＤＣ＝（Ｇ１×ＴＧＣＬＫ／第１ＣＮＴ）／２（ｎ＋１）として求める。
【００８７】
次に、制御回路１１は、制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］のいずれもを全てのｈ個のビットが１の信号とし、加算器１５４へ出力する。これにより、制御回路１１は、制御信号ＣＳによるオンする駆動ゲートの数の調整が解除された状態、すなわち制御信号ＣＳの初期状態に設定する。
【００８８】
次に、制御回路１１は、第２マスク信号Ｍ２の上位ｎビットを１とし、下位ｎビットを０とする。すなわち、制御回路１１は、第２マスク信号Ｍ２をＭ２＝｛ｎ（１’ｂ１），ｎ（１’ｂ０）｝とする。これにより、ＭＡＳＫ回路１４は、ＭＡＳＫ回路１３から出力された全てのビットが１の信号の下位ｎビットを０にして出力する。すなわち、ＭＡＳＫ回路１４は、上位ｎビットが１であり、下位ｎビットが０である信号を検出信号として加算器１５４へ出力する。これにより、制御回路１１は、比較クロック信号の位相と参照クロック信号の位相とが一致している状態の検出信号が加算器１５４へ入力されるようにする。
【００８９】
次に、制御回路１１は、１の値のフィードバック制御停止（ＦＢ（Feedback）ＳＴＯＰ）信号をＰＬＬ回路１５へ入力し、ＰＬＬ回路１５のフィードバック制御をオフに設定にする。これにより、制御回路１１は、制御信号ＣＳの調整時にＰＬＬ回路１５においてフィードバック制御が行われないようにする。
【００９０】
次に、制御回路１１は、ＰＬＬ回路１５のＤＣＯ１５５へ出力する第２ＣＥＮ信号の値を０から１に変更する。これにより、制御回路１１は、カウンタ３２０のカウントを開始させる。その後、制御回路１１は、Ｇ２Ｇクロックサイクル待機する。このＧ２Ｇクロックサイクルは、第２ＣＥＮ信号の値が１となる期間であり、駆動ゲート３０１及び３０２で形成されるオシレータから出力される発振信号のカウントをカウンタ３２０に行わせる期間である。すなわち、Ｇ２Ｇクロックサイクルは、図１０における期間ＴＣＥＮ２にあたる。
【００９１】
第２ＣＥＮ信号の値を１に変更後に期間ＴＣＥＮ２が経過すると、制御回路１１は、第２ＣＥＮ信号の値を１から０に変更する。これにより、制御回路１１は、カウンタ３２０のカウントを停止させる。その後、制御回路１１は、駆動ゲート３０１及び３０２で形成されるオシレータから出力される発振信号のカウント数である第２ＣＮＴを、ＤＣＯ１５５のカウンタ３２０から取得する。
【００９２】
次に、制御回路１１は、第２ＣＥＮ信号の値が１となる期間を第２ＣＮＴで除算して駆動ゲート３０１及び３０２で形成されるオシレータの発振周期であるＴＤＣＯを算出する。例えば、１Ｇクロックサイクルの時間がＴＧＣＬＫの場合、期間ＴＣＥＮ２は、Ｇ２×ＴＧＣＬＫである。そこで、制御回路１１は、駆動ゲート３０１及び３０２で形成されるオシレータの発振周期を、ＴＤＣＯ＝Ｇ２×ＴＧＣＬＫ／第２ＣＮＴとして求める。
【００９３】
次に、制御回路１１は、制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］の中から１つ調整対象を選択する。次に、制御回路１１は、選択した制御信号ＣＳの最上位の１ビットの値を０に変更する。
【００９４】
次に、制御回路１１は、ＰＬＬ回路１５のＤＣＯ１５５へ出力する第２ＣＥＮ信号の値を０から１に変更する。その後、制御回路１１は、Ｇ２Ｇクロックサイクル待機する。期間ＴＣＥＮ２が経過後、制御回路１１は、第２ＣＥＮ信号の値を１から０に変更する。その後、制御回路１１は、駆動ゲート３０１及び３０２で形成されるオシレータから出力される発振信号のカウント数である第２ＣＮＴを、ＤＣＯ１５５のカウンタ３２０から取得する。そして、制御回路１１は、駆動ゲート３０１及び３０２で形成されるオシレータの発振周期であるＴＤＣＯを算出する。次に、制御回路１１は、選択した制御信号ＣＳの最上位の１ビットの値を０にした場合の発振周期からビット全てが１の場合の発振周期を減算する。そして、制御回路１１は、減算結果がＴＤＣ２００の測定時間分解能であるＴＴＤＣ以上か否かを判定する。
【００９５】
制御回路１１は、調整対象とした制御信号ＣＳの最上位のビットから順に値が０であるビット数を増やすことを繰り返し、第２ＣＮＴの取得及びＴＤＣＯの算出を行う。そして、制御回路１１は、算出したＴＤＣＯから選択した制御信号ＣＳのビット全てが１の場合の発振周期を減算する処理を、減算結果がＴＤＣ２００の測定時間分解能であるＴＴＤＣ以上になるまで繰り返す。ここで、制御信号ＣＳの中に値が０であるビットが増えると、検出信号の値が０の場合に０を出力するオンオフ回路３１０が増える。すなわち、制御信号ＣＳの中に値が０であるビットが増えると、停止する駆動ゲート３０２が増えることになる。そのため、制御回路１１は、制御信号ＣＳの中に値が０であるビットが増やすことで、ＤＣＯ１５５の周期変調時間分解能は粗くなる。
【００９６】
減算結果がＴＤＣ２００の測定時間分解能であるＴＴＤＣ以上となった場合、制御回路１１は、次の調整対象を制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］の中から１つ選択し、同様に選択した制御信号ＣＳのビットの中で値を０とするビットの決定処理を行う。制御回路１１は、制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］の全てに対して、値を０とするビットの決定処理を繰り返す。
【００９７】
このように、制御回路１１は、各制御信号ＣＳにより駆動ゲート３０１及び３０２で形成されるオシレータに付加される遅延時間がＰＣ２２１〜２２４及び２５１〜２５４が出力する信号間の遅延時間に一致するように調整する。ここで、ＴＤＣ２００の測定時間分解能はＰＣ２２１〜２２４が出力する信号間の遅延時間である。そして、制御信号ＣＳの数は、ＰＣ２２１〜２２４及び２５１〜２５４が出力する信号の数に一致する。したがって、制御回路１１は、各制御信号ＣＳによる発振周期の調整をおこなうことで、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させることができる。すなわち、制御回路１１は、ＤＣＯ１５５の周期変調時間分解能を最大に設定しておき、制御信号ＣＳの中に値が０であるビットが増やすことで徐々に粗くしＤＣＯ１５５の周期変調時間分解能に一致させる処理を行う。
【００９８】
図１１は、ＤＣＯの周期変調時間分解能がＴＤＣの測定時間分解能より低い場合の時間分解能の調整を説明するための図である。図１１は、縦軸で時間を表し、横軸で制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］の中の０の値を有するビットの数を表す。図１１の縦軸で時間を表しているが、駆動ゲート３０１及び３０２で形成されるオシレータの発振周期に応じて時間分解能が決定されるので、縦軸は時間分解能を表すともいえる。
【００９９】
時間分解能５０１は、制御信号ＣＳの全てのビットが１の場合のＤＣＯ１５５の周期変調時間分解能である。時間分解能５０１が、ＤＣＯ１５５の周期変調時間分解能が最も高い場合である。また、時間分解能５０２は、制御信号ＣＳの全てのビットが０の場合のＤＣＯ１５５の周期変調時間分解能である。時間分解能５０１が、ＤＣＯ１５５の周期変調時間分解能が最も低い場合である。
【０１００】
制御回路１１は、制御信号ＣＳの０の値を有するビットの数を増やすことで、時間分解能５０１から時間分解能５０２に向けてＤＣＯ１５５の周期変調時間分解能を粗くして、ＤＣＯ１５５の周期変調時間分解能がＴＤＣ２００の測定時間分解能に一致させる。この場合、制御回路１１は、ＴＤＣ２００の測定時間分解能に一致するＤＣＯ１５５の周期変調時間分解能として、時間分解能５０３を取得する。ここで、時間分解能５０４は、制御信号ＣＳを用いない場合のＤＣＯ１５５の周期変調時間分解能である。すなわち、制御回路１１は、プロセスが基準条件の場合よりも早い場合、制御信号ＣＳを与えることで、ＤＣＯ１５５の周期変調時間分解能を細かくして時間分解能５０３から時間分解能５０４へ変化させる。
【０１０１】
図１２は、ＤＣＯの周波数変調時間分解能がＴＤＣの測定時間分解能より高い場合の時間分解能の調整を説明するための図である。図１２は、縦軸で時間を表し、横軸で制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］の中の０の値を有するビットの数を表す。
【０１０２】
制御回路１１は、制御信号ＣＳの０の値を有するビットの数を増やすことで、時間分解能５０１から時間分解能５０２に向けてＤＣＯ１５５の周期変調時間分解能を粗くし、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させる。この場合、制御回路１１は、ＴＤＣ２００の測定時間分解能に一致するＤＣＯ１５５の周期変調時間分解能として、時間分解能５０５を取得する。ここで、時間分解能５０６は、制御信号ＣＳを用いない場合のＤＣＯ１５５の周期変調時間分解能である。すなわち、制御回路１１は、プロセスが基準条件の場合よりも遅い場合、制御信号ＣＳをあたえることで、ＤＣＯ１５５の周期変調時間分解能を時間分解能５０６から時間分解能５０５へと粗くする。
【０１０３】
図１に戻って説明を続ける。制御回路１１は、第２マスク信号Ｍ２として全てのビットが１の信号（Ｍ２＝｛２ｎ（１’ｂ１）｝）をＭＡＳＫ回路１４へ出力する。これにより、制御回路１１は、ＭＡＳＫ回路１３から出力された信号をＭＡＳＫ回路１４がマスクを行わずにそのまま出力する状態に設定する。次に、制御回路１１は、ＰＬＬ回路１５へ入力するフィードバック制御停止（ＦＢ（Feedback）ＳＴＯＰ）信号の値を１から０に変更し、ＰＬＬ回路１５のフィードバック制御をオンに設定にする。これにより、制御回路１１は、ＰＬＬ回路１５のフィードバック制御を再開させる。その後、制御回路１１は、第１ＭＡＳＫ信号として上位ｎビットが１であり下位ｎビットが０である信号（Ｍ１＝｛ｎ（１’ｂ１），ｎ（１’ｂ０）｝）をＭＡＳＫ回路１３へ出力する。これにより、制御回路１１は、ＤＤＭ１２から出力された信号をＭＡＳＫ回路１３がマスクを行わずにそのまま出力する状態に設定する。
【０１０４】
次に、図１３を参照して、本実施例に係るＤＣＯ周期変調時間分可能キャリブレーションの処理の概略について説明する。図１３は、実施例１に係るＤＣＯ周期変調時間分可能キャリブレーションのフローチャートである。
【０１０５】
制御回路１１は、第１マスク信号Ｍ１及び第２マスク信号Ｍ２の全てのビットを１にしてそれぞれＭＡＳＫ回路１３及び１４へ出力し、ＤＤＭ１２による適応的周波数制御を無効にする（ステップＳ１０１）。この場合、第１マスク信号Ｍ１及び第２マスク信号Ｍ２は、Ｍ１＝Ｍ２＝｛２ｎ（１’ｂ１）｝と表される。
【０１０６】
次に、制御回路１１は、ＴＤＣ２００の測定時間分解能を取得する（ステップＳ１０２）。
【０１０７】
次に、制御回路１１は、ＰＬＬ回路１５のフィードバック制御をオフに設定する（ステップＳ１０３）。
【０１０８】
次に、制御回路１１は、制御信号ＣＳの０の値を有するビットの数を増やし、時間分解能５０１から時間分解能５０２に向けてＤＣＯ１５５の周期変調時間分解能を粗くする。そして、制御回路１１は、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させる（ステップＳ１０４）。
【０１０９】
その後、制御回路１１は、ＰＬＬ回路１５のフィードバック制御をオンに設定する（ステップＳ１０５）。
【０１１０】
さらに、制御回路１１は、ＤＤＭ１２による適応的周波数制御を有効にする（ステップＳ１０６）。その後、制御回路１１は、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させた状態の制御信号ＣＳを加算器１５４へ出力し、適応的周波数制御が加えられたＰＬＬ回路１５を動作させる。すなわち、ＰＬＬ回路１５は、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させた状態で、適応的周波数制御が加えられたクロック信号をデータパス回路１６０へ供給する。
【０１１１】
次に、図１４を参照して、ＴＤＣ２００の測定時間分解能の取得処理の流れについて詳細に説明する。図１４は、ＴＤＣの測定時間分解能の取得処理のフローチャートである。図１４の各処理は図１３のステップＳ１０２において行われる処理を具体化した一例である。
【０１１２】
制御回路１１は、０の値のＲＥＮ信号及び０の値の第１ＣＥＮ信号をＤＤＭ１２へ出力し、０の値の第２ＣＥＮ信号をＤＣＯ１５５へ出力する。また、制御回路１１は、任意の値を有する制御信号ＣＳを加算器１５４へ出力する（ステップＳ２０１）。
【０１１３】
次に、制御回路１１は、ＲＥＮ信号の値を０から１に変化させた後、５Ｇクロックサイクル待機する（ステップＳ２０２）。これにより、制御回路１１は、遅延回路２１２〜２１６及び２３２〜２３６がリングオシレータ化し、安定するまで待機する。
【０１１４】
次に、制御回路１１は、第１ＣＥＮ信号の値を０から１に変化させカウンタ２６１及び２６２のカウントを開始させた後、Ｇ１Ｇクロックサイクル待機する（ステップＳ２０３）。制御回路１１が待機している間、カウンタ２６１及び２６２は、リングオシレータ化された遅延回路２１２〜２１６及び２３２〜２３６の発振信号をクロックとしてカウントを行う。
【０１１５】
次に制御回路１１は、第１ＣＥＮ信号の値を１から０に変化させカウンタ２６１及び２６２のカウントを停止させた後、１Ｇクロックサイクル待機する（ステップＳ２０４）。
【０１１６】
次に、制御回路１１は、ＲＥＮ信号を１から０に変化させ、遅延回路２１２〜２１６及び２３２〜２３６のリングオシレータ化を解除する（ステップＳ２０５）。
【０１１７】
その後、制御回路１１は、カウンタ２６１及び２６２のカウント値の平均値である第１ＣＮＴを平均化回路２７０から取得する（ステップＳ２０６）。
【０１１８】
次に、制御回路１１は、カウンタ２６１及び２６２のカウント期間を第１ＣＮＴで除算し、リングオシレータ化された遅延回路２１２〜２１６及び２３２〜２３６の発振周期を算出する。そして、制御回路１１は、算出した発振周期を遅延回路２１２〜２１６及び２３２〜２３６の数で除算することでＴＤＣ２００の測定時間分解能であるＴＴＤＣを取得する。この場合、制御回路１１は、ＴＴＤＣ＝（Ｇ１／第１ＣＮＴ）×ＴＧＣＬＫ／２（ｎ＋１）としてＴＤＣ２００の測定時間分解能であるＴＴＤＣを算出する（ステップＳ２０７）。
【０１１９】
次に、図１５を参照して、ＤＣＯ１５５の周期変調時間分解能とＴＤＣ２００の測定置換分解能とを一致させる処理の流れについて詳細に説明する。図１５は、ＤＣＯの周期変調時間分解能とＴＤＣの測定置換分解能とを一致させる処理のフローチャートである。図１５の各処理は図１３のステップＳ１０４において行われる処理を具体化した一例である。
【０１２０】
制御回路１１は、制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］の全てのビットを１に設定する。すなわち、制御回路１１は、ＣＳｋ［ｈ−１：０］＝｛ｈ（１’ｂ１）｝（ｋ＝２ｎ−１，２ｎ−２，・・・，０）とする（ステップＳ３０１）。
【０１２１】
次に、制御回路１１は、上位ｎビットが１で下位ｎビットが０の第２マスク信号Ｍ２をＭＡＳＫ回路１４へ出力する。すなわち、制御回路１１は、Ｍ２＝｛ｎ（１’ｂ１），ｎ（１’ｂ０）｝である第２マスク信号Ｍ２を出力する（ステップＳ３０２）。これにより、ＰＬＬ回路１５は、疑似クリティカルパス回路１２１の回路遅延が、疑似クリティカルパス回路１２２の回路遅延が一致する場合の検出信号の入力を受けることになる。
【０１２２】
次に、制御回路１１は、調査対象の制御信号ＣＳの番号をｉとし、番号ｉが２ｎの制御信号を調査対象の制御信号ＣＳとして選択する。すなわち、制御回路１１は、ｉ＝２ｎとする（ステップＳ３０３）。ここで、制御信号ＣＳは、検出信号の各ビットの位置に応じた番号が、図８に示すように振られているものとする。
【０１２３】
次に、制御回路１１は、第２ＣＥＮ信号の値を０から１に変化させてカウンタ３２０にカウントを開始させた後、Ｇ２Ｇクロックサイクル待機する（ステップＳ３０４）。制御回路１１が待機している間、カウンタ３２０は、駆動ゲート３０１及び３０２で形成されるオシレータから出力される発振信号をクロックとしてカウントを行う。
【０１２４】
次に、制御回路１１は、第２ＣＥＮ信号を１から０に変化させ、カウンタ３２０にカウントを停止させる（ステップＳ３０５）。
【０１２５】
その後、制御回路１１は、第２ＣＥＮをカウンタ３２０から取得する（ステップＳ３０６）。
【０１２６】
次に、制御回路１１は、調査対象の制御信号ＣＳの全てのビットが１の場合の発振周期であるＴＤＣＯ＿０を算出する。具体的には、制御回路１１は、ＴＤＣＯ＿０＝（Ｇ２／第２ＣＮＴ）×ＴＧＣＫＬとして調査対象の制御信号ＣＳの全てのビットが１の場合の発振周期を算出する（ステップＳ３０７）。
【０１２７】
次に、制御回路１１は、調査対象の制御信号ＣＳの中で値を１とするビットの数をｊとし、ｊ＝ｈ−1と設定する（ステップＳ３０８）。
【０１２８】
次に、制御回路１１は、調査対象の制御信号ＣＳの下位ｊビットの値を１とし、残りを０とする。すなわち、制御回路１１は、ＣＳｉ［ｈ−１：０］＝｛ｈ−ｊ（１’ｂ０），ｊ（１’ｂ１）とする（ステップＳ３０９）。
【０１２９】
次に、制御回路１１は、第２ＣＥＮ信号の値を０から１に変化させてカウンタ３２０にカウントを開始させた後、Ｇ２Ｇクロックサイクル待機する（ステップＳ３１０）。制御回路１１が待機している間、カウンタ３２０は、駆動ゲート３０１及び３０２で形成されるオシレータから出力される発振信号をクロックとしてカウントを行う。
【０１３０】
次に、制御回路１１は、第２ＣＥＮ信号を１から０に変化させ、カウンタ３２０にカウントを停止させる（ステップＳ３１１）。
【０１３１】
その後、制御回路１１は、第２ＣＥＮをカウンタ３２０から取得する（ステップＳ３１２）。
【０１３２】
次に、制御回路１１は、調査対象の制御信号ＣＳのＪビットを１とした場合の発振周期であるＴＤＣＯ＿ｊを算出する。具体的には、制御回路１１は、ＴＤＣＯ＿ｊ＝（Ｇ２／第２ＣＮＴ）×ＴＧＣＫＬとして調査対象の制御信号ＣＳのｊビットが１の場合の発振周期を算出する（ステップＳ３１３）。
【０１３３】
そして、制御回路１１は、調査対象の制御信号のｊビットが１の場合の発振周期であるＴＤＣＯ＿ｊから調査対象の制御信号の全てのビットが１の場合の発振周期であるＴＤＣＯ＿０を除算した値を算出する。次に、制御回路１１は、除算結果がＴＤＣ２００の測定時間分解能であるＴＴＤＣ以上か否かを判定する。すなわち、制御回路１１は、ＴＤＣＯ＿ｊ−ＴＤＣＯ＿０≧ＴＴＤＣか否かを判定する。（ステップＳ３１４）。ＴＤＣＯ＿ｊ−ＴＤＣＯ＿０≧ＴＴＤＣの場合（ステップＳ３１４：肯定）、制御回路１１は、調査対象の制御信号ＣＳにおける値を１とするビット数をｊとして記憶し、ステップＳ３１７へ進む。
【０１３４】
これに対して、ＴＤＣＯ＿ｊ−ＴＤＣＯ＿０＜ＴＴＤＣの場合（ステップＳ３１４：否定）、制御回路１１は、ｊが０より大きいかを判定する（ステップＳ３１５）。ｊが０より大きい場合（ステップＳ３１５：肯定）、制御回路１１は、ｊを１つデクリメントして（ステップＳ３１６）、ステップＳ３０９へ戻る。
【０１３５】
これに対して、ｊが０以下の場合（ステップＳ３１５：否定）、制御回路１１は、ｉが０以上かを判定する（ステップＳ３１７）。この場合、制御回路１１は、調査対象の制御信号ＣＳにおける値を１とするビット数を制御信号ＣＳの全てのビットの数であるｈとして記憶する。そして、ｉが０以上の場合（ステップＳ３１７：肯定）、制御回路１１は、ｉを１つデクリメントして（ステップＳ３１８）、ステップＳ３０４へ戻る。
【０１３６】
これに対して、ｉが０未満の場合（ステップＳ３１７：否定）、制御回路１１は、全てのビットが１の第２マスク信号Ｍ２をＭＡＳＫ回路１４へ出力する。すなわち、制御回路１１は、Ｍ２＝｛２ｎ（１’ｂ１）｝である第２マスク信号Ｍ２を出力する（ステップＳ３１９）。
【０１３７】
次に、制御回路１１は、上位ｎビットが１で下位ビットが０の第１マスク信号Ｍ１をＭＡＳＫ回路１３へ出力する。すなわち、制御回路１１は、Ｍ１＝｛ｎ（１’ｂ１），ｎ（１’ｂ０）｝である第１マスク信号Ｍ１を出力する（ステップＳ３２０）。これにより、制御回路１１は、ＤＤＭ１２によるＰＬＬ回路１５に対する適応的周波数制御を再開させる。この後、制御回路１１は、決定した数のビットが１となるように制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］を設定し、加算器１５４へ出力する。
【０１３８】
以上に説明したように、本実施例に係るＣＰＵ１は、適応的周波数制御に用いるＴＤＣ２００とＤＣＯ１５５のそれぞれの測定時間分解能と周期変調時間分解能とが一致するように制御信号ＣＳを決定しＤＣＯ１５５へ入力する。
【０１３９】
ここで、図１６を参照して、プロセス又は電圧が変化した場合の、ＴＤＣ２００の測定時間分解能とＤＣＯ１５５の周期変調時間分解能との関係を説明する。図１６は、プロセスのバラつき及び電圧の変化の時間分解能への影響を表す図である。図１６の縦軸は時間分解能を表し、上に向かうにつれて時間分解能が粗くなることを示す。また、図１６の横軸は、プロセス又は電圧を表す。
【０１４０】
時間分解能６１０が、ＶＰＴ条件が基準条件の場合のＤＣＯ１５５の周期変調時間分解能である。また、時間分解能６２０が、ＶＰＴ条件が基準条件の場合のＴＤＣ２００の測定時間分解能である。そして、ＤＣＯ１５５の周期変調時間分解能は、プロセスが遅くなる又は電圧が低くなると粗くなり時間分解能６１１となる。これに対して、ＴＤＣ２００の測定時間分解能は、プロセスが遅くなる又は電圧が低くなると細かくなり時間分解能６２１となる。一方、プロセスが早くなる又は電圧が高くなると、ＤＣＯ１５５の周期変調時間分解能は、細かくなり時間分解能６１２となる。これに対して、ＴＤＣ２００の測定時間分解能は、プロセスが早くなる又は電圧が高くなると粗くなり時間分解能６２２となる。
【０１４１】
このように、時間分解能はプロセスのバラつきや電圧の変化に対してＴＤＣ２００の測定時間分解能の精度とＤＣＯ１５５の周期変調時間分解能の精度は逆方向に動く。そのため、従来の適応的周波数制御を行うＣＰＵでは、時間分解能はプロセスのバラつきや電圧の変化により適応的周波数制御の精度が低下した。
【０１４２】
これに対して、本実施例に係るＣＰＵ１は、ＴＤＣ２００の測定時間分解能の精度とＤＣＯ１５５の周期変調時間分解能の精度を一致させる。これにより、本実施例に係るＣＰＵ１は、プロセスのバラつきや電圧の変化によるＴＤＣ２００の測定時間分解能とＤＣＯ１５５の周期変調時間分解能の差の拡大を抑制することができる。したがって、本実施例に係るＣＰＵ１は、プロセスのバラつきや電圧の変化が発生した場合における適応周波数制御の精度を向上させることができる。
【０１４３】
（変形例）
図１７は、変形例に係るＴＤＣの詳細を表す回路図である。本変形例は、ＴＤＣ２００に配置される遅延回路２０１〜２０２、２１１〜２１６、２３１〜２３６及び２４１として、バッファを用いた場合の構成である。
【０１４４】
バッファを用いて構成された遅延回路２１２〜２１６は、それぞれ比較クロック信号に遅延を与える。ＰＣ２２１〜２２４は、遅延が与えられた比較クロック信号と参照クロック信号とを比較し、比較結果を出力する。ＰＣ２２１〜２２４は、比較クロック信号が参照クロック信号より進んでいる場合には１を出力し、比較クロック信号が参照クロック信号より遅れている場合には０を出力する。
【０１４５】
バッファを用いて構成された遅延回路２３２〜２３６は、それぞれ参照クロック信号に遅延を与える。ＰＣ２５１〜２５４は、比較クロック信号と遅延が与えられた参照クロック信号とを比較し、比較結果を出力する。ＰＣ２５１〜２５４は、比較クロック信号が参照クロック信号より進んでいる場合には１を出力し、比較クロック信号が参照クロック信号より遅れた場合には０を出力する。
【０１４６】
このように、ＴＤＣ２００は、遅延回路２０１〜２０２、２１１〜２１６、２３１〜２３６及び２４１にバッファを用いた場合も実施例１と同様に比較クロック信号が参照クロック信号に対して遅れているか進んでいるかを表す回路遅延測定値Ｑを出力する。
【０１４７】
以上に説明したように、遅延回路２０１〜２０２、２１１〜２１６、２３１〜２３６及び２４１を用いてＴＤＣ２００を構成した場合にも適応的周波数制御を実現することができる。したがって、このＴＤＣ２００を用いても、ＣＰＵ１は、プロセスのバラつきや電圧の変化が発生した場合における適応周波数制御の精度を向上させることができる。
【実施例２】
【０１４８】
図１８は、実施例２に係るＣＰＵのブロック図である。本実施例に係るＣＰＵ１は、プロセスが、基準条件の場合よりも遅い場合と早い場合とに応じて、ＤＣＯ１５５の周期変調時間分解能とＴＤＣ２００の測定時間分解能とを一致させる方法を、制御信号ＣＳの中の０の値のビットを増やすか減らすかのいずれかに決定する。以下では、実施例１と同様の各部の機能については説明を省略する。
【０１４９】
本実施例に係るＣＰＵ１は、制御回路１１にプロセスセンサ１１１が搭載される。プロセスセンサ１１１は、ＣＰＵ１の製造バラつきを判定する。具体的には、プロセスセンサ１１１は、ＣＰＵ１のプロセスが基準条件の場合よりも遅いか早いかを判定する。ここで、本実施例では、制御回路１１にプロセスセンサ１１１が搭載された場合で説明したが、プロセスセンサ１１１は、制御回路１１外に配置され、プロセスセンサ１１１が、ＣＰＵ１の製造バラつきの判定結果を制御回路１１へ送信する構成でもよい。
【０１５０】
制御回路１１は、プロセスセンサ１１１からＣＰＵ１の製造バラつきの判定結果を取得する。次に、制御回路１１は、第１ＣＮＴをＤＤＭ１２の平均化回路２７０から取得する。そして、制御回路１１は、ＴＤＣ２００の測定時間分解能であるＴＴＤＣを用いて算出する。
【０１５１】
プロセスが基準条件の場合よりも早い場合、制御回路１１は、制御信号ＣＳの全てのビットを１にした場合の第２ＣＮＴを、ＤＣＯ１５５のカウンタ３２０から取得する。そして、制御回路１１は、駆動ゲート３０１及び３０２で形成されるオシレータの発振周期であるＴＤＣＯを算出する。その後、制御回路１１は、制御信号ＣＳの最上位ビットから０の数を増やしながら、第２ＣＮＴを、ＤＣＯ１５５のカウンタ３２０から取得する。そして、制御回路１１は、駆動ゲート３０１及び３０２で形成されるオシレータの発振周期であるＴＤＣＯを算出する。そして、制御回路１１は、０を増やした制御信号ＣＳを用いた場合のＴＤＣＯから全のビットが１の制御信号ＣＳを用いた場合のＴＤＣＯを減算し、減算結果がＴＤＣ２００の測定時間分解能であるＴＴＤＣ以上になる場合の制御信号ＣＳを特定する。制御回路１１は、全ての制御信号ＣＳに対して上記処理を繰り返して、ＤＣＯ１５５の周期変調時間分解能とＴＤＣ２００の測定時間分解能とを一致させる制御信号ＣＳを決定する。
【０１５２】
これに対して、プロセスが基準条件の場合よりも遅い場合、制御回路１１は、制御信号ＣＳの全てのビットを０にした場合の第２ＣＮＴを、ＤＣＯ１５５のカウンタ３２０から取得する。そして、制御回路１１は、駆動ゲート３０１及び３０２で形成されるオシレータの発振周期であるＴＤＣＯを算出する。その後、制御回路１１は、制御信号ＣＳの最下位ビットから１の数を増やしながら、第２ＣＮＴを、ＤＣＯ１５５のカウンタ３２０から取得する。そして、制御回路１１は、駆動ゲート３０１及び３０２で形成されるオシレータの発振周期であるＴＤＣＯを算出する。そして、制御回路１１は、全のビットが０の制御信号ＣＳを用いた場合のＴＤＣＯから１を増やした制御信号ＣＳを用いた場合のＴＤＣＯを減算し、減算結果がＴＤＣ２００の測定時間分解能であるＴＴＤＣ以上となる制御信号ＣＳであって、最も短いＴＤＣＯとなる制御信号ＣＳを特定する。制御回路１１は、全ての制御信号ＣＳに対して上記処理を繰り返して、ＤＣＯ１５５の周期変調時間分解能とＴＤＣ２００の測定時間分解能とを一致させる制御信号ＣＳを決定する。
【０１５３】
図１９は、実施例２に係るＤＣＯの周波数変調時間分解能がＴＤＣの測定時間分解能より高い場合の時間分解能の調整を説明するための図である。図１９は、縦軸で時間を表し、横軸で制御信号ＣＳ０［ｈ−１：０］〜ＣＳ２ｎ−１［ｈ−１：０］の中の０の値を有するビットの数を表す。
【０１５４】
制御回路１１は、制御信号ＣＳの１の値を有するビットの数を増やすことで、時間分解能５０２から時間分解能５０１に向けてＤＣＯ１５５の周期変調時間分解能を細かくし、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させる。この場合、制御回路１１は、ＴＤＣ２００の測定時間分解能に一致するＤＣＯ１５５の周期変調時間分解能として、時間分解能５０７を取得する。ここで、時間分解能５０８は、制御信号ＣＳを用いない場合のＤＣＯ１５５の周期変調時間分解能である。すなわち、制御回路１１は、プロセスが基準条件の場合よりも遅い場合、制御信号ＣＳをあたえることで、ＤＣＯ１５５の周期変調時間分解能を時間分解能５０８から時間分解能５０７へと粗くする。
【０１５５】
次に、図２０を参照して、本実施例に係るＤＣＯ周期変調時間分可能キャリブレーションの処理の概略について説明する。図２０は、実施例２に係るＤＣＯ周期変調時間分可能キャリブレーションのフローチャートである。
【０１５６】
プロセスセンサ１１１は、ＣＰＵ１のプロセスのバラつきを判定する（ステップＳ４０１）。そして、制御回路１１は、ＣＰＵ１のプロセスのバラつきの判定結果をプロセスセンサ１１１から取得する。
【０１５７】
制御回路１１は、第１マスク信号Ｍ１及び第２マスク信号Ｍ２の全てのビットを１にしてそれぞれＭＡＳＫ回路１３及び１４へ出力し、ＤＤＭ１２による適応的周波数制御を無効にする（ステップＳ４０２）。
【０１５８】
次に、制御回路１１は、ＴＤＣ２００の測定時間分解能を取得する（ステップＳ４０３）。
【０１５９】
次に、制御回路１１は、ＰＬＬ回路１５のフィードバック制御をオフに設定する（ステップＳ４０４）。
【０１６０】
次に、制御回路１１は、プロセスセンサ１１１による判定結果から、ＣＰＵ１のプロセスが基準条件より早いか否かを判定する（ステップＳ４０５）。
【０１６１】
プロセスが基準条件より早い場合（ステップＳ４０５：肯定）、制御回路１１は、制御信号ＣＳの０の値を有するビットの数を増やす方向で０とするビットの数を決定する処理を実行する。そして、制御回路１１は、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させる（ステップＳ４０６）。
【０１６２】
これに対して、プロセスが基準条件より遅い場合（ステップＳ４０５：否定）、制御回路１１は、制御信号ＣＳの０の値を有するビットの数を減らす方向で０とするビットの数を決定する処理を実行する。そして、制御回路１１は、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させる（ステップＳ４０７）。
【０１６３】
その後、制御回路１１は、ＰＬＬ回路１５のフィードバック制御をオンに設定する（ステップＳ４０８）。
【０１６４】
さらに、制御回路１１は、ＤＤＭ１２による適応的周波数制御を有効にする（ステップＳ４０９）。その後、制御回路１１は、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させた状態の制御信号ＣＳを加算器１５４へ出力し、適応的周波数制御が加えられたＰＬＬ回路１５を動作させる。すなわち、ＰＬＬ回路１５は、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させた状態で、適応的周波数制御が加えられたクロック信号をデータパス回路１６０へ供給する。
【０１６５】
以上に説明したように、本実施例に係るＣＰＵ１は、プロセスが基準条件より早い場合、ＤＣＯ１５５の周期変調時間分解能が粗くなるように制御信号ＣＳを変化させて、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させる。また、プロセスが基準条件より遅い場合、本実施例に係るＣＰＵ１は、ＤＣＯ１５５の周期変調時間分解能が細かくなるように制御信号ＣＳを変化させて、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させる。
【０１６６】
ここで、プロセスが基準条件よりも早い場合、ＤＣＯ１５５の周期変調時間分解能が粗くなるように制御信号ＣＳを変化させた方が、細かくなるように制御信号ＣＳを変化させた場合に比べて収束が早い。これに対して、プロセスが基準条件よりも遅い場合、ＤＣＯ１５５の周期変調時間分解能が細かくなるように制御信号ＣＳを変化させた方が、粗くなるように制御信号ＣＳを変化させた場合に比べて収束が早い。したがって、本実施例に係る制御回路１１は、ＤＣＯ１５５の周期変調時間分解能をＴＤＣ２００の測定時間分解能に一致させる制御信号ＣＳの決定の時間を実施例１の場合に比べて短縮することができる。
【符号の説明】
【０１６７】
１  ＣＰＵ
２  プロセッサ電源
３  クロック生成装置
１１  制御回路
１２  ＤＤＭ
１３  ＭＡＳＫ回路
１４  ＭＡＳＫ回路
１５  ＰＬＬ回路
１６  論理回路
１１１  プロセスセンサ
１２１，１２２  疑似クリティカルパス回路
１２３〜１２５  インバータ
１５１  位相比較器
１５２  ループフィルタ
１５３  正規化部
１５４  加算器
１５５  ＤＣＯ
１５６  分周器
１６０  データパス回路
１６１，１６２  フリップフロップ
１６３  回路素子群
２００  ＴＤＣ
２０１〜２０２，２１１〜２１６，２３１〜２３６，２４１  遅延回路
２２１〜２２４，２５１〜２５４  ＰＣ
２６１，２６２  カウンタ
２７０  平均化回路
３０１，３０２  駆動ゲート
３１１〜３１６  オンオフ制御回路
３２０  カウンタ
【図１】
2018101222.tif 000003
【図２】
2018101222.tif 000004
【図３】
2018101222.tif 000005
【図４】
2018101222.tif 000006
【図５】
2018101222.tif 000007
【図６】
2018101222.tif 000008
【図７】
2018101222.tif 000009
【図８】
2018101222.tif 000010
【図９】
2018101222.tif 000011
【図１０】
2018101222.tif 000012
【図１１】
2018101222.tif 000013
【図１２】
2018101222.tif 000014
【図１３】
2018101222.tif 000015
【図１４】
2018101222.tif 000016
【図１５】
2018101222.tif 000017
【図１６】
2018101222.tif 000018
【図１７】
2018101222.tif 000019
【図１８】
2018101222.tif 000020
【図１９】
2018101222.tif 000021
【図２０】
2018101222.tif 000022