(57)【特許請求の範囲】
【請求項１】
コンピュータを、
送信元から送信先までの複数の配線パスの違反線長を取得する取得手段、
前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画する描画手段、
前記描画手段を制御して、前記配線パスごとに、前記配線パターンを構成するラインを、前記取得手段によって取得された違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画する制御手段、
として機能させることを特徴とする設計支援プログラム。
【請求項２】
前記制御手段は、
前記第１のラインと前記第２のラインとを描画色、線幅、線種のうちいずれか１つが異なるように描画することを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記制御手段は、
前記第１のラインに追加図形を描画することを特徴とする請求項１に記載の設計支援プログラム。
【請求項４】
前記制御手段は、
前記第１のラインを前記送信元から前記違反線長分描画することを特徴とする請求項１〜３のいずれか１つに記載の設計支援プログラム。
【請求項５】
コンピュータを、
配線経路が規定されていない配線パスの仮配線経路を設定する設定手段、
前記設定手段によって設定された仮配線経路の論理線長を算出する論理線長算出手段、
前記論理線長算出手段によって算出された論理線長に基づいて、前記配線経路が規定されていない配線パスの違反線長を取得する取得手段、
前記設定手段によって設定された仮配線経路を描画する描画手段、
前記描画手段を制御して、前記取得手段によって取得された前記配線経路が規定されていない配線パスの違反線長分のラインを、前記仮配線経路と区別して前記仮配線経路上に描画する制御手段、
として機能させることを特徴とする設計支援プログラム。
【請求項６】
送信元から送信先までの複数の配線パスの違反線長を取得する取得手段と、
前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画する描画手段と、
前記描画手段を制御して、前記配線パスごとに、前記配線パターンを構成するラインを、前記取得手段によって取得された違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画する制御手段と、
を備えることを特徴とする設計支援装置。
【請求項７】
取得手段、描画手段、制御手段を備えるコンピュータが、
前記取得手段により、送信元から送信先までの複数の配線パスの違反線長を取得する取得工程と、
前記描画手段により、前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画する第１の描画工程と、
前記制御手段により、前記描画手段を制御して、前記配線パターンを構成するラインを、前記取得手段によって取得された違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画する第２の描画工程と、
を実行することを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリント板やＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）での配線設計を支援する設計支援プログラム、設計支援装置、および設計支援方法に関する。
【背景技術】
【０００２】
近年、プリント板の配線設計においては、ＬＳＩの低電圧化、信号速度の高速化などにより、設計制約条件が指示されることが一般的になってきている。設計制約条件の中には、部品間を接続する配線パターンを流れる信号のタイミングを合わせるために、配線パスに対してその配線パスを流れる信号のディレイ（伝搬遅延）を元に換算した線長が指示されている設計制約条件がある。
【０００３】
また、バスなどのような複数の配線パスからなるグループにおいてはその各配線パスのレシーバに対し入力タイミングが等しくなるようにディレイを合わせる指示がされている設計制約条件がある。設計者は設計制約条件を満足するように配線作業を行うが、設計ルールに違反することなく、配線パスの信号のディレイに関する制約に合わせるために、配線パスの線長を調整しながら配線する作業に時間を要している。このため、線長制約条件を遵守した配線設計ツールが開示されている（たとえば、下記特許文献１を参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１１０４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来の配線設計ツールでは、配線長の違反線長を示す表示が配線パターンを表示している画面とは別のウィンドウで表示されるため、配線パターンと違反線長の対応が取りづらいという問題があった。また、違反線長に対応する実際の配線パターン長がイメージしづらいという問題があった。
【０００６】
本発明は、上述した従来技術による問題点を解消するため、制約に違反する配線パスの有無および違反線長の長さを設計者に対して一つにまとめて示すことにより、設計者が制約条件に合うように配線パターンを編集する編集作業の効率化を図ることができる設計支援装置、設計支援方法、および設計支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本設計支援プログラム、設計支援装置、および設計支援方法は、送信元から送信先までの複数の配線パスの違反線長を取得し、前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画し、前記配線パスごとに、前記配線パターンを構成するラインを、取得された違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画することを要件とする。
【発明の効果】
【０００８】
本設計支援プログラム、設計支援装置、および設計支援方法によれば、制約に違反する配線パスの有無および違反線長の長さを設計者に対して一つにまとめて示すことにより、設計者が制約条件に合うように配線パターンを編集する編集作業の効率化を図ることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】表示例１を示す説明図である。
【図２】表示例２を示す説明図である。
【図３】表示例３を示す説明図である。
【図４】表示例４を示す説明図である。
【図５】表示例５を示す説明図である。
【図６】表示例６を示す説明図である。
【図７】表示例７を示す説明図である。
【図８】表示例８を示す説明図である。
【図９】表示例９を示す説明図である。
【図１０】表示例１０を示す説明図である。
【図１１】表示例１１を示すブロック図である。
【図１２】表示例１２を示す説明図である。
【図１３】表示例１３を示す説明図である。
【図１４】実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。
【図１５】ネットテーブル１５００の記憶内容の一例を示す説明図である。
【図１６】ランド形状テーブル１６００の記憶内容の一例を示す説明図である。
【図１７】部品ピンテーブル１７００の記憶内容の一例を示す説明図である。
【図１８】ビアテーブル１８００の記憶内容の一例を示す説明図である。
【図１９】ラインテーブル１９００の記憶内容の一例を示す説明図である。
【図２０】線長制約条件テーブル２０００の記憶内容の一例を示す説明図である。
【図２１】配線パステーブル２１００の記憶内容の一例を示す説明図である。
【図２２】表示パステーブル２２００の記憶内容の一例を示す説明図である。
【図２３】表示区間テーブル２３００の記憶内容の一例を示す説明図である。
【図２４】表示制御テーブル２４００の記憶内容の一例を示す説明図である。
【図２５】表示方法テーブル２５００の記憶内容の一例を示す説明図である。
【図２６】本実施の形態にかかる設計支援処理手順を示すフローチャートである。
【図２７】図２６に示した論理経路配線長算出処理（ステップＳ２６０２）の詳細な処理手順を示すフローチャートである。
【図２８】図２６に示した制約条件解釈処理（ステップＳ２６０３）の詳細な処理手順を示すフローチャート（その１）である。
【図２９】図２６に示した制約条件解釈処理（ステップＳ２６０３）の詳細な処理手順を示すフローチャート（その２）である。
【図３０】図２６に示した制約条件解釈処理（ステップＳ２６０３）の詳細な処理手順を示すフローチャート（その３）である。
【図３１】表示パステーブル２２００の親パス番号の更新例を説明するためのトポロジの一例を示す説明図である。
【図３２】図３１のトポロジに応じた配線パステーブル２１００の記憶内容を示す説明図である。
【図３３】表示パステーブル２２００の更新例を示す説明図である。
【図３４】図２６に示した仮線長判定処理（ステップＳ２６０４）の詳細な処理手順を示すフローチャートである。
【図３５】仮線長判定情報が書き込まれた表示パステーブル２２００を示す説明図である。
【図３６】図２６に示した表示区間決定処理（ステップＳ２６０５）の詳細な処理手順を示すフローチャートである。
【図３７】図３６に示した区間特定処理（ステップＳ３６０８）の詳細な処理手順を示すフローチャートである。
【図３８】図３６に示した重ね書きによるエラー長表現処理（ステップＳ３６０９）の詳細な処理手順を示すフローチャート（その１）である。
【図３９】図３６に示した重ね書きによるエラー長表現処理（ステップＳ３６０９）の詳細な処理手順を示すフローチャート（その２）である。
【図４０】図３６に示した重ね書きによるエラー長表現処理（ステップＳ３６０９）の詳細な処理手順を示すフローチャート（その３）である。
【図４１】図２６に示した区間表示処理（ステップＳ２６０６）の詳細な処理手順を示すフローチャートである。
【図４２】ステップＳ４１０８，Ｓ４１０９の具体例を示す説明図である。
【図４３】図４１に示した描画処理（ステップＳ４１１２）の詳細な処理手順を示すフローチャートである。
【図４４】設計支援装置の機能的構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。本実施の形態では、設計データにおいて、線長制約条件に違反する配線パスを自動的に検出し、線長の違反線長を、その配線パスの配線パターンに重ねて表示させる。これにより、違反する配線パスの有無および違反線長の長さを設計者に対して一つにまとめて示すことができ、設計者が制約条件に合うように配線パターンを編集する編集作業の効率化を図ることができる。
【００１１】
なお、本明細書において、「配線パス」とは、部品ピンや配線の中継点を指示するためのビアなどを用いて配線対象の接続関係を示す情報である。また、「配線パターン」とは、配線パスにしたがって部品を電気的に接続するための導体（ライン）を示すレイアウトデータである。制約条件での線長は、物理的に接続している配線パターンを配線パスの接続関係と照らし合わせながら抽出し、抽出されたすべての配線パターンを線長制約条件で指定されている換算方法にしたがって配線パスの線長へと換算することで得られる。「違反線長」とは、線長制約条件の基準値の範囲より短い場合は不足している線長を、長い場合は超過している線長をいう。また、部品間を流れる信号のタイミングを調整するために、信号のディレイを線長に数値換算し、線長に関する制約として制約条件に定義し、線長を合わせることによってディレイを合わせることを行っているが、線長に換算せずにディレイに関する制約として制約条件に定義していたとしても、内部で計算する値の単位が異なるだけであるため、ディレイを直接扱うことも可能である。
【００１２】
また、本実施の形態では、１３種の表示例により違反する配線パスの有無および違反線長の長さを設計者に対して一つにまとめて示す。以下、本実施の形態における表示例１〜１３について順次説明する。
【００１３】
＜表示例１＞
図１は、表示例１を示す説明図である。表示例１は、配線パスの違反線長の長さだけ配線パターンの描画色を変更する表示例である。表示例１では、まず、（Ａ）ドライバ１０１−レシーバ１０２間のバス１０３で構成されたトポロジ１００を線長制約条件に従って結線する。
【００１４】
線長制約条件では、条件名、パス名、線長、基準値、および違反値が規定されている。条件名とは、線長制約条件の条件名である。ここでは、ＢＵＳ０１が条件名である。なお、ＢＵＳ０１の線長条件として“±０．５ｍｍ”が規定されており、『各配線パスの線長は基準値（平均線長）から±０．５ｍｍ以内の等長配線』であることを意味している。なお、「等長」とは、線長条件を遵守する範囲の線長は線長制約条件を満たすことを意味している。
【００１５】
また、線長制約条件において、パス名は、線長制約条件で規定された配線パスの名称である。ここでは、バス１０３を構成する７本の配線パスの名称（ｐａｔｈ１〜ｐａｔｈ７）となる。
【００１６】
基準値とは、線長制約条件に規定されている配線パス（ここでは、ｐａｔｈ１〜ｐａｔｈ７）の基準となる情報である。基準値には、たとえば、線長制約条件に規定されている配線パスから選ばれた特定の配線パスの線長や線長制約条件に規定されている配線パスの平均線長が用いられる。ここでは、平均線長を基準値としている。
【００１７】
違反値とは、線長制約条件の基準値の範囲より短い場合は不足している線長を、長い場合は超過している線長をいう。具体的には、任意の配線パスについて、線長が基準値よりも大きい場合は、配線パスの線長から等長となる上限線長を引いた正の値が違反線長となる。一方、線長が基準値より小さい場合は、配線パスの線長から等長となる下限線長を引いた負の値が違反線長となる。なお、配線パスの線長が等長（上限線長と下限線長との間の長さ）である場合は、線長制約条件を遵守していることとなる。
【００１８】
たとえば、ｐａｔｈ１の線長は、１３０．０００［ｍｍ］、基準値は１２１．７１４［ｍｍ］である。したがって、ｐａｔｈ１の線長１３０．０００［ｍｍ］から、上限線長である１２２．２１４［ｍｍ］（＝１２１．７１４［ｍｍ］＋０．５［ｍｍ］）を減算すると、＋８．７８６［ｍｍ］（＞０）となる。したがって、ｐａｔｈ１の線長は、８．７８６［ｍｍ］の長さ分超過していることとなる。
【００１９】
また、ｐａｔｈ４の線長は、１２０．０００［ｍｍ］、基準値は１２１．７１４［ｍｍ］である。したがって、ｐａｔｈ４の線長１２０．０００［ｍｍ］から、下限線長である１２１．２１４［ｍｍ］（＝１２１．７１４［ｍｍ］−０．５［ｍｍ］）を減算すると、−１．２１４［ｍｍ］（＜０）となる。したがって、ｐａｔｈ４の線長は、１．２１４［ｍｍ］の長さ分不足していることとなる。
【００２０】
（Ｂ）の状態から、配線パスの配線パターンごとに、違反値の線長（以下、「違反線長」）分配線パターンに描画色を施してエラー表示とすることで、（Ｃ）の状態となる。描画する場合、違反値の正負によって描画色を異ならせる。なお、エラー表示がない配線パターンは、線長制約条件を遵守している配線パスである。
【００２１】
このように、表示例１では、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く／長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
【００２２】
＜表示例２＞
図２は、表示例２を示す説明図である。表示例１は違反値の正負により描画色を異ならせた表示例であるが、表示例２は、図１の（Ｂ）の状態から、配線パスの配線パターンごとに、違反線長分配線パターンの線幅を異ならせる表示例である。
【００２３】
図２では、一例として違反値が正（超過）の場合は違反線長分配線パターンの線幅を細くし、違反値が負（不足）の場合は違反線長分配線パターンの線幅を太くする。なお、図示はされていないが、配線パターンの線幅がすべて一定の配線パターンは、線長制約条件を遵守している配線パスである。
【００２４】
このように、表示例２では、表示例１と同様、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く／長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
【００２５】
＜表示例３＞
図３は、表示例３を示す説明図である。表示例１は違反値の正負により描画色を異ならせた表示例であるが、表示例３は、図１の（Ｂ）の状態から、配線パスの配線パターンごとに、違反線長分配線パターンの線種を異ならせる表示例である。
【００２６】
図３では、一例として違反値が正（超過）の場合は違反線長分配線パターンの線種を点線とし、違反値が負（不足）の場合は違反線長分配線パターンの線種を斜線を施した線とする。なお、図示はされていないが、配線パターンの線幅がすべて一定の配線パターンは、線長制約条件を遵守している配線パスである。
【００２７】
このように、表示例３では、表示例１と同様、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く／長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
【００２８】
＜表示例４＞
図４は、表示例４を示す説明図である。表示例１は違反値の正負により描画色を異ならせた表示例であるが、表示例４は、図１の（Ｂ）の状態から、配線パスの配線パターンごとに、違反線長分配線パターンの図形を異ならせる表示例である。
【００２９】
図４では、一例として違反値が正（超過）の場合は違反線長分配線パターンの図形をハッチングを施した細長丸図形とし、違反値が負（不足）の場合は違反線長分配線パターンの図形を太長丸図形とする。なお、図示はされていないが、配線パターンの線幅がすべて一定の配線パターンは、線長制約条件を遵守している配線パスである。
【００３０】
このように、表示例４では、表示例１と同様、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く／長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
【００３１】
＜表示例５＞
図５は、表示例５を示す説明図である。表示例１は違反値の正負により描画色を異ならせた表示例であるが、表示例５は、図１の（Ｂ）の状態から、配線パスの配線パターンごとに、配線パターンの違反線長に応じた色に描画する表示例である。
【００３２】
図５では、一例として、違反線長ＬがＬ＞２．０［ｍｍ］、１．０［ｍｍ］＜Ｌ≦２．０［ｍｍ］、０．０［ｍｍ］＜Ｌ≦１．０［ｍｍ］、許容範囲（違反無し）、−１．０［ｍｍ］≦Ｌ＜０．０［ｍｍ］、−２．０［ｍｍ］≦Ｌ＜−１．０［ｍｍ］、Ｌ＜−２．０［ｍｍ］ごとに色が異なるように描画する。許容範囲に応じた描画色は、線長制約条件を遵守している配線パスである。
【００３３】
このように、表示例５では、表示例１と同様、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く／長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
【００３４】
＜表示例６＞
図６は、表示例６を示す説明図である。表示例１において、線長制約条件において特定の配線パスが基準パスとなっている場合、基準パスの配線パターンを他の違反パスの配線パターンとは異なる色で描画する。図６では、ｐａｔｈ１の配線パターンが基準パスの配線パターンとなる。
【００３５】
このように、表示例６では、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、基準パスまたは違反パスをあとどれだけ短く／長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
【００３６】
＜表示例７＞
図７は、表示例７を示す説明図である。表示例１は、トポロジ１００のドライバ１０１−レシーバ１０２間にダンピング抵抗が挿入されていない例であるが、表示例７は、トポロジ７００のドライバ１０１−レシーバ１０２間の経路１０３にダンピング抵抗７０１が挿入された例である。すなわち、ダンピング抵抗７０１は、ドライバ１０１の近くに実装される。したがって、線長調整（長くする）する場合、ドライバ１０１とダンピング抵抗７０１の間の経路７０２ではなく、ダンピング抵抗７０１とレシーバ１０２との間の経路７０３で調整することとなる。
【００３７】
したがって、表示例７では、ダンピング抵抗７０１が挿入されている場合にトポロジ７００から線長調整すべき経路７０３を抽出し、抽出経路７０３に相当する配線パターンに対し、表示例１に示したように違反線長の描画を施すことになる。
【００３８】
このように、表示例７では、表示例１と同様、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く／長くすれば等長にできそうかということを直感的に把握することができる。また、線長調整すべき経路に違反線長を描画することで、設計者は、どこで線長調整すべきかを考える必要がなく、線長調整のパターン編集に専念することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
【００３９】
＜表示例８＞
図８は、表示例８を示す説明図である。表示例８は画面の拡大／縮小に応じて違反線長を表示する例である。たとえば、図８に示したレイアウトのうち、矩形で示した対象領域８００に拡大して違反線長を表示する。すなわち、表示例８では、画面のサイズにかかわらず、各配線パターンの違反線長を把握することができるため、画面がどのようなサイズであっても、画面内において、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く／長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
【００４０】
＜表示例９＞
図９は、表示例９を示す説明図である。表示例１や表示例７は、違反線長を線長調整すべき経路に表示させた例であるが、表示例９は、ユーザ操作の選択範囲９００内で違反線長を表示する例である。表示例９では、選択範囲９００内において、どの配線パスに線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く／長くすれば等長にできそうかということを直感的に把握することができる。このため、線長制約条件に合うように配線パターンを効率的に編集することができる。
【００４１】
＜表示例１０＞
図１０は、表示例１０を示す説明図である。表示例１〜表示例９では、線長制約条件が１つの場合を例にして説明したが、表示例１０は、線長制約条件が複数（図１０では、条件１〜条件４の４つ）ある場合の表示例を示している。たとえば、条件１は、クロックおよびデータ（差動ペア）の配線パスを等長にする線長制約条件を示しており、条件２〜条件４は、差動ペアのペアネット間の配線パスを等長にする線長制約条件を示している。
【００４２】
表示例１０では、表示例８のように対象領域を拡大した場合、拡大後の画面サイズに応じて配線パターンを線幅方向に分割して、複数の線長制約条件に応じた違反線長を表示する。配線パターンの線幅方向の分割数は、画面サイズに依存するため、分割数が制限されて全線長制約条件分割り当てられない場合がある。この場合は、線長制約条件の優先順位に従って割り当てることとする。このように、表示例１０では、複数個の線長制約条件の違反線長を同一画面で同時に確認することができる。
【００４３】
このように、表示例１０では、どの配線パスにどの程度の線長制約違反があるか、線長制約違反がある場合には、どのくらい違反しているのか、または、その違反が超過なのか不足なのかを、設計者に対して一つにまとめて示すことができる。したがって、設計者は、それぞれの配線パスをあとどれだけ短く／長くすれば等長にできそうかということを直感的に把握することができる。このため、複数の線長制約条件に合うように配線パターンを効率的に編集することができる。
【００４４】
＜表示例１１＞
図１１は、表示例１１を示すブロック図である。表示例１１では、違反線長の計算において先に線長調整が終了していることが前提となるケースにおいて、先に線長調整が必要な区間の配線パターンの線長調整が終了していなくても、線長調整が終えたと仮定したときの線長を計算で求める。その計算結果を用いて、違反線長を計算する。
【００４５】
具体的には、たとえば、図１１に示したトポロジ１１００において、ドライバ１０１〜レシーバ１０２間の経路７０２，７０３の線長制約条件を「条件１」、ドライバ１０１〜レシーバ１１０３間の経路１１０１の線長制約条件を「条件２」とする。条件２の違反線長を計算する場合、条件１での配線パスが等長にできたものとして計算する。すなわち、条件１での線長調整が終了していなくても、条件１の違反線長の長さを加算し、条件２の違反線長を計算することとなる。そして、レシーバ１０２〜レシーバ１１０３間の経路１１０２において、線長調整をおこなう。
【００４６】
このように、表示例１１では、前段の線長調整が終了していなくても、複数の線長制約条件の違反線長を同時に確認することができるため、線長調整の効率化を図ることができる。
【００４７】
＜表示例１２＞
図１２は、表示例１２を示す説明図である。表示例１２では、配線パスが配線パターンとして形成されていない状態でも、違反線長を表示する例である。具体的には、配線パスの接続情報（たとえば、ラッツネット１２０１）から仮経路（たとえば、マンハッタン経路１２０２）を求め、それぞれの配線パスの仮経路の線長を求める。そして、仮経路の線長から違反線長を求めて仮経路上に表示する。このように、表示例１２によれば、詳細な配線をしなくても、概略の違反線長を予測することができ、線長調整の効率化を図ることができる。
【００４８】
＜表示例１３＞
図１３は、表示例１３を示す説明図である。表示例１３は、表示例１〜表示例１２の少なくともいずれか２つを組み合わせた表示例である。図１３においては、対象領域８００を拡大表示する場合、対象領域８００からはみ出した違反線長は、表示画面１３００内で表現できない場合がある。この場合、線幅などを変更して重ねて表示することで、はみ出した違反線長も含めて違反線長の全長を表現することができる。
【００４９】
（設計支援装置のハードウェア構成）
図１４は、実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。図１４において、設計支援装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１４０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）１４０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１４０３と、磁気ディスクドライブ１４０４と、磁気ディスク１４０５と、光ディスクドライブ１４０６と、光ディスク１４０７と、ディスプレイ１４０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１４０９と、キーボード１４１０と、マウス１４１１と、スキャナ１４１２と、プリンタ１４１３と、を備えている。また、各構成部はバス１４００によってそれぞれ接続されている。
【００５０】
ここで、ＣＰＵ１４０１は、設計支援装置の全体の制御を司る。ＲＯＭ１４０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１４０３は、ＣＰＵ１４０１のワークエリアとして使用される。磁気ディスクドライブ１４０４は、ＣＰＵ１４０１の制御にしたがって磁気ディスク１４０５に対するデータのリード／ライトを制御する。磁気ディスク１４０５は、磁気ディスクドライブ１４０４の制御で書き込まれたデータを記憶する。
【００５１】
光ディスクドライブ１４０６は、ＣＰＵ１４０１の制御にしたがって光ディスク１４０７に対するデータのリード／ライトを制御する。光ディスク１４０７は、光ディスクドライブ１４０６の制御で書き込まれたデータを記憶したり、光ディスク１４０７に記憶されたデータをコンピュータに読み取らせたりする。
【００５２】
ディスプレイ１４０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１４０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００５３】
インターフェース（以下、「Ｉ／Ｆ」と略する。）１４０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク１４１４に接続され、このネットワーク１４１４を介して他の装置に接続される。そして、Ｉ／Ｆ１４０９は、ネットワーク１４１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１４０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００５４】
キーボード１４１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１４１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００５５】
スキャナ１４１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ１４１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ１４１３は、画像データや文書データを印刷する。プリンタ１４１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００５６】
（テーブルの記憶内容）
つぎに、本実施の形態で利用する各種テーブルの記憶内容について、図１５〜図２５を用いて説明する。以下のテーブルは、具体的には、たとえば、図１４に示したＲＯＭ１４０２、ＲＡＭ１４０３、磁気ディスクドライブ１４０４および磁気ディスク１４０５、光ディスクドライブ１４０６および光ディスク１４０７などの記憶装置によりその機能を実現する。
【００５７】
図１５は、ネットテーブル１５００の記憶内容の一例を示す説明図である。ネットテーブル１５００とは、ネットごとに、ネットを特定するネット番号とネット名とを対応付けたテーブルである。
【００５８】
図１６は、ランド形状テーブル１６００の記憶内容の一例を示す説明図である。ランド形状テーブル１６００とは、ランドごとに、ランドを特定するランド形状番号とランドの形状情報とを対応付けたテーブルである。形状情報とは、形状を特定する情報であり、たとえば、ランドの形状が矩形である場合、矩形（を示す識別子）と対角となる２つの頂点座標となる。また、ランドの形状が円である場合、円（を示す識別子）と中心座標と半径となる。
【００５９】
図１７は、部品ピンテーブル１７００の記憶内容の一例を示す説明図である。部品ピンテーブル１７００とは、部品ピンごとに、部品ピンを特定する部品ピン番号、部品ピンが属するネットのネット番号、部品ピンの座標位置、部品ピンが配置される階層番号、該当するランド形状番号を対応付けたテーブルである。
【００６０】
図１８は、ビアテーブル１８００の記憶内容の一例を示す説明図である。ビアテーブル１８００とは、ビアごとに、ビアを特定するビア番号、ビアが属するネットのネット番号、ビアの座標位置、ビアが配置される階層番号、該当するランド形状番号を対応付けたテーブルである。
【００６１】
図１９は、ラインテーブル１９００の記憶内容の一例を示す説明図である。ラインテーブル１９００とは、ラインごとに、ラインを特定するライン番号、ラインが属するネットのネット番号、ラインのＦｒｏｍ−Ｔｏ座標位置、ラインの線幅、ラインが配線される階層番号を対応付けたテーブルである。ラインの線幅に従って描画すると配線パターンとなる。
【００６２】
図２０は、線長制約条件テーブル２０００の記憶内容の一例を示す説明図である。線長制約条件テーブル２０００とは、線長制約条件ごとに、線長制約条件を特定する制約条件番号、線長条件情報、線長基準情報、配線パス番号リスト、表示制御番号を対応付けたテーブルである。線長条件情報とは、線長制約条件が許容する範囲を示しており、線長条件情報を遵守する配線パスは基準パス、違反する配線パスは違反パスとなる。
【００６３】
制約条件番号は、図１または図１０に示した条件名に対応する。線長基準情報とは、制約対象となる配線パスの基準を示す情報である。たとえば、特定の配線パスを基準とする場合、当該配線パスの配線パス番号（たとえば、配線パス番号２）が設定される。この場合、配線パス番号で特定される配線パスが基準パスとなる。また、制約対象となる配線パスの平均線長を線長基準情報としてもよい。線長基準情報で得られた値が、図１または図１０に示した線長制約条件の基準値に相当する。
【００６４】
また、配線パス番号リストとは、その線長制約条件が課される配線パスを特定する配線パス番号を列挙したリストである。線長基準情報は、配線パス番号リストに基づいて設定される。たとえば、特定の配線パス番号を線長基準情報とする場合、配線パス番号リストの中から選ばれる。同様に、配線パスの平均線長の場合、配線パス番号リストにより特定される配線パス群の平均線長となる。
【００６５】
図２１は、配線パステーブル２１００の記憶内容の一例を示す説明図である。配線パステーブル２１００とは、配線パスごとに、配線パスを特定する配線パス番号、配線接続順要素リスト、線長、線長判定情報とを対応付けたテーブルである。
【００６６】
配線パス番号は、図１または図１０に示した線長制約条件内のパス名に対応する。配線接続順要素リストとは、部品ピンやビアなどの配線要素を接続順に羅列したリストである。線長とは、配線パスの線長であり、図１または図１０に示した線長制約条件内の線長に相当する。線長判定情報は、配線パスが線長制約条件を遵守したか違反したかの判定結果を示す情報である。「ＯＫ」である場合は、線長制約条件を遵守しており、数値である場合は、違反していることを示す。数値である場合、正の値であるときは、超過をあらわし、負の値であるときは、不足をあらわす。
【００６７】
図２２は、表示パステーブル２２００の記憶内容の一例を示す説明図である。表示パステーブル２２００とは、表示パスごとに、線長番号、論理線長、仮線長、仮線長判定情報、表示区間番号リスト、同一パスリスト、親パス番号を対応付けた作業テーブルである。表示パスとは、配線パスのうち違反線長分のエラー表示の対象となるパスである。
【００６８】
線長番号は、図２１に示した配線パステーブル２１００の同一の配線パス番号に対応する。論理線長とは、表示パスに未配線区間がある場合に計算される線長である。仮線長とは、表示パスとなる配線パスの線長に対し、配線パステーブル２１００の線長判定情報で得られた線長を考慮して計算された表示パスの仮の線長である。
【００６９】
仮線長判定情報とは、表示パスの仮線長が線長制約条件を遵守したか違反したかの判定結果を示す情報である。「ＯＫ」である場合は、線長制約条件を遵守しており、数値である場合は、違反していることを示す。数値である場合、正の値であるときは、超過をあらわし、負の値であるときは、不足をあらわす。
【００７０】
表示区間番号リストとは、表示区間テーブル２３００の表示区間番号を列挙した情報である。これにより、表示パスは列挙した番号順の表示区間を有することとなる。同一パスリストとは、その表示パスと制約条件は異なるが配線接続順要素リストが同一となる配線パスの配線パス番号を列挙した情報である。親パス番号とは、その表示パスの親パスとなる配線パス番号である。親パスとは、その表示パスとドライバが共通し、表示パスを包含する配線パスの中で最短の配線パスをいう。
【００７１】
図２３は、表示区間テーブル２３００の記憶内容の一例を示す説明図である。表示区間テーブル２３００は、表示区間ごとに、表示区間を特定する表示区間番号、区間色、区間線幅、線種、図形種類、表示区間を対応付けた作業テーブルである。表示区間とは、対象となる経路であり、たとえば、ドライバ１０１とダンピング抵抗７０１との間の経路７０２である。区間色とは、表示区間の描画色である。区間線幅とは、表示区間に描画される違反線長分の線幅である。線種とは表示区間に描画される違反線長分の線の種類である。図形種類とは、表示区間に描画される違反線長分の図形種類である。
【００７２】
図２４は、表示制御テーブル２４００の記憶内容の一例を示す説明図である。表示制御テーブル２４００とは、表示制御内容ごとに、表示制御内容を特定する表示制御番号、表示制御内容の詳細をあらわす表示方法番号リスト、違反線長となるエラー表示領域を対応付けたテーブルである。表示制御内容とは、どこにどのように違反線長のエラー表示をおこなうかを決定する情報である。表示方法番号リストとは、表示方法を特定する番号を列挙したリストである。表示方法については、図２５において説明する。エラー表示領域とは、エラー表示させる領域を特定する領域を示している。
【００７３】
図２５は、表示方法テーブル２５００の記憶内容の一例を示す説明図である。表示方法テーブル２５００とは、表示方法ごとに、表示方法を特定する表示方法番号と表示方法とを対応付けたテーブルである。なお、本例では、表示方法番号は、図１〜図１３に示した表示例１〜表示例１３の番号（表示例＃）に対応している。
【００７４】
（設計支援処理手順）
つぎに、本実施の形態にかかる設計支援処理手順について説明する。
【００７５】
図２６は、本実施の形態にかかる設計支援処理手順を示すフローチャートである。まず、作業テーブルを初期化する（ステップＳ２６０１）。作業テーブルとは、表示パステーブル２２００と表示区間テーブル２３００である。具体的には、表示パステーブル２２００および表示区間テーブル２３００の項目をすべて未定義にする。
【００７６】
つぎに、論理経路配線長算出処理（ステップＳ２６０２）、制約条件解釈処理（ステップＳ２６０３）、仮線長判定処理（ステップＳ２６０４）、表示区間決定処理（ステップＳ２６０５）、区間表示処理（ステップＳ２６０６）を実行する。これにより、一連の処理を終了する。つぎに、ステップＳ２６０２〜Ｓ２６０６の詳細な処理手順について説明する。
【００７７】
図２７は、図２６に示した論理経路配線長算出処理（ステップＳ２６０２）の詳細な処理手順を示すフローチャートである。論理経路配線長算出処理（ステップＳ２６０２）は、図２２に示した表示パステーブル２２００の「論理線長」項目を設定する処理である。したがって、表示例１２の表示処理を実行する場合にのみ実行する。
【００７８】
まず、制約条件番号ＣａをＣａ＝１とし（ステップＳ２７０１）、Ｃａ＞Ｎｃｏｄ（線長制約条件の総数）であるか否かを判断する（ステップＳ２７０２）。Ｃａ＞Ｎｃｏｄでない場合（ステップＳ２７０２：Ｎｏ）、リストのインデックス番号ＰＩをＰＩ＝１とする（ステップＳ２７０３）。そして、ＰＩが制約条件Ｃａの配線パス番号リストの値の個数より大きいか否かを判断する（ステップＳ２７０４）。
【００７９】
ＰＩが配線パス番号リストの値の個数以下の場合（ステップＳ２７０４：Ｎｏ）、配線パス番号リストのＰＩ番目の値ＰａをＰａ＝１とする（ステップＳ２７０５）。そして、配線パスＰａの配線が完了したか否かを判断する（ステップＳ２７０６）。すなわち、配線パスＰａが配線パターンとして描画されたか否かを判断する。
【００８０】
完了した場合（ステップＳ２７０６：Ｙｅｓ）、ステップＳ２７１２に移行する。一方、完了していない場合（ステップＳ２７０６：Ｎｏ）、配線パステーブル２１００を参照して、配線パスＰａの既配線区間線長Ｌａを抽出する（ステップＳ２７０７）。つぎに、配線パステーブル２１００を参照して、配線パスＰａの未結線区間Ｐｂを抽出する（ステップＳ２７０８）。
【００８１】
たとえば、Ｐａ＝１である場合、部品ピン１からビア１まで配線されている場合には、部品ピン１からビア１までの経路長を配線パスＰａの既配線区間線長Ｌａとして算出する。そして、ビア１から部品ピン８までが未結線となるため、ビア１から部品ピン８までの経路を配線パスＰａの未結線区間Ｐｂとして抽出する。そして、抽出された未結線区間Ｐｂのマンハッタン長Ｌｂを算出する（ステップＳ２７０９）。
【００８２】
このあと、既配線区間線長Ｌａと未結線区間Ｐｂのマンハッタン長Ｌｂとを合計することで、配線パスＰａの論理線長Ｌａｂとする（ステップＳ２７１０）。そして、表示パステーブル２２００の配線パス番号Ｐａのレコードに、論理線長Ｌａｂを書き込む（ステップＳ２７１１）。このようにして、配線パスＰａごとに論理線長Ｌａｂを表示パステーブル２２００に設定することができる。
【００８３】
このあと、ステップＳ２７１２において、ＰＩをインクリメントして（ステップＳ２７１２）、ステップＳ２７０４に戻る。そして、ステップＳ２７０４において、大きい場合（ステップＳ２７０４：Ｙｅｓ）、制約条件番号Ｃａをインクリメントして（ステップＳ２７１３）、Ｃａ＞Ｎｃｏｄ（線長制約条件の総数）であるか否かを判断する（ステップＳ２７０２）。
【００８４】
Ｃａ＞Ｎｃｏｄである場合（ステップＳ２７０２：Ｙｅｓ）、論理経路配線長算出処理（ステップＳ２６０２）が完了し、制約条件解釈処理（ステップＳ２６０３）に移行する。
【００８５】
図２８〜図３０は、図２６に示した制約条件解釈処理（ステップＳ２６０３）の詳細な処理手順を示すフローチャートである。制約条件解釈処理（ステップＳ２６０３）は、表示パステーブル２２００の「同一パスリスト」項目、「パス番号リスト」項目、および「仮線長」項目を設定する処理である。したがって、表示例１０や表示例１１の表示処理を実行する場合にのみ実行する。
【００８６】
まず、図２８において、第１の制約条件番号Ｃ１をＣ１＝１とし（ステップＳ２８０１）、Ｃ１＞Ｎｃｏｄ（線長制約条件の総数）であるか否かを判断する（ステップＳ２８０２）。Ｃ１＞Ｎｃｏｄである場合（ステップＳ２８０２：Ｙｅｓ）、図３０のステップＳ３００１に移行する。
【００８７】
一方、Ｃ１＞Ｎｃｏｄでない場合（ステップＳ２８０２：Ｎｏ）、線長制約条件テーブル２０００の制約条件Ｃ１の配線パス番号リストに、未選択の配線パス番号があるか否かを判断する（ステップＳ２８０３）。未選択の配線パス番号がある場合（ステップＳ２８０３：Ｙｅｓ）、未選択の配線パス番号をＰ１として抽出する（ステップＳ２８０４）。
【００８８】
そして、図２９のステップＳ２９００に移行する。一方、ステップＳ２８０３において、未選択の配線パス番号がない場合（ステップＳ２８０３：Ｎｏ）、第１の制約条件番号Ｃ１をインクリメントして（ステップＳ２８０５）、ステップＳ２８０２に戻る。
【００８９】
つぎに、図２９において、第２の制約条件番号Ｃ２をＣ２＝１とし（ステップＳ２９００）、Ｃ２＞Ｎｃｏｄ（線長制約条件の総数）であるか否かを判断する（ステップＳ２９０１）。Ｃ２＞Ｎｃｏｄである場合（ステップＳ２９０１：Ｙｅｓ）、図２８のステップＳ２８０３に戻る。
【００９０】
一方、Ｃ２＞Ｎｃｏｄでない場合（ステップＳ２９０１：Ｎｏ）、線長制約条件テーブル２０００の制約条件Ｃ２の配線パス番号リストに、未選択の配線パス番号があるか否かを判断する（ステップＳ２９０２）。未選択の配線パス番号がある場合（ステップＳ２９０２：Ｙｅｓ）、未選択の配線パス番号をＰ２として抽出する（ステップＳ２９０３）。
【００９１】
そして、Ｃ１≠Ｃ２でかつＰ１＝Ｐ２であるか否かを判断する（ステップＳ２９０４）。すなわち、同一配線パスにつき、２つ（Ｃ１およびＣ２）の線長制約条件があるかを判断する。Ｃ１≠Ｃ２でかつＰ１＝Ｐ２でない場合（ステップＳ２９０４：Ｎｏ）、ステップＳ２９０６に移行する。一方、Ｃ１≠Ｃ２でかつＰ１＝Ｐ２である場合（ステップＳ２９０４：Ｙｅｓ）、配線パスＰ１（＝Ｐ２）の同一パスリストを更新する（ステップＳ２９０５）。具体的には、表示パステーブル２２００において、配線パス番号Ｐ１に対応する線長番号Ｐ１のレコードの同一パスリストに、配線パス番号Ｐ１（＝Ｐ２）を書き込む。
【００９２】
そして、Ｃ１≠Ｃ２でかつＰ１⊂Ｐ２であるか否かを判断する（ステップＳ２９０６）。すなわち、線長制約条件が異なる場合に、配線パスＰ１が配線パスＰ２の一部であるか否かを判断する。Ｃ１≠Ｃ２でかつＰ１⊂Ｐ２でない場合（ステップＳ２９０６：Ｎｏ）、ステップＳ２９０２に戻る。一方、Ｃ１≠Ｃ２でかつＰ１⊂Ｐ２である場合（ステップＳ２９０６：Ｙｅｓ）、配線パスＰ１，Ｐ２の親パス番号を収集して配線パス集合Ｍ１を設定する（ステップＳ２９０７）。
【００９３】
ステップＳ２９０７では、親パス番号が未定義の場合、配線パス集合Ｍ１をＭ１＝｛Ｐ１，Ｐ２｝とする。また、配線パスＰ１，Ｐ２に親パスがある場合、配線パス集合Ｍ１にその親パスを含めることとなる。
【００９４】
そして、配線パス集合Ｍ１の配線パスの並びを線長が短い順にソートし（ステップＳ２９０８）、ソート後の配線パス集合Ｍ１から親パス番号を特定して、表示パステーブル２２００を更新する（ステップＳ２９０９）。そして、ステップＳ２９０２に戻る。一方、ステップＳ２９０２において、未選択の配線パス番号がない場合（ステップＳ２９０２：Ｎｏ）、第２の制約条件番号Ｃ２をインクリメントして（ステップＳ２９１０）、ステップＳ２９０１に戻る。
【００９５】
また、図２８において、Ｃ１＞Ｎｃｏｄである場合（ステップＳ２８０２：Ｙｅｓ）、図３０のステップＳ３００１に移行する。ステップＳ３００１において、配線パス番号Ｐ３をＰ３＝１とし（ステップＳ３００１）、Ｐ３＞Ｎｐｔｈであるか否かを判断する（ステップＳ３００２）。Ｐ３＞Ｎｐｔｈでない場合（ステップＳ３００２：Ｎｏ）、配線パスＰ３に親パスがあるか否かを判断する（ステップＳ３００３）。
【００９６】
親パスがある場合（ステップＳ３００３：Ｙｅｓ）、親パスの仮線長を算出し（ステップＳ３００４）、ステップＳ３００５に移行する。一方、親パスがない場合（ステップＳ３００３：Ｎｏ）、ステップＳ３００５に移行する。ステップＳ３００５では、配線パス番号Ｐ３をインクリメントし（ステップＳ３００５）、ステップＳ３００２に移行する。そして、Ｐ３＞Ｎｐｔｈである場合（ステップＳ３００２：Ｙｅｓ）、制約条件解釈処理（ステップＳ２６０３）が完了し、仮線長判定処理（ステップＳ２６０４）に移行する。
【００９７】
ここで、制約条件解釈処理（ステップＳ２６０３）の具体例について説明する。まず、表示パステーブル２２００の親パス番号の更新例について図３１〜図３３を用いて説明する。
【００９８】
図３１は、表示パステーブル２２００の親パス番号の更新例を説明するためのトポロジの一例を示す説明図であり、図３２は、図３１のトポロジに応じた配線パステーブル２１００の記憶内容を示す説明図であり、図３３は、表示パステーブル２２００の更新例を示す説明図である。なお、配線パステーブル２１００と表示パステーブル２２００については、項目を一部抜粋している。図３３の（Ａ）は、表示パステーブル２２００の初期状態を示している。
【００９９】
まず、Ｐ１＝１、Ｐ２＝２の場合、表示パステーブル２２００を参照すると、配線パス番号１（＝Ｐ１）に対応する線長番号１の親パス番号は未定義である。同様に、配線パス番号２（＝Ｐ２）に対応する線長番号２の親パス番号も未定義である。したがって、配線パス集合Ｍ１は、Ｍ１＝｛Ｐ１，Ｐ２｝＝｛１，２｝となる。
【０１００】
そして、配線パス集合Ｍ１を線長の短い順にソートすると、Ｍ１＝｛Ｐ１，Ｐ２｝＝｛１，２｝となる。配線パス集合Ｍ１内の並びで、隣接する配線パス番号のうち、右側の番号が左側の番号の親となる。したがって、配線パス番号１の親パスは配線パス番号２となる。これにより、図３３の（Ｂ）に示したように、表示パステーブル２２００の配線パス番号１に対応する線長番号１の親パス番号に「２」が書き込まれる。
【０１０１】
つぎに、Ｐ１＝１、Ｐ２＝３となった場合、配線パス集合Ｍ１としてＰ１，Ｐ３のほか、Ｐ１の親パス番号２を図３３の（Ｂ）の表示パステーブル２２００から引く。これにより、配線パス集合Ｍ１＝｛Ｐ１，Ｐ３，Ｐ２｝＝｛１，３，２｝となる。
【０１０２】
そして、配線パス集合Ｍ１を線長の短い順にソートすると、Ｍ１＝｛１，２，３｝となる。配線パス集合Ｍ１内の並びで、隣接する配線パス番号のうち、右側の番号が左側の番号の親となる。したがって、配線パス番号２の親パスは配線パス番号３となる。これにより、図３３の（Ｃ）に示したように、表示パステーブル２２００の配線パス番号２に対応する線長番号２の親パス番号に「３」が書き込まれる。
【０１０３】
このあと、ステップＳ３００４に示したように、親パスの仮線長を求める。配線パス番号Ｐ３＝１の場合、配線パスＰ３（＝１）の親パス番号は「２」であるため、親パス番号２である配線パス番号２の線長「１３０００」から配線パスＰ３（＝１）の線長判定情報「−１０００」を引くことにより、配線パス番号（線長番号）２の仮線長「１４０００（＝１３０００−（−１０００））」を求めることができる。そして、図３３の（Ｄ）に示したように、線長番号２の仮線長に「１４０００」を書き込む。
【０１０４】
つぎに、配線パス番号Ｐ３＝２の場合、配線パスＰ３（＝２）の親パス番号は「３」であるため、親パス番号３である配線パス番号３の線長「１７０００」から配線パスＰ３（＝２）の線長判定情報「−２０００」を引くことにより、配線パス番号（線長番号）３の仮線長「１９０００（＝１７０００−（−２０００））」を求めることができる。そして、図３３の（Ｅ）に示したように、線長番号３の仮線長に「１９０００」を書き込む。
【０１０５】
なお、この例では、仮線長が未定義であるため、配線パステーブル２１００の線長を適用したが、表示パステーブル２２００において論理線長が設定されている場合には、線長にかえて論理線長を用いる。また、すでに仮線長が得られている場合は、線長判定情報を使わずに仮線長をそのまま設定する。
【０１０６】
図３４は、図２６に示した仮線長判定処理（ステップＳ２６０４）の詳細な処理手順を示すフローチャートである。仮線長判定処理（ステップＳ２６０４）では、表示パステーブル２２００の「仮線長判定情報」項目を設定する処理である。したがって、表示例１１や表示例１２の表示処理を実行する場合にのみ実行する。
【０１０７】
まず、制約条件番号ＣをＣ＝１とし（ステップＳ３４０１）、Ｃ＞Ｎｃｏｄ（線長制約条件の総数）であるか否かを判断する（ステップＳ３４０２）。Ｃ＞Ｎｃｏｄでない場合（ステップＳ３４０２：Ｎｏ）、制約条件番号Ｃの配線パス番号リストに未選択の配線パス番号があるか否かを判断する（ステップＳ３４０３）。未選択の配線パス番号がない場合（ステップＳ３４０３：Ｎｏ）、制約条件番号Ｃをインクリメントし（ステップＳ３４０４）、ステップＳ３４０２に戻る。
【０１０８】
そして、ステップＳ３４０２において、Ｃ＞Ｎｃｏｄ（線長制約条件の総数）である場合（ステップＳ３４０２：Ｙｅｓ）、ステップＳ２６０５に移行する。一方、未選択の配線パス番号がある場合（ステップＳ３４０３：Ｙｅｓ）、制約条件Ｃの基準値ＣＳを算出する（ステップＳ３４０５）。具体的には、線長制約条件テーブル２０００の線長基準情報を参照して、基準値ＣＳ（特定の配線パスの線長、制約対象の配線パスの平均線長）を算出する。
【０１０９】
このあと、ステップＳ３４０３での未選択の配線パス番号Ｐを抽出する（ステップＳ３４０６）。そして、表示パステーブル２２００において、選択された配線パス番号Ｐ（＝線長番号Ｐ）の仮線長が未定義か否かを判断する（ステップＳ３４０７）。未定義でない場合（ステップＳ３４０７：Ｎｏ）、配線パス番号Ｐの仮線長を比較対象線長ＬＰに設定して（ステップＳ３４０８）、ステップＳ３４１２に移行する。
【０１１０】
一方、選択された配線パス番号Ｐ（＝線長番号Ｐ）の仮線長が未定義である場合（ステップＳ３４０７：Ｙｅｓ）、選択された配線パス番号Ｐ（＝線長番号Ｐ）の論理線長が未定義であるか否かを判断する（ステップＳ３４０９）。未定義でない場合（ステップＳ３４０９：Ｎｏ）、配線パス番号Ｐの論理線長を比較対象線長ＬＰに設定して（ステップＳ３４１０）、ステップＳ３４１２に移行する。
【０１１１】
一方、選択された配線パス番号Ｐ（＝線長番号Ｐ）の論理線長が未定義である場合（ステップＳ３４０９：Ｙｅｓ）、配線パス番号Ｐの線長を比較対象線長ＬＰに設定して（ステップＳ３４１１）、ステップＳ３４１２に移行する。
【０１１２】
ステップＳ３４１２では、仮線長判定情報ＨをＨ＝ＬＰ−ＣＳを計算することで求める。そして、求めた仮線長判定情報Ｈを、表示パステーブル２２００の配線パス番号Ｐ（＝線長番号Ｐ）のレコードに書き込み（ステップＳ３４１３）、ステップＳ３４０３に戻る。
【０１１３】
図３５は、仮線長判定情報が書き込まれた表示パステーブル２２００を示す説明図である。図３５の表示パステーブル２２００は、図３３の（Ｅ）に示した状態からの更新例である。たとえば、Ｐ＝３の基準値は、「２００００」であるため、仮線長「１９０００」は「１０００」不足している。したがって、仮線長判定情報Ｈ＝−１０００となる。
【０１１４】
また、図３４に戻り、ステップＳ３４０２において、Ｃ＞Ｎｃｏｄである場合（ステップＳ３４０２：Ｙｅｓ）、仮線長判定処理（ステップＳ２６０４）を完了し、表示区間決定処理（ステップＳ２６０５）に移行する。
【０１１５】
図３６は、図２６に示した表示区間決定処理（ステップＳ２６０５）の詳細な処理手順を示すフローチャートである。表示区間決定処理（ステップＳ２６０５）は、表示区間テーブル２３００を作成する処理である。
【０１１６】
まず、制約条件番号ＣをＣ＝１とし（ステップＳ３６０１）、Ｃ＞Ｎｃｏｄ（線長制約条件の総数）であるか否かを判断する（ステップＳ３６０２）。Ｃ＞Ｎｃｏｄでない場合（ステップＳ３６０２：Ｎｏ）、制約条件番号Ｃの配線パス番号リストに未選択の配線パス番号があるか否かを判断する（ステップＳ３６０３）。未選択の配線パス番号がない場合（ステップＳ３６０３：Ｎｏ）、制約条件番号Ｃをインクリメントし（ステップＳ３６１４）、ステップＳ３６０２に戻る。
【０１１７】
一方、未選択の配線パス番号がある場合（ステップＳ３６０３：Ｙｅｓ）、未選択の配線パス番号Ｐとして抽出し（ステップＳ３６０４）、配線パス番号Ｐが基準パスであるか否かを判断する（ステップＳ３６０５）。具体的には、図２１に示した配線パステーブル２１００を参照して、配線パス番号Ｐの配線パス（以下、配線パスＰ）の線長判定情報がＯＫであるか否かを判断する。ＯＫであれば基準パスとなる。
【０１１８】
基準パスでない場合（ステップＳ３６０５：Ｎｏ）、配線パスＰの区間Ｇ１を設定する（ステップＳ３６０６）。具体的には、区間Ｇ１に、配線パスＰの配線接続順要素リストの要素を入れる。そして、制約条件Ｃの表示制御番号から表示制御テーブル２４００を参照し、その表示方法番号リストＭ１を特定する（ステップＳ３６０７）。このあと、区間特定処理（ステップＳ３６０８）および重ね書きによるエラー長表現処理（ステップＳ３６０９）を実行して、ステップＳ３６０３に戻る。区間特定処理（ステップＳ３６０８）および重ね書きによるエラー長表現処理（ステップＳ３６０９）については後述する。
【０１１９】
一方、ステップＳ３６０５において、配線パスＰが基準パスである場合（ステップＳ３６０５：Ｙｅｓ）、基準パスＰの表示区間Ｑを作成する（ステップＳ３６１０）。また、基準パスＰの描画色Ｄを設定する（ステップＳ３６１１）。このとき、描画色Ｄは予め設定された描画色Ｄとする。
【０１２０】
そして、［Ｑ，Ｄ］を表示区間テーブル２３００に追加する（ステップＳ３６１２）。具体的には、特定の表示区間番号のレコードに対し、Ｄを「区間色」項目に、Ｑを「表示区間」項目に書き込む。そして、［Ｑ，Ｄ］が追加された表示区間番号を、表示パステーブル２２００の基準パスＰのレコードの表示区間番号リストに追加する（ステップＳ３６１３）。このあと、ステップＳ３６０３に戻る。
【０１２１】
一方、ステップＳ３６０２において、Ｃ＞Ｎｃｏｄである場合（ステップＳ３６０２：Ｙｅｓ）、表示区間決定処理（ステップＳ２６０５）を完了し、区間表示処理（ステップＳ２６０６）に移行する。
【０１２２】
図３７は、図３６に示した区間特定処理（ステップＳ３６０８）の詳細な処理手順を示すフローチャートである。まず、ステップＳ３６０７で取得した表示方法番号リストＭ１に未選択の表示方法番号Ｒがあるか否かを判断する（ステップＳ３７０１）。未選択の表示方法番号がある場合（ステップＳ３７０１：Ｙｅｓ）、未選択の表示方法番号Ｒを選択する（ステップＳ３７０２）。そして、選択された表示方法番号Ｒが、Ｒ＝７〜９以外の番号か、Ｒ＝７か、Ｒ＝８か、Ｒ＝９かを判断する（ステップＳ３７０３）。
【０１２３】
Ｒ＝７〜９以外の番号である場合（ステップＳ３７０３：７〜９以外）、線長調整対象区間Ｇ２を空にして（ステップＳ３７０４）、ステップＳ３７０８に移行する。
【０１２４】
また、Ｒ＝７である場合（ステップＳ３７０３：７）、配線パスＰのトポロジから線長調整対象区間Ｇ２を特定して（ステップＳ３７０５）、ステップＳ３７０８に移行する。具体的には、回路トポロジデータベース（ＤＢ）を用いる。回路トポロジＤＢには、線長調整対象区間が指定されたトポロジが各種記憶されている。したがって、回路トポロジＤＢの中から配線パスＰのトポロジと一致するトポロジを検索し、検索されたトポロジに指定されている線長調整対象区間を抽出する。この抽出された線長調整対象区間をＧ２として特定する。
【０１２５】
また、Ｒ＝８である場合（ステップＳ３７０３：８）、配線パスＰの区間Ｇ１において画面表示範囲内に含まれる区間Ｇ２を特定して（ステップＳ３７０６）、ステップＳ３７０８に移行する。たとえば、配線パスＰの区間Ｇ１のうち図８に示した対象領域８００に含まれる区間Ｇ２を検出する。
【０１２６】
また、Ｒ＝９である場合（ステップＳ３７０３：９）、配線パスＰの区間Ｇ１においてエラー表示領域内に含まれる区間Ｇ２を特定して（ステップＳ３７０７）、ステップＳ３７０８に移行する。たとえば、配線パスＰの区間Ｇ１のうち図９に示した選択範囲９００に含まれる区間Ｇ２を検出する。
【０１２７】
そして、ステップＳ３７０８では、区間Ｇ２が空でないかを判断し（ステップＳ３７０８）、空である場合（ステップＳ３７０８：Ｎｏ）、ステップＳ３７０１に戻る。一方、空でない場合（ステップＳ３７０８：Ｙｅｓ）、配線パスＰの区間Ｇ１を線長調整対象区間Ｇ２とし（ステップＳ３７０９）、ステップＳ３７０１に戻る。そして、未選択の表示方法番号Ｒがない場合（ステップＳ３７０１：Ｎｏ）、重ね書きによるエラー長表現処理（ステップＳ３６０９）に移行する。
【０１２８】
図３８〜図４０は、図３６に示した重ね書きによるエラー長表現処理（ステップＳ３６０９）の詳細な処理手順を示すフローチャートである。まず、基準パスではない配線パスＰの区間Ｇ１に含まれている区間Ｑを設定する（ステップＳ３８０１）。たとえば、Ｐ＝１の場合、図２１の配線パス番号１では、「部品ピン１、ビア１、ビア８、部品ピン８」であるため、区間［部品ピン１，ビア１］、区間［ビア１，ビア８］、区間［ビア８，部品ピン８］の各々が区間Ｑとして設定される。
【０１２９】
また、表示方法変数ＺをＺ＝０とする（ステップＳ３８０２）。そして、配線パスＰの仮線長判定情報の絶対値Ｌを取得する（ステップＳ３８０３）。つぎに、区間Ｑの線長総和ＬＱを算出する（ステップＳ３８０４）。そして、ＬＱ≧Ｌであるか否かを判断する（ステップＳ３８０５）。
【０１３０】
ＬＱ≧Ｌでない場合（ステップＳ３８０５：Ｎｏ）、ステップＳ３８０７に移行する。一方、ＬＱ≧Ｌである場合（ステップＳ３８０５：Ｙｅｓ）、線長総和ＬＱをＬＱ＝Ｌとし、仮線長判定情報の絶対値ＬをＬ＝Ｌ―ＬＱとする（ステップＳ３８０６）。なお、ＬＱ＝Ｌとしたため、その分、区間Ｑの座標値も変動することになる。変動については、どのような処理でもよく、区間Ｑのうち末尾の区間のみ短くしてもよく、すべての区間Ｑを均等に短くしてもよい。
【０１３１】
そして、表示方法番号リストＭ２をＭ２＝Ｍ１とする（ステップＳ３８０７）。そして、Ｍ１に表示方法番号Ｒ＝１３があるか否かを判断する（ステップＳ３８０８）。Ｒ＝１３の表示方法番号がない場合（ステップＳ３８０８：Ｎｏ）、Ｌ＝０に設定し（ステップＳ３８０９）、図３９のステップＳ３９０１に移行する。
【０１３２】
一方、Ｍ２にＲ＝１３の表示方法番号がある場合（ステップＳ３８０８：Ｙｅｓ）、表示方法変数Ｚをインクリメントして（ステップＳ３８１０）、Ｍ２にＺを追加して（ステップＳ３８１１）、図３９のステップＳ３９０１に移行する。
【０１３３】
図３９において、表示区間テーブル２３００の配線パスＰの描画色Ｄ、線幅Ｗ、線種Ｋ、図形種Ｆを未定義にする（ステップＳ３９０１）。つぎに、Ｍ２にＲ＝１の表示方法番号があるか否かを判断する（ステップＳ３９０２）。ない場合（ステップＳ３９０２：Ｎｏ）。ステップＳ３９０４に移行する。
【０１３４】
一方、ある場合（ステップＳ３９０２：Ｙｅｓ）、描画色Ｄを、配線パスＰの仮配線判定情報に対応した描画色に設定して（ステップＳ３９０３）、ステップＳ３９０４に移行する。具体的には、たとえば、図２５を参照すると、Ｒ＝１では、「線長エラー表示を違反線長の長さだけ色を変えて表示」となっており、不足（負の値）の場合は「赤」、超過（正の値）の場合は「青」としている。したがって、仮配線判定情報が正の値の場合は、違反線長の長さだけ青色に設定し、負の値の場合は赤色に設定する。
【０１３５】
つぎに、ステップＳ３９０４において、Ｍ２にＲ＝２の表示方法番号があるか否かを判断する（ステップＳ３９０４）。ない場合（ステップＳ３９０４：Ｎｏ）。ステップＳ３９０６に移行する。
【０１３６】
一方、ある場合（ステップＳ３９０４：Ｙｅｓ）、線幅Ｗを、配線パスＰの仮配線判定情報に対応した線幅に設定して（ステップＳ３９０５）、ステップＳ３９０６に移行する。具体的には、たとえば、図２５を参照すると、Ｒ＝２では、「線長エラー表示を違反線長の長さだけ線幅を変えて表示」となっており、不足（負の値）の場合は「細く」、超過（正の値）の場合は「太く」としている。したがって、仮配線判定情報が正の値の場合は、違反線長の長さだけ線幅を違反線長以外の部分より太く設定し、負の値の場合は線幅を違反線長以外の部分より細く設定する。線幅をどの程度にするかは予め設定しておけばよい。
【０１３７】
つぎに、ステップＳ３９０６において、Ｍ２にＲ＝３の表示方法番号があるか否かを判断する（ステップＳ３９０６）。ない場合（ステップＳ３９０６：Ｎｏ）。ステップＳ３９０８に移行する。
【０１３８】
一方、ある場合（ステップＳ３９０６：Ｙｅｓ）、線種Ｋを、配線パスＰの仮配線判定情報に対応した線種に設定して（ステップＳ３９０７）、ステップＳ３９０８に移行する。具体的には、たとえば、図２５を参照すると、Ｒ＝３では、「線長エラー表示を違反線長の長さだけ線種を変えて表示」となっており、不足（負の値）の場合は「点線（パターンの輪郭）」、超過（正の値）の場合は「斜線（パターン内部）」としている。したがって、仮配線判定情報が正の値の場合は、違反線長の長さだけ線種を斜線に設定し、負の値の場合は線種を点線に設定する。
【０１３９】
つぎに、ステップＳ３９０８において、Ｍ２にＲ＝４の表示方法番号があるか否かを判断する（ステップＳ３９０８）。ない場合（ステップＳ３９０８：Ｎｏ）。ステップＳ３９１０に移行する。
【０１４０】
一方、ある場合（ステップＳ３９０８：Ｙｅｓ）、図形種Ｆを、配線パスＰの仮配線判定情報に対応した図形種に設定して（ステップＳ３９０９）、ステップＳ３９１０に移行する。具体的には、たとえば、図２５を参照すると、Ｒ＝４では、「線長エラー表示を違反線長の長さだけ図形を重ねて表示」となっており、不足（負の値）の場合は「図形１（幅０のラインを重ね書き）」、超過（正の値）の場合は「図形２（外形たけの長円を重ね書き）」としている。したがって、仮配線判定情報が正の値の場合は、違反線長の長さだけ図形２を設定し、負の値の場合は図形１を設定する。
【０１４１】
つぎに、ステップＳ３９１０において、Ｍ２にＲ＝５の表示方法番号があるか否かを判断する（ステップＳ３９１０）。ない場合（ステップＳ３９１０：Ｎｏ）、図４０のステップＳ４００１に移行する。
【０１４２】
一方、ある場合（ステップＳ３９１０：Ｙｅｓ）、描画色Ｄを、配線パスＰの仮配線判定情報に対応した描画色に設定して（ステップＳ３９１１）、ステップＳ４００１に移行する。具体的には、たとえば、図２５を参照すると、Ｒ＝５では、「配線パス全体を違反線長に対応した色でエラー表示」となっており、不足（負の値）の場合は「寒色系」、超過（正の値）の場合は「暖色系」としている。したがって、仮配線判定情報が正の値の場合は、配線パス全体を暖色系に設定し、負の値の場合は寒色系に設定する。なお、図５に示したように、寒色系および暖色系ともに仮配線判定情報の値に応じて段階表示するように設定される。
【０１４３】
そして、図４０において、区間Ｑ、描画色Ｄ、線幅Ｗ、線種Ｋ、図形種Ｆの組み合わせとなる［Ｑ，Ｄ，Ｗ，Ｋ，Ｆ］を表示区間テーブル２３００の指定された表示区間番号のレコードに追加する（ステップＳ４００１）。
【０１４４】
つぎに、ステップＳ４００１において表示区間テーブル２３００に［Ｑ，Ｄ，Ｗ，Ｋ，Ｆ］が追加されたレコードの表示区間番号を、表示パステーブル２２００の配線パスＰのレコードの表示区間番号リストに追加する（ステップＳ４００２）。そして、Ｌ≦０であるか否かを判断する（ステップＳ４００３）。Ｌ≦０である場合（ステップＳ４００３：Ｙｅｓ）、未調整の違反線長がなくなったため、図３６のステップＳ３６０３に戻る。一方、Ｌ≦０でない場合（ステップＳ４００３：Ｎｏ）、まだ、未調整の違反線長が残存しているため、図３８のステップＳ３８０３に戻る。
【０１４５】
図４１は、図２６に示した区間表示処理（ステップＳ２６０６）の詳細な処理手順を示すフローチャートである。まず、制約条件番号ＣをＣ＝１とし（ステップＳ４１０１）、Ｃ＞Ｎｃｏｄ（線長制約条件の総数）であるか否かを判断する（ステップＳ４１０２）。Ｃ＞Ｎｃｏｄでない場合（ステップＳ４１０２：Ｎｏ）、制約条件番号Ｃの配線パス番号リストに未選択の配線パス番号があるか否かを判断する（ステップＳ４１０３）。未選択の配線パス番号がない場合（ステップＳ４１０３：Ｎｏ）、制約条件番号Ｃをインクリメントし（ステップＳ４１０４）、ステップＳ４１０２に戻る。
【０１４６】
一方、ステップＳ４１０３において、未選択の配線パス番号がある場合（ステップＳ４１０３：Ｙｅｓ）、未選択の配線パス番号Ｐとして抽出し（ステップＳ４１０５）、表示パステーブル２２００から配線パスＰに対応する表示パスＳを特定する（ステップＳ４１０６）。具体的には、配線パス番号Ｐと同一線長番号を特定する。
【０１４７】
つぎに、ラインを縦に分割表示できる本数Ｙを求める（ステップＳ４１０７）。たとえば、しきい値となるピクセル幅を３ピクセル、ラインの線幅を７ピクセルとすると、Ｙ＝７／３＝２余り１により、Ｙ＝２となる。したがって、３ピクセルを２本分分割表示できる。なお、余りは本数Ｙに均等に振り分けてもよい。振り分けられない場合は、できる限り均等になるように分配する。本例の場合は、４ピクセルと３ピクセルになる。
【０１４８】
つぎに、表示パスＳの同一パスリストの表示順位がＹ以内であるか否かを判断する（ステップＳ４１０８）。Ｙ以内でない場合（ステップＳ４１０８：Ｎｏ）、ステップＳ４１０３に戻る。一方、Ｙ以内である場合（ステップＳ４１０８：Ｙｅｓ）、ライン表示の分割位置を設定する（ステップＳ４１０９）。具体的には、ラインを幅方向にＹ分割する。そして、分割されたラインのうち上位から分割位置を割り振る。
【０１４９】
図４２は、ステップＳ４１０８，Ｓ４１０９の具体例を示す説明図である。たとえば、図２２に示した表示パステーブル２２００において、表示パスＳ（線長番号）がＳ＝２の場合、同一パスリストは、「２，９」である。この並びは表示順位を示しており、１位が「２」、２位が「９」である。ここで、Ｙ＝２であるとすると、Ｓ＝２の表示パスの表示順位は１位であるため、Ｙ以内となる。
【０１５０】
この場合、ステップＳ４１０９では、ライン表示の分割位置を設定する。具体的には、ラインを幅方向にＹ＝２分割する。２分割されたラインのうち上段から順次上位の表示パスを割り振る。ここでは、表示パスＳ＝２を上段の分割位置に割り振り、表示パスＳ＝９を下段の分割位置に割り振る。また、各表示パスＳは、配線接続順要素リストの順に従ってラインが引かれることとなる。たとえば、表示パスＳ＝２の場合、部品ピン２、ビア２、ビア９、部品ピン９の順にしたがってラインが引かれる。
【０１５１】
一方、Ｓ＝９において、同一パスリストが仮に「１，２，９」であった場合、Ｓ＝９の表示パスの表示順位は３位であるため、Ｙ以内とはならない。
【０１５２】
このあと、リストのインデックス番号ＱＩをＱＩ＝１とし（ステップＳ４１１０）、ＱＩが表示パスＳの表示区間番号リストの値の個数より大きいか否かを判断する（ステップＳ４１１１）。大きい場合（ステップＳ４１１１：Ｙｅｓ）、ステップＳ４１０３に戻る。一方、表示パスＳの表示区間番号リストの値の個数以下の場合（ステップＳ４１１１：Ｎｏ）、表示パスＳの表示区間番号リストのＱＩ番目の値をＱＮとし（ステップＳ４１１２）、番号ＱＮの表示区間について描画処理を実行する（ステップＳ４１１３）。そして、インデックス番号ＱＩをインクリメントして（ステップＳ４１１４）、ステップＳ４１１１に戻る。
【０１５３】
また、ステップＳ４１０２において、Ｃ＞Ｎｃｏｄ（線長制約条件の総数）である場合（ステップＳ４１０２：Ｙｅｓ）、一連の処理を終了する。
【０１５４】
図４３は、図４１に示した描画処理（ステップＳ４１１２）の詳細な処理手順を示すフローチャートである。まず、表示区間テーブル２３００において表示区間番号ＱＮの図形種が未定義か否かを判断する（ステップＳ４３０１）。未定義である場合（ステップＳ４３０１：Ｙｅｓ）、表示区間テーブル２３００からＱＮの描画属性（描画色Ｄ、線幅Ｗ、線種Ｋ）を取得する（ステップＳ４３０２）。そして、未定義ではない描画属性をラインの描画属性に反映し（ステップＳ４３０３）、表示区間番号ＱＮの表示区間をライン描画する（ステップＳ４３０４）。そして、ステップＳ４１１３に移行する。
【０１５５】
一方、ステップＳ４３０１において、ＱＮの図形種が未定義でない場合（ステップＳ４３０１：Ｎｏ）、表示区間テーブル２３００から表示区間番号ＱＮの図形種類Ｆを取得する（ステップＳ４３０５）。そして、表示区間番号ＱＮの表示区間を図形種類Ｆに対応した図形で描画して（ステップＳ４３０６）、ステップＳ４１１３に移行する。
【０１５６】
（設計支援装置の機能的構成）
図４４は、設計支援装置の機能的構成を示すブロック図である。設計支援装置４４００は、取得部４４０１と、描画部４４０２と、制御部４４０３と、検出部４４０４と、指定部４４０５と、決定部４４０６と、算出部４４０７と、設定部４４０８と、論理線長算出部４４０９と、を含む構成である。これら機能４４０１〜４４０９は、具体的には、たとえば、図１４に示したＲＯＭ１４０２、ＲＡＭ１４０３、磁気ディスク１４０５、光ディスク１４０７などの記憶装置に記憶されたプログラムをＣＰＵ１４０１に実行させることにより、または、Ｉ／Ｆ１４０９により、その機能を実現する。また、描画部４４０２は、グラフィックＬＳＩでもよい。
【０１５７】
取得部４４０１は、送信元から送信先までの複数の配線パスの違反線長を取得する機能を有する。送信元とは、たとえば、ドライバ１０１であり、送信先とは、レシーバ１０２である。取得部４４０１は、具体的には、たとえば、図１、図６、図１０に示したドライバ１０１およびレシーバ１０２間の配線パスの違反値（違反線長）を読み込む。より具体的には、線長制約条件テーブル２０００から該当する制約条件番号のレコードを特定し、配線パス番号リストの配線パスについて、配線パステーブル２１００を参照して、それぞれの配線パスの線長を取得する。そして、線長制約条件テーブル２０００の「線長基準情報」項目の値に従って、基準値を求める。そして、求めた基準値と配線パスの線長との差を求めて違反線長とする。
【０１５８】
描画部４４０２は、配線パスごとに、配線パスの線長と配線経路に基づいて、送信元と送信先とを接続する配線パターンを描画する機能を有する。具体的には、たとえば、表示例１〜１３に示したように、配線パスごとに、その線長分のラインを配線経路に従って描画する。配線パスの線長は、図２１に示した配線パステーブル２１００の「線長」項目の値を読み込むことで得られる。
【０１５９】
また、配線パスの配線経路は、図２１に示した配線パステーブル２１００の「配線接続順要素リスト」項目の値を読み込むことで得られる。配線接続順要素リストには、配線パスを構成する要素（ランド形状、部品ピン、ビア、ライン）の番号が接続順に列挙されているため、それぞれ、図１６〜図１９に示したテーブル１６００〜１９００から「座標」項目の値を読み込むことで得られる。描画部４４０２は、得られた値に従って描画処理することで配線パターンを描画することとなる。
【０１６０】
制御部４４０３は、描画部４４０２を制御して、配線パスごとに、配線パターンを構成するラインを、取得部４４０１によって取得された違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画する機能を有する。
【０１６１】
具体的には、たとえば、表示例１で示したように、第１のラインと第２のラインとを描画色が異なるように描画する。また、表示例２で示したように、第１のラインと第２のラインとを線幅が異なるように描画する。さらに、表示例３で示したように、第１のラインと第２のラインとを線種が異なるように描画する。
【０１６２】
また、制御部４４０３は、表示例４で示したように、第１のラインに追加図形を描画することで、第１のラインと第２のラインとを区別することとしてもよい。また、制御部４４０３は、表示例５に示したように、配線パスごとに、違反線長に応じた描画色で配線パターンを描画することとしてもよい。これにより、それぞれの配線パスをあとどれだけ短く／長くすれば等長にできそうかが直感的にわかることとなる。
【０１６３】
また、制御部４４０３は、第１のラインを送信元から違反線長分描画することで、第１のラインの一端を揃えて各配線パスの違反線長がどのくらいあるかを比較できるように表示することができる。
【０１６４】
また、制御部４４０３は、違反線長が基準線長を超過する場合と基準線長に不足する場合とで異なるように第１のラインを描画することとしてもよい。不足であるか超過であるかは違反線長の正負の符号により区別することができるため、不足と超過が混在する場合も区別して表示することができる。
【０１６５】
また、制御部４４０３は、表示例６で示したように、配線パスごとに、複数の配線パスのうち基準線長に採用された配線パス（基準パス）のラインを、基準線長に採用されなかった他の配線パスにおける違反線長以外の線長分のラインと区別して描画することとしてもよい。これにより、基準パスがどの配線パスであるかが一目でわかり、基準パスまたはそれ以外の配線パスをあとどれだけ長く／短くすれば等長にできそうかが直感的にわかることとなる。
【０１６６】
また、制御部４４０３は、表示例７で示したように、配線パスごとに、複数の配線パスの配線経路内にダンピング抵抗７０１がある場合、ダンピング抵抗７０１から送信先までのラインにおいて、配線パターンを構成するラインを、違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画することとしてもよい。
【０１６７】
ダンピング抵抗７０１の実装位置は、ドライバ１０１の近傍であることが大原則であるため、線長を調整する場合、ダンピング抵抗７０１とレシーバ１０２との間の配線経路で調整する。これにより、線長調整すべき経路に表示されるため、設計者は、どこで線長調整すべきかを考える手間を省くことができ、配線パターンの編集に専念でき、設計負担の軽減を図ることができる。
【０１６８】
また、図４４において、検出部４４０４は、表示領域を検出する検出部４４０４を有する。検出部４４０４は、描画された領域のうちどの領域が画面に表示されるかを検出する。この場合、制御部４４０３は、表示例８に示したように、配線パスごとに、検出部４４０４によって検出された表示領域内でのラインを、第１のラインと第２のラインとに区別して描画する。
【０１６９】
これにより、表示例８で示したように、表示領域が拡大、縮小、変更されても違反線長が常に表示されるため、配線パスをあとどれだけ長く／短くすれば等長にできるかが直感的にわかることとなる。
【０１７０】
また、図４４において、指定部４４０５は、表示領域の指定を受け付ける機能を有する。具体的には、ユーザがマウスなどの入力装置を操作することで表示領域を指定する。この場合、制御部４４０３は、配線パスごとに、指定部４４０５によって指定された表示領域内でのラインを、第１のラインと第２のラインに区別して描画する。
【０１７１】
これにより、表示例９で示したように、ユーザが指定した範囲の表示領域が拡大、縮小、変更されても違反線長が常に表示されるため、配線パスをあとどれだけ長く／短くすれば等長にできるかが直感的にわかることとなる。また、「この線長制約条件の配線グループはこの範囲で等長にする」ということがわかり、他の線長制約条件の配線グループとの間で等長にするための領域割当がどのようになっているかがわかりやすくなる。
【０１７２】
また、図４４において、決定部４４０６は、各配線パスにおいて線長制約条件ごとの違反線長を有する場合、線長制約条件ごとに違反線長分のラインの線幅を線長制約条件の数に基づいて決定する機能を有する。
【０１７３】
具体的には、たとえば、表示例１０で示したように、１つの配線パスに２以上の線長制約条件がある場合、線長制約条件ごとに違反線長となる第１のラインを１つの配線パスに何本描画できるかを決定する。
【０１７４】
この場合、制御部４４０３は、配線パスごとに、配線パターンを構成するラインを、各第１のラインと第２のラインとに区別するとともに、各第１のラインを決定部４４０６によって決定された線幅で並走して描画する。具体的には、たとえば、表示例１０で示したように、１つの配線パスに２以上の線長制約条件がある場合、線長制約条件ごとに違反線長となる第１のラインを描画する。これにより、複数の線長制約条件の違反線長を同時に確認することができる。
【０１７５】
また、図４４において、算出部４４０７は、配線パスごとに、当該配線パスにおける第１の線長制約条件の対象区間での違反線長に基づいて、第１の線長制約条件の対象区間を包含する第２の線長制約条件の対象区間での違反線長を算出する機能を有する。
【０１７６】
具体的には、たとえば、第２の線長制約条件の対象区間のパス（子パス）は、第１の線長制約条件の対象区間の親パスとなる。表示例１１に示したように、親パスの違反線長を計算する場合は、子パスについて線長調整が終了していることが前提となる。しかし、算出部４４０７では、小パスの線長調整が終了していなくても、線長調整が終えたと仮定したときの線長を求めて第２の線長制約条件について違反線長を求める。
【０１７７】
この場合、制御部４４０３は、配線パスごとに、第１の線長制約条件の対象区間内のラインを、第１の線長制約条件の対象区間での違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画する（表示例１１の条件１のエラー表示）。
【０１７８】
また、第２の線長制約条件の対象区間内のラインを、算出部４４０７によって算出された第２の線長制約条件の対象区間での違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画する（表示例１１の条件２のエラー表示）。このように、描画することで、複数の線長制約条件の違反線長を同時に確認することができる。
【０１７９】
また、図４４において、設定部４４０８は、配線経路の少なくとも一部が規定されていない配線パスについて、仮配線経路を設定する機能を有する。具体的には、たとえば、未配線の部分について、マンハッタン経路を求める。
【０１８０】
論理線長算出部４４０９は、設定部４４０８によって設定された仮配線経路の論理線長を算出する機能を有する。具体的には、たとえば、マンハッタン経路の経路長を論理線長として求める。
【０１８１】
この場合、取得部４４０１は、論理線長算出部４４０９によって算出された論理線長に基づいて、配線経路が規定されていない配線パスの違反線長を取得する。具体的には、論理線長を用いて線長制約条件に従って基準値を求め、求めた基準値から違反線長を求める。
【０１８２】
そして、描画部４４０２は、表示例１２に示したように、設定部４４０８によって設定された仮配線経路を描画する。具体的には、たとえば、マンハッタン経路を描画する。また、制御部４４０３は、表示例１２に示したように、取得部４４０１によって取得された配線経路が規定されていない配線パスの違反線長分のラインを仮配線経路と区別して仮配線経路上に描画する。
【０１８３】
このように、詳細な配線がなされていない場合であっても、違反線長によるエラー表示をおこなうことができる。
【０１８４】
以上のことから、本実施の形態によれば、設計データにおいて、線長制約条件に違反する配線パスを自動的に検出し、線長の違反線長を、その配線パスの配線パターンに重ねて表示させることができる。この違反線長の表示は、設計者が違反線長の表示を指示したときに表示されるようになっており、設計者の編集作業に合わせてリアルタイムに表示更新される。これにより、違反する配線パスの有無および違反線長の長さを設計者に対して一つにまとめて示すことができ、設計者が制約条件に合うように配線パターンを編集する作業を効率的に行うことができる。
【０１８５】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１８６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１８７】
（付記１）コンピュータを、
送信元から送信先までの複数の配線パスの違反線長を取得する取得手段、
前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画する描画手段、
前記描画手段を制御して、前記配線パスごとに、前記配線パターンを構成するラインを、前記取得手段によって取得された違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画する制御手段、
として機能させることを特徴とする設計支援プログラム。
【０１８８】
（付記２）前記制御手段は、
前記第１のラインと前記第２のラインとを描画色、線幅、線種のうちいずれか１つが異なるように描画することを特徴とする付記１に記載の設計支援プログラム。
【０１８９】
（付記３）前記制御手段は、
前記第１のラインに追加図形を描画することを特徴とする付記１に記載の設計支援プログラム。
【０１９０】
（付記４）前記制御手段は、
前記第１のラインを前記送信元から前記違反線長分描画することを特徴とする付記１〜３のいずれか１つに記載の設計支援プログラム。
【０１９１】
（付記５）前記制御手段は、
前記違反線長が基準線長を超過する場合と前記基準線長に不足する場合とで異なるように前記第１のラインを描画することを特徴とする付記１〜４のいずれか１つに記載の設計支援プログラム。
【０１９２】
（付記６）前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記複数の配線パスのうち基準線長に採用された配線パスのラインを、前記基準線長に採用されなかった他の配線パスにおける前記違反線長以外の線長分のラインと区別して描画することを特徴とする付記１〜５のいずれか１つに記載の設計支援プログラム。
【０１９３】
（付記７）前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記複数の配線パスの配線経路内にダンピング抵抗がある場合、前記ダンピング抵抗から前記送信先までのラインにおいて、前記配線パターンを構成するラインを、前記第１のラインと前記第２のラインとに区別して描画することを特徴とする付記１〜６のいずれか１つに記載の設計支援プログラム。
【０１９４】
（付記８）前記コンピュータを、
表示領域を検出する検出手段として機能させ、
前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記検出手段によって検出された表示領域内でのラインを、前記第１のラインと前記第２のラインとに区別して描画することを特徴とする付記１〜７のいずれか１つに記載の設計支援プログラム。
【０１９５】
（付記９）前記コンピュータを、
表示領域の指定を受け付ける指定手段として機能させ、
前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記指定手段によって指定された表示領域内でのラインを、前記第１のラインと前記第２のラインに区別して描画することを特徴とする付記１〜７のいずれか１つに記載の設計支援プログラム。
【０１９６】
（付記１０）前記コンピュータを、
前記各配線パスにおいて線長制約条件ごとの前記違反線長を有する場合、前記線長制約条件ごとに前記違反線長分のラインの線幅を前記線長制約条件の数に基づいて決定する決定手段として機能させ、
前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記配線パターンを構成するラインを、前記各第１のラインと前記第２のラインとに区別するとともに、前記各第１のラインを前記決定手段によって決定された線幅で並走して描画することを特徴とする付記１〜９のいずれか１つに記載の設計支援プログラム。
【０１９７】
（付記１１）前記コンピュータを、
前記配線パスごとに、当該配線パスにおける第１の線長制約条件の対象区間での違反線長に基づいて、前記第１の線長制約条件の対象区間を包含する第２の線長制約条件の対象区間での違反線長を算出する算出手段として機能させ、
前記制御手段は、
前記描画手段を制御して、前記配線パスごとに、前記第１の線長制約条件の対象区間内のラインを、前記第１の線長制約条件の対象区間での違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画するとともに、前記第２の線長制約条件の対象区間内のラインを、前記算出手段によって算出された前記第２の線長制約条件の対象区間での違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画することを特徴とする付記１〜１０のいずれか１つに記載の設計支援プログラム。
【０１９８】
（付記１２）コンピュータを、
送信元から送信先までの複数の配線パスの違反線長を取得する取得手段、
前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画する描画手段、
前記描画手段を制御して、前記配線パスごとに、前記違反線長に応じた描画色で前記配線パターンを描画する制御手段、
として機能させることを特徴とする設計支援プログラム。
【０１９９】
（付記１３）コンピュータを、
配線経路が規定されていない配線パスの仮配線経路を設定する設定手段、
前記設定手段によって設定された仮配線経路の論理線長を算出する論理線長算出手段、
前記論理線長算出手段によって算出された論理線長に基づいて、前記配線経路が規定されていない配線パスの違反線長を取得する取得手段、
前記設定手段によって設定された仮配線経路を描画する描画手段、
前記描画手段を制御して、前記取得手段によって取得された前記配線経路が規定されていない配線パスの違反線長分のラインを、前記仮配線経路と区別して前記仮配線経路上に描画する制御手段、
として機能させることを特徴とする設計支援プログラム。
【０２００】
（付記１４）送信元から送信先までの複数の配線パスの違反線長を取得する取得手段と、
前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画する描画手段と、
前記描画手段を制御して、前記配線パスごとに、前記配線パターンを構成するラインを、前記取得手段によって取得された違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画する制御手段と、
を備えることを特徴とする設計支援装置。
【０２０１】
（付記１５）取得手段、描画手段、制御手段を備えるコンピュータが、
前記取得手段により、送信元から送信先までの複数の配線パスの違反線長を取得する取得工程と、
前記描画手段により、前記配線パスごとに、当該配線パスの線長と配線経路に基づいて、前記送信元と前記送信先とを接続する配線パターンを描画する第１の描画工程と、
前記制御手段により、前記描画手段を制御して、前記配線パターンを構成するラインを、前記取得手段によって取得された違反線長分の第１のラインと当該違反線長以外の線長分の第２のラインとに区別して描画する第２の描画工程と、
を実行することを特徴とする設計支援方法。
【符号の説明】
【０２０２】
１５００  ネットテーブル
１６００  ランド形状テーブル
１７００  部品ピンテーブル
１８００  ビアテーブル
１９００  ラインテーブル
２０００  線長制約条件テーブル
２１００  配線パステーブル
２２００  表示パステーブル
２３００  表示区間テーブル
２４００  表示制御テーブル
２５００  表示方法テーブル
４４００  設計支援装置
４４０１  取得部
４４０２  描画部
４４０３  制御部
４４０４  検出部
４４０５  指定部
４４０６  決定部
４４０７  算出部
４４０８  設定部
４４０９  論理線長算出部
【図１】
0005526883.tif 000002
【図２】
0005526883.tif 000003
【図３】
0005526883.tif 000004
【図４】
0005526883.tif 000005
【図５】
0005526883.tif 000006
【図６】
0005526883.tif 000007
【図７】
0005526883.tif 000008
【図８】
0005526883.tif 000009
【図９】
0005526883.tif 000010
【図１０】
0005526883.tif 000011
【図１１】
0005526883.tif 000012
【図１２】
0005526883.tif 000013
【図１３】
0005526883.tif 000014
【図１４】
0005526883.tif 000015
【図１５】
0005526883.tif 000016
【図１６】
0005526883.tif 000017
【図１７】
0005526883.tif 000018
【図１８】
0005526883.tif 000019
【図１９】
0005526883.tif 000020
【図２０】
0005526883.tif 000021
【図２１】
0005526883.tif 000022
【図２２】
0005526883.tif 000023
【図２３】
0005526883.tif 000024
【図２４】
0005526883.tif 000025
【図２５】
0005526883.tif 000026
【図２６】
0005526883.tif 000027
【図２７】
0005526883.tif 000028
【図２８】
0005526883.tif 000029
【図２９】
0005526883.tif 000030
【図３０】
0005526883.tif 000031
【図３１】
0005526883.tif 000032
【図３２】
0005526883.tif 000033
【図３３】
0005526883.tif 000034
【図３４】
0005526883.tif 000035
【図３５】
0005526883.tif 000036
【図３６】
0005526883.tif 000037
【図３７】
0005526883.tif 000038
【図３８】
0005526883.tif 000039
【図３９】
0005526883.tif 000040
【図４０】
0005526883.tif 000041
【図４１】
0005526883.tif 000042
【図４２】
0005526883.tif 000043
【図４３】
0005526883.tif 000044
【図４４】
0005526883.tif 000045