JP4071537B2 - クリティカルエリア演算方法 - Google Patents
クリティカルエリア演算方法 Download PDFInfo
- Publication number
- JP4071537B2 JP4071537B2 JP2002132270A JP2002132270A JP4071537B2 JP 4071537 B2 JP4071537 B2 JP 4071537B2 JP 2002132270 A JP2002132270 A JP 2002132270A JP 2002132270 A JP2002132270 A JP 2002132270A JP 4071537 B2 JP4071537 B2 JP 4071537B2
- Authority
- JP
- Japan
- Prior art keywords
- wiring
- critical area
- node
- overlapping
- calculation
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、クリティカルエリア演算方法に関し、特に、LSI等のレイアウト設計におけるクリティカルエリアの算出を行うクリティカルエリア演算方法に関する。
【0002】
【従来の技術】
近年、半導体集積回路装置(以下、LSI)の集積度向上や、1 チップに搭載可能な回路の大規模化に伴い、LSIの製造歩留りの低下が問題となっている。LSIの製造歩留りは、大別すると、製造プロセスの不具合によるシステム歩留りと、製造プロセス内に入り込んだ小さなごみ(デフェクト)によりチップ上の配線がショート(短絡)又はオープン(開放)を起こしてしまうランダム歩留りに分けられる。この内、与えられたチップに対するランダム歩留りの指標となる量として、クリティカルエリアがある。
【0003】
クリティカルエリアは、以下のようにして求められる。今、図18に示すように、デフェクトが半径rの円形であるとする。デフェクトの中心(デフェクト中心)がそこに落ちたときに、配線ショート又はオープン(以下、単にショートという)を起こすチップ上の点からなる領域の面積をA(r)とする。面積A(r)は半径rのデフェクトのショート故障頻度の指標となる。即ち、面積A(r)が大きければ故障は多く、小さければ故障は少ないと考えられる。半径rのデフェクトの分布確率密度をD(r)とする。このとき、デフェクト半径rのショート領域面積A(r)を分布確率密度D(r)で積分した量ACを" クリティカルエリア" といい、以下のように求まる。即ち、
AC=∫A(r)D(r)dr(∫は「0」から「∞」まで)
である。
【0004】
【発明が解決しようとする課題】
クリティカルエリアACは、チップのデフェクトに対する平均的なショート領域面積を表しており、ショート故障頻度、更にはランダム歩留りの指標となると考えられる。このようなクリティカルエリアを高速かつ正確に計算する演算方法は、LSI製造歩留り向上のために大きく寄与すると考えられる。
【0005】
クリティカルエリアACを計算する方法としては、モンテカルロ法、グリッド法、ボロノイ図法等、種々の方法が提案されている。しかし、いずれも計算時間が多くなるか、アルゴリズムが煩雑で実装が困難なものである。これは、従来のクリティカルエリアの計算では、チップ上の配線が任意の形をとるので、これに対応して、形状についての普遍性が高い手法を用いるためである。即ち、演算に普遍性を求めるが故に、計算量の増加やアルゴリズムの複雑化を招いている。
【0006】
そこで、比較的簡便で高速なアルゴリズムによる方法が求められている。本発明者は、配線形状が、一般に、各配線領域において配線方向への細長い長方形が平行に並んでいる場合が多いことに着目して、このような配線形状の性質を利用すれば、比較的簡便で高速なクリティカルエリアの演算が可能になるのではないかと考えた。
【0007】
本発明は、LSI等のレイアウト設計におけるクリティカルエリアの算出を比較的簡便で高速に行うことができるクリティカルエリア演算方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
本発明のクリティカルエリア演算方法は、配線のクリティカルエリアを算出するクリティカルエリア演算装置におけるクリティカルエリア演算方法であって、配線データを所定の方向に走査し、当該走査の結果に基づいて相互に平行に配置される3本の配線の存在する領域を検出し、当該検出した領域について、前記3本の配線における、2番目配線である中間の配線n j を含む、1番目配線及び前記2番目配線と等距離にある線分と前記2番目配線及び3番目配線と等距離にある線分に囲まれた領域に関して、Lを当該領域の長さ、a 1 及びb 1 を前記1番目配線である最下層の配線n k の各々下端及び上端の座標、a 2 及びb 2 を前記中間の配線n j の各々下端及び上端の座標、a 3 及びb 3 を前記3番目配線である最上層の配線n i の各々下端及び上端の座標とした場合に、AC=r 0 2 L(2/(a 3 −b 1 )−1/(2a 3 −b 1 −a 2 )−1/(a 3 +b 2 −2b 1 ))により、クリティカルエリアACを算出する。
【0009】
本発明のクリティカルエリア演算方法によれば、任意の形状をとる配線についての普遍性が高い手法を用いることなく、配線方向への細長い長方形が平行に並んでいる形状の配線領域を検出して、この領域についてのみ、前述の式に示すように、この領域の長さ及び座標を用いて、そのクリティカルエリアACを算出する。これにより、配線データを走査するのみで、比較的簡単なアルゴリズムで、短い計算時間で、クリティカルエリアACを近似的に計算することができ、ショート故障頻度等の指標とすることができる。また、比較的簡単なアルゴリズムであるので、コンピュータへ容易に実装することができる。
【0010】
【発明の実施の形態】
図1はクリティカルエリア演算装置構成図であり、本発明のクリティカルエリア演算方法を実行するクリティカルエリア演算装置の構成の概略を示す。
【0011】
クリティカルエリア演算装置は、クリティカルエリア演算処理部(以下、演算処理部)1、配線データ格納部2、クリティカルエリア格納部3からなる。配線データ格納部2は、例えばLSIの実際のレイアウト設計の結果得られた配線データを格納する。なお、配線データは、LSIについての配線データに限られず、セラミックの配線基板やプリント基板上の配線データ等であってもよい。クリティカルエリア格納部3は、演算処理部1において算出されたクリティカルエリアの値を格納する。演算処理部1は、配線データ格納部2から配線データを読み出して、これについてクリティカルエリアの値を算出し、その値をクリティカルエリア格納部3に格納する。
【0012】
演算処理部1は、ノード操作処理部11、算出処理部12、マージ処理部13からなる。ノード操作処理部11は、詳細は後述するが、配線データ格納部2から配線データを読み出して、この中から本発明により導入される複数の配線の重なり部分(以下、重なりノードと言う)を検出し、これに所定の操作する処理を行う。算出処理部12は、ノード操作処理部11における重なりノードの操作の結果に基づいて、所定の状態となった重なりノードについてクリティカルエリアの値を算出し、その値をクリティカルエリア格納部3に格納する。この後、算出処理部12は、クリティカルエリアの値を算出した当該重なりノードについて、所定の処理を行う。即ち、当該重なりノードを構成する複数の配線から1本の配線を取り除き、当該重なりノードの状態を重なりの度合いが少なくなるように操作する。マージ処理部13は、算出処理部12におけるこのような重なりノードの操作の結果に基づいて、隣接する複数の重なりノードをマージする。
【0013】
演算処理部1は、当該演算処理(クリティカルエリア演算処理)を行うクリティカルエリア演算プログラムを当該クリティカルエリア演算装置のCPUで実行することにより実現される。クリティカルエリア演算プログラムは、フレキシブルディスク、CD−ROM、CDR/W、DVD等の種々のコンピュータ読み取り可能な記録媒体に格納することにより提供される。
【0014】
ここで、本発明におけるクリティカルエリアの値の演算についての基本概念を図2及び図3に示す。
【0015】
前述のように、従来のクリティカルエリアの計算では、チップ上の配線の形状が任意であることに対応するために、形状についての普遍性が高い手法を用いているので、計算量の増加やアルゴリズムの複雑化を招いている。しかし、一般に、配線形状は、各配線領域において、配線方向への細長い長方形が平行に並んでいる場合が多い。そこで、本発明のクリティカルエリアの計算では、このような配線が相互に平行に配置されるという配線形状の性質を利用する。
【0016】
まず、本発明のクリティカルエリアの演算処理が対象とする配線形状を説明する。図2に示すように、LSIチップ上において、配線は配線方向において同一の又は平行な領域(以下、トラックと言う)上に乗っているものとする。このような配線の形状は、例えばゲートアレイLSIにおいて多く見られる。トラックは、下から順に、I 、II、III 、・・・とされる。トラックの長さは、最大でLとされる。LSIチップ(又は、処理対象の配線領域、以下同じ)の下辺B及び上辺Tは、長さLのトラックであり、その全体に配線が形成されているものとみなす(仮定する)。クリティカルエリアの演算処理時の走査方向は、例えば図2のように定められる。即ち、トラックB、I 、II、III 、・・・Tの順に操作され、同一のトラックにおいてその左側から順に走査される。走査を開始する位置の座標を「0」とする。
【0017】
また、本発明のクリティカルエリアの演算処理においては、デフェクト半径に関する分布確率密度D(r)は、以下の式で表されると(経験則から)仮定する。即ち、
である。ここで、c=(q+1)(p−1)/(p+q)である。更に、説明の簡単のため、以下の説明においては、p=3、q=1とする。
【0018】
いま、図3に示すように、LSIの配線データの中で、3 本の(横方向に)平行な配線があるとする。このとき、中間(2 本目)の配線を含む、1番目及び2番目配線と等距離にある線分と2番目及び3番目配線と等距離にある線分に囲まれた領域に関するクリティカルエリア(図3において太い斜線を付して示す)は簡単に計算でき、
AC=r0 2 L(2/(a3 −b1 )−1/(2a3 −b1 −a2 )−1/(a3 +b2 −2b1 ))
となる。ここで、図3に示すように、Lは当該領域の長さ、a1 及びb1 は最下層の配線nk の各々下端及び上端の座標、a2 及びb2 は中間の配線nj の各々下端及び上端の座標、a3 及びb3 は最上層の配線ni の各々下端及び上端の座標である。
【0019】
本発明のクリティカルエリアの演算処理は、配線データを前述の走査方向に順に走査することにより、図3のような配線の重なり(重なりノード)を検出し、それについて逐次的にクリティカルエリアを近似的計算する。例えば、図2の配線データにおいても、図3の配線の重なりを持つ領域が数多く存在し、これらはその配線の座標を調べることにより容易に検出することができ、かつ、そのクリティカルエリアも前述の式により容易に近似的計算することができる。これにより、基本的に、配線(配線データ)の走査のみでクリティカルエリアの演算処理を行うことができるため、高速に計算することができる。
【0020】
次に、本発明におけるクリティカルエリアの値の演算のために用いる記号等について、図4及び図5により説明する。
【0021】
3本の平行配線の重なり部分(以下「重なりノード」と称す)を
ni nj nk 〔α,β〕
と表現する。ここで、図4に示すように、ni 、nj 及びnk は重なっている配線(3 本以下とする)を表し、α及びβは各々重なり区間の左端の座標及び右端座標を示す。配線の重なり又は重なりノードとは(左側から走査するとして)、相互に平行な2本の配線において、一方の配線の右端の座標が、他方の配線の左端の座標よりも大きい値を持つ場合において、座標値が同一の領域のことである。この場合における重なりノードを、斜線を付して示す。重なりノードのみに着目すると、図3と同様に考えることができ、クリティカルエリアの値の演算処理を容易に行うことができる。
【0022】
また、配線(配線データ)を走査する場合、図5に示すように、配線は、その左側の配線のない区間(左側隣接無配線区間)と一体の区間(領域)として処理することとし、
n(x,α,β)
と記す。ここで、図5に示すように、nは当該配線の配線名、xは当該配線nの左側隣接無配線区間の左端の座標(即ち、左側に隣接する配線の右端の座標)、α及びβは各々当該配線のnの実際の左端の座標及び右端の座標である。
【0023】
次に、ノード操作処理部11が実行する操作(操作処理)について、図6乃至図10により説明する。ノード操作処理部11は、本発明におけるクリティカルエリアの値の演算の基礎となる重なりノード及び配線の操作を実行する。
【0024】
重なりノード及び配線の操作は、基本的には、重なりノードと配線との交叉を順に検出して、逐次的に以下のいずれかの操作を行うことによる。この場合において、重なりノードは、既に重なっている2本(最下層及び中間)の配線により作られる。即ち、ni nj 〔α,β〕である。配線は、新たな3本目(最上層)の配線である。即ち、n(x,μ,ν)である。従って、本発明のクリティカルエリアの値は、前述のように、相互に平行に配置される3本の配線の存在する領域について算出されるが、当該領域を、相互に平行に配置される2本の配線に対して、他の1本の配線の重なりを調べることにより検出する。
【0025】
第1の操作は、図6に示すように、μ<ν<α<β(実線で示す配線nの場合)又はα<β<μ<ν(点線で示す配線nの場合)の場合である。即ち、重なりノードni nj 〔α,β〕と配線n(x,μ,ν)とが重ならない(交わらない)場合である。具体的には、重なりノードである領域(ア)と配線である領域(イ)とが重ならない。この場合、重なりノードni nj 〔α,β〕に変化はない。従って、第1の操作は、実質的には、操作を行わないに等しい。なお、図6において、斜線を付した部分は、重なりノードの領域(範囲)を示す。
【0026】
第2の操作は、図7に示すように、α<μ<β<νの場合である。即ち、重なりノードni nj 〔α,β〕と配線n(x,μ,ν)とが部分的に重なる場合であって、前者が左側に後者が右側に相互に少しづつずれている場合である。この場合、重なりノードが領域(ウ)と領域(エ)とに2分割されるように操作される。即ち、
重なりノード→領域(ウ)∪領域(エ)
であり、換言すれば、
ni nj 〔α,β〕→ni nj 〔α,μ〕∪nni nj 〔μ,β〕
である。
【0027】
第3の操作は、図8に示すように、μ<α<β<νの場合である。即ち、重なりノードni nj 〔α,β〕と配線n(x,μ,ν)とが完全に重なる場合であって、前者を後者が包含する場合(前者よりも後者が広い又は長い)場合である。この場合、重なりノードが領域(オ)とされるように操作される。即ち、
重なりノード→領域(オ)
であり、換言すれば、
ni nj 〔α,β〕→nni nj 〔α,β〕
である。
【0028】
第4の操作は、図9に示すように、μ<α<ν<βの場合である。即ち、重なりノードni nj 〔α,β〕と配線n(x,μ,ν)とが部分的に重なる場合であって、前者が右側に後者が左側に相互に少しづつずれている場合である。この場合、重なりノードが領域(カ)と領域(キ)とに2分割されるように操作される。即ち、
重なりノード→領域(カ)∪領域(キ)
であり、換言すれば、
ni nj 〔α,β〕→nni nj 〔α,ν〕∪ni nj 〔ν,β〕
である。
【0029】
第5の操作は、図10に示すように、α<μ<ν<βの場合である。即ち、重なりノードni nj 〔α,β〕と配線n(x,μ,ν)とが完全に重なる場合であって、前者が後者を包含する場合(前者が後者よりも広い又は長い)場合である。この場合、重なりノードが領域(ク)、領域(ケ)及び領域(コ)とに3分割されるように操作される。即ち、
重なりノード→領域(ク)∪領域(ケ)∪領域(コ)
であり、換言すれば、
ni nj 〔α,β〕→ni nj 〔α,μ〕∪nni nj 〔μ,ν〕∪ni nj 〔ν,β〕
である。
【0030】
次に、算出処理部12が実行するクリティカルエリアの演算処理について、図11により説明する。算出処理部12は、本発明におけるクリティカルエリアの値の演算処理を実行する。
【0031】
前述の重なりノード及び配線の操作に基づいて、クリティカルエリアの演算処理を行う。本発明のクリティカルエリアの演算処理は、図3を参照して説明したように、図3のような3本の配線の作る重なりノードを検出し、それについて逐次的にクリティカルエリアを近似的計算する。従って、前述の操作の結果、図7の領域(エ)、図8の領域(オ)、図9の領域(カ)、図10の領域(ケ)について、重なりノードで3本の配線が重なっているので、これがクリティカルエリアの演算処理の対象となる重なりノードとして検出される。そこで、図11に示すように、ノード操作の結果得られたこれらの領域について、各々についてのクリティカルエリアの演算を図3の式により行う。
【0032】
更に、このクリティカルエリアの演算の後、当該重なりノードの範囲における最下層(即ち、最初に走査により検出された配線)の配線nk を、当該重なりノード即ちクリティカルエリアの演算の処理対象から除外する。即ち、配線データを走査して、2本の配線nk 及びnj の重なりノードを求めた後、3本目の配線ni との交叉を調べて前述のいずれかの操作を行い、3本の配線が重なる重なりノードni nj nk 〔α,β〕を求めて、そのクリティカルエリアの演算を行い、図11に示すように、演算が済んだ領域については演算対象から除くために最下層の配線nk を処理対象から除外する。これにより、2本の配線nj 及びni の重なりノードを求める。この後、配線データを走査することにより検出された新たな配線が検出され、これと前記重なりノードとの交叉を調べて前述のいずれかの操作を行うことを繰り返す。
【0033】
次に、マージ処理部13が実行するマージ処理について、図12により説明する。マージ処理部13は、本発明におけるクリティカルエリアの値の演算を容易にするための重なりノードのマージ処理を実行する。
【0034】
前述のように、クリティカルエリアの演算が済んだ領域を演算対象から除くために、その時点での最下層の配線n2 及びn1 を、順に処理対象から除外していく。この結果、図12に示すように、配線n2 及びn1 を除外した時点で、それまでは分割されていたが、重なり配線が同じで隣接する(連続する)2個の重なりノードが残される場合がある。この場合、これらの2個の重なりノードを
ni nj 〔α,β〕∪ni nj 〔β,γ〕→ni nj 〔α,γ〕
の操作即ちマージ処理を行うことにより、1個の重なりノードとする。これにより、この後の重なりノードと配線との交叉を容易に検出することができる。
【0035】
図13は、クリティカルエリア演算処理フローであり、本発明のクリティカルエリアの演算処理について示す。
【0036】
ノード操作処理部11が、クリティカルエリアの演算処理のための初期設定を行う(ステップS11)。即ち、図2において説明したように、便宜上、LSIチップの下辺及び上辺を配線とみなして、図5に従って、各々、B(0,0,L)及びT(0,0,L)とする。また、ステップS12における走査において、B(0,0,L)を最初の配線とし、T(0,0,L)を最後の配線とし、重なりノードの初期状態をB〔0,L〕とする(図14参照)。更に、クリティカルエリアの値を「0」とする。
【0037】
ノード操作処理部11が、配線データ格納部2から配線データを読み出し、図2に示すように、読み出した配線データについて配線トラックを下から上へ、同一トラック内を左から右へ走査し、即ち、この順に個々の配線のデータを取り出し、図6乃至図10に示すように、当該配線と重なりノード状態の交叉具合を調べ、これに基づいていずれかの操作を行う(ステップS12)。
【0038】
算出処理部12が、前記操作の結果、例えば図7の領域(エ)のような3本の配線が重なる重なりノードが存在するか否かを調べ、存在する場合、当該領域についてのクリティカルエリアの値を図3に示した式により近似的に算出し、その値をクリティカルエリアの値に加算する(ステップS13)。この後、算出処理部12は、図11に示すように、演算が済んだ領域の最下層の配線を処理対象から除外する(ステップS13)。
【0039】
マージ処理部13が、前記配線を除外した結果、図12に示すような重なり配線が同じで隣接する(連続する)2個の重なりノードの存在の有無を調べ、存在する場合、当該2個の重なりノードをマージして、1個の重なりノードとする(ステップS14 )。
【0040】
ノード操作処理部11が、配線データに残りの配線があるか否かを調べ、ある場合、ステップS12以下を繰り返す。ない場合、その時点でのクリティカルエリアの値をクリティカルエリア格納部3に格納する(ステップS15)。
【0041】
次に、実際のLSI上の配線を例にとって、本発明のクリティカルエリアの演算処理について説明する。図14乃至図17は、クリティカルエリア演算説明図である。
【0042】
例えば、図14に示すような配線があるとする。なお、説明の簡単のために、第1及び第2トラックI及びIIのみを示す。例えば、第1トラックI における配線は、第1の配線が1(0,s1,r1)、第2の配線が2(r1,s2,r2)、・・・である。前述のように、ノード操作処理部11は、LSIチップの下辺及び上辺を便宜上の配線とみなして、各々、B(0,0,L)及びT(0,0,L)とし、重なりノードの初期状態をB〔0,L〕とし、クリティカルエリアの値を「0」とする(ステップS11)。
【0043】
次に、ノード操作処理部11は、第1トラックIを走査する。即ち、第1、第2、第3の配線をこの順に読み出して操作する。
【0044】
まず、第1の配線(0,s1,r1)を読み出して、これと初期状態の重なりノードB〔0,L〕との交叉を調べると、図10の場合に該当するので、当該第5の操作を行う。これにより、重なりノードの状態は、3分割されて、
B〔0,L〕→B〔0,s1〕∪1B〔s1,r1〕∪B〔r1,L〕
となる。なお、以下の説明においては、ノード操作の式の左辺の表示を省略することとする。また、例えば、重なりノード1B〔s1,r1〕における「1B」は、当該重なりノードの名前であり、第1の配線「1」と最下層の配線「B」との間における重なりノードであることを示し、数字が2個であることは2本の配線の重なりノードであることを示す(ステップS12)。
【0045】
この時点では、クリティカルエリアの算出処理の対象がなく(ステップS13)、重なりノードのマージ処理の対象がなく(ステップS14)、次の配線が存在するので(ステップS15)、その処理のために、ステップS12以下を繰り返す。以下、図13により説明したように、各々の配線の処理の都度にこの処理を繰り返すが、以下においては説明を省略する。
【0046】
次に、第2の配線(r1,s2,r2)を読み出して、これと重なりノード(B〔r1,L〕)との交叉を調べると、図10の場合に該当するので、当該第5の操作を行う。これにより、重なりノードの状態は、3番目の重なりノードB〔r1,L〕が3分割されて、
B〔0,s1〕∪1B〔s1,r1〕∪B〔r1,s2〕∪2B〔s2,r2〕∪B〔r2,L〕
となる。
【0047】
次に、第3の配線(r2,s3,L)を読み出して、これと重なりノード(B〔r2,L〕)との交叉を調べると、図10の場合に該当するので、当該第5の操作を行う。これにより、重なりノードの状態は、重なりノードB〔r2,L〕が3分割されて、
B〔0,s1〕∪1B〔s1,r1〕∪B〔r1,s2〕∪2B〔s2,r2〕∪B〔r2,s3〕∪3B〔s3,L〕
となる。この状態は、図15から第4の配線を除いたものに等しい。即ち、最下層の配線Bと第1トラックIの配線との間における重なりノードについては、全て調べられている。図15において、各々の重なりノードにその名前を付して示している。
【0048】
次に、ノード操作処理部11は、第2トラックIIを走査する。即ち、第4、第5の配線をこの順に読み出して操作する。この時、第2トラックIIの初期状態の重なりノードとして、1行前の状態、即ち、第1トラックIの走査を終了した時点の重なりノードの状態を引き継ぐ。
【0049】
まず、図15に示すように、第4の配線(0,s4,r4)を読み出して、これと第2トラックIIの初期状態の重なりノードとの交叉を調べる。この場合、図15から判るように、重なりノード1B〔s1,r1〕については、図7の場合に該当するので、当該第2の操作を行う。また、重なりノードB〔r1,s2〕については、図9の場合に該当するので、当該第4の操作を行う。これにより、重なりノードの状態は、
B〔0,s1〕∪1B〔s1,s4〕∪41B〔s4,r1〕∪4B〔r1,r4〕∪B〔r4,s2〕∪2B〔s2,r2〕∪B〔r2,s3〕∪3B〔s3,L〕
となる。この状態を図16(A)に示す。図16(A)において、最下層の配線B及び第1トラックIの配線と第4の配線との間における重なりノードについては、全て調べられている。図16(A)において、各々の重なりノードにその名前を付して示している。
【0050】
ここで、重なりノード41B〔s4,r1〕は、その名前が示すように、第4の配線、第1の配線及び最下層の配線の3本の配線により構成される重なりノードである。そこで、この相互に平行に配置される3本の配線の存在する領域について、図16(B)に示すように、クリティカルエリアを算出する演算を、図3に示す式を用いて行う。
【0051】
この時、図16(B)と図3との比較から判るように、当該配線(この場合、第1の配線)の上下の領域(右下がりの斜線部分)についてのクリティカルエリアの値が、図3に示す式により算出される。最下層の配線Bに接する領域(左下がりの斜線部分)についてのクリティカルエリアの値は、配線Bと第1トラックIとの距離は既知であるので、重なりノード41B〔s4,r1〕における座標値s4及びr1を与えるのみで、容易に算出することができる。
【0052】
この後、前述のように、重なりノード41B〔s4,r1〕における最下層の配線Bを処理対象から除外する。これにより、重なりノードの状態は、
B〔0,s1〕∪1B〔s1,s4〕∪41〔s4,r1〕∪4B〔r1,r4〕∪B〔r4,s2〕∪2B〔s2,r2〕∪B〔r2,s3〕∪3B〔s3,L〕
となる。この状態を図16(C)に示す。図16(C)において、斜線を付した部分は、未だクリティカルエリアの演算の処理対象として残っている領域を示す。一方、斜線を付していない部分は、クリティカルエリアの演算の済んだ領域(重なりノード41B〔s4,r1〕における最下層の配線Bを除外したことに対応する領域)か、又は、配線が走査されていない部分である(ステップS13)。
【0053】
次に、第5の配線(r4,s5,L )を読み出して、これと前述の重なりノードとの交叉を調べる。この場合、図17から判るように、重なりノード2B〔s2,r2〕については、図7の場合に該当するので、当該第2の操作を行う。また、重なりノードB〔r2,s3〕については、図8の場合に該当するので、当該第3の操作を行う。更に、重なりノード3B〔s3,L〕については、図9の場合に該当するので、当該第4の操作を行う。これにより、重なりノードの状態は、
B〔0,s1〕∪1B〔s1,s4〕∪41〔s4,r1〕∪4B〔r1,r4〕∪B〔r4,s2〕∪2B〔s2,s5〕∪52B〔s5,r2〕∪5B〔r2,s3〕∪53B〔s3,L〕
となる。
【0054】
ここで、重なりノード52B〔s5,r2〕及び53B〔s3,L〕は、各々、3本の配線により構成される重なりノードである。そこで、この2個の領域について、クリティカルエリアを算出する演算を、図3に示す式を用いて行う。この時、前述のように、当該配線(この場合、第2及び第3の配線)の上下の領域についてのクリティカルエリアの値、及び、配線Bに接する領域についてのクリティカルエリアの値が算出される。
【0055】
この後、前述のように、重なりノード52B〔s5,r2〕及び53B〔s3,L〕における最下層の配線(この場合は、共に配線B)を処理対象から除外する。これにより、重なりノードの状態は、
B〔0,s1〕∪1B〔s1,s4〕∪41〔s4,r1〕∪4B〔r1,r4〕∪B〔r4,s2〕∪2B〔s2,s5〕∪52〔s5,r2〕∪5B〔r2,s3〕∪53〔s3,L〕
となる。この状態を図17に示す。図17において、斜線を付した部分は、現在のクリティカルエリアの演算の処理対象である領域を示す。一方、斜線を付していない部分は、クリティカルエリアの演算の済んだ領域(第1、第2及び第3の配線の下部の一部領域)か、又は、配線が走査されていない部分である(ステップS13)。
【0056】
以上ようなトラック走査、重なりノード操作及びクリティカルエリアの算出を、最上層の配線Tまで繰り返し実行して(ステップS15)、当該LSIチップ全体のクリティカルエリアを計算する。
【0057】
以上から判るように、本発明の実施の形態の特徴を列記すると以下のとおりである。
(付記1) 配線のクリティカルエリアを算出するクリティカルエリア演算装置におけるクリティカルエリア演算方法であって、
配線データを所定の方向に走査し、
当該走査の結果に基づいて、相互に平行に配置される3本の配線の存在する領域を検出し、
当該検出した領域について、クリティカルエリアを算出する
ことを特徴とするクリティカルエリア演算方法。
(付記2) 前記クリティカルエリアを算出した領域について、その3本の配線の中で前記走査において最初に検出された配線を当該領域から除外する
ことを特徴とする付記1に記載のクリティカルエリア演算方法。
(付記3) 当該処理対象の配線領域の下辺及び上辺は、各々、その全体に形成された配線とみなし、
前記配線は、当該配線とその左側の配線のない区間とを一体の区間として構成される
ことを特徴とする付記1に記載のクリティカルエリア演算方法。
(付記4) 前記相互に平行に配置される3本の配線の存在する領域は、相互に平行に配置される2本の配線に対して、他の1本の配線の重なりを調べることにより検出する
ことを特徴とする付記1に記載のクリティカルエリア演算方法。
(付記5) 前記相互に平行に配置される2本の配線の存在する領域であって、当該配線が同じで隣接する2個の領域をマージして1個の領域とする
ことを特徴とする付記4に記載のクリティカルエリア演算方法。
(付記6) 配線のクリティカルエリアを算出するクリティカルエリア演算装置であって、
配線データを所定の方向に走査し、当該走査の結果に基づいて、相互に平行に配置される3本の配線の存在する領域を検出するノード操作手段と、
当該検出した領域について、クリティカルエリアを算出する算出手段とを備える
ことを特徴とするクリティカルエリア演算装置。
(付記7) 配線のクリティカルエリアを算出するクリティカルエリア演算方法を実現するクリティカルエリア演算プログラムであって、
前記プログラムは、コンピュータに、
配線データを所定の方向に走査させ、
当該走査の結果に基づいて、相互に平行に配置される3本の配線の存在する領域を検出させ、
当該検出した領域について、クリティカルエリアを算出させる
ことを特徴とするクリティカルエリア演算プログラム。
(付記8) 配線のクリティカルエリアを算出するクリティカルエリア演算方法を実現するプログラムを記録するプログラム記憶媒体であって、
前記プログラムは、コンピュータに、
配線データを所定の方向に走査させ、
当該走査の結果に基づいて、相互に平行に配置される3本の配線の存在する領域を検出させ、
当該検出した領域について、クリティカルエリアを算出させる
ことを特徴とするプログラム記録媒体。
【0058】
【発明の効果】
以上説明したように、本発明によれば、クリティカルエリア演算方法において、任意の形状をとる配線についての普遍性が高い手法を用いることなく、配線方向への細長い長方形が平行に並んでいる形状の配線領域を検出して、この領域についてのみ、この領域の長さ及び座標を用いて、そのクリティカルエリアACを算出する。これにより、配線データを走査するのみで、比較的簡単なアルゴリズムで、短い計算時間で、クリティカルエリアACを近似的に計算することができ、ショート故障頻度等の指標とすることができる。また、比較的簡単なアルゴリズムであるので、コンピュータへ容易に実装することができる。
【図面の簡単な説明】
【図1】クリティカルエリア演算装置構成図である。
【図2】クリティカルエリア演算説明図である。
【図3】クリティカルエリア演算説明図である。
【図4】クリティカルエリア演算説明図である。
【図5】クリティカルエリア演算説明図である。
【図6】クリティカルエリア演算説明図である。
【図7】クリティカルエリア演算説明図である。
【図8】クリティカルエリア演算説明図である。
【図9】クリティカルエリア演算説明図である。
【図10】クリティカルエリア演算説明図である。
【図11】クリティカルエリア演算説明図である。
【図12】クリティカルエリア演算説明図である。
【図13】クリティカルエリア演算処理フローである。
【図14】クリティカルエリア演算説明図である。
【図15】クリティカルエリア演算説明図である。
【図16】クリティカルエリア演算説明図である。
【図17】クリティカルエリア演算説明図である。
【図18】半径rのデフェクトに対する(配線ショートの)クリティカルエリアを示す概念図である。
【符号の説明】
1 演算処理部
2 配線データ格納部
3 クリティカルエリア格納部
11 ノード操作処理部
12 算出処理部
13 マージ処理部
Claims (3)
- 配線のクリティカルエリアを算出するクリティカルエリア演算装置におけるクリティカルエリア演算方法であって、
配線データを所定の方向に走査し、
当該走査の結果に基づいて、相互に平行に配置される3本の配線の存在する領域を検出し、
当該検出した領域について、前記3本の配線における、2番目配線である中間の配線n j を含む、1番目配線及び前記2番目配線と等距離にある線分と前記2番目配線及び3番目配線と等距離にある線分に囲まれた領域に関して、Lを当該領域の長さ、a 1 及びb 1 を前記1番目配線である最下層の配線n k の各々下端及び上端の座標、a 2 及びb 2 を前記中間の配線n j の各々下端及び上端の座標、a 3 及びb 3 を前記3番目配線である最上層の配線n i の各々下端及び上端の座標とした場合に、AC=r 0 2 L(2/(a 3 −b 1 )−1/(2a 3 −b 1 −a 2 )−1/(a 3 +b 2 −2b 1 ))により、クリティカルエリアACを算出する
ことを特徴とするクリティカルエリア演算方法。 - 前記クリティカルエリアを算出した領域について、その3本の配線の中で前記走査において最初に検出された配線を当該領域から除外する
ことを特徴とする請求項1に記載のクリティカルエリア演算方法。 - 前記相互に平行に配置される3本の配線の存在する領域は、相互に平行に配置される2本の配線に対して、他の1本の配線の重なりを調べることにより検出する
ことを特徴とする請求項1に記載のクリティカルエリア演算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002132270A JP4071537B2 (ja) | 2002-05-08 | 2002-05-08 | クリティカルエリア演算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002132270A JP4071537B2 (ja) | 2002-05-08 | 2002-05-08 | クリティカルエリア演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003332427A JP2003332427A (ja) | 2003-11-21 |
JP4071537B2 true JP4071537B2 (ja) | 2008-04-02 |
Family
ID=29695973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002132270A Expired - Fee Related JP4071537B2 (ja) | 2002-05-08 | 2002-05-08 | クリティカルエリア演算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4071537B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9962104B2 (en) | 2011-04-14 | 2018-05-08 | Koninklijke Philips N.V. | Stress-measuring device and method |
-
2002
- 2002-05-08 JP JP2002132270A patent/JP4071537B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9962104B2 (en) | 2011-04-14 | 2018-05-08 | Koninklijke Philips N.V. | Stress-measuring device and method |
Also Published As
Publication number | Publication date |
---|---|
JP2003332427A (ja) | 2003-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7512921B2 (en) | Method and apparatus for designing integrated circuit enabling the yield of integrated circuit to be improved by considering random errors | |
JP4711801B2 (ja) | 回路設計システム及び回路設計プログラム | |
JP2005183907A (ja) | パターン解析方法及びパターン解析装置 | |
JP2011124423A (ja) | セルライブラリ、レイアウト方法およびレイアウト装置 | |
JP2013037451A (ja) | レイアウト設計装置、レイアウト設計方法およびレイアウト設計プログラム | |
US20070245286A1 (en) | Wiring layout apparatus, wiring layout method, and wiring layout program for semiconductor integrated circuit | |
US7356790B2 (en) | Device, method and program for estimating the number of layers BGA component mounting substrate | |
JP2006235705A (ja) | 半導体集積回路の自動配線方法と装置及びプログラムと半導体集積回路 | |
JP2006019690A (ja) | パターン解析方法及びパターン解析装置並びに歩留まり算出方法及び歩留まり算出装置 | |
JP4071537B2 (ja) | クリティカルエリア演算方法 | |
JP4429593B2 (ja) | 半導体装置のレイアウト検証方法 | |
US20020024148A1 (en) | Semiconductor device, designing method and designing device thereof | |
JP4037944B2 (ja) | 配線経路決定方法および遅延推定方法 | |
JP2010113475A (ja) | 故障解析容易化設計を行うための回路設計装置 | |
JP2005149273A (ja) | 半導体集積回路のフロアプラン装置及びフロアプラン方法 | |
JP2006165091A (ja) | 半導体集積装置、その設計方法、設計装置、およびプログラム | |
JP2008101925A (ja) | 回路設計プログラム及び回路設計システム | |
US7685553B2 (en) | System and method for global circuit routing incorporating estimation of critical area estimate metrics | |
JP5087900B2 (ja) | シミュレーションプログラムおよびシミュレーション装置 | |
JP4490006B2 (ja) | 自動配線方法,自動配線処理装置および自動配線処理プログラム | |
US7168053B1 (en) | Method and system for implementing an analytical wirelength formulation | |
JP2006294707A (ja) | 半導体集積回路の配線方法および半導体集積回路 | |
JP2010186304A (ja) | 半導体レイアウトシステム、方法、及び、プログラム | |
US8413092B2 (en) | Circuit design supporting apparatus and circuit design supporting method | |
JP5501102B2 (ja) | 配線設計装置及び配線設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071009 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071207 |
|
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: 20080115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080117 |
|
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: 20110125 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110125 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120125 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130125 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130125 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140125 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |