説明

レイアウト設計装置、レイアウト設計方法、及びレイアウト設計プログラム

【課題】
複数階層を有する半導体集積回路の階層レイアウトを行なう際に、複数個所で使用される下位モジュールについての各配置箇所における下位モジュール近傍の上位階層の配線状況を考慮して、下位モジュールのレイアウト設計を行なうことを課題とする。
【解決手段】
上記課題を解決するために、本発明に係るレイアウト設計装置は、複数階層を有する半導体集積回路のレイアウト設計装置であって、複数個所で使用される下位モジュールについて、前記下位モジュールが配置される上位モジュール内のそれぞれの配置箇所近傍の上位階層の配線情報を抽出し、抽出した上位階層の配線情報を、前記下位モジュールのレイアウト設計を行なう際の配線禁止領域として設定し、前記下位モジュールのレイアウトを行なう。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数階層を有する半導体集積回路のレイアウト設計に関する。
【背景技術】
【0002】
近年の半導体集積回路の大規模化及び高集積化に伴い、データ規模が大きくなり、回路全体を一度にレイアウトすることが難しくなってきている。そのため、回路全体を複数の機能モジュールに分割し、各機能モジュール単位で論理設計、レイアウト設計、タイミング設計を進め、最後にこれらの機能モジュールを組み上げて半導体集積回路の全体を構成するような階層設計が行なわれている。
【0003】
階層設計を行なう場合、下位モジュール内部の上層及びモジュール境界近傍の領域にある配線と、上位階層の配線とが互いに影響を与える場合がある。ここでいう「影響」とは、レイアウト設計上のデザインルール違反やクロストークノイズによる影響等をいうものとする(以下、同様)。そのため、下位モジュール内の配線と上位階層の配線との間で互いに影響を及ぼすのを防止するためのいくつかの技術が考えられている。
【0004】
第1の技術として、下位モジュールの境界近傍に所定の幅の配線禁止領域を設ける手法が考えられている。例えば、図17(A)に示すように、回路26を2つの下位モジュール35、36に機能的・物理的に分割して階層レイアウト設計する場合、図17(B)の斜線で示した領域のように、各下位モジュール35、36の内部又は外部のモジュール境界近傍に一定幅のシールド領域、すなわち、配線禁止領域を設ける。このように下位モジュールの境界部分に配線禁止領域を設けることにより、下位モジュール内の配線であるNet1やNet2と、上位モジュール内の配線であるNetBとの間で影響が生じることを防止することができる。
【0005】
第2の技術として、下位モジュール内の境界近傍の配線情報を抽出し、抽出した配線情報を基に、上位階層における配線禁止領域を設定し、上位階層のレイアウト設計を行なう手法が考えられている。例えば、図17(C)に示される下位モジュール35及び下位モジュール36内部のモジュール境界近傍の配線であるNet1及びNet2の各情報を抽出し、抽出した各配線情報を基に、上位階層に配線禁止領域を設定する。そして、設定された配線禁止領域の情報を考慮して上位階層に係る上位モジュール26のレイアウトを行なう。このようにすることで、下位モジュール35、36内の配線状況を考慮した、上位モジュール26のレイアウト設計が可能となる。
【0006】
第3の技術として、上位階層の配線情報を基に下位モジュール内に配線禁止領域を設けて、下位モジュールのレイアウト設計を行なう手法が考えられている。例えば、上位階層の配線に関する情報がある状態で、下位モジュールのレイアウトを行なう場合、その下位モジュールの配置箇所を通る上位階層の配線情報を基に下位モジュール内に配線禁止領域を設定して、下位モジュールのレイアウトを行なうといったものである。このようにすることで、下位モジュール近傍の上位階層の配線を考慮した下位モジュールのレイアウト設計が可能となる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−270775号公報
【特許文献2】特開2005−63275号公報
【特許文献3】特開2003−242191号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ハイエンドサーバ等の上位機種向けの半導体集積回路では、CAD(Computer Aided Design)ツールによる自動配置配線だけでなく、手動によるマニュアル・レイアウトも行なわれ、高速、かつ高密度なレイアウト設計を行なう努力がなされている。半導体集積回路の高速、かつ高密度な階層レイアウトを行なうような場合には、上記技術では高品質なレイアウトを行なうことが容易でない場合が生じ得る。以下、具体的に説明する。
【0009】
前述の第1の技術のように、下位モジュール境界近傍に所定の幅の配線禁止領域を設ける場合、回路の実際の配置・配線状況を考慮しないで配線禁止領域を設定することになる。そのため、配線禁止領域に設定する必要の無い領域についてまで配線禁止としてしまい、回路の高密度な実装を阻害してしまう場合がある。
【0010】
また、前記第2の技術においては、下位モジュール35、36設計時に上位モジュール26の配線情報を参照できない。そのため、前記第2の技術においては、上位モジュール26のクロック配線等のように、上位モジュールの配線が優先されるべき場合でも、下位モジュール35、36設計後に、下位モジュール35、36内の配線を避けるように上位モジュールの配線処理をしなければならなくなる。
【0011】
前述の第3の技術のように、特定箇所に配置された下位モジュール近傍の上位階層の配線を考慮して下位モジュールのレイアウト設計を行なう場合、そのようにして配線レイアウトされた下位モジュールを複数個所に適用する際に問題となる場合がある。特に、同じ下位モジュールが複数個所に配置され、かつ、各配置箇所における下位モジュールの周囲の配線状況が異なる場合、各配置箇所における下位モジュールの周囲の配線状況に適合するように下位モジュールのレイアウトを変えなければならない可能性がある。この場合、簡便なレイアウト処理フローにより、全ての配置箇所における周りの配線状況を考慮して下位モジュールのレイアウトを行なうことは困難となる。この状況を、図18を用いて説明する。
【0012】
図18では、半導体集積回路のCHIP27は、下位モジュールとして、回路モジュールAを4つ(37〜40)と、回路モジュールB(41)とを有する。図18において、各下位モジュール枠内に描かれた黒い四角は、各モジュールの配置原点、すなわち、各下位モジュールのレイアウト処理を行なう際の基準位置を示す。下位モジュールAは、4つのインスタンス(A1〜A4)を付して、異なる方向に回転して4箇所に配置されている。下位モジュール38と下位モジュール39は、下位モジュール37を90度右回転して配置され、下位モジュール40は、下位モジュール37を90度左回転して配置されている。各下位モジュール37〜40は、黒丸で示した端子PinCを内側に有しているものとし、各端子PinCは、上位階層において、それぞれ異なる配線(NetA〜NetD)により下位モジュール41と接続されているものとする。説明の便宜上、その他の端子や配線については図18では省略する。
【0013】
図18に示すCHIP27のレイアウト設計において、例えば、インスタンスがA1の下位モジュール37に着目して、下位モジュール37近傍の上位階層の配線、例えば、NetB等を考慮して下位モジュールAの配置・配線等のレイアウト設計を行なうとする。この場合、他のインスタンス(A2〜A4)の下位モジュール38〜40の周りの配線状況が考慮されないまま、下位モジュールAのレイアウトが行なわれる。こうしてレイアウトされた下位モジュールAを、インスタンスがA2、A3、及びA4のそれぞれの箇所でも好適に用いるためには、インスタンスがA2〜A4の各下位モジュール38〜40近傍の上位階層の配線を、インスタンスがA1の下位モジュール37近傍の上位階層の配線と同様に配線することが望ましい。
【0014】
しかし、各下位モジュールの周りの回路の配置・配線状況によっては、上層階層の配線を非対称とせざるを得ない部分が生じ、下位モジュール38〜40のそれぞれの近傍の配線を、下位モジュール37の近傍の配線と同一の状態でレイアウト設計することが困難な場合がある。例えば、図18において、各下位モジュール37〜40の端子PinCに接続される各々のネット(NetA、NetB、NetC、及びNetD)を、最短で中央の下位モジュール41に接続するには、これらの各ネットについて、それぞれ下位モジュール37〜40上の異なる箇所を通る配線とせざるを得ない。
【0015】
各下位モジュール38〜40近傍の上位階層の配線が下位モジュール37近傍の上位階層の配線と非対称とならざるを得ない場合には、まずは、例えば下位モジュール37を基準として下位モジュールAのレイアウトを行なう。そして、レイアウトされた下位モジュールAのレイアウトデータをインスタンスがA2〜A4の下位モジュール38〜40に適用し、それぞれの下位モジュール38〜40の配置箇所において、上位階層の配線や他のモジュール内の配線との影響がないかをチェックする。バイオレーションが発生した場合には、上位階層の配線を修正するか、又は、バイオレーションが発生した箇所における下位モジュールAの周りの配線状況を考慮して下位モジュールAの配置・配線を修正し、再度、バイオレーションの有無をチェックする等の対策が必要となる。
【0016】
ところが、下位モジュールAを流用して配置する箇所が多くなってくると、全ての配置箇所における下位モジュール近傍の上位階層の配線状況を考慮して下位モジュールAを修正することは非常に困難となるという問題点がある。そのため、本発明では、複数階層を有する半導体集積回路の階層レイアウトを行なう際に、複数個所で使用される下位モジュールについての各配置箇所における下位モジュール近傍の上位階層の配線状況を考慮して、下位モジュールのレイアウト設計を行なうことを課題とする。
【課題を解決するための手段】
【0017】
上記課題を解決するために、本発明に係るレイアウト設計装置は、複数階層を有する半導体集積回路のレイアウト設計を行なうレイアウト設計装置であって、上位モジュール内の複数個所で使用される下位モジュールについて、前記下位モジュールが配置された各配置箇所近傍の上位階層の配線情報を抽出し、前記抽出した複数個所における上位階層の配線情報に基づいて、前記下位モジュールのレイアウトを行なうためのデータであるレイアウト用データベースに、配線処理を禁止する特定の領域である配線禁止領域を設定し、前記下位モジュールのレイアウト設計を行なう。
【発明の効果】
【0018】
階層レイアウトを行なう際に、複数個所で使用される下位モジュールについての各配置箇所における下位モジュール近傍の上位階層の配線状況を考慮して、下位モジュールのレイアウト設計を行なうことが可能となる。また、このようにして下位モジュールのレイアウト設計を行なうことにより、レイアウト後の下位モジュールのレイアウト検証において、その下位モジュールの内部だけでなく、周りの配線状況も加味した正確なレイアウト検証を行なうことが可能となる。
【図面の簡単な説明】
【0019】
【図1】実施例に係るレイアウト処理の全体フローの例の概要を示した図である。
【図2】実施例に係るレイアウト処理の実行環境を示したである。
【図3】複数個所に配置された下位モジュール近傍の配線情報を下位モジュールのレイアウト用のデータにマージする処理の説明図である。
【図4】隣接する下位モジュール内の配線どうしが互いに影響を与える場合の例を示した図である。
【図5】同じ下位モジュールを複数個所に隣接配置した場合の例を示した図である。
【図6】同じ下位モジュールを複数個所に隣接配置した場合の上位階層の配線情報の抽出例を示した図である。
【図7】下位モジュールの端子に接続された上位配線の取り扱いを説明する図である。
【図8】実施例に係るレイアウト設計装置の構成を示した図である。
【図9】実施例に係るレイアウト処理フローを示した図である。
【図10】実施例に係る下位モジュール境界データ抽出処理の内容を示した図である。
【図11】実施例に係る下位モジュールのデータ落とし込み処理の内容を示した図である。
【図12】実施例に係る下位モジュール処理の内容を示した図である。
【図13】下位モジュール内のモジュール境界枠付近の配線の抽出対象を示した図である。
【図14】同じ名前のネットが複数の下位モジュールに存在する場合を示した図である。
【図15】下位モジュール近傍の一定領域内にある上位階層の配線の抽出対象及び抽出結果を示した図である。
【図16】下位モジュールの端子に接続された下位モジュール内部の配線と上層階層の配線との関係を示した図である。
【図17】従来技術を説明した図である。
【図18】従来技術に関する課題を説明する図である。
【発明を実施するための形態】
【0020】
以下、本発明を実施するための形態について詳細に説明する。
【0021】
図1は、実施例に係るレイアウト設計装置、レイアウト設計方法、及びレイアウト検証方法を実施するためのコンピュータ10の構成例を示した図である。コンピュータ10は、CPU(Central Processing Unit)11、メモリ12、キーボードやマウス等の入力装置とのインターフェース回路13、ディスプレイ等の出力装置とのインターフェース回路14、ネットワークインターフェース回路15、及び、記憶装置16を有する。また、コンピュータ10の外部には、所定のネットワーク通信回線19を介してネットワーク上の記憶装置17が接続される。
【0022】
記憶装置16やネットワーク上の記憶装置17は、磁気ディスク装置、光ディスク装置、光磁気ディスク装置あるいは半導体記憶装置を含み、コンピュータ読み取り可能な記録媒体を扱うドライブ装置も含む。ドライブ装置が扱う記録媒体としては、磁気テープ、メモリカード、光ディスク(CD−ROM,DVD−ROM,等)、光磁気ディスク(MO,MD,等)といった、任意のコンピュータ読み取り可能な記録媒体を使用することができる。
【0023】
記憶装置16やネットワーク上の記憶装置17は、レイアウト設計の対象となる回路情報70、レイアウト処理で使用するライブラリ71、及び、レイアウト処理を行なうためのプログラム72等を格納する。CPU11は、バス18や各インターフェース回路(13〜15)を介して、メモリ12、記憶装置16、17、及び各種入出力装置等にアクセスし、記憶装置16や記憶装置17に格納されたプログラム72、又は、メモリ12等にロードされたプログラム72を実行する。以下に説明する実施例に係るレイアウト処理等は、図1に示すコンピュータ10が有するCPU11により実行されるものとする。

