(57)【要約】【課題】データの判定精度を向上する。【解決手段】判定部２Ａ，２Ｂは、クロックＣＬＫA，ＣＬＫBに同期して、入力データ信号Ｄinの振幅レベルを判定し、位相検出部３は、その振幅レベルに基づき、入力データ信号ＤinとクロックＣＬＫBの位相の関係を検出し、位相調整部４Ａ，４Ｂは、位相検出部３での検出結果に基づき、クロックＣＬＫA，ＣＬＫBの位相を調整する。また、補正部５は、判定部２Ａ，２Ｂに達するクロックＣＬＫA，ＣＬＫB間に生じるスキューを補正する。補正量決定部６は、クロックＣＬＫA，ＣＬＫBに設定される位相差をゼロにしたときの位相検出部３での検出結果に基づき、スキューに対応する補正部５での補正量を決定する。【選択図】図１
2015216439.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロックに同期して、入力データ信号の第１の振幅レベルを判定する第１の判定部と、
前記第１のクロックに対して第１の位相差が設定される第２のクロックに同期して、前記入力データ信号の第２の振幅レベルを判定する第２の判定部と、
前記第１の振幅レベル及び前記第２の振幅レベルに基づき、前記入力データ信号と前記第２のクロックの位相の関係を検出する位相検出部と、
前記位相検出部での検出結果に基づき、前記第１のクロックの位相を調整する第１の位相調整部と、
前記検出結果に基づき、前記第２のクロックの位相を前記入力データ信号の振幅レベルの遷移点に追従するように調整する第２の位相調整部と、
前記第１の判定部及び前記第２の判定部に達する前記第１のクロックと前記第２のクロックとの間に生じるスキューを補正する補正部と、
前記第１の位相差をゼロにしたときの前記検出結果に基づき、前記スキューに対応する前記補正部での補正量を決定する補正量決定部と、
を有することを特徴とする受信回路。
【請求項２】
前記位相検出部は、複数の前記位相の関係を示す複数の状態を検出し、
前記補正量決定部は、前記複数の状態のうち第１の状態を選択し、前記第１の状態の出現率が、前記スキューがないときの前記第１の状態の出現率に近づくように前記補正量を調整する、ことを特徴とする請求項１に記載の受信回路。
【請求項３】
前記補正量を決定する際、前記入力データ信号の代わりに、前記受信回路で生成されるテストデータ信号を選択して、前記第１の判定部及び前記第２の判定部に供給する選択部、をさらに有することを特徴とする請求項２に記載の受信回路。
【請求項４】
前記スキューがないときの前記第１の状態の出現率として、前記テストデータ信号のデータパターンに応じて異なる値が設定される、ことを特徴とする請求項３に記載の受信回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信回路に関する。
【背景技術】
【０００２】
近年、情報処理装置の性能向上に伴い、装置内外で送受信されるデータ信号のデータレートが高速化されてきている。
データ信号の受信回路ではサンプリングクロックに合わせたタイミングでデータ信号の振幅レベルを判定し、その判定結果に基づいてデータの再生が行われる。データレートが高速化すると、データ信号とサンプリングクロックとの間で生じた僅かな位相のずれがデータ判定精度に影響してしまう。そこで、こうした位相のずれを検出してデータ信号の位相にサンプリングクロックの位相を同期させるトラッキングＣＤＲ（Clock and Data Recovery）と呼ばれる技術が利用される。
【０００３】
高速なデータレートのデータ信号を扱う受信回路では、１ＵＩ（Unit Interval）区間に２回のサンプリングを行う２ｘトラッキングＣＤＲ（以下２ｘＣＤＲと表記する）と呼ばれる技術がよく用いられる。２ｘＣＤＲでは、サンプリングクロックとして、データ信号のアイ中央にエッジを合わせるクロックと、データ信号の振幅レベルが遷移する遷移点（バウンダリ）にエッジを合わせるクロックが用いられる。以下では、前者のクロックをデータクロック、後者のクロックをバウンダリクロックと呼ぶ。なお、両クロックは、位相調整回路によって、０．５ＵＩ分の位相差になるように調整されている。これにより、ＣＤＲでバウンダリクロックが遷移点に追従するときには、データクロックによって、データ信号のアイ中央でサンプリング（データ判定）が行える。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３１８８７２号公報
【特許文献２】特開２００２−２３２４０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データクロックとバウンダリクロックは、データ信号のサンプリングを行う判定部（比較器）に入力される。このとき、データクロックとバウンダリクロックの伝搬経路や負荷の違いにより、比較器に達するまでの間に遅延差（スキュー）が生じる。これにより、バウンダリクロックのエッジがデータ信号の遷移点に追従していても、データクロックのエッジは、データ信号のアイ中央を捕らえられなくなり、データの判定精度が悪化してしまう可能性がある。
【課題を解決するための手段】
【０００６】
発明の一観点によれば、第１のクロックに同期して、入力データ信号の第１の振幅レベルを判定する第１の判定部と、前記第１のクロックに対して第１の位相差が設定される第２のクロックに同期して、前記入力データ信号の第２の振幅レベルを判定する第２の判定部と、前記第１の振幅レベル及び前記第２の振幅レベルに基づき、前記入力データ信号と前記第２のクロックの位相の関係を検出する位相検出部と、前記位相検出部での検出結果に基づき、前記第１のクロックの位相を調整する第１の位相調整部と、前記検出結果に基づき、前記第２のクロックの位相を前記入力データ信号の振幅レベルの遷移点に追従するように調整する第２の位相調整部と、前記第１の判定部及び前記第２の判定部に達する前記第１のクロックと前記第２のクロックとの間に生じるスキューを補正する補正部と、前記第１の位相差をゼロにしたときの前記検出結果に基づき、前記スキューに対応する前記補正部での補正量を決定する補正量決定部と、を備えた受信回路が提供される。
【発明の効果】
【０００７】
開示の受信回路によれば、データの判定精度を向上できる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施の形態の受信回路の一例を示す図である。
【図２】第２の実施の形態の受信回路の一例を示す図である。
【図３】リファレンスクロックと位相調整部の関係の一例を示す図である。
【図４】位相調整部の一例を示す図である。
【図５】位相検出部及び補正量決定部の一例を示す図である。
【図６】演算回路が実現する真理値表の一例を示す図である。
【図７】状態“Ｕｐ”の一例を示す図である。
【図８】状態“Ｄｏｗｎ”の一例を示す図である。
【図９】状態“Ｓｔａｙ”の一例を示す図である。
【図１０】状態“Ｎ／Ａ”の一例を示す図である。
【図１１】スキューがない場合のクロックＣＬＫA，ＣＬＫBのエッジ位置の一例を示す図である。
【図１２】スキューがある場合のクロックＣＬＫA，ＣＬＫBのエッジ位置の一例を示す図である。
【図１３】スキューがない場合の、位相のシフト後のクロックＣＬＫA，ＣＬＫBのエッジ位置と判定結果の値の一例を示す図である。
【図１４】スキューがある場合の、位相のシフト後のクロックＣＬＫA，ＣＬＫBのエッジ位置と判定結果の値の一例を示す図である。
【図１５】データパターンが“００１１００１１…”である場合のスキュー量と各状態の出現率との関係の例を示す図である。
【図１６】データパターンが“０１０１…”である場合のスキュー量と各状態の出現率との関係の例を示す図である。
【図１７】データパターンがランダムである場合のスキュー量と各状態の出現率との関係の例を示す図である。
【図１８】第２の実施の形態の受信回路の変形例を示す図である。
【図１９】第３の実施の形態の受信回路の一例を示す図である。
【図２０】位相検出部及び補正量決定部の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の受信回路の一例を示す図である。
【００１０】
受信回路１は、２ｘＣＤＲの機能を有する。すなわち、受信回路１は、サンプリングクロックとして、外部から入力される入力データ信号Ｄinのアイ中央を捕らえるデータクロックと、入力データ信号Ｄinの振幅レベルの遷移点を捕らえるバウンダリクロックを用いてクロック及びデータの再生を行う。以下、データクロックはクロックＣＬＫA、バウンダリクロックはクロックＣＬＫBと表記する。
【００１１】
受信回路１は、判定部２Ａ，２Ｂ、位相検出部３、位相調整部４Ａ，４Ｂ、補正部５、補正量決定部６、フィルタ７を有する。
判定部２Ａは、クロックＣＬＫAに同期して、入力データ信号Ｄinの振幅レベルを判定する。判定部２Ａは、例えば比較器であり、クロックＣＬＫAのエッジ位置（例えば、立ち上がりエッジまたは立ち下がりエッジ）で、入力データ信号Ｄinを所定の閾値と比較して振幅レベル（０／１）を判定し、判定結果Ｄnを出力する。なお、判定結果Ｄnは、２ｘトラッキングＣＤＲで再生されるデータとなる。また、判定部２Ａは、複数あってもよい。
【００１２】
判定部２Ｂは、クロックＣＬＫAに対して所定の位相差が設定されるクロックＣＬＫBに同期して、入力データ信号Ｄinの振幅レベルを判定する。判定部２Ｂは、例えば比較器であり、クロックＣＬＫBのエッジ位置で、入力データ信号Ｄinを所定の閾値と比較して振幅レベル（０／１）を判定し、判定結果Ｅnを出力する。所定の位相差は、０．５ＵＩ分の位相差であり、スキューがない場合、クロックＣＬＫBが入力データ信号Ｄinの振幅レベルの遷移点に追従するとき、クロックＣＬＫAは、入力データ信号Ｄinのアイ中央を捕らえる。以下では、０．５ＵＩに相当するクロックＣＬＫA，ＣＬＫB間の位相差を９０度であるとする。
【００１３】
位相検出部３は、判定結果Ｄn，Ｅnに基づき、入力データ信号Ｄinの位相と、クロックＣＬＫBの位相の関係を検出する。位相の関係は、例えば、信号Ｕ，Ｄ，Ｓ，Ｎの４つの信号を用いた４つの状態として検出される。例えば、信号Ｕが“１”のときは、クロックＣＬＫBの位相が入力データ信号Ｄinの位相に対して遅れている状態を示し、信号Ｄが“１”のときは、クロックＣＬＫBの位相が入力データ信号Ｄinの位相に対して進んでいる状態を示す。なお、信号Ｓが“１”のときは、入力データ信号Ｄinの振幅レベルの遷移がない状態を示す。また、信号Ｎが“１”のときは、入力データ信号Ｄinが振幅レベルの遷移していないにも関わらず、判定結果Ｅnが、判定結果Ｄnと異なる値となっている、通常動作時には基本的には発生しない状態を示す。
【００１４】
位相調整部４Ａは、位相検出部３での検出結果に基づき、クロックＣＬＫAの位相を調整する。なお、本実施の形態の受信回路１では、検出結果の一部である信号Ｕ，Ｄに基づいて、フィルタ７が位相コードＰＨｃｏｄｅを生成し、補正部５が位相コードＰＨｃｏｄｅ補正して補正済位相コードＰＳｃｏｄｅを生成して、位相調整部４Ａに供給する。
【００１５】
前述のように、クロックＣＬＫA，ＣＬＫB間の位相差を０．５ＵＩに相当する９０度に設定することで、クロックＣＬＫBが入力データ信号Ｄinの振幅レベルの遷移点に追従するとき、クロックＣＬＫAが入力データ信号Ｄinのアイ中央を捕らえられる。しかし、クロックＣＬＫA，ＣＬＫBが、判定部２Ａ，２Ｂに達するときには設定された位相差からの誤差（スキュー）が生じる。そこで、位相調整部４Ａでは、補正部５で補正された補正済位相コードＰＳｃｏｄｅが用いられることによって、スキューを無くすような位相調整が行われる。
【００１６】
なお、クロックＣＬＫAは、図示しないＰＬＬ（Phase Locked Loop）回路などから供給されるリファレンスクロックＣＬＫrefから生成される。
位相調整部４Ｂは、位相検出部３での検出結果に基づき、クロックＣＬＫBの位相を、入力データ信号Ｄinの振幅レベルの遷移点（バウンダリ）に追従するように調整する。なお、本実施の形態の受信回路１では、位相調整部４Ｂは、位相検出部３での検出結果の一部である信号Ｕ，Ｄに基づいてフィルタ７が生成した位相コードＰＨｃｏｄｅに基づき、クロックＣＬＫBの位相を調整する。
【００１７】
なお、クロックＣＬＫBも、図示しないＰＬＬ回路などから供給されるリファレンスクロックＣＬＫrefから生成される。
補正部５は、位相調整部４Ａ，４Ｂから判定部２Ａ，２Ｂに達するクロックＣＬＫA，ＣＬＫBの間に生じるスキューを補正する。本実施の形態の受信回路１において補正部５は、例えば、加算器であり、位相コードＰＨｃｏｄｅに、補正量決定部６で決定された補正量に基づくシフトコードＳＤｃｏｄｅを加算することで、補正済位相コードＰＳｃｏｄｅを生成し、位相調整部４Ａに供給する。
【００１８】
補正量決定部６は、クロックＣＬＫAの位相を、設定する位相差分（９０度）をゼロにしたときの、位相検出部３での検出結果に基づき、スキューに対応する補正部５での補正量を決定する。補正量決定部６は、クロックＣＬＫAの位相を、９０度シフトして、クロックＣＬＫBの位相に近づけることで、設定する位相差をゼロにする。補正量はシフトコードＳＤｃｏｄｅとして補正部５に供給される。また、補正量決定部６は、補正量の決定後は、位相差分のシフトを解除する。
【００１９】
なお、補正量を決定する際は、入力データ信号Ｄinは、受信回路１が受信したデータ信号ではなく、受信回路１内で生成されるデータ信号（以下テストデータ信号と呼ぶ）であることが望ましい。リファレンスクロックＣＬＫrefに同期するテストデータ信号を生成でき、クロックＣＬＫBをテストデータ信号の振幅レベルの遷移点に合わせられ、また、アイパターンの開口も十分にとれることから、精度よく補正量を求められるためである。
【００２０】
フィルタ７には、位相検出部３の検出結果の一部である信号Ｕ，Ｄが供給される。フィルタ７は、信号Ｕ，Ｄの高周波成分をカットした位相コードＰＨｃｏｄｅを生成して出力する。フィルタ７には、例えば、デジタルフィルタなどを用いることができる。
【００２１】
（受信回路１の動作例）
以下、受信回路１によるスキューの補正時の動作例を説明する。
スキューは、クロックＣＬＫA，ＣＬＫBの伝搬経路や負荷の違いにより生じる。例えば、受信回路１でＤＦＥ（Decision Feedback Equalizer）を用いる場合、データ判定用の閾値が複数設定されるなどの理由から判定部２Ａの数が増大する。そのため、クロックＣＬＫA，ＣＬＫBの負荷の違いが生じ、スキューが発生する。
【００２２】
図１の左側の囲みの部分には、発生するスキューの一例が示されている。スキュー補正前では、クロックＣＬＫAの位相は、クロックＣＬＫBとの間で設定されている位相差（９０度（０．５ＵＩに相当する））よりもスキューＡ分遅延している。これにより、クロックＣＬＫBのエッジが入力データ信号Ｄinの振幅レベルの遷移点に追従していても、クロックＣＬＫAのエッジは、入力データ信号Ｄinのアイ中央を捕らえられなくなり、アイの開口が十分でないとデータの判定精度が悪化してしまう。
【００２３】
このようなスキューを補正するため、受信回路１は、初期動作時などに以下のような動作を行う。
なお、以下では、入力データ信号Ｄinとして、前述したテストデータ信号を用いるものとする。
【００２４】
まず、補正量決定部６は、シフトコードＳＤｃｏｄｅにより、クロックＣＬＫAを、クロックＣＬＫA，ＣＬＫB間に設定される位相差（０．５ＵＩ）だけ遷移点側にシフトさせ、クロックＣＬＫBの位相に近づける。つまり、クロックＣＬＫA，ＣＬＫB間に設定される位相差をゼロにする。
【００２５】
図１の右側の囲みの部分には、スキューがない場合とある場合の、位相のシフト前後のクロックＣＬＫA，ＣＬＫBの入力データ信号Ｄinに対するエッジ位置が矢印で示されている。判定部２Ａ，２Ｂによる判定結果Ｅn，Ｄnは、そのエッジ位置でのサンプリングにより得られる。
【００２６】
スキューがない場合、クロックＣＬＫBのエッジは、入力データ信号Ｄinの振幅レベルの遷移点に位置し、クロックＣＬＫAのエッジは、入力データ信号Ｄinのアイ中央に位置する。このとき、判定結果Ｅnはランダム値となり、判定結果Ｄnは、入力データ信号Ｄinの値に応じて、１か０となる。
【００２７】
ここで、補正量決定部６が、クロックＣＬＫAを０．５ＵＩだけ遷移点側にシフトさせると、クロックＣＬＫAのエッジも、クロックＣＬＫBのエッジと同様に入力データ信号Ｄinの振幅レベルの遷移点に位置する。このとき、判定部２Ａでの判定結果Ｄnも、判定結果Ｅnと同様にランダム値となる。
【００２８】
一方、スキューがある場合、前述したように、クロックＣＬＫAのエッジは、クロックＣＬＫBとの間で設定されている位相差よりもスキューＡ分遅延している。このとき、判定結果Ｄnは、入力データ信号Ｄinの値に応じて、１か０となる。
【００２９】
しかし、補正量決定部６が、クロックＣＬＫAを０．５ＵＩだけ遷移点側にシフトさせると、クロックＣＬＫAのエッジは、スキューなしの場合と異なり、入力データ信号Ｄinの遷移点からずれる。したがって、判定部２Ａでの判定結果Ｄnは、ランダム値とはならず、シフトを行わないときと同様の値となる。
【００３０】
このように、スキューがない場合とある場合の判定部２Ａの出力の差異により、位相検出部３での検出結果も変わってくる。
補正量決定部６では、シフト後の位相検出部３での検出結果に基づき補正量を決定する。例えば、補正量決定部６は、スキューがないときのシフト後の位相検出部３での検出結果を、前述した４つの信号Ｕ，Ｄ，Ｓ，Ｎの何れかの信号が、“１”となる状態の出現率（例えば、信号Ｕが“１”となる出現率）として保持する。そして、補正量決定部６は、ある状態の出現率が、保持されているその状態の出現率に近づくように、シフトコードＳＤｃｏｄｅを調整して補正量を決める。
【００３１】
これにより、クロックＣＬＫAのエッジは、図１の矢印Ｂ方向に移動して、入力データ信号Ｄinの振幅レベルの遷移点に近づく。
補正量決定後、補正量決定部６は、０．５ＵＩのシフトを解除し、シフトコードＳＤｃｏｄｅを固定する。
【００３２】
これにより、図１の左側の囲みの部分に示されているように、判定部２Ａに達するスキュー補正後のクロックＣＬＫAの位相は、クロックＣＬＫBに対して、適切な位相差（９０度）になるように調整される。
【００３３】
そのため、クロックＣＬＫBのエッジが入力データ信号Ｄinの振幅レベルの遷移点に追従するとき、クロックＣＬＫAのエッジは、入力データ信号Ｄinのアイ中央を捕らえることができるようになり、データ判定精度が向上する。また、クロックジッタなどの外乱要因に対する耐性も高くなる。
【００３４】
また、スキューを考慮して、クロックＣＬＫBの位相を遅らせるようなダミーの回路を配置することもないので、回路面積や消費電力の増大も抑制できる。
（第２の実施の形態）
図２は、第２の実施の形態の受信回路の一例を示す図である。
【００３５】
受信回路１０は、第１の実施の形態の受信回路１と同様に、２ｘＣＤＲの機能を有するものである。なお、図１に示した受信回路１と同様の要素については、同一符号を付し、その説明を一部省略する。
【００３６】
受信回路１０は、判定部２Ａ，２Ｂ、位相検出部３、位相調整部４Ａ，４Ｂ、補正部５、フィルタ７、補正量決定部１１、制御部１２、テストデータ信号生成部１３、選択部（セレクタ）１４を有している。
【００３７】
補正量決定部１１は、第１の実施の形態の受信回路１の補正量決定部６と同様の機能を有するが、制御部１２からの選択信号ＴＥＳＴ＿ＳＥＬ，ＳＴＡＴＥ＿ＳＥＬ、目標値ＧＯＡＬに基づき動作する。補正量決定部１１の回路例及び動作例については後述する。
【００３８】
制御部１２は、補正量決定部１１がスキューの補正量を決定するときに用いる選択信号ＴＥＳＴ＿ＳＥＬ，ＳＴＡＴＥ＿ＳＥＬ、目標値ＧＯＡＬを生成して出力する。
テストデータ信号生成部１３は、例えば、リファレンスクロックＣＬＫrefに同期するテストデータ信号Ｄtを生成する。なお、テストデータ信号Ｄtのデータパターンを、“０１０１…”という繰り返しパターンとするときには、テストデータ信号生成部１３は、リファレンスクロックＣＬＫrefを生成する図示しないＰＬＬ回路などであってもよい。
【００３９】
セレクタ１４は、制御部１２で生成された選択信号ＴＥＳＴ＿ＳＥＬに基づき、テストデータ信号Ｄtと、入力データ信号Ｄin（受信回路１０の受信データ）の、何れかを選択して出力する。セレクタ１４は、スキューの補正量を決定する動作が行われるときには、テストデータ信号Ｄtを選択し、通常動作の際は、入力データ信号Ｄinを選択して出力する。
【００４０】
以下、受信回路１０の位相調整部４Ａ，４Ｂ、位相検出部３及び補正量決定部１１の一例を説明する。
（位相調整部４Ａ，４Ｂの一例）
図３は、リファレンスクロックと位相調整部の関係の一例を示す図である。
【００４１】
位相調整部４Ａ，４Ｂには、図示しないＰＬＬ回路などから、図２に示したリファレンスクロックＣＬＫrefとして、リファレンスクロックＣＬＫrefA，ＣＬＫrefB，ＣＬＫrefAX，ＣＬＫrefBXが供給される。リファレンスクロックＣＬＫrefA，ＣＬＫrefB，ＣＬＫrefAX，ＣＬＫrefBXは所定の位相関係をもつ。その位相関係は、例えば、リファレンスクロックＣＬＫrefAの位相が基準（０度）であるとき、リファレンスクロックＣＬＫrefBは９０度、リファレンスクロックＣＬＫrefAXは１８０度、リファレンスクロックＣＬＫrefBXは２７０度となる。
【００４２】
位相調整部４Ａは、補正済位相コードＰＳｃｏｄｅと、リファレンスクロックＣＬＫrefA，ＣＬＫrefB，ＣＬＫrefAX，ＣＬＫrefBXに基づいて位相調整した差動信号であるクロックＣＬＫa，ＣＬＫaXを、図２に示したクロックＣＬＫAとして出力する。
【００４３】
位相調整部４Ｂは、位相コードＰＨｃｏｄｅと、リファレンスクロックＣＬＫrefA，ＣＬＫrefB，ＣＬＫrefAX，ＣＬＫrefBXに基づいて位相調整した差動信号であるクロックＣＬＫb，ＣＬＫbXを、図２に示したクロックＣＬＫBとして出力する。
【００４４】
図４は、位相調整部の一例を示す図である。
以下では、位相調整部４Ａの一例を示すが、位相調整部４Ｂについても同様の回路で実現できる。
【００４５】
位相調整部４Ａは、トランジスタ２０，２１，２２，２３，２４，２５，２６，２７、電流源Ｉ１，Ｉ２，Ｉ３，Ｉ４、抵抗Ｒ１，Ｒ２を有している。図４の例では、トランジスタ２０〜２７は、ｎチャネル型ＭＯＳＦＥＴ（Metal-Oxide Semiconductor Field Effect Transistor）である。
【００４６】
トランジスタ２０のゲートにはリファレンスクロックＣＬＫrefBが、トランジスタ２１のゲートにはリファレンスクロックＣＬＫrefBXが入力される。また、トランジスタ２０，２１のソースは互いに接続されており、電流源Ｉ１を介して接地されている。
【００４７】
トランジスタ２２のゲートにはリファレンスクロックＣＬＫrefBXが、トランジスタ２３のゲートにはリファレンスクロックＣＬＫrefBが入力される。また、トランジスタ２０，２１のソースは互いに接続されており、電流源Ｉ２を介して接地されている。
【００４８】
トランジスタ２４のゲートにはリファレンスクロックＣＬＫrefAが、トランジスタ２５のゲートにはリファレンスクロックＣＬＫrefAXが入力される。また、トランジスタ２４，２５のソースは互いに接続されており、電流源Ｉ３を介して接地されている。
【００４９】
トランジスタ２６のゲートにはリファレンスクロックＣＬＫrefAXが、トランジスタ２７のゲートにはリファレンスクロックＣＬＫrefAが入力される。また、トランジスタ２６，２７のソースは互いに接続されており、電流源Ｉ４を介して接地されている。
【００５０】
また、トランジスタ２０，２２，２５，２７のドレインは互いに接続されており、抵抗Ｒ２を介して電源に接続されている。トランジスタ２０，２２，２５，２７のドレイン電圧が、クロックＣＬＫaXとなる。
【００５１】
一方、トランジスタ２１，２３，２４，２６のドレインは互いに接続されており、抵抗Ｒ１を介して電源に接続されている。トランジスタ２１，２３，２４，２６のドレイン電圧が、クロックＣＬＫaとなる。
【００５２】
電流源Ｉ１〜Ｉ４の電流は、位相調整部４Ａに入力される補正済位相コードＰＳｃｏｄｅに基づいて調整され、それに応じて、クロックＣＬＫa，ＣＬＫaXの位相が調整される。
【００５３】
なお、以下では、差動信号であるクロックＣＬＫa，ＣＬＫaXのうち、クロックＣＬＫaを、図２に示したクロックＣＬＫAとして説明する。
位相調整部４Ｂは、図４に示す位相調整部４Ａと同様の回路となる。図４のトランジスタ２０〜２７のゲートに入力されるリファレンスクロックＣＬＫrefA，ＣＬＫrefB，ＣＬＫrefAX，ＣＬＫrefBXを入れ替え、電流源Ｉ１〜Ｉ４の電流を位相コードＰＨｃｏｄｅに基づき調整することで位相調整部４Ｂとして機能させることができる。
【００５４】
例えば、図４の例では、トランジスタ２０，２３ゲートにリファレンスクロックＣＬＫrefBが入力されているが、位相調整部４ＢではリファレンスクロックＣＬＫrefBに対して９０度の位相差を有するリファレンスクロックＣＬＫrefAXが入力される。また、図４の例では、トランジスタ２１，２２のゲートにリファレンスクロックＣＬＫrefBXが入力されているが、位相調整部４ＢではリファレンスクロックＣＬＫrefBXに対して９０度の位相差を有するリファレンスクロックＣＬＫrefAが入力される。また、図４の例では、トランジスタ２４，２７のゲートにリファレンスクロックＣＬＫrefAが入力されているが、位相調整部４ＢではリファレンスクロックＣＬＫrefAに対して９０度の位相差を有するリファレンスクロックＣＬＫrefBが入力される。また、図４の例では、トランジスタ２５，２６のゲートにリファレンスクロックＣＬＫrefAXが入力されているが、位相調整部４ＢではリファレンスクロックＣＬＫrefAXに対して９０度の位相差を有するリファレンスクロックＣＬＫrefBXが入力される。
【００５５】
これにより、位相コードＰＨｃｏｄｅと補正済位相コードＰＳｃｏｄｅが同じ場合には、位相調整部４Ａ，４Ｂから出力されるクロックＣＬＫA，ＣＬＫBは、９０度の位相差を有することになる。ただ、クロックＣＬＫA，ＣＬＫBが判定部２Ａ，２Ｂに到達したときにスキューが生じる場合、補正量決定部１１で生成されるシフトコードＳＤｃｏｄｅに基づいて、補正済位相コードＰＳｃｏｄｅは、位相コードＰＨｃｏｄｅとは異なる値となる。その場合、位相調整部４Ａ，４Ｂから出力されるクロックＣＬＫA，ＣＬＫBは、例えば、９０度位相差よりも小さい位相差となる。
【００５６】
（位相検出部３及び補正量決定部１１の一例）
図５は、位相検出部及び補正量決定部の一例を示す図である。
位相検出部３は、ＦＦ（Flip Flop）３０と演算回路３１を有している。また、補正量決定部１１は、カウンタ３２、比較回路３３、カウンタ３４ａ，３４ｂ，３４ｃ，３４ｄ、セレクタ３５、比較回路３６、レジスタ３７、セレクタ３８，３９、加算器４０、レジスタ４１、加算器４２を有する。
【００５７】
ＦＦ３０は、判定部２Ａでの判定結果ＤnをクロックＣＬＫAに同期して保持し、１ビット分遅延させた判定結果Ｄn-1として出力する。
演算回路３１は、判定結果Ｄnと、ＦＦ３０から出力される判定結果Ｄn-1、判定部２Ｂでの判定結果Ｅnに基づき、以下に示す真理値表を実現する演算を行い、前述した位相情報として、信号Ｕ，Ｄ，Ｓ，Ｎを出力する。
【００５８】
図６は、演算回路が実現する真理値表の一例を示す図である。
図６に示す真理値表には、８通りの判定結果Ｄn-1，Ｅn，Ｄnの値の組み合わせに対応して出力される、信号Ｕ，Ｄ，Ｓ，Ｎの４つの状態が示されている。４つの状態には、“Ｕｐ”、“Ｄｏｗｎ”、“Ｓｔａｙ”、“Ｎ／Ａ”がある。以下各状態の一例を示す。
【００５９】
図７は、状態“Ｕｐ”の一例を示す図である。
信号Ｕが“１”のとき、状態“Ｕｐ”となる。状態“Ｕｐ”は、入力データ信号Ｄinが遷移する状態であり、かつ、判定結果Ｅnが、判定結果Ｄnと同じ値となる場合の状態である。つまり、入力データ信号Ｄinに対して、遷移点に追従すべきクロックＣＬＫBの位相が遅れている状態を示す。図７に示すように、入力データ信号Ｄinが“１”から“０”へと遷移するときの判定結果が、（Ｄn-1，Ｅn，Ｄn）＝（１，０，０）となる場合に、状態“Ｕｐ”となる。
【００６０】
なお、入力データ信号Ｄinが“０”から“１”へと遷移するときも、図６に示した真理値表のように、判定結果が、（Ｄn-1，Ｅn，Ｄn）＝（０，１，１）となる場合（つまり判定結果Ｅn，Ｄnが同じ値となる場合）には、状態“Ｕｐ”となる。
【００６１】
図８は、状態“Ｄｏｗｎ”の一例を示す図である。
信号Ｄが“１”のとき、状態“Ｄｏｗｎ”となる。状態“Ｄｏｗｎ”は、入力データ信号Ｄinが遷移する状態であり、かつ、判定結果Ｅnが、判定結果Ｄn-1と同じ値となる場合の状態である。つまり、入力データ信号Ｄinに対して、遷移点に追従すべきクロックＣＬＫBの位相が進んでいる状態を示す。図８に示すように、入力データ信号Ｄinが“１”から“０”へと遷移するときの判定結果が、（Ｄn-1，Ｅn，Ｄn）＝（１，１，０）となる場合に、状態“Ｄｏｗｎ”となる。
【００６２】
なお、入力データ信号Ｄinが“０”から“１”へと遷移するときも、図６に示した真理値表のように、判定結果が、（Ｄn-1，Ｅn，Ｄn）＝（０，０，１）となる場合（つまり判定結果Ｅn，Ｄn-1が同じ値となる場合）には、状態“Ｄｏｗｎ”となる。
【００６３】
図９は、状態“Ｓｔａｙ”の一例を示す図である。
信号Ｓが“１”のとき、状態“Ｓｔａｙ”となる。状態“Ｓｔａｙ”は、入力データ信号Ｄinが遷移しない状態であり、かつ、判定結果Ｅn，Ｄn-1，Ｄnが同じ値となる場合の状態である。
【００６４】
図９に示すように、入力データ信号Ｄinが“１”の状態を維持しているときの判定結果が、（Ｄn-1，Ｅn，Ｄn）＝（１，１，１）となる場合に、状態“Ｓｔａｙ”となる。
なお、入力データ信号Ｄinが“０”の状態を維持しているときも、図６に示した真理値表のように、判定結果が、（Ｄn-1，Ｅn，Ｄn）＝（０，０，０）となる場合には、状態“Ｓｔａｙ”となる。
【００６５】
図１０は、状態“Ｎ／Ａ”の一例を示す図である。
信号Ｎが“１”のとき、状態“Ｎ／Ａ”（グリッジとも呼ばれる）となる。状態“Ｎ／Ａ”は、入力データ信号Ｄinが遷移しない状態であるにも関わらず、判定結果Ｅnの値が、判定結果Ｄn-1，Ｄnの値と異なる、という通常動作時には基本的には発生しない状態である。
【００６６】
図１０に示すように、入力データ信号Ｄinが“１”の状態を維持しているときの判定結果が、（Ｄn-1，Ｅn，Ｄn）＝（１，０，１）となる場合に、状態“Ｎ／Ａ”となる。
なお、入力データ信号Ｄinが“０”の状態を維持しているときも、図６に示した真理値表のように、判定結果が、（Ｄn-1，Ｅn，Ｄn）＝（０，１，０）となる場合には、状態“Ｎ／Ａ”となる。
【００６７】
次に、図５に示されている補正量決定部１１の説明を行う。
カウンタ３２は、クロックＣＬＫAのクロック数（例えば、立ち上がりエッジ数）をカウントして、そのカウント値を出力する。また、カウンタ３２は、比較回路３３が出力するリセット信号を受けると、カウント値を０にリセットする。
【００６８】
比較回路３３は、カウンタ３２のカウント値と、所定の値（図５の例では１０００）とを比較し、カウント値がその値に達したときに、クロックＣＬＫAの立ち上がりに同期してリセット信号を出力する。
【００６９】
カウンタ３４ａは、演算回路３１が出力する信号Ｕの値を、クロックＣＬＫAの立ち上がりに同期してカウントする。また、カウンタ３４ａは、リセット信号を受けると、カウント値を０にリセットする。
【００７０】
カウンタ３４ｂは、演算回路３１が出力する信号Ｄの値を、クロックＣＬＫAの立ち上がりに同期してカウントする。また、カウンタ３４ｂは、リセット信号を受けると、カウント値を０にリセットする。
【００７１】
カウンタ３４ｃは、演算回路３１が出力する信号Ｓの値を、クロックＣＬＫAの立ち上がりに同期してカウントする。また、カウンタ３４ｃは、リセット信号を受けると、カウント値を０にリセットする。
【００７２】
カウンタ３４ｄは、演算回路３１が出力する信号Ｎの値を、クロックＣＬＫAの立ち上がりに同期してカウントする。また、カウンタ３４ｄは、リセット信号を受けると、カウント値を０にリセットする。
【００７３】
セレクタ３５は、図２に示した制御部１２が出力する選択信号ＳＴＡＴＥ＿ＳＥＬの値に基づき、カウンタ３４ａ〜３４ｄが出力する信号Ｕ，Ｄ，Ｓ，Ｎの何れかのカウント値を選択して出力する。
【００７４】
比較回路３６は、比較回路３３がリセット信号を出力したとき、制御部１２が出力する目標値ＧＯＡＬと、セレクタ３５の出力（信号Ｕ，Ｄ，Ｓ，Ｎの何れかのカウント値）とを比較し、その比較結果に基づき、＋１または−１を出力する。目標値ＧＯＡＬは、スキューがない場合の特定の状態（“Ｕｐ”、“Ｄｏｗｎ”、“Ｓｔａｙ”、“Ｎ／Ａ”の何れか）の出現率に基づき設定される。目標値ＧＯＡＬの設定例については後述する。
【００７５】
レジスタ３７は、０．５ＵＩ分、クロックＣＬＫAをシフトさせるためにシフトコードＳＤｃｏｄｅに加える値を格納している。
セレクタ３８は、選択信号ＴＥＳＴ＿ＳＥＬに基づき、比較回路３６の出力か“０”の何れかを出力する。スキューの補正量を決定する際には、比較回路３６からの出力（±１）が選択されて出力され、補正量決定後（通常動作時）には、“０”が選択されて出力される。
【００７６】
セレクタ３９は、選択信号ＴＥＳＴ＿ＳＥＬに基づき、レジスタ３７の値か“０”の何れかを出力する。スキューの補正量を決定する際には、レジスタ３７の値が選択されて出力され、補正量決定後（通常動作時）には、“０”が選択されて出力される。
【００７７】
加算器４０は、レジスタ４１に保持されている値に、セレクタ３８の出力（±１または０）を加算する。
レジスタ４１は、リセット信号の発行タイミングで加算器４０の出力値を保持する。レジスタ４１の初期値は０である。
【００７８】
加算器４２は、レジスタ４１の出力値とセレクタ３９の出力値とを加算して、シフトコードＳＤｃｏｄｅとして出力する。
以下、第２の実施の形態の受信回路１０によるスキュー補正動作の一例を説明する。
【００７９】
（スキュー補正動作例）
図１１は、スキューがない場合のクロックＣＬＫA，ＣＬＫBのエッジ位置の一例を示す図である。
【００８０】
また、図１２は、スキューがある場合のクロックＣＬＫA，ＣＬＫBのエッジ位置の一例を示す図である。
図１１、図１２では、スキューがない場合とある場合の、クロックＣＬＫA，ＣＬＫBの入力データ信号Ｄinに対するエッジ位置が矢印で示されている。判定部２Ａ，２Ｂによる判定結果Ｅn，Ｄnは、そのエッジ位置でのサンプリングにより得られる。
【００８１】
スキューがない場合、クロックＣＬＫA，ＣＬＫB間で設定される位相差が９０度のとき、図１１に示すように、クロックＣＬＫBのエッジは、入力データ信号Ｄinの遷移点に位置し、クロックＣＬＫAのエッジは、入力データ信号Ｄinのアイ中央に位置する。
【００８２】
一方、スキューがある場合、クロックＣＬＫAのエッジは、クロックＣＬＫBとの間で設定される９０度の位相差よりもスキューＳｋ分遅延している。
入力データ信号Ｄinは、他のＩＣチップなどから、伝送線路を介して受信されたデータである。そのため、伝送速度（伝送レート）が高速である場合や伝送線路が長い場合、入力データ信号Ｄinの波形が劣化して、アイパターンの開口が小さくなる場合がある。そのような場合、スキューがあると、判定結果Ｄnは、図１２に示すように、アイ中央からずれた位相で判定されるため、誤った値がサンプリングされてしまう場合がある。
【００８３】
そこで、受信回路１０は、このようなスキューを抑制するために、以下のような動作を行う。
図２に示した制御部１２は、選択信号ＴＥＳＴ＿ＳＥＬを、例えば、“１”とする。このとき、セレクタ１４は、テストデータ信号生成部１３が出力するテストデータ信号Ｄtを選択して出力する。受信回路１０の内部で生成されるテストデータ信号Ｄtを用いることで、テストデータ信号ＤtをリファレンスクロックＣＬＫrefに同期させることができ、クロックＣＬＫBをテストデータ信号Ｄtの振幅レベルの遷移点に合わせられる。また、テストデータ信号Ｄtは、受信する入力データ信号Ｄinと比べてアイパターンの開口も十分にとれることから、精度よく補正量を求められる。
【００８４】
また、補正量決定部１１において、図５に示したセレクタ３８は、比較回路３６の出力を選択し、セレクタ３９は、レジスタ３７に格納された値を選択して出力する。
このとき生成されるシフトコードＳＤｃｏｄｅによって、まず、クロックＣＬＫAの位相は、０．５ＵＩシフトされ、クロックＣＬＫBの位相に近づく。
【００８５】
シフトされたクロックＣＬＫAと、クロックＣＬＫBによるサンプリングタイミングで判定部２Ａ，２Ｂで判定された判定結果Ｄn-1，Ｅn，Ｄnは、位相検出部３の演算回路３１（図５）に入力される。演算回路３１によって、図６に示した真理値表に基づいて、テストデータ信号ＤtとクロックＣＬＫBの位相関係を４つの状態で示す信号Ｕ〜Ｎが出力される。
【００８６】
図１３は、スキューがない場合の、位相のシフト後のクロックＣＬＫA，ＣＬＫBのエッジ位置と判定結果の値の一例を示す図である。
クロックＣＬＫA，ＣＬＫBのテストデータ信号Ｄtに対するエッジ位置が矢印で示されている。さらに、そのエッジ位置での判定部２Ａ，２Ｂによる判定結果Ｅn，Ｄn-1，Ｄnの値が示されている。なお、テストデータ信号Ｄtのデータパターンは、“０１０１…”であるものとする。
【００８７】
スキューがない場合、クロックＣＬＫAの位相を０．５ＵＩシフトさせると、判定結果Ｄn-1，Ｅn，Ｄnは、ともにテストデータ信号Ｄtの振幅レベルの遷移点で判定される値となる。遷移点では、クロックジッタなどの外乱の影響で、判定結果Ｄn-1，Ｅn，Ｄnは０になるか１になるかランダムとなる（図１３では“ｒ”と表記している）。
【００８８】
このとき、図６に示した真理値表の４つの状態、“Ｓｔａｙ”、“Ｄｏｗｎ”、“Ｎ／Ａ”、“Ｕｐ”が、すべて現れる可能性があり、各状態の出現率は、２５％となる。
図１４は、スキューがある場合の、位相のシフト後のクロックＣＬＫA，ＣＬＫBのエッジ位置と判定結果の値の一例を示す図である。
【００８９】
クロックＣＬＫA，ＣＬＫBのテストデータ信号Ｄtに対するエッジ位置が矢印で示されている。さらに、そのエッジ位置での判定部２Ａ，２Ｂによる判定結果Ｅn，Ｄn-1，Ｄnの値が示されている。なお、ここでもテストデータ信号Ｄtのデータパターンは、“０１０１…”であるものとする。
【００９０】
スキューＳｋがある場合、クロックＣＬＫAの位相を０．５ＵＩシフトさせても、判定結果Ｄn-1，Ｄnは、テストデータ信号Ｄtの振幅レベルの遷移点から、スキューＳｋ分ずれた時点で判定される値となる。つまり、判定結果Ｄn-1，Ｄnは、その時点（サンプリングタイミング）でのテストデータ信号Ｄtの値となる。
【００９１】
このとき、テストデータ信号Ｄtのデータパターンが“０１０１…”であるため、図６に示した真理値表の４つの状態のうち現れる状態は、“Ｕｐ”、“Ｄｏｗｎ”の２つとなり、各状態の出現率は、５０％となる。
【００９２】
上記のように、スキューの有無によって、各状態の出現率は相違する。
本実施の形態の受信回路１０では、補正量決定部１１は、スキューが生じているときの位相検出部３で得られる状態の出現率を、スキューがないときの状態の出現率に近づけるように、補正量を決定する。
【００９３】
制御部１２は、スキューがないときの特定の状態の出現率に対応した目標値ＧＯＡＬを補正量決定部１１に供給する。目標値ＧＯＡＬは、スキューがないときの特定の状態の出現率に、所定の値（例えば、１０００）を乗じた値となる。
【００９４】
各状態の出現率は、テストデータ信号Ｄtのデータパターンに応じて異なる値が設定される。以下では、データパターンが“００１１”である場合の、目標値ＧＯＡＬの設定例を説明する。
【００９５】
図１５は、データパターンが“００１１００１１…”である場合のスキュー量と各状態の出現率との関係の例を示す図である。
横軸は、スキュー量（ＵＩ）を示し、縦軸は、出現率（％）を示している。４種類の形状のプロットにより、４つの状態の出現率とスキュー量の関係が示されている。
【００９６】
目標値ＧＯＡＬを、スキューがないときの状態“Ｄｏｗｎ”の出現率に基づき決定する場合、状態“Ｄｏｗｎ”の、スキュー量が０のときの出現率は、１２．５％であるため、この出現率に上記の所定の値を乗じたものが目標値ＧＯＡＬとなる。例えば、所定の値が１０００であるときには、目標値ＧＯＡＬは、０．１２５×１０００＝１２５と求めることができる。
【００９７】
このように目標値ＧＯＡＬが設定されたとき、補正量決定部１１は、以下のような処理で補正量を決定する。
図５に示した補正量決定部１１において、カウンタ３２のカウント値が所定の値（以下でも１０００とする）に達すると、比較回路３６にて、目標値ＧＯＡＬとセレクタ３５の出力とが比較される。
【００９８】
目標値ＧＯＡＬが、スキューがないときの状態“Ｄｏｗｎ”の出現率に対応した値、１２５であるとき、制御部１２は、選択信号ＳＴＡＴＥ＿ＳＥＬによって、セレクタ３５に、信号Ｄの値をカウントしているカウンタ３４ｂのカウント値を選択させる。
【００９９】
カウンタ３２のカウント値が１０００に達したときに、カウンタ３４ｂのカウント値が、例えば、５０であるとき、状態“Ｄｏｗｎ”の出現率が５％であることを意味している。このとき、図１５に示すようにスキュー量は、０より大きい値（例えば、Ｘ１）となる。
【０１００】
比較回路３６は、上記のようにカウンタ３４ｂのカウント値が目標値ＧＯＡＬよりも小さいと、スキュー量を減らすために、−１を出力する。補正量を決定する際、セレクタ３８は、比較回路３６の出力を選択するため、レジスタ４１には−１が格納され（レジスタ４１の初期値は０）、シフトコードＳＤｃｏｄｅの値は−１だけ減少する。
【０１０１】
これにより、補正部５から出力される補正済位相コードＰｓｃｏｄｅも−１だけ減少し、位相調整部４ＡはクロックＣＬＫAの位相を進める調整を行う。
このような処理により、スキュー量は小さくなる。例えば、カウンタ３２のカウント値が次に１０００に達したとき、カウンタ３４ｂのカウント値が、例えば、約７５であるとき、状態“Ｄｏｗｎ”の出現率が約７．５％であることを意味している。このとき、図１５に示すようにスキュー量は、まだ、０より大きい値（例えば、Ｘ２）となる。
【０１０２】
このときも同様に、比較回路３６の出力は−１となり、加算器４０でレジスタ４１の値（−１）と加算され、レジスタ４１の格納値は−２となる。また、シフトコードＳＤｃｏｄｅの値は、さらに−１だけ減少し、位相調整部４Ａは、さらに、クロックＣＬＫAの位相を進める調整を行う。
【０１０３】
補正量決定部１１は、カウンタ３４ｂのカウント値が、目標値ＧＯＡＬと同等になるまで、上記の処理を繰り返す。カウンタ３４ｂのカウント値が、目標値ＧＯＡＬと同等になったときに、レジスタ４１に保持されている値が、通常動作時に適用される補正量となる。
【０１０４】
図示を省略しているが、制御部１２は、例えば、セレクタ３５から出力されるカウンタ３４ｂのカウント値を検出する。そして制御部１２は、そのカウンタ値が、目標値ＧＯＡＬと同等になったことを検出すると、選択信号ＴＥＳＴ＿ＳＥＬにより、セレクタ３８，３９に０を出力させる。これにより、クロックＣＬＫAに対する０．５ＵＩのシフトは解除され、レジスタ４１に保持されている値（補正量）が、シフトコードＳＤｃｏｄｅとして出力される。また、制御部１２は選択信号ＴＥＳＴ＿ＳＥＬにより、セレクタ１４（図２）に入力データ信号Ｄinを出力させる。
【０１０５】
補正部５は、シフトコードＳＤｃｏｄｅで位相コードＰＨｃｏｄｅを補正し、補正済位相コードＰＳｃｏｄｅを生成し位相調整部４Ａに供給する。これにより、位相調整部４Ａでは、クロックＣＬＫAに対し、スキューを考慮した位相調整を行うことになる。そのため、クロックＣＬＫA，ＣＬＫBが、判定部２Ａ，２Ｂに達したときに生じるスキューが抑制される。
【０１０６】
なお、上記の例では、カウンタ３４ｂのカウント値が目標値ＧＯＡＬと同等となったときを、補正量を決定する処理の終了条件としたが、これに限定されない。例えば、カウンタ３４ｂのカウント値が目標値ＧＯＡＬから一定範囲に収まったときを、終了条件としてもよい。
【０１０７】
また、上記では、状態“Ｄｏｗｎ”の出現率に対応するカウンタ３４ｂのカウント値を用いて、補正量を決定する例を説明したが、これに限定されることはない。他の状態“Ｕｐ”，“Ｓｔａｙ”，“Ｎ／Ａ”に対応するカウンタ３４ａ，３４ｃ，３４ｄのカウント値を用いて、補正量を決定してもよい。
【０１０８】
また、テストデータ信号Ｄtのデータパターンは、“００１１００１１…”に限定されない。以下に、データパターンが“０１０１…”であるときと、データパターンがランダムであるときの目標値ＧＯＡＬの設定例を説明する。
【０１０９】
図１６は、データパターンが“０１０１…”である場合のスキュー量と各状態の出現率との関係の例を示す図である。
横軸は、スキュー量（ＵＩ）を示し、縦軸は、出現率（％）を示している。４種類の形状のプロットにより、４つの状態の出現率とスキュー量の関係が示されている。
【０１１０】
目標値ＧＯＡＬを、スキューがないときの状態“Ｄｏｗｎ”の出現率に基づき決定する場合、状態“Ｄｏｗｎ”の、スキュー量が０のときの出現率は２５％であるため、この出現率に上記の所定の値を乗じたものが目標値ＧＯＡＬとなる。例えば、所定の値が１０００であるときには、目標値ＧＯＡＬは、０．２５×１０００＝２５０と求めることができる。
【０１１１】
図１７は、データパターンがランダムである場合のスキュー量と各状態の出現率との関係の例を示す図である。
横軸は、スキュー量（ＵＩ）を示し、縦軸は、出現率（％）を示している。４種類の形状のプロットにより、４つの状態の出現率とスキュー量の関係が示されている。
【０１１２】
目標値ＧＯＡＬを、スキューがないときの状態“Ｄｏｗｎ”の出現率に基づき決定する場合、状態“Ｄｏｗｎ”の、スキュー量が０のときの出現率は約１２％であるため、この出現率に上記の所定の値を乗じたものが目標値ＧＯＡＬとなる。例えば、所定の値が１０００であるときには、目標値ＧＯＡＬは、０．１２×１０００＝１２０と求めることができる。
【０１１３】
このように、スキューがないときの特定の状態の出現率に対応した値（目標値ＧＯＡＬ）がデータパターンに応じて設定されるため、さまざまなデータパターンを用いて、補正量を決定できる。
【０１１４】
以上のように、本実施の形態の受信回路１０では、クロックＣＬＫAを０．５ＵＩ分シフトさせたときに、位相検出部３で生成される信号Ｕ，Ｄ，Ｓ，Ｎに基づく４つの状態の何れかの出現率が、スキューがないときの出現率に近づくように、補正量が決定される。
【０１１５】
その補正量に基づいて、位相調整部４Ａでは、クロックＣＬＫAの位相調整を行うことになり、クロックＣＬＫA，ＣＬＫBが、判定部２Ａ，２Ｂに達したときに生じるスキューが抑制される。そのため、クロックＣＬＫBのエッジが入力データ信号Ｄinの遷移点に追従するとき、クロックＣＬＫAのエッジは、入力データ信号Ｄinのアイ中央を捕らえることができるようになり、データ判定精度が向上する。また、クロックジッタなどの外乱要因に対する耐性も高くなる。
【０１１６】
また、スキューを考慮して、クロックＣＬＫBの位相を遅らせるようなダミーの回路を配置することもないので、回路面積や消費電力の増大も抑制できる。さらに、補正量決定部１１を、デジタル回路で実現できるため、高速で、高精度なアナログ回路を使わなくて済むため、回路的なオーバーヘッドは少ない。
【０１１７】
（変形例）
図１８は、第２の実施の形態の受信回路の変形例を示す図である。なお、図２に示した受信回路１０と同様の要素については、同一符号を付し、その説明を省略する。
【０１１８】
受信回路１０ａにおいて、補正部５ａは、位相調整部４Ａ，４Ｂから判定部２Ａ，２Ｂに達するクロックＣＬＫA，ＣＬＫBの間に生じるスキューを補正して、クロックＣＬＫA，ＣＬＫB間に設定される位相差の変動を抑制するものである。しかし、補正部５ａは、図２に示した補正部５と異なり、例えば、可変遅延回路である。補正部５ａは、前述の方法で補正量決定部１１が生成したシフトコードＳＤｃｏｄｅに基づき、位相調整部４Ａが出力したクロックＣＬＫAの遅延量を調整し、判定部２Ａ及び補正量決定部１１に供給する。
【０１１９】
このような受信回路１０ａであっても、シフトコードＳＤｃｏｄｅに基づき、補正部５ａにより、クロックＣＬＫA，ＣＬＫBの間に生じるスキューが補正（抑制）されるため、受信回路１０と同様に、データ判定精度を向上できるという効果が得られる。
【０１２０】
（第３の実施の形態）
図１９は、第３の実施の形態の受信回路の一例を示す図である。
図２に示した受信回路１０と同様の要素については同一符号を付し、その説明を省略する。
【０１２１】
第３の実施の形態による受信回路１０ｂは、ｋ個のクロックＣＬＫA1〜ＣＬＫAk，ＣＬＫB1〜ＣＬＫBkによりインターリーブ動作を行うことが可能な回路となっている。入力データ信号Ｄinの周波数が速いときも、遅い周波数のクロックで並列処理により動作可能となる。そのため、受信回路１０ｂの消費電力を下げられる。
【０１２２】
受信回路１０ｂは、判定部２Ａ１〜２Ａｋ，２Ｂ１〜２Ｂｋ、位相検出部３ａ、位相調整部４Ａ１〜４Ａｋ，４Ｂ１〜４Ｂｋ、補正部５ｂ、フィルタ７、補正量決定部１１ａ、制御部１２ａ、テストデータ信号生成部１３、セレクタ１４を有する。さらに受信回路１０ｂは、多相クロック生成部１５を有する。
【０１２３】
このような受信回路１０ｂでは、多相クロック生成部１５は、図示しないＰＬＬ回路などから供給されるリファレンスクロックＣＬＫrefに基づき、位相の異なるｋ個のクロックを生成する。
【０１２４】
位相調整部４Ａ１〜４Ａｋは、それぞれ、補正部５ｂから供給される補正済位相コードＰＳｃｏｄｅに基づき、多相クロック生成部１５で生成されたｋ個のクロック信号の位相を調整し、クロックＣＬＫA1〜ＣＬＫAkを出力する。
【０１２５】
位相調整部４Ｂ１〜４Ｂｋは、それぞれ、フィルタ７から供給される位相コードＰＨｃｏｄｅに基づき、多相クロック生成部１５で生成されたｋ個のクロック信号の位相を調整し、クロックＣＬＫB1〜ＣＬＫBkを出力する。
【０１２６】
判定部２Ａ１〜２Ａｋは、それぞれ、対応するクロックＣＬＫA1〜ＣＬＫAkに同期して、入力データ信号Ｄinまたはテストデータ信号Ｄtの振幅レベルを判定する。そして、判定部２Ａ１〜２Ａｋは、各判定結果Ｄn1〜Ｄnkを出力する。
【０１２７】
判定部２Ｂ１〜２Ｂｋは、それぞれ、対応するクロックＣＬＫB1〜ＣＬＫBkに同期して、入力データ信号Ｄinまたはテストデータ信号Ｄtの振幅レベルを判定する。そして、判定部２Ｂ１〜２Ｂｋは、判定結果Ｅn1〜Ｅnkを出力する。
【０１２８】
位相検出部３ａは、判定結果Ｄn1〜Ｄnk，Ｅn1〜Ｅnkに基づき、入力データ信号Ｄinまたはテストデータ信号Ｄtの位相と、クロックＣＬＫB1〜ＣＬＫBkの位相の関係を示す位相情報を生成する。
【０１２９】
補正量決定部１１ａは、第２の実施の形態の受信回路１０の補正量決定部１１と同様の機能を有するが、制御部１２からの選択信号ＴＥＳＴ＿ＳＥＬ，ＳＴＡＴＥ＿ＳＥＬ、目標値ＧＯＡＬのほか、クロック選択信号ＣＬＫ＿ＳＥＬに基づき動作する。補正量決定部１１ａの回路例及び動作例については後述する。
【０１３０】
制御部１２ａは、補正量決定部１１ａがスキューの補正量を決定するときに用いる選択信号ＴＥＳＴ＿ＳＥＬ，ＳＴＡＴＥ＿ＳＥＬ、目標値ＧＯＡＬのほか、スキューの補正量を決定するクロックを選択するためのクロック選択信号ＣＬＫ＿ＳＥＬを生成して出力する。
【０１３１】
（位相検出部３ａ及び補正量決定部１１の一例）
図２０は、位相検出部及び補正量決定部の一例を示す図である。
なお、図５に示した位相検出部３及び補正量決定部１１と同様の要素については同一符号を付し、その説明を省略する。
【０１３２】
位相検出部３ａは、ｋ個のＦＦ３０Ａ１〜３０Ａｋ、演算回路３１ａを有する。
ＦＦ３０Ａ１〜３０Ａｋは、判定部２Ａ１〜２Ａｋでの判定結果Ｄn1〜Ｄnkを、対応するクロックＣＬＫA1〜ＣＬＫAkに同期して保持し、１ビット分遅延させて出力する。
【０１３３】
演算回路３１ａは、判定結果Ｄn1〜Ｄnkと、ＦＦ３０Ａ１〜３０Ａｋの出力及び、判定部２Ｂ１〜２Ｂｋでの判定結果Ｅn1〜Ｅnkに基づき、前述した真理値表を実現する演算を行う。そして、演算回路３１ａは、各クロックＣＬＫA1〜ＣＬＫAk（及びクロックＣＬＫB1〜ＣＬＫBk）対応した位相情報として信号Ｕ，Ｄ，Ｓ，Ｎを出力する。
【０１３４】
補正量決定部１１ａは、カウンタ３２、比較回路３３、カウンタ３４ａ，３４ｂ，３４ｃ，３４ｄ、セレクタ３５、比較回路３６、レジスタ３７、セレクタ３８，３９、加算器４０、ｋ個のレジスタ４１１〜４１ｋを有する。さらに、補正量決定部１１ａは、加算器４２、セレクタ４３ａ，４３ｂ，４３ｃ，４３ｄ，４４，４５を有する。
【０１３５】
セレクタ４３ａ〜４３ｄは、クロック選択信号ＣＬＫ#ＳＥＬに基づき、クロックＣＬＫA1〜ＣＬＫAkの何れかに対応する信号Ｕ〜Ｎを選択し、それぞれ、カウンタ３４ａ〜３４ｄに出力する。
【０１３６】
セレクタ４４は、クロック選択信号ＣＬＫ#ＳＥＬに基づき、クロックＣＬＫA1〜ＣＬＫAkのうち、前述の補正量を求めるものを選択し、出力する。
セレクタ４５は、クロック選択信号ＣＬＫ#ＳＥＬに基づき、クロックＣＬＫA1〜ＣＬＫAkのそれぞれに対応する補正量を格納するレジスタ４１１〜４１ｋの何れかに、比較回路３６から供給されるリセット信号を出力する。
【０１３７】
上記のような構成により、ｋ個のクロックＣＬＫA1〜ＣＬＫAkに、それぞれ独立したシフトコードＳＤｃｏｄｅ（補正量）を設定することができる。
その他の動作については、第２の実施の形態による受信回路１０と同様であり、第２の実施の形態による受信回路１０と同様の効果が得られる。
【０１３８】
以上、実施の形態に基づき、本発明の受信回路の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【０１３９】
１  受信回路
２Ａ，２Ｂ  判定部
３  位相検出部
４Ａ，４Ｂ  位相調整部
５  補正部
６  補正量決定部
７  フィルタ
Ａ  スキュー
Ｂ  矢印
ＣＬＫA，ＣＬＫB  クロック
ＣＬＫref  リファレンスクロック
Ｄin  入力データ信号
Ｅn，Ｄn  判定結果
Ｕ，Ｄ，Ｓ，Ｎ  信号
ＳＤｃｏｄｅ  シフトコード
ＰＨｃｏｄｅ  位相コード
ＰＳｃｏｄｅ  補正済位相コード
【図１】
2015216439.tif 000003
【図２】
2015216439.tif 000004
【図３】
2015216439.tif 000005
【図４】
2015216439.tif 000006
【図５】
2015216439.tif 000007
【図６】
2015216439.tif 000008
【図７】
2015216439.tif 000009
【図８】
2015216439.tif 000010
【図９】
2015216439.tif 000011
【図１０】
2015216439.tif 000012
【図１１】
2015216439.tif 000013
【図１２】
2015216439.tif 000014
【図１３】
2015216439.tif 000015
【図１４】
2015216439.tif 000016
【図１５】
2015216439.tif 000017
【図１６】
2015216439.tif 000018
【図１７】
2015216439.tif 000019
【図１８】
2015216439.tif 000020
【図１９】
2015216439.tif 000021
【図２０】
2015216439.tif 000022