トップ :: H 電気 :: H03 基本電子回路

【発明の名称】 位相調整回路
【発明者】 【氏名】飯田 実俊

【要約】 【課題】システム高負荷動作中等における急激なPVT特性の変化による遅延量の変化に対応可能とする。

【構成】外部記憶手段とライトおよび/またはリードアクセスする際に、入力クロック信号の位相を調整して入力クロック信号に対して遅延された出力クロック信号を供給するクロック遅延調整回路100を利用して、外部回路から供給されるデータ信号およびデータストローブ信号の位相を調整する位相調整回路において、ライトデータおよび/またはリードデータを書き込む内部記憶手段と、ライトおよび/またはリードアクセスする際のタイミングマージンが確保されたときのクロック遅延調整回路の遅延パラメータの値を記録する内部記憶手段と、タイミングマージンの最適値を算出する最適値算出手段と、タイミングマージンの最適値を記録する最適値記憶手段と、を備えることを特徴とする。
【特許請求の範囲】
【請求項1】
外部記憶手段とライトおよび/またはリードアクセスする際に、入力クロック信号の位相を調整して前記入力クロック信号に対して遅延された出力クロック信号を供給するクロック遅延調整回路を利用して、外部回路から供給されるデータ信号およびデータストローブ信号の位相を調整する位相調整回路において、
ライトデータおよび/またはリードデータを書き込む内部記憶手段と、
前記ライトおよび/またはリードアクセスする際のタイミングマージンが確保されたときの前記クロック遅延調整回路の遅延量を調整する遅延パラメータの値を記録する内部記憶手段と、
前記タイミングマージンの最適値を算出する最適値算出手段と、
前記タイミングマージンの最適値を記録する最適値記憶手段と、を備えることを特徴とする位相調整回路。
【請求項2】
前記位相調整回路は、
前記出力クロック信号の遅延量を設定するカウンタ値の変化を検出するカウンタ値検出手段と、
前記遅延パラメータと前記タイミングマージンの最適値との比較を行う比較実行手段と、
前記遅延パラメータと前記タイミングマージンの最適値との差分が大きい場合に、前記遅延パラメータを前記タイミングマージン最適値に設定する手段と、
を備えることを特徴とする請求項1に記載の位相調整回路。
【請求項3】
前記タイミングマージン最適値は、前記遅延パラメータの最大値と最小値から算出される中間値であることを特徴とする請求項1または2に記載の位相調整回路。
【請求項4】
前記クロック遅延調整回路は、前記入力クロック信号に対してクロック周期を等分するように遅延を与えるDLL( Delay Locked Loop )回路であり、
前記DLL回路は、
前記入力クロック信号を入力し、遅延させて前記出力クロック信号を出力するクロック用可変遅延回路と、
前記クロック用可変遅延回路における前記入力クロック信号に対する遅延量を設定する選択信号を出力する遅延量設定回路と、
前記入力クロック信号と前記クロック用可変遅延回路の出力をフィードバックさせたフィードバッククロック信号との位相を比較する位相比較回路と、を備え、
前記選択信号が前記DLL回路の外部へ出力されることを特徴とする請求項1〜3の何れか1項に記載の位相調整回路。
【発明の詳細な説明】【技術分野】
【0001】
本発明は、ASIC( Application Specific Integrated Circuit )等の半導体集積回路に備わる位相調整回路に関し、特に、入力されたクロック信号に対してクロック周期を等分するように遅延を与えるディジタルDLL( Delay Locked Loop )回路を利用してタイミングマージン最適値に設定可能な位相調整回路に関する。
【背景技術】
【0002】
近年の情報機器の発達に対応して、かかる情報機器に含まれる半導体集積回路も開発がなされており、特にノートパソコンや携帯端末機器等に対する携帯性を満足する条件として、小型、低消費電力、低電圧で高速動作が求められている。しかしながら、高速動作と低消費の2つの要件を満たすことは容易ではなく、様々な技術開発が行われている。特に、ダイナミックランダムアクセスメモリ( Dynamic Random Access Memory;以後、DRAMと記す。)においては、様々な技術開発がなされており、近年では、周波数が100MHzを越える外部からの高速クロック信号に同期して動作可能なシンクロナスDRAM( Synchronous Dynamic Random Access Memory ;以後、SDRAMと記す。)が開発されている。また、従来、クロック信号の立ち上がりに対応してデータの入出力を行っていたものをクロック信号の立ち上がり時と立ち下がり時の両方でデータの入出力を行うDDR( Double Data Rate ) SDRAMの開発もされている。
【0003】
DDR SDRAMを用いたASICを実現するためには、半導体集積回路における温度や電源電圧の変動、プロセスばらつき等による外部要因に起因して発生するタイミングのずれを抑える必要がある。特に、DDR−SDRAMに供給するクロック信号は、リードストローブ信号としてASICに返送され、データ取り込み時に使用される。その際に、リードストローブ信号は、精度の高い遅延を行ってリードデータを取得することに使用されることから、ASIC内部で使用する内部クロック信号に対しては、ジッタの発生や周波数変動を抑制することが重要となる。このため、ASIC内部のPLL( Phase Locked Loop )回路で作成された入力クロック信号に対してクロック周期を等分するように遅延を与えるDLL回路が導入されている。DLL回路は、入力DQS信号の遅延量の調節するものであり、これにより入力DQ信号との時間差を一定にすることができ、高速なクロック信号の立ち上がり時と立ち下がり時においてデータ出力を可能としている。
【0004】
DLL回路は、入力クロック信号とフィードバッククロック信号の位相比較を行い、入力クロック信号の位相およびフィードバッククロック信号の位相が一定の関係を維持するように制御する閉回路である。かかるDLL回路として、遅延量の制御を電圧制御によって行うアナログDLL回路と、遅延要素の使用個数をディジタル量で制御を行うディジタルDLL回路の双方のタイプがある。アナログDLL回路は、電圧制御で遅延量の制御を行うので、微妙な電圧変化が遅延量の変化につながるためノイズに弱いので、メモリインターフェイス用のDLL回路としては、制御信号がディジタル量であるため、ノイズに強いディジタルDLL回路が使用される。ディジタルDLL回路は、入力クロック信号の位相がフィードバッククロック信号の位相と一定の関係が成立しなくなった場合において、ディジタルDLL回路で入力クロック信号をディジタル遅延させる可変遅延回路を構成する遅延要素の使用個数を制御することによって、入力クロック信号と入力クロック信号を遅延させたフィードバッククロック信号との間の遅延時間を変化させて、入力クロック信号の位相とフィードバッククロック信号の位相が一定の関係を維持するように構成されている。
【0005】
まず、ディジタルDLL回路を用いる位相調整回路の例として、クロック信号の立上がり時と立下がり時の両方を利用するDDR( Double Data Rate )メモリやDDR2メモリに使用されるメモリインターフェイスの動作について、図面を使用しながら説明する。図4は、DDRメモリインターフェイスにおけるDQS(読み出しデータストローブ)信号とDQ(読み出しデータ)信号のタイミングの一例を示すタイミングチャートである。DQS信号は、DDRメモリに供給されたクロック信号をマスクすることで作成され、クロック周期Tを有する。DDRメモリからDDRメモリインターフェイスへ伝達されるDQS信号とDQ信号は、その変化点の位相が一致している。また、DQ信号は、T/2毎に変化することから、正確にDQ信号のデータを取得するためには、DQS信号にT/4の遅延を与える必要がある。このT/4の遅延を得るために、クロック周期Tを等分する機能を有するディジタルDLL回路が使用される。
【0006】
次に、従来のディジタルDLL回路の構成について説明する。図5は、従来のディジタルDLL回路の構成の一例を示すブロック図である。図5に示すように、ディジタルDLL回路10は、クロック用可変遅延回路11と、カウンタ12と、位相比較回路13と、DQS用可変遅延回路14とを備える構成である。
【0007】
上記構成からなるディジタルDLL回路10の基本動作について説明する。ASIC内部のPLL回路等で作成された入力クロック信号S10は、クロック用可変遅延回路11を通過して出力クロック信号S11として出力される。このクロック用可変遅延回路11は、クロック用可変遅延回路11を構成する遅延要素の使用個数を変えて、入力クロック信号S10をディジタル的に遅延させる機能を有するものであり、この遅延量は、カウンタ12が出力する選択信号S13の値によって決定される。
【0008】
位相比較回路13は、入力クロック信号S10の位相とクロック用可変遅延回路11の出力クロック信号S11をフィードバックしたフィードバッククロック信号S12の位相との比較を行い、位相差分量値に比例するその比較結果をカウンタ12へ出力する機能を有する。また、入力クロック信号S10の位相とフィードバッククロック信号S12の位相が一定の関係を維持している場合には、ディジタルDLL回路10は、ロック状態となるが、その際に、位相比較回路13は、DLLロック信号S18を出力する。例えば、DLLロック信号S18は、ロック状態の場合に“1”を出力し、非ロック状態の場合に“0”を出力するが、その信号の極性は逆でも良い。
【0009】
カウンタ12は、位相比較回路13での比較結果をカウンタ値に変換して、一時的に保持する機能を有する。そして、カウンタ12は、この一時的に保持しているカウンタ値をクロック用可変遅延回路11に出力することで、クロック用可変遅延回路11から出力されるフィードバッククロック信号S12の遅延量を制御する。また、カウンタ12は、位相比較回路13に入力される入力クロック信号S10の位相とフィードバッククロック信号S12の位相との比較結果に基づいて、その両者の位相差を少なくするようにカウンタ値を増減させ、選択信号S13としてクロック用可変遅延回路11に出力する。これによって、入力クロック信号S10の位相とフィードバッククロック信号S12の位相が一定の関係を維持するように、ディジタルDLL回路10は動作して、ロック状態となる。例えば、入力クロック信号の位相とフィードバッククロック信号の位相がちょうどクロック周期の1周期分の位相差の関係を維持して、ロック状態となった場合に、遅延要素1個の遅延量をD、ロック状態のカウンタ値をNとすると、クロック周期Tは、D*Nと考えられる(T=D*N)。例えば、クロック周期T=4000ps、遅延要素1個の遅延量D=100psの場合には、カウンタ値は、N=T/D=4000/100=40段となる。
【0010】
DQS用可変遅延回路14は、クロック用可変遅延回路11と同様に、遅延要素の使用個数を可変して、入力DQS信号S14をディジタル的に遅延させる回路となっている。DQS用可変遅延回路14は、DLLロック信号S18がロック状態であるときの選択信号S13のカウンタ値Nを利用して、入力DQS信号S14をディジタル的に遅延させて、出力DQS信号S15がT/4の遅延となるように、遅延パラメータS16で、遅延要素の使用個数nを制御する(N/4=n)。この遅延パラメータS16でのDQS用可変遅延回路14の遅延要素の使用個数nの変更は、DDRメモリとのリードアクセス期間には、実行されないようにしなければならない。従って、通常、ディジタルDLL回路を用いたシステム起動時に、DLLロック信号S18がロック状態であることを確認した上で1度、入力DQS信号S14を再同期化させるRESYNC信号S17をアクティブにすることで、遅延パラメータS16でのDQS用可変遅延回路14の遅延要素の使用個数nの変更を行う。例えば、クロック周期T=4000ps、遅延要素1個の遅延量D=100psの場合、カウンタ値N=40段でロック状態となるため、遅延要素の使用個数n=N/4=40/4=10段となる。また、D*n=100*10=1000ps=T/4となる。これによって、DQS信号は、T/4の遅延を得ることが出来る。
【0011】
次に、ディジタルDLL回路10が含まれる位相調整回路を利用したDDRメモリインターフェイスの動作について、図面を使用しながら説明する。図6は、従来のディジタルDLL回路を利用したDDRメモリインターフェイスの構成の一例を示すブロック図であり、DDRメモリからデータを読み出す(リード)動作について説明する図である。DDRメモリコントローラ(図示せず)は、DDRメモリ31に対して、リードコマンドを発行する。リードコマンド発行時、クロック信号CLKは、出力バッファ32を経由して、DDRメモリ31に供給される。DDRメモリ31では、発行されたリードコマンド取得後、DDRメモリインターフェイス30より供給されたクロック信号CLKを元に、1回のアドレス指定で複数のデータをまとめて連続的に転送するバースト長のサイクル数のデータストローブ信号DDR_DQSを作成すると共に、リードコマンドで指定されたアドレスのデータをデータ信号DDR_DQとして同位相で出力する。DDRメモリ31から出力された同位相のデータストローブ信号DDR_DQSとデータ信号DDR_DQは、DDRメモリインターフェイス30に供給される。
【0012】
DDRメモリインターフェイス30では、データ信号DDR_DQは、入力バッファ33を通過後、第1のフリップフロップ34のデータ入力端子D1へ送られ、入力されたデータストローブ信号DDR_DQSは、入力バッファ35を通過後、ディジタルDLL回路10でT/4遅延されて、第1のフリップフロップ34のクロック入力端子CLK1へ送られる。第1のフリップフロップ34のデータ入力端子D1へ送られたデータ信号DDR_DQは、クロック入力端子CLK1へ送られたデータストローブ信号DDR_DQSの立ち上がりエッジおよび立ち下がりエッジで取得され、第2のフリップフロップ36のデータ入力端子D2へ送られる。
【0013】
第2のフリップフロップ36のデータ入力端子D2へ送られたデータ信号DDR_DQは、クロック信号CLKの立ち上がりエッジおよび立ち下がりエッジで取得され、内部回路に送られる。ここで、DDRメモリインターフェイス30の出力バッファ32の入力段側に有する図6に示すA点を出発したクロック信号は、DDRメモリ31を経由して第1のフリップフロップ34の出力段に有する図6に示すB点に到達するまでの遅延が、クロック周期T以内の遅延を達成することで、第2のフリップフロップ36で、正確なデータを取得可能になる。
【0014】
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献1および2が知られている。
【特許文献1】特開2001−196924号公報
【特許文献2】特開2005−286467号公報
【発明の開示】
【発明が解決しようとする課題】
【0015】
しかしながら、上述したDDRメモリインターフェイス30において、クロック信号CLKが出力される出力バッファ32の遅延をtOUT、DDRメモリインターフェイス30からDDRメモリ31までの配線等の遅延をtCTRL2MEM、DDRメモリ内でのクロック信号DDR_CLKの入力段からデータストローブ信号DDR_DQSの出力段までの遅延をtDQSCK、DDRメモリ31からDDRメモリインターフェイス30までの配線等の遅延をtMEM2CTRL、DDRメモリインターフェイス30内での入力バッファ35の遅延をtIN、ディジタルDLL回路10での遅延をtDLL、第1のフリップフロップ34での遅延をtFFとすると、上記のA点からB点までに到達するまでに生じる遅延tALLは、tOUT+tCTRL2MEM+tDQSCK+tMEM2CTRL+tIN+tDLL+tFFとなる。ここで、ディジタルDLL回路10以外での遅延量をtDELAY=tALL−tDLL=tOUT+tCTRL2MEM+tDQSCK+tMEM2CTRL+tIN+tFFとすると、tALL=tDLL+tDELAYとなり、tALL<Tを満足しなければ、正確なデータを取得できないことになる。例えば、クロック周期T=4000ps、遅延要素1個の遅延量D=100psの場合、tDLL=T/4=1000psとなるので、tDELAY<3000psとする必要がある。
【0016】
また、通常使用時には、tDLL=T/4となるような遅延量を遅延パラメータで決定し、そのパラメータを固定して使用する。例えば、クロック周期T=4000ps、遅延要素1個の遅延量D=100psの場合、tDLL=1000psであるので、遅延要素の使用個数n=1000/100=10段となり、遅延パラメータは、n=10の固定値で使用することになる。
【0017】
また、上記DDRメモリインターフェイス30を用いたASICでは、プロセスや電源電圧、動作温度の条件(PVT特性)の変化によって、遅延量が変動する。よって、ASICの高負荷動作中等における急激なPVT特性の変化には、固定パラメータでは、追従出来ず、リードアクセスエラーを引き起こしてしまう問題がある。例えば、クロック周期T=4000ps、遅延要素1個の遅延量D=100ps、tDLL=D*n=1000ps(10段)、tDELAY=2500psである場合を考える。通常動作時は、tDLL+tDELAY=3500ps<4000psとなるので、500psタイミングマージンがあるので、上記DDRメモリインターフェイス30を用いたASICは、安定動作する。
【0018】
ここで、PVT特性の変化によって、遅延要素1個の遅延量Dが1.5倍となった場合、tDLL=D*n=150*10=1500psとなる。同様に、ディジタルDLL回路以外での遅延量tDELAYも同様に増加することになり、tDELAYの増加分を500psとすると、tDELAY=3000psとなる。すると、tALL=DLL+tDELAY=1500+3000=4500ps>4000psとなり、tALL<Tの関係を満足しなくなるので、リードアクセスエラーを引き起こしてしまう。
【0019】
すなわち、クロック周期Tの1/4分の遅延が可能なレジスタ設定が常に一定であるために、この設定値がマージンを有するものであるか否かの判断が出来ない。このため、システムの高負荷動作中等における急激なPVT特性の変化には追従できずに破綻、換言するとリードアクセスエラーを引き起こしてしまうことがある。
【0020】
そこで、本発明は、従来のDLL回路を備える位相調整回路が有する上記問題点に鑑みてなされたものであり、本発明の目的は、システム高負荷動作中等における急激なPVT特性の変化による遅延量の変化が大きい場合でも、タイミングマージン最適値に設定することの可能な、新規かつ改良された位相調整回路を提供することである。
【課題を解決するための手段】
【0021】
上記課題を解決するために、本発明のある実施の形態によれば、外部記憶手段とライトおよび/またはリードアクセスする際に、入力クロック信号の位相を調整して入力クロック信号に対して遅延された出力クロック信号を供給するクロック遅延調整回路を利用して、外部回路から供給されるデータ信号およびデータストローブ信号の位相を調整する位相調整回路において、ライトデータおよび/またはリードデータを書き込む内部記憶手段と、ライトおよび/またはリードアクセスする際のタイミングマージンが確保されたときのクロック遅延調整回路の遅延パラメータの値を記録する内部記憶手段と、タイミングマージンの最適値を算出する最適値算出手段と、タイミングマージンの最適値を記録する最適値記憶手段と、を備えることを特徴とする位相調整回路が提供される。
【0022】
このような構成とすることにより、システムの高負荷動作中もリードアクセスエラーが発生しないように、ライト/リードアクセス時のクロック遅延調整回路であるDLL回路のタイミングマージンが測定されて、かかるタイミングマージンの中心値にレジスタ設定されるので、位相調整回路が常にマージンを持った状態で動作することになり、ライト/リードアクセスエラー等の破綻が生じることを未然に防止できる。
【0023】
このとき、上記実施の形態において、位相調整回路は、出力クロック信号の遅延量を設定するカウンタ値の変化を検出するカウンタ値検出手段と、遅延パラメータとタイミングマージンの最適値との比較を行う比較実行手段と、遅延パラメータとタイミングマージンの最適値との差分が大きい場合に、遅延パラメータをタイミングマージン最適値に設定する手段と、を備えることとしてもよい。
【0024】
このような構成とすることにより、半導体集積回路の急激なPVT特性の変化による遅延量の変化が大きい場合でも、タイミングマージン最適値が得られるため、かかる半導体集積回路を含むシステムが安定動作可能になる。
【0025】
このとき、上記実施の形態において、タイミングマージン最適値は、遅延パラメータの最大値と最小値との中間値から算出されることとしてもよい。
【0026】
このような構成とすることにより、安定したタイミングマージンが確保されるようになるので、システムの高負荷動作中も常にマージンを持った状態で動作するようになり、かかるシステムの安定動作が可能となる。
【0027】
このとき、上記実施の形態において、クロック遅延調整回路は、入力クロック信号に対してクロック周期を等分するように遅延を与えるDLL回路であり、このDLL回路は、入力クロック信号を入力し、遅延させて出力クロック信号を出力するクロック用可変遅延回路と、クロック用可変遅延回路における入力クロック信号に対する遅延量を設定する選択信号を出力する遅延量設定回路と、入力クロック信号とクロック用可変遅延回路の出力をフィードバックさせたフィードバッククロック信号との位相を比較する位相比較回路と、を備え、選択信号がDLL回路の外部へ出力されることとしてもよい。
【0028】
このような構成とすることにより、DLLロック状態の可変遅延回路の遅延量をシステム動作時もモニターできるので、かかるDLL回路を備える位相調整回路が常にマージンを持った状態で動作することになり、リードアクセスエラー等の破綻が生じることを防止できる。
【発明の効果】
【0029】
以上説明したように本発明によれば、ASIC等の半導体集積回路において、急激なPVT特性の変化による遅延量の変化が大きい場合でも、タイミングマージン最適値が得られるため、かかる半導体集積回路を含むシステムが安定動作可能になる。換言すると、従来のシステム構成に比べ、タイミングマージンの中心にレジスタ設定することで、急激なPVT特性の変化による遅延要素の遅延値の変化に追従可能となるため、システムの安定動作が可能になる。
【発明を実施するための最良の形態】
【0030】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0031】
まず、本発明の位相調整回路を含む半導体集積回路の第1の実施の形態に備わるクロック遅延調整回路であるディジタルDLL回路の構成および基本動作について、図面を使用しながら説明する。図1は、本実施の形態における位相調整回路に備わるディジタルDLL回路の構成を示すブロック図である。
【0032】
本実施の形態におけるディジタルDLL回路100は、前述した従来のディジタルDLL回路10と同様に、クロック用可変遅延回路101、カウンタ102、位相比較回路103、およびDQS用可変遅延回路104を備える。
【0033】
本実施の形態では、上述した従来例と同様に、ASIC内部のPLL回路等で作成された入力クロック信号S100は、クロック用可変遅延回路101を通過してから出力クロック信号S101として出力される。このクロック用可変遅延回路101は、クロック用可変遅延回路101を構成する不図示の遅延要素の使用個数を可変して、入力クロック信号S100をディジタル的に遅延させる機能を有するものであり、かかる遅延量は、後述のカウンタ102が出力する選択信号S103の値によって決定される。
【0034】
位相比較回路103は、入力クロック信号S100の位相とクロック用可変遅延回路101の出力クロック信号S101をフィードバックしたフィードバッククロック信号S102の位相との比較を行い、かかる信号S101、S102の位相差の分量値に比例するその比較結果をカウンタ102へ出力する機能を有する。また、入力クロック信号S100の位相とフィードバッククロック信号S102の位相が一定の関係を維持している場合には、ディジタルDLL回路100は、ロック状態となるが、その際に、位相比較回路103は、DLLロック信号S108をDQS用可変遅延回路104に送信する他に、ディジタルDLL回路100の外部に有するレジスタ制御を行う不図示のCPU( Central Processing Unit )に出力する。なお、かかるDLLロック信号S108は、ロック状態または非ロック状態の何れの状態でも、レジスタ制御を行うCPU等に出力されるが、DLLロック信号S108の極性によって、ディジタルDLL回路100のロック状態/非ロック状態をCPUが判断し、ロック状態でない場合には、DDRへのライト/リードアクセスをしないように制御される。
【0035】
カウンタ102は、位相比較回路103での入力クロック信号S100の位相とクロック用可変遅延回路101の出力クロック信号S101の位相との比較結果をカウンタ値に変換して、一時的に保持する機能を有する。そして、カウンタ102は、この一時的に保持しているカウンタ値を選択信号S103としてクロック用可変遅延回路101に出力することで、クロック用可変遅延回路101から出力されるフィードバッククロック信号S102の遅延量を制御する。すなわち、カウンタ102は、位相比較回路103に入力される入力クロック信号S100の位相とフィードバッククロック信号S102の位相との比較結果に基づいて、その両者の位相差を少なくするようにカウンタ値を増減させ、選択信号S103としてクロック用可変遅延回路101に出力する。これによって、入力クロック信号S100の位相とフィードバッククロック信号S102の位相が一定の関係を維持するように、ディジタルDLL回路100は動作して、ロック状態となる。例えば、入力クロック信号S100の位相とフィードバッククロック信号S102の位相がちょうどクロック周期の1周期分の位相差の関係を維持して、ディジタルDLL回路100がロック状態となった場合に、遅延要素1個の遅延量をD、ロック状態のカウンタ値をNとすると、クロック周期Tは、T=D*Nとなる。
【0036】
DQS用可変遅延回路104は、クロック用可変遅延回路101と同様に、不図示の遅延要素の使用個数を変更させて、入力DQS信号S104をディジタル的に遅延させる回路となっている。DQS用可変遅延回路104は、DLLロック信号S108がロック状態であるときの選択信号S103のカウンタ値Nを利用して、入力DQS信号S104をディジタル的に遅延させて、出力DQS信号S105がT/4の遅延となるように、レジスタ制御を行うCPU等から入力される遅延パラメータS106で、DQS用可変遅延回路104の遅延要素の使用個数nを制御する(N/4=n)。この遅延パラメータS106でのDQS用可変遅延回路104の遅延要素の使用個数nの変更は、DDRメモリとのリードアクセス期間には、実行されないようにしなければならない。従って、通常、ディジタルDLL回路100を用いたシステム起動時に、位相比較回路103から供給されるDLLロック信号S108によって、ディジタルDLL回路100がロック状態であることを確認した上で、再度入力DQS信号S104を同期化させるために、CPU等のディジタルDLL回路100の外部から入力されるRESYNC信号S107をアクティブにすることで、遅延パラメータS106でのDQS用可変遅延回路104の遅延要素の使用個数nの変更が行われる。例えば、クロック周期T=4000ps、遅延要素1個の遅延量D=100psの場合では、上述したように、カウンタ値N=40段でロック状態となるため、遅延要素の使用個数n=N/4=40/4=10段となる。また、D*n=100*10=1000ps=T/4となる。これによって、出力DQS信号S105は、T/4の遅延を得ることが出来る。
【0037】
本実施の形態では、半導体集積回路におけるシステム高負荷動作中等における急激なPVT特性の変化が発生した場合でも、タイミングマージンが大きく安定動作が可能であるという特徴点を備えている。すなわち、本実施の形態の位相遅延回路を含む半導体集積回路における急激なPVT特性の変化を観測するために、図1に示すように、カウンタ102から出力される選択信号S103がディジタルDLL回路100に含まれるクロック用可変遅延回路101やDQS用可変遅延回路104に送信される他に、レジスタ制御を行うCPU等のディジタルDLL回路100の外部へ出力される。かかる選択信号S103がディジタルDLL回路100の外部に有するCPUに出力されることによって、かかるCPUで選択信号S103の変化をグラフ化( 縦軸:カウンタ値、横軸:時間 )するようにして選択信号S103が観測される。そして、かかる選択信号S103としてカウンタ102から出力されるカウンタ値Nの変化の急激な変化やかかる変化の最大値等が算出される。このように、DLLロック信号S108がロック状態であるときに、選択信号S103としてカウンタ102から出力されるカウンタ値Nを用いてクロック用可変遅延回路101に内蔵される遅延要素1個の遅延量Dが計算できる。例えば、クロック周期T=4000ps、カウンタ値N=40の場合では、D=T/N=4000/40=100psとなり、遅延要素1個の遅延量Dは100psであることがわかる。
【0038】
以上説明したように、本実施の形態では、ディジタルDLL回路100がロック状態である際の選択信号S103のカウンタ値Nを観測することによって、クロック用可変遅延回路101に備わる遅延要素1個の遅延量Dが計算できる。換言すると、遅延量を設定するカウンタ値Nの変化をディジタルDLL回路100の外部から観測可能となる。このため、例えば、入力クロック信号S100の位相とフィードバッククロック信号S102の位相がちょうどクロック1周期の関係を維持して、ロック状態となった場合に、遅延要素1個の遅延量をD、ロック状態のカウンタ値をNとすると、クロック周期TはD*Nと導出される(T=D*N)。
【0039】
次に、本実施の形態のディジタルDLL回路100を利用したDDRメモリインターフェイスでタイミングマージンを確保するための動作について説明する。図2は、本実施の形態のディジタルDLL回路を含む位相調整回路を利用したDDRメモリインターフェイスでタイミングマージンを確保するための動作を示すフローチャートである。なお、本実施の形態のディジタルDLL回路100を利用したDDRメモリインターフェイスの構成は、ディジタルDLL回路100を除く部分は、図6に示す従来の構成と略同一なので、かかる説明は省略する。また、以下の説明では、DQS用可変遅延回路104の遅延要素の使用個数nを制御する遅延パラメータS106は、かかる遅延要素の使用個数nで表現されるものとする。
【0040】
本実施の形態の位相調整回路は、DDR−SDRAMとのライト/リードアクセスにおいて、常にマージンを持った状態を維持することが可能なようにディジタルDLL回路100を制御することを特徴とする。かかるディジタルDLL回路100の制御動作について以下説明する。
【0041】
まず、DDRメモリインターフェイスでは、DDRメモリに対してライトコマンドを発行すると共に(工程S200)、本実施の形態のディジタルDLL回路100を含む半導体集積回路に備わる内蔵メモリにライトデータWDATを書き込む(工程S201)。
【0042】
次に、DDRメモリに対してライトコマンドと同じアドレスに対してリードコマンドを発行して(工程S202)、リードデータRDATとリードストローブがDDRインターフェイスに入力される(工程S203)。このとき、リードデータであるDQ信号とリードストローブであるDQS信号は、図4に示されるように、同位相で入力される。
【0043】
次に、ディジタルDLL回路100によって、DQS信号は遅延パラメータn(DQS用可変遅延回路104の遅延要素の使用個数n)によって決定される遅延段数分の遅延が実行される(工程S204)。ここで、DQS用可変遅延回路104の遅延要素の使用個数を表す遅延パラメータnは、0〜Nの値を取り、まず、最初は、遅延パラメータnをn=0に設定する。
【0044】
その後、ディジタルDLL回路100で遅延させたDQS信号を用いて、リードデータRDATを取得する(工程S205)。このとき、取得したリードデータRDATは、内蔵メモリに書き込まれる(工程S206)。
【0045】
そして、内蔵メモリに書き込まれたライトデータWDATとリードデータRDATの値を比較する(工程S207)。この工程S207でライトデータWDATとリードデータRDATを比較することで、リードデータRDATが正しく取得できたか否かが確認される。このとき、ライトデータWDATとリードデータRDATの値の比較結果が一致しない場合には、遅延パラメータnを1つ増やしてから工程S202に戻って、再度リードコマンド発行以降、換言すると工程S202以降の工程フローを実行する。
【0046】
一方、ライトデータWDATとリードデータRDATの値の比較結果が一致した場合には、次の工程S208に進み、一致したときの遅延パラメータn(DQS用可変遅延回路104の遅延要素の使用個数n)を内蔵メモリに記録する(工程S208)。このとき、内蔵メモリに書き込まれた遅延パラメータnをnDATとする。
【0047】
そして、ライトデータWDATとリードデータRDATの値の比較結果が一致した場合の遅延パラメータnと遅延パラメータnの最大値であるN(ディジタルDLL回路100がロック状態でのカウンタ値)とを比較する(工程S209)。遅延パラメータnと遅延パラメータnの最大値Nの比較結果が一致しない場合には、遅延パラメータnを1つ増やしてから工程S202に戻って、再度リードコマンド発行以降、換言すると工程S202以降の工程のフローを実行する。
【0048】
一方、遅延パラメータnと遅延パラメータの最大値Nの比較結果が一致した場合には、遅延パラメータnは、全ての範囲のパラメータ値を満たしたことになる。このように遅延パラメータnと遅延パラメータnの最大値Nの比較結果が一致した場合には、その後、内蔵メモリに記録された遅延パラメータnDATから、最大値MAX(nDAT)と最小値MIN(nDAT)を算出する(工程S210)。本実施の形態では、この工程S210で算出された最大値MAX(nDAT)と最小値MIN(nDAT)がタイミングマージンとなる。その後、次の工程S211で最大値MAX(nDAT)と最小値MIN(nDAT)の中間値tAVEを tAVE=( MAX(nDAT)+MIN(nDAT) )/2 の式から算出して内蔵メモリに記録する。このように、内蔵メモリに記録された遅延パラメータnDATの最大値MAX(nDAT)と最小値MIN(nDAT)の中間値を算出して、かかる中間値をディジタルDLL回路100のタイミングマージンの中心にレジスタ設定することにより、システムの高付加動作中も常にマージンを維持可能な最適値となるタイミングマージンが確保される。このため、本実施の形態の位相調整回路を含む半導体集積回路は、システムの高負荷動作中も常にマージンを持った状態で動作することになり、リードアクセスエラー等を引き起こすことなく、かかるシステムの安定動作が可能となる。
【0049】
なお、上述した実施の形態では、内蔵メモリに書き込まれるライトデータWDATやリードデータRDATがそれぞれ1つとして記載されているが、内蔵メモリに書き込まれるこれらライトデータWDATやリードデータRDATは、多数でも構わないものとする。また、ライトデータ/リードデータを書き込む内蔵メモリと、ライトアクセス/リードアクセスする際のタイミングマージンが確保されたときのディジタルDLL回路100の遅延量を調整する遅延パラメータnの値を記録する内蔵メモリと、タイミングマージンの最適値を記録する内蔵メモリは、本実施の形態では、それぞれ別個の内蔵メモリとしているが、アドレスを細かく制御すれば、同一の内蔵メモリとしてもよい。さらに、上述したDDRメモリインターフェイスでのタイミングマージンを確保するために、図2に示すような動作フローを数回実行することによって、工程S210で算出される内蔵メモリに記録された遅延パラメータnDATの最大値MAX(nDAT)および最小値MIN(nDAT)の各々の精度が向上する。このため、かかる最大値MAX(nDAT)と最小値MIN(nDAT)の中間値tAVEの値がより正確に得られるようになる。
【0050】
このように、位相調整回路に備わるディジタルDLL回路100は、クロック信号をちょうど1周期遅延させる状態でロックするように動作し続けるため、本実施の形態では、DLLロック状態のクロック用可変遅延回路101の遅延量をシステム動作時も観測・測定する。そして、かかる遅延量の変化が大きい場合、位相調整回路を含む半導体集積回路のPVT特性の変化が大きいと判定される。また、システムの高負荷動作中も、システム動作の合間で上述のタイミングマージン測定ルーチンを起動させて、タイミングマージンの中心値を計算し、かかる中心値の変化とクロック用可変遅延回路101の遅延量の変化が大きい場合には、レジスタ値を更新して、常にDDRアクセスのマージンがある状態にすることにより、かかる半導体集積回路のシステムが安定動作出来るようになる。
【0051】
次に、本実施の形態の位相調整回路の動作について説明する。図3は、本実施の形態による位相調整回路の動作を示すフローチャートである。
【0052】
本実施の形態の位相調整回路のDDRメモリインターフェイスでは、前述したように、ディジタルDLL回路100から出力される選択信号S103のカウンタ値N(ディジタルDLL回路100がロック状態でのカウンタ値)を定期的に観測する(工程S300)。かかる観測としては、例えば、位相調整回路を含むASICに備わるCPUに転送された選択信号S103の変化をグラフ化(縦軸:カウンタ値、横軸:時間)する方法が挙げられる。そして、カウンタ値変化の急激な変化や変化の最大値等をCPUで算出する。かかる工程S300において、観測したカウンタ値Nの変化が小さい場合では、PVTの変化が小さいと判定され、システム動作中の本実施の形態の位相調整回路に備わるDQS用可変遅延回路104の遅延要素の使用個数を表す遅延パラメータnでタイミングマージンが確保されているので、システムは安定動作する。観測したカウンタ値Nの変化が大きい場合には、PVTの変化が大きいと判定され、次の工程S301へ進む。なお、かかる工程S300において、カウンタ値Nの大小の判定基準は、本実施の形態の位相調整回路を含むASICのシステム規模等により異なるものとする。
【0053】
工程S300でカウンタ値Nの変化が大きい場合には、次に、かかるシステム動作中のDQS用可変遅延回路104の遅延要素の使用個数を表す遅延パラメータnと、タイミングマージン測定ルーチンを起動させて算出したタイミングマージンの中心値、すなわち上述した図2に示すフローで算出したtAVE値を比較する(工程S301)。この工程S301でDQS用可変遅延回路104の遅延要素の使用個数を表す遅延パラメータnと算出されたtAVE値との比較結果の差分が小さい場合、タイミングマージンが確保された良好な状態であると判定されるため、本実施の形態の位相調整回路を含む半導体集積回路のシステムは安定動作する。
【0054】
一方、かかる遅延パラメータnとtAVE値との比較結果の差分が大きい場合、ディジタルDLL回路100のタイミングマージンが悪化している状態であると判定されるため、次に、システム動作中のDQS用可変遅延回路104の遅延要素の使用個数を表す遅延パラメータnをタイミングマージンが確保された値であるtAVE値に設定し直す(工程S302)。これらの各工程を経ることによって、本実施の形態の位相調整回路を含む半導体集積回路のシステムが安定動作することが可能になる。
【0055】
このように本実施の形態では、半導体集積回路のシステムの高負荷動作中もリードアクセスのエラーが発生しないように、ライト/リードアクセス時のディジタルDLL回路100のタイミングマージンを測定し、ディジタルDLL回路100のタイミングマージンの中心値にレジスタ設定することで、常にマージンを持った状態で動作するようにすることによって、ライトやリードのアクセスエラーが防止される。
【0056】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【0057】
例えば、上記の第1の実施の形態では、位相調整回路に含まれるクロック遅延調整回路としてディジタルDLL回路を使用した場合を説明しているが、かかるクロック遅延調整回路としては、アナログDLL回路やPLL回路を代用することも可能である。
【図面の簡単な説明】
【0058】
【図1】本発明の第1の実施形態における半導体集積回路に備わるディジタルDLL回路の構成を示すブロック図である。
【図2】同実施の形態によるDDRメモリインターフェイスでタイミングマージンを確保するための動作を示すフローチャートである。
【図3】同実施の形態による位相調整回路の動作を示すフローチャートである。
【図4】DDRメモリインターフェイスにおけるDQS信号とDQ信号のタイミングの一例を示すタイミングチャートである。
【図5】従来のディジタルDLL回路の構成の一例を示すブロック図である。
【図6】従来のディジタルDLL回路を利用したDDRメモリインターフェイスの構成の一例を示すブロック図であり、DDRメモリからデータを読み出す動作について説明する図である。
【符号の説明】
【0059】
100 ディジタルDLL回路
101 クロック用可変遅延回路
102 カウンタ
103 位相比較回路
104 DQS用可変遅延回路
S100 入力クロック信号
S101 出力クロック信号
S102 フィードバッククロック信号
S103 選択信号
S104 入力DQS信号
S105 出力DQS信号
S106 遅延パラメータ
S107 resync信号
S108 DLLロック信号
【出願人】 【識別番号】000005049
【氏名又は名称】シャープ株式会社
【出願日】 平成18年9月11日(2006.9.11)
【代理人】 【識別番号】100112335
【弁理士】
【氏名又は名称】藤本 英介

【識別番号】100101144
【弁理士】
【氏名又は名称】神田 正義

【識別番号】100101694
【弁理士】
【氏名又は名称】宮尾 明茂


【公開番号】 特開2008−67245(P2008−67245A)
【公開日】 平成20年3月21日(2008.3.21)
【出願番号】 特願2006−245018(P2006−245018)