(57)【要約】集積回路（ＩＣ）は、少なくともその内の１つが再設定可能である多くの機能ブロック（ＦＢ）を含む。各々のＦＢは、再設定可能機能、再設定不能機能、または追加の「ネスト化された」機能ブロックを使って繰り返し拡張され得る。ＩＣはさらに、多くの入力ピン、多くの出力ピン、加算器、および多くのクロスバー・デバイスを含む。少なくともＩＣレベルにおいてこれらの要素は、全ての入力信号がクロスバー・デバイスの第一サブセットを通してＦＢへ供給され、全ての内部信号はクロスバー・デバイスの第二サブセットを通して、１つのＦＢから他のＦＢへと送られ、全ての出力信号がＦＢよりクロスバー・デバイスの第三サブセットを通して出力ピンへと送られるような方式で結合される。加算器の入力は、少なくとも２つのクロスバー・デバイスの出力に接続され、加算器の出力はクロスバー・デバイスの他の入力に接続される。
2009524228.tif 000002
【特許請求の範囲】
【請求項１】
第一の複数の入力と、
第一の複数の出力と、
第一の１つ以上の機能ブロックと、
第一加算器と、
前記第一の複数の入力、前記第一の複数の出力、および前記第一の１つ以上の機能ブロックに結合された第一の複数のクロスバー・デバイスであって、前記第一入力を前記第一の１つ以上の機能ブロックおよび／または前記加算器に結合し、前記第一の１つ以上の機能ブロックを互いに結合し、前記第一の１つ以上の機能ブロックを前記第一出力と結合し、第一の複数のクロスバー・デバイスは少なくとも第一、第二および第三クロスバー・デバイスを含んでおり、前記第一加算器の第一の１つ以上の入力は前記第一クロスバー・デバイスの１つ以上の出力に結合されており、前記第一加算器の第二の１つ以上の入力は前記第二クロスバー・デバイスの１つ以上の出力に結合されており、前記第一加算器の１つ以上の出力は前記第三クロスバー・デバイスの１つ以上の入力に結合されている、第一の複数のクロスバー・デバイスと
を含んでいる、機器であって、
前記第一の１つ以上の機能ブロックは、入力、出力、１つ以上の機能ブロック、加算器およびクロスバー・デバイスの１つ以上の繰り返しネスト化された集合を含んでおり、各ネスト化された集合のクロスバー・デバイスは、前記第一の複数のクロスバーデバイスが前記第一の入力を前記第一の１つ以上の機能ブロックおよび前記加算器に接続し、前記加算器を前記第一の１つ以上の機能ブロックに接続し、前記第一の１つ以上の機能ブロックを互いに接続し、前記第一の１つ以上の機能ブロックを前記第一の出力に接続するのと同じ方法で、前記ネスト化された集合の前記入力、出力、加算器、および１つ以上の機能ブロックを相互接続している、機器。
【請求項２】
前記第一の１つ以上の機能ブロックはｎ個の機能ブロックを有しており、前記第一加算器はｎ個の出力を有しており、ｎは整数である、請求項１に記載の機器。
【請求項３】
前記第一の複数のクロスバー・デバイスは、第一、第二、および第三のサブセットを含んでおり、前記第一のサブセットは前記第一の複数の入力を前記１つ以上の機能ブロックの入力にルーティングし、前記第二のサブセットは前記第一の１つ以上の機能ブロックの出力を前記第一の１つ以上の機能ブロックの入力にルーティングし、前記第三のサブセットは前記第一の１つ以上の機能ブロックの出力を前記第一の複数の出力にルーティングする、請求項１に記載の機器。
【請求項４】
前記サブセットのうちの少なくとも２つは同じサブセットである、請求項３に記載の機器。
【請求項５】
３つ全てのサブセットは同じものである、請求項３に記載の機器。
【請求項６】
前記第一機能ブロックは、
第二の複数の入力と、
第二の複数の出力と、
第二の１つ以上の機能ブロックと、
第二加算器と、
前記第二の複数の入力、前記第二の複数の出力、および前記第二の１つ以上の機能ブロックに結合された第二の複数のクロスバー・デバイスであって、前記第一の複数のクロスバー・デバイスが前記第一入力を前記第一の１つ以上の機能ブロックに結合し、前記第一の１つ以上の機能ブロックを互いに結合し、前記第一の１つ以上の機能ブロックを前記第一の出力に結合するのと同じ方法で、前記第二の複数の入力を前記第二の１つ以上の機能ブロックおよび／または前記第二加算器に結合し、前記第二の１つ以上の機能ブロックを互いに結合し、前記第二の１つ以上の機能ブロックを前記第二の複数の出力と結合し、前記第二の複数のクロスバー・デバイスが少なくとも第四、第五および第六クロスバー・デバイスを有しており、前記第二加算器の第一の１つ以上の入力が前記第四のクロスバー・デバイスの１つ以上の出力に結合されており、前記第二加算器の第二の１つ以上の入力が前記第五クロスバー・デバイスの出力に結合されており、前記第二加算器の１つ以上の出力が前記第三クロスバー・デバイスの１つ以上の入力に結合されている、第二の複数のクロスバー・デバイスと
を含んでいる、請求項１に記載の機器。
【請求項７】
前記第二の複数のクロスバー・デバイスは、第一、第二、および第三のサブセットを含んでおり、前記第一のサブセットは前記第二の複数の入力を前記第二の１つ以上の機能ブロックの入力にルーティングし、前記第二のサブセットは前記第二の１つ以上の機能ブロックの出力を前記第二の１つ以上の機能ブロックの前記入力にルーティングし、前記第三のサブセットは前記第二の１つ以上の機能ブロックの出力を前記第二の複数の出力にルーティングする、請求項６に記載の機器。
【請求項８】
前記サブセットのうちの少なくとも２つは同じサブセットである、請求項７に記載の機器。
【請求項９】
３つ全てのサブセットは同じものである、請求項７に記載の機器。
【請求項１０】
前記第二の１つ以上の機能ブロックは、入力、出力、１つ以上の機能ブロック、加算器およびクロスバー・デバイスの１つ以上の繰り返しネスト化された集合を含む第二の機能ブロックを含んでおり、各ネスト化された集合のクロスバー・デバイスは、前記第一の複数のクロスバーデバイスが前記第一の入力を前記第一の1つ以上の機能ブロックおよび前記加算器に接続し、前記加算器を前記第一の１つ以上の機能ブロックに接続し、前記第一の１つ以上の機能ブロックを互いに接続し、前記第一の１つ以上の機能ブロックを前記第一の出力に接続するのと同じ方法で、前記ネスト化された集合の前記入力、出力、加算器、および１つ以上の機能ブロックを相互接続している、請求項６に記載の機器。
【請求項１１】
前記第二機能ブロックは、
第三の複数の入力と、
第三の複数の出力と、
第三の１つ以上の機能ブロックと、
第三加算器と、
前記第三の複数の入力、前記第三の複数の出力、および前記第三の１つ以上の機能ブロックに結合された第三のクロスバー・デバイスであって、前記第二の複数のクロスバー・デバイスが前記第二入力を前記第二の１つ以上の機能ブロックと結合し、前記第二の１つ以上の機能ブロックを互いに結合し、前記第二の１つ以上の機能ブロックを前記第二出力に結合し、前記第一の複数のクロスバー・デバイスが前記第一入力を前記第一の１つ以上の機能ブロックに結合し、前記第一の１つ以上の機能ブロックを互いに結合し、前記第一の１つ以上の機能ブロックを前記第一の出力に結合するのと同じ方法で、前記第三の複数の入力を前記第三の１つ以上の機能ブロックおよび／または前記第三加算器に結合し、前記第三の１つ以上の機能ブロックを互いに結合させ、前記第三の１つ以上の機能ブロックを前記第三の複数の出力と結合させ、第三の複数のクロスバー・デバイスは少なくとも第七、第八、第九クロスバー・デバイスを含んでおり、前記第三加算器の第一の１つ以上の入力が前記第七クロスバー・デバイスの第一の１つ以上の出力に結合されており、前記第三加算器の第二の１つ以上の入力が前記第八クロスバー・デバイスの１つ以上の出力に結合されており、前記第二加算器の第一の１つ以上の出力が前記第九クロスバー・デバイスの１つ以上の入力に結合されている、第三の複数のクロスバー・デバイスと
を含んでいる、請求項１０に記載の機器。
【請求項１２】
前記機器は集積回路を形成するために使用される組み込み論理ブロックである、請求項１に記載の機器。
【請求項１３】
前記機器は集積回路である、請求項１に記載の機器。
【請求項１４】
入力、出力、加算器、１つ以上の機能ブロック、およびクロスバー・デバイスの前記１つ以上の繰り返しネスト化された集合のうちの少なくとも１つは、
ｍ個の再設定可能な論理ブロックであって、各論理ブロックは、ｎ個の入力、ｏ個の出力を有しており、ｍ、ｎおよびｏは整数であり、少なくとも１つの集合の出力として提供されるｍ×ｏ個の出力のサブセットを伴う、ｍ個の再設定可能な論理ブロックと、
２×ｍ個の入力およびｍ個の出力を含む加算器と、
ｎ個のクロスバー・デバイスであって、各々が前記ｍ個の再設定可能な論理ブロックの前記ｎ個の入力と対応して結合しているｍ個の出力を有しており、前記ｍ個の再設定可能な論理ブロックの出力は、前記ｎ個のクロスバー・デバイスの入力の第一サブセットに最大限に結合されており、少なくとも１つのネスト化された集合が前記ｎ個のクロスバー・デバイスの入力に結合されている、ｎ個のクロスバー・デバイスと
を含んでおり、
前記ｎ個のクロスバー・デバイスの第一のクロスバー・デバイスの前記ｍ個の出力は、前記加算器の第一のｍ個の入力に結合されており、前記ｎ個のクロスバー・デバイスの第二のクロスバー・デバイスの前記ｍ個の出力は、前記加算器の第二のｍ個の入力に結合されており、ｎ個のクロスバー・デバイスの１つはさらに、前記加算器の前記ｍ個の出力に結合されているｍ個の入力を有しており、
整数ｍ、ｎ、ｏは０よりも大きい、請求項１に記載の機器。
【請求項１５】
前記機器の各クロスバー・デバイスの出力は、１つは機能ブロックへ接続し、１つは加算器に接続する最大で２つの論理出力を有しており、前記機器の各クロスバー・デバイスは、前記機器の他のクロスバー・デバイスに対して入力を１つのみ提供する、請求項１４に記載の機器。
【請求項１６】
前記機器の各クロスバー・デバイスの出力は、１つは機能ブロックへ接続し、１つは加算器に接続する最大で２つの論理出力を有しており、前記機器の各クロスバー・デバイスは、前記機器の他のクロスバー・デバイスに対して入力を１つのみ提供する、請求項１に記載の機器。
【請求項１７】
ｍ個の再設定可能な論理ブロックであって、各論理ブロックはｎ個の入力とｏ個の出力、および前記論理ブロックの出力として提供される前記ｍ×ｏ個の出力のサブセットを含んでおり、ｍ、ｎ、ｏは整数である、ｍ個の再設定可能な論理ブロックと、
２×ｍ個の入力およびｍ個の出力を有する加算器と、
ｎ個のクロスバー・デバイスであって、各々は前記ｍ個の再設定可能な論理ブロックの前記ｎ個の入力と対応して結合しているｍ個の出力を有しており、前記ｍ個の再設定可能な論理ブロックの出力は、前記ｎ個のクロスバー・デバイスの入力の第一サブセットに最大限に結合されており、前記機能ブロックの入力は前記ｎ個のクロスバー・デバイスの入力の第二のサブセットに結合されている、ｎ個のクロスバー・デバイスと、
を含んでいる、機能ブロックであって、
前記ｎ個のクロスバー・デバイスの第一のクロスバー・デバイスの前記ｍ個の出力は、前記加算器の第一のｍ個の入力に結合されており、前記ｎ個のクロスバー・デバイスの第二のクロスバー・デバイスの前記ｍ個の出力は、前記加算器の第二のｍ個の入力に結合されており、前記ｎ個のクロスバー・デバイスの１つはさらに、前記加算器の前記ｍ個の出力に結合されており、
整数ｍ、ｎ、ｏは０よりも大きい、機能ブロック。
【請求項１８】
前記機能ブロックは集積回路を形成するために使用される組み込み論理ブロックである、請求項１７に記載の機能ブロック。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路（ＩＣ）分野に関する。特に本発明は、再設定可能なＩＣのアーキテクチャに関する。
【背景技術】
【０００２】
ＩＣの設計および製造技術は一般的に知られている。何年もの間ＩＣの設計および製造技術は進歩し続けてきており、より多くの電子的要素が１つのＩＣに実装され、これらの要素間の相互関係は飛躍的に複雑になってきている。増大した集積度および複雑性により、ＩＣ製造マスクの制作コストは相対的にかなり増加してきている。
【０００３】
その論理の総合性というコンテキストで見たときに、現代のＩＣ製品群の異なる提供の間で、または一連のオファリングの間で、機能性はしばしば比較的小さな程度で異なっている。このように新しいＩＣマスクの高コストと他の要素とを考慮して、ＩＣ設計者は、部分的に再設定可能なＩＣの入手することによって、異なる提供の間における機能性のわずかな程度の変更に対応することをますます望むようになっている。
【０００４】
特許文献１は、エミュレーション・アプリケーション用に設計された再設定可能なＩＣを開示している。特に統合されたバグ取りの能力を含むアーキテクチャは、意図された使用に特に適している。しかし汎用の部分的に再設定可能な集積回路は、異なる一連の挑戦をもたらす。１つの望ましい特性は、占有領域対ルーティング可能性（ａｒｅａ  ｃｏｎｓｕｍｐｔｉｏｎ  ｖｅｒｓｕｓ  ｒｏｕｔａｂｉｌｉｔｙ）とのより柔軟なトレードオフを提供する拡張性である。
【特許文献１】米国特許第５，５７４，３８８号明細書
【発明の開示】
【課題を解決するための手段】
【０００５】
本発明の実施形態は、添付の図面と併せて以下の詳細な記述により容易に理解されるであろう。この記述を理解しやすいものにするために、類似の参照番号は類似の構造的要素を表す。本発明の実施形態は、単なる一例として例示されており、添付の図面の中の図に限定することを目的とはしていない。
【０００６】
以下の詳細な説明の中で、添付の図面に対する参照がなされる。添付の図面は、本発明の一部分を構成し、図面を通して類似の数字が類似の部品を表わし、そして添付の図面は、本発明が実行され得る例示的実施形態によって示される。他の実施形態が利用され得ること、ならびに本発明の範囲を逸脱することなく構造的および論理的変更がなされ得ることが理解されるべきである。したがって、以下の詳細な説明は、限定的な意味で理解されるべきではなく、本発明にしたがう実施形態の範囲は、添付の特許請求の範囲およびそれらの同等物によって定義される。
【０００７】
様々な動作が、本発明の実施形態を理解する上で助けとなる形式で多くの別々の動作として順々に説明される。しかし説明の順序は、これらの動作がある順序に依存することを意味していると解釈されるべきではない。
【０００８】
説明は、上／下、前／後、およびトップ／底のような透視法に基づいた説明を用いている。このような説明は、単に議論を容易にするために用いられており、本発明の実施形態の適用を限定するようには意図されていない。
【０００９】
本発明の目的のために、語句「Ａ／Ｂ」はＡまたはＢを意味し、語句「Ａおよび／またはＢ」は「（Ａ）、（Ｂ）、または（ＡおよびＢ）」を意味する。本発明の目的のために、語句「Ａ、Ｂ、およびＣの内の少なくとも１つ」は、「（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、または（Ａ、Ｂ、およびＣ）」を意味し、語句「（Ａ）Ｂ」は「（Ｂ）または（ＡＢ）」を意味する。つまりＡは選択的要素である。
【００１０】
本説明では、各々が１つ以上の同じ、または異なる実施形態を参照する、語句「１つの実施形態では」または「（複数の）実施形態では」を用いる。さらに、本発明の実施形態に関して使用されている語句「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」「有する（ｈａｖｉｎｇ）」等は、同意語である。
【発明を実施するための最良の形態】
【００１１】
ここで図１を参照すると、図１は、１つの実施形態にしたがって本発明（１００）の再設定可能なＩＣの全体像を説明するブロック図である。説明されているように、ＩＣ１００は多くの機能ブロック１０２、および多くのクロスバー・デバイス１０４を含む。さらにＩＣ１００は、多くの外部出力ピンおよび外部入力ピンを含む。機能ブロック１０２はＩＣ１００の論理を提供し、クロスバー・デバイス１０４は、信号をＩＣ１００の中および外へ送信したり、ＩＣ１００内の機能ブロック間で送信したりする信号経由通路を提供する。以下でより詳細に説明されるように、有利にも、要素は簡単に拡張可能な方法で所望のルーティングが達成できる新規なアーキテクチャにしたがって結合され、占有領域対ルーティング可能性をトレードオフする際により多くの柔軟性を提供する。
【００１２】
機能ブロック１０２は、再設定不能機能ブロック１０２ａ、再設定可能機能ブロック１０２ｂ、および／または「ネスト化された」機能ブロック１０２ｃを含むことができる。例えば、機能ブロック１０２は、プロセッサ・コア、メモリ・コントローラ、バス・ブリッジ等の再設定不能機能ブロック１０２ａを含み得る。追加的に、あるいはその代わりに機能ブロック１０２は、ＰＬＤまたはＦＰＧＡ中に見られるものと同じ再設定可能回路のような再設定可能機能ブロック１０２ｂを含み得、ＩＳＡバスまたはＥＩＳＡバスの間、あるいは１２ＣまたはＳＰＩシリアル通信インターフェースの間をサポートする等のように、代替機能をサポートするように再設定可能である。「ネスト化された」機能ブロック１０２ｃの中の機能ブロックは、組織化され、機能ブロック１０２、外部入力および外部出力、ならびにクロスバー・デバイス１０４を、ＩＣレベル（「ルート」または「最高の」または「最も外側の」レベルとも称される）で相互接続するためのものと同じ相互接続アーキテクチャにしたがって相互接続される。「ネスト化された」機能ブロックの各々の集合は、再設定不能機能ブロック、再設定可能機能ブロック、および／または同じ相互接続アーキテクチャにしたがって相互接続された「ネスト化された」機能ブロックの集合を含み得る。結局「最も深い」ネスト化レベル（「最も低い」、「最も奥の」ネスト化レベルとも称される）で、各々の機能ブロックは、同じ相互接続アーキテクチャにしたがって相互接続されている再設定不能機能ブロックであるか、再設定可能なブロックである。
【００１３】
各々のクロスバー・デバイス１０４は、固定数の入力および固定数の出力を有している。出力の全ては、いずれの入力からも制限なく同時にルーティングされ得る（これは、完全に占有されているクロスバーにも当てはまる）。クロスバー・デバイス１０４の他の重要な特性は、信号がそれを通して常に同じ方向へ伝わるということである（例、入力から出力へ）。しかしそれは、任意の種類のクロスバー・デバイスのアーキテクチャ（例えば、パス・トランジスタの双方向性クロスバー・デバイス、または有線または一方向性のクロスバー・デバイス、またはバッファーされた単一方向性のクロスバー・デバイス）にも実装可能である。図１で示されているように、ＩＣレベルでは要素は以下の方式で互いに結合する。
【００１４】
ａ）クロスバー・デバイス１０４の第一サブセットは、接続部１５６および接続部１５０の第一サブセットを通して、外部入力ピンを機能ブロック１０２の第一サブセットにルーティングする。
【００１５】
ｂ）次に、クロスバー・デバイス１０４の第二サブセットは、接続部１５４の第一サブセットおよび接続部１５０の第二サブセットを通して、機能ブロック１０２出力の第一サブセットを機能ブロック１０２入力の第二サブセットにルーティングする。
【００１６】
ｃ）さらに、クロスバー・デバイス１０４の第三サブセットは、接続部１５４の第二サブセットおよび接続部１５２を通して、機能ブロック１０２出力の第二サブセットを外部出力ピンにルーティングする。
【００１７】
従って、全ての外部入力ピンは、クロスバー・デバイス１０４の第一サブセットを通して、機能ブロック１０２へ提供され得る。全ての内部信号は、クロスバー・デバイス１０４の第二サブセットを通して、１つの機能ブロック１０２から他の機能ブロック１０２にルーティングされ、全ての出力信号は、クロスバー・デバイス１０４の第三サブセットを通して、機能ブロック１０２から外部出力ピンにルーティングされ得る。
【００１８】
クロスバー・デバイス１０４の第一、第二および第三サブセットは、重複してもしなくても良く、３つのサブセットの各々は、クロスバー・デバイス１０４の全ての集合を含み得ることに留意されたい。同様に、機能ブロック１０２入力の第一および第二サブセットは重複してもしなくても良く、２つのサブセットの各々は、機能ブロック１０２入力の全ての集合を含み得る。同じく、機能ブロック１０２出力の第一および第二サブセットは重複してもしなくても良く、２つのサブセットの各々は、機能ブロック１０２出力の全ての集合を含み得る。
【００１９】
図２に示されているように、ネスト化された機能ブロック１０２ｃの各々の集合は、多くの機能ブロック２０２（これは再設定不能機能ブロック２０２ａ、再設定可能機能ブロック２０２ｂ、または「ネスト化された」機能ブロック２０２ｃであり得る）、およびクロスバー・デバイスを含む。クロスバー・デバイス２０４が、位相的にはＩＣレベルでクロスバー・デバイス１０４の類似位置を占めるのに対し、機能ブロック２０２は、位相的にはＩＣレベルで機能ブロック１０２の類似位置を占める。入力は、位相的にはＩＣレベルで外部入力ピンの類似位置を占め、出力は、位相的にはＩＣレベルで外部出力ピンの類似位置を占める。従って、
ａ）クロスバー・デバイス２０４の第一サブセットは、接続部２５６および接続部２５０の第一サブセットを通して、入力を機能ブロック２０２入力の第一サブセットにルーティングしている。
【００２０】
ｂ）次に、クロスバー・デバイス２０４の第二サブセットは、接続部２５４の第一サブセットおよび接続部２５０の第二サブセットを通して、機能ブロック２０２の出力の第一サブセットを機能ブロック２０２の入力の第二サブセットにルーティングしている。
【００２１】
ｃ）さらに、クロスバー・デバイス２０４の第三サブセットは、接続部２５４の第二サブセットおよび接続部２５２を通して、機能ブロック２０２出力の第二サブセットを出力にルーティングしている。
【００２２】
従って、全ての入力は、クロスバー・デバイス２０４の第一サブセットを通して機能ブロック２０２へ提供され得る。全ての内部信号は、クロスバー・デバイス２０４の第二サブセットを通して１つの機能ブロック２０２から他の機能ブロックへとルーティングされ得る。そして全ての出力信号は、クロスバー・デバイス２０４の第三サブセットを通して機能ブロック２０２から外部出力へとルーティングされ得る。
【００２３】
ＩＣレベルと同様に、クロスバー・デバイス２０４の第一、第二および第三サブセットは、重複してもしなくても良く、３つのサブセットの各々は、クロスバー・デバイス２０４の全ての集合を含み得る。同様に、機能ブロック２０２入力の第一および第二サブセットは、重複してもしなくても良く、２つのサブセットの各々は、機能ブロック２０２入力の全ての集合を含み得る。同じく、機能ブロック２０２出力の第一および第二サブセットは、重複してもしなくても良く、２つのサブセットの各々は、機能ブロック２０２出力の全ての集合を含み得る。
【００２４】
各々のクロスバー・デバイス２０４は、ＩＣレベルのクロスバー・デバイス１０４と同じタイプである。
【００２５】
従って、本発明では、本発明の各々の機能ブロック１０２は、繰り返し拡張され、占有領域対ルーティング可能性のより良いトレードオフを提供する。比較的に少量の信号経路を必要とするＩＣ１００の実装に対して、少数のクロスバー・デバイスおよび単一レベルの機能ブロックが、本発明の相互接続アーキテクチャにしたがって、使用され、相互接続され得る。しかしながら、より多くの機能ブロックを必要とするＩＣ１００の実装に対しては、１つ以上の機能ブロック１０２が、１回以上（要素がＩＣレベルで相互接続されているのと同じように相互接続されている各々のネスト化レベルの「要素」とともに）繰り返し拡張され得る。対応して、多くの入力および出力が、各々の再帰レベルの機能ブロックに対して提供される。このようにして、本発明のＩＣ１００には高い拡張性があり、占有領域、速度およびルーティング可能性のバランスをとる柔軟性がある。
【００２６】
容易に理解できるように、上記の説明はＩＣ１００が外部入力ピンおよび外部出力ピンを有しているように述べられているが、本発明は、入力あるいは出力のどちらか１つのみ実施可能な外部ピン、あるいは入力または出力に設定可能な外部ピンを用いても実行され得る。
【００２７】
図３は、図１の再設定可能な機能ブロック１０２ｂ、および図２の再設定可能な機能ブロック２０２ｂの実施形態をさらに詳細に説明している。この再設定可能な機能ブロックは、再設定可能な論理要素（ＲＬＥ：ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  ｌｏｇｉｃ  ｅｌｅｍｅｎｔｓ）の集合を含む。ＲＬＥは、（通常は１０未満の）少ないロジック・ゲートを表す単純論理機能、および／またはフリップ・フロップのような記憶機能を実行するように設定され得る要素である。例えば、単純論理機能は、４入力、１出力真理値表として使われる１６ビットのＲＡＭを使用して作動され得る。説明されているように、本実施形態に対して、再設定可能な機能ブロック１０２ｂは、ｎ個の入力３０６ａ〜３０６ｄ（ｎ＝４）およびｏ個の出力（ｏ＝１）を有するｍ個のＲＬＥ３０２ａ〜３０２ｈ（ｍ＝８）、ならびにｍ個の出力３１０ａ〜３１０ｈ（クロスバー・デバイス出力の数はＲＬＥの数と同じである）を有するｎ個のクロスバー・デバイス３０４ａ〜３０４ｄ（クロスバー・デバイスの数は、ＲＬＥ入力の数と同じである）を含む。クロスバー・デバイス３０４ａ〜３０４ｄが入力信号をＲＬＥにルーティングし、ＲＬＥ間で信号をルーティングする柔軟性を提供する一方、ＲＬＥ３０２ａ〜３０２ｈは、多くの論理機能を実装するように再設定可能である。ＲＬＥ３０２ａ〜３０２ｈの各々の出力はクロスバー・デバイス３０４ａ〜３０４ｄの各々の入力に対し、最大限に結合されている一方、クロスバー・デバイス３０４ａ〜３０４ｄの出力は、ＲＬＥ３０２ａ〜３０２ｈの各々の入力へ結合されている（クロスバー出力の数は、ＲＬＥの数と同じであるため、各々のＲＬＥは各々のクロスバー・デバイスから１つの入力を受ける）。すなわち、ＲＬＥからのｎ１個の出力があり、ｎ２個のクロスバー・デバイスがある場合に、各々のＲＬＥ出力は、１つのクロスバー・デバイスに相互接続され、最大数の相互接続が提供されているクロスバー・デバイスへ提供されている相互接続の数と、最小数の相互接続が提供されているクロスバー・デバイスへ提供されている相互接続の数との差は１である。例示的な実施形態では、ＲＬＥ３０２ａ〜３０２ｈからの８つの出力および４つのクロスバー・デバイス３０４ａ〜３０４ｄがあるので、各クロスバー・デバイスは２つのＲＬＥから入力を受ける。
【００２８】
再設定可能な機能ブロックの入力は、直接クロスバー・デバイス３０４ａ〜ｄの入力に提供され、再設定可能な機能ブロックの出力は、直接ＲＬＥ出力（これはＲＬＥ出力の全ての集合を含み得る）のサブセットによって提供される。例示的な実施形態では、クロスバー・デバイス３０４ａ〜ｄの各々は、４個の入力を受け、６つのＲＬＥ３０２ａ〜ｆのみが出力を提供する。
【００２９】
説明を容易にするために、上記の記述は、８つのＲＬＥ、６つの出力、および１６の入力を有する再生可能な機能ブロック１０２ｂについて述べていることに留意されたい。本発明はより多くのＲＬＥ、より多くの出力、より多くの入力を有する同じ構造のものでも実施され得る。
【００３０】
図４は、ＩＣ１００の１つの実施形態のクロスバー・デバイスの間の結合について説明している。ＩＣ１００のネスト化された機能ブロック１０２ｃ／２０２ｃが全体的に拡張されたとき、ＩＣ１００は、再設定不能機能ブロック１０２ａ／２０２ａ、再設定可能機能ブロック１０２ｂ／２０２ｂ、クロスバー・デバイス、外部入力ピンおよび外部出力ピンが相互接続されている集合へ縮小する。ＩＣ１００のルーティング可能性を増大させるために、機能ブロック出力と機能ブロック入力との間、外部入力ピンと機能ブロック入力との間、および機能ブロック出力ピンと外部出力ピンとの間に、最大限の数の異なる経路が供給されることが好ましい。すなわち、クロスバー・デバイス４０２の１つのみの出力が、他のクロスバー・デバイス４０４ａ〜４０４ｄの各々に接続される。さらにより速度を速めるために、各々のクロスバー・デバイス出力の容量性負荷は最低限にまで縮小されなければならない。すなわち、いずれのクロスバー・デバイス端子４０６も、単一のクロスバー・デバイス入力に接続される。従って、本発明のもとでは、クロスバー・デバイス４０２は、最大数のクロスバー・デバイス４０４ａ〜４０４ｄへ入力を提供することによって、経路の数を最大化しながらも、一方で出力の容量性負荷を最低限にまで縮小させる。
【００３１】
図５〜７は、図１〜２の再設定可能なＩＣの実装についてさらに詳細に説明している。説明されているように、ＩＣ５００はネスト化された機能ブロック５０２の１つの集合、８つのクロスバー・デバイス５０４ａ〜ｈ、３２個の外部出力ピン、３２個の外部入力ピン、および接続部５５０、５５２、５５４、５５６を含んでいる。クロスバー・デバイス５０４ｅ〜ｈは、接続部５５６および５５０を通して、外部入力ピンをネスト化された機能ブロック５０２入力にルーティングする、ＩＣレベルでのクロスバー・デバイスの第一サブセットである。クロスバー・デバイス５０４ａ〜ｄは、接続部５５４、５５２を通して、ネスト化された機能ブロック５０２入力に対し外部出力ピンにルーティングする、ＩＣレベルでのクロスバー・デバイスの第三サブセットである。本実装形態では、ＩＣレベルでのクロスバー・デバイスの第二サブセットは空（ｅｍｐｔｙ）である。従って「ネスト化された」機能ブロック５０２の集合は、位相的にはＩＣレベルで機能ブロック１０２の位置を占め、クロスバー・デバイス５０４ａ〜ｈは、位相的にはＩＣレベルのクロスバー・デバイス１０４の位置を占め、接続部５５０、５５２、５５４、５５６は、位相的にはそれぞれＩＣレベルの接続部１５０、１５２、１５４、１５６の位置を占める。クロスバー・デバイス６０４ａ〜ｆは、いくつかのネスト化された機能ブロック５０２のクロスバー・デバイスである（ネスト化された機能ブロック５０２の他のネスト化された要素は図示されていない）。
【００３２】
図６はネスト化された機能ブロック集合５０２の１つの実装形態を説明している。ネスト化された機能ブロック集合５０２は、２つのネスト化された機能ブロック６０２ａ〜ｂ（説明の目的のために、ブロック６０２ａ〜ｂは、入力および出力パターンを明確化するために２回表示されている）、６クロスバー・デバイス６０４ａ〜ｆ、２４入力、２４出力、ならびに接続部６５０、６５２、６５４、６５６を含む。クロスバー・デバイス６０４ａ〜ｆは、ネスト化された機能ブロック・レベルにおける第一、第二、および第三のクロスバー・デバイスのサブセットであり、それぞれのサブセットは、接続部６５６、６５０を通して、入力を機能ブロック６０２ａ〜ｂ入力にルーティングし、接続部６５４、６５０を通して、機能ブロック６０２ａ〜ｂ出力を機能ブロック６０２ａ〜ｂ入力にルーティングし、接続部６５４、６５２を通して、機能ブロック６０２ａ〜ｂ出力を出力にルーティングする。従って、クロスバー・デバイス６０４ａ〜ｆは、位相的にはネスト化された機能ブロック・レベルのクロスバー・デバイス２０４の位置を占め、接続部６５０、６５２、６５４、６５６は、位相的にはそれぞれネスト化された機能ブロック・レベルの接続部２５０、２５２、２５４，２５６の位置を占める一方、ネスト化された機能ブロック６０２ａ〜ｂは、位相的にはネスト化された機能ブロック２０２の位置を占める。クロスバー・デバイス７０４ａ〜ｄは、ネスト化された機能ブロック６０２ａ〜ｂのクロスバー・デバイスである（ネスト化された機能ブロック６０２ａ〜ｂの他のネスト化された要素は図示されていない）。
【００３３】
図７はネスト化された機能ブロック６０２ａ〜ｂの１つの実装形態を説明している。ネスト化された機能ブロック６０２ａ〜ｂは、４つのプログラム可能な機能ブロック７０２ａ〜ｄ（説明のために、ブロック７０２ａ〜ｄは、入力および出力パターンを明確化するために２回表示されている）、４クロスバー・デバイス７０４ａ〜ｄ、１２入力、１２出力、ならびに接続部７５０、７５２、７５４、７５６を含む。クロスバー・デバイス７０４ａ〜ｄは、ネスト化された機能ブロック・レベルにおけるクロスバー・デバイスの第一、第二、および第三のサブセットであり、それぞれのサブセットは、接続部７５６、７５０を通して、入力を機能ブロック７０２ａ〜ｄ入力にルーティングし、接続部７５４、７５０を通して、機能ブロック７０２ａ〜ｄ出力を機能ブロック７０２ａ〜ｄ入力にルーティングし、接続部７５４、７５２を通して、機能ブロック７０２ａ〜ｄ出力を出力にルーティングする。従って、ネスト化された機能ブロック７０２ａ〜ｄは、位相的にはネスト化された機能ブロック・レベルの機能ブロック２０２の位置を占め、クロスバー・デバイス７０４ａ〜ｄは、位相的にはネスト化された機能ブロック・レベルのクロスバー・デバイス２０４の位置を占め、接続部７５０、７５２、７５４、７５６は、それぞれ位相的にはネスト化された機能ブロック・レベルの接続部２５０、２５２、２５４，２５６の位置を占める。プログラム可能な機能ブロック７０２ａ〜ｄは、上記で記述され、図３で説明されているプログラム可能な機能ブロックと同じ実装形態である。
【００３４】
ＩＣ５００の各々のクロスバー・デバイスは、固定数の入力と固定数の出力とを有し、それゆえ本発明の１つの重要な特徴は、信号は常にクロスバー・デバイスを通して同じ方向へ伝わることに留意されたい。しかし本発明は、任意の種類のクロスバー・デバイスのアーキテクチャ（例えば、パス・トランジスタの双方向性クロスバー・デバイス、または有線または一方向性のクロスバー・デバイス、またはバッファーされた単一方向性のクロスバー・デバイス）を用いても実施可能であり得る。
【００３５】
さらに、ＩＣ５００のクロスバー・デバイスの間の全ての接続は、上記で開示され、図４で説明されている規則にしたがってなされる。
【００３６】
説明および理解を容易にするために、ＩＣ５００は意図的に少ない数の要素を使って説明されていることに留意されたい。しかしながら、当業者は、ＩＣ５００の実装形態は実際的には販売用製品を提供ほどに、拡大され得ることを理解するであろう。例えば、
ａ）ＩＣレベルは、１６の「４８入力、４８出力」クロスバー・デバイス、１つの第一レベルのネスト化された機能ブロック、３８４入力ピン、３８４出力ピンを含み得る；
ｂ）第一レベルのネスト化された機能ブロックは、４８の「３２入力端末、４８出力端末」クロスバー・デバイス、２４の第二レベルのネスト化された機能ブロック、３８４入力および３８４出力を含み得る；
ｃ）第二レベルのネスト化されたブロックは、１６  １３入力、３５出力クロスバー・デバイス、８プログラム可能な機能ブロック、８０入力および４８出力を含み得る；および
ｄ）プログラム可能な機能ブロックは４の「２０入力、１６出力」クロスバー・デバイス、１６の「４入力、１出力」ＲＬＥ、６４入力、１６出力を含み得る。
【００３７】
従って、ＩＣは３０９２ＲＬＥ，３８４外部出力ピンおよび３８４外部入力ピンを有する。
【００３８】
上記の再設定可能なＩＣは、いくつかの環境の下では加算器のような算術的論理を含むように設定され得る。加算器は、通常の再設定可能な論理を使用してしばしば実装され得るが、キャリーの管理はスペース（例、通常多くのＲＬＥが必要となる）と速度（例、通常キャリー伝達は長くなる）と言う面からいくぶん非効率的になる。この非効率性に対処する１つの方法は、スペースおよび速度という面でいくらかの改善をもたらし得る特定のキャリー・チェーン（ｃａｒｒｙ  ｃｈａｉｎ)を実装することである。例えば、図８は、図３の機能ブロック１０２ｂ／２０２ｂと類似しているが、キャリー・チェーンがある機能ブロックを表している。しかしながら、このような配線で接続されたキャリー・チェーンの使用は、ＲＬＥのビットのオーダーに制約を課し得る。これは図８に表されているように、出力クロスバー・デバイスがない場合に問題となり得る。結果としてオーダーの制約は、より上のレベルにまで伝達され、例えば場所および経路プロセスなどの全体的効率を下げ得る。
【００３９】
図３で表されている実施形態の代わりとして、図９は様々な実施形態にしたがって、図１の再設定可能な機能ブロック１０２ｂ、および図２の再設定可能な機能ブロック２０２ｂを表す。機能ブロックは、図３に表されているものに類似する部品（例、ＲＬＥ３０２ａ〜３０２ｈ、ならびにクロスバー・デバイス９０４ａ〜９０４ｄおよびそれらの入力／出力）を有し、全ては前述したように類似する機能を実行し、類似する関係を有する。しかしながら、機能ブロックは、図示されているようにクロスバー・デバイス９０４ｂ〜９０４ｄおよびＲＬＥ３０２ａ〜３０２ｈに結合している加算器９０６をさらに含む。特に、加算器９０６の出力がクロスバー・デバイス９０４ｂと結合する一方で、加算器９０６の入力は、クロスバー・デバイス９０４ｃ〜９０４ｄの２つの出力と結合する。この説明のために、クロスバー・デバイス９０４ｃ〜９０４ｄが拡大していないクロスバー・デバイスとして参照され得る一方、クロスバー・デバイス９０４ｂは、拡大されたクロスバー・デバイス（例、追加された入力）として参照され得る。この実施形態のために、加算器９０６出力の数によって規定される加算器９０６の幅は、ＲＬＥ９０２ａ〜９０２ｈの数と同じであり得る。様々な実施形態において、加算器９０６は出力の数に対して２倍の数の入力を有し得る。
【００４０】
このような加算器を使用する１つの典型的な方法は、加算器の出力をＲＬＥ９０２ａ〜９０２ｈに送信するようにクロスバー・デバイス９０４ｂを構成し、適切な入力を加算器に送信するようにクロスバー・デバイス９０４ｃおよび９０４ｄを構成し、（クロスバー・デバイス９０４ｂに接続している）第二の入力を透過的にそれらの出力にコピーするようにＲＬＥ９０２ａ〜９０２ｈを構成することである。このようにすることは、キャリー・チェーンのオーダーが任意であり、マトリックス９０４ｂ、９０４ｃおよび９０４ｄの構成によって決められ、実際的により高い階層へのオーダーの制約を抑止することを除いては、この論理を図８にあるような働きをさせることである。
【００４１】
既に説明された他の実施形態（例、図３）と同様に、代わりの実施形態では、クロスバー・デバイス、ＲＬＥ、およびそれらの入力／出力の実際の数は図９で表されている数よりも多いこともあり得ることに留意されたい。さらに、他の実施形態では追加の加算器もまた含まれ得る。
【００４２】
好ましい実施形態の説明の目的のために、本明細書でいくつかの実施形態が説明され、記述されてきたが、当業者には同じ目的を達成するために予想される多くの種類の代替的な実施形態および／または同等の実施形態、あるいは実装方法が、本発明の範囲から逸脱することなく、明示された実施形態に対して置き換えられ、説明され得るということが理解されるであろう。当業者は本発明にしたがう実施形態は、非常に多くの方法で実行され得ることを直ちに理解するであろう。本出願は、本明細書中で説明されている実施形態のいかなる適用、または変形物をもカバーするように意図されている。それゆえ本発明にしたがう実施形態は、請求項およびそれらの同等物に限定されることがはっきりと意図されている。
【図面の簡単な説明】
【００４３】
【図１】図１および図２は、１つの実施形態にしたがう本発明の拡張可能なアーキテクチャに組み込まれた再設定可能な集積回路の全体像を表す。
【図２】図１および図２は、１つの実施形態にしたがう本発明の拡張可能なアーキテクチャに組み込まれた再設定可能な集積回路の全体像を表す。
【図３】図３は、１つの実施形態にしたがうより詳細な再設定可能な機能ブロックを表す。
【図４】図４は、１つの実施形態にしたがうクロスバーの間の相互接続を表す。
【図５】図５〜７は、図１および２の再設定可能なＩＣのさらに詳細な実装を表す。
【図６】図５〜７は、図１および２の再設定可能なＩＣのさらに詳細な実装を表す。
【図７】図５〜７は、図１および２の再設定可能なＩＣのさらに詳細な実装を表す。
【図８】図８は、キャリーチェーン付の再設定可能な機能ブロックを表す。
【図９】図９は、様々な実施形態にしたがう加算器付きの再設定可能な機能ブロックを表す。
【図１】
2009524228.tif 000003
【図２】
2009524228.tif 000004
【図３】
2009524228.tif 000005
【図４】
2009524228.tif 000006
【図５】
2009524228.tif 000007
【図６】
2009524228.tif 000008
【図７】
2009524228.tif 000009
【図８】
2009524228.tif 000010
【図９】
2009524228.tif 000011
【国際調査報告】
2009524228.tif 000012
2009524228.tif 000013
2009524228.tif 000014