(57)【要約】【課題】設計の早期の段階から基板のレイアウト設計を行える設計支援装置、設計支援方法および設計支援プログラムを提供する。【解決手段】受付部４１は、配線により接続する２つの部品および接続する配線本数の指定を受付ける。生成部４２は、基板上に、前記受付部により受付けた配線本数に応じた幅で前記２つの部品を結ぶ概略ルートを生成する。導出部４３は、前記生成部により生成された概略ルートが前記基板に配置可能であるか干渉をチェックして配置可能な配線本数を導出する。【選択図】図１
2014135035.tif 000002
【特許請求の範囲】
【請求項１】
配線により接続する２つの部品および接続する配線本数の指定を受付ける受付部と、
基板上に、前記受付部により受付けた配線本数に応じた幅で前記２つの部品を結ぶ概略ルートを生成する生成部と、
前記生成部により生成された概略ルートが前記基板に配置可能であるか干渉をチェックして配置可能な配線本数を導出する導出部と、
を有することを特徴とする設計支援装置。
【請求項２】
前記導出部により導出された配置可能な配線本数が前記受付部により受付けた配線本数未満の概略ルートが存在する場合、当該概略ルートと同じ部品を接続する他の概略ルートを検索する検索部と、
前記検索部により検索された前記他の概略ルートへ一部の配線を振り分ける振分部と、
をさらに有することを特徴とする請求項１に記載の設計支援装置。
【請求項３】
前記生成部により生成された概略ルートが前記基板に配置された部品または他の概略ルートと干渉する場合、前記生成部により生成された概略ルートに代えて、干渉する部品または他の概略ルートの形状に沿って迂回させた概略ルートを生成する迂回ルート生成部
をさらに有することを特徴とする請求項１または２に記載の設計支援装置。
【請求項４】
コンピュータが、
配線により接続する２つの部品および接続する配線本数の指定を受付ける受付部により受付けた配線本数に応じた幅で前記２つの部品を結ぶ概略ルートを基板上に生成し、
生成された概略ルートが前記基板に配置可能であるか干渉をチェックして配置可能な配線本数を導出する
処理を実行することを特徴とする設計支援方法。
【請求項５】
コンピュータに、
配線により接続する２つの部品および接続する配線本数の指定を受付ける受付部により受付けた配線本数に応じた幅で前記２つの部品を結ぶ概略ルートを基板上に生成し、
生成された概略ルートが前記基板に配置可能であるか干渉をチェックして配置可能な配線本数を導出する
処理を実行させることを特徴とする設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置、設計支援方法および設計支援プログラムに関する。
【背景技術】
【０００２】
近年、回路の大規模化および高密化により、基板のレイアウト設計は、難易度が高くなっている。例えば、プリント基板は、端子数が数千などの多数の端子を有する部品がいくつも配置され、配線対象の区間数も数万区間になる。また、基板のレイアウト設計では、機能的な制約や製造上の制約がある場合もある。設計者は、基板のレイアウト設計を行う場合、機能的な制約や製造上の制約を踏まえて部品の配置位置を検討し、配置した部品間の配線が行えるか検討を行う。
【０００３】
このような基板へのレイアウト設計を支援する技術がある。例えば、各部品の接続する端子間を関連付けたネット情報を用いて、レイアウト設計を支援する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−１８００９１号公報
【特許文献２】特開平６−２３６４１９号公報
【特許文献３】特開２００９−１２２７６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術は、基板に配置される部品の端子の位置や部品間の接続する端子が定まっていないとレイアウト設計を行うことができない。
【０００６】
また、部品の端子の位置や部品間の接続する端子が定まってからレイアウト設計をすると、例えば、設計された部品を基板に配置できず、部品の設計に手戻りが発生する場合がある。このため、設計期間を短縮するには、部品を設計している途中の早期の段階から基板のレイアウト設計を行えることが好ましい。
【０００７】
一側面では、設計の早期の段階から基板のレイアウト設計を行える設計支援装置、設計支援方法および設計支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、設計支援装置は、受付部と、生成部と、導出部とを有する。受付部は、配線により接続する２つの部品および接続する配線本数の指定を受付ける。生成部は、基板上に、前記受付部により受付けた配線本数に応じた幅で前記２つの部品を結ぶ概略ルートを生成する。導出部は、前記生成部により生成された概略ルートが前記基板に配置可能であるか干渉をチェックして配置可能な配線本数を導出する。
【発明の効果】
【０００９】
設計の早期の段階から基板のレイアウト設計を行える。
【図面の簡単な説明】
【００１０】
【図１】図１は、設計支援装置の全体構成を示す図である。
【図２】図２は、実装仕様情報のデータ構成の一例を示す図である。
【図３】図３は、基板情報のデータ構成の一例を示す図である。
【図４】図４は、部品情報のデータ構成の一例を示す図である。
【図５】図５は、概略ルート情報のデータ構成の一例を示す図である。
【図６】図６は、禁止領域情報のデータ構成の一例を示す図である。
【図７】図７は、設計画面の一例を示す図である。
【図８】図８は、指定画面の一例を示す図である。
【図９】図９は、無向グラフの一例を示す図である。
【図１０】図１０は、概略ルートの一例を示す図である。
【図１１】図１１は、概略ルートの振り分けの一例を示す図である。
【図１２】図１２は、迂回ルートの一例を示す図である。
【図１３】図１３は、レイアウト設計の流れを説明する図である。
【図１４】図１４は、生成処理の手順を示すフローチャートである。
【図１５】図１５は、受付処理の手順を示すフローチャートである。
【図１６】図１６は、探索処理の手順を示すフローチャートである。
【図１７】図１７は、調整処理の手順を示すフローチャートである。
【図１８】図１８は、導出処理の手順を示すフローチャートである。
【図１９】図１９は、振分処理の手順を示すフローチャートである。
【図２０】図２０は、迂回ルート生成処理の手順を示すフローチャートである。
【図２１】図２１は、表示処理の手順を示すフローチャートである。
【図２２】図２２は、経路変更処理の手順を示すフローチャートである。
【図２３】図２３は、経路変更受付処理の手順を示すフローチャートである。
【図２４】図２４は、部品移動処理の手順を示すフローチャートである。
【図２５】図２５は、配置変更処理の手順を示すフローチャートである。
【図２６】図２６は、設計支援プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかる設計支援装置、設計支援方法および設計支援プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１２】
実施例１に係る設計支援装置１０について説明する。図１は、設計支援装置の全体構成を示す図である。設計支援装置１０は、プリント基板などの基板に部品を配置し、基板の概略的なレイアウト設計を支援する装置であり、例えば、パーソナル・コンピュータやサーバ・コンピュータなどのコンピュータなどである。設計支援装置１０は、１台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。なお、本実施例では、設計支援装置１０を１台のコンピュータとした場合を例として説明する。設計支援装置１０は、ＣＡＤ（Computer  Aided  Design）装置などの設計者による回路設計を支援する回路設計ソフトウェアが動作する設計装置であってもよい。図１に示すように、設計支援装置１０は、通信Ｉ／Ｆ（インタフェース）部２０と、入力部２１と、表示部２２と、記憶部２３と、制御部２４とを有する。
【００１３】
通信Ｉ／Ｆ部２０は、他の装置との間で通信制御を行うインタフェースである。通信Ｉ／Ｆ部２０は、不図示のネットワークを介して他の装置と各種情報を送受信する。例えば、通信Ｉ／Ｆ部２０は、基板に配置される部品の各種の設計データが記憶されたサーバ・コンピュータから部品の部品名および部品の外形に関する情報を受信する。通信Ｉ／Ｆ部２０としては、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。なお、設計支援装置１０は、メモリカードなどの記憶媒体を介して部品の外形に関する情報を取得してもよい。
【００１４】
入力部２１は、各種の情報を入力する入力デバイスである。入力部２１としては、マウスやキーボードなどの操作受付デバイスが挙げられる。入力部２１は、各種の情報の入力を受付ける。例えば、入力部２１は、基板に配置する部品の登録を受付ける。また、入力部２１は、基板に配置する部品の指定および部品の配置位置の指定を受付ける。また、入力部２１は、概略ルートの配線により接続する部品の指定および接続する配線本数の指定を受付ける。入力部２１は、受付けた操作内容を示す操作情報を制御部２４に入力する。
【００１５】
表示部２２は、各種情報を表示する表示デバイスである。表示部２２としては、Liquid  Crystal  Display（ＬＣＤ）やCathode  Ray  Tube（ＣＲＴ）などの表示デバイスが挙げられる。表示部２２は、各種情報を表示する。例えば、表示部２２は、基板上に各種の部品や配線を配置して、概略的に基板のレイアウト設計を行う設計画面を表示する。この設計画面には、例えば、設計対象の基板や基板に配置する各種の部品が表示される。また、表示部２２は、配線により接続する部品および接続する配線数を指定する指定画面を表示する。
【００１６】
記憶部２３は、ハードディスク、Solid  State  Drive（ＳＳＤ）、光ディスクなどの記憶装置である。なお、記憶部２３は、Random  Access  Memory（ＲＡＭ)、フラッシュメモリ、Non  Volatile  Static  Random  Access  Memory（ＮＶＳＲＡＭ)などのデータを書き換え可能な半導体メモリであってもよい。
【００１７】
記憶部２３は、制御部２４で実行されるOperating  System（ＯＳ）や各種プログラムを記憶する。例えば、記憶部２３は、後述する設計の支援に用いるプログラムを記憶する。さらに、記憶部２３は、制御部２４で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部２３は、実装仕様情報３０と、基板情報３１と、部品情報３２と、概略ルート情報３３、禁止領域情報３４とを記憶する。
【００１８】
実装仕様情報３０は、基板に実装を行う際の実装条件に関する情報を記憶したデータである。本実施例では、実装仕様情報３０に、実装条件に関する情報として配線に関する条件を１つ記憶するものとする。一例として、実装仕様情報３０は、設計支援ソフトウェアの作成元で予め登録されてもよい。また、実装仕様情報３０は、設計者が入力部２１あるいは、設計支援装置１０と通信可能とされたクライアントコンピュータなどの端末装置から登録されてもよい。
【００１９】
図２は、実装仕様情報のデータ構成の一例を示す図である。図２に示すように、実装仕様情報３０は、「線幅」、「許容間隔」の各項目を有する。線幅の項目には、レイアウト設計で用いる配線の幅が格納される。許容間隔の項目には、レイアウト設計で複数の配線を配置する場合に、配線間に設ける最低限の間隔が格納される。図２の例では、線幅が０．１ｍｍであり、許容間隔が０．３ｍｍであることを示している。
【００２０】
図１に戻り、基板情報３１は、設計対象の基板に関する情報を記憶したデータである。一例として、基板情報３１は、設計支援ソフトウェアの作成元で予め登録されてもよい。また、基板情報３１は、設計者が入力部２１あるいは、設計支援装置１０と通信可能とされたクライアントコンピュータなどの端末装置から登録されてもよい。
【００２１】
図３は、基板情報のデータ構成の一例を示す図である。図３に示すように、基板情報３１は、「基板形状」の項目を有する。基板形状の項目は、基板の形状を示す情報を記憶する領域である。本実施例では、基板の形状をＸ軸、Ｙ軸の２次元座標で示している。本実施例では、基板が矩形状である場合、基板形状に、基板の対向する２つの頂点の座標が記憶される。なお、基板形状には、基板の外形の各頂点の座標を記憶させてもよい。図３の例では、基板の対向する２つの頂点の座標が（０．０，０．０）−（２５０．０，２００．０）であることから、基板がＸ方向に２５０.０ｍｍ、Ｙ方向に２００．０ｍｍの矩形状の基板であることを示している。
【００２２】
図１に戻り、部品情報３２は、基板に配置された部品に関する情報を記憶したデータである。一例として、部品情報３２は、設計者が入力部２１を用いて部品を登録する図示しない登録画面から登録されてもよい。また、部品情報３２は、取得部４０により部品の設計を行う他の装置から部品の外形に関する情報が取得されて登録されてもよい。
【００２３】
図４は、部品情報のデータ構成の一例を示す図である。図４に示すように、部品情報３２は、「部品名」、「部品形状」、「角度」、「中心座標」の各項目を有する。部品名の項目は、部品を識別する情報を格納する領域である。部品には、例えば、部品名や部品番号などそれぞれを識別する識別情報が定められる。部品名の項目には、配置された部品の識別情報が格納される。部品形状の項目は、部位の形状を示す情報を記憶する領域である。本実施例では、部品の形状をＸ軸、Ｙ軸の２次元座標で示している。本実施例では、部品が矩形状である場合、部品形状に、部品の対向する２つの頂点の座標が記憶される。なお、部品形状には、部品の外形の各頂点の座標を記憶させてもよい。角度の項目は、部品の回転角度を記憶する領域である。本実施例では、部品を回転させて配置することが可能とされている。角度の項目には、部品を回転させて配置した場合の回転角度が格納される。中心座標の項目は、部品の中心位置を示す情報を記憶する領域である。中心座標の項目には、配置された部品の中心座標が格納される。図４の例では、部品名が「ＩＣ１」の部品は、対向する２つの頂点が（２．５，４．２）−（２２．５，２４．２）の矩形状の部品であり、回転角度が「０」度であり、中心座標が（１２．５，１４．２）であることを示す。
【００２４】
図１に戻り、概略ルート情報３３は、基板に配置された部品を接続する配線を概略的に示した概略ルートに関する情報を記憶したデータである。一例として、概略ルート情報３３は、後述の生成部４２によって登録される。
【００２５】
図５は、概略ルート情報のデータ構成の一例を示す図である。図５に示すように、部品情報３２は、「始点部品名」、「終点部品名」、「配線要求本数」、「配線可能本数」、「経路座標数」、「経路座標」、「ルート形状数」、「ルート形状」の各項目を有する。なお、「経路座標」の項目は、「経路座標１」・・・「経路座標ｎ」と複数設けられる。また、「ルート形状数」の項目は、「ルート形状１」・・・「ルート形状ｎ」と複数設けられる。「経路座標」および「ルート形状数」の項目は、予め十分に多く項目を設けておくものとしてもよい。また、「経路座標」の項目は、「経路座標数」の数だけ設け、「ルート形状数」の項目は、「ルート形状数」の数だけ設けるものとしてもよい。すなわち、レコード毎に、「経路座標」および「ルート形状数」の項目数は、可変であってもよい。始点部品名の項目は、概略ルートの始点とする部品の識別情報を格納する領域である。終点部品名の項目は、概略ルートの終点とする部品の識別情報を格納する領域である。配線要求本数の項目は、部品を接続する配線として要求された配線本数を格納する領域である。配線可能本数の項目は、概略ルートに配置することが配置可能な配線本数を格納する領域である。経路座標数の項目は、概略ルートの配線方向が変化する位置の数を格納する領域である。経路座標数は、概略ルートの配線方向が変化する位置の座標を格納する領域である。ルート形状数の項目は、概略ルートの形状を指定する位置の数を格納する領域である。ルート形状の項目は、概略ルートの形状を指定する位置の座標を格納する領域である。図５の例では、部品名が「ＩＣ１」の部品と部品名が「ＩＣ５」の部品とを結ぶ概略ルートは、要求された配線本数が「３０」本であり、配置可能な配線本数が「３０」本であることを示す。また、部品名が「ＩＣ１」の部品と部品名が「ＩＣ５」の部品とを結ぶ概略ルートは、経路座標数が「８」であり、（３０．０，２８．２）を通過することを示す。また、部品名が「ＩＣ１」の部品と部品名が「ＩＣ５」の部品とを結ぶ概略ルートは、ルート形状数が「７」であり、（３０．０，２８．２）−（４０．０，２８．２）についてＲ＝５．８の長円の形状であることを示す。
【００２６】
図１に戻り、禁止領域情報３４は、基板上の配線が配置できない禁止領域に関する情報を記憶したデータである。一例として、禁止領域情報３４は、一例として、禁止領域情報３４は、設計支援ソフトウェアの作成元で予め登録されてもよい。また、禁止領域情報３４は、設計者が入力部２１あるいは、設計支援装置１０と通信可能とされたクライアントコンピュータなどの端末装置から登録されてもよい。
【００２７】
図６は、禁止領域情報のデータ構成の一例を示す図である。図６に示すように、禁止領域情報３４は、「領域形状」の項目を有する。領域形状の項目は、基板上で配線の配置を禁止する禁止領域の形状を示す情報を記憶する領域である。本実施例では、禁止領域の形状をＸ軸、Ｙ軸の２次元座標で示している。本実施例では、禁止領域が矩形状である場合、基板形状に、基板の対向する２つの頂点の座標が記憶される。なお、領域形状には、禁止領域の外形の各頂点の座標を記憶させてもよい。図６の例では、対向する２つの頂点が（０．０，１５．０）−（２００．０，２００．０）に位置する矩形領域が禁止領域であることを示している。
【００２８】
図１に戻り、制御部２４は、設計支援装置１０を制御するデバイスである。制御部２４としては、Central  Processing  Unit（ＣＰＵ）、Micro  Processing  Unit（ＭＰＵ）等の電子回路や、Application  Specific  Integrated  Circuit（ＡＳＩＣ）、Field  Programmable  Gate  Array（ＦＰＧＡ）等の集積回路を採用できる。制御部２４は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部２４は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部２４は、取得部４０と、受付部４１と、生成部４２と、導出部４３と、探索部４４と、振分部４５と、迂回ルート生成部４６と、表示制御部４７とを有する。
【００２９】
取得部４０は、各種の情報を取得する。例えば、受付部４１は、基板に配置される部品の各種の設計データが記憶されたサーバ・コンピュータへアクセスして、部品に関する情報を取得する。例えば、受付部４１は、サーバ・コンピュータから設計中の部品の部品名および部品の外形に関する情報を取得する。取得部４０は、取得した部品名および部品の外形に関する情報に基づき、部品の部品名および外形形状を部品情報３２に登録する。なお、取得部４０によるサーバ・コンピュータからの部品に関する情報の取得は、必ずしも行わなくてもよい。
【００３０】
受付部４１は、各種の受付を行う。例えば、受付部４１は、基板に配置する部品の登録を受付ける。例えば、受付部４１は、部品の部品名や外形の座標を登録する図示しない登録画面を表示させ、登録画面から基板上に配置する部品の登録を受付ける。受付部４１は、登録画面から部品が登録された場合、登録された部品の部品名および部品の外形に関する情報を部品情報３２に登録する。また、例えば、受付部４１は、基板のレイアウト設計を行う設計画面を表示させ、基板上への各種の部品の配置の指示を受付ける。また、例えば、受付部４１は、設計画面において配線の配置を指示する所定操作が行われた場合、配線に関する条件を指定する指定画面を表示させ、配線の配置の指示を受付ける。
【００３１】
図７は、設計画面の一例を示す図である。設計画面６０は、基板情報３１に基づき、設計対象の基板６１が表示される。基板６１上には、禁止領域情報３４に基づき、配線が配置できない禁止領域６３が設けられている。また、設計画面６０は、基板６１の周囲に、部品情報３２に基づき、部品６２が配置される。ここで、回路設計では、回路の位置を任意指定としてもよいが、位置の指定を容易にするため、基板上に一定間隔でグリッドを仮想的に配置し、グリッドに合わせて位置が指定される。設計画面６０では、基板６１上に格子状にグリッドを表示している。
【００３２】
図８は、指定画面の一例を示す図である。指定画面７０は、配線の始点となる部品を指定する入力領域７１と、配線の終点となる部品を指定する入力領域７２と、接続する配線の要求本数を指定する入力領域７３とを有する。また、指定画面７０は、配線の追加を指示する追加ボタン７４と、キャンセルを指示するキャンセルボタン７５を有する。
【００３３】
生成部４２は、各種の生成を行う。例えば、生成部４２は、指定画面７０から配線の追加が指示された場合、指定画面７０で指定された始点および終点の２つの部品を指定された配線本数に応じた幅で結ぶ概略ルートを生成する。
【００３４】
例えば、生成部４２は、配線の追加が指示された２つの部品が基板上に配置されている場合、２つの部品を接続する配線の概略ルートを探索する。例えば、生成部４２は、実装仕様情報３０から線幅および許容間隔を読み出す。そして、生成部４２は、指定画面７０で要求された配線本数と、線幅および許容間隔から概略ルートの幅Ｗを算出する。例えば、生成部４２は、要求された配線本数×（線幅＋許容間隔）−許容間隔の演算を行って概略ルートの幅Ｗを算出する。ここで、許容間隔を設ける部分は、配線の間の部分であるため、配線本数よりも１つ少ない。このため、上記の演算では、許容間隔を最後に減算して配線本数−１本分としている。
【００３５】
生成部４２は、基板上で概略ルートが配置可能か否かの判定に用いるチェック領域を求める。例えば、生成部４２は、指定画面７０で指定された２つの部品を除く、基板上の部品、禁止領域について、それぞれ幅をＷ／２だけ拡大したチェック領域を求める。また、生成部４２は、既に配置済みの他の概略ルートについて、それぞれ幅をＷ／２に許容間隔を加算した幅だけ拡大したチェック領域を求める。
【００３６】
生成部４２は、基板上のチェック領域に含まれない領域を特定し、チェック領域に含まれない領域のグリッドをノードとし、上下左右のグリッドを接続する線をエッジとした無向グラフを生成する。生成部４２は、生成された無向グラフから、例えば、メーズ法などの経路探索アルゴリズを用いてチェック領域を重ならないように配線経路を探索する。なお、配線経路の探索の手法は、これに限定されるものではなく、基板上の禁止領域、部品および他の概略ルートを重ならない配線経路を探索できれば、何れの手法を用いてもよい。
【００３７】
図９は、無向グラフの一例を示す図である。図９の例では、無向グラフ８０は、複数の部品６２が配置されている。また、無向グラフ８０は、禁止領域６３が設けられている。また、無向グラフ８０は、部品６２および禁止領域６３の周囲にチェック領域６６が設けられている。また、図９の例では、配線経路として、概略ルート６４が探索されている。
【００３８】
生成部４２は、探索の結果、配線経路がある場合、配線経路の両端を指定画面７０で指定された部品の位置に補正する。そして、生成部４２は、指定画面７０で指定された２つの部品、接続する配線本数、補正された配線経路に関する情報を概略ルート情報３３に格納する。
【００３９】
一方、生成部４２は、探索の結果、配線経路がない場合、基板上の全グリッドをノードとし、上下左右のグリッドを接続する線をエッジとした、チェック領域を含む無向グラフを生成して配線経路を探索する。
【００４０】
導出部４３は、各種の導出を行う。例えば、導出部４３は、生成された概略ルートが基板に配置可能であるか干渉をチェックして配置可能な配線本数を導出する。例えば、導出部４３は、実装仕様情報３０から線幅および許容間隔を読み出す。そして、導出部４３は、生成部４２により生成された各概略ルートについて、線幅および許容間隔を用いて配線本数を１から順に要求された配線本数になるまで概略ルートの幅を増加させる。そして、導出部４３は、概略ルートが部品や禁止領域、他の概略ルートと干渉するか判定し、干渉が発生しない最も大きな配線本数を配置可能な配線本数と導出する。
【００４１】
図１０は、概略ルートの一例を示す図である。図１０の例では、基板９０上の部品９１Ａと部品９１Ｂが概略ルート９２Ａにより接続されている。この概略ルート９２Ａは、要求された配線本数が４０本であり、配置可能な配線本数が２２本であるため、「２２／４０」と表示されている。また、部品９１Ａと部品９１Ｃが概略ルート９２Ｂにより接続されている。この概略ルート９２Ｂは、要求された配線本数が４０本であり、配置可能な配線本数も４０本であるため、「４０」と表示されている。また、部品９１Ｃと部品９１Ｄが概略ルート９２Ｃにより接続されている。この概略ルート９２Ｃは、要求された配線本数が６０本であり、配置可能な配線本数も６０本であるため、「６０」と表示されている。さらに、概略ルートが接続された部品は、接続が要求された配線本数の合計が表示される。例えば、部品９１Ａは、概略ルート９２Ａの４０本と、概略ルート９２Ｂの４０本の合計「８０」が表示されている。また、部品９１Ｂは、概略ルート９２Ａが４０本であるため「４０」が表示されている。また、部品９１Ｃは、概略ルート９２Ｂの４０本と、概略ルート９２Ｃの６０本の合計「１００」が表示されている。また、部品９１Ｄは、概略ルート９２Ｃが６０本であるため「６０」が表示されている。なお、図１０の例は、それぞれ異なる部品を概略ルートにより接続した場合を図示したが、指定画面７０で始点および終点の部品を同一にして概略ルートの生成を複数回行うことにより、始点および終点の部品が同一の概略ルートを複数生成することもできる。
【００４２】
図１に戻り、探索部４４は、各種の探索を行う。例えば、探索部４４は、導出部４３により導出された配置可能な配線本数が要求された配線本数未満の概略ルートが存在する場合、当該概略ルートと同じ部品を接続する他の概略ルートを検索する。例えば、探索部４４は、配置可能な配線本数が要求された配線本数未満の概略ルートと始点および終点の部品が一致するか他の概略ルートを探索する。
【００４３】
振分部４５は、各種の振り分けを行う。例えば、振分部４５は、配置可能な配線本数が要求された配線本数未満の概略ルートについて、探索部４４により検索された他の概略ルートへ一部の配線の振り分けを行う。例えば、振分部４５は、実装仕様情報３０から線幅および許容間隔を読み出す。そして、振分部４５は、探索部４４により検索された他の概略ルートについて、配線本数を１本ずつ増加させて、概略ルートが部品や禁止領域、他の概略ルートと干渉するか判定し、配線可能な本数を特定する。そして、振分部４５は、検索された他の概略ルートのうち、配線可能な本数が要求された配線本数よりも大きな概略ルートへ一部の配線の振り分けを行う。
【００４４】
図１１は、概略ルートの振り分けの一例を示す図である。図１１の左側の例では、基板９０上の部品９１Ａと部品９１Ｂが概略ルート９２Ａにより接続されている。この概略ルート９２Ａは、要求された配線本数が４０本であり、配置可能な配線本数が２２本であるため、「２２／４０」と表示されている。また、部品９１Ａと部品９１Ｃが概略ルート９２Ｂにより接続されている。この概略ルート９２Ｂは、要求された配線本数が４０本であり、配置可能な配線本数も４０本であるため、「４０」と表示されている。また、部品９１Ｃと部品９１Ｄが概略ルート９２Ｃにより接続されている。この概略ルート９２Ｃは、要求された配線本数が６０本であり、配置可能な配線本数も６０本であるため、「６０」と表示されている。さらに、部品９１Ａと部品９１Ｃが概略ルート９２Ｄにより接続されている。この概略ルート９２Ｄは、要求された配線本数が１０本であり、配置可能な配線本数も１０本であるため、「１０」と表示されている。また、概略ルートが接続された部品は、接続が要求された配線本数の合計が表示される。例えば、部品９１Ａは、「９０」が表示されている。部品９１Ｂは、「４０」が表示されている。部品９１Ｃは、「１１０」が表示されている。部品９１Ｄは、「６０」が表示されている。このような状態において、図１１の右側に示すように、部品９１Ｃと部品９１Ｄの配置位置が上側へ変更された場合、概略ルート９２Ｂは、配線を配置可能な領域が狭くなるため、配線が１０本しか配置できなくなる。この部品９１Ｃと部品９１Ｄは、概略ルート９２Ｄによっても接続されている。そこで、図１１の右側の例では、概略ルート９２Ｂの配線が概略ルート９２Ｄへ振り分けわれている。このように配線の振り分けを行うことにより、部品等を移動させて概略ルートに配置できない配線が発生した場合でも、同じ部品を接続する他の概略ルートへ振り分けられるため、レイアウト設計を容易に行うことができる。
【００４５】
図１に戻り、迂回ルート生成部４６は、各種の生成を行う。例えば、迂回ルート生成部４６は、概略ルートが基板に配置された部品または他の概略ルートと干渉する場合、当該概略ルートに代えて、干渉する部品または他の概略ルートの形状に沿って迂回させた概略ルートを生成する。例えば、迂回ルート生成部４６は、実装仕様情報３０から線幅および許容間隔を読み出す。迂回ルート生成部４６は、配置可能な配線本数が要求された配線本数よりも小さい概略ルートについて、要求された配線本数と、線幅および許容間隔から概略ルートの幅Ｗを算出する。例えば、迂回ルート生成部４６は、要求された配線本数×（線幅＋許容間隔）−許容間隔の演算を行って概略ルートの幅Ｗを算出する。そして、迂回ルート生成部４６は、概略ルートで接続された２つの部品を除く、基板上の部品、禁止領域について、それぞれ幅をＷ／２だけ拡大したチェック領域を求める。また、迂回ルート生成部４６は、既に配置済みの他の概略ルートについて、それぞれ幅をＷ／２に許容間隔を加算した幅だけ拡大したチェック領域を求める。
【００４６】
そして、迂回ルート生成部４６は、配置可能な配線本数が要求された配線本数よりも小さい概略ルートが何れかのチェック領域と交差するか判定する。迂回ルート生成部４６は、概略ルートがチェック領域と交差する場合、交差するチェック領域に沿った迂回する概略ルートを生成する。そして、迂回ルート生成部４６は、迂回する概略ルートの配置可能な配線本数が、元の概略ルートの配置可能な配線本数よりも大きい場合、概略ルート情報３３に記憶された元の概略ルートの情報を、迂回する概略ルートの情報で更新する。
【００４７】
図１２は、迂回ルートの一例を示す図である。図１２の左側の例では、基板９０上の部品９１Ａと部品９１Ｂが概略ルート９２Ａにより接続されている。この概略ルート９２Ａは、要求された配線本数が４０本であり、配置可能な配線本数が４０本であるため、「４０」と表示されている。また、概略ルートが接続された部品は、接続が要求された配線本数の合計が表示される。例えば、部品９１Ａは、「４０」が表示されている。部品９１Ｂは、「４０」が表示されている。このような状態において、図１２の右側に示すように、部品９１Ｃの配置位置が上側へ変更された場合、概略ルート９２Ａは、部品９１Ｃと干渉するため、配置できなくなる。そこで、図１２の右側の例では、迂回ルートが生成され、概略ルート９２Ａが部品９１Ｃを回り込むように配線経路が変更されている。このように迂回ルートを生成することにより、部品等を移動させたことにより、概略ルートと干渉が発生する場合でも、迂回ルートが生成されるため、レイアウト設計を容易に行うことができる。
【００４８】
図１に戻り、表示制御部４７は、各種の表示制御を行う。例えば、表示制御部４７は、設計画面を表示させる制御を行う。例えば、表示制御部４７は、受付部４１、生成部４２、導出部４３、探索部４４、振分部４５および迂回ルート生成部４６による処理の結果に応じて設計画面に概略ルートを表示させる制御を行う。また、表示制御部４７は、入力部２１から設計画面に表示された概略ルートを変更する操作を受け付けた場合、操作に従い概略ルートを変更する制御を行う。また、表示制御部４７は、部品の位置を移動させる操作を受け付けた場合、操作に従い部品を移動させ、部品の移動に伴い移動した部品を接続する概略ルートの経路を更新する制御を行う。また、表示制御部４７は、部品の回転を指示する操作が行われた場合、部品を一方方向へ所定角度回転して表示させる。例えば、表示制御部４７は、部品の回転を指示する操作が行われた場合、部品を一方方向へ９０度ずつ回転して表示させる。
【００４９】
次に、本実施例に係る設計支援装置１０によるレイアウト設計の流れを説明する。図１３は、レイアウト設計の流れを説明する図である。設計画面６０は、基板情報３１に基づき、設計対象の基板６１が表示される。基板６１上には、禁止領域情報３４に基づき、配線が配置できない禁止領域６３が設けられている。また、設計画面６０は、基板６１の周囲に、部品情報３２に基づき、部品６２が配置される。また、例えば、登録画面から部品が登録された場合、設計画面６０には、登録された部品６２が追加される。
【００５０】
設計者は、設計画面６０を用いてレイアウト設計を行う。例えば、設計者は、基板６１上への各種の部品６２を配置する。また、設計者は、配線の配置する場合、所定操作を行って、配線に関する条件を指定する指定画面７０を表示させ、配線の配置を指示する。例えば、設計者は、指定画面７０の入力領域７１に始点となる部品名を入力し、入力領域７２に終点となる部品名を入力し、入力領域７３に接続する配線数を入力して追加ボタン７４を指定する。
【００５１】
これにより、設計画面６０には、部品６２を接続する配線として概略ルート６４を生成されて表示される。設計者は、設計画面６０を用いて、部品を配置し、配線により接続する部品および配線数を指定して部品間を概略ルートで接続してレイアウト設計を行う。
【００５２】
このように、設計支援装置１０は、接続する部品および配線本数を指定することにより概略ルートを生成できるため、部品の端子や端子間を関連付けたネット情報が決まっていない設計の早期の段階から基板のレイアウト設計を行うことができる。特に、多数の端子を有する部品は、接続する配線数も多く、周囲に配線用のスペースを多く要するため、設計の早期の段階から基板のレイアウト設計を行うことにより、部品の設計に手戻りが発生することを抑制できる。設計支援装置１０は、生成された概略ルートが基板に配置可能であるか干渉をチェックして配置可能な配線本数を導出することにより、配線が配置できるかを検証できる。
【００５３】
次に、本実施例に係る設計支援装置１０がレイアウト設計を支援する処理の流れを説明する。最初に、本実施例に係る設計支援装置１０が概略ルートを生成する生成処理の流れを説明する。図１４は、生成処理の手順を示すフローチャートである。この生成処理は、例えば、設計画面において配線の配置を指示する所定操作が行われたタイミングで実行される。
【００５４】
制御部２４は、配線をレイアウトする部品を受付ける受付処理を行う（Ｓ１０）。この受付処理により、配線をレイアウトする部品の指定が受付けられ、指定された部品を接続する概略ルートが生成される。
【００５５】
そして、制御部２４は、生成された概略ルートを調整する調整処理を行う（Ｓ１１）。この調整処理により、指定された配線本数を配置できない概略ルートについて振り分けおよび迂回ルートを検索する調整が行われる。
【００５６】
そして、制御部２４は、概略ルートを表示させる表示処理を行い（Ｓ１２）、処理を終了する。この表示処理により、設計画面６０に概略ルートが表示される。
【００５７】
次に、本実施例に係る受付処理の流れを説明する。図１５は、受付処理の手順を示すフローチャートである。この受付処理は、図１４に示した生成処理のＳ１０から実行される。
【００５８】
受付部４１は、指定画面７０を表示させ（Ｓ２０）、指定画面７０から接続する２つの部品および接続する配線本数の指定を受付ける。受付部４１は、指定画面７０で追加ボタン７４が選択され、配線の追加が指示されたか否かを判定する（Ｓ２１）。配線の追加が指示されていない場合（Ｓ２１否定）、処理は、再度Ｓ２１へ移行して指定待ちを行う。
【００５９】
一方、配線の追加が指示された場合（Ｓ２１肯定）、生成部４２は、指定画面７０で指定された始点および終点の２つの部品が基板上に配置されているか否かを判定する（Ｓ２２）。２つの部品が基板上に配置されていない場合（Ｓ２２否定）、受付処理の呼び出し元に処理が移行する。
【００６０】
一方、２つの部品が基板上に配置されている場合（Ｓ２２肯定）、生成部４２は、２つの部品を接続する配線の概略ルートを探索する探索処理を行い（Ｓ２３）、探索処理の終了後、受付処理の呼び出し元に処理が移行する。この探索処理により、始点および終点の２つの部品を接続する概略ルートが生成される。
【００６１】
次に、本実施例に係る探索処理の流れを説明する。図１６は、探索処理の手順を示すフローチャートである。この探索処理は、図１５に示した受付処理のＳ２３から実行される。
【００６２】
生成部４２は、実装仕様情報３０から線幅および許容間隔を読み出す（Ｓ３０）。そして、生成部４２は、指定画面７０で要求された配線本数と、線幅および許容間隔から概略ルートの幅Ｗを算出する（Ｓ３１）。例えば、生成部４２は、要求された配線本数×（線幅＋許容間隔）−許容間隔の演算を行って概略ルートの幅Ｗを算出する。
【００６３】
生成部４２は、概略ルートを配置可能か否かの判定に用いるチェック領域を求める（Ｓ３２）。例えば、生成部４２は、指定画面７０で指定された２つの部品を除く、基板上の部品、基板上の禁止領域について、それぞれ幅をＷ／２だけ拡大したチェック領域を求める。また、生成部４２は、既に配置済みの他の概略ルートについて、それぞれ幅をＷ／２に許容間隔を加算した幅だけ拡大したチェック領域を求める。
【００６４】
生成部４２は、基板上のチェック領域に含まれない領域を特定し、チェック領域に含まれない領域のグリッドをノードとし、上下左右のグリッドを接続する線をエッジとした無向グラフを生成する（Ｓ３３）。そして、生成部４２は、生成された無向グラフから、例えば、メーズ法などの経路探索アルゴリズを用いて配線経路を探索する（Ｓ３４）。
【００６５】
生成部４２は、探索の結果、配線経路があるか否かを判定する（Ｓ３５）。配線経路がある場合（Ｓ３５肯定）、処理は、後述するＳ３８へ移行する。
【００６６】
配線経路がない場合（Ｓ３５否定）、生成部４２は、基板上の全グリッドをノードとし、上下左右のグリッドを接続する線をエッジとした無向グラフを生成する（Ｓ３６）。すなわち、Ｓ３６の処理では、チェック領域のグリッドを除外せずに、チェック領域を含んだ無向グラフを生成する。そして、生成部４２は、生成された無向グラフから、例えば、メーズ法などの経路探索アルゴリズを用いて配線経路を探索する（Ｓ３７）。
【００６７】
生成部４２は、探索された配線経路の両端を指定画面７０で指定された部品の位置に補正する（Ｓ３８）。そして、生成部４２は、指定画面７０で指定された始点および終点の２つの部品、接続する配線本数、補正された配線経路に関する情報を概略ルート情報３３に格納し（Ｓ３９）、探索処理の呼び出し元に処理が移行する。
【００６８】
次に、本実施例に係る調整処理の流れを説明する。図１７は、調整処理の手順を示すフローチャートである。この調整処理は、図１４に示した生成処理のＳ１１、図２２に示した経路変更処理のＳ２０１および図２４に示した部品移動処理のＳ２５１から実行される。
【００６９】
導出部４３は、概略ルート情報３３に基づき、生成済みの概略ルートから未選択の概略ルートを１つ選択する（Ｓ５０）。そして、導出部４３は、上述のＳ５０の処理により選択した概略ルートを処理対象として、配置可能な配線本数を導出する導出処理を行う（Ｓ５１）。この導出処理により、選択した概略ルートについて配置する配置可能な配線本数が導出される。
【００７０】
導出部４３は、上述のＳ５０の処理により、全ての概略ルートを選択したか否かを判定する（Ｓ５２）。全ての概略ルートを選択していない場合（Ｓ５２否定）、処理は、Ｓ５０へ移行する。
【００７１】
一方、全ての概略ルートを選択した場合（Ｓ５２肯定）、導出部４３は、概略ルート情報３３に基づき、生成済みの概略ルートから未選択の概略ルートを１つ選択する（Ｓ５３）。そして、導出部４３は、選択した概略ルートの配置可能な配線本数が要求された配線本数よりも小さいか否かを判定する（Ｓ５４）。配置可能な配線本数が要求された配線本数以上の場合、（Ｓ５４否定）、処理は、後述するＳ５６へ移行する。すなわち、配置可能な配線本数が要求された配線本数以上である場合は、概略ルートに要求された本数の配線を配置でき、配線の振り分けを行なわなくてもよいため、後述するＳ５６へ移行する。
【００７２】
一方、配置可能な配線本数が要求された配線本数よりも小さい場合（Ｓ５４肯定）、振分部４５は、上述のＳ５３の処理により選択した概略ルートを処理対象として、配置できない配線を振り分ける振分処理を行う（Ｓ５５）。この振分処理により、選択した概略ルートについて配置可能な配線本数が導出される。
【００７３】
振分部４５は、上述のＳ５３の処理により、全ての概略ルートの選択が完了したか否かを判定する（Ｓ５６）。全ての概略ルートを選択していない場合（Ｓ５６否定）、処理は、Ｓ５３へ移行する。
【００７４】
一方、全ての概略ルートを選択した場合（Ｓ５６肯定）、迂回ルート生成部４６は、概略ルート情報３３に基づき、生成済みの概略ルートから未選択の概略ルートを１つ選択する（Ｓ５７）。そして、迂回ルート生成部４６は、選択した概略ルートの配置可能な配線本数が要求された配線本数よりも小さいか否かを判定する（Ｓ５８）。配置可能な配線本数が要求された配線本数以上の場合、（Ｓ５８否定）、処理は、後述するＳ６０へ移行する。すなわち、配置可能な配線本数が要求された配線本数以上であり、概略ルートに要求された本数の配線を配置できる場合は、迂回ルートの検索を行なわなくてもよいため、後述するＳ６０へ移行する。
【００７５】
一方、配置可能な配線本数が要求された配線本数よりも小さい場合（Ｓ５８肯定）、迂回ルート生成部４６は、上述のＳ５７の処理により選択した概略ルートを処理対象として、配線を配置可能な迂回ルートを生成する迂回ルート生成処理を行う（Ｓ５９）。この迂回ルート生成処理により、配線を配置できない概略ルートについて迂回ルートが生成される。
【００７６】
迂回ルート生成部４６は、上述のＳ５７の処理により、全ての概略ルートの選択が完了したか否かを判定する（Ｓ６０）。全ての概略ルートを選択していない場合（Ｓ６０否定）、処理は、Ｓ５７へ移行する。
【００７７】
一方、全ての概略ルートを選択した場合（Ｓ６０肯定）、処理は、調整処理の呼び出し元に処理が移行する。
【００７８】
次に、本実施例に係る導出処理の流れを説明する。図１８は、導出処理の手順を示すフローチャートである。この導出処理は、図１７に示した調整処理のＳ５１および図２０に示した迂回ルート生成処理のＳ１２７から実行される。
【００７９】
導出部４３は、実装仕様情報３０から線幅および許容間隔を読み出す（Ｓ７０）。そして、導出部４３は、変数Ｎに１をセットする（Ｓ７１）。導出部４３は、変数Ｎの値が処理対象の概略ルートの要求された配線本数よりも大きくなったか否かを判定する（Ｓ７２）。変数Ｎの値が要求された配線本数よりも大きい場合（Ｓ７２肯定）、処理は、後述するＳ７９へ移行する。
【００８０】
一方、変数Ｎの値が要求された配線本数以下の場合（Ｓ７２否定）、導出部４３は、変数Ｎの値×（線幅＋許容間隔）−許容間隔の演算を行って配線数が変数Ｎの値の場合の概略ルートの幅Ｗを算出する（Ｓ７３）。導出部４３は、処理対象の概略ルートに沿って幅Ｗとした概略ルート領域を求める（Ｓ７４）。導出部４３は、概略ルート領域が部品または禁止領域と干渉するか否かを判定する（Ｓ７５）。例えば、導出部４３は、基板上の他の部品、基板上の禁止領域の何れかと領域が重複するか否かを判定する。概略ルート領域が干渉している場合（Ｓ７５肯定）、処理は、後述するＳ７９へ移行する。
【００８１】
一方、概略ルート領域が干渉していない場合（Ｓ７５否定）、導出部４３は、幅Ｗを許容間隔だけ拡大して、処理対象の概略ルートに沿って拡大した幅Ｗでの概略ルート領域を求める（Ｓ７６）。導出部４３は、拡大した幅Ｗの概略ルート領域が基板に配置された他の概略ルートと干渉するか否かを判定する（Ｓ７７）。例えば、導出部４３は、基板に配置された他の概略ルートの何れかと領域が重複するか否かを判定する。概略ルート領域が干渉している場合（Ｓ７７肯定）、処理は、後述するＳ７９へ移行する。
【００８２】
一方、概略ルート領域が干渉していない場合（Ｓ７７否定）、導出部４３は、変数Ｎの値を１加算した後（Ｓ７８）、上述のＳ７２へ移行する。
【００８３】
導出部４３は、変数Ｎの値から１減算する（Ｓ７９）。導出部４３は、変数Ｎの値を処理対象の概略ルートの配置可能な配線本数として概略ルート情報３３に格納し（Ｓ８０）、導出処理の呼び出し元に処理が移行する。
【００８４】
次に、本実施例に係る振分処理の流れを説明する。図１９は、振分処理の手順を示すフローチャートである。この振分処理は、図１７に示した調整処理のＳ５５から実行される。
【００８５】
探索部４４は、処理対象の概略ルートについて、要求された配線本数から配置可能な配線本数を減算して、配置不能本数Ｑを算出する（Ｓ９０）。探索部４４は、概略ルート情報３３から、処理対象の概略ルート以外の他の概略ルートを１つ選択する（Ｓ９１）。
【００８６】
探索部４４は、処理対象の概略ルートと、Ｓ９１の処理により選択された他の概略ルートの始点および終点の部品が一致するか否かを判定する（Ｓ９２）。一致しない場合（Ｓ９２否定）、処理は、後述するＳ１０７へ移行する。
【００８７】
一方、一致する場合（Ｓ９２肯定）、探索部４４は、Ｓ９１の処理により選択された他の概略ルートの配置可能な配線本数が要求された配線本数以上であるか否かを判定する（Ｓ９３）。他の概略ルートの配置可能な配線本数が要求された配線本数より少ない場合（Ｓ９３否定）、処理は、後述するＳ１０７へ移行する。すなわち、他の概略ルートが要求された本数の配線を配置できない場合は、他の概略ルートへ配線を振り分けることができないため、配線の振り分けを行わずに、後述するＳ１０７へ移行する。
【００８８】
一方、他の概略ルートの配置可能な配線本数が要求された配線本数以上である場合（Ｓ９３肯定）、振分部４５は、実装仕様情報３０から線幅および許容間隔を読み出す（Ｓ９４）。そして、振分部４５は、変数Ｎに１をセットする（Ｓ９５）。導出部４３は、変数Ｎの値が配置不能本数Ｑの値よりも大きいか否かを判定する（Ｓ９６）。変数Ｎの値が配置不能本数Ｑの値よりも大きい場合（Ｓ９６肯定）、処理は、後述するＳ１０３へ移行する。
【００８９】
一方、変数Ｎの値が配置不能本数Ｑの値以下の場合（Ｓ９６否定）、振分部４５は、Ｓ９１の処理により選択された他の概略ルートについて配線を１本増やした概略ルートの幅Ｗを算出する（Ｓ９７）。例えば、振分部４５は、（他の概略ルートの配置可能な配線本数＋変数Ｎの値）×（線幅＋許容間隔）−許容間隔の演算を行って概略ルートの幅Ｗを算出する。振分部４５は、上述のＳ９１の処理により選択された他の概略ルートに沿って幅Ｗとした概略ルート領域を求める（Ｓ９８）。振分部４５は、概略ルート領域が部品または禁止領域と干渉するか否かを判定する（Ｓ９９）。例えば、振分部４５は、基板上の他の部品、基板上の禁止領域の何れかと領域が重複するか否かを判定する。概略ルート領域が干渉している場合（Ｓ９９肯定）、処理は、後述するＳ１０３へ移行する。
【００９０】
一方、概略ルート領域が干渉していない場合（Ｓ９９否定）、振分部４５は、幅Ｗを許容間隔だけ拡大して、上述のＳ９１の処理により選択された他の概略ルートに沿って拡大した幅Ｗでの概略ルート領域を求める（Ｓ１００）。振分部４５は、拡大した幅Ｗの概略ルート領域が基板に配置された他の概略ルートと干渉するか否かを判定する（Ｓ１０１）。例えば、振分部４５は、基板に配置された他の概略ルートの何れかと領域が重複するか否かを判定する。概略ルート領域が干渉している場合（Ｓ１０１肯定）、処理は、後述するＳ１０３へ移行する。
【００９１】
一方、概略ルート領域が干渉していない場合（Ｓ１０１否定）、振分部４５は、変数Ｎの値を１加算した後（Ｓ１０２）、上述のＳ９６へ移行する。
【００９２】
導出部４３は、変数Ｎの値を１減算した値に更新する（Ｓ１０３）。振分部４５は、振分部４５は、Ｓ９１の処理により選択された他の概略ルートについての概略ルート情報３３に記憶された配置可能な配線本数の値を、当該配置可能な配線本数の値に変数Ｎの値を加算した値に更新する（Ｓ１０４）。振分部４５は、配置不能本数Ｑの値を、当該配置不能本数Ｑの値から変数Ｎの値を減算した値に更新する（Ｓ１０５）。
【００９３】
このＳ９２〜Ｓ１０５の処理により、始点および終点の部品が一致する他の概略ルートに配線の振り分けが行われる。
【００９４】
振分部４５は、配置不能本数Ｑの値がゼロとなったか否かを判定する（Ｓ１０６）。配置不能本数Ｑの値がゼロとなった場合（Ｓ１０６肯定）、処理は、振分処理の呼び出し元に処理が移行する。
【００９５】
一方、配置不能本数Ｑの値がゼロではない場合（Ｓ１０６否定）、振分部４５は、概略ルート情報３３から、処理対象の概略ルート以外の他の概略ルートを全て選択したか否かを判定する（Ｓ１０７）。全て選択した場合（Ｓ１０７肯定）、処理は、振分処理の呼び出し元に処理が移行する。一方、全て選択していない場合（Ｓ１０７否定）、処理は、上述のＳ９１へ移行する。
【００９６】
次に、本実施例に係る迂回ルート生成処理の流れを説明する。図２０は、迂回ルート生成処理の手順を示すフローチャートである。この迂回ルート生成処理は、図１７に示した調整処理のＳ５９から実行される。
【００９７】
迂回ルート生成部４６は、実装仕様情報３０から線幅および許容間隔を読み出す（Ｓ１２０）。そして、迂回ルート生成部４６は、処理対象の概略ルートの要求された配線本数と、線幅および許容間隔から概略ルートの幅Ｗを算出する（Ｓ１２１）。例えば、生成部４２は、要求された配線本数×（線幅＋許容間隔）−許容間隔の演算を行って概略ルートの幅Ｗを算出する。
【００９８】
迂回ルート生成部４６は、処理対象の概略ルートを配置できるかのチェックに用いるチェック領域を求める（Ｓ１２２）。例えば、迂回ルート生成部４６は、処理対象の概略ルートにより接続される２つの部品を除く、基板上の部品、基板上の禁止領域について、それぞれ幅をＷ／２だけ拡大したチェック領域を求める。また、生成部４２は、既に配置済みの他の概略ルートについて、それぞれ幅をＷ／２に許容間隔を加算した幅だけ拡大したチェック領域を求める。
【００９９】
迂回ルート生成部４６は、上述のＳ１２２の処理により求めたチェック領域から、未選択のチェック領域を１つ選択する（Ｓ１２３）。迂回ルート生成部４６は、処理対象の概略ルートが、上述のＳ１２３の処理により選択されたチェック領域と交差するか否かを判定する（Ｓ１２４）。交差する場合（Ｓ１２４肯定）、処理は、後述するＳ１２６へ移行する。
【０１００】
一方、交差しない場合（Ｓ１２４否定）、迂回ルート生成部４６は、上述のＳ１２３の処理により、全ての概略ルートを選択したか否かを判定する（Ｓ１２５）。全ての概略ルートを選択した場合（Ｓ１２５肯定）、処理は、迂回ルート生成処理の呼び出し元に処理が移行する。一方、全ての概略ルートを選択していない場合（Ｓ１２５否定）、処理は、上述のＳ１２３へ移行する。
【０１０１】
迂回ルート生成部４６は、交差するチェック領域に沿った迂回する概略ルートを求める（Ｓ１２６）。迂回ルート生成部４６は、迂回する概略ルートを処理対象として、配置可能な配線本数を導出する導出処理を行う（Ｓ１２７）。この導出処理により、迂回する概略ルートについて配置可能な配線本数が導出される。
【０１０２】
迂回ルート生成部４６は、迂回する概略ルートの配置可能な配線本数が、処理対象の概略ルートの配置可能な配線本数よりも大きいか否かを判定する（Ｓ１２８）。迂回する概略ルートの配置可能な配線本数の方が大きい場合（Ｓ１２８肯定）、迂回ルート生成部４６は、処理対象の概略ルートの経路座標の情報を、迂回する概略ルートの経路座標の情報で更新する（Ｓ１２９）。例えば、迂回ルート生成部４６は、概略ルート情報３３に記憶された、処理対象の概略ルートの情報を、迂回する概略ルートの情報で更新する。そして、処理は、迂回ルート生成処理の呼び出し元に処理が移行する。
【０１０３】
一方、迂回する概略ルートの配置可能な配線本数の方が大きくはない場合（Ｓ１２８否定）、処理は、迂回ルート生成処理の呼び出し元に処理が移行する。
【０１０４】
次に、本実施例に係る表示処理の流れを説明する。図２１は、表示処理の手順を示すフローチャートである。この表示処理は、図１４に示した生成処理のＳ１２、図２２に示した経路変更処理のＳ２０２および図２４に示した部品移動処理のＳ２５２から実行される。
【０１０５】
表示制御部４７は、概略ルート情報３３に基づき、生成済みの概略ルートから未選択の概略ルートを１つ選択する（Ｓ１４０）。そして、表示制御部４７は、選択した概略ルートを基板上へ表示する（Ｓ１４１）。表示制御部４７は、選択した概略ルートの配置可能な配線本数が要求された配線本数よりも小さいか否かを判定する（Ｓ１４２）。配置可能な配線本数が要求された配線本数よりも小さい場合（Ｓ１４２肯定）、表示制御部４７は、配置可能な配線本数および要求された配線本数を概略ルートの始点および終点の部品近辺に表示する（Ｓ１４３）。一方、配置可能な配線本数が要求された配線本数以上の場合（Ｓ１４２否定）、表示制御部４７は、配置可能な配線本数を概略ルートの始点および終点の部品近辺に表示する（Ｓ１４４）。
【０１０６】
表示制御部４７は、上述のＳ１４０の処理により、全ての概略ルートを選択したか否かを判定する（Ｓ１４５）。全ての概略ルートを選択した場合（Ｓ１４５肯定）、処理は、後述するＳ１４６へ移行する。一方、全ての概略ルートを選択していない場合（Ｓ１４５否定）、処理は、上述のＳ１４０へ移行する。
【０１０７】
表示制御部４７は、部品情報３２に基づき、基板上に配置された部品から未選択の部品を１つ選択する（Ｓ１４６）。表示制御部４７は、概略ルート情報３３から選択された部品を含む概略ルートを求め、概略ルートの要求された配線本数を加算して接続数Ｔを求める（Ｓ１４７）。表示制御部４７は、接続数Ｔがゼロより大きいか否かを判定する（Ｓ１４８）。接続数Ｔがゼロより大きい場合（Ｓ１４８肯定）、表示制御部４７は、基板上に配置された部品の中央部分に接続数Ｔの値を表示させる（Ｓ１４９）。一方、接続数Ｔがゼロの場合（Ｓ１４８否定）、処理は、後述するＳ１５０へ移行する。
【０１０８】
表示制御部４７は、上述のＳ１４６の処理により、全ての部品を選択したか否かを判定する（Ｓ１５０）。全ての部品を選択していない場合（Ｓ１５０否定）、処理は、上述のＳ１４６へ移行する。一方、全ての部品を選択した場合（Ｓ１５０肯定）、処理は、表示処理の呼び出し元に処理が移行する。
【０１０９】
次に、本実施例に係る設計支援装置１０が設計者からの操作に応じて概略ルートの経路を変更する経路変更処理の流れを説明する。図２２は、経路変更処理の手順を示すフローチャートである。この経路変更処理は、例えば、設計画面に表示された基板上のいずれかの概略ルートが選択されたタイミングで実行される。
【０１１０】
制御部２４は、概略ルートの経路の変更を受付ける経路変更受付処理を行う（Ｓ２００）。この経路変更受付処理により、概略ルートの経路が指定された経路に変更される。
【０１１１】
そして、制御部２４は、概略ルートを調整する上述の調整処理を行う（Ｓ２０１）。そして、制御部２４は、概略ルートを表示させる上述の表示処理を行い（Ｓ２０２）、処理を終了する。
【０１１２】
次に、本実施例に係る経路変更受付処理の流れを説明する。図２３は、経路変更受付処理の手順を示すフローチャートである。この経路変更受付処理は、図２２に示した経路変更処理のＳ２００から実行される。
【０１１３】
表示制御部４７は、概略ルート情報３３に基づき、基板上で選択された概略ルートの始点および終点の部品を特定する（Ｓ２１０）。表示制御部４７は、選択された概略ルートにより接続された２つの部品の何れかが選択されたか否かを判定する（Ｓ２１１）。選択されていない場合（Ｓ２１１否定）、処理は、再度Ｓ２１１へ移行して、選択待ちを行う。
【０１１４】
一方、部品が選択された場合（Ｓ２１１肯定）、表示制御部４７は、選択された部品を上述のＳ２１１において始点の部品とし、他方の部品を終点の部品として、概略ルート情報３３に選択された概略ルートの始点および終点の部品名を設定する（Ｓ２１２）。
【０１１５】
表示制御部４７は、概略ルート情報３３の特定した概略ルートの経路座標数および経路座標の情報を削除する（Ｓ２１３）。そして、表示制御部４７は、概略ルート情報３３の特定した概略ルートの最初の経路座標の情報に始点の部品の座標を格納する（Ｓ２１４）。
【０１１６】
表示制御部４７は、基板上の位置の指定を受付けたか否かを判定する（Ｓ２１５）。例えば、表示制御部４７は、基板上がクリックされたか否かを判定する。位置が指定されていない場合（Ｓ２１５否定）、処理は、上述のＳ２１５へ移行する。一方、位置が指定された場合（Ｓ２１５肯定）、表示制御部４７は、指定された位置が終点の部品の位置であるか否かを判定する（Ｓ２１６）。指定された位置が終点の部品の位置ではない場合（Ｓ２１６否定）、表示制御部４７は、指定された位置の座標の情報を概略ルート情報３３の特定した概略ルートの経路座標に追加し（Ｓ２１７）、再度上述のＳ２１５へ移行する。
【０１１７】
一方、指定された位置が終点の部品の位置である場合（Ｓ２１６肯定）、表示制御部４７は、終点の部品の座標の情報を概略ルート情報３３の特定した概略ルートの経路座標に追加する（Ｓ２１８）。表示制御部４７は、概略ルート情報３３の経路座標により示される配線経路の両端の位置を始点および終点の部品の位置に補正し（Ｓ２１９）、経路変更受付処理の呼び出し元に処理が移行する。
【０１１８】
次に、本実施例に係る設計支援装置１０が設計者からの操作に応じて部品の位置を移動させる部品移動処理の流れを説明する。図２４は、部品移動処理の手順を示すフローチャートである。この部品移動処理は、例えば、設計画面に表示されたいずれかの部品が選択されたタイミングで実行される。
【０１１９】
制御部２４は、部品の配置の変更する配置変更処理を行う（Ｓ２５０）。この配置変更処理により、指定された部品の配置が変更される。
【０１２０】
そして、制御部２４は、概略ルートを調整する上述の調整処理を行う（Ｓ２５１）。そして、制御部２４は、概略ルートを表示させる上述の表示処理を行い（Ｓ２５２）、処理を終了する。
【０１２１】
次に、本実施例に係る配置変更処理の流れを説明する。図２５は、配置変更処理の手順を示すフローチャートである。この配置変更処理は、図２４に示した部品移動処理のＳ２５０から実行される。
【０１２２】
表示制御部４７は、選択された部品を選択状態として表示する（Ｓ２６０）。また、表示制御部４７は、選択された部品に関する情報を部品情報３２から読み出す（Ｓ２６１）。
【０１２３】
表示制御部４７は、部品の回転を指示する操作が行われたか否かを判定する（Ｓ２６２）。例えば、表示制御部４７は、部品の回転を指示する操作として、「Ｒ」ボタンが指定されたか否かを判定する。部品の回転を指示する操作が行われた場合（Ｓ２６２肯定）、表示制御部４７は、選択された部品を一方方向へ９０度回転して表示させ、部品の回転角度に関する情報も９０度回転させた情報に更新する（Ｓ２６３）。例えば、表示制御部４７は、選択された部品の角度をＣとした場合、Ｃ＋９０とした値を求め、Ｃ＋９０を３６０で割った余りの値を角度Ｃとする。
【０１２４】
部品の回転を指示する操作が行われていない場合（Ｓ２６２否定）表示制御部４７は、部品の配置位置を指定する操作が行われたか否かを判定する（Ｓ２６４）。例えば、表示制御部４７は、部品の配置位置を指定する操作として、基板がクリックされたか否かを判定する。部品の配置位置を指定する操作が行われていない場合（Ｓ２６４否定）、処理は、上述のＳ２６２へ移行する。
【０１２５】
部品の配置位置を指定する操作が行われた場合（Ｓ２６４肯定）、表示制御部４７は、選択された部品を指定された位置に表示させる（Ｓ２６５）。そして、表示制御部４７は、部品情報３２の選択された部品の中心座標を指定された位置の座標に更新する（Ｓ２６６）。
【０１２６】
表示制御部４７は、概略ルート情報３３から、選択された部品が始点または終点の部品となるレコードがあるか否かを判定する（Ｓ２６７）。レコードがない場合（Ｓ２６７否定）、処理は、部品移動処理の呼び出し元に処理が移行する。
【０１２７】
一方、レコードがある場合（Ｓ２６７肯定）、表示制御部４７は、選択された部品側の経路座標を、指定された位置の座標に更新する（Ｓ２６８）。例えば、表示制御部４７は、選択された部品が始点の部品である場合、最初の経路座標を指定された位置の座標に更新する。また、表示制御部４７は、選択された部品が終点の部品である場合、最後の経路座標を指定された位置の座標に更新する。そして、処理は、部品移動処理の呼び出し元に処理が移行する。
【０１２８】
このように、設計支援装置１０は、配線により接続する２つの部品および接続する配線本数の指定を受付ける。そして、設計支援装置１０は、基板上に、受付けた配線本数に応じた幅で２つの部品を結ぶ概略ルートを生成する。そして、設計支援装置１０は、生成された概略ルートが基板に配置可能であるか干渉をチェックして配置可能な配線本数を導出する。これにより、設計支援装置１０は、設計の早期の段階から基板のレイアウト設計を行うことができる。
【０１２９】
また、設計支援装置１０は、導出された配置可能な配線本数が受付けた配線本数未満の概略ルートが存在する場合、当該概略ルートと同じ部品を接続する他の概略ルートを検索する。そして、設計支援装置１０は、検索された他の概略ルートへ一部の配線を振り分ける。これにより、設計支援装置１０は、概略ルートに配置できない配線が発生した場合でも、同じ部品を接続する他の概略ルートへ振り分けられるため、レイアウト設計を容易に行うことができる。
【０１３０】
また、設計支援装置１０は、生成された概略ルートが基板に配置された部品または他の概略ルートと干渉する場合、生成された概略ルートに代えて、干渉する部品または他の概略ルートの形状に沿って迂回させた概略ルートを生成する。これにより、設計支援装置１０は、概略ルートと干渉が発生する場合でも、迂回ルートが生成されるため、レイアウト設計を容易に行うことができる。
【実施例２】
【０１３１】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１３２】
例えば、上記の実施例では、生成部４２が配線経路を探索して概略ルートを生成する場合について説明したが、開示の装置はこれに限定されない。例えば、開発者が入力部２１または設計支援装置１０と通信可能とされたクライアントコンピュータなどの端末装置から概略ルートの経路を指定し、生成部４２が指定された経路に沿って概略ルートを生成してもよい。
【０１３３】
また、上記の実施例では、実装仕様情報３０に、基板に配線を配置する際の配線に関する実装の条件を１つ記憶する場合について説明したが、開示の装置はこれに限定されない。例えば、配線の種類により複数の条件を記憶させ、配線の種類に応じた幅で概略ルートを生成してもよい。配線の種類は、設計者が指定してもよい。また、部品に当該部品の属性情報を関連付けて記憶し、属性情報に基づいて配線の種類を決定してもよい。例えば、部品毎に、使用する部品の種類または使用する配線の種類を属性情報として関連付け、属性情報により示される部品の種類または使用する配線の種類に応じて配線の種類を決定してもよい。
【０１３４】
また、上記の実施例に係る設計支援装置１０の制御部２４は、部品の設計データに基づき、基板上の部品および概略ルートを実際の設計データに基づく部品および配線に置き換える置換部を有してもよい。例えば、設計支援装置１０は、回路設計が進み、部品の設計が定まった段階で取得部４０により部品の設計データを取得する。そして、設計支援装置１０は、置換部が、取得した設計データに基づき、概略的に配置した部品および概略ルートを実際の設計部品および設計部品を接続する配線のデータに置き変えるようにしてもよい。これにより、設計が進んだ段階で、設計データに基づく部品を基板に配置できるため、基板への部品のレイアウト設計をよりスムーズに進めることができる。
【０１３５】
また、上記の実施例の基板は、多層基板であってもよい。上記の実施例に係る設計支援装置１０は、各層についてレイアウト設計を行うことで、多層基板の場合でもレイアウト設計を行うことができる。
【０１３６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１に示す取得部４０、受付部４１、生成部４２、導出部４３、探索部４４、振分部４５、迂回ルート生成部４６および表示制御部４７の各処理部が適宜統合または分割されてもよい。また、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１３７】
［設計支援プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図２６は、設計支援プログラムを実行するコンピュータを示す図である。
【０１３８】
図２６に示すように、コンピュータ３００は、ＣＰＵ３１０、Read  Only  Memory（ＲＯＭ）３２０、Hard  Disk  Drive（ＨＤＤ）３３０、Random  Access  Memory（ＲＡＭ）３４０を有する。これら３１０〜３４０の各部は、バス４００を介して接続される。
【０１３９】
ＲＯＭ３２０には上記実施例の各処理部と同様の機能を発揮する設計支援プログラム３２０ａが予め記憶される。例えば、上記実施例の取得部４０、受付部４１、生成部４２、導出部４３、探索部４４、振分部４５、迂回ルート生成部４６および表示制御部４７と同様の機能を発揮する設計支援プログラム３２０ａを記憶させる。なお、設計支援プログラム３２０ａについては、適宜分離しても良い。
【０１４０】
ＨＤＤ３３０には、各種データを記憶する。例えば、ＨＤＤ３３０は、ＯＳや特性の推定に用いる各種データを記憶する。
【０１４１】
そして、ＣＰＵ３１０が、設計支援プログラム３２０ａをＲＯＭ３２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、設計支援プログラム３２０ａは、実施例の取得部４０、受付部４１、生成部４２、導出部４３、探索部４４、振分部４５、迂回ルート生成部４６および表示制御部４７と同様の動作を実行する。
【０１４２】
なお、上記した設計支援プログラム３２０ａについては、必ずしも最初からＲＯＭ３２０に記憶させることを要しない。設計支援プログラム３２０ａはＨＤＤ３３０に記憶させてもよい。
【０１４３】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、Compact  Disk  Read  Only  Memory（ＣＤ−ＲＯＭ）、Digital  Versatile  Disk（ＤＶＤ）、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１４４】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１４５】
１０      設計支援装置
２１      入力部
２２      表示部
２３      記憶部
２４      制御部
３０      実装仕様情報
３１      基板情報
３２      部品情報
３３      概略ルート情報
３４      禁止領域情報
４０      取得部
４１      受付部
４２      生成部
４３      導出部
４４      探索部
４５      振分部
４６      迂回ルート生成部
４７      表示制御部
【図１】
2014135035.tif 000003
【図２】
2014135035.tif 000004
【図３】
2014135035.tif 000005
【図４】
2014135035.tif 000006
【図５】
2014135035.tif 000007
【図６】
2014135035.tif 000008
【図７】
2014135035.tif 000009
【図８】
2014135035.tif 000010
【図９】
2014135035.tif 000011
【図１０】
2014135035.tif 000012
【図１１】
2014135035.tif 000013
【図１２】
2014135035.tif 000014
【図１３】
2014135035.tif 000015
【図１４】
2014135035.tif 000016
【図１５】
2014135035.tif 000017
【図１６】
2014135035.tif 000018
【図１７】
2014135035.tif 000019
【図１８】
2014135035.tif 000020
【図１９】
2014135035.tif 000021
【図２０】
2014135035.tif 000022
【図２１】
2014135035.tif 000023
【図２２】
2014135035.tif 000024
【図２３】
2014135035.tif 000025
【図２４】
2014135035.tif 000026
【図２５】
2014135035.tif 000027
【図２６】
2014135035.tif 000028