JP2011186625A - 半導体集積回路のレイアウト装置及びレイアウト方法 - Google Patents
半導体集積回路のレイアウト装置及びレイアウト方法 Download PDFInfo
- Publication number
- JP2011186625A JP2011186625A JP2010049350A JP2010049350A JP2011186625A JP 2011186625 A JP2011186625 A JP 2011186625A JP 2010049350 A JP2010049350 A JP 2010049350A JP 2010049350 A JP2010049350 A JP 2010049350A JP 2011186625 A JP2011186625 A JP 2011186625A
- Authority
- JP
- Japan
- Prior art keywords
- wiring
- prohibited
- integrated circuit
- semiconductor integrated
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】集積度の高い半導体集積回路の場合でもレイアウト設計における配線に係る時間を短縮する。
【解決手段】半導体集積回路のレイアウト方法は、回路構成要素の配置された領域へ配線を実施後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出するステップと、配線混雑箇所を含む領域に、配線の実施が禁止される複数の配線禁止領域を生成するステップと、複数の配線禁止領域を迂回して配線を実施するステップと、迂回して配線を実施した後に、複数の配線禁止領域を削除するステップと、複数の配線禁止領域を削除した後に、再配線を実施するステップとを具備する。複数の配線禁止領域を生成するステップは、配線層毎に、配線の混雑に対応した領域内に配線禁止領域を発生させる割合に基づいて、複数の配線禁止領域の大きさ及び間隔を算出するステップと、算出結果に基づいて、領域に複数の配線禁止領域を生成するステップとを備える。
【選択図】図3A
【解決手段】半導体集積回路のレイアウト方法は、回路構成要素の配置された領域へ配線を実施後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出するステップと、配線混雑箇所を含む領域に、配線の実施が禁止される複数の配線禁止領域を生成するステップと、複数の配線禁止領域を迂回して配線を実施するステップと、迂回して配線を実施した後に、複数の配線禁止領域を削除するステップと、複数の配線禁止領域を削除した後に、再配線を実施するステップとを具備する。複数の配線禁止領域を生成するステップは、配線層毎に、配線の混雑に対応した領域内に配線禁止領域を発生させる割合に基づいて、複数の配線禁止領域の大きさ及び間隔を算出するステップと、算出結果に基づいて、領域に複数の配線禁止領域を生成するステップとを備える。
【選択図】図3A
Description
本発明は、半導体集積回路のレイアウト装置及びレイアウト方法に関し、特に半導体集積回路の配線混雑に係るレイアウト装置及びレイアウト方法に関する。
近年の微細化技術の進化に伴い、LSIの高集積化は益々進み、また、更なる高速動作が求められている。LSIのレイアウト設計において、自動配線ツールを用いて配線を実施することが知られている。自動配線ツールは、高速動作のタイミングを満たすために最短で配線を行う。しかし、LSIの高集積化により1チップ内の配線量は増加する。そのため、ハードマクロの角のように配線経路を妨げられ回り込む配線が多い領域や、複数のモジュール間で高速な信号のやり取りが交差する配線領域のような配線が混雑する領域が出てきている。配線が混雑する領域では、配線を配線トラックに引き切れないために発生する配線エラー(例えば、配線ショートやオープン、デザインルール違反など)の問題や、更に配線エラーを回避するために配線が迂回し、タイミングが悪化する問題などが顕著になってきている。
迂回配線によるタイミングの悪化を防止することを目的とした技術として、特開2008−227198号公報に半導体集積回路のレイアウト設計方法が開示されている。このレイアウト設計方法は、半導体集積回路を構成する回路要素の配置を実施した後、必要な配線領域と実際に配線可能な領域から配線混雜個所を抽出する段階と、前記配線混雜個所に対して配線禁止領域を生成する段階と、前記配線混雜個所を迂回して自動配線を実施する段階と、前記配線禁止領域を削除して再度自動配線を実施する段階と、を備える。すなわち、局所的な配線混雑を回避するために、まず、配線禁止領域を用いて事前に配線リソースを確保しておく。そして、初期配線時には、その領域を迂回させて自動配線を行う。再配線時には、配線禁止領域を削除して配線リソースを開放して配線を行う。
特開2008−227198号公報の技術は、配線禁止領域を迂回させて行う自動配線後に、配線エラーが増加するという問題がある。そのため、配線禁止領域を削除して再度自動配線を実施しても、配線エラーの増加に比例して修正しきれずに残る配線エラー数も増加し、更に配線エラー修正時間が増加するという問題が発生する。このような問題が発生する理由を以下に説明する。
特開2008−227198号公報の技術は、上述のように、まず、回路要素を配置し、配線見積りを実施し、配線の混雑する箇所を特定して、その混雑箇所を覆う座標を抽出する。次に、混雑箇所で不足する配線本数を計算して拡張値を求め、抽出された混雑箇所を覆う座標に求めた拡張値を足して配線禁止領域を発生させる。続いて、配線禁止領域を迂回するように自動配線を行う。その後、配線禁止領域を削除し、確保しておいた配線リソースへ、タイミングが厳しい配線を優先的に配線しながら、再配線を行う。このような手法により、混雑箇所のエラー修正時間の短縮、及び、迂回配線によるタイミング悪化防止を行う。
しかし、近年のLSIの高集積化、高速化によりタイミングが厳しい配線も含めた全体的配線量の増加により、局所的な配線混雑領域が大きくなっている。そのため、特開2008−227198号公報の手法で発生させる配線リソース確保用の配線禁止領域も当然ながら大きくなる。配線禁止領域が大きくなると、配線禁止領域を迂回させる配線量も増加する。その結果、迂回した配線による配線エラー数が増加し、配線リソース確保用の配線禁止領域を削除して再配線をしても、配線エラーが収束しきれず残ってしまう問題や、配線エラー修正時間が増加する問題が生じる。
以下に、発明を実施するための形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の第1の観点における半導体集積回路のレイアウト方法は、半導体集積回路の回路構成要素の配置された領域へ配線を実施後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出するステップ(S2、S3)と、配線混雑箇所を含む領域に、配線の実施が禁止される複数の配線禁止領域を生成するステップ(S4、S7)と、複数の配線禁止領域を迂回して配線を実施するステップ(S8)と、迂回して配線を実施した後に、複数の配線禁止領域を削除するステップ(S9)と、複数の配線禁止領域を削除した後に、再配線を実施するステップ(S10)とを具備する。複数の配線禁止領域を生成するステップ(S4、S7)は、配線層毎に、配線の混雑に対応した領域内に配線禁止領域を発生させる割合に基づいて、複数の配線禁止領域の大きさ及び間隔を算出するステップ(S4)と、算出結果に基づいて、領域に複数の配線禁止領域を生成するステップ(S7)とを備える。
本発明では、配線の混雑に対応した領域内に配線禁止領域を発生させる割合に基づいて、複数の配線禁止領域の大きさ及び間隔を算出し、その大きさ及び間隔に基づいて複数の配線禁止領域を配置している。すなわち、配線混雑箇所に複数の配線禁止領域を分散配置することで、配線リソースを分散して確保することができる。複数の配線禁止領域を削除した後に再配線した場合、分散して配置された配線リソースをも利用して配線が行われるので、配線が混み合う可能性を低下させることができ、配線が混み合っても混み合い度合いを低くすることができる。その結果、配線禁止領域を迂回した配線による配線エラーの増加によって生じる、詳細配線後の配線エラーが残存する問題や配線エラー修正時間が増加するという問題を解決することが可能となる。
本発明の第2の観点におけるプログラムは、上記の半導体集積回路のレイアウト方法をコンピュータ(10)に実行させる。
この場合にも、上記レイアウト方法と同様の作用効果を得ることができる。
この場合にも、上記レイアウト方法と同様の作用効果を得ることができる。
本発明の第3の観点における半導体集積回路のレイアウト装置は、混雑抽出判定部(25)と、禁止領域発生部(26)と、配線再見積部(17)と、禁止領域削除部(18)と、再配線部(19)とを具備する。混雑抽出判定部(25)は、半導体集積回路の回路構成要素の配置及び配線後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出する。禁止領域発生部(26)は、配線混雑箇所を含む領域に、配線が禁止される複数の配線禁止領域を生成する。配線再見積部(17)は、複数の配線禁止領域を迂回して配線を実施する。禁止領域削除部(18)は、迂回して配線を実施した後に、複数の配線禁止領域を削除する。再配線部(19)は、複数の配線禁止領域を削除した後に、再配線を実施する。禁止領域発生部(26)は、禁止領域算出部(15)と、禁止領域発生部(16)とを備える。禁止領域算出部(15)は、配線層毎に、領域内に配線禁止領域を発生させる割合に基づいて、複数の配線禁止領域の大きさ及び間隔を算出する。禁止領域発生部(16)は、算出結果に基づいて、領域に複数の配線禁止領域を生成する。
この場合にも、上記レイアウト方法と同様の作用効果を得ることができる。
この場合にも、上記レイアウト方法と同様の作用効果を得ることができる。
本発明により、集積度の高い半導体集積回路の場合でも、レイアウト設計における配線に係る時間を短縮することが可能となる。
以下、本発明の半導体集積回路のレイアウト装置及びレイアウト方法の実施の形態に関して、添付図面を参照して説明する。
本発明の実施の形態に係る半導体集積回路のレイアウト装置の構成について説明する。図1は、本発明の実施の形態に係る半導体集積回路のレイアウト装置の構成を示すブロック図である。レイアウト装置10は、コンピュータに例示される情報処理装置であり、演算処理装置1、第1の記憶装置2、第2の記憶装置3、ライブラリデータベース4、出力装置5、入力装置6を具備している。これらは、バスやケーブルにより互いに情報の送受信が可能に接続されている。
第1の記憶装置2は、LSI論理設計データ、LSI物理設計データ、STA(Static Timing Analysis)制約データ、配線禁止領域生成情報リスト等のようなレイアウトデータを記憶している。第2の記憶装置3は、論理回路の配置処理手順、概略配線処理手順、配線禁止領域生成処理手順、詳細配線処理手順等のようなレイアウト方法を記述したレイアウトプログラムを記憶している。ライブラリデータベース4は、タイミングライブラリや論理回路図、ネットの配線情報やチップ形状等を有するライブラリを記憶している。第1の記憶装置2、第2の記憶装置3、及びライブラリデータベース4は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)のいずれかの電子機器又はその組み合わせに例示される。なお、CD−ROMやDVDのような光ディスク、磁気ディスク、磁気テープ、半導体メモリその他のコンピュータ読取可能な記憶媒体に記録された情報(上記データやプログラム)を、その記憶媒体から読み込む装置であっても良い。
演算処理装置1は、第1の記憶装置2やライブラリデータベース4に記憶されたデータを用い、第2の記憶装置3に記憶されたレイアウトプログラムの処理を実行する。演算処理装置1は、CPU(Central Processing Unit)及びその周辺回路(例示:メインメモリであるRAM(Random Access Memory))に例示される。
出力装置5は、演算処理装置1によって作成された概略配線図や詳細配線図等のデータを出力する。出力装置は、ディスプレイやプリンタに例示される。
入力装置6は、ユーザに操作されることにより生成されるデータを演算処理装置1等に出力する。キーボードやマウスに例示される。
演算処理装置1は、第1の記憶装置2やライブラリデータベース4に記憶されたデータを用い、第2の記憶装置3に記憶されたレイアウトプログラムの処理を実行する。演算処理装置1は、CPU(Central Processing Unit)及びその周辺回路(例示:メインメモリであるRAM(Random Access Memory))に例示される。
出力装置5は、演算処理装置1によって作成された概略配線図や詳細配線図等のデータを出力する。出力装置は、ディスプレイやプリンタに例示される。
入力装置6は、ユーザに操作されることにより生成されるデータを演算処理装置1等に出力する。キーボードやマウスに例示される。
図2は、本発明の実施の形態に係る半導体集積回路のレイアウト装置の機能を示す機能ブロック図である。レイアウト装置10は、概略配線部11、配線混雑度抽出部12、配線混雑度判定部13、入力情報作成部14、配線禁止領域発生情報生成部15、配線禁止領域発生処理部16、概略配線再見積部17、配線禁止領域削除部18、詳細配線部19、配線エラー判定部20、配線禁止領域発生条件変更部21、及び入力情報判定部22を備えている。上記コンピュータに例示される情報処理装置に、上記レイアウトプログラムがインストールされて、これら概略配線部11〜入力情報判定部22の機能が実現される。
概略配線部11は、周知の方法に従って、論理回路(セル、モジュール、マクロ等)の自動配置の実施後に、概略配線を実施する。配線混雑度抽出部12は、概略配線部11による概略配線の結果から、部分領域ごとに配線混雑度を抽出する。配線混雑度判定部13は、配線混雑度抽出部12により抽出された配線混雑度において、配線混雑度が高い領域があるかを判定する。概略配線部11、配線混雑度抽出部12及び配線混雑度判定部13は、半導体集積回路の回路構成要素の配置及び配線後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出する混雑抽出判定部25とも見ることができる。
入力情報作成部14は、入力情報作成部14は、配線混雑度が高いと判定された領域に関して、配線禁止領域を生成するための入力情報F01を作成する。配線禁止領域発生情報生成部15は、入力情報作成部14により作成された入力情報F01を入力とし、配線リソース確保用の配線禁止領域発生情報F02を生成する。配線禁止領域発生処理部16は、配線禁止領域発生情報生成部15により生成された配線禁止領域発生情報F02を入力として、配線禁止領域を発生させる。入力情報作成部14、配線禁止領域発生情報生成部15、及び配線禁止領域発生処理部16は、配線混雑箇所を含む領域に、配線が禁止される複数の配線禁止領域を生成する禁止領域発生部26とも見ることができる。
概略配線再見積部17は、配線禁止領域発生処理部16により発生された配線禁止領域を考慮して、概略配線(経路)の再見積もりを実施する。配線禁止領域削除部18は、配線禁止領域発生処理部16により発生された配線禁止領域を削除する。詳細配線部19は、配線混雑度判定部13により配線混雑度が低いと判定された場合、詳細配線部19は、詳細配線を実施する。配線エラー判定部20は、詳細配線部19による詳細配線のプロセス実施後に、配線エラーが残っておらず、収束できているかを判定する。配線禁止領域発生条件変更部21は、配線エラー判定部20により配線エラーが収束できていないと判定された場合、一箇所ずつの配線リソースを増やすために配線禁止領域を発生する条件を変更する。入力情報判定部22は、配線禁止領域発生条件変更部21により変更された配線禁止領域を発生する条件が、入力情報F01を満足しているかを判定する。具体的な機能・動作は後述される。
次に、本発明の実施の形態に係る半導体集積回路のレイアウト装置の動作(レイアウト方法)について説明する。図3A及び図3Bは、本発明の実施の形態に係る半導体集積回路のレイアウト装置の動作(レイアウト方法)の一例を示すフローチャートである。図4〜図6は、図3A及び図3Bのレイアウト方法において、生成された配線禁止領域の配置及び配線の収束過程の一例を示す模式図である。図4、図5、図6において、半導体集積回路50は、ハードマクロ領域(RAM/ROM等)100、及び、機能モジュールM1〜M3を備えている。ハードマクロ領域100の角及びその近傍には、配線が混雑する領域である配線混雑領域200が存在している。配線混雑領域200の周辺を拡大した範囲600には、範囲601、格子602、配線禁止領域300a、配線N1〜N5を含んでいる。範囲601は、配線混雑領域200を含み、本実施の形態において配線禁止領域を発生させる範囲である。格子602は、配線禁止対象の配線層の配線が、配線トラック1本分の配線最小単位(1グリッド)を示す格子である。配線禁止領域300aは、配線が禁止される領域である。なお、図4〜図6において、図の縦方向の配線をY方向の配線とし、横方向の配線をX方向の配線とする。
以下、図3A及び図3Bのフローチャートについて、図4〜図6の例を用いて説明する。ただし、以下に説明する各ステップは、図1に示すコンピュータシステムにおいて、第2記憶装置3にあるレイアウトプログラムと演算処理装置1との協働にて実施される処理である。各ステップにおいて入力されるデータや出力されるデータ等に関しては、第1記憶媒体2やライブラリデータベース4や入力装置6や出力装置5と入出力を行うものとする。
(1)ステップS1:
まず、周知の方法に従って、論理回路(セル、モジュール、マクロ等)の自動配置処理が実施される。概略配線部11は、その自動配置処理の終了後、概略配線を実施する。概略配線とは以下のような処理である。すなわち、まず、配線領域内を大まかに複数に区分する。次に、その複数の区分の各々を、概略格子と称される複数の部分領域に分割する。その後、全ネットがどの部分領域を通るのかを調べるために、ある程度の配線エラーを許して概略経路を求める。概略配線部11は、配線レポートを生成する。配線レポートには、配線エラー発生座標及びエラーとなっている配線層、また、配線領域全体における配線層毎の配線エラー数及びエラー発生率が記載されている。
まず、周知の方法に従って、論理回路(セル、モジュール、マクロ等)の自動配置処理が実施される。概略配線部11は、その自動配置処理の終了後、概略配線を実施する。概略配線とは以下のような処理である。すなわち、まず、配線領域内を大まかに複数に区分する。次に、その複数の区分の各々を、概略格子と称される複数の部分領域に分割する。その後、全ネットがどの部分領域を通るのかを調べるために、ある程度の配線エラーを許して概略経路を求める。概略配線部11は、配線レポートを生成する。配線レポートには、配線エラー発生座標及びエラーとなっている配線層、また、配線領域全体における配線層毎の配線エラー数及びエラー発生率が記載されている。
(2)ステップS2:
配線混雑度抽出部12は、ステップS1の概略配線の結果から、部分領域ごとに配線混雑度を抽出する。部分領域とは、例えば概略格子としても良いし、概略格子を複数包含する領域としても良い。また、概略格子を更に細かく分割しても良い。細かく分割する程、配線混雑領域の絞込みが可能となるが、抽出時間が増大する。配線混雑度は、当該配線領域が保有している配線トラック数に対して配線されている配線数の割合であり、例えば部分領域内で、配線層ごとに、現在配線されている配線数を配線トラック数(配線可能本数)で割ることで抽出することができる。
配線混雑度抽出部12は、ステップS1の概略配線の結果から、部分領域ごとに配線混雑度を抽出する。部分領域とは、例えば概略格子としても良いし、概略格子を複数包含する領域としても良い。また、概略格子を更に細かく分割しても良い。細かく分割する程、配線混雑領域の絞込みが可能となるが、抽出時間が増大する。配線混雑度は、当該配線領域が保有している配線トラック数に対して配線されている配線数の割合であり、例えば部分領域内で、配線層ごとに、現在配線されている配線数を配線トラック数(配線可能本数)で割ることで抽出することができる。
(3)ステップS3:
配線混雑度判定部13は、ステップS2で抽出された配線混雑度において、配線混雑度が高い領域があるかを判定する。判定基準は、例えば配線混雑度が100%を超えた場合、配線可能本数を配線数が上回っており配線混雑度が高い領域と判定する。但し、プロセスやデザイン依存により、100%を下回っていても配線が困難であると判断できる場合、配線混雑度はその依存度を加味し、適宜決定する。
配線混雑度が低い領域と判定した場合(ステップS3:No)、ステップS10へ進み詳細配線が実施される。配線混雑度が高い領域と判定した場合(ステップS3:Yes)、ステップS4へ進み配線禁止領域を生成するための情報生成が実施される。
配線混雑度判定部13は、ステップS2で抽出された配線混雑度において、配線混雑度が高い領域があるかを判定する。判定基準は、例えば配線混雑度が100%を超えた場合、配線可能本数を配線数が上回っており配線混雑度が高い領域と判定する。但し、プロセスやデザイン依存により、100%を下回っていても配線が困難であると判断できる場合、配線混雑度はその依存度を加味し、適宜決定する。
配線混雑度が低い領域と判定した場合(ステップS3:No)、ステップS10へ進み詳細配線が実施される。配線混雑度が高い領域と判定した場合(ステップS3:Yes)、ステップS4へ進み配線禁止領域を生成するための情報生成が実施される。
(4)ステップS4:
ステップS3にて配線混雑度が高いと判定された領域に対し、配線禁止領域発生情報生成部15(及び入力情報作成部14)は、配線禁止領域を生成するための配線禁止領域発生情報F02を生成する。以下、ステップS4の処理(ステップS5〜S6)を説明する。
(5)ステップS5:
入力情報作成部14は、配線混雑度が高いと判定された領域に関して、配線禁止領域を生成するための入力情報F01を作成する。
(6)ステップS6:
配線禁止領域発生情報生成部15は、入力情報F01を入力とし、配線リソース確保用の配線禁止領域発生情報F02を生成する。配線禁止領域発生情報F02は、配線混雑度が高いと判断された領域に対し、複数の配置禁止領域をどの様に発生するのかを示した情報(所定の配線禁止領域発生の条件)であり、配置禁止の大きさや配置する場所を指定する情報である。
ステップS3にて配線混雑度が高いと判定された領域に対し、配線禁止領域発生情報生成部15(及び入力情報作成部14)は、配線禁止領域を生成するための配線禁止領域発生情報F02を生成する。以下、ステップS4の処理(ステップS5〜S6)を説明する。
(5)ステップS5:
入力情報作成部14は、配線混雑度が高いと判定された領域に関して、配線禁止領域を生成するための入力情報F01を作成する。
(6)ステップS6:
配線禁止領域発生情報生成部15は、入力情報F01を入力とし、配線リソース確保用の配線禁止領域発生情報F02を生成する。配線禁止領域発生情報F02は、配線混雑度が高いと判断された領域に対し、複数の配置禁止領域をどの様に発生するのかを示した情報(所定の配線禁止領域発生の条件)であり、配置禁止の大きさや配置する場所を指定する情報である。
(7)ステップS7:
配線禁止領域発生処理部16は、ステップS4(ステップS5+S6)で作成した配線禁止領域発生情報F02を入力として、配線禁止領域を発生させる。
図4は、配線禁止領域を発生させた例を示している。図4において、ハードマクロ領域100の角及びその近傍には、配線混雑度の高い領域である配線混雑領域200がある。範囲600は、配線混雑領域200を含み、配線混雑領域をその周辺に拡大した範囲である。配線禁止領域発生処理部16は、ステップS4で作成された配線禁止領域発生情報F02を入力とし、範囲600において、配線禁止領域を発生させる範囲601に配線禁止領域300aを発生させる。
配線禁止領域発生処理部16は、ステップS4(ステップS5+S6)で作成した配線禁止領域発生情報F02を入力として、配線禁止領域を発生させる。
図4は、配線禁止領域を発生させた例を示している。図4において、ハードマクロ領域100の角及びその近傍には、配線混雑度の高い領域である配線混雑領域200がある。範囲600は、配線混雑領域200を含み、配線混雑領域をその周辺に拡大した範囲である。配線禁止領域発生処理部16は、ステップS4で作成された配線禁止領域発生情報F02を入力とし、範囲600において、配線禁止領域を発生させる範囲601に配線禁止領域300aを発生させる。
(8)ステップS8:
概略配線再見積部17は、ステップS7で発生させた配線禁止領域300aを考慮して、概略配線(経路)の再見積もりを実施する。
図5は、範囲600において概略配線の再見積もりを実施した後の状態を示している。配線禁止領域300aの間の領域が配線領域として使用されている。配線禁止領域300aを発生させた範囲601内で引ききれなくなった配線は、範囲601の外に配線される。しかし、概略配線のプロセスでは、タイミングを考慮するために、配線トラックが不足している箇所があった場合でも、配線エラーを残して配線される。図5の楕円で囲った箇所は、配線エラー箇所を示している。配線エラー箇所では、配線N1と配線N2の2本、配線N3と配線N5の2本が1本分の配線トラックに配線され、配線エラーが残った状態であることを示している。
概略配線再見積部17は、ステップS7で発生させた配線禁止領域300aを考慮して、概略配線(経路)の再見積もりを実施する。
図5は、範囲600において概略配線の再見積もりを実施した後の状態を示している。配線禁止領域300aの間の領域が配線領域として使用されている。配線禁止領域300aを発生させた範囲601内で引ききれなくなった配線は、範囲601の外に配線される。しかし、概略配線のプロセスでは、タイミングを考慮するために、配線トラックが不足している箇所があった場合でも、配線エラーを残して配線される。図5の楕円で囲った箇所は、配線エラー箇所を示している。配線エラー箇所では、配線N1と配線N2の2本、配線N3と配線N5の2本が1本分の配線トラックに配線され、配線エラーが残った状態であることを示している。
(9)ステップS9:
配線禁止領域削除部18は、ステップS7で発生させた配線禁止領域300aを削除する。そして、再度ステップS2へ戻って配線混雑度の抽出を行う。ステップS2〜S9の一連の処理は、配線混雑度が高い領域が無くなるまで繰り返す。
配線禁止領域削除部18は、ステップS7で発生させた配線禁止領域300aを削除する。そして、再度ステップS2へ戻って配線混雑度の抽出を行う。ステップS2〜S9の一連の処理は、配線混雑度が高い領域が無くなるまで繰り返す。
(10)ステップS10:
ステップS3にて配線混雑度が低いと判定された場合、詳細配線部19は、詳細配線を実施する。詳細配線とは、概略格子を更に細かく区分し1グリッドの格子に分割し、どの1グリッド格子を通るかで全ネットの詳細な経路を求め、設計規則違反の配線を修正する処理である。
図6は、範囲600において詳細配線を実施した後の状態を示している。図6の配線禁止領域300aはステップS9で削除され、配線領域として使用可能となる。図5において同一配線層が同一グリッド内に配線されることで発生していた配線N1と配線N2及び配線N3と配線N5の配線エラーは、図6において配線禁止領域300aが削除されたことで発生した配線領域に、配線N1及び配線N5を移動することで収束可能となった。また、配線禁止領域300aが削除されたことで使用可能となる配線領域は、配線エラー発生箇所の近傍に確保されるため、配線迂回を発生させずに配線エラーの修正が可能である。
ステップS3にて配線混雑度が低いと判定された場合、詳細配線部19は、詳細配線を実施する。詳細配線とは、概略格子を更に細かく区分し1グリッドの格子に分割し、どの1グリッド格子を通るかで全ネットの詳細な経路を求め、設計規則違反の配線を修正する処理である。
図6は、範囲600において詳細配線を実施した後の状態を示している。図6の配線禁止領域300aはステップS9で削除され、配線領域として使用可能となる。図5において同一配線層が同一グリッド内に配線されることで発生していた配線N1と配線N2及び配線N3と配線N5の配線エラーは、図6において配線禁止領域300aが削除されたことで発生した配線領域に、配線N1及び配線N5を移動することで収束可能となった。また、配線禁止領域300aが削除されたことで使用可能となる配線領域は、配線エラー発生箇所の近傍に確保されるため、配線迂回を発生させずに配線エラーの修正が可能である。
(11)ステップS11:
配線エラー判定部20は、ステップS10の詳細配線のプロセス実施後に、配線エラーが残っておらず、収束できているかを判定する。配線エラーが収束できていると判定した場合(ステップS11:Yes)、ステップS15へ進み配線処理は終了となる。配線エラーが残っており、収束できていないと判定した場合(ステップS11:No)は、ステップS12へ進み配線禁止領域の発生条件を変更する。
但し、配線エラーが残っている場合において、配線エラーの数が、予め設定された数(例示:数箇所)以下であり、自動配線ツールによらず簡単な修正で収束可能であると判断できる場合、収束できていると判定し、ステップS15へ進み配線終了としても良い。
配線エラー判定部20は、ステップS10の詳細配線のプロセス実施後に、配線エラーが残っておらず、収束できているかを判定する。配線エラーが収束できていると判定した場合(ステップS11:Yes)、ステップS15へ進み配線処理は終了となる。配線エラーが残っており、収束できていないと判定した場合(ステップS11:No)は、ステップS12へ進み配線禁止領域の発生条件を変更する。
但し、配線エラーが残っている場合において、配線エラーの数が、予め設定された数(例示:数箇所)以下であり、自動配線ツールによらず簡単な修正で収束可能であると判断できる場合、収束できていると判定し、ステップS15へ進み配線終了としても良い。
(12)ステップS12:
ステップS11において配線エラーが収束できていないと判定された場合、ステップS2〜S9の一連の処理で発生した配線禁止領域300aによって確保する配線リソースが最適ではないと判断できる。そのため、配線禁止領域発生条件変更部21(及び入力条件判定部22)は、ステップS12で配線禁止領域発生の条件を変更し、ステップS4(S5+S6)へ戻って配線禁止領域生成情報F02を再作成する。そして、ステップS11の判定で配線エラーがなくなるまで、ステップS12からステップS4へ戻り、ステップS4〜ステップS11を実行するフローが繰り返される。以下、ステップS12の処理(ステップS13〜S14)を説明する。
(13)ステップS13:
ステップS11において配線エラーが収束できていない場合、配線禁止領域発生条件変更部21は、一箇所ずつの配線リソースを増やすために配線禁止領域を発生する条件を変更する。
(14)ステップS14:
入力条件判定部22は、ステップS13で変更した配線禁止領域を発生する条件が、ステップS5で出力される入力情報F01を満足しているかを判定する。変更後の配線禁止領域発生の条件が入力情報F01を満足してない場合(ステップS14:No)、ステップS5に戻って入力情報F01の再作成を行う。変更後の配線禁止領域発生の条件が入力情報F01を満足している場合(ステップS14:Yes)、ステップS6に戻って配線禁止領域発生情報F02の再作成を行う。
ステップS11において配線エラーが収束できていないと判定された場合、ステップS2〜S9の一連の処理で発生した配線禁止領域300aによって確保する配線リソースが最適ではないと判断できる。そのため、配線禁止領域発生条件変更部21(及び入力条件判定部22)は、ステップS12で配線禁止領域発生の条件を変更し、ステップS4(S5+S6)へ戻って配線禁止領域生成情報F02を再作成する。そして、ステップS11の判定で配線エラーがなくなるまで、ステップS12からステップS4へ戻り、ステップS4〜ステップS11を実行するフローが繰り返される。以下、ステップS12の処理(ステップS13〜S14)を説明する。
(13)ステップS13:
ステップS11において配線エラーが収束できていない場合、配線禁止領域発生条件変更部21は、一箇所ずつの配線リソースを増やすために配線禁止領域を発生する条件を変更する。
(14)ステップS14:
入力条件判定部22は、ステップS13で変更した配線禁止領域を発生する条件が、ステップS5で出力される入力情報F01を満足しているかを判定する。変更後の配線禁止領域発生の条件が入力情報F01を満足してない場合(ステップS14:No)、ステップS5に戻って入力情報F01の再作成を行う。変更後の配線禁止領域発生の条件が入力情報F01を満足している場合(ステップS14:Yes)、ステップS6に戻って配線禁止領域発生情報F02の再作成を行う。
次に、図3Aの本実施の形態のフローチャートにおけるステップS4の処理の詳細について説明する。図7A及び図7Bは、図3Aのフローチャートにおける配線禁止領域を生成するための情報を作成する手順(ステップS4)を示すフローチャートである。図8〜図12は、図3AのステップS4において、配線禁止領域の生成処理の一例を説明する模式図である。図8〜図12は、図4〜図6における配線禁止領域を発生させる範囲601を示している。ただし、図8、図9は各変数の例を説明する図でもある。その場合、図8は計算初期段階の変数を表し、図9は計算の結果出力される変数、及び、配線禁止領域を生成した例を示している。
(5)ステップS5:
入力情報作成部14は、まず、配線禁止領域を生成するための入力情報F01を作成する。入力情報作成処理は、基本入力情報F011の決定(ステップS51)と追加入力情報F012の決定(ステップS52)の2処理に分けられる。以下にステップS51とステップS52について説明する。
入力情報作成部14は、まず、配線禁止領域を生成するための入力情報F01を作成する。入力情報作成処理は、基本入力情報F011の決定(ステップS51)と追加入力情報F012の決定(ステップS52)の2処理に分けられる。以下にステップS51とステップS52について説明する。
(51)ステップS51:
入力情報作成部14は、基本入力情報F011を作成し、出力する。基本入力情報F011とは、配線禁止を発生させる範囲の情報(a)、配線禁止の対象とする配線層の情報(b)、配線禁止を発生させる発生率(%)の情報(c)を示す。これらの情報(a)〜(c)は、ステップS1の概略配線時の配線レポートや、ステップS2で抽出した部分領域ごとの配線混雑度などにより決定される。具体的には、以下のとおりである。
入力情報作成部14は、基本入力情報F011を作成し、出力する。基本入力情報F011とは、配線禁止を発生させる範囲の情報(a)、配線禁止の対象とする配線層の情報(b)、配線禁止を発生させる発生率(%)の情報(c)を示す。これらの情報(a)〜(c)は、ステップS1の概略配線時の配線レポートや、ステップS2で抽出した部分領域ごとの配線混雑度などにより決定される。具体的には、以下のとおりである。
配線禁止を発生させる範囲の情報(a)は、例えばステップS2で抽出した部分領域ごとの配線混雑度が、100%を超える領域を含むように左下及び右上の座標を指定する。更に、100%を超える領域がX方向及びY方向に連続して発生している場合、その連続して100%を超える領域を1つのグループとし、グループの座標郡のうち、X座標の最小値と最大値、Y座標の最小値と最大値を求め、左下座標(X座標最小値、Y座標最小値)及び右上座標(X座標最大値、Y座標最大値)を含む範囲を指定する。また、配線禁止の対象とする配線層の情報(b)は、例えば、例えばステップS1で生成した配線レポートより、配線エラー発生座標での配線エラー層を抽出することで生成できる。更に、配線禁止領域の発生率(%)情報(c)は、ステップS9で配線禁止領域を削除して配線リソースを確保する際に、どの程度の配線禁止領域(配線リソースの量に対応)が必要であるかを示す値である。すなわち、配線の混雑の度合いに対応して、領域601内に配線禁止領域300aを発生させる割合である。例えばステップS3で判定された配線混雑度が高い領域において、ステップS1の配線レポートで当該領域が配線トラック数より多く配線され、配線エラーとなった本数の割合(例示:(配線エラー本数)/(実際に配線された配線本数))で求めることができる。
(52)ステップS52:
入力情報作成部14は、追加入力情報F012を作成し、出力する。追加入力情報F012とは、配線禁止を発生させる範囲内で、配線禁止の対象とする配線層において、隣り合う配線禁止領域の間を通過できる配線の最小本数の情報(d)と、配線禁止の対象とする配線層の配線方向と異なる配線方向で、隣り合う配線禁止領域間を通過できる配線の最小本数の情報(e)と、情報(e)の場合と同じ配線方向で、配線禁止を発生させる発生率(%)の情報(f)を示す。例えば、配線禁止の対象とする配線層がY方向であれば、情報(d)はY方向の配線数の情報であり、情報(e)はX方向の配線数の情報であり、情報(f)はX方向の配線に対する配線禁止領域の情報となる。このとき、Y方向の配線に対する配線禁止領域の情報は情報(c)である。これらの情報(d)〜(f)は、ステップS1の概略配線時の配線レポートや、ステップS2で抽出した部分領域ごとの配線混雑度などにより決定される。具体的には、以下のとおりである。
入力情報作成部14は、追加入力情報F012を作成し、出力する。追加入力情報F012とは、配線禁止を発生させる範囲内で、配線禁止の対象とする配線層において、隣り合う配線禁止領域の間を通過できる配線の最小本数の情報(d)と、配線禁止の対象とする配線層の配線方向と異なる配線方向で、隣り合う配線禁止領域間を通過できる配線の最小本数の情報(e)と、情報(e)の場合と同じ配線方向で、配線禁止を発生させる発生率(%)の情報(f)を示す。例えば、配線禁止の対象とする配線層がY方向であれば、情報(d)はY方向の配線数の情報であり、情報(e)はX方向の配線数の情報であり、情報(f)はX方向の配線に対する配線禁止領域の情報となる。このとき、Y方向の配線に対する配線禁止領域の情報は情報(c)である。これらの情報(d)〜(f)は、ステップS1の概略配線時の配線レポートや、ステップS2で抽出した部分領域ごとの配線混雑度などにより決定される。具体的には、以下のとおりである。
隣り合う配線禁止領域の間を通過できる配線の最小本数の情報(d)は、最小単位の1を指定しても良いが、配線禁止領域を発生させる範囲(a)によって妨げられる、配線エラー発生領域内をどのように配線を通したいかによっても決められる。最小本数の違いによる配線禁止領域の発生状況は、図9〜図12に示す。例えば、タイミングが厳しく最短で配線したい10本の配線のやりとりがあるモジュール間に、配線禁止領域を発生させる場合、図12のように配線禁止領域がまとまっていて、配線禁止領域を削除後に配線リソースをまとめ10本分確保できるような最小本数(d)に設定する。また、いろいろな方向へ配線が通り抜けている領域へ、配線禁止領域を発生させる場合、図9のように配線禁止領域が点在し、配線禁止領域を削除後に配線リソースがまばらに確保できるような最小本数(d)に設定する。
また、配線層の配線方向と異なる配線方向の場合で、隣り合う配線禁止領域間を通過できる配線の最小本数の情報(e)も、(d)と同じ理由から、最小単位の1を指定しても良いが、配線禁止領域を発生させる範囲(a)によって妨げられる、配線エラー発生領域内をどのように配線を通したいかによっても決められる。
配線禁止を発生させる発生率の情報(f)は、例えば、(c)と同じ理由から、ステップS1の配線レポートで当該領域が配線トラック数より多く配線され、配線エラーとなった本数の割合(例示:(配線エラー本数)/(実際に配線された配線本数))で求めることができる。
ここで、X方向とY方向の両方向を考慮する理由は、以下のとおりである。配線禁止対象の配線層がY方向だとしても、配線混雑度が高い領域では、必ずしもその規則を守って配線をする訳ではない。DRC(Design Rule Checking)、LVS(Layout Versus Schematics)などのエラーが発生しなければ、同一層の縦横を切り替えることがある。そのため、X方向及びY方向の両方のリソース確保を考慮できるようにしている。
また、基本入力情報F011は必須の入力情報であるが、追加入力情報F012は必須の入力情報ではない。既に設計者によってどの程度の配線禁止領域サイズ及び間隔で発生させるかの指標がある場合、追加入力情報F012を設定することにより、実行時間の短縮を図ることができる。追加入力情報F012を指定しなかった場合、配線禁止領域のサイズ及び間隔は最小の値として決定され、図3Bのフローにおいて配線禁止領域発生の条件変更処理(ステップS12)を行う際の変更値が最小値となる。そのため、フローの繰り返し回数が増加する可能性がある。しかし、追加入力情報F012を指定した場合、配線禁止領域のサイズ及び間隔の開始値が途中からとなる。そのため、配線禁止領域発生の条件変更処理での条件の数が減るため繰り返し回数を減らすことができる。
(6)ステップS6:
配線禁止領域発生情報生成部15は、基本入力情報F011と追加入力情報F012を入力として、配線リソース確保用の配線禁止領域発生情報F02を生成する。ステップS6の配線禁止領域発生情報生成処理は、ステップS61〜S611の処理にて実施する。以下、ステップS61〜S611について説明する。
配線禁止領域発生情報生成部15は、基本入力情報F011と追加入力情報F012を入力として、配線リソース確保用の配線禁止領域発生情報F02を生成する。ステップS6の配線禁止領域発生情報生成処理は、ステップS61〜S611の処理にて実施する。以下、ステップS61〜S611について説明する。
(6−1)ステップS61:
基本入力情報F011の情報(a)の座標で指定された領域(配線禁止を発生させる範囲)全体で、情報(b)で指定された配線層(配線禁止の対象とする配線層)の配線方向に配線できる全体の配線トラック総数Lall1を算出する。
図8を用いて配線トラック総数Lall1の計算手順を示す。配線禁止を発生させる範囲の情報(a)は、範囲601の左下座標(X1、Y1)、右上座標(X2、Y2)とし、配線禁止の対象とする配線層の情報(b)は、配線層を第2層とし、Y方向の配線を行う配線層とする。範囲601の左下座標(X1、Y1)、右上座標(X2、Y2)から、X方向の長さを求める。配線禁止の対象とするY配線の配線層の配線トラック1本分のグリッドサイズをZとすると、式(1)から配線トラック総数Lall1が求められる。
Lall1=(X2−X1)/Z ・・・式(1)
図8は、Y方向に伸びる20本分の配線トラックを有していることを示している。
基本入力情報F011の情報(a)の座標で指定された領域(配線禁止を発生させる範囲)全体で、情報(b)で指定された配線層(配線禁止の対象とする配線層)の配線方向に配線できる全体の配線トラック総数Lall1を算出する。
図8を用いて配線トラック総数Lall1の計算手順を示す。配線禁止を発生させる範囲の情報(a)は、範囲601の左下座標(X1、Y1)、右上座標(X2、Y2)とし、配線禁止の対象とする配線層の情報(b)は、配線層を第2層とし、Y方向の配線を行う配線層とする。範囲601の左下座標(X1、Y1)、右上座標(X2、Y2)から、X方向の長さを求める。配線禁止の対象とするY配線の配線層の配線トラック1本分のグリッドサイズをZとすると、式(1)から配線トラック総数Lall1が求められる。
Lall1=(X2−X1)/Z ・・・式(1)
図8は、Y方向に伸びる20本分の配線トラックを有していることを示している。
(6−2)ステップS62:
基本入力情報F011の情報(a)の座標で指定された領域(配線禁止を発生させる範囲)内で、情報(b)で指定された配線層(配線禁止の対象とする配線層)の配線方向に対し、情報(c)で指定された発生率(配線禁止を発生させる発生率)で配線禁止領域を発生し、配線禁止領域が発生されていない領域において情報(b)で指定された配線層(配線禁止の対象とする配線層)の配線方向に配線できる最大の配線本数Lmax1を算出する。
図8を用いて配線本数Lmax1の計算手順を示す。配線禁止を発生させる発生率(%)の情報(c)は、発生率Psnt1=60(%)とし、Y方向の配線の60%を配線禁止とする。領域601のX方向の長さを1とし、配線禁止領域300を発生させる発生率Psnt1=60(%)の値を1から引く。この値を領域601のX方向の長さに掛けることで、領域601のX方向の長さから配線禁止領域300を発生させた長さを引いた、残りの長さが求められる。このとき、Y配線の配線層の配線トラック1本分のグリッドサイズがZであるから、式(2)より配線本数Lmax1が求められる。
Lmax1=(X2−X1)×(1−Psnt1/100)/Z ・・・式(2)
図8は、Y方向の20本の配線トラックに対して、8本の配線ができることを示している(16本の配線トラックの配線が禁止される)。
基本入力情報F011の情報(a)の座標で指定された領域(配線禁止を発生させる範囲)内で、情報(b)で指定された配線層(配線禁止の対象とする配線層)の配線方向に対し、情報(c)で指定された発生率(配線禁止を発生させる発生率)で配線禁止領域を発生し、配線禁止領域が発生されていない領域において情報(b)で指定された配線層(配線禁止の対象とする配線層)の配線方向に配線できる最大の配線本数Lmax1を算出する。
図8を用いて配線本数Lmax1の計算手順を示す。配線禁止を発生させる発生率(%)の情報(c)は、発生率Psnt1=60(%)とし、Y方向の配線の60%を配線禁止とする。領域601のX方向の長さを1とし、配線禁止領域300を発生させる発生率Psnt1=60(%)の値を1から引く。この値を領域601のX方向の長さに掛けることで、領域601のX方向の長さから配線禁止領域300を発生させた長さを引いた、残りの長さが求められる。このとき、Y配線の配線層の配線トラック1本分のグリッドサイズがZであるから、式(2)より配線本数Lmax1が求められる。
Lmax1=(X2−X1)×(1−Psnt1/100)/Z ・・・式(2)
図8は、Y方向の20本の配線トラックに対して、8本の配線ができることを示している(16本の配線トラックの配線が禁止される)。
(6−3)ステップS63:
追加入力情報F012の情報(d)を用いて、ステップS62で求めたY方向に配線できる最大の配線本数(Lmax1)に対し、配線禁止領域を挿入する分割可能数を算出する。
ステップS61で示したように配線方向がY方向であるため、情報(d)は、隣り合う配線禁止領域の間をY方向に配線する最小本数Lmin1である。Y方向に配線できる最大の配線本数Lmax1を、隣り合う配線禁止領域の間をY方向に配線する最小本数Lmin1で割り、配線禁止領域を挿入するための分割可能数Lmax1Bを算出する。計算式は式(3)となる。
Lmax1B=Lmax1/Lmin1 ・・・式(3)
図8は、最小本数Lmin1=1本とし、1本分のY方向の配線ができる配線トラックとして有していることを示しており、配線本数Lmax1=8本を、Lmax1B=8本/1本=8分割することが可能であることを示している。
追加入力情報F012の情報(d)を用いて、ステップS62で求めたY方向に配線できる最大の配線本数(Lmax1)に対し、配線禁止領域を挿入する分割可能数を算出する。
ステップS61で示したように配線方向がY方向であるため、情報(d)は、隣り合う配線禁止領域の間をY方向に配線する最小本数Lmin1である。Y方向に配線できる最大の配線本数Lmax1を、隣り合う配線禁止領域の間をY方向に配線する最小本数Lmin1で割り、配線禁止領域を挿入するための分割可能数Lmax1Bを算出する。計算式は式(3)となる。
Lmax1B=Lmax1/Lmin1 ・・・式(3)
図8は、最小本数Lmin1=1本とし、1本分のY方向の配線ができる配線トラックとして有していることを示しており、配線本数Lmax1=8本を、Lmax1B=8本/1本=8分割することが可能であることを示している。
(6−4)ステップS64:
ステップS61で求めた配線トラック総数Lall1から、ステップS62で求めた配線できる最大の配線本数Lmax1を引き、基本入力情報F011の情報(a)で指定された領域内で配線禁止となる配線本数Lext1を算出する。計算式は式(4)となる。
Lext1=Lall1−Lmax1 ・・・式(4)
図8は、配線禁止となる配線本数Lext1=20本−8本=12本となり、Lext1がX方向に発生させる配線禁止領域300の幅に対応すること示している。
ステップS61で求めた配線トラック総数Lall1から、ステップS62で求めた配線できる最大の配線本数Lmax1を引き、基本入力情報F011の情報(a)で指定された領域内で配線禁止となる配線本数Lext1を算出する。計算式は式(4)となる。
Lext1=Lall1−Lmax1 ・・・式(4)
図8は、配線禁止となる配線本数Lext1=20本−8本=12本となり、Lext1がX方向に発生させる配線禁止領域300の幅に対応すること示している。
(6−5)ステップS65:
ステップS64で求めた、配線禁止となる配線本数Lext1が、ステップS63で求めた分割可能数Lmax1Bで分割され、一分割当たりに含まれる配線禁止本数SLext1を算出する。計算式は式(5)となる。
SLext1=Lext1/(Lmax1B−1) ・・・式(5)
図9は、一分割あたりに含まれる配線禁止本数SLext1=12本/(8−1)=1.7本≒2本となり、X方向に分割して発生させた配線禁止領域301のX方向のサイズが配線トラック2本分であることを示している。
ステップS64で求めた、配線禁止となる配線本数Lext1が、ステップS63で求めた分割可能数Lmax1Bで分割され、一分割当たりに含まれる配線禁止本数SLext1を算出する。計算式は式(5)となる。
SLext1=Lext1/(Lmax1B−1) ・・・式(5)
図9は、一分割あたりに含まれる配線禁止本数SLext1=12本/(8−1)=1.7本≒2本となり、X方向に分割して発生させた配線禁止領域301のX方向のサイズが配線トラック2本分であることを示している。
続いて、ステップS61〜S65と同一の配線層において、基本入力情報F011の情報(b)で指定された配線層の配線方向と異なる方向(図4の例ではY方向)の演算手順(ステップS66〜S610)について説明する。ステップS66〜S610において、計算方法は先に記載したステップS61〜S65と同一である。
(6−6)ステップS66:
基本入力情報F011の配線禁止を発生させる範囲の情報(a)の座標((X1、Y1)、(X2、Y2))と配線トラック1本分のグリッドサイズZにより、X方向の配線トラック総数Lall2を、式(11)で算出する。
Lall2=(Y2−Y1)/Z ・・・式(11)
図8は、X方向に伸びる20本分の配線トラックを有していることを示している。
基本入力情報F011の配線禁止を発生させる範囲の情報(a)の座標((X1、Y1)、(X2、Y2))と配線トラック1本分のグリッドサイズZにより、X方向の配線トラック総数Lall2を、式(11)で算出する。
Lall2=(Y2−Y1)/Z ・・・式(11)
図8は、X方向に伸びる20本分の配線トラックを有していることを示している。
(6−7)ステップS67:
基本入力情報F011の情報(a)の座標と、追加入力情報F012の配線禁止の対象とする配線層の配線方向と異なる配線方向で、配線禁止を発生させる発生率(%)の情報(f)で指定された発生率Psnt2(ここでは50%とする)とを用いて、配線禁止領域を発生したとき、X方向に配線できる最大の配線本数Lmax2を、式(12)で算出する
Lmax2=(Y2−Y1)×(1−Psnt2/100)/Z ・・・式(12)
図8は、配線トラック総数Lmax2=20×(1−0.5)=10(本)となり、X方向の20本の配線トラックに対して、10本の配線ができることを示している(10本の配線トラックの配線が禁止される)。
基本入力情報F011の情報(a)の座標と、追加入力情報F012の配線禁止の対象とする配線層の配線方向と異なる配線方向で、配線禁止を発生させる発生率(%)の情報(f)で指定された発生率Psnt2(ここでは50%とする)とを用いて、配線禁止領域を発生したとき、X方向に配線できる最大の配線本数Lmax2を、式(12)で算出する
Lmax2=(Y2−Y1)×(1−Psnt2/100)/Z ・・・式(12)
図8は、配線トラック総数Lmax2=20×(1−0.5)=10(本)となり、X方向の20本の配線トラックに対して、10本の配線ができることを示している(10本の配線トラックの配線が禁止される)。
(6−8)ステップS68:
追加入力情報F012の情報(e)の隣り合う配線禁止領域の間をX方向に配線する最小本数Lmin2を用いて、ステップS67で求めたX方向に配線できる最大の配線本数Lmax2に対し、配線禁止領域を挿入する分割可能数Lmax2Bを、式(13)で算出する。
Lmax2B=Lmax2/Lmin2 ・・・式(13)
図8は、最小本数Lmin2=1本とし、1本分のX方向の配線ができる配線トラックとして有していることを示しており、配線本数Lmax2=10本を、Lmax2B=10/1=10分割することが可能であることを示している
追加入力情報F012の情報(e)の隣り合う配線禁止領域の間をX方向に配線する最小本数Lmin2を用いて、ステップS67で求めたX方向に配線できる最大の配線本数Lmax2に対し、配線禁止領域を挿入する分割可能数Lmax2Bを、式(13)で算出する。
Lmax2B=Lmax2/Lmin2 ・・・式(13)
図8は、最小本数Lmin2=1本とし、1本分のX方向の配線ができる配線トラックとして有していることを示しており、配線本数Lmax2=10本を、Lmax2B=10/1=10分割することが可能であることを示している
(6−9)ステップS69:
ステップS66で求めたX方向の配線トラック総数Lall2から、ステップS67で求めた最大の配線本数Lmax2を引き、基本入力情報F011の情報(a)で指定された領域内で配線禁止となる配線本数Lext2を、式(14)で算出する。
Lext2=Lall2−Lmax2 ・・・式(14)
図8は、X方向に配線禁止となる配線本数Lext2=20本−10本=10本となり、Lext2がY方向に発生させる配線禁止領域300の幅に対応すること示している。
ステップS66で求めたX方向の配線トラック総数Lall2から、ステップS67で求めた最大の配線本数Lmax2を引き、基本入力情報F011の情報(a)で指定された領域内で配線禁止となる配線本数Lext2を、式(14)で算出する。
Lext2=Lall2−Lmax2 ・・・式(14)
図8は、X方向に配線禁止となる配線本数Lext2=20本−10本=10本となり、Lext2がY方向に発生させる配線禁止領域300の幅に対応すること示している。
(6−10)ステップS610:
ステップS69で求めた、配線禁止となる配線本数Lext2が、ステップS68で求めた分割可能数Lmax2Bで分割され、一分割当たりに含まれる配線禁止本数SLext2を、式(15)で算出する。
SLext2=Lext2/(Lmax2B−1) ・・・式(15)
図9は、一分割あたりに含まれる配線禁止本数SLext2=10本/(10−1)=1.1本≒1本となり、Y向に分割して発生させた配線禁止領域301のY方向のサイズが配線トラック1本分であることを示している。
ステップS69で求めた、配線禁止となる配線本数Lext2が、ステップS68で求めた分割可能数Lmax2Bで分割され、一分割当たりに含まれる配線禁止本数SLext2を、式(15)で算出する。
SLext2=Lext2/(Lmax2B−1) ・・・式(15)
図9は、一分割あたりに含まれる配線禁止本数SLext2=10本/(10−1)=1.1本≒1本となり、Y向に分割して発生させた配線禁止領域301のY方向のサイズが配線トラック1本分であることを示している。
(6−11)ステップS611:
基本入力情報F011と追加入力情報F012及びステップS61〜S610にて算出した結果から、配線禁止領域生成情報F02を作成する。まず、一分割あたりの配線禁止本数SLext1(Y方向)、SLext2(X方向)、及び、配線禁止領域の間を配線する最小本数Lmin1(Y方向)、Lmin2(X方向)の配線本数を、対象となる当該配線層の1グリッドサイズZを掛けて配線トラックの幅に変更する。次に、当該配線層をX方向とすると、X方向サイズがSLext1×Z、Y方向サイズがSLext2×Zの配線禁止領域の矩形データを、X方向へLmin1×Z、Y方向へLmin2×Zの間隔で生成する座標情報を作成する。作成された座標情報に当該配線層の情報を追加し、配線禁止領域生成情報F02として出力する。
基本入力情報F011と追加入力情報F012及びステップS61〜S610にて算出した結果から、配線禁止領域生成情報F02を作成する。まず、一分割あたりの配線禁止本数SLext1(Y方向)、SLext2(X方向)、及び、配線禁止領域の間を配線する最小本数Lmin1(Y方向)、Lmin2(X方向)の配線本数を、対象となる当該配線層の1グリッドサイズZを掛けて配線トラックの幅に変更する。次に、当該配線層をX方向とすると、X方向サイズがSLext1×Z、Y方向サイズがSLext2×Zの配線禁止領域の矩形データを、X方向へLmin1×Z、Y方向へLmin2×Zの間隔で生成する座標情報を作成する。作成された座標情報に当該配線層の情報を追加し、配線禁止領域生成情報F02として出力する。
次に、図3Bの本実施の形態のフローチャートにおけるステップS12の処理の詳細について、図9〜図12を参照して説明する。
図9〜図12は、ステップS11にて配線エラーが収束していないと判定され(ステップS11:No)、その後に配線禁止領域発生条件を変更してステップS4〜S11の一連の処理を再実行した結果の例を示している。
(13)ステップS13:
ステップS11において、配線エラーが収束していないと判定された場合(ステップS11:No)、隣り合う配線禁止領域間を配線する最小本数Lmin1(Y方向)、Lmin2(X方向)の本数を増やすことで、配線リソースの確保数を変更し改善を図る。配線禁止領域間を配線する最小本数の増加は、Y方向に増やす本数Cnt1、X方向に増やす本数Cnt2として、最小本数Lmin1、Lmin2を再設定することで行う。計算式は式(6)、(16)である。
Lmin1=Lmin1+Cnt1 ・・・式(6)
Lmin2=Lmin2+Cnt2 ・・・式(16)
このとき、ステップS11において、配線エラーが収束していると判定されるまでステップS13以降の処理(S13〜S14、S4〜S11)を繰り返すこととなる。ステップS13において設定する増やす本数Cnt1、Cnt2は、本実施例の当該配線方向はY方向であるため、Y方向に増やす本数Cnt1の最小単位を1本として設定するが、配線トラックの総数や配線量が多い場合に繰り返す回数を考慮し、2本以上を設定することもできる。当該配線方向と異なるX方向に増やす本数Cnt2は、0以上を設定する。
ステップS11において、配線エラーが収束していないと判定された場合(ステップS11:No)、隣り合う配線禁止領域間を配線する最小本数Lmin1(Y方向)、Lmin2(X方向)の本数を増やすことで、配線リソースの確保数を変更し改善を図る。配線禁止領域間を配線する最小本数の増加は、Y方向に増やす本数Cnt1、X方向に増やす本数Cnt2として、最小本数Lmin1、Lmin2を再設定することで行う。計算式は式(6)、(16)である。
Lmin1=Lmin1+Cnt1 ・・・式(6)
Lmin2=Lmin2+Cnt2 ・・・式(16)
このとき、ステップS11において、配線エラーが収束していると判定されるまでステップS13以降の処理(S13〜S14、S4〜S11)を繰り返すこととなる。ステップS13において設定する増やす本数Cnt1、Cnt2は、本実施例の当該配線方向はY方向であるため、Y方向に増やす本数Cnt1の最小単位を1本として設定するが、配線トラックの総数や配線量が多い場合に繰り返す回数を考慮し、2本以上を設定することもできる。当該配線方向と異なるX方向に増やす本数Cnt2は、0以上を設定する。
(14)ステップS14:
前述したとおり、ステップS11において配線エラーが収束していると判定されるまで、ステップS13以降の処理(S13〜S14、S4〜S11)を繰り返す。
ステップS13で配線禁止領域間を配線する最小本数Lmin1(Y方向)、Lmin2(X方向)を再設定した結果、ステップS62及びステップS67で算出した配線できる最大の配線本数Lmax1(Y方向)、Lmax2(X方向)の数値を超えていないか判定を行う。超えていない場合(ステップS14:Yes)、ステップS6へ進み、ステップS13で再設定した配線禁止領域間を配線する最小本数Lmin1(Y方向)、Lmin2(X方向)の値を用いて、配線禁止領域生成情報の再計算を実施する。超えていた場合(ステップS14:No)、ステップS5へ進み、基本入力情報F011の見直しを実施する。
前述したとおり、ステップS11において配線エラーが収束していると判定されるまで、ステップS13以降の処理(S13〜S14、S4〜S11)を繰り返す。
ステップS13で配線禁止領域間を配線する最小本数Lmin1(Y方向)、Lmin2(X方向)を再設定した結果、ステップS62及びステップS67で算出した配線できる最大の配線本数Lmax1(Y方向)、Lmax2(X方向)の数値を超えていないか判定を行う。超えていない場合(ステップS14:Yes)、ステップS6へ進み、ステップS13で再設定した配線禁止領域間を配線する最小本数Lmin1(Y方向)、Lmin2(X方向)の値を用いて、配線禁止領域生成情報の再計算を実施する。超えていた場合(ステップS14:No)、ステップS5へ進み、基本入力情報F011の見直しを実施する。
図9は、ステップS2からS11の処理を実施して配線禁止領域301を生成し、ステップS11において1回目の判定を行ったときの範囲601を示している。次に、図10は、図9がステップS11の1回目の判定で配線エラーが収束していないと判定された場合(ステップS11:No)、ステップS13にて増やす本数をCnt1=1(Y方向)、Cnt2=0(X方向)として配線禁止領域間の通過配線本数Lmin1(Y方向)、Lmin2(X方向)を再設定して配線禁止領域302を生成し、ステップS11で2回目の判定を行ったときの範囲601を示している。図9ではLmin1=1であるが、図10ではLmin1=2に再設定されている。
同様にして、ステップS11において3回目の判定を行ったときの範囲601の一例が図11である。更に、ステップS11において5回目の判定を行ったときの範囲601の一例が図12である。
次に、図3BのステップS13によって配線禁止領域発生条件を変更し、ステップS14にて入力情報の条件を満たさないと判定され、入力情報の見直しをすることで、配線エラーが収束する例を図13〜図16を参照して説明する。ただし、図13〜図16は、配線エラーが収束する例を説明する模式図である。図13〜図16において、範囲601は、配線N6〜N42、配線禁止領域305、306を含んでいる。
図13は、図12と同じくY方向配線の配線禁止領域の発生率Psnt1=60、配線禁止領域間に配線する最小本数Lmin1=4、X方向配線の配線禁止領域の発生率Psnt2=50、配線禁止領域間に配線する最小本数Lmin2=1として、ステップS7で配線禁止領域305を発生させた場合を示している。図9〜図11まで、ステップS11において配線エラーが収束しないため(ステップS11:No)、ステップS13で配線禁止領域の発生条件を変更し、ステップS14で入力情報の条件を満たすと判定して、ステップS6〜ステップS10までの処理を繰り返して実施した後の状態を示している。
図13は、図11の配線禁止領域の配置ではステップS11で配線エラーが収束しなかったため、ステップS13で配線禁止領域の発生条件を変更して、図12の配線禁止領域の配置とし、ステップS8で配線禁止領域305を考慮して概略配線の再見積りを実施した結果を示している。すなわち、図13において、配線N6と配線N7と配線N8の3本、配線N9と配線N10と配線N11の3本、配線N12と配線N13と配線N14の3本、配線N15と配線N16と配線N17の3本、配線N18と配線N19と配線N20の3本、配線N21と配線N22と配線N23の3本、配線N24と配線N25と配線N26の3本が、それぞれ配線トラック1本分に配線されているため、配線エラーが発生した状態である。
図14は、ステップS9へ進み、配線禁止領域305を削除し、ステップS2で配線混雑度を再抽出し、ステップS3で配線混雑度が高い箇所が存在しないと判定されたとして、ステップS10へ進み、詳細配線を実施した結果を示す。図14は、配線N7と配線N8の2本、配線N23と配線N24の2本が配線トラック1本分に配線されており、配線エラーが残った状態であり、ステップS11において配線エラーが収束できていないと判定される。
次に、ステップS12で配線禁止領域発生条件を変更する。ステップS14において図13に示すY方向配線の配線禁止領域の発生率Psnt1=60で配線禁止領域間に配線する最小本数Lmin1=4以上に変更することができないため、入力情報の条件を満たさないと判断され、ステップS5に戻って入力情報の再作成を行うこととなる。
詳細には、図14は、図12と同じ配線禁止領域発生条件であり、更にCnt1=1(Y方向)、として配線禁止領域間の通過配線本数Lmin1(Y方向)を再設定すると、Lmin1=5となる。式(3)より、Lmax1B=1.6、式(5)より、SLext1=20となり、式(4)で求めたLext1=12より大きくなってしまい基本入力情報F011の情報(c)である、配線禁止領域発生率の条件を満たさなくなる。よって、ステップS14の判定の結果、ステップS5へ進み、入力情報の条件を変更することとなる。
図15は、ステップS5に戻って入力情報を再作成し、Y方向配線の配線禁止領域の発生率Psnt1を変更して、配線禁止領域306を発生させた図である。図15は、図13からY方向配線の配線禁止領域発生率条件を変更してY方向配線の配線禁止領域の発生率Psnt1=75とし、配線禁止領域間に配線する最小本数Lmin1=1、X方向配線の配線禁止領域の発生率Psnt2=50、配線禁止領域間に配線する最小本数Lmin2=1としてステップS7で配線禁止領域306を発生させた場合を示している。
次に、ステップS8で配線禁止領域を考慮して概略配線を再見積りした結果について説明する。図15では、配線N28と配線N29と配線N30の3本、配線N31と配線N32と配線N33の3本、配線N34と配線N35と配線N36の3本、配線N37と配線N38と配線N39の3本、配線N40と配線N41と配線N42の3本が配線トラック1本分に配線されており、配線エラーが発生した状態である。図13、図14の説明と同様に、ステップS9〜ステップS2〜ステップS3〜ステップS10へ進み、詳細配線を実施した結果、図16に示すように、配線禁止領域306を配置することで確保した配線トラックを使用することで配線エラーは収束した状態となる。
また、上記例では、配線混雑度の高い領域1箇所に対し、Y方向配線の配線禁止領域生成情報を作成する場合を記載したが、基本入力情報F011の情報(a)配線禁止発生領域や、情報(b)対象配線層等を変更し、それに応じた式の各変数(Lmin、Psnt、Cnt、Lmax、Lall、Lext、SLext)を用意すれば、複数の出力情報(F02)を作成することができ、図3AのステップS7で同時に複数条件の配線禁止領域設定を行うことも可能である。
以上のようにして、本発明の実施の形態に係る半導体集積回路のレイアウト方法が実施される。
本発明は、半導体集積回路の回路構成要素の配置及び配線後に配線混雑箇所を抽出し、配線混雑箇所に対して複数の配線禁止領域を生成し、複数の配線禁止領域を迂回して配線実施後に複数の配線禁止領域を削除して再配線を実施するレイアウト手法である。このレイアウト手法では、配線禁止領域の生成において、配線層毎に、配線禁止領域の発生率を考慮して複数の配線禁止領域の大きさと発生間隔を算出し、算出結果を配線禁止領域生成情報として出力するステップと、配線禁止領域生成情報に基づいて、配線混雑箇所に対し複数の配線禁止領域を生成するステップを有する。すなわち、配線混雑箇所に複数の配線禁止領域を分散配置することで、配線リソースを分散して確保することができる。複数の配線禁止領域を削除した後に再配線した場合、分散して配置された配線リソースをも利用して配線が行われるので、配線が混み合う合う可能性を低下させることができ、配線が混み合っても混み合い度合いを低くすることができる。その結果、配線禁止領域を迂回した配線による配線エラーの増加によって生じる、詳細配線後の配線エラーが残存する問題や配線エラー修正時間が増加するという問題を解決することが可能となる。
本発明は、上記の特徴を有することで、図9に示すように、配線混雑箇所を覆う範囲601に対し、対象配線層の1グリッド幅を最小単位として配線禁止領域間を配線する最小数の間隔Lmin1で配線禁止領域301を発生させている。そのため、従来技術のように配線混雑領域全体が配線禁止とはならない。よって、配線禁止領域301の発生後も範囲601内で前記配線禁止領域間を配線する最小数の間隔Lmin1が配線領域として使用可能となる。そして、図3AのステップS8の概略配線時に範囲601を迂回する配線量は従来例よりも少なく、迂回した配線と他配線との配線エラーも少なくすることができ、配線エラー数を抑えることができるため、従来例より配線エラー修正時間の短縮が可能である。
本発明では、配線エラー数の削減及び配線エラー修正時間の短縮ができる。その理由としては、配線混雑箇所に対し、対象配線層の1グリッド幅を最小単位として配線禁止領域の間を配線する最小数の間隔で、配線禁止領域を発生させているため、配線混雑領域全体が配線禁止とはならず、配線禁止領域の間を配線領域として使用可能となるため、迂回する配線量が減り、迂回した配線と他配線との配線エラーを少なくすることができるからである。
本発明は上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変形又は変更され得ることは明らかである。
1 演算処理装置
2 第1記憶媒体
3 第2記憶媒体
4 ライブラリ
5 出力装置
6 入力装置
100 ハードマクロ領域(RAM/ROM等)
200 配線混雑領域
300a、300〜306 配線禁止領域
N1〜N42 配線
500 配線バイオレーション発生箇所
600 配線混雑領域周辺を拡大した範囲
601 本発明により配線禁止領域を発生させる範囲
602 格子
M1〜M3 モジュール
2 第1記憶媒体
3 第2記憶媒体
4 ライブラリ
5 出力装置
6 入力装置
100 ハードマクロ領域(RAM/ROM等)
200 配線混雑領域
300a、300〜306 配線禁止領域
N1〜N42 配線
500 配線バイオレーション発生箇所
600 配線混雑領域周辺を拡大した範囲
601 本発明により配線禁止領域を発生させる範囲
602 格子
M1〜M3 モジュール
Claims (15)
- 半導体集積回路の回路構成要素の配置された領域へ配線を実施後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出するステップと、
前記配線混雑箇所を含む領域に、配線の実施が禁止される複数の配線禁止領域を生成するステップと、
前記複数の配線禁止領域を迂回して配線を実施するステップと、
前記迂回して配線を実施した後に、前記複数の配線禁止領域を削除するステップと、
前記複数の配線禁止領域を削除した後に、再配線を実施するステップとを具備し、
前記複数の配線禁止領域を生成するステップは、
配線層毎に、前記配線の混雑に対応した前記領域内に配線禁止領域を発生させる割合に基づいて、前記複数の配線禁止領域の大きさ及び間隔を算出するステップと、
前記算出結果に基づいて、前記領域に前記複数の配線禁止領域を生成するステップと
を備える
半導体集積回路のレイアウト方法。 - 請求項1に記載の半導体集積回路のレイアウト方法において、
前記算出するステップにおける前記複数の配線禁止領域の各々の大きさは、配線トラック1本分である
半導体集積回路のレイアウト方法。 - 請求項1に記載の半導体集積回路のレイアウト方法において、
前記算出するステップにおける前記複数の配線禁止領域の各々の間隔は、配線トラック1本分である
半導体集積回路のレイアウト方法。 - 請求項1乃至3のいずれか一項に記載の半導体集積回路のレイアウト方法において、
前記複数の配線禁止領域を削除した後に、前記配線混雑箇所が無くなるまで、前記抽出するステップから前記削除するステップまでを繰り返し実施する
半導体集積回路のレイアウト方法。 - 請求項1乃至4のいずれか一項に記載の半導体集積回路のレイアウト方法において、
前記再配線を実施した後に、配線エラーが収束しているかを判定するステップと、
前記配線エラーが収束していない場合、前記複数の配線禁止領域の大きさ及び間隔を変更するステップとを更に具備し、
配線エラーが収束するまで、前記変更するステップ、前記複数の配線禁止領域を生成するステップから前記再配線を実施するステップまで、及び、前記抽出するステップを繰り返して実施する
半導体集積回路のレイアウト方法。 - 請求項5に記載の半導体集積回路のレイアウト方法において、
前記変更するステップにおける前記複数の配線禁止領域の大きさは、配線トラック1本分を追加するように変更される
半導体集積回路のレイアウト方法。 - 請求項5に記載の半導体集積回路のレイアウト方法において、
前記変更するステップにおける前記複数の配線禁止領域の間隔は、配線トラック1本分を追加するように変更される
半導体集積回路のレイアウト方法。 - 請求項1乃至7のいずれか一項に記載の半導体集積回路のレイアウト方法をコンピュータに実行させるプログラム。
- 半導体集積回路の回路構成要素の配置及び配線後に、予め設定された条件よりも配線が混雑する配線混雑箇所を抽出する混雑抽出判定部と、
前記配線混雑箇所を含む領域に、配線が禁止される複数の配線禁止領域を生成する禁止領域発生部と、
前記複数の配線禁止領域を迂回して配線を実施する配線再見積部と、
前記迂回して配線を実施した後に、前記複数の配線禁止領域を削除する禁止領域削除部と、
前記複数の配線禁止領域を削除した後に、再配線を実施する再配線部とを具備し、
前記禁止領域発生部は、
配線層毎に、前記領域内に配線禁止領域を発生させる割合に基づいて、前記複数の配線禁止領域の大きさ及び間隔を算出する禁止領域算出部と、
前記算出結果に基づいて、前記領域に前記複数の配線禁止領域を生成する禁止領域発生部と
を備える
半導体集積回路のレイアウト装置。 - 請求項9に記載の半導体集積回路のレイアウト装置において、
前記禁止領域算出部が算出する前記複数の配線禁止領域の各々の大きさは、配線トラック1本分である
半導体集積回路のレイアウト装置。 - 請求項9に記載の半導体集積回路のレイアウト装置において、
前記禁止領域算出部が算出する前記複数の配線禁止領域の各々の間隔は、配線トラック1本分である
半導体集積回路のレイアウト装置。 - 請求項9乃至11のいずれか一項に記載の半導体集積回路のレイアウト装置において、
前記禁止領域削除部が前記複数の配線禁止領域を削除した後に、前記配線混雑箇所が無くなるまで、前記混雑抽出判定部、前記禁止領域発生部、前記配線再見積部、及び前記禁止領域削除部がその動作を繰り返し実施する
半導体集積回路のレイアウト装置。 - 請求項9乃至12のいずれか一項に記載の半導体集積回路のレイアウト装置において、
前記再配線を実施した後に、配線エラーが収束しているかを判定する配線エラー判定部と、
前記配線エラーが収束していない場合、前記複数の配線禁止領域の大きさ及び間隔を変更する禁止領域変更部とを更に具備し、
配線エラーが収束するまで、前記禁止領域変更部、前記禁止領域発生部、前記配線再見積部、前記禁止領域削除部再配線部、及び前記混雑抽出判定部がその動作を繰り返して実施する
半導体集積回路のレイアウト装置。 - 請求項13に記載の半導体集積回路のレイアウト装置において、
前記禁止領域変更部が変更する前記複数の配線禁止領域の大きさは、配線トラック1本分を追加するように変更される
半導体集積回路のレイアウト装置。 - 請求項13に記載の半導体集積回路のレイアウト装置において、
前記禁止領域変更部が変更する前記複数の配線禁止領域の間隔は、配線トラック1本分を追加するように変更される
半導体集積回路のレイアウト装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010049350A JP2011186625A (ja) | 2010-03-05 | 2010-03-05 | 半導体集積回路のレイアウト装置及びレイアウト方法 |
US13/039,955 US8402415B2 (en) | 2010-03-05 | 2011-03-03 | Layout device and layout method of semiconductor integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010049350A JP2011186625A (ja) | 2010-03-05 | 2010-03-05 | 半導体集積回路のレイアウト装置及びレイアウト方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011186625A true JP2011186625A (ja) | 2011-09-22 |
Family
ID=44532369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010049350A Pending JP2011186625A (ja) | 2010-03-05 | 2010-03-05 | 半導体集積回路のレイアウト装置及びレイアウト方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8402415B2 (ja) |
JP (1) | JP2011186625A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013045861A (ja) * | 2011-08-24 | 2013-03-04 | Renesas Electronics Corp | 半導体レイアウト設定装置、半導体レイアウト設定方法、及び半導体レイアウト設定プログラム |
US8990756B2 (en) * | 2012-11-22 | 2015-03-24 | Synopsys Taiwan Co., LTD. | Gateway model routing with slits on wires |
CN107679339B (zh) * | 2017-10-20 | 2021-10-19 | 东南大学 | 微槽道散热冷板开槽方法 |
TWI664546B (zh) * | 2018-06-21 | 2019-07-01 | 瑞昱半導體股份有限公司 | 時脈樹合成方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0945776A (ja) * | 1995-07-27 | 1997-02-14 | Toshiba Corp | 半導体論理集積回路のレイアウト設計法 |
JPH10163326A (ja) * | 1996-11-26 | 1998-06-19 | Nec Ic Microcomput Syst Ltd | 自動配置配線方法 |
JPH10270563A (ja) * | 1997-03-27 | 1998-10-09 | Nec Corp | 集積回路の自動概略配線方法 |
JP2008227198A (ja) * | 2007-03-14 | 2008-09-25 | Fujitsu Ltd | 半導体集積回路のレイアウト設計方法、レイアウト設計装置およびレイアウト設計プログラム |
JP2009032762A (ja) * | 2007-07-25 | 2009-02-12 | Nec Electronics Corp | 半導体集積回路のレイアウト修正方法及び半導体集積回路のレイアウト修正装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3351651B2 (ja) * | 1995-04-07 | 2002-12-03 | 富士通株式会社 | 会話型回路設計装置 |
JP3137178B2 (ja) * | 1996-08-14 | 2001-02-19 | 日本電気株式会社 | 集積回路の配線設計方法および装置 |
US6330707B1 (en) * | 1997-09-29 | 2001-12-11 | Matsushita Electric Industrial Co., Ltd. | Automatic routing method |
US6691296B1 (en) * | 1998-02-02 | 2004-02-10 | Matsushita Electric Industrial Co., Ltd. | Circuit board design aiding |
US6349403B1 (en) * | 1998-12-18 | 2002-02-19 | Synopsys, Inc. | Interative, gridless, cost-based layer assignment coarse router for computer controlled IC design |
JP4227304B2 (ja) * | 1998-12-22 | 2009-02-18 | 富士通株式会社 | 概略配線方法及び装置並びに概略配線プログラムを格納した記録媒体 |
JP2001257268A (ja) * | 2000-03-13 | 2001-09-21 | Nec Microsystems Ltd | レイアウト方法 |
US7739624B2 (en) * | 2002-07-29 | 2010-06-15 | Synopsys, Inc. | Methods and apparatuses to generate a shielding mesh for integrated circuit devices |
US8095903B2 (en) * | 2004-06-01 | 2012-01-10 | Pulsic Limited | Automatically routing nets with variable spacing |
US7131096B1 (en) * | 2004-06-01 | 2006-10-31 | Pulsic Limited | Method of automatically routing nets according to current density rules |
US7257797B1 (en) * | 2004-06-07 | 2007-08-14 | Pulsic Limited | Method of automatic shape-based routing of interconnects in spines for integrated circuit design |
US7739646B2 (en) * | 2006-10-12 | 2010-06-15 | Springsoft, Inc. | Analog and mixed signal IC layout system |
US7962881B2 (en) * | 2008-07-29 | 2011-06-14 | International Business Machines Corporation | Via structure to improve routing of wires within an integrated circuit |
US8108819B2 (en) * | 2009-04-08 | 2012-01-31 | International Business Machines Corporation | Object placement in integrated circuit design |
-
2010
- 2010-03-05 JP JP2010049350A patent/JP2011186625A/ja active Pending
-
2011
- 2011-03-03 US US13/039,955 patent/US8402415B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0945776A (ja) * | 1995-07-27 | 1997-02-14 | Toshiba Corp | 半導体論理集積回路のレイアウト設計法 |
JPH10163326A (ja) * | 1996-11-26 | 1998-06-19 | Nec Ic Microcomput Syst Ltd | 自動配置配線方法 |
JPH10270563A (ja) * | 1997-03-27 | 1998-10-09 | Nec Corp | 集積回路の自動概略配線方法 |
JP2008227198A (ja) * | 2007-03-14 | 2008-09-25 | Fujitsu Ltd | 半導体集積回路のレイアウト設計方法、レイアウト設計装置およびレイアウト設計プログラム |
JP2009032762A (ja) * | 2007-07-25 | 2009-02-12 | Nec Electronics Corp | 半導体集積回路のレイアウト修正方法及び半導体集積回路のレイアウト修正装置 |
Also Published As
Publication number | Publication date |
---|---|
US8402415B2 (en) | 2013-03-19 |
US20110219347A1 (en) | 2011-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9262577B2 (en) | Layout method and system for multi-patterning integrated circuits | |
Westra et al. | Probabilistic congestion prediction | |
US9594866B2 (en) | Method for checking and fixing double-patterning layout | |
US9507904B2 (en) | System and method of circuit layout for multiple cells | |
CN107066681B (zh) | 集成电路和制造集成电路的计算机实现方法 | |
US9477801B2 (en) | Multi-threaded track assignment | |
TWI581053B (zh) | 用於遮罩感知佈線之方法及裝置 | |
KR101460448B1 (ko) | 이중 패터닝 기술들을 위한 물리 결정 경계 상호접속 피처들을 생성하기 위한 시스템 및 방법 | |
US9009645B2 (en) | Automatic clock tree routing rule generation | |
US8806407B2 (en) | Multiple-instantiated-module (MIM) aware pin assignment | |
US20230036710A1 (en) | Technology-independent line end routing | |
JP2011186625A (ja) | 半導体集積回路のレイアウト装置及びレイアウト方法 | |
JP2009015491A (ja) | 半導体集積回路のレイアウト設計方法 | |
US11966682B2 (en) | Fast independent checker for extreme ultraviolet (EUV) routing | |
Chang et al. | MANA: A shortest path maze algorithm under separation and minimum length nanometer rules | |
Ziesemer Jr et al. | Physical design automation of transistor networks | |
JP2009020575A (ja) | 半導体集積回路の設計方法および設計装置 | |
JP2004259967A (ja) | 半導体集積回路及び半導体集積回路の設計方法 | |
JP2006190062A (ja) | 半導体集積回路のフロアプラン方法および計算機システム | |
JP2009134439A (ja) | ソフトマクロを用いたレイアウト設計方法、ソフトマクロのデータ構造及びソフトマクロライブラリの作成方法 | |
Smey et al. | Crosstalk reduction in area routing | |
Zuber et al. | Wire topology optimization for low power CMOS | |
JP3705737B2 (ja) | 半導体集積回路のレイアウト方法 | |
JP2015053001A (ja) | 半導体集積回路のレイアウト方法、及び、半導体集積回路のレイアウトプログラム | |
Saha et al. | An efficient intersection avoiding rectilinear routing technique in VLSI |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120725 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130731 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130820 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131216 |