(57)【要約】【課題】集積度の高い半導体集積回路の場合でもレイアウト設計における配線に係る時間を短縮する。【解決手段】半導体集積回路のレイアウト方法は、回路構成要素の配置された領域へ配線を実施後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出するステップと、配線混雑箇所を含む領域に、配線の実施が禁止される複数の配線禁止領域を生成するステップと、複数の配線禁止領域を迂回して配線を実施するステップと、迂回して配線を実施した後に、複数の配線禁止領域を削除するステップと、複数の配線禁止領域を削除した後に、再配線を実施するステップとを具備する。複数の配線禁止領域を生成するステップは、配線層毎に、配線の混雑に対応した領域内に配線禁止領域を発生させる割合に基づいて、複数の配線禁止領域の大きさ及び間隔を算出するステップと、算出結果に基づいて、領域に複数の配線禁止領域を生成するステップとを備える。【選択図】図３Ａ
2011186625.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の回路構成要素の配置された領域へ配線を実施後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出するステップと、
前記配線混雑箇所を含む領域に、配線の実施が禁止される複数の配線禁止領域を生成するステップと、
前記複数の配線禁止領域を迂回して配線を実施するステップと、
前記迂回して配線を実施した後に、前記複数の配線禁止領域を削除するステップと、
前記複数の配線禁止領域を削除した後に、再配線を実施するステップとを具備し、
前記複数の配線禁止領域を生成するステップは、
配線層毎に、前記配線の混雑に対応した前記領域内に配線禁止領域を発生させる割合に基づいて、前記複数の配線禁止領域の大きさ及び間隔を算出するステップと、 
前記算出結果に基づいて、前記領域に前記複数の配線禁止領域を生成するステップと
を備える
半導体集積回路のレイアウト方法。
【請求項２】
請求項１に記載の半導体集積回路のレイアウト方法において、
前記算出するステップにおける前記複数の配線禁止領域の各々の大きさは、配線トラック１本分である
半導体集積回路のレイアウト方法。
【請求項３】
請求項１に記載の半導体集積回路のレイアウト方法において、
前記算出するステップにおける前記複数の配線禁止領域の各々の間隔は、配線トラック１本分である
半導体集積回路のレイアウト方法。
【請求項４】
請求項１乃至３のいずれか一項に記載の半導体集積回路のレイアウト方法において、
前記複数の配線禁止領域を削除した後に、前記配線混雑箇所が無くなるまで、前記抽出するステップから前記削除するステップまでを繰り返し実施する
半導体集積回路のレイアウト方法。
【請求項５】
請求項１乃至４のいずれか一項に記載の半導体集積回路のレイアウト方法において、
前記再配線を実施した後に、配線エラーが収束しているかを判定するステップと、
前記配線エラーが収束していない場合、前記複数の配線禁止領域の大きさ及び間隔を変更するステップとを更に具備し、
配線エラーが収束するまで、前記変更するステップ、前記複数の配線禁止領域を生成するステップから前記再配線を実施するステップまで、及び、前記抽出するステップを繰り返して実施する
半導体集積回路のレイアウト方法。
【請求項６】
請求項５に記載の半導体集積回路のレイアウト方法において、
前記変更するステップにおける前記複数の配線禁止領域の大きさは、配線トラック１本分を追加するように変更される
半導体集積回路のレイアウト方法。
【請求項７】
請求項５に記載の半導体集積回路のレイアウト方法において、
前記変更するステップにおける前記複数の配線禁止領域の間隔は、配線トラック１本分を追加するように変更される
半導体集積回路のレイアウト方法。
【請求項８】
請求項１乃至７のいずれか一項に記載の半導体集積回路のレイアウト方法をコンピュータに実行させるプログラム。
【請求項９】
半導体集積回路の回路構成要素の配置及び配線後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出する混雑抽出判定部と、
前記配線混雑箇所を含む領域に、配線が禁止される複数の配線禁止領域を生成する禁止領域発生部と、
前記複数の配線禁止領域を迂回して配線を実施する配線再見積部と、
前記迂回して配線を実施した後に、前記複数の配線禁止領域を削除する禁止領域削除部と、
前記複数の配線禁止領域を削除した後に、再配線を実施する再配線部とを具備し、
前記禁止領域発生部は、
配線層毎に、前記領域内に配線禁止領域を発生させる割合に基づいて、前記複数の配線禁止領域の大きさ及び間隔を算出する禁止領域算出部と、 
前記算出結果に基づいて、前記領域に前記複数の配線禁止領域を生成する禁止領域発生部と
を備える
半導体集積回路のレイアウト装置。
【請求項１０】
請求項９に記載の半導体集積回路のレイアウト装置において、
前記禁止領域算出部が算出する前記複数の配線禁止領域の各々の大きさは、配線トラック１本分である
半導体集積回路のレイアウト装置。
【請求項１１】
請求項９に記載の半導体集積回路のレイアウト装置において、
前記禁止領域算出部が算出する前記複数の配線禁止領域の各々の間隔は、配線トラック１本分である
半導体集積回路のレイアウト装置。
【請求項１２】
請求項９乃至１１のいずれか一項に記載の半導体集積回路のレイアウト装置において、
前記禁止領域削除部が前記複数の配線禁止領域を削除した後に、前記配線混雑箇所が無くなるまで、前記混雑抽出判定部、前記禁止領域発生部、前記配線再見積部、及び前記禁止領域削除部がその動作を繰り返し実施する
半導体集積回路のレイアウト装置。
【請求項１３】
請求項９乃至１２のいずれか一項に記載の半導体集積回路のレイアウト装置において、
前記再配線を実施した後に、配線エラーが収束しているかを判定する配線エラー判定部と、
前記配線エラーが収束していない場合、前記複数の配線禁止領域の大きさ及び間隔を変更する禁止領域変更部とを更に具備し、
配線エラーが収束するまで、前記禁止領域変更部、前記禁止領域発生部、前記配線再見積部、前記禁止領域削除部再配線部、及び前記混雑抽出判定部がその動作を繰り返して実施する
半導体集積回路のレイアウト装置。
【請求項１４】
請求項１３に記載の半導体集積回路のレイアウト装置において、
前記禁止領域変更部が変更する前記複数の配線禁止領域の大きさは、配線トラック１本分を追加するように変更される
半導体集積回路のレイアウト装置。
【請求項１５】
請求項１３に記載の半導体集積回路のレイアウト装置において、
前記禁止領域変更部が変更する前記複数の配線禁止領域の間隔は、配線トラック１本分を追加するように変更される
半導体集積回路のレイアウト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のレイアウト装置及びレイアウト方法に関し、特に半導体集積回路の配線混雑に係るレイアウト装置及びレイアウト方法に関する。
【背景技術】
【０００２】
近年の微細化技術の進化に伴い、ＬＳＩの高集積化は益々進み、また、更なる高速動作が求められている。ＬＳＩのレイアウト設計において、自動配線ツールを用いて配線を実施することが知られている。自動配線ツールは、高速動作のタイミングを満たすために最短で配線を行う。しかし、ＬＳＩの高集積化により１チップ内の配線量は増加する。そのため、ハードマクロの角のように配線経路を妨げられ回り込む配線が多い領域や、複数のモジュール間で高速な信号のやり取りが交差する配線領域のような配線が混雑する領域が出てきている。配線が混雑する領域では、配線を配線トラックに引き切れないために発生する配線エラー（例えば、配線ショートやオープン、デザインルール違反など）の問題や、更に配線エラーを回避するために配線が迂回し、タイミングが悪化する問題などが顕著になってきている。 
【０００３】
迂回配線によるタイミングの悪化を防止することを目的とした技術として、特開２００８−２２７１９８号公報に半導体集積回路のレイアウト設計方法が開示されている。このレイアウト設計方法は、半導体集積回路を構成する回路要素の配置を実施した後、必要な配線領域と実際に配線可能な領域から配線混雜個所を抽出する段階と、前記配線混雜個所に対して配線禁止領域を生成する段階と、前記配線混雜個所を迂回して自動配線を実施する段階と、前記配線禁止領域を削除して再度自動配線を実施する段階と、を備える。すなわち、局所的な配線混雑を回避するために、まず、配線禁止領域を用いて事前に配線リソースを確保しておく。そして、初期配線時には、その領域を迂回させて自動配線を行う。再配線時には、配線禁止領域を削除して配線リソースを開放して配線を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２２７１９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特開２００８−２２７１９８号公報の技術は、配線禁止領域を迂回させて行う自動配線後に、配線エラーが増加するという問題がある。そのため、配線禁止領域を削除して再度自動配線を実施しても、配線エラーの増加に比例して修正しきれずに残る配線エラー数も増加し、更に配線エラー修正時間が増加するという問題が発生する。このような問題が発生する理由を以下に説明する。 
【０００６】
特開２００８−２２７１９８号公報の技術は、上述のように、まず、回路要素を配置し、配線見積りを実施し、配線の混雑する箇所を特定して、その混雑箇所を覆う座標を抽出する。次に、混雑箇所で不足する配線本数を計算して拡張値を求め、抽出された混雑箇所を覆う座標に求めた拡張値を足して配線禁止領域を発生させる。続いて、配線禁止領域を迂回するように自動配線を行う。その後、配線禁止領域を削除し、確保しておいた配線リソースへ、タイミングが厳しい配線を優先的に配線しながら、再配線を行う。このような手法により、混雑箇所のエラー修正時間の短縮、及び、迂回配線によるタイミング悪化防止を行う。 
【０００７】
しかし、近年のＬＳＩの高集積化、高速化によりタイミングが厳しい配線も含めた全体的配線量の増加により、局所的な配線混雑領域が大きくなっている。そのため、特開２００８−２２７１９８号公報の手法で発生させる配線リソース確保用の配線禁止領域も当然ながら大きくなる。配線禁止領域が大きくなると、配線禁止領域を迂回させる配線量も増加する。その結果、迂回した配線による配線エラー数が増加し、配線リソース確保用の配線禁止領域を削除して再配線をしても、配線エラーが収束しきれず残ってしまう問題や、配線エラー修正時間が増加する問題が生じる。
【課題を解決するための手段】
【０００８】
以下に、発明を実施するための形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００９】
本発明の第１の観点における半導体集積回路のレイアウト方法は、半導体集積回路の回路構成要素の配置された領域へ配線を実施後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出するステップ（Ｓ２、Ｓ３）と、配線混雑箇所を含む領域に、配線の実施が禁止される複数の配線禁止領域を生成するステップ（Ｓ４、Ｓ７）と、複数の配線禁止領域を迂回して配線を実施するステップ（Ｓ８）と、迂回して配線を実施した後に、複数の配線禁止領域を削除するステップ（Ｓ９）と、複数の配線禁止領域を削除した後に、再配線を実施するステップ（Ｓ１０）とを具備する。複数の配線禁止領域を生成するステップ（Ｓ４、Ｓ７）は、配線層毎に、配線の混雑に対応した領域内に配線禁止領域を発生させる割合に基づいて、複数の配線禁止領域の大きさ及び間隔を算出するステップ（Ｓ４）と、算出結果に基づいて、領域に複数の配線禁止領域を生成するステップ（Ｓ７）とを備える。
【００１０】
本発明では、配線の混雑に対応した領域内に配線禁止領域を発生させる割合に基づいて、複数の配線禁止領域の大きさ及び間隔を算出し、その大きさ及び間隔に基づいて複数の配線禁止領域を配置している。すなわち、配線混雑箇所に複数の配線禁止領域を分散配置することで、配線リソースを分散して確保することができる。複数の配線禁止領域を削除した後に再配線した場合、分散して配置された配線リソースをも利用して配線が行われるので、配線が混み合う可能性を低下させることができ、配線が混み合っても混み合い度合いを低くすることができる。その結果、配線禁止領域を迂回した配線による配線エラーの増加によって生じる、詳細配線後の配線エラーが残存する問題や配線エラー修正時間が増加するという問題を解決することが可能となる。
【００１１】
本発明の第２の観点におけるプログラムは、上記の半導体集積回路のレイアウト方法をコンピュータ（１０）に実行させる。
この場合にも、上記レイアウト方法と同様の作用効果を得ることができる。
【００１２】
本発明の第３の観点における半導体集積回路のレイアウト装置は、混雑抽出判定部（２５）と、禁止領域発生部（２６）と、配線再見積部（１７）と、禁止領域削除部（１８）と、再配線部（１９）とを具備する。混雑抽出判定部（２５）は、半導体集積回路の回路構成要素の配置及び配線後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出する。禁止領域発生部（２６）は、配線混雑箇所を含む領域に、配線が禁止される複数の配線禁止領域を生成する。配線再見積部（１７）は、複数の配線禁止領域を迂回して配線を実施する。禁止領域削除部（１８）は、迂回して配線を実施した後に、複数の配線禁止領域を削除する。再配線部（１９）は、複数の配線禁止領域を削除した後に、再配線を実施する。禁止領域発生部（２６）は、禁止領域算出部（１５）と、禁止領域発生部（１６）とを備える。禁止領域算出部（１５）は、配線層毎に、領域内に配線禁止領域を発生させる割合に基づいて、複数の配線禁止領域の大きさ及び間隔を算出する。禁止領域発生部（１６）は、算出結果に基づいて、領域に複数の配線禁止領域を生成する。
この場合にも、上記レイアウト方法と同様の作用効果を得ることができる。
【発明の効果】
【００１３】
本発明により、集積度の高い半導体集積回路の場合でも、レイアウト設計における配線に係る時間を短縮することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施の形態に係る半導体集積回路のレイアウト装置の構成を示すブロック図である。
【図２】図２は、本発明の実施の形態に係る半導体集積回路のレイアウト装置の構成を示す機能ブロック図である。
【図３Ａ】図３Ａは、本発明の実施の形態に係る半導体集積回路のレイアウト装置の動作の一例を示すフローチャートである。
【図３Ｂ】図３Ｂは、本発明の実施の形態に係る半導体集積回路のレイアウト装置の動作の一例を示すフローチャートである。
【図４】図４は、図３Ａ及び図３Ｂのレイアウト方法において、生成された配線禁止領域の配置を示す模式図である。
【図５】図５は、図３Ａ及び図３Ｂのレイアウト方法において、配線の収束過程を示す模式図である。
【図６】図６は、図３Ａ及び図３Ｂのレイアウト方法において、配線の収束過程を示す模式図である。
【図７Ａ】図７Ａは、図３Ａのフローチャートにおける配線禁止領域を生成するための情報を作成する手順（ステップＳ４）を示すフローチャートである。
【図７Ｂ】図７Ｂは、図３Ａのフローチャートにおける配線禁止領域を生成するための情報を作成する手順（ステップＳ４）を示すフローチャートである。
【図８】図８は、図３ＡのステップＳ４の配線禁止領域の生成処理の一例を説明する模式図である。
【図９】図９は、図３ＡのステップＳ４の配線禁止領域の生成処理の一例を説明する模式図である。
【図１０】図１０は、図３ＡのステップＳ４の配線禁止領域の生成処理の一例を説明する模式図である。
【図１１】図１１は、図３ＡのステップＳ４の配線禁止領域の生成処理の一例を説明する模式図である。
【図１２】図１２は、図３ＡのステップＳ４の配線禁止領域の生成処理の一例を説明する模式図である。
【図１３】図１３は、配線エラーが収束する例を説明する模式図である。
【図１４】図１４は、配線エラーが収束する例を説明する模式図である。
【図１５】図１５は、配線エラーが収束する例を説明する模式図である。
【図１６】図１６は、配線エラーが収束する例を説明する模式図である。
【発明を実施するための形態】
【００１５】
以下、本発明の半導体集積回路のレイアウト装置及びレイアウト方法の実施の形態に関して、添付図面を参照して説明する。
【００１６】
本発明の実施の形態に係る半導体集積回路のレイアウト装置の構成について説明する。図１は、本発明の実施の形態に係る半導体集積回路のレイアウト装置の構成を示すブロック図である。レイアウト装置１０は、コンピュータに例示される情報処理装置であり、演算処理装置１、第１の記憶装置２、第２の記憶装置３、ライブラリデータベース４、出力装置５、入力装置６を具備している。これらは、バスやケーブルにより互いに情報の送受信が可能に接続されている。
【００１７】
第１の記憶装置２は、ＬＳＩ論理設計データ、ＬＳＩ物理設計データ、ＳＴＡ（Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ）制約データ、配線禁止領域生成情報リスト等のようなレイアウトデータを記憶している。第２の記憶装置３は、論理回路の配置処理手順、概略配線処理手順、配線禁止領域生成処理手順、詳細配線処理手順等のようなレイアウト方法を記述したレイアウトプログラムを記憶している。ライブラリデータベース４は、タイミングライブラリや論理回路図、ネットの配線情報やチップ形状等を有するライブラリを記憶している。第１の記憶装置２、第２の記憶装置３、及びライブラリデータベース４は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、及びＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）のいずれかの電子機器又はその組み合わせに例示される。なお、ＣＤ−ＲＯＭやＤＶＤのような光ディスク、磁気ディスク、磁気テープ、半導体メモリその他のコンピュータ読取可能な記憶媒体に記録された情報（上記データやプログラム）を、その記憶媒体から読み込む装置であっても良い。
演算処理装置１は、第１の記憶装置２やライブラリデータベース４に記憶されたデータを用い、第２の記憶装置３に記憶されたレイアウトプログラムの処理を実行する。演算処理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）及びその周辺回路（例示：メインメモリであるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））に例示される。
出力装置５は、演算処理装置１によって作成された概略配線図や詳細配線図等のデータを出力する。出力装置は、ディスプレイやプリンタに例示される。
入力装置６は、ユーザに操作されることにより生成されるデータを演算処理装置１等に出力する。キーボードやマウスに例示される。
【００１８】
図２は、本発明の実施の形態に係る半導体集積回路のレイアウト装置の機能を示す機能ブロック図である。レイアウト装置１０は、概略配線部１１、配線混雑度抽出部１２、配線混雑度判定部１３、入力情報作成部１４、配線禁止領域発生情報生成部１５、配線禁止領域発生処理部１６、概略配線再見積部１７、配線禁止領域削除部１８、詳細配線部１９、配線エラー判定部２０、配線禁止領域発生条件変更部２１、及び入力情報判定部２２を備えている。上記コンピュータに例示される情報処理装置に、上記レイアウトプログラムがインストールされて、これら概略配線部１１〜入力情報判定部２２の機能が実現される。
【００１９】
概略配線部１１は、周知の方法に従って、論理回路（セル、モジュール、マクロ等）の自動配置の実施後に、概略配線を実施する。配線混雑度抽出部１２は、概略配線部１１による概略配線の結果から、部分領域ごとに配線混雑度を抽出する。配線混雑度判定部１３は、配線混雑度抽出部１２により抽出された配線混雑度において、配線混雑度が高い領域があるかを判定する。概略配線部１１、配線混雑度抽出部１２及び配線混雑度判定部１３は、半導体集積回路の回路構成要素の配置及び配線後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出する混雑抽出判定部２５とも見ることができる。
【００２０】
入力情報作成部１４は、入力情報作成部１４は、配線混雑度が高いと判定された領域に関して、配線禁止領域を生成するための入力情報Ｆ０１を作成する。配線禁止領域発生情報生成部１５は、入力情報作成部１４により作成された入力情報Ｆ０１を入力とし、配線リソース確保用の配線禁止領域発生情報Ｆ０２を生成する。配線禁止領域発生処理部１６は、配線禁止領域発生情報生成部１５により生成された配線禁止領域発生情報Ｆ０２を入力として、配線禁止領域を発生させる。入力情報作成部１４、配線禁止領域発生情報生成部１５、及び配線禁止領域発生処理部１６は、配線混雑箇所を含む領域に、配線が禁止される複数の配線禁止領域を生成する禁止領域発生部２６とも見ることができる。
【００２１】
概略配線再見積部１７は、配線禁止領域発生処理部１６により発生された配線禁止領域を考慮して、概略配線（経路）の再見積もりを実施する。配線禁止領域削除部１８は、配線禁止領域発生処理部１６により発生された配線禁止領域を削除する。詳細配線部１９は、配線混雑度判定部１３により配線混雑度が低いと判定された場合、詳細配線部１９は、詳細配線を実施する。配線エラー判定部２０は、詳細配線部１９による詳細配線のプロセス実施後に、配線エラーが残っておらず、収束できているかを判定する。配線禁止領域発生条件変更部２１は、配線エラー判定部２０により配線エラーが収束できていないと判定された場合、一箇所ずつの配線リソースを増やすために配線禁止領域を発生する条件を変更する。入力情報判定部２２は、配線禁止領域発生条件変更部２１により変更された配線禁止領域を発生する条件が、入力情報Ｆ０１を満足しているかを判定する。具体的な機能・動作は後述される。
【００２２】
次に、本発明の実施の形態に係る半導体集積回路のレイアウト装置の動作（レイアウト方法）について説明する。図３Ａ及び図３Ｂは、本発明の実施の形態に係る半導体集積回路のレイアウト装置の動作（レイアウト方法）の一例を示すフローチャートである。図４〜図６は、図３Ａ及び図３Ｂのレイアウト方法において、生成された配線禁止領域の配置及び配線の収束過程の一例を示す模式図である。図４、図５、図６において、半導体集積回路５０は、ハードマクロ領域（ＲＡＭ／ＲＯＭ等）１００、及び、機能モジュールＭ１〜Ｍ３を備えている。ハードマクロ領域１００の角及びその近傍には、配線が混雑する領域である配線混雑領域２００が存在している。配線混雑領域２００の周辺を拡大した範囲６００には、範囲６０１、格子６０２、配線禁止領域３００ａ、配線Ｎ１〜Ｎ５を含んでいる。範囲６０１は、配線混雑領域２００を含み、本実施の形態において配線禁止領域を発生させる範囲である。格子６０２は、配線禁止対象の配線層の配線が、配線トラック１本分の配線最小単位（１グリッド）を示す格子である。配線禁止領域３００ａは、配線が禁止される領域である。なお、図４〜図６において、図の縦方向の配線をＹ方向の配線とし、横方向の配線をＸ方向の配線とする。
【００２３】
以下、図３Ａ及び図３Ｂのフローチャートについて、図４〜図６の例を用いて説明する。ただし、以下に説明する各ステップは、図１に示すコンピュータシステムにおいて、第２記憶装置３にあるレイアウトプログラムと演算処理装置１との協働にて実施される処理である。各ステップにおいて入力されるデータや出力されるデータ等に関しては、第１記憶媒体２やライブラリデータベース４や入力装置６や出力装置５と入出力を行うものとする。
【００２４】
（１）ステップＳ１：
まず、周知の方法に従って、論理回路（セル、モジュール、マクロ等）の自動配置処理が実施される。概略配線部１１は、その自動配置処理の終了後、概略配線を実施する。概略配線とは以下のような処理である。すなわち、まず、配線領域内を大まかに複数に区分する。次に、その複数の区分の各々を、概略格子と称される複数の部分領域に分割する。その後、全ネットがどの部分領域を通るのかを調べるために、ある程度の配線エラーを許して概略経路を求める。概略配線部１１は、配線レポートを生成する。配線レポートには、配線エラー発生座標及びエラーとなっている配線層、また、配線領域全体における配線層毎の配線エラー数及びエラー発生率が記載されている。
【００２５】
（２）ステップＳ２： 
配線混雑度抽出部１２は、ステップＳ１の概略配線の結果から、部分領域ごとに配線混雑度を抽出する。部分領域とは、例えば概略格子としても良いし、概略格子を複数包含する領域としても良い。また、概略格子を更に細かく分割しても良い。細かく分割する程、配線混雑領域の絞込みが可能となるが、抽出時間が増大する。配線混雑度は、当該配線領域が保有している配線トラック数に対して配線されている配線数の割合であり、例えば部分領域内で、配線層ごとに、現在配線されている配線数を配線トラック数（配線可能本数）で割ることで抽出することができる。 
【００２６】
（３）ステップＳ３： 
配線混雑度判定部１３は、ステップＳ２で抽出された配線混雑度において、配線混雑度が高い領域があるかを判定する。判定基準は、例えば配線混雑度が１００％を超えた場合、配線可能本数を配線数が上回っており配線混雑度が高い領域と判定する。但し、プロセスやデザイン依存により、１００％を下回っていても配線が困難であると判断できる場合、配線混雑度はその依存度を加味し、適宜決定する。
配線混雑度が低い領域と判定した場合（ステップＳ３：Ｎｏ）、ステップＳ１０へ進み詳細配線が実施される。配線混雑度が高い領域と判定した場合（ステップＳ３：Ｙｅｓ）、ステップＳ４へ進み配線禁止領域を生成するための情報生成が実施される。 
【００２７】
（４）ステップＳ４： 
ステップＳ３にて配線混雑度が高いと判定された領域に対し、配線禁止領域発生情報生成部１５（及び入力情報作成部１４）は、配線禁止領域を生成するための配線禁止領域発生情報Ｆ０２を生成する。以下、ステップＳ４の処理（ステップＳ５〜Ｓ６）を説明する。 
（５）ステップＳ５： 
入力情報作成部１４は、配線混雑度が高いと判定された領域に関して、配線禁止領域を生成するための入力情報Ｆ０１を作成する。 
（６）ステップＳ６： 
配線禁止領域発生情報生成部１５は、入力情報Ｆ０１を入力とし、配線リソース確保用の配線禁止領域発生情報Ｆ０２を生成する。配線禁止領域発生情報Ｆ０２は、配線混雑度が高いと判断された領域に対し、複数の配置禁止領域をどの様に発生するのかを示した情報（所定の配線禁止領域発生の条件）であり、配置禁止の大きさや配置する場所を指定する情報である。
【００２８】
（７）ステップＳ７： 
配線禁止領域発生処理部１６は、ステップＳ４（ステップＳ５＋Ｓ６）で作成した配線禁止領域発生情報Ｆ０２を入力として、配線禁止領域を発生させる。
図４は、配線禁止領域を発生させた例を示している。図４において、ハードマクロ領域１００の角及びその近傍には、配線混雑度の高い領域である配線混雑領域２００がある。範囲６００は、配線混雑領域２００を含み、配線混雑領域をその周辺に拡大した範囲である。配線禁止領域発生処理部１６は、ステップＳ４で作成された配線禁止領域発生情報Ｆ０２を入力とし、範囲６００において、配線禁止領域を発生させる範囲６０１に配線禁止領域３００ａを発生させる。 
【００２９】
（８）ステップＳ８： 
概略配線再見積部１７は、ステップＳ７で発生させた配線禁止領域３００ａを考慮して、概略配線（経路）の再見積もりを実施する。 
図５は、範囲６００において概略配線の再見積もりを実施した後の状態を示している。配線禁止領域３００ａの間の領域が配線領域として使用されている。配線禁止領域３００ａを発生させた範囲６０１内で引ききれなくなった配線は、範囲６０１の外に配線される。しかし、概略配線のプロセスでは、タイミングを考慮するために、配線トラックが不足している箇所があった場合でも、配線エラーを残して配線される。図５の楕円で囲った箇所は、配線エラー箇所を示している。配線エラー箇所では、配線Ｎ１と配線Ｎ２の２本、配線Ｎ３と配線Ｎ５の２本が１本分の配線トラックに配線され、配線エラーが残った状態であることを示している。 
【００３０】
（９）ステップＳ９： 
配線禁止領域削除部１８は、ステップＳ７で発生させた配線禁止領域３００ａを削除する。そして、再度ステップＳ２へ戻って配線混雑度の抽出を行う。ステップＳ２〜Ｓ９の一連の処理は、配線混雑度が高い領域が無くなるまで繰り返す。 
【００３１】
（１０）ステップＳ１０： 
ステップＳ３にて配線混雑度が低いと判定された場合、詳細配線部１９は、詳細配線を実施する。詳細配線とは、概略格子を更に細かく区分し１グリッドの格子に分割し、どの１グリッド格子を通るかで全ネットの詳細な経路を求め、設計規則違反の配線を修正する処理である。 
図６は、範囲６００において詳細配線を実施した後の状態を示している。図６の配線禁止領域３００ａはステップＳ９で削除され、配線領域として使用可能となる。図５において同一配線層が同一グリッド内に配線されることで発生していた配線Ｎ１と配線Ｎ２及び配線Ｎ３と配線Ｎ５の配線エラーは、図６において配線禁止領域３００ａが削除されたことで発生した配線領域に、配線Ｎ１及び配線Ｎ５を移動することで収束可能となった。また、配線禁止領域３００ａが削除されたことで使用可能となる配線領域は、配線エラー発生箇所の近傍に確保されるため、配線迂回を発生させずに配線エラーの修正が可能である。
【００３２】
（１１）ステップＳ１１： 
配線エラー判定部２０は、ステップＳ１０の詳細配線のプロセス実施後に、配線エラーが残っておらず、収束できているかを判定する。配線エラーが収束できていると判定した場合（ステップＳ１１：Ｙｅｓ）、ステップＳ１５へ進み配線処理は終了となる。配線エラーが残っており、収束できていないと判定した場合（ステップＳ１１：Ｎｏ）は、ステップＳ１２へ進み配線禁止領域の発生条件を変更する。 
但し、配線エラーが残っている場合において、配線エラーの数が、予め設定された数（例示：数箇所）以下であり、自動配線ツールによらず簡単な修正で収束可能であると判断できる場合、収束できていると判定し、ステップＳ１５へ進み配線終了としても良い。 
【００３３】
（１２）ステップＳ１２： 
ステップＳ１１において配線エラーが収束できていないと判定された場合、ステップＳ２〜Ｓ９の一連の処理で発生した配線禁止領域３００ａによって確保する配線リソースが最適ではないと判断できる。そのため、配線禁止領域発生条件変更部２１（及び入力条件判定部２２）は、ステップＳ１２で配線禁止領域発生の条件を変更し、ステップＳ４（Ｓ５＋Ｓ６）へ戻って配線禁止領域生成情報Ｆ０２を再作成する。そして、ステップＳ１１の判定で配線エラーがなくなるまで、ステップＳ１２からステップＳ４へ戻り、ステップＳ４〜ステップＳ１１を実行するフローが繰り返される。以下、ステップＳ１２の処理（ステップＳ１３〜Ｓ１４）を説明する。 
（１３）ステップＳ１３： 
ステップＳ１１において配線エラーが収束できていない場合、配線禁止領域発生条件変更部２１は、一箇所ずつの配線リソースを増やすために配線禁止領域を発生する条件を変更する。 
（１４）ステップＳ１４： 
入力条件判定部２２は、ステップＳ１３で変更した配線禁止領域を発生する条件が、ステップＳ５で出力される入力情報Ｆ０１を満足しているかを判定する。変更後の配線禁止領域発生の条件が入力情報Ｆ０１を満足してない場合（ステップＳ１４：Ｎｏ）、ステップＳ５に戻って入力情報Ｆ０１の再作成を行う。変更後の配線禁止領域発生の条件が入力情報Ｆ０１を満足している場合（ステップＳ１４:Ｙｅｓ）、ステップＳ６に戻って配線禁止領域発生情報Ｆ０２の再作成を行う。
【００３４】
次に、図３Ａの本実施の形態のフローチャートにおけるステップＳ４の処理の詳細について説明する。図７Ａ及び図７Ｂは、図３Ａのフローチャートにおける配線禁止領域を生成するための情報を作成する手順（ステップＳ４）を示すフローチャートである。図８〜図１２は、図３ＡのステップＳ４において、配線禁止領域の生成処理の一例を説明する模式図である。図８〜図１２は、図４〜図６における配線禁止領域を発生させる範囲６０１を示している。ただし、図８、図９は各変数の例を説明する図でもある。その場合、図８は計算初期段階の変数を表し、図９は計算の結果出力される変数、及び、配線禁止領域を生成した例を示している。
【００３５】
（５）ステップＳ５：
入力情報作成部１４は、まず、配線禁止領域を生成するための入力情報Ｆ０１を作成する。入力情報作成処理は、基本入力情報Ｆ０１１の決定（ステップＳ５１）と追加入力情報Ｆ０１２の決定（ステップＳ５２）の２処理に分けられる。以下にステップＳ５１とステップＳ５２について説明する。 
【００３６】
（５１）ステップＳ５１：
入力情報作成部１４は、基本入力情報Ｆ０１１を作成し、出力する。基本入力情報Ｆ０１１とは、配線禁止を発生させる範囲の情報（ａ）、配線禁止の対象とする配線層の情報（ｂ）、配線禁止を発生させる発生率（％）の情報（ｃ）を示す。これらの情報（ａ）〜（ｃ）は、ステップＳ１の概略配線時の配線レポートや、ステップＳ２で抽出した部分領域ごとの配線混雑度などにより決定される。具体的には、以下のとおりである。
【００３７】
配線禁止を発生させる範囲の情報（ａ）は、例えばステップＳ２で抽出した部分領域ごとの配線混雑度が、１００％を超える領域を含むように左下及び右上の座標を指定する。更に、１００％を超える領域がＸ方向及びＹ方向に連続して発生している場合、その連続して１００％を超える領域を１つのグループとし、グループの座標郡のうち、Ｘ座標の最小値と最大値、Ｙ座標の最小値と最大値を求め、左下座標（Ｘ座標最小値、Ｙ座標最小値）及び右上座標（Ｘ座標最大値、Ｙ座標最大値）を含む範囲を指定する。また、配線禁止の対象とする配線層の情報（ｂ）は、例えば、例えばステップＳ１で生成した配線レポートより、配線エラー発生座標での配線エラー層を抽出することで生成できる。更に、配線禁止領域の発生率（％）情報（ｃ）は、ステップＳ９で配線禁止領域を削除して配線リソースを確保する際に、どの程度の配線禁止領域（配線リソースの量に対応）が必要であるかを示す値である。すなわち、配線の混雑の度合いに対応して、領域６０１内に配線禁止領域３００ａを発生させる割合である。例えばステップＳ３で判定された配線混雑度が高い領域において、ステップＳ１の配線レポートで当該領域が配線トラック数より多く配線され、配線エラーとなった本数の割合（例示：（配線エラー本数）／（実際に配線された配線本数））で求めることができる。
【００３８】
（５２）ステップＳ５２： 
入力情報作成部１４は、追加入力情報Ｆ０１２を作成し、出力する。追加入力情報Ｆ０１２とは、配線禁止を発生させる範囲内で、配線禁止の対象とする配線層において、隣り合う配線禁止領域の間を通過できる配線の最小本数の情報（ｄ）と、配線禁止の対象とする配線層の配線方向と異なる配線方向で、隣り合う配線禁止領域間を通過できる配線の最小本数の情報（ｅ）と、情報（ｅ）の場合と同じ配線方向で、配線禁止を発生させる発生率（％）の情報（ｆ）を示す。例えば、配線禁止の対象とする配線層がＹ方向であれば、情報（ｄ）はＹ方向の配線数の情報であり、情報（ｅ）はＸ方向の配線数の情報であり、情報（ｆ）はＸ方向の配線に対する配線禁止領域の情報となる。このとき、Ｙ方向の配線に対する配線禁止領域の情報は情報（ｃ）である。これらの情報（ｄ）〜（ｆ）は、ステップＳ１の概略配線時の配線レポートや、ステップＳ２で抽出した部分領域ごとの配線混雑度などにより決定される。具体的には、以下のとおりである。
【００３９】
隣り合う配線禁止領域の間を通過できる配線の最小本数の情報（ｄ）は、最小単位の１を指定しても良いが、配線禁止領域を発生させる範囲（ａ）によって妨げられる、配線エラー発生領域内をどのように配線を通したいかによっても決められる。最小本数の違いによる配線禁止領域の発生状況は、図９〜図１２に示す。例えば、タイミングが厳しく最短で配線したい１０本の配線のやりとりがあるモジュール間に、配線禁止領域を発生させる場合、図１２のように配線禁止領域がまとまっていて、配線禁止領域を削除後に配線リソースをまとめ１０本分確保できるような最小本数（ｄ）に設定する。また、いろいろな方向へ配線が通り抜けている領域へ、配線禁止領域を発生させる場合、図９のように配線禁止領域が点在し、配線禁止領域を削除後に配線リソースがまばらに確保できるような最小本数（ｄ）に設定する。
【００４０】
また、配線層の配線方向と異なる配線方向の場合で、隣り合う配線禁止領域間を通過できる配線の最小本数の情報（ｅ）も、（ｄ）と同じ理由から、最小単位の１を指定しても良いが、配線禁止領域を発生させる範囲（ａ）によって妨げられる、配線エラー発生領域内をどのように配線を通したいかによっても決められる。
【００４１】
配線禁止を発生させる発生率の情報（ｆ）は、例えば、（ｃ）と同じ理由から、ステップＳ１の配線レポートで当該領域が配線トラック数より多く配線され、配線エラーとなった本数の割合（例示：（配線エラー本数）／（実際に配線された配線本数））で求めることができる。
【００４２】
ここで、Ｘ方向とＹ方向の両方向を考慮する理由は、以下のとおりである。配線禁止対象の配線層がＹ方向だとしても、配線混雑度が高い領域では、必ずしもその規則を守って配線をする訳ではない。ＤＲＣ（Ｄｅｓｉｇｎ  Ｒｕｌｅ  Ｃｈｅｃｋｉｎｇ）、ＬＶＳ（Ｌａｙｏｕｔ  Ｖｅｒｓｕｓ  Ｓｃｈｅｍａｔｉｃｓ）などのエラーが発生しなければ、同一層の縦横を切り替えることがある。そのため、Ｘ方向及びＹ方向の両方のリソース確保を考慮できるようにしている。
【００４３】
また、基本入力情報Ｆ０１１は必須の入力情報であるが、追加入力情報Ｆ０１２は必須の入力情報ではない。既に設計者によってどの程度の配線禁止領域サイズ及び間隔で発生させるかの指標がある場合、追加入力情報Ｆ０１２を設定することにより、実行時間の短縮を図ることができる。追加入力情報Ｆ０１２を指定しなかった場合、配線禁止領域のサイズ及び間隔は最小の値として決定され、図３Ｂのフローにおいて配線禁止領域発生の条件変更処理（ステップＳ１２）を行う際の変更値が最小値となる。そのため、フローの繰り返し回数が増加する可能性がある。しかし、追加入力情報Ｆ０１２を指定した場合、配線禁止領域のサイズ及び間隔の開始値が途中からとなる。そのため、配線禁止領域発生の条件変更処理での条件の数が減るため繰り返し回数を減らすことができる。
【００４４】
（６）ステップＳ６：
配線禁止領域発生情報生成部１５は、基本入力情報Ｆ０１１と追加入力情報Ｆ０１２を入力として、配線リソース確保用の配線禁止領域発生情報Ｆ０２を生成する。ステップＳ６の配線禁止領域発生情報生成処理は、ステップＳ６１〜Ｓ６１１の処理にて実施する。以下、ステップＳ６１〜Ｓ６１１について説明する。
【００４５】
（６−１）ステップＳ６１：
基本入力情報Ｆ０１１の情報（ａ）の座標で指定された領域（配線禁止を発生させる範囲）全体で、情報（ｂ）で指定された配線層（配線禁止の対象とする配線層）の配線方向に配線できる全体の配線トラック総数Ｌａｌｌ１を算出する。
図８を用いて配線トラック総数Ｌａｌｌ１の計算手順を示す。配線禁止を発生させる範囲の情報（ａ）は、範囲６０１の左下座標（Ｘ１、Ｙ１）、右上座標（Ｘ２、Ｙ２）とし、配線禁止の対象とする配線層の情報（ｂ）は、配線層を第２層とし、Ｙ方向の配線を行う配線層とする。範囲６０１の左下座標（Ｘ１、Ｙ１）、右上座標（Ｘ２、Ｙ２）から、Ｘ方向の長さを求める。配線禁止の対象とするＹ配線の配線層の配線トラック１本分のグリッドサイズをＺとすると、式（１）から配線トラック総数Ｌａｌｌ１が求められる。
Ｌａｌｌ１＝（Ｘ２−Ｘ１）／Ｚ  ・・・式（１）
図８は、Ｙ方向に伸びる２０本分の配線トラックを有していることを示している。
【００４６】
（６−２）ステップＳ６２：
基本入力情報Ｆ０１１の情報（ａ）の座標で指定された領域（配線禁止を発生させる範囲）内で、情報（ｂ）で指定された配線層（配線禁止の対象とする配線層）の配線方向に対し、情報（ｃ）で指定された発生率（配線禁止を発生させる発生率）で配線禁止領域を発生し、配線禁止領域が発生されていない領域において情報（ｂ）で指定された配線層（配線禁止の対象とする配線層）の配線方向に配線できる最大の配線本数Ｌｍａｘ１を算出する。
図８を用いて配線本数Ｌｍａｘ１の計算手順を示す。配線禁止を発生させる発生率（％）の情報（ｃ）は、発生率Ｐｓｎｔ１＝６０（％）とし、Ｙ方向の配線の６０％を配線禁止とする。領域６０１のＸ方向の長さを１とし、配線禁止領域３００を発生させる発生率Ｐｓｎｔ１＝６０（％）の値を１から引く。この値を領域６０１のＸ方向の長さに掛けることで、領域６０１のＸ方向の長さから配線禁止領域３００を発生させた長さを引いた、残りの長さが求められる。このとき、Ｙ配線の配線層の配線トラック１本分のグリッドサイズがＺであるから、式（２）より配線本数Ｌｍａｘ１が求められる。
Ｌｍａｘ１＝（Ｘ２−Ｘ１）×（１−Ｐｓｎｔ１／１００）／Ｚ  ・・・式（２）
図８は、Ｙ方向の２０本の配線トラックに対して、８本の配線ができることを示している（１６本の配線トラックの配線が禁止される）。
【００４７】
（６−３）ステップＳ６３：
追加入力情報Ｆ０１２の情報（ｄ）を用いて、ステップＳ６２で求めたＹ方向に配線できる最大の配線本数（Ｌｍａｘ１）に対し、配線禁止領域を挿入する分割可能数を算出する。
ステップＳ６１で示したように配線方向がＹ方向であるため、情報（ｄ）は、隣り合う配線禁止領域の間をＹ方向に配線する最小本数Ｌｍｉｎ１である。Ｙ方向に配線できる最大の配線本数Ｌｍａｘ１を、隣り合う配線禁止領域の間をＹ方向に配線する最小本数Ｌｍｉｎ１で割り、配線禁止領域を挿入するための分割可能数Ｌｍａｘ１Ｂを算出する。計算式は式（３）となる。
Ｌｍａｘ１Ｂ＝Ｌｍａｘ１／Ｌｍｉｎ１  ・・・式（３）
図８は、最小本数Ｌｍｉｎ１＝１本とし、１本分のＹ方向の配線ができる配線トラックとして有していることを示しており、配線本数Ｌｍａｘ１＝８本を、Ｌｍａｘ１Ｂ＝８本／１本＝８分割することが可能であることを示している。
【００４８】
（６−４）ステップＳ６４：
ステップＳ６１で求めた配線トラック総数Ｌａｌｌ１から、ステップＳ６２で求めた配線できる最大の配線本数Ｌｍａｘ１を引き、基本入力情報Ｆ０１１の情報（ａ）で指定された領域内で配線禁止となる配線本数Ｌｅｘｔ１を算出する。計算式は式（４）となる。
Ｌｅｘｔ１＝Ｌａｌｌ１−Ｌｍａｘ１  ・・・式（４）
図８は、配線禁止となる配線本数Ｌｅｘｔ１＝２０本−８本＝１２本となり、Ｌｅｘｔ１がＸ方向に発生させる配線禁止領域３００の幅に対応すること示している。
【００４９】
（６−５）ステップＳ６５：
ステップＳ６４で求めた、配線禁止となる配線本数Ｌｅｘｔ１が、ステップＳ６３で求めた分割可能数Ｌｍａｘ１Ｂで分割され、一分割当たりに含まれる配線禁止本数ＳＬｅｘｔ１を算出する。計算式は式（５）となる。
ＳＬｅｘｔ１＝Ｌｅｘｔ１／（Ｌｍａｘ１Ｂ−１）  ・・・式（５）
図９は、一分割あたりに含まれる配線禁止本数ＳＬｅｘｔ１＝１２本／（８−１）＝１．７本≒２本となり、Ｘ方向に分割して発生させた配線禁止領域３０１のＸ方向のサイズが配線トラック２本分であることを示している。
【００５０】
続いて、ステップＳ６１〜Ｓ６５と同一の配線層において、基本入力情報Ｆ０１１の情報（ｂ）で指定された配線層の配線方向と異なる方向（図４の例ではＹ方向）の演算手順（ステップＳ６６〜Ｓ６１０）について説明する。ステップＳ６６〜Ｓ６１０において、計算方法は先に記載したステップＳ６１〜Ｓ６５と同一である。
【００５１】
（６−６）ステップＳ６６：
基本入力情報Ｆ０１１の配線禁止を発生させる範囲の情報（ａ）の座標（（Ｘ１、Ｙ１）、（Ｘ２、Ｙ２））と配線トラック１本分のグリッドサイズＺにより、Ｘ方向の配線トラック総数Ｌａｌｌ２を、式（１１）で算出する。 
Ｌａｌｌ２＝（Ｙ２−Ｙ１）／Ｚ  ・・・式（１１）
図８は、Ｘ方向に伸びる２０本分の配線トラックを有していることを示している。
【００５２】
（６−７）ステップＳ６７：
基本入力情報Ｆ０１１の情報（ａ）の座標と、追加入力情報Ｆ０１２の配線禁止の対象とする配線層の配線方向と異なる配線方向で、配線禁止を発生させる発生率（％）の情報（ｆ）で指定された発生率Ｐｓｎｔ２（ここでは５０％とする）とを用いて、配線禁止領域を発生したとき、Ｘ方向に配線できる最大の配線本数Ｌｍａｘ２を、式（１２）で算出する 
Ｌｍａｘ２＝（Ｙ２−Ｙ１）×（１−Ｐｓｎｔ２／１００）／Ｚ  ・・・式（１２） 
図８は、配線トラック総数Ｌｍａｘ２＝２０×（１−０．５）＝１０（本）となり、Ｘ方向の２０本の配線トラックに対して、１０本の配線ができることを示している（１０本の配線トラックの配線が禁止される）。
【００５３】
（６−８）ステップＳ６８：
追加入力情報Ｆ０１２の情報（ｅ）の隣り合う配線禁止領域の間をＸ方向に配線する最小本数Ｌｍｉｎ２を用いて、ステップＳ６７で求めたＸ方向に配線できる最大の配線本数Ｌｍａｘ２に対し、配線禁止領域を挿入する分割可能数Ｌｍａｘ２Ｂを、式（１３）で算出する。
Ｌｍａｘ２Ｂ＝Ｌｍａｘ２／Ｌｍｉｎ２  ・・・式（１３）
図８は、最小本数Ｌｍｉｎ２＝１本とし、１本分のＸ方向の配線ができる配線トラックとして有していることを示しており、配線本数Ｌｍａｘ２＝１０本を、Ｌｍａｘ２Ｂ＝１０／１＝１０分割することが可能であることを示している 
【００５４】
（６−９）ステップＳ６９：
ステップＳ６６で求めたＸ方向の配線トラック総数Ｌａｌｌ２から、ステップＳ６７で求めた最大の配線本数Ｌｍａｘ２を引き、基本入力情報Ｆ０１１の情報（ａ）で指定された領域内で配線禁止となる配線本数Ｌｅｘｔ２を、式（１４）で算出する。
Ｌｅｘｔ２＝Ｌａｌｌ２−Ｌｍａｘ２  ・・・式（１４）
図８は、Ｘ方向に配線禁止となる配線本数Ｌｅｘｔ２＝２０本−１０本＝１０本となり、Ｌｅｘｔ２がＹ方向に発生させる配線禁止領域３００の幅に対応すること示している。
【００５５】
（６−１０）ステップＳ６１０：
ステップＳ６９で求めた、配線禁止となる配線本数Ｌｅｘｔ２が、ステップＳ６８で求めた分割可能数Ｌｍａｘ２Ｂで分割され、一分割当たりに含まれる配線禁止本数ＳＬｅｘｔ２を、式（１５）で算出する。
ＳＬｅｘｔ２＝Ｌｅｘｔ２／（Ｌｍａｘ２Ｂ−１）  ・・・式（１５）
図９は、一分割あたりに含まれる配線禁止本数ＳＬｅｘｔ２＝１０本／（１０−１）＝１．１本≒１本となり、Ｙ向に分割して発生させた配線禁止領域３０１のＹ方向のサイズが配線トラック１本分であることを示している。
【００５６】
（６−１１）ステップＳ６１１：
基本入力情報Ｆ０１１と追加入力情報Ｆ０１２及びステップＳ６１〜Ｓ６１０にて算出した結果から、配線禁止領域生成情報Ｆ０２を作成する。まず、一分割あたりの配線禁止本数ＳＬｅｘｔ１（Ｙ方向）、ＳＬｅｘｔ２（Ｘ方向）、及び、配線禁止領域の間を配線する最小本数Ｌｍｉｎ１（Ｙ方向）、Ｌｍｉｎ２（Ｘ方向）の配線本数を、対象となる当該配線層の１グリッドサイズＺを掛けて配線トラックの幅に変更する。次に、当該配線層をＸ方向とすると、Ｘ方向サイズがＳＬｅｘｔ１×Ｚ、Ｙ方向サイズがＳＬｅｘｔ２×Ｚの配線禁止領域の矩形データを、Ｘ方向へＬｍｉｎ１×Ｚ、Ｙ方向へＬｍｉｎ２×Ｚの間隔で生成する座標情報を作成する。作成された座標情報に当該配線層の情報を追加し、配線禁止領域生成情報Ｆ０２として出力する。
【００５７】
次に、図３Ｂの本実施の形態のフローチャートにおけるステップＳ１２の処理の詳細について、図９〜図１２を参照して説明する。 
【００５８】
図９〜図１２は、ステップＳ１１にて配線エラーが収束していないと判定され（ステップＳ１１：Ｎｏ）、その後に配線禁止領域発生条件を変更してステップＳ４〜Ｓ１１の一連の処理を再実行した結果の例を示している。 
【００５９】
（１３）ステップＳ１３： 
ステップＳ１１において、配線エラーが収束していないと判定された場合（ステップＳ１１：Ｎｏ）、隣り合う配線禁止領域間を配線する最小本数Ｌｍｉｎ１（Ｙ方向）、Ｌｍｉｎ２（Ｘ方向）の本数を増やすことで、配線リソースの確保数を変更し改善を図る。配線禁止領域間を配線する最小本数の増加は、Ｙ方向に増やす本数Ｃｎｔ１、Ｘ方向に増やす本数Ｃｎｔ２として、最小本数Ｌｍｉｎ１、Ｌｍｉｎ２を再設定することで行う。計算式は式（６）、（１６）である。
Ｌｍｉｎ１＝Ｌｍｉｎ１＋Ｃｎｔ１  ・・・式（６）
Ｌｍｉｎ２＝Ｌｍｉｎ２＋Ｃｎｔ２  ・・・式（１６）
このとき、ステップＳ１１において、配線エラーが収束していると判定されるまでステップＳ１３以降の処理（Ｓ１３〜Ｓ１４、Ｓ４〜Ｓ１１）を繰り返すこととなる。ステップＳ１３において設定する増やす本数Ｃｎｔ１、Ｃｎｔ２は、本実施例の当該配線方向はＹ方向であるため、Ｙ方向に増やす本数Ｃｎｔ１の最小単位を１本として設定するが、配線トラックの総数や配線量が多い場合に繰り返す回数を考慮し、２本以上を設定することもできる。当該配線方向と異なるＸ方向に増やす本数Ｃｎｔ２は、０以上を設定する。 
【００６０】
（１４）ステップＳ１４：
前述したとおり、ステップＳ１１において配線エラーが収束していると判定されるまで、ステップＳ１３以降の処理（Ｓ１３〜Ｓ１４、Ｓ４〜Ｓ１１）を繰り返す。
ステップＳ１３で配線禁止領域間を配線する最小本数Ｌｍｉｎ１（Ｙ方向）、Ｌｍｉｎ２（Ｘ方向）を再設定した結果、ステップＳ６２及びステップＳ６７で算出した配線できる最大の配線本数Ｌｍａｘ１（Ｙ方向）、Ｌｍａｘ２（Ｘ方向）の数値を超えていないか判定を行う。超えていない場合（ステップＳ１４：Ｙｅｓ）、ステップＳ６へ進み、ステップＳ１３で再設定した配線禁止領域間を配線する最小本数Ｌｍｉｎ１（Ｙ方向）、Ｌｍｉｎ２（Ｘ方向）の値を用いて、配線禁止領域生成情報の再計算を実施する。超えていた場合（ステップＳ１４：Ｎｏ）、ステップＳ５へ進み、基本入力情報Ｆ０１１の見直しを実施する。
【００６１】
図９は、ステップＳ２からＳ１１の処理を実施して配線禁止領域３０１を生成し、ステップＳ１１において１回目の判定を行ったときの範囲６０１を示している。次に、図１０は、図９がステップＳ１１の１回目の判定で配線エラーが収束していないと判定された場合（ステップＳ１１:Ｎｏ）、ステップＳ１３にて増やす本数をＣｎｔ１＝１（Ｙ方向）、Ｃｎｔ２＝０（Ｘ方向）として配線禁止領域間の通過配線本数Ｌｍｉｎ１（Ｙ方向）、Ｌｍｉｎ２（Ｘ方向）を再設定して配線禁止領域３０２を生成し、ステップＳ１１で２回目の判定を行ったときの範囲６０１を示している。図９ではＬｍｉｎ１＝１であるが、図１０ではＬｍｉｎ１＝２に再設定されている。
【００６２】
同様にして、ステップＳ１１において３回目の判定を行ったときの範囲６０１の一例が図１１である。更に、ステップＳ１１において５回目の判定を行ったときの範囲６０１の一例が図１２である。
【００６３】
次に、図３ＢのステップＳ１３によって配線禁止領域発生条件を変更し、ステップＳ１４にて入力情報の条件を満たさないと判定され、入力情報の見直しをすることで、配線エラーが収束する例を図１３〜図１６を参照して説明する。ただし、図１３〜図１６は、配線エラーが収束する例を説明する模式図である。図１３〜図１６において、範囲６０１は、配線Ｎ６〜Ｎ４２、配線禁止領域３０５、３０６を含んでいる。 
【００６４】
図１３は、図１２と同じくＹ方向配線の配線禁止領域の発生率Ｐｓｎｔ１＝６０、配線禁止領域間に配線する最小本数Ｌｍｉｎ１＝４、Ｘ方向配線の配線禁止領域の発生率Ｐｓｎｔ２＝５０、配線禁止領域間に配線する最小本数Ｌｍｉｎ２＝１として、ステップＳ７で配線禁止領域３０５を発生させた場合を示している。図９〜図１１まで、ステップＳ１１において配線エラーが収束しないため（ステップＳ１１:Ｎｏ）、ステップＳ１３で配線禁止領域の発生条件を変更し、ステップＳ１４で入力情報の条件を満たすと判定して、ステップＳ６〜ステップＳ１０までの処理を繰り返して実施した後の状態を示している。 
【００６５】
図１３は、図１１の配線禁止領域の配置ではステップＳ１１で配線エラーが収束しなかったため、ステップＳ１３で配線禁止領域の発生条件を変更して、図１２の配線禁止領域の配置とし、ステップＳ８で配線禁止領域３０５を考慮して概略配線の再見積りを実施した結果を示している。すなわち、図１３において、配線Ｎ６と配線Ｎ７と配線Ｎ８の３本、配線Ｎ９と配線Ｎ１０と配線Ｎ１１の３本、配線Ｎ１２と配線Ｎ１３と配線Ｎ１４の３本、配線Ｎ１５と配線Ｎ１６と配線Ｎ１７の３本、配線Ｎ１８と配線Ｎ１９と配線Ｎ２０の３本、配線Ｎ２１と配線Ｎ２２と配線Ｎ２３の３本、配線Ｎ２４と配線Ｎ２５と配線Ｎ２６の３本が、それぞれ配線トラック１本分に配線されているため、配線エラーが発生した状態である。
【００６６】
図１４は、ステップＳ９へ進み、配線禁止領域３０５を削除し、ステップＳ２で配線混雑度を再抽出し、ステップＳ３で配線混雑度が高い箇所が存在しないと判定されたとして、ステップＳ１０へ進み、詳細配線を実施した結果を示す。図１４は、配線Ｎ７と配線Ｎ８の２本、配線Ｎ２３と配線Ｎ２４の２本が配線トラック１本分に配線されており、配線エラーが残った状態であり、ステップＳ１１において配線エラーが収束できていないと判定される。
【００６７】
次に、ステップＳ１２で配線禁止領域発生条件を変更する。ステップＳ１４において図１３に示すＹ方向配線の配線禁止領域の発生率Ｐｓｎｔ１＝６０で配線禁止領域間に配線する最小本数Ｌｍｉｎ１＝４以上に変更することができないため、入力情報の条件を満たさないと判断され、ステップＳ５に戻って入力情報の再作成を行うこととなる。
【００６８】
詳細には、図１４は、図１２と同じ配線禁止領域発生条件であり、更にＣｎｔ１＝１（Ｙ方向）、として配線禁止領域間の通過配線本数Ｌｍｉｎ１（Ｙ方向）を再設定すると、Ｌｍｉｎ１＝５となる。式（３）より、Ｌｍａｘ１Ｂ＝１．６、式（５）より、ＳＬｅｘｔ１＝２０となり、式（４）で求めたＬｅｘｔ１＝１２より大きくなってしまい基本入力情報Ｆ０１１の情報（ｃ）である、配線禁止領域発生率の条件を満たさなくなる。よって、ステップＳ１４の判定の結果、ステップＳ５へ進み、入力情報の条件を変更することとなる。
【００６９】
図１５は、ステップＳ５に戻って入力情報を再作成し、Ｙ方向配線の配線禁止領域の発生率Ｐｓｎｔ１を変更して、配線禁止領域３０６を発生させた図である。図１５は、図１３からＹ方向配線の配線禁止領域発生率条件を変更してＹ方向配線の配線禁止領域の発生率Ｐｓｎｔ１＝７５とし、配線禁止領域間に配線する最小本数Ｌｍｉｎ１＝１、Ｘ方向配線の配線禁止領域の発生率Ｐｓｎｔ２＝５０、配線禁止領域間に配線する最小本数Ｌｍｉｎ２＝１としてステップＳ７で配線禁止領域３０６を発生させた場合を示している。
【００７０】
次に、ステップＳ８で配線禁止領域を考慮して概略配線を再見積りした結果について説明する。図１５では、配線Ｎ２８と配線Ｎ２９と配線Ｎ３０の３本、配線Ｎ３１と配線Ｎ３２と配線Ｎ３３の３本、配線Ｎ３４と配線Ｎ３５と配線Ｎ３６の３本、配線Ｎ３７と配線Ｎ３８と配線Ｎ３９の３本、配線Ｎ４０と配線Ｎ４１と配線Ｎ４２の３本が配線トラック１本分に配線されており、配線エラーが発生した状態である。図１３、図１４の説明と同様に、ステップＳ９〜ステップＳ２〜ステップＳ３〜ステップＳ１０へ進み、詳細配線を実施した結果、図１６に示すように、配線禁止領域３０６を配置することで確保した配線トラックを使用することで配線エラーは収束した状態となる。
【００７１】
また、上記例では、配線混雑度の高い領域１箇所に対し、Ｙ方向配線の配線禁止領域生成情報を作成する場合を記載したが、基本入力情報Ｆ０１１の情報（ａ）配線禁止発生領域や、情報（ｂ）対象配線層等を変更し、それに応じた式の各変数（Ｌｍｉｎ、Ｐｓｎｔ、Ｃｎｔ、Ｌｍａｘ、Ｌａｌｌ、Ｌｅｘｔ、ＳＬｅｘｔ）を用意すれば、複数の出力情報（Ｆ０２）を作成することができ、図３ＡのステップＳ７で同時に複数条件の配線禁止領域設定を行うことも可能である。 
【００７２】
以上のようにして、本発明の実施の形態に係る半導体集積回路のレイアウト方法が実施される。
【００７３】
本発明は、半導体集積回路の回路構成要素の配置及び配線後に配線混雑箇所を抽出し、配線混雑箇所に対して複数の配線禁止領域を生成し、複数の配線禁止領域を迂回して配線実施後に複数の配線禁止領域を削除して再配線を実施するレイアウト手法である。このレイアウト手法では、配線禁止領域の生成において、配線層毎に、配線禁止領域の発生率を考慮して複数の配線禁止領域の大きさと発生間隔を算出し、算出結果を配線禁止領域生成情報として出力するステップと、配線禁止領域生成情報に基づいて、配線混雑箇所に対し複数の配線禁止領域を生成するステップを有する。すなわち、配線混雑箇所に複数の配線禁止領域を分散配置することで、配線リソースを分散して確保することができる。複数の配線禁止領域を削除した後に再配線した場合、分散して配置された配線リソースをも利用して配線が行われるので、配線が混み合う合う可能性を低下させることができ、配線が混み合っても混み合い度合いを低くすることができる。その結果、配線禁止領域を迂回した配線による配線エラーの増加によって生じる、詳細配線後の配線エラーが残存する問題や配線エラー修正時間が増加するという問題を解決することが可能となる。
【００７４】
本発明は、上記の特徴を有することで、図９に示すように、配線混雑箇所を覆う範囲６０１に対し、対象配線層の１グリッド幅を最小単位として配線禁止領域間を配線する最小数の間隔Ｌｍｉｎ１で配線禁止領域３０１を発生させている。そのため、従来技術のように配線混雑領域全体が配線禁止とはならない。よって、配線禁止領域３０１の発生後も範囲６０１内で前記配線禁止領域間を配線する最小数の間隔Ｌｍｉｎ１が配線領域として使用可能となる。そして、図３ＡのステップＳ８の概略配線時に範囲６０１を迂回する配線量は従来例よりも少なく、迂回した配線と他配線との配線エラーも少なくすることができ、配線エラー数を抑えることができるため、従来例より配線エラー修正時間の短縮が可能である。 
【００７５】
本発明では、配線エラー数の削減及び配線エラー修正時間の短縮ができる。その理由としては、配線混雑箇所に対し、対象配線層の１グリッド幅を最小単位として配線禁止領域の間を配線する最小数の間隔で、配線禁止領域を発生させているため、配線混雑領域全体が配線禁止とはならず、配線禁止領域の間を配線領域として使用可能となるため、迂回する配線量が減り、迂回した配線と他配線との配線エラーを少なくすることができるからである。 
【００７６】
本発明は上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変形又は変更され得ることは明らかである。
【符号の説明】
【００７７】
１    演算処理装置 
２    第１記憶媒体 
３    第２記憶媒体 
４    ライブラリ 
５    出力装置 
６    入力装置 
１００    ハードマクロ領域（ＲＡＭ／ＲＯＭ等） 
２００    配線混雑領域 
３００ａ、３００〜３０６    配線禁止領域 
Ｎ１〜Ｎ４２ 配線 
５００    配線バイオレーション発生箇所 
６００    配線混雑領域周辺を拡大した範囲 
６０１    本発明により配線禁止領域を発生させる範囲 
６０２    格子 
Ｍ１〜Ｍ３    モジュール 
【図１】
2011186625.tif 000003
【図２】
2011186625.tif 000004
【図３Ａ】
2011186625.tif 000005
【図３Ｂ】
2011186625.tif 000006
【図４】
2011186625.tif 000007
【図５】
2011186625.tif 000008
【図６】
2011186625.tif 000009
【図７Ａ】
2011186625.tif 000010
【図７Ｂ】
2011186625.tif 000011
【図８】
2011186625.tif 000012
【図９】
2011186625.tif 000013
【図１０】
2011186625.tif 000014
【図１１】
2011186625.tif 000015
【図１２】
2011186625.tif 000016
【図１３】
2011186625.tif 000017
【図１４】
2011186625.tif 000018
【図１５】
2011186625.tif 000019
【図１６】
2011186625.tif 000020