(57)【特許請求の範囲】
【請求項１】
２本の信号線の伝播遅延時間差を測定する遅延時間差測定回路であって、
該２本の信号線に接続され、選択信号に応じて一方の信号線を伝播する信号を出力する選択回路と、
該選択回路に接続され、該選択回路の出力信号を一定時間遅延させて該選択信号として出力する切替回路と、
該選択回路の出力側と該２本の信号線の入力側を接続する帰還経路と、
該帰還経路に接続され、該帰還経路を伝播する信号の自己発振周期に基づいて該２本の信号線を伝播する信号の遅延時間の差を算出する制御回路と
を有することを特徴とする遅延時間差測定回路。
【請求項２】
該切替回路は切替信号に応じて出力する該選択信号の論理を固定し、
該制御回路は該切替信号を出力し、該切替信号に応じた該帰還経路の自己発振周期をそれぞれ測定し、測定したそれぞれの該自己発振周期の差分に基づいて該２本の信号線を伝播する信号の遅延時間の差を算出する
ことを特徴とする、請求項１に記載の遅延時間差測定回路。
【請求項３】
該２本の信号線は、それぞれ奇数個のインバータを有することを特徴とする、請求項１に記載の遅延時間差測定回路。
【請求項４】
該帰還経路は、該２本の信号線がそれぞれ偶数個のインバータを有する場合に、１つのインバータを有することを特徴とする、請求項１に記載の遅延時間差測定回路。
【請求項５】
該切替回路は、
該選択回路の出力信号を該一定時間遅延させ、該出力信号の論理を反転させる遅延回路と、
該遅延回路の出力信号の論理と該切替信号の論理の論理和を該選択信号として出力するＯＲ回路と
を有することを特徴とする、請求項２に記載の遅延時間差測定回路。
【請求項６】
該切替回路は、
該選択回路の出力信号の論理を反転させるインバータと、
論理反転した該選択回路の出力信号と同一の論理の信号をトリガ信号の論理が遷移するタイミングに応じて出力する順序回路と、
該２本の信号線を伝播する信号と該選択回路の出力信号との論理積を出力するＡＮＤ回路と、
該２本の信号線を伝播する信号と該選択回路の出力信号との論理和を反転させて出力するＮＯＲ回路と、
該ＡＮＤ回路と該ＮＯＲ回路のいずれか一方を該順序回路の出力信号の論理に応じて選択し、該トリガ信号として出力するマルチプレクサと、
該順序回路の出力信号と該切替信号との論理和を選択信号として出力するＯＲ回路と
を有することを特徴とする、請求項２に記載の遅延時間差測定回路。
【請求項７】
該２本の信号線の少なくとも一方に挿入され、設定信号に応じて該信号線を伝播する信号を遅延させる遅延回路をさらに有し、
該制御回路は、算出した該遅延時間の差に基づいて設定した該設定信号を該遅延回路に出力することを特徴とする、請求項１に記載の遅延時間差測定回路。
【請求項８】
該制御回路は、
該動作モードを設定する該切替信号を出力するモード制御部と、
設定した該動作モードに応じて該発振周期を測定する測定部と、
各該動作モードにおける発振周期を記憶する記憶部と、
該第一のモードにおける発振周期と該第二のモードにおける発振周期との差分値に応じて該２本の信号線を伝播する信号の遅延時間をそれぞれ設定し、設定した該遅延時間に応じて設定信号を出力する比較部と
を有することを特徴とする、請求項７に記載の遅延時間差測定回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２つの信号線路間の遅延時間差測定回路に関する。
【背景技術】
【０００２】
同期集積回路システムの設計において、集積回路上の機能ブロックを構成する複数のセルは同一のクロック源からクロックを供給される。適切かつ安定した波形のクロックを多くのセルに供給するためにはクロック源から何段かのバッファやインバータを介してクロックを分岐して供給することが一般的な方法である。インバータは入力信号の論理値を反転させて出力する論理反転回路である。
【０００３】
論理反転回路の挿入数が同じ場合、各セルへのクロック供給タイミングは同時また所望のタイミングになっていることが望ましい。しかし集積回路の製造プロセスにおけるプロセスばらつき、電源電圧変動や集積回路動作時の発熱量のばらつきにより２つの信号線を伝播するクロック信号の伝播遅延時間は同一にならない場合がある。クロック信号間の遅延時間の差はクロックスキューと呼ばれる。クロックスキューが２つのセルの動作タイミングのずれ量の許容値を超えると、集積回路が誤動作を起こす可能性が高くなる。
【０００４】
集積回路動作時における２つのクロック信号間のクロックスキューを評価するため、２つの信号線の出力をそれぞれの信号線の入力に帰還させ、帰還経路を形成する。帰還経路により形成されたループは複数個のインバータを含んでいるため、インバータの数が奇数個であればリングオッシレータとして動作する。リングオッシレータの自己発振周期は信号線を伝播する信号の伝播遅延時間に依存する。よってそれぞれの経路について形成されたリングオッシレータの自己発振周期の差分から、信号線を伝播する信号の伝播遅延時間の差分を求めることが出来る。以下の特許文献には回路を伝播する信号の伝播遅延に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１６３８１９号公報
【特許文献２】特開平１０−３００８２１号公報
【特許文献３】特表２００８−５１０４２８号公報
【０００６】
しかし、インバータを構成するトランジスタの信号伝播特性は入力信号の電圧値がロウの場合とハイの場合とで異なる。それぞれの経路について形成されたリングオッシレータの発振周期の差分ではロウレベルの信号伝播特性とハイレベルの信号伝播特性との違いを考慮することは出来ない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の一実施例では、２つの信号間の遅延時間差を信号のエッジに応じて正確に測定する遅延時間差測定回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、２本の信号線の伝播遅延時間差を測定する遅延時間差測定回路は、該２本の信号線に接続され、選択信号に応じて一方の信号線を伝播する信号を出力する選択回路と、該選択回路に接続され、該選択回路の出力信号を一定時間遅延させて該選択信号として出力する切替回路と、該選択回路の出力側と該２本の信号線の入力側を接続する帰還経路と、該帰還経路に接続され、該帰還経路を伝播する信号の自己発振周期に基づいて該２本の信号線を伝播する信号の遅延時間の差を算出する制御回路とを有する。
【発明の効果】
【０００９】
実施形態によれば、２つの信号間の遅延時間差を信号のエッジに応じて正確に測定する遅延時間差測定回路を提供することが出来る。
【図面の簡単な説明】
【００１０】
【図１】集積回路のブロック図である。
【図２】クロック抽出回路の回路図である。
【図３】第一のモードにおけるマルチプレクサの入出力信号の波形図である。
【図４】クロック抽出回路の回路図である。
【図５】第一のモードにおける切替回路のタイミングチャート図である。
【図６】遅延時間差調整回路の回路図である。
【図７】制御回路の処理フローチャート図である。
【図８】制御回路のブロック図である。
【図９】比較部に記憶された調整テーブルである。
【図１０】遅延調整部の回路図および遅延設定テーブルである。
【図１１】遅延調整部の回路図である。
【図１２】遅延調整部の回路図である。
【発明を実施するための形態】
【００１１】
以下、本実施の形態について説明する。なお、各実施形態における構成の組み合わせも本発明の実施形態に含まれる。
【００１２】
図１はクロック分配系に着目した集積回路１のブロック図である。集積回路１はセル１１、１２、１３、１４、クロック源１５、遅延回路５、６、７、８、９、１０、遅延時間差測定回路１９、マルチプレクサ２を有する。
【００１３】
セル１１、１２、１３、１４はそれぞれ異なる機能を構成する回路である。本実施例においてセル１１、１２、１３、１４は同一クロックにより同期して動作している。
【００１４】
クロック源１５はセル１１、１２、１３、１４にクロックを供給する。遅延回路５、６、７、８、９、１０は内部に複数のインバータを有し、クロック源１５から供給されるクロックがインバータの数に応じて遅延する。
【００１５】
クロック信号１６は遅延回路５、７を含む信号線を伝播し、マルチプレクサ３に入力される信号である。クロック信号１７は遅延回路６、８を含む信号線を伝播し、マルチプレクサ３に入力される信号である。
【００１６】
遅延時間差測定回路１９は２つのクロック信号１６、１７の遅延時間の差を測定する。遅延時間差測定回路１９はマルチプレクサ３、切替回路４、帰還経路２４、制御回路６０を有する。
【００１７】
マルチプレクサ３はクロック信号１６、１７が伝播する２本の信号線の信号出力側に接続される。従ってマルチプレクサ３はセル１１に供給されるクロック信号１６とセル１２に供給されるクロック信号１７を入力とする。マルチプレクサ３は選択信号１８に応じて信号線を伝播する何れか一方のクロック信号を出力する選択回路として動作する。
【００１８】
切替回路４はマルチプレクサ３の信号出力側に接続される。切替回路４はマルチプレクサ３の出力信号を一定時間遅延させて選択信号１８を出力する。切替回路４は入力される切替信号２３に応じて２つの動作モードを切り替える。第一のモードにおいて、切替回路４はマルチプレクサ３の出力信号２５を受信し、出力信号２５を一定時間遅延させて選択信号１８として出力する。切替回路４によって出力信号２５を遅延させる時間は、マルチプレクサ３の出力信号の論理値が変化してから２つのクロック信号１６、１７間のクロックスキューよりも長い時間である。また第二のモードにおいて、切替回路４は一方のクロック信号を常に選択し出力するように選択信号１８を出力する。各動作モードについての詳細な説明は後述する。
【００１９】
帰還経路２４はマルチプレクサ３の出力をマルチプレクサ２の一方の入力とするための配線である。
【００２０】
マルチプレクサ２は選択信号６５の論理値に応じてクロック源１５から各セルへクロックを供給するモードと、２本の信号線間のクロックスキューを測定するモードとを切り替える。マルチプレクサ２は一方の入力でクロック源１５からのクロック信号を受信し、他方の入力で帰還経路２４を伝播する信号を受信する。マルチプレクサ２は選択信号６５が‘０’の場合にクロック源１５から受信したクロック信号を出力し、選択信号６５の論理値が‘１’の場合に帰還経路２４を伝播する信号を出力する。マルチプレクサ２の選択信号６５の論理値は、本実施例のように制御回路６０により制御しても良いし、半導体装置１の外部から制御してもよい。
【００２１】
マルチプレクサ２の出力からマルチプレクサ３の入力までのインバータの数が奇数の場合、帰還経路２４によりリングオッシレータが形成される。リングオッシレータはマルチプレクサ２の出力からマルチプレクサ３の入力までの遅延時間に応じた周期で自己発振する。マルチプレクサ２の出力からマルチプレクサ３の入力までの経路を形成するインバータ数が偶数の場合、マルチプレクサ３の出力にインバータを１つ挿入するなどにしてマルチプレクサ３の出力からマルチプレクサ２までの論理極性を反転させる。こうすることでリングオッシレータが形成される。
【００２２】
制御回路６０は帰還経路２４に接続され、帰還経路２４を伝播する信号の自己発振周期に基づいて２本の信号線を伝播するクロック信号１６、１７の遅延時間の差を算出する。制御回路６０は選択回路４の動作モードを切替える切替信号２３を出力する。制御回路６０は切替信号２３によって選択回路４に設定した動作モードに応じて帰還経路２４の発振周期をそれぞれ測定する。制御回路６０は測定したそれぞれの発振周期の差分を算出することによりクロック信号１６、１７の伝播遅延時間の差を測定することが出来る。遅延時間の差の具体的な測定方法は図３を用いて後述する。制御回路６０はあらかじめ設定された基準値を記憶しておき、何れか一方の動作モードで測定した発振周期と基準値との差分を算出することによって遅延時間の差分を測定することも出来る。
【００２３】
制御回路６０において、帰還経路２４の発振周期を測定する機能は、測定器として集積回路１の外部に実装しても良い。
【００２４】
以上、２つのクロック信号１６、１７を選択し、クロック抽出回路を介して帰還ループを形成することにより、２つのクロック信号１６、１７の遅延時間の差を測定することが出来る。
【００２５】
図２は遅延時間差測定回路１９を含む回路の回路図である。図２の遅延時間差測定回路１９において、切替回路４はＯＲ回路２０、インバータ２１、遅延バッファ２２を有する。図２において、図１の集積回路１と同一部材には同一番号を付し、その説明を省略する。
【００２６】
遅延バッファ２２はマルチプレクサ３から帰還経路２４へ出力された出力信号２５の論理値をそのままに一定時間遅延させて出力する。遅延バッファ２２による遅延時間は２つのクロック信号１６、１７間のクロックスキューよりも大きな値とする。遅延バッファ２２の遅延時間は外部から調整可能としてもよい。遅延バッファ２２の代わりに一定時間の遅延時間を有するインバータを用いることにより、後述するインバータ２１を省略することが出来る。
【００２７】
インバータ２１は遅延バッファ２２から出力された出力信号２５の論理値を反転させて出力する。ＯＲ回路２０は切替信号２３を一方の入力とし、インバータ２１から出力される信号を他方の入力とする。ＯＲ回路２０は２つの入力信号の論理和を選択信号１８として出力する。
【００２８】
ＯＲ回路２０はいずれか一方の入力の論理値が‘１’であれば論理値‘１’の信号を出力する。よって切替信号２３の論理値を‘１’にすることにより、切替回路４は前述した第二のモードで動作する。
【００２９】
切替信号２３の論理値を‘０’とすることにより、ＯＲ回路２０から出力される選択信号１８の論理値は、マルチプレクサ３の出力信号２５を一定時間遅延させて反転させた信号の論理値に応じて変化する。切替信号２３の論理値が‘０’の場合、切替回路４はマルチプレクサ３の出力信号の論理値が変化してから一定時間経過後に出力信号２５を切り替える選択信号１８を出力する。よって切替回路４は前述した第一のモードで動作する。
【００３０】
以上の通り、出力信号２５の遷移から一定時間経過後に選択信号１８の論理値を変えることにより、出力信号２５として出力されるクロック信号１６、１７を交互に入れ替えることが出来る。
【００３１】
図３は第一のモードにおけるマルチプレクサ３の入出力信号の波形図である。波形１６はクロック信号１６の電圧波形を表す。波形１７はクロック信号１７の電圧波形を表す。波形２５は帰還経路２４への出力信号２５の電圧波形を表す。波形１８は選択信号１８の電圧波形を表す。ここで波形１６、１７はマルチプレクサ２から遅延回路５、６へ同一の信号を入力したと仮定した場合のマルチプレクサ３の入力信号波形である。波形２５はマルチプレクサ３へ入力されるクロック信号１６、１７の波形１６、１７を図３のように仮定した場合の波形である。
【００３２】
図３において、時間Ｔ１はクロック信号１６とクロック信号１７とのクロックスキューである。本実施例において、クロック信号１６の位相はクロック信号１７の位相よりもＴ１進んでいる。時間Ｔ２は遅延バッファ２２による遅延時間である。時間Ｔ２は時間Ｔ１をある程度想定し、時間Ｔ１よりも大きい値になるように設定する。
【００３３】
制御回路６０は切替回路４の動作モードを第一のモードに設定する切替信号２３を出力する。切替回路４から出力される選択信号１８の論理値は最初‘０’であるため、マルチプレクサ３はクロック信号１６を選択する。マルチプレクサ３はクロック信号１６を出力信号２５として出力する。クロック信号１６の論理値が‘１’から‘０’に遷移し始めてから時間Ｔ２経過後に選択信号１８の論理値は‘０’から‘１’に遷移し始める。区間Ｂにおいて選択信号１８の論理値が‘１’になると、マルチプレクサ３はクロック信号１７を選択し出力信号２５として出力する。
【００３４】
出力信号２５の論理値が‘０’から‘１’に遷移し始めてから時間Ｔ２経過後に、選択信号１８の論理値は‘１’から‘０’に遷移し始める。区間Ａにおいて選択信号１８の論理値が‘０’になると、マルチプレクサ３はクロック信号１６を選択し、出力信号２５として出力する。
【００３５】
区間Ａにおいて論理値が‘１’から‘０’に遷移するクロック信号１６が遅延回路５、７を伝播する伝播遅延時間をＤ０ｄｎとする。区間Ｂにおいて論理値が‘０’から‘１’に遷移するクロック信号１７が遅延回路６、８を伝播する伝播遅延時間をＤ１ｕｐとする。区間Ａにおいて論理値が‘１’から‘０’に遷移するクロック信号１６が帰還経路２４を伝播する伝播遅延時間をＤＣｄｎとする。区間Ｂにおいて論理値が‘０’から‘１’に遷移するクロック信号１７が帰還経路２４を伝播する伝播遅延時間をＤＣｕｐとする。この場合、第一のモードにおけるリングオッシレータの自己発振周期ＴＶ１は、ＴＶ１＝Ｄ０ｄｎ＋Ｄ１ｕｐ＋ＤＣｄｎ＋ＤＣｕｐとなる。
【００３６】
制御回路６０は帰還経路２４に接続されている。制御回路６０は第一のモードにおいて帰還経路２４を伝播する信号の自己発振周期ＴＶ１を測定する。制御回路６０は例えば自己発振周期ＴＶ１よりも十分小さい周期を有するパルス発生器とパルス発生器から出力されたパルス数をカウントするカウンタを有している。制御回路６０はマルチプレクサ３の出力信号２５の１周期当りのパルス数を数えることにより自己発振周期ＴＶ１を測定することが出来る。制御回路６０は測定した自己発振周期ＴＶ１を一時的に記憶する。
【００３７】
続いて制御回路６０は切替回路４の動作モードを第二のモードに切り替える切替信号２３を出力する。第二のモードにおいて論理値が‘１’から‘０’に遷移するクロック信号１７が遅延回路６、８を伝播する伝播遅延時間をＤ１ｄｎとする。論理値が‘０’から‘１’に遷移するクロック信号１７が遅延回路６、８を伝播する伝播遅延時間をＤ１ｕｐとする。論理値が‘１’から‘０’に遷移するクロック信号が帰還経路２４を伝播する伝播遅延時間および論理値が‘０’から‘１’に遷移するクロック信号が帰還経路２４を伝播する伝播遅延時間は、クロック信号１６、１７のいずれが伝播しても変わらない。よって第二のモードにおける伝播遅延時間は第一のモードにおける遅延時間と同様にＤＣｄｎ、ＤＣｕｐとなる。よって第二のモードにおける自己発振周期ＴＶ２は、ＴＶ２＝Ｄ１ｄｎ＋Ｄ１ｕｐ＋ＤＣｄｎ＋ＤＣｕｐとなる。制御回路６０は第一のモードを測定したときと同様に、第二のモードにおいて帰還経路２４を伝播する信号の自己発振周期ＴＶ２を測定する。
【００３８】
クロック信号１６、１７の遅延時間差であるクロックスキューＳＫは、自己発振周期ＴＶ１、ＴＶ２の差分を計算することにより求めることが出来る。よってＳＫ＝（Ｄ０ｄｎ＋Ｄ１ｕｐ＋ＤＣｄｎ＋ＤＣｕｐ）−（Ｄ１ｄｎ＋Ｄ１ｕｐ＋ＤＣｄｎ＋ＤＣｕｐ）＝Ｄ０ｄｎ−Ｄ１ｄｎとなる。すなわちクロックスキューＳＫは、論理値が‘１’から‘０’に遷移しているクロック信号１６、１７が遅延回路５、７および遅延回路６、８を伝播するときの遅延時間の差分となっている。制御回路６０は一時記憶した自己発振周期ＴＶ１から、測定した自己発振周期ＴＶ２を減算処理することにより、遅延時間差であるクロックスキューＳＫを算出することが出来る。
【００３９】
以上の通り、論理値が‘０’から‘１’へ遷移するクロック信号１７と、論理値が‘１’から‘０’へ遷移するクロック信号１６とを混在させて自己発振させた発振周期を求め、クロック信号１７のみを伝播させて自己共振させた発振周期との差分を求めることにより、互いのクロック信号の論理値が‘１’から‘０’へ遷移するタイミング間でのクロックスキューを求めることが出来る。２つのクロック信号を同じ遷移タイミングで比較することにより、正確な２つのクロック信号間の伝播遅延時間の差分を各クロック信号のエッジに応じて求めることが出来る。
【００４０】
セル１１、１２がクロックのダウンエッジをトリガとして動作している場合、本実施例の通り各クロック信号のダウンエッジに応じて伝播遅延時間の差分を求めることにより、必要な伝播遅延時間の調整量を正確に把握することが出来る。第一のモードにおけるマルチプレクサ３での切替タイミングおよび第二のモードで自己発振させる信号線を変更することにより、同様の方法でアップエッジに応じた伝播遅延時間の差分を求めることが出来る。アップエッジに応じた伝播遅延時間の差分を求めることにより、セル１１、１２がクロックのアップエッジをトリガとして動作している場合の必要な伝播遅延時間の調整量を正確に把握することが出来る。
【００４１】
図４は切替回路４を切替回路４ａに置き換えた遅延時間差測定回路の回路図である。切替回路４ａはＯＲ回路２０、ＡＮＤ回路４０、ＮＯＲ回路４１、マルチプレクサ４２、インバータ４３、チョッパ回路４５、ラッチ回路４４を有する。図４の回路図において図２の回路図と同一部材には同一番号を付し、その説明を省略する。
【００４２】
ＡＮＤ回路４０はマルチプレクサ３の入力であるクロック信号１６、１７、および出力信号２５を入力とし、それらの信号の論理積を出力信号４６として出力する。３つの入力信号のうちいずれか一つの信号の論理値が‘０’の場合、出力信号４６の論理値は‘０’となる。全ての入力信号の論理値が‘１’の場合、出力信号４６の論理値は‘１’となる。
【００４３】
ＮＯＲ回路４１はマルチプレクサ３の入力であるクロック信号１６、１７、および出力信号２５を入力とし、それらの信号の論理和を論理反転して出力信号４７として出力する。３つの入力信号のうち何れか１つの論理値が‘１’の場合、出力信号４７の論理値は‘０’となる。全ての入力信号の論理値が‘０’の場合、出力信号４７の論理値は‘１’となる。
【００４４】
マルチプレクサ４２はラッチ回路４４の出力信号５１の論理値に応じてＡＮＤ回路４０の出力信号４６またはＮＯＲ回路４１の出力信号４７の何れかを選択し、信号４８として出力する。マルチプレクサ４２は出力信号５１の論理値が‘１’の場合ＡＮＤ回路４０の出力信号４６を選択する。マルチプレクサ４２は出力信号５１の論理値が‘０’の場合ＮＯＲ回路４１の出力信号４７を選択する。
【００４５】
インバータ４３はマルチプレクサ３の出力信号２５の論理値を反転させた信号５０をラッチ回路４４へ出力する。
【００４６】
チョッパ回路４５はマルチプレクサ４２から出力される信号の論理値が‘０’から‘１’に遷移した場合に一定時間出力信号４９の論理値を‘１’に保持する。
【００４７】
ラッチ回路４４は信号４９の論理値が‘１’の場合に入力された信号５０の論理値と同一論理値の信号５１を出力する。ラッチ回路４４は信号４９の論理値が‘１’から‘０’に遷移すると、信号４９の遷移前に入力された信号５０の論理値と同一論理値の信号５１を出力し続ける。なお、ラッチ回路４４とチョッパ回路４５をＤ−フリップフロップ等の順序回路に置き換えても、同等の動作を実現することが出来る。
【００４８】
図５は図４の第一のモードにおける切替回路４ａのタイミングチャート図である。波形１６、１７はクロック信号１６、１７の電圧波形である。波形２５は出力信号２５の電圧波形である。波形５０は信号５０の電圧波形である。波形１８は選択信号１８の電圧波形である。波形５１は信号５１の電圧波形である。波形４６、４７、４８、４９は信号４６、４７、４８、４９の電圧波形である。以下、切替信号２３の論理値が‘０’である第一のモードについて説明する。
【００４９】
制御回路６０は切替信号２３により切替回路４ａの動作モードを第一のモードに設定する。クロック信号１６の位相は、図３のタイミングチャートと同様にクロック信号１７の位相よりも進んでいる。最初の区間Ａにおいて選択信号１８の論理値は‘０’である。よって区間Ａにおいて出力信号２５はクロック信号１６と同じタイミングで遷移する。インバータ４３は出力信号２５の論理値を反転させて信号５０を出力する。
【００５０】
ＡＮＤ回路４０の出力信号４６の論理値は、入力信号の何れかの論理値が‘０’の場合に‘０’となる。よって区間Ａにおいて出力信号４６の論理値は、クロック信号１６の遷移と同じタイミングで‘１’から‘０’になる。
【００５１】
ＮＯＲ回路４１の出力信号４７の論理値は、入力信号の論理値がすべて‘０’の場合に‘１’となる。よって区間Ａにおいて出力信号４７の論理値は、クロック信号１７の遷移と同じタイミングで‘０’から‘１’になる。
【００５２】
マルチプレクサ４２の切替信号である信号５１の論理値は区間Ａにおいて‘０’なので、マルチプレクサ４２の出力である信号４８は出力信号４７と同じタイミングで遷移する。
【００５３】
チョッパ回路４５の出力である信号４９の論理値は、信号４８の論理値が‘１’になるタイミングで‘１’になる。チョッパ回路４５は信号４９の論理値‘１’を一定時間保持する。
【００５４】
ラッチ回路４４は信号４９の論理値が‘０’に遷移する時間Ｔ３に、時間Ｔ３の時点で入力されている信号５０の論理値を信号５１の論理値として出力し続ける。よって時間Ｔ３において、信号５１の論理値は信号５０の論理値である‘１’に遷移する。選択信号１８の論理値は信号５１と同時に‘１’に遷移する。マルチプレクサ３は出力信号２５をクロック信号１７に切り替える。
【００５５】
時間Ｔ３において信号５１の論理値が‘１’になると、マルチプレクサ４２は出力信号４８として出力信号４６を選択する。区間Ｂにおいてチョッパ回路４５は、信号４８の論理値が‘１’に遷移すると一定時間‘１’を出力し、時間Ｔ４に‘０’へ遷移する。
【００５６】
ラッチ回路４４は時間Ｔ４のタイミングで入力された信号５０の論理値‘０’を信号５１の論理値として出力する。信号５１の論理値が‘０’なることで、切替回路４ａは最初の区間Ａと同様の動作を行う。
【００５７】
よって切替回路４ａは第一のモードにおいて区間Ａ、Ｂの動作を繰り返すことにより、論理値が‘０’から‘１’へ遷移するクロック信号１７と、論理値が‘１’から‘０’へ遷移するクロック信号１６とを混在させることが出来る。制御回路６０は２つのクロック信号の遷移を交互に切り替えて自己発振させた自己発振周期ＴＶ１を測定する。
【００５８】
続いて制御回路６０は切替信号２３により切替回路４ａを第二のモードに設定する。制御回路４は第二のモードにおいてクロック信号１７のみを伝播させて自己共振させた自己発振周期ＴＶ２を測定する。制御回路４は測定した自己発振周期ＴＶ１とＴＶ２の差分を算出することにより、互いのクロック信号の論理値が‘１’から‘０’へ遷移するタイミング間でのクロックスキューを求めることが出来る。
【００５９】
以上の通り制御回路４は、２つのクロック信号を同じ遷移タイミングで比較することにより、正確に２つの信号間の伝播遅延時間の差分を求めることが出来る。また、切替回路４ａでは、切替回路４のように遅延時間をあらかじめ設定する遅延バッファ２２が不要となる。よって切替回路４ａを用いることにより、あらかじめ２つのクロック信号間のクロックスキューを想定することなく、正確に遅延時間差を測定することが出来る。
【００６０】
図６は遅延時間差調整回路６６の回路図である。遅延時間差調整回路６６は遅延時間差測定回路１９の抽出結果に基づいてクロックスキューの調整を行う。遅延時間差調整回路６６は遅延時間差測定回路１９、制御回路６０ａ、遅延調整部６１、６２を有する。図６において図２と同一部材には同一番号を付し、その説明を省略する。遅延時間差測定回路１９の切替回路４の代わりに切替回路４ａを用いても良い。
【００６１】
制御回路６０ａはクロックスキュー抽出結果に基づいて遅延調整部６１、６２の調整量を設定する。制御回路６０ａは切替回路４の動作モードを切り替える切替信号２３を出力する。制御回路６０ａは帰還経路２４に接続されており、各動作モードにおけるマルチプレクサ３からの出力信号２５を読み込む。制御回路６０ａは読み込んだ出力信号２５に基づいて２つのクロック信号１６、１７間のクロックスキューを測定し、測定結果に基づいて遅延調整部６１、６２の遅延時間を調整する調整信号６３、６４を出力する。なお、制御回路６０ａは制御回路６０に対し、測定した遅延時間差に基づいて遅延調整部６１、６２の遅延時間を設定する機能を追加したものである。制御回路６０による発振周期の測定方法と制御回路６０ａによる発振周期の測定方法は同一であっても良い。
【００６２】
遅延調整部６１、６２は制御回路６０ａから出力された調整信号６３、６４に基づいて遅延時間を調整する。遅延調整部６１は遅延回路５の出力信号を受信し一定時間遅延させた信号を遅延回路７へ出力する。遅延調整部６２は遅延回路６の出力信号を受信し一定時間遅延させた信号を遅延回路８へ出力する。遅延調整部６１、６２の詳細は後述する。
【００６３】
以上、クロックスキューの測定結果に応じてクロック信号１６、１７の遅延時間を調整することにより、２つのクロック信号間のクロックスキューを小さくすることが出来る。
【００６４】
図７は制御回路６０ａの処理フローチャート図である。制御回路６０ａは切替信号２３の論理値を‘０’にし、切替回路４の動作モードを第一のモードに設定する。制御回路６０ａは第一のモードにおいてマルチプレクサ３から出力される出力信号２５の自己発振周期ＴＶ１を測定する（Ｓ１０）。
【００６５】
続いて制御回路６０ａは切替信号２３の論理値を‘１’にし、切替回路４の動作モードを第二のモードに設定する。制御回路６０ａは第二のモードにおいてマルチプレクサ３から出力される出力信号２５の発振周期ＴＶ２を測定する（Ｓ１１）。
【００６６】
制御回路６０ａは測定した自己発振周期ＴＶ１、ＴＶ２の差分を計算し、差分値（ＴＶ２−ＴＶ１）があらかじめ設定した閾値よりも大きい場合（Ｓ１２、ＮＯ）、遅延調整部６１、６２の遅延時間を調整する（Ｓ１３）。遅延時間の調整後、再びステップＳ１０からの処理を繰り返す。
【００６７】
制御回路６０ａは差分値（ＴＶ２−ＴＶ１）があらかじめ設定した閾値以下の場合（Ｓ１２、ＹＥＳ）、遅延時間の調整処理を終了する。
【００６８】
以上の処理により、制御回路６０ａは２つのクロック信号１６、１７間のクロックスキューがゼロに近づくように各クロック信号の遅延時間を調整することが出来る。
【００６９】
図８は制御回路６０ａのブロック図である。制御回路６０ａはモード制御部７０、分周器７１、測定部７２、記憶部７３、比較部７４を有する。
【００７０】
モード制御部７０は切替回路４の動作モードを切り替える切替信号２３を出力する。モード制御部７０は現在の動作モードを知らせる信号を比較部７４および測定部７２に出力する。モード制御部７０は選択信号６５を出力する。
【００７１】
分周器７１は帰還経路２４から受信した出力信号２５を分周する。出力信号２５を分周することにより、出力信号２５の発振周期の測定が容易になる。なお、測定部７２の測定精度が高い場合は分周器７１を実装しなくても良い。
【００７２】
測定部７２は分周器７１によって分周された出力信号２５の発振周期を測定する。発振周期の測定には、例えば出力信号２５の周期よりも短い周期を有するパルス発生器と、パルス発生器から出力されたパルス数をカウントするカウンタを用いることができる。カウンタを用いる場合、測定部７２はカウンタのカウント数に応じて発振周期を測定する。測定部７２はモード制御部７０から受信した動作モード情報が第一のモードである場合、測定結果を記憶部７３に送信する。測定部７２はモード制御部７０から受信した動作モード情報が第二のモードである場合、測定結果を比較部７４に送信する。
【００７３】
記憶部７３は測定部７２で測定された第一のモード時における出力信号２５の発振周期を記憶する。記憶部７３は記憶した発振周期を比較部７４に送信する。
【００７４】
比較部７４はモード制御部７０から受信する動作モード情報が第二のモードである場合に、測定部７２から受信した第一のモードにおける出力信号２５の発振周期と、記憶部７３から受信した第二のモードにおける出力信号２５の発振周期とを比較する。比較部７４は比較結果に基づいて調整信号６３、６４の値を決定するための調整テーブルを有す。比較部７４は２つのモードの発振周期の差分値に基づいて調整テーブルを参照し、調整信号６３、６４の値を決定する。比較部７４は決定した調整信号６３、６４を遅延調整部６１、６２へ出力する。
【００７５】
以上、制御回路６０ａは各モードにおける発振周期の差分から各クロック信号１６、１７の最適な遅延量を設定することが出来る。
【００７６】
図９は比較部７４に記憶された調整テーブル１２５である。調整テーブル１２５において、列１２０は第一のモードにおける自己発振周期ＴＶ１と第二のモードにおける発振周期ＴＶ２との差分値である（ＴＶ１−ＴＶ２）を表す。列１２１は各差分値に対し、調整信号６３によって遅延調整部６１に設定する遅延時間である。列１２２は各差分値に対し、調整信号６４によって遅延調整部６２に設定する遅延時間である。
【００７７】
行１２３は差分値（ＴＶ１−ＴＶ２）が２ｐｓの場合に、調整信号６３によって遅延調整部６１に２ｐｓの遅延時間を発生させることを示す。前述の通り、差分値（ＴＶ１−ＴＶ２）＝Ｄ０ｄｎ−Ｄ１ｄｎである。差分値が正である場合、クロック信号１６の位相がクロック信号１７の位相に対して２ｐｓ進んでいる。よってクロック信号１６の位相を２ｐｓ遅延させることにより、２つのクロック信号間のクロックスキューをゼロにすることが出来る。
【００７８】
行１２４は差分値（ＴＶ１−ＴＶ２）が−１ｐｓの場合に、調整信号６４によって遅延調整部６２に１ｐｓの遅延時間を発生させることを示す。前述の通り、差分値（ＴＶ１−ＴＶ２）＝Ｄ０ｄｎ−Ｄ１ｄｎである。差分値が負である場合、クロック信号１７の位相がクロック信号１６の位相に対して１ｐｓ進んでいる。よってクロック信号１７の位相を１ｐｓ遅延させることにより、２つのクロック信号間のクロックスキューをゼロにすることが出来る。
【００７９】
図１０は遅延調整部６１の回路図および遅延設定テーブルである。図１０のＡは遅延調整部６１の回路図である。図１０のＢは遅延調整部６１の遅延設定テーブルである。遅延調整部６１と遅延調整部６２の回路構成および動作は同じなので、遅延調整部６２の説明は省略する。
【００８０】
図１０のＡにおいて、遅延調整部６１は直列に接続された遅延バッファ８０、８１、８２、８３、および各遅延バッファに並列に接続されたスイッチ８４、８５、８６、８７を有する。各スイッチは調整信号６３の論理値に応じてオン・オフを切り替える。調整信号６３は信号６３Ａ、６３Ｂ、６３Ｃ、６３Ｄからなる４ｂｉｔの信号である。スイッチ８４は信号６３Ａの論理値に応じてオン・オフを切り替える。スイッチ８５は信号６３Ｂの論理値に応じてオン・オフを切り替える。スイッチ８６は信号６３Ｃの論理値に応じてオン・オフを切り替える。スイッチ８７は信号６３Ｄの論理値に応じてオン・オフを切り替える。
【００８１】
遅延バッファ８０に並列接続されたスイッチがオフの場合、クロック信号１６は遅延バッファ８０を伝播する。遅延バッファ８０を伝播することにより、クロック信号１６は１ｐｓ遅延する。遅延バッファ８０に並列接続されたスイッチがオンの場合、クロック信号１６はスイッチ８４を伝播する。スイッチ８４を伝播することにより、クロック信号１６は遅延することなく遅延バッファ８１へ伝播する。よってスイッチ８４、８５、８６、８７の開閉制御により、クロック信号１６の遅延時間を０ｐｓから４ｐｓまで調整することが出来る。
【００８２】
図１０のＢについて列３１はスイッチ８４を制御する信号６３Ａの論理状態を示す。列３２はスイッチ８５を制御する信号６３Ｂの論理状態を示す。列３３はスイッチ８６を制御する信号６３Ｃの論理状態を示す。列３４はスイッチ８７を制御する信号６３Ｄの動作状態を示す。列３５は遅延調整部６１により生じるクロック信号１６の伝播遅延時間を示す。列３１、３２、３３、３４において論理‘１’はスイッチがオンの状態を示す。論理‘０’はスイッチがオフの状態を示す。
【００８３】
行３６はスイッチ８４、８５、８６、８７がそれぞれオンしている場合に、遅延調整部６１で発生するクロック信号１６の遅延時間は０ｐｓであることを示す。行３７はスイッチ８４、８５、８６、８７がそれぞれオフしている場合に、遅延調整部６１で発生するクロック信号１６の遅延時間は４ｐｓであることを示す。よって制御回路６０はスイッチ８４、８５、８６、８７のオンオフを制御することにより、遅延調整部６１で発生する遅延時間を０ｐｓから４ｐｓの間で調整することが出来る。
【００８４】
図１１は遅延調整部６１の他の実施例に係る回路図である。図１１において遅延調整部６１はＮＡＮＤ回路９０、９１、９２、９３、１０１、１０３、インバータ９４、９５、９６、９７、９９、１００、１０２、ＮＯＲ回路９８を有する。なお、遅延調整部６２は遅延調整部６１と同様の構成とすることが出来るため、その説明を省略する。
【００８５】
ＮＡＮＤ回路９０は遅延回路５の出力信号と信号６３Ａとを入力とし、２つの入力の論理積を論理反転させて出力する。ＮＡＮＤ回路９１は遅延回路５の出力信号と信号６３Ｂとを入力とし、２つの入力の論理積を論理反転させて出力する。ＮＡＮＤ回路９２は遅延回路５の出力信号と信号６３Ｃとを入力とし、２つの入力の論理積を論理反転させて出力する。ＮＡＮＤ回路９３は遅延回路５の出力信号と信号６３Ｄとを入力とし、２つの入力の論理積を論理反転させて出力する。
【００８６】
インバータ９４はＮＡＮＤ回路９２の出力信号を論理反転させて出力する。インバータ９５はＮＡＮＤ回路９３の出力信号を論理反転させて出力する。インバータ９６はインバータ９５の出力信号を論理反転させて出力する。インバータ９７はインバータ９６の出力信号を論理反転させて出力する。
【００８７】
ＮＯＲ回路９８はインバータ９４の出力信号とインバータ９７の出力信号とを入力とし、２つの信号の論理積を論理反転させて出力する。インバータ９９はＮＯＲ回路９８の出力を論理反転させて出力する。インバータ１００はインバータ９９の出力を論理反転させて出力する。
【００８８】
ＮＡＮＤ回路１０１はＮＡＮＤ回路９１の出力信号とインバータ１００の出力信号を入力とし、２つの信号の論理積を論理反転させて出力する。インバータ１０２はＮＡＮＤ回路１０１の出力信号を論理反転させて出力する。
【００８９】
ＮＡＮＤ回路１０３はＮＡＮＤ回路９０の出力信号とインバータ１０２の出力信号とを入力とし、２つの入力信号の論理積を論理反転させて出力する。ＮＡＮＤ回路１０３の出力信号ＯＵＴは遅延回路７に入力される。
【００９０】
信号６３Ａ、６３Ｂ、６３Ｃ、６３Ｄの論理値が全て‘０’の場合、遅延回路５の出力信号の論理値に関わらず、出力信号ＯＵＴは常に０となる。
【００９１】
信号６３Ａの論理値が‘１’であり、信号６３Ｂ、６３Ｃ、６３Ｄの論理値が‘０’である場合、信号ＩＮの論理値はＮＡＮＤ回路９０、１０３の順に伝播し、出力信号ＯＵＴの論理値となる。よって入力信号ＩＮはＮＡＮＤ回路９０、１０３の入出力遅延に応じて遅延する。
【００９２】
信号６３Ｂの論理値が‘１’であり、信号６３Ａ、６３Ｃ、６３Ｄの論理値が‘０’である場合、信号ＩＮの論理値はＮＡＮＤ回路９１、１０１、インバータ１０２、ＮＡＮＤ回路１０３の順に伝播し、出力信号ＯＵＴの論理値となる。よって入力信号ＩＮはＮＡＮＤ回路９１、１０１、インバータ１０２、ＮＡＮＤ回路１０３の入出力遅延に応じて遅延する。
【００９３】
信号６３Ｃの論理値が‘１’であり、信号６３Ａ、６３Ｂ、６３Ｄの論理値が‘０’である場合、信号ＩＮの論理値はＮＡＮＤ回路９２、インバータ９４、ＮＯＲ回路９８、インバータ９９、１００、ＮＡＮＤ回路１０１、インバータ１０２、ＮＡＮＤ回路１０３の順に伝播し、出力信号ＯＵＴの論理値となる。よって入力信号ＩＮはＮＡＮＤ回路９１、１０１、インバータ１０２、ＮＡＮＤ回路１０３の入出力遅延に応じて遅延する。
【００９４】
信号６３Ｄの論理値が‘１’であり、信号６３Ａ、６３Ｂ、６３Ｃの論理値が‘０’である場合、信号ＩＮの論理値はＮＡＮＤ回路９３、インバータ９５、９６、９７、ＮＯＲ回路９８、インバータ９９、１００、ＮＡＮＤ回路１０１、インバータ１０２、ＮＡＮＤ回路１０３の順に伝播し、出力信号ＯＵＴの論理値となる。よって入力信号ＩＮはＮＡＮＤ回路９３、インバータ９５、９６、９７、ＮＯＲ回路９８、インバータ９９、１００、ＮＡＮＤ回路１０１、インバータ１０２、ＮＡＮＤ回路１０３の入出力遅延に応じて遅延する。
【００９５】
以上の通り、遅延調整部６１は信号６３Ａ、６３Ｂ、６３Ｃ、６３Ｄの論理値に応じて入力信号ＩＮの論理値が出力信号ＯＵＴの論理値となる時間を変化させることが出来る。よって図１１の遅延調整部６１は調整信号６３により遅延時間の調整が可能な回路として動作する。
【００９６】
図１２は遅延調整部６１の他の実施例に係る回路図である。図１２において遅延調整部６１はＮＡＮＤ回路１０５、１０６、１０７、１０８、１１７、インバータ１１５、１１６、キャパシタ１０９、１１０、１１１、１１２、１１３、１１４を有する。なお、遅延調整部６２は遅延調整部６１と同様の構成とすることが出来るため、その説明を省略する。
【００９７】
ＮＡＮＤ回路１０５は遅延回路５の出力信号ＩＮと信号６３Ａとを入力とし、２つの入力の論理積を論理反転させて出力する。ＮＡＮＤ回路１０６は遅延回路５の出力信号と信号６３Ｂとを入力とし、２つの入力の論理積を論理反転させて出力する。ＮＡＮＤ回路１０７は遅延回路５の出力信号と信号６３Ｃとを入力とし、２つの入力の論理積を論理反転させて出力する。ＮＡＮＤ回路１０８は遅延回路５の出力信号と信号６３Ｄとを入力とし、２つの入力の論理積を論理反転させて出力する。
【００９８】
キャパシタ１０９はＮＡＮＤ回路１０６から出力された信号を遅延させる。キャパシタ１０９の容量値が大きいほどキャパシタ１０９による信号の伝播遅延時間は大きくなる。キャパシタ１１０、１１１、１１２、１１３、１１４も同様に信号を伝播遅延させる。キャパシタのそれぞれの容量値を同じにした場合、キャパシタ１０９が接続されているＮＡＮＤ回路１０６の出力信号よりもキャパシタ１１０、１１１が接続されているＮＡＮＤ回路１０７の出力信号の方が遅延時間は大きくなる。
【００９９】
インバータ１１５、１１６はキャパシタ１１２、１１３、１１４で遅延させた信号をさらに遅延させる。キャパシタ１１２、１１３、１１４によりＮＡＮＤ回路１０８の出力信号の傾きが大きくなりすぎると、信号の電圧値が論理判定可能なレベルまで変化しないことがある。インバータ１１５、１１６はキャパシタ１１２、１１３、１１４により大きくなったＮＡＮＤ回路１０８の出力信号の傾きを小さくすることが出来る。
【０１００】
信号６３Ａ、６３Ｂ、６３Ｃ、６３Ｄの論理値が全て‘０’の場合、遅延回路５の出力信号の論理値に関わらず、出力信号ＯＵＴは常に０となる。
【０１０１】
信号６３Ａの論理値が‘１’であり、信号６３Ｂ、６３Ｃ、６３Ｄの論理値が‘０’である場合、信号ＩＮの論理値はＮＡＮＤ回路１０５、１１７の順に伝播し、出力信号ＯＵＴの論理値となる。よって入力信号ＩＮはＮＡＮＤ回路１０５、１１７の入出力遅延に応じて遅延する。
【０１０２】
信号６３Ｂの論理値が‘１’であり、信号６３Ａ、６３Ｃ、６３Ｄの論理値が‘０’である場合、信号ＩＮの論理値はＮＡＮＤ回路１０６、キャパシタ１０９との接続点、ＮＡＮＤ回路１１７の順に伝播し、出力信号ＯＵＴの論理値となる。よって入力信号ＩＮはＮＡＮＤ回路１０５、１１７の入出力遅延およびキャパシタ１０９の容量値に応じて遅延する。
【０１０３】
信号６３Ｃの論理値が‘１’であり、信号６３Ａ、６３Ｂ、６３Ｄの論理値が‘０’である場合、信号ＩＮの論理値はＮＡＮＤ回路１０６、キャパシタ１１０、１１１との接続点、ＮＡＮＤ回路１１７の順に伝播し、出力信号ＯＵＴの論理値となる。よって入力信号ＩＮはＮＡＮＤ回路１０５、１１７の入出力遅延およびキャパシタ１１０、１１１の容量値に応じて遅延する。
【０１０４】
信号６３Ｄの論理値が‘１’であり、信号６３Ａ、６３Ｂ、６３Ｃの論理値が‘０’である場合、信号ＩＮの論理値はＮＡＮＤ回路１０６、キャパシタ１１２、１１３、１１４との接続点、インバータ１１５、１１６、ＮＡＮＤ回路１１７の順に伝播し、出力信号ＯＵＴの論理値となる。よって入力信号ＩＮはＮＡＮＤ回路１０５、１１７の入出力遅延およびキャパシタ１１２、１１３、１１４の容量値に応じて遅延する。
【０１０５】
以上の通り、遅延調整部６１は信号６３Ａ、６３Ｂ、６３Ｃ、６３Ｄの論理値に応じて入力信号ＩＮの論理値が出力信号ＯＵＴの論理値となる時間を変化させることが出来る。よって図１２の遅延調整部６１は調整信号６３により遅延時間の調整が可能な回路として動作する。またキャパシタを用いて遅延時間を調整することにより、図１１に比べて実装素子数を減らすことが出来る。
【符号の説明】
【０１０６】
１  集積回路
４、４ａ  切替回路
２、３、４２  マルチプレクサ
５、６、７、８、９、１０  遅延回路
１１、１２、１３、１４  セル
１５  クロック源
１９  遅延時間差測定回路
２３  切替信号
６０、６０ａ  制御回路
６１、６２  遅延調整部
６６  遅延時間差調整回路
１２５  調整テーブル
【図１】
0005413216.tif 000002
【図２】
0005413216.tif 000003
【図３】
0005413216.tif 000004
【図４】
0005413216.tif 000005
【図５】
0005413216.tif 000006
【図６】
0005413216.tif 000007
【図７】
0005413216.tif 000008
【図８】
0005413216.tif 000009
【図９】
0005413216.tif 000010
【図１０】
0005413216.tif 000011
【図１１】
0005413216.tif 000012
【図１２】
0005413216.tif 000013