(57)【要約】【課題】統計的タイミング解析でのLSI歩留まり予測計算結果における悲観的方向への誤差の上限を求める、あるいは、また計算誤差がない場合のLSI歩留まり予測値（実際のLSI歩留まり）の範囲を特定することができる方法を提供する。【解決手段】まず、通常のSSTAにより歩留まりを計算する。次に、２つ以上の経路で共有されないゲートやネットのみを含む、遅延素子集合の集合の部分集合である独立LL集合を決定する。次に、独立LL集合のみを使って、SSTAにより歩留まり計算をする。これにより、実際の歩留まりは、通常のSSTAによる歩留まりと、独立LL集合のみを使ったSSTAによる歩留まりの間に存在することがわかる。【選択図】図１
2008015747.tif 000002
【特許請求の範囲】
【請求項１】
順序回路間をゲートやネット等の遅延素子で接続した遅延素子集合の集合からなるLSIの歩留まりを計算する歩留まりの評価方法において、
すべての遅延素子集合を用いて、LSIの歩留まりの予測分布を計算し、
該複数の遅延素集合の中から、同一のゲートやネットを共有しない遅延素子集合の集合である独立遅延素子集合を抽出し、
該独立遅延素子集合のみを用いて、歩留まりの予測分布の計算を行い、
すべての遅延素子集合を用いて得られた歩留まりの予測分布と、独立遅延素子集合のみを用いて得られた歩留まりの予測分布とを出力する
ことを特徴とする評価方法。
【請求項２】
前記歩留まりの予測分布の計算は、統計的タイミング解析法によって計算されることを特徴とする請求項１に記載の評価方法。
【請求項３】
前記遅延素子集合は、ネットリストを用いて抽出されることを特徴とする請求項１に記載の評価方法。
【請求項４】
前記独立遅延素子集合は、
前記遅延素子集合の集合の中から１つの遅延素子集合を抽出し、
該抽出された遅延素子集合を構成する遅延素子と同じ遅延素子が、すでに独立遅延素子集合として判断された遅延素子集合を構成する遅延素子中にあるか否かを判断し、
すでに独立遅延素子集合として判断された遅延素子集合の中に同じ遅延素子がない場合に、該遅延素子集合を独立遅延素子集合に分類することによって形成される
ことを特徴とする請求項１に記載の評価方法。
【請求項５】
前記LSIの実際の歩留まりは、すべての遅延素子集合を用いて得られた歩留まりの予測分布と、独立遅延素子のみを用いて得られた歩留まり予測分布の間にあることを特徴とする請求項１に記載の評価方法。
【請求項６】
順序回路間をゲートやネット等の遅延素子で接続した遅延素子集合の集合からなるLSIの歩留まりを計算する歩留まりの評価装置において、
すべての遅延素子集合を用いて、LSIの歩留まりの予測分布を計算する現状歩留まり計算手段と、
該複数の遅延素集合の中から、同一のゲートやネットを共有しない遅延素子集合の集合である独立遅延素子集合を抽出する独立遅延素子集合抽出手段と、
該独立遅延素子集合のみを用いて、歩留まりの予測分布の計算を行う独立遅延素子集合歩留まり計算手段と、
すべての遅延素子集合を用いて得られた歩留まりの予測分布と、独立遅延素子集合のみを用いて得られた歩留まりの予測分布とを出力する出力手段と、
を備えることを特徴とする評価装置。
【請求項７】
順序回路間をゲートやネット等の遅延素子で接続した遅延素子集合の集合からなるLSIの歩留まりを計算する歩留まりの評価方法をコンピュータに実現させるプログラムにおいて、
すべての遅延素子集合を用いて、LSIの歩留まりの予測分布を計算し、
該複数の遅延素集合の中から、同一のゲートやネットを共有しない遅延素子集合の集合である独立遅延素子集合を抽出し、
該独立遅延素子集合のみを用いて、歩留まりの予測分布の計算を行い、
すべての遅延素子集合を用いて得られた歩留まりの予測分布と、独立遅延素子集合のみを用いて得られた歩留まりの予測分布とを出力する
ことを特徴とする評価方法をコンピュータに実現させることを特徴とするプログラム。
【請求項８】
順序回路間を遅延素子で接続した遅延素子集合を備える回路素子の実歩留まりを算出する歩留まり算出方法において、
前記回路素子を構成するすべての遅延素子集合を用いて、前記回路素子の第一の歩留まりを算出するステップと、
前記回路素子を構成する遅延素子集合から、他の遅延素子集合と遅延素子要素を共有しない遅延素子集合を抽出するステップと、
前記抽出された遅延素子要素を共有しない遅延素子集合のみを用いて、前記回路素子の第二の歩留まりを算出するステップと、
前記第一の歩留まりおよび前記第二の歩留まりとを比較して、前記回路素子の実歩留まりを予測するステップと、を備えることを特徴とする、歩留まり算出方法。
【請求項９】
前記歩留まり算出方法において、前記第一の歩留まりを下限、前記第二の歩留まりを上限として、前記第一の歩留まりと前記第二の歩留まりとの間の値を前記実歩留まりとして予測することを特徴とする、請求項８に記載の歩留まり算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、統計的タイミング解析（SSTA: Statistical Static Timing Analysis）を用いたLSIの製造における歩留まりの予測計算における悲観的誤差の範囲を評価する方法に関する。
【背景技術】
【０００２】
一般に、SSTAでは、ある順序回路から始まりある順序回路へ至る全ての経路上に存在するネットとゲート、その経路の始点、終点となる順序回路を一つの単位としてタイミングチェックを行い、チェック値の分布を計算する。タイミングチェックの計算式は始点、終点の順序回路間の遅延分布と始点、終点の順序回路にクロックを供給するクロック経路の遅延分布を含んでいる。すなわち、各順序回路のタイミング遅延分布を入力として与え、ある経路のタイミング遅延分布をこれらのタイミング遅延分布を用いて計算するものである。
【０００３】
今、順序回路iを始点とし順序回路jを終点とするタイミングチェックを考えたとき、このチェック値の分布をチェック値分布ijと呼ぶこととし、チェック値分布ijを求めたタイミングチェック式中に含まれる始点、終点の順序回路間の遅延分布に関係するLSI上の全てのネット、ゲートの集合を遅延素子集合ijと呼ぶことにする。すなわちこの遅延素子集合ijには順序回路iから順序回路jに至る経路のうち、少なくとも１つ以上の経路上に存在するネット、ゲートが全て含まれている。
【０００４】
LSIの製造における歩留まりの予測値の計算では、LSI中の全てのチェック値分布を計算しそれらの統計的max演算を行なう。統計的max演算とは、累積確率分布の掛け算で、２つの累積確率分布(Cumulative Distribution Function: CDF)C1,C2の統計的max演算を例として説明すると、C1,C2の統計的max演算結果Cは
C(t)=C1(t)×C2(t)    (tは変数)
という式で書ける。
【０００５】
図８は、累積確率分布の統計的max演算の結果の例を示す図である。
図８においてC1という累積確率分布とC2という累積確率分布との統計的max演算を行ったものが、C1×C2という累積確率分布である。C1×C2は、C1の累積確率分布及びC2の累積確率分布よりも歩留まりが小さくなっており、累積確率分布に統計的max演算を施すと結果の累積確率分布は、演算前の分布より歩留まりの値が悪くなることが見て取れる。
【０００６】
LSIの製造における歩留まりの予測計算では、全ての経路に関するチェック値分布について、その累積確率分布を計算し、これらの統計的max演算を行い、１つのLSIに対する一つの分布を求める。その分布のLSIの目標（スペック）周波数に相当する箇所の値がLSIのその目標周波数での歩留まりとなる。
【０００７】
一般に、あるネット、ゲートは複数の遅延素子集合の要素となり得る。つまり、あるゲートは、順序回路iから順序回路jへ至る経路上のゲート、かつ、順序回路lから順序回路mへ至る経路上のゲートであるといったケースがあり得る。
【０００８】
同一LSI上の同一のゲートもしくはネットの遅延的な振る舞い（遅延値、遅延値分布）は温度、電圧、製造条件で決まってくるため、ゲートもしくはネットが含まれる遅延素子集合ijのタイミングチェック値分布ijを計算する場合と別の遅延素子集合lmのタイミングチェック値分布lmを計算する場合に、そのゲートもしくはネットの遅延的、物理的な振る舞いは同じである。したがって、歩留まりの予測値計算においてもこのような性質を反映したものが望まれる。なお、ここで、タイミングチェック値分布を積分したものが累積確率分布である。
【０００９】
しかし、現状の一般的なSSTAでは、上であげたような複数の遅延素子集合に含まれているゲート、ネットの遅延分布を従属的に扱うことは計算処理上困難であり、現実的にLSIの設計に使用できる手法としてゲート、ネットの遅延分布を独立として扱っている（つまり、あるゲートは、あるタイミングチェック値分布の計算では遅延素子集合ijに属するとし、別のタイミングチェック値分布の計算では遅延素子集合lmに属するとして、それぞれ別個にタイミングチェック値分布を計算し、その後、累積確率分布を求めて、統計的max演算を行うという、実際にはありえない現象が起こることを許す手法で処理されている）。そのため、ゲート、ネットの共通する部分を（現実の物理的性質に則して）従属的に扱って計算した歩留まりよりもSSTAで最終的に計算される歩留まりは悲観的な方向（歩留まりが小さくなる方向）へ誤差を含んでいることが知られている。すなわち、通常のSSTAでは、LSI内で２つの経路に共通の遅延素子をタイミングチェック値分布を求める際に、別の素子として扱い、それぞれで求められたタイミングチェック値分布に基づく累積確率分布を統計的max演算して１つのLSIの歩留まり予測計算を行っている。以上からわかるように、統計的max演算は、演算を行う累積確率分布が多ければ多いほど、歩留まりが悪く予測されるが、同じ素子を別の経路（遅延素子集合）に属するとして別々に求めた累積確率分布を統計的max演算することにより、この素子の遅延特性を二重に結果に取り込んでいることとなり、以上のようなSSTAでは、実際の歩留まりよりも悲観的な予測値が得られることになる。
【００１０】
正確な歩留まり予測を行うためには、上記のような作業をしないことであるが、そのためには、モンテカルロ法を用いて、歩留まり予測計算をする必要がある。しかし、モンテカルロ法は、非常に多くのサンプル点を必要とし、非常に多くの遅延素子を含むLSIの歩留まり予測計算は、現在通常使用可能なコンピュータでは、現実的な時間と計算量の範囲内で結果を得ることができない。
【００１１】
従来のタイミング解析等を行うシステムが特許文献１及び２に記載されている。
【特許文献１】特開平７−１３９７４号公報
【特許文献２】特開２００５−９２８８５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
以上から、統計的タイミング解析法を用いて、LSIの歩留まり予測計算をより精度良く行うことが望まれる。
本発明の課題は、統計的タイミング解析でのLSI歩留まり予測計算結果における悲観的方向への誤差の上限を求める、あるいは、また計算誤差がない場合のLSI歩留まり予測値（実際のLSI歩留まり）の範囲を特定することができる方法を提供することである。
【課題を解決するための手段】
【００１３】
本発明の方法は、順序回路間をゲートやネット等の遅延素子で接続した遅延素子集合の集合からなるLSIの歩留まりを計算する歩留まりの評価方法において、すべての遅延素子集合を用いて、LSIの歩留まりの予測分布を計算し、該複数の遅延素集合の中から、同一のゲートやネットを共有しない遅延素子集合の集合である独立遅延素子集合を抽出し、
該独立遅延素子集合のみを用いて、歩留まりの予測分布の計算を行い、すべての遅延素子集合を用いて得られた歩留まりの予測分布と、独立遅延素子集合のみを用いて得られた歩留まりの予測分布とを出力することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、実際のLSI歩留まりの存在範囲が特定することができ、同時に現状のSSTAで求めた歩留まりの悲観的誤差の上限を得ることができる。
【発明を実施するための最良の形態】
【００１５】
本発明の実施形態では、以下のような手順で実際のLSI歩留まりの存在範囲を求める。
１．従来のSSTAの手法でLSIの歩留まりを求める（これによって求められた歩留まりを現状歩留まりと呼ぶことにする）。
２．全ての遅延素子集合のうち、互いにその要素（ゲート、ネット）に共通なものがない遅延素子集合の集合を求める（この集合を独立LL（Latch to Latch)集合を呼ぶことにする）。
３．独立LL集合に含まれる遅延素子集合だけでできたLSIを仮定し、その歩留まりを従来のSSTAの手法で計算する（これによって求められた歩留まりを独立LL歩留まりと呼ぶことにする）。
【００１６】
現段階では実際に計算が困難な、複数の遅延素子集合に共通するゲート、ネットを従属的に扱って計算した歩留まり結果を実歩留まりと呼ぶことにすると、共通部分がない独立LL集合から求めた独立LL歩留まりと、実歩留まり、現状歩留まりの関係は、
現状歩留まり≦実歩留まり≦独立LL歩留まり
となることが言える。
【００１７】
現状歩留まりが実歩留まりより小さくなることは、従来技術に記載したとおりである。これに対し、独立LL歩留まりは、LSIに含まれる遅延素子の中から、複数の遅延素子集合に共通する遅延素子（ゲート、ネット等）を含む遅延素子集合（経路）を取り除いた遅延素子集合のみからなるLSIを仮定して、従来のSSTAを適用している。すなわち、本来考慮すべき経路より少ない経路についてのみ累積確率分布を求め、統計的max演算をしていることになる。上記したように、統計的max演算は、演算する累積確率分布が多いほど、悪い値を与えることになるので、実際のLSIより少ない経路についての累積確率分布のみで統計的max演算を行って得られた独立LL歩留まりは、実歩留まりよりも良い値を与えるはずであり、この理由により、上記不等式が得られている。
【００１８】
これは実歩留まりが、常に独立LL歩留まりと現状歩留まりの間にあることを示しており、現状のSSTAで求めた現状歩留まりに加えて独立LL歩留まりを求めることで実歩留まりの存在範囲が特定することができ、同時に現状のSSTAで求めた歩留まりの悲観的誤差の上限を得ることができる。
【００１９】
図１は、本発明の実施形態の全体の流れを示すフローチャートである。
ステップＳ１において、従来のSSTAを行い、現状歩留まりを求める。ステップＳ２において、遅延素子集合の集合の中から、独立LL集合を選択する。ステップＳ３において、選択された独立LL集合のみについて、従来のSSTAを用いて、独立LL歩留まりを求める。ステップＳ４において、上記不等式により、悲観的誤差量の上限、あるいは、実歩留まりの範囲を特定する。
【００２０】
図２は、遅延素子集合を説明する図である。
LSIは、信号の始点である順序回路１０と終点である順序回路１１と、信号が伝搬する配線であるネットと、ネットで相互に接続された一般ゲート（論理回路）とからなる信号経路が多数複雑に組み合わされて配置されたものである。信号が順序回路１０から順序回路１１に至るタイミングは、ネットの伝搬遅延と、論理回路の動作遅延が積み重なったものである。１つ１つのネットと論理回路は、信号に遅延を与えるので、遅延素子と呼ばれる。したがって、順序回路１０から順序回路１１に至る信号経路は、遅延素子を要素とした集合であるということができる。したがって、このような信号経路を遅延素子の集合と呼んだ場合、LSIは、遅延素子の集合の集合であるということができる。
【００２１】
図３は、複数の遅延素子集合に共通するゲート、ネットについて説明する図である。
図３においては、順序回路１０ａから順序回路１１ａに至る遅延素子集合と、順序回路１０ｂから順序回路１１ｂに至る遅延素子集合が相互に結合され、両方の遅延素子集合に含まれる共通部分１５が発生している場合を示している。現状歩留まりをSSTAを用いて求める場合には、共通部分１５を、順序回路１０ａから順序回路１１ａに至る遅延素子集合と、順序回路１０ｂから順序回路１１ｂに至る遅延素子集合に、それぞれ独立に同じものが入っているとみなして計算を行う。独立LL歩留まりを求める場合には、共通部分１５は、順序回路１０ａから順序回路１１ａに至る遅延素子集合か、順序回路１０ｂから順序回路１１ｂに至る遅延素子集合のいずれかに属するものとして、一方の遅延素子集合のみを計算に使い、他方の遅延素子集合は、独立LL集合から排除して、計算には用いない。
【００２２】
図４は、独立LL歩留まりについて説明する図である。
図４のように、独立LL歩留まりと、現状歩留まりを横軸を１／周波数（タイミング）、縦軸を歩留まりとしてあらわしたものである。各歩留まり値は、累積確率分布で表され、対応するチェック値分布を積分することにより得られる。現状歩留まりは、LSIに含まれるすべての遅延素子集合の集合を用いて、SSTAにより求めた歩留まりであり、現状歩留まりのグラフは、同一タイミングで見た場合、最悪値を与える。一方、すべての遅延素子集合の集合の部分集合である。独立LL集合の集合のみを用いて、SSTAにより求めた独立LL歩留まりは、同一タイミングで見た場合、もっともよい歩留まり値を示す。そして、前述したように、実歩留まりは、現状歩留まりと独立LL歩留まりの間にある。独立LL歩留まりと現状歩留まりの差が歩留まりの悲観的誤差量の上限値となる。現状歩留まりと独立LL歩留まりの間にある実歩留まりは、図４では、独立LL歩留まりや現状歩留まりと同じ傾きをしているとして図示されているが、必ずしもそうではなく、さまざまな傾きを持っている可能性がある。本発明の実施形態では、ただ、実歩留まりが、独立LL歩留まりと現状歩留まりの間にあることを述べるのみである。
【００２３】
図５は、遅延素子集合の決定方法を説明する図である。
図５のようなゲートとネットの構成があったとすると、まず、順序回路Ｓから信号の伝搬するゲート、ネットの集合（集合Ｓ）を順序回路Ｓから信号の伝搬する方向へネットリストを進んでいって決定する。別の順序回路へ行き着いたらそこで、ネットリストの追跡をやめる。このようにして得られた集合が、集合Ｓである。次に、順序回路Ｅへ信号の伝搬するゲート、ネットの集合（集合Ｅ）を順序回路Ｅから信号の伝搬する方向とは逆にネットリストをさかのぼって決定する。別の順序回路までさかのぼったらそこで、追跡をやめる。このようにしてえられた集合が、集合Ｅである。そして、集合Ｓと集合Ｅに共通なゲート、ネットを順序回路Ｓから順序回路Ｅの遅延素子集合とする。すなわち、灰色の矢印で接続された一般ゲート（論理回路）と、矢印に対応するネットからなる集合が順序回路Ｓから順序回路Ｅへの遅延素子集合となる。以下、上記の手順をLSIのすべての順序回路、ゲート、ネットに対して行い、遅延素子集合の集合を生成する。
【００２４】
本発明の実施形態の流れを概観すると、以下のとおりとなる。すなわち、現状歩留まりは従来のSSTAで算出する。SSTAの結果として得られたLSI中のタイミングチェック値分布をLSI歩留まりに影響をより与える順（例えば分布の中央値の周波数の小さい順）に並べ替える。並べ替えられた順にLSIのネットリストからその両端の順序回路をつなぐ全ての経路上のゲート、ネットの集合（遅延素子集合）を特定する。ある遅延素子集合が特定された時、その中に含まれるゲート、ネットの全てが既に独立LL集合に含まれる遅延素子集合のどの要素にもなっていない場合はその遅延素子集合を独立LL集合に加える。このように遅延素子集合が決まる毎にその遅延素子集合が独立LL集合に加われるかどうかを判定する処理を繰り返し最終的な独立LL集合を決定する。最終的に求められた独立LL集合に含まれる遅延素子集合に対応するタイミングチェック値分布を集め、統計的max演算し独立LL歩留まりを算定する。この独立LL歩留まりと現状歩留まりの差が現状歩留まりの悲観的誤差の上限となる。独立歩留まり、現状歩留まりのデータ、グラフを出力、画面に表示することで利用者は現状歩留まりの悲観的誤差の量、実歩留まりの存在範囲を知ることができる。
【００２５】
図６は、本発明の実施形態の独立LL集合の決定処理の流れを示すフローチャートである。
図６に基づいて説明を行う。ステップＳ１０において、タイミングチェック値分布を分布の中央値の遅い順（タイミング的に厳しい順）にソートする。ステップＳ１１において、独立LL集合の集合を空集合に、ステップＳ１０でソートされたタイミングチェック値分布のインデックスｉを１に初期設定する。ステップＳ１２において、ｉ番目のタイミングチェック値分布があるか否かを判断するステップＳ１２の判断がＮｏの場合には、処理を終了する。ステップＳ１２の判断がＹｅｓの場合には、ステップＳ１３において、ｉ番目のタイミングチェック値分布に対応する遅延素子集合（遅延素子集合ｉ）を決定する。ステップＳ１４において、遅延素子集合ｉと独立LL集合に含まれる遅延素子集合の間に共通するゲート、ネットがあるか否かを判断する。すなわち、すでに独立LL集合に分類されている遅延素子集合と共通するゲート、ネットを持つ遅延素子集合ｉを排除し、共通するゲート、ネットを持たない遅延素子集合ｉを独立LL集合に新たに分類するという作業である。ステップＳ１４の判断がＹｅｓの場合には、遅延素子集合ｉは、独立LL集合とはなりえないので、ステップＳ１６において、ｉを１だけ増加し、ステップＳ１２に戻って、他の遅延素子集合について同様の処理を行う。ステップＳ１４の判断がＹｅｓの場合には、遅延素子集合ｉは、独立LL集合と共通するゲート、ネットを持っていないので、新たな独立LL集合とすることができるので、ステップＳ１５において、遅延素子集合ｉを独立LL集合に加え、ステップＳ１６でｉを１だけ増加し、ステップＳ１２に戻って、他の遅延素子集合について処理を行う。以上により、独立LL集合の集合が生成される。
【００２６】
図７は、本発明の実施形態の処理を行う装置のブロック構成を示す図である。
SST結果入力部２０には、通常のSSTAにより行った計算結果が入力され、ネットリスト入力部２２には、ネットリストが入力される。SSTAの結果とネットリストは、遅延素子集合決定部２３に入力され、遅延素子集合の集合が生成される。また、独立LL集合特定部２４には、遅延素子集合の集合と、SSTAの結果が入力され、独立LL集合が特定される。現状歩留まり計算部２１では、SSTAの結果の統計的max演算を行って、現状歩留まりを求める。独立LL歩留まり計算部２５では、独立LL歩留まりを計算する。出力部２６において、現状歩留まりのグラフと、独立LL歩留まりのグラフを生成し、結果グラフとして、出力する。グラフ以外にも、グラフから読み取れるさまざまな数値を結果データとして出力しても良い。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施形態の全体の流れを示すフローチャートである。
【図２】遅延素子集合を説明する図である。
【図３】複数の遅延素子集合に共通するゲート、ネットについて説明する図である。
【図４】独立LL歩留まりについて説明する図である。
【図５】遅延素子集合の決定方法を説明する図である。
【図６】本発明の実施形態の独立LL集合の決定処理の流れを示すフローチャートである。
【図７】本発明の実施形態の処理を行う装置のブロック構成を示す図である。
【図８】累積確率分布の統計的max演算の結果の例を示す図である。
【符号の説明】
【００２８】
１０、１０ａ、１０ｂ、１１、１１ａ、１１ｂ      順序回路
１５      共通部分
２０      SSTA結果入力部
２１      現状歩留まり計算部
２２      ネットリスト入力部
２３      遅延素子集合決定部
２４      独立LL集合特定部
２５      独立LL歩留まり計算部
２６      出力部
【図１】
2008015747.tif 000003
【図２】
2008015747.tif 000004
【図３】
2008015747.tif 000005
【図４】
2008015747.tif 000006
【図５】
2008015747.tif 000007
【図６】
2008015747.tif 000008
【図７】
2008015747.tif 000009
【図８】
2008015747.tif 000010