(57)【要約】【課題】  メモリのデータ信号の有効状態がどの位相にあっても、データの書込み及び読出しに適した位相に、メモリのデータ信号及びデータストローブ信号の位相を容易に設定する。【解決手段】  本発明は、順次に設定される複数の書込み位相条件の其々に従い、複数のデータを該メモリに書込み、順次に設定される複数の読出し位相条件の其々に従い、該メモリに書込まれた該複数のデータを読出し、該複数のデータと該読み出された複数のデータとに基づき、該メモリの動作結果を其々判定し、該動作結果の其々と、該動作結果の其々に対応する書込み位相条件及び読出し位相条件の組合わせとに基づき評価値を其々算出し、該評価値のうち所定の基準を満たす特定の評価値に対応する特定の書込み位相条件及び特定の読出し位相条件を其々該ライト位相制御部及び該リード位相制御部に設定するように構成されるメモリ制御回路である。【選択図】  図１
2015219845.tif 000002
【特許請求の範囲】
【請求項１】
メモリへのデータセットの書き込み動作及び該メモリからの該データセットの読み出し動作を制御するメモリ制御回路であって、
前記書き込み動作に関する所定の書き込み位相条件を設定するとともに、前記読み出し動作に関する所定の読み出し位相条件を設定する位相条件設定部と、
前記設定された所定の書き込み位相条件に従って、所定のデータセットを前記メモリに書き込むライト位相制御部と、
前記設定された所定の読み出し位相条件に従って、前記メモリに書き込まれた前記所定のデータセットを読み出すリード位相制御部と、
前記所定のデータセットと前記リード位相制御部によって前記メモリから読み出された前記所定のデータセットとに基づいて、前記メモリの動作結果を判定する判定部と、を備え、
前記位相条件設定部は、
前記判定部により判定された前記メモリの動作結果を記憶する記憶部を含み、
前記位相条件設定部は、
複数の書き込み位相条件のそれぞれを順次に設定することによって、前記ライト位相制御部により複数のテストデータセットが前記メモリに書き込まれるようにし、複数の読み出し位相条件のそれぞれを順次に設定することによって、前記メモリに書き込まれた前記複数のテストデータセットが前記リード位相制御部により読み出されるようにし、さらに、前記判定部により判定された、前記複数のテストデータセットと前記読み出された複数のテストデータセットとの組み合わせに基づく複数の動作結果を前記記憶部に記憶し、
前記位相条件設定部は、
前記記憶された複数の動作結果のそれぞれと、該複数の動作結果のそれぞれに対応する書き込み位相条件と読み出し位相条件との組み合わせとに基づいて評価値をそれぞれ算出し、前記算出した評価値のうち所定の基準を満たす特定の評価値を抽出し、前記抽出した特定の評価値に対応する特定の書き込み位相条件を前記ライト位相制御部に対して設定するとともに、該特定の評価値に対応する前記特定の読み出し位相条件を前記リード位相制御部に対して設定する、
メモリ制御回路。
【請求項２】
前記位相条件設定部は、前記算出した評価値のうち最も高い評価を示す評価値を前記特定の評価値として抽出する、請求項１記載のメモリ制御回路。
【請求項３】
前記位相条件設定部は、前記記憶部に記憶された複数の動作結果のうちの一の書き込み位相条件と一の読み出し位相条件との組み合わせに対応する一の動作結果と、該一の動作結果に対して所定の関係を有する少なくとも１つ以上の他の動作結果とに基づいて、前記評価値を算出する、請求項１記載のメモリ制御回路。
【請求項４】
前記所定の関係は、前記動作結果に対応する前記書き込み位相条件と前記読み出し位相条件との組み合わせに基づく位相間の位相差が所定の範囲内の関係である、請求項３記載のメモリ制御回路。
【請求項５】
前記位相条件設定部は、所定の評価係数に基づいて、前記評価値を算出する、請求項４記載のメモリ制御回路。
【請求項６】
前記位相条件設定部は、前記一の動作結果に対応する前記一の書き込み位相条件と前記一の読み出し位相条件との組み合わせに従う位相と、前記他の動作結果に対応する書き込み位相条件と読み出し位相条件との組み合わせに従う位相との間の位相差に基づいて、前記評価係数を決定する、請求項５記載のメモリ制御回路。
【請求項７】
前記位相条件設定部は、前記一の動作結果に対する評価係数が、前記他の動作結果に対する評価計数の合計よりも高い評価を示すように、前記評価係数を決定する、請求項６記載のメモリ制御回路。
【請求項８】
前記位相条件設定部は、
前記複数の書き込み位相条件の中から所定数の書き込み位相条件を順次に選択的に保持するとともに、前記複数の読み出し位相条件の中から所定数の読み出し位相条件を順次に選択的に保持し、
順次に選択的に保持される前記所定数の書き込み位相条件及び前記所定数の読み出し位相条件に基づいて前記評価値を算出する、
請求項３記載のメモリ制御回路。
【請求項９】
メモリと、
前記メモリへのデータセットの書き込み動作及び該メモリからの該データセットの読み出し動作を制御するメモリ制御回路と、を備え、
前記メモリ制御回路は、
前記書き込み動作に関する所定の書き込み位相条件を設定するとともに、前記読み出し動作に関する所定の読み出し位相条件を設定する位相条件設定部と、
前記設定された所定の書き込み位相設定条件に従って、所定のデータセットを前記メモリに書き込むライト位相制御部と、
前記設定された所定の読み出し位相条件に従って、前記メモリに書き込まれた前記所定のデータセットを読み出すリード位相制御部と、
前記所定のデータセットと前記リード位相制御部によって前記メモリから読み出された前記所定のデータセットとに基づいて、前記メモリの動作結果を判定する判定部と、を備え、
前記位相条件設定部は、
前記判定部により判定された前記メモリの動作結果を記憶する記憶部を含み、
前記位相条件設定部は、
複数の書き込み位相設定条件のそれぞれを順次に設定することによって、前記ライト位相制御部により複数のテストデータセットが前記メモリに書き込まれるようにし、複数の読み出し位相条件のそれぞれを順次に設定することによって、前記メモリに書き込まれた前記複数のテストデータセットが前記リード位相制御部により読み出されるようにし、さらに、前記判定部により判定された、前記複数のテストデータセットと前記読み出された複数のテストデータセットとの組み合わせに基づく複数の動作結果を前記記憶部に記憶し、
前記位相条件設定部は、
前記記憶された複数の動作結果のそれぞれと、該複数の動作結果のそれぞれに対応する書き込み位相条件と読み出し位相条件との組み合わせとに基づいて評価値をそれぞれ算出し、前記算出した評価値のうち所定の基準を満たす特定の評価値を抽出し、前記抽出した特定の評価値に対応する特定の書き込み位相条件を前記ライト位相制御部に対して設定するとともに、該特定の評価値に対応する前記特定の読み出し位相条件を前記リード位相制御部に対して設定する、
半導体集積回路。
【請求項１０】
メモリへのデータセットの書き込み動作及び該メモリからの該データセットの読み出し動作のためのデータ信号及びデータストローブ信号の位相制御方法であって、
複数の書き込み位相条件のそれぞれを順次に設定することと、
前記設定された複数の書き込み位相条件のそれぞれに従って、複数のテストデータセットを前記メモリに書き込むことと、
複数の読み出し位相条件のそれぞれを順次に設定することと、
前記設定された複数の読み出し位相条件のそれぞれに従って、前記メモリに書き込まれた前記複数のテストデータセットを読み出すことと、
前記複数のテストデータセットと前記読み出された複数のテストデータセットとに基づいて、前記メモリの動作結果をそれぞれ判定することと、
前記判定された動作結果のそれぞれと、該複数の動作結果のそれぞれに対応する書き込み位相条件と読み出し位相条件との組み合わせとに基づいて評価値をそれぞれ算出することと、
前記算出した評価値のうち所定の基準を満たす特定の評価値を抽出することと、
前記抽出した特定の評価値に対応する特定の書き込み位相条件を前記ライト位相制御部に対して設定するとともに、該特定の評価値に対応する前記特定の読み出し位相条件を前記リード位相制御部に対して設定することと、を含む位相制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御回路、並びにメモリのデータ信号及びデータストローブ信号の位相制御方法に関する。
【背景技術】
【０００２】
情報化社会において、パーソナルコンピュータや、携帯電話機、デジタルカメラなどのさまざまな情報処理機器が普及している。このような情報処理機器にとって、種々の処理に供されるデータを記憶するためのメモリは欠かせない存在である。また、近年の情報処理機器におけるクロックの高周波数化に伴って、情報処理機器が備えるメモリにもより高速で動作することが求められている。高速で動作するメモリとして、例えば、シンクロナスメモリ（Synchronous Memory）が知られている。
【０００３】
シンクロナスメモリは、外部から供給される所定のクロックに同期して内部の回路を動作させることによって、データの書き込み及び読み出しを実行する。具体的には、シンクロナスメモリは、書き込み動作においては、外部から供給されるデータストローブ信号に基づいて書き込みデータ信号が示す書き込み対象データを記憶する。一方、シンクロナスメモリは、読み出し動作においては、記憶した対象データをデータ信号として出力するとともに、該データ信号をラッチするタイミングをデータストローブ信号として出力する。
【０００４】
シンクナスメモリが正常に動作するためには、データ信号とデータストローブ信号との位相が、書き込み動作及び読み出し動作のそれぞれにおいて、該動作に適した位相となっている必要がある。また、上述したように、シンクロナスメモリはより高速のクロックで動作することが求められているため、データ信号とデータストローブとの間の位相差を該動作に適した位相に設定することの難度及び重要性は増大している。従来より、高速動作において、シンクロナスメモリのデータ信号及びデータストローブ信号の位相を書き込み動作及び読み出し動作に適した位相に調整するメモリ制御回路が存在する。
【０００５】
例えば、下記特許文献１は、クロックに同期してデータストローブ信号とデータ信号とを出力するシンクロナスメモリを接続可能とするメモリインターフェース回路を開示する。下記特許文献１に開示されるメモリインターフェース回路は、クロック発生回路と、該クロック発生回路が出力するクロックを遅延してリードクロックとして出力する遅延回路と、入力されたデータストローブ信号と該リードクロックとの位相差を測定する位相差測定回路と、該リードクロックに同期して該データ信号を取り込むメモリ回路とを備え、該メモリインターフェース回路は、該遅延回路が測定した位相差に従って該リードクロックの遅延時間を加減することを特徴とする。
【０００６】
また、下記特許文献２は、データストローブ信号のエッジ（変化点）と読み出しデータのエッジとを一致させて出力するメモリ装置からのデータの読み出し動作を制御するメモリ制御装置を開示する。下記特許文献２に開示されるメモリ制御装置は、動作周波数レンジの異なる複数の同期遅延ループを備えいずれかの同期遅延ループを用いて前記メモリ装置から入力するデータストローブ信号の位相を調整する位相調整部と、前記位相調整部内においてデータストローブ信号の位相調整に用いる同期遅延ループを前記メモリ装置の動作周波数に応じて選択する選択部と、前記位相調整部により位相が調整されたデータストローブ信号を用いて前記メモリ装置から読み出されたデータ信号のサンプリングを行うデータ・サンプリング部とを具備することを特徴とする。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−７１０１８号公報
【特許文献２】特開２００７−３１０５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したような従来のメモリ制御回路は、メモリのデータ信号及びデータストローブ信号の位相を設定する際、書き込み動作及び読み出し動作の信号のうち、一方の動作の信号について位相を仮設定し、斯かる状態で他方の動作の信号の位相の設定を行っていた。従って、従来のメモリ制御回路は、位相設定において、データ信号が有効でない状態で、データストローブ信号がデータ信号の状態をラッチする位相に仮設定した場合、データ信号及びデータストローブ信号の位相をメモリへのデータの書き込み及び読み出しに適した位相に設定することができないという課題を有していた。
【０００９】
さらに、上述したような従来のメモリ制御回路は、書き込み動作の信号の位相条件と、読み出し動作の信号の位相条件との組み合わせがメモリの動作へもたらす影響を考慮していなかった。従って、上述したような従来のメモリ制御回路は、メモリが正常に動作する該位相条件の組み合わせが複雑な場合において、データ信号及びデータストローブ信号の位相を適した位相に設定することができないという課題を有していた。
【００１０】
そこで、本発明は、シンクロナスメモリのデータ信号の有効状態がデータ信号のどの位相にあっても、メモリへのデータの書き込み及び読み出しに適した位相に、シンクロナスメモリのデータ信号及びデータストローブ信号の位相を容易に設定することができるメモリ制御回路を提供することを目的とする。
【００１１】
また、本発明は、シンクロナスメモリが正常に動作する書き込み動作及び読み出し動作のデータ信号及びデータストローブ信号の位相条件の組み合わせが複雑な場合においても、メモリへのデータの書き込み及び読み出しに適した位相に、シンクロナスメモリのデータ信号及びデータストローブ信号の位相を容易に設定することができるメモリ制御回路を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するための本発明は、以下の技術的特徴乃至は発明特定事項を含んで構成される。
【００１３】
即ち、ある観点に従う本発明は、メモリへのデータセットの書き込み動作及び該メモリからの該データセットの読み出し動作を制御するメモリ制御回路であって、前記書き込み動作に関する所定の書き込み位相条件を設定するとともに、前記読み出し動作に関する所定の読み出し位相条件を設定する位相条件設定部と、前記設定された所定の書き込み位相条件に従って、所定のデータセットを前記メモリに書き込むライト位相制御部と、前記設定された所定の読み出し位相条件に従って、前記メモリに書き込まれた前記所定のデータセットを読み出すリード位相制御部と、前記所定のデータセットと前記リード位相制御部によって前記メモリから読み出された前記所定のデータセットとに基づいて、前記メモリの動作結果を判定する判定部と、を備え、前記位相条件設定部は、前記判定部により判定された前記メモリの動作結果を記憶する記憶部を含み、前記位相条件設定部は、複数の書き込み位相条件のそれぞれを順次に設定することによって、前記ライト位相制御部により複数のテストデータセットが前記メモリに書き込まれるようにし、複数の読み出し位相条件のそれぞれを順次に設定することによって、前記メモリに書き込まれた前記複数のテストデータセットが前記リード位相制御部により読み出されるようにし、さらに、前記判定部により判定された、前記複数のテストデータセットと前記読み出された複数のテストデータセットとの組み合わせに基づく複数の動作結果を前記記憶部に記憶し、前記位相条件設定部は、前記記憶された複数の動作結果のそれぞれと、該複数の動作結果のそれぞれに対応する書き込み位相条件と読み出し位相条件との組み合わせとに基づいて評価値をそれぞれ算出し、前記算出した評価値のうち所定の基準を満たす特定の評価値を抽出し、前記抽出した特定の評価値に対応する特定の書き込み位相条件を前記ライト位相制御部に対して設定するとともに、該特定の評価値に対応する前記特定の読み出し位相条件を前記リード位相制御部に対して設定する、メモリ制御回路である。
【００１４】
ここで、前記位相条件設定部は、前記算出した評価値のうち最も高い評価を示す評価値を前記特定の評価値として抽出しても良い。
【００１５】
また、前記位相条件設定部は、前記記憶部に記憶された複数の動作結果のうちの一の書き込み位相条件と一の読み出し位相条件との組み合わせに対応する一の動作結果と、該一の動作結果に対して所定の関係を有する少なくとも１つ以上の他の動作結果とに基づいて、前記評価値を算出しても良い。
【００１６】
さらに、前記所定の関係は、前記動作結果に対応する前記書き込み位相条件と前記読み出し位相条件との組み合わせに基づく位相間の位相差が所定の範囲内の関係であっても良い。
【００１７】
さらに、また、前記位相条件設定部は、所定の評価係数に基づいて、前記評価値を算出しても良い。
【００１８】
さらに、前記位相条件設定部は、前記一の動作結果に対応する前記一の書き込み位相条件と前記一の読み出し位相条件との組み合わせに従う位相と、前記他の動作結果に対応する書き込み位相条件と読み出し位相条件との組み合わせに従う位相との間の位相差に基づいて、前記評価係数を決定しても良い。
【００１９】
さらに、また、前記位相条件設定部は、前記一の動作結果に対する評価係数が、前記他の動作結果に対する評価計数の合計よりも高い評価を示すように、前記評価係数を決定しても良い。
【００２０】
また、前記位相条件設定部は、前記複数の書き込み位相条件の中から所定数の書き込み位相条件を順次に選択的に保持するとともに、前記複数の読み出し位相条件の中から所定数の読み出し位相条件を順次に選択的に保持し、順次に選択的に保持される前記所定数の書き込み位相条件及び前記所定数の読み出し位相条件に基づいて前記評価値を算出しても良い。
【００２１】
さらに、別の観点に従う本発明は、メモリと、前記メモリへのデータセットの書き込み動作及び該メモリからの該データセットの読み出し動作を制御するメモリ制御回路と、を備え、前記メモリ制御回路は、前記書き込み動作に関する所定の書き込み位相条件を設定するとともに、前記読み出し動作に関する所定の読み出し位相条件を設定する位相条件設定部と、前記設定された所定の書き込み位相設定条件に従って、所定のデータセットを前記メモリに書き込むライト位相制御部と、前記設定された所定の読み出し位相条件に従って、前記メモリに書き込まれた前記所定のデータセットを読み出すリード位相制御部と、前記所定のデータセットと前記リード位相制御部によって前記メモリから読み出された前記所定のデータセットとに基づいて、前記メモリの動作結果を判定する判定部と、を備え、前記位相条件設定部は、前記判定部により判定された前記メモリの動作結果を記憶する記憶部を含み、前記位相条件設定部は、複数の書き込み位相設定条件のそれぞれを順次に設定することによって、前記ライト位相制御部により複数のテストデータセットが前記メモリに書き込まれるようにし、複数の読み出し位相条件のそれぞれを順次に設定することによって、前記メモリに書き込まれた前記複数のテストデータセットが前記リード位相制御部により読み出されるようにし、さらに、前記判定部により判定された、前記複数のテストデータセットと前記読み出された複数のテストデータセットとの組み合わせに基づく複数の動作結果を前記記憶部に記憶し、前記位相条件設定部は、前記記憶された複数の動作結果のそれぞれと、該複数の動作結果のそれぞれに対応する書き込み位相条件と読み出し位相条件との組み合わせとに基づいて評価値をそれぞれ算出し、前記算出した評価値のうち所定の基準を満たす特定の評価値を抽出し、前記抽出した特定の評価値に対応する特定の書き込み位相条件を前記ライト位相制御部に対して設定するとともに、該特定の評価値に対応する前記特定の読み出し位相条件を前記リード位相制御部に対して設定する、半導体集積回路である。
【００２２】
さらに、別の観点に従う本発明は、メモリへのデータセットの書き込み動作及び該メモリからの該データセットの読み出し動作のためのデータ信号及びデータストローブ信号の位相制御方法であって、複数の書き込み位相条件のそれぞれを順次に設定することと、前記設定された複数の書き込み位相条件のそれぞれに従って、複数のテストデータセットを前記メモリに書き込むことと、複数の読み出し位相条件のそれぞれを順次に設定することと、前記設定された複数の読み出し位相条件のそれぞれに従って、前記メモリに書き込まれた前記複数のテストデータセットを読み出すことと、前記複数のテストデータセットと前記読み出された複数のテストデータセットとに基づいて、前記メモリの動作結果をそれぞれ判定することと、前記判定された動作結果のそれぞれと、該複数の動作結果のそれぞれに対応する書き込み位相条件と読み出し位相条件との組み合わせとに基づいて評価値をそれぞれ算出することと、前記算出した評価値のうち所定の基準を満たす特定の評価値を抽出することと、前記抽出した特定の評価値に対応する特定の書き込み位相条件を前記ライト位相制御部に対して設定するとともに、該特定の評価値に対応する前記特定の読み出し位相条件を前記リード位相制御部に対して設定することと、を含む位相制御方法である。
【発明の効果】
【００２３】
本発明によれば、メモリ制御回路は、シンクロナスメモリのデータ信号の有効状態がデータ信号のどの位相にあっても、メモリへのデータの書き込み及び読み出しに適した位相に、シンクロナスメモリのデータ信号及びデータストローブ信号の位相を容易に設定することができるようになる。
【００２４】
また、本発明によれば、メモリ制御回路は、シンクロナスメモリが正常に動作する書き込み動作及び読み出し動作のデータ信号及びデータストローブ信号の位相条件の組み合わせが複雑である場合においても、メモリへのデータの書き込み及び読み出しに適した位相に、シンクロナスメモリのデータ信号及びデータストローブ信号の位相を容易に決定することができるようになる。
【００２５】
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態に係る半導体集積回路を示す図である。
【図２】本発明の一実施形態に係るメモリ制御回路における位相演算回路の概略構成を示す図である。
【図３】本発明の一実施形態に係る位相演算回路における評価値算出回路の概略構成を示す図である。
【図４】本発明の一実施形態に係る評価値算出回路におけるマルチパス出力制御回路の概略構成を示す図である。
【図５】本発明の一実施形態に係る位相演算回路における位相設定条件検出回路の概略構成を示す図である。
【図６】本発明の一実施形態に係るメモリ制御回路における位相選択回路の構成の一例を示す図である。
【図７】本発明の一実施形態に係るメモリ制御回路におけるライト位相制御回路の構成の一例を示す図である。
【図８】本発明の一実施形態に係るメモリ制御回路におけるリード位相制御回路の構成の一例を示す図である。
【図９】本発明の一実施形態に係るメモリ制御回路における各種の信号のタイミングチャートである。
【図１０】本発明の一実施形態に係るメモリ制御回路における各種の信号のタイミングチャートである。
【図１１】本発明の一実施形態に係る位相制御方法における各位相条件とメモリの動作の判定結果との対応関係を示す概念図である。
【図１２】本発明の一実施形態に係る位相制御方法において、各位相条件とメモリの動作の判定結果との対応関係を示す概念図である。
【図１３】本発明の一実施形態に係る位相制御方法において、算出対象の位相条件に対する位相差と、評価係数との対応関係を示す概念図である。
【図１４】本発明の一実施形態に係る位相制御方法において、各位相条件と評価値との対応関係を示す概念図である。
【図１５】本発明の一実施形態に係るメモリ制御回路における各種の信号のタイミングチャートである。
【図１６】本発明の一実施形態に係る位相の調整方法において、メモリ制御回路の動作を概略的に説明するためのフローチャートである。
【図１７】本発明の一実施形態に係る位相の調整方法において、メモリ制御回路の動作を概略的に説明するためのフローチャートである。
【図１８】本発明の一実施形態に係る位相の調整方法において、メモリ制御回路の動作を概略的に説明するためのフローチャートである。
【発明を実施するための形態】
【００２７】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【００２８】
図１は、本発明の一実施形態に係る半導体集積回路を示す図である。同図に示すように、本実施形態の半導体集積回路１は、例えば、メモリ制御回路１０と、メモリ２０とを含んで構成される。
【００２９】
メモリ制御回路１０は、メモリ２０に対するデータの書き込み動作及び読み出し動作の制御を行うインタフェース回路である。本実施形態のメモリ制御回路１０は、メモリ２０に対するデータの書き込み動作及び読み出し動作の制御において、データ信号ＤＱとデータストローブ信号ＤＱＳとの間の位相差が、メモリ２０へのデータの書き込み動作及び読み出し動作に適した位相差となるように、例えば、その起動時や、外部の装置（図示せず）の制御指示に基づいて、データ信号ＤＱ及びデータストローブ信号ＤＱＳの位相を設定する。同図に示すように、メモリ制御回路１０は、例えば、位相演算回路１１と、ライトデータ生成回路１２と、位相選択回路１３と、ライト位相制御回路１４と、出力バッファ１５Ａ及び１５Ｂと、入力バッファ１６Ａ及び１６Ｂと、リード位相制御回路１７と、比較器１８とを含んで構成される。
【００３０】
位相演算回路１１及び位相選択回路１３は、位相設定部１９を構成する。位相設定部１９は、メモリ２０に関する書き込み動作のデータ信号ＤＱの位相条件を設定し、該位相条件をライト位相制御回路１４に出力するとともに、メモリ２０に関する読み出し動作のデータストローブ信号ＤＱＳの位相条件を設定し、該位相条件をリード位相制御回路１７に出力する。
【００３１】
位相演算回路１１は、メモリ制御回路１０を統括的に制御する回路であって、位相走査モード及び評価値算出モードのいずれかのモードで動作する。位相走査モードでは、位相演算回路１１は、書き込み動作及び読み出し動作の各位相条件におけるメモリ２０の動作の判定結果を記憶し、自身を評価値算出モードに設定する。具体的には、位相演算回路１１は、例えば、メモリ制御回路１０の起動や外部の別の装置（図示せず）の制御指示に基づいて、自身を位相走査モードに設定するとともに、ライトデータ生成回路１２と、位相選択回路１３の選択端子ＳＬとに、その状態を例えば“０”とする選択信号ＳＥＬを出力する。また、位相演算回路１１は、比較器１８から出力される比較信号ＣＯＭＰを受け、書き込み動作及び読み出し動作の各位相条件に対応するメモリ２０の動作の判定結果を記憶する。そして、位相演算回路１１は、自身を評価値算出モードに設定する。
【００３２】
一方、評価値算出モードでは、位相演算回路１１は、該記憶した判定結果に基づいて評価値を算出し、一定の基準を満たす評価値（例えば最大値）に対応する位相条件に従って、データ信号ＤＱ及びデータストローブ信号ＤＱＳの位相を設定する。具体的には、位相演算回路１１は、その状態を例えば“１”とする選択信号ＳＥＬをライトデータ生成回路１２と、位相選択回路１３の選択端子ＳＬとに出力する。位相演算回路１１は、記憶した各位相条件に対応する評価値を算出し、一定の基準を満たす評価値（例えば最大値）となる位相条件に従って、書き込み動作及び読み出し動作の位相を設定する。そして、位相演算回路１１は、その状態が該設定に対応する最適ライト位相信号ＷＰ＿ＯＰＴ及び最適リード位相信号ＲＰ＿ＯＰＴを生成し、該２つの信号をそれぞれ、ライト位相出力端子ＷＰＯ及びリード位相出力端子ＲＰＯから、位相選択回路１３のライト位相端子ＷＰ及びリード位相端子ＲＰに出力する。
【００３３】
ライトデータ生成回路１２は、メモリ２０に書き込むべき対象データを出力する。具体的には、ライトデータ生成回路１２は、位相演算回路１１から出力される選択信号ＳＥＬの状態を判断する。ライトデータ生成回路１２は、例えば、選択信号ＳＥＬの状態が“０”であると判断する場合、内部レジスタ（図示せず）に予め保持している位相設定に用いるデータを対象データに選択し、該データをライトデータ信号Ｗ＿ＤＱ０としてライト位相制御回路１４のデータ入力端子ＷＤと、比較器１８とに出力する。一方、ライトデータ生成回路１２は、例えば、選択信号ＳＥＬの状態が“１”であると判断する場合、外部の別の装置（図示せず）から出力される通常データを対象データとして、ライトデータ信号Ｗ＿ＤＱ０としてライト位相制御回路１４のデータ入力端子ＷＤと、比較器１８とに出力する。
【００３４】
位相選択回路１３は、位相演算回路１１から出力される選択信号ＳＥＬに従って、位相演算回路１１から出力される位相条件と、自身で生成する位相条件とのうちいずれか一方を選択する。位相選択回路１３は、該選択した書き込み動作及び読み出し動作の位相条件をそれぞれライト位相制御信号ＷＰ＿ＣＮＴ及びリード位相制御信号ＲＰ＿ＣＮＴとして、該２つの信号をそれぞれライト位相出力端子ＷＰＯ及びリード位相出力端子ＲＰＯから、ライト位相制御回路１４及びリード位相制御回路１７の位相端子ＰＨに出力する。具体的には、位相選択回路１３は、選択信号ＳＥＬの状態が例えば“０”であると判断する場合、ライト位相制御信号ＷＰ＿ＣＮＴ及びリード位相制御信号ＲＰ＿ＣＮＴの位相が所定時間毎に所定量ずつシフトするように設定する。一方、位相選択回路１３は、選択信号ＳＥＬの状態が例えば“１”であると判断する場合、位相演算回路１１から出力される最適ライト位相信号ＷＰ＿ＯＰＴ及び最適リード位相信号ＲＰ＿ＯＰＴをライト位相制御信号ＷＰ＿ＣＮＴ及びリード位相制御信号ＲＰ＿ＣＮＴとしてそれぞれ設定する。
【００３５】
ライト位相制御回路１４は、位相選択回路１３の制御の下、書き込み動作のデータ信号ＤＱの位相を調整する。具体的には、ライト位相制御回路１４は、位相選択回路１３から出力されるライト位相制御信号ＷＰ＿ＣＮＴが示す位相条件に従って、ライトデータ生成回路１２から出力されるライトデータ信号Ｗ＿ＤＱ０の位相を調整し、ライトデータ信号Ｗ＿ＤＱとしてデータ出力端子ＷＤＱから出力バッファ１５Ａに出力する。また、ライト位相制御回路１４は、所定のクロックＣＬＫに基づいて、ライトデータストローブ信号Ｗ＿ＤＱＳを生成し、該信号をデータストローブ出力端子ＷＤＱＳから出力バッファ１５Ｂに出力する。
【００３６】
出力バッファ１５Ａは、メモリ２０に対する書き込み動作において、対象データを順次にバッファしながらメモリ２０に出力する。具体的には、出力バッファ１５Ａは、ライト位相制御回路１４から出力されるライトデータ信号Ｗ＿ＤＱをバッファし、これをデータ信号ＤＱとしてメモリ２０に順次に出力する。
【００３７】
出力バッファ１５Ｂは、メモリ２０に対する書き込み動作において、対象データをラッチするタイミングの情報を順次にバッファしながらメモリ２０に出力する。具体的には、出力バッファ１５Ｂは、ライト位相制御回路１４から出力されるライトデータストローブ信号Ｗ＿ＤＱＳをバッファし、これをデータストローブ信号ＤＱＳとしてメモリ２０に順次に出力する。
【００３８】
入力バッファ１６Ａは、メモリ２０に対する読み出し動作において、メモリ２０から受ける対象データを順次にバッファしながらリード位相制御回路１７に出力する。具体的には、入力バッファ１６Ａは、メモリ２０から出力されるデータ信号ＤＱをバッファし、これをリードデータ信号Ｒ＿ＤＱとしてリード位相制御回路１７のデータ入力端子ＲＤＱに順次に出力する。
【００３９】
入力バッファ１６Ｂは、メモリ２０に対する読み出し動作において、メモリ２０から受ける対象データをラッチするタイミングの情報を順次にバッファしながらリード位相制御回路１７に出力する。具体的には、入力バッファ１６Ｂは、メモリ２０から出力されるデータストローブ信号ＤＱＳをバッファし、これをリードデータストローブ信号Ｒ＿ＤＱＳとしてリード位相制御回路１７のデータストローブ入力端子ＲＤＱＳに順次に出力する。
【００４０】
リード位相制御回路１７は、位相選択回路１３の制御に従って、読み出し動作のデータストローブ信号ＤＱＳの位相を調整する。具体的には、リード位相制御回路１７は、位相選択回路１３から出力されるリード位相制御信号ＲＰ＿ＣＮＴが示す位相条件に従って、入力バッファ１６Ｂから出力されるリードデータストローブ信号Ｒ＿ＤＱＳの位相を調整する。また、リード位相制御回路１７は、該位相を調整したリードデータストローブ信号Ｒ＿ＤＱＳに基づいて、入力バッファ１６Ａから出力されるリードデータ信号Ｒ＿ＤＱが示す内容を保持し、所定のクロックＣＬＫに基づいて、該保持した内容をリードデータ信号Ｒ＿ＤＱ０としてデータ出力端子ＲＤから比較器１８と、メモリ２０の記憶内容を必要とする外部の別の装置（図示せず）とに出力する。
【００４１】
比較器１８は、メモリ２０に対する対象データの書き込み動作及び読み出し動作が正常に行われたか否かを判定し、該判定結果を位相演算回路１１に出力する。具体的には、比較器１８は、ライトデータ生成回路１２から出力されるライトデータ信号Ｗ＿ＤＱ０が示す内容と、リード位相制御回路１７から出力されるリードデータ信号Ｒ＿ＤＱ０が示す内容とを比較し、該内容が一致するか否かを判断する。比較器１８は該内容が一致すると判定する場合、例えば、その状態を“１”とする比較信号ＣＯＭＰを生成し、該信号を位相演算回路１１の比較端子ＣＰに出力する。一方、比較器１８は、該内容が一致しないと判定する場合、例えば、その状態を“０”する比較信号ＣＯＭＰを生成し、該信号を位相演算回路１１の比較端子ＣＰに出力する。
【００４２】
メモリ２０は、所定のクロックＣＬＫに同期して動作する揮発性メモリであり、例えば、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）である。メモリ２０は、メモリ制御回路１０の出力バッファ１５Ｂから出力されるデータストローブ信号ＤＱＳに基づいて、メモリ制御回路１０の出力バッファ１５Ａから出力されるデータ信号ＤＱが示す対象データを記憶する。また、メモリ２０は、該記憶した対象データをデータ信号ＤＱとしてメモリ制御回路１０の入力バッファ１６Ａに出力するとともに、データ信号ＤＱをラッチするタイミングの情報をデータストローブ信号ＤＱＳとしてメモリ制御回路１０の入力バッファ１６Ｂに出力する。
【００４３】
図２は、本発明の一実施形態に係るメモリ制御回路における位相演算回路の概略構成を示す図である。同図に示すように、位相演算回路１１は、例えば、コントローラ１１１と、ライトアドレス制御回路１１２と、リードアドレス制御回路１１３と、記憶装置１１４と、比較器１１５と、選択回路１１６と、フィルタ選択回路１１７と、評価値算出回路１１８と、位相設定条件検出回路１１９とを含んで構成される。
【００４４】
なお、本明細書において、位相設定における書き込み動作及び読み出し動作の位相条件の数をそれぞれＭ及びＮと定義する。また、評価値の算出において選択する書き込み動作及び読み出し動作の位相条件の数をそれぞれｍ及びｎと定義する。また、評価値の算出で参照する位相条件の範囲を示す値をそれぞれｃ及びｄと定義する。所定の値ｃ及びｄは、それぞれ、例えば、（ｍ−１）／２及び（ｎ−１）／２という関係で示されるが、これに限られるものではない。所定の値ｃ及びｄの詳細に関しては後述する。
【００４５】
コントローラ１１１は、位相演算回路１１の各コンポーネントの制御を行う。具体的には、コントローラ１１１は、例えば、メモリ制御回路１０の起動や外部からの制御指示に基づいて、選択信号ＳＥＬを生成し、該信号をライトデータ生成回路１２及び位相選択回路１３に出力する。またコントローラ１１１は、例えば、メモリ制御回路１０の起動や外部からの制御指示に基づいて、制御信号ＣＮＴを生成し、該信号を記憶装置１１４の制御端子ＣＴに出力する。
【００４６】
さらに、コントローラ１１１は、例えばメモリ制御回路１０の起動や外部からの制御指示に基づいて、位相演算回路１１を位相走査モードに設定する。コントローラ１１１は、位相走査モードにおいて、選択信号ＳＥＬ及び制御信号ＣＮＴの状態を例えば“０”とする。また、コントローラ１１１は、位相走査モードにおいて、例えば、所定のクロックＣＬＫに基づいてカウントを行い、そのカウント値をライトカウント信号ＣＮＴ＿Ｘとしてライトアドレス制御回路１１２に出力する。コントローラ１１１は、該カウント毎に該カウント値が位相設定における全ての位相条件の数（即ちＮ×Ｍ回）と一致するか否かを判断し、該カウント値が該全ての位相条件の数と一致すると判断する場合、該カウント値をリセットし、位相演算回路１１を位相走査モードから評価値算出モードに切り替える。
【００４７】
評価値算出モードにおいては、コントローラ１１１は、選択信号ＳＥＬ及び制御信号ＣＮＴの状態を例えば“１”とする。コントローラ１１１は、評価値算出モードにおいて、所定のクロックＣＬＫに基づいて書き込み動作の位相条件のためのカウントを行い、そのカウント値をライトカウント信号ＣＮＴ＿Ｘとしてライトアドレス制御回路１１２に出力する。また、コントローラ１１１は、ライトカウント信号ＣＮＴ＿Ｘが示すカウント値が所定の回数（例えばＭ＋ｃ回）と一致するたびに読み出し動作の位相条件のためのカウントを行い、そのカウント値をリードカウント信号ＣＮＴ＿Ｙとしてリードアドレス制御回路１１３に出力するとともに、ライトカウント信号ＣＮＴ＿Ｘが示すカウント値をリセットする。さらに、コントローラ１１１は、リードカウント信号ＣＮＴ＿Ｙが示すカウント値が所定の回数（例えばＮ＋ｄ回）と一致するたびに、該カウント値をリセットする。
【００４８】
ライトアドレス制御回路１１２は、コントローラ１１１の制御に基づいて、書き込み動作及び読み出し動作、又は書き込み動作の位相条件を示すライトアドレス信号ＡＤＤ＿Ｘを生成し、該信号を各コンポーネントに出力する。具体的には、ライトアドレス制御回路１１２は、コントローラ１１１から出力されるライトカウント信号ＣＮＴ＿Ｘに基づいて、ライトアドレス信号ＡＤＤ＿Ｘを生成し、該信号を記憶装置１１４のアドレス端子ＡＤと、比較器１１５と、位相設定条件検出回路１１９のライトアドレス端子ＡＤＸとに出力する。ライトアドレス信号ＡＤＤ＿Ｘが示す内容は、位相走査モードにおいては、位相設定における書き込み動作及び読み出し動作の各位相条件に対応し、評価値算出モードにおいては、書き込み動作の各位相条件に対応する。
【００４９】
リードアドレス制御回路１１３は、コントローラ１１１の制御に基づいて、読み出し動作の位相条件を示すリードアドレス信号ＡＤＤ＿Ｙを生成し、該信号を各コンポーネントに出力する。具体的には、リードアドレス制御回路１１３は、コントローラ１１１から出力されるリードカウント信号ＣＮＴ＿Ｙに基づいて、リードアドレス信号ＡＤＤ＿Ｙを生成し、該信号をフィルタ選択回路１１７の選択端子ＳＬと、評価値算出回路１１８のリセット端子ＲＥＳと、位相設定条件検出回路１１９のリードアドレス端子ＡＤＹとに出力する。リードアドレス信号ＡＤＤ＿Ｙが示す内容は、位相設定における読み出し動作の各位相条件に対応する。
【００５０】
記憶装置１１４は、例えば、揮発性メモリ（例えばＳＲＡＭ等）や書き換え可能な不揮発性メモリ（例えばフラッシュメモリ等）であり、コントローラ１１１の制御に基づいて、書き込み動作及び読み出し動作の各位相条件に対応するメモリ２０の動作の判定結果を記憶する。また、記憶装置１１４は、コントローラ１１１の制御に基づいて、記憶した該判定結果を選択回路１１６の入力端子Ａ０に出力する。
【００５１】
具体的には、記憶装置１１４は、コントローラ１１１から制御端子ＣＴに出力される制御信号ＣＮＴの状態を判断する。記憶装置１１４は、制御信号ＣＮＴの状態が“０”であると判断する場合、クロック端子ＣＫに入力される所定のクロックＣＬＫに基づいて、比較器１８からデータ入力端子ＤＩに出力される比較信号ＣＯＭＰの内容をライトアドレス制御回路１１２からアドレス端子ＡＤに出力されるライトアドレス信号ＡＤＤ＿Ｘが示す領域に記憶する。一方、記憶装置１１４は、制御信号ＣＮＴの状態が“１”であると判断する場合、所定のクロックＣＬＫに基づいて、記憶した該内容を例えば、読み出し動作の位相条件の数であるＮビットずつデータ信号ＤＡＴ［Ｎ：１］としてデータ出力端子ＤＯから選択回路１１６の入力端子Ａ０に出力する。
【００５２】
比較器１１５は、ライトアドレス制御回路１１２から出力されるライトアドレス信号ＡＤＤ＿Ｘが示す値と、書き込み動作の位相条件の数であるＭの値とを比較して、該比較結果に基づいて空白選択信号ＳＥＬ＿ＮＵＬを生成し、該信号を選択回路１１６の選択端子ＳＬに出力する。具体的には、比較器１１５は、ライトアドレス信号ＡＤＤ＿Ｘが示す値がＭの値よりも小さいか否かを判断する。比較器１１５はライトアドレス信号ＡＤＤ＿Ｘが示す値がＭの値よりも小さいと判断する場合、空白選択信号ＳＥＬ＿ＮＵＬの状態を例えば“０”として選択回路１１６の選択端子ＳＬに出力する。一方、比較器１１５はライトアドレス信号ＡＤＤ＿Ｘの値がＭの値よりも小さくないと判断する場合、空白選択信号ＳＥＬ＿ＮＵＬの状態を例えば“１”として選択回路１１６の選択端子ＳＬに出力する。
【００５３】
選択回路１１６は、例えば、マルチプレクサである。選択回路１１６は、比較器１１５から選択端子ＳＬに出力される空白選択信号ＳＥＬ＿ＮＵＬに基づいて、記憶装置１１４から入力端子Ａ０に出力されるデータ信号ＤＡＴ［Ｎ：１］と、入力端子Ａ１に入力される空白信号ＮＵＬとのうち一方を選択し、該選択した信号をデータ信号ＤＸ［Ｎ：１］として出力端子Ｙからフィルタ選択回路１１７の入力端子Ｉ［ｄ＋１］乃至Ｉ［ｄ＋Ｎ］に出力する。
【００５４】
具体的には、選択回路１１６は、空白選択信号ＳＥＬ＿ＮＵＬの状態を判断する。選択回路１１６は、空白選択信号ＳＥＬ＿ＮＵＬの状態が例えば“０”であると判断する場合、入力端子Ａ０に入力されるデータ信号ＤＡＴ［Ｎ：１］を選択し、データ信号ＤＸ［Ｎ：１］として出力端子Ｙからフィルタ選択回路１１７の入力端子Ｉ［ｄ＋１］乃至Ｉ［ｄ＋Ｎ］に出力する。一方、選択回路１１６は、空白選択信号ＳＥＬ＿ＮＵＬの状態が例えば“１”であると判断する場合、入力端子Ａ１に入力される空白信号ＮＵＬを選択し、データ信号ＤＸ［Ｎ：１］として出力端子Ｙからフィルタ選択回路１１７の入力端子Ｉ［ｄ＋１］乃至Ｉ［ｄ＋Ｎ］に出力する。なお、データ信号ＤＸ［Ｎ：１］の各ビットを示すデータ信号ＤＸ［１］乃至ＤＸ［Ｎ］は、それぞれフィルタ選択回路１１７の入力端子Ｉ［ｄ＋１］乃至Ｉ［ｄ＋Ｎ］に対応する。
【００５５】
フィルタ選択回路１１７は、選択回路１１６から出力されるＮビットのデータ信号ＤＸ［Ｎ：１］のうち、評価値の算出に使用するｎ個の信号を選択し、データ信号ＤＹ［１］乃至ＤＹ［ｎ］として評価値算出回路１１８に出力する。具体的には、フィルタ選択回路１１７は、リードアドレス制御回路１１３から選択端子ＳＬに出力されるリードアドレス信号ＡＤＤ＿Ｙに基づいて、入力端子Ｉ［１］乃至Ｉ［ｄ］及びＩ［ｄ＋Ｎ＋１］乃至Ｉ［Ｎ＋ｎ］に入力される空白信号ＮＵＬと、入力端子Ｉ［ｄ＋１］乃至Ｉ［ｄ＋Ｎ］に入力されるデータ信号ＤＸ［１］乃至ＤＸ［Ｎ］とのうち、ｎ個の信号を選択し、該選択した信号をそれぞれデータ信号ＤＹ［１］乃至ＤＹ［ｎ］としてそれぞれ出力端子Ｏ［１］乃至Ｏ［ｎ］から評価値算出回路１１８の入力端子Ｉ［１］乃至Ｉ［ｎ］に出力する。
【００５６】
評価値算出回路１１８は、例えば、シフトレジスタであり、さらに、記憶した内容に基づいて評価値を算出する機能を備える。評価値算出回路１１８は、所定のクロックＣＬＫに基づいて、フィルタ選択回路１１７から入力端子Ｉ［１］乃至Ｉ［ｎ］に出力されるデータ信号ＤＹ［１］乃至ＤＹ［ｎ］が示す値を順次記憶するとともに、該記憶した内容に基づいて評価値を算出し、該算出した評価値を評価値信号ＥＶＡＬ＿ＶＡＬとして加算端子ＡＤＤから位相設定条件検出回路１１９の評価端子ＥＶＡＬに出力する。また、評価値算出回路１１８は、その記憶領域に空きがない状態でデータ信号ＤＹを受けた場合、記憶している値のうち最も古い値から順に記憶した値を消去することで、データ信号ＤＹが示す値を新たに記憶する。また、評価値算出回路１１８は、リードアドレス制御回路１１３からリセット端子ＲＥＳに入力されるリードアドレス信号ＡＤＤ＿Ｙに基づいて、該記憶した内容をリセットする。
【００５７】
位相設定条件検出回路１１９は、一定の基準を満たす評価値（例えば最大値）と、それに対応する書き込み動作及び読み出し動作の位相条件とを記憶し、該位相条件を位相選択回路１３に出力する。具体的には、位相設定条件検出回路１１９は、ライトアドレス制御回路１１２から受けるライトアドレス信号ＡＤＤ＿Ｘが示す書き込み動作の位相条件と、リードアドレス制御回路１１３から受けるリードアドレス信号ＡＤＤ＿Ｙが示す読み出し動作の位相条件と、評価値算出回路１１８から受ける評価値信号ＥＶＡＬ＿ＶＡＬが示す該位相条件に対応する評価値とを記憶する。また位相設定条件検出回路１１９は、該記憶した書き込み動作及び読み出し動作の位相条件をそれぞれ最適ライト位相信号ＷＰ＿ＯＰＴ及び最適リード位相信号ＲＰ＿ＯＰＴとして、ライト位相出力端子ＷＰＯ及びリード位相出力端子ＲＰＯから位相選択回路１３に出力する。
【００５８】
さらに、位相設定条件検出回路１１９は、再び該３つの信号が入力された時、評価値信号ＥＶＡＬ＿ＶＡＬが示す評価値と、記憶済みである評価値とを比較する。位相設定条件検出回路１１９は、該信号が示す評価値が記憶済みである評価値よりも大きいと判断する場合、記憶済みである該３つの値を再び入力された該３つの信号が示す値にそれぞれ更新する。一方、位相設定条件検出回路１１９は、該信号が示す評価値が記憶済みである評価値よりも大きくないと判断する場合、記憶済みである該３つの値を維持する。
【００５９】
図３は、本発明の一実施形態に係る位相演算回路における評価値算出回路の概略構成を示す図である。同図に示すように、本実施形態に係る評価値算出回路１１８は、例えば、リセット信号生成回路１１８１と、マルチパス出力制御回路１１８２（１）乃至１１８２（ｍ）と、加算回路１１８３（１）乃至１１８３（ｍ）と、加算回路１１８４とを含んで構成される。なお、本例において、ｉを２乃至ｍ−１の整数と定義する。
【００６０】
同図において、リセット信号生成回路１１８１は、リードアドレス制御回路１１３から出力されるリードアドレス信号ＡＤＤ＿Ｙの状態の変化に基づいて、リセット信号ＲＥＳＥＴを生成し、該信号をマルチパス出力制御回路１１８２（１）乃至１１８２（ｍ）のリセット端子ＲＥＳに出力する。具体的には、リセット信号生成回路１１８１は、リードアドレス信号ＡＤＤ＿Ｙの状態を監視し、該信号の状態に変化があるか否かを判断する。リセット信号生成回路１１８１は、リードアドレス信号ＡＤＤ＿Ｙの状態に変化があると判断する場合、その状態を例えば“１”とするリセット信号ＲＥＳＥＴを生成し、該信号をマルチパス出力制御回路１１８２（１）乃至１１８２（ｍ）のリセット端子ＲＥＳに出力する。一方、リセット信号生成回路１１８１は、リードアドレス信号ＡＤＤ＿Ｙの状態に変化がないと判断する場合、その状態を例えば“０”とするリセット信号ＲＥＳＥＴを生成し、該信号をマルチパス出力制御回路１１８２（１）乃至１１８２（ｍ）のリセット端子ＲＥＳに出力する。
【００６１】
マルチパス出力制御回路１１８２は、所定のクロックＣＬＫに基づいて、入力端子Ｉに入力されるｎビットのデータ信号を次段のマルチパス出力制御回路１１８２に出力するとともに、該データ信号に対応する評価値をそれぞれ算出し、該算出した評価値を加算回路１１８３に出力する。また、マルチパス出力制御回路１１８２はリセット信号生成回路１１８１の制御に基づいて、その状態をリセットする。具体的には、マルチパス出力制御回路１１８２（１）は、所定のクロックＣＬＫに基づいて、フィルタ選択回路１１７から入力端子Ｉ［１］乃至Ｉ［ｎ］に出力されるデータ信号ＤＹ［１］乃至ＤＹ［ｎ］をデータ信号ＤＹ１［１］乃至ＤＹ１［ｎ］として出力端子Ｏ［１］乃至Ｏ［ｎ］からマルチパス出力制御回路１１８２（２）の入力端子Ｉ［１］乃至Ｉ［ｎ］に出力する。また、マルチパス出力制御回路１１８２（１）は、データ信号ＤＹ［１］乃至ＤＹ［ｎ］に対応する評価係数を予め記憶し、所定のクロックＣＬＫに基づいて、該信号が示す値と該評価係数とを乗算し、乗算結果を評価信号ＥＶＡＬ１［ｎ：１］として値端子ＶＡＬ［ｎ：１］から加算回路１１８３（１）に出力する。
【００６２】
また、マルチパス出力制御回路１１８２（ｉ）は、所定のクロックＣＬＫに基づいて、前段のマルチパス出力制御回路１１８２（ｉ―１）から入力端子Ｉ［１］乃至Ｉ［ｎ］に出力されるデータ信号ＤＹｉ―１［１］乃至ＤＹｉ―１［ｎ］をデータ信号ＤＹｉ［１］乃至ＤＹｉ［ｎ］として出力端子Ｏ［１］乃至Ｏ［ｎ］からマルチパス出力制御回路１１８２（ｉ＋１）の入力端子Ｉ［１］乃至Ｉ［ｎ］に出力する。また、マルチパス出力制御回路１１８２（ｉ）は、データ信号ＤＹｉ―１［１］乃至ＤＹｉ―１［ｎ］に対応する評価係数を予め記憶し、所定のクロックＣＬＫに基づいて、該信号が示す値と該評価係数とを乗算し、乗算結果を評価信号ＥＶＡＬｉ［ｎ：１］として値端子ＶＡＬ［ｎ：１］から加算回路１１８３（ｉ）に出力する。
【００６３】
また、マルチパス出力制御回路１１８２（ｍ）は、所定のクロックＣＬＫに基づいて、マルチパス出力制御回路１１８２（ｍ−１）から入力端子Ｉ［１］乃至Ｉ［ｎ］に出力されるデータ信号ＤＹｍ−１［１］乃至ＤＹｍ−１［ｎ］に対応する評価係数を予め記憶し、所定のクロックＣＬＫに基づいて、該信号が示す値と該評価係数とを乗算し、乗算結果を評価信号ＥＶＡＬｍ［ｎ：１］として値端子ＶＡＬ［ｎ：１］から加算回路１１８３（ｍ）に出力する。なお、マルチパス出力制御回路１１８２（１）乃至１１８２（ｍ）は、リセット信号生成回路１１８１からリセット端子ＲＥＳに出力されるリセット信号ＲＥＳＥＴに基づいて、その状態をリセットする。
【００６４】
加算回路１１８３（１）乃至１１８３（ｍ）は、書き込み動作の各位相条件について、読み出し動作の位相条件の評価値を加算し、該加算結果を加算回路１１８４に出力する。具体的には、加算回路１１８３（１）乃至１１８３（ｍ）は、対応するマルチパス出力制御回路１１８２（１）乃至１１８２（ｍ）から出力される評価信号ＥＶＡＬ１［ｎ：１］乃至ＥＶＡＬｍ［ｎ：１］が示す評価値をそれぞれ加算し、加算結果を評価合計信号ＥＶＡＬ＿ＳＵＭ［１］乃至ＥＶＡＬ＿ＳＵＭ［ｍ］として加算回路１１８４に出力する。
【００６５】
加算回路１１８４は、加算回路１１８３（１）乃至１１８３（ｍ）から出力される書き込み動作の位相条件毎の評価値の合計を加算し、加算結果を位相設定条件検出回路１１９に出力する。具体的には、加算回路１１８４は、加算回路１１８３（１）乃至１１８３（ｍ）から出力される評価合計信号ＥＶＡＬ＿ＳＵＭ［ｍ：１］が示すｍ個の評価値の合計を加算し、評価値信号ＥＶＡＬ＿ＶＡＬとして位相設定条件検出回路１１９に出力する。
【００６６】
図４は、本発明の一実施形態に係る評価値算出回路におけるマルチパス出力制御回路の概略構成を示す図である。同図に示すように、本実施形態のマルチパス出力制御回路１１８２（１）は、出力制御回路ＦＦ（１）乃至ＦＦ（ｎ）と、レジスタＲＥＧ（１）乃至ＲＥＧ（ｎ）と、乗算回路ＭＵＬ（１）乃至ＭＵＬ（ｎ）とを含んで構成される。なお、本例においては、マルチパス出力制御回路１１８２（１）に関して、その構成及び動作を述べるが、他のマルチパス出力制御回路１１８２（２）乃至１１８２（ｍ）についても同様である。
【００６７】
出力制御回路ＦＦ（１）乃至ＦＦ（ｎ）は、例えば、Ｄ型フリップフロップである。出力制御回路ＦＦ（１）乃至ＦＦ（ｎ）は、クロック端子ＣＫに入力される所定のクロックＣＬＫに基づいて、フィルタ選択回路１１７からデータ端子Ｄに出力されるデータ信号ＤＹ［１］乃至ＤＹ［ｎ］をデータ信号ＤＹ１［１］乃至ＤＹ１［ｎ］として出力端子Ｑから乗算回路ＭＵＬ（１）乃至ＭＵＬ（ｎ）と、マルチパス出力制御回路１１８２（２）の入力端子Ｉ［１］乃至Ｉ［ｎ］とに出力する。
【００６８】
また、出力制御回路ＦＦ（１）乃至ＦＦ（ｎ）は、リセット信号生成回路１１８１から出力されるリセット信号ＲＥＳＥＴの状態に基づいて、出力端子Ｑから出力するデータ信号ＤＹ１［１］乃至ＤＹ１［ｎ］の状態を例えば“０”にリセットする。即ち、出力制御回路ＦＦ（１）乃至ＦＦ（ｎ）は、リセット信号ＲＥＳＥＴの状態が例えば“０”である場合、データ信号ＤＹ１［１］乃至ＤＹ１［ｎ］の状態を例えば“０”にリセットする。
【００６９】
レジスタＲＥＧは、各位相条件に対応する評価係数を記憶し、該記憶した内容を乗算回路ＭＵＬに出力する。具体的には、レジスタＲＥＧ（１）乃至ＲＥＧ（ｎ）は、データ信号ＤＹ［１］乃至ＤＹ［ｎ］に対応する評価計数を予め記憶し、該記憶した値を乗算回路ＭＵＬ（１）乃至ＭＵＬ（ｎ）に出力する。なお、評価計数は、外部の別の装置（図示せず）の制御に基づいて決定されても良いし、自身の回路構成によって決定されても良い。
【００７０】
乗算回路ＭＵＬは、各位相条件におけるメモリ２０の動作の判定結果と、該位相条件に対応する評価係数とを乗算し、乗算結果を加算回路１１８３に出力する。具体的には、乗算回路ＭＵＬ（１）乃至ＭＵＬ（ｎ）は、出力制御回路ＦＦ（１）乃至ＦＦ（ｎ）から出力されるデータ信号ＤＹ［１］乃至ＤＹ［ｎ］が示す値と、レジスタＲＥＧ（１）乃至ＲＥＧ（ｎ）から出力される評価係数とを乗算し、乗算結果を評価信号ＥＶＡＬ１［１］乃至ＥＶＡＬ１［ｎ］として加算回路１１８３（１）に出力する。
【００７１】
図５は、本発明の一実施形態に係る位相演算回路における位相設定条件検出回路の概略構成を示す図である。同図に示すように、本実施形態に係る位相設定条件検出回路１１９は、例えば、６個の出力制御回路１１９０、１１９１、１１９３、１１９５、１１９７及び１１９８と、３個の選択回路１１９２、１１９６及び１１９９と、１個の比較器１１９４とを含んで構成される。
【００７２】
出力制御回路１１９０、１１９１、１１９３、１１９５、１１９７及び１１９８は、例えば、Ｄ型フリップフロップである。該回路は、クロック端子ＣＫに入力される所定のクロックＣＬＫに基づいて、データ端子Ｄに入力される信号を出力端子Ｑから出力する。
【００７３】
選択回路１１９２、１１９６及び１１９９は、例えば、マルチプレクサである。該回路は、選択端子ＳＬに入力される信号に基づいて、入力端子Ａ０及び入力端子Ａ１に入力される信号のうち、いずれか一方を選択し、出力端子Ｙから出力する。
【００７４】
次に、位相設定条件検出回路１１９の動作について説明する。出力制御回路１１９１及び１１９３と、選択回路１１９２とで構成される評価値記憶回路は、評価値算出回路１１８から順次出力される評価値信号ＥＶＡＬ＿ＶＡＬが示す評価値のうち最大値を記憶する。
【００７５】
まず、出力制御回路１１９１は、所定のクロックＣＬＫに基づいて、評価値算出回路１１８から出力される評価値信号ＥＶＡＬ＿ＶＡＬを現在評価値信号ＥＶＡＬ＿ＣＵＲとして比較器１１９４及び選択回路１１９２の入力端子Ａ１に出力する。
【００７６】
次に、選択回路１１９２は、選択信号ＳＥＬの状態に基づいて、最適評価値信号ＥＶＡＬ＿ＯＰＴ及び現在評価値信号ＥＶＡＬ＿ＣＵＲのうちいずれか一方を選択し、更新評価値信号ＥＶＡＬ＿ＵＰＤとして出力制御回路１１９３に出力する。具体的には、選択回路１１９２は、選択信号ＳＥＬの状態を判断する。選択回路１１９２は、選択信号ＳＥＬの状態が例えば“０”であると判断する場合、出力制御回路１１９３から入力端子Ａ０に出力される最適評価値信号ＥＶＡＬ＿ＯＰＴを選択し、更新評価値信号ＥＶＡＬ＿ＵＰＤとして出力端子Ｙから出力制御回路１１９３のデータ端子Ｄに出力する。一方、選択回路１１９２は、選択信号ＳＥＬの状態が例えば“１”であると判断する場合、出力制御回路１１９１から入力端子Ａ１に出力される現在評価値信号ＥＶＡＬ＿ＣＵＲを選択し、更新評価値信号ＥＶＡＬ＿ＵＰＤとして出力端子Ｙから出力制御回路１１９３のデータ端子Ｄに出力する。
【００７７】
そして、出力制御回路１１９３は、所定のクロックＣＬＫに基づいて、選択回路１１９２から出力される更新評価値信号ＥＶＡＬ＿ＵＰＤを最適評価値信号ＥＶＡＬ＿ＯＰＴとして、比較器１１９４と、選択回路１１９２の入力端子Ａ０とに出力するとともに、該信号が示す評価値を記憶する。
【００７８】
比較器１１９４は、出力制御回路１１９１から出力される現在評価値信号ＥＶＡＬ＿ＣＵＲの値と、出力制御回路１１９３から出力される最適評価値信号ＥＶＡＬ＿ＯＰＴの値とを比較し、現在評価値信号ＥＶＡＬ＿ＣＵＲの値が最適評価値信号ＥＶＬＡ＿ＯＰＴの値よりも大きいか否かを判断する。比較器１１９４は、現在評価値信号ＥＶＡＬ＿ＣＵＲの値が最適評価値信号ＥＶＡＬ＿ＯＰＴの値よりも大きいと判断する場合、その状態を“１”とする位相選択信号ＳＥＬ＿ＰＨＡを生成し、該信号を選択回路１１９２、１１９６及び１１９９の選択端子ＳＬに出力する。一方、比較器１１９４は、現在評価値信号ＥＶＡＬ＿ＣＵＲの値が最適評価値信号ＥＶＡＬ＿ＯＰＴの値よりも大きくないと判断する場合、その状態を“０”とする位相選択信号ＳＥＬ＿ＰＨＡを生成し、該信号を選択回路１１９２、１１９６及び１１９９の選択端子ＳＬに出力する。
【００７９】
出力制御回路１１９５及び１１９７と、選択回路１１９６とで構成されるライト位相記憶回路は、ライトアドレス制御回路１１２から順次出力されるライトアドレス信号ＡＤＤ＿Ｘが示す書き込み動作の位相条件のうち、上述した評価値記憶回路が記憶する最大の評価値に対応する位相条件を記憶するとともに、該位相条件を位相選択回路１３に出力する。
【００８０】
まず、出力制御回路１１９５は、所定のクロックＣＬＫに基づいて、ライトアドレス制御回路１１２から出力されるライトアドレス信号ＡＤＤ＿Ｘを現在ライト位相信号ＷＰ＿ＣＵＲとして選択回路１１９６の入力端子Ａ１に出力する。
【００８１】
次に、選択回路１１９６は、選択信号ＳＥＬの状態に基づいて、最適ライト位相信号ＷＰ＿ＯＰＴ及び現在ライト位相信号ＷＰ＿ＣＵＲのうちいずれか一方を選択し、更新ライト位相信号ＷＰ＿ＵＰＤとして出力制御回路１１９７に出力する。具体的には、選択回路１１９６は、選択信号ＳＥＬの状態を判断する。選択回路１１９６は、選択信号ＳＥＬの状態が例えば“０”であると判断する場合、出力制御回路１１９７から入力端子Ａ０に出力される最適ライト位相信号ＷＰ＿ＯＰＴを選択し、更新ライト位相信号ＷＰ＿ＵＰＤとして出力端子Ｙから出力制御回路１１９７のデータ端子Ｄに出力する。一方、選択回路１１９６は、選択信号ＳＥＬの状態が例えば“１”であると判断する場合、出力制御回路１１９５から入力端子Ａ１に出力される現在ライト位相信号ＷＰ＿ＣＵＲを選択し、更新ライト位相信号ＷＰ＿ＵＰＤとして出力端子Ｙから出力制御回路１１９７のデータ端子Ｄに出力する。
【００８２】
そして、出力制御回路１１９７は、所定のクロックＣＬＫに基づいて、選択回路１１９６から出力される更新ライト位相信号ＷＰ＿ＵＰＤを最適ライト位相信号ＷＰ＿ＯＰＴとして、位相選択回路１３のライト位相端子ＷＰ及び選択回路１１９６の入力端子Ａ０に出力するとともに、該信号が示す書き込み動作の位相条件を記憶する。
【００８３】
出力制御回路１１９０及び１１９８と、選択回路１１９９とで構成されるリード位相記憶回路は、リードアドレス制御回路１１３から順次出力されるリードアドレス信号ＡＤＤ＿Ｙが示す読み出し動作の位相条件のうち、上述した評価値記憶回路が記憶する最大の評価値に対応する位相条件を記憶するとともに、該位相条件を位相選択回路１３に出力する。
【００８４】
まず、出力制御回路１１９８は、所定のクロックＣＬＫに基づいて、リードアドレス制御回路１１３から出力されるリードアドレス信号ＡＤＤ＿Ｙを現在リード位相信号ＲＰ＿ＣＵＲとして選択回路１１９９の入力端子Ａ１に出力する。
【００８５】
次に、選択回路１１９９は、選択信号ＳＥＬの状態に基づいて、最適リード位相信号ＲＰ＿ＯＰＴ及び現在リード位相信号ＲＰ＿ＣＵＲのうちいずれか一方を選択し、更新リード位相信号ＲＰ＿ＵＰＤとして出力制御回路１１９０に出力する。具体的には、選択回路１１９９は、選択信号ＳＥＬの状態を判断する。選択回路１１９９は、選択信号ＳＥＬの状態が例えば“０”であると判断する場合、出力制御回路１１９０から入力端子Ａ０に出力される最適リード位相信号ＲＰ＿ＯＰＴを選択し、更新リード位相信号ＲＰ＿ＵＰＤとして出力端子Ｙから出力制御回路１１９０のデータ端子Ｄに出力する。一方、選択回路１１９９は、選択信号ＳＥＬの状態が例えば“１”であると判断する場合、出力制御回路１１９８から入力端子Ａ１に出力される現在リード位相信号ＲＰ＿ＣＵＲを選択し、更新リード位相信号ＲＰ＿ＵＰＤとして出力端子Ｙから出力制御回路１１９０のデータ端子Ｄに出力する。
【００８６】
そして、出力制御回路１１９０は、所定のクロックＣＬＫに基づいて、選択回路１１９９から出力される更新リード位相信号ＲＰ＿ＵＰＤを最適リード位相信号ＲＰ＿ＯＰＴとして位相選択回路１３のリード位相端子ＲＰ及び選択回路１１９９の入力端子Ａ０に出力するとともに、該信号が示す読み出し動作の位相条件を記憶する。
【００８７】
図６は、本発明の一実施形態に係るメモリ制御回路における位相選択回路の構成の一例を示す図である。同図に示すように、本実施形態に係る位相選択回路１３は、例えば、走査制御回路１３１と、ライト位相走査回路１３２と、選択回路１３３及び１３５と、リード位相走査回路１３４とを含んで構成される。
【００８８】
走査制御回路１３１は、位相演算回路１１の制御指示に従って、書き込み動作及び読み出し動作の各位相条件の走査を制御する。具体的には、走査制御回路１３１は、位相演算回路１１から出力される選択信号ＳＥＬに基づいて、ライト走査カウント信号ＣＮＴ＿ＷＳＷＰ及びリード走査カウント信号ＣＮＴ＿ＲＳＷＰを生成し、該信号をそれぞれライト位相走査回路１３２及びリード位相走査回路１３４に出力することによって、該２つの回路を制御する。具体的には、走査制御回路１３１は、選択信号ＳＥＬの状態を判断する。走査制御回路１３１は、選択信号ＳＥＬの状態が例えば“０”であると判断する場合、所定のクロックＣＬＫに基づいて書き込み動作の位相条件のためのカウントを行い、そのカウント値をライト走査カウント信号ＣＮＴ＿ＷＳＷＰとしてライト位相走査回路１３２に出力する。また、走査制御回路１３１は、該カウント値が書き込み動作の位相条件の数Ｍと一致するたびに該カウント値をリセットするとともに、読み出し動作の位相条件のためのカウントを行い、該カウント値をリード走査カウント信号ＣＮＴ＿ＲＳＷＰとしてリード位相走査回路１３４に出力する。一方、走査制御回路１３１は、選択信号の状態が例えば“１”であると判断する場合、該２つのカウント値をリセットするとともに、ライト走査カウント信号ＣＮＴ＿ＷＳＷＰ及びリード走査カウント信号ＣＮＴ＿ＲＳＷＰの出力を停止する。
【００８９】
ライト位相走査回路１３２は、書き込み動作の各位相条件を記憶し、走査制御回路１３１の制御指示に対応する位相条件を選択回路１３３に出力する。具体的には、ライト位相走査回路１３２は、書き込み動作の各位相条件を記憶し、走査制御回路１３１から出力されるライト走査カウント信号ＣＮＴ＿ＷＳＷＰの内容に対応する位相条件をライト位相走査信号ＷＰ＿ＳＷＰとして選択回路１３３の入力端子Ａ１に出力する。
【００９０】
選択回路１３３は、例えば、マルチプレクサである。選択回路１３３は、位相演算回路１１から選択端子ＳＬに出力される選択信号ＳＥＬに基づいて、位相演算回路１１から入力端子Ａ０に出力される最適ライト位相信号ＷＰ＿ＯＰＴと、ライト位相走査回路１３２から入力端子Ａ１に出力されるライト位相走査信号ＷＰ＿ＳＷＰとのうち、いずれか一方を選択し、ライト位相制御信号ＷＰ＿ＣＮＴとして出力端子Ｙからライト位相出力端子ＷＰＯを介してライト位相制御回路１４の位相端子ＰＨに出力する。具体的には、選択回路１３３は、選択信号ＳＥＬの状態を判断する。選択回路１３３は選択信号ＳＥＬの状態が例えば“０”であると判断する場合、ライト位相走査信号ＷＰ＿ＳＷＰをライト位相制御信号ＷＰ＿ＣＮＴとしてライト位相制御回路１４の位相端子ＰＨに出力する。一方、選択回路１３３は、選択信号ＳＥＬの状態が例えば“１”であると判断する場合、最適ライト位相信号ＷＰ＿ＯＰＴをライト位相制御信号ＷＰ＿ＣＮＴとしてライト位相制御回路１４の位相端子ＰＨに出力する。
【００９１】
リード位相走査回路１３４は、読み出し動作の各位相条件を記憶し、走査制御回路１３１の制御指示に対応する位相条件を選択回路１３５に出力する。具体的には、リード位相走査回路１３４は、読み出し動作の各位相条件を記憶し、走査制御回路１３１から出力されるリード走査カウント信号ＣＮＴ＿ＲＳＷＰの内容に対応する該位相条件をリード位相走査信号ＲＰ＿ＳＷＰとして選択回路１３５の入力端子Ａ１に出力する。
【００９２】
選択回路１３５は、例えば、マルチプレクサである。選択回路１３５は、位相演算回路１１から選択端子ＳＬに入力される選択信号ＳＥＬに基づいて、位相演算回路１１から入力端子Ａ０に出力される最適リード位相信号ＲＰ＿ＯＰＴと、リード位相走査回路１３４から入力端子Ａ１に出力されるリード位相走査信号ＲＰ＿ＳＷＰとのうち、いずれか一方を選択し、リード位相制御信号ＲＰ＿ＣＮＴとして出力端子Ｙからリード位相出力端子ＲＰＯを介してリード位相制御回路１７の位相端子ＰＨに出力する。具体的には、選択回路１３５は、選択信号ＳＥＬの状態を判断する。選択回路１３５は選択信号ＳＥＬの状態が例えば“０”であると判断する場合、リード位相走査信号ＲＰ＿ＳＷＰをリード位相制御信号ＲＰ＿ＣＮＴとしてリード位相制御回路１７の位相端子ＰＨに出力する。一方、選択回路１３５は、選択信号ＳＥＬの状態が例えば“１”であると判断する場合、最適リード位相信号ＲＰ＿ＯＰＴをリード位相制御信号ＲＰ＿ＣＮＴとしてリード位相制御回路１７の位相端子ＰＨに出力する。
【００９３】
図７は、本発明の一実施形態に係るメモリ制御回路におけるライト位相制御回路の構成の一例を示す図である。同図に示すように、本実施形態に係るライト位相制御回路１４は、例えば、遅延制御回路１４１と、出力制御回路１４２及び１４３と、論理否定回路１４４とを含んで構成される。
【００９４】
遅延制御回路１４１は、例えば、ＤＬＬ（Delay Locked Loop）である。遅延制御回路１４１は、所定のクロックＣＬＫに、位相選択回路１３から出力されるライト位相制御信号ＷＰ＿ＣＮＴが示す位相条件に対応する遅延量を与え、位相調整クロックＰＨ＿ＣＬＫとして出力制御回路１４２のクロック端子ＣＫに出力する。
【００９５】
出力制御回路１４２は、例えば、Ｄ型フリップフロップである。出力制御回路１４２は、ライトデータ信号Ｗ＿ＤＱを生成する。具体的には、出力制御回路１４２は、遅延制御回路１４１からクロック端子ＣＫに出力される位相調整クロックＰＨ＿ＣＬＫに基づいて、ライトデータ生成回路１２からデータ端子Ｄに出力されるライトデータ信号Ｗ＿ＤＱ０をライトデータ信号Ｗ＿ＤＱとして出力端子Ｙから出力バッファ１５Ａに出力する。
【００９６】
出力制御回路１４３は、例えば、Ｄ型フリップフロップである。出力制御回路１４３は、後述する論理否定回路１４４とでライトストローブ信号生成回路を構成し、該構成によってライトデータストローブ信号Ｗ＿ＤＱＳを生成する。具体的には、出力制御回路１４３は、クロック端子ＣＫに入力される所定のクロックＣＬＫに基づいて、論理否定回路１４４からデータ端子Ｄに出力される反転データストローブ信号ＩＮＶ＿ＤＱＳをライトデータストローブ信号Ｗ＿ＤＱＳとして出力端子Ｑからデータストローブ出力端子ＷＤＱＳを介して論理否定回路１４４及び出力バッファ１５Ｂに出力する。
【００９７】
論理否定回路１４４は、例えば、インバータ回路である。論理否定回路１４４は、出力制御回路１４３とでライトストローブ信号生成回路を構成し、出力制御回路１４３が出力するライトストローブ信号Ｗ＿ＤＱＳに対して論理否定を行い、該論理否定の演算結果を出力制御回路１４３にフィードバックする。具体的には、論理否定回路１４４は、出力制御回路１４３から出力されるライトストローブ信号Ｗ＿ＤＱＳに対して論理否定を行い、該論理否定の演算結果を反転データストローブ信号ＩＮＶ＿ＤＱＳとして出力制御回路１４３のデータ端子Ｄに出力する。
【００９８】
図８は、本発明の一実施形態に係るメモリ制御回路におけるリード位相制御回路の構成の一例を示す図である。同図に示すように、本実施形態に係るリード位相制御回路１７は、例えば、遅延制御回路１７１と、出力制御回路１７２とを含んで構成される。
【００９９】
遅延制御回路１７１は、例えば、ＤＬＬである。遅延制御回路１７１は、入力バッファ１６Ｂから出力されるリードデータストローブ信号Ｒ＿ＤＱＳに、位相選択回路１３から出力されるリード位相制御信号ＲＰ＿ＣＮＴが示す位相条件に対応する遅延量を与え、位相調整データストローブ信号ＰＨ＿ＤＱＳとして出力制御回路１７２の入力クロック端子ＩＣＫに出力する。
【０１００】
出力制御回路１７２は、例えば、ＦＩＦＯ（First In First Out）メモリである。出力制御回路１７２は、遅延制御回路１７１から入力クロック端子ＩＣＫに出力される位相調整データストローブ信号ＰＨ＿ＤＱＳに基づいて、入力バッファ１６Ａから出力されるリードデータ信号Ｒ＿ＤＱが示す内容を記憶する。また、出力制御回路１７２は、出力クロック端子ＯＣＫに入力される所定のクロックＣＬＫに基づいて、該記憶した内容のうち最も古い内容から順にリードデータ信号Ｒ＿ＤＱ０として比較器１８に出力する。
【０１０１】
以上のように構成される、メモリ制御回路１０は、書き込み動作に関するライトデータ信号Ｗ＿ＤＱ及び読み出し動作に関するリードデータストローブ信号Ｒ＿ＤＱＳの各位相条件について、メモリ２０に対して書き込み動作及び読み出し動作を実行する。メモリ制御回路１０は、該動作が正常に行われたか否かを判断し、該判断結果を各位相条件に対応するメモリ制御回路１０の領域に記憶する。そして、メモリ制御回路１０は、各位相条件について評価値を算出し、該算出した評価値のうち一定の基準を満たす評価値（例えば、最大値）に対応する位相条件を記憶し、該記憶した位相条件に従って、書き込み動作及び読み出し動作のライトイネーブル信号Ｗ＿ＤＱ及びリードデータストローブ信号Ｒ＿ＤＱＳの位相を設定する。また、メモリ制御回路１０は、上述したように単純な回路構成によって実現される。
【０１０２】
これにより、メモリ制御回路１０は、データ信号ＤＱの有効状態がデータ信号ＤＱのどの位相にあっても、メモリへのデータの書き込み及び読み出しに適した位相に、メモリ２０のデータ信号ＤＱ及びデータストローブ信号ＤＱＳの位相を容易に設定することができる。また、メモリ制御回路１０は、メモリ２０が正常に動作する書き込み動作及び読み出し動作のデータ信号ＤＱ及びデータストローブ信号ＤＱＳの位相条件の組み合わせが複雑である場合においても、メモリへのデータの書き込み及び読み出しに適した位相に、メモリ２０のデータ信号ＤＱ及びデータストローブ信号ＤＱＳの位相を容易に設定することができるようになる。
【０１０３】
図９は、本発明の一実施形態に係るメモリ制御回路における各種の信号のタイミングチャートである。具体的には、図９は、ライトデータ信号Ｗ＿ＤＱの位相の走査について説明するための、本発明の一実施形態に係るメモリ制御回路１０における各種の信号のタイミングチャートである。同図において、メモリ制御回路１０によってライトデータ信号Ｗ＿ＤＱが更新されるタイミングを時刻ｔ０と定義する。また、時刻ｔ０以降において、メモリ制御回路１０がライトデータストローブ信号Ｗ＿ＤＱＳの状態を遷移させる最初のタイミングを時刻ｔ１と定義する。また、時刻ｔ１以降において、メモリ制御回路１０によってライトデータ信号Ｗ＿ＤＱが最初に更新されるタイミングを時刻ｔ２と定義する。
【０１０４】
同図において、仮想ライトデータ信号Ｗ＿ＤＱＵは、メモリ制御回路１０がライトデータ信号Ｗ＿ＤＱの位相を進めた場合のライトデータ信号Ｗ＿ＤＱの仮想のタイミングチャートである。また、仮想ライトデータ信号Ｗ＿ＤＱＬは、メモリ制御回路１０がライトデータ信号Ｗ＿ＤＱの位相を遅らせた場合のライトデータ信号Ｗ＿ＤＱの仮想のタイミングチャートである。なお、リードデータ信号Ｒ＿ＤＱ及びリードデータストローブ信号Ｒ＿ＤＱＳのタイミングチャートに関しては、後述するため、その説明を省略する。
【０１０５】
メモリ制御回路１０は、上述した位相調整クロックＰＨ＿ＣＬＫに基づいて、ライトデータ信号Ｗ＿ＤＱの内容を更新する（即ち、時刻ｔ０）。該更新によって、時刻ｔ０から所定の期間、ライトデータ信号Ｗ＿ＤＱの状態は無効状態ｉｎｖａｌｉｄとなる。ライトデータ信号Ｗ＿ＤＱの状態が無効状態ｉｎｖａｌｉｄである間、メモリ２０に対するライトデータ信号Ｗ＿ＤＱの内容の書き込み動作は無効となる。
【０１０６】
時刻ｔ０から所定の期間が経過後、ライトデータ信号Ｗ＿ＤＱの状態は有効状態ｖａｌｉｄとなる。ライトデータ信号Ｗ＿ＤＱの状態が有効状態ｖａｌｉｄである間、メモリ２０に対するライトデータ信号Ｗ＿ＤＱの内容の書き込み動作は有効となる。
【０１０７】
メモリ制御回路１０は、所定のクロックＣＬＫに基づいて、ライトデータストローブ信号Ｗ＿ＤＱＳの状態を遷移させ、メモリ２０にライトデータ信号Ｗ＿ＤＱの内容を記憶させる（即ち、時刻ｔ１）。時刻ｔ１から所定の期間が経過後、ライトデータ信号Ｗ＿ＤＱの状態は、有効状態ｖａｌｉｄから無効状態ｉｎｖａｌｉｄとなる。そして、メモリ制御回路１０は、上述した位相調整クロックＰＨ＿ＣＬＫに基づいて、ライトデータ信号Ｗ＿ＤＱの内容を更新する（即ち、時刻ｔ２）。
【０１０８】
メモリ制御回路１０がメモリ２０にライトデータ信号Ｗ＿ＤＱの状態を記憶させるためには、ライトデータ信号Ｗ＿ＤＱＳの状態が遷移するタイミング（即ち時刻ｔ１）に、ライトデータ信号Ｗ＿ＤＱの状態が有効状態ｖａｌｉｄである必要がある。メモリ制御回路１０は、例えば、ライトデータ信号Ｗ＿ＤＱの位相の走査範囲を仮想ライトデータ信号Ｗ＿ＤＱＵの位相から仮想ライトデータ信号Ｗ＿ＤＱＬの位相までに設定する。斯かる場合、メモリ制御回路１０は、該位相の走査範囲に、仮想ライトデータ信号Ｗ＿ＤＱＵ及びＷ＿ＤＱＬの位相を含めて、例えばＭ個の位相条件を用意する。
【０１０９】
そして、メモリ制御回路１０は、該用意した各位相条件に従って、ライトデータ信号Ｗ＿ＤＱの位相を設定し、各位相条件についてメモリ２０に対して書き込み動作及び読み出し動作を実行し、メモリ２０の動作の判定結果を記憶する。メモリ制御回路１０は、該記憶した判定結果に基づいて、各位相条件における評価値を算出し、該算出した評価値のうち一定の基準を満たす評価値（例えば最大値）に対応する位相条件に従って、ライトデータ信号Ｗ＿ＤＱの位相を設定する。
【０１１０】
図１０は、本発明の一実施形態に係るメモリ制御回路における各種の信号のタイミングチャートである。具体的には、図１０は、リードデータストローブ信号Ｒ＿ＤＱＳの位相の走査について説明するための、本発明の一実施形態に係るメモリ制御回路１０における各種の信号のタイミングチャートである。同図において、メモリ制御回路１０によってリードデータ信号Ｒ＿ＤＱが更新されるタイミングを時刻ｔ０と定義する。また、時刻ｔ０以降において、メモリ制御回路１０がリードデータストローブ信号Ｒ＿ＤＱＳの状態を遷移させる最初のタイミングを時刻ｔ１と定義する。また、時刻ｔ１以降において、メモリ制御回路１０によって、リードデータ信号Ｒ＿ＤＱが最初に更新されるタイミングを時刻ｔ２と定義する。
【０１１１】
同図において、仮想リードデータストローブ信号Ｒ＿ＤＱＳＬは、メモリ制御回路１０がリードデータストローブ信号Ｒ＿ＤＱＳの位相を進めた場合のリードデータ信号Ｒ＿ＤＱＳの仮想のタイミングチャートである。また、仮想リードデータ信号Ｒ＿ＤＱＳＵは、メモリ制御回路１０がリードデータストローブ信号Ｒ＿ＤＱＳの位相を遅らせた場合のリードデータ信号Ｒ＿ＤＱＳの仮想のタイミングチャートである。なお、ライトデータ信号Ｗ＿ＤＱ及びライトデータストローブ信号Ｗ＿ＤＱＳのタイミングチャートに関しては、上述した通りであるため、その説明を省略する。
【０１１２】
メモリ制御回路１０は、メモリ２０から出力されるデータ信号ＤＱに従って、リードデータ信号Ｒ＿ＤＱの内容を更新する（即ち、時刻ｔ０）。該更新によって、時刻ｔ０から所定の期間、リードデータ信号Ｒ＿ＤＱの状態は無効状態ｉｎｖａｌｉｄとなる。リードデータ信号Ｒ＿ＤＱの状態が無効状態ｉｎｖａｌｉｄである間、メモリ２０からのリードデータ信号Ｒ＿ＤＱの内容の読み出しは無効となる。
【０１１３】
時刻ｔ０から所定の期間が経過後、リードデータ信号Ｒ＿ＤＱの状態は有効状態ｖａｌｉｄとなる。リードデータ信号Ｒ＿ＤＱの状態が有効状態ｖａｌｉｄである間、メモリ２０からのリードデータ信号Ｒ＿ＤＱの内容の読み出しは有効となる。
【０１１４】
メモリ制御回路１０は、メモリ２０から出力されるデータストローブ信号ＤＱＳに従って、リードデータストローブ信号Ｒ＿ＤＱＳの状態を遷移させ、メモリ２０からリードデータ信号Ｒ＿ＤＱの内容を読み出す（即ち、時刻ｔ１）。また、時刻ｔ１から所定の期間が経過後、リードデータ信号Ｒ＿ＤＱの状態は有効状態ｖａｌｉｄから無効状態ｉｎｖａｌｉｄとなる。そして、メモリ制御回路１０は、メモリ２０から出力されるデータ信号ＤＱに従って、リードデータ信号Ｒ＿ＤＱの内容を更新する（即ち、時刻ｔ２）。
【０１１５】
上述したように、メモリ制御回路１０がメモリ２０からリードデータ信号Ｒ＿ＤＱの状態を読み出すためには、リードデータストローブ信号Ｒ＿ＤＱＳの状態が遷移するタイミング（即ち時刻ｔ１）に、リードデータ信号Ｒ＿ＤＱの状態が有効状態ｖａｌｉｄである必要がある。メモリ制御回路１０は、例えば、リードデータストローブ信号Ｒ＿ＤＱＳの位相の走査の範囲を仮想リードデータストローブ信号Ｒ＿ＤＱＳＬの位相から仮想リードデータストローブ信号Ｒ＿ＤＱＳＵの位相までに設定する。メモリ制御回路１０は、該位相の走査範囲に仮想リードデータストローブ信号Ｒ＿ＤＱＳＬ及びＲ＿ＤＱＳＵの位相を含めて、例えばＮ個の位相条件を用意する。
【０１１６】
そして、メモリ制御回路１０は、各位相条件に従ってリードデータストローブ信号Ｒ＿ＤＱＳの位相を設定し、各位相条件についてメモリ２０に対して書き込み動作及び読み出し動作を実行し、メモリ２０の動作の判定結果を記憶する。メモリ制御回路１０は、該記憶した判定結果に基づいて、各位相条件における評価値を算出し、該算出した評価値のうち一定の基準を満たす評価値（例えば最大値）に対応する位相条件に従って、リードデータストローブ信号Ｒ＿ＤＱＳの位相を設定する。
【０１１７】
図１１は、本発明の一実施形態に係る位相制御方法における各位相条件とメモリの動作の判定結果との対応関係を示す概念図である。同図において、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件ｒは列方向に対応し、ライトデータ信号Ｗ＿ＤＱの位相条件ｗは行方向に対応する。また、同図において、“○”は、メモリ２０に対する書き込み動作及び読み出し動作が正常に行われたという判定結果を示し、“×”はメモリ２０に対する書き込み動作及び読み出し動作が正常に行われなかったという判定結果を示す。また、同図において、“○”及び“×”のいずれの記載もない位相条件は、メモリ制御回路１０がメモリ２０に対して書き込み動作及び読み出し動作を未だ行っていない位相条件である。
【０１１８】
さらに、同図において、書き込み動作の位相条件の数Ｍ及び読み出し動作の位相条件の数Ｎは、説明の簡単のため、いずれも１６であると仮定する。なお、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件ｒ及びライトデータ信号Ｗ＿ＤＱの位相条件ｗは、典型的には、値が小さい程位相が進んだ位相条件であり、値が大きい程位相が遅れた位相条件であるが、これに限られるものではない。
【０１１９】
同図に示すように、メモリ制御回路１０は、例えば、リードデータストローブ信号Ｒ＿ＤＱＳの各位相条件ｒについて、ライトデータ信号Ｗ＿ＤＱの位相条件ｗを走査させながら、対応するメモリ２０の動作の判定結果を記憶する。これにより、メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱ及びリードデータストローブ信号Ｒ＿ＤＱＳの各位相条件に対応するメモリ２０の動作の判定結果を得る。
【０１２０】
例えば、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件ｒが６であり、かつ、ライトデータ信号Ｗ＿ＤＱの位相条件ｗが７である場合、メモリ２０の動作の判定結果は“○”である。即ち、メモリ制御回路１０がメモリ２０に対する書き込み動作及び読み出し動作の位相設定に該位相条件を適用した場合、メモリ２０に対する書き込み動作及び読み出し動作は正常に行われる。
【０１２１】
また、例えば、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件ｒが２であり、かつ、ライトデータ信号Ｗ＿ＤＱの位相条件ｗが１６である場合、メモリ２０の動作の判定結果は“×”である。即ち、メモリ制御回路１０がメモリ２０に対する書き込み動作及び読み出し動作の位相設定に該位相条件を適用した場合、メモリ２０に対する書き込み動作及び読み出し動作は正常に行われない。なお、ライトデータ信号Ｗ＿ＤＱの位相条件ｗ及びリードデータストローブ信号Ｒ＿ＤＱＳの位相条件ｒの走査方法は、これに限られるものではない。
【０１２２】
次に、書き込み動作及び読み出し動作の各位相条件における評価値の算出方法について、図１２及び図１３を参照しながら説明する。図１２は、本発明の一実施形態に係る位相制御方法において、各位相条件とメモリの動作の判定結果との対応関係を示す概念図である。同図は、上述した各位相条件と、メモリ２０の動作の判定結果との対応関係に対して、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件ｒと、ライトデータ信号Ｗ＿ＤＱの位相条件ｗとで定められる算出範囲αがさらに加えられたものである。なお、同図において、評価値の算出で選択する書き込み動作の位相条件の数ｍ及び読み出し動作の位相条件の数ｎの値は、説明の簡単のため、いずれも９であると仮定する。
【０１２３】
算出範囲αは、評価値の算出で使用する位相条件の範囲である。算出範囲αは、例えば、以下に示す条件１によって示される。
ｒ−ｄ＜αｒ＜ｒ＋ｄ  かつ  ｗ−ｃ＜αｗ＜ｗ＋ｃ    …＜条件１＞
ただし、αｒ及びαｗは、それぞれ算出範囲αに含まれるリードデータストローブ信号Ｒ＿ＤＱＳの位相条件及びライトデータ信号Ｗ＿ＤＱの位相条件である。
【０１２４】
例えば、評価値の算出対象の位相条件ｒ及びｗがいずれも８であると仮定する。斯かる場合、ｃ及びｄは、それぞれ（ｍ−１）／２及び（ｎ−１）／２より、いずれも４となる。従って、算出範囲αは、条件１に基づいて、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件ｒが４乃至１２であり、かつ、ライトデータ信号Ｗ＿ＤＱの位相条件ｗが４乃至１２である範囲となる。なお、算出範囲αは条件１に限られるものではない。
【０１２５】
同図に示すように、メモリ制御回路１０は、例えば、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件ｒのそれぞれに対して、ライトデータ信号Ｗ＿ＤＱの位相条件ｗを走査し、算出対象の位相条件に対応する算出範囲αに基づいて評価値を算出する。評価値の算出にあたって、メモリ制御回路１０は、算出範囲αに該当する各位相条件について、メモリ２０の動作の判定結果と、評価係数とを乗算する。メモリ制御回路１０は、算出範囲αに該当する各位相条件の乗算結果を合計し、該合計を該算出対象の位相条件における評価値として決定する。ここで、評価係数は、算出対象の位相条件と、算出範囲αに該当する各位相条件との位相差に従って予め定められるが、その詳細については後述する。
【０１２６】
これにより、メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱ及びリードデータストローブ信号Ｒ＿ＤＱＳの各位相条件に対応する評価値を得る。なお、ライトデータ信号Ｗ＿ＤＱの位相条件ｗ及びリードデータストローブ信号Ｒ＿ＤＱＳの位相条件ｒの走査方法は、上述した方法に限られるものではない。
【０１２７】
図１３は、本発明の一実施形態に係る位相制御方法において、算出対象の位相条件に対する位相差と、評価係数との対応関係を示す概念図である。同図において、算出対象の位相条件に対するリードデータストローブ信号Ｒ＿ＤＱＳの位相差Δｒは列方向に対応し、算出対象の位相条件に対するライトデータ信号ＤＱの位相差Δｗは行方向に対応する。また、各欄に記載される数字は、評価係数を示す。
【０１２８】
同図において、算出対象の位相条件に対する位相差Δｒ及びΔｗは、典型的には、値が小さい程算出対象の位相条件に対して進んだ位相差を示し、値が大きい程算出対象の位相条件に対して遅れた位相差を示すが、これに限られるものではない。
【０１２９】
評価係数は、算出対象の位相条件に対する位相差Δｒ及びΔｗに対応してその値が定められる。評価係数は、典型的には、算出対象の位相条件に対する位相差Δｒ及びΔｗの値の絶対値が小さい程、大きな値となる。また、評価係数は、算出対象の位相条件に対する位相差Δｒ及びΔｗの値が０以外である場合の全ての条件の評価係数の合計よりも、算出対象の位相条件に対する位相差Δｒ及びΔｗの値が０である場合の評価係数の値の方が大きくなるようにその値が定められる。これは、メモリ制御回路１０が、メモリ２０に対する書き込み動作及び読み出し動作の位相設定に、メモリ２０に対して書き込み及び読み出し動作が正常に行われない位相条件を適用しないためである。
【０１３０】
評価係数は、例えば、以下に示す条件２乃至条件４に基づいて決定される。
Δｒ＝０  かつ  Δｗ＝０    …＜条件２＞
｜Δｒ｜＜２  かつ  ｜Δｗ｜＜２    …＜条件３＞
｜Δｒ｜＜３  かつ  ｜Δｗ｜＜３  かつ  ｜Δｒ｜＋｜Δｗ｜＜４    …＜条件４＞
位相差Δｒ及びΔｗが条件２を満たす場合、評価係数は例えば１０００となる。また、位相差Δｒ及びΔｗが条件２を満たさず、かつ、条件３及び条件４を満たす場合、評価係数は例えば５となる。また、位相差Δｒ及びΔｗが条件４のみを満たす場合、評価係数は例えば２となる。さらに、位相差Δｒ及びΔｗが条件２乃至条件４のいずれも満たさない場合、評価係数は例えば１となる。また、該当する位相条件が存在しない場合、メモリ制御回路１０は、メモリ２０の動作判定の結果を“×”とみなして評価値の算出を行う。なお、算出対象の位相条件に対する位相差Δｒ及びΔｗと、評価係数との対応関係は、これに限られるものではない。
【０１３１】
図１３に示される算出範囲αを図１２に示されるメモリ２０の動作の判定結果と位相条件との対応関係において、算出対象の位相条件ｒ及びｗがいずれも８である場合に適用したと仮定する。斯かる場合、図１２及び図１３を参照して、該位相条件における評価値は、１０００×１＋５×８＋２×１２＋１×４３より、１１０７である。また、例えば、算出対象の位相条件ｒ及びｗがそれぞれ８及び１５である場合の評価値は、１０００×０＋５×０＋２×０＋１×９より、９である。
【０１３２】
このように、メモリ制御回路１０は、リードデータストローブ信号Ｒ＿ＤＱＳ及びライトデータストローブ信号Ｗ＿ＤＱの各位相条件について評価値を算出し、一定の基準を満たす評価値（例えば最大値）に対応する位相条件をメモリに対する書き込み動作及び読み出し動作の位相条件に決定する。
【０１３３】
図１４は、本発明の一実施形態に係る位相制御方法において、各位相条件と評価値との対応関係を示す概念図である。同図において、読み出し動作の位相条件ｒは列方向に対応し、書き込み動作の位相条件ｗは行方向に対応する。また、各欄の数字は、各位相条件における評価値である。例えば、同図において、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件ｒが１であり、ライトデータ信号Ｗ＿ＤＱの位相条件ｗが５である場合の評価値は７である。また、例えば、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件ｒが８であり、ライトデータ信号Ｗ＿ＤＱの位相条件ｗが６である場合の評価値は１０９８である。
【０１３４】
同図に示すように、メモリ制御回路１０は、各位相条件に対して評価値の算出を行い、算出した評価値と該評価値に対応する位相条件とを記憶する。メモリ制御回路１０は、同様に続く位相条件について評価値の算出を行い、算出した評価値が該記憶した評価値よりも大きいか否かを判断する。メモリ制御回路１０は、算出した評価値が該記憶した評価値よりも大きいと判断する場合、該記憶した評価値を算出した評価値に更新するとともに、該記憶した評価値に対応する位相条件を算出した評価値に対応する位相条件に更新する。一方、メモリ制御回路１０は、算出した評価値が該記憶した評価値よりも大きくないと判断する場合、さらに続く位相条件の評価値の算出の処理に進む。
【０１３５】
同図において、評価値は、位相条件ｒ及びｗがいずれも８である位相条件で１１０７となり、該評価値が本例における最大の評価値であることが分かる。従って、斯かる場合においては、メモリ制御回路１０は、リードデータストローブ信号Ｒ＿ＤＱＳ及びライトデータ信号Ｗ＿ＤＱＳの位相をそれぞれ位相条件ｒ及びｗが８である場合に対応する位相に設定する。これにより、メモリ制御回路１０は、メモリへのデータの書き込み及び読み出しに適した位相に、メモリ２０に対する書き込み動作及び読み出し動作の位相を容易に設定することができる。
【０１３６】
図１５は、本発明の一実施形態に係るメモリ制御回路における各種の信号のタイミングチャートである。具体的には、図１５は、本発明の一実施形態に係るメモリ制御回路１０がメモリ２０に対する書き込み動作及び読み出し動作の位相設定を行う前後の各種の信号のタイミングチャートである。同図において、メモリ制御回路１０による位相設定前にいて、ライトデータストローブ信号Ｗ＿ＤＱＳ及びリードデータストローブ信号Ｒ＿ＤＱＳの状態が遷移するタイミングを時刻ｔ１（０）と定義する。また、同図において、メモリ制御回路１０による位相設定後において、リードデータストローブ信号Ｒ＿ＤＱＳの状態が遷移するタイミングを時刻ｔ１（１）と定義する。
【０１３７】
同図において、仮想ライトデータ信号Ｗ＿ＤＱ（０）は、メモリ制御回路１０の位相設定前におけるライトデータ信号Ｗ＿ＤＱを示す仮想のタイミングチャートである。また、仮想リードデータストローブ信号Ｒ＿ＤＱＳ（０）は、メモリ制御回路１０の位相設定前におけるリードデータストローブ信号Ｒ＿ＤＱＳを示す仮想のタイミングチャートである。
【０１３８】
同図が示すように、時刻ｔ１（０）で、仮想ライトデータ信号Ｗ＿ＤＱ（０）及びリードデータ信号Ｒ＿ＤＱの状態はいずれも無効状態ｉｎｖａｌｉｄである。従って、メモリ制御回路１０が位相設定を行わない場合、メモリ制御回路１０はメモリ２０に対して書き込み動作及び読み出し動作を正常に行わない。
【０１３９】
メモリ制御回路１０の位相設定によって、仮想ライトデータ信号Ｗ＿ＤＱ（０）及び仮想リードデータストローブ信号Ｒ＿ＤＱＳ（０）の位相は、上述した算出方法によって求められる評価値に基づいて、それぞれ変更される。メモリ制御回路１０による位相設定によって、ライトデータ信号Ｗ＿ＤＱの状態は、時刻ｔ１（０）で有効状態ｖａｌｉｄとなり、また、リードデータ信号Ｒ＿ＤＱの状態は時刻ｔ１（１）で有効状態ｖａｌｉｄとなる。これにより、メモリ制御回路１０は、メモリ２０に対して書き込み動作及び読み出し動作を正常に行うことができるようになる。
【０１４０】
図１６は、本発明の一実施形態に係る位相の調整方法において、メモリ制御回路の動作を概略的に説明するためのフローチャートである。同図を参照して、メモリ制御回路１０は、まず、自身を位相走査モードに設定する（Ｓ１６０１）。
【０１４１】
次に、メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件及びリードデータストローブ信号Ｒ＿ＤＱＳの位相条件を走査しながら、各位相条件でメモリ２０に対して書き込み動作及び読み出し動作を実行する。メモリ制御回路１０は、メモリ２０に対して正常に書き込み動作及び読み出し動作が行えたか否かを判断し、該判断結果を各位相条件に対応するメモリ制御回路１０の領域に記憶する（Ｓ１６０２）。該処理の詳細に関しては、図１７を参照して説明される。
【０１４２】
次に、メモリ制御回路１０は、自身を位相走査モードから評価値算出モードに切り替える（Ｓ１６０３）。メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件及びリードデータストローブ信号Ｒ＿ＤＱＳの位相条件を走査しながら、各位相条件で評価値を算出する。メモリ制御回路１０は、各位相条件において算出した評価値のうち、一定の基準を満たす評価値（例えば、最大値）を選択し、該選択した評価値とそれに対応する位相条件とを記憶する（Ｓ１６０４）。該処理の詳細に関しては、図１８を参照して説明される。
【０１４３】
メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相と、リードデータストローブ信号Ｒ＿ＤＱＳの位相とを記憶した評価値に対応する位相条件が示す位相に設定し（Ｓ１６０５）、メモリ２０に対するデータ信号ＤＱ及びデータストローブ信号ＤＱＳの位相設定を終了する。
【０１４４】
図１７は、本発明の一実施形態に係る位相の調整方法において、メモリ制御回路の動作を概略的に説明するためのフローチャートであり、図１６におけるステップＳ１６０２の処理の詳細を示している。同図を参照して、メモリ制御回路１０は、まず、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件を初期化する。具体的には、メモリ制御回路１０は、位相走査を行う際の最初の位相条件に、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件を設定する（Ｓ１７０１）。
【０１４５】
メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件を初期化する。具体的には、メモリ制御回路１０は、位相走査を行う際の最初の位相条件に、ライトデータ信号Ｗ＿ＤＱの位相条件を設定する（Ｓ１７０２）。
【０１４６】
次に、メモリ制御回路１０は、現在の位相条件で、メモリ２０に対して書き込み動作及び読み出し動作を実行する（Ｓ１７０３）。メモリ制御回路１０は、リードデータ信号Ｒ＿ＤＱ０の内容が、ライトデータ信号Ｗ＿ＤＱ０の内容と一致するか否かを判断する（Ｓ１７０４）。メモリ制御回路１０は、該内容同士が一致すると判断する場合（Ｓ１７０４のＹｅｓ）、メモリ２０に対して正常に書き込み動作及び読み出し動作が行えたと判断し、現在の位相条件に対応するメモリ制御回路１０の領域に“ＰＡＳＳ”の結果を記憶する。一方、メモリ制御回路１０は、該内容同士が一致しないと判断する場合（Ｓ１７０４のＮｏ）、メモリ２０に対して正常に書き込み動作及び読み出し動作が行えないと判断し、現在の位相条件に対応するメモリ制御回路１０の領域に“ＦＡＩＬ”の結果を記憶する。
【０１４７】
メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件を更新する。具体的には、メモリ制御回路１０はライトデータ信号Ｗ＿ＤＱの位相条件を現在の位相条件に続く位相条件に設定する（Ｓ１７０７）。
【０１４８】
メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件の全てを使用したか否かを判断する（Ｓ１７０８）。メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件の全てを使用していないと判断する場合（Ｓ１７０８のＮｏ）、ステップＳ１７０３の処理に進む。一方、メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件の全てを使用したと判断する場合（Ｓ１７０８のＹｅｓ）、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件を更新する。具体的には、メモリ制御回路１０はリードデータ信号Ｒ＿ＤＱＳの位相条件を現在の位相条件に続く位相条件に設定する（Ｓ１７０９）。
【０１４９】
メモリ制御回路１０は、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件の全てを使用したか否かを判断する（Ｓ１７１０）。メモリ制御回路１０は、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件の全てを使用していないと判断する場合（Ｓ１７１０のＮｏ）、ステップＳ１７０２の処理に進む。一方、メモリ制御回路１０は、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件の全てを使用したと判断する場合（Ｓ１７１０のＹｅｓ）、各位相条件におけるメモリ２０の動作判定の結果の取得の処理を終了し、元のフローに戻る。
【０１５０】
図１８は、本発明の一実施形態に係る位相の調整方法において、メモリ制御回路の動作を概略的に説明するためのフローチャートであり、図１６におけるステップＳ１６０４の処理の詳細を示している。同図を参照して、メモリ制御回路１０は、まず、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件を初期化する。具体的には、メモリ制御回路１０は、位相走査を行う際の最初の位相条件に、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件を設定する（Ｓ１８０１）。
【０１５１】
メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件を初期化する。具体的には、メモリ制御回路１０は、位相走査を行う際の最初の位相条件に、ライトデータ信号Ｗ＿ＤＱの位相条件を設定する（Ｓ１８０２）。
【０１５２】
次に、メモリ制御回路１０は、現在の位相条件に対応する評価値を算出する（Ｓ１８０３）。メモリ制御回路１０は、算出した評価値と、暫定の最良の評価値とを比較し、暫定の最良の評価値より算出した評価値が大きいか否かを判断する（Ｓ１８０４）。メモリ制御回路１０は、暫定の最良の評価値より現在の評価値が大きくないと判断する場合（Ｓ１８０４のＮｏ）、ステップＳ１８０６の処理に進む。一方、メモリ制御回路１０は、暫定の最良の評価値より現在の評価値が大きいと判断する場合（Ｓ１８０４のＹｅｓ）、暫定の最良の評価値と、それに対応する暫定の最良の位相条件とをそれぞれ現在の評価と、それに対応する現在の位相条件とに更新する（Ｓ１８０５）。
【０１５３】
メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件を更新する。具体的には、メモリ制御回路１０はライトデータ信号Ｗ＿ＤＱの位相条件を現在の位相条件に続く位相条件に設定する（Ｓ１８０６）。
【０１５４】
メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件の全てを使用したか否かを判断する（Ｓ１８０７）。メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件の全てを使用していないと判断する場合（Ｓ１８０７のＮｏ）、ステップＳ１８０３の処理に進む。一方、メモリ制御回路１０は、ライトデータ信号Ｗ＿ＤＱの位相条件の全てを使用したと判断する場合（Ｓ１８０７のＹｅｓ）、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件を更新する。具体的には、メモリ制御回路１０は、現在の位相条件に続く位相条件に、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件を設定する（Ｓ１８０８）。
【０１５５】
メモリ制御回路１０は、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件の全てを使用したか否かを判断する（Ｓ１８０９）。メモリ制御回路１０は、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件の全てを使用していないと判断する場合（Ｓ１８０９のＮｏ）、ステップＳ１８０２の処理に進む。一方、メモリ制御回路１０は、リードデータストローブ信号Ｒ＿ＤＱＳの位相条件の全てを使用したと判断する場合（Ｓ１８０９のＹｅｓ）、最良の評価値の算出と、それに対応する最良の位相条件の取得の処理とを終了し、元のフローに戻る。
【０１５６】
次に、本実施形態に係るメモリ制御回路１０がメモリ２０に対する書き込み動作及び読み出し動作の位相設定を終えた後のメモリ制御回路１０の動作について説明する。まず、ライトデータ生成回路１２は、例えば外部の別の装置（図示せず）から出力される通常データを書き込み動作のデータ信号としてライト位相制御回路１４に出力する。次に、ライト位相制御回路１４は、位相演算回路１１によって設定された位相設定に従って、書き込み動作のデータ信号の位相を調整し、該データ信号をメモリ２０に出力する。
【０１５７】
メモリ２０は、データストローブ信号に基づいて、ライト位相制御回路１４によって位相が調整されたデータ信号が示す対象データを記憶するとともに、該対象データをデータ信号として該データ信号をラッチするタイミングを示すデータストローブ信号とともにリード位相制御回路１７に出力する。リード位相制御回路１７は、位相演算回路１１によって設定された位相設定に従って、メモリ２０から出力されるデータストローブ信号の位相を調整する。そして、リード位相制御回路１７は、該データストローブ信号に基づいて、メモリ２０から出力されるデータ信号が示す対象データをラッチして、例えばメモリ２０の記憶内容を必要とする外部の別の装置（図示せず）に該ラッチした対象データを出力する。
【０１５８】
上述したように、本実施形態に係るメモリ制御回路１０は、書き込み動作及び読み出し動作のライトデータ信号Ｗ＿ＤＱ及びリードデータストローブ信号Ｒ＿ＤＱＳの各位相条件について、メモリ２０に対して書き込み動作及び読み出し動作を実行する。メモリ制御回路１０は、該動作が正常に行われたか否かを判断し、該判断結果を各位相条件に対応するメモリ制御回路１０の領域に記憶する。そして、メモリ制御回路１０は、各位相条件について評価値を算出し、該算出した評価値のうち一定の基準を満たす評価値（例えば、最大値）に対応する位相条件を記憶し、該記憶した位相条件に従って、書き込み動作及び読み出し動作のライトイネーブル信号Ｗ＿ＤＱ及びリードデータストローブ信号Ｒ＿ＤＱＳの位相を設定する。
【０１５９】
従って、本実施形態に係るメモリ制御回路１０は、データ信号ＤＱの有効状態がデータ信号ＤＱのどの位相にあっても、メモリへのデータの書き込み及び読み出しに適した位相に、メモリ２０のデータ信号ＤＱ及びデータストローブ信号ＤＱＳの位相を容易に設定することができる。また、メモリ制御回路１０は、メモリ２０が正常に動作する書き込み動作及び読み出し動作のデータ信号ＤＱ及びデータストローブ信号ＤＱＳの位相条件の組み合わせが複雑である場合においても、メモリへのデータの書き込み及び読み出しに適した位相に、メモリ２０のデータ信号ＤＱ及びデータストローブ信号ＤＱＳの位相を容易に設定することができるようになる。
【０１６０】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
【０１６１】
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
【０１６２】
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ（技術的事項）を適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。
【産業上の利用可能性】
【０１６３】
本発明は、半導体集積回路の分野に広く利用することができる。
【符号の説明】
【０１６４】
１…半導体集積回路
１０…メモリ制御回路
１１…位相演算回路
１１１…コントローラ
１１２…ライトアドレス制御回路
１１３…リードアドレス制御回路
１１４…記憶装置
１１５…比較器
１１６…選択回路
１１７…フィルタ選択回路
１１８…評価値算出回路
１１８１…リセット信号生成回路
１１８２…マルチパス出力制御回路
１１８３，１１８４…加算回路
１１９…位相設定条件検出回路
１１９０，１１９１，１１９３，１１９５，１１９７，１１９８…出力制御回路
１１９２，１１９６，１１９９…選択回路
１１９４…比較器
１２…ライトデータ生成回路
１３…位相選択回路
１３１…走査制御回路
１３２…ライト位相走査回路
１３３，１３５…選択回路
１３４…リード位相走査回路
１４…ライト位相制御回路
１４１…遅延制御回路
１４２，１４３…出力制御回路
１４４…論理否定回路
１５Ａ，１５Ｂ…出力バッファ
１６Ａ，１６Ｂ…入力バッファ
１７…リード位相制御回路
１７１…遅延制御回路
１７２…出力制御回路
１８…比較器
１９…位相設定部
２０…メモリ
【図１】
2015219845.tif 000003
【図２】
2015219845.tif 000004
【図３】
2015219845.tif 000005
【図４】
2015219845.tif 000006
【図５】
2015219845.tif 000007
【図６】
2015219845.tif 000008
【図７】
2015219845.tif 000009
【図８】
2015219845.tif 000010
【図９】
2015219845.tif 000011
【図１０】
2015219845.tif 000012
【図１１】
2015219845.tif 000013
【図１２】
2015219845.tif 000014
【図１３】
2015219845.tif 000015
【図１４】
2015219845.tif 000016
【図１５】
2015219845.tif 000017
【図１６】
2015219845.tif 000018
【図１７】
2015219845.tif 000019
【図１８】
2015219845.tif 000020