(57)【要約】  複数の列に配列される回路を有する集積回路（ＩＣ）が開示される。ＩＣの列は、ＩＣの第１の端部から第２の端部へ延在する、同じ種類の実質的に一連の位置合せされた回路素子である。加えて、異なるタイプの回路素子を有する中央列があり得る。
2007527613.tif 000002
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）であって、複数の行および複数の列を有するアレイに配列される回路を含み、複数の行の各行はＩＣの第１の側に始まってＩＣの第２の側に終わり、複数の列の各列はＩＣの第３の側に始まってＩＣの第４の側に終わり、ＩＣは、
実質的に列を占める、ある回路タイプの複数の回路素子を含む複数の列の１列と、
ＩＣの第３の側に位置決めされる複数の行の１行とを含み、行の入出力回路タイプの回路素子の個数は、行の残りの他の回路タイプの回路素子の個数より少ない、集積回路（ＩＣ）。
【請求項２】
回路タイプは、構成可能なロジックブロック（ＣＬＢ）タイプ、マルチギガビットトランシーバ（ＭＧＴ）タイプ、ブロックランダムアクセスメモリ（ＢＲＡＭ）タイプ、デジタル信号プロセッサ（ＤＳＰ）回路タイプ、乗算器回路タイプ、演算回路タイプ、入出力相互接続（ＩＯＩ）回路タイプ、入出力ブロック（ＩＯＢ）タイプおよび特定用途向け回路タイプからなるグループから選択される、請求項１に記載の集積回路。
【請求項３】
入出力回路タイプは入出力ブロック（ＩＯＢ）タイプである、請求項１に記載の集積回路。
【請求項４】
入出力回路タイプは入出力ブロックタイプおよびマルチギガビットトランシーバタイプを含む、請求項１に記載の集積回路。
【請求項５】
構成ロジックを含む中央列をさらに含む、請求項１に記載の集積回路。
【請求項６】
中央列はＩＣの中央軸上またはその近くに位置決めされる、請求項３に記載の集積回路。
【請求項７】
中央列に隣接するクロック列をさらに含む、請求項４に記載の集積回路。
【請求項８】
複数の列の１列はスペーサタイルおよびクロックタイルをさらに含む、請求項１に記載の集積回路。
【請求項９】
埋込型プロセッサをさらに含む、請求項１に記載の集積回路。
【請求項１０】
プログラマブル関数およびプログラマブル相互接続を有する回路を含む集積回路（ＩＣ）であって、ＩＣは、
複数の均質な列をさらに含み、
各均質な列はＩＣの一方側に始まってＩＣの反対側に終わり、さらに、
複数の均質な列の第１の列は、実質的に第１の列を埋める、実質的に同一な第１の回路タイプの回路素子の第１の集合を含む、集積回路（ＩＣ）。
【請求項１１】
複数の均質な列の第２の列は、第２の列を実質的に埋める、実質的に同一な第２の回路タイプの回路素子の第２の集合を含み、
複数の均質な列の第３の列は、第３の列を実質的に埋める、実質的に同一な第３の回路タイプの回路素子の第３の集合を含む、請求項１０に記載の集積回路。
【請求項１２】
構成ロジック、クロック管理回路素子、および入出力ブロックを含む異質な中央列をさらに含む、請求項１０に記載の集積回路。
【請求項１３】
第１の回路タイプは、構成可能なロジックブロック（ＣＬＢ）タイプ、マルチギガビットトランシーバ（ＭＧＴ）タイプ、ブロックランダムアクセスメモリ（ＢＲＡＭ）タイプ、固定ロジックタイプ、入出力相互接続（ＩＯＩ）回路タイプ、および入出力ブロック（ＩＯＢ）タイプからなるグループから選択される、請求項１０に記載の集積回路。
【請求項１４】
固定ロジックタイプは、デジタル信号プロセッサ（ＤＳＰ）回路タイプ、乗算器回路タイプ、演算回路タイプ、および特定用途向け回路タイプを含む、請求項１３に記載の集積回路。
【請求項１５】
集積回路はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）をさらに含む、請求項１０に記載の集積回路（ＩＣ）。
【請求項１６】
集積回路はプログラマブルロジックデバイス（ＰＬＤ）をさらに含む、請求項１０に記載の集積回路（ＩＣ）。
【請求項１７】
集積回路（ＩＣ）の回路レイアウトを生成するための方法であって、
複数の列タイプを得るステップを含み、複数の列タイプの各列タイプはＩＣの１つ以上の列を表し、各列は実質的にある回路タイプの回路素子によって占められ、１つ以上の列はＩＣの一方側からＩＣの反対側へ延在し、さらに、
複数の列タイプから少なくとも１つの列タイプを選択するステップと、
少なくとも１つの列タイプと関連付けられる列を用いて、少なくとも部分的にＩＣの回路レイアウトを形成するステップとを含む、方法。
【請求項１８】
少なくとも１つの列タイプは、構成可能なロジックブロック（ＣＬＢ）列タイプ、マルチギガビットトランシーバ（ＭＧＴ）列タイプ、ブロックランダムアクセスメモリ（ＢＲＡＭ）列タイプ、デジタル信号プロセッサ（ＤＳＰ）列タイプ、乗算器列タイプ、計算列タイプ、プロセッサ列タイプ、入出力相互接続（ＩＯＩ）列タイプ、入出力ブロック（ＩＯＢ）列タイプ、および特定用途向け回路列タイプからなるグループから選択される、請求項１７に記載の方法。
【請求項１９】
ＩＣの回路レイアウトにプロセッサを形成するステップをさらに含む、請求項１７に記載の方法。
【請求項２０】
ＩＣの中央軸上またはその近くに位置決めされる中央列に構成ロジックを形成するステップをさらに含む、請求項１７に記載の方法。
【請求項２１】
コンピュータを用いて集積回路（ＩＣ）の回路をレイアウトするためのシステムであって、ＩＣはプログラマブル関数およびプログラマブル相互接続を有する回路を含み、システムは、
複数の列タイプを保存するための手段を含み、複数の列タイプの各列タイプは、実質的にある回路タイプの回路素子によって占められる、ＩＣの１つ以上の列を表し、１つ以上の列はＩＣの一方側からＩＣの反対側へ延在し、さらに、
複数の列タイプから少なくとも２つの異なる列タイプを選択するための手段と、
少なくとも２つの異なる列タイプからの列を用いて、少なくとも部分的にＩＣの回路レイアウトを生成するための手段とを含む、システム。
【請求項２２】
保存するための手段はデータベースを含む、請求項２１に記載のシステム。
【請求項２３】
ＩＣはフィールドプログラマブルゲートアレイである、請求項２１に記載のシステム。
【請求項２４】
集積回路（ＩＣ）であって、
複数の列を含み、
各列はＩＣの一方側に始まってＩＣの反対側に終わり、
複数の列の第１の列は、第１の列を実質的に埋める、第１の回路タイプと実質的に同一の回路素子の第１の集合を含み、
複数の列の第２の列は、第２の列を実質的に埋める、第２の回路タイプと実質的に同一の回路素子の第２の集合を含み、
複数の列の第３の列は、第３の列を実質的に埋める、第３の回路タイプと実質的に同一の回路素子の第３の集合を含む、集積回路（ＩＣ）。
【請求項２５】
プログラマブル機能およびプログラマブル相互接続を有する回路をさらに含む、請求項２４に記載の集積回路。
【請求項２６】
第１、第２および第３の回路タイプは、構成可能なロジックブロック（ＣＬＢ）タイプ、マルチギガビットトランシーバ（ＭＧＴ）タイプ、ブロックランダムアクセスメモリ（ＢＲＡＭ）タイプ、デジタル信号プロセッサ（ＤＳＰ）回路タイプ、乗算器回路タイプ、演算回路タイプ、入出力相互接続（ＩＯＩ）回路タイプ、入出力ブロック（ＩＯＢ）タイプおよび特定用途向け回路タイプからなるグループから選択される回路タイプを有する、請求項２５に記載の集積回路。
【請求項２７】
構成ロジック、クロック管理回路素子および入出力ブロックを有する異質な中央列をさらに含む、請求項２６に記載の集積回路。
【請求項２８】
実質的に同一な回路素子は実質的に同一なタイルである、請求項２４に記載の集積回路。
【請求項２９】
各タイルはスイッチマトリックスに結合される機能素子を含む、請求項２８に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は一般に集積回路に関し、より具体的には、列にレイアウトされた回路素子を有する集積回路に関する。
【背景技術】
【０００２】
背景情報
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含むプログラマブルロジックデバイス（ＰＬＤ）は、ユーザが規定した論理関数を実行するようプログラムされ得る集積回路（ＩＣ）である。典型的なＦＰＧＡアーキテクチャにおいては、構成可能なロジックブロック（ＣＬＢ）のアレイおよびプログラマブル相互接続構造は、プログラマブル入出力（Ｉ／Ｏ）回路素子のリングに囲まれる。例としては、カリフォルニア州サンノゼ市のザイリンクス  インコーポレイテッド（Xilinx Inc.）のバーテックス（登録商標）ＩＩプラットフォームＦＰＧＡ（VIRTEXTM II Platform FPGA ）、およびカリフォルニア州サンノゼ市のアルテラ社（Altera Corp.）のストラティクス（登録商標）（StratixTM）デバイスアーキテクチャを含む。
【０００３】
図１は、従来のＦＰＧＡ４８の簡略化された概略図である。ＦＰＧＡは、Ｉ／Ｏリング４によって囲まれるプログラマブルファブリック２を含む。プログラマブルファブリック２は、構成可能なロジックブロック（ＣＬＢ）列５、ブロックランダムアクセスメモリ（ＢＲＡＭ）列６、およびデジタル信号処理（ＤＳＰ）列７を含む。プログラマブルファブリック２はさらに、プログラマブル相互接続構造（図１には示されない）を含み、その構造は、プログラマブルファブリックの回路素子またはブロックが互いに、およびＩ／Ｏリングの回路素子またはブロックと、相互接続されることを可能にする。Ｉ／Ｏリングは、たとえば入出力ブロック（ＩＯＢ）などの入出力回路素子を含む。
【０００４】
図１からわかるように、Ｉ／Ｏリング４はプログラマブルファブリック２の周囲にある。ＦＰＧＡ４８の外部にある信号は、この周囲Ｉ／Ｏリング４を介してのみプログラマブルファブリック２と通信し得る。この従来の配列にはいくつかの不利益がある。第１に、許容されるＩＯＢの合計個数が、実際にはＦＰＧＡ４８領域ではなくＦＰＧＡの周囲によって制限される。第２に、ＦＰＧＡ４８の中央近くの回路素子に位置する内部信号は、ＦＰＧＡ４８を出るのにプログラマブル相互接続構造を介して周囲に伝搬しなければならない。したがって、伝搬遅延は回路素子から周囲までの距離に依存する。第３に、ＦＰＧＡ４８の製造が複雑である。プログラマブルファブリック２のほぼ均質な回路素子の列は、Ｉ／Ｏリング４の回路素子と位置合せされて製作されなければならない。製造上の問題は、下記の図２に見られるように、Ｉ／Ｏリング４がいくつかの異質な素子を有する場合にさらに悪化する。
【０００５】
図２は、さまざまなＣＬＢタイル、ＩＯＢタイル、およびＢＲＡＭ／乗算器タイルを有する別の従来のＦＰＧＡのより詳細な図を示す。「タイル」という用語は、ａ）メモリを含む１つ以上のプログラマブル機能を有する回路、または固定されたプログラマブルでない回路と、ｂ）プログラマブル相互接続とを含む範囲をさす。ＣＬＢタイル１２は２次元アレイに配置される。この例において、各ＣＬＢタイルは構成可能な相互接続構造の部分を含み、そのため、ＣＬＢタイルがＦＰＧＡ上に合せて配置されるとき、多くのＣＬＢのさまざまな部分によってＦＰＧＡ５０の相互接続構造の少なくとも部分が形成される。さらに示されるのは、ブロックランダムメモリ／乗算器（ＢＲＡＭ／Ｍｕｌｔ）タイル１３である。
【０００６】
ＦＰＧＡ５０を外部ロジックにインターフェイスする入出力回路を与えるために、ＩＯＢタイル１４がＦＰＧＡの４つの側（上側、下側、左側、右側）の各々に沿って与えられる。この特定の設計において、入出力相互接続タイル（ＩＯＩタイル）が用いられ、ＩＯＢタイルの各対をＣＬＢタイルに結合する。参照番号１１はこのようなＩＯＩタイルの１つを示す。ＩＯＩタイル１１は、その右側にある２つのＩＯＢタイルと左側にあるＣＬＢタイルとの間に配置される。
【０００７】
図２の例において、クロック管理（たとえばデジタルクロック管理またはＤＣＭ）回路が、ＢＲＡＭ／乗算器タイルの最左列および最右列の上部および下部領域１５、２１、２２および２７にはめ込まれる。ＢＲＡＭ／乗算器タイルの他の最右列はＴ型のマルチギガビット（ＭＧＴ）トランシーバタイル２８−３５を有する。ＦＰＧＡ５０の角領域１６−１９は、他の雑回路を収容するために用いられ得る。この雑回路は、たとえば構成ロジック、暗号化／解読ロジック、グローバルクロックドライバ回路、システム性能モニタ、および境界走査回路を含み得る。
【０００８】
タイル状ＦＰＧＡ平面図の追加的情報については、ヤング（Young）他による１９９９年６月２２日発行の米国特許番号第５，９１４，６１６号、およびアンドリュー  Ｋ  パーシー（Andrew K Percy）他による２００１年３月２０日発行の米国特許番号ＵＳ６，２０４，６８９  Ｂ１を参照されたい。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
図２は、図１について挙げられたものと同じ不利益を有する。加えて、図２のレイアウトの修正は困難である。たとえば、ＢＲＡＭ／Ｍｕｌｔタイルの別の列を追加することは、プログラマブルファブリックおよびＩ／Ｏリングの両方に著しい変更を要求する。不利益の別の例は、１つ以上のＤＳＰ列を加えることが全く新しいレイアウトを要求し得ることである。
【００１０】
したがって、上述の不利益を最小化するか、および／または解消する技術の必要性がある。
【課題を解決するための手段】
【００１１】
概要
本発明は、複数の列に配列される集積回路（ＩＣ）のための方法およびシステムを含む。本発明の例示的一実施例において、ＩＣはＩ／Ｏリングを有さず、Ｉ／Ｏブロック（ＩＯＢ）は１つ以上のＩＯＢ列に含まれ、ＩＯＢ列はＩＣを構成する複数の列の１つ以上を構成する。この例示的実施例において、ほとんどすべての列において、各均質な列は、実質的に位置合せされた１タイプのみの回路素子をそれぞれ有する。たとえば、いくつかのクロックタイルまたはスペーサタイルを例外として、ＣＬＢ列は実質的にＣＬＢタイルのみを有する。ＢＲＡＭ列は実質的にＢＲＡＭタイルのみを有し、ＤＳＰ列は実質的にＤＳＰタイルのみを有し、ＩＯＢ列は実質的にＩＯＢタイルのみを有し、ＭＧＴ列は実質的にＭＧＴタイルのみを有し、などと続く。この実施例において、ＩＣの均質な列は、ＩＣの上端からＩＣの下端へ延在する。加えて、異質なタイプの素子たとえばクロック管理素子、システムモニタ、構成ロジック、およびＩＯＢなどを有する中央列があり得る。
【００１２】
本発明の一実施例は、複数の行および複数の列を有するアレイに配列された回路を含む集積回路（ＩＣ）を含む。各行はＩＣの第１の側に始まってＩＣの第２の側に終わり、各列はＩＣの第３の側に始まってＩＣの第４の側に終わる。ＩＣは、実質的に列を占める、同じ回路タイプの２つ以上の回路素子を有する列と、ＩＣの第３の側に位置決めされる行
とを含み、入出力回路タイプの回路素子たとえば入出力ブロックおよびマルチギガビットトランシーバ回路、または入出力ブロックのみの行における個数は、行の残りの他の回路タイプの回路素子の個数より少ない。
【００１３】
本発明の別の実施例は、プログラマブル関数およびプログラマブル相互接続を伴う回路を有する集積回路（ＩＣ）を含む。ＩＣは複数の均質な列をさらに含む。各均質な列は、ＩＣの一方側に始まってＩＣの反対側に終わる。均質な列は、実質的に列を埋める、実質的に同一な同じ回路タイプの回路素子の集合を含む。回路タイプは、構成可能なロジックブロック（ＣＬＢ）タイプ、マルチギガビットトランシーバ（ＭＧＴ）タイプ、ブロックランダムアクセスメモリ（ＢＲＡＭ）タイプ、固定ロジックタイプ、入出力相互接続（ＩＯＩ）回路タイプ、および入出力ブロック（ＩＯＢ）タイプからなるグループから選択されることができ、固定ロジックタイプは、デジタル信号プロセッサ（ＤＳＰ）回路タイプ、乗算器回路タイプ、演算回路タイプ、および特定用途向け回路タイプを含む。
【００１４】
本発明のさらに別の実施例は、集積回路（ＩＣ）の回路レイアウトを生成するための方法を含む。方法は複数の列タイプを得るステップから始まり、複数の列タイプの各列タイプはＩＣの１つ以上の列を表す。各列はある回路タイプの回路素子によって実質的に占められ、１つ以上の列はＩＣの一方側からＩＣの反対側へ延在する。次に、複数の列タイプから少なくとも１つの列タイプが選択される。最後に、少なくとも１つの列タイプと関連付けられる列を用いることにより少なくとも部分的にＩＣの回路レイアウトが形成される。
【００１５】
他の構造および方法が下記の詳細な説明に説明される。この概要は本発明を規定することを意図しない。本発明は請求項によって規定される。
【発明を実施するための最良の形態】
【００１６】
詳細な説明
下記の説明において、数多くの具体的詳細が示されて本発明の具体的実施例のより完全な説明を与える。しかしながら、当業者にとって、本発明は下記に与えられるすべての具体的詳細なしに実行され得ることが明らかである。他の場合において、本発明を不明瞭にしないために、周知の特徴は詳細には説明されていない。
【００１７】
一般に、縦列アーキテクチャはモジュール設計の形式を示す。各モジュール、たとえば各コラムは、たとえば列タイプなどのモジュールタイプに属する。集積回路の適用分野を見ると、さまざまなモジュールタイプおよび各モジュールタイプでさまざまな個数のモジュールが選択され得る。たとえば、列タイプは、ＤＳＰ回路素子を有するデジタル信号処理（ＤＳＰ）列タイプと、ＣＬＢ回路素子を有する構成可能なロジックブロック（ＣＬＢ）列タイプと、メモリ回路素子を有するメモリ列タイプと、ＩＯＢ回路素子を有する入出力列タイプとを含み得る。多くのデジタル信号処理を必要とし得る通信などの適用分野では、第１のＩＣはＤＳＰ列タイプからの列を多く含み得る。ネットワークスイッチングの適用分野では、この第２のＩＣのＣＬＢ列タイプおよびメモリ列タイプからの列が多くあり得る。したがって、さまざまなモジュールタイプおよび各モジュールタイプのさまざまな個数のモジュール、すなわちモジュールのファミリは、使用の適用領域に基づいて異なる縦列アーキテクチャを生成するために選択され得る。
【００１８】
図１に説明されるＩ／Ｏリング４は、本発明の例示的一実施例において、縦列アーキテクチャには存在しない。図２のＦＰＧＡ５０の上側および下側の、多くのＩＯＢタイルを有する行は取除かれ、ＩＯＢタイルは列にのみ配列される（図３および図４参照）。ＩＯＢタイルは、周知のフリップチップ技術のため、もはやＩＣの端部にある必要はない。さらに、デジタルクロック管理（ＤＣＭ）回路などの他の回路素子および構成ロジック（示
されないが４つの角１６−１９に位置する）が、中央列（図３）に再配置されている。したがってこの例示的実施例は、複数の均質な列とＩＣのほぼ中央軸に位置する異質な中央列とを含み、各均質な列は、均質な列を実質的に埋める、実質的に同一な同じ回路タイプの回路素子を有する。
【００１９】
図３は、本発明の一実施例によるＩＣ１００の簡略化された図である。ＩＣは、２つ以上の均質な列を含み、均質な列の各々はＩＣの一方側に始まってＩＣの反対側に終わる。各均質な列は、実質的に列を埋める実質的に同一の回路素子を有する。列の実質的に同一な回路素子は、構成可能なロジックブロック（ＣＬＢ）タイプ、マルチギガビットトランシーバ（ＭＧＴ）タイプ、ブロックランダムアクセスメモリ（ＢＲＡＭ）タイプ、デジタル信号プロセッサ（ＤＳＰ）タイプ、乗算器回路タイプ、演算回路タイプ、入出力相互接続（ＩＯＩ）回路タイプ、入出力ブロック（ＩＯＢ）タイプ、および特定用途向け回路タイプを含む、回路タイプのグループからの特定の回路タイプである。たとえば構成可能なロジックブロック（ＣＬＢ）回路タイプは、実質的に列を埋める同一の回路素子、この例においてはＣＬＢタイルを有する（すなわち、おそらくたとえばいくつかのスペーサタイルおよびクロックタイルを除き、列の実質的にすべてのレイアウト領域は、位置合せされたＣＬＢタイルによって占められる）。ＣＬＢタイルで実質的に埋められるこの均質な列は、ＣＬＢ列タイプを有する列とも呼ばれる。同じことは、ＭＧＴタイプの回路素子で実質的に埋められる均質な列、すなわちＭＧＴタイル（ＭＧＴ列タイプとも呼ばれる）、ＢＲＡＭタイプの回路素子で実質的に埋められる均質な列、すなわちＢＲＡＭタイル（ＢＲＡＭ列タイプとも呼ばれる）、ＤＳＰタイプの回路素子で実質的に埋められる均質な列、すなわちＤＳＰタイル（ＤＳＰ列タイプとも呼ばれる）、ＩＯＢタイプの回路素子で実質的に埋められる均質な列、すなわちＩＯＢタイル（ＩＯＢ列タイプとも呼ばれる）、ＩＯＩタイプの回路素子で実質的に埋められる均質な列、すなわちＩＯＩタイル（ＩＯＩ列タイプとも呼ばれる）、乗算器タイプの回路素子で実質的に埋められる均質な列、すなわち乗算器タイル（乗算器列タイプとも呼ばれる）、固定ロジックタイプの回路素子で実質的に埋められる均質な列、すなわち固定ロジックタイル（固定ロジック列タイプとも呼ばれる）、特定用途向け回路タイプの回路素子で実質的に埋められる均質な列、すなわち特定用途向け回路タイル（特定用途向け回路列タイプとも呼ばれる）などにもあてはまる。いくつかの回路素子および回路タイプの例は、カリフォルニア州サンノゼ市のザイリンクス
インコーポレイテッド（Xilinx Inc.）によるバーテックス（登録商標）ＩＩプラットフォームＦＰＧＡハンドブック（VIRTEXTM-II Platform FPGA Handbook）（２００１年１２月３日）に見つけることができる。
【００２０】
ＩＣ１００は、ＣＬＢ列タイプの均質な列５２、５８および６４と、ＢＲＡＭ列タイプの均質な列５４および６８と、ＩＯＢ列タイプの均質な列５６および６６と、ＤＳＰ列タイプの均質な列６２と、ＭＧＴ列タイプの均質な列７０とを含む。任意で、異なる回路タイプの回路素子を有し得る異質な列６０（中央列）がある。ＩＣ１００の回路は、プログラマブル相互接続によってともに結合されるプログラマブル関数を有する回路を含み得るが、本発明の範囲はそれに限定されず、複数の列タイプの複数の均質な列を有するあらゆるＩＣを含み、各列タイプは、同じタイプの回路素子で実質的に埋められる列である。したがって、ある実施例においてＦＰＧＡが説明され得るが、それは例示の目的のためであって、本発明の範囲はＦＰＧＡに限られない。
【００２１】
図４は、本発明の別の実施例によるＦＰＧＡ２００の簡略化された図である。ＦＰＧＡ２００は矩形のダイであって、４つの側１０１−１０４を有する。ＦＰＧＡ２００の回路は、繰返し可能なタイルの複数の列としてダイの表面にわたってレイアウトされる。ＦＰＧＡ２００の左側１０２からＦＰＧＡ２００の右側１０４に向かって進むと、１列のマルチギガビットトランシーバ（ＭＧＴ）タイル１０５、１列の入出力相互接続（ＩＯＩ）タイル１０６、４列の構成可能なロジックブロック（ＣＬＢ）タイル１０７、１列のＩＯＩ
タイル１０８、１列のブロックランダムアクセスメモリ（ＢＲＡＭ）タイル１０９、４列のＣＬＢタイル１１０、１列のＩＯＩタイル１１１、１列の入出力ブロック（ＩＯＢ）タイル１１２、４列のＣＬＢタイル１１３、１列のＩＯＩタイル１１４、１列のデジタル信号処理（ＤＳＰ）タイル１１５、４列のＣＬＢタイル１１６、１列のＩＯＩタイル１１７、複数の異なるタイプのタイルでできた１列の異質な列（すなわち中央列）１１８、１列のクロック分配タイル１１９、４列のＣＬＢタイル１２０、１列のＩＯＩタイル１２１、１列のＢＲＡＭタイル１２２、４列のＣＬＢタイル１２３、１列のＩＯＩタイル１２４、１列のＩＯＢタイル１２５、および４列のＣＬＢタイル１２６がある。
【００２２】
均質なタイル列の各々（異質な中央列１１８を除く）の領域は、主に単一のタイプのタイルによって占められることに注意されたい。水平に延在する狭いクロック分配タイルおよび構成分配タイル、ならびに水平に延在する狭いスペーサタイルも存在する。各列内のクロック分配タイルは他の各列のクロック分配タイルと整列し、そのため、左側１０２から右側１０４までＦＰＧＡ２００をわたって全面に延在する、水平に延在するクロック分配構造が形成される。水平に延在するクロック分配構造は、参照番号１３１−１３４で図４に示される。異なる列のクロック分配タイルが、水平面でＦＰＧＡ２００をわたって全面に延在する構造を形成するよう整列するとの同様に、異なる列のスペーサタイルも整列する。図４の例において、スペーサタイルは、水平に延在するスペーサ構造１２７−１３０を形成するよう整列する。
【００２３】
図４のＦＰＧＡ２００の中央列１１８は、図２においてＩ／Ｏリングの角に主に分配されていた回路素子を有する。列１１８の回路素子は、たとえばシステム性能モニタ（ＳＹＳＭＯＮ）回路、デジタルクロックマネージャ（ＤＣＭ）回路、クロックコンパニオンモジュール（ＣＣＭ）回路、および構成ロジック（ＣＯＮＦＩＧ）を含む。システム性能モニタはアナログデジタルコンバータ（ＡＤＣ）を含むことができ、オンチップおよびオフチップの両方において温度および電圧などのパラメータをモニタする。ＤＣＭは、クロックデスキュー、クロック位相シフト、クロック周波合成および他のクロック機能を実行するための回路を含み得る。ＣＣＭは、位相が一致したバイナリクロック分割および内部クロックジッタとスキュー測定のための回路を含み得る。構成ロジックは、ＦＰＧＡの構成中、ＳＲＡＭベースのＦＰＧＡの構成メモリセルをアドレスし、ロードするのに必要とされるロジックを含む。この例における構成ロジックはまた、構成レジスタ、ＪＴＡＧ回路などの境界走査テスト回路、および、ＦＰＧＡにロードされ、そこから読出される構成データのビットストリームを暗号化および／または解読するのに用いられる暗号化および／または解読回路を含む。この構成ロジックは１つの位置において中央に集められる。これは、構成ロジックをダイの４つの角に分離することの非効率性と労力とを回避する。これはまた、内部的に生成される構成信号がより速くダイ全体に届くことを可能にする。なぜならこれらの信号は中央位置から出発するからである。
【００２４】
図３のように、図４のＦＰＧＡダイ２００は、従来のＦＰＧＡ（図２参照）でなされていたように、ダイの上側１０１および下側１０３全面に沿ってＩＯＢタイルを配置していない。特定の列のタイルが（たとえば付随的で相対的に小さいクロック分配タイルおよびスペーサタイルを除いて）実質的に同じタイプであるので、その列のタイルタイプの幅は、タイルの回路に必要となるダイエリアの面積を与えるように設定され得る。その結果ダイエリアが効率的に使用される。図４の実施例において、２列以上のＩＯＢタイルがあり得る。加えて、他の回路タイプのタイルとともに、余分のＩＯＢタイルが中央列１１８に配置され得る。
【００２５】
図５は、先行技術のＦＰＧＡ（カリフォルニア州サンノゼ市のザイリンクス  インコーポレイテッド（Xilinx Inc.）のバーテックス（登録商標）ＩＩプラットフォームＦＰＧＡ（VIRTEXTM II Platform FPGA）２００１年１１月２９日、７７−７９頁参照）におけ
るタイルのアレイの部分の簡略化された概略を示す。図５のタイルのアレイは、１５０−１から１５０−４の列および１５２−１から１５２−５の行を有する。図５において、タイルは一般にスイッチマトリクスに結合されるＩＯＢ、ＣＬＢ、またはＤＣＭなどの機能素子を含み、スイッチマトリクスはＦＰＧＡのグローバルルーチングリソースに接続する。このタイルの一般的説明において、列１５０−４は変形を有し、そこではＢＲＡＭ１６０および乗算器１６２は、４つのタイルに及んで（各タイルに１つずつ）４つのスイッチマトリクスに接続される、機能素子である。Ｉ／Ｏリングは、第１の行１５２−１および第１の列１５０−１にＩＯＢタイルを含み、図２の角領域１６−１９で与えられたような雑回路の部分を有するＭＩＳＣを含む。本発明の一実施例において、タイルの基礎的構造は同じであるが配列は変わり、そのため各列は、ほとんどすべての列に対して同じタイプのタイル、たとえばＣＬＢタイル、ＩＯＢタイル、ＢＲＡＭ／Ｍｕｌｔタイル、ＤＳＰタイルなどを有する。したがって、たとえば図３に示される実施例において、ＤＳＰ列６２はＤＳＰタイルを含むことができ、各ＤＳＰタイルはスイッチマトリクスに接続される機能素子として、デジタル信号処理回路素子を有する。他のタイプの機能素子は、グラフィック処理素子、マルチメディア処理素子、オーディオおよび／またはビデオ処理素子、通信処理素子、リアルタイム制御処理素子、固定ロジック素子、不揮発性メモリ素子、および特定用途向け処理素子を含み得る。
【００２６】
図６は、本発明の一実施例のさまざまな列タイプからの列を組合せることによってＩＣレイアウトを形成する方法を示す図である。ＦＰＧＡ２１０は、中央列２１１と、たとえばＢＲＡＭ列タイプ２１２、ＩＯＢ列タイプ２１４、ＣＬＢ列タイプ２１６、ＤＳＰ列タイプ２１６およびＭＧＴ列タイプ２２０などの列タイプのライブラリ２０８から選択される１つ以上の列、たとえばＩＯＢ列２２４、ＣＬＢ列２２６、ＢＲＡＭ列２２１、ＢＲＡＭ列２２２、ＣＬＢ列２２８、ＤＳＰ列２３０およびＭＧＴ列２３３とを含む。各列タイプはその列に対する回路レイアウトを含む。特定の列タイプの各列は、関連づけられた回路タイプに対して実質的に同一な回路素子またはタイルを有する。
【００２７】
したがって、ＦＰＧＡ１２０などの集積回路（ＩＣ）の回路レイアウトを生成するための方法は、データベースの一部であり得るライブラリの複数の列タイプを得るステップを含む。次に、コンピュータシステムを用いて、使用の適用領域に基づいていくつかの列タイプおよび列タイプの列レイアウトが選択される。選択された列レイアウトは、公知の回路レイアウトツールを用いて少なくとも部分的にＩＣの回路レイアウトを形成するため用いられ得る。
【００２８】
図６を参照すると、ＢＲＡＭ列タイプ２１２、ＩＯＢ列タイプ２１４、ＣＬＢ列タイプ２１６、ＤＳＰ列タイプ２１６およびＭＧＴ列タイプ２２０は、列タイプのより大きい集合から選択されている（より大きい集合はたとえば、コントローラ回路素子を有するコントローラ列タイプ、グラフィック回路を有するグラフィック列タイプ、オーディオまたはビデオ回路素子を有するオーディオまたはビデオ列タイプ、無線通信素子を有する無線列タイプ、切換素子を有する切換列タイプ、リアルタイム素子を有するリアルタイム列タイプなどを含み得る）。ＩＯＢ列２２４は、ＩＯＢ列タイプ２１４に関連付けられた回路レイアウトを伴ってＦＰＧＡ２１０上に形成される。ＣＬＢ列２２６および２２８は、ＣＬＢ列タイプ２１６に関連付けられた回路レイアウトを伴ってＦＰＧＡ２１０上に形成される。ＢＲＡＭ列２２１および２２２は、ＢＲＡＭ列タイプ２１２に関連付けられた回路レイアウトを伴ってＦＰＧＡ２１０上に形成される。ＤＳＰ列２３０は、ＤＳＰ列タイプ２１８に関連付けられた回路レイアウトを伴ってＦＰＧＡ２１０上に形成される。ＭＧＴ列２３３は、ＭＧＴ列タイプ２２０に関連付けられた回路レイアウトを伴ってＦＰＧＡ２１０上に形成される。
【００２９】
図６は、図６に示されるＦＰＧＡ２１０の回路レイアウトを生成するためのシステムの
図である。データベース２５２は、たとえばＢＲＡＭ列タイプ２１２、ＩＯＢ列タイプ２１４、ＣＬＢ列タイプ２１６、ＤＳＰ列タイプ２１６およびＭＧＴ列タイプ２２０などの列タイプの回路レイアウトを保存する。データベース２５２は、通信ネットワーク２５４を介してコンピュータワークステーション２５０に接続される。コンピュータワークステーション２５０は従来の回路設計およびレイアウトツールを実行し、ＦＰＧＡ２１０のＩＣレイアウト２５６を含む。
【００３０】
異なる列タイプの列を選択するかまたはダイヤルインすることにより、ＦＰＧＡの多くのファミリが生成され得る。たとえば、主にロジックを用いる適用領域はＣＬＢの列を多く有することができ、多くのデジタル信号処理を用いる適用領域はＤＳＰの列を多く有することができ、埋込型マイクロプロセッサを用いる適用領域は、マイクロプロセッサの使用を強化するよう選択される、ＭＧＴ列などの列を有し得る。
【００３１】
図８、図９および図１０は、列タイプのさまざまな混合および各列タイプからのさまざまな数の列を用いて作られ得る、ＦＰＧＡの３つの異なるファミリの例である。理解を容易にするために、同じ列タイプの列はその列タイプのラベルがつけられている。
【００３２】
図８は、図１のＦＰＧＡ４８と同様の適用領域を有し得る。ＣＬＢは灰色に交差線が引かれた領域５２０によって示される。水平線５２２はクロックタイルまたはスペーサタイルを含み得る。中央列５２５は、図４の列１１８と同じかまたは類似の回路素子を有する。クロックタイルを有するクロック列５２８も示される。ＦＰＧＡ５１０はＦＰＧＡ側および中央列５２５にＩＯＢ（ＩＯＢ列タイプ２１４）を有し、ロジックインテンシブである。
【００３３】
図９は、埋込型プロセッサ（たとえばＩＢＭＰｏｗｅｒＰＣ（登録商標））６４０を有するＦＰＧＡ６１０の例である。ＣＬＢは灰色の交差線が引かれた領域６２０によって示される。中央列６３０は、図４の列１１８と類似かまたは同じ回路素子を有する。データレートの高いＩ／Ｏを促すために、２列のＭＧＴ列タイプ２２０が加えられている。図９は１つの埋込型プロセッサを示すが、複数の埋込型プロセッサがあり得る。
【００３４】
１つ以上の埋込型プロセッサを伴うＦＰＧＡを有する図９は、依然として縦型アーキテクチャであって本発明の一実施例である。プロセッサ６４０は形状が矩形であり、いくつかのＢＲＡＭ列２１２およびＣＬＢ列（灰色の交差線が引かれた領域）を分断するが、ＦＰＧＡ６１０の残りの部分は依然として多くの均質な列を有する。比較的わずかな数のＩＢＭ社（ＩＢＭ  Ｉｎｃ．）からのＰｏｗｅｒＰＣ（登録商標）プロセッサしか必要としないので、これらのいくつかの比較的大きな回路は列には置かれず、カリフォルニア州サンノゼ市のザイリンクス  インコーポレイテッド（Xilinx Inc.）からのバーテックス−ＩＩＰＲＯ（登録商標）ＦＰＧＡ（VIRTEX-II PROTMFPGA）に類似するレイアウトを有する。したがって、均質な列から主にできているＦＰＧＡを有することの利点は実質的に維持され、埋込型プロセッサを有することでさらに重要な利点がある。別の実施例において、均質な列と関連して用いられるあらゆる特定用途向け大規模集積回路が、たとえばデジタル信号プロセッサまたはグラフィックプロセッサなどの埋込型プロセッサを置換することができる。
【００３５】
図１０は、多くのデジタル信号処理を必要とする使用の適用領域を有するＦＰＧＡ６１０の例である。したがって４列のＤＳＰ列２１８がある。ＣＬＢは灰色の交差線が引かれた領域７２０で示される。中央列７３０は、図４の列１１８と同じかまたは類似の回路素子を有する。
【００３６】
このように、説明された実施例のさまざまな特徴のさまざまな変更、適合および組合せ
が、下記の請求項に示される本発明の範囲を逸脱することなく実行され得る。
【図面の簡単な説明】
【００３７】
【図１】従来のＦＰＧＡの簡略化された概略図である。
【図２】さまざまなＣＬＢタイル、ＩＯＢタイル、およびＢＲＡＭ／乗算器タイルを有する別の従来のＦＰＧＡのより詳細な図である。
【図３】本発明の一実施例によるＩＣの簡略化された図である。
【図４】本発明の別の実施例によるＦＰＧＡの簡略化された図である。
【図５】先行技術のＦＰＧＡのタイルのアレイの部分の簡略化された概略を示す。
【図６】本発明の一実施例のさまざまな列タイプからの列を組合せることによりＩＣレイアウトを形成する方法を示す図である。
【図７】図６に示されるＦＰＧＡの回路レイアウトを生成するためのシステムの図である。
【図８】ＦＰＧＡの３つの異なるファミリの例である。
【図９】ＦＰＧＡの３つの異なるファミリの例である。
【図１０】ＦＰＧＡの３つの異なるファミリの例である。
【図１】
2007527613.tif 000003
【図２】
2007527613.tif 000004
【図３】
2007527613.tif 000005
【図４】
2007527613.tif 000006
【図５】
2007527613.tif 000007
【図６】
2007527613.tif 000008
【図７】
2007527613.tif 000009
【図８】
2007527613.tif 000010
【図９】
2007527613.tif 000011
【図１０】
2007527613.tif 000012
【手続補正書】
【提出日】平成19年5月8日(2007.5.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラマブル関数およびプログラマブル相互接続を有する回路を含む集積回路（ＩＣ）であって、ＩＣは、
複数の均質な列をさらに含み、
各均質な列はＩＣの一方側に始まってＩＣの反対側に終わり、さらに、
複数の均質な列の第１の列は、実質的に第１の列を埋める、実質的に同一な第１の回路タイプの構成可能な回路素子の第１の集合を含む、集積回路（ＩＣ）。
【請求項２】
複数の均質な列の第２の列は、第２の列を実質的に埋める、実質的に同一な第２の回路タイプの構成可能な回路素子の第２の集合を含み、
複数の均質な列の第３の列は、第３の列を実質的に埋める、実質的に同一な第３の回路タイプの回路素子の第３の集合を含む、請求項１に記載の集積回路。
【請求項３】
構成ロジック、クロック管理回路素子、および入出力ブロックを含む異質な中央列をさらに含む、請求項１に記載の集積回路。
【請求項４】
第１の回路タイプは、構成可能なロジックブロック（ＣＬＢ）タイプ、マルチギガビットトランシーバ（ＭＧＴ）タイプ、ブロックランダムアクセスメモリ（ＢＲＡＭ）タイプ、固定ロジックタイプ、入出力相互接続（ＩＯＩ）回路タイプ、および入出力ブロック（ＩＯＢ）タイプからなるグループから選択される、請求項１に記載の集積回路。
【請求項５】
固定ロジックタイプは、デジタル信号プロセッサ（ＤＳＰ）回路タイプ、乗算器回路タイプ、計算回路タイプ、および特定用途向け回路タイプを含む、請求項４に記載の集積回路。
【請求項６】
集積回路はプログラマブルロジックデバイス（ＰＬＤ）をさらに含む、請求項１に記載の集積回路（ＩＣ）。
【請求項７】
構成ロジックを含む中央列をさらに含む、請求項１に記載の集積回路。
【請求項８】
中央列に隣接するクロック列をさらに含む、請求項１に記載の集積回路。
【請求項９】
複数の均質な列の１列はスペーサタイルおよびクロックタイルを含む、請求項１に記載の集積回路。
【請求項１０】
埋込型プロセッサをさらに含む、請求項１に記載の集積回路。
【請求項１１】
集積回路（ＩＣ）の回路レイアウトを生成するための方法であって
、
複数の列タイプを得るステップを含み、複数の列タイプの各列タイプはＩＣの１つ以上の列を表し、各列は実質的にある回路タイプの構成可能な回路素子によって占められ、１つ以上の列はＩＣの一方側からＩＣの反対側へ延在し、さらに、
複数の列タイプから少なくとも１つの列タイプを選択するステップと、
少なくとも１つの列タイプと関連付けられる列を用いて、少なくとも部分的にＩＣの回路レイアウトを形成するステップとを含む、方法。
【請求項１２】
少なくとも１つの列タイプは、構成可能なロジックブロック（ＣＬＢ）列タイプ、マルチギガビットトランシーバ（ＭＧＴ）列タイプ、ブロックランダムアクセスメモリ（ＢＲＡＭ）列タイプ、デジタル信号プロセッサ（ＤＳＰ）列タイプ、乗算器列タイプ、計算列タイプ、プロセッサ列タイプ、入出力相互接続（ＩＯＩ）列タイプ、入出力ブロック（ＩＯＢ）列タイプ、および特定用途向け回路列タイプからなるグループから選択される、請求項１１に記載の方法。
【請求項１３】
ＩＣの回路レイアウトにプロセッサを形成するステップをさらに含む、請求項１１に記載の方法。
【請求項１４】
ＩＣの中央軸上またはその近くに位置決めされる中央列に構成ロジックを形成するステップをさらに含む、請求項１１に記載の方法。
【国際調査報告】
2007527613.tif 000013
2007527613.tif 000014
2007527613.tif 000015