図2は、実施例に係るレイアウト処理の全体フローの一態様について、そのフローの概要を示した図である。本発明は、図2に係るレイアウト処理のフローでのみ使用されるものではなく、他のフローにおいても適用し得るが、説明の便宜上、図2の全体フローを用いて、以下、実施例を説明する。なお、図2のフローで示されるレイアウト処理を行なう前提として、レイアウトを行なう対象となる回路は、階層レイアウトを行なうことを考慮した論理階層を有し、そのレイアウト対象の回路についての論理設計は完了しているものとする。
【0024】
図2に示すレイアウト処理の全体フローの例では、最初に、レイアウト対象となる回路のモジュール分割を行なう(S100)。このモジュール分割では、階層レイアウトの対象となる回路の回路規模や機能等を考慮して、階層レイアウトを行なうのに適した大きさの回路ブロックになるように、レイアウト処理上の階層(以下、「レイアウト階層」という)を分割する。そして、分割された各レイアウト階層のモジュールについて、端子位置、モジュール間配線、動作周波数、及び回路規模等を考慮しながら、好適なレイアウト処理を行ない得るフロアプランを作成する(S101)。
【0025】
フロアプランを作成して各下位モジュールのモジュール境界枠が決まると、各々のモジュール内部の電源設計、及びクロック設計を行なう(S102)。一般に、フロアプラン後の配置・配線の処理においては、電源配線やクロック配線等は最も優先度が高く、最初に電源・クロック設計が行なわれることが多い。S102の処理において、各下位モジュールの電源・クロック設計等を行なう処理は、個々の下位モジュール毎に独立した作業となるので、並列して行なってもよい。尚、下位モジュールの回路の内容や設計の進捗状況によっては、S102の処理において、下位モジュールの電源設計、クロック設計に加えて、その下位モジュールの詳細な配置、配線設計まで行なわれる場合もある。
【0026】
各下位モジュールの電源・クロック設計が完了すると、それらの下位モジュールを有する上位階層の上位モジュールの電源・クロック設計を行なう(S103)。その際、下位モジュールのクロック以外の信号線についてもモジュール端子位置が決まっているような場合には、例えば、タイミング的にクリティカルになる配線等について予め優先的に配線をしておく場合もある。
【0027】
上位モジュールにおける電源配線、クロック配線や通常の信号についての配線が行なわれた後は、図2中の点線で囲まれた処理(S104,S105)により、各下位モジュールのレイアウト設計を行なっていく。
【0028】
本実施例では、まず、各々の下位モジュールの詳細設計に入る前に、下位モジュールが配置される箇所の近傍、すなわち、その下位モジュールの周辺あるいはその下位モジュール上の上位階層の配線情報を基に、その下位モジュールのレイアウトにおける配線禁止領域を設定する(S104)。その際、同一の下位モジュールが複数個所で使用されている場合には、全ての使用箇所における上位階層の配線情報を基に、その下位モジュールのレイアウトにおける配線禁止領域を設定する。また、上位階層の配線情報を基に下位モジュールのレイアウトにおける配線禁止領域を設定する際、上位階層の配線情報が示す配線の配線幅に、所定の間隔、例えば所定の配線スペーシングルールを満たす幅を加えた幅の配線禁止領域を設定してもよい。そして、上位階層の配線情報を基に設定された配線禁止領域を考慮しながら下位モジュールの詳細設計を行なう(S105)。
【0029】
S105の下位モジュールの詳細設計においては、配置・配線といった処理に加え、配置・配線した結果がレイアウト設計上の所定のデザインルールを満たすかといったことを検証するレイアウト検証も行なわれる。また、レイアウト後の配線情報等から配線抵抗や配線容量の抽出を行なって遅延計算を行い、その下位モジュールが所定の動作周波数で動作するかを検証するSTA(Static Timing Analysis)等のタイミング検証も行なわれる。タイミング検証では、STAに加えて、実配線遅延を考慮した論理シミュレーションを行なって、所定の動作周波数で回路が動作するか否かの検証が行なわれることもある。レイアウト検証やタイミング検証でバイオレーションがある場合、必要に応じてS102まで戻りつつ、配置・配線を修正して、各バイオレーションを解消していくことになる。
【0030】
S104とS105の処理内容の詳細については、後述する。尚、S104において、全ての下位モジュールについて上位階層の配線に基づく配線禁止領域を設定した後に、S105で各下位モジュールの詳細配線を行なうようにしてもよいし、個々の下位モジュールついてS104とS105を一連の処理として実行するようにしてもよい。また、S105の個々の下位モジュールのレイアウト詳細設計は各々独立して行なうことができるので、S105で複数の下位モジュールのレイアウト設計を並行して行なうこともできる。
【0031】
上位モジュールに含まれる全ての下位モジュールの詳細設計が終わると、それらの各下位モジュール内のモジュール境界付近の配線を考慮しながら、上位階層のレイアウト設計を行なう(S106)。下位モジュール内のモジュール境界付近の配線を考慮した上位階層のレイアウト方法の詳細については後述する。
【0032】
上位モジュールにおける配線処理等のレイアウト設計が終わると、その上位モジュールについて、さらに、レイアウト検証やタイミング検証を行なう(S106)。レイアウト検証では、上位階層に影響を与える可能性のある各下位モジュール内の配線のみを抽出して上位階層のレイアウト検証を行なってもよいし、上位階層に含まれる全ての下位階層のレイアウトデータを上位階層のレイアウトデータにマージして行なってもよい。また、タイミング検証では、各下位モジュールのレイアウトデータを上位モジュールのレイアウトデータにマージしてタイミング検証を行なってもよいし、各下位モジュールのレイアウト結果から抽出して作成した簡略化したタイミングモデルを用いて上位モジュールのタイミング検証を行なうようにしてもよい。
【0033】
S106での上位モジュールのレイアウト検証やタイミング検証でバイオレーション、すなわちエラーがある場合には、上位モジュール内の配置・配線を修正したり(S106)、必要に応じて、S102〜S105に戻って下位モジュールのレイアウトの修正を行なう。そして、S106におけるレイアウト検証やタイミング検証の結果で修正が必要となるバイオレーションが消え、各下位モジュールのレイアウト設計も完了している場合には、レイアウト設計が完了となる(S107 YES)。
【0034】
なお、上位モジュールに含まれる一部の下位モジュールの詳細レイアウト設計が完了していない場合においても、上位モジュールの詳細設計を行なうことができる(S106)。上位モジュールの詳細設計が一通り完了した段階において、全ての下位モジュールの詳細設計が完了していない場合には、S107の条件判定において設計完了とならないため、S107での判定結果は“NO”となる。この場合、未処理の下位モジュールの状態に応じて、S102、又は、S104の処理に戻って、引き続きレイアウト処理が行なわれることになる。
【0035】
以下、図2におけるS104及びS105の処理を中心に、これらの処理の詳細について、図3以降の図面を用いて説明する。

