説明

位相補償用クロック同期回路

【課題】短時間で精度よく位相調整を行うことが可能な位相補償用クロック同期回路を提供する。
【解決手段】DLLは、入力レシーバ1と、遅延チェーン回路2と、遅延複製器4と、位相比較器5と、リセットパルス発生器6と、粗調整期間発生器7と、分周器8と、単位可変カウンタ9と、を備えている。まず単位可変カウンタ9の増減単位を17または1(平均で16)として粗調整を行って粗くロックさせた後に、単位可変カウンタ9の増減単位を1として微調整を行って細かくロックさせるため、短い期間で確実にクロックINTCKXとクロックEXTCKXの位相を合わせることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クロックの位相を合わせる位相補償用クロック同期回路に関する。
【背景技術】
【0002】
半導体の性能向上に従って、チップ間のバスも高速動作が要求されるようになってきている。特にメモリコントローラとメモリ間のバスの高速化は近年著しいものがある。この高速化には位相補償用クロック同期回路(DLL)が必要である。このDLLは、メモリ内部で用いるクロックの位相を、メモリとは別チップのメモリコントローラから供給されるクロックの位相と合わせる位相補償を行う。
【0003】
メモリから読み出されるデータは、メモリ内部のクロックINTCKに同期して、出力バッファからメモリコントローラへ出力される。メモリコントローラは、データ出力に要する時間Toutの後にメモリからデータを受信する。よって、メモリは、メモリコントローラ内で用いられるクロックEXTCKより時間Toutだけ位相が早いクロックに同期してデータを出力しなければならない。つまり、メモリ内部のクロックINTCKは、クロックEXTCKよりも時間Toutだけ位相が早いクロックである必要があり、このようなクロックINTCKを生成するためにDLLは用いられる。したがって、DLLはメモリの内部に搭載される。
【0004】
また、DLLはメモリコントローラ内部にも搭載される。メモリコントローラがメモリからデータを受信する際、最もセットアップ・ホールド時間に余裕があるタイミングでデータを受信するのが望ましい。このタイミングは、データに同期したクロックEXTCKの位相を180度ずらしたタイミングであり、このようなクロックを生成するためにもDLLは用いられる。
【0005】
このように、DLLは高速化が必須とされるメモリバスには必要不可欠なものである。
【0006】
非特許文献1には、複数の単位遅延回路を有する単位遅延段数変更型のDLLが開示されている。このDLLは、遅延段数を調整して、外部クロックEXTCKよりも遅延時間Toutだけ位相が早い内部クロックINTCKを生成する。
【0007】
しかしながら、遅延段数を1段ずつ調整して最適な遅延段数を探索する手法では、最終的なクロックINTCKを生成する(ロックアップする)までに、単位遅延回路の段数だけ調整を繰り返さなければならず、遅延段数の設定に時間がかかるという問題がある。しかも、DLLの調整精度を上げるには、単位遅延回路での遅延時間を短くし、単位遅延回路の数を増やさなければならず、その結果さらにロックアップするまでの時間が長くなるという問題がある。
【非特許文献1】”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
【発明の開示】
【発明が解決しようとする課題】
【0008】
本発明は、短時間で精度よく位相調整を行うことが可能な位相補償用クロック同期回路を提供するものである。
【課題を解決するための手段】
【0009】
本発明の一態様によれば、粗調整期間と微調整期間を設定する調整期間設定手段と、遅延段数設定値に基づいて遅延段数を第1の単位または第2の単位で増減可能で、第1の信号を遅延させて第2の信号を生成する遅延時間調整手段と、前記第2の信号を予め定めた所定時間だけ遅延させて第3の信号を生成する遅延手段と、前記第1の信号と前記第3の信号との位相差を検出する位相比較手段と、前記位相差に基づいて、前記粗調整期間が設定された場合は前記遅延段数を前記第1の単位ずつ増減させ、前記微調整期間が設定された場合は前記遅延段数を前記第2の単位ずつ増減させるように、前記遅延段数設定値を生成する遅延制御手段と、を備えることを特徴とする位相補償用クロック同期回路が提供される。
【発明の効果】
【0010】
本発明によれば、短期間で精度よく位相調整を行うことができる。
【発明を実施するための最良の形態】
【0011】
以下、本発明に係る位相補償用クロック同期回路(DLL)の実施形態について、図面を参照しながら具体的に説明する。
【0012】
(第1の実施形態)
図1は本発明の第1の実施形態に係るDLL100の概略構成を示す図である。図1のDLL100は、入力レシーバ1と、遅延チェーン回路(遅延時間調整手段)2と、遅延複製器(遅延手段)4と、位相比較器(位相比較手段)5と、リセットパルス発生器6と、粗調整期間発生器(調整期間設定手段)7と、分周器8と、単位可変カウンタ(遅延制御手段)9と、を備えている。
【0013】
図1のDLL100は、遅延チェーン回路2の遅延時間Txを調整することにより、クロックEXTCKXとクロックINTCKXの位相を合わせ、外部クロックEXTCKよりも出力バッファ10の遅延時間Toutだけ位相の早い内部クロックINTCKを生成する。この動作原理は後に詳述する。
【0014】
例えば、図1のDLL100がメモリ(不図示)の内部に搭載される場合には、メモリは内部クロックINTCKに同期して動作することになる。また、メモリコントローラ(不図示)は、メモリから出力バッファ10を介して、内部クロックINTCKに対して遅延時間Toutだけ遅れて、データを受け取ることになる。
【0015】
図1の入力レシーバ1は、外部クロックEXTCKを受信し、バッファリングしてクロックEXTCKXを出力する。以下では、入力レシーバ1の遅延時間をTinとする。
【0016】
遅延チェーン回路2は、クロックEXTCKX(第1の信号)を遅延時間Txだけ遅延させて、クロックINTCK(第2の信号)を生成する。遅延チェーン回路2は、縦続接続された複数の単位遅延回路3を備えており、遅延時間Txは、使用する単位遅延回路3の数(以下、遅延段数Q)に応じて調整可能である。使用する単位遅延回路3の数は、単位可変カウンタ9のカウント値(遅延段数設定値)により調整される。本実施形態では、遅延チェーン回路2が最大で256個の単位遅延回路3を使用できる例を示し、遅延段数Qは8ビットの信号で表されるものとする。なお、単位遅延回路3の数はこれに限られるものではない。
【0017】
図2は、j段目(j=0〜255)の単位遅延回路3の内部構成の一例を示す図である。単位遅延回路3は、NAND回路111〜113を有する。j段目の単位遅延回路3の出力DOUTは、j+1段目の単位遅延回路3の入力DINへ接続される。この単位遅延回路3を256段縦属接続して、遅延チェーン回路2が構成される。また、信号A<j>は、遅延段数Qをデコードした信号である。
【0018】
以下、遅延チェーン回路2が128段分遅延させる場合、すなわち、Q<0:7>=”00000001”の場合を例にとって説明する。この例では、信号A<128>のみがハイで、他の信号A<k>(k≠128)はロウとなる。この場合、縦属接続された単位遅延回路3のうち、128段目の単位遅延回路のみクロックEXTCKXが有効となる。一方、128段目以外のk段目の単位遅延回路3では、k−1段目の単位遅延回路3からの出力であるDINが有効となる。その結果、遅延チェーン回路2はクロックEXTCKXを128段分の遅延時間だけ遅延させてクロックINTCKを生成できる。
【0019】
図2の単位遅延回路3の内部構成はあくまで一例であり、種々の回路で実現できるものである。
【0020】
遅延複製器4は、入力レシーバ1の遅延時間Tinと後述する内部バッファ10の遅延時間Toutをモニタする回路であり、内部クロックINTCKを遅延時間Tin+Toutだけ遅延させたクロックINTCKX(第3の信号)を生成する。
【0021】
位相比較器5は、クロックEXTCKXの位相とクロックINTCKXの位相とを比較し、位相差に応じて1ビットの信号UPDOWNを生成し、単位可変カウンタ9へ供給する。信号UPDOWNは、ロウであればクロックINTCKXがクロックEXTCKXよりも位相が進んでいることを表し、ハイであればクロックINTCKXがクロックEXTCKXよりも位相が遅れていることを表す。
【0022】
リセットパルス発生器6は、外部から供給されるリセット信号DLLRESET に同期して、リセットパルス信号RESETを生成し、単位可変カウンタ9へ供給する。
【0023】
粗調整期間発生器7は、リセット信号DLLRESETに同期して、所定のパルス幅の粗調整期間信号DLLFSDURを生成し、単位可変カウンタ9へ供給する。信号DLLFSDURは、ハイであれば粗調整期間を表し、ロウであれば微調整期間を表す。
【0024】
分周器8は、クロックEXTCKXを分周した分周クロックCKDEVを生成し、単位可変カウンタ9へ供給する。本実施形態では、周波数がクロックEXTCKXの1/4の分周クロックCKDEVを生成する例を示すが、必ずしも周波数を1/4に分周する必要はなく、後述するように、DLL100のフィードバックループが追従できる周波数に分周すればよい。
【0025】
単位可変カウンタ9は、リセットパルス信号RESETがハイになると、遅延段数Qを単位遅延回路3の数の1/2である128(以下、初期遅延段数)にリセットする。すなわち、初期状態では、遅延段数Qを中間値に設定する。単位可変カウンタ9は、リセットパルス信号RESETがロウになると、分周クロックCKDEVに同期して、遅延段数Qを増減させる。
【0026】
単位可変カウンタ9は、信号UPDOWNがハイであれば、遅延段数Qを示すカウント値を増加させ、ロウであれば、減少させる。遅延段数Qを増減させる単位(以下、増減単位)は、粗調整期間(信号DLLFSDURがハイ)と、微調整期間(信号DLLFSDURがロウ)とに応じて、下記のように異なる点が、本実施形態のDLL100の特徴である。すなわち、本実施形態では、粗調整期間と微調整期間で、単位可変カウンタ9のカウント値の更新単位を切替えている。
【0027】
図3は、単位可変カウンタ9の内部構成の一例を示す図である。単位可変カウンタ9は、縦続接続された8つのカウンタユニット21と、カウント単位可変回路(カウント単位可変手段)22を備えている。8つのカウンタユニット21は、単位可変カウンタ9のカウント値の各ビットに対応しており、図3の左側が下位ビット側、右側が上位ビット側である。下位側4ビットを設定する4つのカウンタユニット21が第1のカウント手段、上位側4ビットを設定する4つのカウンタユニット21が第2のカウント手段に、それぞれ対応する。
【0028】
図4は、個々のカウンタユニット21の内部構成の一例を示す図である。図示のように、カウンタユニット21は、JKフリップフロップ31と、マルチプレキサ32と、論理ゲート回路33,34とを有する。マルチプレキサ32は、信号UPDOWNの論理に応じて、2入力のうち一方を選択する。図3に示すように、初段のカウンタユニット21内のマルチプレキサ32には、いずれもハイレベルの2入力信号が入力されるが、二段目以降のカウンタユニット21内のマルチプレキサ32には、前段のカウンタユニット21の2つのキャリー出力CU,CDが入力される。各段のカウンタユニット21内のマルチプレキサ32は、信号UPDOWNの論理に応じて、2つのキャリー出力CU、CDのいずれか一方を選択する。
【0029】
より具体的には、k(k≧2)ビット目のカウンタユニット21内のマルチプレキサ32は、信号UPDOWNがハイであれば、下位ビット側の隣接するカウンタユニット21のキャリー出力CU<k−1>を、ロウであればキャリー出力CD<k−1>を選択する。そして、CU<k−1>またはCD<k−1>を受けて、JKフリップフロップ31は、CU<k−1>またはCD<k−1>の論理に応じて、分周クロックCKDEVに同期して、Q<k>とその反転信号であるBQ<k>を生成する。論理ゲート回路33は、BQ<k>とCU<k−1>の論理に応じて、上位ビットへのキャリー出力CU<k>を生成する。論理ゲート回路34は、Q<k>とCD<k−1>の論理に応じて、上位ビットへのキャリー出力CD<k>を生成する。
【0030】
カウント単位可変回路22は、4ビット目と5ビット目のカウンタユニット21の間に挿入されている。図5は、カウント単位可変回路22の内部構成の一例を示す図である。図示のように、カウント単位可変回路22はマルチプレキサ41を有する。このマルチプレキサ41は、信号DLLFSDURがハイであればハイレベルを、ロウであれば下位ビット側の隣接する(4ビット目の)カウントユニット21のキャリー出力CU<3>,CD<3>を選択して、第2のカウンタ手段の初期カウント値として設定する。
【0031】
信号DLLFSDURがロウであるとき、図3の単位可変カウンタ9はカウント値が1ずつアップダウンする通常のアップダウンカウンタと全く同様の動作をするので、単位可変カウンタ9は、分周クロックCKDEVに同期して、遅延段数Qを1だけ増減させる。つまり、微調整期間の増減単位は1である。
【0032】
一方、信号DLLFSDURがハイであるとき、単位可変カウンタ9は、カウント単位可変回路22により、下位ビット側から5ビット目のカウンタユニット21の2入力信号CUX<3>とCDX<3>を強制的にハイにする。これによって、下位ビット側から5ビット目以降のカウンタユニット21は、最下位から4ビット目までのカウンタユニット21とは別個にカウント動作を行うことになる。より具体的には、分周クロックCKDEVに同期して、最下位から4ビット目までのカウンタユニット21が1ずつアップダウンし、それに並行して、下位ビット側から5ビット目以降のカウンタユニット21も、1つずつアップダウンする。この結果、カウント値は、17ずつ増減することになる。よって、単位可変カウンタ9は、遅延段数Qを17だけ増減させる。
【0033】
図6は信号DLLFSDURがハイのときの単位可変カウンタ9の出力値(カウント値)の一例を示す図である。図6では、簡略化のために、8個のカウンタユニット21が縦続接続され、初期設定値である128からカウントアップ・ダウン動作を行う例を示している。図示のように、下位側4ビット分のカウンタユニット21(第1のカウント手段)と上位側4ビット分のカウンタユニット21(第2のカウント手段)は、それぞれ独立してカウントアップ・ダウン動作を行う。この結果、下位4ビットがオール0(128)から1回だけカウントダウンを行った場合と、下位4ビットがオール1(127)から1回だけカウントアップを行った場合のカウント値の差分は1であるが、それ以外のカウントアップ動作でのカウント値の差分は17である。この結果、増減単位(カウント値の差分)の平均値は16になる。
【0034】
このように、8つのカウンタユニット21を縦続接続した通常用いられる8ビットのアップダウンカウンタに、図5に詳細構成を示すカウント単位可変回路22を1つ挿入するだけの簡易な構成で、カウント値の粗調整期間での増減単位(第1の単位)と、微調整期間での増減単位(第2の単位)が異なる単位可変カウンタ9を実現できる。
【0035】
図3では、粗調整期間内における遅延段数Qの平均の増減単位を16としたが、図3のカウント単位可変回路22の左側に接続されるカウンタユニット21の数を変更することにより、増減単位を変更することができる。例えば、カウント単位可変回路22の左側にカウンタユニット21が一つだけ存在する場合は、粗調整期間内の遅延段数Qの増減単位は2になる。これが増減単位の最小値であり、第1の実施形態によれば、粗調整期間内における遅延段数Qの平均の増減単位を2以上の2のべき乗に設定可能である。
【0036】
なお、外部クロックEXTCKでなく、周波数がその1/4の分周クロックCKDEVに同期して、単位可変カウンタ9が遅延段数Qを増減させる理由は、遅延段数Qを変更してクロックINTKXの位相を確定させた後に帰還させて位相比較器5で位相差を検出するまでのDLL100のフィードバックループが、外部クロックEXTCKの3クロック分以上の時間を要するためである。
【0037】
図1のDLL100は、例えばメモリの内部に設けられる。メモリは、外部から供給される外部クロックEXTCKをDLL100によって位相調整を行い、内部クロックINTCKを生成する。この内部クロックINTCKに同期して、メモリ内に記憶されたデータがDLL100の外部にある出力バッファ10を介してデータDOUTとして出力される。出力バッファ10の遅延時間をToutとする。
【0038】
次に、図1のDLL100の処理動作を説明する。
【0039】
図1のDLL100は、外部クロックEXTCKを入力レシーバ1でバッファリングしたクロックEXTCKXと、遅延チェーン回路2から出力された内部クロックINTCKを遅延複製器4で遅延させたクロックINTCKXとの位相を合わせるよう、遅延チェーン回路2の遅延時間Txを調整する。その結果、外部クロックEXTCKよりも遅延時間Toutだけ位相が早い内部クロックINTCKが生成できることを説明する。
【0040】
図7は、外部クロックEXTCKを基準とするクロックEXTCKX,内部INTCK,クロックINTCKXの位相関係を示す図である。クロックEXTCKXは、入力レシーバ1から出力されるので、遅延時間はTinである。内部クロックINTCKは、入力レシーバ1および遅延チェーン回路2を経由するので、遅延時間はTin+Txである。クロックINTCKXは、入力レシーバ1、遅延チェーン回路2、遅延複製器4を経由するので、遅延時間はTin+Tx+(Tin+Tout)である。
【0041】
クロックEXTCKX(遅延時間Tin)とクロックINTCKX(遅延時間Tin+Tx+(Tin+Tout))の位相差は、両クロックの遅延時間の差であるTx+Tin+Toutである。DLL100は、この位相差が外部クロックEXTCKや内部クロックINTCKの周期Tの整数倍となるように単位可変カウンタ9のカウント値を調整する。この場合、nを正の整数として、以下の(1)式の関係が成立する。
n*T = Tx + Tin + Tout ・・・(1)
これを変形すると、以下の(2)式が得られる。
Tin + Tx = n*T - Tout ・・・(2)
(2)式の左辺Tin+Txは内部クロックINTCKの遅延時間と等しく、この値は、(2)式の右辺が示すように、遅延時間Toutだけ位相を早めることと等価である。このようにして、DLL100は、外部クロックEXTCKよりも遅延時間Toutだけ位相を早めた内部クロックINTCKを生成する。
【0042】
図8は、図1のDLL100の処理動作の一例を示すタイミング図である。図8を参照しながら、DLL100が具体的にクロックEXTCKXとクロックINTCKXの位相を合わせる処理動作を説明する。
【0043】
まず、外部から与えられるリセット信号DLLRESETが立ち上がると、リセットパルス発生器6はリセットパルス信号RESETをハイに設定する(時刻t0)。リセットパルス信号RESETがハイになると、単位可変カウンタ9は遅延段数Qを128に初期設定する。
【0044】
その後、リセットパルス発生器6がリセットパルス信号RESETをロウに設定すると、粗調整期間発生器7は、粗調整を行うべく信号DLLFSDURをハイに設定する(時刻t1)。位相比較器5は、クロックEXTCKXとクロックINTCKXを比較し、比較結果を信号UPDOWNとして単位可変カウンタ9に入力する。時刻t1〜t2では、信号DLLFSDURはハイなので遅延段数Qの粗調整が行われる。具体的には、単位可変カウンタ9は、分周クロックCKDEVに同期して、信号UPDOWNがハイであれば、遅延段数Qを17または1(平均で16)だけ増加させ、信号UPDOWNがロウであれば遅延段数Qを17または1(平均で16)だけ減少させる。粗調整期間の遅延段数Qの増減単位は上述した通りである。
【0045】
図9は、クロックEXTCKXとクロックINTCKXがロック(安定化)している状態を示す図である。図8は、遅延段数Qが初期遅延段数128では、クロックINTCKXの位相がクロックEXTCKXより進んでいる例を示しており、粗調整期間内に単位可変カウンタ9が遅延段数Qを17段ずつ増加させている。遅延段数Qが213になると、図9に示すように、クロックINTCKXの位相は、クロックEXTCKXの位相より遅れている。その結果、遅延段数Qは213から196に17段減少し、これにより、クロックEXTCKXとクロックINTCKXの位相関係が一気に逆転する。このように、粗調整期間内は、遅延段数Qを粗く変化させるため、クロックEXTCKXとクロックINTCKXの位相を正確に一致させることは困難であるが、両クロックの位相を短時間で近づけることができる。
【0046】
粗調整期間は、単位可変カウンタ9の8CKDEVクロック分で終了する。8CKDEVクロックで粗調整期間が終了する理由は、初期遅延段数(128)を単位可変カウンタ9の増減単位の最大値(17)で除して、小数以下を切り上げた数が8CKDEVクロックであるためである。この期間は、粗くロックするために必要な最大限の期間であるため、この期間を粗調整期間として定めている。
【0047】
上記の粗調整期間の経過後、粗調整信号発生器7は、微調整を行うべく信号DLLFSDURをロウに設定する(時刻t2)。これにより、単位可変カウンタ9は、増減単位を1として遅延チェーン回路2の遅延段数Qの微調整を行う。図8と図9では、遅延段数Qが213のとき、クロックINTCKXの位相がクロックEXTCKXより遅れているので、位相比較器5は信号UPDOWNをロウに設定する。単位可変カウンタ9は、遅延段数Qを1ずつ減少させ、最終的には遅延段数Qが211か212でロックされる。粗調整期間では、増減単位を最大17としていたので、微調整により細かくロックするまでに要する期間は17−1=16CKDEVクロックである。
【0048】
以上により、内部クロックINTCKがロックするまでに要する合計期間は、リセット信号DLLRESETの立ち上がりから8+16=24CKDEVクロックであり、必ずこの期間内にロックさせることができる。仮に、粗調整期間発生器7を設けずに、単位可変カウンタ9が、常に増減単位を1として遅延チェーン回路2の遅延時間Txを調整したとすると、ロックするまでの平均クロック数は128CKDEVクロックとなる。本実施形態では、粗調整期間発生器7を設けて、粗調整期間と微調整期間で遅延段数Qの増減単位を変えて単位可変カウンタ9が遅延時間Txを調整するため、DLL100がロックするまでの期間を大幅に短縮することができる。
【0049】
このように、第1の実施形態では、遅延チェーン回路2の遅延段数Qを単位可変カウンタ9にて設定することにし、単位可変カウンタ9は、遅延段数Qの増減単位を17または1(平均で16)として粗調整を行って粗くロックさせた後に、遅延段数Qの増減単位を1として微調整を行って細かくロックさせるため、短い期間で確実にクロックINTCKXとクロックEXTCKXの位相を合わせることができる。
【0050】
(第2の実施形態)
第2の実施形態は、第1の実施形態の変形例であり、単位可変カウンタ9の構成を変えて、粗調整期間における増減単位を常に16としたものである。
【0051】
図10は、単位可変カウンタ9aの内部構成の一例を示す図である。図3と共通する構成部分には同一の符号を付しており、以下では相違点を中心に説明する。
【0052】
図10の単位可変カウンタ9aは、図3の単位可変カウンタ9の構成に加えて、論理ゲート回路(クロック制御手段)91をさらに備えている。論理ゲート回路91は、分周クロックCKDEVと信号DLLFSDURの反転信号との論理積を演算することにより、分周クロックCKDEV2を生成する。下位ビット側から5ビット目以降のカウンタユニット21には、図3と同様に分周クロックCKDEVが入力されるが、最下位から4ビット目までのカウンタユニット21には、分周クロックCKDEV2が入力される。
【0053】
粗調整期間では、信号DLLFSDURがハイであるので、論理ゲート回路91から出力される分周クロックCKDEV2はロウになる。その結果、粗調整期間では最下位から4ビット目までのカウンタユニット21はカウントアップ・ダウン動作を行わない。よって、上位ビット側半分のカウンタユニット21だけ、すなわち最下位ビットから5ビット目以降のカウンタユニット21だけが、分周クロックCKDEV2に同期してカウントアップ・ダウン動作を行うことになり、粗調整期間における遅延段数Qの増減単位は常に16になる。
【0054】
微調整期間では、信号DLLFSDURがロウであるので、論理ゲート回路91は、分周クロックCKDEVと同位相の分周クロックCKDEV2を生成する。よって、微調整期間では、第1の実施形態と同じく、遅延段数Qの増減単位は常に1である。
【0055】
本実施形態は、単位可変カウンタ9の内部構成以外は第1の実施形態と同様である。本実施形態では、粗くロックするまでに要する期間は、初期遅延段数(128)を単位可変カウンタ9の増減単位の16で除して、小数以下を切り上げた数、つまり8CKDEVクロックである。また、細かくロックするまでに要する期間は、16−1=15CKDEVクロックである。よって、内部クロックINTCKがロックするまでに要する合計期間は、リセット信号DLLRESETの立ち上がりから8+15=23CKDEVクロックであり、必ずこの期間内にロックさせることができる。
【0056】
このように、第2の実施形態では、DLL100は、粗調整期間には最下位ビットから4ビット目までのカウンタユニット21にクロックを供給しないようにし、上位ビット側半分のカウンタユニット21のみにクロックを供給して、カウントアップまたはダウン動作を行うため、粗調整期間では遅延段数Qの増減単位を常に16として粗調整を行うことができる。したがって、第1の実施形態よりも、粗調整期間内に動作するカウンタユニット21の数を削減でき、消費電力の削減が図れる。
【0057】
図10においても、カウント単位可変回路22の左側のカウンタユニット21の数を変えることで、粗調整期間内の遅延段数Qの増減単位を2以上の2のべき乗に設定可能である。
【0058】
(第3の実施形態)
第3の実施形態は、第2の実施形態の変形例であり、粗調整期間における増減単位を2以上の最適な値としたものである。
【0059】
単位可変カウンタ9の粗調整時の増減単位が大きいと、内部クロックINTCKが粗くロックするまでに要する期間(以下、期間T1)は短くなるが、細かくロックするまでに要する期間(以下、期間T2)が長くなる。逆に、増減単位が小さいと、期間T1は長くなるが、期間T2が短くなる。そこで、本実施形態では、増減単位を最適な値として、ロックするまでに要する合計期間(以下、合計期間T)をさらに短くすることを目的とする。
【0060】
図11は、図1のDLL100における粗調整時の増減単位と、期間T1、期間T2、合計期間Tの関係を示す図である。期間T1は、初期遅延段数(128)を単位可変カウンタ9の増減単位で除して、小数点以下を切り上げた整数である。期間T2は、増減単位から1を引いた値である。合計期間Tは期間T1と期間T2の和である。図11では、増減単位が6以下および19以上では合計期間Tが最短とならないことは明らかであるから、増減単位が7〜18のみを示している。
【0061】
図11から分かるように、合計期間Tが最短の22CKDEVクロックとなる最適な増減単位は10〜13である。よって、単位可変カウンタ9の粗調整期間での増減単位を10〜13のいずれかとすることにより、第1の実施形態における合計期間24CKDEVクロックや、第2の実施形態における合計期間23CKDEVクロックより短い、合計期間22CKDEVクロックで、内部クロックINTCKをロックさせることができる。
【0062】
信号DLLFSDURがハイである期間は、期間T1と等しくする必要がある。例えば、増減単位が10の場合は、信号DLLFSDURを13CKDEVクロックとする。
【0063】
その他の処理動作は第2の実施形態と同様である。
【0064】
一般的には、初期遅延段数をm、粗調整期間の増減単位をxとすると、期間T1はm/xの小数点以下を切り上げた整数であり、期間T2はx−1である。初期遅延段数mに応じて、期間T1と期間T2の和が最小となる整数xを算出し、xを単位可変カウンタ9の粗調整期間での増減単位とすればよい。また、信号DLLFSDURがハイである期間は、期間T1と等しくすればよい。
【0065】
最小となるxは、図11のような表を作成して算出してもよいし、以下の手法により算出してもよい。すなわち、期間T1およびxが整数でなくてもよいと仮定すると、合計期間Tは以下の(3)式で近似できる。
T = m / x + x - 1 ・・・(3)
xは正の数であるので、(3)式を最小にするxはx=√mである。よって、合計期間Tを最小にする整数xは、初期遅延段数mの平方根に近い段数であることが分かる。
【0066】
上述の手法で算出したxが複数ある場合、最も簡易に単位可変カウンタ9を構成できるxを選択してもよい。また、xを増減単位とする単位可変カウンタ9を構成すると回路規模が大きくなってしまう場合には、算出したxでなく、xに近い2(kは1以上の整数)を増減単位としてもよい。この場合でも、合計期間Tを大幅に増加させることなく、図10に示すような簡易な回路で単位可変カウンタ9を構成できる。
【0067】
このように、第3の実施形態では、単位可変カウンタ9の粗調整時の増減単位を最適な値とするため、DLL100はより短い期間でクロックINTCKXとクロックEXTCKXの位相を合わせることができる。
【0068】
(第4の実施形態)
第4の実施形態は、より簡易な回路でDLLを実現するものである。
【0069】
図12は、第4の実施形態に係るDLLの概略構成図を示す図である。図12では、図1と共通する構成部分には同一の符号を付しており、以下では相違点を中心に説明する。図12のDLL100aは、図1のDLL100における分周器8の代わりに切替機能付き分周器18を設け、単位可変カウンタ9の代わりにカウンタ(遅延制御手段)19を設けている。また、粗調整期間発生器7が生成する信号DLLFSDURは切替機能付き分周器18へ供給されている。
【0070】
図13は、切替機能付き分周器18の内部構成の一例を示す図である。図示のように、切替機能付き分周器18は、分周器8と、マルチプレキサ11とを有する。分周器8は、第1の実施形態と同じく、周波数がEXTCKの1/4の分周クロックを生成する。マルチプレキサ11は、信号DLLFSDURがハイの場合、すなわち粗調整期間内は、分周されていないクロックEXTCKXを選択し、ロウの場合、すなわち微調整期間内は、分周器8が分周した分周クロックを選択し、選択したクロックCKDEVをカウンタ19へ供給する。
【0071】
カウンタ19は、クロックCKDEVに同期して、粗調整期間であるか微調整期間であるかにかかわらず、増減単位を1として遅延段数Qを増減させる。ただし、カウンタ19は、粗調整期間では、分周されていないクロックCKDEV(第1の周期)に同期して遅延段数Qを1だけ増減させるのに対し、微調整期間では、分周されたクロックCKDEV(第2の周期)に同期して遅延段数Qを1だけ増減させる。よって、粗調整期間は微調整期間よりも4倍早く遅延段数Qが変化することになる。
【0072】
図14は、図12のDLL100aの処理動作の一例を示すタイミング図である。図14を参照しながら、DLL100aが具体的にクロックEXTCKXとクロックINTCKXの位相を合わせる処理動作を説明する。
【0073】
まず、外部から与えられるリセット信号DLLRESETが立ち上がると、リセットパルス発生器6はリセットパルス信号RESETをハイに設定する(時刻t0)。リセットパルス信号RESETがハイになると、カウンタ19は遅延段数Qを、初期遅延段数128に初期設定する。
【0074】
その後、リセットパルス発生器6が、リセットパルス信号RESETをロウに設定すると、粗調整期間発生器7は、粗調整を行うべく信号DLLFSDURをハイに設定する(時刻t1)。位相比較器5は、クロックEXTCKXとクロックINTCKXを比較し、比較結果を信号UPDOWNとしてカウンタ19に入力する。時刻t1〜t2では、信号DLLFSDURはハイなので、遅延段数Qの粗調整が行われる。具体的には、カウンタ19は、分周されていないクロックCKDEVに同期して、信号UPDOWNがハイであれば、遅延段数Qを1だけ増加させ、信号UPDOWNがロウであれば遅延段数Qを1だけ減少させる。
【0075】
上述のようにDLL100aのフィードバックループは外部クロックEXTCKの3周期以上の期間を要する。このため、遅延段数Qの増減単位が1であっても、位相比較器5が出力する信号UPDOWNは外部クロックEXTCKの3周期以上の周期で変化する。したがって、図12のDLL100aは、位相比較器5の出力が変化する周期に合わせて遅延段数Qの粗調整を行うのと同等の動作を行う。
【0076】
その後、粗調整期間発生器7は、微調整を行うべく粗調整期間信号DLLSFDURをロウに設定する(時刻t2)。これにより、カウンタ19は、分周されたクロックCKDEVに同期して、遅延段数Qを1ずつ増減させる。分周されたクロックCKDEVの周波数は、外部クロックEXTCKの1/4であるので、クロックINTCKXの遅延時間は遅延段数Qに十分追従できる。よって、DLL100aは増減単位を1とする微調整を行うことができる。
【0077】
粗調整期間は、外部から任意に設定してもよい。または、粗くロックするために必要な最大限の期間である、初期遅延段数(128)を、実際に追従する遅延段数(3)で除して小数以下を切り上げた数、つまり外部クロックEXTCKの43周期としてもよい。
【0078】
このように、カウンタ19は通常のアップダウンカウンタと同様のカウント動作を行うので、図3や図10の単位可変カウンタ9より更に簡易に構成でき、回路規模を縮小できる。
【0079】
図14は、図8と同じく遅延段数Qが211か212でロックする例を示している。粗調整期間内では、まず、カウンタ19が分周されていないクロックCKDEVに同期して遅延段数Qを1段ずつ増加させて粗調整を行う。上述したように、遅延段数Qは1段ずつ変化するが、カウントアップすべきかカウントダウンすべきかの判断は、外部クロックEXTCKの3周期以上の間隔で行うため、結果として粗調整を行うことになる。
【0080】
遅延段数Qが212になると、クロックINTCKXの位相がクロックEXTCKXより遅れる。しかし、クロックINTCKXの遅延時間は、遅延段数Qに追従できないので、遅延段数Qは215まで増加する。その後、クロックINTCKXの位相を進めるため、カウンタ19は、遅延段数Qを1段ずつ減少させる。信号DLLFSDURがロウになると、カウンタ19は、分周されたクロックCKDEVに同期して遅延段数Qを増減して微調整を行う。分周されたクロックCKDEVは周期が長いため、このクロックの1周期ごとにカウントアップすべきかカウントダウンすべきかを判断することになり、微調整が行われる。このような微調整を行うことにより、最終的には、遅延段数Qが211か212でロックされる。
【0081】
このように、第4の実施形態では、粗調整期間と微調整期間でカウンタ19に入力するクロックの周波数を切替える構成にしたため、粗調整期間と微調整期間でカウント値の増減単位を切替えなくて済む。したがって、より簡易な回路構成でDLL100aを実現できる。
【0082】
以上に説明した各実施形態では、遅延チェーン回路2の遅延時間Txを調整することにより、クロックEXTCKX(第1の信号)とクロックINTCKX(第3の信号)の位相を合わせ、外部クロックEXTCKよりも出力バッファ10の遅延時間Toutだけ位相を早めた内部クロックINTCK(第2の信号)を生成する例を示したが、DLLの用途はこれに限られず、他の目的にも適用可能である。すなわち、本発明は、第1の信号を遅延させて第2の信号を生成し、第2の信号をさらに遅延した第3の信号を生成する際、第1の信号と第3の信号の位相が一致するように制御を行う回路(DLL)に幅広く適用である。
【0083】
より具体的には、本発明に係るDLLは、少なくとも遅延チェーン回路2と、遅延複製器4と、位相比較器5と、粗調整期間発生器7と、単位可変カウンタ9と、を備えていればよい。また、単位可変カウンタ9に換えて、カウンタ19を備えていてもよい。この構成により、任意の第1の信号と、第1の信号予め定めた所定時間だけ遅延させた第3の信号の位相を合わせることができる。
【0084】
上述した各実施形態で説明したDLLは、メモリやメモリコントローラの内部に搭載可能であるだけでなく、異なる信号間の位相補償を行う必要のある種々の装置に適用可能である。
【0085】
図3〜図5、図10に示した単位可変カウンタの内部構成はあくまで一例に過ぎず、種々の変形が可能である。例えば、第1〜3の実施形態における微調整期間での遅延段数Qや、第4の実施形態における遅延段数Qの増減単位(第2の単位)は必ずしも1でなくてもよい。また、本発明に係るDLLは、半導体基板上にMOSトランジスタやバイポーラトランジスタ等を用いて形成されていてもよいし、プリント基板等にディスクリート部品を用いて実装されていてもよい。
【0086】
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれないが、本発明の態様は、上述した個々の実施形態には限定されるものではない。特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【図面の簡単な説明】
【0087】
【図1】本発明の第1の実施形態に係るDLLの概略構成を示す図。
【図2】単位遅延回路3の内部構成の一例を示す図。
【図3】単位可変カウンタ9の内部構成の一例を示す図。
【図4】カウンタユニット21の内部構成の一例を示す図。
【図5】カウント単位可変回路22の内部構成の一例を示す図。
【図6】信号DLLFSDURがハイのときの単位可変カウンタ9の出力値の一例を示す図。
【図7】外部クロックEXTCKを基準とするクロックEXTCKX,内部クロックINTCK,クロックINTCKXの位相関係を示す図。
【図8】図1のDLLの処理動作の一例を示すタイミング図。
【図9】クロックEXTCKXとクロックINTCKXがロック(安定化)している状態を示す図。
【図10】単位可変カウンタ9aの内部構成の一例を示す図
【図11】図1のDLLにおける粗調整時の増減単位と、期間T1、期間T2、合計期間Tの関係を示す図。
【図12】第4の実施形態に係るDLLの概略構成図を示す図。
【図13】切替機能付き分周器18の内部構成の一例を示す図。
【図14】図12のDLLの処理動作の一例を示すタイミング図。
【符号の説明】
【0088】
2 遅延チェーン回路(遅延時間調整手段)
4 遅延複製器(遅延手段)
5 位相比較器(位相比較手段)
7 粗調整期間発生器(調整期間設定手段)
9 単位可変カウンタ(遅延制御手段)
19 カウンタ(遅延制御手段)
21 カウンタユニット
22 カウント単位可変回路(カウント単位可変手段)
91 論理ゲート回路(クロック制御手段)

