(57)【特許請求の範囲】
【請求項１】
複数のプログラマブルデバイスを含むプログラマブルデバイスファミリーにおけるプログラマブルデバイスであって、該プログラマブルデバイスは、
プログラマブルデバイスコアと、
第１のセットのピンから構成される第１のＩ／Ｏバンクであって、該第１のセットのピンは、データピンおよびサポートピンを含み、該プログラマブルデバイスの第１の辺に位置している、第１のＩ／Ｏバンクと、
第２のセットのピンおよび第３のセットのピンから構成される第２のＩ／Ｏバンクであって、該第２のセットのピンは、データピンおよびサポートピンを含み、該第１のＩ／Ｏバンクの該第１のセットのピンは、該第２のＩ／Ｏバンクの該第２のセットのピンと１対１対応を有し、該第２のセットのピンは、該プログラマブルデバイスの第２の辺に位置している、第２のＩ／Ｏバンクと
を備え、該第２のセットのピンが、該第１の辺に沿った該第１のセットのピンのシーケンスと同一のシーケンスで該第２の辺に沿って配置されている、プログラマブルデバイス。
【請求項２】
前記第２の辺は、前記第１の辺に直交している、請求項１に記載のプログラマブルデバイス。
【請求項３】
前記第２の辺は、前記第１の辺に対向している、請求項１に記載のプログラマブルデバイス。
【請求項４】
前記第１のセットのピンにおけるサポートピンの数とデータピンの数との比率は、前記第２のセットのピンにおけるサポートピンの数とデータピンの数との比率と同じである、請求項１に記載のプログラマブルデバイス。
【請求項５】
プログラマブルデバイスコアと、
第１のシーケンスに配置される第１のセットのピンから構成される第１のＩ／Ｏバンクであって、該第１のセットのピンは、データピンおよびサポートピンを含む、第１のＩ／Ｏバンクと、
第２のセットのピンおよび第３のセットのピンから構成される第２のＩ／Ｏバンクであって、該第２のセットのピンは、データピンおよびサポートピンを含み、該第１のシーケンスとは逆のシーケンスに配置されている、第２のＩ／Ｏバンクと
を備える、プログラマブルデバイス。
【請求項６】
第４のセットのピンを含む第３のＩ／Ｏバンクをさらに備え、
前記第１のセットのピンは、前記プログラマブルデバイスの第１の辺に位置し、該第４のセットのピンは、該プログラマブルデバイスの第２の辺に位置し、該第４のセットのピンは、該第１の辺に沿った前記第１のシーケンスと同一のシーケンスで該第２の辺に沿って配置されている、請求項５に記載のプログラマブルデバイス。
【請求項７】
前記サポートピンが、複数のグループの電力および接地ピンを含み、各グループの電力および接地ピンは、少なくとも１つのグループのデータピンに隣接して、前記第１のＩ／Ｏバンクおよび前記第２のＩ／Ｏバンク内に位置している、請求項５に記載のプログラマブルデバイス。
【請求項８】
前記第１のセットのピンにおけるサポートピンの数とデータピンの数との比率は、前記第２のセットのピンにおけるサポートピンの数とデータピンの数との比率と同じである、請求項５に記載のプログラマブルデバイス。
【請求項９】
複数のプログラマブルデバイスを含むプログラマブルデバイスファミリーにおけるプログラマブルデバイスであって、該プログラマブルデバイスは、
プログラマブルデバイスコアと、
第１のセットのピンを含む第１のＩ／Ｏバンクであって、該第１のセットのピンは、データピンおよびサポートピンを含み、該サポートピンは、複数のグループの電力および接地ピンを含む、第１のＩ／Ｏバンクと、
第２のセットのピンを含む第２のＩ／Ｏバンクであって、該第１のＩ／Ｏバンクの該第１のセットのピンは、該第２のＩ／Ｏバンクの該第２のセットのピンと１対１対応を有する部分と、該部分に加えて複数のピンとを含み、該電力および接地ピンの数と該データピンの数との比率が固定されている、第２のＩ／Ｏバンクと
を備え、
各グループの電力および接地ピンは、少なくとも１つのグループのデータピンに隣接している、プログラマブルデバイス。
【請求項１０】
前記第２のＩ／Ｏバンクの前記第２のセットのピンは、データピンおよびサポートピンを含み、該第２のセットのピンにおける前記電力および接地ピンの数と該データピンの数との比率は、前記第１のセットのピンにおける前記電力および接地ピンの数と該データピンの数との比率と同じである、請求項９に記載のプログラマブルデバイス。
【請求項１１】
前記サポートピンがクロックピンを含む、請求項９に記載のプログラマブルデバイス。
【請求項１２】
プログラマブルデバイスコアと、
第１のタイプの第１の複数のＩ／Ｏバンクであって、該第１のタイプの各Ｉ／Ｏバンクは、データピンおよびサポートピンを含む、第１のタイプの第１の複数のＩ／Ｏバンクと、
第２のタイプの第２の複数のＩ／Ｏバンクであって、該第２のタイプの各Ｉ／Ｏバンクは、データピンおよびサポートピンを含み、該第２のタイプの該複数のＩ／Ｏバンクのそれぞれは、該第１のタイプのＩ／Ｏバンクのピンと１対１対応を有するピンの部分と、該部分に加えて複数のピンとを含む、第２のタイプの第２の複数のＩ／Ｏバンクと
を備え、
該第１のタイプの該複数のＩ／Ｏバンクのそれぞれにおける該サポートピンのうちの少なくとも一部に対するデータピンの比率は、該第２のタイプの該複数のＩ／Ｏバンクのそれぞれにおける該サポートピンのうちの少なくとも一部に対するデータピンの比率と同じである、プログラマブルデバイス。
【請求項１３】
前記サポートピンの前記一部がクロックピンを含む、請求項１２に記載のプログラマブルデバイス。
【請求項１４】
前記第１の複数のＩ／Ｏバンクおよび前記第２の複数のＩ／Ｏバンクは、同様の性能特性を有する、請求項１２に記載のプログラマブルデバイス。
【請求項１５】
前記第１の複数のＩ／Ｏバンクのそれぞれは、第１の固定数のピンを有し、前記第２の複数のＩ／Ｏバンクのそれぞれは、第２の固定数のピンを有し、該第１の固定数のピンおよび該第２の固定数のピンは、インターフェースのセットのそれぞれをインプリメントするように選択される、請求項１２に記載のプログラマブルデバイス。
【請求項１６】
前記第１のセットのピンおよび前記第２のセットのピンのそれぞれが連続して配置されている、請求項１に記載のプログラマブルデバイス。
【請求項１７】
前記第１のセットのピンが連続して配置されている、請求項５に記載のプログラマブルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の参照）
本出願は、２００６年１月１９日に出願された、米国特許出願第１１／３３７，０４６号（タイトル「Ｍｏｄｕｌａｒ  Ｉ／Ｏ  Ｂａｎｋ  Ａｒｃｈｉｔｅｃｔｕｒｅ」）の一部継続出願である。その全容は全ての目的のために参考により本明細書中に援用される。
【０００２】
（技術分野）
本発明は、プログラマブルデバイスの分野、ならびにそのプログラマブルデバイスをプログラミングするためのシステムおよび方法に関する。
【背景技術】
【０００３】
ＦＰＧＡのようなプログラマブルデバイスは、典型的に、ロジック演算を実行するためにロジックゲートおよび／またはルックアップテーブルの組み合わせを使用する数千個のプログラマブルロジックセルを含む。プログラマブルデバイスは、特定のロジック演算に適合された特殊ロジックデバイス（例えば、加算器、乗算・累積回路、位相ロックループ、および１つ以上の組み込み型メモリアレイブロック）を有する複数の機能ブロックも含む。ロジックセルおよび機能ブロックは、構成可能スイッチ回路を用いて相互接続される。構成可能スイッチ回路は、ロジックセルと機能ブロックとの間の接続を選択的にルーティングする。ロジックセルと、機能ブロックと、スイッチ回路との組み合わせを構成することによって、プログラマブルデバイスは、任意のタイプの情報処理機能をバーチャルに実行するように適合され得る。
【０００４】
プログラマブルデバイスは、外部デバイス（メモリデバイス、ネットワークインターフェース、データバスおよびデータバスコントローラ、マイクロプロセッサ、他のプログラマブルデバイス、ＡＳＩＣ、または任意の他のタイプの電子機器）との通信のために１つ以上の入力／出力（Ｉ／Ｏ）バンクを含む。Ｉ／Ｏバンクのそれぞれは、プログラマブルデバイスチップパッケージにおける多数の導電性Ｉ／Ｏピン、ボール、または他の電気コネクタと接続される。Ｉ／Ｏバンクは、プログラマブルデバイスと外部デバイスとの間の通信に関連して使用されるデータ信号、制御信号、クロック信号、電力および接地信号、または任意の他のタイプの信号を送信および受信するためのロジックを含む。
【０００５】
プログラマブルデバイスのＩ／Ｏバンクは、プログラマブルデバイスと外部デバイスとの間に１つ以上の標準インターフェースを提供するように一緒に構成され得るロジック、増幅器、フィルタ、および他の回路を含む。更に、プログラマブルデバイスのＩ／Ｏバンクは、特定のアプリケーションによって必要とされた場合、カスタムまたは専売インターフェースを提供するように構成され得る。
【０００６】
典型的に、広い範囲の異なるプログラマブルデバイスは、プログラマブルデバイスファミリーの一部として設計される。デバイスファミリー内のプログラマブルデバイスは、典型的に、同様のアークテクチャを有するが、チップパッケージサイズおよびタイプ、Ｉ／Ｏピンの数、ロジックセルの数、機能ブロックおよび他の特殊ロジックブロックの数およびタイプ、および／または他の特性の点で異なり得る。
【０００７】
前のプログラマブルデバイスファミリーにおいては、プログラマブルデバイスアーキテクチャは、固定数のＩ／Ｏバンクのみをサポートする。結果的に、デバイスファミリー内のプログラマブルデバイスは、１個のＩ／Ｏバンクに対して異なる量のＩ／Ｏピンを有し得る。例えば、プログラマブルデバイスアーキテクチャが８個のＩ／Ｏバンクをサポートした場合、デバイスファミリー内の小さなプログラマブルデバイスは、プログラマブルデバイスに対してトータル１６０個のＩ／Ｏピンに対して、１個のＩ／Ｏバンクに対して２０個のＩ／Ｏピンのみを有し得る。逆に、デバイスファミリー内の例示的で大きなプログラマブルデバイスは、プログラマブルデバイスに対してトータル５６０個のＩ／Ｏピンに対して、１個のＩ／Ｏバンクに対して７０個のＩ／Ｏピンを有し得る。
【０００８】
プログラマブルデバイスアーキテクチャにおける固定数のＩ／Ｏバンクと、１個のＩ／Ｏバンクに対して可変の数のＩ／Ｏピンとの使用は、多数の問題を引き起こす。第１に、ほとんどのＩ／Ｏバンクは、一度に１つのインターフェースをサポートするようにのみ構成され得る。１個のＩ／Ｏバンクに対するＩ／Ｏピンの数が増えると、サポートされるインターフェースに必要とされないＩ／Ｏピンは未使用のまま残される。１つ以上のＩ／Ｏバンクからの未使用Ｉ／Ｏピンは、さらなるインターフェースをサポートするように統合することができない。従って、１個のＩ／Ｏバンクに対するＩ／Ｏピンの数が増えると、使用されるＩ／Ｏピンの割合は典型的には減少する。これは、しばしば、必要とされるインターフェースをサポートするために利用可能である十分な数のＩ／Ｏピンがあること（これは、設計をインプリメントするコストを更に増やす）を確実にするために、設計者が更に多くのＩ／Ｏピンを備えるプログラマブルデバイスを使用ことを強いる。更に、Ｉ／Ｏピン使用におけるこれらの制約は、回路基板レイアウトにおける設計者の柔軟性を制限する。
【０００９】
垂直移動は、固定数のＩ／Ｏバンクおよび１個のバンクに対して可変数のＩ／Ｏピンを使用するという前のプログラマブルデバイスアーキテクチャから生じる他の問題である。しばしば、設計者は、デバイスファミリー内の特定のサイズのプログラマブルデバイスに対して初期設計を展開する。設計に対する次の修正および改良は、追加のプログラマブルデバイスリソースを必要とし得る。設計者は、実質的な再処理（ｒｅｅｎｇｉｎｅｅｒｉｎｇ）およびテストコストなしに同じデバイスファミリー内のより大きなサイズのプログラマブルデバイスを使用して、修正された設計をインプリメントできることを好む。
【００１０】
しかしながら、固定数のＩ／Ｏバンクおよび１個のバンクに対して可変数のＩ／Ｏピンを有するという前のプログラマブルデバイスアークテクチャは、しばしば、垂直移動に対して実質的な再処理を必要とする。例えば、１個のＩ／Ｏバンクに対するＩ／Ｏピンの数がより大きなデバイスに対してしばしば増えるため、より大きなデバイスのＩ／Ｏバンクは、より小さなデバイス内の対応するＩ／Ｏバンクと同じＩ／Ｏピン割り当てをサポートしない場合がある。従って、設計者は、これらの違いを説明するために、デバイスとともに、関連回路基板を再処理する必要がある。
【００１１】
ノイズ、クロックスキュー（ｃｌｏｃｋ  ｓｋｅｗ）、および信号反射は、固定数のＩ／Ｏバンクおよび１個のバンクに対して可変数のＩ／Ｏピンの使用によってもたらされる垂直移動において生じる他の問題である。１個のＩ／Ｏバンクに対するピンの数が増えると、アクティブスイッチのトータル数およびＩ／Ｏピンに関連する他の構成要素は増え、それによって、導入される雑音および信号反射の量が増える。同様に、より多くのＩ／Ｏピンを備えるＩ／Ｏバンクは、より小さなＩ／Ｏバンクよりも、より多い量のクロックスキューを有する。従って、設計がより小さなプログラマブルデバイスからより大きなプログラマブルデバイスに移動される場合、設計者は、さらなるＩ／Ｏピンを備えるＩ／Ｏバンクの使用によって導入されるさらなるノイズ、信号反射、およびクロックスキューを克服するために取り組む必要がある。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
従って、プログラマブルデバイスアーキテクチャが、可変数のＩ／Ｏピンを有する固定数のＩ／Ｏバンクに通常関連する困難を克服することが望ましい。プログラマブルデバイスアーキテクチャが、Ｉ／Ｏピンのトータル数に関らず、効率的なＩ／Ｏピン使用を可能にすることが望ましい。プログラマブルデバイスアーキテクチャが、必要とされる再処理の労力を減少させながら、より大きなプログラマブルデバイスに垂直移動を容易にすることが更に望ましい。Ｉ／Ｏバンクが、前のプログラマブルデバイスアーキテクチャのＩ／Ｏバンクと比較して、改良された性能を有することが更に望ましい。
【課題を解決するための手段】
【００１３】
一実施形態において、プログラマブルデバイスＩ／Ｏアーキテクチャは、可変数のＩ／Ｏバンクを可能にする。Ｉ／Ｏバンクのそれぞれは、Ｉ／Ｏバンクのタイプである。Ｉ／Ｏバンクのタイプのそれぞれは、固定数のＩ／Ｏピンを有する。同じＩ／ＯバンクのタイプのＩ／Ｏバンクは、同じプログラマブルデバイス内および異なるタイプのプログラマブルデバイス間にて互換性がある。インターフェースのセットのそれぞれが、少なくとも１つのＩ／ＯバンクのタイプのＩ／Ｏバンクを効率的に使用してインプリメントされ得るように、Ｉ／Ｏバンクのタイプのそれぞれに対するＩ／Ｏピンの数が選択される。更なる実施形態においては、最も大きいサイズのＩ／Ｏバンクのタイプおよび中間サイズのＩ／Ｏバンクのタイプは、より小さいあらゆるＩ／Ｏバンクのタイプの互換性のある上位集団になるように適合される。他の実施形態においては、Ｉ／Ｏバンクのタイプのそれぞれにおけるデータピンとサポートピンとの比率は同じである。更なる実施形態においては、サポートピンは、Ｉ／Ｏバンクのタイプのそれぞれにおけるデータピン間にて規則的に分布される。更なる実施形態においては、同じまたは互換性のあるＩ／Ｏバンクのタイプの複数のインスタンスは、プログラマブルデバイスの異なる面からアクセス可能になるように配置される。回路基板レイアウトを容易にするために、プログラマブルデバイスアーキテクチャの一実施形態は、Ｉ／Ｏバンクのそれぞれのピンをデバイス上の他のＩ／Ｏバンクのピンの反射および／または回転として配置する。
【００１４】
一実施形態においては、プログラマブルデバイスファミリーにおけるプログラマブルデバイスは、プログラマブルデバイスコアならびに第１のおよび第２のＩ／Ｏバンクを含む。第１のＩ／Ｏバンクは、プログラマブルデバイスの第１の面からアクセス可能である第１のセットのピンを含む。第２のＩ／Ｏバンクは、プログラマブルデバイスの第２の面からアクセス可能である第２のセットのピンを含む。一実施形態においては、第１のＩ／Ｏバンクの第１のセットのピンの少なくとも第１の部分は、第２のＩ／Ｏバンクの第２のセットのピンと１対１対応を有する。更なる実施形態においては、第２のセットのピンは、第１のセットのピンの回転として配置される。ある実施形態においては、回転は、９０度回転または１８０度回転になり得る。
【００１５】
更なる他の実施形態においては、第３のＩ／Ｏバンクは第３のセットのピンを含む。第１のＩ／Ｏバンクのピンの少なくとも第１の部分は、第３のＩ／Ｏバンクの第３のセットのピンと１対１対応を有する。第３のセットのピンは、プログラマブルデバイスの第２の面からアクセス可能である。第３のセットのピンは、第２のセットのピンの対称反射として配置される。
【００１６】
他の実施形態においては、第１のセットのピンは、第２のＩ／Ｏバンクの第２のセットのピンとの対応を少しも有さない第１のセットのピンの残りの部分を含む。第１のセットのピンは、電力および接地ピンを含むデータピンおよびサポートピンを含む。電力および接地ピンの数とデータピンの数との比率は、第１のＩ／Ｏバンクおよび第２のＩ／Ｏバンクに対して固定されている。一実施形態においては、この比率は、第１のＩ／Ｏバンクおよび第２のＩ／Ｏバンクに対して同じになり得る。電力および接地ピンは、データピンによってインターリーブされている。
【００１７】
本発明は、さらに以下の手段を提供する。
【００１８】
（項目１）
複数のプログラマブルデバイスを含むプログラマブルデバイスファミリーにおけるプログラマブルデバイスであって、該プログラマブルデバイスは、
プログラマブルデバイスコアと、
第１のセットのピンを含む第１のＩ／Ｏバンクであって、該第１のセットのピンは、該プログラマブルデバイスの第１の面からアクセス可能である、第１のＩ／Ｏバンクと、
第２のセットのピンを含む第２のＩ／Ｏバンクであって、該第１のＩ／Ｏバンクの該第１のセットのピンの少なくとも第１の部分は、該第２のＩ／Ｏバンクの該第２のセットのピンと１対１対応を有し、該第２のセットのピンは、該プログラマブルデバイスの第２の面からアクセス可能である、第２のＩ／Ｏバンクと
を備え、該第２のセットのピンが該第１のセットのピンの回転として配置される、プログラマブルデバイス。
【００１９】
（項目２）
上記回転が９０度回転である、項目１に記載のプログラマブルデバイス。
【００２０】
（項目３）
上記回転が１８０度回転である、項目１に記載のプログラマブルデバイス。
【００２１】
（項目４）
第３のセットのピンを含む第３のＩ／Ｏバンクであって、上記第１のＩ／Ｏバンクの上記ピンの少なくとも上記第１の部分は、該第３のＩ／Ｏバンクの該第３のセットのピンと１対１対応を有し、該第３のセットのピンは、上記プログラマブルデバイスの上記第２の面からアクセス可能である、第３のＩ／Ｏバンクをさらに備え、
該第３のセットのピンが該第２のセットのピンの対称的反射として配置される、項目１に記載のプログラマブルデバイス。
【００２２】
（項目５）
上記第１のセットのピンが、上記第２のＩ／Ｏバンクの上記第２のセットのピンと１対１対応を少しも有さない該第１のセットのピンの残りの部分を含む、項目１に記載のプログラマブルデバイス。
【００２３】
（項目６）
上記第１のセットのピンが、データピンおよびサポートピンを含む、項目１に記載のプログラマブルデバイス。
【００２４】
（項目７）
上記サポートピンが、電力および接地ピンを含む、項目６に記載のプログラマブルデバイス。
【００２５】
（項目８）
上記電力および接地ピンの数と上記データピンの数との比率が固定されている、項目７に記載のプログラマブルデバイス。
【００２６】
（項目９）
上記第２のＩ／Ｏバンクの上記第２のセットのピンは、データピンおよびサポートピンを含み、該第２のセットのピンにおける上記電力および接地ピンの数と該データピンの数との比率は、上記第１のセットのピンにおける上記電力および接地ピンの数と上記データピンの数との比率と同じである、項目８に記載のプログラマブルデバイス。
【００２７】
（項目１０）
上記電力および接地ピンは、上記データピンによってインターリーブされている、項目７に記載のプログラマブルデバイス。
【００２８】
（項目１１）
上記第２のＩ／Ｏバンクは、上記プログラマブルデバイスファミリーにおける第２のプログラマブルデバイスのＩ／Ｏバンクと機能的に同一であり、該第２のプログラマブルデバイスは、上記プログラマブルデバイスとは異なる仕様を有する、項目１に記載のプログラマブルデバイス。
【００２９】
（項目１２）
上記第１のＩ／Ｏバンクおよび上記第２のＩ／Ｏバンクは、同様の性能特性を有する、項目１に記載のプログラマブルデバイス。
【００３０】
（項目１３）
上記性能特性が信号−雑音比を含む、項目１２に記載のプログラマブルデバイス。
【００３１】
（項目１４）
上記性能特性がクロックスキューを含む、項目１２に記載のプログラマブルデバイス。
【００３２】
（項目１５）
プログラマブルデバイスコアと、
第１のシーケンスに配置される第１のセットのピンを含む第１のＩ／Ｏバンクと、
第２のセットのピンを含む第２のＩ／Ｏバンクであって、該第２のセットのピンは、該第１のシーケンスの対称的反射に配置される、第２のＩ／Ｏバンクと
を備える、プログラマブルデバイス。
【００３３】
（項目１６）
上記第１のセットのピンおよび上記第２のセットのピンは、上記プログラマブルデバイスの第１の面からアクセス可能である、項目１５に記載のプログラマブルデバイス。
【００３４】
（項目１７）
上記第１のセットのピンは、上記プログラマブルデバイスの第１の面からアクセス可能であり、上記第２のセットのピンは、該プログラマブルデバイスの第２の面からアクセス可能である、項目１５に記載のプログラマブルデバイス。
【００３５】
（項目１８）
上記第１の面が上記第２の面に対して垂直である、項目１７に記載のプログラマブルデバイス。
【００３６】
（項目１９）
上記第１の面が上記第２の面と反対側である、項目１７に記載のプログラマブルデバイス。
【００３７】
（項目２０）
第３のセットのピンを含む第３のＩ／Ｏバンクをさらに備え、
上記第１のセットのピンは、上記プログラマブルデバイスの第１の面からアクセス可能であり、該第３のセットのピンは、該プログラマブルデバイスの第２の面からアクセス可能であり、該第３のセットのピンは、該第１のセットのピンの回転として配置される、項目１５に記載のプログラマブルデバイス。
【００３８】
（項目２１）
上記第１のＩ／Ｏバンクの上記第１のセットのピンの第１の部分は、上記第２のＩ／Ｏバンクの上記第２のセットのピンと１対１対応を有し、該第１のセットのピンの残りの部分は、該第２のＩ／Ｏバンクの該第２のセットのピンとの対応を少しも有さない、項目１５に記載のプログラマブルデバイス。
【００３９】
（項目２２）
上記第１のセットのピンおよび上記第２のセットのピンのそれぞれが、データピンおよびサポートピンを含む、項目１５に記載のプログラマブルデバイス。
【００４０】
（項目２３）
上記サポートピンが、電力および接地ピンを含む、項目２２に記載のプログラマブルデバイス。
【００４１】
（項目２４）
上記第２のセットのピンにおける上記電力および接地ピンの数と上記データピンの数との比率は、上記第１のセットのピンにおける上記電力および接地ピンの数と上記データピンの数との比率と同じである、項目２３に記載のプログラマブルデバイス。
【００４２】
（項目２５）
上記電力および接地ピンは、上記データピンによってインターリーブされている、項目２３に記載のプログラマブルデバイス。
【００４３】
（項目２６）
上記第２のＩ／Ｏバンクは、上記プログラマブルデバイスファミリーにおける第２のプログラマブルデバイスのＩ／Ｏバンクと機能的に同一であり、該第２のプログラマブルデバイスは、上記プログラマブルデバイスとは異なる仕様を有する、項目１５に記載のプログラマブルデバイス。
【００４４】
（項目２７）
上記第１のＩ／Ｏバンクおよび上記第２のＩ／Ｏバンクは、同様の性能特性を有する、項目２１に記載のプログラマブルデバイス。
【００４５】
（項目２８）
上記性能特性が信号−雑音比を含む、項目２７に記載のプログラマブルデバイス。
【００４６】
（項目２９）
上記性能特性がクロックスキューを含む、項目２７に記載のプログラマブルデバイス。
【００４７】
（項目３０）
複数のプログラマブルデバイスを含むプログラマブルデバイスファミリーにおけるプログラマブルデバイスであって、該プログラマブルデバイスは、
プログラマブルデバイスコアと、
第１のセットのピンを含む第１のＩ／Ｏバンクであって、該第１のセットのピンは、データピンおよびサポートピンを含む、第１のＩ／Ｏバンクと、
第２のセットのピンを含む第２のＩ／Ｏバンクであって、該第１のＩ／Ｏバンクの該ピンの第１の部分は、該第２のＩ／Ｏバンクの該第２のセットのピンと１対１対応を有し、該第１のセットのピンの残りの部分は、該第２のＩ／Ｏバンクの該第２のセットのピンとの対応を少しも有さない、第２のＩ／Ｏバンクと
を備える、プログラマブルデバイス。
【００４８】
（項目３１）
上記サポートピンが、電力および接地ピンを含む、項目３０に記載のプログラマブルデバイス。
【００４９】
（項目３２）
上記電力および接地ピンの数と上記データピンの数との比率が固定されている、項目３１に記載のプログラマブルデバイス。
【００５０】
（項目３３）
上記電力および接地ピンは、上記データピンによってインターリーブされている、項目３２に記載のプログラマブルデバイス。
【００５１】
（項目３４）
上記第２のＩ／Ｏバンクの上記第２のセットのピンは、データピンおよびサポートピンを含み、該第２のセットのピンにおける上記電力および接地ピンの数と該データピンの数との比率は、上記第１のセットのピンにおける上記電力および接地ピンの数と上記データピンの数との比率と同じである、項目３２に記載のプログラマブルデバイス。
【００５２】
（項目３５）
上記サポートピンがクロックピンを含む、項目３０に記載のプログラマブルデバイス。
【００５３】
（項目３６）
上記第２のＩ／Ｏバンクは、上記プログラマブルデバイスファミリーにおける第２のプログラマブルデバイスのＩ／Ｏバンクと機能的に同一であり、該第２のプログラマブルデバイスは、上記プログラマブルデバイスとは異なる仕様を有する、項目３０に記載のプログラマブルデバイス。
【００５４】
（項目３７）
上記第１のＩ／Ｏバンクおよび上記第２のＩ／Ｏバンクは、同様の性能特性を有する、項目３０に記載のプログラマブルデバイス。
【００５５】
（項目３８）
上記性能特性が信号−雑音比を含む、項目３７に記載のプログラマブルデバイス。
【００５６】
（項目３９）
上記性能特性がクロックスキューを含む、項目３７に記載のプログラマブルデバイス。
【００５７】
（項目４０）
第１の固定数のピンおよび第２の固定数のピンがインターフェースのセットを効率的にインプリメントするように適合されるように、上記第１のＩ／Ｏバンクは、該第１の固定数のピンを有し、上記第２のＩ／Ｏバンクは、該第２の固定数のピンを有する、項目３０に記載のプログラマブルデバイス。
【００５８】
（項目４１）
上記第１のＩ／Ｏバンクと同一である第１の複数のＩ／Ｏバンクをさらに備え、
上記インターフェースのセットの少なくとも一部は、該第１のＩ／Ｏバンクおよび該第１の複数のＩ／Ｏバンクのうちの少なくとも１つを使用して効率的にインプリメントされ得る、項目４０に記載のプログラマブルデバイス。
【００５９】
（項目４２）
上記第２のＩ／Ｏバンクと同一である第１の複数のＩ／Ｏバンクをさらに備え、
上記インターフェースのセットの少なくとも一部は、該第２のＩ／Ｏバンクおよび該第１の複数のＩ／Ｏバンクのうちの少なくとも１つを使用して効率的にインプリメントされ得る、項目４０に記載のプログラマブルデバイス。
【００６０】
（項目４３）
上記インターフェースのセットがメモリインターフェースを含む、項目４０に記載のプログラマブルデバイス。
【００６１】
（項目４４）
上記インターフェースのセットがバスインターフェースを含む、項目４０に記載のプログラマブルデバイス。
【００６２】
（項目４５）
上記インターフェースのセットが汎用デジタル通信インターフェースを含む、項目４０に記載のプログラマブルデバイス。
【００６３】
（項目４６）
プログラマブルデバイスコアと、
第１のタイプの第１の複数のＩ／Ｏバンクと、
第２のタイプの第２の複数のＩ／Ｏバンクであって、該第２のタイプの該Ｉ／Ｏバンクのそれぞれは、該第１のタイプのＩ／Ｏバンクの互換性のある上位集団である、第２のタイプの第２の複数のＩ／Ｏバンクと
を備える、プログラマブルデバイス。
【００６４】
（項目４７）
上記第１のタイプの上記Ｉ／Ｏバンクおよび上記第２のタイプの上記Ｉ／Ｏバンクのそれぞれが、データピンおよびサポートピンを含む、項目４６に記載のプログラマブルデバイス。
【００６５】
（項目４８）
上記第１のタイプの上記複数のＩ／Ｏバンクのそれぞれにおける上記サポートピンの少なくとも一部に対するデータピンの比率は、上記第２のタイプの上記複数のＩ／Ｏバンクのそれぞれにおける上記サポートピンの少なくとも一部に対するデータピンの比率と同じである、項目４７に記載のプログラマブルデバイス。
【００６６】
（項目４９）
上記サポートピンの上記一部が接地ピンを含む、項目４８に記載のプログラマブルデバイス。
【００６７】
（項目５０）
上記サポートピンの上記一部が電力ピンを含む、項目４８に記載のプログラマブルデバイス。
【００６８】
（項目５１）
上記サポートピンの上記一部がクロックピンを含む、項目４８に記載のプログラマブルデバイス。
【００６９】
（項目５２）
上記第１の複数のＩ／Ｏバンクのそれぞれの上記サポートピンの少なくとも一部は、規則的な間隔において、そのそれぞれのＩ／Ｏバンク内にて分布されている、項目４７に記載のプログラマブルデバイス。
【００７０】
（項目５３）
上記第２の複数のＩ／Ｏバンクのそれぞれの上記サポートピンの少なくとも一部は、規則的な間隔において、そのそれぞれのＩ／Ｏバンク内にて分布されている、項目５２に記載のプログラマブルデバイス。
【００７１】
（項目５４）
上記第１の複数のＩ／Ｏバンクおよび上記第２の複数のＩ／Ｏバンクは、同様の性能特性を有する、項目４６に記載のプログラマブルデバイス。
【００７２】
（項目５５）
上記性能特性が信号−雑音比を含む、項目５４に記載のプログラマブルデバイス。
【００７３】
（項目５６）
上記性能特性がクロックスキューを含む、項目５４に記載のプログラマブルデバイス。
【００７４】
（項目５７）
上記第１の複数のＩ／ＯバンクのＩ／Ｏバンクのそれぞれは、プログラマブルデバイスファミリーにおける第２のプログラマブルデバイスのＩ／Ｏバンクと機能的に同一であり、該第２のプログラマブルデバイスは、上記プログラマブルデバイスとは異なる仕様を有する、項目４６に記載のプログラマブルデバイス。
【００７５】
（項目５８）
上記第２の複数のＩ／ＯバンクのＩ／Ｏバンクのそれぞれは、プログラマブルデバイスファミリーにおける第２のプログラマブルデバイスのＩ／Ｏバンクと機能的に同一な部分を含み、該第２のプログラマブルデバイスは、上記プログラマブルデバイスとは異なる仕様を有する、項目４６に記載のプログラマブルデバイス。
【００７６】
（項目５９）
第１の固定数のピンおよび第２の固定数のピンがインターフェースのセットを効率的にインプリメントするように適合されるように、上記第１の複数のＩ／Ｏバンクのそれぞれは、該第１の固定数のピンを有し、上記第２の複数のＩ／Ｏバンクのそれぞれは、該第２の固定数のピンを有する、項目４６に記載のプログラマブルデバイス。
【００７７】
（摘要）
プログラマブルデバイスＩ／Ｏアーキテクチャは、可変数のＩ／Ｏバンクを可能にする。Ｉ／Ｏバンクのそれぞれは、Ｉ／Ｏバンクのタイプである。Ｉ／Ｏバンクのタイプのそれぞれは、固定数のＩ／Ｏピンを有する。同じＩ／ＯバンクのタイプのＩ／Ｏバンクは、同じプログラマブルデバイス内および異なるタイプのプログラマブルデバイス間にて互換性ある。最も大きいサイズのＩ／Ｏバンクのタイプおよび中間サイズのＩ／Ｏバンクのタイプは、より小さいあらゆるＩ／Ｏバンクのタイプの互換性のある上位集団になるように適合される。サポートピンは、Ｉ／Ｏバンクのタイプのそれぞれにおけるデータピン間にて規則的に分布される。同じまたは互換性のあるＩ／Ｏバンクの複数のインスタンスは、プログラマブルデバイスの異なる面からアクセス可能になるように配置される。回路基板のレイアウトを容易にするために、Ｉ／Ｏバンクのそれぞれは、デバイス上の他のＩ／Ｏバンクの反射および／または回転として配置される。
【発明の効果】
【００７８】
本発明により、プログラマブルデバイスアーキテクチャが、可変数のＩ／Ｏピンを有する固定数のＩ／Ｏバンクに通常関連する困難を克服され得る。また、本発明により、プログラマブルデバイスアーキテクチャが、Ｉ／Ｏピンのトータル数に関らず、効率的なＩ／Ｏピン使用が可能になり得る。また、本発明により、プログラマブルデバイスアーキテクチャが、必要とされる再処理の労力を減少させながら、より大きなプログラマブルデバイスに垂直移動を容易にし得る。また、本発明により、Ｉ／Ｏバンクが、前のプログラマブルデバイスアーキテクチャのＩ／Ｏバンクと比較して、改良された性能を有し得る。
【発明を実施するための最良の形態】
【００７９】
以下、図面を参照して本発明を記載する。
【００８０】
図１は、本発明の一実施形態に従ったプログラマブルデバイスおよびＩ／Ｏバンクアーキテクチャ１００を示す。デバイスアーキテクチャ１００は、プログラマブルデバイスコア１０５を含む。プログラマブルデバイスコア１０５は、例えば、プログラマブルデバイス構成要素（例えば、ロジックセル、機能ブロック、メモリユニット、および構成可能スイッチ回路）を含む。
【００８１】
デバイスアーキテクチャ１００は、複数のＩ／Ｏバンク（例えば、Ｉ／Ｏバンク１０７、１０９、１１１、１１３、１１５、１１７、１１９、１２１、１２３、および１２５）を含む。一実施形態において、デバイスアーキテクチャ１００は、任意の数のＩ／Ｏバンクを許容する。
【００８２】
一実施形態において、複数のＩ／Ｏバンクは、限定数のＩ／Ｏバンクのタイプに帰属する。例えば、Ｉ／Ｏバンク１０７、１１１、１１３、１１５、１１７、１２１、１２３、および１２５は、タイプＡのＩ／Ｏバンクである。Ｉ／Ｏバンク１０９および１１９は、Ｉ／ＯバンクタイプＢに帰属する。それぞれのＩ／Ｏバンクタイプは、Ｉ／Ｏピンの数と、それを構成するＩ／Ｏバンクの他の属性とを特定する。例えば、タイプＡのＩ／Ｏバンクは、６０個のＩ／Ｏピンを有し得、タイプＢのＩ／Ｏバンクは３６個のＩ／Ｏピンを有し得る。Ｉ／Ｏバンクタイプの数は２つのタイプに限定されず、デバイスアーキテクチャ１００の多くの共通のインプリメンテーションは、４つ以上の異なるＩ／Ｏタイプを含み得る。
【００８３】
それぞれのＩ／Ｏバンクタイプに対するＩ／Ｏピンの数は、Ｉ／Ｏバンクによってインプリメントされる共通のインターフェースタイプに基づいて特定され得る。必要に応じて、２つ以上のＩ／Ｏバンクは、単一のインターフェースをインプリメントするように統合され得る。表１は、バンクにおいて利用可能であるＩ／Ｏピンの数に基づいて、いくつかの共通の標準インターフェースをインプリメントするために必要とされるＩ／Ｏバンクの数をリストアップする。それらのインターフェースは、例示の目的のために提供され、他のインターフェースは、メモリインターフェース、バスインターフェース、および汎用性デジタル通信インターフェースを含む、一つ以上のＩ／Ｏバンクを用いてインプリメントされ得る。表１および同様の表は、デバイスアーキテクチャ１００に対する、予想されたインターフェースの用途に基づいて、それぞれのＩ／Ｏバンクタイプに対するＩ／Ｏピンの最適数を選択するのに役立つように用いられ得る。
【００８４】
【表１−１】
0004621215.tif 000002
【００８５】
【表１−２】
0004621215.tif 000003
さらに、Ｉ／Ｏピンの効率は、それぞれのＩ／ＯバンクタイプにおけるＩ／Ｏピンの数に基づいて決定され得る。Ｉ／Ｏピンの効率は、これらのＩ／Ｏバンクにおいて利用可能であるＩ／Ｏピンの全体数と比較した、インターフェースをインプリメントするために一つ以上のＩ／Ｏバンクにおいて用いられるＩ／Ｏピンの数である。Ｉ／Ｏバンクタイプの数およびそれぞれのＩ／ＯバンクタイプにおけるＩ／Ｏピンの数は、デバイスアーキテクチャ１００の予想されるインターフェースの用途に対する、Ｉ／Ｏバンクピンの効率を最大化するように選択され得る。表２は、それぞれ３６個のＩ／Ｏピン、５４個のＩ／Ｏピンを有する２つのＩ／Ｏバンクタイプに対する例示的なＩ／Ｏピンの効率の決定を示す。
【００８６】
【表２】
0004621215.tif 000004
表２の例において、それぞれの例示的なインターフェースタイプは、Ｉ／Ｏバンクタイプのうちの少なくとも一つにおける、比較的高いＩ／Ｏピン効率を有してインプリメントされ得る。例えば、３６個のＩ／ＯピンのＩ／Ｏバンク２つを有してインプリメントされるＰＣＩ−３２インターフェースは、７１％のＩ／Ｏピン効率を有し、その一方で、５４個のＩ／ＯピンのＩ／Ｏバンクを有してインプリメントされるＰＣＩ−３２インターフェースは、９４％のＩ／Ｏピン効率を有する。
【００８７】
一実施形態において、同様のＩ／ＯバンクタイプのＩ／Ｏバンクは、特定のデバイス内のそれらの位置とは無関係に、同様の属性および性能を有する。例えば、双方ともにタイプＢであるＩ／Ｏバンク１０９および１１９は、同様の数のＩ／Ｏピン、電力および接地特性、信号雑音比、反射特性、タイミング特性、およびクロックスキューを有し得る。同様のタイプを有するＩ／Ｏバンクの類似性のために、設計者は、同様のタイプの異なるＩ／Ｏバンクを交互に利用することができ、回路基板のレイアウトにおいて、さらなる柔軟性を提供する。
【００８８】
このモジュール式Ｉ／Ｏバンクアーキテクチャは、３つ以上のＩ／Ｏバンクタイプを含むように拡張され得る。例えば、プログラマブルデバイスのファミリーは、例えば３、４、５またはそれ以上の異なるタイプのＩ／Ｏバンクなどといった、任意の数のＩ／Ｏバンクタイプを含む。このデバイスファミリー内のそれぞれのデバイスは、一つ以上のＩ／Ｏバンクタイプのうちの任意の数のＩ／Ｏバンクを有し得る。例えば、プログラマブルデバイスファミリーにおける第１のデバイスは、タイプＡの１６個のＩ／Ｏバンクを含み得、プログラマブルデバイスファミリーにおける第２のデバイスは、タイプＢの１６個のＩ／Ｏバンクを含み得、プログラマブルデバイスファミリーにおける第３のデバイスは、タイプＢの１６個のＩ／ＯバンクおよびタイプＣの８個のＩ／Ｏバンクを含み得る。
【００８９】
さらなる実施形態において、同様のタイプのＩ／Ｏバンクは、同様のデバイスファミリー内における異なるデバイスに対して同様の属性を有し、垂直移動を容易にする。図２は、本発明の一実施形態に従った、プログラマブルデバイスのファミリー２００を示す。デバイスファミリー２００は、プログラマブルデバイス２０５、２１０、および２７５を含む。プログラマブルデバイス２０５は、プログラマブルデバイスコア２１５を含み、そのプログラマブルデバイスコアは、プログラマブルデバイス構成要素（例えば、ロジックセル、機能ブロック、メモリユニット、および構成可能スイッチ回路）を含む。プログラマブルデバイス２０５は、タイプＡと呼ばれる第１のＩ／Ｏバンクタイプの、２つのＩ／Ｏバンク２２０および２２５、ならびに、タイプＢと呼ばれる第２のＩ／Ｏバンクタイプの１つのＩ／Ｏバンク２３０を含む。
【００９０】
同様に、プログラマブルデバイス２１０は、プログラマブルデバイスコア２３５と、タイプＡの２つのＩ／Ｏバンク２４０および２５５と、タイプＣと呼ばれる第３のＩ／Ｏバンクタイプの１つのＩ／Ｏバンク２５０とを含む。プログラマブルデバイス２７５は、プログラマブルデバイスコア２８０と、タイプＡのＩ／Ｏバンク２８５と、タイプＣのＩ／Ｏバンク２９５と、タイプＤのＩ／Ｏバンク２９０とを含む。
【００９１】
デバイスファミリー２００の一実施形態において、同様のタイプのＩ／Ｏバンクは、同様のＩ／Ｏピン数、電力および接地特性、信号雑音比、反射およびインピーダンス特性、タイミング特性、およびクロックスキューを有する。例えば、プログラマブルデバイス２０５におけるＩ／Ｏバンク２２０、プログラマブルデバイス２１０におけるＩ／Ｏバンク２４０、および、プログラマブルデバイス２７５におけるＩ／Ｏバンク２８５は、同様の特性を有する。したがって、Ｉ／Ｏバンク２２０を用い、かつプログラマブルデバイスに対して初期にターゲットされた設計は、プログラマブルデバイス２１０およびそれに対応するＩ／Ｏバンク２４０に移動され得るか、または、最小の再処理の労力で、プログラマブルデバイス２７５およびそれに対応するＩ／Ｏバンク２８５に移動され得る。
【００９２】
さらなる実施形態において、異なるタイプのＩ／Ｏバンクもまた互換性があり得る。例えば、タイプＣのＩ／Ｏバンクは、タイプＡのＩ／Ｏバンクの上位集団であり得る。本実施形態において、Ｉ／Ｏバンク２５０は、Ｉ／Ｏバンク２２５よりも多くのＩ／Ｏピンを有し得る。しかしながら、Ｉ／Ｏバンク２５０のＩ／Ｏピンの一部は、Ｉ／Ｏバンク２２５のＩ／Ｏピンと互換性がある。さらなる実施形態において、２つ以上のＩ／Ｏバンクタイプの他の特性（例えば、電力、電圧、接地、インピーダンス、信号雑音比、タイミング特性、クロックスキュー、およびＩ／Ｏピンの数を除いた任意の他の属性）は同様である。したがって、バンク２２５を用いて、かつプログラマブルデバイス２０５に対して初期にターゲットされた設計は、プログラマブルデバイス２１０と、それよりもさらに大きく互換性のあるＩ／Ｏバンク２５０とに移動され得る。同様に、タイプＡのＩ／Ｏバンクは、プログラマブルデバイス２０５のＩ／Ｏバンク２３０を用いた設計が、プログラマブルデバイス２１０の、より大きく互換性のあるＩ／Ｏバンク２４５に移動され得るように、タイプＢのＩ／Ｏバンク（例えば、例えばバンク２３０）の互換性のある上位集団であり得る。
【００９３】
図３は、本発明の一実施形態に従ったＩ／Ｏバンク間におけるＩ／Ｏピン互換性を示す。Ｉ／Ｏバンクタイプ３０５、３１０、３１５に対するＩ／Ｏピンの機能である。Ｉ／Ｏバンクタイプ３０５は、データ信号、電力、および接地接続を運ぶための３６個のＩ／Ｏピンを含む。Ｉ／Ｏバンク３０５は、クロック信号または他の接続のために、図３において示されていないさらなるピンを含み得る。
【００９４】
一実施形態において、Ｉ／Ｏピンは、２つまたは４つのピンのグループに配置される。例えば、Ｉ／Ｏバンクタイプ３０５は、４つのデータピンのグループ（例えば、グループ３２０、３２５、および３３０）を含む。Ｉ／Ｏバンクタイプはまた、２つの電力および接地ピンのグループ（例えば、グループ３３５、３３７、３３９、および３４１）を含む。一実施形態において、電力および接地ピンのグループは、Ｉ／Ｏバンク全体を通して、規則的に分布されている。例えば、電力および接地のピンの全てのグループ（例えば、グループ３３５）は、多くて８つのデータピン（例えば、データピングループ３２０および３２５）に隣接している。データピン間における電力および接地ピンのこの分布は、全体の信号雑音比を低減し、Ｉ／ＯバンクタイプにおけるＩ／Ｏピンの全体数に関係なく、一定の信号ノイズ比を維持するのに役立ち、それにより、より大きなＩ／Ｏバンクへの垂直移動が容易になる。
【００９５】
一実施形態において、Ｉ／Ｏバンクタイプ３０５におけるＩ／Ｏピンのそれぞれのグループは、Ｉ／Ｏバンクタイプ３１０における対応するグループ（４８個のＩ／Ｏピンを有している）と、Ｉ／Ｏバンクタイプ３１５における対応するグループ（５４個のＩ／Ｏピン）を有する。例えば、Ｉ／Ｏデータピングループ３３０は、Ｉ／Ｏバンクタイプ３１０におけるデータピングループ３４０と、Ｉ／Ｏバンクタイプ３１５におけるデータピングループ３４５とに対応する。同様に、Ｉ／Ｏバンクタイプ３０５における電力および接地ピングループ３３５は、Ｉ／Ｏバンクタイプ３１０におけるグループ３５０と、Ｉ／Ｏバンクタイプ３１５におけるグループ３５５とに対応する。
【００９６】
上記にて検討されたように、より大きいＩ／Ｏバンクタイプは、互換性を維持するために、より小さいＩ／Ｏバンクタイプの上位集団であり得る。一実施形態において、Ｉ／Ｏバンクタイプ３１０は、その対応する場所において、Ｉ／Ｏバンクタイプ３０５のＩ／Ｏピンの全てを含む。したがって、Ｉ／Ｏバンクタイプ３１０は、Ｉ／Ｏバンクタイプ３０５とピンの互換性を有する。Ｉ／Ｏバンクタイプ３０５を用いてインプリメントされるプログラマブルデバイスの設計は、わずかな処理または処理なしで、Ｉ／Ｏバンクタイプ３１０を用いた異なるデバイスに移動され得る。Ｉ／Ｏバンクタイプ３１０におけるさらなるＩ／Ｏピン（例えば、さらなるＩ／Ｏピン３６０）は、Ｉ／Ｏバンクタイプ３０５との互換性を壊さないように、Ｉ／Ｏバンクの最後尾に追加される。同様に、さらなるＩ／Ｏピン３６０は、Ｉ／Ｏバンクタイプ３１５の最後尾に追加され、このＩ／Ｏバンクタイプを、Ｉ／Ｏバンクタイプ３１０および３０５と互換性を有するようにさせる。
【００９７】
ピンの互換性を維持することに加え、Ｉ／Ｏバンクタイプのサイズが大きくなると、本発明の一実施形態は、プログラマブルデバイス上にモジュール式Ｉ／Ｏバンクを配置して、回路基板のレイアウトにおける柔軟性を増加させる。本実施形態において、同様のタイプ（または異なるがピンの互換性のあるタイプ）のモジュール式Ｉ／Ｏバンクは、回転および反射形態において、プログラマブルデバイスの２つ以上の面の上に配置される。この配置は、そのプログラマブルデバイスを一つ以上の外部デバイスに接続する場合、回路基板のレイアウトにおける柔軟性を提供する。
【００９８】
図５Ａ〜図５Ｆは、本発明の一実施形態に従った例示的なモジュール式Ｉ／Ｏバンクの配置を示す。図５Ａは、プログラマブルデバイス５０３と、外部デバイス５０４（例えば、メモリデバイス、プロセッサ、特定用途向け集積回路、通信デバイス、異なるプログラマブルデバイス、あるいは、プログラマブルデバイスとインターフェース可能な任意の他のタイプのデジタルまたはアナログデバイス）を含む、例示的な回路基板のレイアウト５００を示す。
【００９９】
プログラマブルデバイス５０３は、モジュール式Ｉ／Ｏバンク５０５ａ、５０５ｂ、５０５ｃ、５０５ｄ、５０５ｅ、および５０５ｆを含む。この例において、モジュール式Ｉ／Ｏバンク５０５は、上述のように、同様のバンクタイプである。しかしながら、代替実施形態は、モジュール式Ｉ／Ｏバンク５０５の一部が、モジュール式Ｉ／Ｏバンク５０５の別の部分のピンの互換性を有する上位集団を含むように、モジュール式Ｉ／Ｏバンク５０５の一部に対して、一つ以上の異なるタイプのピンの互換性を有するモジュール式Ｉ／Ｏバンクを利用し得る。
【０１００】
プログラマブルデバイス５０３は、外部デバイス５０５のＩ／Ｏポート５０７とプログラマブルデバイス５０５ａのＩ／Ｏバンク５０５ａとの間におけるバス５０６を介して、外部デバイス５０４に接続される。本例において、Ｉ／Ｏバンク５０５ａのピン１  ５０９ａは、バス５０６を介して、外部デバイス５０４のＩ／Ｏポート５０７のピン１  ５１２に接続される。同様に、Ｉ／Ｏバンク５０５ａのピン３６  ５１１ａは、バス５０６を介して、外部デバイス５０４のＩ／Ｏポート５０７のピン３６  ５１３に接続される。Ｉ／Ｏバンク５０５ａおよびＩ／Ｏポート５０７の他のピンは、同様の方法において、バス５０６を介して接続されているが、分かり易さのために省略してある。
【０１０１】
典型的な回路基板において、バス５０６は、複数の回路基板トレースを含む。バス５０６のレイアウトは、ルーティング、回路基板トレースの長さ、幅、および間隔、ならびに、回路基板の他の部分に対する回路基板トレースの近接性を含むものであるが、バス５０６によって運ばれる信号がタイミング、ノイズ、電圧、ならびに、プログラマブルデバイス５０３および外部デバイス５０５の他の要求を満たすことを確実にするために、注意深く考慮されなければならない。バス５０６は、分かり易さのために直線の接続として、図５Ａ〜図５Ｆにおいて示されているが、通常は、バスのレイアウトは、多くの角、または回路基板の一つ以上の層にわたって屈曲を有する複雑な経路を含み得る。これらのレイアウトを考慮するため、プログラマブルデバイスの先行タイプを含む全体の回路基板のレイアウトに対する変更は、しばしば相当な処理を必要とする。
【０１０２】
本発明の一実施形態は、回転および反射形態において、回路基板のレイアウトにおいて柔軟性を提供するように、そして実質的な処理をすることなく回路基板のレイアウトに対する変更を可能にするように、そのモジュール式Ｉ／Ｏバンクを配置する。Ｉ／Ｏバンク５０５ａは、デバイス５０３の底部に配置されたピン１  ５０９ａと、Ｉ／Ｏバンク５０５ａの上部に配置されたピン３６  ５１１ａとを含む。Ｉ／Ｏバンク５０５ｃは、プログラマブルデバイス５０３上に、Ｉ／Ｏバンク５０５ａの時計回り９０度の回転となるように、配置されている。Ｉ／Ｏバンク５０５ｃにおいて、ピン１  ５０９ｃはＩ／Ｏバンクの左側に位置され、ピン３６  ５１１ｃは、Ｉ／Ｏバンクの右側に位置される。同様に、ピン１  ５０９ｅがＩ／Ｏバンク５０５ｅの上部に位置されていてピン３６  ５１１ｅがＩ／Ｏバンク５０５ｅの底部に位置されるように、Ｉ／Ｏバンク５０５ｅは、プログラマブルデバイス５０３上に、Ｉ／Ｏバンク５０５ａの１８０度回転となるように、配置されている。
【０１０３】
デバイス５０３上における、対応している回転されたＩ／Ｏバンク５０５ｃおよび５０５ｅを有するバンク５０５ａに加えて、デバイス５０３はまた、Ｉ／Ｏバンク５０５ａの反射バージョンを含む。Ｉ／Ｏバンク５０５ａの反射バージョンは、Ｉ／Ｏバンク５０５ａの対称反射である。例えば、Ｉ／Ｏバンク５０５ｂは、Ｉ／Ｏバンク５０５ａの反射バージョンである。Ｉ／Ｏバンク５０５ｂは、Ｉ／Ｏバンク５０５ｂの上部に位置されるピン１  ５０９ｂと、Ｉ／Ｏバンク５０５ｂの底部に位置されるピン３６  ５１１ｂとを含む。これは、Ｉ／Ｏバンク５０５ａの反対であり、Ｉ／Ｏバンク５０５ａの底部に位置されるピン１  ５０９ａとＩ／Ｏバンク５０５ａの上部に位置されるピン３６  ５１１ａとを有する。デバイス５０３はまた、反射されたＩ／Ｏバンク５０５ｄおよび５０５ｆを含み、それらは、Ｉ／Ｏバンク５０５ｂの回転バージョンである。
【０１０４】
Ｉ／Ｏバンク５０５の回転および反射バージョンは、回路基板のレイアウトにおける柔軟性を提供する。いったん、プログラマブルデバイス５０３、外部デバイス５０４、および接続バス５０６の初期のレイアウトが決定されると、外部デバイス５０４および接続バス５０６は、最小の処理労力にて、任意の他のモジュール式Ｉ／Ｏバンク５０５に移動され得る。
【０１０５】
図５Ｂは、プログラマブルデバイス５０３および外部デバイス５０４を含む第２の回路基板のレイアウト５２０を示す。回路基板のレイアウト５２０において、外部デバイス５０４は、バス５０６を介して、プログラマブルデバイス５０３のＩ／Ｏバンク５０５ｃと接続される。Ｉ／Ｏバンク５０５ｃが９０度回転されたＩ／Ｏバンク５０５ａと同一であるので、回路基板のレイアウト５００におけるバス５０６のレイアウトは、９０度回転され得、回路基板のレイアウト５２０において用いられ得る。回路基板のレイアウト５００におけるＩ／Ｏバンク５０５ａに対する外部デバイス５０４の位置が回路基板のレイアウト５２０におけるＩ／Ｏバンク５０５ｃに対する外部デバイス５０４の位置と同じであるとすると、回路基板のレイアウト５００を基板のレイアウト５２０へと変更するのに必要とされる労力は最小となる。
【０１０６】
同様に、図５Ｃは、プログラマブルデバイス５０３および外部デバイス５０４を含む第３の回路基板のレイアウト５３０を示す。回路基板のレイアウト５３０において、外部デバイス５０４は、バス５０６を介して、プログラマブルデバイス５０３のＩ／Ｏバンク５０５ｅと接続される。Ｉ／Ｏバンク５０５ｅは、１８０度回転されたＩ／Ｏバンク５０５ａと同一であるので、回路基板のレイアウト５００におけるバス５０６のレイアウトは、１８０度回転され得、回路基板のレイアウト５３０において用いられ得る。
【０１０７】
図５Ｄは、プログラマブルデバイス５０３および外部デバイス５０４を含む第４の回路基板のレイアウト５４０を示す。回路基板のレイアウト５４０において、外部デバイス５０４は、バス５０６を介して、プログラマブルデバイス５０３のＩ／Ｏバンク５０５ｂに接続される。Ｉ／Ｏバンク５０５ｃがＩ／Ｏバンク５０５ａの反射であるので、回路基板のレイアウト５００におけるバス５０６のレイアウトは、反射され得るか、または、上下を逆にされ得、また、回路基板のレイアウト５４０において用いられ得る。
【０１０８】
図５Ｅは、プログラマブルデバイス５０３および外部デバイス５０４を含む第５の回路基板のレイアウト５５０を示す。回路基板のレイアウト５５０において、外部デバイス５０４は、バス５０６を介して、プログラマブルデバイス５０３のＩ／Ｏバンク５０５ｆと接続される。Ｉ／Ｏバンク５０５ｆがＩ／Ｏバンク５０５ｂの１８０度回転されたバージョンであるので、回路基板のレイアウト５００におけるバス５０６のレイアウトは、デバイス５０３の中央周辺にて反射され得、回路基板のレイアウト５５０において用いられ得る。
【０１０９】
図５Ｆは、プログラマブルデバイス５０３および外部デバイス５０４を含む、第６の回路基板のレイアウト５６０を示す。回路基板のレイアウト５６０において、外部デバイス５０４は、バス５０６を介して、プログラマブルデバイス５０３のＩ／Ｏバンク５０５ｄと接続される。Ｉ／Ｏバンク５０５ｄがＩ／Ｏバンク５０５ｂの９０度回転されたバージョンであるので、回路基板５００におけるバス５０６のレイアウトは、９０度回転され得、デバイス５０３の中央周辺にて反射され得、また、回路基板のレイアウト５６０において用いられ得る。
【０１１０】
図４は、本発明の一実施形態の使用に対して適しているプログラマブルデバイス４００を示す。プログラマブルデバイス４００は、複数のロジックアレイブロック（ＬＡＢ）（例えば、ＬＡＢ４０５、４１０、４１５）を含む。それぞれのＬＡＢは、ロジック演算を実行するためにロジックゲートおよび／またはルックアップテーブルを用いる複数のプログラマブルロジックセルと、データを格納および引き出すためのレジスタとを含む。ＬＡＢ４０５は、詳しくは、ロジックセル４２０、４２１、４２２、４２３、４２４、４２５、４２６、および４２７を示す。ロジックセルは、分かり易さのために、図４において、他のＬＡＢから省略されている。デバイス４００のＬＡＢは、行４３０、４３５、４４０、４４５、および４５０に配置されている。一実施形態において、行内におけるＬＡＢ内におけるロジックセルの配置、およびＬＡＢの配置は、プログラマブルスイッチ回路の構成可能な接続の階層的システムを提供し、その階層的システムでは、ＬＡＢ内のロジックセル間の接続、同じ行における異なるＬＡＢ内のセル間の接続、および、異なる行におけるＬＡＢ内のセル間の接続は、次第にさらなるリソースを必要とし、非効率的に動作する。
【０１１１】
ＬＡＢに配置されたロジックセルに加えて、プログラマブルデバイス４００はまた、特殊機能ブロック（例えば、乗算・累算ブロック（ＭＡＣ）４５５およびランダムアクセスメモリブロック（ＲＡＭ）４６０）を含む。少なくとも一部は、構成メモリ４７５に格納された構成データによって、プログラマブルデバイスの構成が特定される。構成データは、ロジックセルの機能を規定するルックアップテーブルに対する値；入力、出力、ロジックセル、および機能ブロック間における信号をルーティングするために構成可能スイッチ回路によって用いられるマルチプレクサおよび他のスイッチデバイスに対する制御信号の値；および、プログラマブルデバイスの構成の他の局面（例えば、プログラマブルデバイス、ならびに、多様な機能ブロックおよびロジックセルの動作のモード）を特定する値、を含み得る。構成メモリ４７５は、図４においてはモノリシックのユニットとして示されているが、一部のプログラマブルデバイスにおいて、構成メモリ４７５は、プログラマブルデバイス全体に散りばめられている。これらのタイプのプログラマブルデバイスにおいて、構成メモリの部分は、プログラマブルデバイスの構成可能スイッチ回路、ロジックセル、および機能ブロック内に存在し得る。
【０１１２】
分かり易さのために、図４に示されたプログラマブルデバイス４００の一部は、少数のロジックセル、ＬＡＢ、および機能ブロックのみを含む。典型的なプログラマブルデバイスは、無数のこれらの要素を含む。
【０１１３】
さらなる実施形態は、添付の文書を読解した後に、当業者によって想起され得る。例えば、本発明はプログラマブルデバイスに関連して検討されているが、標準の、または構造化ＡＳＩＣ、ゲートアレイ、および汎用デジタルロジックデバイスにも等しく適用可能である。他の実施形態において、上述にて開示された発明の組み合わせまたは小結合もまた有利になされ得る。アーキテクチャのブロック図およびフローチャートは、理解を容易にするためにグループ化されている。しかしながら、ブロックの組み合わせ、新しいブロックの追加、ブロックの再配置などは、本発明の代替実施形態において考慮されることは理解されるべきである。
【０１１４】
従って、本明細書および図面は、限定的な意味ではなく、例示的な意味において考えられるべきである。しかしながら、様々な修正および変更が、請求の範囲において説明されるような本発明のより広い精神および範囲から逸脱することなくなされ得ることは明らかである。
【０１１５】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。
【図面の簡単な説明】
【０１１６】
【図１】本発明の一実施形態にしたがった、プログラマブルデバイスおよびＩ／Ｏバンクアーキテクチャを示す。
【図２】本発明の一実施形態にしたがった、プログラマブルデバイスのファミリーを示す。
【図３】本発明の一実施形態にしたがった、Ｉ／Ｏバンク間におけるＩ／Ｏピンの互換性を示す。
【図４】本発明の一実施形態の使用に適しているプログラマブルデバイスを示す。
【図５Ａ】本発明の一実施形態にしたがった、例示的なモジュール式Ｉ／Ｏバンク配置を示す。
【図５Ｂ】本発明の一実施形態にしたがった、例示的なモジュール式Ｉ／Ｏバンク配置を示す。
【図５Ｃ】本発明の一実施形態にしたがった、例示的なモジュール式Ｉ／Ｏバンク配置を示す。
【図５Ｄ】本発明の一実施形態にしたがった、例示的なモジュール式Ｉ／Ｏバンク配置を示す。
【図５Ｅ】本発明の一実施形態にしたがった、例示的なモジュール式Ｉ／Ｏバンク配置を示す。
【図５Ｆ】本発明の一実施形態にしたがった、例示的なモジュール式Ｉ／Ｏバンク配置を示す。
【符号の説明】
【０１１７】
１００  デバイスアーキテクチャ
１０５  プログラマブルデバイスコア
１０７〜１２５  バンク
【図１】
0004621215.tif 000005
【図２】
0004621215.tif 000006
【図３】
0004621215.tif 000007
【図４】
0004621215.tif 000008
【図５Ａ】
0004621215.tif 000009
【図５Ｂ】
0004621215.tif 000010
【図５Ｃ】
0004621215.tif 000011
【図５Ｄ】
0004621215.tif 000012
【図５Ｅ】
0004621215.tif 000013
【図５Ｆ】
0004621215.tif 000014