図3は、複数個所に配置された同じ下位モジュール近傍の配線情報を下位モジュールのレイアウト用のデータベースに落とし込む、すなわち下位モジュール近傍の配線情報を追加する処理の説明図である。図3(A)に示す上位モジュール21は、モジュールAを内容とする、インスタンスがA1とA2の2つの下位モジュール31及び32を有する。
【0036】
図3中、下位モジュール30〜32内に描かれている黒い四角は、下位モジュールのレイアウトをする際の配置原点を示す記号であり、Fの記号は回転方向を示す記号である。配置原点は、レイアウト対象となるモジュールのレイアウトを行なう際の座標系の原点の位置を視覚的に表示したものである。Fの記号は、Fの記号が付されたモジュールを回転させたり、反転させたりした場合に、この記号Fも合わせて回転あるいは反転させることにより、そのモジュールの配置方向を視覚的に表示するのに用いられる。Fの記号は、レイアウト用データベースの中では、例えば、回転コードといった名称とし、Fの記号が向いている方向を特定の数値や記号に置き換えてデータベースに記憶する。
【0037】
図3において、下位モジュール32は、下位モジュール31を図3の横方向を軸として垂直方向に反転して、下位モジュール31とは異なる位置に配置したものである。下位モジュール31近傍の上位階層には配線NetBが存在し、下位モジュール32近傍の上位階層には配線NetA及びNetCが存在するものとする。
【0038】
下位モジュールAのレイアウト設計をする際には、図3(A)に示すような下位モジュールAの2つの配置箇所近傍の上位階層の配線NetA,NetB,NetCの全てを考慮したレイアウト設計を行なうことが望ましい。本実施例では、図3(A)のように下位モジュールAが複数個所で使用されているような場合において、下位モジュールの全ての配置箇所近傍の上位階層の配線に基づいて配線禁止領域を設定し、下位モジュールAのレイアウト設計を行なう。
【0039】
図3(A)において下位モジュール31と下位モジュール32は垂直方向に反転して異なる位置に配置されているので、上位階層の配線情報を下位モジュールのレイアウト用データベースに落とし込む際には、上位階層の配線の座標情報を下位モジュールの座標系に変換する必要がある。すなわち、下位モジュールの配置原点と回転方向や反転の有無等を考慮した相対的な座標系に上位階層の配線の座標情報を変換して、上位階層の配線情報を下位モジュールのレイアウト用データベースに落とし込む。
【0040】
図3(B)は、2つの下位モジュール(31、32)近傍を通る上位階層の各配線の情報を下位モジュールA単体(30)のレイアウト用データベースに落とし込んだ場合のイメージ図を示したものである。図3(B)に示すように、下位モジュールAの図示左下に配置原点があるとすると、上位階層のNetBの配線情報は座標変換しないで下位モジュールAの座標系に変換し、上位階層のNetA及びNetCの配線情報については、座標情報を垂直方向に反転してから下位モジュールAの座標系に変換する。
【0041】
図3(B)では、下位モジュールA(30)のレイアウト用データベースに落とし込まれた上位階層の配線情報(NetA,NetB,NetC)を破線で表している。この落とし込まれた上位階層の配線情報を考慮して下位モジュールA(30)のレイアウトを行なうためには、下位モジュールA(30)のレイアウト設計時において、破線で表された上位階層の配線情報を動かすことのできない配線禁止領域として扱う。そして、下位モジュールA(30)のレイアウト検証時においては、破線で表された上位階層の配線情報は、下位モジュールA(30)のレイアウト用データベースの中に存在する配線であると擬似的に取り扱って、下位モジュールA(30)のレイアウト検証を行なう。このようにすることで、上位階層の配線情報を考慮した下位モジュールAのレイアウト設計及びレイアウト検証を行なうことが可能となる。下位モジュールAのレイアウト設計及びレイアウト検証における、上位階層の配線情報の具体的な取り扱いについては後述する。

ところで、階層レイアウトを行なう場合、複数の下位モジュールを並べて配置するような場合があるが、その際、無駄なスペースを作らないように、下位モジュールどうしの間をほとんど間隔を空けずに隣接させて配置したい場合がある。そのような場合、隣り合う下位モジュール内部のモジュール境界枠付近の配線どうしが影響を及ぼしあう場合がある。
【0042】
例えば、図4は、隣接する下位モジュール内の配線どうしが互いに影響を与える場合の例を示した図である。図4において、下位モジュール35の図示右辺近傍には配線Net1があり、下位モジュール36の図示左辺近傍には配線Net2があり、破線の円で囲った部分においてこれら各配線が互いに影響を及ぼし合う場合がある。この部分での影響としては、例えば互いにクロストークノイズを発生させたり、最低限確保しなければならない配線間隔であるスペーシング条件を満たさないといったスペーシングルール違反を起こすおそれなどがある。
【0043】
図4と同様の例として、図5は、CHIP20の中に、同じモジュールAを下位モジュール31〜34として4個所に隣接配置した場合の例を示す。図5の例の場合、各下位モジュール31〜34内部の配線であるNet1及びNet2が、それぞれ隣接する下位モジュール内の配線に影響を及ぼし合う可能性がある。
【0044】
このように、下位モジュールの上位階層の配線のみに着目して、下位モジュールのレイアウト時に配線禁止領域として設定するレイアウト方法(図3等)だと、隣接する下位モジュール内部の配線との影響を排除できないという問題がある。この点については、前述の第2の技術のように、下位モジュール内の境界近傍の配線情報を抽出し、抽出した配線情報を基に配線禁止領域を設定して上位階層のレイアウト設計を行なう手法においても同様の問題が存在する。前述の第2の技術においては、下位モジュールのレイアウト設計時に、その下位モジュール外部の状況を考慮したレイアウト上の制約は特にかからないためである。前述の第3の技術についても同様の問題が存在する。
【0045】
従って、ある下位モジュールのレイアウトを行なう場合には、その下位モジュール近傍の上位階層の配線に加えて、その下位モジュールに隣接する下位モジュール内のモジュール境界近傍の配線をも考慮して、その下位モジュールのレイアウトを行なうことが望ましい。
【0046】
このような要望を満たすための方法として、本実施例では、まず、上位モジュールに含まれる各下位モジュールについて、下位モジュール内部のモジュール境界近傍の配線情報を抽出する。そして、抽出した下位モジュール内部の境界近傍の配線情報を、暫定的に上位階層のレイアウト用データベースにマージする。抽出した下位モジュール内部の境界近傍の配線情報を、上位階層のレイアウト用データベースにマージする代わりに、暫定的に、データベース中に特定の中間データとして記憶するようにしてもよい。
【0047】
図5の例では、各下位モジュール31〜34内の配線であるNet1,Net2のそれぞれの配線情報を、一旦、上位階層のレイアウト用データベースに持ち上げて、上位階層の配線情報とマージする。そして、各下位モジュール内の境界近傍の配線情報を含んだ上位階層の配線情報を用いて、レイアウト対象となる下位モジュールに影響を与える可能性のある上位階層の配線情報を抽出し、抽出した配線情報を基に下位モジュールのレイアウト用の配線禁止領域を設定する。このようにすることで、隣接する下位モジュール内部の境界付近の配線をも考慮して、下位モジュールのレイアウト設計を行なうことが可能となる。この具体例について、図5及び図6を用いて説明する。
【0048】
最初、図5におけるCHIP20のレイアウト用データベースにおいて、下位モジュール31〜34の各インスタンス(A1〜A4)に対して、その下位モジュール内部の境界近傍の配線情報を抽出する。具体的には、下位モジュール31内部のNet1及びNet2の配線情報、下位モジュール32内部のNet1及びNet2の配線情報、下位モジュール33内部のNet1及びNet2の配線情報、下位モジュール34内部のNet1及びNet2の配線情報を抽出する。尚、この段階で抽出する配線情報としては、下位モジュール内の配線に加えて、コンタクト(VIA)や下位モジュール内部にある特定のトランジスタにより構成されて所定の機能ブロックとして機能するセルの内部の配線禁止領域等も含まれるものとする(以下、「配線情報」といった場合において、同じ)。
【0049】
次に、抽出した下位モジュール内の境界近傍の配線情報を、上位階層のCHIP20のレイアウト用データベースにマージする。その際、抽出した下位モジュール内の配線情報は、様々な方向に回転又は反転した各下位モジュールの座標系で表された位置情報を持つので、抽出した下位モジュール内の配線情報の座標を上位階層の座標系での位置座標に変換する。
【0050】
各下位モジュール31〜34内部の境界近傍の配線情報を上位階層のレイアウト用データベースにマージした後、各下位モジュール31〜34のそれぞれについて、その下位モジュールの周辺あるいはその下位モジュール上の上位階層の配線情報を抽出する。この段階では、隣接する下位モジュール内部の境界近傍の配線情報も上位階層のレイアウト用データベースにマージされているため、隣接する下位モジュール内部の配線情報も合わせて上位階層の配線情報として抽出することが可能となる。
【0051】
このようにして、下位モジュール内の境界近傍の配線情報をマージした上位階層のレイアウト用データベースを用いて、各々の下位モジュール近傍の上位階層の配線情報を抽出する処理を図6を用いて説明する。図6は、図5と同じように下位モジュールAを4箇所に隣接配置された状態に加えて、上位モジュールであるCHIP20内の配線としてNetC及びNetDの各配線も合わせて描いた図である。
【0052】
まず、図6における、インスタンスがA3の下位モジュール33近傍の上位階層の配線情報を抽出する場合を考える。図6における点線で囲まれた部分が下位モジュール33のモジュール枠から見てスペーシングルールの影響を受ける範囲、あるいはクロストークノイズの影響を受ける範囲であるとする。すると、下位モジュール33の外側の、点線で囲まれた領域に含まれる他のモジュール内の配線、コンタクト、配線禁止領域などが抽出対象となる。図6では、上位階層のレイアウト用データベースにマージされた、下位モジュール31内のNet1及び下位モジュール34内のNet2が抽出対象となる。下位モジュール31、32内のNet2及び、下位モジュール32、34内のNet1は、点線で囲まれた領域に含まれていないので、下位モジュール33近傍の上位階層の配線としては抽出対象とはならない。
【0053】
また、点線で囲まれた領域にある上位階層の配線や下位モジュール33上の上層階層の配線も抽出対象となる。図6では、下位モジュール33上を通過する配線であるNetC及びNetDが抽出対象となる。尚、下位モジュール33の上の上位階層の配線のうち、下位モジュール33内の配線とのスペーシングルールの影響範囲、及び、クロストークノイズの影響範囲から外れる上位階層の配線については、抽出対象から除外することができる。
【0054】
その他の下位モジュール31,32,34についても同様に、各下位モジュールに着目して、各々の下位モジュール周辺あるいはその下位モジュール上の上位階層の配線情報及び隣接モジュール内の配線情報を抽出する。
【0055】
抽出した各上位階層の配線情報に対して、固有化したネット名を設定する。その際、下位モジュールから抽出した配線情報については、抽出元の下位モジュールのモジュール名、インスタンス名、あるいはこれらに相当する情報を記憶しておく。このようにすることにより、抽出した各上位階層の配線情報を1つの下位モジュールのレイアウト用データベースに落としこむ際に、同一インスタンスのデータを重複して落とし込まないようにすることが可能となる。

