説明

配線支援方法及び装置

【課題】配線すべき複数の信号線を、ユーザの指定する目的に従って適切にグループ化する。
【解決手段】配線すべき複数の信号線を複数のグループに分けるための方法は、ユーザから、複数の信号線のグループ化の条件の指定を受け付けるステップと、指定された、グループ化の条件と、データ格納部に格納されている、複数の信号線の始点端子群と終点端子群との配置パターンとに基づいて、複数の信号線のグループ化の処理を切り替えて実施する実施ステップとを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、LSI(Large Scale Integration)やプリント配線基板などにおける信号線の配線を支援するための技術に関する。
【背景技術】
【0002】
近年、複数の層を有する多層基板における配線設計作業では信号速度が高速化し、設計制約条件が指示されることが一般的になってきている。設計制約条件の中には、部品間を接続する信号線を流れる信号のタイミングを合わせるために、配線パスに対してその長さが指示されていたり、バスなどのような複数の配線パスからなるグループにおいてはその各配線パスの線長はすべて等しい長さとするという指示がされていたりする。
【0003】
例えば図1に示すように、信号の送信元であるドライバ1000から信号の受信先であるレシーバ1100まで、同一タイミングで信号が到達しなければならない場合には、配線パスの線長は全て等しい長さという等長線長条件が課される。
【0004】
また、例えば図2A(上面図)及び図2B(断面図)に示すように、多層基板の場合、第1の層L1の信号端子1004から第2の層L2の信号端子1003(例えば半導体チップIC1の端子)までをビア1001を使って配線することができる。しかしながら、各信号はビアを使っての複数層による配線1002では層間移動での遅延が発生するため、図2Cに示すように、ビアを使用しない単層配線をすることが求められてきている。
【0005】
しかし、図3Aに示すような始点端子群Aから終点端子群Bまでの多数の信号を含む信号群を単層配線すると、図3Bのように迂回する配線などにより配線領域が広がり、また信号間での線長差分が大きくなるという問題が生ずる。
【0006】
図4Aに模式的に示すように、高密度実装のため配線領域1600を小さくする場合には、配線すべき信号群におけるドライバからレシーバまでの最大線長を短くすることになる。しかしながら、配線領域を重視すると、信号群における線長のばらつきが生じて等長線長条件を遵守するための調整が難しくなる場合が生ずる。
【0007】
一方、図4Bに模式的に示すように、等長線長条件を重視して、線長差を小さくするように配線を行う場合には、配線すべき信号群におけるドライバからレシーバまでの最大線長が長くなって、配線領域1700が大きくなり高密度配線に支障をきたす場合も生ずる。
【0008】
そのため、配線すべき信号群を複数の層にグループ化し、各層の信号群ではこのような問題が起こらないようにすることが望まれる。
【0009】
しかしながら、人手で、配線すべき信号群を複数の層に適切にグループ化するのは難しい場合が多い。具体的には、要件を満たすように配線を行うことができないことが後から分かって、グループ化からやり直すといった手戻りを行うという非効率な作業が行われることになる。
【0010】
また、信号群の仮想配線領域を計算し、他の信号群の領域と重なった領域の信号数を調整し別層に移動するという自動化技術も存在している。しかしながら、このような技術では、他の信号群の存在が前提となっており、線長差の問題については考慮されてない。
【0011】
さらに、部品の配置、配線の混雑度を評価することで信号群をグループ化し、できるだけグループ化した各信号を近接するように配置して最適な経路を探索する手法も存在している。しかし、この技術でも、グループ化においては制約条件を満たすような考慮はないため、線長の問題を解決できないケースがある。また、グループ化した信号群の概略経路を再考しては評価する作業が繰り返され効率が悪い。また、配線領域の効率化についても考慮がなされていない。
【0012】
さらに、信号配線間隔を複数本分見積もって束配線し、出力側と入力側で端子の並びが同じ時はプリント基板の同一層内で配線を決定し、異なるときは、任意の折れ曲がり領域にスイッチングエリアを設けて二層に割り当てる技術も存在している。しかしながら、二層に分けるというのはビアを介して接続することを述べており、上で述べたような単層配線で制約条件を満たすものではない。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2006−11684号公報
【特許文献2】特開2004−287681号公報
【特許文献3】特開平7−296027号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
複数の層で単層配線を行うため、配線すべき複数の信号線をグループ化する場合に、考慮すべき事項は以下のとおりである。すなわち、等長線長条件を充足しやすくする線長調整容易性と、信号線や信号端子を密集させずに配線をし易くすることで配線領域を削減する結線容易性とである。また、これらの両方を考慮する場合であってもいずれを優先させるかという問題もある。従来技術は、このような問題に対処するように、複数の信号線をグループ化することができない。
【0015】
従って、本技術の目的は、一側面として、配線すべき複数の信号線を、ユーザの指定する目的に従って適切にグループ化する技術を提供することである。
【課題を解決するための手段】
【0016】
配線すべき複数の信号線を複数のグループに分けるための方法は、(A)ユーザから、複数の信号線のグループ化の条件の指定を受け付けるステップと、(B)指定された、グループ化の条件と、データ格納部に格納されている、複数の信号線の始点端子群と終点端子群との配置パターンとに基づいて、複数の信号線のグループ化の処理を切り替えて実施する実施ステップとを含む。
【発明の効果】
【0017】
配線すべき複数の信号線を、ユーザの指定する目的に従って適切にグループ化できるようになる。
【図面の簡単な説明】
【0018】
【図1】図1は、等長線長条件を説明するための模式図である。
【図2A】図2Aは、ビアを用いた配線の一例を示す平面図である。
【図2B】図2Bは、ビアを用いた配線の一例を示す断面図である。
【図2C】図2Cは、単層配線の一例を示す平面図である。
【図3A】図3Aは、配線前の信号端子の配置状態を示す図である。
【図3B】図3Bは、配線後の状態を示す図である。
【図4A】図4Aは、配線領域を小さくした場合の線長の分布を示す模式図である。
【図4B】図4Bは、等長線長条件を満たすようにした場合の配線領域の一例を示す模式図である。
【図5】図5は、実施の形態における配線支援装置の機能ブロック図である。
【図6】図6は、本実施の形態における最上位の処理フローを示す図である。
【図7】図7は、処理Bの処理フローを示す図である。
【図8A】図8Aは、分離の配置パターンの一例を示す図である。
【図8B】図8Bは、分離の配置パターンが成立していない場合の一例を示す図である。
【図8C】図8Cは、分離の配置パターンが成立しており且つ対向の配置パターンも成立している場合の一例を示す図である。
【図8D】図8Dは、分離の配置パターンが成立しており且つ非対向の配置パターンも成立している場合の一例を示す図である。
【図9】図9は、処理BAの処理フローを示す図である。
【図10】図10は、処理Aの処理フローを示す図である。
【図11】図11は、処理ABの処理フローを示す図である。
【図12】図12は、最小全域木均等分類処理の処理フローを示す図である。
【図13】図13は、信号端子群の一例を示す図である。
【図14】図14は、最小全域木の一例を示す図である。
【図15】図15は、分類結果の一例を示す図である。
【図16A】図16Aは、グループ1の端子群の一例を示す図である。
【図16B】図16Bは、グループ2の端子群の一例を示す図である。
【図16C】図16Cは、グループ3の端子群の一例を示す図である。
【図17】図17は、円探索均等分類処理の処理フローを示す図である。
【図18】図18は、集合Sと集合Tとの一例を示す図である。
【図19】図19は、円探索均等分類処理におけるグループ化を説明するための図である。
【図20】図20は、XY分類処理の処理フローを示す図である。
【図21】図21は、第1分類処理の処理フローを示す図である。
【図22】図22は、水平角度を算出する方法について説明する図である。
【図23】図23は、X方向範囲とY方向範囲を説明するための図である。
【図24】図24は、初期的なグループ化の結果の一例を示す図である。
【図25A】図25Aは、前提となる線分の分布を示す図である。
【図25B】図25Bは、X方向グループに属する線分の分布を示す図である。
【図25C】図25Cは、Y方向グループに属する線分の分布を示す図である。
【図26】図26は、第2分類処理の処理フローを示す図である。
【図27】図27は、交差する線分の数の一例を示す図である。
【図28】図28は、第2分類処理におけるデータの一例を示す図である。
【図29】図29は、第2分類処理におけるデータの一例を示す図である。
【図30】図30は、第2分類処理におけるデータの一例を示す図である。
【図31A】図31Aは、X方向グループに属する線分をさらに分類した結果における第1のグループの一例を示す図である。
【図31B】図31Bは、X方向グループに属する線分をさらに分類した結果における第2のグループの一例を示す図である。
【図32】図32は、第2分類処理の処理フローを示す図である。
【図33】図33は、第2分類処理の処理結果の一例を示す図である。
【図34】図34は、信号交換補正処理の処理フローを示す図である。
【図35A】図35Aは、端子群の第1のグループの一例を示す図である。
【図35B】図35Bは、端子群の第2のグループの一例を示す図である。
【図35C】図35Cは、端子群の第3のグループの一例を示す図である。
【図36A】図36Aは、端子群の第1のグループについて仮配線を実施した結果の一例を示す図である。
【図36B】図36Bは、端子群の第2のグループについて仮配線を実施した結果の一例を示す図である。
【図36C】図36Cは、端子群の第3のグループについて仮配線を実施した結果の一例を示す図である。
【図37】図37は、交換処理の処理フローを示す図である。
【図38】図38は、隣接数の計数方法の一例を示す図である。
【図39】図39は、隣接コストの計算方法の一例を示す図である。
【図40】図40は、隣接数及び隣接コストの計算の一例を説明するための図である。
【図41】図41は、隣接数及び隣接コストの計算の一例を説明するための図である。
【図42】図42は、線長ベース分類処理の処理フローを示す図である。
【図43A】図43Aは、マンハッタン長テーブルの一例を示す図である。
【図43B】図43Bは、所属ネットテーブルの一例を示す図である。
【図44】図44は、線長ベース分類処理の処理フローを示す図である。
【図45】図45は、マンハッタン長テーブルの一例を示す図である。
【図46】図46は、所属ネットテーブルの一例を示す図である。
【図47】図47は、マンハッタン長テーブルの一例を示す図である。
【図48】図48は、所属ネットテーブルの一例を示す図である。
【図49】図49は、マンハッタン長テーブルの一例を示す図である。
【図50】図50は、所属ネットテーブルの一例を示す図である。
【図51】図51は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【0019】
本技術の実施の形態に係る配線支援装置100の機能ブロック図を図5に示す。配線支援装置100は、処理部110と、処理すべき信号線などのデータを格納する第1データ格納部130と、処理部110の処理において途中で生成されるデータを格納する第2データ格納部140と、処理部110の処理結果を格納する第3データ格納部150と、ユーザからの指示を受け付ける入力部160とを有する。
【0020】
また、処理部110は、制御部111と、円探索均等分類処理を実施する第1分類処理部112と、最小全域木均等分類処理を実施する第2分類処理部と、XY分類処理を実施する第3分類処理部114と、信号交換補正処理部115と、線長ベース分類処理を実施する第4分類処理部116と、仮配線処理部117と、交差処理部118と、最小全域木処理部119と、マンハッタン長処理部120とを有する。
【0021】
第1データ格納部130は、配線すべき信号線(ネットとも呼ぶ)の識別子と、当該信号線の始点端子識別子と、当該信号線の終点端子識別子と、始点端子の座標値と、終点端子の座標値とが登録されるようになっている。配線すべき信号線については、例えばユーザにより入力部160によって指定された信号線であり、その信号線のデータについては、入力部160を介して入力するようにしてもよい。また、ネットワークを介して接続されている他のコンピュータなどから、配線すべき信号線のデータを読み出して、第1データ格納部130に格納するようにしてもよい。
【0022】
次に、図6乃至図50を用いて配線支援装置100の処理内容について説明する。
【0023】
まず、入力部160は、ユーザに対して、分割数(グループ数とも呼ぶ)n及びグループ化の目的種別の入力を促し、ユーザからこれらのデータを受け付け、第1データ格納部130に格納する(図6:ステップS1)。本実施の形態では、目的種別は、A:「線長調整容易性」、B:「結線容易性」、AB:「線長調整容易性及び結線容易性であって、それらのうち線長調整容易性を優先」、BA:「結線容易性及び線長調整容易性であって、それらのうち結線容易性を優先」のいずれかである。
【0024】
また、入力部160は、ユーザに対して、配線すべき信号線のデータの指定を促し、ユーザから入力データを受け付け、第1データ格納部130に格納する(ステップS3)。上でも述べたように、ファイルなどの形式で、他のコンピュータなど外部から読み込み、第1データ格納部130に格納するようにしてもよい。
【0025】
そして、処理部100の制御部111は、第1データ格納部130に格納されている、グループ化の目的種別を読み出して、当該目的種別がB:「結線容易性」であるか判断する(ステップS5)。目的として結線容易性が指定されている場合には、制御部111は、以下で述べる処理Bを、以下で述べる処理部に実施させる(ステップS7)。
【0026】
一方、目的種別が「結線容易性」ではない場合には、制御部111は、目的種別がA:「線長調整容易性」であるか判断する(ステップS9)。目的として線長調整容易性が指定されている場合には、制御部111は、以下で述べる処理Aを、以下で述べる処理部に実施させる(ステップS11)。
【0027】
さらに、目的種別が「線長調整容易性」ではない場合には、制御部111は、目的種別がBA:「結線容易性及び線長調整容易性であって、それらのうち結線容易性を優先」であるか判断する(ステップS13)。目的として「結線容易性及び線長調整容易性であって、それらのうち結線容易性を優先」である場合には、制御部111は、以下で述べる処理BAを、以下で述べる処理部に実施させる(ステップS17)。
【0028】
一方、目的種別がBA:「結線容易性及び線長調整容易性であって、それらのうち結線容易性を優先」でない場合には、AB:「結線容易性及び線長調整容易性であって、それらのうち線長調整容易性を優先」であるので、制御部111は、以下で述べる処理ABを、以下で述べる処理に実施させる(ステップS15)。
【0029】
その後、制御部111は、第2データ格納部140に格納されている分類結果を、第3データ格納部150に格納する(ステップS19)。そして処理を終了する。
【0030】
このように、第1に目的に応じて処理を切り替えるようになっている。
【0031】
次に、結線容易性の実現を目的とする場合の分類処理である処理Bについて、図7乃至図8Dを用いて説明する。
【0032】
制御部111は、第1データ格納部130に格納されている始点端子群の座標から当該始点端子群を包含する第1の矩形と、第1データ格納部130に格納されている終点端子群の座標から当該終点端子群を包含する第2の矩形とを算出し、矩形の頂点の座標データを例えば第2データ格納部140に格納する(図7:ステップS21)。そして、制御部111は、第1の矩形と第2の矩形とから、始点端子群及び終点端子群の配置パターンを特定する(ステップS23)。
【0033】
本実施の形態では、図8Aに示すように、白丸で示される始点端子群を包含する第1の矩形aと、黒丸で示される終点端子群を包含する第2の矩形bとのいずれの矩形内にも、他方の端子が存在しない「分離」という配置パターンが成立しているかを判断する(ステップS25)。図8Aの例では、黒丸で示される終点端子群のうち一部の終点端子が第1の矩形a内に含まれるが、白丸で示される始点端子群については1つも第2の矩形b内に含まれているないので、「分離」が成立している。一方、図8Bに示すように、黒丸で示される終点端子群のうち一部の終点端子が第1の矩形a内に含まれており、白丸で示される始点端子群についても第2の矩形b内に含まれているので、「分離」パターンが成立していない。
【0034】
「分離」パターンが成立している場合には、図8Cに示すように、第1の矩形aと第2の矩形bとが交差しない「対向」という配置パターンが成立しているか判断する。一方、図8Dに示すように、第1の矩形aと第2の矩形bとが交差している(図8Dの例では第2の矩形bが第1の矩形aに包含されている)場合には、「対向」していない「非対向」という配置パターンであると判断する。
【0035】
制御部111は、ステップS23で「分離」の配置パターンに該当しないと特定された場合には(ステップS25:Noルート)、第3分類処理部114にXY分類処理を実施させる(ステップS27)。そして呼び出し元の処理に戻る。XY分類処理については後に詳細に説明する。
【0036】
一方、ステップS23で「分離」の配置パターンに該当すると特定された場合には(ステップS25:Yesルート)、制御部111は、ステップS23で「対向」の配置パターンに該当すると特定されたか判断する(ステップS29)。ステップS23で「対向」パターンに該当すると判断された場合には、制御部111は、第2分類処理部113に最小全域木均等分類処理を実施させる(ステップS31)。そして呼び出し元の処理に戻る。最小全域木均等分類処理については後に詳細に説明する。
【0037】
一方、ステップS23で「対向」の配置パターンには該当しないと特定された場合には、制御部111は、第1分類処理部112に円探索均等分類処理を実施させる(ステップS33)。そして呼び出し元の処理に戻る。円探索均等分類処理については後に詳細に説明する。
【0038】
このような処理Bを実施することで、始点端子群及び終点端子群の配置パターンに応じて、結線しやすいように信号線群がグループ化されるようになる。
【0039】
次に、結線容易性及び線長調整容易性の実現を目的とするが結線容易性を優先する場合の分類処理である処理BAについて、図9を用いて説明する。
【0040】
制御部111は、第1データ格納部130に格納されている始点端子群の座標から当該始点端子群を包含する第1の矩形と、同じく第1データ格納部130に格納されている終点端子群の座標から当該終点端子群を包含する第2の矩形とを算出し、矩形の頂点の座標データを例えば第2データ格納部140に格納する(図9:ステップS41)。そして、制御部111は、第1の矩形と第2の矩形とから、始点端子群及び終点端子群の配置パターンを特定する(ステップS43)。この処理は、ステップS23と同じである。
【0041】
制御部111は、ステップS43で「分離」の配置パターンに該当しないと特定された場合には(ステップS45:Noルート)、第3分類処理部114にXY分類処理を実施させる(ステップS47)。XY分類処理については後に詳細に説明する。そして、ステップS55に移行する。
【0042】
一方、ステップS43で「分離」の配置パターンに該当すると特定された場合には(ステップS45:Yesルート)、制御部111は、ステップS43で「対向」の配置パターンに該当すると特定されたか判断する(ステップS49)。ステップS43で「対向」の配置パターンに該当すると判断された場合には、制御部111は、第2分類処理部113に最小全域木均等分類処理を実施させる(ステップS51)。そしてステップS55に移行する。最小全域木均等分類処理については後に詳細に説明する。
【0043】
一方、ステップS43で「対向」の配置パターンには該当しないと特定された場合には、制御部111は、第1分類処理部112に円探索均等分類処理を実施させる(ステップS53)。そしてステップS55に移行する。円探索均等分類処理については後に詳細に説明する。
【0044】
ここまでは処理Bと同様であるが、ステップS47、S51又はS53の後に、制御部111は、信号交換補正処理部115に、信号交換補正処理を実施させる(ステップS55)。そして呼び出し元の処理に戻る。信号交換補正処理については後に詳細に説明する。
【0045】
このような処理BAを実施することで、処理Bと同様に、始点端子群及び終点端子群の配置パターンに応じて、結線しやすいように信号線群がグループ化されるようになる。さらに、以下に詳細に述べる信号交換補正処理を実施するため、配線すべき信号線群における最大線長もある程度短くなるため、等長線長条件を遵守するための線長調整工程がある程度軽減される。
【0046】
次に、線長調整容易性の実現を目的とする場合の分類処理である処理Aについて、図10を用いて説明する。
【0047】
制御部111は、第4分類処理部116に対して、線長ベース分類処理を実施させる(ステップS57)。そして呼び出し元の処理に戻る。線長ベース分類処理については後に詳細に説明する。
【0048】
このような処理を実施することで、以下で述べるように、各グループにおいて、最大線長を短縮するように信号群がグループ化される。すなわち、等長線長条件を遵守するための線長調整工程の困難性が軽減される。
【0049】
次に、線長調整容易性及び結線容易性の実現を目的とするが線長調整容易性を優先する場合の分類処理である処理ABについて、図11を用いて説明する。
【0050】
制御部111は、第4分類処理部116に対して、線長ベース分類処理を実施させる(ステップS61)。線長ベース分類処理については後に詳細に説明する。その後、制御部111は、信号交換補正処理部115に、信号交換補正処理を実施させる(ステップS63)。そして呼び出し元の処理に戻る。信号交換補正処理については後に詳細に説明する。
【0051】
このような処理を実施することで、以下で述べるように、各グループにおいて、最大線長を短縮するように信号群がグループ化される。すなわち、等長線長条件を遵守するための線長調整工程の困難性が軽減される。さらに、以下に詳細に述べる信号交換補正処理を実施するため、配線スペースがある程度確保され、結線容易性もある程度確保される。
【0052】
以上のように、ユーザから指定された目的と、配線すべき信号線群の始点端子群及び終点端子群の配置パターンとに応じて、適切な分類処理が実施され、目的に応じた適切な信号線の分類がなされるようになる。
【0053】
次に、各グループについて端子が可能な限り均等に分布するようにグループ化する最小全域木均等分類処理について、図12乃至図16を用いて説明する。第2分類処理部113は、第2データ格納部140に格納されている、矩形のデータに基づき第1の矩形の面積と第2の矩形の面積とを比較して、面積が小さい方の信号端子の集合を集合Sとして特定する(図12:ステップS71)。具体的には、面積が小さい方の信号端子の座標データを第1データ格納部130から読み出す。
【0054】
そして、第2分類処理部113は、最小全域木処理部119に、集合Sについて最小全域木を生成させ、最小全域木のデータを第2データ格納部140に格納する(ステップS73)。例えば図13に黒丸で示されるような信号端子が集合Sとして特定されたとすると、図14に示すような最小全域木が生成される。なお、図14に示す番号は、ステップS73の段階では特定されていない。なお、最小全域木の生成アルゴリズムについてはよく知られているので、ここでは述べない。
【0055】
次に、第2分類処理部113(又は最小全域木処理部119)は、生成した最小全域木に対して深さ優先探索を実施することで、各信号端子に分割数nまでの番号を付与する(ステップS75)。深さ優先探索についてはよく知られているのでこれ以上述べない。深さ優先探索を実施すると、図14に示したように、各信号端子に対して1乃至分割数nの番号が付与される。この番号がグループの番号になる。
【0056】
そして、第2分類処理部113は、集合Sに含まれる端子の信号線識別子を第1データ格納部130から特定し、信号端子にステップS75で付与された番号とを、対応付けて第3データ格納部150に格納する(ステップS77)。例えば、図15に示すようなデータが格納される。図15の例では、信号線の識別子と、グループ番号とが対応付けて格納される。
【0057】
図14に示すように、深さ優先探索で番号を付与すると、比較的隣接する信号端子には異なる番号が付与されるようになるため、端子位置がほぼ均等に分散するようにグループ分けが行われるようになる。すなわち、結線容易性が担保されるようになる。図13の例では、図16Aは番号「1」のグループを表しており、図16Bは番号「2」のグループを表しており、図16Cは番号「3」のグループを表している。このように、端子位置がほぼ均等に分散するようになっていることが分かる。
【0058】
なお、深さ優先探索ではなく、幅優先選択や最下層幅優先探索などを採用する場合もある。
【0059】
次に、各グループについて端子が可能な限り均等に分布するようにグループ化する第2の手法である円探索均等分類処理について、図17乃至図19を用いて説明する。
【0060】
第1分類処理部112は、第2データ格納部140に格納されている矩形のデータに基づき、第1の矩形と第2の矩形のうち、一方が他方を包含している場合には他方の矩形の信号端子の集合を、交差している場合には面積が小さい方の矩形の信号端子の集合を集合Sに設定し、残余の信号端子の集合を集合Tに設定する(図17:ステップS81)。具体的には、集合Sの信号端子のデータを、第1データ格納部130から読み出し、集合Tの信号端子のデータを、第1データ格納部130から読み出す。
【0061】
図18に示すように、白丸の始点端子群の矩形が、黒丸の終点端子群の矩形に包含される場合には、始点端子群が集合Sに設定され、黒丸の終点端子群が集合Tに設定される。
【0062】
そして、第1分類処理部112は、集合Sの矩形の中心座標Cを算出し、第2データ格納部140に格納する(ステップS83)。図18の例では、矩形Sの中心座標を算出する。そして、第1分類処理部112は、中心座標Cから、集合Tの各信号端子との距離を算出し、距離が大きい順に分割数nまでの番号を順に付与する(ステップS85)。
【0063】
図18の例では、図19に示すように、矩形Sの中心(星印)からの距離が最も大きい信号端子t1、次に距離が大きい信号端子t2、さらに次に距離が大きい信号端子t3の順で、分割数1乃至nの番号が付与される。t1には「1」が付与され、t2には「2」が付与され、t3には「3」が付与される。
【0064】
その後、第1分類処理部112は、集合Tに含まれる端子の信号線識別子を第1データ格納部130から特定し、信号端子にステップS85で付与された番号とを、対応付けて第3データ格納部150に格納する(ステップS87)。例えば、図15に示すようなデータが格納される。
【0065】
このように、第1の矩形と第2の矩形とのうち面積の小さい矩形の中心からの距離が大きい順に、各グループに均等に分散するように信号端子をグループ化することで、信号線のグループ化を行っている。これによって、図8Dのような分離はしているが対向していない配置パターンにおいて、均等に分散するようにグループ化を行うことができるようになる。
【0066】
次に、同一グループにおける始点端子と終点端子とをつなぐ線分の交差を削減することで結線容易性を担保するための処理であるXY分類処理について図20乃至図33を用いて説明する。
【0067】
まず、第3分類処理部114は、第1分類処理を実施する(図20:ステップS91)。第1分類処理については、図21乃至図25Cを用いて説明する。
【0068】
第3分類処理部114は、第1データ格納部130に格納されているデータに含まれる信号線のうち、未処理の信号線を1つ特定する(図21:ステップS111)。そして、第3分類処理部114は、特定された信号線の始点と終点とを結ぶ線分の水平角度を算出し、例えば第2データ格納部140に格納する(ステップS113)。例えば図22に示したように、始点(白丸)から終点(黒丸)までの線分とX軸との角度θを算出する。
【0069】
そして、第3分類処理部114は、ステップS113で算出した水平角度がX方向の範囲内であるかを判断する(ステップS115)。本実施の形態では、図23に示すように、X軸に平行で原点を通過する直線を原点を中心に+45°回転させた直線と−45°回転させた直線とで囲まれる範囲(すなわちX軸を囲む範囲)をX方向の範囲とする。それ以外はY方向の範囲とする。
【0070】
水平角度がX方向の範囲内であれば、第3分類処理部114は、特定された信号線をX方向グループ(Dx)に登録する(ステップS119)。そして、ステップS121に移行する。一方、水平角度がY方向の範囲内であれば、第3分類処理部114は、特定された信号線をY方向グループ(Dy)に登録する(ステップS117)。そして、ステップS121に移行する。例えば、第2データ格納部140には、図24に示すようなリストが登録される。図24の例では、Dxの列には、X方向グループの信号線の識別子が列挙され、Dyの列には、Y方向グループの信号線の識別子が列挙される。
【0071】
その後、第3分類処理部114は、第1データ格納部130に格納されているデータに含まれる信号線のうち、未処理の信号線が存在しているか判断する(ステップS121)。未処理の信号線が存在する場合にはステップS111に戻る。一方、未処理の信号線が存在しない場合には、呼び出し元の処理に戻る。
【0072】
なお、図25Aに示すような、始点(白丸)から終点(黒丸)までの線分の分布がある場合、第1分類処理では、図25Bに示すようなX方向グループと、図25Cに示すようなY方向グループとに分けられる。
【0073】
図20の処理の説明に戻って、第3分類処理部114は、ユーザに指定された分割数nが2であるか判断する(ステップS93)。分割数nが2であれば、これ以上分類はしないので、ステップS105に移行する。一方、分割数nが3以上であれば、第3分類処理部114は、分割グループ数=2に設定し(ステップS95)、第2分類処理を実施する(ステップS97)。第2分類処理については図26乃至図33を用いて説明する。
【0074】
まず、第3分類処理部114は、現在のグループ毎に、交差する線分の数を、交差処理部118に算出させ、第2データ格納部140に格納させる(図26:ステップS131)。例えば図25B及び図25Cからすると、図27に示すように、X方向グループDxについては交差する線分の数6が得られ、Y方向グループDyについては交差する線分の数4が得られ、第2データ格納部140に格納される。
【0075】
そして、第3分類処理部114は、交差する線分の数が最大のグループを特定する(ステップS133)。その後、第3分類処理部114は、特定されたグループに属する線分について、分割予定グループを「未決定」に設定する(ステップS135)。例えば図28に示すようなデータを第2データ格納部140に用意する。
【0076】
そして、第3分類処理部114は、分割予定グループが「未決定」の全ての線分の各々について、分割予定グループが「未決定」又は「A」(繰り返しの中で「A」が設定されるので、最初は「A」は存在しない)に属する他の線分との交差数を交差処理部118に算出させ、交差数最大値Cmaxである線分を線分Lmaxとして特定する(ステップS137)。図25Bの例では、線分1651乃至1654が交差数「2」で特定され、Cmax=2となる。但し、図25Bの例では、線分1652乃至1654は互いに交差している。
【0077】
その後、第3分類処理部114は、Cmax=0であるか判断する(ステップS139)。交差がない場合には、これ以上処理ができないので、第3分類処理部114は、第2データ格納部140において分割予定グループが「未決定」の線分に対して、分割予定グループ「A」を設定する(ステップS141)。そして処理は端子Aを介して図32の処理に移行する。
【0078】
一方、Cmax=0ではなく1以上である場合には、第3分類処理部114は、線分Lmaxに分割予定グループ「Ab」を設定し、線分Lmaxと交差し且つ分割予定グループ「未決定」の線分に分割予定グループ「A」を設定する(ステップS143)。その後、端子Aを介して図32の処理に移行する。「A」と「Ab」は、グループ分けを識別するための便宜上の識別子であって、他の識別子を用いてもよい。
【0079】
例えば、図25Bの例で、線分1651をLmaxとすると、分割予定グループ「Ab」が設定され、線分1651に交差する線分1671及び1672には分割予定グループ「A」が設定される。また、線分1652をLmaxとすると、分割予定グループ「Ab」が設定される。線分1652に交差する線分1653及び1654は、交差数「2」でLmaxでもある。しかし、このように互いに交差している線分について同じ分割予定グループ「Ab」を設定すると、交差数を減らすことができないので、Lmaxについては1つずつ処理することで、線分1652に分割予定グループ「Ab」を設定し、これに交差する線分1653及び1654については分割予定グループ「A」を設定して、同一分割予定グループに分類されないようにする。すなわち、第2データ格納部140に格納されるデータは、図29の状態から、図30の状態に更新される。図25Bにおける線分の配置状態は、図31Aの分割予定グループ「A」の状態と、図31Bの分割予定グループ「Ab」の状態とに分けられる。これによって、分割予定グループ「A」では最大交差数Cmaxは「1」になり、分割予定グループ「Ab」では最大交差数Cmaxは「0」となる。
【0080】
図32の処理の説明に移行して、第3分類処理部114は、分割予定グループ「未決定」の線分が残っているのか判断する(ステップS145)。分割予定グループ「未決定」の線分が残っている場合には端子Bを介してステップS137に戻る。一方、分割予定グループ「未決定」の線分が残っていなければ、第3分類処理部114は、分割予定グループ「A」及び「Ab」についての分類結果を、次の第2分類処理のために第2データ格納部140に格納する(ステップS147)。そして呼び出し元の処理に戻る。
【0081】
上で述べた例では、Y方向グループと、分割予定グループ「A」及び「Ab」とが、次のステップS131での現在のグループとなるので、例えば図33に示すようなデータを生成して第2データ格納部140に格納する。図33の例では、分割予定グループ「A」に属する信号識別子のリストと、分割予定グループ「Ab」に属する信号識別子のリストと、Y方向グループDyに属する信号識別子のリストとが格納される。
【0082】
図20の処理の説明に戻って、第3分類処理部114は、第2分類処理においてグループ分割ができたか判断する(ステップS99)。はじめから交差がない、すなわちCmax=0であればグループ分割が行われない。従って、グループ分割が行われなかった場合にはステップS105に移行する。一方、グループ分割が行われた場合には、第3分類処理部114は、分割グループ数=分割グループ数+1を算出し(ステップS101)、分割グループ数=分割数nになったか判断する(ステップS103)。まだ、分割グループ数=分割数nになっていない場合にはステップS97に戻る。一方、分割グループ数=分割数nになった場合には、ステップS105に移行する。
【0083】
ステップS105では、第3分類処理部114は、分類処理に基づき、端子の信号識別子と、当該端子に対応するグループ識別子と対応付けて格納する(ステップS105)。グループ識別子については、番号に直して設定するようにしてもよい。
【0084】
このように交差を削減するようにグループ化することで、結線容易性を高めることができるようになる。
【0085】
次に、線長を短縮するための信号交換補正処理について図34乃至図41を用いて説明する。まず、信号交換補正処理部115は、マンハッタン長処理部120に対して、全ての信号線についてマンハッタン長を算出させ、そのうち最も長いマンハッタン長のk(例えば1.1)倍を、目標線長に設定する(図34:ステップS151)。マンハッタン長についての算出方法はよく知られているので、ここでは述べない。
【0086】
そして、信号交換補正処理部115は、仮配線処理部117に、現在の仮配線データ(初期的にはなし)をクリアさせる(ステップS153)。そして、信号交換補正処理部115は、仮配線処理部117に、グループ毎に、仮配線を実施させる(ステップS155)。仮配線のデータ(信号線の識別子、仮配線の図形データ、仮配線長など)については、第2データ格納部140に格納される。
【0087】
例えば、図35A乃至図35Cのような3つのグループ(但し、始点端子群のみを示す)に分けられているものとする。このような状態で、例えば仮配線を実施すると、図35Aのグループについては図36Aに示すような仮配線が実施され、図35Bのグループについては図36Bに示すような仮配線が実施され、図35Cのグループについては図36Cに示すような仮配線が実施される。
【0088】
信号交換補正処理部115は、第2データ格納部140に格納されている仮配線長のデータから、最も長い仮配線の信号識別子及び所属グループ、並びに仮配線長を特定し、最も長い仮配線長>目標線長が成立しているか判断する(ステップS157)。例えば図36Aにおいて丸で示す始点端子から伸びる仮配線1701が、最も長い仮配線長の信号線として特定されたものとする。
【0089】
最も長い仮配線長が目標線長以下である場合には、以下の処理を行わずとも配線長が短くなっていると判断できるので、呼び出し元の処理に戻る。
【0090】
一方、最も長い仮配線長>目的線長が成立している場合には、信号交換補正処理部115は、交換処理を実施する(ステップS159)。交換処理については、図37乃至図41を用いて説明する。
【0091】
まず、信号交換補正処理部115は、最も長い仮配線の信号線が属するグループとは異なるグループの未処理の信号線を1つ特定する(図37:ステップS171)。例えば図36Bにおいて、信号端子361から順番に、信号端子362、363、364、365、366といったように選択してゆく。そして、信号交換補正処理部115は、最も長い仮配線長の信号線と、特定された信号線とを交換する前と後の隣接数又は隣接コストを算出し、第2データ格納部140に格納する(ステップS173)。
【0092】
隣接数を算出する場合には、例えば図38に示すように、注目信号端子(二重丸)から所定の距離Dに含まれる信号端子(黒丸)を特定する。そして、単純に、特定された信号端子の数を計数するようにしてもよい。一方、図39に示すように、端子が整列配置されている場合には、注目信号端子(二重丸)の縦横隣接した信号端子(黒丸)の数を計数するようにしてもよい。但し、単純な信号端子数ではなく、縦横隣接の場合にはコスト1とし、斜め隣接の場合にはコスト0.5として加算するようにしてもよい。
【0093】
例えば、図40に示すように、注目信号端子1711の場合には、両横と下に隣接端子が存在しているので、隣接数は「3」で、隣接コストも「3」となる。一方、注目信号端子1712の場合には、上と斜め左下に隣接端子が存在しているので、隣接数は「1」であり、隣接コストは「1.5」となる。なお、斜め隣接のコストについては0.5ではなく他の値を採用するようにしてもよい。
【0094】
より具体的に、図41に示すように、グループG1の信号端子1721を、グループG2に移動させ、仮に信号端子1722の位置(すなわち異なる層の同一位置)に配置するものとする。代わりに、グループG2の信号端子1731を、グループG1に移動させ、仮に信号端子1732の位置(すなわち異なる層の同一位置)に配置するものとする。そうすると、丸で囲まれた交換前では、信号端子1721についての隣接数は「0」、隣接コストは「0.5」と算出され、矢印の先の交換後では、信号端子1722についての隣接数は「0」、隣接コストは「0.5」と算出される。すなわち、交換前後で変化なしということになる。一方、丸で囲まれた交換前では、信号端子1731についての隣接数は「0」、隣接コストは「0」と算出され、矢印の先の交換後では、信号端子1732についての隣接数は「0」、隣接コスト「1.0」と算出される。すなわち、交換前後で、隣接数は変化していないが、隣接コストは「+1.0」となっている。なお、単層配線を行うので、始点端子又は終点端子のみではなく、両方の端子について隣接数又は隣接コストを算出する。
【0095】
そして、信号交換補正処理部115は、ステップS173で算出された隣接数又は隣接コストが条件を満たしているか判断する(ステップS175)。例えば、交換前後で隣接数が増加していないという条件、交換前後で隣接コストが増加していないという条件を満たしているか判断する。なお両方を満たすような条件設定がなされる場合もある。
【0096】
ステップS173で算出された隣接数又は隣接コストが条件を満たしていない場合にはステップS183に移行する。一方、ステップS173で算出された隣接数又は隣接コストが条件を満たしている場合には、信号交換補正処理部115は、最も長い仮配線長の信号線が属するグループと、ステップS171で特定された信号線のグループとで、交換を実施した後の状態について、仮配線処理部117に対して仮配線を実施させ、仮配線のデータ(信号線の識別子、仮配線の図形データ、仮配線長など)を第2データ格納部140に格納させる(ステップS177)。
【0097】
そして、信号交換補正処理部115は、最も長い仮配線長の信号線が属するグループ及びステップS171で特定された信号線のグループの各グループについて、最も長い仮配線長が増加したか判断する(ステップS179)。各グループについて、最も長い仮配線長が増加していない場合には、交換可能であると判断して、信号交換補正処理部115は、所属グループの交換を第2データ格納部140に登録する(ステップS181)。具体的には、ステップS155で特定された最も長い仮配線長の信号線の所属グループを、ステップS171で特定された信号線のグループに変更し、ステップS171で特定された信号線のグループを、ステップS155で特定された最も長い仮配線長の信号線の所属グループに変更する。そして呼び出し元の処理に戻る。
【0098】
一方、最も長い仮配線長が増加している場合には、交換不可能であると判断して、信号交換補正処理部115は、未処理の信号線が存在しているか判断する(ステップS183)。未処理の信号線が存在している場合にはステップS171に戻る。一方、未処理の信号線が存在しない場合には、呼び出し元の処理に戻る。
【0099】
このようにすれば、最も長い仮配線長が短くなるように所属グループを変更することができるようになる。最も長い仮配線長が短くなるというのは、線長調整容易性及び結線容易性のいずれにも効果的である。
【0100】
図34の処理の説明に戻って、信号交換補正処理部115は、信号線の交換が行われたか判断する(ステップS161)。信号線の交換が行われた場合にはステップS153に戻る。すなわち、交換後の状態で、最も長い仮配線長が目標線長以下になっているかを確認する。なお、影響のあるグループについてはステップS159で仮配線を再度実施しているのでステップS157に戻るようにしてもよい。一方、信号線の交換が行われていない場合には、これ以上の調整は不可能なので処理を終了し、呼び出し元の処理に戻る。
【0101】
以上のような処理を実施することで、最も長い仮配線長を短縮するような分類の補正を行うことができ、線長調整容易性及び結線容易性の向上が行われる。
【0102】
次に、複数のグループ間で線長の分布の偏りを抑えつつ最長線長が短縮されるようにグループ化を行うための線長ベース分類処理について、図42乃至図50を用いて説明する。
【0103】
第4分類処理部116は、マンハッタン長処理部120に、各信号線について、マンハッタン長及び目標線長(例えばマンハッタン長×k(=1.1))を算出させ、長い順にソートした後、第2データ格納部140におけるマンハッタン長テーブルに登録する(図42:ステップS201)。例えば、図43Aに示すようなマンハッタン長テーブルが生成されたものとする。図43Aの例では、信号線識別子と、マンハッタン長と、目標線長と、仮配線長と、分割予定グループとが登録されるようになっている。仮配線長と分割予定グループとについては、現段階では登録されない。また、マンハッタン長が長い順に信号線はソートされている。
【0104】
次に、第4分類処理部116は、分割数n個のグループの各々について信号線数を登録するための所属ネットテーブルを生成し、第2データ格納部140に格納する(ステップS203)。図43Bのような所属ネットテーブルが生成される。図43Bの例では、グループA、グループB及ぶグループCについて、割当予定信号線数を登録するようになっている。
【0105】
そして、第4分類処理部116は、所属ネットテーブルのレコードを割当予定信号線数の少ない順にソートする(ステップS205)。最初は全てのグループについて割当予定信号線数は0であるので、図43Bの状態から変化しない。このようにすれば、できるだけ各グループに均等に信号線を割り当てることができるようになる。
【0106】
その後、第4分類処理部116は、分割予定グループが未決定で且つ最上位である信号線Xを、マンハッタン長テーブルから特定する(ステップS207)。図43Aの例では、最初に、先頭のレコードに含まれる信号線「1」が特定される。
【0107】
そして、第4分類処理部116は、カウンタiを1に初期化して(ステップS209)、ソート後の所属ネットテーブルにおけるi番目のグループGを特定する(ステップS211)。図43Bの例では、i=1であればグループ「A」が特定される。
【0108】
その後、第4分類処理部116は、仮配線処理部117に、グループGの層において信号線Xを含む仮配線を実施させ、信号線Xの仮配線長VLを算出させ、第2データ格納部140におけるマンハッタン長テーブルに登録させる(ステップS213)。最初は、まだグループGに所属するとされる信号線はないので、信号線Xのみについて仮配線が実施される。次回以降は、グループGに所属するとされる他の信号線とともに仮配線が行われる。このように、マンハッタン長が長い信号線から順番に仮配線を行えば、仮配線を阻害する他の信号線が少ないため、仮配線長が短くなるということが期待される。すなわち、仮配線長の最大値を小さくすることができるようになる。処理は端子Cを介して図44の処理に移行する。
【0109】
そして、第4分類処理部116は、ステップS213で算出された仮配線長VL>信号線Xの目標線長TLという条件が成立しているか判断する(ステップS215)。仮配線長VL>目標線長TLという条件が成立している場合には、グループGに信号線Xを割り当てても仮配線長VLが目標線長TLよりも長くなってしまうので、他のグループに割り当てることを試みる。すなわち、第4分類処理部116は、カウンタiを1インクリメントして(ステップS217)、カウンタiの値が分割数nを超えたか判断する(ステップS219)。なお、この際にはステップS213で生成された仮配線のデータをもクリアする。カウンタiの値が分割数n以下であれば、端子Dを介してステップS211に戻る。
【0110】
一方、カウンタiの値が分割数nを超えていれば、第4分類処理部116は、マンハッタン長から目標線長TLを算出する際に用いる係数kの値を増加させる(ステップS221)。例えば、k=k+0.1を算出する。これは、現在の前提ではグループ分けができないということであるため、目標線長TLを変更するためである。そして、処理は端子Eを介して図42のステップS201に戻る。再度処理をやり直すためである。
【0111】
一方、ステップS215で、仮配線長VLが信号線Xの目標線長TL以下であれば、第4分類処理部116は、信号線Xについてマンハッタン長テーブルにおいて割当予定グループとしてグループGを設定し、所属ネットテーブルにおいてグループGの割当予定信号数を1インクリメントする(ステップS225)。
【0112】
例えば、信号線識別子「1」の信号線Xについて、仮配線長VL=80.060mmで、目標線長TL=83.600mmであれば、仮配線長VLが目標線長TL以下であるので、図45に示すように、分割予定グループとして「A」が登録される。さらに、図46に示すように、所属ネットテーブルにおいてグループAの割当予定信号数も「1」に更新される。
【0113】
その後、第4分類処理部116は、マンハッタン長テーブルにおいて全ての信号線について分割予定グループが設定されたか判断する(ステップS227)。分割予定グループが未設定の信号線が存在している場合には、端子Fを介して図42のステップS205に戻る。
【0114】
上で述べた例では、図47に示すように、マンハッタン長テーブルにおいて2番目のレコードの信号線「4」が信号線Xに設定される。また、所属ネットテーブルのレコードをソートして、図48に示すようにグループBが先頭になる。すなわち、グループB、グループC、グループAの順番で信号線「4」の割り当てを試みることになる。
【0115】
一方、ステップS227で、全ての信号線について分割予定グループが設定された場合には、第4分類処理部116は、マンハッタン長テーブルに従って、信号線識別子とグループの識別子との対応付けを第2データ格納部140に格納する(ステップS229)。例えばグループ毎に、所属信号線のリストを生成して格納する。
【0116】
その後上で述べた処理を繰り返せば、最終的にマンハッタン長テーブルは、図49に示すような状態になる。また、所属ネットテーブルは、図50に示すような状態になる。上でも述べたように、マンハッタン長が長い順に、割当予定信号数が少ないグループに信号線を割り当てることになっている。すなわち、複数のグループ間で線長の分布及び信号線の数の偏りを抑えつつ最長線長が短縮されるようにグループ化がなされるようになる。
【0117】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図5に示した配線支援装置100の機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成とは一致しない場合もある。また、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、並列に実行するようにしてもよい。データの保持方法についても、上で述べた方法は一例であって、他の方法を用いるようにしてもよい。
【0118】
上では1台のコンピュータ配線支援装置100を構成する例を示したが、複数のコンピュータで構成するようにしてもよい。さらに、スタンドアロン型システムであってもよいし、クライアント−サーバ型システムを構築するようにしてもよい。すなわち、クライアント端末からの要求に応じてサーバが上で述べたような処理を実施する。
【0119】
なお、上で述べた配線支援装置100は、コンピュータ装置であって、図51に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0120】
以上述べた本実施の形態をまとめると、以下のようになる。
【0121】
本実施の形態にかかる、配線すべき複数の信号線を複数のグループに分けるための配線支援方法は、(A)複数の信号線の線長調整容易性と結線容易性とのうちいずれか又は線長調整容易性及び結線容易性を含み且ついずれを優先させるかの指定を、ユーザから複数の信号線のグループ化の条件として受け付けるステップと、(B)指定されたグループ化の条件と、データ格納部に格納されている複数の信号線の始点端子群と終点端子群との配置パターンとに基づいて、複数の信号線のグループ化の処理を切り替えて実施する実施ステップとを含む。
【0122】
これによってユーザが指定した配線の目的に応じて信号線を適切にグループ化することができる。具体的には、単層配線を複数の層で実施する際に、線長調整容易性を求めるケース、結線容易性を求めるケース、両方を求めるが線長調整容易性を優先して求めるケース、両方を求めるが結線容易性を優先して求めるケースのいずれかと、配線すべき信号線の始点端子群と終点端子群との配置パターンとに応じて、グループ化アルゴリズムを切り替えるため、適切にグループ化を行うことができるようになる。
【0123】
また、上で述べた実施ステップが、(B1)グループ化の条件が結線容易性の指定と結線容易性を優先させる指定とのいずれかである場合には、複数の信号線の始点端子群と終点端子群との配置パターンに基づき、結線容易性を担保するためのグループ化処理を切り替えて実施する第1処理ステップと、(B2)グループ化の条件が線長調整容易性の指定と線長調整容易性を優先させる指定とのいずれかである場合には、複数のグループ間で線長の分布の偏りを抑えつつ最長線長が短縮されるようにグループ化処理を実施する第2処理ステップとを含むようにしてもよい。線長調整容易性の指定又は線長調整容易性を優先させる指定の場合には、配線すべき信号線の始点端子群と終点端子群との配置パターンに拘わらず、上で述べたようなグループ化処理を実施することで、線長調整容易性を担保して、信号線を適切にグループ化することができる。
【0124】
なお、上で述べた配置パターンが、(P1)始点端子群を包含する第1の矩形と終点端子群を包含する第2の矩形とのいずれかに他方の矩形に包含される端子が存在するという第1のパターンと、(P2)第1の矩形と第2の矩形とのいずれかに他方の矩形に包含される端子が存在せず且つ第1の矩形と前記第2の矩形とが交差する第2のパターンと、(P3)第1の矩形と第2の矩形とのいずれかに他方の矩形に包含される端子が存在せず且つ第1の矩形と第2の矩形とが交差しない第3のパターンとを含むようにしてもよい。その場合、上で述べた第1処理ステップが、(B11)第3のパターンの場合には、第1の矩形と第2の矩形とのうち面積が小さい方の矩形に含まれる端子の位置が、複数のグループの各々に均等に分散するように、複数の信号線を分類するための処理を実施するステップと、(B12)第2のパターンの場合には、第1の矩形と第2の矩形とのうち面積が小さいの方の矩形の中心から他方の矩形に含まれる端子までの距離が長い順に複数のグループの各々に均等に分散するように、複数の信号線を分類するための処理を実施するステップと、(B13)第1のパターンの場合には、始点端子群と終点端子群とを結ぶ線分の方向及び当該線分の交差状態に基づき、複数の信号線を分類するための処理を実施するステップとを含むようにしてもよい。配置パターンによって実際に行われる配線の状態が異なるため、このような場合分けがなされる。
【0125】
また、上で述べた配線支援方法は、(C)指定されたグループ化の条件が線長調整容易性及び結線容易性のうちいずれを優先させるかの指定を含む場合には、仮配線を実施して最長の仮配線長となった信号線を、当該信号線の所属グループ及び交換対象のグループにおける仮配線長及び端子の隣接関係が所定の条件(例えば信号線の交換が悪影響を与えないという条件)を満たす、交換対象のグループの信号線と交換する処理を実施するステップをさらに含むようにしてもよい。このような処理によれば、仮配線長が短くなり、配線領域を削減するように信号線の交換が行われるので、線長調整容易性を優先する場合には結線容易性を向上させ、結線容易性を優先させる場合には線長調整容易性を向上させることができる。
【0126】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
【0127】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0128】
(付記1)
配線すべき複数の信号線を複数のグループに分けるためのプログラムであって、
コンピュータに、
ユーザから、前記複数の信号線のグループ化の条件の指定を受け付けるステップと、
指定された前記グループ化の条件と、データ格納部に格納されている前記複数の信号線の始点端子群と終点端子群との配置パターンとに基づいて、前記複数の信号線のグループ化の処理を切り替えて実施する実施ステップと、
を実行させるためのプログラム。
【0129】
(付記2)
前記グループ化の条件が、第1の要件と第2の要件とのうちいずれか、又は第1の要件及び第2の要件を含み且ついずれかを優先させるかを含み、
前記実施ステップが、
前記グループ化の条件が前記第1の要件の指定と前記第1の要件を優先させる指定とのいずれかである場合には、前記複数の信号線の始点端子群と終点端子群との配置パターンに基づき、前記第1の要件を担保するためのグループ化処理を切り替えて実施する第1処理ステップと、
前記グループ化の条件が前記第2の要件の指定と前記第2の要件を優先させる指定とのいずれかである場合には、前記複数のグループ間で線長の分布の偏りを抑えつつ最長線長が短縮されるようにグループ化処理を実施する第2処理ステップと、
を含む付記1記載のプログラム。
【0130】
(付記3)
前記配置パターンが、
前記始点端子群を包含する第1の矩形と前記終点端子群を包含する第2の矩形とのいずれかに他方の矩形に包含される端子が存在するという第1のパターンと、
前記第1の矩形と前記第2の矩形とのいずれかに他方の矩形に包含される端子が存在せず且つ前記第1の矩形と前記第2の矩形とが交差する第2のパターンと、
前記第1の矩形と前記第2の矩形とのいずれかに他方の矩形に包含される端子が存在せず且つ前記第1の矩形と前記第2の矩形とが交差しない第3のパターンと、
を含み、
前記第1処理ステップが、
前記第1のパターンの場合には、前記始点端子群と前記終点端子群とを結ぶ線分の方向及び当該線分の交差状態に基づき、前記複数の信号線を分類するための処理を実施するステップと、
前記第2のパターンの場合には、前記第1の矩形と前記第2の矩形とのうち面積が小さいの方の矩形の中心から他方の矩形に含まれる端子までの距離が長い順に前記複数のグループの各々に均等に分散するように、前記複数の信号線を分類するための処理を実施するステップと、
前記第3のパターンの場合には、前記第1の矩形と前記第2の矩形とのうち面積が小さい方の矩形に含まれる端子の位置が、前記複数のグループの各々に均等に分散するように、前記複数の信号線を分類するための処理を実施するステップと、
を含む付記2記載のプログラム。
【0131】
(付記4)
指定された前記グループ化の条件が前記第2の要件及び前記第1の要件のうちいずれを優先させるかの指定を含む場合には、仮配線を実施して最長の仮配線長となった信号線を、当該信号線の所属グループ及び交換対象のグループにおける仮配線長及び端子の隣接関係が所定の条件を満たす、前記交換対象のグループの信号線と交換する処理を実施するステップ
を、さらに前記コンピュータに実行させるための付記2記載のプログラム。
【0132】
(付記5)
配線すべき複数の信号線を複数のグループに分けるための方法であって、
ユーザから、前記複数の信号線のグループ化の条件の指定を受け付けるステップと、
指定された前記グループ化の条件と、データ格納部に格納されている前記複数の信号線の始点端子群と終点端子群との配置パターンとに基づいて、前記複数の信号線のグループ化の処理を切り替えて実施するステップと、
を含み、コンピュータにより実行される方法。
【0133】
(付記6)
配線すべき複数の信号線の始点端子群と終点端子群とのデータを格納するデータ格納部と、
ユーザから、前記複数の信号線のグループ化の条件の指定を受け付ける入力部と、
指定された前記グループ化の条件と、データ格納部に格納されている前記複数の信号線の始点端子群と終点端子群との配置パターンとに基づいて、前記複数の信号線のグループ化の処理を切り替えて実施する処理部と、
を有する信号線グループ化支援装置。
【符号の説明】
【0134】
100 配線支援装置
110 処理部
111 制御部
112 第1分類処理部
113 第2分類処理部
114 第3分類処理部
115 信号交換補正処理部
116 第4分類処理部
117 仮配線処理部
118 交差処理部
119 最小全域木処理部
120 マンハッタン長処理部
130 第1データ格納部
140 第2データ格納部
150 第3データ格納部
160 入力部

