以下に添付図面を参照して、本発明にかかる設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。本実施の形態では、設計データにおいて、線長制約条件に違反する配線パスを自動的に検出し、線長の違反線長を、その配線パスの配線パターンに重ねて表示させる。これにより、違反する配線パスの有無および違反線長の長さを設計者に対して一つにまとめて示すことができ、設計者が制約条件に合うように配線パターンを編集する編集作業の効率化を図ることができる。
なお、本明細書において、「配線パス」とは、部品ピンや配線の中継点を指示するためのビアなどを用いて配線対象の接続関係を示す情報である。また、「配線パターン」とは、配線パスにしたがって部品を電気的に接続するための導体(ライン)を示すレイアウトデータである。制約条件での線長は、物理的に接続している配線パターンを配線パスの接続関係と照らし合わせながら抽出し、抽出されたすべての配線パターンを線長制約条件で指定されている換算方法にしたがって配線パスの線長へと換算することで得られる。「違反線長」とは、線長制約条件の基準値の範囲より短い場合は不足している線長を、長い場合は超過している線長をいう。また、部品間を流れる信号のタイミングを調整するために、信号のディレイを線長に数値換算し、線長に関する制約として制約条件に定義し、線長を合わせることによってディレイを合わせることを行っているが、線長に換算せずにディレイに関する制約として制約条件に定義していたとしても、内部で計算する値の単位が異なるだけであるため、ディレイを直接扱うことも可能である。
また、本実施の形態では、13種の表示例により違反する配線パスの有無および違反線長の長さを設計者に対して一つにまとめて示す。以下、本実施の形態における表示例1〜13について順次説明する。
<表示例1>
図1は、表示例1を示す説明図である。表示例1は、配線パスの違反線長の長さだけ配線パターンの描画色を変更する表示例である。表示例1では、まず、(A)ドライバ101−レシーバ102間のバス103で構成されたトポロジ100を線長制約条件に従って結線する。
線長制約条件では、条件名、パス名、線長、基準値、および違反値が規定されている。条件名とは、線長制約条件の条件名である。ここでは、BUS01が条件名である。なお、BUS01の線長条件として“±0.5mm”が規定されており、『各配線パスの線長は基準値(平均線長)から±0.5mm以内の等長配線』であることを意味している。なお、「等長」とは、線長条件を遵守する範囲の線長は線長制約条件を満たすことを意味している。
また、線長制約条件において、パス名は、線長制約条件で規定された配線パスの名称である。ここでは、バス103を構成する7本の配線パスの名称(path1〜path7)となる。
基準値とは、線長制約条件に規定されている配線パス(ここでは、path1〜path7)の基準となる情報である。基準値には、たとえば、線長制約条件に規定されている配線パスから選ばれた特定の配線パスの線長や線長制約条件に規定されている配線パスの平均線長が用いられる。ここでは、平均線長を基準値としている。
違反値とは、線長制約条件の基準値の範囲より短い場合は不足している線長を、長い場合は超過している線長をいう。具体的には、任意の配線パスについて、線長が基準値よりも大きい場合は、配線パスの線長から等長となる上限線長を引いた正の値が違反線長となる。一方、線長が基準値より小さい場合は、配線パスの線長から等長となる下限線長を引いた負の値が違反線長となる。なお、配線パスの線長が等長(上限線長と下限線長との間の長さ)である場合は、線長制約条件を遵守していることとなる。
たとえば、path1の線長は、130.000[mm]、基準値は121.714[mm]である。したがって、path1の線長130.000[mm]から、上限線長である122.214[mm](=121.714[mm]+0.5[mm])を減算すると、+8.786[mm](>0)となる。したがって、path1の線長は、8.786[mm]の長さ分超過していることとなる。
また、path4の線長は、120.000[mm]、基準値は121.714[mm]である。したがって、path4の線長120.000[mm]から、下限線長である121.214[mm](=121.714[mm]−0.5[mm])を減算すると、−1.214[mm](<0)となる。したがって、path4の線長は、1.214[mm]の長さ分不足していることとなる。
(B)の状態から、配線パスの配線パターンごとに、違反値の線長(以下、「違反線長」)分配線パターンに描画色を施してエラー表示とすることで、(C)の状態となる。描画する場合、違反値の正負によって描画色を異ならせる。なお、エラー表示がない配線パターンは、線長制約条件を遵守している配線パスである。
このように、表示例1では、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く/長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
<表示例2>
図2は、表示例2を示す説明図である。表示例1は違反値の正負により描画色を異ならせた表示例であるが、表示例2は、図1の(B)の状態から、配線パスの配線パターンごとに、違反線長分配線パターンの線幅を異ならせる表示例である。
図2では、一例として違反値が正(超過)の場合は違反線長分配線パターンの線幅を細くし、違反値が負(不足)の場合は違反線長分配線パターンの線幅を太くする。なお、図示はされていないが、配線パターンの線幅がすべて一定の配線パターンは、線長制約条件を遵守している配線パスである。
このように、表示例2では、表示例1と同様、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く/長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
<表示例3>
図3は、表示例3を示す説明図である。表示例1は違反値の正負により描画色を異ならせた表示例であるが、表示例3は、図1の(B)の状態から、配線パスの配線パターンごとに、違反線長分配線パターンの線種を異ならせる表示例である。
図3では、一例として違反値が正(超過)の場合は違反線長分配線パターンの線種を点線とし、違反値が負(不足)の場合は違反線長分配線パターンの線種を斜線を施した線とする。なお、図示はされていないが、配線パターンの線幅がすべて一定の配線パターンは、線長制約条件を遵守している配線パスである。
このように、表示例3では、表示例1と同様、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く/長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
<表示例4>
図4は、表示例4を示す説明図である。表示例1は違反値の正負により描画色を異ならせた表示例であるが、表示例4は、図1の(B)の状態から、配線パスの配線パターンごとに、違反線長分配線パターンの図形を異ならせる表示例である。
図4では、一例として違反値が正(超過)の場合は違反線長分配線パターンの図形をハッチングを施した細長丸図形とし、違反値が負(不足)の場合は違反線長分配線パターンの図形を太長丸図形とする。なお、図示はされていないが、配線パターンの線幅がすべて一定の配線パターンは、線長制約条件を遵守している配線パスである。
このように、表示例4では、表示例1と同様、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く/長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
<表示例5>
図5は、表示例5を示す説明図である。表示例1は違反値の正負により描画色を異ならせた表示例であるが、表示例5は、図1の(B)の状態から、配線パスの配線パターンごとに、配線パターンの違反線長に応じた色に描画する表示例である。
図5では、一例として、違反線長LがL>2.0[mm]、1.0[mm]<L≦2.0[mm]、0.0[mm]<L≦1.0[mm]、許容範囲(違反無し)、−1.0[mm]≦L<0.0[mm]、−2.0[mm]≦L<−1.0[mm]、L<−2.0[mm]ごとに色が異なるように描画する。許容範囲に応じた描画色は、線長制約条件を遵守している配線パスである。
このように、表示例5では、表示例1と同様、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く/長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
<表示例6>
図6は、表示例6を示す説明図である。表示例1において、線長制約条件において特定の配線パスが基準パスとなっている場合、基準パスの配線パターンを他の違反パスの配線パターンとは異なる色で描画する。図6では、path1の配線パターンが基準パスの配線パターンとなる。
このように、表示例6では、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、基準パスまたは違反パスをあとどれだけ短く/長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
<表示例7>
図7は、表示例7を示す説明図である。表示例1は、トポロジ100のドライバ101−レシーバ102間にダンピング抵抗が挿入されていない例であるが、表示例7は、トポロジ700のドライバ101−レシーバ102間の経路103にダンピング抵抗701が挿入された例である。すなわち、ダンピング抵抗701は、ドライバ101の近くに実装される。したがって、線長調整(長くする)する場合、ドライバ101とダンピング抵抗701の間の経路702ではなく、ダンピング抵抗701とレシーバ102との間の経路703で調整することとなる。
したがって、表示例7では、ダンピング抵抗701が挿入されている場合にトポロジ700から線長調整すべき経路703を抽出し、抽出経路703に相当する配線パターンに対し、表示例1に示したように違反線長の描画を施すことになる。
このように、表示例7では、表示例1と同様、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く/長くすれば等長にできそうかということを直感的に把握することができる。また、線長調整すべき経路に違反線長を描画することで、設計者は、どこで線長調整すべきかを考える必要がなく、線長調整のパターン編集に専念することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
<表示例8>
図8は、表示例8を示す説明図である。表示例8は画面の拡大/縮小に応じて違反線長を表示する例である。たとえば、図8に示したレイアウトのうち、矩形で示した対象領域800に拡大して違反線長を表示する。すなわち、表示例8では、画面のサイズにかかわらず、各配線パターンの違反線長を把握することができるため、画面がどのようなサイズであっても、画面内において、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く/長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
<表示例9>
図9は、表示例9を示す説明図である。表示例1や表示例7は、違反線長を線長調整すべき経路に表示させた例であるが、表示例9は、ユーザ操作の選択範囲900内で違反線長を表示する例である。表示例9では、選択範囲900内において、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く/長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
<表示例10>
図10は、表示例10を示す説明図である。表示例1〜表示例9では、線長制約条件が1つの場合を例にして説明したが、表示例10は、線長制約条件が複数(図10では、条件1〜条件4の4つ)ある場合の表示例を示している。たとえば、条件1は、クロックおよびデータ(差動ペア)の配線パスを等長にする線長制約条件を示しており、条件2〜条件4は、差動ペアのペアネット間の配線パスを等長にする線長制約条件を示している。
表示例10では、表示例8のように対象領域を拡大した場合、拡大後の画面サイズに応じて配線パターンを線幅方向に分割して、複数の線長制約条件に応じた違反線長を表示する。配線パターンの線幅方向の分割数は、画面サイズに依存するため、分割数が制限されて全線長制約条件分割り当てられない場合がある。この場合は、線長制約条件の優先順位に従って割り当てることとする。このように、表示例10では、複数個の線長制約条件の違反線長を同一画面で同時に確認することができる。
このように、表示例10では、どの配線パスにどの程度の線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く/長くすれば等長にできそうかということを直感的に把握することができる。このため、複数の線長制約条件に合うように配線パターンを効率的に編集することができる。
<表示例11>
図11は、表示例11を示すブロック図である。表示例11では、違反線長の計算において先に線長調整が終了していることが前提となるケースにおいて、先に線長調整が必要な区間の配線パターンの線長調整が終了していなくても、線長調整が終えたと仮定したときの線長を計算で求める。その計算結果を用いて、違反線長を計算する。
具体的には、たとえば、図11に示したトポロジ1100において、ドライバ101〜レシーバ102間の経路702,703の線長制約条件を「条件1」、ドライバ101〜レシーバ1103間の経路1101の線長制約条件を「条件2」とする。条件2の違反線長を計算する場合、条件1での配線パスが等長にできたものとして計算する。すなわち、条件1での線長調整が終了していなくても、条件1の違反線長の長さを加算し、条件2の違反線長を計算することとなる。そして、レシーバ102〜レシーバ1103間の経路1102において、線長調整をおこなう。
このように、表示例11では、前段の線長調整が終了していなくても、複数の線長制約条件の違反線長を同時に確認することができるため、線長調整の効率化を図ることができる。
<表示例12>
図12は、表示例12を示す説明図である。表示例12では、配線パスが配線パターンとして形成されていない状態でも、違反線長を表示する例である。具体的には、配線パスの接続情報(たとえば、ラッツネット1201)から仮経路(たとえば、マンハッタン経路1202)を求め、それぞれの配線パスの仮経路の線長を求める。そして、仮経路の線長から違反線長を求めて仮経路上に表示する。このように、表示例12によれば、詳細な配線をしなくても、概略の違反線長を予測することができ、線長調整の効率化を図ることができる。
<表示例13>
図13は、表示例13を示す説明図である。表示例13は、表示例1〜表示例12の少なくともいずれか2つを組み合わせた表示例である。図13においては、対象領域800を拡大表示する場合、対象領域800からはみ出した違反線長は、表示画面1300内で表現できない場合がある。この場合、線幅などを変更して重ねて表示することで、はみ出した違反線長も含めて違反線長の全長を表現することができる。
(設計支援装置のハードウェア構成)
図14は、実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。図14において、設計支援装置は、CPU(Central Processing Unit)1401と、ROM(Read‐Only Memory)1402と、RAM(Random Access Memory)1403と、磁気ディスクドライブ1404と、磁気ディスク1405と、光ディスクドライブ1406と、光ディスク1407と、ディスプレイ1408と、I/F(Interface)1409と、キーボード1410と、マウス1411と、スキャナ1412と、プリンタ1413と、を備えている。また、各構成部はバス1400によってそれぞれ接続されている。
ここで、CPU1401は、設計支援装置の全体の制御を司る。ROM1402は、ブートプログラムなどのプログラムを記憶している。RAM1403は、CPU1401のワークエリアとして使用される。磁気ディスクドライブ1404は、CPU1401の制御にしたがって磁気ディスク1405に対するデータのリード/ライトを制御する。磁気ディスク1405は、磁気ディスクドライブ1404の制御で書き込まれたデータを記憶する。
光ディスクドライブ1406は、CPU1401の制御にしたがって光ディスク1407に対するデータのリード/ライトを制御する。光ディスク1407は、光ディスクドライブ1406の制御で書き込まれたデータを記憶したり、光ディスク1407に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ1408は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ1408は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)1409は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク1414に接続され、このネットワーク1414を介して他の装置に接続される。そして、I/F1409は、ネットワーク1414と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F1409には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード1410は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス1411は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ1412は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ1412は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ1413は、画像データや文書データを印刷する。プリンタ1413には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(テーブルの記憶内容)
つぎに、本実施の形態で利用する各種テーブルの記憶内容について、図15〜図25を用いて説明する。以下のテーブルは、具体的には、たとえば、図14に示したROM1402、RAM1403、磁気ディスクドライブ1404および磁気ディスク1405、光ディスクドライブ1406および光ディスク1407などの記憶装置によりその機能を実現する。
図15は、ネットテーブル1500の記憶内容の一例を示す説明図である。ネットテーブル1500とは、ネットごとに、ネットを特定するネット番号とネット名とを対応付けたテーブルである。
図16は、ランド形状テーブル1600の記憶内容の一例を示す説明図である。ランド形状テーブル1600とは、ランドごとに、ランドを特定するランド形状番号とランドの形状情報とを対応付けたテーブルである。形状情報とは、形状を特定する情報であり、たとえば、ランドの形状が矩形である場合、矩形(を示す識別子)と対角となる2つの頂点座標となる。また、ランドの形状が円である場合、円(を示す識別子)と中心座標と半径となる。
図17は、部品ピンテーブル1700の記憶内容の一例を示す説明図である。部品ピンテーブル1700とは、部品ピンごとに、部品ピンを特定する部品ピン番号、部品ピンが属するネットのネット番号、部品ピンの座標位置、部品ピンが配置される階層番号、該当するランド形状番号を対応付けたテーブルである。
図18は、ビアテーブル1800の記憶内容の一例を示す説明図である。ビアテーブル1800とは、ビアごとに、ビアを特定するビア番号、ビアが属するネットのネット番号、ビアの座標位置、ビアが配置される階層番号、該当するランド形状番号を対応付けたテーブルである。
図19は、ラインテーブル1900の記憶内容の一例を示す説明図である。ラインテーブル1900とは、ラインごとに、ラインを特定するライン番号、ラインが属するネットのネット番号、ラインのFrom−To座標位置、ラインの線幅、ラインが配線される階層番号を対応付けたテーブルである。ラインの線幅に従って描画すると配線パターンとなる。
図20は、線長制約条件テーブル2000の記憶内容の一例を示す説明図である。線長制約条件テーブル2000とは、線長制約条件ごとに、線長制約条件を特定する制約条件番号、線長条件情報、線長基準情報、配線パス番号リスト、表示制御番号を対応付けたテーブルである。線長条件情報とは、線長制約条件が許容する範囲を示しており、線長条件情報を遵守する配線パスは基準パス、違反する配線パスは違反パスとなる。
制約条件番号は、図1または図10に示した条件名に対応する。線長基準情報とは、制約対象となる配線パスの基準を示す情報である。たとえば、特定の配線パスを基準とする場合、当該配線パスの配線パス番号(たとえば、配線パス番号2)が設定される。この場合、配線パス番号で特定される配線パスが基準パスとなる。また、制約対象となる配線パスの平均線長を線長基準情報としてもよい。線長基準情報で得られた値が、図1または図10に示した線長制約条件の基準値に相当する。
また、配線パス番号リストとは、その線長制約条件が課される配線パスを特定する配線パス番号を列挙したリストである。線長基準情報は、配線パス番号リストに基づいて設定される。たとえば、特定の配線パス番号を線長基準情報とする場合、配線パス番号リストの中から選ばれる。同様に、配線パスの平均線長の場合、配線パス番号リストにより特定される配線パス群の平均線長となる。
図21は、配線パステーブル2100の記憶内容の一例を示す説明図である。配線パステーブル2100とは、配線パスごとに、配線パスを特定する配線パス番号、配線接続順要素リスト、線長、線長判定情報とを対応付けたテーブルである。
配線パス番号は、図1または図10に示した線長制約条件内のパス名に対応する。配線接続順要素リストとは、部品ピンやビアなどの配線要素を接続順に羅列したリストである。線長とは、配線パスの線長であり、図1または図10に示した線長制約条件内の線長に相当する。線長判定情報は、配線パスが線長制約条件を遵守したか違反したかの判定結果を示す情報である。「OK」である場合は、線長制約条件を遵守しており、数値である場合は、違反していることを示す。数値である場合、正の値であるときは、超過をあらわし、負の値であるときは、不足をあらわす。
図22は、表示パステーブル2200の記憶内容の一例を示す説明図である。表示パステーブル2200とは、表示パスごとに、線長番号、論理線長、仮線長、仮線長判定情報、表示区間番号リスト、同一パスリスト、親パス番号を対応付けた作業テーブルである。表示パスとは、配線パスのうち違反線長分のエラー表示の対象となるパスである。
線長番号は、図21に示した配線パステーブル2100の同一の配線パス番号に対応する。論理線長とは、表示パスに未配線区間がある場合に計算される線長である。仮線長とは、表示パスとなる配線パスの線長に対し、配線パステーブル2100の線長判定情報で得られた線長を考慮して計算された表示パスの仮の線長である。
仮線長判定情報とは、表示パスの仮線長が線長制約条件を遵守したか違反したかの判定結果を示す情報である。「OK」である場合は、線長制約条件を遵守しており、数値である場合は、違反していることを示す。数値である場合、正の値であるときは、超過をあらわし、負の値であるときは、不足をあらわす。
表示区間番号リストとは、表示区間テーブル2300の表示区間番号を列挙した情報である。これにより、表示パスは列挙した番号順の表示区間を有することとなる。同一パスリストとは、その表示パスと制約条件は異なるが配線接続順要素リストが同一となる配線パスの配線パス番号を列挙した情報である。親パス番号とは、その表示パスの親パスとなる配線パス番号である。親パスとは、その表示パスとドライバが共通し、表示パスを包含する配線パスの中で最短の配線パスをいう。
図23は、表示区間テーブル2300の記憶内容の一例を示す説明図である。表示区間テーブル2300は、表示区間ごとに、表示区間を特定する表示区間番号、区間色、区間線幅、線種、図形種類、表示区間を対応付けた作業テーブルである。表示区間とは、対象となる経路であり、たとえば、ドライバ101とダンピング抵抗701との間の経路702である。区間色とは、表示区間の描画色である。区間線幅とは、表示区間に描画される違反線長分の線幅である。線種とは表示区間に描画される違反線長分の線の種類である。図形種類とは、表示区間に描画される違反線長分の図形種類である。
図24は、表示制御テーブル2400の記憶内容の一例を示す説明図である。表示制御テーブル2400とは、表示制御内容ごとに、表示制御内容を特定する表示制御番号、表示制御内容の詳細をあらわす表示方法番号リスト、違反線長となるエラー表示領域を対応付けたテーブルである。表示制御内容とは、どこにどのように違反線長のエラー表示をおこなうかを決定する情報である。表示方法番号リストとは、表示方法を特定する番号を列挙したリストである。表示方法については、図25において説明する。エラー表示領域とは、エラー表示させる領域を特定する領域を示している。
図25は、表示方法テーブル2500の記憶内容の一例を示す説明図である。表示方法テーブル2500とは、表示方法ごとに、表示方法を特定する表示方法番号と表示方法とを対応付けたテーブルである。なお、本例では、表示方法番号は、図1〜図13に示した表示例1〜表示例13の番号(表示例#)に対応している。
(設計支援処理手順)
つぎに、本実施の形態にかかる設計支援処理手順について説明する。
図26は、本実施の形態にかかる設計支援処理手順を示すフローチャートである。まず、作業テーブルを初期化する(ステップS2601)。作業テーブルとは、表示パステーブル2200と表示区間テーブル2300である。具体的には、表示パステーブル2200および表示区間テーブル2300の項目をすべて未定義にする。
つぎに、論理経路配線長算出処理(ステップS2602)、制約条件解釈処理(ステップS2603)、仮線長判定処理(ステップS2604)、表示区間決定処理(ステップS2605)、区間表示処理(ステップS2606)を実行する。これにより、一連の処理を終了する。つぎに、ステップS2602〜S2606の詳細な処理手順について説明する。
図27は、図26に示した論理経路配線長算出処理(ステップS2602)の詳細な処理手順を示すフローチャートである。論理経路配線長算出処理(ステップS2602)は、図22に示した表示パステーブル2200の「論理線長」項目を設定する処理である。したがって、表示例12の表示処理を実行する場合にのみ実行する。
まず、制約条件番号CaをCa=1とし(ステップS2701)、Ca>Ncod(線長制約条件の総数)であるか否かを判断する(ステップS2702)。Ca>Ncodでない場合(ステップS2702:No)、リストのインデックス番号PIをPI=1とする(ステップS2703)。そして、PIが制約条件Caの配線パス番号リストの値の個数より大きいか否かを判断する(ステップS2704)。
PIが配線パス番号リストの値の個数以下の場合(ステップS2704:No)、配線パス番号リストのPI番目の値PaをPa=1とする(ステップS2705)。そして、配線パスPaの配線が完了したか否かを判断する(ステップS2706)。すなわち、配線パスPaが配線パターンとして描画されたか否かを判断する。
完了した場合(ステップS2706:Yes)、ステップS2712に移行する。一方、完了していない場合(ステップS2706:No)、配線パステーブル2100を参照して、配線パスPaの既配線区間線長Laを抽出する(ステップS2707)。つぎに、配線パステーブル2100を参照して、配線パスPaの未結線区間Pbを抽出する(ステップS2708)。
たとえば、Pa=1である場合、部品ピン1からビア1まで配線されている場合には、部品ピン1からビア1までの経路長を配線パスPaの既配線区間線長Laとして算出する。そして、ビア1から部品ピン8までが未結線となるため、ビア1から部品ピン8までの経路を配線パスPaの未結線区間Pbとして抽出する。そして、抽出された未結線区間Pbのマンハッタン長Lbを算出する(ステップS2709)。
このあと、既配線区間線長Laと未結線区間Pbのマンハッタン長Lbとを合計することで、配線パスPaの論理線長Labとする(ステップS2710)。そして、表示パステーブル2200の配線パス番号Paのレコードに、論理線長Labを書き込む(ステップS2711)。このようにして、配線パスPaごとに論理線長Labを表示パステーブル2200に設定することができる。
このあと、ステップS2712において、PIをインクリメントして(ステップS2712)、ステップS2704に戻る。そして、ステップS2704において、大きい場合(ステップS2704:Yes)、制約条件番号Caをインクリメントして(ステップS2713)、Ca>Ncod(線長制約条件の総数)であるか否かを判断する(ステップS2702)。
Ca>Ncodである場合(ステップS2702:Yes)、論理経路配線長算出処理(ステップS2602)が完了し、制約条件解釈処理(ステップS2603)に移行する。
図28〜図30は、図26に示した制約条件解釈処理(ステップS2603)の詳細な処理手順を示すフローチャートである。制約条件解釈処理(ステップS2603)は、表示パステーブル2200の「同一パスリスト」項目、「パス番号リスト」項目、および「仮線長」項目を設定する処理である。したがって、表示例10や表示例11の表示処理を実行する場合にのみ実行する。
まず、図28において、第1の制約条件番号C1をC1=1とし(ステップS2801)、C1>Ncod(線長制約条件の総数)であるか否かを判断する(ステップS2802)。C1>Ncodである場合(ステップS2802:Yes)、図30のステップS3001に移行する。
一方、C1>Ncodでない場合(ステップS2802:No)、線長制約条件テーブル2000の制約条件C1の配線パス番号リストに、未選択の配線パス番号があるか否かを判断する(ステップS2803)。未選択の配線パス番号がある場合(ステップS2803:Yes)、未選択の配線パス番号をP1として抽出する(ステップS2804)。
そして、図29のステップS2900に移行する。一方、ステップS2803において、未選択の配線パス番号がない場合(ステップS2803:No)、第1の制約条件番号C1をインクリメントして(ステップS2805)、ステップS2802に戻る。
つぎに、図29において、第2の制約条件番号C2をC2=1とし(ステップS2900)、C2>Ncod(線長制約条件の総数)であるか否かを判断する(ステップS2901)。C2>Ncodである場合(ステップS2901:Yes)、図28のステップS2803に戻る。
一方、C2>Ncodでない場合(ステップS2901:No)、線長制約条件テーブル2000の制約条件C2の配線パス番号リストに、未選択の配線パス番号があるか否かを判断する(ステップS2902)。未選択の配線パス番号がある場合(ステップS2902:Yes)、未選択の配線パス番号をP2として抽出する(ステップS2903)。
そして、C1≠C2でかつP1=P2であるか否かを判断する(ステップS2904)。すなわち、同一配線パスにつき、2つ(C1およびC2)の線長制約条件があるかを判断する。C1≠C2でかつP1=P2でない場合(ステップS2904:No)、ステップS2906に移行する。一方、C1≠C2でかつP1=P2である場合(ステップS2904:Yes)、配線パスP1(=P2)の同一パスリストを更新する(ステップS2905)。具体的には、表示パステーブル2200において、配線パス番号P1に対応する線長番号P1のレコードの同一パスリストに、配線パス番号P1(=P2)を書き込む。
そして、C1≠C2でかつP1⊂P2であるか否かを判断する(ステップS2906)。すなわち、線長制約条件が異なる場合に、配線パスP1が配線パスP2の一部であるか否かを判断する。C1≠C2でかつP1⊂P2でない場合(ステップS2906:No)、ステップS2902に戻る。一方、C1≠C2でかつP1⊂P2である場合(ステップS2906:Yes)、配線パスP1,P2の親パス番号を収集して配線パス集合M1を設定する(ステップS2907)。
ステップS2907では、親パス番号が未定義の場合、配線パス集合M1をM1={P1,P2}とする。また、配線パスP1,P2に親パスがある場合、配線パス集合M1にその親パスを含めることとなる。
そして、配線パス集合M1の配線パスの並びを線長が短い順にソートし(ステップS2908)、ソート後の配線パス集合M1から親パス番号を特定して、表示パステーブル2200を更新する(ステップS2909)。そして、ステップS2902に戻る。一方、ステップS2902において、未選択の配線パス番号がない場合(ステップS2902:No)、第2の制約条件番号C2をインクリメントして(ステップS2910)、ステップS2901に戻る。
また、図28において、C1>Ncodである場合(ステップS2802:Yes)、図30のステップS3001に移行する。ステップS3001において、配線パス番号P3をP3=1とし(ステップS3001)、P3>Npthであるか否かを判断する(ステップS3002)。P3>Npthでない場合(ステップS3002:No)、配線パスP3に親パスがあるか否かを判断する(ステップS3003)。
親パスがある場合(ステップS3003:Yes)、親パスの仮線長を算出し(ステップS3004)、ステップS3005に移行する。一方、親パスがない場合(ステップS3003:No)、ステップS3005に移行する。ステップS3005では、配線パス番号P3をインクリメントし(ステップS3005)、ステップS3002に移行する。そして、P3>Npthである場合(ステップS3002:Yes)、制約条件解釈処理(ステップS2603)が完了し、仮線長判定処理(ステップS2604)に移行する。
ここで、制約条件解釈処理(ステップS2603)の具体例について説明する。まず、表示パステーブル2200の親パス番号の更新例について図31〜図33を用いて説明する。
図31は、表示パステーブル2200の親パス番号の更新例を説明するためのトポロジの一例を示す説明図であり、図32は、図31のトポロジに応じた配線パステーブル2100の記憶内容を示す説明図であり、図33は、表示パステーブル2200の更新例を示す説明図である。なお、配線パステーブル2100と表示パステーブル2200については、項目を一部抜粋している。図33の(A)は、表示パステーブル2200の初期状態を示している。
まず、P1=1、P2=2の場合、表示パステーブル2200を参照すると、配線パス番号1(=P1)に対応する線長番号1の親パス番号は未定義である。同様に、配線パス番号2(=P2)に対応する線長番号2の親パス番号も未定義である。したがって、配線パス集合M1は、M1={P1,P2}={1,2}となる。
そして、配線パス集合M1を線長の短い順にソートすると、M1={P1,P2}={1,2}となる。配線パス集合M1内の並びで、隣接する配線パス番号のうち、右側の番号が左側の番号の親となる。したがって、配線パス番号1の親パスは配線パス番号2となる。これにより、図33の(B)に示したように、表示パステーブル2200の配線パス番号1に対応する線長番号1の親パス番号に「2」が書き込まれる。
つぎに、P1=1、P2=3となった場合、配線パス集合M1としてP1,P3のほか、P1の親パス番号2を図33の(B)の表示パステーブル2200から引く。これにより、配線パス集合M1={P1,P3,P2}={1,3,2}となる。
そして、配線パス集合M1を線長の短い順にソートすると、M1={1,2,3}となる。配線パス集合M1内の並びで、隣接する配線パス番号のうち、右側の番号が左側の番号の親となる。したがって、配線パス番号2の親パスは配線パス番号3となる。これにより、図33の(C)に示したように、表示パステーブル2200の配線パス番号2に対応する線長番号2の親パス番号に「3」が書き込まれる。
このあと、ステップS3004に示したように、親パスの仮線長を求める。配線パス番号P3=1の場合、配線パスP3(=1)の親パス番号は「2」であるため、親パス番号2である配線パス番号2の線長「13000」から配線パスP3(=1)の線長判定情報「−1000」を引くことにより、配線パス番号(線長番号)2の仮線長「14000(=13000−(−1000))」を求めることができる。そして、図33の(D)に示したように、線長番号2の仮線長に「14000」を書き込む。
つぎに、配線パス番号P3=2の場合、配線パスP3(=2)の親パス番号は「3」であるため、親パス番号3である配線パス番号3の線長「17000」から配線パスP3(=2)の線長判定情報「−2000」を引くことにより、配線パス番号(線長番号)3の仮線長「19000(=17000−(−2000))」を求めることができる。そして、図33の(E)に示したように、線長番号3の仮線長に「19000」を書き込む。
なお、この例では、仮線長が未定義であるため、配線パステーブル2100の線長を適用したが、表示パステーブル2200において論理線長が設定されている場合には、線長にかえて論理線長を用いる。また、すでに仮線長が得られている場合は、線長判定情報を使わずに仮線長をそのまま設定する。
図34は、図26に示した仮線長判定処理(ステップS2604)の詳細な処理手順を示すフローチャートである。仮線長判定処理(ステップS2604)では、表示パステーブル2200の「仮線長判定情報」項目を設定する処理である。したがって、表示例11や表示例12の表示処理を実行する場合にのみ実行する。
まず、制約条件番号CをC=1とし(ステップS3401)、C>Ncod(線長制約条件の総数)であるか否かを判断する(ステップS3402)。C>Ncodでない場合(ステップS3402:No)、制約条件番号Cの配線パス番号リストに未選択の配線パス番号があるか否かを判断する(ステップS3403)。未選択の配線パス番号がない場合(ステップS3403:No)、制約条件番号Cをインクリメントし(ステップS3404)、ステップS3402に戻る。
そして、ステップS3402において、C>Ncod(線長制約条件の総数)である場合(ステップS3402:Yes)、ステップS2605に移行する。一方、未選択の配線パス番号がある場合(ステップS3403:Yes)、制約条件Cの基準値CSを算出する(ステップS3405)。具体的には、線長制約条件テーブル2000の線長基準情報を参照して、基準値CS(特定の配線パスの線長、制約対象の配線パスの平均線長)を算出する。
このあと、ステップS3403での未選択の配線パス番号Pを抽出する(ステップS3406)。そして、表示パステーブル2200において、選択された配線パス番号P(=線長番号P)の仮線長が未定義か否かを判断する(ステップS3407)。未定義でない場合(ステップS3407:No)、配線パス番号Pの仮線長を比較対象線長LPに設定して(ステップS3408)、ステップS3412に移行する。
一方、選択された配線パス番号P(=線長番号P)の仮線長が未定義である場合(ステップS3407:Yes)、選択された配線パス番号P(=線長番号P)の論理線長が未定義であるか否かを判断する(ステップS3409)。未定義でない場合(ステップS3409:No)、配線パス番号Pの論理線長を比較対象線長LPに設定して(ステップS3410)、ステップS3412に移行する。
一方、選択された配線パス番号P(=線長番号P)の論理線長が未定義である場合(ステップS3409:Yes)、配線パス番号Pの線長を比較対象線長LPに設定して(ステップS3411)、ステップS3412に移行する。
ステップS3412では、仮線長判定情報HをH=LP−CSを計算することで求める。そして、求めた仮線長判定情報Hを、表示パステーブル2200の配線パス番号P(=線長番号P)のレコードに書き込み(ステップS3413)、ステップS3403に戻る。
図35は、仮線長判定情報が書き込まれた表示パステーブル2200を示す説明図である。図35の表示パステーブル2200は、図33の(E)に示した状態からの更新例である。たとえば、P=3の基準値は、「20000」であるため、仮線長「19000」は「1000」不足している。したがって、仮線長判定情報H=−1000となる。
また、図34に戻り、ステップS3402において、C>Ncodである場合(ステップS3402:Yes)、仮線長判定処理(ステップS2604)を完了し、表示区間決定処理(ステップS2605)に移行する。
図36は、図26に示した表示区間決定処理(ステップS2605)の詳細な処理手順を示すフローチャートである。表示区間決定処理(ステップS2605)は、表示区間テーブル2300を作成する処理である。
まず、制約条件番号CをC=1とし(ステップS3601)、C>Ncod(線長制約条件の総数)であるか否かを判断する(ステップS3602)。C>Ncodでない場合(ステップS3602:No)、制約条件番号Cの配線パス番号リストに未選択の配線パス番号があるか否かを判断する(ステップS3603)。未選択の配線パス番号がない場合(ステップS3603:No)、制約条件番号Cをインクリメントし(ステップS3614)、ステップS3602に戻る。
一方、未選択の配線パス番号がある場合(ステップS3603:Yes)、未選択の配線パス番号Pとして抽出し(ステップS3604)、配線パス番号Pが基準パスであるか否かを判断する(ステップS3605)。具体的には、図21に示した配線パステーブル2100を参照して、配線パス番号Pの配線パス(以下、配線パスP)の線長判定情報がOKであるか否かを判断する。OKであれば基準パスとなる。
基準パスでない場合(ステップS3605:No)、配線パスPの区間G1を設定する(ステップS3606)。具体的には、区間G1に、配線パスPの配線接続順要素リストの要素を入れる。そして、制約条件Cの表示制御番号から表示制御テーブル2400を参照し、その表示方法番号リストM1を特定する(ステップS3607)。このあと、区間特定処理(ステップS3608)および重ね書きによるエラー長表現処理(ステップS3609)を実行して、ステップS3603に戻る。区間特定処理(ステップS3608)および重ね書きによるエラー長表現処理(ステップS3609)については後述する。
一方、ステップS3605において、配線パスPが基準パスである場合(ステップS3605:Yes)、基準パスPの表示区間Qを作成する(ステップS3610)。また、基準パスPの描画色Dを設定する(ステップS3611)。このとき、描画色Dは予め設定された描画色Dとする。
そして、[Q,D]を表示区間テーブル2300に追加する(ステップS3612)。具体的には、特定の表示区間番号のレコードに対し、Dを「区間色」項目に、Qを「表示区間」項目に書き込む。そして、[Q,D]が追加された表示区間番号を、表示パステーブル2200の基準パスPのレコードの表示区間番号リストに追加する(ステップS3613)。このあと、ステップS3603に戻る。
一方、ステップS3602において、C>Ncodである場合(ステップS3602:Yes)、表示区間決定処理(ステップS2605)を完了し、区間表示処理(ステップS2606)に移行する。
図37は、図36に示した区間特定処理(ステップS3608)の詳細な処理手順を示すフローチャートである。まず、ステップS3607で取得した表示方法番号リストM1に未選択の表示方法番号Rがあるか否かを判断する(ステップS3701)。未選択の表示方法番号がある場合(ステップS3701:Yes)、未選択の表示方法番号Rを選択する(ステップS3702)。そして、選択された表示方法番号Rが、R=7〜9以外の番号か、R=7か、R=8か、R=9かを判断する(ステップS3703)。
R=7〜9以外の番号である場合(ステップS3703:7〜9以外)、線長調整対象区間G2を空にして(ステップS3704)、ステップS3708に移行する。
また、R=7である場合(ステップS3703:7)、配線パスPのトポロジから線長調整対象区間G2を特定して(ステップS3705)、ステップS3708に移行する。具体的には、回路トポロジデータベース(DB)を用いる。回路トポロジDBには、線長調整対象区間が指定されたトポロジが各種記憶されている。したがって、回路トポロジDBの中から配線パスPのトポロジと一致するトポロジを検索し、検索されたトポロジに指定されている線長調整対象区間を抽出する。この抽出された線長調整対象区間をG2として特定する。
また、R=8である場合(ステップS3703:8)、配線パスPの区間G1において画面表示範囲内に含まれる区間G2を特定して(ステップS3706)、ステップS3708に移行する。たとえば、配線パスPの区間G1のうち図8に示した対象領域800に含まれる区間G2を検出する。
また、R=9である場合(ステップS3703:9)、配線パスPの区間G1においてエラー表示領域内に含まれる区間G2を特定して(ステップS3707)、ステップS3708に移行する。たとえば、配線パスPの区間G1のうち図9に示した選択範囲900に含まれる区間G2を検出する。
そして、ステップS3708では、区間G2が空でないかを判断し(ステップS3708)、空である場合(ステップS3708:No)、ステップS3701に戻る。一方、空でない場合(ステップS3708:Yes)、配線パスPの区間G1を線長調整対象区間G2とし(ステップS3709)、ステップS3701に戻る。そして、未選択の表示方法番号Rがない場合(ステップS3701:No)、重ね書きによるエラー長表現処理(ステップS3609)に移行する。
図38〜図40は、図36に示した重ね書きによるエラー長表現処理(ステップS3609)の詳細な処理手順を示すフローチャートである。まず、基準パスではない配線パスPの区間G1に含まれている区間Qを設定する(ステップS3801)。たとえば、P=1の場合、図21の配線パス番号1では、「部品ピン1、ビア1、ビア8、部品ピン8」であるため、区間[部品ピン1,ビア1]、区間[ビア1,ビア8]、区間[ビア8,部品ピン8]の各々が区間Qとして設定される。
また、表示方法変数ZをZ=0とする(ステップS3802)。そして、配線パスPの仮線長判定情報の絶対値Lを取得する(ステップS3803)。つぎに、区間Qの線長総和LQを算出する(ステップS3804)。そして、LQ≧Lであるか否かを判断する(ステップS3805)。
LQ≧Lでない場合(ステップS3805:No)、ステップS3807に移行する。一方、LQ≧Lである場合(ステップS3805:Yes)、線長総和LQをLQ=Lとし、仮線長判定情報の絶対値LをL=L―LQとする(ステップS3806)。なお、LQ=Lとしたため、その分、区間Qの座標値も変動することになる。変動については、どのような処理でもよく、区間Qのうち末尾の区間のみ短くしてもよく、すべての区間Qを均等に短くしてもよい。
そして、表示方法番号リストM2をM2=M1とする(ステップS3807)。そして、M1に表示方法番号R=13があるか否かを判断する(ステップS3808)。R=13の表示方法番号がない場合(ステップS3808:No)、L=0に設定し(ステップS3809)、図39のステップS3901に移行する。
一方、M2にR=13の表示方法番号がある場合(ステップS3808:Yes)、表示方法変数Zをインクリメントして(ステップS3810)、M2にZを追加して(ステップS3811)、図39のステップS3901に移行する。
図39において、表示区間テーブル2300の配線パスPの描画色D、線幅W、線種K、図形種Fを未定義にする(ステップS3901)。つぎに、M2にR=1の表示方法番号があるか否かを判断する(ステップS3902)。ない場合(ステップS3902:No)。ステップS3904に移行する。
一方、ある場合(ステップS3902:Yes)、描画色Dを、配線パスPの仮配線判定情報に対応した描画色に設定して(ステップS3903)、ステップS3904に移行する。具体的には、たとえば、図25を参照すると、R=1では、「線長エラー表示を違反線長の長さだけ色を変えて表示」となっており、不足(負の値)の場合は「赤」、超過(正の値)の場合は「青」としている。したがって、仮配線判定情報が正の値の場合は、違反線長の長さだけ青色に設定し、負の値の場合は赤色に設定する。
つぎに、ステップS3904において、M2にR=2の表示方法番号があるか否かを判断する(ステップS3904)。ない場合(ステップS3904:No)。ステップS3906に移行する。
一方、ある場合(ステップS3904:Yes)、線幅Wを、配線パスPの仮配線判定情報に対応した線幅に設定して(ステップS3905)、ステップS3906に移行する。具体的には、たとえば、図25を参照すると、R=2では、「線長エラー表示を違反線長の長さだけ線幅を変えて表示」となっており、不足(負の値)の場合は「細く」、超過(正の値)の場合は「太く」としている。したがって、仮配線判定情報が正の値の場合は、違反線長の長さだけ線幅を違反線長以外の部分より太く設定し、負の値の場合は線幅を違反線長以外の部分より細く設定する。線幅をどの程度にするかは予め設定しておけばよい。
つぎに、ステップS3906において、M2にR=3の表示方法番号があるか否かを判断する(ステップS3906)。ない場合(ステップS3906:No)。ステップS3908に移行する。
一方、ある場合(ステップS3906:Yes)、線種Kを、配線パスPの仮配線判定情報に対応した線種に設定して(ステップS3907)、ステップS3908に移行する。具体的には、たとえば、図25を参照すると、R=3では、「線長エラー表示を違反線長の長さだけ線種を変えて表示」となっており、不足(負の値)の場合は「点線(パターンの輪郭)」、超過(正の値)の場合は「斜線(パターン内部)」としている。したがって、仮配線判定情報が正の値の場合は、違反線長の長さだけ線種を斜線に設定し、負の値の場合は線種を点線に設定する。
つぎに、ステップS3908において、M2にR=4の表示方法番号があるか否かを判断する(ステップS3908)。ない場合(ステップS3908:No)。ステップS3910に移行する。
一方、ある場合(ステップS3908:Yes)、図形種Fを、配線パスPの仮配線判定情報に対応した図形種に設定して(ステップS3909)、ステップS3910に移行する。具体的には、たとえば、図25を参照すると、R=4では、「線長エラー表示を違反線長の長さだけ図形を重ねて表示」となっており、不足(負の値)の場合は「図形1(幅0のラインを重ね書き)」、超過(正の値)の場合は「図形2(外形たけの長円を重ね書き)」としている。したがって、仮配線判定情報が正の値の場合は、違反線長の長さだけ図形2を設定し、負の値の場合は図形1を設定する。
つぎに、ステップS3910において、M2にR=5の表示方法番号があるか否かを判断する(ステップS3910)。ない場合(ステップS3910:No)、図40のステップS4001に移行する。
一方、ある場合(ステップS3910:Yes)、描画色Dを、配線パスPの仮配線判定情報に対応した描画色に設定して(ステップS3911)、ステップS4001に移行する。具体的には、たとえば、図25を参照すると、R=5では、「配線パス全体を違反線長に対応した色でエラー表示」となっており、不足(負の値)の場合は「寒色系」、超過(正の値)の場合は「暖色系」としている。したがって、仮配線判定情報が正の値の場合は、配線パス全体を暖色系に設定し、負の値の場合は寒色系に設定する。なお、図5に示したように、寒色系および暖色系ともに仮配線判定情報の値に応じて段階表示するように設定される。
そして、図40において、区間Q、描画色D、線幅W、線種K、図形種Fの組み合わせとなる[Q,D,W,K,F]を表示区間テーブル2300の指定された表示区間番号のレコードに追加する(ステップS4001)。
つぎに、ステップS4001において表示区間テーブル2300に[Q,D,W,K,F]が追加されたレコードの表示区間番号を、表示パステーブル2200の配線パスPのレコードの表示区間番号リストに追加する(ステップS4002)。そして、L≦0であるか否かを判断する(ステップS4003)。L≦0である場合(ステップS4003:Yes)、未調整の違反線長がなくなったため、図36のステップS3603に戻る。一方、L≦0でない場合(ステップS4003:No)、まだ、未調整の違反線長が残存しているため、図38のステップS3803に戻る。
図41は、図26に示した区間表示処理(ステップS2606)の詳細な処理手順を示すフローチャートである。まず、制約条件番号CをC=1とし(ステップS4101)、C>Ncod(線長制約条件の総数)であるか否かを判断する(ステップS4102)。C>Ncodでない場合(ステップS4102:No)、制約条件番号Cの配線パス番号リストに未選択の配線パス番号があるか否かを判断する(ステップS4103)。未選択の配線パス番号がない場合(ステップS4103:No)、制約条件番号Cをインクリメントし(ステップS4104)、ステップS4102に戻る。
一方、ステップS4103において、未選択の配線パス番号がある場合(ステップS4103:Yes)、未選択の配線パス番号Pとして抽出し(ステップS4105)、表示パステーブル2200から配線パスPに対応する表示パスSを特定する(ステップS4106)。具体的には、配線パス番号Pと同一線長番号を特定する。
つぎに、ラインを縦に分割表示できる本数Yを求める(ステップS4107)。たとえば、しきい値となるピクセル幅を3ピクセル、ラインの線幅を7ピクセルとすると、Y=7/3=2余り1により、Y=2となる。したがって、3ピクセルを2本分分割表示できる。なお、余りは本数Yに均等に振り分けてもよい。振り分けられない場合は、できる限り均等になるように分配する。本例の場合は、4ピクセルと3ピクセルになる。
つぎに、表示パスSの同一パスリストの表示順位がY以内であるか否かを判断する(ステップS4108)。Y以内でない場合(ステップS4108:No)、ステップS4103に戻る。一方、Y以内である場合(ステップS4108:Yes)、ライン表示の分割位置を設定する(ステップS4109)。具体的には、ラインを幅方向にY分割する。そして、分割されたラインのうち上位から分割位置を割り振る。
図42は、ステップS4108,S4109の具体例を示す説明図である。たとえば、図22に示した表示パステーブル2200において、表示パスS(線長番号)がS=2の場合、同一パスリストは、「2,9」である。この並びは表示順位を示しており、1位が「2」、2位が「9」である。ここで、Y=2であるとすると、S=2の表示パスの表示順位は1位であるため、Y以内となる。
この場合、ステップS4109では、ライン表示の分割位置を設定する。具体的には、ラインを幅方向にY=2分割する。2分割されたラインのうち上段から順次上位の表示パスを割り振る。ここでは、表示パスS=2を上段の分割位置に割り振り、表示パスS=9を下段の分割位置に割り振る。また、各表示パスSは、配線接続順要素リストの順に従ってラインが引かれることとなる。たとえば、表示パスS=2の場合、部品ピン2、ビア2、ビア9、部品ピン9の順にしたがってラインが引かれる。
一方、S=9において、同一パスリストが仮に「1,2,9」であった場合、S=9の表示パスの表示順位は3位であるため、Y以内とはならない。
このあと、リストのインデックス番号QIをQI=1とし(ステップS4110)、QIが表示パスSの表示区間番号リストの値の個数より大きいか否かを判断する(ステップS4111)。大きい場合(ステップS4111:Yes)、ステップS4103に戻る。一方、表示パスSの表示区間番号リストの値の個数以下の場合(ステップS4111:No)、表示パスSの表示区間番号リストのQI番目の値をQNとし(ステップS4112)、番号QNの表示区間について描画処理を実行する(ステップS4113)。そして、インデックス番号QIをインクリメントして(ステップS4114)、ステップS4111に戻る。
また、ステップS4102において、C>Ncod(線長制約条件の総数)である場合(ステップS4102:Yes)、一連の処理を終了する。
図43は、図41に示した描画処理(ステップS4112)の詳細な処理手順を示すフローチャートである。まず、表示区間テーブル2300において表示区間番号QNの図形種が未定義か否かを判断する(ステップS4301)。未定義である場合(ステップS4301:Yes)、表示区間テーブル2300からQNの描画属性(描画色D、線幅W、線種K)を取得する(ステップS4302)。そして、未定義ではない描画属性をラインの描画属性に反映し(ステップS4303)、表示区間番号QNの表示区間をライン描画する(ステップS4304)。そして、ステップS4113に移行する。
一方、ステップS4301において、QNの図形種が未定義でない場合(ステップS4301:No)、表示区間テーブル2300から表示区間番号QNの図形種類Fを取得する(ステップS4305)。そして、表示区間番号QNの表示区間を図形種類Fに対応した図形で描画して(ステップS4306)、ステップS4113に移行する。
(設計支援装置の機能的構成)
図44は、設計支援装置の機能的構成を示すブロック図である。設計支援装置4400は、取得部4401と、描画部4402と、制御部4403と、検出部4404と、指定部4405と、決定部4406と、算出部4407と、設定部4408と、論理線長算出部4409と、を含む構成である。これら機能4401〜4409は、具体的には、たとえば、図14に示したROM1402、RAM1403、磁気ディスク1405、光ディスク1407などの記憶装置に記憶されたプログラムをCPU1401に実行させることにより、または、I/F1409により、その機能を実現する。また、描画部4402は、グラフィックLSIでもよい。
取得部4401は、送信元から送信先までの複数の配線パスの違反線長を取得する機能を有する。送信元とは、たとえば、ドライバ101であり、送信先とは、レシーバ102である。取得部4401は、具体的には、たとえば、図1、図6、図10に示したドライバ101およびレシーバ102間の配線パスの違反値(違反線長)を読み込む。より具体的には、線長制約条件テーブル2000から該当する制約条件番号のレコードを特定し、配線パス番号リストの配線パスについて、配線パステーブル2100を参照して、それぞれの配線パスの線長を取得する。そして、線長制約条件テーブル2000の「線長基準情報」項目の値に従って、基準値を求める。そして、求めた基準値と配線パスの線長との差を求めて違反線長とする。
描画部4402は、配線パスごとに、配線パスの線長と配線経路に基づいて、送信元と送信先とを接続する配線パターンを描画する機能を有する。具体的には、たとえば、表示例1〜13に示したように、配線パスごとに、その線長分のラインを配線経路に従って描画する。配線パスの線長は、図21に示した配線パステーブル2100の「線長」項目の値を読み込むことで得られる。
また、配線パスの配線経路は、図21に示した配線パステーブル2100の「配線接続順要素リスト」項目の値を読み込むことで得られる。配線接続順要素リストには、配線パスを構成する要素(ランド形状、部品ピン、ビア、ライン)の番号が接続順に列挙されているため、それぞれ、図16〜図19に示したテーブル1600〜1900から「座標」項目の値を読み込むことで得られる。描画部4402は、得られた値に従って描画処理することで配線パターンを描画することとなる。
制御部4403は、描画部4402を制御して、配線パスごとに、配線パターンを構成するラインを、取得部4401によって取得された違反線長分の第1のラインと当該違反線長以外の線長分の第2のラインとに区別して描画する機能を有する。
具体的には、たとえば、表示例1で示したように、第1のラインと第2のラインとを描画色が異なるように描画する。また、表示例2で示したように、第1のラインと第2のラインとを線幅が異なるように描画する。さらに、表示例3で示したように、第1のラインと第2のラインとを線種が異なるように描画する。
また、制御部4403は、表示例4で示したように、第1のラインに追加図形を描画することで、第1のラインと第2のラインとを区別することとしてもよい。また、制御部4403は、表示例5に示したように、配線パスごとに、違反線長に応じた描画色で配線パターンを描画することとしてもよい。これにより、それぞれの配線パスをあとどれだけ短く/長くすれば等長にできそうかが直感的にわかることとなる。
また、制御部4403は、第1のラインを送信元から違反線長分描画することで、第1のラインの一端を揃えて各配線パスの違反線長がどのくらいあるかを比較できるように表示することができる。
また、制御部4403は、違反線長が基準線長を超過する場合と基準線長に不足する場合とで異なるように第1のラインを描画することとしてもよい。不足であるか超過であるかは違反線長の正負の符号により区別することができるため、不足と超過が混在する場合も区別して表示することができる。
また、制御部4403は、表示例6で示したように、配線パスごとに、複数の配線パスのうち基準線長に採用された配線パス(基準パス)のラインを、基準線長に採用されなかった他の配線パスにおける違反線長以外の線長分のラインと区別して描画することとしてもよい。これにより、基準パスがどの配線パスであるかが一目でわかり、基準パスまたはそれ以外の配線パスをあとどれだけ長く/短くすれば等長にできそうかが直感的にわかることとなる。
また、制御部4403は、表示例7で示したように、配線パスごとに、複数の配線パスの配線経路内にダンピング抵抗701がある場合、ダンピング抵抗701から送信先までのラインにおいて、配線パターンを構成するラインを、違反線長分の第1のラインと当該違反線長以外の線長分の第2のラインとに区別して描画することとしてもよい。
ダンピング抵抗701の実装位置は、ドライバ101の近傍であることが大原則であるため、線長を調整する場合、ダンピング抵抗701とレシーバ102との間の配線経路で調整する。これにより、線長調整すべき経路に表示されるため、設計者は、どこで線長調整すべきかを考える手間を省くことができ、配線パターンの編集に専念でき、設計負担の軽減を図ることができる。
また、図44において、検出部4404は、表示領域を検出する検出部4404を有する。検出部4404は、描画された領域のうちどの領域が画面に表示されるかを検出する。この場合、制御部4403は、表示例8に示したように、配線パスごとに、検出部4404によって検出された表示領域内でのラインを、第1のラインと第2のラインとに区別して描画する。
これにより、表示例8で示したように、表示領域が拡大、縮小、変更されても違反線長が常に表示されるため、配線パスをあとどれだけ長く/短くすれば等長にできるかが直感的にわかることとなる。
また、図44において、指定部4405は、表示領域の指定を受け付ける機能を有する。具体的には、ユーザがマウスなどの入力装置を操作することで表示領域を指定する。この場合、制御部4403は、配線パスごとに、指定部4405によって指定された表示領域内でのラインを、第1のラインと第2のラインに区別して描画する。
これにより、表示例9で示したように、ユーザが指定した範囲の表示領域が拡大、縮小、変更されても違反線長が常に表示されるため、配線パスをあとどれだけ長く/短くすれば等長にできるかが直感的にわかることとなる。また、「この線長制約条件の配線グループはこの範囲で等長にする」ということがわかり、他の線長制約条件の配線グループとの間で等長にするための領域割当がどのようになっているかがわかりやすくなる。
また、図44において、決定部4406は、各配線パスにおいて線長制約条件ごとの違反線長を有する場合、線長制約条件ごとに違反線長分のラインの線幅を線長制約条件の数に基づいて決定する機能を有する。
具体的には、たとえば、表示例10で示したように、1つの配線パスに2以上の線長制約条件がある場合、線長制約条件ごとに違反線長となる第1のラインを1つの配線パスに何本描画できるかを決定する。
この場合、制御部4403は、配線パスごとに、配線パターンを構成するラインを、各第1のラインと第2のラインとに区別するとともに、各第1のラインを決定部4406によって決定された線幅で並走して描画する。具体的には、たとえば、表示例10で示したように、1つの配線パスに2以上の線長制約条件がある場合、線長制約条件ごとに違反線長となる第1のラインを描画する。これにより、複数の線長制約条件の違反線長を同時に確認することができる。
また、図44において、算出部4407は、配線パスごとに、当該配線パスにおける第1の線長制約条件の対象区間での違反線長に基づいて、第1の線長制約条件の対象区間を包含する第2の線長制約条件の対象区間での違反線長を算出する機能を有する。
具体的には、たとえば、第2の線長制約条件の対象区間のパス(子パス)は、第1の線長制約条件の対象区間の親パスとなる。表示例11に示したように、親パスの違反線長を計算する場合は、子パスについて線長調整が終了していることが前提となる。しかし、算出部4407では、小パスの線長調整が終了していなくても、線長調整が終えたと仮定したときの線長を求めて第2の線長制約条件について違反線長を求める。
この場合、制御部4403は、配線パスごとに、第1の線長制約条件の対象区間内のラインを、第1の線長制約条件の対象区間での違反線長分の第1のラインと当該違反線長以外の線長分の第2のラインとに区別して描画する(表示例11の条件1のエラー表示)。
また、第2の線長制約条件の対象区間内のラインを、算出部4407によって算出された第2の線長制約条件の対象区間での違反線長分の第1のラインと当該違反線長以外の線長分の第2のラインとに区別して描画する(表示例11の条件2のエラー表示)。このように、描画することで、複数の線長制約条件の違反線長を同時に確認することができる。
また、図44において、設定部4408は、配線経路の少なくとも一部が規定されていない配線パスについて、仮配線経路を設定する機能を有する。具体的には、たとえば、未配線の部分について、マンハッタン経路を求める。
論理線長算出部4409は、設定部4408によって設定された仮配線経路の論理線長を算出する機能を有する。具体的には、たとえば、マンハッタン経路の経路長を論理線長として求める。
この場合、取得部4401は、論理線長算出部4409によって算出された論理線長に基づいて、配線経路が規定されていない配線パスの違反線長を取得する。具体的には、論理線長を用いて線長制約条件に従って基準値を求め、求めた基準値から違反線長を求める。
そして、描画部4402は、表示例12に示したように、設定部4408によって設定された仮配線経路を描画する。具体的には、たとえば、マンハッタン経路を描画する。また、制御部4403は、表示例12に示したように、取得部4401によって取得された配線経路が規定されていない配線パスの違反線長分のラインを仮配線経路と区別して仮配線経路上に描画する。
このように、詳細な配線がなされていない場合であっても、違反線長によるエラー表示をおこなうことができる。
以上のことから、本実施の形態によれば、設計データにおいて、線長制約条件に違反する配線パスを自動的に検出し、線長の違反線長を、その配線パスの配線パターンに重ねて表示させることができる。この違反線長の表示は、設計者が違反線長の表示を指示したときに表示されるようになっており、設計者の編集作業に合わせてリアルタイムに表示更新される。これにより、違反する配線パスの有無および違反線長の長さを設計者に対して一つにまとめて示すことができ、設計者が制約条件に合うように配線パターンを編集する作業を効率的に行うことができる。
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
送信元から送信先までの複数の配線パスの違反線長を取得する取得手段、
前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画する描画手段、
前記描画手段を制御して、前記配線パスごとに、前記配線パターンを構成するラインを、前記取得手段によって取得された違反線長分の第1のラインと当該違反線長以外の線長分の第2のラインとに区別して描画する制御手段、
として機能させることを特徴とする設計支援プログラム。
(付記2)前記制御手段は、
前記第1のラインと前記第2のラインとを描画色、線幅、線種のうちいずれか1つが異なるように描画することを特徴とする付記1に記載の設計支援プログラム。
(付記3)前記制御手段は、
前記第1のラインに追加図形を描画することを特徴とする付記1に記載の設計支援プログラム。
(付記4)前記制御手段は、
前記第1のラインを前記送信元から前記違反線長分描画することを特徴とする付記1〜3のいずれか1つに記載の設計支援プログラム。
(付記5)前記制御手段は、
前記違反線長が基準線長を超過する場合と前記基準線長に不足する場合とで異なるように前記第1のラインを描画することを特徴とする付記1〜4のいずれか1つに記載の設計支援プログラム。
(付記6)前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記複数の配線パスのうち基準線長に採用された配線パスのラインを、前記基準線長に採用されなかった他の配線パスにおける前記違反線長以外の線長分のラインと区別して描画することを特徴とする付記1〜5のいずれか1つに記載の設計支援プログラム。
(付記7)前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記複数の配線パスの配線経路内にダンピング抵抗がある場合、前記ダンピング抵抗から前記送信先までのラインにおいて、前記配線パターンを構成するラインを、前記第1のラインと前記第2のラインとに区別して描画することを特徴とする付記1〜6のいずれか1つに記載の設計支援プログラム。
(付記8)前記コンピュータを、
表示領域を検出する検出手段として機能させ、
前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記検出手段によって検出された表示領域内でのラインを、前記第1のラインと前記第2のラインとに区別して描画することを特徴とする付記1〜7のいずれか1つに記載の設計支援プログラム。
(付記9)前記コンピュータを、
表示領域の指定を受け付ける指定手段として機能させ、
前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記指定手段によって指定された表示領域内でのラインを、前記第1のラインと前記第2のラインに区別して描画することを特徴とする付記1〜7のいずれか1つに記載の設計支援プログラム。
(付記10)前記コンピュータを、
前記各配線パスにおいて線長制約条件ごとの前記違反線長を有する場合、前記線長制約条件ごとに前記違反線長分のラインの線幅を前記線長制約条件の数に基づいて決定する決定手段として機能させ、
前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記配線パターンを構成するラインを、前記各第1のラインと前記第2のラインとに区別するとともに、前記各第1のラインを前記決定手段によって決定された線幅で並走して描画することを特徴とする付記1〜9のいずれか1つに記載の設計支援プログラム。
(付記11)前記コンピュータを、
前記配線パスごとに、当該配線パスにおける第1の線長制約条件の対象区間での違反線長に基づいて、前記第1の線長制約条件の対象区間を包含する第2の線長制約条件の対象区間での違反線長を算出する算出手段として機能させ、
前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記第1の線長制約条件の対象区間内のラインを、前記第1の線長制約条件の対象区間での違反線長分の第1のラインと当該違反線長以外の線長分の第2のラインとに区別して描画するとともに、前記第2の線長制約条件の対象区間内のラインを、前記算出手段によって算出された前記第2の線長制約条件の対象区間での違反線長分の第1のラインと当該違反線長以外の線長分の第2のラインとに区別して描画することを特徴とする付記1〜10のいずれか1つに記載の設計支援プログラム。
(付記12)コンピュータを、
送信元から送信先までの複数の配線パスの違反線長を取得する取得手段、
前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画する描画手段、
前記描画手段を制御して、前記配線パスごとに、前記違反線長に応じた描画色で前記配線パターンを描画する制御手段、
として機能させることを特徴とする設計支援プログラム。
(付記13)コンピュータを、
配線経路が規定されていない配線パスの仮配線経路を設定する設定手段、
前記設定手段によって設定された仮配線経路の論理線長を算出する論理線長算出手段、
前記論理線長算出手段によって算出された論理線長に基づいて、前記配線経路が規定されていない配線パスの違反線長を取得する取得手段、
前記設定手段によって設定された仮配線経路を描画する描画手段、
前記描画手段を制御して、前記取得手段によって取得された前記配線経路が規定されていない配線パスの違反線長分のラインを、前記仮配線経路と区別して前記仮配線経路上に描画する制御手段、
として機能させることを特徴とする設計支援プログラム。
(付記14)送信元から送信先までの複数の配線パスの違反線長を取得する取得手段と、
前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画する描画手段と、
前記描画手段を制御して、前記配線パスごとに、前記配線パターンを構成するラインを、前記取得手段によって取得された違反線長分の第1のラインと当該違反線長以外の線長分の第2のラインとに区別して描画する制御手段と、
を備えることを特徴とする設計支援装置。
(付記15)取得手段、描画手段、制御手段を備えるコンピュータが、
前記取得手段により、送信元から送信先までの複数の配線パスの違反線長を取得する取得工程と、
前記描画手段により、前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画する第1の描画工程と、
前記制御手段により、前記描画手段を制御して、前記配線パターンを構成するラインを、前記取得手段によって取得された違反線長分の第1のラインと当該違反線長以外の線長分の第2のラインとに区別して描画する第2の描画工程と、
を実行することを特徴とする設計支援方法。