CHIP20内の全ての下位モジュール31〜34について、各下位モジュール近傍の配線情報の抽出が完了すると、次に、各インスタンス(A1〜A4)において抽出した上位階層の配線情報を1つの下位モジュールのレイアウト用データベースに落としこむ。ここでは、例えば、インスタンスがA3の下位モジュール33のレイアウト用データベースに着目して、他のインスタンス(A1,A2,A4)の下位モジュール31、32、34の配置箇所近傍の上位階層の配線情報を下位モジュール33のレイアウト用データベースに落としこむ場合を考える。
【0056】
全ての下位モジュールに対して抽出した、各下位モジュール近傍の上位階層の配線情報には、下位モジュール33内部の配線Net1及びNet2の情報も含まれるが、この情報を下位モジュール33に落とし込む必要はないため、落とし込みの対象から外す。
【0057】
また、下位モジュールのレイアウト検証で何らかのエラーが発生した場合等において、下位モジュール内の配線情報と、上位階層の配線情報として下位モジュールのレイアウト用データベースに落としこまれた情報とを人間が区別するには、上位階層の配線情報に対して人間が認識しやすいネット名を付している方が判別し易い。そのため、下位モジュールのレイアウト用データベースに落とし込まれた配線情報に関連付けられたモジュール名、インスタンス名等の情報を一時的に記憶しながら、上位階層の配線情報の落とし込みの制御を行なうことが望ましい。
【0058】
落とし込みの対象となる配線、コンタクト、及び配線禁止領域等に対しては、上位階層での固有化されたネット名を用いる。下位モジュールのレイアウト用データベースに落とし込まれた上位階層の配線情報を、単に下位モジュールのレイアウト時の配線禁止領域として扱う場合、上位階層における配線の優先順位、例えば、電源、クロックを優先的に配線するといった情報までは含まないことになる。配線の優先度によっては、レイアウト検証でのエラー発生時等において、下位モジュール内の配線で対処するよりも、上位階層の配線で対処したい場合もあり得る。そのような場合、上位階層から落とし込まれた配線情報に上位階層での固有化されたネット名を付してあれば、レイアウト実施者による判断が容易となる。
【0059】
落とし込む配線やコンタクトの情報にはさらに、下位モジュールのレイアウト用の一般のデータと区別可能な属性を設定する。複数個所に配置された各下位モジュール近傍の上位階層の配線情報を1つの下位モジュールのレイアウト用データベースに落とし込む場合、互いに異なる場所での配線情報を重ね合わせて1つの下位モジュールのレイアウト用データベースに落とし込む。そのため、下位モジュールのレイアウト用データベースに落とし込まれた配線情報どうしで重なりが生じたり、擬似的なスペーシングエラーが生じる場合がある。従って、下位モジュールのレイアウト用データベースに落とし込まれた配線情報どうしをレイアウト検証の対象から除外する必要がある。この落とし込まれた配線情報どうしをレイアウト検証の対象から除外する際に、前述の、落とし込まれた配線情報に設定された属性情報を用いる。

ところで、下位モジュールの取り扱いに関して、レイアウト済みの下位モジュール内部の配線層の変更を禁止するハードマクロとして下位モジュールを使用するだけでなく、レイアウト済みの下位モジュールを、下位モジュール内部の配線変更等を許容するソフトマクロとして使用する場合もある。下位モジュールをソフトマクロとして使用する場合、下位モジュール内部で使用している配線層と同じ配線層を用いて上位階層の配線を引く場合がある。このような場合、下位モジュールの配線レイアウトをする際に、上位階層にある配線を認識していないと、下位モジュール内の配線と上位階層の配線とのショート等が発生し得る。
【0060】
また、下位モジュールの端子は、下位モジュールの外枠上に設けられる場合も多いが、図6中の丸印で示された下位モジュール33の端子PinCのように、下位モジュールの内側に設けられる場合もある。例えば、クロック端子については、クロックが供給される各末端のFF(Flip−Flop)でのクロック・スキューを合わせやすいように、下位モジュールの中心付近にクロック端子を設ける場合がある。また、その他の特定の信号端子についても下位モジュールの内側に設けられる場合がある。このような場合、下位モジュール近傍の上位階層の配線情報を配線禁止領域の情報として下位モジュールのレイアウト用データベースへ落とし込んで下位モジュールのレイアウト設計を行なう際、下位モジュールの端子に接続された上位配線の扱いで問題が生じる。具体的には、下位モジュールの端子に接続された上位階層の配線を配線禁止領域に設定して、下位モジュールのレイアウトを行なった場合、下位モジュール内部の配線をその端子に接続するための特殊な処理が必要となってくる。この問題点を図7を用いて説明する。
【0061】
図7(A)は、上位モジュール23が、下位モジュール35と下位モジュール36とを有し、下位モジュール35、36の上位階層にNetAが配線されている様子を示している。ここで、上位階層のNetAは、図7(B)に示す下位モジュール35の端子PinCに接続されているものとする。図7(B)は、上位階層のNetAを、点線で示した配線禁止領域として下位モジュールのレイアウト用データベースに落とし込んだ様子を示したものである。図7(B)中の点線で示された配線禁止領域は、下位モジュール35の端子PinCを介して、下位モジュール35内部の配線Net1に接続されている。図7(B)において、明示的に丸印で端子PinCを表しているが、実際には丸い配線やコンタクト等が存在する訳ではなく、最終的なレイアウトデータにおいては、下位階層のNet1と上位階層のNetAが単に接続されている状態となる。
【0062】
図7(B)において、点線で示された配線禁止領域と、実線で示されたNet1の配線とが同一の配線層にあるとすると、丸印で示した端子部分で、配線禁止領域と配線とが接触することになる。ここで、点線で示された配線禁止領域は、下位モジュール35内部の配線と上位階層の配線NetAと間に一定の間隔を確保するために使用することを目的としたものである。従って、下位モジュール35の端子PinCに配線禁止領域が接している場合には、通常のレイアウト処理では下位モジュール35内部の配線であるNet1を端子PinCに接続できないことになってしまう。
【0063】
もちろん、一般に、下位モジュールのレイアウト処理において、配線禁止領域と接する端子PinCに、Net1を強制的に接続することは可能である。そして、この配線禁止領域内の端子への配線接続をエラー扱いとせず、下位モジュール35のレイアウト終了後、下位モジュール35のレイアウトデータを上位モジュール23のレイアウトデータに組み込んだ後に、この配線禁止領域内の端子への配線接続の妥当性を判断するといった特殊処理をするようにしてもよい。しかし、このようにして強制的に配線禁止領域内の端子へ配線接続した場合、その配線接続が間違っていた場合や、その配線接続がレイアウト上のデザインルールを満たさない場合には、下位モジュールのレイアウト段階では良否判断できない。言い換えれば、上位モジュール23全体でのレイアウト検証時にはじめてデザインルールを満たしていないといった問題が判明する。そのため、このような特殊処理をした結果レイアウト上の問題が発生した場合、レイアウト修正から、修正結果の妥当性の確認までの処理時間が長くなり、作業効率が悪くなってしまう。
【0064】
従って、レイアウト対象の下位モジュール35の端子PinCに接続される上位階層のNetAのような配線は、単純な配線禁止領域として扱うのではなく、下位モジュール35のレイアウト検証時においては、下位モジュール35内部の配線であると認識してレイアウト検証できることが望ましい。そのため、本発明の実施例においては、下位モジュールのレイアウト時には、上位階層の配線は配線禁止領域として扱いつつも、下位モジュールのレイアウト検証時には、上位階層の配線を下位モジュール内にある配線として取り扱うことで、上記問題を解消する。

具体的な処理方法としては、下位モジュールに落とし込まれた上位階層の配線情報の内、下位モジュールの端子に接続される配線情報については、その上位階層におけるネット名に、接続される下位モジュールの端子名を付加する。上位階層でのネット名に下位モジュールの端子名を付加することで、下位モジュールのレイアウト設計時に、落とし込まれた上位階層の配線が下位モジュールの端子と接続される配線であるか否かの判定を行なうことができる。例えば、端子PinCに接続される上位階層の配線NetAについては、“ネット名+区切り文字+端子名”となるように、ネット名“NetA.PinC”を付して、下位モジュールのレイアウト用データベースへ落とし込む。この例では区切り文字を“.”としている。このようなネット名とすることで、下位モジュールのレイアウト用データベースを用いたレイアウト設計において、区切り文字で区切られたネット名の最後の部分が端子名を含むか否かを判定することにより、端子と接続される上位階層の配線であるか否かを判定することが可能となる。
【0065】
下位モジュールに落とし込まれる上位階層の配線の内、下位モジュールの端子に接続されない上位階層の配線については、例えば、上位階層におけるネット名をそのまま付して、下位モジュールのレイアウト用データベースに落とし込むようにすればよい。

