(57)【要約】【課題】システム高負荷動作中等における急激なＰＶＴ特性の変化による遅延量の変化に対応可能とする。【解決手段】外部記憶手段とライトおよび／またはリードアクセスする際に、入力クロック信号の位相を調整して入力クロック信号に対して遅延された出力クロック信号を供給するクロック遅延調整回路１００を利用して、外部回路から供給されるデータ信号およびデータストローブ信号の位相を調整する位相調整回路において、ライトデータおよび／またはリードデータを書き込む内部記憶手段と、ライトおよび／またはリードアクセスする際のタイミングマージンが確保されたときのクロック遅延調整回路の遅延パラメータの値を記録する内部記憶手段と、タイミングマージンの最適値を算出する最適値算出手段と、タイミングマージンの最適値を記録する最適値記憶手段と、を備えることを特徴とする。【選択図】図２
2008067245.tif 000002
【特許請求の範囲】
【請求項１】
外部記憶手段とライトおよび／またはリードアクセスする際に、入力クロック信号の位相を調整して前記入力クロック信号に対して遅延された出力クロック信号を供給するクロック遅延調整回路を利用して、外部回路から供給されるデータ信号およびデータストローブ信号の位相を調整する位相調整回路において、
ライトデータおよび／またはリードデータを書き込む内部記憶手段と、
前記ライトおよび／またはリードアクセスする際のタイミングマージンが確保されたときの前記クロック遅延調整回路の遅延量を調整する遅延パラメータの値を記録する内部記憶手段と、
前記タイミングマージンの最適値を算出する最適値算出手段と、
前記タイミングマージンの最適値を記録する最適値記憶手段と、を備えることを特徴とする位相調整回路。
【請求項２】
前記位相調整回路は、
前記出力クロック信号の遅延量を設定するカウンタ値の変化を検出するカウンタ値検出手段と、
前記遅延パラメータと前記タイミングマージンの最適値との比較を行う比較実行手段と、
前記遅延パラメータと前記タイミングマージンの最適値との差分が大きい場合に、前記遅延パラメータを前記タイミングマージン最適値に設定する手段と、
を備えることを特徴とする請求項１に記載の位相調整回路。
【請求項３】
前記タイミングマージン最適値は、前記遅延パラメータの最大値と最小値から算出される中間値であることを特徴とする請求項１または２に記載の位相調整回路。
【請求項４】
前記クロック遅延調整回路は、前記入力クロック信号に対してクロック周期を等分するように遅延を与えるＤＬＬ( Delay Locked Loop )回路であり、
前記ＤＬＬ回路は、
前記入力クロック信号を入力し、遅延させて前記出力クロック信号を出力するクロック用可変遅延回路と、
前記クロック用可変遅延回路における前記入力クロック信号に対する遅延量を設定する選択信号を出力する遅延量設定回路と、
前記入力クロック信号と前記クロック用可変遅延回路の出力をフィードバックさせたフィードバッククロック信号との位相を比較する位相比較回路と、を備え、
前記選択信号が前記ＤＬＬ回路の外部へ出力されることを特徴とする請求項１〜３の何れか１項に記載の位相調整回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＳＩＣ（ Application Specific Integrated Circuit ）等の半導体集積回路に備わる位相調整回路に関し、特に、入力されたクロック信号に対してクロック周期を等分するように遅延を与えるディジタルＤＬＬ( Delay Locked Loop )回路を利用してタイミングマージン最適値に設定可能な位相調整回路に関する。
【背景技術】
【０００２】
近年の情報機器の発達に対応して、かかる情報機器に含まれる半導体集積回路も開発がなされており、特にノートパソコンや携帯端末機器等に対する携帯性を満足する条件として、小型、低消費電力、低電圧で高速動作が求められている。しかしながら、高速動作と低消費の２つの要件を満たすことは容易ではなく、様々な技術開発が行われている。特に、ダイナミックランダムアクセスメモリ（ Dynamic Random Access Memory；以後、ＤＲＡＭと記す。）においては、様々な技術開発がなされており、近年では、周波数が１００ＭＨｚを越える外部からの高速クロック信号に同期して動作可能なシンクロナスＤＲＡＭ（ Synchronous Dynamic Random Access Memory ；以後、ＳＤＲＡＭと記す。）が開発されている。また、従来、クロック信号の立ち上がりに対応してデータの入出力を行っていたものをクロック信号の立ち上がり時と立ち下がり時の両方でデータの入出力を行うＤＤＲ( Double Data Rate ) ＳＤＲＡＭの開発もされている。
【０００３】
ＤＤＲ ＳＤＲＡＭを用いたＡＳＩＣを実現するためには、半導体集積回路における温度や電源電圧の変動、プロセスばらつき等による外部要因に起因して発生するタイミングのずれを抑える必要がある。特に、ＤＤＲ−ＳＤＲＡＭに供給するクロック信号は、リードストローブ信号としてＡＳＩＣに返送され、データ取り込み時に使用される。その際に、リードストローブ信号は、精度の高い遅延を行ってリードデータを取得することに使用されることから、ＡＳＩＣ内部で使用する内部クロック信号に対しては、ジッタの発生や周波数変動を抑制することが重要となる。このため、ＡＳＩＣ内部のＰＬＬ（ Phase Locked Loop ）回路で作成された入力クロック信号に対してクロック周期を等分するように遅延を与えるＤＬＬ回路が導入されている。ＤＬＬ回路は、入力ＤＱＳ信号の遅延量の調節するものであり、これにより入力ＤＱ信号との時間差を一定にすることができ、高速なクロック信号の立ち上がり時と立ち下がり時においてデータ出力を可能としている。
【０００４】
ＤＬＬ回路は、入力クロック信号とフィードバッククロック信号の位相比較を行い、入力クロック信号の位相およびフィードバッククロック信号の位相が一定の関係を維持するように制御する閉回路である。かかるＤＬＬ回路として、遅延量の制御を電圧制御によって行うアナログＤＬＬ回路と、遅延要素の使用個数をディジタル量で制御を行うディジタルＤＬＬ回路の双方のタイプがある。アナログＤＬＬ回路は、電圧制御で遅延量の制御を行うので、微妙な電圧変化が遅延量の変化につながるためノイズに弱いので、メモリインターフェイス用のＤＬＬ回路としては、制御信号がディジタル量であるため、ノイズに強いディジタルＤＬＬ回路が使用される。ディジタルＤＬＬ回路は、入力クロック信号の位相がフィードバッククロック信号の位相と一定の関係が成立しなくなった場合において、ディジタルＤＬＬ回路で入力クロック信号をディジタル遅延させる可変遅延回路を構成する遅延要素の使用個数を制御することによって、入力クロック信号と入力クロック信号を遅延させたフィードバッククロック信号との間の遅延時間を変化させて、入力クロック信号の位相とフィードバッククロック信号の位相が一定の関係を維持するように構成されている。
【０００５】
まず、ディジタルＤＬＬ回路を用いる位相調整回路の例として、クロック信号の立上がり時と立下がり時の両方を利用するＤＤＲ（ Double Data Rate ）メモリやＤＤＲ２メモリに使用されるメモリインターフェイスの動作について、図面を使用しながら説明する。図４は、ＤＤＲメモリインターフェイスにおけるＤＱＳ（読み出しデータストローブ）信号とＤＱ（読み出しデータ）信号のタイミングの一例を示すタイミングチャートである。ＤＱＳ信号は、ＤＤＲメモリに供給されたクロック信号をマスクすることで作成され、クロック周期Ｔを有する。ＤＤＲメモリからＤＤＲメモリインターフェイスへ伝達されるＤＱＳ信号とＤＱ信号は、その変化点の位相が一致している。また、ＤＱ信号は、Ｔ／２毎に変化することから、正確にＤＱ信号のデータを取得するためには、ＤＱＳ信号にＴ／４の遅延を与える必要がある。このＴ／４の遅延を得るために、クロック周期Ｔを等分する機能を有するディジタルＤＬＬ回路が使用される。
【０００６】
次に、従来のディジタルＤＬＬ回路の構成について説明する。図５は、従来のディジタルＤＬＬ回路の構成の一例を示すブロック図である。図５に示すように、ディジタルＤＬＬ回路１０は、クロック用可変遅延回路１１と、カウンタ１２と、位相比較回路１３と、ＤＱＳ用可変遅延回路１４とを備える構成である。
【０００７】
上記構成からなるディジタルＤＬＬ回路１０の基本動作について説明する。ＡＳＩＣ内部のＰＬＬ回路等で作成された入力クロック信号Ｓ１０は、クロック用可変遅延回路１１を通過して出力クロック信号Ｓ１１として出力される。このクロック用可変遅延回路１１は、クロック用可変遅延回路１１を構成する遅延要素の使用個数を変えて、入力クロック信号Ｓ１０をディジタル的に遅延させる機能を有するものであり、この遅延量は、カウンタ１２が出力する選択信号Ｓ１３の値によって決定される。
【０００８】
位相比較回路１３は、入力クロック信号Ｓ１０の位相とクロック用可変遅延回路１１の出力クロック信号Ｓ１１をフィードバックしたフィードバッククロック信号Ｓ１２の位相との比較を行い、位相差分量値に比例するその比較結果をカウンタ１２へ出力する機能を有する。また、入力クロック信号Ｓ１０の位相とフィードバッククロック信号Ｓ１２の位相が一定の関係を維持している場合には、ディジタルＤＬＬ回路１０は、ロック状態となるが、その際に、位相比較回路１３は、ＤＬＬロック信号Ｓ１８を出力する。例えば、ＤＬＬロック信号Ｓ１８は、ロック状態の場合に“１”を出力し、非ロック状態の場合に“０”を出力するが、その信号の極性は逆でも良い。
【０００９】
カウンタ１２は、位相比較回路１３での比較結果をカウンタ値に変換して、一時的に保持する機能を有する。そして、カウンタ１２は、この一時的に保持しているカウンタ値をクロック用可変遅延回路１１に出力することで、クロック用可変遅延回路１１から出力されるフィードバッククロック信号Ｓ１２の遅延量を制御する。また、カウンタ１２は、位相比較回路１３に入力される入力クロック信号Ｓ１０の位相とフィードバッククロック信号Ｓ１２の位相との比較結果に基づいて、その両者の位相差を少なくするようにカウンタ値を増減させ、選択信号Ｓ１３としてクロック用可変遅延回路１１に出力する。これによって、入力クロック信号Ｓ１０の位相とフィードバッククロック信号Ｓ１２の位相が一定の関係を維持するように、ディジタルＤＬＬ回路１０は動作して、ロック状態となる。例えば、入力クロック信号の位相とフィードバッククロック信号の位相がちょうどクロック周期の１周期分の位相差の関係を維持して、ロック状態となった場合に、遅延要素１個の遅延量をＤ、ロック状態のカウンタ値をＮとすると、クロック周期Ｔは、Ｄ＊Ｎと考えられる（Ｔ＝Ｄ＊Ｎ）。例えば、クロック周期Ｔ＝４０００ｐｓ、遅延要素１個の遅延量Ｄ＝１００ｐｓの場合には、カウンタ値は、Ｎ＝Ｔ／Ｄ＝４０００／１００＝４０段となる。
【００１０】
ＤＱＳ用可変遅延回路１４は、クロック用可変遅延回路１１と同様に、遅延要素の使用個数を可変して、入力ＤＱＳ信号Ｓ１４をディジタル的に遅延させる回路となっている。ＤＱＳ用可変遅延回路１４は、ＤＬＬロック信号Ｓ１８がロック状態であるときの選択信号Ｓ１３のカウンタ値Ｎを利用して、入力ＤＱＳ信号Ｓ１４をディジタル的に遅延させて、出力ＤＱＳ信号Ｓ１５がＴ／４の遅延となるように、遅延パラメータＳ１６で、遅延要素の使用個数ｎを制御する（Ｎ／４＝ｎ）。この遅延パラメータＳ１６でのＤＱＳ用可変遅延回路１４の遅延要素の使用個数ｎの変更は、ＤＤＲメモリとのリードアクセス期間には、実行されないようにしなければならない。従って、通常、ディジタルＤＬＬ回路を用いたシステム起動時に、ＤＬＬロック信号Ｓ１８がロック状態であることを確認した上で１度、入力ＤＱＳ信号Ｓ１４を再同期化させるＲＥＳＹＮＣ信号Ｓ１７をアクティブにすることで、遅延パラメータＳ１６でのＤＱＳ用可変遅延回路１４の遅延要素の使用個数ｎの変更を行う。例えば、クロック周期Ｔ＝４０００ｐｓ、遅延要素１個の遅延量Ｄ＝１００ｐｓの場合、カウンタ値Ｎ＝４０段でロック状態となるため、遅延要素の使用個数ｎ＝Ｎ／４＝４０／４＝１０段となる。また、Ｄ＊ｎ＝１００＊１０＝１０００ｐｓ＝Ｔ／４となる。これによって、ＤＱＳ信号は、Ｔ／４の遅延を得ることが出来る。
【００１１】
次に、ディジタルＤＬＬ回路１０が含まれる位相調整回路を利用したＤＤＲメモリインターフェイスの動作について、図面を使用しながら説明する。図６は、従来のディジタルＤＬＬ回路を利用したＤＤＲメモリインターフェイスの構成の一例を示すブロック図であり、ＤＤＲメモリからデータを読み出す（リード）動作について説明する図である。ＤＤＲメモリコントローラ（図示せず）は、ＤＤＲメモリ３１に対して、リードコマンドを発行する。リードコマンド発行時、クロック信号ＣＬＫは、出力バッファ３２を経由して、ＤＤＲメモリ３１に供給される。ＤＤＲメモリ３１では、発行されたリードコマンド取得後、ＤＤＲメモリインターフェイス３０より供給されたクロック信号ＣＬＫを元に、１回のアドレス指定で複数のデータをまとめて連続的に転送するバースト長のサイクル数のデータストローブ信号ＤＤＲ＿ＤＱＳを作成すると共に、リードコマンドで指定されたアドレスのデータをデータ信号ＤＤＲ＿ＤＱとして同位相で出力する。ＤＤＲメモリ３１から出力された同位相のデータストローブ信号ＤＤＲ＿ＤＱＳとデータ信号ＤＤＲ＿ＤＱは、ＤＤＲメモリインターフェイス３０に供給される。
【００１２】
ＤＤＲメモリインターフェイス３０では、データ信号ＤＤＲ＿ＤＱは、入力バッファ３３を通過後、第１のフリップフロップ３４のデータ入力端子Ｄ１へ送られ、入力されたデータストローブ信号ＤＤＲ＿ＤＱＳは、入力バッファ３５を通過後、ディジタルＤＬＬ回路１０でＴ／４遅延されて、第１のフリップフロップ３４のクロック入力端子ＣＬＫ１へ送られる。第１のフリップフロップ３４のデータ入力端子Ｄ１へ送られたデータ信号ＤＤＲ＿ＤＱは、クロック入力端子ＣＬＫ１へ送られたデータストローブ信号ＤＤＲ＿ＤＱＳの立ち上がりエッジおよび立ち下がりエッジで取得され、第２のフリップフロップ３６のデータ入力端子Ｄ２へ送られる。
【００１３】
第２のフリップフロップ３６のデータ入力端子Ｄ２へ送られたデータ信号ＤＤＲ＿ＤＱは、クロック信号ＣＬＫの立ち上がりエッジおよび立ち下がりエッジで取得され、内部回路に送られる。ここで、ＤＤＲメモリインターフェイス３０の出力バッファ３２の入力段側に有する図６に示すＡ点を出発したクロック信号は、ＤＤＲメモリ３１を経由して第１のフリップフロップ３４の出力段に有する図６に示すＢ点に到達するまでの遅延が、クロック周期Ｔ以内の遅延を達成することで、第２のフリップフロップ３６で、正確なデータを取得可能になる。
【００１４】
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献１および２が知られている。
【特許文献１】特開２００１−１９６９２４号公報
【特許文献２】特開２００５−２８６４６７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、上述したＤＤＲメモリインターフェイス３０において、クロック信号ＣＬＫが出力される出力バッファ３２の遅延をｔＯＵＴ、ＤＤＲメモリインターフェイス３０からＤＤＲメモリ３１までの配線等の遅延をｔＣＴＲＬ２ＭＥＭ、ＤＤＲメモリ内でのクロック信号ＤＤＲ＿ＣＬＫの入力段からデータストローブ信号ＤＤＲ＿ＤＱＳの出力段までの遅延をｔＤＱＳＣＫ、ＤＤＲメモリ３１からＤＤＲメモリインターフェイス３０までの配線等の遅延をｔＭＥＭ２ＣＴＲＬ、ＤＤＲメモリインターフェイス３０内での入力バッファ３５の遅延をｔＩＮ、ディジタルＤＬＬ回路１０での遅延をｔＤＬＬ、第１のフリップフロップ３４での遅延をｔＦＦとすると、上記のＡ点からＢ点までに到達するまでに生じる遅延ｔＡＬＬは、ｔＯＵＴ＋ｔＣＴＲＬ２ＭＥＭ＋ｔＤＱＳＣＫ＋ｔＭＥＭ２ＣＴＲＬ＋ｔＩＮ＋ｔＤＬＬ＋ｔＦＦとなる。ここで、ディジタルＤＬＬ回路１０以外での遅延量をｔＤＥＬＡＹ＝ｔＡＬＬ−ｔＤＬＬ＝ｔＯＵＴ＋ｔＣＴＲＬ２ＭＥＭ＋ｔＤＱＳＣＫ＋ｔＭＥＭ２ＣＴＲＬ＋ｔＩＮ＋ｔＦＦとすると、ｔＡＬＬ＝ｔＤＬＬ＋ｔＤＥＬＡＹとなり、ｔＡＬＬ＜Ｔを満足しなければ、正確なデータを取得できないことになる。例えば、クロック周期Ｔ＝４０００ｐｓ、遅延要素１個の遅延量Ｄ＝１００ｐｓの場合、ｔＤＬＬ＝Ｔ／４＝１０００ｐｓとなるので、ｔＤＥＬＡＹ＜３０００ｐｓとする必要がある。
【００１６】
また、通常使用時には、ｔＤＬＬ＝Ｔ／４となるような遅延量を遅延パラメータで決定し、そのパラメータを固定して使用する。例えば、クロック周期Ｔ＝４０００ｐｓ、遅延要素１個の遅延量Ｄ＝１００ｐｓの場合、ｔＤＬＬ＝１０００ｐｓであるので、遅延要素の使用個数ｎ＝１０００／１００＝１０段となり、遅延パラメータは、ｎ＝１０の固定値で使用することになる。
【００１７】
また、上記ＤＤＲメモリインターフェイス３０を用いたＡＳＩＣでは、プロセスや電源電圧、動作温度の条件（ＰＶＴ特性）の変化によって、遅延量が変動する。よって、ＡＳＩＣの高負荷動作中等における急激なＰＶＴ特性の変化には、固定パラメータでは、追従出来ず、リードアクセスエラーを引き起こしてしまう問題がある。例えば、クロック周期Ｔ＝４０００ｐｓ、遅延要素１個の遅延量Ｄ＝１００ｐｓ、ｔＤＬＬ＝Ｄ＊ｎ＝１０００ｐｓ（１０段）、ｔＤＥＬＡＹ＝２５００ｐｓである場合を考える。通常動作時は、ｔＤＬＬ＋ｔＤＥＬＡＹ＝３５００ｐｓ＜４０００ｐｓとなるので、５００ｐｓタイミングマージンがあるので、上記ＤＤＲメモリインターフェイス３０を用いたＡＳＩＣは、安定動作する。
【００１８】
ここで、ＰＶＴ特性の変化によって、遅延要素１個の遅延量Ｄが１．５倍となった場合、ｔＤＬＬ＝Ｄ＊ｎ＝１５０＊１０＝１５００ｐｓとなる。同様に、ディジタルＤＬＬ回路以外での遅延量ｔＤＥＬＡＹも同様に増加することになり、ｔＤＥＬＡＹの増加分を５００ｐｓとすると、ｔＤＥＬＡＹ＝３０００ｐｓとなる。すると、ｔＡＬＬ＝ＤＬＬ＋ｔＤＥＬＡＹ＝１５００＋３０００＝４５００ｐｓ＞４０００ｐｓとなり、ｔＡＬＬ＜Ｔの関係を満足しなくなるので、リードアクセスエラーを引き起こしてしまう。
【００１９】
すなわち、クロック周期Ｔの１／４分の遅延が可能なレジスタ設定が常に一定であるために、この設定値がマージンを有するものであるか否かの判断が出来ない。このため、システムの高負荷動作中等における急激なＰＶＴ特性の変化には追従できずに破綻、換言するとリードアクセスエラーを引き起こしてしまうことがある。
【００２０】
そこで、本発明は、従来のＤＬＬ回路を備える位相調整回路が有する上記問題点に鑑みてなされたものであり、本発明の目的は、システム高負荷動作中等における急激なＰＶＴ特性の変化による遅延量の変化が大きい場合でも、タイミングマージン最適値に設定することの可能な、新規かつ改良された位相調整回路を提供することである。
【課題を解決するための手段】
【００２１】
上記課題を解決するために、本発明のある実施の形態によれば、外部記憶手段とライトおよび／またはリードアクセスする際に、入力クロック信号の位相を調整して入力クロック信号に対して遅延された出力クロック信号を供給するクロック遅延調整回路を利用して、外部回路から供給されるデータ信号およびデータストローブ信号の位相を調整する位相調整回路において、ライトデータおよび／またはリードデータを書き込む内部記憶手段と、ライトおよび／またはリードアクセスする際のタイミングマージンが確保されたときのクロック遅延調整回路の遅延パラメータの値を記録する内部記憶手段と、タイミングマージンの最適値を算出する最適値算出手段と、タイミングマージンの最適値を記録する最適値記憶手段と、を備えることを特徴とする位相調整回路が提供される。
【００２２】
このような構成とすることにより、システムの高負荷動作中もリードアクセスエラーが発生しないように、ライト／リードアクセス時のクロック遅延調整回路であるＤＬＬ回路のタイミングマージンが測定されて、かかるタイミングマージンの中心値にレジスタ設定されるので、位相調整回路が常にマージンを持った状態で動作することになり、ライト／リードアクセスエラー等の破綻が生じることを未然に防止できる。
【００２３】
このとき、上記実施の形態において、位相調整回路は、出力クロック信号の遅延量を設定するカウンタ値の変化を検出するカウンタ値検出手段と、遅延パラメータとタイミングマージンの最適値との比較を行う比較実行手段と、遅延パラメータとタイミングマージンの最適値との差分が大きい場合に、遅延パラメータをタイミングマージン最適値に設定する手段と、を備えることとしてもよい。
【００２４】
このような構成とすることにより、半導体集積回路の急激なＰＶＴ特性の変化による遅延量の変化が大きい場合でも、タイミングマージン最適値が得られるため、かかる半導体集積回路を含むシステムが安定動作可能になる。
【００２５】
このとき、上記実施の形態において、タイミングマージン最適値は、遅延パラメータの最大値と最小値との中間値から算出されることとしてもよい。
【００２６】
このような構成とすることにより、安定したタイミングマージンが確保されるようになるので、システムの高負荷動作中も常にマージンを持った状態で動作するようになり、かかるシステムの安定動作が可能となる。
【００２７】
このとき、上記実施の形態において、クロック遅延調整回路は、入力クロック信号に対してクロック周期を等分するように遅延を与えるＤＬＬ回路であり、このＤＬＬ回路は、入力クロック信号を入力し、遅延させて出力クロック信号を出力するクロック用可変遅延回路と、クロック用可変遅延回路における入力クロック信号に対する遅延量を設定する選択信号を出力する遅延量設定回路と、入力クロック信号とクロック用可変遅延回路の出力をフィードバックさせたフィードバッククロック信号との位相を比較する位相比較回路と、を備え、選択信号がＤＬＬ回路の外部へ出力されることとしてもよい。
【００２８】
このような構成とすることにより、ＤＬＬロック状態の可変遅延回路の遅延量をシステム動作時もモニターできるので、かかるＤＬＬ回路を備える位相調整回路が常にマージンを持った状態で動作することになり、リードアクセスエラー等の破綻が生じることを防止できる。
【発明の効果】
【００２９】
以上説明したように本発明によれば、ＡＳＩＣ等の半導体集積回路において、急激なＰＶＴ特性の変化による遅延量の変化が大きい場合でも、タイミングマージン最適値が得られるため、かかる半導体集積回路を含むシステムが安定動作可能になる。換言すると、従来のシステム構成に比べ、タイミングマージンの中心にレジスタ設定することで、急激なＰＶＴ特性の変化による遅延要素の遅延値の変化に追従可能となるため、システムの安定動作が可能になる。
【発明を実施するための最良の形態】
【００３０】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００３１】
まず、本発明の位相調整回路を含む半導体集積回路の第１の実施の形態に備わるクロック遅延調整回路であるディジタルＤＬＬ回路の構成および基本動作について、図面を使用しながら説明する。図１は、本実施の形態における位相調整回路に備わるディジタルＤＬＬ回路の構成を示すブロック図である。
【００３２】
本実施の形態におけるディジタルＤＬＬ回路１００は、前述した従来のディジタルＤＬＬ回路１０と同様に、クロック用可変遅延回路１０１、カウンタ１０２、位相比較回路１０３、およびＤＱＳ用可変遅延回路１０４を備える。
【００３３】
本実施の形態では、上述した従来例と同様に、ＡＳＩＣ内部のＰＬＬ回路等で作成された入力クロック信号Ｓ１００は、クロック用可変遅延回路１０１を通過してから出力クロック信号Ｓ１０１として出力される。このクロック用可変遅延回路１０１は、クロック用可変遅延回路１０１を構成する不図示の遅延要素の使用個数を可変して、入力クロック信号Ｓ１００をディジタル的に遅延させる機能を有するものであり、かかる遅延量は、後述のカウンタ１０２が出力する選択信号Ｓ１０３の値によって決定される。  
【００３４】
位相比較回路１０３は、入力クロック信号Ｓ１００の位相とクロック用可変遅延回路１０１の出力クロック信号Ｓ１０１をフィードバックしたフィードバッククロック信号Ｓ１０２の位相との比較を行い、かかる信号Ｓ１０１、Ｓ１０２の位相差の分量値に比例するその比較結果をカウンタ１０２へ出力する機能を有する。また、入力クロック信号Ｓ１００の位相とフィードバッククロック信号Ｓ１０２の位相が一定の関係を維持している場合には、ディジタルＤＬＬ回路１００は、ロック状態となるが、その際に、位相比較回路１０３は、ＤＬＬロック信号Ｓ１０８をＤＱＳ用可変遅延回路１０４に送信する他に、ディジタルＤＬＬ回路１００の外部に有するレジスタ制御を行う不図示のＣＰＵ（ Central Processing Unit ）に出力する。なお、かかるＤＬＬロック信号Ｓ１０８は、ロック状態または非ロック状態の何れの状態でも、レジスタ制御を行うＣＰＵ等に出力されるが、ＤＬＬロック信号Ｓ１０８の極性によって、ディジタルＤＬＬ回路１００のロック状態/非ロック状態をＣＰＵが判断し、ロック状態でない場合には、ＤＤＲへのライト/リードアクセスをしないように制御される。
【００３５】
カウンタ１０２は、位相比較回路１０３での入力クロック信号Ｓ１００の位相とクロック用可変遅延回路１０１の出力クロック信号Ｓ１０１の位相との比較結果をカウンタ値に変換して、一時的に保持する機能を有する。そして、カウンタ１０２は、この一時的に保持しているカウンタ値を選択信号Ｓ１０３としてクロック用可変遅延回路１０１に出力することで、クロック用可変遅延回路１０１から出力されるフィードバッククロック信号Ｓ１０２の遅延量を制御する。すなわち、カウンタ１０２は、位相比較回路１０３に入力される入力クロック信号Ｓ１００の位相とフィードバッククロック信号Ｓ１０２の位相との比較結果に基づいて、その両者の位相差を少なくするようにカウンタ値を増減させ、選択信号Ｓ１０３としてクロック用可変遅延回路１０１に出力する。これによって、入力クロック信号Ｓ１００の位相とフィードバッククロック信号Ｓ１０２の位相が一定の関係を維持するように、ディジタルＤＬＬ回路１００は動作して、ロック状態となる。例えば、入力クロック信号Ｓ１００の位相とフィードバッククロック信号Ｓ１０２の位相がちょうどクロック周期の１周期分の位相差の関係を維持して、ディジタルＤＬＬ回路１００がロック状態となった場合に、遅延要素１個の遅延量をＤ、ロック状態のカウンタ値をＮとすると、クロック周期Ｔは、Ｔ＝Ｄ＊Ｎとなる。
【００３６】
ＤＱＳ用可変遅延回路１０４は、クロック用可変遅延回路１０１と同様に、不図示の遅延要素の使用個数を変更させて、入力ＤＱＳ信号Ｓ１０４をディジタル的に遅延させる回路となっている。ＤＱＳ用可変遅延回路１０４は、ＤＬＬロック信号Ｓ１０８がロック状態であるときの選択信号Ｓ１０３のカウンタ値Ｎを利用して、入力ＤＱＳ信号Ｓ１０４をディジタル的に遅延させて、出力ＤＱＳ信号Ｓ１０５がＴ／４の遅延となるように、レジスタ制御を行うＣＰＵ等から入力される遅延パラメータＳ１０６で、ＤＱＳ用可変遅延回路１０４の遅延要素の使用個数ｎを制御する（Ｎ／４＝ｎ）。この遅延パラメータＳ１０６でのＤＱＳ用可変遅延回路１０４の遅延要素の使用個数ｎの変更は、ＤＤＲメモリとのリードアクセス期間には、実行されないようにしなければならない。従って、通常、ディジタルＤＬＬ回路１００を用いたシステム起動時に、位相比較回路１０３から供給されるＤＬＬロック信号Ｓ１０８によって、ディジタルＤＬＬ回路１００がロック状態であることを確認した上で、再度入力ＤＱＳ信号Ｓ１０４を同期化させるために、ＣＰＵ等のディジタルＤＬＬ回路１００の外部から入力されるＲＥＳＹＮＣ信号Ｓ１０７をアクティブにすることで、遅延パラメータＳ１０６でのＤＱＳ用可変遅延回路１０４の遅延要素の使用個数ｎの変更が行われる。例えば、クロック周期Ｔ＝４０００ｐｓ、遅延要素１個の遅延量Ｄ＝１００ｐｓの場合では、上述したように、カウンタ値Ｎ＝４０段でロック状態となるため、遅延要素の使用個数ｎ＝Ｎ／４＝４０／４＝１０段となる。また、Ｄ＊ｎ＝１００＊１０＝１０００ｐｓ＝Ｔ／４となる。これによって、出力ＤＱＳ信号Ｓ１０５は、Ｔ／４の遅延を得ることが出来る。
【００３７】
本実施の形態では、半導体集積回路におけるシステム高負荷動作中等における急激なＰＶＴ特性の変化が発生した場合でも、タイミングマージンが大きく安定動作が可能であるという特徴点を備えている。すなわち、本実施の形態の位相遅延回路を含む半導体集積回路における急激なＰＶＴ特性の変化を観測するために、図１に示すように、カウンタ１０２から出力される選択信号Ｓ１０３がディジタルＤＬＬ回路１００に含まれるクロック用可変遅延回路１０１やＤＱＳ用可変遅延回路１０４に送信される他に、レジスタ制御を行うＣＰＵ等のディジタルＤＬＬ回路１００の外部へ出力される。かかる選択信号Ｓ１０３がディジタルＤＬＬ回路１００の外部に有するＣＰＵに出力されることによって、かかるＣＰＵで選択信号Ｓ１０３の変化をグラフ化( 縦軸：カウンタ値、横軸：時間 )するようにして選択信号Ｓ１０３が観測される。そして、かかる選択信号Ｓ１０３としてカウンタ１０２から出力されるカウンタ値Ｎの変化の急激な変化やかかる変化の最大値等が算出される。このように、ＤＬＬロック信号Ｓ１０８がロック状態であるときに、選択信号Ｓ１０３としてカウンタ１０２から出力されるカウンタ値Ｎを用いてクロック用可変遅延回路１０１に内蔵される遅延要素１個の遅延量Ｄが計算できる。例えば、クロック周期Ｔ＝４０００ｐｓ、カウンタ値Ｎ＝４０の場合では、Ｄ＝Ｔ／Ｎ＝４０００／４０＝１００ｐｓとなり、遅延要素１個の遅延量Ｄは１００ｐｓであることがわかる。
【００３８】
以上説明したように、本実施の形態では、ディジタルＤＬＬ回路１００がロック状態である際の選択信号Ｓ１０３のカウンタ値Ｎを観測することによって、クロック用可変遅延回路１０１に備わる遅延要素１個の遅延量Ｄが計算できる。換言すると、遅延量を設定するカウンタ値Ｎの変化をディジタルＤＬＬ回路１００の外部から観測可能となる。このため、例えば、入力クロック信号Ｓ１００の位相とフィードバッククロック信号Ｓ１０２の位相がちょうどクロック１周期の関係を維持して、ロック状態となった場合に、遅延要素１個の遅延量をＤ、ロック状態のカウンタ値をＮとすると、クロック周期ＴはＤ＊Ｎと導出される（Ｔ＝Ｄ＊Ｎ）。
【００３９】
次に、本実施の形態のディジタルＤＬＬ回路１００を利用したＤＤＲメモリインターフェイスでタイミングマージンを確保するための動作について説明する。図２は、本実施の形態のディジタルＤＬＬ回路を含む位相調整回路を利用したＤＤＲメモリインターフェイスでタイミングマージンを確保するための動作を示すフローチャートである。なお、本実施の形態のディジタルＤＬＬ回路１００を利用したＤＤＲメモリインターフェイスの構成は、ディジタルＤＬＬ回路１００を除く部分は、図６に示す従来の構成と略同一なので、かかる説明は省略する。また、以下の説明では、ＤＱＳ用可変遅延回路１０４の遅延要素の使用個数ｎを制御する遅延パラメータＳ１０６は、かかる遅延要素の使用個数ｎで表現されるものとする。
【００４０】
本実施の形態の位相調整回路は、ＤＤＲ−ＳＤＲＡＭとのライト／リードアクセスにおいて、常にマージンを持った状態を維持することが可能なようにディジタルＤＬＬ回路１００を制御することを特徴とする。かかるディジタルＤＬＬ回路１００の制御動作について以下説明する。
【００４１】
まず、ＤＤＲメモリインターフェイスでは、ＤＤＲメモリに対してライトコマンドを発行すると共に（工程Ｓ２００）、本実施の形態のディジタルＤＬＬ回路１００を含む半導体集積回路に備わる内蔵メモリにライトデータＷＤＡＴを書き込む（工程Ｓ２０１）。
【００４２】
次に、ＤＤＲメモリに対してライトコマンドと同じアドレスに対してリードコマンドを発行して（工程Ｓ２０２）、リードデータＲＤＡＴとリードストローブがＤＤＲインターフェイスに入力される（工程Ｓ２０３）。このとき、リードデータであるＤＱ信号とリードストローブであるＤＱＳ信号は、図４に示されるように、同位相で入力される。
【００４３】
次に、ディジタルＤＬＬ回路１００によって、ＤＱＳ信号は遅延パラメータｎ（ＤＱＳ用可変遅延回路１０４の遅延要素の使用個数ｎ）によって決定される遅延段数分の遅延が実行される（工程Ｓ２０４）。ここで、ＤＱＳ用可変遅延回路１０４の遅延要素の使用個数を表す遅延パラメータｎは、０〜Ｎの値を取り、まず、最初は、遅延パラメータｎをｎ＝０に設定する。
【００４４】
その後、ディジタルＤＬＬ回路１００で遅延させたＤＱＳ信号を用いて、リードデータＲＤＡＴを取得する（工程Ｓ２０５）。このとき、取得したリードデータＲＤＡＴは、内蔵メモリに書き込まれる（工程Ｓ２０６）。
【００４５】
そして、内蔵メモリに書き込まれたライトデータＷＤＡＴとリードデータＲＤＡＴの値を比較する（工程Ｓ２０７）。この工程Ｓ２０７でライトデータＷＤＡＴとリードデータＲＤＡＴを比較することで、リードデータＲＤＡＴが正しく取得できたか否かが確認される。このとき、ライトデータＷＤＡＴとリードデータＲＤＡＴの値の比較結果が一致しない場合には、遅延パラメータｎを１つ増やしてから工程Ｓ２０２に戻って、再度リードコマンド発行以降、換言すると工程Ｓ２０２以降の工程フローを実行する。
【００４６】
一方、ライトデータＷＤＡＴとリードデータＲＤＡＴの値の比較結果が一致した場合には、次の工程Ｓ２０８に進み、一致したときの遅延パラメータｎ（ＤＱＳ用可変遅延回路１０４の遅延要素の使用個数ｎ）を内蔵メモリに記録する（工程Ｓ２０８）。このとき、内蔵メモリに書き込まれた遅延パラメータｎをｎＤＡＴとする。
【００４７】
そして、ライトデータＷＤＡＴとリードデータＲＤＡＴの値の比較結果が一致した場合の遅延パラメータｎと遅延パラメータｎの最大値であるＮ（ディジタルＤＬＬ回路１００がロック状態でのカウンタ値）とを比較する（工程Ｓ２０９）。遅延パラメータｎと遅延パラメータｎの最大値Ｎの比較結果が一致しない場合には、遅延パラメータｎを１つ増やしてから工程Ｓ２０２に戻って、再度リードコマンド発行以降、換言すると工程Ｓ２０２以降の工程のフローを実行する。
【００４８】
一方、遅延パラメータｎと遅延パラメータの最大値Ｎの比較結果が一致した場合には、遅延パラメータｎは、全ての範囲のパラメータ値を満たしたことになる。このように遅延パラメータｎと遅延パラメータｎの最大値Ｎの比較結果が一致した場合には、その後、内蔵メモリに記録された遅延パラメータｎＤＡＴから、最大値ＭＡＸ（ｎＤＡＴ）と最小値ＭＩＮ（ｎＤＡＴ）を算出する（工程Ｓ２１０）。本実施の形態では、この工程Ｓ２１０で算出された最大値ＭＡＸ（ｎＤＡＴ）と最小値ＭＩＮ（ｎＤＡＴ）がタイミングマージンとなる。その後、次の工程Ｓ２１１で最大値ＭＡＸ（ｎＤＡＴ）と最小値ＭＩＮ（ｎＤＡＴ）の中間値ｔＡＶＥを ｔＡＶＥ＝（ ＭＡＸ（ｎＤＡＴ）＋ＭＩＮ（ｎＤＡＴ） ）／２ の式から算出して内蔵メモリに記録する。このように、内蔵メモリに記録された遅延パラメータｎＤＡＴの最大値ＭＡＸ（ｎＤＡＴ）と最小値ＭＩＮ（ｎＤＡＴ）の中間値を算出して、かかる中間値をディジタルＤＬＬ回路１００のタイミングマージンの中心にレジスタ設定することにより、システムの高付加動作中も常にマージンを維持可能な最適値となるタイミングマージンが確保される。このため、本実施の形態の位相調整回路を含む半導体集積回路は、システムの高負荷動作中も常にマージンを持った状態で動作することになり、リードアクセスエラー等を引き起こすことなく、かかるシステムの安定動作が可能となる。
【００４９】
なお、上述した実施の形態では、内蔵メモリに書き込まれるライトデータＷＤＡＴやリードデータＲＤＡＴがそれぞれ１つとして記載されているが、内蔵メモリに書き込まれるこれらライトデータＷＤＡＴやリードデータＲＤＡＴは、多数でも構わないものとする。また、ライトデータ／リードデータを書き込む内蔵メモリと、ライトアクセス／リードアクセスする際のタイミングマージンが確保されたときのディジタルＤＬＬ回路１００の遅延量を調整する遅延パラメータｎの値を記録する内蔵メモリと、タイミングマージンの最適値を記録する内蔵メモリは、本実施の形態では、それぞれ別個の内蔵メモリとしているが、アドレスを細かく制御すれば、同一の内蔵メモリとしてもよい。さらに、上述したＤＤＲメモリインターフェイスでのタイミングマージンを確保するために、図２に示すような動作フローを数回実行することによって、工程Ｓ２１０で算出される内蔵メモリに記録された遅延パラメータｎＤＡＴの最大値ＭＡＸ（ｎＤＡＴ）および最小値ＭＩＮ（ｎＤＡＴ）の各々の精度が向上する。このため、かかる最大値ＭＡＸ（ｎＤＡＴ）と最小値ＭＩＮ（ｎＤＡＴ）の中間値ｔＡＶＥの値がより正確に得られるようになる。
【００５０】
このように、位相調整回路に備わるディジタルＤＬＬ回路１００は、クロック信号をちょうど１周期遅延させる状態でロックするように動作し続けるため、本実施の形態では、ＤＬＬロック状態のクロック用可変遅延回路１０１の遅延量をシステム動作時も観測・測定する。そして、かかる遅延量の変化が大きい場合、位相調整回路を含む半導体集積回路のＰＶＴ特性の変化が大きいと判定される。また、システムの高負荷動作中も、システム動作の合間で上述のタイミングマージン測定ルーチンを起動させて、タイミングマージンの中心値を計算し、かかる中心値の変化とクロック用可変遅延回路１０１の遅延量の変化が大きい場合には、レジスタ値を更新して、常にＤＤＲアクセスのマージンがある状態にすることにより、かかる半導体集積回路のシステムが安定動作出来るようになる。
【００５１】
次に、本実施の形態の位相調整回路の動作について説明する。図３は、本実施の形態による位相調整回路の動作を示すフローチャートである。
【００５２】
本実施の形態の位相調整回路のＤＤＲメモリインターフェイスでは、前述したように、ディジタルＤＬＬ回路１００から出力される選択信号Ｓ１０３のカウンタ値Ｎ（ディジタルＤＬＬ回路１００がロック状態でのカウンタ値）を定期的に観測する（工程Ｓ３００）。かかる観測としては、例えば、位相調整回路を含むＡＳＩＣに備わるＣＰＵに転送された選択信号Ｓ１０３の変化をグラフ化(縦軸：カウンタ値、横軸：時間)する方法が挙げられる。そして、カウンタ値変化の急激な変化や変化の最大値等をＣＰＵで算出する。かかる工程Ｓ３００において、観測したカウンタ値Ｎの変化が小さい場合では、ＰＶＴの変化が小さいと判定され、システム動作中の本実施の形態の位相調整回路に備わるＤＱＳ用可変遅延回路１０４の遅延要素の使用個数を表す遅延パラメータｎでタイミングマージンが確保されているので、システムは安定動作する。観測したカウンタ値Ｎの変化が大きい場合には、ＰＶＴの変化が大きいと判定され、次の工程Ｓ３０１へ進む。なお、かかる工程Ｓ３００において、カウンタ値Ｎの大小の判定基準は、本実施の形態の位相調整回路を含むＡＳＩＣのシステム規模等により異なるものとする。
【００５３】
工程Ｓ３００でカウンタ値Ｎの変化が大きい場合には、次に、かかるシステム動作中のＤＱＳ用可変遅延回路１０４の遅延要素の使用個数を表す遅延パラメータｎと、タイミングマージン測定ルーチンを起動させて算出したタイミングマージンの中心値、すなわち上述した図２に示すフローで算出したｔＡＶＥ値を比較する（工程Ｓ３０１）。この工程Ｓ３０１でＤＱＳ用可変遅延回路１０４の遅延要素の使用個数を表す遅延パラメータｎと算出されたｔＡＶＥ値との比較結果の差分が小さい場合、タイミングマージンが確保された良好な状態であると判定されるため、本実施の形態の位相調整回路を含む半導体集積回路のシステムは安定動作する。
【００５４】
一方、かかる遅延パラメータｎとｔＡＶＥ値との比較結果の差分が大きい場合、ディジタルＤＬＬ回路１００のタイミングマージンが悪化している状態であると判定されるため、次に、システム動作中のＤＱＳ用可変遅延回路１０４の遅延要素の使用個数を表す遅延パラメータｎをタイミングマージンが確保された値であるｔＡＶＥ値に設定し直す（工程Ｓ３０２）。これらの各工程を経ることによって、本実施の形態の位相調整回路を含む半導体集積回路のシステムが安定動作することが可能になる。
【００５５】
このように本実施の形態では、半導体集積回路のシステムの高負荷動作中もリードアクセスのエラーが発生しないように、ライト／リードアクセス時のディジタルＤＬＬ回路１００のタイミングマージンを測定し、ディジタルＤＬＬ回路１００のタイミングマージンの中心値にレジスタ設定することで、常にマージンを持った状態で動作するようにすることによって、ライトやリードのアクセスエラーが防止される。
【００５６】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００５７】
例えば、上記の第１の実施の形態では、位相調整回路に含まれるクロック遅延調整回路としてディジタルＤＬＬ回路を使用した場合を説明しているが、かかるクロック遅延調整回路としては、アナログＤＬＬ回路やＰＬＬ回路を代用することも可能である。
【図面の簡単な説明】
【００５８】
【図１】本発明の第１の実施形態における半導体集積回路に備わるディジタルＤＬＬ回路の構成を示すブロック図である。
【図２】同実施の形態によるＤＤＲメモリインターフェイスでタイミングマージンを確保するための動作を示すフローチャートである。
【図３】同実施の形態による位相調整回路の動作を示すフローチャートである。
【図４】ＤＤＲメモリインターフェイスにおけるＤＱＳ信号とＤＱ信号のタイミングの一例を示すタイミングチャートである。
【図５】従来のディジタルＤＬＬ回路の構成の一例を示すブロック図である。
【図６】従来のディジタルＤＬＬ回路を利用したＤＤＲメモリインターフェイスの構成の一例を示すブロック図であり、ＤＤＲメモリからデータを読み出す動作について説明する図である。
【符号の説明】
【００５９】
１００    ディジタルＤＬＬ回路
１０１    クロック用可変遅延回路
１０２    カウンタ
１０３    位相比較回路
１０４    ＤＱＳ用可変遅延回路
Ｓ１００    入力クロック信号
Ｓ１０１    出力クロック信号
Ｓ１０２    フィードバッククロック信号
Ｓ１０３    選択信号
Ｓ１０４    入力ＤＱＳ信号
Ｓ１０５    出力ＤＱＳ信号
Ｓ１０６    遅延パラメータ
Ｓ１０７    ｒｅｓｙｎｃ信号
Ｓ１０８    ＤＬＬロック信号
【図１】
2008067245.tif 000003
【図２】
2008067245.tif 000004
【図３】
2008067245.tif 000005
【図４】
2008067245.tif 000006
【図５】
2008067245.tif 000007
【図６】
2008067245.tif 000008