(57)【特許請求の範囲】
【請求項１】
チップを有する半導体装置の設計を支援する半導体設計支援装置であって、
第１の平面上に第１のチップが初期配置されて前記第１のチップが有する論理回路の配列方向が前記第１の平面がのびる方向であり、前記第１の平面とは平行ではない第２の平面上に第２のチップが初期配置されて前記第２のチップが有する論理回路の配列方向が前記第２の平面がのびる方向であり、
前記第１の平面上から前記第２の平面上に前記第１のチップの配置を変更し、又は、前記第２の平面上から前記第１の平面上に前記第２のチップの配置を変更するチップ配置変更処理手段を備える半導体装置設計支援装置。
【請求項２】
前記チップ配置変更処理手段は、前記チップが配置されることにより決定される前記半導体の体積の大小を特定する複数方向からの投射面積による変数を用いたコスト関数から演算される結果に従って前記チップの配置を改善する配置改善処理手段を備える、請求項１記載の半導体装置設計支援装置。
【請求項３】
チップを有する半導体装置の設計を支援する半導体設計支援方法であって、
第１の平面上に第１のチップが初期配置されて前記第１のチップが有する論理回路の配列方向が前記第１の平面がのびる方向であり、前記第１の平面とは平行ではない第２の平面上に第２のチップが初期配置されて前記第２のチップが有する論理回路の配列方向が前記第２の平面がのびる方向であり、
チップ配置変更処理手段が、前記第１の平面上から前記第２の平面上に前記第１のチップの配置を変更し、又は、前記第２の平面上から前記第１の平面上に前記第２のチップの配置を変更処理するステップを含む、半導体設計支援方法。
【請求項４】
前記チップ配置変更処理手段の配置改善処理手段が、前記チップが配置されることにより決定される前記半導体の体積の大小を特定する複数方向からの投射面積による変数を用いたコスト関数から演算される結果に従って前記チップの配置を改善するステップを含む、請求項３記載の半導体装置設計支援方法。
【請求項５】
請求項３又は４記載の半導体設計支援方法をコンピュータに実行させるためのプログラム。
【請求項６】
請求項５記載のプログラムを記録するコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置設計支援装置、半導体装置設計支援方法、その方法をコンピュータにより実行可能なプログラム、及び、そのプログラムを記録した記録媒体に関し、特に所定の平面上に初期配置されるチップを有する半導体装置であって、例えばＳｉＰ(system in a package)のような３次元的なチップ配置による実装が行われる半導体装置の設計を支援する半導体装置設計支援装置等に関する。
【背景技術】
【０００２】
近年ＬＳＩ製造プロセス技術の進歩によりＬＳＩの基板への集積度が一層進んでおり、ＳｉＰという概念も出てきた。ＳｉＰは、微小なプリント基板上に複数のＩＣチップや受動素子を基板に３次元実装して微小なシステムを製造する技術をいう。シリコンチップ上に回路を書き込んでシステムを構築するＳｏＣ(System On a Chip)に比較して、i）既存のチップを用いれば、短納期に量産が可能、ii）小さな設備投資で、iii）少量多品種の生産に有利などの利点を有する。
【０００３】
このような３次元配置の半導体装置に対する設計装置として、例えば、特許文献１に記載されているような技術がある。この技術は、基板とその基板に配置されるチップとの関係において、同一平面上でのレイアウト設計に工夫を施すものである。
【０００４】
また、レイアウト設計の工夫として、２次元配置とした半導体装置における基板上の単位面積当たりの消費電力を平均化する技術がある（特許文献２参照）。
【０００５】
【特許文献１】特開２００５−１２９８８２号公報
【特許文献２】特開平９−２６６２５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術では、単に同一平面上でレイアウト設計を工夫しているにすぎず、３次元配置の半導体装置のレイアウト設計を適切にするという点からは十分なものではない。この点は、特許文献２に記載の技術においても同様であり、十分なものとは言えない。
【０００７】
ゆえに、本発明は、３次元配置の半導体装置に対して３次元空間的な自由度を最大限に活かした設計支援を行うことが可能な半導体装置設計支援装置、半導体装置設計支援方法、その方法をコンピュータにより実行可能なプログラム、及び、そのプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に係る発明は、チップを有する半導体装置の設計を支援する半導体設計支援装置であって、第１の平面上に第１のチップが初期配置されて前記第１のチップが有する論理回路の配列方向が前記第１の平面がのびる方向であり、前記第１の平面とは平行ではない第２の平面上に第２のチップが初期配置されて前記第２のチップが有する論理回路の配列方向が前記第２の平面がのびる方向であり、前記第１の平面上から前記第２の平面上に前記第１のチップの配置を変更し、又は、前記第２の平面上から前記第１の平面上に前記第２のチップの配置を変更するチップ配置変更処理手段を備える半導体装置設計支援装置である。
【００１４】
請求項２に係る発明は、請求項１記載の半導体装置設計支援装置であって、前記チップ配置変更処理手段は、前記チップが配置されることにより決定される前記半導体の体積の大小を特定する複数方向からの投射面積による変数を用いたコスト関数から演算される結果に従って前記チップの配置を改善する配置改善処理手段を備えるものである。
【００１５】
請求項３に係る発明は、チップを有する半導体装置の設計を支援する半導体設計支援方法であって、第１の平面上に第１のチップが初期配置されて前記第１のチップが有する論理回路の配列方向が前記第１の平面がのびる方向であり、前記第１の平面とは平行ではない第２の平面上に第２のチップが初期配置されて前記第２のチップが有する論理回路の配列方向が前記第２の平面がのびる方向であり、チップ配置変更処理手段が、前記第１の平面上から前記第２の平面上に前記第１のチップの配置を変更し、又は、前記第２の平面上から前記第１の平面上に前記第２のチップの配置を変更処理するステップを含む半導体設計支援方法である。請求項４に係る発明は、請求項３記載の半導体装置設計支援方法において、前記チップ配置変更処理手段の配置改善処理手段が、前記チップが配置されることにより決定される前記半導体の体積の大小を特定する複数方向からの投射面積による変数を用いたコスト関数から演算される結果に従って前記チップの配置を改善するステップを含むものである。
【００１６】
請求項５に係る発明は、請求項３又は４記載の半導体設計支援方法をコンピュータに実行させるためのプログラムである。
【００１７】
請求項６に係る発明は、請求項５記載のプログラムを記録するコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１８】
本発明によれば、第１の平面上に第１のチップが初期配置されて前記第１のチップが有する論理回路の配列方向が前記第１の平面がのびる方向であり、前記第１の平面とは平行ではない第２の平面上に第２のチップが初期配置されて前記第２のチップが有する論理回路の配列方向が前記第２の平面がのびる方向であり、このように初期配置されるチップの配置を平行ではない平面間で変更できるので、３次元空間の自由度を十分に生かした設計支援を行うことができる。特に、複数方向からの投射面積による変数を用いたコスト関数から演算される結果により半導体の体積の大小を考慮した設計を行うことにより、半導体装置の小型化の向上を図ることができとともに、３次元空間内で自由に配置できるため、実レイアウトの配線を短くすることもでき、チップ間の空間を調節することにより効果的に冷却することも可能になる。
【発明を実施するための最良の形態】
【００１９】
以下に、図を用いて本発明の実施の形態を説明する。
【００２０】
図１は、本発明の実施の形態に係る半導体装置設計支援装置の構成を模式的に示したブロック図である。
【００２１】
半導体装置設計支援装置１は、入出力部２とチップ配置変更処理部７と４種類のファイルから構成される。入出力部２は、入力部３と表示部５から構成されている。入力部３よりプログラムのパラメータが入力され、表示部５では処理結果が表示される。
【００２２】
チップ配置変更処理部７は、初期配置処理部９と配置改善処理部１１とファイル読込処理部１３とから構成されている。ファイル読込処理部１３は、パラメータファイル１５、コントロールファイル１７、温度分布ファイル１９及び中間ファイル２１の読み込みを行い、初期配置処理部９及び配置改善処理部１１がチップの配置変更を行う。
【００２３】
図２は、図１におけるチップ配置変更処理部７の構成の詳細を模式的に示したブロック図である。
【００２４】
上述した通り、チップ配置変更処理部７は、初期配置処理部９と配置改善処理部１１とファイル読込処理部１３とから構成されている。さらに配置改善処理部１１は、配置交換部２３と配置移動部２５とコスト計算部２７から構成されている。
【００２５】
図２の初期配置処理部９では、チップを基板上に順次積み上げるように配置していく処理を行うが、制約条件があるチップについては制約条件を満たすように配置する。その他の制約条件がないチップについては、最下段から順次積み上げていくように配置する。この時、制約条件以外の条件は何も考慮せずに配置する。全チップの配置が終わると、各配置したチップの端子間の接続情報を３次元ネットワークで構築する。また、チップと基板の端子間にも接続情報を構築する。この初期配置処理部９の処理については、図６を用いてその一例を後述する。
【００２６】
上記初期配置処理部９にて初期配置されると、図２の配置交換部２３で各チップの配置の改善が行われる。この配置交換部２３による各チップの配置の改善は、配置ネットワークに従い、制約内で配置の改善を行う。配置交換部２３の処理については、図１０及び図１１を用いてその一例を後述する。
【００２７】
次に、図２の配置移動部２５でさらに配置の改善が行われる。この配置移動部２５による各チップの配置の移動では、コスト計算部２７で計算された結果に基づいて配置の移動がなされる。コスト計算部２７は、温度分布ファイルを元に計算される熱によるコスト、配線長（ワイヤ長）及び体積によるコストを計算する。その計算結果を元に、チップがより適した位置に配置されるように配置移動部２５がチップの配置を移動する。この配置移動部２５及びコスト計算部２７の処理については、図１２〜図１４を用いてその一例を後述する。
【００２８】
ここで、チップの配置を入れ替えるアルゴリズムとしてシミュレーティッド・アニーリング（以下Ｓ・Ａ）を用いる。Ｓ・Ａは最適化の手法の一つで、理論上は真の最適解を得ることができる。
【００２９】
図３は、本発明の実施の形態に係る半導体装置設計支援装置のメイン処理の処理フロー図である。
【００３０】
本発明の実施の形態に係る半導体装置設計支援装置が起動されると、ステップＳＴ１０１にて初期処理が行われる。この初期処理では、プログラムの引数のチェック並びにパラメータファイル、コントロールファイル及び中間ファイルの読み込みが行われる。次に、ステップＳＴ１０３で温度分布ファイルが読み込まれ、ステップＳＴ１０５のチップ配置変更処理が行われる。そして、全てのチップの配置結果及び各チップの端子間の接続情報が中間ファイル及び画面上に出力される。
【００３１】
図４は、図３におけるステップＳＴ１０３の温度分布ファイル読込処理の一例を示す処理フロー図である。
【００３２】
図１のファイル読込処理部１３は、図４のステップＳＴ２０１で温度分布ファイルを開く。温度分布ファイルの１行目には、メッシュの大きさと各メッシュの温度分布が記述されているので、ステップＳＴ２０３でメッシュの大きさを取得し、ステップＳＴ２０５で各メッシュの温度分布を取得する。取得したメッシュの情報は、各セルのレコードに保持しておく。そして、温度分布ファイルの２行目以降を順次読み取りながら、ステップＳＴ２０７で１辺が１ｎｍ（ナノメートル）の立方体のセル断面の温度降下率を取得する。さらに、ステップＳＴ２０９でスペーサによる温度降下率を取得し、ステップＳＴ２１１で端子位置による温度降下率を取得する。ステップＳＴ２１３で、取得した温度降下率を元に全セル内の表面部の全メッシュについて、セルの厚さ、スペーサ及び端子位置による温度降下を考慮した温度分布を取得し、温度分布ファイル読込処理を終了する。
【００３３】
図５は、図３におけるステップＳＴ１０５のチップ配置変更処理の一例を示す処理フロー図である。
【００３４】
図１の初期配置処理部９は、図５におけるステップＳＴ３０１の初期配置処理を行い、図１の配置改善処理部１１が図５におけるステップＳＴ３０３の配置改善処理を行う。これらの処理の一例を図６〜図１４を用いて以下に説明する。
【００３５】
図６は、図５におけるステップＳＴ３０１の初期配置処理の一例を示す処理フロー図である。
【００３６】
まず、ステップＳＴ４０１でグリッドの初期化を行う。本発明の実施の形態においては配置する最小のチップ体積の６４分割（縦４分割、横４分割、高さ４分割）を１つのグリッドとする。チップの移動はグリッド単位となる為、この場合、チップを縦、横及び高さ方向に、最小チップの各辺の長さの１／４ずつ移動させることが可能となる。なお、最小チップ体の分割数はユーザ側で指定することができる。
【００３７】
次に、ステップＳＴ４０３でセルの配置情報を順次取得しながら、以降の処理が行われる。ステップＳＴ４０５では、ステップＳＴ４０３で取得したセルの配置情報から、配置指定制約があるかどうかの判定を行う。配置指定に制約がなければ、ステップＳＴ４１３で最下面から積み上げるように配置していく。配置指定に制約があれば、ステップＳＴ４０７で側面に配置指定かどうかの判定を行う。側面に配置指定であればステップＳＴ４０９で側面に配置する。側面に配置指定でなければ、ステップＳＴ４１１で指定された位置に配置する。
【００３８】
次に、ステップＳＴ４１５で最後のセルかどうかの判定を行う。まだ配置していないセルが残っていれば、ステップＳＴ４１７で次のセルを読み込み、ステップＳＴ４０３に戻る。全てのセルの初期配置が終わるまでステップＳＴ４０３〜ステップＳＴ４１７までの処理が繰返して行われる。
【００３９】
ここで、セル（チップ）の配置について図７及び図８を用いて以下に説明する。
【００４０】
図７はチップを配置した場合の全体のイメージ図である。
【００４１】
図７のそれぞれの四角い箱はチップを示す。それらのチップが積み上げられるように配置されている様子を示しており、チップ５１の論理回路がのびる平面とチップ５３の論理回路がのびる平面は平行の関係という制限は受けない。また、チップ５１とチップ５５の関係は平行である。図中の破線部５７を拡大した場合のイメージ図を図８に示す。
【００４２】
図８に示すように、図７におけるチップ５１の論理回路は平面６１に沿って配置されており、図７におけるチップ５３の論理回路は平面６３に沿って配置されており、図７におけるチップ５５の論理回路は平面６５に沿って配置されている。平面６３を有するチップ５３は側面配置されており、平面６１及び平面６５との関係では平行でも同一平面でもない。
【００４３】
図７及び図８に示すように、本発明の実施の形態においては制限がない状態でチップを配置できるため、無駄な空間が減りシステム全体の体積を縮小することができる。また、３次元空間内で自由に配置できるため、実レイアウトの配線を短くすることもできる。さらに、同様の理由からチップ間の空間を調節することにより、効果的に冷却することも可能となる。
【００４４】
図６に戻って、全てのセルの初期配置が終了すると、ステップＳＴ４１９で各配置したセルの端子間の接続情報（端子間を接続する線の情報）を３次元ネットワークで構築し、ステップＳＴ４２１でセルと基板の端子間にも接続情報を構築する。ステップＳＴ４２３でセルが配置できたか否かの判定を行い、配置できていればそのまま初期配置処理を終了し、配置できていなければステップＳＴ４２５でエラー処理をして初期配置処理を終了する。
【００４５】
図９は、図５におけるステップＳＴ３０３の配置改善処理の一例を示す処理フロー図である。図６に示した初期配置処理が正常に行われると、この配置改善処理に処理が移行する。
【００４６】
まず、図１の配置改善処理部１１は、図９におけるステップＳＴ５０１で初期配置された状態でのコストを取得する。次にステップＳＴ５０３で配置改善繰返し数を取得する。この配置改善繰返し数は最大温度と最小温度の差を、温度の下げ幅で割った数とする。例えば、ｘ度（最大温度）から開始してｙ度（最小温度）まで配置改善を行う場合、ｔ度（温度の下げ幅）ずつ温度を下げて配置改善を行うとすると、配置改善繰返し数は（ｘ−ｙ）／ｔ回となる。開始時の最大温度、終了時の最小温度及び温度の下げ幅は実行時に指定される。そして、ステップＳＴ５０５で配置改善処理（ＳＷＡＰ）が行われ、ステップＳＴ５０７で配置改善処理（ＭＯＶＥ）が行われる。配置改善処理（ＳＷＡＰ）は図２における配置交換部２３が処理を行い、配置改善処理（ＭＯＶＥ）は図２における配置移動部２５が処理を行う。
【００４７】
ここで、ステップＳＴ５０５の配置改善処理（ＳＷＡＰ）について図１０及び図１１を参照して詳しく説明する。図１０及び図１１は、図９におけるステップＳＴ５０５の配置改善処理（ＳＷＡＰ）の一例を示す処理フロー図である。
【００４８】
配置改善処理（ＳＷＡＰ）は、配置ネットワークに従い、制約内で配置の改善を行う。まず、ステップＳＴ６０１で制約がない全てのセルの配置情報（インスタンス、以下inst_pとする）について処理が終了したか否かが判定される。全inst_pについて処理が終了していれば、この配置改善処理（ＳＷＡＰ）を終了する。全inst_pについて処理が終了していなければ未処理のinst_pを取得し、次のステップＳＴ６０３に進む。すなわち、ステップＳＴ６０１以降の処理は全てのセルについて行われる。また、制約があるセルについては、制約条件を満たす必要かある為移動ができず、配置改善処理（ＳＷＡＰ）の対象とはならない。
【００４９】
次に、ステップＳＴ６０３で、inst_p以外の全てのセルの配置情報（インスタンス、以下wkinst_pとする）について処理が終了したか否かが判定される。全wkinst_pについて処理が終了していればステップＳＴ６０１に戻り、次のinst_pを取得する。全wkinst_pについて処理が終了していなければステップＳＴ６０５の処理に進む。すなわち、取得したinst_pに対する全てのwinst_pについて処理が終了するまでステップＳＴ６０５以下の処理が繰り返して行われる。ステップＳＴ６０５では、取得したinst_pとwkinst_pは入れ替えが可能かどうかを判定する。入れ替えが可能でなければ、ステップＳＴ６０３に戻って次のwkinst_pを取得する。入れ替えが可能であれば次のステップＳＴ６０７で、取得したinst_pとwkinst_pの発熱量を比較する。そして、比較した結果をステップＳＴ６０９で判定し、inst_pとwkinst_pを入れ替えても改善しないのであれば、再びステップＳＴ６０３に戻って次のwkinst_pを取得する。inst_pとwkinst_pを入れ替えると改善するのであれば、ステップＳＴ６１１以降の処理に進む。
【００５０】
ステップＳＴ６１１では、仮にinst_pとwkinst_pの位置を入れ替える処理が行われ、ステップＳＴ６１３でエラーフラグにOFFを設定する。次に、ステップＳＴ６１５では、inst_pの全ての端子（以下pi_p）について処理が終了したか否かが判定される。全pi_pについて処理が終了していればステップＳＴ６２５の処理を行う。全pi_pについて処理が終了していなければ、pi_pを取得しステップＳＴ６１７の処理に進む。すなわち、inst_pに対する全てのpi_pの処理が終了するまで、ステップＳＴ６１５からステップＳＴ６２３までの処理が繰り返して行われる。
【００５１】
ステップＳＴ６１７では、取得したpi_pのネットと接近させたくないネット（以下net_p）が存在するか否かの判定を行う。存在しないのであれば、何も処理する必要がないため、ステップＳＴ６１５に戻って次の端子pi_pを取得する。存在するのであれば、ステップＳＴ６１９でpi_pとnet_pの仮のボンディングワイヤを作成する。そして、ステップＳＴ６２１で、pi_pとnet_pの仮のボンディングワイヤの２線分間の距離が一定以上あるかどうかの判定を行う。距離が一定以上なければ、ステップＳＴ６１５に戻って次の端子pi_pを取得する。一定以上あれば、次のステップＳＴ６２３でエラーフラグにONが設定される。
【００５２】
inst_pの全ての端子pi_pについての処理が終了すると、ステップＳＴ６２５でエラーフラグがONか否かが判定される。エラーフラグがONであればステップＳＴ６２７で、ステップＳＴ６１１において仮に入れ替えたinst_pとwkinst_pを元に戻し、エラーフラグにOFFを設定して、図１１のステップＳＴ６２９の処理に進む。エラーフラグがONでなければそのままステップＳＴ６２９の処理に進む。
【００５３】
次に図１１における、ステップＳＴ６２９〜ＳＴ６４１まで、wkinst_pの全ての端子について上記のinst_pの全ての端子に対して行った処理（図１０のステップＳＴ６１５からステップＳＴ６２７まで）と同様の処理が行われる。wkinst_pに対する処理が終了すると、ステップＳＴ６４３でinst_pとwkinst_pの配置情報を更新する。そして、図１０のステップＳＴ６０１に戻り、次のinst_pがなければ処理を終了し、次のinst_pがあれば取得してステップＳＴ６０３からの処理が繰り返して行われる。全てのセルについて処理が行われると配置改善処理（ＳＷＡＰ）を終了し、図９におけるステップＳＴ５０７の配置改善処理（ＭＯＶＥ）に処理を移行する。
【００５４】
次に、図９におけるステップＳＴ５０７の配置改善処理（ＭＯＶＥ）について図１２を参照して詳しく説明する。図１２は、図９におけるステップＳＴ５０７の配置改善処理（ＭＯＶＥ）の一例を示す処理フロー図である。
【００５５】
配置改善処理（ＭＯＶＥ）では、図２におけるコスト計算部２７で計算された結果に基づいて配置の移動がなされる。まず、ステップＳＴ７０１で、配置改善処理（ＳＷＡＰ）の場合と同様に制約がないセルのみの配置情報（インスタンス、以下inst_p）を順次取得する。次にステップＳＴ７０３でinst_pの情報を別の領域（以下init_info_t）に退避しておく。そして、次のステップＳＴ７０５でインスタンス移動処理を行う。このインスタンス移動処理について、図１３を用いてその一例を後述する。
【００５６】
ステップＳＴ７０５のインスタンス移動処理の後、ステップＳＴ７０７で、セルを配置できたかどうかの判定を行う。配置できればステップＳＴ７０９で最良コストを設定する。配置できなければステップＳＴ７１１で、inst_pの内容がステップＳＴ７０５のインスタンス移動処理の中で更新されている為、退避していたinit_info_tをinst_pにコピーして配置情報を元の情報に戻す。そして、ステップＳＴ７１３で最後のセルかどうかの判定を行い、最後のセルでなければ、ステップＳＴ７０１に戻って処理を繰り返す。最後のセルであれば配置改善処理（ＭＯＶＥ）を終了して、次の図９におけるステップＳＴ５０９の処理に進む。
【００５７】
ここで、図１２におけるステップＳＴ７０５のインスタンス移動処理について図１３を参照して詳しく説明する。図１３は、図１２におけるステップＳＴ７０５のインスタンス移動処理の一例を示す処理フロー図である。
【００５８】
まず、ステップＳＴ８０１でセルの座標及び角度をランダムに取得し、図１２におけるステップＳＴ７０１で取得したセルの配置情報であるinst_pに設定する。次にステップＳＴ８０３でinst_pが制約条件を満たすかどうかの判定を行う。制約条件を満たさなければインスタンス移動処理を終了する。制約条件を満たせば、次のステップＳＴ８０５の配置コスト取得処理に進む。
【００５９】
ここで、図１３におけるステップＳＴ８０５の配置コスト取得処理について図１４を参照して詳しく説明する。図１４は、図１３におけるステップＳＴ８０５の配置コスト取得処理の一例を示す処理フロー図である。
【００６０】
図１４を参照して、ステップＳＴ９０１でトップセル内の全てのネットについて仮想的にボンディングを行う。そして、次のステップＳＴ９０３でワイヤ結線が可能か否かを判定する。可能であればステップＳＴ９０５でワイヤ長の計算を行い、可能でなければステップＳＴ９０７で、この配置でのコストに最大値を設定する。次に、ステップＳＴ９０９で装置全体の投射面積を計算する。この時、装置全体の体積を最小にするという観点から、１方向以上、好ましくは複数方向、さらに好ましくはお互いに垂直方向にある３方向からの投射面積を計算し、配置改善を行う毎に面積が小さい方を良い結果と判断し、コストを決定する。複数方向からの投射面積を考慮することにより、効果的に装置全体の体積を小さくすることができる。そして、ステップＳＴ９１１で、トップセル内のセルが配置された座標の温度を計算する。以上の処理で取得したワイヤ長、投射面積及び温度をステップＳＴ９１３でパラメータにセットして配置コスト取得処理を終了する。
【００６１】
ここで、装置全体の体積を小さくするための計算方法の一例を説明する。まず、Ｘ、Ｙ及びＺの３方向からの投射面積（xarea、yarea、zarea）を算出後、各々の投射面積の積算（xarea×yarea×zarea）を求める。この結果が最小となるものを、体積を最小にするという観点から採用する。または、各々の投射面積の平均（xarea＋yarea＋zarea/３）を求め、その結果が最小となるものを採用する。この２つの計算方法の選択はプログラムの実行モードによってユーザで選択できるようにしてもよい。
【００６２】
図１３に戻って、ステップＳＴ８０５の配置コスト取得処理が終わると、その配置コストの計算結果を踏まえて、ステップＳＴ８０７で、現在設定されているコストとステップＳＴ８０１で取得したinst_pのコストの計算結果を比較する。そして、ステップＳＴ８０７で比較をした結果inst_pのコストが最適であるかどうかの判定がステップＳＴ８０９で行われる。最適でなければ、そのままインスタンス移動処理を終了する。最適であれば、ステップＳＴ８１１で状態を正常状態（配置できた）に設定してインスタンス移動処理を終了する。
【００６３】
図９に戻って、ここまでの処理が、ステップＳＴ５０７の配置改善処理（ＭＯＶＥ）までである。ステップＳＴ５０７の配置改善処理（ＭＯＶＥ）が終了するとステップＳＴ５０９に進む。ステップＳＴ５０９では、配置改善によって得られたスケジュール値に応じて温度を設定する。
【００６４】
次に、ステップＳＴ５１１で、現時点で行った配置改善の回数と、ステップＳＴ５０３で取得した配置改善繰返し数を比較して、ステップＳＴ５０３で取得した配置改善繰返し数が大きければ、ステップＳＴ５０５に戻って再び配置改善を行う。現時点で行った配置改善の回数が、ステップＳＴ５０３で取得した配置改善繰返し数を上回った場合、ステップＳＴ５１３に進む。ステップＳＴ５１３ではＳ・Ａによる配置改善の対象となっている温度（以下simtemp）とＳ・Ａの最小温度（以下mintemp）を比較する。simtempのほうが、mintempより高ければ、ステップＳＴ５１１と同様にステップＳＴ５０５に戻って再び配置改善を行う。simtempのほうがmintempより低ければ、そのまま処理配置改善処理を終了する。すなわち、simtempがmintempよりも低い間に、少なくともステップＳＴ５０３で取得した配置改善繰返し数以上の配置改善が繰り返されることとなる。
【００６５】
以上のような処理により、図１の半導体装置設計支援装置１は端子間の接続状況、チップの配置体積及び発熱量を考慮して、チップを自動配置することができる。
【００６６】
なお、チップの配置変換に関してこれまでの処理は、１つのシステム内でのチップの配置変換を想定した記載であるが、システム内に制限せずにシステム間でチップの配置変換を行ってもよい。例えば以下に示す技術は、システム間を簡易に接続して多機能化できる技術に関するものであり、このような技術を用いてシステム間でのチップの配置変換も可能とすることで、本発明の半導体装置設計支援装置を有効的に活用することができる。
【００６７】
上記に示した、システム間を容易に接続して多機能化できる技術について図１５及び図１６を用いて説明する。図１５は、低温焼成多層セラミック基板を連結させた外観斜視図を示す。
【００６８】
図１５に示す低温焼成多層セラミック基板は、ある一軸（Ｘ軸方向）及びその一軸に直行する他軸（Ｙ軸方向）への複数の基板本体７１を連結する構成となっている。このＸ軸及びＹ軸の交点に位置する基板本体７３は、方形状基板の相隣る各二つの側端面に凹部７５及び凸部７７を形成し、この凹部７５内に電極を形成すると共に凸部７７の外側にも電極を形成して構成される。
【００６９】
この基板本体７３を中心としてＸ軸方向及びＹ軸方向へ図１５のように順次連結して展開することができる。このように複数の基板本体７１が連結されることにより、大規模な多機能基板を簡易且つ確実に形成することができる。
【００７０】
また、図１６は、低温焼成多層セラミック基板を他の形態で連結させた図である。図１６（Ａ）は、低温焼成多層セラミック基板を他の形態で連結させた場合の外観斜視図であり、図１６（Ｂ）は、低温焼成多層セラミック基板を他の形態で連結させた場合の断面図である。図１６（Ａ）において、低温焼成多層セラミック基板は、図１５における低温焼成多層セラミック基板の凹部７５とは異なり、短冊状の導電材からなる電極８１を段差上の平面部に露出させる段部８３で構成され、この電極８１が、図１６（Ｂ）に示す下層のセラミック基板８５に形成される配線パターン８７から延出した導電材として形成される。
【００７１】
このように形成された低温焼成多層セラミック基板の基板本体８９を他の低温焼成多層セラミック基板の基板本体９１に接続する場合は、基板本体８９の段部８３と基板本体９１の両側突出部９３（９７に相当）を係合させ、段部８３の平面部及び起立部に形成される電極８１と突出部９３の下面及び内側面に形成される電極９５を接触させて接続する。基板本体８９と同一形状の他の基板本体を接続する場合も同様の接続を行うことで、多層の高機能基板を得ることができる。
【００７２】
これら図１５及び図１６に示されるような半導体装置を設計する際に、本発明の半導体装置設計支援装置を用いることで、基板本体の間でのチップの配置変換が可能となり、より高機能で高密度のパッケージの設計が可能となる。また、温度分布を考慮することにより温度分布が均一な設計も可能となる。
【００７３】
さらに、本発明の半導体装置設計支援装置を用いれば、図１５及び図１６に示されるような半導体装置の設計に限らず、基板本体を使用せずに直接半導体同士を３次元的に接続するような設計にも応用することができる。
【００７４】
なお、図７及び図８において、本発明の実施の形態では簡単のため平面６３と平面６１及び平面６５との関係を垂直関係で示したが、必ずしも垂直である必要はない。
【００７５】
また、本発明の実施の形態に係る半導体装置では、各チップが有する論理回路の配列方向に沿った平面の関係が同一平面及び平行関係という制限から解除されたことを特徴とするが、同一平面及び平行関係であっても構わない。
【００７６】
さらに、本発明の実施の形態においては、温度分布ファイルを用いて温度分布の適正化を図ったが、実際にリアルタイムに温度を測定しながら温度分布の適正化を行ってもよい。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施の形態に係る半導体装置設計支援の構成を模式的に示したブロック図である。
【図２】図１におけるチップ配置変更処理部７の構成の詳細を模式的に示したブロック図である。
【図３】本発明の実施の形態に係る半導体装置設計支援装置のメイン処理の処理フロー図である。
【図４】図３におけるステップＳＴ１０３の温度分布ファイル読込処理の一例を示す処理フロー図である。
【図５】図３におけるステップＳＴ１０５のチップ配置変更処理の一例を示す処理フロー図である。
【図６】図５におけるステップＳＴ３０１の初期配置処理の一例を示す処理フロー図である。
【図７】チップを配置した場合の全体のイメージ図である。
【図８】図７における破線部５７を拡大した場合のイメージ図である。
【図９】図５におけるステップＳＴ３０３の配置改善処理の一例を示す処理フロー図である。
【図１０】図９におけるステップＳＴ５０５の配置改善処理（ＳＷＡＰ）の一例を示す第一の処理フロー図である。
【図１１】図９におけるステップＳＴ５０５の配置改善処理（ＳＷＡＰ）の一例を示す第二の処理フロー図である。
【図１２】図９におけるステップＳＴ５０７の配置改善処理（ＭＯＶＥ）の一例を示す処理フロー図である。
【図１３】図１２におけるステップＳＴ７０５のインスタンス移動処理の一例を示す処理フロー図である。
【図１４】図１３におけるステップＳＴ８０５の配置コスト取得処理の一例を示す処理フロー図である。
【図１５】低温焼成多層セラミック基板を連結させた外観斜視図である。
【図１６】低温焼成多層セラミック基板を他の形態で連結させた図である。
【符号の説明】
【００７８】
１  半導体装置設計支援装置
７  チップ配置変更処理部
【図１】
0004668057.tif 000002
【図２】
0004668057.tif 000003
【図３】
0004668057.tif 000004
【図４】
0004668057.tif 000005
【図５】
0004668057.tif 000006
【図６】
0004668057.tif 000007
【図７】
0004668057.tif 000008
【図８】
0004668057.tif 000009
【図９】
0004668057.tif 000010
【図１０】
0004668057.tif 000011
【図１１】
0004668057.tif 000012
【図１２】
0004668057.tif 000013
【図１３】
0004668057.tif 000014
【図１４】
0004668057.tif 000015
【図１５】
0004668057.tif 000016
【図１６】
0004668057.tif 000017