TOP > 国内特許検索 > 多次元のスイッチトポロジーを有する集積回路 > 明細書

明細書 :多次元のスイッチトポロジーを有する集積回路

発行国 日本国特許庁(JP)
公報種別 特許公報(B2)
特許番号 特許第4576538号 (P4576538)
登録日 平成22年9月3日(2010.9.3)
発行日 平成22年11月10日(2010.11.10)
発明の名称または考案の名称 多次元のスイッチトポロジーを有する集積回路
国際特許分類 H03K  19/173       (2006.01)
H01L  21/82        (2006.01)
FI H03K 19/173 101
H01L 21/82 A
請求項の数または発明の数 21
全頁数 28
出願番号 特願2006-512926 (P2006-512926)
出願日 平成17年3月28日(2005.3.28)
国際出願番号 PCT/JP2005/005755
国際公開番号 WO2005/109646
国際公開日 平成17年11月17日(2005.11.17)
優先権出願番号 2004170571
2004281528
優先日 平成16年5月12日(2004.5.12)
平成16年9月28日(2004.9.28)
優先権主張国 日本国(JP)
日本国(JP)
審査請求日 平成20年2月1日(2008.2.1)
特許権者または実用新案権者 【識別番号】504147243
【氏名又は名称】国立大学法人 岡山大学
発明者または考案者 【氏名】松本 洋平
【氏名】正木 亮
個別代理人の代理人 【識別番号】110000338、【氏名又は名称】特許業務法人原謙三国際特許事務所
審査官 【審査官】柳下 勝幸
参考文献・文献 米国特許第5748942(US,A)
Alexander, M.J.; Cohoon, J.P.; Colflesh, J.L.; Karro, J.; Robins, G.;,Three-dimensional field-programmable gate arrays,ASIC Conference and Exhibit, 1995., Proceedings of the Eighth Annual IEEE International,米国,1995年 9月22日,Pages253-256
調査した分野 H03K 19/173
H01L 21/82
特許請求の範囲 【請求項1】
n次元FPGAのスイッチトポロジーをm次元(m、nは自然数であり、m<n、かつ、4≦n)の集積回路に埋め込んで実現するFPGAの設計方法。
【請求項2】
m=2、n=4である請求項1の設計方法。
【請求項3】
n次元FPGAのスイッチトポロジーをm次元(m、nは自然数であり、m<n、かつ、4≦n)の集積回路に埋め込んでなるFPGAからなる半導体集積回路。
【請求項5】
m=2、n=4である請求項3の半導体集積回路。
【請求項6】
各軸方向の配線チャネルが多種長の配線を含むFPGAからなる請求項3の半導体集積回路。
【請求項7】
各軸方向の配線チャネルが長尺の配線を含むFPGAからなる請求項3の半導体集積回路。
【請求項8】
近接する各軸方向の配線チャネルの端点同士を接続してなるFPGAからなる請求項3の半導体集積回路。
【請求項9】
各基本ブロックが階層構造を持つFPGAからなる請求項3の半導体集積回路。
【請求項10】
3次元FPGAのスイッチトポロジーを2次元の集積回路に埋め込んでなるFPGAからなる半導体集積回路であって、
同一x-y位置に存在する基本ブロックを1つのサブリージョンとして2次元状に形成し、z方向の接続を施し、これらのサブリージョンを2次元配列状に並べ、横方向に並ぶサブリージョンの同一z位置に存在する基本ブロック間にx方向の接続を、縦方向に並ぶサブリージョンの同一z位置に存在する基本ブロック間にy方向の接続を施してなるFPGAからなる半導体集積回路。
【請求項11】
同一u-v位置に存在する基本ブロックを1つのサブリージョンとして2次元配列状に形成し、横方向に並ぶ基本ブロック間にx方向の接続を、縦方向に並ぶ基本ブロック間にy方向の接続を施し、これらのサブリージョンを2次元配列状に並べ、横方向に並ぶサブリージョンの同一x-y位置に存在する基本ブロック間にu方向の接続を、縦方向に並ぶサブリージョンの同一x-y位置に存在する基本ブロック間にv方向の接続を施してなるFPGAからなる請求項5の半導体集積回路。
【請求項12】
各サブリージョンにおいて、z方向の配線チャネルの下端と上端を接続してなるFPGAからなる請求項10の半導体集積回路。
【請求項13】
サブリージョンをz方向に隣接する基本ブロック同士が隣接するようにならべ2次元状に形成してなるFPGAからなる請求項10の半導体集積回路
【請求項14】
第1のサブリージョンのy方向の配線チャネルの下端と、第1のサブリージョンの下方向に隣接する第2のサブリージョンのy方向の配線チャネルの上端を接続してなるFPGAからなる請求項11の半導体集積回路。
【請求項15】
第1のサブリージョンのx方向の配線チャネルの右端と、第1のサブリージョンの右方向に隣接する第2のサブリージョンのx方向の配線チャネルの左端を接続してなるFPGAからなる請求項11の半導体集積回路
【請求項16】
サブリージョンを、基本ブロックを縦方向に直線的に並べることによって形成してなるFPGAからなる請求項13の半導体集積回路。
【請求項17】
サブリージョンを、基本ブロックを少なくとも1度z軸を折り曲げて並べることによって形成してなるFPGAからなる請求項13の半導体集積回路。
【請求項18】
第1のサブリージョンのz方向の配線チャネルの下端と、下方向に隣接する第2のサブリージョンのz方向の配線チャネルの上端を接続してなるFPGAからなる請求項16の半導体集積回路
【請求項21】
複数の基本ブロックと、前記各基本ブロックに設けられたスイッチング素子とを備え、前記基本ブロック同士がそれぞれのスイッチング素子を介して接続されているプログラマブルデバイスにおいて、
前記複数の基本ブロックのうちの少なくとも一部のものは、行列状に配置されるとともに、行方向及び列方向に沿って順次接続されてなる基本ブロック行列を複数構成しており、
前記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士が互いに接続されており、
前記複数の基本ブロック行列は平面的に配置されているとともに、
前記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロックは、所定の領域にひとまとまりに配置されているプログラマブルデバイス。
【請求項22】
前記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士の接続は、1次元的な接続である請求項21のプログラマブルデバイス。
【請求項23】
複数の基本ブロックと、前記各基本ブロックに設けられたスイッチング素子とを備え、前記基本ブロック同士がそれぞれのスイッチング素子を介して接続されているプログラマブルデバイスにおいて、
前記複数の基本ブロックのうちの少なくとも一部のものは、行列状に配置されるとともに、行方向及び列方向に沿って順次接続されてなる基本ブロック行列を複数構成しており、
前記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士が互いに接続されており、
前記複数の基本ブロック行列は平面的に配置されているとともに、
前記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士の接続は、2次元的な接続であるプログラマブルデバイス。
【請求項24】
前記各基本ブロック行列を構成する基本ブロックは、所定の領域にひとまとまりに配置されている請求項23のプログラマブルデバイス。
発明の詳細な説明 【技術分野】
【0001】
本発明は、論理機能を再設定可能なフィールドプログラマブルゲートアレー(Field Programmable Gate Array、以下、「FPGA」と略記する)の配線アーキテクチャに係り、多次元のスイッチトポロジーを有する配線アーキテクチャ及びかかる配線アーキテクチャを有する集積回路に関するものである。また、本発明は、複数の基本ブロックと、各基本ブロックに設けられたスイッチング素子とを備え、基本ブロック同士がそれぞれのスイッチング素子を介して接続されているプログラマブルデバイスに関するものである。
【背景技術】
【0002】
論理機能を再設定可能なFPGAとしては多数の製品が存在する。そのようなFPGAの構造の一例が特許文献1~11に記載されている。

