(57)【要約】【課題】短時間で精度よく位相調整を行うことが可能な位相補償用クロック同期回路を提供する。【解決手段】ＤＬＬは、入力レシーバ１と、遅延チェーン回路２と、遅延複製器４と、位相比較器５と、リセットパルス発生器６と、粗調整期間発生器７と、分周器８と、単位可変カウンタ９と、を備えている。まず単位可変カウンタ９の増減単位を１７または１（平均で１６）として粗調整を行って粗くロックさせた後に、単位可変カウンタ９の増減単位を１として微調整を行って細かくロックさせるため、短い期間で確実にクロックＩＮＴＣＫＸとクロックＥＸＴＣＫＸの位相を合わせることができる。【選択図】図１
2010200090.tif 000002
【特許請求の範囲】
【請求項１】
粗調整期間と微調整期間を設定する調整期間設定手段と、
遅延段数設定値に基づいて遅延段数を第１の単位または第２の単位で増減可能で、第１の信号を遅延させて第２の信号を生成する遅延時間調整手段と、
前記第２の信号を予め定めた所定時間だけ遅延させて第３の信号を生成する遅延手段と、
前記第１の信号と前記第３の信号との位相差を検出する位相比較手段と、
前記粗調整期間が設定された場合は前記遅延段数を前記第１の単位ずつ増減させ、前記微調整期間が設定された場合は前記遅延段数を前記第２の単位ずつ増減させるように、前記位相差に基づいて前記遅延段数設定値を生成する遅延制御手段と、を備えることを特徴とする位相補償用クロック同期回路。
【請求項２】
前記遅延制御手段は、
縦続接続された複数のカウンタユニットを有し、前記遅延段数を表すビット列の下位側を設定する第１のカウント手段と、
縦続接続された複数のカウンタユニットを有し、前記遅延段数を表すビット列の上位側を設定する第２のカウント手段と、
前記粗調整期間における前記第２のカウンタ手段の初期カウント値と前記微調整期間における前記初期カウント値とを設定するカウント単位可変手段と、を有することを特徴とする請求項１に記載の位相補償用クロック同期回路。
【請求項３】
前記カウント単位可変手段は、前記粗調整期間には前記初期カウント値として所定の値を設定し、前記微調整期間には前記第１のカウント手段の桁上がり値を前記初期カウント値として設定することを特徴とする請求項２に記載の位相補償用クロック同期回路。
【請求項４】
前記粗調整期間内に前記第１のカウント手段のカウント動作を停止させて前記第２のカウント手段のみカウント動作を行わせ、前記微調整期間内は前記第１および第２のカウント手段のカウント動作を行わせるクロック制御手段を有することを特徴とする請求項２または３に記載の位相補償用クロック同期回路。
【請求項５】
粗調整期間と微調整期間を設定する調整期間設定手段と、
遅延段数設定値に基づいて第１の信号を遅延させて第２の信号を生成する遅延時間調整手段と、
前記第２の信号を予め定めた所定時間だけ遅延させて第３の信号を生成する遅延手段と、
前記第１の信号と前記第３の信号との位相差を検出する位相比較手段と、
前記位相差に基づいて、前記粗調整期間が設定された場合は第１の周期で前記遅延段数設定値を更新し、前記微調整期間が設定された場合は前記第１の周期よりも遅い第２の周期で前記遅延段数設定値を更新する遅延制御手段と、を備えることを特徴とする位相補償用クロック同期回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロックの位相を合わせる位相補償用クロック同期回路に関する。
【背景技術】
【０００２】
半導体の性能向上に従って、チップ間のバスも高速動作が要求されるようになってきている。特にメモリコントローラとメモリ間のバスの高速化は近年著しいものがある。この高速化には位相補償用クロック同期回路（ＤＬＬ）が必要である。このＤＬＬは、メモリ内部で用いるクロックの位相を、メモリとは別チップのメモリコントローラから供給されるクロックの位相と合わせる位相補償を行う。
【０００３】
メモリから読み出されるデータは、メモリ内部のクロックＩＮＴＣＫに同期して、出力バッファからメモリコントローラへ出力される。メモリコントローラは、データ出力に要する時間Ｔｏｕｔの後にメモリからデータを受信する。よって、メモリは、メモリコントローラ内で用いられるクロックＥＸＴＣＫより時間Ｔｏｕｔだけ位相が早いクロックに同期してデータを出力しなければならない。つまり、メモリ内部のクロックＩＮＴＣＫは、クロックＥＸＴＣＫよりも時間Ｔｏｕｔだけ位相が早いクロックである必要があり、このようなクロックＩＮＴＣＫを生成するためにＤＬＬは用いられる。したがって、ＤＬＬはメモリの内部に搭載される。
【０００４】
また、ＤＬＬはメモリコントローラ内部にも搭載される。メモリコントローラがメモリからデータを受信する際、最もセットアップ・ホールド時間に余裕があるタイミングでデータを受信するのが望ましい。このタイミングは、データに同期したクロックＥＸＴＣＫの位相を１８０度ずらしたタイミングであり、このようなクロックを生成するためにもＤＬＬは用いられる。
【０００５】
このように、ＤＬＬは高速化が必須とされるメモリバスには必要不可欠なものである。
【０００６】
非特許文献１には、複数の単位遅延回路を有する単位遅延段数変更型のＤＬＬが開示されている。このＤＬＬは、遅延段数を調整して、外部クロックＥＸＴＣＫよりも遅延時間Ｔｏｕｔだけ位相が早い内部クロックＩＮＴＣＫを生成する。
【０００７】
しかしながら、遅延段数を１段ずつ調整して最適な遅延段数を探索する手法では、最終的なクロックＩＮＴＣＫを生成する（ロックアップする）までに、単位遅延回路の段数だけ調整を繰り返さなければならず、遅延段数の設定に時間がかかるという問題がある。しかも、ＤＬＬの調整精度を上げるには、単位遅延回路での遅延時間を短くし、単位遅延回路の数を増やさなければならず、その結果さらにロックアップするまでの時間が長くなるという問題がある。
【非特許文献１】”A 1.5V, 1.6Gb/s/pin, 1Gb DDR3 SDRAM with an Address Queuing Scheme and Bang-Bang Jitter Reduced DLL Scheme” Yang Ki Kim et al, 2007 VLSI Circuit Symposium Digest of Technical Papers pp.182-183
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、短時間で精度よく位相調整を行うことが可能な位相補償用クロック同期回路を提供するものである。
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、粗調整期間と微調整期間を設定する調整期間設定手段と、遅延段数設定値に基づいて遅延段数を第１の単位または第２の単位で増減可能で、第１の信号を遅延させて第２の信号を生成する遅延時間調整手段と、前記第２の信号を予め定めた所定時間だけ遅延させて第３の信号を生成する遅延手段と、前記第１の信号と前記第３の信号との位相差を検出する位相比較手段と、前記位相差に基づいて、前記粗調整期間が設定された場合は前記遅延段数を前記第１の単位ずつ増減させ、前記微調整期間が設定された場合は前記遅延段数を前記第２の単位ずつ増減させるように、前記遅延段数設定値を生成する遅延制御手段と、を備えることを特徴とする位相補償用クロック同期回路が提供される。
【発明の効果】
【００１０】
本発明によれば、短期間で精度よく位相調整を行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明に係る位相補償用クロック同期回路（ＤＬＬ）の実施形態について、図面を参照しながら具体的に説明する。
【００１２】
（第１の実施形態）
図１は本発明の第１の実施形態に係るＤＬＬ１００の概略構成を示す図である。図１のＤＬＬ１００は、入力レシーバ１と、遅延チェーン回路（遅延時間調整手段）２と、遅延複製器（遅延手段）４と、位相比較器（位相比較手段）５と、リセットパルス発生器６と、粗調整期間発生器（調整期間設定手段）７と、分周器８と、単位可変カウンタ（遅延制御手段）９と、を備えている。
【００１３】
図１のＤＬＬ１００は、遅延チェーン回路２の遅延時間Ｔｘを調整することにより、クロックＥＸＴＣＫＸとクロックＩＮＴＣＫＸの位相を合わせ、外部クロックＥＸＴＣＫよりも出力バッファ１０の遅延時間Ｔｏｕｔだけ位相の早い内部クロックＩＮＴＣＫを生成する。この動作原理は後に詳述する。
【００１４】
例えば、図１のＤＬＬ１００がメモリ（不図示）の内部に搭載される場合には、メモリは内部クロックＩＮＴＣＫに同期して動作することになる。また、メモリコントローラ（不図示）は、メモリから出力バッファ１０を介して、内部クロックＩＮＴＣＫに対して遅延時間Ｔｏｕｔだけ遅れて、データを受け取ることになる。
【００１５】
図１の入力レシーバ１は、外部クロックＥＸＴＣＫを受信し、バッファリングしてクロックＥＸＴＣＫＸを出力する。以下では、入力レシーバ１の遅延時間をＴｉｎとする。
【００１６】
遅延チェーン回路２は、クロックＥＸＴＣＫＸ（第１の信号）を遅延時間Ｔｘだけ遅延させて、クロックＩＮＴＣＫ（第２の信号）を生成する。遅延チェーン回路２は、縦続接続された複数の単位遅延回路３を備えており、遅延時間Ｔｘは、使用する単位遅延回路３の数（以下、遅延段数Ｑ）に応じて調整可能である。使用する単位遅延回路３の数は、単位可変カウンタ９のカウント値（遅延段数設定値）により調整される。本実施形態では、遅延チェーン回路２が最大で２５６個の単位遅延回路３を使用できる例を示し、遅延段数Ｑは８ビットの信号で表されるものとする。なお、単位遅延回路３の数はこれに限られるものではない。
【００１７】
図２は、ｊ段目（ｊ＝０〜２５５）の単位遅延回路３の内部構成の一例を示す図である。単位遅延回路３は、ＮＡＮＤ回路１１１〜１１３を有する。ｊ段目の単位遅延回路３の出力ＤＯＵＴは、ｊ＋１段目の単位遅延回路３の入力ＤＩＮへ接続される。この単位遅延回路３を２５６段縦属接続して、遅延チェーン回路２が構成される。また、信号Ａ＜ｊ＞は、遅延段数Ｑをデコードした信号である。
【００１８】
以下、遅延チェーン回路２が１２８段分遅延させる場合、すなわち、Ｑ＜０：７＞＝”０００００００１”の場合を例にとって説明する。この例では、信号Ａ＜１２８＞のみがハイで、他の信号Ａ＜ｋ＞（ｋ≠１２８）はロウとなる。この場合、縦属接続された単位遅延回路３のうち、１２８段目の単位遅延回路のみクロックＥＸＴＣＫＸが有効となる。一方、１２８段目以外のｋ段目の単位遅延回路３では、ｋ−１段目の単位遅延回路３からの出力であるＤＩＮが有効となる。その結果、遅延チェーン回路２はクロックＥＸＴＣＫＸを１２８段分の遅延時間だけ遅延させてクロックＩＮＴＣＫを生成できる。
【００１９】
図２の単位遅延回路３の内部構成はあくまで一例であり、種々の回路で実現できるものである。
【００２０】
遅延複製器４は、入力レシーバ１の遅延時間Ｔｉｎと後述する内部バッファ１０の遅延時間Ｔｏｕｔをモニタする回路であり、内部クロックＩＮＴＣＫを遅延時間Ｔｉｎ＋Ｔｏｕｔだけ遅延させたクロックＩＮＴＣＫＸ（第３の信号）を生成する。
【００２１】
位相比較器５は、クロックＥＸＴＣＫＸの位相とクロックＩＮＴＣＫＸの位相とを比較し、位相差に応じて１ビットの信号ＵＰＤＯＷＮを生成し、単位可変カウンタ９へ供給する。信号ＵＰＤＯＷＮは、ロウであればクロックＩＮＴＣＫＸがクロックＥＸＴＣＫＸよりも位相が進んでいることを表し、ハイであればクロックＩＮＴＣＫＸがクロックＥＸＴＣＫＸよりも位相が遅れていることを表す。
【００２２】
リセットパルス発生器６は、外部から供給されるリセット信号ＤＬＬＲＥＳＥＴ に同期して、リセットパルス信号ＲＥＳＥＴを生成し、単位可変カウンタ９へ供給する。
【００２３】
粗調整期間発生器７は、リセット信号ＤＬＬＲＥＳＥＴに同期して、所定のパルス幅の粗調整期間信号ＤＬＬＦＳＤＵＲを生成し、単位可変カウンタ９へ供給する。信号ＤＬＬＦＳＤＵＲは、ハイであれば粗調整期間を表し、ロウであれば微調整期間を表す。
【００２４】
分周器８は、クロックＥＸＴＣＫＸを分周した分周クロックＣＫＤＥＶを生成し、単位可変カウンタ９へ供給する。本実施形態では、周波数がクロックＥＸＴＣＫＸの１／４の分周クロックＣＫＤＥＶを生成する例を示すが、必ずしも周波数を１／４に分周する必要はなく、後述するように、ＤＬＬ１００のフィードバックループが追従できる周波数に分周すればよい。
【００２５】
単位可変カウンタ９は、リセットパルス信号ＲＥＳＥＴがハイになると、遅延段数Ｑを単位遅延回路３の数の１／２である１２８（以下、初期遅延段数）にリセットする。すなわち、初期状態では、遅延段数Ｑを中間値に設定する。単位可変カウンタ９は、リセットパルス信号ＲＥＳＥＴがロウになると、分周クロックＣＫＤＥＶに同期して、遅延段数Ｑを増減させる。
【００２６】
単位可変カウンタ９は、信号ＵＰＤＯＷＮがハイであれば、遅延段数Ｑを示すカウント値を増加させ、ロウであれば、減少させる。遅延段数Ｑを増減させる単位（以下、増減単位）は、粗調整期間（信号ＤＬＬＦＳＤＵＲがハイ）と、微調整期間（信号ＤＬＬＦＳＤＵＲがロウ）とに応じて、下記のように異なる点が、本実施形態のＤＬＬ１００の特徴である。すなわち、本実施形態では、粗調整期間と微調整期間で、単位可変カウンタ９のカウント値の更新単位を切替えている。
【００２７】
図３は、単位可変カウンタ９の内部構成の一例を示す図である。単位可変カウンタ９は、縦続接続された８つのカウンタユニット２１と、カウント単位可変回路（カウント単位可変手段）２２を備えている。８つのカウンタユニット２１は、単位可変カウンタ９のカウント値の各ビットに対応しており、図３の左側が下位ビット側、右側が上位ビット側である。下位側４ビットを設定する４つのカウンタユニット２１が第１のカウント手段、上位側４ビットを設定する４つのカウンタユニット２１が第２のカウント手段に、それぞれ対応する。
【００２８】
図４は、個々のカウンタユニット２１の内部構成の一例を示す図である。図示のように、カウンタユニット２１は、ＪＫフリップフロップ３１と、マルチプレキサ３２と、論理ゲート回路３３，３４とを有する。マルチプレキサ３２は、信号ＵＰＤＯＷＮの論理に応じて、２入力のうち一方を選択する。図３に示すように、初段のカウンタユニット２１内のマルチプレキサ３２には、いずれもハイレベルの２入力信号が入力されるが、二段目以降のカウンタユニット２１内のマルチプレキサ３２には、前段のカウンタユニット２１の２つのキャリー出力ＣＵ，ＣＤが入力される。各段のカウンタユニット２１内のマルチプレキサ３２は、信号ＵＰＤＯＷＮの論理に応じて、２つのキャリー出力ＣＵ、ＣＤのいずれか一方を選択する。
【００２９】
より具体的には、ｋ（ｋ≧２）ビット目のカウンタユニット２１内のマルチプレキサ３２は、信号ＵＰＤＯＷＮがハイであれば、下位ビット側の隣接するカウンタユニット２１のキャリー出力ＣＵ＜ｋ−１＞を、ロウであればキャリー出力ＣＤ＜ｋ−１＞を選択する。そして、ＣＵ＜ｋ−１＞またはＣＤ＜ｋ−１＞を受けて、ＪＫフリップフロップ３１は、ＣＵ＜ｋ−１＞またはＣＤ＜ｋ−１＞の論理に応じて、分周クロックＣＫＤＥＶに同期して、Ｑ＜ｋ＞とその反転信号であるＢＱ＜ｋ＞を生成する。論理ゲート回路３３は、ＢＱ＜ｋ＞とＣＵ＜ｋ−１＞の論理に応じて、上位ビットへのキャリー出力ＣＵ＜ｋ＞を生成する。論理ゲート回路３４は、Ｑ＜ｋ＞とＣＤ＜ｋ−１＞の論理に応じて、上位ビットへのキャリー出力ＣＤ＜ｋ＞を生成する。
【００３０】
カウント単位可変回路２２は、４ビット目と５ビット目のカウンタユニット２１の間に挿入されている。図５は、カウント単位可変回路２２の内部構成の一例を示す図である。図示のように、カウント単位可変回路２２はマルチプレキサ４１を有する。このマルチプレキサ４１は、信号ＤＬＬＦＳＤＵＲがハイであればハイレベルを、ロウであれば下位ビット側の隣接する（４ビット目の）カウントユニット２１のキャリー出力ＣＵ＜３＞，ＣＤ＜３＞を選択して、第２のカウンタ手段の初期カウント値として設定する。
【００３１】
信号ＤＬＬＦＳＤＵＲがロウであるとき、図３の単位可変カウンタ９はカウント値が１ずつアップダウンする通常のアップダウンカウンタと全く同様の動作をするので、単位可変カウンタ９は、分周クロックＣＫＤＥＶに同期して、遅延段数Ｑを１だけ増減させる。つまり、微調整期間の増減単位は１である。
【００３２】
一方、信号ＤＬＬＦＳＤＵＲがハイであるとき、単位可変カウンタ９は、カウント単位可変回路２２により、下位ビット側から５ビット目のカウンタユニット２１の２入力信号ＣＵＸ＜３＞とＣＤＸ＜３＞を強制的にハイにする。これによって、下位ビット側から５ビット目以降のカウンタユニット２１は、最下位から４ビット目までのカウンタユニット２１とは別個にカウント動作を行うことになる。より具体的には、分周クロックＣＫＤＥＶに同期して、最下位から４ビット目までのカウンタユニット２１が１ずつアップダウンし、それに並行して、下位ビット側から５ビット目以降のカウンタユニット２１も、１つずつアップダウンする。この結果、カウント値は、１７ずつ増減することになる。よって、単位可変カウンタ９は、遅延段数Ｑを１７だけ増減させる。
【００３３】
図６は信号ＤＬＬＦＳＤＵＲがハイのときの単位可変カウンタ９の出力値（カウント値）の一例を示す図である。図６では、簡略化のために、８個のカウンタユニット２１が縦続接続され、初期設定値である１２８からカウントアップ・ダウン動作を行う例を示している。図示のように、下位側４ビット分のカウンタユニット２１（第１のカウント手段）と上位側４ビット分のカウンタユニット２１（第２のカウント手段）は、それぞれ独立してカウントアップ・ダウン動作を行う。この結果、下位４ビットがオール０（１２８）から１回だけカウントダウンを行った場合と、下位４ビットがオール１（１２７）から１回だけカウントアップを行った場合のカウント値の差分は１であるが、それ以外のカウントアップ動作でのカウント値の差分は１７である。この結果、増減単位（カウント値の差分）の平均値は１６になる。
【００３４】
このように、８つのカウンタユニット２１を縦続接続した通常用いられる８ビットのアップダウンカウンタに、図５に詳細構成を示すカウント単位可変回路２２を１つ挿入するだけの簡易な構成で、カウント値の粗調整期間での増減単位（第１の単位）と、微調整期間での増減単位（第２の単位）が異なる単位可変カウンタ９を実現できる。
【００３５】
図３では、粗調整期間内における遅延段数Ｑの平均の増減単位を１６としたが、図３のカウント単位可変回路２２の左側に接続されるカウンタユニット２１の数を変更することにより、増減単位を変更することができる。例えば、カウント単位可変回路２２の左側にカウンタユニット２１が一つだけ存在する場合は、粗調整期間内の遅延段数Ｑの増減単位は２になる。これが増減単位の最小値であり、第１の実施形態によれば、粗調整期間内における遅延段数Ｑの平均の増減単位を２以上の２のべき乗に設定可能である。
【００３６】
なお、外部クロックＥＸＴＣＫでなく、周波数がその１／４の分周クロックＣＫＤＥＶに同期して、単位可変カウンタ９が遅延段数Ｑを増減させる理由は、遅延段数Ｑを変更してクロックＩＮＴＫＸの位相を確定させた後に帰還させて位相比較器５で位相差を検出するまでのＤＬＬ１００のフィードバックループが、外部クロックＥＸＴＣＫの３クロック分以上の時間を要するためである。
【００３７】
図１のＤＬＬ１００は、例えばメモリの内部に設けられる。メモリは、外部から供給される外部クロックＥＸＴＣＫをＤＬＬ１００によって位相調整を行い、内部クロックＩＮＴＣＫを生成する。この内部クロックＩＮＴＣＫに同期して、メモリ内に記憶されたデータがＤＬＬ１００の外部にある出力バッファ１０を介してデータＤＯＵＴとして出力される。出力バッファ１０の遅延時間をＴｏｕｔとする。
【００３８】
次に、図１のＤＬＬ１００の処理動作を説明する。
【００３９】
図１のＤＬＬ１００は、外部クロックＥＸＴＣＫを入力レシーバ１でバッファリングしたクロックＥＸＴＣＫＸと、遅延チェーン回路２から出力された内部クロックＩＮＴＣＫを遅延複製器４で遅延させたクロックＩＮＴＣＫＸとの位相を合わせるよう、遅延チェーン回路２の遅延時間Ｔｘを調整する。その結果、外部クロックＥＸＴＣＫよりも遅延時間Ｔｏｕｔだけ位相が早い内部クロックＩＮＴＣＫが生成できることを説明する。
【００４０】
図７は、外部クロックＥＸＴＣＫを基準とするクロックＥＸＴＣＫＸ，内部ＩＮＴＣＫ，クロックＩＮＴＣＫＸの位相関係を示す図である。クロックＥＸＴＣＫＸは、入力レシーバ１から出力されるので、遅延時間はＴｉｎである。内部クロックＩＮＴＣＫは、入力レシーバ１および遅延チェーン回路２を経由するので、遅延時間はＴｉｎ＋Ｔｘである。クロックＩＮＴＣＫＸは、入力レシーバ１、遅延チェーン回路２、遅延複製器４を経由するので、遅延時間はＴｉｎ＋Ｔｘ＋（Ｔｉｎ＋Ｔｏｕｔ）である。
【００４１】
クロックＥＸＴＣＫＸ（遅延時間Ｔｉｎ）とクロックＩＮＴＣＫＸ（遅延時間Ｔｉｎ＋Ｔｘ＋（Ｔｉｎ＋Ｔｏｕｔ））の位相差は、両クロックの遅延時間の差であるＴｘ＋Ｔｉｎ＋Ｔｏｕｔである。ＤＬＬ１００は、この位相差が外部クロックＥＸＴＣＫや内部クロックＩＮＴＣＫの周期Ｔの整数倍となるように単位可変カウンタ９のカウント値を調整する。この場合、ｎを正の整数として、以下の（１）式の関係が成立する。
n*T = Tx + Tin + Tout  ・・・（１）
これを変形すると、以下の（２）式が得られる。
Tin + Tx = n*T - Tout  ・・・（２）
（２）式の左辺Ｔｉｎ＋Ｔｘは内部クロックＩＮＴＣＫの遅延時間と等しく、この値は、（２）式の右辺が示すように、遅延時間Ｔｏｕｔだけ位相を早めることと等価である。このようにして、ＤＬＬ１００は、外部クロックＥＸＴＣＫよりも遅延時間Ｔｏｕｔだけ位相を早めた内部クロックＩＮＴＣＫを生成する。
【００４２】
図８は、図１のＤＬＬ１００の処理動作の一例を示すタイミング図である。図８を参照しながら、ＤＬＬ１００が具体的にクロックＥＸＴＣＫＸとクロックＩＮＴＣＫＸの位相を合わせる処理動作を説明する。
【００４３】
まず、外部から与えられるリセット信号ＤＬＬＲＥＳＥＴが立ち上がると、リセットパルス発生器６はリセットパルス信号ＲＥＳＥＴをハイに設定する（時刻ｔ０）。リセットパルス信号ＲＥＳＥＴがハイになると、単位可変カウンタ９は遅延段数Ｑを１２８に初期設定する。
【００４４】
その後、リセットパルス発生器６がリセットパルス信号ＲＥＳＥＴをロウに設定すると、粗調整期間発生器７は、粗調整を行うべく信号ＤＬＬＦＳＤＵＲをハイに設定する（時刻ｔ１）。位相比較器５は、クロックＥＸＴＣＫＸとクロックＩＮＴＣＫＸを比較し、比較結果を信号ＵＰＤＯＷＮとして単位可変カウンタ９に入力する。時刻ｔ１〜ｔ２では、信号ＤＬＬＦＳＤＵＲはハイなので遅延段数Ｑの粗調整が行われる。具体的には、単位可変カウンタ９は、分周クロックＣＫＤＥＶに同期して、信号ＵＰＤＯＷＮがハイであれば、遅延段数Ｑを１７または１（平均で１６）だけ増加させ、信号ＵＰＤＯＷＮがロウであれば遅延段数Ｑを１７または１（平均で１６）だけ減少させる。粗調整期間の遅延段数Ｑの増減単位は上述した通りである。
【００４５】
図９は、クロックＥＸＴＣＫＸとクロックＩＮＴＣＫＸがロック（安定化）している状態を示す図である。図８は、遅延段数Ｑが初期遅延段数１２８では、クロックＩＮＴＣＫＸの位相がクロックＥＸＴＣＫＸより進んでいる例を示しており、粗調整期間内に単位可変カウンタ９が遅延段数Ｑを１７段ずつ増加させている。遅延段数Ｑが２１３になると、図９に示すように、クロックＩＮＴＣＫＸの位相は、クロックＥＸＴＣＫＸの位相より遅れている。その結果、遅延段数Ｑは２１３から１９６に１７段減少し、これにより、クロックＥＸＴＣＫＸとクロックＩＮＴＣＫＸの位相関係が一気に逆転する。このように、粗調整期間内は、遅延段数Ｑを粗く変化させるため、クロックＥＸＴＣＫＸとクロックＩＮＴＣＫＸの位相を正確に一致させることは困難であるが、両クロックの位相を短時間で近づけることができる。
【００４６】
粗調整期間は、単位可変カウンタ９の８ＣＫＤＥＶクロック分で終了する。８ＣＫＤＥＶクロックで粗調整期間が終了する理由は、初期遅延段数（１２８）を単位可変カウンタ９の増減単位の最大値（１７）で除して、小数以下を切り上げた数が８ＣＫＤＥＶクロックであるためである。この期間は、粗くロックするために必要な最大限の期間であるため、この期間を粗調整期間として定めている。
【００４７】
上記の粗調整期間の経過後、粗調整信号発生器７は、微調整を行うべく信号ＤＬＬＦＳＤＵＲをロウに設定する（時刻ｔ２）。これにより、単位可変カウンタ９は、増減単位を１として遅延チェーン回路２の遅延段数Ｑの微調整を行う。図８と図９では、遅延段数Ｑが２１３のとき、クロックＩＮＴＣＫＸの位相がクロックＥＸＴＣＫＸより遅れているので、位相比較器５は信号ＵＰＤＯＷＮをロウに設定する。単位可変カウンタ９は、遅延段数Ｑを１ずつ減少させ、最終的には遅延段数Ｑが２１１か２１２でロックされる。粗調整期間では、増減単位を最大１７としていたので、微調整により細かくロックするまでに要する期間は１７−１＝１６ＣＫＤＥＶクロックである。
【００４８】
以上により、内部クロックＩＮＴＣＫがロックするまでに要する合計期間は、リセット信号ＤＬＬＲＥＳＥＴの立ち上がりから８＋１６＝２４ＣＫＤＥＶクロックであり、必ずこの期間内にロックさせることができる。仮に、粗調整期間発生器７を設けずに、単位可変カウンタ９が、常に増減単位を１として遅延チェーン回路２の遅延時間Ｔｘを調整したとすると、ロックするまでの平均クロック数は１２８ＣＫＤＥＶクロックとなる。本実施形態では、粗調整期間発生器７を設けて、粗調整期間と微調整期間で遅延段数Ｑの増減単位を変えて単位可変カウンタ９が遅延時間Ｔｘを調整するため、ＤＬＬ１００がロックするまでの期間を大幅に短縮することができる。
【００４９】
このように、第１の実施形態では、遅延チェーン回路２の遅延段数Ｑを単位可変カウンタ９にて設定することにし、単位可変カウンタ９は、遅延段数Ｑの増減単位を１７または１（平均で１６）として粗調整を行って粗くロックさせた後に、遅延段数Ｑの増減単位を１として微調整を行って細かくロックさせるため、短い期間で確実にクロックＩＮＴＣＫＸとクロックＥＸＴＣＫＸの位相を合わせることができる。
【００５０】
（第２の実施形態）
第２の実施形態は、第１の実施形態の変形例であり、単位可変カウンタ９の構成を変えて、粗調整期間における増減単位を常に１６としたものである。
【００５１】
図１０は、単位可変カウンタ９ａの内部構成の一例を示す図である。図３と共通する構成部分には同一の符号を付しており、以下では相違点を中心に説明する。
【００５２】
図１０の単位可変カウンタ９ａは、図３の単位可変カウンタ９の構成に加えて、論理ゲート回路（クロック制御手段）９１をさらに備えている。論理ゲート回路９１は、分周クロックＣＫＤＥＶと信号ＤＬＬＦＳＤＵＲの反転信号との論理積を演算することにより、分周クロックＣＫＤＥＶ２を生成する。下位ビット側から５ビット目以降のカウンタユニット２１には、図３と同様に分周クロックＣＫＤＥＶが入力されるが、最下位から４ビット目までのカウンタユニット２１には、分周クロックＣＫＤＥＶ２が入力される。
【００５３】
粗調整期間では、信号ＤＬＬＦＳＤＵＲがハイであるので、論理ゲート回路９１から出力される分周クロックＣＫＤＥＶ２はロウになる。その結果、粗調整期間では最下位から４ビット目までのカウンタユニット２１はカウントアップ・ダウン動作を行わない。よって、上位ビット側半分のカウンタユニット２１だけ、すなわち最下位ビットから５ビット目以降のカウンタユニット２１だけが、分周クロックＣＫＤＥＶ２に同期してカウントアップ・ダウン動作を行うことになり、粗調整期間における遅延段数Ｑの増減単位は常に１６になる。
【００５４】
微調整期間では、信号ＤＬＬＦＳＤＵＲがロウであるので、論理ゲート回路９１は、分周クロックＣＫＤＥＶと同位相の分周クロックＣＫＤＥＶ２を生成する。よって、微調整期間では、第１の実施形態と同じく、遅延段数Ｑの増減単位は常に１である。
【００５５】
本実施形態は、単位可変カウンタ９の内部構成以外は第１の実施形態と同様である。本実施形態では、粗くロックするまでに要する期間は、初期遅延段数（１２８）を単位可変カウンタ９の増減単位の１６で除して、小数以下を切り上げた数、つまり８ＣＫＤＥＶクロックである。また、細かくロックするまでに要する期間は、１６−１＝１５ＣＫＤＥＶクロックである。よって、内部クロックＩＮＴＣＫがロックするまでに要する合計期間は、リセット信号ＤＬＬＲＥＳＥＴの立ち上がりから８＋１５＝２３ＣＫＤＥＶクロックであり、必ずこの期間内にロックさせることができる。
【００５６】
このように、第２の実施形態では、ＤＬＬ１００は、粗調整期間には最下位ビットから４ビット目までのカウンタユニット２１にクロックを供給しないようにし、上位ビット側半分のカウンタユニット２１のみにクロックを供給して、カウントアップまたはダウン動作を行うため、粗調整期間では遅延段数Ｑの増減単位を常に１６として粗調整を行うことができる。したがって、第１の実施形態よりも、粗調整期間内に動作するカウンタユニット２１の数を削減でき、消費電力の削減が図れる。
【００５７】
図１０においても、カウント単位可変回路２２の左側のカウンタユニット２１の数を変えることで、粗調整期間内の遅延段数Ｑの増減単位を２以上の２のべき乗に設定可能である。
【００５８】
（第３の実施形態）
第３の実施形態は、第２の実施形態の変形例であり、粗調整期間における増減単位を２以上の最適な値としたものである。
【００５９】
単位可変カウンタ９の粗調整時の増減単位が大きいと、内部クロックＩＮＴＣＫが粗くロックするまでに要する期間（以下、期間Ｔ１）は短くなるが、細かくロックするまでに要する期間（以下、期間Ｔ２）が長くなる。逆に、増減単位が小さいと、期間Ｔ１は長くなるが、期間Ｔ２が短くなる。そこで、本実施形態では、増減単位を最適な値として、ロックするまでに要する合計期間（以下、合計期間Ｔ）をさらに短くすることを目的とする。
【００６０】
図１１は、図１のＤＬＬ１００における粗調整時の増減単位と、期間Ｔ１、期間Ｔ２、合計期間Ｔの関係を示す図である。期間Ｔ１は、初期遅延段数（１２８）を単位可変カウンタ９の増減単位で除して、小数点以下を切り上げた整数である。期間Ｔ２は、増減単位から１を引いた値である。合計期間Ｔは期間Ｔ１と期間Ｔ２の和である。図１１では、増減単位が６以下および１９以上では合計期間Ｔが最短とならないことは明らかであるから、増減単位が７〜１８のみを示している。
【００６１】
図１１から分かるように、合計期間Ｔが最短の２２ＣＫＤＥＶクロックとなる最適な増減単位は１０〜１３である。よって、単位可変カウンタ９の粗調整期間での増減単位を１０〜１３のいずれかとすることにより、第１の実施形態における合計期間２４ＣＫＤＥＶクロックや、第２の実施形態における合計期間２３ＣＫＤＥＶクロックより短い、合計期間２２ＣＫＤＥＶクロックで、内部クロックＩＮＴＣＫをロックさせることができる。
【００６２】
信号ＤＬＬＦＳＤＵＲがハイである期間は、期間Ｔ１と等しくする必要がある。例えば、増減単位が１０の場合は、信号ＤＬＬＦＳＤＵＲを１３ＣＫＤＥＶクロックとする。
【００６３】
その他の処理動作は第２の実施形態と同様である。
【００６４】
一般的には、初期遅延段数をｍ、粗調整期間の増減単位をｘとすると、期間Ｔ１はｍ／ｘの小数点以下を切り上げた整数であり、期間Ｔ２はｘ−１である。初期遅延段数ｍに応じて、期間Ｔ１と期間Ｔ２の和が最小となる整数ｘを算出し、ｘを単位可変カウンタ９の粗調整期間での増減単位とすればよい。また、信号ＤＬＬＦＳＤＵＲがハイである期間は、期間Ｔ１と等しくすればよい。
【００６５】
最小となるｘは、図１１のような表を作成して算出してもよいし、以下の手法により算出してもよい。すなわち、期間Ｔ１およびｘが整数でなくてもよいと仮定すると、合計期間Ｔは以下の（３）式で近似できる。
T = m / x + x - 1  ・・・（３）
ｘは正の数であるので、（３）式を最小にするｘはｘ＝√ｍである。よって、合計期間Ｔを最小にする整数ｘは、初期遅延段数ｍの平方根に近い段数であることが分かる。
【００６６】
上述の手法で算出したｘが複数ある場合、最も簡易に単位可変カウンタ９を構成できるｘを選択してもよい。また、ｘを増減単位とする単位可変カウンタ９を構成すると回路規模が大きくなってしまう場合には、算出したｘでなく、ｘに近い２ｋ（ｋは１以上の整数）を増減単位としてもよい。この場合でも、合計期間Ｔを大幅に増加させることなく、図１０に示すような簡易な回路で単位可変カウンタ９を構成できる。
【００６７】
このように、第３の実施形態では、単位可変カウンタ９の粗調整時の増減単位を最適な値とするため、ＤＬＬ１００はより短い期間でクロックＩＮＴＣＫＸとクロックＥＸＴＣＫＸの位相を合わせることができる。
【００６８】
（第４の実施形態）
第４の実施形態は、より簡易な回路でＤＬＬを実現するものである。
【００６９】
図１２は、第４の実施形態に係るＤＬＬの概略構成図を示す図である。図１２では、図１と共通する構成部分には同一の符号を付しており、以下では相違点を中心に説明する。図１２のＤＬＬ１００ａは、図１のＤＬＬ１００における分周器８の代わりに切替機能付き分周器１８を設け、単位可変カウンタ９の代わりにカウンタ（遅延制御手段）１９を設けている。また、粗調整期間発生器７が生成する信号ＤＬＬＦＳＤＵＲは切替機能付き分周器１８へ供給されている。
【００７０】
図１３は、切替機能付き分周器１８の内部構成の一例を示す図である。図示のように、切替機能付き分周器１８は、分周器８と、マルチプレキサ１１とを有する。分周器８は、第１の実施形態と同じく、周波数がＥＸＴＣＫの１／４の分周クロックを生成する。マルチプレキサ１１は、信号ＤＬＬＦＳＤＵＲがハイの場合、すなわち粗調整期間内は、分周されていないクロックＥＸＴＣＫＸを選択し、ロウの場合、すなわち微調整期間内は、分周器８が分周した分周クロックを選択し、選択したクロックＣＫＤＥＶをカウンタ１９へ供給する。
【００７１】
カウンタ１９は、クロックＣＫＤＥＶに同期して、粗調整期間であるか微調整期間であるかにかかわらず、増減単位を１として遅延段数Ｑを増減させる。ただし、カウンタ１９は、粗調整期間では、分周されていないクロックＣＫＤＥＶ（第１の周期）に同期して遅延段数Ｑを１だけ増減させるのに対し、微調整期間では、分周されたクロックＣＫＤＥＶ（第２の周期）に同期して遅延段数Ｑを１だけ増減させる。よって、粗調整期間は微調整期間よりも４倍早く遅延段数Ｑが変化することになる。
【００７２】
図１４は、図１２のＤＬＬ１００ａの処理動作の一例を示すタイミング図である。図１４を参照しながら、ＤＬＬ１００ａが具体的にクロックＥＸＴＣＫＸとクロックＩＮＴＣＫＸの位相を合わせる処理動作を説明する。
【００７３】
まず、外部から与えられるリセット信号ＤＬＬＲＥＳＥＴが立ち上がると、リセットパルス発生器６はリセットパルス信号ＲＥＳＥＴをハイに設定する（時刻ｔ０）。リセットパルス信号ＲＥＳＥＴがハイになると、カウンタ１９は遅延段数Ｑを、初期遅延段数１２８に初期設定する。
【００７４】
その後、リセットパルス発生器６が、リセットパルス信号ＲＥＳＥＴをロウに設定すると、粗調整期間発生器７は、粗調整を行うべく信号ＤＬＬＦＳＤＵＲをハイに設定する（時刻ｔ１）。位相比較器５は、クロックＥＸＴＣＫＸとクロックＩＮＴＣＫＸを比較し、比較結果を信号ＵＰＤＯＷＮとしてカウンタ１９に入力する。時刻ｔ１〜ｔ２では、信号ＤＬＬＦＳＤＵＲはハイなので、遅延段数Ｑの粗調整が行われる。具体的には、カウンタ１９は、分周されていないクロックＣＫＤＥＶに同期して、信号ＵＰＤＯＷＮがハイであれば、遅延段数Ｑを１だけ増加させ、信号ＵＰＤＯＷＮがロウであれば遅延段数Ｑを１だけ減少させる。
【００７５】
上述のようにＤＬＬ１００ａのフィードバックループは外部クロックＥＸＴＣＫの３周期以上の期間を要する。このため、遅延段数Ｑの増減単位が１であっても、位相比較器５が出力する信号ＵＰＤＯＷＮは外部クロックＥＸＴＣＫの３周期以上の周期で変化する。したがって、図１２のＤＬＬ１００ａは、位相比較器５の出力が変化する周期に合わせて遅延段数Ｑの粗調整を行うのと同等の動作を行う。
【００７６】
その後、粗調整期間発生器７は、微調整を行うべく粗調整期間信号ＤＬＬＳＦＤＵＲをロウに設定する（時刻ｔ２）。これにより、カウンタ１９は、分周されたクロックＣＫＤＥＶに同期して、遅延段数Ｑを１ずつ増減させる。分周されたクロックＣＫＤＥＶの周波数は、外部クロックＥＸＴＣＫの１／４であるので、クロックＩＮＴＣＫＸの遅延時間は遅延段数Ｑに十分追従できる。よって、ＤＬＬ１００ａは増減単位を１とする微調整を行うことができる。
【００７７】
粗調整期間は、外部から任意に設定してもよい。または、粗くロックするために必要な最大限の期間である、初期遅延段数（１２８）を、実際に追従する遅延段数（３）で除して小数以下を切り上げた数、つまり外部クロックＥＸＴＣＫの４３周期としてもよい。
【００７８】
このように、カウンタ１９は通常のアップダウンカウンタと同様のカウント動作を行うので、図３や図１０の単位可変カウンタ９より更に簡易に構成でき、回路規模を縮小できる。
【００７９】
図１４は、図８と同じく遅延段数Ｑが２１１か２１２でロックする例を示している。粗調整期間内では、まず、カウンタ１９が分周されていないクロックＣＫＤＥＶに同期して遅延段数Ｑを１段ずつ増加させて粗調整を行う。上述したように、遅延段数Ｑは１段ずつ変化するが、カウントアップすべきかカウントダウンすべきかの判断は、外部クロックＥＸＴＣＫの３周期以上の間隔で行うため、結果として粗調整を行うことになる。
【００８０】
遅延段数Ｑが２１２になると、クロックＩＮＴＣＫＸの位相がクロックＥＸＴＣＫＸより遅れる。しかし、クロックＩＮＴＣＫＸの遅延時間は、遅延段数Ｑに追従できないので、遅延段数Ｑは２１５まで増加する。その後、クロックＩＮＴＣＫＸの位相を進めるため、カウンタ１９は、遅延段数Ｑを１段ずつ減少させる。信号ＤＬＬＦＳＤＵＲがロウになると、カウンタ１９は、分周されたクロックＣＫＤＥＶに同期して遅延段数Ｑを増減して微調整を行う。分周されたクロックＣＫＤＥＶは周期が長いため、このクロックの１周期ごとにカウントアップすべきかカウントダウンすべきかを判断することになり、微調整が行われる。このような微調整を行うことにより、最終的には、遅延段数Ｑが２１１か２１２でロックされる。
【００８１】
このように、第４の実施形態では、粗調整期間と微調整期間でカウンタ１９に入力するクロックの周波数を切替える構成にしたため、粗調整期間と微調整期間でカウント値の増減単位を切替えなくて済む。したがって、より簡易な回路構成でＤＬＬ１００ａを実現できる。
【００８２】
以上に説明した各実施形態では、遅延チェーン回路２の遅延時間Ｔｘを調整することにより、クロックＥＸＴＣＫＸ（第１の信号）とクロックＩＮＴＣＫＸ（第３の信号）の位相を合わせ、外部クロックＥＸＴＣＫよりも出力バッファ１０の遅延時間Ｔｏｕｔだけ位相を早めた内部クロックＩＮＴＣＫ（第２の信号）を生成する例を示したが、ＤＬＬの用途はこれに限られず、他の目的にも適用可能である。すなわち、本発明は、第１の信号を遅延させて第２の信号を生成し、第２の信号をさらに遅延した第３の信号を生成する際、第１の信号と第３の信号の位相が一致するように制御を行う回路（ＤＬＬ）に幅広く適用である。
【００８３】
より具体的には、本発明に係るＤＬＬは、少なくとも遅延チェーン回路２と、遅延複製器４と、位相比較器５と、粗調整期間発生器７と、単位可変カウンタ９と、を備えていればよい。また、単位可変カウンタ９に換えて、カウンタ１９を備えていてもよい。この構成により、任意の第１の信号と、第１の信号予め定めた所定時間だけ遅延させた第３の信号の位相を合わせることができる。
【００８４】
上述した各実施形態で説明したＤＬＬは、メモリやメモリコントローラの内部に搭載可能であるだけでなく、異なる信号間の位相補償を行う必要のある種々の装置に適用可能である。
【００８５】
図３〜図５、図１０に示した単位可変カウンタの内部構成はあくまで一例に過ぎず、種々の変形が可能である。例えば、第１〜３の実施形態における微調整期間での遅延段数Ｑや、第４の実施形態における遅延段数Ｑの増減単位（第２の単位）は必ずしも１でなくてもよい。また、本発明に係るＤＬＬは、半導体基板上にＭＯＳトランジスタやバイポーラトランジスタ等を用いて形成されていてもよいし、プリント基板等にディスクリート部品を用いて実装されていてもよい。
【００８６】
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれないが、本発明の態様は、上述した個々の実施形態には限定されるものではない。特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【図面の簡単な説明】
【００８７】
【図１】本発明の第１の実施形態に係るＤＬＬの概略構成を示す図。
【図２】単位遅延回路３の内部構成の一例を示す図。
【図３】単位可変カウンタ９の内部構成の一例を示す図。
【図４】カウンタユニット２１の内部構成の一例を示す図。
【図５】カウント単位可変回路２２の内部構成の一例を示す図。
【図６】信号ＤＬＬＦＳＤＵＲがハイのときの単位可変カウンタ９の出力値の一例を示す図。
【図７】外部クロックＥＸＴＣＫを基準とするクロックＥＸＴＣＫＸ，内部クロックＩＮＴＣＫ，クロックＩＮＴＣＫＸの位相関係を示す図。
【図８】図１のＤＬＬの処理動作の一例を示すタイミング図。
【図９】クロックＥＸＴＣＫＸとクロックＩＮＴＣＫＸがロック（安定化）している状態を示す図。
【図１０】単位可変カウンタ９ａの内部構成の一例を示す図
【図１１】図１のＤＬＬにおける粗調整時の増減単位と、期間Ｔ１、期間Ｔ２、合計期間Ｔの関係を示す図。
【図１２】第４の実施形態に係るＤＬＬの概略構成図を示す図。
【図１３】切替機能付き分周器１８の内部構成の一例を示す図。
【図１４】図１２のＤＬＬの処理動作の一例を示すタイミング図。
【符号の説明】
【００８８】
２  遅延チェーン回路（遅延時間調整手段）
４  遅延複製器（遅延手段）
５  位相比較器（位相比較手段）
７  粗調整期間発生器（調整期間設定手段）
９  単位可変カウンタ（遅延制御手段）
１９  カウンタ（遅延制御手段）
２１  カウンタユニット
２２  カウント単位可変回路（カウント単位可変手段）
９１  論理ゲート回路（クロック制御手段）
【図１】
2010200090.tif 000003
【図２】
2010200090.tif 000004
【図３】
2010200090.tif 000005
【図４】
2010200090.tif 000006
【図５】
2010200090.tif 000007
【図６】
2010200090.tif 000008
【図７】
2010200090.tif 000009
【図８】
2010200090.tif 000010
【図９】
2010200090.tif 000011
【図１０】
2010200090.tif 000012
【図１１】
2010200090.tif 000013
【図１２】
2010200090.tif 000014
【図１３】
2010200090.tif 000015
【図１４】
2010200090.tif 000016