(57)【要約】【課題】入力信号を取り込むタイミングのずれを補正すること。【解決手段】ＤＬＬ回路３１は、データストローブ信号ＤＱＳに基づいて、その信号ＤＱＳを遅延させた遅延信号ＤＱＳｄを生成する。遅延信号ＤＱＳｄは、位相（タイミング）が互いに異なる複数の遅延信号Ｓ（−ｎ）〜Ｓ（０）〜Ｓ（＋ｎ）を含む。ラッチ回路３２は、複数の遅延信号Ｓ（−ｎ）〜Ｓ（０）〜Ｓ（＋ｎ）によりデータＤＱをラッチした複数のラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）を出力する。位相調整回路３３は、複数のラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）に基づいて、データＤＱの第１遷移と第２遷移とを判定し、第１遷移と第２遷移とに応じた期間の中心タイミングを、基準遅延信号Ｓ（０）のタイミングを近づけるように、ＤＬＬ回路３１の遅延時間を調整する。【選択図】図２
2010272026.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なるタイミングに基づいて入力信号を取り込む複数の取込部と、
前記複数の取込部において前記入力信号を取り込むタイミングが隣接する取込部による取り込み結果に基づいて、前記入力信号の第１遷移と第２遷移とを判定する判定部と、
前記入力信号の取り込みタイミングを前記第１遷移と前記第２遷移とに応じた期間の中心タイミングに近づくように調整する調整部と、
を有することを特徴とするタイミング調整回路。
【請求項２】
前記調整部は、前記入力信号の前記取り込みタイミングとなる前記互いに異なるタイミングにおける中心タイミングを前記第１遷移と前記第２遷移とに応じた期間の中心タイミングに近づくように調整する
ことを特徴とする請求項１に記載のタイミング調整回路。
【請求項３】
前記判定部は、隣接する前記取込部の取り込み結果に応じた前記入力信号のレベルが互いに異なる場合に前記入力信号に遷移があると判定することを特徴とする請求項２に記載のタイミング調整回路。
【請求項４】
前記調整部は、前記複数の取込部による取り込み結果に前記第１遷移と前記第２遷移がそれぞれ含まれる場合に前記取り込み結果を有効と判定する、
ことを特徴とする請求項２又は３に記載のタイミング調整回路。
【請求項５】
前記判定部は、前記有効と判定した前記取り込み結果に基づいて前記第１遷移と前記第２遷移とに応じた期間の中心タイミングを算出し、
前記調整部は、前記判定部にて算出された期間の中心タイミングに、前記互いに異なるタイミングにおける中心タイミングを近づけるように、前記互いに異なるタイミングにおける中心タイミングを調整する、
ことを特徴とする請求項４に記載のタイミング調整回路。
【請求項６】
前記判定部は、算出した中心タイミングに応じた期間中心値を出力し、
前記調整部は、前記判定部から出力される複数の期間中心値の平均値を算出し、前記複数の期間中心値の平均値に応じたタイミングに、前記互いに異なるタイミングにおける中心タイミングを近づけるように、前記中心タイミングを調整する、
ことを特徴とする請求項５に記載のタイミング調整回路。
【請求項７】
前記入力信号は、複数のビットを含み、
前記判定部は、前記入力信号に含まれる各ビットの取り込み結果を、各ビットに対して前記第１遷移と前記第２遷移とを判定する
ことを特徴とする請求項２〜６の何れか１項に記載のタイミング調整回路。
【請求項８】
前記調整部は、前記判定部の判定結果に基づいて、前記入力信号を取り込むタイミング毎に各ビットの取り込み結果を論理演算し、その演算結果に基づいて前記第１遷移と前記第２遷移とに応じた期間の中心タイミングに、前記互いに異なるタイミングにおける中心タイミングを近づけるようにその中心タイミングを調整することを特徴とする請求項７に記載のタイミング調整回路。
【請求項９】
前記調整部は、前記判定部により有効と判定された前記取り込み結果を前記入力信号を取り込むタイミング毎に累積し、各タイミングの累積結果に基づいて前記第１遷移と前記第２遷移とに応じた期間の中心タイミングを算出することを特徴とする請求項４に記載のタイミング調整回路。
【請求項１０】
互いに異なる複数のタイミングに基づいて入力信号を取り込み、
前記入力信号を取り込む複数のタイミングのうち、隣接するタイミングによる取り込み結果に基づいて、前記入力信号の第１遷移と第２遷移とを判定し、
前記入力信号の取り込みタイミングを前記第１遷移と前記第２遷移とに応じた期間の中心タイミングに近づくように調整する、
ことを特徴とするタイミング調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
タイミング調整回路及びタイミング調整方法に関するものである。
【背景技術】
【０００２】
従来、半導体記憶装置としてＤＲＡＭ(Dynamic Random Access Memory)が用いられている。また、近年では、システムの動作速度の高速化に対応するため、高速なデータ転送方式としてダブルデータレート方式が採用されている。このような半導体記憶装置はＤＤＲ−ＳＤＲＡＭ(Double Data Rate Synchronous DRAM )やＤＤＲ２−ＳＤＲＡＭと呼ばれる。
【０００３】
ダブルデータレート方式のＳＤＲＡＭ（以下、単にメモリという）は、データストローブ信号に同期してデータを出力する。メモリに接続されたシステム回路に含まれるメモリコントローラは、同システム回路に含まれるＣＰＵからの要求に応答してメモリをアクセスする。メモリコントローラは、図１２に示すように、遅延ロックループ（Delay Locked Loop:ＤＬＬ）回路１０１とフリップフロップ回路１０２，１０３を含む。ＤＬＬ回路１０１は、図１３に示すように、データストローブ信号ＤＱＳを所定時間遅延した遅延データストローブ信号（以下、単に遅延信号という）ＤＱＳｄを生成する。フリップフロップ回路１０２は、遅延信号ＤＱＳｄに応答してデータＤＱをラッチする。フリップフロップ回路１０３は、システム側のクロック信号（不図示）に応答してフリップフロップ回路１０２の出力信号をラッチする。このフリップフロップ回路１０３の出力信号が、システム回路のリードデータＲＤとして使用される。
【０００４】
なお、図１２には図示しないが、ＤＬＬ回路１０１は、遅延信号ＤＱＳｄと位相が１８０度異なる第２の遅延信号を生成する。そして、メモリコントローラは、第２の遅延ストローブ信号によりデータＤＱをラッチするフリップフロップ回路を含む。このフリップフロップ回路と上記のフリップフロップ回路１０２，１０３により、データストローブ信号ＤＱＳの立ち上がりエッジと立ち下がりエッジとに同期して出力されるデータを取り込む。
【０００５】
上記の構成により、システム回路は、データストローブ信号ＤＱＳの立ち上がりエッジと立ち下がりエッジとに同期して入力信号、つまりデータＤＱを取り込む。メモリは、データストローブ信号ＤＱＳに同期してデータＤＱを出力する。ＤＬＬ回路１０１における遅延時間を、データストローブ信号ＤＱＳの周期の１／４（位相では９０度）とすることにより、遅延信号ＤＱＳｄにてフリップフロップ回路１０２がデータＤＱを取り込むタイミングを、そのデータＤＱの有効期間の中心（パルスの中心）とすることにより、データＤＱを確実に取り込むことができる。
【０００６】
ところで、システム回路を形成するプロセスにおける変動等の要因により、回路毎（チップ毎）に配線の遅延時間が異なる場合がある。このような場合、フリップフロップ回路１０２における遅延信号ＤＱＳｄの到達時刻とデータＤＱの到達時刻にずれが生じる、即ち、遅延信号ＤＱＳｄのエッジタイミングが、データＤＱの有効期間の中心からずれる。転送速度が高いシステム回路では、データＤＱの有効期間が短いため、データＤＱと遅延信号ＤＱＳｄのタイミングのずれは、フリップフロップ回路１０２，１０３に間違ったデータをラッチさせる、即ちリードデータＲＤに誤りを生じさせる。
【０００７】
このため、システム回路に含まれる回路には、例えば起動時などのタイミングで、ＤＬＬ回路１０１の遅延時間を変更して所定値のデータを読み込む動作を繰り返すことにより、遅延時間を調整するトレーニング動作（タイミングキャリブレーション）を行うものがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−０９１４５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、データＤＱと遅延信号ＤＱＳｄとの間の相対的なタイミングのずれは、システム回路の環境温度の変化や、システム回路の動作電源電圧の変化によりも生じる。このようなタイミングのずれは、リードデータＲＤに誤りを生じさせる。なお、トレーニング動作を再度実行すると、トレーニング動作はメモリをアクセスするシステム回路におけるリードライト動作に対してオーバーヘッドとなる。
【課題を解決するための手段】
【００１０】
本発明の一側面によれば、互いに異なるタイミングに基づいて入力信号を取り込む複数の取込部と、前記複数の取込部において前記入力信号を取り込むタイミングが隣接する取込部による取り込み結果に基づいて、前記入力信号の第１遷移と第２遷移とを判定する判定部と、前記入力信号の取り込みタイミングを前記第１遷移と前記第２遷移とに応じた期間の中心タイミングに近づくように調整する調整部と、を有する。
【発明の効果】
【００１１】
本発明の一側面によれば、入力信号を取り込むタイミングのずれが補正される。
【図面の簡単な説明】
【００１２】
【図１】システムの概略構成図である。
【図２】インタフェース回路の概略構成図である。
【図３】ＤＬＬ回路の動作を示す波形図である。
【図４】（ａ）（ｂ）はＤＬＬ回路の一例を示す回路図である。
【図５】ラッチ回路の一例を示す回路図である。
【図６】位相調整回路のブロック回路図である。
【図７】中心位置演算処理の説明図である。
【図８】位相調整回路のブロック回路図である。
【図９】中心位置演算処理の説明図である。
【図１０】位相調整回路のブロック回路図である。
【図１１】データ判定処理の説明図である。
【図１２】従来のインタフェース回路の回路図である。
【図１３】従来のインタフェース回路の動作波形図である。
【発明を実施するための形態】
【００１３】
（第１実施形態）
以下、第１実施形態を図面に従って説明する。
図１に示すように、このシステムは、システム回路１１とメモリ１２を含む。このシステム回路１１は、システム装置の一例として挙げられる。メモリ１２は、対象回路の一例として挙げられる。システム回路１１は、例えば１つのチップ（半導体集積回路装置：ＬＳＩ）であって、コア論理回路（以下、単にコア回路という）２１とメモリコントローラ２２とインタフェース回路２３を含む。メモリ１２は、同期式の半導体記憶装置であり、例えばダブルデータレート方式のダイナミックランダムアクセスメモリ（Double Data Rate Synchronous Dynamic Random Access Memory：DDR−SDRAM）である。
【００１４】
コア回路２１は、例えばＣＰＵであり、実行する処理に応じて、メモリ１２のデータを読み込むためのリード要求と、そのデータが格納されたアドレスをメモリコントローラ２２に出力する。また、コア回路２１は、メモリ１２にデータを書き込むためのライト要求と、そのデータを格納するアドレスをメモリコントローラ２２に出力する。
【００１５】
メモリコントローラ２２は、コア回路２１からの要求に応じて、インタフェース回路２３を介してメモリ１２をアクセスする。例えば、コア回路２１からの要求が書き込みの場合、コントローラ２２は、インタフェース回路２３を介してコマンド、アドレス及びデータをメモリ１２に供給し、メモリ１２は、そのデータを該当するアドレスに記憶する。また、コア回路２１からの要求が読み出しの場合、コントローラ２２は、インタフェース回路２３を介してメモリ１２から読み出したデータをコア回路２１に出力する。
【００１６】
図２に示すように、メモリ１２とインタフェース回路２３は、データストローブ信号ＤＱＳによりデータＤＱの授受を行うように構成されている。このように、メモリ１２とメモリコントローラ２２との間に介在されたインタフェース回路２３は、物理層回路（DDR−PHY ）と呼ばれる。
【００１７】
インタフェース回路２３は、遅延同期ループ（Delay Locked Loop:ＤＬＬ）回路（以下、ＤＬＬ回路という）３１、ラッチ回路３２、位相調整回路３３を含む。
ＤＬＬ回路３１は、データストローブ信号ＤＱＳに基づいて、その信号ＤＱＳを遅延させた遅延データストローブ信号（以下、単に遅延信号という）ＤＱＳｄを生成する。遅延信号ＤＱＳｄは、複数の遅延データストローブ信号（遅延信号）を含む。本実施形態では、図３に示すように、遅延信号ＤＱＳｄは、基準遅延信号Ｓ（０）を中心として、その基準遅延信号Ｓ（０）よりも位相が遅れた複数（ｎ個）の遅延信号Ｓ（＋１）〜Ｓ（＋ｎ）と、基準遅延信号Ｓ（０）よりも位相が進んだ複数（ｎ個）の遅延信号Ｓ（−ｎ）〜Ｓ（−１）を含む。各遅延信号Ｓ（−ｎ）〜Ｓ（０）〜Ｓ（＋ｎ）はそれぞれ位相が異なる信号である。
【００１８】
各遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）は、データストローブ信号ＤＱＳを遅延させたものであるから、同信号ＤＱＳと同じ波形である。従って、各遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）は、それぞれの位相に応じたタイミングで遷移する。つまり、ＤＬＬ回路３１は、互いに異なるタイミングで遷移する複数の遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）を生成する。そして、ＤＬＬ回路３１は、基準遅延信号Ｓ（０）を中心として各遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）を生成する。従って、基準遅延信号Ｓ（０）のタイミングが、複数の遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）のタイミングの中心タイミングとなる。
【００１９】
そして、「ｎ」は、基準遅延信号Ｓ（０）のタイミング（中心タイミング）から各遅延信号のタイミングまでの番号である。この番号ｎは、基準遅延信号Ｓ（０）と他の遅延信号Ｓ（−ｎ）〜Ｓ（−１），Ｓ（＋１）〜Ｓ（＋ｎ）の位相差（タイミング差）を示す。そして、番号における符号は、基準遅延信号Ｓ（０）に対する他の遅延信号の位相の進み又は遅れ、つまりタイミングが早いか遅いかを示す。
【００２０】
最も位相が遅れた遅延信号（最遅遅延信号）Ｓ（＋ｎ）と、最も位相が進んだ遅延信号（最進遅延信号）Ｓ（−ｎ）との位相差は、１つのデータＤＱを判別可能な時間、例えばデータＤＱのパルス幅に応じて設定されている。メモリ１２は、データストローブ信号ＤＱＳの立ち上がりエッジと立ち下がりエッジとに同期してデータＤＱを出力する。従って、「１」又は「０」のデータＤＱのパルス幅は、データストローブ信号ＤＱＳの立ち上がりエッジから立ち下がりエッジまでの時間に対応する。データＤＱを正しくラッチするためには、「１」又は「０」のパルスの中心でラッチすることが好ましい。つまり、データストローブ信号ＤＱＳを遅延させた信号のエッジ、即ち信号が遷移するタイミングをパルスの中心に合わせる必要がある。
【００２１】
同じデータ、例えば「１」が連続する場合、その連続するデータの間、データＤＱはＨレベルとなるため、１つのデータＤＱのパルス中心を検出することはできない。従って、「１」又は「０」のデータＤＱのパルスの中心は、時間に従って転送されるデータ列が、「０１０」又は「１０１」のときに、検出することができる。このデータ列において、データＤＱが「１」又は「０」であるときのパルス幅は、データストローブ信号ＤＱＳの周期の１／２となる。
【００２２】
そして、「１」のパルスを検出するためには、データＤＱが遷移する期間、即ちデータＤＱがＬレベルからＨレベルに遷移するタイミングから、データＤＱがＨレベルからＬレベルに遷移するタイミングまでの期間よりも長い期間でデータＤＱをサンプリングする必要がある。なお、「１」及び「０」のパルス幅は、データＤＱを伝達する経路上の特性（配線や回路の遅延、回路の出力部のバランス、しきい値レベル、等）に応じて変化する。この変化により、データＤＱのパルス幅が、データストローブ信号ＤＱＳの周期の１／２よりも短くなる場合がある。従って、最も位相が遅れた遅延信号Ｓ（＋ｎ）と、最も位相が進んだ遅延信号Ｓ（−ｎ）との位相差を、データＤＱとデータストローブ信号ＤＱＳの遅延時間差と、上記の変化（配線遅延や温度変化等）を考慮して、この１つのデータＤＱのパルスを包含し、データＤＱの立ち上がりエッジ及び立ち下がりエッジを検出できるように設定する。なお、本実施形態では一例として３６０度の位相差に設定されている。つまり、本実施形態のＤＬＬ回路３１は、３６０度の位相の範囲内で、複数の遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）を生成する。
【００２３】
ＤＬＬ回路３１が生成する遅延信号の数（２ｎ＋１）は、上記の位相差（＝３６０度）を分割する数（２ｎ）に対応し、遅延信号のうちの１つがデータＤＱのデータアイ（「１」又は「０」が確定している期間）の中心に対応するように、ＤＬＬ回路３１の構成に応じて設定される。ＤＬＬ回路３１には、メモリコントローラ２２から設定コードＤＣ１が供給され、後述する位相調整回路３３から設定コードＤＣ２が供給される。ＤＬＬ回路３１は、設定コードＤＣ１，ＤＣ２に応じた遅延時間を、データストローブ信号ＤＱＳのタイミングに対する遅延信号ＤＱＳｄの中心タイミング、つまり基準遅延信号Ｓ（０）の遅延時間とするように、各遅延信号Ｓ（−ｎ）〜Ｓ（０）〜Ｓ（＋ｎ）を生成する。
【００２４】
ラッチ回路３２は、複数の遅延信号Ｓ（−ｎ）〜Ｓ（０）〜Ｓ（＋ｎ）に対応する複数（（２ｎ＋１）個）のラッチを含み、各遅延信号Ｓ（−ｎ）〜Ｓ（０）〜Ｓ（＋ｎ）によりそれぞれデータＤＱをラッチする。そして、ラッチ回路３２は、基準遅延信号Ｓ（０）によりデータＤＱをラッチしたデータに基づく信号を、リードデータＲＤａとして出力する。また、ラッチ回路３２は、各遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）によりデータＤＱをラッチした複数のラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）を出力する。このラッチ回路３２は取込部の一例として挙げられる。
【００２５】
上記のメモリコントローラ２２は、所定のタイミングで、データストローブ信号ＤＱＳのトレーニング動作を行うように構成されている。所定のタイミングは、例えば、電源投入後に実行される初期化処理のとき、パワーオンリセット信号が入力されてから一定期間の後、等のように、コア回路２１がメモリ１２をアクセスしない期間である。
【００２６】
トレーニング動作の一例を説明する。なお、メモリコントローラ２２の動作に対して、上記の遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）のうち、基準遅延信号Ｓ（０）のみが関係するため、この信号について記述する。
【００２７】
先ず、メモリコントローラ２２は、メモリ１２の所定のアドレスＡ１に所定のデータＴｄを書き込む。そして、所定の設定コードをＤＬＬ回路３１に供給し、そのＤＬＬ回路３１は、設定コードに応じた時間、データストローブ信号ＤＱＳから遅延した基準遅延信号Ｓ（０）を生成する。
【００２８】
次に、コントローラ２２は、メモリ１２のアドレスＡ１からデータＴｄ（リードデータＲＤａ）を読み込み、基準遅延信号Ｓ（０）の遅延時間を変更（例えば増加）するように設定コードをＤＬＬ回路３１に供給する。このデータＴｄの読み込みと、基準遅延信号Ｓ（０）の遅延時間の変更とを、繰り返すことにより、複数の遅延時間に対応するタイミングにて取り込んだデータＴｄを記憶する。この複数のデータＴｄは、取込タイミングを変更することで、データＴｄの論理レベルに応じたパルス波形を示す。従って、コントローラ２２は、このパルス波形から、データＴｄのパルス中心に対応するタイミング、即ち設定コードＤＣ１を検出する。そして、コントローラ２２は、検出した設定コードＤＣ１をＤＬＬ回路３１に供給する。
【００２９】
ＤＬＬ回路３１は、コントローラ２２から供給される設定コードＤＣ１を記憶し、その設定コードＤＣ１に応じた遅延時間（タイミング）にて、遅延信号Ｓ（０）、即ち各遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）を生成する。このような、コントローラ２２によるトレーニング動作によって、データＤＱに対してＤＬＬ回路３１にて生成される遅延信号ＤＱＳｄのタイミングのずれが補正される。なお、このトレーニング動作は、遅延信号ＤＱＳｄの遅延時間を変更しながらメモリ１２からデータＴｄを読み出すことにより、図１に示すコア回路２１がリード動作を行うときには実行不可能である。言い換えれば、メモリコントローラ２２は、コア回路２１がメモリ１２に対するリード動作を行わない期間に、上記のトレーニング動作を行う。
【００３０】
図２に示す位相調整回路３３は、複数のラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）のうち、有効なラッチデータにおける中心位相（中心タイミング）を検出する。そして、位相調整回路３３は、検出した中心タイミングに、基準遅延信号Ｓ（０）のタイミングを近づけるように、設定コードＤＣ２を生成し、その設定コードＤＣ２をＤＬＬ回路３１に供給する。ＤＬＬ回路３１は、その設定コードＤＣ２に応じた遅延時間（タイミング）にて、遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）を生成する。即ち、位相調整回路３３は、検出した中心タイミングに、基準遅延信号Ｓ（０）のタイミングを近づけるように、ＤＬＬ回路３１の遅延時間を調整する。この位相調整回路３３は、タイミング調整回路、判定部、調整部の一例として挙げられる。
【００３１】
有効なラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）は、上記の１つのデータＤＱのパルス中心が判定可能な信号である。複数のラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）のレベルは、データＤＱを複数の遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）で取り込んだレベル、即ち互いに異なるタイミングにてデータＤＱを取り込んだレベルである。従って、ラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）のレベルは、データＤＱのレベル変化に対応する。上記したように、パルス中心が判定可能なデータＤＱの信号列、つまり波形変化は、「０１０」又は「１０１」である。つまり、複数の遅延信号Ｓ（〜ｎ）〜Ｓ（＋ｎ）による取込期間において、データＤＱの波形は、「０」から「１」への遷移（第１遷移）と、「１」から「０」への遷移（第２遷移）とを含む。従って、位相調整回路３３は、第１遷移と第２遷移とが存在するラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）を有効と判定し、第１遷移と第２遷移の何れか一方が存在する、又は何れも存在しないラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）を無効と判定する。
【００３２】
上記遷移の有無は、ラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）を取り込むタイミングが隣接する信号レベルにより判定できる。即ち、ラッチ回路３２は、位相が異なる遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）によりデータＤＱをラッチしてラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）を生成する。従ってデータＤＱの信号レベルが変化していれば、タイミングが隣接する２つのラッチ信号のレベルが異なる。従って、タイミングが隣接する２つのラッチ信号の信号レベルを比較し、それらの信号レベルが異なる場合に、それらのタイミングの間に遷移があることが判定できる。
【００３３】
第１遷移と第２遷移の間隔は、「１」又は「０」のデータＤＱのパルス幅に対応する。従って、位相調整回路３３は、ラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）における第１遷移と第２遷移とを判定し、第１遷移と第２遷移に応じた期間の中心タイミングを検出する。そして、位相調整回路３３は、期間の中心タイミングに、遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）の中心タイミング、即ち基準遅延信号Ｓ（０）のタイミングを近づけるように、各遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）のタイミング、即ちＤＬＬ回路３１の遅延時間を調整する。
【００３４】
ラッチ回路３２は、この調整された基準遅延信号Ｓ（０）によりデータＤＱをラッチしてリードデータＲＤａを出力する。上記したように、基準遅延信号Ｓ（０）のタイミングは、メモリ１２から読み出されたデータＤＱのパルスの中心タイミングに近づくように調整されているため、データＤＱとデータストローブ信号ＤＱＳとの間に発生する位相ずれを低減することができる。
【００３５】
また、位相調整回路３３は、データＤＱの第１遷移と第２遷移とを判定する。図１に示すコア回路２１からの要求に応じてメモリ１２から読み出されるデータＤＱは、例えば同じレベルが連続するような場合もあり、信号レベルがランダムに変化する。そして、位相調整回路３３は、信号レベルがランダムに変化するデータＤＱにあって、第１遷移と第２遷移とを判定して、第１遷移と第２遷移とに応じた期間の中心タイミングに応じてＤＬＬ回路３１が生成する遅延信号ＤＱＳｄの中心タイミング（基準遅延信号Ｓ（０）のタイミング）を調整する。従って、コア回路２１がメモリ１２からデータＤＱを読み出す場合、読み出されたデータＤＱを利用して遅延信号ＤＱＳｄのタイミング調整を行ってよいため、タイミング調整のためにコア回路２１の読み出し動作を抑制（停止）させなくてもよく、メモリ１２からのデータ読み出しに対するオーバーヘッドを低減することができる。
【００３６】
次に、ＤＬＬ回路３１、ラッチ回路３２、位相調整回路３３の構成例を説明する。
なお、説明及び図面の便宜上、上記の遅延信号における個数ｎを「３」として説明する。従って、本実施形態のＤＬＬ回路３１は、互いに位相（タイミング）が異なる７つの遅延信号Ｓ（−３）〜Ｓ（０）〜Ｓ（＋３）を生成する。
【００３７】
図４（ａ）に示すように、ＤＬＬ回路３１は、遅延部３１ａとＤＬＬ部３１ｂを含む。
遅延部３１ａは、データストローブ信号ＤＱＳに基づく遅延信号ＤＱＳ２を生成する。更に、遅延部３１ａは、データストローブ信号ＤＱＳに対する遅延信号ＤＱＳ２の遅延時間を、メモリコントローラ２２（図２参照）から供給される設定コードＤＣ１に応じた時間とする。つまり、遅延部３１ａは、設定コードＤＣ１に応じた時間、データストローブ信号ＤＱＳを遅延させて遅延信号ＤＱＳ２を生成する。
【００３８】
ＤＬＬ部３１ｂは、遅延信号ＤＱＳ２に基づいて、互いに位相が異なる、つまり互いに異なるタイミングの遅延信号Ｓ（−３）〜Ｓ（＋３）を生成する。更に、ＤＬＬ部３１ｂは、遅延信号ＤＱＳ２に対する基準遅延信号Ｓ（０）の遅延時間を、位相調整回路３３（図２参照）から供給される設定コードＤＣ２に応じた時間とする。
【００３９】
図４（ｂ）に示すように、ＤＬＬ部３１ｂは、レジスタ４１、遅延回路４２，４３、スイッチ制御回路４４を含む。
第１の遅延回路４２は、複数の遅延素子４２ａ〜４２ｇと、複数のスイッチＳＷ１ａ〜ＳＷ１ｇを含む。複数の遅延素子４２ａ〜４２ｇは直列に接続されている、即ち各遅延素子４２ａ〜４２ｆの出力端子は遅延素子４２ｂ〜４２ｇの入力端子にそれぞれ接続されている。そして、初段の遅延素子４２ａにはデータストローブ信号ＤＱＳが入力されている。また、各遅延素子４２ａ〜４２ｇの出力端子にはスイッチＳＷ１ａ〜ＳＷ１ｇの第１端子がそれぞれ接続され、各スイッチＳＷ１ａ〜ＳＷ１ｇの第２端子は相互に接続され、その接続点は第２の遅延回路４３に接続されている。
【００４０】
各遅延素子４２ａ〜４２ｇは例えば直列接続された偶数個のインバータ回路を含み、入力信号を遅延した信号を出力する。入力信号に対する出力信号の遅延時間は、遅延素子４２ａ〜４２ｇの構成に基づく。スイッチＳＷ１ａ〜ＳＷ１ｇは、例えばＮチャネルＭＯＳトランジスタやＣＭＯＳ構造のアナログスイッチであり、スイッチ制御回路４４から供給される信号に応答してオンオフする。
【００４１】
スイッチ制御回路４４は、複数のスイッチＳＷ１ａ〜ＳＷ１ｇのうち、レジスタ４１に記憶された設定コードＤＣ２に対応する１つのスイッチをオンし、他のスイッチをオフする。従って、第１の遅延回路４２は、レジスタ４１の値に応じた１つのスイッチをオンすることにより、オンしたスイッチまでの遅延素子の段数に応じた遅延をデータストローブ信号ＤＱＳに加えた遅延信号ＤＤＱＳを生成する。
【００４２】
第２の遅延回路４３は、複数（７個）の遅延素子４３ａ〜４３ｇを含む。遅延素子４３ａ〜４３ｇは直列に接続されている、即ち各遅延素子４３ａ〜４３ｆの出力端子は遅延素子４３ｂ〜４３ｇの入力端子にそれぞれ接続されている。そして、初段の遅延素子４３ａには、第１の遅延回路４２により生成された遅延信号ＤＤＱＳが供給される。各遅延素子４３ａ〜４３ｇは、例えば直列接続された偶数個のインバータ回路を含み、入力信号を遅延した信号を出力する。入力信号に対する出力信号の遅延時間は、遅延素子４３ａ〜４３ｇの構成に基づく。そして、各遅延素子４３ａ〜４３ｇは、それぞれ遅延信号Ｓ（−３）〜Ｓ（＋３）を出力する。
【００４３】
上記したように、スイッチ制御回路４４は、レジスタ４１に記憶された設定コードＤＣ２に応じた１つのスイッチをオンする。変更した設定コードＤＣ２をレジスタ４１に格納することにより、遅延信号ＤＱＳ２、即ちデータストローブ信号ＤＱＳに対する遅延信号ＤＤＱＳの遅延時間を変更する。従って、ＤＬＬ部３１ｂは、設定コードＤＣ２に応じて、遅延信号ＤＱＳ２に対する基準遅延信号Ｓ（０）の遅延時間を調整し、その遅延信号Ｓ（０）を含む複数の遅延信号Ｓ（−３）〜Ｓ（＋３）を生成する。従って、設定コードＤＣ２を変更することにより、データストローブ信号ＤＱＳに対する各遅延信号Ｓ（−３）〜Ｓ（＋３）の位相差、つまり各遅延信号Ｓ（−３）〜Ｓ（＋３）のタイミングを変更することができる。
【００４４】
図５に示すように、ラッチ回路３２は、ラッチ回路５１，５２を含む。第１のラッチ回路５１は、遅延信号Ｓ（−３）〜Ｓ（＋３）に応答してラッチデータＤ（−３）〜Ｄ（＋３）を生成する。第２のラッチ回路５２は基準遅延信号Ｓ（０）に応答してリードデータＲＤａを生成する。
【００４５】
第１のラッチ回路５１は、位相（タイミング）が互いに異なる複数の遅延信号Ｓ（−３）〜Ｓ（＋３）によりデータＤＱをラッチするラッチ部５３と、そのラッチ部５３にてラッチしたデータを位相調整回路３３（図２参照）に受け渡すためのラッチ部５４を含む。
【００４６】
第１のラッチ部５３は、遅延信号Ｓ（−３）〜Ｓ（＋３）に対応する複数（７個）のフリップフロップ回路（以下、ＦＦ回路という）５３ａ〜５３ｇを含む。ＦＦ回路５３ａのデータ端子ＤにはデータＤＱが供給され、クロック端子には対応する遅延信号Ｓ（−３）が供給される。ＦＦ回路５３ａは、遅延信号Ｓ（−３）に応答して、その遅延信号Ｓ（−３）の立ち上がりエッジに同期してデータＤＱをラッチし、そのラッチレベルと等しいレベルのラッチデータＬＤａを出力端子Ｑから出力する。同様に、各ＦＦ回路５３ｂ〜５３ｇは、データ端子Ｄに供給されるデータＤＱを、それぞれに対応する遅延信号Ｓ（−２）〜Ｓ（＋３）の立ち上がりエッジに同期してラッチし、そのラッチレベルと等しいレベルのラッチデータＬＤｂ〜ＬＤｇをそれぞれ出力する。
【００４７】
第２のラッチ部５４は、第１のラッチ部５３にて生成されたラッチデータＬＤａ〜ＬＤｇに対応する複数（７個）のＦＦ回路５４ａ〜５４ｇを含む。ＦＦ回路５４ａのデータ端子Ｄには対応するラッチデータＬＤａが供給され、クロック端子にはクロック信号ＣＫ１が供給される。
【００４８】
クロック信号ＣＫ１は、例えばラッチデータＤ（−３）〜Ｄ（＋３）を受け取り、各ラッチデータを処理する回路、即ち図２に示す位相調整回路３３から供給される。位相調整回路３３は、基準遅延信号Ｓ（０）に基づいて、第１のラッチ部５３にて生成されたラッチデータＬＤａ〜ＬＤｇを取り込むようにクロック信号ＣＫ１を生成する。例えば、位相調整回路３３は、基準遅延信号Ｓ（０）の周波数と等しく、信号Ｓ（０）より所定時間遅延したクロック信号ＣＫ１を生成する。基準遅延信号Ｓ（０）に対するクロック信号ＣＫ１の遅延時間は、基準遅延信号Ｓ（０）に応答してデータＤＱをラッチしたＦＦ回路５３ｄの出力信号をＦＦ回路５４ｄにてラッチするように設定されている。
【００４９】
ＦＦ回路５４ａは、クロック信号ＣＫ１に応答して、そのクロック信号ＣＫ１の立ち上がりエッジに同期してラッチデータＬＤａをラッチし、そのラッチレベルと等しいレベルのラッチデータＤ（−３）を出力端子Ｑから出力する。同様に、ＦＦ回路５４ｂ〜５４ｇは、データ端子Ｄにそれぞれ供給されラッチデータＬＤｂ〜ＬＤｇを、クロック信号ＣＫ１の立ち上がりエッジに同期してラッチし、そのラッチレベルと等しいレベルのラッチデータＤ（−２）〜Ｄ（＋３）をそれぞれ出力する。なお、上記第２のラッチ部５４の構成は一例を示すものであり、各ＦＦ回路５４ａ〜５５ｇが信号をラッチするタイミングが、前段のＦＦ回路５３ａ〜５３ｇの出力信号のタイミングに応じて調整されることはいうまでもない。
【００５０】
第２のラッチ回路５２は、ＦＦ回路５５を含む。このＦＦ回路５５は、クロック端子にクロック信号ＣＫ２が供給され、データ端子Ｄに第１のラッチ部５３のＦＦ回路５３ｄのラッチ信号ＬＤｄが供給されている。クロック信号ＣＫ２は、リードデータＲＤａを受け取り、このリードデータＲＤａを処理する回路、例えば図２に示すメモリコントローラ２２から供給される。コントローラ２２は、基準遅延信号Ｓ（０）に基づいて、基準遅延信号Ｓ（０）の周波数と等しく、信号Ｓ（０）より所定時間遅延したクロック信号ＣＫ２を生成する。基準遅延信号Ｓ（０）に対するクロック信号ＣＫ２の遅延時間は、基準遅延信号Ｓ（０）に応答してデータＤＱをラッチしたＦＦ回路５３ｄの出力信号をＦＦ回路５５にてラッチするように設定されている。ＦＦ回路５５は、基準遅延信号Ｓ（０）に応答するＦＦ回路５３ｄの出力信号（ラッチデータＬＤｄ）をクロック信号ＣＫ２の立ち上がりエッジに同期してラッチし、そのラッチしたレベルのリードデータＲＤａを出力する。
【００５１】
なお、図示しないが、ラッチ回路３２は、基準遅延信号Ｓ（０）の立ち下がりエッジに同期してデータＤＱをラッチするＦＦ回路と、そのＦＦ回路の出力信号をクロック信号ＣＫ２によりラッチしてリードデータを生成するＦＦ回路を含む。これらのＦＦ回路と、上記のＦＦ回路５３ｄ，５５により、データストローブ信号ＤＱＳの立ち上がりエッジと立ち下がりエッジとに同期して出力されるデータＤＱを内部回路（例えば、メモリコントローラ２２）に取り込む。なお、ＤＬＬ部３１ｂにおいて基準遅延信号Ｓ（０）と位相が１８０度異なる反転遅延信号を生成し、その反転遅延信号の立ち上がりエッジに同期してデータＤＱをラッチし、そのラッチデータを更にクロック信号ＣＫ２によりラッチしたデータをリードデータとしてもよい。
【００５２】
図６に示すように、位相調整回路３３は、クロック信号生成回路６１、位相調整信号生成回路６２、データ中心演算回路６３、平均化回路６４、位相更新信号生成回路６５、コード変換回路６６を含む。
【００５３】
クロック信号生成回路６１は、上記のクロック信号ＣＫ１を生成する。例えば、クロック信号生成回路６１は、データストローブ信号ＤＱＳに基づいてクロック信号ＣＫ１を生成する。クロック信号ＣＫ１は、上記のラッチ回路３２に供給されるとともに、位相調整回路３３に含まれる各回路６２〜６６に供給される。従って、位相調整回路３３に含まれる各回路６２〜６６は、クロック信号ＣＫ１に基づいて、同期して動作する。なお、クロック信号ＣＫ１を位相調整回路３３の外部から供給することにより、クロック信号生成回路６１を省略してもよい。
【００５４】
位相調整信号生成回路６２は、リードイネーブル信号ＲＥに基づいて活性化信号ＰＥを生成する。例えば、位相調整信号生成回路６２は、信号ＲＥをバッファリングして活性化信号ＰＥを生成する。この活性化信号ＰＥは、各回路６３〜６５に供給される。リードイネーブル信号ＲＥは、図１に示すコア回路２１がメモリ１２からデータＤＱを読み出すときを示す信号であり、例えば、データＤＱを読み出す時にＨレベルとなり、それ以外の時にＬレベルとなる。
【００５５】
データ中心演算回路６３及び平均化回路６４は、Ｈレベルの活性化信号ＰＥに応答して活性化し、Ｌレベルの活性化信号ＰＥに応答して非活性化する。各回路６３，６４がデータＤＱの読み出し時に活性化し、それ以外の時に非活性化することで、メモリ１２から出力されるデータＤＱに基づいて、ＤＬＬ部３１ｂの位相を調整する。図２に示すように、メモリ１２とインタフェース回路２３は、データストローブ信号ＤＱＳによりデータＤＱの授受を行う。つまり、インタフェース回路２３は、メモリ１２に書き込むライトデータをデータＤＱとしてデータストローブ信号ＤＱＳとともに出力する。従って、データストローブ信号ＤＱＳとデータＤＱを伝達する信号線は、双方向バスとして用いられる。このため、リードイネーブル信号ＲＥに基づいてメモリ１２からデータＤＱを読み出す時に回路６３，６４を活性化することで、リード時におけるデータＤＱに対するデータストローブ信号ＤＱＳの位相を調整し、データＤＱとデータストローブ信号ＤＱＳの間の位相ずれを低減してリードデータＲＤａの誤判定を低減する。また、各回路６３，６４を非活性化することにより、消費電流を低減する。
【００５６】
データ中心演算回路６３は、例えばクロック信号ＣＫ１の立ち上がりエッジに同期して、ラッチ回路３２から出力されるラッチデータＤ（−３）〜Ｄ（＋３）を順次受け取る。そして、データ中心演算回路６３は、受け取ったラッチデータＤ（−３）〜Ｄ（＋３）が有効なデータか否かを判定する。有効なデータは、上記したように、第１遷移と第２遷移とがそれぞれ１つずつ存在するデータである。データ中心演算回路６３は、その判定結果に応じたデータフラグＤＦを出力する。例えば、データ中心演算回路６３は、ラッチデータＤ（−３）〜Ｄ（＋３）を有効と判定した場合に論理「１」（Ｈレベル）のデータフラグＤＦを出力し、ラッチデータを無効と判定した場合に論理「０」（Ｌレベル）のデータフラグＤＦを出力する。
【００５７】
そして、データ中心演算回路６３は、有効と判定したラッチデータＤ（−３）〜Ｄ（＋３）の中心タイミングを算出する。例えば、データ中心演算回路６３は、第１遷移と第２遷移との間に含まれるラッチデータの番号の平均値を算出し、その平均値を第１遷移と第２遷移とに応じた期間の中心タイミングの値（以下、期間中心値という）ＤＲとする。なお、データ中心演算回路６３は、算出した平均値に対して、制御性等の設定に応じた演算処理を実施し、その処理後の値を期間中心値ＤＲとする。第１遷移と第２遷移のタイミングに応じて、平均値が小数点以下の値を含む場合がある。このとき、データ中心演算回路６３は、設定に応じて、小数点以下の値を切り上げて平均値を整数化し、その処理後の値を期間中心値ＤＲとする。切り上げ処理を行うことにより、期間中心値ＤＲが「０」以外の場合、即ち期間中心値ＤＲが基準遅延信号Ｓ（０）からわずかにずれてもそのずれを補正する。つまり、遅延信号ＤＱＳｄとデータＤＱのタイミングずれに対する応答性が高くなる。従って、期間中心値ＤＲと基準遅延信号Ｓ（０）とを精度良く一致させることができるため、より短いパルス幅のデータＤＱを出力する場合に有効となる。
【００５８】
ラッチデータのパターン例を図７に示す。図７において、破線で囲まれた値は、第１遷移と第２遷移とに応じた期間のタイミングでラッチされたデータレベルを示す。
例えば「パターン１」は、ラッチデータＤ（−２）とラッチデータＤ（−１）の値が異なるため、この間に第１遷移が存在する。また、ラッチデータＤ（＋１）とラッチデータＤ（＋２）の値が相違するため、この間に第２遷移が存在する。従って、データ中心演算回路６３は、第１遷移と第２遷移との応じた期間のラッチデータＤ（−１）〜Ｄ（＋１）に基づいて、期間中心値ＤＲ（＝０）を算出する。
【００５９】
また、「パターン６」は、ラッチデータＤ（０）とラッチデータＤ（＋１）の値が異なるため、この間に第２遷移が存在する。また、ラッチデータＤ（＋２）とラッチデータＤ（＋３）の値が相違するため、この間に第１遷移が存在する。従って、データ中心演算回路６３は、第１遷移と第２遷移との応じた期間のラッチデータＤ（＋１）〜Ｄ（＋２）に基づいて、期間中心値ＤＲ（＝＋２）を算出する。なお、期間中心値ＤＲを「＋１」としてもよい。また、期間中心値ＤＲを「＋１」と「＋２」の中間として「＋１．５」としてもよい。また、期間中心値が少数になる場合には、当該パターンを無効としてもよい。
【００６０】
また、「パターン７」は遷移が存在せず、「パターン９」は遷移が１つしか存在しない。従って、データ中心演算回路６３はこれらのパターンのラッチデータを無効と判定して、「０」のデータフラグＤＦを出力する。そして、データ中心演算回路６３は、期間中心の演算処理をキャンセルして値「０」の期間中心値ＤＲを出力する。
【００６１】
尚、データ中心演算回路６３は、期間中心を演算した結果が「０」である場合もその値「０」の期間中心値ＤＲを出力する。この場合、データ中心演算回路６３は「１」のデータフラグＤＦを出力する。従って、データフラグＤＦは、データ中心演算回路６３から出力される期間中心値ＤＲが有効か無効かを示すということもできる。
【００６２】
また、「パターン８」は遷移が４つ存在する。このように、不連続なデータは、ノイズなどの偶発的なレベル変動により発生するが、ノイズによるレベルのラッチデータを特定することはできない。このため、データ中心演算回路６３は、この「パターン８」のラッチデータを無効と判定する。
【００６３】
なお、「パターン３」は第１遷移と第２遷移がそれぞれ１つ存在するが、第１遷移と第２遷移とに応じた期間のラッチデータは１つ（Ｄ（＋２））である。データＤＱのパルス幅から、この例では、第１遷移と第２遷移との間に３個乃至４個のラッチデータが存在し、許容可能なレベル変動を考慮しても、２個乃至５個のラッチデータが存在する。従って、１個のラッチデータのみ存在する場合には、そのデータはノイズにより発生した可能性が高い。従って、データ中心演算回路６３は、第１範囲と第２範囲との間に存在するラッチデータの数、即ちタイミングの数の範囲をレジスタ等に記憶し、その範囲内のデータ数（タイミング数）のラッチデータを有効と判定し、範囲外のデータ数のラッチデータを無効と判定する。ようにしてもよい。
【００６４】
尚、演算処理として、切り捨て、四捨五入、平均値を超えない最大の整数を用いる、等の処理を実施するようにしてもよい。例えば、演算処理として切り捨てを実行するように設定した場合、期間中心値ＤＲは、基準遅延信号Ｓ（０）に近い値として得られ、絶対値が１未満の平均値の場合には期間中心値ＤＲの値は「０」となる。従って、遅延信号ＤＱＳｄとデータＤＱとのずれに対する応答性が低くなる。このため、緩やかにタイミングずれを補正することができる。
【００６５】
図６に示すように、平均化回路６４は、加算回路７１、カウンタ７２、除算回路７３を含む。
加算回路７１は、データ中心演算回路６３から出力される期間中心値ＤＲを累積加算し、その演算結果のデータを出力する。
【００６６】
カウンタ７２は、データ中心演算回路６３から出力されるデータフラグＤＦのうち、有効なデータフラグＤＦに応答してカウント値をカウントアップ（＋１）し、そのカウント値を出力する。つまり、カウンタ７２は、「１」のデータフラグＤＦの数をカウントする。
【００６７】
除算回路７３は、有効なデータにおける中心位置の平均値を算出する。即ち、除算回路７３は、加算回路７１から出力される演算結果（合計値）を、カウンタ７２から出力されるカウント値（有効データ数）で除算し、その演算結果に基づいて、平均値を算出する。例えば、除算回路７３は、演算結果のうち、小数点以下の値を切り上げて演算結果を生成する。そして、除算回路７３は、その演算結果の小数点以下の値を切り捨てて演算結果を整数化し、その処理後の値を出力する。つまり、平均化回路６４は、データ中心演算回路６３により算出した期間中心値ＤＲの平均値を算出する。
【００６８】
位相更新信号生成回路６５は、位相調整信号生成回路６２から出力される活性化信号ＰＥに基づいて、ＤＬＬ回路の設定データを更新するための更新許可信号ＵＥを生成する。本実施形態において、活性化信号ＰＥは、メモリ１２からデータＤＱを読み出す期間を示すリードイネーブル信号ＲＥをバッファリングしたものである。位相更新信号生成回路６５は、メモリ１２からデータＤＱを読み出していない期間に設定データを更新するように、更新許可信号ＵＥを生成する。例えば、位相更新信号生成回路６５は、活性化信号ＰＥを論理反転したレベルの更新許可信号ＵＥを生成する。従って、更新許可信号ＵＥは、メモリ１２からデータＤＱを読み出すときにはＬレベルとなり、それ以外のときにＨレベルとなる。
【００６９】
コード変換回路６６は、平均化回路６４から出力される期間中心を、ＤＬＬ部３１ｂの遅延時間を調整するためのコードに変換する。そして、コード変換回路６６は、位相更新信号生成回路６５から出力される更新許可信号ＵＥに基づいて、メモリ１２からデータＤＱを読み出していない期間、即ちＨレベルの更新許可信号ＵＥに応答して、コードをＤＬＬ部３１ｂに出力し、ＤＬＬ部３１ｂは、そのコードをレジスタ４１（図４参照）に記憶する。
【００７０】
例えば、図４に示すＤＬＬ部３１ｂにおいて、オンされたスイッチＳＷ１ｄにより遅延時間が調整された遅延信号Ｓ（−３）〜Ｓ（＋３）が生成されている。この状態において、期間中心の値が「＋１」の場合、コード変換回路６６は、この期間中心をＤＬＬ部３１ｂのスイッチを制御するためのコードに変換する。そして、ＤＬＬ部３１ｂは、そのコードに応答して，スイッチＳＷ１ｄをオフしスイッチＳＷ１ｅをオンする。これにより、遅延信号Ｓ（−３）〜Ｓ（＋３）のタイミングが遅い方にシフトされ、基準遅延信号Ｓ（０）のタイミングが、前回の遅延信号Ｓ（＋１）のタイミングと一致する。
【００７１】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）ラッチ回路３２は、位相（タイミング）が互いに異なる複数の遅延信号Ｓ（−ｎ）〜Ｓ（０）〜Ｓ（＋ｎ）によりデータＤＱをラッチした複数のラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）を出力する。位相調整回路３３は、複数のラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）に基づいて、データＤＱの第１遷移と第２遷移とを判定し、第１遷移と第２遷移とに応じた期間の中心タイミングを、基準遅延信号Ｓ（０）のタイミングを近づけるように、ＤＬＬ回路３１の遅延時間を調整する。この結果、基準遅延信号Ｓ（０）のタイミングは、メモリ１２から読み出されたデータＤＱのパルスの中心タイミングに近づくように調整されているため、データＤＱとデータストローブ信号ＤＱＳとの間に発生する位相ずれを低減することができる。
【００７２】
（２）位相調整回路３３は、コア回路２１からの要求に応じてメモリ１２から読み出されたデータＤＱのように、信号レベルがランダムに変化するデータＤＱにあって、第１遷移と第２遷移とを判定してそれらの遷移に応じた期間の中心タイミングに応じてＤＬＬ回路３１が生成する遅延信号ＤＱＳｄの中心タイミング（基準遅延信号Ｓ（０）のタイミング）を調整する。従って、コア回路２１がメモリ１２からデータＤＱを読み出すときにそのデータＤＱを取り込む遅延信号ＤＱＳｄのタイミング調整を行うことができるため、タイミング調整のためにコア回路２１の読み出し動作を抑制（停止）させる必要が無く、メモリ１２からのデータ読み出しに対するオーバーヘッドを低減することができる。
【００７３】
（３）位相調整回路３３は、コア回路２１からの要求に応じてメモリ１２から読み出されたデータＤＱに基づいて、第１遷移と第２遷移とに応じた期間の中心タイミングに、ＤＬＬ回路３１が生成する遅延信号ＤＱＳｄの中心タイミング（基準遅延信号Ｓ（０）のタイミング）が近づくように調整する。従って、コア回路２１の動作中に、温度変化等の影響によるタイミングずれを補正することができる。また、コア回路２１の動作中にタイミングずれを補正することができるため、メモリ１２からの読み出し動作に対するオーバーヘッドの増加を抑制することができる。
【００７４】
（第２実施形態）
以下、第２実施形態を図面に従って説明する。
なお、本実施形態において、上記した実施形態と同じ部材については同じ符号を付してその説明のすべて又は一部を省略する。
【００７５】
図８は、本実施形態のインタフェース回路２３ａの回路図である。このインタフェース回路２３ａは、４ビットのデータＤＱ０〜ＤＱ３を入力するものである。つまり、このインタフェース回路２３ａは、４つの出力端子を有し、データストローブ信号ＤＱＳに基づいて４ビットのデータＤＱ０〜ＤＱ３を出力するメモリと接続されるものである。そして、インタフェース回路２３ａは、４ビットのデータＤＱ０〜ＤＱ３とデータストローブ信号ＤＱＳとに基づいて、４ビットのデータＤＱ０〜ＤＱ３を取り込むタイミングを調整する。
【００７６】
インタフェース回路２３ａは、ＤＬＬ回路３１、ラッチ回路３２ａ、位相調整回路３３ａを含む。
ラッチ回路３２ａは、４ビットのデータＤＱ０〜ＤＱ３に対応して４つのブロック８１ａ〜８１ｄを有している。各ブロック８１ａ〜８１ｄは、第１実施形態のラッチ回路３２と同様に構成されている。各ブロック８１ａ〜８１ｄは、それぞれ遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）に応答してデータＤＱ０〜ＤＱ３をラッチし、ラッチデータＤ０〜Ｄ３を出力する。図８では、１つの信号のごとく示しているが、各ラッチデータＤ０〜Ｄ３は、それぞれ異なるタイミングの遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）によりデータＤＱ０〜ＤＱ３を取り込んだラッチデータを含む。例えば、ラッチデータＤ０は、ブロック８１ａにおいて、データＤＱ０を遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）によりラッチしたラッチデータＤ０（−ｎ）〜Ｄ０（＋ｎ）を含む。同様に、ラッチデータＤ１は、ブロック８１ｂにおいて、データＤＱ１を遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）によりラッチしたラッチデータＤ１（−ｎ）〜Ｄ１（＋ｎ）を含む。また、ラッチデータＤ２は、ブロック８１ｃにおいて、データＤＱ２を遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）によりラッチしたラッチデータＤ２（−ｎ）〜Ｄ２（＋ｎ）を含む。また、ラッチデータＤ３は、ブロック８１ｄにおいて、データＤＱ３を遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）によりラッチしたラッチデータＤ３（−ｎ）〜Ｄ３（＋ｎ）を含む。
【００７７】
位相調整回路３３ａは、クロック信号生成回路６１、位相調整信号生成回路６２、データ中心演算回路６３ａ、平均化回路６４、位相更新信号生成回路６５、コード変換回路６６を含む。
【００７８】
データ中心演算回路６３ａは、４ビットのデータＤＱ０〜ＤＱ３に対応するラッチデータＤ０〜Ｄ３のうち、有効なラッチデータを各タイミング毎に論理演算し、その演算結果に基づいて期間中心値ＤＲを算出する。有効なラッチデータの判定は、第１実施形態と同じである。
【００７９】
図９には、ｎ＝３の場合のラッチデータの例が示されている。図９において、図７と同様に、破線で囲まれた値は、第１遷移と第２遷移とに応じた期間のタイミングでラッチされたデータレベルを示す。
【００８０】
例えば、データＤＱ０をラッチしたラッチデータＤ０（−３）〜Ｄ０（＋３）は、「０００１１１０」であり、第１遷移と第２遷移とがそれぞれ１つずつ存在する。従って、図８に示すデータ中心演算回路６３ａは、このデータＤＱ０に対応するラッチデータを有効と判定する。同様に、データ中心演算回路６３ａは、データＤＱ１，ＤＱ３をラッチしたラッチデータＤ１（−３）〜Ｄ１（＋３），Ｄ３（−３）〜Ｄ３（＋３）を有効と判定する。一方、データＤＱ２をラッチしたラッチデータＤ２（−３）〜Ｄ２（＋３）は「１１１１１１１」である。従って、データ中心演算回路６３ａは、このデータＤＱ２に対応するラッチデータを無効と判定する。
【００８１】
そして、データ中心演算回路６３ａは、有効と判定したラッチデータを、タイミング毎に論理演算し、演算結果について、第１遷移と第２遷移とに応じた期間のタイミング中心（期間中心）を算出する。図９中、「ＡＮＤ」に示すデータ「０００１１１０」は、論理積演算結果を示す。データ中心演算回路６３ａは、このデータに基づいて期間中心値ＤＲ（＝＋１）を算出する。そして、データ中心演算回路６３ａは、期間中心値ＤＲが有効であることを示すデータフラグＤＦ（＝１）を出力する。
【００８２】
また、データ中心演算回路６３ａは、有効と判定したラッチデータが１ビット分のみの場合に、論理演算処理を省略し、その有効と判定したラッチデータにより期間中心値ＤＲを算出する。また、データ中心演算回路６３ａは、すべてのビットのラッチデータを有効ではないと判定した場合に、論理演算処理及び中心演算を行うことなく、値が０の期間中心値ＤＲと、その期間中心値ＤＲが無効であることを示す「０」のデータフラグＤＦを出力する。
【００８３】
平均化回路６４は、データ中心演算回路６３ａから出力される期間中心値ＤＲの平均値を算出し、コード変換回路６６はその平均値をコードに変換する。そのコードを、データＤＱ０〜ＤＱ３を読み出していない期間にＤＬＬ回路３１（ＤＬＬ部３１ｂ）に格納する。このようにして、位相調整回路３３ａは、データＤＱ０〜ＤＱ３を取り込む遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）の中心タイミング（遅延信号Ｓ（０）のタイミング）を、データＤＱ０〜ＤＱ３のパルス中心の共通なタイミングに近づけるように補正する。
【００８４】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）ラッチ回路３２ａは、タイミングが異なる複数の遅延信号により複数ビットのデータＤＱ０〜ＤＱ３をラッチしたラッチデータを出力する。位相調整回路３３ａは、そのラッチデータに基づいて、データＤＱ０〜ＤＱ３の第１遷移と第２遷移とを判定し、その判定結果に基づいて、データＤＱ０〜ＤＱ３に対応するラッチデータを論理演算した結果における中心タイミングに、遅延信号の中心タイミングを近づけるように、遅延信号の中心タイミングを調整するようにした。従って、各データＤＱ０〜ＤＱ３に共通なデータストローブ信号ＤＱＳを、全てのデータＤＱ０〜ＤＱ３を取り込むために最適なタイミングに調整することができる。
【００８５】
（第３実施形態）
以下、第３実施形態を図面に従って説明する。
なお、本実施形態において、上記した実施形態と同じ部材については同じ符号を付してその説明のすべて又は一部を省略する。
【００８６】
図１０は、本実施形態のインタフェース回路２３ａの回路図である。このインタフェース回路２３ａは、上記した第１実施形態におけるインタフェース回路２３と置き換えて使用される。即ち、本実施形態におけるシステム回路は、図１に示すコア回路２１及びメモリコントローラ２２と、図１０に示すインタフェース回路２３ｂを含む。
【００８７】
このインタフェース回路２３ｂは、ＤＬＬ回路３１、ラッチ回路３２、位相調整回路３３ｂを含む。
位相調整回路３３ｂは、クロック信号生成回路６１、位相調整信号生成回路６２、コード変換回路６６、データ判定回路６７、期間中心検出回路６８を含む。
【００８８】
データ判定回路６７は、上記実施形態のデータ中心演算回路６３に含まれる判定機能、即ち、ラッチデータが有効か無効かを判定する機能を持ち、有効と判定したラッチデータＤと、有効を示すデータフラグＤＦを出力する。このラッチデータＤは、遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）でデータＤＱを取り込んだラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）を含む。
【００８９】
なお、データ判定回路６７は、第１遷移と第２遷移とに応じた期間におけるデータレベルが「０」の場合に、ラッチデータの論理レベルを反転して出力する。例えば、ラッチデータが図７に示す「パターン６」のように「１１１１００１」の場合、各ラッチデータのレベルを論理反転して「００００１１０」として出力する。
【００９０】
期間中心検出回路６８は、加算回路９１、カウンタ９２、データ中心演算回路９３を含む。加算回路９１は、データ判定回路６７から出力されるラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）をタイミング毎に累積加算し、その加算結果を出力する。
【００９１】
図１１には、ｎ＝３の場合のラッチデータの例が示されている。図１１において、図７，９と同様に、破線で囲まれた値は、第１遷移と第２遷移とに応じた期間のタイミングでラッチされたデータレベルを示す。
【００９２】
図１１において、データ１〜４は有効なデータであり、データ５〜７は無効なデータである。データ判定回路６７は、データ１〜４（ラッチデータ）を出力するとともに、「１」のデータフラグＤＦを出力し、データ５〜７を出力しない。加算回路９１は、データ１〜４を累積加算する。図１１において最下段には、データ１〜４に対する加算回路９１の加算結果（累積値）を示す。
【００９３】
カウンタ９２は、データ判定回路６７から出力されるデータフラグＤＦをカウントし、カウント値が設定値と等しくなったときにカウントアップ信号を出力する。設定値は、データ判定回路６７から出力されるデータ、即ちラッチデータを累積加算する個数である。
【００９４】
データ中心演算回路９３は、カウンタ９２から出力されるカウントアップ信号に応答して加算回路９１から出力される累積値を入力し、その累積値に基づいて、期間の中心タイミングを演算する。
【００９５】
上記したように、データ判定回路６７は、複数のタイミングに対応するラッチデータのうち、両端のデータを「０」としてデータを出力する。従って、タイミング毎に累積した累積値は、データＤＱのパルス中心の存在確率に応じた値となる。つまり、データＤＱのパルス中心を取り込んだタイミングに対応する累積値が最も大きな値となる。従って、データ中心演算回路９３は、累積値が最も大きいタイミングを、期間中心として出力する。なお、複数のタイミングに対する累積値が等しくなった場合、データ中心演算回路９３は、それらのタイミングに対応する番号の平均値を期間中心とする。
【００９６】
コード変換回路６６はデータ中心演算回路９３から出力される期間中心の値をコードに変換する。そのコードを、データＤＱを読み出していない期間にＤＬＬ回路３１（ＤＬＬ部３１ｂ）に格納する。このようにして、位相調整回路３３ｂは、データＤＱを取り込む遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）の中心タイミング（遅延信号Ｓ（０）のタイミング）を、データＤＱのパルス中心のタイミングに近づけるように補正する。
【００９７】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）位相調整回路３３ｂは、複数のラッチデータＤ（−ｎ）〜Ｄ（＋ｎ）に基づいて、データＤＱの第１遷移と第２遷移とを判定し、ラッチデータ（−ｎ）〜Ｄ（＋ｎ）をタイミング毎に累積加算し、その加算結果に基づいて第１遷移と第２遷移とに対応する期間の中心タイミングを算出する。そして、位相調整回路３３ｂは、算出した中心タイミングに、遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）の中心タイミングを近づけるように補正するようにした。その結果、基準遅延信号Ｓ（０）のタイミングは、メモリ１２から読み出されたデータＤＱのパルスの中心タイミングに近づくように調整されているため、データＤＱとデータストローブ信号ＤＱＳとの間に発生する位相ずれを低減することができる。
【００９８】
尚、各実施形態は、以下の態様で実施してもよい。
・第２実施形態において、データ中心演算回路６３ａは、データのビット数に応じて、ラッチデータが有効か否かを判定するようにしてもよい。例えば、データが４ビットであって２ビット以上のデータが有効な場合に期間中心値ＤＲを算出してもよい。また、データが８ビットであって３ビット以上のデータが有効な場合に期間中心値ＤＲを算出する。このようにすることで、複数ビットに共通な遅延データに対して中心タイミングのずれを補正することができる。
【００９９】
・各実施形態において、位相更新信号生成回路６５は、期間中心値ＤＲの平均値が算出された後に更新のための更新許可信号ＵＥを出力するようにしてもよい。例えば、カウンタ７２は平均値を算出するときのカウント値（例えば１００）をカウントしたときにカウントアップ信号を出力し、位相更新信号生成回路６５は、そのカウントアップ信号に応答して、活性化信号ＰＥ（又はリードイネーブル信号ＲＥ）を論理反転したレベルの更新許可信号ＵＥを出力する。なお、カウンタはカウント値を出力し、位相更新信号生成回路６５が平均値を算出するときのカウント値を入力したときに更新許可信号ＵＥを出力するようにしてもよい。また、カウンタはカウント値を出力し、除算回路が平均値を算出したときに信号を出力し、その信号により位相更新信号生成回路が更新許可信号ＵＥを出力するようにしてもよい。
【０１００】
・実施形態では、位相調整信号生成回路６２を有することとしたが、位相調整信号生成回路６２を省略し、リードイネーブル信号ＲＥを位相調整回路３３に含まれる各回路に供給するようにしてもよい。
【０１０１】
・実施形態では、データストローブ信号ＤＱＳのトレーニング動作を行うメモリコントローラ２２を用いたが、トレーニング動作を行う機能を有していないメモリコントローラを用いて実施してもよい。この場合、ＤＬＬ回路３１の遅延部３１ａには、データストローブ信号ＤＱＳに対する遅れがない遅延信号ＤＱＳ２を生成するように設定コードが設定される。なお、遅延部３１ａを省略してもよい。
【０１０２】
・実施形態では、メモリコントローラ２２がトレーニング動作を行うこととしたが、その他の回路、例えばコア回路２１がトレーニング動作を実行するようにしてもよい。
・各実施形態は、インタフェース回路２３を含むシステム回路１１について説明したが、データＤＱ及びデータストローブ信号ＤＱＳを受信する回路、例えばＳＤＲＡＭやメモリコントローラに上記のインタフェース回路を適用してもよい。
【０１０３】
・各実施形態では、図４に例示したように、遅延信号Ｓ（−３）〜Ｓ（＋３）の遅延時間、即ち位相差を一定としたが、遅延信号相互間の位相差を異なるように設定してもよい。例えば、遅延信号Ｓ（−ｎ）〜Ｓ（＋ｎ）において、データＤＱのエッジが存在する確率の高いタイミング付近の遅延信号間の位相差を、エッジが存在する確率が低いタイミング付近の遅延信号間の位相差よりも小さくしてもよい。位相差の小さな遅延信号により、データＤＱの第１遷移と第２遷移の検出精度が向上する。従って、基準遅延信号Ｓ（０）とデータＤＱの中心位置との小さな位相差ずれを検出する、即ち位相差ずれを精度よく検出することができるため、基準遅延信号Ｓ（０）をデータＤＱの中心に精度良く合わせることができる。
【０１０４】
・実施形態では、カウンタ７２からカウント値を出力し、除算回路７３にてカウント値を除数として演算を行うようにした。これを、カウンタが内蔵するレジスタに格納された設定値とカウント値を比較し、カウント値が設定値未満であるときには第１のレベル（例えばＬレベル）のカウント終了信号を出力し、設定値とカウント値が等しくなるとカウントアップを停止し、第２のレベル（例えばＨレベル）のカウント終了信号を出力するようにする。そして、除算回路は、設定値を除数として演算を行うようにしてもよい。
【０１０５】
・各実施形態では、データ中心演算回路６３にて小数点以下を切り上げ、平均化回路６４にて小数点以下を切り捨てるようにしたが、データ中心演算回路６３にて小数点以下を切り捨て、平均化回路６４にて小数点以下を切り上げるようにしてもよい。また、両回路６３，６４にて例えば小数点以下を切り上げるように、同じ処理方法にて演算結果を整数化するようにしてもよい。尚、演算結果を整数化する方式として、上記の切り上げ以外に、切り捨て、四捨五入、演算結果を越えない最大の整数を採用する、等の種々の方式を用いてもよい。
【０１０６】
・各実施形態では、遅延信号Ｓ（−３）〜Ｓ（＋３）において遷移のタイミングが入力信号の第１遷移と第２遷移との間の中心タイミングにより近い遅延信号に注目し、中心タイミングにより近い遅延信号が入力されるラッチ回路（例えば、図５のラッチ回路５３ａ〜５３ｇのうちの何れか）の出力信号を選択して、選択された信号（ＬＤａ〜ＬＤｇのうちの何れか）をラッチ回路５５に入力してもよい。
【０１０７】
・上記第２実施形態において、４ビットのデータＤＱをそれぞれラッチしたラッチデータのうち、有効なラッチデータを論理積（ＡＮＤ）演算処理した後に中心位置を算出するようにしたが、その他の論理演算処理、例えば論理和（ＯＲ）演算処理した後に中心位置を算出するようにしてもよい。
【０１０８】
・各実施形態は、メモリ１２から出力されるデータＤＱを取り込むインタフェース回路２３に具体化したが、メモリ以外の回路から出力される信号を取り込む入力回路、例えば、通信用の回路から出力される信号を取り込む回路に具体化してもよい。
【０１０９】
・各実施形態は、データストローブ信号ＤＱＳに基づいてデータＤＱを取り込むインタフェース回路２３に具体化したが、その他の信号、例えばクロック信号によりデータを取り込む回路に具体化してもよい。
【０１１０】
上記各実施形態に関し、以下の付記を開示する。
（付記１）
互いに異なるタイミングに基づいて入力信号を取り込む複数の取込部と、
前記複数の取込部において前記入力信号を取り込むタイミングが隣接する取込部による取り込み結果に基づいて、前記入力信号の第１遷移と第２遷移とを判定する判定部と、
前記入力信号の取り込みタイミングを前記第１遷移と前記第２遷移とに応じた期間の中心タイミングに近づくように調整する調整部と、
を有することを特徴とするタイミング調整回路。
（付記２）
前記調整部は、前記入力信号の前記取り込みタイミングとなる前記互いに異なるタイミングにおける中心タイミングを前記第１遷移と前記第２遷移とに応じた期間の中心タイミングに近づくように調整することを特徴とする付記１に記載のタイミング調整回路。
（付記３）
前記判定部は、隣接する前記取込部の取り込み結果に応じた前記入力信号のレベルが互いに異なる場合に前記入力信号に遷移があると判定することを特徴とする付記２に記載のタイミング調整回路。
（付記４）
前記調整部は、前記複数の取込部による取り込み結果に前記第１遷移と前記第２遷移がそれぞれ含まれる場合に前記取り込み結果を有効と判定する、
ことを特徴とする付記２又は３に記載のタイミング調整回路。
（付記５）
前記判定部は、前記有効と判定した前記取り込み結果に基づいて前記第１遷移と前記第２遷移とに応じた期間の中心タイミングを算出し、
前記調整部は、前記判定部にて算出された期間の中心タイミングに、前記互いに異なるタイミングにおける中心タイミングを近づけるように、前記互いに異なるタイミングにおける中心タイミングを調整する、
ことを特徴とする付記４に記載のタイミング調整回路。
（付記６）
前記判定部は、算出した中心タイミングに応じた期間中心値を出力し、
前記調整部は、前記判定部から出力される複数の期間中心値の平均値を算出し、前記複数の期間中心値の平均値に応じたタイミングに、前記互いに異なるタイミングにおける中心タイミングを近づけるように、前記中心タイミングを調整する、
ことを特徴とする付記５に記載のタイミング調整回路。
（付記７）
前記入力信号は、複数のビットを含み、
前記判定部は、前記入力信号に含まれる各ビットの取り込み結果を、各ビットに対して前記第１遷移と前記第２遷移とを判定する、
ことを特徴とする付記２〜６の何れか１項に記載のタイミング調整回路。
（付記８）
前記調整部は、前記判定部の判定結果に基づいて、前記入力信号を取り込むタイミング毎に各ビットの取り込み結果を論理演算し、その演算結果に基づいて前記第１遷移と前記第２遷移とに応じた期間の中心タイミングに、前記互いに異なるタイミングにおける中心タイミングを近づけるようにその中心タイミングを調整することを特徴とする付記７に記載のタイミング調整回路。
（付記９）
前記調整部は、前記判定部により有効と判定された前記取り込み結果に基づいて前記第１遷移と前記第２遷移とに応じた期間の中心タイミングを算出し、その中心タイミングに、前記互いに異なるタイミングにおける中心タイミングを近づけるように、前記中心タイミングを調整することを特徴とする付記２に記載のタイミング調整回路。
（付記１０）
前記調整部は、前記判定部により有効と判定された前記取り込み結果を前記入力信号を取り込むタイミング毎に累積し、各タイミングの累積結果に基づいて前記第１遷移と前記第２遷移とに応じた期間の中心タイミングを算出することを特徴とする付記４に記載のタイミング調整回路。
（付記１１）
コア回路と、コントローラと、インタフェース回路とを有し、
前記コア回路は、前記コントローラを介して前記インタフェース回路に接続された対象回路からデータを読み出し、
前記インタフェース回路は、前記対象回路から出力される入力信号を、前記対象回路から出力されるストローブ信号に基づいて取り込み、
更に、前記インタフェース回路は、前記入力信号を取り込むタイミングを調整するタイミング調整回路を有し、
前記タイミング調整回路は、
互いに異なる複数のタイミングに基づいて入力信号を取り込み、
前記入力信号を取り込む複数のタイミングのうち、隣接するタイミングによる取り込み結果に基づいて、前記入力信号の第１遷移と第２遷移とを判定し、
前記入力信号の取り込みタイミングを前記第１遷移と前記第２遷移とに応じた期間の中心タイミングに近づくように調整する、
ことを特徴とするシステム装置。
（付記１２）
互いに異なる複数のタイミングに基づいて入力信号を取り込み、
前記入力信号を取り込む複数のタイミングのうち、隣接するタイミングによる取り込み結果に基づいて、前記入力信号の第１遷移と第２遷移とを判定し、
前記入力信号の取り込みタイミングを前記第１遷移と前記第２遷移とに応じた期間の中心タイミングに近づくように調整する、
ことを特徴とするタイミング調整方法。
【符号の説明】
【０１１１】
１１  システム回路
２１  コア論理回路
２２  メモリコントローラ
２３  インタフェース回路
３１  遅延ロックループ回路（ＤＬＬ回路）
３２  ラッチ回路
３３  位相調整回路
ＤＲ  期間中心値
【図１】
2010272026.tif 000003
【図２】
2010272026.tif 000004
【図３】
2010272026.tif 000005
【図４】
2010272026.tif 000006
【図５】
2010272026.tif 000007
【図６】
2010272026.tif 000008
【図７】
2010272026.tif 000009
【図８】
2010272026.tif 000010
【図９】
2010272026.tif 000011
【図１０】
2010272026.tif 000012
【図１１】
2010272026.tif 000013
【図１２】
2010272026.tif 000014
【図１３】
2010272026.tif 000015