(57)【特許請求の範囲】
【請求項１】
受信機のための方法であって、
前記受信機のクロックデータリカバリブロックの準安定状態をチェックすることと、
前記受信機の位相補間器への位相入力を変更して、前記受信機の前記クロックデータリカバリブロックを制限時間内に前記準安定状態から抜け出させることと
を含み、前記チェックすることは、
受信データの第１の位相値と第２の位相値との間の位相差を決定する、第１の決定することであって、前記第１の位相値及び前記第２の位相値が、前記受信データのサンプルの異なるセットから異なる時間に決定される、第１の決定することと、
前記準安定状態にある前記クロックデータリカバリブロックのための閾値よりも、前記位相差が小さいことを決定する、第２の決定することと
を含む、方法。
【請求項２】
前記受信機の受信機フロントエンドによって送信データを受信して、前記受信データを提供することと、
前記受信データの第１のサンプリングを行って、それについての第１のサンプルを提供することと、
前記第１のサンプリングからある時間後に、前記受信データの第２のサンプリングを行って、それについての第２のサンプルを提供することと、
前記クロックデータリカバリブロックによって、前記第１のサンプルから前記第１の位相値を決定し、前記第２のサンプルから前記第２の位相値を決定することと、
前記位相差を前記閾値と比較することと、
前記位相差が前記閾値よりも小さいことに応答して、前記位相補間器への前記位相入力をシフトすることと
を更に含む、請求項１に記載の方法。
【請求項３】
前記位相入力は、前記クロックデータリカバリブロックを前記準安定状態から抜け出させるように、１ＵＩ期間のプラス又はマイナス約９０度だけシフトされた前記第１の位相値又は前記第２の位相値のいずれかである、請求項２に記載の方法。
【請求項４】
前記位相入力の前記シフトは、２つ以上の部分的調整のシーケンスである、請求項２又は３に記載の方法。
【請求項５】
前記第１のサンプル及び前記第２のサンプルが、それぞれ、第１のデータサンプル及び第２のデータサンプルであり、
前記第１の位相値及び前記第２の位相値が、それぞれ、第１の位相補間器コード値及び第２の位相補間器コード値である、請求項２から４のいずれか一項に記載の方法。
【請求項６】
前記閾値は、単位間隔期間を複数の等間隔チックに分割する位相補間器コードの４つの増分である、請求項２から５のいずれか一項に記載の方法。
【請求項７】
前記受信データのデータバースト開始に応答して開始信号をアサートすることと、
前記第１の位相値を登録する、第１の登録することと、
クロック信号のクロックパルスをある数までカウントすることと、
前記開始信号のアサートからクロックパルスの前記数に達したことに応答して、前記第２の位相値を登録する、第２の登録することと
を更に含む、請求項２から６のいずれか一項に記載の方法。
【請求項８】
サンプルを受信して、前記サンプルの第１の位相値及び第２の位相値を決定し、前記第１の位相値と前記第２の位相値との間の位相差を決定するように結合されたクロックデータリカバリブロックであって、
前記第１の位相値及び前記第２の位相値が、前記サンプルの異なるセットから異なる時間に決定される、クロックデータリカバリブロックと、
前記クロックデータリカバリブロックから位相入力を受信するように、前記クロックデータリカバリブロックに結合された位相補間器であって、
前記クロックデータリカバリブロックが、前記準安定状態にある前記クロックデータリカバリブロックのための閾値よりも前記位相差が小さいと決定し、前記位相入力を変更して、前記クロックデータリカバリブロックの前記準安定状態から抜け出るように構成される、位相補間器と
を備える、受信機システム。
【請求項９】
送信データを受信して受信データを提供するように結合された受信機フロントエンドと、
前記受信データを受信して前記サンプルを提供するように結合されたサンプラと
を更に備える、請求項８に記載のシステム。
【請求項１０】
前記サンプラは、前記受信データをサンプリングして、前記サンプルの第１のサンプル及び第２のサンプルを提供するように結合され、
前記クロックデータリカバリブロックは、前記第１のサンプルから前記第１の位相値を決定し、前記第２のサンプルから前記第２の位相値を決定するように結合される、請求項９に記載のシステム。
【請求項１１】
前記位相入力は、前記クロックデータリカバリブロックを前記準安定状態から抜け出させるように、プラス又はマイナス約９０度だけシフトされた前記第１の位相値又は前記第２の位相値のいずれかである、請求項１０に記載のシステム。
【請求項１２】
前記第１の位相値及び前記第２の位相値が、それぞれ、第１の位相補間器コード値及び第２の位相補間器コード値である、請求項１０又は１１に記載のシステム。
【請求項１３】
前記閾値は、単位間隔期間を複数の等間隔チックに分割する位相補間器コードの４つの増分である、請求項１０から１２のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の説明は、集積回路デバイス（「ＩＣ」）に関する。より詳細には、以下の説明は、ＩＣ内の受信機のバーストモードに対する高速ロッククロックデータリカバリに関する。
【背景技術】
【０００２】
受信機は、有線または無線のデータ通信で使用される。一部のネットワークでは、携帯電話、インターネット、ボイスオーバーインターネットプロトコル（「ＶＯＩＰ」）、データセンター、その他のネットワークのいずれの場合でも、クロック信号がデータから推測される。そのようなアプリケーションでは、受信機は、送信データから再生クロックを得るためにクロックデータリカバリ（「ＣＤＲ」）を使用する。この送信データは、データペイロードが後に続くプリアンブルを各パケットが含む短いバーストパケットで送信されてもよい。パケットは、互いに対して異なる位相で、ネットワーク上の送信機から駆動されてもよい。ＣＤＲを有する受信機は、新しいデータバーストの各々をトラッキングするように構成されてもよく、このトラッキングは、プリアンブルの長さによって制限される時間制限を有してもよい。したがって、バーストモードのための高速ロックＣＤＲを提供することが望ましく、有用である。
【発明の概要】
【０００３】
方法は、一般に受信機に関する。そのような方法では、準安定状態について受信機のクロックデータリカバリブロックのチェックが実行される。受信機のクロックデータリカバリブロックを制限時間内に準安定状態から抜け出させるように、受信機の位相補間器への位相入力が、変更される。準安定状態をチェックするために、受信データの位相差が決定され、位相差は、クロックデータリカバリブロックが準安定状態にあるための閾値よりも小さいと判定される。
【０００４】
任意選択で、本方法は、受信機の受信機フロントエンドによって送信データを受信して、受信データを提供することと、受信データに第１のサンプリングを行って、その第１のサンプルを提供することと、受信データに第２のサンプリングを行って、第１のサンプリングからある時間後にその第２のサンプルを提供することと、第１のサンプルから第１の位相値および第２のサンプルから第２の位相値をクロックデータリカバリブロックによって決定することと、第１の位相値と第２の位相値との間として受信データの位相差を取得することと、位相差を閾値と比較することと、位相差が閾値よりも小さいことに応答して、位相補間器への位相入力をシフトすることと、を更に含む。
【０００５】
任意選択で、位相入力は、クロックデータリカバリブロックを準安定状態から抜け出させるように、１ＵＩ期間のプラスまたはマイナス約９０度だけシフトされた第１の位相値または第２の位相値のいずれかである。
【０００６】
任意選択で、位相入力のシフトは、２つ以上の部分的調整のシーケンスである。
【０００７】
任意選択で、第１のサンプルおよび第２のサンプルは、それぞれ第１のデータサンプルおよび第２のデータサンプルであり、第１の位相値および第２の位相値は、それぞれ、第１の位相補間器コード値および第２の位相補間器コード値である。
【０００８】
任意選択で、閾値は、位相補間器コードの約４つの増分である。
【０００９】
任意選択で、本方法は、受信データのデータバースト開始に応答して開始信号をアサートすることと、第１の位相値を登録する第１の登録することと、クロック信号のクロックパルスのある数までカウントすることと、開始信号のアサートからクロックパルスの前記数に達するのに応答して、第２の位相値を登録する第２の登録することと、をさらに含む。
【００１０】
装置は、一般に受信機システムに関する。このような装置では、クロックデータリカバリブロックが、サンプルの第１の位相値および第２の位相値を決定するために、サンプルを受信するように、結合される。第１の位相値および第２の位相値は、異なる時間に決定される。位相補間器は、クロックデータリカバリブロックに結合され、クロックデータリカバリブロックから位相入力を受信する。クロックデータリカバリブロックは、位相入力を変更してクロックデータリカバリブロックの準安定状態から抜け出るように、構成される。
【００１１】
任意選択で、クロックデータリカバリブロックは、第１の位相値と第２の位相値との間の位相差を決定するように構成される。
【００１２】
任意選択で、クロックデータリカバリブロックは、位相差が閾値未満であることに対して、位相入力を変更するように、構成される。
【００１３】
任意選択で、システムは、送信されたデータを受信して受信データを提供するように結合された受信機フロントエンドと、受信データを受信してサンプルを提供するように結合されたサンプラとをさらに含む。
【００１４】
任意選択で、サンプラは、受信データをサンプリングして、サンプルの第１のサンプルおよび第２のサンプルを提供するように結合され、クロックデータリカバリブロックは、第１のサンプルから第１の位相値および第２のサンプルから第２の位相値を決定するように結合される。
【００１５】
任意選択で、位相入力は、クロックデータリカバリブロックを準安定状態から抜け出させるように、プラスまたはマイナス約９０度だけシフトされた第１の位相値または第２の位相値のいずれかである。
【００１６】
任意選択で、第１のサンプルおよび第２のサンプルは、それぞれ、第１のデータサンプルおよび第２のデータサンプルである。
【００１７】
任意選択で、第１の位相値および第２の位相値は、それぞれ、第１の位相補間器コード値および第２の位相補間器コード値である。
【００１８】
任意選択で、閾値は、位相補間器コードの約４つの増分である。
【００１９】
装置は、一般に受信機に関する。このような装置では、クロックデータリカバリブロックが、サンプルを受信し、サンプルの第１の位相値および第２の位相値を決定し、位相補間器入力を提供するように、結合される。第１の位相値および第２の位相値は、異なる時間に決定される。クロックデータリカバリブロックは、第１の位相値と第２の位相値との間の位相差を決定するように構成される。クロックデータリカバリブロックは、位相差が閾値未満であることに対して、位相補間器入力を変更するように、構成される。
【００２０】
任意選択で、クロックデータリカバリブロックは、第１のサンプルから第１の位相値および第２のサンプルから第２の位相値を決定するように結合される。クロックデータリカバリブロックは、第１の位相値を記憶し、第１の位相値が記憶されてからある期間後に、第２の位相値を読み取り、第１の位相値と第２の位相値との間の位相差を与え、位相差を閾値と比較し、位相差が閾値よりも小さいことに応答して、位相補間器への位相補間器入力をシフトするように構成されたチェッカ回路を含んでもよい。
【００２１】
任意選択で、チェッカ回路は、第１の位相値と第２の位相値との間の追加の位相値を読み取るようにさらに構成される。チェッカ回路は、バーストの開始を示す開始信号を受信するように結合されてもよく、第２の位相値は、開始信号のアサート及び前記期間に達したことに応答して読み取られる。
【００２２】
任意選択で、位相入力は、クロックデータリカバリブロックを準安定状態から抜け出させるようにプラスまたはマイナス約９０度だけシフトされた第１の位相値または第２の位相値のいずれかである。
【００２３】
他の特徴が、以下の詳細な説明および特許請求の範囲の考察から認識されるであろう。
【００２４】
添付の図面は、例示的な装置および／または方法を示す。しかしながら、添付の図面は、特許請求の範囲を限定するものではなく、説明及び理解のためのものである。
【図面の簡単な説明】
【００２５】
【図１】受信機の例示的なクロックデータリカバリ（「ＣＤＲ」）プロセスを示すフロー図である。
【図２】例示的な受信機システムを示すブロック図である。
【図３】図２の受信機システムの例示的なＣＤＲプロセスを示すフロー図である。
【図４】図４−１から図４−４は、例示的なサンプリングのための例示的なＲＸデータをそれぞれ示す同じ信号図である。
【図５】ＣＤＲのチェッカ回路によって使用される例示的なチェッカフローを示すフロー図である。
【図６】例示的な柱状フィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）アーキテクチャを示す簡略ブロック図である。
【発明を実施するための形態】
【００２６】
以下の説明では、本明細書に記載される特定の例のより完全な説明を提供するために、多数の特定の詳細が示される。しかしながら、当業者には明らかなように、１つ以上の他の例および／またはこれらの例の変形例が、以下に示される特定の詳細のすべてを伴わずに実施されてもよい。他の例では、本明細書の例の説明を不明瞭にしないように、周知の特徴については詳細には説明していない。説明を容易にするために、同一の番号ラベルが、同じ項目を参照するために異なる図で使用されている。しかしながら、代替的な例では、項目は異なっていてもよい。
【００２７】
いくつかの図に例示的に描かれた例を説明する前に、さらなる理解のために一般的な前置きが提供される。
【００２８】
いくつかの受信機では、位相をサンプルにアラインメントすることによってクロック信号を得ることができ、これはロックを得ることとして知られている。一部の高速アプリケーションでは、そのようなロックを得るために割り当てられた時間が短いことがある。したがって、クロック信号を生成するためにロックを得るのに使用される受信機の回路は、誤った情報の出力を避けるために、そのようなロックを得るための時間がほとんどないことがある。このようにして、クロック信号は、受信された送信データのサンプルを取得し、そのようなサンプルの位相にアラインメントする方法を決定することによって推測され得る。このようなサンプルからの位相情報の生成は、クロックデータリカバリとして知られているものによって実行することができる。
【００２９】
以下でさらに詳細に説明するように、クロックデータリカバリが制限時間内にロックを得るのを保証するために、そのようなクロックデータリカバリは、いかなる延長された時間長の間も「スタック」位置にあってはならない。このスタック位置は、準安定状態と呼ぶことができる。これは、丘の上のボールに類推され得る。丘の頂上では、ボールは一時的に動かないが、最終的に丘を転がり落ちる。しかし、ボールが最終的に丘を転がり落ちるのを待つのに十分な時間がないので、ボールを押して、ボールが早く丘を転がり落ちるようにする。以下の説明では、位相はボールであり、現在の位相値を強制的にシフトさせることによって位相が押され、早くロックを得る。この類推において、ボールの最終位置の正しい位置は丘の底部であり、ボールは、丘の頂上からよりも斜面の中央からより速くこの正しい位置に到達する。ボールが丘の頂上にある（すなわち、準安定状態）または丘の底部にある（すなわち、安定状態）場合、ボールは斜面に移動して、両方の状況（すなわち、状態）において、ボールは最終的に丘の底部に転がり戻ることができる。言うまでもなく、これは理解のためだけの単なる類推に過ぎず、ロックをより早く得るために強制的なシフトによって位相が押され得るという以下の説明を限定するものではない。
【００３０】
以下でさらに詳細に説明するように、クロックデータリカバリブロックが準安定状態にあるかどうかの判定を行うことができる。クロックデータリカバリブロックが準安定状態にある場合、位相値は、より迅速にロックを得るために、シフトされ得る。
【００３１】
上記の一般的な理解を念頭に置いて、受信機のための様々な構成を以下に一般的に説明する。
【００３２】
図１は、受信機の例示的なクロックデータリカバリ（「ＣＤＲ」）プロセス１００を示すフロー図である。ＣＤＲプロセスは、約１０ギガビット（「１０Ｇ」）受動光ネットワーク（「ＰＯＮ」）アプリケーションなどの、バーストモードアプリケーションのためのＣＤＲロックを得るために使用されてもよい。たとえば、１０Ｇ  ＥＰＯＮアプリケーションでは、４００ｎｓ未満のＣＤＲロック時間を取得できる。
【００３３】
ＣＤＲプロセス１００は、１０１において、受信機のＣＤＲブロックの準安定状態をチェックする。１０２において、ＣＤＲプロセス１００は、前記受信機の前記ＣＤＲブロックを制限時間内に前記準安定状態から抜け出させるように、前記受信機の位相補間器への位相入力を変更する。この制限時間は、バーストモードアプリケーションのＣＤＲロック制限時間よりもはるかに短い。しかしながら、ＣＤＲブロックを準安定状態から強制的に抜け出させることにより、前記ＣＤＲブロックは、前記アプリケーションに対して指定され得る制限時間内にバーストモードアプリケーションに対するロックを得ることができる。
【００３４】
１０１におけるチェックは、１１１および１１２におけるオペレーションを含むことができる。１１１において、受信データの位相差が決定され得る。１１２において、前記位相差は、ＣＤＲブロックの閾値よりも小さいと判定され得る。この位相差における変化の欠如は、前記ＣＤＲブロックが準安定状態にあることを示し得る。
【００３５】
図２は、例示的な受信機システム２００を示すブロック図である。受信機システム２００は、受信機フロントエンド２０１、サンプラ２０２、ＣＤＲブロック２０３、および位相補間器（「ＰＩ」）２０４を含む。ＣＤＲブロック２０３は、以下でさらに詳細に説明するように、準安定チェッカ回路２２０を含むことができる。受信機フロントエンド２０１、サンプラ２０２、およびＰＩ２０４は周知であるので、明瞭にするために、これに関する不要な詳細はここでは説明しない。
【００３６】
受信機フロントエンド２０１は、送信（「ＴＸ」）データ２１１を受信して受信（「ＲＸ」）データ２１２を提供するように結合されてもよい。サンプラ２０２は、ＲＸデータ２１２を受信してサンプル２１３を提供するように結合されてもよい。よく知られているように、ＲＸデータ２１２は、互いに重なり合ってデータクロッシングを有するデータアイを形成する複数の信号であってもよい。このようにして、サンプラ２０２は、データサンプルおよびクロッシングサンプルを含むことができるサンプル２１３を出力することができる。サンプリングクロック信号（図示せず）が、様々なタイプのサンプリングのいずれかのためにサンプラ２０２に供給されてもよい。
【００３７】
ＣＤＲブロック２０３が、データサンプルなどのサンプル２１３を受信して、前記サンプル２１３の第１の位相値および第２の位相値を決定するように、結合され得る。これらの第１および第２の位相値は、異なる時間に、すなわち、ＣＤＲブロック２０３が準安定状態にスタックしているかどうかを決定するのに十分な時間間隔をおいて、決定することができる。サンプラ２０２は、ＲＸデータ２１２をサンプリングして、サンプル２１３の第１のサンプルおよび第２のサンプルを提供するように結合することができ、ＣＤＲブロック２０３は、サンプル２１３の前記第１のサンプルから第１の位相値を、および前記第２のサンプルから第２の位相値を決定するように結合することができる。
【００３８】
受信機システム２００は、シリアルデータをパラレルデータに変換するように構成することができる。このようにして、ＣＤＲブロック２０３は、第１の位相値および第２の位相値を決定する間に位相値決定間隔を有するように構成されてもよい。この間隔は、ＣＤＲ２０３に供給されるパラレルクロック信号２１７のＸ個のクロックサイクルをＹ単位間隔（「ＵＩ」）で乗じたものであってもよい。例えば、ＣＤＲブロック２０３は、第１の位相値を決定してから、約３２ＵＩを乗じたパラレルクロック信号２１７の約４個のパラレルクロックサイクル、すなわち約１２８ＵＩ後に、第２の位相値を決定するように、構成されてもよい。例えば、１０Ｇ  ＥＰＯＮまたは他のバーストモードＣＤＲ（「ＢＭＣＤＲ」）アプリケーションなどの、約１０Ｇネットワーキングアプリケーションの場合、１０Ｇはデータレートであり、ＵＩはデータレートの逆数である。ＢＭＣＤＲアプリケーションでは、ＣＤＲロックを８００  ＵＩ以下に指定することができる。
【００３９】
チェッカ回路２２０は、ＦＰＧＡファブリックなどのプログラマブルロジックデバイスのプログラマブルリソース内にコンフィギュレーションデータストリームを介して実装することができ、または専用回路（「ハードウェア」）に実装することができる。プログラマブルリソース内での実装のために、ＣＤＲブロック２０３のステータスが、ＦＰＧＡ内のトランシーバのデジタルモニタブロック（「ＤＭＯＮ」）を使用することによって、またはダイレクトポート接続によってモニタすることができる。ロック制限時間を満たすために再生クロックを調整するかどうかを決定するデジタル論理が、ＦＰＧＡファブリックまたは専用回路に実装されることができる。ＣＤＲブロックに接続されたＦＰＧＡのダイナミックリコンフィギュレーションポート（「ＤＲＰ」）や専用のオーバーライドロジックなどを介して、再生クロック位相を適時に上書きすることができる。開始信号２１８が、以下でさらに詳細に説明される理由により、チェッカ回路２１８に供給されてもよい。開始信号２１８は、受信データの新しいバーストの開始を示すためにアサートされてもよい。
【００４０】
位相補間器２０４が、ＣＤＲブロック２０３に結合され、ＣＤＲブロック２０３からＰＩ位相コード入力（「位相入力」）２１４を受信する。ＣＤＲブロック２０３は、位相入力２１４を変更して、ＣＤＲブロック２０３の準安定状態から抜け出るように、構成することができる。
【００４１】
ＣＤＲブロック２０３のチェッカ回路２２０は、第１の位相値と第２の位相値との間の位相差を決定するように構成することができる。ＣＤＲブロックのチェッカ回路２２０は、閾値信号２１９を介してＣＤＲ２０３のチェッカ回路２２０に提供され得る閾値の値（「閾値」）未満の位相差について位相入力２１４を変更するように構成することができる。
【００４２】
位相補間器２０４にそれぞれ供給される位相入力２１４および基準クロック信号２１６に応答して、位相補間器２０４は、受信機システム２００の動作のために１つ以上のクロック信号２１５を生成することができる。クロック信号２１５の１つ以上を受信機フロントエンド２０１に供給することができる。
【００４３】
図３は、受信機システム２００の例示的なＣＤＲプロセス３００を示すフロー図である。ＣＤＲプロセス３００は、図１のＣＤＲプロセス１００とともに使用することができる。図１〜図３を同時に参照して、ＣＤＲプロセス３００についてさらに説明する。
【００４４】
３０１において、ＴＸデータ２１１が、ＲＸデータ２１２を提供するために、受信機システム（「受信機」）２００の受信機フロントエンド２０１によって受信されてもよい。３０２において、ＲＸデータ２１２は、サンプラ２０２によってサンプリングされて、第１のサンプルを提供することができ、これに先に説明したような待機時間３０３が続くことができる。
【００４５】
３０４において、ＲＸデータ２１２は、３０２での第１のサンプリングから待機時間後に、サンプラ２０２によってサンプリングされて、第２のサンプルを提供することができる。３０５において、ＣＤＲブロック２０３によって、第１の位相値が前記第１のサンプルから決定され、第２の位相値が前記第２のサンプルから決定され得る。任意選択で、３０５において、追加の位相値が、チェッカ回路２２０によって、前記第１および第２の位相値の間で読み取られて、前記位相値のすべてまたは一部、例えば任意のまたはすべての追加の位相値並びに前記第１および第２の位相値、を平均することを可能にし、この平均化によって得られた平均値が、その後、ノイズ除去のために使用されてもよい。例えば、チェッカ回路２２０は、前記第１および第２の位相値についての、それぞれ、前記第１および第２の読み取りの間の所定の期間に、１つ以上の追加の読み取りを行うように構成されてもよい。限定ではなく例として明瞭にするために、前記第１のサンプルおよび前記第２のサンプルはそれぞれ第１のデータサンプルおよび第２のデータサンプルであると仮定される。
【００４６】
３０６において、ＲＸデータ２１２における位相差が、前記第１の位相値と第２の位相値との間として得られる。３０７において、前記位相差を閾値と比較することができる。前記位相差が前記閾値以上である場合、３０８において、位相入力は、ＣＤＲブロック２０３が準安定状態にあることが検出されていないので、ＣＤＲブロック２０３の準安定状態を抜けるための何らの変更またはシフトなしに、位相補間器２０４への入力として渡されることができる。しかしながら、３０７において、前記位相差が前記閾値より小さい場合には、３０９において、位相入力は、ＣＤＲブロック２０３が準安定状態であることが検出されているので、位相補間器２０４へ入力として供給する前に、ＣＤＲブロック２０３の準安定状態を抜け出るためにシフトされ得る。
【００４７】
３０８での位相入力は、前記第１の位相値または前記第２の位相値のいずれかであり得る。３０９における位相入力は、受信機２００のループ２２５を周る当該情報の伝搬によってＣＤＲブロック２０３が準安定状態を出るように、プラス若しくはマイナス約９０度又は他のある量だけシフトされた前記第１の位相値または前記第２の位相値のいずれかであり得る。前記第１の位相値および前記第２の位相値は、それぞれ、第１の位相補間器コード値および第２の位相補間器コード値であってもよい。前記閾値は、位相補間器２０４の位相補間器コードの約４つの増分である変化またはデルタであってもよい。例えば、位相補間器２０４は、ＵＩを、１６，３２，６４、または他のある数などの幾つかの等間隔チックに分割することができ、したがって、４つの増分は固定位相差を表し得る。
【００４８】
ＣＤＲブロックの準安定状態をより明確に理解するために、データがデータアイの中央でサンプリングされ、クロッシングがデータサンプルから０．５ＵＩ離れているバンバンＣＤＲが使用されると仮定する。図４−１〜図４−４は、それぞれ、例示的なサンプリング４０１〜４０４のための例示的なＲＸデータ２１２を示す同じ信号図である。
【００４９】
サンプリング４０１では、データは４１１でサンプリングされ、対応するクロッシングは４１２にある。この例では、サンプラ２０２によって使用されるＲＸクロックが、データアイの中央でデータをサンプリングするために配置され、したがって、各クロッシングサンプルは、それに対応する現在のデータサンプルと同じである可能性が５０パーセントである。例えば、データが論理１である場合、クロッシングが論理１である可能性は５０−５０である。
【００５０】
サンプリング４０２については、データは４２１でサンプリングされ、対応するクロッシングは４２２にある。この例では、サンプラ２０２によって使用されるＲＸクロックは、データを早期に、すなわちデータアイの中央の左側でサンプリングするように配置されているので、各クロッシングサンプルは、それに対応する現在のデータサンプルと同じになる可能性が非常に高い。
【００５１】
サンプリング４０３については、データは４３１でサンプリングされ、対応するクロッシングは４３２にある。この例では、サンプラ２０２によって使用されるＲＸクロックは、データを遅く、すなわちデータアイの中央の右側でサンプリングするように配置されているので、各クロッシングサンプルは、それに対応する現在のデータサンプルと同じになる可能性が非常に低い。
【００５２】
サンプリング４０４については、データは４４１でサンプリングされ、対応するクロッシングは４４２にある。この例では、サンプラ２０２によって使用されるＲＸクロックは、データアイの中央から０．５ＵＩオフセット、すなわち、早いクロッシング位置でデータアイの中央の左でデータをサンプリングするように配置されているので、各クロッシングサンプルは、それに対応する現在のデータサンプルと同じである可能性が５０パーセントである。例えば、データが論理０である場合、クロッシングが論理０である可能性は５０−５０である。
【００５３】
この情報を用いて、ＲＸデータアイの中央でサンプリングするために、データサンプラ２０２によって使用されるＲＸクロックの位置を維持して、ＲＸデータストリーム２１２に対するＲＸクロックの任意の移動を迅速に補正するデジタル論理とともに、ＣＤＲフィードバックループ２２５を構築することができる。しかしながら、ＲＸクロックが図４−４のように配置されている場合、ＣＤＲ２０３は、クロッシングサンプルに一致するデータサンプルを有し（早い）、且つクロッシングサンプルに一致しないデータサンプルを有し得る（遅い）。これは、図４−１のようなＲＸクロックの動作に類似しているように見えるが、実際には、ＣＤＲ２０３の準安定状態である。ループ２２５は、最終的に回復してＣＤＲ２０３の準安定状態を抜け出ることもあるが、抜け出るために、破損したデータを処理することは、長期間かかる可能性がある。言い換えれば、ループ２２５は、長期間にわたり、図４−１のような適切なクロック位置を回復することができない可能性がある。
【００５４】
たとえば、１０Ｇ  ＥＰＯＮおよび他のＢＭＣＤＲアプリケーションでは、ＣＤＲブロックは、パケットのプリアンブル中にＲＸクロックを素早く調整して、任意の位相のパケットからデータを取り出すことができる。多くの場合、ＣＤＲブロックは、そのようなＲＸクロックを、新たに受信したパケットの位相に迅速に調整することができる。例外は、前のデータパケットが、現在のパケットから正確に０．５ＵＩの位相オフセットを有する場合である。なぜなら、この関係は、上述のようにＣＤＲブロック２０３内で準安定状態をもたらすからである。準安定状態のＣＤＲブロックでは、ＣＤＲロック時間が、パケットのプリアンブルの長さを超え、データエラーを受信する可能性がある。
【００５５】
図５は、チェッカ回路２２０によって使用される例示的なチェッカフロー５００を示すフロー図である。５０１において、チェッカフロー５００が開始され得る。５０２において、ＣＤＲブロック２０３によって決定された現在のＲＸ  ＰＩコード値が、レジスタなどに格納され得る。
【００５６】
５０３では、バースト信号の開始がアサートされたかどうかを判定することができる。開始信号２１８が、ＲＸデータのデータバースト開始に応答してアサートされてもよい。これは既知の信号であるため、そのような信号の生成は、明瞭化のために、不必要に詳細には記載されていない。５０３においてデータバースト開始が検出されなければ、ＣＤＲブロック２０３によって決定された現在のＲＸ  ＰＩＮコード値が、５０２で格納される。任意選択で、５０２におけるこの格納は、レジスタに供給される開始信号のアサートに応答して、位相値をレジスタに登録することであってもよい。
【００５７】
５０３においてデータバースト開始が検出された場合、５０４において、待機時間が呼び出される。任意選択で、この待機時間は、様々なアプリケーションに対応するように調整可能であってもよい。この待機時間は、カウンタに供給されるクロック信号のクロックパルスのある数までカウントするためのものであってもよい。さらに、カウントする数は、アプリケーションごとに異なってよい。さらに、任意選択で、５１３において、そのような待機時間の間に、上述したように、平均化の目的のために、追加の位相値が、一時的に格納されることを含んで、読み取られてもよい。
【００５８】
５０４で待機した後、５０５において、ＣＤＲブロック２０３によって決定された現在のＲＸ  ＰＩコード値が、待機時間の経過およびバースト開始信号のアサートに応答して、読み取られまたは格納される。任意選択で、５０２でのこの格納は、新しいバーストの開始と共に、前記カウンタから別のレジスタに提供されるカウントリーチ信号のアサートに応答して、別の位相値を別のレジスタに登録することであってもよい。言い換えれば、この別の位相値の登録は、クロックパルスの数に達することおよび現在のバーストのバースト開始信号のアサートに応答することができる。
【００５９】
５０２で格納された第１の位相値および５０５で読み取られまたは格納された第２の位相値は、５０６において、任意の位相差を決定するために提供されてもよい。例えば、５０２で格納された前の位相値が、減算器にそれぞれ提供されたときに、５０５で読み取られ又は格納された現在の位相値から減算されてもよく、絶対値回路などによって、この減算結果の絶対値が得られてもよい。この位相差は、５０６で、比較器などによって、前記比較器に提供された閾値と比較することができる。
【００６０】
５０６で決定されたときに、この位相差が閾値未満でない場合、位相は、ＣＤＲブロック２０３が準安定状態にないことを示すのに十分に移動している。そのような結果に対して、５０６からチェッカフロー５００は、５０２におけるオペレーションに戻ることができ、そこで、ＣＤＲブロック２０３によって決定された現在のＲＸ  ＰＩコード値が格納され得る。
【００６１】
５０６で決定されたときに、この位相差が閾値未満である場合、位相は、ＣＤＲブロック２０３が準安定状態にないことを示すのに十分に移動していない。言い換えると、位相は、ＣＤＲブロック２０３が準安定状態にあることを示すようにわずかしか移動していない。そのような結果に対して、５０６からチェッカフロー５００は、５０７で、ＣＤＲブロック２０３によって決定された現在のＲＸ  ＰＩコード値を固定量だけシフトまたは移動させることができる。この例では、この固定量は、あるアプリケーションに対してＵＩの１／４である。しかしながら、この量または別の量のシフトが使用されてもよい。ＲＸ  ＰＩ２０４が、１つのオーバーライド動作で十分な量だけ位相を調整できない場合、複数の増分位相オーバーライドを使用して、前記位相を十分な量だけ移動させることができる。このようにして、ＲＸ  ＰＩ２０４への位相入力のシフトは、２つ以上の部分的位相調整またはシフトのシーケンスであってもよい。
【００６２】
上記のようにして、５０６で使用される比較器の出力は、マルチプレクサへの選択制御として提供されてもよい。前記マルチプレクサへの１つの入力は、前述の前または現在のＲＸ  ＰＩ位相コード値のいずれかに加えられる固定シフト量を受け取るように結合された加算器の出力であってもよく、前記マルチプレクサへの別の入力は、前述の前または現在のＲＸ  ＰＩ位相コード値のいずれかであってもよい。限定ではなく例として分かりやすくするために、５０５で読み取られた現在のＰＸ  ＰＩ位相コード値が使用されると仮定する。効果的には、そのような加算器は、位相差が閾値よりも小さいことに応答して位相補間器２０４への位相入力をシフトするように結合されてもよい。
【００６３】
５０７での、位相補間器へのＲＸ  ＰＩ位相コード値入力のシフトまたは他の移動の後、チェッカフロー５００は、ＣＤＲブロック２０３によって決定された現在のＲＸ  ＰＩコード値を５０２で格納することができる。効果的には、ループ２２５を周って伝わった後の５０７におけるそのようなシフトは、ＣＤＲブロック２０３をシフトまたは「キック」して、その準安定状態から出す。したがって、５０２で格納することによって、ＣＤＲステータスは、ＣＤＲステータスを連続的に格納し、その後短時間後にＣＤＲステータスを再度読み出すことによって、各バーストの開始直前に読み出されることができる。これらのステータス読み取り値の間の差が、プログラム可能に調整可能な閾値内にある場合、これは、ＣＤＲブロック２０３が準安定状態にスタックされており、ＲＸ  ＰＩコード値が調整されるべきであることを示す。
【００６４】
一般に、この準安定不安定性は、ＣＤＲブロック２０３が、通常の動作モードでＣＤＲ安定性を維持する一方で、新しいデータバーストでロックを取得しようとしているときに発生する。迅速なＣＤＲの決定は、ＦＰＧＡ実装内のＤＭＯＮを通してまたはＣＤＲブロック２０３のデジタルチェッカ回路２２０の内部で、再生クロックのＲＸ  ＰＩコード値を直接読み取ることによって容易になり得る。バーストのためのＲＸ  ＰＩコード値の１回のオーバーライドは、例えばＣＤＲフィードバックループなどにおいて不安定性を生じることなく高速なＣＤＲ修正を可能にするために、準安定性の検出に応答して、固定値であってもよい制御可能な値によって提供されてもよい。
【００６５】
ＢＭＣＤＲアプリケーションでは、データバーストの開始時に、アプリケーションは、ＣＤＲが受信機の中でＲＸデータに正しくアラインメントされているかどうかを検出できない。しかしながら、アプリケーションは、パケットが存在するために受信機がトグルしていることを検出することができ、バーストの開始を示す信号を発することができる。この開始信号は、デジタルチェッカ回路２２０などのＢＭＣＤＲ回路に供給されてもよい。アプリケーションによってバースト開始を検出するこの能力に基づいて、チェッカ回路２２０は、ＣＤＲの状態をモニタし、データパケットの開始直後に、ＣＤＲブロック２０３を調整することができる。アプリケーションがバースト信号の開始を送信し、その後に準安定状態が検出されたときにのみ、ＣＤＲブロックを調整するために、デジタルチェッカ回路２２０などのＢＭＣＤＲ回路を使用することによって、ＣＤＲブロック２０３が、正常なデータを受信したときにＣＤＲの安定性を維持しながら、クロック位相を取得またはクロック位相にロックしようとしているときにのみ、最大の移動を提供することができる。
【００６６】
５０７では、１／４ ＵＩの移動またはシフト、またはそのような１／４ ＵＩの移動に近似する値を使用することができる。図４−１と図４−４との比較から、ＣＤＲの準安定状態の検出に即座に応答してＲＸクロックが正しく配置されるように、０．５ＵＩだけクロック位相を調整することが提案され得る。しかしながら、チェッカ回路２２０は、ＣＤＲが０ＵＩオフセットで安定であろうと、または０．５ＵＩオフセットで準安定であろうと、その両方を調整する。前者に関しては、チェッカ回路２２０が、ＲＸクロックの位相を、最初に既に安定していたときに、０．５ＵＩだけ移動させた場合、このＲＸクロックのそのような移動は、準安定領域への移動となって、より長いロック時間を引き起こし得る。５０７で、制御可能に調整可能な位相調整を提供することにより、初期値からの０．２５ＵＩくらいのオフセットの提案された値は、ＣＤＲブロック２０３の安定状態と準安定状態の両方に対して迅速なＣＤＲ位相ロックを提供することができる。換言すれば、このシフトされた位置において、ＣＤＲブロック２０３は、ＲＸクロックを正しい位相に迅速に調整することができる。
【００６７】
上記の説明は、光ネットワークに関してなされているが、このような説明は、光ネットワークに限定されず、他のタイプの高速ネットワークの受信機に使用されてもよい。ＰＯＮが記述されたけれども、上記の説明はＰＯＮに限定されず、アクティブ光ネットワーク（ＡＯＮ）またはそれらの組み合わせの受信機に使用されてもよい。さらに、上記の説明はＣＤＲブロックに限定されず、フィードバックループによる類似のバンバン位相検出および補正を伴うＰＬＬおよびＤＬＬのロック時間を改善するために使用されてもよい。２次周波数ループが追加されたＰＬＬの場合、いくつかの周波数調整が追加され得る。
【００６８】
本明細書に記載された１つ以上の例は、ＦＰＧＡに実装され得るので、そのようなＩＣの詳細な説明が提供される。しかしながら、他のタイプのＩＣが、本明細書に記載の技術から恩恵を受け得ることを理解されたい。
【００６９】
プログラマブルロジックデバイス（「ＰＬＤ」）は、特定の論理機能を実行するようにプログラムすることができる周知のタイプの集積回路である。１つのタイプのＰＬＤであるフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）は、通常、プログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、例えば、入出力ブロック（「ＩＯＢ」）、コンフィギュラブル論理ブロック（「ＣＬＢ」）、専用ランダムアクセスメモリブロック（「ＢＲＡＭ」）、乗算器、デジタル信号処理ブロック（「ＤＳＰ」）、プロセッサ、クロックマネージャ、遅延ロックループ（「ＤＬＬ」）などを含むことができる。本明細書で使用される場合、「含む」および「含んでいる」とは、制限なく含むことを意味する。
【００７０】
各プログラマブルタイルは、通常、プログラマブルインターコネクトとプログラマブルロジックの両方を含む。プログラマブルインターコネクトは、プログラマブルインターコネクトポイント（「ＰＩＰ」）によって相互接続された様々な長さの多数のインターコネクトラインを、通常、含む。プログラマブルロジックは、例えば、ファンクションジェネレータ、レジスタ、算術論理などを含むことができるプログラマブルエレメントを使用して、ユーザーデザインのロジックを実装する。
【００７１】
プログラマブルインターコネクトおよびプログラマブルロジックは、プログラマブルエレメントがどのように構成されるかを定める内部コンフィギュレーションメモリセルにコンフィギュレーションデータのストリームをロードすることによって、通常、プログラムされる。コンフィギュレーションデータは、メモリから（例えば、外部ＰＲＯＭから）読み出すことができ、または外部デバイスによってＦＰＧＡに書き込むことができる。その後、個々のメモリセルの集合状態が、ＦＰＧＡの機能を決定する。
【００７２】
別のタイプのＰＬＤは、コンプレックスプログラマブルロジックデバイス、すなわちＣＰＬＤである。ＣＰＬＤは、インターコネクトスイッチマトリクスによって互いに及び入出力（「Ｉ／Ｏ」）リソースと接続された２つ以上の「機能ブロック」を含む。ＣＰＬＤの各機能ブロックは、プログラマブルロジックアレイ（「ＰＬＡ」）およびプログラマブルアレイロジック（「ＰＡＬ」）デバイスで使用されるものと同様の２レベルＡＮＤ／ＯＲ構造を含む。ＣＰＬＤでは、コンフィギュレーションデータは、通常、不揮発性メモリにオンチップで保存される。一部のＣＰＬＤでは、コンフィギュレーションデータは、不揮発性メモリにオンチップで保存され、その後、初期コンフィギュレーション（プログラミング）シーケンスの一部として揮発性メモリにダウンロードされる。
【００７３】
これらのプログラマブルロジックデバイス（「ＰＬＤ」）のすべてについて、デバイスの機能性は、その目的のためにデバイスに提供されるデータビットによって制御される。データビットは、揮発性メモリ（例えば、ＦＰＧＡおよびいくつかのＣＰＬＤにおけるようなスタティックメモリセル）、不揮発性メモリ（例えば、いくつかのＣＰＬＤにおけるようなフラッシュメモリ）、または任意の他のタイプのメモリセルに保存することができる。
【００７４】
他のＰＬＤは、デバイス上の様々なエレメントをプログラム可能に相互接続する金属層などの処理層を適用することによってプログラムされる。これらのＰＬＤは、マスクプログラマブルデバイスとして知られている。ＰＬＤは、例えば、ヒューズ技術またはアンチヒューズ技術を用いて、他の方法で実施することもできる。「ＰＬＤ」および「プログラマブルロジックデバイス」という用語は、これらの例示的なデバイスを含むが、これらに限定されず、部分的にのみプログラム可能なデバイスを包含する。例えば、ＰＬＤの１つのタイプは、ハードコードされたトランジスタロジックと、ハードコードされたトランジスタロジックをプログラム可能に相互接続するプログラマブルスイッチファブリックの組み合わせを含む。
【００７５】
上述のように、高度なＦＰＧＡは、アレイ内にいくつかの異なるタイプのプログラマブル論理ブロックを含むことができる。例えば、図６は、マルチギガビットトランシーバ（「ＭＧＴ」）６０１、コンフィギュラブル論理ブロック（「ＣＬＢ」）６０２、ランダムアクセスメモリブロック（「ＢＲＡＭ」）６０３、入出力ブロック（「ＩＯＢ」）６０４、コンフィギュレーションおよびクロッキングロジック（「ＣＯＮＦＩＧ／ＣＬＯＣＫＳ」）６０５、デジタル信号処理ブロック（「ＤＳＰ」）６０６、特殊化された入出力ブロック（「Ｉ／Ｏ」）６０７（例えば、コンフィギュレーションポートおよびクロックポート）、ならびにデジタルクロックマネージャ、アナログ−デジタル変換器、システム監視ロジックなどの他のプログラマブルロジック６０８を含む多数の異なるプログラマブルタイルを含むＦＰＧＡアーキテクチャ６００を示す。いくつかのＦＰＧＡは、専用プロセッサブロック（「ＰＲＯＣ」）６１０も含む。
【００７６】
いくつかのＦＰＧＡでは、各プログラマブルタイルは、各隣接するタイル内の対応するインターコネクトエレメントとの標準化された接続を有するプログラマブルインターコネクトエレメント（「ＩＮＴ」）６１１を含む。したがって、プログラマブルインターコネクトエレメントが一緒になって、図示されたＦＰＧＡのためのプログラマブルインターコネクト構造を実装する。プログラマブルインターコネクトエレメント６１１は、図６の上部に含まれる例によって示されるように、同じタイル内のプログラマブルロジックエレメントへの接続およびそれからの接続も含む。
【００７７】
例えば、ＣＬＢ６０２は、ユーザロジックを実装するようにプログラムすることができるコンフィギュラブルロジックエレメント（「ＣＬＥ」）６１２及び単一のプログラマブルインターコネクトエレメント（「ＩＮＴ」）６１１を含むことができる。ＢＲＡＭ６０３は、１つ以上のプログラマブルインターコネクトエレメントに加えて、ＢＲＡＭロジックエレメント（「ＢＲＬ」）６１３を含むことができる。通常、タイルに含まれるインターコネクトエレメントの数は、タイルの高さに依存する。図示の実施形態では、ＢＲＡＭタイルは、５つのＣＬＢと同じ高さを有するが、他の数（例えば４つ）も使用することができる。ＤＳＰタイル６０６は、適切な数のプログラマブルインターコネクトエレメントに加えて、ＤＳＰロジックエレメント（「ＤＳＰＬ」）６１４を含むことができる。ＩＯＢ６０４は、例えば、プログラマブルインターコネクトエレメント６１１の１つのインスタンスに加えて、入出力ロジックエレメント（「ＩＯＬ」）６１５の２つのインスタンスを含むことができる。当業者には明らかなように、例えばＩ／Ｏロジックエレメント６１５に接続された実際のＩ／Ｏパッドは、通常、入出力ロジックエレメント６１５の領域に制限されない。
【００７８】
図示された実施形態では、ダイの中心付近の水平領域（図６に示されている）が、コンフィギュレーション、クロック、および他の制御ロジックのために使用される。この水平領域または列から延びる垂直列６０９は、ＦＰＧＡの幅全体にわたりクロックおよびコンフィギュレーション信号を分配するために使用される。
【００７９】
図６に示すアーキテクチャを利用するいくつかのＦＰＧＡは、ＦＰＧＡの大部分を構成する規則的な柱状構造を中断させる追加の論理ブロックを含む。追加の論理ブロックは、プログラマブルブロックおよび／または専用ロジックとすることができる。例えば、プロセッサブロック６１０は、ＣＬＢおよびＢＲＡＭのいくつかの列にわたる。
【００８０】
図６は、例示的なＦＰＧＡアーキテクチャのみを示すことが意図されている。例えば、行内の論理ブロックの数、行の相対幅、行の数と順序、行に含まれる論理ブロックのタイプ、論理ブロックの相対サイズ、および図６の上部に含まれているインターコネクト／ロジックの実装は、純粋に例示的なものである。たとえば、実際のＦＰＧＡでは、ユーザーロジックの効率的な実装が容易になるように、ＣＬＢが現れる場所には、１つより多いＣＬＢの隣接する行が通常含まれているが、隣接するＣＬＢの行の数は、ＦＰＧＡの全体サイズによって異なる。
【００８１】
以上、例示的な装置および／または方法について説明したが、本明細書に記載される１つ以上の態様による他のおよびさらなる例が、以下の特許請求の範囲によって決定される本発明の範囲から逸脱することなく考案され得る。ステップを記載している請求項は、ステップの順序を暗示するものではない。商標は、それぞれの所有者の財産である。
【図１】
0006412267.tif 000002
【図２】
0006412267.tif 000003
【図３】
0006412267.tif 000004
【図４】
0006412267.tif 000005
【図５】
0006412267.tif 000006
【図６】
0006412267.tif 000007