(57)【要約】【課題】高速と低速の両方で柔軟な入出力を実現する方法および装置を提供すること。【解決手段】高速入力、高速出力、中低速の入力、中低速の出力を有する入出力構造が提供される。入力回路と出力回路の一方が選択され、もう一方が選択解除される。高速入出力回路は、例えば制御ライン入力に対してクリア信号のみを有して比較的単純であり、集積回路のコア内部の低速回路構成にインターフェースすることができる。中低速入力および出力回路は、例えば制御ライン入力としてプリセット、イネーブルおよびクリアを有してより柔軟であり、ＪＴＡＧバウンダリ・テストを支援することができる。これらの並列の高速回路および低速回路はユーザによって選択可能であり、したがって、アプリケーションの要件によって、入出力構造は速度と機能の間で最適化される。【選択図】図５
2010141901.tif 000002
【特許請求の範囲】
【請求項１】
本明細書に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、参照により組み込まれた、２００１年８月２９日出願の、仮特許出願第６０／３１５，９０４号の特典を請求する。
【０００２】
本発明は集積回路のための入力および出力インターフェースに関し、より詳細には、高度の柔軟性と構成可能性とを有する高性能インターフェースに関する。
【背景技術】
【０００３】
電子システムは、それらが益々難解なタスクを処理するようになるにつれ、より複雑化してきている。したがって、それらのシステム内の集積回路間で転送されるデータ量は上昇し続けている。同時に、システム設計者は、システムのプリント回路版上でより少ない空間しか消費しない、より小さく、ピン数の少ないパッケージを必要とする。したがって、集積回路の入出力ピンでは非常に高いデータ・レートが望ましい。
【０００４】
しかし、これらのピンでの入出力構造を高度に柔軟に形成する回路も同様に望ましい。例えば、レジスタされた入力および出力でセット、プリセット、イネーブルは、複雑な論理関数の実施を容易にすることができ、ＪＴＡＧバウンダリテスト・アクセスはシステム診断を簡単にすることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
残念ながら、柔軟性が増すと回路は低速化する。機能を追加し、マルチプレクシングを増加させる同じトランジスタは、寄生キャパシタンスおよび寄生レジスタンスを挿入し、デバイスの性能を低速にする。入力および出力インターフェースの構成可能性を向上させることによって、そのインターフェースがデータを処理することができる最高速度が低下する。同様に、省電力のために、集積回路の設計者は、集積回路内でより低速の回路構成を使用することを希望する。
【０００６】
したがって、高速で動作することもできて高度に柔軟な入力および出力インターフェースが求められている。最大効用のためには、インターフェースは、集積回路内のより低速の回路と効率的に通信することもできるべきである。
【課題を解決するための手段】
【０００７】
したがって、本発明の実施態様は、高速または低速の入力および出力を提供する方法および装置を提供する。高速入力、高速出力、中低速入力、中低速出力を有する入出力構造が提供される。入力回路と出力回路の一方が選択され、もう一方が選択解除される。高速入力および高速出力回路は、例えば制御ライン入力に対してクリア信号のみを有して比較的単純であり、集積回路のコア内部の低速回路にインターフェースすることができる。中低速入力および出力回路は、例えば制御ライン入力としてプリセット、イネーブルおよびクリアを有してより柔軟であり、ＪＴＡＧバウンダリ・テストを支援することができる。これらの並列の高速および低速回路はユーザによって選択可能であり、したがって、アプリケーションの要件によって、入出力構造は速度と機能の間で最適化される。
【０００８】
本発明の例示的一実施態様は、パッド、パッドに接続された高速出力バッファ、同様にパッドに接続された低速出力バッファを含む集積回路を提供する。高速出力バッファと低速出力バッファは選択可能に活動化される。高速出力バッファが活動状態の場合は低速出力バッファが非活動状態であり、低速出力バッファが活動状態の場合は高速出力バッファが非活動状態である。
【０００９】
この実施態様は、高速出力バッファに接続された第１のフリップ・フロップと、低速出力バッファに接続された第２のフリップ・フロップとを設けることができる。第１のフリップ・フロップは制御信号の第１の数を受け取るように構成されており、第２のフリップ・フロップは制御信号の第２の数を受け取るように構成されており、第２の数は第１の数よりも大きい。
【００１０】
本発明の別の例示的実施態様は、パッド、パッドに接続された高速入力バッファ、および同様にパッドに接続された低速入力バッファを含む集積回路を提供する。高速入力バッファと低速入力バッファは選択可能に活動化される。高速入力バッファが活動状態の場合は低速入力バッファが非活動状態であり、低速入力バッファが活動状態の場合は高速入力バッファが非活動状態である。
【００１１】
この実施態様は、高速入力バッファに接続された第１のフリップ・フロップと、低速入力バッファに接続された第２のフリップ・フロップとを設けることができる。第１のフリップ・フロップは制御信号の第１の数を受け取るように構成されており、第２のフリップ・フロップは制御信号の第２の数を受け取るように構成されており、第２の数は第１の数よりも大きい。
【００１２】
さらに別の実施態様は、高速出力経路を含む集積回路を提供する。この経路は、第１の出力バッファに接続されている第１のダブル・データ・レート・レジスタを含む。この集積回路は、第２の出力バッファに接続されている第２のダブル・データ・レジスタを有する低速出力経路、第１の入力バッファに接続されている第３のダブル・データ・レート・レジスタを有する高速入力経路、および第２のバッファに接続されている第４のダブル・データ・レジスタを有する低速入力経路も含む。第１の出力バッファ、第２の出力バッファ、第１の入力バッファ、および第２の入力バッファはパッドに接続されている。
【００１３】
本発明の性質および利点のよりよい理解は、以下の詳細な説明と添付の図面を参照して得ることができる。
【図面の簡単な説明】
【００１４】
【図１】プログラム可能論理集積回路を有するデジタル・システムを示す図である。
【図２】組み込みプロセッサを有するプログラム可能論理集積回路の平面図を示す図である。
【図３】論理アレイ・ブロック（ＬＡＢ）の簡略化されたブロック図である。
【図４】プログラム可能論理集積回路のプログラム可能論理部分を示す図である。
【図５】本発明の一実施形態と一致する入出力論理構成を示すブロック図である。
【図６】本発明の一実施形態と一致する入出力論理構成を示す別のブロック図である。
【図７】本発明の一実施形態と一致する入出力インターフェースのより詳細なブロック図である。
【図８】図６のＨＳＯＵＴとして使用されることができる高速ディファレンシャル出力、図７の高速出力レジスタおよびディファレンシャル出力バッファ、または本発明の別の実施形態の別の回路をより詳細に示すブロック図（Ａ）と本発明の実施形態で使用することができる調製可能な遅延ラインを示す図（Ｂ）である。
【図９Ａ】図８Ａの出力回路構成のオペレーションを示すタイミング図である。
【図９Ｂ】図８Ａの出力回路構成の代替オペレーションを示すタイミング図である。
【図１０】図６のＨＳＩＮとして使用されることができる高速ディファレンシャル入力、図７の高速入力レジスタおよびディファレンシャル入力バッファ、または本発明の別の実施形態の別の回路をより詳細に示すブロック図である。
【図１１Ａ】図１０の入力回路構成のオペレーションを示すタイミング図である。
【図１１Ｂ】図１０の入力回路構成の代替オペレーションを示すタイミング図である。
【図１２】図６の出力および出力イネーブル回路として使用されることができる出力回路、図７の出力レジスタ、出力イネーブル・レジスタおよび出力バッファ、または本発明の別の実施形態の別の回路のより詳細なブロック図である。
【図１３】図６の入力回路として使用されることができる入力回路、図７の入力レジスタおよび入力バッファ、または本発明の別の実施形態の別の回路を示すより詳細なブロック図である。
【図１４】本発明の一実施形態で使用されるグローバル、ローカル、かつ高速のクロックを生成するために使用される位相ロック・ループを示すブロック図である。
【図１５】図１４の位相ロック・ループとして使用することができる位相ロック・ループの一例を示す図である。
【発明を実施するための形態】
【００１５】
図１は、本発明の入出力インターフェースを組み込むことができるデジタル・システムのブロック図を示す。このシステムは、単一ボード上、複数のボード上、または複数の筐体内部に実現することができる。一般に本発明の実施形態は電子回路および集積回路内で有用であるが、これらはプログラム可能論理デバイス内で特に有用である。図１は、そのようなプログラム可能論理デバイス１２１を使用することができるシステム１０１を示す。プログラム可能論理デバイすなわちプログラム可能論理集積回路は、ＰＡＬ、ＰＬＡ、ＦＰＬＡ、ＰＬＤ、ＣＰＬＤ、ＥＰＬＤ、ＥＥＰＬＤ、ＬＣＡ、またはＦＰＧＡと称されることがあり、固定集積回路の利点をカスタム集積回路の柔軟性と共に提供する周知の集積回路である。このようなデバイスによって、ユーザは、ユーザの特定のニーズに合うように標準の市販の論理素子を電子的にプログラムすることができる。現行のプログラム可能論理デバイスの例は、Ａｌｔｅｒａ社のＣｌａｓｓｉｃ、ＭＡＸ（登録商標）、ＦＬＥＸ（登録商標）、ＰＬＤのＡＰＥＸ（商標）シリーズによって代表される。これらは、例えば米国特許第４，６１７，４７９号、４，８７１，９３０号、５，２４１，２２４号、５，２５８，６６８号、５，２６０，６１０号、５，２６０，６１１号、５，４３６，５７５号、および「Ａｌｔｅｒａ  Ｄａｔａ  Ｂｏｏｋ（１９９９）」に記載されている。プログラム可能論理回路およびそのオペレーションは、当業者には周知である。
【００１６】
図１の特定の実施形態では、処理ユニット１０１はメモリ１０５およびＩ／Ｏ  １１１に結合されており、プログラム可能論理デバイス１２１を組み込んでいる。ＰＬＤ１２１は、特別に、接続１３１を介してメモリ１０５に、また、接続１３５を介してＩ／Ｏ  １１１に結合することができる。システムは、プログラム可能デジタル・コンピュータ・システムであっても、デジタル信号処理システムであっても、専用デジタル交換ネットワークであっても、その他の処理システムであってもよい。さらに、このようなシステムは、単なる一例ではあるが、遠隔通信システム、自動車システム、制御システム、家庭電化製品、パーソナル・コンピュータ、インターネット通信およびネットワーキング、その他などの幅広いアプリケーション用に設計することができる。
【００１７】
処理ユニット１０１は、処理または記憶するための適切なシステム構成要素にデータを導き、メモリ１０５または入力に記憶されているプログラムをＩ／Ｏ  １１１または他の機能を使用して実行することができる。処理ユニット１０１は、中央演算処理ユニット（ＣＰＵ）、マイクロプロセッサ、浮動小数点コプロセッサ、グラフィックス・コプロセッサ、ハードウェア・コントローラ、マイクロコントローラ、コントローラとして使用するためにプログラムされたプログラム可能論理デバイス、ネットワーク・コントローラ、または他の処理ユニットであってよい。さらに、多くの実施形態では、ＣＰＵを必要としない場合もある。例えば、ＣＰＵの代わりに１つまたは複数のＰＬＤ１２１がシステムの論理演算を制御することができる。一実施形態では、ＰＬＤ１２１は、特定の計算タスクを処理するために必要に応じて再プログラミングすることができる再構成可能プロセッサとして動作する。別法として、プログラム可能論理デバイス１２１はプロセッサを含んでもよい。いくつかの実施形態では、処理ユニット１０１はコンピュータ・システムでもよい。メモリ１０５は、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、固定またはフレキシブル・ディスク媒体、ＰＣカード・フラッシュ・ディスク・メモリ、テープまたはその他のどのような記憶取り出し手段でも、またはこれら記憶取り出し手段のいかなる組み合わせであってもよい。ＰＬＤ１２１は、図１のシステム内で多くの様々な目的に応じることができる。ＰＬＤ１２１は、処理ユニット１０１の論理構築ブロックでよく、その内部および外部での演算をサポートする。ＰＬＤ１２１は、システム・オペレーションで特定の役割を達成するために必須の論理関数を実施するようにプログラミングされている。
【００１８】
図２は、ＰＬＤの全体的な内部アーキテクチャと構成の簡約化されたブロック図である。プログラム可能論理アーキテクチャ、構成および回路設計の多くの詳細は本発明の理解には必須ではなく、そのような詳細は図示しない。
【００１９】
図２は、３６の論理アレイ・ブロック（ＬＡＢ）２００の６×６の２次元アレイである。ＬＡＢ２００は、論理関数を実行するように構成され、またはプログラミングされた一組の論理的にグループ化された論理資源である。ＬＡＢの内部アーキテクチャを以下でより詳細に説明する。プログラム可能論理部分は、任意の数のＬＡＢを含むことができる。一般に、将来、技術が進み改善されると、より多くの論理アレイ・ブロックを有するプログラム可能論理デバイスが間違いなく作成されるだろう。さらに、ＬＡＢ２００は正方行列またはアレイで構成される必要はない。例えば、アレイは、５×７または２０×７０行列のＬＡＢであってよい。
【００２０】
ＬＡＢ２００は入力と出力（図示せず）を有し、そのいくつかは本発明と一致することができるが、それらはグローバル相互接続構造にプログラム可能に接続されてもされなくてもよく、グローバル水平相互接続（ＧＨ）２１０およびグローバル縦相互接続（ＧＶ）２２０のアレイを含む。図２には単一ラインとして示したが、各ＧＨ２１０ラインとＧＶ２２０ラインは複数の信号コンダクタを表すこともできる。ＬＡＢ２００の入力と出力は隣接するＧＨ２１０および隣接するＧＶ２２０にプログラム可能に接続することができる。ＧＨ２１０とＧＶ２２０の相互接続を利用して、複数のＬＡＢ２００は、単一ＬＡＢ２００を使用して実現することができるよりも、さらに大きく、さらに複雑な論理関数を実施するように接続し、結合することができる。
【００２１】
一実施形態では、ＧＨ２１０コンダクタとＧＶコンダクタは、それらのコンダクタの相互接続２２５でプログラム可能に接続してもしなくてもよい。さらに、ＧＨ２１０コンダクタとＧＶコンダクタは、別のＧＨ２１０コンダクタとＧＶコンダクタへの複数の接続を行うことができる。様々なＧＨ２１０コンダクタとＧＶコンダクタは、ＰＬＤ部分１５４の１つの位置のＬＡＢ２００からＰＬＤ部分１５４の別の位置のＬＡＢ２００への信号経路を作成するためにプログラム可能に共に接続されることができる。信号は複数の相互接続２２５を通過することができる。さらに、ＬＡＢ２００からの出力信号は１つまたは複数のＬＡＢ２００の入力に導かれることができる。また、グローバル相互接続を使用し、ＬＡＢ２００からの信号を同じＬＡＢ２００にフィードバックすることができる。本発明の特定の実施形態では、選択されたＧＨ２１０コンダクタだけが、ＧＶ２２０コンダクタにプログラム可能に接続することができる。さらに、さらに別の実施形態では、ＧＨ２１０コンダクタとＧＶコンダクタは、入力または出力などの、しかしその両方ではない、信号を特定方向に渡すために特別に使用することができる。
【００２２】
別の実施形態では、プログラム可能論理集積回路は、必ずしもＬＡＢの全体の行または列ではなく、特定の数のＬＡＢに接続される特別のまたはセグメント化された相互接続を含むことができる。例えば、セグメント化された相互接続は２つ、３つ、４つ、５つ、またはそれ以上のＬＡＢにプログラム可能に接続することができる。
【００２３】
プログラム可能論理アーキテクチャは、チップの周辺で、入力および出力回路２３０が図２で示されている。入力および出力回路２３０は、外部のオフチップ回路構成にＰＬＤをインターフェースするためのものである。これらの入力および出力回路２３０の一部または全ては、本発明の実施形態と一致することができる。図２では、３２の入力および出力回路２３０が示されているが、プログラム可能集積回路は、図示したよりも多くても少なくてもよい、任意の数の入力および出力回路を含むことができる。上記のように、それらの入出力ドライバの一部は、組み込まれたプロセッサとプログラム可能論理部分の間で共用することができる。各入力および出力回路２３０は、入力ドライバ、出力ドライバ、または双方向ドライバとして使用するように構成可能である。プログラム可能論理集積回路の別の実施形態では、入力および出力回路は集積回路のコア自体と共に組み込むことができる。入力および出力回路の組み込まれた配置は、フリップ・チップ・パッケージングによって使用することができ、信号の入力および出力回路へのルーティングの寄生を最小限に抑える。
【００２４】
図３は、図２のＬＡＢ２００の簡約化されたブロック図を示す。ＬＡＢ２００は、「論理セル」と称されることのある様々な数の論理素子（ＬＥ）３００、およびローカル（または内部）相互接続構造３１０から構成されている。ＬＡＢ２００は８つのＬＥ３００を有するが、ＬＡＢ２００は８つより多くても少なくてもよい任意の数のＬＥを有することができる。
【００２５】
ＬＥ３００の全般的な概要を本明細書で示すが、これは本発明の基礎的な理解を提供するには十分である。ＬＥ３００はＰＬＤの最小の論理構築ブロックである。ＧＨ２１０およびＧＶ２２０などの、ＬＡＢの外部の信号は、ローカル相互接続構造３１０を介してＬＥ３００に接続されている。一実施形態では、本発明のＬＥ３００は、４変数ブーリアン演算などの複数の変数の論理関数を提供するように構成可能な関数ジェネレータを組み込む。結合関数と同様に、ＬＥ３００も、例えばＤフリップ・フロップを使用して連続した記録された関数をサポートする。
【００２６】
ＬＥ３００は、ＬＡＢ３００の外部のＧＨ２１０とＧＶ２２０とに接続可能な結合の登録された出力を提供する。さらに、ＬＥ３００の出力は、ローカルな相互接続構造３１０に内部的にフィードバックすることができる。すなわち、ローカルな相互接続構造３１０を介して１つのＬＥ３００からの出力は、グローバル相互接続構造のＧＨ２１０とＧＶ２２０を使用せずに別のＬＥ３００の入力にプログラム可能に接続することができる。ローカルな相互接続構造３１０によって、限定されたグローバル資源であるＧＨ２１０とＧＶ２２０とを使用せずにＬＥの短距離相互接続が可能になる。
【００２７】
図４は、プログラム可能な論理アーキテクチャを示す。図４のアーキテクチャはさらに、（スモール）組込アレイ・ブロック（embedded  arey  block:ＥＡＢ）を含む。ＥＡＢは、ユーザ・メモリ、すなわちフレキシブルなＲＡＭブロックを含む。このアーキテクチャについてのさらに詳細な説明は、Ａｌｔｅｒａ  Ｄａｔａ  Ｂｏｏｋ（１９９９年）のＦＬＥＸ  １０Ｋ製品ファミリーの説明から、また米国特許番号５，５５０，７８２号から得ることができる。入出力要素の一部またはすべては本発明の実施形態に従うことができる。組込アレイ・ブロックは、周波数変換器として、また高速の入出力と論理アレイ・ブロックを含むコア回路間のインターフェースをとるシリアル／パラレル変換器として機能するＦＩＦＯとして構成することができる。ＡｌｔｅｒａのＡＰＥＸ（登録商標）およびＳｔｒａｔｉｘ（登録商標）製品ファミリーなど他のアーキテクチャについては、９５１３４カリフォルニア州、サンホセ、イノベーション・ドライブ１０１番地のＡｌｔｅｒａ社から入手可能な個々のデータ・シートに詳細に記載される。
【００２８】
図５は、本発明の一実施形態による入出力回路を示すブロック図である。これには、低速出力回路５３０、低速出力バッファ５５０、高速出力回路５３５、高速出力バッファ５５０、低速入力バッファ５６０、低速入力回路５４０、高速入力バッファ５６５、高速入力回路５４５、マルチプレクサ５７０および５７５、パッドＰ１  ５１０およびＰ２  ５２０が含まれる。低速出力回路５３０と低速出力バッファ５５０は、コア回路からパッドＰ１  ５１０に信号を提供する低速の出力経路を形成する。高速出力回路５３５と高速出力バッファ５５５によって高速の出力経路が提供される。この経路は、ＦＩＦＯまたは他のコア回路から信号を受け取り、パッドＰ１  ５１０およびＰ２  ５２０にディファレンシャル出
力を提供する。
【００２９】
低速入力バッファ５６０と低速入力回路５４０は、パッドＰ１  ５１０で信号を受け取って出力をコア回路に提供する低速入力経路を形成する。高速入力バッファ５６５と高速入力回路５４５によって高速の入力経路が提供される。この経路は、パッドＰ１  ５１０およびＰ２  ５２０でディファレンシャル入力を受け取り、ＦＩＦＯまたはコア内の他の回路に信号を提供する。
【００３０】
さらに、マルチプレクサ５７０は、低速出力回路５３０と高速ディファレンシャル出力バッファ５５５を含む低速経路を提供する。このような方式で、コア回路からの低速信号をディファレンシャル出力信号として提供することができる。同様に、ディファレンシャル入力信号を高速入力バッファ５６５で受取り、マルチプレクサ５７５を通じて低速入力回路５４０に提供することができる。この方式により、低速のディファレンシャル入力信号を受け取り、コア回路に出力することができる。
【００３１】
本発明の特定の実施形態では、低速出力回路５３０、高速出力回路５３５、低速入力回路５４０、および高速入力回路５４５はダブル・データ・レート・レジスタである。ラベル「高速」と「低速」は相対的な用語であり、いずれかの特定のデータ・レートを表すものではない。
【００３２】
図６は、本発明の一実施形態による入出力回路を表す別のブロック図である。この図は、含まれるすべての図と同様に例示の目的のみで示すものであり、可能な本発明の実施形態または特許請求の範囲を制限するものではない。
【００３３】
これには、パッドＰ１  ６１０およびＰ２  ６２０、入力ブロックＩＮ１  ６５０、出力ブロックＯＵＴ１  ６７０、高速出力ブロックＨＳＯＵＴ６８０、高速入力ブロックＨＳＩＮ６９０、出力ブロックＯＵＴ２  ６７５、および入力ブロックＩＮ２  ６５５が含まれる。また、出力イネーブル・ブロックＯＥ１  ６６０、およびＯＥ２  ６６５も含まれる。
【００３４】
各入力、出力、および出力イネーブルのブロックは同期させても非同期であってもよい。一実施形態では、グローバル（ＧＣＬＫ）およびローカル（ＬＣＬＫ）のクロック・ライン６３０と、高速のクロック・ライン（ＨＣＬＫ）６４０が設けられている。本発明の特定の実施形態では、数本の低速または中速のグローバル・クロック・ラインを集積回路全体の回路が利用することができる。さらに、数個の低速または中速のローカル・クロックも利用することができる。これらのローカル・クロックは、例えば集積回路の４分の１など集積回路の一部のみが使用することができ、その部分のみに配線される。
【００３５】
これらの低速および中速のクロックに加えて、数個の高速クロックＨＣＬＫ６４０も利用することができる。このクロックは、ローカルおよびグローバルなクロック・ラインと同様にシングルエンド方式でもディファレンシャル方式でもよい。用語「低速」、「中速」、および「高速」の使用は相対的なものである。当業者には、現在高速であるものがほどなく中速になることが理解されよう。
【００３６】
入力ブロックおよび出力ブロックとの入力ラインおよび出力ラインは、集積回路のコア内の論理ゲートまたは論理アレイ・ブロックとの間に直接設けることができる。あるいは、これらの入出力信号は、データ・バッファまたは周波数変換器として機能することができる先入れ先出し（ＦＩＦＯ）メモリに、またはメモリから提供してもよい。
【００３７】
これらの入出力回路は、パッドＰ１  ６１０およびＰ２  ６２０が以下を提供できるように選択することができる。
【００３８】
１つの高速ディファレンシャル出力、
１つの高速ディファレンシャル入力、
１つの中速または低速のディファレンシャル出力、
１つの中速または低速のディファレンシャル入力、
２つのシングルエンド入力、
２つのシングルエンド出力、または
１つのシングルエンド入力および１つのシングルエンド出力。
【００３９】
信号経路は、信号を多重化し、パス・デバイスを開き、ショートさせることによって、または他の選択構造を使用することによって選択することができる。特定の実施形態では、マルチプレクサを使用して入力パッドおよび出力パッドからの回路を結合または切断する。他の実施形態の入出力回路は、それらが上記のリストよりも多い、異なる、または少ない入力および出力のタイプを提供するように選択することができる。
【００４０】
図６の回路を高速出力として構成した場合は、高速出力ブロックＨＳＯＵＴ６８０が選択され、他のブロックは選択されない。出力信号ＤＯＨをライン６８４で受け取る。信号ＤＯＨは、集積回路のコア内の論理ゲート、またはＦＩＦＯから受け取ることができる。例えば、ＤＯＨは、集積回路内部の回路から低周波数または中程度の周波数でデータを受け取り、より高い周波数でデータを出力するＦＩＦＯによって提供することができる。クロック信号は、パス・ゲート６４２により高速クロック６４０の１つに選択的に結合されるライン６８２で受け取られる。出力イネーブル信号ＯＥＨがライン６８３で受け取られ、これにより高速出力回路を使用可能または使用不可にする。ディファレンシャル高速出力がパッドＰ１  ６１０およびＰ２  ６２０に提供される。
【００４１】
ディファレンシャル高速入力を提供するように図６の回路を構成した場合は、高速入力ブロック６９０が選択され、他の入出力回路は選択されない。このディファレンシャル高速入力はパッドＰ１  ６１０およびＰ２  ６２０で受け取られる。高速の信号ＤＩＨが、ライン６９４を通じて集積回路のコアに提供される。信号ＤＩＨは、集積回路内部の高速回路が受け取ってもＦＩＦＯが受け取ってもよく、その出力はより低い速度でクロックされる。高速のクロック信号がライン６９２で高速入力ブロックに提供される。このラインはパス・デバイス６４４により高速クロック６４０の１つに選択的に結合される。
【００４２】
この回路は、各パッドが中速または低速のシングルエンド出力を提供するように構成してもよい。例えば、出力ブロックＯＵＴ１  ６７０を選択することができ、高速出力ブロックＨＳＯＵＴ６８０および入力ブロックＩＮ１  ６５０は選択されない。出力ブロックＯＵＴ１  ６７０は、ライン６１２で出力パッドＰ１  ６１０に出力信号を提供する。入力信号ＤＯ１は、この場合もコア回路または変換ＦＩＦＯからライン６７４で受け取られる。グローバルまたはローカル・クロック６３０の１つから、低速または中速のクロック信号がライン６７２でパス・デバイス６３４によって受け取られる。出力ブロックＯＵＴ１は、出力イネーブル回路ＯＥ１  ６６０によって使用可能または使用不可にすることができる。この特定の例では、出力イネーブル回路６６０と出力回路６７０は、同じクロック信号をライン６７２で受け取る。他の実施形態では、これらのブロックは別個のクロック信号を受け取ることができる。出力イネーブル・ブロックＯＥ１  ６６０は、集積回路のコアから出力イネーブル信号６６４を受け取り、ライン６６１でイネーブル信号を出力ブロックＯＵＴ１  ６７０に提供する。同様の回路が出力ブロックＯＵＴ２  ６７５と出力イネーブル・ブロックＯＥ  ６６５によって提供され、これらのブロックはパッドＰ２  ６２０に結合される。
【００４３】
図６の回路は、パッドＰ１  ６１０およびＰ２  ６２０の１つまたは両方がシングルエンドの入力信号も受け取ることができるように構成することもできる。例えば、パッドＰ１  ６１０でシングルエンドの入力信号を受け取り、ライン６１２で入力回路ＩＮ１  ６５０に提供することができる。入力回路ＩＮ１  ６５０は、ラインＤＩ１  ６５４を通じてチップの残りの部分に入力信号を提供する。ＤＩ１は、先のように、集積回路中のコア回路に提供してもＦＩＦＯに提供してもよい。ライン６５２で、パス・デバイス６３２を通じてグローバル・クロックまたはローカル・クロック６３０の１つからクロック信号が受け取られる。同様の回路が入力ブロックＩＮ２  ６５５によって提供され、これはパッドＰ２  ６２０に結合される。
【００４４】
さらに、信号ライン６９３など他の信号ラインが設けられている。これはこの回路を中速または低速のディファレンシャル入力として構成することを可能にする経路を提供し、この場合はパッドＰ１  ６１０およびＰ２  ６２０で受け取ったディファレンシャル入力が出力ＤＩ１としてライン６５４で提供される。さらに信号経路６７３が設けられており、出力ブロックＯＵＴ１  ６７０によって受け取った中速または低速の出力信号ＤＯ１  ６７４が、ディファレンシャル出力としてパッドＰ１  ６１０およびＰ２  ６２０に提供される。
【００４５】
より柔軟で、低速の入出力回路がさらに高い構成可能性を提供する。例えば、低速の回路は、異なる周波数と異なる位相で動作するより多くのクロック・ラインの選択に選択的に結合することができる。また、ＪＴＡＧのバウンダリ・テストもサポートすることができる。特定の実施形態では、より正確にタイミングを合わせた出力イネーブル信号を低速出力バッファまたはドライバで利用することができ、ＦＩＦＯ、または直接コア論理アレイ・ブロックに低速回路を結合することができるのに対し、高速の入出力回路は一般にＦＩＦＯの周波数変換能力を必要とする。また、高速回路にはクリア機能しかないのに対して、低速回路はプリセット、クリア、およびイネーブルの機能を含む。さらに、低速回路はシングルエンド方式なので、２つのパッドを低速回路用の２つの出力パッド、２つの入力パッド、あるいは１つの入力パッドと１つの出力パッドとして使用することができるが、ディファレンシャルに基づく性質のために高速の入力または出力１つには２つのパッドが必要とされる。
【００４６】
図７は、本発明の一実施形態による入出力インターフェースのブロック図である。これには、入出力回路７０１に接続されたパッドＰ１  ７１０およびＰ２  ７２０が含まれ、回路７０１は、コア回路７０２とＦＩＦＯ７１５および７２５とのインターフェースをとる。多くの場合、コア回路７０２とＦＩＦＯ７１５および７２５は集積回路の中心に配置され、一方、入出力回路７０１は集積回路の周辺部に配置され、パッドはその端部に配置される。
【００４７】
入出力レジスタはそれぞれダブルデータ・レート・レジスタでよい。あるいは、各レジスタは単一のフリップフロップでもよい。したがって、レジスタからＦＩＦＯ７１５および７２５への各入出力ラインは、１本または複数のデータ・ラインにすることができる。例えば、出力レジスタがダブルデータ・レート・レジスタである場合、図の入力ラインは２本のデータ・ラインからなる。各データ・ラインは、シングルエンド方式のシグナリングの場合は１本のライン、またはディファレンシャル方式のシグナリングの場合は２本のラインになる。ダブルデータ・レート・レジスタをＦＩＦＯに結合する場合、図の各ＦＩＦＯは２つの出力を有する単一のＦＩＦＯ、または２つの個別のＦＩＦＯにすることができる。
【００４８】
ＦＩＦＯ７１５、出力レジスタ７８０、マルチプレクサ７８１、およびディファレンシャル出力バッファまたはドライバ７８２によって高速のディファレンシャル出力経路が形成される。高速のディファレンシャル出力となるように図７の回路を選択的に構成する場合、通例これらの回路が選択的に活動化され、他の回路は非活動化される。例えば、活動化された回路はマルチプレクサを通じて出力パッドに結合することができ、一方非活動化した回路は他のマルチプレクサによって切断される。また、電力を節減するために非活動化回路へのクロック入力は切断することができ、すなわちパス・デバイスまたは他の接続を通じて活動化されたクロック・ラインに接続されない。これらのマルチプレクサ、パス・デバイス、および他の接続は、プログラム可能ビット、動的な信号、あるいは他の手段によって制御することができる。プログラム可能ビットは、ＥＥＰＲＯＭ、フラッシュ、ＳＲＡＭ、ＤＲＡＭ、ＭＲＡＭ、ヒューズ、アンチヒューズ、あるいは他の回路に記憶することができる。動的信号は、コア論理ブロック、外部回路、あるいはその他のソースによって生成することができる。
【００４９】
ＦＩＦＯ７１５は入力信号（図示せず）をコア回路から受け取り、高速出力レジスタ７８０の入力に結合された出力を提供する。しばしば、ＦＩＦＯ７１５は、低周波数のコア回路と高周波数のディファレンシャル出力間のバッファおよび周波数変換器として機能する。高速出力レジスタ７８０は、高速クロック・ライン７４０の１つによってクロックされる。高速レジスタの出力はマルチプレクサ７８１に提供され、マルチプレクサは出力バッファ７８２を駆動する。出力バッファ７８２は、パッドＰ２  ７２０およびＰ１  ７１０に、反転させる出力信号および反転させない出力信号を提供する。ディファレンシャル出力バッファ７８２は、１つまたは複数の規格または規約と選択的に互換性のある出力信号を提供することができる。例えば、出力バッファ７８２は、ＬＶＤＳ、ＬＶＰＥＣＬ、ハイパートランスポート、およびＰＣＭＬの１つまたは複数と互換性のある出力信号を提供することができる。これらの高周波入出力の規格および規約は、通例、ディファレンシャル方式のシグナリングを規定する。したがって、高速の入出力回路はしばしば２つのパッドの使用を必要とする。
【００５０】
ディファレンシャル入力バッファすなわちドライバ７９１、高速入力レジスタ７９０、マルチプレクサ７９３、およびＦＩＦＯ７２５によって高速のディファレンシャル入力経路が形成される。高速のディファレンシャル入力を提供するように図７の出力回路を選択的に構成した場合、通例はこれらの回路は選択的に活動化され、残りの回路は非活動化される。パッドＰ１  ７１０およびＰ２  ７２０で高速ディファレンシャル入力信号を受け取ってディファレンシャル入力バッファ７９１に与え、バッファは高速入力レジスタ７９０に入力信号を提供する。高速入力レジスタ７９０は、マルチプレクサ７９３を通じてＦＩＦＯ７２５に出力を送る。高速入力レジスタ７９０は、高速クロックＨＣＬＫ７４０の１つによってクロックされる。通常、ＦＩＦＯ７２５は、高速入力レジスタからコア７０２内の低速コア回路への周波数変換を行う。ディファレンシャル入力バッファ７９１は、１つまたは複数の規格または規約と互換性のある入力信号を受け取ることができる。入力バッファ７９１は、例えばＬＶＤＳ、ＬＶＰＥＣＬ、ハイパーロランスポート、およびＰＣＭＬの１つまたは複数と互換性のある入力信号を受け取ることができる。
【００５１】
出力レジスタ７７０と、出力バッファまたはドライバ７７１により、パッドＰ１  ７１０にシングルエンドの出力信号を提供することができる。パッドＰ１  ７１０にシングルエンドの出力信号が提供される際、通例これらの回路は活動化され、一方、入力レジスタ７５０、入力バッファ７５１、高速出力レジスタ７８０、および高速入力レジスタ７９０など入出力回路７０１中の他の関連する回路は非活動化される。出力レジスタ７７０でコア回路７０２またはＦＩＦＯ７１５から信号が受け取られる。出力レジスタ７７０は出力信号をシングルエンドの出力バッファ７７１に提供し、バッファ７７１はパッドＰ１  ７１０を駆動する。出力バッファ７７１は、出力イネーブル・レジスタ７６０によって使用可能または使用不可にすることができる。出力レジスタ７７０および出力イネーブル・レジスタ７６０は、グローバル・クロックまたはローカル・クロック７３０の１つの真のバージョンまたは  補完的なバージョンによってクロックされる。この特定の実施形態では、それぞれクロック出力イネーブル・レジスタ７６０と出力レジスタ７７０をクロック制御するクロック・マルチプレクサ７６３および７７３は同じクロック・ラインに結合される。他の実施形態では、これらのマルチプレクサを個別のクロック・ラインに結合してもよい。出力バッファ７７１は、１つまたは複数の規格または規約に従った出力を提供することができる。出力バッファ７７１は、例えばＬＶＴＴＬ、ＬＶＣＭＯＳ、ＳＳＴＬ、およびＴＴＬの１つまたは複数に従った信号を提供することができる。同様に、出力レジスタ７７５および出力バッファ７７６によりシングルエンドの出力信号をパッドＰ２  ７２０に提供することができ、これは出力イネーブル・レジスタ７６５によって可能になる。
【００５２】
入力バッファ７５１および入力レジスタ７５０を使用して、パッドＰ１  ７１０からシングルエンドの入力信号を受け取ることができる。シングルエンドの入力信号をパッドＰ１で受け取る際、通例これらの回路は活動化され、一方出力レジスタ７７０、出力バッファ７７１、出力イネーブル・レジスタ７６０、高速出力レジスタ７８０、および高速入力レジスタ７９０など他の関連する回路は非活動化される。パッドＰ１  ７１０で受け取られる信号は、ライン７１２を通じて入力バッファ７５１に送られる。入力バッファ７５１は、１つまたは複数の仕様または規約に従ったことができる。入力バッファ７５１は、例えばＬＶＴＴＬ、ＬＶＣＭＯＳ、ＳＳＴＬ、およびＴＴＬの１つまたは複数によることが可能である。入力バッファ７５１は入力レジスタ７５０に入力信号を提供し、入力レジスタはＦＩＦＯ７２５、またはコア７０２中の他の回路を駆動する。入力レジスタ７５０は、マルチプレクサ７５３を通じてグローバルまたはローカルのクロック・ライン７３０の１つからのクロック信号の真のバージョンまたは補完的なバージョンによってクロックされる。同様に、パッドＰ２  ７２０からバッファ７５６でシングルエンドの入力信号を受け取ることができ、これにより入力レジスタ７５５が駆動される。
【００５３】
他の構成ではこれらの入出力回路７０１を選択的に使用可能にすることができる。例えば、ディファレンシャル入力バッファ７９１は、その出力をマルチプレクサ７５２を通じて入力レジスタ７５０に送ることができる。また、出力レジスタ７７０は、その出力をマルチプレクサ７８１を通じてディファレンシャル出力バッファ７８２に送ることができる。本発明の他の実施形態では、入出力回路７０１の他の組み合わせを選択的に可能にし、選択的にＦＩＦＯ７１５および７２５とコア回路７０２に結合することができる。
【００５４】
ＦＩＦＯ７１５および７２５は、高速の入出力回路と低速のコア論理アレイ・ブロックとの間の周波数変換を行う。具体的には、各ＦＩＦＯは、小さな組込アレイ・ブロック（ＳＥＡＢ）、または他の組込メモリ・ブロックから形成することができる。ＳＥＡＢは、Ａｌｔｅｒａ  Ｓｔｒａｔｉｘデバイスに用いられる組込メモリ・ブロックの１タイプである。図７の回路を高速入力として構成する場合、高速入力レジスタ７９０からのデータ信号はＦＩＦＯ７２５でシリアルに受け取られ記憶される。このデータは、２つの方式の１つにより、より低い周波数でＦＩＦＯ７２５から出力することができる。第１に、ＦＩＦＯ７２５の読み出しポートはその書き込みポートよりも広くすることができる。この方式で、ＦＩＦＯ７２５は、高速の入力データをより低い周波数に変換するシリアルからパラレルへのデータ変換を行う。第２に、ＦＩＦＯ７２５の読み出しポートは、その書き込みポートよりも低い周波数でクロックされる。この方式により、高周波数でシリアルに書き込まれた高速データが、より低い周波数でシリアルに読み出される。この場合にはバッファのオーバーランを回避するように注意しなくてはならない。図７の回路を高速出力として構成する場合、コア論理アレイ・ブロックからのデータ信号はＦＩＦＯ７１５でシリアルまたはパラレルに受け取ることができる。ＦＩＦＯ７１５でデータがパラレルに受け取られる場合は、それをシリアルに高速出力レジスタ７７０に読み出すことができる。この場合も、この結果、低速のコア論理アレイ・ブロックから高速の出力レジスタ７７０への周波数変換が行われる。あるいは、ＦＩＦＯ７１５でデータがシリアルに受け取られる場合は、より高い周波数でシリアルにクロックされ、出力レジスタ７７０にセットされることができる。この場合にはバッファのアンダーランを回避するように注意しなくてはならない。
【００５５】
図８Ａは、高速のディファレンシャル出力をより詳細に示すブロック図であり、この出力は、図６のＨＳＯＵＴ６８０として、図７の高速出力レジスタ７８０およびディファレンシャル出力バッファ７８２として、あるいは本発明の他の実施形態における回路として使用することができる。これには、ＦＩＦＯ８２５ａおよび８２５ｂ、フリップフロップ８８０ａおよび８８０ｂ、マルチプレクサ８５０、および出力バッファ８８２が含まれる。ＦＩＦＯ８２５ａおよび８２５ｂは、交互に、２つの出力を有する１つのＦＩＦＯであってもよい。フリップフロップ８８０ａおよび８８０ｂとマルチプレクサ８５０は、ダブルデータ・レートの出力レジスタを形成する。マルチプレクサ８５０の出力に接続された第２のマルチプレクサは、ディファレンシャル出力バッファ８８２にアクセスするための別の信号経路を提供するのに使用することができる。この第２のマルチプレクサは、高速出力が非活動化され選択されない際に、出力バッファから高速レジスタを切断するためにも使用することができる。さらに別のマルチプレクサまたはパス・デバイスをレジスタ・データとクロック入力の経路に挿入して、この経路を非活動化し、電力を節減することができる。当業者には、本発明に従ったこの回路にはこの他の修正を加えられることが認識されよう。
【００５６】
入力信号が、ＦＩＦＯ８２５ａおよび８２５ｂによってラインＤＩＮ１  ８２１およびＤＩＮ２  ８２２で受け取られる。この例では、入力信号は、パス・デバイス８３４および８３２によって選択されるグローバル・クロックまたはローカル・クロック８３０によってＦＩＦＯにクロックされる。ＦＩＦＯ８２５ａは、フリップフロップ８８０ａによって受け取られる出力を提供する。ＦＩＦＯ８２５ｂは、フリップフロップ８８０ｂによって受け取られる出力を提供する。ＦＩＦＯ８２５ａおよび８２５ｂの出力信号は、パス・デバイス８４６および８４４によって選択される高速クロック・ライン８４０によってクロックされる。フリップフロップ８８０ａおよび８８０ｂも、パス・デバイス８４２によって選択される高速クロック・ライン８４０の１つによってクロックされる。フリップフロップ８８０ａおよび８８０ｂの出力は、マルチプレクサ８５０への入力として提供され、マルチプレクサの出力は、フリップフロップによって受け取られたのと同じクロック信号によって選択される。マルチプレクサ８５０の出力は、ディファレンシャル高速出力バッファ８８２に提供され、これがパッドＰ１  ８１０およびＰ２  ８２０を駆動する。
【００５７】
各クロック・サイクル中にフリップフロップ８８０ａと８８０ｂの間で多重化することによって、出力信号のデータ・レートがフリップフロップ出力Ｑ１  ８１１およびＱ２  ８１２の２倍になる。さらに、データをＦＩＦＯ入力ＤＩＮ１  ８２１およびＤＩＮ２  ８２２で並列に受け取ることができる。例えば、入力ＤＩＮ１  ８２１でＦＩＦＯ８２５ａによってデータの４ビットを受け取ることができ、入力ＤＩＮ２  ８２２でＦＩＦＯ８２５ｂによって４ビットを受け取ることができる。各ＦＩＦＯからの４ビットを、ＤＩＮ１  ８２１およびＤＩＮ２  ８２２でのデータ転送のデータ・レートの４倍でフリップフロップ８８０ａおよび８８０ｂにクロックされることができる。マルチプレクサ８５０を用いてフリップフロップ８８０ａと８８０ｂの出力を多重化することによって、データ・レートが再び効果的に倍増され、ＤＩＮ１  ８２１およびＤＩＮ２  ８２２に比べて、ＶＯＵＴではデータ・レートが８倍に増大する。他の実施形態では、ＦＩＦＯによって４ビットよりも多い、または少ないビットを並列に受け取ることができ、より高い、またはより低いデータ変換率をもたらす。
【００５８】
ＦＩＦＯ８２５の出力がハイに保たれ、ＦＩＦＯ８２５ｂの出力がローに保たれる場合、結果として得られる出力信号は、交互に０と１をもつ高速クロックになる。具体的には、ライン８２１でＤＩＮ１がハイに保たれ、ライン８２２でＤＩＮ２がローに保たれる場合、ＦＩＦＯ８２５ａの出力、すなわちライン８１１でのＱ１がハイであり、ＦＩＦＯ８２５ｂの出力、すなわちライン８１２でのＱ２がローである。マルチプレクサ８５０は、ライン８１１でのハイ信号Ｑ１とライン８１２でのロー信号Ｑ２とを交互に選択し、それによりクロック信号を発生する。あるいは、フリップフロップ８８０ａおよび８８０ｂへの入力を、選択可能な入力として論理ハイまたは論理ロー・レベルを有するマルチプレクサに結合することができる。
【００５９】
クリア・ラインが、ライン８８５でフリップフロップ８８０ａおよび８８０ｂに提供される。最高速度を達成できるように、フリップフロップ８８０ａおよび８８０ｂの機能を制限することが望ましい。したがって、これらのフリップフロップは、プリセット・ラインまたはイネーブル・ラインを含まない。他の実施形態では、これらのラインを含むことができる。他の実施形態では、クリア・ライン８８５を含まない場合があり、それによりフリップフロップ８８０ａおよび８８０ｂの構造をさらに簡略化する。
【００６０】
図８Ｂに、本発明の特定の実施形態で使用することができる調節可能な遅延ラインを例示する。例えば、入力ライン８１５ａをマルチプレクサ８５０の出力に結合することができ、出力ライン８１５ｂは高速ディファレンシャル出力バッファ８８２の入力に結合される。調節可能遅延ラインは、遅延ライン８６０およびマルチプレクサ８７０を含む。ライン８１５ａで受け取られた信号は、遅延され、ライン８６１、８６２、および８６３に出力として提供される。これらのラインは、タップおよび遅延ラインの出力に対応することができる。これらのライン、およびライン８１５ａでの入力信号は、マルチプレクサ８７０、およびライン８１５ｂでの出力によって選択可能である。このようにして、ディファレンシャル出力のクロック対Ｑ遅延を調節することができる。これは、セットアップおよび保持時間を最適化するのに有用である。同様の調節可能な遅延ラインを、含まれる入力および出力回路それぞれにおける適切な位置に挿入することができる。
【００６１】
図９Ａは、図８Ａの出力回路の動作を例示するタイミング図である。ＦＩＦＯ入力信号ＤＩＮ１  ９２１ａおよびＤＩＮ２  ９２２ａ、フリップフロップ出力Ｑ１  ９１１ａおよびＱ２  ９１２ａ、クロック信号９８６ａ、ならびに出力電圧Ｖｏｕｔ９１０ａが含まれている。この例では、ＦＩＦＯの書込みポートは４ビット幅であり、ＦＩＦＯ入力信号ＤＩＮ１  ９２１の一部分が、４つの入力ビットＡ、Ｂ、Ｃ、およびＤをそれぞれ１つの入力ラインに含む。ＦＩＦＯ入力信号ＤＩＮ２  ９２２の一部分は、ビットＥ、Ｆ、Ｇ、およびＨをそれぞれ１つの入力ラインに含む。ＦＩＦＯは、これらの入力信号を記憶し、それらをフリップフロップ８８０ａおよび８８０ｂに送る。これらのフリップフロップは、クロック信号９８６によってクロックされ、ＦＩＦＯ８２５ａおよび８２５ｂの入力でのデータ・レートの４倍の周波数でデータを出力する。マルチプレクサ８５０は、入力を交互に選択し、データ・レートを倍増して、フリップフロップの出力からデータをインターリーブする。したがって、シーケンスＡ、Ｅ、Ｂ、Ｆ、Ｃ、Ｇ、Ｄ、およびＨでの出力ビットを含むＶｏｕｔ９１０ａがパッドＰ１  ８１０およびＰ２  ８２０に提供される。見て分かるように、Ｖｏｕｔ９１０ａのデータ・レートは、ＤＩＮ１  ９２１ａおよびＤＩＮ２  ９２２ａを構成する４つの入力信号のデータ・レートの８倍である。この特定の例では、ＤＩＮ１  ９２１ａおよびＤＩＮ２  ９２２ａが４ビット幅である。他の実施形態では、これらを４ビット幅よりも大きく、または小さくすることができる。
【００６２】
図９Ｂは、図８Ａの出力回路の代替動作を例示するタイミング図である。ＦＩＦＯ入力信号ＤＩＮ１  ９２１およびＤＩＮ２  ９２２、フリップフロップ出力Ｑ１  ９１１およびＱ２  ９１２、クロック信号９８６、ならびに出力電圧Ｖｏｕｔ９１０が含まれている。この例では、ＦＩＦＯ入力信号ＤＩＮ１  ９２１の一部分が、４つの入力ビットＡ、Ｂ、Ｃ、およびＤを含む。ＦＩＦＯ入力信号ＤＩＮ２  ９２２の一部分は、ビットＥ、Ｆ、Ｇ、およびＨを含む。ＦＩＦＯは、これらの入力信号を記憶して、後でそれらをフリップフロップ８８０ａおよび８８０ｂに送る。これらのフリップフロップは、クロック信号９８６によってクロック制御され、ＦＩＦＯ８２５ａおよび８２５ｂの入力でのデータ・レートよりも高い周波数で出力する。マルチプレクサ８５９が、入力を交互に選択し、それによりフリップフロップの出力からデータをインターリーブする。したがって、シーケンスＡ、Ｅ、Ｂ、Ｆ、Ｃ、Ｇ、Ｄ、およびＨでの出力ビットがパッドＰ１  ８１０およびＰ２  ８２０に提供される。
【００６３】
図１０は、図６のＨＳＩＮ６９０、図７の高速入力レジスタ７９０およびディファレンシャル入力バッファ７９１、または本発明の他の実施形態での他の回路として使用することができる高速ディファレンシャル入力のさらなる詳細を示すブロック図である。ＦＩＦＯ１０２５ａおよび１０２５ｂ、フリップフロップ１０９０ｂおよび１０９０ｃ、ラッチ１０９０ａ、および入力バッファ１０９１が含まれている。別法として、ＦＩＦＯ１０２５ａおよび１０２５ｂを、２つの入力を有する１つのＦＩＦＯにすることもできる。他の図と同様に、これらのＦＩＦＯは、例えば、２つの入力ポートおよび２つの出力ポートを有する１つのＦＩＦＯであってよい。また、入力ポートと出力ポートは、構成可能である場合があり、入力ポートが１つのクロックを共有することができ、出力ポートが別のクロックを共有することができる。
【００６４】
フリップフロップ１０９０ｂおよび１０９０ｃと、ラッチ１０９０ａとが、ダブル・データ・レート入力レジスタを形成する。別法として、ラッチ１０９０ａを第３のフリップフロップにすることができる。マルチプレクサまたはパス・デバイスをＣＬＫ１０４３、Ｑ１  １０６２、Ｑ２  １０６１、またはレジスタ・データ入力経路に挿入して、この高速入力経路を非活動化し、電力を節約することができる。本発明に適合するこの回路に他の修正を施すこともできることを当業者は理解されよう。
【００６５】
入力信号は、入力バッファ１０９１によってパッドＰ１  １０１０およびＰ２  １０２０で受け取られる。入力バッファ１０９１は、フリップフロップ１０９０ｂおよび１０９０ｃに入力を提供する。高速クロック信号が、パス・デバイス１０４２によってＨＣＬＫクロック・ライン１０４０の１つから選択される。クロック信号は、ライン１０４３でフリップフロップ１０９０ｃおよびラッチ１０９０ａに印加され、インバータ１０５０によって反転されて、フリップフロップ１０９０ｂに送られる。入力バッファ１０９１からのデータは、フリップフロップ１０９０ｃによってクロックの立ち上がり端でラッチされ、フリップフロップ１０９０ｂによってクロックの立ち下がり端でラッチされる。フリップフロップ１０９０ｂによって記憶されたデータは、ラッチ１０９０ａによってリタイム(retime)され、それにより、信号Ｑ２  １０６１およびＱ３  １０６２が、クロックの立ち上がり端でＦＩＦＯ１０２５ａおよび１０２５ｂに送られる。ＦＩＦＯ１０２５ａおよび１０２５ｂは、データをバッファし、ラインＤＯＵＴ１  １０２６およびＤＯＵＴ２  １０２７でより低い周波数でデータをコア回路に提供する。
【００６６】
信号Ｖｉｎ１０１２は、フリップフロップ１０９０ｃによってクロックの立ち上がり端でラッチされ、フリップフロップ１０９０ｂによってクロックの立ち下がり端でラッチされるので、Ｑ３  １０６２およびＱ２  １０６１で結果として得られるデータ・レートはＶｉｎ１０１２の半分になる。すなわち、フリップフロップ１０９０ａおよび１０９０ｂは、入力データの２ビット直並列変換を行う。この概念はさらに、ＦＩＦＯ１０２５ａおよび１０２５ｂで拡張することができる。例えば、直列に受け取られる４ビットを、ＦＩＦＯ出力ＤＯＵＴ１  １０２６およびＤＯＵＴ２  １０２７で並列に出力することができる。このようにして、入力信号Ｖｉｎ  １０１２と、ＤＯＵＴ１  １０２６およびＤＯＵＴ２  １０２７とから８倍の周波数変換が達成される。他の実施形態では、４ビットよりも多い、または少ないビットを、ＦＩＦＯ１０２５ａおよび１０２５ｂによって直列データから並列データに変換することができ、それにより異なる全体周波数変換を達成する。
【００６７】
図１１Ａは、図１０の入力回路の動作を例示するタイミング図である。クロック信号１１４３ａ、入力信号１１１２ａ、フリップフロップ出力Ｑ１  １１６０ａおよびＱ２  １１６１ａ、ラッチ出力Ｑ３  １１６２ａ、ならびにＦＩＦＯ出力ＤＯＵＴ１  １１２６ａおよびＤＯＵＴ２  １１２７ａが含まれている。この例では、入力信号ＶＩＮ１１１２ａの一部分が、データ・ビット・シーケンスＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、およびＧを含む。クロック信号１１４３ａが、立ち上がり端と立ち下がり端で交互に入力信号１１１２ａを各フリップフロップ内にラッチし、波形Ｑ１  １１６０ａおよびＱ２  １１６１ａをもたらす。典型的には、クロック信号１１４３ａが入力信号ＶＩＮ１１１２ａと直交する。これは、「ウィンドウ・センタリング」と呼ばれ、入力レジスタでのデータ・エラーを最小限に抑える。Ｑ１  １１６０ａは、ラッチ１０９０ａによってクロック・サイクルの半分だけ遅延されて、信号１１６２ａを形成する。これらの信号Ｑ２  １１６１ａおよびＱ３  １１６２ａが記憶され、ＦＩＦＯ１０２５ａおよび１０２５ｂによって波形ＤＯＵＴ１  １１２６ａおよびＤＯＵＴ２  １１２７ａとして、より低い周波数で並列に出力される。
【００６８】
図１１Ｂは、図１０の入力回路の代替動作を例示するタイミング図である。クロック信号１１４３ｂ、入力信号１１１２ｂ、フリップフロップ出力Ｑ１  １１６０ｂおよびＱ２  １１６１ｂ、ラッチ出力Ｑ３  １１６２ｂ、ならびにＦＩＦＯ出力ＤＯＵＴ１  １１２６ｂおよびＤＯＵＴ２  １１２７ｂが含まれている。この例では、入力信号ＶＩＮ１１１２ｂの一部分が、データ・ビット・シーケンスＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、およびＧを含む。クロック信号１１４３ｂは、立ち上がり端と立ち下がり端で交互に入力信号１１１２ｂを各フリップフロップ内にラッチし、波形Ｑ１  １１６０ｂおよびＱ２  １１６１ｂをもたらす。Ｑ１  １１６０ｂは、ラッチ１０９０ａによってクロック・サイクルの半分だけ遅延される。これらの信号Ｑ２  １１６１ｂおよびＱ３  １１６２ｂがバッファされ、ＦＩＦＯ１０２５ａおよび１０２５ｂによって波形ＤＯＵＴ１  １１２６ｂおよびＤＯＵＴ２  １１２７ｂとして、より低い周波数で出力される。ここでも、クロック信号１１４３ｂはしばしば、入力信号ＶＩＮ１１１２ｂと直交（またはほぼ直交）する。別法として、入力フリップフロップのセットアップおよび保持時間に合うように入力信号のタイミングをとることができる。
【００６９】
図１２は、図６の出力および出力イネーブル回路６７０および６６０、または図７の出力レジスタ７７０、出力イネーブル・レジスタ７６０、ならびに出力バッファ７７１および７８２、あるいは本発明の他の実施形態の他の回路として使用することができる出力回路のより詳細なブロック図である。出力レジスタ１２７０ａおよび１２７０ｂ、マルチプレクサ１２６０および１２９０、クロック・マルチプレクサ１２７３、シングルエンド出力バッファ１２７１、ディファレンシャル出力バッファ１２８２、出力イネーブル・レジスタ１２５０ａおよび１２５０ｂ、ならびにＯＲゲート１２９５が含まれている。フリップフロップ１２７０ａおよび１２７０ｂと、マルチプレクサ１２６０とが、ダブル・データ・レート出力レジスタを形成する。マルチプレクサまたはパス・ゲートをレジスタ・データまたはクロック入力経路内に挿入して、この出力経路を非活動化することができる。さらに、マルチプレクサを使用して、１つのレジスタまたはコア回路から出力バッファの一方または両方に出力経路を直接形成することができる。本発明に適合するこの回路に他の修正を施すことができることを当業者には理解されたい。
【００７０】
データ信号は、コア回路またはＦＩＦＯからライン１２７４ａおよび１２７４ｂで受け取られる。ライン１２７７でのクロック信号は、パス・デバイス１２３２によってグローバル・クロックまたはローカル・クロック１２３０の１つから選択される。クロック・マルチプレクサ１２７３は、このクロック信号の真のバージョンまたは補完バージョンを選択し、フリップフロップ１２７０ａおよび１２７０ｂのクロック入力と、データ・マルチプレクサ１２６０の選択入力とをドライブする。出力が、フリップフロップ１２７０ａおよび１２７０ｂによってマルチプレクサ１２６０に提供され、これらはインターリーブされて、出力バッファ１２７１または１２８２のいずれかをドライブする。出力バッファ１２７１が選択される場合、パッドＰ１  １２１０にシングルエンド出力をドライブする。ディファレンシャル出力バッファ１２８２は、活動化されると、パッドＰ１  １２１０およびＰ２  １２２０にディファレンシャル出力をドライブする。
【００７１】
出力バッファ１２７１は、イネーブル・レジスタ１２５０ａおよび１２５０ｂによってドライブされるＯＲゲート１２９５によってイネーブルされる。具体的には、ライン１２５４での出力イネーブル信号が、フリップフロップ１２５０ｂをドライブするフリップフロップ１２５０ａによって受け取られる。フリップフロップ１２５０ａおよび１２５０ｂの出力は、ＯＲゲート１２９０によってＯＲ演算され、これが出力バッファ１２７１のイネーブル入力をドライブする。この構成により、イネーブル・レジスタは、連続する立ち上がり端と立ち下がり端（または連続する立ち下がり端と立ち上がり端）で出力バッファ１２７１をイネーブルし、ディスエーブルすることができる。このようにすると、出力バッファ１２７１を動的にトライステートとする、またはイネーブルとすることができる。別法として、マルチプレクサ１２９０は、論理ハイ（またはＶＣＣ）を選択し、それによりフリップフロップ１２５０ｂをクリアすることができる。これにより、フリップフロップ１２５０ａが、ライン１２５７でのＣＬＫ１信号の連続する立ち上がり端で出力バッファ１２７１をイネーブルし、ディスエーブルすることができる。また、これらの各場合に、イネーブルとディスエーブル（またはディスエーブルとイネーブル）の間に１つまたは複数の中間クロックが存在する場合もある。
【００７２】
この信号経路は通常、低周波数または中程度の周波数の信号に関して使用することを見込んでいるので、フリップフロップ１２７０ａおよび１２７０ｂと、出力バッファ１２７１とは、より高速の信号経路内で使用されるフリップフロップおよび出力バッファよりも高レベルの機能をサポートすることができる。この例では、各フリップフロップが、それに関連するプリセット、クリア、およびイネーブル信号入力を有し、出力バッファは、高インピーダンス出力を提供することができるようにイネーブル入力を有する。この例では、個別のプリセット、イネーブル、およびクリア・ラインがデータ出力フリップフロップおよび出力イネーブル・フリップフロップに提供される。他の実施形態では、信号ラインをまとめて結合することができ、またはこれらの機能のいくつかを省くことができる。別法として、各フリップフロップが、これらの機能の１つまたは複数のための個別信号ラインを有することができる。また、他の信号をこれらの回路によってサポートすることができる。
【００７３】
図１３は、図６の入力回路６５０、図７の入力レジスタ７５０および入力バッファ７５１、または本発明の他の実施形態での他の回路として使用することができる入力回路を示すより詳細なブロック図である。シングルエンド入力バッファ１３５１、ディファレンシャル出力バッファ１３９１、ラッチ１３５０ａ、フリップフロップ１３５０ｂおよび１３５０ｃ、およびクロック・マルチプレクサ１３５３が含まれている。別法として、ラッチ１３５０ａをフリップフロップにすることができる。レジスタ・データまたはクロック入力経路内にマルチプレクサを挿入して、このより低速の入力経路を非活動化することができる。本発明に適合するこの回路に他の修正を施すことができることを当業者は理解されよう。
【００７４】
シングルエンド信号はパッドＰ１  １３１０で受け取られ、入力バッファ１３５１を通してフリップフロップ１３５０ｂおよび１３５０ｃに提供される。ディファレンシャル入力は、パッドＰ１  １３１０およびＰ２  １３２０で受け取られ、ディファレンシャル入力バッファ１３９１に送られる。フリップフロップ１３５０ｂおよび１３５０ｃの入力は、クロックの交互端で記憶される。フリップフロップ１３５０ｂの出力は、ラッチ１３５０ａによってリタイムされる。クロック信号は、パス・デバイス１３３２によってグローバル・クロックまたはローカル・クロック１３３０の１つから選択される。選択されたクロック信号の真のバージョンまたは補完バージョンが、マルチプレクサ１３５３によってフリップフロップ１３５０ｃおよびラッチ１３５０ａに提供される。この信号は、インバータ１３６０によって反転されて、フリップフロップ１３５０ｂをドライブする。ラッチ１３５０ａおよびフリップフロップ１３５０ｃの出力、Ｑ３  １３６１およびＱ２  １３６３は、ＦＩＦＯまたはコア回路に提供される。前述したように、この回路は、低周波数または中程度の周波数の入力信号用として意図されているので、より高レベルの機能を有するフリップフロップおよびラッチを使用することができる。図示した特定の例では、各フリップフロップおよびラッチが、プリセット、クリア、およびイネーブル入力信号ラインを有する。他の実施形態では、他の入力信号ラインを使用することができ、または図示した入力のいくつかを省くことができる。特定の例では、１つのプリセット１３６５、１つのクリア１３６６、およびイネーブル１３６７が、各フリップフロップおよびラッチに接続されて示されている。本発明の他の実施形態では、これらの回路のいくつかまたは全てを個別のラインに接続することができる。
【００７５】
図１４は、本発明の一実施形態で使用されるグローバル、ローカル、および高速のクロックを発生するために使用される位相ロック・ループを示すブロック図である。ＬＶＤＳＣＬＫ入力パッド１４１０、クロック入力パッド１４２０、マルチプレクサ１４５０、および位相ロック・ループ１４６０が含まれている。これらの回路は、ＨＣＬＫ１４４０、ＬＣＬＫ１４３０ａ、およびＨＣＬＫ１４３０ｂを発生する。この例では、ＬＶＤＳＣＬＫ入力を、クロック入力または入出力パッドとして構成することができる。クロック入力パッド１４２０は専用クロック入力である。各クロック入力パッド１４２０は、ディファレンシャル入力を受信するための２つの別々のパッドであっても、シングルエンド入力を受信するための１つのパッドであってもよい。各マルチプレクサ１４５０は、２つの入力信号の一方を選択し、位相ロック・ループ１４６０に基準クロックを提供する。ＰＬＬの出力は、ローカル、グローバル、または高速のクロック・ラインとして選択可能である。本発明の特定の実施形態では、図１４で図示される回路は、集積回路の各側で繰り返される。したがって、各ＨＬＣＫ１４４０が、集積回路の各側の４分の１を介して、すなわち全周縁の１６分の１を介して経路付けられる。また、集積回路の４分の１がそれぞれ、利用可能な４つのローカル・クロック・ラインを有し、集積回路全体を介して総計１６本のグローバル・クロック・ラインが存在する。
【００７６】
図１５は、図１４の位相ロック・ループ１４６０として使用することができる位相ロック・ループの一例である。入力パッド１５０５および１５１０、入力バッファ１５１５、加算ノード１５２０、電圧制御発振器１５２５、周波数分周器１５３０、マルチプレクサ１５４０、１５５０、１５６０、および１５７０、ならびに分周器１５４５、１５５５、および１５６５が含まれている。シングルエンドまたはディファレンシャル基準クロック入力信号がパッド１５０５および１５１０で受け取られ、入力バッファ１５１５をドライブする。ＶＣＯ１５２５は、クロック信号を発生し、これが分周器１５３０によって分周され、位相が加算ノード１５２０でのバッファ基準クロック信号と比較される。信号間の位相差が、エラー信号または制御電圧を生じて、ＶＣＯ周波数を調節する。
【００７７】
ＶＣＯ１５２５は、様々な位相を有するクロック信号をマルチプレクサ１５４０、１５５０、および１５６０に提供することができるように、リング発振器または同様の構造にすることができる。特定の実施形態では、ＶＣＯが４つのディファレンシャル段階を備える。他の実施形態では、段階の数を変えることができる。この実施形態では、０、４５、９０、１３５、１８０、２２５、２７０、および３１５度だけ移相された位相を有するクロックを利用可能である。本発明の他の実施形態では、ラインの数が異なり、様々な位相を有するラインをＶＣＯが利用できるようになっている。マルチプレクサ１５４０、１５５０、および１５６０は、利用可能な入力の１つを選択し、分周器１５４５、１５５５、および１５６５をドライブする。分周器１５４５、１５５５、および１５６５は、Ｋ、Ｖ、およびＬによって入力周波数を分周する。特定の実施形態では、Ｋ、Ｖ、およびＬが、１〜１６のプログラム可能な整数値である。他の実施形態では、これらは固定値であってよく、あるいは１つまたは複数の異なる範囲の値に沿って可変にすることができる。マルチプレクサ１５７０は、分周器１５６５の出力と入力バッファ１５１５の出力のどちらかを選択する。様々な実施形態で、分周器１５４５および１５５５の出力と、マルチプレクサ１５７０の出力とを、高速、ローカル、またはグローバル・クロック信号として選択可能である。その一例を図１４に示す。
【００７８】
本発明の特定の実施形態の前述の説明は、例示および説明の目的で提示したものである。説明した正確な形態で本発明を網羅する、またはそれに限定することを意図してはおらず、上述の教示に鑑みて多くの修正および変形が可能である。様々な実施形態で、企図した特定の用途に適するように様々な修正を施して、当業者が本発明を最良に利用することができるように、本発明の原理およびその実際の適用例を最も良く説明するためにいくつかの実施形態を選択して説明した。
【符号の説明】
【００７９】
１０１  処理ユニット
１０５  メモリ
１１１  Ｉ／Ｏ
１２１  プログラム可能論理デバイス
【図１】
2010141901.tif 000003
【図２】
2010141901.tif 000004
【図３】
2010141901.tif 000005
【図４】
2010141901.tif 000006
【図５】
2010141901.tif 000007
【図６】
2010141901.tif 000008
【図７】
2010141901.tif 000009
【図８】
2010141901.tif 000010
【図９Ａ】
2010141901.tif 000011
【図９Ｂ】
2010141901.tif 000012
【図１０】
2010141901.tif 000013
【図１１Ａ】
2010141901.tif 000014
【図１１Ｂ】
2010141901.tif 000015
【図１２】
2010141901.tif 000016
【図１３】
2010141901.tif 000017
【図１４】
2010141901.tif 000018
【図１５】
2010141901.tif 000019