(57)【要約】【課題】データ信号とクロック信号との間のスキューを補償するための技術を提供する。【解決手段】半導体装置が、受信データ信号をラッチして受信データを出力するラッチ回路と、受信クロック信号を設定された設定遅延時間だけ遅延させるように構成された遅延回路部と、設定遅延時間を制御するように構成された遅延制御回路部とを具備する。遅延制御回路部は、キャリブレーション動作において、設定遅延時間を初期値から増大させて受信データの値が安定して第１値をとるようになる第１遅延時間を探索し、設定遅延時間を第１遅延時間から増加させて受信データの値が安定して第２値をとるようになる第２遅延時間を探索し、設定遅延時間を第２遅延時間から減少させて受信データ信号の値が安定して第１値をとるようになる第３遅延時間を探索し、第１遅延時間と第３遅延時間とに基づいて設定遅延時間の最適値を決定する。【選択図】図３
2018029269.tif 000002
【特許請求の範囲】
【請求項１】
外部データ信号を受け取って受信データ信号を出力する第１バッファと、
外部クロック信号を受け取って受信クロック信号を出力する第２バッファと、
前記受信クロック信号に応答して前記受信データ信号又は前記受信データ信号から生成された信号をラッチして受信データを出力するラッチ回路と、
前記受信データ信号と前記受信クロック信号の一方の信号を、設定された設定遅延時間だけ他方の信号に対して遅延させるように構成された遅延回路部と、
前記設定遅延時間を制御するように構成された遅延制御回路部
とを具備し、
前記遅延制御回路部は、前記設定遅延時間の最適値を決定する第１キャリブレーション動作において、
前記設定遅延時間を初期値に設定する初期設定動作と、
前記設定遅延時間を初期値から増大させて前記受信データの値が安定して第１値をとるようになる前記設定遅延時間である第１遅延時間を探索する第１フェイズ動作と、
前記設定遅延時間を前記第１遅延時間から増加させて前記受信データの値が安定して前記第１値と異なる第２値をとるようになる前記設定遅延時間である第２遅延時間を探索する第２フェイズ動作と、
前記設定遅延時間を前記第２遅延時間から減少させて前記受信データ信号の値が安定して前記第１値をとるようになる前記設定遅延時間である第３遅延時間を探索する第３フェイズ動作と、
前記第１遅延時間と前記第３遅延時間とに基づいて前記設定遅延時間の最適値を決定する最適値決定動作
とを行うように構成された
半導体装置。
【請求項２】
請求項１に記載の半導体装置であって、
前記遅延制御回路部は、前記第１フェイズ動作においては前記設定遅延時間を第１増分で増加させ、前記第２フェイズ動作においては前記設定遅延時間を前記第１増分よりも大きい第２増分で増加させるように構成された
半導体装置。
【請求項３】
請求項１に記載の半導体装置であって、
更に、
前記受信クロック信号を受け取り、前記受信クロック信号を反転して反転クロック信号を生成するインバータと、
前記受信クロック信号と前記反転クロック信号のうちから選択された内部クロック信号を前記ラッチ回路に供給する選択回路
とを具備し、
前記ラッチ回路は、前記内部クロック信号を受け取って前記受信データ信号をラッチする
半導体装置。
【請求項４】
請求項３に記載の半導体装置であって、
前記初期設定動作において前記設定遅延時間を前記初期値に設定したときに前記ラッチ回路によってラッチされた前記受信データ信号の値が前記第１値である場合、前記第１フェイズ動作、前記第２フェイズ動作及び前記第３フェイズ動作において、前記選択回路が前記反転クロック信号を前記内部クロック信号として選択する
半導体装置。
【請求項５】
請求項１に記載の半導体装置であって、
更に、
前記受信データ信号を受け取り、前記受信データ信号を反転して反転データ信号を生成するインバータと、
前記受信データ信号と前記反転データ信号のうちから選択された選択データ信号を前記ラッチ回路に供給する選択回路
とを具備し、
前記ラッチ回路は、前記選択データ信号をラッチする
半導体装置。
【請求項６】
請求項５に記載の半導体装置であって、
前記初期設定動作において前記設定遅延時間を前記初期値に設定したときに前記ラッチ回路によってラッチされた前記受信データ信号の値が前記第１値である場合、前記第１フェイズ動作、前記第２フェイズ動作及び前記第３フェイズ動作において、前記選択回路が前記反転データ信号を前記選択データ信号として選択する
半導体装置。
【請求項７】
請求項１乃至６のいずれかに記載の半導体装置であって、
前記遅延制御回路部は、前記第１キャリブレーション動作の前記最適値決定動作において、前記第１遅延時間と前記第３遅延時間の平均値と以前のキャリブレーション動作で決定された前記設定遅延時間の最適値とを比較し、前記以前のキャリブレーション動作で決定された前記設定遅延時間の最適値よりも前記平均値が長い場合、前記第１キャリブレーション動作において、前記以前のキャリブレーション動作で決定された前記設定遅延時間の最適値より所定時間だけ長い遅延時間を前記設定遅延時間の最適値として決定し、前記以前のキャリブレーション動作で決定された前記設定遅延時間の最適値よりも前記平均値が短い場合、前記第１キャリブレーション動作において、前記以前のキャリブレーション動作で決定された前記設定遅延時間の最適値より所定時間だけ短い遅延時間を前記設定遅延時間の最適値として決定する
半導体装置。
【請求項８】
請求項１乃至６のいずれかに記載の半導体装置であって、
前記遅延制御回路部は、前記第１キャリブレーション動作より後で行われる第２キャリブレーション動作において、前記設定遅延時間を前記初期値に設定する動作と、前記設定遅延時間を前記初期値から増大させて前記受信データの値が安定して前記第１値をとるようになる前記設定遅延時間である第４遅延時間を探索する動作とを行うように構成され、
前記遅延制御回路部は、前記第２キャリブレーション動作において、前記設定遅延時間の最適値を、前記第４遅延時間に、前記第３遅延時間から前記第１遅延時間を減じて得られる差の２分の１を加えた遅延時間として算出する
半導体装置。
【請求項９】
請求項１乃至８のいずれかに記載の半導体装置であって、
前記第１フェイズ動作と前記第２フェイズ動作との間の期間に、前記外部データ信号と前記外部クロック信号とを外部から前記半導体装置に送信することによってデータ伝送が行われ、
前記遅延制御回路部は、前記第２フェイズ動作において、前記第１遅延時間を前記設定遅延時間として設定して前記受信データが安定して前記第１値をとるかを判断し、前記受信データが安定して前記第１値をとらない場合に前記第１遅延時間を調節する
半導体装置。
【請求項１０】
請求項１乃至８のいずれかに記載の半導体装置であって、
前記第２フェイズ動作と前記第３フェイズ動作との間の期間に、前記外部データ信号と前記外部クロック信号とを外部から前記半導体装置に送信することによってデータ伝送が行われ、
前記遅延制御回路部は、前記第３フェイズ動作において、前記第２遅延時間を前記設定遅延時間として設定して前記受信データが安定して前記第２値をとるかを判断し、前記受信データが安定して前記第２値をとらない場合に前記第２遅延時間を調節する
半導体装置。
【請求項１１】
外部データ信号と外部クロック信号を出力するデータ送信装置と、
データ受信装置と、
前記外部データ信号を前記データ受信装置に伝送するデータ伝送路と、
前記データ伝送路とは別に設けられ、前記外部クロック信号を前記データ受信装置に伝送するクロック伝送路
とを具備し、
前記データ受信装置は、
前記外部データ信号を受け取って受信データ信号を出力する第１バッファと、
前記外部クロック信号を受け取って受信クロック信号を出力する第２バッファと、
前記受信クロック信号に応答して前記受信データ信号又は前記受信データ信号から生成された信号をラッチするラッチ回路と、
前記受信データ信号と前記受信クロック信号の一方の信号を、設定された設定遅延時間だけ他方の信号に対して遅延させるように構成された遅延回路部と、
前記設定遅延時間を制御するように構成された遅延制御回路部
とを備え、
前記遅延制御回路部は、前記設定遅延時間の最適値を決定するキャリブレーション動作において、
前記設定遅延時間を初期値に設定する初期設定動作と、
前記設定遅延時間を初期値から増大させて前記ラッチ回路によってラッチされた前記受信データ信号の値が安定して第１値をとるようになる前記設定遅延時間である第１遅延時間を探索する第１フェイズ動作と、
前記設定遅延時間を前記第１遅延時間から増加させて前記ラッチ回路によってラッチされた前記受信データ信号の値が安定して前記第１値と異なる第２値をとるようになる前記設定遅延時間である第２遅延時間を探索する第２フェイズ動作と、
前記設定遅延時間を前記第２遅延時間から減少させて前記ラッチ回路によってラッチされた前記受信データ信号の値が安定して前記第１値をとるようになる前記設定遅延時間である第３遅延時間を探索する第３フェイズ動作と、
前記第１遅延時間と前記第３遅延時間とに基づいて前記設定遅延時間の最適値を決定する最適値決定動作
とを行うように構成された
データ伝送システム。
【請求項１２】
請求項１１に記載のデータ伝送システムであって、
前記第１フェイズ動作と前記第２フェイズ動作の間の期間において、前記外部データ信号と前記外部クロック信号とを前記データ送信装置から前記データ受信装置に送信することによってデータ伝送が行われる
データ伝送システム。
【請求項１３】
請求項１１又は１２に記載のデータ伝送システムであって、
前記第２フェイズ動作と前記第３フェイズ動作の間の期間において、前記外部データ信号と前記外部クロック信号とを前記データ送信装置から前記データ受信装置に送信することによってデータ伝送が行われる
データ伝送システム。
【請求項１４】
外部データ信号を受け取って受信データ信号を出力する第１バッファと、
外部クロック信号を受け取って受信クロック信号を出力する第２バッファと、
前記受信クロック信号に応答して前記受信データ信号又は前記受信データ信号から生成された信号をラッチして受信データを出力するラッチ回路と、
前記受信データ信号と前記受信クロック信号の一方の信号を、設定された設定遅延時間だけ他方の信号に対して遅延させるように構成された遅延回路部
とを具備する半導体装置の動作方法であって、
前記設定遅延時間の最適値を決定するキャリブレーション動作を行うステップ
を具備し、
前記キャリブレーション動作は、
前記設定遅延時間を初期値に設定する初期設定動作と、
前記設定遅延時間を初期値から増大させて前記受信データの値が安定して第１値をとるようになる前記設定遅延時間である第１遅延時間を探索する第１フェイズ動作と、
前記設定遅延時間を前記第１遅延時間から増加させて前記受信データの値が安定して前記第１値と異なる第２値をとるようになる前記設定遅延時間である第２遅延時間を探索する第２フェイズ動作と、
前記設定遅延時間を前記第２遅延時間から減少させて前記受信データ信号の値が安定して前記第１値をとるようになる前記設定遅延時間である第３遅延時間を探索する第３フェイズ動作と、
前記第１遅延時間と前記第３遅延時間とに基づいて前記設定遅延時間の最適値を決定する最適値決定動作
とを備えている
半導体装置の動作方法。
【請求項１５】
請求項１４に記載の半導体装置の動作方法であって、
前記第１フェイズ動作と前記第２フェイズ動作の間に、前記外部データ信号及び前記外部クロック信号によって前記半導体装置にデータを送信するデータ伝送を行うステップ
を更に具備する
半導体装置の動作方法。
【請求項１６】
請求項１４又は１５に記載の半導体装置の動作方法であって、
前記第２フェイズ動作と前記第３フェイズ動作の間に、前記外部データ信号及び前記外部クロック信号によって前記半導体装置にデータを送信するデータ伝送を行うステップ
を更に具備する
半導体装置の動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、データ伝送システム及び半導体装置の動作方法に関し、特に、半導体装置にデータを伝送するためのデータインターフェースに関する。
【背景技術】
【０００２】
近年の半導体装置は、ますます高速なデータ伝送が求められている。例えば、携帯端末の画面の高精細化に伴い、表示パネル（例えば、液晶表示パネルやＯＬＥＤ（organic light emitting diode）表示パネル）を駆動する表示ドライバへの画像データのデータ伝送レートは、ますます上昇している。
【０００３】
高速データ伝送に一般的に用いられる技術の一つは、データ信号にクロックを埋め込むクロックエンベデッド（clock embedded）技術である。しかしながら、クロックエンベデッド技術は、ＰＬＬ（phase locked loop）回路やＤＬＬ（delay locked loop）回路のような比較的消費電力が大きい回路が必要である。
【０００４】
このような背景から、携帯端末等、電池で駆動される機器では、クロックエンベデッド技術を用いず、データ信号とクロック信号とを別々の伝送路で送信するアーキテクチャを採用する場合がある。例えば、ＭＩＰＩ(Mobile Industry Processor Interface)アライアンスによって策定されたＭＩＰＩ  Ｄ−ＰＨＹ規格は、データ信号とクロック信号とを別々の伝送路で送信するアーキテクチャを採用している。
【０００５】
このようなアーキテクチャを採用するデータ伝送システムでは、受信側の設計により決まるセットアップタイム及びホールドタイムに対し、十分に余裕が確保できるようにデータ信号とクロック信号の位相が設計される。
【０００６】
図１Ａは、データ信号とクロック信号の位相の例を示している。データ転送の単位時間であるユニットインターバル（ＵＩ（unit interval））に対し、セットアップタイムとホールドタイムの和が十分に短ければデータ転送は安定する。１ユニットインターバルをｔＵＩ、セットアップタイムをｔＳＥＴＵＰ、ホールドタイムをｔＨＯＬＤとすると、ｔＵＩ−（ｔＳＥＴＵＰ＋ｔＨＯＬＤ）で表される時間差が、設計において許容される時間の余裕（時間マージン）である。図１Ａは、１ユニットインターバルに対し、セットアップタイムとホールドタイムの和が十分に短い場合を図示している。
【０００７】
この時間の余裕（時間マージン）は、送信側デバイス及び受信側デバイスの設計バラツキの補償に割り当てられることもあるが、データ信号とクロック信号とを独立した伝送路で送信するデータ伝送システムにおいて高いデータレートでデータ伝送を行う場合、時間の余裕の大部分が、伝送路の設計余裕を確保するために、即ち、データ信号とクロック信号との間のスキューに対応するために用いられる。
【０００８】
データ信号とクロック信号との間で発生するスキューの要因には、概略的には、次の２種類がある。第１の要因は、データ信号とクロック信号を伝送する伝送路の線路長の差により発生するタイミングのずれである。線路長の差は、スキューの大きな要因の一つであり、従来から、等長配線等で対応がなされている。第２の要因は、ＩＳＩ（Inter Symbol Interference）と呼ばれる伝送路の周波数特性による波形のゆがみである。データレートが高くなると、ＩＳＩのような、線路長の差以外の要因で発生するスキューも無視できなくなり、伝送路の設計の難易度も高くなってきている。
【０００９】
特に、近年では、４Ｋ／２Ｋディスプレイや高フレームレート化等の技術が開発されてきており、これらの技術は、画像データの転送におけるデータレートの急激な上昇を伴う。データレートの上昇は、１ユニットインターバルの短縮を意味しており、図１Ｂに図示されているように、時間の余裕を減少させることになる。従来は、１ユニットインターバルの短縮に対して、半導体製造プロセスの微細化によるセットアップタイム、ホールドタイムの短縮で対応してきていたが、近年のデータレートの上昇により、微細化によるセットアップタイム、ホールドタイムの短縮だけでは安定したデータ転送を実現するための時間の余裕を確保することが困難になってきている。
【００１０】
このような背景から、データ信号とクロック信号とを別々の伝送路で伝送するデータ伝送システムにおいて、データ信号とクロック信号との間のスキューを補償するための技術の提供が求められている。
【００１１】
なお、スキューを解消するための技術は、例えば、特開２０１４−１６８１９５号公報に開示されている。この公報に開示された受信装置は、クロック信号とデータ信号との少なくとも一方を遅延する可変遅延回路の遅延時間を、スキュー検出回路によって生成されたスキュー検出データに応じて制御するように構成されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１４−１６８１９５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従って、本発明の目的の一つは、データ信号とクロック信号とを別々の伝送路で伝送するデータ伝送システムにおいて、データ信号とクロック信号との間のスキューを補償するための技術を提供することにある。本発明の他の目的は、下記の開示から当業者には理解されるであろう。
【課題を解決するための手段】
【００１４】
本発明の一の観点では、半導体装置が、外部データ信号を受け取って受信データ信号を出力する第１バッファと、外部クロック信号を受け取って受信クロック信号を出力する第２バッファと、受信クロック信号に応答して受信データ信号又は受信データ信号から生成された信号をラッチして受信データを出力するラッチ回路と、受信データ信号と受信クロック信号の一方の信号を、設定された設定遅延時間だけ他方の信号に対して遅延させるように構成された遅延回路部と、設定遅延時間を制御するように構成された遅延制御回路部とを具備する。遅延制御回路部は、設定遅延時間の最適値を決定するキャリブレーション動作において、設定遅延時間を初期値に設定する初期設定動作と、設定遅延時間を初期値から増大させて受信データの値が安定して第１値をとるようになる設定遅延時間である第１遅延時間を探索する第１フェイズ動作と、設定遅延時間を第１遅延時間から増加させて受信データの値が安定して第１値と異なる第２値をとるようになる設定遅延時間である第２遅延時間を探索する第２フェイズ動作と、設定遅延時間を第２遅延時間から減少させて受信データ信号の値が安定して第１値をとるようになる設定遅延時間である第３遅延時間を探索する第３フェイズ動作と、第１遅延時間と第３遅延時間とに基づいて設定遅延時間の最適値を決定する最適値決定動作とを行うように構成されている。
【００１５】
このような半導体装置は、データ送信装置からデータ受信装置にデータ伝送を行うデータ伝送システムに好適に適用される。
【００１６】
本発明の他の観点では、外部データ信号を受け取って受信データ信号を出力する第１バッファと、外部クロック信号を受け取って受信クロック信号を出力する第２バッファと、受信クロック信号に応答して受信データ信号又は受信データ信号から生成された信号をラッチして受信データを出力するラッチ回路と、受信データ信号と受信クロック信号の一方の信号を、設定された設定遅延時間だけ他方の信号に対して遅延させるように構成された遅延回路部とを具備する半導体装置の動作方法が提供される。当該動作方法は、設定遅延時間の最適値を決定するキャリブレーション動作を行うステップを具備する。キャリブレーション動作は、設定遅延時間を初期値に設定する初期設定動作と、設定遅延時間を初期値から増大させて受信データの値が安定して第１値をとるようになる設定遅延時間である第１遅延時間を探索する第１フェイズ動作と、設定遅延時間を第１遅延時間から増加させて受信データの値が安定して第１値と異なる第２値をとるようになる設定遅延時間である第２遅延時間を探索する第２フェイズ動作と、設定遅延時間を第２遅延時間から減少させて受信データ信号の値が安定して第１値をとるようになる設定遅延時間である第３遅延時間を探索する第３フェイズ動作と、第１遅延時間と第３遅延時間とに基づいて設定遅延時間の最適値を決定する最適値決定動作とを備えている。
【発明の効果】
【００１７】
本発明によれば、データ信号とクロック信号とを別々の伝送路で伝送するデータ伝送システムにおいて、データ信号とクロック信号との間のスキューを補償するための技術を提供することができる。
【図面の簡単な説明】
【００１８】
【図１Ａ】データ信号とクロック信号の位相の例を示すタイミングチャートである。
【図１Ｂ】１ユニットインターバル（ＵＩ）が短縮された場合の時間の余裕（時間マージン）を示すタイミングチャートである。
【図２】一実施形態におけるデータ伝送システムの構成を示すブロック図である。
【図３】一実施形態におけるデータ受信装置の構成を示すブロック図である。
【図４】データ受信装置の構成の変形例を示すブロック図である。
【図５】キャリブレーション動作において生じ得る最適化クロック信号のエッジの位置のブレを説明するタイミングチャートである。
【図６】本実施形態におけるキャリブレーション動作の概要を示すタイミングチャートである。
【図７】第１フェイズにおけるデータ受信装置の動作を示すフローチャートである。
【図８】可変遅延回路の遅延設定値が初期値Ｄ０に設定されたときの受信データ信号と遅延クロック信号の波形の例を示すタイミングチャートである。
【図９Ａ】遅延設定値が初期値Ｄ０に設定されたときにラッチ回路によってラッチされた受信データ信号の値が“Ｌ”である場合の内部クロック信号（遅延クロック信号）の波形、及び、この場合に遅延クロック信号を用いて受信データ信号をラッチした場合の第１フェイズにおける動作を示すタイミングチャートである。
【図９Ｂ】遅延設定値が初期値Ｄ０に設定されたときにラッチ回路によってラッチされた受信データ信号の値が“Ｌ”である場合に、内部クロック信号を反転した場合の第１フェイズにおける動作を示すタイミングチャートである。
【図１０】第１フェイズで得られる遅延設定値Ｄ１と受信データ信号の波形の関係を示すタイミングチャートである。
【図１１】第２フェイズにおけるデータ受信装置の動作を示すフローチャートである。
【図１２】第２フェイズで得られる遅延設定値Ｄ２と受信データ信号の波形の関係を示すタイミングチャートである。
【図１３】第３フェイズにおけるデータ受信装置の動作を示すフローチャートである。
【図１４】第４フェイズで得られる遅延設定値Ｄ３と受信データ信号の波形の関係を示すタイミングチャートである。
【図１５】最適遅延設定値の算出方法及び産出された最適遅延設定値と受信データ信号の波形の関係を示すタイミングチャートである。
【図１６】第１フェイズ、第２フェイズ及び第３フェイズを分割して実行するキャリブレーション動作を行う場合のデータ伝送システムの動作の例を示すタイミングチャートである。
【図１７Ａ】第１フェイズと第２フェイズとを分割して実行する場合の経時変化による影響を抑制するために好適な第２フェイズの動作を示すフローチャートである。
【図１７Ｂ】第１フェイズと第２フェイズとを分割して実行する場合の経時変化による影響を抑制するために好適な第２フェイズの動作を示すフローチャートである。
【図１８Ａ】第２フェイズと第３フェイズとを分割して実行する場合の経時変化による影響を抑制するために好適な第３フェイズの動作を示すフローチャートである。
【図１８Ｂ】第２フェイズと第３フェイズとを分割して実行する場合の経時変化による影響を抑制するために好適な第３フェイズの動作を示すフローチャートである。
【図１９】データ受信装置の構成の他の変形例を示すブロック図である。
【図２０】データ受信装置の構成の更に他の変形例を示すブロック図である。
【図２１】データ受信装置の構成の更に他の変形例を示すブロック図である。
【図２２Ａ】データ伝送システムの構成の変形例を示すブロック図である。
【図２２Ｂ】図２２Ａに図示されているデータ伝送システムにおけるデータ受信装置の構成を示すブロック図である。
【図２３】オプション動作＃１に対応したデータ受信装置の構成を示すブロック図である。
【図２４】オプション動作＃１の手順を示すフローチャートである。
【図２５】オプション動作＃２に対応したデータ受信装置の構成を示すブロック図である。
【図２６Ａ】オプション動作＃２の手順を示すフローチャートである。
【図２６Ｂ】オプション動作＃２の手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、添付図面を参照しながら、様々な実施の形態を説明する。以下の説明において、同一又は類似の構成要素は、同一又は対応する参照符号によって参照することがある。
【００２０】
（第１の実施形態）
図２は、一実施形態におけるデータ伝送システム１０の構成を示すブロック図である。データ伝送システム１０は、データ送信装置１とデータ受信装置２とを備えている。データ送信装置１は、データ信号を伝送するデータ伝送路３とクロック信号を伝送するクロック伝送路４とによってデータ受信装置２に接続されている。一実施例としては、データ送信装置１が第１の半導体装置（又は集積回路（ＩＣ））として実装され、データ受信装置２が第２の半導体装置（又は集積回路）として実装される。例えば、データ送信装置１が、アプリケーションプロセッサに実装され、データ受信装置２が、表示パネル（例えば、液晶表示パネルやＯＬＥＤ表示パネル）を駆動する表示ドライバに実装されてもよい。
【００２１】
図１では、データ伝送路３が、それぞれ、１本の線として図示されているが、データ信号を差動信号として送信する場合には、データ伝送路３が該差動信号を伝送する２本の信号線を含んでいてもよい。クロック伝送路４についても同様に、クロック信号を差動信号として送信する場合には、クロック伝送路４が該差動信号を伝送する２本の信号線を含んでいてもよい。以下では、データ伝送路３で伝送されるデータ信号を外部データ信号５といい、クロック伝送路４によって伝送されるクロック信号を外部クロック信号６という。
【００２２】
図３は、一実施形態におけるデータ受信装置２の構成を示すブロック図である。データ受信装置２は、受信バッファ１１、１２と、遅延回路部（delay circuitry）１３と、クロック反転回路部（clock inversion circuitry）１４と、ラッチ回路１５と、シリアルパラレル変換回路１６と、遅延制御回路部（delay control circuitry）１７とを備えている。
【００２３】
受信バッファ１１は、データ伝送路３を介して伝送される外部データ信号５を受信し、受信した外部データ信号５に対応するシングルエンド信号である受信データ信号３１を出力する。同様に、受信バッファ１２は、クロック伝送路４によって伝送される外部クロック信号６を受信し、外部クロック信号６に対応するシングルエンド信号である受信クロック信号３２を出力する。
【００２４】
遅延回路部１３は、受信データ信号３１と受信クロック信号３２の一方の信号を、該遅延回路部１３に設定された設定遅延時間だけ他方の信号に対して遅延させるように構成されている。本実施形態では、遅延回路部１３は、受信クロック信号３２を遅延する一方、受信データ信号３１をそのまま出力するように構成される。遅延回路部１３は、受信バッファ１１の出力に接続された可変遅延回路１３ａを備えている。可変遅延回路１３ａは、それに設定された設定遅延時間だけ受信クロック信号３２を遅延し、遅延クロック信号３３を出力する。本実施形態では、可変遅延回路１３ａに設定される設定遅延時間は、遅延制御回路部１７から供給される遅延設定値によって指定される。以下では、簡単のために、遅延設定値が大きいほど、可変遅延回路１３ａに設定される設定遅延時間が長くなるとするとして説明を行う。
【００２５】
クロック反転回路部１４は、遅延クロック信号３３又は遅延クロック信号３３を反転して得られる反転クロック信号のいずれかを内部クロック信号３４として選択し、内部クロック信号３４を出力する。クロック反転回路部１４から出力される内部クロック信号３４は、ラッチ回路１５による受信データ信号３１のラッチに用いられる。クロック反転回路部１４は、インバータ１４ａとセレクタ１４ｂとを備えている。インバータ１４ａは、遅延クロック信号３３を反転して反転クロック信号を生成する。セレクタ１４ｂは、遅延制御回路部１７から供給されるクロック極性反転信号３５に応じて遅延クロック信号３３と反転クロック信号との一方のクロック信号を選択し、選択したクロック信号を内部クロック信号３４として出力する。
【００２６】
ラッチ回路１５は、内部クロック信号３４に同期して受信データ信号３１をラッチし、受信データ３６を出力する。ここで、内部クロック信号３４は、受信クロック信号３２から生成された遅延クロック信号３３又はその反転クロック信号であるから、ラッチ回路１５は、結局、受信クロック信号３２に応じて受信データ信号３１をラッチする動作を行うことに留意されたい。本実施形態では、簡単のために、ラッチ回路１５が、内部クロック信号３４の立ち上がりエッジに同期して、即ち、内部クロック信号３４がローレベルからハイレベルに立ち上がると受信データ信号３１をラッチするとして説明を行う。なお、ラッチ回路１５は、内部クロック信号３４の立ち下がりエッジに同期して受信データ信号３１をラッチするように構成されてもよいし、後述されるように、内部クロック信号３４の立ち上がりエッジと立ち下がりエッジの両方に同期して受信データ信号３１をラッチするように構成されてもよい。
【００２７】
シリアルパラレル変換回路１６は、内部クロック信号３４に同期して受信データ３６を受け取り、受信データ３６に対してシリアルパラレル変換を行ってパラレルデータ３７を生成する。加えて、シリアルパラレル変換回路１６は、内部クロック信号３４に基づいて、パラレルデータ３７に同期したパラレルデータ用クロック信号３８を生成する。パラレルデータ用クロック信号３８は、後段の回路においてパラレルデータ３７をラッチするために用いられる。
【００２８】
遅延制御回路部１７は、可変遅延回路１３ａに設定すべき設定遅延時間を指定する遅延設定値を可変遅延回路１３ａに供給する。ここで、本実施形態では、遅延制御回路部１７は、受信バッファ１１、１２によって受信される外部データ信号５と外部クロック信号６の間のスキューを補償するために最適な遅延設定値（以下、「最適遅延設定値」という。）を算出するキャリブレーション動作を実行可能なように構成されている。データ伝送システム１０がキャリブレーションを行う動作モードであるキャリブレーションモードに設定されると、遅延制御回路部１７は、キャリブレーション動作、即ち、最適遅延設定値を算出するための動作を行う。後述されるように、遅延制御回路部１７は、可変遅延回路１３ａに設定された各遅延設定値（設定遅延時間）と、各遅延設定値に対する受信データ３６の値とに基づいて、最適遅延設定値を算出する。通常動作時には、遅延制御回路部１７は、キャリブレーション動作で算出した最適遅延設定値を可変遅延回路１３ａに設定する。
【００２９】
本実施形態では、遅延制御回路部１７は、キャリブレーション制御回路２１と、安定確認カウンタ２２と、アップダウンカウンタ２３と、セレクタ２４とを備えている。キャリブレーション制御回路２１は、キャリブレーション動作を制御する。キャリブレーション制御回路２１は、レジスタ＃１〜＃４とシーケンス制御回路２５とを備えている。レジスタ＃１〜＃４は、キャリブレーション動作において用いられるデータ及び算出された最適遅延設定値を保持するために用いられる。シーケンス制御回路２５は、キャリブレーション動作の各ステップを実行する手順がプログラムされており、当該手順に従ってキャリブレーション制御回路２１からのデータ及び信号の出力及びキャリブレーション制御回路２１の外部からのデータの受領を行う。
【００３０】
安定確認カウンタ２２は、ラッチ回路１５から受信データ３６を受け取り、受信データ３６において同一値が連続して現れる回数をカウントする。後述されるように、安定確認カウンタ２２のカウント値は、受信データ３６の値が安定したことの確認のために用いられる。
【００３１】
アップダウンカウンタ２３は、キャリブレーション制御回路２１による制御の下、カウント値を増減する。本実施形態では、アップダウンカウンタ２３は、キャリブレーション制御回路２１から“＋１”信号、“＋ｎ”信号、“−１”信号及びリセット信号を受け取る。アップダウンカウンタ２３は、“＋１”信号が活性化されると、そのカウント値を１だけ増加し、“＋ｎ”信号が活性化されると、そのカウント値をｎだけ増加する。また、アップダウンカウンタ２３は、“−１”信号が活性化されると、そのカウント値を１だけ減少し、リセット信号が活性化されると、カウント値が初期値（例えば“０”）にリセットされる。
【００３２】
なお、ラッチ回路１５が、内部クロック信号３４の立ち上がりエッジと立ち下がりエッジの両方に同期して受信データ信号３１をラッチするように構成されてもよい。図４は、この場合のデータ受信装置２の構成を示すブロック図である。図４の構成では、ラッチ回路１５が、内部クロック信号３４（即ち、遅延クロック信号３３又は反転クロック信号）の立ち上がりエッジに応答して受信データ信号３１をラッチして受信データ３６ａを出力するラッチ１５ａと、内部クロック信号３４の立ち下がりエッジに応答して受信データ信号３１をラッチして受信データ３６ｂを出力するラッチ１５ｂとを備えている。シリアルパラレル変換回路１６は、ラッチ１５ａ、１５ｂから受け取った受信データ３６ａ、３６ｂからパラレルデータ３７を生成すると共に、内部クロック信号３４からパラレルデータ用クロック信号３８を生成する。ラッチ１５ａ、１５ｂから出力された受信データ３６ａ、３６ｂは、遅延制御回路部１７に供給され、遅延制御回路部１７における処理に用いられる。
【００３３】
続いて、本実施形態におけるデータ受信装置２において行われるキャリブレーション動作について説明する。キャリブレーション動作の目的は、通常動作時にラッチ回路１５に供給される内部クロック信号３４の位相を最適化すること、即ち、可変遅延回路１３ａに設定する設定遅延時間を最適化することである。本実施形態では、可変遅延回路１３ａに設定される設定遅延時間は遅延設定値によって指定されるので、キャリブレーション動作では、通常動作時に可変遅延回路１３ａに設定する遅延設定値の最適値、即ち、最適遅延設定値が算出される。図５に図示されているように、最適遅延設定値とは、ラッチ回路１５による受信データ信号３１のラッチに用いられる内部クロック信号３４のエッジの位置が、受信データ信号３１の隣接するエッジの中間の位置になるような遅延設定値である。ここで、以下では、エッジの位置が、受信データ信号３１の隣接するエッジの中間の位置になるような内部クロック信号３４を「最適化クロック信号」と呼ぶ。図５には、様々な場合の「最適化クロック信号」のエッジの位置が図示されている。
【００３４】
一つの問題は、外部データ信号５と外部クロック信号６とが別々の伝送路で伝送される本実施形態のデータ伝送システム１０では、外部データ信号５と外部クロック信号６とが必ずしも同一の大きさのノイズを受けるとは限らないことである。このような状況でキャリブレーション動作を行うと、キャリブレーション動作の度に、算出される最適遅延設定値が変動し得る。このような問題は、特にノイズが多い環境において顕著になる。
【００３５】
例えば、キャリブレーション動作において、受信データ信号３１のエッジの位置が時間的に前にぶれた場合（図５のケース＃１）、最適化クロック信号も時間的に前になる。図５では、このような関係にある受信データ信号３１及び最適化クロック信号を、それぞれ、受信データ信号＃１及び最適化クロック信号＃１として図示している。一方、受信データ信号３１のエッジの位置が時間的に後にぶれた場合（図５のケース＃２）、最適化クロック信号も時間的に後になる。図５では、このような関係にある受信データ信号３１及び最適化クロック信号を、それぞれ、受信データ信号＃２及び最適化クロック信号＃２として図示している。このように、算出される最適遅延設定値が、キャリブレーション動作の度に変動し得ることは、データ伝送システム１０においてデータを安定に伝送するためには好ましくない。
【００３６】
このような問題に対応するために、本実施形態では、算出される最適遅延設定値のぶれを抑制するような手順でキャリブレーション動作が行われる。以下では、本実施形態におけるキャリブレーション動作について詳細に説明する。
【００３７】
図６は、本実施形態におけるキャリブレーション動作の概要を示すタイミングチャートである。本実施形態のキャリブレーション動作は、３つのフェイズ：第１フェイズ〜第３フェイズを含んでいる。
【００３８】
第１フェイズでは、可変遅延回路１３ａの設定遅延時間を初期値（典型的には、可変遅延回路１３ａの最小の遅延時間）から増加させながら、ラッチ回路１５から出力される受信データ３６の値が、“Ｈ”から“Ｌ”に遷移した後、“Ｌ”で安定するような最小の設定遅延時間が探索される。より具体的には、可変遅延回路１３ａに設定される遅延設定値を初期値（典型的には、“０”）から増加させながら、ラッチ回路１５から出力される受信データ３６の値が、“Ｈ”から“Ｌ”に遷移した後、“Ｌ”で安定するような最小の遅延設定値が探索される。以下では、可変遅延回路１３ａに設定される遅延設定値の初期値をＤ０と記載し、第１フェイズにおける探索によって得られた遅延設定値を、遅延設定値Ｄ１と記載する。
【００３９】
第２フェイズでは、可変遅延回路１３ａの設定遅延時間を更に増加させながら、ラッチ回路１５から出力される受信データ３６の値が、“Ｌ”から“Ｈ”に遷移した後、“Ｈ”で安定するような設定遅延時間が探索される。より具体的には、可変遅延回路１３ａに設定される遅延設定値を遅延設定値Ｄ１から増加させながら、受信データ３６の値が、“Ｌ”から“Ｈ”に遷移した後、“Ｈ”で安定するような遅延設定値が探索される。以下では、第２フェイズにおける探索によって得られた遅延設定値を、遅延設定値Ｄ２と記載する。
【００４０】
第３フェイズでは、可変遅延回路１３ａの設定遅延時間を、第２フェイズで探索された設定遅延時間から減少させながら、ラッチ回路１５から出力される受信データ３６の値が、“Ｈ”から“Ｌ”に遷移した後、“Ｌ”で安定するような最大の設定遅延時間が探索される。より具体的には、可変遅延回路１３ａに設定される遅延設定値を遅延設定値Ｄ２から減少させながら、受信データ３６の値が、“Ｈ”から“Ｌ”に遷移した後、“Ｌ”で安定するような最大の遅延設定値が探索される。以下では、第３フェイズにおける探索によって得られた遅延設定値を、遅延設定値Ｄ３と記載する。
【００４１】
可変遅延回路１３ａに設定する設定遅延時間の最適値は、第１フェイズの探索によって得られた設定遅延時間と第３フェイズの探索によって得られた設定遅延時間とに基づいて得ることができる。即ち、最適遅延設定値は、第１フェイズの探索によって得られた遅延設定値Ｄ１と第３フェイズの探索によって得られた遅延設定値Ｄ３とに基づいて算出される。本実施形態では、設定遅延時間の最適値は、第１フェイズの探索によって得られた設定遅延時間と第３フェイズの探索によって得られた設定遅延時間の平均値として算出される。即ち、最適遅延設定値は、遅延設定値Ｄ１、Ｄ３の平均値として算出される。
【００４２】
このような手法によれば、キャリブレーション動作で得られる設定遅延時間の最適値、即ち、キャリブレーション動作で算出される最適遅延設定値の変動を抑制することができる。本実施形態の手法では、最適遅延設定値の算出に用いられる遅延設定値Ｄ１、Ｄ３は、それぞれ、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”で安定化される最小の遅延設定値及び最大の遅延設定値であるので、遅延設定値Ｄ１、Ｄ３の変動を抑制することができる。したがって、キャリブレーション動作で得られる設定遅延時間の最適値、即ち、キャリブレーション動作で算出される最適遅延設定値の変動を抑制することができる。
【００４３】
なお、上記の説明（及び以下の説明）において、受信データ３６の値“Ｌ”、“Ｈ”は、シングルエンド信号の一方の値（第１値）、他方の値（第２値）という程度の意味しか有していないことに留意されたい。
【００４４】
以下では、キャリブレーション動作におけるデータ受信装置２の動作について、詳細に説明する。なお、本実施形態のキャリブレーション動作においては、外部データ信号５として、１ＵＩ毎に値が“Ｌ”と“Ｈ”の間で反転される信号が送られる。また、キャリブレーション動作の初期状態では、クロック極性反転信号３５が非活性化され、よって、内部クロック信号３４として（インバータ１４ａによって選択された反転クロック信号ではなく）遅延クロック信号３３が選択されているとする。
【００４５】
図７は、第１フェイズにおけるデータ受信装置２の動作、特に、遅延制御回路部１７の動作を示すフローチャートである。上述のように、第１フェイズでは、遅延設定値を初期値から増大させながら、ラッチ回路１５から出力される受信データ３６の値が、“Ｈ”から“Ｌ”に遷移した後、“Ｌ”で安定するような最小の遅延設定値Ｄ１が探索される。
【００４６】
第１フェイズでは、まず、アップダウンカウンタ２３がリセットされ、更に、可変遅延回路１３ａがアップダウンカウンタ２３に接続される（ステップＳ１０）。詳細には、ステップＳ１１では、キャリブレーション制御回路２１によってリセット信号が活性化され、アップダウンカウンタ２３のカウント値が初期値（典型的には“０”）にリセットされる。また、セレクタ２４によってアップダウンカウンタ２３のカウント値が可変遅延回路１３ａに設定される遅延設定値として選択され、これにより、可変遅延回路１３ａに設定される遅延設定値が、初期値Ｄ０に設定される。図８は、可変遅延回路１３ａの遅延設定値が初期値Ｄ０に設定されたときの受信データ信号３１と遅延クロック信号３３の波形の例を示している。
【００４７】
続いて、ラッチ回路１５から出力される受信データ３６の値がキャリブレーション制御回路２１によって判定される（ステップＳ１１）。ステップＳ１１において判定された受信データ３６の値が“Ｌ”である場合、クロック極性反転信号３５が活性化され、内部クロック信号３４が反転される（ステップＳ１２）。即ち、クロック極性反転信号３５の活性化に応答してセレクタ１４ｂにより反転クロック信号が選択され、以後、反転クロック信号が内部クロック信号３４として用いられる。
【００４８】
ステップＳ１１、Ｓ１２の動作が行われるのは、第１フェイズにおける探索を速やかに完了させるためである。上述のように、第１フェイズでは、ラッチ回路１５から出力される受信データ３６の値が“Ｈ”から“Ｌ”に遷移した後、“Ｌ”で安定するような最小の遅延設定値Ｄ１が探索される。このとき、例えば、図９Ａに図示されているように、遅延設定値が初期値Ｄ０に設定された場合にラッチ回路１５から出力される受信データ３６の値が“Ｌ”であるときには、第１フェイズにおいて、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”から“Ｈ”に遷移し、更に“Ｈ”から“Ｌ”に遷移した後、“Ｌ”で安定するような最小の遅延設定値を探索することになる。このような動作では、第１フェイズにおける探索に要する時間が増大してしまう。
【００４９】
一方、図９Ｂに図示されているように、遅延設定値が初期値Ｄ０に設定された場合にラッチ回路１５から出力される受信データ３６の値が“Ｌ”であるときに内部クロック信号３４を反転すれば（即ち、内部クロック信号３４として反転クロック信号を選択すれば）、遅延設定値が初期値Ｄ０に設定された場合にラッチ回路１５から出力される受信データ３６の値を“Ｈ”にすることができる。よって、第１フェイズにおける探索を短時間で完了させることができる。
【００５０】
図７に戻り、第１フェイズの手順は、ステップＳ１３、Ｓ１４に移行する。ステップＳ１３、Ｓ１４では、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”になるまで、アップダウンカウンタ２３のカウント値、即ち、可変遅延回路１３ａに設定される遅延設定値が１ずつ増加される。第１フェイズのステップＳ１３、Ｓ１４において遅延設定値が増加される増分は１である。上述のように、アップダウンカウンタ２３のカウント値は、キャリブレーション制御回路２１からアップダウンカウンタ２３に供給される“＋１”信号を活性化することにより、１ずつ増加させることができる。
【００５１】
ステップＳ１４において、ある遅延設定値について、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”になったことが検知されると、ステップＳ１５〜Ｓ１９において、当該遅延設定値によって受信データ信号３１の値が“Ｌ”で安定するかが判断される。
【００５２】
より具体的には、まず、安定確認カウンタ２２がリセットされ（ステップＳ１５）、更に、この状態で、再度、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”であるかが判断される（ステップＳ１６）。
【００５３】
ステップＳ１６においてラッチ回路１５から出力される受信データ３６の値が“Ｌ”でない場合には、アップダウンカウンタ２３のカウント値が１だけ増加され（ステップＳ１７）、再度、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”であるかが判断される（ステップＳ１６）。
【００５４】
ステップＳ１６においてラッチ回路１５から出力される受信データ３６の値が“Ｌ”であると判断された場合、安定確認カウンタ２２のカウント値が１だけ増加される（ステップＳ１８）。
【００５５】
ステップＳ１８に続いて、安定確認カウンタ２２のカウント値が、所定の基準値に到達しているかが判断される（ステップＳ１９）。安定確認カウンタ２２のカウント値が、所定の基準値に到達していない場合、ステップＳ１６〜Ｓ１８の動作が再度実行される。ステップＳ１６〜Ｓ１８の動作は、安定確認カウンタ２２のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【００５６】
安定確認カウンタ２２のカウント値が所定の基準値に到達した時点のアップダウンカウンタ２３のカウント値、即ち、この時点で可変遅延回路１３ａに設定されていた遅延設定値が遅延設定値Ｄ１である。図１０は、第１フェイズで得られた遅延設定値Ｄ１と受信データ信号３１の位相との関係を図示している。遅延設定値Ｄ１は、キャリブレーション制御回路２１のレジスタ＃１に格納されて保持される（ステップＳ１９）。以上で、第１フェイズの動作が完了する。
【００５７】
図１１は、第２フェイズにおけるデータ受信装置２の動作、特に、遅延制御回路部１７の動作を示すフローチャートであり、図１２は、第２フェイズで得られる遅延設定値Ｄ２と受信データ信号の波形の関係を示すタイミングチャートである。第２フェイズでは、遅延設定値を遅延設定値Ｄ１から増加させながら、ラッチ回路１５から出力される受信データ３６の値が、“Ｌ”から“Ｈ”に遷移した後、“Ｈ”で安定するような遅延設定値Ｄ２が探索される。
【００５８】
第２フェイズでは、まず、ラッチ回路１５から出力される受信データ３６の値が“Ｈ”になるまで、アップダウンカウンタ２３のカウント値、即ち、可変遅延回路１３ａに設定される遅延設定値が、遅延設定値Ｄ１から、ｎ（＞１）ずつ増加される（ステップＳ２１、Ｓ２２）。詳細には、アップダウンカウンタ２３のカウント値がｎだけ増加され（ステップＳ２１）、この状態でラッチ回路１５から出力される受信データ３６の値が判断される（ステップＳ２２）。なお、アップダウンカウンタ２３のカウント値は、キャリブレーション制御回路２１からアップダウンカウンタ２３に供給される“＋ｎ”信号を活性化することにより、ｎずつ増加させることができる。ステップＳ２１、Ｓ２１は、ラッチ回路１５から出力される受信データ３６の値が“Ｈ”になるまで繰り返して行われる。
【００５９】
留意すべきことは、第２フェイズのステップＳ２１、Ｓ２２において遅延設定値が増加される増分がｎ（＞１）であり、第１フェイズにおいて遅延設定値が増加される増分（即ち、１）よりも大きいことである。言い換えれば、第２フェイズのステップＳ２１、Ｓ２２において増加される可変遅延回路１３ａの設定遅延時間の増分は、第１フェイズにおいて増加される可変遅延回路１３ａの設定遅延時間の増分よりも大きい。このような動作は、第２フェイズにおける遅延設定値Ｄ２の探索に要する時間を短縮することに寄与する。第２フェイズにおいて探索される遅延設定値Ｄ２は、“Ｌ”から“Ｈ”に遷移した後、“Ｈ”で安定するような最小の遅延設定値であるので、第２フェイズにおいて探索される遅延設定値Ｄ２は、遅延設定値Ｄ１から比較的大きく離れた値である。そこで、ステップＳ２１、Ｓ２２において遅延設定値が増加される増分を大きくすることで、第２フェイズにおける遅延設定値Ｄ２の探索に要する時間を短縮できる。なお、第２フェイズで探索される遅延設定値Ｄ２は、後述される遅延設定値Ｄ３の探索の初期値として用いられ、最適遅延設定値の算出には直接には用いられないので、遅延設定値Ｄ２の精度は低いことが許容されることにも留意されたい。ステップＳ２１、Ｓ２２において遅延設定値が増加される増分が大きくても、最適遅延設定値の算出の精度は低下しない。
【００６０】
ステップＳ２２において、ある遅延設定値について、ラッチ回路１５から出力される受信データ３６の値が“Ｈ”になったことが検知されると、ステップＳ２３〜Ｓ２７において、当該遅延設定値によって受信データ信号３１の値が“Ｈ”で安定するかが判断される。
【００６１】
より具体的には、まず、安定確認カウンタ２２がリセットされ（ステップＳ２３）、更に、この状態で、再度、ラッチ回路１５から出力される受信データ３６の値が“Ｈ”であるかが判断される（ステップＳ２４）。
【００６２】
ステップＳ２４においてラッチ回路１５から出力される受信データ３６の値が“Ｈ”でない場合には、アップダウンカウンタ２３のカウント値が１だけ増加され（ステップＳ２５）、再度、ラッチ回路１５から出力される受信データ３６の値が“Ｈ”であるかが判断される（ステップＳ２４）。
【００６３】
ステップＳ２４においてラッチ回路１５から出力される受信データ３６の値が“Ｈ”であると判断された場合、安定確認カウンタ２２のカウント値が１だけ増加される（ステップＳ２６）。
【００６４】
ステップＳ２６に続いて、安定確認カウンタ２２のカウント値が、所定の基準値に到達しているかが判断される（ステップＳ２７）。安定確認カウンタ２２のカウント値が、所定の基準値に到達していない場合、ステップＳ２４〜Ｓ２６の動作が再度実行される。ステップＳ２４〜Ｓ２６の動作は、安定確認カウンタ２２のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【００６５】
安定確認カウンタ２２のカウント値が所定の基準値に到達した時点のアップダウンカウンタ２３のカウント値、即ち、この時点で可変遅延回路１３ａに設定されていた遅延設定値が遅延設定値Ｄ２である。遅延設定値Ｄ２は、キャリブレーション制御回路２１のレジスタ＃２に格納されて保持される（ステップＳ２８）。以上で、第２フェイズの動作が完了する。
【００６６】
図１３は、第３フェイズにおけるデータ受信装置２の動作、特に、遅延制御回路部１７の動作を示すフローチャートであり、図１４は、第３フェイズで得られる遅延設定値Ｄ３と受信データ信号の波形の関係を示すタイミングチャートである。第３フェイズでは、遅延設定値を遅延設定値Ｄ２から減少させながら、ラッチ回路１５から出力される受信データ３６の値が、“Ｈ”から“Ｌ”に遷移した後、“Ｌ”で安定するような遅延設定値Ｄ３が探索される。
【００６７】
第３フェイズでは、まず、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”になるまで、アップダウンカウンタ２３のカウント値、即ち、可変遅延回路１３ａに設定される遅延設定値が、遅延設定値Ｄ２から、１ずつ減少される（ステップＳ３１、Ｓ３２）。詳細には、アップダウンカウンタ２３のカウント値が１だけ減少され（ステップＳ３１）、この状態でラッチ回路１５から出力される受信データ３６の値が判断される（ステップＳ３２）。ステップＳ３１、Ｓ３２は、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”になるまで繰り返して行われる。第３フェイズのステップＳ３１、Ｓ３２において遅延設定値が減少される減分は１である。なお、アップダウンカウンタ２３のカウント値は、キャリブレーション制御回路２１からアップダウンカウンタ２３に供給される“−１”信号を活性化することにより、１ずつ減少させることができる。
【００６８】
ステップＳ３２において、ある遅延設定値について、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”になったことが検知されると、ステップＳ３３〜Ｓ３７において、当該遅延設定値によって受信データ信号３１の値が“Ｌ”で安定するかが判断される。
【００６９】
より具体的には、まず、安定確認カウンタ２２がリセットされ（ステップＳ３３）、更に、この状態で、再度、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”であるかが判断される（ステップＳ３４）。
【００７０】
ステップＳ３４においてラッチ回路１５から出力される受信データ３６の値が“Ｌ”でない場合には、アップダウンカウンタ２３のカウント値が１だけ増加され（ステップＳ３５）、再度、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”であるかが判断される（ステップＳ３４）。
【００７１】
ステップＳ３４においてラッチ回路１５から出力される受信データ３６の値が“Ｌ”であると判断された場合、安定確認カウンタ２２のカウント値が１だけ増加される（ステップＳ３６）。
【００７２】
ステップＳ３６に続いて、安定確認カウンタ２２のカウント値が、所定の基準値に到達しているかが判断される（ステップＳ３７）。安定確認カウンタ２２のカウント値が、所定の基準値に到達していない場合、ステップＳ３４〜Ｓ３６の動作が再度実行される。ステップＳ３４〜Ｓ３６の動作は、安定確認カウンタ２２のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【００７３】
安定確認カウンタ２２のカウント値が所定の基準値に到達した時点のアップダウンカウンタ２３のカウント値、即ち、この時点で可変遅延回路１３ａに設定されていた遅延設定値が遅延設定値Ｄ３である。遅延設定値Ｄ３は、キャリブレーション制御回路２１のレジスタ＃３に格納されて保持される（ステップＳ３８）。以上で、第３フェイズの動作が完了する。
【００７４】
図１５に図示されているように、最適遅延設定値は、第１フェイズの探索によって得られた遅延設定値Ｄ１と第３フェイズの探索によって得られた遅延設定値Ｄ３とに基づいて算出される。最適遅延設定値の算出は、キャリブレーション制御回路２１によって行われる。本実施形態では、最適遅延設定値は、遅延設定値Ｄ１、Ｄ３の平均値（Ｄ１＋Ｄ３）／２として算出される。算出された最適遅延設定値がレジスタ＃４に格納され、キャリブレーション動作が完了する。
【００７５】
通常動作時には、レジスタ＃４に格納されている最適遅延設定値がセレクタ２４によって選択され、可変遅延回路１３ａに設定される。上記のようにして算出された最適遅延設定値を可変遅延回路１３ａに設定することにより、受信データ信号３１と内部クロック信号３４との間の位相差を適切に設定し、外部データ信号５及び外部クロック信号６の間のスキューを補償することができる。
【００７６】
上述された本実施形態の手法では、キャリブレーション動作で算出される最適遅延設定値の変動を抑制することができることに留意されたい。最適遅延設定値の算出に用いられる遅延設定値Ｄ１、Ｄ３は、それぞれ、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”で安定化される最小の遅延設定値及び最大の遅延設定値であるので、遅延設定値Ｄ１、Ｄ３は、キャリブレーション動作毎の変動を小さくことができる。したがって、キャリブレーション動作で算出される最適遅延設定値の変動も抑制することができる。
【００７７】
加えて、本実施形態のキャリブレーション動作は、第１フェイズ、第２フェイズ、第３フェイズを分割して実行できるため、キャリブレーション動作の実施の柔軟性が高いという利点もある。例えば、第１フェイズを実行した後、第１フェイズにおいて得られた遅延設定値Ｄ１をキャリブレーション制御回路２１のレジスタ＃１に格納し、第２フェイズの実行を開始するときにレジスタ＃１に格納された遅延設定値Ｄ１を読み出してアップダウンカウンタ２３に設定すれば、第１フェイズと第２フェイズを連続して実行する必要性が無くなる。同様に、第２フェイズを実行した後、第２フェイズにおいて得られた遅延設定値Ｄ２をキャリブレーション制御回路２１のレジスタ＃２に格納し、第３フェイズの実行を開始するときにレジスタ＃２に格納された遅延設定値Ｄ２を読み出してアップダウンカウンタ２３に設定すれば、第２フェイズと第３フェイズを連続して実行する必要性が無くなる。第１フェイズ、第２フェイズ、第３フェイズのそれぞれは、比較的短時間で実行できるので、第１フェイズ、第２フェイズ、第３フェイズを分割して実行することで、データ伝送の空き時間を有効に利用することができる。
【００７８】
例えば、第１フェイズと第２フェイズの間の期間において、通常のデータ伝送（即ち、外部データ信号５、外部クロック信号６を用いたデータ伝送）が行われてもよい。上述のように、通常のデータ伝送の際には、レジスタ＃４に格納されている最適遅延設定値がセレクタ２４によって選択され、可変遅延回路１３ａに設定される。同様に、第２フェイズと第３フェイズの間の期間において、通常のデータ伝送が行われてもよい。第３フェイズが完了すると、第１フェイズと第３フェイズで得られた遅延設定値Ｄ１、Ｄ３から最適遅延設定値が算出され、レジスタ＃４に格納される。これにより、最適遅延設定値が更新される。次回のデータ伝送では、更新された最適遅延設定値が可変遅延回路１３ａに設定されてデータ伝送が行われる。
【００７９】
図１６は、第１フェイズ、第２フェイズ及び第３フェイズを分割して実行するキャリブレーション動作を行う場合のデータ伝送システムの動作の例を示すタイミングチャートである。データ伝送システム１０が起動されると（例えば、電源が投入されると）、起動シーケンスが開始される。起動シーケンスにおいては上記のキャリブレーション動作が実行される。このキャリブレーション動作では第１〜第３フェイズが連続して実行される。
【００８０】
その後、データ伝送システム１０におけるデータ伝送が開始される。データ伝送が開始された後のキャリブレーション動作は、第１〜第３フェイズが分割して実行される。適宜のタイミングでデータ伝送が一旦停止され、第１フェイズが実行される。第１フェイズが完了すると、データ伝送が再開される。その後、適宜のタイミングでデータ伝送が一旦停止され、第２フェイズが実行される。第２フェイズが完了すると、データ伝送が再開される。その後、適宜のタイミングでデータ伝送が一旦停止され、第３フェイズが実行される。第３フェイズが実行されると、最適遅延設定値が算出される。以後、算出された最適遅延設定値が可変遅延回路１３ａに設定されてデータ伝送が行われる。
【００８１】
また、本実施形態のデータ伝送システム１０が、表示装置において表示パネルを駆動する表示ドライバに画像データ及び制御データを供給するために用いられる場合（この場合、データ受信装置２が該表示ドライバに集積化される）、第１フェイズ、第２フェイズ、第３フェイズのそれぞれが、垂直ブランキング期間において行われてもよい。例えば、第１フェイズが、第１垂直同期期間の垂直ブランキング期間において行われ、第２フェイズが、第１垂直同期期間よりも時間的に後である第２垂直同期期間の垂直ブランキング期間において行われ、第３フェイズが、第２垂直同期期間よりも時間的に後である第３垂直同期期間の垂直ブランキング期間において行われてもよい。なお、第２垂直同期期間は、第１垂直同期期間の直後の垂直同期期間である必要は無く、第３垂直同期期間は、第２垂直同期期間の直後の垂直同期期間である必要は無い。
【００８２】
第１フェイズ、第２フェイズ及び第３フェイズを分割して実行する場合、経時変化による影響が発生し得る。例えば、第１フェイズの完了からある程度の時間が経過してから第２フェイズを実行すると、第１フェイズで決定された遅延設定値Ｄ１が、経時変化により、最適でなくなる場合がある。同様に、第２フェイズの完了からある程度の時間が経過してから第３フェイズを実行すると、第２フェイズで決定された遅延設定値Ｄ２が、経時変化により、最適でなくなる場合がある。
【００８３】
経時変化による影響を抑制するためには、第２フェイズ、第３フェイズの動作を下記のように変更することが望ましい。
【００８４】
図１７Ａ、図１７Ｂは、経時変化による影響を抑制するために好適な第２フェイズの動作を示すフローチャートである。図１７Ａに図示されているように、第２フェイズが開始されると、レジスタ＃１に保持されていた遅延設定値Ｄ１が、アップダウンカウンタ２３のカウント値として設定される（ステップＳ４１）。更に、セレクタ２４によってアップダウンカウンタ２３のカウント値が可変遅延回路１３ａに設定する遅延設定値として選択され、その結果、可変遅延回路１３ａに遅延設定値Ｄ１が設定される。
【００８５】
ステップＳ４２〜Ｓ４６においては、遅延設定値Ｄ１を可変遅延回路１３ａに設定することによって受信データ信号３１の値が“Ｌ”で安定するかが判断される。
【００８６】
より具体的には、まず、安定確認カウンタ２２がリセットされ（ステップＳ４２）、更に、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”であるかが判断される（ステップＳ４３）。
【００８７】
ステップＳ４３においてラッチ回路１５から出力される受信データ３６の値が“Ｌ”でない場合には、アップダウンカウンタ２３のカウント値が１だけ増加され（ステップＳ４４）、再度、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”であるかが判断される（ステップＳ４３）。
【００８８】
ステップＳ４３においてラッチ回路１５から出力される受信データ３６の値が“Ｌ”であると判断された場合、安定確認カウンタ２２のカウント値が１だけ増加される（ステップＳ４５）。
【００８９】
ステップＳ４５に続いて、安定確認カウンタ２２のカウント値が、所定の基準値に到達しているかが判断される（ステップＳ４６）。安定確認カウンタ２２のカウント値が、所定の基準値に到達していない場合、ステップＳ４３〜Ｓ４５の動作が再度実行される。ステップＳ４３〜Ｓ４５の動作は、安定確認カウンタ２２のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【００９０】
安定確認カウンタ２２のカウント値が所定の基準値に到達した時点のアップダウンカウンタ２３のカウント値が、適正な遅延設定値Ｄ１と決定される。この時点での安定確認カウンタ２２のカウント値が、レジスタ＃１に新たな遅延設定値Ｄ１として格納される。
【００９１】
図１７Ｂに図示されているように、以後の動作は、図１１に図示されている第２フェイズのステップＳ２１〜Ｓ２８の動作と同一である。
【００９２】
このような動作では、経時変化によって適正な遅延設定値Ｄ１が変動しても、遅延設定値Ｄ１の調整が行われるので、経時変化による影響を抑制することができる。
【００９３】
図１８Ａ、図１８Ｂは、経時変化による影響を抑制するために好適な第３フェイズの動作を示すフローチャートである。図１８Ａに図示されているように、第３フェイズが開始されると、レジスタ＃２に保持されていた遅延設定値Ｄ２が、アップダウンカウンタ２３のカウント値として設定される（ステップＳ５１）。更に、セレクタ２４によってアップダウンカウンタ２３のカウント値が可変遅延回路１３ａに設定する遅延設定値として選択され、その結果、可変遅延回路１３ａに遅延設定値Ｄ２が設定される。
【００９４】
ステップＳ５２〜Ｓ５６においては、遅延設定値Ｄ２を可変遅延回路１３ａに設定することによって受信データ信号３１の値が“Ｈ”で安定するかが判断される。
【００９５】
より具体的には、まず、安定確認カウンタ２２がリセットされ（ステップＳ５２）、更に、ラッチ回路１５から出力される受信データ３６の値が“Ｈ”であるかが判断される（ステップＳ５３）。
【００９６】
ステップＳ５３においてラッチ回路１５から出力される受信データ３６の値が“Ｈ”でない場合には、アップダウンカウンタ２３のカウント値が１だけ増加され（ステップＳ５４）、再度、ラッチ回路１５から出力される受信データ３６の値が“Ｈ”であるかが判断される（ステップＳ５３）。
【００９７】
ステップＳ５３においてラッチ回路１５から出力される受信データ３６の値が“Ｈ”であると判断された場合、安定確認カウンタ２２のカウント値が１だけ増加される（ステップＳ５５）。
【００９８】
ステップＳ５５に続いて、安定確認カウンタ２２のカウント値が、所定の基準値に到達しているかが判断される（ステップＳ５６）。安定確認カウンタ２２のカウント値が、所定の基準値に到達していない場合、ステップＳ５３〜Ｓ５５の動作が再度実行される。ステップＳ５３〜Ｓ５５の動作は、安定確認カウンタ２２のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【００９９】
安定確認カウンタ２２のカウント値が所定の基準値に到達した時点のアップダウンカウンタ２３のカウント値が、適正な遅延設定値Ｄ２と決定される。この時点での安定確認カウンタ２２のカウント値が、レジスタ＃２に新たな遅延設定値Ｄ２として格納される。
【０１００】
図１８Ｂに図示されているように、以後の動作は、図１３に図示されている第３フェイズのステップＳ２１〜Ｓ２８の動作と同一である。
【０１０１】
このような動作では、経時変化によって適正な遅延設定値Ｄ２が変動しても、遅延設定値Ｄ２の調整が行われるので、経時変化による影響を抑制することができる。
【０１０２】
上述の実施形態において、クロック反転回路部１４は設けられなくてもよい。この場合、第１フェイズにおいて、ステップＳ１１、Ｓ１２は実行されず、遅延設定値が初期値Ｄ０に設定されたときにラッチ回路１５から出力される受信データ３６の値が“Ｌ”である場合には、図９Ａに図示されている動作が行われる。ただし、この場合でも、第１フェイズの実行に要する時間は長くなるが、遅延設定値Ｄ１は算出可能である。
【０１０３】
また、上述の実施形態では、クロック反転回路部１４が、外部クロック信号６を受け取る受信バッファ１２の出力に接続された可変遅延回路１３ａの出力に接続されているが、その代わりに、図２２に図示されているように、データ反転回路部１８が、外部データ信号５を受け取る受信バッファ１１の出力に接続されていてもよい。データ反転回路部１８は、受信データ信号３１又は受信データ信号３１を反転して得られる反転データ信号のいずれかを選択し、選択したデータ信号をラッチ回路１５に供給する。この場合、可変遅延回路１３ａから出力された遅延クロック信号３３がそのまま内部クロック信号３４として用いられる。
【０１０４】
詳細には、データ反転回路部１８は、インバータ１８ａとセレクタ１８ｂとを備えている。インバータ１８ａは、受信データ信号３１を反転して反転データ信号を生成する。セレクタ１８ｂは、遅延制御回路部１７から供給されるデータ極性反転信号４０に応じて受信データ信号３１と反転データ信号との一方のデータ信号を選択し、選択したデータ信号をラッチ回路１５に出力する。
【０１０５】
図１９の構成のデータ受信装置２の動作は、図３の構成のデータ受信装置２の動作とほぼ同様である。ただし、第１フェイズのステップＳ１１において受信データ３６の値が“Ｌ”である場合、データ極性反転信号４０が活性化され、セレクタ１８ｂにより反転データ信号が選択される。以後、反転データ信号がラッチ回路１５に供給される。図１９の構成のデータ受信装置２の他の動作は、図３の構成のデータ受信装置２と同一である。
【０１０６】
また、上述の実施形態では、遅延回路部１３は、外部クロック信号６を受け取る受信バッファ１２の出力に接続された可変遅延回路１３ａを備えているが、その代わりに、図２０に図示されているように、外部データ信号５を受け取る受信バッファ１１の出力に接続された可変遅延回路１３ｂを備えていてもよい。この場合、遅延制御回路部１７から出力される遅延設定値は可変遅延回路１３ｂに供給され、可変遅延回路１３ｂの設定遅延時間は、遅延制御回路部１７から可変遅延回路１３ｂに供給された遅延設定値に応じて設定される。この場合でも、上記と同一のキャリブレーション動作を行うことによって最適遅延設定値が算出され、可変遅延回路１３ｂに設定される。
【０１０７】
この場合も、クロック反転回路部１４を設ける代わりにデータ反転回路部１８が設けられていてもよい。図２１は、このような構成のデータ受信装置２の構成を示すブロック図である。図２１の構成では、データ反転回路部１８が、可変遅延回路１３ｂの出力に接続されている。図２１の構成のデータ受信装置２の動作は、図２９の構成のデータ受信装置２の動作と同様であり、第１フェイズのステップＳ１１において受信データ３６の値が“Ｌ”である場合、データ極性反転信号４０が活性化され、セレクタ１８ｂによりインバータ１８ａから出力される反転データ信号が選択される。以後、該反転データ信号がラッチ回路１５に供給される。図２１の構成のデータ受信装置２の他の動作は、図３の構成のデータ受信装置２と同一である。
【０１０８】
また、データ伝送システムが複数のデータ伝送路を用いてデータ伝送を行うように構成されてもよい。図２２Ａは、２つのデータ伝送路を用いてデータ伝送を行うデータ伝送システム１０Ａの構成を示している。データ伝送システム１０Ａは、データ送信装置１Ａとデータ受信装置２Ａとを備えている。データ送信装置１Ａは、２つのデータ伝送路３１、３２とクロック伝送路４とを介してデータ受信装置２Ａに接続されている。データ伝送路３１、３２は、２つのデータレーン：レーン＃１、＃２として用いられる。レーン＃１（データ伝送路３１）は、外部データ信号５１の伝送に用いられ、レーン＃２（データ伝送路３２）は、外部データ信号５２の伝送に用いられる。
【０１０９】
図２２Ｂは、データ受信装置２Ａの構成を示すブロック図である。データ受信装置２Ａは、レーン＃１、＃２のそれぞれについて、受信バッファ１１と、遅延回路部１３と、クロック反転回路部１４と、ラッチ回路１５と、シリアルパラレル変換回路１６と、遅延制御回路部１７とを備えている。なお、図１８Ｂにおいて、レーン＃１について設けられる受信バッファ１１と、遅延回路部１３と、クロック反転回路部１４と、ラッチ回路１５と、シリアルパラレル変換回路１６と、遅延制御回路部１７は、それぞれ、符号１１１、１３１、１４１、１５１、１６１、１７１によって参照されている。同様に、レーン＃１について設けられる受信バッファ１１と、遅延回路部１３と、クロック反転回路部１４と、ラッチ回路１５と、シリアルパラレル変換回路１６と、遅延制御回路部１７は、それぞれ、符号１１１、１３１、１４１、１５１、１６１、１７１によって参照されている。
【０１１０】
外部クロック信号６を受け取る受信バッファ１２は、レーン＃１、＃２の間で共有される。受信バッファ１２から出力される受信クロック信号３２は、レーン＃１の遅延回路部１３１の可変遅延回路１３ａと、レーン＃２の遅延回路部１３２の可変遅延回路１３ｂとに供給される。遅延制御回路部１７１は、レーン＃１のデータ伝送についてキャリブレーション動作を行って遅延回路部１３１の可変遅延回路１３ａに設定する最適遅延設定値を算出する。同様に、遅延制御回路部１７２は、レーン＃２のデータ伝送についてキャリブレーション動作を行って遅延回路部１３２の可変遅延回路１３ａに設定する最適遅延設定値を算出する。遅延制御回路部１７１、１７２によって行われるキャリブレーション動作は、上述されたデータ伝送システム１０のキャリブレーション動作と同一である。
【０１１１】
なお、図２２Ａ、図２２Ｂは、２つのデータ伝送路を用いて外部データ信号５１、５２を伝送するデータ伝送システム１０Ａを図示しているが、データ伝送路の数は２に限定されないことに留意されたい。例えば、ＭＩＰＩ  Ｄ−ＰＨＹ規格では、最大で４つのデータレーン（４つのデータ伝送路）を設けることが許容されている。データ受信装置２Ａの構成は、データレーンの数に合わせて適宜変更される。
【０１１２】
また、上述の実施形態の動作では、キャリブレーション動作が行われる毎に最適遅延設定値が遅延設定値Ｄ１、Ｄ３に基づいて算出されるが、このような動作は、最適遅延設定値の誤算出に対して影響を受けやすい。例えば、ノイズなどの原因により、遅延設定値Ｄ１、Ｄ３の少なくとも一方が不適切に決定された場合には、最適遅延設定値も不適切な値として算出される。
【０１１３】
このような問題を回避するためには、第３フェイズの完了の後、以下に説明するオプション動作＃１を行ってもよい。オプション動作＃１では、最適遅延設定値が新たに算出されたときに、新たに算出された最適遅延設定値とレジスタ＃４に設定されている従前の最適遅延設定値とを比較し、比較の結果に応じてレジスタ＃４に設定されている最適遅延設定値を所定値（例えば、“１”）だけ増加又は減少される。言い換えれば、第１フェイズの探索で得られた設定遅延時間と第３フェイズの探索で得られた設定遅延時間の平均値と従前のキャリブレーション動作で決定された設定遅延時間の最適値とを比較し、比較の結果に応じて、設定遅延時間の最適値が、所定の遅延時間だけ長く又は短くされる。オプション動作＃１では、最適遅延設定値（即ち、設定遅延時間の最適値）が不適切に算出されても、最適遅延設定値の不所望な変動を、該所定値に留めることができる。
【０１１４】
図２３は、オプション動作＃１に対応したデータ受信装置２の構成を示している。図１９のデータ受信装置２のキャリブレーション制御回路２１Ａは、レジスタ＃１、＃３に格納されている遅延設定値Ｄ１、Ｄ３から新たに算出された最適遅延設定値と、レジスタ＃４に格納されている従前の最適遅延設定値とを比較し、比較の結果に応じてレジスタ＃４に設定されている最適遅延設定値を所定値（例えば、“１”）だけ増加又は減少するように構成されている
【０１１５】
図２４は、オプション動作＃１の手順を示すフローチャートである。オプション動作＃１は、１回目のキャリブレーション動作においては使用されない（ステップＳ６１：ＹＥＳ）。１回目のキャリブレーション動作においては、上述されているように、最適遅延設定値が、第１フェイズの探索によって得られた遅延設定値Ｄ１と第３フェイズの探索によって得られた遅延設定値Ｄ３の平均値として算出される（ステップＳ６７）。
【０１１６】
また、２回目以降のキャリブレーション動作においても、オプション動作＃１が実行されない場合には（ステップＳ６２：ＮＯ）、最適遅延設定値が、第１フェイズの探索によって得られた遅延設定値Ｄ１と第３フェイズの探索によって得られた遅延設定値Ｄ３の平均値として算出される（ステップＳ６７）。
【０１１７】
２回目以降のキャリブレーション動作においてオプション動作＃１が実行される場合、第１、第３フェイズの探索によって得られた遅延設定値Ｄ１、Ｄ３の平均値と、レジスタ＃４に格納されている従前の最適遅延設定値とが比較される（ステップＳ６３）。
【０１１８】
第１、第３フェイズの探索によって得られた遅延設定値Ｄ１、Ｄ３の平均値が、レジスタ＃４に格納されている従前の最適遅延設定値よりも大きい場合（ステップＳ６３：ＹＥＳ）、レジスタ＃４に格納されている最適遅延設定値が、所定値（例えば、“１”）だけ増加される（ステップＳ６４）。一方、第１、第３フェイズの探索によって得られた遅延設定値Ｄ１、Ｄ３の平均値が、レジスタ＃４に格納されている従前の最適遅延設定値よりも小さい場合（ステップＳ６５：ＹＥＳ）、レジスタ＃４に格納されている最適遅延設定値が、所定値（例えば、“１”）だけ減少される（ステップＳ６６）。
【０１１９】
レジスタ＃４には、以上のようにして算出又は更新された最適遅延設定値が格納される。通常動作においては、レジスタ＃４に格納された最適遅延設定値が、可変遅延回路１３ａに設定される遅延設定値として選択される（ステップＳ６８）。
【０１２０】
オプション動作＃１の手順で最適遅延設定値を更新することにより、最適遅延設定値の誤算出による影響を抑制することができる。
【０１２１】
２回目以降のキャリブレーション動作では、１回目のキャリブレーション動作の結果（即ち、１回目のキャリブレーション動作の第１フェイズ、第３フェイズで得られる遅延設定値Ｄ１、Ｄ３）を利用して下記に説明するオプション動作＃２を実行することにより、短時間でキャリブレーション動作を完了させることも可能である。
【０１２２】
図２５は、オプション動作＃２に対応したデータ受信装置２の構成を示すブロック図である。図２５に図示された構成では、キャリブレーション制御回路２１に、５つのレジスタ＃１〜＃５が設けられる。レジスタ＃１〜＃３は、１回目のキャリブレーション動作によって得られた遅延設定値Ｄ１〜Ｄ３を格納するために用いられる。レジスタ＃４は、最適遅延設定値を格納するために用いられる。レジスタ＃５は、２回目のキャリブレーション動作によって得られる遅延設定値Ｄ４を格納するために用いられる。ここで、２回目のキャリブレーション動作では、１回目のキャリブレーション動作の第１フェイズと同様に、可変遅延回路１３ａに設定される遅延設定値を初期値（典型的には、“０”）から増加させながら、ラッチ回路１５から出力される受信データ３６の値が、“Ｈ”から“Ｌ”に遷移した後、“Ｌ”で安定するような最小の遅延設定値が探索される。この探索によって得られた遅延設定値が、遅延設定値Ｄ４として、レジスタ＃５に格納される。
【０１２３】
オプション動作＃２に対応したデータ受信装置２では、キャリブレーション制御回路２１が、２回目以降のキャリブレーション動作において、当該キャリブレーション動作における探索によって得られた遅延設定値Ｄ４と１回目のキャリブレーション動作において得られている遅延設定値Ｄ１、Ｄ３とに基づいて最適遅延設定値を算出するように構成される。より具体的には、キャリブレーション制御回路２１は、２回目以降のキャリブレーション動作においては、最適遅延設定値を、Ｄ４＋（Ｄ３−Ｄ１）／２として算出する。
【０１２４】
図２６Ａ、図２６Ｂは、オプション動作＃２に対応したデータ受信装置２におけるキャリブレーション動作を示すフローチャートである。
【０１２５】
図２６に図示されているように、１回目のキャリブレーション動作（ステップＳ７１：ＹＥＳ）では、上述された第１〜第３フェイズの動作が実行される。より具体的には、まず、アップダウンカウンタ２３がリセットされ、更に、可変遅延回路１３ａがアップダウンカウンタ２３に接続される（ステップＳ１０）。詳細には、ステップＳ１１では、キャリブレーション制御回路２１によってリセット信号が活性化され、アップダウンカウンタ２３のカウント値が初期値（典型的には“０”）にリセットされる。また、セレクタ２４によってアップダウンカウンタ２３のカウント値が可変遅延回路１３ａに設定される遅延設定値として選択され、これにより、可変遅延回路１３ａに設定される遅延設定値が、初期値Ｄ０に設定される。
【０１２６】
続いて、ラッチ回路１５によってラッチされた受信データ信号３１の値がキャリブレーション制御回路２１によって判定される（ステップＳ１１）。ステップＳ１２において判定された受信データ３６の値が“Ｌ”である場合、クロック極性反転信号３５が活性化され、内部クロック信号３４が反転される（ステップＳ１２）。即ち、クロック極性反転信号３５の活性化に応答してセレクタ１４ｂにより反転クロック信号が選択され、以後、反転クロック信号が内部クロック信号３４として用いられる。以後、図７に図示されている第１フェイズのステップＳ１３以降のステップ、及び、図１１、図１３に図示されている第２、第３フェイズの動作が実行され、更に、最適遅延設定値が算出される。
【０１２７】
２回目以降のキャリブレーション動作において、オプション動作＃２が行われない場合（ステップＳ７１：ＮＯ、ステップＳ７２：ＮＯ）の場合も同様に、上述された第１〜第３フェイズの動作が実行され、更に、最適遅延設定値が算出される。
【０１２８】
２回目以降のキャリブレーション動作において、オプション動作＃２を実行する場合、以下の手順で最適遅延設定値が算出される。
【０１２９】
まず、上述のステップＳ１０〜Ｓ１２が実行される。これにより、可変遅延回路１３ａに設定される遅延設定値が、初期値Ｄ０に設定され、更に、必要に応じて内部クロック信号３４が反転される。
【０１３０】
続いて、可変遅延回路１３ａに設定される設定遅延時間を増加しながら、ラッチ回路１５から出力される受信データ３６の値が“Ｈ”から“Ｌ”に遷移した後、“Ｌ”で安定になるような可変遅延回路１３ａの設定遅延時間が探索される。
【０１３１】
より具体的には、図２６Ｂに図示されているように、ラッチ回路１５から出力される受信データ３６の値が“Ｈ”から“Ｌ”に遷移して“Ｌ”になるまで、アップダウンカウンタ２３のカウント値、即ち、可変遅延回路１３ａに設定される遅延設定値が１ずつ増加される（ステップＳ７３、Ｓ７４）。ここで、ステップＳ７３、Ｓ７４において遅延設定値が増加される増分は１である。
【０１３２】
ステップＳ７４において、ある遅延設定値についてラッチ回路１５から出力される受信データ３６の値が“Ｌ”になったことが検知されると（即ち、可変遅延回路１３ａのある設定遅延時間についてラッチ回路１５から出力される受信データ３６の値が“Ｌ”になったことが検知されると）、ステップＳ７５〜Ｓ７９において、当該遅延設定値によって受信データ３６の値が“Ｌ”で安定するかが判断される。
【０１３３】
より具体的には、まず、安定確認カウンタ２２がリセットされ（ステップＳ７５）、更に、この状態で、再度、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”であるかが判断される（ステップＳ７６）。
【０１３４】
ステップＳ１６においてラッチ回路１５から出力される受信データ３６の値が“Ｌ”でない場合には、アップダウンカウンタ２３のカウント値が１だけ増加され（ステップＳ７７）、再度、ラッチ回路１５から出力される受信データ３６の値が“Ｌ”であるかが判断される（ステップＳ７６）。
【０１３５】
ステップＳ７６においてラッチ回路１５から出力される受信データ３６の値が“Ｌ”であると判断された場合、安定確認カウンタ２２のカウント値が１だけ増加される（ステップＳ７８）。
【０１３６】
ステップＳ７８に続いて、安定確認カウンタ２２のカウント値が、所定の基準値に到達しているかが判断される（ステップＳ７９）。安定確認カウンタ２２のカウント値が、所定の基準値に到達していない場合、ステップＳ７６〜Ｓ７８の動作が再度実行される。ステップＳ７６〜Ｓ７８の動作は、安定確認カウンタ２２のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【０１３７】
安定確認カウンタ２２のカウント値が所定の基準値に到達した時点のアップダウンカウンタ２３のカウント値、即ち、この時点で可変遅延回路１３ａに設定されていた遅延設定値が、遅延設定値Ｄ４である。遅延設定値Ｄ４は、キャリブレーション制御回路２１のレジスタ＃５に格納されて保持される（ステップＳ８０）。
【０１３８】
最適遅延設定値が、レジスタ＃１に格納されている遅延設定値Ｄ１、レジスタ＃３に格納されている遅延設定値Ｄ３、及び、レジスタ＃５に格納されている遅延設定値Ｄ４に基づいて算出され、レジスタ＃４に格納される（ステップＳ８１）。より具体的には、最適遅延設定値は、Ｄ４＋（Ｄ３−Ｄ１）／２として算出される。言い換えれば、オプション動作＃２では、設定遅延時間の最適値が、２回目のキャリブレーション動作において探索された可変遅延回路１３ａの設定遅延時間に、１回目のキャリブレーション動作において第３フェイズで探索された設定遅延時間から第１フェイズで探索された設定遅延時間を減じて得られる差の２分の１を加えた遅延時間として算出される。以後の通常動作においては、レジスタ＃４に格納された最適遅延設定値が、可変遅延回路１３ａに設定される遅延設定値として選択される（ステップＳ８１）。以上で、キャリブレーション動作が完了する。
【０１３９】
オプション動作＃２は、２回目以降のキャリブレーション動作の実行に要する時間を短縮できる利点がある。
【０１４０】
以上には、本発明の実施形態が具体的に記述されているが、本発明は、上記の実施形態に限定されると解釈してはならない。本発明が様々な変更と共に実施され得ることは、当業者には自明的であろう。
【符号の説明】
【０１４１】
１、１Ａ：データ送信装置
２、２Ａ：データ受信装置
３、３１、３２：データ伝送路
４      ：クロック伝送路
５、５１、５２：外部データ信号
６      ：外部クロック信号
１０、１０Ａ：データ伝送システム
１１、１２：受信バッファ
１３、１３１、１３２：遅延回路部
１３ａ、１３ｂ：可変遅延回路
１４    ：クロック反転回路部
１４ａ  ：インバータ
１４ｂ  ：セレクタ
１５    ：ラッチ回路
１５ａ、１５ｂ：ラッチ
１６    ：シリアルパラレル変換回路
１７、１７１、１７２：遅延制御回路部
１８    ：データ反転回路部
１８ａ  ：インバータ
１８ｂ  ：セレクタ
２１、２１Ａ：キャリブレーション制御回路
２２    ：安定確認カウンタ
２３    ：アップダウンカウンタ
２４    ：セレクタ
２５    ：シーケンス制御回路
３１    ：受信データ信号
３２    ：受信クロック信号
３３    ：遅延クロック信号
３４    ：内部クロック信号
３５    ：クロック極性反転信号
３６、３６ａ、３６ｂ：受信データ
３７    ：パラレルデータ
３８    ：パラレルデータ用クロック信号
４０    ：データ極性反転信号
【図１Ａ】
2018029269.tif 000003
【図１Ｂ】
2018029269.tif 000004
【図２】
2018029269.tif 000005
【図３】
2018029269.tif 000006
【図４】
2018029269.tif 000007
【図５】
2018029269.tif 000008
【図６】
2018029269.tif 000009
【図７】
2018029269.tif 000010
【図８】
2018029269.tif 000011
【図９Ａ】
2018029269.tif 000012
【図９Ｂ】
2018029269.tif 000013
【図１０】
2018029269.tif 000014
【図１１】
2018029269.tif 000015
【図１２】
2018029269.tif 000016
【図１３】
2018029269.tif 000017
【図１４】
2018029269.tif 000018
【図１５】
2018029269.tif 000019
【図１６】
2018029269.tif 000020
【図１７Ａ】
2018029269.tif 000021
【図１７Ｂ】
2018029269.tif 000022
【図１８Ａ】
2018029269.tif 000023
【図１８Ｂ】
2018029269.tif 000024
【図１９】
2018029269.tif 000025
【図２０】
2018029269.tif 000026
【図２１】
2018029269.tif 000027
【図２２Ａ】
2018029269.tif 000028
【図２２Ｂ】
2018029269.tif 000029
【図２３】
2018029269.tif 000030
【図２４】
2018029269.tif 000031
【図２５】
2018029269.tif 000032
【図２６Ａ】
2018029269.tif 000033
【図２６Ｂ】
2018029269.tif 000034