以下に添付図面を参照して、この発明にかかる設計支援プログラム、設計支援装置および設計支援方法の好適な実施の形態を詳細に説明する。
(実施の形態)
図1は、本実施の形態にかかる設計支援処理の一例を示す説明図である。図1のように、本実施の形態にかかる設計支援処理では、設計支援装置100によって、プリント基板110の設計情報120から対象バスについての配線領域を決定する。設計支援装置100によって決定された配線領域は、未配線ネットが発生しないように検証されているため、レイアウト設計への手戻りのない効率的な配線設計を支援することができる。
設計支援装置100では、設計情報120によって設定された概略経路と、概略経路に基づいて生成された仮配線領域を利用して、適切な配線領域が決定される。したがって、まず、概略経路と仮配線領域について図2および図3を利用して説明する。
図2は、概略経路の一例を示す説明図である。設計情報120には、図2のように、プリント基板110上の端子群201,202にバスの配線を施したい場合の概略経路203が設定されている。概略経路とは、バスに所属する複数の信号線(ネット)をまとまった束線として配線するために、設計者や上位システムによってあらかじめ指定された経路である。設計支援装置100では、概略経路203付近に配線領域を決定する。
図3は、仮配線領域の設定例を示す説明図である。配線領域を決定するには、事前に概略経路203に基づいて、仮の配線領域(以下、「仮配線領域」とよぶ)300が必要になる。仮配線領域300は、設計情報120から対象となるバスに所属するネット数、各ネットの線幅、線同士の間隔、端子位置などの情報を参照して設定される(なお、仮配線領域の設定手法については、公知の技術であるため詳細な説明は省略する)。仮配線領域300の設定の際、プリント基板110上の障害物については考慮されない。
図1の説明に戻り、設計支援装置100は、上述のように設定された仮配線領域300に対して配線検証を行う(ステップS101)。配線検証とは、仮配線領域300に対象となるバスの各ネットを配線した場合に、どのような配線がなされるかを検証する処理である。本実施の形態では、特に未配線ネットの有無を特定するため、配線検証として、配線収容性の検証が実行される(詳しくは後述する)。
ステップS101によって実行された配線検証の結果、未配線ネットがあれば、設計支援装置100は、仮配線領域300を拡大して、あらたな仮配線領域310を設定する(ステップS102)。その後、設計支援装置100は、未配線ネットが解消した時点での仮配線領域(たとえば、仮配線領域300,310)を配線領域に決定して(ステップS103)、一連の処理を終了する。すなわち、設計支援装置100は、設計情報120を参照して、最初に設定した仮配線領域300に未配線ネットがないと判断すれば、仮配線領域300を配線領域と決定し、仮配線領域310の拡大処理後に未配線ネットがないと判断すれば、仮配線領域310を配線領域と決定する。
以上説明したように、本実施の形態にかかる設計支援装置100は、設計情報120から設定された仮配線領域を検証し、検証結果に応じて未配線ネットが発生しないような配線領域を自動的に決定することができる。上述のように、本実施の形態にかかる設計支援装置100は、対象とするバスについての適切な配線領域を決定する機能によってプリント基板110へのレイアウト設計を支援する。したがって、図1に例示したように、配線領域を決定する装置として単独の構成をとってもよいし、レイアウト設計を行う設計装置の機能の一部として搭載されてもよい。単独の構成の場合には、配線設計が決定された後、他のレイアウト設計装置によってプリント基板110のレイアウト設計を実行すればよい。
つぎに、図1にて説明した設計支援処理を実現する設計支援装置100の具体的な構成例について説明する。
(設計支援装置のハードウェア構成)
図4は、設計支援装置のハードウェア構成を示すブロック図である。図4において、設計支援装置100は、CPU(Central Processing Unit)401と、ROM(Read‐Only Memory)402と、RAM(Random Access Memory)403と、磁気ディスクドライブ404と、磁気ディスク405と、光ディスクドライブ406と、光ディスク407と、ディスプレイ408と、I/F(Interface)409と、キーボード410と、マウス411と、スキャナ412と、プリンタ413と、を備えている。また、各構成部はバス400によってそれぞれ接続されている。
ここで、CPU401は、設計支援装置100の全体の制御を司る。ROM402は、ブートプログラムや、設計支援プログラムなどの各種プログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータのリード/ライトを制御する。磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。
光ディスクドライブ406は、CPU401の制御にしたがって光ディスク407に対するデータのリード/ライトを制御する。光ディスク407は、光ディスクドライブ406の制御で書き込まれたデータを記憶したり、光ディスク407に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ408は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ408は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)409は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク414に接続され、ネットワーク414を介して他の装置に接続される。そして、I/F409は、ネットワーク414と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F409には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード410は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス411は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ412は、画像を光学的に読み取り、設計支援装置100内に画像データを取り込む。なお、スキャナ412は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ♯13は、画像データや文書データを印刷する。プリンタ413には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(設計支援装置の機能的構成)
図5は、設計支援装置の機能的構成を示すブロック図である。設計支援装置100は、検出部501と、更新部502と、制御部503と、決定部504と、判断部505と、階層設定部506と、取得部507と、抽出部508と、端子群設定部509と、判定部510と、を含む構成である。これら制御部となる機能(検出部501〜判定部510)は、具体的には、たとえば、図4に示したROM402、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶された設計支援プログラムをCPU401に実行させることにより、または、I/F409により、その機能を実現する。
設計支援装置100は、設計情報120から設定された仮配線領域内の指定された端子群間(ここでは、一例として第1の端子群と、第2の端子群との間)について仮配線処理(各種配線エンジンを搭載)を実行する機能を備えている。
検出部501は、仮配線領域内で仮配線処理によって発生した未配線ネットの検出処理を実行する機能を有する。具体的には、検出部501によって、対象となるバスに所属する信号線(ネット)のうち、第1の端子群から第2の端子群への結線が完了しない信号線の本数が検出される。なお、未配線ネットの検出結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
更新部502は、検出された未配線ネット数に応じて仮配線領域を拡大させる更新処理を実行する機能を有する。具体的には、更新部502は、検出部501によって未配線ネットが検出された場合、未配線ネットの数に応じて仮配線領域を拡大させる。したがって、未配線ネットが検出されなかった場合、更新部502にて上述したような更新処理は実行されない。更新処理によって拡大された仮配線領域は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
制御部503は、更新処理の実行状況に応じて検出部501による検出処理の実行を制御する機能を有する。具体的には、制御部503は、更新部502によって更新処理が実行された場合に、検出部501を制御し、拡大後の仮配線領域内について仮配線処理を行うと共に、仮配線処理によって発生した未配線ネットの検出処理を実行させる。再度実行された検出処理による未配線ネットの検出結果も、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
決定部504は、未配線ネットの検出結果に応じて、仮配線領域を配線領域に決定する機能を有する。具体的には、決定部504は、検出部501によって未配線ネットが検出されなかったときの仮配線領域を配線領域に決定する。したがって、更新処理によって拡大された仮配線領域に対する仮配線処理の結果、未配線ネットが検出されなかった場合には、更新後の仮配線領域が配線領域に決定される。なお、決定された配線領域の設計情報である配線領域情報130は、任意の記録媒体に所定の形式のデータとして出力される他に、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
また、設計支援装置100において、複数のバスを対象として配線領域を決定するような処理が要求されることがある。複数のバスを扱う場合、制御部503は、すでに決定部504によって他のバスについての配線領域が決定されていれば、決定済みの配線領域を回避するように仮配線処理を実行させることによって、複数のバスについても、適切な配線領域を決定することができる。
上述のように、複数のバスについての配線領域を決定する場合、プリント基板110上のレイアウトによっては、単層では未配線ネットの発生が解決できない場合ある。すなわち複数のバスについても配線が要求され、さらに、各種素子などが障害物として配線を阻害するような配置の場合、プリント基板上の空き領域が不足して、すべての信号線を配線できないことがある。
そこで、プリント基板110が複数の階層によって構成されている場合には、他の階層を利用した配線領域に決定することによって未配線ネットを解消する。設計支援装置100の判断部505〜判定部510は、プリント基板110が複数の階層をもつ構造(多層プリント基板)であり、かつ、他の階層への配線が可能な場合に、他の階層を利用した配線領域を決定する際の機能である。
判断部505は、仮配線処理を実行している階層(たとえば第1層)において、更新処理を実行した場合に、未配線ネット数が減少するか否かを判断する機能を有する。判断部505によって、配線領域を他の階層(たとえば第2層)へ拡大するか否かの判断を下すことができる。なお、判断結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
階層設定部506は、判断部505の判断結果に応じて配線領域を決定する階層を設定する機能を有する。具体的には、階層設定部506は、判断部505によって、現在の階層(たとえば第1層)では未配線ネット数が減少しないと判断された場合、仮配線領域が存在する第1層とは異なる他の階層(たとえば第2層)に、仮配線領域と第1および第2の端子群と配線済みネットとを設定する。階層設定部506によって第2層に仮配線領域が設定された場合、制御部503は、検出部501を制御して、第2層での仮配線領域内で仮配線処理および未配線ネットの検出処理を実行させる。なお、階層設定結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
取得部507は、対象回路内の素子の接続情報を取得する機能を有する。また、抽出部508は、取得部507によって取得された接続情報の中から配線すべき素子の組み合わせを抽出する機能を有する。たとえば、プリント基板110上に構成する回路が受動部品によって構成される場合がある。
設計情報120によって指示された受動部品は、実装時には付随する抵抗が存在するため、受動部品ごとに接続区間を分けて、各区間について配線領域を決定する必要がある。したがって、取得部507によって、設計情報120から対象回路内の素子の接続情報を取得した後、抽出部508によって素子の受動部品を構成する受動素子を抽出することができる。
端子群設定部509は、抽出部508によって抽出された素子を、接続区間を構成する端子群に設定する機能を有する。具体的には、端子群設定部509は、抽出部508によって抽出された素子の組み合わせごとに、一方の素子の端子群を第1の端子群、他方の素子の端子群を第2の端子群に設定して接続区間を構成する。なお、設定結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
端子群設定部509によってあらたに第1の端子群および第2の端子群が設定されると、検出部501は、設定された端子間について仮配線領域を設定すると共に、仮配線処理を実行して未配線ネットを検出する。
判定部510は、同一の端子を含む配線領域が同じ階層に決定されているか否かを判定する機能を有している。具体的には、判定部510は、現在処理対象となっている第1および第2の端子群を有するいずれか一方の素子が、決定部504による決定済みの配線領域に含まれているか否かを判定する。そして、判定部510によって、処理対象となっている端子群のいずれかが、決定済みの配線領域に含まれていると判定された場合、階層設定部506は、他の階層に第1および第2の端子群の仮配線領域を設定する。
たとえば、判定部510によって、第1層を対象に第1の端子群と第2の端子群のいずれかの端子群を利用した配線領域が設定されていると判断された場合、階層設定部506は第2層を、第1の端子群と第2の端子群との仮配線領域の設定先とする。そして、検出部501は、第2層に配置された第1の端子群と第2の端子群との仮配線領域に対して未発生ネットの検出処理を実行する。
(設計支援処理の手順)
図6は、設計支援装置による設計支援処理の手順を示すフローチャートである。図6のフローチャートは、指定された端子群間に指定されたバスの配線を行うための配線領域を決定するまでの手順を示す。図6の各処理を実行することによって未配線ネットの発生の心配のない配線領域を自動的に決定することができる。
図6において、設計支援装置100の検出部501は、まず、設計情報120を取得したか否かを判断する(ステップS601)。検出部501は、ステップS601において、設計情報120を取得するまで待ち(ステップS601:Noのループ)、設計情報120を取得すると(ステップS601:Yes)、検出部501は、検証ツールを利用して、仮配線領域を設定する(ステップS602)。その後、検出部501は仮配線領域を対象に未配線ネットを検出する(ステップS603)。
更新部502は、ステップS603によって、未配線ネットが検出されたか否かを判断し(ステップS604)、未配線ネットが検出されなかった場合(ステップS604:No)、決定部504は、現在設定されている仮配線領域を配線領域に決定し(ステップS605)、一連の処理を終了する。
一方、ステップS604において、未配線ネットが検出された場合(ステップS604:Yes)、現状の仮配線領域を採用して配線を実行すると、未配線ネットが生じてしまう。そこで、更新部502は、未配線ネットの本数に応じて、仮配線領域を拡大する(ステップS606)。制御部503は、更新部502による仮配線領域の拡大をトリガに、再度、検出部501による未配線ネットの検出を実行させる(ステップS603)。
ステップS603によって未配線ネットの検出が実行されると、未配線ネットの有無に応じた処理が実行される。すなわち、未配線ネットが検出されると、更新部502による仮配線領域の拡大処理が繰り返される。その後、未配線ネットが検出されないと判断されると、決定部504は、現状の仮配線領域を配線領域に決定して(ステップS605)、一連の処理を終了する。
(配線収容性の検証)
上述したように、検証支援装置100は、仮配線領域について、未配線ネットの有無を検出し、未配線ネットが検出されなかった場合(すべての結線が配線される場合)、仮配線領域を配線領域に決定する。したがって、図6のステップS603では、仮配線処理を実行して、バスに所属する各信号線が仮配線領域において、それぞれどのような配線がなされるかを検証する必要がある。
仮配線領域内の未配線ネット発生の有無を配線収容性として検証するために、本実施の形態では、一例として、最大フローアルゴリズムによって指定された端子群間の配線経路を作成するシミュレータ(配線経路作成支援装置)を利用する。そして、配線経路作成支援装置による作成経路のうち、配線が不完全なものを未配線ネットとして検出する。したがって、以下に配線経路作成支援装置の一例について説明する。
図7は、配線経路作成支援装置の機能的構成を示すブロック図である。図7に示したように、経路作成支援装置700は、有向グラフ生成部710と、経路探索部720と、概略経路確定部730と、ネットリスト741と、ピンリスト742と、配線ルール743と、出口情報744と、を含む構成である。これら制御部となる機能(有向グラフ生成部710〜概略経路確定部730)やデータベース(ネットリスト741〜出口情報744)は、図4に示したような設計支援装置100のハードウェア資源を利用してもよいし、独立した汎用コンピュータを用いてもよい。
有向グラフ生成部710は、セル生成部711、セル容量算出部712、ノード生成部713および有向枝生成部714を有しており、配線経路の作成を実施するためのネットワークフローモデル化された有向グラフを生成する。すなわち、経路作成支援装置700は、端子群の構成例としてBGA(Ball Grid Array)の配線問題に対しネットワークフローモデルを適用することにより配線経路の作成処理を実現する。
BGAの配線問題にネットワークフローモデルを適用するにあたり、有向グラフ生成部710は、少なくとも配線対象とされたBGAのピン(端子)について、水平ピン間、垂直ピン間および対角ピン間に配線通過数を規制するボトルネック(配線数の制限)を設ける。なお、水平ピン間とは、空きピンも含めて水平方向に隣接する二つのピンに挟まれた領域を意味する。また、垂直ピン間とは、空きピンも含めて垂直方向に隣接する二つのピンに挟まれた領域を意味する。そして、対角ピン間とは、空きピンも含めて4つのピンに囲まれた領域を意味する。また、空きピン(ピンが配置されていない部分)がある場合は空きピンにもボトルネックが設けられる。
図8は、BGAに設けられたボトルネックのモデル化の一例を示す説明図である。図8には、BGAの一部分が示されている。また、図8における円c1〜c4は、BGAモデルの各ピンを示す。各ピンに配置された矩形(r1〜r4)、水平ピン間に設けられた矩形(r5およびr6)、垂直ピン間に設けられた矩形(r7およびr8)、および対角ピン間に設けられた矩形(r9)は、ボトルネック箇所を表現するためのものである。また、本実施の形態では、各矩形を「セル」という。各セルには容量(配線通過許容数)が与えられる。図8において、各セル内における数値は、該当するセルに付与された容量を示す。
また、各セルは、対角線上に二つのノードを有する。左上のノードは入り口ノードであり、右下のノードは出口ノードである。有向グラフ生成部710は、所定の規則に従って各ノードを接続する有向枝を生成する。そして、図8においてノード間を接続する矢印が有向枝を示す。有向枝が生成されることによって、配線経路作成を実施するための有向グラフが生成される。
経路探索部720は、最短経路探索部721およびバックトレース部722を有しており、有向グラフ生成部710によって生成された有向グラフにおいて、すべての引き出し対象の配線ごとに最短経路を探索する。
概略経路確定部730は、経路探索部720によって探索された各経路を各配線に分配することにより、概略配線の引き出し経路(概略経路)を確定する。そして、ネットリスト741、ピンリスト742、配線ルール743および出口情報744は、配線経路作成に利用する入力情報である。ネットリスト741は、引き出し対象のピンの識別子の一覧情報を含む。また、ピンリスト742は、配線対象のBGAに配置されているすべてのピンに関する情報を含む。そして、配線ルール743は、配線可能領域を規定する各種のパラメータを含み、出口情報744は、配線対象のBGAにおいて配線の出口位置を識別するための情報を含んでいる。
図9は、概略経路作成処理の手順を示すフローチャートである。図9のフローチャートにおいて、経路作成支援装置700は、まず、有向グラフ生成部710によって、概略配線を実施するためのネットワークフローモデル化された有向グラフを生成する(ステップS901)。
図10は、有向グラフの作成例を示す説明図である。すなわち、図10は、図9におけるステップS901の処理結果を示している。図10において、実線による円はピンを示す。また、グレーに塗りつぶされた円は、配線の引き出し対象(引き出し元)となるピン(以下、「引き出し対象ピン」とよぶ)を示す。さらに、破線による円は空きピンを示す。そして、各矩形はセルを示す。
図10では、配線の出口位置を破線で囲まれた出口位置Oに限定した場合の有向グラフの生成状態を示す。出口位置Oに含まれるセルを以下「出口セル」という。上述のように、セル内の入り口ノードから出口ノードへの方向を有する有向枝および出口ノードから隣接する他のセルの入り口ノードへの方向を有する有向枝が生成されることにより有向グラフが生成される。また、湧き出しノードSは、有向グラフの始点として設けられたノードである。そして、流入ノードTは、有向グラフの終点として設けられたノードである。なお、各有向枝は、当該有向枝が接続するノードが属するセルの容量に応じた容量を有する。
図9の処理に戻り、ステップS901の処理が完了すると、経路作成支援装置700は、続いて経路探索部720によって、有向グラフ生成部710によって生成された有向グラフにおいて、すべての引き出し対象の配線ごとに最短経路を探索する(ステップS902)。
図11は、経路の検索例を示す説明図である。すなわち、図11は、図9のステップS902の処理結果を示している。図11において、太い実線が、経路探索部720によって探索された経路を示す。また、本実施の形態では、6本の配線が要求されている場合について説明しているため、図11に示される経路は、6配線分の経路を示している。
図11に示した各経路は、湧き出しノードSから引き出し対象ピンの入り口ノードを経由し、更に、出口セルの出口ノードを経由して流入ノードTまで至る。なお、ステップS902の処理の終了時点では、各経路に属する各有向枝がいずれの配線の持ち物になるかは決定されていない。
ステップS902の処理が完了すると、経路作成支援装置700は、概略経路確定部730によって、経路探索部720によって探索された各経路を各配線に分配し、概略配線の引き出し経路(概略経路)を確定する(ステップS903)。ステップS903によって確定された概略経路が配線経路の作成結果となる。
図12は、概略経路の確定例を示す説明図である。すなわち、図12は、ステップS903の処理結果を示している。図12において、符号en(nは整数)が付されている有向枝は、確定された概略経路が通過する有向枝である。なお、図12では、便宜上、3本の概略経路が確定した状態を示している。以上説明した処理手順によって、経路作成支援装置700は、BGAの概略配線を自動的に実行することができる。
以上説明したように、経路作成支援装置700を利用することによって、指定された2つの端子群の配線収容性を検証することができる。すなわち、設計支援装置100の検出部501は、経路作成支援装置700による作成結果として提供された配線経路のうち、正しく配線できなかった信号線を未配線ネットとして検出する。以下には、本実施の形態にかかる検証支援処理の具体的な実施例として、実施例1〜5について説明する。なお、以下の実施例1〜5では、配線収容性を検証するための配線エンジンとして最大フローアルゴリズムを利用した経路作成支援装置700を採用するが、他のツールを用いてもよい。
(実施例1)
図13は、実施例1における配線領域決定処理の手順を示すフローチャートである。図13のフローチャートが表す実施例1は、設計支援装置100を用いた最も基本的な配線領域決定処理であり、単層プリント基板110に所定のバス(たとえばバスAの)配線領域を決定する。図13の各処理を実行することによって、所定のバスについて未配線ネットの生じることの無い必要最低限の広さの配線領域を決定することができる。
図13において設計支援装置100は、まず、配線対象となるバスの仮配線領域を設定する(ステップS1301)。続いて、設計支援装置100は、設定した仮配線領域について、配線収容性の検証を実行する(ステップS1302)。その後、設計支援装置100は、ステップS1302の検証結果から、未配線ネットがゼロか否かを判断し(ステップS1303)、未配線ネットがゼロと判断された場合(ステップS1303:Yes)、現時点で設定されている既仮配線領域を配線領域に決定し(ステップS1304)、一連の処理を終了する。
一方、ステップS1303において、未配線ネットがゼロではないと判断された場合(ステップS1303:No)、設計支援装置100は、現時点で設定されている既仮配線領域において未配線ネットと判断されたネット数分、仮配線領域を拡大修正する(ステップS1305)。設計支援装置100は、ステップS1305において拡大修正された仮配線領域に対して配線収容性の検証を実行する(ステップS1302)。
設計支援装置100は、あらたに設定された仮配線領域の配線収容性の検証を実行すると、検証結果から、未配線ネットの有無を判断する(ステップS1303)。上述したように、未配線ネットがゼロと判断された場合には(ステップS1303:Yes)、現時点での既仮配線領域を配線領域に決定して(ステップS1304)、一連の処理を終了する。すなわち、ステップS1305において拡大修正された仮配線領域が配線領域として決定される。つぎに、上述した手順による配線領域の決定例を図14〜図23を用いて説明する。
図14は、実施例1における仮配線領域の設定例を示す説明図である。実施例1では、図14のように、プリント基板110において、端子群201,202間を接続する概略経路1400に基づいて設定された仮配線領域300から適切な配線領域を決定するまでの手順について説明する。なお、プリント基板110上には、対象となるバスへの関係の有無を問わずに各種の素子が配置されている。したがって、プリント基板110上の素子の配置場所によっては、仮配線領域300の障害物301となってしまうことがある。しかしながら、経路作成支援装置700では、障害物301を考慮した上で配線収容性が検証されるため、障害物301対策を講じる必要はない(後述する実施例2〜5も同様)。
図15は、実施例1における配線エンジン実行例を示す説明図である。設計支援装置100は、仮配線領域300が設定されると、配線エンジンによって各端子群201,202からバスに所属する各信号線についての配線経路作成をシミュレートして、配線収容性を検証する。
図16は、実施例1における未配線ネットの発生例を示す説明図である。図16のように、配線エンジンの実行によって、仮配線領域300について配線経路がシミュレートされた結果、端子群201,202間には4本の未配線ネットが生じている。したがって、設計支援装置100は、現在の仮配線領域300の更新処理へ移行する。
図17は、実施例1における仮配線領域の拡大例を示す説明図である。設計支援装置100は、配線収容性の検証によって検出された未配線ネットの本数に応じて仮配線領域300を拡大してあらたな仮配線領域310を設定する。図16にて説明したように、仮配線領域300からは、4本の未配線ネットが検出されている。したがって、設計支援装置100は、4本分の信号線を配線するために必要な幅分、仮配線領域300を拡大して仮配線領域310を設定する。なお、未配線ネットの1本あたりについての仮配線領域300の拡大の幅は、信号線の線幅や、線間隔によって異なる。したがって、設計支援装置100は、設計情報120を参照して、仮配線領域300の拡大幅を特定する。
図18は、実施例1における仮配線領域拡大後の配線エンジン実行例を示す説明図である。設計支援装置100は、あらたに仮配線領域310が設定されると、配線エンジンによって各端子群201,202からバスに所属する各信号線についての配線経路作成をシミュレートして、配線収容性を検証する。
図19は、実施例1における仮配線領域拡大後の未配線ネットの発生例を示す説明図である。図19のように、配線エンジンの実行によって、仮配線領域310について配線経路がシミュレートされた結果、端子群201,202間には未だ3本の未配線ネットが生じている。したがって、設計支援装置100は、再度、仮配線領域310の更新処理へ移行する。
図20は、実施例1における仮配線領域の2度目の拡大例を示す説明図である。設計支援装置100は、仮配線領域310についても、仮配線領域300と同様に、配線収容性の検証によって検出された未配線ネットの本数に応じた更新処理を実行する。図19にて説明したように、仮配線領域310からは、3本の未配線ネットが検出されている。したがって、設計支援装置100は、3本分の信号線を配線するために必要な幅分、仮配線領域310を拡大して仮配線領域320を設定する(2度目の拡大)。
図21は、実施例1における2度目の仮配線領域拡大後の配線エンジン実行例を示す説明図である。設計支援装置100は、あらたに仮配線領域320が設定されると、前回の更新処理後と同様に、配線エンジンによって各端子群201,202からバスに所属する各信号線についての配線経路作成をシミュレートして、配線収容性を検証する。
図22は、実施例1における未配線ネットの解消例を示す説明図である。また、図23は、実施例1における配線領域の決定例を示す説明図である。図22のように、配線エンジンの実行によって、仮配線領域320について配線経路がシミュレートされた結果、端子群201,202間の未配線ネットは解消され、すべての信号線が接続されている。したがって、設計支援装置100は、図23のように未配線ネットが解消された仮配線領域320を配線領域に決定して一連の処理を終了する。
以上説明したように、実施例1では、設計支援装置100は、設計情報120を取得すると、指定されたバスを構成する各信号線を漏れなく配線する配線領域を自動的に決定することができる。設計支援装置100は、設計情報120から設定された仮配線領域での配線収容性の検証により、未配線ネットの発生状況を特定することによって、未配線ネットの本数に基づいた拡大処理を実行する。
その後、設計支援装置100は、未配線ネットが解消した時点での仮配線領域を配線領域として決定するため、不要に配線領域を拡大することなく、必要最低限の配線領域にとどめることができる。結果として、プリント基板110への効率的な配線設計を支援することができる。
(実施例2)
図24は、実施例2における配線領域決定処理の手順を示すフローチャートである。図24のフローチャートが示す実施例2は、指定された複数のバスの配線領域を順次決定する。図24の各処理を実行することによって、複数のバスの配線領域を決定することができる。
図24において設計支援装置100は、まず、設計情報120の中から未処理バスを選択する(ステップS2401)。その後、設計支援装置100は、ステップS2401によって選択されたバスの仮配線領域を設定する(ステップS2402)。続いて、設計支援装置100は、設定した仮配線領域について、配線収容性の検証を実行する(ステップS2403)。
その後、設計支援装置100は、ステップS2403の検証結果から、未配線ネットがゼロか否かを判断し(ステップS2404)、未配線ネットがゼロと判断された場合(ステップS2404:Yes)、現時点で設定されている既仮配線領域を配線領域に決定する(ステップS2405)。
一方、ステップS2404において、未配線ネットがゼロではないと判断された場合(ステップS2404:No)、設計支援装置100は、現時点で設定されている既仮配線領域において未配線ネットと判断されたネット数分、仮配線領域を拡大修正する(ステップS2406)。設計支援装置100は、ステップS2406において拡大修正された仮配線領域に対して配線収容性の検証を実行する(ステップS2403)。
設計支援装置100は、あらたに設定された仮配線領域の配線収容性の検証を実行すると、検証結果から、未配線ネットの有無を判断する(ステップS2404)。上述したように、未配線ネットがゼロと判断された場合(ステップS2404:Yes)、設計支援装置100は、現時点での既仮配線領域を配線領域に決定する(ステップS2405)。
その後、設計支援装置100は、未処理のバスがあるか否かを判断し(ステップS2407)、未処理バスがあると判断された場合には(ステップS2407:Yes)、ステップS2401に移行して、未処理バスの処理に移行する。そして、未処理バスがないと判断された場合(ステップS2407:No)、設計支援装置100は、一連の処理を終了する。すなわち、ステップS2406において拡大修正された仮配線領域が配線領域として決定される。つぎに、上述した手順による配線領域の決定例を図25〜図35を用いて説明する。
図25は、実施例2における各バスの仮配線領域の設定例を示す説明図である。実施例2では、図25のように、プリント基板110において、端子群2501〜2504間のバスA,B,Cについてそれぞれ適切な配線領域を決定するまでの手順について説明する。なお、バスAは端子群2501,2503間を接続し、バスBは端子群2502,2503間を接続し、バスCは端子群2502,2504間を接続する。
図26は、実施例2における他のバスの配線領域の決定例を示す説明図である。図26のように、まず、バスA,Bについて配線した場合、バスA,Bは、ぞれぞれの仮配線領域が重複しないため、実施例1にて説明した手順をそのまま利用して配線領域を決定できる。したがって、以下の図27〜図35では、バスBの配線領域と仮配線領域が重複してしまうバスCについて適切な配線領域を決定するまでの手順について説明する。
図27は、実施例2における配線エンジン実行例を示す説明図である。設計支援装置100は、仮配線領域2700が設定されると、配線エンジンによって各端子群2502,2504からバスCに所属する各信号線についての配線経路作成をシミュレートして、配線収容性を検証する。なお、配線収容性検証の際に、仮配線領域2700と重複しているバスBの配線領域は障害物として扱われる。
図28は、実施例2における未配線ネットの発生例を示す説明図である。図28のように、配線エンジンの実行によって、仮配線領域2700について配線経路がシミュレートされた結果、端子群2502,2504間には4本の未配線ネットが生じている。したがって、設計支援装置100は、現在の仮配線領域2700の更新処理へ移行する。
図29は、実施例2における仮配線領域の拡大例を示す説明図である。設計支援装置100は、配線収容性の検証によって検出された未配線ネットの本数に応じて仮配線領域2700を拡大してあらたな仮配線領域2710を設定する。図28にて説明したように、仮配線領域2700からは、4本の未配線ネットが検出されている。したがって、設計支援装置100は、4本分の信号線を配線するために必要な幅分、仮配線領域2700を拡大して仮配線領域2710を設定する。なお、実施例1と同様に未配線ネットの1本あたりについての仮配線領域2700の拡大の幅は、信号線の線幅や、線間隔によって決定される。
図30は、実施例2における仮配線領域拡大後の配線エンジン実行例を示す説明図である。設計支援装置100は、あらたに仮配線領域2710が設定されると、配線エンジンによって各端子群2502,2504からバスに所属する各信号線についての配線経路作成をシミュレートして、配線収容性を検証する。
図31は、実施例2における仮配線領域拡大後の未配線ネットの発生例を示す説明図である。図31のように、配線エンジンの実行によって、仮配線領域2710について配線経路がシミュレートされた結果、端子群2502,2504間には未だ2本の未配線ネットが生じている。したがって、設計支援装置100は、再度、仮配線領域2710の更新処理へ移行する。
図32は、実施例2における仮配線領域の2度目の拡大例を示す説明図である。設計支援装置100は、仮配線領域2710についても、仮配線領域2700と同様に、配線収容性の検証によって検出された未配線ネットの本数に応じた更新処理を実行する。図31にて説明したように、仮配線領域2710からは、2本の未配線ネットが検出されている。したがって、設計支援装置100は、2本分の信号線を配線するために必要な幅分、仮配線領域2710を拡大して仮配線領域2720を設定する(2度目の拡大)。
図33は、実施例2における2度目の仮配線領域拡大後の配線エンジン実行例を示す説明図である。設計支援装置100は、あらたに仮配線領域2720が設定されると、前回の更新処理後と同様に、配線エンジンによって各端子群2502,2504からバスに所属する各信号線についての配線経路作成をシミュレートして、配線収容性を検証する。
図34は、実施例2における未配線ネットの解消例を示す説明図である。また、図35は、実施例2における配線領域の決定例を示す説明図である。図34のように、配線エンジンの実行によって、仮配線領域2720について配線経路がシミュレートされた結果、端子群2502,2504間の未配線ネットは解消され、すべての信号線が接続されている。したがって、設計支援装置100は、図35のように未配線ネットが解消された仮配線領域2720を配線領域に決定して一連の処理を終了する。
以上説明したように、実施例2では、プリント基板110上に複数のバスが隣接する場合であっても、順次バスの配線領域を決定する。また、先に実行されたバスの配線領域が隣接するバスの仮配線領域内に大きく侵入して重複するような配線結果となっても、設計支援装置100は、重複部分の領域を障害物として扱って配線収容性を検証する。同様に、設計支援装置100は、仮配線領域の拡大処理を行う際にも、上述の重複部分を障害物として扱い拡大領域から排除する。実施例1と同様に、未配線ネットの発生のない適切な配線領域を効率的に決定することができる。
(実施例3)
図36は、実施例3における配線領域決定処理の手順を示すフローチャートである。図36のフローチャートが示す実施例では、配線の階層が指定されたバスの配線領域を決定する。したがって、実施例3は、多層構造のプリント基板110における配線領域の決定の際に利用される。図36の各処理を実行することによって、指定された階層に適切な配線領域を決定することができる。
図36において設計支援装置100は、まず、配線対象となるバスの仮配線領域を設定する(ステップS3601)。続いて、設計支援装置100は、設定した仮配線領域について、配線収容性の検証を実行する(ステップS3602)。その後、設計支援装置100は、ステップS3602の検証結果から、未配線ネットがゼロか否かを判断し(ステップS3603)、未配線ネットがゼロと判断された場合(ステップS3603:Yes)、現時点で設定されている既仮配線領域を配線領域に決定し(ステップS3604)、一連の処理を終了する。
一方、ステップS3603において、未配線ネットがゼロではないと判断された場合(ステップS3603:No)、設計支援装置100は、前回の配線収容性と、直前に実行された配線収容性とを比較する(ステップS3605)。そして、設計支援装置100は、ステップS3605の比較結果から未配線ネットが前回と比較して減少したか否かを判断する(ステップS3606)。なお、配線収容性の検証が1回しか行われていない場合には、自動的に未配線ネットが減少したものとして処理を進める。
ステップS3606において、未配線ネットが減少したと判断された場合(ステップS3606:Yes)、設計支援装置100は、既仮配線領域を未配線ネット分拡大修正し(ステップS3608)、ステップS3602に移行して、拡大後の仮配線領域について配線収容性の検証を実行する。
一方、ステップS3606において、未配線ネットが減少していないと判断された場合(ステップS3606:No)、設計支援装置100は、現在配線対象としている階層(たとえば第1層)では適切な配線領域を確保できないと判断する。したがって、設計支援装置100は、異なる階層(たとえば第2層)で、残りの未配線ネットの仮配線領域を設定する(ステップS3607)。
ステップS3607によって異なる階層に仮配線領域を設定した場合、設計支援装置10は、ステップS3602の処理に移行し、他の階層を含めて配線収容性の検証を行う。以降は、実施例1,2の処理と同様に、未配線ネットが解消するまで拡大処理を繰り返し、未配線ネットが解消すると(ステップS3603:Yes)、現時点で設定されている既仮配線領域を配線領域に決定し(ステップS3604)、一連の処理を終了する。つぎに、上述した手順による配線領域の決定例を図37〜図41を用いて説明する。
図37は、実施例3における各バスの仮配線領域の設定例を示す説明図である。実施例3では、図37のように、プリント基板110(第1層110−1、第2層110−2)において、端子群2501〜2504間のバスA,B,Cについてそれぞれ適切な配線領域を決定するまでの手順について説明する。なお、バスAは端子群2501,2503間を接続し、バスBは端子群2502,2503間を接続し、バスCは端子群2502,2504間を接続する。
図38は、実施例3における他のバスの配線領域の決定例を示す説明図である。図38ように、まず、バスA,Cについて配線した場合、バスA,Cは、ぞれぞれの仮配線領域が重複しないため、実施例1にて説明した手順をそのまま利用して第1層110−1上に配線領域を決定できる。したがって、以下の図39〜図41では、バスCの配線領域と仮配線領域が重複してしまうバスBについて適切な配線領域を決定するまでの手順について説明する。
図39は、実施例3における第1層の配線収容性の検証例を示す説明図である。また、図40は、実施例3における第1層の配線領域の設定例を示す説明図である。設計支援装置100は、バスBについてまず、第1層110−1を対象に配線収容性の検証を実行する。しかしながら、図40のように、第1層110−1上は、既にバスA,Cの配線領域の密集度が高く、たとえ拡大処理を実行したとしても、信号線2本分を配線できる仮配線領域4000を設定することしかできない。そこで、設計支援装置100は、第1層110−1については、現時点での仮配線領域を配線領域に決定し、未配線ネットの配線領域を第2層110−2上で検証する処理に移行する。
図41は、実施例3における第2層の配線領域の設定例を示す説明図である。図41のように、第2層110−2は、バスA,Cの配線領域が関与していない。したがって、設計支援装置100は、端子群2502,2503間を接続する未配線ネット7本について、あらたに仮配線領域4100を設定して配線収容性の検証を行う。検証の結果、未配線ネットが解消されていると判断されると、設計支援装置100は、現時点での仮配線領域4100を配線領域に決定して一連の処理を終了する。
以上説明したように、実施例3では、設計者または上位システムからの配線層指定があるバスについては、まず、指定された階層において優先的に配線検証を行う。配線収容性検証の結果、一定の範囲までの拡大修正を行っても未配線ネット数がゼロにならない場合、設計支援装置100は、現在形成中の仮配線領域を指定された階層に作成する。そして、設計支援装置100は、既仮配線領域には収容しきれず未配線になるネット数分の配線領域を他の階層に決定する。結果として、指定された階層の配線の密集度が高い場合であっても、指定階層への配線領域を最大限活かし生かしつつ、未配線ネットのない配線領域を決定することができる。
(実施例4)
図42は、実施例4における配線領域決定処理の手順を示すフローチャートである。図42のフローチャートが示す実施例4は、1つのバス内に複数の接続区間が設定されている場合に、各接続区間を考慮して配線領域を決定する。図42の各処理を実行することによって、バスを接続する素子の機能に応じた適切な配線領域を決定することができる。
図42において、設計支援装置100は、まず、配線対象となるバスの仮配線領域を接続区間ごとに設定する(ステップS4201)。続いて、設計支援装置100は、設定した各仮配線領域について、配線収容性の検証を実行する(ステップS4202)。その後、設計支援装置100は、ステップS4202の検証結果から、未配線ネットがゼロか否かを判断し(ステップS4203)、未配線ネットがゼロと判断された場合(ステップS4203:Yes)、現時点で設定されている既仮配線領域を配線領域に決定し(ステップS4204)、一連の処理を終了する。
一方、ステップS4203において、未配線ネットがゼロではないと判断された場合(ステップS4203:No)、設計支援装置100は、前回の配線収容性と、直前に実行された配線収容性とを比較する(ステップS4205)。そして、設計支援装置100は、ステップS4205の比較結果から未配線ネットが前回と比較して減少したか否かを判断する(ステップS4206)。なお、配線収容性の検証が1回しか行われていない場合には、自動的に未配線ネットが減少したものとして処理を進める。
ステップS4206において、未配線ネットが減少したと判断された場合(ステップS4206:Yes)、設計支援装置100は、既仮配線領域を未配線ネット数分拡大修正し(ステップS4208)、ステップS4202に移行して、拡大後の仮配線領域について配線収容性の検証を実行する。
一方、ステップS4206において、未配線ネットが減少していないと判断された場合(ステップS4206:No)、設計支援装置100は、現在配線対象としている階層(たとえば第1層)では適切な配線領域を確保できないと判断する。したがって、設計支援装置100は、異なる階層(たとえば第2層)で、残りの未配線ネットの仮配線領域を設定する(ステップS4207)。
ステップS4207によって異なる階層に仮配線領域を設定した場合、設計支援装置10は、ステップS4202の処理に移行し、他の階層を含めて配線収容性の検証を行う。以降は、実施例1,2の処理と同様に、未配線ネットが解消するまで拡大処理を繰り返し、未配線ネットが解消すると(ステップS4203:Yes)、現時点で設定されている既仮配線領域を配線領域に決定し(ステップS4204)、一連の処理を終了する。つぎに、上述した手順による配線領域の決定例を図43〜図49を用いて説明する。
図43は、実施例4における仮配線領域の設定例を示す説明図である。図43のように、実施例4では、プリント基板110上の端子群4301,4302をバスDによって接続する。バスDには、回路図4300に示すような素子(ドライバD、レシーバRなど)が含まれている。各素子には各種抵抗(ダンピング抵抗、終端抵抗)が付随しており、バスDを機能させるには、各種抵抗との配線が必要になる。なお、図43に例示した回路図4300は便宜上プリント基板110に表示したものであって、実際のプリント基板110上の構成を表したものではない。
図44は、実施例4における接続区間ごとの配線収容性の検証例を示す説明図である。上述したように、バスDでは、回路図4300に示した各素子を接続する。したがって、図44のように、3つの仮配線領域4400,4410,4420についての配線収容性の検証が必要になる。
図45は、実施例4におけるダンピング抵抗〜レシーバ間の配線収容性の検証例を示す説明図である。また、図46は、実施例4におけるダンピング抵抗〜レシーバ間の配線領域の決定例を示す説明図である。設計支援装置100は、まず、回路図4300の各素子の接続区間ごとに順番に配線収容性の検証を行う。図45に示すように、設計支援装置100は、まず、ダンピング抵抗〜レシーバ間4501を接続する仮配線領域4500の配線収容性の検証を行う。その後、設計支援装置100は、未配線ネットの検出結果に応じて適宜拡大処理を実行した結果として図46に示したような配線領域4600を決定する。
図47は、実施例4における残りの各素子間の配線収容性の検証例を示す説明図である。また、図48は、実施例4における残りの各素子間の配線領域の決定例を示す説明図である。引き続き、設計支援装置100は、回路図4300の残りの素子として、ドライバ〜ダンピング抵抗間4711を接続する仮配線領域4701と、レシーバ〜終端抵抗間4712を接続する仮配線領域4702とについて、配線収容性の検証を行う。そして、配線収容性の検証の結果、設計支援装置100は、ドライバ〜ダンピング抵抗間4711を接続する配線領域4801と、レシーバ〜終端抵抗間4712を接続する配線領域4802とを決定する。したがって、先に決定した配線領域4600と共に、バスDに必要な各信号線を漏れなく接続する配線領域が決定される。
以上説明したように、実施例4では、バス内に複数の接続区間が発生する場合であっても各接続区間についてそれぞれ適切な配線領域を決定することができる。複数の接続区間が発生する場合とは、具体的には、図43に例示したように、設計情報120では、バスの配線経路が能動部品同士の接続のみを考慮して形成されている場合が挙げられる。すなわち、実際に能動部品を機能させる際に付随する抵抗などの受動素子が考慮されていない。ところが、実装時には、能動部品と受動部品とを接続する接続区間が追加される。したがって、実施例4を利用することによって、上述のように追加された接続区間を加えた複数の接続区間についての配線領域の決定が可能になる。
(実施例5)
図49は、実施例5における配線領域決定処理の手順を示すフローチャートである。図49のフローチャートが表す実施例5は、概略経路の途中でビアを経由して他の階層に配線するように設定されたバスの配線領域を決定する。図49の各処理を実行することによって、指定したビアを経由して階層ごとに適切な配線領域を決定することができる。
図49において設計支援装置100は、指定された階層ごとに独立して配線領域を決定する。まず、配線対象となるバスの仮配線領域を設定する(ステップS4901)。続いて、設計支援装置100は、設定した仮配線領域について、配線収容性の検証を実行する(ステップS4902)。そして、設計支援装置1000は、指定された階層ごとに独立して配線領域を決定する。
図50は、実施例5における仮配線領域と切り替え点の設定例を示す説明図である。図50のように、たとえばプリント基板110に対して、端子群5001〜(第1層)〜切り替え点5003〜(第2層)〜端子群5002という階層設定がなされている場合、設計支援装置100は、まず、端子群5001〜切り替え点5003について、第1層を対象に配線領域を決定する。したがって、設計支援装置100は、ステップS4902の検証結果から、未配線ネットがゼロか否かを判断し(ステップS4903)、未配線ネットがゼロと判断された場合(ステップS4903:Yes)、現時点で設定されている既仮配線領域を配線領域に決定し(ステップS4904)、一連の処理を終了する。
一方、ステップS4903において、未配線ネットがゼロではないと判断された場合(ステップS4903:No)、設計支援装置100は、現時点で設定されている既仮配線領域において未配線ネットと判断されたネット数分、仮配線領域を拡大修正する(ステップS4905)。設計支援装置100は、ステップS4905において拡大修正された仮配線領域に対して配線収容性の検証を実行する(ステップS4902)。
設計支援装置100は、あらたに設定された仮配線領域の配線収容性の検証を実行すると、検証結果から、未配線ネットの有無を判断する(ステップS4903)。上述したように、未配線ネットがゼロと判断された場合には(ステップS4903:Yes)、設計支援装置100は、現時点での既仮配線領域を配線領域に決定する(ステップS4904)。以上説明した処理を、第2層を対象に切り替え点5003〜端子群5002間でも実行した後、一連の処理を終了する。つぎに、上述した手順による配線領域の決定例を図51〜図54を用いて説明する。
図51は、実施例5における各層の仮配線領域の設定例を示す説明図である。また、図52は、実施例5における各層の配線収容性の検証例を示す説明図である。図51のように、第1層では、端子群5001〜切り替え点5003間について、仮配線領域5101が設定され、第2層では、ビア5003〜端子群5002間について、仮配線領域5102が設定される。設計支援装置100は、図52のように、仮配線領域5101,5102についてそれぞれ、配線収容性の検証を行う。なお、設計支援装置100は、設計情報120から、各層の切り替え点5003にビア5100を設計する。
図53は、実施例5における各層の仮配線領域の拡大例を示す説明図である。また、図54は、実施例5における各層の配線領域の決定例を示す説明図である。図53のように設計支援装置100は、設定された各仮配線領域5101,5102について、それぞれ対応する階層上で、配線収容性の検証を行う。そして、検証結果に応じて適宜拡大処理を行うことによって、第1層では、仮配線領域5301を設定し、第2層では仮配線領域5302を設定する。設計支援装置100は、仮配線領域5301,5302設定後、配線収容性の検証を行い、未配線ネットが検出されなければ、そのまま仮配線領域5301,5302を配線領域として決定する。
以上説明したように、実施例5では、多層構造のプリント基板110において、バスの概略経路の途中に階層の切り替え点が設定されている場合であっても、ビアを基点として、各階層に適切な配線領域を決定することができる。
以上説明したように、設計支援プログラム、設計支援装置および設計支援方法によれば、仮配線領域から検出された未配線ネット数に応じて、仮配線領域の拡大処理を未配線ネットが解消されるまで自動的に繰り返して実行する。したがって、不要な拡大処理を防ぎ、適切な配線領域が決定されるため、未配線ネットの発生による手戻りを防ぎ、効率的な配線設計を支援することができる。
また、上記技術は、配線収容性の検証の際に、他のバスの配線領域を回避するような検証を行う機能を備えている。したがって、複数のバスが設定され、混雑度が高いプリント基板上であっても、未配線ネットの発生を防ぐことができる。
また、上記技術は、配線処理対象となっている階層において、これ以上の仮配線領域の拡大処理による未配線ネットの解消が見込めない場合に、他の階層を配線対象に設定する機能を備えている。したがって、多層プリント基板であれば、他の階層に配線領域を拡大して、配線不能となるような事態を回避することができる。
また、上記技術は、バス内に複数の接続区間が存在する場合に、各接続区間について配線領域を決定する機能を備えている。したがって、受動部品など、設計時点で考慮されていない素子についても、実装時に未配線ネットが発生しないよう適切な配線領域を設定することができる。
また、上記技術は、一つのバスが異なる階層に渡って接続されるような設計指示を受けた場合に、階層の切り替え点にビアを設計して各階層の端子群との接続の基点とする機能を備えることもできる。切り替え点にビアを設計して各階層の端子群について配線収容性の検証を行うことによって、各階層に適切な配線領域を設定できる。
なお、本実施の形態で説明した設計支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネットなどのネットワークを介して配布してもよい。
また、本実施の形態で説明した設計支援装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した設計支援装置100の機能(検出部501〜判定部510)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、設計支援装置100を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)仮配線領域内での第1および第2の端子群間の仮配線処理を実行するコンピュータを、
前記仮配線領域内で前記仮配線処理によって発生した未配線ネットの検出処理を実行する検出手段、
前記検出手段によって前記未配線ネットが検出された場合、前記未配線ネットの数に応じて前記仮配線領域を拡大させる更新処理を実行する更新手段、
前記更新手段によって更新されたときの仮配線領域内で前記仮配線処理および当該仮配線処理後における前記検出処理を実行させる制御手段、
前記検出手段によって前記未配線ネットが検出されなかったときの仮配線領域を配線領域に決定する決定手段、
として機能させることを特徴とする設計支援プログラム。
(付記2)前記制御手段は、
すでに前記決定手段によって決定された他の配線領域を回避するように前記仮配線処理を実行させることを特徴とする付記1に記載の設計支援プログラム。
(付記3)前記コンピュータを、
前記仮配線処理を実行している階層において、前記更新処理を実行した場合に、未配線ネット数が減少するか否かを判断する判断手段、
前記判断手段によって、前記未配線ネット数が減少しないと判断された場合、前記仮配線領域が存在する階層とは異なる他の階層に、前記仮配線領域と前記第1および第2の端子群を設定する階層設定手段として機能させ、
前記制御手段は、
前記階層設定手段による設定後における前記他の階層での前記仮配線領域内で前記仮配線処理および当該仮配線処理後における前記検出処理を実行させることを特徴とする付記1または2に記載の設計支援プログラム。
(付記4)前記コンピュータを、
対象回路内の素子の接続情報を取得する取得手段、
前記取得手段によって取得された接続情報の中から配線すべき素子の組み合わせを抽出する抽出手段、
前記抽出手段によって抽出された組み合わせごとに、一方の素子の端子群を前記第1の端子群、他方の素子の端子群を前記第2の端子群に設定する端子群設定手段として機能させ、
前記検出手段は、
前記仮配線領域内で前記端子群設定手段によって設定された前記第1および第2の端子群間の前記仮配線処理によって発生した未配線ネットの検出処理を実行することを特徴とする付記1〜3のいずれか一つに記載の設計支援プログラム。
(付記5)前記コンピュータを、
現在対象となっている組み合わせにおける前記第1および第2の端子群を有するいずれか一方の素子が、前記決定手段による決定済みの配線領域に含まれているか否かを判定する判定手段として機能させ、
前記階層設定手段は、
前記判定手段によって前記決定済みの配線領域に含まれていると判定された場合、前記決定手段によってすでに決定された配線領域が存在する階層とは異なる階層に、現在対象となっている組み合わせにおける前記第1および第2の端子群の仮配線領域を設定し、
前記検出手段は、
前記階層設定手段によって設定された仮配線領域内での現在対象となっている組み合わせにおける前記第1および第2の端子群間の前記仮配線処理によって発生した未配線ネットの検出処理を実行することを特徴とする付記4に記載の設計支援プログラム。
(付記6)前記抽出手段は、
前記取得手段によって取得された接続情報の中から異なる階層間に接続される素子の組み合わせを抽出し、
前記端子群設定手段は、
前記抽出手段によって抽出された異なる階層の切り替え箇所にビアを設定し、当該ビア端子群と前記第1の端子群、その他の端子群を前記第2の端子群に設定することを特徴とする付記4に記載の設計支援プログラム。
(付記7)前記検出手段は、
前記仮配線領域内において、前記仮配線処理として最大フローアルゴリズムを行って発生した未配線ネットを検出することを特徴とする付記1〜6のいずれか一つに記載の設計支援プログラム。
(付記8)仮配線領域内での第1および第2の端子群間の仮配線処理を実行する設計支援装置であって、
前記仮配線領域内で前記仮配線処理によって発生した未配線ネットの検出処理を実行する検出手段と、
前記検出手段によって前記未配線ネットが検出された場合、前記未配線ネットの数に応じて前記仮配線領域を拡大させる更新処理を実行する更新手段と、
前記更新手段によって更新されたときの仮配線領域内で前記仮配線処理および当該仮配線処理後における前記検出処理を実行させる制御手段と、
前記検出手段によって前記未配線ネットが検出されなかったときの仮配線領域を配線領域に決定する決定手段と、
を備えることを特徴とする設計支援装置。
(付記9)検出手段と更新手段と制御手段と決定手段とを備え、仮配線領域内での第1および第2の端子群間の仮配線処理を実行するコンピュータが、
前記検出手段により、前記仮配線領域内で前記仮配線処理によって発生した未配線ネットの検出処理を実行する検出工程と、
前記更新手段により、前記検出工程によって前記未配線ネットが検出された場合、前記未配線ネットの数に応じて前記仮配線領域を拡大させる更新処理を実行する更新工程と、
前記制御手段により、前記更新工程によって更新されたときの仮配線領域内で前記仮配線処理および当該仮配線処理後における前記検出処理を実行させる実行工程と、
前記決定手段により、前記検出工程によって前記未配線ネットが検出されなかったときの仮配線領域を配線領域に決定する決定工程と、
を実行することを特徴とする設計支援方法。