(57)【特許請求の範囲】
【請求項１】
プログラマブルロジック回路と；
複数の機能的部分回路からなる高速シリアルインタフェース回路とを備え、部分回路のそれぞれは高速シリアルインタフェースを提供するために必要とされるそれぞれの機能を実行するために少なくとも部分的に固定配線され、さらに機能的部分回路の少なくと１つを選択的にバイパスすることを可能にするように適用されるルーティング回路を備え、少なくとも１つの機能的部分回路がパターン検出回路、１０ビット−８ビットデコーダ回路、８ビット−１０ビットエンコーダ回路、およびチャネルアラインメント回路からなる一群の中から選択される、
プログラマブルロジック集積回路デバイス。
【請求項２】
高速シリアルインタフェース回路がレシーバ回路を含む請求項１記載のデバイス。
【請求項３】
高速シリアルインタフェース回路がトランスミッタ回路を含む請求項１記載のデバイス。
【請求項４】
機能的部分回路がクロックデータ復元回路を含む請求項１記載のデバイス。
【請求項５】
機能的部分回路がデシリアライザ回路を含む請求項１記載のデバイス。
【請求項６】
機能的部分回路がパターン検出回路を含む請求項１記載のデバイス。
【請求項７】
機能的部分回路がステートマシン回路を含む請求項１記載のデバイス。
【請求項８】
機能的部分回路が１０ビット−８ビットデコーダ回路を含む請求項１記載のデバイス。
【請求項９】
機能的部分回路がレートマッチング回路を含む請求項１記載のデバイス。
【請求項１０】
機能的部分回路がチャネルアラインメント回路を含む請求項１記載のデバイス。
【請求項１１】
機能的部分回路がバイトデシリアライザ回路を含む請求項１記載のデバイス。
【請求項１２】
機能的部分回路がバイトシリアライザ回路を含む請求項１記載のデバイス。
【請求項１３】
機能的部分回路が８ビット−１０ビットエンコーダ回路を含む請求項１記載のデバイス。
【請求項１４】
機能的部分回路がシリアライザ回路を含む請求項１記載のデバイス。
【請求項１５】
機能的部分回路がキャラクタ消去回路を含む請求項１記載のデバイス。
【請求項１６】
機能的部分回路がキャラクタインサート回路を含む請求項１記載のデバイス。
【請求項１７】
機能的部分回路の少なくとも１つがこの機能的部分回路によって実行される機能を変化させるように少なくとも部分的に制御可能である請求項１記載のデバイス。
【請求項１８】
少なくとも１つの機能的部分回路によって実行される機能をプログラム制御することができるプログラム可能な回路をさらに備える請求項１７記載のデバイス。
【請求項１９】
少なくとも１つの機能的部分回路によって実行される機能を動的に制御することができる動的信号源回路をさらに備える請求項１７記載のデバイス。
【請求項２０】
ルーティング回路によって形成される少なくともいずれかのルーティングをプログラム制御することができるプログラム可能な回路をさらに備える請求項１記載のデバイス。
【請求項２１】
ルーティング回路によって形成される少なくともいずれかのルーティングを動的に制御することができる動的信号源回路をさらに備える請求項１記載のデバイス。
【請求項２２】
ルーティング回路によって選択され得るルーティングが機能的部分回路の１つをバイパスして別の機能的部分回路に信号を付加することを含む請求項１記載のデバイス。
【請求項２３】
ルーティング回路によって選択され得るルーティングが１つの機能的部分回路をバイパスしてプログラマブルロジック回路に信号を付加することを含む請求項１記載のデバイス。
【請求項２４】
処理回路と；
前記処理回路に結合されたメモリと；
前記処理回路およびメモリに結合された、請求項１記載のデバイスとからなる、
デジタル処理システム。
【請求項２５】
請求項１記載のデバイスが装着されたプリント回路基板。
【請求項２６】
プリント回路基板上に装着されるとともに前記デバイスに結合されたメモリをさらに備える請求項２５記載のプリント回路基板。
【請求項２７】
プリント回路基板上に装着されるとともに前記デバイスに結合された処理回路をさらに備える請求項２５記載のプリント回路基板。
【請求項２８】
プログラマブルロジック回路と；
クロックデータ部分回路と、デシリアライザ部分回路と、パターン検出部分回路と、１０ビット−８ビットデコーダ部分回路と、レートマッチング部分回路と、チャネルアラインメント部分回路とを含む少なくとも部分的に固定配線されたシリアルインタフェース回路と；
高速シリアルインタフェース回路内に含まれる部分回路のうちの少なくともいずれかの中の信号を選択的にルーティングするように適用されるルーティング回路と、
からなるプログラマブルロジック集積回路デバイス。
【請求項２９】
高速シリアルインタフェース回路内に含まれる部分回路のうちの少なくとも１つの動作が少なくとも部分的にプログラム制御可能である請求項２８記載のデバイス。
【請求項３０】
ルーティング回路によって形成され得るルーティングのうちの少なくともいずれかが少なくとも部分的にプログラムによって選択される請求項２８記載のデバイス。
【請求項３１】
ルーティング回路によって形成され得るルーティングのうちの少なくともいずれかが高速シリアルインタフェース回路内の部分回路の少なくとも１つをバイパスすることを含む請求項２８記載のデバイス。
【請求項３２】
高速シリアルインタフェース回路が８ビット−１０ビットエンコーダ部分回路ならびにシリアライザ部分回路をさらに含む請求項２８記載のデバイス。
【請求項３３】
プログラマブルロジック回路と；
高速シリアルインタフェース回路の複数のチャネルとを備え、各チャネルは複数の高速シリアルデータ信号のうちのそれぞれ１つを受信してその信号をプログラマブルロジック回路に付加するために適した複数のパラレルデータ信号に変換するように適用されるとともに、各チャネルは高速シリアルインタフェース回路内において可能な複数の機能のうち高速シリアルデータ信号上でこれを複数のパラレルデータ信号に変換するために実行されるものを選択するよう適用されるルーティング回路をそれぞれ含んでおり、少なくとも１つの機能がパターン検出、１０ビット−８ビットデコード、チャネルアラインメント、および８ビット−１０ビットエンコードからなる一群の中から選択される、
プログラマブルロジック集積回路デバイス。
【請求項３４】
高速シリアルインタフェース回路内において可能な機能はクロックデータ復元、非直列化、パターン検出、１０ビット−８ビットデコード、レートマッチング、およびチャネルアラインメントを含む請求項３３記載のデバイス。
【請求項３５】
高速シリアルインタフェース回路内において可能な機能はバイト非直列化をさらに含む請求項３４記載のデバイス。
【請求項３６】
高速シリアルインタフェース回路内において可能な機能はキャラクタ消去ならびにキャラクタインサートをさらに含む請求項３４記載のデバイス。
【請求項３７】
ルーティング回路は少なくとも部分的にプログラム制御可能である請求項３３記載のデバイス。
【請求項３８】
各チャネルはさらにプログラマブルロジック回路からの別の複数のパラレルデータ信号をそれぞれ受信するとともにこれらの信号を高速シリアルデータ出力信号に変換するように適用される請求項３３記載のデバイス。
【請求項３９】
高速シリアルインタフェース回路内において可能な機能は８ビット−１０ビットエンコードならびに直列化をさらに含む請求項３８記載のデバイス。
【請求項４０】
高速シリアルインタフェース回路内において可能な機能はバイト直列化をさらに含む請求項３９記載のデバイス。
【発明の詳細な説明】
【０００１】
【発明の背景】
本出願は、２００１年３月１９日に提出された米国仮特許出願第６０／２７７１５０号の権利を主張するものであり、これは本出願において全体的に参照に組み入れられている。
【０００２】
高速シリアルデジタル通信はその重要性が常に増大している。この種の通信に対する異なった工業規格の数も増加している。プログラマブルロジックデバイス（“ＰＬＤ”）は、１つの共通なハードウェアデザイン（集積回路内に埋め込まれている）を種々の異なった需要を満たすようにプログラムすることを可能にするものとして広く知られている。所与のハードウェアデザインを有するＰＬＤは低コストに大量生産することができる。各ユーザはそのユーザ固有の需要を満たすようにこの種のＰＬＤをプログラムする。従って、ユーザは、高コスト、長い納期、および後から必要な変更をした際の修正の困難性を有する傾向がある、カスタム集積回路デザインを使用する必要がない。
【０００３】
高速シリアルデジタル通信を含む応用分野においてＰＬＤを使用することを実現するために、高速シリアルインタフェース（“ＨＳＳＩ”）回路を備えるＰＬＤを提供することが要望されている。しかしながら、このことを実行する上での問題点は、現在多数の高速シリアル（“ＨＳＳ”）通信規格ならびに規格化はされていないがＰＬＤのユーザが使用を希望するプロトコルが存在することである。ＰＬＤ上に多数の異なったＨＳＳＩ回路を含むことは浪費が多く不経済であるとともに、サポートすべき規格あるいはプロトコルの数が非常に多くなった場合極めて困難あるいは不可能なものとなる。他方、同じ基礎のＰＬＤ回路を異なったＨＳＳ規格またはプロトコルに適応するための異なったＨＩＳＳ回路をそれぞれ有する複数の異なった種類で製造することも、通常は共通のＰＬＤ回路デザインを大量に製造することによって得られる“規模の経済性”を利用できないため、不経済なものとなる。
【０００４】
【発明の概要】
本発明によれば、いくつかの異なったＨＳＳＩを提供するために必要な少なくともいくつかの回路要素をＰＬＤ回路が備えている。このＨＳＳＩ回路要素は少なくとも殆どにおいて固定配線されているが、少なくともいくつかのケースにおいてはその機能のうちの少なくともいくつかがプログラムによってコントロール可能であるかまた動的信号によってコントロール可能である（例えばＰＬＤコア回路によって）。ＨＳＳＩ回路要素内の相互接続も同様にプログラムによって制御可能かあるいは動的に制御可能である。使用可能なＨＳＳＩ回路要素のうちの適正なものを使用し（例えばプログラムによるあるいは動的な選択により）、かつ選択されたＨＳＳＩ回路要素を適宜に制御することによって（例えばプログラムによるあるいは動的な制御により）、回路はいくつかの考えられるＨＳＳ通信規格または一般的に同様なプロトコルのうちの１つに従って動作するよう構成することができる。いくつかのケースにおいて、特定のＨＳＳＩを実行するために必要とされる機能のいくつかは、全部または部分的にＰＬＤコア回路によって実行される。提供されるＨＳＳＩ回路要素は、ＨＳＳＩレシーバ回路あるいはＨＳＳＩトランスミッタ回路、またはその両方に対するものである。
【０００５】
本発明のその他の構成、特徴、ならびに種々の利点は、添付図面を参照しながら以下に記す詳細な説明によって明らかにされる。
【０００６】
【詳細な説明】
図１には、本発明に係る説明的なＰＬＤ１０が示されている。ＰＬＤ１０は、ＰＬＤコア回路２０と高速シリアルインタフェース（“ＨＳＳＩ”）回路３０とを備える集積回路である。ＰＬＤコア回路２０は既知のいずれかの形式および構造からなる典型的なプログラマブルロジック回路とすることができる。本発明によれば、ＨＳＳＩ回路３０は、（少なくとも殆どにおいて）固定配線されるとともにＨＳＳＩ動作を達成するために必要とされる種々の機能を実行するように特化された種々のＨＳＳＩ回路要素を含んでいる。ＨＳＳＩ回路３０は接続部３２を介して１つまたは複数の高速シリアル（“ＨＳＳ”）信号を受信し、このようにして受信した情報をコア回路によってより簡単に使用できる形式でＰＬＤコア回路２０に伝送するように使用することができる。これに代えて、またはこれに加えて、ＨＳＳＩ回路３０は、ＰＬＤコア回路２０から受信した情報を示す１つまたは複数の信号を接続部３２を介して出力するために使用することができる。導線３４はＰＬＤコア回路２０とＨＳＳＩ回路３０との間において信号を伝送するために使用される。ＰＬＤコア回路２０は、導線２２を介してその他の通常の非ＨＳＳＩ信号を入力および／または出力するために使用することもできる。
【０００７】
本発明の原理は多くのＨＳＳＩ通信規格、従って多くの形式のＨＳＳＩ回路に適用可能であるが、本発明は一般的な８ビット／１０ビット（“８Ｂ／１０Ｂ”）符号化／復号化を使用するいくつかのＨＳＳＩ規格に集約した以下の説明によって完全に理解することができる（８Ｂ／１０Ｂ符号化に関する情報はフランザック氏等の米国特許第４４８６７３９号を参照すべきである）。ここに示されている典型的な回路がサポートする典型的なＨＳＳＩ規格は、（１）ＸＡＵＩ、（２）ＩｎｆｉｎｉＢａｎｄ、（３）１Ｇイーサネット（登録商標）、（４）ＦｉｂｒｅＣｈａｎｎｅｌ、ならびに（５）Ｓｅｒｉａｌ  ＲａｐｉｄＩＯを含んでいる。この回路はさらに１０Ｇイーサネット（登録商標）もサポートするとともに純正の工業規格プロトコルの変更版である多くの非工業規格プロトコルをサポートする。ユーザによっては時々この種の工業規格の変更版を考案し使用することを要望するが、多くのこの種の変更版が本発明の回路によってサポートされる。純正の工業規格（例えば、ＸＡＵＩ、ＩｎｆｉｎｉＢａｎｄ等）は当業者において周知であるとともに、これらの規格を開発し維持している産業界によって完全に文書化され公に入手可能な情報として提供されている。従って、これらの規格について詳細な記述は不要である。
【０００８】
ここで図示して説明する説明的な実施例はＸＡＵＩであり、これは出発点の規格として使用される。これは、サポートされる他のいずれの規格と比べてもＸＡＵＩは少なくとも同等以上の機能を必要とする傾向があるためである。従って、その他の規格も同じあるいは類似のＨＳＳＩ回路要素を使用するか、あるいはＸＡＵＩをサポートするために回路３０内に設けられたそれらの要素の組み合わせによって実施することができる。ここで示されている説明的な実施例においてＨＳＳＩ回路内においてＸＡＵＩインタフェースが実質的に完全に実行されている。その他の規格のいくつかに対しては、インタフェースの一部がＨＳＳＩ回路３０内において実行され、またインタフェースの一部はＰＬＤコア回路２０内で実行される。
【０００９】
一般的な意味としてＸＡＵＩ規格は８Ｂ／１０Ｂ符号を使用して符号化された４つのチャネルのクロックデータリカバリ（“ＣＤＲ”）データを示すものである。それらのチャネルは最大３．１２５ギガバイト／秒（“Ｇｂｐｓ”）で動作する。それらのチャネルは連続する情報バイトを伝送するためにローテーション方式で使用される。特定の最大長を有する連続データ伝送が存在し、最小の長さのインタバルからなる“アイドル”によって分離される。アイドルインタバルの間にはレシーバが次のデータ伝送を受信することを可能にするための特別な文字が伝送される。
【００１０】
ＸＡＵＩは４チャネル規格であるため、図１に示されたＨＳＳＩ回路３０は基本的にそれぞれの４つのチャネルからなる１つまたは複数の“カッド”内に構成されている。図２に示されているように、代表的なカッド４０は４つのデータチャネル０−３（５０−０ないし５０−３も同様である）と１つのサポートロジック回路７０を含んでいる。データチャネル５０のそれぞれがこれに結合されたドライバ５２を介して１つのデータ流を受信するか、および／または結合されたドライバ５６を介して１つのデータ流を出力することができる。この説明的な実施例において該当するＨＳＳＩ規格は差動信号を使用する情報を受信（“ＲＸ”）および送信（“ＴＸ”）するため、ドライバ５２および５６のそれぞれは差動ドライバとすることが好適である。各レシーバドライバ５２は結合された入力ピン５４のペアを備えており、各トランスミッタドライバ５６は結合された出力ピン５８のペアを備えている。各チャネル５０はＨＳＳから受信したＨＳＳ信号を少なくとも部分的に変換して結合された導線６２を介してＰＬＤコア回路２０に付加するためにより適した形式を形成するために必要な回路を含んでいる。例えば、各チャネル５０はそれぞれ１０ビットの連続するシリアルバイトを受信して（８Ｂ／１０Ｂ符号化のため）、ＰＬＤコア回路２０に対してそれぞれ８ビットの連続するパラレルバイトを出力することができる。各チャネル５０は、さらにＰＬＤコア回路２０から受信した信号を少なくとも部分的変換して結合されたトランスミッタドライバ５６を介して出力伝送するためのＨＳＳを形成するために必要な回路を含んでいる。例えば、各チャネル５０は結合された導線６４を介して連続するパラレル８ビットデータを受信し、これを連続するシリアル１０ビットに変換して結合されたトランスミッタドライバ５６を介して出力することができる。
【００１１】
各カッド４０内に含まれているサポートロジック７０は、結合されている４つのデータチャネルの全てにおける特定の動作をサポートするために使用し得る回路を含んでいる。例えば、基準クロック（“ＲＥＦＣＬＫ”）信号を受信する１つの位相ロックループ（“ＰＬＬ”）回路はチャネル５０のそれぞれによって候補復元クロック信号を形成するために使用することができ、これらのチャネルの動作においてこのチャネル５０によって受信されたＨＳＳ  ＣＤＲ信号から最終的な復元クロック信号を形成する。別の例として、特定のＨＳＳ規格が受信したデータチャネル間における“スキュー”を許容するため、回路７０は、受信されたＨＳＳデータの４つのチャネルがこのスキューを補償するために必要な動作の一部としてどの程度相互にスキューされるかを決定する回路を備えている（スキューとは並行な伝送ラインの間における相違した伝送遅延である。）。回路７０はドライバ７２を介してＲＥＦＣＬＫ信号を受信し、導線８２および／または８４を介してＰＬＤコア２０と交信することができる。
【００１２】
図３には図２の代表的な部分の説明的な実施例がいくらか詳細に示されている。特に、図３には代表的な１つのチャネル５０のレシーバ部分が示されている。いくつかのケースにおいて、図３に示された要素はサポートロジック７０内で実施され、従ってこのサポートロジック７０に結合されたカッド内の４つの全てのチャネル５０によって共有される。
【００１３】
ＣＤＲ信号１１０はレシーバドライバ５２からの単一シリアルデータ流を受信する。ＣＤＲ回路１１０はさらに導線１１２を介してサポート回路７０内のＰＬＬ回路からのいくつかの候補復元クロック信号を受信することができる。前述したように、このＰＬＬ回路は図２に示されているように通常回路７０に付加されたＲＥＦＣＬＫ信号の１つの上で動作する（サポートロジック７０のこの特徴がどのように構成されて動作し１つのＲＥＦＣＬＫ信号からいくつかの復元された候補クロック信号を形成するかについての詳しい情報は、例えばアウング氏等による２００１年３月１３日提出の米国特許出願第０９／８０５８４３号を参照すべきである。アウング氏等の文献はさらにＣＤＲ回路１１０がどのように構成されて動作し最終的な復元クロック信号を形成するとともに入力ＣＤＲ信号からリタイムされたデータ信号を形成するためにこの種の候補復元クロック信号を使用するかについての追加的な詳細を含んでいる。勿論、ＣＤＲ回路１１０は必要に応じて異なった方式で構成され動作することができる。）ＣＤＲ回路１１０は、これが受信したＣＤＲデータ信号からのクロック信号を復元するために、サポートロジック７０からの候補復元クロック信号を使用する。ＣＤＲ回路１１０は導線１１４を介してこの復元されたクロック信号を出力する。ＣＤＲ回路１１０はさらに受信したＣＤＲデータ信号からリタイムされたデータ信号を形成し、導線１１６を介してこのリタイムされたデータ信号を出力する。（ネットワーク１１４の種々の部分上の“復元されたクロック信号”はビットレート周波数あるいはバイトレート周波数のいずれかを有することができる。ビットレートからバイトレートへの変換を行うためにネットワーク１１４上に１つまたは複数のデバイダ（図３には示されていないが図５の要素４１０に類似のものである）を設けることができる。例えば、デシリアライザ１２０はビットレート方式とバイトレート方式の両方の復元クロック信号を必要とするが、要素１３０，１４０，１５０および１６０はバイトレート方式のみを必要とする。）
【００１４】
デシリアライザ回路１２０はＣＤＲ回路１１０のリタイムされたシリアルデータ出力信号を導線１２２上のいくつかのパラレルデータ信号に変換する。このことを実行するため、デシリアライザ回路１２０はリード１１４上の復元されたクロック信号を使用する。（例えばデシリアライザ回路１２０がどのように構成され動作するかに関しては、再度前述した文献を参照すべきである。）例えば、ＣＤＲ回路１１０によるシリアル形式の連続データバイト出力は、デシリアライザ１２０による連続するパラレルバイトのデータ出力に変換される。ＸＡＵＩならびに図３の回路によってサポートされるその他の多くのＨＳＳ規格が８Ｂ／１０Ｂ符号化を使用するため、デシリアライザ１２０は１０ビットのシリアルデータバイトを受信し同様に１０ビットを有するパラレルバイトのデータを出力するよう設計することが好適である。しかしながら、任意のバイト長を使用することができ、デシリアライザ１２０は所要の任意のバイト長に従って動作し得ることが理解される。
【００１５】
デシリアライザ１２０によるパラレルデータ出力はパターン検出回路１３０に付加される。パターン検出回路１３０は、ステートマシン回路１４０とともに動作し、デシリアライザ１４０によるデータ出力内の特定のパターンを検出して入力されたＣＤＲデータ内のバイト境界を検知する。ＸＡＵＩならびに図３の回路によってサポートされるその他の多くのＨＳＳ規格において、特殊キャラクタが反復して（特に間隔を空けたインタバルをもってであるが）アイドルインタバルの間に伝送される。デシリアライザ１２０が最初は入力されるＣＤＲデータ内のバイト境界と適正に同期化されていないにもかかわらず、パターン検出回路はこの種の特殊キャラクタの検出を確実にするために充分なデシリアライザ１２０からの出力データを蓄積する。例えば、パターン検出回路１３０はデシリアライザ１２０による２つの連続“バイト” （すなわち２０ビット）出力を保持し、この２０ビット内のどこかの特殊キャラクタを検索することができる。ステートマシン１４０はこの種の特殊キャラクタ検出の軌跡を保持する。充分な数の特殊キャラクタが検出されると、これに対応する数の２０ビット群内の同じ位置全てにおいて、要素１３０／１４０が入力ＣＤＲ信号内にバイト境界を検出したことを示す出力信号を形成することができる。これらの要素１３０／１４０の出力信号はデシリアライザ１２０の動作を調整するために使用することができ、これによってその後デシリアライザは入力ＣＤＲ信号内のバイト境界と適正に同期した出力信号を形成する。
【００１６】
前述のものの具体例として、要素１３０／１４０がパターン検出回路１３０によって保持されている２０ビットのビット位置０−１９の中から５−１４の位置に特殊キャラクタを検出したと仮定する。このことはデシリアライザ１２０が入力されたＣＤＲデータ内のバイト境界と同期しておらず、その代わりにデシリアライズ動作を５復元クロックサイクル分シフト（例えば、その出力バイトをパターン検出回路１３０内において５−１４ビット位置から０−９ビット位置（または１０−１９ビット位置）にシフト）する必要があることを意味している。このようなデシリアライズ動作におけるシフトは、例えばデシリアライザ１２０内において復元されたクロックデバイダ回路を所定数の復元クロック信号サイクルの間リセット状態に保持することによって簡単に達成することができる。復元クロックディバイダ回路がリセットから解除された後に、デシリアライザ１２０が入力されたＣＤＲ信号内のバイト境界と適正に同期するバイト出力動作を再開する。
【００１７】
前述した動作の後に、導線１４２上の要素１３０／１４０の出力信号は、入力されたＣＤＲ信号から正確に復元された（すなわち適正なバイト境界に従って）連続するパラレルデータバイトとなる。導線１４２上の連続する１０ビットのバイトのそれぞれは１０ビット−８ビットデコーダ回路１５０に付加される。この回路は、連続する１０ビットの各バイトを相応する８ビットのバイトに変換する（例えば、前述したフランザック氏等の米国特許第４４８６７３９号に記載された原理に従って）。回路１５０は導線１５２を介して連続するパラレル形式の８ビットバイトを出力する。
【００１８】
回路１５０によって出力されたデータはレートマッチング回路１６０に付加される。回路１６０の目的は、図示された回路によって受信されるＣＤＲ信号を形成した回路内において使用される発振器の周波数と図示された回路とともにより局部的に使用される発振器（例えば図２に示されたＲＥＦＣＬＫ信号を形成するために）の周波数との間に存在し得る小さな差に対処することである。従って、レートマッチング回路１６０は回路１５０からの連続するバイトを導線１１４上の復元クロック信号に同期して記録するメモリ回路を含むことができるが、これは導線１６２上のローカル発振器クロック信号に同期して導線１６４を介してデータを出力する。導線１１４上の復元されたクロック信号は、回路１１０に付加されるＣＤＲ信号を形成した回路内の遠隔発振器の周波数によって決定される周波数を有している。導線１６２上の信号はローカル発振器の周波数によって決定される周波数を有する。従ってレートマッチング回路１６０はローカルおよび遠隔発振器の間に存在し得る小さな差を調整するバッファとして作用する。（導線１６２上の信号の考えられる基本的な発生源の一つは、前述したＲＥＦＣＬＫの基本発生源と同じであることが可能である。）
【００１９】
レートマッチング回路１６０に関して、ローカルおよび遠隔発振器の間の周波数差を過度に調整することを防止するためにレートマッチング回路は導線１６４を介して伝送されたデータから受信したキャラクタを時々消去するか、あるいは導線１６４上を伝送されるデータ内に時々人工的にキャラクタを挿入することが必要となる。これはアイドルインタバルの間に実施することができる。
【００２０】
レートマッチング回路１６０の出力信号１６４は入力ＣＤＲ信号から正確にデコードされるとともにローカル発振器と同期した８ビットのデータバイトである。しかしながら、これらのデータバイトは１つのＣＤＲ伝送チャネルのみからのものであり、ＸＡＵＩ（および本発明の回路によってサポートされるその他の規格またはプロトコル）は４つのこのようなＣＤＲチャネル内のデータを交互は位置することを可能にするものである。例えば、ＸＡＵＩによって使用される交互配置スキームは開始データの連続するバイトを４つのチャネルに順次繰り返しルーティングすることを含んでいる。以下の表は使用される交互配置を示している。
【００２１】
0003657918.tif 000002
【００２２】
４つのＣＤＲチャネルはそれぞれいくらか異なった大きさの遅延を有している。このことは時々、チャネルが互いに対してスキューされると呼ばれる。この種のスキューのため、異なったチャネルを介して受信されたバイトを適正な順序で再度交互配置することはいわゆるチャネルアラインメントと呼ばれる操作無しでは不可能である。
【００２３】
図３に示された回路において、チャネルアラインメント回路１７０はカッド内の他のチャネル内の該当する回路ならびにカッド内のサポートロジック７０の主要な部分と相関してチャネルアラインメント機能を実行する。チャネルアラインメント回路１７０はその他の方式で構成することもできるが、以下に代表的な１つの構成を示す。各チャネル内において、アラインメント回路１７０は導線１６４を介して受信したいくつかの連続するバイトを記録するとともにこれらのバイトをシフトレジスタチェーンに沿ってシフトするためのシフトレジスタを含んでいる。各シフトレジスタステージの内容は特殊なアラインメントキャラクタについて検査される。（アイドルインタバルの間にアラインメントキャラクタが４つの全てのチャネル内に周期的に伝送される。）４つ全てのチャネル内でシフトレジスタステージの１つの中にアラインメントキャラクタが検出されると、チャネルアラインメントはこのチャネルアラインメントキャラクタを同時に含んでいる４つのチャネル内のシフトレジスタステージに基づいたものとなる。例えば、各チャネルアラインメント回路１７０が４つのシフトレジスタステージを含んでおり、チャネル０内の４番目のシフトレジスタステージとチャネル１内の１番目のシフトレジスタステージとチャネル２内の３番目のシフトレジスタステージとチャネル３内の３番目のシフトレジスタステージ内にチャネルアラインメントキャラクタが検出された場合、４つのチャネルからの将来の実質データが以下のように再交互配置されることが理解される：チャネル０のシフトレジスタステージ４からの１バイトにチャネル１のシフトレジスタステージ１からの１バイトが続き、これにチャネル２のシフトレジスタステージ３からの１バイトが続き、さらにこれにチャネル３のシフトレジスタステージ３からの１バイトが続き、そしてこの再交互配置シーケンスが繰り返される。
【００２４】
図３に示されているように、チャネルアラインメント回路１７０はローカル発振器クロック信号１６２上で動作する。図３には示されていないが、４つのチャネル全ての中のチャネルアラインメント回路１７０が（原理的にステートマシン１４０と同様な）ステートマシンによってサポートされることができ（例えばサポートロジック７０内における）、これによってチャネルアラインメントが同じ条件を充分に反復することに基づいたものであることが保持される。ステートマシン１４０の場合と同様に、このことはチャネルアラインメントが安定した回路動作に基づくものであることを保持し、チャネルアラインメント機能の信頼性を高めることによって達成される。
【００２５】
チャネルアラインメント回路１７０は導線１７２を介してチャネルアラインドデータを出力する。このデータはプログラマブルロジックコネクタ（“ＰＬＣ”）１９０の１セットの入力に付加され、さらにバイトデシリアライザおよび位相補償回路１８０に付加される。回路１８０の機能の１つは導線１７２からの２つの連続するバイトをＰＬＣ１９０の別のセットの入力に並列に付加するために組み合わせることである。ＰＬＣ１９０は、その入力セット群のいずれかの上の信号を出力端子６２に、従ってＰＬＤコア２０（図１および図２）に伝送するようにプログラムあるいは制御することができる。回路１８０は、ＰＬＤコア２０にとって直列のバイトレートが大き過ぎる状況のためにバイトを並列に組み合わせるために使用することができる。ＰＬＣ１９０は、回路１８０を必要に応じて使用するかあるいはバイパスすることを可能にする。
【００２６】
回路１８０の別の考えられる機能は位相補償である。導線１６２上のクロック信号の位相が導線１８２上のＰＬＤコアクロック信号の位相と異なっている場合、回路１８０の位相補償部分がこの回路を通過するデータをバッファし、その結果ＰＬＤコアクロック信号に対して適正な位相関係をもって出力される。（再び、導線１６２および１８２上の信号の基本ソースは同じものとすることができるが、これら２つの信号の異なったルーティングの結果位相シフトが生じ得る。）
【００２７】
図４には、代表的な１つのチャネル５０（図２）のトランスミッタ部分がいくらか詳細に示されている。ＰＬＤコア２０によって導線６４を介して出力される連続するバイト（またバイトのペア）はＰＬＣ２２０の１セットの入力に付加され、またバイトシリアライザおよび位相補償回路２１０に付加される。ＰＬＣコアが（１つの時点で１つのバイトでなく）バイトペアを並列に出力する場合、回路１８０の機能の１つはこの種のペアのバイトを２つのシリアルバイトにシリアル化することである。回路２１０は導線２１２上のクロック信号によってクロックされ、このクロック信号はサポートロジック７０から発信することができる。回路２１０は導線２１４上のＰＬＤコアクロック信号によってクロックすることもできる。回路２１０は、導線２１２と２１４の上の信号間において考えられる位相差の位相補償を提供することができる（前述した回路１８０の位相補償機能と同様である）。（前述したネットワーク１１４（図３）の場合と同様に、ネットワーク２１２の種々の部分はビットレートあるいはバイトレート方式のクロック信号を伝送することができる。要素２１０および２３０はバイトレート方式のみを必要とするが、要素２４０はバイトレート方式およびビットレート方式の両方を必要とする。）回路２１０の出力信号はＰＬＣ２２０の他のセットの入力に付加される。
【００２８】
ＰＬＣ２２０は、いずれかのセットの入力をその出力２２２に接続するようにプログラムあるいは制御することが可能である。ＰＬＣ２２０は、回路２１０を必要に応じて使用するかあるいはバイパスすることを可能にする。
【００２９】
導線２２２上の８ビットバイトの信号は８ビット−１０ビットエンコーダ回路２３０に付加される。エンコーダ２３０は前述したフランザック氏等の米国特許第４４８６７３９号のスキームに従って各８ビットバイトを１０ビット形式に変換する。回路２３０も信号２１２によってクロックされる。
【００３０】
エンコーダ２３０の１０ビットパラレル出力信号はシリアライザ回路２４０に付加される。シリアライザ回路２４０は受信したパラレルデータを出力ドライバ５６に付加するためにシリアル形式に変換する。代表的なシリアライザ２４０の構成は前述したアウング氏等の文献に記載されているが、必要に応じてその他の好適な構成を使用することもできる。ここでもシリアライザ２４０は信号２１２によってクロックされる。
【００３１】
図３の回路のその他の考えられる構成要素が図５Ａないし図５Ｃに示されている。これらの図に関して以下に説明するが、図３と関連して既に説明した要素に関しては繰り返しの説明することを省略する。
【００３２】
特に、図５Ａないし図５Ｃは、回路の種々の応用形態において要素の種々のサブセットを使用することを可能にする制御可能なルーティングが含まれることを示している。所要の特定のルーティングを選択する際に含まれる基本的な構成要素はＰＬＣ３００，３１０，３２０等である。これらのＰＬＣは結合された制御回路３０２，３１２，３２２等によって制御される。これらの制御回路３０２等は、任意のいくつかの形式とすることができる。例えば、図６に示されたＰＬＣを制御するために機能制御要素（“ＦＣＥ”）（例えばプログラマブルメモリセル）Ｒを使用することができる。このタイプの制御は基本的に静的であり、ＰＬＤを再プログラミングすることによってのみ変更することができる（ＰＬＤは再プログラミング可能なものであると仮定する）。考えられる別の制御方式はより動的な制御である（例えば時間ごとに変化し得るＰＬＤコア回路２０からの信号または信号群に基づくもの）。図７にはこの方式制御の１つが示されている。さらに別の制御方式は、前述した２つの方式の制御の間でいずれかをプログラムによって選択することである（図８）。図８に示されている特定の例において、ＰＬＣ３００／３１０／等はＰＬＣ３０８の出力信号によって制御される。ＦＣＥ３０４は、ＰＬＣ３０８の２つの入力のうちのＰＬＣの出力信号のベースとなっているものを制御する。これらの２つの入力のうちの１つはＦＣＥ３０６から伝送されるものであり、従って静的な信号である。ＰＬＣ３０８への別の入力はより動的な信号である（例えばＰＬＤコア２０からの）。従って、ＰＬＣ３００／３１０／等の静的制御が望まれる場合、ＦＣＥ３０４はＰＬＣ３０８がＦＣＥ３０６からの信号を出力することを誘起するようにプログラムされる。他方、ＰＬＣ／３００／３１０／等のより動的な制御が望まれる場合、ＦＣＥ３０４はＰＬＣ３０８がその動的な入力信号を出力することを誘起するようにプログラムされる。図６ないし図８に示された制御方式の任意のものがここで示された任意のＰＬＣを制御するするために使用可能である。
【００３３】
図３に示された形式の回路に図５Ａないし図５Ｃに示された種々のルーティング選択肢を追加する理由の１つは以下に記すものである。図３に示された回路は、ＸＡＵＩ規格をサポートするために必要な全ての要素を備えている。しかしながら、ＸＡＵＩをサポートするために必要な全ての動作がその他の規格をサポートするために必要であるわけではない。非ＸＡＵＩ通信が実行される場合、図５において追加されたルーティング選択肢が必要でない機能をバイパスすることを可能にする。他方、いくつかの規格またはプロトコルは一般的にＸＡＵＩ機能と同等な機能を必要とするが、これらは標準的なＸＡＵＩ機能とは充分に異なっておりＸＡＵＩ専用回路はこれらを実行するためには適していない。この場合、これらの機能を実行するために汎用ＰＬＤコア回路２０を使用することができ、いわゆる“ハードロジック”（専用の略固定配線式の回路５０）からいわゆる“ソフトロジック”（ＰＬＤコア２０内の）への伝送を行う必要がある場合に図５に示されたルーティング選択肢がＰＬＤコア２０へ信号をルーティングすることを可能にする。
【００３４】
図５Ａないし図５Ｃは図示されているバスに対する典型的な幅を示している。しかしながらこのバス幅は単に例示的なものであり、必要に応じてその他バス幅を使用し得ることが理解される。また、図５Ａないし図５Ｃに示された典型的なルーティング選択肢も例示的なものであり、必要に応じ、これに代えてあるいはこれに加えてその他ルーティング選択肢を使用することもできる。
【００３５】
図５Ａにおいて、回路は実質的にドライバ５２からの入力ＣＤＲ信号かまたは結合されたトランスミッタ回路からのループバックＣＤＲ信号（図４またはより詳細には図１２Ｂ）のいずれかを選択するＰＬＣ３００から始まっている。ループバック選択肢は主にテストモードとされる。これによってユーザがトランスミッタ回路を介して信号を処理した後再びレシーバ回路に返送し処理によって信号が不適正に変化していないかどうかを検査することが可能になる。外部接続は全く必要とされない。テスト信号が変化せずに返送された場合、トランスミッタおよびレシーバ回路の両方が適正に動作していることが確認される。ＰＬＣ３００は（例えば図７中で）動的に制御することが望まれ得るＰＬＣの一例であり、従ってＰＬＣ３００は最初にテストまたはループバックモードの選択を行うことができ、その後ＰＬＣがドライバ５２の出力信号を通過させる通常の動作モードに切り換えられる。
【００３６】
ＰＬＣ３００の出力信号は図３に関して記述したようにＣＤＲ／デシリアライザ１１０／１２０に付加される。前述したように、回路１１０／１２０はさらにサポートロジック７０からいくつかの候補復元クロック信号を受信する。これらのクロック信号のうちの１つはＪで分割するために回路４１０に付加され、これは付加された信号の周波数をスケールファクタＪによって分割する。Ｊは各バイト内のビット数とすることができ、これによって回路４１０への入力信号はビットレートの周波数を有し、回路４１０の出力信号がバイトレートの周波数を有するものとなる。Ｊはプログラム可能な（例えば静的な）数値とすることができる。例えば、Ｊの数値は回路４１０に結合されたＦＣＥ内にプログラムすることができる。他方、Ｊはより動的な信号とすることもできる（例えばＰＬＤコア２０によって提供される）。図９には、回路４１０によって使用されるＪの数値を（プログラマブルＦＣＥレジスタ４１２からの）プログラム可能な静的数値とするかまたは（例えばＰＬＤコア２０からの）動的数値のいずれかにすることを可能にするための典型的な回路が示されている。ＰＬＣ４１６は、最終的に選択されたＪ値として使用するための静的あるいは動的入力のいずれかを選択するようにＦＣＥ４１４によってプログラム制御される。ＸＡＵＩ用途においてＪは１０となるが、その他の非ＸＡＵＩ用途においては１０未満の数値とすることができる。以下により詳細に記述するように、回路４１０の出力信号はレシーバ回路の下流側の所定の要素によって必要とされる。
【００３７】
回路が特定の非ＸＡＵＩ規格またはプロトコルをサポートすることを可能にするために、回路１１０／１２０のデシリアライザ部分は種々の長さのバイト（例えばＸＡＵＩについては１０ビットだがその他の所定の非ＸＡＵＩ規格については１０ビット未満となる）を処理し得ることが好適である。このことは図３に関連して短く説明したが、この機能は前述したＪ分割回路４１０の動作と類似であるためさらに詳細に記述することは不要である。特に、（回路４１０と同じ方式で制御あるいは選択された）同一のＪ値をデシリアライザが提供するバイト長を決定するためにデシリアライザ部分１２０内で使用することが可能である。図５Ａにおいて回路１１０／１２０の出力バス幅は１０（ＸＡＵＩによって必要とされるため）と示されているが、特定の非ＸＡＵＩ用途においてＪが１０未満である場合、使用可能な１０本の出力導線のうちのＪ本のみが実際に使用される。
【００３８】
非直列化された（従って並列の）回路１１０／１２０のデータ出力はパターン検出およびステートマシン回路１３０／１４０（図３に関連して説明した）に付加され、さらにＰＬＣ３２０の入力の１セットに付加される。ここで、これらのＰＬＣ３２０に付加される信号に対する考えられる１つのルーティングはＰＬＣ３８０（図５Ｂ）およびＰＬＣ３９０（図５Ｃ）を介してＰＬＤコア２０（図５Ｃ）へ向かうものであることが示される。従って、回路１１０／１２０において非直列化された後は入力データのそれ以上のハードロジック処理を行うことは必要でなく、このデータはＰＬＤコア２０に直接伝送され、そこではそれ以上の全ての処理がデバイスのソフトロジックによって実施される。これは単に回路１１０／１２０からＰＬＣ３２０に付加された信号の考えられるいくつかのルーティングの１つであり、それ以外の考えられるルーティングは以下に説明する。
【００３９】
図５Ａの回路１３０／１４０に戻ると、この回路が検出する特殊パターン（特殊キャラクタ）は回路が種々の規格またはプロトコルをサポートすることを補助するために選択可能とすることができる。例えば、図１０は、回路１３０／１４０によって使用されるパターン（パターン群）がＦＣＥレジスタ４２０内にプログラムされる静的パターンかあるいは動的パターン（例えばＰＬＤコア２０からの）となることを可能にする。ＰＬＣ４２４は、回路１３０／１４０が検出する最終的なパターン（パターン群）として使用するための静的あるいは動的パターン入力のいずれかを選択するようにＦＣＥ４２２によって制御される。図１０に示された回路の複数の例を提示することによって、いくつかのパターンは静的としその他のパターンを動的とすることができる。
【００４０】
回路１３０／１４０のステートマシン部分１４０によって使用される種々のパラメータも回路が多様な規格またはプロトコルをサポートすることを補助するために使用することができる。図１１には、この種のステートマシンパラメータを静的または動的なもののいずれかにすることを可能にする典型的な回路が示されている。図１１に示されているように、ＦＣＥレジスタ４３０は回路１３０／１４０のステートマシン部分に対する１つまたは複数のパラメータ数値によってプログラムすることができる。これらはデバイス内にプログラムされるため、その数値は“静的”なものとなる。ＰＬＣ４３４は、静的な数値あるいはより動的であり得る数値（例えばＰＬＤコア２０からの）のいずれかを選択するようＦＣＥ４３２によってプログラム制御される。図１１に示されるような複数の回路を設けることによっていくつかのパラメータを静的なものとしその他のパラメータを動的なものとし得ることが理解される。
【００４１】
回路１３０／１４０の出力信号は図５Ａに示されており、これは１０個までのデータ信号と４個までのその他の信号を含んでいる。これら４個のその他の信号は、回路１３０／１４０によって特定のパターンが検出されたことを示すフラグ信号を含むことができる。
【００４２】
回路１３０／１４０のデータ出力信号はＰＬＣ３１０の１セットの入力に付加される。ループバック信号（結合されたトランスミッタ回路からの（図４または図１２Ｂにより詳しく示されている））がＰＬＣ３１０の別のセットの入力に付加される。このループバックルーティングは前述したループバックルーティングと同様に使用することができる（例えば回路の各部のテストを実行するために）。ＰＬＣ３１０はそのいずれかのセットの入力をその出力に伝送するように制御回路３１２によって制御することができる。
【００４３】
ＰＬＣ３１０の出力およびＰＬＣ３１０に付加されない回路１３０／１４０の４出力は１０ビット−８ビットデコーダ１５０に付加され、さらにＰＬＣ３２０の１セットの入力に付加される。デコーダ１５０については図３に関連して既に説明したのでここで繰り返し説明することは不要である。ＰＬＣ３２０へのならびこれを介するルーティングによって必要に応じてデコーダ１５０をバイパスすることが可能となる。このバイパスルーティングは１０ビット−８ビットデコーディングを必要としない通信規格またはプロトコルを実施するために使用することができる。
【００４４】
デコーダ１５０の出力信号はレートキャラクタ消去ステートマシン１６０ａに付加され、またＰＬＣ３２０の別のセットの入力に付加される。回路１５０の出力信号は８個までのパラレルデータ信号と５個までのパラレルフラグ信号からなる合計１３個までのパラレル信号を含んでいる。図３には回路１６０の独立した部分としては示されていないが、回路１６０ａの機能については既に図３に関連して説明されている。短く再確認すると、回路１６０のレートマッチング機能の部分として、受信されたキャラクタ（バイト）を時々消去することが必要である。このことは少なくともアイドルインタバルの間に伝送されたキャラクタの多くについて確実に実施することができる。従って、回路１３０／１４０／１５０等の上流の回路からの信号が非真性のアイドルインタバルデータが受信されるこを示すとともに、レートマッチングＦＩＦＯ１６０ｂ等の下流側回路が検知されたレート差をバッファする容量の限界に接近していることを示している際に、ステートマシン１６０ａは典型的にそのキャラクタ消去機能を実行する。キャラクタ消去はレートマッチングＦＩＦＯ１６０ｂ（図５Ｂ）にステートマシン１６０ａからの適正な信号に応答した読み取り動作中において１バイトをスキップさせることによって実行される。必要であれば、ステートマシン１６０ａによって使用される１つまたは複数のパラメータを回路１３０／１４０のステートマシン部分１４０について実施されたものと同じ方式によってプログラムによって選択するかまたは動的に変更することができる（例えば図１１に示された回路からパラメータ数値を提供することによって）。
【００４５】
ステートマシン１６０ａの出力信号はＰＬＣ３３０の１セットの入力に付加される（図５Ｂ）。ステートマシン１６０ａはさらにＰＬＣ３３０を通過しないルーティングを介してレートマッチングＦＩＦＯ回路１６０ｂと制御信号の交換を行う。ＰＬＣ３３０のその他のセットの入力はＰＬＣ３２０の出力から提供される。回路２３２は、ＰＬＣ３３０がいずれかの入力のセットを回路１６０ｂに付加するように制御する。従ってＰＬＣ３３０は回路１６０ｂがそのデータ入力をステートマシン１６０ａから受信することを可能にする。他方、ＰＬＣ３２０と３３０は回路１６０ｂがそのデータ入力を（ａ）デコーダ１５０の出力、（ｂ）ＰＬＣ３１０の出力、または（ｃ）ＣＤＲ／デシリアライザ回路１１０／１２０の出力から直接受信することを可能にする。従ってレートマッチングＦＩＦＯ回路１６０ｂは、レートキャラクタ消去１６０ｂを伴ってあるいは伴わずに、１０ビット−８ビットデコーディング１５０を伴ってあるいは伴わずに、そしてパターン検出１３０／１４０を伴ってあるいは伴わずに使用することができる。
【００４６】
回路１６０ｂのレートマッチング動作は図３に関連して既に説明したのでここで繰り返すことは不要である。しかしながら、ここではＰＬＣ３４０が回路１６０ｂへの第２のクロック信号をデバイダ回路４１０（図５Ａ）の出力信号かあるいはＰＬＤコアクロック信号（すなわち一般的なＰＬＤコア２０のクロック信号配信ネットワーク（“クロックツリー”）２６（図５Ｃ））のいずれかとすることを可能にすることを説明する。ＰＬＣ３４０の出力信号も回路１６０ｂの下流側のいくつかの要素に付加されるクロック信号とすることができる。
【００４７】
回路１６０ｂのデータ出力信号はレートキャラクタインサートステートマシン１６０ｃに付加され、またＰＬＣ３５０の１セットの入力に付加される。回路１６０ｂはさらに回路１６０ｃとの制御信号の交換を行う。ＰＬＣ３５０のその他のセットの入力はＰＬＣ３２０の出力である。
【００４８】
図３に独立して示されてはいないが、レートキャラクタインサートステートマシン１６０ｃの機能については既に図３に関連して概略的に説明した。キャラクタ（すなわちバイト）インサートは、キャラクタ消去に必要なレート差と逆の極性を有するレート差に応答して実行される点を除いて概念的にキャラクタ消去と類似である。キャラクタインサートはキャラクタ消去を行うことが適正である場合と類似の機会に実行することができる。キャラクタインサートは、回路１６０ｂに同じバイトを２回読み取らせるステートマシン１６０ｃの信号を有することによって実行することができる。既に説明したその他のステートマシンのケースと同様に、ステートマシン１６０ｃの１つまたは複数の動作パラメータはプログラムによってあるいは動的に変化させて形成することができる（例えば図１１に示された回路からあるいはこの回路を介して提供することによって）。特定の通信プロトコルまたは規格を実施する際にキャラクタインサート機能が不要である場合、回路１６０ｂのＰＬＣ３５０を介する代替的な出力ルーティングがバイパスされる。
【００４９】
回路１６０ｃのデータ出力信号はＰＬＣ３６０の１セットの入力に付加される。ＰＬＣ回路３５０の出力はＰＬＣ３６０の別のセットの入力に付加され、さらにＰＬＣ３８０の１セットの入力に付加される。制御回路３６２は、ＰＬＣ３６０が２つのセットの入力のうちのいずれかからの信号を出力することを誘起する。ＰＬＣ３６０の出力信号はチャネルアラインメント回路１７０に付加され、さらにＰＬＣ３８０の第２のセットの入力に付加される。
【００５０】
要素１７０の機能は既に図３に関連して説明したためここで繰り返すことは不要である。前述したステートマシンの場合と同様に、回路１７０内のまたはこれと結合されたステートマシンのいくつかまたは全ての動作を制御する１つまたは複数のパラメータはプログラム可能であるかまたは動的に変更することができる（例えば、図１１に示された回路の１つまたは複数の構成形態を使用することによって）。
【００５１】
チャネルアラインメント回路１７０の出力信号は、ＸＡＵＩ受信ロジックとステートマシン４５０とに付加される。ＸＡＵＩ規格はＸＡＵＩデータが特定のルール群に従う必要があることを特徴とし、回路４５０はこのルールに従って一般的な機能を実行する。ここでもまた、回路４５０のステートマシン部分は図１１に示されるように制御されるパラメータを有している。
【００５２】
回路４５０の出力信号はＰＬＣ３８０の第３のセットの入力に付加される。制御回路３８２は、ＰＬＣ３８０がその３つのセットの入力のうちのいずれかを出力するように制御する。ＰＬＣ３８０は、（ａ）ＰＬＣ３５０の出力、（ｂ）ＰＬＣ３６０の出力、または（ｃ）回路１７０ｂの出力うちのいずれかを出力することができる。
【００５３】
図５Ｃに示されているように、ＰＬＣ３８０の出力はバイトシリアライザおよび位相補償回路１８０に付加され、さらにＰＬＣ３９０の１セットの入力に付加される。（図５Ｃ内のＰＬＣ３９０は図３のＰＬＣ１９０と同一である。）回路１８０は図３に関連して既に説明したためここで繰り返し説明することは不要である。しかしながら、図５Ｂには回路１８０がバイトレートを半減して使用する（バイトの非直列化のために必要）ために付加されたクロック信号を２によって分割する、２による分割回路４４０が示されていることを説明する必要がある。（要素３７０および３７２は回路４４０に付加される信号を復元されたクロック信号１１４かあるいはＰＬＣ３４０の出力のいずれかとすることを可能にする。）回路１８０の２ビット幅のデータ出力はＰＬＣ３９０の第２のセットの入力に付加される。回路３９２は、ＰＬＣ３９０がその入力のセットのうちのいずれかをＰＬＤコア２０（特にＰＬＤコアのユーザロジック２４に）に付加するように制御する。従ってＰＬＤ３９０は、ＰＬＤコア２０が（ａ）回路１８０の出力、または（ｂ）ＰＬＣ３８０の出力（特定の通信プロトコルをサポートするために回路１８０の機能が必要とされない場合）のうちのいずれかを受信することを可能にする。
【００５４】
一般的に、図５Ａないし図５Ｃ内に設けられた種々のクロック信号選択およびルーティングオプションは、種々のデータルーティングオプションを補完するものである。
【００５５】
前述のことから、図５Ａないし図５Ｃに示された動作回路の多くの異なった組み合わせを使用して多くの異なった通信プロトコルまたは規格をサポートし得ることが理解される。以下の表は単に考えられるもののうちのいくつかを列挙するものである（いずれの場合においても、１つの組み合わせ内において使用される動作部分の参照番号を示し、使用されていない動作部分の参照番号は省略してある）。
【００５６】
オプション          使用される動作部分
１．          １１０／１２０
２．          １１０／１２０，１８０
３．          １１０／１２０，１６０ｂ
４．          １１０／１２０，１６０ｂ，１８０
５．          １１０／１２０，１７０ａ，１７０ｂ
６．          １１０／１２０，１７０ａ，１７０ｂ，１８０
７．          １１０／１２０，１６０ｂ，１７０ａ，１７０ｂ
８．          １１０／１２０，１６０ｂ，１７０ａ，１７０ｂ，１８０
９．          １１０／１２０，１３０／１４０
１０．          １１０／１２０，１３０／１４０，１８０
１１．          １１０／１２０，１３０／１４０，１５０
１２．          １１０／１２０，１３０／１４０，１５０，１８０
１３．          １１０／１２０，１３０／１４０，１５０，１６０ａ−ｃ
１４．          １１０／１２０，１３０／１４０，１５０，１６０ａ−ｃ，１８０
ｅｔｃ．          その他の組み合わせも可能である
【００５７】
多くの異なった通信プロトコルまたは規格を実行するための追加的要素の多様性が以下のことから得られ：それらは、（１）回路の動作部分の動作パラメータの多くをプログラムによって選択するかあるいは動的に変化させる能力、および（２）ハードロジック動作部分に結合された多様な動作の変更を実行（ソフトロジック）するためにＰＬＤコア２０を使用する能力である。前記の項目（１）の例は図６ないし図１１に関連して既に説明されている。前記の項目（２）の一例は、ハードロジック動作回路１５０によって実行し得るものと異なった１０ビット−８ビットのデコーディング形式をＰＬＤコア２０内で実行することである。
【００５８】
図１２Ａおよび図１２Ｂには、図５Ａないし図５Ｃのレシーバ回路に結合することができる典型的なトランスミッタ回路が示されている。図１２Ａおよび図１２Ｂに示された回路は図４に示されたものと類似であるが、より柔軟性を高めてこれによって多くの異なった通信プロトコルまたは規格をサポートするために追加的な能力が付加されている。図１２Ａおよび図１２Ｂに示された要素の多くが図４と同一のものである。それらの要素は図４に関連して既に説明したため、図１２Ａおよび図１２Ｂに関連してそれらを完全に繰り返し説明することは不要である。図５Ａないし図５Ｃの場合と同様に、図１２Ａおよび図１２Ｂに示されているバス幅は単に例示的なものであり、必要に応じてその他バス幅を使用することができる。
【００５９】
図１２Ａに示されているように、ＰＬＤコア２０内のユーザロジック２４によって出力されるデータ信号はバイトシリアライザおよび位相補償回路２１０（既に図４に関連して説明された）に付加される。これらの信号はさらにＰＬＣ５１０の１セットの入力に付加される（図４のＰＬＣ２２０と同様）。回路２１０の出力はＰＬＣ５１０の他のセットの入力に付加される。制御回路５１２は、ＰＬＣ５１０がその入力セットのいずれかを出力として選択するように制御する。図４に関して説明したように、実施される通信プロトコルが回路２１０を使用する必要がない場合に、ＰＬＣ５１０は回路２１０を迂回して信号をルーティングすることを可能にする。
【００６０】
ＰＬＣ５１０の出力信号はＸＡＵＩトランスミッタステートマシン回路５２０に付加され、さらにＰＬＣ５３０および５４０のそれぞれ１セットの入力に付加される。図５Ｂの回路４５０と同様に、回路５２０はＸＡＵＩデータのためのＸＡＵＩルールに関連する一般的な機能を実行する。ここでも回路５２０によって使用されるパラメータを制御するために図１１に示されたような回路を使用することができる。
【００６１】
ステートマシン５２０の出力信号はＰＬＣ５３０の第２のセットの入力に付加される。制御回路５３２は、ＰＬＣ５３０がその入力セットのうちいずれかを出力として選択するように制御する。ＰＬＣ５３０（および後述するＰＬＣ５４０）は、実施される通信プロトコルが回路５２０の使用を必要としない場合に、回路５２０をバイパスすることを可能にする。
【００６２】
ＰＬＣ５３０の出力信号は８ビット−１０ビットエンコーダ２３０に付加される（図４に関して前述したものと同様）。エンコーダ２３０の出力信号はＰＬＣ５４０の他のセットの入力に付加される。制御回路５４２はＰＬＣ５４０がその入力のいずれかを出力として選択するように制御する。従ってＰＬＣ５４０は、実施される通信プロトコルが要素５２０および５３０の使用を必要としない場合にこれら両方の要素をバイパスすることを可能にする。
【００６３】
ＰＬＣ５４０の出力信号は、シリアライザ回路２４０に付加される（図４に関連して前述したものと同様）。ＰＬＣ５４０の出力信号はさらに結合されたレシーバ回路内のＰＬＣ３１０（図５Ａ）の第２のセットの入力に付加されるループバック信号とすることもできる。Ｊによる分割回路５６０は、バイトレートクロック信号を形成するためにサポートロジック７０からのビットレートクロック信号周波数をＪによって分割することによって図１２Ａおよび図１２Ｂ内のその他の要素の動作を補助する。前述したように、実行される通信プロトコル内の各バイトのビット数（例えば１０）である。回路５６０によって使用される数値Ｊはプログラム可能であるかまたは動的に選択することができる（例えば図９に示されたような回路を使用して）。
【００６４】
シリアライザ２４０の直列化された出力はＰＬＣ５５０の１つの入力に付加される。シリアライザ２４０の出力はさらに図５Ａ内のＰＬＣ３００へのループバック入力とすることができる。ＰＬＣ５５０へのその他の入力は出力ドライバ５２の出力からのループバック接続とすることができる（図５Ａ）。制御回路５５２は、ＰＬＣ５５０がその入力うちのいずれかを出力ドライバ５６に付加するために選択するように制御する。従って、最後に述べたループバック接続は入力／出力ドライバペア５２／５６をテストすることを可能にする。
【００６５】
図１２Ａおよび図１２Ｂに関する前述の説明から、（図５Ａないし図５Ｃに示されたレシーバ回路と同様に）このトランスミッタ回路が多くの異なった通信プロトコルをサポートし得ることが理解される。ＰＬＣ５１０，５３０，５４０，および５５０によって提供される多様なルーティングオプションによって、多様な動作要素を必要に応じて使用するかあるいはバイパスすることが可能になる。これらのＰＬＣの制御は、他のＰＬＣに関して前述したいずれかの形式とすることができる（例えば図６ないし図８に示されたＰＬＣ制御回路オプションのいずれかを使用することができる）。さらに、動作要素の動作の多様な特徴は、（図５Ａないし図５Ｃに関連して前述したものと同様に）プログラムによって選択するかあるいは動的に変更することができる。例えば、図９に示されたような回路を回路５６０にＪの数値を提供するために使用することができ、図１１に示されたような回路を回路５２０に対して多用なステートマシンパラメータを提供するために使用することができる。ＰＬＤコア２０内のユーザロジック２４は、実行される通信プロトコルがバイパスされる動作要素が許容し得る偏差レンジよりも大きな偏差を機能的に必要とする場合に、図１２Ａおよび図１２Ｂ内のこれらのバイパスされる動作要素と一般的に同様な機能を提供するために使用することができる。
【００６６】
ここで図示するとともに説明された回路は広範囲のＨＳＳ通信規格ならびにプロトコルをサポートするために使用される多くの特徴を備えている。前述したように、回路はＨＳＳ通信のための４チャネルの構成ブロック（またはカッド）からなる。ＸＡＵＩ規格は１つのカッドを使用する。ＩｎｆｉｎｉＢａｎｄ規格は１チャネル、４チャネル、または１２チャネルのいずれかを使用し、従って１チャネル１カッドまたは３カッドを使用してサポートされる。各チャネルはレシーバとトランスミッタの両方を備えており、これらは全二重動作を可能にする。１つのチャネル内のレシーバとトランスミッタは同一または異なった周波数で動作することができる。例えば、周波数差は２：１または４：１とすることができる。回路は広範囲の周波数にわたるＣＤＲ信号化をサポートする（例えば６２２Ｍｂｐｓから３．２Ｇｂｐｓのレンジ）。ＣＤＲ回路はロスオブロック（“ＬＯＬ”）ならびにランレングス障害（“ＲＬＶ”）防止を備えることが好適である（典型的なＬＯＬおよびＲＬＶ要素については前述したアウング氏等の文献を参照すべきである）。信号ＰＬＬ回路（ＬＯＬロジックを含む）はカッド全体をサポートすることができる。
【００６７】
回路のさらに別の好適な特徴はプログラマブルシリアライザならびにデシリアライザ要素である。例えば、これらの要素は、パラメータＪを適宜にプログラムするかあるいは制御することによって１０ビットワード（バイト）あるいは８ビットワード（バイト）のいずれかとともに動作するようにプログラムすることができる。同様に、１つのチャネルとＰＬＤコア２０との間のバス幅（状態／制御信号を除いて）もプログラム可能である（例えば８，１０，１６，または２０に）。キャラクタ認識およびアラインメントロジックはプログラム可能とすることが好適である（例えば、認識されるキャラクタに関連して、および／または、認識および／またはアラインメントにおいて使用されるステートマシン機能に関連して）。工業規格（例えばＩＥＥＥ８０２．３ｚ規格）に従った８ビット／１０ビットエンコーダおよびデコーダ回路を含むことが好適である。
【００６８】
回路は各トランスミッタおよびレシーバに対してプログラマブル（またはコントローラブル）パワーダウンを含むことが好適であり、これによって各トランスミッタおよびレシーバは必要でない場合にスイッチオフすることができる。各トランスミッタおよびレシーバに対して独立したリセット制御を設けることも好適である。
【００６９】
異なった差動信号化規格またはプロトコルが異なった振幅の電圧幅を使用するため、本発明の回路内に使用されるレシーバドライバ５２は付加される電圧差のいくつかの異なった最小量をロスオブシグナル（“ＬＯＳ”）状態として検出するようにプログラム可能あるいは制御可能とすることができる。例えば、図１３には、ＲＸ入力電圧間の差がＰＬＣ６１０の出力（群）によって選択された最小値よりも小さい際にＬＯＳ信号を出力するＬＯＳ出力を各レシーバドライバ５２が含むことができることが示されている。このＰＬＣは、その出力をＦＣＥ６１４からのものかあるいは例えばＰＬＤコア２０等のより動的な信号源からのものかのいずれかに選択するようにＦＣＥ６１２によって制御される。ＰＬＣ６１０の考えられる多様な出力はドライバ５２に対して考えられる最小ＲＸ信号電圧差のいくつかを示し、これによってＬＯＳ状態を検出する。ＲＸ入力信号間の電圧差が示された最小未満に降下した場合、ドライバ５２は有効な差動入力信号が存在しないことを示すＬＯＳ信号を形成する。
【００７０】
本発明の回路が備えることができる別の特徴が図１４に示されている。図示されているように、代表的なレシーバドライバ５２に通じている各入力は、ＶＣＣ（ロジック１）への弱いプルアップ６２０またはＶＳＳ（ロジック０）への弱いプルダウン６２２を含んでいる。これらの弱いプルアップ／プルダウン接続は、ドライバ５２が有効な信号に対して使用されていない際にこのドライバが不規則かつ不要にスイッチングすることを防止する。これによって、この不要なドライバ５２のスイッチングによって消費される電力が節約される。
【００７１】
本発明のトランスミッタ回路が備えることができる１つの特徴が図１５に示されている。この特徴は、必要に応じてプリエンファシスによって付加することができるプログラム可能または選択可能な出力電圧オフセットあるいは振幅（“ＶＯＤ”）である。図１５に示されているように、代表的な出力ドライバ５６はＰＬＣ６３０から１つまたは複数の制御信号を受信する。このＰＬＣは、これらの制御信号をＦＣＥ６３４からのものかあるいはＰＬＤコア２０等のより動的な信号源からのものかに選択するようにＦＣＥ６３２によって制御される。従ってドライバ５６に付加される制御信号は、２つまたはそれ以上のＴＸ出力信号電圧差とともに動作することを誘起する。これらの制御信号は、さらにドライバ５６が必要に応じて所要量の初期電圧差プリエンファシスをもって動作することを誘起する。
【００７２】
本発明の回路が備えることができるさらに別の特徴は、回路が入力を受信する伝送線のインピーダンスにより好適に整合させるための可変入力インピーダンスである。図１６に示されているように、この種の可変入力インピーダンスは可変抵抗６４０によって提供される。可変抵抗６４０のインピーダンスはＰＬＣ６４２からの１つまたは複数の出力信号によって制御される。このＰＬＣは、ＦＣＥ（群）６４６の出力（群）かあるいはより動的なインピーダンス選択信号（例えばＰＬＤコア２０からの）のいずれかを出力するようにＦＣＥ６４４によって制御される。
【００７３】
本発明の回路においては、さらに較正のために外部抵抗を使用することも可能である。さらに本発明の回路は、ホットインサート／除去ロジックを含むことができる。
【００７４】
図１７には、本発明に係るＰＬＤ１０がデータ処理システム１００２内において示されている。データプロセッシングデバイス１００２は以下の要素のうちの１つまたは複数のものを含むことができる：それらは、プロセッサ１００４；メモリ１００６；Ｉ／Ｏ回路１００８；および周辺装置１０１０である。これらの要素は、システムバス１０２０によって結合され、エンドユーザシステム１０４０内に含まれる回路基板１０３０上に設置される。ＰＬＤ１０とその他の任意の要素との間のいずれの接続も、前述したＣＤＲまたはＬＶＤＳ信号化を使用して形成することができる。
【００７５】
システム１００２は、コンピュータネットワーキング、データネットワーキング、計測、画像処理、デジタル信号処理、またはその他のプログラマブルまたはリプログラマブルロジックの利点を必要とする適用方法において、広範囲な適用分野で使用することができる。ＰＬＤ１０は、広範囲な異なったロジック機能を実行するために使用することができる。例えば、ＰＬＤ１０は、プロセッサ１００４と共同動作するプロセッサまたはコントローラとして構成することができる。ＰＬＤ１０は、システム１００２内において分配されたリソースへのアクセスを仲介するアービタとして使用することもできる。さらに別の例において、ＰＬＤ１０は、プロセッサ１００４とシステム１００２内の別の構成要素の１つとの間のインタフェースとして構成することができる。システム１００２は単に例示的なものであり、本発明の真の視点および精神は請求の範囲によって定義されることが理解されよう。
【００７６】
本発明の特徴ならびにデバイスの種々の構成要素（例えば前述したＰＬＣおよびＰＬＣを制御するプログラマブル機能制御要素（“ＦＣＥ”）等）を備えるＰＬＤを実施するために、種々の技術を使用することができる。例えば、各ＰＬＣは、複数の入力のいずれか１つを出力に接続するためのスイッチまたはスイッチ群等の比較的に単純にプログラム可能なコネクタとすることができる。他方、各ＰＬＣは、接続の形成と並んでロジックの実行（例えば複数の入力の論理的な結合によって）も可能な幾分複雑な要素とすることもできる。後者において、例えば、各ＰＬＣは、ＡＮＤ、ＮＡＮＤ、ＯＲ、またはＮＯＲ等の機能を実行する積算項ロジックとすることができる。ＰＬＣを実施するための好適な構成要素としては、ＥＰＲＯＭ、ＥＥＰＲＯＭ、パストランジスタ、トランスミッションゲート、アンティヒューズ、レーザヒューズ、メタルオプション接続器等が挙げられる。ＰＬＣならびに他の回路要素は、種々のプログラマブル機能制御要素（“ＦＣＥ”）によって制御することができる。（特定のＰＬＣ機器（例えば、ヒューズおよびメタルオプション接続器）においては、独立したＦＣＥデバイスは必要とされない。）ＦＣＥもいくつかの異なった方式で実施することができる。例えば、ＦＣＥは、ＳＲＡＭ、ＤＲＡＭ、ファーストインファーストアウト（“ＦＩＦＯ”）メモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、機能制御レジスタ（例えば、ウォールストロムの米国特許第３４７３１６０号公報参照）、強誘電メモリ、ヒューズ、アンティヒューズ等とすることができる。前述した種々の例に示されているように、本発明は、一回のみプログラム可能なデバイス、またはリプログラマブルデバイスのいずれに適用することもできる。
【００７７】
前述の説明は本発明の原理を単に例示するものであり、当業者においては本発明の精神を逸脱することなく、種々の設計変更をなし得ることが理解されよう。例えば、前述した種々の動作要素の順番は、少なくともいくつかの関連において単に説明的なものである。従って、少なくともこれらの要素のうちのいくつかの順番は図示されたものから必要に応じて変更することができる。
【図面の簡単な説明】
【図１】本発明に従って構成されたプログラマブルロジック集積回路デバイス（“ＰＬＤ”）の説明的な実施例を示す概略ブロック線図である。
【図２】図１に示された回路の代表的な部分を示す、より詳細であるが依然として概略化されたブロック線図である。
【図３】図２に示された回路の代表的な部分を示す、より詳細であるが依然として概略化されたブロック線図である。
【図４】図２に示された回路の別の代表的な部分を示す、より詳細であるが依然として概略化されたブロック線図である。
【図５Ａ】図３に示されたタイプの回路をより詳細に示すものであるが依然として概略化されたブロック線図である。
【図５Ｂ】図３に示されたタイプの回路をより詳細に示すものであるが依然として概略化されたブロック線図である。
【図５Ｃ】図３に示されたタイプの回路をより詳細に示すものであるが依然として概略化されたブロック線図である。
【図６】前述の各図面において使用されている説明的な構成要素をより詳細に示す構成図である。
【図７】図６に示された構成要素の別の代替例を示す構成図である。
【図８】図６および図７に示された構成要素の別の代替例を示す構成図である。
【図９】図５Ａないし図５Ｃおよび／または図１２Ａおよび図１２Ｂの回路とともに使用することができる回路を示す概略ブロック線図である。
【図１０】図５Ａないし図５Ｃの回路とともに使用することができる回路を示す概略ブロック線図である。
【図１１】図５Ａないし図５Ｃおよび／または図１２Ａおよび図１２Ｂの回路とともに使用することができる回路を示す概略ブロック線図である。
【図１２Ａ】図４に示されたタイプの回路をより詳細に示すものであるが依然として概略化されたブロック線図である。
【図１２Ｂ】図４に示されたタイプの回路をより詳細に示すものであるが依然として概略化されたブロック線図である。
【図１３】本発明に係る追加的な回路を示す概略ブロック線図である。
【図１４】本発明に係る別の追加的な回路を示す概略ブロック線図である。
【図１５】本発明に係るさらに別の追加的な回路を示す概略ブロック線図である。
【図１６】本発明に係る別の回路を示す概略ブロック線図である。
【図１７】本発明に係る回路を使用して実施される説明的なシステムを示す概略ブロック線図である。
【図１】
0003657918.tif 000003
【図２】
0003657918.tif 000004
【図３】
0003657918.tif 000005
【図４】
0003657918.tif 000006
【図５Ａ】
0003657918.tif 000007
【図５Ｂ】
0003657918.tif 000008
【図５Ｃ】
0003657918.tif 000009
【図６】
0003657918.tif 000010
【図７】
0003657918.tif 000011
【図８】
0003657918.tif 000012
【図９】
0003657918.tif 000013
【図１０】
0003657918.tif 000014
【図１１】
0003657918.tif 000015
【図１２Ａ】
0003657918.tif 000016
【図１２Ｂ】
0003657918.tif 000017
【図１３】
0003657918.tif 000018
【図１４】
0003657918.tif 000019
【図１５】
0003657918.tif 000020
【図１６】
0003657918.tif 000021
【図１７】
0003657918.tif 000022