(57)【要約】  装置（１００，２００）および方法（１６０，２７０）は、概して、４値擬似ランダムバイナリシーケンス（「ＱＰＲＢＳ」）の生成および検査に関する。このような装置（１００）内には、生成されるＰＲＢＳ（１４）のシード（１１１）を受信するように構成された擬似ランダムバイナリシーケンス（ＰＲＢＳ）生成器（１０）がある。マスク生成器（１１０）は、ＰＲＢＳ（１４）に対応するマスク出力（１１５）を生成するように構成される。ＰＲＢＳ生成器（１０）およびマスク生成器（１１０）は両方とも、互いに対して順次動作するように構成されている。マスキング回路（１１７）が、マスク出力（１１５）およびＰＲＢＳ（１４）を受信して、ＰＲＢＳ（１４）をマスク出力（１１５）によってビットマスクして、ＱＰＲＢＳ（１０５）を生成するように構成されている。
2019522259.tif 000002
【特許請求の範囲】
【請求項１】
４値擬似ランダムバイナリシーケンス（「ＱＰＲＢＳ」）の生成のための装置であって、
生成される擬似ランダムバイナリシーケンス（「ＰＲＢＳ」）のシードを受信するように構成された擬似ランダムバイナリシーケンス（「ＰＲＢＳ」）生成器と、
前記ＰＲＢＳに対応するマスク出力を生成するように構成されているマスク生成器とを備え、
前記ＰＲＢＳ生成器および前記マスク生成器は両方とも、互いに対して順次動作するように構成されており、さらに、
前記マスク出力および前記ＰＲＢＳを受信して、前記ＰＲＢＳを前記マスク出力によってビットマスクして、前記ＱＰＲＢＳを生成するように構成されているマスキング回路を備える、装置。
【請求項２】
前記マスク生成器は、
カウント値を受信し、フィードフォワードカウントを提供するように構成された第１のカウンタと、
前記マスク出力の整数幅値に前記フィードフォワードカウントを加算して、前記フィードフォワードカウントを増分してフィードバックカウントを提供するための加算器とを備え、
前記第１のカウンタは、前記フィードバックカウントを受信して、前記フィードフォワードカウントとして順次提供するように構成されており、
前記マスク生成器は、さらに、
前記フィードバックカウントを受信して、前記幅値のモジュラスをカウントして、余りを提供するように構成されている第２のカウンタと、
前記フィードバックカウントを受信して、シーケンスリセットをアサートするための前記ＰＲＢＳの終わりに到達するか否かを決定するように構成されている組み合わせ回路とを備える、請求項１に記載の装置。
【請求項３】
前記組み合わせ回路は、
前記フィードバックカウントにおけるｋ番目のビット位置値と、前記フィードバックカウントが２＾ｋ−１より大きいことを示す論理値との比較のために前記フィードバックカウントを受信するように構成された比較器を備え、ｋは、前記ＰＲＢＳのＰＲＢＳ−ｋサイズバージョンの整数であり、
前記比較器は、前記フィードバックカウントにおける前記ｋ番目のビット位置が前記論理値に等しいことに応答して、前記シーケンスリセットをアサートするように構成されている、請求項２に記載の装置。
【請求項４】
前記第１のカウンタおよび前記第２のカウンタは、前記シーケンスリセットを受信して、前記第１のカウンタおよび前記第２のカウンタをリセットするように構成されており、
前記第１のカウンタは、前記余りを受信して、前記シーケンスリセットのアサートに応答してリセット後に新たに前記フィードフォワードカウントを提供するために、前記カウント値をインクリメントするように構成されている、請求項２に記載の装置。
【請求項５】
前記マスク生成器は、
プレマスク出力を出力し、前記余りを受け取るように構成されたビットマスクシフタを備え、
前記ビットマスクシフタは、非遷移状態の間にすべて論理ゼロまたはすべて論理１のいずれかを出力し、前記整数幅値内の前記ＰＲＢＳ生成器から出力される隣接する擬似ランダムバイナリシーケンス間の重なりを示す前記余りに応答して論理０または論理１のいずれかの数にシフトして、遷移状態の間に前記プレマスク出力を提供するようにさらに構成され、
前記マスク生成器は、さらに、
前記シーケンスリセットを受信して、前記プレマスク出力の現在の極性を反転させて前記マスク出力を提供するように構成されている極性反転器を備える、請求項２に記載の装置。
【請求項６】
前記組み合わせ回路は、第１の組み合わせ回路であり、
前記マスキング回路は、第２の組み合わせ回路であり、
前記第２の組み合わせ回路は、前記極性反転器からの前記マスク出力を受け取り、前記ＰＲＢＳ生成器からの前記ＰＲＢＳを受信して、前記ＰＲＢＳの時点における少なくとも１つのシンボルをビットマスクして前記ＱＰＲＢＳを生成するように構成されている、請求項５に記載の装置。
【請求項７】
前記組み合わせ回路は、前記少なくとも１つのシンボルの各ビットと、前記極性反転器からの前記マスク出力の対応するビットとのビットごとの排他的論理和をとるように構成された複数の排他的ＯＲ（「ＸＯＲ」）ゲートを備える、請求項６に記載の装置。
【請求項８】
４値擬似ランダムバイナリシーケンス（「ＱＰＲＢＳ」）の生成のための方法であって、
擬似ランダムバイナリシーケンス（「ＰＲＢＳ」）生成器によって、生成されるべきＰＲＢＳのシードを取得することと、
マスク生成器によってカウント値を受信することと、
前記ＰＲＢＳ生成器によって前記ＰＲＢＳを生成することと、
前記ＰＲＢＳのためのマスク出力を、前記マスク生成器を用いて生成することとを含み、
前記ＰＲＢＳ生成器および前記マスク生成器は、前記ＰＲＢＳおよび前記マスク出力を生成するためにともに順次操作され、さらに、
前記ＱＰＲＢＳを生成するために、マスキング回路を用いて、前記ＰＲＢＳを前記マスク出力を用いてビットマスクすることを含む、方法。
【請求項９】
前記マスク出力を生成することは、
カウンタによって前記カウント値を取得することと、
前記カウンタでフィードフォワードカウントを生成することと、
加算器を用いて前記フィードフォワードカウントを幅値だけインクリメントすることと、
前記インクリメントされたフィードフォワードカウントが前記ＰＲＢＳの終わりを示すか否かを判定することと、
前記ＰＲＢＳの前記終わりが決定されない場合、前記インクリメントをもう一度反復するために、前記カウンタによってフィードバックカウントとして、前記インクリメントされたフィードフォワードカウントを受信することとを含む、請求項８に記載の方法。
【請求項１０】
前記マスク出力を生成することは、
前記ＰＲＢＳの前記終わりが決定されるために、前記幅値のインクリメントされたカウントモジュラスに余りを設定することと、
前記ＰＲＢＳに関連する極性を反転させることとを含む、請求項９に記載の方法。
【請求項１１】
前記マスク出力を生成することは、
前記余りに応答してビットマスクをビットシフトすることと、
前記マスク出力を提供するためにビットシフトされた前記ビットマスクに前記反転した極性を適用することとを含む、請求項１０に記載の方法。
【請求項１２】
前記ＱＰＲＢＳは、受信機生成ＱＰＲＢＳであり、前記方法は、前記受信機生成ＱＰＲＢＳに対して受信機受信ＱＰＲＢＳを検査することをさらに含み、前記検査することは、
生成されるべき前記受信機生成ＱＰＲＢＳの前記シードとして前記ＰＲＢＳ生成器に入力するために前記受信機受信ＱＰＲＢＳを選択的に反転させることと、
第１の極性の反転のない前記受信機受信ＱＰＲＢＳを使用することと、
前記第１の極性と反対の第２の極性の反転を有する前記受信機受信ＱＰＲＢＳを使用することとを含む、請求項８に記載の方法。
【請求項１３】
前記検査することは、
エラーマスクを提供するために、前記受信機受信ＱＰＲＢＳの第１の部分を前記受信機生成ＱＰＲＢＳの第２の部分とビット単位で比較することと、
前記受信機受信ＱＰＲＢＳの前記第１の部分が前記受信機生成ＱＰＲＢＳの前記第２の部分と一致する場合、前記受信機受信ＱＰＲＢＳにおける反転を検出することとを含む、請求項１２に記載の方法。
【請求項１４】
前記反転を前記検出することに応答して前記ＰＲＢＳ生成器および前記マスク生成器を調整することをさらに含み、
前記調整することは、
前記エラーマスクに応答して余りを決定することと、
前記余りを前記カウント値として前記マスク生成器にロードすることと、
前記マスク出力を反転させるために前記マスク生成器において極性を反転させることとを含む、請求項１３に記載の方法。
【請求項１５】
対応するエラーマスクを提供するために、前記受信機受信ＱＰＲＢＳの第１の部分と前記受信機生成ＱＰＲＢＳの第２の部分とをビット単位で反復的に比較することと、
エラーの一切ない行内のエラーマスクの閾値数に対するロックを得ることとをさらに含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
以下の説明は、集積回路デバイス（「ＩＣ」）に関する。より詳細には、以下の説明は、ＩＣ内の４値擬似ランダムバイナリシーケンスの生成および検査に関する。
【背景技術】
【０００２】
背景
パルス振幅変調（「ＰＡＭ」）は、物理リンクレイヤなどの高速アプリケーションに共通のメカニズムであり、ＰＡＭ２（ＮＲＺとしても知られる）が、シリアル通信のために最大２８ギガビット／秒（Ｇｂｐｓ）をサポートするために最も一般的に使用されている。より最近では、各々が２つのビットの組み合わせによって表される（例えば、００，０１，１０，１１）、４つの異なる振幅レベル（例えば、−１，−１／３，＋１／３，＋１ボルト）を使用するＰＡＭ４が、２８Ｇｂｐｓを超える高速通信リンクでの使用向けに提案されている。
【０００３】
高速通信リンクをテストするために、受信機によるエラーを受信して検査するために、そのような通信リンクを介して送信機によってテストパターンを送信することができる。したがって、このようなテストパターンは、チャネル損失、シンボル間干渉（例えば、クロストーク）、および誤り率に影響を及ぼし得る他の要因の影響を決定するために使用され得る。擬似ランダムバイナリシーケンス（「ＰＲＢＳ」）が、ＰＡＭ２／ＮＲＺのテストパターンとして一般的に使用されている。しかし、ＰＡＭ４にマップされたときのＰＲＢＳパターンは、ベースライン変動およびクロック分に不良を生じる可能性がある。他には、類似のランダム特性を達成するためにＰＡＭ４のためのテストパターンを生成するために、４値擬似ランダムバイナリシーケンス（「ＱＰＲＢＳ」）を使用することが提案されている。
【０００４】
したがって、ＱＰＲＢＳを生成する能力および／または通信されたＱＰＲＢＳを検査する能力を有するＩＣを提供することが望ましく、有用である。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
装置は、概して、４値擬似ランダムバイナリシーケンス（「ＱＰＲＢＳ」）の生成に関する。このような装置内には、生成されるＰＲＢＳのシードを受信するように構成された擬似ランダムバイナリシーケンス（「ＰＲＢＳ」）生成器がある。マスク生成器が、ＰＲＢＳに対応するマスク出力を生成するように構成されている。ＰＲＢＳ生成器およびマスク生成器は両方とも、互いに対して順次動作するように構成されている。マスキング回路が、マスク出力およびＰＲＢＳを受信して、ＰＲＢＳをマスク出力によってビットマスクして、ＱＰＲＢＳを生成するように構成されている。
【０００６】
任意選択的に、マスク生成器は、カウント値を受信し、フィードフォワードカウントを提供するように構成された第１のカウンタと、マスク出力の整数幅値にフィードフォワードカウントを加算して、フィードフォワードカウントを増分してフィードバックカウントを提供するための加算器とを含むことができる。第１のカウンタは、フィードバックカウントを受信して、フィードフォワードカウントとして順次提供するように構成することができる。第２のカウンタが、フィードバックカウントを受信して、幅値のモジュラスをカウントして、余りを提供するように構成され得、組み合わせ回路が、フィードバックカウントを受信して、シーケンスリセットをアサートするためのＰＲＢＳの終わりに到達するか否かを決定するように構成され得る。
【０００７】
任意選択的に、組み合わせ回路は、フィードバックカウントにおけるｋ番目のビット位置値と、フィードバックカウントが２＾ｋ−１より大きいことを示す論理値との比較のためにフィードバックカウントを受信するように構成された比較器を含むことができ、ｋは、ＰＲＢＳのＰＲＢＳ−ｋサイズバージョンの整数である。比較器は、フィードバックカウントにおけるｋ番目のビット位置が論理値に等しいことに応答して、シーケンスリセットをアサートするように構成することができる。
【０００８】
任意選択的に、第１のカウンタおよび第２のカウンタは、シーケンスリセットを受信して、第１のカウンタおよび第２のカウンタをリセットするように構成されてもよい。第１のカウンタは、余りを受信して、シーケンスリセットのアサートに応答してリセット後に新たにフィードフォワードカウントを提供するために、カウント値をインクリメントするように構成することができる。
【０００９】
任意選択的に、マスク生成器は、プレマスク出力を出力し、余りを受け取るように構成されたビットマスクシフタを含むことができる。ビットマスクシフタは、非遷移状態の間にすべて論理ゼロまたはすべて論理１のいずれかを出力し、整数幅値内のＰＲＢＳ生成器から出力される隣接する擬似ランダムバイナリシーケンス間の重なりを示す余りに応答して論理０または論理１のいずれかの数にシフトして、遷移状態の間にプレマスク出力を提供するようにさらに構成することができる。極性反転器が、シーケンスリセットを受信して、プレマスク出力の現在の極性を反転させてマスク出力を提供するように構成され得る。
【００１０】
任意選択的に、組み合わせ回路は第１の組み合わせ回路であってもよく、マスキング回路が、第２の組み合わせ回路であってもよい。第２の組み合わせ回路は、極性反転器からのマスク出力を受け取り、ＰＲＢＳ生成器からのＰＲＢＳを受信して、ＰＲＢＳの時点における少なくとも１つのシンボルをビットマスクしてＱＰＲＢＳを生成するように構成することができる。
【００１１】
任意選択的に、組み合わせ回路は、少なくとも１つのシンボルの各ビットと、極性反転器からのマスク出力の対応するビットとのビットごとの排他的論理和をとるように構成された複数の排他的ＯＲ（「ＸＯＲ」）ゲートを含むことができる。
【００１２】
装置は、一般に、ＱＰＲＢＳを検査することに関する。そのような装置では、ＰＲＢＳ生成器は、生成されるべきＰＲＢＳのシードを受け取るように構成される。マスク生成器は、マスク出力を生成するためにＰＲＢＳのカウント値を受け取るように構成される。ＰＲＢＳ生成器およびマスク生成器は両方とも、互いに対して順次動作するように構成されている。第１のマスキング回路が、マスク出力を受け取るように構成され、ＰＲＢＳは、ＰＲＢＳをマスク出力によってビットマスクしてＱＰＲＢＳを生成するように構成される。選択回路が、データを受信して、受信されたデータを選択的に反転させてシードとして出力するように構成される。コントローラが、エラーマスクに応答してＱＰＲＢＳ生成器の動作を制御し、選択回路から出力されるシードを選択するように構成される。第２のマスキング回路が、上記データおよびＱＰＲＢＳを受信して、受信したデータをＱＰＲＢＳによってビットマスクして、エラーマスクを生成するように構成されている。
【００１３】
任意選択的に、第２のマスク回路は、ＱＰＲＢＳおよびデータの各々の時点における少なくとも１つのシンボルをビットマスクしてエラーマスクを生成するように構成されたエラーマスキング回路であってもよい。
【００１４】
任意選択的に、コントローラは、エラーマスクに応答して受信データの反転を検査するように構成された有限状態機械であってもよい。
【００１５】
任意選択的に、有限状態機械は、１のカウントを提供するために余りにおける論理１の数を決定し、１のカウントをマスク生成器のシーケンス位置カウンタに設定カウントとしてロードし、マスク生成器の極性を反転させるように構成されてもよい。
【００１６】
方法は、一般に、ＱＰＲＢＳの生成に関する。このような装置では、ＰＲＢＳ生成器は、生成されるべきＰＲＢＳのシードを取得する。カウント値が、マスク生成器によって受信される。ＰＲＢＳが、ＰＲＢＳ生成器によって生成される。ＰＲＢＳのためのマスク出力が、マスク生成器を用いて生成される。ＰＲＢＳ生成器およびマスク生成器は、ＰＲＢＳおよびマスク出力を生成するためにともに順次操作される。マスキング回路は、ＱＰＲＢＳを生成するためマスク出力を用いてＰＲＢＳをビットマスクする。
【００１７】
任意選択的に、マスク出力を生成することは、カウンタによってカウント値を取得することと、カウンタでフィードフォワードカウントを生成し、加算器を用いてフィードフォワードカウントを幅値だけインクリメントすることと、インクリメントされたフィードフォワードカウントがＰＲＢＳの終わりを示すか否かを判定することとを含む。ＰＲＢＳの終わりが決定されない場合、生成することは、インクリメントをもう一度反復するために、カウンタによってフィードバックカウントとして、インクリメントされたフィードフォワードカウントを受信することをさらに含むことができる。
【００１８】
任意選択的に、マスク出力を生成することは、ＰＲＢＳの終わりが決定されるために、幅値のインクリメントされたカウントモジュラスに余りを設定し、ＰＲＢＳに関連する極性を反転させることを含むことができる。
【００１９】
任意選択的に、マスク出力を生成することは、余りに応答してビットマスクをビットシフトすることと、マスク出力を提供するためにビットシフトされたビットマスクに反転した極性を適用することとを含むことができる。
【００２０】
任意選択的に、ＱＰＲＢＳは、受信機生成ＱＰＲＢＳであってもよく、この方法は、受信機生成ＱＰＲＢＳに対して受信機受信ＱＰＲＢＳを検査することをさらに含んでもよい。
【００２１】
任意選択的に、検査することは、生成されるべき受信機生成ＱＰＲＢＳのシードとしてＰＲＢＳ生成器に入力するために受信機受信ＱＰＲＢＳを選択的に反転させることと、第１の極性の反転のない受信機受信ＱＰＲＢＳを使用することと、第１の極性と反対の第２の極性の反転を有する受信機受信ＱＰＲＢＳを使用することとを含むことができる。
【００２２】
任意選択的に、検査することは、エラーマスクを提供するために、受信機受信ＱＰＲＢＳの第１の部分を受信機生成ＱＰＲＢＳの第２の部分とビット単位で比較することを含むことができる。受信機受信ＱＰＲＢＳの第１の部分が受信機生成ＱＰＲＢＳの第２の部分と一致する場合、検査することは、受信機受信ＱＰＲＢＳにおける反転を検出することを含むことができる。
【００２３】
任意選択的に、この方法は、反転の検出に応答してＰＲＢＳ生成器およびマスク生成器を調整することをさらに含むことができる。調整することは、エラーマスクに応答して余りを決定することと、余りをカウント値としてマスク生成器にロードすることと、マスク出力を反転させるためにマスク生成器において極性を反転させることとを含むことができる。
【００２４】
任意選択的に、方法は、対応するエラーマスクを提供するために、受信機受信ＱＰＲＢＳの第１の部分と受信機生成ＱＰＲＢＳの第２の部分とをビット単位で反復的に比較することと、エラーの一切ない行内のエラーマスクの閾値数に対するロックを得ることとをさらに含むことができる。
【００２５】
他の特徴は、以下の詳細な説明および特許請求の範囲の考察から認識されるであろう。
図面の簡単な説明
添付の図面は、例示的な装置（複数可）および／または方法（複数可）を示す。しかしながら、添付の図面は、特許請求の範囲を限定するものととられるべきではなく、説明と理解のためだけのものである。
【図面の簡単な説明】
【００２６】
【図１】例示的な通信システムを示すブロック図である。
【図２】例示的な４値擬似ランダムバイナリシーケンス（「ＱＰＲＢＳ」）生成器を示す概略図である。
【図３】図４と組み合わせて例示的なマスク生成器を示す概略図である。
【図４】図３と組み合わせて例示的なマスク生成器を示す概略図である。
【図５】例示的なＱＰＲＢＳを示すビットシーケンス図である。
【図６】例示的なＱＰＲＢＳ生成フローを示す流れ図である。
【図７】例示的なマスク生成フローを示す流れ図である。
【図８】例示的なＱＰＲＢＳチェッカを示す概略図である。
【図９】例示的なエラーマスキング回路を示す回路図である。
【図１０】有限状態機械（「ＦＳＭ」）コントローラの例示的な状態機械を示す状態図である。
【図１１】ＦＳＭコントローラの例示的な組み合わせ条件付き比較回路を示すブロック図である。
【図１２】図１０の状態機械のための例示的なカウンタを示す回路図である。
【図１３】ＦＳＭコントローラの例示的な反転検出レジスタを示す回路図である。
【図１４】例示的なＱＰＲＢＳチェッカフローを示す流れ図である。
【図１５】例示的な列型フィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）アーキテクチャを示す簡略ブロック図である。
【発明を実施するための形態】
【００２７】
詳細な説明
以下の説明では、本明細書に記載される特定の例のより完全な説明を提供するために、多数の特定の詳細が記載される。しかしながら、１つまたは複数の他の実施例および／またはこれらの実施例の変形形態は、以下に示される特定の詳細のすべてを除いて実施されてもよいことが、当業者には明らかなはずである。他の例では、本明細書の実施例の説明を不明瞭にしないために、周知の特徴については詳細に説明していない。説明を容易にするために、同一の参照符号が、同じ項目を参照するために複数の異なる図において使用されている。しかしながら、代替の実施例では、項目は異なっていてもよい。
【００２８】
例示的な装置（複数可）および／または方法（複数可）が、本明細書に記載される。「例示的」という言葉は、本明細書では、「例、事例、または例示としての役割を果たす」ことを意味するために使用されることを理解されたい。本明細書で「例示的」と記載されている実施例または特徴は、他の実施例または特徴よりも好ましいまたは有利であると必ずしも解釈されるべきではない。
【００２９】
いくつかの図に例示的に描かれた実施例を説明する前に、さらなる理解のために一般的な導入が提供される。
【００３０】
４値擬似ランダムバイナリシーケンス（「ＱＰＲＢＳ」）をテストパターンに使用することができる。以下は、任意の多項式および低いゲートカウントで使用できるＱＰＲＢＳ生成器およびＱＰＲＢＳチェッカについて説明する。大筋では、ＱＰＲＢＳ生成器およびチェッカは、従来の擬似ランダムバイナリシーケンス（「ＰＲＢＳ」）生成器上に構築される。ＱＰＲＢＳ生成器の場合、マスク生成器およびマスク回路がＰＲＢＳ生成器と共に使用されてＱＰＲＢＳが生成される。ＱＰＲＢＳチェッカについて、ＱＰＲＢＳ生成器およびエラーマスキング回路に加えて、有限状態機械コントローラを使用することができる。他の特徴および利点については後述する。
【００３１】
上記の一般的な理解を念頭に置いて、ＱＰＲＢＳの生成および検査のための様々な構成を以下に一般的に説明する。
【００３２】
図１は、例示的な通信システム１９９を示すブロック図である。通信システム１９９は、テストモードに置くことができる。大筋では、通信システム１９９は、４値擬似ランダムバイナリシーケンス（「ＱＰＲＢＳ」）生成器１００、送信機１１、受信機１２およびＱＰＲＢＳチェッカ２００を含むことができる。
【００３３】
テストモードの場合、ＱＰＲＢＳ生成器１００は、ＱＰＲＢＳテストパターン１０５を生成することができる。ＱＰＲＢＳテストパターン１０５は、ＰＲＢＳの完全なシーケンスの１サイクルおきに反転される従来の擬似ランダムバイナリシーケンス（「ＰＲＢＳ」）を含む。
【００３４】
限定ではなく例として、明瞭にするために、ＱＰＲＢＳテストパターン１０５は、４レベルパルス振幅変調（「ＰＡＭ４」）のためのものであると仮定するものとする。しかし、他の実施例では他のタイプの変調が使用されてもよい。例えば、非ゼロ復帰（「ＮＲＺ」）または拡張ＮＲＺ（「ＥＮＲＺ」）変調または他の変調を使用することができる。
【００３５】
４値ＰＲＢＳ１３、すなわち基礎となる完全なＰＲＢＳの１サイクルおきの反転を有するＰＲＢＳの使用は、ＩＥＥＥ  Ｐ８０２．３ｂｊにおいて最初に提案された。以下の説明は、限定ではなく例として明瞭にするためにＰＲＢＳ７に関して行うが、他のタイプのＰＲＢＳ、すなわちＰＲＢＳｋが使用されてもよいことは理解されたい。ここで、ｋは正の整数である。例えばＰＲＢＳ１３が使用されてもよく、ＰＲＢＳ１３に使用される多項式はχ＾１３＋χ＾１２＋χ＾２＋χ＋１であり、ＰＲＢＳ１３は、既知のように線形フィードバックシフトレジスタ（「ＬＦＳＲ」）を用いてハードウェアで実装することができる。しかし、ＰＲＢＳｋが使用され得るとき、ＬＦＳＲまたは他のハードウェア実装などを用いて他の多項式が実装されてもよい。
【００３６】
ＰＲＢＳ７の多項式はχ＾７＋χ＾６＋１である。ＰＲＢＳｋシーケンスのシーケンスの最大カウントまたは最大長Ｎは２＾ｋ−１である。したがって、ＰＲＢＳ７の場合、最大数は２＾７−１、すなわち１２７−１、すなわち１２６である。これは、カウントが０から始まるためである。したがって、１２７要素からなるＰＲＢＳ７シーケンスは、０から１２６の要素を有する。ＱＰＲＢＳ７の場合、シーケンスは要素．．．０，１，２，１２５，１２６，〜０．〜１．〜２，．．．，〜１２５，−１２６，０，１，２から構成され得、「〜」は反転を示す。したがって、ＱＰＲＢＳ内のどこで反転が起こるかを判定することが重要である。ＰＡＭ４は、従来より−１、−１／３、＋１／３、および＋１ボルトの４つの論理レベルを有しているため、各データ項目またはシンボルは、４つの異なる論理レベルに対応する２つのビット、例えば、００，０１，１０、および１１などの２ビットを有する。
【００３７】
シード入力、すなわちシーケンスの開始要素が、シーケンスの生成を開始するためにＰＲＢＳ生成器に提供され得る。このシード入力は、任意のシーケンス要素であってもよく、ランダムに提供されてもよい。
【００３８】
したがって、ＱＰＲＢＳテストパターン１０５は、ＱＰＲＢＳ生成器１００から出力することができ、送信機１１へのデータ入力として提供することができる。送信機１１は、そのような入力データを、１つまたは複数の通信チャネルを有する通信リンク２１を介して受信機１２に送信することができる。この例では、通信リンク２１は有線リンクである。しかし、他の実施態様では、有線通信リンク以外のものが使用されてもよい。
【００３９】
受信機１２は、送信された情報を受信し、そのような送信された情報を処理して受信データ２２を得る。受信機１２から出力されたこの受信データ２２は、ＱＰＲＢＳチェッカ２００に入力することができる。ＱＰＲＢＳ生成器１００およびＱＰＲＢＳチェッカ２００は、この例ではＰＲＢＳ７である同じＰＲＢＳｋに対して設定または構成することができる。大筋では、ＱＰＲＢＳチェッカ２００は、どのデータが期待されるか（「期待データ」）を知るように構成され、任意のエラーが検出されるか否かを判定するために、そのような期待データを受信データ２２の対応する受信データと比較するように構成することができる。
【００４０】
ＱＰＲＢＳチェッカ２００は、通信リンク２１のビット誤り率（「ＢＥＲ」）を決定するために、またはより具体的には、通信リンク２１の１つまたは複数のチャネルのＢＥＲを決定するために、エラーカウント２０５を出力するように構成することができる。通信リンク２１は、ＰＣＢ、バックプレーン、コネクタ、または他の形態のハードウェアであってもよいため、通信接続は、そのようなハードワイヤード接続についてテストすることができる。
【００４１】
図２は、例示的なＱＰＲＢＳ生成器１００を示す概略図である。ＱＰＲＢＳ生成器１００は、ＰＲＢＳ生成器１０と、マスク生成器１１０と、データマスキング回路１１７とを含む。ＰＲＢＳ生成器１０は、ハードウェアにおいて形成された従来のＰＲＢＳ生成器であってもよい。ＰＲＢＳ生成器１０およびマスク生成器１１０は、それぞれ共通に受信されるクロック信号１１２およびリセット信号１１３に応答して順次動作するように互いにクロックされ、リセットされる。
【００４２】
ＰＲＢＳ生成器１０は、生成されるべきＰＲＢＳ１４のシード１１１を受け取るように構成されてもよい。シード１１１は予め決定される必要はない。大筋では、ＰＲＢＳ生成器１０から出力されるＰＲＢＳ１４は、ＰＲＢＳ１４の要素のビット幅Ｗを有することができる。したがって、これがビット幅Ｗの並列バスであっても、ＰＲＢＳ生成器１０からの出力は、ＰＲＢＳ１４の要素のシーケンスのシリアル出力である。限定ではなく例として明瞭にするために、このビットまたはウィンドウの幅Ｗは、ＰＲＢＳ７の場合、４ビット幅、すなわち、一度に２つのＰＡＭ４シンボルであると仮定するものとする。しかし、アプリケーションごとに異なる可能性のある他のビット幅またはウィンドウ幅が使用されてもよい。
【００４３】
マスク生成器１１０は、マスク出力１１５を提供するために生成されるべきそのようなＰＲＢＳ１４に対するカウント設定値１０９を受信するように構成することができる。ここでも、ＰＲＢＳ生成器１０およびマスク生成器１１０は両方とも、互いに対して順次動作するように構成され得る。したがって、このカウント設定値１０９は、任意選択的に、始動時にまたはリセット信号１１３のアサートに応答して呼び出されるデフォルト設定であってもよい。同様に、マスク生成器１１０は任意選択的に、対応するＰＲＢＳ１４の初期極性１０８を設定するために結合されてもよい。しかしながら、初期極性は、始動時にまたはリセット信号１１３のアサートに応答して呼び出されるデフォルト設定であってもよい。ＰＲＢＳ１４のカウントおよび極性の設定は、以下でさらに詳細に説明される。
【００４４】
マスク生成器１１０は、ＰＲＢＳ１４のビット幅Ｗに対応するビット幅Ｗのマスク出力１１５を、データマスキング回路１１７による後続のビットマスキングのために出力する。マスク出力１１５は、ＰＲＢＳ１４の現在の極性のビット数を追跡するためにカウンタを使用して生成することができる。大筋では、マスク出力１１５は、マスク生成器１１０の極性反転器の出力から供給され得る。例えば、一般に、マスク出力１１５は、極性に応じてすべて論理ゼロ（「論理０」）またはすべて論理１（「論理１」）となる。しかし、マスク出力１１５の一部が、テストパターンを提供するために使用され得る一連の擬似ランダムバイナリシーケンス（「ＰＲＢＳ」）内の次のＰＲＢＳの極性のものである場合があり、そのため、マスク出力１１５は、極性反転に対応する反対の論理状態の１つまたは複数のビットを有し得る。マスク出力１１５の余り、すなわち、次のＰＲＢＳに起因するウィンドウＷ内のビットの数は、一連のＰＲＢＳにおける次のシーケンスのために使用され得る。
【００４５】
バス幅Ｗの並列信号バス上に与えられたマスク出力１１５は、ＰＲＢＳ１４をマスキングするためのウィンドウ幅と考えることができる。大筋では、これらの並列シリアルバスは、マスキング出力１１５のバスが事実上並列バス反転マスクである場合に互いに対応する。非ＱＰＲＢＳ生成の間、マスキング出力１１５は、ゼロに設定されてもよいし、または他の様態で無効化されてもよい。
【００４６】
データマスキング回路（「マスキング回路」）１１７は、マスク出力１１５およびＰＲＢＳ１４を受信して、マスク出力１１５を用いてビットマスクＰＲＢＳ１４をビットマスクして、ＱＰＲＢＳ１０５を生成するように構成される。マスキング回路１１７は、ＰＲＢＳ生成器１０およびマスク生成器１１０のシーケンス回路とは対照的に、組み合わせ回路であってもよい。
【００４７】
マスキング回路１１７は、ＰＲＢＳ１４要素当たり少なくとも１つのシンボルの各ビットと、マスク出力１１５の対応するビットとのビットごとの排他的論理和をとるように構成された排他的ＯＲ（「ＸＯＲ」）ゲート１１６を含む。事実上、マスキング回路１１７は、対応するＸＯＲゲート１１６へのそれぞれの入力のためにＰＲＢＳ１４を０〜Ｗ−１ビットストリームに分割する。同様に、マスキング回路１１７は、対応するＸＯＲゲート１１６へのそれぞれの入力のためにマスク出力１１５を０〜Ｗ−１ビットストリームに分割する。したがって、ＰＲＢＳ１４およびマスク出力１１５のビットストリーム０〜Ｗ−１の対応する対は、ＸＯＲゲート１１６によって組み合わせてビットマスクされ、ＸＯＲゲート１１６の出力は、まとめてビット幅ＷのＱＰＲＢＳ１０５を形成することができる。
【００４８】
マスク出力１１５は、ＰＲＢＳ１４のシーケンスの終了後にＰＲＢＳ１４を反転させるためにＰＲＢＳ１４を追跡するように維持することができる。現在のところ、マスク生成器１１０およびマスキング回路１１７に関連する回路の追加により、従来のＰＲＢＳ生成器に対する低オーバーヘッド付加を使用して、任意の多項式に対するＱＰＲＢＳ生成器を提供することができることを理解されたい。
【００４９】
カウンタ生成マスクにＰＲＢＳの現在の極性のビット数を追跡させることによって、マスキング出力１１５は、ほとんど、極性に依存してすべて論理０またはすべて論理１のいずれかであり得る。しかしながら、ＰＲＢＳ多項式は、ＰＲＢＳｋサイズのシーケンスに対して２＾ｋ−１のサイズを有するため（ここで、ｋは整数）、マスキング出力１１５の一部分が現在のＰＲＢＳのものであり、マスキング出力１１５の別の部分が、そのような現在のＰＲＢＳの反対の極性の直に隣接するＰＲＢＳのものである場合が存在する。現在のＰＲＢＳの反対の極性のこのような次のＰＲＢＳに関連するマスク出力１１５のマスクの部分を、本明細書では「余り」と呼ぶ。余りを使用して、ＰＲＢＳビットストリームにおけるそのような次のシーケンスの一部であるマスクのビット数、すなわち、反対の極性のものとなるマスクのビット数を決定することができる。
【００５０】
Ｗのバスまたはウィンドウ幅の例を続けると、以下の表１は、極性０および極性１に対するマスキング出力１１５の一般化された概要である。
【００５１】
【表１】
2019522259.tif 000003
【００５２】
極性０の遷移状態にあるマスキング出力１１５の場合、そのようなマスキング出力１１５は、すべて論理０を出力することからすべて論理１を出力することに切り替わる。同様に、極性１の遷移状態にあるマスキング出力１１５の場合、そのようなマスキング出力１１５は、すべて論理１を出力することからすべて論理０を出力することに切り替わる。すべて論理０からすべて論理１への遷移において現在のシーケンスの最後の部分をカバーするウィンドウ幅Ｗ＝４内には、００００、０００１、００１１，０１１１の組み合わせのいずれかが存在し得る。これらの可能な組み合わせは、極性０のシーケンスの末尾ビットまたは最下位ビットと考えることができる。すべて論理０からすべて論理１への遷移において現在のシーケンスの最後の部分をカバーするウィンドウ幅Ｗ＝４が１１１１である場合、ウィンドウＷが先行するシーケンスの極性に対して、完全に次の反対の極性のシーケンスにあるため、余りは存在しない。
【００５３】
同様に、すべて論理１からすべて論理０への遷移において現在のシーケンスの最後の部分をカバーするウィンドウ幅Ｗ＝４内には、１１１１，１１１０，１１００，１０００の組み合わせのいずれかが存在し得る。これらの可能な組み合わせは、極性１のシーケンスの末尾ビットまたは最下位ビットと考えることができる。すべて論理１からすべて論理０への遷移において現在のシーケンスの最後の部分をカバーするウィンドウ幅Ｗ＝４が００００である場合、ウィンドウＷが先行するシーケンスの極性に対して、完全に次の反対の極性のシーケンスにあるため、余りは存在しない。
【００５４】
極性が０の００００，０００１，００１１，０１１１、および、極性が１の１１１１，１１１０，１１００，１０００の場合、余りはそれに応じて００，０１，１０，１１として符号化され得る。言い換えると、余りは、シーケンスの最後のサンプルウィンドウ内の論理１または論理０の実際のカウント、すなわち極性反転を受けないＱＰＲＢＳのＰＲＢＳであり得る。大筋では、極性０シーケンスから極性１シーケンスへの遷移状態のマスク出力について、余りは、ＱＰＲＢＳの極性１  ＰＲＢＳの始まりに対してシフトインされるべき論理１が存在しないことを示す００、ＱＰＲＢＳの極性１  ＰＲＢＳの始まりに対して１つの論理１がシフトインされるべきであることを示す０１、ＱＰＲＢＳの極性１  ＰＲＢＳの始まりに対して２つの論理１がシフトインされるべきであることを示す１０、ＱＰＲＢＳの極性１  ＰＲＢＳの始まりに対して３つの論理１がシフトインされるべきであることを示す１１であり得る。同様に、極性１シーケンスから極性０シーケンスへの遷移状態のマスク出力について、余りは、ＱＰＲＢＳの極性０  ＰＲＢＳの始まりに対してシフトインされるべき論理０が存在しないことを示す００、ＱＰＲＢＳの極性０  ＰＲＢＳの始まりに対して１つの論理０がシフトインされるべきであることを示す０１、ＱＰＲＢＳの極性０  ＰＲＢＳの始まりに対して２つの論理０がシフトインされるべきであることを示す１０、ＱＰＲＢＳの極性０  ＰＲＢＳの始まりに対して３つの論理０がシフトインされるべきであることを示す１１であり得る。これは、Ｗ＝４のウィンドウ幅をサポートするための２ビット余り値の一例であるが、余り値の他のビット幅が、ウィンドウ幅に応じて使用されてもよい。
【００５５】
図３および図４は組み合わさって、例示的なマスク生成器１１０を示す概略図である。図３および図４は、以下でさらに詳細に説明される。
【００５６】
マスク生成器１１０のシーケンス位置カウンタ１２１は、カウント設定値１０９を受信し、フィードフォワードカウント１２２を提供するように構成することができる。カウント設定値１０９は、初期シーケンスの初期開始点であり得、その後、初期開始点は、その後のシーケンスに対して自動的にインクリメントされ得る。任意選択的に、カウント設定値１０９はデフォルト値であってもよい。シーケンス位置カウンタ１２１は、ＰＲＢＳ生成器１０による順次動作のためにリセット信号１１３およびクロック信号１１２を受信するように結合することができる。
【００５７】
マスク生成器１１０の加算器１２４は、フィードフォワードカウント１２２の現在のカウント値を受け取り、マスク出力１１５の整数幅値Ｗ１２３にそのような現在のカウント値を加算して、そのような現在のカウント値をインクリメントして、フィードバックカウント１２５を提供するように構成することができる。シーケンス位置カウンタ１２１は、フィードバックカウント１２５を受信して、クロック信号１１２の次のクロックサイクル上などで、フィードフォワードカウント１２２をインクリメントするように構成することができる。限定ではなく例として明瞭にするために、４ビット幅のウィンドウ（すなわち、Ｗ＝４）を有する０〜１２６ビットシーケンスの上記の例を続けると、初期シーケンスについてカウント設定値１０９が１に等しいと仮定すると、ＱＰＲＢＳのＰＲＢＳのこのような初期シーケンスは、００００の遷移マスクによって１，５，９，１２５，１２９とカウントする。しかしながら、ビット１２８は、ＱＰＲＢＳのＰＲＢＳの次のシーケンスの最初のビット位置であり、したがって、ビット１２９は、２つのビット位置によるオーバーシュートを表す。この２つのビット位置のオーバーシュートのために、この次のシーケンスは、ビット位置２で開始するための初期カウント値を有する。これは、そのようなシーケンスのカウントが、０００１の遷移マスクによる２，６，１０，１２６，１３０であることを意味する。ビット１３０は、３つのビット位置によるオーバーシュートを表すため、この次のシーケンスは、ビット位置３において開始するための初期カウント値、すなわち、００１１の遷移マスクによる３，７，１１，．．．，１２７，１３１のカウントシーケンスを有する）。この進行は、オーバーシュートがＷ＋１と同じ値になるまで継続し得る。この例では、そのようなシーケンスは、０１１１の遷移マスクによる４，８，１２，．．．，１２９，１３２になる。ビット１３２は５つのビット位置によるオーバーシュートを表すため、この次のシーケンスは、ビット位置１で開始するための初期カウント値を有する。これは、遷移マスクが反復を始めようとしているためである。この例示的な実施態様について、次のシーケンス５，９，１３，１３０，１３３（遷移マスク＝００００）は、第１のシーケンス１，５，９、．．．、１２５，１２９（遷移マスク＝００００）と変わらない。
【００５８】
マスク生成器１１０の余りカウンタ１２６が、フィードバックカウント１２５を受信し、モジュラスＷをカウントして余り値１２８を提供するように構成され得る。この例示的な実施態様では、余りカウンタ１２６は組み合わせ回路であり、しかしながら、別の実施態様では、余りカウンタ１２６は、レジスタを含んでもよく、したがって任意選択的に、クロック信号１１２は、このようなレジスタのクロック動作のために余りカウンタ１２６に提供されてもよい。モジュラスＷの組み合わせ回路は、単にビットＷ−１からビット０への連結であってもよい。
【００５９】
余りカウンタ１２６から出力される余り値１２８は、シーケンス位置カウンタ１２１に提供され得る。しかしながら、そのような余り値１２８は、シーケンスリセット信号１２９のアサートに応答して、シーケンス位置カウンタ１２１にのみロードされてもよい。シーケンスリセット信号１２９がアサートされると仮定すると、次のシーケンスの開始ビット位置について新たにカウントを開始する、すなわち、現在のシーケンスの現在の極性から次のシーケンスのためにそのような現在の極性の反転への遷移のために、シーケンス位置カウンタ１２１がリセットされる。余りカウンタ１２６から得られる余り値１２８は、前述のように、そのようなカウンタの初期開始位置をリセットするために使用することができる。これは、そのように余り値１２８に１を加算することが、オーバーシュートの量を示すためである。
【００６０】
マスク生成器１１０の組み合わせ回路１２７は、フィードバックカウント１２５を受信して、シーケンスリセット信号１２９をアサートするために現在のＰＲＢＳの終わりに到達するか否かを判定するように構成することができる。この実施態様では、組み合わせ回路１２７は比較器１２７である。比較器１２７、余りカウンタ１２６および加算器１２４はすべて非シーケンス回路であってもよく、したがってシーケンス位置カウンタ１２１のみがシーケンス回路であってもよいことを理解されたい。
【００６１】
比較器１２７は、フィードバックカウント１２５におけるｋ番目のビット位置値と、フィードバックカウントがＰＲＢＳｋサイズのシーケンスに対して２＾ｋ−１より大きいことを示す論理値との比較のためにフィードバックカウント１２５を受け取るように構成することができる。ここで、ｋは整数である。比較器１２７は、このような論理値に等しいフィードバックカウント１２５におけるこのようなｋ番目のビット位置に応答して、シーケンスリセット１２９をアサートするように構成されてもよい。
【００６２】
上述のｋ＝７の例を続けると、ｋ番目のビット位置は、７番目のＬＳＢ位置またはＬＳＢ［ｋ］となる。限定ではなく、例として明瞭にするため、カウンタ１２１が１６ビットカウンタであると仮定すると、そのような実施態様において、フィードバックカウント１２５の７番目のＬＳＢ位置が論理１であるとき、このようなフィードバックカウント１２５の値は、２＾ｋ以上になる。したがって、比較器１２７は、論理１に等しいかについてＬＳＢ［ｋ］値を比較するように構成することができ、そのような等価性が見出された場合、フィードバックカウント１２５が２＾ｋ−１より大きいことに応答して、シーケンスリセット１２９をアサートすることができる。
【００６３】
余りカウンタ１２６においてそのような余り値をゼロなどにリセットする前に、余り値１２８の現在の余り値＋１がカウンタ１２１にロードされているが、シーケンス位置カウンタ１２１と余りカウンタ１２６の両方は、シーケンスリセット１２９を受信して、シーケンス位置カウンタ１２１および余りカウンタ１２６をほぼ同時にリセットするように構成することができる。再び、シーケンス位置カウンタ１２１は、余り値１２８から余り値を受信して、シーケンスリセット１２９のアサートに応答してリセット後に新たにフィードフォワードカウント１２２を提供するために、開始ビット位置またはカウント開始値をインクリメントするように構成することができる。
【００６４】
マスク生成器１１０のビットマスクシフタ１３０が、余り値１２８の余り値を受け取って、そのような余りが、整数幅値Ｗ１２３内のＰＲＢＳ生成器１０から出力される隣接するＰＲＢＳ間の重なりを示すのに応答して論理０または論理１のいずれかの数にシフトして、プレマスク出力１３１を提供するようにさらに構成することができる。ビットマスクシフタ１３０は、組み合わせ回路であってもよい。
【００６５】
ビットマスクシフタ１３０は、ビットマスクで構成され得、余り１２８に応答して、そのようなビットマスクのビットのいずれもシフトしない、一部をシフトする、またはすべてをシフトするように構成され得る。余り１２８は、遷移状態においてマスク出力１１５に応答して前述したように、極性に応じて、ビットマスクにシフトするためにいくつかの論理０または論理１を示し得るか、または、当該論理を示し得ない。しかしながら、非遷移状態の間、そのようなマスク出力１１５は、すべて論理０または１のいずれかであり、そのため、そのような非遷移状態の間、ビットマスクシフタ１３０によってビットシフトは実行されない。したがって、ビットマスクシフタ１３０は、非遷移状態の間に、すべて論理０またはすべて論理１のいずれかの数Ｗを出力するように構成され、これは、余り１２８によって示される。ビットマスクシフタ１３０は、余り値および現在の極性に応答して、上述のように、論理０または論理１のいずれかの数をシフトするようにさらに構成することができ、現在の極性は余り１２８から決定することができる。
【００６６】
マスク生成器１１０の極性反転器１３９が、シーケンスリセット１２９を受け取り、シーケンスリセット１２９のアサートに応答して、プレマスク出力１３１の現在の極性を反転させて、マスク出力１１５を提供するように構成され得る。極性反転器１３９は、組み合わせ回路であってもよい。したがって、マスク生成器１１０の一実施態様では、シーケンス位置カウンタ１２１以外のすべての回路が非シーケンシャルであり得、シーケンス位置カウンタ１２１は、マスク生成器１１０の順次動作を実効的に制御する。
【００６７】
この実施態様では、極性反転器１３９は、制御可能反転器１３４、反転器１３２、およびマルチプレクサ１３３を含む。制御可能反転器１３４は、シーケンスリセット１２９を受け取るように構成することができ、シーケンスリセット信号１２９のアサートに応答して、制御可能反転器１３４は、現在の極性を反転させて、反転後にそのような極性を制御選択信号１３５として出力することができる。任意選択的に、制御可能反転器１３４の初期極性は、任意選択の初期極性設定信号１０８に応答して設定されてもよい。しかしながら、ＰＲＢＳ生成器１０によって使用される初期極性のデフォルト値に対応して、極性０または１のようなデフォルト値が使用されてもよい。
【００６８】
ビットマスクシフタ１３０から出力されるプレマスク出力１３１は、ＰＲＢＳ１４の非遷移状態の間、すべて論理０またはすべて論理１であり得る。隣接するＰＲＢＳ１４の遷移状態の間、ビットマスクシフタ１３０は、余りが、整数幅値Ｗ１２３内のＰＲＢＳ生成器１０から出力される隣接するＰＲＢＳ間の重なりを示すのに応答して論理０または論理１のいずれかの数にシフトして、プレマスク出力１３１を提供することができる。プレマスク出力１３１は、マルチプレクサ１３３へのデータ入力として、および反転器１３２へのデータ入力として提供することができる。反転器１３２からの出力は、マルチプレクサ１３３へのもう１つのデータ入力として提供することができる。遷移または非遷移状態を決定することは、全体的に余り１２８を使用してビットマスクシフタ１３０によって行うことができ、任意選択的に、ビットマスクシフタ１３０は、シーケンスリセット１２９を受け取り、シーケンスリセット信号１２９の状態に応じて遷移状態と非遷移状態との間を境界するように構成することができる。
【００６９】
制御選択信号１３５に応答して、マルチプレクサ１３３は、マスク出力１１５として、プレマスク出力１３１の非反転バージョンまたは反転バージョンのいずれかを出力することができる。したがって、組み合わせ回路であるマスキング回路１１７は、極性反転器１３９からマスク出力１１５を受け取り、ＰＲＢＳ生成器１０からのＰＲＢＳ１４を受信して、ＰＲＢＳ１４の時点における少なくとも１つのシンボルをビットマスクしてＱＰＲＢＳ１０５を生成するように構成することができる。
【００７０】
図５は、例示的なＱＰＲＢＳ１０５を示すビットシーケンス図である。限定ではなく例として明瞭にするために、図５の例ではｋ＝７およびＷ＝４の上記の例が継続される。４ビットのウィンドウＷ１４１がＰＡＭ４に使用され、各シンボルは２ビットシンボル１４５である。ＰＲＢＳ１４内の第１のビット位置１４２はビット位置０であり得、そのようなＰＲＢＳ１４内の最後のビット位置１４４はビット位置１２６であり得る。この例では、ビット位置１２７はビット位置０であり、すなわち、次の反転ＰＲＢＳ１４における第１のビット位置１４３であるため、ＰＲＢＳ１４の最後のウィンドウＷ１４１内にはビット位置１２７の重なりがある。反転ＰＲＢＳ１４の完了後、一般にシーケンスラップアラウンド１４６で示されるように、別の非反転ＰＲＢＳ１４を開始することができる。しかし、ＱＰＲＢＳ内のパターンは従来のＰＲＢＳパターン（従来のＰＲＢＳの開始ビットと終了ビットとの間には因果関係はない）では知られているように、単に自然にループし得ない。非反転ＰＲＢＳ１４から反転ＰＲＢＳ１４への遷移の存在により、現在のシーケンス１４４における最後のビット位置および直後に続く次のシーケンス１４３における第１のビット位置を決定する特定のビットが、このようなシーケンスに生じる。
【００７１】
図６は、例示的なＱＰＲＢＳ生成フロー１６０を示す流れ図である。ＱＰＲＢＳ生成フロー１６０は、前述したＱＰＲＢＳ生成器１００の動作に従うが、この説明は、限定ではなく明瞭化のために以下では繰り返されない。
【００７２】
１６１において、ＰＲＢＳ生成器は、生成されるべきＰＲＢＳのシードを取得し、１６２において、マスク生成器によって初期カウント値が受信される。１６３において、そのようなＰＲＢＳ生成器がこのようなＰＲＢＳ１６５を生成し、１６４において、このようなマスク生成器がそのようなＰＲＢＳ１６５のために出力されるマスク１６６を生成する。１６３および１６４における動作のために、そのようなＰＲＢＳ生成器およびマスク生成器は、共通に受信されるクロック信号およびリセット信号に応答するなどして、ともに順次動作する。
【００７３】
１６７において、マスキング回路は、ＱＰＲＢＳ１６８を生成するために、マスク１６６を用いてＰＲＢＳ１６５をビットマスクする。前述のように、組み合わせマスキング回路は、極性反転器からマスク出力１１５を受け取り、ＰＲＢＳ生成器からのＰＲＢＳを受信して、このようなＰＲＢＳの時点における少なくとも１つのシンボルをビットマスクしてＱＰＲＢＳ１６８を生成することができる。
【００７４】
図７は、例示的なマスク生成フロー１５０を示す流れ図である。マスク生成フロー１５０は、図６の１６４においてマスクを生成するための図２のマスク生成器１１０の動作に対応する。１５１において、初期カウント開始ビット位置が設定される。この実施態様では、このような初期カウント開始ビット位置は、カウント設定信号１０９によって１に等しく設定される。１以外の初期カウント開始ビット位置が使用されてもよいが、このような他の位置は、１５３における動作に影響を及ぼす可能性がある。限定ではなく例として明瞭にするために、初期カウント開始ビット位置が１に設定され、ｋ＝７の上記の例が継続されると仮定されるものとする。したがって、１から１２７までのビットカウントが完全なＰＲＢＳである。
【００７５】
１５２において、新しいカウントが、バス幅Ｗによって追加または増分された現在のカウントに等しく設定される。１５２において、余りがゼロに初期化される。余りは１５１においてゼロに初期化されてもよい。しかしながら、シーケンスリセット後にゼロにリセットする前に余りがロードされることを明確に示すために、余りのゼロへの設定／リセットが１５２において実行される。
【００７６】
大筋では、１５２において、１５１において設定された第１のカウント値は、シーケンス位置カウンタ１２１によって取得され得る。このようなシーケンス位置カウンタ１２１によってフィードフォワードカウント１２２を生成して、１５２において初期カウントを提供することができる。１５２において、そのようなフィードフォワードカウント１２２は、加算器１２４などによって、バス整数幅値Ｗ１２３、すなわちマスクのバス幅で加算されて、このようなフィードフォワードカウント１２２がインクリメントされて新たなカウント、すなわちフィードバックカウント１２５が提供される。
【００７７】
１５３において、フィードバックカウント１２５におけるｋ番目のビット位置値と、フィードバックカウントがＰＲＢＳｋサイズのシーケンスに対して２＾ｋ−１より大きいことを示す論理値とが比較される。ここで、ｋは整数である。この実施態様では、この論理値は比較のために論理１である。この比較が１５３において失敗する場合、現在のカウントは、前述したように、新たな現在のカウントを提供するために、バス幅Ｗだけ、クロック信号１１２の１５２の別の反復またはクロックサイクルのためにインクリメントされ、余りはゼロに維持される。しかしながら、この比較が１５３で失敗しない場合、１５４において、その時最新のカウントモジュラスＷによって余りが増加され、１５４において、その後、その時最新の極性が反転される。
【００７８】
前に説明したように、組み合わせ回路は、１５３においてこの比較のためにフィードバックカウントがその時最新のＰＲＢＳの終わりを示しているか否かを判定するために使用することができ、このような組み合わせ回路は、そのようなフィードバックが、そのようなその時最新のＰＲＢＳのそのような終わりを示していることに応答してシーケンスリセットをアサートすることができる（すなわち、「はい」）。１５３における条件が真である場合、フィードバックカウントにおけるｋ番目のビット位置が論理値１に等しいことに応答して、シーケンスリセットがアサートされる。さらに、前述したように、１５３の条件が偽である場合、フィードバックカウントは、シーケンス位置カウンタ１２１を通ってループバックして、１５２において次のインクリメントを行う。１５４における余りの増加は、余りカウンタ１２６などのカウンタ、またはそのような増加した余りを提供するためにバス幅値Ｗのフィードバックカウントモジュラスのその時最新のカウントを設定するように構成された他の回路によって実装することができる。
【００７９】
１５４から、１５６において、カウント開始ビット位置が、１５４＋１から得られるその時最新の余りとしてインクリメントされ得、このカウント開始ビット位置は、１５４での反転に応答して極性が反転された次のＰＲＢＳについて新たにカウントを開始するために使用することができる。言い換えれば、シーケンスリセット１２９のアサートに応答して、シーケンス位置カウンタ１２１を１５６においてリセットし、余りカウンタを１５２においてリセットすることができる。そのようなリセットシーケンス位置カウンタ１２１は、１５６で得られたそのようなカウント開始ビット位置によって１５２でインクリメントされて、そのようなカウント開始ビット位置から新たにカウントが開始されて、そのようなリセット後に新たにフィードフォワードカウント１２２が提供され得る。
【００８０】
また、１５４から、１５５において、ビットマスクは、１５４から得られた余りに応答してシフトされ得、前の極性の反転が適用され得る。再び１５５において、１５４で得られた余りが、整数バス幅値Ｗのサンプリングウィンドウ内のＰＲＢＳ生成器から出力される隣接するＰＲＢＳ間の重なりを示すに応答して、ビットマスクシフタによって論理０または論理１のいずれかの数がシフトインされて、プレマスク出力が提供される。１５５において、このプレマスク出力は極性反転器によって反転されてマスク出力１１５が出力され得る。
【００８１】
図８は、例示的なＱＰＲＢＳチェッカ２００を示す概略図である。ＱＰＲＢＳチェッカ２００は、図２〜７を参照して前述したような、ＱＰＲＢＳ生成器１００を含む。したがって、ＱＰＲＢＳ生成器１００の説明のいくつかは、限定ではなく明確化の目的で繰り返されない。
【００８２】
ＱＰＲＢＳ生成器は、生成されるべきＰＲＢＳのためのシード２１１を受信するように構成されたＰＲＢＳ生成器１０を含む。シード２１１は整数ビット幅Ｗを有し、ビット幅Ｗは前述したものと同じである。
【００８３】
受信データ２２はビット幅ＷでＱＰＲＢＳチェッカ２００に入力され、このような受信データ２２はエラーマスキング回路２１７、反転器２１８、および選択回路２１６のデータ入力ポートにデータ入力として供給される。この例示的な実施態様における選択回路２１６は、マルチプレクサ２１９および反転器２１８を含む。
【００８４】
反転器２１８の出力は、マルチプレクサ２１９へのもう１つのデータ入力として提供される。ＱＰＲＢＳチェッカ２００の有限状態機械（「ＦＳＭ」）コントローラ２２０からの極性選択信号２２５が、制御選択信号としてマルチプレクサ２１９に提供される。マルチプレクサ２１９は、受信データ２２をシード２１１として、ＰＲＢＳ生成器１０に入力するための非反転状態または反転状態のいずれかにおいて、一度に少なくとも１つのシンボルで供給する。この例では、シード２１１はバス幅Ｗのものである。シード２１１として反転データと非反転データの両方をテストすることを可能にすることにより、ＱＰＲＢＳチェッカ２００はより迅速に、すなわち受信データ２２の極性に関係なくロックすることができ、所定のシード２１１なしで使用することができる。
【００８５】
ここでも、受信データ２２は、図１を参照して前述したように、テストパターンの一部を有することができる。大筋では、テストパターンは、何らかの持続時間にわたって送信され、リアルタイムで処理され得る１つまたは複数のテストパターンシーケンスを含むことができる。したがって、テストパターンは、単一のＱＰＲＢＳを含むことができるが、単一のＱＰＲＢＳのみを含むことに限定されない。さらに、テストパターンはＱＰＲＢＳを含むことができ、ＱＰＲＢＳは複数のＰＲＢＳから構成され得る。さらに、ＦＳＭコントローラ２２０が、シード２１１がそこにロードされるようにするために、シードロード制御信号２２１をＰＲＢＳ生成器１０に提供する。したがって、マルチプレクサ２１９は、シードとして出力されるように受信されたそのようなデータの一部を選択的に反転させるか否かを選択するためのデータを受信するように構成することができる。
【００８６】
受信機側のクロック信号２１２およびリセット信号２１３は、ＦＳＭコントローラ２２０およびＱＰＲＢＳ生成器１００の両方を順次動作させ、リセットするために、両方に供給することができる。ＱＰＲＢＳ１００のマスク生成器１１０は、マスク出力１１５を生成するなどのために、ＦＳＭコントローラ２２０からカウントロード信号２２３および極性反転信号２２２を受け取るように構成することができる。
【００８７】
ここでも、ＰＲＢＳ生成器１０およびマスク生成器１１０は両方とも、順次動作するように構成され得る。ＱＰＲＢＳ１００のマスキング回路１１７は、マスク出力１１５およびＰＲＢＳ１４を受信して、例えば、前述したようにＰＡＭ４のテストパターンを提供するなどのために、このようなマスク出力を用いてそのようなＰＲＢＳをビットマスクしてＱＰＲＢＳ２２８を生成するように構成することができる。
【００８８】
ＱＰＲＢＳ２２８は、それぞれの並列Ｗビット幅データ入力として受信データ２２と共にエラーマスキング回路２１７に提供することができる。この例では、エラーマスキング回路２１７は組み合わせ回路である。しかしながら、別の実施態様では、エラーマスキング回路２１７へのデータ入力は、組み合わせ回路への入力のためにパイプライン化されてもよい。エラーマスキング回路２１７は、受信データ２２およびＱＰＲＢＳ２２８をＷビットのそれぞれのセットとして受信して、各々がそれらを互いにビットマスクしてエラーマスク２２９を出力するように構成することができる。このビットマスキングは、受信データ２２の対応するデータビットを有するＱＰＲＢＳ２２８のＱＰＲＢＳビットの時点における少なくとも１つのシンボルであってもよい。
【００８９】
エラーマスク２２９は、Ｗビット幅の信号またはバスであってもよい。エラーマスク２２９は、以下でさらに詳細に説明するように、エラーベクトル［Ｗ−１：０］である。エラーマスク２２９は、フィードバック信号としてＦＳＭコントローラ２２０に提供することができる。ＦＳＭコントローラ２２０はさらに、受信側カウント設定信号２０９を受信することができる。
【００９０】
エラーマスク２２９は、ＯＲゲート２３９への入力として提供されて、エラー信号２３３が生成され得る。エラー信号２３３およびリセット信号２１３は、エラーカウンタ２３１に提供することができる。エラーカウンタ２３１は、エラー信号２３３に示されるように検出された経時的なエラーをカウントして、有線通信リンクの１つまたは複数のチャネルのビット誤り率（「ＢＥＲ」）を示すエラーカウント２０５を提供することができる。
【００９１】
ＦＳＭコントローラ２２０は、エラーマスク２２９に応答してＱＰＲＢＳ生成器１００の動作を制御し、以下でさらに詳細に説明するように、選択回路２１６から出力されるシード２１１を選択するように構成することができる。大筋では、ＦＳＭコントローラ２２０は、エラーマスク２２９内のビットの１つまたは複数の状態に応答して、ＱＰＲＢＳ２２８における反転を検査するように構成されてもよい。エラーマスク２２９内のビットエラーパターンは、以下でさらに詳細に説明するように、基礎をなすＱＰＲＢＳにおけるデータパターンの位置を決定するために使用することができる。ロックは、迅速に、すなわち、基礎をなすＱＰＲＢＳの１つの完全なシーケンスサイクル（例えば、極性０の完了したＰＲＢＳ、および、その後の完了した極性１のＰＲＢＳ）内で保証することができるが、反転を有する並列データバス内でビットエラーは正確に発生しないことを条件とする。反転を有する並列データバス内の少なくとも１つのビットエラーのこのような事例では、基礎となるＱＰＲＢＳの２つの完全シーケンスサイクル内でロックが発生する。
【００９２】
ＦＳＭコントローラ２２０は、１のカウントを提供するために余り内の論理１の数を決定するように構成されてもよい。そのような１のカウントは、ＦＳＭ２２０の１カウンタ２２４によってカウントすることができる。このカウントは、受信器側のマスク生成器１１０に、カウントロード信号２２３のアサートに応答して入力されるカウント設定信号１０９としてロードすることができる。大筋では、マスク生成器１１０のシーケンス位置カウンタ１２１に１カウントをカウント設定入力としてロードすることができる。さらに、ＦＳＭコントローラ２２０は、極性反転信号２２２のアサートによってマスク生成器１１０の極性を反転させることができ、極性反転信号２２２は、受信側のマスク生成器１１０の制御可能反転器１３４に初期極性設定信号１０８として供給することができる。
【００９３】
図９は、例示的なエラーマスキング回路２１７を示す回路図である。エラーマスキング回路２１７において、受信データ２２のビット［Ｗ−１：０］がそれぞれビットごとのＸＯＲ回路２３６の２入力ＸＯＲゲート２３２に入力される。この受信データ２２入力は、一般に、データ入力［Ｗ−１：０］信号２３４と考えられ得る。それに応じて、エラーマスキング回路２１７において、ＱＰＲＢＳ２２８のビット［Ｗ−１：０］がそれぞれビットごとのＸＯＲ回路２３６の２入力ＸＯＲゲート２３２に入力される。このＱＰＲＢＳ２２８入力は、ＱＰＲＢＳ２２８入力がテストパターンシーケンスを含むことができるため、一般に予測データ［Ｗ−１：０］信号２３５と考えることができる。したがって、送信機がＱＰＲＢＳを受信機に送信し、そのような受信機がそのような送信されたデータを受信データとして分析するとき、受信機で生成された同じＱＰＲＢＳとの比較は、エラーが発生したか否かを知らせるべきである。エラーの検出は、生成されたＱＰＲＢＳおよび受信されたＱＰＲＢＳの各々のＷビットの対応するセットのビットごとの排他的論理和の出力によって示され得る。したがって、ビット単位ＸＯＲ回路２３６からのＷビット幅出力であるエラーマスク２２９は、エラーベクトル［Ｗ−１：０］信号である。
【００９４】
図１０は、ＦＳＭコントローラ２２０の例示的な状態機械２４０を示す状態図である。状態２４１において、ＰＲＢＳ生成器１０のシーディングが行われる。エラーマスクに示されるシンボルの不一致のようなエラー２４４が発生した場合、状態機械２４０は状態２４１のままである。しかし、エラーマスクによって示されるものとしてシーディングにおいてエラー２４５がない場合（すなわちエラーまたは「！エラー」でない）、状態機械２４０はデータ比較状態２４２に移行する。データ比較状態２４２において、データ入力［Ｗ−１：０］信号２３４と予測データ［Ｗ−１：０］信号２３５との比較が、エラーマスク２２９を提供し、エラーカウントなしの数（「エラーなしカウント」）を提供するために使用される。２４８でエラーカウントなしの数が閾値カウントに等しい場合、状態機械２４０はリンク獲得状態２４３に遷移する。２４６における、エラーが発生していないこと、または、反転２５１が発生していることの反復検査および判定によって、各エラーマスク２２９について、状態２４２においてエラーカウントなしの数がインクリメントされる。しかし、状態２４２において、何らかのビット数のエラーが検出され、反転２５１がない場合、２４７における状態２４２から状態２４１への遷移が、再シーディングのために行われる。図１０には、それぞれビット単位ＡＮＤおよびビット単位包含的ＯＲを表す＆およびＩのＣ＋＋ビット単位論理演算子が例示的に示されている。
【００９５】
図１１は、図１０の状態機械２４０の反転状態または非反転状態を検出するための例示的な組み合わせ条件付き比較回路２５０を示すブロック図である。大筋では、ＦＳＭコントローラ２２０は、組み合わせ条件付き比較回路２５０を含むことができる。組み合わせ条件付き比較回路２５０は、エラーマスク２２９を、様々なシーケンスビットパターンのいずれか、すなわち反転パターン２５２と比較するように構成することができる。エラーマスク２２９と反転パターン２５２の１つとの間に一致が見出された場合、反転が検出され、例えば論理０から論理１への状態変化などの反転信号２５１がアサートされる。反転パターンは、ＬＳＢビット０から始まるいくつかの連続した論理１を有するものである。この数は１〜Ｗ個の論理１に及び得、ＬＳＢビット０位置の１つの論理１は、次のシーケンスの１ビットがこの並列信号バスにあることを意味し、Ｗ個の論理１は、次のシーケンスのＷビットがこの並列信号バス内にあることを意味する。この例示的な実施態様では、反転パターンの論理１の最小数は１であってもよいが、別の実施態様では、反転パターンにおける論理１の最小数は２以上に設定されてもよい。大筋では、一実施態様において、反転パターンにおける論理１の最小数は、本明細書の記載に従ってプログラム可能であり得る。そのような反転されたビットが実際にはランダムなエラーである場合であっても、何らかの反転ビットとして受け止められる結果を招く１つまたは複数のランダムなエラーに起因して誤った反転検出を有することを避けるために、または少なくともその尤度を低減するために、より多くの論理１を使用することができる。設定すべき最小数は、チャネル損失のレベルに依存する。すなわち、予想されるビット誤り率が高いほど、ロジック１の最小数が大きくなる。
【００９６】
図１２は、ＦＳＭコントローラ２２０の例示的なカウンタ２５９を示す回路図である。カウンタ２５９は、加算器２５７と、例えばＤＱフリップフロップのようなレジスタ２５８とを含む。レジスタ２５８は、クロック信号２１２に応答してクロックすることができる。次の状態のデータ比較状態２４２への移行、エラーなし、および反転検出２６３がすべて真であること、すなわち、これら３つの結果のビット単位ＡＮＤに応答して、条件２５５がアサートされる。条件２５５が真である限り、レジスタ２５８はカウントのためにアクティブである。これは、反転の「スティッキービット」である反転検出を意味する。大筋では、カウンタは最初の反転が検出された後にのみカウントする。その前に、そのようなカウンタはデータ比較状態に留まる。したがって、データ比較状態は、２つの目的を実効的に果たすことができる。すなわち、シーディング状態に戻ることなく最初の反転を待つこと、および、最初の反転が検出された後にエラーなしの数をカウントすること。
【００９７】
データ論理１  ２５３（「１’ｄ１」は、Ｗビットの並列データバスがエラーなしとしてカウントされたことを意味する）が、レジスタ２５８から出力されるその時最新のエラーなしカウント２５６で加算するために、加算器２５７にロードされる。したがって、図１０の２４６における遷移を介してインクリメントしながら、エラーなしカウントを状態２４２において蓄積することができる。次の状態がシーディング状態２４１に進むこと、かつ、検出されたエラー２５４が両方とも真であることに応答して条件２５４がアサートされた場合、状態２４１においてシーディングが再度実行され、レジスタ２５８がリセットされる。
【００９８】
図１３は、ＦＳＭコントローラ２２０の例示的な反転検出レジスタ２６０を示す回路図である。レジスタ２６０は、クロック信号２１２に応答してクロックされ得る。データ論理１  ２６１が、反転２５１がアサートされたときにレジスタ２６０にロードされる。ＱＰＲＢＳチェッカ２００に対応するリセット２１３に応答して、リセット２１３またはシーケンスリセット１２９であってもよいリセット２６２をアサートすることができる。組み合わせ条件付き比較回路２５０などによって反転２５１が検出された場合、レジスタ２６０が反転検出２６３をアサートするために起動される。基本的に、反転検出２６３のアサートは、最初の反転の検出の指標としての反転２５１の「スティッキービット」に対するものであり得る。
【００９９】
図１４は、例示的なＱＰＲＢＳチェッカフロー２７０を示す流れ図である。ＱＰＲＢＳチェッカフロー２７０は、ＱＰＲＢＳチェッカ２００による受信機生成ＱＰＲＢＳに対して受信データ２２のＱＰＲＢＳを検査するための、図８のＱＰＲＢＳチェッカ２００の動作に対応する。
【０１００】
２７１において、初期極性が設定される。受信パターンの極性は、最初に受信されたときには不明である可能性がある。この実施態様では、このような初期極性はデフォルト設定として０に等しく設定される。しかし、別の実施態様では、１に等しい初期極性を使用することができる。２７２において、初期極性は１に等しく反転され、その後、２７２において反転に戻る各サイクルについて、極性が現在の状態から反転され、すなわち極性はＱＰＲＢＳの極性のトグルに応答してトグルされる。明瞭にするために、受信データ２２内の第１のＱＰＲＢＳに対する最初の極性は、一般に、正しいまたは誤っている２つの可能性のうちの１つ（すなわち、「コインフリップ」）であると考えられ得る。２７１における設定および２７２における反転は、ＦＳＭコントローラ２２０によって行われてもよく、２７２における反転は極性反転信号２２２のアサートに対応し得る。
【０１０１】
２７２から、２７３において、現在のデータが０に等しい極性のシードとして使用され、２７３において、現在のデータの逆が１に等しい極性のシードとして使用される。２７３における動作は、反転および非反転ＱＰＲＢＳとしてのシード２１１を、受信データ２２からＰＲＢＳ生成器１０へと交互に供給するために、ＦＳＭコントローラ２２０によって極性選択信号２２５をアサートおよびアサート解除するためのものである。
【０１０２】
２７３から、２７４において、期待されるデータが初期一致について次のデータと等しいか否かが判定される。期待されるデータが２７４において次のデータと等しくない場合、初期極性は不正確であり、極性は再び２７２で反転される。しかし、期待されるデータが２７４で次のデータと等しい場合、２７５で、エラーマスクが受信データ２２のＱＰＲＢＳにおける反転を示すか否かが判定される。期待されるデータ２３５は、エラーマスク２２９に示されるように次のデータ２３４とビット単位排他的論理和をとられてもよく、したがってエラーマスク２２９はＦＳＭコントローラ２２０によって２７５での判定に使用することができる。
【０１０３】
ＦＳＭコントローラ２２０は、反転を検出するために、２７５で一連のエラーマスク結果においてエラーマスク２２９を使用することができる。２７５でその時最新のエラーマスク２２９が反転を示していない場合、２７５で反転が検出されないため、２７４でもう１つの検査が行われて、受信データＱＰＲＢＳが検証され、チェッカ生成ＱＰＲＢＳは依然として互いに同等であり、同期している。２７５でその時最新のエラーマスク２２９がＱＰＲＢＳの反転を示す場合、大筋では、組み合わせ条件付き比較回路２５０を使用して、２７５で反転を検出することができる。１つまたは複数の反転パターン２５２を２７５で使用することができる。１つの行内の論理１の数は、反転状態から非反転状態へのおよびその逆の、ＱＰＲＢＳにおける遷移の検出のためにユーザプログラム可能である。１つの行内の論理１の数は、検出の信頼性のためであってもよい。例えば、１つの行における７つのビットエラーの可能性は低く、したがって、行内の７つの論理１を用いて反転を検出することができる。当然のことながら、他の実施態様で使用される行内の論理１の数は、７よりも多くても少なくてもよい。反転中のＰＲＢＳ−ｋのｋのような連続する論理１の数の検出は、１つまたは複数のビットエラーによる誤ったロックの確率を低減するために使用され得る。
【０１０４】
２７５で反転が検出された場合、受信データ２２のＱＰＲＢＳへの初期一致が得られる。初期一致から、２７６において、ＱＰＲＢＳチェッカ２００のＱＰＲＢＳ生成器１００は、前のシーケンスに対して反転された次のシーケンスのために調整される。大筋では、エラーマスク２２９内の論理１の数が、例えば１カウンタ２２４によってカウントされ得る。エラーマスク２２９内の論理１の数は、ビットが、次のシーケンス、すなわち現在のＱＰＲＢＳに対する後続の反転ＱＰＲＢＳにどのように属するかを示す。エラーマスク２２９内のこの論理１の数は、本明細書では以前は余りとして説明されていた。
【０１０５】
２７６において、次のＱＰＲＢＳのためにＱＰＲＢＳ生成器１００を調整するために、ＦＳＭコントローラ２２０によるカウントロード２２３のアサートに応答して、１カウンタ２２４からのそのような論理１の数のカウントがカウント設定信号１０９を介してマスク生成器１１０にロードされる。さらに、２７６において、そのような次のＱＰＲＢＳのためにＱＰＲＢＳ生成器１００を調整するために、反転の検出に応答して極性が反転される。大筋では、ＦＳＭコントローラ２２０は、前のＱＰＲＢＳに関連するマスク生成器１１０の極性設定を反転させるために、ＱＰＲＢＳチェッカ２００のＱＰＲＢＳ生成器１００のマスク生成器１１０に極性反転信号２２２をアサートすることができる。
【０１０６】
２７６から、２７７において、期待されるデータが初期ロックについて次のデータと等しいか否かが再び判定される。前述したように、基礎をなすＱＰＲＢＳ内の受信パターンの位置は、単純にループするだけではない場合があり、そのため、受信データ２２が損失の多いチャネルを通じて得られる場合であっても、入来するパターンに迅速にロックする、すなわち、基礎をなすＱＰＲＢＳの１つの完全なシーケンスサイクル内でロックすることができることが有用である。これは、所定のシード２１１をこのようなロックのために使用する必要がないため、より有用である。大筋では、ＱＰＲＢＳテストパターンを使用する通信チャネルは、知られているように、より高いビット誤り率の影響を受け易いため、本明細書で説明するＱＰＲＢＳテストパターンにロックすることが有用であり得る。
【０１０７】
期待されるデータが２７７において次のデータと等しくない場合、極性は再び２７２で反転される。しかしながら、期待されるデータが、２７７で次のデータと等しい場合、例えば、すべて論理０のエラーマスク２２９などによって、２７８において、正しい結果、すなわち一致の数が２７７でカウントされる。正しい結果の数は、ユーザがプログラムすることができる。２７８で正しい結果の閾値数に現在到達していない場合、ロックはまだ検出されず、もう１つの検査が２７７で行われる。しかしながら、エラーなしで対応するエラーマスク２２９を生成するために、２７７で反復ビット単位比較によって２７８で閾値数の正しい結果に達すると、２７８でロックが検出される。言い換えれば、ＱＰＲＢＳチェッカ２００によって生成されたＱＰＲＢＳが受信データ２２のＱＰＲＢＳにロックされていることを確認するために、行内の一致の閾値数、すなわちエラーのない行内のエラーマスクの閾値数を使用することができる。
【０１０８】
２７８でロックが検出されると、２７９で、期待されるデータが次のデータと等しいか否かについて比較することができる。検出された各エラー、すなわち各不一致について、ＢＥＲカウンタがインクリメントされ得る。大筋では、エラー信号２３３によって示されるように検出される各エラーについて、エラーカウンタ２３１をインクリメントして、ＢＥＲの決定のためにエラーカウント２０５を増加させることができる。
【０１０９】
本明細書に記載された１つまたは複数の例は、ＦＰＧＡに実装することができるため、そのようなＩＣの詳細な説明が提供される。しかしながら、他のタイプのＩＣが本明細書に記載の技術から恩恵を受け得ることを理解されたい。
【０１１０】
プログラマブル論理デバイス（「ＰＬＤ」）は、指定の論理機能を実行するようにプログラムすることができるよく知られたタイプの集積回路である。１つのタイプのＰＬＤであるフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）は、通常、プログラム可能タイルのアレイを含む。これらのプログラム可能タイルは、例えば、入出力ブロック（「ＩＯＢ」）、構成可能論理ブロック（「ＣＬＢ」）、専用ランダムアクセスメモリブロック（「ＢＲＡＭ」）、乗算器、デジタル信号処理ブロック（「ＤＳＰ」）、プロセッサ、クロックマネージャ、遅延ロックループ（「ＤＬＬ」）などを含むことができる。本明細書で使用される場合、「含む」および「含んでいる」とは、制限なく含まれることを意味する。
【０１１１】
各プログラム可能タイルは、通常、プログラマブル相互接続とプログラマブル論理の両方を含む。プログラマブル相互接続は、通常、プログラマブル相互接続点（「ＰＩＰ」）によって相互接続された様々な長さの多数の相互接続線を含む。プログラマブル論理は、例えば関数生成器、レジスタ、算術論理などを含むことができるプログラム可能要素を使用してユーザ設計の論理を実装する。
【０１１２】
プログラマブル相互接続およびプログラマブル論理は、典型的には、プログラマブル要素がどのように構成されるかを定義する内部構成メモリセルに構成データのストリームをロードすることによってプログラムされる。構成データは、メモリから（例えば、外部ＰＲＯＭから）読み出すこともでき、または、外部デバイスによってＦＰＧＡに書き込むこともできる。その後、個々のメモリセルの集合的状態がＦＰＧＡの機能を決定する。
【０１１３】
ＰＬＤのもう１つのタイプは、複合プログラマブル論理デバイス、すなわちＣＰＬＤである。ＣＰＬＤは、互いに接続された２つ以上の「機能ブロック」と、相互接続スイッチマトリクスによる入出力（「Ｉ／Ｏ」）リソースとを含む。ＣＰＬＤの各機能ブロックは、プログラマブル論理アレイ（「ＰＬＡ」）およびプログラマブルアレイ論理（「ＰＡＬ」）デバイスで使用されるものと同様の２レベルＡＮＤ／ＯＲ構造を含む。ＣＰＬＤでは、構成データは通常、不揮発性メモリにオンチップで格納される。一部のＣＰＬＤでは、構成データが不揮発性メモリにオンチップで格納され、初期設定（プログラミング）シーケンスの一部として揮発性メモリにダウンロードされる。
【０１１４】
これらのプログラマブル論理デバイス（「ＰＬＤ」）のすべてについて、デバイスの機能性は、その目的のためにデバイスに提供されるデータビットによって制御される。データビットは、揮発性メモリ（例えば、ＦＰＧＡおよびいくつかのＣＰＬＤ内のようなスタティックメモリセル）、不揮発性メモリ（例えば、いくつかのＣＰＬＤ内のようなフラッシュメモリ）、またはその他のタイプのメモリセルに格納することができる。
【０１１５】
他のＰＬＤは、デバイス上の様々な要素をプログラム可能に相互接続する金属層のような処理層を適用することによってプログラムされる。これらのＰＬＤは、マスクプログラマブルデバイスとして知られている。ＰＬＤは、例えば、ヒューズ技術またはアンチヒューズ技術を用いて、他の方法で実装することもできる。「ＰＬＤ」および「プログラマブル論理デバイス」という用語は、これらの例示的なデバイスを含み、部分的にのみプログラム可能なデバイスをも包含するが、これらに限定されない。例えば、ＰＬＤの１つのタイプは、ハードコードされたトランジスタロジックと、ハードコードされたトランジスタ論理をプログラム可能に相互接続するプログラマブルスイッチファブリックとの組み合わせを含む。
【０１１６】
上述したように、高度なＦＰＧＡはアレイ内にいくつかの異なるタイプのプログラマブル論理ブロックを含むことができる。例えば、図１５は、マルチギガビット送受信機（「ＭＧＴ」）３０１、構成可能論理ブロック（「ＣＬＢ」）３０２、ランダムアクセスメモリブロック（「ＢＲＡＭ」）３０３、入出力ブロック（「ＩＯＢ」）３０４、構成・クロッキングロジック（「ＣＯＮＦＩＧ／ＣＬＯＣＫＳ」）３０５、デジタル信号処理ブロック（「ＤＳＰ」）３０６、特殊入出力ブロック（「Ｉ／Ｏ」）３０７（例えば、構成ポートおよびクロックポート）、および、デジタルクロックマネージャ、アナログ／デジタル変換器、システム監視ロジックなどの他のプログラマブルロジック３０８を含む、多数の異なるプログラマブルタイルを含むＦＰＧＡアーキテクチャ３００を示す。また、一部のＦＰＧＡは専用プロセッサブロック（「ＰＲＯＣ」）３１０を含む。
【０１１７】
いくつかのＦＰＧＡでは、各プログラマブルタイルは、各隣接するタイル内の対応する相互接続要素との間での標準化された接続を有するプログラマブル相互接続要素（「ＩＮＴ」）３１１を含む。したがって、ともに利用されるプログラマブル相互接続要素が、図示されたＦＰＧＡのプログラマブル相互接続構造を実装する。プログラマブル相互接続要素３１１はまた、図１５の上部に含まれる例によって示されるように、同じタイル内のプログラマブル論理要素との間での接続をも含む。
【０１１８】
例えば、ＣＬＢ３０２は、ユーザ論理と単一のプログラマブル相互接続要素（「ＩＮＴ」）３１１とを実装するようにプログラムすることができる構成可能論理素子（「ＣＬＥ」）３１２を含むことができる。ＢＲＡＭ３０３は、１つまたは複数のプログラム可能な相互接続要素に加えて、ＢＲＡＭ論理要素（「ＢＲＬ」）３１３を含むことができる。典型的には、タイルに含まれる相互接続要素の数は、タイルの高さに依存する。図示の実施形態では、ＢＲＡＭタイルは５つのＣＬＢと同じ高さを有するが、他の数（例えば４つ）も使用することができる。ＤＳＰタイル３０６は、適切な数のプログラマブル相互接続要素に加えて、ＤＳＰ論理要素（「ＤＳＰＬ」）３１４を含むことができる。ＩＯＢ３０４は、例えば、プログラマブル相互接続要素３１１の１つのインスタンスに加えて、入出力論理要素（「ＩＯＬ」）３１５の２つのインスタンスを含むことができる。
【０１１９】
当業者には明らかなように、例えばＩ／Ｏ論理素子３１５に接続される実際のＩ／Ｏパッドは、典型的には、入出力論理素子３１５の領域に限定されない。
【０１２０】
図示された実施形態では、ダイの中心付近の水平領域（図１５に示す）が、構成、クロック、および他の制御ロジックに使用される。この水平領域または列から延伸する垂直列３０９は、ＦＰＧＡの幅全体にわたってクロックおよび構成信号を分配するために使用される。
【０１２１】
図１５に示されるアーキテクチャを利用するいくつかのＦＰＧＡは、ＦＰＧＡの大部分を構成する規則的な列型構造を乱す付加的な論理ブロックを含む。追加の論理ブロックは、プログラマブルブロックおよび／または専用ロジックとすることができる。例えば、プロセッサブロック３１０は、ＣＬＢおよびＢＲＡＭのいくつかの列に及ぶ。
【０１２２】
図１５は、例示的なＦＰＧＡアーキテクチャのみを示すことを意図していることに留意されたい。例えば、図１５の上部に含まれる行内の論理ブロックの数、行の相対幅、行の数および順序、行に含まれる論理ブロックのタイプ、論理ブロックの相対サイズ、ならびに、相互接続／論理実施態様は純粋に例示的なものである。たとえば、実際のＦＰＧＡでは、ユーザ論理の効率的な実装を容易にするために、ＣＬＢが現れる場所にはどこでも、ＣＬＢの隣接する２つ以上の行が一般に含まれているが、隣接するＣＬＢ行の数はＦＰＧＡの全体サイズによって異なる。
【０１２３】
以上、例示的な装置（複数可）および／または方法（複数可）について説明したが、本明細書に記載された１つまたは複数の態様による他のおよびさらなる例が、以下の特許請求の範囲およびその均等物によって決定される本発明の範囲から逸脱することなく考案され得る。ステップをリストする請求項は、ステップの順序を暗示するものではない。商標は、それぞれの所有者の財産である。
【図１】
2019522259.tif 000004
【図２】
2019522259.tif 000005
【図３】
2019522259.tif 000006
【図４】
2019522259.tif 000007
【図５】
2019522259.tif 000008
【図６】
2019522259.tif 000009
【図７】
2019522259.tif 000010
【図８】
2019522259.tif 000011
【図９】
2019522259.tif 000012
【図１０】
2019522259.tif 000013
【図１１】
2019522259.tif 000014
【図１２】
2019522259.tif 000015
【図１３】
2019522259.tif 000016
【図１４】
2019522259.tif 000017
【図１５】
2019522259.tif 000018
【手続補正書】
【提出日】平成30年3月9日(2018.3.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
４値擬似ランダムバイナリシーケンス（「ＱＰＲＢＳ」）の生成のための装置であって、
生成される擬似ランダムバイナリシーケンス（「ＰＲＢＳ」）のシードを受信するように構成された擬似ランダムバイナリシーケンス（「ＰＲＢＳ」）生成器と、
前記ＰＲＢＳのカウント値を受信し、前記カウント値に基づいて前記ＰＲＢＳに対応するマスク出力を生成するように構成されているマスク生成器とを備え、
前記ＰＲＢＳ生成器および前記マスク生成器は両方とも、互いに対して順次動作するように構成されており、さらに、
前記マスク出力および前記ＰＲＢＳを受信して、前記ＰＲＢＳを前記マスク出力によってビットマスクして、前記ＱＰＲＢＳを生成するように構成されているマスキング回路を備える、装置。
【請求項２】
前記マスク生成器は、
前記カウント値を受信し、フィードフォワードカウントを提供するように構成された第１のカウンタと、
前記マスク出力の整数幅値に前記フィードフォワードカウントを加算して、前記フィードフォワードカウントを増分してフィードバックカウントを提供するための加算器を備え、
前記第１のカウンタは、前記フィードバックカウントを受信して、前記フィードフォワードカウントとして順次提供するように構成されており、
前記マスク生成器は、さらに、
前記フィードバックカウントを受信して、前記整数幅値のモジュラスをカウントして、余りを提供するように構成されている第２のカウンタと、
前記フィードバックカウントを受信して、シーケンスリセットをアサートするための前記ＰＲＢＳの終わりに到達するか否かを決定するように構成されている組み合わせ回路とを備える、請求項１に記載の装置。
【請求項３】
前記組み合わせ回路は、
前記フィードバックカウントにおけるｋ番目のビット位置値と、前記フィードバックカウントが２＾ｋ−１より大きいことを示す論理値との比較のために前記フィードバックカウントを受信するように構成された比較器を備え、ｋは、前記ＰＲＢＳのＰＲＢＳ−ｋサイズバージョンの整数であり、
前記比較器は、前記フィードバックカウントにおける前記ｋ番目のビット位置が前記論理値に等しいことに応答して、前記シーケンスリセットをアサートするように構成されている、請求項２に記載の装置。
【請求項４】
前記第１のカウンタおよび前記第２のカウンタは、前記シーケンスリセットを受信して、前記第１のカウンタおよび前記第２のカウンタをリセットするように構成されており、
前記第１のカウンタは、前記余りを受信して、前記シーケンスリセットのアサートに応答してリセット後に新たに前記フィードフォワードカウントを提供するために、前記カウント値をインクリメントするように構成されている、請求項２に記載の装置。
【請求項５】
前記マスク生成器は、
プレマスク出力を出力し、前記余りを受け取るように構成されたビットマスクシフタを備え、
前記ビットマスクシフタは、非遷移状態の間にすべて論理ゼロまたはすべて論理１のいずれかを出力し、前記整数幅値内の前記ＰＲＢＳ生成器から出力される隣接する擬似ランダムバイナリシーケンス間の重なりを示す前記余りに応答して論理０または論理１のいずれかの数にシフトして、遷移状態の間に前記プレマスク出力を提供するようにさらに構成され、
前記マスク生成器は、さらに、
前記シーケンスリセットを受信して、前記プレマスク出力の現在の極性を反転させて前記マスク出力を提供するように構成されている極性反転器を備える、請求項２に記載の装置。
【請求項６】
前記組み合わせ回路は、第１の組み合わせ回路であり、
前記マスキング回路は、第２の組み合わせ回路であり、
前記第２の組み合わせ回路は、前記極性反転器からの前記マスク出力を受け取り、前記ＰＲＢＳ生成器からの前記ＰＲＢＳを受信して、前記ＰＲＢＳの時点における少なくとも１つのシンボルをビットマスクして前記ＱＰＲＢＳを生成するように構成されている、請求項５に記載の装置。
【請求項７】
前記第１の組み合わせ回路は、前記少なくとも１つのシンボルの各ビットと、前記極性反転器からの前記マスク出力の対応するビットとのビットごとの排他的論理和をとるように構成された複数の排他的ＯＲ（「ＸＯＲ」）ゲートを備える、請求項６に記載の装置。
【請求項８】
４値擬似ランダムバイナリシーケンス（「ＱＰＲＢＳ」）の生成のための方法であって、
擬似ランダムバイナリシーケンス（「ＰＲＢＳ」）生成器によって、生成されるべきＰＲＢＳのシードを取得することと、
マスク生成器によってカウント値を受信することと、
前記ＰＲＢＳ生成器によって前記ＰＲＢＳを生成することと、
前記ＰＲＢＳのためのマスク出力を、前記マスク生成器を用いて生成することとを含み、
前記ＰＲＢＳ生成器および前記マスク生成器は、前記ＰＲＢＳおよび前記マスク出力を生成するためにともに順次操作され、さらに、
前記ＱＰＲＢＳを生成するために、マスキング回路を用いて、前記ＰＲＢＳを前記マスク出力を用いてビットマスクすることを含む、方法。
【請求項９】
前記マスク出力を生成することは、
カウンタによって前記カウント値を取得することと、
前記カウンタでフィードフォワードカウントを生成することと、
加算器を用いて前記フィードフォワードカウントを幅値だけインクリメントすることと、
前記インクリメントされたフィードフォワードカウントが前記ＰＲＢＳの終わりを示すか否かを判定することと、
前記ＰＲＢＳの前記終わりが決定されない場合、前記インクリメントをもう一度反復するために、前記カウンタによってフィードバックカウントとして、前記インクリメントされたフィードフォワードカウントを受信することとを含む、請求項８に記載の方法。
【請求項１０】
前記マスク出力を生成することは、
前記ＰＲＢＳの前記終わりが決定されるために、前記幅値のインクリメントされたカウントモジュラスに余りを設定することと、
前記ＰＲＢＳに関連する極性を反転させることとを含む、請求項９に記載の方法。
【請求項１１】
前記マスク出力を生成することは、
前記余りに応答してビットマスクをビットシフトすることと、
前記マスク出力を提供するためにビットシフトされた前記ビットマスクに前記反転した極性を適用することとを含む、請求項１０に記載の方法。
【請求項１２】
前記ＱＰＲＢＳは、受信機生成ＱＰＲＢＳであり、前記方法は、前記受信機生成ＱＰＲＢＳに対して受信機受信ＱＰＲＢＳを検査することをさらに含み、前記検査することは、
生成されるべき前記受信機生成ＱＰＲＢＳの前記シードとして前記ＰＲＢＳ生成器に入力するために前記受信機受信ＱＰＲＢＳを選択的に反転させることと、
第１の極性の反転のない前記受信機受信ＱＰＲＢＳを使用することと、
前記第１の極性と反対の第２の極性の反転を有する前記受信機受信ＱＰＲＢＳを使用することとを含む、請求項８に記載の方法。
【請求項１３】
前記検査することは、
エラーマスクを提供するために、前記受信機受信ＱＰＲＢＳの第１の部分を前記受信機生成ＱＰＲＢＳの第２の部分とビット単位で比較することと、
前記受信機受信ＱＰＲＢＳの前記第１の部分が前記受信機生成ＱＰＲＢＳの前記第２の部分と一致する場合、前記受信機受信ＱＰＲＢＳにおける反転を検出することとを含む、請求項１２に記載の方法。
【請求項１４】
前記反転を前記検出することに応答して前記ＰＲＢＳ生成器および前記マスク生成器を調整することをさらに含み、
前記調整することは、
前記エラーマスクに応答して余りを決定することと、
前記余りを前記カウント値として前記マスク生成器にロードすることと、
前記マスク出力を反転させるために前記マスク生成器において極性を反転させることとを含む、請求項１３に記載の方法。
【請求項１５】
対応するエラーマスクを提供するために、前記受信機受信ＱＰＲＢＳの第１の部分と前記受信機生成ＱＰＲＢＳの第２の部分とをビット単位で反復的に比較することと、
エラーの一切ない行内のエラーマスクの閾値数に対するロックを得ることとをさらに含む、請求項１４に記載の方法。
【国際調査報告】
2019522259.tif 000019
2019522259.tif 000020