(57)【特許請求の範囲】
【請求項１】
半導体集積回路内のタイミング検証対象回路を構成する複数のセルを示すパスデータと、各セルの標準偏差データを、格納手段から取り出し、
前記パスデータと各セルの標準偏差データを用いて、前記複数のセルの標準偏差の二乗和を計算し、
前記二乗和の平方根を計算し、
前記複数のセルの相関係数の最大値ｒmax と、セル間の相関を考慮すべき近接セルの最大数ｎを、前記格納手段から取り出し、
0004536647.tif 000035
なる重みを計算し、
前記平方根に前記重みを乗算して、前記対象回路の遅延の標準偏差を求め、
各セルの遅延データを前記格納手段から取り出し、
前記パスデータと各セルの遅延データを用いて、前記対象回路の遅延を計算し、
前記対象回路の遅延の標準偏差と、前記対象回路の遅延を用いて、タイミング検証のための評価値を計算し、
タイミング検証の閾値を前記格納手段から取り出し、
前記評価値を前記閾値と比較してタイミング検証を行い、
検証結果を出力する
処理をコンピュータに実行させるためのプログラム。
【請求項２】
半導体集積回路内のタイミング検証対象回路を構成する複数のセルを示すパスデータと、各セルの標準偏差データを、格納手段から取り出し、
前記パスデータと各セルの標準偏差データを用いて、前記複数のセルの標準偏差の二乗和を計算し、
前記二乗和の平方根を計算し、
セル間の相関を考慮すべき近接セルを、標準偏差が互いに近いもの同士からなる複数の集合に分類して、それぞれの集合の要素数の最大値ｍを求め、前記複数のセルの相関係数の最大値ｒmax を前記格納手段から取り出し、
0004536647.tif 000036
なる重みを計算し、
前記平方根に前記重みを乗算して、前記対象回路の遅延の標準偏差を求め、
各セルの遅延データを前記格納手段から取り出し、
前記パスデータと各セルの遅延データを用いて、前記対象回路の遅延を計算し、
前記対象回路の遅延の標準偏差と、前記対象回路の遅延を用いて、タイミング検証のための評価値を計算し、
タイミング検証の閾値を前記格納手段から取り出し、
前記評価値を前記閾値と比較してタイミング検証を行い、
検証結果を出力する
処理をコンピュータに実行させるためのプログラム。
【請求項３】
半導体集積回路内のタイミング検証対象回路を構成するｎ個のセルを示すパスデータと、各セルの標準偏差σi （ｉ＝１，２，．．．，ｎ）と、ｉ番目のセルとｊ番目のセルの間の相関係数ｒij（ｊ＝１，２，．．．，ｎ，ｒii＝１，ｒij＝ｒji）を、格納手段から取り出し、
標準偏差σi とσj が、
0004536647.tif 000037
なる関係にあるとき、相関係数ｒijを０に置き換えて、
0004536647.tif 000038
なる重みを計算し、
前記パスデータが示すｎ個のセルの標準偏差σi に前記重みを乗算して、ｎ個のセルの重み付き標準偏差Γi を求め、
ｎ個のセルの重み付き標準偏差Γi の二乗和を計算し、
前記二乗和の平方根を、前記対象回路の遅延の標準偏差σとして求め、
各セルの遅延データを前記格納手段から取り出し、
前記パスデータと各セルの遅延データを用いて、前記対象回路の遅延を計算し、
前記対象回路の遅延の標準偏差σと、前記対象回路の遅延を用いて、タイミング検証のための評価値を計算し、
タイミング検証の閾値を前記格納手段から取り出し、
前記評価値を前記閾値と比較してタイミング検証を行い、
検証結果を出力する
処理をコンピュータに実行させるためのプログラム。
【請求項４】
前記プログラムは、前記対象回路においてｉ番目のセルとｊ番目のセルが互いに並列の関係であることを前記パスデータが示しているとき、前記計算式における相関係数ｒijを−ｒijに置き換えて、前記対象回路の遅延の標準偏差σを求める処理を、前記コンピュータに実行させることを特徴とする請求項３記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計において回路のタイミング解析を行う装置、及びそのプログラムに関する。
【背景技術】
【０００２】
従来の半導体集積回路の設計で用いられる静的タイミング解析（ＳＴＡ）では、図１８に示すようなゲート回路の遅延の平均値μと標準偏差σを用いて、ばらつきを含めた遅延の最大値と最小値の範囲で回路が動作するかどうかを検証している。例えば、３σモデルの場合は、最大値μ＋３σと最小値μ−３σの範囲でタイミング検証を行っている。しかし、実際の回路ではゲート回路が１つということはほとんどないので、複数のゲート回路が組み合わされた場合のタイミング検証を行う必要がある。
【０００３】
従来のＳＴＡにおいて、図１９に示すように、複数のゲートが並んでいる回路の遅延のばらつきマージン（ここでいう標準偏差）は、それぞれのゲート回路（素子）の標準偏差σ1 ，σ2 ，σ3 ，σ4 ，．．．を用いて、次式により回路全体の標準偏差を算出している。
σ＝σ1 ＋σ2 ＋σ3 ＋σ4 ＋・・・      （１）
例えば、すべての素子の標準偏差が等しいとすると、ｎ個の素子の遅延はσ＝ｎσ1 となる。
【０００４】
また、近年の統計的ＳＴＡでは、次式により回路全体の標準偏差を算出することも考えられている（例えば、下記の特許文献１を参照）。
【０００５】
【数１】
0004536647.tif 000002
【０００６】
例えば、すべての素子の標準偏差が等しいとすると、ｎ個の素子の遅延は次式のようになる。
【０００７】
【数２】
0004536647.tif 000003
【特許文献１】特開２００３−３１６８４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来のタイミング解析には、次のような問題がある。
回路設計時のタイミング検証では、複数の素子のばらつきを単純に扱っているが、実際のばらつきはこのような単純なものではなく、例えば、素子Ａの遅延が平均値より大きくなるときは、大抵、素子Ｂの遅延も大きくなるというような相関関係が存在する。このため、単純なばらつき見積もりによれば、タイミングが過剰マージンや過少マージンになり、無駄が増えたり、回路が動作しなくなったりする可能性がある。
【０００９】
相関を含めたタイミング検証では、一般に、素子Ａと素子Ｂの間の相関係数ｒABを用いて、ｒABσA σB という項が分散に効いてくる。したがって、素子Ａ、Ｂ、Ｃ等からなる回路の分散は、次式のようになる。
σ2 ＝σA2＋σB2＋・・・＋２ｒABσA σB 
＋２ｒACσA σC ＋２ｒBCσB σC ＋・・・      （４）
１つ以上の素子からなるセルを１つの回路素子とみなして、セルＡ、Ｂ、Ｃ等からなる回路のタイミング検証を行う場合も、上式と同様の分散が用いられる。しかしながら、近年、回路設計に用いられるセルの種類は多種多様になっているため、セルの組み合わせは膨大な数になる。したがって、それらの組み合わせのすべてについて実験的に相関を調べたり、大量のパスについてコンピュータで相関を計算したりすることは、非常に多くの時間を要し、現実的ではない。さらに、数学的に正確であることよりも、半導体を製造する上での効率向上、性能向上を図ることの方が重要である。
【００１０】
本発明の課題は、半導体集積回路の設計において、セル遅延のばらつきをより正確に反映しながら、効率よくタイミング解析を行うことである。
【課題を解決するための手段】
【００１１】
図１は、本発明の第１および第２のタイミング解析装置の原理図である。図１のタイミング解析装置は、格納手段１０１、標準偏差計算手段１０２、遅延計算手段１０３、評価値計算手段１０４、検証手段１０５、および出力手段１０６を備える。
【００１２】
第１のタイミング解析装置において、格納手段１０１は、半導体集積回路内のタイミング検証対象回路を構成する複数のセルを示すパスデータと、各セルの遅延データおよび標準偏差データと、対象回路の遅延の標準偏差を計算するための重みと、タイミング検証の閾値とを格納する。
【００１３】
標準偏差計算手段１０２は、パスデータと各セルの標準偏差データを用いて、複数のセルの標準偏差の二乗和を計算し、その二乗和の平方根を計算し、得られた平方根に重みを乗算して、対象回路の遅延の標準偏差を求める。遅延計算手段１０３は、パスデータと各セルの遅延データを用いて、対象回路の遅延を計算する。
【００１４】
評価値計算手段１０４は、対象回路の遅延の標準偏差と対象回路の遅延を用いて、タイミング検証のための評価値を計算し、検証手段１０５は、評価値を閾値と比較してタイミング検証を行う。出力手段１０６は、検証結果を出力する。
【００１５】
第１のタイミング解析装置によれば、対象回路を構成するセルの標準偏差の二乗和の平方根をそのまま対象回路の標準偏差として用いるのではなく、その平方根に所定の重みを乗算して対象回路の標準偏差が算出される。したがって、簡単な計算で対象回路の標準偏差を（１）式と（２）式の中間の値に設定することができ、重みを調整することにより、真の値により近いばらつきを求めることが可能になる。
【００１６】
第２のタイミング解析装置において、格納手段１０１は、半導体集積回路内のタイミング検証対象回路を構成するｎ個のセルを示すパスデータと、各セルの遅延データおよび標準偏差σi （ｉ＝１，２，．．．，ｎ）と、ｉ番目のセルとｊ番目のセルの間の相関係数ｒij（ｊ＝１，２，．．．，ｎ，ｒii＝１，ｒij＝ｒji）と、タイミング検証の閾値とを格納する。
【００１７】
標準偏差計算手段１０２は、パスデータが示すｎ個のセルの標準偏差σi に、
0004536647.tif 000004
【００１８】
なる重みを乗算して、ｎ個のセルの重み付き標準偏差Γi を求める。そして、それらの二乗和を計算し、得られた二乗和の平方根を、対象回路の遅延の標準偏差σとして求める。遅延計算手段１０３は、パスデータと各セルの遅延データを用いて、対象回路の遅延を計算する。
【００１９】
評価値計算手段１０４は、対象回路の遅延の標準偏差σと対象回路の遅延を用いて、タイミング検証のための評価値を計算し、検証手段１０５は、評価値を閾値と比較してタイミング検証を行う。出力手段１０６は、検証結果を出力する。
【００２０】
第２のタイミング解析装置によれば、対象回路を構成するセルの標準偏差の二乗和の平方根をそのまま対象回路の標準偏差として用いるのではなく、それらのセルの重み付き標準偏差の二乗和の平方根が、対象回路の標準偏差として算出される。したがって、簡単な重み付け処理により対象回路の標準偏差を（１）式と（２）式の中間の値に設定することができ、重みを調整することにより、真の値により近いばらつきを求めることが可能になる。
【００２１】
格納手段１０１は、例えば、後述する図１６のメモリ１６０２または外部記憶装置１６０５に対応し、標準偏差計算手段１０２、遅延計算手段１０３、評価値計算手段１０４、および検証手段１０５は、例えば、図１６のＣＰＵ（中央処理装置）１６０１に対応する。また、出力手段１０６は、例えば、図１６の出力装置１６０４に対応する。
【発明の効果】
【００２２】
本発明によれば、半導体集積回路の設計・製造において、従来のツールやシステムを変更することなく、タイミングマージンをより適切な値に設定でき、回路の動作不良を起こすことなく、性能向上およびコスト削減を実現することができる。
【００２３】
また、昨今のコンピュータの処理能力の向上やツールの開発に伴い、その処理能力に応じて、より精度の良いマージン設定を行うことができる。
さらに、従来よりも精度の良いマージンを算出するツールの開発を行うことが可能になる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
まず、本実施形態で用いる相関係数について考察する。遅延の測定対象として複数種類のセルが存在する場合、それらのセルの遅延の和の測定や差の測定を行ったときの平均値や標準偏差は、数式で表現することができる。
【００２５】
図２に示すようなセルＡとセルＢの遅延をそれぞれＮ回ずつ測定する場合、ｈ回目の測定で得られた測定値をＡh 、Ｂh と表すことにする。例えば、同じウエハ上に並んだＮ個のチップのそれぞれについて同じ位置のセルを測定する場合が、Ｎ回の測定に対応する。この場合、各セルの遅延の平均値μA 、μB は、次式で表される。
【００２６】
【数３】
0004536647.tif 000005
【００２７】
次に、和の測定を考える。図２のようにセルＡとセルＢを直列に接続したときのｈ回目（ｈ＝１，２，．．．，Ｎ）の測定における遅延はＡh ＋Ｂh と表され、平均値はμ＝μA ＋μB で表される。ここで、「平均値からの測定値のずれ」を成分に持つ、次のようなベクトルを考える。
【００２８】
【数４】
0004536647.tif 000006
【００２９】
以下では、このようなベクトルをばらつきベクトルと呼ぶことにする。このばらつきベクトルは、図３に示すように、遅延の平均値をベクトル原点３０１とし、平均値からのずれを成分とする、Ｎ次元ベクトルである。和の測定についてばらつきベクトルを求めると、
0004536647.tif 000007
【００３０】
となり、２つのベクトルの和の形でそのまま書き表せることがわかる。標準偏差は、その定義より、ばらつきベクトルの大きさである。
【００３１】
【数５】
0004536647.tif 000008
【００３２】
ここで、和の測定についての標準偏差σを調べてみると、次式が得られる。
【００３３】
【数６】
0004536647.tif 000009
【００３４】
したがって、２つの測定対象に対する、それぞれの標準偏差とばらつきベクトルの間の角度θを用いて、全体の標準偏差を表すことができる。
上式のｃｏｓθは、セルＡとセルＢの間のばらつきの関係を表しているため、相関係数と呼ばれる。
ｒAB＝ｃｏｓθ      （９）
図４に示すように、θが０に近い状態、つまり、２つのベクトルの向きが互いにそろう方向にある場合、Ｎ回の測定結果を２次元平面にプロットすると、図５のようになる。横軸および縦軸は、それぞれセルＡおよびセルＢについての測定値を表す。
【００３５】
図５のプロット結果では、Ｎ回の測定結果が領域５０１内に分布している。この結果は、ある１回の測定においてセルＡの測定値が平均値からずれたら、それと同じく、セルＢの測定値も平均値からずれる傾向にあることを示しており、２つのセル間のばらつきの関係が強いことがわかる。
【００３６】
この関係を素子の遅延にたとえると、素子のゲート長が設計値よりも大きくなった場合、チップ上のすべての素子のゲート長が同様に大きくなるので、遅延が平均値よりも大きくなるときは、他の素子の遅延も大きくなる傾向にある、ということになる。特に、ｒAB＝１（θ＝０）の場合を正の完全相関と呼ぶ。
【００３７】
次に、図６に示すように、θがπに近い状態、つまり、２つのベクトルの向きが反対向きに近くなる場合、Ｎ回の測定結果は図７のようになる。図７のプロット結果では、Ｎ回の測定結果が領域７０１内に分布している。この結果は、ある１回の測定においてセルＡの測定値が平均値からずれたら、それと反対に、打ち消す方向にセルＢの測定値が平均値からずれる傾向にあることを示している。したがって、この場合も２つのセル間のばらつきの関係が強いと言える。特に、ｒAB＝−１（θ＝π）の場合を負の完全相関と呼ぶ。
【００３８】
次に、図８に示すように、θがπ／２に近い状態、つまり、２つのベクトルが直交に近くなる場合、Ｎ回の測定結果は図９のようになる。図９のプロット結果では、Ｎ回の測定結果が領域９０１内に分布している。この結果は、ある１回の測定においてセルＡの測定値が平均値からずれたら、全体的に見て、セルＢの測定値はその方向にずれる傾向を持たない、つまり、セルＡのずれ方とは関係なくランダムにばらつくことを示している。
【００３９】
この関係は、例えば、トランジスタの拡散のばらつきにより遅延が変化する場合に、その遅延のばらつき方は素子に依存する傾向等がないことに対応している。特に、ｒAB＝０（θ＝π／２）の場合を無相関と呼ぶ。
【００４０】
以上のような相関係数ｒABを用いて、ｎ個のセルＡ，Ｂ，Ｃ，Ｄ，．．．からなる回路の遅延の標準偏差σを考える。
【００４１】
【数７】
0004536647.tif 000010
【００４２】
交換関係ｒAB＝ｒBAは明らかに成り立ち、自己相関は同じばらつきベクトル同士の相関関係となるため、θ＝０⇔ｒAA＝１等であることがわかる。したがって、自己相関の場合も含めて相関係数を用いてまとめると、分散を次のように表せることがわかる。
【００４３】
【数８】
0004536647.tif 000011
【００４４】
ただし、上式では、便宜的に各セルの標準偏差をσi 、σj （ｉ，ｊ＝１，２，．．．，ｎ）で表し、セルｉとセルｊの相関係数をｒijで表して、セルＡ，Ｂ，Ｃ，Ｄ，．．．に関する総和をｉ、ｊに関する総和に置き換えている。この式によれば、対角成分がすべて１で、非対角成分が−１以上１以下の実対称行列（相関行列）ｒijを計算することにより、回路全体のばらつきを求めることができる。
【００４５】
次に、差の測定を考える。例えば、図１０のようにセルＡとセルＢを並列に接続したときのｈ回目（ｈ＝１，２，．．．，Ｎ）の測定における出力の遅延差は、Ａh −Ｂh と表され、平均値はμ＝μA −μB で表される。この場合も、和の測定の場合と同様に、標準偏差σについて次式が得られる。
【００４６】
【数９】
0004536647.tif 000012
【００４７】
また、セルＡとセルＢの測定が差の関係にある場合は、相関係数ｒABを−ｒABに置き換えれば、和の測定の場合と同じ形式の定式化が可能である。結局、和の測定と差の測定の両方を含めて、次のような一般式を用いることができる。
【００４８】
【数１０】
0004536647.tif 000013
【００４９】
従来のタイミング解析では、この一般式に含まれるすべてのｒijを１に置き換えていることが、次のような式の変形により理解できる。
【００５０】
【数１１】
0004536647.tif 000014
【００５１】
つまり、すべてのばらつきを正の完全相関とみなして、タイミング検証を行っている。この方法はマージンをとるという意味では十分である。しかし、近年では、技術が進歩し、素子が微細化して、相関のあるばらつき（ゲート長等、システムばらつきと呼ばれるもの）よりも、相関のないばらつき（チップ内における同じ素子の遅延のばらつき等）が大きくなってきている。このため、すべてのばらつきを正の完全相関とみなすことは、過剰マージンを設定していることになり、設計の困難さ、チップサイズの無駄な増大、およびコストの増加を招いている。
【００５２】
また、統計的ＳＴＡでよく用いられる方法は、ｒii＝１、ｒij＝０（ｉ≠ｊ）と置くことに相当する。実際に、（１４）式のｒijを単位行列δijに置き換えてみると、次式が得られる。
【００５３】
【数１２】
0004536647.tif 000015
【００５４】
つまり、それぞれのセル間の相関をすべて無相関とみなして、ばらつきを計算している。この方法では、相関が少しでもあるような場合に、マージンが足りない状態になる。実際、半導体製造工程において生じるばらつきは、完全にランダムなばらつきだけではないので、過少マージン設計になってしまい、歩留まりの低下等の原因になる。
【００５５】
理想的には、相関行列ｒijを完全に見積もり、回路の精密な標準偏差を求めることが望ましい。しかしながら、前述したように、すべての素子間の相関を前もって計測・算出することは大変困難であり、相関行列が決められたとしても、大規模回路になると、その計算時間は膨大なものになる。
【００５６】
そこで、本実施形態では、タイミングマージンを過少にならない程度に適度に狭め、ばらつきを現実的な計算時間で算出できる方法を採用する。そのために、次のような重み係数ｋijを導入する。
【００５７】
【数１３】
0004536647.tif 000016
【００５８】
この重み係数を用いると、（１３）式は次のように書き換えられる。
【００５９】
【数１４】
0004536647.tif 000017
【００６０】
ここで、ｋijを用いて重み付けされた標準偏差Γj を、
【００６１】
【数１５】
0004536647.tif 000018
【００６２】
により定義すると、（１７）式はさらに次のように書き換えられる。
【００６３】
【数１６】
0004536647.tif 000019
【００６４】
（１９）式によれば、回路全体の分散は、各セルの重み付けされた標準偏差についての２乗和で表される。
次に、重み係数ｋijの性質について述べる。
［１］２つの標準偏差σi 、σj が大きく異なる場合、ｋijは次のように見積もられる。
【００６５】
【数１７】
0004536647.tif 000020
【００６６】
したがって、ばらつきに対して相関がほとんど効かなくなる。
［２］２つの標準偏差σi 、σj についての相加平均と相乗平均の関係（相加平均≧相乗平均）から、｜ｋij｜≦｜ｒij｜≦１となり、｜ｋij｜→｜ｒij｜とすれば、マージンをとった十分な形でばらつきを算出することができる。ちなみに、｜ｋij｜＝｜ｒij｜の等号が成り立つのは、２つの標準偏差が等しいときのみである。
【００６７】
そこで、ｋijを２つの標準偏差について展開すると、次のようになる。
【００６８】
【数１８】
0004536647.tif 000021
【００６９】
ここで、２つの標準偏差が等しい場合からの差分を評価するため、σ＝σi ＝σj 、ｄσ＝ｄσi 、ｄσj ＝０と置くと、
【００７０】
【数１９】
0004536647.tif 000022
【００７１】
となる。
［３］２つの標準偏差σi 、σj の差が２次のオーダで無視できる程度であれば、（２２）式より、重み係数ｋijは相関係数ｒijと等しくなる。
【００７２】
このような重み係数ｋijの性質から、２つの標準偏差の差が十分に小さいと仮定することで、（１９）式におけるｋijをｒijに置き換えた計算方法が導出される。この場合、（１８）式および（１９）式は、次のように置き換えられる。
【００７３】
【数２０】
0004536647.tif 000023
【００７４】
この方法によれば、（１８）式および（１９）式より少ない計算量で、回路の標準偏差を従来の（１）式と（２）式の中間の値に設定することができ、真の値により近いばらつきを求めることが可能になる。この計算方法には、以下のようなバリエーションが含まれる。
（ａ）（２３）式におけるσj の係数を、セルの種類に関係なく一律の重みＸに置き換え、次式により標準偏差を計算する。
【００７５】
【数２１】
0004536647.tif 000024
【００７６】
（ｂ）様々な条件での相関を実験的に測定して、複数種類に分類したセルの相関係数の最大値をｒmax と見積もり、相関係数を一律の値ｒmax に置き換えて標準偏差を計算する。
（ｃ）セル間の相関が効く距離を実験的に測定し、その範囲に存在する近接セルの最大数をｎ個として、それらのセル間にのみ相関を導入する。
（ｄ）上記（ａ）および（ｂ）の方法を組み合わせて、（２３）式におけるｒij（ｉ≠ｊ）をｒmax に置き換え、次式により標準偏差を計算する。
【００７７】
【数２２】
0004536647.tif 000025
【００７８】
（ｅ）ｎ個のセルを、標準偏差が互いに近いもの同士からなる複数の集合に分類し、それらの集合の要素数の最大値ｍを用いて、次式により標準偏差を計算する。
【００７９】
【数２３】
0004536647.tif 000026
【００８０】
（ｆ）タイミング検証の対象となる回路全体の評価値が、セルｉとセルｊについては２つの測定値の差となる場合、相関係数ｒijを−ｒijに置き換えて標準偏差を計算する。
（ｇ）上記（２３）式および（２４）式により標準偏差を計算する。ただし、（ｆ）と同様に、タイミング検証の対象が測定値の差となる場合は、相関係数ｒijを−ｒijに置き換える。
（ｈ）上記（ｂ）〜（ｇ）において、２つの標準偏差σi 、σj の差が大きくて、
【００８１】
【数２４】
0004536647.tif 000027
【００８２】
となる場合、ｒij，ｒmax ＝０と置いて標準偏差を計算する。
上記（ａ）〜（ｅ）の方法によれば、（２３）式および（２４）式がより簡単な計算式に置き換えられるため、タイミング解析に要する計算時間が短縮されるとともに、プログラムの開発が容易になる。
【００８３】
上記（ｆ）の方法によれば、直列に接続されたセルのみならず、並列に接続されたセルも同じ計算式で扱うことが可能になる。
上記（ｇ）の方法によれば、（ａ）〜（ｅ）の方法と比較して、より詳細な相関を導入することができるため、真の値により近いばらつきを求めることが可能になる。
【００８４】
上記（ｈ）の方法によれば、ほとんど相関がないセル間の相関係数を０に設定することで、より正確かつ簡便にばらつきを求めることが可能になる。
次に、図１１から図１５までを参照しながら、上述した計算方法に基づくタイミング解析について説明する。
【００８５】
図１１は、実施形態のタイミング解析装置が行うタイミング解析の一例を示すフローチャートである。後述するように、タイミング解析装置は、例えば、解析プログラムを実行するコンピュータを用いて構成される。
【００８６】
タイミング解析装置は、まず、タイミング解析の対象となる複数のセルの配置およびパターン配線を行って、ネットリスト１１１１を生成する（ステップ１１０１）。次に、生成されたネットリスト１１１１からタイミング検証の対象となる１つ以上のパスを抽出し、パスデータ１１１２を生成する（ステップ１１０２）。
【００８７】
そして、パスデータ１１１２と各セルの遅延ばらつきデータ（標準偏差データ）１１１３を用いて、パスばらつき処理を行い、タイミング検証の対象となる回路の標準偏差を計算する（ステップ１１０３）。また、パスデータ１１１２と各セルの遅延データ１１１４を用いて、パス遅延処理を行い、各パスの遅延を計算する（ステップ１１０４）。
【００８８】
次に、パスばらつき処理で算出された標準偏差とパス遅延処理で算出されたパス毎の遅延を用いて、タイミング検証を行う（ステップ１１０５）。ここでは、タイミング検証の目的に応じた評価値が計算され、それを所定の閾値と比較することで、タイミング検証が行われる。検証結果がＮＧであれば、ステップ１１０１以降の処理を繰り返し、検証結果がＯＫであれば、処理を終了する。
【００８９】
図１２は、図１１のステップ１１０３で行われるパスばらつき処理のフローチャートである。図１２のステップ１２０１、１２０２、１２０３、および１２０５の処理は、上記（ｂ）、（ｈ）、（ｆ）、および（ｃ）にそれぞれ対応し、ステップ１２０４および１２０６の処理は、上記（ｄ）、（ｅ）、または（ｇ）に対応する。
【００９０】
タイミング解析装置は、まず、セル間の相関を実験的に測定して、セルを複数種類に分類し、それぞれの種類におけるセル間の相関係数の最大値ｒmax を算出し、種類別相関係数データ１２１１を生成する（ステップ１２０１）。ここでは、例えば、多数の素子を搭載した評価用チップであるＤＭＡ（Device Matrix Array ）を用いて、セル間の相関が測定される。
【００９１】
また、測定結果からセル間の相関が効く距離を算出し、その距離に応じたセルの最大段数を表す最大段数データ１２１２を生成する（ステップ１２０５）。
次に、種類別相関係数データ１２１１、パスデータ１１１２、および各セルの遅延ばらつきデータ１１１３を用いて、相関係数の調整（ステップ１２０２）および反転（ステップ１２０３）を行う。
【００９２】
ステップ１２０２では、対象回路内の２つのセルのすべての組み合わせについて、その標準偏差σi 、σj が（２８）式の条件を満たすか否かを判定する。そして、その条件を満たす場合は対応する相関係数ｒijを０に変更し、条件を満たさない場合は、相関係数ｒijを変更しない。
【００９３】
ステップ１２０３では、対象回路内の２つのセルのすべての組み合わせについて、和の測定（直列）の関係にあるか、差の測定（並列）の関係にあるかを判定する。そして、和の測定の場合は相関係数ｒijを変更せず、差の測定の場合は相関係数ｒijを−ｒijに変更する。
【００９４】
図１３は、このような処理が適用される回路の例を示している。この回路は、２個のフリップフロップ（ＦＦ）１３０１、１３０２、データパス１３０３、およびクロックパス１３０４からなり、データパス１３０３およびクロックパス１３０４は、それぞれ複数のセルを含んでいる。フリップフロップ１３０１とフリップフロップ１３０２の間のタイミング検証において、並列の関係にあるデータパス１３０３内のセルｉとクロックパス１３０４内のセルｊの相関係数ｒijが、−ｒijに置き換えられる。
【００９５】
次に、変更後の相関係数データと、パスデータ１１１２、各セルの遅延ばらつきデータ１１１３、および最大段数データ１２１２を用いて、各セルの標準偏差を重み付けし、各セルの重み付き遅延ばらつきデータ１２１３を生成する（ステップ１２０４）。そして、そのデータ１２１３を用いて対象回路の標準偏差を計算する（ステップ１２０６）。
【００９６】
ステップ１２０４では、上記（ｄ）、（ｅ）、または（ｇ）のいずれかに従って、セルの標準偏差が重み付けされる。（ｄ）を適用する場合は、対象回路内のセルの総数がｎとして用いられる。セルの種類がほとんど同じでセル間の相関が等しくなるようなパスについて、標準偏差に一律の重みを付加する場合は、最大段数データ１２１２を要素数の最大値ｍとして（ｅ）が適用される。
【００９７】
図１４は、（ｅ）が適用される回路の例を示している。この回路は、２個のフリップフロップ１４０１、１４０２と４個のインバータ１４０３〜１４０６からなり、直列に接続されたインバータ１４０３〜１４０６からなるパスにより、クロックスキューが生じる。そこで、ｍ＝４として（２７）式により、このパスの標準偏差が計算される。
【００９８】
また、（ｇ）を適用する場合は、あらかじめ与えられた相関係数ｒijを用いて（２３）式により、各セルの重み付き標準偏差が計算される。
なお、ステップ１２０１、１２０２、１２０３、および１２０５の処理は常に必要というわけではなく、これらの処理の１つ以上を選択的に組み合わせてもよく、すべて省略してもよい。
【００９９】
また、ステップ１２０４および１２０６において、上記（ａ）に従って対象回路の標準偏差を計算することも可能である。この場合、ステップ１２０１、１２０２、１２０３、および１２０５の処理は省略され、すべての相関係数が一律の値Ｘとして導入される。そして、（２）式により得られた標準偏差にＸを乗算することで、従来の標準偏差が補正される。
【０１００】
次に、図１５のような回路におけるタイミング検証の具体例を説明する。この回路は、２個のフリップフロップ１５０１、１５０２、データパス１５０３、および２個のクロックパス１５０４、１５０５からなり、データパス１５０３およびクロックパス１５０４、１５０５は、それぞれ複数のセルを含んでいる。
【０１０１】
ここで、フリップフロップ１５０１（ＣＫ−Ｑ遅延）、データパス１５０３、クロックパス１５０４、およびクロックパス１５０５の遅延量を、それぞれＤＦ、ＤＤ、ＤＣ１、およびＤＣ２とし、フリップフロップ１５０２のセットアップ時間およびホールド時間をそれぞれＳおよびＨとする。また、クロック周期をＴとし、図１２のステップ１２０６で算出された回路全体の標準偏差をσとする。
【０１０２】
このとき、図１１のステップ１１０５において、セットアップ時間およびホールド時間のタイミング検証のために、それぞれ次のような評価値ＥＳおよびＥＨが計算される。
ＥＳ＝ＤＣ１＋ＤＦ＋ＤＤ−ＤＣ２−Ｔ＋Ｓ＋σ      （２９）
ＥＨ＝ＤＣ２−ＤＣ１−ＤＦ−ＤＤ＋Ｈ＋σ          （３０）
そして、各評価値が閾値０と比較され、ＥＳ＜０およびＥＨ＜０が成り立つ場合に、検証結果はＯＫとなる。３σモデルまたは５σモデルを用いる場合は、（２９）式および（３０）式において、σの代わりに３σまたは５σが用いられる。
【０１０３】
図１５の回路全体に従来の（２）式を適用して算出された標準偏差をＺとすると、上記（ａ）、（ｄ）、および（ｅ）に従って算出される標準偏差σは、それぞれ次のようになる。
【０１０４】
【数２５】
0004536647.tif 000028
【０１０５】
上述した実施形態では、主として、複数の素子からなるセルの遅延および標準偏差を用いて、複数のセルからなる回路のタイミング検証を行う場合について説明した。しかしながら、各素子の遅延および標準偏差を用いて、複数の素子からなる回路のタイミング検証を行う場合にも、本発明を適用することが可能である。この場合は、各素子を１つのセルとみなして、上述したタイミング解析を行えばよい。
【０１０６】
ところで、本実施形態のタイミング解析装置は、例えば、図１６に示すような情報処理装置（コンピュータ）を用いて構成される。図１６の情報処理装置は、ＣＰＵ１６０１、メモリ１６０２、入力装置１６０３、出力装置１６０４、外部記憶装置１６０５、媒体駆動装置１６０６、ネットワーク接続装置１６０７を備え、それらはバス１６０８により互いに接続されている。
【０１０７】
メモリ１６０２は、例えば、ＲＯＭ（read only memory）、ＲＡＭ（random access memory）等を含み、処理に用いられるプログラムおよびデータを格納する。ＣＰＵ１６０１は、メモリ１６０２を利用してプログラムを実行することにより、タイミング解析処理を行う。
【０１０８】
図１１のネットリスト１１１１、パスデータ１１１２、各セルの遅延ばらつきデータ１１１３、および各セルの遅延データ１１１４と、図１２の種類別相関係数データ１２１１、最大段数データ１２１２、および各セルの重み付き遅延ばらつきデータ１２１３は、処理対象または処理結果のデータとしてメモリ１６０２に一時的に格納される。
【０１０９】
入力装置１６０３は、例えば、キーボード、ポインティングデバイス等であり、ユーザからの指示や情報の入力に用いられる。出力装置１６０４は、例えば、ディスプレイ、プリンタ、スピーカ等であり、ユーザへの問い合わせや処理結果の出力に用いられる。
【０１１０】
外部記憶装置１６０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置１６０５に、プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ１６０２にロードして使用する。
【０１１１】
媒体駆動装置１６０６は、可搬記録媒体１６０９を駆動し、その記録内容にアクセスする。可搬記録媒体１６０９は、メモリカード、フレキシブルディスク、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。ユーザは、この可搬記録媒体１６０９にプログラムおよびデータを格納しておき、必要に応じて、それらをメモリ１６０２にロードして使用する。
【０１１２】
ネットワーク接続装置１６０７は、ＬＡＮ（local area network）等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。情報処理装置は、必要に応じて、プログラムおよびデータを外部の装置からネットワーク接続装置１６０７を介して受け取り、それらをメモリ１６０２にロードして使用する。
【０１１３】
図１７は、図１６の情報処理装置にプログラムおよびデータを提供する方法を示している。可搬記録媒体１６０９やサーバ１７０１のデータベース１７１１に格納されたプログラムおよびデータは、情報処理装置１７０２のメモリ１６０２にロードされる。サーバ１７０１は、そのプログラムおよびデータを搬送する搬送信号を生成し、ネットワーク上の任意の伝送媒体を介して情報処理装置１７０２に送信する。ＣＰＵ１６０１は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
【０１１４】
（付記１）半導体集積回路内のタイミング検証対象回路を構成する複数のセルを示すパスデータと、各セルの遅延データおよび標準偏差データと、該対象回路の遅延の標準偏差を計算するための重みと、タイミング検証の閾値とを格納する格納手段と、
前記パスデータと各セルの標準偏差データを用いて、前記複数のセルの標準偏差の二乗和を計算し、該二乗和の平方根を計算し、得られた平方根に前記重みを乗算して、前記対象回路の遅延の標準偏差を求める標準偏差計算手段と、
前記パスデータと各セルの遅延データを用いて、前記対象回路の遅延を計算する遅延計算手段と、
前記対象回路の遅延の標準偏差と、前記対象回路の遅延を用いて、タイミング検証のための評価値を計算する評価値計算手段と、
前記評価値を前記閾値と比較してタイミング検証を行う検証手段と、
検証結果を出力する出力手段と
を備えることを特徴とするタイミング解析装置。
（付記２）前記格納手段は、前記複数のセルの相関係数の最大値ｒmax と、セル間の相関を考慮すべき近接セルの最大数ｎをさらに格納し、前記標準偏差計算手段は、該最大値ｒmax と最大数ｎを用いて、
0004536647.tif 000029
【０１１５】
なる値を計算し、前記重みとして前記格納手段に格納することを特徴とする付記１記載のタイミング解析装置。
（付記３）前記格納手段は、前記複数のセルの相関係数の最大値ｒmax をさらに格納し、前記標準偏差計算手段は、セル間の相関を考慮すべき近接セルを、標準偏差が互いに近いもの同士からなる複数の集合に分類して、それぞれの集合の要素数の最大値ｍを求め、該最大値ｒmax と最大値ｍを用いて、
0004536647.tif 000030
【０１１６】
なる値を計算し、前記重みとして前記格納手段に格納する処理を、前記コンピュータにさらに実行させることを特徴とする付記１記載のタイミング解析装置。
（付記４）半導体集積回路内のタイミング検証対象回路を構成する複数のセルを示すパスデータと、各セルの標準偏差データを、格納手段から取り出し、
前記パスデータと各セルの標準偏差データを用いて、前記複数のセルの標準偏差の二乗和を計算し、
前記二乗和の平方根を計算し、
重みを前記格納手段から取り出し、
前記平方根に前記重みを乗算して、前記対象回路の遅延の標準偏差を求め、
各セルの遅延データを前記格納手段から取り出し、
前記パスデータと各セルの遅延データを用いて、前記対象回路の遅延を計算し、
前記対象回路の遅延の標準偏差と、前記対象回路の遅延を用いて、タイミング検証のための評価値を計算し、
タイミング検証の閾値を前記格納手段から取り出し、
前記評価値を前記閾値と比較してタイミング検証を行い、
検証結果を出力する
処理をコンピュータに実行させるためのプログラム。
（付記５）前記プログラムは、前記複数のセルの相関係数の最大値ｒmax と、セル間の相関を考慮すべき近接セルの最大数ｎを、前記格納手段から取り出し、
0004536647.tif 000031
【０１１７】
なる値を計算して、前記重みとして前記格納手段に格納する処理を、前記コンピュータにさらに実行させることを特徴とする付記４記載のプログラム。
（付記６）前記プログラムは、セル間の相関を考慮すべき近接セルを、標準偏差が互いに近いもの同士からなる複数の集合に分類して、それぞれの集合の要素数の最大値ｍを求め、前記複数のセルの相関係数の最大値ｒmax を前記格納手段から取り出し、
0004536647.tif 000032
【０１１８】
なる値を計算して、前記重みとして前記格納手段に格納する処理を、前記コンピュータにさらに実行させることを特徴とする付記４記載のプログラム。
（付記７）半導体集積回路内のタイミング検証対象回路を構成するｎ個のセルを示すパスデータと、各セルの標準偏差σi （ｉ＝１，２，．．．，ｎ）と、ｉ番目のセルとｊ番目のセルの間の相関係数ｒij（ｊ＝１，２，．．．，ｎ，ｒii＝１，ｒij＝ｒji）を、格納手段から取り出し、
前記パスデータが示すｎ個のセルの標準偏差σi に、
0004536647.tif 000033
【０１１９】
なる重みを乗算して、ｎ個のセルの重み付き標準偏差Γi を求め、
ｎ個のセルの重み付き標準偏差Γi の二乗和を計算し、
前記二乗和の平方根を、前記対象回路の遅延の標準偏差σとして求め、
各セルの遅延データを前記格納手段から取り出し、
前記パスデータと各セルの遅延データを用いて、前記対象回路の遅延を計算し、
前記対象回路の遅延の標準偏差σと、前記対象回路の遅延を用いて、タイミング検証のための評価値を計算し、
タイミング検証の閾値を前記格納手段から取り出し、
前記評価値を前記閾値と比較してタイミング検証を行い、
検証結果を出力する
処理をコンピュータに実行させるためのプログラム。
（付記８）前記プログラムは、前記対象回路においてｉ番目のセルとｊ番目のセルが互いに並列の関係であることを前記パスデータが示しているとき、前記計算式における相関係数ｒijを−ｒijに置き換えて、前記対象回路の遅延の標準偏差σを求める処理を、前記コンピュータに実行させることを特徴とする付記７記載のプログラム。
（付記９）前記プログラムは、標準偏差σi とσj が、
0004536647.tif 000034
【０１２０】
なる関係にあるとき、前記計算式における相関係数ｒijを０に置き換えて、前記対象回路の遅延の標準偏差σを求める処理を、前記コンピュータに実行させることを特徴とする付記７または８記載のプログラム。
【図面の簡単な説明】
【０１２１】
【図１】本発明のタイミング解析装置の原理図である。
【図２】直列接続のセルを示す図である。
【図３】ばらつきベクトルを示す図である。
【図４】正の完全相関を示す図である。
【図５】第１の測定結果を示す図である。
【図６】負の完全相関を示す図である。
【図７】第２の測定結果を示す図である。
【図８】無相関を示す図である。
【図９】第３の測定結果を示す図である。
【図１０】並列接続のセルを示す図である。
【図１１】タイミング解析のフローチャートである。
【図１２】パスばらつき処理のフローチャートである。
【図１３】第１の回路を示す図である。
【図１４】第２の回路を示す図である。
【図１５】第３の回路を示す図である。
【図１６】情報処理装置の構成図である。
【図１７】プログラムおよびデータの提供方法を示す図である。
【図１８】ゲート回路を示す図である。
【図１９】複数のゲート回路を示す図である。
【符号の説明】
【０１２２】
１０１  格納手段
１０２  標準偏差計算手段
１０３  遅延計算手段
１０４  評価値計算手段
１０５  検証手段
１０６  出力手段
３０１  ベクトル原点
５０１、７０１、９０１  領域
１１１１  ネットリスト
１１１２  パスデータ
１１１３  セルの遅延ばらつきデータ
１１１４  セルの遅延データ
１２１１  種類別相関係数データ
１２１２  最大段数データ
１２１３  セルの重み付き遅延ばらつきデータ
１３０１、１３０２、１４０１、１４０２、１５０１、１５０２  フリップフロップ
１３０３、１５０３  データパス
１３０４、１５０４、１５０５  クロックパス
１４０３、１４０４、１４０５、１４０６  インバータ
１６０１  ＣＰＵ
１６０２  メモリ
１６０３  入力装置
１６０４  出力装置
１６０５  外部記憶装置
１６０６  媒体駆動装置
１６０７  ネットワーク接続装置
１６０８  バス
１６０９  可搬記録媒体
１７０１  サーバ
１７０２  情報処理装置
１７１１  データベース
【図１】
0004536647.tif 000039
【図２】
0004536647.tif 000040
【図３】
0004536647.tif 000041
【図４】
0004536647.tif 000042
【図５】
0004536647.tif 000043
【図６】
0004536647.tif 000044
【図７】
0004536647.tif 000045
【図８】
0004536647.tif 000046
【図９】
0004536647.tif 000047
【図１０】
0004536647.tif 000048
【図１１】
0004536647.tif 000049
【図１２】
0004536647.tif 000050
【図１３】
0004536647.tif 000051
【図１４】
0004536647.tif 000052
【図１５】
0004536647.tif 000053
【図１６】
0004536647.tif 000054
【図１７】
0004536647.tif 000055
【図１８】
0004536647.tif 000056
【図１９】
0004536647.tif 000057