JPWO2004034463A1 - レイアウト方法及び装置並びにそのプログラム及び記録媒体 - Google Patents

レイアウト方法及び装置並びにそのプログラム及び記録媒体 Download PDF

Info

Publication number
JPWO2004034463A1
JPWO2004034463A1 JP2004542786A JP2004542786A JPWO2004034463A1 JP WO2004034463 A1 JPWO2004034463 A1 JP WO2004034463A1 JP 2004542786 A JP2004542786 A JP 2004542786A JP 2004542786 A JP2004542786 A JP 2004542786A JP WO2004034463 A1 JPWO2004034463 A1 JP WO2004034463A1
Authority
JP
Japan
Prior art keywords
cells
wiring
critical area
area value
layout
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.)
Granted
Application number
JP2004542786A
Other languages
English (en)
Other versions
JP4279782B2 (ja
Inventor
利行 澁谷
利行 澁谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2004034463A1 publication Critical patent/JPWO2004034463A1/ja
Application granted granted Critical
Publication of JP4279782B2 publication Critical patent/JP4279782B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

集積回路をレイアウトするレイアウト装置におけるレイアウト方法は、回路データに従って複数のセルを概略の位置に配置し、複数のセルの概略の位置への配置の結果に従って複数のセルを具体的な位置に配置する。複数のセルの具体的な位置への配置において、複数のセルを具体的な位置に配置し、隣接して配置された複数のセルの各々の間におけるクリティカルエリア値を求め、求めたクリティカルエリア値が小さくなるように複数のセルの具体的な位置を変更する。

Description

本発明は、レイアウト方法及び装置並びにそのプログラム及び記録媒体に関し、特に、レイアウト設計においてランダム故障を考慮することによりLSIの歩留を向上することができるレイアウト方法及び装置並びにそのプログラム及び記録媒体に関する。
LSI(半導体集積回路装置)の加工プロセスの微細化にともない、ランダム故障に起因するLSIの製造歩留りの低下が顕著な問題になっている。ランダム故障とは、製造プロセス内に入り込んだ「小さなごみ(デフェクト)」に起因して、チップ上の配線がショート(短絡)又はオープン(開放)を起こしてしまうことをいう。ランダム故障は、製造プロセスの不具合に起因するシステム故障と共に、LSIの製造歩留り低下の2大要因である。
ところで、従来のセル及び配線の配置(レイアウト設計)においては、配線率、タイミング、クロストークノイズなどといった要素(以下、コストという)を元に、レイアウト(又はその最適化)が行なわれてきた。ここで、配線率とはCADにより完了した配線の割合である。タイミングとは主として配線長によって支配される素子から素子への伝搬の遅延を考慮した信号の伝搬のタイミングである。クロストークノイズとは隣接する配線の間における容量結合による相互の信号レベルへの影響である。
このように、従来、レイアウト設計におけるコストとしてのランダム故障を考慮しつつLSIのレイアウト設計又はその最適化を行うことはなかった。この結果、例えば、同一の回路構成のLSIについての全く同じネットリストのレイアウトでも、当該レイアウトによりLSIを製造した場合における歩留り率が5%以上も異なる場合があった。
ランダム故障がレイアウト設計において考慮されない理由は、ランダム故障がデフェクトに起因するため、チップ上のどこでどのようにランダム故障が発生するのかを予想することができないためである。このように、レイアウト設計においてランダム故障が考慮されていないので、当該考慮をしようとしても、レイアウト設計にランダム故障を反映させる指標として何を用い、当該指標をどのようにレイアウトに反映させればよいのか、全く検討されていない。
本発明の目的は、レイアウト設計においてランダム故障を考慮することによりLSIの歩留を向上することができるレイアウト方法を提供することにある。
また、本発明の他の目的は、レイアウト設計においてランダム故障を考慮することによりLSIの歩留を向上することができるレイアウト装置を提供することにある。
また、本発明の他の目的は、レイアウト設計においてランダム故障を考慮することによりLSIの歩留を向上することができるレイアウトプログラムを提供することにある。
また、本発明の他の目的は、レイアウト設計においてランダム故障を考慮することによりLSIの歩留を向上することができるレイアウトプログラム記録媒体を提供することにある。
本発明のレイアウト方法は、集積回路をレイアウトするレイアウト装置におけるレイアウト方法であって、回路データに従って複数のセルを概略の位置に配置し、複数のセルの概略の位置への配置の結果に従って複数のセルを具体的な位置に配置する工程を含む。複数のセルの具体的な位置への配置において、更に、複数のセルを具体的な位置に配置し、隣接して配置された複数のセルの各々の間におけるクリティカルエリア値を求め、求めたクリティカルエリア値が小さくなるように複数のセルの具体的な位置を変更する。
本発明のレイアウト方法によれば、ランダム故障の発生と相関関係を有するパラメータとしてクリティカルエリア値を用い、これに基づいて回路データに表れるセルを具体的な位置に配置する。これにより、チップ上のどこでどのように発生するのかを予想することができないランダム故障を、LSIのレイアウト設計におけるセルの配置において考慮することができる。従って、配線率等のコストに加えて、コストとしてのランダム故障(即ち、クリティカルエリア値)を考慮しつつ、セルの配置について最適なレイアウト設計を行うことができる。この結果、LSIの歩留りを意図的に向上させることができ、半導体ビジネスに大きく寄与することができる。LSIの加工プロセスが微細化する程、製造歩留りがデフェクト即ちランダム故障に依存すると考えられるので、レイアウト設計によりランダム故障を低減することができる影響は大きい。
また、好ましくは、本発明のレイアウト方法は、更に、回路データと複数のセルの具体的な位置への配置の結果とに従って複数のセルの間の配線を概略の位置に配置し、配線の概略の位置への配置の結果に従って配線を具体的な位置に配置する工程を含む。配線の具体的な位置への配置において、更に、配線を具体的な位置に配置し、隣接して配置された配線の各々の間におけるクリティカルエリア値を演算により求め、求めたクリティカルエリア値が所定の値より大きい場合であって当該位置の近傍に配線の空き領域が存在する場合、当該隣接して配置された配線の間に当該空き領域を挿入する。
この構成のレイアウト方法により、クリティカルエリア値に基づいて回路データに表れる配線を具体的な位置に配置する。これにより、配線率等及びランダム故障(即ち、クリティカルエリア値)を、LSIのレイアウト設計における配線の配置において考慮し、配線の配置について最適なレイアウト設計を行うことができる。この結果、LSIの歩留りを意図的に向上させることができ、レイアウト設計によりランダム故障を低減することができる。
本発明のレイアウト装置は、集積回路をレイアウトするレイアウト装置であって、回路データに従って複数のセルを概略の位置に配置するグローバルプレースメント手段と、複数のセルの概略の位置への配置の結果に従って複数のセルを具体的な位置に配置するディテールプレースメント手段とを含む。ディテールプレースメント手段は、複数のセルを具体的な位置に配置し、隣接して配置された複数のセルの各々の間におけるクリティカルエリア値を求め、前記求めたクリティカルエリア値が小さくなるように前記複数のセルの具体的な位置を変更する。
本発明のレイアウト装置によれば、前述と同様に、クリティカルエリア値に基づいて回路データに表れるセルを具体的な位置に配置する。これにより、配線率等及びランダム故障(即ち、クリティカルエリア値)を考慮しつつ、セルの配置について最適なレイアウト設計を行うことができる。この結果、LSIの歩留りを意図的に向上させることができ、レイアウト設計によりランダム故障を低減することができる。
本発明のレイアウトプログラムは、集積回路をレイアウトするレイアウト方法を実現するレイアウトプログラムである。前記プログラムは、コンピュータに、回路データに従って複数のセルを概略の位置に配置させ、複数のセルの概略の位置への配置の結果に従って複数のセルを具体的な位置に配置させる。複数のセルの具体的な位置への配置において、更に、複数のセルを具体的な位置に配置させ、隣接して配置された複数のセルの各々の間におけるクリティカルエリア値を求めさせ、求めたクリティカルエリア値が小さくなるように複数のセルの具体的な位置を変更させる。
本発明のレイアウトプログラム記録媒体は、前述のようなレイアウトプログラムをコンピュータ読取可能な記録媒体に記録する。
本発明のレイアウトプログラム及びその記録媒体によれば、レイアウトプログラムは、フレキシブルディスク、CD−ROM、CDR/W、DVD等の種々のコンピュータ読み取り可能な記録媒体に格納することにより提供される。これにより、本発明のレイアウト方法及びレイアウト装置をコンピュータ上に実現することができる。
第1図はレイアウト装置構成図であり、本発明のレイアウト方法を実行するレイアウト装置の構成の概略を示す。
第2図は、クリティカルエリア値説明図である。
第3図は、クリティカルエリア値説明図である。
第4図は、クリティカルエリア値説明図である。
第5図はレイアウト処理フローであり、本発明のレイアウト装置が実行するレイアウト処理を示す。
第6図はレイアウト処理フローであり、ディテールプレースメント処理の一例を示す。
第7図はレイアウト処理フローであり、ディテールプレースメント処理の一例を示す。
第8図はレイアウト処理フローであり、ディテールプレースメント処理の一例を示す。
第9図はレイアウト処理フローであり、グローバルルーティング処理の一例を示す。
第10図はレイアウト処理フローであり、ディテールルーティング処理の一例を示す。
第11図はレイアウト処理フローであり、ディテールルーティング処理の他の一例を示す。
第12図は、レイアウト処理説明図である。
第13図は、レイアウト処理説明図である。
第14図は、レイアウト処理説明図である。
第15図は、レイアウト処理説明図である。
第16図は、レイアウト処理説明図であり、特に、第16図(A)及び第16図(B)はセルを示し、第16図(C)はチップを示し、第16図(D)乃至第16図(F)はセルの関係を示す。
第17図は、レイアウト処理説明図であり、特に、第17図(A)及び第17図(B)はクリティカルエリア値テーブルの一例を示す。
第18図は、レイアウト処理説明図であり、特に、第18図(A)乃至第18図(C)はセルの位置の変更について示す。
第19図は、レイアウト処理説明図であり、特に、第19図(A)及び第19(B)は配線の位置の変更について示す。
第20図は、レイアウト処理説明図であり、特に、第20図(A)は配線の位置の変更について示し、第20図(B)及び第20図(C)は当該変更によるタイミングの変化を示す。
第1図はレイアウト装置構成図であり、本発明のレイアウト方法を実行するレイアウト装置の構成の概略を示す。
レイアウト装置は、レイアウト処理部1、回路データ格納部2、セルライブラリ3、クリティカルエリア値テーブル4、レイアウト結果格納部5からなる。この例では、クリティカルエリア値テーブル4はセルライブラリ3内にその一部として設けられるが、これには制限されない。レイアウト処理部1は、グローバルプレースメント処理部11、ディテールプレースメント処理部12、グローバルルーティング処理部13、ディテールルーティング処理部14、クリティカルエリア値演算部15からなる。
回路データ格納部2は、例えばLSIの回路設計の結果得られた回路データを格納する。なお、回路データは、LSIについての回路データに限られず、セラミックの配線基板やプリント基板上のハイブリッド集積回路等の回路データ等であってもよい。レイアウト処理部1は、回路データ格納部2から回路データを読み出して、これについてのレイアウトを行い、その結果をレイアウト結果格納部5に格納する。このレイアウトを行う際、レイアウト処理部1は、セルライブラリ3及びクリティカルエリア値テーブル4を参照する。セルライブラリ3は、回路データにおいて用いられるセルの実際の回路のパターンを格納する。クリティカルエリア値テーブル4は、隣接するセルの間におけるクリティカルエリア値を格納する。
レイアウト処理部1は、当該レイアウト処理を行うレイアウトプログラムを当該レイアウト装置のCPU(中央演算処理装置)で実行することにより実現される。この時、レイアウトプログラムは主記憶上に存在する。レイアウトプログラムは、フレキシブルディスク、CD−ROM、CDR/W、DVD等の種々のコンピュータ読み取り可能な記録媒体に格納することにより提供される。回路データ格納部2、セルライブラリ3及びレイアウト結果格納部5は、ディスク装置等の補助記憶上に存在し、必要に応じて主記憶上に読み出される。
グローバルプレースメント処理部11は、回路データ格納部2から回路データを読み出して、これに従って、周知のグローバルプレースメント処理により複数のセルを概略の位置に配置し、当該配置の結果(レイアウトデータ)をディテールプレースメント処理部12へ送る。
ディテールプレースメント処理部12は、グローバルプレースメント処理部11における複数のセルの概略の位置への配置(グローバルプレースメント)の結果に従って、複数のセルを具体的な(詳細な)位置に配置する。即ち、チップ上での当該セルの位置(座標)を定める。具体的には、ディテールプレースメント処理部12は、周知のディテールプレースメント処理により複数のセルを具体的な位置に配置し、この処理により隣接して配置された複数のセルの各々の間におけるクリティカルエリア値を求め、求めたクリティカルエリア値が小さくなるように複数のセルの具体的な位置を変更し、当該変更後の配置の結果(レイアウトデータ)をグローバルルーティング処理部13へ送る。
このように、本発明では、レイアウト設計のセル配置においてランダム故障を考慮するための指標として、隣接するセルの間におけるクリティカルエリア値を用いる。クリティカルエリア値は、ランダム故障の起こり易さを示す指標であるが、これについては後述する。更に、本発明では、一旦配置されたセルの位置を、隣接するセルの間におけるクリティカルエリア値が小さくなるように変更する。これにより、ランダム故障の指標であるクリティカルエリア値をレイアウト、特にセルの配置に反映させ、LSI全体のクリティカルエリア値を小さくして、ランダム故障の発生率を小さくし、製造歩留りを向上することができる。
隣接するセルの間におけるクリティカルエリア値は、セル(実際には、セル内のトランジスタ等の回路素子又は配線のパターン)間の距離に依存する。従って、当該距離が定まるディテールプレースメント処理において、当該距離に基づいてクリティカルエリア値を求める。
ディテールプレースメント処理部12は、実際には、クリティカルエリア値テーブル4を参照することにより、隣接して配置された複数のセルの各々の間におけるクリティカルエリア値を求める。このために、クリティカルエリア値テーブル4が予め用意される。クリティカルエリア値テーブル4は、複数のセルを隣接して配置した場合の各々のセル間におけるクリティカルエリア値を予め演算により求めたものを格納する。
また、複数のセルの具体的な位置は、詳細は後述するが、交換処理、回転処理、閾値処理により変更される。即ち、交換処理においては、求めたクリティカルエリア値が当該2個のセルについての位置の交換により小さくなる場合、当該2個のセルについての位置交換を行なう。回転処理においては、求めたクリティカルエリア値が当該セルについての回転により小さくなる場合、当該セルについての回転を行なう。閾値処理においては、複数のセルの具体的な位置は、前記求めたクリティカルエリア値が所定の値よりも大きい場合、当該隣接して配置されたセルの間に隙間(スペース)を挿入することにより変更される。
グローバルルーティング処理部13は、回路データ格納部2から回路データを読み出して、これとディテールプレースメント処理部12における複数のセルのディテールプレースメントの結果とに従って、複数のセルの間の配線を概略の位置に配置する。具体的には、グローバルルーティング処理部13は、周知のグローバルルーティング処理により配線を概略の位置に配置し、この処理により配置された配線の混雑度を求め、求めた配線の混雑度が小さくなるように、前記配線の概略の位置を変更し、当該配置の結果(レイアウトデータ)をディテールルーティング処理部14へ送る。
ディテールルーティング処理部14は、グローバルルーティング処理部13における配線のグローバルルーティングの結果に従って、配線を具体的な位置に配置し、これにより完成したレイアウト結果をレイアウト処理部1における処理結果としてレイアウト結果格納部5に格納する。具体的には、ディテールルーティング処理部14は、周知のディテールルーティング処理により配線を具体的な位置に配置し、この処理により隣接して配置された配線の各々の間におけるクリティカルエリア値を演算により求め、求めたクリティカルエリア値が所定の値より大きい場合であって、当該位置の近傍に配線の空き領域が存在する場合、当該隣接して配置された配線の間に当該空き領域を挿入する。
このように、本発明では、レイアウト設計の配線の配置においてランダム故障を考慮するための指標として、隣接する配線の間におけるクリティカルエリア値を用いる。更に、本発明では、一旦配置された配線の位置を、隣接する配線の間におけるクリティカルエリア値が所定の値よりも小さくなるように変更する。これにより、ランダム故障の指標であるクリティカルエリア値をレイアウト、特に配線の配置に反映させ、LSI全体のクリティカルエリア値を小さくして、ランダム故障の発生率を小さくし、製造歩留りを向上することができる。
隣接する配線の間におけるクリティカルエリア値は、配線間の距離に依存する。従って、当該距離が定まるディテールルーティング処理において、当該距離に基づいてクリティカルエリア値を求める。
ディテールルーティング処理部14は、実際には、クリティカルエリア値演算部15に隣接して配置された配線の間におけるクリティカルエリア値の算出を依頼することにより、前記クリティカルエリア値を求める。クリティカルエリア値演算部15は、所定の演算処理により前記クリティカルエリア値を求め、ディテールルーティング処理部14に渡す。
また、ディテールルーティング処理部14は、前述の空き領域を挿入した場合には、必要に応じて、その結果として新たにタイミングのエラーが生じるか否かを調べる。そして、当該エラーを生じる場合、ディテールルーティング処理部14は、当該挿入された空き領域を削除して、当該隣接して配置された配線の具体的な位置を当該挿入以前の状態とする。
ここで、クリティカルエリア値について、第2図を参照して説明する。クリティカルエリア値は、以下のようにして求められる。第2図に示すように、デフェクトDが半径rの円形であるとする。デフェクトDの中心(デフェクト中心)がそこに落ちたときに、2本の配線Wがショート又はオープン(以下、単にショートという)を起こすチップ上の点からなる領域の面積をA(r)とする。面積A(r)は半径rのデフェクトDのショート故障頻度の指標となる。即ち、面積A(r)が大きければ故障は多く、小さければ故障は少ないと考えられる。半径rのデフェクトDの分布確率密度をD(r)とする。このとき、デフェクト半径rのショート領域面積A(r)を分布確率密度D(r)で積分した量AC(無名数)をクリティカルエリア又はクリティカルエリア値といい、以下のように求まる。即ち、
AC=∫A(r)D(r)dr(∫は「0」から「∞」まで)
である。
クリティカルエリア値ACは、チップのデフェクトDに対する平均的なショート領域面積を表している。従って、クリティカルエリア値ACは、与えられたチップに対するランダム故障(又は歩留り)の指標となる量である。クリティカルエリア値ACを計算する方法としては、モンテカルロ法、グリッド法、ボロノイ図法等、種々の周知の方法がある。なお、クリティカルエリア値ACは、後述するように、チップのデフェクトDに対する平均的なショート領域面積を表しており、ショート故障頻度、更にはランダム故障の指標となると考えられいた。しかし、これをレイアウト設計のセル及び配線の配置においてランダム故障を考慮するための指標として用いることは、本発明の知見に基づくものである。
クリティカルエリア値ACは、前述のように、ディテールプレースメント処理及びディテールルーティング処理において用いられる。しかし、前者はセルの配置の処理であり、また、レイアウト処理に先立って用意できる。後者は配線の配置の処理であり、また、レイアウト処理において演算を実行しなければならない。両者における用途等が異なるので、以下のように異なる演算方法を用いることが望ましい。
ディテールプレースメント処理においては、ディテールプレースメント処理部12は、予め用意されたクリティカルエリア値テーブル4を参照することにより、隣接するセルの間におけるクリティカルエリア値ACを求める。即ち、予め用意されるものであり、また、クリティカルエリア値テーブル4を用意するために一度だけ演算すれば済むので、特に演算時間の長短は問題とならない。一方、セルの間におけるクリティカルエリア値ACは、セルの内部のパターン形状(例えば、トランジスタの配置や形状)に依存するので、詳細な演算を行う必要がある。そこで、クリティカルエリア値ACを求める演算方法として、詳細な演算に向いているモンテカルロ法を用いる。クリティカルエリア値テーブル4に格納されたクリティカルエリア値ACは、既知の形状のセルの間におけるクリティカルエリア値ACをモンテカルロ法により求めたものである。
ディテールルーティング処理においては、ディテールルーティング処理部14は、クリティカルエリア値演算部15に演算を依頼することにより、隣接する配線の間におけるクリティカルエリア値ACを求める。即ち、レイアウト処理の中で個々の配線についてクリティカルエリア値ACの演算を繰り返し行わなければならない。従って、演算時間が最大の問題である。従って、モンテカルロ法、グリッド法、ボロノイ図法等によってもよいが、この場合には長時間を要する。そこで、クリティカルエリア値ACの演算は、以下のような方法によることが望ましい。
モンテカルロ法等が計算時間を多く要するのは、形状についての普遍性が高い手法を用いるためである。そこで、配線形状が、配線方向への細長い長方形が平行に並んでいる場合が多いことに着目して、このような配線形状の性質を利用して、クリティカルエリア値ACを比較的簡便に高速に演算する。具体的には、配線データを所定の方向に走査し、当該走査の結果に基づいて相互に平行に配置される3本の配線の存在する領域を検出し、当該検出した領域についてのみクリティカルエリア値ACを算出する。
この演算方法(以下、平行配線法という)によれば、任意の形状をとる配線についての普遍性が高い手法を用いることなく、配線データを走査するのみで、比較的簡単なアルゴリズムで短い計算時間でクリティカルエリア値ACを計算することができる。クリティカルエリア値ACの正確な算出が目的ではなく、レイアウトの指標とするのであるから、平行配線法による演算で十分である。
平行配線法によるクリティカルエリア値ACの演算についての基本概念を第3図及び第4図に示す。
平行配線法によるクリティカルエリア値ACの演算処理が対象とする配線形状を説明する。第3図に示すように、LSIチップ上において、配線は配線方向において同一の又は平行な領域(以下、トラックと言う)上に乗っているものとする。多くの高集積度のLSIにおいて、セル間の配線はこのような配線の形状を有すると考えてよい。トラックは、下から順に、I、II、III、・・・とされる。トラックの長さは、最大でLとされる。LSIチップ(又は、処理対象の配線領域、以下同じ)の下辺B及び上辺Tは、長さLのトラックであり、その全体に配線が形成されているものとみなす(仮定する)。クリティカルエリア値ACの演算処理時の走査方向は、例えば第3図のように定められる。即ち、トラックB、I、II、III、・・・Tの順に操作され、同一のトラックにおいてその左側から順に走査される。走査を開始する位置の座標を「0」とする。
また、平行配線法によるクリティカルエリア値ACの演算処理においては、デフェクト半径に関する分布確率密度D(r)は、以下の式で表されると(経験則から)仮定する。即ち、
D(r)=cr/r q+1(0≦r≦rの場合)
=cr p−1/r(r≦rの場合)
である。ここで、c=(q+1)(p−1)/(p+q)である。更に、説明の簡単のため、以下の説明においては、p=3、q=1とする。
いま、第4図に示すように、LSIの配線データの中で、3本の(横方向に)平行な配線があるとする。このとき、中間(2本目)の配線を含む、1番目及び2番目配線と等距離にある線分と2番目及び3番目配線と等距離にある線分に囲まれた領域に関するクリティカルエリア値AC(第4図において太い斜線を付して示す)は簡単に計算でき、
AC=r L(2/(a−b)−1/(2a−b−a)−1/(a+b−2b))
となる。ここで、第4図に示すように、Lは当該領域の長さ、a及びbは最下層の配線nの各々下端及び上端の座標、a及びbは中間の配線nの各々下端及び上端の座標、a及びbは最上層の配線nの各々下端及び上端の座標である。
平行配線法によるクリティカルエリア値ACの演算処理は、配線データを前述の走査方向(後述する横方向及び縦方向)に順に走査することにより、第4図のような配線の重なり(重なりノード)を検出し、それについて逐次的にクリティカルエリア値ACを近似的計算する。例えば、第3図の配線データにおいても、第4図の配線の重なりを持つ領域が数多く存在し、これらはその配線の座標を調べることにより容易に検出することができ、かつ、そのクリティカルエリア値ACも前述の式により容易に近似的計算することができる。これにより、基本的に、配線(配線データ)の走査のみでクリティカルエリア値ACの演算処理を行うことができるため、高速に計算することができる。
第5図はレイアウト処理フローであり、本発明のレイアウト装置が実行するレイアウト処理を示す。
グローバルプレースメント処理部11が、回路データ格納部2から回路データを読出し、これに従って、セルライブラリ3のセルを用いて、第12図の上段に示すように、複数のセルを概略の位置に配置する。即ち、グローバルプレースメント処理する(ステップS11)。これについては後述する。
ディテールプレースメント処理部12が、グローバルプレースメント処理部11における複数のセルの概略の位置への配置の結果に従って、第12図の下段に示すように、複数のセルを具体的な位置に配置する。即ち、ディテールプレースメント処理する(ステップS12)。これについては、第6図乃至第8図を参照して後述する。
グローバルルーティング処理部13が、回路データ格納部2から回路データを読出し、この回路データと、ディテールプレースメント処理部12における複数のセルの具体的な位置への配置の結果とに従って、第13図の上段に示すように、複数のセルの間の配線64を概略の位置に配置する。即ち、グローバルルーティング処理する(ステップS13)。これについては、第9図を参照して後述する。
ディテールルーティング処理部14が、配線64の概略の位置への配置の結果に従って、第13図の下段に示すように、配線64を具体的な位置に配置する。即ち、ディテールルーティング処理する(ステップS14)。これについては、第10図及び第11図を参照して後述する。
最初に、第5図のステップS11におけるグローバルプレースメント処理について詳細に説明する。
グローバルプレースメント処理部11における周知のグローバルプレースメント処理の一例を以下に示す。即ち、回路データ格納部2の回路データから所定の順にセル63が読み出され、第12図の上段に示すように、所定の順でn個づつグローバルブロック62に割り当てられる。グローバルブロック62は、点線で示すように、例えばチップ61を大きさの等しい複数の長方形(又は正方形)に仮想的に区切った領域である。グローバルブロック62の数はこれに限られない。全てのセル63がいずれかのグローバルブロック62に割り当てられ、当該グローバルブロック62内の空いている位置に配置される。この後、異なるグローバルブロック62に割り当てられた各々のセル63の位置を交換して、配線長等のコストが低下するなら交換後の配置を採用し、低下しないなら交換前の配置を採用する。これらのコストは、例えば配線が未だ定まっていないので、概略の計算により求める。これにより得られるセル63のレイアウトが、周知のグローバルプレースメント処理の結果である。
回路データ格納部2は、例えばLSIの回路設計の結果得られた回路データを格納する。この回路データは、第14図に示すように、インバータやNANDゲート回路のような複数のセル63と、これらのセル63の間を接続する配線64とからなる。セル63は、例えば回路記号、セル名(例えばINV#1)、当該セル63の出現の順番(例えば(1)はINV#1の1番目)からなる。セル63は、回路設計及びレイアウト設計において用いられる単位回路である。回路データにおいて用いることができる複数の種類のセル63が、セルライブラリ3に予め用意される。
セルライブラリ3は、回路データにおいて用いられるセル63即ち単位回路の種類ごとに、その実際のレイアウトパターンを格納する。セルライブラリ3は、第15図に示すように、セル63のリスト31、セル63のパターン32からなり、他にクリティカルエリア値テーブル4を含む。リスト31は、INV#1等のセル名を格納する。各々のセル名はパターン32をポイントする。パターン32は、セル名の各々に対応して設けられ、当該セル63の実際のレイアウトパターン(トランジスタ等のパターン、セル63内の配線のパターン等)を格納する。INV#1、INV#2及びNANDは、各々、反転回路#1、反転回路#2及びナンドゲート回路のセル63の名前を示す。
なお、セル63はこれらの例に限られない。例えば、セル63は、ハーフアダー、フリップフロップ、セレクタ等の程度の回路を含む。例えば、フルアダー、シフトレジスタ、乗算回路等は、セル63よりも大きいマクロとされ、複数のセル63の組み合わせにより構成される。
また、セル63には方向性がある。即ち、セル63が、第16図(A)に示すような方向であるとすると、その内部のレイアウトパターンは第16図(B)に示すようになる。第16図(A)及び第16図(B)は、図示の便宜のため、簡単なセル63を示すが、セル63は、基本的には、上下及び左右に対象ではない。なお、第16図(B)においては電源部分の図示を省略している。第16図(A)に示すセル63のABC及びDの各辺が、第16図(C)に示すLSIのチップ61のABC及びDの各辺に対応するように、セル63が配置される。これにより、セル63の上下左右が定まる。従って、第16図(D)に示す通常(又は基本)のセル63を基準とすると、第16図(E)に示す180度回転したセル63、第16図(F)に示す鏡面の関係にあるセル63が存在する。なお、第16図(D)において、セル63内の文字Fは、当該セル63の方向を示すために便宜的に付したものである(他の図においても同じ)。
次に、第5図のステップS12におけるディテールプレースメント処理について詳細に説明する。前述のように、本発明のディテールプレースメント処理においては、周知のディテールプレースメント処理の後に、セル63の位置を変更するために、少なくとも、セル63の交換処理、回転処理、閾値処理のいずれかが実行される。即ち、第6図、第7図及び第8図のいずれかのディテールプレースメント処理が実行される。
第6図はレイアウト処理フローであり、第5図のステップS12においてディテールプレースメント処理部12が実行するディテールプレースメント処理の一例を示す。
ディテールプレースメント処理部12が、グローバルプレースメント処理部11におけるグローバルプレースメントの結果を用いて、複数のセル63を具体的な位置に配置する。即ち、周知のディテールプレースメント処理を実行する(ステップS21)。
ディテールプレースメント処理部12における周知のディテールプレースメント処理の一例を示す。即ち、グローバルプレースメントの結果に基づいて、第12図の下段に示すように、各々のグローバルブロック62内において、これに割り当てられたn個のセル63(#1〜#n)について、グリッドG上に配置する。即ち、セル63の各辺がグリッドG上に位置するようにされる。グリッドGは、グローバルブロック62内において、仮想的に設けた直線である。グリッドGは、縦及び横方向に等しい間隔で平行に複数本設けられ、その間隔はプロセスの最小加工寸法に依存する。セル63の各辺はグリッドG上になければならない(セル63のサイズがそのような大きさとされる)。第12図において、グリッドGは、図示の便宜のため、グローバルブロック62の外に目盛りとして示される。この後、同一のグローバルブロック62内において、各々のセル63の位置を交換して、配線長等のコストが低下するなら交換後の配置を採用し、低下しないなら交換前の配置を採用する。これらのコストは、例えば配線が未だ定まっていないので、概略の計算により求める。これにより得られるセル63のレイアウトが、周知のディテールプレースメント処理の結果である。
ディテールプレースメント処理部12が、クリティカルエリア値テーブル4のクリティカルエリア値ACを用いて、第18図(A)に示す当該セル63についての位置の交換によりクリティカルエリア値ACが当該交換前より小さくなる場合、当該セル63についての交換を行なう(ステップS22)。これにより、複数のセル63の具体的な位置が変更される。
ディテールプレースメント処理部12は、セル63の交換処理において、クリティカルエリア値テーブル41を用いる。クリティカルエリア値テーブル41は、第17図(A)に示すように、セル63ごとに、当該セル63(列のセル)を行のセルの右隣にレイアウトした場合におけるクリティカルエリア値ACを格納する。即ち、セル63の種類の数をCとすると、全てのセル63の組み合わせC×Cについて、各々が右隣に配置された場合におけるクリティカルエリア値ACを計算し、格納する。
前述のように、セル63の方向は予め定められている。従って、「右隣にレイアウトする」とは、あるセル63の辺Dに他のセル63の辺Bが位置するようにレイアウトすることである。セル63の内部は、前述のように、左右対称とは限らないので、あるセル63の右隣にどのセル63が配置されるかによって、当該2個のセル63間のクリティカルエリア値AC(以下、単に値ACともいう)が異なる。
例えば、第18図(A)に示すように、ステップS21により4個のセルABC及びDがこの順に配置されたとする。この状態で、セルBの位置とセルCの位置とを交換してみる。これにより、セルAとセルBとの間の値ACがセルAとセルCとの間の値ACに変更され、セルBとセルCとの間の値ACがセルCとセルBとの間の値ACに変更され、セルCとセルDとの間の値ACがセルBとセルDとの間の値ACに変更される。変更前の値ACの合計より、変更後の値ACの合計が小さければ、セルBの位置とセルCの位置とを交換する。これにより、LSI全体としての値ACは小さくなり、ランダム故障の発生率は低下する。
第7図はレイアウト処理フローであり、第5図のステップS12においてディテールプレースメント処理部12が実行するディテールプレースメント処理の一例を示す。
ディテールプレースメント処理部12が、ステップS21と同様にして、周知のディテールプレースメント処理により、複数のセル63を具体的な位置に配置する(ステップS23)。
ディテールプレースメント処理部12が、クリティカルエリア値テーブル4のクリティカルエリア値ACを用いて、第18図(B)に示す当該セル63についての回転によりクリティカルエリア値ACが当該回転前より小さくなる場合、当該セル63についての回転を行なう(ステップS24)。これにより、複数のセル63の具体的な位置が変更される。
ディテールプレースメント処理部12は、セル63の回転処理において、クリティカルエリア値テーブル42を用いる。クリティカルエリア値テーブル42は、第17図(B)に示すように、通常のセル63(Nを付して表す)及び当該セル63を180度回転したセル63(Rを付して表す)ごとに、当該セル63(列のセル)を行のセル63の右隣にレイアウトした場合におけるクリティカルエリア値ACを格納する。即ち、セル63の種類の数をCとすると、全てのセル63の組み合わせ2C×2Cについて、各々が右隣に配置された場合におけるクリティカルエリア値ACを計算し、格納する。
殆どの場合、セル63の回転は回転角度が180度である場合を考慮すればよい。しかし、必要に応じて、90度又は270度回転したセル63を、セルライブラリ3に用意するようにしてもよい。この場合、クリティカルエリア値テーブル42は、全てのセル63の組み合わせRC×RCについて、クリティカルエリア値ACを格納する。ここで、Rは回転の種類であり、例えば1〜4(0度、90度、180度、270度)の値をとる。クリティカルエリア値テーブル41はR=1(0度のみ)の場合を示し、クリティカルエリア値テーブル42はR=2(0度及び180度)の場合を示す。
例えば、第18図(B)に示すように、ステップS23により3個のセルAB及びCがこの順に配置されたとする。この状態で、セルBを180度回転してみる。これにより、セルA(N)とセルB(N)との間の値ACがセルA(N)とセルB(R)との間の値ACに変更され、セルB(N)とセルC(N)との間の値ACがセルB(R)とセルC(N)との間の値ACに変更する。変更前の値ACの合計より、変更後の値ACの合計が小さければ、セルBを回転する。これにより、LSI全体としての値ACは小さくなり、ランダム故障の発生率は低下する。
なお、第16図(D)に示す通常のセル63に対して、第16図(F)に示す内部のパターンが鏡面の関係にあるセル63(Mを付して表す)も存在し得る。必要に応じて、当該鏡面の関係にあるセル63を、セルライブラリ3に用意するようにしてもよい。この場合、クリティカルエリア値テーブル42は、セル(M)についても、同様に各々の配置の場合についての値ACを格納する。更に、セル(M)を種々の角度で回転したセル63をセルライブラリ3に用意し、その値ACをクリティカルエリア値テーブル42に格納するようにしてもよい。
第8図はレイアウト処理フローであり、第5図のステップS12においてディテールプレースメント処理部12が実行するディテールプレースメント処理の一例を示す。
ディテールプレースメント処理部12が、ステップS21と同様にして、周知のディテールプレースメント処理により、複数のセル63を具体的な位置に配置する(ステップS25)。
ディテールプレースメント処理部12が、クリティカルエリア値テーブル4のクリティカルエリア値ACを用いて、クリティカルエリア値ACが閾値αよりも大きい場合、第18図(C)に示すように、当該隣接して配置されたセル63の間に隙間を挿入する(ステップS26)。これにより、複数のセル63の具体的な位置が変更される。
ディテールプレースメント処理部12は、セル63の閾値処理において、クリティカルエリア値テーブル41又は42を用いる。例えば、第18図(C)に示すように、ステップS25により2個の通常のセルA及びBがこの順に配置されたとする。この状態で、クリティカルエリア値テーブル41の参照により、セルAとセルBとの間の値ACを求め、これを閾値αと比較し、値ACが閾値αよりも大きければ、セルAとセルBとの間に1グリッド分の隙間を挿入する。閾値αの値は経験的に予め定められる。回転したセル63及び鏡面の関係にあるセル63についても同様である。これにより、LSI全体としての値ACは小さくなり、ランダム故障の発生率は低下する。
なお、ディテールプレースメント処理部12が、セル63の交換処理、回転処理、閾値処理を全て実行するようにしてもよい。例えば、ステップS21の後、ステップS22、S24、S26を順に実行してもよい。また、ステップS22、S24、S26の実行の順を適宜入れ換えてもよい。更に、3個の処理のいずれか2個の処理を選択して実行するようにしてもよい。クリティカルエリア値テーブル42を設ける場合、クリティカルエリア値テーブル41は省略することができる。
次に、第5図のステップS13におけるグローバルルーティング処理について詳細に説明する。第9図はレイアウト処理フローであり、第5図のステップS13においてグローバルルーティング処理部13が実行するグローバルルーティング処理の一例を示す。
グローバルルーティング処理部13が、回路データ格納部2から回路データを読出し、これに従って、配線64を概略の位置に配置する(ステップS31)。グローバルルーティング処理部13における周知のグローバルルーティング処理の一例を示す。即ち、回路データ格納部2の回路データから所定の順に配線64が読み出され、第13図の上段に示すように、当該配線64が接続するセル63(第13図には現れない)の配置されたグローバルブロック62の間に配置される。全ての配線64が1又は複数のグローバルブロック62を通るように配置される。これにより得られる配線64のレイアウトが、周知のグローバルルーティング処理の結果である。
グローバルルーティング処理部13が、所定の演算により、グローバルブロック62毎に、配置された配線64の混雑度K=n1/n2を求める(ステップS32)。ここで、n1は当該グローバルブロック62に実際に配置された配線64の本数であり、n2は当該グローバルブロック62に許容される配線64の最大本数である。従って、n2は、例えば当該グローバルブロック62に存在するグリッドの数である。
グローバルルーティング処理部13が、配線64の混雑度が小さくなるように、配線64の概略の位置を変更する(ステップS33)。即ち、グローバルブロック62毎の混雑度を均一化するように、再度グローバルルーティング処理を行なう。これにより、クリティカルエリア値ACが極端に高い領域を無くすことができる。例えば、第19図(A)において、配線64の混雑度が大きいグローバルブロック62と小さいグローバルブロック62とを求める。この場合、縦方向の配線64に着目すると、第1行第2列、第2行第2列、第3行第2列及び第4行第2列のグローバルブロック62(以下、これをGB(1,2)、GB(2,2)、GB(3,2)及びGB(4,2)と表す)において、その混雑度が高いことが判る。そこで、第19図(B)に示すように、配線64を移動させる(配線64の位置を変更する)。即ち、混雑度の低いグローバルブロックGB(2,1)及び(3,1)へ1本の配線64を移動させ、グローバルブロックGB(1,3)、GB(2,3)及びGB(3,3)へ2本の配線64を移動させる。第19図(B)において、移動前の配線64を点線で示し、移動後の配線64を実線で示す。点線と対となっていない(実線のみの)配線64は、移動されなかった配線である。これにより、縦方向の配線64について(着目したグローバルブロック62についての)混雑度が均一化される(実際の本数は更に多い)。横方向の配線64についても、同様に混雑度が均一化される。
なお、配線64の混雑度の均一化処理(ステップS33)を実行する前に、周知の配線64の混雑度の最適化処理が実行するようにしてもよい。しかし、これによっては配線64の混雑度が均一化されないので、クリティカルエリア値ACのかなり高い領域が残ってしまう。従って、均一化処理によりクリティカルエリア値ACの最適化の前処理を行なうことが望ましい。
次に、第5図のステップS14におけるディテールルーティング処理について詳細に説明する。第10図はレイアウト処理フローであり、第5図のステップS14においてディテールルーティング処理部14が実行するディテールルーティング処理の一例を示す。
ディテールルーティング処理部14が、グローバルルーティング処理部13におけるグローバルルーティングの結果を用いて、配線64を具体的な位置に配置する(ステップS41)。ディテールルーティング処理部14における周知のディテールルーティング処理の一例を示す。即ち、グローバルルーティングの結果に基づいて、第13図の下段に示すように、各々のグローバルブロック62内において、これに到達する又はこれを通過する配線64について、グリッドG上に配置する。即ち、配線64がグリッドG上に位置するようにされる。配線64はグリッドG上になければならない。この後、同一のグローバルブロック62内において、第13図の下段に示すように、各々の配線64の位置を変更して、配線長等のコストが低下するなら変更後の配置を採用し、低下しないなら変更前の配置を採用する。第13図の下段において、変更前の配線64を点線で示し、変更後の配線64を実線で示す。これにより得られるセル63のレイアウトが、周知のディテールルーティング処理の結果である。
ディテールルーティング処理部14が、クリティカルエリア値演算部15に依頼して、ディテールルーティング処理の結果、隣接して配置された配線64の各々の間におけるクリティカルエリア値ACを求める(ステップS42)。前述のように、クリティカルエリア値演算部15は、ディテールルーティング処理部14からの依頼に応じて、モンテカルロ法等にはよらず、平行配線法による演算で、隣接する配線64の間におけるクリティカルエリア値ACを求め、その結果をディテールルーティング処理部14に返す。
即ち、クリティカルエリア値演算部15は、前記依頼と共に、ディテールルーティング処理の結果(である配線データ)を受け取る。この配線データは、第3図に示すような配線64の縦方向及び横方向の組み合わせとなっている。次に、クリティカルエリア値演算部15は、当該配線データを前述の所定の方向に走査し、当該走査の結果に基づいて第4図のような等間隔で相互に平行に配置される3本の配線64の存在する領域を検出する。これは、配線64の座標を調べることにより容易に検出することができる。前記検出のアルゴリズムとしては種々のものが考えられる。配線64は2方向に延びるので、走査及び検出も当該2方向について行われる。次に、クリティカルエリア値演算部15は、当該検出した領域の各々について、前述の式によりクリティカルエリア値ACを逐次的に算出する。これにより、配線データの2方向についての走査のみで、クリティカルエリア値ACを高速に計算することができる。
ディテールルーティング処理部14が、クリティカルエリア値演算部15により求めたクリティカルエリア値ACが所定の値より大きい領域(ハイコスト領域H)を検索する(ステップS43)。即ち、コストとしてのクリティカルエリア値ACを改善すべき領域を求める。前記所定の値は経験的に予め定められる。例えば、1個のグローバルブロック62内において、第20図(A)に示すように、ハイコスト領域Hが存在する場合がある。
ディテールルーティング処理部14が、ハイコスト領域Hの周囲においてこれに隣接する空き領域(スペース)Sが存在するか否かを調べる(ステップS44)。空き領域Sは、クリティカルエリア値ACが0の領域(即ち、配線64の本数が0の未配線領域)又はこれに近い値の領域である。例えば、1個のグローバルブロック62内において、第20図(A)に示すように、空き領域Sが存在する場合がある。
空き領域Sが存在する場合、ディテールルーティング処理部14が、当該ハイコスト領域Hの隣接して配置された配線64の間にスペースを挿入することにより、再配線処理を行なう(ステップS45)。例えば、第20図(A)において、ハイコスト領域Hに隣接する空き領域Sを含めてこれらを新たな領域H’とし、領域H’内に存在する配線64の間に1グリッド分のスペースを挿入し、クリティカルエリア値ACを小さくする。例えば、ハイコスト領域Hの配線64の中で空き領域Sに近い側から順に、1グリッドづつスペースを挿入していく。ハイコスト領域Hの配線64の本数よりも空き領域Sのグリッドの数が小さければ、ハイコスト領域Hの全ての配線64の間にスペースを挿入することはできない。しかし、この場合でも、LSI全体のクリティカルエリア値ACは小さくなる。これにより得られる配線64のレイアウトが、最終的なグローバルルーティング処理の結果である。なお、空き領域Sが存在しない場合、再配線処理(ステップS45)は実行しない。
第11図はレイアウト処理フローであり、第5図のステップS14においてディテールルーティング処理部14が実行するディテールルーティング処理の他の一例を示す。第11図に示す処理は、第10図に示す処理において、ステップS45の後に処理を終了することなく、続けて実行される。
ステップS45に続いて、ディテールルーティング処理部14が、タイミングを再計算し、ステップS45におけるスペースの挿入の結果、タイミングのエラーが生じるか否かを調べる(ステップS46)。空き領域を挿入した結果、第20図(A)から判るように、当該位置を変更された配線64の長さは、挿入したスペース(即ち、グリッドの数)の例えば2倍長くなる。これにより、当該配線64の抵抗R及び寄生容量Cが大きくなり、時定数も大きくなるので、当該配線64を伝搬する信号の遅延時間も大きくなる。例えば、当該配線64が、第20図(B)に示すように、フリップフロップ回路FF#1及びFF#2へクロック信号CLKを供給する配線64であるとする。この配線64が、前述のように、その位置を変更されると、第20図(C)に示すように、クロック信号CLKが遅延する。即ち、当該配線64が、第20図(A)及び第20図(B)に点線で示す直線形状から実線で示す迂回形状にされ、これにより、クロック信号CLKが、第20図(C)に点線で示すタイミングから実線で示すタイミングに遅延する。このため、本来先に入力されるべきクロック信号CLKの入力が、フリップフロップ回路FF#2への入力信号の入力よりも遅れてしまう。これにより、タイミングのエラーとなる。
タイミングのエラーが生じる場合、ディテールルーティング処理部14が、当該挿入された空き領域を削除して、当該隣接して配置された配線64の具体的な位置を当該挿入以前の状態とする(ステップS47)。これにより、ランダム故障の発生率を低下させつつ、タイミングの悪化を防止することができる。なお、この場合、ステップS43において検出したハイコスト領域Hが残る。そこで、実際には、ステップS47において、タイミングのエラーを生じる配線64を当該挿入以前の状態とし、その上で、支障のない範囲で、ハイコスト領域Hの他の配線64の間にスペースを挿入するようにしてもよい。
以上説明したように、本発明によれば、レイアウト方法において、クリティカルエリア値に基づいて回路データに表れるセルを具体的な位置に配置することにより、ランダム故障を、LSIのレイアウト設計におけるセルの配置において考慮することができる。従って、配線率等のコストに加えて、コストとしてのランダム故障を考慮しつつ、セルの配置について最適なレイアウト設計を行うことができる。この結果、LSIの歩留りを意図的に向上させることができ、半導体ビジネスに大きく寄与することができる。LSIの加工プロセスが微細化する程、製造歩留りがランダム故障に依存すると考えられるので、レイアウト設計によりランダム故障を大きく低減することができる。
また、本発明によれば、レイアウト方法において、更に、クリティカルエリア値に基づいて回路データに表れる配線を具体的な位置に配置することにより、配線率等及びランダム故障を、LSIのレイアウト設計における配線の配置において考慮し、配線の配置について最適なレイアウト設計を行うことができる。この結果、LSIの歩留りを意図的に向上させることができ、レイアウト設計によりランダム故障を低減することができる。
また、本発明によれば、レイアウト装置において、クリティカルエリア値に基づいて回路データに表れるセルを具体的な位置に配置することにより、配線率等及びランダム故障を考慮しつつ、セルの配置について最適なレイアウト設計を行うことができる。この結果、LSIの歩留りを意図的に向上させることができ、レイアウト設計によりランダム故障を低減することができる。
また、本発明によれば、レイアウトプログラム及びその記録媒体において、レイアウトプログラムは、フレキシブルディスク、CD−ROM、CDR/W、DVD等の種々のコンピュータ読み取り可能な記録媒体に格納することにより提供される。これにより、本発明のレイアウト方法及びレイアウト装置をコンピュータ上に実現することができる。

Claims (11)

  1. 集積回路をレイアウトするレイアウト装置におけるレイアウト方法であって、
    回路データに従って、複数のセルを概略の位置に配置し、
    前記複数のセルの概略の位置への配置の結果に従って、前記複数のセルを具体的な位置に配置する工程を含み、
    前記複数のセルの具体的な位置への配置は、更に、
    前記複数のセルを具体的な位置に配置し、
    隣接して配置された複数のセルの各々の間におけるクリティカルエリア値を求め、
    前記求めたクリティカルエリア値が小さくなるように、前記複数のセルの具体的な位置を変更する
    ことを特徴とするレイアウト方法。
  2. 前記複数のセルの具体的な位置は、前記求めたクリティカルエリア値が当該セルについての位置の交換により小さくなる場合、当該セルについての交換を行なうことにより変更される
    ことを特徴とする請求の範囲第1項に記載のレイアウト方法。
  3. 前記複数のセルの具体的な位置は、前記求めたクリティカルエリア値が当該セルについての回転により小さくなる場合、当該セルについての回転を行なうことにより変更される
    ことを特徴とする請求の範囲第1項に記載のレイアウト方法。
  4. 前記複数のセルの具体的な位置は、前記求めたクリティカルエリア値が所定の値よりも大きい場合、当該隣接して配置されたセルの間に隙間を挿入することにより変更される
    ことを特徴とする請求の範囲第1項に記載のレイアウト方法。
  5. 当該レイアウト方法は、更に、
    前記複数のセルを隣接して配置した場合の各々の間におけるクリティカルエリア値を格納するクリティカルエリア値テーブルを用意する工程を含み、
    前記クリティカルエリア値テーブルを参照することにより、前記隣接して配置された複数のセルの各々の間におけるクリティカルエリア値を求める
    ことを特徴とする請求の範囲第1項に記載のレイアウト方法。
  6. 当該レイアウト方法は、更に、
    前記回路データと前記複数のセルの具体的な位置への配置の結果とに従って、前記複数のセルの間の配線を概略の位置に配置し、
    前記配線の概略の位置への配置の結果に従って、前記配線を具体的な位置に配置する工程を含み、
    前記配線の具体的な位置への配置は、更に、
    前記配線を具体的な位置に配置し、
    前記隣接して配置された配線の各々の間におけるクリティカルエリア値を演算により求め、
    前記求めたクリティカルエリア値が所定の値より大きい場合であって、当該位置の近傍に配線の空き領域が存在する場合、当該隣接して配置された配線の間に当該空き領域を挿入する
    ことを特徴とする請求の範囲第1項に記載のレイアウト方法。
  7. 前記配線の具体的な位置への配置は、更に、
    前記空き領域の挿入の結果タイミングのエラーが生じる場合、当該挿入された空き領域を削除して、当該隣接して配置された配線の具体的な位置を当該挿入以前の状態とする
    ことを特徴とする請求の範囲第6項に記載のレイアウト方法。
  8. 前記配線の概略の位置への配置は、更に、
    前記配線を概略の位置に配置し、
    前記配置された配線の混雑度を求め、
    前記求めた配線の混雑度が小さくなるように、前記配線の概略の位置を変更する
    ことを特徴とする請求の範囲第6項に記載のレイアウト方法。
  9. 集積回路をレイアウトするレイアウト装置であって、
    回路データに従って、複数のセルを概略の位置に配置するグローバルプレースメント手段と、
    前記複数のセルの概略の位置への配置の結果に従って、前記複数のセルを具体的な位置に配置するディテールプレースメント手段とを含み、
    前記ディテールプレースメント手段は、前記複数のセルを具体的な位置に配置し、隣接して配置された複数のセルの各々の間におけるクリティカルエリア値を求め、前記求めたクリティカルエリア値が小さくなるように前記複数のセルの具体的な位置を変更する
    ことを特徴とするレイアウト装置。
  10. 集積回路をレイアウトするレイアウト方法を実現するレイアウトプログラムであって、
    前記レイアウトプログラムは、コンピュータに、
    回路データに従って、複数のセルを概略の位置に配置させ、
    前記複数のセルの概略の位置への配置の結果に従って、前記複数のセルを具体的な位置に配置させ、
    前記複数のセルの具体的な位置への配置において、更に、
    前記複数のセルを具体的な位置に配置させ、
    隣接して配置された複数のセルの各々の間におけるクリティカルエリア値を求めさせ、
    前記求めたクリティカルエリア値が小さくなるように、前記複数のセルの具体的な位置を変更させる
    ことを特徴とするレイアウトプログラム。
  11. 集積回路をレイアウトするレイアウト方法を実現するプログラムを記録するコンピュータ読取可能なプログラム記録媒体であって、
    前記プログラムは、コンピュータに、
    回路データに従って、複数のセルを概略の位置に配置させ、
    前記複数のセルの概略の位置への配置の結果に従って、前記複数のセルを具体的な位置に配置させ、
    前記複数のセルの具体的な位置への配置において、更に、
    前記複数のセルを具体的な位置に配置させ、
    隣接して配置された複数のセルの各々の間におけるクリティカルエリア値を求めさせ、
    前記求めたクリティカルエリア値が小さくなるように、前記複数のセルの具体的な位置を変更させる
    ことを特徴とするプログラム記録媒体。
JP2004542786A 2002-10-10 2002-10-10 レイアウト方法及び装置並びにそのプログラム及び記録媒体 Expired - Fee Related JP4279782B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/010522 WO2004034463A1 (ja) 2002-10-10 2002-10-10 レイアウト方法及び装置並びにそのプログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JPWO2004034463A1 true JPWO2004034463A1 (ja) 2006-02-09
JP4279782B2 JP4279782B2 (ja) 2009-06-17

Family

ID=32089044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004542786A Expired - Fee Related JP4279782B2 (ja) 2002-10-10 2002-10-10 レイアウト方法及び装置並びにそのプログラム及び記録媒体

Country Status (3)

Country Link
US (1) US7512921B2 (ja)
JP (1) JP4279782B2 (ja)
WO (1) WO2004034463A1 (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4279782B2 (ja) * 2002-10-10 2009-06-17 富士通株式会社 レイアウト方法及び装置並びにそのプログラム及び記録媒体
US7404164B2 (en) * 2004-02-04 2008-07-22 International Business Machines Corporation IC design modeling allowing dimension-dependent rule checking
US7143371B2 (en) * 2004-04-27 2006-11-28 International Business Machines Corporation Critical area computation of composite fault mechanisms using voronoi diagrams
JP4610313B2 (ja) * 2004-11-29 2011-01-12 富士通セミコンダクター株式会社 半導体集積回路の設計方法
US7240306B2 (en) * 2005-02-24 2007-07-03 International Business Machines Corporation Integrated circuit layout critical area determination using Voronoi diagrams and shape biasing
DE102005039394B4 (de) * 2005-08-20 2008-08-28 Infineon Technologies Ag Verfahren zum Suchen potentieller Fehler eines Layouts einer integrierten Schaltung
US7386815B2 (en) * 2005-10-27 2008-06-10 International Business Machines Corporation Test yield estimate for semiconductor products created from a library
JP2007141943A (ja) * 2005-11-15 2007-06-07 Matsushita Electric Ind Co Ltd クリティカルエリア算出方法及び歩留まり算出方法
US7908578B2 (en) * 2007-08-02 2011-03-15 Tela Innovations, Inc. Methods for designing semiconductor device with dynamic array section
US8225261B2 (en) 2006-03-09 2012-07-17 Tela Innovations, Inc. Methods for defining contact grid in dynamic array architecture
US9563733B2 (en) 2009-05-06 2017-02-07 Tela Innovations, Inc. Cell circuit and layout with linear finfet structures
US9009641B2 (en) 2006-03-09 2015-04-14 Tela Innovations, Inc. Circuits with linear finfet structures
US7956421B2 (en) 2008-03-13 2011-06-07 Tela Innovations, Inc. Cross-coupled transistor layouts in restricted gate level layout architecture
US8541879B2 (en) 2007-12-13 2013-09-24 Tela Innovations, Inc. Super-self-aligned contacts and method for making the same
US8653857B2 (en) 2006-03-09 2014-02-18 Tela Innovations, Inc. Circuitry and layouts for XOR and XNOR logic
US8658542B2 (en) 2006-03-09 2014-02-25 Tela Innovations, Inc. Coarse grid design methods and structures
US8448102B2 (en) 2006-03-09 2013-05-21 Tela Innovations, Inc. Optimizing layout of irregular structures in regular layout context
US9035359B2 (en) 2006-03-09 2015-05-19 Tela Innovations, Inc. Semiconductor chip including region including linear-shaped conductive structures forming gate electrodes and having electrical connection areas arranged relative to inner region between transistors of different types and associated methods
US7763534B2 (en) 2007-10-26 2010-07-27 Tela Innovations, Inc. Methods, structures and designs for self-aligning local interconnects used in integrated circuits
US8839175B2 (en) 2006-03-09 2014-09-16 Tela Innovations, Inc. Scalable meta-data objects
US9230910B2 (en) 2006-03-09 2016-01-05 Tela Innovations, Inc. Oversized contacts and vias in layout defined by linearly constrained topology
US7446352B2 (en) 2006-03-09 2008-11-04 Tela Innovations, Inc. Dynamic array architecture
US8245180B2 (en) 2006-03-09 2012-08-14 Tela Innovations, Inc. Methods for defining and using co-optimized nanopatterns for integrated circuit design and apparatus implementing same
US8225239B2 (en) 2006-03-09 2012-07-17 Tela Innovations, Inc. Methods for defining and utilizing sub-resolution features in linear topology
US8247846B2 (en) 2006-03-09 2012-08-21 Tela Innovations, Inc. Oversized contacts and vias in semiconductor chip defined by linearly constrained topology
US7503020B2 (en) * 2006-06-19 2009-03-10 International Business Machines Corporation IC layout optimization to improve yield
EP1873663A1 (en) * 2006-06-27 2008-01-02 Takumi Technology Corporation Method for optimizing an integrated circuit physical layout
US8286107B2 (en) 2007-02-20 2012-10-09 Tela Innovations, Inc. Methods and systems for process compensation technique acceleration
US8667443B2 (en) 2007-03-05 2014-03-04 Tela Innovations, Inc. Integrated circuit cell library for multiple patterning
US7669152B1 (en) * 2007-03-13 2010-02-23 Silicon Frontline Technology Inc. Three-dimensional hierarchical coupling extraction
US7685553B2 (en) * 2007-04-11 2010-03-23 International Business Machines Corporation System and method for global circuit routing incorporating estimation of critical area estimate metrics
US8924904B2 (en) * 2007-05-24 2014-12-30 Applied Materials, Inc. Method and apparatus for determining factors for design consideration in yield analysis
US8799831B2 (en) * 2007-05-24 2014-08-05 Applied Materials, Inc. Inline defect analysis for sampling and SPC
US7752580B2 (en) 2007-07-26 2010-07-06 International Business Machines Corporation Method and system for analyzing an integrated circuit based on sample windows selected using an open deterministic sequencing technique
US8453094B2 (en) 2008-01-31 2013-05-28 Tela Innovations, Inc. Enforcement of semiconductor structure regularity for localized transistors and interconnect
US7939443B2 (en) 2008-03-27 2011-05-10 Tela Innovations, Inc. Methods for multi-wire routing and apparatus implementing same
US8001514B2 (en) * 2008-04-23 2011-08-16 Synopsys, Inc. Method and apparatus for computing a detailed routability estimation
KR101903975B1 (ko) 2008-07-16 2018-10-04 텔라 이노베이션스, 인코포레이티드 동적 어레이 아키텍쳐에서의 셀 페이징과 배치를 위한 방법 및 그 구현
US9122832B2 (en) 2008-08-01 2015-09-01 Tela Innovations, Inc. Methods for controlling microloading variation in semiconductor wafer layout and fabrication
US8423942B2 (en) * 2008-12-19 2013-04-16 Agere Systems Llc Fill patterning for symmetrical circuits
US8423328B2 (en) * 2009-09-30 2013-04-16 International Business Machines Corporation Method of distributing a random variable using statistically correct spatial interpolation continuously with spatially inhomogeneous statistical correlation versus distance, standard deviation, and mean
US8661392B2 (en) 2009-10-13 2014-02-25 Tela Innovations, Inc. Methods for cell boundary encroachment and layouts implementing the Same
US8276102B2 (en) * 2010-03-05 2012-09-25 International Business Machines Corporation Spatial correlation-based estimation of yield of integrated circuits
US9159627B2 (en) 2010-11-12 2015-10-13 Tela Innovations, Inc. Methods for linewidth modification and apparatus implementing the same
US9041428B2 (en) 2013-01-15 2015-05-26 International Business Machines Corporation Placement of storage cells on an integrated circuit
US9201727B2 (en) 2013-01-15 2015-12-01 International Business Machines Corporation Error protection for a data bus
US9021328B2 (en) 2013-01-15 2015-04-28 International Business Machines Corporation Shared error protection for register banks
US9043683B2 (en) 2013-01-23 2015-05-26 International Business Machines Corporation Error protection for integrated circuits
US9262573B2 (en) * 2013-03-08 2016-02-16 Taiwan Semiconductor Manufacturing Company, Ltd. Cell having shifted boundary and boundary-shift scheme
US10635773B1 (en) * 2018-10-18 2020-04-28 International Business Machines Corporation Enhancing stability of half perimeter wire length (HPWL)-driven analytical placement

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2829072B2 (ja) * 1989-12-18 1998-11-25 富士通株式会社 Lsi配線変更方法
US5218551A (en) * 1990-04-30 1993-06-08 International Business Machines Corporation Timing driven placement
JP2674353B2 (ja) * 1991-04-04 1997-11-12 日本電気株式会社 概略配線処理方式
JPH0981623A (ja) * 1995-09-19 1997-03-28 Fujitsu Ltd Cadシステム及びlsi設計方法
US5838583A (en) * 1996-04-12 1998-11-17 Cadence Design Systems, Inc. Optimized placement and routing of datapaths
US5781446A (en) * 1996-05-07 1998-07-14 Flexible Solutions, Inc. System and method for multi-constraint domain electronic system design mapping
JP2918101B2 (ja) * 1996-07-25 1999-07-12 日本電気株式会社 半導体集積回路のレイアウト方法
JPH1185719A (ja) 1997-09-03 1999-03-30 Matsushita Electric Ind Co Ltd パラメータ推定装置
JPH1187519A (ja) * 1997-09-04 1999-03-30 Toshiba Corp 半導体集積回路の製造方法、半導体集積回路の自動配置配線方法及び半導体集積回路
US6230304B1 (en) * 1997-12-24 2001-05-08 Magma Design Automation, Inc. Method of designing a constraint-driven integrated circuit layout
US6080201A (en) * 1998-02-10 2000-06-27 International Business Machines Corporation Integrated placement and synthesis for timing closure of microprocessors
US6397169B1 (en) * 1998-06-30 2002-05-28 Synopsys, Inc. Adaptive cell separation and circuit changes driven by maximum capacitance rules
US6301693B1 (en) * 1998-12-16 2001-10-09 Synopsys, Inc. Non-linear optimization system and method for wire length and delay optimization for an automatic electric circuit placer
US6317859B1 (en) * 1999-06-09 2001-11-13 International Business Machines Corporation Method and system for determining critical area for circuit layouts
US7036103B2 (en) * 1999-10-14 2006-04-25 Synopsys, Inc. Detailed placer for optimizing high density cell placement in a linear runtime
JP3734392B2 (ja) * 1999-10-29 2006-01-11 松下電器産業株式会社 半導体集積回路の故障検査方法及びレイアウト方法
JP2001344301A (ja) * 2000-06-02 2001-12-14 Toshiba Corp パターンレイアウト方法、パターンレイアウト装置およびパターンレイアウトプログラムを記録したコンピュータ読取可能な記録媒体
US6415426B1 (en) * 2000-06-02 2002-07-02 Incentia Design Systems, Inc. Dynamic weighting and/or target zone analysis in timing driven placement of cells of an integrated circuit design
JP2002156418A (ja) * 2000-11-17 2002-05-31 Nec Corp Lsi故障解析装置とその解析方法
WO2002073661A2 (en) * 2001-03-12 2002-09-19 Pdf Solutions, Inc. Extraction method of defect density and size distributions
US6766500B1 (en) * 2001-12-06 2004-07-20 Synopsys, Inc. Multiple pass optimization for automatic electronic circuit placement
US6668365B2 (en) * 2001-12-18 2003-12-23 Cadence Design Systems, Inc. Quadratic programming method for eliminating cell overlap and routing congestion in an IC layout
US6757878B2 (en) * 2001-12-31 2004-06-29 Intel Corporation Method and apparatus for layout synthesis of regular structures using relative placement
US7739624B2 (en) * 2002-07-29 2010-06-15 Synopsys, Inc. Methods and apparatuses to generate a shielding mesh for integrated circuit devices
US7225116B2 (en) * 2002-08-20 2007-05-29 Cadence Design Systems, Inc. Method for eliminating routing congestion in an IC layout
JP4279782B2 (ja) * 2002-10-10 2009-06-17 富士通株式会社 レイアウト方法及び装置並びにそのプログラム及び記録媒体
US20040221253A1 (en) * 2003-04-30 2004-11-04 James Imper ASIC routability improvement
EP1747520B1 (en) * 2004-05-07 2018-10-24 Mentor Graphics Corporation Integrated circuit layout design methodology with process variation bands

Also Published As

Publication number Publication date
WO2004034463A1 (ja) 2004-04-22
US7512921B2 (en) 2009-03-31
JP4279782B2 (ja) 2009-06-17
US20050108669A1 (en) 2005-05-19

Similar Documents

Publication Publication Date Title
JP4279782B2 (ja) レイアウト方法及び装置並びにそのプログラム及び記録媒体
US11675954B2 (en) Method of designing a device
US11031385B2 (en) Standard cell for removing routing interference between adjacent pins and device including the same
US8286118B2 (en) Integrated circuit devices and methods and apparatuses for designing integrated circuit devices
US8122412B2 (en) Shelding mesh design for an integrated circuit device
US20070033562A1 (en) Integrated circuit power distribution layout with sliding grids
Zhou et al. Optimal river routing with crosstalk constraints
US20060136848A1 (en) Cell, standard cell, standard cell library, a placement method using standard cell, and a semiconductor integrated circuit
US6857107B2 (en) LSI layout method and apparatus for cell arrangement in which timing is prioritized
US8949755B2 (en) Analyzing sparse wiring areas of an integrated circuit design
JP2003258101A (ja) 半導体集積回路装置の設計方法、設計装置、及び設計プログラム
Chen et al. March: Maze routing under a concurrent and hierarchical scheme for buses
JP2001274254A (ja) 半導体集積回路の自動配置配線方法
US7174529B1 (en) Acute angle avoidance during routing
JP5533119B2 (ja) レイアウト設計装置、レイアウト設計方法、及びレイアウト設計プログラム
JP2007081220A (ja) 半導体集積回路およびそのレイアウト設計方法
US20230274071A1 (en) Generating routes for an integrated circuit design with non-preferred direction curvilinear wiring
US20230282635A1 (en) Integrated circuit with non-preferred direction curvilinear wiring
KR102451155B1 (ko) 반도체 장치의 설계 방법 및 시스템
US20060043427A1 (en) Automatic-arrangement-wiring apparatus for and program for performing layout of integrated circuit
Tai et al. Morphed standard cell layouts for pin length reduction
Nie et al. Y-architecture-based flip-chip routing with dynamic programming-based bend minimization
JP2018109884A (ja) 設計支援装置、設計支援方法、および設計支援プログラム
Uppula et al. Impact on the Physical Design flow, due to Repositioning the Macros in the Floorplan stage of Video decoder at Lower Technologies
JP2003303217A (ja) クロストーク回避方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081117

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20081117

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20081117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090310

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090312

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees