(58)【調査した分野】(Int.Cl.,DB名)
前記メモリコントローラは、前記差動ストローブ信号のクロスポイントレベルが所定の範囲内に収まっていない場合に、前記差動ストローブ信号のクロスポイントレベルが所定の範囲内に収まるように、前記第1の位相調整回路を制御して前記差動ストローブ信号の位相関係を調整する、請求項1記載の半導体装置。
前記メモリコントローラは、前記被評価信号のそれぞれの値が一致した場合に、前記差動ストローブ信号のクロスポイントレベルが所定の範囲内に収まるように、前記差動ストローブ信号の位相関係を調整する、請求項2記載の半導体装置。
前記メモリコントローラは、前記クロスポイントレベルが所定の範囲内にない場合に、前記測定基準信号の位相を初期値にリセットした後、再度、該測定基準信号の位相を所定量ずつシフトさせる、請求項3記載の半導体装置。
前記メモリコントローラは、前記測定基準信号の位相のシフト量が所定の上限値に達した場合に、前記差動ストローブ信号の位相関係の調整を終了する、請求項4記載の半導体装置。
前記メモリコントローラは、前記差動データ信号の位相関係の調整を行う場合に、前記クロックモードが差動入力モードとなるように制御を行う、請求項8記載の半導体装置。
前記第1の位相調整回路は、前記差動ストローブ信号のうちの対応する信号の位相を所定量だけシフトすることにより、該差動ストローブ信号の位相関係を調整する、請求項1記載の半導体装置。
DRAM部と、該DRAM部の動作を制御するメモリコントローラを含むASIC部とを含んで構成される半導体装置における差動ストローブ信号のクロスポイントレベルを調整するための方法であって、
DRAM部に設けられた第1の差動入力バッファ及び第2の差動入力バッファに対して差動ストローブ信号を出力することと、
前記差動ストローブ信号の一方の信号と前記DRAM部における基準電圧とに基づいて前記第1の差動入力バッファより信号を出力するとともに、前記差動ストローブ信号の他方の信号と前記DRAM部における基準電圧とに基づいて前記第2の差動入力バッファより信号を出力することと、
測定基準信号を出力することと、
前記第1の差動入力バッファ及び前記第2の差動入力バッファのそれぞれから出力される信号と前記測定基準信号とに基づいて、被評価信号のそれぞれを生成し、出力することと、を含み、
前記メモリコントローラの制御の下、前記測定基準信号の位相を初期値から所定量ずつシフトさせながら、前記被評価信号の値に基づいて、前記差動ストローブ信号のクロスポイントレベルが所定の範囲内に収まっているか否かを判断し、該判断の結果に従って、前記差動ストローブ信号の位相関係を調整することによって、前記差動ストローブ信号のクロスポイントレベルを調整する、
方法。
【発明を実施するための形態】
【0030】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【0031】
[第1の実施形態]
図1は、本発明の一実施形態に係る半導体装置の一例を説明するブロックダイアグラムであり、特に、該半導体装置のインターフェース部分の構成の一例を示している。同図に示すように、本実施形態の半導体装置10は、DRAM部20と、ASIC部30とを含んで1つボード上に一体的に構成された電子デバイスである。或いは、半導体装置10は、DRAM部20とASIC部30とがパッケージされた電子デバイスであっても良い。DRAM部20及びASIC部30は、ボード上に配された伝送路(データバス)と接続したそれぞれのインターフェース部を介して相互に接続される(図中、全ての伝送路が図示されているわけではない。)。
【0032】
DRAM部20は、典型的には、相補ストローブ信号(差動ストローブ信号)によって動作するDDR型SDRAMである。差動ストローブ信号は、それぞれの位相が相補の関係にある一対のストローブ信号である。DRAM部20は、例えば、基準電圧V
Refを生成するための定電圧源(図示せず)をその内部に含む。本実施形態では、DRAM部20のインターフェース部は、後述するように、ASIC部30の制御の下で差動ストローブ信号のクロスポイントレベルのずれを検出するための被評価信号を生成し、該生成した被評価信号をASIC部20にフィードバックする機構を含む。
【0033】
より具体的には、DRAM部20は、そのインターフェース部において、例えば、差動IOバッファ21と、第1の差動入力バッファ22aと、第2の差動入力バッファ22bと、複数のデータIO部23a〜23cと、コントロールIO部24とを含む。これらのコンポーネント21〜24は、例えばラッチ回路25a及び25b等の他のコンポーネントを介して図示のように接続される。
【0034】
差動IOバッファ21は、入力される差動ストローブ信号を所定の係数(差動利得)で増幅する差動増幅回路である。例えば、差動IOバッファ21は、ASIC部30から差動クロック信号を受け取る場合、これを所定の差動利得で増幅して、DRAM部20の内部クロックとして出力する(図示せず)。
【0035】
第1の差動入力バッファ22aは、基準電圧V
Refと、差動IOバッファ21に入力される差動ストローブ信号のうちの一方(例えばP(正)側)の信号とによって動作する差動増幅回路である。また、第2の差動入力バッファ22bは、基準電圧V
Refと差動IOバッファ21に入力される差動ストローブ信号のうちの他方(例えばN(負)側)の信号とによって動作する差動増幅回路である。第1の差動入力バッファ22a及び第2の差動入力バッファ22bのそれぞれの出力は、ラッチ回路25a及び25bを介して、データIO部23c及び23bにそれぞれ入力される。
【0036】
複数のデータIO部23a〜23cは、ASIC部30との間でデータ信号の入出力を行うためのバッファ回路である(例えば、既知のDRAMのDQ0〜DQ2端子に対応する)。このうち、データIO部23aは、ASIC部30から後述する測定基準信号S
Refを受け取り、ラッチ回路25a及び25bに出力する。これにより、第1の差動入力バッファ22a及び第2の差動入力バッファ22bのそれぞれの出力は、測定基準信号S
Refの立ち上がりのタイミングでラッチされることになる。一方、データIO部23b及び23cは、該ラッチされた信号を受け取り、ASIC部30に被評価信号E(即ち、E
n及びE
P)として出力する。
【0037】
コントロールIO部24は、ASIC部30との間でアドレス指定信号やコントロール信号の入出力を行うためのバッファ回路である(例えば、既知のDRAMのCMD端子に対応する。)。本実施形態では、DRAM部20は、コントロールIO部24を介して受け取った所定の制御信号に基づいてモードレジスタ(
図5参照)の値を書き換える。これにより、DRAM部30は、該モードレジスタの値に従ったモードで動作することになる。本実施形態では、例えば、ノーマルモード及びキャリブレーションモードが用意されている。ノーマルモードは、DRAM部20本来のメモリ機能を提供するためのモードである。また、キャリブレーションモードは、クロスポイントレベルが適正な範囲に収まるように該クロスポイントレベルを調整するためのモードである。キャリブレーションモードは、例えば、ノーマルモードによる実行に先だって、実行される。或いは、半導体装置10の製品出荷前に実行されても良い。
【0038】
ASIC部30は、DRAM部20の動作を統括的に制御するメモリコントローラ31を含んで構成される。典型的には、ASIC部30は、メモリコントローラ31の制御の下、差動ストローブ信号を用いて、DRAM部20のメモリセルからデータの読み出し/メモリセルにデータの書き込みを行う。また、ASIC部30は、メモリコントローラ31の制御の下、メモリセルのリフレッシュ動作も行う。さらに本実施形態では、ASIC部30は、後述するように、メモリコントローラ31の制御の下、DRAM部20をキャリブレーションモードで動作させて、差動ストローブ信号に従ってDRAM部20により生成されるフィードバック信号(被評価信号E
P及びE
n)に基づいて、差動ストローブ信号のクロスポイントレベルのずれを検出し、これが適正な範囲に収まるように調整するキャリブレーションを行う。クロスポイントレベルの検出・調整は、例えば、差動ストローブ信号間の位相関係を調整、即ち、差動ストローブ信号のうちの少なくとも一方の信号の位相をシフトすることにより行われる。本実施形態では、ASIC部30のインターフェース部にキャリブレーション機能が設けられている。
【0039】
即ち、本実施形態のASIC部30のインターフェース部は、例えば、位相調整回路32a〜32cと、出力バッファ部33a及び33bと、複数のデータIO部34a〜34cと、コントロールIO部35を含んで構成される。
【0040】
位相調整回路32a〜32cは、メモリコントローラ31の制御の下、入力される信号の位相をシフトするための回路である。位相調整回路32aは、メモリコントローラ31から入力される差動ストローブ信号のうちのP側信号の位相をシフトする一方、位相調整回路32bは、N側信号の位相をシフトすることができるように、伝送路上にそれぞれ配置される。また、位相調整回路32cは、メモリコントローラ31からの測定基準信号S
Refの伝送路上に配置される。位相調整回路32a及び32bによる出力は、出力バッファ33a及び33bにそれぞれ入力され、また、位相調整回路32cによる出力は、データIO部34aに入力される。なお、位相調整回路32が伝送路上に配置されることにより、実際上、僅かな遅延が生じてしまう可能性があるが、DRAM部20に対する信号の相対的遅延が確保されれば良く、設計上、特に問題になることはない。
【0041】
出力バッファ部33a及び33bは、DRAM部20との間でデータ信号の入出力を行うためのバッファ回路である。即ち、出力バッファ部33a及び33bは、DRAM部20の差動IOバッファ21に接続される。さらに、本実施形態では、出力バッファ部33aは、第1の差動入力バッファ22aに接続され、出力バッファ部33bは、第2の差動入力バッファ22bに接続される。
【0042】
データIO部34a〜34cもまた、DRAM部20との間でデータ信号の入出力を行うためのバッファ回路である。本実施形態では、データIO部34aは、DRAM部20のデータIO部23aに接続される。また、データIO部34b及び34cは、DRAM部20のデータIO部23b及び23cにそれぞれ接続される。
【0043】
図2は、本発明の一実施形態に係る半導体装置における位相調整回路の一例を説明するためのブロックダイアグラムである。前述の位相調整回路32a〜32cはいずれも同一の構成を採用でき、例えば既知のDLL回路を用いて構成することができる。
【0044】
即ち、同図に示すように、位相調整回路32は、マスターDLL部321と、スレーブDLL部322とを含んで構成される。また、位相調整回路32は、デューティ調整部323を含んでも良い。位相調整回路32は、データ信号の立ち上がり/立ち下がりを、メモリコントローラ31から与えられる遅延設定信号に基づいて、補正パラメータ(補正信号)を用いて例えば遅延させた後、該遅延させた信号のデューティ比を調整し、出力する。データ信号は、例えばDRAM部20に供給されるべき差動クロック信号を構成する一方の信号である。或いは、DRAM部20のDQ端子に入力される差動データストローブ信号であっても良い。
【0045】
より具体的には、マスターDLL部321は、例えば可変遅延セルを含んで構成され、入力される基準クロックに同期した所定の位相分だけ遅延した補正信号を生成し、スレーブDLL部322に出力する。所定の位相分は、例えばデータ信号の1周期に対する可変遅延セルの段数により決定される。換言すれば、位相調整回路32の最小分解能は可変遅延セルの性能に依存しうる。スレーブDLL部322は、例えば可変遅延セルを含んで構成され、該補正信号とメモリコントローラ31から与えられる遅延設定信号とに基づいて決定される可変遅延セルの段数に従ってデータ信号を遅延させ、位相調整された信号としてデューティ調整部323に出力する。メモリコントローラ31は、例えば、初期値に対してどれだけ位相を遅延させたかを記録する内部レジスタを備える。
【0046】
上記では、データ信号の立ち上がり/立ち下がりの組に対して時間的にずらす位相調整回路32の例を説明したが、これに限られるものではない。他の例として、位相調整回路32は、データ信号の立ち上がり/立ち下がりのそれぞれを独立に遅延させる構成であっても良い。この場合には、例えばスレーブDLL部322は、立ち上がり遅延設定信号及び立ち下がり遅延設定信号をそれぞれ受け取り、データ信号の立ち上がり及び立ち下がりのそれぞれについて位相をずらすように構成される。
【0047】
さらに、位相調整回路32は、多相クロック選択方式により入力信号の立ち上がり/立ち下がりを遅延させる構成であっても良い。かかる位相調整回路32は、例えば、基準クロックに対して2倍の周波数を有する12相クロックについて、出力されるべき位相クロックをマルチプレクサにより選択することにより、データ信号の位相を調整する。この場合もまた、位相調整回路32は、データ信号の立ち上がり/立ち下がりを独立に遅延させるように構成されても良い。
【0048】
なお、差動ストローブ信号に対する位相調整回路32a及び32bの最小分解能をそれぞれ異ならせることによって、より小さな分解能が得られる。例えば、位相調整回路32aの最小分解能が10ピコ秒で位相調整回路32bのそれが15ピコ秒である場合、位相調整回路32a及び32bの双方を用いて位相をシフトさせることで、位相関係は5ピコ秒単位で調整が可能になる。
【0049】
図3A乃至
図3Eは、本発明の一実施形態に係る半導体装置におけるキャリブレーションモードでの動作を概略的に説明するためのフローチャートである。
【0050】
同
図Aに示すように、まず、ASIC部30は、DRAM部20に対してキャリブレーションモード実行コマンドに従う制御信号を出力し、これを受けて、DRAM部20のモードレジスタが書き換えられ、DRAM部20はキャリブレーションモードに移行する(S301A)。
【0051】
次に、ASIC部30は、メモリコントローラ31の制御の下、差動クロック信号CLKのクロスポイントに対する、測定基準信号S
Refの測定範囲を決定する(S302A〜S305A)。
【0052】
具体的には、ASIC部30は、例えばメモリコントローラ31の内部レジスタに格納されている値に基づいて、測定基準信号S
Refの測定範囲を取得するか否かを判断する(S302A)。ASIC部30は、内部レジスタに格納されている値に基づいて、測定基準信号S
Refの測定範囲を取得すると判断する場合(S302AのYes)、差動クロック信号CLKと測定基準信号S
Refとの位相関係を測定する(S303A)。差動クロック信号CLKと測定基準信号S
Refとの位相関係の測定は、例えば差動クロック信号CLKのクロスポイントに対して、測定基準信号S
Refのストローブ位置を所定量ずつシフトさせながら、被評価信号Eの値を参照することにより行われる。該位相関係の測定処理の詳細については、
図3Bを参照して説明される。次に、ASIC部30は、該測定された位相関係に従って測定基準信号S
Refの測定範囲を決定する(S304A)。つまり、ASIC部30は、位相関係を測定した結果得られる位相シフト量に基づく位相を基準に、所定量早めた位相から所定量遅延させた位相までを、測定基準信号S
Refの測定範囲として決定する(S304A)。これに対して、ASIC部30は、メモリコントローラ31の内部レジスタに予め格納されている値に基づいて、測定基準信号S
Refの測定範囲を取得しないと判断する場合(S302AのNo)、予め定められた範囲を、測定基準信号S
Refの測定範囲として決定する(S305A)。決定された測定基準信号S
Refの測定範囲は、例えばメモリコントローラ31の内部レジスタに格納される。
【0053】
次に、ASIC部30は、差動クロック信号CLKのクロスポイントレベルのキャリブレーション処理を実行する(S306A〜S309A)。キャリブレーション処理は、例えば、内部レジスタに予め格納されている値に従って、差動クロック信号CLKの立ち上がりエッジ及び/又は及び立ち下がりエッジに対して行うか否かが判断される。キャリブレーション処理の詳細については、
図3C〜
図3Eを参照して説明される。
【0054】
図3Bは、本発明の一実施形態に係る半導体装置におけるキャリブレーションモードでの動作を概略的に説明するためのフローチャートであり、
図3AにおけるステップS303Aの処理の詳細を示している。
【0055】
同図を参照して、ASIC部30は、まず、差動クロック信号CLKの出力を開始し(S301B)、続いて、現在の位相シフト量に従って測定基準信号S
Refを出力する(S302B)。位相シフト量は、例えば初期値が0に設定されている。DRAM部20では、第1の差動入力バッファ22aが、基準電圧V
Refと差動クロック信号CLKのうちのP側信号CLK
Pとに基づく差動増幅信号CLK
P-diffをラッチ回路25aに出力し、ラッチ回路25aは、測定基準信号S
Refの立ち上がりのタイミングで該差動増幅信号CLK
P-diffをラッチする。ラッチされた差動増幅信号CLK
P-diffは、データIO部23cを介して、ASIC部20に被評価信号E
Pとしてフィードバックされる。同様に、第2の差動入力バッファ22bが、基準電圧V
Refと差動クロック信号CLKのうちのN側信号CLK
Nとに基づく差動増幅信号CLK
N-diffをラッチ回路25bに出力し、ラッチ回路25bは、測定基準信号S
Refの立ち上がりのタイミングで該差動増幅信号CLK
N-diffをラッチする。ラッチされた差動増幅信号CLK
N-diffは、データIO部23bを介して、ASIC部20に被評価信号E
nとしてフィードバックされる。
【0056】
かかる状態において、ASIC部30は、被評価信号E
P=「L」かつE
n=「H」であるか否かを判断する(S303B)。つまり、被評価信号E
P=「L」かつE
n=「H」の場合、測定基準信号S
Refのストローブ位置が、差動クロック信号CLKのクロスポイントよりも時間的に前にあることを意味する。ASIC部30は、被評価信号E
P=「L」かつE
n=「H」でないと判断する場合、測定基準信号S
Refの出力位置を所定量ずつ前にシフトさせながら、差動クロック信号CLKのクロスポイントよりも時間的に前に来るように調整する(S304B)。測定基準信号S
Refのストローブ位置は、例えばメモリコントローラ部31の内部レジスタに格納される。ASIC部30は、信号品質の安定性の観点から、典型的には、該被評価信号E
P及びE
nを受け取ってから所定の時間(例えば数ナノ〜数十ナノ秒程度)経過後にチェックする。
【0057】
測定基準信号S
Refのストローブ位置が差動クロック信号CLKのクロスポイントよりも時間的に前に調整された後、ASIC部30は、差動クロックCLKのクロスポイントに対して測定基準信号S
Refのストローブ位置が略一致するように、該出力開始位置をシフトさせる(S305B〜S307B)。
【0058】
即ち、ASIC部30は、測定基準信号S
Refの出力を開始し、上述したように、フィードバックされる被評価信号E
P及びE
nを受け取る。ASIC部30は、ASIC部30は、被評価信号E
P=「L」かつE
n=「H」であるか否かを判断する(S306B)。
【0059】
ASIC部30は、被評価信号E
P=「L」かつE
n=「H」であると判断する場合(S306BのYes)、測定基準信号S
Refのストローブ位置を所定量だけ後ろにシフトし(S307B)、ステップS305Bに戻り、ストローブ位置をシフトさせた測定基準信号S
Refに基づいてフィードバックされる被評価信号E
P及びE
nについて、同様に、チェックを行う。
【0060】
一方、ASIC部30は、被評価信号E
P=「L」かつE
n=「H」でないと判断する場合(S306BのNo)、測定基準信号S
Refのストローブ位置と差動クロックCLKのクロスポイントとが略一致したとみなし、測定基準信号S
Refの位相シフト量をメモリコントローラ部31の内部レジスタに保存する(S308B)。このようにして、差動クロック信号CLKと測定基準信号S
Refとの位相関係を測定する処理は終了する。
【0061】
上述した、差動クロック信号CLKと測定基準信号S
Refとの位相関係を測定する処理は、差動クロック信号CLKの立ち上がりエッジのキャリブレーションに対応しており、該信号の立ち下がりエッジのキャリブレーションには対応していない。該信号の立ち下がりエッジのキャリブレーションに対する該処理は、上述した差動クロック信号CLKの立ち上がり時のキャリブレーションに対応する該処理の結果を元に算出しても良いし、別途類似の処理を行っても良い。
【0062】
図3C乃至
図3Eは、本発明の一実施形態に係る半導体装置におけるキャリブレーションモードでの動作を概略的に説明するためのフローチャートであり、
図3AにおけるステップS306A及びS308Aの詳細を示している。
【0063】
同図を参照して、ASIC部30は、まず、差動クロック信号CLKの出力を開始する(S301C)。次に、ASIC部30は、後述する処理A及び処理Bをそれぞれ1回以上行ったか否かをチェックする(S302C)。ASIC部30は、処理A及び処理Bの少なくともいずれかを1回以上行っていないと判断する場合(S302CのNo)、測定基準信号S
Refの出力を開始し、フィードバックされる被評価信号E
P及びE
nを受け取る(S303C)。
【0064】
かかる状態で、ASIC部30は、被評価信号E
Pの値とE
nの値とが一致しないと判断する場合(S304CのNo)、測定基準信号S
Refのストローブ位置を所定量だけシフトさせ、これを出力するとともに(S305C)、これまでの総位相シフト量が所定の上限値を超えているか否かをチェックする(S306C)。ASIC部30は、測定基準信号S
Refの総位相シフト量が、決定された測定範囲を超えていないと判断する場合(S306CのNo)、ステップS302Cの処理に戻る。即ち、ASIC部30は、所定のシフト量だけ位相を遅延させた測定基準信号S
Refに基づいてフィードバックされる被評価信号E
P及びE
nについて、同様に、チェックを行う。
【0065】
一方、ASIC部30は、被評価信号E
Pの値とE
nの値とが一致すると判断する場合(S304CのYes)、差動クロック信号CLKのクロスポイントレベルが適正範囲に収まっていないとみなされるため、差動クロック信号CLK
PとCLK
Nとの間の位相関係を調整する(S307C〜S310C)。
【0066】
即ち、ASIC部30は、被評価信号E
P=「H」かつE
n=「H」であるか否かを判断する(S307C)。ASIC部30は、被評価信号E
P=「H」かつE
n=「H」であると判断する場合(S307CのYes)、差動クロック信号CLKのクロスポイントレベルを低下させるように、差動クロック信号CLK
PとCLK
Nとの間の位相関係を調整する(処理A:S308C)。
【0067】
即ち、同
図3Dに示すように、ASIC部30は、メモリコントロール部31の制御に基づいて、キャリブレーションモードが立ち上がり時であるか否かを判断する(S301D)。ASIC部30は、キャリブレーションモードが立ち上がりエッジ時のモードであると判断した場合(S301DのYes)、差動クロック信号の一方の信号の立ち上がり位置に対して、他方の信号の立ち下がり位置を早める(S302D)。具体的には、ASIC部30は、例えば差動クロック信号CLK
Pの立ち上がり位置を所定量だけ遅らせる。或いは、差動クロック信号CLK
Nの立ち下がり位置を所定量だけ早めるようにしても良い。さらには、差動クロック信号CLK
Pの立ち上がり位置を所定量だけ遅らせるとともに、差動クロック信号CLK
Nの立ち下がり位置を所定量だけ早めるようにしても良い。
【0068】
一方、ASIC部30は、キャリブレーションモードが立ち上がりエッジ時のモードでないと判断した場合(S301DのNo)、差動クロック信号の一方の信号の立ち下がり位置に対して、他方の信号の立ち上がり位置を遅らせる(S303D)。具体的には、ASIC部30は、例えば差動クロック信号CLK
Pの立ち下がり位置を所定量だけ早める。或いは、又は差動クロック信号CLK
Nの立ち上がり位置を所定量だけ遅らせるようにしても良い。さらには、差動クロック信号CLK
Pの立ち上がり位置を所定量だけ早めるとともに、差動クロック信号CLK
Nの立ち下がり位置を所定量だけ遅らせるようにしても良い。
【0069】
図3Cに戻り、一方、ASIC部30は、被評価信号E
P=「H」かつE
n=「H」でないと判断する場合(S307CのNo)、差動クロック信号CLKのクロスポイントレベルを上昇させるように、差動クロック信号CLK
PとCLK
Nとの間の位相関係を調整する(処理B:S309C)。
【0070】
即ち、同
図3Eに示すように、ASIC部30は、メモリコントロール部31の制御に基づいて、キャリブレーションモードが立ち上がり時であるか否かを判断する(S301E)。ASIC部30は、キャリブレーションモードが立ち上がりエッジ時のモードであると判断した場合(S301EのYes)、差動クロック信号の一方の信号の立ち上がり位置に対して、他方の信号の立ち下がり位置を遅らせる(S302E)。より具体的には、ASIC部30は、例えば差動クロック信号CLK
Pの立ち上がり位置を所定量だけ進める。或いは、差動クロック信号CLK
Nの立ち下がり位置を所定量だけ遅らせるようにしても良い。さらには、差動クロック信号CLK
Pの立ち上がり位置を所定量だけ進めるとともに、差動クロック信号CLK
Nの立ち下がり位置を所定量だけ遅らせるようにしても良い。
【0071】
一方、ASIC部30は、キャリブレーションモードが立ち上がりエッジ時のモードでないと判断した場合(S301EのNo)、差動クロック信号の一方の信号の立ち下がり位置に対して、他方の信号の立ち上がり位置を早める(S303E)。具体的には、ASIC部30は、例えば差動クロック信号CLK
Pの立ち下がり位置を所定量だけ遅らせる。或いは、又は差動クロック信号CLK
Nの立ち上がり位置を所定量だけ進めるようにしても良い。さらには、差動クロック信号CLK
Pの立ち上がり位置を所定量だけ遅らせるとともに、差動クロック信号CLK
Nの立ち下がり位置を所定量だけ進めるようにしても良い。
【0072】
図3Cに戻り、ASIC部30は、差動クロック信号CLKのクロスポイントレベルの調整の処理(S308C:処理A、又はS309C:処理B)を行った後、測定基準信号S
Refの位相シフト量を初期値に戻すためリセットし、または所定量だけシフト量を巻き戻し(S310C)、位相の調整を行った差動クロック信号CLKのクロスポイントレベルのずれを同様にチェックするため、ステップS302Cの処理に戻る。
【0073】
ASIC部30は、以上の処理を繰り返しながら、キャリブレーション対象の差動クロック信号CLKのクロスポイントレベルのずれを検出、調整する。ASIC部30は、例えば測定基準信号S
Refの位相のシフト量の分解能などの要因で該レベルを適正な範囲に収めることができないと判断する場合(S302CのYes)、又は被評価信号E
P及びE
nどうしの値が一致せず(S304CのNo)、測定基準信号位相S
Refの総シフト量が所定の上限値を超えていると判断する場合(SS06CのYes)、該レベルのずれがないものとして、キャリブレーションモードを終了する。
【0074】
図4は、本発明の一実施形態に係る半導体装置におけるキャリブレーションモード動作時の信号のタイミングチャートの一例を示す。
【0075】
即ち、同図は、図中左側に示されたある時点T
1において、差動クロック信号CLK
P及びCLK
Nに対する被評価信号E
P及びE
nの値はそれぞれ、「L」及び「H」であることを示している。従って、時点T
1においては、被評価信号E
P及びE
nの値は一致していないので、ASIC部30は、測定基準信号S
Refの位相を所定量だけシフトし、同様に、被評価信号E
P及びE
nの値を比較する。図中右側に示されたある時点T
n(即ち、該シフトが所定回数行われた時点)においては、差動クロック信号CLK
P及びCLK
Nに対する被評価信号E
P及びE
nの値はそれぞれ、「H」及び「H」である。従って、時点Tnにおいては、被評価信号E
P及びE
nの値は一致しているので、ASIC部30は、差動クロック信号CLK
P及びCLK
NのクロスポイントレベルがV
refから所定範囲にないことを検出する。ASIC部30は、クロスポイントレベルがV
refから所定範囲にないことを検出すると、差動クロック信号CLK
P及びCLK
Nのうちの少なくとも一方の位相を所定量だけシフトさせ、同様のチェックを繰り返す。
【0076】
なお、本実施形態において、ASIC部30は、位相調整回路32a及び32bを含んでいるが、差動クロック信号の位相関係を調整する観点から、どちらか一方を省略するように構成されても良い。ただし、一方の位相調整回路32の省略による伝送路間の不整合を回避するため、一方の伝送路上にダミーの遅延回路が設けられても良い。また、上述したように、位相調整回路32a及び32bの最小分解能の差を用いて、より小さな分解能で位相量を調整できるようにしても良い。
【0077】
[第2の実施形態]
本実施形態は、上記第1の実施形態の変形であり、DRAM部20に対する差動ストローブ信号のうち、差動クロック信号CLK及び差動データストローブ信号DQSのクロスポイントレベルを調整する例を開示する。
【0078】
図5は、本発明の第2の実施形態に係る半導体装置の一例を説明するブロックダイアグラムである。同図から明らかなように、本実施形態の半導体装置10は、
図1に示した半導体装置10に対して、差動データストローブ信号DQSに対するキャリブレーション機構を追加した点が異なっている。同図において、
図1に示した構成要素と同様のものについては、同様の符号を付し、適宜、その説明を省略する。
【0079】
即ち、同図に示すように、本実施形態のDRAM部20は、差動データストローブ信号DQSに対するキャリブレーションのための差動IOバッファ21と、第1の差動入力バッファ22a及び第2の差動入力バッファ22bとをさらに含んで構成される。また、DRAM部20は、モードレジスタ26を含んでいる。さらに、DRAM部20には、キャリブレーションを行う信号を選択できるよう、マルチプレクサ27a〜27eが設けられている。ASIC部30も同様に、位相調整回路32d及び32eと、データバッファ33d及33e(符号33cは使用せず)とをさらに含んで構成される。本実施形態のDRAM部20は、クロックモードとして、シングルエンド入力モードと差動モードとが備えられているものとする。クロックモードの選択は、例えばASIC部20からのコマンドに基づく制御信号によって行われる。即ち、DRAM部20内のモードレジスタ26をCK_SEL=0とすることにより、DRAM部20のクロックモードは、シングルエンド入力モードとなる。
【0080】
次に、
図5に示した本実施形態の半導体装置10におけるキャリブレーション動作を、
図6〜
図8を参照しつつ説明する。
【0081】
図6は、本発明の一実施形態に係る半導体装置におけるキャリブレーションモードでの動作を概略的に説明するためのフローチャートである。
【0082】
図.5の、半導体装置10は、電源が供給されると、ASIC部30が起動し、ASIC部30は、DRAM部20のクロックモードをシングルエンド入力モードに設定するとともに(S601)、ASIC部30が出力する差動クロック信号CLKの周波数を低速に設定する(S602)。上述したように、DRAM部20内のモードレジスタ26をCK_SEL=0とすることにより、DRAM部20のクロックモードは、シングルエンド入力モードとなる。
【0083】
次に、ASIC部30は、差動クロック信号CLKのキャリブレーションを行うよう、DRAM部20に対して制御信号を出力する。これを受けて、DRAM部20のモードレジスタ26は、Out_data_sel=1、かつ、Out_mode_sel=1となり、DRAM部20は、測定基準信号S
Refに従って、差動クロック信号CLK
P及びCLK
Nに対応する被評価信号E
P及びE
nを、非同期に、データIO部23c及び23bから出力するパスが構築される。これにより、ASIC部30は、差動クロック信号CLK
P及びCLK
Nに対するキャリブレーションを行う(S603)。キャリブレーションは、
図3Aに示したステップに従って行われる。即ち、上述したように、ASIC部30は、例えば
図7や
図8に示すように、測定基準信号S
Refの位相を所定量だけシフトしていくことにより、クロスポイントレベルのずれをスキャンし、被評価信号E
P及びE
nの値を得る。即ち、
図7の中央部は、被評価信号E
P及びE
nの両方の値が「H」であるため、ASIC部30は、クロスポイントレベルが基準電圧V
Refよりも高いと判断する例を示し、また、
図8の中央部は、被評価信号E
P及びE
nの両方の値が「L」であるため、ASIC部30は、クロスポイントレベルが基準電圧V
Refよりも低いと判断する例を示している。これにより、ASIC部30は、差動クロック信号CLK
P及びCLK
Nの位相関係を調整し、同様に、クロスポイントレベルのずれをスキャンする。
【0084】
図6に戻り、差動クロック信号CLKに対するキャリブレーションが終了すると、ASIC部30は、次に、差動データストローブ信号DQSに対するキャリブレーションを行うため、DRAM部20のクロックモードを差動入力モードに設定するとともに(S604)、ASIC部30が出力する差動クロック信号CLKの周波数を通常速モードに設定する(S605)。即ち、モードレジスタ26をCK_SEL=1とすることにより、DRAM部20のクロックモードは、差動入力モードとなる。また、周波数の変更は、例えば、DDR3型SDRAMにおける“Input clock frequency change”の手順に従って行われても良い。この手順では、一度、クロックイネーブル信号CKEの値が「L」に設定された後、「H」に設定されることにより、新しい周波数で動作するようになっている。
【0085】
続いて、ASIC部30は、差動データストローブ信号DQSのキャリブレーションを行うよう、DRAM部20に対して制御信号を出力する。これを受けて、DRAM部20のモードレジスタ26は、Out_data_sel=0、かつ、Out_mode_sel=0となり、DRAM部20は、測定基準信号S
Refに従って、差動データストローブ信号DQS
P及びDQS
Nに対応する被評価信号E
P及びE
nを、非同期に、データIO部23c及び23bから出力するパスが構築される。これにより、ASIC部30は、差動データストローブ信号DQS
P及びDQS
Nに対するキャリブレーションを行う(S606)。なお、差動データストローブ信号DQS
P及びDQS
Nに対するキャリブレーションは、差動クロック信号CLK
P及びCLK
Nの場合と同様であるので、その説明を省略する。
【0086】
以上のように、本実施形態によれば、ASIC部30が、測定基準信号S
Refの位相を所定量だけ順次にシフトしていき、差動ストローブ信号のクロスポイントレベルが設定可能な範囲での最適値に収まっているか否かをチェックし、該範囲に収まっていないと判断する場合に、差動ストローブ信号間の位相関係を調整するので、差動ストローブ信号のクロスポイントレベルが、設定可能な範囲での最適値に収まるように調整することができるようになる。
【0087】
また、本実施形態によれば、キャリブレーションを行う差動ストローブ信号が選択可能に構成されているので、差動クロック信号CLK及び差動データストローブ信号DQSを順番にキャリブレーションすることができる。
【0088】
[第3の実施形態]
本実施形態は、第1の差動入力バッファ22a及び第2の差動入力バッファ22bの代わりに、差動IOバッファ21‘を用いてキャリブレーションを行う半導体装置10’の例を開示する。
【0089】
図9は、本発明の第3の実施形態に係る半導体装置の一例を説明するブロックダイアグラムである。同図に示すように、本実施形態の半導体装置10’は、上記第1又は第2の実施形態において示された半導体装置10に対して、第1の差動入力バッファ22a及び第2の差動入力バッファ22bが省略されている。また、第2の実施形態に比較して、データIO部23bに対するマルチセレクタ27b及び27cが省略されている。
【0090】
さらに、本実施形態では、DRAM部20における差動クロック信号CLK用の差動IOバッファ21’は、モードレジスタ26のIO_mode_sel[1:0」の切り替えにより、3つのモード、即ち、基準電圧V
Refに対する差動ストローブ信号(例えば差動クロック信号CLK
P)を出力する第1のモード、基準電圧V
Refに対する差動ストローブ信号(例えば差動クロック信号CLK
N)を出力する第2のモード、及び通常の差動モード(第3のモード)で動作可能に構成される。
【0091】
このように構成された半導体装置10’において、ASIC部30は、まず、第1のモードで差動IOバッファ21’を動作させ、測定基準信号S
Refを出力する。これにより、DRAM部20は、基準電圧V
Refに対する差動クロック信号CLK
Pに対応する被評価信号E
Pを出力する。ASIC部30は、測定基準信号S
Refの位相を所定量ずつシフトさせながら、該被評価信号E
Pの値を記録する。
図10(a)は、このようにして得られた被評価信号CLK
Pの値を記録したテーブルの一例を示す図である。
【0092】
続いて、ASIC部30は、第2のモードで差動IOバッファ21’を動作させ、測定基準信号S
Refを出力する。これにより、DRAM部20は、基準電圧V
Refに対する差動クロック信号CLK
Nに対応する被評価信号E
nを出力する。ASIC部30は、測定基準信号S
Refの位相を所定量ずつシフトさせながら、該被評価信号E
Pの値を記録する。
図10(b)は、このようにして得られた被評価信号CLK
Nの値を記録したテーブルの一例を示す図である。
【0093】
次に、ACIC部30は、該テーブルを参照し、同じ位相シフト量の測定基準信号S
Refについて、被評価信号CLK
P及びCLK
Nの値が「H」及び「H」又は「L」及び「L」となっているレコードがあるか否かを判断し、そのようなレコードがあると判断する場合に、クロスポイントレベルにずれがあると判断する。本例では、図(a)及び(b)に示すように、5番目の被評価信号E
P及びE
nの値がともに「H」となっている。従って、ASIC部30は、差動クロック信号CLK
P及びCLK
Nにクロスポイントレベルのずれがあると判断し、上記実施形態と同様に、差動クロック信号CLKの位相関係を調整する。
【0094】
要するに、本実施形態では、半導体装置10’は、差動IOバッファ21’を第1のモード及び第2のモードで順番に動作させて、それぞれの評価結果を照合することにより、クロスポイントレベルのずれを検出する。ASIC部30は、クロスポイントレベルのずれを検出した場合には、差動クロック信号CLKの位相関係を調整、即ち、差動クロック信号CLKのうちの少なくとも一方の信号(例えば差動クロック信号CLK
P)の位相をシフトし、同様に、クロスポイントレベルのずれがあるか否かをチェックする。
【0095】
なお、ここでは、差動クロック信号CLKについてのクロスポイントレベルのずれを調整する例が説明されたが、差動データストローブ信号DQSについても、同様に、行われる。
【0096】
以上のように、本実施形態によれば、半導体装置10’は、第1差動入力バッファ22a及び第2の差動入力バッファ22bを用いずとも、基準電圧V
Refに対して差動ストローブ信号を片方ずつ順番に測定することによって、同様に被評価信号E
P及びE
nを収集することができ、その結果、クロスポイントレベルのずれを検出することができるようになる。従って、半導体装置10’は、検出されたクロスポイントレベルのずれに基づき、差動ストローブ信号間の位相関係を調整することで、差動ストローブ信号のクロスポイントレベルが適正範囲に収まるように調整することができるようになる。
【0097】
[第4の実施形態]
本実施形態もまた、第1の差動入力バッファ22a及び第2の差動入力バッファ22bの代わりに、差動IOバッファ21を用いてキャリブレーションを行う半導体装置10’’の例を開示する。
【0098】
図11は、本発明の第4の実施形態に係る半導体装置の一例を説明するブロックダイアグラムである。同図に示すように、本実施形態の半導体装置10’’は、上記第3の実施形態のものと略同様の構成であり、基準電圧V
Refに関する構成が異なっている。即ち、本実施形態では、半導体装置10’’は、ASIC部30が、キャリブレーションモード時に、差動ストローブ信号の伝送路のうちの一方に基準電圧V
Refを出力するように構成される。
【0099】
このように構成された半導体装置10’’では、ASIC部30は、まず、第1のモードで差動IOバッファ21’’を動作させる。即ち、ASIC部30は、差動クロック信号CLK
Pを出力するとともに、差動クロック信号CLK
Nの伝送路を用いて、基準電圧V
Refを出力し、さらに、測定基準信号S
Refを出力する。これにより、DRAM部20は、基準電圧V
Refに対する差動クロック信号CLK
Pに対応する被評価信号E
Pを出力する。そして、ASIC部30は、測定基準信号S
Refの位相を所定量ずつシフトさせながら、該被評価信号E
Pの値を記録する。
【0100】
続いて、ASIC部30は、第2のモードで差動IOバッファ21’’を動作させる。即ち、ASIC部30は、今度は、差動クロック信号CLK
Nを出力するとともに、差動クロック信号CLK
Nの伝送路を用いて、基準電圧V
Refを出力し、さらに、測定基準信号S
Refを出力する。これにより、DRAM部20は、基準電圧V
Refに対する差動クロック信号CLK
Nに対応する被評価信号E
nを出力する。ASIC部30は、測定基準信号S
Refの位相を所定量ずつシフトさせながら、該被評価信号E
Pの値を記録する。
【0101】
次に、ACIC部30は、テーブルを参照し、同じ位相の測定基準信号S
Refについて、被評価信号CLK
P及びCLK
Nの値が「H」及び「H」又は「L」及び「L」となっているレコードがあるか否かを判断し、そのようなレコードがあると判断する場合に、クロスポイントにずれがあると判断する。ASIC部30は、差動クロック信号CLK
P及びCLK
Nにクロスポイントレベルのずれがあると判断し、上記実施形態と同様に、差動クロック信号CLKの位相関係を調整する。
【0102】
以上のように、本実施形態によれば、半導体装置10’’は、第1差動入力バッファ22a及び第2の差動入力バッファ22bを用いずとも、基準電圧V
Refに対して差動ストローブ信号を片方ずつ順番に測定することによって、同様に被評価信号E
P及びE
nを収集することができ、その結果、クロスポイントレベルのずれを検出することができるようになる。従って、半導体装置10’’は、検出されたクロスポイントレベルのずれに基づき、差動ストローブ信号間の位相関係を調整することで、差動ストローブ信号のクロスポイントレベルが適正範囲に収まるように調整することができるようになる。
【0103】
[第5の実施形態]
本実施形態は、半導体装置における複数の差動ストローブ信号(例えば、CLK、DQS0〜DQS8)に対するキャリブレーション(クロスポイントレベルのずれ調整)技術を開示する。
【0104】
一般に、半導体装置では、1〜3個程度の差動クロック信号端子と、1〜9個程度の差動データストローブ信号端子を持つように設計されることが多いが、それ以上の端子を持つように設計されることもある。従って、全ての信号について、クロスポイントレベルの検出/位相調整を一から行っていたのでは、キャリブレーション処理に時間がかかるおそれがある。一方で、半導体装置を成すいわゆるICチップには、製品特性上、チップ間ばらつきとチップ内ばらつきという概念があり、チップ間ばらつきの方がチップ内ばらつきよりも大きい傾向にあることが知られている。つまり、1つのICチップでは、個々の素子特性は似通った特性になり易いと言える。さらに、チップ内ばらつきは、ICチップ内のレイアウトに依存する傾向があり、距離的に近い素子は似通った特性になり易いと言える。
【0105】
そこで、本実施形態は、かかるICチップの特性を考慮した、半導体装置10における複数の差動ストローブ信号に対するキャリブレーション(クロスポイントレベルのずれ調整)技術により、キャリブレーションに要する時間を短縮できるようにする。
【0106】
本実施形態の半導体装置10は、上述した構成のものをそのまま用いることができるが、ASIC部30のメモリコントローラ31は、例えば、キャリブレーション対象である信号の検出したクロスポイントレベルに対して位相関係を調整した回数(位相シフト量)を内部レジスタに記録しておき、該位相シフト量に基づいて、次のキャリブレーション対象である信号に対する位相シフト量の初期値を決定する。
【0107】
例えば、ASIC部30は、ある差動ストローブ信号に対して、例えば
図12に示すようなキャリブレーション処理の結果が得られたとする。即ち、同図において、左欄の「位相関係の調整回数」は、クロスポイントレベルのずれの検出による該差動ストローブ信号の位相関係の調整回数を示し、右欄の「調整後のクロスポイントレベル」は、位相関係調整後の基準電圧V
Refに対するクロスポイントレベルを示し、「H」は、クロスポイントレベルが基準電圧V
Refに対して所定の適正範囲よりも高いことを示す。本例では、最初のクロスポイントレベルのずれを検出後(0回目)、クロスポイントレベルを下げるための位相調整が7回行われたことを示している。従って、ASIC部30は、7回目の位相関係の調整後、クロスポイントレベルが「L」を示したため、位相調整回数の最適値は、6回目又は7回目であると判断する。これによりASIC部30は、例えば位相調整回数が6回に対応する位相シフト量を、次の差動ストローブ信号に対するキャリブレーションにおける位相調整の初期値として用いる。なお、本例のように最適値をそのまま次のキャリブレーションの初期値として用いるのでなく、例えば、最適値の1乃至は数回前をキャリブレーションの初期値として用いるようにしても良い。
【0108】
以上のように、本実施形態によれば、差動ストローブ信号に対するキャリブレーションにおいて、位相シフト量の初期値を前回のキャリブレーションで検出した位相シフト量に基づいて決定し、これに基づいて位相調整を行うので、位相調整の回数を減らせる可能性が高くなり、従って、キャリブレーション時間を短縮することができるようになる。
【0109】
なお、上記の例は、差動ストローブ信号の位相シフト量の調整に適用したが、例えば、クロスポイントレベルのずれを検出するための測定基準信号S
Refの位相のシフト量の調整に適用することもできる。つまり、ASIC部30は、クロスポイントレベルのずれを検出したときの測定基準信号S
Refの位相のシフト回数(位相シフト量)を内部レジスタに記録しておき、差動ストローブ信号の位相関係の調整後のスキャンを該記録したシフト回数に基づく初期値から行うようにして良い。
【0110】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
【0111】
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
【0112】
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を、適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。