(57)【特許請求の範囲】
【請求項１】
パルス列を生成するパルス生成回路と、
第１の可変遅延回路と、
前記第１の可変遅延回路の前段に設けられ、前記パルス生成回路から出力されるパルスと前記第１の可変遅延回路の出力パルスのうちのいずれかを前記第１の可変遅延回路へ出力するセレクタと、
前記セレクタおよび前記第１の可変遅延回路を制御する制御回路とを備え、
前記制御回路は、前記パルス生成回路から出力される第１のパルスがＮ回だけ前記第１の可変遅延回路を通過した後のパルスの位相と、前記パルス生成回路から出力される第２のパルスの位相とが同期するように前記第１の可変遅延回路の遅延量を調整し、
前記第２のパルスは、前記第１のパルスの１つ後のパルスであり、Ｎは２以上の自然数であり、
前記制御回路は、
前記セレクタから出力されるパルスの数をカウントするカウンタを備え、
前記カウンタは、前記セレクタに前記パルス生成回路から出力される第ｉ番目のパルスを出力させるセレクト信号を出力し、その後前記セレクタに（Ｎ−１）回だけ前記第１の可変遅延回路の出力パルスを出力させるセレクト信号を出力し、その後、前記セレクタに前記パルス生成回路から出力される第（ｉ＋１）番目のパルスを出力させるセレクト信号を出力し、
前記制御回路は、
前記パルス生成回路から出力される前記第（ｉ＋１）番目のパルスの位相と、前記第１の可変遅延回路から出力される出力パルスの位相とを比較する位相比較器と、前記位相比較器の出力に基づいて、前記第１の可変遅延回路の遅延量を設定する制御ロジックとを備え、
前記第１の可変遅延回路が停止し、前記制御ロジックによる遅延量の設定を行う期間を有する、半導体装置。
【請求項２】
前記パルス生成回路は、クロックのエッジに基づいて、前記パルス列を生成する、請求項１記載の半導体装置。
【請求項３】
前記パルス生成回路は、クロックの立上がりエッジに基づいて、前記第１のパルスを生成し、前記クロックの立下りエッジに基づいて前記第２のパルスを生成し、前記第１のパルスは、前記セレクタへ送られ、前記第１のパルスと前記第２のパルスが前記位相比較器へ送られる、請求項１記載の半導体装置。
【請求項４】
Ｎは４である、請求項２記載の半導体装置。
【請求項５】
前記クロックが入力される第２の可変遅延回路と、
前記第２の可変遅延回路の出力に基づいて、データ信号をラッチするフリップフロップと、
前記クロックに同期したデータストローブ信号を出力するバッファと、
前記フリップフロップの出力と前記データストローブ信号とを受けるＤＤＲ−ＳＤＲＡＭとを備え、
前記制御回路は、前記第１の可変遅延回路の遅延量と同一の遅延量を前記第２の可変遅延回路に設定する、請求項４記載の半導体装置。
【請求項６】
データ信号およびデータストローブ信号を出力するＤＤＲ−ＳＤＲＡＭと、
前記データストローブ信号が入力される第２の可変遅延回路と、
前記第２の可変遅延回路の出力に基づいて、前記データ信号をラッチするフリップフロップとを備え、
前記制御回路は、前記第１の可変遅延回路の遅延量と同一の遅延量を前記第２の可変遅延回路に設定する、請求項４記載の半導体装置。
【請求項７】
ＴＤＲ測定機能を有する半導体装置であって、
送信データ経路と、
受信データ経路と、
パルス列を生成するパルス生成回路と、
可変遅延回路と、
前記可変遅延回路の前段に設けられ、前記パルス生成回路で生成されたパルスと前記可変遅延回路の出力パルスのうちのいずれかを前記可変遅延回路へ出力するセレクタと、
前記セレクタおよび前記可変遅延回路を制御する制御回路とを備え、
ＴＤＲ測定時に、前記パルス生成回路で生成されたパルスが前記送信データ経路へ出力され、対象装置で折り返されたパルスが前記受信データ経路へ入力され、
前記制御回路は、前記パルス生成回路から出力される第１のパルスがＮ回だけ前記可変遅延回路を通過した後のパルスの位相と、前記受信データ経路から出力されるパルスの位相とが同期するように前記可変遅延回路の遅延量を調整する、半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、たとえば、ＤＬＬ（Delay Locked Loop)回路を有する半導体装置に関する。
【背景技術】
【０００２】
従来から、半導体装置の動作タイミングを制御する信号を生成する回路の規模を小さくするための技術が知られている。
【０００３】
たとえば、特許文献１に記載のクロックツリー回路は、第１のクロックドライバを介してクロックを分配する第１の部分クロックツリー、第２のクロックドライバを介してクロックを分配する第２の部分クロックツリーを備える。さらに、このクロックツリー回路は、第１の部分クロックツリーからの第１のクロックと第２の部分クロックツリーからの第２のクロックとの位相を比較する位相比較器と、位相比較器の出力を受け取って直流化するローパスフィルタとを備える。第１および第２のクロックドライバの少なくとも一方は遅延時間が可変であり、ローパスフィルタの出力により遅延時間が可変な第１および第２のクロックドライバの少なくとも一方の遅延時間を制御するように構成される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−４４８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の方式では、クロックドライバの可変遅延時間内でのみ遅延時間を設定される。クロックドライバの可変遅延時間以上の遅延時間を設定することができない。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかであろう。
【課題を解決するための手段】
【０００７】
本発明の一実施形態において、制御回路は、パルス生成回路から出力される第１のパルスがＮ回だけ可変遅延回路を通過した後のパルスの位相と、パルス生成回路から出力される第２のパルスの位相とが同期するように可変遅延回路の遅延量を調整する。
【発明の効果】
【０００８】
本発明の一実施形態によれば、回路面積を小さくすることができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態の半導体装置の構成を表わす図である。
【図２】第１の実施形態の動作を表わすタイミング図である。
【図３】第２の実施形態の半導体装置の構成を表す図である。
【図４】ＤＤＲインタフェースの構成、ＤＤＲ−ＳＤＲＡＭの構成、およびＤＤＲインタフェースとＤＤＲ−ＳＤＲＡＭの間で伝送される信号を表わす図である。
【図５】ＤＤＲ−ＳＤＲＡＭへのデータのライト時にＤＤＲインタフェースとＤＤＲ−ＳＤＲＡＭ間を流れる信号のタイミングを表わす図である。
【図６】ＤＤＲ−ＳＤＲＡＭからのデータのリード時にＤＤＲ−ＳＤＲＡＭとＤＤＲインタフェース間を流れる信号のタイミングを表わす図である。
【図７】第２の実施形態の書込み用ＤＬＬ回路の構成を表わす図である。
【図８】第１の実施形態のマスタＤＬＬと、データレーンの動作を表わすタイミングチャートである。
【図９】第２の実施形態の読出し用ＤＬＬ回路の構成を表わす図である。
【図１０】論理回路（位相比較器および制御ロジック）が動作する期間と、ＶＤＬが動作する期間を説明するための図である。
【図１１】第３の実施形態の書込み用ＤＬＬ回路の構成を表わす図である。
【図１２】第４の実施形態の書込み用ＤＬＬ回路に含まれるマスタＤＬＬ４０の構成を表わす図である。
【図１３】第４の実施形態のマスタＤＬＬと、データレーンの動作を表わすタイミングチャートである。
【図１４】ＴＤＲ測定機能を有する入出力バッファの構成を表わす図である。
【図１５】データライト時、データリード時、およびＴＤＲ測定時におけるセレクト信号ＳＬ，ＳＬ２，ＳＬ３の状態を表わす図である。
【図１６】ＴＤＲ測定時の動作を表わすタイミング図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図面を用いて説明する。
［第１の実施形態］
図１は、第１の実施形態の半導体装置２００の構成を表わす図である。
【００１１】
図１に示すように、半導体装置２００は、ＤＬＬ（Delay Locked Loop）回路２１０を備える。ＤＬＬ回路２１０は、パルス生成回路２０５と、セレクタ２０２と、可変遅延回路（ＶＤＬ）２０１と、制御回路２０３とを備える。
【００１２】
パルス生成回路２０５は、一定の周期でパルス列を生成する。
可変遅延回路２０１は、入力されるパルスを遅延させる。
【００１３】
セレクタ２０２は、可変遅延回路２０１の前段に設けられ、パルス生成回路から出力されるパルスと可変遅延回路２０１の出力パルスのうちのいずれかを可変遅延回路２０１へ出力する。
【００１４】
制御回路２０３は、セレクタ２０２および可変遅延回路２０１を制御する。
制御回路２０３は、パルス生成回路から出力される第１のパルスがＮ回だけ可変遅延回路２０１を通過した後のパルスの位相と、パルス生成回路から出力される第２のパルスの位相とが同期するように可変遅延回路２０１の遅延量を調整する。第２のパルスは、第１のパルスよりも後の時刻で生成されたパルスである。または、Ｎは２以上の自然数である。
【００１５】
図２は、第１の実施形態の動作を表わすタイミング図である。ここでは、Ｎを４とする。
【００１６】
パルス生成回路２０５が、第１のパルスＩＮ（（Ａ）に示す）を出力する。
セレクタ２０２は、パルス生成回路２０５から出力される第１のパルス（（Ａ）に示す）を４回通過させる。
【００１７】
すなわち、セレクタ２０２は、パルス生成回路２０５から出力される第１のパルスＩＮ（（Ａ）に示す）を選択してパルスＳＯを出力する（（１）に示す）。可変遅延回路２０１が、セレクタ２０３から出力されるパルスＳＯを遅延時間Ｄだけ遅延させて、遅延パルスＤＹ（（２）に示す）を出力する。その後、セレクタ２０３は、可変遅延回路２０１から出力させる遅延パルスＤＹを３回連続して選択し、可変遅延回路２０１は、セレクタ２０３から出力されるパルスＳＯを遅延させて、遅延パルスＤＹを出力する。
【００１８】
次に、パルス生成回路２０５が、第１のパルスＩＮを生成してから周期Ｔ後に、第２のパルスＩＮ（（Ｂ）に示す）を出力する。
【００１９】
制御回路２０３は、第２のパルスＩＮ（（Ｂ）に示す）と、第１のパルスＩＮが４回だけ可変遅延回路２０１を通過した後のパルスＤＹ（（３）に示す）の位相が同期するまで、可変遅延回路２０１の遅延量を変化させながら、上述の処理を繰り返す。
【００２０】
第２のパルスＩＮ（（Ｂ）に示す）と、第１のパルスＩＮが４回だけ可変遅延回路２０１を通過した後のパルスＤＹ（（３）に示す）の位相が同期した場合には、以下の式が成り立つ。
【００２１】
Ｔ＝４×ｄｔ  ・・・（１）
だたし、ｄｔは、可変遅延回路２０１の遅延量Ｄと、セレクタ２０２による選択動作の時間Ｓとの和である。
【００２２】
このように可変遅延回路２０１の遅延量Ｄが調整された後は、パルス生成回路２０５から出力されるパルスに対して、可変遅延回路２０１から出力される遅延パルスＤＹは、Ｔ／４だけ遅延したものとなる。したがって、本実施の形態では、１つの可変遅延回路だけで、周期Ｔの信号に対してＴ／４だけ遅延した信号を生成することができる。これにより、回路面積を小さくすることができるとともに、消費電力を削減することができる。
【００２３】
［第２の実施形態］
図３は、第２の実施形態の半導体装置２２０の構成を表す図である。
【００２４】
半導体装置２２０は、ＳＯＣ（System-on-a-chip）８０と、ＤＤＲ−ＳＤＲＡＭ（Double-Data-Rate Synchronous Dynamic Random Access Memory）８６とを備える。
【００２５】
ＤＤＲ−ＳＤＲＡＭ８６は、同期クロックの立ち上がりと立ち下りの両方で、データを出力し（読出し）、およびデータを受ける（書込み）。
【００２６】
ＳＯＣ２２０は、ＣＰＵ（Central Processing Unit）８１と、画像ＩＰ８２と、音声／動画ＩＰ８３と、ＤＤＲインタフェース８７と、ＵＳＢ（Universal Serial Bus）インタフェース８５と、ディスプレイポート８８と、システムバス８４とを備える。
【００２７】
ＣＰＵ８１は、半導体装置２２０の全体を制御する。また、ＤＤＲ−ＳＤＲＡＭ８６へライトデータを出力し、ＤＤＲ−ＳＤＲＡＭ８６からリードデータを受ける。
【００２８】
画像ＩＰ８２は、画像データの各種処理を実行する。
音声／動画ＩＰ８３は、音声データおよび動画データの各種処理を実行する。
【００２９】
ＤＤＲインタフェース８７は、ＤＤＲ−ＳＤＲＡＭ８６とＣＰＵ８１の間のリードデータおよびライトデータの伝送を制御する。
【００３０】
ＵＳＢインタフェース８５は、周辺機器８９と接続される。
ディスプレイポート８８は、モニタ９０へ画像信号を出力する。
【００３１】
システムバス８４は、ＳＯＣ８０内の各構成要素と接続される。
図４は、ＤＤＲインタフェース８７の構成、ＤＤＲ−ＳＤＲＡＭ８６の構成、およびＤＤＲインタフェース８７とＤＤＲ−ＳＤＲＡＭ８６の間で伝送される信号を表わす図である。
【００３２】
ＤＤＲインタフェース８７は、ＰＬＬ回路１０１と、フリップフロップ１０２〜１０５と、バッファ１０６〜１１１とを備える。ＤＤＲ−ＳＤＲＡＭ８６は、入出力バッファ２と、メモリコア３とを備える。入出力バッファ２は、バッファ１１６〜１２１と、フリップフロップ１１２〜１１５とを備える。
【００３３】
ＰＬＬ回路１０１は、クロックＣＬＫを生成する。生成されたクロックＣＬＫは、バッファ１０７を通じてＤＤＲ−ＳＤＲＡＭ８６のバッファ１１７へ伝送される。
【００３４】
また、クロックＣＬＫは、フリップフロップ１０２、書込み用ＤＬＬ回路５１、および読出し用ＤＬＬ回路５２へ伝送される。
【００３５】
フリップフロップ１０２は、クロックＣＬＫの反転信号に基づいて、ＣＰＵ８１から出力されるコマンドＣｍｄまたはアドレス信号Ａｄｄをラッチして、バッファ１０６を介して、ＳＤＲＡＭ８６のバッファ１１６へ出力する。
【００３６】
書込み用ＤＬＬ回路５１は、クロックＣＬＫを所定時間（クロック周期の１／４の時間）遅延させて、フリップフロップ１０３へ出力する。
【００３７】
フリップフロップ１０３は、遅延させられたクロックＣＬＫに基づいて、ＣＰＵ８１から出力されるライトデータＤＭをラッチして、バッファ１０８を介して、ＤＤＲ−ＳＤＲＡＭ８６のバッファ１１９へ出力する。
【００３８】
また、クロックＣＬＫは、バッファ１１０を介してデータストローブ信号ＤＱＳとしてＤＤＲ−ＳＤＲＡＮ８６のバッファ１２１へ出力される。
【００３９】
バッファ１１６の出力であるコマンドＣｍｄまたはアドレス信号Ａｄｄは、フリップフロップ１１３へ出力される。
【００４０】
バッファ１１７の出力であるクロックＣＬＫは、メモリコア３へ送られるととともに、フリップフロップ１１３、フリップフロップ１１２、バッファ１２０へ送られる。
【００４１】
バッファ１２１の出力であるデータストローブ信号ＤＱＳは、フリップフロップ１１４、１１５へ送られる。
【００４２】
バッファ１１９の出力であるライトデータＤＭは、フリップフロップ１１４、１１５へ送られる。
【００４３】
フリップフロップ１１３は、入力されたクロックＣＬＫに従って、コマンドＣｍｄまたはアドレス信号Ａｄｄをラッチして、メモリコア３へ出力する。
【００４４】
フリップフロップ１１４は、入力されたデータストローブ信号ＤＱＳに従って、ライトデータＤＭをラッチして、メモリコア３へ出力する。
【００４５】
フリップフロップ１１５は、入力されたデータストローブ信号ＤＱＳの反転信号に従って、ライトデータＤＭをラッチして、メモリコア３へ出力する。
【００４６】
フリップフロップ１１２は、クロックＣＬＫに従って、メモリコア３から出力されるリードデータＤＱをラッチして、バッファ１１８へ出力する。
【００４７】
バッファ１１８は、リードデータＤＱをＤＤＲインタフェース８７のバッファ１０９へ出力する。
【００４８】
バッファ１２０は、クロックＣＬＫをデータストローブ信号ＤＱＳとしてＤＤＲインタフェース８７のバッファ１１１へ出力する。
【００４９】
バッファ１０９は、リードデータＤＱをフリップフロップ１０４、１０５へ出力する。
バッファ１１１は、データストローブ信号ＤＱＳを読出し用ＤＬＬ回路５２へ出力する。
【００５０】
読出し用ＤＬＬ回路５２は、データストローブ信号ＤＱＳを所定時間（クロック周期の１／４の時間）遅延させる。
【００５１】
フリップフロップ１０４は、遅延させられたデータストローブ信号ＤＱＳに従って、リードデータＤＱをラッチして、ＣＰＵ８１へ出力する。
【００５２】
フリップフロップ１０５は、遅延させられたデータストローブ信号ＤＱＳの反転信号に従って、リードデータＤＱをラッチして、ＣＰＵ８１へ出力する。
【００５３】
図５は、ＤＤＲ−ＳＤＲＡＭ８６へのデータのライト時にＤＤＲインタフェース８７とＤＤＲ−ＳＤＲＡＭ８６間を流れる信号のタイミングを表わす図である。
【００５４】
ＤＤＲインタフェース８７からＤＤＲ−ＳＤＲＡＭ８６へ伝送されるコマンドＣｍｄまたはアドレス信号Ａｄｄは、ＤＤＲインタフェース８７からＤＤＲ−ＳＤＲＡＭ８６へ伝送されるクロックＣＬＫの立下りに同期する。これは、フリップフロップ１０２が、クロックＣＬＫの立下りに同期して、コマンドＣｍｄまたはアドレス信号Ａｄｄをラッチするからである。
【００５５】
また、ＤＤＲインタフェース８７からＤＤＲ−ＳＤＲＡＭ８６へ伝送されるデータストローブ信号ＤＱＳは、クロックＣＬＫの立ち上がりに同期する。これは、バッファ１１０が、クロックＣＬＫをデータストローブ信号ＤＱＳとして出力するからである。
【００５６】
ＤＤＲインタフェース８７からＤＤＲ−ＳＤＲＡＭ８６へ伝送されるライトデータＤＭは、クロックＣＬＫの周期の２倍の周期で、かつクロックＣＬＫに対してクロックの周期Ｔの１／４の時間だけ遅延している。これは、ライトデータＤＭが、ＣＰＵ８１からクロックＣＬＫの２倍の周期でＤＤＲインタフェース８７に入力され、書込み用ＤＬＬ回路５１が、ライトデータＤＭをクロックＣＬＫの周期Ｔの１／４だけの時間（π／２）だけ遅延させるからである。
【００５７】
図６は、ＤＤＲ−ＳＤＲＡＭ８６からのデータのリード時にＤＤＲ−ＳＤＲＡＭ８６とＤＤＲインタフェース８７間を流れる信号のタイミングを表わす図である。
【００５８】
ＤＤＲインタフェース８７からＤＤＲ−ＳＤＲＡＭ８６へ伝送されるコマンドＣｍｄまたはアドレス信号Ａｄｄは、ＤＤＲインタフェース８７からＤＤＲ−ＳＤＲＡＭ８６へ伝送されるクロックＣＬＫの立下りに同期する。これは、フリップフロップ１０２が、クロックＣＬＫの立下りに同期して、コマンドＣｍｄまたはアドレス信号Ａｄｄをラッチするからである。
【００５９】
また、ＤＤＲ−ＳＤＲＡＭ８６からＤＤＲインタフェース８７へ伝送されるデータストローブ信号ＤＱＳは、クロックＣＬＫの立ち上がりに同期する。これは、バッファ１２０が、クロックＣＬＫをデータストローブ信号ＤＱＳとして出力するからである。
【００６０】
ＤＤＲ−ＳＤＲＡＭ８６からＤＤＲインタフェース８７へ伝送されるリードデータＤＱは、クロックＣＬＫの周期Ｔの２倍の周期で、かつクロックＣＬＫに同期する。これは、リードデータＤＱが、メモリコア３からクロックＣＬＫの２倍の周期でフリップフロップ１１２に入力され、フリップフロップ１１２が、クロックＣＬＫに従って、リードデータＤＱをラッチするからである。
【００６１】
書込み用ＤＬＬ回路５１および読出し用ＤＬＬ回路５２は、入力される信号をクロック周期の１／４の遅延量だけ遅延させる。この遅延量を得るために、従来は、４個の可変遅延回路を用意して、それぞれの遅延量を同一の値に設定し、それぞれの遅延量の和がクロックの周期に一致するように可変遅延回路を調整することが必要であった。可変遅延回路を使用するのは、クロックＣＬＫの周波数が可変であることと、温度変化などの環境変化に対応するためである。しかしながら、従来では、４個の可変遅延回路を使用するので、回路面積が大きくなるとともに、消費電力が大きくなるという問題があった。
【００６２】
これに対して、本実施の形態では、１つの可変遅延回路に信号を複数回通過させることによって、クロック周期の１／４の遅延量を可変遅延回路に設定する。これによって、回路の面積が小さくなるとともに、消費電力を低減することができる。
【００６３】
図７は、第２の実施形態の書込み用ＤＬＬ回路の構成を表わす図である。
書込み用ＤＬＬ回路５１は、マスタＤＬＬ１０と、複数のデータレーンとを有する。
【００６４】
複数のデータレーンは、図７では、代表的に２つのデータレーン１０Ｍと１０Ｎとが示されている。データレーンは、データ出力制御回路とも称する。
【００６５】
データレーン１０Ｍ，１０Ｎは、それぞれ、セレクタ１１Ｍ，１１Ｎと、ＶＤＬ１２Ｍ，１２Ｎと、フリップフロップ１３Ｍ，１３Ｎとを備える。
【００６６】
セレクタ１１Ｍ，１１Ｎは、クロックＣＬＫと、ロウレベルの信号を受けて、いずれかを出力する。ＳＤＲＡＭへのデータの書込み時には、セレクタ１１Ｍは、クロックＣＬＫを出力する。セレクタ１１Ｍの出力を基準クロックＣＩと表わすことにする。
【００６７】
ＶＤＬ１２Ｍ，１２Ｎは、セレクタ１１Ｍ，１１Ｎから出力される信号を遅延させる。
マスタＤＬＬの制御ロジック１８から送られる制御信号Ｃｏｄｅに従って、ＶＤＬ１２Ｍ，１２Ｎの遅延量が調整される。ＶＤＬ１２Ｍの出力をデータレーンＭ用のクロックＣ９０と表わすことにする。
【００６８】
フリップフロップ１３Ｍ，１３Ｎは、入力データＤＩＮ＜Ｍ＞，ＤＩＮ＜Ｎ＞を受けてラッチし、ＶＤＬ１２Ｍ，１２Ｎから出力される信号の立ち上がりのタイミングおよび立下りのタイミングで、ラッチした入力データＤＩＮ＜Ｍ＞，ＤＩＮ＜Ｎ＞を出力する。
【００６９】
マスタＤＬＬ１０は、パルス生成回路１４と、セレクタ１５と、制御回路５００と、ＶＤＬ１２とを備える。制御回路５００は、カウンタ１６と、位相比較器１７と、制御ロジック１８とを備える。
【００７０】
パルス生成回路１４は、クロックＣＬＫの立ち上がりエッジからパルスＩＮを生成する。
セレクタ１５は、パルスＩＮおよびＶＤＬ１２から出力される遅延パルスＤＹをパルスＳＯとして出力する。セレクタ１５は、カウンタ１６から出力されるセレクト信号ＳＬがロウレベルのときには、入力された２つの信号のうちのパルスＩＮをパルスＳＯとして出力する。セレクタ１５は、カウンタ１６から出力されるセレクト信号ＳＬがハイレベルのときには、入力された２つの信号のうちの遅延パルスＤＹをパルスＳＯとして出力する。
【００７１】
ＶＤＬ１２は、セレクタ１５から出力されるパルスＳＯを遅延させて、遅延パルスＤＹを出力する。制御ロジック１８から出力される制御信号Ｃｏｄｅに従って、ＶＤＬ１２の遅延量が調整される。
【００７２】
カウンタ１６には、パルスＳＯが入力される。カウンタ１６は、パルスＳＯの立下りごとに、カウント値ＣＮを更新する。カウント値ＣＮは０〜３の範囲で循環する。カウント値ＣＮが０、１、２のときに、カウンタ１６は、セレクト信号ＳＬをハイレベルに設定する。カウント値ＣＮが３のときに、カウンタ１６は、セレクト信号ＳＬをロウレベルに設定する。
【００７３】
位相比較器１７は、パルスＩＮと、遅延パルスＤＹの位相差を表わす信号を出力する。
制御ロジック１８は、セレクト信号ＳＬがロウレベルのときに、パルスＩＮと遅延パルスＤＹの位相差が０に近づくような制御信号Ｃｏｄｅを出力する。たとえば、制御ロジック１８は、遅延パルスＤＹの位相がパルスＩＮの位相よりもΔＤだけ遅れている場合には、ＶＤＬ１２の遅延量をΔＤ／４だけ減少させるように指示する制御信号Ｃｏｄｅを出力する。制御ロジック１８は、遅延パルスＤＹの位相がパルスＩＮの位相よりもΔＤだけ早い場合には、ＶＤＬ１２の遅延量をΔＤ／４だけ増加させるように指示する制御信号ＣｏｄｅをＶＤＬ１２、ＶＤＬ１２Ｍ、ＶＤＬ１２Ｎへ出力する。
【００７４】
図８は、第１の実施形態のマスタＤＬＬ１０と、データレーン１０Ｍの動作を表わすタイミングチャートである。
【００７５】
図８は、位相比較器１７での位相比較結果が所定値以下となり、制御ロジック１８がロック判定する時点よりも１クロック前からの動作を表わす。
【００７６】
時刻ｔ１の時点で、クロックＣＬＫが立ち上がり、入力データＤＩＮ＜Ｍ＞のデータが変化する。また、セレクト信号ＳＬがロウレベルであり、カウンタ１６のカウント値ＣＮを「３」とする。
【００７７】
時刻ｔ１の時点で、パルス生成回路１４は、クロックＣＬＫの立ち上がりに基づいて、パルスＩＮ（（１）に示す）を生成する。
【００７８】
また、データレーンＭのセレクタ１１Ｍは、入力されたクロックＣＬＫの立上がりを基準クロックＣＩの立ち上がりとして出力する。（（Ａ）に示す）。さらに、ＶＤＬ１２Ｍは、基準クロックＣＩの立ち上がりを遅延量ｄ（＝Ｘ）だけ遅延させて、データレーンＭ用のクロックＣ９０の立ち上がりとして出力する（（Ｂ）に示す）。
【００７９】
また、セレクト信号ＳＬがロウレベルのため、位相比較器１７は、１つ前のサイクルに起因する遅延パルスＤＹ（（０）に示す）の位相と、パルスＩＮ（（１）に示す）の位相とを比較して、位相差を制御ロジック１８に出力する。
【００８０】
制御ロジック１８は、位相差が所定値を超えるため、ロックしていないと判定し、ＤＬＬ処理を継続する。制御ロジック１８は、ＶＤＬ１２，１２Ｍ，１２Ｎの遅延量ｄをＹに設定するための制御信号Ｃｏｄｅを出力する。
【００８１】
その後、セレクト信号ＳＬがロウレベルのため、セレクタ１５は、パルスＩＮ（１）を選択して、パルスＳＯ（（２）に示す）として出力する。
【００８２】
生成されたパルスＳＯ（（２）に示す）に基づいて、カウンタ１６のカウント値ＣＮは「０」に更新される。これによって、カウンタ１６は、セレクト信号ＳＬをハイレベルに設定する（（３）に示す）。また、生成されたパルスＳＯ（（２）に示す）はＶＤＬ１２に送られて、ＶＤＬ１２は、Ｙだけ遅延させた遅延パルスＤＹ（（４）に示す）を出力する。
【００８３】
次に、セレクタ１５は、セレクト信号ＳＬがハイレベルのため、遅延パルスＤＹ（（４）に示す）を選択して、パルスＳＯ（（５）に示す）として出力する。生成されたパルスＳＯ（（５）に示す）に基づいて、カウンタ１６のカウント値ＣＮは「１」に更新される。
【００８４】
時刻ｔ２の時点で、クロックＣＬＫが立ち下がる。
データレーンＭのセレクタ１１Ｍは、入力されたクロックＣＬＫの立下りを基準クロックＣＩの立下りとして出力する（（Ｃ）に示す）。さらに、ＶＤＬ１２Ｍは、基準クロックＣＩの立下りを遅延量ｄ（＝Ｙ）だけ遅延させて、データレーンＭ用のクロックＣ９０の立下りとして出力する（（Ｄ）に示す）。
【００８５】
生成されたパルスＳＯ（（５）に示す）はＶＤＬ１２に送られて、ＶＤＬ１２は、Ｙだけ遅延させた遅延パルスＤＹ（（６）に示す）を出力する。
【００８６】
次に、セレクタ１５は、セレクト信号ＳＬがハイレベルのため、遅延パルスＤＹ（（６）に示す）を選択して、パルスＳＯ（（７）に示す）として出力する。
【００８７】
生成されたパルスＳＯ（（７）に示す）に基づいて、カウンタ１６のカウント値ＣＮは「２」に更新される。また、生成されたパルスＳＯ（（７）に示す）はＶＤＬ１２に送られて、ＶＤＬ１２は、Ｙだけ遅延させた遅延パルスＤＹ（（８）に示す）を出力する。
【００８８】
次に、セレクタ１５は、セレクト信号ＳＬがハイレベルのため、遅延パルスＤＹ（（８）に示す）を選択して、パルスＳＯ（（９）に示す）として出力する。
【００８９】
生成されたパルスＳＯ（（９）に示す）に基づいて、カウンタ１６のカウント値ＣＮは「３」に更新される。これによって、カウンタ１６は、セレクト信号ＳＬをロウレベルに設定する（（１０）に示す）。
【００９０】
時刻ｔ３の時点で、クロックＣＬＫが立ち上がり、入力データＤＩＮ＜Ｎ＞のデータが変化する。
【００９１】
時刻ｔ３の時点で、パルス生成回路１４は、クロックＣＬＫの立ち上がりに基づいて、パルスＩＮ（（１１）に示す）を生成する。
【００９２】
生成されたパルスＳＯ（（９）に示す）はＶＤＬ１２に送られて、ＶＤＬ１２は、Ｙだけ遅延させた遅延パルスＤＹ（（１２）に示す）を出力する。
【００９３】
セレクト信号ＳＬがロウレベルのため、位相比較器１７は、遅延パルスＤＹ（（１２）に示す）の位相と、パルスＩＮ（（１１）に示す）の位相とを比較して、位相差を制御ロジック１８に出力する。
【００９４】
制御ロジック１８は、位相差が所定値以下のため、ロックしたと判定し、ＶＤＬ１２の遅延量ｄ（＝Ｙ）を保持する。
【００９５】
制御ロジック１８は、ＶＤＬ１２，１２Ｍ，１２Ｎの遅延量ｄをＹに固定するための制御信号ＣｏｄｅをＶＤＬ１２，ＶＤＬ１２Ｍ，ＶＤＬ１２Ｎへ出力する。
【００９６】
また、データレーンＭのセレクタ１１Ｍは、入力されたクロックＣＬＫの立下りを基準クロックＣＩの立下りとして出力する（（Ｅ）に示す）。さらに、ＶＤＬ１２Ｍは、基準クロックＣＩの立下りを遅延量ｄ（＝Ｙ）だけ遅延させて、データレーンＭ用のクロックＣ９０の立下りとして出力する（（Ｆ）に示す）。
【００９７】
フリップフロップ１３Ｍは、データＭ用のクロックＣ９０の立ち上りに基づいて、入力データＤＩＮ＜Ｍ＞であるライトデータＤ２（Ｗ）をラッチして、出力データＤＯＵＴ＜Ｍ＞として出力する。
【００９８】
さらに、フリップフロップ１３Ｍは、データＭ用のクロックＣ９０の立ち下がりに基づいて、入力データＤＩＮ＜Ｍ＞であるライトデータＤ３（Ｗ）をラッチして、出力データＤＯＵＴ＜Ｍ＞として出力する。
【００９９】
図９は、第２の実施形態の読出し用ＤＬＬ回路の構成を表わす図である。
読出し用ＤＬＬ回路５２は、マスタＤＬＬ３０と、複数のデータレーンとを有する。
【０１００】
複数のデータレーンは、図９では、代表的に２つのデータレーン３０Ｍと３０Ｎとが示されている。
【０１０１】
データレーン３０Ｍ，３０Ｎは、それぞれ、セレクタ３１Ｍ，３１Ｎと、ＶＤＬ３２Ｍ，３２Ｎと、フリップフロップ３３Ｍ，３３Ｎとを備える。セレクタ３１Ｍ，３１Ｎと、ＶＤＬ３２Ｍ，３２Ｎと、フリップフロップ３３Ｍ，３３Ｎの機能は、書込み用ＤＬＬ回路５１に含まれるセレクタ１１Ｍ，１１Ｎと、ＶＤＬ１２Ｍ，１２Ｎと、フリップフロップ１３Ｍ，１３Ｎの機能と同様である。ただし、セレクタ３１Ｍ，３１Ｎは、クロックＣＬＫに代わりに、データストローブ信号ＤＱＳを受ける。
【０１０２】
マスタＤＬＬ３０は、パルス生成回路３４と、セレクタ３５と、制御回路５１０と、ＶＤＬ３２とを備える。制御回路５１０は、カウンタ３６と、位相比較器３７と、制御ロジック３８とを備える。
【０１０３】
パルス生成回路３４と、セレクタ３５と、カウンタ３６と、位相比較器３７と、制御ロジック３８と、ＶＤＬ３２の機能は、書込み用ＤＬＬ回路５１に含まれるパルス生成回路１４と、セレクタ１５と、カウンタ１６と、位相比較器１７と、制御ロジック１８と、ＶＤＬ１２の機能と同様である。
【０１０４】
データレーン３０Ｍ，３０ＮのＶＤＬ３２Ｍ，ＶＤＬ３２Ｎは、データストローブ信号ＤＱＳを遅延するのに対して、マスタＤＬＬ３０のＶＤＬ３２は、クロックＣＬＫを遅延するのは、クロックＣＬＫとデータストローブ信号ＤＱＳの周波数は同一だからである。マスタＤＬＬ３０において、クロックＣＬＫの周期Ｔの１／４の時間を特定して、その時間をＶＤＬ３２Ｍ，ＶＤＬ３２Ｎの遅延時間に設定することによって、データストローブ信号ＤＱＳをクロックＣＬＫの周期Ｔの１／４時間だけ遅らせることができる。
【０１０５】
以上のように、本実施の形態によれば、第１の実施形態と同様に、１つの可変遅延回路に信号を４回通過させることによって、クロック周期の１／４の遅延量を可変遅延回路に設定する。これによって、第１の実施形態と同様に、回路の面積が小さくなるとともに、消費電力を低減することができる。
【０１０６】
なお、本発明は、実施の形態で説明したようにＤＤＲインタフェースにおける１／４のクロック周期の遅延量を設定する回路、すなわち９０°位相調整回路以外のタイミング調整回路に用いることができる。
［第２の実施形態の変形例］
第２の実施形態では、クロックの周波数が高い場合には、位相比較および制御信号Ｃｏｄｅの変更の処理が追いつかないという問題がある。本変形例では、位相比較および制御信号Ｃｏｄｅの変更のために、１周期分を用いる。
【０１０７】
図１０は、論理回路（位相比較器および制御ロジック）が動作する期間と、ＶＤＬが動作する期間を説明するための図である。
【０１０８】
カウンタ１６のカウント値ＣＮが０〜３のときには、ＶＤＬ３２が動作し、位相比較器３７の位相比較動作および制御ロジック３８による論理動作は停止する。
【０１０９】
カウンタ１６のカウント値ＣＮが４のときに、ＶＤＬ３２が動作し、位相比較器３７が位相比較動作を実行する。
【０１１０】
その後、ＶＤＬ３２が停止し、制御ロジック３８が論理動作を実行する。
その後、制御ロジック３８も動作を停止する。制御ロジック３８内のレジスタに記憶されている制御信号Ｃｏｄｅが表わす値が変更される。同時にリセット信号ｒｅｓｅｔがロウレベルに変化すると、マスタＤＬＬ３０内の制御ロジック３８内のレジスタ以外の回路はリセットされ、カウンタ１６のカウント値ＣＮも０に変化する。
【０１１１】
このように、ＶＤＬが停止し、制御ロジックによる遅延量の設定を行う期間を有することによって、クロックの周波数が高い場合でも、処理が追いつかなくなる問題を回避できる。
【０１１２】
［第３の実施形態］
本実施の形態では、データレーンごとに異なる遅延量を与えるＤＬＬ回路に関する。第２の実施形態では、マスタＤＬＬ３０によって設定された遅延量が、すべてのデータレーンのＶＤＬ、およびマスタＤＬＬ３０のＶＤＬに設定された。しかしながら、マスタＤＬＬ３０のＶＤＬと、データレーンのＶＤＬの特性が相違する場合に、データレーンのＶＤＬの遅延量が適切に設定できないという問題がある。
【０１１３】
本実施の形態では、データレーンごとにＶＤＬの遅延量を設定するための構成を有する。
【０１１４】
図１１は、第３の実施形態の書込み用ＤＬＬ回路の構成を表わす図である。
データレーン２０Ｍ，２０Ｎは、第２の実施形態と同様に、ＶＤＬ１２Ｍ，１２Ｎと、フリップフロップ１３Ｍ，１３Ｎとを備える。
【０１１５】
データレーン２０Ｍ，２０Ｎは、さらに、パルス生成回路１４Ｍ，１４Ｎと、セレクタ１５Ｍ，１５Ｎと、制御回路５００Ｍ，５００Ｎとを備える。制御回路５００Ｍ，５００Ｎは、カウンタ１６Ｍ，１６Ｎと、位相比較器１７Ｍ，１７Ｎと、制御ロジック１８Ｍ，１８Ｎとを備える。
【０１１６】
パルス生成回路１４Ｍ，１４Ｎと、セレクタ１５Ｍ，１５Ｎと、カウンタ１６Ｍ，１６Ｎと、位相比較器１７Ｍ，１７Ｎと、制御ロジック１８Ｍ，１８Ｎの機能は、第２の実施形態で説明したパルス生成回路１４と、セレクタ１５と、カウンタ１６と、位相比較器１７と、制御ロジック１８の機能と同様なので、説明を繰り返さない。
【０１１７】
ただし、第２の実施形態と相違するのは、制御ロジック１８Ｍは、データプレーン２０Ｍ内のＶＤＬ１２Ｍの遅延量を調整し、制御ロジック１８Ｎは、データプレーン２０Ｎ内のＶＤＬ１２Ｎの遅延量を調整する。
【０１１８】
本実施の形態によれば、データレーンごとのＶＤＬの遅延量を適切に設定することができる。
【０１１９】
［第４の実施形態］
図１２は、第４の実施形態の書込み用ＤＬＬ回路に含まれるマスタＤＬＬ４０の構成を表わす図である。
【０１２０】
マスタＤＬＬ４０は、第２の実施形態と同様のセレクタ１５と、ＶＤＬ１２と、位相比較器１７と、制御ロジック１８とを備える。
【０１２１】
マスタＤＬＬ４０は、第２の実施形態のものと機能が相違するパルス生成回路１１４と、カウンタ１１６とを備え、さらに論理和回路ＯＲを備える。
【０１２２】
第１の実施形態のパルス生成回路１４は、クロックＣＬＫの立ち上がりエッジからパルスＩＮを生成する。これに対して、本実施形態のパルス生成回路１１４は、クロックＣＬＫの立ち上がりエッジからパルスＩＮを生成し、クロックＣＬＫの立ち下がりエッジからパルスＩＮ２を生成する。
【０１２３】
第１の実施形態のカウンタ１６のカウント値ＣＮは０〜３の範囲で循環する。カウンタ１６は、カウント値ＣＮが０、１、２のときに、セレクト信号ＳＬをハイレベルに設定し、カウント値ＣＮが３のときに、セレクト信号ＳＬをロウレベルに設定する。これに対して、本実施の形態のカウンタ１１６のカウント値ＣＮは０〜１の範囲で循環する。カウンタ１１６は、カウント値ＣＮが０のときに、セレクト信号ＳＬをハイレベルに設定し、カウント値ＣＮが１のときに、セレクト信号ＳＬをロウレベルに設定する。
【０１２４】
論理和回路ＯＲは、パルスＩＮとパルスＩＮ２の論理和を位相比較器１７へ出力する。
図１３は、第４の実施形態のマスタＤＬＬ４０と、データレーン１０Ｍの動作を表わすタイミングチャートである。
【０１２５】
図１３は、位相比較器１７での位相比較結果が所定値以下となり、制御ロジック１８がロック判定する時点よりも１クロック前からの動作を表わす。
【０１２６】
時刻ｔ１の時点で、クロックＣＬＫが立ち上がり、入力データＤＩＮ＜Ｍ＞のデータが変化する。また、セレクト信号ＳＬがロウレベルであり、カウンタ１６のカウント値ＣＮを「１」とする。
【０１２７】
時刻ｔ１の時点で、パルス生成回路１１４は、クロックＣＬＫの立ち上がりに基づいて、パルスＩＮ（（１）に示す）を生成する。
【０１２８】
また、データレーン１０Ｍのセレクタ１１Ｍは、入力されたクロックＣＬＫの立上がりを基準クロックＣＩの立ち上がりとして出力する。（（Ａ）に示す）。さらに、ＶＤＬ１２Ｍは、基準クロックＣＩの立ち上がりを遅延量ｄ（＝Ｘ）だけ遅延させて、データレーン１０Ｍ用のクロックＣ９０の立ち上がりとして出力する（（Ｂ）に示す）。
【０１２９】
また、セレクト信号ＳＬがロウレベルのため、位相比較器１７は、１つ前のサイクルに起因する遅延パルスＤＹ（（０）に示す）の位相と、パルスＩＮ（（１）に示す）の位相とを比較して、位相差を制御ロジック１８に出力する。
【０１３０】
制御ロジック１８は、位相差が所定値を超えるため、ロックしていないと判定し、ＤＬＬ処理を継続する。制御ロジック１８は、ＶＤＬ１２，１２Ｍ，１２Ｎの遅延量ｄをＹに設定するための制御信号ＣｏｄｅをＶＤＬ１２，ＶＤＬ１２Ｍ，ＶＤＬ１２Ｎへ出力する。
【０１３１】
セレクト信号ＳＬがロウレベルのため、セレクタ１５は、パルスＩＮ（１）を選択して、パルスＳＯ（（２）に示す）として出力する。
【０１３２】
生成されたパルスＳＯ（（２）に示す）に基づいて、カウンタ１６のカウント値ＣＮは「０」に更新される。これによって、カウンタ１６は、セレクト信号ＳＬをハイレベルに設定する（（３）に示す）。また、生成されたパルスＳＯ（（２）に示す）はＶＤＬ１２に送られて、ＶＤＬ１２は、Ｙだけ遅延させた遅延パルスＤＹ（（４）に示す）を出力する。
【０１３３】
次に、セレクタ１５は、セレクト信号ＳＬがハイレベルのため、遅延パルスＤＹ（（４）に示す）を選択して、パルスＳＯ（（５）に示す）として出力する。生成されたパルスＳＯ（（５）に示す）に基づいて、カウンタ１６のカウント値ＣＮは「１」に更新される。これによって、カウンタ１６は、セレクト信号ＳＬをロウレベルに設定する（（６）に示す）。
【０１３４】
時刻ｔ２の時点で、クロックＣＬＫが立ち下がる。
時刻ｔ２の時点で、パルス生成回路１１４は、クロックＣＬＫの立ち下がりに基づいて、パルスＩＮ２（（７）に示す）を生成して、論理和回路ＯＲへ出力する。
【０１３５】
生成されたパルスＳＯ（（５）に示す）はＶＤＬ１２に送られて、ＶＤＬ１２は、Ｙだけ遅延させた遅延パルスＤＹ（（８）に示す）を出力する。
【０１３６】
セレクト信号ＳＬがロウレベルのため、位相比較器１７は、遅延パルスＤＹ（（８）に示す）の位相と、論理和回路ＯＲから送られるパルスＩＮ２（（７）に示す）の位相とを比較して、位相差を制御ロジック１８に出力する。
【０１３７】
制御ロジック１８は、位相差が所定値以下のため、ロックしたと判定し、ＶＤＬ１２の遅延量ｄ（＝Ｙ）を保持する。
【０１３８】
制御ロジック１８は、ＶＤＬ１２，１２Ｍ，１２Ｎの遅延量ｄをＹに固定するための制御信号Ｃｏｄｅを出力する。
【０１３９】
データレーン１０Ｍのセレクタ１１Ｍは、入力されたクロックＣＬＫの立下りを基準クロックＣＩの立下りとして出力する（（Ｃ）に示す）。さらに、ＶＤＬ１２Ｍは、基準クロックＣＩの立下りを遅延量ｄ（＝Ｙ）だけ遅延させて、データレーンＭ用のクロックＣ９０の立下りとして出力する（（Ｄ）に示す）。
【０１４０】
フリップフロップ１３Ｍは、データＭ用のクロックＣ９０の立ち下がりに基づいて、入力データＤＩＮ＜Ｍ＞であるライトデータＤ１（Ｗ）をラッチして、出力データＤＯＵＴ＜Ｍ＞として出力する。
【０１４１】
以上のように、本実施の形態によれば、クロックの立ち上がりエッジから生成されたパルスと、クロックの立下りエッジから生成されたパルスの両方を用いて、位相比較器により遅延パルスとの比較が行われるので、位相比較する間隔を第１の実施形態の位相比較する間隔の半分にすることができる。
【０１４２】
［第５の実施形態］
第１〜第４の実施形態では、ＤＬＬ回路を回路ブロック内でのタイミング生成に適したが、遅延時間などを計測する手段にも適用することができる。
【０１４３】
本実施の形態では、ＴＤＲ（Time Domain Reflectmetry）測定にＤＬＬ回路を用いる。
図１４は、ＴＤＲ測定機能を有する入出力バッファ１５１の構成を表わす図である。
【０１４４】
入出力バッファ１５１は、半導体装置であって、フリップフロップ１５２〜１５４と、セレクタ１５５〜１５７と、ＶＤＬ１６０と、送信データ経路１６２と、受信データ経路１６３と、制御回路５４０とを備える。制御回路５４０は、カウンタ１５８と、位相比較器１５９と、制御ロジック１６１とを備える。
【０１４５】
セレクタ１５５〜１５７は、セレクト信号ＳＬ、ＳＬ２、ＳＬ３によって制御される。
図１５は、データライト時、データリード時、およびＴＤＲ測定時におけるセレクト信号ＳＬ，ＳＬ２，ＳＬ３の状態を表わす図である。
【０１４６】
データライト時には、セレクト信号ＳＬ２はハイレベル（「１」）に設定される。セレクト信号ＳＬ、ＳＬ３は、＊（Ｄｏｎ’ｔ  Ｃａｒｅ）である。
【０１４７】
データリード時には、セレクト信号ＳＬ、ＳＬ２、ＳＬ３は、ロウレベル（「０」）、ハイレベル（「１」）、ハイレベル（「１」）に設定される。
【０１４８】
ＴＤＲ測定時には、セレクト信号ＳＬはロウレベル（「０」に示す）とハイレベル（「１」に示す）の間で設定が変化する。セレクト信号ＳＬ２、ＳＬ３は、いずれもロウレベル（「０」）に設定される。
【０１４９】
（データライト時の動作）
端子Ｄｉｎに入力されたライトデータは、フリップフロップ１５２に入力される。フリップフロップ１５２は、クロックＣＬＫの立ち上がりに応じて、ライトデータをラッチして、データＤｉｎ２として出力する。
【０１５０】
セレクタ１５５は、セレクト信号ＳＬ２がハイレベルのため、データＤｉｎ２を送信データ経路１６２の端子Ｐｏｒｔ１へ出力する。データＤｉｎ２は、送信データ経路１６２を伝送し、端子Ｐｏｒｔ２から出力されたデータＤｉｎ２は、対象装置１９０へ出力される。
【０１５１】
（データリード時の動作）
対象装置１９０から出力されたデータＤｏｕｔ２は、受信データ経路１６３の端子Ｐｏｒｔ３へ送られる。データＤｏｕｔ２は、受信データ経路１６３を伝送し、端子Ｐｏｒｔ４から出力されたデータＤｏｕｔ２は、フリップフロップ１５３へ送られる。
【０１５２】
一方、パルス生成回路１５４が、クロックＣＬＫの立ち上がりに基づいてパルスＩｎを生成する。セレクト信号ＳＬがロウレベルに設定されているため、セレクタ１５７は、パルスＩＮをパルスＳＯとして出力する。ＶＤＬ１６０は、パルスＳＯを遅延させて、遅延パルスＤＹを出力する。セレクト信号ＳＬ３がハイレベルのため、セレクタ１５６は、遅延パルスＤＹを選択して、フリップフロップ１５３へ出力する。
【０１５３】
フリップフロップ１５３は、遅延パルスＤＹの立ち上がりに応じて、データＤｏｕｔ２をラッチして、データＤｏｕｔとして出力する。また、セレクト信号ＳＬ２がハイレベルのため、セレクタ１５５は、パルスＩＮを出力せず、端子Ｄｉｎにライトデータが入力されないため、ライトデータを出力しない。
【０１５４】
（ＴＤＲ測定時の動作）
図１６は、ＴＤＲ測定時の動作を表わすタイミング図である。
【０１５５】
パルス生成回路１５４が、クロックＣＬＫの立ち上がりに基づいてパルスＩｎを生成する（図１６の（Ａ）に示す）。
【０１５６】
セレクタ１５５は、セレクト信号ＳＬ２がロウレベルのため、パルスＩｎを送信データ経路１６２の端子Ｐｏｒｔ１へ出力する。パルスＩｎは、送信データ経路１６２を伝送し、端子Ｐｏｒｔ２から出力されたパルスＩｎは、対象装置１９０へ出力される。
【０１５７】
対象装置１９０で折り返されたパルスＩｎは、受信データ経路１６３の端子Ｐｏｒｔ３へ送られる。パルスＩｎは、受信データ経路１６３を伝送し、端子Ｐｏｒｔ４から出力されたデータＤｏｕｔ２は、フリップフロップ１５３へ送られるともに、位相比較器１５９へ送られる。
【０１５８】
一方、セレクト信号ＳＬが最初にロウレベルに設定されているため、セレクタ１５７は、パルスＩＮをパルスＳＯとして出力する。ＶＤＬ１６０は、パルスＳＯを遅延させて、遅延パルスＤＹを出力する。以降、セレクト信号ＳＬがハイレベルに変化する。カウンタ１５８のカウント値の取りうる範囲が０〜５とする。
【０１５９】
以降、セレクタ１５７は、遅延パルスＤＹの選択を繰り返し、カウンタ１５８は、カウント値の更新を繰り返し、ＶＤＬ１６０で生成された遅延パルスＤＹがセレクタ１５７へ送られ続ける。
【０１６０】
カウンタ１５８のカウント値が「５」に達したときに、カウンタ１５８は、セレクト信号ＳＬをロウレベルに設定する。セレクト信号ＳＬがロウベルとなると、位相比較器１５９は、ＶＤＬ１６０から出力される遅延パルスＤＹの位相と、受信データ経路１６３のＰｏｒｔ４から送られたパルスＩＮ（図１６の（Ｂ）に示す）の位相の差を比較する。位相差の差が所定値以下でない場合、制御ロジック１６１によって、ＶＤＬ１６０の遅延時間が変更されて、上述の処理が繰り返される。
【０１６１】
位相差が所定値以下となった場合に、パルス生成回路１５４でパルスＩＮが生成された（図１６の（Ａ）に示す）時刻と、パルスＩＮが対象装置１９０で折り返されて位相比較器で受信した（図１６の（Ｂ）に示す）時刻との時間差ＴＡは、６×ｔｂで表される。
【０１６２】
時間差は、送信データ経路１６２の信号の伝送時間と、受信データ経路１６３の信号の伝送時間と、対象装置１９０での信号の折り返し時間の和とみなすことができる。
【０１６３】
また、ｔｂは、パルスがセレクタ１５７を通過する時間ｔ１と、ＶＤＬ１６０の遅延時間ｔ２の和とみなすことができる。ｔ１は、設計時に決められた既知の値とする。ｔ２は、制御ロジック１６１によって設定される値である。よって、制御ロジック１６１は、ｔ１とｔ２の和からｔｂを求めて、ｔｂに６を掛け合わせることによって、ＴＡを求める。
【０１６４】
なお、セレクト信号ＳＬ３がロウレベルに設定されているため、セレクタ１５６は、ロウベルの信号を出力し、フリップフロップ１５３は、受信データ経路１６３から出力されるパルスＩＮを取り込まない。
【０１６５】
以上のように、本実施の形態によれば、ＴＤＲ測定時において、送信データ経路の信号の伝送時間と、受信データ経路の信号の伝送時間と、対象装置での信号の折り返し時間の和を１個の可変遅延回路によって求めることができる。これにより、回路面積を小さくすることができるとともに、消費電力を削減することができる。
【０１６６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１６７】
２，１５１  入出力バッファ、３  メモリコア、１０，３０，４０  マスタＤＬＬ、１０Ｍ，１０Ｎ，２０Ｍ，２０Ｎ，３０Ｍ，３０Ｎ  データレーン、５１  書込み用ＤＬＬ回路、５２  読み出用ＤＬＬ回路、８０  ＳＯＣ、８１  ＣＰＵ、８２  画像ＩＰ、８３  音声／動画ＩＰ、８４  システムバス、８５  ＵＳＢインタフェース、８６  ＤＤＲ−ＳＤＲＡＭ、８７  ＤＤＲインタフェース、８８  ディスプレイポート、８９  周辺機器、９０  モニタ、１０１  ＰＬＬ回路、１３Ｍ，１３Ｎ，３３Ｍ，３３Ｎ，１０２〜１０５、１１２〜１１４，１５２，１５３  フリップフロップ回路、１４，１４Ｍ，１４Ｎ，３４，１１４，１５４  パルス生成回路、１６，１６Ｍ，１６Ｎ，３６，１５８  カウンタ、１７，１７Ｍ，１７Ｎ，３７，１５９  位相比較器、１８，１８Ｍ，１８Ｎ，３８，１６１  制御ロジック、１０６〜１１１，１１６〜１２１  バッファ、１２，１２Ｍ，１２Ｎ，３２，３２Ｍ，３２Ｎ，１６０，２０１  ＶＤＬ、１１Ｍ，１１Ｎ，１５，１５Ｍ，１５Ｎ，３１Ｍ，３１Ｎ，３５，１５５，１５６，１５７，２０２  セレクタ、１６２  送信データ経路、１６３  受信データ経路、１９０  対象装置、２０３  制御回路、２０５  パルス生成回路、２１０  ＤＬＬ回路、２００，２２０  半導体装置、５００，５００Ｍ，５００Ｎ，５１０，５３０，５４０  制御回路。
【図１】
0006440481.tif 000002
【図２】
0006440481.tif 000003
【図３】
0006440481.tif 000004
【図４】
0006440481.tif 000005
【図５】
0006440481.tif 000006
【図６】
0006440481.tif 000007
【図７】
0006440481.tif 000008
【図８】
0006440481.tif 000009
【図９】
0006440481.tif 000010
【図１０】
0006440481.tif 000011
【図１１】
0006440481.tif 000012
【図１２】
0006440481.tif 000013
【図１３】
0006440481.tif 000014
【図１４】
0006440481.tif 000015
【図１５】
0006440481.tif 000016
【図１６】
0006440481.tif 000017