(57)【要約】【課題】システムのパフォーマンスを低下させずに、メモリアクセス時のデータとクロック間の位相関係を検出する。【解決手段】第１の遅延回路１１０は、クロック信号ＣＬＫを段階的に遅延させて、第１の遅延信号ＣＬＫ１と、第１の遅延信号ＣＬＫ１より位相が所定値早い第２の遅延信号ＣＬＫ２と、第１の遅延信号ＣＬＫ１より位相が所定値遅い第３の遅延信号ＣＬＫ３を生成する。第１の遅延回路は、データ信号ＤＱとクロック信号ＣＬＫが所定の位相関係を有するときに、第１の遅延信号ＣＬＫのエッジがデータ信号ＤＱの単位データの中央部に対応するように遅延量が設定されている。データ取出部１２０は、第１〜３の遅延信号に基づいてデータ信号ＤＱからデータの取出しを行って第１〜３のデータをそれぞれ得る。出力回路１３０は、第１のデータを外部に出力する。比較部１４０は、第１〜３のデータの比較を行う。【選択図】図１
2011258134.tif 000002
【特許請求の範囲】
【請求項１】
同期式メモリのリードまたはライトのデータ信号とクロック信号が入力されるインタフェース回路において、
前記データ信号とクロック信号のいずれか一方である対象信号を段階的に遅延させて、第１の遅延信号と、前記第１の遅延信号より位相が所定値早い第２の遅延信号と、前記第１の遅延信号より位相が所定値遅い第３の遅延信号とを生成する第１の遅延回路であって、
前記データ信号とクロック信号が所定の位相関係を有するときに、
前記対象信号が前記クロック信号である場合に、前記第１の遅延信号のエッジが前記データ信号の単位データの中央部に対応し、
前記対象信号が前記データ信号である場合に、前記クロック信号のエッジが前記第１の遅延信号の単位データの中央部に対応するように遅延量が設定された前記第１の遅延回路と、
前記データ信号とクロック信号のうちの前記対象信号と異なる他方と、前記第１〜第３の遅延信号のそれぞれとを用いてデータの取出しを行い、第１のデータと、第２のデータと、第３のデータとを得るデータ取出部と、
前記第１のデータを外部に出力する出力部と、
前記第１と第２のデータが一致するか否かの比較、及び前記第１と第３のデータが一致するか否かの比較を行って比較結果を得る比較部とを備えることを特徴とするインタフェース回路。
【請求項２】
前記比較部が得た２つの前記比較結果のいずれも一致を示すように前記第１の遅延回路の遅延量を調整する遅延調整部をさらに備えることを特徴とする請求項１に記載のインタフェース回路。
【請求項３】
前記データ信号とクロック信号のうちの前記対象信号と異なる他方を遅延させて前記データ取出部に供する第２の遅延回路をさらに備え、
前記第１の遅延回路と前記第２の遅延回路は、
前記データ信号とクロック信号が所定の位相関係を有するときに、
前記対象信号が前記クロック信号である場合に、前記第１の遅延回路により得られた前記第１の遅延信号のエッジが、前記第２の遅延回路により遅延させられた前記データ信号の単位データの中央部に対応し、
前記対象信号が前記データ信号である場合に、前記第２の遅延回路により遅延させられた前記クロック信号のエッジが、前記第１の遅延回路により得られた前記第１の遅延信号の単位データの中央部に対応するように遅延量が設定されており、
前記データ取出部は、前記第２の遅延回路の出力と、前記第１〜第３の遅延信号のそれぞれとを用いてデータの取出しを行い、前記第１〜第３のデータを得るものであることを特徴とする請求項１に記載のインタフェース回路。
【請求項４】
前記比較部が得た２つの前記比較結果のいずれも一致を示すように、前記第１の遅延回路と第２の遅延回路のいずれか一方または両方の遅延量を調整する遅延調整部をさらに備えることを特徴とする請求項３に記載のインタフェース回路。
【請求項５】
第１の遅延信号と第２の遅延信号の位相の差である所定値と、第１の遅延信号と第３の遅延信号の位相の差である所定値をそれぞれ調整する初期位相設定部をさらに備えることを特徴とする請求項１〜４のいずれ１項に記載のインタフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセスの際のデータとクロック間の位相関係の検出技術に関する。
【背景技術】
【０００２】
同期式メモリでは、クロック信号に基づいてデータ信号からデータが取り出されてリード／ライトされる。
【０００３】
例えば、ＳＤＲ（Ｓｉｎｇｌｅ  Ｄａｔａ  Ｒａｔｅ）メモリの場合、リードデータは、メモリクロックの立上りから次の立上りの１周期で読み出される。ライトデータも、メモリクロックの立上りから次の立上りの１周期で書き込まれる。
【０００４】
ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔｅ  Ｒａｔｅ）メモリのリードデータは、リード用クロック（リードデータ並走クロック）の立上りから立下りの半周期と立下りから立上りの半周期でそれぞれ１単位分読み出される。ライトデータは、リードデータとは１／４周期ずらして書き込まれる。これは、ライトデータの単位長の中央部にメモリクロックの立上りと立下りを充てるためである。
【０００５】
同期式メモリに対するデータのリード／ライトを確実に行うためには、リードデータとリード用クロック、ライトデータとライト用クロックの位相関係を正しく保証する必要があり、種々の視点からそのための技術が提案されている。
【０００６】
例えば、特許文献１には、電圧や温度などの環境差や、メモリ個体差などの装置のばらつきを吸収するための手法が開示されている。分かりやすいように、ＤＤＲメモリのメモリリードする場合を例にしてこの手法を説明する。
【０００７】
この手法は、ＤＤＲメモリのインタフェース回路において、リードデータまたはリードデータ並走クロックに可変な遅延を与えるディレイヤと、該ディレイヤの遅延量を制御するディレイ調整部とを設け、インタフェース回路がデータを出力する相手装置が確実にデータを受け取ることができる最適なポイントを探す技術である。この最適なポイントすなわち最適な遅延量を探す処理は、特許文献１ではトレーニングと呼ばれている。
【０００８】
図１８と図１９を参照してこの手法を説明する。例として、ディレイヤがリードデータにディレイを与えるものであるとする。
【０００９】
図１８は、特許文献１の図１の（ａ）に対して符号のみを変更したものであり、図１９は、特許文献１の図１の（ｂ）である。なお、各機能ブロックの名称については、特許文献１の記述に用いられたのと同じものを使用する。
【００１０】
図１８において、システムＬＳＩ２０は、メモリのインタフェース回路に相当する。リードに際して、ＤＤＲメモリ１０は、リードデータとリードデータ並走クロックを同相でシステムＬＳＩ２０に送出する。システムＬＳＩ２０において、入力バッファ２１は、リードデータを受信する。入力バッファ２１により受信されたリードデータは、入力バッファ２１からディレイヤ２２に転送され、ディレイ調整部２６が指示する量のディレイを受けた後、２分岐されてラッチ２３（ラッチ２３−１、ラッチ２３−２）にそれぞれ送信される。ラッチ２３−１には、インバータ２４によって逆相のリードデータ並走クロックが供給されており、ラッチ２３−２には、正相のリードデータ並走クロック供給されている。ラッチ２３−１とラッチ２３−２からの２つの信号は、ＤＤＲデータ取出部２５で、ＳＤＲに変換され、リードデータとなる。
【００１１】
図１９は、システムＬＳＩ２０が読み込むリードデータ並走クロックと、リードデータと、システムＬＳＩ２０が目標とするディレイ調整したリードデータ間のタイミングを示す図である。
【００１２】
前述したように、ＤＤＲメモリのリードデータは、リード用クロック（リードデータ並走クロック）の立上りから立下りの半周期と立下りから立上りの半周期でそれぞれ１単位分読み出される。システムＬＳＩ２０は、リードデータを、リードデータ並走クロックの立上りおよび立下りで読み込む。そのため、トレーニングの目標は、図１９に示すように、システムＬＳＩ２０がリードデータを、その有効期間の中央付近で取り出すように、すなわちリードデータ並走クロックの立上りエッジと立下りエッジがディレイ調整後のリードデータの有効期間の中央部に対応するように、リードデータに与える遅延量を探すことである。
【００１３】
トレーニングにおいて、ＤＤＲメモリ１０から、リードデータとしてテストパターンがリードデータ並走クロックと共に出力される。システムＬＳＩ２０においては、ディレイ調整部２６は、リードデータ（ここではテストパターン）に与える遅延量を変化させてディレイヤ２２を制御することにより、ディレイヤ２２の設定可能な遅延量の上限値以下の範囲内で最適な遅延量を探す。ディレイヤ２２の設定可能な遅延量の上限値以下の範囲内で最適な遅延量が見つかった場合には、トレーニング成功としてディレイヤ２２の設定値はこの最適な遅延量に設定される。これにより、ＤＤＲメモリ１０のリードが可能になる。一方、ディレイヤ２２の設定可能な遅延量の上限値以下の範囲内で最適な遅延量が見つからなかった場合には、トレーリング失敗として、ＤＤＲメモリ１０のリードが開始できないとされる。
【００１４】
この技術によれば、システムの本格運用の前の試験段階において、トレーニングによりメモリアクセスが正しく行える最適なポイントを探すことが可能である。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】２００７−１２１６６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
ところで、システムの本格運用の開始後にも、データ信号とクロック信号の位相関係が崩れてしまう場合がある。これは、時間の経過につれ、供給電源の変動、システム動作の時間経過に応じた発熱量の変動、メモリアクセスの繁閑などの動作状況の変化による温度変動、気候の変化に起因する周辺温度の変動などに起因して、データ信号とクロック信号の経路の遅延値が変動するためである。そのため、システムの本格的な運用開始後も、データ信号とクロック信号の位相関係を継続的に検出する必要がある。
【００１７】
特許文献１の技術は、システムの本格的な運用の前の試験段階における調整を目的とし、トレーニングを行う際には一般メモリアクセスが不可となっており、トレーニングが成功した場合にのみ一般メモリアクセスが開始可能となっている。システムの本格的の運用開始後に特許文献１の技術を適用した場合には、トレーニングの度に一般メモリアクセスを停止させる必要がある。これでは、システムのパフォーマンスが低下し、迅速なレスポンスを必要とするメモリアクセスの場合にはレスポンスが遅れてしまうという問題がある。
【課題を解決するための手段】
【００１８】
本発明の一つの態様は、同期式メモリのリードまたはライトのデータ信号とクロック信号が入力されるインタフェース回路である。このインタフェース回路は、第１の遅延回路と、データ取出部と、出力部と、比較部を備える。
【００１９】
第１の遅延回路は、入力されたデータ信号とクロック信号のいずれか一方である対象信号を段階的に遅延させて、第１の遅延信号と、第１の遅延信号より位相が所定値早い第２の遅延信号と、第１の遅延信号より位相が所定値遅い第３の遅延信号とを生成する。
【００２０】
該第１の遅延回路は、上記データ信号とクロック信号が所定の位相関係を有することを前提にして、第１の遅延信号が対象信号に対する遅延量が設定されている。具体的には、第１の遅延回路がクロック信号を遅延させるものである場合、すなわち、対象信号がクロック信号である場合には、第１の遅延信号（遅延させられたクロック信号）のエッジがデータ信号の単位データの中央部に対応するように、該第１の遅延回路の上記遅延量が設定されている。一方、第１の遅延回路がデータ信号を遅延させるものである場合、すなわち対象信号がデータ信号である場合には、クロック信号のエッジが第１の遅延信号（遅延させられたデータ信号）の単位データの中央部に対応するように、該第１の遅延回路の上記遅延量が設定されている。
【００２１】
データ取出部は、データ信号とクロック信号のうちの対象信号と異なる他方と、第１〜第３の遅延信号のそれぞれとを用いてデータの取出しを行い、第１のデータと、第２のデータと、第３のデータとを得る。具体的には、対象信号がクロック信号である場合に、第１〜第３の遅延信号のそれぞれに基づいてデータ信号からデータの取出しを行って、第１〜第３のデータを得る。一方、対象信号がデータ信号である場合に、クロック信号に基づいて、第１〜第３の遅延信号からのデータの取出しをそれぞれ行って、第１〜第３のデータを得る。
【００２２】
出力部は、第１のデータを外部に出力する。「外部」とは、メモリリードの場合は、リードを行う装置側を意味し、メモリライトの場合は、メモリ側を意味する。
【００２３】
比較部は、第１と第２のデータが一致するか否かの比較、及び第１と第３のデータが一致するか否かの比較を行って比較結果を得る。
【００２４】
なお、上記態様のインタフェース回路を装置に置き換えて表現したもの、該インタフェース回路を備えたＬＳＩも、本発明の態様としては有効である。
【発明の効果】
【００２５】
本発明にかかる技術によれば、システムのパフォーマンスを低下させずに、メモリアクセス時のデータとクロック間の位相関係の変動を検出することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１の実施の形態にかかるインタフェース回路を示す図である。
【図２】本発明の第２の実施の形態にかかるインタフェース回路を示す図である。
【図３】本発明の第３の実施の形態にかかるインタフェース回路を示す図である。
【図４】本発明の第４の実施の形態にかかるインタフェース回路を示す図である。
【図５】本発明の第５の実施の形態にかかるインタフェース回路を示す図である。
【図６】本発明の第６の実施の形態にかかるインタフェース回路を示す図である。
【図７】本発明の第７の実施の形態にかかるインタフェース回路を示す図である。
【図８】図７に示すインタフェース回路における第２の遅延回路を示す図である。
【図９】図７に示すインタフェース回路の第１の遅延回路における位相シフト回路を示す図である。
【図１０】図７に示すインタフェース回路における判定回路を示す図である。
【図１１】図７に示すインタフェース回路における制御回路を示す図である。
【図１２】図１１に示す制御回路における第２の初期位相設定部を示す図である。
【図１３】図７に示すインタフェース回路の初期設定の直後における各データ信号とクロック信号の関係の例を示す図である。
【図１４】図７に示すインタフェース回路において、データ信号の位相遅れが生じた場合の各データ信号とクロック信号の関係の例を示す図である。
【図１５】図７に示すインタフェース回路において、クロック信号の位相遅れが生じた場合の各データ信号とクロック信号の関係の例を示す図である。
【図１６】図７に示すインタフェース回路における処理の例を示すフローチャートである（その１）。
【図１７】図７に示すインタフェース回路における処理の例を示すフローチャートである（その２）。
【図１８】特許文献１の技術を説明するための図である（その１）。
【図１９】特許文献１の技術を説明するための図である（その２）。
【発明を実施するための形態】
【００２７】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面間で、機能や動作が同じものについては、同一の符号を付与し、詳細な説明を繰り返さない。
【００２８】
また、以下の各実施の形態のインタフェース回路は、同期式メモリのメモリリードまたはライトのデータ信号とクロック信号のいずれか一方または両方に遅延を与えてから、データ信号からデータを取り出して出力するものであり、入力されたデータ信号とクロック信号が所定の位相関係を有する場合に、クロック信号のエッジがデータ信号の単位データの中心部に対応するように上記遅延の遅延量が設定されている。
【００２９】
「クロック信号のエッジがデータ信号の単位データの中心部に対応する」ことは、クロック信号に基づいてデータ信号からデータを取り出すための、データ信号とクロック信号の最適な位相関係である。以下の説明において、クロック信号のエッジがデータ信号の単位データの中心部に対応することを満たすデータ信号とクロック信号の位相関係を「最適な位相関係」という。
【００３０】
「データ信号の単位データの中心部」とは、データ信号の単位データの有効期間の中心及び中心付近を意味し、例えば、ＤＤＲメモリの場合クロックの1/4周期位相付近とすることができる。
【００３１】
例えば、ＳＤＲメモリの場合、メモリリードの際のデータ信号とクロック信号の最適な位相関係は、クロック信号の立上りエッジがデータ信号の単位データの中心部に対応することを意味し、メモリライトの際も同様である。
【００３２】
また、ＤＤＲメモリの場合、メモリリードとメモリライトのいずれのときにおいても、データ信号とクロック信号の最適な位相関係は、クロック信号の立上りエッジと立下りエッジのいずれもデータ信号の単位データの中心部に対応することを意味する。
【００３３】
前述したように、以下の各実施の形態のインタフェース回路は、入力されたデータ信号とクロック信号が所定の位相関係を有する場合に、データ信号とクロック信号が最適な位相関係になるように、データ信号とクロック信号のいずれか一方または両方に与える遅延量が設定されている。この「所定の位相関係」は、システムの設計によって異なりうるが、以下の説明において、例として、この所定の位相関係が「同相」であるとする。
【００３４】
また、説明上の便宜のため、以下の各実施の形態について、ＤＤＲメモリのメモリリードの場合を例にする。
【００３５】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態にかかるインタフェース回路１００を示す。インタフェース回路１００は、ＤＤＲメモリのインタフェース回路であり、図示しないＤＤＲメモリからデータ信号ＤＱとデータ取り込みクロック信号ＣＬＫが入力される。
【００３６】
インタフェース回路１００は、第１の遅延回路１１０と、データ取出部１２０と、出力回路１３０と、比較部１４０を備える。
【００３７】
第１の遅延回路１１０は、クロック信号ＣＬＫを段階的に遅延させることによって位相の異なる３つの遅延信号（ＣＬＫ１、ＣＬＫ２、ＣＬＫ３）を生成する。本実施の形態において、第１の遅延回路１１０がクロック信号ＣＬＫを対象信号とし、３つの遅延信号がクロック信号であるため、以下、ＣＬＫ１〜３をそれぞれ第１のクロック信号、第２のクロック信号、第３のクロック信号という。第２のクロック信号ＣＬＫ２は、第１のクロック信号ＣＬＫ１より位相が所定値早いクロック信号であり、第３のクロック信号ＣＬＫ３は、第１のクロック信号ＣＬＫ１より位相が所定値遅いクロック信号である。
【００３８】
第１の遅延回路１１０は、第１のクロック信号ＣＬＫ１のクロック信号ＣＬＫに対する遅延量が調整可能である。本実施の形態において、データ信号ＤＱとクロック信号ＣＬＫが所定の位相関係ここでは同相である場合に、第１のクロック信号ＣＬＫ１とデータ信号ＤＱとが最適な位相関係になるように上記遅延量が設定されている。
【００３９】
また、第２のクロック信号ＣＬＫ２は第１のクロック信号ＣＬＫ１より位相が早いものの、第２のクロック信号ＣＬＫ２と第１のクロック信号ＣＬＫ１間の位相差に該当する「所定値」は、第１のクロック信号ＣＬＫ１とデータ信号ＤＱが最適な位相関係を有する場合に、第２のクロック信号ＣＬＫ２に基づいてもデータ信号ＤＱから、第１のクロック信号ＣＬＫ１に基づいてデータ信号ＤＱから取出したデータと同じデータを取り出すことができる範囲内の値に設定されている。
【００４０】
同様に、第３のクロック信号ＣＬＫ３は第１のクロック信号ＣＬＫ１より位相が遅いものの、第３のクロック信号ＣＬＫ３と第１のクロック信号ＣＬＫ１間の位相差に該当する「所定値」も、第１のクロック信号ＣＬＫ１とデータ信号ＤＱが最適な位相関係を有する場合に、第３のクロック信号ＣＬＫ３に基づいてもデータ信号ＤＱから、第１のクロック信号ＣＬＫ１に基づいてデータ信号ＤＱから取出したデータと同じデータを取り出すことができる範囲内の値に設定されている。
【００４１】
データ取出部１２０は、第１の取出部１２２と、第２の取出部１２４と、第３の取出部１２６を有する。これらの取出部は、クロック信号に基づいてデータ信号からデータの取出しを行うものであり、例えばラッチ回路やフリップフロップ回路である。
【００４２】
第１の取出部１２２は、第１のクロック信号ＣＬＫ１に基づいてデータ信号ＤＱからデータの取出しを行って第１のデータＤＡを得る。第２の取出部１２４は、第２のクロック信号ＣＬＫ２に基づいてデータ信号ＤＱからデータの取出しを行って第２のデータＤＢを得る。第３の取出部１２６は、第３のクロック信号ＣＬＫ３に基づいてデータ信号ＤＱからデータの取出しを行って第３のデータＤＣを得る。
【００４３】
第１のデータＤＡ、第２のデータＤＢ、第３のデータＤＣは、共に比較部１４０に入力される。第１のデータＤＡは、さらに出力回路１３０に入力され、出力回路１３０によりリードデータまたはライトデータとして外部に出力される。
【００４４】
比較部１４０は、第１のデータＤＡと第２のデータＤＢが一致であるか否かの比較、及び第１のデータＤＡと第３のデータＤＣとが一致であるか否かの比較を行って比較結果を得る。
【００４５】
上述した説明から分かるように、データ信号ＤＱとクロック信号ＣＬＫのいずれも遅延が無く、同相でインタフェース回路１００に入力された場合、第１のクロック信号ＣＬＫ１とデータ信号ＤＱが最適な位相関係を有することになるため、第１の取出部１２２によりデータ信号ＤＱからリードデータ（第１のデータＤＡ）が正しく取り出され、外部に出力される。また、この場合、第２の取出部１２４と第３の取出部１２６により得られた第２のデータＤＢと第３のデータＤＣは、第１のデータＤＡと同一である。
【００４６】
一方、データ信号ＤＱとクロック信号ＣＬＫのいずれかの位相が遅れて、第１のクロック信号ＣＬＫ１と第２のクロック信号ＣＬＫ２のエッジ、または第１のクロック信号ＣＬＫ１と第３のクロック信号ＣＬＫ３のエッジがデータ信号ＤＱの異なる単位データの有効期間に対応するようになった場合、第１のデータＤＡと第２のデータＤＢ、または第１のデータＤＡと第３のデータＤＣが異なってしまう。
【００４７】
そのため、比較部１４０の比較結果は、データ信号ＤＱとクロック信号ＣＬＫのいずれかに生じた位相遅れの大小、すなわちデータ信号ＤＱと第１のクロック信号ＣＬＫ１間の最適な位相関係の崩れの有無を示すことができる。具体的には、第１のデータＤＡと第２のデータＤＢの比較結果（第１の比較結果）、第１のデータＤＡと第３のデータＤＣの比較結果（第２の比較結果）のいずれも「一致」を示すものであれば、データ信号ＤＱと第１のクロック信号ＣＬＫ１が最適な位相関係を有することが分かる。一方、第１の比較結果と第２の比較結果のいずれか一方が「不一致」を示すものであれば、データ信号ＤＱと第１のクロック信号ＣＬＫ１の最適な位相関係が崩れており、調整が必要であることが分かる。
【００４８】
このように、本実施の形態のインタフェース回路１００は、データ信号ＤＱからリードデータを取り出すクロック信号として第１のクロック信号ＣＬＫ１を生成して、第１のクロック信号ＣＬＫ１に基づいてデータ信号ＤＱから第１のデータＤＡを取出してリードデータとして外部に出力すると共に、第１のクロック信号ＣＬＫ１より位相が所定値早い第２のクロック信号ＣＬＫ２と、第１のクロック信号ＣＬＫ１より位相が所定値遅い第３のクロック信号ＣＬＫ３を生成してこの２つのクロック信号にも基づいてデータ信号ＤＱからのデータの取出しを行って第２のデータＤＢと第３のデータＤＣを得て第１のデータＤＡと比較し、第１のクロック信号ＣＬＫ１とデータ信号ＤＱ間の最適な位相関係の崩れの有無を示す比較結果を得る。従って、システムの動作を停止させることをせずに、データ信号ＤＱと、リードデータを取り出すためのクロック信号（第１のクロック信号ＣＬＫ１）間の最適な位相関係の崩れの有無を検出でき、システムのパフォーマンスの低下を回避できる。
【００４９】
＜第２の実施の形態＞
図２は、本発明の第２の実施の形態にかかるインタフェース回路１５０を示す。インタフェース回路１５０も、ＤＤＲメモリのインタフェース回路であり、メモリリードデータ信号ＤＱとクロック信号ＣＬＫが入力される。
【００５０】
インタフェース回路１５０は、第１の遅延回路１６０と、データ取出部１２０と、出力回路１３０と、比較部１４０を備える。
【００５１】
第１の遅延回路１６０は、データ信号ＤＱを段階的に遅延させることによって位相の異なる３つの遅延信号（ＤＱ１、ＤＱ２、ＤＱ３）を生成する。本実施の形態において、第１の遅延回路１６０がデータ信号ＤＱを対象信号とし、３つの遅延信号がデータ信号であるため、以下、ＤＱ１〜３をそれぞれ第１のデータ信号、第２のデータ信号、第３のデータ信号という。第２のデータ信号ＤＱ２は、第１のデータ信号ＤＱ１より位相が所定値早いデータ信号であり、第３のデータ信号ＤＱ３は、第１のデータ信号ＤＱ１より位相が所定値遅いデータ信号である。
【００５２】
第１の遅延回路１６０は、第１のデータ信号ＤＱ１のデータ信号ＤＱに対する遅延量が調整可能である。本実施の形態において、データ信号ＤＱとクロック信号ＣＬＫが所定の位相関係ここでは同相である場合に、第１のデータ信号ＤＱ１とクロック信号ＣＬＫとが最適な位相関係になるように上記遅延量が設定されている。
【００５３】
また、第２のデータ信号ＤＱ２は第１のデータ信号ＤＱ１より位相が早いものの、第２のデータ信号ＤＱ２と第１のデータ信号ＤＱ１間の位相差に該当する「所定値」は、第１のデータ信号ＤＱ１とクロック信号ＣＬＫが最適な位相関係を有する場合に、クロック信号ＣＬＫに基づいて第２のデータ信号ＤＱ２からも、クロック信号ＣＬＫに基づいて第１のデータ信号ＤＱ１から取出したデータと同じデータを取り出すことができる範囲内の値に設定されている。
【００５４】
同様に、第３のデータ信号ＤＱ３は第１のデータ信号ＤＱ１より位相が遅いものの、第３のデータ信号ＤＱ３と第１のデータ信号ＤＱ１間の位相差に該当する「所定値」も、第１のデータ信号ＤＱ１とクロック信号ＣＬＫが最適な位相関係を有する場合に、クロック信号ＣＬＫに基づいて第３のデータ信号ＤＱ３からも、クロック信号ＣＬＫに基づいて第１のデータ信号ＤＱ１から取出したデータと同じデータを取り出すことができる範囲内の値に設定されている。
【００５５】
データ取出部１２０は、入力される信号が異なる点を除き、インタフェース回路１００のデータ取出部１２０と同一である。
【００５６】
第１の取出部１２２は、クロック信号ＣＬＫと第１のデータ信号ＤＱ１が入力され、クロック信号ＣＬＫに基づいて第１のデータ信号ＤＱ１からデータの取出しを行って第１のデータＤＡを得る。第２の取出部１２４は、クロック信号ＣＬＫと第２のデータ信号ＤＱ２が入力され、クロック信号ＣＬＫに基づいて第２のデータ信号ＤＱ２からデータの取出しを行って第２のデータＤＢを得る。第３の取出部１２６は、クロック信号ＣＬＫと第３のデータ信号ＤＱ３が入力され、クロック信号ＣＬＫに基づいて第３のデータ信号ＤＱ３からデータの取出しを行って第３のデータＤＣを得る。
【００５７】
第１のデータＤＡ、第２のデータＤＢ、第３のデータＤＣは、共に比較部１４０に入力される。第１のデータＤＡは、さらに出力回路１３０に入力され、出力回路１３０によりリードデータまたはライトデータとして外部に出力される。比較部１４０は、第１のデータＤＡと第２のデータＤＢが一致であるか否かの比較、及び第１のデータＤＡと第３のデータＤＣとが一致であるか否かの比較を行って比較結果を得る。これらについては、インタフェース回路１００と同様である。
【００５８】
本実施の形態のインタフェース回路１５０は、リードデータを取り出すためのデータ信号として第１のデータ信号ＤＱ１を生成して、クロック信号ＣＬＫに基づいて第１のデータ信号ＤＱ１から第１のデータＤＡを取り出してリードデータとして外部に出力すると共に、第１のデータ信号ＤＱ１より位相が所定値早い第２のデータ信号ＤＱ２と、第１のデータ信号ＤＱ１より位相が所定値遅い第３のデータ信号ＤＱ３を生成して、クロック信号ＣＬＫに基づいてこの２つのデータ信号からデータの取出しをそれぞれ行って第２のデータＤＢと第３のデータＤＣを得て第１のデータＤＡと比較し、第１のデータ信号ＤＱ１とクロック信号ＣＬＫ間の最適な位相関係の崩れの有無を示す比較結果を得る。従って、システムの動作を停止させることをせずに、クロック信号ＣＬＫと、リードデータを取り出すためのデータ信号（第１のデータ信号ＤＱ１）間の最適な位相関係の崩れの有無を検出でき、システムのパフォーマンスの低下を回避できる。
【００５９】
＜第３の実施の形態＞
図３は、本発明の第３の実施の形態にかかるインタフェース回路２００を示す。インタフェース回路２００も、ＤＤＲメモリのインタフェース回路であり、メモリリードのデータ信号ＤＱとクロック信号ＣＬＫが入力される。
【００６０】
インタフェース回路２００は、図１に示すインタフェース回路１００に対して、第１の遅延回路１１０の遅延量を調整する遅延調整部２１０が追加された点を除き、インタフェース回路１００と同様である。ここで、遅延調整部２１０についてのみ説明する。
【００６１】
遅延調整部２１０は、比較部１４０による比較結果に基づいて第１の遅延回路１１０に対して遅延量を調整するか否かの判定と、調整すると判定した場合の調整を行う。
【００６２】
具体的には、比較部１４０の２つの比較結果のいずれも「一致」を示す場合に、遅延調整部２１０は、「調整しない」と判定し、調整を行わない。
【００６３】
一方、比較部１４０の２つの比較結果のいずれか一方が「不一致」を示す場合には、遅延調整部２１０は、「調整する」と判定すると共に、比較部１４０の２つの比較結果のいずれも「一致」を示すように、第１の遅延回路１１０の調整を行う。例えば、第１のデータＤＡと第２のデータＤＢが不一致であり、第１のデータＤＡと第３のデータＤＣが一致である場合に、データ信号ＤＱの位相遅れが原因になるため、第１のクロック信号ＣＬＫ１のクロック信号ＣＬＫに対する遅延量が増えるように第１の遅延回路１１０を調整する。一方、第１のデータＤＡと第２のデータＤＢが一致であり、第１のデータＤＡと第３のデータＤＣが不一致である場合に、クロック信号ＣＬＫの位相遅れが原因になるため、第１のクロック信号ＣＬＫ１のクロック信号ＣＬＫに対する遅延量が減少するように第１の遅延回路１１０を調整する。
【００６４】
すなわち、本実施の形態のインタフェース回路２００は、インタフェース回路１００と同様の効果を得ることができると共に、第１のクロック信号ＣＬＫ１とデータ信号ＤＱが常に最適な位相関係を有するように調整できる。この調整は、通常のメモリアクセスを停止せずに行われるので、システムのパフォーマンスの低下を回避することができる。
＜第４の実施の形態＞
図４は、本発明の第４の実施の形態にかかるインタフェース回路２２０を示す。インタフェース回路２２０も、ＤＤＲメモリのインタフェース回路であり、メモリリードのデータ信号ＤＱとクロック信号ＣＬＫが入力される。
【００６５】
インタフェース回路２２０は、図１に示すインタフェース回路１００に対して、第１の遅延回路２２２が第１の遅延回路１１０と異なる点、データ信号ＤＱを遅延させて遅延データ信号ＤＱ０を得てデータ取出部１２０に出力する第２の遅延回路２２４と、第２の遅延回路２２４の遅延量を調整する遅延調整部２２６が追加された点を除き、インタフェース回路１００と同様である。ここで第１の遅延回路２２２と、第２の遅延回路２２４と、遅延調整部２２６についてのみ説明する。
【００６６】
第１の遅延回路２２２は、クロック信号ＣＬＫを段階的に遅延させて３つのクロック信号（第１のクロック信号ＣＬＫ１、第２のクロック信号ＣＬＫ２、第３のクロック信号ＣＬＫ３）を生成する。第２のクロック信号ＣＬＫ２は第１のクロック信号ＣＬＫ１より位相が所定値早く、第３のクロック信号ＣＬＫ３は第１のクロック信号ＣＬＫ１より位相が所定値遅い。第１のクロック信号ＣＬＫ１と第２のクロック信号ＣＬＫ２間の位相差は、インタフェース回路１００における第１のクロック信号ＣＬＫ１と第２のクロック信号ＣＬＫ２間の位相差と同様であり、第１のクロック信号ＣＬＫ１と第３のクロック信号ＣＬＫ３間の位相差も、インタフェース回路１００における第１のクロック信号ＣＬＫ１と第３のクロック信号ＣＬＫ３間の位相差と同様である。
【００６７】
第１のクロック信号ＣＬＫ１のクロック信号ＣＬＫに対する遅延量と、遅延データ信号ＤＱ０のデータ信号ＤＱに対する遅延量（すなわち第２の遅延回路２２４の遅延量）は、データ信号ＤＱとクロック信号ＣＬＫが同相であるときに、第１のクロック信号ＣＬＫ１と遅延データ信号ＤＱ０が最適な位相関係を有するように設定されている。
【００６８】
第１の取出部１２２は、第１のクロック信号ＣＬＫ１と遅延データ信号ＤＱ０が入力され、第１のクロック信号ＣＬＫ１に基づいて遅延データ信号ＤＱ０からデータの取出しを行って第１のデータＤＡを得る。第２の取出部１２４は、第２のクロック信号ＣＬＫ２と遅延データ信号ＤＱ０が入力され、第２のクロック信号ＣＬＫ２に基づいて遅延データ信号ＤＱ０からデータの取出しを行って第２のデータＤＢを得る。第３の取出部１２６は、第３のクロック信号ＣＬＫ３と遅延データ信号ＤＱ０が入力され、第３のクロック信号ＣＬＫ３に基づいて遅延データ信号ＤＱ０からデータの取出しを行って第３のデータＤＣを得る。
【００６９】
遅延調整部２２６は、比較部１４０による比較結果に基づいて第２の遅延回路２２４に対して遅延量を調整するか否かの判定と、調整すると判定した場合の調整を行う。
【００７０】
具体的には、比較部１４０の２つの比較結果のいずれも「一致」を示す場合に、遅延調整部２２６は、「調整しない」と判定し、調整を行わない。
【００７１】
一方、比較部１４０の２つの比較結果のいずれか一方が「不一致」を示す場合には、遅延調整部２２６は、「調整する」と判定すると共に、比較部１４０の２つの比較結果のいずれも「一致」を示すように、第２の遅延回路２２４の調整を行う。例えば、第１のデータＤＡと第２のデータＤＢが不一致であり、第１のデータＤＡと第３のデータＤＣが一致である場合に、データ信号ＤＱの位相遅れが原因になるため、遅延データ信号ＤＱ０のデータ信号ＤＱに対する遅延量が減少するように第２の遅延回路２２４を調整する。一方、第１のデータＤＡと第２のデータＤＢが一致であり、第１のデータＤＡと第３のデータＤＣが不一致である場合に、クロック信号ＣＬＫの位相遅れが原因になるため、遅延データ信号ＤＱ０のデータ信号ＤＱに対する遅延量が増えるように第２の遅延回路２２４を調整する。
【００７２】
本実施の形態のインタフェース回路２２０は、図３に示すインタフェース回路２００を説明した時に述べた原理と同様に、インタフェース回路２００と同様の効果を得ることができる。
＜第５の実施の形態＞
図５は、本発明の第５の実施の形態にかかるインタフェース回路２５０を示す。インタフェース回路２５０も、ＤＤＲメモリのインタフェース回路であり、メモリリードのデータ信号ＤＱとクロック信号ＣＬＫが入力される。
【００７３】
インタフェース回路２５０は、図２に示すインタフェース回路１５０に対して、第１の遅延回路１６０の遅延量を調整する遅延調整部２６０が追加された点を除き、インタフェース回路１５０と同様である。ここで、遅延調整部２６０についてのみ説明する。
【００７４】
遅延調整部２６０は、比較部１４０による比較結果に基づいて第１の遅延回路１６０に対して遅延量を調整するか否かの判定と、調整すると判定した場合の調整を行う。
【００７５】
具体的には、比較部１４０の２つの比較結果のいずれも「一致」を示す場合に、遅延調整部２１０は、「調整しない」と判定し、調整を行わない。
【００７６】
一方、比較部１４０の２つの比較結果のいずれか一方が「不一致」を示す場合には、遅延調整部２６０は、「調整する」と判定すると共に、比較部１４０の２つの比較結果のいずれも「一致」を示すように、第１の遅延回路１６０の調整を行う。例えば、第１のデータＤＡと第２のデータＤＢが不一致であり、第１のデータＤＡと第３のデータＤＣが一致である場合に、データ信号ＤＱの位相遅れが原因になるため、第１のデータ信号ＤＱ１のデータ信号ＤＱに対する遅延量が減少するように第１の遅延回路１６０を調整する。一方、第１のデータＤＡと第２のデータＤＢが一致であり、第１のデータＤＡと第３のデータＤＣが不一致である場合に、クロック信号ＣＬＫの位相遅れが原因になるため、第１のデータ信号ＤＱ１のデータ信号ＤＱに対する遅延量が増えるように第１の遅延回路１６０を調整する。
【００７７】
すなわち、本実施の形態のインタフェース回路２５０は、インタフェース回路１５０と同様の効果を得ることができると共に、第１のデータ信号ＤＱ１とクロック信号ＣＬＫが常に最適な位相関係を有するように調整できる。この調整は、通常のメモリアクセスを停止せずに行われるので、システムのパフォーマンスの低下を回避することができる。
＜第６の実施の形態＞
図６は、本発明の第６の実施の形態にかかるインタフェース回路２７０を示す。インタフェース回路２７０も、ＤＤＲメモリのインタフェース回路であり、メモリリードのデータ信号ＤＱとクロック信号ＣＬＫが入力される。
【００７８】
インタフェース回路２７０は、図２に示すインタフェース回路１５０に対して、第１の遅延回路２７２が第１の遅延回路１６０と異なる点、クロック信号ＣＬＫを遅延させて遅延クロック信号ＣＬＫ０を得てデータ取出部１２０に出力する第２の遅延回路２７４と、第２の遅延回路２７４の遅延量を調整する遅延調整部２７６が追加された点を除き、インタフェース回路１５０と同様である。ここで第１の遅延回路２７２と、第２の遅延回路２７４と、遅延調整部２７６についてのみ説明する。
【００７９】
第１の遅延回路２７２は、データ信号ＤＱを段階的に遅延させて３つのデータ信号（第１のデータ信号ＤＱ１、第２のデータ信号ＤＱ２、第３のデータ信号ＤＱ３）を生成する。第２のデータ信号ＤＱ２は第１のデータ信号ＤＱ１より位相が所定値早く、第３のデータ信号ＤＱ３は第１のデータ信号ＤＱ１より位相が所定値遅い。第１のデータ信号ＤＱ１と第２のデータ信号ＤＱ２間の位相差は、インタフェース回路１５０における第１のデータ信号ＤＱ１と第２のデータ信号ＤＱ２間の位相差と同様であり、第１のデータ信号ＤＱ１と第３のデータ信号ＤＱ３間の位相差も、インタフェース回路１５０における第１のデータ信号ＤＱ１と第３のデータ信号ＤＱ３間の位相差と同様である。
【００８０】
第１のデータ信号ＤＱ１のデータ信号ＤＱに対する遅延量と、遅延クロック信号ＣＬＫ０のクロック信号ＣＬＫに対する遅延量（すなわち第２の遅延回路２７４の遅延量）は、データ信号ＤＱとクロック信号ＣＬＫが同相であるときに、第１のデータ信号ＤＱ１と遅延クロック信号ＣＬＫ０が最適な位相関係を有するように設定されている。
【００８１】
第１の取出部１２２は、遅延クロック信号ＣＬＫ０と第１のデータ信号ＤＱ１が入力され、遅延クロック信号ＣＬＫ０に基づいて第１のデータ信号ＤＱ１からデータの取出しを行って第１のデータＤＡを得る。第２の取出部１２４は、遅延クロック信号ＣＬＫ０と第２のデータ信号ＤＱ２が入力され、遅延クロック信号ＣＬＫ０に基づいて第２のデータ信号ＤＱ２からデータの取出しを行って第２のデータＤＢを得る。第３の取出部１２６は、遅延クロック信号ＣＬＫ０と第３のデータ信号ＤＱ３が入力され、遅延クロック信号ＣＬＫ０に基づいて第３のデータ信号ＤＱ３からデータの取出しを行って第３のデータＤＣを得る。
【００８２】
遅延調整部２７６は、比較部１４０による比較結果に基づいて第２の遅延回路２７４に対して遅延量を調整するか否かの判定と、調整すると判定した場合の調整を行う。
【００８３】
具体的には、比較部１４０の２つの比較結果のいずれも「一致」を示す場合に、遅延調整部２７６は、「調整しない」と判定し、調整を行わない。
【００８４】
一方、比較部１４０の２つの比較結果のいずれか一方が「不一致」を示す場合には、遅延調整部２７６は、「調整する」と判定すると共に、比較部１４０の２つの比較結果のいずれも「一致」を示すように、第２の遅延回路２７４の調整を行う。例えば、第１のデータＤＡと第２のデータＤＢが不一致であり、第１のデータＤＡと第３のデータＤＣが一致である場合に、データ信号ＤＱの位相遅れが原因になるため、遅延クロック信号ＣＬＫ０のクロック信号ＣＬＫに対する遅延量が増えるように第２の遅延回路２７４を調整する。一方、第１のデータＤＡと第２のデータＤＢが一致であり、第１のデータＤＡと第３のデータＤＣが不一致である場合に、クロック信号ＣＬＫの位相遅れが原因になるため、遅延クロック信号ＣＬＫ０のクロック信号ＣＬＫに対する遅延量が減少するように第２の遅延回路２７４を調整する。
【００８５】
本実施の形態のインタフェース回路２７０は、図５に示すインタフェース回路２５０と同様の効果を得ることができる。
【００８６】
＜第７の実施の形態＞
図７は、本発明の第７の実施の形態にかかるインタフェース回路３００を示す。インタフェース回路３００は、ＤＤＲメモリのインタフェース回路であり、ＤＤＲメモリ２９０からデータ信号ＤＱとクロック信号ＣＬＫが入力される。
【００８７】
インタフェース回路３００は、入力バッファ３０２、入力バッファ３０４、第１の遅延回路３３０、第２の遅延回路３４０、データ取出部３５０、判定回路５００、制御回路６００、ＣＬＫ遅延調整回路３８０、ＤＱ遅延調整回路３９０を備える。
【００８８】
ＤＤＲメモリ２９０からのクロック信号ＣＬＫは、入力バッファ３０２に入力され、入力バッファ３０２により第１の遅延回路３３０に出力する。ＤＤＲメモリ２９０からのデータ信号ＤＱは、入力バッファ３０４に入力され、入力バッファ３０４により第２の遅延回路３４０に出力する。
【００８９】
第１の遅延回路３３０は、入力バッファ３０２からのクロック信号ＣＬＫを段階的に遅延させて３つの遅延信号（第１のクロック信号ＣＬＫ１、第２のクロック信号ＣＬＫ２、第３のクロック信号ＣＬＫ３）を生成してデータ取出部３５０に出力する。第２のクロック信号ＣＬＫ２は、第１のクロック信号ＣＬＫ１より位相が所定値早いクロック信号であり、第３のクロック信号ＣＬＫ３は、第１のクロック信号ＣＬＫ１より位相が所定値遅いクロック信号である。
【００９０】
第１の遅延回路３３０は、遅延回路３３２と、位相シフト回路４００を有する。遅延回路３３２は、入力バッファ３０２からのクロック信号ＣＬＫを遅延させて遅延クロック信号ＣＬＫ０を得て位相シフト回路４００に出力する。位相シフト回路４００は、遅延クロック信号ＣＬＫ０に対して位相シフトを行って上述した第１のクロック信号ＣＬＫ１、第２のクロック信号ＣＬＫ２、第３のクロック信号ＣＬＫ３を生成する。
【００９１】
遅延回路３３２の遅延量、すなわち遅延クロック信号ＣＬＫ０が入力バッファ３０２からのクロック信号ＣＬＫに対する遅延量は、ＣＬＫ遅延調整回路３８０により調整可能である。また、ＣＬＫ遅延調整回路３８０が遅延回路３３２に対する調整は、制御回路６００からの制御信号ｃｔｒ３により制御される。位相シフト回路４００が生成する３つのクロック信号の位相は、システムからの制御信号ｃｔｒ０と、制御回路６００からの制御信号ｃｔｒ１及び制御信号ｃｔｒ２により制御される。
【００９２】
第２の遅延回路３４０は、入力バッファ３０４からのデータ信号ＤＱを遅延させて遅延データ信号ＤＱ０を得てデータ取出部３５０に出力する。
【００９３】
第２の遅延回路３４０の遅延量、すなわち遅延データ信号ＤＱ０が入力バッファ３０４からのデータ信号ＤＱに対する遅延量は、ＤＱ遅延調整回路３９０により調整可能である。また、ＤＱ遅延調整回路３９０が第２の遅延回路３４０に対する調整は、制御回路６００からの制御信号ｃｔｒ４により制御される。
制御信号ｃｔｒ０、制御信号ｃｔｒ１〜制御信号ｃｔｒ４の詳細については後述する。
【００９４】
データ取出部３５０は、クロック信号に基づいてデータ信号からデータを取り出す取出部を３つ（第１の取出部３５２、第２の取出部３５４、第３の取出部３５６）備える。
【００９５】
第１の遅延回路３３０からの第１のクロック信号ＣＬＫ１と第２の遅延回路３４０からの遅延データ信号ＤＱ０は第１の取出部３５２に入力される。第１の取出部３５２は、第１のクロック信号ＣＬＫ１に基づいて遅延データ信号ＤＱ０からのデータの取出を行って第１のデータＤＡを得る。第１の取出部３５２は、第１のデータＤＡを外部に出力すると共に、判定回路５００に出力する。
【００９６】
第１の遅延回路３３０からの第２のクロック信号ＣＬＫ２と第２の遅延回路３４０からの遅延データ信号ＤＱ０は第２の取出部３５４に入力される。第２の取出部３５４は、第２のクロック信号ＣＬＫ２に基づいて遅延データ信号ＤＱ０からのデータの取出しを行って第２のデータＤＢを得る。第２の取出部３５４は、第２のデータＤＢを判定回路５００に出力する
【００９７】
第１の遅延回路３３０からの第３のクロック信号ＣＬＫ３と第２の遅延回路３４０からの遅延データ信号ＤＱ０は第３の取出部３５６に入力される。第３の取出部３５６は、第３のクロック信号ＣＬＫ３に基づいて遅延データ信号ＤＱ０からのデータの取出しを行って第３のデータＤＣを得る。第３の取出部３５６は、第３のデータＤＣを判定回路５００に出力する。
【００９８】
判定回路５００は、第１のデータＤＡ、第２のデータＤＢ、第３のデータＤＣを用いて比較を行い、比較結果を制御回路６００に出力する。判定回路５００から出力される比較結果、第１〜第３の比較結果の３種類があり、これらについては後述する。
【００９９】
制御回路６００は、判定回路５００からの比較結果に基づいて制御信号ｃｔｒ１〜ｃｔｒ４を生成して、第１の遅延回路３３０と第２の遅延回路３４０を制御する。
【０１００】
次いで、インタフェース回路３００の各機能ブロックの構成を詳細に説明する。
図８は、第２の遅延回路３４０とＤＱ遅延調整回路３９０を示す。第２の遅延回路３４０は、直列に接続された複数の遅延素子（遅延素子３１１〜３１８）と、遅延素子３１１〜３１８の各段の出力が入力され、これらの出力のうちの１つを選択して遅延データ信号ＤＱ０として出力するマルチプレクサ（以下ＭＰＸという）ＭＰＸ３２０と、ＤＱ遅延調整回路３９０からの制御信号をデコードして選択指示信号を得てＭＰＸ３２０に出力するデコーダ３２２を有する。遅延素子３１１には、入力バッファ３０４からのデータ信号ＤＱが入力される。
【０１０１】
選択指示信号は、遅延素子３１１〜３１８のどの段の出力を選択するかをＭＰＸ３２０に指示する信号であり、例えば遅延素子３１１〜３１８の各段の出力にそれぞれ対応する「０」または「１」からなる。「０」は、該段の出力を選択しないことを示し、「１」は該段の出力を選択することを示す。例えば、選択信号は、遅延素子３１４の出力に対応するデータのみが「１」であり、他の遅延素子の出力に対応するデータが「０」である場合に、ＭＰＸ３２０は、遅延素子３１４の出力を選択して遅延データ信号ＤＱ０として出力する。
【０１０２】
すなわち、第２の遅延回路３４０の遅延量、すなわち第２の遅延回路３４０から出力される遅延データ信号ＤＱ０の、入力バッファ３０４からのデータ信号ＤＱに対する遅延量は、制御回路６００からの制御信号ｃｔｒ４に応じて調整可能である。
【０１０３】
第１の遅延回路３３０における遅延回路３３２は、第２の遅延回路３４０と同じ構成を有し、ここで詳細な説明を省略する。遅延回路３３２の遅延量、すなわち遅延回路３３２から出力される遅延クロック信号ＣＬＫ０の、入力バッファ３０２からのクロック信号ＣＬＫに対する遅延量は、ＣＬＫ遅延調整回路３８０により、制御回路６００からの制御信号ｃｔｒ３に応じて調整可能である。
【０１０４】
図９は、第１の遅延回路３３０における位相シフト回路４００を示す。位相シフト回路４００は、直列に接続された複数の遅延素子を有するディレイライン４０２と、出力制御部４０６を有する。
【０１０５】
ディレイライン４０２には、遅延回路３３２からの遅延クロック信号ＣＬＫ０が入力され、ディレイライン４０２の各遅延素子により順次遅延される。
【０１０６】
選択回路４０４は、ディレイライン４０２の各段の遅延素子の出力が入力され、これらの出力から３つを選択して第１のクロック信号ＣＬＫ１、第２のクロック信号ＣＬＫ２、第３のクロック信号ＣＬＫ３として出力する。
【０１０７】
出力制御部４０６は、後述する初期設定時において、第１のクロック信号ＣＬＫ１が遅延クロック信号ＣＬＫ０に対する遅延量、第２のクロック信号ＣＬＫ２が第１のクロック信号ＣＬＫ１より位相が早い量、第３のクロック信号ＣＬＫ３が第１のクロック信号ＣＬＫ１より位相が遅い量を制御する。具体的には、制御信号ｃｔｒ０に応じて第１のクロック信号ＣＬＫ１を意図する位相へと制御するためにディレイライン４０２に遅延量を指示する制御信号Ｐ１を生成し、制御信号ｃｔｒ１に応じて第２のクロック信号ＣＬＫ２として選択すべき信号を指示する選択信号Ｐ２を生成し、制御信号ｃｔｒ２に応じて第３のクロック信号ＣＬＫ３として選択すべき信号を指示する選択信号Ｐ３を選択回路４０４に出力する。
【０１０８】
選択回路４０４は、出力制御部４０６からの制御信号Ｐ１に応じて位相が制御された第一のクロック信号ＣＬＫ１を出力すると共に、出力制御部４０６からの選択信号Ｐ２〜Ｐ３に従って、ディレイライン４０２の複数の遅延素子のうちの該当する２つの遅延素子の出力を選択して、第２のクロック信号ＣＬＫ２、第３のクロック信号ＣＬＫ３として出力する。第２のクロック信号ＣＬＫ２は、第１のクロック信号ＣＬＫ１より位相が所定値早く、第３のクロック信号ＣＬＫ３は、第１のクロック信号ＣＬＫ１より所定値遅い。
【０１０９】
初期設定時において、データ信号ＤＱとクロック信号ＣＬＫは同相でインタフェース回路３００に入力され、第１の遅延回路３３０の遅延回路３３２と位相シフト回路４００の出力（遅延クロック信号ＣＬＫ０、第１のクロック信号ＣＬＫ１、第２のクロック信号ＣＬＫ２、第３のクロック信号ＣＬＫ３）、第２の遅延回路３４０の出力（遅延データ信号ＤＱ０）間の位相関係が下記３つを満たすように、第１の遅延回路３３０と第２の遅延回路３４０は調整される。
【０１１０】
（１）第１のクロック信号ＣＬＫ１と遅延データ信号ＤＱ０が最適な位相関係を有するように、第１のクロック信号ＣＬＫ１の立上りエッジと立下りエッジのいずれも、遅延データ信号ＤＱ０の中心部に対応する。
すなわち、データ信号ＤＱとクロック信号ＣＬＫが同相でインタフェース回路３００に入力される場合に、遅延回路３３２の遅延量（遅延クロック信号ＣＬＫ０のクロック信号ＣＬＫに対する遅延量）と、位相シフト回路４００が第１のクロック信号ＣＬＫ１を得るために遅延クロック信号ＣＬＫ０を遅延させた量との和から、第２の遅延回路３４０の遅延量（遅延データ信号ＤＱ０のデータ信号ＤＱに対する遅延量）を引いた値は、クロック信号ＣＬＫの概ね１／４周期である。
【０１１１】
（２）第２のクロック信号ＣＬＫ２は第１のクロック信号ＣＬＫ１より位相が早いものの、第２のクロック信号ＣＬＫ２と第１のクロック信号ＣＬＫ１間の位相差に該当する「所定値」は、第１のクロック信号ＣＬＫ１と遅延データ信号ＤＱ０が最適な位相関係を有する場合に、第２のクロック信号ＣＬＫ２に基づいても遅延データ信号ＤＱ０から、第１のクロック信号ＣＬＫ１に基づいて遅延データ信号ＤＱ０取出したデータと同じデータを取り出すことができる範囲内の値に、位相シフト回路４００に対して設定されている。この所定値は、データ信号ＤＱの単位データの有効幅に応じて異なり得るものであり、その具体的な設定手法については後述する。
【０１１２】
（３）同様に、第３のクロック信号ＣＬＫ３は第１のクロック信号ＣＬＫ１より位相が遅いものの、第３のクロック信号ＣＬＫ３と第１のクロック信号ＣＬＫ１間の位相差に該当する「所定値」も、第１のクロック信号ＣＬＫ１と遅延データ信号ＤＱ０が最適な位相関係を有する場合に、第３のクロック信号ＣＬＫ３に基づいても遅延データ信号ＤＱ０から、第１のクロック信号ＣＬＫ１に基づいて遅延データ信号ＤＱ０から取出したデータと同じデータを取り出すことができる範囲内の値に、位相シフト回路４００に対して設定されている。この所定値も、データ信号ＤＱの有効幅に応じて異なり得るものであり、その具体的な設定手法については後述する。
【０１１３】
データ取出部３５０の３つの取出部は、入力されたクロック信号の正相信号の立上りエッジでデータの取出しを行うフリップフロップ回路（正相ＦＦ回路という）と、入力されたクロック信号の逆相信号の立上りエッジでデータの取出しを行うフリップフロップ回路（逆相ＦＦ回路という）から構成される。すなわち、これらの取出部は、入力されたクロック信号の立上りエッジと立下りエッジのいずれにおいてもデータの取出しを行うものである。以下の説明において、入力されたクロック信号の立上りエッジと立下りエッジで取出したデータをそれぞれ「正相取出データ」、「逆相取出データ」という。
【０１１４】
第１の取出部３５２は、第１のクロック信号ＣＬＫ１に基づいて遅延データ信号ＤＱ０からのデータの取出を行って第１のデータＤＡ（正相取出データ、逆相取出データ）を得る。第１のデータＤＡは、判定回路５００に出力されると共に、リードデータとして外部にも出力される。
【０１１５】
第２の取出部３５４は、第２のクロック信号ＣＬＫ２に基づいて遅延データ信号ＤＱ０からのデータの取出しを行って第２のデータＤＢ（正相取出データ、逆相取出データ）を得る。第２のデータＤＢは、を判定回路５００に出力される。
【０１１６】
第３の取出部３５６は、第３のクロック信号ＣＬＫ３に基づいて遅延データ信号ＤＱ０からのデータの取出しを行って第３のデータＤＣ（正相取出データ、逆相取出データ）を得る。第３のデータＤＣは、判定回路５００に出力される。
【０１１７】
図１０は、判定回路５００を示す。判定回路５００は、期待データレジスタ５４０と、３つの比較回路（比較回路５１２、５２２、比較回路５３２）と、各比較回路にそれぞれ接続され、該比較回路の出力の論理和を得る３つの論理和ゲート（論理和ゲート５１４、論理和ゲート５２４、論理和ゲート５３４）を備える。
【０１１８】
比較回路５１２には、第２のデータＤＢと第１のデータＤＡが入力される。比較回路５１２は、第２のデータＤＢと第１のデータＤＡの正相取出データ同士で一致するか否かの比較、及び第２のデータＤＢと第１のデータＤＡの逆相取出データ同士で一致するか否かの比較を行い、それぞれの比較結果を論理和ゲート５１４に出力する。なお、「一致」と「不一致」の場合に出力されるデータがそれぞれ「０」と「１」である。
【０１１９】
論理和ゲート５１４は、比較回路５１２からの２つの出力の論理和を得て出力する。以下、論理和ゲート５１４の出力を「第１の比較結果」という。この第１の比較結果は、制御回路６００に出力される。
【０１２０】
比較回路５３２には、第３のデータＤＣと第１のデータＤＡが入力される。比較回路５３２は、第３のデータＤＣと第１のデータＤＡの正相取出データ同士で一致するか否かの比較、第３のデータＤＣと第１のデータＤＡの逆相取出データ同士で一致するか否かの比較を行い、それぞれの比較結果を論理和ゲート５３４に出力する。「一致」と「不一致」の場合に出力されるデータがそれぞれ「０」と「１」である。
【０１２１】
論理和ゲート５３４は、比較回路５３２からの２つの出力の論理和を得て出力する。以下、論理和ゲート５３４の出力を「第２の比較結果」という。この第２の比較結果も、制御回路６００に出力される。
【０１２２】
比較回路５１２、論理和ゲート５１４、比較回路５３２、論理和ゲート５３４は、システムの運用開始後も動作するが、比較回路５２２と論理和ゲート５２４は、初期設定時に動作するものである。初期設定時において、ＤＤＲメモリ２９０からテスト用のデータ信号ＤＱとクロック信号ＣＬＫがインタフェース回路３００に入力される。期待データレジスタ５４０には、上記テスト用のデータ信号ＤＱから取り出すべきデータ（以下期待データという）を格納している
【０１２３】
初期設定時に、比較回路５２２には、第１のデータＤＡと、期待データレジスタ５４０内の期待データが入力される。比較回路５２２は、第１のデータＤＡと期待データの正相取出データ同士で一致するか否かの比較、及び第１のデータＤＡと期待データの逆相取出データ同士で一致するか否かの比較を行い、それぞれの比較結果を論理和ゲート５２４に出力する。なお、「一致」と「不一致」の場合に出力されるデータがそれぞれ「０」と「１」である。
【０１２４】
図１１は、制御回路６００を示す。制御回路６００は、第１の初期位相設定部６１０と、遅延調整制御部６２０と、第２の初期位相設定部６３０と、位相設定制御部６４０と、制御信号選択部６５０を備える。
【０１２５】
第２の初期位相設定部６３０と第１の初期位相設定部６１０は、初期設定時に動作する。
【０１２６】
第１の初期位相設定部６１０は、初期設定時にＣＬＫ遅延調整回路３８０とＤＱ遅延調整回路３９０に送信する制御信号ｃｔｒ３、制御信号ｃｔｒ４を生成するためのものである。前述したように、初期設定時に、テスト用のデータ信号ＤＱとクロック信号ＣＬＫが同相でインタフェース回路３００に入力され、判定回路５００において、第１の取出部３５２の出力（第１のデータＤＡ）と期待データの比較がなされ、第３の比較結果は制御回路６００に出力される。
【０１２７】
第１の初期位相設定部６１０は、第３の比較結果が「０」になるまで、すなわち第１のデータＤＡと期待データの正相取出データ同士が一致であり、かつ逆相取出データ同士も一致であるようになるまで、遅延回路３３２と第２の遅延回路３４０の遅延量を制御する制御信号ｃｔｒ３と制御信号ｃｔｒ４を調整しながらＣＬＫ遅延調整回路３８０とＤＱ遅延調整回路３９０に送信する。その結果、第１のクロック信号ＣＬＫ１と遅延データ信号ＤＱ０が最適な位相関係を有することに調整される。すなわち、第１のクロック信号ＣＬＫ１の立上りエッジと立下りエッジのいずれも、遅延データ信号ＤＱ０の単位データの中心部に対応するように調整される。
【０１２８】
なお、第１の初期位相設定部６１０は、位相設定制御部６４０の制御に従って上記調整を開始し、調整が終われば、初期設定の完了を示す信号を位相設定制御部６４０に返送すると共に、ＣＬＫ遅延調整回路３８０とＤＱ遅延調整回路３９０に対して設定した遅延量を遅延調整制御部６２０に知らせる。
【０１２９】
位相設定制御部６４０は、初期設定時に第１の初期位相設定部６１０に初期設定開始を指示する信号を送信し、第１の初期位相設定部６１０による初期設定の完了を示す信号を受信するまで、制御信号選択部６５０に、第１の初期位相設定部６１０からの制御信号（制御信号ｃｔｒ３、制御信号ｃｔｒ４）を選択して出力するように制御する。
【０１３０】
第２の初期位相設定部６３０は、初期設定時において、第２のクロック信号ＣＬＫ２の第１のクロック信号ＣＬＫ１に対して位相が早い「所定値」と、第３のクロック信号ＣＬＫ３の第１のクロック信号ＣＬＫ１に対して位相が遅い「所定値」をそれぞれ設定するものである。
【０１３１】
前述したように、第２のクロック信号ＣＬＫ２の第１のクロック信号ＣＬＫ１に対して位相が早い量は、第１のクロック信号ＣＬＫ１と遅延データ信号ＤＱ０が最適な位相関係を有する場合に、第２のクロック信号ＣＬＫ２に基づいても遅延データ信号ＤＱ０から、第１のクロック信号ＣＬＫ１に基づいて遅延データ信号ＤＱ０取出したデータと同じデータを取り出すことができる範囲内の値に設定されている。同様に、第３のクロック信号ＣＬＫ３の第１のクロック信号ＣＬＫ１に対して位相が遅い量も、第１のクロック信号ＣＬＫ１と遅延データ信号ＤＱ０が最適な位相関係を有する場合に、第３のクロック信号ＣＬＫ３に基づいても遅延データ信号ＤＱ０から、第１のクロック信号ＣＬＫ１に基づいて遅延データ信号ＤＱ０から取出したデータと同じデータを取り出すことができる範囲内の値に設定される。
【０１３２】
本実施の形態において、第２の初期位相設定部６３０は、第１のクロック信号ＣＬＫ１と第２のクロック信号ＣＬＫ２間の位相差と、第１のクロック信号ＣＬＫ１と第３のクロック信号ＣＬＫ３の位相差は、上記条件を満たす値のうちの最も大きい値になるように、位相シフト回路４００に対して出力する制御信号ｃｔｒ１と制御信号ｃｔｒ２を生成する。
【０１３３】
図１２は、第２の初期位相設定部６３０を示す。第２の初期位相設定部６３０は、カウンタ制御部６３２、カウンタ６３４、カウンタ制御部６３６、カウンタ６３８を有する。
【０１３４】
カウンタ制御部６３２には、第１の比較結果、すなわち第１のクロック信号ＣＬＫ１に基づいて遅延データ信号ＤＱ０から取り出した第１のデータＤＡと、第２のクロック信号ＣＬＫ２に基づいて遅延データ信号ＤＱ０から取出した第２のデータＤＢとの比較結果が入力される。カウンタ制御部６３２は、第１の比較結果に応じてＵＰ／ＤＯＷＮカウンタであるカウンタ６３４をカウントアップ／カウントダウンさせ、カウンタ６３４のカウント値に応じた制御信号ｃｔｒ１は位相シフト回路４００に出力される。これにより、第１のクロック信号ＣＬＫ１と第２のクロック信号ＣＬＫ２間の位相差が調整される。カウンタ制御部６３２は、具体的には、第２のクロック信号ＣＬＫ２の第１のクロック信号ＣＬＫ１に対して位相が早い量が増えるように、第１の比較結果が「１」になるまで、カウンタ６３４にカウントアップさせる。また、第１の比較結果が「１」になると、カウンタ制御部６３２は、カウンタ６３４に１つカウントダウンさせて、第１のクロック信号ＣＬＫ１と第２のクロック信号ＣＬＫ２との位相差の調整を終了する。
【０１３５】
カウンタ制御部６３６には、第２の比較結果、すなわち第１のクロック信号ＣＬＫ１に基づいて遅延データ信号ＤＱ０から取り出した第１のデータＤＡと、第３のクロック信号ＣＬＫ３に基づいて遅延データ信号ＤＱ０から取出した第３のデータＤＣとの比較結果が入力される。カウンタ制御部６３６は、第２の比較結果に応じてＵＰ／ＤＯＷＮカウンタであるカウンタ６３８をカウントアップ／カウントダウンさせ、カウンタ６３８のカウント値に応じた制御信号ｃｔｒ２は位相シフト回路４００に出力される。これにより、第１のクロック信号ＣＬＫ１と第３のクロック信号ＣＬＫ３間の位相差が調整される。カウンタ制御部６３６は、具体的には、第３のクロック信号ＣＬＫ３の第１のクロック信号ＣＬＫ１に対して位相が遅い量が増えるように、第２の比較結果が「１」になるまで、カウンタ６３８にカウントアップさせる。また、第２の比較結果が「１」になると、カウンタ制御部６３６は、カウンタ６３８に１つカウントダウンさせて、第１のクロック信号ＣＬＫ１と第３のクロック信号ＣＬＫ３との位相差の調整を終了する。
【０１３６】
これにより、第１のクロック信号ＣＬＫ１第３のクロック信号ＣＬＫ３のエッジが遅延データ信号ＤＱ０の単位データの有効期間の境界付近に対応するように調整される。
【０１３７】
ジッタなどの影響により、データ信号ＤＱの単位データの有効幅が変る場合がある。第２の初期位相設定部６３０は、システムの本格運用の開始前の初期設定時に上記調整を行うことによって、データ信号ＤＱの単位データの有効幅に合わせて、第１のクロック信号ＣＬＫ１と第２のクロック信号ＣＬＫ２間の位相差、及び第１のクロック信号ＣＬＫ１と第３のクロック信号ＣＬＫ３間の位相差を最適な値に調整する。
【０１３８】
第２の初期位相設定部６３０は、上記調整が完了すると、その旨を示す信号を位相設定制御部６４０に出力する。
【０１３９】
位相設定制御部６４０は、第２の初期位相設定部６３０と第１の初期位相設定部６１０のいずれによる調整も完了すると、遅延調整制御部６２０からの制御信号（システム運用開始後の制御信号ｃｔｒ３と制御信号ｃｔｒ４）を選択するように制御する。これにて、システムの運用が開始される。
【０１４０】
遅延調整制御部６２０は、システム運用開始後に、第１のクロック信号ＣＬＫ１と遅延データ信号ＤＱ０間の最適な位相関係が崩れないように遅延回路３３２と第２の遅延回路３４０の遅延量を調整するための制御信号ｃｔｒ３と制御信号ｃｔｒ４を生成するものであり、第１の比較結果と第２の比較結果が入力される。
【０１４１】
具体的には、遅延調整制御部６２０は、第１の比較結果と第２の比較結果のいずれも「一致」すなわち「０」である場合に、遅延回路３３２と第２の遅延回路３４０を調整しないことを示す制御信号ｃｔｒ３と制御信号ｃｔｒ４を生成して制御信号選択部６５０を介してＣＬＫ遅延調整回路３８０とＤＱ遅延調整回路３９０に出力する。
【０１４２】
一方、第１の比較結果が「不一致」を示す「１」であり、第２の比較結果が「一致」を示す「０」である場合に、データ信号ＤＱの位相遅れが原因になるため、クロック信号ＣＬＫに対して遅延量が増えるように制御信号ｃｔｒ３を生成して制御信号選択部６５０を介してＣＬＫ遅延調整回路３８０に出力する。また、第１の比較結果が「一致」を示す「０」であり、第２の比較結果が「不一致」を示す「１」である場合に、クロック信号ＣＬＫの位相遅れが原因になるため、データ信号ＤＱに対する遅延量が増えるように制御信号ｃｔｒ４を生成して制御信号選択部６５０を介してＤＱ遅延調整回路３９０に出力する。
【０１４３】
図１３は、本実施の形態において、初期設定完了直後の各データ信号とクロック信号、データ取出部３５０が取出した各データの例を示す。
【０１４４】
図１３に示すように、このとき、遅延回路３３２と第２の遅延回路３４０は、クロック信号ＣＬＫとデータ信号ＤＱに対して同様の遅延量を与えるように調整されている。また、第１のクロック信号ＣＬＫ１の遅延クロック信号ＣＬＫ０に対する遅延量が概ね１／４周期になるように、すなわち第１のクロック信号ＣＬＫ１のエッジが遅延データ信号ＤＱ０の単位データの中心部に対応するように位相シフト回路４００は調整されている。また、第１のクロック信号ＣＬＫ１より位相が早い第２のクロック信号ＣＬＫ２と、第１のクロック信号ＣＬＫ１より位相が遅い第３のクロック信号ＣＬＫ３のエッジが遅延データ信号ＤＱ０の単位データの有効期間の境界付近に調整されている。
【０１４５】
その結果、図１３の下部に示すように、データ取出部３５０の３つの取出部から同じデータが出力される。すなわち、判定回路５００による第１の比較結果と第２の比較結果のいずれも「一致」を示す。
【０１４６】
図１４は、システムの運用開始後、経時変動により、データ信号ＤＱの位相が遅れた場合の各データ信号、データ取出部３５０が取出した各データの例を示す。
【０１４７】
図１４に示すように、このとき、第１のクロック信号ＣＬＫ１に基づいて遅延データ信号ＤＱ０から取出した第１のデータＤＡと、第３のクロック信号ＣＬＫ３に基づいて遅延データ信号ＤＱ０から取出した第３のデータＤＣの正相取出データ同士（Ｄ０／Ｄ０、Ｄ２／Ｄ２）が同一であり、逆相取出データ（Ｄ１／Ｄ１）が同じである。一方、第１のデータＤＡの１つ目の正相取出データ（Ｄ０）と、第２のクロック信号ＣＬＫ２に基づいて遅延データ信号ＤＱ０から取出した第２のデータＤＢの１つの正相取出データ（取出したデータが無いことを示すＸ）が異なる。また、第１のデータＤＡの１つ目の逆相取出データ（Ｄ１）と、第２のデータＤＢの１つ目の逆相取出データ（Ｄ０）とが異なり、第１のデータＤＡの２つ目の正相取出データ（Ｄ２）と、第２のデータＤＢの２つ目の逆相取出データ（Ｄ１）とも異なる。
【０１４８】
従って、判定回路５００からの２つの比較結果のうちの第１の比較結果が「不一致」を示す「１」が連続的に出力されるようになるため、遅延回路３３２は、クロック信号ＣＬＫに与える遅延量が増えるように調整される。その結果、第１の比較結果と第２の比較結果のいずれも「一致」になる。
【０１４９】
図１５は、システムの運用開始後、経時変動により、クロック信号ＣＬＫの位相が遅れた場合の各データ信号、データ取出部３５０が取出した各データの例を示す。
【０１５０】
図１５に示すように、このとき、第１のデータＤＡの１つ目の正相取出データ（Ｄ０）と、第２のデータＤＢの１つ目の正相取出データ（Ｄ０）は同一であり、その後、第１のデータＤＡと第２のデータＤＢの逆相取出データ同士（Ｄ１／Ｄ１）と、正相取出データ同士（Ｄ２／Ｄ２）のいずれも同一である。一方、第１のデータＤＡと第３のデータＤＣの正相取出データ同士（Ｄ０／Ｄ１、Ｄ２／Ｄ３）と、逆相取出データ同士（Ｄ１／Ｄ２）のいずれも異なる。
【０１５１】
従って、判定回路５００からの２つの比較結果のうちの第２の比較結果が「不一致」を示す「１」が連続的に出力されるようになるため、第２の遅延回路３４０は、データ信号ＤＱに与える遅延量が増えるように調整される。その結果、第１の比較結果と第２の比較結果のいずれも「一致」になる。
【０１５２】
図１６は、本実施の形態のインタフェース回路３００における処理の流れの一例を示すフローチャートである。図１６に示すように、システムの電源がオンされると、ＤＤＲメモリ２９０とインタフェース回路３００の初期化がなされる（Ｓ１００、Ｓ１０２）。そして、ＤＤＲメモリ２９０にテスト用データが書き込まれ、判定回路５００の期待データレジスタ５４０に上記テスト用データが期待データとして書き込まれる（Ｓ１０４）。
【０１５３】
次にＤＤＲメモリ２９０に書き込まれたテスト用データのリードが開始され、ＤＤＲメモリ２９０からデータ信号ＤＱ（テスト用データ）とクロック信号ＣＬＫが同相でインタフェース回路３００に入力される。それに伴って、第１のクロック信号ＣＬＫ１のエッジが遅延データ信号ＤＱ０の単位データの中央部に対応するための各遅延回路の遅延値の設定（第１の初期設定）がなされる（Ｓ１０６）。
【０１５４】
第１の初期設定が完了すると、第２のクロック信号ＣＬＫ２と第３のクロック信号ＣＬＫ３のエッジが遅延データ信号ＤＱ０の単位データの境界付近にするための位相シフト回路４００の設定（第２の初期設定）がなされる（Ｓ２００）。ステップＳ２００の第２の初期設定の詳細については後に図１７を参照して説明する。
【０１５５】
ステップＳ２００の第２の初期設定が完了すると、システムが起動され、通常のメモリアクセス（ここではメモリリード）が可能になる（Ｓ３００）。
【０１５６】
メモリリードの際に、データ取出部３５０の第１の取出部３５２から、第１のクロック信号ＣＬＫ１に基づいて遅延データ信号ＤＱ０から取出した第１のデータＤＡがリードとして順次外部に出力される（Ｓ３０２）。また、第２の取出部３５４により第２のクロック信号ＣＬＫ２に基づいて遅延データ信号ＤＱ０から取出した第２のデータＤＢと第１のデータＤＡの比較、第３のクロック信号ＣＬＫ３に基づいて遅延データ信号ＤＱ０から取出した第３のデータＤＣと第１のデータＤＡの比較がなされる（Ｓ３０４）。
【０１５７】
第１のデータＤＡ、第２のデータＤＢ、第３のデータＤＣの３つとも同一である場合に（Ｓ３０４：Ｙｅｓ）、第１の遅延回路３３０の遅延回路３３２と、第２の遅延回路３４０に対する遅延量の調整がなされず、次の第１のデータＤＡの取出しと出力、及び次の第１のデータＤＡ、次の第２のデータＤＢ、次の第３のデータＤＣの比較が行わる（Ｓ３０２、Ｓ３０４〜）。
【０１５８】
一方、第１のデータＤＡと第２のデータＤＢが不一致であり、第１のデータＤＡと第３のデータＤＣが一致である場合に（Ｓ３０４：Ｎｏ、Ｓ３０６：Ｙｅｓ）、データ信号ＤＱの位相遅延が原因であるため、第１の遅延回路３３０における遅延回路３３２によるクロック信号ＣＬＫに与える遅延量が増えるように、遅延回路３３２が調整される（Ｓ３４２）。
【０１５９】
また、第１のデータＤＡと第２のデータＤＢが一致であり、第１のデータＤＡと第３のデータＤＣが不一致である場合に（Ｓ３０４：Ｎｏ、Ｓ３０６：Ｎｏ）、クロック信号ＣＬＫの位相遅延が原因であるため、第２の遅延回路３４０によるデータ信号ＤＱに与える遅延量が増えるように、第２の遅延回路３４０が調整される（Ｓ３４４）。
【０１６０】
ステップＳ３０２からの処理は、メモリリードの間に繰り返される。
【０１６１】
図１７は、図１６のステップＳ２００（第２の初期設定）の流れの一例を示すフローチャートである。このとき、ステップＳ１０６の第１の初期設定により、第１のクロック信号ＣＬＫ１と遅延データ信号ＤＱ０が最適な位相関係を有するように調整されている。
【０１６２】
第２の初期設定に際して、まず、第２のクロック信号ＣＬＫ２を得るために遅延回路３３２からの遅延クロック信号ＣＬＫ０に対して位相シフト回路４００が与える遅延値（以下ＣＬＫ２の遅延値という）と、第３のクロック信号ＣＬＫ３を得るために遅延クロック信号ＣＬＫ０に対して位相シフト回路４００が与える遅延値（以下ＣＬＫ３の遅延値）が初期値に設定される（Ｓ２０１）。
【０１６３】
次に、テストデータのメモリリードがなされ、第１のデータＤＡ、第２のデータＤＢ、第３のデータＤＣの取出しと比較がなされる（Ｓ２０２）。
【０１６４】
第１のデータＤＡ、第２のデータＤＢ、第３のデータＤＣの３つと同一である限り、位相シフト回路４００の調整可能な限界まで、ＣＬＫ２の遅延値を１段減らす調整（第２のクロック信号ＣＬＫ２の第１のクロック信号ＣＬＫ１に対して位相が早い量を増やす調整）と、ＣＬＫ３の遅延値を１段増やす調整（第３のクロック信号ＣＬＫ３の第１のクロック信号ＣＬＫ１に対して位相が遅い量を増やす調整）と、ステップＳ２０２からの処理が繰り返される（Ｓ２０３：Ｙｅｓ、Ｓ２０４：Ｎｏ、Ｓ２０５、Ｓ２０２〜）。
【０１６５】
位相シフト回路４００の調整限界まで上記調整が行われても、第１のデータＤＡ、第２のデータＤＢ、第３のデータＤＣが同一である場合に、第２の初期設定が完了したとして、制御回路６００から調整完了信号が出力され、システムが起動される（Ｓ２０３：Ｙｅｓ、Ｓ２０４：Ｙｅｓ、Ｓ２３０）。
【０１６６】
一方、上記調整の過程中に、第１の比較結果（第１のデータＤＡと第２のデータＤＢの比較結果）と、第２の比較結果（第１のデータＤＡと第３のデータＤＣの比較結果）のいずれか一方が不一致になると（Ｓ２０３：Ｎｏ）、処理はステップＳ２１０に移行する。
【０１６７】
第１のデータＤＡと第２のデータＤＢが不一致である場合（Ｓ２１０：Ｙｅｓ）、ＣＬＫ２の遅延値を１段増やす調整がなされる（Ｓ２１１）。これにより、第２のクロック信号ＣＬＫ２のエッジが、遅延データ信号ＤＱ０の単位データの境界付近に対応するように調整される。
【０１６８】
その後のステップ２１１〜Ｓ２１６までの処理は、ＣＬＫ３の遅延値を調整する処理である。第３のクロック信号ＣＬＫ３の遅延値の調整限界、または第３のデータＤＣと第１のデータＤＡが不一致になるまで、ＣＬＫ３の遅延値を１段増やす調整、調整後にテストデータに対するメモリリードにより読み出した第１のデータＤＡと第３のデータＤＣの比較が繰り返される（Ｓ２１２：Ｎｏ、Ｓ２１３、Ｓ２１４、Ｓ２１５：Ｙｅｓ、Ｓ２１２〜）。ＣＬＫ３の遅延値の調整限界になった場合、または第１のデータＤＡと第３のデータＤＣが不一致になった場合（Ｓ２１２：Ｙｅｓ、またはＳ２１５：Ｎｏ）、ＣＬＫ３の遅延値を１段減らす調整がなされる（Ｓ２１６）。これにより、第３のクロック信号ＣＬＫ３のエッジも、遅延データ信号ＤＱ０の単位データの境界付近に対応するように調整される。そして、第２の初期設定が完了したとして、制御回路６００から調整完了信号が出力され、システムが起動される（Ｓ２３０）。
【０１６９】
ステップＳ２１０において、第１のデータＤＡと第２のデータＤＢが一致であり、第１のデータＤＡと第３のデータＤＣが不一致である場合（Ｓ２１０：Ｎｏ）、ＣＬＫ３の遅延値を１段減らす調整がなされる（Ｓ２２０）。これにより、第３のクロック信号ＣＬＫ３のエッジが、遅延データ信号ＤＱ０の単位データの境界付近に対応するように調整される。
【０１７０】
その後のステップ２２１〜Ｓ２２５までの処理は、ＣＬＫ２の遅延値を調整する処理である。ＣＬＫ２の遅延値の調整限界、または第２のデータＤＢと第１のデータＤＡが不一致になるまで、ＣＬＫ２の遅延値を１段減らす調整、調整後にテストデータに対するメモリリードにより読み出した第１のデータＤＡと第２のデータＤＢの比較が繰り返される（Ｓ２２１：Ｎｏ、Ｓ２２２、Ｓ２２３、Ｓ２２４：Ｙｅｓ、Ｓ２２１〜）。ＣＬＫ２の遅延値の調整限界になった場合、または第１のデータＤＡと第２のデータＤＢが不一致になった場合（Ｓ２２１：Ｙｅｓ、またはＳ２２４：Ｎｏ）、ＣＬＫ２の遅延値を１段増やす調整がなされる（Ｓ２２５）。これにより、第２のクロック信号ＣＬＫ２のエッジも、遅延データ信号ＤＱ０の単位データの境界付近に対応するように調整される。そして、第２の初期設定が完了したとして、制御回路６００から調整完了信号が出力され、システムが起動される（Ｓ２３０）。
【０１７１】
本実施の形態のインタフェース回路３００は、他の各実施の形態のインタフェース回路と同様に、通常のメモリアクセス動作中に、データを取り出すためのデータ信号とクロック信号の位相関係の崩れの有無を検出できるため、システムのパフォーマンスの低下を回避することができる。また、通常のメモリアクセス動作中に、上記検出の結果に応じて、データを取り出すためのデータ信号とクロック信号が常に最適な位相関係を有するように調整を行うことができる。
【０１７２】
また、本実施の形態のインタフェース回路３００において、第１の遅延回路３３０を遅延回路３３２と位相シフト回路４００に分けるようにすることによって、システムの動作中に第１のクロック信号ＣＬＫ１の位相の調整は、遅延回路３３２の調整のみで実現できるので、調整が簡単である。
【０１７３】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対してさまざまな変更、増減、組合せを行ってもよい。これらの変更、増減、組合せがなされ変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１７４】
例えば、上述した各実施の形態は、メモリリードを例にしたものであるが、本発明にかかる技術は、メモリライトにも適用することができる。
【０１７５】
また、上述した各実施の形態は、ＤＤＲメモリのインタフェースを例にしたものであるが、本発明にかかる技術は、ＳＤＲメモリなど他の同期式メモリのインタフェース回路にも適用することができる。
【符号の説明】
【０１７６】
１０  ＤＤＲメモリ  ２０  システムＬＳＩ
２１  入力バッファ  ２２  ディレイヤ
２３  ラッチ  ２４  インバータ
２５  ＤＤＲデータ取出部  ２６  ディレイ調整部
１００  インタフェース回路  １１０  第１の遅延回路
１２０  データ取出部  １２２  第１の取出部
１２４  第２の取出部  １２６  第３の取出部
１３０  出力回路  １４０  比較部
１５０  インタフェース回路  １６０  第１の遅延回路
２００  インタフェース回路  ２１０  遅延調整部
２２０  インタフェース回路  ２２２  第１の遅延回路
２２４  第２の遅延回路  ２２６  遅延調整部
２５０  インタフェース回路  ２６０  遅延調整部
２７０  インタフェース回路  ２７２  第１の遅延回路
２７４  第２の遅延回路  ２７６  遅延調整部
２９０  ＤＤＲメモリ  ３００  インタフェース回路
３０２  入力バッファ  ３０４  入力バッファ
３１１〜３１８  遅延素子  ３２０  ＭＰＸ
３２２  デコーダ  ３３０  第１の遅延回路
３３２  遅延回路  ３４０  第２の遅延回路
３５０  データ取出部  ３５２  第１の取出部
３５４  第２の取出部  ３５６  第３の取出部
３８０  ＣＬＫ遅延調整回路  ３９０  ＤＱ遅延調整回路
４００  位相シフト回路  ４０２  ディレイライン
４０４  選択回路  ４０６  出力制御部
５００  判定回路  ５１２  比較回路
５１４  論理和ゲート  ５２２  比較回路
５２４  論理和ゲート  ５３２  比較回路
５３４  論理和ゲート  ５４０  期待データレジスタ
６００  制御回路  ６１０  第１の初期位相設定部
６２０  遅延調整制御部  ６３０  第２の初期位相設定部
６３２  カウンタ制御部  ６３４  カウンタ
６３６  カウンタ制御部  ６３８  カウンタ
６４０  位相設定制御部  ６５０  制御信号選択部
【図１】
2011258134.tif 000003
【図２】
2011258134.tif 000004
【図３】
2011258134.tif 000005
【図４】
2011258134.tif 000006
【図５】
2011258134.tif 000007
【図６】
2011258134.tif 000008
【図７】
2011258134.tif 000009
【図８】
2011258134.tif 000010
【図９】
2011258134.tif 000011
【図１０】
2011258134.tif 000012
【図１１】
2011258134.tif 000013
【図１２】
2011258134.tif 000014
【図１３】
2011258134.tif 000015
【図１４】
2011258134.tif 000016
【図１５】
2011258134.tif 000017
【図１６】
2011258134.tif 000018
【図１７】
2011258134.tif 000019
【図１８】
2011258134.tif 000020
【図１９】
2011258134.tif 000021