(57)【特許請求の範囲】
【請求項１】
半導体回路のレイアウトデータを記憶する記憶部と、
前記レイアウトデータに対する設計変更を行う際、前記半導体回路において変更が必要となる接続情報である複数の処理対象ネット各々に対応する配線経路の候補として、複数の設計ルールそれぞれを満たす複数の配線経路の集合を、前記複数の設計ルールそれぞれを表す複数のコスト計算式と、前記レイアウトデータとに基づいて探索する探索部と、
前記複数の処理対象ネットそれぞれに対する複数の集合それぞれに含まれる前記複数の配線経路を表示する表示情報を生成する生成部とを備え、
前記探索部は、前記複数の処理対象ネットの間で各処理対象ネットに対する探索結果が他の処理対象ネットに対する探索結果に依存しないように、各処理対象ネットに対する前記複数の配線経路の集合を探索することを特徴とする半導体設計支援装置。
【請求項２】
前記表示情報は、前記複数のコスト計算式それぞれに対応する複数の表示パターンを用いて、各処理対象ネットに対する集合に含まれる前記複数の配線経路を識別可能な状態で表示することを特徴とする請求項１記載の半導体設計支援装置。
【請求項３】
前記複数の設計ルールは、前記半導体回路に含まれる複数の配線層のうち前記設計変更によって変更される配線層の数を規定する第１の設計ルール、前記半導体回路内における配線密度を規定する第２の設計ルール、及び前記半導体回路内の信号のタイミングを規定する第３の設計ルールのうち、少なくとも２つ以上の設計ルールを含むことを特徴とする請求項１又は２記載の半導体設計支援装置。
【請求項４】
前記複数のコスト計算式の各々は、前記半導体回路に含まれる複数の配線層のうち設計変更が禁止される使用禁止層を表すコスト値、前記使用禁止層以外の配線層のうち配線が禁止される配線禁止層を表すコスト値、ダミーメタルが存在することを表すコスト値、配線として使用されるメタルが存在することを表すコスト値、配線層の変更を表すコスト値、及び配線方向が優先方向とは異なることを表すコスト値のうち、少なくとも１つ以上のコスト値の総和を表すことを特徴とする請求項１乃至３のいずれか１項に記載の半導体設計支援装置。
【請求項５】
半導体回路のレイアウトデータに対する設計変更を行う際、前記半導体回路において変更が必要となる接続情報である複数の処理対象ネット各々に対応する配線経路候補として、複数の設計ルールそれぞれを満たす複数の配線経路の集合を、前記複数の設計ルールそれぞれを表す複数のコスト計算式と、前記レイアウトデータとに基づいて探索し、
前記複数の配線経路を表示する表示情報を生成する、
処理をコンピュータが実行し、
前記コンピュータは、前記複数の処理対象ネットの間で各処理対象ネットに対する探索結果が他の処理対象ネットに対する探索結果に依存しないように、各処理対象ネットに対する前記複数の配線経路の集合を探索することを特徴とする半導体設計支援方法。
【請求項６】
コンピュータのための半導体設計支援プログラムであって、
前記半導体設計支援プログラムは、
半導体回路のレイアウトデータに対する設計変更を行う際、前記半導体回路において変更が必要となる接続情報である複数の処理対象ネット各々に対応する配線経路候補として、複数の設計ルールそれぞれを満たす複数の配線経路の集合を、前記複数の設計ルールそれぞれを表す複数のコスト計算式と、前記レイアウトデータとに基づいて探索し、
前記複数の配線経路を表示する表示情報を生成する、
処理を前記コンピュータに実行させ、
前記コンピュータは、前記複数の処理対象ネットの間で各処理対象ネットに対する探索結果が他の処理対象ネットに対する探索結果に依存しないように、各処理対象ネットに対する前記複数の配線経路の集合を探索することを特徴とする半導体設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体設計支援装置、半導体設計支援方法、及び半導体設計支援プログラムに関する。
【背景技術】
【０００２】
大規模集積回路（Large-Scale Integration，ＬＳＩ）のような半導体集積回路の設計は、Electronic Design Automation（ＥＤＡ）ツールを使用して、論理設計、物理設計の順序で行われることが多い。物理設計には、論理素子の配置と配線設計とが含まれる。ＥＤＡツールを使用することで、マスクデザインルール、タイミングルール等の設計ルールを満たす設計を自動的に行うことが可能である。近年のＬＳＩ設計では、ＬＳＩの製造歩留りを向上させるため、論理素子の配置と配線設計の後に、配線間にダミーメタルと呼ばれる導体が挿入されることがある。
【０００３】
一方、半導体集積回路の論理変更又はタイミング修正を行う技術として、Engineering Change Order（ＥＣＯ）が知られている。ＥＣＯによれば、設計済みの回路データに対して論理素子の追加又は変更、論理素子の配置又は配線の変更等が行われる。特に、ＬＳＩチップ製造後におけるＥＣＯは、ポストマスク（Post-Mask）ＥＣＯと呼ばれる。ポストマスクＥＣＯでは、一部の配線層等のマスクのみが改版される。
【０００４】
半導体集積回路又はプリント基板の配線設計において、配線コストに基づいて２点間の配線経路を決定する技術も知られている（例えば、特許文献１及び特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２４３８３８号公報
【特許文献２】特開平２−１３３８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ポストマスクＥＣＯにおいて、変更が必要となる配線に対応する接続情報である処理対象ネット（ＥＣＯネット）に対して、特定の設計ルールを満たす配線経路を求める場合、設計者が得られた配線経路に満足しないことがある。この場合、設計者は、ＥＤＡツールのパラメータを変更して別の配線経路を求める作業を繰り返すため、作業が煩雑になる。
【０００７】
１つの側面において、本発明の目的は、半導体回路のレイアウトデータに対する設計変更を行う際に、複数の設計ルールそれぞれを満たす複数の配線経路を一括して求めることである。
【課題を解決するための手段】
【０００８】
１つの案では、半導体設計支援装置は、記憶部、探索部、及び生成部を含む。記憶部は、半導体回路のレイアウトデータを記憶する。探索部は、レイアウトデータに対する設計変更を行う際、半導体回路において変更が必要となる接続情報である処理対象ネットに対応する配線経路の候補として、複数の設計ルールそれぞれを満たす複数の配線経路を、複数の設計ルールそれぞれを表す複数のコスト計算式と、レイアウトデータとに基づいて探索する。生成部は、探索部が探索した複数の配線経路を表示する表示情報を生成する。
【発明の効果】
【０００９】
実施形態によれば、半導体回路のレイアウトデータに対する設計変更を行う際に、複数の設計ルールそれぞれを満たす複数の配線経路を一括して求めることができる。
【図面の簡単な説明】
【００１０】
【図１】半導体設計支援装置の機能的構成図である。
【図２】設計変更処理のフローチャートである。
【図３】半導体設計支援装置の具体例を示す機能的構成図である。
【図４Ａ】設計変更処理の具体例を示すフローチャート（その１）である。
【図４Ｂ】設計変更処理の具体例を示すフローチャート（その２）である。
【図５】論理変更前の半導体回路を示す図である。
【図６】従来の設計変更処理を適用した結果を示す図である。
【図７】実施形態の設計変更処理を適用した結果を示す図である。
【図８】配線領域を示す図である。
【図９】変更前レイアウトデータが表す半導体回路を示す図である。
【図１０】変更後ネットリストを示す図である。
【図１１】配線用ネットリストを示す図である。
【図１２】配線経路データを示す図である。
【図１３】パターン定義ファイルを示す図である。
【図１４】配線表示データを示す図である。
【図１５】コストデフォルトファイルを示す図である。
【図１６】コストファイルを示す図である。
【図１７】配線層数ルール、配線密度ルール、及びタイミングルールを表すコストファイルを示す図である。
【図１８】カラー定義ファイルを示す図である。
【図１９】エラー定義ファイルを示す図である。
【図２０】配線経路探索処理のフローチャートである。
【図２１】探索処理のフローチャートである。
【図２２】終点ＧＰ探索処理のフローチャートである。
【図２３】コスト計算処理のフローチャートである。
【図２４】表示処理のフローチャートである。
【図２５】コスト計算式／表示パターン設定処理のフローチャートである。
【図２６】表示色設定処理のフローチャートである。
【図２７】配線経路表示処理のフローチャートである。
【図２８】第１の表示例を示す図である。
【図２９】第２の表示例を示す図である。
【図３０】第３の表示例を示す図である。
【図３１】第４の表示例を示す図である。
【図３２】第５の表示例を示す図である。
【図３３】第６の表示例を示す図である。
【図３４】決定された配線経路を示す図である。
【図３５】情報処理装置の構成図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、実施形態を詳細に説明する。
ポストマスクＥＣＯの際には、開発費用を抑えるため、及び、問題がない箇所の設計変更により新たな問題を発生させるリスクを減らすため、改版するマスクの数及び範囲を削減することが望ましい。そのためには、マスクデザインルール及びタイミングルールの他に、変更される配線層の数を規定する配線層数ルールも設定することが望ましい。
【００１２】
タイミングルールは、半導体回路内の信号のタイミングを規定する設計ルールである。マスクデザインルールには、半導体回路内における配線密度を規定する配線密度ルールが含まれる。配線層数ルールを用いれば、変更される配線層の数を制限することができる。
【００１３】
しかし、タイミングルール、配線密度ルール、及び配線層数ルールは、互いにトレードオフの関係にある。例えば、変更される配線層の数が少なければ、マスク改版費用は抑えられるが、レイアウトの変更が広範囲にわたり、配線も長くなる。このため、タイミングルール違反又は配線密度ルール違反が発生する可能性がある。そこで、ＥＣＯネットの配線に対してどの設計ルールを優先して適用するかを、設計者自身が判断することになる。
【００１４】
ＥＤＡツールによる自動配線プログラムでは、配線領域内の各格子点（ノード）におけるコストを用いて、配線経路の探索が行われる。各ノードのコストは、配線の通り難さを表し、配線の始点から終点までの間における複数のノードのコストの総和が最小となる配線経路が探索される。このコストを制御することにより、例えば、タイミングルールを優先する配線のように、特定の設計課題を解決する配線設計を行うことが可能になる。
【００１５】
例えば、Ａ＊探索アルゴリズムでは、始点からノードｎを通過して終点に到達する最短経路のコストは、次式により求められる。
ｆ＊（ｎ）＝ｇ＊（ｎ）＋ｈ＊（ｎ）      （１）
【００１６】
式（１）のｇ＊（ｎ）は、始点からノードｎまでの最小コストの推定値を表し、ｈ＊（ｎ）は、ノードｎから終点までの見積りコストを表す。ｈ＊（ｎ）としては、例えば、ノードｎから終点までのマンハッタン距離が用いられる。
【００１７】
この場合、ノードｎに隣接する各隣接ノードｍに対して、以下の手順で隣接ノードｍを通過する場合のｆ＊（ｍ）が計算される。
１．ノードｎからノードｍへ移動する場合のコストＣＯＳＴ（ｎ，ｍ）を用いて、次式により、始点からノードｍまでのコストを計算する。
ｇ’（ｍ）＝ｇ＊（ｎ）＋ＣＯＳＴ（ｎ，ｍ）      （２）
２．ｇ＊（ｍ）が計算されていない場合、又はｇ＊（ｍ）がｇ’（ｍ）＜ｇ＊（ｍ）を満たす場合、次式により、ｇ＊（ｍ）を計算又は更新する。
ｇ＊（ｍ）＝ｇ’（ｍ）      （３）
３．次式により、ｆ＊（ｍ）を計算する。
ｆ＊（ｍ）＝ｇ＊（ｍ）＋ｈ＊（ｍ）      （４）
【００１８】
ポストマスクＥＣＯでは、ＬＳＩチップ製造後に検出された致命的なバグの修正が行われることが多く、量産品の早期市場投入のため、短期間での開発完了が望まれる。しかし、従来のＥＤＡツールを用いた配線設計では、以下の理由により、開発が長期化することがある。
【００１９】
（１）１つのＥＣＯネットに対して与えられるコスト計算式は１つであるため、結果として得られる配線経路も１つである。設計者は、得られた配線経路に満足しない場合、自動配線プログラムを制御するパラメータを変更することで、コスト計算式を変更して、配線を再度実行する。このようなコスト計算式の変更を繰り返しながら探索結果をチューニングするため、作業が煩雑になる。
【００２０】
（２）自動配線プログラムでは、ＥＣＯネット毎に逐次処理で配線が行われるため、配線済みのＥＣＯネットは障害物として扱われる。このため、配線が密集した領域内において複数のＥＣＯネットに対する配線を行う場合、異なるＥＣＯネット間での配線ショートを回避しながら、配線経路の探索が行われる。この場合、後から配線するＥＣＯネットほど探索条件が厳しくなり、最適な配線経路を得ることが難しくなる。そこで、設計者は、設計課題が厳しいＥＣＯネットの配線を最初に行う等、それぞれのＥＣＯネットの配線順序を検討した後に、各ＥＣＯネットの配線を行う。
【００２１】
（３）ポストマスクＥＣＯでは、自動配線プログラムによる自動配線だけでは設計の収束が困難であるため、自動配線後に、グラフィカルユーザインタフェース（ＧＵＩ）を用いて手作業による配線修正が行われることがある。しかし、近年の半導体製造プロセスの微細化によるマスクデザインルールの複雑化、ＬＳＩチップの配線層の多層化、及び（メタルの配線情報と論理素子の配置情報とを含む）レイアウトデータに含まれるダミーメタルの存在によって、ＧＵＩによる配線の解析は非常に困難になっている。また、配線経路を見ただけでは、どの設計ルールを優先した配線であるかを判断することは困難である。このような理由から、ＧＵＩを用いた手作業による配線修正では、多大な工数が発生する。
【００２２】
なお、かかる問題は、ポストマスクＥＣＯにおける回路変更に限らず、他の半導体回路のレイアウトデータに対する設計変更においても生ずるものである。
【００２３】
図１は、実施形態の半導体設計支援装置の機能的構成例を示している。図１の半導体設計支援装置１０１は、記憶部１１１、探索部１１２、及び生成部１１３を含む。記憶部１１１は、半導体回路のレイアウトデータ１２１を記憶する。探索部１１２は、レイアウトデータ１２１に対する設計変更処理を行い、生成部１１３は、設計変更処理によって得られた配線経路を表示する表示情報を生成する。
【００２４】
図２は、図１の半導体設計支援装置１０１が行う設計変更処理の例を示すフローチャートである。まず、探索部１１２は、半導体回路において変更が必要となる接続情報である処理対象ネットに対応する配線経路の候補として、複数の設計ルールそれぞれを満たす複数の配線経路を探索する（ステップ２０１）。このとき、探索部１１２は、複数の設計ルールそれぞれを表す複数のコスト計算式と、レイアウトデータ１２１とに基づいて、それらの配線経路を探索する。そして、生成部１１３は、探索部１１２が探索した複数の配線経路を表示する表示情報を生成する（ステップ２０２）。
【００２５】
図１の半導体設計支援装置１０１によれば、半導体回路のレイアウトデータに対する設計変更を行う際に、複数の設計ルールそれぞれを満たす複数の配線経路を一括して求めることができる。
【００２６】
図３は、図１の半導体設計支援装置１０１の具体例を示している。図３の半導体設計支援装置１０１は、記憶部１１１、探索部１１２、生成部１１３、制御部３０１、及び表示部３０２を含み、ポストマスクＥＣＯにおける半導体回路の論理変更のための設計変更処理を行う。
【００２７】
記憶部１１１は、変更前レイアウトデータ３１１、変更後ネットリスト３１２、ＥＣＯネットリスト３１３、配線用ネットリスト３１４、配線経路データ３１５、及び配線用レイアウトデータ３１６を記憶する。記憶部１１１は、さらに変更後レイアウトデータ３１７、配線表示データ３１８、コストデフォルトファイル３１９、及びコストファイル３２０−１〜コストファイル３２０−Ｎ（Ｎは１以上の整数）を記憶する。記憶部１１１は、さらにパターン定義ファイル３２１、カラー定義ファイル３２２、及びエラー定義ファイル３２３を記憶する。
【００２８】
変更前レイアウトデータ３１１は、図１のレイアウトデータ１２１に対応し、論理変更前の半導体回路のレイアウトデータを表す。変更後ネットリスト３１２は、論理変更後の半導体回路のネットリストを表し、例えば、新たに追加されたネットの情報を含む。ＥＣＯネットリスト３１３は、処理対象ネットであるＥＣＯネットのリストを表し、変更後ネットリスト３１２から生成される。自動配線プログラムでは、ネットリストに基づいて配線が行われるため、ＥＣＯネットの識別情報であるネット名は、変更後ネットリスト３１２によって決定される。
【００２９】
配線用ネットリスト３１４は、ＥＣＯネット以外のネットの情報と、各ＥＣＯネットに対して生成される複数の配線経路にそれぞれ対応する複数の探索対象ネットの情報とを含むネットリストである。配線用ネットリスト３１４は、変更後ネットリスト３１２及びＥＣＯネットリスト３１３から生成される。
【００３０】
配線経路データ３１５は、各ＥＣＯネットに対して生成される複数の配線経路の集合を含み、複数のＥＣＯネットにそれぞれ対応する複数の集合を含む。配線用レイアウトデータ３１６は、変更前レイアウトデータ３１１から生成され、配線経路データ３１５に基づいて変更される。変更後レイアウトデータ３１７は、変更前レイアウトデータ３１１に対して、ポストマスクＥＣＯにおけるすべての変更が反映されたレイアウトデータを表し、配線用レイアウトデータ３１６から生成される。
【００３１】
配線表示データ３１８は、配線用ネットリスト３１４の各探索対象ネットに対するコスト計算式及び表示パターンを示す。コストデフォルトファイル３１９は、デフォルトのコスト計算式を表し、コストファイル３２０−ｉ（ｉ＝１〜Ｎ）は、ユーザが定義したコスト計算式を表す。パターン定義ファイル３２１は、画面上で各配線経路を表示するために用いる表示パターンを表し、カラー定義ファイル３２２は、各配線経路を表示するために用いる表示色を表す。エラー定義ファイル３２３は、互いに異なるＥＣＯネットに対する配線経路間で配線ショートが発生する場合に、配線ショートの発生箇所を示すために用いるエラー表示パターンを表す。
【００３２】
制御部３０１は、変更後ネットリスト３１２からＥＣＯネットリスト３１３及び配線用ネットリスト３１４を生成するとともに、変更前レイアウトデータ３１１から配線用レイアウトデータ３１６を生成する。探索部１１２は、配線用ネットリスト３１４、配線用レイアウトデータ３１６、コストデフォルトファイル３１９、及びコストファイル３２０−１〜コストファイル３２０−Ｎを用いて、各ＥＣＯネットに対する複数の配線経路を探索する。そして、探索部１１２は、探索結果に基づいて、配線経路データ３１５及び配線表示データ３１８を生成する。
【００３３】
生成部１１３は、配線経路データ３１５、配線用レイアウトデータ３１６、配線表示データ３１８、カラー定義ファイル３２２、及びエラー定義ファイル３２３を用いて、各配線経路を表示する表示情報を生成する。表示部３０２は、生成部１１３が生成した表示情報を用いて、各配線経路を画面上に表示する。そして、制御部３０１は、各ＥＣＯネットに対する複数の配線経路の中からユーザが選択した配線経路を含む、変更後レイアウトデータ３１７を生成する。
【００３４】
図４Ａ及び図４Ｂは、図３の半導体設計支援装置１０１が行う設計変更処理の具体例を示すフローチャートである。まず、制御部３０１は、変更後ネットリスト３１２から、各ネットの識別情報であるネット名を取得し（ステップ４０１）、変更前レイアウトデータ３１１において、取得したネット名が示すネットが配線済みか否かをチェックする（ステップ４０２）。
【００３５】
ネットが未配線である場合（ステップ４０２，ＮＯ）、制御部３０１は、そのネットをＥＣＯネットリスト３１３に追加して（ステップ４０３）、変更後ネットリスト３１２からすべてのネット名を取得したか否かをチェックする（ステップ４０４）。
【００３６】
一方、ネットが配線済みである場合（ステップ４０２，ＹＥＳ）、制御部３０１は、そのネットをＥＣＯネットリスト３１３に追加せずに、ステップ４０４以降の処理を行う。未取得のネット名が残っている場合（ステップ４０４，ＮＯ）、制御部３０１は、ステップ４０１以降の処理を繰り返す。
【００３７】
すべてのネット名を取得した場合（ステップ４０２，ＹＥＳ）、制御部３０１は、ＥＣＯネット以外のネットと、ＥＣＯネットリスト３１３の各ＥＣＯネットに対する複数の探索対象ネットとを含む、配線用ネットリスト３１４を生成する（ステップ４０５）。そして、制御部３０１は、変更前レイアウトデータ３１１から、半導体回路のサイズ、論理素子の位置を示す座標、論理素子間を繋ぐ配線経路、電源配線、ダミーメタル等の情報を取得して、配線用レイアウトデータ３１６を生成する（ステップ４０６）。
【００３８】
次に、探索部１１２は、配線用ネットリスト３１４から各探索対象ネットのネット名を取得する（ステップ４０７）。そして、探索部１１２は、コストファイル３２０−１〜コストファイル３２０−Ｎのいずれかに基づいて、取得したネット名が示す探索対象ネットに対するコスト計算式を設定する（ステップ４０８）。
【００３９】
次に、探索部１１２は、配線用レイアウトデータ３１６が表す回路レイアウトを参照しながら、設定したコスト計算式を用いて、探索対象ネットに対する配線経路を探索する（ステップ４０９）。そして、探索部１１２は、探索した配線経路の配線層、配線幅、配線の位置を示す座標等の情報を、配線経路データ３１５に格納する（ステップ４１０）。このとき、探索部１１２は、設定したコスト計算式と探索した配線経路の表示パターンとを示す配線表示データ３１８を生成する。探索した配線経路の表示パターンは、パターン定義ファイル３２１から選択される。
【００４０】
次に、探索部１１２は、配線用ネットリスト３１４からすべての探索対象ネットのネット名を取得したか否かをチェックする（ステップ４１１）。未取得の探索対象ネットのネット名が残っている場合（ステップ４１１，ＮＯ）、探索部１１２は、ステップ４０７以降の処理を繰り返す。
【００４１】
この場合、ステップ４０８において、探索部１１２は、１つのＥＣＯネットから生成された複数の探索対象ネットに対して、それぞれ異なるコスト計算式を設定する。また、ステップ４０９において、探索部１１２は、探索済みの探索対象ネットに対する配線経路が存在しないものと仮定して、現在の探索対象ネットに対する配線経路を探索する。
【００４２】
すべての探索対象ネットのネット名を取得した場合（ステップ４１１，ＹＥＳ）、生成部１１３は、配線経路データ３１５及び配線用レイアウトデータ３１６に基づいて、各ＥＣＯネットに対する複数の配線経路を含む表示情報を生成する（ステップ４１２）。そして、表示部３０２は、表示情報を用いて各配線経路を画面上に表示する。
【００４３】
次に、制御部３０１は、各ＥＣＯネットに対する複数の配線経路の中から１つの配線経路を選択する選択指示を、ユーザから受け取り、選択された配線経路をそのＥＣＯネットに対する配線経路に決定する（ステップ４１３）。このとき、制御部３０１は、選択された配線経路の情報を、配線用レイアウトデータ３１６に追加する。
【００４４】
次に、制御部３０１は、すべてのＥＣＯネットの配線経路を決定したか否かをチェックし（ステップ４１４）、未決定のＥＣＯネットが残っている場合（ステップ４１４，ＮＯ）、ステップ４１３以降の処理を繰り返す。
【００４５】
すべてのＥＣＯネットの配線経路を決定した場合（ステップ４１４，ＹＥＳ）、制御部３０１は、配線用レイアウトデータ３１６の情報をコピーすることで、変更後レイアウトデータ３１７を生成する（ステップ４１５）。
【００４６】
このような設計変更処理によれば、１つのＥＣＯネットに対して複数のコスト計算式が設定され、複数の配線経路が一括して探索されるため、コスト計算式の変更作業が不要になる。例えば、タイミングルール、配線密度ルール、及び配線層数ルール等を満たす複数の配線経路を同時に探索することが可能になる。
【００４７】
また、異なるコスト計算式に基づく配線経路が、それぞれ異なる表示パターンで表示されるため、ユーザは、それぞれの配線経路に対応するコスト計算式を画面上で確認しながら、配線経路を選択することが可能になる。
【００４８】
さらに、探索済みの配線経路が存在しないものと仮定して配線経路を探索することで、各ＥＣＯネットに対する複数の配線経路の集合を、他のＥＣＯネットに対する探索結果に依存することなく、探索することができる。これにより、ＥＣＯネット間の配線ショートを無視することが可能になり、ＥＣＯネットの配線順序を検討する必要がなくなる。
【００４９】
したがって、図４Ａ及び図４Ｂの設計変更処理によれば、ポストマスクＥＣＯにおける開発期間が短縮される。
【００５０】
図５は、論理変更によってネットが追加される前の半導体回路の例を示している。この半導体回路では、障害物５１１及び障害物５１２を回避しながら、始点５０１から終点５０３までの配線と、始点５０２から終点５０４までの配線とが生成される。
【００５１】
図６は、図５の半導体回路に対して、従来の設計変更処理を適用した結果の例を示している。まず、始点５０１及び終点５０３を含むＥＣＯネットに対して配線経路６０１が探索され、次に、始点５０２及び終点５０４を含むＥＣＯネットに対して配線経路６０２が探索される。配線経路６０１の決定後に配線経路６０２を探索する際、配線経路６０１は障害物として扱われるため、配線経路６０１を回避しながら探索が行われる。
【００５２】
図７は、図５の半導体回路に対して、図４Ａ及び図４Ｂの設計変更処理を適用した結果の例を示している。まず、始点５０１及び終点５０３を含むＥＣＯネットに対して、配線経路６０１及び配線経路７０１が探索され、次に、始点５０２及び終点５０４を含むＥＣＯネットに対して、配線経路６０２及び配線経路７０２が探索される。配線経路の探索時には、配線用レイアウトデータ３１６が参照され、探索された配線経路は、配線経路データ３１５に格納される。
【００５３】
したがって、配線経路６０１の探索後に配線経路７０１を探索する際、配線経路６０１は配線用レイアウトデータ３１６に含まれていないため、配線経路６０１と交差する配線経路７０１を探索することが可能になる。同様に、配線経路６０１及び配線経路７０１の探索後に、配線経路６０２及び配線経路７０２を探索することも可能になる。そして、それぞれのＥＣＯネットに対するすべての配線経路を探索した後に、配線経路データ３１５及び配線用レイアウトデータ３１６をマージすることで、図７の探索結果を示す表示情報が生成される。
【００５４】
図８は、半導体回路の各配線層における配線領域の例を示している。配線領域内には、複数の縦方向配線トラック８０２と、複数の横方向配線トラック８０３とが設けられ、各縦方向配線トラック８０２と各横方向配線トラック８０３との交点を中心とする矩形領域８０１は、格子点と呼ばれる。
【００５５】
縦方向配線トラック８０２及び横方向配線トラック８０３の間隔としては、例えば、通常配線の配線幅に最小スペーシング値を加算した値が用いられる。探索された配線経路は配線トラック上に表示されるため、配線経路が通常配線に対応する場合は、隣接する配線トラック上の配線経路との間にスペーシングを確保することが可能である。各格子点から次の格子点への配線経路の探索は、例えば、配線領域内における上下左右の４方向に、上下の配線層への乗り換えを加えた、６方向に対して行われる。
【００５６】
メタル８１１〜メタル８１４は、信号が伝播する配線として使用される導体を表し、ダミーメタル８２１は、配線として使用されない導体を表す。ビア８３１及びビア８３２は、異なる配線層のメタル同士を繋ぐ導体を表す。
【００５７】
図９は、変更前レイアウトデータ３１１が表す半導体回路の例を示している。ダイエリア９０１は、半導体回路の各配線層における配線領域を表し、インスタンス９１１〜インスタンス９１５は、論理素子を表す。インスタンス９１１はドライバピン９２１を含み、インスタンス９１２はドライバピン９２２を含む。インスタンス９１３はレシーバピン９２３を含み、インスタンス９１４はレシーバピン９２４を含み、インスタンス９１５はレシーバピン９２５を含む。
【００５８】
メタル９３１〜メタル９３５は、配線として使用される導体を表し、ダミーメタル９４１〜ダミーメタル９４９は、配線として使用されない導体を表す。ビア９５１〜ビア９５３は、異なる配線層のメタル同士を繋ぐ導体を表し、ダミービア９６１及びダミービア９６２は、異なる配線層のダミーメタル同士を繋ぐ導体を表す。
【００５９】
図１０は、図９の半導体回路に対するポストマスクＥＣＯによって新たなネットが追加された変更後ネットリスト３１２の例を示している。図１０の変更後ネットリスト３１２は、Institute of Electrical and Electronic Engineers（ＩＥＥＥ）によって標準化されているVerilog Hardware Description Language（Ｖｅｒｉｌｏｇ−ＨＤＬ）を用いて作成されている。
【００６０】
“ｅｃｏ＿ｎｅｔ１”及び“ｅｃｏ＿ｎｅｔ２”は、追加される２つのＥＣＯネットのネット名を表し、“ｃｅｌｌＡ”〜“ｃｅｌｌＥ”は、論理素子のセル名を表し、“ｉｎｓｔＡ”〜“ｉｎｓｔＥ”は、論理素子のインスタンス名を表す。“ｉｎｓｔＡ”〜“ｉｎｓｔＥ”と図９のインスタンス９１１〜インスタンス９１５との対応関係は、以下の通りである。
インスタンス９１１  ｉｎｓｔＤ
インスタンス９１２  ｉｎｓｔＡ
インスタンス９１３  ｉｎｓｔＢ
インスタンス９１４  ｉｎｓｔＥ
インスタンス９１５  ｉｎｓｔＣ
【００６１】
“ｃｅｌｌＡ”〜“ｃｅｌｌＣ”で始まる接続情報は、ＥＣＯネット“ｅｃｏ＿ｎｅｔ１”の接続情報であり、“ｃｅｌｌＤ”及び“ｃｅｌｌＥ”で始まる接続情報は、ＥＣＯネット“ｅｃｏ＿ｎｅｔ２”の接続情報である。
【００６２】
例えば、“ｃｅｌｌＡ  ｉｎｓｔＡ（．Ａ（ｉｎ），．Ｘ（ｅｃｏ＿ｎｅｔ１））”という接続情報は、インスタンス９１２（ｉｎｓｔＡ）のドライバピン９２２（Ｘ）がＥＣＯネット“ｅｃｏ＿ｎｅｔ１”に接続されることを表す。また、“ｃｅｌｌＢ  ｉｎｓｔＢ（．Ａ（ｅｃｏ＿ｎｅｔ１），．Ｘ（ｏｕｔ１））”という接続情報は、インスタンス９１３（ｉｎｓｔＢ）のレシーバピン９２３（Ａ）がＥＣＯネット“ｅｃｏ＿ｎｅｔ１”に接続されることを表す。
【００６３】
なお、変更後ネットリスト３１２は、図１０の“ｅｃｏ＿ｎｅｔ１”及び“ｅｃｏ＿ｎｅｔ２”以外に、ポストマスクＥＣＯにおける処理対象にならない他のネットの情報も含んでいる。
【００６４】
図１１は、図１０の変更後ネットリスト３１２から生成される配線用ネットリスト３１４の例を示している。制御部３０１は、変更後ネットリスト３１２の各ＥＣＯネットのネット名をコピーして、設定するコスト計算式の数と同じ数の探索対象ネットのネット名を生成する。
【００６５】
例えば、ＥＣＯネット“ｅｃｏ＿ｎｅｔ１”に対して、“ｃｏｓｔ１”、“ｃｏｓｔ２”、及び“ｃｏｓｔ３”の３個のコスト計算式が設定される場合、“ｅｃｏ＿ｎｅｔ１”から次の３個のネット名が生成される。
ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ１
ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ２
ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ３
【００６６】
それぞれのネット名の末尾の“ｃｏｓｔ１”、“ｃｏｓｔ２”、及び“ｃｏｓｔ３”は、コスト計算式の識別情報を表す。また、ＥＣＯネット“ｅｃｏ＿ｎｅｔ２”に対して、“ｃｏｓｔ１”及び“ｃｏｓｔ３”の２個のコスト計算式が設定される場合、“ｅｃｏ＿ｎｅｔ２”から次の２個のネット名が生成される。
ｅｃｏ＿ｎｅｔ２＿ｃｏｓｔ１
ｅｃｏ＿ｎｅｔ２＿ｃｏｓｔ３
【００６７】
この場合、変更後ネットリスト３１２における“ｅｃｏ＿ｎｅｔ１”及び“ｅｃｏ＿ｎｅｔ２”は、配線用ネットリスト３１４におけるネット名として用いられない。
【００６８】
次に、制御部３０１は、変更後ネットリスト３１２の各ＥＣＯネットの接続情報をコピーして、それぞれの探索対象ネットの接続情報を生成する。したがって、“ｃｅｌｌＡ”〜“ｃｅｌｌＣ”で始まるＥＣＯネット“ｅｃｏ＿ｎｅｔ１”の接続情報は、それぞれ３回ずつコピーされる。また、“ｃｅｌｌＤ”及び“ｃｅｌｌＥ”で始まるＥＣＯネット“ｅｃｏ＿ｎｅｔ２”の接続情報は、それぞれ２回ずつコピーされる。
【００６９】
このとき、各ＥＣＯネットのネット名は、探索対象ネットのネット名に変更され、各インスタンスのインスタンス名は、探索対象ネットにおけるインスタンス名に変更される。例えば、コスト計算式“ｃｏｓｔ１”が設定される探索対象ネットにおける“ｉｎｓｔＡ”は、“ｉｎｓｔＡ＿ｃｏｓｔ１”に変更される。また、コスト計算式“ｃｏｓｔ２”が設定される探索対象ネットにおける“ｉｎｓｔＡ”は、“ｉｎｓｔＡ＿ｃｏｓｔ２”に変更される。この場合、変更後ネットリスト３１２における“ｉｎｓｔＡ”〜“ｉｎｓｔＥ”は、配線用ネットリスト３１４におけるインスタンス名として用いられない。
【００７０】
ただし、配線用ネットリスト３１４における変更後のインスタンス名が示す論理素子の種類及び座標は、変更後ネットリスト３１２における元のインスタンス名が示す論理素子の種類及び座標と同じである。
【００７１】
例えば、図１０の“ｃｅｌｌＡ  ｉｎｓｔＡ（．Ａ（ｉｎ），．Ｘ（ｅｃｏ＿ｎｅｔ１））”という接続情報から、以下の３個の接続情報が生成される。
ｃｅｌｌＡ  ｉｎｓｔＡ＿ｃｏｓｔ１（．Ａ（ｉｎ），．Ｘ（ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ１））
ｃｅｌｌＡ  ｉｎｓｔＡ＿ｃｏｓｔ２（．Ａ（ｉｎ），．Ｘ（ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ２））
ｃｅｌｌＡ  ｉｎｓｔＡ＿ｃｏｓｔ３（．Ａ（ｉｎ），．Ｘ（ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ３））
【００７２】
また、図１０の“ｃｅｌｌＤ  ｉｎｓｔＤ（．Ａ（ｉｎ），．Ｘ（ｅｃｏ＿ｎｅｔ２））”という接続情報から、以下の２個の接続情報が生成される。
ｃｅｌｌＤ  ｉｎｓｔＤ＿ｃｏｓｔ１（．Ａ（ｉｎ），．Ｘ（ｅｃｏ＿ｎｅｔ２＿ｃｏｓｔ１））
ｃｅｌｌＤ  ｉｎｓｔＤ＿ｃｏｓｔ３（．Ａ（ｉｎ），．Ｘ（ｅｃｏ＿ｎｅｔ２＿ｃｏｓｔ３））
【００７３】
なお、配線用ネットリスト３１４は、図１１の５つの探索対象ネット以外に、ポストマスクＥＣＯにおける処理対象にならない他のネットの情報も含んでいる。
【００７４】
図１２は、図１１の配線用ネットリスト３１４に基づく配線経路の探索によって得られる配線経路データ３１５の例を示している。図１２の配線経路データ３１５は、各探索対象ネットに対する配線経路の始点及び終点の識別情報と、配線経路が通過する格子点の配線層及び座標の情報とを含む。
【００７５】
例えば、“−ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ１”で始まる経路情報において、“ｉｎｓｔＡ＿ｃｏｓｔ１  Ｘ”は、探索対象ネット“ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ１”の始点を表す。また、“ｉｎｓｔＢ＿ｃｏｓｔ１  Ａ”及び“ｉｎｓｔＣ＿ｃｏｓｔ１  Ａ”は、探索対象ネット“ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ１”の終点を表す。
【００７６】
同じ経路情報の次の行において、“Ｍ３”は、配線層の識別情報を表し、“８７３００  ４１９４０”及び“８７９３０  ＊”は、配線層“Ｍ３”における格子点の座標を表す。この場合、“＊”は、直前に記載された座標“４１９４０”と同じ値を表す。
【００７７】
配線経路データ３１５が生成された時点では、配線経路データ３１５が配線用レイアウトデータ３１６に反映されていないため、各探索対象ネットに対する配線経路の探索時に、他の探索対象ネットに対する探索済みの配線経路が障害物になることはない。
【００７８】
図１３は、パターン定義ファイル３２１の例を示している。この例では、“ｐａｔｔｅｒｎ１”〜“ｐａｔｔｅｒｎ１０”の１０種類の表示パターンが定義されている。
【００７９】
図１４は、図１１の配線用ネットリスト３１４に基づく配線経路の探索によって生成される配線表示データ３１８の例を示している。この例では、各ＥＣＯネットに対する複数の配線経路を同時に表示する際、配線経路とコスト計算式との対応関係を容易に認識できるように、設定されたコスト計算式毎に異なる表示パターンが用いられている。
【００８０】
例えば、“ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ１  ｃｏｓｔ１  ｐａｔｔｅｒｎ１”は、探索対象ネット“ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ１”に対してコスト計算式“ｃｏｓｔ１”が設定され、その配線経路が“ｐａｔｔｅｒｎ１”を用いて表示されることを表す。また、“ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ２  ｃｏｓｔ２  ｐａｔｔｅｒｎ２”は、探索対象ネット“ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ２”に対してコスト計算式“ｃｏｓｔ２”が設定され、その配線経路が“ｐａｔｔｅｒｎ２”を用いて表示されることを表す。
【００８１】
図１５は、コストデフォルトファイル３１９の例を示している。ｄｅｆａｕｌｔ  ｐｏｌｙｎｏｍｉａｌは、各格子点におけるコストＭを計算するためのデフォルトのコスト計算式を表し、ｄｅｆａｕｌｔ  ｐｏｌｙｎｏｍｉａｌの各項は、格子点の特定の属性に応じたコスト値を表す。ｄｅｆａｕｌｔ  ｃｏｅｆｆｉｃｉｅｎｔは、ｄｅｆａｕｌｔ  ｐｏｌｙｎｏｍｉａｌの各項の係数を表し、ｄｅｆａｕｌｔ  ｃｏｎｓｔａｎｔは、ｄｅｆａｕｌｔ  ｐｏｌｙｎｏｍｉａｌの各項の変数を表す。
【００８２】
自動配線プログラムでは、ダミーメタルは配線が通過できない障害物として扱われるため、ダミーメタルが存在する配線領域では、配線経路の探索が困難になる。このため、従来の設計変更処理では、ＥＣＯネットに対する配線経路を探索する前にダミーメタルが削除され、探索終了後にダミーメタルが再度挿入されることが多い。
【００８３】
これに対して、図１５のｄｅｆａｕｌｔ  ｐｏｌｙｎｏｍｉａｌでは、ダミーメタルを障害物として扱うのではなく、配線の通り難さを表すコストとして扱う。この場合、ダミーメタルが存在したままの状態で配線経路を探索できるため、ダミーメタルの削除及び挿入の処理が不要になる。
【００８４】
ａＰＬは、ポストマスクＥＣＯにおいてマスクの改版が行われない配線層である使用禁止層を表すコスト値である。したがって、格子点が使用禁止層の配線領域内に存在する場合に、ａＰＬが適用される。この例では、ａ＝１及びＰＬ＝７である。
【００８５】
ｂＤＭＶは、ダミーメタル及びダミービアが存在することを表すコスト値である。したがって、格子点にダミーメタルが存在し、かつ、そのダミーメタル上にダミービアが存在する場合に、ｂＤＭＶが適用される。この例では、ｂ＝１及びＤＭＶ＝６である。
【００８６】
ｃＤＭは、ダミーメタルのみが存在することを表すコスト値である。したがって、格子点にダミーメタルが存在し、かつ、そのダミーメタル上にダミービアが存在しない場合に、ｃＤＭが適用される。この例では、ｃ＝１及びＤＭ＝５である。
【００８７】
ｄＬＣは、配線層の乗り換え方向を表すコスト値である。格子点が存在する配線層よりも上側の配線層に配線経路が変更される場合は、乗り換え方向は上になり、格子点が存在する配線層よりも下側の配線層に配線経路が変更される場合は、乗り換え方向は下になる。格子点における乗り換え方向が特定の方向である場合に、ｄＬＣが適用される。この例では、ｄ＝１及びＬＣ＝４である。
【００８８】
ｅＮＰは、配線方向が非優先方向であることを表すコスト値である。配線層毎に、配線領域の縦方向又は横方向のいずれか一方が配線の優先方向に設定されており、非優先方向は、優先方向とは異なる方向を表す。格子点における配線方向が非優先方向である場合に、ｅＮＰが適用される。この例では、ｅ＝１及びＮＰ＝３である。
【００８９】
ｆＮＭは、配線として使用されるメタルが存在することを表すコスト値である。したがって、格子点にメタルが存在する場合に、ｆＮＭが適用される。この例では、ｆ＝１及びＮＭ＝２である。
【００９０】
ｇＢＬは、使用禁止層以外の配線層のうち、格子点毎に配線経路の通過が禁止される配線層である配線禁止層を表すコスト値である。したがって、格子点に対して配線禁止層が設定されている場合に、ｇＢＬが適用される。この例では、ｇ＝１及びＢＬ＝１である。
【００９１】
ｄｅｆａｕｌｔ  ｐｏｌｙｎｏｍｉａｌの各項の係数及び変数として、上記以外の値を用いることも可能であり、上記以外のコスト値を表す１つ又は複数の項を追加することも可能である。コストファイル３２０−ｉが使用されない場合、又はコスト計算式を定義しないコストファイル３２０−ｉが使用される場合、コストデフォルトファイル３１９のｄｅｆａｕｌｔ  ｐｏｌｙｎｏｍｉａｌがコスト計算式として用いられる。
【００９２】
例えば、変更される配線層の数を制限する配線層数ルールを適用して配線経路を探索する際、格子点が使用禁止層に存在する場合は、最も大きなコスト値であるａＰＬが適用されて、コストＭが大きくなる。また、ダミーメタル上にダミービアが存在する場合は、次に大きなコスト値であるｂＤＭＶが適用されて、コストＭが大きくなる。したがって、このような格子点を経由しない配線経路が得られる可能性が高くなる。
【００９３】
ダミーメタル上にダミービアが存在する場合、配線を通すためにそのダミーメタルの配置が変更されると、ダミービアによって接続される上又は下の配線層に対しても変更が発生するため、マスク改版費用が増大する。したがって、ｂＤＭＶを含むコスト計算式には、マスク改版費用を抑える効果がある。
【００９４】
ＬＳＩチップ製造時には、配線密度ルールを満たすようにダミーメタルが挿入されているため、配線密度ルールを適用して配線経路を探索する場合、ダミーメタルを変更しないことが有効である。この場合、ｃＤＭを比較的大きな値に設定することで、ダミーメタルの変更を抑える効果がある。
【００９５】
タイミングルールを適用して配線経路を探索する際、配線層の乗り換えに伴ってビアが追加されることで遅延が増加する場合は、ｄＬＣが適用される。また、不必要な配線クランクによって遅延が増加する場合は、ｅＮＰが適用される。この場合、ｄＬＣ及びｅＮＰを比較的大きな値に設定することで、遅延の増加を抑える効果がある。さらに、変更を必要としない配線を変更すると、寄生ＲＣの変化によって新たなタイミングエラーを引き起こす可能性がある。したがって、ｆＮＭもタイミングルールに影響を及ぼす。
【００９６】
その他にも、設計ルールに応じて、ｇＢＬを含むコスト計算式、又は図１５の各項以外の項を追加したコスト計算式を用いて、コストＭを計算することができる。
【００９７】
図１６は、コストファイル３２０−ｉの例を示している。ユーザは、コストファイル３２０−ｉを用いて、設計ルールに応じたコスト計算式を定義することができる。例えば、ｄｅｆａｕｌｔ  ｐｏｌｙｎｏｍｉａｌの各項の係数を変更することで、配線層数ルール、配線密度ルール、及びタイミングルールを表す複数のコスト計算式を設定することが可能になる。
【００９８】
ｎｅｔｎａｍｅは、ＥＣＯネットのネット名を表し、ｌａｙｅｒ  ｄｅｆｉｎｅは、コスト計算式の各項が適用される対象を表し、ｐｏｌｙｎｏｍｉａｌは、各格子点におけるコストＭを計算するためのコスト計算式を表す。ｃｏｅｆｆｉｃｉｅｎｔは、コスト計算式の各項の係数を表し、ｃｏｎｓｔａｎｔは、コスト計算式の各項の変数を表す。ｐａｔｔｅｒｎは、配線経路の表示パターンの識別情報を表し、ｃｏｓｔは、コスト計算式の識別情報を表し、ｃｏｌｏｒは、配線経路の表示色の識別情報を表す。
【００９９】
図１６（ａ）及び図１６（ｂ）は、ＥＣＯネット“ｎｅｔａ”に対する２つの異なるコストファイル３２０−ｉを示している。図１６（ａ）のコスト計算式では、図１５に示したａＰＬ及びｇＢＬとともに、新たに追加されたｈＣＬが用いられている。格子点が所定の配線層であるＣＡＤ＿ＬＡＹＥＲに存在する場合に、ｈＣＬが適用される。この例では、ａ＝１、ｇ＝０．１、ｈ＝０．９、ＰＬ＝７、ＢＬ＝１、及びＣＬ＝１である。
【０１００】
一方、図１６（ｂ）のコストファイル３２０−ｉでは、コスト計算式が省略されている。この場合、コストデフォルトファイル３１９のｄｅｆａｕｌｔ  ｐｏｌｙｎｏｍｉａｌが、コスト計算式として用いられる。
【０１０１】
図１７は、図１１の配線用ネットリスト３１４に基づく配線経路の探索で用いられるコストファイル３２０−ｉの例を示している。コストファイル３２０−１〜コストファイル３２０−３は、ＥＣＯネット“ｅｃｏ＿ｎｅｔ１”に対して適用され、コストファイル３２０−４及びコストファイル３２０−５は、ＥＣＯネット“ｅｃｏ＿ｎｅｔ２”に対して適用される。
【０１０２】
コストファイル３２０−１は、配線層数ルールを表し、使用禁止層を表すａＰＬの係数ａと、ダミーメタル上にダミービアが存在することを表すｂＤＶＭの係数ｂとが、他の項の係数よりも大きな値に設定されている。コストファイル３２０−２は、配線密度ルールを表し、ダミーメタルが存在することを表すｂＤＶＭ及びｃＤＭの係数ｂ及び係数ｃが、他の項の係数よりも大きな値に設定されている。コストファイル３２０−３は、タイミングルールを表し、配線方向が非優先方向であることを表すｅＮＰの係数ｅが、他の項の係数よりも大きな値に設定されている。
【０１０３】
同様に、コストファイル３２０−４は、配線層数ルールを表し、コストファイル３２０−５は、タイミングルールを表している。
【０１０４】
図１８は、カラー定義ファイル３２２の例を示している。“Ｍ１”〜“Ｍ３”及び“ＶＩＡ１”〜“ＶＩＡ３”は、配線層の識別情報を表し、“ｂｌｕｅ”、“ｐｉｎｋ”、“ｒｅｄ”、“ｐｕｒｐｌｅ”、“ｇｒｅｅｎ”、及び“ｙｅｌｌｏｗ”は、表示色の識別情報を表す。例えば、配線層“Ｍ１”における配線経路は青で表示され、配線層“Ｍ２”における配線経路は赤で表示され、配線層“Ｍ３”における配線経路は緑で表示される。
【０１０５】
図１９は、エラー定義ファイル３２３の例を示している。配線領域内において、異なるＥＣＯネットに対する配線経路間で配線ショートが発生する場合、配線ショートの発生箇所にエラー表示パターン１９０１が表示される。
【０１０６】
次に、図２０から図２３までを参照しながら、図４Ａのステップ４０９における配線経路探索処理の例について説明する。この例では、Ａ＊探索アルゴリズムが用いられ、配線経路上のノードとしては、格子点（ＧＰ）が用いられる。式（２）に示したＧＰｎからＧＰｍへ移動する場合のコストＣＯＳＴ（ｎ，ｍ）は、ＧＰｎとＧＰｍとの距離と、ＧＰｍにおけるコストＭ（ｍ）との和で表される。ＧＰｍはＧＰｎに隣接しているため、ＧＰｎとＧＰｍとの距離は“１”である。この場合、ＣＯＳＴ（ｎ，ｍ）は、次式により計算される。
ＣＯＳＴ（ｎ，ｍ）＝Ｍ（ｍ）＋１      （５）
【０１０７】
式（５）のコストＭ（ｍ）は、コストデフォルトファイル３１９又はコストファイル３２０−ｉのコスト計算式を用いて計算され、ＣＯＳＴ（ｎ，ｍ）を用いて式（４）のｆ＊（ｍ）が計算される。そして、ｆ＊（ｍ）に基づいて、始点ＧＰから終点ＧＰまでのコストが最小となるＧＰｍを選択することで、コスト計算式に応じた配線経路が求められる。
【０１０８】
図２０は、図４Ａのステップ４０９における配線経路探索処理の例を示すフローチャートである。まず、探索部１１２は、ステップ４０７で取得したネット名が示す探索対象ネットのドライバピンを含むＧＰを、始点ＧＰに設定する（ステップ２００１）。そして、探索部１１２は、その探索対象ネットのすべてのレシーバピンを、ＲＥＣＥＩＶＥＲ＿ＬＩＳＴに設定する（ステップ２００２）。ＲＥＣＥＩＶＥＲ＿ＬＩＳＴは、ＥＣＯネットに繋がる１つ以上のレシーバピンのリストを表す。
【０１０９】
次に、探索部１１２は、ステップ４０８で設定したコスト計算式を用いて、配線経路を探索し（ステップ２００３）、探索した配線経路を表す配線を生成する（ステップ２００４）。
【０１１０】
図２１は、図２０のステップ２００３における探索処理の例を示すフローチャートである。まず、探索部１１２は、ＲＥＣＥＩＶＥＲ＿ＬＩＳＴから１つのレシーバピンを抽出して、終点ＧＰに設定する（ステップ２１０１）。
【０１１１】
次に、探索部１１２は、始点ＧＰをＯＰＥＮ＿ＬＩＳＴに設定する（ステップ２１０２）。ＯＰＥＮ＿ＬＩＳＴは、未訪問のＧＰを格納するリストであり、ＧＰ毎に親ポインタ及び配線層の識別情報を保持する。
【０１１２】
親ポインタは、展開元ＧＰである親ＧＰを指すポインタである。例えば、ＧＰｎを６方向（上下左右の４方向と上下の配線層への乗り換え）に展開した場合、展開先の６個のＧＰに対する親ＧＰは、ＧＰｎである。ただし、始点ＧＰに対する親ＧＰは存在しないため、始点ＧＰの親ポインタにはＮＵＬＬが設定される。
【０１１３】
次に、探索部１１２は、始点ＧＰを展開元ＧＰを示すＧＰｎに設定して、ＧＰｎのコストｆ＊（ｎ）を計算する（ステップ２１０３）。ｆ＊（ｎ）は、始点ＧＰからＧＰｎを通過して終点ＧＰに到達する最短経路のコストを表し、式（１）により計算される。ＧＰｎが始点ＧＰである場合、式（１）のｇ＊（ｎ）は０になる。
【０１１４】
次に、探索部１１２は、始点ＧＰを６方向に展開して、６方向の隣接ＧＰを求め（ステップ２１０４）、始点ＧＰをＯＰＥＮ＿ＬＩＳＴから抽出して、ＣＬＯＳＥ＿ＬＩＳＴに設定する（ステップ２１０５）。ＣＬＯＳＥ＿ＬＩＳＴは、既訪問のＧＰを格納するリストであり、ＧＰ毎に親ポインタ、配線層の識別情報、及びコストｆ＊（ｎ）を保持する。
【０１１５】
次に、探索部１１２は、展開先ＧＰである各隣接ＧＰをＧＰｎに設定してＧＰｎを展開する処理を繰り返しながら、終点ＧＰを探索する（ステップ２１０６）。そして、ＧＰｎが終点ＧＰに一致した後、探索部１１２は、ＧＰｎの親ポインタをチェックする（ステップ２１０７）。
【０１１６】
ＧＰｎの親ポインタがＮＵＬＬでない場合（ステップ２１０７，ＮＯ）、探索部１１２は、その親ポインタが指す親ＧＰをＧＰｎに設定して（ステップ２１０８）、ステップ２１０７以降の処理を繰り返す。ステップ２１０８において、親ポインタが指す親ＧＰが配線済みのネットに属する場合、探索部１１２は、そのネット名を取得する。これにより、取得したネット名が示すネットの配線経路を変更することが可能になる。
【０１１７】
そして、ＧＰｎの親ポインタがＮＵＬＬになった場合（ステップ２１０７，ＹＥＳ）、探索部１１２は、ＧＰｎが始点ＧＰに一致したと判定する。そこで、探索部１１２は、終点ＧＰから始点ＧＰに到達するまでに辿った各ＧＰを繋ぐ経路を、ドライバピンからレシーバピンまでの配線経路に決定し（ステップ２１０９）、ＯＰＥＮ＿ＬＩＳＴ及びＣＬＯＳＥ＿ＬＩＳＴを空にする（ステップ２１１０）。
【０１１８】
次に、探索部１１２は、ＲＥＣＥＩＶＥＲ＿ＬＩＳＴからすべてのレシーバピンを抽出したか否かをチェックし（ステップ２１１１）、未抽出のレシーバピンが残っている場合（ステップ２１１１，ＮＯ）、ステップ２１０１以降の処理を繰り返す。そして、すべてのレシーバピンを抽出した場合（ステップ２１１１，ＹＥＳ）、探索部１１２は、処理を終了する。
【０１１９】
図２２は、図２１のステップ２１０６における終点ＧＰ探索処理の例を示すフローチャートである。まず、探索部１１２は、すべての展開先ＧＰを処理したか否かをチェックする（ステップ２２０１）。
【０１２０】
未処理の展開先ＧＰが残っている場合（ステップ２２０１，ＮＯ）、探索部１１２は、１つの展開先ＧＰをＧＰｍに設定して、式（２）〜式（５）により、ＧＰｍのコストｆ＊（ｍ）を計算する（ステップ２２０２）。
【０１２１】
次に、探索部１１２は、ＯＰＥＮ＿ＬＩＳＴにＧＰｍが含まれているか否かをチェックする（ステップ２２０３）。ＯＰＥＮ＿ＬＩＳＴにＧＰｍが含まれていない場合（ステップ２２０３，ＮＯ）、探索部１１２は、計算したｆ＊（ｍ）をＦ（ｍ）に設定し、ＧＰｍをＯＰＥＮ＿ＬＩＳＴに追加して（ステップ２２０４）、ステップ２２０１以降の処理を繰り返す。
【０１２２】
一方、ＯＰＥＮ＿ＬＩＳＴにＧＰｍが含まれている場合（ステップ２２０３，ＹＥＳ）、探索部１１２は、計算したｆ＊（ｍ）とＦ（ｍ）とを比較する（ステップ２２０５）。ｆ＊（ｍ）がＦ（ｍ）よりも小さい場合（ステップ２２０５，ＹＥＳ）、探索部１１２は、ｆ＊（ｍ）をＦ（ｍ）に設定することでＦ（ｍ）を更新し、ステップ２２０１以降の処理を繰り返す。一方、ｆ＊（ｍ）がＦ（ｍ）以上である場合（ステップ２２０５，ＮＯ）、探索部１１２は、Ｆ（ｍ）を更新することなく、ステップ２２０１以降の処理を繰り返す。
【０１２３】
すべての展開先ＧＰを処理した場合（ステップ２２０１，ＹＥＳ）、探索部１１２は、ＯＰＥＮ＿ＬＩＳＴに格納されているＧＰｍのうち、Ｆ（ｍ）が最も小さなＧＰｍを選択する（ステップ２２０７）。そして、探索部１１２は、選択したＧＰｍをＧＰｎに設定して、ＧＰｎを６方向に展開する。
【０１２４】
次に、探索部１１２は、展開元ＧＰであるＧＰｎをＯＰＥＮ＿ＬＩＳＴから抽出して、ＣＬＯＳＥ＿ＬＩＳＴに設定する（ステップ２２０８）。そして、探索部１１２は、ＧＰｎが終点ＧＰに一致するか否かをチェックする（ステップ２２０９）。
【０１２５】
ＧＰｎが終点ＧＰに一致しない場合（ステップ２２０９，ＮＯ）、探索部１１２は、ステップ２２０１以降の処理を繰り返す。そして、ＧＰｎが終点ＧＰに一致した場合（ステップ２２０９，ＹＥＳ）、探索部１１２は、処理を終了する。
【０１２６】
図２３は、図２２のステップ２２０２におけるコスト計算処理の例を示すフローチャートである。まず、探索部１１２は、探索対象ネットに対して設定したコスト計算式から、各項を抽出する（ステップ２３０１）。
【０１２７】
次に、探索部１１２は、配線用レイアウトデータ３１６を参照して、ＧＰｍに対応する配線層が存在するか否かをチェックする（ステップ２３０２）。ＧＰｍに対応する配線層が存在する場合（ステップ２３０２，ＹＥＳ）、探索部１１２は、その配線層の識別情報を取得する（ステップ２３０３）。そして、探索部１１２は、取得した識別情報が使用禁止層又は配線禁止層に対応するか否かをチェックする（ステップ２３０４）。
【０１２８】
取得した識別情報が使用禁止層又は配線禁止層に対応しない場合（ステップ２３０４，ＮＯ）、探索部１１２は、配線として使用されるメタルがＧＰｍに存在するか否かをチェックする（ステップ２３０５）。配線として使用されるメタルがＧＰｍに存在し、かつ、コスト計算式にｆＮＭの項が含まれている場合（ステップ２３０５，ＹＥＳ）、探索部１１２は、ｆＮＭのコスト値をコストＭ（ｍ）に加算する（ステップ２３０６）。
【０１２９】
次に、探索部１１２は、ＧＰｎからＧＰｍへの移動が、ｄＬＣが適用される乗り換え方向に該当するか否かをチェックする（ステップ２３１２）。ＧＰｎからＧＰｍへの移動が乗り換え方向に該当し、かつ、コスト計算式にｄＬＣの項が含まれている場合（ステップ２３１２，ＹＥＳ）、探索部１１２は、ｄＬＣのコスト値をコストＭ（ｍ）に加算する（ステップ２３１３）。
【０１３０】
次に、探索部１１２は、ＧＰｎからＧＰｍへの移動が、ｅＮＰが適用される非優先方向に該当するか否かをチェックする（ステップ２３１４）。ＧＰｎからＧＰｍへの移動が非優先方向に該当し、かつ、コスト計算式にｅＮＰの項が含まれている場合（ステップ２３１４，ＹＥＳ）、探索部１１２は、ｅＮＰのコスト値をコストＭ（ｍ）に加算する（ステップ２３１５）。
【０１３１】
次に、探索部１１２は、コストＭ（ｍ）を用いて、式（２）〜式（５）により、ＧＰｍのコストｆ＊（ｍ）を計算する（ステップ２３１６）。
【０１３２】
取得した識別情報が使用禁止層又は配線禁止層に対応し、かつ、コスト計算式にａＰＬ又はｇＢＬの項が含まれている場合（ステップ２３０４，ＹＥＳ）、探索部１１２は、ａＰＬ又はｇＢＬのコスト値をコストＭ（ｍ）に加算する（ステップ２３１１）。
【０１３３】
配線として使用されるメタルがＧＰｍに存在しない場合（ステップ２３０５，ＮＯ）、探索部１１２は、ダミーメタルがＧＰｍに存在するか否かをチェックする（ステップ２３０７）。ダミーメタルがＧＰｍに存在する場合（ステップ２３０７，ＹＥＳ）、探索部１１２は、ダミービアがＧＰｍに存在するか否かをチェックする（ステップ２３０８）。
【０１３４】
ダミービアがＧＰｍに存在し、かつ、コスト計算式にｂＤＭＶの項が含まれている場合（ステップ２３０８，ＹＥＳ）、探索部１１２は、ｂＤＭＶのコスト値をコストＭ（ｍ）に加算する（ステップ２３０９）。
【０１３５】
一方、ダミービアがＧＰｍに存在せず、かつ、コスト計算式にｃＤＭの項が含まれている場合（ステップ２３０８，ＮＯ）、探索部１１２は、ｃＤＭのコスト値をコストＭ（ｍ）に加算する（ステップ２３１０）。
【０１３６】
ＧＰｍに対応する配線層が存在しない場合（ステップ２３０２，ＮＯ）、又はダミーメタルがＧＰｍに存在しない場合（ステップ２３０７，ＮＯ）、探索部１１２は、ステップ２３１２以降の処理を行う。
【０１３７】
ＧＰｎからＧＰｍへの移動が乗り換え方向に該当しない場合（ステップ２３１２，ＮＯ）、探索部１１２は、ステップ２３１４以降の処理を行う。ＧＰｎからＧＰｍへの移動が非優先方向に該当しない場合（ステップ２３１４，ＮＯ）、探索部１１２は、ステップ２３１６の処理を行う。
【０１３８】
例えば、図１７のコストファイル３２０−１〜コストファイル３２０−５を用いた場合、コストファイル３２０−１のコスト計算式に基づいて、ＥＣＯネット“ｅｃｏ＿ｎｅｔ１”に対する、配線層数ルールを満たす配線経路が生成される。また、コストファイル３２０−２のコスト計算式に基づいて、ＥＣＯネット“ｅｃｏ＿ｎｅｔ１”に対する、配線密度ルールを満たす配線経路が生成される。さらに、コストファイル３２０−３のコスト計算式に基づいて、ＥＣＯネット“ｅｃｏ＿ｎｅｔ１”に対する、タイミングルールを満たす配線経路が生成される。
【０１３９】
そして、コストファイル３２０−４のコスト計算式に基づいて、ＥＣＯネット“ｅｃｏ＿ｎｅｔ２”に対する、配線層数ルールを満たす配線経路が生成される。また、コストファイル３２０−５のコスト計算式に基づいて、ＥＣＯネット“ｅｃｏ＿ｎｅｔ２”に対する、タイミングルールを満たす配線経路が生成される。
【０１４０】
次に、図２４から図３４までを参照しながら、図４Ｂのステップ４１２における表示処理の例について説明する。
【０１４１】
図２４は、図４Ｂのステップ４１２における表示処理の例を示すフローチャートである。まず、生成部１１３は、配線用レイアウトデータ３１６から、半導体回路のサイズ、論理素子の座標、電源配線、ダミーメタル等の情報を取得する（ステップ２４０１）。次に、生成部１１３は、取得した情報に基づいて、ネットの配線を除く変更前のレイアウトを表示する表示情報を生成し（ステップ２４０２）、表示部３０２に出力する（ステップ２４０３）。そして、表示部３０２は、その表示情報を用いて、変更前のレイアウトを画面上に表示する。
【０１４２】
次に、生成部１１３は、配線用ネットリスト３１４から１つのネット名を取得する（ステップ２４０４）。そして、生成部１１３は、配線経路データ３１５を参照して（ステップ２４０５）、取得したネット名が配線経路データ３１５に含まれているか否かをチェックする（ステップ２４０６）。
【０１４３】
取得したネット名が配線経路データ３１５に含まれている場合（ステップ２４０６，ＹＥＳ）、生成部１１３は、そのネット名が探索対象ネットを示していると判定する。そして、生成部１１３は、その探索対象ネットの配線経路に対して、コスト計算式及び表示パターンを設定し（ステップ２４０７）、表示色を設定して（ステップ２４０８）、配線経路を表示する表示情報を生成する（ステップ２４０９）。表示部３０２は、その表示情報を用いて、配線経路を表す配線を画面上に表示する。
【０１４４】
一方、取得したネット名が配線経路データ３１５に含まれていない場合（ステップ２４０６，ＮＯ）、生成部１１３は、そのネット名がＥＣＯネット以外のネットを示していると判定する。そして、生成部１１３は、配線用レイアウトデータ３１６を参照して（ステップ２４１１）、そのネット名が示すネットの配線経路の情報を取得する（ステップ２４１２）。
【０１４５】
配線経路の情報には、ネット名に対応するすべての配線セグメントの配線層の識別情報と座標とが含まれる。各配線セグメントは、配線経路の一部に相当し、配線領域内の２点を結ぶ線分を表す。配線セグメントの位置及び長さは、例えば、線分の両端の座標によって表すことができる。
【０１４６】
次に、生成部１１３は、取得した配線経路の情報に基づいて、配線経路を表示する表示情報を生成し（ステップ２４１３）、表示部３０２に出力する（ステップ２４１４）。そして、表示部３０２は、その表示情報を用いて、配線経路を表す配線を画面上に表示する。
【０１４７】
ステップ２４０９又はステップ２４１４の処理の後、生成部１１３は、配線用ネットリスト３１４からすべてのネット名を取得したか否かをチェックする（ステップ２４１０）。未取得のネット名が残っている場合（ステップ２４１０，ＮＯ）、生成部１１３は、ステップ２４０４以降の処理を繰り返す。そして、すべてのネット名を取得した場合（ステップ２４１０，ＹＥＳ）、生成部１１３は、処理を終了する。
【０１４８】
図２５は、図２４のステップ２４０７におけるコスト計算式／表示パターン設定処理の例を示すフローチャートである。まず、生成部１１３は、配線表示データ３１８を参照し（ステップ２５０１）、ネット名に対応するコスト計算式及び表示パターンの識別情報を取得する（ステップ２５０２）。
【０１４９】
次に、生成部１１３は、ネット名に対応するコストファイル３２０−ｉを参照し（ステップ２５０３）、そのコストファイル３２０−ｉにコスト計算式が含まれているか否かをチェックする（ステップ２５０４）。例えば、図１１の“ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ１”の場合、“ｅｃｏ＿ｎｅｔ１”に対応する図１７のコストファイル３２０−１〜コストファイル３２０−３のうち、“ｃｏｓｔ１”に対応するコストファイル３２０−１が参照される。
【０１５０】
コストファイル３２０−ｉにコスト計算式が含まれていない場合（ステップ２５０４，ＮＯ）、コストデフォルトファイル３１９を参照し（ステップ２５０５）、デフォルトのコスト計算式を配線経路の属性情報に設定する（ステップ２５０６）。一方、コストファイル３２０−ｉにコスト計算式が含まれている場合（ステップ２５０４，ＹＥＳ）、そのコスト計算式を配線経路の属性情報に設定する（ステップ２５０６）。
【０１５１】
次に、生成部１１３は、属性情報を表示する表示情報を生成し（ステップ２５０７）、表示部３０２に出力する（ステップ２５０８）。そして、表示部３０２は、その表示情報を用いて、コスト計算式を画面上に表示する。
【０１５２】
次に、生成部１１３は、パターン定義ファイル３２１を参照し（ステップ２５０９）、ステップ２５０２で取得した識別情報が示す表示パターンを取得して、配線経路に設定する（ステップ２５１０）。
【０１５３】
図２６は、図２４のステップ２４０８における表示色設定処理の例を示すフローチャートである。まず、生成部１１３は、配線経路データ３１５から、ネット名が示す配線経路の情報を取得する（ステップ２６０１）。配線経路の情報には、ネット名に対応するすべての配線セグメントの配線層の識別情報及び座標が含まれる。
【０１５４】
次に、生成部１１３は、ネット名に対応するコストファイル３２０−ｉを参照し（ステップ２６０２）、コストファイル３２０−ｉに表示色が含まれているか否かをチェックする（ステップ２６０３）。
【０１５５】
コストファイル３２０−ｉに表示色が含まれている場合（ステップ２６０３，ＹＥＳ）、生成部１１３は、その表示色を取得して（ステップ２６０４）、すべての配線セグメントに設定する（ステップ２６０５）。この場合、各配線セグメントの配線層に依存することなく、配線経路に含まれるすべての配線セグメントに同じ表示色が設定される。
【０１５６】
一方、コストファイル３２０−ｉに表示色が含まれていない場合（ステップ２６０３，ＮＯ）、生成部１１３は、カラー定義ファイル３２２を参照する（ステップ２６０６）。そして、生成部１１３は、各配線セグメントの配線層に対応する表示色を取得して、その配線セグメントに設定する（ステップ２６０７）。この場合、配線層毎に異なる表示色が配線セグメントに設定される。
【０１５７】
図２７は、図２４のステップ２４０９における配線経路表示処理の例を示すフローチャートである。まず、生成部１１３は、配線経路データ３１５から、ネット名が示す配線経路に含まれる１つの配線セグメントの配線層の識別情報と、その配線セグメントの座標とを取得する（ステップ２７０１）。そして、生成部１１３は、取得した識別情報が示す配線層において、取得した座標が示す配線セグメントの位置に、別の配線セグメントが既に表示されているか否かをチェックする（ステップ２７０２）。
【０１５８】
別の配線セグメントが表示されている場合（ステップ２７０２，ＹＥＳ）、生成部１１３は、配線ショートが発生すると判定する。そして、生成部１１３は、エラー定義ファイル３２３からエラー表示パターンを取得し（ステップ２７０３）、２つの配線セグメントがオーバラップする位置にエラー表示パターンを表示する表示情報を生成する（ステップ２７０４）。
【０１５９】
次に、生成部１１３は、図２５のステップ２５１０で設定した表示パターンと、図２６のステップ２６０５又はステップ２６０６で設定した表示色とを用いて、配線セグメントを表示する表示情報を生成する（ステップ２７０５）。
【０１６０】
次に、生成部１１３は、エラー表示パターンを表示する表示情報と、配線セグメントを表示する表示情報とを、表示部３０２に出力する（ステップ２７０６）。そして、表示部３０２は、それらの表示情報を用いて、エラー表示パターン及び配線セグメントを画面上に表示する。
【０１６１】
一方、別の配線セグメントが表示されていない場合（ステップ２７０２，ＮＯ）、生成部１１３は、ステップ２７０５以降の処理を行う。この場合、表示部３０２は、配線セグメントのみを画面上に表示する。
【０１６２】
次に、生成部１１３は、配線経路に含まれるすべての配線セグメントの情報を配線経路データ３１５から取得したか否かをチェックする（ステップ２７０７）。未取得の配線セグメントが残っている場合（ステップ２７０７，ＮＯ）、生成部１１３は、ステップ２７０１以降の処理を繰り返す。そして、すべての配線セグメントの情報を取得した場合（ステップ２７０７，ＹＥＳ）、生成部１１３は、処理を終了する。
【０１６３】
図２８は、図２４のステップ２４０３において変更前のレイアウトを表示する第１の表示例を示している。表示部３０２の画面上には、半導体回路のレイアウトを表示するレイアウト表示領域２８０１と、配線経路の属性情報を表示する属性表示領域２８０２とが設けられる。図２８の例では、図９に示した半導体回路の構成要素のうち、メタル９３１〜メタル９３５及びビア９５１〜ビア９５３以外の構成要素が、レイアウト表示領域２８０１に表示されており、属性表示領域２８０２には情報が表示されていない。
【０１６４】
レイアウト表示領域２８０１において、ドライバピン９２１、ドライバピン９２２、レシーバピン９２３〜レシーバピン９２５、及びダミーメタル９４１〜ダミーメタル９４５は、緑で表示されている。また、ダミーメタル９４６〜ダミーメタル９４９は、使用禁止層に設けられており、赤で表示されている。ダミービア９６１及びダミービア９６２は、紫で表示されている。
【０１６５】
図２９は、図２４のステップ２４１４においてＥＣＯネット以外のネットの配線経路を表示する第２の表示例を示している。図２９の例では、図２８のレイアウトに対して、図９に示したメタル９３１〜メタル９３５及びビア９５１〜ビア９５３が追加されている。メタル９３１及びメタル９３２は、緑で表示されている。また、メタル９３３〜メタル９３５は、使用禁止層に設けられており、赤で表示されている。ビア９５１〜ビア９５３は、黄色で表示されている。
【０１６６】
図３０は、図２４のステップ２４０９においてＥＣＯネットの配線経路を表示する第３の表示例を示している。図３０の例では、図２９のレイアウトに対して、図１１の“ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ１”に対応する配線経路３００１が追加され、図１３の“ｐａｔｔｅｒｎ１”の表示パターンを用いて表示されている。配線経路３００１に含まれるすべての配線セグメントは同じ配線層に存在するため、配線経路３００１全体が緑で表示されている。
【０１６７】
また、属性表示領域２８０２には、配線経路３００１の属性情報３０１１として、ネット名、表示パターン、コスト計算式、係数、及び変数が表示されている。
【０１６８】
図３１は、図３０のレイアウトに対して、さらに配線経路を追加した第４の表示例を示している。図３１の例では、“ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ２”に対応する配線経路３００２と“ｅｃｏ＿ｎｅｔ１＿ｃｏｓｔ３”に対応する配線経路３００３が追加されている。
【０１６９】
配線経路３００２は、配線セグメントに対応するメタル３１０１−１〜メタル３１０１−４を含み、“ｐａｔｔｅｒｎ２”の表示パターンを用いて表示されている。メタル３１０１−１、メタル３１０１−３、及びメタル３１０１−４は、同じ配線層に存在し、緑で表示されている。一方、メタル３１０１−２は、別の配線層に存在し、赤で表示されている。
【０１７０】
配線経路３００３は、“ｐａｔｔｅｒｎ３”の表示パターンを用いて表示されている。配線経路３００３に含まれるすべての配線セグメントは同じ配線層に存在するため、配線経路３００３全体が赤で表示されている。
【０１７１】
また、属性表示領域２８０２には、配線経路３００２の属性情報３０１２と配線経路３００３の属性情報３０１３が追加されている。
【０１７２】
図３２は、図３１のレイアウトに対して、さらに配線経路を追加した第５の表示例を示している。図３２の例では、“ｅｃｏ＿ｎｅｔ２＿ｃｏｓｔ１”に対応する配線経路３００４が追加され、“ｐａｔｔｅｒｎ８”の表示パターンを用いて表示されている。配線経路３００４に含まれるすべての配線セグメントは同じ配線層に存在するため、配線経路３００４全体が緑で表示されている。
【０１７３】
この場合、配線経路３００１及び配線経路３００４は同じ配線層に存在するため、これらの配線経路がオーバラップする位置に、エラー表示パターン３２０１が表示される。同様に、配線経路３００２のメタル３１０１−４と配線経路３００４とがオーバラップする位置に、エラー表示パターン３２０２が表示される。また、属性表示領域２８０２には、配線経路３００４の属性情報３０１４が追加されている。
【０１７４】
図３３は、図３２のレイアウトに対して、さらに配線経路を追加した第６の表示例を示している。図３３の例では、“ｅｃｏ＿ｎｅｔ２＿ｃｏｓｔ３”に対応する配線経路３００５が追加され、“ｐａｔｔｅｒｎ９”の表示パターンを用いて表示されている。“ｅｃｏ＿ｎｅｔ２＿ｃｏｓｔ３”に対応する図１７のコストファイル３２０−５において、表示色が“ｒｅｄ”に設定されているため、配線経路３００５全体が赤で表示されている。また、属性表示領域２８０２には、配線経路３００５の属性情報３０１５が追加されている。
【０１７５】
このように、各ＥＣＯに対する異なるコスト計算式に基づく配線経路をそれぞれ異なる表示パターンで表示し、各配線経路に対応するコスト計算式を併せて表示することで、配線経路とコスト計算式の対応関係を容易に認識することができる。また、配線層毎に異なる表示色を用いることで、配線経路と配線層の対応関係を認識することができ、エラー表示パターンを表示することで、配線ショートの発生箇所を認識することができる。
【０１７６】
図４Ｂのステップ４１３において、ユーザは、図３３の画面を見ながら、配線経路３００１〜配線経路３００３の中から、ＥＣＯネット“ｅｃｏ＿ｎｅｔ１”に対する最適な配線経路を選択して、選択指示を入力する。同様に、ユーザは、配線経路３００４及び配線経路３００５から、ＥＣＯネット“ｅｃｏ＿ｎｅｔ２”に対する最適な配線経路を選択して、選択指示を入力する。
【０１７７】
図３４は、ユーザの選択指示に従って決定された配線経路の例を示している。この例では、“ｅｃｏ＿ｎｅｔ１”に対して配線経路３００１が選択され、“ｅｃｏ＿ｎｅｔ２”に対して配線経路３００５が選択されている。配線経路３００１は、配線層数ルールを満たす配線経路であり、配線経路３００５は、タイミングルールを満たす配線経路である。
【０１７８】
ステップ４１３においてすべてのＥＣＯネットの配線経路を決定した後、ユーザは、配線リペアを実施して、決定した配線経路の一部を別の配線経路へ変更することも可能である。この場合、ユーザは、変更対象のＥＣＯネットに対応するコストファイル３２０−ｉのコスト計算式を変更したり、新たなコストファイル３２０−ｉを追加したりして、半導体設計支援装置１０１にステップ４０７〜ステップ４１４の処理を再度実行させる。
【０１７９】
図１及び図３の半導体設計支援装置１０１の構成は一例に過ぎず、半導体設計支援装置１０１の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、半導体設計支援装置１０１がユーザ端末から処理要求を受信して設計変更処理を行い、生成した表示情報をユーザ端末へ送信する場合は、図３の表示部３０２を省略することができる。
【０１８０】
配線経路毎に表示パターンを変更しない場合、パターン定義ファイル３２１を省略することができ、配線層毎に配線経路の表示色を変更しない場合、カラー定義ファイル３２２を省略することができる。エラー表示パターンを画面上に表示しない場合、エラー定義ファイル３２３を省略することができる。
【０１８１】
図２、図４Ａ、図４Ｂ、及び図２０〜図２７のフローチャートは一例に過ぎず、半導体設計支援装置１０１の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、図４Ａ及び図４Ｂの設計変更処理において、配線用ネットリスト３１４及び配線用レイアウトデータ３１６が半導体設計支援装置１０１の外部の装置により生成される場合、ステップ４０１〜ステップ４０６の処理を省略することができる。半導体集積回路に対する設計変更は、新たなネットの追加に限られず、ネットの削除又修正を伴う論理変更であってもよく、信号タイミングの修正であってもよい。
【０１８２】
図２０〜図２３の配線経路探索処理において、探索部１１２は、ドライバピン及びレシーバピンを始点ＧＰ及び終点ＧＰにそれぞれ設定する代わりに、レシーバピン及びドライバピンを始点ＧＰ及び終点ＧＰにそれぞれ設定して、配線経路を探索してもよい。Ａ＊探索アルゴリズムの代わりに、コスト計算式に基づく別の経路探索アルゴリズムを用いてもよい。
【０１８３】
図２３のコスト計算処理において、コスト計算式にａＰＬ及びｇＢＬが含まれていない場合は、ステップ２３０４及びステップ２３１１の処理を省略することができる。コスト計算式にｆＮＭが含まれていない場合は、ステップ２３０５及びステップ２３０６の処理を省略することができる。
【０１８４】
コスト計算式にｂＤＭＶが含まれていない場合は、ステップ２３０８及びステップ２３０９の処理を省略することができる。コスト計算式にｃＤＭが含まれていない場合は、ステップ２３０８及びステップ２３１０の処理を省略することができる。コスト計算式にｂＤＭＶ及びｃＤＭが含まれていない場合は、ステップ２３０７〜ステップ２３１０の処理を省略することができる。
【０１８５】
コスト計算式にｄＬＣが含まれていない場合は、ステップ２３１２及びステップ２３１３の処理を省略することができる。コスト計算式にｅＮＰが含まれていない場合は、ステップ２３１４及びステップ２３１５の処理を省略することができる。
【０１８６】
図２５のコスト計算式／表示パターン設定処理において、コスト計算式を画面上に表示しない場合、ステップ２５０３〜ステップ２５０８の処理を省略することができる。配線経路毎に表示パターンを変更しない場合、ステップ２５０９及びステップ２５１０の処理を省略することができる。
【０１８７】
配線層毎に配線経路の表示色を変更しない場合、図２６の表示色設定処理を省略することができる。図２７の配線経路表示処理において、エラー表示パターンを画面上に表示しない場合、ステップ２７０２〜ステップ２７０４の処理を省略することができる。
【０１８８】
図５〜図７の半導体回路及び配線経路は一例に過ぎず、別の半導体回路及び配線経路を用いてもよい。図８の配線領域は一例に過ぎず、別の配線領域を用いてもよい。図９の半導体回路及び図２８〜図３４のレイアウトは一例に過ぎず、別の半導体回路及びレイアウトを用いてもよい。
【０１８９】
図１０〜図１９のネットリスト、レイアウトデータ、ファイル等の情報は一例に過ぎず、別の情報を用いてもよい。例えば、図１５〜図１７のコスト計算式において、各項の係数をすべて１に設定してもよい。この場合、コスト計算式は、変数のみを用いて定義される。
【０１９０】
図１及び図３の半導体設計支援装置１０１は、例えば、図３５に示すような情報処理装置（コンピュータ）を用いて実現可能である。図３５の情報処理装置は、Central Processing Unit（ＣＰＵ）３５０１、メモリ３５０２、入力装置３５０３、出力装置３５０４、補助記憶装置３５０５、媒体駆動装置３５０６、及びネットワーク接続装置３５０７を備える。これらの構成要素はバス３５０８により互いに接続されている。
【０１９１】
メモリ３５０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリであり、設計変更処理に用いられるプログラム及びデータを格納する。メモリ３５０２は、図１及び図３の記憶部１１１として用いることができる。
【０１９２】
ＣＰＵ３５０１（プロセッサ）は、例えば、メモリ３５０２を利用してプログラムを実行することにより、図１及び図３の探索部１１２、生成部１１３、及び制御部３０１として動作する。
【０１９３】
入力装置３５０３は、例えば、キーボード、ポインティングデバイス等であり、ユーザからの指示又は情報の入力に用いられる。出力装置３５０４は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザへの問い合わせ又は処理結果の出力に用いられる。処理結果は、探索された配線経路であってもよい。出力装置３５０４は、図３の表示部３０２として用いることができる。
【０１９４】
補助記憶装置３５０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置３５０５は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置３５０５にプログラム及びデータを格納しておき、それらをメモリ３５０２にロードして使用することができる。補助記憶装置３５０５は、図１及び図３の記憶部１１１として用いることができる。
【０１９５】
媒体駆動装置３５０６は、可搬型記録媒体３５０９を駆動し、その記録内容にアクセスする。可搬型記録媒体３５０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体３５０９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。ユーザは、この可搬型記録媒体３５０９にプログラム及びデータを格納しておき、それらをメモリ３５０２にロードして使用することができる。
【０１９６】
このように、設計変更処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ３５０２、補助記憶装置３５０５、又は可搬型記録媒体３５０９のような、物理的な（非一時的な）記録媒体である。
【０１９７】
ネットワーク接続装置３５０７は、Local Area Network、Wide Area Network等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置３５０７を介して受け取り、それらをメモリ３５０２にロードして使用することができる。情報処理装置は、ネットワーク接続装置３５０７を介してユーザ端末から処理要求を受信し、設計変更を行って、生成した表示情報をユーザ端末へ送信することもできる。
【０１９８】
なお、情報処理装置が図３５のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、情報処理装置がユーザ端末から通信ネットワーク経由で処理要求を受信する場合は、入力装置３５０３及び出力装置３５０４を省略してもよい。他の装置との通信を行う必要がない場合は、ネットワーク接続装置３５０７を省略してもよく、可搬型記録媒体３５０９を利用しない場合は、媒体駆動装置３５０６を省略してもよい。
【０１９９】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０２００】
図１乃至図３５を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
半導体回路のレイアウトデータを記憶する記憶部と、
前記レイアウトデータに対する設計変更を行う際、前記半導体回路において変更が必要となる接続情報である処理対象ネットに対応する配線経路の候補として、複数の設計ルールそれぞれを満たす複数の配線経路を、前記複数の設計ルールそれぞれを表す複数のコスト計算式と、前記レイアウトデータとに基づいて探索する探索部と、
前記複数の配線経路を表示する表示情報を生成する生成部と、
を備えることを特徴とする半導体設計支援装置。
（付記２）
前記表示情報は、前記複数のコスト計算式それぞれに対応する複数の表示パターンを用いて、前記複数の配線経路を識別可能な状態で表示することを特徴とする付記１記載の半導体設計支援装置。
（付記３）
前記探索部は、前記処理対象ネットを含む複数の処理対象ネットの間で各処理対象ネットに対する探索結果が他の処理対象ネットに対する探索結果に依存しないように、各処理対象ネットに対する複数の配線経路の集合を探索し、前記表示情報は、前記複数の処理対象ネットそれぞれに対する複数の集合それぞれに含まれる前記複数の配線経路を表示することを特徴とする付記１又は２記載の半導体設計支援装置。
（付記４）
前記複数の設計ルールは、前記半導体回路に含まれる複数の配線層のうち前記設計変更によって変更される配線層の数を規定する第１の設計ルール、前記半導体回路内における配線密度を規定する第２の設計ルール、及び前記半導体回路内の信号のタイミングを規定する第３の設計ルールのうち、少なくとも２つ以上の設計ルールを含むことを特徴とする付記１乃至３のいずれか１項に記載の半導体設計支援装置。
（付記５）
前記複数のコスト計算式の各々は、前記半導体回路に含まれる複数の配線層のうち設計変更が禁止される使用禁止層を表すコスト値、前記使用禁止層以外の配線層のうち配線が禁止される配線禁止層を表すコスト値、ダミーメタルが存在することを表すコスト値、配線として使用されるメタルが存在することを表すコスト値、配線層の変更を表すコスト値、及び配線方向が優先方向とは異なることを表すコスト値のうち、少なくとも１つ以上のコスト値の総和を表すことを特徴とする付記１乃至４のいずれか１項に記載の半導体設計支援装置。
（付記６）
半導体回路のレイアウトデータに対する設計変更を行う際、前記半導体回路において変更が必要となる接続情報である処理対象ネットに対応する配線経路の候補として、複数の設計ルールそれぞれを満たす複数の配線経路を、前記複数の設計ルールそれぞれを表す複数のコスト計算式と、前記レイアウトデータとに基づいて探索し、
前記複数の配線経路を表示する表示情報を生成する、
処理をコンピュータが実行することを特徴とする半導体設計支援方法。
（付記７）
前記表示情報は、前記複数のコスト計算式それぞれに対応する複数の表示パターンを用いて、前記複数の配線経路を識別可能な状態で表示することを特徴とする付記６記載の半導体設計支援方法。
（付記８）
前記コンピュータは、前記処理対象ネットを含む複数の処理対象ネットの間で各処理対象ネットに対する探索結果が他の処理対象ネットに対する探索結果に依存しないように、各処理対象ネットに対する複数の配線経路の集合を探索し、前記表示情報は、前記複数の処理対象ネットそれぞれに対する複数の集合それぞれに含まれる前記複数の配線経路を表示することを特徴とする付記６又は７記載の半導体設計支援方法。
（付記９）
前記複数の設計ルールは、前記半導体回路に含まれる複数の配線層のうち前記設計変更によって変更される配線層の数を規定する第１の設計ルール、前記半導体回路内における配線密度を規定する第２の設計ルール、及び前記半導体回路内の信号のタイミングを規定する第３の設計ルールのうち、少なくとも２つ以上の設計ルールを含むことを特徴とする付記６乃至８のいずれか１項に記載の半導体設計支援方法。
（付記１０）
前記複数のコスト計算式の各々は、前記半導体回路に含まれる複数の配線層のうち設計変更が禁止される使用禁止層を表すコスト値、前記使用禁止層以外の配線層のうち配線が禁止される配線禁止層を表すコスト値、ダミーメタルが存在することを表すコスト値、配線として使用されるメタルが存在することを表すコスト値、配線層の変更を表すコスト値、及び配線方向が優先方向とは異なることを表すコスト値のうち、少なくとも１つ以上のコスト値の総和を表すことを特徴とする付記６乃至９のいずれか１項に記載の半導体設計支援方法。
（付記１１）
半導体回路のレイアウトデータに対する設計変更を行う際、前記半導体回路において変更が必要となる接続情報である処理対象ネットに対応する配線経路の候補として、複数の設計ルールそれぞれを満たす複数の配線経路を、前記複数の設計ルールそれぞれを表す複数のコスト計算式と、前記レイアウトデータとに基づいて探索し、
前記複数の配線経路を表示する表示情報を生成する、
処理をコンピュータに実行させる半導体設計支援プログラム。
（付記１２）
前記表示情報は、前記複数のコスト計算式それぞれに対応する複数の表示パターンを用いて、前記複数の配線経路を識別可能な状態で表示することを特徴とする付記１１記載の半導体設計支援プログラム。
（付記１３）
前記コンピュータは、前記処理対象ネットを含む複数の処理対象ネットの間で各処理対象ネットに対する探索結果が他の処理対象ネットに対する探索結果に依存しないように、各処理対象ネットに対する複数の配線経路の集合を探索し、前記表示情報は、前記複数の処理対象ネットそれぞれに対する複数の集合それぞれに含まれる前記複数の配線経路を表示することを特徴とする付記１１又は１２記載の半導体設計支援プログラム。
（付記１４）
前記複数の設計ルールは、前記半導体回路に含まれる複数の配線層のうち前記設計変更によって変更される配線層の数を規定する第１の設計ルール、前記半導体回路内における配線密度を規定する第２の設計ルール、及び前記半導体回路内の信号のタイミングを規定する第３の設計ルールのうち、少なくとも２つ以上の設計ルールを含むことを特徴とする付記１１乃至１３のいずれか１項に記載の半導体設計支援プログラム。
（付記１５）
前記複数のコスト計算式の各々は、前記半導体回路に含まれる複数の配線層のうち設計変更が禁止される使用禁止層を表すコスト値、前記使用禁止層以外の配線層のうち配線が禁止される配線禁止層を表すコスト値、ダミーメタルが存在することを表すコスト値、配線として使用されるメタルが存在することを表すコスト値、配線層の変更を表すコスト値、及び配線方向が優先方向とは異なることを表すコスト値のうち、少なくとも１つ以上のコスト値の総和を表すことを特徴とする付記１１乃至１４のいずれか１項に記載の半導体設計支援プログラム。
【符号の説明】
【０２０１】
１０１  半導体設計支援装置
１１１  記憶部
１１２  探索部
１１３  生成部
１２１  レイアウトデータ
３０１  制御部
３０２  表示部
３１１  変更前レイアウトデータ
３１２  変更後ネットリスト
３１３  ネットリスト
３１４  配線用ネットリスト
３１５  配線経路データ
３１６  配線用レイアウトデータ
３１７  変更後レイアウトデータ
３１８  配線表示データ
３１９  コストデフォルトファイル
３２０−１〜３２０−Ｎ  コストファイル
３２１  パターン定義ファイル
３２２  カラー定義ファイル
３２３  エラー定義ファイル
５０１、５０２  始点
５０３、５０４  終点
５１１、５１２  障害物
６０１、６０２、７０１、７０２、３００１〜３００５  配線経路
８０１  矩形領域
８０２  縦方向配線トラック
８０３  横方向配線トラック
８１１〜８１４、９３１〜９３５、３１０１−１〜３１０１−４  メタル
８２１、９４１〜９４９  ダミーメタル
８３１、８３２、９５１〜９５３  ビア
９０１  ダイエリア
９１１〜９１５  インスタンス
９２１、９２２  ドライバピン
９２３〜９２５  レシーバピン
９６１、９６２  ダミービア
１９０１、３２０１、３２０２  エラー表示パターン
２８０１  レイアウト表示領域
２８０２  属性表示領域
３０１１〜３０１５  属性情報
３５０１  ＣＰＵ
３５０２  メモリ
３５０３  入力装置
３５０４  出力装置
３５０５  補助記憶装置
３５０６  媒体駆動装置
３５０７  ネットワーク接続装置
３５０８  バス
３５０９  可搬型記録媒体
【図１】
0006672791.tif 000002
【図２】
0006672791.tif 000003
【図３】
0006672791.tif 000004
【図４Ａ】
0006672791.tif 000005
【図４Ｂ】
0006672791.tif 000006
【図５】
0006672791.tif 000007
【図６】
0006672791.tif 000008
【図７】
0006672791.tif 000009
【図８】
0006672791.tif 000010
【図９】
0006672791.tif 000011
【図１０】
0006672791.tif 000012
【図１１】
0006672791.tif 000013
【図１２】
0006672791.tif 000014
【図１３】
0006672791.tif 000015
【図１４】
0006672791.tif 000016
【図１５】
0006672791.tif 000017
【図１６】
0006672791.tif 000018
【図１７】
0006672791.tif 000019
【図１８】
0006672791.tif 000020
【図１９】
0006672791.tif 000021
【図２０】
0006672791.tif 000022
【図２１】
0006672791.tif 000023
【図２２】
0006672791.tif 000024
【図２３】
0006672791.tif 000025
【図２４】
0006672791.tif 000026
【図２５】
0006672791.tif 000027
【図２６】
0006672791.tif 000028
【図２７】
0006672791.tif 000029
【図２８】
0006672791.tif 000030
【図２９】
0006672791.tif 000031
【図３０】
0006672791.tif 000032
【図３１】
0006672791.tif 000033
【図３２】
0006672791.tif 000034
【図３３】
0006672791.tif 000035
【図３４】
0006672791.tif 000036
【図３５】
0006672791.tif 000037