(57)【特許請求の範囲】
【請求項１】
リカバリクロックと入力信号との位相差を検出して、前記位相差を示す位相差信号を出力する位相検出器と、
前記位相差信号に基づき位相制御信号を生成するループフィルタと、
前記位相制御信号に基づき前記リカバリクロックの位相を制御する位相シフト器と、を有し、
前記ループフィルタは、
入力側に前記位相差信号が入力され、前記リカバリクロックの位相を前記入力信号の位相に合わせる速度を設定するループゲインを決定し、第１の出力値を出力側から出力する第１のパスと、
前記第１のパス上において前記入力側に設けられ、前記位相差信号が一方の入力として入力される減算器と、
前記位相差信号が入力され、前記リカバリクロックの周波数を前記入力信号の周波数に合わせる速度を設定する周波数追従ゲインを決定する第２のパスと、
前記第１のパス上の前記減算器の他方の入力に出力を与えることで、前記第１のパスの前記出力側から前記入力側にネガティブフィードバックを与え、前記ループフィルタの遅延量に起因する前記位相検出器の出力の位相遅れ補償する補償器と、を有し、
前記第２のパスには、前記ネガティブフィードバックが与えられないクロックデータリカバリ回路。
【請求項２】
前記補償器は、現時点からｎサイクル前までの前記第１のパスの出力値を累積した第１の累積値を出力し、
前記第１のパスは、前記位相差と前記第１の累積値との差を第１の増幅率で増幅した値を出力し、
前記第２のパスは、前記位相差を第２の増幅率で増幅した値を累積した第２の累積値を出力し、
前記ループフィルタは、前記第１のパスの出力値と前記第２の累積値とを加算した値を累積した値を前記位相制御信号として出力する請求項１に記載のクロックデータリカバリ回路。
【請求項３】
前記位相検出器は、前記位相差信号として、位相進みを表し、且つ、２値の信号となる第１の信号と、位相遅れを表し、且つ、２値の信号となる第２の信号と、を出力する請求項１に記載のクロックデータリカバリ回路。
【請求項４】
前記補償器は、前記第１のパスの出力値を予め設定した係数で除算する除算器と、前記除算器の出力値を累積する第１の累積器と、第１の値を最大値として前記第１の累積器の出力値を累積した累積値を前記減算器の前記他方の入力に与える第１のカウンタと、を有し、
前記第２のパスは、第２の値を最大値として前記位相差を累積する第２のカウンタと、第３の値を最大値として前記第２のカウンタの出力値を累積する第３のカウンタと、を有し、
前記ループフィルタは、前記第３のカウンタの出力値と前記減算器の出力値とを加算する加算器と、第４の値を最大値として前記加算器の出力値を累積して累積値を前記位相制御信号として出力する第４のカウンタと、を有する請求項３に記載のクロックデータリカバリ回路。
【請求項５】
前記ループフィルタは、前記位相差を所定の増幅率で増幅した増幅位相差と、前記位相差と、のいずれか一方を選択し、選択した値を前記減算器及び前記第２のカウンタの両方に与える第１のセレクタをさらに有し、
前記補償器は、前記補償器を無効化する無効値と前記第１のパスの出力値とのいずれか一方を選択して前記除算器に出力する第２のセレクタをさらに有し、
前記クロックデータリカバリ回路は、前記クロックデータリカバリ回路が非ロック状態である場合には、前記第１のセレクタに前記増幅位相差を選択させ、かつ、前記第２のセレクタに前記第１のパスの出力値を選択させる制御回路をさらに有する請求項４に記載のクロックデータリカバリ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はクロックデータリカバリ回路に関し、例えばデータにクロックが重畳されている伝送路上の信号を受信し、クロックとデータを分離するクロックデータリカバリ回路に関する。
【背景技術】
【０００２】
ＰＣＩ  ｅｘｐｒｅｓｓ（登録商標）等のシリアルデータ通信では、伝送信号としてデータにクロックが重畳された信号を用いる。そのため、シリアルデータ通信では、受信側にて受信信号からクロックとデータとを分離するためにクロックデータリカバリ回路が用いられる。このクロックデータリカバリ回路は、入力信号とクロックとの位相差を検出すると共に入力信号からデータを抽出する位相検出器と、位相検出器で検出された位相差から位相制御信号を生成するループフィルタと、位相制御信号に基づきクロックの位相を制御する位相シフト器を備える。
ここで、近年、シリアルデータ通信の通信速度の高速化に伴い、クロックデータリカバリ回路のループフィルタのレーテンシに起因する位相検出器の出力の位相遅れが問題となってきている。そこで、ループフィルタのレーテンシを補償する技術の一例が特許文献１に開示されている。
【０００３】
特許文献１では、ＰＬＬ回路に搭載されるループフィルタの例が開示されている。特許文献１に記載のＰＬＬ回路では、スミス法に着想を得たレーテンシ補償回路を有する。より具体的には、特許文献１に記載のループフィルタ回路は、位相変化に対応する位相信号及びサンプリング・クロックの実際の位相サンプリングに対応する実際の位相信号を入力する入力回路と、位相信号及び実際の位相信号を位相更新信号につなぐフィルタ回路と、位相更新信号の一部分をフィルタ回路にフィードバックすることによってループ待ち時間を除去するフィードバック回路と、を備えている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２０２７２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載の技術では、高精度な定数設定が必要になるため回路規模が大きくなる。そして、回路規模が大きくなると回路内の遅延量が大きくなる。しかしながら、クロックデータリカバリ回路は、間欠的にデータが送信される特徴があるため、遅延量が大きくなると正しくデータを受信できない虞がある。つまり、ＰＬＬ回路に比べてクロックデータリカバリ回路には高い応答性が必要になるため、特許文献１に記載のループフィルタは、クロックデータリカバリ回路に適用できない問題があった。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、クロックデータリカバリ回路は、ループフィルタが、リカバリクロックの位相を入力信号の位相に合わせる速度を設定するループゲインを決定する第１のパスと、リカバリクロックの周波数を入力信号の周波数に合わせる速度を設定する周波数追従ゲインを決定する第２のパスと、第１のパスの出力側から入力側にネガティブフィードバックを与え、ループフィルタの遅延量に起因する位相検出器の出力の位相遅れ補償する補償器と、を有する。
【発明の効果】
【０００８】
前記一実施の形態によれば、クロックデータリカバリ回路は、高い応答性を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかるクロックデータリカバリ回路の具体的なブロック図である。
【図２】実施の形態１にかかる位相検出器のブロック図の第１の例である。
【図３】実施の形態１にかかる位相検出器のブロック図の第２の例である。
【図４】実施の形態１にかかるクロックデータリカバリ回路のブロック図である。
【図５】第１の比較例にかかるクロックデータリカバリ回路のブロック図である。
【図６】第２の比較例にかかるクロックデータリカバリ回路のブロック図である。
【図７】実施の形態１にかかるクロックデータリカバリ回路と第１の比較例にかかるクロックデータリカバリ回路の位相差の収束の違いを説明するグラフである。
【図８】実施の形態１にかかるクロックデータリカバリ回路と第１の比較例にかかるクロックデータリカバリ回路のロックタイムの違いを説明するグラフである。
【図９】実施の形態２にかかるクロックデータリカバリ回路の具体的なブロック図である。
【図１０】実施の形態３にかかるクロックデータリカバリ回路のブロック図である。
【図１１】実施の形態３にかかるクロックデータリカバリ回路の具体的なブロック図である。
【発明を実施するための形態】
【００１０】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１１】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１２】
以下の説明では、実施の形態１にかかるクロックデータリカバリ回路１を回路（所定の素子を備えるハードウェア）により実現した例について説明する。図１に実施の形態１にかかるクロックデータリカバリ回路１の具体的なブロック図を示す。
【００１３】
図１に示すように、実施の形態１にかかるクロックデータリカバリ回路１は、ループフィルタ１０、位相検出器１１、位相シフト器１２、クロック源１３を有する。また、位相検出器１１には、入力信号としてデータにクロックが重畳された伝送信号が入力される。ループフィルタ１０は、位相検出器１１のリカバリデータとリカバリクロックとの位相差信号ｅに応じて位相誤差の大きさを示す位相制御信号を出力する。
【００１４】
位相検出器１１は、リカバリクロックと入力信号との位相差を検出して、位相差を示す位相差信号ｅを出力する。この位相差信号ｅは、少なくとも入力信号に対するリカバリクロックの位相の進みと遅れとの違いを示す。詳しくは、後述するが、位相検出器１１は、位相が進んでいるか、遅れているか、のみを情報として出力するＢａｎｇ−Ｂａｎｇ  Ｐａｓｅ  Ｄｅｔｅｃｔｏｒ等を用いる。実施の形態１にかかる位相検出器１１は、位相差信号ｅとして、位相進みを表し、且つ、２値の信号となる第１の信号と、位相遅れを表し、且つ、２値の信号となる第２の信号と、を出力する。
【００１５】
ループフィルタ１０は、位相検出器で検出された位相差（例えば、位相差信号ｅにより示される値）に基づき位相制御信号を生成する。そして、位相シフト器１２は、位相制御信号に基づきリカバリクロックの位相を制御する。より具体的には、位相シフト器１２はクロック源１３からクロックを受信し、受信したクロックの位相を位相制御信号に基づき制御する。なお、図１に示す例では、位相シフト器１２とクロック源１３とを別に設けたが、クロック源が生成するクロックの位相を直接制御するＰＬＬ回路を位相シフト器１２及びクロック源１３として利用することもできる。
【００１６】
ここで、ループフィルタ１０について詳細に説明する。図１に示すように、ループフィルタ１０は、減算器２１、第１の増幅器（例えば、増幅器２２）、第２の増幅器（例えば増幅器２３）、第２の累積器（例えば、累積器２４）、第３の累積器（例えば、累積器２６）、加算器２５、補償器３０を有する。また、補償器３０は、遅延回路３１１〜３１ｎ（ｎは素子の個数を表す整数、以下同じ）、加算器３２１〜３２ｎ、補償器内増幅器（例えば、増幅器３３）、遅延回路３４を有する。第１の累積器は、遅延回路３１１〜３１ｎ及び加算器３２１〜３２ｎにより構成されるものであり、詳しくは後述する。
【００１７】
補償器３０は、後述する第１のパスの出力側から入力側にネガティブフィードバックを与え、ループフィルタの遅延量に起因する位相検出器の出力の位相遅れを補償する。より具体的には、補償器３０は、第１のパス上の減算器２１の他方の入力に出力を与えることで、第１のパスの出力側から入力側にネガティブフィードバックを与え、ループフィルタの遅延量に起因する前記位相検出器の出力の位相遅れ補償する。補償器３０は、現時点からｎサイクル前までの第１のパスの出力値を累積した第１の累積値を出力する。なお、補償器３０が出力する第１の累積値は、現時点からｎサイクル前までの第１のパスの出力値を累積した値を増幅率ｋｃにより増幅した値である。また、補償器３０において第１のパスの出力値を累積するサイクル数は、クロックデータリカバリ回路１のループ遅延時間に応じた大きさとする。
【００１８】
補償器３０は、遅延回路３１１〜３１ｎによりｎサイクル前までの第１のパスの出力値を保持し、加算器３２１〜３２ｎにより現時点からｎサイクル前までの第１のパスの出力値を累積した仮累積値を生成する。つまり、補償器３０では、そして、補償器３０は、臓腑機内増幅器３３により、加算器３２１から出力された仮累積値を増幅率ｋｃで増幅することで第１の累積値を生成する。つまり、補償器３０では、遅延回路３１１〜３１ｎ及び加算器３２１〜３２ｎにより第１の累積器を構成する。そして、増幅器３３から出力された第１の累積値を遅延回路３４に保持し、遅延回路３４で保持された第１の累積値を減算器２１に出力する。
【００１９】
ループフィルタ１０では、減算器２１、増幅器２２により第１のパスを構成する。第１のパスは、入力側に前記位相差信号が入力され、リカバリクロックの位相を入力信号の位相に合わせる速度を設定するループゲインを決定し、第１の出力値を出力側から出力する経路である。減算器２１は、第１のパス上において入力側に設けられ、位相差信号ｅが一方の入力として入力される。具体的には、減算器２１は、位相差信号ｅで示される位相差から補償器３０が出力する第１の累積値を引いた値ｆを出力する。増幅器２２は増幅率ｋｉで値ｆを増幅して加算器２５に出力する。なお、ループゲインは、増幅器２２の増幅率ｋｉと後述する補償器３０内の増幅器３３の増幅率ｋｃとの積により設定される。
【００２０】
また、ループフィルタ１０では、増幅器２３、累積器２４により第２のパスを構成する。第２のパスは、位相差信号ｅが入力され、リカバリクロックの周波数を入力信号の周波数に合わせる速度を設定する周波数追従ゲインを決定する。増幅器２３は、位相差信号ｅで示される位相差を増幅率ｋｑで増幅して出力する。累積器２４は、増幅器２３が出力する値を累積して第２の累積値を出力する。
【００２１】
そして、ループフィルタ１０では、加算器２５により増幅器２２の出力値と累積器２４が出力した第１の累積値とを加算する。加算器２５が出力する値は、累積器２６により累積される。ループフィルタ１０は、累積器２６で累積された値を位相制御信号として出力する。
【００２２】
つまり、実施の形態１にかかるクロックデータリカバリ回路１は、リカバリクロックと入力信号との位相差を検出して、位相差を示す位相差信号ｅを出力する位相検出器１１と、位相差信号ｅに基づき位相制御信号を生成するループフィルタ１０と、位相制御信号に基づきリカバリクロックの位相を制御する位相シフト器１２と、を有する。そして、ループフィルタ１０は、パス上に一方の入力に位相差信号ｅが入力される第１の減算器（例えば、減算器２１）を少なくとも有する第１のパスと、位相差信号ｅが入力され、第１のパスと並列に設けられる第２のパスと、第１のパスが出力する第１の出力値と第２のパスが出力する第２の出力値とを加算して出力する加算器２５と、第１の出力値が出力される第１のパスの出力ノードと減算器２１の他方の入力との間に接続され、第１のパスに対するフィードバックパスを形成する補償器３０と、を有する。
【００２３】
また、補償器３０は、第１のパスから出力される第１の出力値を累積して、仮累積値を出力する第１の累積器（例えば、遅延回路３１１〜３１ｎ及び加算器３２１〜３２ｎ）と、仮累積値を増幅して第１の出力値を生成する増幅器３３と、第１の累積値を保持する遅延回路３４と、を有する。第１のパスは、減算器２１の後段に設けられ、第１の出力値を出力する増幅器２２を有する。第２のパスは、位相差信号ｅを増幅する増幅器２３と、増幅器２３の出力値を累積して第２の出力値を出力する累積器２４と、を有する。
【００２４】
なお、ループフィルタ１０は、ＤＳＰ（Digital Signal Processor）による数値演算処理、各機能に応じた回路素子を用いたハードウェア等の様々な形式で実装することができる。
【００２５】
ここで、実施の形態１にかかる位相検出器１１について詳しく説明する。上述したように、位相検出器１１は、位相差信号ｅとして、位相進みを表し、且つ、２値の信号となる第１の信号と、位相遅れを表し、且つ、２値の信号となる第２の信号と、を出力する。そこで、図２に実施の形態１にかかる位相検出器１１ａのブロック図の第１の例を示す。また、図３に実施の形態１にかかる位相検出器１１ｂのブロック図の第２の例を示す。
【００２６】
図２に示す位相検出器１１ａは、１．５ＧＨｚの２相クロックで１．５Ｇｂｐｓのデータを受信する場合の構成の一例である。図２に示す位相検出器１１ａは、第１のフリップフロップ２１１、第２のフリップフロップ２１１、第３のフリップフロップ２１３、ラッチ２１４、第１のＸＯＲ回路２１５、第２のＸＯＲ回路２１６、第１のデマルチプレクサ２１７、第２のデマルチプレクサ２１８、第１のＯＲ回路２１９、第２のＯＲ回路２２０、第１のインバータ２２１、第２のインバータ２２２、第１のＡＮＤ回路２２３、第２のＡＮＤ回路２２４を有する。また、位相検出器１１ａは、図１で示したリカバリクロックをクロックＣＬＫ１とし、リカバリクロックとは逆相となるクロック信号をクロックＣＬＫ２として動作する。
【００２７】
第１のフリップフロップ２１１は、入力信号をクロックＣＬＫ１に同期して保持する。第２のフリップフロップ２１２は、入力信号をクロックＣＬＫ２に同期して保持する。第３のフリップフロップ２１３は、第１のフリップフロップ２１１の出力をクロックＣＬＫ１に同期して保持する。ラッチ２１４は、クロックＣＬＫ１がハイレベルである期間に入力される第２のフリップフロップ２１２をスルーし、クロックＣＬＫ１がロウレベルの期間はクロックＣＬＫ１がハイレベルからロウレベルに切り替わったタイミングの出力状態を維持する。第１のＸＯＲ回路２１５は、第１のフリップフロップ２１１の出力とラッチ２１４の出力との排他的論理和を出力する。第２のＸＯＲ回路２１６は、第３のフリップフロップ２１３の出力とラッチ２１４の出力との排他的論理和を出力する。第１のデマルチプレクサ２１７は、第１のＸＯＲ回路２１５が出力するシリアルデータをパラレルデータに変換して出力する。第２のデマルチプレクサ２１８は、第２のＸＯＲ回路２１６が出力するシリアルデータをパラレルデータに変換して出力する。第１のＯＲ回路２１９は、第１のデマルチプレクサ２１７の出力の論理和を出力する。第２のＯＲ回路２２０は、第２のデマルチプレクサ２１８の出力の論理を出力する。第１のインバータ２２１は、第１のＯＲ回路２１９の出力の反転値を出力する。第２のインバータ２２２は、第２のＯＲ回路２２０の出力の反転値を出力する。第１のＡＮＤ回路２２３は、第１のＯＲ回路２１９の出力と第２のインバータ２２２の出力との論理積を出力する。第１のＡＮＤ回路２２３の出力は、第１の信号（例えば、位相が進んでいる状態を表し、位相を遅らせることを指示するＤＯＷＮ１信号）となる。第２のＡＮＤ回路２２４は、第１のインバータ２２１の出力と第２のＯＲ回路２２０の出力との論理和を出力する。第２のＡＮＤ回路２２４の出力は、第２の信号（例えば、位相が遅れている状態を表し、位相を進めることを指示するＵＰ１信号）となる。なお、位相検出器１１ａは、第１のインバータ２２１の出力をリカバリデータとして出力する。
【００２８】
位相検出器１１ａは、入力信号の変化タイミングがＣＬＫ１の立ち上がりとＣＬＫ２の立ち上がりの間にあれば、ＤＯＷＮ１信号を論理０（ｌｏｗレベル）とし、ＵＰ１信号を論理１（ｈｉｇｈレベル）とする。また、位相検出器１１ｂは入力信号の変化タイミングがＣＬＫ２の立ち上がりとＣＬＫ１の立ち上がりの間にあれば、ＤＯＷＮ１信号を論理１ （ｈｉｇｈ）とし、ＵＰ１信号を論理０（ｌｏｗ）とする。
【００２９】
図３に示す位相検出器１１ｂは、１．５ＧＨｚの４相クロックで３Ｇｂｐｓのデータを受信する場合の構成の一例である。図３に示す位相検出器１１ｂは、フリップフロップ２３１〜２３６、ラッチ２３７、２３８、デコーダ２３９を有する。また、位相検出器１１ｂは、図１で示したリカバリクロックをクロックＣＬＫ１とし、リカバリクロックとの位相差が９０度、１８０度、２７０度となるクロック信号をクロックＣＬＫ２〜ＣＬＫ４として動作する。
【００３０】
フリップフロップ２３１は、入力信号をクロックＣＬＫ１に同期して保持する。フリップフロップ２３２は、入力信号をクロックＣＬＫ２に同期して保持する。フリップフロップ２３３は、入力信号をクロックＣＬＫ３に同期して保持する。フリップフロップ２３４は、入力信号をクロックＣＬＫ４に同期して保持する。フリップフロップ２３５は、フリップフロップ２３１の出力をクロックＣＬＫ１に同期して保持する。フリップフロップ２３６は、フリップフロップ２３２の出力をクロックＣＬＫ１に同期して保持する。ラッチ２３７は、フリップフロップ２３３の出力をクロックＣＬＫ１でサンプリングする。ラッチ２３８は、フリップフロップ２３４の出力をクロックＣＬＫ１でサンプリングする。デコーダ２３９は、フリップフロップ２３５、２３６、ラッチ２３７、２３８の出力をデコードして第１の信号（例えば、ＤＯＷＮ１信号）及び第２の信号（例えば、ＵＰ１）信号を出力する。なお、位相検出器１１ｂは、フリップフロップ２３１の出力とラッチ２３７の出力が差動のリカバリデータとして出力する。
【００３１】
ここで、デコーダ２３９の動作について説明する。位相検出器１１ｂでは、入力信号を４つのフリップフロップ２３１〜２３４にて９０度ずつ位相がずれた４相クロックＣＬＫ１〜ＣＬＫ４の立ち上がりエッジでサンプルし、それぞれのサンプル結果を、クロックＣＬＫ１で、フリップフロップ２３５、２３６、ラッチ２３７、２３８がサンプルする。そして、デコーダ２３９は、隣り合うサンプル信号が互いに異なる場合、当該クロックを入力信号の遷移タイミングとし、入力データの位相の遅れ、進みを判断することで、ＤＯＷＮ１信号及びＵＰ１信号を出力する。
【００３２】
続いて、実施の形態１にかかるクロックデータリカバリ回路１の動作について説明する。実施の形態１にかかるクロックデータリカバリ回路１は、位相検出器１１で入力信号からリカバリデータを抽出すると共に入力信号とリカバリクロックとの位相差を検出する。そして、実施の形態１にかかるクロックデータリカバリ回路１では、ループフィルタ１０により位相検出器１１で検出された位相差から位相差量を示す位相制御信号を生成する。また、実施の形態１にかかるクロックデータリカバリ回路１は、位相シフト器１２がリカバリクロックの位相が入力信号の位相に合うように、位相シフト器１２が当該位相差制御信号によりリカバリクロックの位相を制御する。
【００３３】
ここで、実施の形態１にかかるクロックデータリカバリ回路１では、リカバリクロックの位相と入力信号の位相とが一定の位相差の範囲内で安定するロック状態となるまでのロック時間の長さが問題となる。実施の形態１にかかるクロックデータリカバリ回路１では、ループフィルタ１０を備えることでロック時間を短くする。以下では、ループフィルタ１０の伝達特性を用いてループフィルタ１０について説明する。そこで、図１に示した具体的なブロック図の処理を簡略化した実施の形態１にかかるクロックデータリカバリ回路１のブロック図を図４に示す。
【００３４】
図４に示すように、実施の形態１にかかるクロックデータリカバリ回路１の処理は、ループフィルタ処理部１１０、減算処理部１１１、遅延処理部１１２により表される。ループフィルタ処理部１１０は、ループフィルタ１０の処理に対応するものである。減算処理部１１１は、位相検出器１１の処理に対応するものである。遅延処理部１１２は、クロックデータリカバリ回路１のループ遅延に対応するものである。
【００３５】
また、ループフィルタ処理部１１０は、減算処理部１２１、増幅処理部１２３、累積処理部１２４、加算処理部１２５、累積処理部１２６、補償処理部１３０により表される。減算処理部１２１は、減算器２１の処理に対応するものである。増幅処理部１２２は、増幅器２２の処理に対応するものである。なお、図４のブロック図では、増幅処理部１２２の増幅率は、ループゲインｋであり、ｋは、増幅器２２の増幅率ｋｉと増幅器３３の増幅率ｋｃの積により求まるものである。増幅処理部１２３は、増幅器２３の処理に対応するものである。増幅処理部１２３の増幅率は、周波数追従ゲインｑとループゲインｋとの積による値となる。これは、補償処理部１３０によるフィードバックを第１のパスのみに与えるためである。なお、補償処理部１３０を用いない場合、位相差信号をループゲインｋにより増幅した後に周波数追従ゲインｑにより増幅する処理を行う。累積処理部１２４は、累積器２４の処理に対応したものである。加算処理部１２５は、加算器２５の処理に対応するものである。累積処理部１２６は、累積器２６の処理に対応するものである。
【００３６】
補償処理部１３０は、補償器３０の処理に対応するものである。図４に示すブロック図では、補償器３０における増幅器３３及び遅延回路３４の処理は補償処理部１３０に含めないものとした。これは、増幅器３３の増幅処理は、増幅処理部１２２で行うためである。そして、補償処理部１３０では、累積処理部１３１、遅延処理部１３２、減算処理部１３３を行う。累積処理部１３１は、増幅処理部１２２の出力値（例えば、第１のパスの出力値）を累積する。遅延処理部１３２は、累積処理部１３１の出力値をｎサイクル遅延させる。減算処理部１３３は、累積処理部１３１の出力値と遅延処理部１３２の出力値との差分を出力する。つまり、補償処理部１３０では、ｎサイクル分の第１のパスの出力値の積算値を出力する。言い換えると、補償処理部１３０の処理は、補償器３０の遅延回路３１１〜３１ｎ及び加算器３２１〜３２ｎの処理に対応するものである。
【００３７】
ここで、実施の形態１にかかるクロックデータリカバリ回路１を更に詳しく説明するために、第１の比較例と第２の比較例を説明する。第１の比較例は、実施の形態１にかかるクロックデータリカバリ回路１の補償器３０を持たないループフィルタを備えるクロックデータリカバリ回路の例である。また、第２の比較例は、第１のパスと第２のパスとに対して補償器によるフィードバック制御を行うクロックデータリカバリ回路の例である。
【００３８】
そこで、図５に第１の比較例にかかるクロックデータリカバリ回路８００のブロック図を示す。図５に示すように、第１の比較例にかかるクロックデータリカバリ回路８００は、増幅処理部８２１が減算処理部８１１が出力する位相差信号ｅをループゲインｋで増幅する。また、クロックデータリカバリ回路８００では、増幅処理部８２１で増幅した信号を増幅処理部８２２を用いて周波数追従ゲインｑで増幅する。そして、周波数追従ゲインｑで増幅された信号を累積処理部８２３で累積する。その後、クロックデータリカバリ回路８００は、加算処理部８２４で累積処理部８２３の累積値と増幅処理部８２１の出力値とを加算し、当該加算値を累積処理部８２５で累積することで位相制御信号を生成する。なお、遅延処理部８１２は、ループ遅延を表すものである。
【００３９】
図６に第２の比較例にかかるクロックデータリカバリ回路９００のブロック図を示す。図６に示すように、第２の比較例にかかるクロックデータリカバリ回路９００は、第１の比較例にかかるクロックデータリカバリ回路８００に、ループフィルタ処理部９３０及び減算処理部９２１を追加したものである。つまり、減算処理部９１１、遅延処理部９１２、増幅処理部９２２、増幅処理部９２３、累積処理部９２４、加算処理部９２５、累積処理部９２６は、減算処理部８１１、遅延処理部８１２、増幅処理部８２１、増幅処理部８２２、累積処理部８２３、加算処理部８２４、累積処理部８２５に対応するものである。
【００４０】
クロックデータリカバリ回路９００では、加算処理部９２５の出力値に基づきループフィルタ処理部９３０がフィードバックさせる値を生成し、減算処理部９２１で減算処理部９１１が出力する位相差信号の値からループフィルタ処理部９３０の出力値を減算する。ループフィルタ処理部９３０は、累積部９３１、遅延処理部９３２、減算処理部９３３を有する。ループフィルタ処理部９３０は、ｎサイクル分の加算処理部９２５の出力値の累積値を出力する。
【００４１】
続いて、実施の形態１にかかるクロックデータリカバリ回路１と第１の比較例及び第２の比較例の動作の違いを参照しながら、クロックデータリカバリ回路１の動作について説明する。クロックデータリカバリ回路では、入力信号の位相がステップ状に変化する位相ステップ入力に対する収束性と、入力信号の位相がランプ状に変化する位相ランプ入力に対する追従性が重要な特性となる。なお、位相ステップ入力は、クロックデータリカバリ回路の動作開始時に入力信号の位相にリカバリクロックの位相をロックしようとする引き込み動作におけるロック時間に大きく関係する。
【００４２】
まず、位相ステップ入力に対する収束性についてグラフを用いて説明する。図７に実施の形態１にかかるクロックデータリカバリ回路と第１の比較例にかかるクロックデータリカバリ回路の位相差の収束の違いを説明するグラフを示す。図７に示すグラフは、位相ステップ入力に対するクロックデータリカバリ回路の応答出力（リカバリークロックの位相）を図示したものである。図７に示すグラフは、横軸を時間、縦軸を位相差を正規化した値とするものである。また、図７では、ループフィルタにおけるレーテンシがゼロの状態を理想応答とした。図７に示すように、理想応答では、漸近的に位相差がゼロとなる。これに対して、実施の形態１にかかるクロックデータリカバリ回路１では、ループフィルタ１０のレーテンシ分の遅れは生じるものの理想応答に近い応答となる。一方、第１の比較例では、ループゲインの大きさに起因してオーバーシュートと振動が見られ、収束に時間がかかっていることがわかる。
【００４３】
次いで、図８に実施の形態１にかかるクロックデータリカバリ回路と第１の比較例にかかるクロックデータリカバリ回路のロックタイムの違いを説明するグラフを示す。なお、図８に示す例では、時間の単位として入力信号として与えられるシンボルビット数を用いた。図８に示すように、入力信号にジッタがない場合は、第１の比較例であっても実施の形態１にかかるクロックデータリカバリ回路１であっても短い時間でロック状態となる。ジッタが大きくなると第１の比較例は１０００ビットの入力があった後もロック状態とならない。一方、実施の形態１にかかるクロックデータリカバリ回路１では、ジッタ量が０．２ＵＩの時は９２ビット、ジッタ量が０．３５ＵＩの時は２２１ビットでロック状態となる。
【００４４】
続いて、第１の比較例、第２の比較例及び実施の形態１にかかるクロックデータリカバリ回路１の伝達特性を用いて位相ステップ入力に対する収束性と位相ランプ入力に対する追従性について説明する。以下の説明では、ｋをループゲイン、ｑを周波数追従ゲイン、ｕを入力信号の位相、ｙをリカバリクロックの位相、ｅを位相差、Ｄをクロックデータリカバリ回路１のループ遅延時間とする。
【００４５】
まず、第１の比較例にかかるクロックデータリカバリ回路８００の伝達特性について説明する。第１の比較例にかかるクロックデータリカバリ回路８００のオープンループ伝達関数Ｌ（ｓ）は（１）式で表すことができる。
【数１】
0006594710.tif 000002
また、第１の比較例にかかるクロックデータリカバリ回路８００のクローズループ伝達関数Ｈ（ｓ）は（２）式で表すことができる。
【数２】
0006594710.tif 000003
ここで、Ｄ（ｓ）はクロックデータリカバリ回路８００のループ遅延時間を表すものであり、（３）式で表される。このループ遅延時間Ｄ（ｓ）はリカバリクロックの位相をＤだけ遅らせる。
【数３】
0006594710.tif 000004
【００４６】
上記（１）式から（３）式を参照すると、実施の形態１にかかるクロックデータリカバリ回路８００では、入力信号に対してリカバリクロックの位相が９０度以上遅れる周波数である場合、クロックデータリカバリ回路のループはポジティブフィードバックとなる。そのため入力信号の周波数がこの周波数である場合、オープンループ伝達関数Ｌ（ｓ）の絶対値が１に近いと、クローズループ伝達関数Ｈ（ｓ）の分母が０に近くなり、ジッタが増幅されることがわかる。つまり、位相ランプ入力があった場合に、第１の比較例にかかるクロックデータリカバリ回路８００では、入力信号とリカバリクロックとの位相差が９０度以上であった場合、ジッタが大きくなり位相の変化に追従できない問題がある。また、入力信号が位相ステップ入力であった場合は、図７の第１の比較例のグラフのようにオーバーシュートと振動が発生する不安定な応答となる。
【００４７】
続いて、第２の比較例にかかるクロックデータリカバリ回路９００の伝達特性について説明する。第２の比較例にかかるクロックデータリカバリ回路９００のオープンループ伝達関数Ｌｓ（ｓ）は（４）式で表すことができる。
【数４】
0006594710.tif 000005
また、第２の比較例にかかるクロックデータリカバリ回路９００のクローズループ伝達関数Ｈｓ（ｓ）は（５）式で表すことができる。
【数５】
0006594710.tif 000006
（５）式から、第２の比較例にかかるクロックデータリカバリ回路９００は、クローズループ伝達関数Ｈｓ（ｓ）の分母からループ遅延時間Ｄ（ｓ）が無くなっているため、位相ステップ入力に対してループが安定化していることがわかる。
【００４８】
しかし、第２の比較例にかかるクロックデータリカバリ回路９００には、位相ランプ入力に対して追従できないという問題がある。クローズループ伝達関数Ｈｓ（ｓ）の位相ランプ入力に対する位相誤差は時間と共に増大する。この位相ランプ入力に対する位相誤差の伝達関数Ｅｓ（ｓ）は（６）式で表すことができる。
【数６】
0006594710.tif 000007
そして、位相ランプ入力に対して長い時間が経過した後の伝達関数の値は（７）式に表すように収束しない。
【数７】
0006594710.tif 000008
つまり、第２の比較例にかかるクロックデータリカバリ回路９００では、入力信号に重畳されたクロックとリカバリクロックの周波数とに差がある場合、位相誤差が収束しない。
【００４９】
続いて、実施の形態１にかかるクロックデータリカバリ回路１の伝達特性について説明する。実施の形態１にかかるクロックデータリカバリ回路１のオープンループ伝達関数Ｌｐ（ｓ）は、（８）式により表される。
【数８】
0006594710.tif 000009
また、実施の形態１にかかるクロックデータリカバリ回路１のクローズループ伝達特性Ｈｐ（ｓ）は、（９）式により表される。
【数９】
0006594710.tif 000010
【００５０】
ここで、入力信号のジッタ周波数が高い領域は、ｓが大きくなる領域であるため、Ｄ（ｓ）を含む項を無視することができる。つまり、入力信号のジッタ周波数が高い領域では、（２）式は（３）式のように表すことができる。
【数１０】
0006594710.tif 000011
つまり、実施の形態１にかかるクロックデータリカバリ回路１では、ループ遅延時間Ｄ（ｓ）の項を無視することができるため、第２の比較例にかかるクロックデータリカバリ回路９００と同様に位相ランプ入力に対してループを安定化させることができる。
【００５１】
また、位相誤差Ｅｐ（ｓ）は、（１１）式により表すことができる。
【数１１】
0006594710.tif 000012
この（４）式において位相ランプ入力の応答は（１２）式により表すことができる。
【数１２】
0006594710.tif 000013
つまり、実施の形態１にかかるクロックデータリカバリ回路１では、長い時間が経過した後は位相誤差がゼロとなり、位相ランプ入力に対して高い追従性を確保できることがわかる。
【００５２】
上記説明より、実施の形態１にかかるクロックデータリカバリ回路１は、第１のパスに対してのみ補償器３０によるフィードバック制御を行う。これにより、実施の形態１にかかるクロックデータリカバリ回路１は、リカバリクロックの位相がロック状態となるまでの時間を短縮し、かつ、入力信号に対するリカバリクロックの位相の追従性を高めることができる。
【００５３】
クロックデータリカバリ回路は、シリアルデータ通信の受信回路に搭載されるが、このようなクロックデータリカバリ回路では、消費電力を低減するためにクロックデータリカバリ回路の頻繁なオン・オフ切替が行われるという特徴がある。そのため、ロック時間の短縮は、システムの起動時間に大きく影響する。実施の形態１にかかるクロックデータリカバリ回路１では、リカバリクロックの位相を入力信号の位相に合わせるまでのロック時間を短縮できるため大きな効果がある。
【００５４】
また、シリアルデータ通信では、不要輻射を低減するために伝送するシリアルデータに重畳するクロックに対してスペクトラム拡散処理等の周波数分散処理を施すことがある。このような周波数分散処理が施された入力信号に対してロック状態を維持するためには位相ランプ入力に対する高い追従性が必要になる。実施の形態１にかかるクロックデータリカバリ回路１では、位相ランプ入力に対する高い追従性を有するため、特にシリアルデータ通信の受信回路においいて高い効果を得ることができる。
【００５５】
また、実施の形態１にかかるクロックデータリカバリ回路１では、位相検出器１１として位相差を二値の値で示す位相検出器を用いる。このような位相検出器を用いた場合、位相検出器をデジタル回路で構成できるため回路規模を小さくできるメリットがある。しかし、このような位相検出器を用いた場合、入力信号のジッタが大きいと位相検出器の出力が安定せずリカバリクロックの位相が収束しないことがある。しかしながら、実施の形態１にかかるクロックデータリカバリ回路１では、位相検出器１１として位相差を二値の値で表す位相検出器を用いてもリカバリクロックの位相の収束を早めることができる。
【００５６】
ここで、特許文献１に記載のＰＬＬ回路との違いについて更に説明する。特許文献１に記載のＰＬＬ回路では、ループフィルタに対してスミス法に基づいたループレーテンシ補償を行っている。このループレーテンシ補償では、ループフィルタ外に存在するレーテンシをも補償することができる。しかしながら、特許文献１のＰＬＬ回路では、位相ランプ入力に対応するための補正パスの計算が複雑であり、精度の観点から数値制御発振器、若しくは、アナログ回路による補正を行わなければならず、回路規模が増大してクロックデータリカバリ回路に適用することが困難である。
【００５７】
一方、実施の形態１にかかるクロックデータリカバリ回路１では、ループフィルタをＤＳＰ、或いは、デジタル回路で構成することができる。つまり、実施の形態１にかかるクロックデータリカバリ回路１は、小さな回路で構成できるため、クロックデータリカバリ回路として最適である。
【００５８】
実施の形態２
実施の形態２にかかるクロックデータリカバリ回路２は、ループフィルタ１０に代えて、カウンタを用いて構成したループフィルタ４０を用いる例である。そこで、実施の形態２にかかるクロックデータリカバリ回路２のブロック図を図９に示す。
【００５９】
図９に示すように、実施の形態２にかかるループフィルタ４０は、減算器４１、第２のカウンタ（カウンタ４２）、第３のカウンタ（例えば、カウンタ４３）、加算器４４、第４のカウンタ（カウンタ４５）、補償器５０を有する。また、補償器５０は、除算器５１、遅延回路５２１〜５２ｎ、加算器５３１〜５３ｎ、第１のカウンタ（例えば、カウンタ５４）を有する。ループフィルタ４０では、第１のパス上に減算器４１を配置し、第１のパスにおいて設定するループゲインを除算器５１の除算係数Ｎｃ１及びカウンタ５４の最大カウント値Ｎｃ２により決定する。第１のパスのゲインは、１／Ｎｃ１＊１／Ｎｃ２となる。また、ループフィルタ４０では、第２のパス上にカウンタ４２及びカウンタ４３を配置し、周波数追従ゲインｑとループゲインｋの積をカウンタ４２の最大カウント値Ｎｆｐにより決定する。この第２のパスのゲインは１／Ｎｆｐとなる。
【００６０】
減算器４１は、位相検出器１１が出力する位相差信号から補償器５０内のカウンタ５４の出力値を減算した値を出力する。カウンタ４２は、第２の値（例えば、最大カウント値Ｎｆｐ）を最大値として位相差信号で示される位相差を累積する。カウンタ４３は、第３の値（例えば、最大カウント値Ｎｆ）を最大値としてカウンタ４２の出力値を累積する。加算器４４は、カウンタ４３の出力値と減算器４１の出力値とを加算する。カウンタ４５は、第４の値（例えば、最大カウント値Ｎｐ）を最大値として加算器４４の出力値を累積して当該累積値を位相制御信号として出力する。
【００６１】
除算器５１は、第１のパスの出力値を予め設定した係数（例えば、除算係数Ｎｃ１）で除算する。遅延回路５２１〜５２ｎ及び加算器５３１〜５３ｎは、ｎサイクル分の第１のパスの出力値（実施の形態２では、除算器５１の出力値）を累積する第１の累積器を構成する。カウンタ５４は、第１の値（最大カウント値Ｎｃ２）を最大値として第１の累積器の出力値を累積する。
【００６２】
なお、実施の形態２にかかるループフィルタ４０では、各カウンタの出力は、各カウンタのカウント値を各カウンタの最大カウント値で割った値として考えることができる。
【００６３】
このようにループフィルタ４０をカウンタを用いて構成することで、固定少数演算などを使った場合に比べて必要なレジスタ及び演算器のビット数が少なく高速動作が可能となる。また、実施の形態４にかかるループフィルタ４０では、補償器５０の入力に除算器５１を設けた。これにより、実施の形態４にかかるループフィルタ４０は、フォードバック系に設けられる回路のビット数を小さくし、回路規模を小さくすることができる。
【００６４】
実施の形態３
実施の形態３では、実施の形態２にかかるクロックデータリカバリ回路２において、フィルタゲインを変更する機能及び補償器５０の有効と無効とを切り替える機能を追加したクロックデータリカバリ回路３について説明する。そこで、実施の形態３にかかるクロックデータリカバリ回路３のブロック図を図１０に示す。
【００６５】
図１０に示すように、実施の形態３にかかるクロックデータリカバリ回路３は、クロックデータリカバリ回路４及び制御回路（例えば、ゲイン・補償有効化判定部６０）を有する。ゲイン・補償有効化判定部６０は、クロックデータリカバリ回路４内の位相差信号で示される位相差、ロック判定器の出力、一定の期間を計測するカウンタの出力をモニタ信号として取得し、クロックデータリカバリ回路４がロック状態になったことに応じてクロックデータリカバリ回路４のループゲイン及び補償器５０の有効・無効を切り替える。この切替は、ゲイン・補償有効化判定部６０がゲイン制御信号及び補償有効化制御信号を出力することに行う。
【００６６】
続いて、図１１に、実施の形態４にかかるクロックデータリカバリ回路４のブロック図を示す。図１１に示すように、実施の形態４にかかるクロックデータリカバリ回路４は、実施の形態３にかかるループフィルタ４０に第１のセレクタ（例えば、セレクタ４６）及び増幅器を追加し、補償器５０を補償器８０に置き換えたループフィルタ７０を有する。また、補償器８０は、補償器５０に第２のセレクタ（例えば、セレクタ８１）を追加したものである。
【００６７】
セレクタ４６は、減算器４１及びカウンタ４２の前段に配置される。セレクタ４６には、位相検出器１１が出力する位相差信号と、位相差信号を増幅器で増幅した増幅位相差信号と、が入力される。そして、セレクタ４６は、ゲイン・補償有効化判定部６０が出力するゲイン制御信号に応じて入力される２つの信号の一方を選択して出力する。
【００６８】
セレクタ８１は、補償器８０を無効化する無効値（例えば、０）と第１のパスの出力値とのいずれか一方を選択して除算器５１に出力する。そして、セレクタ８１は、ゲイン・補償有効化判定部６０が出力する補償有効化制御信号に応じて入力される２つの信号の一方を選択して出力する。
【００６９】
ここで、ゲイン・補償有効化判定部６０によるセレクタ４６及びセレクタ８１の具体的な制御方法を説明する。ゲイン・補償有効化判定部６０は、クロックデータリカバリ回路４が非ロック状態である場合には、セレクタ４６に増幅位相差信号を選択させ、かつ、セレクタ８１に第１のパスの出力値を選択させる。一方、ゲイン・補償有効化判定部６０は、クロックデータリカバリ回路４がロック状態である場合には、セレクタ４６に位相検出器１１が出力する位相差信号を選択させ、かつ、セレクタ８１に無効値を選択させる。
【００７０】
上記説明より、実施の形態３にかかるクロックデータリカバリ回路３では、位相引き込み動作中はフィルタゲインを高くして引き込み速度を高め、位相引き込み動作完了後はフィルタゲインを低くして入力ジッタの遮断性を高めることができる。実施の形態３にかかるクロックデータリカバリ回路３では、フィルタゲインを高めても補償器８０が有効になっていることでループを安定化させることができる。
【００７１】
また、実施の形態３にかかるクロックデータリカバリ回路３では、引き込み動作完了後に補償器８０を無効化するため消費電力を低減することができる。
【００７２】
また、実施の形態３にかかるクロックデータリカバリ回路３では、ゲイン制御と補償器の有効無効切替制御のいずれか一方のみを実装することもできる。
【００７３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００７４】
１〜４  クロックデータリカバリ回路
１０、４０、７０  ループフィルタ
１１  位相検出器
１２  位相シフト器
１３  クロック源
１１０  ループフィルタ処理部
１１１、１２１、１３３  減算処理部
１１２、１３２  遅延処理部
１２２、１２３  増幅処理部
１２４、１２６、１３１  累積処理部
１２５  加算処理部
１３０  補償処理部
２１  減算器
２２、２４  増幅器
２４、２６  累積器
２５  加算器
２１１〜２１３  フリップフロップ
２１４  ラッチ
２１５、２１６  ＸＯＲ回路
２１７、２１８  デマルチプレクサ
２１９、２２０  ＯＲ回路
２２１、２２２  インバータ
２２３、２２４  ＡＮＤ回路
２３１〜２３６  フリップフロップ
２３７、２３８  ラッチ
２３９  デコーダ
３０、５０、８０  補償器
３１１〜３１ｎ、５２１〜５２ｎ  遅延回路
３２１〜３２ｎ、５３１〜５３ｎ  加算器
３３  増幅器
３４  遅延回路
４１  減算器
４２、４３、４５、５４  カウンタ
４４  加算器
４６  セレクタ
５０、８０  補償器
５１  除算器
６０  ゲイン・補償有効化判定部
８１  セレクタ
【図１】
0006594710.tif 000014
【図２】
0006594710.tif 000015
【図３】
0006594710.tif 000016
【図４】
0006594710.tif 000017
【図５】
0006594710.tif 000018
【図６】
0006594710.tif 000019
【図７】
0006594710.tif 000020
【図８】
0006594710.tif 000021
【図９】
0006594710.tif 000022
【図１０】
0006594710.tif 000023
【図１１】
0006594710.tif 000024