(57)【要約】【課題】差動出力データ信号間のスキューの小さい出力回路が実現。【解決手段】基準クロックCLK2P,CLK2Nおよび分周クロックCLK16を生成するクロック回路11と、多ビットデータをパラレル・シリアル変換してシリアルデータ列を生成するマルチプレクサ15-18,30と、シリアルデータ列から、第１および第２極性信号TXOP,TXONからなる差動データ信号を生成し、基準クロックの周期に対応して出力する差動出力回路31-32,34A,34Bと、第２極性信号の遅延量を変化させる遅延回路33と、差動出力回路の出力および基準クロックの分周クロックである検出クロックCLK16に基づいて、第１極性信号と第２極性信号のスキューが小さくなるように、遅延回路を制御するスキュー制御回路36と、を有する送信回路。【選択図】図４
2014127845.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２極性信号からなる差動データ信号を、基準クロックの周期に対応して出力する送信回路の前記第１極性信号と前記第２極性信号間のスキューを調整する差動信号スキュー調整方法であって、
前記基準クロックを分周した検出クロックの位相を、前記第１極性信号の位相に対応させて位相調整した後固定し、
前記第２極性信号の位相を、固定した前記検出クロックの位相に対応させて調整する、ことを特徴とする差動信号スキュー調整方法。
【請求項２】
前記送信回路は、多ビットデータをパラレル・シリアル変換したシリアルデータ列を前記差動データ信号として出力し、
前記検出クロックの位相の調整は、前記基準クロックを分周した検出クロックの位相を、前記シリアルデータ列中の前記検出クロックの変化エッジに対応する対応１ビットデータの前記第１極性信号の位相に対応させて調整した後、前記検出クロックの位相を固定し、
前記第２極性信号の位相の調整は、前記対応１ビットデータの前記第２極性信号の位相を、固定した前記検出クロックの位相に対応させて調整する、請求項１記載の差動信号スキュー調整方法。
【請求項３】
前記検出クロックの位相の調整を行う前に、前記シリアルデータ列中の前記対応１ビットデータの位置を特定する請求項２記載の差動信号スキュー調整方法。
【請求項４】
前記検出クロックの位相の調整は、前記対応１ビットデータの前記第１極性信号を前記検出クロックで取り込んだ値が、前記対応１ビットデータの値に一致する確率が１／２になるように、前記検出クロックの位相の遅延量を変化させることにより行う請求項３記載の差動信号スキュー調整方法。
【請求項５】
前記第２極性信号の位相の調整は、前記対応１ビットデータの前記第２極性信号を前記検出クロックで取り込んだ値が、前記対応１ビットデータの値に一致する確率が１／２になるように、前記送信回路における前記第２極性信号の遅延量を変化させることにより行う請求項４記載の差動信号スキュー調整方法。
【請求項６】
基準クロックおよび前記基準クロックの分周クロックを生成するクロック回路と、
多ビットデータをパラレル・シリアル変換してシリアルデータ列を生成するマルチプレクサと、
前記シリアルデータ列から、第１および第２極性信号からなる差動データ信号を生成し、前記基準クロックの周期に対応して出力する差動出力回路と、
前記第２極性信号の遅延量を変化させる遅延回路と、
前記差動出力回路の出力および前記基準クロックの分周クロックである検出クロックに基づいて、前記第１極性信号と前記第２極性信号のスキューが小さくなるように、前記遅延回路を制御するスキュー制御回路と、を備えることを特徴とする送信回路。
【請求項７】
前記スキュー制御回路は、
前記検出クロックの位相を、前記第１極性信号の位相に対応させて位相調整した後固定し、
前記第２極性信号の位相を、固定した前記検出クロックの位相に対応させて前記遅延回路の遅延量を調整する、ことを特徴とする請求項６記載の送信回路。
【請求項８】
前記スキュー制御回路は、
前記シリアルデータ列から、前記検出クロックの変化エッジに対応する対応１ビットデータを抽出するデータ選択回路を備え、
前記検出クロックの位相の調整を行う前に、前記シリアルデータ列中の前記対応１ビットデータの位置を特定し、前記データ選択回路が前記対応１ビットデータを抽出するように設定する請求項７記載の送信回路。
【請求項９】
前記スキュー制御回路は、
前記検出クロックの位相の遅延量を変化させる位相シフト回路を備え、
前記対応１ビットデータの前記第１極性信号を前記検出クロックで取り込んだ値が、前記対応１ビットデータの値に一致する確率が１／２になるように、前記位相シフト回路を設定する請求項８記載の送信回路。
【請求項１０】
前記スキュー制御回路は、
前記対応１ビットデータの前記第２極性信号を前記検出クロックで取り込んだ値が、前記対応１ビットデータの値に一致する確率が１／２になるように、前記遅延回路を設定する請求項９記載の送信回路。
【請求項１１】
前記マルチプレクサの単相出力をインピーダンス変換するシングルエンドのプレドライバを備え、
前記差動出力回路は、前記遅延回路を備え、
前記差動出力回路は、前記プレドライバの単相出力から、前記第１および第２極性信号からなる前記差動データ信号を生成し、
前記遅延回路が、前記第２極性信号の遅延量を変化させる請求項６から１０のいずれか１項記載の送信回路。
【請求項１２】
前記スキュー制御回路は、動作信号供給時に調整動作を行い、前記動作信号供給停止時には、直前の前記動作信号供給時の前記遅延回路の制御値を維持する請求項６から１１のいずれか１項記載の送信回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、差動信号スキュー調整方法および送信回路に関する。
【背景技術】
【０００２】
通信基幹向け装置や、サーバーなどの情報処理機器では、ボード間や筐体間のデータ送受信、LSI間のデータ送受信、チップ内の複数の素子や回路ブロック間において、高いビットレートで信号を送受信する高速Ｉ／Ｏ用データ送受信回路が使用される。
【０００３】
一般に、データ送信回路は、極性の異なる正相／逆相(Positive/Negative(以降、Ｐ／Ｎと記す)の２個のデータ信号を組とした差動データ信号を出力する。データ伝送の高速化のニーズが高まるに従い、データレートの向上を図る必要がある。
【０００４】
送信回路は、例えば１６：１のマルチプレクサ（ＭＵＸ）機能を有し、周辺ロジック回路から2GHzクロックに同期した2Gb/sの１６ビットパラレルデータをＦＩＦＯ(First-In-First-Out)にて受ける。内部ＰＬＬ回路で16GHzの基準クロックを生成し、この16GHzクロックは分周され、8GHz、4GHz、2GHzの分周クロックがそれぞれ生成される。送信回路では、ＦＩＦＯから2GHzの分周クロックに同期して１６ビットパラレルデータが読み出される。この１６ビットパラレルデータは、１６：８マルチプレクサ（ＭＵＸ）、８：４ＭＵＸ、４：２ＭＵＸ、２：１ＭＵＸを通して、シリアル化され、プレドライバと５０Ωの最終ドライバを介して、32Gb/sの差動シリアルデータ信号が出力される。これまで、プレドライバの差動出力間にインバータ構成のクロスカップルを挿入することで、P/N差動出力データ間のスキューを低減（デスキュー）してきた。しかしながら、プロセス、電源電圧および温度(PVT: Process, Voltage, Temperature)変動等を含む広範囲な動作仕様に対して、十分にスキューを低減（デスキュー）できていなかった。
【０００５】
送信回路のP/N差動出力データ間のスキューに関しては、高速化に伴い、１データ区間(1UI: Unit Interval)のデータ幅に対するスキューの比率が相対的に大きくなっている。つまり、P/N差動出力データ間のスキューを十分に低減し、その比率を小さくすることが、高速化にとって重要である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３８８２８２３号公報
【特許文献２】特許第３４１１５７４号公報
【特許文献３】特開平１１−５１０３３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のように、プレドライバの差動出力間にインバータ構成のクロスカップルを挿入した程度では、十分なデスキューを実現することができなかった。
実施形態によれば、送信回路の高速化を実現するに当たり、ＰＶＴ変動に無関係に、送信回路のP/N差動出力データ間のスキューを低減した差動信号スキュー調整方法および送信回路が記載される。
【課題を解決するための手段】
【０００８】
第１の態様によれば、差動信号スキュー調整方法は、第１および第２極性信号からなる差動データ信号を、基準クロックの周期に対応して出力する送信回路の第１極性信号と第２極性信号間のスキューを調整する。差動信号スキュー調整方法によれば、基準クロックを分周した検出クロックの位相を、第１極性信号の位相に対応させて位相調整した後固定する。次に、第２極性信号の位相を、固定した検出クロックの位相に対応させて調整する。
【０００９】
第２の態様によれば、送信回路は、クロック回路と、マルチプレクサと、差動出力回路と、遅延回路と、スキュー制御回路と、を有する。クロック回路は、基準クロックおよび基準クロックの分周クロックを生成する。マルチプレクサは、多ビットデータをパラレル・シリアル変換する。差動出力回路は、シリアルデータ列から、第１および第２極性信号からなる差動データ信号を生成し、基準クロックの周期に対応して出力する。遅延回路は、第２極性信号の遅延量を変化させる。スキュー制御回路は、差動出力回路の出力および分周クロックである検出クロックに基づいて、第１極性信号と第２極性信号のスキューが小さくなるように、遅延回路を制御する。
【発明の効果】
【００１０】
実施形態によれば、差動出力データ信号間のスキューの小さい出力回路が実現される。
【図面の簡単な説明】
【００１１】
【図１】図１は、一般的な送信回路の回路構成を示す図である。
【図２】図２は、図１の送信回路の動作を示すタイムチャートである。
【図３】図３は、図１のＰ／Ｎ差動出力データ信号にスキューが有る場合と無い場合を説明する図であり、（Ａ）はスキューが有る場合を、（Ｂ）はスキューが無い場合を、それぞれ示す。
【図４】図４は、実施形態の送信回路の回路構成を示す図である。
【図５】図５は、実施形態の差動間デスキュー回路の調整アルゴリズムを説明する図である。
【図６】図６は、上記の調整アルゴリズムで差動出力データ間のスキューを低減する調整動作を実行する差動間デスキュー回路の構成を示す図である。
【図７】図７は、データ選択回路の回路構成を示す図である。
【図８】図８は、エッジ検出回路の回路構成を示す図である。
【図９】図９は、実施形態の送信回路のスキュー低減（デスキュー）動作を説明するフローチャートである。
【図１０】図１０は、実施形態の送信回路のスキュー低減（デスキュー）動作を説明するフローチャートである。
【図１１】図１１は、デスキュー動作における一部の信号の変化を示すタイムチャートである。
【発明を実施するための形態】
【００１２】
実施形態を説明する前に、差動データ信号を高速で出力する一般的な送信回路について説明する。
【００１３】
図１は、一般的な送信回路の回路構成を示す図であり、2GHzのクロックに同期して出力される１６ビットのパラレルデータを１ビットのシリアルデータに変換し、16Gb/sのクロックのダブルレートで出力する例を示す。すなわち、シリアルデータは、32Gb/sで変化し、１データ区間(UI: Unit Interval)は、約３０psである。以下、このような場合を例として説明するが、実施形態はこれに限定されるものではない。
【００１４】
図１に示すように、この送信回路は、ＰＬＬ回路１１と、分周回路と、ＦＩＦＯ１５と、マルチプレクサ回路と、プレドライバと、クロスカップル回路２１と、最終ドライバと、を有する。ＰＬＬ回路１１は、周辺ロジック回路から2GHzクロックを受け、16GHzの差動クロックCLK2PおよびCLK2Nを発生する。
【００１５】
分周回路は、第１分周器１２と、第２分周器１３と、第３分周器１４と、を有する。第１分周器１２は、差動クロックCLK2PおよびCLK2Nから２分周した8GHzの単相クロックCLK4を発生する。第２分周器１３は、単相クロックCLK4から２分周した4GHzの単相クロックCLK8を発生する。第３分周器１４は、単相クロックCLK8から２分周した2GHzの単相クロックCLK16を発生する。
【００１６】
ＦＩＦＯ１５は、書込クロックに応じて書き込まれた出力データを、読出クロックに応じて書き込まれた順に出力するＦＩＦＯ(First-In-First-Out)回路である。１６ビットの送信データTXPDTが、2GHzの単相クロックTXPCLKに同期して書き込まれ、2GHzのCLK16に応じて、書き込まれた順に、１６ビットの出力データDT_FIFOとして順次出力される。
【００１７】
マルチプレクサ回路は、第１マルチプレクサ１６と、第２マルチプレクサ１７と、第３マルチプレクサ１８と、第４マルチプレクサ１９と、を有する。第１マルチプレクサ１６は、CLK16に応じて、ＦＩＦＯ１５の出力する１６ビットのDT_FIFOを、８ビットのデータDT_M168にマルチプレクス（多重化）する。第２マルチプレクサ１７は、CLK8に応じて、第１マルチプレクサ１６の出力する８ビットのDT_M168を、４ビットのデータDT_M84にマルチプレクス（多重化）する。第３マルチプレクサ１８は、CLK4に応じて、第２マルチプレクサ１７の出力する４ビットのDT_M84を、２ビットのデータDT_M42にマルチプレクス（多重化）する。第４マルチプレクサ１９は、差動クロックCLK2PおよびCLK2Nに応じて、第３マルチプレクサ１８の出力する２ビットのDT_M42を、１ビットの差動データ信号にマルチプレクス（多重化）し、P/N差動出力データ信号TXDPおよびTXDNとして出力する。第４マルチプレクサ１９は、ダブルデータレートでデータ信号を出力するので、TXDPおよびTXDNは、32Gb/sで変化し、１ＵＩは約３０psである。
【００１８】
プレドライバは、正相プレドライバ２０Ａと、逆相プレドライバ２０Ｂと、を有する。正相プレドライバ２０Ａおよび逆相プレドライバ２０Ｂは、それぞれCMOSインバータ回路を多数直列に接続した構成を有し、最終ドライバに適したインピーダンスに調整する。図１に示すように多段にインバータを接続するのは、１個のCMOSインバータでは低電圧および高速動作時の駆動能力（ファンアウト）が不十分であり、多段に接続することにより、必要な駆動能力が得られるようにインピーダンス調整している。正相プレドライバ２０Ａは差動出力データ信号の一方TXDPのインピーダンスを調整し、逆相プレドライバ２０Ｂは差動出力データ信号の他方TXDNのインピーダンスを調整する。
【００１９】
最終ドライバは、正相最終ドライバ２２Ａと、逆相最終ドライバ２２Ｂと、を有する。正相最終ドライバ２２Ａおよび逆相最終ドライバ２２Ｂは、それぞれ直列に接続した２段のCMOSインバータと、抵抗と、を有し、所定の終端抵抗に対応した出力が行えるように形成されている。正相最終ドライバ２２Ａは、正相プレドライバ２０Ａの出力に応じた出力TXOPを行い、逆相最終ドライバ２２Ｂは、逆相プレドライバ２０Ｂの出力に応じた出力TXONを行う。
【００２０】
図２は、図１の送信回路の動作を示すタイムチャートである。図２では、１６ビットデータ“３２１０ｈ（１６進表示）”、“７６５４ｈ”、“ＢＡ９８ｈ”、…を順に出力する場合の各部の信号を示している。図１の回路および図２の動作は広く知られているので、詳しい説明は省略する。
【００２１】
正相プレドライバ２０Ａおよび逆相プレドライバ２０Ｂは、同じ設計のインバータを同数接続して形成されるが、低電圧および高速動作時には、２つの系における信号遅延の差、すなわち２つの信号間のスキューが問題になる。
【００２２】
図３は、図１のＰ／Ｎ差動出力データ信号TXOPおよびTXONにスキューが有る場合と無い場合を説明する図であり、（Ａ）はスキューが有る場合を、（Ｂ）はスキューが無い場合を、それぞれ示す。
【００２３】
図３では、Ｐ／Ｎ差動出力データ信号TXOPおよびTXONのクロスポイント振幅を電源電圧VDDの半分に当たるVDD/2とし、P/N差動出力データ信号が同時刻に、このVDD/2レベルを過ぎる（クロスする）場合をスキュー無しとしている。実施形態では、デスキューとは、送信回路のＰ／Ｎ差動出力データ信号間のスキューを除去することを意味する。
【００２４】
図１の出力回路では、インバータ構成のクロスカップル回路２１を設けて、信号間のスキューを低減している。しかしながら、クロスカップル回路２１を設けただけでは、プロセス、電源電圧および温度(PVT: Process, Voltage, Temperature)変動等を含む広範囲な動作仕様に対して、十分にスキューを低減できなかった。
【００２５】
図４は、実施形態の送信回路の回路構成を示す図である。実施形態の送信回路は、図１と同様に、2GHzのクロックに同期して出力される１６ビットのパラレルデータを１ビットのシリアルデータに変換し、16GHzのクロックのダブルレートで出力する。すなわち、シリアルデータは、32Gb/sで変化し、１データ区間(UI: Unit Interval)は、約３０psであるが、実施形態はこれに限定されるものではない。
【００２６】
図４に示すように、実施形態の送信回路は、ＰＬＬ回路１１と、分周回路と、ＦＩＦＯ１５と、マルチプレクサ回路と、プレドライバ３１と、遅延回路と、最終ドライバ３５と、差動間デスキュー回路３６と、を有する。ＰＬＬ回路１１、分周回路およびＦＩＦＯ１５は、図１の回路と同じなので、説明は省略する。
【００２７】
また、マルチプレクサ回路は、第１マルチプレクサ１６と、第２マルチプレクサ１７と、第３マルチプレクサ１８と、第４シングルマルチプレクサ３０と、を有し、第４シングルマルチプレクサ３０以外は、図１の回路と同じなので、説明は省略する。図１の第４マルチプレクサ１９は、１ビットのP/N差動出力データ信号TXDPおよびTXDNを出力した。これに対して、実施形態では、第４シングルマルチプレクサ３０は、１ビットの単相出力データ信号TXDを出力することが異なる。したがって、第４シングルマルチプレクサ３０は、差動クロックCLK2PおよびCLK2Nに応じて、第３マルチプレクサ１８の出力する２ビットのデータを、１ビットの差動データ信号に合成し、出力データ信号TXDとして出力する。第４シングルマルチプレクサ３０は、ダブルデータレートでデータ信号を出力するので、TXDは、32Gb/sで変化し、１ＵＩは約３０psである。
【００２８】
プレドライバ３１は、インバータ回路を多数直列に接続した構成を有し、最終ドライバに適したインピーダンスに調整する。実施形態では、消費電力を低減するため、インバータはすべてCMOSインバータを使用することが望ましい。前述のように、多段にインバータを接続するのは、例えばインバータ回路を使用する場合、１個のCMOSインバータ回路では低電圧および高速動作時の駆動能力（ファンアウト）が不十分であり、多段に接続することにより、必要な駆動能力を得るためである。図１では、正相および逆相のプレドライバ２０Ａおよび２０Ｂが、差動出力データ信号のインピーダンスをそれぞれ調整したが、実施形態では、プレドライバ３１が単相の出力データ信号TXDのインピーダンスを調整する。
【００２９】
最終ドライバ３５は、遅延回路と、正相最終ドライバ３４Ａと、逆相最終ドライバ３４Ｂと、を有する。遅延回路は、プレドライバ３１の最終段のCMOSインバータ回路の出力を入力とするインバータ回路３２と、プレドライバ３１の最終段のCMOSインバータ回路の出力を入力とするトランスファーゲート（以下、ＴＧと称する）３３と、を有する。インバータ回路３２はプレドライバ３１の最終段の出力信号を反転するのに対して、ＴＧ３３は反転しないので、インバータ回路３２の出力とＴＧ３３の出力は差動信号となる。インバータ回路３２は、プレドライバ３１で使用するインバータ回路と同様の構成を有する。ＴＧ３３は、PMOSトランジスタとNMOSトランジスタを並列の接続したもので、PMOSトランジスタのゲート信号PVOLとNMOSトランジスタのゲート信号NVOLをアナログ信号レベルで動的に変化させることにより、信号通過時間を調整可能である。
【００３０】
正相最終ドライバ２２Ａおよび逆相最終ドライバ２２Ｂは、それぞれ直列に接続した２段のインバータと、抵抗と、を有し、所定の終端抵抗に対応した出力が行えるように形成されている。正相最終ドライバ２２Ａは、インバータ回路３２の出力に応じた出力TXOPを行い、逆相最終ドライバ２２Ｂは、ＴＧ３３の出力に応じた出力TXONを行う。
【００３１】
差動間デスキュー回路３６は、正相最終ドライバ２２Ａおよび逆相最終ドライバ２２Ｂの最終段のインバータから出力される出力データ信号TXOPとTXON間のスキューを検出し、スキューを低減するようにPVOLおよびNVOLを変化させる。差動間デスキュー回路３６は、TXOPとTXON間のスキュー検出のために、CLK16およびＦＩＦＯ１５の出力する１６ビットパラレルデータを利用する。差動間デスキュー回路３６は、TXOPとTXON間のスキューを低減するようにPVOLおよびNVOLを変化させる調整動作を、論理回路ブロックからの制御信号ADJ_STARTがオンの間を行い、調整が終了する調整値を維持し、制御信号ADJ_ENDをオンにする。
【００３２】
以上のように、実施形態では、差動信号の最終ドライバの前段に当たるプレドライバ３１の最終段の出力に対して、シングルエンド/差動変換を行い、この変換を、インバータ回路３２およびトランスファーゲート（ＴＧ）３３を有する遅延回路で行っている。ＴＧ３３の遅延量調整範囲の中心の遅延量が、インバータ回路３２の遅延量に近似するように設定することが望ましい。なお、遅延回路は、プレドライバ３１のどの箇所に設けてもよい。例えば、第４シングルマルチプレクサ３０を、図１のP/N差動出力データ信号TXDPおよびTXDNを出力する第４マルチプレクサ１９に変更して、TXDPがインバータ回路３２に、TXDNがＴＧ３３に入力するようにしてもよい。この場合、図１と同様に、正相プレドライバと逆相プレドライバを設けることになる。しかし、現実的には、調整後のデータパスを短くし、その後の正相と逆相（Ｐ／Ｎ）データ間の伝搬時間のばらつきを小さくするため、実施形態のように、送信回路の最終ドライバに可能な限り近いノードに挿入することが望ましい。
【００３３】
次に、実施形態の差動間デスキュー回路３６の調整アルゴリズムを説明する。
実施形態の差動間デスキュー回路３６は、最終ドライバ３５の差動出力データ信号TXOPおよびTXONのそれぞれの中心レベル（以下、クロスポイント振幅と称する）が、期待振幅と一致するように、フィードバック制御する。図３では、期待振幅はVDD/2である。差動間デスキュー回路３６では、このフィードバック制御を、低速な分周クロックCLK16を利用して行う。
【００３４】
まず、基準クロックCLK2PまたはCLK2Nを利用して、差動出力データ信号TXOPおよびTXON間のスキュー調整をする場合を考える。この場合、差動出力データ信号TXOPおよびTXONを直接、位相比較回路に入力し、その結果を用いて、スキュー調整回路の入出力遅延時間を調整することになる。位相比較回路の結果は、正相データに対して、逆相データが進んでいるか、遅れているかを示す。この位相比較回路の結果の平均がゼロになるように、遅延回路の通過時間にフィードバックをかければ良い。つまり、クロスポイント振幅が期待振幅と一致するかを検出する必要はない。しかしながら、現実的には、基準クロックCLK2PまたはCLK2N の速度で動作する位相比較回路を実現することは困難である。
【００３５】
そこで、実施形態では、低速なクロックCLK16を利用して差動間デスキュー回路３６を実現するが、そのためにクロスポイントの期待振幅を導入し、この期待振幅を過ぎるタイミングをクロスポイントとする。
図５は、実施形態の差動間デスキュー回路３６の調整アルゴリズムを説明する図である。
【００３６】
図５に示すように、CLK16は、CLK2Pの８倍の長さの周期を有する。差動出力データ信号TXOPおよびTXONは、CLK2Pに対してダブルレートで出力されるので、TXOPおよびTXONの１データ区間（１ＵＩ）は、CLK2Pの１／２周期である。ここで、CLK16に応じてＦＩＦＯ１５から出力され第１マルチプレクサ１６に取り込まれた出力データは、複数のマルチプレクサ、プレドライバ３１、および最終ドライバ３５を介して、最終ドライバ３５からTXOPおよびTXONとして出力される。そのため、差動間デスキュー回路３６において、CLK16の変化エッジ（ここでは立ち上がりエッジ）とTXOPおよびTXONの位相関係はずれており、レイテンシィの関係で１ＵＩ以上ずれる場合も起こり得る。
【００３７】
そこで、まずTXOPをVDD/2と比較した結果をCLK16の変化エッジでラッチしたデータが、ＦＩＦＯ１５から出力されるパラレルデータの何番目のビットに対応するかを探索する。言い換えれば、シリアルデータの何番目のデータがCLK16の変化エッジに対応する対応１ビットデータであるか探索する。この探索は、図５に示すように、シリアルデータの各ビット位置について対応するか否か順に確認することにより行う。なお、TXOPをVDD/2と比較した結果は、TXOPの２値データであり、以下の説明では単にラッチした結果と呼ぶ場合がある。
【００３８】
具体的には、差動間デスキュー回路３６において、TXOPをCLK16の変化エッジでラッチしたデータと、パラレルデータのｉ番目のデータとを比較して一致するかを判定する。もし、ｍ回連続して一致すれば、パラレルデータのｉ番目のデータがCLK16の変化エッジでラッチされると確認される。ｍ回連続して一致する前に１回でも不一致の場合があれば、パラレルデータのｉ番目のデータがCLK16の変化エッジでラッチされるタイミングでないことが判明する。もし一致しない場合が発生した場合には、ｉをずらして同様の判定動作を続ける。次にCLK16の位相をずらして同様の動作を行い、ｍ回連続して一致すればパラレルデータのｉ番目のデータがCLK16の変化エッジでラッチされると確認される。
【００３９】
なお、上記のCLK16の変化エッジとパラレルデータのビット位置の関係の特定動作を行う場合、送信回路および差動間デスキュー回路３６の構成から、もっとも可能性の高いパラレルデータのビット位置を、あらかじめ予測する。そして、上記の特定動作は、もっとも可能性の高いパラレルデータのビット位置から開始し、その前後を交互に探査することが、探査時間短縮の上から望ましい。
【００４０】
さらに、ＰＶＴ変動等を考慮して、CLK16の変化エッジに対するパラレルデータのビット位置が確実に特定される場合には、上記の特定動作は省略してもよい。
【００４１】
次に、CLK16の変化エッジが、TXOPの変化エッジに一致するように、CLK16の位相を調整する。具体的には、TXOPは、低レベル（Ｌ）から高レベル（Ｈ）に遷移する場合とＨからＬに遷移する場合がある。ここではＬからＨへの遷移をTXOPAで、ＨからＬへの遷移をTXOPBで表す。図５に示すように、CLK16の変化エッジがTXOPの変化エッジに一致していない場合（実線のCLK16）、TXOP をCLK16の変化エッジでラッチした値は、対応１ビットデータの値と一致する。
【００４２】
図５に示すように、TXOP に対してCLK16の変化エッジを徐々にシフトさせる。シフト量が小さい時には、上記のようにCLK16の変化エッジでラッチした値は、対応１ビットデータの値と一致する。しかし、CLK16の変化エッジが、TXOPの変化エッジに一致すると、CLK16の変化エッジでラッチした値は、対応１ビットデータの値と一致しなくなり、一致する確率は１／２になる。そこで、CLK16の変化エッジを徐々にシフトさせ、CLK16の変化エッジでラッチした値と対応１ビットデータの値とが一致する率が１／２になるシフト量を決定し、この状態でCLK16の変化エッジのシフト量を固定する。この状態のCLK16を調整済みCLK16と称する。
【００４３】
次に、TXONの変化エッジが調整済みCLK16の変化エッジと一致するように調整を行う。TXONも、ＨからＬに遷移する場合(TXONA)とＬからＨに遷移する場合(TXONB)がある。具体的には、TXONを調整済みCLK16の変化エッジでラッチした値と対応１ビットデータの値とが一致する確率が１／２になるように、TXONの遅延量を変化させる。TXONの遅延量を変化は、図４のＴＧ３３に供給するPVOLおよびNVOLを変化させることにより行う。
【００４４】
以上の調整が終了すると、TXOPおよびTXONの変化エッジは、共にCLK16の変化エッジに一致した状態、すなわち、TXOPとTXONの位相が一致した状態になる。この時のＴＧ３３への供給電圧PVOLおよびNVOLを維持すれば、TXOPとTXONの位相が一致した状態が維持される。
【００４５】
図６は、上記の調整アルゴリズムで差動出力データ間のスキューを低減する調整動作を実行する差動間デスキュー回路３６の構成を示す図である。
【００４６】
差動間デスキュー回路３６は、シーケンサ４１と、データ選択回路４２と、レギュレータ４３と、エッジ検出回路４４と、バッファ４５と、位相シフタ４６と、コンパレータ４７と、セレクタ４８と、を有する。
バッファ４５は、位相シフタ４６への2GHzのクロックCLK16の供給をST_ENに応じて制御するバッファである。
【００４７】
位相シフタ(Phase Shifter)４６は、2GHzのクロックCLK16の位相をCODE_ST[6:0]に応じてシフトし、内部クロックCLK_JGとして出力する。たとえば、位相シフタ４６は、CLK16を入力とするディレイラインおよびトランスファーゲートの組合せで実現される。しかし、加算比を変えて正弦波信号と余弦波信号を加算し、その出力をフィルタを通過させることにより位相をシフトさせる公知の位相シフタを使用してもよく、限定されるものではない。
【００４８】
セレクタ４８は、制御信号JGDT_SELに応じて、TXOP_DTとTXON_DTの一方を選択し、SELDTとして出力する。コンパレータ４７は、セレクタ４８で選択したTXOP_DTとTXON_DTの一方(SELDT)とVDD/2とを比較し、比較結果を位相シフタ４６の出力する内部クロックCLK_JGでラッチしてDT_JGとして出力する。
【００４９】
レギュレータ(Regulator)４３は、例えば、ＤＡ変換回路で実現され、ＴＧ３３のゲートに印加するアナログ信号レベルPVOLおよびNVOLをCODE_RGに応じて調整し、遅延量を変化させる。
【００５０】
シーケンサ(Sequencer)４１は、CLK16に応じて全体制御を行う。シーケンサ４１は、2GHzの分周クロックCLK16に応じてカウント値を変化させるカウンタと、カウント値に応じて図示のような制御データCMP_1，CMP_2を記憶したメモリと、有し、カウント値に応じた制御データを出力する。シーケンサ４１は、送受信回路全体の制御を行う制御ロジック(図示せず)からADJ_START=1を受け、一連の動作を開始し、各構成要素に対する動作指示を行うと共に、各構成要素から状態指示を受ける。一連の動作を完了した時点にて、制御ロジックに対して、ADJ_END=1を出力する。さらに、シーケンサ４１は、CLK16の位相を調整する際の比較回数を設定する信号CMP_1[7:0]およびTXONの変化エッジを調整する際の比較回数を設定する８ビット信号CMP_2[7:0]を、外部から受ける。
【００５１】
データ選択回路(Data Selector)４２は、ＦＩＦＯ１５が出力する１６ビットパラレルデータDT_FIFO[15:0]から、対応１ビットデータのみをエッジ検出回路４４が生成する選択信号DT_SEL[3:0]に応じて出力する。
図７は、データ選択回路４２の回路構成を示す図である。
【００５２】
図７に示すように、データ選択回路４２は、ＦＦ(Flip-Flop)５１と、セレクタ５２と、を有する。ＦＦ５１は、制御信号SEL_ENが有効の間、2GHzのクロックCLK（CLK16をバッファしたクロック）に応じて１６ビットパラレルデータDT_FIFO[15:0]をラッチして保持する。セレクタ５２は、ＦＦ５１にラッチされた１６ビットデータのうちの１ビットを、DT_SEL[3:0]に応じて選択し、選択データDT_CPとして出力する。
【００５３】
エッジ検出回路(Edge Det.)４４は、内部クロックCLK_JGの変化エッジと、TXOP_DTまたはTXON_DTの変化エッジの位置関係を検出し、内部クロックCLK_JGの位相シフト量およびＴＧ遅延回路の遅延量を設定する電圧調整コードCODE_RGを生成する。
【００５４】
図８は、エッジ検出回路４４の回路構成を示す図である。
エッジ検出回路４４は、図８に示すように、６個のＦＦ６１、６２、６５および７０−７２と、コンパレータ６３と、加算器６４および６７−６９と、を有する。ＦＦ６５および７０−７２と加算器６４および６７−６９の対応する組は、カウンタを形成する。
【００５５】
エッジ検出回路４４は、ＦＦ６１および６２で、内部クロックCLK_JTの反転クロックCLKX_JTに同期して、DT_JGおよびDT_CPをラッチし、コンパレータ６３でラッチしたDT_JGとDT_CPが一致するか論理比較する。ＦＦ６５と加算器６４で形成されるカウンタは、DET_RSTがＨの時にリセットされ、DET_RSTがＬの間、比較結果が一致の場合に、CLKX_JTに同期してカウントアップする。ＦＦ７０と加算器６７で形成されるカウンタは、SEL_SFTがアクティブの時にカウントアップし、カウント値を、データ選択回路４２で対応１ビットデータの位置シフト量を設定するDT_SELとして出力する。ＦＦ７１と加算器６８で形成されるカウンタは、ST_SFTがアクティブの時にカウントアップし、カウント値を、位相シフト回路４６での位相シフト量を設定するCODE_STとして出力する。ＦＦ７２と加算器６９で形成されるカウンタは、RG_SFTがアクティブの時にカウントアップし、カウント値を、レギュレータ４３からのアナログ信号レベルPVOLおよびNVOLを設定するCODE_RGとして出力する。ＦＦ６１および６２は、DET_ENがアクティブの時に動作し、非アクティブの時に動作を停止する。インバータ６６は、DET_ENを反転したDET_RSTを発生する。
【００５６】
図９および１０は、実施形態の送信回路のスキュー低減（デスキュー）動作を説明するフローチャートである。また、図１１は、デスキュー動作における一部の信号の変化を示すタイムチャートである。以下、図９から図１１を参照して、実施形態の送信回路のデスキュー動作を説明する。
【００５７】
ステップＳ１０では、外部の制御ロジックからシーケンサ４１にADJ_START=1が入力され、差動間デスキュー回路３６が、デスキュー動作を開始する。
ステップＳ１１では、JGDT_SEL＝１として、セレクタ４８がTXOP_DTを選択するようにし、ST_EN＝１およびSEL_EN＝１にして、データ選択回路４２、バッファ４５および位相シフタ４６を動作状態にする。
【００５８】
ステップＳ１２では、DET_EN＝１にして、エッジ検出回路４４が、コンパレータ４７がラッチしたTXOP_DT(SELDT)の値DT_JGと、データ選択回路４２の出力するDT_CPとの比較を行う状態になる。
【００５９】
ステップＳ１３では、DET_EN＝０として、カウンタの値DET_CNTを初期値０に設定する。さらに、CLK16の周期ごとに検出されるDT_JGとDT_CP の一致が、CMP_1で設定された回数だけ続くか判定し、続いた場合には、ステップＳ１７に進む。一致が設定された回数続かない場合には、ステップＳ１４に進む。
【００６０】
ステップＳ１４では、エッジ検出回路４４からデータ選択回路４２に出力する対応１ビットデータの選択信号DT_SELが最大値であるか判定する。ここでは、DT_SELの最大値は１５であり、Ｓ１２でエッジ検出回路４４が動作を開始する時点のDT_SELの初期値を最小値０としている。DT_SELが最大値でない場合にはステップＳ１５に進み、最大値である場合にはステップＳ１６に進む。
【００６１】
ステップＳ１５では、シーケンサ４１がエッジ検出回路４４にSEL_SFT＝１を出力し、これに応じてエッジ検出回路４４がデータ選択回路４２に出力するDT_SELを１増加させる。データ選択回路４２は、対応１ビットデータDT_CPを選択するビット位置を１だけシフトし、Ｓ１３に戻る。
【００６２】
Ｓ１３での一致判定が設定された回数続くまで、およびDT_SELが最大値になるまでＳ１３からＳ１５を繰り返す。もし、DT_SELが最大値になった場合には、ステップＳ１６に進む。
【００６３】
ステップＳ１６では、位相シフタ４６の出力するCLK_JGの位相を０．５ＵＩシフトするとともに、DT_SELを最小値（初期値）に戻し、Ｓ１３に戻る。以下、Ｓ１３での一致判定が設定された回数続くまでＳ１３からＳ１５を繰り返す。なお、原理的にはこれまでの間にかならずＳ１７に進むはずであり、Ｓ１７に進んだ時には、対応１ビットデータDT_CPが、位相シフタ４６の出力するCLK_JGの変化エッジに対応していることになる。
【００６４】
ステップＳ１７では、DT_SELを固定し、データ選択回路４２の出力するDT_CPを対応１ビットデータとして固定する。
ステップＳ１８では、エッジ検出回路４４を再び動作状態とし、TXOP_DT(SELDT)の値DT_JGと、DT_CPとの比較が行われるようにする。
【００６５】
ステップＳ１９では、DET_EN＝０として、カウンタの値DET_CNTを初期値０に設定する。さらに、CMP_2で設定された回数のうちDT_JGとDT_CPが一致する回数をカウントし、一致の頻度（一致回数／全サンプル数）を算出し、頻度が１／２になるかを判定する。頻度が１／２でなければステップＳ２０に進み、頻度が１／２であればステップＳ２１に進む。
【００６６】
ステップＳ２０では、シーケンサ４１がエッジ検出回路４４にST_SFT＝１を出力し、これに応じてエッジ検出回路４４が位相シフタ４６に出力するCODE_STを１増加させる。これに応じて、位相シフタ４６は、出力するCLK_JGの位相を１単位量だけシフトする。
Ｓ１９およびＳ２０を繰り返すことにより、頻度は１から減少し、１／２を通過し、通過した時に、CLK_JGの変化エッジは、TXOP_DTの１ＵＩのエッジに一致する。
【００６７】
ステップＳ２１では、TXOP_DTの変化エッジを期待振幅値VDD/2に一致させる調整が完了し、LOCK_STを１に固定することにより、位相シフタ４６の出力するCLK_JGの位相を固定する。固定されたCLK_JGが、調整済み検出クロックである。
ステップＳ２２では、JGDT_SEL＝０として、セレクタ４８がTXON_DTを選択するように切り替える。
【００６８】
ステップＳ２３では、DET_EN＝１にして、エッジ検出回路４４が、コンパレータ４７がラッチしたTXOP_DT(SELDT)の値DT_JGと、データ選択回路４２の出力するDT_CPとの比較を行う状態になる。
【００６９】
ステップＳ２４では、DET_EN＝０として、カウンタの値DET_CNTを初期値０に設定する。さらに、CMP_2で設定された回数のうちDT_JGとDT_CPが一致する回数をカウントし、一致の頻度（一致回数／全サンプル数）を算出し、頻度が１／２になるかを判定する。頻度が１／２でなければステップＳ２５に進み、頻度が１／２であればステップＳ２６に進む。
【００７０】
ステップＳ２５では、シーケンサ４１がエッジ検出回路４４にRG_SFT＝１を出力し、これに応じてエッジ検出回路４４がレギュレータ４３に出力するCODE_RGを１増加させる。これに応じて、レギュレータ４３は、出力するアナログ信号レベルPVOLおよびNVOLを変化させる。
【００７１】
Ｓ２４およびＳ２５を繰り返すことにより、頻度は１から減少し、１／２を通過し、通過した時に、CLK_JGの変化エッジは、TXON_DTの１ＵＩのエッジに一致する。
ステップＳ２６では、TXON_DTの変化エッジを期待振幅値VDD/2に一致させる調整が完了し、LOCK_RGを１に固定することにより、レギュレータ４３の出力するアナログ信号レベルPVOLおよびNVOLを固定する。
【００７２】
ステップＳ２７では、ST_EN＝0およびSEL_EN＝0にして、データ選択回路４２、バッファ４５および位相シフタ４６の動作を停止する。
ステップＳ２８では、調整動作を完了し、ADJ_END＝１を出力する。
【００７３】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００７４】
１１    ＰＬＬ回路
１２−１４    分周回路
１５    ＦＩＦＯ
１６−１９    マルチプレクサ
３０    マルチプレクサ
３１    プレドライバ
３２    インバータ回路
３３    トランスファーゲート（遅延回路）
３４Ａ    正相最終ドライバ
３４Ｂ    逆相最終ドライバ
３５    最終ドライバ
３６    差動間デスキュー回路
４１    シーケンサ
４２    データ選択回路
４３    レギュレータ
４４    エッジ検出回路
４６    位相シフタ
【図１】
2014127845.tif 000003
【図２】
2014127845.tif 000004
【図３】
2014127845.tif 000005
【図４】
2014127845.tif 000006
【図５】
2014127845.tif 000007
【図６】
2014127845.tif 000008
【図７】
2014127845.tif 000009
【図８】
2014127845.tif 000010
【図９】
2014127845.tif 000011
【図１０】
2014127845.tif 000012
【図１１】
2014127845.tif 000013