(57)【特許請求の範囲】
【請求項１】
クロックデータ回復デバイスのための位相補間（ＰＩ）コードを推測する回路であって、
位相変化決定回路であって、
データ信号とクロック信号との間の位相差を検出し、
前記検出された位相差に基づいてデルタ信号値および前記デルタ信号値と値が同一のデルタ選択信号値を生成する
ように構成され、前記デルタ信号値が、現在の反復と先行の反復との間の位相差の位相変化を示す位相変化決定回路と、
推測計算回路であって、
第１の先行のデルタ信号値から第１のセットのＰＩコードを生成するように構成される第１の計算回路、
第２の先行のデルタ信号値から第２のセットのＰＩコードを生成するように構成される第２の計算回路、
前記第１の先行のデルタ信号値および前記第２の先行のデルタ信号値に基づいた、推測デルタ信号値から、第３のセットのＰＩコードを生成するように構成される第３の計算回路、ならびに
前記デルタ選択信号値に応じて、前記第１のセットのＰＩコード、前記第２のセットのＰＩコード、および前記第３のセットのＰＩコードのうちの1つを選択して、前記第１のセットのＰＩコード、前記第２のセットのＰＩコード、および前記第３のセットのＰＩコードのうちの1つを出力するように構成される選択回路
を含む推測計算回路と
を備える、回路。
【請求項２】
前記推測計算回路が、
前記第１の先行のデルタ信号値として使用するために、先行する反復からのデルタ信号値を前記第１の計算回路に提供し、
前記第２の先行のデルタ信号値として使用するために、前記先行する反復の前の反復からのデルタ信号値を前記第２の計算回路に提供する
ように構成される、請求項１に記載の回路。
【請求項３】
前記推測計算回路が、前記第１の先行のデルタ信号値および前記第２の先行のデルタ信号値からの線形投影によって前記推測デルタ信号値を計算するようにさらに構成される、請求項１に記載の回路。
【請求項４】
前記推測計算回路が、前記第１の先行のデルタ信号値および前記第２の先行のデルタ信号値からの、および前記第１の先行のデルタ信号値および前記第２の先行のデルタ信号値を生成する前に生成されたデルタ信号値からの非線形投影によって前記推測デルタ信号値を計算するようにさらに構成される、請求項１に記載の回路。
【請求項５】
前記位相変化決定回路が、前記第１の先行のデルタ信号値と、現在の反復についての前記デルタ信号値との比較によって前記デルタ選択信号値を生成するようにさらに構成される、請求項１に記載の回路。
【請求項６】
前記位相変化決定回路が、前記データ信号の非直列化データと前記クロック信号との間の位相差を検出するように構成される複数のバンバン位相検出器を含み、
前記位相変化決定回路が、前記複数のバンバン位相検出器からの結果を合計するように構成される、
請求項１に記載の回路。
【請求項７】
クロックデータ回復回路のための位相補間（ＰＩ）コードを推測する方法であって、
データ信号とクロック信号との間の位相差を検出することと、
前記検出された位相差に基づいて、デルタ信号値および前記デルタ信号値と値が同一のデルタ選択信号値を生成することであって、前記デルタ信号値が、現在の反復と先行の反復との間の位相差の位相変化を示す、生成することと、
第１の先行のデルタ信号値から第１のセットのＰＩコードを生成することと、
第２の先行のデルタ信号値から第２のセットのＰＩコードを生成することと、
前記第１の先行のデルタ信号値および前記第２の先行のデルタ信号値に基づいた、前記デルタ信号値の推測デルタ信号値から、第３のセットのＰＩコードを生成することと、
前記デルタ選択信号値に応じて、前記第１のセットのＰＩコード、前記第２のセットのＰＩコード、および前記第３のセットのＰＩコードのうちの1つを選択して、前記第１のセットのＰＩコード、前記第２のセットのＰＩコード、および前記第３のセットのＰＩコードのうちの1つを出力することと
を含む、方法。
【請求項８】
前記第１の先行のデルタ信号値が、先行する反復からのデルタ信号値に対応し、前記第２の先行のデルタ信号値が、前記先行する反復の前の反復からのデルタ信号値に対応する、請求項７に記載の方法。
【請求項９】
前記第１の先行のデルタ信号値および前記第２の先行のデルタ信号値からの線形投影を使用して、前記推測デルタ信号値を計算することをさらに含む、請求項７に記載の方法。
【請求項１０】
前記第１の先行のデルタ信号値および前記第２の先行のデルタ信号値からの、および前記第１の先行のデルタ信号値および前記第２の先行のデルタ信号値を生成する前に生成されたデルタ信号値からの非線形投影を使用して、前記推測デルタ信号値を計算することをさらに含む、請求項７に記載の方法。
【請求項１１】
前記デルタ選択信号値を生成することが、前記第１の先行のデルタ信号値と、現在の反復についての前記デルタ信号値との比較に基づく、請求項７に記載の方法。
【請求項１２】
複数のバンバン位相検出器を使用して、前記データ信号の非直列化データと前記クロック信号との間の位相差を検出することと、
前記複数のバンバン位相検出器からの結果を合計することと
をさらに含む、請求項７に記載の方法。
【請求項１３】
スケーリングなしでは、閾値を超える場合、前記推測デルタ信号値に応じて、前記第１の先行のデルタ信号値をスケーリングすることと、
スケーリングなしでは、閾値を超える場合、前記推測デルタ信号値に応じて、前記第２の先行のデルタ信号値をスケーリングすることと
をさらに含む、請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、クロックおよびデータ回復回路に関し、より詳細には、受け取ったデータから推測計算を使用してクロック信号を回復するように構成された回路経路のための回路に関する。
【背景技術】
【０００２】
クロックおよびデータ回復（ＣＤＲ：ｃｌｏｃｋ  ａｎｄ  ｄａｔａ  ｒｅｃｏｖｅｒｙ）回路は、受け取ったデータから同期化クロック信号を生成するための様々な通信プロトコルと共に使用することができる。ＣＤＲ回路によれば、個別の専用クロック信号を必要とすることなく、高速データストリームを送ることができる。例えば、ＣＤＲ回路は、受け取ったアナログ領域のデータからクロック信号タイミング（位相および周波数）を推定し、位相固定ループ（ＰＬＬ）または遅延固定ループ（ＤＬＬ）に対して直接調整を行うように構成することができる。特定のタイプのＣＤＲ回路は、基準クロック信号のセットを使用して異なる位相をもたらす位相補間（ＰＩ）に基づいて構成することができる。ＣＤＲ回路は、受け取ったデータに基づいて、適切なクロック信号位相を選択する。プログラマブルロジックデバイス（ＰＬＤ）を含むが、これに限定されないＣＤＲ回路を使用することができる、様々な異なるアプリケーションが存在している。
【０００３】
ＰＬＤは、特定のロジック関数を実行するようにプログラムすることができる周知のタイプのプログラマブル集積回路（ＩＣ）である。ＰＬＤの１つのタイプであるフィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、典型的にはプログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、例えば入力／出力ブロック（ＩＯＢ）、構成可能ロジックブロック（ＣＬＢ）、専用ランダムアクセスメモリブロック（ＢＲＡＭ）、乗算器、デジタル信号処理ブロック（ＤＳＰ）、プロセッサ、クロックマネージャ、遅延固定ループ（ＤＬＬ）、周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）などのバスまたはネットワークインタフェース、およびＥｔｈｅｒｎｅｔ等々を含むことができる様々なタイプのロジックブロックを備えている。
【０００４】
個々のプログラマブルタイルは、プログラマブル相互接続およびプログラマブルロジックの両方を含むことができる。プログラマブル相互接続は、典型的には、プログラマブル相互接続点（ＰＩＰ：ｐｒｏｇｒａｍｍａｂｌｅ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｐｏｉｎｔ）によって相互接続される可変長の多数の相互接続線を含む。プログラマブルロジックは、例えば関数発生器、レジスタ、算術ロジック、等々を含むことができるプログラマブル要素を使用して、ユーザ設計のロジックを実装する。
【０００５】
プログラマブル相互接続およびプログラマブルロジックは、しばしば、プログラマブル要素を構成する方法を定義した構成データのストリームを内部構成メモリセルにロードすることによってプログラムされる。構成データは、メモリから（例えば外部ＰＲＯＭから）読み出すことができ、または外部デバイスによってＦＰＧＡに書き込むことができる。その結果、個々のメモリセルの集合的な状態がＦＰＧＡの機能を決定する。
【０００６】
ＣＤＲ回路の内部遅延またはレイテンシは、様々な実装例において、システム性能に対する重大な影響を有し得る。レイテンシが短い受け取ったデータから位相制御信号を提供するように構成されたＣＤＲ回路は、このような問題に対処するために有用であり得る。
【発明の概要】
【０００７】
特定の実装例は、データ信号とクロック信号との間の位相差を検出し、検出された位相差に基づいてデルタ信号およびデルタ選択信号を生成するように構成される位相変化決定回路を含むクロックデータ回復デバイスを対象としている。推測計算回路は、デルタ信号の第１の先行値から第１のセットの位相補間（ＰＩ）コードを生成するように構成される第１の計算回路と、デルタ信号の第２の先行値から第２のセットのＰＩコードを生成するように構成される第２の計算回路と、デルタ信号の第１の先行値および第２の先行値に基づいた、デルタ信号の推測値から、第３のセットのＰＩコードを生成するように構成される第３の計算回路と、デルタ選択信号に応じて、第１のセットのＰＩコード、第２のセットのＰＩコード、および第３のセットのＰＩコードの間で選択して、この選択をクロックデータ回復デバイスの出力として提供するように構成される選択回路とを含むことができる。
【０００８】
任意選択で、推測計算回路は、デルタ信号の第１の先行値として使用するために、クロックデータ回復デバイスの先行する反復からのデルタ信号値を第１の計算回路に提供するように構成することができる。
【０００９】
任意選択で、推測計算回路は、デルタ信号の第２の先行値として使用するために、クロックデータ回復デバイスの先行する反復の前の反復からのデルタ信号値を第２の計算回路に提供するように構成することができる。
【００１０】
任意選択で、推測計算回路は、デルタ信号の第１の先行値および第２の先行値からの線形投影によってデルタ信号の推測値を計算するようにさらに構成することができる。
【００１１】
任意選択で、推測計算回路は、デルタ信号の第１の先行値および第２の先行値から、および追加デルタ値からの非線形投影によってデルタ信号の推測値を計算するようにさらに構成することができる。
【００１２】
任意選択で、位相変化決定回路は、デルタ信号の第１の先行値と、クロックデータ回復デバイスの現在の反復についてのデルタ信号の値との比較によってデルタ選択信号を生成するようにさらに構成することができる。
【００１３】
任意選択で、第１の計算回路、第２の計算回路および第３の計算回路の各々は、それぞれの状態情報を生成するように構成することができる。
【００１４】
任意選択で、位相変化決定回路は、データ信号の非直列化データとクロック信号との間の位相差を検出するように構成される複数のバンバン位相検出器を含む。
【００１５】
任意選択で、位相変化決定回路は、複数のバンバン位相検出器からの結果を合計するように構成することができる。
【００１６】
様々な実装例は、クロックデータ回復回路を使用して、データ信号のためのクロック信号を回復するための方法を対象としている。本方法は、データ信号とクロック信号との間の位相差を検出することと、検出された位相差に基づいて、デルタ信号およびデルタ選択信号を生成することと、デルタ信号の第１の先行デルタ値から第１のセットの位相補間（ＰＩ）コードを生成することと、デルタ信号の第２の先行デルタ値から第２のセットのＰＩコードを生成することと、デルタ信号の第１の先行値および第２の先行値に基づいた、デルタ信号の推測デルタ値から、第３のセットのＰＩコードを生成することと、デルタ選択信号に応じて、第１のセットのＰＩコード、第２のセットのＰＩコード、および第３のセットのＰＩコードの間で選択して、この選択をクロックデータ回復回路の出力として提供することとを含む。
【００１７】
任意選択で、デルタ信号の第１の先行値は、クロックデータ回復回路の先行する反復からのデルタ信号値に対応し得る。
【００１８】
任意選択で、デルタ信号の第２の先行値は、クロックデータ回復回路の先行する反復の前の反復からのデルタ信号に対応し得る。
【００１９】
任意選択で、本方法は、デルタ信号の第１の先行値および第２の先行値からの線形投影を使用して、デルタ信号の推測デルタ値を計算することをさらに含むことができる。
【００２０】
任意選択で、本方法は、デルタ信号の第１の先行値および第２の先行値から、および追加デルタ値からの非線形投影を使用して、デルタ信号の推測デルタ値を計算することをさらに含むことができる。
【００２１】
任意選択で、デルタ選択信号を生成することは、デルタ信号の第１の先行値と、現在の反復についてのデルタ信号の値との比較に基づき得る。
【００２２】
任意選択で、本方法は、デルタ信号の第１の先行値、デルタ信号の第２の先行値、およびデルタ信号の推測デルタ値についての状態情報を生成することをさらに含むことができる。
【００２３】
任意選択で、本方法は、複数のバンバン位相検出器を使用して、データ信号の非直列化データとクロック信号との間の位相差を検出することをさらに含むことができる。
【００２４】
任意選択で、本方法は、複数のバンバン位相検出器からの結果を合計することをさらに含むことができる。
【００２５】
任意選択で、本方法は、スケーリングなしでは、デルタ変化についての閾値を超える場合、推測デルタ値に応じて、デルタ信号の第１の先行デルタ値をスケーリングすることをさらに含むことができる。
【００２６】
任意選択で、本方法は、スケーリングなしでは、デルタ変化についての閾値を超える場合、推測デルタ値に応じて、デルタ信号の第２の先行デルタ値をスケーリングすることをさらに含むことができる。
【００２７】
他の特徴は、以下の発明を実施するための形態および特許請求の範囲を考慮することによって認識されよう。
【００２８】
方法、デバイスおよびシステムの様々な態様および特徴は、以下の詳細な説明を精査し、図面を参照することによって明らかになるであろう。
【図面の簡単な説明】
【００２９】
【図１】本開示の実装例と整合する、（位相補間）コードの推測計算を有するＣＤＲ回路のブロック図である。
【図２】様々な実装例と整合する、推測計算と共に使用するための位相検出回路のブロック図である。
【図３】本開示の実装例と整合する、ＣＤＲ回路を含むシステムのブロック図である。
【図４】本開示の実装例と整合する、取り得るデルタ信号値のグラフである。
【図５】本開示の実装例による、ＣＤＲ回路と共に使用するためのフローチャートである。
【図６】開示される回路およびプロセスを実装することができるプログラマブル集積回路（ＩＣ）６００を示す図である。
【発明を実施するための形態】
【００３０】
以下の説明には、本明細書において提示される特定の例を説明するために多くの特定の詳細が示されている。しかしながら、当業者には、以下で与えられるすべての特定の詳細がなくても、１つまたは複数の他の例および／またはこれらの例の変形例を実施することができることが明らかになるはずである。他の実例では、本明細書における例についての説明を曖昧にしないよう、周知の特徴については詳細に説明されていない。例証を容易にするために、同じ参照符号を異なる図に使用して、同じ要素または同じ要素の追加実例を参照し得る。
【００３１】
様々な実装例は、推測値を使用しないＣＤＲ回路と比べてサイクル数が少ない受け取ったデータから位相制御信号を提供するように構成されるクロックデータ回復（ＣＤＲ）回路を対象としている。サイクル数は、ＣＤＲ回路内における内部計算のために使用されるデルタ信号のための推測値であってもよい。これは、信号およびデータ処理における直列遅延にさらされるＣＤＲ回路とは対照的である。本明細書において考察されているように、デルタ信号は、位相検出回路によって決定される捕捉クロック信号の位相累積器についての増分変化を表すことができる。特定の実装例によれば、単一のサイクル内で位相制御信号を利用することができる。位相制御信号は、異なるデルタ信号値に対して生成することができ、ＣＤＲ回路によって実際のデルタ信号値が決定されると、所望の位相制御信号を選択することができる。特定の実装例では、位相制御信号は、異なる位相を選択して、クロック信号と受け取ったデータとを同期させるために使用される位相補間（ＰＩ）コードであってもよい。いくつかの実装例では、デルタ信号は、クロック周波数調整成分を提供するように構成される周波数経路回路からのデータを含むことができる。本明細書において使用されているように、「サイクル」という用語は、中間データをＣＤＲ回路内に記憶するために使用される基準クロック信号に関連している。
【００３２】
推測デルタ信号を使用して推測ＰＩコードを生成することにより、ＰＩコード生成を少なくとも部分的に（実際の）デルタ信号決定から切り離すことができる。実際のデルタ信号決定は、本明細書においてより詳細に考察されているように、位相差の検出およびステップ値の決定などの時間消費プロセスを含み得るため、これは有用であり得る。推測ＰＩコードの生成を検出された位相差およびステップ値の計算から切り離すことにより、対応する推測ＰＩコードの計算をより早い時期に実行することができる（例えば実際のデルタ信号値の知識を必要とすることなく）。特定の実装例では、既知のデルタ値からのＰＩコードの計算には、追加ＣＤＲサイクルを要求するのに十分な時間を要し得る。したがって推測デルタ信号値からのＰＩコードの推測生成を使用して、ＣＤＲ回路の総レイテンシを短くすることができる。
【００３３】
特定の実装例は、位相経路回路を含むＣＤＲ回路を対象としている。位相経路回路（または単に「位相経路」）は、データ信号およびクロック信号を受け取るように構成される。位相経路回路は、クロック信号に対する如何なる調整（存在すれば）がクロック信号とデータ信号との間の同期性を改善することになるかを示す信号を生成するように構成される。本明細書においてより詳細に考察されているように、位相経路回路は、データ信号の受取りと位相選択信号の生成との間の遅延を短くするために有用であり得る推測計算および並列計算の両方を含むことができる。
【００３４】
特定の実装例と整合して、位相経路回路は、入力データおよび信号交差が供給される境界レジスタを含むことができる。複数のバンバン位相検出器は、データアイに関して、捕捉位相に関する情報を生成する。検出された、複数の位相検出器からの位相方向（例えば「ＵＰ」および「ＤＯＷＮ」）の間の正味の差は、生ステップサイズを形成するために要因分解され、この生ステップサイズは、周波数経路寄与と結合されて、それぞれデータ累積器および交差位相累積器の両方についての最終増分（「デルタ」と呼ばれる）になる。データおよび交差位相についてのＰＩコードは、フィルタリングプロセスを介して生成される。
【００３５】
様々な実装例と整合して、推測ＰＩコードを生成するために使用される異なるデルタ値は、ＣＤＲ回路が選択するための異なる利用可能なデルタ値を表す。現在のサイクルに対して計算される実際のデルタ値は、推測ＰＩコードを生成するために使用されるいかなるデルタ値とも一致し得ないが、ＣＤＲ回路は、実際のデルタ値に近い推測ＰＩコードを選択するように構成することができる。本開示の特定の態様は、デルタ値が、実際のデルタ値が少なくとも部分的に先行デルタ値に依存する点でヒステリシス成分を含み得ることの認識に関している。例えば本明細書において考察されている推測デルタ値は、先行デルタ値に基づいて生成することができる（例えば先行デルタ値間の変化の方向および量を考慮するアルゴリズムを使用して）。
【００３６】
ここで図を参照すると、図１は、本開示の実装例と整合する、（位相補間）コードの推測計算を有するＣＤＲ回路のブロック図を描写したものである。ＣＤＲ回路は、受け取ったデータ信号と、データ信号から生成されるか、あるいはデータ信号と一致した位相から生成される捕捉クロック信号との間の位相差を検出するように構成することができる位相検出回路１０２を有する位相経路を含むことができる。本明細書において考察されているように、捕捉クロック信号は、互いに対する相対位相オフセットを個々に有する複数のクロック信号の間で選択することによって生成することができる。より詳細には、ＣＤＲ回路からのＰＩコードは、データを捕捉するために使用される適切なクロック信号の選択を制御することができる。位相検出回路１０２は、捕捉クロック信号と複数のデータ信号との間の検出された位相差の合計に基づくステップ値を計算するようにも構成することができる。個々の反復についてのデルタ値は、決定されたステップ値に依存する。したがって、位相検出回路１０２は、ステップ値からデルタ選択信号を生成するように構成することができる。デルタ選択信号は、現在の反復についての実際のデルタ値を表しており、したがって、描写されている推測計算回路１１８と共に使用して、デルタ信号についての異なる潜在値に基づいて予め計算された異なるＰＩコードの間で選択することができる。
【００３７】
様々な実装例は、特定のＣＤＲ反復に対して、決定されるデルタ値は、先行するＣＤＲ反復からのデルタ信号値の関数であることの認識に基づいている。描写されている実装例では、デルタ選択信号は、現在の位相検出情報に基づいており、一方、デルタ信号の２つの先行値を使用して現在の位相コードが予測される。詳細には、ＣＤＲ回路の現在の反復からのデルタ値（すなわち「Ｄｅｌｔａ０」）は、次のサイクルおよびそれ以降のサイクルで使用するためにレジスタ１０４に記憶される。個々のＣＤＲ反復の間、レジスタ１０４は、新しい、より最近に決定された先行デルタ信号値で更新される。次のＣＤＲ反復の間、第１のセットのＰＩコードを生成するために、Ｄｅｌｔａ１値（形式的にはＤｅｌｔａ０）が第１のＰＩ計算回路１０６に提供される。同じくＣＤＲ反復毎に、レジスタ１０４に記憶されている値がレジスタ１１０に転送されるか、あるいはレジスタ１１０に記憶されて、第２の先行デルタ信号（すなわち「Ｄｅｌｔａ２」）になる。レジスタ１１０内のＤｅｌｔａ２値は、第２のセットのＰＩコードを生成するために第２のＰＩ計算回路１１２に提供される。
【００３８】
実装例と整合して、第１の先行デルタ値（Ｄｅｌｔａ１）および第２の先行デルタ値（Ｄｅｌｔａ２）の各々は、次に、推測デルタ値（ＤｅｌｔａＳ）をもたらすために推測デルタ決定回路１１４によって使用することができる。ＤｅｌｔａＳ値は、第３のセットのＰＩコードを生成するために第３のＰＩ計算回路１１６に提供することができる。特定の実装例では、推測デルタ決定回路１１４は、第１の先行値および第２の先行値から誘導される線形投影を使用してデルタ信号の推測値を計算するように構成することができる。例えば推測値は、第１の先行値と第２の先行値との間の変化の速度が第１の値と推測値との間の変化の速度と同じになるように選択することができる。
【００３９】
様々な実装例では、Ｄｅｌｔａ１およびＤｅｌｔａ２は、先行値に対する調整係数を含むことができる。例えば、先行する反復から計算される厳密なデルタ値を使用するのではなく、Ｄｅｌｔａ１値およびＤｅｌｔａ０値をアップ調整またはダウン調整することができる。これには、例えば、スケーリング（低減）なしでは、システムがデルタ変化について許容する上限値などの閾値をＤｅｌｔａＳ値が超えることになる場合、Ｄｅｌｔａ０値およびＤｅｌｔａ１値のうちの一方または両方のスケーリング（低減）を含むことができる。これにより、ＤｅｌｔａＳ値をシステムの限界内に維持することができる。他の調整も同じく可能である。
【００４０】
特定の実装例と整合して、推測デルタ値（ＤｅｌｔａＳ）の計算は、非線形近似を使用して実行することができる。これは、例えばＤｅｌｔａ１値とＤｅｌｔａ２値との間のデルタ値を補間することを含むことができる。システムは、次に、補間された値を含むデルタ値を一致させる非線形アルゴリズムを識別することができる。次に、識別された非線形アルゴリズムを使用してＤｅｌｔａＳ値を決定することができる。これは、３つ以上の先行デルタ値（例えばＤｅｌｔａ３）を記憶すること、および追加デルタ値を使用して非線形アルゴリズムを識別することを同じく含むことができる。それらの組合せも同じく可能である。
【００４１】
本明細書において考察されているように、第１のＰＩ計算回路１０６は、レジスタ１０４から第１の先行デルタ信号を受け取り、第１の先行デルタ信号に対応することになるＰＩコードをもたらすように構成することができる。同様に、第２のＰＩ計算回路１１２は、レジスタ１１０から第２の先行デルタ信号を受け取り、第２の先行デルタ信号に対応することになるＰＩコードをもたらすように構成することができる。第３のＰＩ計算回路１１６は、推測デルタ信号を受け取り、推測デルタ信号に対応することになるＰＩコードをもたらすように構成することができる。位相検出回路１０２が入力データおよび捕捉クロック信号から十分な情報を決定すると、デルタ選択信号を選択回路１０８に提供することができる。次に、選択回路１０８を使用して適切なＰＩコードを選択することができる。例えば選択回路１０８は、異なる推測信号とそれらの対応する値、例えばＰＩコードの間で選択するマルチプレクサとして動作することができる。マルチプレクサの出力は、次に、選択された信号についての最終的な／実際の値として提供される。図１に描写されているように、選択回路１０８は、推測計算回路１１８へのフィードバック／入力として状態信号情報を提供するように構成することも可能である。
【００４２】
ＰＩ計算回路（１０６、１１２、１１６）は、様々な異なる技法および解決法を使用して、それぞれのデルタ値からＰＩコードを生成することができ、様々な異なる技法および解決法の詳細は、特定のアプリケーションに依存し、本開示の範囲外である。例えば、ＰＩ計算回路は、現在のＣＤＲ反復についての情報およびその前のＣＤＲ反復からの情報の両方に基づいてＰＩコードを生成するように構成することができる。したがってＰＩ計算回路は、先行するＣＤＲ反復に関する状態情報を受け取り、この情報を考慮するように構成することができる（例えば累積器を使用して）。特定の例では、その前の状態情報は、ＰＩ計算回路（１０６、１１２、１１６）に位相累積器を使用してＰＩ計算に含むことができる。
【００４３】
図２は、様々な実装例と整合する、推測計算と共に使用するための位相検出回路のブロック図を描写したものである。特に明記されていない限り、ブロック図の構成要素（ブロック）は、デジタル領域、アナログ領域またはそれらの組合せで実装することができる。例えば、いくつかの構成要素は回路と呼ばれ、これらの回路は、個々のブロック毎に個別の専用回路であってもよく、またはブロックのうちの１つもしくは複数は、複数の機能を提供するように構成される共通回路によって実行することができる。例えば、複数の異なるブロックの機能を提供するように単一のデジタル処理回路を構成し、プログラムすることができる。
【００４４】
図２に描写されている位相検出回路は、図１に関連して考察した実装例を含む、本明細書において考察されている実装例と組み合わせて使用することができる。いくつかの実装例と整合して、位相検出は、データがデータレジスタ２０２および２０４のセットによって受け取られるバンバン位相検出器を使用して実装することができる。位相決定回路２０６は、受け取った、捕捉クロック信号に関連するデータに対するアップダウンボート（ｕｐ  ｄｏｗｎ  ｖｏｔｅ）を生成するように構成することができる。簡潔にするために単一のデータ入力が示されているが、この検出は、並列データストリームのセットのデータストリーム毎に実行することができる。並列データストリームは、アップストリーム直並列変換器ロジックブロック（図示せず）から受け取ることができる。検出は、ボートと呼ばれることもある方向（アップ、ダウンまたは変化せず）を示すことができる。並列検出からのボートはチックサム決定回路２０８をもたらす。したがってチックサム出力は、アップストリーム直並列変換器ロジックブロックからの並列データと整合するように配列される複数のデータ入力からの位相決定からの並列結果の合計を表す。描写されている例の位相検出回路の性質に起因して、３つの取り得る結果、すなわち増加／上昇（＋）、減少／下降（−）または無変化／非移動（左への移動−レフト、右への移動または非移動と互換的に使用されることもある）が生成され得る。正味差決定ブロック２１０は、上昇と下降との差を表す正味の差を決定することができ、この正味の差は、ＰＩコードを統計的に移動させるべき方向および生の量を示す。
【００４５】
正味の差は、次に、現在の反復についての位相変化の量を表す値を生成することができる生ステップサイズブロック２１２に提供することができる。また、正味の差は、レジスタ２１４に同じく提供し、記憶することができる。次に、結合器２１６、レジスタ２１８およびフィードバック２２０を使用して過去の値を累積することにより、正味差値についてのヒステリシスを追跡することができる。フィルタ２２２は、レジスタ２１８の出力が結合器２２４に提供される前に、その出力をフィルタリングするように構成することができる。レジスタ２２６は、結果として得られる結合器２２４の出力を記憶することができ、したがって、出力を現在のＣＤＲ反復についてのデルタ信号として選択ロジック２２８に提供することができる。
【００４６】
選択ロジック２２８は、受け取ったデルタ信号に基づいて、受け取ったデルタ信号と一致するＰＩ値のセットを決定し、対応するＰＩ位相移動を創出することができる。本明細書においてより詳細に考察されているように、信号「Ｄｅｌｔａ０」は、図１におけるデルタ選択信号として働く。例えば推測ＰＩコードは、先行デルタ信号値（Ｄｅｌｔａ１およびＤｅｌｔａ２）、ならびに先行デルタ信号値に基づく推測デルタ信号値（ＤｅｌｔａＳ）から生成することができる。選択ロジック２２８は、対応する推測ＰＩコードのうちの使用すべき推測ＰＩコードをＤｅｌｔａ０値に基づいて、および、先行デルタ信号値および推測デルタ信号値の知識に基づいて識別するように構成される。詳細には、選択ロジックは、Ｄｅｌｔａ０値と一致する（またはＤｅｌｔａ０値に近い）Ｄｅｌｔａ１信号、Ｄｅｌｔａ２信号およびＤｅｌｔａＳ信号の中から、推測ＰＩコードの対応するセットを導き、選択することになる信号を決定することができる。詳細には、推測は、次のデルタ信号の値についての近似または最良推量を表すことができ、実際の値と厳密に一致しても、あるいは一致しなくてもよい。
【００４７】
図３は、本開示の実装例と整合する、ＣＤＲ回路を含むシステムのブロック図を描写したものである。連続時間線形等化器（ＣＴＬＥ）３０２を使用して、適合回路３０６からのフィードバックに基づいて等化データ信号をもたらすことにより、受け取ったデータ中のひずみを補償することができる。適合回路３０６は、復号されたデータ中の情報から検出されるひずみに基づいてフィードバックを生成することができる。このフィードバックを使用してＣＴＬＥ３０２のためのパラメータを調整することができ、加算器回路３０４を使用して同じくデータを直接補償することができる。
【００４８】
捕捉フリップフロップ回路３０８は、提供された捕捉クロック信号に基づいて等化データ信号から捕捉されたデータを記憶することができる。記憶されたデータは、直並列変換器回路３１０に提供することができ、直並列変換器回路３１０は、ＰＩからのクロック信号、または内部クロック信号分周器によって分周されたクロック信号を使用して、捕捉フリップフロップ回路からのデータを非直列化することによって出力データを生成する。直並列変換器回路３１０は、システムで使用するためのデータをシステムに提供することができる。
【００４９】
本明細書において考察されているように、受け取ったデータから１つまたは複数の捕捉クロック信号を回復することができる。特定の実装例では、直並列変換器回路３１０は、非直列化（並列）データおよび捕捉クロック信号をＣＤＲ回路３１６に提供することができる。ＣＤＲ回路３１６は、短いレイテンシ回路と整合するＣＤＲ技法および本明細書において考察されている解決法を使用してＰＩコードを生成することができる。ＰＩコードは、ＰＬＬ回路（図示せず）から提供することができるクロック信号のセットから所望の位相を有するクロック信号を選択するためにＰＩ回路３１８によって使用され得る。選択されたクロック信号（すなわちクロック分周器回路３２０からのクロック信号）は捕捉クロックとして使用することができ、捕捉フリップフロップに供給される。
【００５０】
ＣＤＲ回路３１６への非直列化並列データは、データバス全体または一部を異なるＣＤＲ動作クロック周波数で満たすことができることが認識されている。個々のＣＤＲ動作サイクルはＮ−ＵＩ遅延を生成し、Ｎは非直列化係数を表す。ＣＤＲ回路３１６に対するＣＤＲ動作には、完了するのに数サイクルＳを要し得る。ＣＤＲ総内部遅延（レイテンシ）τ＝Ｓ＊Ｎは、システム内の他の構成要素による遅延と比べて重大な遅延になることがあり、ＣＤＲ遅延は、システム性能に対する重大な影響を有し得る。したがって本明細書において考察されているレイテンシが改善されたＣＤＲ回路３１６は、通常はより高いＣＤＲ動作周波数に関連する短い非直列化係数Ｎを使用してＣＤＲ動作サイクルＳを短くすることができる。これは、ＣＤＲ回路３１６のＣＤＲ遅延がシステム性能に重大な影響を及ぼすアプリケーションにはとりわけ有用であり得る。
【００５１】
例えば、既存のシリコンの測定は、ＣＤＲ回路３１６を使用することにより、他のＣＤＲ回路と比較して、システムジッタ耐性を改善することができることを示している。詳細には、レイテンシがより長い同等のＣＤＲ回路についてのジッタ耐性曲線は、１０．５ＭＨｚで低下することがあり、事実上閉じた眼を有し得る。レイテンシがより短いＣＤＲ回路３１６は、同じ周波数でより良好な耐性で機能することを示している。ＣＤＲ回路のレイテンシを短くすることは、１０ＭＨｚを超える周波数で動作することができるＰＣＩ  Ｅｘｐｒｅｓｓ  ３または４（周辺コンポーネント相互接続エクスプレス）の適用例にはとりわけ有用であり得る。
【００５２】
図４は、本開示の実装例と整合する、取り得るデルタ信号値のグラフを描写したものである。図４は、推測計算回路（例えば図１に関連して説明した推測計算回路）がアルゴリズムを適用して推測デルタ値を決定することができる方法を示している。詳細には、図４は、３つの異なる事例、すなわち先行デルタ値（「Ｄｅｌｔａ１」および「Ｄｅｌｔａ２」）に関する状態を示している。個々の事例では、推測デルタ値（「ＤｅｌｔａＳ」）は先行デルタ値に基づいて決定することができる。例えば推測値は、Ｄｅｌｔａ２からＤｅｌｔａ１へのデルタ値変化の速度を決定し、推測ＤｅｌｔａＳ値に対して同じ（または同様の）デルタ変化を投影することによって決定することができる。
【００５３】
Ｃａｓｅ１では、時間と共に大きくなるデルタ値、すなわちＤｅｌｔａ２（４０２）からＤｅｌｔａ１（４０４）まで大きくなるデルタ値が示されている。本明細書において考察されているように、ＤｅｌｔａＳ値（４０６）は、デルタ値が線４０８に沿って連続的に大きくなる投影によって決定される。Ｃａｓｅ２では、時間と共に小さくなるデルタ値、すなわちＤｅｌｔａ２（４１８）からＤｅｌｔａ１（４２０）まで小さくなるデルタ値が示されている。ＤｅｌｔａＳ値（４２２）は、デルタ値が線４２４に沿って連続的に小さくなる投影によって決定される。Ｃａｓｅ３では、Ｄｅｌｔａ２（４１０）からＤｅｌｔａ１（４１２）まで同じ値を維持するデルタ値が示されている。ＤｅｌｔａＳ値（４１４）は、デルタ値が線４１６に沿って同じ値を維持する投影によって決定される。
【００５４】
Ｃａｓｅ３の場合、ＤｅｌｔａＳ値は、デルタ値に対する決定論的方向を予測しないことが認識されている。この状況は、ＣＤＲが適切なクロック位相に首尾よく固定すると（あるいは固定された状態に極めて近くなると）生じ得る。このような実例では、検出される位相差は極めて小さくなり得るか、さらにはゼロになってデルタ値が変化しないことがあり得る。また、Ｃａｓｅ３は、システムが（少なくとも一時的に）スタックした準安定状態にＣＤＲが突入すると同じく生じ得る。これは、データ位相がフィルタの異なる単位間隔（ＵＩ）の間の移行範囲に入ると生じ得る。この事例では、ＣＤＲ内の位相検出器は、ＵＰとＤＯＷＮとの間の小さい差のみを統計的に生成することができる。差は、場合によってはゼロであることもあり、そのためにＣＤＲがある点の周りをさまようことになり得るが、固定することはない（準安定）。システムに対する外部妨害は、ＣＤＲが決定論的方向に移動することになり、次にＣＤＲが真の位相固定に向かって移動することになり得る。
【００５５】
Ｃａｓｅ３の間、ＣＤＲ反復中にデルタ値が変化しても、その同じ反復に対するＰＩコード出力は変化しない。しかしながら、その変化は、Ｄｅｌｔａ１値およびＤｅｌｔａ２値が異なるよう、それらを更新することになる（Ｃａｓｅ１またはＣａｓｅ２）。例えばＣＤＲサイクルに対する実際のデルタ値（「Ｄｅｌｔａ０」）は、現在のＤｅｌｔａ１値に対する増加を表すことができる。次の反復に対して、Ｄｅｌｔａ２値は、その前のＤｅｌｔａ１値を使用して更新され、Ｄｅｌｔａ１値は、その前のＤｅｌｔａ０値を使用して更新される。その結果、Ｄｅｌｔａ１からＤｅｌｔａ２まで増加する（Ｃａｓｅ１）。
【００５６】
Ｃａｓｅ３の考察から明らかなように、Ｃａｓｅ３の間にＤｅｌｔａ０値が変化しても、その対応するＣＤＲ反復の間にＣＤＲ回路の出力（ＰＩコード）は変化しないことがあり得るため、デルタ値に応じたレイテンシはより長くなり得る。変化した後のＣＤＲ反復に対して、ＣＤＲ回路は、デルタ値変化の追跡を正確に再開することになる。捕捉位相を変化させる必要はないため、ＣＤＲが適切に固定されると、ＣＤＲのレイテンシは必ずしも同じほど重大とは限らないことが認識されている。
【００５７】
表１は、選択回路（例えば図１の選択回路１０８に関連して示したような選択回路）を制御するためのデルタ選択信号を生成するための選択ロジックアルゴリズムを描写したものである。特定の実装例と整合して、選択回路は、その前のＣＤＲ反復からのデルタ値（Ｄｅｌｔａ１）と現在のＣＤＲ反復に対するデルタ値（Ｄｅｌｔａ０）の比較に基づいて選択信号を生成することができる。２つの値の間の比較は、容易に、かつ、速やかに実行することができるため、選択信号は、追加サイクルを遅延させる必要なく選択回路に利用することができる。言い換えると、選択回路の出力は、現在のＣＤＲ反復に対するＤｅｌｔａ０値が利用可能である同じサイクルの間、利用することができる。
【００５８】
選択信号を生成するための選択基準は、Ｄｅｌｔａ１値に対するＤｅｌｔａ０値の比較である。例えばＤｅｌｔａ１がＤｅｌｔａ０に等しい個々の実例では、ＰＩコードおよび状態情報の両方に対してＤｅｌｔａ１推測値を選択することができる。Ｃａｓｅ１の場合、デルタ値は増加傾向にある。したがって、Ｄｅｌｔａ０がＤｅｌｔａ１より大きい場合、ＤｅｌｔａＳ（推測デルタ）値が選択され、Ｄｅｌｔａ０がＤｅｌｔａ１より小さい場合、Ｄｅｌｔａ２値が選択される。Ｃａｓｅ２の場合、その逆も真である。Ｃａｓｅ３の場合、Ｄｅｌｔａ１＝Ｄｅｌｔａ２＝ＤｅｌｔａＳである。したがって任意のデルタ値を選択することができる（表１は、Ｄｅｌｔａ１値が選択されることを示している）。
0006561195.tif 000002
【００５９】
図５は、本開示の実装例による、ＣＤＲ回路を使用するためのフローチャートを描写したものである。実装例と整合して、様々なブロックは、ＣＤＲ回路によって実行される異なるアクションを表すことができ、矢印は、アクション間のタイミングフローを表すことができる。アクションの特定のセットは拡張または縮小が可能であること、および、アクションの様々な順序は変更が可能であることが認識されている。
【００６０】
位相固定ループ回路は、ブロック５０２で、捕捉クロック信号の位相を生成し、および／または調整するように構成することができる。特定の実装例では、位相調整は、ＰＩをベースとするＣＤＲ回路と共に使用するために構成することができ、調整には、相対位相オフセットを有する複数のクロック信号からのクロック信号の選択が必要である。ブロック５０４で、ＣＤＲ回路によって、トランスミッタの対応するクロック信号の回復に使用するためのデータ信号を受け取ることができる。いくつかの実装例と整合して、受け取ったデータ信号は、同じくブロック５０４で非直列化される直列データ信号であってもよい。
【００６１】
位相検出回路は、次に、ブロック５０６で、データ信号と捕捉クロック信号との間の位相差を検出してデルタ信号をもたらすことができる。それと同時に、あるいは位相検出が完了する少なくとも前に、ブロック５０８、５１０および５１２で、複数のデルタ値に対する推測ＰＩコードを計算することができる。本明細書において考察されているように、２つのデルタ値は、先行するＣＤＲ反復からの値であってもよく、第３のデルタ値は、先行データ値に基づく推測／予測デルタ値であってもよい。
【００６２】
ブロック５１４で、位相検出回路を使用して、検出した位相差および先行デルタ値に基づいてデルタ選択信号を生成することができる。次に、ブロック５１６で、デルタ選択信号を選択回路に提供し、第１のセットのＰＩコード、第２のセットのＰＩコード、および第３のセットのＰＩコードの間で選択することができる。選択回路は、次に、ブロック５１８で、ＰＩコードを出力として提供することができる。さらに、ブロック５１８で、本明細書においてより詳細に考察されているように、推測ＰＩコードを生成するために使用されるデルタ値を更新することができる。例えば、最も最近に決定されたデルタ値が新しいＤｅｌｔａ０値になり、その前のＤｅｌｔａ０値が新しいＤｅｌｔａ１値になり、新しいＤｅｌｔａ０値とＤｅｌｔａ１値の差からＤｅｌｔａＳ値を計算することができる。次に、ブロック５０２に従って次のＣＤＲ反復を開始することができる。
【００６３】
図６は、開示されている回路およびプロセスを実装することができるプログラマブル集積回路（ＩＣ）６００を示したものである。プログラマブルＩＣは、他のプログラマブル資源と共にフィールドプログラマブルゲートアレイロジック（ＦＰＧＡ）を含むシステムオンチップ（ＳＯＣ）と呼ぶことも可能である。ＦＰＧＡロジックは、いくつかの異なるタイプのプログラマブルロジックブロックをアレイで含むことができる。例えば図６は、マルチ−ギガビットトランシーバ（ＭＧＴ）６０１、構成可能ロジックブロック（ＣＬＢ）６０２、ランダムアクセスメモリブロック（ＢＲＡＭ）６０３、入力／出力ブロック（ＩＯＢ）６０４、構成およびクロッキングロジック（ＣＯＮＦＩＧ／ＣＬＯＣＫＳ）６０５、デジタル信号処理ブロック（ＤＳＰ）６０６、専用入力／出力ブロック（Ｉ／Ｏ）６０７、例えばクロックポート、およびデジタルクロックマネージャなどの他のプログラマブルロジック６０８、アナログ−デジタル変換器、システム監視ロジック、等々を含む極めて多数の異なるプログラマブルタイルを含むプログラマブルＩＣ６００を例示したものである。いくつかの実装例では、Ｉ／Ｏは、ここで考察されている回路と整合するＣＤＲ機能を提供するように構成することができる。ＦＰＧＡロジックを有するいくつかのプログラマブルＩＣは、専用プロセッサブロック（ＰＲＯＣ）６１０ならびに内部および外部再構成ポート（図示せず）を同じく含む。
【００６４】
いくつかのＦＰＧＡロジックでは、個々のプログラマブルタイルは、個々の隣接するタイル内の対応する相互接続要素への標準化された接続、および個々の隣接するタイル内の対応する相互接続要素からの標準化された接続を有するプログラマブル相互接続要素（ＩＮＴ）６１１を含む。したがって、プログラマブル相互接続要素は、一緒になって、例示されているＦＰＧＡロジックのためのプログラマブル相互接続構造を実装する。また、プログラマブル相互接続要素ＩＮＴ６１１は、図６の一番上に含まれている例によって示されているように、同じタイル内のプログラマブルロジック要素への接続、および同じタイル内のプログラマブルロジック要素からの接続を同じく含む。
【００６５】
例えばＣＬＢ６０２は、ユーザロジックプラス単一のプログラマブル相互接続要素ＩＮＴ６１１を実装するようにプログラムすることができる構成可能ロジック要素ＣＬＥ６１２を含むことができる。ＢＲＡＭ６０３は、１つまたは複数のプログラマブル相互接続要素に加えて、ＢＲＡＭロジック要素（ＢＲＬ）６１３を含むことができる。典型的には、タイルに含まれる相互接続要素の数はタイルの高さで決まる。描かれている実装例では、ＢＲＡＭタイルは、５個のＣＬＢと同じ高さを有しているが、他の数（例えば４個）も同じく使用することができる。ＤＳＰタイル６０６は、適切な数のプログラマブル相互接続要素に加えて、ＤＳＰロジック要素（ＤＳＰＬ）６１４を含むことができる。ＩＯＢ６０４は、プログラマブル相互接続要素ＩＮＴ６１１の１つの実例に加えて、例えば入力／出力ロジック要素（ＩＯＬ）６１５の２つの実例を含むことができる。当業者には明らかであるように、例えばＩ／Ｏロジック要素６１５に接続される実際のＩ／Ｏボンドパッドは、例示されている様々なロジックブロックの上方に層にされた金属を使用して製造され、典型的には入力／出力ロジック要素６１５の区域に限定されない。
【００６６】
描かれている実装例では、ダイの中心に近い支柱状の区域（図６には陰影が施されて示されている）は、構成、クロックおよび他の制御ロジックのために使用される。列から延在している水平方向の区域６０９は、プログラマブルＩＣの広さ全体にわたってクロック信号および構成信号を分配するために使用される。「支柱状の」および「水平方向の」区域の参照は、写真配向における図面の観察に関するものであることに留意されたい。
【００６７】
図６に例示されているアーキテクチャを利用しているいくつかのプログラマブルＩＣは、プログラマブルＩＣの大きな部分を構築している規則的な支柱状構造を乱す追加ロジックブロックを含む。この追加ロジックブロックは、プログラマブルブロックおよび／または専用ロジックであってもよい。例えばプロセッサブロックＰＲＯＣ６１０は、図６には、ＣＬＢおよびＢＲＡＭのいくつかの列にわたって示されている。
【００６８】
図６には、例示的プログラマブルＩＣアーキテクチャのみを例示することが意図されていることに留意されたい。列中のロジックブロックの数、列の相対幅、列の数および順序、列に含まれているロジックブロックのタイプ、ロジックブロックの相対サイズ、および図６の一番上に含まれている相互接続／ロジック実装例は、単なる例示的なものにすぎない。例えば実際のプログラマブルＩＣでは、ユーザロジックの有効な実装例を容易にするために、ＣＬＢが出現するところではどこにでもＣＬＢの複数の隣接する列が典型的に含まれている。
【００６９】
プログラムコードを使用して構成された１つまたは複数のプロセッサおよびメモリ構造を含む様々な代替計算構造は、本明細書において開示されている機能（例えば周波数決定機能および制御機能）を実行することができるプロセスおよびデータ構造をホストするのに適していることを当業者は認識するであろう。さらに、プロセスは、磁気ディスクもしくは光ディスクもしくは磁気テープもしくは光学テープ、電子記憶デバイス、またはネットワークを介したアプリケーションサービスなどの様々なコンピュータ可読記憶媒体または配信チャネルを介して提供することができる。
【００７０】
態様および特徴は、いくつかの事例では、個々の図において説明され得るが、１つの図からの特徴は別の図の特徴と組み合わせることが可能であり、たとえその組合せが明示的に示されていなくても、またはその組合せが組合せとして明示的に説明されていなくても、可能であることが認識されよう。
【００７１】
方法およびシステムは、ＣＤＲ回路を使用する様々なシステムに適用され得ると考えらえる。本明細書を考慮することにより、当業者には他の態様および特徴が明らかであろう。方法およびシステムの一部は、ソフトウェアを実装するように構成される１つまたは複数のプロセッサとして、特定用途向け集積回路（ＡＳＩＣ）として、あるいはプログラマブルロジックデバイス上のロジックとして実現することができる。その上、本明細書において識別されている様々な回路は、共通コンピュータ処理ユニットまたはデジタル処理ユニットの使用など、ハードウェア回路機構を共有することができる。本明細書および図面は単なる例として考慮されるべきであり、本発明の真の範囲は、以下の特許請求の範囲によって示されることが意図されている。
【図１】
0006561195.tif 000003
【図２】
0006561195.tif 000004
【図３】
0006561195.tif 000005
【図４】
0006561195.tif 000006
【図５】
0006561195.tif 000007
【図６】
0006561195.tif 000008