"明細書に記載の発明。残念ながら、柔軟性が増すと回路は低速化する。機能を追加し、マルチプレクシングを増加させる同じトランジスタは、寄生キャパシタンスおよび寄生レジスタンスを挿入し、デバイスの性能を低速にする。入力および出力インターフェースの構成可能性を向上させることによって、そのインターフェースがデータを処理することができる最高速度が低下する。同様に、省電力のために、集積回路の設計者は、集積回路内でより低速の回路構成を使用することを希望する。したがって、高速で動作することもできて高度に柔軟な入力および出力インターフェースが求められている。最大効用のためには、インターフェースは、集積回路内のより低速の回路と効率的に通信することもできるべきである。したがって、本発明の実施態様は、高速または低速の入力および出力を提供する方法および装置を提供する。高速入力、高速出力、中低速入力、中低速出力を有する入出力構造が提供される。入力回路と出力回路の一方が選択され、もう一方が選択解除される。高速入力および高速出力回路は、例えば制御ライン入力に対してクリア信号のみを有して比較的単純であり、集積回路のコア内部の低速回路にインターフェースすることができる。中低速入力および出力回路は、例えば制御ライン入力としてプリセット、イネーブルおよびクリアを有してより柔軟であり、JTAGバウンダリテストを支援することができる。これらの並列の高速および低速回路はユーザによって選択可能であり、したがって、アプリケーションの要件によって、入出力構造は速度と機能の間で最適化される。本発明の例示的一実施態様は、パッド、パッドに接続された高速出力バッファ、同様にパッドに接続された低速出力バッファを含む集積回路を提供する。高速出力バッファと低速出力バッファは選択可能に活動化される。高速出力バッファが活動状態の場合は低速出力バッファが非活動状態であり、低速出力バッファが活動状態の場合は高速出力バッファが非活動状態である。この実施態様は、高速出力バッファに接続された第1のフリップフロップと、低速出力バッファに接続された第2のフリップフロップとを設けることができる。第1のフリップフロップは制御信号の第1の数を受け取るように構成されており、第2のフリップフロップは制御信号の第2の数を受け取るように構成されており、第2の数は第1の数よりも大きい。本発明の別の例示的実施態様は、パッド、パッドに接続された高速入力バッファ、および同様にパッドに接続された低速入力バッファを含む集積回路を提供する。高速入力バッファと低速入力バッファは選択可能に活動化される。高速入力バッファが活動状態の場合は低速入力バッファが非活動状態であり、低速入力バッファが活動状態の場合は高速入力バッファが非活動状態である。この実施態様は、高速入力バッファに接続された第1のフリップフロップと、低速入力バッファに接続された第2のフリップフロップとを設けることができる。第1のフリップフロップは制御信号の第1の数を受け取るように構成されており、第2のフリップフロップは制御信号の第2の数を受け取るように構成されており、第2の数は第1の数よりも大きい。さらに別の実施態様は、高速出力経路を含む集積回路を提供する。この経路は、第1の出力バッファに接続されている第1のダブルデータレートレジスタを含む。この集積回路は、第2の出力バッファに接続されている第2のダブルデータレジスタを有する低速出力経路、第1の入力バッファに接続されている第3のダブルデータレートレジスタを有する高速入力経路、および第2のバッファに接続されている第4のダブルデータレジスタを有する低速入力経路も含む。第1の出力バッファ、第2の出力バッファ、第1の入力バッファ、および第2の入力バッファはパッドに接続されている。本発明の性質および利点のよりよい理解は、以下の詳細な説明と添付の図面を参照して得ることができる。図1は、本発明の入出力インターフェースを組み込むことができるデジタルシステムのブロック図を示す。このシステムは、単一ボード上、複数のボード上、または複数の筐体内部に実現することができる。一般に本発明の実施形態は電子回路および集積回路内で有用であるが、これらはプログラム可能論理デバイス内で特に有用である。図1は、そのようなプログラム可能論理デバイス121を使用することができるシステム101を示す。プログラム可能論理デバイすなわちプログラム可能論理集積回路は、PAL、PLA、FPLA、PLD、CPLD、EPLD、EEPLD、LCA、またはFPGAと称されることがあり、固定集積回路の利点をカスタム集積回路の柔軟性と共に提供する周知の集積回路である。このようなデバイスによって、ユーザは、ユーザの特定のニーズに合うように標準の市販の論理素子を電子的にプログラムすることができる。現行のプログラム可能論理デバイスの例は、Altera社のClassic、MAX登録商標、FLEX登録商標、PLDのAPEX商標シリーズによって代表される。これらは、例えば米国特許第4,617,479号、4,871,930号、5,241,224号、5,258,668号、5,260,610号、5,260,611号、5,436,575号、およびAlteraDataBook1999に記載されている。プログラム可能論理回路およびそのオペレーションは、当業者には周知である。図1の特定の実施形態では、処理ユニット101はメモリ105およびI/O111に結合されており、プログラム可能論理デバイス121を組み込んでいる。PLD121は、特別に、接続131を介してメモリ105に、また、接続135を介してI/O111に結合することができる。システムは、プログラム可能デジタルコンピュータシステムであっても、デジタル信号処理システムであっても、専用デジタル交換ネットワークであっても、その他の処理システムであってもよい。さらに、このようなシステムは、単なる一例ではあるが、遠隔通信システム、自動車システム、制御システム、家庭電化製品、パーソナルコンピュータ、インターネット通信およびネットワーキング、その他などの幅広いアプリケーション用に設計することができる。処理ユニット101は、処理または記憶するための適切なシステム構成要素にデータを導き、メモリ105または入力に記憶されているプログラムをI/O111または他の機能を使用して実行することができる。処理ユニット101は、中央演算処理ユニットCPU、マイクロプロセッサ、浮動小数点コプロセッサ、グラフィックスコプロセッサ、ハードウェアコントローラ、マイクロコントローラ、コントローラとして使用するためにプログラムされたプログラム可能論理デバイス、ネットワークコントローラ、または他の処理ユニットであってよい。さらに、多くの実施形態では、CPUを必要としない場合もある。例えば、CPUの代わりに1つまたは複数のPLD121がシステムの論理演算を制御することができる。一実施形態では、PLD121は、特定の計算タスクを処理するために必要に応じて再プログラミングすることができる再構成可能プロセッサとして動作する。別法として、プログラム可能論理デバイス121はプロセッサを含んでもよい。いくつかの実施形態では、処理ユニット101はコンピュータシステムでもよい。メモリ105は、ランダムアクセスメモリRAM、読取専用メモリROM、固定またはフレキシブルディスク媒体、PCカードフラッシュディスクメモリ、テープまたはその他のどのような記憶取り出し手段でも、またはこれら記憶取り出し手段のいかなる組み合わせであってもよい。PLD121は、図1のシステム内で多くの様々な目的に応じることができる。PLD121は、処理ユニット101の論理構築ブロックでよく、その内部および外部での演算をサポートする。PLD121は、システムオペレーションで特定の役割を達成するために必須の論理関数を実施するようにプログラミングされている。図2は、PLDの全体的な内部アーキテクチャと構成の簡約化されたブロック図である。プログラム可能論理アーキテクチャ、構成および回路設計の多くの詳細は本発明の理解には必須ではなく、そのような詳細は図示しない。図2は、36の論理アレイブロックLAB200の6×6の2次元アレイである。LAB200は、論理関数を実行するように構成され、またはプログラミングされた一組の論理的にグループ化された論理資源である。LABの内部アーキテクチャを以下でより詳細に説明する。プログラム可能論理部分は、任意の数のLABを含むことができる。一般に、将来、技術が進み改善されると、より多くの論理アレイブロックを有するプログラム可能論理デバイスが間違いなく作成されるだろう。さらに、LAB200は正方行列またはアレイで構成される必要はない。例えば、アレイは、5×7または20×70行列のLABであってよい。LAB200は入力と出力図示せずを有し、そのいくつかは本発明と一致することができるが、それらはグローバル相互接続構造にプログラム可能に接続されてもされなくてもよく、グローバル水平相互接続GH210およびグローバル縦相互接続GV220のアレイを含む。図2には単一ラインとして示したが、各GH210ラインとGV220ラインは複数の信号コンダクタを表すこともできる。LAB200の入力と出力は隣接するGH210および隣接するGV220にプログラム可能に接続することができる。GH210とGV220の相互接続を利用して、複数のLAB200は、単一LAB200を使用して実現することができるよりも、さらに大きく、さらに複雑な論理関数を実施するように接続し、結合することができる。一実施形態では、GH210コンダクタとGVコンダクタは、それらのコンダクタの相互接続225でプログラム可能に接続してもしなくてもよい。さらに、GH210コンダクタとGVコンダクタは、別のGH210コンダクタとGVコンダクタへの複数の接続を行うことができる。様々なGH210コンダクタとGVコンダクタは、PLD部分154の1つの位置のLAB200からPLD部分154の別の位置のLAB200への信号経路を作成するためにプログラム可能に共に接続されることができる。信号は複数の相互接続225を通過することができる。さらに、LAB200からの出力信号は1つまたは複数のLAB200の入力に導かれることができる。また、グローバル相互接続を使用し、LAB200からの信号を同じLAB200にフィードバックすることができる。本発明の特定の実施形態では、選択されたGH210コンダクタだけが、GV220コンダクタにプログラム可能に接続することができる。さらに、さらに別の実施形態では、GH210コンダクタとGVコンダクタは、入力または出力などの、しかしその両方ではない、信号を特定方向に渡すために特別に使用することができる。別の実施形態では、プログラム可能論理集積回路は、必ずしもLABの全体の行または列ではなく、特定の数のLABに接続される特別のまたはセグメント化された相互接続を含むことができる。例えば、セグメント化された相互接続は2つ、3つ、4つ、5つ、またはそれ以上のLABにプログラム可能に接続することができる。プログラム可能論理アーキテクチャは、チップの周辺で、入力および出力回路230が図2で示されている。入力および出力回路230は、外部のオフチップ回路構成にPLDをインターフェースするためのものである。これらの入力および出力回路230の一部または全ては、本発明の実施形態と一致することができる。図2では、32の入力および出力回路230が示されているが、プログラム可能集積回路は、図示したよりも多くても少なくてもよい、任意の数の入力および出力回路を含むことができる。上記のように、それらの入出力ドライバの一部は、組み込まれたプロセッサとプログラム可能論理部分の間で共用することができる。各入力および出力回路230は、入力ドライバ、出力ドライバ、または双方向ドライバとして使用するように構成可能である。プログラム可能論理集積回路の別の実施形態では、入力および出力回路は集積回路のコア自体と共に組み込むことができる。入力および出力回路の組み込まれた配置は、フリップチップパッケージングによって使用することができ、信号の入力および出力回路へのルーティングの寄生を最小限に抑える。図3は、図2のLAB200の簡約化されたブロック図を示す。LAB200は、論理セルと称されることのある様々な数の論理素子LE300、およびローカルまたは内部相互接続構造310から構成されている。LAB200は8つのLE300を有するが、LAB200は8つより多くても少なくてもよい任意の数のLEを有することができる。LE300の全般的な概要を本明細書で示すが、これは本発明の基礎的な理解を提供するには十分である。LE300はPLDの最小の論理構築ブロックである。GH210およびGV220などの、LABの外部の信号は、ローカル相互接続構造310を介してLE300に接続されている。一実施形態では、本発明のLE300は、4変数ブーリアン演算などの複数の変数の論理関数を提供するように構成可能な関数ジェネレータを組み込む。結合関数と同様に、LE300も、例えばDフリップフロップを使用して連続した記録された関数をサポートする。LE300は、LAB300の外部のGH210とGV220とに接続可能な結合の登録された出力を提供する。さらに、LE300の出力は、ローカルな相互接続構造310に内部的にフィードバックすることができる。すなわち、ローカルな相互接続構造310を介して1つのLE300からの出力は、グローバル相互接続構造のGH210とGV220を使用せずに別のLE300の入力にプログラム可能に接続することができる。ローカルな相互接続構造310によって、限定されたグローバル資源であるGH210とGV220とを使用せずにLEの短距離相互接続が可能になる。図4は、プログラム可能な論理アーキテクチャを示す。図4のアーキテクチャはさらに、スモール組込アレイブロックembeddedareyblockEABを含む。EABは、ユーザメモリ、すなわちフレキシブルなRAMブロックを含む。このアーキテクチャについてのさらに詳細な説明は、AlteraDataBook1999年のFLEX10K製品ファミリーの説明から、また米国特許番号5,550,782号から得ることができる。入出力要素の一部またはすべては本発明の実施形態に従うことができる。組込アレイブロックは、周波数変換器として、また高速の入出力と論理アレイブロックを含むコア回路間のインターフェースをとるシリアル/パラレル変換器として機能するFIFOとして構成することができる。AlteraのAPEX登録商標およびStratix登録商標製品ファミリーなど他のアーキテクチャについては、95134カリフォルニア州、サンホセ、イノベーションドライブ101番地のAltera社から入手可能な個々のデータシートに詳細に記載される。図5は、本発明の一実施形態による入出力回路を示すブロック図である。これには、低速出力回路530、低速出力バッファ550、高速出力回路535、高速出力バッファ550、低速入力バッファ560、低速入力回路540、高速入力バッファ565、高速入力回路545、マルチプレクサ570および575、パッドP1510およびP2520が含まれる。低速出力回路530と低速出力バッファ550は、コア回路からパッドP1510に信号を提供する低速の出力経路を形成する。高速出力回路535と高速出力バッファ555によって高速の出力経路が提供される。この経路は、FIFOまたは他のコア回路から信号を受け取り、パッドP1510およびP2520にディファレンシャル出力を提供する。低速入力バッファ560と低速入力回路540は、パッドP1510で信号を受け取って出力をコア回路に提供する低速入力経路を形成する。高速入力バッファ565と高速入力回路545によって高速の入力経路が提供される。この経路は、パッドP1510およびP2520でディファレンシャル入力を受け取り、FIFOまたはコア内の他の回路に信号を提供する。さらに、マルチプレクサ570は、低速出力回路530と高速ディファレンシャル出力バッファ555を含む低速経路を提供する。このような方式で、コア回路からの低速信号をディファレンシャル出力信号として提供することができる。同様に、ディファレンシャル入力信号を高速入力バッファ565で受取り、マルチプレクサ575を通じて低速入力回路540に提供することができる。この方式により、低速のディファレンシャル入力信号を受け取り、コア回路に出力することができる。本発明の特定の実施形態では、低速出力回路530、高速出力回路535、低速入力回路540、および高速入力回路545はダブルデータレートレジスタである。ラベル高速と低速は相対的な用語であり、いずれかの特定のデータレートを表すものではない。図6は、本発明の一実施形態による入出力回路を表す別のブロック図である。この図は、含まれるすべての図と同様に例示の目的のみで示すものであり、可能な本発明の実施形態または特許請求の範囲を制限するものではない。これには、パッドP1610およびP2620、入力ブロックIN1650、出力ブロックOUT1670、高速出力ブロックHSOUT680、高速入力ブロックHSIN690、出力ブロックOUT2675、および入力ブロックIN2655が含まれる。また、出力イネーブルブロックOE1660、およびOE2665も含まれる。各入力、出力、および出力イネーブルのブロックは同期させても非同期であってもよい。一実施形態では、グローバルGCLKおよびローカルLCLKのクロックライン630と、高速のクロックラインHCLK640が設けられている。本発明の特定の実施形態では、数本の低速または中速のグローバルクロックラインを集積回路全体の回路が利用することができる。さらに、数個の低速または中速のローカルクロックも利用することができる。これらのローカルクロックは、例えば集積回路の4分の1など集積回路の一部のみが使用することができ、その部分のみに配線される。これらの低速および中速のクロックに加えて、数個の高速クロックHCLK640も利用することができる。このクロックは、ローカルおよびグローバルなクロックラインと同様にシングルエンド方式でもディファレンシャル方式でもよい。用語低速、中速、および高速の使用は相対的なものである。当業者には、現在高速であるものがほどなく中速になることが理解されよう。入力ブロックおよび出力ブロックとの入力ラインおよび出力ラインは、集積回路のコア内の論理ゲートまたは論理アレイブロックとの間に直接設けることができる。あるいは、これらの入出力信号は、データバッファまたは周波数変換器として機能することができる先入れ先出しFIFOメモリに、またはメモリから提供してもよい。これらの入出力回路は、パッドP1610およびP2620が以下を提供できるように選択することができる。1つの高速ディファレンシャル出力、1つの高速ディファレンシャル入力、1つの中速または低速のディファレンシャル出力、1つの中速または低速のディファレンシャル入力、2つのシングルエンド入力、2つのシングルエンド出力、または1つのシングルエンド入力および1つのシングルエンド出力。信号経路は、信号を多重化し、パスデバイスを開き、ショートさせることによって、または他の選択構造を使用することによって選択することができる。特定の実施形態では、マルチプレクサを使用して入力パッドおよび出力パッドからの回路を結合または切断する。他の実施形態の入出力回路は、それらが上記のリストよりも多い、異なる、または少ない入力および出力のタイプを提供するように選択することができる。図6の回路を高速出力として構成した場合は、高速出力ブロックHSOUT680が選択され、他のブロックは選択されない。出力信号DOHをライン684で受け取る。信号DOHは、集積回路のコア内の論理ゲート、またはFIFOから受け取ることができる。例えば、DOHは、集積回路内部の回路から低周波数または中程度の周波数でデータを受け取り、より高い周波数でデータを出力するFIFOによって提供することができる。クロック信号は、パスゲート642により高速クロック640の1つに選択的に結合されるライン682で受け取られる。出力イネーブル信号OEHがライン683で受け取られ、これにより高速出力回路を使用可能または使用不可にする。ディファレンシャル高速出力がパッドP1610およびP2620に提供される。ディファレンシャル高速入力を提供するように図6の回路を構成した場合は、高速入力ブロック690が選択され、他の入出力回路は選択されない。このディファレンシャル高速入力はパッドP1610およびP2620で受け取られる。高速の信号DIHが、ライン694を通じて集積回路のコアに提供される。信号DIHは、集積回路内部の高速回路が受け取ってもFIFOが受け取ってもよく、その出力はより低い速度でクロックされる。高速のクロック信号がライン692で高速入力ブロックに提供される。このラインはパスデバイス644により高速クロック640の1つに選択的に結合される。この回路は、各パッドが中速または低速のシングルエンド出力を提供するように構成してもよい。例えば、出力ブロックOUT1670を選択することができ、高速出力ブロックHSOUT680および入力ブロックIN1650は選択されない。出力ブロックOUT1670は、ライン612で出力パッドP1610に出力信号を提供する。入力信号DO1は、この場合もコア回路または変換FIFOからライン674で受け取られる。グローバルまたはローカルクロック630の1つから、低速または中速のクロック信号がライン672でパスデバイス634によって受け取られる。出力ブロックOUT1は、出力イネーブル回路OE1660によって使用可能または使用不可にすることができる。この特定の例では、出力イネーブル回路660と出力回路670は、同じクロック信号をライン672で受け取る。他の実施形態では、これらのブロックは別個のクロック信号を受け取ることができる。出力イネーブルブロックOE1660は、集積回路のコアから出力イネーブル信号664を受け取り、ライン661でイネーブル信号を出力ブロックOUT1670に提供する。同様の回路が出力ブロックOUT2675と出力イネーブルブロックOE665によって提供され、これらのブロックはパッドP2620に結合される。図6の回路は、パッドP1610およびP2620の1つまたは両方がシングルエンドの入力信号も受け取ることができるように構成することもできる。例えば、パッドP1610でシングルエンドの入力信号を受け取り、ライン612で入力回路IN1650に提供することができる。入力回路IN1650は、ラインDI1654を通じてチップの残りの部分に入力信号を提供する。DI1は、先のように、集積回路中のコア回路に提供してもFIFOに提供してもよい。ライン652で、パスデバイス632を通じてグローバルクロックまたはローカルクロック630の1つからクロック信号が受け取られる。同様の回路が入力ブロックIN2655によって提供され、これはパッドP2620に結合される。さらに、信号ライン693など他の信号ラインが設けられている。これはこの回路を中速または低速のディファレンシャル入力として構成することを可能にする経路を提供し、この場合はパッドP1610およびP2620で受け取ったディファレンシャル入力が出力DI1としてライン654で提供される。さらに信号経路673が設けられており、出力ブロックOUT1670によって受け取った中速または低速の出力信号DO1674が、ディファレンシャル出力としてパッドP1610およびP2620に提供される。より柔軟で、低速の入出力回路がさらに高い構成可能性を提供する。例えば、低速の回路は、異なる周波数と異なる位相で動作するより多くのクロックラインの選択に選択的に結合することができる。また、JTAGのバウンダリテストもサポートすることができる。特定の実施形態では、より正確にタイミングを合わせた出力イネーブル信号を低速出力バッファまたはドライバで利用することができ、FIFO、または直接コア論理アレイブロックに低速回路を結合することができるのに対し、高速の入出力回路は一般にFIFOの周波数変換能力を必要とする。また、高速回路にはクリア機能しかないのに対して、低速回路はプリセット、クリア、およびイネーブルの機能を含む。さらに、低速回路はシングルエンド方式なので、2つのパッドを低速回路用の2つの出力パッド、2つの入力パッド、あるいは1つの入力パッドと1つの出力パッドとして使用することができるが、ディファレンシャルに基づく性質のために高速の入力または出力1つには2つのパッドが必要とされる。図7は、本発明の一実施形態による入出力インターフェースのブロック図である。これには、入出力回路701に接続されたパッドP1710およびP2720が含まれ、回路701は、コア回路702とFIFO715および725とのインターフェースをとる。多くの場合、コア回路702とFIFO715および725は集積回路の中心に配置され、一方、入出力回路701は集積回路の周辺部に配置され、パッドはその端部に配置される。入出力レジスタはそれぞれダブルデータレートレジスタでよい。あるいは、各レジスタは単一のフリップフロップでもよい。したがって、レジスタからFIFO715および725への各入出力ラインは、1本または複数のデータラインにすることができる。例えば、出力レジスタがダブルデータレートレジスタである場合、図の入力ラインは2本のデータラインからなる。各データラインは、シングルエンド方式のシグナリングの場合は1本のライン、またはディファレンシャル方式のシグナリングの場合は2本のラインになる。ダブルデータレートレジスタをFIFOに結合する場合、図の各FIFOは2つの出力を有する単一のFIFO、または2つの個別のFIFOにすることができる。FIFO715、出力レジスタ780、マルチプレクサ781、およびディファレンシャル出力バッファまたはドライバ782によって高速のディファレンシャル出力経路が形成される。高速のディファレンシャル出力となるように図7の回路を選択的に構成する場合、通例これらの回路が選択的に活動化され、他の回路は非活動化される。例えば、活動化された回路はマルチプレクサを通じて出力パッドに結合することができ、一方非活動化した回路は他のマルチプレクサによって切断される。また、電力を節減するために非活動化回路へのクロック入力は切断することができ、すなわちパスデバイスまたは他の接続を通じて活動化されたクロックラインに接続されない。これらのマルチプレクサ、パスデバイス、および他の接続は、プログラム可能ビット、動的な信号、あるいは他の手段によって制御することができる。プログラム可能ビットは、EEPROM、フラッシュ、SRAM、DRAM、MRAM、ヒューズ、アンチヒューズ、あるいは他の回路に記憶することができる。動的信号は、コア論理ブロック、外部回路、あるいはその他のソースによって生成することができる。FIFO715は入力信号図示せずをコア回路から受け取り、高速出力レジスタ780の入力に結合された出力を提供する。しばしば、FIFO715は、低周波数のコア回路と高周波数のディファレンシャル出力間のバッファおよび周波数変換器として機能する。高速出力レジスタ780は、高速クロックライン740の1つによってクロックされる。高速レジスタの出力はマルチプレクサ781に提供され、マルチプレクサは出力バッファ782を駆動する。出力バッファ782は、パッドP2720およびP1710に、反転させる出力信号および反転させない出力信号を提供する。ディファレンシャル出力バッファ782は、1つまたは複数の規格または規約と選択的に互換性のある出力信号を提供することができる。例えば、出力バッファ782は、LVDS、LVPECL、ハイパートランスポート、およびPCMLの1つまたは複数と互換性のある出力信号を提供することができる。これらの高周波入出力の規格および規約は、通例、ディファレンシャル方式のシグナリングを規定する。したがって、高速の入出力回路はしばしば2つのパッドの使用を必要とする。ディファレンシャル入力バッファすなわちドライバ791、高速入力レジスタ790、マルチプレクサ793、およびFIFO725によって高速のディファレンシャル入力経路が形成される。高速のディファレンシャル入力を提供するように図7の出力回路を選択的に構成した場合、通例はこれらの回路は選択的に活動化され、残りの回路は非活動化される。パッドP1710およびP2720で高速ディファレンシャル入力信号を受け取ってディファレンシャル入力バッファ791に与え、バッファは高速入力レジスタ790に入力信号を提供する。高速入力レジスタ790は、マルチプレクサ793を通じてFIFO725に出力を送る。高速入力レジスタ790は、高速クロックHCLK740の1つによってクロックされる。通常、FIFO725は、高速入力レジスタからコア702内の低速コア回路への周波数変換を行う。ディファレンシャル入力バッファ791は、1つまたは複数の規格または規約と互換性のある入力信号を受け取ることができる。入力バッファ791は、例えばLVDS、LVPECL、ハイパーロランスポート、およびPCMLの1つまたは複数と互換性のある入力信号を受け取ることができる。出力レジスタ770と、出力バッファまたはドライバ771により、パッドP1710にシングルエンドの出力信号を提供することができる。パッドP1710にシングルエンドの出力信号が提供される際、通例これらの回路は活動化され、一方、入力レジスタ750、入力バッファ751、高速出力レジスタ780、および高速入力レジスタ790など入出力回路701中の他の関連する回路は非活動化される。出力レジスタ770でコア回路702またはFIFO715から信号が受け取られる。出力レジスタ770は出力信号をシングルエンドの出力バッファ771に提供し、バッファ771はパッドP1710を駆動する。出力バッファ771は、出力イネーブルレジスタ760によって使用可能または使用不可にすることができる。出力レジスタ770および出力イネーブルレジスタ760は、グローバルクロックまたはローカルクロック730の1つの真のバージョンまたは補完的なバージョンによってクロックされる。この特定の実施形態では、それぞれクロック出力イネーブルレジスタ760と出力レジスタ770をクロック制御するクロックマルチプレクサ763および773は同じクロックラインに結合される。他の実施形態では、これらのマルチプレクサを個別のクロックラインに結合してもよい。出力バッファ771は、1つまたは複数の規格または規約に従った出力を提供することができる。出力バッファ771は、例えばLVTTL、LVCMOS、SSTL、およびTTLの1つまたは複数に従った信号を提供することができる。同様に、出力レジスタ775および出力バッファ776によりシングルエンドの出力信号をパッドP2720に提供することができ、これは出力イネーブルレジスタ765によって可能になる。入力バッファ751および入力レジスタ750を使用して、パッドP1710からシングルエンドの入力信号を受け取ることができる。シングルエンドの入力信号をパッドP1で受け取る際、通例これらの回路は活動化され、一方出力レジスタ770、出力バッファ771、出力イネーブルレジスタ760、高速出力レジスタ780、および高速入力レジスタ790など他の関連する回路は非活動化される。パッドP1710で受け取られる信号は、ライン712を通じて入力バッファ751に送られる。入力バッファ751は、1つまたは複数の仕様または規約に従ったことができる。入力バッファ751は、例えばLVTTL、LVCMOS、SSTL、およびTTLの1つまたは複数によることが可能である。入力バッファ751は入力レジスタ750に入力信号を提供し、入力レジスタはFIFO725、またはコア702中の他の回路を駆動する。入力レジスタ750は、マルチプレクサ753を通じてグローバルまたはローカルのクロックライン730の1つからのクロック信号の真のバージョンまたは補完的なバージョンによってクロックされる。同様に、パッドP2720からバッファ756でシングルエンドの入力信号を受け取ることができ、これにより入力レジスタ755が駆動される。他の構成ではこれらの入出力回路701を選択的に使用可能にすることができる。例えば、ディファレンシャル入力バッファ791は、その出力をマルチプレクサ752を通じて入力レジスタ750に送ることができる。また、出力レジスタ770は、その出力をマルチプレクサ781を通じてディファレンシャル出力バッファ782に送ることができる。本発明の他の実施形態では、入出力回路701の他の組み合わせを選択的に可能にし、選択的にFIFO715および725とコア回路702に結合することができる。FIFO715および725は、高速の入出力回路と低速のコア論理アレイブロックとの間の周波数変換を行う。具体的には、各FIFOは、小さな組込アレイブロックSEAB、または他の組込メモリブロックから形成することができる。SEABは、AlteraStratixデバイスに用いられる組込メモリブロックの1タイプである。図7の回路を高速入力として構成する場合、高速入力レジスタ790からのデータ信号はFIFO725でシリアルに受け取られ記憶される。このデータは、2つの方式の1つにより、より低い周波数でFIFO725から出力することができる。第1に、FIFO725の読み出しポートはその書き込みポートよりも広くすることができる。この方式で、FIFO725は、高速の入力データをより低い周波数に変換するシリアルからパラレルへのデータ変換を行う。第2に、FIFO725の読み出しポートは、その書き込みポートよりも低い周波数でクロックされる。この方式により、高周波数でシリアルに書き込まれた高速データが、より低い周波数でシリアルに読み出される。この場合にはバッファのオーバーランを回避するように注意しなくてはならない。図7の回路を高速出力として構成する場合、コア論理アレイブロックからのデータ信号はFIFO715でシリアルまたはパラレルに受け取ることができる。FIFO715でデータがパラレルに受け取られる場合は、それをシリアルに高速出力レジスタ770に読み出すことができる。この場合も、この結果、低速のコア論理アレイブロックから高速の出力レジスタ770への周波数変換が行われる。あるいは、FIFO715でデータがシリアルに受け取られる場合は、より高い周波数でシリアルにクロックされ、出力レジスタ770にセットされることができる。この場合にはバッファのアンダーランを回避するように注意しなくてはならない。図8Aは、高速のディファレンシャル出力をより詳細に示すブロック図であり、この出力は、図6のHSOUT680として、図7の高速出力レジスタ780およびディファレンシャル出力バッファ782として、あるいは本発明の他の実施形態における回路として使用することができる。これには、FIFO825aおよび825b、フリップフロップ880aおよび880b、マルチプレクサ850、および出力バッファ882が含まれる。FIFO825aおよび825bは、交互に、2つの出力を有する1つのFIFOであってもよい。フリップフロップ880aおよび880bとマルチプレクサ850は、ダブルデータレートの出力レジスタを形成する。マルチプレクサ850の出力に接続された第2のマルチプレクサは、ディファレンシャル出力バッファ882にアクセスするための別の信号経路を提供するのに使用することができる。この第2のマルチプレクサは、高速出力が非活動化され選択されない際に、出力バッファから高速レジスタを切断するためにも使用することができる。さらに別のマルチプレクサまたはパスデバイスをレジスタデータとクロック入力の経路に挿入して、この経路を非活動化し、電力を節減することができる。当業者には、本発明に従ったこの回路にはこの他の修正を加えられることが認識されよう。入力信号が、FIFO825aおよび825bによってラインDIN1821およびDIN2822で受け取られる。この例では、入力信号は、パスデバイス834および832によって選択されるグローバルクロックまたはローカルクロック830によってFIFOにクロックされる。FIFO825aは、フリップフロップ880aによって受け取られる出力を提供する。FIFO825bは、フリップフロップ880bによって受け取られる出力を提供する。FIFO825aおよび825bの出力信号は、パスデバイス846および844によって選択される高速クロックライン840によってクロックされる。フリップフロップ880aおよび880bも、パスデバイス842によって選択される高速クロックライン840の1つによってクロックされる。フリップフロップ880aおよび880bの出力は、マルチプレクサ850への入力として提供され、マルチプレクサの出力は、フリップフロップによって受け取られたのと同じクロック信号によって選択される。マルチプレクサ850の出力は、ディファレンシャル高速出力バッファ882に提供され、これがパッドP1810およびP2820を駆動する。各クロックサイクル中にフリップフロップ880aと880bの間で多重化することによって、出力信号のデータレートがフリップフロップ出力Q1811およびQ2812の2倍になる。さらに、データをFIFO入力DIN1821およびDIN2822で並列に受け取ることができる。例えば、入力DIN1821でFIFO825aによってデータの4ビットを受け取ることができ、入力DIN2822でFIFO825bによって4ビットを受け取ることができる。各FIFOからの4ビットを、DIN1821およびDIN2822でのデータ転送のデータレートの4倍でフリップフロップ880aおよび880bにクロックされることができる。マルチプレクサ850を用いてフリップフロップ880aと880bの出力を多重化することによって、データレートが再び効果的に倍増され、DIN1821およびDIN2822に比べて、VOUTではデータレートが8倍に増大する。他の実施形態では、FIFOによって4ビットよりも多い、または少ないビットを並列に受け取ることができ、より高い、またはより低いデータ変換率をもたらす。FIFO825の出力がハイに保たれ、FIFO825bの出力がローに保たれる場合、結果として得られる出力信号は、交互に0と1をもつ高速クロックになる。具体的には、ライン821でDIN1がハイに保たれ、ライン822でDIN2がローに保たれる場合、FIFO825aの出力、すなわちライン811でのQ1がハイであり、FIFO825bの出力、すなわちライン812でのQ2がローである。マルチプレクサ850は、ライン811でのハイ信号Q1とライン812でのロー信号Q2とを交互に選択し、それによりクロック信号を発生する。あるいは、フリップフロップ880aおよび880bへの入力を、選択可能な入力として論理ハイまたは論理ローレベルを有するマルチプレクサに結合することができる。クリアラインが、ライン885でフリップフロップ880aおよび880bに提供される。最高速度を達成できるように、フリップフロップ880aおよび880bの機能を制限することが望ましい。したがって、これらのフリップフロップは、プリセットラインまたはイネーブルラインを含まない。他の実施形態では、これらのラインを含むことができる。他の実施形態では、クリアライン885を含まない場合があり、それによりフリップフロップ880aおよび880bの構造をさらに簡略化する。図8Bに、本発明の特定の実施形態で使用することができる調節可能な遅延ラインを例示する。例えば、入力ライン815aをマルチプレクサ850の出力に結合することができ、出力ライン815bは高速ディファレンシャル出力バッファ882の入力に結合される。調節可能遅延ラインは、遅延ライン860およびマルチプレクサ870を含む。ライン815aで受け取られた信号は、遅延され、ライン861、862、および863に出力として提供される。これらのラインは、タップおよび遅延ラインの出力に対応することができる。これらのライン、およびライン815aでの入力信号は、マルチプレクサ870、およびライン815bでの出力によって選択可能である。このようにして、ディファレンシャル出力のクロック対Q遅延を調節することができる。これは、セットアップおよび保持時間を最適化するのに有用である。同様の調節可能な遅延ラインを、含まれる入力および出力回路それぞれにおける適切な位置に挿入することができる。図9Aは、図8Aの出力回路の動作を例示するタイミング図である。FIFO入力信号DIN1921aおよびDIN2922a、フリップフロップ出力Q1911aおよびQ2912a、クロック信号986a、ならびに出力電圧Vout910aが含まれている。この例では、FIFOの書込みポートは4ビット幅であり、FIFO入力信号DIN1921の一部分が、4つの入力ビットA、B、C、およびDをそれぞれ1つの入力ラインに含む。FIFO入力信号DIN2922の一部分は、ビットE、F、G、およびHをそれぞれ1つの入力ラインに含む。FIFOは、これらの入力信号を記憶し、それらをフリップフロップ880aおよび880bに送る。これらのフリップフロップは、クロック信号986によってクロックされ、FIFO825aおよび825bの入力でのデータレートの4倍の周波数でデータを出力する。マルチプレクサ850は、入力を交互に選択し、データレートを倍増して、フリップフロップの出力からデータをインターリーブする。したがって、シーケンスA、E、B、F、C、G、D、およびHでの出力ビットを含むVout910aがパッドP1810およびP2820に提供される。見て分かるように、Vout910aのデータレートは、DIN1921aおよびDIN2922aを構成する4つの入力信号のデータレートの8倍である。この特定の例では、DIN1921aおよびDIN2922aが4ビット幅である。他の実施形態では、これらを4ビット幅よりも大きく、または小さくすることができる。図9Bは、図8Aの出力回路の代替動作を例示するタイミング図である。FIFO入力信号DIN1921およびDIN2922、フリップフロップ出力Q1911およびQ2912、クロック信号986、ならびに出力電圧Vout910が含まれている。この例では、FIFO入力信号DIN1921の一部分が、4つの入力ビットA、B、C、およびDを含む。FIFO入力信号DIN2922の一部分は、ビットE、F、G、およびHを含む。FIFOは、これらの入力信号を記憶して、後でそれらをフリップフロップ880aおよび880bに送る。これらのフリップフロップは、クロック信号986によってクロック制御され、FIFO825aおよび825bの入力でのデータレートよりも高い周波数で出力する。マルチプレクサ859が、入力を交互に選択し、それによりフリップフロップの出力からデータをインターリーブする。したがって、シーケンスA、E、B、F、C、G、D、およびHでの出力ビットがパッドP1810およびP2820に提供される。図10は、図6のHSIN690、図7の高速入力レジスタ790およびディファレンシャル入力バッファ791、または本発明の他の実施形態での他の回路として使用することができる高速ディファレンシャル入力のさらなる詳細を示すブロック図である。FIFO1025aおよび1025b、フリップフロップ1090bおよび1090c、ラッチ1090a、および入力バッファ1091が含まれている。別法として、FIFO1025aおよび1025bを、2つの入力を有する1つのFIFOにすることもできる。他の図と同様に、これらのFIFOは、例えば、2つの入力ポートおよび2つの出力ポートを有する1つのFIFOであってよい。また、入力ポートと出力ポートは、構成可能である場合があり、入力ポートが1つのクロックを共有することができ、出力ポートが別のクロックを共有することができる。フリップフロップ1090bおよび1090cと、ラッチ1090aとが、ダブルデータレート入力レジスタを形成する。別法として、ラッチ1090aを第3のフリップフロップにすることができる。マルチプレクサまたはパスデバイスをCLK1043、Q11062、Q21061、またはレジスタデータ入力経路に挿入して、この高速入力経路を非活動化し、電力を節約することができる。本発明に適合するこの回路に他の修正を施すこともできることを当業者は理解されよう。入力信号は、入力バッファ1091によってパッドP11010およびP21020で受け取られる。入力バッファ1091は、フリップフロップ1090bおよび1090cに入力を提供する。高速クロック信号が、パスデバイス1042によってHCLKクロックライン1040の1つから選択される。クロック信号は、ライン1043でフリップフロップ1090cおよびラッチ1090aに印加され、インバータ1050によって反転されて、フリップフロップ1090bに送られる。入力バッファ1091からのデータは、フリップフロップ1090cによってクロックの立ち上がり端でラッチされ、フリップフロップ1090bによってクロックの立ち下がり端でラッチされる。フリップフロップ1090bによって記憶されたデータは、ラッチ1090aによってリタイムされ、それにより、信号Q21061およびQ31062が、クロックの立ち上がり端でFIFO1025aおよび1025bに送られる。FIFO1025aおよび1025bは、データをバッファし、ラインDOUT11026およびDOUT21027でより低い周波数でデータをコア回路に提供する。信号Vin1012は、フリップフロップ1090cによってクロックの立ち上がり端でラッチされ、フリップフロップ1090bによってクロックの立ち下がり端でラッチされるので、Q31062およびQ21061で結果として得られるデータレートはVin1012の半分になる。すなわち、フリップフロップ1090aおよび1090bは、入力データの2ビット直並列変換を行う。この概念はさらに、FIFO1025aおよび1025bで拡張することができる。例えば、直列に受け取られる4ビットを、FIFO出力DOUT11026およびDOUT21027で並列に出力することができる。このようにして、入力信号Vin1012と、DOUT11026およびDOUT21027とから8倍の周波数変換が達成される。他の実施形態では、4ビットよりも多い、または少ないビットを、FIFO1025aおよび1025bによって直列データから並列データに変換することができ、それにより異なる全体周波数変換を達成する。図11Aは、図10の入力回路の動作を例示するタイミング図である。クロック信号1143a、入力信号1112a、フリップフロップ出力Q11160aおよびQ21161a、ラッチ出力Q31162a、ならびにFIFO出力DOUT11126aおよびDOUT21127aが含まれている。この例では、入力信号VIN1112aの一部分が、データビットシーケンスA、B、C、D、E、F、およびGを含む。クロック信号1143aが、立ち上がり端と立ち下がり端で交互に入力信号1112aを各フリップフロップ内にラッチし、波形Q11160aおよびQ21161aをもたらす。典型的には、クロック信号1143aが入力信号VIN1112aと直交する。これは、ウィンドウセンタリングと呼ばれ、入力レジスタでのデータエラーを最小限に抑える。Q11160aは、ラッチ1090aによってクロックサイクルの半分だけ遅延されて、信号1162aを形成する。これらの信号Q21161aおよびQ31162aが記憶され、FIFO1025aおよび1025bによって波形DOUT11126aおよびDOUT21127aとして、より低い周波数で並列に出力される。図11Bは、図10の入力回路の代替動作を例示するタイミング図である。クロック信号1143b、入力信号1112b、フリップフロップ出力Q11160bおよびQ21161b、ラッチ出力Q31162b、ならびにFIFO出力DOUT11126bおよびDOUT21127bが含まれている。この例では、入力信号VIN1112bの一部分が、データビットシーケンスA、B、C、D、E、F、およびGを含む。クロック信号1143bは、立ち上がり端と立ち下がり端で交互に入力信号1112bを各フリップフロップ内にラッチし、波形Q11160bおよびQ21161bをもたらす。Q11160bは、ラッチ1090aによってクロックサイクルの半分だけ遅延される。これらの信号Q21161bおよびQ31162bがバッファされ、FIFO1025aおよび1025bによって波形DOUT11126bおよびDOUT21127bとして、より低い周波数で出力される。ここでも、クロック信号1143bはしばしば、入力信号VIN1112bと直交またはほぼ直交する。別法として、入力フリップフロップのセットアップおよび保持時間に合うように入力信号のタイミングをとることができる。図12は、図6の出力および出力イネーブル回路670および660、または図7の出力レジスタ770、出力イネーブルレジスタ760、ならびに出力バッファ771および782、あるいは本発明の他の実施形態の他の回路として使用することができる出力回路のより詳細なブロック図である。出力レジスタ1270aおよび1270b、マルチプレクサ1260および1290、クロックマルチプレクサ1273、シングルエンド出力バッファ1271、ディファレンシャル出力バッファ1282、出力イネーブルレジスタ1250aおよび1250b、ならびにORゲート1295が含まれている。フリップフロップ1270aおよび1270bと、マルチプレクサ1260とが、ダブルデータレート出力レジスタを形成する。マルチプレクサまたはパスゲートをレジスタデータまたはクロック入力経路内に挿入して、この出力経路を非活動化することができる。さらに、マルチプレクサを使用して、1つのレジスタまたはコア回路から出力バッファの一方または両方に出力経路を直接形成することができる。本発明に適合するこの回路に他の修正を施すことができることを当業者には理解されたい。データ信号は、コア回路またはFIFOからライン1274aおよび1274bで受け取られる。ライン1277でのクロック信号は、パスデバイス1232によってグローバルクロックまたはローカルクロック1230の1つから選択される。クロックマルチプレクサ1273は、このクロック信号の真のバージョンまたは補完バージョンを選択し、フリップフロップ1270aおよび1270bのクロック入力と、データマルチプレクサ1260の選択入力とをドライブする。出力が、フリップフロップ1270aおよび1270bによってマルチプレクサ1260に提供され、これらはインターリーブされて、出力バッファ1271または1282のいずれかをドライブする。出力バッファ1271が選択される場合、パッドP11210にシングルエンド出力をドライブする。ディファレンシャル出力バッファ1282は、活動化されると、パッドP11210およびP21220にディファレンシャル出力をドライブする。出力バッファ1271は、イネーブルレジスタ1250aおよび1250bによってドライブされるORゲート1295によってイネーブルされる。具体的には、ライン1254での出力イネーブル信号が、フリップフロップ1250bをドライブするフリップフロップ1250aによって受け取られる。フリップフロップ1250aおよび1250bの出力は、ORゲート1290によってOR演算され、これが出力バッファ1271のイネーブル入力をドライブする。この構成により、イネーブルレジスタは、連続する立ち上がり端と立ち下がり端または連続する立ち下がり端と立ち上がり端で出力バッファ1271をイネーブルし、ディスエーブルすることができる。このようにすると、出力バッファ1271を動的にトライステートとする、またはイネーブルとすることができる。別法として、マルチプレクサ1290は、論理ハイまたはVCCを選択し、それによりフリップフロップ1250bをクリアすることができる。これにより、フリップフロップ1250aが、ライン1257でのCLK1信号の連続する立ち上がり端で出力バッファ1271をイネーブルし、ディスエーブルすることができる。また、これらの各場合に、イネーブルとディスエーブルまたはディスエーブルとイネーブルの間に1つまたは複数の中間クロックが存在する場合もある。この信号経路は通常、低周波数または中程度の周波数の信号に関して使用することを見込んでいるので、フリップフロップ1270aおよび1270bと、出力バッファ1271とは、より高速の信号経路内で使用されるフリップフロップおよび出力バッファよりも高レベルの機能をサポートすることができる。この例では、各フリップフロップが、それに関連するプリセット、クリア、およびイネーブル信号入力を有し、出力バッファは、高インピーダンス出力を提供することができるようにイネーブル入力を有する。この例では、個別のプリセット、イネーブル、およびクリアラインがデータ出力フリップフロップおよび出力イネーブルフリップフロップに提供される。他の実施形態では、信号ラインをまとめて結合することができ、またはこれらの機能のいくつかを省くことができる。別法として、各フリップフロップが、これらの機能の1つまたは複数のための個別信号ラインを有することができる。また、他の信号をこれらの回路によってサポートすることができる。図13は、図6の入力回路650、図7の入力レジスタ750および入力バッファ751、または本発明の他の実施形態での他の回路として使用することができる入力回路を示すより詳細なブロック図である。シングルエンド入力バッファ1351、ディファレンシャル出力バッファ1391、ラッチ1350a、フリップフロップ1350bおよび1350c、およびクロックマルチプレクサ1353が含まれている。別法として、ラッチ1350aをフリップフロップにすることができる。レジスタデータまたはクロック入力経路内にマルチプレクサを挿入して、このより低速の入力経路を非活動化することができる。本発明に適合するこの回路に他の修正を施すことができることを当業者は理解されよう。シングルエンド信号はパッドP11310で受け取られ、入力バッファ1351を通してフリップフロップ1350bおよび1350cに提供される。ディファレンシャル入力は、パッドP11310およびP21320で受け取られ、ディファレンシャル入力バッファ1391に送られる。フリップフロップ1350bおよび1350cの入力は、クロックの交互端で記憶される。フリップフロップ1350bの出力は、ラッチ1350aによってリタイムされる。クロック信号は、パスデバイス1332によってグローバルクロックまたはローカルクロック1330の1つから選択される。選択されたクロック信号の真のバージョンまたは補完バージョンが、マルチプレクサ1353によってフリップフロップ1350cおよびラッチ1350aに提供される。この信号は、インバータ1360によって反転されて、フリップフロップ1350bをドライブする。ラッチ1350aおよびフリップフロップ1350cの出力、Q31361およびQ21363は、FIFOまたはコア回路に提供される。前述したように、この回路は、低周波数または中程度の周波数の入力信号用として意図されているので、より高レベルの機能を有するフリップフロップおよびラッチを使用することができる。図示した特定の例では、各フリップフロップおよびラッチが、プリセット、クリア、およびイネーブル入力信号ラインを有する。他の実施形態では、他の入力信号ラインを使用することができ、または図示した入力のいくつかを省くことができる。特定の例では、1つのプリセット1365、1つのクリア1366、およびイネーブル1367が、各フリップフロップおよびラッチに接続されて示されている。本発明の他の実施形態では、これらの回路のいくつかまたは全てを個別のラインに接続することができる。図14は、本発明の一実施形態で使用されるグローバル、ローカル、および高速のクロックを発生するために使用される位相ロックループを示すブロック図である。LVDSCLK入力パッド1410、クロック入力パッド1420、マルチプレクサ1450、および位相ロックループ1460が含まれている。これらの回路は、HCLK1440、LCLK1430a、およびHCLK1430bを発生する。この例では、LVDSCLK入力を、クロック入力または入出力パッドとして構成することができる。クロック入力パッド1420は専用クロック入力である。各クロック入力パッド1420は、ディファレンシャル入力を受信するための2つの別々のパッドであっても、シングルエンド入力を受信するための1つのパッドであってもよい。各マルチプレクサ1450は、2つの入力信号の一方を選択し、位相ロックループ1460に基準クロックを提供する。PLLの出力は、ローカル、グローバル、または高速のクロックラインとして選択可能である。本発明の特定の実施形態では、図14で図示される回路は、集積回路の各側で繰り返される。したがって、各HLCK1440が、集積回路の各側の4分の1を介して、すなわち全周縁の16分の1を介して経路付けられる。また、集積回路の4分の1がそれぞれ、利用可能な4つのローカルクロックラインを有し、集積回路全体を介して総計16本のグローバルクロックラインが存在する。図15は、図14の位相ロックループ1460として使用することができる位相ロックループの一例である。入力パッド1505および1510、入力バッファ1515、加算ノード1520、電圧制御発振器1525、周波数分周器1530、マルチプレクサ1540、1550、1560、および1570、ならびに分周器1545、1555、および1565が含まれている。シングルエンドまたはディファレンシャル基準クロック入力信号がパッド1505および1510で受け取られ、入力バッファ1515をドライブする。VCO1525は、クロック信号を発生し、これが分周器1530によって分周され、位相が加算ノード1520でのバッファ基準クロック信号と比較される。信号間の位相差が、エラー信号または制御電圧を生じて、VCO周波数を調節する。VCO1525は、様々な位相を有するクロック信号をマルチプレクサ1540、1550、および1560に提供することができるように、リング発振器または同様の構造にすることができる。特定の実施形態では、VCOが4つのディファレンシャル段階を備える。他の実施形態では、段階の数を変えることができる。この実施形態では、0、45、90、135、180、225、270、および315度だけ移相された位相を有するクロックを利用可能である。本発明の他の実施形態では、ラインの数が異なり、様々な位相を有するラインをVCOが利用できるようになっている。マルチプレクサ1540、1550、および1560は、利用可能な入力の1つを選択し、分周器1545、1555、および1565をドライブする。分周器1545、1555、および1565は、K、V、およびLによって入力周波数を分周する。特定の実施形態では、K、V、およびLが、1~16のプログラム可能な整数値である。他の実施形態では、これらは固定値であってよく、あるいは1つまたは複数の異なる範囲の値に沿って可変にすることができる。マルチプレクサ1570は、分周器1565の出力と入力バッファ1515の出力のどちらかを選択する。様々な実施形態で、分周器1545および1555の出力と、マルチプレクサ1570の出力とを、高速、ローカル、またはグローバルクロック信号として選択可能である。その一例を図14に示す。本発明の特定の実施形態の前述の説明は、例示および説明の目的で提示したものである。説明した正確な形態で本発明を網羅する、またはそれに限定することを意図してはおらず、上述の教示に鑑みて多くの修正および変形が可能である。様々な実施形態で、企図した特定の用途に適するように様々な修正を施して、当業者が本発明を最良に利用することができるように、本発明の原理およびその実際の適用例を最も良く説明するためにいくつかの実施形態を選択して説明した。"