(57)【要約】  複数の半導体チップを積層してなる三次元集積回路の設計において、貫通ビアの位置変更が発生した場合であっても、その他の部分の位置変更ができる限り発生しないようにする三次元集積回路の設計支援装置を提供する。  設計支援装置４００は、一の半導体チップを貫通して他の半導体チップに接続する貫通ビアの位置を決定するＴＳＶ配置部４３７、前記貫通ビアの位置に応じて、前記貫通ビアの配置の予備の位置としての予約セルの位置を決定するＴＳＶ予約セル配置部４３９及び前記貫通ビアの位置と前記予約セルの位置とを含むレイアウトデータを生成するマスクデータ生成部４４５を備える。
2012077280.tif 000002
【特許請求の範囲】
【請求項１】
複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援する設計支援装置であって、
第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置手段と、
第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置手段と、
前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成手段と
を備えることを特徴とする設計支援装置。
【請求項２】
第１の半導体チップは、前記貫通ビアが配置される対象領域を含み、
前記貫通ビア配置手段は、前記対象領域内において、貫通ビアの配置位置を決定し、
前記予約セル配置手段は、前記対象領域内において、予約セルの配置位置を決定する
ことを特徴とする請求項１に記載の設計支援装置。
【請求項３】
前記半導体チップは、一のブロックを含み、前記対象領域は、前記ブロックであり、
前記貫通ビア配置手段は、前記対象領域としての前記ブロック内において、貫通ビアの配置位置を決定し、
前記予約セル配置手段は、前記対象領域としての前記ブロック内において、前記予約セルの配置位置を決定する
ことを特徴とする請求項２に記載の設計支援装置。
【請求項４】
第１の半導体チップは、第１のブロックを含み、第２の半導体チップは、第２のブロックを含み、第１のブロックは、第２のブロックとの重複領域を有し、前記重複領域は、当該重複領域の面の垂直方向に、第２のブロックの一部又は全部が存在する領域であり、前記対象領域は、前記重複領域であり、
前記貫通ビア配置手段は、前記対象領域として、第１のブロックの前記重複領域内において、貫通ビアの配置位置を決定し、
前記予約セル配置手段は、前記対象領域として、前記重複領域内において、前記予約セルの配置位置を決定する
ことを特徴とする請求項２に記載の設計支援装置。
【請求項５】
前記予約セル配置手段は、前記対象領域内において、ランダムに前記予約セルの配置位置を決定する
ことを特徴とする請求項２に記載の設計支援装置。
【請求項６】
前記予約セル配置手段は、前記対象領域内に配置される予約セルの面積の合計の、前記対象領域の面積に対する比率が指定された面積比率となるように、予約セルの配置数を決定する
ことを特徴とする請求項２に記載の設計支援装置。
【請求項７】
前記面積比率は、１パーセント以上、５パーセント以下である
ことを特徴とする請求項６に記載の設計支援装置。
【請求項８】
前記予約セル配置手段は、前記対象領域内において、前記貫通ビアの配置位置に対して、対称となる位置を、前記予約セルの配置位置として決定する
ことを特徴とする請求項２に記載の設計支援装置。
【請求項９】
前記予約セル配置手段は、前記対象領域内において、一本の軸を定め、定めた軸を対称
軸として、前記対象領域内において、前記貫通ビアの配置位置に対して、線対称となる位置を、前記予約セルの配置位置として決定する
ことを特徴とする請求項８に記載の設計支援装置。
【請求項１０】
前記予約セル配置手段は、前記対象領域内において、一個の点を定め、定めた点を対称点として、前記対象領域内において、前記貫通ビアの配置位置に対して、点対称となる位置を、前記予約セルの配置位置として決定する
ことを特徴とする請求項８に記載の設計支援装置。
【請求項１１】
前記予約セル配置手段は、前記対象領域内において、一の貫通ビアの配置位置から等距離にある複数の位置を、複数の予約セルの配置位置として決定する
ことを特徴とする請求項２に記載の設計支援装置。
【請求項１２】
前記予約セル配置手段は、前記対象領域内に配置される回路の動作速度と前記距離とが反比例の関係を有するように、前記距離を決定する
ことを特徴とする請求項１１に記載の設計支援装置。
【請求項１３】
前記予約セル配置手段は、前記対象領域内において、一の予約セルの配置位置と、当該予約セルに隣接する複数の予約セルの配置位置との間の複数の距離が等しくなるように、複数の予約セルの配置位置を決定する
ことを特徴とする請求項２に記載の設計支援装置。
【請求項１４】
前記予約セル配置手段は、前記対象領域内に配置される複数のＴＳＶをグループに分類し、各グループに含まれるＴＳＶの配置位置に基づいて、予約セルの配置位置を決定する
ことを特徴とする請求項２に記載の設計支援装置。
【請求項１５】
前記予約セル配置手段は、近接して配置されたＴＳＶが同一のグループに属するように、ＴＳＶを分類する
ことを特徴とする請求項１４に記載の設計支援装置。
【請求項１６】
前記予約セル配置手段は、一のグループに含まれる複数のＴＳＶの配置位置の中央において、予約セルの配置位置を決定する
ことを特徴とする請求項１５に記載の設計支援装置。
【請求項１７】
複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援する設計支援装置で用いられる設計支援方法であって、
第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置ステップと、
第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置ステップと、
前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成ステップと
を含むことを特徴とする設計支援方法。
【請求項１８】
複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援する設計支援装置で用いられる設計支援用のコンピュータプログラムであって、
コンピュータである設計支援装置に、
第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置ステップと、
第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置ステップと、
前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成ステップと
を実行させることを特徴とするコンピュータプログラム。
【請求項１９】
複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援する設計支援装置で用いられる設計支援用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
コンピュータである設計支援装置に、
第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置ステップと、
第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置ステップと、
前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成ステップと
を実行させるコンピュータプログラムを記録している記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の半導体集積回路チップを層状に配列して構成される三次元集積回路の設計を支援する技術に関する。
【背景技術】
【０００２】
半導体集積回路をより高集積化するために、複数の半導体集積回路チップ（以下、半導体チップと呼ぶ。）を積層して、一つのパッケージとする手法が用いられるようになってきている。このような手法により製造された集積回路を三次元集積回路と呼ぶ。特許文献１及び特許文献２には、それぞれ、複数の半導体チップを上下に重ね合わせて構成する半導体集積回路の各半導体チップのレイアウトを設計する三次元集積回路設計装置が開示されている。【０００３】
三次元集積回路において積層された第１及び第２の半導体チップ間は、第１の半導体チップを貫通して設けられるシリコン貫通ビア（Ｔｈｒｏｕｇｈ−Ｓｉｌｉｃｏｎ  Ｖｉａ。以下、ＴＳＶと略す。）と呼ばれる電極によって接続される。ＴＳＶの周囲には、トランジスタなどのセルを配置しない配置禁止領域を設ける。また、第２の半導体チップにおいて、第１の半導体チップに設けられたＴＳＶの位置に対向する位置にも、配置禁止領域を設ける。これは、第１の半導体チップと第２の半導体チップを張り合わせる際に発生するストレス（応力）が、周辺セルに影響を与えないようにするためである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２５０７５４号公報
【特許文献２】特開２００８−２４３９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
三次元集積回路の設計が一旦終了した後、配置されたセルや配線の位置の変更をする場合がある。例えば、設計が一旦終了した後、ＤＲＣ（Ｄｅｓｉｇｎ  Ｒｕｌｅ  Ｃｈｅｃｋ）、ＬＶＳ（Ｌａｙｏｕｔ  Ｖｅｒｓｕｓ  Ｓｃｈｅｍａｔｉｃ）、アンテナルールチェックなどを行うことにより、三次元集積回路のレイアウトが設計条件を満たしているかどうかを検証する。上記のようにセルや配線の位置の変更をするのは、この検証において、設計条件を満たしていないと判定されるような場合である。設計条件を満たさないと判定された場合に、セルや配線の位置を変更しなければならないが、セルや配線の位置の変更に応じて、ＴＳＶの位置をも変更することがある。このＴＳＶの位置の変更に伴って、半導体チップの配置禁止領域の位置を変更しなければならないので、そうすると、新たに配置禁止領域となる領域における配線やセルの位置変更が発生する。また、この場合には、設計の変更は、第１の半導体チップのみに止まらない。何故なら、上述したように、第２の半導体チップにおいて、ＴＳＶの位置に対向する位置に配置禁止領域を設ける必要があり、第１の半導体チップにおけるＴＳＶの位置変更に伴い、第２の半導体チップの配置禁止領域の位置を変更しなければならないからである。そうすると、第２の半導体チップにおける配置禁止領域の位置変更に伴い、新たに配置禁止領域となる領域における配線やセルの位置変更が発生する。【０００６】
このように、半導体チップにおいて、ＴＳＶの位置を変更すると、配置位置の変更は、当該ＴＳＶの位置だけでなく、他のセル等の配置位置にも及び、配置位置の変更が多大となるという問題点がある。【０００７】
上記の問題点を解決するために、本発明は、ＴＳＶの位置変更が発生した場合であっても、その他の回路部分においてできる限り配置位置の変更が発生しないようにすることができる三次元集積回路の設計支援装置、設計支援方法、設計支援のためのコンピュータプログラム及びコンピュータプログラムを記録している記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援する設計支援装置であって、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置手段と、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置手段と、前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成手段とを備えることを特徴とする。
【発明の効果】
【０００９】
この構成によると、三次元集積回路の設計の途中でＴＳＶの配置位置の変更が発生する場合に、新たにＴＳＶを配置すべき位置として予め配置しておいた予約セルの配置位置を用いることができるので、その他の回路部分における多大な設計変更が発生しないようにできるという優れた効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】三次元集積回路１００の断面概念図及び三次元集積回路１００を構成する各半導体チップの平面概念図である。
【図２】三次元集積回路１００を設計する工程を示すフローチャートである。
【図３】三次元集積回路１００において、半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７の重複領域１５１を示す概念図である。
【図４】三次元集積回路１００を構成する半導体チップ１０１ａのブロック１３１に複数の予約セルがランダムに配置された様子を示す平面概念図である。
【図５】三次元集積回路１００を構成する半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７の重複領域１５１に複数の予約セルがランダムに配置された様子を示す平面概念図である。
【図６】三次元集積回路１００を構成する半導体チップ１０１ａのブロック１３１に複数の予約セルが等間隔で配置された様子を示す平面概念図である。
【図７】三次元集積回路１００を構成する半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７の重複領域１５１に複数の予約セルが等間隔で配置された様子を示す平面概念図である。
【図８】三次元集積回路１００を構成する半導体チップ１０１ａのブロック１３１において、ブロック１３１の中心線２１１を対称軸として、ブロック１３１上のＴＳＶの配置位置と線対称となる位置に、予約セルが配置された様子を示す平面概念図である。
【図９】三次元集積回路１００を構成する半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７の重複領域１５１において、重複領域１５１の中心線２１２を対称軸として、重複領域１５１上のＴＳＶの配置位置と線対称となる位置に、予約セルが配置された様子を示す平面概念図である。
【図１０】三次元集積回路１００を構成する半導体チップ１０１ａのブロック１３１において、ブロック１３１の中心点２１５を対称点として、ブロック１３１上のＴＳＶの配置位置と点対称となる位置に、予約セルが配置された様子を示す平面概念図である。
【図１１】三次元集積回路１００を構成する半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７の重複領域１５１において、重複領域１５１の中心点２１８を対称点として、重複領域１５１上のＴＳＶの配置位置と点対称となる位置に、予約セルが配置された様子を示す平面概念図である。
【図１２】三次元集積回路１００を構成する半導体チップ１０１ａのブロック１３１において、ブロック１３１のＴＳＶ１６１が配置される位置を中心点とし、ＴＳＶ１６１から等距離にある位置に複数の予約セルが配置された様子を示す平面概念図である。
【図１３】三次元集積回路１００を構成する半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７の重複領域１５１において、ＴＳＶ１６１が配置される位置を中心点とし、ＴＳＶ１６１から等距離にある位置に複数の予約セルが配置された様子を示す平面概念図である。
【図１４】三次元集積回路１００を構成する半導体チップ１０１ａのブロック１３１において、ブロック１３１の複数のＴＳＶが複数個のグループに分類され、各グループにおいて、グループに含まれる複数のＴＳＶが配置される位置を多角形の頂点とし、その多角形の重心である位置に、予約セルが配置された様子を示す平面概念図である。
【図１５】三次元集積回路１００を構成する半導体チップのブロックの一部分を拡大した平面概念図である。ここには、ＴＳＶ２５２、配置禁止領域２５１及び予約セル２５０が配置されている。
【図１６】三次元集積回路１００を構成する半導体チップのブロックの一部分を拡大した平面概念図であり、図１５に示す平面概念図において、ＴＳＶ及び配置禁止領域の配置位置を予約セル２５０の位置に移動した後のものである。ここには、ＴＳＶ２６２、配置禁止領域２６１及び予備領域２６３が配置されている。
【図１７】三次元集積回路１００を構成する半導体チップのブロックの一部分を拡大した平面概念図であり、図１６に示す平面概念図において、予備領域２６３であった領域に、リペアセル２７１〜２７５が配置されている。
【図１８】三次元集積回路１００を構成する半導体チップのブロックの一部分を拡大した平面概念図であり、図１６に示す平面概念図において予備領域２６３であった領域に、サーマルビア２７８及び配置禁止領域２７７が配置されている。
【図１９】設計支援装置４００の構成を示すブロック図である。
【図２０】配置配線部４０８の構成を示すブロック図である。
【図２１】ハードウェア記述言語  （Ｈａｒｄｗａｒｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）により記述された一例としてのＨＤＬファイル４５４を示す。
【図２２】ＴＳＶ予約セル配置情報４６０のデータ構造の一例を示す。
【図２３】ネットリストの一例としてのＨＤＬファイル４７１を示す。
【図２４】フロアプランテーブル５０１の一例を示す。
【図２５】ピン配置テーブル５０２の一例を示す。
【図２６】ＴＳＶ配置テーブル５０３の一例を示す。
【図２７】ＴＳＶ予約セルテーブル５０５の一例を示す。
【図２８】配線テーブル５０８の一例を示す。
【図２９】設計支援装置４００の配置配線部４０８の動作を示すフローチャートである。
【図３０】ＴＳＶ予約セル配置部４３９おける動作を示すフローチャートである。
【図３１】予約セルをランダムに配置する場合の動作を示すフローチャートである。
【図３２】予約セルを等間隔に配置する場合の動作を示すフローチャートである。図３３へ続く。
【図３３】予約セルを等間隔に配置する場合の動作を示すフローチャートである。図３２から続く。
【図３４】予約セルを対称位置に配置する場合の動作を示すフローチャートである。
【図３５】予約セルをＴＳＶから等間隔に配置する場合の動作を示すフローチャートである。
【図３６】グルーピングした複数のＴＳＶに対して、予約セルを配置する場合の動作を示すフローチャートである。図３７へ続く。
【図３７】グルーピングした複数のＴＳＶに対して、予約セルを配置する場合の動作を示すフローチャートである。図３６から続く。
【図３８】変形例としての設計支援装置４００の配置配線部４０８の動作を示すフローチャートである。
【図３９】変形例としてのブロック内のＴＳＶ３８１、配置禁止領域３８２及び予約セル３８３、３８４の配置を示す一例である。
【発明を実施するための形態】
【００１１】
１．実施の形態
本発明に係る一の実施の形態としての設計支援装置４００について説明する。
１．１  三次元集積回路の構造
ここでは、設計支援装置４００を用いて設計された三次元集積回路の構造について説明する。
【００１２】
なお、以下において説明する三次元集積回路の構造は、設計支援装置４００を用いて設計された段階におけるものであり、現実に製造された集積回路の構造を説明するものではないことに注意を要する。以下における構成、形成、接続、設けるなどの用語は、現実に製造された集積回路の物理的な構造を説明するものではなく、設計支援装置４００上において、論理的な三次元空間において表現された集積回路の論理的な構造を説明するために、用いている。
【００１３】
設計支援装置４００を用いて設計された三次元集積回路の一例としての三次元集積回路１００は、図１に示すように、インタポーザ１０２、３個の半導体チップ１０１ｃ、１０１ｂ及び１０１ａ、及び複数のバンプ１０３ａ、１０３ｂ、１０３ｃ、・・・、１０３ｄから構成されている。インタポーザ１０２の上面には、３個の半導体チップ１０１ｃ、１０１ｂ及び１０１ａがこの順序で積層され、言い換えると、層状に配列されている。また、インタポーザ１０２の下面に複数のバンプ１０３ａ、１０３ｂ、１０３ｃ、・・・、１０３ｄが配されている。三次元集積回路１００は、回路基板（図示していない）上に搭載され、半導体チップ１０１ａ、１０１ｂ及び１０１ｃは、インタポーザ１０２及び複数のバンプ１０３ａ、１０３ｂ、１０３ｃ、・・・、１０３ｄを介して、回路基板に接続される。
【００１４】
なお、設計支援装置４００においては、インタポーザ１０２の上面に対して垂直の方向にＺ軸を設定し、インタポーザ１０２の上面内において、Ｘ軸及びＸ軸に垂直の方向のＹ軸を設定して、三次元空間を定義している。
【００１５】
インタポーザ１０２は、半導体チップと回路基板との間において、配線の寸法を変換するための薄型構造体である。バンプ１０３ａ、１０３ｂ、１０３ｃ、・・・、１０３ｄは、それぞれ、インタポーザ１０２と回路基板との接続に使用される微小な接続ピンである。
【００１６】
図１に示すように、一例として、半導体チップ１０１ａは、複数のブロック１３１〜１３５から構成され、半導体チップ１０１ｂは、複数のブロック１３６〜１４０から構成され、半導体チップ１０１ｃは、複数のブロック１４１〜１４４から構成されている。各ブロックは、図１に一例として示すように、一つのまとまった機能を有する。例えば、ブロック１３１は、圧縮画像データを復号するデコーダであり、ブロック１３２は、デコードされた画像データを符号化するエンコーダであり、ブロック１３７は、これらの画像データの仲介を行う画像ＩＯユニットである。
【００１７】
半導体チップ１０１ａは、半導体チップ１０１ａを貫通して設けられた１個以上のＴＳＶにより、半導体チップ１０１ｂと接続され、半導体チップ１０１ｂは、半導体チップ１０１ｂを貫通して設けられた１個以上のＴＳＶにより、半導体チップ１０１ｃと接続され、半導体チップ１０１ｃは、半導体チップ１０１ｃを貫通して設けられた１個以上のＴＳＶにより、インタポーザ１０２と接続される。
【００１８】
半導体チップ１０１ａは、ｐｏｌｙ−Ｓｉやウェルなどの層１１７、金属配線層３（１１３）、金属配線層２（１１２）及び金属配線層１（１１１）が、この順序で積層されて形成されている。層１１７には、種々のセルが形成される。ここで、セルとは、例えば、ＡＮＤゲート、ＮＯＲゲートなどの論理回路、外部端子、ＳＲＡＭメモリ、ＴＳＶなどの電子部品である。また、金属配線層１（１１１）、金属配線層２（１１２）及び金属配線層３（１１３）のそれぞれには、複数の配線が形成される。
【００１９】
半導体チップ１０１ｂも、半導体チップ１０１ａと同様に、ｐｏｌｙ−Ｓｉやウェルなどの層１１８、金属配線層３（１１６）、金属配線層２（１１５）及び金属配線層１（１１４）が、この順序で積層されて形成されている。半導体チップ１０１ｃについても同様である。
【００２０】
半導体チップ１０１ａ、１０１ｂ及び１０１ｃには、それぞれ、１個以上のＴＳＶにそれぞれ対応して、１個以上の配置禁止領域が設定される。各配置禁止領域は、対応するＴＳＶを囲むように、半導体チップを貫通して設定される。また、ＴＳＶの接続相手の半導体チップにおいても、ＴＳＶに対向する位置に配置禁止領域が設定される。
【００２１】
ＴＳＶは、一例として、直方体形状を有しており、ＴＳＶの半導体チップの面方向の断面の形状は、一例として、正方形である。以下において、ＴＳＶが配置される位置とは、ＴＳＶの断面形状であるこの正方形の中心位置が、半導体チップ内において配置される位置を言うものとする。なお、正方形の中心位置とは、正方形の２本の対角線の交点である。また、ＴＳＶの半導体チップの面方向の断面の形状は、正方形には、限定されない。例えば、直方形であるとしてもよいし、多角形であるとしてもよい。また、円形や楕円形であるとしてもよい。
【００２２】
配置禁止領域も、一例として、直方体形状を有しており、配置禁止領域の半導体チップの面方向の断面の形状は、一例として、正方形である。以下において、配置禁止領域が配置される位置とは、配置禁止領域の断面形状であるこの正方形の中心位置が、半導体チップ内において配置される位置を言うものとする。なお、正方形の中心位置とは、正方形の２本の対角線の交点である。また、配置禁止領域の半導体チップの面方向の断面の形状は、正方形には、限定されない。例えば、直方形であるとしてもよいし、多角形であるとしてもよい。また、円形や楕円形であるとしてもよい。
【００２３】
また、半導体チップ１０１ａ、１０１ｂ及び１０１ｃには、それぞれ、１個以上のＴＳＶ予約セル（以下、予約セルと呼ぶ。）の配置位置が設定される。予約セルは、ＴＳＶの配置位置を変更する必要が生じた場合に、変更後のＴＳＶを配置する位置として利用される。つまり、位置が変更された後のＴＳＶを配置する予備の配置位置である。予約セルは、ＴＳＶを配置するための予備の領域であるので、少なくともＴＳＶ及び配置禁止領域を合わせた領域と同等以上の面積を有する。
ＴＳＶ及び配置禁止領域を合わせた領域が一例として直方体形状である場合に、予約セルは、直方体形状を有しており、予約セルの半導体チップ面方向の断面の形状は、正方形である。この断面の一辺の長さを予約セルの幅と呼ぶこととする。なお、以下において、予約セルが配置される位置とは、予約セルの断面形状であるこの正方形の中心位置が、半導体チップ内において配置される位置を言うものとする。
【００２４】
図１に一例として示すように、半導体チップ１０１ａには、半導体チップ１０１ａと半導体チップ１０１ｂとを接続するため、半導体チップ１０１ａの下面に対して垂直方向に、半導体チップ１０１ａの層１１７を貫通して、ＴＳＶ１２１が設けられる。ＴＳＶ１２１の一端は、金属配線層３（１１３）に形成された配線に接続され、ＴＳＶ１２１の他端は、半導体チップ１０１ｂの金属配線層１（１１４）に形成された配線に接続される。半導体チップ１０１ａ上に形成されたブロックは、金属配線層１（１１１）、金属配線層２（１１２）及び金属配線層３（１１３）（又は、いずれか１個の金属配線層又は、何れか２個の金属配線層）に形成された配線、ＴＳＶ１２１、並びに、金属配線層１（１１４）、金属配線層２（１１５）及び金属配線層３（１１６）（又は、いずれか１個の金属配線層又は、何れか２個の金属配線層）に形成された配線を介して、半導体チップ１０１ｂ上に形成されたブロックと接続される。
【００２５】
また、半導体チップ１０１ａにおいては、図１に一例として示すように、配置禁止領域１２２が、ＴＳＶ１２１を囲むように、半導体チップ１０１ａの下面に垂直方向に、半導体チップ１０１ａの金属配線層１（１１１）、金属配線層２（１１２）、金属配線層３（１１３）及び層１１７を貫通して設定される。
【００２６】
また、半導体チップ１０１ｂにも、図１に一例として示すように、配置禁止領域１２３が設定される。配置禁止領域１２３は、ＴＳＶ１２１の下面に対向する位置において、ＴＳＶ１２１の下面から半導体チップ１０１ｂ側に垂直方向に、半導体チップ１０１ｂの金属配線層１（１１４）、金属配線層２（１１５）、金属配線層３（１１６）及び層１１８を貫通して設定される。配置禁止領域１２３の大きさは、配置禁止領域１２２及びＴＳＶ１２１を合わせた領域以上の大きさである。
【００２７】
さらに、半導体チップ１０１ａにおいては、図１に一例として示すように、予約セル１２４が、半導体チップ１０１ａを貫通して、つまり、半導体チップ１０１ａの金属配線層１（１１１）、金属配線層２（１１２）、金属配線層３（１１３）及び層１１７を貫通して設定される。半導体チップ１０１ａにおいて、予約セル１２４が配置される位置については、後述する。
【００２８】
図１において、半導体チップ１０１ａと半導体チップ１０１ｂの接続方法について図示し、上記に説明したが、半導体チップ１０１ｂと半導体チップ１０１ｃの接続方法、及び半導体チップ１０１ｃとインタポーザ１０２との接続方法についても同様であるので、説明を省略する。
【００２９】
以上説明したように、三次元集積回路１００は、複数の半導体チップ（ダイとも呼
ぶ。）が積み重ねられ、垂直に相互結線されることにより、形成された１個の集積回路であり、単体の電子部品として機能する。
【００３０】
１．２  三次元集積回路の設計工程
ここでは、三次元集積回路の設計工程について説明する。
三次元集積回路においては、一の半導体チップと他の半導体チップとが、ＴＳＶを介して接続されている。三次元集積回路の設計は、ＴＳＶの配置等に関する設計を除いて、１個の半導体チップから構成される集積回路（二次元集積回路と呼ぶ）の設計と比較して、大きな差はない。三次元集積回路の設計においては、二次元集積回路の設計手法を利用することができる。
【００３１】
図２に三次元集積回路の設計工程を表したフローチャートを示す。図２においては、三次元集積回路が半導体チップ１と半導体チップ２とを積層して構成されるものとして説明する。
【００３２】
最初に、機能仕様設計工程においては、コーデックや高画質処理の種類など商品システムとして三次元集積回路に持たせる処理機能を決定する（工程Ｓ１０１）。
次に、機能分割、ＴＳＶ端子の決定工程では、三次元集積回路を構成する複数の半導体チップのそれぞれに実装する機能のパーティショニングを行う。ここでは、機能仕様設計工程Ｓ１０１において決定した機能を複数の半導体チップで実現する際に、どの機能をどの半導体チップに実装するか、半導体チップと半導体チップとの間の端子（ＴＳＶ）数、通信プロトコルなどのインタフェースをどのように定義するかなどの仕様を決める（工程Ｓ１０２）。
【００３３】
ここまでにおいては、三次元集積回路の全体について、一つのフローとしての工程群（工程Ｓ１０１〜Ｓ１０２）において、設計がされる。工程Ｓ１０２の次の工程からは、半導体チップ毎に、一つのフローにおいて、設計がされる（ただし、以下に説明する工程Ｓ１０５を除く。）。
【００３４】
論理設計工程では、Ｖｅｒｉｌｏｇ−ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）等のハードウェア記述言語を用いて、半導体チップ上に実現すべき機能を回路マッピング可能な表現で記述する（工程Ｓ１０３ａ、工程Ｓ１０３ｂ）。
【００３５】
次の論理合成工程では、ハードウェア記述言語を解析してＡＮＤゲート、ＮＯＲゲートなどの論理回路の最小単位であるスタンダードセル（以下では単にセルと呼ぶ場合もある）に回路マッピングする（工程Ｓ１０４ａ、工程Ｓ１０４ｂ）。
【００３６】
電源数など外部とのやりとりが必要な端子を決めるＴＳＶ端子の物理位置の決定工程では、半導体チップ間のデータ信号用、電源用のＴＳＶの位置を決定する（工程Ｓ１０５）。この工程は、三次元集積回路の全体について、一つの工程である。この工程Ｓ１０５は、二次元集積回路の設計においては、存在しない工程である。次の工程の配置配線を行う前にＴＳＶの位置を事前に決定しておく必要がある。
【００３７】
次に、配置配線工程では、セルの配置とセル同士の配線を行う。ここでは、回路の動作周波数を満たすようにセルの配置、配線処理を行う（工程Ｓ１０６ａ、工程Ｓ１０６ｂ）。もしも、この段階で回路の周波数が設計仕様通りに出せない等の場合には、論理設計工程Ｓ１０３ａ、Ｓ１０３ｂまで戻って修正することもある。また、ＴＳＶ端子の物理位置の決定工程Ｓ１０５まで戻ることもある。配置配線工程では、最初に論理合成工程の処理結果であるネットリストや設計仕様制約等のファイルを読み込む。次に、半導体チップのレイアウトのフロアプランを決定する。その次に、外部端子やＳＲＡＭメモリなどのマクロセルを配置する。さらに、全ての回路のパスが設計仕様のタイミング制約を満たすようにセルを配置して、電源配線を行う。この後、セル同士を配線する概略配線、詳細配線処理を順番に行う。なお、ＴＳＶはチップから見ると端子の一種であるが、通常の端子とは異なりマクロセルとして設置する。また、半導体チップ同士を直接に張り合わせるため、それぞれの半導体チップで、お互いのＴＳＶの位置を合わせておく必要がある。
【００３８】
配置配線工程では、セル間のタイミング制約や配線リソース制約を満たして設計する必要がある。これらの制約を１つでも満たせない場合には半導体チップとして正常に動作しない恐れがあるため、修正が必要である。ただし、実際には端子位置などの変更をしてセル配置以降のやり直しだけで修正できることも多い。
【００３９】
レイアウト検証工程では、ＤＲＣ（Ｄｅｓｉｇｎ  Ｒｕｌｅ  Ｃｈｅｃｋ）、ＬＶＳ（Ｌａｙｏｕｔ Ｖｅｒｓｕｓ Ｓｃｈｅｍａｔｉｃ）、アンテナルールチェックなどマスクレイアウトの検証、最終確認を行う。検証の結果、不都合があれば、必要な工程まで戻る。
【００４０】
これらの設計工程を経由して最終的に、三次元集積回路のマスクレイアウトを示すマスクデータ４００ａ、４００ｂが生成される。
上記においては、三次元集積回路が半導体チップ１と半導体チップ２とを積層して構成されるものとして説明しているが、３個より多い数の半導体チップを積層した三次元集積回路の設計を行う場合においても、上記と同様の工程を経ることとなる。この場合、機能仕様設計工程、機能分割、ＴＳＶ端子の決定工程は、それぞれ、三次元集積回路の全体について、一つの工程フローとしての工程群において、設計がされる。この後の工程では、上記のＴＳＶ端子の物理位置の決定工程を除いて、半導体チップ毎に、一つのフローにおいて、設計がされる。ＴＳＶ端子の物理位置の決定工程では、三次元集積回路の全体について、一つの工程フローとしての工程群において、設計がされる。
【００４１】
１．３  予約セルの配置
三次元集積回路を構成する複数の半導体チップのそれぞれには、上述したように、１個以上の予約セルの配置位置が設定される。予約セルは、ＴＳＶの配置位置を変更する必要が生じた場合に、変更後のＴＳＶを配置する位置として利用される。つまり、位置が変更された後のＴＳＶを配置する予備の配置位置である。
【００４２】
ここでは、各半導体チップ上にどのように、予約セルを配置するかについて説明する。
（１）予約セルを配置する対象領域
予約セルは、一例として、図１に示す複数のブロック１３１〜１３５、１３６〜１４０、１４１〜１４４のうち、ＴＳＶが配置されるブロック内に、配置される。ここで、予約セルの配置の対象となる領域を対象領域と呼ぶことにする。この場合には、対象領域は、ＴＳＶが配置されるブロックの全体である。一方、ＴＳＶが配置されないブロックには、予約セルは、配置されない。
【００４３】
図３に一例として示すように、半導体チップ１０１ａのブロック１３１に、ブロック１３１を貫通してＴＳＶ１６１〜１６３が配置され、ＴＳＶ１６１〜１６３は、半導体チップ１０１ｂのブロック１３７と接続されているものとする。ここで、三次元集積回路１００の上面からＹ軸方向に沿って、三次元集積回路１００を透視するように見ると、半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７とは、一部の領域１５１において重なっている。つまり、半導体チップ１０１ａのブロック１３１が有する一部の領域１５１の下面と、半導体チップ１０１ｂのブロック１３７の一部の領域の上面とを接触させた状態で、ブロック１３１とブロック１３７とが層状に配列されている。また、半導体チップ１０１ａのブロック１３１が有する一部の領域１５１の下面と、半導体チップ１０１ｂのブロック１３７の全部の領域の上面とを接触させた状態で、ブロック１３１とブロック１３７とが層状に配列されているとしてもよい。
なお、半導体チップ１０１ａの下面と、半導体チップ１０１ｂの上面との間に１個以上のバンプが設けられ、半導体チップ１０１ａと半導体チップ１０１ｂとは、これらのバンプを介して接続されているとしてもよい。半導体チップ１０１ｂの下面と、半導体チップ１０１ｃの上面との間についても同様である。また、半導体チップ１０１ａの下面と半導体チップ１０１ｂの上面とは、接着剤により接着されているとしてもよい。半導体チップ１０１ｂの下面と半導体チップ１０１ｃの上面との間についても同様である。
半導体チップ１０１ａのブロック１３１は、半導体チップ１０１ｂのブロック１３７との重複領域を有する。重複領域は、当該重複領域の面の垂直方向に、ブロック１３７のブロックの一部又は全部が存在する領域である。図３に示す例によると、領域１５１は、その領域の面の垂直方向に、ブロック１３７のブロックの一部又は全部が存在する領域であるので、重複領域である。
ＴＳＶ１６１〜１６３は、ブロック１３１とブロック１３７とを接続しているので、ＴＳＶ１６１〜１６３は、重複領域１５１内に配置されている。従って、ＴＳＶ１６１〜１６３のための予約セルは、重複領域１５１内に配置されるとよい。
【００４４】
このように、予約セルは、ＴＳＶが配置されるブロックと、当該ＴＳＶの接続先のブロックとが重なる重複領域に配置されるとしてもよい。この場合に、重複領域を対象領域とする。
【００４５】
（２）対象領域内に配置される予約セルの数の決定方法
対象領域内に配置される予約セルの数は、次のようにして決定される。なお、以下に示す決定方法により定めた予約セルの数は、後述する様々な予約セルの配置方法において用いることができる。
【００４６】
第一の方法として、利用者により、予約セル数が指定されることにより、決定されるとしてもよい。
第二の方法として、予約セル数がパーセントルールにより定められるとしてもよい。パーセントルールとは、
［配置する全ての予約セルの面積の合計値／対象領域の総面積］＝予め指定された予約セルの面積比率
を満たすように、予約セルの数を決定することを示すことを意味する。言い換えると、対象領域内に配置される全ての予約セルが占める面積の合計値の、対象領域の総面積に対する面積比率（パーセント）を用いて、予約セルの数を決定する。この場合、予約セルの数は、次の式により算出される。ここで、面積比率は、利用者により指定される。なお、この面積比率は、利用者により指定されることなく、常に固定値であるとしてもよい。
【００４７】
予約セルの数＝［対象領域の総面積×指定された面積比率（パーセント）／１個の予約セルの面積×１００］
ここで、［ｘ］は、ｘの小数点以下を切り捨てる演算の結果を示す。
【００４８】
なお、指定される面積比率は、１０パーセント以内が好ましく、１パーセント以上、５パーセント以下がより好ましいと考えられる。面積比率が大きくなると、ブロック内に将来使用されない無駄な領域が多く残る可能性が高くなるからである。
【００４９】
第三の方法として、対象領域に配置されるＴＳＶの数に依存して、予約セルの数を決定するとしてもよい。例えば、以下に示す式により、対象領域に配置されるＴＳＶの数に、倍数を乗じて得られた数を、予約セルの数として定め、対象領域の全体に、定めた予約セル数分の予約セルを配置する。ここでは、倍数は、一例として、２〜４倍である。
【００５０】
予約セルの数＝ＴＳＶの数×倍数
なお、ここでは、対象領域に配置される各ＴＳＶに対応して、２〜４倍の数の予約セルを配置するのではなく、対象領域に配置される全てのＴＳＶの数に依存して、予約セルの数を決定し、決定した数の予約セルを対象領域に配置する。この方法によると、各ＴＳＶに対して、常に、２〜４倍の数の予約セルを予備として配置されるので、ＴＳＶの位置の変更が発生した場合に柔軟に対応することができる。ここで、倍数は、利用者により指定されるとしてもよい。また、倍数は、常に固定値であるとしてもよい。
【００５１】
第四の方法として、対象領域に配置されるＴＳＶの位置及び数に依存して、予約セルの数を決定してもよい。例えば、対象領域に配置される全てのＴＳＶを、近接して配置されるＴＳＶが同じグループに属するように、分類して複数のグループに分け、グループの数の２〜４倍の数を、対象領域に配置される予約セルの数としてもよい。また、グループ毎に、グループに含まれるＴＳＶの数に依存する倍数を設定して、予約セルの数を算出してもよい。ここで、倍数は、利用者により指定されるとしてもよい。また、倍数は、常に固定値であるとしてもよい。また、この場合には、各グループに近接する位置に、グループ毎に定まる数の予約セルを配置してもよい。
【００５２】
なお、予約セル数の決定方法を予め定めておく必要がない場合もある。例えば、後述するように、ＴＳＶの配置位置に対称となる位置に予約セルを配置する方法を採用するような場合である。この場合には、１個のＴＳＶに対応して１個の予約セルが配置される。つまり、ＴＳＶの数と同じ数の予約セルが配置されるので、予め、予約セル数の決定方法を定めておく必要がない。
【００５３】
（３）予約セルの配置方法
ここでは、予約セルの配置方法として、予約セルのランダムな配置、予約セルの等間隔の配置、利用者の指定位置における予約セルの配置、ＴＳＶの配置位置に対称となる位置への配置、ＴＳＶから等距離の位置における予約セルの配置、及びＴＳＶが属するグループ毎の予約セルの配置について、説明する。
【００５４】
（ａ）衝突の排除
それぞれの予約セルを配置しようとする場合に（ここでは、これらの予約セルを配置対象予約セルと呼ぶ。）、既に配置が決定された他のセル（ここでは、既決定セルと呼
ぶ。）が存在する場合に、同一の半導体チップ上で、配置対象予約セルの配置位置と既決定セルとの配置位置が衝突しないように、つまり、配置対象予約セルの配置位置と既決定セルの配置位置とが重複して設定されないように、考慮する必要がある。また、上記の既決定セルは、当該半導体チップの張り合わせ先の半導体チップ上に配置されるＴＳＶも含む。つまり、第１の半導体チップと第２の半導体チップとが張り合わされる場合において、第１の半導体チップの上の配置対象予約セルと、第２の半導体チップの上に既に配置されているＴＳＶとが重複して設定されないように、考慮する必要もある。
【００５５】
そのため、以下に説明するような予約セルの配置方法により、配置対象予約セルの配置位置を一旦仮に決定すると、配置対象予約セルの配置位置と、既決定セルの配置位置とが重複するかどうかを判断し、重複すると判断される場合には、当該配置対象予約セルの位置を移動させる。移動させる距離は、例えば、予約セルの幅分である。予約セルの幅分だけ、配置対象予約セルの配置位置を移動させた後に、再度、衝突を判断し、衝突する場合に、さらに、配置対象予約セルの位置を移動させる。移動及び衝突判断を衝突が無くなるまで繰り返す。こうして、衝突が無くなったと判断されたときに、この位置を予約セルの配置位置として決定する。
【００５６】
上記において、例えば、Ｘ軸正方向、Ｘ軸負方向、Ｙ軸正方向、Ｙ軸負方向の順に、予約セルの配置位置の移動を繰り返し、移動する度に、衝突判断を行う。それでもなお、衝突が発生する場合には、移動距離を予約セルの幅の２倍、３倍、・・・として、予約セルの配置位置の移動を繰り返し、移動する度に、衝突判断を行う。
【００５７】
（ｂ）予約セルのランダムな配置
（対象領域内への配置）
予約セルは、ＴＳＶが配置される対象領域内において、ランダムに決定された位置に配置されるとしてもよい。
【００５８】
最初の設計が一旦完了した後、複数のＴＳＶのいずれかの配置位置が変更される場合、最初の設計段階においては、ＴＳＶが対象領域内のどこの位置に変更されるかを予測することは困難であるので、複数の予約セルを対象領域内にランダムに配置しておくことにより、ランダムに配置された予約セルの中から、適切な変更先のＴＳＶの配置位置を選択できる可能性が高くなる。
【００５９】
（ブロック内への配置の例）
予約セルは、ＴＳＶが配置されるブロック内において、ランダムに決定された位置に配置されるとしてもよい。
【００６０】
図４に一例として示すように、ブロック１３１には、ブロック１３１を貫通して、ＴＳＶ１６１〜１６３が配置されているものとする。この場合に、対象領域は、ブロック１３１であり、予約セル１７１〜１７９が、対象領域であるブロック１３１内に、ランダムに配置される。
【００６１】
（重複領域内への予約セルの配置の例）
また、予約セルは、ＴＳＶが配置されるブロックと、当該ＴＳＶの接続先のブロックとの重複領域内において、ランダムに決定された位置に配置されるとしてもよい。
【００６２】
図５に一例として示すように、半導体チップ１０１ａのブロック１３１に、ブロック１３１を貫通してＴＳＶ１６１〜１６３が配置され、ＴＳＶ１６１〜１６３は、半導体チップ１０１ｂのブロック１３７と接続されているものとする。半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７とは、重複領域１５１を有している。
【００６３】
この場合に、対象領域は、重複領域１５１であり、予約セル１８１〜１９０が、対象領域である重複領域１５１内に、ランダムに配置される。
（ｃ）予約セルの等間隔の配置
（対象領域内への配置）
予約セルは、ＴＳＶが配置される対象領域内において、等間隔に決定された位置に配置されるとしてもよい。言い換えると、対象領域内に複数の予約セルを配置する場合に、当該対象領域内において、第１の予約セルの配置位置と、当該予約セルに隣接する第２の予約セルの配置位置との間の距離が、第１の予約セルの配置位置と、第１の予約セルに隣接する第３の予約セルの配置位置との間の距離に等しくなるように、複数の予約セルの配置位置を決定する。複数の予約セルは、行列状に配置される。
【００６４】
対象領域内において、対象領域の一辺に平行となるように、複数の行線を、それぞれ距離Ｌだけ離れるように、描き、同じ一辺に垂直に、複数の列線を、それぞれ距離Ｌだけ離れるように、描く。次に、行線と列線の各交点の位置に、予約セルを配置する。
【００６５】
ここで、例えば、前記一辺に最も近い位置の行線は、当該一辺から距離Ｌ／２だけ離れた位置に描く。また、当該一辺に直交する他の一辺に最も近い位置の列線は、当該他の一辺から距離Ｌ／２だけ離れた位置に描く。なお、これらのそれぞれの位置は、距離Ｌ／２だけ離れた位置には限定されない。例えば、利用者により指定された位置に配置するとしてもよい。また、予め定めた固定位置に配置するとしてもよい。
【００６６】
ここで、予約セルを配置する間隔である距離Ｌを、次のようにして決定してもよい。
対象領域において、一つの予約セルに割り当てる単位面積を次のようにして算出する。
単位面積＝［対象領域の総面積／予約セルの数］
次に、予約セルを配置する間隔である距離Ｌを次のようにして算出する。
【００６７】
距離Ｌ＝［平方根（単位面積）］
このようにして、予約セルを配置することにより、おおよそ、指定された数の予約セルを、対象領域上に等距離で配置することができる。
【００６８】
最初の設計が一旦完了した後、複数のＴＳＶのいずれかの配置位置が変更にされる場合、最初の設計段階においては、ＴＳＶが対象領域内のどこの位置に変更されるかを予測することは困難であるので、複数の予約セルを対象領域内に等間隔に配置しておくことにより、等間隔に配置された予約セルの中から、適切な変更先のＴＳＶの配置位置を選択できる可能性が高くなる。
【００６９】
（ブロック内の配置の例）
予約セルは、ＴＳＶが配置されるブロック内において、等間隔に決定された位置に配置されるとしてもよい。
【００７０】
図６に一例として示すように、ブロック１３１には、ブロック１３１を貫通して、ＴＳＶ１６１〜１６３が配置されているものとする。この場合に、対象領域は、ブロック１３１であり、予約セル１９１、１９２、・・・、１９３が、対象領域であるブロック１３１内に、等間隔に配置される。
【００７１】
つまり、ブロック１３１の一辺に平行に、複数の行線を、それぞれ距離Ｌだけ離れるように、描き、同じ一辺に垂直に、複数の列線を、それぞれ距離Ｌだけ離れるように、描く。次に、行線と列線の各交点の位置に、予約セルを配置する。
【００７２】
（重複領域内への予約セルの配置の例）
また、予約セルは、ＴＳＶが配置されるブロックと、当該ＴＳＶの接続先のブロックとの重複領域内において、等間隔に決定された位置に配置されるとしてもよい。
【００７３】
図７に一例として示すように、半導体チップ１０１ａのブロック１３１に、ブロック１３１を貫通してＴＳＶ１６１〜１６３が配置され、ＴＳＶ１６１〜１６３は、半導体チップ１０１ｂのブロック１３７と接続されているものとする。半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７とは、重複領域１５１を有している。
【００７４】
この場合に、対象領域は、重複領域１５１であり、予約セル１９４、１９５、・・・、１９６が、対象領域である重複領域１５１内に、等間隔で配置される。
（ｄ）対称位置への配置
（対象領域内への線対称による配置）
予約セルは、ＴＳＶが配置される対象領域内において、対象領域の中心線を対称軸として、ＴＳＶの配置位置と線対称となる位置に、配置されるとしてもよい。
【００７５】
対象領域内において、対象領域のＹ軸方向の２辺に平行であり、この２辺の中間点を通る中心線を設定する。なお、対象領域内において、対象領域のＸ軸方向の２辺に平行であり、この２辺の中間点を通る中心線を設定してもよい。
次に、対象領域内において、１個のＴＳＶを選択し、対象領域内の中心線を対称軸として、選択したＴＳＶの位置に線対称となる位置を求め、その位置に、予約セルを配置する。次に、他のＴＳＶについても、同様にして、予約セルを配置する。
【００７６】
最初の設計が一旦完了した後、複数のＴＳＶのいずれかの配置位置が変更にされる場合、最初の設計段階においては、ＴＳＶが対象領域内のどこの位置に変更されるかを予測することは困難であるので、ＴＳＶと線対称の位置に予約セルを配置しておくことにより、これらの予約セルの中から、適切な変更先のＴＳＶの配置位置を選択できる可能性が高くなる。
【００７７】
（ブロック内への線対称による配置の例）
予約セルは、ＴＳＶが配置されるブロック内において、ブロックの中心線を対称軸として、ＴＳＶの配置位置と線対称となる位置に、配置されるとしてもよい。
【００７８】
図８に一例として示すように、ブロック１３１には、ブロック１３１を貫通して、ＴＳＶ１６１〜１６３が配置されているものとする。この場合に、対象領域は、ブロック１３１であり、予約セル２０１、２０２、２０３が、対象領域であるブロック１３１内に配置される。
【００７９】
ブロック１３１において、ブロック１３１のＹ軸方向の２辺１３１ａ及び１３１ｂに平行であり、１３１ａと１３１ｂとの中間点を通る中心線２１１を設定する。
次に、ＴＳＶ１６１を選択し、中心線２１１を対称軸として、ＴＳＶ１６１の位置に線対称となる位置を求め、その位置に、予約セル２０１を配置する。次に、ＴＳＶ１６２及び１６３についても、同様にして、予約セル２０２及び２０３を配置する。
【００８０】
（重複領域内への線対称による配置の例）
また、予約セルは、ＴＳＶが配置されるブロックと、当該ＴＳＶの接続先のブロックとの重複領域内において、重複領域の中心線を対称軸として、ＴＳＶの配置位置と線対称となる位置に、配置されるとしてもよい。
【００８１】
図９に一例として示すように、半導体チップ１０１ａのブロック１３１に、ブロック１３１を貫通してＴＳＶ１６１〜１６３が配置され、ＴＳＶ１６１〜１６３は、半導体チップ１０１ｂのブロック１３７と接続されているものとする。半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７とは、重複領域１５１を有している。
【００８２】
この場合に、対象領域は、重複領域１５１であり、予約セル２０４、２０５、２０６が、対象領域である重複領域１５１内に配置される。
重複領域１５１において、重複領域１５１のＹ軸方向の２辺１３１ｂ及び１３１ｃに平行であり、１３１ｂと１３１ｃとの中間点を通る中心線２１２を設定する。
【００８３】
次に、ＴＳＶ１６１を選択し、中心線２１２を対称軸として、ＴＳＶ１６１の位置に線対称となる位置を求め、その位置に、予約セル２０４を配置する。次に、ＴＳＶ１６２及び１６３についても、同様にして、予約セル２０５及び２０６を配置する。
【００８４】
（対象領域内への点対称による配置）
予約セルは、ＴＳＶが配置される対象領域内において、対象領域の中心点を対称点として、ＴＳＶの配置位置と点対称となる位置に、配置されるとしてもよい。
【００８５】
対象領域において、中心点を設定する。中心点２１５は、対象領域の２本の対角線の交点である。
次に、対象領域において、１個のＴＳＶを選択し、中心点を対称点として、選択したＴＳＶの位置に点対称となる位置を求め、その位置に、予約セルを配置する。次に、他のＴＳＶについても、同様にして、予約セルを配置する。
【００８６】
最初の設計が一旦完了した後、複数のＴＳＶのいずれかの配置位置が変更にされる場合、最初の設計段階においては、ＴＳＶが対象領域内のどこの位置に変更されるかを予測することは困難であるので、ＴＳＶと点対称の位置に予約セルを配置しておくことにより、これらの予約セルの中から、適切な変更先のＴＳＶの配置位置を選択できる可能性が高くなる。
【００８７】
（ブロック内への点対称による配置の例）
予約セルは、ＴＳＶが配置されるブロック内において、ブロックの中心点を対称点として、ＴＳＶの配置位置と点対称となる位置に、配置されるとしてもよい。
【００８８】
図１０に一例として示すように、ブロック１３１には、ブロック１３１を貫通して、ＴＳＶ１６１〜１６３が配置されているものとする。この場合に、対象領域は、ブロック１３１であり、予約セル２２１、２２２、２２３が、対象領域であるブロック１３１内に配置される。
【００８９】
ブロック１３１において、中心点２１５を設定する。中心点２１５は、ブロック１３１の２本の対角線２１３及び２１４の交点である。
次に、ＴＳＶ１６１を選択し、中心点２１５を対称点として、ＴＳＶ１６１の位置に点対称となる位置を求め、その位置に、予約セル２２３を配置する。次に、ＴＳＶ１６２及び１６３についても、同様にして、それぞれ、予約セル２２２及び２２１を配置する。
【００９０】
（重複領域内への点対称による配置の例）
また、予約セルは、ＴＳＶが配置されるブロックと、当該ＴＳＶの接続先のブロックとの重複領域内において、重複領域の中心点を対称点として、ＴＳＶの配置位置と点対称となる位置に、配置されるとしてもよい。
【００９１】
図１１に一例として示すように、半導体チップ１０１ａのブロック１３１に、ブロック１３１を貫通してＴＳＶ１６１〜１６３が配置され、ＴＳＶ１６１〜１６３は、半導体チップ１０１ｂのブロック１３７と接続されているものとする。半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７とは、重複領域１５１を有している。
【００９２】
この場合に、対象領域は、重複領域１５１であり、予約セル２２４、２２５、２２６が、対象領域である重複領域１５１内に配置される。
重複領域１５１において、中心点２１８を設定する。中心点２１８は、重複領域１５１の２本の対角線２１６及び２１７の交点である。
【００９３】
次に、ＴＳＶ１６１を選択し、中心点２１８を対称点として、ＴＳＶ１６１の位置に点対称となる位置を求め、その位置に、予約セル２２６を配置する。次に、ＴＳＶ１６２及び１６３についても、同様にして、それぞれ、予約セル２２５及び２２４を配置する。
【００９４】
（ｅ）ＴＳＶから等距離の位置における予約セルの配置
（対象領域内への配置）
ＴＳＶが配置される対象領域内において、複数の予約セルが、１個のＴＳＶが配置された位置から等距離にある複数の位置に、それぞれ、配置されるとしてもよい。
【００９５】
最初に、対象領域内に配置されるＴＳＶの数が算出され、次に、次の式により、１個のＴＳＶに対して配置される予約セルの数である配置数Ｎが算出される。
配置数Ｎ＝［予約セルの数／ＴＳＶ数］
次に、ＴＳＶの配置位置と予約セルの配置位置との距離Ｍを利用者の指定値として取得する。なお、距離Ｍの決定方法は、これには限定されない。例えば、次の式により算出してもよい。
【００９６】
距離Ｍ＝［定数／ブロック内に形成される回路の動作速度］
この算出式は、距離Ｍとブロック内に形成される回路の動作速度の間には、反比例の関係があることを利用している。ここで、定数は、経験的に定めた値である。
【００９７】
対象領域において、各ＴＳＶについて、配置数Ｎにより算出された数の予約セルを配置する。Ｎ個の予約セルの配置は、次のようにして行う。
１個のＴＳＶを特定し、特定したＴＳＶの配置位置を中心点として、中心点から頂点までの距離が距離Ｍに等しくなるように、正Ｎ多角形を描く。このとき、例えば、最初に正Ｎ多角形の１個の頂点の位置のＹ座標が、特定したＴＳＶの配置位置のＹ座標と等しくなるように定めれば、正Ｎ多角形の他の頂点を一意に定めることができる。次に、正Ｎ多角形のＮ個の頂点の位置に、それぞれ、Ｎ個の予約セルを配置する。
【００９８】
なお、予約セルを配置する方法は、これには限定されない。ＴＳＶの配置位置を中心点として、正Ｎ多角形ではなく、Ｎ多角形を描き、その頂点に予約セルを配置してもよい。また、ＴＳＶの配置位置を中心点として、半径が距離Ｍである円を描き、描いた円の円周上に、ランダムにＮ個の予約セルを配置してもよい。
【００９９】
また、こうして定めた予約セルの位置が、対象領域の内側であるか外側であるかを判断し、外側となる場合には、その予約セルの位置を、予約セルの幅分だけ内側に移動させる。次に、同様の判断をし、まだ外側に存在するのであれば、さらに、予約セルの幅分だけ内側に移動させる。こうして、当該予約セルが対象領域の内側に配置されるまで、判断と移動とを繰り返す。
【０１００】
対象領域に配置すべきその他のＴＳＶについても同様にして、予約セルを配置する。
このようにして、全てのＴＳＶについて、Ｎ個の予約セルを配置すると、対象領域に配置される予約セルの数の合計が、当初予定した予約セルの数を超える場合がある。この場合に、当初予定の予約セルの数にほぼ等しい数の予約セルが配置されたものとして、このままにしておいてもよい。また、この場合に、当初の予約セルの数を超える分だけ、予約セルの配置を取り消すとしてもよい。
【０１０１】
このようにして予約セルを配置することにより、最初の設計が一旦完了した後、いずれかのＴＳＶの配置位置が変更にされる場合、最初の設計段階においては、ＴＳＶが対象領域内のどこの位置に変更されるかを予測することは困難であるので、ＴＳＶから等距離にある位置に複数の予約セルを配置しておくことにより、これらの予約セルの中から、適切な変更先のＴＳＶの配置位置を選択できる可能性が高くなる。
【０１０２】
（ブロック内への配置の例）
図１２に一例として示すように、ブロック１３１には、ブロック１３１を貫通して、１個のＴＳＶ１６１が配置されているものとする。この場合に、対象領域は、ブロック１３１である。対象領域であるブロック１３１内において、予約セル２３１、２３２、２３３、２３４は、ＴＳＶ１６１が配置される位置を中心点とし、中心点から頂点までの距離がＭである正方形の頂点となる位置に配置される。
【０１０３】
（重複領域内への配置の例）
予約セルは、ＴＳＶが配置されるブロックと、当該ＴＳＶの接続先のブロックとの重複領域内において、配置されるとしてもよい。
【０１０４】
図１３に一例として示すように、半導体チップ１０１ａのブロック１３１に、ブロック１３１を貫通して１個のＴＳＶ１６１が配置され、ＴＳＶ１６１は、半導体チップ１０１ｂのブロック１３７と接続されているものとする。半導体チップ１０１ａのブロック１３１と半導体チップ１０１ｂのブロック１３７とは、重複領域１５１を有している。
【０１０５】
この場合に、対象領域は、重複領域１５１である。対象領域である重複領域１５１内において、予約セル２３５、２３６、２３７、２３８は、ＴＳＶ１６１が配置される位置を中心点とし、中心点から頂点までの距離がＭである正方形の頂点となる位置に配置される。
【０１０６】
（ｆ）ＴＳＶのグループ毎の予約セルの配置
（対象領域内への配置）
予約セルは、以下に説明するように、ＴＳＶが配置される対象領域内において、１個のグループを構成する複数のＴＳＶに対して、配置されるとしてもよい。言い換えると、対象領域内に配置される複数のＴＳＶをグループに分類し、各グループに含まれるＴＳＶの配置位置に基づいて、予約セルの配置位置を決定する。このとき、近接して配置されたＴＳＶが同一のグループに属するように、ＴＳＶを分類する。また、一のグループに含まれる複数のＴＳＶの配置位置の中央において、予約セルの配置位置を決定する。
【０１０７】
最初に、対象領域内に配置される複数のＴＳＶを１個又は複数個のグループに分類する。グループへの分類は、次のようにして行う。
グルーピングの距離Ｇを、利用者の指定値として取得する。
【０１０８】
まだグループに分類されていない１個のＴＳＶを選択し、第１のグループに分類する。次に、選択したＴＳＶが配置される位置から距離Ｇ以内に配置される全てのＴＳＶを選択し、これらのＴＳＶを第１のグループに分類する。
【０１０９】
次に、まだグループに分類されていない１個のＴＳＶを選択し、第２のグループに分類する。次に、選択したＴＳＶが配置される位置から距離Ｇ以内に配置される全てのＴＳＶを選択し、これらのＴＳＶを第２のグループに分類する。
【０１１０】
以下、同様にして、残りの全てのＴＳＶを何れかのグループに分類する。
なお、対象領域内に配置される全てのＴＳＶをグループに分類する方法は、上記に限られない。例えば、対象領域内において、任意の一点を選択し、その点から距離Ｇ以内に配置される全てのＴＳＶを選択し、選択されたこれらのＴＳＶを１個のグループとしてもよい。次に、別の一点を選択し、同様にして、１個のグループを生成する。以下同様にして、残りの全てのＴＳＶを何れかのグループに分類する。
【０１１１】
こうして、対象領域内に配置される全てのＴＳＶが１個又は複数個のグループに分類される。
次に、各グループについて、当該グループに含まれる全てのＴＳＶの位置を求め、これらの全てのＴＳＶの位置に基づいて、当該グループに対し、１個の位置を求め、求めた位置に、予約セルを配置する。
【０１１２】
一例として、求めた全てのＴＳＶの位置を頂点とする多角形を仮想的に描き、この多角形内の一点の位置を定め、この位置に予約セルを配置するとしてもよい。このとき、前記一点の位置として、この多角形の重心の位置を求め、この重心の位置に予約セルを配置するとしてもよい。また、多角形の頂点を結ぶ２本の対角線を任意に選択し、この２本の対角線の交点を求め、この交点の位置に予約セルを配置するとしてもよい。また、多角形内の一点から、全ての頂点までの距離の合計が最小となるように、前記一点を定めるとしてもよい。
【０１１３】
このようにして、近い位置に配置されて１個のグループを構成する複数のＴＳＶに対して、１個の予約セルを配置することにより、最初の設計が一旦完了した後、いずれかのＴＳＶの配置位置が変更にされる場合、最初の設計段階においては、ＴＳＶが対象領域内のどこの位置に変更されるかを予測することは困難であるので、近い位置に配置されている複数のＴＳＶに対して、１個の予約セルを配置しておくことにより、これらの複数のＴＳＶについて配置位置の変更が発生した場合に、前記予約セルを変更先のＴＳＶの配置位置として選択できる。
【０１１４】
（ブロック内への配置の例）
図１４に一例として示すように、ブロック１３１には、ブロック１３１を貫通して、ＴＳＶ２８１〜２９７が配置されているものとする。この場合に、対象領域は、ブロック１３１である。
【０１１５】
この図に示すように、ＴＳＶ２８１は、グループ３１１に分類され、ＴＳＶ２８２〜２８４は、グループ３１２に分類され、ＴＳＶ２８５〜２８６は、グループ３１３に分類され、ＴＳＶ２８７〜２８９は、グループ３１４に分類され、ＴＳＶ２９０〜２９３は、グループ３１５に分類され、ＴＳＶ２９４〜２９７は、グループ３１６に分類されている。
【０１１６】
グループ３１１について、予約セル３０１が配置されている。グループ３１１は、１個のＴＳＶ２８１のみを含むので、グループに含まれる全てのＴＳＶの位置を頂点とする多角形を描くと言う方法は、適用できない。また、グループに２個のＴＳＶが含まれる場合についても、同様である（図１４のグループ３１３を参照。）。このような場合には、例えば、グループ３１１について、ＴＳＶ２８１の位置から、距離Ｇ以内の位置に予約セルを配置すればよい。また、グループ３１３について、２個のＴＳＶ２８５及び２８６から等距離にある位置に予約セルを配置すればよい。
【０１１７】
グループ３１２、３１３、３１４、３１５、３１６について、それぞれ、予約セル３０２、３０３、３０４、３０５、３０６が配置されている。
グループ３１２について、予約セル３０２の位置は、ＴＳＶ２８２、２８３、２８４の位置を頂点とする多角形の内部に存在する。グループ３１３、３１４、３１５、３１６についても、同様に、複数のＴＳＶの位置を頂点とする多角形の内部に、予約セルが配置されている。
【０１１８】
（重複領域内への配置）
ブロック内への配置の例と同様に、予約セルは、ＴＳＶが配置されるブロックと、当該ＴＳＶの接続先のブロックとの重複領域内において、配置されるとしてもよい。
【０１１９】
１．４  ＴＳＶの配置の変更前と変更後の例
設計支援装置４００を用いて設計された三次元集積回路の半導体チップのブロックの一部分を拡大して表した平面概念図を図１５に示す。
【０１２０】
この図に示すように、このブロックには、ＴＳＶ２５２、配置禁止領域２５１、予約セル２５０、スタンダードセル２５３、配線２５４、２５５、及びその他のセル、配線が配置されている。なお、ＴＳＶ２５２、配置禁止領域２５１、予約セル２５０は、マクロセルとして配置されている。
【０１２１】
ＴＳＶ２５２は、配線２５５及び２５４を介して、スタンダードセル２５３に接続されている。その他のセルは、ビアや縦横に配置された配線によって接続されている。
ここで、予約セル２５０は、ＴＳＶ２５２と配置禁止領域２５１を合わせた大きさを持つセルである。この予約セル２５０が配置される三次元の領域の全体は、セルの配置や配線が禁止される禁止領域（ブロッケージ）であり、ＴＳＶの設置領域を予約する機能セルとして使用される。ＴＳＶを配置すると、トランジスタ層まで影響するため、配線だけでなくセルも置けないようにこのブロッケージを設置する。配置配線がすべて終了した後において、この予約セル２５０を配置することにより、ＴＳＶの位置が変更となる場合に、ＴＳＶ設置用の面積を新たに確保するためのセルの移動を必要とせず、予約セル２５０の領域をＴＳＶ及び配置禁止領域として使用することができる。
【０１２２】
ＴＳＶの位置の移動が必要になる理由としては，例えば、図１５において、一つの論理の最終段に相当するセルからＴＳＶ２５２までのタイミング制約が厳しく、かつ、論理最終段のセルが、別のセルとの制約により移動が必要となる場合などが考えられる。この場合にはＴＳＶの位置を最終段のセルの方向（図１５の上方向）へ移動させる必要がある。
【０１２３】
別の例としては、張り合わせ先の半導体チップにおいて、配線の混雑が発生したため、配線密度の低い部分にＴＳＶの位置を移動したいケースが考えられる。この場合において、第１の半導体チップと、当該第１の半導体チップの張り合わせ先の第２の半導体チップにおいて、ＴＳＶの位置を合わせる必要があるため、第１の半導体チップにおいて、タイミング制約を満たしていたとしても、ＴＳＶの移動が必要になる。
【０１２４】
次に、ＴＳＶ２５２の配置位置を変更した後の平面概念図を図１６に示す。この図に示すように、ＴＳＶの配置位置を変更した後、このブロックには、予約セル２５０が配置されていた位置に、ＴＳＶ２６２及び配置禁止領域２６１が配置され、配線２５４及び２５５に代えて、スタンダードセル２５３とＴＳＶ２６２とが配線２６４及び２６５を介して接続されている。また、ＴＳＶ２５２及び配置禁止領域２５１が配置されていた領域は、予備の領域２６３に置き換えられている。
【０１２５】
図１６に示すように、予約セルをＴＳＶ及び配置禁止領域に置き換えることによりＴＳＶを移動させている。このように、ＴＳＶ及び配置禁止領域の置き換えと配線の修正のみでＴＳＶの移動が可能である。
【０１２６】
ＴＳＶの移動が完了し、全てのマスクレイアウト設計の工程が終了した後、つまり、ＴＳＶの位置がすべて確定した際には、元々ＴＳＶ及び配置禁止領域が配置されていた領域は、予備の領域となる。この予備の領域を有効に利用するために、この予備の領域に、リペアセル又はサーマルビアを配置することもできる。なお、このような置き換えではなく、予備の領域を空き領域として、そのままにしておくことも可能である。
【０１２７】
また、ＴＳＶの移動先として予約セルが用いられなかった場合に、この予約セルに、リペアセルやサーマルビアを配置してもよい。また、この予約セルを用いることなく、そのままにしておいてもよい。
【０１２８】
図１７においては、図１６の予備の領域２６３に、リペアセル２７１〜２７６が配置されている。リペアセルは、予備のセルであり、ロジック設計の不具合に対するＥＣＯ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｈａｎｇｅ  Ｏｒｄｅｒ）修正に使用される。リペアセルは、例えば、ＡＮＤセルやＩＮＶセルである。マスクレイアウト後の不具合の発覚により論理修正が必要な場合に、必要論理を持つスペアセルを選択して、それらを配線することで修正ロジックを実現することができる。必要なスタンダードセルはスペアセルとしてすでにトランジスタ層以下のマスクレイアウトに存在するため、修正箇所を配線層のみに限定できる。このためマスクレイアウト修正期間を短縮し、修正マスクのコスト削減ができるというメリットがある。
【０１２９】
また、図１８においては、図１６の予備の領域２６３に、サーマルビア２７８及びサーマルビア２７８の周囲に配置禁止領域２７７が配置されている。サーマルビアは、半導体チップと半導体チップとを接続し、半導体チップと半導体チップとの間で熱を伝導させるためのビアである。サーマルビアにおいては、銅などの金属が使用される。サーマルビアで使用される銅などの金属は、シリコンに比べて熱伝導率が高いため、半導体チップと半導体チップとの間で熱が伝わりやすい。特に三次元集積回路のようなチップ積層構造を持つデバイスでは熱が内部にこもりやすいため、サーマルビアを設けること等の熱対策が重要になる。
【０１３０】
１．５  設計支援装置４００の構造
設計支援装置４００は、図１９に示すように、論理合成用ライブラリ記憶部４０１、ソースファイル記憶部４０２、論理合成部４０３、制約記憶部４０４、ネットリスト記憶部４０５、配置配線制約記憶部４０６、配置配線用ライブラリ記憶部４０７、配置配線部４０８、レイアウトデータ記憶部４０９、レイアウトデータ検証部４１０、検証用データ記憶部４１１、マスク出力部４１２及びエディタ４１３から構成されている。
【０１３１】
設計支援装置４００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭ又は前記ハードディスクユニットには、制御用のコンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、設計支援装置４００の論理合成部４０３、配置配線部４０８、レイアウトデータ検証部４１０、マスク出力部４１２及びエディタ４１３は、その機能を達成する。また、論理合成用ライブラリ記憶部４０１、ソースファイル記憶部４０２、制約記憶部４０４、ネットリスト記憶部４０５、配置配線制約記憶部４０６、配置配線用ライブラリ記憶部４０７、レイアウトデータ記憶部４０９及び検証用データ記憶部４１１は、一例として、ハードディスクユニットから構成されている。
【０１３２】
論理合成用ライブラリ記憶部４０１は、図１９に示すように、スタンダードセルデータ４５１、ＳＲＡＭマクロセルデータ４５２、ＴＳＶマクロセルデータ４５３、・・・を記憶している。これらは、それぞれ、スタンダードセル、ＳＲＡＭマクロセル、ＴＳＶマクロセル、・・・の形状及びそれらのセルにおける遅延値などを示すデータである。なお、外部端子やＳＲＡＭメモリなどをマクロセルと呼ぶ。ＴＳＶもまたマクロセルである。
【０１３３】
ソースファイル記憶部４０２は、図１９に示すように、ＨＤＬを用いて記述されたＨＤＬファイル４５４、４５５、４５６、・・・を記憶している。ＨＤＬファイルは、一つのブロックなどに対応し、当該ブロック（モジュール）などを定義する。ＨＤＬファイル４５４の一例を図２１に示す。ＨＤＬファイル４５４は、この図に示すように、モジュール名及び端子（ポート）を定義するモジュール定義４５４ａ、入出力信号の宣言４５４ｂ、下層モジュールの呼出し４５４ｃ、回路で用いられる論理を記述するａｓｓｉｇｎ文４５４ｄなどを含んで構成されている。ＨＤＬファイル４５４、４５５、４５６、・・・は、利用者により、エディタ４１３を用いて、作成、追記、変更、削除などがされて生成されたものである。
【０１３４】
制約記憶部４０４は、図１９に示すように、回路の動作のタイミングの制約を示すタイミング制約４５７、回路に配置されるエリアの制約を示すエリア制約４５８、・・・を記憶している。タイミング制約４５７、エリア制約４５８・・・は、利用者により、エディタ４１３を用いて、作成、追記、変更、削除などがされて生成されたものである。
【０１３５】
論理合成部４０３は、ハードウェア記述言語を解析してＡＮＤゲート、ＮＯＲゲートなどの論理回路の最小単位であるスタンダードセルに回路マッピングする。具体的には、回路で用いられる論理を、ＡＮＤゲートやＮＯＲゲートなどのプリミティブなゲートの組合せに置き換える。論理合成部４０３は、論理合成用ライブラリ記憶部４０１に記憶されているスタンダードセルデータ４５１、ＳＲＡＭマクロセルデータ４５２、ＴＳＶマクロセルデータ４５３、・・・、ソースファイル記憶部４０２に記憶されているＨＤＬファイル４５４、４５５、４５６、・・・、制約記憶部４０４に記憶されているタイミング制約４５７、エリア制約４５８、・・・を用いて、論理合成を行って、ネットリストとして、ＨＤＬファイル４７１、４７２、４７３、・・・を生成して、ＨＤＬファイル４７１、４７２、４７３、・・・をネットリスト記憶部４０５へ書き込む。
【０１３６】
ネットリスト記憶部４０５は、図１９に示すように、ネットリストとして、ＨＤＬファイル４７１、４７２、４７３、・・・を記憶している。ＨＤＬファイル４７１、４７２、４７３、・・・は、論理合成部４０３により生成される。ＨＤＬファイル４７１の一例を図２３に示す。ＨＤＬファイル４７１は、この図に示すように、モジュール名及び端子（ポート）を定義するモジュール定義４７１ａ、入出力信号の宣言４７１ｂ、下層モジュールの呼出し４７１ｃ、下層モジュールの呼出し４７１ｄなどを含んで構成されている。下層モジュールの呼出し４７１ｄは、例えば、Ａ＋Ｂという論理を、ＡＮＤゲートやＮＯＲゲートなどのプリミティブなゲートの組合せに置き換えたものである。
【０１３７】
配置配線制約記憶部４０６は、図１９に示すように、ＴＳＶ配置情報４５９、ＴＳＶ予約セル配置情報４６０、マクロ配置情報４６１、フロアプラン情報４６２、ピン情報４６３を記憶している。ＴＳＶ配置情報４５９は、半導体チップにおいてＴＳＶを配置する位置を定義している。ＴＳＶ予約セル配置情報４６０については、後述する。マクロ配置情報４６１は、半導体チップにおいてマクロセルを配置する位置を定義している。フロアプラン情報４６２は、半導体チップの大きさや半導体チップに配置されるブロックの配置位置を定義している。ピン情報４６３は、各ブロックに配置されるピン（端子）の位置などを定義している。ここで、ＴＳＶ配置情報４５９、ＴＳＶ予約セル配置情報４６０、マクロ配置情報４６１、フロアプラン情報４６２、ピン情報４６３は、利用者により、エディタ４１３を用いて、作成、追記、変更、削除などがされて生成されたものである。
【０１３８】
配置配線用ライブラリ記憶部４０７は、図１９に示すように、スタンダードセルデータ４６４、ＳＲＡＭマクロセルデータ４６５、ＴＳＶ予約セルデータ４６６、ＴＳＶマクロセルデータ４６７、・・・を記憶している。スタンダードセルデータ４６４、ＳＲＡＭマクロセルデータ４６５、ＴＳＶ予約セルデータ４６６、ＴＳＶマクロセルデータ４６７、・・・は、スタンダードセル、ＳＲＡＭマクロセル、ＴＳＶ予約セル、ＴＳＶマクロセル、・・・の形状を示す。
【０１３９】
配置配線部４０８は、マクロセル、ＴＳＶセル、ピン、配線などの配置を決定する。配置配線部４０８については、後述する。
レイアウトデータ記憶部４０９は、図１９に示すように、マスクデータ４８１、４８２、４８３、・・・を記憶している。マスクデータ４８１、４８２、４８３、・・・は、それぞれ、複数の半導体チップに対応している。マスクデータは、複数のマスクレイアウトデータを含む。複数のマスクレイアウトデータは、それぞれ、半導体チップを構成する複数の層に対応している。各マスクレイアウトデータは、半導体チップに配置されるセルや配線の、当該マスクレイアウトデータに対応する層におけるそれぞれの部分の形状を示すデータである。
【０１４０】
検証用データ記憶部４１１は、デザインルール４９１、タイミング情報４９２、・・・を記憶している。デザインルール４９１は、配線層間の距離や幅などを定義する。例えば、金属配線層１における配線の幅は、１００ｎｍより細くしてはいけないなどと定義する。タイミング情報４９２は、半導体チップに配置される各セルの動作のタイミングを定義する。
【０１４１】
レイアウトデータ検証部４１０は、デザインルール４９１、タイミング情報４９２、・・・に基づいて、レイアウトデータ記憶部４０９に記憶されているマスクデータ４８１、４８２、４８３、・・・を検証する。
【０１４２】
マスク出力部４１２は、レイアウトデータ記憶部４０９に記憶されているマスクデータ４８１、４８２、４８３、・・・を出力する。
エディタ４１３は、利用者の操作により、ソースファイル記憶部４０２に記憶されているＨＤＬファイル４５４、４５５、４５６、・・・、制約記憶部４０４に記憶されているタイミング制約４５７、エリア制約４５８、・・・、配置配線制約記憶部４０６に記憶されているＴＳＶ配置情報４５９、ＴＳＶ予約セル配置情報４６０、マクロ配置情報４６１、フロアプラン情報４６２、ピン情報４６３について、生成、追記、修正、削除などの編集を行う。
【０１４３】
１．６  配置配線部４０８の構造
配置配線部４０８は、以下に示すようにして、半導体チップ毎に、また、ブロック毎に、セルや配線等の配置を決定し、半導体チップ毎に、また半導体チップの層毎にマスクデータを生成し、出力する。
【０１４４】
配置配線部４０８は、図２０に示すように、読込部４３１、記憶部４３２、制御部４３３、フロアプラン生成部４３５、ピン配置部４３６、ＴＳＶ配置部４３７、マクロ配置部４３８、ＴＳＶ予約セル配置部４３９、セル配置部４４０、電源配線部４４１、概略配線部４４２、詳細配線部４４３、ＴＳＶ位置変更部４４４及びマスクデータ生成部４４５から構成されている。
【０１４５】
読込部４３１は、ネットリスト記憶部４０５からＨＤＬファイル４７１、４７２、４７３、・・・を読み出し、配置配線制約記憶部４０６からＴＳＶ配置情報４５９、ＴＳＶ予約セル配置情報４６０、マクロ配置情報４６１、フロアプラン情報４６２、ピン情報４６３を読み出し、配置配線用ライブラリ記憶部４０７からスタンダードセルデータ４６４、ＳＲＡＭマクロセルデータ４６５、ＴＳＶ予約セルデータ４６６、ＴＳＶマクロセルデータ４６７、・・・を読み出し、読み出したＨＤＬファイル４７１、４７２、４７３、・・・、ＴＳＶ配置情報４５９、ＴＳＶ予約セル配置情報４６０、マクロ配置情報４６１、フロアプラン情報４６２、ピン情報４６３、スタンダードセルデータ４６４、ＳＲＡＭマクロセルデータ４６５、ＴＳＶ予約セルデータ４６６、ＴＳＶマクロセルデータ４６７、・・・を記憶部４３２へ書き込む。
【０１４６】
フロアプラン生成部４３５は、フロアプラン情報４６２を用いて、フロアプランテーブル５０１を生成し、生成したフロアプランテーブル５０１を記憶部４３２へ書き込む。フロアプランテーブル５０１の一例を図２４に示す。この図に示すように、フロアプランテーブル５０１は、半導体チップの大きさを定義するデータ５０１ａ、半導体チップに配置される複数のブロックの配置位置を示すデータ群５０１ｂを含む。
【０１４７】
ピン配置部４３６は、ピン情報４６３を用いて、ピン配置テーブル５０２を生成し、生成したピン配置テーブル５０２を記憶部４３２へ書き込む。ピン配置テーブル５０２の一例を図２５に示す。この図に示すように、ピン配置テーブル５０２は、ピン配置データ５０２ａ、５０２ｂ、・・・を含んでいる。ピン配置データ５０２ａ、５０２ｂ、・・・は、それぞれ、ブロックに配置される複数のピン（端子）に対応している。ピン配置データ５０２ａは、ピンを示すピン名称、ピンが配置される層、ピンのサイズ、ピンが配置される位置などを示す。なお、この図に示す例では、「−１００」は、ピンのサイズと配置される層は、自動的に決定されることを示す。また、「ｌｅｆｔ」は、ブロックの左側の辺に沿ってピンが配置されることを示し、その後の数字「１」は、当該ピンが配置される順序を示す。
【０１４８】
ＴＳＶ配置部４３７は、ＴＳＶ配置情報４５９を用いて、ＴＳＶ配置テーブル５０３を生成し、生成したＴＳＶ配置テーブル５０３を記憶部４３２へ書き込む。ＴＳＶ配置テーブル５０３の一例を図２６に示す。この図に示すように、ＴＳＶ配置テーブル５０３は、ＴＳＶ配置データ５０３ａ、・・・を含む。ＴＳＶ配置データ５０３ａ、・・・は、それぞれ、ブロック内に配置される複数のＴＳＶに対応している。ＴＳＶ配置データ５０３ａは、対応するＴＳＶのインスタンス名、当該ＴＳＶが配置されるブロック内における配置位置、及び、配置の向きを示す。ここで、ＴＳＶ配置データ５０３ａの末尾の「Ｎ」は、一例として、北向きを意味しており、ブロック内において、ＴＳＶを特定の方向に配置することを示している。
【０１４９】
マクロ配置部４３８は、マクロ配置情報４６１を用いて、マクロ配置テーブル５０４を生成し、生成したマクロ配置テーブル５０４を記憶部４３２へ書き込む。
ＴＳＶ予約セル配置部４３９は、ＴＳＶ予約セル配置情報４６０を用いて、ＴＳＶ予約セル配置テーブル５０５を生成し、生成したＴＳＶ予約セル配置テーブル５０５を記憶部４３２へ書き込む。ＴＳＶ予約セル配置部４３９については、後述する。ＴＳＶ予約セル配置テーブル５０５の一例を図２７に示す。この図に示すように、ＴＳＶ予約セル配置テーブル５０５は、ＴＳＶ予約セル配置データ５０５ａ、・・・を含む。ＴＳＶ予約セル配置データ５０５ａ、・・・は、それぞれ、ブロック内に配置される複数の予約セルに対応している。ＴＳＶ予約セル配置データ５０５ａは、対応する予約セルのインスタンス名、当該予約セルが配置されるブロック内における配置位置、及び、配置の向きを示す。なお、ＴＳＶ予約セル配置データ５０５ａのデータ構造は、ＴＳＶ配置データ５０３ａのデータ構造と同一である。
【０１５０】
セル配置部４４０は、スタンダードセルデータ４６４、ＨＤＬファイル４７１、４７２、４７３、・・・を用いて、セル配置テーブル５０６を生成し、生成したセル配置テーブル５０６を記憶部４３２へ書き込む。
【０１５１】
電源配線部４４１は、電源配線テーブル５０７を生成し、記憶部４３２へ書き込む。概略配線部４４２は、概略の配線をし、詳細配線部４４３は、概略の配線に基づいて、配線テーブル５０８を生成し、記憶部４３２へ書き込む。配線テーブル５０８の一例を図２８に示す。この図に示すように、配線テーブル５０８は、配線データ５０８ａ、・・・を含む。配線データ５０８ａ、・・・は、それぞれ、半導体チップ上の複数の配線と対応している。配線データ５０８ａは、層番号、幅、（始点及び終点）を含む。層番号が、当該配線が配置される層を示す。幅は、当該配線の幅を示す。（始点及び終点）は、当該配線の開始位置及び終了位置を示す。始点及び終点は、それぞれ、Ｘ座標及びＹ座標で表される。
【０１５２】
また、配置の変更が無くなるまで、ＴＳＶ位置変更部４４４は、ＴＳＶの位置を変更し、電源配線部４４１は、電源配線テーブル５０７を生成し直し、概略配線部４４２は、概略の配線をし直し、詳細配線部４４３は、配線テーブル５０８を生成し直す。
【０１５３】
また、マスクデータ生成部４４５は、記憶部４３２に書き込まれたフロアプランテーブル５０１、ピン配置テーブル５０２、ＴＳＶ配置テーブル５０３、マクロ配置テーブル５０４、ＴＳＶ予約セル配置テーブル５０５、セル配置テーブル５０６、電源配線テーブル５０７、配線テーブル５０８を用いて、フォトマスクを生成するためのレイアウトデータであるマスクデータを生成し、生成したマスクデータを出力する。
【０１５４】
１．７  ＴＳＶ予約セル配置情報４６０のデータ構造
ＴＳＶ予約セル配置情報４６０は、図２２に示すように、対象領域の指定方法４６０ａ、予約セル数の決定方法４６０ｂ、予約セルの配置位置の決定方法４６０ｃ及びＴＳＶへの依存方法４６０ｄを含んでいる。
【０１５５】
（対象領域の指定方法４６０ａ）
対象領域の指定方法４６０ａは、対象領域がブロックであるか又は対象領域が重複領域であるかを示す。具体的には、指定方法４６０ａは、一例として、「０」又は「１」であり、指定方法４６０ａ「０」は、対象領域がブロックであることを示し、指定方法４６０ａ「１」は、対象領域が重複領域であることを示す。
【０１５６】
（予約セル数の決定方法４６０ｂ）
予約セル数の決定方法４６０ｂは、どのようにしてブロック内又は重複領域内に配置する全ての予約セルの数を決定するかを示す。決定方法４６０ｂは、「０」、「１」、
「２」、「３」及び「４」のいずれかの値をとる。
【０１５７】
決定方法４６０ｂ「０」は、予約セル数の決定方法が予め定められていないことを示す。例えば、１個のＴＳＶに対応して１個の予約セルが配置される場合などである。
決定方法４６０ｂ「１」は、上記において説明した第一の方法を用いる場合であり、予約セル数が利用者の指定により定められていることを示す。この場合には、決定方法４６０ｂは、利用者の指定数を伴う。
【０１５８】
決定方法４６０ｂ「２」は、上記において説明した第二の方法を用いる場合であり、予約セル数がパーセントルールにより定められていることを示す。この場合には、決定方法４６０ｂは、予め指定された予約セルの面積比率を伴う。
【０１５９】
決定方法４６０ｂ「３」は、上記において説明した第三の方法を用いる場合であり、対象領域に配置されるＴＳＶの数に依存して、予約セルの数を決定することを示す。この場合には、決定方法４６０ｂは、予め指定された倍数を伴う。
【０１６０】
決定方法４６０ｂ「４」は、上記において説明した第四の方法を用いる場合であり、対象領域に配置されるＴＳＶの位置及び数に依存して、予約セルの数を決定することを示す。この場合には、決定方法４６０ｂは、予め指定された倍数を伴う。
【０１６１】
（予約セルの配置位置の決定方法４６０ｃ）
予約セルの配置位置の決定方法４６０ｃは、どのようにしてブロック内又は重複領域内に予約セルを配置するかを示す。決定方法４６０ｃは、「０」、「１」、「２」及び
「３」のいずれかの値をとる。
【０１６２】
決定方法４６０ｃが「１」である場合には、ブロック内又は重複領域内に、予約セルをランダムに配置することを示す。決定方法４６０ｃが「２」である場合には、ブロック内又は重複領域内に、予約セルを等間隔に配置することを示す。決定方法４６０ｃが「３」である場合には、ブロック内又は重複領域内に、予約セルを利用者により指定された位置に配置することを示す。この場合には、ＴＳＶ予約セル配置情報４６０は、利用者により指定された予約セルの配置位置を含む。決定方法４６０ｃが「０」である場合には、その他の場合を示す。例えば、ＴＳＶの配置に依存するような場合である。
【０１６３】
（ＴＳＶへの依存方法４６０ｄ）
ＴＳＶへの依存方法４６０ｄは、予約セルの配置位置を決定する場合に、ＴＳＶに依存するか否かを示し、また、ＴＳＶに依存して予約セルの配置位置を決定する場合に、どのようにＴＳＶに依存するかを示す。依存方法４６０ｄは、「０」、「１」、「２」及び「３」のいずれかの値をとる。
【０１６４】
依存方法４６０ｄが「０」の場合には、予約セルの配置位置を決定する場合に、ＴＳＶに依存しないことを示す。
一方、依存方法４６０ｄが「０」以外の場合には、予約セルの配置位置を決定する場合に、ＴＳＶに依存することを示す。ここで、依存方法４６０ｄが「１」の場合には、予約セルの配置位置を決定する場合に、ＴＳＶの配置位置に対称となるように、予約セルを配置することを示す。この場合には、依存方法４６０ｄは、対象領域の中心点を対称点として対称に配置するか、対称領域の中心軸を対称軸として、対称に配置するかを示す中心情報を伴う。中心情報は、対称領域の中心点、対称領域について縦方向の中心軸、又は対称領域について横方向の中心軸のいずれを用いるかを示す。また、依存方法４６０ｄが
「２」の場合には、予約セルの配置位置を決定する場合に、ＴＳＶから等距離の位置に、予約セルを配置することを示す。さらに、依存方法４６０ｄが「３」の場合には、予約セルの配置位置を決定する場合に、ＴＳＶをグループに分類し、各グループについて、予約セルを配置することを示す。この場合には、依存方法４６０ｄは、グルーピングの距離Ｇを伴う。
【０１６５】
１．８  ＴＳＶ予約セル配置部４３９
ＴＳＶ予約セル配置部４３９は、配置制御部４３９ａ、ランダム配置部４３９ｂ、等間隔配置部４３９ｃ、指定配置部４３９ｄ、対称配置部４３９ｅ、等距離配置部４３９ｆ及びグループ配置部４３９ｇから構成されている（これらについては、図示していない。）
（配置制御部４３９ａ）
配置制御部４３９ａは、ＴＳＶ予約セル配置情報４６０から、対象領域の指定方法４６０ａ、予約セル数の決定方法４６０ｂ、予約セルの配置位置の決定方法４６０ｃ及びＴＳＶへの依存方法４６０ｄを読み出す。
【０１６６】
また、配置制御部４３９ａは、記憶部４３２に記憶されているＴＳＶ配置テーブル５０３から全てのＴＳＶ配置データを読み出し、読み出したＴＳＶ配置データの数を算出することにより、ＴＳＶの数を算出し、算出したＴＳＶの数が「０」であるか否かを判断する。算出したＴＳＶの数が「０」である場合には、配置制御部４３９ａは、対象領域に配置されるＴＳＶが存在しないので、予約セルの配置を行わず、処理を終了する。
【０１６７】
算出したＴＳＶの数が「０」でない場合には、配置制御部４３９ａは、対象領域の指定方法４６０ａが、「０」及び「１」のいずれかであるかを判断する。対象領域の指定方法４６０ａが「０」である場合には、対象領域をブロックとする。また、対象領域の指定方法４６０ａが「１」である場合には、ＴＳＶが配置されるブロックと、これらのＴＳＶが接続される先のブロックとの重なり部分である重複領域の位置を算出し、対象領域を算出した位置により示される重複領域とする。
【０１６８】
次に、配置制御部４３９ａは、予約セル数の決定方法４６０ｂが、「０」、「１」、「２」、「３」及び「４」のいずれであるかを判断する。
決定方法４６０ｂが「０」である場合には、配置制御部４３９ａは、何もしない。
【０１６９】
決定方法４６０ｂが「１」である場合には、配置制御部４３９ａは、配置する予約セル数を利用者により指定された指定数とする。
決定方法４６０ｂが「２」である場合には、配置制御部４３９ａは、対象領域の総面積を算出し、１個の予約セルの面積を算出し、次の式により、配置する予約セルの数を算出する。
【０１７０】
配置する予約セルの数＝［対象領域の総面積×指定された面積比率（パーセント）／１個の予約セルの面積×１００］
決定方法４６０ｂが「３」である場合には、配置制御部４３９ａは、次の式により、配置する予約セルの数を算出する。
【０１７１】
配置する予約セルの数＝ＴＳＶの数×指定された倍数
決定方法４６０ｂが「４」である場合には、配置制御部４３９ａは、次の式により、配置する予約セルの数を算出する。
【０１７２】
配置する予約セルの数＝ＴＳＶの数×指定された倍数
次に、配置制御部４３９ａは、予約セルの配置位置の決定方法４６０ｃが、「０」、「１」、「２」及び「３」のいずれであるかを判断し、決定方法４６０ｃが「１」である場合には、ランダム配置部４３９ｂにより、ブロック内又は重複領域内に、予約セルをランダムに配置する。決定方法４６０ｃが「２」である場合には、等間隔配置部４３９ｃにより、ブロック内又は重複領域内に、予約セルを等間隔に配置する。決定方法４６０ｃが「３」である場合には、指定配置部４３９ｄにより、ブロック内又は重複領域内に、予約セルを指定された位置に配置する。
【０１７３】
決定方法４６０ｃが「０」である場合には、配置制御部４３９ａは、ＴＳＶへの依存方法４６０ｄが、「１」、「２」及び「３」のいずれであるかを判断し、依存方法４６０ｄが「１」の場合には、対称配置部４３９ｅにより、予約セルの配置位置を決定する場合に、ＴＳＶの配置位置に対称となるように、予約セルを配置する。また、依存方法４６０ｄが「２」の場合には、予約セルの配置位置を決定する場合に、等距離配置部４３９ｆにより、ＴＳＶから等距離の位置に、予約セルを配置する。さらに、依存方法４６０ｄが「３」の場合には、予約セルの配置位置を決定する場合に、グループ配置部４３９ｇにより、ＴＳＶをグループに分類し、各グループについて、予約セルを配置する。
【０１７４】
これで、ＴＳＶ予約セル配置部４３９の処理を終了する。
（ランダム配置部４３９ｂ）
ランダム配置部４３９ｂは、最初に、予約セル数の決定方法４６０ｂが「０」であるかその他の値であるかを判断する。予約セル数の決定方法４６０ｂが「０」であると判断する場合には、処理を終了する。
【０１７５】
予約セル数の決定方法４６０ｂがその他の値であると判断する場合には、ランダム配置部４３９ｂは、配置制御部４３９ａにより決定した予約セル数分だけ、以下の（ａ）〜（ｄ）を繰り返す。
【０１７６】
（ａ）０より大きく、１より小さい乱数を生成し、生成した乱数を対象領域の横幅に乗じて、座標値Ｘとする。
座標値Ｘ＝対象領域の横幅×乱数
（ｂ）０より大きく、１より小さい乱数を生成し、生成した乱数を対象領域の縦幅に乗じて、座標値Ｙとする。
【０１７７】
座標値Ｙ＝対象領域の縦幅×乱数
（ｃ）座標（Ｘ、Ｙ）を仮に予約セルの位置と定める。ここで、座標（Ｘ、Ｙ）は、予約セルの断面の中心点が、半導体チップ上において存在する位置を示している。座標（Ｘ、Ｙ）により定まる予約セルが、既に決定されたその他のセルと重複するか否かを判断する。重複する場合には、（ａ）に戻って処理を繰り返す。こうして、上述したように、衝突を排除する。
【０１７８】
（ｄ）重複しない場合には、座標（Ｘ、Ｙ）を予約セルの配置位置として、ＴＳＶ予約セル配置テーブル５０５へ書き込む。
ランダム配置部４３９ｂは、こうして、決定された予約セル数分の予約セルを配置する。
【０１７９】
（等間隔配置部４３９ｃ）
等間隔配置部４３９ｃは、最初に、予約セル数の決定方法４６０ｂが「０」であるかその他の値であるかを判断する。予約セル数の決定方法４６０ｂが「０」であると判断する場合には、処理を終了する。
【０１８０】
予約セル数の決定方法４６０ｂがその他の値であると判断する場合には、等間隔配置部４３９ｃは、次式により、単位面積を算出する。
単位面積＝［対象領域の総面積／予約セルの数］
次に、等間隔配置部４３９ｃは、次式により、距離Ｌを算出する。
【０１８１】
距離Ｌ＝［平方根（単位面積）］
次に、等間隔配置部４３９ｃは、最初の予約セルを配置する初期位置（Ｘ０、Ｙ０）を設定する。ここで、（Ｘ０、Ｙ０）＝（Ｌ／２、Ｌ／２）とする。
【０１８２】
次に、等間隔配置部４３９ｃは、
Ｘ０＋ｍ×Ｌ＜（対象領域の横幅）
を満たす最大の整数ｍを算出する。また、等間隔配置部４３９ｃは、
Ｙ０＋ｎ×Ｌ＜（対象領域の縦幅）を満たす最大の整数ｎを算出する。
【０１８３】
次に、Ｙ軸方向に、変数ｊ＝０、１、２、・・・、ｎについて、以下の（ａ）を繰り返す。
（ａ）Ｘ軸方向に、変数ｉ＝０、１、２、・・・、ｍについて、以下の（ａ−１）〜（ａ−４）を繰り返す。
【０１８４】
（ａ−１）（Ｘ、Ｙ）＝（Ｘ０＋ｉ×Ｌ、Ｙ０＋ｊ×Ｌ）を計算する。
（ａ−２）座標（Ｘ、Ｙ）を仮に予約セルの位置と定める。ここで、座標（Ｘ、Ｙ）は、予約セルの断面の中心点が、半導体チップ上において存在する位置を示している。座標（Ｘ、Ｙ）により定まる予約セルが、既に決定されたその他のセルと重複するか否かを判断する。重複する場合には、重複がなくなるまで、予約セルの位置をずらす。
【０１８５】
（ａ−３）重複が無い場合に、座標（Ｘ、Ｙ）を予約セルの配置位置として、ＴＳＶ予約セル配置テーブル５０５へ書き込む。
（ａ−４）予約セル数分だけ、ＴＳＶ予約セル配置テーブル５０５へ書き込んだか否かを判断し、書き込んだ場合には、等間隔配置部４３９ｃによる処理を終了する。
【０１８６】
等間隔配置部４３９ｃは、こうして、決定された予約セル数分の予約セルを配置する。
（指定配置部４３９ｄ）
指定配置部４３９ｄは、記憶部４３２に記憶されているＴＳＶ予約セル配置情報４６０から、利用者により指定された予約セルの配置位置を読み出し、読み出した配置位置を予約セルの配置位置として、ＴＳＶ予約セル配置テーブル５０５へ書き込む。
【０１８７】
（対称配置部４３９ｅ）
対称配置部４３９ｅは、対象領域に配置されるＴＳＶの数だけ以下の（ａ）〜（ｅ）を繰り返す。
【０１８８】
（ａ）ＴＳＶ配置テーブル５０３から、１個のＴＳＶ配置データを読み出す。
（ｂ）中心情報を取得し、取得した中心情報を用いて、線対称か又は点対称かを判断する。
【０１８９】
（ｃ）
（ｃ−１）点対称である場合に、対象領域の中心点（もしくは重心）を算出し、算出した中心点を対称点として、読み出したＴＳＶ配置データにより定まるＴＳＶの配置位置について対称となる位置（Ｘ、Ｙ）を算出する。なお、対称点は、中心点に限らない。対象領域内の任意の点を対称点として選択してもよい。また、利用者により予め指定された対象領域内の点を対称点として選択してもよい。また、対象領域内からランダムに選択した点を対称点として選択してもよい。
【０１９０】
（ｃ−２）線対称である場合に、対象領域の中心線（中心軸）を算出し、算出した中心線を対称軸として、読み出したＴＳＶ配置データにより定まるＴＳＶの配置位置について対称となる位置（Ｘ、Ｙ）を算出する。なお、対称線は、中心線に限らない。対象領域内の任意の線（軸）を対称線として選択してもよい。また、利用者により予め指定された対象領域内の線（軸）を対称線として選択してもよい。また、対象領域内からランダムに選択した線（軸）を対称線として選択してもよい。また、対象領域の対角線（対角軸）を対称線として選択してもよい。
【０１９１】
（ｄ）座標（Ｘ、Ｙ）を仮に予約セルの位置と定める。ここで、座標（Ｘ、Ｙ）は、予約セルの断面の中心点が、半導体チップ上において存在する位置を示している。座標（Ｘ、Ｙ）により定まる予約セルが、既に決定されたその他のセルと重複するか否かを判断する。重複する場合には、重複がなくなるまで、予約セルの位置をずらす。
【０１９２】
（ｅ）重複が無い場合に、座標（Ｘ、Ｙ）を予約セルの配置位置として、ＴＳＶ予約セル配置テーブル５０５へ書き込む。
対称配置部４３９ｅは、こうして、決定された予約セル数分の予約セルを配置する。
【０１９３】
（等距離配置部４３９ｆ）
等距離配置部４３９ｆは、記憶部４３２に記憶されているＴＳＶ配置テーブル５０３から全てのＴＳＶ配置データを読み出し、読み出したＴＳＶ配置データの数を算出することにより、ＴＳＶの数を算出する。
【０１９４】
次に、等距離配置部４３９ｆは、予約セル数の決定方法４６０ｂが「０」であるかその他の値であるかを判断する。予約セル数の決定方法４６０ｂが「０」であると判断する場合には、処理を終了する。
【０１９５】
予約セル数の決定方法４６０ｂが「０」以外であると判断する場合には、等距離配置部４３９ｆは、次式により配置数Ｎを算出する。
配置数Ｎ＝［予約セルの数／ＴＳＶ数］
配置数Ｎは、１個のＴＳＶに対して配置される予約セルの数を示す。
【０１９６】
次に、等距離配置部４３９ｆは、対象領域に配置されるＴＳＶの数だけ、以下の（ａ）〜（ｅ）を繰り返す。
（ａ）記憶部４３２に記憶されているＴＳＶ配置テーブル５０３から１個のＴＳＶ配置データを読み出す。
【０１９７】
（ｂ）距離Ｍを取得する。例えば、利用者の指定値として距離Ｍを取得する。また、上述したように、距離Ｍ＝［定数／ブロック内に形成される回路の動作速度］により、距離Ｍを算出してもよい。
【０１９８】
（ｃ）読み出したＴＳＶ配置データにより示されるＴＳＶの配置位置を中心点とし、中心点から距離Ｍだけ離れたＮ個の位置を頂点とする正Ｎ多角形のＮ個の頂点の座標（Ｘ、Ｙ）を算出する。
【０１９９】
（ｄ）Ｎ個の座標（Ｘ、Ｙ）を仮に予約セルの位置と定める。ここで、Ｎ個の座標（Ｘ、Ｙ）は、それぞれ、Ｎ個の予約セルのそれぞれの断面の中心点が、半導体チップ上において存在する位置を示している。それぞれ座標（Ｘ、Ｙ）により定まる予約セルが、既に決定されたその他のセルと重複するか否かを判断する。重複する場合には、重複がなくなるまで、予約セルの位置をずらす。
【０２００】
（ｅ）重複が無い場合に、各座標（Ｘ、Ｙ）を予約セルの配置位置として、ＴＳＶ予約セル配置テーブル５０５へ書き込む。
等距離配置部４３９ｆは、こうして、決定された予約セル数分の予約セルを配置する。
【０２０１】
（グループ配置部４３９ｇ）
グループ配置部４３９ｇは、次に示すようにして、対象領域に配置される１個又は複数個のＴＳＶを、１個のＴＳＶから距離Ｇの範囲内に存在するＴＳＶが一つのグループに属するように、グループに分類する。
【０２０２】
（ａ）グルーピングの距離Ｇを取得する。
（ｂ）変数ｉを「１」の値に設定する。
（ｃ）ＴＳＶ配置テーブル５０３から、まだ、グループに分類されていないＴＳＶに対応する１個のＴＳＶ配置データを読み出し、読み出したＴＳＶ配置データにより示されるＴＳＶ  Ｔｉを、第ｉグループに分類し、ＴＳＶ  Ｔｉを第ｉグループに対応付けて記憶する。
【０２０３】
（ｄ）ＴＳＶ配置テーブル５０３内のＴＳＶ配置データのうち、グループに分類されていないＴＳＶに対応するＴＳＶ配置データについて、Ｔｉから距離Ｇ以内に存在する全てのＴＳＶを第ｉグループに分類し、グループｉに対応付けて記憶する。
【０２０４】
（ｅ）全てのＴＳＶが何れかのグループに分類されたか否かを判断する。
（ｆ）分類されていない場合には、変数ｉに１を加算して、上記（ａ）〜（ｅ）を繰り返す。
【０２０５】
（ｇ）分類された場合には、全てのグループについて、以下の（ｈ）〜（ｊ）を繰り返す。
（ｈ）１個のグループに含まれる全てのＴＳＶの中央の位置を算出する。中央の位置の一例として、全てのＴＳＶの配置位置を頂点とする多角形を仮に描き、その多角形の重心である位置（Ｘ、Ｙ）を算出する。なお、中央の位置は、多角形の重心には限定されない。例えば、多角形内の任意の一点の位置を、ＴＳＶの中央の位置として、算出してもよい。
【０２０６】
（ｉ）座標（Ｘ、Ｙ）を仮に予約セルの位置と定める。ここで、座標（Ｘ、Ｙ）は、予約セルの断面の中心点が、半導体チップ上において存在する位置を示している。座標（Ｘ、Ｙ）により定まる予約セルが、既に決定されたその他のセルと重複するか否かを判断する。重複する場合には、重複がなくなるまで、予約セルの位置をずらす。
【０２０７】
（ｊ）重複が無い場合に、座標（Ｘ、Ｙ）を予約セルの配置位置として、ＴＳＶ予約セル配置テーブル５０５へ書き込む。
グループ配置部４３９ｇは、こうして、決定された予約セル数分の予約セルを配置する。
【０２０８】
１．９  設計支援装置４００の動作
（１）設計支援装置４００の配置配線部４０８の動作
設計支援装置４００の配置配線部４０８の動作について、図２９に示すフローチャートを用いて説明する。
【０２０９】
この図において、ステップＳ１１１〜Ｓ１２０で、一旦、マスクレイアウトが生成され、その後、ステップＳ１２１〜Ｓ１２４で、ＴＳＶの位置変更を行って、再度、マスクレイアウトを修正している。
【０２１０】
配置配線部４０８は、制御部４３３の制御により、半導体チップ毎に、以下のＳ１１０〜Ｓ１２６を繰り返す（ステップＳ１０９〜Ｓ１２７）。
また、配置配線部４０８は、制御部４３３の制御により、ブロック毎に、以下のＳ１１１〜Ｓ１２４を繰り返す（ステップＳ１１０〜Ｓ１２５）。
【０２１１】
読込部４３１は、ネットリスト等を読み込み（ステップＳ１１１）、フロアプラン生成部４３５は、フロアプランテーブル５０１を生成し（ステップＳ１１２）、ピン配置部４３６は、ピン配置テーブル５０２を生成し（ステップＳ１１３）、ＴＳＶ配置部４３７は、ＴＳＶ配置テーブル５０３を生成し（ステップＳ１１４）、マクロ配置部４３８は、マクロ配置テーブル５０４を生成し（ステップＳ１１５）、ＴＳＶ予約セル配置部４３９は、ＴＳＶ予約セル配置テーブル５０５を生成し（ステップＳ１１６）、セル配置部４４０は、セル配置テーブル５０６を生成し（ステップＳ１１７）、電源配線部４４１は、電源配線テーブル５０７を生成し（ステップＳ１１８）、概略配線部４４２は、概略の配線をし（ステップＳ１１９）、詳細配線部４４３は、配線テーブル５０８を生成する（ステップＳ１２０）。
【０２１２】
次に、変更箇所が無くなるまで、ＴＳＶ位置変更部４４４は、ＴＳＶの位置を変更し（ステップＳ１２１）、電源配線部４４１は、電源配線テーブル５０７を生成し直し（ステップＳ１２２）、概略配線部４４２は、概略の配線をし直し（ステップＳ１２３）、詳細配線部４４３は、配線テーブル５０８を生成し直す（ステップＳ１２４）。
【０２１３】
マスクデータ生成部４４５は、マスクデータを生成して出力する（ステップＳ１２６）。
なお、配置配線部４０８の動作を示す図２９のフローチャートにおいて、ステップＳ１１１〜Ｓ１１３は、二次元集積回路設計の設計手法と同じである。ＴＳＶの配置のステップＳ１１４は、ＴＳＶをマクロセルとして配置する三次元集積回路のための設計工程である。配置するＴＳＶのマクロセルには端子情報（ポート情報）のみがあればよく、この段階でマクロセルの中身はブラックボックスでも構わない。また、ＴＳＶの周りには、デザイン制約によりスタンダードセルやトランジスタの配置を禁止する配置禁止領域１０３を併せて設置しなければならない。ＴＳＶ以外のマクロセルの配置のステップＳ１１５は、ＴＳＶマクロセルの設置後に行う。
【０２１４】
また、セル配置のステップＳ１１７を行う前に、予約セルを設置するステップＳ１１６がある。
予約セルの設置のステップＳ１１６が終わると、次に、二次元集積回路設計の場合と同様に、タイミング制約を考慮した（Ｔｉｍｉｎｇ−Ｄｒｉｖｅｎ）スタンダードセルの配置（ステップＳ１１７）、各種配線（ステップＳ１１８〜Ｓ１２０）を行う。
【０２１５】
以上説明した配置配線工程が完了すると、すべての回路パスがタイミング制約を満たしているかどうかの検証を行う。ＴＳＶを用いた三次元集積回路の場合は、張り合わせ先の半導体チップとの接続関係がある。このため、片方の半導体チップがタイミング制約を満たしていても、もう一方の半導体チップがこの制約を満たしていないと三次元集積回路全体として正常に動作しない。このような理由により、ＴＳＶの位置は、配置配線設計の段階で張り合わせる双方のタイミング制約を満たすようになるまで、変更される。
【０２１６】
（２）ＴＳＶ予約セル配置部４３９の配置制御部４３９ａの動作
ＴＳＶ予約セル配置部４３９の配置制御部４３９ａの動作について、図３０に示すフローチャートを用いて説明する。
【０２１７】
配置制御部４３９ａは、記憶部４３２に記憶されているＴＳＶ配置テーブル５０３から全てのＴＳＶ配置データを読み出し、読み出したＴＳＶ配置データの数を算出することにより、ＴＳＶの数を算出する（ステップＳ１３１）。算出したＴＳＶの数が「０」である場合には（ステップＳ１３２）、配置制御部４３９ａは、対象領域に配置されるＴＳＶが存在しないので、予約セルの配置を行わず、処理を終了する。
【０２１８】
算出したＴＳＶの数が「０」でない場合には（ステップＳ１３２）、配置制御部４３９ａは、対象領域の指定方法４６０ａが、「０」及び「１」のいずれかであるかを判断する（ステップＳ１３３）。対象領域の指定方法４６０ａが「０」である場合には（ステップＳ１３３）、対象領域をブロックとする（ステップＳ１３６）。また、対象領域の指定方法４６０ａが「１」である場合には（ステップＳ１３３）、ＴＳＶが配置されるブロックと、これらのＴＳＶが接続される先のブロックとの重なり部分を算出し（ステップＳ１３４）、対象領域を算出した重なり部分とする（ステップＳ１３５）。
【０２１９】
次に、配置制御部４３９ａは、予約セルの決定方法４６０ｂが、「０」、「１」、
「２」、「３」及び「４」のいずれであるかを判断する（ステップＳ１３７）。
決定方法４６０ｂが「０」である場合には（ステップＳ１３７）、配置制御部４３９ａは、何もしない。
【０２２０】
決定方法４６０ｂが「１」である場合には（ステップＳ１３７）、配置制御部４３９ａは、配置する予約セル数を利用者により指定された指定数とする（ステップＳ１４０）。
決定方法４６０ｂが「２」である場合には（ステップＳ１３７）、配置制御部４３９ａは、対象領域の総面積を算出し、予約セルの面積を算出し（ステップＳ１３８）、配置する予約セルの数＝［対象領域の総面積×指定された面積比率（パーセント）／１個の予約セルの面積×１００］を算出する（ステップＳ１３９）。
【０２２１】
決定方法４６０ｂが「３」である場合に、又は決定方法４６０ｂが「４」である場合に、配置制御部４３９ａは、対応する方法により予約セルの数を算出する。
次に、配置制御部４３９ａは、予約セルの配置位置の決定方法４６０ｃが、「０」、「１」、「２」及び「３」のいずれであるかを判断し（ステップＳ１４１）、決定方法４６０ｃが「１」である場合には（ステップＳ１４１）、ランダム配置部４３９ｂにより、ブロック内又は重複領域内に、予約セルをランダムに配置する（ステップＳ１４２）。決定方法４６０ｃが「２」である場合には（ステップＳ１４１）、等間隔配置部４３９ｃにより、ブロック内又は重複領域内に、予約セルを等間隔に配置する（ステップＳ１４３）。決定方法４６０ｃが「３」である場合には（ステップＳ１４１）、指定配置部４３９ｄにより、ブロック内又は重複領域内に、予約セルを指定された位置に配置する（ステップＳ１４４）。
【０２２２】
決定方法４６０ｃが「０」である場合には（ステップＳ１４１）、配置制御部４３９ａは、ＴＳＶへの依存方法４６０ｄが、「１」、「２」及び「３」のいずれであるかを判断し（ステップＳ１４５）、依存方法４６０ｄが「１」の場合には（ステップＳ１４５）、対称配置部４３９ｅにより、予約セルの配置位置を決定する場合に、ＴＳＶの配置位置に対称となるように、予約セルを配置する（ステップＳ１４６）。また、依存方法４６０ｄが「２」の場合には（ステップＳ１４５）、予約セルの配置位置を決定する場合に、等距離配置部４３９ｆにより、ＴＳＶから等距離の位置に、予約セルを配置する（ステップＳ１４７）。さらに、依存方法４６０ｄが「３」の場合には（ステップＳ１４５）、予約セルの配置位置を決定する場合に、グループ配置部４３９ｇにより、ＴＳＶをグループに分類し、各グループについて、予約セルを配置する（ステップＳ１４８）。
【０２２３】
これで、ＴＳＶ予約セル配置部４３９の処理を終了する。
（３）ＴＳＶ予約セル配置部４３９のランダム配置部４３９ｂの動作
ＴＳＶ予約セル配置部４３９のランダム配置部４３９ｂの動作について、図３１に示すフローチャートを用いて説明する。ここで説明する動作は、図３０のステップＳ１４２の詳細である。
【０２２４】
ランダム配置部４３９ｂは、予約セル数の決定方法４６０ｂが「０」であるかその他の値であるかを判断する（ステップＳ１６１）。予約セル数の決定方法４６０ｂが「０」であると判断する場合には、処理を終了する。
【０２２５】
予約セル数の決定方法４６０ｂがその他の値であると判断する場合には（ステップＳ１６１）、ランダム配置部４３９ｂは、配置制御部４３９ａにより決定した予約セル数分だけ、以下のステップＳ１６３〜Ｓ１６８を繰り返す（ステップＳ１６２〜Ｓ１６９）。
【０２２６】
０より大きく、１より小さい乱数を生成し（ステップＳ１６３）、生成した乱数を対象領域の横幅に乗じて、座標値Ｘとする（ステップＳ１６４）。次に、０より大きく、１より小さい乱数を生成し（ステップＳ１６５）、生成した乱数を対象領域の縦幅に乗じて、座標値Ｙとする（ステップＳ１６６）。次に、座標（Ｘ、Ｙ）により定まる予約セルが、既に決定されたその他のセルと重複するか否かを判断する（ステップＳ１６７）。重複する場合には（ステップＳ１６７）、ステップＳ１６３に戻って処理を繰り返す。重複しない場合には（ステップＳ１６７）、座標（Ｘ、Ｙ）を予約セルの配置位置として、ＴＳＶ予約セル配置テーブル５０５へ書き込む（ステップＳ１６８）。
【０２２７】
ランダム配置部４３９ｂは、こうして、決定された予約セル数分の予約セルを配置する。
（４）ＴＳＶ予約セル配置部４３９の等間隔配置部４３９ｃの動作
ＴＳＶ予約セル配置部４３９の等間隔配置部４３９ｃの動作について、図３２〜図３３に示すフローチャートを用いて説明する。ここで説明する動作は、図３０のステップＳ１４３の詳細である。
【０２２８】
等間隔配置部４３９ｃは、最初に、予約セル数の決定方法４６０ｂが「０」であるかその他の値であるかを判断する（ステップＳ１８１）。予約セル数の決定方法４６０ｂが「０」であると判断する場合には（ステップＳ１８１）、処理を終了する。
【０２２９】
予約セル数の決定方法４６０ｂがその他の値であると判断する場合には（ステップＳ１８１）、等間隔配置部４３９ｃは、単位面積＝［対象領域の総面積／予約セルの数］を算出し（ステップＳ１８２）、次に、距離Ｌ＝［平方根（単位面積）］を算出し  （ステップＳ１８３）、最初の予約セルを配置する初期位置（Ｘ０、Ｙ０）＝（Ｌ／２、Ｌ／２）とする（ステップＳ１８４）。
【０２３０】
次に、等間隔配置部４３９ｃは、Ｘ０＋ｍ×Ｌ＜（対象領域の横幅）を満たす最大の整数ｍを算出し（ステップＳ１８５）、Ｙ０＋ｎ×Ｌ＜（対象領域の縦幅）を満たす最大の整数ｎを算出する（ステップＳ１８６）。
【０２３１】
次に、等間隔配置部４３９ｃは、Ｙ軸方向に、変数ｊ＝０、１、２、・・・、ｎについて、ステップＳ１８８〜Ｓ１９４を繰り返す（ステップＳ１８７〜Ｓ１９５）。
また、等間隔配置部４３９ｃは、Ｘ軸方向に、変数ｉ＝０、１、２、・・・、ｍについて、ステップＳ１８９〜Ｓ１９３を繰り返す（ステップＳ１８８〜Ｓ１９４）。
【０２３２】
等間隔配置部４３９ｃは、（Ｘ、Ｙ）＝（Ｘ０＋ｉ×Ｌ、Ｙ０＋ｊ×Ｌ）を計算する（ステップＳ１８９）。次に、座標（Ｘ、Ｙ）により定まる予約セルが、既に決定されたその他のセルと重複するか否かを判断する（ステップＳ１９０）。重複する場合には（ステップＳ１９０）、重複がなくなるまで、予約セルの位置をずらす（ステップＳ１９１）。
【０２３３】
重複が無い場合に（ステップＳ１９０）、座標（Ｘ、Ｙ）を予約セルの配置位置として、ＴＳＶ予約セル配置テーブル５０５へ書き込む（ステップＳ１９２）。予約セル数分だけ、ＴＳＶ予約セル配置テーブル５０５へ書き込んだか否かを判断し（ステップＳ１９３）、書き込んだ場合には（ステップＳ１９３）、等間隔配置部４３９ｃによる処理を終了する。書き込んでいない場合には（ステップＳ１９３）、処理を繰り返す。
【０２３４】
等間隔配置部４３９ｃは、こうして、決定された予約セル数分の予約セルを配置する。
（５）ＴＳＶ予約セル配置部４３９の対称配置部４３９ｅの動作
ＴＳＶ予約セル配置部４３９の対称配置部４３９ｅの動作について、図３４に示すフローチャートを用いて説明する。ここで説明する動作は、図３０のステップＳ１４６の詳細である。
【０２３５】
対称配置部４３９ｅは、対象領域に配置されるＴＳＶの数だけ、ステップＳ２０２〜Ｓ２１０を繰り返す（ステップＳ２０１〜Ｓ２１１）。
ＴＳＶ配置テーブル５０３から、１個のＴＳＶ配置データを読み出し（ステップＳ２０２）、中心情報を取得し、取得した中心情報を用いて、線対称か又は点対称かを判断する（ステップＳ２０３）。点対称である場合に（ステップＳ２０３）、対象領域の中心点を算出し（ステップＳ２０４）、算出した中心点を対称点として、読み出したＴＳＶ配置データにより定まるＴＳＶの配置位置について対称となる位置（Ｘ、Ｙ）を算出する（ステップＳ２０５）。線対称である場合に（ステップＳ２０３）、対象領域の中心線を算出し（ステップＳ２０６）、算出した中心線を対称軸として、読み出したＴＳＶ配置データにより定まるＴＳＶの配置位置について対称となる位置（Ｘ、Ｙ）を算出する（ステップＳ２０７）。次に、座標（Ｘ、Ｙ）により定まる予約セルが、既に決定されたその他のセルと重複するか否かを判断する（ステップＳ２０８）。重複する場合には（ステップＳ２０８）、重複がなくなるまで、予約セルの位置をずらす（ステップＳ２０９）。
【０２３６】
重複が無い場合に（ステップＳ２０８）、座標（Ｘ、Ｙ）を予約セルの配置位置として、ＴＳＶ予約セル配置テーブル５０５へ書き込む（ステップＳ２１０）。
対称配置部４３９ｅは、こうして、決定された予約セル数分の予約セルを配置する。
【０２３７】
（６）ＴＳＶ予約セル配置部４３９の等距離配置部４３９ｆの動作
ＴＳＶ予約セル配置部４３９の等距離配置部４３９ｆの動作について、図３５に示すフローチャートを用いて説明する。ここで説明する動作は、図３０のステップＳ１４７の詳細である。
【０２３８】
等距離配置部４３９ｆは、記憶部４３２に記憶されているＴＳＶ配置テーブル５０３から全てのＴＳＶ配置データを読み出し、読み出したＴＳＶ配置データの数を算出することにより、ＴＳＶの数を算出する（ステップＳ２３１）。
【０２３９】
次に、等距離配置部４３９ｆは、予約セル数の決定方法４６０ｂが「０」であるかその他の値であるかを判断する（ステップＳ２３２）。予約セル数の決定方法４６０ｂが
「０」であると判断する場合には（ステップＳ２３２）、処理を終了する。
【０２４０】
予約セル数の決定方法４６０ｂが「０」以外であると判断する場合には（ステップＳ２３２）、等距離配置部４３９ｆは、配置数Ｎ＝［予約セルの数／ＴＳＶ数］を算出する（ステップＳ２３３）。
【０２４１】
次に、等距離配置部４３９ｆは、対象領域に配置されるＴＳＶ数だけ、ステップＳ２３５〜Ｓ２４０を繰り返す（ステップＳ２３４〜Ｓ２４１）。
記憶部４３２に記憶されているＴＳＶ配置テーブル５０３から１個のＴＳＶ配置データを読み出し（ステップＳ２３５）、距離Ｍを取得し（ステップＳ２３６）、読み出したＴＳＶ配置データにより示されるＴＳＶの配置位置を中心点とし、中心点から距離Ｍだけ離れたＮ個の位置を頂点とする正Ｎ多角形のＮ個の頂点の座標（Ｘ、Ｙ）を算出する（ステップＳ２３７）。次に、それぞれ座標（Ｘ、Ｙ）により定まる予約セルが、既に決定されたその他のセルと重複するか否かを判断する（ステップＳ２３８）。重複する場合には（ステップＳ２３８）、重複がなくなるまで、重複する予約セルの位置をずらす（ステップＳ２３９）。
【０２４２】
重複が無い場合に（ステップＳ２３８）、各座標（Ｘ、Ｙ）を予約セルの配置位置として、ＴＳＶ予約セル配置テーブル５０５へ書き込む（ステップＳ２４０）。
等距離配置部４３９ｆは、こうして、決定された予約セル数分の予約セルを配置する。
【０２４３】
（７）ＴＳＶ予約セル配置部４３９のグループ配置部４３９ｇの動作
ＴＳＶ予約セル配置部４３９のグループ配置部４３９ｇの動作について、図３６〜図３７に示すフローチャートを用いて説明する。ここで説明する動作は、図３０のステップＳ１４８の詳細である。
【０２４４】
グループ配置部４３９ｇは、グルーピングの距離Ｇを取得し（ステップＳ２６１）、変数ｉを「１」の値に設定する（ステップＳ２６２）。
次に、グループ配置部４３９ｇは、ＴＳＶ配置テーブル５０３から、まだ、グループに分類されていないＴＳＶに対応する１個のＴＳＶ配置データを読み出し（ステップＳ２６３）、読み出したＴＳＶ配置データにより示されるＴＳＶ  Ｔｉを、第ｉグループに分類し、ＴＳＶ  Ｔｉを第ｉグループに対応付けて記憶し（ステップＳ２６４）、ＴＳＶ配置テーブル５０３内のＴＳＶ配置データのうち、グループに分類されていないＴＳＶに対応するＴＳＶ配置データについて、Ｔｉから距離Ｇ以内に存在する全てのＴＳＶを第ｉグループに分類し、グループｉに対応付けて記憶する（ステップＳ２６５）。
【０２４５】
グループ配置部４３９ｇは、全てのＴＳＶが何れかのグループに分類されたか否かを判断する（ステップＳ２６６）。分類されていない場合には（ステップＳ２６６）、変数ｉに１を加算して（ステップＳ２６７）、次に、ステップＳ２６３へ戻って、処理を繰り返す。
【０２４６】
分類された場合には（ステップＳ２６６）、全てのグループについて、ステップＳ２６９〜Ｓ２７２を繰り返す（ステップＳ２６８〜Ｓ２７３）。
グループ配置部４３９ｇは、１個のグループに含まれる全てのＴＳＶの中央の位置、一例として、全てのＴＳＶの配置位置を頂点とする多角形を仮に描き、その多角形の重心である位置（Ｘ、Ｙ）を算出し（ステップＳ２６９）、座標（Ｘ、Ｙ）により定まる予約セルが、既に決定されたその他のセルと重複するか否かを判断する（ステップＳ２７０）。重複する場合には（ステップＳ２７０）、重複がなくなるまで、予約セルの位置をずらす（ステップＳ２７１）。
【０２４７】
重複が無い場合に（ステップＳ２７０）、座標（Ｘ、Ｙ）を予約セルの配置位置として、ＴＳＶ予約セル配置テーブル５０５へ書き込む（ステップＳ２７２）。
グループ配置部４３９ｇは、こうして、決定された予約セル数分の予約セルを配置する。
【０２４８】
１．１０  まとめ
以上説明したように、設計支援装置４００によると、ＴＳＶの位置修正が必要になった場合においても、移動させたい位置にある予約セルを選択して、選択された予約セルと、ＴＳＶ及び配置禁止領域とを入れ替える処理と、それらを接続するための配線の修正を行うことによりＴＳＶを移動することができる。このとき、予約セルとＴＳＶ以外のセルの移動は発生しない。
【０２４９】
予約セルを予め配置しないとすると、配置配線のすべての工程を行った後、つまり、図２９に示すステップＳ１１１〜Ｓ１２０が完了した後、ＴＳＶ位置の変更しようすると、ＴＳＶ位置の変更の後、図２９に示すマクロセルの配置のステップＳ１１５から詳細配線のステップＳ１２０までの工程の全てをやり直す必要がある。これは、ＴＳＶが周辺に配置禁止領域のような広い領域を必要とするためで、この領域を確保するため、周辺のスタンダードセルやマクロセルを移動させなければならないからである。このため、予約セルを予め配置しない場合には、マクロセルの配置のステップＳ１１５から詳細配線のステップＳ１２０までの工程の全てをやり直す必要があり、修正に要する時間が長くなってしまう。
【０２５０】
２．その他の変形例
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０２５１】
（１）設計支援装置４００の配置配線部４０８による動作の変形例
設計支援装置４００の配置配線部４０８による動作の変形例について、図３８に示すフローチャートを用いて説明する。
【０２５２】
図３８においては、図２９と比較すると、ＴＳＶ予約セル配置テーブル５０５の生成と、セル配置テーブル５０６の生成の順序が入れ替わっている。
つまり、図３８においては、セル配置部４４０は、セル配置テーブル５０６を生成し（ステップＳ１１６ａ）、その後に、ＴＳＶ予約セル配置部４３９は、ＴＳＶ予約セル配置テーブル５０５を生成する（ステップＳ１１７ａ）。
【０２５３】
このように、図２９に示すフローチャートと図３８に示すフローチャートとでは、ネットリスト読み込みのステップＳ１１１からマクロセルの配置のステップＳ１１５までの順序は同じである。ステップＳ１１５の後、この変形例では、先にセル配置のステップＳ１１６ａを行い、ステップＳ１１６ａの後に、予約セルの配置のステップＳ１１７ａを行っている。
【０２５４】
この変形例の場合に、スタンダードセルが配置された後に、予約セルが、スタンダードセルが存在しない空き領域に設置される。このように、スタンダードセルの配置後に、予約セルを配置するので、予約セルがスタンダードセルとスタンダードセルとの間のタイミング制約を阻害する要因にはならない。
【０２５５】
ステップＳ１１８以降の配置配線処理、及びＴＳＶ位置の変更処理に関しては、実施の形態と同じである。
また、この変形例の場合において、全てのマスクレイアウト設計の工程が終了した後、つまり、ＴＳＶの位置がすべて確定した際には、元々ＴＳＶ及び配置禁止領域が配置されていた領域は、予備の領域となる。この予備の領域を有効に利用するために、実施の形態と同様に、この予備の領域に、リペアセル又はサーマルビアを配置してもよいし、又は空き領域としておいてもよい。また、ＴＳＶの移動先として予約セルが用いられなかった場合に、この予約セルに、リペアセルやサーマルビアを配置してもよい。また、この予約セルを用いることなく、そのままにしておいてもよい。
【０２５６】
（２）ブロック内のＴＳＶと予約セルの配置の変形例
図３９に示すように、ブロック３８５内において、ＴＳＶ３８１を配置し、ＴＳＶ３８１の周囲に配置禁止領域３８２を配置した後に、配置禁止領域３８２から距離Ｌだけ離れた位置に、予約セル３８３を配置し、さらに、予約セル３８３から距離Ｌだけ離れた位置に、予約セル３８４を配置してもよい。
【０２５７】
（３）上記の実施の形態では、設計支援装置４００は、対象領域の指定方法４６０ａにより指定されたブロック又は重複領域に対して、予約セルを配置するとしている。しかし、これには限定されない。設計支援装置４００は、対象領域の指定方法４６０ａを有さず、ＴＳＶが配置されるブロックにのみ、予約セルを配置してもよい。また、重複領域にのみ、予約セルを配置してもよい。
【０２５８】
（４）上記の実施の形態では、設計支援装置４００は、予約セル数の決定方法４６０ｂにより指定された方法により、予約セル数を決定している。しかし、これには限定されない。設計支援装置４００は、予約セル数の決定方法４６０ｂを有さず、上記に説明した決定方法のうちの１個のみを用いて、予約セル数を決定するとしてもよい。
【０２５９】
（５）上記の実施の形態では、設計支援装置４００は、予約セルの配置位置の決定方法４６０ｃにより指定された方法により、予約セルを配置している。しかし、これには限定されない。設計支援装置４００は、予約セルの配置位置の決定方法４６０ｃを有さず、上記に説明した配置方法のうちの１個のみを用いて、予約セルの配置位置を決定するとしてもよい。また、上記に説明した配置方法のうちの２個以上を組み合わせて用いて、予約セルの配置位置を決定するとしてもよい。
【０２６０】
（６）上記の実施の形態では、設計支援装置４００は、ＴＳＶへの依存方法４６０ｄにより指定された方法により、予約セルを配置している。しかし、これには限定されない。設計支援装置４００は、ＴＳＶへの依存方法４６０ｄを有さず、上記に説明したＴＳＶに依存する配置方法のうちの１個のみを用いて、予約セルを配置するとしてもよい。また、上記に説明したＴＳＶに依存する配置方法のうちの２個以上を組み合わせて用いて、予約セルを配置するとしてもよい。
【０２６１】
（７）上記の実施の形態では、三次元集積回路は、第１及び第２の半導体チップを含む複数の半導体チップを層状に配列して構成され、第１の半導体チップと第２の半導体チップとが接触するように設けられている。設計支援装置４００は、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を第１の半導体チップ上において決定し、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を第１の半導体チップ上において、決定している。しかし、この構成には限定されない。次のように構成してもよい。
【０２６２】
三次元集積回路は、第１、第２及び第３の半導体チップを含む複数の半導体チップを層状に配列して構成され、第１の半導体チップと第２の半導体チップとが接触するように設けられ、第２の半導体チップと第３の半導体チップとが接触するように設けられている。設計支援装置４００は、第１及び第２の半導体チップを貫通して第３の半導体チップに接続する貫通ビアの配置位置を第１及び第２の半導体チップ上において決定する貫通ビア配置手段と、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を第１及び第２の半導体チップ上において、決定する予約セル配置手段とを備える。この場合において、実施の形態において説明したそれぞれの予約セルの配置方法が適用されるとしてもよい。
【０２６３】
また、設計支援装置４００は、３個以上の半導体チップを貫通して、次の半導体チップに接続する貫通ビアの配置位置を前記３個以上の半導体チップ上において決定する貫通ビア配置手段と、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を前記３個以上の半導体チップ上において、決定する予約セル配置手段とを備えるとしてもよい。この場合において、実施の形態において説明したそれぞれの予約セルの配置方法が適用されるとしてもよい。
【０２６４】
また、設計支援装置４００は、複数の半導体チップからなるチップ群を貫通して、次の半導体チップに接続する貫通ビアの配置位置を前記チップ群上において決定する貫通ビア配置手段と、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を前記チップ群上において、決定する予約セル配置手段とを備えるとしてもよい。この場合において、実施の形態において説明したそれぞれの予約セルの配置方法が適用されるとしてもよい。
【０２６５】
（８）上記の実施の形態においては、セルベースの設計手法として説明を行ったが、すべての工程を自動化したマスクレイアウト設計プログラムとして実現してもよい。
（９）次のように構成してもよい。
【０２６６】
三次元集積回路は、第１及び第２の半導体チップを含む複数の半導体チップを層状に配列して構成される。設計支援装置は、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置手段と、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置手段を備える。
【０２６７】
ここで、第１の半導体チップは、前記貫通ビアが配置される対象領域と、前記貫通ビアが配置されない非対象領域とを含み、前記貫通ビア配置手段は、前記対象領域内において、貫通ビアの配置位置を決定し、前記予約セル配置手段は、前記対象領域内において、予約セルの配置位置を決定し、前記非対象領域内において、予約セルの配置を抑制し、又は禁止するとしてもよい。
【０２６８】
ここで、第１の半導体チップは、前記貫通ビアが配置される対象領域と、前記貫通ビアが配置されない非対象領域とを含み、前記貫通ビア配置手段は、前記対象領域内において、貫通ビアの配置位置を決定し、前記予約セル配置手段は、第１の半導体チップの一部の領域が、前記対象領域であるか又は非対象領域であるかを判断し、対象領域である場合に、当該領域内において、予約セルの配置位置を決定し、非対象領域である場合に、当該領域内において、予約セルの配置を抑制し、又は禁止するとしてもよい。
【０２６９】
ここで、第１の半導体チップは、前記貫通ビアが配置される領域と、前記貫通ビアが配置されない領域とを含み、前記貫通ビア配置手段は、前記貫通ビアが配置される前記領域内において、貫通ビアの配置位置を決定し、前記予約セル配置手段は、第１の半導体チップの一部の領域に、貫通ビアが配置されるか否かを判断し、貫通ビアが配置されると判断される場合に、当該領域内において、予約セルの配置位置を決定し、貫通ビアが配置されないと判断される場合に、当該領域内において、予約セルの配置を抑制し、又は禁止するとしてもよい。
【０２７０】
（１０）次のように構成してもよい。
三次元集積回路は、第１及び第２の半導体チップを含む複数の半導体チップを層状に配列して構成される。第１の半導体チップは、複数のブロックから構成されている。設計支援装置は、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置手段と、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置手段を備える。前記予約セル配置手段は、第１の半導体チップにおいて、ブロック毎に、予約セルの配置方法を切り換えるとしてもよい。つまり、前記予約セル配置手段は、第１の半導体チップにおいて、ブロック毎に、複数の予約セルの配置方法の中から、一つの配置方法を選択して選択した配置方法を用いるとしてもよい。ここで、複数の予約セルの配置方法は、実施の形態で説明したように、予約セルのランダムな配置、予約セルの等間隔の配置、利用者の指定位置における予約セルの配置、ＴＳＶの配置位置に対称な位置への配置、ＴＳＶから等距離の位置における予約セルの配置、及びＴＳＶが属するグループ毎の予約セルの配置である。
【０２７１】
（１１）次のように構成してもよい。
複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援するコンピュータシステムは、複数のコンピュータ命令が組み合わされて構成されるコンピュータプログラムを記憶しているメモリと、前記メモリに記憶されている前記コンピュータプログラムから１個ずつコンピュータ命令を読み出し、解読し、その解読結果に応じて動作するプロセッサとを備える。前記コンピュータプログラムは、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置プログラムと、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置プログラムと、前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成プログラムとを含む。この場合において、実施の形態において説明したそれぞれの予約セルの配置方法が適用されるとしてもよい。
【０２７２】
また、次のように構成してもよい。
複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援する設計支援装置は、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置手段と、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置手段と、第１の半導体チップにおいて、その他のセル及び配線の配置位置を決定するセル配線配置手段と、前記貫通ビアの配置位置と前記予約セルの配置位置とその他のセル及び配線の配置位置とを含むレイアウトデータを生成する生成手段とを備える。
【０２７３】
また、次のように構成してもよい。
複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援し、貫通ビア配置手段、予約セル配置手段及び生成手段を備える設計支援装置で用いられる設計支援方法であって、前記貫通ビア配置手段により、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置ステップと、前記予約セル配置手段により、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置ステップと、前記生成手段により、前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成ステップとを含む。
【０２７４】
また、次のように構成してもよい。
複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援し、貫通ビア配置手段、予約セル配置手段及び生成手段を備える設計支援装置で用いられる設計支援用のコンピュータプログラムであって、コンピュータである設計支援装置に、前記貫通ビア配置手段により、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置ステップと、前記予約セル配置手段により、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置ステップと、前記生成手段により、前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成ステップとを実行させることを特徴とする。
【０２７５】
また、次のように構成してもよい。
複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援し、貫通ビア配置手段、予約セル配置手段及び生成手段を備える設計支援装置で用いられる設計支援用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、コンピュータである設計支援装置に、前記貫通ビア配置手段により、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置ステップと、前記予約セル配置手段により、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置ステップと、前記生成手段により、前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成ステップとを実行させるコンピュータプログラムを記録している。
（１２）次のように構成してもよい。
本発明の一態様は、複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援する設計支援装置であって、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置手段と、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置手段と、前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成手段とを備えることを特徴とする。
【０２７６】
この構成によると、三次元集積回路の設計の途中でＴＳＶの配置位置の変更が発生する場合に、新たにＴＳＶを配置すべき位置として予め配置しておいた予約セルの配置位置を用いることができるので、その他の回路部分における多大な設計変更が発生しないようにできるという優れた効果を奏する。
ここで、第１の半導体チップは、前記貫通ビアが配置される対象領域を含み、前記貫通ビア配置手段は、前記対象領域内において、貫通ビアの配置位置を決定し、前記予約セル配置手段は、前記対象領域内において、予約セルの配置位置を決定するとしてもよい。
【０２７７】
この構成によると、貫通ビアが配置される対象領域と同一の領域内に、予約セルが配置されるので、予約セルが配置された位置は、新たにＴＳＶを配置すべき位置として用いられる可能性が高くなる。
ここで、前記半導体チップは、一のブロックを含み、前記対象領域は、前記ブロックであり、前記貫通ビア配置手段は、前記対象領域としての前記ブロック内において、貫通ビアの配置位置を決定し、前記予約セル配置手段は、前記対象領域としての前記ブロック内において、前記予約セルの配置位置を決定するとしてもよい。
【０２７８】
この構成によると、貫通ビアが配置されるブロックと同一のブロック内に、予約セルが配置されるので、予約セルが配置された位置は、新たにＴＳＶを配置すべき位置として用いられる可能性が高くなる。
ここで、第１の半導体チップは、第１のブロックを含み、第２の半導体チップは、第２のブロックを含み、第１のブロックは、第２のブロックとの重複領域を有し、前記重複領域は、当該重複領域の面の垂直方向に、第２のブロックの一部又は全部が存在する領域であり、前記対象領域は、前記重複領域であり、前記貫通ビア配置手段は、前記対象領域として、第１のブロックの前記重複領域内において、貫通ビアの配置位置を決定し、前記予約セル配置手段は、前記対象領域として、前記重複領域内において、前記予約セルの配置位置を決定してもよい。
【０２７９】
この構成によると、貫通ビアが配置される重複領域と同一の重複領域内に、予約セルが配置されるので、予約セルが配置された位置は、新たにＴＳＶを配置すべき位置として用いられる可能性が高くなる。
ここで、前記予約セル配置手段は、前記対象領域内において、ランダムに前記予約セルの配置位置を決定するとしてもよい。
【０２８０】
この構成によると、貫通ビアが配置される対象領域内に、ランダムに予約セルが配置されるので、予約セルが配置された位置は、新たにＴＳＶを配置すべき位置として用いられる可能性が高くなる。
ここで、前記予約セル配置手段は、前記対象領域内に配置される予約セルの面積の合計の、前記対象領域の面積に対する比率が指定された面積比率となるように、予約セルの配置数を決定するとしてもよい。
【０２８１】
この構成によると、貫通ビアが配置される対象領域内に、指定された面積比率を満たすだけの数の予約セルが配置されるので、予約セルが配置された位置は、新たにＴＳＶを配置すべき位置として用いられる可能性が高くなる。
ここで、前記面積比率は、１パーセント以上、５パーセント以下であるとしてもよい。
ここで、前記予約セル配置手段は、前記対象領域内において、前記貫通ビアの配置位置に対して、対称となる位置を、前記予約セルの配置位置として決定するとしてもよい。
【０２８２】
この構成によると、予約セルが配置された位置は、新たにＴＳＶを配置すべき位置として用いられる可能性が高くなる。
ここで、前記予約セル配置手段は、前記対象領域内において、一本の軸を定め、定めた軸を対称軸として、前記対象領域内において、前記貫通ビアの配置位置に対して、線対称となる位置を、前記予約セルの配置位置として決定するとしてもよい。
ここで、前記予約セル配置手段は、前記対象領域内において、一個の点を定め、定めた点を対称点として、前記対象領域内において、前記貫通ビアの配置位置に対して、点対称となる位置を、前記予約セルの配置位置として決定するとしてもよい。
ここで、前記予約セル配置手段は、前記対象領域内において、一の貫通ビアの配置位置から等距離にある複数の位置を、複数の予約セルの配置位置として決定するとしてもよい。
【０２８３】
この構成によると、一の貫通ビアから等距離にある複数の位置に複数の予約セルが配置されるので、予約セルが配置された位置は、新たにＴＳＶを配置すべき位置として用いられる可能性が高くなる。
ここで、前記予約セル配置手段は、前記対象領域内に配置される回路の動作速度と前記距離とが反比例の関係を有するように、前記距離を決定するとしてもよい。
ここで、前記予約セル配置手段は、前記対象領域内において、一の予約セルの配置位置と、当該予約セルに隣接する複数の予約セルの配置位置との間の複数の距離が等しくなるように、複数の予約セルの配置位置を決定するとしてもよい。
【０２８４】
この構成によると、複数の予約セルが一定間隔を空けて配置されるので、予約セルが配置された位置は、新たにＴＳＶを配置すべき位置として用いられる可能性が高くなる。
ここで、前記予約セル配置手段は、前記対象領域内に配置される複数のＴＳＶをグループに分類し、各グループに含まれるＴＳＶの配置位置に基づいて、予約セルの配置位置を決定するとしてもよい。
【０２８５】
この構成によると、各グループに含まれるＴＳＶの配置位置に基づいて予約セルが配置されるので、予約セルが配置された位置は、新たにＴＳＶを配置すべき位置として用いられる可能性が高くなる。
ここで、前記予約セル配置手段は、近接して配置されたＴＳＶが同一のグループに属するように、ＴＳＶを分類するとしてもよい。
ここで、前記予約セル配置手段は、一のグループに含まれる複数のＴＳＶの配置位置の中央において、予約セルの配置位置を決定するとしてもよい。
また、本発明の一態様は、複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援する設計支援装置で用いられる設計支援方法であって、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置ステップと、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置ステップと、前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成ステップとを含む。
【０２８６】
この方法によると、三次元集積回路の設計の途中でＴＳＶの配置位置の変更が発生する場合に、新たにＴＳＶを配置すべき位置として予め配置しておいた予約セルの配置位置を用いることができるので、その他の回路部分における多大な設計変更が発生しないようにできるという優れた効果を奏する。
また、本発明の一態様は、複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援する設計支援装置で用いられる設計支援用のコンピュータプログラムであって、コンピュータである設計支援装置に、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置ステップと、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置ステップと、前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成ステップとを実行させることを特徴とする。
【０２８７】
このコンピュータプログラムによると、三次元集積回路の設計の途中でＴＳＶの配置位置の変更が発生する場合に、新たにＴＳＶを配置すべき位置として予め配置しておいた予約セルの配置位置を用いることができるので、その他の回路部分における多大な設計変更が発生しないようにできるという優れた効果を奏する。
また、本発明の一態様は、複数の半導体チップを層状に配列して構成される三次元集積回路の設計を支援する設計支援装置で用いられる設計支援用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、コンピュータである設計支援装置に、第１の半導体チップを貫通して第２の半導体チップに接続する貫通ビアの配置位置を決定する貫通ビア配置ステップと、第１の半導体チップにおいて、前記貫通ビアの前記配置位置に応じて、前記貫通ビアの配置の予備の配置位置としての予約セルの配置位置を決定する予約セル配置ステップと、前記貫通ビアの配置位置と前記予約セルの配置位置とを含むレイアウトデータを生成する生成ステップとを実行させるコンピュータプログラムを記録している。
【０２８８】
この記録媒体に記録されているコンピュータプログラムによると、三次元集積回路の設計の途中でＴＳＶの配置位置の変更が発生する場合に、新たにＴＳＶを配置すべき位置として予め配置しておいた予約セルの配置位置を用いることができるので、その他の回路部分における多大な設計変更が発生しないようにできるという優れた効果を奏する。
（１３）本発明は、三次元集積回路のマスクレイアウト設計手法であり、セルライブラリにシリコン貫通ビア用の予約セルを持ち、スタンダードセルの配置処理前に前記予約セルを配置しておき、前記予約セル以外のスタンダードセルの配置処理後にシリコン貫通ビアの位置を変更する場合には前記予約セルを除去し、代わりに前記シリコン貫通ビアを配置することで修正範囲を配線層のみにすることを特徴とする。
【０２８９】
また、本発明は、セルライブラリにシリコン貫通ビア用の予約セルを持ち、スタンダードセルの配置処理前に前記予約セルを配置しておき、前記予約セル以外のスタンダードセルの配置処理後にシリコン貫通ビアの位置を変更する場合には前記予約セルを除去し、代わりに前記シリコン貫通ビアを配置することで修正範囲を配線層のみにすることを特徴とする三次元集積回路のマスクレイアウト設計プログラムと、そのプログラムを記録している記録媒体である。
【０２９０】
ここで、前記予約セルで、シリコン貫通ビアの位置が確定した後には使用しなかった前記予約セルに関してはロジック修正用のリペアセルに置き換えるとしてもよい。
ここで、前記予約セルで、シリコン貫通ビアの位置が確定した後には使用しなかった前記予約セルに関しては放熱用のサーマルビアに置き換えるとしてもよい。
【０２９１】
また、本発明は、三次元集積回路のマスクレイアウト設計手法であって、セルライブラリにシリコン貫通ビア用の予約セルを持ち、スタンダードセルの配置後の空き領域に前記予約セルを配置しておき、前記予約セル以外のスタンダードセルの配置処理後にシリコン貫通ビアの位置を変更する場合には前記予約セルを除去し、代わりに前記シリコン貫通ビアを配置することで修正範囲を配線層のみにすることを特徴とする。
【０２９２】
また、本発明は、セルライブラリにシリコン貫通ビア用の予約セルを持ち、スタンダードセルの配置後の空き領域に前記予約セルを配置しておき、前記予約セル以外のスタンダードセルの配置処理後にシリコン貫通ビアの位置を変更する場合には前記予約セルを除去し、代わりに前記シリコン貫通ビアを配置することで修正範囲を配線層のみにすることを特徴とする三次元集積回路のマスクレイアウト設計プログラム及びプログラムを記録した記録媒体である。
【０２９３】
ここで、前記予約セルで、シリコン貫通ビアの位置が確定した後には使用しなかった前記予約セルに関してはロジック修正用のリペアセルに置き換えるとしてもよい。
ここで、前記予約セルで、シリコン貫通ビアの位置が確定した後には使用しなかった前記予約セルに関しては放熱用のサーマルビアに置き換えるとしてもよい。
【０２９４】
（１４）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。ここで、コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。つまり、前記マイクロプロセッサは、前記コンピュータプログラムに含まれる各命令を１個ずつ読み出し、読み出した命令を解読し、解読結果に従って動作する。
【０２９５】
なお、各装置は、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレィユニット、キーボード、マウスなどの全てを含むコンピュータシステムに限らず、これらの一部から構成されているコンピュータシステムであってもよい。
【０２９６】
また、ＲＡＭ又はハードディスクユニットに記憶されているコンピュータプログラムに含まれる命令に従って、マイクロプロセッサが動作することにより、当該コンピュータプログラムとマイクロプロセッサとが、あたかも、一つのハードウェア回路を構成し、このハードウェア回路が動作しているようにみせることができる。
【０２９７】
（１５）上記の各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【０２９８】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されてもよいし、一部又は全てを含むように１チップ化されてもよい。また、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０２９９】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field 
Programmable Gate Array）やＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０３００】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０３０１】
（１６）上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしてもよい。前記ＩＣカード又は前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、などから構成されるコンピュータシステムである。前記ＩＣカード又は前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカード又は前記モジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【０３０２】
（１７）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０３０３】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【０３０４】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０３０５】
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
【０３０６】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０３０７】
（１８）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０３０８】
本発明にかかる三次元集積回路の設計支援装置及び設計支援方法は、三次元集積回路の設計の途中でＴＳＶの配置位置の変更が発生する場合に、新たなＴＳＶの配置位置として予め配置した予約セルの配置位置を用いることができるので、その他の回路部分における多大な設計変更が発生しないようにでき、複数の半導体集積回路チップを積層して構成される三次元集積回路の設計を支援する技術として有用である。
【符号の説明】
【０３０９】
４００    設計支援装置
４０１    論理合成用ライブラリ記憶部
４０２    ソースファイル記憶部
４０３    論理合成部
４０４    制約記憶部
４０５    ネットリスト記憶部
４０６    配置配線制約記憶部
４０７    配置配線用ライブラリ記憶部
４０８    配置配線部
４０９    レイアウトデータ記憶部
４１０    レイアウトデータ検証部
４１１    検証用データ記憶部
４１２    マスク出力部
４１３    エディタ
４３１    読込部
４３２    記憶部
４３３    制御部
４３５    フロアプラン生成部
４３６    ピン配置部
４３７    ＴＳＶ配置部
４３８    マクロ配置部
４３９    ＴＳＶ予約セル配置部
４４０    セル配置部
４４１    電源配線部
４４２    概略配線部
４４３    詳細配線部
４４４    ＴＳＶ位置変更部
４４５    マスクデータ生成部
【図１】
2012077280.tif 000003
【図２】
2012077280.tif 000004
【図３】
2012077280.tif 000005
【図４】
2012077280.tif 000006
【図５】
2012077280.tif 000007
【図６】
2012077280.tif 000008
【図７】
2012077280.tif 000009
【図８】
2012077280.tif 000010
【図９】
2012077280.tif 000011
【図１０】
2012077280.tif 000012
【図１１】
2012077280.tif 000013
【図１２】
2012077280.tif 000014
【図１３】
2012077280.tif 000015
【図１４】
2012077280.tif 000016
【図１５】
2012077280.tif 000017
【図１６】
2012077280.tif 000018
【図１７】
2012077280.tif 000019
【図１８】
2012077280.tif 000020
【図１９】
2012077280.tif 000021
【図２０】
2012077280.tif 000022
【図２１】
2012077280.tif 000023
【図２２】
2012077280.tif 000024
【図２３】
2012077280.tif 000025
【図２４】
2012077280.tif 000026
【図２５】
2012077280.tif 000027
【図２６】
2012077280.tif 000028
【図２７】
2012077280.tif 000029
【図２８】
2012077280.tif 000030
【図２９】
2012077280.tif 000031
【図３０】
2012077280.tif 000032
【図３１】
2012077280.tif 000033
【図３２】
2012077280.tif 000034
【図３３】
2012077280.tif 000035
【図３４】
2012077280.tif 000036
【図３５】
2012077280.tif 000037
【図３６】
2012077280.tif 000038
【図３７】
2012077280.tif 000039
【図３８】
2012077280.tif 000040
【図３９】
2012077280.tif 000041
【国際調査報告】
2012077280.tif 000042
2012077280.tif 000043
2012077280.tif 000044
2012077280.tif 000045