【特許文献1】 日本国公表特許公報 特表平8-509344号公報(公開日:1996年10月1日)
【特許文献2】 日本国公表特許公報 特表2001-519133号公報(公開日:2001年10月16日)
【特許文献3】 米国特許第RE.34,363号(公開日:1993年8月31日)
【特許文献4】 米国特許第5,455,525号(公開日:1995年10月3日)
【特許文献5】 米国特許第5,682,107号(公開日:1997年10月28日)
【特許文献6】 米国特許第5,689,195号(公開日:1997年11月18日)
【特許文献7】 米国特許第5,883,526号(公開日:1999年3月16日)
【特許文献8】 米国特許第5,914,616号(公開日:1999年1月22日)
【特許文献9】 米国特許第5,942,913号(公開日:1999年8月24日)
【特許文献10】 米国特許第6,084,429号(公開日:2000年7月4日)
【特許文献11】 米国特許第6,300,794号(公開日:2001年10月9日)
【0003】
特許文献1,2,5,8,9に見られるように、一般にFPGAは図1aのような基本ブロックを図4のように2次元配列状に並べた形で実現される。ここでは横方向をx方向、縦方向をy方向として説明する。一般に基本ブロックは、ブロック間を接続する配線チャネル106・107と、経路を指示するスイッチマトリックス101と、可変論理素子及び記憶素子からなる論理ブロック102とからなる。スイッチマトリックス101と論理ブロック102との間は配線105によって接続される。各基本ブロック間を接続する配線としては、隣接基本ブロック間の接続をする配線103や、2つ以上先の基本ブロックへ接続する配線104も存在する。
【0004】
図2は、論理ブロック102の具体例であり、この例では可変論理素子としてのルックアップテーブル202、記憶素子としてのディーフリップフロップ203を備えた例を示している。ルックアップテーブル202はSRAMなどのメモリによって構成される。ルックアップテーブル202及びディーフリップフロップ203の出力信号はルックアップテーブル202の入力にフィードバックされ、同時に、配線105を通じてスイッチマトリックス101に出力される。また、基本ブロック外部からの信号もスイッチマトリックス101から配線105を通じてルックアップテーブル202に入力する。ルックアップテーブル202の入力部には、ルックアップテーブル202及びディーフリップフロップ203の出力フィードバックと、配線105からの基本ブロック外部からの信号とのうち1つを選択可能とするためのプログラマブルスイッチ201が備えられている。また、近年のFPGAでは、図2のような論理ブロックにキャリー計算装置を付加したブロックや、メモリや乗算器のみで構成されるブロックも存在する。
【0005】
図1bはスイッチマトリックス101のトポロジーを示している。図1bではx方向の左側の配線チャネル106aから、各配線チャネル106b・105a・105bへ接続するスイッチの有無を矢印で示している。2次元のスイッチマトリックス101では3方向の配線チャネルへ接続するスイッチが必要となる。ここではx方向の左側の配線チャネル106aから他の配線チャネル106b・105a・105bへの接続のみを示しているが、いずれの方向の配線チャネルからも同様に各方向の配線チャネルに接続するスイッチが存在する。
【0006】
スイッチマトリックス101には図3のようなスイッチが存在し、図1aに示した配線103や配線104等の上下左右の基本ブロックに接続する配線同士を短絡する。このスイッチは、マルチプレクサ301を備えている。マルチプレクサ301では、スイッチマトリックス101に接続する上下左右の基本ブロック間を接続する配線から引き出した配線303、及び論理ブロック102からの出力である配線105のうちのいくつかが入力・選択され、配線103や配線104などの基本ブロック間を接続する配線のうちの1本を駆動するトライステートバッファ302に接続される。トライステートバッファ302を用いることにより、出力先の配線(例えば配線103)を双方向の配線としてつかえるようになっている。なお、トライステートバッファ302の代わりに通常のバッファにする、あるいは、バッファを設けないスイッチの構成も存在する。スイッチはSRAMなどのメモリによって制御される。
【0007】
ユーザは使用前にスイッチを制御するメモリや、ルックアップテーブルを構成するメモリに適切な値を設定することでFPGAに所望の動作をさせることができる。
【0008】
半導体プロセス技術の微細化の進歩に伴い、カスタム設計が長期化・高コスト化している。これに対して、FPGAは再構成可能な性質により、論理機能の設計に必要な時間・コストが極めて少ない。また、FPGAは規則的な構造を有し、最新の半導体プロセス技術を比較的容易に適用できることから、今後も一層の集積度向上が期待できる。実際、FPGAではASIC(Application Specific Integrated Circuit、以下、「ASIC」と略記する)よりも新しい半導体プロセス技術が適用されている。したがって、初期の頃は試作などがFPGAの主な用途であったが、近年は性能向上により、DSPや小・中規模のASICの代替として注目され、その用途も広がっている。微細化が進むことによってFPGAの利点が大きくなることから、携帯電子機器やデジタル家電などの幅広い用途への拡大が期待できる。
【0009】
しかし、FPGAにおける配線は多くのスイッチを通過することから、ASICに比較して極めて低速である。また、FPGAには非常に多くのスイッチが存在するため、ASICに比較して論理密度が極めて小さい。これらの問題は、集積度の向上とともに平均配線長や配線領域がより巨大化することになるため、一層大きくなる。したがって大規模FPGAを実現する際にはこれらの問題を根本的に解決する必要がある。
【0010】
この状況を改善するために、図1aの配線104のような、いくつかのスイッチマトリックスを飛び越えて接続する配線が設けられている。この場合、その配線が飛び越えるスイッチマトリックスの数や、その配線の本数などの慎重な最適化が必要となる。
【0011】
また、論理ブロック102間の配線を少なくするために論理ブロック102の粒度を大きくすることが考えられる。図2の論理ブロック102はルックアップテーブル202とフリップフロップ203との組である論理エレメントを2つ備えた形になっているが、より多く、例えば、4つの論理エレメントを備えたような論理ブロックを用意する。これは、特許文献6に見られる階層構造を持つFPGAと同様の構造である。ここでは、FPGA全体はスーパーリージョン、基本ブロックはサブリージョンと考える。スーパーリージョンは通常の2次元配列構造であるが、サブリージョン内部では図2のように各論理エレメントの間は等価に接続され、サブリージョンからスーパーリージョンの配線への接続は、各論理エレメントとスイッチマトリックスの間も等価に接続される。このような構造はサブリージョンを大きくすると、スイッチ数や、内部配線の遅延が急激に増加する問題が生ずる。
【0012】
これに関しては、特許文献7のようにサブリージョン内部配線をセグメント化することや、特許文献11のようにサブリージョン内部に更なる階層化を施すことなどの改良案が存在する。
【0013】
特許文献4などに見られる窓枠アーキテクチャも階層構造の一種であると考えられるが、ここでは、サブリージョン内の接続は2次元配列構造となっており、サブリージョンの辺縁部から、スーパーリージョンの配線チャネルに接続する。この構造ではサブリージョンを大きくすると、スーパーリージョンの配線が無駄に長くなるため、特許文献10のようにスーパーリージョンにおける配線をセグメント化する改良案が存在する。これらの階層構造を持つ配線アーキテクチャにおいても、サブリージョンの大きさ、サブリージョン内部の接続等慎重な最適化を要する。
【0014】
一般的なFPGAはこれらの最適化が施されているが、FPGAの将来的な配線領域・遅延の増加に有効であるかどうかは明らかでない。そこで、FPGAの配線の問題を根本的に解決する目的で非特許文献1や非特許文献2などの3次元FPGAの提案が行われている。

