(57)【特許請求の範囲】
【請求項１】
フィールドプログラマブルゲートアレイ（以下「ＦＰＧＡ」という。）を有する集積回路において、該ＦＰＧＡは、
（ａ）それぞれプログラマブル機能ユニット（以下「ＰＦＵ」という。）を含むプログラマブル論理セル（以下「ＰＬＣ」という。）のアレイと、
（ｂ）ＰＬＣのアレイを包囲するプログラマブル入出力セル（以下「ＰＩＣ」という。）のリングと、
（ｃ）ＦＰＧＡ上を第１方向に走る、スパインとして用いられる１つ以上の配線と、
（ｄ）ＦＰＧＡ上を、第１方向に直交する第２方向に走る、ブランチとして用いられる２つ以上の配線とを有し、
各スパインは、全てのＰＬＣをその行／列に横切って走り、
各ブランチは、全てのＰＬＣをその行／列に横切って走り、
各スパインは、２以上のブランチをプログラマブルに直接ドライブするように構成され、その中で、いかなる１つのスパインによって直接ドライブされる２つのブランチも隣接する行／列になく、
各ブランチは、該ブランチに平行な少なくとも２つの行／列において、２以上のＰＦＵをプログラマブルに直接ドライブするように構成されることを特徴とする集積回路。
【請求項２】
各ＰＩＣはＰＦＵを含み、
各ブランチは、ＰＩＣのＰＦＵにプログラマブルに直接にドライブすることを特徴とする請求項１に記載の集積回路。
【請求項３】
前記スパインは、前記ブランチに対する少なくとも２つの行／列において、ＰＩＣからの入出力ピンによってプログラマブルに直接にドライブされることを特徴とする請求項１に記載の集積回路。
【請求項４】
ＦＰＧＡの各ＰＬＣの行／列は、ＰＩＣからの入出力ピンによってプログラマブルに直接にドライブされる少なくとも１つのスパインを有することを特徴とする請求項１に記載の集積回路。
【請求項５】
各スパインは、２個の隣接するＰＩＣからの入出力ピンによってドライブされることを特徴とする請求項３に記載の集積回路。
【請求項６】
ＦＰＧＡには行／列あたりただ１つのスパインがあり、
各スパインは、ＦＰＧＡのいずれか一方の端からドライブされることを特徴とする請求項３に記載の集積回路。
【請求項７】
ＦＰＧＡの各行／列は、１以上のブランチを有することを特徴とする請求項１に記載の集積回路。
【請求項８】
前記スパインは、ＦＰＧＡで生成される内部信号によってプログラマブルにドライブされることを特徴とする請求項１に記載の集積回路。
【請求項９】
前記内部信号は、ＰＩＣ内のスパイン上にのみドライブされ、これにより、該スパインは該ＰＩＣからドライブされることが可能であることを特徴とする請求項８に記載の集積回路。
【請求項１０】
前記スパインは、ＰＩＣからの入出力ピンによってプログラマブルに直接にドライブされることを特徴とする請求項９に記載の集積回路。
【請求項１１】
各スパインは、１つおきの行／列のブランチにのみプログラマブルに直接に接続され、しかも、各ＰＦＵはグローバル信号を受け取ることが可能であることを特徴とする請求項１に記載の集積回路。
【請求項１２】
前記スパインおよびブランチは、クロック信号をＰＦＵに分配するために用いられることを特徴とする請求項１に記載の集積回路。
【請求項１３】
ＰＦＵは、前記スパインおよびブランチによって分配されるクロック信号によってクロックされるレジスタを有することを特徴とする請求項１２に記載の集積回路。
【請求項１４】
与えられた１個のブランチが、ちょうど２個の行／列のＰＦＵにプログラマブルに接続可能であることを特徴とする請求項１に記載の集積回路。
【請求項１５】
ＰＬＣ内の各ＰＦＵは、（１）該ＰＬＣのローカル水平ブランチと、（２）垂直方向に隣接するＰＬＣのローカル水平ブランチと、にプログラマブルに接続されることを特徴とする請求項１４に記載の集積回路。
【請求項１６】
ＰＬＣ内の各ＰＦＵは、（１）該ＰＬＣのローカル垂直ブランチと、（２）水平方向に隣接するＰＬＣのローカル垂直ブランチと、にプログラマブルに接続されることを特徴とする請求項１４に記載の集積回路。
【請求項１７】
ＰＬＣ内の各ＰＦＵは、（１）該ＰＬＣのローカル水平ブランチと、（２）垂直方向に隣接するＰＬＣのローカル水平ブランチと、（３）該ＰＬＣのローカル垂直ブランチと、（４）水平方向に隣接するＰＬＣのローカル垂直ブランチと、にプログラマブルに接続されることを特徴とする請求項１４に記載の集積回路。
【請求項１８】
前記ブランチは、前記スパインによって直接にドライブされないときに、他の一般的なルーティングに用いられるための他のプログラマブル接続を有することを特徴とする請求項１に記載の集積回路。
【請求項１９】
前記スパインは一方向性であることを特徴とする請求項１に記載の集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路に関し、特に、フィールドプログラマブルゲートアレイに関する。
【０００２】
【従来の技術】
図１は、プログラマブル入出力（Ｉ／Ｏ）セル（ＰＩＣ(programmable input/output cell)）１０４のリングによって包囲されたプログラマブル論理セル（ＰＬＣ(programmable logic cell)）１０２のアレイからなる従来のフィールドプログラマブルゲートアレイ（ＦＰＧＡ(field programmable gate array)）１００のブロック図である。ＰＩＣは、ＰＬＣアレイに出入りするデータのフローを処理し、ＰＬＣアレイは、所望の演算のセットを実行するようにユーザによってプログラムされることが可能である。
【０００３】
図２は、図１の従来のＦＰＧＡ１００の部分詳細図である。図２は、ＰＬＣアレイ内の２個の隣接する列に対応する４個のＰＩＣを示す。ＰＩＣ２０２およびＰＩＣ２０４はそれぞれ、ＰＬＣアレイ内の列ｉの上および下のＰＩＣであり、ＰＩＣ２０６およびＰＩＣ２０８はそれぞれ、ＰＬＣアレイ内の列ｉ＋１の上および下のＰＩＣである。各ＰＩＣは、４：１ＭＵＸ（例えば２１２）の入力に接続された４個のパッド（例えば２１０）を有する。各ＰＩＣごとに、ＭＵＸの出力は、そのＰＩＣから水平ブランチ（例えば２１６）へグローバル信号を運ぶグローバル信号垂直スパイン(spine)（例えば２１４）に接続される。水平ブランチは、ＰＬＣアレイ内の行に対応し、個々のＰＬＣ（図２には図示せず）へのプログラマブルな接続を提供する。同様に、図２には表されていないが、ＦＰＧＡ１００には、ＦＰＧＡ１００の垂直スパインおよび水平ブランチについて図２に示されているのと同様に、垂直ブランチにプログラマブルに接続された水平スパインをドライブする左および右のＰＩＣがある。水平および垂直スパインと、対応する垂直および水平ブランチは、任意のＰＩＣの任意のパッドから任意のＰＬＣにアクセスするＦＰＧＡ１００のフレキシビリティを提供する。
【０００４】
【発明が解決しようとする課題】
従来のＦＰＧＡ設計によれば、各スパイン２１４は一方向性である。例えば、スパイン２１４は、ＰＩＣ２０２から下方にのみドライブすることが可能であり、スパイン２１８はＰＩＣ２０４から上方にのみドライブすることが可能である。各ＰＩＣから各ブランチへのアクセスを可能にするため、各垂直スパインは各水平ブランチに直接にプログラマブルに接続され、各水平スパインは各垂直ブランチに直接にプログラムマブルに接続される。各プログラマブル接続はスパインにキャパシタンスを追加し、これは、ＰＩＣがＰＬＣにグローバル信号を送信することができる速度を遅くする。さらに、従来のＦＰＧＡ設計では、一度に、与えられたＰＬＣの列に対応する２つのスパインのうちの一方しか、与えられたブランチをドライブすることができない。すなわち、ＰＩＣ２０２がＦＰＧＡ１００内の列ｉの下方スパイン２１４をドライブし、スパイン２１４がブランチ２１６をドライブしているときには、ＰＩＣ２０４は、上方スパイン２１８をドライブすることができるが、スパイン２１８はブランチ２１６をドライブすることができない。
【０００５】
【課題を解決するための手段】
一実施例では、本発明は、フィールドプログラマブルゲートアレイを有する集積回路である。ＦＰＧＡは、（ａ）ＰＬＣのアレイ（各ＰＬＣはプログラマブル機能ユニット（ＰＦＵ(programmable function unit)）を有する）と、（ｂ）ＰＬＣのアレイを包囲するＰＩＣのリングと、（ｃ）ＦＰＧＡ上を第１方向に走る１つ以上のスパインと、（ｄ）ＦＰＧＡ上を、第１方向に直交する第２方向に走る１つ以上のブランチとを有する。１つ以上のスパインは、１つ以上のブランチをプログラマブルに直接にドライブするように設定され、１つ以上のブランチは、ＰＦＵにプログラマブルに直接に接続するように設定され、各ブランチは、アレイの少なくとも２つの行／列において、２個以上のＰＦＵによって共有される。
【０００６】
【発明の実施の形態】
本発明は一般にＦＰＧＡが信号を分配する方法に関し、例えば、ＦＰＧＡにおいてユーザＰＩＣからセルへクロック信号を、エリアおよびグローバルルーティングにおけるスキューおよびオーバーヘッドを小さくして、高速に伝送する方法に関する。各ＰＩＣにおいて、パッドからの信号はプログラマブルにスパインに接続され、スパインは、一般に１つおきの直交ブランチへのプログラマブル接続を有する。ＦＰＧＡアレイ内の各セルは、そのセルを通るブランチへのプログラマブル接続を有する。プログラマブルなスパイン−ブランチ間接続の半数（例えば、行／列１つおきに）使用するとともに、隣どうし（例えば、隣接するセルの行／列）の間のプログラマブル接続を使用することによって、グローバル信号を受け取る最も近いセルと最も遠いセルの間の全スキューは低減される。各スパイン上のプログラマブル接続の数を削減することにより、スパイン上の容量性負荷は低減され、グローバル信号の分配は高速になる。一部の実施例では、１つおきの行／列のみが、ドライブされるクロックブランチを含むため、使用されるルーティングリソースの量およびパワー消費はいずれも低減される。
【０００７】
本発明の実施例によるＦＰＧＡは、いくつかの固有の特徴を有する。本発明によるＦＰＧＡは、２個の隣接するプログラマブルＩ／Ｏセルのすべてのパッドから単一のスパインへのプログラマブル接続性を有する。本発明のＦＰＧＡは、２個の隣接するＰＩＣのルーティングリソースから単一のスパインへのプログラマブル接続を有するため、本発明を用いて、内部で生成された信号をルーティングすることが可能となる。本発明のＦＰＧＡのスパインは、２個の隣接するＰＩＣのパッドおよびローカルルーティングリソースの両方からのプログラマブル接続性を有する。本発明のＦＰＧＡは、スパイン上の容量性負荷を低減するために、隣接するセル間に、グローバル信号の共有をローカルにサポートする専用の高速なプログラマブル接続を有する。本発明のＦＰＧＡは、各行／列に単一の方向性グローバル信号スパインを有し、そのアーキテクチャは、すべてのプログラマブルＩ／Ｏセルパッドからの完全なグローバル信号分配をサポートする。
【０００８】
図３は、本発明の一実施例によるＦＰＧＡ３００の部分図である。ＦＰＧＡ３００の全体的なブロックレベルアーキテクチャは、図１のＦＰＧＡ１００と同一である。しかし、図３に示されるように、ＦＰＧＡ３００の詳細は図２に示されるＦＰＧＡ１００のものとは異なる。具体的には、ＦＰＧＡ３００では、隣接するＰＩＣの各対は単一のスパインをドライブするようにプログラマブルに接続される。例えば、ＰＩＣ３０２とＰＩＣ３０６は、下方スパイン３１４（ＦＰＧＡ３００内の列ｉに対応する）をドライブするようにプログラマブルに接続され、ＰＩＣ３０４とＰＩＣ３０８は、上方スパイン３１８（ＦＰＧＡ３００内の列ｉ＋１に対応する）をドライブするようにプログラマブルに接続される。特に、ＰＩＣ３０２のパッド（例えば３１０）とＰＩＣ３０６のパッドはすべて、ＰＩＣ３０２内にある単一のＭＵＸ３１２に接続される。さらに、ＰＩＣ３０２およびＰＩＣ３０６のそれぞれの内部ルーティングリソースからの信号もまたＭＵＸ３１２に入力される。１０：１ＭＵＸ３１２の出力はスパイン３１４をドライブするように接続される。
【０００９】
本発明によるＦＰＧＡ３００と図２の従来のＦＰＧＡ１００との間のもう１つの相違点は、ＦＰＧＡ３００では、各スパインが直交ブランチの半数のみに直接にプログラマブルに接続され、隣接するスパインは相異なるブランチに接続されることである。例えば、図３に示されるように、スパイン３１４は、ブランチｊ−２、ｊ、およびｊ＋２に直接にプログラマブルに接続され、スパイン３１８は、ブランチｊ−１、ｊ＋１、およびｊ＋３に直接にプログラマブルに接続される。図３は、スパインが１つおきのブランチにプログラマブルに接続されることを示しているが、一般に、スパインは、ブランチのサブセットにプログラマブルに接続される。ブランチは、ＦＰＧＡの一端のＰＩＣから対応する反対側の端のＰＩＣまで、アレイの幅／高さ全体にわたって走る。
【００１０】
図４は、図３のＦＰＧＡ内の水平および垂直の両方のブランチに対するブランチ−セル間接続の概略図である。各セルは、対応する水平および垂直のブランチのそれぞれへのプログラマブル接続を有する。例えば、セル４０２は、水平ブランチｊへのプログラマブル接続４１０および垂直ブランチｉへのプログラマブル接続４１２を有する。同様に、セル４０４は、ブランチｊ＋１およびｉのそれぞれへのプログラマブル接続４１４および４１２を有し、セル４０６は、ブランチｊおよびｉ＋１のそれぞれへのプログラマブル接続４１０および４１６を有し、セル４０８は、ブランチｊ＋１およびｉ＋１のそれぞれへのプログラマブル接続４１４および４１６を有する。
【００１１】
さらに、各セルは、水平ブランチｊおよびｊ＋１ならびに垂直ブランチｉおよびｉ＋１のうちの１つ以上から入力を受け取るようにプログラマブルに接続される４：１ＭＵＸ４１８を有する。すなわち、ＭＵＸ４１８は、２つのグローバル信号をセル内から受け取り、２つのグローバル信号を隣接セルから受け取ることが可能である。例えば、セル４０２のＭＵＸ４１８が２つのグローバル信号をセル４０２内のノード４１０および４１２から受け取り、１つのグローバル信号をセル４０６のノード４１６から受け取り、１つのグローバル信号をセル４０４のノード４１４から受け取るように、ＦＰＧＡ３００をプログラムすることができる。ＭＵＸ４１８の出力は、セル内の内部プログラマブルロジック（図示せず。例えば、プログラマブル機能ユニット（ＰＦＵ））に接続される。本発明の他の実施例として、ＭＵＸ４１８のマルチプレクサ入力の数を拡張して、１つ以上のローカル信号がプログラマブルに選択されＰＦＵに分配されるようにすることが可能である。
【００１２】
各セルは、その２つのローカルブランチから隣接セルへ２つのグローバル信号を送る。ローカル垂直ブランチからのプログラマブル接続は水平方向の隣に送られ、ローカル水平ブランチからのプログラマブル接続は垂直方向の隣に送られる。例えば、セル４０２は、ノード４１０で受信したグローバル信号をブランチｊからセル４０４へ送るとともに、ノード４１２で受信したグローバル信号をブランチｉからセル４０６へ送る。こうして、各２×２サブアレイ内の２個の水平ブランチのうちの一方のみが、与えられた垂直スパインに直接にプログラマブルに接続され、２個の垂直ブランチのうちの一方のみが、水平スパインに直接にプログラマブルに接続されるだけであるにもかかわらず、本発明の接続方式によれば、アレイ内の任意のＰＩＣの任意のパッドが、任意のこのような２×２サブアレイ内の４個のセルのうちのいずれにもアクセス可能である。
【００１３】
このように、本発明の実施例によれば、図３および図４のＦＰＧＡ３００のようなＦＰＧＡにおいて、各グローバル信号スパインは、相異なる２個のＰＩＣのいずれのＰＩＣ内のいずれのパッドからも、あるいは、いずれのＰＩＣのローカルルーティングリソースからもドライブされることが可能となる。各スパインからは、ブランチのサブセット（例えば１つおきの行／列）へのプログラマブル接続がある。１つおきの行／列にプログラマブル接続を設けることにより、各スパインに対する容量性負荷は半減し、それにより、グローバル信号分配は高速になる。
【００１４】
隣接するセル間のグローバル信号共有は、ルーティング輻輳も低減する。例えば、各ブランチは、２×２サブアレイ内の４個のセルすべてをドライブすることができる。ＰＩＣの対が個々のスパインをドライブすることができるようにすることにより、ＦＰＧＡ内のスパインの数は半減するにもかかわらず、各ＰＩＣは、グローバル信号をドライブするプログラム可能性を有する。スパインの数を半分にすることにより、スパインのためのルーティングエリアが縮小し、ＦＰＧＡ上のより多くのエリアが他のリソースのために残される。また、あらゆるセルは、１つおきの行／列の信号ブランチのみをドライブすればアクセスすることができるため、必要な信号ブランチの数も半数になる。隣どうしでグローバル信号を共有することは、ＦＰＧＡのルーティング輻輳を低減する。従って、本発明によれば、低いルーティングオーバーヘッドで、高速な、低スキューのグローバル信号分配が実現される。
【００１５】
例えば、本発明は、システムクロックを送信するために使用可能である。隣接するＰＩＣの対における８個のパッドのうちのいずれか１つが、行または列におけるクロックスパインをドライブすることができる。クロック遅延およびスキューは、ＰＩＣ対ごとに１個だけのクロックバッファを設け、１つおきの行／列でのみクロックブランチを用いることによって最小化され、またこれにより、必要なブランチドライバの数も低減される。各対ごとのクロックスパインは、対をなす各ＰＩＣ内の４個のＰＩＣスイッチングセグメント（ｐＳＷ(PIC switching)）のうちの１つによって（例えば内部ルーティングリソースを通じて）ドライブされることも可能である。これにより、ＰＬＣアレイ内で生成された信号は、グローバルクロックスパインネットワークへルーティングされることが可能となる。位相ロックループあるいはその他の周期的信号操作要素を含むプログラマブルクロックマネージャ（ＰＣＭ(programmable clock manager)）のシステムクロック出力もまた、ｐＳＷセグメントを通じてグローバルシステムクロックスパインへルーティングされることが可能である。
【００１６】
注意すべき点であるが、示した例では、行／列あたり１個のクロックスパインおよび１個のクロックブランチのみの場合を示した。より多くの行および列がアレイに追加され、それぞれがスパインを含む場合、行および列あたり、より多くのブランチを追加することにより、本発明を用いて、あらゆるＰＦＵで複数のクロック信号をドライブすることが可能である。この場合、あらゆるクロック信号は、１つおきの行／列のブランチをドライブする自分のスパインを有し、同じブランチは、別のクロック信号によっては決して用いられない。
【００１７】
【発明の効果】
以上述べたごとく、本発明によれば、
【図面の簡単な説明】
【図１】従来のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のブロック図である。
【図２】図１の従来のＦＰＧＡの部分詳細図である。
【図３】本発明の一実施例によるＦＰＧＡの部分図である。
【図４】図３のＦＰＧＡ内の水平および垂直の両方のブランチに対するブランチ−セル間およびセル−セル間接続の概略図である。
【符号の説明】
１００  フィールドプログラマブルゲートアレイ（ＦＰＧＡ）
１０２  プログラマブル論理セル（ＰＬＣ）
１０４  プログラマブル入出力セル（ＰＩＣ）
２０２  ＰＩＣ
２０４  ＰＩＣ
２０６  ＰＩＣ
２０８  ＰＩＣ
２１０  パッド
２１２  ４：１ＭＵＸ
２１４  垂直スパイン
２１６  水平ブランチ
２１８  スパイン
３００  ＦＰＧＡ
３０２  ＰＩＣ
３０４  ＰＩＣ
３０６  ＰＩＣ
３０８  ＰＩＣ
３１０  パッド
３１２  １０：１ＭＵＸ
３１４  下方スパイン
３１８  上方スパイン
４０２  セル
４０４  セル
４０６  セル
４０８  セル
４１０  プログラマブル接続
４１２  プログラマブル接続
４１４  プログラマブル接続
４１６  プログラマブル接続
４１８  ４：１ＭＵＸ
【図１】
0003675662.tif 000002
【図２】
0003675662.tif 000003
【図３】
0003675662.tif 000004
【図４】
0003675662.tif 000005