前述の通り、下位モジュールのレイアウト用データベースに落とし込まれた上位階層の配線情報は、上位階層の配線を考慮したレイアウトを行なうためのものである。従って、下位モジュールのレイアウト設計時には、落とし込まれた上位階層の配線情報は、配線禁止情報として取り扱われる。そして、レイアウト検証時には、下位モジュールのレイアウト用データベースに落とし込まれた上位階層の配線とレイアウト対象の下位モジュール内部の配線との間で、所定のレイアウト設計ルールを満たすか否かについての検証を行なう。すなわち、下位モジュールのレイアウト用データベースに落とし込まれた上位階層の配線とレイアウト対象の下位モジュール内部の配線との間で、デザインルール等を満たしているか、ショートしている箇所がないか、あるいはクロストークノイズの問題は生じないか等についての検証がなされる。下位モジュールのレイアウト検証において、落とし込まれた上位階層の配線どうしのレイアウトチェックは行なわない。
【0066】
下位モジュールのレイアウト用データベースに落とし込まれる上位階層の配線情報の取り扱いについて具体的に説明すると、端子PinCに接続される上位階層の配線情報は、下位モジュールのレイアウト時には、動かせない配線禁止領域として扱う。そして、レイアウト検証時には、PinCを介して下位モジュール内部のNet1に接続された配線であると上位階層の配線情報を認識させてレイアウト検証を行なう。レイアウト検証を行なう際、特にショートチェックにおいては、前述のように、落とし込まれた上位階層の配線のネット名に、下位モジュールの端子名を付加したネット名を利用して、当該端子との接触が許される配線か否かを判定して、端子上のショート検出を行なう。
【0067】
下位モジュールのレイアウト用データベースに落とし込まれた上位階層の配線情報の内、下位モジュールの端子に接続されない上位階層の配線については、下位モジュールのレイアウト時には単なる配線禁止領域として扱い、レイアウト検証時には、下位モジュール内に存在する配線であると認識させてレイアウト検証を行なう。

このように下位モジュールの端子に接続される上位階層の配線情報を処理することにより、従来、下位モジュールのレイアウト検証時に検出できなかった、端子上での上位配線とのショート検出等が可能となる。また、下位モジュールのレイアウト検証の段階で、上位階層の配線をも含めた形でレイアウト検証することが可能となる。同一の下位モジュールが複数個所で使用されている場合には、複数個所における下位モジュール近傍の上位階層の配線状況を考慮して、下位モジュールのレイアウト設計及びレイアウト検証がなされる。さらに、前述の通り、レイアウト対象の下位モジュールに隣接する下位モジュール内部の配線も考慮してレイアウトを行なうことができるので、従来、上位階層でのレイアウト検証でしか発見できなかった下位モジュール内の配線どうしの問題も事前に発見し、対処することができる。
【0068】
従って、下位モジュールが使用される複数個所における、上位階層の配線や隣接モジュール内の配線との間のクロストークノイズ等の影響についても、下位モジュールのレイアウト設計時における1回のチェックで検証でき、事前にエラー等の対処を行なうことが可能となる。そして、下位モジュールと上位モジュールを含めた総合的なレイアウト検証でのエラーの発見と対処を事前に行なうことができるので、全体的なレイアウト処理時間の短縮を図ることが可能となる。

実施例に係るレイアウト設計装置の構成、及び、レイアウト処理の詳細について、以下、図8〜16を用いて説明する。
【0069】
図8は、実施例に係るレイアウト設計装置の構成を示した図である。実施例に係るレイアウト処理装置は、ライブラリ読み込み部50、デザインルール読み込み部51、ネットリスト読み込み部52、データベース53、下位階層境界認識部54、上位階層境界認識部55、ネット固有化部56、座標変換部57、下位データ保存部58、及び、制御部59を有する。
【0070】
図8のライブラリ読み込み部50は、図1に示された記憶装置16等に格納されたライブラリ情報71から、レイアウト設計対象回路を構成するセルのライブラリを読み込み、各セルについての端子情報、配線情報、コンタクト情報、配線禁止領域の情報、駆動能力等の情報を読み込む。ここで、セルとは、特定のトランジスタにより構成され、ANDやOR等の論理ゲートやFF等の順序回路を成す機能ブロックを言うものとする。ライブラリ読み込み部50は、レイアウト対象の回路が、セル以外にRAM(Random Access Memory)等の所定の機能を提供するハードマクロを有する場合には、それらハードマクロのライブラリ情報も合わせて読み込む。
【0071】
図8のデザインルール読み込み部51は、図1に示された記憶装置16等に格納されたライブラリ情報71から、配線パターンをレイアウトする上での規則であるデザインルールの読み込み等の処理を行なう。ここで、デザインルールの例としては、製造プロセスや配線幅に応じた最小配線間隔等を規定するスペーシングルールや、平行配線長ルール等が含まれる。
【0072】
図8のネットリスト読み込み部52は、図1に示された記憶装置16等に格納された回路情報70から、回路情報を所定の規則に従って表現したネットリストを読み込む。データベース53は、レイアウト設計で必要となる図1図示の回路情報70、ライブラリ情報71、及び、レイアウト設計において生成される各種レイアウトデータを有するデータベースである。図8のデータベース53に含まれるデータは、図1に示されたメモリ12、記憶装置16、ネットワーク上の記憶装置17等に格納される。
【0073】
図8の下位階層境界認識部54は、下位モジュール内のモジュール境界近傍に存在する配線を検出して認識する。上位階層境界認識部55は、下位モジュールのモジュール境界近傍に存在する上位階層の配線を検出して認識する。ネット固有化部56は、下位階層境界認識部54や上位階層境界認識部55で検出された配線に対して、固有化されたネット名の情報を生成する。
【0074】
図8の座標変換部57は、下位階層にある配線情報等を上位階層の情報と合わせて処理する場合、あるいは、上位階層にある配線情報等を下位階層の情報と合わせて処理する場合に、各配線情報等の座標系を合わせる処理を行なう。下位データ保存部58は、下位階層境界認識部54で検出され、ネット固有化部56で上位階層の座標系に変換された下位モジュールの境界近傍の下位モジュール内の配線情報等を、レイアウト処理における中間データとしてデータベース53に保存する。制御部59は、レイアウト設計装置を構成する各部(50〜58)の動作を制御して、半導体集積回路のレイアウト処理を実行する。

図9は、実施例に係るレイアウト処理の中で、下位モジュールの配線禁止領域の設定を行なう処理以降のレイアウト処理(図2におけるS104〜S106)のフローの概略図を示した図である。
【0075】
まず、S120のモジュール読み込み処理により、レイアウト対象となる上位モジュールのレイアウト用データベースを記憶装置16等に格納されたデータベース53から読み込み、上位モジュールの配線情報、コンタクト情報、セルやモジュールの配置情報等の読み込みを行なう。また、合わせて、S120のモジュール読み込み処理では、上位モジュールに含まれる各下位モジュールに含まれるセルの配置情報等の、レイアウト設計に必要な情報の読み込みも行なう。
【0076】
次に、上位モジュール及び各下位モジュールのネットリストの読み込み(S121)、セルライブラリの読み込み(S122)、及び、デザインルールの読み込み(S123)を行なう。S121〜S123の各処理は、それぞれ図8におけるライブラリ読み込み部50、デザインルール読み込み部51、及びネットリスト読み込み部52により行なわれる。
【0077】
図9のS120〜S123でレイアウト設計に必要な情報を読み込んだ後、下位モジュール内の境界近傍の配線情報の抽出を行う(S124)。そして、S124で抽出した下位モジュール内の境界近傍の配線情報と、上位階層の配線情報とを合わせて、下位モジュールのレイアウト設計用の制約情報として、下位モジュールのレイアウト用データベースへの落とし込み処理を行なう(S125)。その際、同一下位モジュールが複数個所で使用されている場合には、各下位モジュールが配置された複数個所における上位階層の配線情報等をマージして、下位モジュールのレイアウト設計用の配線禁止領域等の制約情報が生成される。S124及びS125の各処理ブロックの詳細については、図10及び図11を用いて後述する。
【0078】
下位モジュールへのレイアウト制約情報の落とし込み(S125)がなされた後は、S126とS128で囲まれたループ1の処理ループにより、全ての下位モジュールについて、下位モジュールのレイアウト詳細設計(S127)が行なわれる。下位モジュールのレイアウト詳細設計の処理ブロックS127の詳細については、図12を用いて後述する。
【0079】
全ての下位モジュールのレイアウト詳細設計が完了すると、各下位モジュール内のモジュール境界近傍の配線情報を再度抽出し(S129)、ここで抽出した配線情報を考慮して、上位モジュールのレイアウト設計(S130)を行なう。その後、上位モジュール検証(S131)として、上位モジュールのレイアウト検証やタイミング検証を行う。S131の上位モジュール検証において、何らかのエラーが発生した場合には、エラー内容に応じて、適切な修正処理を行ない、エラーが無くなるまで上位モジュール検証(S131)と修正を繰り返す。そして、各検証においてエラーが無くなれば、図9における一連の処理は終了する。

図10は、図9におけるS124の下位モジュール境界データ抽出処理の詳細を説明する図である。図10の各処理(S140〜148)では、下位モジュール内部のモジュール境界近傍の配線情報の抽出等を行なう。以下、各処理の内容について具体的に説明する。
【0080】
まず、S140とS148で囲まれた処理ループ(ループ1)では、全ての下位モジュールについて、S141〜S147の処理を順に繰り返す。
【0081】
本実施例では、下位モジュール内のモジュール境界近傍の配線情報を抽出する際に、下位モジュールの外形枠から所定の間隔だけ内側に抽出枠(以下、「下位抽出枠」という)を設定し、下位抽出枠とモジュール外形枠との間の領域内にある配線情報を抽出する。ここでいう配線情報としては、下位抽出枠とモジュール外形枠との間の領域内にある配線、コンタクト、セルの端子、セル内部の配線禁止領域等の物理情報と、配線等のネット名を言うものとする(以下、同じ)。
【0082】
下位モジュール内の境界近傍の配線を抽出する理由としては、着目する下位モジュール近傍の上位階層の配線、あるいは、着目する下位モジュールに隣接する他の下位モジュール内との配線との間で、デザインルール違反等を起こし得る配線を予め抽出するためである。換言すれば、レイアウト設計時にデザインルール違反等を起こし得る配線を予め抽出して、そのような配線を考慮しながら、レイアウト対象の下位モジュールあるいは上位モジュールのレイアウト設計を行なおうとするものである。
【0083】
S141では、下位モジュールの配線層毎に、下位モジュールの外形枠から所定の間隔だけ内側の下位抽出枠を設定する。ここで、下位モジュールの外形枠と下位抽出枠との間隔として、下位モジュール内の各配線層毎に存在する種々の配線幅を有する配線の配線幅に応じたスペーシング条件の内、最大のスペーシング条件である最大スペーシング値を用いることができる。この下位モジュール内部の下位抽出枠を求める際の最大スペーシング値を、便宜上、下位階層最大スペーシングと呼ぶこととする。この最大スペーシング値の算出は、図10におけるS141で行なってもよいし、これよりも前の処理である図9におけるデザインルール読み込み(S123)等の段階で行なってもよい。
【0084】
S141での下位抽出枠の設定について、図13を用いて説明する。図13では、下位モジュール30の外形枠から下位階層最大スペーシングの間隔だけ内側に、下位抽出枠30−01が点線で描かれている。この下位抽出枠30−01と下位モジュール30の外形枠(下位モジュール30を囲む実線で描かれた枠)とで挟まれた領域が、本実施例で着目する下位モジュール30内部の境界近傍の領域である。
【0085】
ここで、図13に示すように、下位モジュール内部に2つの配線(Net1、Net2)があるとすると、Net1は、下位抽出枠と下位モジュール30の外形枠で挟まれた領域に含まれている。従って、Net1は、下位モジュール30内の境界近傍の配線として抽出する対象となる配線である。Net2は、下位抽出枠30−01よりもさらに内側にあるので、下位モジュール30内の境界近傍の配線として抽出する対象とはならない。
【0086】
尚、図13では、下位階層最大スペーシングの値を用いて、下位抽出枠の設定を行なったが、所定の長さの平行配線によるクロストークの影響が及ぶ配線間距離等を用いて下位抽出枠の設定を行なうようにしてもよい。その場合、下位階層最大スペーシングの値に代えて、クロストークの影響が及ぶ配線間距離と下位階層最大スペーシングとを比較して大きい方の値の分だけ、下位モジュールの外形枠から内側に下位抽出枠を設定するといったようにすることができる。

