(57)【要約】【課題】内部クロック信号の位相を高精度に調整するタイミング調整回路、タイミング調整方法及び補正値算出方法を提供すること。【解決手段】位相調整回路３１は、マスタＤＬＬ回路１１の第１遅延回路２１から位相比較回路２２までの配線によって生じる遅延時間を補正する第１段数補正値と、スレーブＤＬＬ回路１２の入力バッファ回路３３と出力バッファ回路３４によって生じる遅延時間を補正する第２段数補正値を位相調整値Ｄｐに付与する。位相調整回路３１は、位相調整値Ｄｐを第２遅延回路３２に出力する。第２遅延回路３２は、位相調整値Ｄｐに応じた段数のバッファ回路（遅延素子）を直列に接続する。【選択図】図１
2010273132.tif 000002
【特許請求の範囲】
【請求項１】
第１入力信号の周期に対応する遅延情報を出力する判定部と、
前記判定部に含まれる構成に応じた複数の補正値を格納する格納部と、
前記遅延情報に応じて前記複数の補正値から選択される補正値に基づいて、前記遅延情報を補正する補正部と、
前記補正部により補正された遅延情報に応じて、前記第１入力信号に対応した第２入力信号を遅延させる第１ディレイラインと
を有することを特徴とするタイミング調整回路。
【請求項２】
前記判定部は、前記構成として、第２ディレイライン及び前記第２ディレイラインに接続される配線を含み、
前記複数の補正値は、前記第２ディレイラインに対する複数の条件毎に前記第１入力信号と前記第２ディレイライン及び前記配線を伝播した信号とのタイミングに基づいて測定される前記第１入力信号の周期に対応する第１遅延量と、前記複数の条件毎に前記第１入力信号と前記第２ディレイラインを伝播した信号とのタイミングに基づいて測定される前記第１入力信号の周期に対応する第２遅延量との差分に基づいて算出される複数の補正値である
ことを特徴とする請求項１に記載のタイミング調整回路。
【請求項３】
算出された前記複数の補正値は、前記遅延情報としての前記第１遅延量と対応付けられて前記格納部に格納されることを特徴とする請求項２に記載のタイミング調整回路。
【請求項４】
前記複数の条件は、前記第２ディレイラインに対応するプロセスばらつき、前記第２ディレイラインに対応する駆動する電源電圧、又は前記第２ディレイラインに対応する温度条件を含むことを特徴とする請求項２又は３に記載のタイミング調整回路。
【請求項５】
前記第１ディレイラインと前記第２ディレイラインは同一の構成を有することを特徴とする請求項２〜４の何れか１項に記載のタイミング調整回路。
【請求項６】
前記第２ディレイラインの出力信号はメモリへ送られるストローブ信号であり、前記遅延情報はストローブ信号の周期に対応する遅延量を指定する遅延情報であり、前記補正部により補正された遅延情報とデータに対する前記ストローブ信号のタイミングの設定情報とに基づいて前記第１ディレイラインの遅延量が設定されたことを特徴とする請求項２〜５の何れか１項に記載のタイミング調整回路。
【請求項７】
前記第２入力信号はメモリから送られるデータを取込むためのストローブ信号であり、前記遅延情報はストローブ信号の周期に対応する遅延量を指定する遅延情報であり、前記補正部により補正された遅延情報と前記データに対する前記ストローブ信号のタイミングの設定情報とに基づいて前記第１ディレイラインの遅延量が設定されたことを特徴とする請求項２〜５の何れか１項に記載のタイミング調整回路。
【請求項８】
判定部が第１入力信号の周期に対応する遅延情報を出力し、
前記遅延情報に応じて複数の補正値を格納した格納部から、前記遅延情報に応じた補正値を選択し、選択した補正値に基づいて、前記遅延情報を補正し、
前記補正された遅延情報に応じて、前記第１入力信号に対応した第２入力信号を遅延させることを特徴とするタイミング調整方法。
【請求項９】
タイミング調整方法の補正値算出方法であって、
第２ディレイラインに対する複数の条件毎に第１入力信号と前記第２ディレイライン及び前記第２ディレイラインに接続される配線を伝播した信号とのタイミングに基づいて測定される前記第１入力信号の周期に対応する第１遅延量と、前記複数の条件毎に前記第１入力信号と前記第２ディレイラインに伝播した信号とのタイミングに基づいて測定される前記第１入力信号の周期に対応する第２遅延量との差分に基づいて、前記第１入力信号に対応する複数の補正値を算出することを特徴とするタイミング調整方法の補正値算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
タイミング調整回路、タイミング調整方法及び補正値算出方法に関するものである。
【背景技術】
【０００２】
従来、半導体装置において、外部から入力される外部クロック信号に対して仕様に適した時間だけ遅延させた内部クロック信号を生成し、その内部クロック信号を他の回路に入力するためのＤＬＬ（Ｄｅｌａｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路が設けられている。この種のＤＬＬ回路では、マスタ／スレーブＤＬＬ方式のＤＬＬ回路が知られている。
【０００３】
このＤＬＬ回路は、外部から入力される基準クロック信号を０°〜３６０°まで順に遅延させるための遅延制御値を作成して基準クロック信号を３６０°に遅延させた時の遅延制御値（ロック遅延制御値）を検出するマスタＤＬＬ回路と、この検出したロック遅延制御値と外部装置からの位相設定値データに基づいて、外部から入力される外部クロック信号を所望の位相まで遅延させるスレーブＤＬＬ回路を有している。
【０００４】
つまり、ＤＬＬ回路は、マスタＤＬＬ回路で生成したロック遅延制御値を使って、スレーブＤＬＬ回路が外部クロック信号を所望の位相に遅延させて内部クロック信号として出力するものである。
【０００５】
そして、このＤＬＬ回路は、例えば、ＤＤＲ−ＳＤＲＡＭ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のインターフェース回路に設けられている。ここで使用されるＤＬＬ回路は外部クロック信号に対して９０°遅延させた内部クロック信号を得る必要がある。
【０００６】
詳述すると、ＤＤＲ−ＳＤＲＡＭは、外部クロック信号の立ち上がりエッジと立ち下がりエッジの両方に同期してデータ転送が可能であるため、従来のＳＤＲＡＭの２倍のデータスループットを実現することが可能となる。ＤＤＲ−ＳＤＲＡＭの規格では、データストローブ信号を用いて、データ信号の送信・受信のタイミングが最適化されている。
【０００７】
このとき、インターフェース回路からＤＤＲ−ＳＤＲＡＭへのデータ送信（ライト）時と、インターフェース回路でのデータ受信（リード）時とでそれぞれ、データストローブ信号とデータ信号との位相調整を行っている。
【０００８】
ライト時には、外部クロック信号の立ち上がりエッジと立ち下がりエッジにてデータストローブ信号とデータ信号を生成しており、ＤＬＬ回路でデータストローブ信号の位相を９０°遅延させる。そして、データストローブ信号とデータ信号をインターフェース回路を介してＤＤＲ−ＳＤＲＡＭへ送信する。
【０００９】
リード時では、ＤＤＲ−ＳＤＲＡＭからインターフェース回路を介して受信するデータストローブ信号とデータ信号のエッジのタイミングが一致しているため、ＤＬＬ回路でデータストローブ信号の位相を９０°遅延させ、その９０°遅延させたデータストローブ信号に同期してデータを取込んでいる。
【００１０】
マスタＤＬＬ回路は、第１遅延回路、位相比較回路、遅延制御回路を含んでいる。
第１遅延回路は、外部装置から入力される基準クロック信号を遅延制御回路からの遅延制御値に応じて遅延させた遅延基準クロック信号を生成する。位相比較回路は、基準クロック信号、及び、第１遅延回路を介して基準クロック信号を遅延させた遅延基準クロック信号をそれぞれ入力する。位相比較回路は、入力した基準クロック信号に対する遅延基準クロック信号の位相差を検出し、その検出結果を位相差値として遅延制御回路に出力する。
【００１１】
遅延制御回路は、位相比較回路から入力される位相差値に基づいて、第１遅延回路が基準クロック信号を０°から徐々に３６０°まで遅延させる遅延制御値を生成する。そして、遅延制御回路は、基準クロック信号に対して遅延基準クロック信号が３６０°ずれて同期（ロック）すると、そのときの遅延制御値（ロック遅延制御値）を維持するようになっている。
【００１２】
一方、スレーブＤＬＬ回路は、第２遅延回路、位相調整回路を有している。
第２遅延回路は、外部装置から入力される外部クロック信号を位相調整値に応じて遅延させた内部クロック信号を生成する。位相調整回路は、前記したマスタＤＬＬ回路からロック遅延制御値が入力されるとともに、外部装置から位相設定値データが入力される。そして、位相調整回路は、ロック遅延制御値と位相設定値データとに基づいて、第２遅延回路で外部クロック信号を所望の位相まで遅延させて内部クロック信号を生成するための位相調整値を生成して第２遅延回路に出力するようになっている。
【００１３】
また、一般的にスレーブＤＬＬ回路は、１つのマスタＤＬＬ回路に対して半導体装置上に複数設けられている。これにより、スレーブＤＬＬ回路から半導体装置に搭載された各回路までのそれぞれの配線で生じる配線の遅延時間が平均化され、半導体装置に搭載された各回路に入力される内部クロック信号のばらつきを少なくしている。
【００１４】
ところで、近年、クロック信号の高速化が進み、半導体装置に搭載された各回路に入力される内部クロック信号のばらつきの低減が要求されている。
上記のように、半導体装置上に複数のスレーブＤＬＬ回路を配置すると、プロセスばらつきによって、同じ位相調整値を入力しても各スレーブＤＬＬ回路の遅延時間が相違してしまう。
【００１５】
そこで、従来、各スレーブＤＬＬ回路から生成される内部クロック信号をマスタＤＬＬ回路の位相比較回路に帰還し、位相比較回路において帰還した内部クロック信号と第１遅延回路で遅延させた外部クロック信号とを位相比較して各スレーブＤＬＬの第２遅延回路のプロセスばらつきを補正している（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００８−９１３１１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
しかしながら、上記のＤＬＬ回路では、マスタＤＬＬ回路の第１遅延回路から位相比較回路までの配線によって生じる配線遅延、スレーブＤＬＬ回路の第２遅延回路に設けられた入力バッファ回路及び出力バッファ回路によって生じる遅延時間を考慮していない。従って、さらに、ＤＬＬ回路は内部クロック信号を精度良く所望の位相まで遅延させる余地がある。
【課題を解決するための手段】
【００１８】
本発明の一側面によれば、タイミング調整回路は、第１入力信号の周期に対応する遅延情報を出力する判定部と、前記判定部に含まれる構成に応じた複数の補正値を格納する格納部と、前記遅延情報に応じた前記複数の補正値から選択される補正値に基づいて、前記遅延情報を補正する補正部と、前記補正部により補正された遅延情報に応じて、前記第１入力信号に対応した第２入力信号を遅延させる第１ディレイラインとを有する。
【発明の効果】
【００１９】
本発明の一側面によれば、タイミング調整回路、タイミング調整方法及び補正値算出方法は、クロック信号の位相を高精度に調整することができる。
【図面の簡単な説明】
【００２０】
【図１】ＤＬＬ回路のブロック図である。
【図２】データテーブルの説明図である。
【図３】（ａ）〜（ｃ）は、第１段数補正値の算出方法の説明図である。
【発明を実施するための形態】
【００２１】
以下、本実施形態を図１〜図３に従って説明する。
図１は、ＤＬＬ回路１０の概略構成図を示す。
図１に示すように、ＤＬＬ回路１０は、マスタＤＬＬ回路１１及びスレーブＤＬＬ回路１２を有している。
（マスタＤＬＬ回路１１）
マスタＤＬＬ回路１１は、第１遅延回路２１、位相比較回路２２、遅延制御回路２３を含んでいる。第１遅延回路２１は、図示しない複数のバッファ回路（例えば、ＣＭＯＳトランジスタよりなる遅延素子）を有し、図示しない外部装置から基準クロック信号ＣＬＫ１、及び、遅延制御回路２３から遅延段数値Ｄｔが入力される。
【００２２】
遅延段数値Ｄｔは、第１遅延回路２１の入出力端子間にバッファ回路（遅延素子）を直列に接続する段数を示す値である。本実施形態では、遅延段数値Ｄｔは、１０ビットのデータで、「００００００００００」〜「１１１１１１１１１１」、１０進数でいうと「０」〜「１０２３」の段数を指示するデータになっている。
【００２３】
そして、第１遅延回路２１は、入力される遅延段数値Ｄｔに応じて、バッファ回路（遅延素子）を直列に接続する段数を増減する。そして、第１遅延回路２１は、バッファ回路（遅延素子）を直列に接続する段数に応じて、入力端子から入力した基準クロック信号ＣＬＫ１を遅延させて出力端子から比較クロック信号ＣＬＫ１ａとして位相比較回路２２に出力する。
【００２４】
具体的には、第１遅延回路２１は、段数「０」の遅延段数値Ｄｔを入力すると、入出力端子間にバッファ回路（遅延素子）を１つも接続しないで最も遅延時間の短い状態になる。反対に、第１遅延回路２１は、段数「１０２３」の遅延段数値Ｄｔを入力すると、入出力端子間に１０２３個のバッファ回路（遅延素子）を直列に接続して最も遅延時間の長い状態になる。
【００２５】
言い換えると、第１遅延回路２１は、段数「０」の遅延段数値Ｄｔを入力すると、基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａの位相差が最も小さくなる。反対に、第１遅延回路２１は、段数「１０２３」の遅延段数値Ｄｔを入力すると、基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａの位相差が最も大きくなる。
【００２６】
位相比較回路２２は、外部装置から基準クロック信号ＣＬＫ１及び第１遅延回路２１から比較クロック信号ＣＬＫ１ａが入力される。位相比較回路２２は、入力された基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａの位相差を検出し、その検出結果である位相差値Ｄｃを遅延制御回路２３に出力する。すなわち、位相比較回路２２は、基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａの位相差（０°〜３６０°）を示す位相差値Ｄｃを生成して遅延制御回路２３に出力する。
【００２７】
遅延制御回路２３は、位相比較回路２２から位相差値Ｄｃが入力される。遅延制御回路２３は、入力された位相差値Ｄｃが０°から３６０°になるまで遅延段数値Ｄｔを徐々に上げていく。つまり、遅延制御回路２３は、第１遅延回路２１の遅延時間を増大させて基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａを遅延させていく。
【００２８】
言い換えると、遅延制御回路２３は、基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａの位相差が３６０°になり、同期（ロック）するロック遅延段数値ＤｔＬまで遅延段数値Ｄｔを上げていく。
【００２９】
具体的には、遅延制御回路２３は、最初に段数「０」の遅延段数値Ｄｔを出力し、第１遅延回路２１の入出力端子間にバッファ回路（遅延素子）を接続しない。次に、段数「１」の遅延段数値Ｄｔを出力し、第１遅延回路２１の入出力端子間に１つのバッファ回路（遅延素子）を接続する。
【００３０】
続いて、段数「２」の遅延段数値Ｄｔを出力し、第１遅延回路２１の入出力端子間に２個のバッファ回路（遅延素子）を直列に接続する。そして、段数「３」の遅延段数値Ｄｔを出力し、第１遅延回路２１の入出力端子間に３個のバッファ回路（遅延素子）を直列に接続する。・・・・・・、さらに、段数「１０２３」の遅延段数値Ｄｔを出力し、第１遅延回路２１の入出力端子間に１０２３個のバッファ回路（遅延素子）を直列に接続する。
【００３１】
上記のように遅延段数値Ｄｔを上げていき、遅延制御回路２３は、基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａの位相差が３６０°を示す位相差値Ｄｃを入力すると、そのときの遅延段数値ＤｔＬとして出力し続ける。
【００３２】
なお、基準クロック信号ＣＬＫ１に対して比較クロック信号ＣＬＫ１ａを３６０°遅延させて同期（ロック）させるためのロック遅延段数値ＤｔＬは、プロセスばらつき、電源電圧、温度の各条件により、その値が変わる。
（スレーブＤＬＬ回路１２）
スレーブＤＬＬ回路１２は、位相調整回路３１、第１遅延回路２１と同じ構成の複数のバッファ回路（例えば、ＣＭＯＳトランジスタよりなる遅延素子）を有した第２遅延回路３２を含んでいる。
【００３３】
位相調整回路３１は、マスタＤＬＬ回路１１から遅延段数値Ｄｔ、図示しない外部装置から位相調整データＤｅが入力される。位相調整データＤｅは、スレーブＤＬＬ回路１２が生成する内部クロック信号ＣＬＫ３の外部クロック信号ＣＬＫ２に対する位相差を示す位相設定値Ｙのデータである。なお、外部クロック信号ＣＬＫ２及び内部クロック信号ＣＬＫ３は、基準クロック信号ＣＬＫ１と同じ周波数になっている。
【００３４】
本実施形態では、位相設定値Ｙは「１」〜「８」まで設定でき、３ビットの位相調整データＤｅとして位相調整回路３１に入力される。すなわち、位相設定値Ｙは、外部クロック信号ＣＬＫ２の位相に対して、内部クロック信号ＣＬＫ３の位相を４５°（３６０°を８分割した値）間隔でずらして設定できる。
【００３５】
具体的には、外部クロック信号ＣＬＫ２に対して内部クロック信号ＣＬＫ３を４５°ずらしたいときには、位相設定値Ｙは「１」となり、位相調整データＤｅは「０００」となる。外部クロック信号ＣＬＫ２に対して内部クロック信号ＣＬＫ３を９０°ずらしたいときには、位相設定値Ｙは「２」となり、位相調整データＤｅは「００１」となる。・・・・・・、外部クロック信号ＣＬＫ２に対して内部クロック信号ＣＬＫ３を３６０°ずらしたいときには、位相設定値Ｙは「８」となり、位相調整データＤｅは「１１１」となる。
【００３６】
なお、本実施形態では、外部クロック信号ＣＬＫ２に対して内部クロック信号ＣＬＫ３を９０°ずらすため、位相設定値Ｙは「２」となり、位相調整データＤｅは「００１」となっている。
【００３７】
また、位相調整回路３１は、図２に示すように、各ロック遅延段数値ＤｔＬに対する第１段数補正値Ｃ１及び第２段数補正値Ｃ２を記憶したデータテーブルＴ１を有している。
詳述すると、前記した第１遅延回路２１から出力される比較クロック信号ＣＬＫ１ａは、第１遅延回路２１と位相比較回路２２の間の配線の配線容量及び配線抵抗によって遅延する。従って、マスタＤＬＬ回路１１の位相比較回路２２は、基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａの位相差を検出するとき、基準クロック信号ＣＬＫ１と、配線によって生じる遅延時間を含んだ比較クロック信号ＣＬＫ１ａとの位相差を検出し、位相差値Ｄｃとして遅延制御回路２３に出力することになる。
【００３８】
その結果、遅延制御回路２３から第１遅延回路２１に出力する遅延段数値Ｄｔは、前記配線によって比較クロック信号ＣＬＫ１ａが遅延する遅延時間が考慮されていない段数でとなっている。
【００３９】
そのため、第１遅延回路２１から出力されたロック遅延段数値ＤｔＬに対して、前記配線によって比較クロック信号ＣＬＫ１ａが遅延する遅延時間をバッファ回路（遅延素子）の段数に置き換えて考慮し、その段数を加える必要がある。
【００４０】
また、スレーブＤＬＬ回路１２の第２遅延回路３２は、その入力端子に入力バッファ回路３３を接続するとともに、その出力端子に接続した出力バッファ回路３４を接続している。そして、入力バッファ回路３３及び出力バッファ回路３４によってクロック信号が遅延し、その遅延時間をバッファ回路（遅延素子）の段数に置き換えて考慮し、その段数を差し引く必要がある。
【００４１】
つまり、第１段数補正値Ｃ１は、ロック遅延段数値ＤｔＬに対する、配線によって生じる遅延時間をバッファ回路（遅延素子）の段数に置き換えた補正値である。
また、第２段数補正値Ｃ２は、ロック遅延段数値ＤｔＬに対する、スレーブＤＬＬ回路１２の入力バッファ回路３３及び出力バッファ回路３４によって生じる遅延時間をバッファ回路（遅延素子）の段数に置き換えた補正値である。ここで、本実施形態では、第１及び第２段数補正値Ｃ１，Ｃ２は共に４ビットで構成されている。
【００４２】
データテーブルＴ１は、図２に示すように、ロック遅延段数値ＤｔＬを複数の領域Ｚ１〜Ｚ７に区分し、その区分された各領域Ｚ１〜Ｚ７ごとに、第１及び第２段数補正値Ｃ１，Ｃ２がそれぞれ設定されている。
【００４３】
詳述すると、ロック遅延段数値ＤｔＬが段数「０」〜段数「１５」の第１遅延時間領域Ｚ１には、第１段数補正値Ｃ１は段数「８」、第２段数補正値Ｃ２は段数「１４」が記憶されている。ロック遅延段数値ＤｔＬが段数「１６」〜段数「３１」の第２遅延時間領域Ｚ２には、第１段数補正値Ｃ１は段数「７」、第２段数補正値Ｃ２は段数「１２」が記憶されている。ロック遅延段数値ＤｔＬが段数「３２」〜段数「６３」の第３遅延時間領域Ｚ３には、第１段数補正値Ｃ１は段数「６」、第２段数補正値Ｃ２は段数「１０」が記憶されている。・・・・・・、ロック遅延段数値ＤｔＬが段数「５１２」〜段数「１０２３」の第７遅延時間領域Ｚ７には、第１段数補正値Ｃ１は「２」、第２段数補正値Ｃ２は段数「２」が記憶されている。
【００４４】
このように、ロック遅延段数値ＤｔＬが小さいほど、第１及び第２段数補正値Ｃ１，Ｃ２は大きくなり、反対に、ロック遅延段数値ＤｔＬが大きいほど、第１及び第２段数補正値Ｃ１，Ｃ２は小さくなっている。
【００４５】
換言すると、プロセス、電源電圧、温度の各条件によって、少ないバッファ回路（遅延素子）にて基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａの位相差を３６０°にずらしているため、ロック遅延段数値ＤｔＬが小さいほど、バッファ回路（遅延素子）１段当たりの遅延時間が大きくなっている。
【００４６】
同様に、マスタＤＬＬ回路１１の第１遅延回路２１と位相比較回路２２の間の配線によって生じる遅延時間、及び、スレーブＤＬＬ回路１２の入力バッファ回路３３及び出力バッファ回路３４によって生じる遅延時間が長くなる。このため、ロック遅延段数値ＤｔＬが小さいほど、第１及び第２段数補正値Ｃ１，Ｃ２が大きくなっている。
【００４７】
反対に、プロセス、電源電圧、温度の各条件によって、多いバッファ回路（遅延素子）で基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａの位相差を３６０°にずらしているため、ロック遅延段数値ＤｔＬが大きいほど、バッファ回路（遅延素子）１段当たりの遅延時間が小さくなっている。
【００４８】
同様に、マスタＤＬＬ回路１１の第１遅延回路２１と位相比較回路２２の間の配線によって生じる遅延時間、及び、スレーブＤＬＬ回路１２の入力バッファ回路３３及び出力バッファ回路３４によって生じる遅延時間が短くなる。このため、ロック遅延段数値ＤｔＬが大きいほど、第１及び第２段数補正値Ｃ１，Ｃ２が小さくなっている。
【００４９】
そして、位相調整回路３１は、ロック遅延段数値ＤｔＬ、位相調整データＤｅ、第１及び第２段数補正値Ｃ１，Ｃ２に基づいて、位相調整値Ｄｐを生成して第２遅延回路３２に出力する。位相調整値Ｄｐは、第２遅延回路３２の入出力端子間に直列接続するバッファ回路（遅延素子）の段数を示している。
【００５０】
位相調整値Ｄｐは、
Ｄｔ２＝（ＤｔＬ＋Ｃ１）・Ｙ／２ｘ−Ｃ２
で求められる。
【００５１】
なお、「ＤｔＬ」はロック遅延段数値、「Ｙ」は位相設定値、「Ｃ１」は第１段数補正値、「Ｘ」は位相調整データＤｅのビット数、「Ｃ２」は第２段数補正値を示している。
すなわち、位相調整回路３１は、位相設定値Ｙで設定された外部クロック信号ＣＬＫ２の位相をずらす量と基準クロック信号ＣＬＫ１の位相をずらした量（３６０°）の比率をロック遅延段数値ＤｔＬに掛けて、位相設定値Ｙで設定した位相まで外部クロック信号ＣＬＫ２を遅延させる第２遅延回路３２のバッファ回路（遅延素子）の段数を算出する。さらに、位相調整回路３１は、算出した第２遅延回路３２のバッファ回路（遅延素子）の段数に第１及び第２段数補正値Ｃ１，Ｃ２を付与して位相調整値Ｄｐを生成している。
【００５２】
第２遅延回路３２は、位相調整回路３１から位相調整値Ｄｐ、及び、図示しない外部装置から外部クロック信号ＣＬＫ２が入力バッファ回路３３を介して外部クロック信号ＣＬＫ２ａとして入力される。
【００５３】
そして、第２遅延回路３２は、位相調整値Ｄｐに応じて、外部クロック信号ＣＬＫ２ａを遅延させた外部クロック信号ＣＬＫ２ｂを生成する。そして、第２遅延回路３２は、生成した外部クロック信号ＣＬＫ２ｂを出力バッファ回路３４を介して内部クロック信号ＣＬＫ３として出力する。すなわち、第２遅延回路３２は、位相調整値Ｄｐに応じたバッファ回路（遅延素子）の段数を直列に接続することで、外部装置からの外部クロック信号ＣＬＫ２を位相設定値Ｙに基づいた位相（本実施形態では、９０°）まで遅延させた内部クロック信号ＣＬＫ３を出力している。
【００５４】
次に、上記のデータテーブルＴ１の第１〜第７遅延時間領域Ｚ１〜Ｚ７に対する第１段数補正値Ｃ１の算出方法について図３（ａ）〜（ｃ）に従って説明する。
まず、マスタＤＬＬ回路１１の第１遅延回路２１の出力端子Ｔｏにおける比較クロック信号ＣＬＫ１ａ（＝ＣＬＫ１ａｏ）についてシミュレーションし、基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａ（＝ＣＬＫ１ａｏ）の位相差を求める。
【００５５】
また、位相比較回路２２の入力端子Ｔｉにおける比較クロック信号ＣＬＫ１ａ（＝ＣＬＫ１ａｉ）についてシミュレーションし、基準クロック信号ＣＬＫ１に対する比較クロック信号ＣＬＫ１ａ（＝ＣＬＫ１ａｉ）の位相差を求める。そして、上記のシミュレーションをプロセス、電源電圧、温度の各条件（最大値、標準値、最小値）について行う。
【００５６】
本実施形態では、電源電圧は、最大値「１．３Ｖ」、標準値「１．２Ｖ」、最小値「１．１Ｖ」となっている。温度は、最大値「１２５℃」、標準値「２５℃」、最小値「−４０℃」となっている。そして、プロセス条件は、「ｆａｓｔ」、「ｔｙｐ」、「ｓｌｏｗ」の３種類である。ここで、プロセス条件の「ｆａｓｔ」はトランジスタの駆動能力が大きな条件で、プロセス条件の「ｔｙｐ」はトランジスタの駆動能力が標準的な条件で、プロセス条件の「ｓｌｏｗ」はトランジスタの駆動能力が小さな条件で行われる。
【００５７】
上記のようにプロセス、電源電圧、温度の各条件を変更することで、バッファ回路（遅延素子）の１段当たりの遅延時間が変動するため、ロック遅延段数値ＤｔＬが変動する。上記のプロセス、電源電圧、温度の各条件において、第１遅延回路２１のバッファ回路（遅延素子）１段あたりの遅延時間ｔＤ１、比較クロック信号ＣＬＫ１ａｏに対する比較クロック信号ＣＬＫ１ａｉの位相差Ｐ１についてシミュレーションした結果は、図３（ａ）に示すようになる。
【００５８】
図３（ａ）は、横軸がロック遅延段数値ＤｔＬ、縦軸が第１遅延回路２１のバッファ回路（遅延素子）１段当たりの遅延時間ｔＤ１を示している。ロック遅延段数値ＤｔＬが大きいほど、バッファ回路（遅延素子）１段あたりの遅延時間ｔＤ１が小さくなり、反対に、ロック遅延段数値ＤｔＬが小さいほど、バッファ回路（遅延素子）１段当たりの遅延時間ｔＤ１が大きくなっていることがわかる。
【００５９】
また同様に、ロック遅延段数値ＤｔＬが大きいほど、比較クロック信号ＣＬＫ１ａｏに対する比較クロック信号ＣＬＫ１ａｉの位相差Ｐ１が小さくなり、反対に、ロック遅延段数値ＤｔＬが小さいほど、比較クロック信号ＣＬＫ１ａｏに対する比較クロック信号ＣＬＫ１ａｉの位相差Ｐ１が大きくなっていることがわかる。
【００６０】
比較クロック信号ＣＬＫ１ａｏに対する比較クロック信号ＣＬＫ１ａｉの位相差Ｐ１は、第１遅延回路２１と位相比較回路２２の間の配線容量や配線抵抗による波形訛りから生じている。この波形訛りは、第１遅延回路２１のバッファ回路（遅延素子）の駆動能力に依存している。
【００６１】
従って、バッファ回路（遅延素子）の駆動能力、及び、比較クロック信号ＣＬＫ１ａｏに対する比較クロック信号ＣＬＫ１ａｉの位相差Ｐ１は、第１遅延回路２１と位相比較回路２２の間の配線容量や配線抵抗による波形訛りに相関がある。また、第１遅延回路２１のバッファ回路（遅延素子）の１段あたりの遅延時間ｔＤ１は、第１遅延回路２１のバッファ回路（遅延素子）の駆動能力に依存している。この結果、比較クロック信号ＣＬＫ１ａｏに対する比較クロック信号ＣＬＫ１ａｉの位相差Ｐ１、及び、第１遅延回路２１のバッファ回路（遅延素子）１段あたりの遅延時間ｔＤ１に相関があることがわかる。
【００６２】
次に、図３（ｂ）は、ロック遅延段数値ＤｔＬに対する、波形訛りを考慮した場合の基準クロック信号ＣＬＫ１の位相を３６０°ずらすために必要なバッファ回路（遅延素子）の段数Ａ１と、波形訛りを考慮しない場合の基準クロック信号ＣＬＫ１の位相を３６０°ずらすために必要なバッファ回路（遅延素子）の段数Ａ２との関係を示している。波形訛りを考慮した場合の基準クロック信号ＣＬＫ１の位相を３６０°ずらすために必要なバッファ回路（遅延素子）の段数Ａ１は、波形訛りを考慮しない場合の基準クロック信号ＣＬＫ１の位相を３６０°ずらすために必要なバッファ回路（遅延素子）の段数Ａ２より少なく、ロック遅延段数値ＤｔＬが大きいほどその差が少なくなっていることがわかる。
【００６３】
換言すると、波形訛りを考慮する場合、つまり、第１遅延回路２１と位相比較回路２２の間の配線容量や配線抵抗を考慮する場合、第１遅延回路２１と位相比較回路２２の間の配線容量や配線抵抗による遅延時間を遅延させるバッファ回路（遅延素子）の段数だけロック遅延段数値ＤｔＬが小さくなってしまう。このため、第２遅延回路３２は、波形訛りを考慮する場合のロック遅延段数値ＤｔＬに基づいた段数のバッファ回路（遅延素子）を直列に接続しても、外部クロック信号ＣＬＫ２を３６０°遅延させることはできない。
【００６４】
従って、第２遅延回路３２が外部クロック信号ＣＬＫ２を３６０°遅延させるためには、第１遅延回路２１と位相比較回路２２の間の配線容量や配線抵抗による遅延時間を遅延させるバッファ回路（遅延素子）の段数をロック遅延段数値ＤｔＬに加算する必要がある。すなわち、波形訛りを考慮した場合及び波形訛りを考慮しない場合の基準クロック信号ＣＬＫ１の位相を３６０°ずらすために必要なバッファ回路（遅延素子）の図３（ｂ）に示す段数差をロック遅延段数値ＤｔＬに加算する必要がある。
【００６５】
そして、ロック遅延段数値ＤｔＬに対する、波形訛りを考慮した場合及び波形訛りを考慮しない場合の基準クロック信号ＣＬＫ１の位相を３６０°ずらすために必要なバッファ回路（遅延素子）の図３（ｂ）に示す段数差をプロットした図３（ｃ）を示す。言い換えると、図３（ｃ）は、ロック遅延段数値ＤｔＬに対する、ロック遅延段数値ＤｔＬに加算するバッファ回路（遅延素子）の段数である第１段数補正値Ｃ１を示している。この結果、ロック遅延段数値ＤｔＬに対応する第１段数補正値Ｃ１を算出することができる。
【００６６】
次に、第２段数補正値Ｃ２の算出方法について説明する。
上記のように、第２段数補正値Ｃ２は、入力バッファ回路３３及び出力バッファ回路３４によって生じる遅延時間を補正するための値である。第１遅延回路２１のバッファ回路（遅延素子）の遅延時間と、入力バッファ回路３３及び出力バッファ回路３４の遅延時間には相関がある。このため、シミュレーションにて第１遅延回路２１のバッファ回路（遅延素子）の遅延時間と、入力バッファ回路３３及び出力バッファ回路３４の遅延時間の比を算出する。
【００６７】
図３（ａ）に示すように、ロック遅延段数値ＤｔＬから第１遅延回路２１のバッファ回路（遅延素子）１段当たりの遅延時間ｔＤ１がわかるため、ロック遅延段数値ＤｔＬを検出することで、入力バッファ回路３３及び出力バッファ回路３４による遅延時間を算出することができる。
【００６８】
そして、入力バッファ回路３３及び出力バッファ回路３４による遅延時間を遅延させるバッファ回路（遅延素子）の段数を第２段数補正値Ｃ２としてロック遅延段数値ＤｔＬから減算することで補正することができる。従って、ロック遅延段数値ＤｔＬに検出することで第２段数補正値Ｃ２を求めることができる。
【００６９】
以上記述したように、本実施の形態によれば、以下の効果を奏する。
（１）位相調整回路３１が、第１段数補正値Ｃ１を算出し、その第１段数補正値Ｃ１をロック遅延段数値ＤｔＬに付与して位相調整値Ｄｐを生成した。従って、従来、ロック遅延段数値ＤｔＬには、第１遅延回路２１から位相比較回路２２までの配線で生じる遅延時間を遅延させるバッファ回路（遅延素子）の段数が含まれていなかった。このため、ロック遅延段数値ＤｔＬに第１段数補正値Ｃ１を加算して補正することで、スレーブＤＬＬ回路１２は、外部クロック信号ＣＬＫ２を所望の位相まで精度良く遅延して内部クロック信号ＣＬＫ３を生成することができる。
【００７０】
（２）位相調整回路３１が、第２段数補正値Ｃ２を算出し、その第２段数補正値Ｃ２をロック遅延段数値ＤｔＬに付与して位相調整値Ｄｐを生成した。従って、従来、ロック遅延段数値ＤｔＬには、入力バッファ回路３３及び出力バッファ回路３４で生じる遅延時間を遅延させるバッファ回路（遅延素子）の段数が含まれていなかった。このため、位相調整値Ｄｐから第２段数補正値Ｃ２を減算して補正することで、さらに、スレーブＤＬＬ回路１２は、外部クロック信号ＣＬＫ２を所望の位相まで精度良く遅延して内部クロック信号ＣＬＫ３を生成することができる。
【００７１】
尚、上記実施の形態は、以下の態様で実施してもよい。
・上記実施形態において、マスタＤＬＬ回路１１に対して、１つのスレーブＤＬＬ回路１２を有していた。これに限らず、スレーブＤＬＬ回路１２の数は特に制限されない。
【００７２】
・上記実施形態において、第１及び第２遅延回路２１，３２は、複数のバッファ回路（遅延素子）を直列に接続した回路構成となっていた。これに限らず、第１及び第２遅延回路２１，３２は、入力する信号を遅延させる遅延時間を変更することができれば特に制限されない。例えば、第１及び第２遅延回路２１，３２は、制御電圧に応じて遅延時間を制御するような回路構成にしてもよい。
【００７３】
・上記実施形態において、位相調整回路３１は、第１遅延回路から位相比較回路までの配線によって生じる遅延時間を補正する第１段数補正値Ｃ１を算出した。これに限らず、第１段数補正値Ｃ１は、基準クロック信号ＣＬＫ１が第１遅延回路２１に入力されるときの経路と位相比較回路２２に入力されるときの経路との分岐点から第１遅延回路２１までの配線によって生じる遅延時間を補正してもよい。
【００７４】
・上記実施形態において、位相調整回路３１は、入力バッファ回路３３及び出力バッファ回路３４によって生じる遅延時間を補正する第２段数補正値Ｃ２を算出した。第２段数補正値Ｃ２は、入力バッファ回路３３から第２遅延回路３２までの配線、第２遅延回路３２から出力バッファ回路３４までの配線、出力バッファ回路３４から内部クロック信号ＣＬＫ３が供給される回路までの配線によって生じる遅延時間を補正してもよい。
【００７５】
・上記実施形態のＤＬＬ回路１０をメモリ（例えば、ＤＤＲ  ＳＤＲＡＭ）のインターフェース回路に設けてもよい。この場合、外部クロック信号ＣＬＫ２がメモリから送られるデータを取込むためのストローブ信号として、所望の位相まで遅延されてメモリに出力される。
【００７６】
・上記実施形態において、マスタＤＬＬ回路１１は基準クロック信号ＣＬＫ１を入力し、スレーブＤＬＬ回路１２は外部クロック信号ＣＬＫ２を入力していた。これに限らず、マスタＤＬＬ回路１１及びスレーブＤＬＬ回路は同じクロック信号を入力してもよい。
【符号の説明】
【００７７】
１０  タイミング調整回路（ＤＬＬ回路）
１１  判定部（マスタＤＬＬ回路）
２１  第２ディレイライン（第１遅延回路）
３１  補正部（位相調整回路）
３２  第１ディレイライン（第２遅延回路）
ＣＬＫ１  第１入力信号（基準クロック信号）
ＣＬＫ２  第２入力信号（外部クロック信号）
Ｃ１  第１遅延量（第１段数補正値）
ＤｔＬ  遅延情報（ロック遅延段数値）
Ｔ１  格納部（データテーブル）
【図１】
2010273132.tif 000003
【図２】
2010273132.tif 000004
【図３】
2010273132.tif 000005