(57)【要約】【課題】プロセス条件、電源電圧、温度等の変動によらず、入力クロックの位相シフトの調整ができ、かつ、従来のＤＬＬ回路を用いた場合と比較して占有面積の小さいクロック位相シフト回路を提供する。【解決手段】入力クロックを遅延させる遅延回路の遅延セルと同一の遅延セルで構成されたリングオシレータを用いて、入力クロックのｍ周期分の発振出力をカウントし、入力クロックの１周期分の遅延セル段数を計算して位相シフト量分の遅延セル段数を設定する。【選択図】図１
2008172574.tif 000002
【特許請求の範囲】
【請求項１】
入力クロックを遅延させる複数の遅延セルで構成された遅延回路と、
前記遅延セルと同一の遅延セルで構成されたリングオシレータと、
前記入力クロックのｍ周期分（ｍは１以上の自然数）の期間、前記リングオシレータの発振出力をカウントするカウンタと、
前記カウンタのカウント数から、前記入力クロック１周期分の遅延時間となる前記遅延回路の遅延セル段数を計算し、位相シフト量分の遅延セル段数を設定する演算回路とを備えたことを特徴とするクロック位相シフト回路。
【請求項２】
前記演算回路は、コード信号に対応した位相シフト量のテーブルを備え、該テーブルに従って、前記コード信号に応じた位相シフト量分の遅延セルの段数を設定することを特徴とする請求項１に記載のクロック位相シフト回路。
【請求項３】
前記リングオシレータを構成する遅延セルの段数は、前記カウンタがカウントする期間の前記入力クロックの周期数の半分であることを特徴とする請求項１または２に記載のクロック位相シフト回路。
【請求項４】
前記カウンタがカウントする期間の前記入力クロックの周期数ｍは、前記リングオシレータを構成する遅延セルの段数の２ｐ倍（ｐは１以上の自然数）であることを特徴とする請求項１または２に記載のクロック位相シフト回路。
【請求項５】
前記カウンタにより前記入力クロックのｍ周期分の期間、前記リングオシレータの発振出力をカウントし、前記カウンタのカウント数から、前記入力クロック１周期分の遅延時間となる前記遅延回路の遅延セル段数を計算する第１の動作と、
前記第１の動作で決定された位相シフト量分の遅延セル段数を設定する第２の動作とからなり、
前記第１の動作と前記第２の動作を交互に繰り返し行なうことを特徴とする請求項１乃至４に記載のクロック位相シフト回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に内蔵されるクロック位相シフト回路に係り、特に、プロセス条件、電源電圧、温度等の変動によらず、入力クロックの位相シフトの調整ができ、かつ、従来のＤＬＬ（ディレイ・ロックド・ループ）回路を用いた場合と比較して占有面積が縮小されたクロック位相シフト回路に関する。
【背景技術】
【０００２】
従来、入力クロックとデータのタイミングを調整する場合、単なるバッファを用いた遅延回路やＤＬＬ回路等を使用して入力クロックの位相をシフト（調整）していた。
【０００３】
図７は、バッファ（遅延セル）を用いた従来の遅延回路の一例を示すブロック図である。また、図６は、従来の遅延回路を構成する遅延セルの一例の回路図である。図７に示すように、遅延回路３０は、例えば、図６に示すような遅延セル２０が複数個縦列接続されて構成される。
【０００４】
図６に示すとおり、遅延セル２０は３つのＮＡＮＤ２１、２２、２３で構成される。ＮＡＮＤ２１の一方の入力端子には前段の遅延セルの出力（ＩＮ）が、他方の入力端子にはＮＡＮＤ２３の出力が入力される。ＮＡＮＤ２２の一方の入力端子には電源電圧が、他方の入力端子にはＮＡＮＤ２１の出力が入力され、その出力端子からの出力ＯＵＴは後段の遅延セルに入力される。また、ＮＡＮＤ２３の一方の入力端子には選択信号ＳＥＬが入力され、他方の入力端子には入力クロックＣＬＫが入力されている。選択信号ＳＥＬは、入力クロックＣＬＫを遅延セル内に取り込むか否かを決定する。すなわち、選択信号ＳＥＬが“Ｈ”であれば、入力クロックＣＬＫがＮＡＮＤ２３、２１、２２を介して遅延セルから出力される。一方、選択信号ＳＥＬが“Ｌ”であれば、入力クロックＣＬＫは取り込まれず前段の遅延セルの出力が入力され、ＮＡＮＤ２１、２２を介して遅延セルから出力される。
【０００５】
ここで、図７に示す遅延回路３０の場合、各遅延セル２０にはクロックＣＬＫＩＮが入力され、選択信号ＳＥＬｉ（ｉ＝１、２、・・・）がそれぞれ入力されている。また、遅延回路３０の第１段目の遅延セルの入力端子ＩＮには電源電圧が接続されている。ここで、複数の選択信号ＳＥＬｉのうち１つの選択信号のみが“Ｈ”となり、他の選択信号は全て“Ｌ”となる。したがって、１つの遅延セルが選択されることにより、入力クロックＣＬＫＩＮは選択された遅延セルから遅延が開始され、その位相が調整（シフト）されて出力クロックＣＬＫＯＵＴとして出力される。このように、複数の選択信号ＳＥＬｉのうちのいずれか１つを選択することにより、入力クロックＣＬＫＩＮを所定の位相だけ遅延（調整）することができる。
【０００６】
また、特許文献１には、入力クロック信号をカウンタでカウントし、該カウント結果を第１〜第ｎの遅延回路へ供給して入力クロック信号をτずつ逐次遅延させていき、遅延されたクロック信号と入力信号がほぼ１／２周期ずれた時に、カウンタをホールド状態にするとともに、カウンタの出力をシフタで（ｎ−１）ビットシフトして第１〜第ｎの遅延回路へ供給し、これによりほぼ１／２ｎ周期位相がずれたクロックを生成する技術が開示されている。
また、特許文献２には、２つの遅延ラインと位相比較器からなるＤＬＬ回路を用いて、ＤＤＲ−ＳＤＲＡＭ（ダブルデータレートシンクロナスランダムアクセスメモリ）等のダブルデータレートアプリケーションに適したデータ待ち時間に対するクロックの位相調整手段が開示されている。
【特許文献１】特開平３−１１７２１０号公報
【特許文献２】特開２０００−１８７５２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、単なるバッファを遅延回路として用いたクロック位相シフト回路の場合、遅延回路の遅延値がプロセス条件、電源電圧、温度の変動に大きく依存するため、入力クロックの位相シフトの調整精度が悪く実用的ではない。
ＤＬＬ回路を用いたクロック位相シフト回路の場合、ＤＬＬ回路は入力クロックとして常に安定したクロックが入力されていることを前提としているため、入力クロックの切り替え（急変）や周波数変調されたクロックの入力、あるいは、入力クロックの停止によりロックはずれを起こす可能性がある。また、入力クロックの停止後再び入力クロックが復帰した場合、再度ロック動作が必要になるなど、用途によっては使い物にならないという問題がある。
【０００８】
また、ＤＬＬ回路を用いたクロック位相シフト回路の場合、クロック位相シフト回路と同じ遅延セルを内部可変遅延として有するＤＬＬ回路を入力クロック１周期でロックさせ、ロック時に使用している遅延セルの段数の遅延値をクロック１周期分の時間としている。例えば、入力クロックの９０度分の位相をシフトしたい場合は、ロック時の遅延セル段数の１／４をクロック位相シフト回路で有効にすればよいことになる。ここで、ＤＬＬ回路は、プロセス条件、電源電圧、温度の変動による遅延値の変動も考慮に入れると、入力クロック１周期分以上の遅延値を有する遅延セルが必要となるため、遅延セルによるチップ占有面積も無視できないものとなり、チップコスト上不利となる。
【０００９】
本発明の目的は、前記従来技術に基づく問題を解消し、プロセス条件、電源電圧、温度等の変動によらず、入力クロック周期の変化に柔軟に対応可能な位相シフトの調整ができ、かつ、従来のＤＬＬ回路を用いた場合と比較して、占有面積の小さいクロック位相シフト回路を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明は、入力クロックを遅延させる複数の遅延セルで構成された遅延回路と、上記遅延セルと同一の遅延セルで構成されたリングオシレータと、上記入力クロックのｍ（ｍは１以上の自然数）周期分の期間、上記リングオシレータの発振出力をカウントするカウンタと、上記カウンタのカウント数から、上記入力クロックの１周期分の遅延時間となる上記遅延回路の遅延セル段数を計算し、位相シフト量分の遅延セル段数を設定する演算回路とを備えたクロック位相シフト回路を提供するものである。
【００１１】
ここで、上記演算回路は、コード信号に対応した位相シフト量のテーブルを備え、そのテーブルに従って、上記コード信号に応じた位相シフト量分の遅延セルの段数を設定することが好ましい。
【００１２】
また、上記リングオシレータを構成する遅延セルの段数は、上記カウンタがカウントする期間の前記入力クロックの周期数の半分であることが好ましい。
【００１３】
また、上記カウンタがカウントする期間の上記入力クロックの周期数ｍは、上記リングオシレータを構成する遅延セルの段数の２ｐ倍（ｐは１以上の自然数）であることが好ましい。
【００１４】
さらに、上記カウンタにより上記入力クロックのｍ周期分の期間、上記リングオシレータの発振出力をカウントし、上記カウンタのカウント数から、上記入力クロック１周期分の遅延時間となる上記遅延回路の遅延セル段数を計算する第１の動作と、上記第１の動作で決定された位相シフト量分の遅延セル段数を設定する第２の動作とからなり、上記第１の動作と上記第２の動作を交互に繰り返し行なうことが好ましい。
【発明の効果】
【００１５】
本発明のクロック位相シフト回路は、入力クロックを遅延させる遅延回路の遅延セルと特性が同一の遅延セルで構成されたリングオシレータを用いて、入力クロックのｍ周期分の発振出力をカウントし、入力クロックの１周期分の遅延値を有する遅延セル段数を計算して位相シフト量分の遅延セル段数を設定するものであるため、プロセス条件、電源電圧、温度等の変動によらず、クロックの位相シフト量の調整を精度よく行なえる。また、本発明のクロック位相シフト回路は、入力クロックのｍ周期分の遅延を、少ない段数の遅延セルで構成されたリングオシレータを用いて測定するため、ＤＬＬ回路のように入力クロック１周期分以上の遅延セルを用意する必要もなく、ＤＬＬ回路を用いた従来のクロック位相シフト回路と比較して占有面積を小さくすることができる。
【発明を実施するための最良の形態】
【００１６】
以下に、添付の図面に示す好適実施形態に基づいて、本発明のクロック位相シフト回路について詳細に説明する。
【００１７】
図１は、本発明のクロック位相シフト回路の一実施形態のブロック図である。図に示すクロック位相シフト回路１は、測定回路２、演算回路３、遅延回路４で構成されている。ここで、測定回路２には、入力クロックＣＬＫＩＮが入力され、入力クロック１周期分の遅延値を有する遅延セルの段数を測定する。演算回路３は、外部から入力される４ビットのコード信号ＳＫＥＷ［３：０］と測定回路２により測定された入力クロック１周期分の遅延値を有する遅延セル段数から調整すべき位相シフト量に応じた遅延セル段数を計算し、遅延回路４の遅延セル段数を設定する。なお、遅延回路４には、図７に示したような従来の遅延回路３０を用いることが可能である。このように、クロック位相シフト回路１に入力された入力クロックＣＬＫＩＮは、所定の位相分シフトされて出力クロックＣＬＫＯＵＴとして出力される。この出力クロックＣＬＫＯＵＴは、例えば、ＤＤＲ−ＳＤＲＡＭ（ダブルデータレートシンクロナスランダムアクセスメモリ）等において、その両エッジでデータをサンプリングするのに用いられる。
【００１８】
図２は、本発明のクロック位相シフト回路を構成する測定回路の一実施形態の概略図である。図２に示す測定回路２は、制御回路５と、リングオシレータ６と、カウンタ７で構成される。ここで、制御回路５は、リングオシレータ６およびカウンタ７の動作を制御する。
【００１９】
図３は、図２に示す測定回路２を構成するリングオシレータの一実施形態である。リングオシレータ６は、ＮＡＮＤ１１、１２で構成された遅延セル１０が４段縦列接続され、最終段の遅延セルの出力がインバータ１３により反転された発振出力ＯＳＣＯＵＴが初段の遅延セルを構成するＮＡＮＤ１２の一方の入力端子に入力されている。初段を除く遅延セルを構成するＮＡＮＤ１１の一方の入力端子には前段の遅延セルの出力が入力され、他方の入力端子は電源電圧ＶＤＤに接続されており、また、ＮＡＮＤ１２の一方の入力端子にはＮＡＮＤ１１の出力が入力され、他方の入力端子は電源電圧ＶＤＤに接続されている。また、初段の遅延セルのＮＡＮＤ１１の他方の入力端子には、リセット信号ＲＳＴＮが入力されており、リセット信号ＲＳＴＮが“Ｈ”になると発振を開始する。ここで、インバータ１３の遅延値は、遅延セル１０の遅延値と比較し十分小さいものとし、リングオシレータ６の発振周期に影響を及ぼさないものとする。
【００２０】
本実施形態のリングオシレータは、公知の構成のものが使用可能であるが、その特徴とするところは遅延回路４を構成する遅延セルと同一の特性を有する素子を用いることにある。すなわち、リングオシレータ６の遅延セル１０は、図６に示す遅延セル２０を構成するＮＡＮＤ２１、２２と同一形状のものを用いる。このことによって、後述するように遅延回路の遅延セル段数を正確に算出・設定することが可能となる。なお、遅延セル１０は、図６に示す遅延セル２０そのものを使用してもよい。この場合、ＮＡＮＤ２３の一方または両方の入力端子はグラウンドに接続する必要がある。
【００２１】
カウンタ７は、所定時間、例えば、入力クロックＣＬＫＩＮのｍ周期分、リングオシレータ２の発振出力の立上りエッジもしくは立下りエッジをカウントする。
【００２２】
ここで、本実施形態のクロック位相シフト回路１には、表１に示すようなテーブルを備えることができる。表１は、遅延回路４による入力クロックの位相シフト量を表しており、その位相シフト量は、外部から入力される４ビットのコード信号ＳＫＥＷ［３：０］により決定される。なお、表１で示されるＴは、入力クロックの１周期を表わす。本実施形態の場合、４ビットのコード信号ＳＫＥＷを用いて、ｎＴ／１６またはｎＴ／１４（ｎは０〜７の整数）の位相をシフトすることができる。例えば、コード信号ＳＫＥＷ［３：０］が“００００”の場合は、シフト量は０Ｔ／１６、すなわち０度、“００１０”の場合は、シフト量は２Ｔ／１６、すなわち４５度、“０１００”の場合は、シフト量は４／１６Ｔ、すなわち９０度となる。
【００２３】
【表１】
2008172574.tif 000003
【００２４】
次に、本発明のクロック位相シフト回路の動作について説明する。
【００２５】
図４は、本発明のクロック位相シフト回路の動作を示すタイミング図である。図に示すとおり、まず、クロック位相シフト回路１は、リセット信号ＲＳＴＮによって初期状態にされる。その後、入力クロックＣＬＫＩＮの１周期の間に、設定すべき位相のシフト量を示すコード信号ＳＫＥＷ［３：０］を入力する。図４の例では、入力クロックＣＬＫＩＮを２周期（ｍ＝２）にわたってリングオシレータ６の発振出力を測定する。リングオシレータ６は、入力クロックＣＬＫＩＮの周期に応じて動作し、カウンタ７は、入力クロックＣＬＫＩＮが２周期の間にリングオシレータ６が何回発振したかをカウントする。演算回路３は、次の１周期の間に、このカウント結果をもとに入力クロックＣＬＫＩＮ１周期分の遅延値を有する遅延回路４の遅延セル段数を計算（演算）し、さらに次の１周期で目的とする位相シフト量に対応する遅延セル段数の設定・入力クロックＣＬＫＩＮの位相のシフトを行なう。以上、便宜上、入力クロック５周期分を１つの動作単位として動作周期と呼び、以降この動作周期を所定期間ごとに繰り返す。ここで、ある動作周期で設定された位相シフト量は、次の動作周期まで保持される。
【００２６】
なお、図５に示すように、コード信号ＳＫＥＷの取込みから演算回路３による遅延回路４の遅延セル段数の計算までを行い、これを１つの動作単位として動作周期１とし、以降、連続してこの動作周期を繰り返してもよい。この場合、次の入力クロックＣＬＫＩＮ４周期（動作周期２）では、動作周期１で計算した目的とする位相シフト量に対応する遅延セルの段数を設定し、入力クロックＣＬＫＩＮの位相をシフトする（第２の動作）とともに、上述した動作周期１と同様の動作（第１の動作）を繰り返す。
【００２７】
次に、遅延回路４の遅延セル段数を決定するメカニズムについて説明する。
上述したように、入力クロックＣＬＫＩＮの周期をＴとする。また、リングオシレータをｋ段のバッファ（遅延セル）で構成しその発振周期をｔ、遅延セル１段の遅延時間をｄとする。リングオシレータを構成する遅延セルがｋ段であるので、発振周期ｔ＝２ｋｄとなり、カウンタにおける入力クロックＣＬＫＩＮｍ周期分のカウント値Ｎは以下の式で表わされる。
Ｎ＝ｍＴ／ｔ＝ｍＴ／２ｋｄ＝（ｍ／２ｋ）×（Ｔ／ｄ）  ・・・（１）
ここで、(Ｔ／ｄ)は入力クロックＣＬＫＩＮの周期が遅延セル何段分に相当するかを表わしている。すなわち、カウンタのカウント値Ｎは、入力クロックＣＬＫＩＮの周期が遅延セル段数の（ｍ／２ｋ）倍であることを表わしている。したがって、カウント値Ｎから入力クロックＣＬＫＩＮ１周期の遅延セル段数（２ｋ／ｍ）×Ｎが求まり、演算回路３では、この値とコード信号ＳＫＥＷから設定すべき位相シフト量に相当するセル段数（２ｋ／ｍ）×Ｎ×（ｎ／１６）が算出される。
【００２８】
本実施形態の場合、リングオシレータを４段の遅延セルで構成し、入力クロックの測定周期はｍ＝２であるので、発振周期ｔ＝８ｄとなり、カウンタにおける入力クロック２周期分のカウント値Ｎは、Ｎ＝２Ｔ／ｔ＝２Ｔ／８ｄ＝（１／４）×（Ｔ／ｄ）となる。したがって、入力クロックＣＬＫＩＮ１周期分の遅延回路４のセル段数４Ｎが求まり、演算回路３では、設定すべき位相シフト量ｎ／１６に対応する遅延セル段数４Ｎ×（ｎ／１６）が算出される。
【００２９】
ここで、リングオシレータ６は、遅延回路４を構成する遅延セルと同じ素子を使用して構成している。プロセス条件、電源電圧、温度等の変化により、遅延セル１段の遅延時間がｄからｄ１に変動したとすると、リングオシレータも同じ遅延セルを使用しているため、発振周期は２ｋｄから２ｋｄ１に変化する。したがって、（１）式で示されるカウンタの周期Ｎ１は、以下のような式で表わされる。
【００３０】
Ｎ１＝ｍＴ／ｔ１＝ｍＴ／２ｋｄ１＝（ｍ／２ｋ）×（Ｔ／ｄ１）・・・（２）
このように、プロセス条件、電源電圧、温度等が変動により遅延時間が増減しても、リングオシレータの発振周期も同様に変動するので、入力クロックＣＬＫＩＮの周期は正しく測定することが可能となり、プロセス条件、電源電圧、温度等が変動の影響は受けない。
【００３１】
本実施形態では、入力クロックの測定、位相シフト量の演算、遅延セルの選択の一連の動作を動作周期毎に行なう。ＤＬＬ回路等を用いた位相シフトと異なるので、すなわち、ロック（同期捕捉）という概念が存在しないため、入力クロックの切り替えなどによるクロックの急変、変調されたクロックの入力、クロックの停止による「ロックはずれ」、「再ロック」などが起こることはない。
【００３２】
なお、本実施形態では、入力クロック２周期分についてリングオシレータの発振出力をカウントすることにしているが、リングオシレータの発振周期が入力クロックの周期に比べ十分短ければ入力クロック１周期分についてカウントしてもよく、また、任意の周期にわたりカウントしてもよい。また、例えば、リングオシレータのバッファの段数ｋを入力クロックＣＬＫＩＮの測定周期数ｍの半分の値にとると、ｍ＝２ｋとなり、（１）式からカウンタのカウント数Ｎ＝リングオシレータの遅延セル段数（Ｔ／ｄ）と、カウント数Ｎを複雑な演算処理を行なうことなく、演算回路の内部構成をより簡単なものとすることができる。
【００３３】
本発明は、基本的に以上のようなものである。
【００３４】
以上、本発明のクロック位相シフト回路について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよい。
【図面の簡単な説明】
【００３５】
【図１】本発明のクロック位相シフト回路の一実施形態のブロック図である。
【図２】本発明のクロック位相シフト回路を構成する測定回路の一実施形態の概略図である。
【図３】図２に示す測定回路を構成するリングオシレータの一実施形態である。
【図４】本発明のクロック位相シフト回路の動作の一実施形態を示すタイミング図である。
【図５】本発明のクロック位相シフト回路の動作の別の実施形態を示すタイミング図である。
【図６】従来の遅延回路を構成する遅延セルの一例の回路図である。
【図７】バッファ（遅延セル）を用いた従来の遅延回路の一例を示すブロック図である。
【符号の説明】
【００３６】
１  クロック位相シフト回路
２  測定回路
３  演算回路
４、３０  遅延回路
５  制御回路
６  リングオシレータ
７  カウンタ
１０、２０  遅延セル
１１、１２、２１、２２、２３  ＮＡＮＤ
１３  インバータ
【図１】
2008172574.tif 000004
【図２】
2008172574.tif 000005
【図３】
2008172574.tif 000006
【図４】
2008172574.tif 000007
【図５】
2008172574.tif 000008
【図６】
2008172574.tif 000009
【図７】
2008172574.tif 000010