図10のS141で下位抽出枠の設定処理が完了すると、下位モジュール内の全ての配線層について、下位抽出枠と下位モジュールの外形枠で挟まれた領域に含まれる配線情報の抽出を行なう。具体的には、図10のS142とS147とで挟まれた処理ループ(ループ2)において、下位モジュールの配線層毎に、下位モジュール内の全ての配線情報について、下位抽出枠と下位モジュールの外形枠で挟まれた領域に含まれるか否かを判定し、この領域に含まれる配線情報の抽出を行なう。
【0087】
図10のS143の条件判定ブロックでは、下位モジュール内の各配線データについて、下位抽出枠と下位モジュールの外形枠で挟まれた領域に含まれるか否かを判定する。配線データがこの領域に含まれる場合には(S143 Yes)これを抽出された配線情報であるとしてS144に進む。一方、配線データがこの領域に含まれない場合には(S143 No)S147、S142へと進んで、次の配線データについて条件判定する(S143)。この処理は、図8における下位階層境界認識部54により行なわれる。
【0088】
図10のS143で抽出された配線情報は、一般に下位モジュール内部の座標系で表されるので、後の処理で上位階層の配線データと一緒に処理できるようにするために、上位階層の座標系への座標変換を行なう(S144)。
【0089】
また、図14(A)で示されるように異なる複数の下位モジュール内で同一ネット名が使用されていたり(図14(A)31、32)、図14(B)で示されるように同じ下位モジュールが複数箇所で使用されている場合がある(図14(B)31、32)。このように、下位モジュールが複数個所で使用されている場合や他のモジュールで同一ネット名を使用している場合には、抽出した配線情報を一意に特定できるように、抽出した配線情報に係るネット名を固有化する(S145)。この固有化の方法としては、例えば、下位モジュール内のネット名に上位階層における当該下位モジュールが有するインスタンス名を付加することにより、抽出した配線情報を固有化できる。このようなネット名の固有化処理は、図8におけるネット固有化部56によって行なわれる。
【0090】
抽出された配線情報に対して上位座標系への変換処理(S144)及びネット名の固有化処理(S145)がなされた後、この抽出した下位データに関する情報を後の処理で使用できるようにするために、抽出した下位データを、一旦、図8におけるデータベース53に保存する。下位データを保存する処理は、図8における下位データ保存部58により行なわれる。

全ての下位モジュールについて、その下位モジュール内のモジュール境界近傍の配線情報の抽出処理(図10のS140〜S148)が終わると、下位モジュールの種類毎に、その下位モジュールの周辺あるいは下位モジュール上の上位階層の配線情報を抽出する。同じ種類の下位モジュールが複数個所で使用されている場合には、全ての箇所における、下位モジュール近傍の上位階層の配線情報を抽出する。その際、図10のS146で保存された下位モジュール内の抽出配線情報についても、上位階層に存在する配線情報であるものとして取り扱う。そのようにすることで、着目する下位モジュールに他の下位モジュールが隣接している場合等においても、隣接する下位モジュール内部のモジュール境界近傍の配線情報の抽出が可能となる。
【0091】
そして、抽出した上位階層の配線情報を、下位モジュールのレイアウト制約情報として下位モジュールのレイアウト用データベースに落とし込む処理を行なう。このように着目する下位モジュールの全ての配置箇所における周辺の配線情報を下位モジュールのレイアウト用データベースに落とし込むことにより、複数個所における下位モジュールの周辺の配線状況を考慮して、下位モジュールのレイアウトを行なうことが可能となる。この下位モジュールへのデータの落とし込み処理について、図11を用いて説明する。尚、図11の説明においては、図10のS146で保存された下位モジュール内の抽出された配線情報は上位階層の配線情報に含まれているものとして説明する。

図11は、下位モジュールへの上位階層の配線データの落とし込みを行なう処理の内容を示した図である。図11の処理では、まず、S150とS162の処理ループ(ループ1)で、上位階層に配置されている下位モジュールの種類毎に、順次、下位モジュールを選択する。そして、S151とS161の処理ループ(ループ2)で、S150で選択された下位モジュールが用いられた全ての箇所のインスタンス毎に、順次、特定のインスタンスに着目する。S151で着目したインスタンス毎に、その下位モジュールの外側の周辺領域を画定するための所定の抽出枠の算出を行なう(S152)。
【0092】
S152における上位抽出枠の算出では、着目する下位モジュールの外形枠から所定の間隔だけ外側に抽出枠(以下「上位抽出枠」)を設定する。この下位モジュールの外形枠と上位抽出枠との間隔としては、上位階層の各配線層毎に存在する種々の配線幅を有する配線の配線幅に応じたスペーシング条件の内、最大のスペーシング条件である最大スペーシング値を用いることができる。上位抽出枠を求める際の上位階層での最大スペーシング値を、便宜上、上位階層最大スペーシングと呼ぶこととする。この上位階層最大スペーシングに係る最大スペーシング値の算出についても、図11のS152で行なってもよいし、これよりも前の処理である図9におけるデザインルール読み込み(S123)等の段階で行なってもよい。
【0093】
図11のS152での上位抽出枠の設定について、図15を用いて説明する。図15(A)では、下位モジュール30の外形枠から上位階層最大スペーシングの間隔だけ外側に、上位抽出枠30−02が点線で描かれている。この上位抽出枠30−02で囲まれた、下位モジュール30を含む領域の中に含まれる上位階層の配線情報が、下位モジュール30近傍の上位階層の配線情報として抽出する対象となる配線である。
【0094】
ここで、図15(A)に示すように、上位モジュール25には、4つの配線(NetA、NetB、NetC、NetD)があるとすると、NetBとNetCが、上位抽出枠30−02で囲まれた領域に含まれる、あるいは通過する配線であることが分かる。従って、図15(A)では、NetBとNetCが、下位モジュール30近傍の上位階層の配線情報として抽出する対象となる配線である。図15(A)において、NetA及びNetDは、上位抽出枠30−02の外側しか通過しないので、下位モジュール30近傍の上位階層の配線情報として抽出する対象とはならない。
【0095】
尚、下位モジュール30近傍の上位階層の配線情報の抽出を行なう際、抽出した上位階層の配線情報が、着目している下位モジュール内部から抽出された情報であり、かつ着目しているインスタンスの下位モジュールに関する配線情報である場合には、抽出対象から除外する。
【0096】
次に図11に戻って、各下位モジュール近傍の上位階層の配線情報の抽出を行なう処理、及び、それ以降の処理について説明する。図11のS152における上位抽出枠の算出処理が終わると、S153とS160の処理ループ(ループ3)で、上位階層の全配線情報のデータ、具体的には、上位階層の配線情報及び図10のS146で保存された下位モジュール内の抽出された配線情報について、S152で設定した上位抽出枠内に含まれるか否かを判定する(S154)。S153で選択された上位階層のデータが上位抽出枠内に含まれない場合には(S154 No)、S160を経由して、再度S153に戻り、次の上位階層のデータについて上位抽出枠内に含まれるか否かを判定する(S154)。S153で選択された上位階層のデータが上位抽出枠内に含まれる場合には(S154 Yes)、S155の処理に進む。図11に関するこれらの処理は、図8における上位階層境界認識部55により行なわれる。
【0097】
S155では、S153で選択された上位階層のデータが、S151で着目しているインスタンスの下位モジュール内部から抽出されたデータであるか否かを判定する。すなわち、S155では、S153で選択された上位階層のデータが、S151で着目しているインスタンスの下位モジュールから抽出されたデータであるか否かを判定する。S153で選択された上位階層のデータが、同じインスタンスのモジュールから抽出されたデータである場合には(S155 Yes)、何もしないで、S160を経由して、再度S153に戻り、次の上位階層のデータについて処理する。S153で選択された上位階層のデータが、同じインスタンスのモジュールから抽出されたデータと異なる場合には(S155 No)、S156の処理に進む。
【0098】
ところで、S153で選択された上位階層のデータは、上位階層での座標系における座標の情報を有しており、そのままでは、下位モジュールで使用することができない。そのため、S156では、S153で選択された上位階層のデータに対して、S150で選択された下位モジュールについての下位階層の座標系に変換する処理を行なう。すなわち、S153で選択された上位階層のデータの座標情報を、上位階層での配置座標及び回転コードを参照して、S150で選択された下位モジュールの座標系に変換する。このようなS156に関する処理は、図8における座標変換部57により行なわれる。
【0099】
次に、図11のS157において、S156で座標変換された上位階層のデータが、S151で着目するインスタンスに係る下位モジュールの端子に接続される配線であるか否かを判定する。ここで、S157での判定対象となっている上位階層のデータが、下位モジュールの端子に接続される配線である場合には(S157 Yes)、S158において、その配線のネット名に下位モジュールの端子名を付加する処理を行なう。これは、後に実施される下位モジュールのレイアウト検証等において、端子に接続された配線であると認識させるために行なうものである。
【0100】
このS158での処理内容について、図15を用いて説明する。図15(A)の例では、前述の通り、NetBとNetCとが下位モジュールへの落とし込みの対象となる配線となる。図15(B)は、図15(A)におけるNetB及びNetCの配線情報を下位モジュールに落とし込んだ様子を示した図である。図15(B)において、下位モジュールに落とし込まれた上位階層の配線(NetB、NetC)は破線で示されている。
【0101】
ここで、図15(A)、図15(B)において、NetCは下位モジュールの端子PinCに接続されている。このような場合、図15(B)に示すように、下位モジュールに落とし込まれたNetCの配線には、NetCの配線名に下位モジュールの端子名PinCを付加して、“NetC.PinC”という配線名を付ける(図11のS158)。このような配線名にすることにより、下位モジュールのレイアウト設計において、ネット名の最後の部分が端子名を含むか否かを判定することにより、上位階層から落とし込まれた配線情報が端子と接続される上位階層の配線であるか否かを判定することが可能となる。
【0102】
尚、本実施例においては、下位モジュールの端子に接続される上位階層の配線情報を下位モジュールに落とし込む際に、ネット名に端子名を付加する実施例としているが、他の手段により、下位モジュールの端子に接続される上位階層の配線であるか否かを判別してもよい。例えば、下位モジュールの端子に接続される上位階層の配線のネット名の一覧データを別途作成し、後続の下位モジュールのレイアウト処理において、その一覧データを参照して、ネット名の読み替えを行なうといった方法を採ることも可能である。