【非特許文献1】 A.Rahman et al.,″Wiring Requirement and Three-Dimensional Integration of Field-Programmable Gate Array,″Proc.SLIP,2001.
【非特許文献2】 M.Leeser et al.,″Rothko:A Three-Dimensional FPGA,″IEEE Design and Test of Computers,Vol.15(no.1),pp.16-23,1998.
【0015】
3次元FPGAの基本ブロックの例を図5に示す。ここでは、チップの横方向をx、縦方向をy、垂直方向をzとする。配線チャネル503・504は、それぞれx、y方向の配線チャネルであり、配線チャネル506はz方向の配線チャネルである。配線チャネル506は上層、または、下層のタイルのスイッチマトリックス501と接続する。なお、図5の基本ブロックにおけるスイッチマトリックス501及び論理ブロック502は、それぞれ図1の基本ブロックにおけるスイッチマトリックス101及び論理ブロック102に対応するものである。図6aは、スイッチマトリックス501に接続する配線の立体図を表している。図6bは、スイッチマトリックス501のトポロジーを示している。ここでは図が煩雑になるのを避けるため、x方向の左側の配線チャネル503aから各方向の配線チャネル503b・504a・504b・506a・506bへの接続のみを示しているが、いずれの方向からも同様で、各方向に接続するスイッチが存在する。したがって、3次元FPGAではスイッチマトリックスにおいては5方向に接続するスイッチが必要になる。スイッチマトリックス501の内部では、ある方向の配線チャネルから全ての方向の配線チャネルに接続できるようになっている。図7は各スイッチマトリックス501の3次元FPGAにおける接続を示している。
【0016】
これによって、1つの基本ブロックに隣接する基本ブロックの数が増えるため、基本ブロック間の接続はより少ない数のスイッチマトリックスを経由することで実現でき配線遅延を削減することができる。また、FPGAにおいてスイッチの数は配線チャネルのトラック数(配線チャネルは配線を束ねたものであり、配線チャネルを構成する各配線をトラックと称し、その数が配線チャネルのトラック数である。)に比例する。2次元のスイッチマトリックスでは3方向の配線チャネルと接続があったが、3次元のスイッチマトリックスでは5方向と増えるためトラック当たりのスイッチ数が増加するが、大規模な3次元FPGAでは2次元FPGAに比較して配線チャネルに必要なトラック数が非常に少なくなるため、3次元FPGAの方の論理密度が高くなる。
【0017】
非特許文献1では、20kゲート規模のFPGAを4層の3次元FPGAとして構成する場合、配線遅延が45~60%、論理集積度が20~40%改善するとしている。また、この改善度は論理集積度が向上するほど高くなることが示されており、大規模なFPGAほど3次元集積の効果が高いことがわかる。
【0018】
しかし、微細な垂直方向の配線を作ることが難しいため、3次元FPGAを製造することは極めて困難であり、また、3次元集積回路は放熱が困難であり積層可能な層数に限りがあることから、将来的に十分な集積度の3次元FPGAを実現することは不可能である。
【発明の開示】
【0019】
FPGAの回路遅延の大部分が配線遅延である。配線遅延が大きくなるのは、基本ブロック間の配線では多くのスイッチマトリックスを経由するためである。また、集積度が大きくなるほど、経由するスイッチマトリックスの数は増えるため、回路遅延に配線遅延が占める割合も増大する。
【0020】
FPGAのチップ面積の大部分はスイッチマトリックスを構成するトランジスタによって占められている。ASICでは金属配線の領域が不足するが、FPGAでは金属配線よりもトランジスタ領域が不足する。また、集積度が大きくなるほど、スイッチマトリックスに必要なスイッチの数が増加し論理密度が低下する。
【0021】
以上の2つの問題を解決する手段として、3次元集積技術を用いた3次元FPGAの研究が行われてきた。3次元FPGAでは基本ブロック間の接続の平均配線長、すなわち、スイッチの通過段数が劇的に減少するため、FPGAの回路遅延の大部分を占める配線遅延が大幅に改善される。また、3次元FPGAでは配線チャネルに必要なトラック数が劇的に減少するため、スイッチマトリックスを構成するトランジスタの数も減少し、論理集積度は向上する。しかし、3次元集積技術は依然として解決すべき困難な課題が多い。その一つに層間の貫通電極の問題がある。層間を接続する貫通電極は水平方向の配線に比較して太く、あまり多く作ることはできない。このため集積度をあまり高くできないという問題がある。さらに、素子の製造が技術的に難しいために歩留まりの低下が生じ、十分な集積度の3次元FPGAは実現されるに至っていない。その上、3次元集積回路には放熱が難しく積層できる数に限界があり、かかる点からも十分な集積度の3次元FPGAを提供することが困難である。このため、今後も水平方向、垂直方向が同じ特性を持つような完全に理想的な3次元FPGAが実現されることはないと考えられる。従って、現状の3次元集積回路技術では、今日の電子機器の情報量の拡大化、多機能化や高速度化に対応するに十分な集積回路及びかかる集積回路を有するシステムを提供することができない。
【0022】
本発明者は3次元FPGAの配線遅延の改善効果及び論理集積度の向上という長所を活かし、かつ製造技術上の欠点を改良する配線アーキテクチャの開発研究に鋭意取り組み、多次元のスイッチトポロジーをより低次元のチップに埋め込むことにより、現状の3次元FPGAが有する上述の課題を解決し本発明を完成するに至った。なお本発明で多次元とは3次元以上の高次元を意味する。
【0023】
本発明によれば、(1)n次元FPGAのスイッチトポロジーをm次元の集積回路に埋め込んで実現することを特徴とするFPGAの設計方法、ここで、m、nはいずれも自然数であり、m<nの関係がある。(2)m=2、n=3又は4である上記(1)に記載のFPGAの設計方法、(3)n次元FPGAのスイッチトポロジーをm次元の集積回路に埋め込んでなるFPGAからなる半導体集積回路、(4)n=3、m=2である上記(3)に記載の半導体集積回路、(5)n=4、m=2である上記(3)に記載の半導体集積回路、(6)上記(3)に記載のFPGAからなる半導体集積回路であって、各軸方向の配線チャネルが多種長の配線を含むFPGAからなる半導体集積回路、(7)上記(3)に記載のFPGAからなる導体集積回路であって、各軸方向の配線チャネルが長尺の配線を含むFPGAからなる半導体集積回路、(8)上記(3)に記載のFPGAからなる導体集積回路において、近接する各軸方向の配線チャネルの端点同士を接続してなるFPGAからなる半導体集積回路、(9)上記(3)に記載のFPGAからなる導体集積回路であって、各基本ブロックが階層構造を持つFPGAからなる半導体集積回路、(10)上記(4)に記載のFPGAからなる導体集積回路において、同一x-y位置に存在する基本ブロックを1つのサブリージョンとして2次元状に形成し、z方向の接続を施し,これらのサブリージョンを2次元配列状に並べ,横方向に並ぶサブリージョンの同一z位置に存在する基本ブロック間にx方向の接続を,縦方向に並ぶサブリージョンの同一z位置に存在する基本ブロック間にy方向の接続を施すことによって実現されるFPGAからなる半導体集積回路、(11)上記(5)に記載のFPGAからなる半導体集積回路において、同一u-v位置に存在する基本ブロックを1つのサブリージョンとして2次元配列状に形成し、横方向に並ぶ基本ブロック間にx方向の接続を、縦方向に並ぶ基本ブロック間にy方向の接続を施し、これらのサブリージョンを2次元配列状に並べ、横方向に並ぶサブリージョンの同一x-y位置に存在する基本ブロック間にu方向の接続を、縦方向に並ぶサブリージョンの同一x-y位置に存在する基本ブロック間にv方向の接続を施すことによって実現されるFPGMからなる半導体集積回路、(12)上記(10)に記載のFPGAからなる半導体集積回路において、各サブリージョンにおいてz方向の配線チャネルの下端と上端を接続してなるFPGAからなる半導体集積回路、(13)上記(10)に記載のFPGAからなる半導体集積回路において、サブリージョンを、z方向に隣接する基本ブロック同士が隣接するように並べ2次元状に形成して実現されるFPGAからなる半導体集積回路、(14)上記(11)に記載のFPGAからなる半導体集積回路において、第1のサブリージョンのy方向の配線チャネルの下端と、第1のサブリージョンの下方向に隣接する第2のサブリージョンのy方向の配線チャネルの上端を接続して実現されるFPGAからなる半導体集積回路、(15)上記(11)に記載のFPGAからなる半導体集積回路において、第1のサブリージョンのx方向の配線チャネルの右端と,第1のサブリージョンの右方向に隣接する第2のサブリージョンのx方向の配線チャネルの左端を接続して実現されるFPGAからなる半導体集積回路、(16)上記(13)に記載のFPGAからなる半導体集積回路において、サブリージョンを、基本ブロックを縦方向に直線的に並べることによって形成して実現されるFPGAからなる半導体集積回路、(17)上記(13)に記載のFPGAからなる半導体集積回路において、サブリージョンを、基本ブロックを少なくとも一度z軸を折り曲げて並べることによって形成して実現されるFPGAからなる半導体集積回路、(18)上記(16)に記載のFPGAからなる半導体集積回路において、第1のサブリージョンのz方向の配線チャネルの下端と、下方向に隣接する第2のサブリージョンのz方向の配線チャネルの上端を接続して実現されるFPGAからなる半導体集積回路、が提供される。
【0024】
本発明は、論理ブロックの構造、論理ブロックとスイッチマトリックスとの間の接続などについて特に限定しない。また、論理ブロックが、メモリや乗算器などの機能ユニットを持つブロックで置き換えられたものもまた本発明に含まれる。
【0025】
n次元FPGA(nが4以上の場合は仮想的な存在であるが)は、各軸方向にアレイ状に整列した基本ブロックがn次元格子状の配線によって接続されるものとする。
【0026】
n次元FPGAのスイッチトポロジーを持つFPGAは、そのFPGAの基本ブロックを構成するスイッチマトリックスに各軸の正方向、負方向を合わせて2n方向の配線チャネルが接続され、第1の方向の配線チャネルの少なくとも1つの配線トラックから第1の方向以外のすべての2n-1方向の配線チャネルのそれぞれ少なくとも1つの配線トラックに信号を伝播させるためのスイッチが存在する。
【0027】
本発明において方向を表現するのに用いる「縦」と「横」は交換可能であるとする。また、軸を表現するのに用いるx,y,u,v,zなどもまた交換可能であるとする。
【0028】
本発明は、高次元のスイッチトポロジーを持つFPGAをより低次のチップへ埋め込むことを特徴とする。このことにより、FPGAは規模が大きくなるほど論理ブロック間を接続するスイッチの段数や、FPGAに設けるスイッチの数が増加するという問題を抑制し、性能を大きく改善することができる。特に、2次元チップ構造に埋め込んだ場合には、製造はきわめて容易となり、歩留まりも改善し、かつ製造コストも経済的である高集積度のFPGAを提供することが可能となる。また、本発明の配線アーキテクチャを実現するための配線プロセスも通常の2次元チップで用いられるプロセスと同一である。しかも2次元構造のため放熱性は2次元のFPGAと同様であり、3次元構造における蓄熱による弊害の心配はない。更に、本発明では4次元以上のスイッチトポロジーを持つFPGAを2次元チップに埋め込むことや、3次元集積技術を用いる実際の3次元チップに埋め込むことも可能である。3次元集積技術が発展し、十分な集積度を持つ3次元FPGAが実現される場合でも、超高集積のFPGAを実現する場合には4次元以上のスイッチトポロジーを3次元チップに埋め込むことが有効となる。
【0029】
FPGAの論理集積度・動作速度に最も影響を与えるのは金属配線ではなく、スイッチであるため、3次元FPGAのスイッチのトポロジーを2次元チップに埋め込むことは、論理ブロック間の通過スイッチ段数の減少や、FPGAに必要なスイッチ数の減少といった3次元FPGAの利点を実現することができる。
【0030】
また、さらに大規模なFPGAを実現する場合4次元以上のスイッチトポロジーを持つFPGAが有利であると考えられる。本発明は4次元以上のスイッチトポロジーを持つFPGAも含む。
【0031】
本発明によれば、大規模FPGAを実現する際の配線領域が増大する問題が解決され、1億ゲート規模以上のFPGAの実現を可能とし、ルーター、SANやブレードサーバーなどのネットワーク・通信分野、医療用・産業用画像機器などの映像分野、DVD-RWプレーヤー・液晶テレビなどのデジタル家電や携帯デジタル機器などのより幅広い用途に利用されるようになり、FPGAの市場の拡大を可能とする。
【0032】
以下、本発明の作用について更に詳しく記載する。3次元FPGAではスイッチマトリックスを構成するトランジスタの数が減少するため、論理密度が大幅に向上する。これは、3次元集積回路技術ではなく、3次元FPGAのスイッチのトポロジーが優れているためである。したがって、3次元FPGAのスイッチのトポロジーを2次元チップに埋め込むことで、3次元FPGAと同様にスイッチマトリックスを構成するトランジスタの数を減らすことができる。また、3次元FPGAのスイッチのトポロジーを2次元に埋め込んだことによって、垂直方向の配線がすべて水平方向に展開することになり、金属配線の密度が増加する。通常、FPGAにおいては金属配線の密度はトランジスタの密度に比較してかなりの余裕があり、また、金属配線は多層配線によって実現され、今後も層数が増えることから金属配線の密度はさらに減少する。したがって、一般的な2次元FPGAでは多層配線を有効に利用することができない。本発明は多層配線を有効に利用することができる。
【0033】
本発明は、3次元集積回路技術を必要とする3次元FPGAとは異なり、従来の集積回路技術を用いて実現することができるため製造上の問題がない。
【0034】
本発明の有効な実現形態の一つとして2次元チップとして実現される場合には放熱が容易である。
【0035】
3次元FPGAは集積度が向上するほど、2次元FPGAに比較した性能向上が著しくなる。ここで、さらに高集積のFPGAにおいては、4次元以上のFPGAのスイッチのトポロジーを2次元に埋め込んで利用することが有効である。
【0036】
(19)また、本発明のプログラマブルデバイスは、複数の基本ブロックと、前記各基本ブロックに設けられたスイッチング素子とを備え、前記基本ブロック同士がそれぞれのスイッチング素子を介して接続されているプログラマブルデバイスであって、前記複数の基本ブロックのうちの少なくとも一部のものは、行列状に配置されるとともに、行方向及び列方向に沿って順次接続されてなる基本ブロック行列を複数構成しており、前記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士が互いに接続されているとともに、前記複数の基本ブロック行列は平面的に配置されている。
【0037】
上記プログラマブルデバイスとは、FPGAのように論理機能を任意に設定可能な回路であり、FPGA以外にも、FPGAにおける論理ブロックの代わりに加算器、乗算器、メモリなどを含んで構成される回路も含まれる。また、上記基本ブロックとは、プログラマブルデバイスを構成する基本単位であり、スイッチマトリックス、機能回路、上記スイッチマトリックスと上記機能回路とを接続する配線束、上記スイッチマトリックスと他の基本ブロックのスイッチマトリックスとを接続する配線束を備えるものである。
【0038】
上記スイッチマトリックスとは、このスイッチマトリックスに接続されている配線間の信号経路を接続又は切断する機能を有する複数のスイッチによって構成されており、各スイッチは記憶素子又は各スイッチ自体の有する記憶機能に基づいてその接続又は切断状態が設定されるものである。
【0039】
上記機能回路とは、所定の演算機能を果たす回路である。上記機能回路には、論理ブロックや、加算器、乗算器、メモリなどが含まれる。また、上記機能回路は、記憶素子又は当該機能回路自体の有する記憶機能に基づいて、当該機能回路の機能が設定されるものであってもよい。また、上記機能回路は、当該機能回路の属する基本ブロック内に階層状に構成された下位階層の基本ブロックを備えていてもよい。
【0040】
なお、上記配線束は、信号を伝搬するための複数の配線の集合である。
【0041】
そして、上記の構成では、プログラマブルデバイスを構成する複数の基本ブロックのうちの少なくとも一部のものは、行列状に配置されるとともに、行方向及び列方向に沿って順次接続されてなる基本ブロック行列を複数構成している。したがって、各基本ブロック行列は、従来の2次元FPGAに備わっていた2次元配列状に並べられた基本ブロックに相当する機能を果たすことができる。
【0042】
また、上記の構成では、複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士が互いに接続されている。これにより、上記の構成では、従来の3次元FPGAと同じく、従来の2次元FPGAと比較して、基本ブロック間の接続をより少ない数のスイッチマトリックスを経由により実現することができるようになるとともに、論理密度の向上を図ることができる。
【0043】
さらに、上記の構成では、複数の基本ブロック行列は平面的に配置されている。これにより、上記の構成では、形成が困難である微細な垂直方向の配線を形成する必要がなくなることから、従来の3次元FPGAと比較して製造が容易になるとともに、従来の3次元FPGAにおける放熱性の問題も抑制することができる。
【0044】
以上のように、上記の構成では、従来の2次元及び3次元FPGAそれぞれの問題点を解消することができる。
【0045】
(20)また、本発明のプログラマブルデバイスは、上記(19)のプログラマブルデバイスにおいて、前記各基本ブロック行列を構成する基本ブロックは、所定の領域にひとまとまりに配置しておくことができる。
【0046】
(21)あるいは、本発明のプログラマブルデバイスは、上記(19)のプログラマブルデバイスにおいて、前記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロックは、所定の領域にひとまとまりに配置されていてもよい。
【0047】
(22)また、本発明のプログラマブルデバイスは、上記(19)のプログラマブルデバイスにおいて、前記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士の接続は、1次元的な接続であってもよい。
【0048】
上記の構成では、各基本ブロック行列内の2次元的な接続に対して、複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士の1次元的な接続が加わることにより、基本ブロック同士を3次元的に接続することができる。
【0049】
(23)また、本発明のプログラマブルデバイスは、上記(19)のプログラマブルデバイスにおいて、前記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士の接続は、2次元的な接続であってもよい。
【0050】
上記の構成では、各基本ブロック行列内の2次元的な接続に対して、複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士の2次元的な接続が加わることにより、基本ブロック同士を4次元的に接続することができる。
【図面の簡単な説明】
【0051】
【図1a】図1aは、FPGAの基本ブロックを示す平面図である。
【図1b】図1bは、FPGAのスイッチマトリックスのトポロジーを示す概略図である。
【図2】図2は、論理ブロックの一例を示す図である。
【図3】図3は、スイッチマトリックス内部のスイッチの一例を示す図である。
【図4】図4は、基本ブロックを並べて実現したFPGAを示す図である。
【図5】図5は、3次元FPGAの基本ブロックの平面図である。
【図6a】図6aは、3次元FPGAのスイッチマトリックス部の立体図である。
【図6b】図6bは、3次元FPGAのスイッチマトリックスのトポロジーを示す概略図である。
【図7】図7は、図6aのスイッチマトリックスを3次元方向に配置した3次元FPGAの一部を示す図である。
【図8】図8は、3次元FPGAを層ごとに2次元チップに埋め込んだFPGAを示す図である。
【図9】図9は、3次元FPGAを層ごとに2次元チップに埋め込み、z方向の配線の端を接続したFPGAを示す図である。
【図10】図10は、3次元FPGAをz軸方向に隣接する基本ブロックごとに2次元チップに埋め込んだFPGAを示す図である。
【図11】図11は、3次元FPGAをz軸方向に隣接する基本ブロックごとに2次元チップに埋め込み、z方向の配線の端を接続したFPGAを示す図である。
【図12】図12は、4次元FPGAをx-y平面ごとに2次元チップに埋め込んだFPGAの一例における、基本ブロック間の接続を示す図である。
【図13】図13は、4次元のスイッチマトリックスのトポロジーの概略図である。
【図14】図14は、図12のFPGAの隣接x-y平面間のx、y軸の端を接続したFPGAの一部を示す図である。
【図15】図15は、3次元FPGAをz軸方向に隣接する基本ブロックを縦方向に並べて配置することで2次元チップに埋め込んだFPGAを示す図である。
【図16】図16は、3次元FPGAをz軸方向に隣接する基本ブロックを縦方向に並べて配置することで、2次元チップに埋め込んだFPGAを示す図である。
【図17a】図17aは、図11の埋め込み方法を実現するためのレイアウトタイルを示した図である。
【図17b】図17bは、図11のFPGAを構成する1つの領域を示した図である。
【図18a】図18aは、図16の埋め込み方法を実現するためのレイアウトタイルを示した図である。
【図18b】図18bは、図16のFPGAを構成する1つの領域を示した図である。
【図19a】図19aは、図12の埋め込み方法を実現するためのレイアウトタイルを示した図である。
【図19b】図19bは、図12のFPGAを構成する1つの領域を示した図である。
【図20】図20は、5次元又は6次元のスイッチのトポロジーを2次元チップに埋め込んで構成されるFPGAを示した図である。
【図21a】図21aは、2次元のスイッチトポロジーを示した図である。
【図21b】図21bは、3次元のスイッチトポロジーを示した図である。
【図21c】図21cは、4次元のスイッチトポロジーを示した図である。
【図22】図22は、LUT集積度に対する基本ブロックあたりの所要スイッチ数を示したグラフである。
【図23】図23は、3次元チップにより構成されるFPGAを示した図である。

