(57)【要約】【課題】  送信装置から受信装置にクロック信号を送ることなく、受信装置におけるクロック信号とデータ信号のずれを改善する。【解決手段】  位相調整回路３０３は、クロック信号ｃｌｋを遅延させて位相を調整し、調整されたクロック信号ｉｃｌｋを出力する。フリップフロップ３０５は、データ信号ｉｔから生成されたクロック信号ｐｄｃｌｋとクロック信号ｉｃｌｋの位相関係を検出し、制御信号ｄｏｗｎを出力する。シフトレジスタ回路３０２は、データ信号ｉｔから生成されたタイミング信号ｓｃｌｋに従って、遅延を増減する制御信号を生成し、位相調整回路３０３に出力する。フリップフロップ３０８は、クロック信号ｉｃｌｋに従ってデータ信号ｄｔｆｆｉｎをラッチする。【選択図】図３
2006005665.tif 000002
【特許請求の範囲】
【請求項１】
入力されるクロック信号を遅延させて該クロック信号の位相を調整し、調整されたクロック信号を出力する位相調整手段と、
入力されるデータ信号と前記調整されたクロック信号の位相関係を検出し、該位相関係を示す第１の制御信号を出力する位相検出手段と、
前記第１の制御信号に従って、前記位相調整手段の遅延量を増加させるか減少させるかを決定し、入力されるタイミング信号に従って、該遅延量を増減する第２の制御信号を生成して前記位相調整手段に出力する制御手段と
を備えることを特徴とするクロック調整装置。
【請求項２】
前記データ信号のエッジを用いて前記タイミング信号を生成する生成手段をさらに備えることを特徴とする請求項１記載のクロック調整装置。
【請求項３】
前記生成手段は、前記データ信号を分周して前記タイミング信号を生成することを特徴とする請求項２記載のクロック調整装置。
【請求項４】
前記生成手段は、前記データ信号のエッジをカウントして、規定回数のエッジを検出したとき前記タイミング信号のエッジを生成することを特徴とする請求項２記載のクロック調整装置。
【請求項５】
前記位相調整手段は、直列に接続された複数のインバータ手段を含み、前記入力されるクロック信号が該複数のインバータ手段を通過するとき、前記第２の制御信号の値に応じていずれかのインバータ手段から出力されるクロック信号を選択し、前記調整されたクロック信号として出力することを特徴とする請求項１または２記載のクロック調整装置。
【請求項６】
前記位相調整手段は、直列に接続された複数のインバータ手段と各インバータ手段の入力にスイッチ手段を介して接続されたキャパシタ手段を含み、前記入力されるクロック信号が該複数のインバータ手段を通過するとき、前記第２の制御信号の値に応じて各スイッチ手段を制御し、最後のインバータ手段から出力されるクロック信号を前記調整されたクロック信号として出力することを特徴とする請求項１または２記載のクロック調整装置。
【請求項７】
前記位相検出手段は、前記データ信号のエッジを利用したクロック信号に従って前記調整されたクロック信号の値をラッチし、ラッチされた値を前記第１の制御信号として出力するフリップフロップ手段を含むことを特徴とする請求項１または２記載のクロック調整装置。
【請求項８】
前記制御手段は、前記調整されたクロック信号の有効エッジとは異なる方のエッジが前記データ信号のエッジに近づくように、前記位相調整手段の遅延量を増減することを特徴とする請求項１または２記載のクロック調整装置。
【請求項９】
前記制御手段は、前記第２の制御信号が複数ビットからなるとき、各ビットの値を保持し、保持された値を前記タイミング信号に従って隣接する２つのビットのいずれかの方向にシフトさせるシフトレジスタ手段を含み、前記第１の制御信号に従って該シフトレジスタ手段のシフト方向を決定することを特徴とする請求項１または２記載のクロック調整装置。
【請求項１０】
前記制御手段は、前記第２の制御信号が複数ビットからなるとき、各ビットの値を保持するフリップフロップ手段と、前記第１の制御信号に従って、該フリップフロップ手段の出力から生成された複数ビットの信号のうちの１つを選択し、該フリップフロップ手段に出力するセレクタ手段とを含み、該フリップフロップ手段は、前記タイミング信号に従って該セレクタ手段の出力をラッチし、前記第２の制御信号として出力することを特徴とする請求項１または２記載のクロック調整装置。
【請求項１１】
入力されるクロック信号を位相調整手段により遅延させて該クロック信号の位相を調整し、
入力されるデータ信号と調整されたクロック信号の位相関係を検出し、
前記位相関係を示す第１の制御信号に従って、前記位相調整手段の遅延量を増加させるか減少させるかを決定し、
入力されるタイミング信号に従って、前記遅延量を増減する第２の制御信号を生成して前記位相調整手段に出力する
ことを特徴とするクロック調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの内部バス等における高速デジタル伝送用途の信号送受信回路に係り、受信装置のクロックを調整する装置および方法に関する。
【背景技術】
【０００２】
コンピュータのプロセッサＬＳＩ（Large Scale Integration ）とチップセットＬＳＩの間の信号送受信に見られるように、送信装置と受信装置の間でクロック信号を同期させる従来の伝送方式としては、主として以下の２つの方式がある。
（ａ）同期方式
図２４に示すように、送信装置１０２と受信装置１０３のそれぞれに対して、クロックドライバ（ＣＬＫドライバ）１０１からストローブ信号としてのクロック信号を分配し、装置間でデータ信号を伝送する。
（ｂ）ソース同期（Source Synchronous）方式
図２５に示すように、送信装置１０４から受信装置１０５に対してデータ信号と同時にクロック信号を送信し、受信装置１０５がそのクロック信号を用いてデータを受信する。
【０００３】
また、クロック信号を遅延させる位相周波数比較回路および信号処理回路も知られている（例えば、特許文献１および２参照）。
【特許文献１】特開２００２−１３５０９３号公報
【特許文献２】特開平０５−２５８４７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来の伝送方式には、次のような問題がある。
（ａ）の同期方式では、クロック信号とデータ信号が製造ばらつきや温度／電圧変動により相対的にずれやすく、高速伝送の用途には不向きである。
【０００５】
（ｂ）のソース同期方式では、製造ばらつきや温度／電圧変動に対する耐性は改善されるが、超高速伝送の用途ではクロック信号とデータ信号のずれが問題となる。また、複数ビットのデータ信号の場合は、設計時におけるビット間配線長差等のばらつきも影響するため、ビット間の等遅延設計が必要となる。
【０００６】
本発明の課題は、送信装置から受信装置にクロック信号を送ることなく、受信装置におけるクロック信号とデータ信号のずれを改善するクロック調整装置およびその方法を提供することである。
【課題を解決するための手段】
【０００７】
図１は、本発明のクロック調整装置の原理図である。図１のクロック調整装置は、位相調整手段１１１、位相検出手段１１２、および制御手段１１３を備える。
位相調整手段１１１は、入力されるクロック信号を遅延させてクロック信号の位相を調整し、調整されたクロック信号を出力する。位相検出手段１１２は、入力されるデータ信号と調整されたクロック信号の位相関係を検出し、その位相関係を示す第１の制御信号を出力する。制御手段１１３は、第１の制御信号に従って、位相調整手段１１１の遅延量を増加させるか減少させるかを決定し、入力されるタイミング信号に従って、遅延量を増減する第２の制御信号を生成して位相調整手段１１１に出力する。
【０００８】
クロック信号がクロック調整装置に入力されると、可変遅延量を有する位相調整手段１１１は、第２の制御信号により指示された遅延量をクロック信号に適用して、遅延したクロック信号を出力する。位相検出手段１１２は、送信装置から送信されたデータ信号と位相調整手段１１１から出力されたクロック信号の位相関係を検出し、第１の制御信号を出力する。制御手段１１３は、第１の制御信号の値に応じて遅延量の増減を決定し、その増減を指示する第２の制御信号をタイミング信号に同期して生成して、位相調整手段１１１に出力する。
【０００９】
位相調整手段１１１は、例えば、後述する図３の位相調整回路３０３に対応し、位相検出手段１１２は、例えば、図３のストローブ信号発生回路３０４およびフリップフロップ３０５に対応し、制御手段１１３は、例えば、図３のシフトレジスタ回路３０２に対応する。第１の制御信号は、例えば、図３のｄｏｗｎに対応し、第２の制御信号は、例えば、後述する図１４のＳ０〜Ｓ３１および図１６のＳＳ０〜ＳＳ４に対応する。
【発明の効果】
【００１０】
本発明によれば、送信装置から受信装置にクロック信号を送ることなく、受信装置側で発生したクロック信号をデータ信号に同期させることができる。これにより、製造ばらつきによるタイミングのずれだけでなく、動作中の温度／電圧変動によるタイミングのずれも補正することが可能になる。
【００１１】
また、ビット毎にクロック調整装置を設ければ、ビット間配線長差等のばらつきによるタイミングのずれを補正することも可能になる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
本実施形態においては、図２に示すように、送信装置２０１から受信装置２０２にクロック信号を送ることなく、データ信号のエッジの位相情報を利用して、受信装置２０２内で発生したクロック信号を自動的にデータ信号に同期させ、データ伝送を行う。長時間動作におけるクロック信号とデータ信号のずれを防止するため、送信装置と受信装置のクロック源は同一にしてもよい。このようなデータ同期（Data Synchronous）伝送方式によれば、送信装置２０１としては従来の回路をそのまま使用することができる。
【００１３】
図３は、図２の受信装置２０２内に設けられるデータ受信回路の構成図である。図３のデータ受信回路は、ｓｃｌｋ生成回路３０１、シフトレジスタ回路３０２、位相調整回路３０３、ストローブ信号発生回路３０４、フリップフロップ３０５、３０８、入力回路３０６、および遅延回路３０７を備える。
【００１４】
入力回路３０６は、送信装置２０１から送信されたデータ信号ｄｉｎを受け取り、データ信号ｉｔとして遅延回路３０７に出力する。遅延回路３０７により一定時間の遅延を受けたデータ信号ｄｔｆｆｉｎは、フリップフロップ３０８の端子Ｄに入力される。
【００１５】
ｓｃｌｋ生成回路３０１は、データ信号ｉｔからタイミング信号ｓｃｌｋを生成し、シフトレジスタ回路３０２に出力する。シフトレジスタ回路３０２は、フリップフロップ３０５から出力される制御信号ｄｏｗｎに応じて、位相調整回路３０３のための制御信号を生成する。位相調整回路３０３は、シフトレジスタ回路３０２からの制御信号に従ってクロック信号ｃｌｋの位相を調整し、クロック信号ｉｃｌｋを生成する。生成されたクロック信号ｉｃｌｋは、フリップフロップ３０５の端子Ｄとフリップフロップ３０８の端子ＣＫに入力される。例えば、位相調整回路３０３の調整刻みは、１００ｐｓに設定される。
【００１６】
ストローブ信号発生回路３０４は、データ信号ｉｔの立ち上がり／立ち下がり（アップ／ダウン）エッジからクロック信号ｐｄｃｌｋを生成する。生成されたクロック信号ｐｄｃｌｋは、フリップフロップ３０５の端子ＣＫに入力される。
【００１７】
フリップフロップ３０５は、クロック信号ｉｃｌｋとデータ信号ｉｔの位相関係を検出する位相検出器として動作し、クロック信号ｐｄｃｌｋに従ってクロック信号ｉｃｌｋをラッチして、制御信号ｄｏｗｎを生成する。フリップフロップ３０８は、クロック信号ｉｃｌｋに従ってデータ信号ｄｔｆｆｉｎをラッチし、データ信号ｄｏｕｔとして内部回路に出力する。
【００１８】
図４は、クロック信号ｉｃｌｋを前進させる場合のタイミングチャートである。信号ｄｏｗｎが論理“１”のとき、シフトレジスタ回路３０２および位相調整回路３０３によりクロック信号ｉｃｌｋを前進させる。これにより、クロック信号ｉｃｌｋの有効エッジとは異なる方のエッジであるダウンエッジが、データ信号ｉｔのエッジに近づく方向に調整される。
【００１９】
図５は、クロック信号ｉｃｌｋを後退させる場合のタイミングチャートである。信号ｄｏｗｎが論理“０”のとき、シフトレジスタ回路３０２および位相調整回路３０３によりクロック信号ｉｃｌｋを後退させる。これにより、クロック信号ｉｃｌｋのダウンエッジがデータ信号ｉｔのエッジに近づく方向に調整される。
【００２０】
図４および５のような位相調整の結果、図６に示すように、フリップフロップ３０８の端子ＣＫに入力されるクロック信号ｉｃｌｋのダウンエッジが、端子Ｄに入力されるデータ信号ｄｔｆｆｉｎのエッジと一致するように調整される。クロック信号ｉｃｌｋの有効エッジであるアップエッジがデータ信号ｄｔｆｆｉｎの２つのエッジの中間を打ち抜く位置に調整されるため、最も良いタイミングでフリップフロップ３０８にデータを取り込むことができる。
【００２１】
タイミングの微調整は、設計時に遅延回路３０７の遅延を調整することにより行われる。遅延回路３０７の遅延は、例えば、ストローブ信号発生回路３０４の遅延に合わせて設定される。
【００２２】
図４、５、および６では、クロック信号ｉｃｌｋのアップエッジを有効エッジとした場合について示しているが、クロック信号ｉｃｌｋのダウンエッジを有効エッジとした場合は、クロック信号ｉｃｌｋの移動方向が逆になる。
【００２３】
図７は、回路シミュレータを用いて行った、このような位相調整のシミュレーションの結果を示している。図７において、縦軸は信号の電圧レベルを表し、横軸は時間を表す。実線７０１は制御信号ｄｏｗｎの推移を示しており、時刻Ｔ（１８ｎｓ付近）において位相調整が完了している。
【００２４】
破線７０２および実線７０３は、それぞれ、調整完了前のデータ信号ｄｔｆｆｉｎおよびクロック信号ｉｃｌｋの推移を示している。この例では、クロック信号ｉｃｌｋの有効エッジであるアップエッジがデータ信号ｄｔｆｆｉｎのアップエッジまたはダウンエッジに一致している。
【００２５】
破線７０４および実線７０５は、それぞれ、調整完了後のデータ信号ｄｔｆｆｉｎおよびクロック信号ｉｃｌｋの推移を示している。位相調整により、クロック信号ｉｃｌｋのアップエッジがデータ信号ｄｔｆｆｉｎのアップエッジとダウンエッジの中間に移動していることが分かる。
【００２６】
なお、クロック信号ｉｃｌｋのダウンエッジは必ずしもデータ信号ｄｔｆｆｉｎのエッジに一致しておらず、Δｔのずれが生じている。このずれは、位相調整回路３０３の調整刻み（１００ｐｓ）、ストローブ信号発生回路３０４のチョップ幅（１５０ｐｓ）、およびセットアップタイム／ホールドタイムによるものであるが、各要素を改善することで削減可能である。
【００２７】
図３のようなデータ受信回路によれば、送信装置から受信装置にクロック信号を送ることなく、受信装置側で発生したクロック信号をデータ信号に同期させることができる。位相調整を自動的に行うには、受信装置の動作開始前にダミーのデータ信号を一定時間印加するだけでよい。また、アナログ回路を含まないため、回路規模を抑えることができ、コンピュータ内部バス等のデジタル伝送回路に容易に適用することができる。
【００２８】
次に、図８から図２３までを参照しながら、図３のデータ受信回路の構成と動作についてより具体的に説明する。
図８は、図３の位相調整回路３０３の構成例を示している。図８の位相調整回路は、位相調整ブロック８０１〜８０４とＡＮＤ回路８０５を備え、シフトレジスタ回路３０２から３２ビットの制御信号Ｓ０〜Ｓ３１を受け取ってクロック信号ｃｌｋの位相を調整する。
【００２９】
位相調整ブロック８０１は、端子ＣＫＩから入力されたクロック信号ｃｌｋを端子ＣＫＮから出力し、制御信号Ｓ０〜Ｓ７に従ってクロック信号ｃｌｋの位相を調整し、調整されたクロック信号を端子ＣＫＯから出力する。位相調整ブロック８０２〜８０４の動作についても位相調整ブロック８０１と同様である。ＡＮＤ回路８０５は、位相調整ブロック８０１〜８０４の端子ＣＫＯから出力されるクロック信号の論理積を、クロック信号ｉｃｌｋとして出力する。
【００３０】
図９は、図８の位相調整ブロック８０１の構成例を示している。図９の位相調整ブロックは、ＮＡＮＤ回路９０１〜９１２およびインバータ９２１〜９４０を備える。端子ＣＫＩから入力されたクロック信号ｃｌｋは、直列に接続されたインバータ９２５〜９４０を通過することにより遅延を受け、端子ＣＫＮから次の位相調整ブロック８０２に出力される。
【００３１】
実際には、隣接するインバータ９３６とインバータ９３７の間には、ダミーのインバータ９４１の入力端子が接続されており、このインバータ９４１の入力容量を利用してクロック信号を遅延させている。インバータ９２６〜９３５、インバータ９３８、および９３９についても同様に、ダミーのインバータが接続される。
【００３２】
ＮＡＮＤ回路９０１は、制御信号Ｓ０とインバータ９２５の出力の論理積を反転させて出力する。ＮＡＮＤ回路９０２〜９０８も同様に、制御信号Ｓ１〜Ｓ７とインバータの出力の論理積を反転させて出力する。ＮＡＮＤ回路９０１〜９０８のそれぞれに入力されるクロック信号は、隣接するＮＡＮＤ回路に入力されるクロック信号との間に一定の遅延差を有する。
【００３３】
ＮＡＮＤ回路９０９は、ＮＡＮＤ回路９０１〜９０３の出力の論理積を反転させて出力し、ＮＡＮＤ回路９１０は、ＮＡＮＤ回路９０４〜９０６の出力の論理積を反転させて出力する。ＮＡＮＤ回路９１１は、ＮＡＮＤ回路９０７および９０８の出力の論理積を反転させて出力する。インバータ９２１〜９２３は、それぞれ、ＮＡＮＤ回路９０９〜９１１の出力を反転させ、ＮＡＮＤ回路９１２は、インバータ９２１〜９２３の出力の論理積を反転させて出力する。そして、インバータ９２４は、ＮＡＮＤ回路９１２の出力を反転させて、端子ＣＫＯから出力する。
【００３４】
制御信号Ｓ０〜Ｓ７のいずれか１ビットを“１”に設定し、その他のビットを“０”に設定すれば、ＮＡＮＤ回路９０１〜９０８のうち制御信号“１”が入力されたＮＡＮＤ回路のみがクロック信号を反転して通過させ、他のＮＡＮＤ回路の出力はすべて“１”となる。したがって、通過したクロック信号が端子ＣＫＯから出力される。
【００３５】
こうして、位相調整ブロック８０１は、クロック信号ｃｌｋを制御信号Ｓ０〜Ｓ７により選択された時間だけ遅延させて、端子ＣＫＯから出力する。制御信号Ｓ７が“１”に設定されたとき、遅延は最大となる。また、制御信号Ｓ０〜Ｓ７のすべてを“０”に設定すれば、端子ＣＫＯの出力は常に“１”となる。
【００３６】
他の位相調整ブロック８０２〜８０４の構成についても位相調整ブロック８０１と同様である。ただし、制御信号Ｓ７およびＳ８により選択される遅延時間の差は、位相調整ブロック８０１の隣接する２つの制御信号（例えば、Ｓ６とＳ７）により選択される遅延時間の差と同じになるように調整される。Ｓ１５とＳ１６により選択される遅延時間の差、および、Ｓ２３とＳ２４により選択される遅延時間の差についても同様である。
【００３７】
制御信号Ｓ０〜Ｓ３１のいずれか１ビットを“１”に設定し、その他のビットを“０”に設定すれば、制御信号“１”が入力された位相調整ブロックの端子ＣＫＯからクロック信号が出力され、他の位相調整ブロックの端子ＣＫＯの出力はすべて“１”となる。したがって、その位相調整ブロックにより調整されたクロック信号が、ＡＮＤ回路８０５からクロック信号ｉｃｌｋとして出力される。
【００３８】
このように、図８の位相調整回路は、一定の遅延差を有する３２種類の遅延時間の中から特定のものを選択して、クロック信号ｃｌｋに適用することができる。
図１０は、図３の位相調整回路３０３の別の構成例で使用される位相調整ブロックを示している。図１０の位相調整ブロックは、インバータ１００１〜１０１９、バッファ１０２１〜１０２６、ＦＥＴ（Field Effect Transistor ）スイッチ１０３１〜１０７８、およびキャパシタ１０８１〜１１２８を備える。
【００３９】
端子ＣＬＫＩＮから入力されたクロック信号ｃｌｋは、直列に接続されたインバータ１００１〜１０１６を通過することにより、各インバータの入力にＦＥＴスイッチを介して接続されたキャパシタによる遅延を受け、端子ＣＬＫＯＵＴから次の位相調整ブロックに出力される。
【００４０】
この場合、３ビットの制御信号ＳＥＬ１〜ＳＥＬ３が位相調整ブロックに入力され、各制御信号は、インバータ１００１〜１０１６の入力に接続された３つのＦＥＴスイッチのうちの１つを制御する。各ＦＥＴスイッチには、制御信号とそれを反転した信号の２つの信号が入力される。
【００４１】
例えば、インバータ１００９、ＦＥＴスイッチ１０５５〜１０５７、およびキャパシタ１１０５〜１１０７からなる遅延回路を拡大すると、図１１のようになる。
信号ＰＧＡＴＥ＿ＳＥＬ１、ＰＧＡＴＥ＿ＳＥＬ２、およびＰＧＡＴＥ＿ＳＥＬ３は、それぞれ、バッファ１０２２、１０２４、および１０２６の出力に相当し、信号ＮＧＡＴＥ＿ＳＥＬ１、ＮＧＡＴＥ＿ＳＥＬ２、およびＮＧＡＴＥ＿ＳＥＬ３は、それぞれ、バッファ１０２１、１０２３、および１０２５の出力に相当する。
【００４２】
信号ＮＧＡＴＥ＿ＳＥＬ１、ＮＧＡＴＥ＿ＳＥＬ２、およびＮＧＡＴＥ＿ＳＥＬ３は、それぞれ、制御信号ＳＥＬ１、ＳＥＬ２、およびＳＥＬ３と同じ値を取り、信号ＰＧＡＴＥ＿ＳＥＬ１、ＰＧＡＴＥ＿ＳＥＬ２、およびＰＧＡＴＥ＿ＳＥＬ３は、それぞれ、制御信号ＳＥＬ１、ＳＥＬ２、およびＳＥＬ３を反転した値を取る。
【００４３】
キャパシタ１１０６および１１０７の容量は、それぞれ、キャパシタ１１０５の容量の２倍および４倍である。他のインバータの遅延回路も図１１の遅延回路と同様に構成される。
【００４４】
制御信号ＳＥＬ１〜ＳＥＬ３の値と発生する遅延の関係は、図１２のようになる。図１２の“ｏｎ”および“ｏｆｆ”はそれぞれ“１”および“０”を表す。これらの制御信号を用いれば、一定の遅延差を有する８種類の遅延時間のうちの１つを選択することができる。
【００４５】
図１３は、図１０の位相調整ブロックを用いた位相調整回路３０３の構成例を示している。図１３の位相調整回路３０３は、位相調整ブロック１３０１〜１３０４、インバータ１３１１〜１３１３、バッファ１３２１〜１３４１、ＯＲ回路１３５１〜１３５４、ＮＡＮＤ回路１３６１〜１３７３、およびＡＮＤ回路１３８１〜１３８４を備え、シフトレジスタ回路３０２から５ビットの制御信号ＳＳ０〜ＳＳ４を受け取ってクロック信号ｃｌｋの位相を調整する。
【００４６】
インバータ１３１１の入力側の端子ＣＬＫＩＮから入力されたクロック信号ｃｌｋは、直列に接続された位相調整ブロック１３０１〜１３０４を通過することにより遅延を受け、バッファ１３２２の出力側の端子ＣＬＫＯＵＴからクロック信号ｉｃｌｋとして出力される。
【００４７】
制御信号ＳＳ０〜ＳＳ４は、図８の制御信号Ｓ０〜Ｓ３１を二進数化したものに相当し、３２種類の値を表すことができる。インバータ１３１３、バッファ１３２３〜１３４１、ＯＲ回路１３５１〜１３５４、ＮＡＮＤ回路１３６１〜１３７３、およびＡＮＤ回路１３８１〜１３８４からなる回路は、制御信号ＳＳ０〜ＳＳ４から１２ビットの制御信号を生成し、位相調整ブロック１３０１〜１３０４にそれぞれ３ビットずつ出力する。
【００４８】
バッファ１３３０〜１３３２の出力は、制御信号ＳＥＬ１〜ＳＥＬ３として位相調整ブロック１３０１に入力され、バッファ１３３３〜１３３５の出力は、制御信号ＳＥＬ１〜ＳＥＬ３として位相調整ブロック１３０２に入力される。バッファ１３３６〜１３３８の出力は、制御信号ＳＥＬ１〜ＳＥＬ３として位相調整ブロック１３０３に入力され、バッファ１３３９〜１３４１の出力は、制御信号ＳＥＬ１〜ＳＥＬ３として位相調整ブロック１３０４に入力される。
【００４９】
これらの制御信号により、位相調整回路全体では、一定の遅延差を有する３２種類の遅延時間の中から特定のものを選択して、クロック信号ｃｌｋに適用することができる。
図１４は、図３のシフトレジスタ回路３０２の構成例を示している。記号ａ〜ｈが付加された信号線のうち、同じ記号が付加された信号線同士は接続されているものとする。図１４のシフトレジスタ回路は、直列に接続された３２個の基本ブロック１４０１〜１４３２を備え、３２ビットの制御信号Ｓ０〜Ｓ３１を出力する。
【００５０】
各基本ブロックは、図１５に示すような構成を有し、セレクタ１５０１およびフリップフロップ１５０２を備える。フリップフロップ１５０２は、その基本ブロックから制御信号Ｓｉ（ｉ＝０，１，．．．，３１）として出力されるデータを保持する。
【００５１】
端子Ｄ０およびＤ１には、それぞれ、アップ方向（左側）およびダウン方向（右側）に隣接する基本ブロックからの信号が入力され、セレクタ１５０１は、端子Ｄｏｗｎから入力される制御信号ｄｏｗｎの値に応じて、端子Ｄ０またはＤ１からの信号を選択して出力する。制御信号ｄｏｗｎが“１”のとき、端子Ｄ１からの入力が選択され、制御信号ｄｏｗｎが“０”のとき、端子Ｄ０からの入力が選択される。
【００５２】
端子ＣＫ１に入力されたタイミング信号ｓｃｌｋは、クロック信号としてフリップフロップ１５０２の端子ＣＫに入力される。フリップフロップ１５０２は、クロック信号ｓｃｌｋに従ってセレクタ１５０１の出力をラッチし、端子ＳＬから出力する。フリップフロップ１５０２の出力は、端子ＯＵＴから制御信号Ｓｉとして出力されるとともに、アップ方向の基本ブロックの端子Ｄ１およびダウン方向の基本ブロックの端子Ｄ０に入力される。
【００５３】
このように、各基本ブロックは、制御信号ｄｏｗｎの値に応じてアップ方向またはダウン方向から入力される信号の値をラッチして、次の基本ブロックへシフトさせる。例えば、いずれか１つの基本ブロックのデータを“１”に設定し、他の基本ブロックのデータを“０”に設定してから、シフト動作が開始される。
【００５４】
図１４のシフトレジスタ回路は、図８および図１３の位相調整回路を制御するために使用することができる。図１３の位相調整回路を制御する場合は、３２ビットの制御信号Ｓ０〜Ｓ３１を５ビットの制御信号ＳＳ０〜ＳＳ４に変換する回路が追加される。
【００５５】
図１６は、図３のシフトレジスタ回路３０２の構成例を示している。図１６のシフトレジスタ回路は、バッファ１６０１〜１６１７、ＮＡＮＤ回路１６２１〜１６２８、ＮＯＲ回路１６３１〜１６３５、ＥＯＲ回路１６４１〜１６４３、一致回路１６５１〜１６５４、インバータ１６６１〜１６６８、桁あふれ検出回路１６７１、セレクタ１６８１〜１６８５、およびＤフリップフロップ１６９１〜１６９５を備え、５ビットの制御信号ＳＳ０〜ＳＳ４を出力する。
【００５６】
この構成では、制御信号の値の増減を二進数でカウントすることにより、図１４の構成よりフリップフロップの数を削減している。制御信号ｄｏｗｎは、バッファ１６０１〜１６０３を介して桁あふれ検出回路１６７１およびセレクタ１６８１〜１６８５に入力され、タイミング信号ｓｃｌｋは、バッファ１６１１を介してフリップフロップ１６９１〜１６９５のクロック端子に入力される。
【００５７】
セレクタ１６８１〜１６８５は、制御信号ｄｏｗｎおよび桁あふれ検出回路１６７１の出力に従って、３ビットの入力信号のうちの１つを選択して出力する。これらの入力信号は、フリップフロップ１６９１〜１６９５の出力を用いて生成される。
【００５８】
インバータ１６６７は、セレクタ１６８１の出力を反転して出力し、フリップフロップ１６９１は、クロック信号ｓｃｌｋに従ってインバータ１６６７の出力をラッチする。インバータ１６６８は、フリップフロップ１６９１の出力を反転して、制御信号ＳＳ４として出力する。フリップフロップ１６９２〜１６９５は、クロック信号ｓｃｌｋに従ってそれぞれセレクタ１６８２〜１６８５の出力をラッチし、制御信号ＳＳ３〜ＳＳ０として出力する。
【００５９】
セレクタ１６８１には、バッファ１６１７、ＥＯＲ回路１６４１、および一致回路１６５１からの信号が入力され、桁あふれ検出回路１６７１の出力が“１”のとき、バッファ１６１７からの信号を選択し、現在の制御信号ＳＳ４の値を維持する（Ｓｔａｙ）。また、制御信号ｄｏｗｎが“１”のとき、ＥＯＲ回路１６４１からの信号を選択し（Ｄｏｗｎ）、制御信号ｄｏｗｎが“０”のとき、一致回路１６５１からの信号を選択する（Ｕｐ）。セレクタ１６８２〜１６８５の動作についてもセレクタ１６８１と同様である。
【００６０】
図１７は、図１６の桁あふれ検出回路１６７１の構成例を示している。図１７の桁あふれ検出回路は、ＮＡＮＤ回路１７０１および１７０２、ＮＯＲ回路１７１１〜１７１４、ＡＮＤ回路１７２１、およびインバータ１７３１を備える。入力信号Ａ０〜Ａ４は、バッファ１６１３〜１６１７の出力にそれぞれ相当し、制御信号ＳＳ０〜ＳＳ４と同じ値を取る。この回路は、入力信号Ａ０、Ａ１、およびＡ２がすべて“０”またはすべて“１”のとき、桁あふれを示す信号“１”を出力する。
【００６１】
図１６のシフトレジスタ回路は、図８および図１３の位相調整回路を制御するために使用することができる。図８の位相調整回路を制御する場合は、５ビットの制御信号ＳＳ０〜ＳＳ４を３２ビットの制御信号Ｓ０〜Ｓ３１に変換する回路が追加される。
【００６２】
図１８は、図３のストローブ信号発生回路３０４の構成例を示している。図１８のストローブ信号発生回路は、インバータ１８０１〜１８０４、バッファ１８１１〜１８１４、ＮＡＮＤ回路１８２１および１８２２、およびＡＮＤ回路１８３１を備え、信号Ｉｎとして入力されるデータ信号ｉｔのアップエッジおよびダウンエッジに合わせて信号Ｏｕｔを生成し、それをクロック信号ｐｄｃｌｋとして出力する。
【００６３】
図１９は、図１８の信号Ｉｎ、Ａ１、Ｂ１、Ｃ１、Ａ２、Ｂ２、Ｃ２、およびＯｕｔのタイミングチャートである。信号Ａ１は、信号Ｉｎを反転した信号であり、信号Ｂ１は、信号Ａ１を一定時間遅延させて反転した信号であり、信号Ｃ１は、信号Ａ１およびＢ１の論理積を反転した信号である。信号Ａ２は、信号Ａ１を反転した信号であり、信号Ｂ２は、信号Ａ２を一定時間遅延させて反転した信号であり、信号Ｃ２は、信号Ａ２およびＢ２の論理積を反転した信号である。そして、信号Ｏｕｔは、信号Ｃ１およびＣ２の論理積である。信号Ｂ１およびＢ２の遅延時間がチョップ幅に相当する。
【００６４】
こうして生成された信号Ｏｕｔは、信号Ｉｎのアップエッジおよびダウンエッジの両方に一致するダウンエッジを持っている。なお、図３のデータ受信回路では、データ信号ｉｔのアップエッジおよびダウンエッジの両方を利用して位相検出を行うためにストローブ信号発生回路３０４を設けているが、アップエッジのみを利用する場合はストローブ信号発生回路３０４を省略することができる。
【００６５】
図２０は、図３のｓｃｌｋ生成回路３０１の構成例を示している。図２０のｓｃｌｋ生成回路は、フリップフロップ２００１〜２００５およびインバータ２０１１〜２０１５を備える。フリップフロップ２００１とインバータ２０１１は１／２分周回路として機能し、データ信号ｉｔの１／２の周波数のタイミング信号ｓｃｌｋ（ｉｔ／２）を生成する。
【００６６】
同様にして、フリップフロップ２００２とインバータ２０１２は、タイミング信号ｓｃｌｋ（ｉｔ／２）から、データ信号ｉｔの１／４の周波数のタイミング信号ｓｃｌｋ（ｉｔ／４）を生成し、フリップフロップ２００３とインバータ２０１３は、タイミング信号ｓｃｌｋ（ｉｔ／４）から、データ信号ｉｔの１／８の周波数のタイミング信号ｓｃｌｋ（ｉｔ／８）を生成する。
【００６７】
フリップフロップ２００４とインバータ２０１４は、タイミング信号ｓｃｌｋ（ｉｔ／８）から、データ信号ｉｔの１／１６の周波数のタイミング信号ｓｃｌｋ（ｉｔ／１６）を生成し、フリップフロップ２００５とインバータ２０１５は、タイミング信号ｓｃｌｋ（ｉｔ／１６）から、データ信号ｉｔの１／３２の周波数のタイミング信号ｓｃｌｋ（ｉｔ／３２）を生成する。
【００６８】
そして、ｓｃｌｋ生成回路は、指示された分周比に従っていずれかのタイミング信号を選択し、タイミング信号ｓｃｌｋとして出力する。１／２〜１／３２のうちどの分周比を用いるかは、あらかじめシミュレーションにより決定してもよく、回路の動作状態に基づいて動的に決定してもよい。
【００６９】
図２１は、図３のｓｃｌｋ生成回路３０１の別の構成例を示している。図２１のｓｃｌｋ生成回路は、バッファ２１０１〜２１０９、インバータ２１１１〜２１１４、カウンタ回路２１２１、ＮＡＮＤ回路２１３１〜２１３７、ＮＯＲ回路２１４１〜２１４３、ＡＮＤ回路２１５１、セレクタ２１６１、およびＤフリップフロップ２１７１を備え、データ信号ｉｔからタイミング信号ｓｃｌｋを生成する。
【００７０】
この構成では、分周回路ではなくカウンタ回路２１２１を使用することにより、データ信号ｉｔのエッジ数をカウントし、規定回数のエッジを検出した時点でタイミング信号ｓｃｌｋのエッジを生成する。
【００７１】
カウンタ回路２１２１は、データ信号ｉｔのエッジ数をカウントし、５ビットのカウント値を出力する。セレクタ２１６１には、このカウント値を用いて生成される４ビットの信号が入力され、バッファ２１０５および２１０６を介してカウント数が設定される。セレクタ２１６１は、４ビットの入力信号のうちの１つを選択して、フリップフロップ２１７１およびインバータ２１１３に出力する。
【００７２】
インバータ２１１３は、セレクタ２１６１の出力を反転してカウンタクリア信号を生成し、カウンタ回路２１２１に出力する。フリップフロップ２１７１は、データ信号ｉｔに従ってセレクタ２１６１の出力をラッチし、バッファ２１０７に出力する。また、インバータ２１１４は、データ信号ｉｔを反転して出力する。
【００７３】
ＮＡＮＤ回路２１３７は、バッファ２１０７およびインバータ２１１４の出力の論理積を反転して出力し、バッファ２１０９は、ＮＡＮＤ回路２１３７の出力をタイミング信号ｓｃｌｋとして出力する。
【００７４】
図２２は、図２１のカウンタ回路２１２１の構成例を示している。図２２のカウンタ回路は、ＮＡＮＤ回路２２０１〜２２０４、ＮＯＲ回路２２１１、インバータ２２２１、ＥＯＲ回路２２３１、一致回路２２４１〜２２４３、２入力ＡＮＤ回路２２５１〜２２５５、フリップフロップ２２６１〜２２６５、およびバッファ２２７１〜２２９１を備える。
【００７５】
データ信号ｉｔは、バッファ２２８４を介してフリップフロップ２２６１〜２２６５のクロック端子に入力され、カウンタクリア信号は、バッファ２２８１を介してＡＮＤ回路２２５１〜２２５５の一方の入力端子に入力される。ＡＮＤ回路２２５１〜２２５５の他方の入力端子には、フリップフロップ２２６１〜２２６５の出力を用いて生成された信号が入力される。
【００７６】
フリップフロップ２２６１〜２２６５は、データ信号ｉｔに従ってそれぞれＡＮＤ回路２２５１〜２２５５の出力をラッチし、バッファ２２７１および２２７３〜２２７６を介してカウンタ値として出力する。
【００７７】
図２３は、図８の位相調整回路、図１４のシフトレジスタ回路、および図２０のｓｃｌｋ生成回路を用いた場合の制御信号Ｓ１４〜Ｓ１８の変化を示すタイミングチャートである。タイミング信号ｓｃｌｋとしては、ｓｃｌｋ（ｉｔ／２）を用いている。また、理解を容易にするため、制御信号Ｓ１６〜Ｓ１８の間で信号値“１”が移動することによるクロック信号ｉｃｌｋの位相ずれは、実際の回路より大きく設定されている。
【００７８】
時刻ｔ１〜ｔ１４はデータ信号ｉｔのアップエッジ／ダウンエッジに対応し、制御信号ｄｏｗｎは、これらの各時刻において毎回更新される。時刻ｔ２において、タイミング信号ｓｃｌｋのアップエッジにより、シフトレジスタ回路３０２がｄｏｗｎ＝“０”を認識し、制御信号Ｓ１６の信号値“１”を制御信号Ｓ１７に移動させる。これにより、クロック信号ｉｃｌｋが後退する。
【００７９】
その後、時刻ｔ７において、タイミング信号ｓｃｌｋのアップエッジにより、シフトレジスタ回路３０２がｄｏｗｎ＝“０”を認識し、制御信号Ｓ１７の信号値“１”を制御信号Ｓ１８に移動させる。これにより、クロック信号ｉｃｌｋがさらに後退する。
【００８０】
その後、時刻ｔ１１において、タイミング信号ｓｃｌｋのアップエッジにより、シフトレジスタ回路３０２がｄｏｗｎ＝“１”を認識し、制御信号Ｓ１８の信号値“１”を制御信号Ｓ１７に移動させる。これにより、クロック信号ｉｃｌｋが前進する。この時点で、データ信号ｉｔのエッジとクロック信号ｉｃｌｋのダウンエッジがほぼ一致し、クロック信号ｉｃｌｋのアップエッジによりデータ信号ｉｔを受信することが可能になる。
【００８１】
本発明は、ＬＳＩ間のデータ伝送のみならず、送信装置からデータを受信する受信装置におけるクロック信号を調整するために、広く適用することができる。
（付記１）  入力されるクロック信号を遅延させて該クロック信号の位相を調整し、調整されたクロック信号を出力する位相調整手段と、
入力されるデータ信号と前記調整されたクロック信号の位相関係を検出し、該位相関係を示す第１の制御信号を出力する位相検出手段と、
前記第１の制御信号に従って、前記位相調整手段の遅延量を増加させるか減少させるかを決定し、入力されるタイミング信号に従って、該遅延量を増減する第２の制御信号を生成して前記位相調整手段に出力する制御手段と
を備えることを特徴とするクロック調整装置。
【００８２】
（付記２）  前記データ信号のエッジを用いて前記タイミング信号を生成する生成手段をさらに備えることを特徴とする付記１記載のクロック調整装置。
（付記３）  前記生成手段は、前記データ信号を分周して前記タイミング信号を生成することを特徴とする付記２記載のクロック調整装置。
【００８３】
（付記４）  前記生成手段は、前記データ信号のエッジをカウントして、規定回数のエッジを検出したとき前記タイミング信号のエッジを生成することを特徴とする付記２記載のクロック調整装置。
【００８４】
（付記５）  前記調整されたクロック信号に従って前記データ信号の値をラッチするラッチ手段をさらに備えることを特徴とする付記１または２記載のクロック調整装置。
（付記６）  前記位相調整手段は、直列に接続された複数のインバータ手段を含み、前記入力されるクロック信号が該複数のインバータ手段を通過するとき、前記第２の制御信号の値に応じていずれかのインバータ手段から出力されるクロック信号を選択し、前記調整されたクロック信号として出力することを特徴とする付記１または２記載のクロック調整装置。
【００８５】
（付記７）  前記位相調整手段は、直列に接続された複数のインバータ手段と各インバータ手段の入力にスイッチ手段を介して接続されたキャパシタ手段を含み、前記入力されるクロック信号が該複数のインバータ手段を通過するとき、前記第２の制御信号の値に応じて各スイッチ手段を制御し、最後のインバータ手段から出力されるクロック信号を前記調整されたクロック信号として出力することを特徴とする付記１または２記載のクロック調整装置。
【００８６】
（付記８）  前記位相検出手段は、前記データ信号のエッジを利用したクロック信号に従って前記調整されたクロック信号の値をラッチし、ラッチされた値を前記第１の制御信号として出力するフリップフロップ手段を含むことを特徴とする付記１または２記載のクロック調整装置。
【００８７】
（付記９）  前記位相検出手段は、前記データ信号のアップエッジおよびダウンエッジの両方を用いて、前記データ信号のエッジを利用したクロック信号を生成する信号発生手段を含むことを特徴とする付記６記載のクロック調整装置。
【００８８】
（付記１０）  前記制御手段は、前記調整されたクロック信号の有効エッジとは異なる方のエッジが前記データ信号のエッジに近づくように、前記位相調整手段の遅延量を増減することを特徴とする付記１または２記載のクロック調整装置。
【００８９】
（付記１１）  前記制御手段は、前記第２の制御信号が複数ビットからなるとき、各ビットの値を保持し、保持された値を前記タイミング信号に従って隣接する２つのビットのいずれかの方向にシフトさせるシフトレジスタ手段を含み、前記第１の制御信号に従って該シフトレジスタ手段のシフト方向を決定することを特徴とする付記１または２記載のクロック調整装置。
【００９０】
（付記１２）  前記制御手段は、前記第２の制御信号が複数ビットからなるとき、各ビットの値を保持するフリップフロップ手段と、前記第１の制御信号に従って、該フリップフロップ手段の出力から生成された複数ビットの信号のうちの１つを選択し、該フリップフロップ手段に出力するセレクタ手段とを含み、該フリップフロップ手段は、前記タイミング信号に従って該セレクタ手段の出力をラッチし、前記第２の制御信号として出力することを特徴とする付記１または２記載のクロック調整装置。
【００９１】
（付記１３）  入力されるクロック信号を位相調整手段により遅延させて該クロック信号の位相を調整し、
入力されるデータ信号と調整されたクロック信号の位相関係を検出し、
前記位相関係を示す第１の制御信号に従って、前記位相調整手段の遅延量を増加させるか減少させるかを決定し、
入力されるタイミング信号に従って、前記遅延量を増減する第２の制御信号を生成して前記位相調整手段に出力する
ことを特徴とするクロック調整方法。
【図面の簡単な説明】
【００９２】
【図１】本発明のクロック調整装置の原理図である。
【図２】データ同期伝送方式を示す図である。
【図３】データ受信回路の構成図である。
【図４】ｉｃｌｋ前進のタイミングチャートである。
【図５】ｉｃｌｋ後退のタイミングチャートである。
【図６】ｉｃｌｋとｄｔｆｆｉｎのタイミングチャートである。
【図７】シミュレーション結果を示す図である。
【図８】第１の位相調整回路の構成図である。
【図９】第１の位相調整ブロックの構成図である。
【図１０】第２の位相調整ブロックの構成図である。
【図１１】遅延回路を示す図である。
【図１２】制御信号を示す図である。
【図１３】第２の位相調整回路の構成図である。
【図１４】第１のシフトレジスタ回路の構成図である。
【図１５】基本ブロックの構成図である。
【図１６】第２のシフトレジスタ回路の構成図である。
【図１７】桁あふれ検出回路の構成図である。
【図１８】ストローブ信号発生回路の構成図である。
【図１９】ストローブ信号発生回路内の信号のタイミングチャートである。
【図２０】第１のｓｃｌｋ生成回路の構成図である。
【図２１】第２のｓｃｌｋ生成回路の構成図である。
【図２２】カウンタ回路の構成図である。
【図２３】位相調整時の制御信号のタイミングチャートである。
【図２４】同期伝送方式を示す図である。
【図２５】ソース同期伝送方式を示す図である。
【符号の説明】
【００９３】
１０１  ＣＬＫドライバ
１０２、１０４、２０１  送信装置
１０３、１０５、２０２  受信装置
１１１  位相調整手段
１１２  位相検出手段
１１３  制御手段
３０１  ｓｃｌｋ生成回路
３０２  シフトレジスタ回路
３０３  位相調整回路
３０４  ストローブ信号発生回路
３０５、３０８、１５０２、１６９１〜１６９５、２００１〜２００５、２２６１〜２２６５  フリップフロップ
３０６  入力回路
３０７  遅延回路
７０１、７０３、７０５  実線
７０２、７０４  破線
８０１〜８０４、１３０１〜１３０４  位相調整ブロック
８０５、１３８１〜１３８４、１７２１、１８３１、２１５１、２２５１〜２２５５  ＡＮＤ回路
９０１〜９１２、１３６１〜１３７３、１６２１〜１６２８、１７０１、１７０２、１８２１、１８２２、２１３１〜２１３７、２２０１〜２２０４  ＮＡＮＤ回路
９２１〜９４１、１００１〜１０１９、１３１１〜１３１３、１６６１〜１６６８、１７３１、１８０１〜１８０４、２０１１〜２０１５、２１１１〜２１１４、２２２１  インバータ
１０２１〜１０２６、１３２１〜１３４１、１６０１〜１６１７、１８１１〜１８１４、２１０１〜２１０９、２２７１〜２２９１  バッファ
１０３１〜１０７８  ＦＥＴスイッチ
１０８１〜１１２８  キャパシタ
１３５１〜１３５４  ＯＲ回路
１４０１〜１４３２  基本ブロック
１５０１、１６８１〜１６８５、２１６１、２１７１  セレクタ
１６３１〜１６３５、１７１１〜１７１４、２１４１〜２１４３、２２１１  ＮＯＲ回路
１６４１〜１６４３、２２３１  ＥＯＲ回路
１６５１〜１６５４、２２４１〜２２４３  一致回路
１６７１  桁あふれ検出回路
２１２１  カウンタ回路
【図１】
2006005665.tif 000003
【図２】
2006005665.tif 000004
【図３】
2006005665.tif 000005
【図４】
2006005665.tif 000006
【図５】
2006005665.tif 000007
【図６】
2006005665.tif 000008
【図７】
2006005665.tif 000009
【図８】
2006005665.tif 000010
【図９】
2006005665.tif 000011
【図１０】
2006005665.tif 000012
【図１１】
2006005665.tif 000013
【図１２】
2006005665.tif 000014
【図１３】
2006005665.tif 000015
【図１４】
2006005665.tif 000016
【図１５】
2006005665.tif 000017
【図１６】
2006005665.tif 000018
【図１７】
2006005665.tif 000019
【図１８】
2006005665.tif 000020
【図１９】
2006005665.tif 000021
【図２０】
2006005665.tif 000022
【図２１】
2006005665.tif 000023
【図２２】
2006005665.tif 000024
【図２３】
2006005665.tif 000025
【図２４】
2006005665.tif 000026
【図２５】
2006005665.tif 000027