図11のS158において、下位モジュールの端子に接続される上位階層の配線情報については(S157 Yes)、その配線のネット名に下位モジュールの端子名を付加して、下位モジュールのレイアウト用データベースに情報を追加する(S159)。下位モジュールの端子に接続されていない上位階層の配線情報については(S157 No)、S158を経由せずに、そのままS159にて、下位モジュールのレイアウト用データベースに情報を追加する。
【0103】
図11のS159では、S154〜S158で抽出された、下位モジュール近傍の上位階層の配線情報を下位モジュールのレイアウト用データベースに落とし込む、すなわち、追加する処理を行なう。その際、単なる配線禁止情報として上位階層の配線情報を落とし込むのではなく、上位階層から落とし込まれた配線情報であることが分かるように、下位モジュール内部の配線情報と区別可能な属性情報を下位モジュール近傍の上位階層の配線情報に設定する。
【0104】
上位階層の配線情報であることを示す属性情報の例を、図15(C)に示す。図15(C)は、図15(A)、(B)に示す下位モジュールのレイアウト用データベースに記憶する配線情報の例を示したものである。図15(C)に示すレイアウト用データベースに記憶した配線情報のデータは、通し番号(No.)、ネット名、インスタンス名、属性情報、物理情報等の情報を有する。図15(C)において、ネット名が“NetB”、“NetC.PinC”の配線情報は、図15(A)、(B)に示した配線情報と同じものであり、ネット名が“Net1”となっている配線情報は、下位モジュール30内の配線情報であるものとする。これら以外の配線情報については、省略する。また、図15(C)において、各配線情報に対する配線幅や位置情報といった物理情報もここでは省略する。
【0105】
図15(C)に示すように、ネット名が“NetB”や“NetC.PinC”の上位階層の配線情報の属性情報の欄には“UL”といった固有の情報を付加する等して、属性情報を設定することができる。この上位階層の配線情報であることを示す属性情報は、他の形式によって設定、保存するようにしてもよい。
【0106】
下位モジュールのレイアウト時には、配線等に前記属性情報が設定されているか否かを確認し、上位階層の配線情報であることを示す属性情報が設定されている場合には、その配線情報を配線禁止領域として取り扱う。そして、下位モジュールのレイアウト検証時においては、前記属性情報が付加された配線どうしの検証は行なわないようにする。
【0107】
例えば、図6のように、下位モジュールが複数個所で使用されている場合には、図11のS151のループ2において、同じ下位モジュールの全てのインスタンスについて、順次、その下位モジュール近傍の上位階層の配線情報の抽出を行なっていく。そして、S153〜S159の各処理を経て、全ての箇所における下位モジュール近傍の上位階層の配線情報を1つの下位モジュールのレイアウト用データベースに落とし込んでいく。このように複数個所における下位モジュール近傍の上位階層の配線情報を下位モジュールのレイアウト用データベースに落とし込むことにより、複数個所での下位モジュール近傍の配線状況を考慮した下位モジュールのレイアウトを行なうことが可能となる。

全ての下位モジュールに対して、図11に示された下位モジュールへのデータ落とし込み処理、すなわち、図9におけるS125の処理が行なわれた後は、S125で落とし込まれた上位階層の配線情報を考慮して、下位モジュールのレイアウト詳細設計を行なう。図9のフローにおいては、S126とS128で囲まれたループ1の処理により、全ての下位モジュールについて、S127による下位モジュールのレイアウト詳細設計が行なわれる。
【0108】
S127の下位モジュールのレイアウト処理では、下位モジュール近傍の上位階層の配線情報も考慮して、下位モジュールの配置、配線等の実装設計を行ない、合わせて、下位モジュールのレイアウト検証やタイミング検証も行なう。このS127における下位モジュールのレイアウト詳細設計の処理は、上位のレイアウト設計とは独立に行なうことが可能であり、また、下位モジュールどうしの関係においても独立に並列処理で行なうことも可能である。S127の下位モジュールのレイアウト処理の内容を図12を用いて説明する。

図12は、実施例に係る下位モジュール処理の内容を示した図である。下位モジュール処理のフローにおいては、まずレイアウト対象となる下位モジュールのレイアウト用データベース及びネットリストの読み込みを行なう(S170、S171)。そして、下位モジュールのレイアウト処理で必要となるライブラリやデザインルールの読み込みを行なう(S172、S173)。尚、下位モジュールのレイアウト処理で必要となるこれらの各データが、これ以前の処理、例えば、図9におけるS120〜S123等で読み込まれている場合には、図12におけるS170〜S173の処理は省略してもよい。
【0109】
図12のS174の下位モジュールの実装設計では、図11の各処理により下位モジュールのレイアウト用データベースに落とし込まれた、下位モジュール近傍の上位階層の配線情報を考慮して、下位モジュールの配置、配線等の実装設計を行なう。具体的には、下位モジュール近傍の上位階層の配線情報を動かせない配線禁止領域として取り扱って、下位モジュールの配置、配線等の実装設計を行なう。その際、下位モジュールの端子に接続される下位モジュール内部の配線については、上位階層の配線情報に基づいて設定された配線禁止領域がその端子と重なっている場合であっても、その端子への配線を引いておくようにする。この端子部分における下位モジュール内部の配線と、配線禁止領域との重なりにより発生し得るレイアウト検証上のエラーは、後に述べる方法により、エラーでないものとして取り扱うことが可能となるためである。
【0110】
S174において、下位モジュールの配置、配線等の実装設計が終わると、S175の下位モジュール検証において、レイアウト検証やタイミング検証を行なう。尚、下位モジュールの配置、配線等が、より早い段階、例えば、図2のS102等の段階で事前に行なわれているような場合には、図12のS174において実装設計を省略して、レイアウト検証やタイミング検討のみを実施することも可能である。
【0111】
S175におけるレイアウト検証では、下位モジュール内の配線等がスペーシング条件等の所定のデザインルールを満足しているか、あるいは、クロストークノイズ等の影響を受けないかといった評価を行なう。
【0112】
上位階層から落とし込まれた配線情報についても、下位モジュール内の配線等との間でデザインルール等のチェックやクロストークノイズ評価等を行なう。その際、上位階層から落とし込まれた配線情報も、下位モジュール内に存在する配線として取り扱って、あるいは、配線禁止領域として取り扱ってレイアウト評価を行なう。
【0113】
下位モジュールの端子に接続される上位階層の配線情報については、その端子を介して、その端子につながった下位モジュール内部の配線と接続された配線であるとして取り扱い、レイアウト検証を行なう。この様子を図16に示す。図16において、Net1は下位モジュール30内部の配線であり、下位モジュール30の端子PinCを介して、上位階層から落とし込まれた配線情報である“NetC.PinC”に接続されている。
【0114】
下位モジュール30の配置、配線等のレイアウト処理を行なう際には、“NetC.PinC”は単に配線禁止領域として扱うが、レイアウト検証においては、“NetC.PinC”は、端子PinCを介して内部のNet1に接続された一連の配線であるものとして取り扱う。すなわち、レイアウト検証時においては、下位モジュール30内部のNet1を、“NetC.PinC”と接続した新たな配線であるとして取り扱い、Net1とは別の固有のネット名、例えば、“Net1.NetC.PinC”や“NetX”等のネット名を付してレイアウト検証を行なう。
【0115】
このようにすることで、端子部分の配線禁止領域(NetC.PinC)と内部配線Net1との接点(端子PinCの部分)で発生するエラーを擬似エラーとして取り扱い、上位階層のレイアウト検証で再度検証するといった特殊な処理が不要となる。また、下位モジュールのレイアウト検証時に、上位階層の配線も考慮した形での詳細なクロストークノイズの影響の確認等を行なうことが可能となる。
【0116】
ところで、本実施例では、下位モジュールが複数個所で使用される場合には、複数個所における上位階層の配線情報が1つの下位モジュールのレイアウト用データベースに落とし込まれる。別々の箇所における上位階層の配線どうしの間では、当然レイアウトチェックする必要はないため、下位モジュールのレイアウト検証においては、データベースに含まれる配線の属性情報を確認し、上位階層の配線どうしの検証は行なわないようにする。上位階層の配線どうしのレイアウト検証については、上位階層でのレイアウト検証時に行なえばよい。
【0117】
S175におけるタイミング検証では、配置、配線を行なった下位モジュールについて、配線容量や配線抵抗等を抽出して、配線やセルの遅延値を算出し、算出した遅延値を用いて、回路が所定の周波数で正常に動作し得るかについてのタイミング検証を行なう。その際、下位モジュールのレイアウト用データベースに含まれる上位階層の配線データについては、容量抽出等の対象から除外してもよいし、逆に、上位階層の配線等も考慮して容量抽出等を行なって配線遅延等を算出してもよい。下位モジュールのタイミング検証において、上位階層の配線情報も考慮した遅延計算を行なえば、より高い精度で、下位モジュールのタイミング検証を行なうことが可能となる。

