(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0019】
以下、添付図面を参照しながら、様々な実施の形態を説明する。以下の説明において、同一又は類似の構成要素は、同一又は対応する参照符号によって参照することがある。
【0020】
(第1の実施形態)
図2は、一実施形態におけるデータ伝送システム10の構成を示すブロック図である。データ伝送システム10は、データ送信装置1とデータ受信装置2とを備えている。データ送信装置1は、データ信号を伝送するデータ伝送路3とクロック信号を伝送するクロック伝送路4とによってデータ受信装置2に接続されている。一実施例としては、データ送信装置1が第1の半導体装置(又は集積回路(IC))として実装され、データ受信装置2が第2の半導体装置(又は集積回路)として実装される。例えば、データ送信装置1が、アプリケーションプロセッサに実装され、データ受信装置2が、表示パネル(例えば、液晶表示パネルやOLED表示パネル)を駆動する表示ドライバに実装されてもよい。
【0021】
図
2では、データ伝送路3が、
1本の線として図示されているが、データ信号を差動信号として送信する場合には、データ伝送路3が該差動信号を伝送する2本の信号線を含んでいてもよい。クロック伝送路4についても同様に、クロック信号を差動信号として送信する場合には、クロック伝送路4が該差動信号を伝送する2本の信号線を含んでいてもよい。以下では、データ伝送路3で伝送されるデータ信号を外部データ信号5といい、クロック伝送路4によって伝送されるクロック信号を外部クロック信号6という。
【0022】
図3は、一実施形態におけるデータ受信装置2の構成を示すブロック図である。データ受信装置2は、受信バッファ11、12と、遅延回路部(delay circuitry)13と、クロック反転回路部(clock inversion circuitry)14と、ラッチ回路15と、シリアルパラレル変換回路16と、遅延制御回路部(delay control circuitry)17とを備えている。
【0023】
受信バッファ11は、データ伝送路3を介して伝送される外部データ信号5を受信し、受信した外部データ信号5に対応するシングルエンド信号である受信データ信号31を出力する。同様に、受信バッファ12は、クロック伝送路4によって伝送される外部クロック信号6を受信し、外部クロック信号6に対応するシングルエンド信号である受信クロック信号32を出力する。
【0024】
遅延回路部13は、受信データ信号31と受信クロック信号32の一方の信号を、該遅延回路部13に設定された設定遅延時間だけ他方の信号に対して遅延させるように構成されている。本実施形態では、遅延回路部13は、受信クロック信号32を遅延する一方、受信データ信号31をそのまま出力するように構成される。遅延回路部13は、受信バッファ
12の出力に接続された可変遅延回路13aを備えている。可変遅延回路13aは、それに設定された設定遅延時間だけ受信クロック信号32を遅延し、遅延クロック信号33を出力する。本実施形態では、可変遅延回路13aに設定される設定遅延時間は、遅延制御回路部17から供給される遅延設定値によって指定される。以下では、簡単のために、遅延設定値が大きいほど、可変遅延回路13aに設定される設定遅延時間が長くなるとするとして説明を行う。
【0025】
クロック反転回路部14は、遅延クロック信号33又は遅延クロック信号33を反転して得られる反転クロック信号のいずれかを内部クロック信号34として選択し、内部クロック信号34を出力する。クロック反転回路部14から出力される内部クロック信号34は、ラッチ回路15による受信データ信号31のラッチに用いられる。クロック反転回路部14は、インバータ14aとセレクタ14bとを備えている。インバータ14aは、遅延クロック信号33を反転して反転クロック信号を生成する。セレクタ14bは、遅延制御回路部17から供給されるクロック極性反転信号35に応じて遅延クロック信号33と反転クロック信号との一方のクロック信号を選択し、選択したクロック信号を内部クロック信号34として出力する。
【0026】
ラッチ回路15は、内部クロック信号34に同期して受信データ信号31をラッチし、受信データ36を出力する。ここで、内部クロック信号34は、受信クロック信号32から生成された遅延クロック信号33又はその反転クロック信号であるから、ラッチ回路15は、結局、受信クロック信号32に応じて受信データ信号31をラッチする動作を行うことに留意されたい。本実施形態では、簡単のために、ラッチ回路15が、内部クロック信号34の立ち上がりエッジに同期して、即ち、内部クロック信号34がローレベルからハイレベルに立ち上がると受信データ信号31をラッチするとして説明を行う。なお、ラッチ回路15は、内部クロック信号34の立ち下がりエッジに同期して受信データ信号31をラッチするように構成されてもよいし、後述されるように、内部クロック信号34の立ち上がりエッジと立ち下がりエッジの両方に同期して受信データ信号31をラッチするように構成されてもよい。
【0027】
シリアルパラレル変換回路16は、内部クロック信号34に同期して受信データ36を受け取り、受信データ36に対してシリアルパラレル変換を行ってパラレルデータ37を生成する。加えて、シリアルパラレル変換回路16は、内部クロック信号34に基づいて、パラレルデータ37に同期したパラレルデータ用クロック信号38を生成する。パラレルデータ用クロック信号38は、後段の回路においてパラレルデータ37をラッチするために用いられる。
【0028】
遅延制御回路部17は、可変遅延回路13aに設定すべき設定遅延時間を指定する遅延設定値を可変遅延回路13aに供給する。ここで、本実施形態では、遅延制御回路部17は、受信バッファ11、12によって受信される外部データ信号5と外部クロック信号6の間のスキューを補償するために最適な遅延設定値(以下、「最適遅延設定値」という。)を算出するキャリブレーション動作を実行可能なように構成されている。データ伝送システム10がキャリブレーションを行う動作モードであるキャリブレーションモードに設定されると、遅延制御回路部17は、キャリブレーション動作、即ち、最適遅延設定値を算出するための動作を行う。後述されるように、遅延制御回路部17は、可変遅延回路13aに設定された各遅延設定値(設定遅延時間)と、各遅延設定値に対する受信データ36の値とに基づいて、最適遅延設定値を算出する。通常動作時には、遅延制御回路部17は、キャリブレーション動作で算出した最適遅延設定値を可変遅延回路13aに設定する。
【0029】
本実施形態では、遅延制御回路部17は、キャリブレーション制御回路21と、安定確認カウンタ22と、アップダウンカウンタ23と、セレクタ24とを備えている。キャリブレーション制御回路21は、キャリブレーション動作を制御する。キャリブレーション制御回路21は、レジスタ#1〜#4とシーケンス制御回路25とを備えている。レジスタ#1〜#4は、キャリブレーション動作において用いられるデータ及び算出された最適遅延設定値を保持するために用いられる。シーケンス制御回路25は、キャリブレーション動作の各ステップを実行する手順がプログラムされており、当該手順に従ってキャリブレーション制御回路21からのデータ及び信号の出力及びキャリブレーション制御回路21の外部からのデータの受領を行う。
【0030】
安定確認カウンタ22は、ラッチ回路15から受信データ36を受け取り、受信データ36において同一値が連続して現れる回数をカウントする。後述されるように、安定確認カウンタ22のカウント値は、受信データ36の値が安定したことの確認のために用いられる。
【0031】
アップダウンカウンタ23は、キャリブレーション制御回路21による制御の下、カウント値を増減する。本実施形態では、アップダウンカウンタ23は、キャリブレーション制御回路21から“+1”信号、“+n”信号、“−1”信号及びリセット信号を受け取る。アップダウンカウンタ23は、“+1”信号が活性化されると、そのカウント値を1だけ増加し、“+n”信号が活性化されると、そのカウント値をnだけ増加する。また、アップダウンカウンタ23は、“−1”信号が活性化されると、そのカウント値を1だけ減少し、リセット信号が活性化されると、カウント値が初期値(例えば“0”)にリセットされる。
【0032】
なお、ラッチ回路15が、内部クロック信号34の立ち上がりエッジと立ち下がりエッジの両方に同期して受信データ信号31をラッチするように構成されてもよい。
図4は、この場合のデータ受信装置2の構成を示すブロック図である。
図4の構成では、ラッチ回路15が、内部クロック信号34(即ち、遅延クロック信号33又は反転クロック信号)の立ち上がりエッジに応答して受信データ信号31をラッチして受信データ36aを出力するラッチ15aと、内部クロック信号34の立ち下がりエッジに応答して受信データ信号31をラッチして受信データ36bを出力するラッチ15bとを備えている。シリアルパラレル変換回路16は、ラッチ15a、15bから受け取った受信データ36a、36bからパラレルデータ37を生成すると共に、内部クロック信号34からパラレルデータ用クロック信号38を生成する。ラッチ15a、15bから出力された受信データ36a、36bは、遅延制御回路部17に供給され、遅延制御回路部17における処理に用いられる。
【0033】
続いて、本実施形態におけるデータ受信装置2において行われるキャリブレーション動作について説明する。キャリブレーション動作の目的は、通常動作時にラッチ回路15に供給される内部クロック信号34の位相を最適化すること、即ち、可変遅延回路13aに設定する設定遅延時間を最適化することである。本実施形態では、可変遅延回路13aに設定される設定遅延時間は遅延設定値によって指定されるので、キャリブレーション動作では、通常動作時に可変遅延回路13aに設定する遅延設定値の最適値、即ち、最適遅延設定値が算出される。
図5に図示されているように、最適遅延設定値とは、ラッチ回路15による受信データ信号31のラッチに用いられる内部クロック信号34のエッジの位置が、受信データ信号31の隣接するエッジの中間の位置になるような遅延設定値である。ここで、以下では、エッジの位置が、受信データ信号31の隣接するエッジの中間の位置になるような内部クロック信号34を「最適化クロック信号」と呼ぶ。
図5には、様々な場合の「最適化クロック信号」のエッジの位置が図示されている。
【0034】
一つの問題は、外部データ信号5と外部クロック信号6とが別々の伝送路で伝送される本実施形態のデータ伝送システム10では、外部データ信号5と外部クロック信号6とが必ずしも同一の大きさのノイズを受けるとは限らないことである。このような状況でキャリブレーション動作を
複数回行うと、キャリブレーション動作の度に、算出される最適遅延設定値が変動し得る。このような問題は、特にノイズが多い環境において顕著になる。
【0035】
例えば、キャリブレーション動作において、受信データ信号31のエッジの位置が時間的に前にぶれた場合(
図5のケース#1)、最適化クロック信号も時間的に前になる。
図5では、このような関係にある受信データ信号31及び最適化クロック信号を、それぞれ、受信データ信号#1及び最適化クロック信号#1として図示している。一方、受信データ信号31のエッジの位置が時間的に後にぶれた場合(
図5のケース#2)、最適化クロック信号も時間的に後になる。
図5では、このような関係にある受信データ信号31及び最適化クロック信号を、それぞれ、受信データ信号#2及び最適化クロック信号#2として図示している。このように、算出される最適遅延設定値が、キャリブレーション動作の度に変動し得ることは、データ伝送システム10においてデータを安定に伝送するためには好ましくない。
【0036】
このような問題に対応するために、本実施形態では、算出される最適遅延設定値のぶれを抑制するような手順でキャリブレーション動作が行われる。以下では、本実施形態におけるキャリブレーション動作について詳細に説明する。
【0037】
図6は、本実施形態におけるキャリブレーション動作の概要を示すタイミングチャートである。本実施形態のキャリブレーション動作は、3つのフェイズ:第1フェイズ〜第3フェイズを含んでいる。
【0038】
第1フェイズでは、可変遅延回路13aの設定遅延時間を初期値(典型的には、可変遅延回路13aの最小の遅延時間)から増加させながら、ラッチ回路15から出力される受信データ36の値が、“H”から“L”に遷移した後、“L”で安定するような最小の設定遅延時間が探索される。より具体的には、可変遅延回路13aに設定される遅延設定値を初期値(典型的には、“0”)から増加させながら、ラッチ回路15から出力される受信データ36の値が、“H”から“L”に遷移した後、“L”で安定するような最小の遅延設定値が探索される。以下では、可変遅延回路13aに設定される遅延設定値の初期値をD0と記載し、第1フェイズにおける探索によって得られた遅延設定値を、遅延設定値D1と記載する。
【0039】
第2フェイズでは、可変遅延回路13aの設定遅延時間を更に増加させながら、ラッチ回路15から出力される受信データ36の値が、“L”から“H”に遷移した後、“H”で安定するような設定遅延時間が探索される。より具体的には、可変遅延回路13aに設定される遅延設定値を遅延設定値D1から増加させながら、受信データ36の値が、“L”から“H”に遷移した後、“H”で安定するような遅延設定値が探索される。以下では、第2フェイズにおける探索によって得られた遅延設定値を、遅延設定値D2と記載する。
【0040】
第3フェイズでは、可変遅延回路13aの設定遅延時間を、第2フェイズで探索された設定遅延時間から減少させながら、ラッチ回路15から出力される受信データ36の値が、“H”から“L”に遷移した後、“L”で安定するような最大の設定遅延時間が探索される。より具体的には、可変遅延回路13aに設定される遅延設定値を遅延設定値D2から減少させながら、受信データ36の値が、“H”から“L”に遷移した後、“L”で安定するような最大の遅延設定値が探索される。以下では、第3フェイズにおける探索によって得られた遅延設定値を、遅延設定値D3と記載する。
【0041】
可変遅延回路13aに設定する設定遅延時間の最適値は、第1フェイズの探索によって得られた設定遅延時間と第3フェイズの探索によって得られた設定遅延時間とに基づいて得ることができる。即ち、最適遅延設定値は、第1フェイズの探索によって得られた遅延設定値D1と第3フェイズの探索によって得られた遅延設定値D3とに基づいて算出される。本実施形態では、設定遅延時間の最適値は、第1フェイズの探索によって得られた設定遅延時間と第3フェイズの探索によって得られた設定遅延時間の平均値として算出される。即ち、最適遅延設定値は、遅延設定値D1、D3の平均値として算出される。
【0042】
このような手法によれば、キャリブレーション動作で得られる設定遅延時間の最適値、即ち、キャリブレーション動作で算出される最適遅延設定値の変動を抑制することができる。本実施形態の手法では、最適遅延設定値の算出に用いられる遅延設定値D1、D3は、それぞれ、ラッチ回路15から出力される受信データ36の値が“L”で安定化される最小の遅延設定値及び最大の遅延設定値であるので、遅延設定値D1、D3の変動を抑制することができる。したがって、キャリブレーション動作で得られる設定遅延時間の最適値、即ち、キャリブレーション動作で算出される最適遅延設定値の変動を抑制することができる。
【0043】
なお、上記の説明(及び以下の説明)において、受信データ36の値“L”、“H”は、シングルエンド信号の一方の値(第1値)、他方の値(第2値)という程度の意味しか有していないことに留意されたい。
【0044】
以下では、キャリブレーション動作におけるデータ受信装置2の動作について、詳細に説明する。なお、本実施形態のキャリブレーション動作においては、外部データ信号5として、1UI毎に値が“L”と“H”の間で反転される信号が送られる。また、キャリブレーション動作の初期状態では、クロック極性反転信号35が非活性化され、よって、内部クロック信号34として(インバータ14aによって
生成された反転クロック信号ではなく)遅延クロック信号33が選択されているとする。
【0045】
図7は、第1フェイズにおけるデータ受信装置2の動作、特に、遅延制御回路部17の動作を示すフローチャートである。上述のように、第1フェイズでは、
可変遅延回路13aに設定される遅延設定値を初期値から増大させながら、ラッチ回路15から出力される受信データ36の値が、“H”から“L”に遷移した後、“L”で安定するような最小の遅延設定値D1が探索される。
【0046】
第1フェイズでは、まず、アップダウンカウンタ23がリセットされ、更に、可変遅延回路13aがアップダウンカウンタ23に接続される(ステップS10)。詳細には、ステップ
S10では、キャリブレーション制御回路21によってリセット信号が活性化され、アップダウンカウンタ23のカウント値が初期値(典型的には“0”)にリセットされる。また、セレクタ24によってアップダウンカウンタ23のカウント値が可変遅延回路13aに設定される遅延設定値として選択され、これにより、可変遅延回路13aに設定される遅延設定値が、初期値D0に設定される。
図8は、可変遅延回路13aの遅延設定値が初期値D0に設定されたときの受信データ信号31と遅延クロック信号33の波形の例を示している。
【0047】
続いて、ラッチ回路15から出力される受信データ36の値がキャリブレーション制御回路21によって判定される(ステップS11)。ステップS11において判定された受信データ36の値が“L”である場合、クロック極性反転信号35が活性化され、内部クロック信号34が反転される(ステップS12)。即ち、クロック極性反転信号35の活性化に応答してセレクタ14bにより反転クロック信号が選択され、以後、反転クロック信号が内部クロック信号34として用いられる。
【0048】
ステップS11、S12の動作が行われるのは、第1フェイズにおける探索を速やかに完了させるためである。上述のように、第1フェイズでは、ラッチ回路15から出力される受信データ36の値が“H”から“L”に遷移した後、“L”で安定するような最小の遅延設定値D1が探索される。このとき、例えば、
図9Aに図示されているように、遅延設定値が初期値D0に設定された場合にラッチ回路15から出力される受信データ36の値が“L”であるときには、第1フェイズにおいて、ラッチ回路15から出力される受信データ36の値が“L”から“H”に遷移し、更に“H”から“L”に遷移した後、“L”で安定するような最小の遅延設定値を探索することになる。このような動作では、第1フェイズにおける探索に要する時間が増大してしまう。
【0049】
一方、
図9Bに図示されているように、遅延設定値が初期値D0に設定された場合にラッチ回路15から出力される受信データ36の値が“L”であるときに内部クロック信号34を反転すれば(即ち、内部クロック信号34として反転クロック信号を選択すれば)、遅延設定値が初期値D0に設定された場合にラッチ回路15から出力される受信データ36の値を“H”にすることができる。よって、第1フェイズにおける探索を短時間で完了させることができる。
【0050】
図7に戻り、第1フェイズの手順は、ステップS13、S14に移行する。ステップS13、S14では、ラッチ回路15から出力される受信データ36の値が“L”になるまで、アップダウンカウンタ23のカウント値、即ち、可変遅延回路13aに設定される遅延設定値が1ずつ増加される。第1フェイズのステップS13、S14において遅延設定値が増加される増分は1である。上述のように、アップダウンカウンタ23のカウント値は、キャリブレーション制御回路21からアップダウンカウンタ23に供給される“+1”信号を活性化することにより、1ずつ増加させることができる。
【0051】
ステップS14において、ある遅延設定値について、ラッチ回路15から出力される受信データ36の値が“L”になったことが検知されると、ステップS15〜S19において、当該遅延設定値によって
受信データ36の値が“L”で安定するかが判断される。
【0052】
より具体的には、まず、安定確認カウンタ22がリセットされ(ステップS15)、更に、この状態で、再度、ラッチ回路15から出力される受信データ36の値が“L”であるかが判断される(ステップS16)。
【0053】
ステップS16においてラッチ回路15から出力される受信データ36の値が“L”でない場合には、アップダウンカウンタ23のカウント値が1だけ増加され(ステップS17)、再度、ラッチ回路15から出力される受信データ36の値が“L”であるかが判断される(ステップS16)。
【0054】
ステップS16においてラッチ回路15から出力される受信データ36の値が“L”であると判断された場合、安定確認カウンタ22のカウント値が1だけ増加される(ステップS18)。
【0055】
ステップS18に続いて、安定確認カウンタ22のカウント値が、所定の基準値に到達しているかが判断される(ステップS19)。安定確認カウンタ22のカウント値が、所定の基準値に到達していない場合、ステップS16〜S18の動作が再度実行される。ステップS16〜S18の動作は、安定確認カウンタ22のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【0056】
安定確認カウンタ22のカウント値が所定の基準値に到達した時点のアップダウンカウンタ23のカウント値、即ち、この時点で可変遅延回路13aに設定されていた遅延設定値が遅延設定値D1である。
図10は、第1フェイズで得られた遅延設定値D1と受信データ信号31の位相との関係を図示している。遅延設定値D1は、キャリブレーション制御回路21のレジスタ#1に格納されて保持される(ステップS19)。以上で、第1フェイズの動作が完了する。
【0057】
図11は、第2フェイズにおけるデータ受信装置2の動作、特に、遅延制御回路部17の動作を示すフローチャートであり、
図12は、第2フェイズで得られる遅延設定値D2と受信データ信号
31の波形の関係を示すタイミングチャートである。第2フェイズでは、
可変遅延回路13aに設定される遅延設定値を遅延設定値D1から増加させながら、ラッチ回路15から出力される受信データ36の値が、“L”から“H”に遷移した後、“H”で安定するような遅延設定値D2が探索される。
【0058】
第2フェイズでは、まず、ラッチ回路15から出力される受信データ36の値が“H”になるまで、アップダウンカウンタ23のカウント値、即ち、可変遅延回路13aに設定される遅延設定値が、遅延設定値D1から、n(>1)ずつ増加される(ステップS21、S22)。詳細には、アップダウンカウンタ23のカウント値がnだけ増加され(ステップS21)、この状態でラッチ回路15から出力される受信データ36の値が判断される(ステップS22)。なお、アップダウンカウンタ23のカウント値は、キャリブレーション制御回路21からアップダウンカウンタ23に供給される“+n”信号を活性化することにより、nずつ増加させることができる。ステップS21、
S22は、ラッチ回路15から出力される受信データ36の値が“H”になるまで繰り返して行われる。
【0059】
留意すべきことは、第2フェイズのステップS21、S22において遅延設定値が増加される増分がn(>1)であり、第1フェイズにおいて遅延設定値が増加される増分(即ち、1)よりも大きいことである。言い換えれば、第2フェイズのステップS21、S22において増加される可変遅延回路13aの設定遅延時間の増分は、第1フェイズにおいて増加される可変遅延回路13aの設定遅延時間の増分よりも大きい。このような動作は、第2フェイズにおける遅延設定値D2の探索に要する時間を短縮することに寄与する。第2フェイズにおいて探索される遅延設定値D2は、
受信データ36の値が“L”から“H”に遷移した後、“H”で安定するような最小の遅延設定値であるので、第2フェイズにおいて探索される遅延設定値D2は、遅延設定値D1から比較的大きく離れた値である。そこで、ステップS21、S22において遅延設定値が増加される増分を大きくすることで、第2フェイズにおける遅延設定値D2の探索に要する時間を短縮できる。なお、第2フェイズで探索される遅延設定値D2は、後述される遅延設定値D3の探索の初期値として用いられ、最適遅延設定値の算出には直接には用いられないので、遅延設定値D2の精度は低いことが許容されることにも留意されたい。ステップS21、S22において遅延設定値が増加される増分が大きくても、最適遅延設定値の算出の精度は低下しない。
【0060】
ステップS22において、ある遅延設定値について、ラッチ回路15から出力される受信データ36の値が“H”になったことが検知されると、ステップS23〜S27において、当該遅延設定値によって
受信データ36の値が“H”で安定するかが判断される。
【0061】
より具体的には、まず、安定確認カウンタ22がリセットされ(ステップS23)、更に、この状態で、再度、ラッチ回路15から出力される受信データ36の値が“H”であるかが判断される(ステップS24)。
【0062】
ステップS24においてラッチ回路15から出力される受信データ36の値が“H”でない場合には、アップダウンカウンタ23のカウント値が1だけ増加され(ステップS25)、再度、ラッチ回路15から出力される受信データ36の値が“H”であるかが判断される(ステップS24)。
【0063】
ステップS24においてラッチ回路15から出力される受信データ36の値が“H”であると判断された場合、安定確認カウンタ22のカウント値が1だけ増加される(ステップS26)。
【0064】
ステップS26に続いて、安定確認カウンタ22のカウント値が、所定の基準値に到達しているかが判断される(ステップS27)。安定確認カウンタ22のカウント値が、所定の基準値に到達していない場合、ステップS24〜S26の動作が再度実行される。ステップS24〜S26の動作は、安定確認カウンタ22のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【0065】
安定確認カウンタ22のカウント値が所定の基準値に到達した時点のアップダウンカウンタ23のカウント値、即ち、この時点で可変遅延回路13aに設定されていた遅延設定値が遅延設定値D2である。遅延設定値D2は、キャリブレーション制御回路21のレジスタ#2に格納されて保持される(ステップS28)。以上で、第2フェイズの動作が完了する。
【0066】
図13は、第3フェイズにおけるデータ受信装置2の動作、特に、遅延制御回路部17の動作を示すフローチャートであり、
図14は、第3フェイズで得られる遅延設定値D3と受信データ信号
31の波形の関係を示すタイミングチャートである。第3フェイズでは、
可変遅延回路13aに設定される遅延設定値を遅延設定値D2から減少させながら、ラッチ回路15から出力される受信データ36の値が、“H”から“L”に遷移した後、“L”で安定するような遅延設定値D3が探索される。
【0067】
第3フェイズでは、まず、ラッチ回路15から出力される受信データ36の値が“L”になるまで、アップダウンカウンタ23のカウント値、即ち、可変遅延回路13aに設定される遅延設定値が、遅延設定値D2から、1ずつ減少される(ステップS31、S32)。詳細には、アップダウンカウンタ23のカウント値が1だけ減少され(ステップS31)、この状態でラッチ回路15から出力される受信データ36の値が判断される(ステップS32)。ステップS31、S32は、ラッチ回路15から出力される受信データ36の値が“L”になるまで繰り返して行われる。第3フェイズのステップS31、S32において遅延設定値が減少される減分は1である。なお、アップダウンカウンタ23のカウント値は、キャリブレーション制御回路21からアップダウンカウンタ23に供給される“−1”信号を活性化することにより、1ずつ減少させることができる。
【0068】
ステップS32において、ある遅延設定値について、ラッチ回路15から出力される受信データ36の値が“L”になったことが検知されると、ステップS33〜S37において、当該遅延設定値によって
受信データ36の値が“L”で安定するかが判断される。
【0069】
より具体的には、まず、安定確認カウンタ22がリセットされ(ステップS33)、更に、この状態で、再度、ラッチ回路15から出力される受信データ36の値が“L”であるかが判断される(ステップS34)。
【0070】
ステップS34においてラッチ回路15から出力される受信データ36の値が“L”でない場合には、アップダウンカウンタ23のカウント値が1だけ
減少され(ステップS35)、再度、ラッチ回路15から出力される受信データ36の値が“L”であるかが判断される(ステップS34)。
【0071】
ステップS34においてラッチ回路15から出力される受信データ36の値が“L”であると判断された場合、安定確認カウンタ22のカウント値が1だけ増加される(ステップS36)。
【0072】
ステップS36に続いて、安定確認カウンタ22のカウント値が、所定の基準値に到達しているかが判断される(ステップS37)。安定確認カウンタ22のカウント値が、所定の基準値に到達していない場合、ステップS34〜S36の動作が再度実行される。ステップS34〜S36の動作は、安定確認カウンタ22のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【0073】
安定確認カウンタ22のカウント値が所定の基準値に到達した時点のアップダウンカウンタ23のカウント値、即ち、この時点で可変遅延回路13aに設定されていた遅延設定値が遅延設定値D3である。遅延設定値D3は、キャリブレーション制御回路21のレジスタ#3に格納されて保持される(ステップS38)。以上で、第3フェイズの動作が完了する。
【0074】
図15に図示されているように、最適遅延設定値は、第1フェイズの探索によって得られた遅延設定値D1と第3フェイズの探索によって得られた遅延設定値D3とに基づいて算出される。最適遅延設定値の算出は、キャリブレーション制御回路21によって行われる。本実施形態では、最適遅延設定値は、遅延設定値D1、D3の平均値(D1+D3)/2として算出される。算出された最適遅延設定値がレジスタ#4に格納され、キャリブレーション動作が完了する。
【0075】
通常動作時には、レジスタ#4に格納されている最適遅延設定値がセレクタ24によって選択され、可変遅延回路13aに設定される。上記のようにして算出された最適遅延設定値を可変遅延回路13aに設定することにより、受信データ信号31と内部クロック信号34との間の位相差を適切に設定し、外部データ信号5及び外部クロック信号6の間のスキューを補償することができる。
【0076】
上述された本実施形態の手法では、キャリブレーション動作で算出される最適遅延設定値の変動を抑制することができることに留意されたい。最適遅延設定値の算出に用いられる遅延設定値D1、D3は、それぞれ、ラッチ回路15から出力される受信データ36の値が“L”で安定化される最小の遅延設定値及び最大の遅延設定値であるので、遅延設定値D1、D3は、キャリブレーション動作毎の変動を小さくことができる。したがって、キャリブレーション動作で算出される最適遅延設定値の変動も抑制することができる。
【0077】
加えて、本実施形態のキャリブレーション動作は、第1フェイズ、第2フェイズ、第3フェイズを分割して実行できるため、キャリブレーション動作の実施の柔軟性が高いという利点もある。例えば、第1フェイズを実行した後、第1フェイズにおいて得られた遅延設定値D1をキャリブレーション制御回路21のレジスタ#1に格納し、第2フェイズの実行を開始するときにレジスタ#1に格納された遅延設定値D1を読み出してアップダウンカウンタ23に設定すれば、第1フェイズと第2フェイズを連続して実行する必要性が無くなる。同様に、第2フェイズを実行した後、第2フェイズにおいて得られた遅延設定値D2をキャリブレーション制御回路21のレジスタ#2に格納し、第3フェイズの実行を開始するときにレジスタ#2に格納された遅延設定値D2を読み出してアップダウンカウンタ23に設定すれば、第2フェイズと第3フェイズを連続して実行する必要性が無くなる。第1フェイズ、第2フェイズ、第3フェイズのそれぞれは、比較的短時間で実行できるので、第1フェイズ、第2フェイズ、第3フェイズを分割して実行することで、データ伝送の空き時間を有効に利用することができる。
【0078】
例えば、第1フェイズと第2フェイズの間の期間において、通常のデータ伝送(即ち、外部データ信号5、外部クロック信号6を用いたデータ伝送)が行われてもよい。上述のように、通常のデータ伝送の際には、レジスタ#4に格納されている最適遅延設定値がセレクタ24によって選択され、可変遅延回路13aに設定される。同様に、第2フェイズと第3フェイズの間の期間において、通常のデータ伝送が行われてもよい。第3フェイズが完了すると、第1フェイズと第3フェイズで得られた遅延設定値D1、D3から最適遅延設定値が算出され、レジスタ#4に格納される。これにより、最適遅延設定値が更新される。次回のデータ伝送では、更新された最適遅延設定値が可変遅延回路13aに設定されてデータ伝送が行われる。
【0079】
図16は、第1フェイズ、第2フェイズ及び第3フェイズを分割して実行するキャリブレーション動作を行う場合のデータ伝送システムの動作の例を示すタイミングチャートである。データ伝送システム10が起動されると(例えば、電源が投入されると)、起動シーケンスが開始される。起動シーケンスにおいては上記のキャリブレーション動作が実行される。このキャリブレーション動作では第1〜第3フェイズが連続して実行される。
【0080】
その後、データ伝送システム10におけるデータ伝送が開始される。データ伝送が開始された後のキャリブレーション動作は、第1〜第3フェイズが分割して実行される。適宜のタイミングでデータ伝送が一旦停止され、第1フェイズが実行される。第1フェイズが完了すると、データ伝送が再開される。その後、適宜のタイミングでデータ伝送が一旦停止され、第2フェイズが実行される。第2フェイズが完了すると、データ伝送が再開される。その後、適宜のタイミングでデータ伝送が一旦停止され、第3フェイズが実行される。第3フェイズが実行されると、最適遅延設定値が算出される。以後、算出された最適遅延設定値が可変遅延回路13aに設定されてデータ伝送が行われる。
【0081】
また、本実施形態のデータ伝送システム10が、表示装置において表示パネルを駆動する表示ドライバに画像データ及び制御データを供給するために用いられる場合(この場合、データ受信装置2が該表示ドライバに集積化される)、第1フェイズ、第2フェイズ、第3フェイズのそれぞれが、垂直ブランキング期間において行われてもよい。例えば、第1フェイズが、第1垂直同期期間の垂直ブランキング期間において行われ、第2フェイズが、第1垂直同期期間よりも時間的に後である第2垂直同期期間の垂直ブランキング期間において行われ、第3フェイズが、第2垂直同期期間よりも時間的に後である第3垂直同期期間の垂直ブランキング期間において行われてもよい。なお、第2垂直同期期間は、第1垂直同期期間の直後の垂直同期期間である必要は無く、第3垂直同期期間は、第2垂直同期期間の直後の垂直同期期間である必要は無い。
【0082】
第1フェイズ、第2フェイズ及び第3フェイズを分割して実行する場合、経時変化による影響が発生し得る。例えば、第1フェイズの完了からある程度の時間が経過してから第2フェイズを実行すると、第1フェイズで決定された遅延設定値D1が、経時変化により、最適でなくなる場合がある。同様に、第2フェイズの完了からある程度の時間が経過してから第3フェイズを実行すると、第2フェイズで決定された遅延設定値D2が、経時変化により、最適でなくなる場合がある。
【0083】
経時変化による影響を抑制するためには、第2フェイズ、第3フェイズの動作を下記のように変更することが望ましい。
【0084】
図17A、
図17Bは、経時変化による影響を抑制するために好適な第2フェイズの動作を示すフローチャートである。
図17Aに図示されているように、第2フェイズが開始されると、レジスタ#1に保持されていた遅延設定値D1が、アップダウンカウンタ23のカウント値として設定される(ステップS41)。更に、セレクタ24によってアップダウンカウンタ23のカウント値が可変遅延回路13aに設定する遅延設定値として選択され、その結果、可変遅延回路13aに遅延設定値D1が設定される。
【0085】
ステップS42〜S46においては、遅延設定値D1を可変遅延回路13aに設定することによって
受信データ36の値が“L”で安定するかが判断される。
【0086】
より具体的には、まず、安定確認カウンタ22がリセットされ(ステップS42)、更に、ラッチ回路15から出力される受信データ36の値が“L”であるかが判断される(ステップS43)。
【0087】
ステップS43においてラッチ回路15から出力される受信データ36の値が“L”でない場合には、アップダウンカウンタ23のカウント値が1だけ増加され(ステップS44)、再度、ラッチ回路15から出力される受信データ36の値が“L”であるかが判断される(ステップS43)。
【0088】
ステップS43においてラッチ回路15から出力される受信データ36の値が“L”であると判断された場合、安定確認カウンタ22のカウント値が1だけ増加される(ステップS45)。
【0089】
ステップS45に続いて、安定確認カウンタ22のカウント値が、所定の基準値に到達しているかが判断される(ステップS46)。安定確認カウンタ22のカウント値が、所定の基準値に到達していない場合、ステップS43〜S45の動作が再度実行される。ステップS43〜S45の動作は、安定確認カウンタ22のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【0090】
安定確認カウンタ22のカウント値が所定の基準値に到達した時点のアップダウンカウンタ23のカウント値が、適正な遅延設定値D1と決定される。この時点での安定確認カウンタ22のカウント値が、レジスタ#1に新たな遅延設定値D1として格納される。
【0091】
図17Bに図示されているように、以後の動作は、
図11に図示されている第2フェイズのステップS21〜S28の動作と同一である。
【0092】
このような動作では、経時変化によって適正な遅延設定値D1が変動しても、遅延設定値D1の調整が行われるので、経時変化による影響を抑制することができる。
【0093】
図18A、
図18Bは、経時変化による影響を抑制するために好適な第3フェイズの動作を示すフローチャートである。
図18Aに図示されているように、第3フェイズが開始されると、レジスタ#2に保持されていた遅延設定値D2が、アップダウンカウンタ23のカウント値として設定される(ステップS51)。更に、セレクタ24によってアップダウンカウンタ23のカウント値が可変遅延回路13aに設定する遅延設定値として選択され、その結果、可変遅延回路13aに遅延設定値D2が設定される。
【0094】
ステップS52〜S56においては、遅延設定値D2を可変遅延回路13aに設定することによって受信データ信号31の値が“H”で安定するかが判断される。
【0095】
より具体的には、まず、安定確認カウンタ22がリセットされ(ステップS52)、更に、ラッチ回路15から出力される受信データ36の値が“H”であるかが判断される(ステップS53)。
【0096】
ステップS53においてラッチ回路15から出力される受信データ36の値が“H”でない場合には、アップダウンカウンタ23のカウント値が1だけ増加され(ステップS54)、再度、ラッチ回路15から出力される受信データ36の値が“H”であるかが判断される(ステップS53)。
【0097】
ステップS53においてラッチ回路15から出力される受信データ36の値が“H”であると判断された場合、安定確認カウンタ22のカウント値が1だけ増加される(ステップS55)。
【0098】
ステップS55に続いて、安定確認カウンタ22のカウント値が、所定の基準値に到達しているかが判断される(ステップS56)。安定確認カウンタ22のカウント値が、所定の基準値に到達していない場合、ステップS53〜S55の動作が再度実行される。ステップS53〜S55の動作は、安定確認カウンタ22のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【0099】
安定確認カウンタ22のカウント値が所定の基準値に到達した時点のアップダウンカウンタ23のカウント値が、適正な遅延設定値D2と決定される。この時点での安定確認カウンタ22のカウント値が、レジスタ#2に新たな遅延設定値D2として格納される。
【0100】
図18Bに図示されているように、以後の動作は、
図13に図示されている第3フェイズのステップ
S31〜
S38の動作と同一である。
【0101】
このような動作では、経時変化によって適正な遅延設定値D2が変動しても、遅延設定値D2の調整が行われるので、経時変化による影響を抑制することができる。
【0102】
上述の実施形態において、クロック反転回路部14は設けられなくてもよい。この場合、第1フェイズにおいて、ステップS11、S12は実行されず、遅延設定値が初期値D0に設定されたときにラッチ回路15から出力される受信データ36の値が“L”である場合には、
図9Aに図示されている動作が行われる。ただし、この場合でも、第1フェイズの実行に要する時間は長くなるが、遅延設定値D1は算出可能である。
【0103】
また、上述の実施形態では、クロック反転回路部14が、外部クロック信号6を受け取る受信バッファ12の出力に接続された可変遅延回路13aの出力に接続されているが、その代わりに、図
19に図示されているように、データ反転回路部18が、外部データ信号5を受け取る受信バッファ11の出力に接続されていてもよい。データ反転回路部18は、受信データ信号31又は受信データ信号31を反転して得られる反転データ信号のいずれかを選択し、選択したデータ信号をラッチ回路15に供給する。この場合、可変遅延回路13aから出力された遅延クロック信号33がそのまま内部クロック信号34として用いられる。
【0104】
詳細には、データ反転回路部18は、インバータ18aとセレクタ18bとを備えている。インバータ18aは、受信データ信号31を反転して反転データ信号を生成する。セレクタ18bは、遅延制御回路部17から供給されるデータ極性反転信号40に応じて受信データ信号31と反転データ信号との一方のデータ信号を選択し、選択したデータ信号をラッチ回路15に出力する。
【0105】
図19の構成のデータ受信装置2の動作は、
図3の構成のデータ受信装置2の動作とほぼ同様である。ただし、第1フェイズのステップS11において受信データ36の値が“L”である場合、データ極性反転信号40が活性化され、セレクタ18bにより反転データ信号が選択される。以後、反転データ信号がラッチ回路15に供給される。
図19の構成のデータ受信装置2の他の動作は、
図3の構成のデータ受信装置2と同一である。
【0106】
また、上述の実施形態では、遅延回路部13は、外部クロック信号6を受け取る受信バッファ12の出力に接続された可変遅延回路13aを備えているが、その代わりに、
図20に図示されているように、外部データ信号5を受け取る受信バッファ11の出力に接続された可変遅延回路13bを備えていてもよい。この場合、遅延制御回路部17から出力される遅延設定値は可変遅延回路13bに供給され、可変遅延回路13bの設定遅延時間は、遅延制御回路部17から可変遅延回路13bに供給された遅延設定値に応じて設定される。この場合でも、上記と同一のキャリブレーション動作を行うことによって最適遅延設定値が算出され、可変遅延回路13bに設定される。
【0107】
この場合も、クロック反転回路部14を設ける代わりにデータ反転回路部18が設けられていてもよい。
図21は、このような構成のデータ受信装置2の構成を示すブロック図である。
図21の構成では、データ反転回路部18が、可変遅延回路13bの出力に接続されている。
図21の構成のデータ受信装置2の動作は、
図20の構成のデータ受信装置2の動作と同様であり、第1フェイズのステップS11において受信データ36の値が“L”である場合、データ極性反転信号40が活性化され、セレクタ18bによりインバータ18aから出力される反転データ信号が選択される。以後、該反転データ信号がラッチ回路15に供給される。
図21の構成のデータ受信装置2の他の動作は、
図3の構成のデータ受信装置2と同一である。
【0108】
また、データ伝送システムが複数のデータ伝送路を用いてデータ伝送を行うように構成されてもよい。
図22Aは、2つのデータ伝送路を用いてデータ伝送を行うデータ伝送システム10Aの構成を示している。データ伝送システム10Aは、データ送信装置1Aとデータ受信装置2Aとを備えている。データ送信装置1Aは、2つのデータ伝送路3
1、3
2とクロック伝送路4とを介してデータ受信装置2Aに接続されている。データ伝送路3
1、3
2は、2つのデータレーン:レーン#1、#2として用いられる。レーン#1(データ伝送路3
1)は、外部データ信号5
1の伝送に用いられ、レーン#2(データ伝送路3
2)は、外部データ信号5
2の伝送に用いられる。
【0109】
図22Bは、データ受信装置2Aの構成を示すブロック図である。データ受信装置2Aは、レーン#1、#2のそれぞれについて、受信バッファ11と、遅延回路部13と、クロック反転回路部14と、ラッチ回路15と、シリアルパラレル変換回路16と、遅延制御回路部17とを備えている。なお、
図18Bにおいて、レーン#1について設けられる受信バッファ11と、遅延回路部13と、クロック反転回路部14と、ラッチ回路15と、シリアルパラレル変換回路16と、遅延制御回路部17は、それぞれ、符号11
1、13
1、14
1、15
1、16
1、17
1によって参照されている。同様に、レーン
#2について設けられる受信バッファ11と、遅延回路部13と、クロック反転回路部14と、ラッチ回路15と、シリアルパラレル変換回路16と、遅延制御回路部17は、それぞれ、符号
112、132、142、152、162、172によって参照されている。
【0110】
外部クロック信号6を受け取る受信バッファ12は、レーン#1、#2の間で共有される。受信バッファ12から出力される受信クロック信号32は、レーン#1の遅延回路部13
1の可変遅延回路13aと、レーン#2の遅延回路部13
2の可変遅延回路
13aとに供給される。遅延制御回路部17
1は、レーン#1のデータ伝送についてキャリブレーション動作を行って遅延回路部13
1の可変遅延回路13aに設定する最適遅延設定値を算出する。同様に、遅延制御回路部17
2は、レーン#2のデータ伝送についてキャリブレーション動作を行って遅延回路部13
2の可変遅延回路13aに設定する最適遅延設定値を算出する。遅延制御回路部17
1、17
2によって行われるキャリブレーション動作は、上述されたデータ伝送システム10のキャリブレーション動作と同一である。
【0111】
なお、
図22A、
図22Bは、2つのデータ伝送路を用いて外部データ信号5
1、5
2を伝送するデータ伝送システム10Aを図示しているが、データ伝送路の数は2に限定されないことに留意されたい。例えば、MIPI D−PHY規格では、最大で4つのデータレーン(4つのデータ伝送路)を設けることが許容されている。データ受信装置2Aの構成は、データレーンの数に合わせて適宜変更される。
【0112】
また、上述の実施形態の動作では、キャリブレーション動作が行われる毎に最適遅延設定値が遅延設定値D1、D3に基づいて算出されるが、このような動作は、最適遅延設定値の誤算出に対して影響を受けやすい。例えば、ノイズなどの原因により、遅延設定値D1、D3の少なくとも一方が不適切に決定された場合には、最適遅延設定値も不適切な値として算出される。
【0113】
このような問題を回避するためには、第3フェイズの完了の後、以下に説明するオプション動作#1を行ってもよい。オプション動作#1では、最適遅延設定値が新たに算出されたときに、新たに算出された最適遅延設定値とレジスタ#4に設定されている従前の最適遅延設定値とを比較し、比較の結果に応じてレジスタ#4に設定されている最適遅延設定値を所定値(例えば、“1”)だけ増加又は減少される。言い換えれば、第1フェイズの探索で得られた設定遅延時間と第3フェイズの探索で得られた設定遅延時間の平均値と従前のキャリブレーション動作で決定された設定遅延時間の最適値とを比較し、比較の結果に応じて、設定遅延時間の最適値が、所定の遅延時間だけ長く又は短くされる。オプション動作#1では、最適遅延設定値(即ち、設定遅延時間の最適値)が不適切に算出されても、最適遅延設定値の不所望な変動を、該所定値に留めることができる。
【0114】
図23は、オプション動作#1に対応したデータ受信装置2の構成を示している。図
23のデータ受信装置2のキャリブレーション制御回路21Aは、レジスタ#1、#3に格納されている遅延設定値D1、D3から新たに算出された最適遅延設定値と、レジスタ#4に格納されている従前の最適遅延設定値とを比較し、比較の結果に応じてレジスタ#4に設定されている最適遅延設定値を所定値(例えば、“1”)だけ増加又は減少するように構成されている
。
【0115】
図24は、オプション動作#1の手順を示すフローチャートである。オプション動作#1は、1回目のキャリブレーション動作においては使用されない(ステップS61:YES)。1回目のキャリブレーション動作においては、上述されているように、最適遅延設定値が、第1フェイズの探索によって得られた遅延設定値D1と第3フェイズの探索によって得られた遅延設定値D3の平均値として算出される(ステップS67)。
【0116】
また、2回目以降のキャリブレーション動作においても、オプション動作#1が実行されない場合には(ステップS62:NO)、最適遅延設定値が、第1フェイズの探索によって得られた遅延設定値D1と第3フェイズの探索によって得られた遅延設定値D3の平均値として算出される(ステップS67)。
【0117】
2回目以降のキャリブレーション動作においてオプション動作#1が実行される場合、第1、第3フェイズの探索によって得られた遅延設定値D1、D3の平均値と、レジスタ#4に格納されている従前の最適遅延設定値とが比較される(ステップS63)。
【0118】
第1、第3フェイズの探索によって得られた遅延設定値D1、D3の平均値が、レジスタ#4に格納されている従前の最適遅延設定値よりも大きい場合(ステップS63:YES)、レジスタ#4に格納されている最適遅延設定値が、所定値(例えば、“1”)だけ増加される(ステップS64)。一方、第1、第3フェイズの探索によって得られた遅延設定値D1、D3の平均値が、レジスタ#4に格納されている従前の最適遅延設定値よりも小さい場合(ステップS65:YES)、レジスタ#4に格納されている最適遅延設定値が、所定値(例えば、“1”)だけ減少される(ステップS66)。
【0119】
レジスタ#4には、以上のようにして算出又は更新された最適遅延設定値が格納される。通常動作においては、レジスタ#4に格納された最適遅延設定値が、可変遅延回路13aに設定される遅延設定値として選択される(ステップS68)。
【0120】
オプション動作#1の手順で最適遅延設定値を更新することにより、最適遅延設定値の誤算出による影響を抑制することができる。
【0121】
2回目以降のキャリブレーション動作では、1回目のキャリブレーション動作の結果(即ち、1回目のキャリブレーション動作の第1フェイズ、第3フェイズで得られる遅延設定値D1、D3)を利用して下記に説明するオプション動作#2を実行することにより、短時間でキャリブレーション動作を完了させることも可能である。
【0122】
図25は、オプション動作#2に対応したデータ受信装置2の構成を示すブロック図である。
図25に図示された構成では、キャリブレーション制御回路21に、5つのレジスタ#1〜#5が設けられる。レジスタ#1〜#3は、1回目のキャリブレーション動作によって得られた遅延設定値D1〜D3を格納するために用いられる。レジスタ#4は、最適遅延設定値を格納するために用いられる。レジスタ#5は、2回目
以降のキャリブレーション動作によって得られる遅延設定値D4を格納するために用いられる。ここで、2回目
以降のキャリブレーション動作では、1回目のキャリブレーション動作の第1フェイズと同様に、可変遅延回路13aに設定される遅延設定値を初期値(典型的には、“0”)から増加させながら、ラッチ回路15から出力される受信データ36の値が、“H”から“L”に遷移した後、“L”で安定するような最小の遅延設定値が探索される。この探索によって得られた遅延設定値が、遅延設定値D4として、レジスタ#5に格納される。
【0123】
オプション動作#2に対応したデータ受信装置2では、キャリブレーション制御回路21が、2回目以降のキャリブレーション動作において、当該キャリブレーション動作における探索によって得られた遅延設定値D4と1回目のキャリブレーション動作において得られている遅延設定値D1、D3とに基づいて最適遅延設定値を算出するように構成される。より具体的には、キャリブレーション制御回路21は、2回目以降のキャリブレーション動作においては、最適遅延設定値を、D4+(D3−D1)/2として算出する。
【0124】
図26A、
図26Bは、オプション動作#2に対応したデータ受信装置2におけるキャリブレーション動作を示すフローチャートである。
【0125】
図26に図示されているように、1回目のキャリブレーション動作(ステップS71:YES)では、上述された第1〜第3フェイズの動作が実行される。より具体的には、まず、アップダウンカウンタ23がリセットされ、更に、可変遅延回路13aがアップダウンカウンタ23に接続される(ステップS10)。詳細には、ステップ
S10では、キャリブレーション制御回路21によってリセット信号が活性化され、アップダウンカウンタ23のカウント値が初期値(典型的には“0”)にリセットされる。また、セレクタ24によってアップダウンカウンタ23のカウント値が可変遅延回路13aに設定される遅延設定値として選択され、これにより、可変遅延回路13aに設定される遅延設定値が、初期値D0に設定される。
【0126】
続いて、ラッチ回路15によってラッチされた
受信データ36の値がキャリブレーション制御回路21によって判定される(ステップS11)。ステップ
S11において判定された受信データ36の値が“L”である場合、クロック極性反転信号35が活性化され、内部クロック信号34が反転される(ステップS12)。即ち、クロック極性反転信号35の活性化に応答してセレクタ14bにより反転クロック信号が選択され、以後、反転クロック信号が内部クロック信号34として用いられる。以後、
図7に図示されている第1フェイズのステップS13以降のステップ、及び、
図11、
図13に図示されている第2、第3フェイズの動作が実行され、更に、最適遅延設定値が算出される。
【0127】
2回目以降のキャリブレーション動作において、オプション動作#2が行われない場合(ステップS71:NO、ステップS72:NO)
も同様に、上述された第1〜第3フェイズの動作が実行され、更に、最適遅延設定値が算出される。
【0128】
2回目以降のキャリブレーション動作において、オプション動作#2を実行する場合、以下の手順で最適遅延設定値が算出される。
【0129】
まず、上述のステップS10〜S12が実行される。これにより、可変遅延回路13aに設定される遅延設定値が、初期値D0に設定され、更に、必要に応じて内部クロック信号34が反転される。
【0130】
続いて、可変遅延回路13aに設定される設定遅延時間を増加しながら、ラッチ回路15から出力される受信データ36の値が“H”から“L”に遷移した後、“L”で安定になるような可変遅延回路13aの設定遅延時間が探索される。
【0131】
より具体的には、
図26Bに図示されているように、ラッチ回路15から出力される受信データ36の値が“H”から“L”に遷移して“L”になるまで、アップダウンカウンタ23のカウント値、即ち、可変遅延回路13aに設定される遅延設定値が1ずつ増加される(ステップS73、S74)。ここで、ステップS73、S74において遅延設定値が増加される増分は1である。
【0132】
ステップS74において、ある遅延設定値についてラッチ回路15から出力される受信データ36の値が“L”になったことが検知されると(即ち、可変遅延回路13aのある設定遅延時間についてラッチ回路15から出力される受信データ36の値が“L”になったことが検知されると)、ステップS75〜S79において、当該遅延設定値によって受信データ36の値が“L”で安定するかが判断される。
【0133】
より具体的には、まず、安定確認カウンタ22がリセットされ(ステップS75)、更に、この状態で、再度、ラッチ回路15から出力される受信データ36の値が“L”であるかが判断される(ステップS76)。
【0134】
ステップ
S76においてラッチ回路15から出力される受信データ36の値が“L”でない場合には、アップダウンカウンタ23のカウント値が1だけ増加され(ステップS77)、再度、ラッチ回路15から出力される受信データ36の値が“L”であるかが判断される(ステップS76)。
【0135】
ステップS76においてラッチ回路15から出力される受信データ36の値が“L”であると判断された場合、安定確認カウンタ22のカウント値が1だけ増加される(ステップS78)。
【0136】
ステップS78に続いて、安定確認カウンタ22のカウント値が、所定の基準値に到達しているかが判断される(ステップS79)。安定確認カウンタ22のカウント値が、所定の基準値に到達していない場合、ステップS76〜S78の動作が再度実行される。ステップS76〜S78の動作は、安定確認カウンタ22のカウント値が、所定の基準値に到達するまで繰り返して実行される。
【0137】
安定確認カウンタ22のカウント値が所定の基準値に到達した時点のアップダウンカウンタ23のカウント値、即ち、この時点で可変遅延回路13aに設定されていた遅延設定値が、遅延設定値D4である。遅延設定値D4は、キャリブレーション制御回路21のレジスタ#5に格納されて保持される(ステップS80)。
【0138】
最適遅延設定値が、レジスタ#1に格納されている遅延設定値D1、レジスタ#3に格納されている遅延設定値D3、及び、レジスタ#5に格納されている遅延設定値D4に基づいて算出され、レジスタ#4に格納される(ステップS81)。より具体的には、最適遅延設定値は、D4+(D3−D1)/2として算出される。言い換えれば、オプション動作#2では、設定遅延時間の最適値が、2回目のキャリブレーション動作において探索された可変遅延回路13aの設定遅延時間に、1回目のキャリブレーション動作において第3フェイズで探索された設定遅延時間から第1フェイズで探索された設定遅延時間を減じて得られる差の2分の1を加えた遅延時間として算出される。以後の通常動作においては、レジスタ#4に格納された最適遅延設定値が、可変遅延回路13aに設定される遅延設定値として選択される(ステップS
82)。以上で、キャリブレーション動作が完了する。
【0139】
オプション動作#2は、2回目以降のキャリブレーション動作の実行に要する時間を短縮できる利点がある。
【0140】
以上には、本発明の実施形態が具体的に記述されているが、本発明は、上記の実施形態に限定されると解釈してはならない。本発明が様々な変更と共に実施され得ることは、当業者には自明的であろう。