【特許請求の範囲】
【請求項1】
粗調整期間と微調整期間を設定する調整期間設定手段と、
遅延段数設定値に基づいて遅延段数を第1の単位または第2の単位で増減可能で、第1の信号を遅延させて第2の信号を生成する遅延時間調整手段と、
前記第2の信号を予め定めた所定時間だけ遅延させて第3の信号を生成する遅延手段と、
前記第1の信号と前記第3の信号との位相差を検出する位相比較手段と、
前記粗調整期間が設定された場合は前記遅延段数を前記第1の単位ずつ増減させ、前記微調整期間が設定された場合は前記遅延段数を前記第2の単位ずつ増減させるように、前記位相差に基づいて前記遅延段数設定値を生成する遅延制御手段と、を備えることを特徴とする位相補償用クロック同期回路。
【請求項2】
前記遅延制御手段は、
縦続接続された複数のカウンタユニットを有し、前記遅延段数を表すビット列の下位側を設定する第1のカウント手段と、
縦続接続された複数のカウンタユニットを有し、前記遅延段数を表すビット列の上位側を設定する第2のカウント手段と、
前記粗調整期間における前記第2のカウンタ手段の初期カウント値と前記微調整期間における前記初期カウント値とを設定するカウント単位可変手段と、を有することを特徴とする請求項1に記載の位相補償用クロック同期回路。
【請求項3】
前記カウント単位可変手段は、前記粗調整期間には前記初期カウント値として所定の値を設定し、前記微調整期間には前記第1のカウント手段の桁上がり値を前記初期カウント値として設定することを特徴とする請求項2に記載の位相補償用クロック同期回路。
【請求項4】
前記粗調整期間内に前記第1のカウント手段のカウント動作を停止させて前記第2のカウント手段のみカウント動作を行わせ、前記微調整期間内は前記第1および第2のカウント手段のカウント動作を行わせるクロック制御手段を有することを特徴とする請求項2または3に記載の位相補償用クロック同期回路。
【請求項5】
粗調整期間と微調整期間を設定する調整期間設定手段と、
遅延段数設定値に基づいて第1の信号を遅延させて第2の信号を生成する遅延時間調整手段と、
前記第2の信号を予め定めた所定時間だけ遅延させて第3の信号を生成する遅延手段と、
前記第1の信号と前記第3の信号との位相差を検出する位相比較手段と、
前記位相差に基づいて、前記粗調整期間が設定された場合は第1の周期で前記遅延段数設定値を更新し、前記微調整期間が設定された場合は前記第1の周期よりも遅い第2の周期で前記遅延段数設定値を更新する遅延制御手段と、を備えることを特徴とする位相補償用クロック同期回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−200090(P2010−200090A)
【公開日】平成22年9月9日(2010.9.9)
【国際特許分類】
【出願番号】特願2009−43813(P2009−43813)
【出願日】平成21年2月26日(2009.2.26)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】