図9におけるS126〜S128での下位モジュールのレイアウト詳細設計が完了すると、今度は、各下位モジュールを含む上位モジュールのレイアウトを行なう。その際、レイアウト設計が完了した各下位モジュール内部の境界近傍の配線状況を考慮して上位モジュールのレイアウト設計を行なうことが望ましい。従って、図9におけるS129では、レイアウト設計完了後の各下位モジュール内部のモジュール境界の配線情報の抽出を行なう。この抽出処理の詳細については、図10で説明した処理内容と同様の処理となるので、ここでは説明を省略する。
【0118】
図9のS129で抽出された各下位モジュール内部のモジュール境界近傍の配線情報は、上位モジュールのレイアウト設計時に配線禁止情報として設定して、上位モジュールのレイアウト設計を行なう(S130)。その際、上位モジュールの配線処理で使用する配線層を用いている下位モジュール内の配線情報、及び、上位モジュールの配線にクロストーク等の影響を与える可能性のある下位モジュール内の配線情報についても抽出することが望ましい。そうすることにより、上位モジュールのレイアウト時において、上位モジュールに含まれる下位モジュールの境界付近の配線状況を考慮して上位モジュールのレイアウト設計を行なうことが可能となる。
【0119】
図9のS130の上位モジュールの実装設計において、例えば、上位モジュールの配線設計が、これよりも早い段階、例えば、図2におけるS103等の段階で完了しているような場合には、上位モジュールの実装設計を省略して、上位モジュールの検証(S131)に進むこともできる。
【0120】
図9のS131での上位モジュールの検証では、各下位モジュールの実装結果を使用して、デザインルールのチェックやクロストークノイズ評価等の検証を行なう。また、これらのレイアウト検証と合わせて、上位モジュールでのタイミング検証も行なう。

以上に述べたように、本発明では、階層レイアウト設計において、下位モジュールの境界付近の上位階層や隣接下位モジュールの配線状況を考慮してレイアウト設計を行なうことができる。そのため、下位モジュールの周囲にリング状の配線禁止領域を設けるといった処理が不要となり、高密度な実装が可能となる。また、下位モジュールのレイアウト設計時に上位階層や隣接するモジュール内部の配線も考慮してレイアウトの実装設計をすることが可能となる。その際、下位モジュールが複数個所で使用されている場合には、複数個所における下位モジュール近傍の上位階層や隣接モジュール内の配線状況を考慮した下位モジュールのレイアウト設計が可能となる。
【0121】
さらに、本発明によれば、下位モジュールのレイアウト検証においても、上位階層の配線状況や隣接モジュール内の配線状況を考慮してレイアウト検証を行なうことが可能となる。その際、複数個所で使用される下位モジュール近傍の上位階層の配線状況を考慮したレイアウト検証を行なうことが可能となる。また、下位モジュールの端子に接続される上位階層の配線について、レイアウト検証時に下位モジュール内の配線に端子を介して接続された配線であると取り扱ってレイアウト検証を行なうことにより、端子に接続された上位階層の配線を考慮した好適なレイアウト検証が可能となる。従って、従来、最終的な上位モジュールでの全体検証で見つかっていたようなレイアウト設計上の問題について、早い段階で発見、対処することが可能となり、その結果として、レイアウト設計期間の短縮を図ることが可能となる。
【産業上の利用可能性】
【0122】
本発明は、複数階層を有する半導体集積回路のレイアウト設計に利用することができる。
【符号の説明】
【0123】
10 コンピュータ
11 CPU
12 メモリ
13 入力装置インターフェース
14 出力装置インターフェース
15 ネットワークインターフェース
16 記憶装置
17 ネットワーク上の記憶装置
18 バス
20〜27 上位モジュール
30〜41 下位モジュール
50 ライブラリ読み込み部
51 デザインルール読み込み部
52 ネットリスト読み込み部
53 データベース
54 下位階層境界認識部
55 上位階層境界認識部
56 ネット固有化部
57 座標変換部
58 下位データ保存部
59 制御部
70〜72 回路情報、ライブラリ、プログラム等の各情報



【特許請求の範囲】
【請求項1】
複数階層を有する半導体集積回路のレイアウト設計を行なうレイアウト設計装置であって、
上位モジュール内の複数個所で使用される下位モジュールについて、前記下位モジュールが配置された各配置箇所近傍の上位階層の配線情報を抽出し、
前記抽出した複数個所における上位階層の配線情報に基づいて、前記下位モジュールのレイアウトを行なうためのデータであるレイアウト用データベースに、配線処理を禁止する特定の領域である配線禁止領域を設定し、前記下位モジュールのレイアウト設計を行なう
ことを特徴とするレイアウト設計装置。
【請求項2】
前記レイアウト設計装置は、前記上位モジュールに含まれる全ての下位モジュール内部の各配線層毎の下位モジュール境界近傍の下位モジュールの配線情報を抽出し、
レイアウト対象の下位モジュールが配置される各配置箇所近傍の上位階層の配線情報として、抽出した各下位モジュール内の境界近傍の配線情報と、上位モジュールの配線情報とを含む配線情報を上位階層の配線情報とを抽出し、抽出した上位階層の配線情報を前記下位モジュールのレイアウト設計を行なう際の配線禁止領域として設定する
ことを特徴とする請求項1に記載のレイアウト設計装置。
【請求項3】
前記下位モジュール内部の各配線層毎のモジュール境界近傍の配線情報を抽出する際に、
前記下位モジュールのモジュール境界枠よりも内側の領域であって、下位モジュールの配線層に存在する配線どうしの間隔として必要な配線間距離の中で最大の配線間距離である下位階層最大スペーシングの分だけ下位モジュールの境界枠から内側の領域に含まれる下位モジュールの配線情報を前記下位モジュール内部のモジュール境界近傍の配線情報として抽出する
ことを特徴とする請求項2に記載のレイアウト設計装置。
【請求項4】
前記下位モジュールが配置された各配置箇所近傍の上位階層の配線情報を抽出する際に、
前記下位モジュールの上位階層の各配線層に存在する配線どうしの間隔として必要な配線間距離の中で最大の配線間距離である上位階層最大スペーシングの分だけ、下位モジュールの境界枠から外側の位置を囲む枠から内側の領域に含まれる上位階層の配線情報を、前記下位モジュール近傍の上位階層の配線情報として抽出する
ことを特徴とする請求項1乃至3のいずれかに記載のレイアウト設計装置。
【請求項5】
レイアウト対象の下位モジュールの端子に接続される上位階層の配線情報が示す配線を、前記端子に接続される下位モジュール内部の配線情報と接続された配線として取り扱って、前記下位モジュールのレイアウト検証を行なう
ことを特徴とする請求項1乃至4のいずれかに記載のレイアウト設計装置。
【請求項6】
レイアウト対象の下位モジュールの端子に接続されない当該下位モジュール近傍の上位階層の配線情報を、前記下位モジュール内部の配線であると取り扱って、前記下位モジュールのレイアウト検証を行なう
ことを特徴とする請求項1乃至4のいずれかに記載のレイアウト設計装置。
【請求項7】
前記レイアウト対象の下位モジュールのレイアウト検証において、前記下位モジュール内の配線どうしが所定のレイアウト設計ルールを満たすか否かを検証する際に、合わせて、前記下位モジュール内部の配線であると取り扱われた上位階層の配線情報と前記下位モジュール内部の配線とが所定のレイアウト設計ルールを満たすか否かを検証する
ことを特徴とする請求項5又は6記載のレイアウト設計装置。
【請求項8】
前記レイアウト対象の下位モジュールのレイアウト検証において、前記下位モジュール内部の配線であると取り扱われた上位階層の配線情報どうしではレイアウト検証を行なわないこと
ことを特徴とする請求項5乃至7のいずれかに記載のレイアウト設計装置。
【請求項9】
前記下位モジュールのレイアウト処理を行なった後に、レイアウト処理後の下位モジュール内部のモジュール境界近傍の配線情報を抽出し、抽出した配線情報を上位階層のレイアウト設計における配線禁止領域として設定して、上位階層のレイアウト設計を行なう
ことを特徴とする請求項1乃至8のいずれかに記載のレイアウト設計装置。
【請求項10】
複数階層を有する半導体集積回路のレイアウト設計を行なうレイアウト設計方法であって、
上位モジュール内の複数個所で使用される下位モジュールについて、前記下位モジュールが配置された各配置箇所近傍の上位階層の配線情報を抽出する上位配線情報抽出ステップと、
前記上位配線情報抽出ステップにより抽出した複数個所における上位階層の配線情報に基づいて、前記下位モジュールのレイアウトを行なうためのデータであるレイアウト用データベースに、配線処理を禁止する特定の領域である配線禁止領域を設定する配線禁止領域設定ステップと、
前記配線禁止領域設定ステップにより設定された配線禁止領域を用いて、前記下位モジュールのレイアウトを行なう下位モジュールレイアウト処理ステップと
をコンピュータに行なわせることを特徴とするレイアウト設計方法。
【請求項11】
前記下位モジュールレイアウト処理ステップにより前記下位モジュールのレイアウトを行なった後に、前記抽出した上位階層の配線情報を、レイアウト後の当該下位モジュール内部の配線であるとして取り扱って、当該下位モジュールのレイアウト結果が所定のレイアウト設計ルールを満たすか否かを検証するレイアウト検証を行なう
ことを特徴とする請求項10に記載のレイアウト設計方法。
【請求項12】
複数階層を有する半導体集積回路のレイアウト設計を行なうレイアウト設計プログラムであって、
上位モジュール内の複数個所で使用される下位モジュールについて、前記下位モジュールが配置された各配置箇所近傍の上位階層の配線情報を抽出する上位配線情報抽出ステップと、
前記上位配線情報抽出ステップにより抽出した複数個所における上位階層の配線情報に基づいて、前記下位モジュールのレイアウトを行なうためのデータであるレイアウト用データベースに、配線処理を禁止する特定の領域である配線禁止領域を設定する配線禁止領域設定ステップと、
前記配線禁止領域設定ステップにより設定された配線禁止領域を用いて、前記下位モジュールのレイアウトを行なう下位モジュールレイアウト処理ステップと
をコンピュータに行なわせることを特徴とするレイアウト設計プログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2011−203906(P2011−203906A)
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願番号】特願2010−69329(P2010−69329)
【出願日】平成22年3月25日(2010.3.25)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】