【特許請求の範囲】
【請求項1】
配線すべき複数の信号線を複数のグループに分けるためのプログラムであって、
コンピュータに、
ユーザから、前記複数の信号線のグループ化の条件の指定を受け付けるステップと、
指定された前記グループ化の条件と、データ格納部に格納されている前記複数の信号線の始点端子群と終点端子群との配置パターンとに基づいて、前記複数の信号線のグループ化の処理を切り替えて実施する実施ステップと、
を実行させるためのプログラム。
【請求項2】
前記グループ化の条件が、第1の要件と第2の要件とのうちいずれか、又は第1の要件及び第2の要件を含み且ついずれかを優先させるかを含み、
前記実施ステップが、
前記グループ化の条件が前記第1の要件の指定と前記第1の要件を優先させる指定とのいずれかである場合には、前記複数の信号線の始点端子群と終点端子群との配置パターンに基づき、前記第1の要件を担保するためのグループ化処理を切り替えて実施する第1処理ステップと、
前記グループ化の条件が前記第2の要件の指定と前記第2の要件を優先させる指定とのいずれかである場合には、前記複数のグループ間で線長の分布の偏りを抑えつつ最長線長が短縮されるようにグループ化処理を実施する第2処理ステップと、
を含む請求項1記載のプログラム。
【請求項3】
前記配置パターンが、
前記始点端子群を包含する第1の矩形と前記終点端子群を包含する第2の矩形とのいずれかに他方の矩形に包含される端子が存在するという第1のパターンと、
前記第1の矩形と前記第2の矩形とのいずれかに他方の矩形に包含される端子が存在せず且つ前記第1の矩形と前記第2の矩形とが交差する第2のパターンと、
前記第1の矩形と前記第2の矩形とのいずれかに他方の矩形に包含される端子が存在せず且つ前記第1の矩形と前記第2の矩形とが交差しない第3のパターンと、
を含み、
前記第1処理ステップが、
前記第1のパターンの場合には、前記始点端子群と前記終点端子群とを結ぶ線分の方向及び当該線分の交差状態に基づき、前記複数の信号線を分類するための処理を実施するステップと、
前記第2のパターンの場合には、前記第1の矩形と前記第2の矩形とのうち面積が小さいの方の矩形の中心から他方の矩形に含まれる端子までの距離が長い順に前記複数のグループの各々に均等に分散するように、前記複数の信号線を分類するための処理を実施するステップと、
前記第3のパターンの場合には、前記第1の矩形と前記第2の矩形とのうち面積が小さい方の矩形に含まれる端子の位置が、前記複数のグループの各々に均等に分散するように、前記複数の信号線を分類するための処理を実施するステップと、
を含む請求項2記載のプログラム。
【請求項4】
指定された前記グループ化の条件が前記第2の要件及び前記第1の要件のうちいずれを優先させるかの指定を含む場合には、仮配線を実施して最長の仮配線長となった信号線を、当該信号線の所属グループ及び交換対象のグループにおける仮配線長及び端子の隣接関係が所定の条件を満たす、前記交換対象のグループの信号線と交換する処理を実施するステップ
を、さらに前記コンピュータに実行させるための請求項2記載のプログラム。
【請求項5】
配線すべき複数の信号線を複数のグループに分けるための方法であって、
ユーザから、前記複数の信号線のグループ化の条件の指定を受け付けるステップと、
指定された前記グループ化の条件と、データ格納部に格納されている前記複数の信号線の始点端子群と終点端子群との配置パターンとに基づいて、前記複数の信号線のグループ化の処理を切り替えて実施するステップと、
を含み、コンピュータにより実行される方法。
【請求項6】
配線すべき複数の信号線の始点端子群と終点端子群とのデータを格納するデータ格納部と、
ユーザから、前記複数の信号線のグループ化の条件の指定を受け付ける入力部と、
指定された前記グループ化の条件と、データ格納部に格納されている前記複数の信号線の始点端子群と終点端子群との配置パターンとに基づいて、前記複数の信号線のグループ化の処理を切り替えて実施する処理部と、
を有する信号線グループ化支援装置。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図2C】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図8C】
image rotate

【図8D】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16A】
image rotate

【図16B】
image rotate

【図16C】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25A】
image rotate

【図25B】
image rotate

【図25C】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31A】
image rotate

【図31B】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35A】
image rotate

【図35B】
image rotate

【図35C】
image rotate

【図36A】
image rotate

【図36B】
image rotate

【図36C】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43A】
image rotate

【図43B】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate

【図49】
image rotate

【図50】
image rotate

【図51】
image rotate


【公開番号】特開2013−73585(P2013−73585A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−214465(P2011−214465)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】