(57)【要約】【課題】複数のプリント基板を積層するプリント基板設計において、プリント基板間の接続本数が最小となるようにプリント基板の割付け順序を決定するプリント基板設計装置を提供すること。【解決手段】グラフ生成部２２は、部品を含んだ機能ブロックを頂点とし、異なる機能ブロック間の接続を枝とし、機能ブロック間の接続本数を枝の重みとするグラフを生成する。グラフ検索部２３は、外部とのインタフェースとなる機能ブロックを検索開始の頂点とし、グラフ生成部２２によって生成されたグラフを参照して未検索で最大の重みを持つ頂点を順次検索する。そして、割付け順序検定部２４は、グラフ検索部２３による検索順序を、プリント基板の積層時における層割付け順序とする。したがって、プリント基板間の接続本数が最小となるようにプリント基板の割付け順序を決定することが可能となる。【選択図】        図３
2005018258.tif 000002
【特許請求の範囲】
【請求項１】
部品を実装した基板をはんだ電極を介して積層するプリント基板の設計を行なうプリント基板設計装置であって、
部品を含んだ機能ブロックを頂点とし、異なる機能ブロック間の接続を枝とし、機能ブロック間の接続本数を枝の重みとするグラフを生成するためのグラフ生成手段と、
前記グラフ生成手段によって生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するためのグラフ検索手段と、
前記グラフ検索手段による検索順序を、プリント基板の積層時における層割付け順序とするための割付け順序決定手段とを含む、プリント基板設計装置。
【請求項２】
前記グラフ検索手段は、外部とのインタフェースとなる機能ブロックを検索開始の頂点とし、前記グラフ生成手段によって生成されたグラフを参照して未検索で最大の重みを持つ頂点を順次検索する、請求項１記載のプリント基板設計装置。
【請求項３】
前記プリント基板設計装置はさらに、各機能ブロックに含まれる部品の実装面積の総和を求め、該実装面積の総和が基準値以下となるように部品を移動して機能ブロックを変更するための機能ブロック変更手段を含む、請求項１または２記載のプリント基板設計装置。
【請求項４】
部品を実装した基板をはんだ電極を介して積層するプリント基板の設計方法であって、
部品を含んだ機能ブロックを頂点とし、異なる機能ブロック間の接続を枝とし、機能ブロック間の接続本数を枝の重みとするグラフを生成するステップと、
前記生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するステップと、
前記検索による検索順序を、プリント基板の積層時における層割付け順序とするステップとを含む、プリント基板設計方法。
【請求項５】
部品を実装した基板をはんだ電極を介して積層するプリント基板の設計方法をコンピュータに実行させるためのコンピュータ・プログラムであって、
前記プリント基板設計方法は、部品を含んだ機能ブロックを頂点とし、異なる機能ブロック間の接続を枝とし、機能ブロック間の接続本数を枝の重みとするグラフを生成するステップと、
前記生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するステップと、
前記検索による検索順序を、プリント基板の積層時における層割付け順序とするステップとを含む、コンピュータ・プログラム。
【請求項６】
部品を実装した基板をはんだ電極を介して積層するプリント基板の設計方法をコンピュータに実行させるためのプログラムを記録したコンピュータで読取り可能な記録媒体であって、
前記プリント基板設計方法は、部品を含んだ機能ブロックを頂点とし、異なる機能ブロック間の接続を枝とし、機能ブロック間の接続本数を枝の重みとするグラフを生成するステップと、
前記生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するステップと、
前記検索による検索順序を、プリント基板の積層時における層割付け順序とするステップとを含む、プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路を構成する半導体チップおよび受動部品を実装したプリント基板を積層構造に実装する技術に関し、特に、機能ブロックを各プリント基板に割付ける順序を自動的に決定するプリント基板設計装置、その方法、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
近年、携帯電話や携帯情報端末が急速に普及しているが、その理由の１つとして機器の飛躍的な小型化を挙げることができる。その背景として、従来複数のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）で構成されていたシステムや機能を１つの半導体素子に集約するＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）化の技術の進歩がある。
【０００３】
一方、必要な複数の半導体素子を組合わせ、プリント基板に直接搭載して１パッケージ化したＳＩＰ（Ｓｙｓｔｅｍ  Ｉｎ  Ｐａｃｋａｇｅ）が注目を集めつつある。中でも、大規模な論理回路の実装面積を小さくする手法として、半導体素子を実装した複数のプリント基板を、はんだ電極を介して積層する手法を挙げることができる。
【０００４】
図１７は、はんだ電極を介してプリント基板を積層する手法を説明するための図である。図１７に示すように、配線パターンを設けた回路基板１３１に電子部品を実装し、はんだ電極１３４を位置合わせして回路基板１３２を積層する。そして、はんだ電極１３４を介して回路基板１３２の上にさらに回路基板１３３を積層する。
【０００５】
この手法によれば、実装面積を小さくするだけでなく、プリント基板を介して半導体チップを接続するため、アーキテクチャの変更の際に、半導体チップの設計変更が不要となり、開発期間が短くなるという効果がある。
【０００６】
また、プリント基板を介さずに半導体チップを積層する方法として、半導体集積回路を分割して、複数チップ上にフリップチップ実装によって半導体集積回路を積層し、これら複数のチップをバンプによって配線する、チップオンチップの設計手法がある。この手法によれば、半導体チップ自身の設計を最適化するため、半導体チップの小型化が行なえるという効果がある。これに関連する技術として、特開２０００−１１４３８６号公報に開示された発明がある。
【０００７】
図１８は、特開２０００−１１４３８６号公報に開示された半導体集積回路におけるチップオンチップの構造を示す断面図である。この半導体集積回路は、ベースチップ１４１と、ベースチップ１４１上にフリップして実装される第２チップ１４２と、ベースチップ１４１と第２チップ１４２とを接続するバンプ１４３とを含む。ベースチップ１４１および第２チップ１４２を一括して配置配線することによって、ベースチップ１４１および第２チップ１４２への最適な回路分割と配線工程でバンプ１４３の最適な位置とを決定することで、集積度向上を可能にするものである。
【０００８】
ベースチップ１４１と第２チップ１４２とを別々のプロセスで製造するため、たとえば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の専用プロセスで第２チップ１４２を製造し、ベースチップ１４１をＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）プロセスで製造することによって、ＤＲＡＭとＣＭＯＳとの混在プロセスを使用することなく、低コストで高性能なＤＲＡＭを搭載したチップを設計することができる。したがって、異なる複数のプロセスを用いたシステムを、容易に設計することが可能となる。
【０００９】
図１９（ａ）は、特開２０００−１１４３８６号公報に開示された半導体集積回路の設計手順を説明するためのフローチャートである。まず、論理回路設計が行なわれ（Ｓ１６１）、設計された回路の分割が行なわれる（Ｓ１６２）。分割された論理回路が搭載される基板のはんだ電極の位置決めが行なわれる（Ｓ１６３）。そして、ベース基板の配置配線が行なわれる（Ｓ１７４）と共に、第２基板の配置配線が行なわれる（Ｓ１７５）。ステップＳ１７４およびＳ１７５は、同時に行なうことが可能である。
【００１０】
図１９（ｂ）は、特開２０００−１１４３８６号公報に開示された半導体集積回路の他の設計手順を説明するためのフローチャートである。まず、論理回路設計が行なわれ（Ｓ１６１）、設計された回路の分割が行なわれる（Ｓ１６２）。次に、分割された論理回路が搭載される基板のうち、第２基板の配置配線が行なわれ（Ｓ１６５）、その第２基板のはんだ電極の位置決めが行なわれる（Ｓ１６３）。そして、はんだ電極の位置に合わせてベース基板の配置配線が行なわれる（Ｓ１６４）。
【００１１】
【特許文献１】
特開２０００−１１４３８６号公報
【００１２】
【発明が解決しようとする課題】
上述した図１９（ａ）および図１９（ｂ）に示す設計手順によれば、ベース回路をベース基板に実装し、それ以外の回路を第２基板に実装するという簡単な設計方法であるため、ＳＩＰが大規模化した場合には設計が不可能になるといった問題点がある。また、不適切な層割付けを行なうと基板間の信号線の数が増え、冗長配線が増えることになって、信号遅延やノイズの発生原因ともなる。さらには、はんだ電極に割付ける電源／グランド数が減少するため、動作が不安定になるといった問題点もある。
【００１３】
また、プリント基板を介さずに半導体チップを積層するため、この技術をプリント基板を介して半導体チップを積層する手法に適用することはできない。
【００１４】
本発明は、上記問題点を解決するためになされたものであり、第１の目的は、複数のプリント基板を積層するプリント基板設計において、プリント基板間の接続本数が最小となるようにプリント基板の割付け順序を決定するプリント基板設計装置、その方法、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体を提供することである。
【００１５】
第２の目的は、複数のプリント基板を積層するプリント基板設計において、プリント基板の小型化を図ることが可能なプリント基板設計装置を提供することである。
【００１６】
【課題を解決するための手段】
本発明のある局面に従えば、部品を実装した基板をはんだ電極を介して積層するプリント基板の設計を行なうプリント基板設計装置であって、部品を含んだ機能ブロックを頂点とし、異なる機能ブロック間の接続を枝とし、機能ブロック間の接続本数を枝の重みとするグラフを生成するためのグラフ生成手段と、グラフ生成手段によって生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するためのグラフ検索手段と、グラフ検索手段による検索順序を、プリント基板の積層時における層割付け順序とするための割付け順序決定手段とを含む。
【００１７】
グラフ検索手段が、グラフ生成手段によって生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するので、プリント基板間の接続本数が最小となるようにプリント基板の割付け順序を決定することが可能となる。
【００１８】
好ましくは、グラフ検索手段は、外部とのインタフェースとなる機能ブロックを検索開始の頂点とし、グラフ生成手段によって生成されたグラフを参照して未検索で最大の重みを持つ頂点を順次検索する。
【００１９】
したがって、プリント基板の割付け順序を適切に決定することが可能となる。好ましくは、プリント基板設計装置はさらに、各機能ブロックに含まれる部品の実装面積の総和を求め、実装面積の総和が基準値以下となるように部品を移動して機能ブロックを変更するための機能ブロック変更手段を含む。
【００２０】
したがって、プリント基板の小型化を図ることが可能となる。
本発明の別の局面に従えば、部品を実装した基板をはんだ電極を介して積層するプリント基板の設計方法であって、部品を含んだ機能ブロックを頂点とし、異なる機能ブロック間の接続を枝とし、機能ブロック間の接続本数を枝の重みとするグラフを生成するステップと、生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するステップと、検索による検索順序を、プリント基板の積層時における層割付け順序とするステップとを含む。
【００２１】
生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するので、プリント基板間の接続本数が最小となるようにプリント基板の割付け順序を決定することが可能となる。
【００２２】
本発明のさらに別の局面に従えば、部品を実装した基板をはんだ電極を介して積層するプリント基板の設計方法をコンピュータに実行させるためのコンピュータ・プログラムであって、プリント基板設計方法は、部品を含んだ機能ブロックを頂点とし、異なる機能ブロック間の接続を枝とし、機能ブロック間の接続本数を枝の重みとするグラフを生成するステップと、生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するステップと、検索による検索順序を、プリント基板の積層時における層割付け順序とするステップとを含む。
【００２３】
生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するので、プリント基板間の接続本数が最小となるようにプリント基板の割付け順序を決定することが可能となる。
【００２４】
本発明のさらに別の局面に従えば、部品を実装した基板をはんだ電極を介して積層するプリント基板の設計方法をコンピュータに実行させるためのプログラムを記録したコンピュータで読取り可能な記録媒体であって、プリント基板設計方法は、部品を含んだ機能ブロックを頂点とし、異なる機能ブロック間の接続を枝とし、機能ブロック間の接続本数を枝の重みとするグラフを生成するステップと、生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するステップと、検索による検索順序を、プリント基板の積層時における層割付け順序とするステップとを含む。
【００２５】
生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するので、プリント基板間の接続本数が最小となるようにプリント基板の割付け順序を決定することが可能となる。
【００２６】
【発明の実施の形態】
（第１の実施の形態）
図１は、本発明の第１の実施の形態におけるプリント基板の設計手順を説明するためのフローチャートである。まず、まず、論理回路設計が行なわれ（Ｓ１６１）、設計された回路の分割が行なわれる（Ｓ１６２）。次に、分割された論理回路の層割付を行ない（Ｓ１０）、それぞれの論理回路が搭載される基板のはんだ電極の位置決めが行なわれる（Ｓ１６３）。そして、第１〜第ｎ基板の配置配線が行なわれる（Ｓ１１〜Ｓ１３）。なお、ステップＳ１１〜Ｓ１３は、同時に行なうことが可能である。本発明の第１の実施の形態におけるプリント基板設計装置は、主としてステップＳ１０に関するものである。
【００２７】
図２は、本発明の第１の実施の形態におけるプリント基板設計装置の構成を示すブロック図である。このプリント基板設計装置は、コンピュータ本体１、ディスプレイ装置２、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）４が装着されるＦＤドライブ３、キーボード５、マウス６、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８が装着されるＣＤ−ＲＯＭ装置７、およびネットワーク通信装置９を含む。
【００２８】
プリント基板設計プログラムは、ＦＤ４またはＣＤ−ＲＯＭ８等の記録媒体によって供給される。プリント基板設計プログラムがコンピュータ本体１によって実行されることによって、プリント基板の設計が行なわれる。また、プリント基板設計プログラムは他のコンピュータよりネットワーク通信装置９を経由し、コンピュータ本体１に供給されてもよい。
【００２９】
図２に示すコンピュータ本体１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２およびハードディスク１３を含む。ＣＰＵ１０は、ディスプレイ装置２、ＦＤドライブ３、キーボード５、マウス６、ＣＤ−ＲＯＭ装置７、ネットワーク通信装置９、ＲＯＭ１１、ＲＡＭ１２またはハードディスク１３との間でデータを入出力しながら処理を行う。
【００３０】
ＦＤ４またはＣＤ−ＲＯＭ８に記録されたプリント基板設計プログラムは、ＣＰＵ１０によりＦＤドライブ３またはＣＤ−ＲＯＭ装置７を介してハードディスク１３に格納される。ＣＰＵ１０は、ハードディスク１３から適宜プリント基板設計プログラムをＲＡＭ１２にロードして実行することによって、プリント基板の設計が行なわれる。
【００３１】
図３は、本発明の第１の実施の形態におけるプリント基板設計装置の機能的構成を示すブロック図である。このプリント基板設計装置は、ネットリスト情報および各部品の機能ブロック情報を入力する情報入力部２１と、機能ブロック名を頂点とするグラフを生成するグラフ生成部２２と、グラフ生成部２２によって生成されたグラフを検索するグラフ検索部２３と、グラフ検索部２３による検索結果に応じて、機能ブロックを積層構造のプリント基板の各層に割付ける順序を決定する割付け順序決定部２４とを含む。
【００３２】
図４は、本発明の第１の実施の形態におけるプリント基板設計装置の処理手順を説明するためのフローチャートである。最初に、処理手順を大まかに説明した後、具体例を挙げて処理手順を詳細に説明する。まず、情報入力部２１は、回路図入力システムで入力されたネットリスト情報および各部品の機能ブロック情報を入力する（Ｓ１０１）。
【００３３】
図５は、ネットリスト情報の一例を示す図である。ネットリスト情報とは、図５に示すように、ネット名称ごとに、信号線または電源／グランドを識別するための属性情報と、各ネットを構成している部品名称およびピン名称とをリスト上に記載したものである。
【００３４】
図６は、機能ブロック情報の一例を示す図である。機能ブロック情報とは、図６に示すように、部品名称と、その部品が属する機能ブロック名称とをテーブル上に記載したものである。
【００３５】
次に、グラフ生成部２２は、情報入力部２１に入力されたネットリスト情報と、機能ブロック情報とを参照して、ネットリストの各ネットを構成している部品を求め、その部品が属する機能ブロック名を求める。そして、同一ネット名称内に異なる機能ブロック名が存在する場合には、機能ブロック名を頂点とするグラフを生成し、その枝の重みを増加させる（Ｓ１０２）。
【００３６】
次に、グラフ検索部２３は、グラフ生成部２２によって生成された重み付きグラフを検索するにあたり、検索する頂点の番号を格納するスタックポインタＳＰと、検索した頂点の個数を示すＩをそれぞれ０に初期化する（Ｓ１０３）。
【００３７】
次に、グラフ検索部２３は、外部とのインタフェースとなる機能ブロックＦＵＮＣ（０）を、配列ＳＴＡＣＫ（ＳＰ）およびＰＡＴＨ（ＳＰ）のそれぞれに格納する（Ｓ１０４）。ここで、ＳＴＡＣＫは検索の状態を記憶する配列を示し、ＰＡＴＨは割付け状態を記憶する配列を示す。
【００３８】
次に、グラフ検索部２３は、頂点を表わす変数ｎｏｄｅに、ＳＴＡＣＫ（ＳＰ）を代入する（Ｓ１０５）。そして、ｎｏｄｅによって表わされる頂点に接続する頂点で、未検索の頂点の中に、ＭＡＸＡＤＪ（ｎｏｄｅ）が存在するか否かを判定する（Ｓ１０６）。ここで、ＭＡＸＡＤＪ（ｎｏｄｅ）は、ｎｏｄｅによって表わされる頂点と接続関係がある頂点の中で、最大の重みを持つ頂点を求める関数を示している。
【００３９】
ＭＡＸＡＤＪ（ｎｏｄｅ）がない場合には（Ｓ１０６，Ｎｏ）、ＳＰを１だけデクリメントし（Ｓ１０７）、ステップＳ１０５に戻って以降の処理を繰返す。
【００４０】
また、ＭＡＸＡＤＪ（ｎｏｄｅ）がある場合には（Ｓ１０６，Ｙｅｓ）、ｎｏｄｅにＭＡＸＡＤＪ（ｎｏｄｅ）の値を代入する（Ｓ１０８）。そして、スタックポインタＳＰと検索した頂点の個数Ｉとを、それぞれ１だけインクリメントする（Ｓ１０９）。
【００４１】
次に、グラフ検索部２３は、ＳＴＡＣＫ（ＳＰ）およびＰＡＴＨ（Ｉ）に、ｎｏｄｅを代入する（Ｓ１１０）。割付け順序決定部２４は、ＰＡＴＨに格納された順番に、機能ブロックを積層構造のプリント基板の各層に割付ける。
【００４２】
次に、検索した頂点の個数Ｉと機能ブロック数とが等しいか否かを判定する（Ｓ１１１）。検索した頂点の個数Ｉと機能ブロック数とが等しければ（Ｓ１１１，Ｙｅｓ）、処理を終了する。また、検索した頂点の個数と機能ブロック数とが等しくなければ（Ｓ１１１，Ｎｏ）、ステップＳ１０６に戻って以降の処理を繰返す。
【００４３】
このように、外部インタフェースを有する機能ブロックを、検索を開始する頂点とし、未検索の最大重みを持つ頂点を逐次検索することによって得られるＰＡＴＨに格納された順番に、機能ブロックを積層構造のプリント基板の各層に割付けることで、積層構造のプリント基板間の接続数を最小化する。
【００４４】
図７は、グラフ検索部２３によって検索される機能ブロックのデータ構造の一例を示す図である。図７に示すように、ノード名称毎に、検索が行なわれたか否かを示す検索フラグと、隣接ノード名称と、そのノードとの接続数とが格納されている。
【００４５】
図８は、部品の接続関係と、機能ブロック情報とを示す図である。図８において、機能ブロックＦＵＮＣ０にピンなどの外部インタフェースＰ１が含まれる。機能ブロックＦＵＮＣ１に半導体チップＩＣ１と、受動部品Ｒ１〜Ｒ３およびＣ１とが含まれる。機能ブロックＦＵＮＣ２に半導体チップＩＣ２およびＩＣ３が含まれる。機能ブロックＦＵＮＣ３に半導体チップＩＣ４と、受動部品Ｌ１およびＬ２とが含まれる。
【００４６】
次に、図８に示す部品の接続関係および機能ブロック情報を参照しながら、図４に示すフローチャートの説明を行なう。まず、情報入力部２１は、図８に示す回路図に対応するネットリスト情報と、機能ブロック情報とを入力する（Ｓ１０１）。グラフ生成部２２は、情報入力部２１に入力されたネットリスト情報および機能ブロック情報とを参照して、重み付きグラフを生成する（Ｓ１０２）。
【００４７】
図９（ａ）は、図８に示す回路図に対応する重み付きグラフを示す図である。図９（ａ）に示すように、機能ブロック名称を頂点とし、機能ブロック間に接続される枝とそれに付される数字によって、機能ブロック間の接続とその接続本数とを示している。たとえば、ＦＵＮＣ０に接続しているのは、ＦＵＮＣ１とＦＵＮＣ２とであり、それぞれの接続本数が４と１とであることを示している。
【００４８】
次に、グラフ検索部２３は、スタックポインタＳＰおよび検索した頂点の個数Ｉをそれぞれ０に初期化し（Ｓ１０３）、外部インタフェースＰ１を有する機能ブロックＦＵＮＣ０を、配列ＳＴＡＣＫ（ＳＰ）およびＰＡＴＨ（ＳＰ）のそれぞれに代入する（Ｓ１０４）。
【００４９】
次に、グラフ検索部２３は、ｎｏｄｅ＝ＦＵＮＣ０とし（Ｓ１０５）、ＦＵＮＣ０に接続し、未検索の重みが最大の頂点が存在するか否かを判定する（Ｓ１０６）。図９（ａ）に示すように、ＦＵＮＣ０に隣接し、未検索の頂点としてＦＵＮＣ１とＦＵＮＣ２とが存在するが、最大の重みを持つ頂点はＦＵＮＣ１であるので、ＭＡＸＡＤＪ（ｎｏｄｅ）＝ＦＵＮＣ１となる。
【００５０】
次に、ｎｏｄｅ＝ＦＵＮＣ１となり（Ｓ１０８）、Ｉ＝１，ＳＰ＝１となる（Ｓ１０９）。そして、ＳＴＡＣＫ（１）＝ＦＵＮＣ１，ＰＡＴＨ（１）＝ＦＵＮＣ１となる（Ｓ１１０）。
【００５１】
（Ｉ＝１）≠（機能ブロック数−１＝３）であるので（Ｓ１１１，Ｎｏ）、ステップＳ１０６に戻ってＦＵＮＣ１に隣接し、未検索の最大の重みを持つ頂点があるか否かが判定される。図９（ｂ）に示すように、ＦＵＮＣ１に隣接し、未検索の頂点としてＦＵＮＣ２とＦＵＮＣ３とが存在するが、最大の重みを持つ頂点はＦＵＮＣ２であるので、ＭＡＸＡＤＪ（ｎｏｄｅ）＝ＦＵＮＣ２となる。
【００５２】
次に、ｎｏｄｅ＝ＦＵＮＣ２となり（Ｓ１０８）、Ｉ＝２，ＳＰ＝２となる（Ｓ１０９）。そして、ＳＴＡＣＫ（２）＝ＦＵＮＣ２，ＰＡＴＨ（２）＝ＦＵＮＣ２となる（Ｓ１１０）。
【００５３】
（Ｉ＝２）≠（機能ブロック数−１＝３）であるので（Ｓ１１１，Ｎｏ）、ステップＳ１０６に戻ってＦＵＮＣ２に隣接し、未検索の最大の重みを持つ頂点があるか否かが判定される。図９（ｃ）に示すように、ＦＵＮＣ２に隣接し、未検索の頂点としてＦＵＮＣ３が存在するので、ＭＡＸＡＤＪ（ｎｏｄｅ）＝ＦＵＮＣ３となる。
【００５４】
次に、ｎｏｄｅ＝ＦＵＮＣ３となり（Ｓ１０８）、Ｉ＝３，ＳＰ＝３となる（Ｓ１０９）。そして、ＳＴＡＣＫ（３）＝ＦＵＮＣ３，ＰＡＴＨ（３）＝ＦＵＮＣ３となる（Ｓ１１０）。
【００５５】
（Ｉ＝３）≠（機能ブロック数−１＝３）であるので（Ｓ１１１，Ｙｅｓ）、処理を終了する。すなわち、図９（ｄ）に示すように、ＦＵＮＣ０とＦＵＮＣ１との間の枝、ＦＵＮＣ１とＦＵＮＣ２との間の枝およびＦＵＮＣ２とＦＵＮＣ３との間の枝が検索された後、処理を終了する。
【００５６】
以上の処理によって、ＰＡＴＨの配列には、ＰＡＴＨ（０）＝ＦＵＮＣ０，ＰＡＴＨ（１）＝ＦＵＮＣ１，ＰＡＴＨ（２）＝ＦＵＮＣ２，ＰＡＴＨ（３）＝ＦＵＮＣ３が格納される。したがって、割付け順序決定部２４は、機能ブロックの割付け順序を、ＦＵＮＣ０→ＦＵＮＣ１→ＦＵＮＣ２→ＦＵＮＣ３と決定する。
【００５７】
図１０は、機能ブロックの割付け順序によって決定されたプリント基板の積層構造を示す図である。外部インタフェース（ＦＵＮＣ０）の上に、半導体チップＩＣ１と、受動部品Ｒ１〜Ｒ３およびＣ１とを実装した第１のプリント基板（ＦＵＮＣ１）が積層される。第１のプリント基板の上に、半導体チップＩＣ２およびＩＣ３が実装された第２のプリント基板が積層される。さらに、第２のプリント基板の上に、半導体チップＩＣ４と、受動部品Ｌ１およびＬ２とを実装した第３のプリント基板が積層される。
【００５８】
以上説明したように、本発明の第１の実施の形態におけるプリント基板設計装置によれば、グラフ検索部２３が、重み付きグラフを参照して未検索で最大の重みを持つ頂点を順次検索し、その順番をプリント基板の割付け順序とするようにしたので、積層するプリント基板間の接続本数を最小とすることができる。したがって、冗長な配線がなくなり、信号遅延を最小限にすることが可能となる。
【００５９】
また、はんだ電極の数を少なくできるので、空き端子をグランド端子に割り付けることができ、ノイズに強いプリント基板の設計が可能となる。
【００６０】
（第２の実施の形態）
本発明の第２の実施の形態におけるプリント基板設計装置の構成は、図２に示す第１の実施の形態におけるプリント基板設計装置の構成と同様である。したがって、重複する構成および機能の詳細な説明は繰返さない。
【００６１】
図１１は、本発明の第２の実施の形態におけるプリント基板設計装置の機能的構成を示すブロック図である。このプリント基板設計装置は、図３に示す第１の実施の形態におけるプリント基板設計装置と比較して、情報入力部２１とグラフ生成部２２との間に、部品実装面積に応じて機能ブロックに含まれる部品を移動する機能ブロック変更部２５が追加された点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
【００６２】
図１２は、本発明の第２の実施の形態におけるプリント基板設計装置の処理手順を説明するためのフローチャートである。この処理手順は、図４に示すフローチャートのステップＳ１０１に置換される。最初に、処理手順を大まかに説明した後、具体例を挙げて処理手順を詳細に説明する。
【００６３】
まず、情報入力部２１は、回路図入力システムで入力されたネットリスト情報、機能ブロック情報、部品実装面積情報、実装面積基準値Ｓ０およびネットリストを無視した変更回数ＭＡＸを入力する（Ｓ２０１）。
【００６４】
図１３は、機能ブロック情報および部品実装面積情報の一例を示す図である。機能ブロック情報は、図６と同様に部品名称と、その部品が属する機能ブロック名称とをテーブル上に記載したものである。また、部品実装面積情報とは、パッドを含めた各部品の最大外形サイズをテーブル上に記載したものである。
【００６５】
次に、機能ブロック変更部２５は、図１３に示すテーブルを参照して、機能ブロック毎に実装面積の総和ＳＡ（Ｉ）を求める（Ｓ２０２）。そして、機能ブロック毎の実装面積の総和ＳＡ（Ｉ）が、実装面積基準値Ｓ０以下であるか否かを判定する（Ｓ２０３）。機能ブロックの実装面積の総和ＳＡ（Ｉ）が、全て実装面積基準値Ｓ０以下であれば（Ｓ２０３，Ｙｅｓ）、処理を終了する。
【００６６】
また、機能ブロックの実装面積の総和ＳＡ（Ｉ）の中で、実装面積基準値Ｓ０よりも大きいものがあれば（Ｓ２０３，Ｎｏ）、実装面積の総和が最大の機能ブロックＶ（Ｉ）を求める（Ｓ２０４）。そして、機能ブロックＶ（Ｉ）と隣接する機能ブロックＶ（ｊ）に対応するネットから、機能ブロックＶ（Ｉ）およびＶ（ｊ）の両方に接続される部品Ｐを移動対象の部品に選定する（Ｓ２０５）。
【００６７】
次に、部品Ｐを機能ブロックＶ（ｊ）に移動させた後の機能ブロックＶ（ｊ）の実装面積の総和ＳＡ（ｊ）が、実装面積基準値Ｓ０よりも大きいか否かが判定される（Ｓ２０６）。実装面積基準値Ｓ０よりも大きければ（Ｓ２０６，Ｙｅｓ）、部品Ｐの機能ブロック名称を最小面積機能ブロックに変更し（Ｓ２０７）、Ｃｏｕｎｔを１だけインクリメントし（Ｓ２０８）、ステップＳ２１０へ進む。
【００６８】
また、部品Ｐを移動させた後の機能ブロックＶ（ｊ）の実装面積の総和ＳＡ（ｊ）が実装面積基準値Ｓ０以下であれば（Ｓ２０６，Ｎｏ）、部品Ｐの機能ブロック名称をＶ（ｊ）に変更する（Ｓ２０９）。
【００６９】
ステップＳ２１０おいて、機能ブロック変更部２５は、機能ブロックの実装面積の総和ＳＡ（Ｉ）が全て実装面積基準値Ｓ０以下であるか、Ｃｏｕｎｔがネットリストを無視した変更回数ＭＡＸよりも大きい場合には（Ｓ２１０，Ｙｅｓ）、処理を終了する。また、機能ブロックの実装面積の総和ＳＡ（Ｉ）の中で実装面積基準値Ｓ０よりも大きいものがあり、かつＣｏｕｎｔがネットリストを無視した変更回数ＭＡＸ以下であれば（Ｓ２１０，Ｎｏ）、ステップＳ２０４に戻って以降の処理を繰返す。
【００７０】
次に、図８に示す部品の接続関係と、図１３に示す機能ブロック情報および部品実装面積情報とを参照しながら、図１２に示すフローチャートの説明を行なう。まず、情報入力部２１は、図８に示す回路図に対応するネットリスト情報、機能ブロック情報、部品実装面積情報、実装面積基準値Ｓ０（１００ｍｍ２）および変更回数ＭＡＸ（１０回）を入力する（Ｓ２０１）。そして、機能ブロック変更部２５は、機能ブロック毎の実装面積の総和ＳＡ（Ｉ）を求める。
【００７１】
図１４は、図８に示す機能ブロック毎の部品実装面積の総和を示す図である。図１４（ａ）は、図８に示す回路図と同様である。また、図１４（ｂ）は、図１４（ａ）に示す機能ブロック毎の部品実装面積の総和を示している。
【００７２】
機能ブロック変更部２５は、機能ブロックＦＵＮＣ０〜ＦＵＮＣ３の実装面積の総和ＳＡ（Ｉ）と、実装面積基準値Ｓ０（１００ｍｍ２）とを比較し、機能ブロックＦＵＮＣ１の実装面積の総和が実装面積基準値Ｓ０を超えているので（Ｓ２０３，Ｎｏ）、実装面積の総和が最大の機能ブロックＦＵＮＣ１が求められる（Ｓ２０４）。
【００７３】
次に、機能ブロックＦＵＮＣ１に接続する機能ブロックはＦＵＮＣ２とＦＵＮＣ０とであり、実装面積が最小の機能ブロックがＦＵＮＣ２であるので、機能ブロックＶ（ｊ）＝ＦＵＮＣ２となる。機能ブロック変更部２５は、ネットリストを参照して、機能ブロックＦＵＮＣ１に存在する部品の中で、そのネットに接続している部品の機能ブロック名称がＦＵＮＣ２である部品を求めると、｛Ｒ１，Ｒ２，Ｒ３｝が候補となる。まず、機能ブロックを変更する部品として、Ｒ３が選択される（Ｓ２０５）。
【００７４】
Ｒ３の実装面積とＦＵＮＣ２の実装面積との和が８５ｍｍ２となることから、Ｒ３の機能ブロックをＦＵＮＣ２に変更する（Ｓ２０９）。
【００７５】
図１５は、Ｒ３を移動した後の機能ブロックと、そのときの部品実装面積の総和とを示す図である。図１５（ａ）に示すように、受動部品Ｒ３が機能ブロックＦＵＮＣ１からＦＵＮＣ２へ移動される。また、図１５（ｂ）に示すように、ＦＵＮＣ１の部品実装面積の総和が１０５ｍｍ２となり、ＦＵＮＣ２の部品実装面積の総和が８５ｍｍ２となる。
【００７６】
ＦＵＮＣ１の実装面積の総和が１０５ｍｍ２となるので（Ｓ２１０，Ｎｏ）、ステップＳ２０４へ戻る。
【００７７】
実装面積の総和が最大の機能ブロックＦＵＮＣ１が求められる（Ｓ２０４）。機能ブロックＦＵＮＣ１に接続する機能ブロックはＦＵＮＣ２とＦＵＮＣ０とであり、実装面積が最小の機能ブロックがＦＵＮＣ２であるので、機能ブロックＶ（ｊ）＝ＦＵＮＣ２となる。
【００７８】
機能ブロック変更部２５は、ネットリストを参照して、機能ブロックＦＵＮＣ１に存在する部品の中で、そのネットに接続している部品の機能ブロック名称がＦＵＮＣ２である部品を求めると、｛Ｒ１，Ｒ２｝が候補となる。機能ブロックを変更する部品として、Ｒ２が選択される（Ｓ２０５）。
【００７９】
Ｒ２の実装面積とＦＵＮＣ２の実装面積との和が９０ｍｍ２となることから、Ｒ２の機能ブロックをＦＵＮＣ２に変更する（Ｓ２０９）。
【００８０】
図１６は、Ｒ２を移動した後の機能ブロックと、そのときの部品実装面積の総和とを示す図である。図１６（ａ）に示すように、受動部品Ｒ２が機能ブロックＦＵＮＣ１からＦＵＮＣ２へ移動される。また、図１６（ｂ）に示すように、ＦＵＮＣ１の部品実装面積の総和が１００ｍｍ２となり、ＦＵＮＣ２の部品実装面積の総和が９０ｍｍ２となる。
【００８１】
ＦＵＮＣ１の実装面積の総和が１００ｍｍ２となるので（Ｓ２１０，Ｙｅｓ）、処理が終了する。
【００８２】
以上説明したように、本実施の形態におけるプリント基板設計装置によれば、実装面積の総和が最大の機能ブロックに含まれる部品を、当該機能ブロックに接続する機能ブロック中の最小面積機能ブロックへ移動するようにしたので、各機能ブロックの面積を、指定した基準値以内の面積とすることができ、プリント基板の小型化を図ることが可能となった。
【００８３】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００８４】
【発明の効果】
本発明のある局面によれば、グラフ検索手段が、グラフ生成手段によって生成されたグラフにおける機能ブロック間の枝の重みを所定の規則にしたがって順次検索するので、プリント基板間の接続本数が最小となるようにプリント基板の割付け順序を決定することが可能となった。
【００８５】
また、グラフ検索手段が、外部とのインタフェースとなる機能ブロックを検索開始の頂点とし、グラフ生成手段によって生成されたグラフを参照して未検索で最大の重みを持つ頂点を順次検索するので、プリント基板の割付け順序を適切に決定することが可能となった。
【００８６】
また、機能ブロック変更手段が、各機能ブロックに含まれる部品の実装面積の総和を求め、実装面積の総和が基準値以下となるように部品を移動して機能ブロックを変更するので、プリント基板の小型化を図ることが可能となった。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるプリント基板の設計手順を説明するためのフローチャートである。
【図２】本発明の第１の実施の形態におけるプリント基板設計装置の構成を示すブロック図である。
【図３】本発明の第１の実施の形態におけるプリント基板設計装置の機能的構成を示すブロック図である。
【図４】本発明の第１の実施の形態におけるプリント基板設計装置の処理手順を説明するためのフローチャートである。
【図５】ネットリスト情報の一例を示す図である。
【図６】機能ブロック情報の一例を示す図である。
【図７】グラフ検索部２３によって検索される機能ブロックのデータ構造の一例を示す図である。
【図８】部品の接続関係と、機能ブロック情報とを示す図である。
【図９】図８に示す回路図に対応する重み付きグラフを示す図である。
【図１０】機能ブロックの割付け順序によって決定されたプリント基板の積層構造を示す図である。
【図１１】本発明の第２の実施の形態におけるプリント基板設計装置の機能的構成を示すブロック図である。
【図１２】本発明の第２の実施の形態におけるプリント基板設計装置の処理手順を説明するためのフローチャートである。
【図１３】機能ブロック情報および部品実装面積情報の一例を示す図である。
【図１４】図８に示す機能ブロック毎の部品実装面積の総和を示す図である。
【図１５】Ｒ３を移動した後の機能ブロックと、そのときの部品実装面積の総和とを示す図である。
【図１６】Ｒ２を移動した後の機能ブロックと、そのときの部品実装面積の総和とを示す図である。
【図１７】はんだ電極を介してプリント基板を積層する手法を説明するための図である。
【図１８】特開２０００−１１４３８６号公報に開示された半導体集積回路におけるチップオンチップの構造を示す断面図である。
【図１９】特開２０００−１１４３８６号公報に開示された半導体集積回路の設計手順を説明するためのフローチャートである。
【符号の説明】
１  コンピュータ本体、２  ディスプレイ装置、３  ＦＤドライブ、４  ＦＤ、５  キーボード、６  マウス、７  ＣＤ−ＲＯＭ装置、８  ＣＤ−ＲＯＭ、９ネットワーク通信装置、１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、１３  ハードディスク、２１  情報入力部、２２  グラフ生成部、２３  グラフ検索部、２４  割付け順序決定部、２５  機能ブロック変更部。
【図１】
2005018258.tif 000003
【図２】
2005018258.tif 000004
【図３】
2005018258.tif 000005
【図４】
2005018258.tif 000006
【図５】
2005018258.tif 000007
【図６】
2005018258.tif 000008
【図７】
2005018258.tif 000009
【図８】
2005018258.tif 000010
【図９】
2005018258.tif 000011
【図１０】
2005018258.tif 000012
【図１１】
2005018258.tif 000013
【図１２】
2005018258.tif 000014
【図１３】
2005018258.tif 000015
【図１４】
2005018258.tif 000016
【図１５】
2005018258.tif 000017
【図１６】
2005018258.tif 000018
【図１７】
2005018258.tif 000019
【図１８】
2005018258.tif 000020
【図１９】
2005018258.tif 000021