【発明を実施するための最良の形態】
【0052】
以下、本発明の実施の形態について図を用いて説明する。ただし、本発明はこれらの具体例に限定されるものではない。
【0053】
なお、以下の説明では、上記背景技術の欄において図5、図6a、図6b、図7に基づいて説明した3次元FPGAの構成部材と同等の機能を有する構成部材については、同一の符合を用いることとし、その説明を省略する。また、以下において新たに説明する構成部材についても、互いに同等の機能を有する構成部材については、同一の符合を用いることとし、重複する説明を省略する。
【0054】
〔3次元FPGAを2次元チップに埋め込んだ構成(1)〕
図8は、3行3列4層からなる3次元FPGAを2次元チップに埋め込んで構成されるFPGA8を示している。このFPGA8では、互いに合同の関係にある矩形の領域をそれぞれ有する第1層801~第4層804が、2次元的に時計回りに配置されている。なお、図8のFPGA8では、第1層801~第4層804は、2次元的に配置されているため実際には層状に配置されているわけではないが、説明の便宜上、これらを「層」と称している。層間を接続する配線チャネル506は、第1層801と第2層802との間、第2層802と第3層803との間、第3層803と第4層804との間、というように隣接する層間を、各層内で同じ位置(すなわち同一行かつ同一列)にある基本ブロック同士を接続する。より多くの層からなる場合も、各層を2次元平面状に並べて同様に接続すればよい。その際、チップの縦横比が小さくなるように、各層をおりたたんで並べることが望ましい。また、図8の埋め込み方法において、第1層801と第4層804とは3次元FPGAの垂直方向の配線チャネルの端点であるが、FPGA8においては第1層801と第4層804とが隣接しているため、これらの間を容易に接続できる。
【0055】
ここで、FPGA8を構成する各基本ブロック510は、図5に示した基本ブロックと同じく、スイッチマトリックス501、可変論理素子及び記憶素子からなる論理ブロック502、スイッチマトリックス501と論理ブロック502とを接続する配線505、及び配線チャネル503・504・506を備えている。但し、FPGA8では、配線チャネル506は、2次元的に配置された第1層801~第4層804の間を接続するものであるため、チップに対して水平方向に延びている。
【0056】
図9は、3行3列4層からなる3次元FPGAを2次元チップに埋め込むFPGA8において、第1層801と第4層804との間を配線チャネル901により接続し、垂直方向の配線がループする形に構成されたFPGA9を示している。このようにすることで、チップ上の配線領域を図8の構造より有効に使うことができる。
【0057】
以上のように、FPGA8・9では、基本ブロックが行列状に配置されるとともに、行方向及び列方向に沿って順次接続されてなる第1層801~第4層804(これらをそれぞれ「基本ブロック行列」と称する)を構成している。したがって、各基本ブロック行列は、従来の2次元FPGAに備わっていた2次元配列状に並べられた基本ブロックに相当する機能を果たすことができる。
【0058】
そして、上記複数の基本ブロック行列の間において互いに対応する行列位置(同一行かつ同一列)に位置する基本ブロック同士が互いに接続されている。これにより、FPGA8・9では、従来の3次元FPGAと同じく、従来の2次元FPGAと比較して、基本ブロック間の接続をより少ない数のスイッチマトリックスを経由により実現することができるようになるとともに、論理密度の向上を図ることができる。
【0059】
さらに、上記複数の基本ブロック行列は平面的に配置されている。これにより、FPGA8・9では、形成が困難である微細な垂直方向の配線を形成する必要がなくなることから、従来の3次元FPGAと比較して製造が容易になるとともに、従来の3次元FPGAにおける放熱性の問題も抑制することができる。
【0060】
以上のように、FPGA8・9では、従来の2次元及び3次元FPGAそれぞれの問題点を解消することができる。
【0061】
なお、FPGA8・9では、上記各基本ブロック行列を構成する基本ブロックは、所定の領域(第1層801~第4層804)にひとまとまりに配置されている。
【0062】
また、FPGA8・9では、上記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士の接続は、1次元的な接続である。この構成では、各基本ブロック行列内における2次元的な接続に対して、1次元的な接続が加わることにより、基本ブロック同士を3次元的に接続することができる。
【0063】
〔3次元FPGAを2次元チップに埋め込んだ構成(2)〕
図10は、図8のFPGA8又は図9のFPGA9のように層単位で埋め込む例とは異なり、各層で同じ位置(すなわち同一行かつ同一列)にある基本ブロックを1つの領域にまとめて2次元配列状に並べる埋め込み方法により構成されるFPGA10を示している。このFPGA10では、例えば、領域1010は、各層で右上角に存在した基本ブロックを並べたものである。つまり、基本ブロック1001~1004は、図8のFPGA8における第1層801~第4層804それぞれにおける右上角の基本ブロック510が、領域1010内において2次元的に時計回りに配置されたものであり、隣接する層間を接続する配線チャネル506が存在する。より多くの層からなる場合、領域1010内部の基本ブロックはチップの縦横比が小さくなるように、折りたたんで並べる。
【0064】
図11は、図9の埋め込み方法と同様、配線チャネル1101により基本ブロック1001と基本ブロック1004との間を接続し、垂直方向の配線チャネルをループさせる形に形成したFPGA11を示している。このようにすることでチップ上の配線領域を図10の構造よりも有効に利用することができる。
【0065】
図10及び図11のような埋め込み方法は、図8及び図9のような埋め込み方法に比較して、配線密度が増加しにくいという利点がある。この利点により配線によりチップ面積が増大するという問題が避けられる。
【0066】
以上のように、FPGA10・11では、領域1010において例えば右上の基本ブロックに注目し、他の領域についても同じく右上の基本ブロックに注目すると、これら注目した基本ブロックは、行列状に配置されるとともに、行方向及び列方向に沿って順次接続されていることになる。このことは、各領域における右下、左上、及び左下それぞれの基本ブロックに注目した場合でも同じである。このように、行列状に配置されるとともに、行方向及び列方向に沿って順次接続されている基本ブロックの集合をそれぞれ「基本ブロック行列」と称すると、各基本ブロック行列は、従来の2次元FPGAに備わっていた2次元配列状に並べられた基本ブロックに相当する機能を果たすことができる。
【0067】
そして、上記複数の基本ブロック行列の間において互いに対応する行列位置(同一行かつ同一列)に位置する基本ブロック同士が互いに接続されている。これにより、FPGA10・11では、従来の3次元FPGAと同じく、従来の2次元FPGAと比較して、基本ブロック間の接続をより少ない数のスイッチマトリックスを経由により実現することができるようになるとともに、論理密度の向上を図ることができる。
【0068】
さらに、上記複数の基本ブロック行列は平面的に配置されている。これにより、FPGA10・11では、形成が困難である微細な垂直方向の配線を形成する必要がなくなることから、従来の3次元FPGAと比較して製造が容易になるとともに、従来の3次元FPGAにおける放熱性の問題も抑制することができる。
【0069】
以上のように、FPGA10・11では、従来の2次元及び3次元FPGAそれぞれの問題点を解消することができる。
【0070】
なお、FPGA10・11では、上記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロックは、所定の領域(例えば領域1010)にひとまとまりに配置されている。
【0071】
また、FPGA10・11では、上記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士の接続は、1次元的な接続である。この構成では、各基本ブロック行列内における2次元的な接続に対して、1次元的な接続が加わることにより、基本ブロック同士を3次元的に接続することができる。
【0072】
〔3次元FPGAを2次元チップに埋め込んだ構成(3)〕
図15は、3行5列4層からなる3次元FPGAを、2次元チップに埋め込むFPGA15を示している。図10のFPGA10と同様、各層で同じ位置にある基本ブロックを1つの領域にまとめて配置するが、FPGA10とは異なり、FPGA15では各層で同じ位置にある基本ブロック1001~1004を領域(z平面)1510内で縦方向に直線的に並べている。このようにすると、縦横比が大きくなり実装効率が悪くなるが、行数、層数を減らすことで縦横比を小さくすることが可能である。
【0073】
図16は、図15のFPGA15に対して、領域1510と領域1520との間を配線チャネル1601によって接続して構成したFPGA16を示している。このようにすることでチップ上の配線領域を図15の構造よりも有効に利用することができる。
【0074】
以上のように、FPGA15・16では、領域1510において例えば一番上の基本ブロックに注目し、他の領域についても同じく一番上の基本ブロックに注目すると、これら注目した基本ブロックは、行列状に配置されるとともに、行方向及び列方向に沿って順次接続されていることになる。このことは、各領域における上から二番目、上から三番目、及び一番下それぞれの基本ブロックに注目した場合でも同じである。このように、行列状に配置されるとともに、行方向及び列方向に沿って順次接続されている基本ブロックの集合をそれぞれ「基本ブロック行列」と称すると、各基本ブロック行列は、従来の2次元FPGAに備わっていた2次元配列状に並べられた基本ブロックに相当する機能を果たすことができる。
【0075】
そして、上記複数の基本ブロック行列の間において互いに対応する行列位置(同一行かつ同一列)に位置する基本ブロック同士が互いに接続されている。これにより、FPGA15・16では、従来の3次元FPGAと同じく、従来の2次元FPGAと比較して、基本ブロック間の接続をより少ない数のスイッチマトリックスを経由により実現することができるようになるとともに、論理密度の向上を図ることができる。
【0076】
さらに、上記複数の基本ブロック行列は平面的に配置されている。これにより、FPGA15・16では、形成が困難である微細な垂直方向の配線を形成する必要がなくなることから、従来の3次元FPGAと比較して製造が容易になるとともに、従来の3次元FPGAにおける放熱性の問題も抑制することができる。
【0077】
以上のように、FPGA15・16では、従来の2次元及び3次元FPGAそれぞれの問題点を解消することができる。
【0078】
なお、FPGA15・16では、上記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロックは、所定の領域(例えば領域1510)にひとまとまりに配置されている。
【0079】
また、FPGA15・16では、上記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士の接続は、1次元的な接続である。この構成では、各基本ブロック行列内における2次元的な接続に対して、1次元的な接続が加わることにより、基本ブロック同士を3次元的に接続することができる。
【0080】
〔4次元FPGAを2次元チップに埋め込んだ構成〕
図12は、4次元のスイッチのトポロジーを2次元チップに埋め込んで構成されるFPGA12を示している。このFPGA12は、4次元のトポロジーをもつスイッチマトリックス(後述する図13参照)を備えた基本ブロック1205により構成されている。以下では、4次元に対応する4つの軸をx、y、u、vと表記する。図12のFPGA12は、x-y方向に4×4、u-v方向に3×3の合計144の基本ブロックによって構成される。ここで、配線チャネル1201はy方向、配線チャネル1202はx方向、配線チャネル1203はv方向、配線チャネル1204はu方向の配線チャネルである。図12では、1つのスイッチマトリックスの周辺の配線チャネルのみ示しているが、その他のスイッチマトリックスも同様である。x、y軸方向の配線チャネル1201・1202は、x-y平面(領域)1206内のスイッチマトリックスを接続する。各x-y平面を2次元平面状に並べu-v平面を形成する。u-v平面において隣接するx-y平面の間は、u-v軸方向の配線チャネル1203・1204が接続する。つまり、配線チャネル1203・1204は、2つのx-y平面間のスイッチマトリックスのうち、同じx-y位置(すなわち同一行かつ同一列)にあるもの同士を接続する。
【0081】
図13は、4次元のスイッチマトリックス13のトポロジーを示している。図13は、配線チャネル1204a、つまり、u軸方向の配線チャネルの左側から、各軸方向の配線チャネル1201a・1201b・1202a・1202b・1203a・1203b・1204bへの接続を示したものである。矢印は接続がある方向を示しており、各軸方向へ接続が存在する。ここでは1方向からの接続のみ示しているが、他の軸のどちら側から見た場合も同様である。このように4次元のスイッチマトリックス13では、7方向の配線チャネルを接続するスイッチが存在するため、2次元や3次元のスイッチマトリックスに比較して、トラックあたりのスイッチ数が増加することになる。しかし、超大規模のFPGAにおいては、配線チャネルのトラック数の増加が少なくなり結果的にトランジスタ数を低減できる。
【0082】
図9や図11においては、z方向の配線チャネルの端同士をループする形で接続している。そのほかにも、図12においては、u-v平面上で隣接するx-y平面の境界で、x、y方向の配線チャネルの端同士を接続することができる。図14は、x-y平面1206の境界と、x、y方向の配線チャネルを示しており、配線チャネル1401によってx、y方向の配線チャネルの端同士が接続されている。どのような埋め込み方法でも、各軸方向の配線チャネルの端が近接している場合には、これを接続することで、あまりスイッチを増加させることなく、配線の柔軟性を高めることができる。
【0083】
以上のように、FPGA12では、例えば領域1206において、基本ブロックが行列状に配置されるとともに、行方向及び列方向に沿って順次接続されている。さらにFPGA12では、上記領域1206と同じ構成の領域が3×3の行列状に配置されている。これら領域をそれぞれ「基本ブロック行列」と称すると、各基本ブロック行列は、従来の2次元FPGAに備わっていた2次元配列状に並べられた基本ブロックに相当する機能を果たすことができる。
【0084】
そして、上記複数の基本ブロック行列の間において互いに対応する行列位置(同一行かつ同一列)に位置する基本ブロック同士が互いに接続されている。これにより、FPGA12では、従来の3次元FPGAと同じく、従来の2次元FPGAと比較して、基本ブロック間の接続をより少ない数のスイッチマトリックスを経由により実現することができるようになるとともに、論理密度の向上を図ることができる。
【0085】
さらに、上記複数の基本ブロック行列は平面的に配置されている。これにより、FPGA12では、形成が困難である微細な垂直方向の配線を形成する必要がなくなることから、従来の3次元FPGAと比較して製造が容易になるとともに、従来の3次元FPGAにおける放熱性の問題も抑制することができる。
【0086】
以上のように、FPGA12では、従来の2次元及び3次元FPGAそれぞれの問題点を解消することができる。
【0087】
なお、FPGA12では、上記各基本ブロック行列を構成する基本ブロックは、所定の領域(例えば領域1206)にひとまとまりに配置されている。
【0088】
また、FPGA12では、上記複数の基本ブロック行列の間において互いに対応する行列位置に位置する基本ブロック同士の接続は、u、v方向の2次元的な接続である。この構成では、各基本ブロック行列内におけるx、y方向の2次元的な接続に対して、u、v方向の2次元的な接続が加わることにより、基本ブロック同士を4次元的に接続することができる。
【0089】
〔比較構成との対比〕
一般的なFPGAと同様に、各軸方向の配線チャネルに多種長の配線を混在させること、あるいは、各基本ブロック内部で、特許文献6,7,11や特許文献4,10に見られる階層構造を構成することもまた効果的である。
【0090】
これらの、3次元や4次元のスイッチのトポロジーを2次元に埋め込んだ構造は、サブリージョンとスーパーリージョンに分けると、特許文献6,7,11や特許文献4,10と同様に、階層構造とみなすこともできる。すなわち、図8、図9や図12はx-y平面方向に並ぶ基本ブロック(図8及び図9では第1~第4層801~804それぞれの内部に配置された基本ブロック、図12では各領域1206の内部に配置された基本ブロック)をサブリージョンとする階層構造であり、図10、図11や図15、図16はz軸方向に並ぶ基本ブロック(図10及び図11では各領域1010の内部に配置された基本ブロック、図15及び図16では各領域1510の内部に配置された基本ブロック)をサブリージョンとした階層構造である。以下では、階層構造という観点から、本発明の独自性について述べる。
【0091】
特許文献6,7,11では、サブリージョン内部の論理エレメント同士の接続や各論理エレメントからスーパーリージョンの配線チャネルへの接続も、すべての論理エレメントが等価に接続され、マッピングツールが論理エレメントのサブリージョン内部での配置を考慮する必要がなく、マッピングツールを簡単化できるという利点がある。しかし、サブリージョンのサイズを大きくすると、スイッチ数が大幅に増大する問題がある。
【0092】
特許文献4,10では、サブリージョン内部は2次元配列状になっており、一見すると、図12の様子に似ている。しかしながら、スーパーリージョンの配線チャネルはサブリージョンとサブリージョンの隙間に格子状に存在しており、サブリージョンからスーパーリージョンの配線チャネルへの接続はサブリージョンの辺縁部に限られている。この構造では、サブリージョンとスーパーリージョンの接続に多くのスイッチが必要となり、やはり、大規模なサブリージョンを構成するには不向きである。また、現在は多層配線が用いられるため、このようにスーパーリージョンの配線をサブリージョンの辺縁部に限定する利点はない。
【0093】
本発明の構造ではサブリージョン内部の各論理エレメント(基本ブロック)のそれぞれにスイッチマトリックスが存在し、これはスーパーリージョンのスイッチマトリックスも兼ねている。サブリージョン内部では、各軸方向で隣接する論理エレメントのスイッチマトリックス間にのみ接続があり、スーパーリージョンの配線チャネルも、各サブリージョン内で同じ位置に存在する論理エレメントのスイッチマトリックス間を接続するようになっており、サブリージョン間がより密に結合されるため、サブリージョンのサイズが大きくなってもスイッチ数が増加しにくい。
【0094】
意図的にサブリージョンとスーパーリージョンに分けることができないような埋め込み方法も考えられる。
【0095】
〔レイアウトタイルの構成〕
5次元以上のトポロジーを持つFPGAの2次元への埋め込みも3次元、4次元の埋め込みを応用すれば容易に実現できる。
【0096】
奇数次元トポロジーの2次元チップへの埋め込みは、レイアウトする上で困難が伴う。たとえば、3次元トポロジーの2次元チップへの埋め込み例においては、図15及び図16の埋め込み方法では同一のタイルを繰り返し並べることによって容易に実現できるが、図8及び図9並びに図10及び図11の埋め込み方法では若干困難である。
【0097】
なお、タイル又はレイアウトタイルとは、アレイを構成する単位矩形領域であり、基本ブロックを構成する回路を2次元矩形領域にレイアウトしたものである。
【0098】
図17aは、図11に示したFPGA11の埋め込み方法を実現するための基本ブロックのレイアウトタイル1701を示している。図17bは、レイアウトタイル1701と、それに似たレイアウトタイル1702~1704を並べることにより形成される図10の領域1010を示したものである。図11の埋め込みは、図17bに示した領域1010を2次元配列状に並べることで実現される。図17bのレイアウトタイル1701~1704は、それぞれ若干配線チャネル503・504の配線の並び方(レイアウト)が異なっており、それぞれの設計を微妙に変更する必要がある。アレイサイズを大きくすると、領域1010内部は1次元の接続を持つより多くの基本ブロックが折りたたまれて配置され、レイアウトタイルの設計が一層面倒になる。
【0099】
これに対して、図18aは、図16に示したFPGA16の埋め込み方法を実現するための基本ブロックのレイアウトタイル1801を示している。図18bは、レイアウトタイル1801を4つ並べることにより形成される図16の領域1510を示したものである。図16の埋め込みは、図18bに示した領域1510を2次元配列状に並べることで実現される。ここでは、すべてのタイルが同一のレイアウトタイル1801を並べることで容易に実現できる。
【0100】
図15及び図16の埋め込みは同一のレイアウトタイルを並べることで実現できるが、縦横比を小さくするためには、図15及び図16の例ではx方向の基本ブロック数を多くし、y、z方向の基本ブロック数を少なくする必要がある。しかし、配線可能性の観点からは、各軸方向に並ぶ基本ブロックの数は同一、すなわち、立方体に近いことが好ましい。この点に関して、図15及び図16の埋め込み方法と、図10及び図11の埋め込み方法との中間的な埋め込み方法が考えられる。すなわち、領域1510内部を少ない回数折りたたみ、同時にy、z方向の基本ブロック数を若干少なくすることで、チップ全体の縦横比を小さくし、かつ、立方体に近いアレイを作成する方法である。この場合、折りたたむ回数が少なくなるので、レイアウトタイルの設計は比較的容易になる。ただし、各軸方向の基本ブロック数、配線チャネルトラック数、領域1510内での折りたたみの回数、チップの縦横比など慎重に検討する必要がある。
【0101】
一方、偶数次元トポロジーの2次元チップへの埋め込みは同一のタイルを繰り返し並べることで実現できる。
【0102】
図19aは、図12の4次元トポロジーの2次元チップへの埋め込み方法を実現するための基本ブロックのレイアウトタイル1901を示している。図19bは、レイアウトタイル1901を4×4に並べることにより形成される図12の領域1206を示したものである。また、図12の埋め込み方法は、この領域1206を3×3に並べることで実現される。
【0103】
図19aのレイアウトタイル1901は、特許文献1,2,5,8,9に見られる中間長線を混在した繰り返し可能なタイル構造に似ているが、上記各特許文献は、スイッチマトリックス内部のトポロジー(図13参照)については言及していない。また、上記各特許文献中の実施例においては、いずれの場合も中間長配線と戻る方向の単一長配線の間に接続(図13における1301)がなく4次元トポロジーとは異なる。
【0104】
上記各特許文献では、中間長線を経て戻る方向のタイルには、中間長線を経由せずに単一長線を経由することで物理的に最短距離で接続できることから、戻り方向のスイッチは必要でない。しかしながら、中間長線をより長くする場合、中間長線の中間でスイッチマトリックスに接続することが好ましく、これによってスイッチ数は増加する。
【0105】
一方、図12において上記各特許文献の中間長線に相当すると考えられる配線チャネル1203・1204は、その端点でのみスイッチマトリックスに接続する。また、スイッチマトリックスにおいて各軸方向の配線が4次元トポロジーで接続されることによって配線可能性が著しく向上し、チャネルトラック数を大幅に削減できる。したがって、スイッチ数を大幅に削減できる。
【0106】
上記実施例に、特許文献1,2,5,8,9に見られる中間長線(スイッチで分割されることなく軸方向に1つ以上の基本ブロックを隔てた長さをもつ配線)や長尺線(スイッチで分割されることなく軸方向にFPGAの全体を貫く長さをもつ配線)などのさまざまな長さの配線を各軸方向に混在することや、論理ブロックを特許文献6,7,11や特許文献4,10のように階層構造にすることもまた有効である。
【0107】
〔シミュレーション結果〕
2~4次元トポロジーを有するFPGAにベンチマーク回路とCADツールを用いてシミュレーションを行い、集積度と基本ブロックあたりの所要スイッチ数を調べた。
【0108】
シミュレーションにおいては、基本ブロックには4入力のLUTが一つある構造を想定するとともに、図21a~図21cのスイッチトポロジーを想定した。ここで、図21aは2次元(図1a及び図1bに対応)、図21bは3次元(図5、図6a及び図6bに対応)、図21cは4次元(図12及び図13に対応)のスイッチトポロジーを示しており、各軸方向の配線の端点を白抜きの円で示し、白抜き円の間を結ぶ辺はスイッチの存在を示している。
【0109】
図22は、LUT集積度に対する基本ブロックあたりの所要スイッチ数を示している。図22において、2~4次元トポロジーの曲線はシミュレーション結果を示しており、5次元トポロジーの曲線は2~4次元の結果より予測したものを示している。図22より、LUT数が1~20では2次元、20~400では3次元、400~60000では4次元、60000~では5次元においてスイッチ数が最小となることがわかる。スイッチがパストランジスタであると想定すると、1トラックあたり、2次元トポロジーを有するFPGAではで6個、3次元では15個、4次元では27個のパストランジスタスイッチが必要となり、高次元になるほど必要となるスイッチ数は多くなる。しかし、集積度が高くなるにしたがって、多次元トポロジーを有するFPGAにおいて必要となる配線チャネルトラック数は2次元トポロジーを有するFPGAにおいて必要となる配線チャネルトラック数よりも格段に少なくなるため、高集積FPGAにおいては多次元トポロジーが極めて有利となる。
【0110】
〔5、6次元FPGAを2次元チップに埋め込む手法〕
5次元以上のトポロジーの埋め込みは、3次元、4次元の埋め込み方法を応用することにより実現できる。
【0111】
図20は、5次元又は6次元のスイッチのトポロジーを2次元チップに埋め込んで構成されるFPGA20を示している。このFPGA20では、基本ブロック2002を2次元配列状に並べた領域(サブリージョン)2001を、さらに2次元配列状に並べることにより構成され、隣接する領域2001内の同一位置に存在する基本ブロック間が配線チャネル2003・2004の2つの方向の配線チャネルで接続されている。
【0112】
ここで、領域2001の内部が図8~11、図15又は図16のように3次元トポロジーで接続されていれば、FPGA20は、配線チャネル2003・2004に対応する2つの軸方向(次元)を追加した5次元トポロジーを有するFPGAとなる。また、領域2001の内部が図12のように4次元トポロジーで接続されていれば、FPGA20は、配線チャネル2003・2004に対応する2つの軸方向(次元)を追加した6次元トポロジーを有するFPGAとなる。
【0113】
〔3次元チップに埋め込む手法〕
3次元集積回路技術を適用することにより、4次元以上の多次元トポロジーを3次元チップに埋め込むことも可能である。
【0114】
図23は、3次元チップにより構成されるFPGA23を示している。FPGA23では、基本ブロック2302を2次元配列状に並べた領域(サブリージョン)2301を多層に積み上げて、隣接するサブリージョン(層)間の同一位置に存在する基本ブロック間が1つの方向の配線チャネル2303で接続されている。領域2301内部が図8~11、15又は16のように3次元トポロジーで接続されていれば、FPGA23は、配線チャネル2303に対応する1つの軸方向(次元)を追加した4次元トポロジーを有するFPGAとなる。また、領域2301の内部が図12のように4次元トポロジーで接続されていれば、FPGA23は、配線チャネル2203に対応する1つの軸方向(次元)を追加した5次元トポロジーを有するFPGAとなる。
【0115】
〔変形例〕
なお、本実施形態では、本発明をFPGAに適用した場合について説明した。すなわち、本実施形態におけるFPGAは、多次元トポロジーを有するFPGAであり、多次元トポロジーを有するスイッチマトリックス(SM)と論理ブロック(LB)とを備えて構成される基本ブロックを有し、これらの基本ブロックを2次元又は3次元状に配列し、かつ、多次元トポロジーで接続したものである。
【0116】
しかしながら、本発明は、FPGA以外にも適用することが可能である。すなわち、上記FPGAにおける論理ブロックの代わりに加算器、乗算器、メモリなどの機能回路を含んで構成される、粗粒度プログラマブルデバイスへの適用も可能である。
【0117】
この場合、論理ブロックを加算器、乗算器、メモリなどで置き換え、それらの間を多次元トポロジーで接続し、図8~12、15、16、20、23に示した方法にしたがって2次元平面又は3次元空間に埋め込むことで実現できる。
【0118】
また、部分的にFPGAや粗粒度プログラマブルデバイスを有する半導体集積回路にも本発明を適用可能である。
【0119】
このように、本発明は、複数の基本ブロックと、各基本ブロックに設けられたスイッチマトリックスのようなスイッチング素子とを備え、基本ブロック同士がそれぞれのスイッチング素子を介して接続されているプログラマブルデバイスに適用することができる。
【0120】
また、基本ブロック間は基本的には金属配線で接続することを想定しているが、部分的に、又はすべてを光配線で接続することも考えられる。
【0121】
以上において説明した本実施形態のFPGAについては、その特徴点を次のように表現することができる。
【0122】
第1に、基本ブロックのスイッチマトリックスには、n(nは自然数)本の配線束の一方の端が接続されており、それぞれの配線束の他方の端はそれぞれ異なる他の基本ブロックのスイッチマトリックスに接続されており、かつ、各スイッチマトリックスにおいては、j=kを除くj,k=1~nのすべてのj,kの組合せに対して、第jの配線束を構成する配線の少なくとも1本から、第kの配線束を構成する配線の少なくとも1本に信号を伝搬するためのスイッチが存在する構造を有している。
【0123】
第2に、図10及び図11に示したFPGA10・11については、上記第1の特徴点において、n=6であり、第1及び第2の配線束はそれぞれ上及び下の方向に(l-1)個(l>1)の基本ブロックを隔てて存在する基本ブロックのスイッチマトリックスに接続し、第3及び第4の配線束はそれぞれ右及び左の方向に(m-1)個(m>1)の基本ブロックを隔てて存在する基本ブロックのスイッチマトリックスに接続し、i,jを1以上の自然数とすると、(m×i)列(l×(j-1)+2k-1)行(但し、1≦k<(l+1)/2)に位置する基本ブロックの第5及び第6の配線束はそれぞれ左及び上方向に隣接する基本ブロックのスイッチマトリックスに接続し、(m×(i-1)+1)列(l×(j-1)+2k)行(但し、1≦k<l/2)に位置する基本ブロックの第5及び第6の配線束はそれぞれ右及び上方向に隣接する基本ブロックのスイッチマトリックスに接続し、(m×i)列(l×(j-1)+2k)行(但し、1≦k≦l/2)に位置する基本ブロックの第5及び第6の配線束はそれぞれ左及び下方向に隣接する基本ブロックのスイッチマトリックスに接続し、(m×(i-1)+1)列(l×(j-1)+2k+1)行(但し、1≦k≦(l-1)/2)に位置する基本ブロックの第5及び第6の配線束はそれぞれ右及び下方向に隣接する基本ブロックのスイッチマトリックスに接続し、これら以外の位置の基本ブロックの第5及び第6の配線束はそれぞれ左及び右方向に隣接する基本ブロックのスイッチマトリックスに接続する構造を有している。
【0124】
第3に、図12に示したFPGA12については、上記第1の特徴点において、n=8であり、第1の配線束は上、第2の配線束は右、第3の配線束は下、第4の配線束は左の方向に隣接する基本ブロックのスイッチマトリックスに接続し、第5及び第7の配線束はそれぞれ上及び下方向に(l-1)個(l>1)の基本ブロックを隔てて存在する基本ブロックのスイッチマトリックスに接続し、第6及び第8の配線束はそれぞれ右及び左の方向に(m-1)個(m>1)の基本ブロックを隔てて存在する基本ブロックのスイッチマトリックスに接続する構造を有している。
【0125】
第4に、図15及び図16に示したFPGA15・16については、上記第1の特徴点において、第1の配線束は上、第2の配線束は右、第3の配線束は下、第4の配線束は左の方向に隣接する基本ブロックのスイッチマトリックスに接続し、第5及び第6の配線束はそれぞれ上及び下の方向に(l-1)個(l>1)の基本ブロックを隔てて存在する基本ブロックのスイッチマトリックスに接続する構造を有している。
【産業上の利用可能性】
【0126】
本発明は、FPGAに代表されるプログラマブルデバイスに適用することができる。
図面
【図1a】
0
【図1b】
1
【図2】
2
【図3】
3
【図4】
4
【図5】
5
【図6a】
6
【図6b】
7
【図7】
8
【図8】
9
【図9】
10
【図10】
11
【図11】
12
【図12】
13
【図13】
14
【図14】
15
【図15】
16
【図16】
17
【図17a】
18
【図17b】
19
【図18a】
20
【図18b】
21
【図19a】
22
【図19b】
23
【図21a】
24
【図21b】
25
【図21c】
26
【図22】
27
【図23】
28
【図20】
29