(57)【要約】【課題】任意の段階の設計データを得ることができるバス配線探索プログラム、バス配線探索方法および情報処理装置を提供する。【解決手段】バス配線探索プログラムは、バス配線の条件の変更、または、バス配線の条件に基づく配線結果の生成が行われると、第１ノードを生成する処理をコンピュータに実行させる。バス配線探索プログラムは、生成した第１ノードに、バス配線の条件とバス配線の条件の変更後の設計データとを対応付け、あるいは、バス配線の条件と配線結果と配線結果の生成後の設計データとを対応付けて、記憶部に保存する処理をコンピュータに実行させる。バス配線探索プログラムは、バス配線の条件の指定を受け付けると、指定されたバス配線の条件と一致する第２ノードを探索する処理をコンピュータに実行させる。バス配線探索プログラムは、探索した第２ノードに対応する設計データを出力する処理をコンピュータに実行させる。【選択図】図１Ｂ
2019144705.tif 000002
【特許請求の範囲】
【請求項１】
バス配線の条件の変更、または、前記バス配線の条件に基づく配線結果の生成が行われると、第１ノードを生成し、
生成した前記第１ノードに、前記バス配線の条件と前記バス配線の条件の変更後の設計データとを対応付け、あるいは、前記バス配線の条件と前記配線結果と前記配線結果の生成後の設計データとを対応付けて、記憶部に保存し、
前記バス配線の条件の指定を受け付けると、指定された前記バス配線の条件と一致する第２ノードを探索し、
探索した前記第２ノードに対応する設計データを出力する、
処理をコンピュータに実行させることを特徴とするバス配線探索プログラム。
【請求項２】
前記生成する処理は、基準となるノードを根ノードとし、前記第１ノードを子ノードとする木構造となるように、前記第１ノードを生成する、
ことを特徴とする請求項１に記載のバス配線探索プログラム。
【請求項３】
前記生成する処理は、前記第１ノードの生成時に、前記根ノードから順に幅優先探索を用いて、前記第１ノードに対応する前記バス配線の条件と、既存のノードのバス配線の条件との差分を算出し、算出した該差分が最小となる既存のノードの配下に、前記第１ノードを生成する、
ことを特徴とする請求項２に記載のバス配線探索プログラム。
【請求項４】
前記生成する処理は、前記バス配線の条件が複数の項目を有する場合に、該項目に優先度を付与し、前記優先度が高い項目を上位の桁とする、該項目ごとに差分の有無を表す値を算出し、算出した該値が最小となる既存のノードの配下に、前記第１ノードを生成する、
ことを特徴とする請求項３に記載のバス配線探索プログラム。
【請求項５】
前記生成する処理は、バスに関する配線条件情報、基板上の配線ルールに関する配線ルール情報、および、親ノードと子ノードとの配線の差分に関する配線差分情報を比較して、生成する前記第１ノードと既存のノードとの間における前記項目ごとの差分を算出する、
ことを特徴とする請求項４に記載のバス配線探索プログラム。
【請求項６】
前記バス配線の条件は、バスネット定義、バス配線対象層、バス経路、バス自動配線優先順、ネット線幅および前記配線結果のうち、１つまたは複数の情報を含む、
ことを特徴とする請求項３〜５のいずれか１つに記載のバス配線探索プログラム。
【請求項７】
前記探索する処理は、所定の検索条件に合致する前記木構造を表示し、表示した前記木構造に含まれるノードの指定を受け付けることで、前記バス配線の条件の指定を受け付ける、
ことを特徴とする請求項２〜６のいずれか１つに記載のバス配線探索プログラム。
【請求項８】
前記探索する処理は、前記木構造を表示し、表示した前記木構造に含まれる２つのノードの指定を受け付け、受け付けた前記２つのノードのノード間の前記バス配線の条件の差分を表示し、前記２つのノードのうち、いずれかのノードの指定を受け付けることで、前記バス配線の条件の指定を受け付ける、
ことを特徴とする請求項２〜６のいずれか１つに記載のバス配線探索プログラム。
【請求項９】
バス配線の条件の変更、または、前記バス配線の条件に基づく配線結果の生成が行われると、第１ノードを生成し、
生成した前記第１ノードに、前記バス配線の条件と前記バス配線の条件の変更後の設計データとを対応付け、あるいは、前記バス配線の条件と前記配線結果と前記配線結果の生成後の設計データとを対応付けて、記憶部に保存し、
前記バス配線の条件の指定を受け付けると、指定された前記バス配線の条件と一致する第２ノードを探索し、
探索した前記第２ノードに対応する設計データを出力する、
処理をコンピュータが実行することを特徴とするバス配線探索方法。
【請求項１０】
バス配線の条件の変更、または、前記バス配線の条件に基づく配線結果の生成が行われると、第１ノードを生成する生成部と、
生成した前記第１ノードに、前記バス配線の条件と前記バス配線の条件の変更後の設計データとを対応付け、あるいは、前記バス配線の条件と前記配線結果と前記配線結果の生成後の設計データとを対応付けて、記憶部に保存する保存部と、
前記バス配線の条件の指定を受け付けると、指定された前記バス配線の条件と一致する第２ノードを探索する探索部と、
探索した前記第２ノードに対応する設計データを出力する出力制御部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス配線探索プログラム、バス配線探索方法および情報処理装置に関する。
【背景技術】
【０００２】
近年、多層基板における配線設計作業では、信号速度が高速化しているため、設計制約条件が指示されることが一般的になっている。例えば、ビアを用いて複数層による配線を行う場合では、層間移動での遅延が発生するため、部品ピンからの引き出しビアを使用し、配線途中でのビアを使用しない配線（以下、単層配線という。）が制約条件として指示されることがある。しかしながら、多数の信号を持つ信号群（以下、バスという。）を単層配線すると、迂回等により配線領域が広がるとともに、信号間での線長差分が大きくなり、等長条件等を遵守するための調整が難しく、高密度配線に支障をきたす場合がある。これに対し、バスを複数層分割し、各層で分割された信号群を単層配線することで、線長差を抑制することが行われている。また、配線設計作業における自動配線では、設計条件に優先度を設けて、優先度に応じて設計条件を変更することが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００８／１４６３５６号
【特許文献２】特開２００３−０９１５６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、バスの単層配線では、分割条件、配線層条件、配線経路条件および配線ルール等のバス配線の条件を設定して配線を試行したときに、全ての対象ネットが配線出来なかった場合、いずれかの条件を変更するために手戻りが発生する。この場合、配線出来なかったバス配線の条件を変更するか、当該バス配線に影響を及ぼす別の配線を引きなおすかは、熟練の設計者でも実際に手戻りしてみないと分からないことが多い。手戻りさせたい段階の設計データは、設計者が必要と判断した段階の設計データを保存しているため、バス配線の条件をどの様に変更したかを管理することが難しい。このため、任意の段階の設計データを得ることが困難である。
【０００５】
一つの側面では、任意の段階の設計データを得ることができるバス配線探索プログラム、バス配線探索方法および情報処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
一つの態様では、バス配線探索プログラムは、バス配線の条件の変更、または、前記バス配線の条件に基づく配線結果の生成が行われると、第１ノードを生成する処理をコンピュータに実行させる。バス配線探索プログラムは、生成した前記第１ノードに、前記バス配線の条件と前記バス配線の条件の変更後の設計データとを対応付け、あるいは、前記バス配線の条件と前記配線結果と前記配線結果の生成後の設計データとを対応付けて、記憶部に保存する処理をコンピュータに実行させる。バス配線探索プログラムは、前記バス配線の条件の指定を受け付けると、指定された前記バス配線の条件と一致する第２ノードを探索する処理をコンピュータに実行させる。バス配線探索プログラムは、探索した前記第２ノードに対応する設計データを出力する処理をコンピュータに実行させる。
【発明の効果】
【０００７】
任意の段階の設計データを得ることができる。
【図面の簡単な説明】
【０００８】
【図１Ａ】図１Ａは、実施例の情報処理装置の構成の一例を示すブロック図である。
【図１Ｂ】図１Ｂは、実施例の情報処理装置の機能構成の一例を示すブロック図である。
【図２】図２は、共通情報記憶部の一例を示す図である。
【図３】図３は、ノード情報記憶部の一例を示す図である。
【図４】図４は、配線条件情報のデータ構造の一例を示す図である。
【図５】図５は、配線ルール情報のデータ構造の一例を示す図である。
【図６】図６は、配線差分情報のデータ構造の一例を示す図である。
【図７】図７は、ノード生成処理の概要を説明する図である。
【図８】図８は、ノードへの配線条件項目の登録の一例を示す図である。
【図９】図９は、配線条件情報のデータ構造の生成の一例を示す図である。
【図１０】図１０は、配線ルール情報のデータ構造の生成の一例を示す図である。
【図１１】図１１は、配線差分情報のデータ構造の生成の一例を示す図である。
【図１２】図１２は、比較ナンバーの算出の一例を示す図である。
【図１３】図１３は、木構造の各ノードにおける比較ナンバーの一例を示す図である。
【図１４】図１４は、ノード表示画面の一例を示す図である。
【図１５】図１５は、ノードの絞り込みの一例を示す図である。
【図１６】図１６は、比較する２つのノードの選択の一例を示す図である。
【図１７】図１７は、２つのノード間の比較結果の一例を示す図である。
【図１８】図１８は、ノードの指定を受け付ける場合の一例を示す図である。
【図１９】図１９は、実施例のデータ構造生成処理の一例を示すフローチャートである。
【図２０】図２０は、実施例のノード配置処理の一例を示すフローチャートである。
【図２１】図２１は、実施例の設計データ出力処理の一例を示すフローチャートである。
【図２２】図２２は、バス配線探索プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて、本願の開示するバス配線探索プログラム、バス配線探索方法および情報処理装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例】
【００１０】
図１Ａは、実施例の情報処理装置の構成の一例を示すブロック図である。図１Ａに示す情報処理装置１００は、プリント配線基板を設計するＣＡＤ（Computer  Aided  Design）において、設計データを管理することで設計支援を行う情報処理装置の一例である。情報処理装置１００は、バス配線の条件の変更、または、バス配線の条件に基づく配線結果の生成が行われると、第１ノードを生成する。情報処理装置１００は、生成した第１ノードに、バス配線の条件とバス配線の条件の変更後の設計データとを対応付け、あるいは、バス配線の条件と配線結果と配線結果の生成後の設計データとを対応付けて、記憶部に保存する。情報処理装置１００は、バス配線の条件の指定を受け付けると、指定されたバス配線の条件と一致する第２ノードを探索する。情報処理装置１００は、探索した第２ノードに対応する設計データを出力する。これにより、情報処理装置１００は、任意の段階の設計データを得ることができる。
【００１１】
次に、情報処理装置１００の構成について説明する。図１Ｂは、実施例の情報処理装置の機能構成の一例を示すブロック図である。図１Ａに示すように、情報処理装置１００は、通信部１１０と、表示部１１１と、操作部１１２と、記憶部１２０と、制御部１３０とを有する。なお、情報処理装置１００は、図１Ａおよび図１Ｂに示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
【００１２】
ＣＡＤ１０１は、プリント配線基板を設計するＣＡＤの一例である。ＣＡＤ１０１は、設計データの保存が行われると、設計データを制御部１３０の生成部１３１に転送する。また、ＣＡＤ１０１は、制御部１３０の出力制御部１３３から設計データが転送されると、当該設計データを読み込んで、ＣＡＤ設計画面に、設計者が編集可能に表示する。
【００１３】
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１０は、図示しないネットワークを介して他の情報処理装置と有線または無線で接続され、他の情報処理装置との間で情報の通信を司る通信インタフェースである。通信部１１０は、例えば、図示しないサーバから設計データ等を受信する。また、通信部１１０は、図示しないサーバに、設計データや管理データ等を送信する。
【００１４】
表示部１１１は、各種情報を表示するための表示デバイスである。表示部１１１は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部１１１は、制御部１３０から入力された表示画面等の各種画面を表示する。
【００１５】
操作部１１２は、情報処理装置１００のユーザから各種操作を受け付ける入力デバイスである。操作部１１２は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部１１２は、ユーザによって入力された操作を操作情報として制御部１３０に出力する。なお、操作部１１２は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部１１１の表示デバイスと、操作部１１２の入力デバイスとは、一体化されるようにしてもよい。
【００１６】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、共通情報記憶部１２１と、ノード情報記憶部１２２とを有する。また、記憶部１２０は、制御部１３０での処理に用いる情報を記憶する。
【００１７】
共通情報記憶部１２１は、ＣＡＤ１０１の設計データ全体を管理するための共通情報を記憶する。図２は、共通情報記憶部の一例を示す図である。図２に示すように、共通情報記憶部１２１は、プロジェクト管理１２１ａ、プロジェクト情報１２１ｂ、配線条件項目定義１２１ｃ、配線条件登録定義１２１ｄといった項目を有する。
【００１８】
プロジェクト管理１２１ａは、プロジェクトＩＤ（Identifier）を記憶する。プロジェクトＩＤは、プロジェクトを識別する識別子である。プロジェクトＩＤは、例えば、設計対象のプリント配線基板ごとに振られたＩＤである。
【００１９】
プロジェクト情報１２１ｂは、プロジェクトＩＤで識別されるプロジェクトの情報を記憶する。プロジェクト情報１２１ｂは、「プロジェクトＩＤ」、「作成日時」、「作成者」、「対象ファイル名」、「ルートノードＩＤ」といった項目を有する。
【００２０】
「プロジェクトＩＤ」は、プロジェクトを識別する識別子である。「作成日時」は、当該プロジェクトが作成された日時を示す情報である。なお、「作成日時」は、設計データが更新された日時で更新してもよい。「作成者」は、当該プロジェクトを作成したユーザを示す情報である。「対象ファイル名」は、設計データのファイル名を示す情報である。「ルートノードＩＤ」は、設計データの履歴を木構造で表す際に基準となる根ノード（以下、ルートノードまたは基準ノードともいう。）のノードＩＤを示す情報である。
【００２１】
配線条件項目定義１２１ｃは、配線条件として扱う項目を記憶する。配線条件項目定義１２１ｃは、「１：バスネット定義」、「２：バス配線対象層」、「３：バス経路」、「４：バス自動配線優先順」、「５：ネット線幅」、「６：配線結果」といった項目を有する。なお、各項目の頭の番号は、条件項目の番号を示す。
【００２２】
「１：バスネット定義」は、バス配線をどの様に分割するかを示す情報に対応する項目である。「２：バス配線対象層」は、バス配線を行う層を示す情報に対応する項目である。「３：バス経路」は、バスの経路を示す情報に対応する項目である。「４：バス自動配線優先順」は、バスの自動配線を行う際に優先する順番を示す情報に対応する項目である。「５：ネット線幅」は、ネットの線幅、つまり配線の幅を示す情報に対応する項目である。「６：配線結果」は、自動配線の配線結果を示す情報に対応する項目である。
【００２３】
配線条件登録定義１２１ｄは、配線条件項目定義１２１ｃの各配線条件項目についての優先度を記憶する。配線条件登録定義１２１ｄは、例えば、「優先１：条件項目１」であれば、配線条件項目定義１２１ｃの条件項目の番号１番が優先度「１」であることを示す。
【００２４】
図１Ａおよび図１Ｂの説明に戻って、ノード情報記憶部１２２は、設計データの履歴を木構造で表す際の各ノードの情報を記憶する。図３は、ノード情報記憶部の一例を示す図である。図３に示すように、ノード情報記憶部１２２は、ノードごとに、ノード基本情報１２２Ａ１を有する。ノード基本情報１２２Ａ１は、「ノードＩＤ」、「親ノードＩＤ」、「子ノード管理ＩＤ」、「コメント」、「作成日時」、「配線条件ＩＤ」、「配線ルールＩＤ」、「配線差分情報ＩＤ」、「設計データファイルパス」といった項目を有する。また、ノード基本情報１２２Ａ１は、項目にリンクする情報として、子ノード管理情報１２２Ａ２、配線条件情報１２２Ｃ１、配線ルール情報１２２Ｄ１および配線差分情報１２２Ｅ１を有する。つまり、ノード基本情報１２２Ａ１は、バス配線の条件と、配線結果と、設計データのファイルパスとを含む情報である。なお、ノード基本情報１２２Ａ１は、設計データのファイルパスに代えて、設計データ自体を含むようにしてもよい。
【００２５】
「ノードＩＤ」は、ノードを識別する識別子である。「親ノードＩＤ」は、親ノードのＩＤを示す情報である。「子ノード管理ＩＤ」は、当該ノードの子ノードを管理する子ノード管理情報１２２Ａ２を識別する識別子である。「コメント」は、当該ノードに対するコメントを示す情報である。「作成日時」は、当該ノードが作成された日時を示す情報である。「配線条件ＩＤ」は、当該ノードの配線条件を管理する配線条件情報１２２Ｃ１を識別する識別子である。「配線ルールＩＤ」は、当該ノードの配線ルールを管理する配線ルール情報１２２Ｄ１を識別する識別子である。「配線差分情報ＩＤ」は、当該ノードの配線差分を管理する配線差分情報１２２Ｅ１を識別する識別子である。「設計データファイルパス」は、当該ノードの設計データを記憶するファイルパスを示す情報である。
【００２６】
子ノード管理情報１２２Ａ２は、「子ノード管理ＩＤ」、「ノードＩＤ１」、「ノードＩＤ２」といった項目を有する。「子ノード管理ＩＤ」は、子ノード管理情報１２２Ａ２を識別する識別子である。「ノードＩＤ１」および「ノードＩＤ２」は、子ノード管理ＩＤでリンクされるノード基本情報１２２Ａ１のノードにおける子ノードのＩＤを示す情報である。
【００２７】
配線条件情報１２２Ｃ１は、「配線条件ＩＤ」、「バス定義ＩＤ」、「バス自動配線順定義ＩＤ」といった項目を有する。「配線条件ＩＤ」は、配線条件情報１２２Ｃ１を識別する識別子である。「バス定義ＩＤ」は、配線条件ＩＤでリンクされるノード基本情報１２２Ａ１のノードにおけるバス定義を識別する識別子である。「バス自動配線順定義ＩＤ」は、配線条件ＩＤでリンクされるノード基本情報１２２Ａ１のノードにおけるバス自動配線順定義を識別する識別子である。
【００２８】
配線ルール情報１２２Ｄ１は、「配線ルールＩＤ」、「ネット線幅定義ＩＤ１」、「ネット線幅定義ＩＤ２」といった項目を有する。「配線ルールＩＤ」は、配線ルール情報１２２Ｄ１を識別する識別子である。「ネット線幅定義ＩＤ１」および「ネット線幅定義ＩＤ２」は、配線ルールＩＤでリンクされるノード基本情報１２２Ａ１のノードにおけるネット線幅定義を識別する識別子である。なお、末尾の数字は、複数のネット線幅定義ＩＤを区別するためのものである。以下、同様に、各ＩＤの末尾に数字がある場合は、複数の項目それぞれを区別するためのものである。
【００２９】
配線差分情報１２２Ｅ１は、「配線差分情報ＩＤ」、「親ノードからの追加  配線情報ＩＤ１」、「親ノードからの追加  配線情報ＩＤ２」、「親ノードからの削除  配線情報ＩＤ１」、「親ノードからの削除  配線情報ＩＤ２」といった項目を有する。「配線差分情報ＩＤ」は、配線差分情報１２２Ｅ１を識別する識別子である。「親ノードからの追加  配線情報ＩＤ１」および「親ノードからの追加  配線情報ＩＤ２」は、配線差分情報ＩＤでリンクされるノード基本情報１２２Ａ１のノードにおいて、自動配線の結果、親ノードに対して追加された配線情報を識別する識別子である。「親ノードからの削除  配線情報ＩＤ１」および「親ノードからの削除  配線情報ＩＤ２」は、配線差分情報ＩＤでリンクされるノード基本情報１２２Ａ１のノードにおいて、自動配線の結果、親ノードに対して削除された配線情報を識別する識別子である。
【００３０】
次に、図４から図６を用いて、配線条件情報１２２Ｃ１、配線ルール情報１２２Ｄ１および配線差分情報１２２Ｅ１の配下のデータ構造について説明する。図４は、配線条件情報のデータ構造の一例を示す図である。図４に示すように、配線条件情報１２２Ｃ１の「バス定義ＩＤ」は、配線条件情報１２２Ｃ１の配下にあるバス定義１２２Ｃ２を識別する識別子である。また、配線条件情報１２２Ｃ１の「バス自動配線順定義ＩＤ」は、配線条件情報１２２Ｃ１の配下にあるバス自動配線順定義１２２Ｃ５を識別する識別子である。
【００３１】
バス定義１２２Ｃ２は、「バス定義ＩＤ」、「バス名」、「配線対象層名」、「バス指示経路ＩＤ」、「所属バスネットＩＤ１」、「所属バスネットＩＤ２」といった項目を有する。「バス定義ＩＤ」は、バス定義１２２Ｃ２を識別する識別子である。「バス名」は、バスの名称を示す情報である。「配線対象層名」は、当該バスを配線する層の名称を示す情報である。「バス指示経路ＩＤ」は、当該バスの経路情報を示すバス指示経路定義１２２Ｃ３を識別する識別子である。「所属バスネットＩＤ１」および「所属バスネットＩＤ２」は、当該バスの所属バスネットを示す所属バスネット定義１２２Ｃ４を識別する識別子である。
【００３２】
バス指示経路定義１２２Ｃ３は、「バス指示経路ＩＤ」、「経路情報」、「経路１座標」、「経路２座標」といった項目を有する。「バス指示経路ＩＤ」は、バス指示経路定義１２２Ｃ３を識別する識別子である。「経路情報」は、バスの指示経路を示す情報である。「経路１座標」および「経路２座標」は、「経路情報」の配下に位置し、それぞれの経路ごとの座標を示す情報である。
【００３３】
所属バスネット定義１２２Ｃ４は、「バスネットＩＤ」、「ネット名」、「ＦＲＯＭ部品ピン名」、「ＴＯ部品ピン名」といった項目を有する。「バスネットＩＤ」は、所属バスネット定義１２２Ｃ４を識別する識別子である。「ネット名」は、当該ネット、つまり配線の名称を示す情報である。「ＦＲＯＭ部品ピン名」および「ＴＯ部品ピン名」は、ネットの両端に接続される部品ピン名を、それぞれ示す情報である。なお、「ＦＲＯＭ部品ピン名」および「ＴＯ部品ピン名」は、設計データのネットリストから取得する。
【００３４】
バス自動配線順定義１２２Ｃ５は、「バス自動配線順定義ＩＤ」、「対象バス名１［優先順１］」、「対象バス名２［優先順２］」といった項目を有する。「バス自動配線順定義ＩＤ」は、バス自動配線順定義１２２Ｃ５を識別する識別子である。「対象バス名１［優先順１］」および「対象バス名２［優先順２］」は、自動配線の対象バス名および優先順を示す情報である。
【００３５】
図５は、配線ルール情報のデータ構造の一例を示す図である。図５に示すように、配線ルール情報１２２Ｄ１の「ネット線幅定義ＩＤ１」および「ネット線幅定義ＩＤ２」は、配線ルール情報１２２Ｄ１の配下にあるネット線幅定義１２２Ｄ２を識別する識別子である。
【００３６】
ネット線幅定義１２２Ｄ２は、「ネット線幅ＩＤ」、「ネット名」、「層名」、「線幅」といった項目を有する。「ネット線幅ＩＤ」は、ネット線幅定義１２２Ｄ２を識別する識別子である。「ネット名」は、線幅が定義されるネットの名称を示す情報である。「層名」は、ネットが配線される配線層の名称を示す情報である。「線幅」は、配線されるネットの線幅を示す情報である。
【００３７】
図６は、配線差分情報のデータ構造の一例を示す図である。図６に示すように、配線差分情報１２２Ｅ１の「親ノードからの追加  配線情報ＩＤ１」および「親ノードからの追加  配線情報ＩＤ２」は、配線差分情報１２２Ｅ１の配下にある配線情報１２２Ｅ２を識別する識別子である。なお、「親ノードからの削除  配線情報ＩＤ１」および「親ノードからの削除  配線情報ＩＤ２」についても、親ノードからの追加の場合と同様である。
【００３８】
配線情報１２２Ｅ２は、「配線情報ＩＤ」、「配線種別」、「配線座標」、「配線ネット」、「配線層」、「配線線幅」、「所属バス名」といった項目を有する。「配線情報ＩＤ」は、配線情報１２２Ｅ２を識別する識別子である。「配線種別」は、親ノードから追加または削除された配線（ネット）の種別を示す情報である。「配線種別」は、例えば直線を表すラインや、曲線を表す円弧等が挙げられる。「配線座標」は、配線（ネット）の座標を示す情報である。「配線座標」は、例えば、配線種別がラインである場合には、ＦＲＯＭ座標およびＴＯ座標を示し、配線種別が円弧であれば、中心点、始点および終点の座標を示す。「配線ネット」は、配線の名称、つまりネットの名称を示す情報である。「配線層」は、配線された配線層を示す情報である。「配線線幅」は、配線の線幅を示す情報である。「所属バス名」は、配線が所属するバスの名称を示す情報である。
【００３９】
図１Ａおよび図１Ｂの説明に戻って、制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。
【００４０】
制御部１３０は、生成部１３１と、探索部１３２と、出力制御部１３３とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図１Ａおよび図１Ｂに示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００４１】
まず、図７を用いて、情報処理装置１００で行うノード生成処理の概要について説明する。図７は、ノード生成処理の概要を説明する図である。図７の初回動作に示すように、プリント配線基板の設計者は、ＣＡＤ設計画面２０において、初回の設計作業を行った後、初期データを登録する。なお、ＣＡＤ１０１は、情報処理装置１００上で動作しているものとする。情報処理装置１００は、ＣＡＤ１０１から設計データの転送を受け付けて、配線条件登録および配線ルール登録を行って基準ノードを生成する。情報処理装置１００は、ノード表示画面２１に、生成した基準ノード２２を表示する。
【００４２】
続いて、図７の設計データ編集後動作に示すように、プリント配線基板の設計者は、ＣＡＤ設計画面２３において、例えば、配線条件や配線ルールの変更後に設計データを保存する。情報処理装置１００で実行するノード生成処理は、ＣＡＤ１０１から設計データの転送を受け付けて、配線条件登録および配線ルール登録を行って分岐ノード２５を生成する。情報処理装置１００は、ノード表示画面２４に、既存の基準ノード２２と、生成した分岐ノード２５とを表示する。このように、情報処理装置１００では、ＣＡＤ１０１を用いてプリント配線基板を設計編集していくと、試行結果がノードとして追加されていくことになる。なお、以下の説明では、ノード生成処理を、データ構造生成処理と、ノード配置処理とに分けて説明する。
【００４３】
図１Ａおよび図１Ｂの説明に戻って、生成部１３１は、初回動作の際に、設計データに基づいて、共通情報およびノード情報を生成し、それぞれ共通情報記憶部１２１およびノード情報記憶部１２２に記憶する。つまり、生成部１３１は、ＣＡＤ１０１から設計データの転送を受け付けて、データ構造生成処理を実行する。生成部１３１は、設計者からの入力に基づいて、ノードに対する配線条件項目を登録する。生成部１３１は、登録する配線条件項目を、共通情報記憶部１２１の配線条件項目定義１２１ｃに記憶する。
【００４４】
生成部１３１は、配線条件項目定義１２１ｃに記憶した配線条件項目に対する優先度の設定を、設計者から受け付ける。生成部１３１は、受け付けた優先度の設定を、共通情報記憶部１２１の配線条件登録定義１２１ｄに記憶する。なお、配線条件項目の登録、および、優先度の設定は、プロジェクトの開始時に１回実行すればよい。
【００４５】
図８は、ノードへの配線条件項目の登録の一例を示す図である。図８に示すように、生成部１３１は、設計者によって登録する配線条件項目および各優先度が入力されると、それぞれの情報を共通情報記憶部１２１に記憶し、ノード表示画面２６に、基準ノード２７と、配線条件登録項目２８とを表示する。配線条件登録項目２８には、入力され登録された配線条件登録項目と優先度とが対応付けて表示される。
【００４６】
生成部１３１は、設計データに基づいて、ノード基本情報１２２Ａ１を生成する。次に、生成部１３１は、ノード基本情報１２２Ａ１からリンクする子ノード管理情報１２２Ａ２、配線条件情報１２２Ｃ１、配線ルール情報１２２Ｄ１および配線差分情報１２２Ｅ１を生成する。なお、子ノード管理情報１２２Ａ２および配線差分情報１２２Ｅ１は、初回動作の場合には、データ構造の中身は空の状態である。
【００４７】
生成部１３１は、設計データと、登録された配線条件項目である配線条件登録項目とに基づいて、設計データから配線条件登録項目に対応したデータを抽出する。生成部１３１は、抽出したデータから配線条件情報のデータ構造である配線条件情報１２２Ｃ１、ならびに、配下のバス定義１２２Ｃ２、バス指示経路定義１２２Ｃ３、所属バスネット定義１２２Ｃ４およびバス自動配線順定義１２２Ｃ５を生成する。
【００４８】
図９は、配線条件情報のデータ構造の生成の一例を示す図である。図９に示すように、生成部１３１は、ＣＡＤ設計画面２９において、設計者によって設計データ３０の保存が行われると、配線条件情報１２２Ｃ１および配下のデータ構造を生成する。生成部１３１は、例えば、データ構造生成画面３１に示すように、配線条件登録項目３２と、配線条件情報３３とを表示して、設計者にどの様なデータ構造が生成されたかを表示するようにしてもよい。なお、図９中のＣ１〜Ｃ５は、配線条件情報１２２Ｃ１〜バス自動配線順定義１２２Ｃ５に対応する。
【００４９】
同様に、生成部１３１は、抽出したデータから配線ルール情報のデータ構造である配線ルール情報１２２Ｄ１、および、配下のネット線幅定義１２２Ｄ２を生成する。
【００５０】
図１０は、配線ルール情報のデータ構造の生成の一例を示す図である。図１０に示すように、生成部１３１は、ＣＡＤ設計画面２９において、設計者によって設計データ３０の保存が行われると、配線ルール情報１２２Ｄ１および配下のデータ構造を生成する。生成部１３１は、例えば、データ構造生成画面３４に示すように、配線条件登録項目３２と、配線ルール情報３５とを表示して、設計者にどの様なデータ構造が生成されたかを表示するようにしてもよい。
【００５１】
さらに、同様に、生成部１３１は、抽出したデータから配線差分情報のデータ構造である配線差分情報１２２Ｅ１、および、配下の配線情報１２２Ｅ２を生成する。
【００５２】
図１１は、配線差分情報のデータ構造の生成の一例を示す図である。図１１に示すように、生成部１３１は、ＣＡＤ設計画面２９において、設計者によって設計データ３０の保存が行われると、配線差分情報１２２Ｅ１および配下のデータ構造を生成する。生成部１３１は、例えば、データ構造生成画面３６に示すように、配線条件登録項目３２と、配線差分情報３７とを表示して、設計者にどの様なデータ構造が生成されたかを表示するようにしてもよい。
【００５３】
なお、生成部１３１は、２回目以降の保存時には、ＣＡＤ１０１から設計データの転送を受け付けて、配線条件情報、配線ルール情報および配線差分情報のデータ構造を生成することで、保存時の設計データに対応するノードを生成する。
【００５４】
生成部１３１は、ノードのデータ構造の生成が完了すると、ノードを木構造のどこに配置するかを決定するノード配置処理を実行する。生成部１３１は、共通情報記憶部１２１を参照し、配線条件項目の登録数をＭに設定する。生成部１３１は、保存時の設計データを設計データＳとすると、当該設計データＳに基づいて、上述の配線条件情報、配線ルール情報および配線差分情報のデータ構造を生成する。
【００５５】
生成部１３１は、設定値Ｍに基づいて、Ｍ桁が全て「９」の数値を最小比較ナンバーとして設定する。すなわち、最小比較ナンバーの初期値は、例えば、設定値Ｍ＝６であるとすると、「９９９９９９」が設定される。
【００５６】
生成部１３１は、検査対象のノードを表す検査ノード集合に、ルートノードＩＤを追加する。生成部１３１は、ノード配置の検査対象ノードを表す検査ノードＩＤに、検査ノード集合の先頭ノードＩＤを代入する。生成部１３１は、設計データＳの各データ構造と、検査ノードＩＤが示す検査ノードの各データ構造とに基づいて、比較ナンバーを算出する。
【００５７】
ここで、図１２を用いて比較ナンバーの算出について説明する。図１２は、比較ナンバーの算出の一例を示す図である。図１２に示すように、生成部１３１は、検査ノードであるノードＦのデータ構造と、保存時の設計データＳに対応するノードＧのデータ構造とについて、配線条件登録項目３２の各配線条件項目を比較する。つまり、生成部１３１は、２つのノードの、配線条件情報とそのリンク先、配線ルール情報とそのリンク先、および、配線差分情報とそのリンク先を比較する。生成部１３１は、配線条件登録項目３２の優先度順に、設定値が全て同じであれば「０」、１箇所でも異なれば「１」を左から順に並べて比較ナンバーを算出する。例えば、比較ナンバー算出画面３８の比較ナンバー３９は、「０１１０００」であるので、ノードＦとノードＧとは、優先度「２」のバス分割の配線層と、優先度「３」のバス分割の配線経路とが異なることを示す。なお、生成部１３１は、比較ナンバーの比較時に、比較ナンバー算出画面３８を表示して、設計者に比較ナンバーの算出過程を表示するようにしてもよい。
【００５８】
生成部１３１は、算出した比較ナンバーが最小比較ナンバー未満であるか否かを判定する。生成部１３１は、比較ナンバーが最小比較ナンバー未満であると判定した場合には、最小比較ナンバーに比較ナンバーを代入する。また、生成部１３１は、最小ノードＩＤに検査ノードＩＤを代入する。生成部１３１は、検査ノード集合の最後尾に、検査ノードの子ノード全てのノードＩＤを順に追加する。
【００５９】
一方、生成部１３１は、比較ナンバーが最小比較ナンバー未満でないと判定した場合には、最小比較ナンバーへの代入および最小ノードＩＤへの代入を行わずに、検査ノード集合の最後尾に、検査ノードの子ノード全てのノードＩＤを順に追加する。
【００６０】
生成部１３１は、子ノードのノードＩＤを検査ノード集合に追加すると、検査ノード集合の先頭の検査ノードＩＤを削除する。すなわち、生成部１３１は、比較ナンバーの判定が終了した検査対象ノードを検査ノード集合から削除する。生成部１３１は、検査ノード集合が空であるか否かを判定する。生成部１３１は、検査ノード集合が空でないと判定した場合には、次の検査ノードの比較ナンバーの判定に移る。
【００６１】
生成部１３１は、検査ノード集合が空であると判定した場合には、最小ノードＩＤが示すノードの配下を、設計データＳに対応するノードの配置位置と決定する。生成部１３１は、決定したノードの配置位置に基づいて、設計データＳに対応するノード基本情報１２２Ａ１およびその配下の情報をノード情報記憶部１２２に記憶する。
【００６２】
すなわち、生成部１３１は、バス配線の条件の変更、または、バス配線の条件に基づく配線結果の生成が行われると、第１ノードを生成する。また、生成部１３１は、生成した第１ノードに、バス配線の条件とバス配線の条件の変更後の設計データとを対応付け、あるいは、バス配線の条件と配線結果と配線結果の生成後の設計データとを対応付けて、記憶部に保存する保存部の一例である。
【００６３】
ここで、図１３を用いて、ノード配置の具体例について説明する。図１３は、木構造の各ノードにおける比較ナンバーの一例を示す図である。図１３のノード表示画面４０は、例えば、ノードＩＤ「０００００」〜「００００６」の既存のノードに対して、ノードＩＤ「００００７」で示す新たなノード（分岐ノード）を保存する場合である。このときに用いる配線条件登録項目は、配線条件登録項目４１であるとする。
【００６４】
生成部１３１は、ルートノードであるノードＩＤ「０００００」から順に、ある保存時の設計データに対応するバス配線の条件４２との比較ナンバーを算出する。生成部１３１は、各ノードの比較ナンバーを算出した結果、最初に見つかった最小ナンバーは、ノードＩＤ「００００２」の比較ナンバー「００００１０」である。従って、生成部１３１は、ノードＩＤ「００００２」の配下に、新たなノードをノードＩＤ「００００７」として追加する。なお、ノードＩＤ「００００２」の配下には、比較ナンバー「００００１０」のノードＩＤ「００００６」が存在するが、木構造のルートノードから順に検査していくため、新たなノードは、ノードＩＤ「００００６」の配下とはならない。すなわち、生成部１３１は、幅優先探索で新たなノードの追加先を探索し、先に見つかったノードを優先する。また、生成部１３１は、比較ナンバー「００００００」のノードＩＤが見つかった場合、当該ノードのバス配線の条件と、保存しようとする設計データのバス配線の条件とは同じであるので、新たなノードは生成しない。
【００６５】
言い換えると、生成部１３１は、基準となるノードを根ノードとし、第１ノードを子ノードとする木構造となるように、第１ノードを生成する。また、生成部１３１は、第１ノードの生成時に、根ノードから順に幅優先探索を用いて、第１ノードに対応するバス配線の条件と、既存のノードのバス配線の条件との差分を算出し、算出した差分が最小となる既存のノードの配下に、第１ノードを生成する。また、生成部１３１は、バス配線の条件が複数の項目を有する場合に、項目に優先度を付与し、優先度が高い項目を上位の桁とする、項目ごとに差分の有無を表す値を算出し、算出した値が最小となる既存のノードの配下に、第１ノードを生成する。また、生成部１３１は、バスに関する配線条件情報、基板上の配線ルールに関する配線ルール情報、および、親ノードと子ノードとの配線の差分に関する配線差分情報を比較して、生成する第１ノードと既存のノードとの間における項目ごとの差分を算出する。また、バス配線の条件は、バスネット定義、バス配線対象層、バス経路、バス自動配線優先順、ネット線幅および配線結果のうち、１つまたは複数の情報を含む。
【００６６】
図１Ａおよび図１Ｂの説明に戻って、探索部１３２は、設計者からの指示に基づいて、指示に応じたノードを探索する。探索部１３２は、例えば、設計者からプロジェクトの選択を受け付ける。探索部１３２は、プロジェクトの選択を受け付けると、共通情報記憶部１２１およびノード情報記憶部１２２を参照し、プロジェクトの木構造を表示するノード表示画面を表示部１１１に表示する。
【００６７】
探索部１３２は、例えば、ノード表示画面のメニュー項目のうち、詳細検索が選択されることで、ノードの絞り込みを行うか否かを判定する。探索部１３２は、ノードの絞り込みを行うと判定した場合には、詳細検索における絞り込み条件を受け付けて、ノードを絞り込んだノード表示画面を表示する。探索部１３２は、ノードの絞り込みを行わないと判定した場合には、表示中のノード表示画面を引き続き表示する。
【００６８】
探索部１３２は、例えば、ノード表示画面のメニュー項目のうち、条件差分表示が選択されることで、２つのノードを比較するか否かを判定する。探索部１３２は、ノードを比較すると判定した場合には、ノード表示画面において、比較するノードの選択を受け付けて、比較結果を表示する。探索部１３２は、ノードを比較しないと判定した場合には、表示中のノード表示画面を引き続き表示する。
【００６９】
探索部１３２は、ノード表示画面において、ノードの指定を受け付ける。探索部１３２は、ノード情報記憶部１２２を参照し、指定されたノードに対応する設計データを出力制御部１３３に出力する。
【００７０】
出力制御部１３３は、探索部１３２から設計データが入力されると、設計データをＣＡＤ１０１に転送する。ＣＡＤ１０１は、出力制御部１３３から転送された設計データを読み込んで、ＣＡＤ設計画面に、設計者が編集可能に表示する。
【００７１】
すなわち、探索部１３２は、バス配線の条件の指定を受け付けると、指定されたバス配線の条件と一致する第２ノードを探索する。また、探索部１３２は、所定の検索条件に合致する木構造を表示し、表示した木構造に含まれるノードの指定を受け付けることで、バス配線の条件の指定を受け付ける。また、探索部１３２は、木構造を表示し、表示した木構造に含まれる２つのノードの指定を受け付ける。また、探索部１３２は、受け付けた２つのノードのノード間のバス配線の条件の差分を表示し、２つのノードのうち、いずれかのノードの指定を受け付けることで、バス配線の条件の指定を受け付ける。また、出力制御部１３３は、探索したノードに対応する設計データを出力する。
【００７２】
ここで、図１４から図１８を用いて、ノード表示画面およびノードの選択について説明する。図１４は、ノード表示画面の一例を示す図である。図１４に示すように、ノード表示画面４５は、メニュー部４６と、木構造表示部４７とを有する。ノード表示画面４５は、例えば、プロジェクト「ＰＪ−０１」に対応するものとする。メニュー部４６には、例えば、ノードの絞り込みを行う「詳細検索」、ノードを比較する「条件差分表示」、選択されたノードの設計データをＣＡＤ１０１に転送する「設計データをツールで開く」といったメニュー項目を有する。
【００７３】
木構造表示部４７は、プロジェクトの木構造を表示する。木構造は、例えば、ルートノードである基準ノード４８を左端に表示し、子ノードを右側に順に表示する形式とする。子ノードは、例えば、ＣＡＤ１０１で設計データが保存される度に生成される。ノード表示画面４５では、基準ノード４８から対象ネットの条件変更が行われたノード４９、ノード４９から配線層の条件変更が行われたノード５０、ノード５０から経路指示の条件変更が行われたノード５１といった具合に子ノードが生成される。また、ノード５１の配下には、配線結果のノード５２ａと、配線結果のノード５２ｂとが同じ階層の子ノードとして生成されている。ノード５２ａとノード５２ｂとは、例えば、自動配線のパラメータや乱数が異なるために配線順が異なる場合等に対応し、配線結果としては異なる状態を表すノードになる。以下、同様に、ノード表示画面４５では、それぞれのノードから条件変更や自動配線が行われる度に、新たなノードが生成されていくことになる。
【００７４】
なお、ノード５２ａ配下の子ノードは、ノード５２ａの配線結果を利用していることを示す。配線結果の利用とは、例えば、バスが３つある場合に、１つ目のバスの配線結果を利用して、２つ目のバスの条件変更や自動配線を行う場合である。また、子ノードは、条件変更後に自動配線を行わない場合もあり得る。さらに、各ノードは、１つの条件変更に対して、１回保存することで１つのノードを生成しているが、２つの条件変更を１つのノードに含めるようにしてもよい。
【００７５】
図１５は、ノードの絞り込みの一例を示す図である。図１５に示すノード表示画面５３は、絞り込み条件を受け付けて、ノードを絞り込んだ状態を表す。ノード表示画面５３では、例えば、メニュー項目「詳細検索」が選択され、ダイアログボックス５４が表示される。ダイアログボックス５４では、例えば、バス名「ＢＵＳ１」で検索する等といった絞り込み条件を受け付ける。ノード表示画面５３には、ダイアログボックス５４で入力された絞り込み条件に応じた木構造が表示される。絞り込み条件は、バス名の他にも、例えば、層名、ネット名、ネット線幅、登録日時等を用いることができる。
【００７６】
ノード表示画面５３では、例えば、比較の基準となるノード５５に対して、配線結果のノード５６ａと、配線結果のノード５６ｂとを比較することができる。ノード５６ａは、ノード５６ｂと比べて、バス名「ＢＵＳ１」で示すバスの回りの配線について条件変更が行われているものとする。設計者は、ノード５６ａとノード５６ｂとを比較することで、バスの回りの配線等の様な間接的な条件の違いを比較できる。同様に、設計者は、ノード５６ａからさらに対象ネットおよび配線層の条件変更が行われたノード５７ａと、ノード５６ｂからさらに対象ネットおよび配線層の条件変更が行われたノード５７ｂとを比較することで、直接的な条件の違いを比較できる。同様に、設計者は、ノード５７ａからさらに経路指示の条件変更と自動配線が行われた配線結果を示すノード５８ａと、ノード５７ｂからさらに経路指示の条件変更と自動配線が行われたノード５８ｂとを比較することで、配線率の違いを比較できる。つまり、情報処理装置１００は、あるノードを基準として、当該ノードからの木構造を表示することで、検索対象に対する失敗要因の考察を支援することができる。
【００７７】
図１６は、比較する２つのノードの選択の一例を示す図である。図１６に示すノード表示画面６０は、ノード表示画面５３と同様のノードを絞り込んだ状態を表す。ノード表示画面６０では、例えば、メニュー項目「条件差分表示」が選択されると、比較する２つのノードの選択を受け付ける状態となる。情報処理装置１００は、例えば、ノード６１とノード６２とが選択されると、選択されたノード６１とノード６２について、バス配線の条件の比較結果を表示する比較結果画面を表示する。
【００７８】
図１７は、２つのノード間の比較結果の一例を示す図である。図１７に示すように、比較結果画面６３は、ノード表示画面６０で選択された２つのノードについて、バス配線の条件の比較結果を、例えば配線条件登録項目の優先度順に表示する。なお、比較結果画面６３の表において、網掛けされている行は項目を表す。例えば、比較結果画面６３のノードＩＤ「ＸＸＸＸ」では、「バス分割の配線層」について、「ＢＵＳ１」が「Ｌ３」、「ＢＵＳ２」が「Ｌ５」、「ＢＵＳ３」が「Ｌ７」である。一方、ノードＩＤ「ＹＹＹＹ」では、「バス分割の配線層」について、「ＢＵＳ１」が「Ｌ５」、「ＢＵＳ２」が「Ｌ７」、「ＢＵＳ３」が「Ｌ３」である。このように、比較結果画面６３は、２つのノード間で異なる部分を表示する。なお、比較結果画面６３では、２つのノード間で異なる部分がない場合、「ネットの配線幅」のように、項目行だけの表示となる。
【００７９】
図１８は、ノードの指定を受け付ける場合の一例を示す図である。図１８に示すように、情報処理装置１００は、ノード表示画面６４において、例えば、ノード［００００３］の選択を受け付ける。次に、情報処理装置１００は、メニュー項目の「設計データをツールで開く」の選択を受け付けると、出力制御部１３３がノード［００００３］に対応する設計データをＣＡＤ１０１に転送する。ＣＡＤ１０１は、出力制御部１３３から転送された設計データを読み込んで、ＣＡＤ設計画面６５に、設計者が編集可能に表示する。これにより、設計者は、指定したノードに対応する設計データから、ただちに試行を再開することができる。
【００８０】
次に、実施例の情報処理装置１００の動作について説明する。まず、ノード生成処理のうち、データ構造生成処理について説明する。図１９は、実施例のデータ構造生成処理の一例を示すフローチャートである。
【００８１】
生成部１３１は、設計者からの入力に基づいて、ノードに対する配線条件項目を登録する（ステップＳ１）。生成部１３１は、登録する配線条件項目を、共通情報記憶部１２１の配線条件項目定義１２１ｃに記憶する。
【００８２】
生成部１３１は、配線条件項目定義１２１ｃに記憶した配線条件項目に対する優先度の設定を、設計者から受け付ける。生成部１３１は、受け付けた優先度の設定を、共通情報記憶部１２１の配線条件登録定義１２１ｄに記憶して設定する（ステップＳ２）。
【００８３】
生成部１３１は、設計データに基づいて、ノード基本情報１２２Ａ１を生成する。生成部１３１は、ノード基本情報１２２Ａ１からリンクする子ノード管理情報１２２Ａ２を生成する。
【００８４】
生成部１３１は、設計データと、配線条件登録項目とに基づいて、設計データから配線条件登録項目に対応したデータを抽出する。生成部１３１は、抽出したデータから配線条件情報のデータ構造である配線条件情報１２２Ｃ１、ならびに、配下のバス定義１２２Ｃ２〜バス自動配線順定義１２２Ｃ５を生成する（ステップＳ３）。
【００８５】
生成部１３１は、抽出したデータから配線ルール情報のデータ構造である配線ルール情報１２２Ｄ１、および、配下のネット線幅定義１２２Ｄ２を生成する（ステップＳ４）。生成部１３１は、抽出したデータから配線差分情報のデータ構造である配線差分情報１２２Ｅ１、および、配下の配線情報１２２Ｅ２を生成する（ステップＳ５）。これにより、生成部１３１は、設計データに対応するノードのデータ構造を生成することができる。なお、生成部１３１は、２回目以降の保存時には、ステップＳ３〜Ｓ５を実行することで、保存時の設計データに対応するノードのデータ構造を生成することができる。
【００８６】
次に、ノード生成処理のうち、ノード配置処理について説明する。図２０は、実施例のノード配置処理の一例を示すフローチャートである。
【００８７】
生成部１３１は、共通情報記憶部１２１を参照し、配線条件項目の登録数をＭに設定する（ステップＳ１１）。生成部１３１は、保存時の設計データを設計データＳとすると、当該設計データＳに基づいて、配線条件情報、配線ルール情報および配線差分情報のデータ構造を生成する（ステップＳ１２）。すなわち、生成部１３１は、設計データＳに対して、データ構造生成処理のステップＳ３〜Ｓ５を実行する。
【００８８】
生成部１３１は、設定値Ｍに基づいて、Ｍ桁が全て「９」の数値を最小比較ナンバーとして設定する（ステップＳ１３）。生成部１３１は、検査ノード集合に、ルートノードＩＤを追加する（ステップＳ１４）。生成部１３１は、検査ノードＩＤに、検査ノード集合の先頭ノードＩＤを代入する（ステップＳ１５）。生成部１３１は、設計データＳの各データ構造と、検査ノードＩＤが示す検査ノードの各データ構造とに基づいて、比較ナンバーを算出する（ステップＳ１６）。
【００８９】
生成部１３１は、算出した比較ナンバーが最小比較ナンバー未満であるか否かを判定する（ステップＳ１７）。生成部１３１は、比較ナンバーが最小比較ナンバー未満であると判定した場合には（ステップＳ１７：肯定）、最小比較ナンバーに比較ナンバーを代入する（ステップＳ１８）。また、生成部１３１は、最小ノードＩＤに検査ノードＩＤを代入し（ステップＳ１９）、ステップＳ２０に進む。
【００９０】
一方、生成部１３１は、比較ナンバーが最小比較ナンバー未満でないと判定した場合には（ステップＳ１７：否定）、最小比較ナンバーへの代入および最小ノードＩＤへの代入を行わずに、ステップＳ２０に進む。
【００９１】
生成部１３１は、検査ノード集合の最後尾に、検査ノードの子ノード全てのノードＩＤを順に追加する（ステップＳ２０）。生成部１３１は、子ノードのノードＩＤを検査ノード集合に追加すると、検査ノード集合の先頭の検査ノードＩＤを削除する（ステップＳ２１）。生成部１３１は、検査ノード集合が空であるか否かを判定する（ステップＳ２２）。生成部１３１は、検査ノード集合が空でないと判定した場合には（ステップＳ２２：否定）、ステップＳ１５に戻り、次の検査ノードの比較ナンバーの判定に移る。
【００９２】
生成部１３１は、検査ノード集合が空であると判定した場合には（ステップＳ２２：肯定）、最小ノードＩＤが示すノードの配下を、設計データＳに対応するノードの配置位置と決定する（ステップＳ２３）。生成部１３１は、決定したノードの配置位置に基づいて、設計データＳに対応するノード基本情報１２２Ａ１およびその配下の情報をノード情報記憶部１２２に記憶する。これにより、情報処理装置１００は、バス配線の条件および設計データを木構造のノードと対応付けて保存できる。
【００９３】
次に、ＣＡＤ１０１に読み込みたい設計データを出力する設計データ出力処理について説明する。図２１は、実施例の設計データ出力処理の一例を示すフローチャートである。
【００９４】
探索部１３２は、設計者からプロジェクトの選択を受け付ける（ステップＳ３１）。探索部１３２は、プロジェクトの選択を受け付けると、共通情報記憶部１２１およびノード情報記憶部１２２を参照し、プロジェクトの木構造を表示するノード表示画面を表示部１１１に表示する（ステップＳ３２）。
【００９５】
探索部１３２は、ノードの絞り込みを行うか否かを判定する（ステップＳ３３）。探索部１３２は、ノードの絞り込みを行うと判定した場合には（ステップＳ３３：肯定）、絞り込み条件を受け付けて、ノードを絞り込んだノード表示画面を表示し（ステップＳ３４）、ステップＳ３５に進む。探索部１３２は、ノードの絞り込みを行わないと判定した場合には（ステップＳ３３：否定）、表示中のノード表示画面を引き続き表示し、ステップＳ３５に進む。
【００９６】
探索部１３２は、２つのノードを比較するか否かを判定する（ステップＳ３５）。探索部１３２は、ノードを比較すると判定した場合には（ステップＳ３５：肯定）、比較するノードの選択を受け付けて、比較結果を表示し（ステップＳ３６）、ステップＳ３７に進む。探索部１３２は、ノードを比較しないと判定した場合には（ステップＳ３５：否定）、表示中のノード表示画面を引き続き表示し、ステップＳ３７に進む。
【００９７】
探索部１３２は、ノードの指定を受け付ける（ステップＳ３７）。探索部１３２は、ノード情報記憶部１２２を参照し、指定されたノードに対応する設計データを出力制御部１３３に出力する（ステップＳ３８）。出力制御部１３３は、探索部１３２から設計データが入力されると、設計データをＣＡＤ１０１に転送する。ＣＡＤ１０１は、出力制御部１３３から転送された設計データを読み込んで、ＣＡＤ設計画面に編集可能に表示する。これにより、情報処理装置１００は、任意の段階の設計データを得ることができる。
【００９８】
このように、情報処理装置１００は、バス配線の条件の変更、または、バス配線の条件に基づく配線結果の生成が行われると、第１ノードを生成する。また、情報処理装置１００は、生成した第１ノードに、バス配線の条件とバス配線の条件の変更後の設計データとを対応付け、あるいは、バス配線の条件と配線結果と配線結果の生成後の設計データとを対応付けて、記憶部１２０に保存する。また、情報処理装置１００は、バス配線の条件の指定を受け付けると、指定されたバス配線の条件と一致する第２ノードを探索する。また、情報処理装置１００は、探索した第２ノードに対応する設計データを出力する。その結果、情報処理装置１００は、任意の段階の設計データを得ることができる。
【００９９】
また、情報処理装置１００は、基準となるノードを根ノードとし、第１ノードを子ノードとする木構造となるように、第１ノードを生成する。その結果、情報処理装置１００は、設計データの履歴を記憶できる。
【０１００】
また、情報処理装置１００は、第１ノードの生成時に、根ノードから順に幅優先探索を用いて、第１ノードに対応する前記バス配線の条件と、既存のノードのバス配線の条件との差分を算出し、算出した該差分が最小となる既存のノードの配下に、第１ノードを生成する。その結果、情報処理装置１００は、バス配線の条件が近いノード同士を近傍に配置できる。
【０１０１】
また、情報処理装置１００は、バス配線の条件が複数の項目を有する場合に、項目に優先度を付与し、優先度が高い項目を上位の桁とする、項目ごとに差分の有無を表す値を算出し、算出した値が最小となる既存のノードの配下に、第１ノードを生成する。その結果、情報処理装置１００は、バス配線の条件が近いノード同士を近傍に配置できる。
【０１０２】
また、情報処理装置１００は、バスに関する配線条件情報、基板上の配線ルールに関する配線ルール情報、および、親ノードと子ノードとの配線の差分に関する配線差分情報を比較して、生成する第１ノードと既存のノードとの間における項目ごとの差分を算出する。その結果、情報処理装置１００は、バス配線の条件が近いノード同士を近傍に配置できる。
【０１０３】
また、情報処理装置１００では、バス配線の条件は、バスネット定義、バス配線対象層、バス経路、バス自動配線優先順、ネット線幅および配線結果のうち、１つまたは複数の情報を含む。その結果、情報処理装置１００は、バス配線における各条件に応じたノードを生成できる。
【０１０４】
また、情報処理装置１００は、所定の検索条件に合致する木構造を表示し、表示した木構造に含まれるノードの指定を受け付けることで、バス配線の条件の指定を受け付ける。その結果、情報処理装置１００は、指定されたノードに対応する設計データを出力できる。
【０１０５】
また、情報処理装置１００は、木構造を表示し、表示した木構造に含まれる２つのノードの指定を受け付ける。また、情報処理装置１００は、受け付けた２つのノードのノード間のバス配線の条件の差分を表示し、２つのノードのうち、いずれかのノードの指定を受け付けることで、バス配線の条件の指定を受け付ける。その結果、情報処理装置１００は、２つのノードの比較結果に基づくノードの指定を受け付けることができる。
【０１０６】
なお、上記実施例では、ノード生成処理および設計データ出力処理を、ＣＡＤ１０１も動作する情報処理装置１００で実行したが、これに限定されない。例えば、ノード生成処理および設計データ出力処理をクラウド上で実行し、設計者の端末装置でＣＡＤ１０１を実行するようにしてもよい。この場合、ノード情報および設計データは、クラウド上に保存されるので、木構造で多大な分岐が発生してデータ量が増大しても対応することができる。
【０１０７】
また、上記実施例では、分岐ノードの生成に特に制限を設けなかったが、これに限定されない。例えば、配線結果が良くならない場合等に、特定条件を含むノードに対し、この先は分岐しないように制限を加えるようにしてもよい。これにより、無駄な作業を回避することができる。
【０１０８】
また、上記実施例では、分岐ノードの生成は、設計者による設計データの保存時に行われたが、これに限定されない。例えば、メモリバスの様な特定のバスに対する、条件、ルール、周りの配線状況と、当該バスに対する配線結果（配線率）のデータに基づいて、機械学習の学習モデルを生成し、生成した学習モデルを用いて分岐ノードを自動生成してもよい。この場合、生成する分岐ノードは、配線しようとするバスの最適な条件や、良好な配線結果（例えば、配線率が何％以上である等。）が想定される条件の全てに対応するノードとすることができる。これにより、条件変更による試行錯誤を軽減することができる。
【０１０９】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、探索部１３２と出力制御部１３３とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものでなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
【０１１０】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【０１１１】
ところで、上記の各実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の各実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図２２は、バス配線探索プログラムを実行するコンピュータの一例を示す図である。
【０１１２】
図２２に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、データ入力を受け付ける入力装置２０２と、モニタ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０４と、各種装置と接続するためのインタフェース装置２０５と、他の情報処理装置等と有線または無線により接続するための通信装置２０６とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。また、各装置２０１〜２０８は、バス２０９に接続される。
【０１１３】
ハードディスク装置２０８には、図１Ｂに示した生成部１３１、探索部１３２および出力制御部１３３の各処理部と同様の機能を有するバス配線探索プログラムが記憶される。また、ハードディスク装置２０８には、共通情報記憶部１２１、ノード情報記憶部１２２、および、バス配線探索プログラムを実現するための各種データが記憶される。入力装置２０２は、例えば、コンピュータ２００のユーザから操作情報等の各種情報の入力を受け付ける。モニタ２０３は、例えば、コンピュータ２００のユーザに対して表示画面等の各種画面を表示する。インタフェース装置２０５は、例えば印刷装置等が接続される。通信装置２０６は、例えば、図１Ａに示した通信部１１０と同様の機能を有し図示しないネットワークと接続され、他の情報処理装置や各種サーバと各種情報をやりとりする。
【０１１４】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ２００を図１Ｂに示した生成部１３１、探索部１３２および出力制御部１３３として機能させることができる。
【０１１５】
なお、上記のバス配線探索プログラムは、必ずしもハードディスク装置２０８に記憶されている必要はない。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤ（Digital  Versatile  Disc）、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこのバス配線探索プログラムを記憶させておき、コンピュータ２００がこれらからバス配線探索プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１１６】
１００  情報処理装置
１０１  ＣＡＤ
１１０  通信部
１１１  表示部
１１２  操作部
１２０  記憶部
１２１  共通情報記憶部
１２２  ノード情報記憶部
１３０  制御部
１３１  生成部
１３２  探索部
１３３  出力制御部
【図１Ａ】
2019144705.tif 000003
【図１Ｂ】
2019144705.tif 000004
【図２】
2019144705.tif 000005
【図３】
2019144705.tif 000006
【図４】
2019144705.tif 000007
【図５】
2019144705.tif 000008
【図６】
2019144705.tif 000009
【図７】
2019144705.tif 000010
【図８】
2019144705.tif 000011
【図９】
2019144705.tif 000012
【図１０】
2019144705.tif 000013
【図１１】
2019144705.tif 000014
【図１２】
2019144705.tif 000015
【図１３】
2019144705.tif 000016
【図１４】
2019144705.tif 000017
【図１５】
2019144705.tif 000018
【図１６】
2019144705.tif 000019
【図１７】
2019144705.tif 000020
【図１８】
2019144705.tif 000021
【図１９】
2019144705.tif 000022
【図２０】
2019144705.tif 000023
【図２１】
2019144705.tif 000024
【図２２】
2019144705.tif 000025