(57)【要約】【課題】伝送条件の悪化や不整合があってもデータ信号のラッチ動作を誤らないメモリインターフェース回路を提供する。【解決手段】発振回路５０と遅延回路１６と位相比較器６０とデータラッチ１７を備えるメモリインターフェース回路２１であって、クロックに同期してＤＱＳ信号１２とデータ信号１３を出力するＤＤＲ−ＳＤＲＡＭ１１を接続可能であり、遅延回路１６は発振回路５０が出力するクロックを遅延してリードクロック５３として出力し、位相比較器６０は入力されたデータストローブ信号５７とリードクロック５３の位相差を測定し、遅延回路１６は測定した位相差に従ってリードクロック５３の遅延時間を加減し、データラッチ１７はリードクロック５３に同期してデータ信号１３を取り込む。【選択図】図１０
2008071018.tif 000002
【特許請求の範囲】
【請求項１】
クロック発生回路と遅延回路と位相差測定回路とメモリ回路を備えるメモリインターフェース回路であって、
クロックに同期してデータストローブ信号とデータ信号 を出力するシンクロナスメモリを接続可能であり、
前記遅延回路は前記クロック発生回路が出力するクロックを遅延してリードクロックとして出力し、
前記位相差測定回路は入力された前記データストローブ信号と前記リードクロックの位相差を測定し、
前記遅延回路は前記測定した位相差に従って前記リードクロックの 遅延時間を加減し、
前記メモリ回路は前記リードクロックに同期して前記データ信号を取り込むことを特徴とするメモリインターフェース回路。
【請求項２】
前記メモリ回路はシンクロナスメモリのデータ幅に対応したビット幅を持つラッチ回路またはスタティックＲＡＭであることを特徴とする請求項１のメモリインターフェース回路。
【請求項３】
前記位相差測定回路は前記データストローブ信号の立ち上がりエッジの前記リードクロックに対する位相差と、前記データストローブ信号の立ち下がりエッジの前記リードクロックに対する位相差とを測定し、両者の平均を前記測定した位相差として出力する機能を備えることを特徴とする請求項１乃至２のメモリインターフェース回路。
【請求項４】
前記位相差測定回路は前記データストローブ信号の前記リードクロックに対する位相差を複数回測定するものであり、複数回の測定結果を平均化した値を前記測定した位相差として出力する機能を備えることを特徴とする請求項１乃至３のメモリインターフェース回路。
【請求項５】
前記位相差測定回路はリードサイクル中に位相差を測定し、リードサイクル中でない時は出力する位相差を保持することを特徴とする請求項１乃至４のメモリインターフェース回路。
【請求項６】
前記位相差測定回路は複数の出力を持つ多出力遅延回路と並列ラッチ回路を備え、
前記多出力遅延回路の入力は前記クロック発生回路が出力するクロックであり、
前記並列ラッチ回路は前記データストローブ信号の変化点における前記多出力遅延回路の複数の出力の状態をラッチすることにより位相差を測定することを特徴とする請求項１乃至５のメモリインターフェース回路。
【請求項７】
前記位相差測定回路は複数の出力を持つ多出力遅延回路とカウンタと並列ラッチ回路を備え、
前記多出力遅延回路の入力は前記クロック発生回路が出力するクロックであり、
前記カウンタは前記クロック発生回路が出力するクロックをカウントするものであり、
前記並列ラッチ回路は前記データストローブ信号の変化点における前記カウンタと前記多出力遅延回路の複数の出力の状態をラッチすることにより位相差を測定することを特徴とする請求項１乃至５のメモリインターフェース回路。
【請求項８】
前記位相差測定回路はカウンタと並列ラッチ回路を備え、
前記カウンタは前記クロック発生回路が出力するクロックをカウントするものであり、
前記並列ラッチ回路は前記データストローブ信号の変化点における前記カウンタの出力の状態をラッチすることにより位相差を測定することを特徴とする請求項１乃至５のメモリインターフェース回路。
【請求項９】
前記位相差測定回路が有するカウンタはジョンソンカウンタまたはグレイコードカウンタであることを特徴とする請求項７乃至８のメモリインターフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンクロナスメモリを接続する メモリインターフェースを有するメモリインターフェース回路に係り、特にシンクロナスメモリのデータ信号をラッチする技術に関する。
【背景技術】
【０００２】
シンクロナスメモリはデータを高速にバースト転送するので、データ信号をラッチするリードクロックのタイミングを正しく制御する技術が必須である。ＤＤＲ−ＳＤＲＡＭはデータ信号をラッチするリードクロックを作るため、ＤＱＳという信号を追加していることと、ＤＱＳ信号の立ち上がりと立ち下がりに同期してデータ信号が変化することが特徴である。特許文献１はＤＤＲ−ＳＤＲＡＭインターフェースを有する半導体集積回路に関するものであり、ＤＱＳ信号を１クロック周期の４分の１だけ遅延したものをリードクロックとする構成を前提に、遅延素子の遅延時間が拡散ばらつきなどで変動した場合でも１クロック周期の４分の１の遅延時間を正しく作る方法を提案している。
【０００３】
図１１は特許文献１の構成におけるリードクロックの経路を示す図であり、図１１において、１１はＤＤＲ−ＳＤＲＡＭ 、１２はＤＱＳ信号、１３ａ、１３ｂ はデータ信号、１５は入力バッファ、１６は遅延回路、１７はデータラッチ、１８はリードデータ、２１はメモリインターフェース回路、２２はリードクロック発生回路、５７ はデータストローブ信号、５３はリードクロックである。
【０００４】
以下、図１１を用いて特許文献１の構成におけるデータ信号１３のラッチ動作 を説明する。ＤＤＲ−ＳＤＲＡＭ１１はメモリインターフェース回路２１に接続されている。ＤＤＲ−ＳＤＲＡＭ１１をリードアクセスすると、ＤＤＲ−ＳＤＲＡＭ１１はＤＱＳ信号１２とデータ信号１３ａを同時に出力する。メモリインターフェース回路２１はＤＱＳ信号１２とデータ信号１３ａを入力バッファ１５を介して取り込む。入力バッファ１５を経由したＤＱＳ信号１２はデータの１ワード毎に反転する信号なので、データをラッチする為のデータストローブ信号５７として利用可能である。リードクロック発生回路２２はデータストローブ信号５７を入力として、これを遅延回路１６で遅延することによりリードクロック５３を生成する。特許文献１では遅延回路１６の部分は複数の遅延回路を組み合わせた構成になっているが、データストローブ信号５７を遅延してリードクロック５３を生成していることに変わりはない。
【０００５】
遅延回路１６ではデータストローブ信号５７ をクロックとみなした時の９０度位相分、言い換えれば４分の１周期分だけデータストローブ信号５７を遅延してリードクロック５３を生成している。この遅延量はデータの更新間隔を基準にするとデータ更新間隔の半分であり、ＤＤＲ−ＳＤＲＡＭ１１ではＤＱＳ信号１２とデータ信号１３ａを同時に変化させているので、リードクロック５３の立ち上がりエッジと立ち下がりエッジは入力バッファ１５を経由したデータ信号１３ｂの変化点と変化点の中央に位置することになる。データラッチ１７はデータ信号１３ｂを前記リードクロック５３でラッチしてリードデータ１８とする。
【０００６】
図１２は特許文献１の構成における回路上の信号波形を示す波形図であり、図中の外部ＤＱＳはＤＤＲ−ＳＤＲＡＭ１１が出力したＤＱＳ信号１２、外部データはＤＤＲ−ＳＤＲＡＭ１１が出力したデータ信号１３ａ、内部ＤＱＳは入力バッファ１５が出力したデータストローブ信号５７、内部データは入力バッファ１５が出力したデータ信号１３ｂ、リードクロックは遅延回路１６が出力したリードクロック５３の波形を示す。
【０００７】
ＤＤＲ−ＳＤＲＡＭ１１は外部ＤＱＳと外部データを同時に出力する。外部データは外部ＤＱＳの立ち上がりと立ち下がりに同期して変化しており、外部ＤＱＳの変化点と外部データの変化点の時間差は規格内である。外部ＤＱＳと外部データは入力バッファ１５を経由してメモリインターフェース回路２１内に取り込まれる。同じチップの近接した位置のバッファは特性が揃うので、ＤＤＲ−ＳＤＲＡＭ１１が出力した外部ＤＱＳと外部データの波形の相対関係は、入力バッファ１５を経由して内部ＤＱＳと内部データとなった後も、ほぼ保存される。遅延回路１６で内部ＤＱＳを４分の１周期だけ遅延してリードクロックとすると、リードクロックの立ち上がりと立ち下がりはデータの変化点と変化点の中央付近に位置するので、安定した内部データのラッチが可能になると期待される。
【０００８】
しかし特許文献１のＳＤＲＡＭインターフェース回路では対応できない問題がいくつかあり、その一つがＤＱＳ信号のデューティー比が必ずしも５０％にならないことである。
【０００９】
図１３は外部ＤＱＳ のデューティー比が変化した場合の波形図である。先ず、ＤＤＲ−ＳＤＲＡＭ１１が出力した外部ＤＱＳは規格の許容範囲内でデューティー比が５０％からずれていることがある。外部ＤＱＳの立ち上がり時間と立ち下がり時間が十分に短ければデューティー比の変化量も限られるが、携帯機器では消費電力の抑制と不要輻射の低減のため、信号線の変化速度を抑える設計が好まれており、ＭＲＳレジスタセットを拡張して信号線の駆動電流を下げるオプションを備えたＳＤＲＡＭも使われている。信号線の駆動電流を減らすと外部ＤＱＳが緩やかに変化するため、立ち上がり時と立ち下がり時の駆動電流の差によってデューティー比がずれることがある。
【００１０】
次に外部ＤＱＳが入力バッファ１５を通過して内部ＤＱＳとなる際に、ＤＤＲ−ＳＤＲＡＭ１１の出力電圧と、入力バッファ１５の閾値電圧の差により、内部ＤＱＳのデューティー比がずれることがある。この場合も外部ＤＱＳの変化が緩やかであると、ＤＤＲ−ＳＤＲＡＭ１１の出力電圧と入力バッファ１５の閾値電圧の少しの違いによりデューティー比が大きく変化することになる。
【００１１】
また、最近の半導体プロセスの微細化により内部のロジックコア部分の耐圧が低下してきているため、入出力バッファ部よりもロジックコア部分の電源電圧を下げ、間にレベル変換回路（図示せず）を挟む構成が一般化している。この場合、レベル変換回路でもデューティー比が変化することがある。遅延回路１６も遅延素子を多数並べたものなので、個々の遅延素子で信号の立ち上がりと立ち下がりに対する遅延時間が違っていると、多数の素子を通過している間にデューティー比が変化することがある。
【００１２】
図１３では外部ＤＱＳが入力バッファ１５を経て内部ＤＱＳに、更に遅延回路１６を経てリードクロックになる過程でＨ期間の幅が広がり、Ｌ期間の幅が狭まった例を示している。すると、立ち上がりエッジが最適なタイミングより早くなり、立ち下がりエッジは逆に遅くなる。図は略すが、Ｈ期間の幅がＬ期間の幅より狭くなった場合もエッジが逆方向に移動して理想的なラッチタイミングからずれる。
【００１３】
ＤＤＲ−ＳＤＲＡＭ１１の仕様ではメモリインターフェース回路からＤＤＲ−ＳＤＲＡＭ１１へのクロック供給は正相と逆相の２相クロックで伝送しているので、デューティー比が変化することは無く、ＤＤＲ−ＳＤＲＡＭ１１の外部データの変化点は等間隔になる。従って、メモリインターフェース回路における最適なデータラッチタイミングは等間隔なのが最良であるが、リードクロックを生成するまでの過程でデューティー比が変化すると、データラッチタイミングである立ち上がりエッジと立ち下がりエッジが逆方向に移動するため、最適なデータラッチタイミングから外れてくる。
【００１４】
更に信号の同時変化による電圧降下やグランドバウンスによって外部ＤＱＳの変化点が前後する問題がある。ｘ３２タイプと呼ばれるＤＤＲ−ＳＤＲＡＭ１１では外部データ３２本に対して外部ＤＱＳ４本が出力されている。外部データ３１本と外部ＤＱＳ４本が同時にＬからＨに変化し、外部データの１本だけがＨからＬに変化する状況を考えると、駆動電流がＤＤＲ−ＳＤＲＡＭ１１の電源ラインから３５本の信号線に同時に流れ込むため、ＤＤＲ−ＳＤＲＡＭ１１の出力バッファ（図示せず）の電源入力が一時的に電圧降下するため外部ＤＱＳの立ち上がりは遅くなる。一方、ＨからＬに変化する１本の外部データは出力バッファの電源入力の電圧降下に後押しされるため、早く立ち下がる。別の例として、外部データ３２本がＨからＬに変化し、外部ＤＱＳがＬからＨに変化する状況を考えると、ＤＤＲ−ＳＤＲＡＭ１１の出力バッファが外部データ３２本の負荷容量から電荷を吸い出してグランドに流すため、ＤＤＲ−ＳＤＲＡＭ１１内のグランドの電圧が一時的に高くなる。この現象はグランドバウンスと呼ばれる。外部データはグランドの電圧上昇によってＨからＬへの変化が遅くなるのに対し、外部ＤＱＳは後押しされてＬからＨに早く変化する。
【００１５】
このように信号が変化するタイミングは電圧降下やグランドバウンスによっても変化することがあり、外部ＤＱＳと外部データのタイミング変化は同じ方向のこともあるし、反対方向のこともある。外部ＤＱＳを遅延させてリードクロックを作ると、外部ＤＱＳと外部データのタイミング変化が逆方向の時に、タイミング変化の幅によっては外部データを正しくラッチできない可能性がある。電圧降下やグランドバウンスは多層基板を用いて電源ラインやグランドラインのパターンを広く厚くすれば抑えられるが、小型軽量の携帯機器では小さくて薄くて軽い基板が用いられるため、電圧降下やグランドバウンスを十分に抑えられないことがある。
【００１６】
このように外部ＤＱＳを遅延して作ったリードクロックのエッジは最適なラッチタイミングに対して前後することがあり、外部データを誤ってラッチすることがある。
【特許文献１】特開２００６−１０７３５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明が解決しようとする課題は、伝送条件の悪化や不整合があるとデータ信号のラッチ動作を誤ることである。
【課題を解決するための手段】
【００１８】
上記課題を解決するため、本発明のメモリインターフェース回路はクロック発生回路と遅延回路と位相差測定回路とメモリ回路を備えるメモリインターフェース回路であって、クロックに同期してデータストローブ信号とデータ信号を出力するシンクロナスメモリを接続可能であり、前記遅延回路は前記クロック発生回路が出力するクロックを遅延してリードクロックとして出力し、前記位相差測定回路は入力された前記データストローブ信号と前記リードクロックの位相差を測定し、前記遅延回路は前記測定した位相差に従って前記リードクロックの遅延時間を加減し、前記メモリ回路は前記リードクロックに同期して前記データ信号を取り込むことを特徴とする。
【発明の効果】
【００１９】
本発明によれば、ＳＤＲＡＭの出力信号と入力バッファの閾値の不整合や入力バッファと内部回路の間のレベル変換に伴ってデューティー比が変化しても、データ信号をラッチするクロックはクロック発生回路が発生するクロックを遅延回路で遅延したものなので、前記デューティー比の変化はラッチタイミングに影響を与えない。ＤＱＳ信号のタイミングが電圧降下やグランドバウンスによって変化しても、前記位相差測定回路はＤＱＳ信号のエッジのタイミングを複数回測定した結果を位相差として出力するので、同時変化による外乱やノイズによってラッチタイミングが前後する幅は狭くなる。このようにデータ信号をラッチするタイミングが等間隔になり、かつ外乱に対して反応しにくくなるので、より安定した信頼性の高いデータ信号のラッチ動作を行うことが出来る。
【００２０】
クロックやデータを伝播するゲートや入出力バッファは温度変化や電源電圧変動に応じて伝播遅延時間が変化するが、温度は秒単位のゆっくりした変化であり、電源電圧は電源回路の設計が適当であれば一定の動作電圧の範囲内でゆっくり変化するよう制御されている。従って、短時間的に見てＳＤＲＡＭへのクロック出力からデータ信号入力までの遅延時間は本来一定であり、変動は外乱によるものとして扱うことができる。
【００２１】
信号の同時変化による電圧降下やグランドバウンス、レベル変換に伴うデューティー比の変化、信号線間のクロストーク、電源やグランドからのノイズの回り込みなどが外乱として挙げられる。これらが仮にデータ信号とＤＱＳ信号の遅延時間を必ず同じ方向に変化させるならば、ＤＱＳ信号を一定時間遅延させてリードクロックとした方が、ＳＤＲＡＭへのクロック出力から一定時間後にデータ信号をラッチするより有利であると言える。しかし、前述のようにデューティー比のズレの影響は立ち上がりと立ち下がりで逆方向であり、電圧降下やグランドバウンスによるタイミング変動の影響は、データ信号とＤＱＳ信号で同じ方向に働くこともあれば逆方向に働くこともあるので、ＤＱＳ信号を一定時間遅延させてリードクロックとした方がデータ信号をラッチする上で不利になる。簡単化して例えるなら、外乱でデータ信号がΔＴだけ余分に遅れる時にＤＱＳ信号もΔＴだけ余分に遅れるならベストのラッチタイミングとなるが、ＤＱＳ信号が逆にΔＴだけ早くなるとΔＴの２倍だけデータ信号より早いタイミングでラッチすることになるので、ΔＴだけ余分に遅れたデータ信号を一定のタイミングでラッチしていた方がエラーレートが低くなるのである。
【００２２】
温度や電源電圧の変化は緩やかなのでデータ信号またはＤＱＳ信号の遅延時間を測定することによりリードクロックの位相を変化に追従させることができる。前記遅延時間を高域遮断特性を持つフィルタで処理することにより、外乱の影響を受けない最適なリードクロック位相を得ることが可能であり、クロック発生器の出力を遅延して安定した位相を持つリードクロックでデータ信号をラッチすることにより、信頼性の高いデータ転送を実現できる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態について説明する。図１は本発明の実施例におけるリードクロック発生回路のブロック図である。図１において、５０は発振回路、５１はメインシフタ、５２は分周器、５３はリードクロック、５４はサブシフタ、５５は縦列遅延回路、５６は分周器、５７はデータストローブ信号、５８はセレクタ、５９はトリガ信号、６０は位相比較器、６１は積分回路（本実施例では、ＩＩＲフィルタで構成）、６２は制御回路、６３は退避レジスタ、６４はデータラッチ、６５は主遅延量、６７は補正遅延量である。以下、図１を用いてリードクロック発生回路の動作を説明する。
【００２４】
発振回路５０はＳＤＲＡＭクロックの２倍の周波数のクロックを発生する。発生したクロックはメインシフタ５１と分周器５６に出力する。メインシフタ５１は入力クロックを通過させる遅延素子の組み合わせを変えることにより、出力クロックを指定時間だけ遅延させるものである。メインシフタの遅延時間は少なくともＳＤＲＡＭクロックの周期の半分を超えるよう設計する必要がある。
【００２５】
メインシフタ５１が出力する遅延されたクロックは分周器５２で２分周することによりＳＤＲＡＭクロックと同じ周波数のリードクロック５３となる。リードクロック５３はリードクロック発生回路の出力となると同時に、サブシフタ５４に入力される。サブシフタ５４はメインシフタ５１と同様に入力クロックを通過させる遅延素子の組み合わせを変えることにより、出力クロックを指定時間だけ遅延させるものであるが、遅延時間はメインシフタより小さく、少なくともＳＤＲＡＭクロックの周期の４分の１を超えるように設計する。サブシフタ５４の標準の遅延時間はＳＤＲＡＭクロックの周期の８分の１であり、言いかえれば４５度の位相シフトに相当する。サブシフタ５４で遅延されたクロックは縦列遅延回路５５に入力される。
【００２６】
縦列遅延回路５５は遅延素子を縦列接続したものであり、遅延時間が少しずつ異なる複数の出力タップがある。縦列遅延回路５５の複数の出力は位相比較器６０に並列に入力される。縦列遅延回路５５の遅延時間は、中央の出力タップの遅延時間が標準でＳＤＲＡＭクロックの周期の８分の１となるよう設計する。その結果、サブシフタ５４の入力から縦列遅延回路５５の中央の出力タップまでの遅延時間は標準で９０度の位相シフトに相当する。
【００２７】
データストローブ信号５７はデータ信号と同じタイミングで送られてくる同期信号であり、ＤＤＲ−ＳＤＲＡＭではＤＱＳ信号をデータストローブ信号５７として入力する。セレクタ５８はデータストローブ信号５７と分周器５６の出力を切り替える。分周器５６は分周器５２と同様に２分周するカウンタであり、出力するクロックの周波数はＳＤＲＡＭクロックと同じである。リードクロック発生回路は最適化モードと校正モードの二つのモードがあり、最適化モードではデータストローブ信号５７を、校正モードでは分周器５６の出力を選択し、トリガ信号５９として出力する。
【００２８】
位相比較器６０は縦列遅延回路５５の複数のタップの出力をトリガ信号５９のエッジに同期してラッチすることによりクロックとトリガ信号との位相差を測定する。図２は本発明の実施例における縦列遅延回路５５と位相比較器６０のブロック図である。図２において５５は縦列遅延回路、５９はトリガ信号、６０は位相比較器、４１はクロック入力、４２は遅延素子、４３は差動出力バッファ、４４は反転クロック動作のＦＦ群、４５は非反転クロック動作のＦＦ群、４６ａ、４６ｂは加算器、４７は減算器、４８はデータラッチである。以下、図２を用いて位相比較の動作を説明する。縦列遅延回路５５は遅延素子４２を縦列接続したものであり、遅延時間が少しずつ異なる複数の出力タップがある。位相比較器６０はこれら縦列遅延回路５５の複数の出力を反転クロック動作のＦＦ群４４と非反転クロック動作のＦＦ群４５でラッチする。２群のＦＦのクロックはトリガ信号５９を差動出力バッファ４３で反転、非反転の二つのクロックに分配したものである。
【００２９】
クロック入力４１がＬからＨに立ち上がると、縦列遅延回路５５の各タップの出力Ｅ０、Ｅ１、Ｅ２、Ｅ３、Ｅ４は左から順にＬからＨに立ち上がり、右端のタップが最も遅く変化する。この各タップの状態を位相比較器６０の非反転クロック動作のＦＦ群４５でラッチすると、トリガ信号５９の立ち上がりエッジとクロック入力４１の立ち下がりエッジの時間差が、図２中のＦＦの出力Ｑ０、Ｑ１、Ｑ２、Ｑ３、Ｑ４のうち、Ｈであるビットの数として数値化される。加算器４６ｂは出力がＨであるＦＦの数を多ビットの数値に変換するものである（ΣＱ＝Ｑ０＋Ｑ１＋Ｑ２＋Ｑ３＋Ｑ４）。同様に縦列遅延回路５５の各タップの状態を位相比較器６０の反転クロック動作のＦＦ群４４でラッチすると、トリガ信号５９の立ち下がりエッジとクロック入力４１の立ち上がりエッジの時間差が、図２中のＦＦの出力Ｐ０、Ｐ１、Ｐ２、Ｐ３、Ｐ４のうち、Ｈであるビットの数として数値化される。加算器４６ａは出力がＨであるＦＦの数を多ビットの数値に変換するものである（ΣＰ＝Ｐ０＋Ｐ１＋Ｐ２＋Ｐ３＋Ｐ４）。減算器４７は立ち上がりエッジの時間差と立ち下がりエッジの時間差の合計を求めるものである（Ｒ=ΣＱ−ΣＰ）。位相比較器６０の出力はデータラッチ４８によりトリガ信号５９の立ち上がりエッジに同期して更新される。
【００３０】
図３はリードクロック発生回路の各信号の時間変化を示す波形図である。図３においてＡは図１の発振回路５０の出力、Ｂは図１のメインシフタ５１の出力、Ｃは図１の分周器５２の出力でもあるリードクロック５３、Ｚは図１の分周器５６の出力、Ｄは図１のセレクタ５８の出力であるトリガ信号５９、Ｅ０は図２の縦列遅延回路５５の左端のタップの出力、Ｅ１は図２の縦列遅延回路５５の左端から２番目のタップの出力、Ｅ２は図２の縦列遅延回路５５の中央のタップの出力、Ｅ３は図２の縦列遅延回路５５の右端から２番目のタップの出力、Ｅ４は図２の縦列遅延回路５５の右端のタップの出力の、それぞれ信号波形を示す。
【００３１】
図３は最適化モードでの信号波形を示したものであり、トリガ信号５９にはデータストローブ信号５７が選択されている。発振回路５０の出力Ａを遅延したものがメインシフタ５１の出力Ｂ、Ｂを分周器５２で２分周した出力でもあるリードクロック５３がＣ、Ｃをサブシフタ５４で遅延したものがＥ０、Ｅ０を縦列遅延回路５５で順次遅延していったものがＥ１、Ｅ２、Ｅ３、Ｅ４である。
【００３２】
図３においてＣとＥ２の波形が示すように、リードクロック５３であるＣの波形と、縦列遅延回路５５の中央のタップの出力Ｅ２は９０度だけ位相がずれている。トリガ信号５９であるＤはデューティー比が１対１からずれており、Ｌ期間の方がＨ期間より長くなっている。
【００３３】
図３のＱ０からＱ４はＥ０からＥ４をトリガ信号５９であるＤの立ち上がりに同期してサンプリングした値である。また、図３のＰ０からＰ４はＥ０からＥ４をトリガ信号５９であるＤの立ち下がりに同期してサンプリングした値である。この操作は図２においては差動出力バッファ４３によるトリガ信号５９の反転と非反転、およびトリガ信号５９のエッジに同期した反転クロック動作のＦＦ群４４と非反転クロック動作のＦＦ群４５のラッチ動作として表される。図２に示すようにＰ０からＰ４とＱ０からＱ４を、それぞれ加算器４６ａと４６ｂによりΣＰ＝Ｐ０＋Ｐ１＋Ｐ２＋Ｐ３＋Ｐ４、ΣＱ＝Ｑ０＋Ｑ１＋Ｑ２＋Ｑ３＋Ｑ４のように加算した上で減算器４７で合計同士の差をとったものをデータラッチ４８でラッチしたものを位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）としている。
【００３４】
ここで、図３に戻ってトリガ信号５９であるＤのタイミングと位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）の関係を説明する。図３の状態において縦列遅延回路５５の中央のタップの出力Ｅ２とトリガ信号５９であるＤの位相差を見ると、トリガ信号５９であるＤはデューティー比が１対１からずれてＨ期間の幅が狭くなっており、トリガ信号５９であるＤのＨ期間が縦列遅延回路５５の中央のタップの出力Ｅ２のＬ期間の真ん中に入り込む形になっている。以下、図３の状態における縦列遅延回路５５の中央のタップの出力Ｅ２とトリガ信号Ｄの位相差をゼロとして説明を進める。
【００３５】
図３の状態においてＱ０からＱ４の値を見ると三つがＬで二つがＨであるからΣＱ＝Ｑ０＋Ｑ１＋Ｑ２＋Ｑ３＋Ｑ４）の値は２である。同様に、ΣＰ＝Ｐ０＋Ｐ１＋Ｐ２＋Ｐ３＋Ｐ４の値も２であるので、位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）は０となる。即ち、縦列遅延回路５５の中央のタップの出力Ｅ２とトリガ信号５９であるＤの位相差がゼロであれば位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）は０である。
【００３６】
図４は図３の状態からトリガ信号５９であるＤのタイミングが少しだけ遅れた場合の波形図であり、図中の記号は図３と同じである。図４においては、トリガ信号５９であるＤのタイミングが少し遅れ、Ｑ３がＨからＬに変わっているのでΣＱ＝Ｑ０＋Ｑ１＋Ｑ２＋Ｑ３＋Ｑ４の値は１に減少する。トリガ信号５９であるＤの立ち下がりのタイミングも同じだけ遅くなっており、Ｐ２がＬからＨに変わるので、ΣＰ＝Ｐ０＋Ｐ１＋Ｐ２＋Ｐ３＋Ｐ４の値は３に増加する。すると位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）は、Ｒ＝１−３＝−２より、０から−２に減少する。このように、縦列遅延回路５５の中央のタップの出力Ｅ２に対するトリガ信号５９であるＤの位相遅れがプラスであれば、位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）はマイナスの値になる。
【００３７】
図５は逆に、図３の状態からトリガ信号５９であるＤの位相遅れがマイナスの場合、即ち、トリガ信号５９であるＤのタイミングが少しだけ早くなった場合の波形図である。トリガ信号５９であるＤが早まったため、ΣＱ＝Ｑ０＋Ｑ１＋Ｑ２＋Ｑ３＋Ｑ４の値は２から３に増加し、ΣＰ＝Ｐ０＋Ｐ１＋Ｐ２＋Ｐ３＋Ｐ４の値は２から１に減少するので、位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）は０から２に増加する。このように、縦列遅延回路５５の中央のタップの出力Ｅ２に対するトリガ信号５９であるＤの位相遅れがマイナスであれば、位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）はプラスの値になる。
【００３８】
図３と図４および図５の場合を比較して分かるように、位相比較器６０はトリガ信号５９であるＤのタイミングの縦列遅延回路５５の中央のタップの出力Ｅ２に対する位相差を数値で出力することができる。位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）がマイナスの時はトリガ信号５９であるＤの位相が遅れており、位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）がプラスの時はトリガ信号５９であるＤの位相が早くなっている。前述のように、リードクロック５３であるＣの波形と、縦列遅延回路５５の中央のタップの出力Ｅ２は９０度だけ位相がずれているので、縦列遅延回路５５の中央のタップの出力Ｅ２とトリガ信号５９であるＤの位相差がゼロであれば、リードクロック５３であるＣとトリガ信号５９であるＤの位相差は９０度である。よって、位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）がゼロであればリードクロック５３であるＣの立ち上がりエッジと立ち下がりエッジは、トリガ信号５９であるＤの立ち上がりエッジと立ち下がりエッジの真ん中に位置する。また、リードクロック５３であるＣとトリガ信号５９であるＤの位相差が９０度以下であれば位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）はプラスになり、リードクロック５３であるＣとトリガ信号５９であるＤの位相差が９０度以上であれば位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）はマイナスになることが図４と図５の比較から言える。
【００３９】
最後に、トリガ信号５９であるＤのデューティー比が変化した場合を考える。図６は図３の状態から、トリガ信号５９であるＤの位相は変化せずデューティー比だけが変化し、トリガ信号５９であるＤのＨ期間の方がＬ期間より長くなった場合の波形図である。デューティー比の変化でＨ期間が長くなったため、トリガ信号５９であるＤの立ち上がりエッジは早くなり、ΣＱ＝Ｑ０＋Ｑ１＋Ｑ２＋Ｑ３＋Ｑ４の値は２から３に増加する。逆に立ち下がりエッジは遅くなったためΣＰ＝Ｐ０＋Ｐ１＋Ｐ２＋Ｐ３＋Ｐ４の値は２から３に増加する。ΣＰとΣＱが同じだけ増加するので、位相比較器６０の出力（Ｒ＝ΣＱ−ΣＰ）はゼロのまま変化しない。このように位相比較器６０はトリガ信号５９であるＤのデューティー比の影響を受けずに位相比較を行うことができる。
【００４０】
再び図１に戻って位相比較器６０以降の動作を説明する。位相比較器６０の出力を積分回路６１に入力する。積分回路６１の出力は、位相比較器６０の出力が平均的にゼロ以上である状態が続くと徐々に増加し、位相比較器６０の出力が平均的にゼロ以下である状態が続くと徐々に減少し、位相比較器６０の出力が平均的にゼロであれば安定した値を指した状態で大きく増減しない。リードサイクル中はＳＤＲＡＭがデータストローブ信号５７となるＤＱＳ信号を出力し、これがトリガ信号５９となるが、チップ間で受け渡される信号であるＤＱＳ信号は、ノイズやクロストークやグランドバウンスのような外乱によってエッジの位置が前後することがある。積分回路６１を挿入する目的は、前記の外乱を除去して以降の回路動作を安定させることにある。
【００４１】
積分回路６１の出力はデータラッチ６４でラッチする。データラッチ６４は制御回路６２の指示に従って動作しており、最適化モード時は制御回路６２はデータラッチ６４に出力をホールドして変化させないよう指示する。そのようにする理由は、データラッチ６４の出力はメインシフタ５１に主遅延量６５を指示するが、指示を変更するとメインシフタ５１の出力にグリッジを生じる恐れがあり、分周器５２がグリッジで誤動作するとリードクロック５３が乱れることになるからである。位相比較器６０は最適化モード時にトリガ信号５９の位相を測定するが、データラッチ６４はリードサイクルの終了を待って出力を更新するので、トリガ信号５９の位相測定の結果がリードクロック５３の位相に反映されるのは次のリードサイクルの時になる。
【００４２】
主遅延量６５が反映される時刻を無視すれば、メインシフタ５１は積分回路６１の出力に従って遅延量を加減する、と言える。積分回路６１の出力は位相比較器６０の出力を積分したものなので、リードクロック５３とトリガ信号５９の位相差が９０度以下であれば位相比較器６０の出力はプラスになり、積分回路６１の出力は徐々に増加してメインシフタ５１の遅延量も徐々に増加する。メインシフタ５１の遅延量が増加するとリードクロック５３の位相が遅れるので、リードクロック５３とトリガ信号５９の位相差は増加して徐々に９０度に近づき、位相差が９０度になると位相比較器６０の出力がゼロになって積分回路６１の出力は増減を止める。逆に、リードクロック５３とトリガ信号５９の位相差が９０度以上であれば位相比較器６０の出力はマイナスになり、積分回路６１の出力は徐々に減少してメインシフタ５１の遅延量も徐々に減少する。メインシフタ５１の遅延量が減少するとリードクロック５３の位相が進むので、リードクロック５３とトリガ信号５９の位相差は減少して徐々に９０度に近づき、位相差が９０度になると位相比較器６０の出力がゼロになって積分回路６１の出力は増減を止める。
【００４３】
このように位相比較器６０の出力をメインシフタ５１の遅延量に帰還することにより、リードクロック５３とトリガ信号５９の位相差が９０度になるよう制御することが出来る。最適化モード時はセレクタ５８が選択したデータストローブ信号５７をトリガ信号５９としているので、結局、データストローブ信号５７に対するリードクロック５３の位相差が９０度になるよう制御され、データ信号のラッチに最も有利な位相のリードクロック５３が得られる。
【００４４】
ここまでは最適化モード時の動作の説明であるが、本発明の実施例のリードクロック発生回路は最適化モードと別に校正モードを備える。モードの切り替えは制御回路６２が制御しており、リードサイクル中でない時に校正モードに切り替える。校正モードを設ける理由は遅延回路の拡散ばらつきに対応する為である。
【００４５】
リードクロック発生回路のうちメインシフタ５１とサブシフタ５４と縦列遅延回路５５の三つの回路は遅延素子を用いて構成する。遅延素子による遅延時間は回路を構成するトランジスタの特性と、回路に寄生する容量成分の多寡によって変動するので、同じＬＳＩチップの内部で比較すると相対ばらつきは少ないが、特性や寄生容量はロット毎にばらつくため、製造ロットが異なるＬＳＩチップの間で遅延素子の遅延時間を比較すると大きな差があることがある。校正モードはメインシフタ５１とサブシフタ５４においてクロックが通過する遅延素子の数を加減することにより、必要な遅延量を得ることを目的とする。
【００４６】
校正モードでは制御回路６２はセレクタ５８を切り替えて分周器５６の出力をトリガ信号５９として選択する。分周器５６の出力は発振回路５０の出力を２分周したもので、リードクロック５３と同じ周波数である。前述のように、リードクロック発生回路は全体として帰還制御系であり、縦列遅延回路５５の中央のタップの出力とトリガ信号５９との位相差がゼロの時に位相比較器６０の出力がゼロになって安定する。校正モードにおいて状態が安定するための条件は、メインシフタ５１の遅延量とサブシフタ５４の遅延量と縦列遅延回路５５の入力から中央のタップの出力までの遅延量の和が半周期になり、分周器５６の出力と縦列遅延回路５５の中央のタップの出力のエッジ同士が重なり合うことである。
【００４７】
メインシフタ５１とサブシフタ５４と縦列遅延回路５５の三つの回路は共に同じ特性を持つ遅延素子を用いており、クロックを通過させる段数だけが異なっている。よって、メインシフタ５１内でクロックが通過する遅延素子の個数と、サブシフタ５４の入力から縦列遅延回路５５の中央のタップまでの経路でクロックが通過する遅延素子の個数が同じになるよう調整しつつ遅延量を制御すれば、校正モードにおいて帰還制御系が安定した時にメインシフタ５１の遅延量はリードクロック５３の９０度位相分になり、サブシフタ５４の入力から縦列遅延回路５５の中央のタップまでの遅延量はリードクロック５３の９０度位相分になる。
【００４８】
このように調整するためデータラッチ６４は二つの出力を持ち、校正モードではメインシフタ５１への遅延量の指示である主遅延量６５と、サブシフタ５４への遅延量の指示である補正遅延量６７の両方を制御する。メインシフタ５１への遅延量の指示である主遅延量６５は具体的には入出力間でクロックを通過させる遅延素子の個数であり、校正モードではデータラッチ６４は積分回路６１の出力を主遅延量６５の指示として与える。サブシフタ５４にも同じ積分回路６１の出力を補正遅延量６７の指示として与えるが、サブシフタ５４の動作はメインシフタ５１とは少し異なる。サブシフタ５４は、サブシフタ５４の入力から縦列遅延回路５５の中央のタップまでの経路でクロックが通過する遅延素子の個数が指示された値に一致するように、サブシフタ５４の入出力間でクロックを通過させる遅延素子の個数が、縦列遅延回路５５内の遅延素子の個数の半分を指示された値から引いた値になるよう構成している。
【００４９】
このような構成と制御を採ることにより、帰還制御系が安定した時に積分回路６１の出力が示す値はリードクロック５３の９０度位相分の遅延量を得るために必要な遅延素子の個数となり、サブシフタ５４の入力から縦列遅延回路５５の中央のタップまでの位相差は９０度に校正される。データラッチ６４は校正モードではサブシフタ５４への出力を更新するが、校正モードでない時はサブシフタ５４への出力を保持するので、最適化モード中はサブシフタ５４の入力から縦列遅延回路５５の中央のタップまでの位相差は９０度に保持される。
【００５０】
ここまでは簡単のため最適化モードと校正モードを分けて説明したが、実際にはリードサイクルの合間に校正を行う必要があるので、校正モードと最適化モードを交互に切り替えても、それぞれのモードで帰還制御系が安定して動作するよう工夫する必要がある。図１の退避レジスタ６３は、その工夫を実現するための構成要素である。
【００５１】
図７は積分回路６１とデータラッチ６４の内部構成、及び周辺回路のブロック図である。図７において、５１はメインシフタ、５４はサブシフタ、６０は位相比較器、６１は積分回路、６３は退避レジスタ、６４はデータラッチ、６５は主遅延量、６７は補正遅延量、７１は位相比較器６０の出力、７２は加算器、７３はセレクタ、７４はレジスタ、７５は積分回路６１の出力、７６はレジスタ、７７はセレクタ、７８はレジスタである。以下、図７を用いて積分回路６１およびデータラッチ６４のモード遷移時を除く最適化モード中と校正モード中の動作を説明する。
【００５２】
モード遷移時を除く最適化モードでは積分回路６１は積分動作を行う。加算器７２は位相比較器６０の出力７１と積分回路６１の出力７５を加算し、セレクタ７３は加算器７２の出力を選択し、レジスタ７４はセレクタ７３の出力をラッチする。レジスタ７４がラッチを繰り返す毎に位相比較器６０の出力７１が積分回路６１の出力７５に加算され続けるので、積分回路６１の出力７５は位相比較器６０の出力７１を積分した値をとる。モード遷移時を除く校正モードでも積分回路６１は最適化モード中と同じ動作で積分を行う。
【００５３】
モード遷移時を除く校正モードではデータラッチ６４のセレクタ７７は積分回路６１の出力７５を選択し、レジスタ７６とレジスタ７８は共に積分回路６１の出力７５をラッチする。校正モードではメインシフタ５１とサブシフタ５４に同じ値を帰還するので、レジスタ７６とレジスタ７８は校正モード中は同じ値を出力し続ける。校正モードに入って一定時間が経過するとレジスタ７６が出力する補正遅延量６７は、リードクロックの９０度位相に相当する遅延素子の段数を示して収束する。
【００５４】
モード遷移時を除く最適化モードではセレクタ７７は積分回路６１の出力７５を選択し、レジスタ７８は積分回路６１の出力７５をラッチするが、レジスタ７６はホールド状態になり、校正モード中と同じ補正遅延量６７を保持し続ける。これにより補正遅延量６７は一定となり、サブシフタ５４の遅延量は９０度相当に保たれる。
【００５５】
次に図８を用いて最適化モードから校正モードに移行する際の動作を説明する。図８は最適化モードから校正モードに移行する際の信号経路図であり、有効でない信号経路は点線で表している。また、図中の記号は図７と同じなので説明を略す。レジスタ７６は校正モード中に積分回路６１の出力７５をコピーした補正遅延量６７を取り込み、最適化モード中はホールドしているので、直前の校正モードの終了時の状態を保持していると言える。最適化モードから校正モードに移行する際に、セレクタ７７は補正遅延量６７を選択し、レジスタ７８は補正遅延量６７をコピーする。また、セレクタ７３も補正遅延量６７を選択し、レジスタ７４も補正遅延量６７をコピーする。これにより三つのレジスタが直前の校正モードの終了時の状態に復帰する。
【００５６】
なお、レジスタ７４は最適化モード中に最適化したメインシフタ５１の主遅延量６５を持っているので、レジスタ７４が補正遅延量６７をコピーするのと同時に、退避レジスタ６３にレジスタ７４の値をコピーしておく。これにより校正モードから最適化モードに遷移した際に、直前のリードサイクル時の最後の状態に復帰できる。
【００５７】
図９は校正モードから最適化モードに移行する際の信号経路図であり、有効でない信号経路は点線で表している。また、図中の記号は図７と同じなので説明を略す。校正モード中は直前の最適化モード中に最適化したメインシフタ５１の主遅延量６５を退避レジスタ６３が保存しているので、この値を最適化モードに復帰する際にレジスタ７４とレジスタ７８にコピーする。このため校正モードから最適化モードに遷移する際に、セレクタ７３とセレクタ７７は退避レジスタ６３の出力を選択し、レジスタ７４とレジスタ７８は退避レジスタ６３が出力した値をラッチする。レジスタ７６は補正遅延量６７を次の校正モード開始まで保持するため、校正モードから最適化モードに遷移する際は出力をホールドする。
【００５８】
このようにデータラッチ６４と退避レジスタ６３を用いることにより、校正モードでの最後の状態を保存して次に校正モードに復帰する際に復元し、最適化モードでの最後の状態を保存して次に最適化モードに復帰する際に復元することができるので、校正モードと最適化モードを混在させ、全体として最適化モードでの帰還制御動作と校正モードでの帰還制御動作を時分割で並列に実行することができる。
【００５９】
図１０は本発明のリードクロック発生回路を用いたメモリインターフェース回路の簡略化したブロック図である。図１０において、１１はＤＤＲ−ＳＤＲＡＭ、１２はＤＱＳ信号、１３ａ、１３ｂはデータ信号、１５は入力バッファ、１６は遅延回路、１７はデータラッチ、１８はリードデータ、２１はメモリインターフェース回路、２２はリードクロック発生回路、２３はメインステートマシン、５７はデータストローブ信号、５３はリードクロック、５０は発振回路、６０は位相比較器、６２は制御回路である。なお、図１０に記載のリードクロック発生回路２２の内部は紙面の関係で簡略化したブロック図となっているが、実態としては図１に記載のリードクロック発生回路が用いられており、説明に必要な最低限のブロックのみ抜粋して図１０に記載したものと理解されたい。
【００６０】
以下、図１０を用いて本発明のリードクロック発生回路２２を用いたメモリインターフェース回路２１におけるデータ信号１３のラッチ動作を説明する。ＤＤＲ−ＳＤＲＡＭ１１はメモリインターフェース回路２１に接続されている。ＤＤＲ−ＳＤＲＡＭ１１をリードアクセスすると、ＤＤＲ−ＳＤＲＡＭ１１はＤＱＳ信号１２とデータ信号１３ａを同時に出力する。メモリインターフェース回路２１はＤＱＳ信号１２とデータ信号１３ａを入力バッファ１５を介して取り込む。入力バッファ１５を経由したＤＱＳ信号１２はデータ信号１３の１ワード毎に反転するデータストローブ信号５７であり、リードクロック発生回路２２はデータストローブ信号５７を入力として、リードクロック５３を生成する。リードクロック発生回路２２は主な構成要素として位相比較器６０と遅延回路１６と発振回路５０と制御回路６２を持つ。発振回路５０はリードクロック５３を含むリードクロック発生回路２２内の全てのクロックの大元である。
【００６１】
メインステートマシン２３はリードクロック発生回路２２内の制御回路６２にリードコマンドを送り、制御回路６２はリードコマンドを基準にタイミングを管理して、正しいリードクロック５３を出力する最適化モードと、遅延回路１６を校正する校正モードを切り替える。
【００６２】
校正モードは遅延回路１６の持つ遅延量が、クロック周期の４分の１になるよう遅延回路１６の遅延量を補正するものである。一方、最適化モードでは位相比較器６０はデータストローブ信号５７と発振回路５０が出力するクロックの位相差を測定し、遅延回路１６が出力するリードクロック５３がデータストローブ信号５７に対して９０度位相遅れになるよう遅延回路１６の遅延量を最適化する。するとリードクロック５３のエッジはデータストローブ信号５７のエッジの間の、真ん中に位置することになる。入力バッファ１５の出口においてデータ信号１３ｂとデータストローブ信号５７の変化点は同時なので、データラッチ１７はリードクロック発生回路２２が出力するリードクロック５３によりデータ信号１３ｂが最も安定するタイミングでラッチすることが出来る。このような構成と動作によりデータラッチ１７が出力するリードデータ１８は誤りが無く信頼できるデータとなる。
【００６３】
以上、これまで説明してきたように、本発明によるリードクロック発生回路はデータストローブ信号のエッジの中央にリードクロックのエッジが位置するよう制御するので、データストローブ信号のデューティー比が変化してもラッチタイミングが最適な位置から前後することはない。また、帰還制御ループ内に積分回路を用いているので、ランダムな外乱の影響によってラッチタイミングが最適な位置から前後することがない。更に、遅延回路の遅延量を校正する機構を持つので、半導体集積回路の拡散ばらつきによってラッチタイミングが最適な位置から前後することがない。従って、本発明によるリードクロック発生回路を用いれば、データストローブ信号波形が変形したり外乱で乱れたりするような状況であっても安定したクロックに同期してデータ信号をラッチできる。
【００６４】
本実施例において、発振回路５０は、本発明のクロック発生回路に相当する。位相比較器６０、積分回路６１、データラッチ６４は、本発明の位相差測定回路に相当する。データラッチ１７は、本発明のメモリ回路に相当する。縦列遅延回路５５は、本発明の多出力遅延回路に相当する。反転クロック動作のＦＦ群４４、非反転クロック動作のＦＦ群４５は、本発明の並列ラッチ回路に相当する。
【００６５】
なお、本発明のメモリ回路は、本実施例のデータラッチ１７の他に、本発明のメモリインターフェース回路に接続されるシンクロナスメモリのデータ幅に対応したビット幅を持つスタティックＲＡＭを使用してもよい。スタティックＲＡＭを使用すれば複数ワードのリードデータを保持できるので、リードクロックの位相が前後してもリードコマンドから一定の時間遅れで内部回路にリードデータを供給できるようになる。
【００６６】
なお、本発明の位相差測定回路は、データストローブ信号の立ち上がりエッジのリードクロックに対する位相差と、データストローブ信号の立ち下がりエッジのリードクロックに対する位相差とを個別に測定し、両者の平均を測定した位相差として出力するようにしてもよい。これによって、回路上の制約により立ち上がりエッジと立ち下がりエッジの両方で動作するラッチが使用できない場合でも、本発明の目的にかなう位相差測定回路を構成できる。
【００６７】
なお、本発明の位相差測定回路は、データストローブ信号のリードクロックに対する位相差を複数回測定するものであり、複数回の測定結果を平均化した値を測定した位相差として出力するようにしてもよい。本実施例ではＩＩＲ型フィルタによる積分回路を用いて位相差測定回路の出力を平滑化しているが、位相差測定回路の出力をシフトレジスタに入力し、シフトレジスタの各段の加算平均を求めるＦＩＲ型の平滑化フィルタを用いても積分回路と同様の制御特性が得られる。
【００６８】
なお、本発明の位相差測定回路は、本実施例ではリードサイクル中に位相差を測定し、リードサイクル中でない時は出力する位相差を保持するようにしたが、保持しなくてもよい。図７に示すように遅延回路であるメインシフタ５１とサブシフタ５４の直前のレジスタ７８、７６が位相差を保持する部分であり、本実施例ではデータラッチ６４までを位相差測定回路に含めているが、回路構成上、データラッチ６４を遅延回路側に含めても構わない。その場合は、遅延回路はリードサイクル中の位相を記憶し、リードサイクル中でない期間の位相差測定回路の出力を無視することになる。
【００６９】
なお、本発明の位相差測定回路は、本実施例では複数の出力を持つ多出力遅延回路と並列ラッチ回路を備え、多出力遅延回路の入力はクロック発生回路が出力するクロックであり、並列ラッチ回路はデータストローブ信号の変化点における多出力遅延回路の複数の出力の状態をラッチすることにより位相差を測定するようにしたが、データストローブ信号とリードクロックの位相差を測定する方法であればこれに限らない。
【００７０】
例えば、本発明の位相差測定回路は、複数の出力を持つ多出力遅延回路とカウンタと並列ラッチ回路を備え、多出力遅延回路の入力はクロック発生回路が出力するクロックであり、カウンタはクロック発生回路が出力するクロックをカウントするものであり、並列ラッチ回路はデータストローブ信号の変化点におけるカウンタと前記多出力遅延回路の複数の出力の状態をラッチすることにより位相差を測定するようにしてもよい。または、多出力遅延回路を併用せず、並列ラッチ回路はデータストローブ信号の変化点におけるカウンタの出力の状態をラッチすることにより位相差を測定するようにしてもよい。
【００７１】
図１４は多出力遅延回路に替えてジョンソンカウンタを用いた位相差測定回路のブロック図である。図１４において５９はトリガ信号、６０は位相比較器、４１はクロック入力、４３は差動出力バッファ、４４は反転クロック動作のＦＦ群、４５は非反転クロック動作のＦＦ群、４６ａ、４６ｂは加算器、４７は減算器、４８はデータラッチ、８０ａはジョンソンカウンタ、８１はジョンソンカウンタ８０ａのＦＦ群、８２はジョンソンカウンタ８０ａのインバーターである。以下、図１４を用いて位相比較の動作を説明する。ジョンソンカウンタ８０ａは、ＦＦ群８１とインバーター８２で構成される。ジョンソンカウンタ８０ａはＦＦ群８１の最終段をインバーター８２で反転して初段ＦＦに入力するものであり、ジョンソンカウンタ８０ａの出力は０００００→１００００→１１０００→１１１００→１１１１０→１１１１１→０１１１１→００１１１→０００１１→００００１→０００００のように１０クロックで一巡する。ジョンソンカウンタ８０ａのＦＦ群８１の出力Ｅ０、Ｅ１、Ｅ２、Ｅ３、Ｅ４はクロック入力４１を１０分周したものになるので、クロック入力４１はリードクロックの１０倍の周波数でなければならない。
【００７２】
クロック入力４１の１クロック毎にジョンソンカウンタ８０ａのＦＦ群８１の出力Ｅ０、Ｅ１、Ｅ２、Ｅ３、Ｅ４は左から順にＬからＨに立ち上がり、右端の出力Ｅ４が最も遅く変化する。ジョンソンカウンタ８０ａのＦＦ群８１の出力の状態を位相比較器６０の非反転クロック動作のＦＦ群４５でラッチすると、トリガ信号５９の立ち上がりエッジの時刻が、図１４中の非反転クロック動作のＦＦ群４５の出力Ｑ０、Ｑ１、Ｑ２、Ｑ３、Ｑ４のうち、Ｈであるビットの数として数値化される。加算器４６ｂは出力がＨであるＦＦの数を多ビットの数値に変換するものである（ΣＱ＝Ｑ０＋Ｑ１＋Ｑ２＋Ｑ３＋Ｑ４）。同様にジョンソンカウンタ８０ａのＦＦ群８１の出力の状態を位相比較器６０の反転クロック動作のＦＦ群４４でラッチすると、トリガ信号５９の立ち下がりエッジの時刻が、図１４中の反転クロック動作のＦＦ群４４の出力Ｐ０、Ｐ１、Ｐ２、Ｐ３、Ｐ４のうち、Ｈであるビットの数として数値化される。加算器４６ａは出力がＨであるＦＦの数を多ビットの数値に変換するものである（ΣＰ＝Ｐ０＋Ｐ１＋Ｐ２＋Ｐ３＋Ｐ４）。減算器４７は立ち上がりエッジの時刻と立ち下がりエッジの時刻の平均を求めるものである（Ｒ=ΣＱ−ΣＰ）。
【００７３】
図１５はジョンソンカウンタ８０ａを用いた位相差測定回路の各信号の時間変化を示す波形図である。図１５においてＡはクロック入力４１、Ｄはトリガ信号５９、Ｅ０からＥ４はジョンソンカウンタ８０ａのＦＦ群８１の出力の、それぞれ信号波形を示す。
【００７４】
図３のＥ０からＥ４の波形と、図１５のＥ０からＥ４の波形を比較すると分かるように、ジョンソンカウンタ８０ａを用いると多出力遅延回路を用いた場合と同様の信号波形が得られる。そのため、ジョンソンカウンタ８０ａのＦＦ群８１の出力をラッチした値、Ｐ０からＰ４とＱ０からＱ４の値を図２の多出力遅延回路を用いた位相差測定回路と同様に処理すれば位相情報が同様に数値で得られる。
【００７５】
ジョンソンカウンタは図１５の波形図から分かるように一度に１ビットずつ変化する性質を持つので、どの時点で出力をラッチしても正しい値がラッチできる性質がある。例えば２ビットのバイナリカウンタの出力が００→０１→１０→１１→００と変化する途中で、０１から１０に変化する際にカウンタの出力をラッチすると００や１１といった誤った値がラッチされることがあるが、ジョンソンカウンタでは誤った値を読み取ることが無い。
【００７６】
ジョンソンカウンタと同じように出力が一度に１ビットずつ変化する性質を持つカウンタとしてグレイコードカウンタがある。例えば３ビットグレイコードカウンタは０００→００１→０１１→０１０→１１０→１１１→１０１→１００→０００と変化する。図１６はジョンソンカウンタに替えてグレイコードカウンタを用いた場合の位相差測定回路のブロック図である。グレイコードカウンタ８０ｂの出力は多出力遅延回路の出力やジョンソンカウンタの出力のように、１であるビットの数が単調に増減するわけではないので、８３ａと８３ｂのようにグレイコードを数値計算に適したバイナリコードに変換するデコーダーを必要とする。デコードした後の処理はジョンソンカウンタを用いた場合と同様であるので、詳述は略す。
【００７７】
ここでは多出力遅延回路を併用しない場合を紹介したが、併用してもよい。カウンタを用いると遅延素子を並べるよりもトランジスタ数を少なく出来ることがあるが、小さな時間差を測定する為にはクロック周波数を高くする必要がある。多出力遅延回路を用いると１クロック周期未満の小さな時間差が測定できるので、カウンタと多出力遅延回路を併用することにより、トランジスタ数とクロック周波数の両方を合理的な範囲内に抑えられることがある。
【産業上の利用可能性】
【００７８】
本発明は、ＤＤＲ−ＳＤＲＡＭを接続するメモリインターフェース回路に適用可能であり、ＤＤＲ−ＳＤＲＡＭを発展させたＤＤＲ２−ＳＤＲＡＭやＤＤＲ３−ＳＤＲＡＭ等を接続するメモリインターフェース回路にも適応できる。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施例におけるリードクロック発生回路のブロック図
【図２】本発明の実施例における縦列遅延回路と位相比較器のブロック図
【図３】リードクロック発生回路の各信号の時間変化を示す波形図
【図４】トリガ信号のタイミングが少しだけ遅れた場合の波形図
【図５】トリガ信号のタイミングが少しだけ早くなった場合の波形図
【図６】トリガ信号のＨ期間の方がＬ期間より長くなった場合の波形図
【図７】積分回路とデータラッチの内部構成、及び周辺回路のブロック図
【図８】最適化モードから校正モードに移行する際の信号経路図
【図９】校正モードから最適化モードに移行する際の信号経路図
【図１０】本発明のリードクロック発生回路を用いたメモリインターフェース回路の簡略化したブロック図
【図１１】特許文献１の構成におけるリードクロックの経路を示す図
【図１２】特許文献１の構成における回路上の信号波形を示す波形図
【図１３】ＤＱＳ信号のデューティー比が変化した場合の波形図
【図１４】ジョンソンカウンタを用いた位相差測定回路のブロック図
【図１５】ジョンソンカウンタを用いた位相差測定回路の各信号の時間変化を示す波形図
【図１６】グレイコードカウンタを用いた場合の位相差測定回路のブロック図
【符号の説明】
【００８０】
１１    ＳＤＲＡＭ
１２    ＤＱＳ信号
１３ａ、１３ｂ    データ信号
１５    入力バッファ
１６    遅延回路
１７    データラッチ
１８    リードデータ
２１    メモリインターフェース回路
２２    リードクロック発生回路
２３    メインステートマシン
４１    クロック入力
４２    遅延素子
４３    差動出力バッファ
４４    反転クロック動作のＦＦ群
４５    非反転クロック動作のＦＦ群
４６ａ、４６ｂ    加算器
４７    減算器
４８    データラッチ
５０    発振回路
５１    メインシフタ
５２    分周器
５３    リードクロック
５４    サブシフタ
５５    縦列遅延回路
５６    分周器
５７    データストローブ信号
５８    セレクタ
５９    トリガ信号
６０    位相比較器
６１    積分回路
６２    制御回路
６３    退避レジスタ
６４    データラッチ
６５    主遅延量
６７    補正遅延量
７１    位相比較器の出力
７２    加算器
７３    セレクタ
７４    レジスタ
７５    積分器の出力
７６    レジスタ
７７    セレクタ
７８    レジスタ
８０ａ    ジョンソンカウンタ
８０ｂ    グレイコードカウンタ
８１    カウンタのＦＦ群
８２    インバーター
８３ａ、８３ｂ    デコーダー
【図１】
2008071018.tif 000003
【図２】
2008071018.tif 000004
【図３】
2008071018.tif 000005
【図４】
2008071018.tif 000006
【図５】
2008071018.tif 000007
【図６】
2008071018.tif 000008
【図７】
2008071018.tif 000009
【図８】
2008071018.tif 000010
【図９】
2008071018.tif 000011
【図１０】
2008071018.tif 000012
【図１１】
2008071018.tif 000013
【図１２】
2008071018.tif 000014
【図１３】
2008071018.tif 000015
【図１４】
2008071018.tif 000016
【図１５】
2008071018.tif 000017
【図１６】
2008071018.tif 000018