(57)【要約】【課題】  積層数をさほど増やすことなく、配線長が１００μｍを越える配線の数を減少させることができ、回路性能の向上をはかる。【解決手段】  ３次元集積回路の設計方法であって、集積回路を、Ｘ方向に短くＹ方向に長いＸＹ平面上の仮のレイアウト領域に配置した後（Ｓ１）、仮のレイアウト領域をＹ方向に２Ｎ個以上の小領域に分割すると共に、Ｎ個の小領域毎に１つのブロックを構築し（Ｓ２）、小領域のｋＮ番目及びｋｎ＋１番目が最上層又は最下層になるように、各ブロックを小領域単位でＹ方向に折り畳み、Ｎ層の集積回路を積層する（Ｓ３）。【選択図】      図１
2010080610.tif 000002
【特許請求の範囲】
【請求項１】
集積回路を、Ｘ方向に短くＹ方向に長いＸＹ平面上の仮のレイアウト領域に配置する工程と、
前記仮のレイアウト領域をＹ方向に２Ｎ個以上（Ｎは２以上の整数）の小領域に分割すると共に、Ｎ個の小領域毎に１つのブロックを構築する工程と、
前記小領域のｋＮ番目（ｋは１以上の整数）及びｋＮ＋１番目が最上層又は最下層になるように、前記各ブロックを小領域単位でＹ方向に折り畳み、Ｎ層の集積回路を積層する工程と、
を含むことを特徴とする３次元集積回路の設計方法。
【請求項２】
前記Ｎは１０以下であることを特徴とする請求項１記載の３次元集積回路の設計方法。
【請求項３】
前記Ｎは奇数であり、前記小領域のｋＮ番目とｋＮ＋１番目との間は折り畳まないことを特徴とする請求項１又は２に記載の３次元集積回路の設計方法。
【請求項４】
前記ブロックを小領域単位で折り畳むことにより前記小領域を上下に積層し、隣接する小領域間を貫通電極で接続することを特徴とする請求項１〜３の何れかに記載の３次元集積回路の設計方法。
【請求項５】
前記貫通電極が隣接する小領域間に跨って繋がる配線を短絡させることにより、余分な配線とリピータバッファを削除することを特徴とする請求項４記載の３次元集積回路の設計方法。
【請求項６】
前記仮のレイアウト領域におけるＸ方向の長さは１００μｍ以下であることを特徴とする請求項１〜５の何れかに記載の３次元集積回路の設計方法。
【請求項７】
前記分割された各小領域のＹ方向の長さは１００μｍ以下であることを特徴とする請求項１〜５の何れかに記載の３次元集積回路の設計方法。
【請求項８】
前記分割された各小領域のＹ方向の長さが、前記集積回路上のファンアウトのＣＭＯＳインバータの遅延と同等の配線遅延を持つ配線の長さ以下であることを特徴とする請求項１〜５の何れかに記載の３次元集積回路の設計方法。
【請求項９】
Ｘ方向に短くＹ方向に長いＸＹ平面上の仮のレイアウト領域に配置された集積回路がＹ方向に２Ｎ個以上（Ｎは２以上の整数）の小領域に分割され、且つＮ個の小領域毎に１つのブロックが構築され、分割された各領域のｋＮ番目（ｋは１以上の整数）及びｋＮ＋１番目が最上層又は最下層になるように、前記ブロックを小領域単位でＹ方向に折り畳み、Ｎ層の集積回路を積層した構造を有することを特徴とする３次元集積回路。
【請求項１０】
コンピュータを用いて集積回路を３次元的に配置配線するためのコンピュータ読み取り可能なプログラムであって、
前記集積回路を、Ｘ方向に短くＹ方向に長いＸＹ平面上の仮のレイアウト領域に配置する手順と、
前記仮のレイアウト領域をＹ方向に２Ｎ個以上（Ｎは２以上の整数）の小領域に分割すると共に、Ｎ個の小領域毎に１つのブロックを構築する手順と、
前記小領域のｋＮ番目（ｋは１以上の整数）及びｋＮ＋１番目が最上層又は最下層になるように、前記ブロックを小領域単位でＹ方向に折り畳み、Ｎ層の集積回路を積層する手順と、
をコンピュータに実行させることを特徴とする３次元集積回路の設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路を３次元的に積層配置するための３次元集積回路の設計方法に関する。また、この方法を用いて作製された３次元集積回路、更にはこの方法をコンピュータに実施させるための３次元集積回路の設計プログラムに関する。
【背景技術】
【０００２】
近年、ＣＭＯＳデバイスの微細化に伴い、トランジスタ自身の遅延に比べて配線遅延が相対的に大きくなってきており、これが集積回路の性能を律速する要因となっている。例えば、ＣＭＯＳインバータの例では、微細化が進むとインバータの遅延よりも配線遅延の方が大きくなってしまう。配線遅延を減らすには、配線長が長い配線の数を減らす必要がある。後述するように本発明者らの実験によれば、配線長が１００μｍを越える配線の数を減らす必要があるのが分かっている。配線長が長い配線の数を減らす方法として、回路を３次元的に積層する方法が有望であると言われている。
【０００３】
しかし、３次元積層技術を用いても、単純なレイアウトでは十分な効果は得られない。例えば、一辺が１０ｍｍの集積回路チップでは、配線長は最大で約２０ｍｍとなる。これを４分割して積層した場合に、集積回路の配線長分布がどのようになるかを計算したところ、長さ１００μｍを越える配線の数は殆ど変わっていない。つまり、４層に積層しただけでは、配線遅延を改善する効果は殆どない。
【０００４】
配線長が１００μｍを越える配線を削減するには、積層数を大幅に増やすしかない。例えば、１００分割して積層すると、配線長は最大でも約２００μｍとなるので、１００μｍを越える配線は殆ど無くなる。しかし、積層数が増えるに従い、放熱性が悪くなり、しかも積層プロセスのコストが高くなることから、適切な積層数は１０層未満程度と考えられる。従って、１０層未満程度でも、１００μｍを越える配線を減少することが可能なレイアウト方法が求められる。
【０００５】
このような課題に対して、２次元集積回路のレイアウトを折り紙のように折りたたむ方法が提案されている（特許文献１，非特許文献１参照）。しかし、これらの方法でも、配線長は折り畳んだ後の辺の大きさ程度にしか縮小されない。つまり、基本的には、上記の課題の解決にはならない。つまり、積層数を膨大な数にしないと、配線長は十分短縮できない。
【特許文献１】特開２００７−２５０７５４号公報
【非特許文献１】J. Cong, G. Luo, J. Wei, and Y. Zhang, "Thermal-Aware 3D IC Placement via Transformation," Proceedings of the 12th Asia and South Pacific Design Automation Conference (ASP-DAC 2007), Yokohama, Japan, pp. 780-785, January 2007
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上記事情を考慮してなされたもので、その目的とするところは、積層数をさほど増やすことなく、配線長が１００μｍを越える配線の数を減少させることができ、回路性能の向上をはかり得る３次元集積回路及び３次元集積回路の設計方法を提供することにある。
【０００７】
また、本発明の他の目的は、３次元集積回路の配置配線方法をコンピュータに実施させるための３次元集積回路の設計プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一態様に係わる３次元集積回路の設計方法は、集積回路を、Ｘ方向に短くＹ方向に長いＸＹ平面上の仮のレイアウト領域に配置する工程と、前記仮のレイアウト領域をＹ方向に２Ｎ個以上（Ｎは２以上の整数）の小領域に分割すると共に、Ｎ個の小領域毎に１つのブロックを構築する工程と、前記小領域のｋＮ番目（ｋは１以上の整数）及びｋＮ＋１番目が最上層又は最下層になるように、前記各ブロックを小領域単位でＹ方向に折り畳み、Ｎ層の集積回路を積層する工程と、を含むことを特徴とする。ここで、Ｎは３次元集積回路の積層数である。
【０００９】
また、本発明の別の一態様に係わる３次元集積回路は、Ｘ方向に短くＹ方向に長いＸＹ平面上の仮のレイアウト領域に配置された集積回路がＹ方向に２Ｎ個以上（Ｎは２以上の整数）の小領域に分割され、且つＮ個の小領域毎に１つのブロックが構築され、分割された各領域のｋＮ番目（ｋは１以上の整数）及びｋＮ＋１番目が最上層又は最下層になるように、前記ブロックを小領域単位でＹ方向に折り畳み、Ｎ層の集積回路を積層した構造を有することを特徴とする。
【００１０】
また、本発明の更に別の一態様に係わる３次元集積回路の設計プログラムは、コンピュータを用いて集積回路を３次元的に配置配線するためのコンピュータ読み取り可能なプログラムであって、前記集積回路を、Ｘ方向に短くＹ方向に長いＸＹ平面上の仮のレイアウト領域に配置する手順と、前記仮のレイアウト領域をＹ方向に２Ｎ個以上（Ｎは２以上の整数）の小領域に分割すると共に、Ｎ個の小領域毎に１つのブロックを構築する手順と、前記小領域のｋＮ番目（ｋは１以上の整数）及びｋＮ＋１番目が最上層又は最下層になるように、前記ブロックを小領域単位でＹ方向に折り畳み、Ｎ層の集積回路を積層する手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、２次元集積回路のレイアウトを単に折り畳むだけではなく、Ｎ層単位で折り返すことにより、積層数をさほど増やすことなく、配線長が１００μｍを越える配線の数を減少させることができ、これにより回路性能の向上をはかることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の詳細を図示の実施形態によって説明する。
【００１３】
（第１の実施形態）
背景技術でも説明したように、配線遅延を減らすためには、回路を３次元的に積層する方法が有望である。図１１は、長さ１０，１００，１０００μｍそれぞれの配線遅延を計算した結果である。横軸は、ＣＭＯＳプロセスの設計ルールを示している。図中の太線実線は、図１２に示すようなＣＭＯＳインバータ・ファンアウト（ＩＮＶ ＦＯ４）の遅延を示している。
【００１４】
図１１に示すように、Ｌ＝１０μｍでは、３２ｎｍルールでも配線遅延の方がインバータの遅延よりも小さくなっている。Ｌ＝１００μｍでは、９０ｎｍルールでは配線遅延の方がインバータの遅延よりも小さく、６５ｎｍルールでは配線遅延の方がインバータの遅延よりも小さいかインバータの遅延とほぼ等しいか、４５ｎｍルールでは配線遅延の方がインバータの遅延よりも僅かに大きいか等しいか、となっている。Ｌ＝１０００μｍでは、９０ｎｍルールでも配線遅延の方がインバータの遅延よりも大きくなっている。
【００１５】
このように、微細化が進むに伴い、インバータの遅延よりも配線遅延の方が大きくなってしまう。従って、例えば４５ｎｍルール程度までを考慮すると、配線遅延を減らすには配線長を１００μｍ程度に縮小する必要がある。
【００１６】
図１は、本発明の第１の実施形態に係わる３次元積層型集積回路の配置配線方法を説明するためのフローチャートである。
【００１７】
本実施形態の対象は、ＣＡＤを用いて自動でトランジスタと配線のレイアウトを行うロジック回路ブロックである。
【００１８】
まず、回路ブロックの配線（信号伝達線）が１次元方向に向くように、矩形のパーティションを設けて、仮のレイアウト領域を作成する（ステップＳ１）。
【００１９】
次いで、仮のレイアウト領域を２Ｎ（Ｎは正の整数）個以上の小領域に分割すると共に、Ｎ個の小領域毎に１つのブロックを構築する（ステップＳ２）。ここで、Ｎは３次元集積回路の積層数である。
【００２０】
次いで、Ｎ層（３次元回路積層数がＮ）毎に小領域を上から下へ、下から上へ交互に折り返し、Ｎ層の３次元回路のレイアウトにできるようにする（ステップＳ３）。
【００２１】
次いで、上下の層（小領域）で金属配線間をＴＳＶ（through silicon via：基板貫通電極）でつなげ、上下の配線で折り畳み部を跨いでいるところを削除する（ステップＳ４）。
【００２２】
次に、本実施形態の配置配線方法を、更に詳しく説明する。
【００２３】
図２（ａ）は、積層前の２次元配置の例であり、既存のロジック回路ブロックを示す。この場合、信号の伝達（金属配線の方向）は平面的（一方向ではなくあらゆる方向に向かっている）であり、折り畳み式のレイアウトに向いていない。
【００２４】
そこで本実施形態では、図２（ｂ）に示すように、パーティション（レイアウトの境界領域）を縦長（矩形）にした。これにより、信号伝達の方向が一次元的になり、折り畳みに適した配置となる。これを、仮のレイアウト領域１０とする。このとき、理想的なパーティションのサイズは、横（Ｘ方向）が１００μｍ、縦（Ｙ方向）が４０ｍｍである。横幅が１００μｍなので、横方向の配線長は１００μｍ以下となる。
【００２５】
次いで、図３に示すように、仮のレイアウト領域１０を縦方向に１００μｍずつの小領域２０（２０−１，２０−２，…）に分割する。ここで、Ｎ個（例えば５個）の小領域２０毎に１つのブロック３０（３０−１，３０−２，…）を定義付ける。
【００２６】
次いで、図４（ａ）（ｂ）に示すように、各ブロック３０を縦が１００μｍになるように小領域単位で折り畳んでいく。この例では、３次元積層回路の積層数は５である。折り畳んでできた各層をＴ１，Ｔ２…Ｔ４００とする。図４（ａ）ではＴ１０までを示している。続いて、５層毎に折り返して、図４（ｂ）のような構造を作る。このとき、Ｔ５層とＴ６層、Ｔ１０層とＴ１１層…は、それぞれ最上面又は最下面の同一層でつながっている。即ち、Ｔ（５ｋ）層とＴ（５ｋ＋１）層（ｋは正の整数）は、それぞれ最上面又は最下面の同一層でつながっている。
【００２７】
なお、Ｔ１〜Ｔ５のブロック３０−１とＴ６〜Ｔ１０のブロック３０−２とは折り返し部分が重なっているように見えるが、実際は図５に示すように、隣接するブロック３０は重なっていない。
【００２８】
次に、図６（ａ）（ｂ）に示すように、上下に隣接する層にまたがって存在している同じ信号が伝達する配線をＴＳＶで繋いでショートカットを設ける。この結果、配線遅延を小さくして、さらにリピータバッファを削除することが可能となる。リピータバッファは、消費電力が大きいので、回路全体の低消費電力化にも寄与する。
【００２９】
最終的には、図７のような５層からなる３次元回路ブロックのレイアウトが完成する。クロックライン、電源系ラインを従来型の自動設計法でこれに設ける。クロックライン、電源系ラインも同様に短縮することができ、クロックスキューも小さくでき、消費電力も低減できる。なお、図７中の４０は複数層間に跨る配線の一例を示している。
【００３０】
本実施形態の場合の、配線長分布を計算した結果を、図８に示す。これは、６５ｎｍテクノロジのＣＭＯＳで、１千万ゲートのチップにおいて、配線長分布の統計理論を用いて計算したものである。図中の◆のプロットがもとのチップの配線分布である。一方、□のプロットが図２（ａ）のレイアウトを４分割積層したもの、△のプロットが本実施形態により図２（ｂ）のレイアウトを４００分割したものである。
【００３１】
図８から分かるように、１００μｍの配線を見ると、従来のように４層に積層したものでは、配線数は殆ど変わっていないことが分かる。つまり、４層に積層しただけでは、配線遅延を改善する効果は殆どない。これに対し本実施形態のように、積層数は５層であるが４００分割したものでは、１００μｍの配線の数が１桁以上減少しているのが分かる。よって、配線遅延律速の部分は殆どなくなることになる。そしてこの場合、リピータバッファの９４％が削減される。リピータバッファは、回路全体のパワーのかなりの部分を締めることになるので、低消費電力化の効果も得られる。
【００３２】
図９（ａ）に、２次元レイアウト内の機能ブロックの一例を示す。図９（ａ）の２次元レイアウトデータには、ＲＡＭ５１、ＡＳＩＣ５２、４つのＣＰＵ５３〜５６などの複数の機能ブロックが含まれている。
【００３３】
本実施形態では、これらを縦長のレイアウトに変更する必要があるが、複数の機能ブロックを跨ってレイアウト変更するのは難しい。そこで、図９（ｂ）に示すように、各々の機能ブロックを縦長のレイアウトに変更する。図中の６１〜６６が各回路５１〜５６に対応するレイアウト領域である。そして、本実施形態の方法により折り畳み、最終的に得られた３次元積層型の各機能ブロックを同一基板上に再配置すればよい。
【００３４】
このように本実施形態によれば、２次元回路のレイアウトを単に折り畳むだけではなく、Ｘ方向に短くＹ方向に長い縦長のレイアウトに変更した後に、小領域単位で折り畳むと共に、Ｎ層単位で折り返すことにより、積層数をさほど増やすことなく、配線長が１００μｍを越える配線の数を減少させることができる。このため、配線遅延の減少及び低消費電力化などの回路性能の向上をはかることができる。
【００３５】
（第２の実施形態）
先に説明した第１の実施形態では、最終的に得られる回路のフットプリントサイズが０．１ｍｍ×８ｍｍという細長いものになる。これを他の回路ブロックと並べることで、通常使われる正方形に近いものにできるが、本実施形態では、この回路ブロックのみでも正方形に近い形状を実現する。
【００３６】
図１０（ａ）は、先の第１の実施形態に従って積層させた３次元回路の最上面を示している。このＴ４０の部分をそれが繋がっているＴ３９の部分に対して、図１０（ｂ）のように９０度反時計回りに回転させる。ＴＳＶはＴ３９に対して固定したままとし、Ｔ４０上の配線を追加することでＴ３９とＴ４０が正常に繋がるようにする。Ｔ４０のみ、ＣＡＤでプレースメント＆ラウティングを再度行っても良い。同様に、３次元回路の最下面Ｔ４５の部分をそれが繋がっているＴ４４の部分に対して、９０度反時計回りに回転させる。
【００３７】
これにより、配線長が多少長くなるが、Ｔ４０の１辺が１００μｍであるので、１００μｍ以下で収まる。同様の操作をＴ８０，Ｔ８５，Ｔ１２０…に対して行うことで、図１０（ｃ）のように、再レイアウトすることができる。図１０（ｃ）の構成では、縦が０．８ｍｍで横が１ｍｍとなり、正方形に近いものになる。
【００３８】
このように本実施形態によれば、先の第１の実施形態と同様の効果が得られるのは勿論のこと、一部の小領域間を回転させることにより、最終的なレイアウトを正方形に近いものとすることができ、回路の配置設計の自由度向上を図ることができる。
【００３９】
（変形例）
なお、本発明は上述した各実施形態に限定されるものではない。仮のレイアウトにおけるＸ方向の長さは必ずしも１００μｍに限るものではなく、許容できる配線長に応じて適宜変更可能である。同様に、Ｙ方向に分割する小領域の長さも１００μｍに限るものではなく、許容できる配線長に応じて仕様に応じて適宜変更可能である。
【００４０】
また、積層数は必ずしも５層に限るものではなく、適宜変更可能である。一般的には、放熱性や積層プロセスのコストを考慮すると１０層以下が望ましい。さらに、小領域毎に折り畳んだブロックが重ならないようにするためにはＮは奇数であるのが望ましい。Ｎが偶数の場合は、第２の実施形態で説明した方法により隣接するブロック間で連続する小領域の一方を回転させるようにすればよい。
【００４１】
その他、本発明の要旨を逸脱しない範囲で、種々変形して実施することができる。
【図面の簡単な説明】
【００４２】
【図１】第１の実施形態に係わる３次元積層型集積回路の配置配線方法を説明するためのフローチャート。
【図２】積層前の２次元配置の例を示す図。
【図３】仮のレイアウト領域を縦方向に分割する様子を示す図。
【図４】仮のレイアウト領域を折り畳む様子を示す図。
【図５】仮のレイアウト領域を折り畳んだ最終的な状態を示す図。
【図６】隣接する層間にショートカットを設ける様子を示す図。
【図７】第１の実施形態により作成された５層からなる３次元回路ブロックのレイアウトを示す図。
【図８】第１の実施形態による配線長分布の変化を従来例と比較して示す図。
【図９】複数の機能ブロックに対して第１の実施形態を適用する場合の例を示す図。
【図１０】第２の実施形態を説明するためのもので、積層した部分を一方向の長方形ではなく、正方形に近いレイアウトに配置した例を示す図。
【図１１】配線長が１０，１００，１０００μｍそれぞれの遅延を計算した結果を示す図。
【図１２】ＣＭＯＳインバータ・ファンアウトの回路構成を示す図。
【符号の説明】
【００４３】
１０…レイアウト領域
２０…小領域
３０…ブロック
４０…配線
５１〜５７…機能ブロック
６１〜６７…レイアウト領域
【図１】
2010080610.tif 000003
【図２】
2010080610.tif 000004
【図３】
2010080610.tif 000005
【図４】
2010080610.tif 000006
【図５】
2010080610.tif 000007
【図６】
2010080610.tif 000008
【図７】
2010080610.tif 000009
【図８】
2010080610.tif 000010
【図９】
2010080610.tif 000011
【図１０】
2010080610.tif 000012
【図１１】
2010080610.tif 000013
【図１２】
2010080610.tif 000014