(57)【特許請求の範囲】
【請求項１】
電気回路設計（ＥＣＤ）のまれな不良事象を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、前記ＥＣＤには、プロセス変数および性能メトリックスが関連付けられており、前記性能メトリックスは、前記プロセス変数に依存し、前記プロセス変数は、確率分布を有し、前記方法は、
前記プロセス変数の前記確率分布から点の集合を生成することと、
点の前記集合から点の部分集合を選択することと、
シミュレーションデータを取得するために、点の前記部分集合の各点の前記ＥＣＤをシミュレーションすることと、
性能メトリックス値の集合を取得するために、前記シミュレーションデータに従って、点の前記部分集合の各点の性能メトリックスの値を計算することであって、前記性能メトリックスには、標的値が関連付けられている、ことと、
性能メトリックス値の前記集合に従って、および点の前記部分集合の各点の前記プロセス変数の値を用いて、前記プロセス変数の関数として、前記性能メトリックスのモデルを構築することと、
前記モデルに従って、順序付けされた残りの点を取得するために、点の前記集合の残りの点を順序付けすることであって、前記順序付けされた残りの点は、それに関連付けられた順序を有する、ことと、
ＥＣＤ不良の表示カウントを取得するために、停止条件が満足されるまで、前記順序付けされた残りの点の順序に従って、以下のアクションａ〜ｄ、
（ａ）順序付けされた残りの点のシミュレーションデータを取得するために、順序付けされた残りの点をシミュレーションすることと、
（ｂ）前記順序付けされた残りの点の前記シミュレーションデータに従って、前記順序付けされた残りの点の前記性能メトリックスの値を計算することと、
（ｃ）前記順序付けされた残りの点の前記性能メトリックスの前記値を前記標的値と比較することと、
（ｄ）前記順序付けされた残りの点の前記性能メトリックスの前記値が前記標的値を満足しない場合に、ＥＣＤ不良の前記表示カウントを増加させることと、
を反復的に繰り返すことによって、ＥＣＤ不良のカウント数を表示することと、
を含む、持続性の有形コンピュータ可読媒体。
【請求項２】
前記残りの点は、点の前記部分集合の点とは異なる、請求項１に記載の持続性の有形コンピュータ可読媒体。
【請求項３】
点の前記集合の点の総数は、前記ＥＣＤの標的歩留りに従って判定される、請求項１に記載の持続性の有形コンピュータ可読媒体。
【請求項４】
前記ＥＣＤの不良率または前記ＥＣＤの歩留りは、ＥＣＤ不良の数、および点の前記集合の点の総数に従って推定される、請求項１に記載の持続性の有形コンピュータ可読媒体。
【請求項５】
前記方法は、すべてのＥＣＤ不良が発見されたか否かを自動的に判定することをさらに含む、請求項４に記載の持続性の有形コンピュータ可読媒体。
【請求項６】
前記方法は、前記ＥＣＤの前記不良率または前記ＥＣＤの前記歩留りの信頼区間を判定することをさらに含む、請求項４に記載の持続性の有形コンピュータ可読媒体。
【請求項７】
前記モデルは、線形モデル、多項式モデル、スプラインモデル、ガウス過程モデル、ニューラルネットワーク、多変量適応型回帰スプラインモデル、および高速関数抽出モデルのうちの少なくとも１つを含む、回帰モデルである、請求項１に記載の持続性の有形コンピュータ可読媒体。
【請求項８】
再構築モデルを取得するために、アクションａ〜ｄの反復の後に、すべてのシミュレーション点に基づく前記モデルの再構築がもたらされ、まだシミュレーションされていない点は、前記再構築モデルに従って再順序付けされる、請求項１に記載の持続性の有形コンピュータ可読媒体。
【請求項９】
プロットを表示することをさらに含み、前記プロットは、前記点がシミュレーションされた前記順序の関数として、シミュレーション点の前記性能メトリックスの前記値を示す曲線を含む、請求項１に記載の持続性の有形コンピュータ可読媒体。
【請求項１０】
前記方法は、プロットを表示することをさらに含み、前記プロットは、前記性能メトリックスの確率分布の曲線を含む、請求項１に記載の持続性の有形コンピュータ可読媒体。
【請求項１１】
前記曲線は、前記性能メトリックスの確率分布の少なくとも１つの極部分を示す、請求項１０に記載の持続性の有形コンピュータ可読媒体。
【請求項１２】
前記方法は、前記プロセス変数によって画定される空間内の追加の点を取得することをさらに含み、前記追加の点は、点の前記集合外である、請求項１に記載の持続性の有形コンピュータ可読媒体。
【請求項１３】
前記方法は、
追加のシミュレーションデータを取得するために、前記追加の点の前記ＥＣＤをシミュレーションすることと、
前記追加のシミュレーションデータに従って、追加の性能メトリックス値を計算することと、
前記追加の性能メトリックス値に従って、前記モデルを修正することと、
をさらに含む、請求項１２に記載の持続性の有形コンピュータ可読媒体。
【請求項１４】
前記方法は、
推定誤差または不確実性を取得するために、前記モデルの誤差または不確実性を推定することと、
前記推定誤差または不確実性に従って、前記追加の点を取得することと、
をさらに含む、請求項１２に記載の持続性の有形コンピュータ可読媒体。
【請求項１５】
ＥＣＤ不良の前記カウント数を表示することは、ＥＣＤ不良の前記カウント数をプロットで表示することを含む、請求項１に記載の持続性の有形コンピュータ可読媒体。
【請求項１６】
前記プロセス変数の前記確率分布から点の前記集合を生成することは、前記プロセス変数の前記確率分布をサンプリングすることを含む、請求項１に記載の持続性の有形コンピュータ可読媒体。
【請求項１７】
電気回路設計（ＥＣＤ）のまれな事象発生を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、前記ＥＣＤには、プロセス変数および性能メトリックスが関連付けられており、前記性能メトリックスは、前記プロセス変数に依存し、前記プロセス変数は、確率分布を有し、前記方法は、
前記プロセス変数の前記確率分布から点の集合を生成することと、
点の前記集合から点の部分集合を選択することと、
シミュレーションデータを取得するために、点の前記部分集合の各点の前記ＥＣＤをシミュレーションすることと、
性能メトリックス値の集合を取得するために、前記シミュレーションデータに従って、点の前記部分集合の各点の性能メトリックスの値を計算することと、
性能メトリックス値の前記集合に従って、および点の前記部分集合の各点の前記プロセス変数の前記値を用いて、前記プロセス変数の関数として、前記性能メトリックスのモデルを構築することと、
順序付けされた残りの点を取得するために、前記モデルに従って、点の前記集合の残りの点を順序付けすることであって、前記順序付けされた残りの点は、それに関連付けられる順序を有する、ことと、
表示プロットを取得するために、停止条件が満足されるまで、前記順序付けされた残りの点の前記順序に従って、以下のアクションａ〜ｃ、
（ａ）順序付けされた残りの点のシミュレーションデータを取得するために、順序付けされた残りの点をシミュレーションすることと、
（ｂ）前記順序付けされた残りの点の前記シミュレーションデータに従って、前記順序付けされた残りの点の前記性能メトリックスの値を計算することと、
（ｃ）前記順序付けされた残りの点の前記性能メトリックスの前記値を、前記性能メトリックスの前記値の前記分布の前記プロットに組み込むことと、
を反復的に繰り返すことによって、前記性能メトリックスの前記値の分布のプロットを表示することと、
を含む、持続性の有形コンピュータ可読媒体。
【請求項１８】
電気回路設計（ＥＣＤ）のまれな不良事象を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、前記ＥＣＤには、プロセス変数および性能メトリックスが関連付けられており、前記性能メトリックスは、前記プロセス変数に依存し、前記プロセス変数は、確率分布を有し、前記方法は、
前記プロセス変数の前記確率分布から点の集合を生成することと、
点の前記集合から点の部分集合を選択することと、
シミュレーションデータを取得するために、点の前記部分集合の各点の前記ＥＣＤをシミュレーションすることと、
性能メトリックス値の１つ以上の集合を取得するために、前記シミュレーションデータに従って、前記ＥＣＤの１つ以上の性能メトリックスについて、点の前記部分集合の各点の前記１つ以上の性能メトリックスの値を計算することと、
性能メトリックス値の前記１つ以上の集合に従って、および点の前記部分集合の各点の前記プロセス変数の前記値を用いて、前記プロセス変数の関数として、前記１つ以上の性能メトリックスのそれぞれのモデルを構築することと、
前記１つ以上の性能メトリックスのそれぞれの出力値の事前に確立された関心領域のそれぞれについて、順序付けされた残りの点の集合を取得するために、前記１つ以上の性能メトリックスのそれぞれの前記モデルに従って、点の前記集合の残りの点を順序付けすることであって、順序付けされた残りの点の集合の数は、事前に確立された関心領域の数と等しく、出力値の各事前に確立された関心領域には、標的値が関連付けられている、ことと、
点の順序付けされたインターリーブ集合を取得するために、順序付けされた残りの点の前記集合をインターリーブすることであって、点の前記順序付けされたインターリーブ集合は、順序を有する、ことと、
ＥＣＤ不良の表示カウントを取得するために、停止条件が満足されるまで、点の前記順序付けされたインターリーブ集合の前記順序に従って、出力値の前記事前に確立された関心領域のそれぞれについて、以下のアクションａ〜ｄ、
（ａ）点の前記順序付けされたインターリーブ集合の点をシミュレーションすることと、
（ｂ）点の前記順序付けされたインターリーブ集合の前記点の前記性能メトリックスの値を計算することと、
（ｃ）点の前記順序付けされたインターリーブ集合の前記点の前記性能メトリックスの前記値を、その関連標的値と比較することと、
（ｄ）点の前記順序付けされたインターリーブ集合の前記点の前記性能メトリックスの前記値が、その関連標的値を満足しない場合に、前記ＥＣＤ不良の前記表示カウントを増加させることと、
を反復的に繰り返すことによって、ＥＣＤ不良のカウント数を表示することと、
を含む、持続性の有形コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ばらつきに影響される性能を有する設計（例えば、電気回路設計）における不良率を推定することであって、ばらつきは、少なくとも一部において、確率分布によってモデル化され、不適合となる確率は、適合となる確率より大幅に低い、不良率を推定することに関する。より具体的には、本発明は、高歩留りの半導体設計における不良率を推定することに関する。
【背景技術】
【０００２】
本願は、その全体が参照することによって本明細書に組み込まれる、２０１０年１０月２７日に出願された、米国特許仮出願第６１／４０７，２３０号の優先権の利益を主張する。
【０００３】
メモリ、カスタムデジタル、および他の種類の回路の歩留りは、上に問題の回路が形成されるチップの利益性に直接影響するため、重要である。したがって、設計者が、これらの回路の歩留りを、それらの製造の前に推定することができることは、重要である。当該技術分野において既知であるように、不良率とは、歩留りに関連する単なる別の単位である。つまり、設計の不良率とは、サンプリングされた設計の不適合となる比率であり、一方、歩留りとは、設計の適合となる比率である。
【０００４】
電気回路設計（ＥＣＤ）の不良率を推定するために、通常、ＥＣＤのいくつかの変数の統計的ばらつきのモデルが起用される。そのばらつきのモデルは、ランダム変数の確率分布を含むことができる。例えば、ＥＣＤ内の各デバイスは、酸化物の厚さ、基板のドーピング濃度等、そのデバイスの「ｎ」個のプロセス変数のばらつきを表す、ｎ次元のガウス分布を有することができる。その結果、ＥＣＤの分布（確率分布）のモデルは、デバイスの分布の和集合にすぎない。分布からランダム点を取り出し、ＥＣＤのトポロジーおよびデバイスの寸法（長さ、幅等）と組み合わせることで、ＥＣＤの「インスタンス」がもたらされ、インスタンスは、製造され得る単一のチップ（ダイ）（またはチップ設計全体内のブロックもしくは「セル」）のモデルである。
【０００５】
ＥＣＤのインスタンスの性能は、典型的に、回路シミュレーションを介して推定される。様々な環境点、例えば、異なる温度でのその性能を推定することができる。ＥＣＤのインスタンスは、各環境点での性能が仕様を満足する場合、「許容可能」である。また、性能メトリックスとも称される性能には、例えば、電力消費、読み取り電流等も含むことができる。
【０００６】
所与のＥＣＤの不良率を推定する簡単な既知の方法は、図１に示されるような、シミュレーションを伴うモンテカルロサンプリングを使用する。開始１０２で使用される入力は、ＥＣＤの表現、およびＥＣＤに影響を及ぼす可能性があるばらつきを表す確率分布を含む。ＳＰＩＣＥ回路シミュレータ（ＳＰＩＣＥ：Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ）等によって、インスタンス、ＥＣＤ（通常設計）、および特定のばらつき（プロセスのランダム度による）の組み合わせをシミュレーションすることができる。ステップ１０４で、ＥＣＤの確率分布から多数のインスタンスが取り出される。各インスタンスは、「許容可能」であるか否か（すなわち、性能メトリックスの所定の仕様を満足するか否か）を判定するために、１０６でシミュレーションされる。実行は、典型的に、すべてのＮ個のサンプルがシミュレーションされた際に１０８で停止する。インスタンスの総数に対する許容不可能なインスタンスの数の割合として計算される不良率を含む結果が、ユーザディスプレイ１１０に報告される。
【０００７】
図１のモンテカルロフローに従って不良率を推定することは、許容不可能なインスタンス（不良率）を発見する確率が、許容可能なインスタンスを発見する確率と比較して同一の桁数または２桁以内である際、比較的安価である。例えば、不良率（ｐf）が０．１０である場合、歩留りは、０．９０であり、推定するのが比較的安価である。適度の精度で不良率を推定するための妥当な大体の目安は、約１０個の不良を得るのに十分なサンプルを有することであり、より多くのサンプルは、精度をさらに向上させる。上記の例では、ｐf＝０．１０は、Ｎ＝１０／０．１０＝１００サンプルをもたらす。現代のシミュレーションソフトウェアを有する現代のＣＰＵ上では、典型的に、数分から数時間で１００個のモンテカルロサンプルをシミュレーションすることができ、これは、妥当である。多くの場合、１０００個のモンテカルロサンプルが妥当である可能性があり、特定の高速シミュレーション回路では、１０，０００個のサンプルもまた、妥当である可能性がある。
【０００８】
しかしながら、インスタンスが不良となる確率がはるかにまれである場合、図１に示される手法を使用すると、不良率を推定するために、はるかに多くのモンテカルロサンプルが必要となる。例えば、ｐf＝１．０ｅ−６（１００万分の１）である場合、約Ｎ＝１０／１ｅ−６＝１０００万個のモンテカルロサンプルが必要となる。この場合、現代の機械には、ＥＣＤをシミュレーションすることは、コンピュータ的にあまりに負担が大きく、妥当な期間（例えば、数時間）内に結果を得ることができない。所与の回路で、ｐf＝１．０ｅ−９（１０億分の１）である場合、約Ｎ＝１０／１ｅ−９＝１００億個のモンテカルロサンプルが必要となる。そのような膨大な数のサンプルをシミュレーションすることは、必要とされる期間に関して明らかに不当である。
【０００９】
そのような低いｐf値は、実際には、特定の種類の現代の回路において一般的である。そのような回路の中には、単一のチップ上にビットセルが数百万回または数十億回繰り返されるメモリ回路（メガビットまたはギガビットメモリ）があり、したがって、メモリ全体の歩留りが妥当となるように、各ビットセルは、好ましくは、極めて信頼性が高いべきであり（ごく小さいｐfを有する）、多くの場合、同様に繰り返されるセンスアンプ等のサポート回路もまた、非常に信頼性が高い必要がある。さらに、デジタル電子機器は、非常に多くのデジタル標準セルを有するため、各セルは、回路全体の歩留りが適度となるように、好ましくは、極めて信頼性が高いべきである。
【００１０】
１０００万個または１００億個のモンテカルロサンプルをシミュレーションすることは、不当に高価であるため、不良率を推定する他の手法が探索された。
【００１１】
一手法は、より小さい数のモンテカルロサンプル（１０，０００〜１００万）をシミュレーションし、分布の裾のモデルを構築し、次いで、裾を外挿して、裾が許容可能性境界と交差する場所（特定の性能メトリックスの良／不良境界）を発見することである。残念ながら、これは、非常にコンピュータ的に高価であり、外挿法は、かなり不正確な可能性がある。
【００１２】
別の手法は、ＥＣＤの解析モデルを構築し、そのモデルから大きい数のサンプルを取り出すか、またはモデルを解析的に積分することによって不良率を導出することである。残念ながら、これもまた、非常に不正確な可能性がある。さらに、この手法は、異なる回路図毎に繰り返さなければならず、場合によっては、新たな製造プロセスノード毎に修正しなければならない、時間のかかる面倒な手作業を必要とする。
【００１３】
別の一連の手法は、分類または回帰モデルを使用することである。核となる考えは、モデルが、シミュレーションよりはるかに早くサンプルの許容可能性を評価することができるということである。そのような一手法（２００８年３月２８日に出願された、米国特許出願第２００９０２４８３８７号、Ａ．Ｓｉｎｇｈｅｅらの「Ｍｅｔｈｏｄ  ａｎｄ  ａｐｐａｒａｔｕｓ  ｆｏｒ  ｓａｍｐｌｉｎｇ  ａｎｄ  ｐｒｅｄｉｃｔｉｎｇ  ｒａｒｅ  ｅｖｅｎｔｓ  ｉｎ  ｃｏｍｐｌｅｘ  ｅｌｅｃｔｒｏｎｉｃ  ｄｅｖｉｃｅｓ，  ｃｉｒｃｕｉｔｓ  ａｎｄ  ｓｙｓｔｅｍｓ」）は、分布からモンテカルロサンプルを取り出し、その許容可能性の予測に確信がある際、シミュレーションの代わりに許容可能／許容不可能分類子を使用する。別の手法（Ｊ．Ｗａｎｇ、Ｓ．Ｙａｌｄｉｚ、Ｘ．Ｌｉ、およびＬ．Ｐｉｌｅｇｇｉの「ＳＲＡＭ  Ｐａｒａｍｅｔｒｉｃ  Ｆａｉｌｕｒｅ  Ａｎａｌｙｓｉｓ」、Ｐｒｏｃ．ＡＣＭ／ＩＥＥＥ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ、２００９年６月）は、区分線系モデルを適応的に構築し、線系回帰モデルで開始し、各反復で、既知のモデリング誤差または不確実性を伴う、より高い確率のランダム点を選択し、シミュレーションし、モデルに別の「フォールド」を追加する。さらなる手法（Ｃ．ＧｕおよびＪ．Ｒｏｙｃｈｏｗｄｈｕｒｙの「Ａｎ  ｅｆｆｉｃｉｅｎｔ，  ｆｕｌｌｙ  ｎｏｎｌｉｎｅａｒ，  ｖａｒｉａｂｉｌｉｔｙ−ａｗａｒｅ  ｎｏｎ−Ｍｏｎｔｅ−Ｃａｒｌｏ  ｙｉｅｌｄ  ｅｓｔｉｍａｔｉｏｎ  ｐｒｏｃｅｄｕｒｅ  ｗｉｔｈ  ａｐｐｌｉｃａｔｉｏｎｓ  ｔｏ  ＳＲＡＭ  ｃｅｌｌｓ  ａｎｄ  ｒｉｎｇ  ｏｓｃｉｌｌａｔｏｒｓ」、Ｐｒｏｃ．２００８、Ａｓｉａ  ａｎｄ  Ｓｏｕｔｈ  Ｐａｃｉｆｉｃ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ、２００８年、７５４〜７６１ページ）は、前述のものと同様であるが、回帰モデルというよりはむしろ分類モデルを使用する。モデルベースの手法の一般的な問題は、モデルが信用できるものでなければならず、モデルが不正確な場合、結果は不正確であるということである。これらの手法は、わずか６〜１２個の変数の小さい問題でのみ実証されており、５０または１５０個以上の変数における信頼性が高いモデルを有することは、はるかに困難である。
【００１４】
追加の手法は、マルコフ連鎖モンテカルロ（ＭＣＭＣ）を使用する。この手法は、有名なメトロポリスヘイスティングアルゴリズム（Ｎ．Ｍｅｔｒｏｐｏｌｉｓ、Ａ．Ｗ．Ｒｏｓｅｎｂｌｕｔｈ、Ｍ．Ｎ．Ｒｏｓｅｎｂｌｕｔｈ、Ａ．Ｈ．Ｔｅｌｌｅｒ、Ｅ．Ｔｅｌｌｅｒ、「Ｅｑｕａｔｉｏｎｓ  ｏｆ  Ｓｔａｔｅ  Ｃａｌｃｕｌａｔｉｏｎｓ  ｂｙ  Ｆａｓｔ  Ｃｏｍｐｕｔｉｎｇ  Ｍａｃｈｉｎｅｓ」、Ｊｏｕｒｎａｌ  ｏｆ  Ｃｈｅｍｉｃａｌ  Ｐｈｙｓｉｃｓ２１（６）、１９５３年、１０８７〜１０９２ページ）から導出される。統計的サンプリングのためのＭＣＭＣ手法（Ｙ．Ｋａｎｏｒｉａ、Ｓ．Ｍｉｔｒａ、およびＡ．Ｍｏｎｔａｎａｒｉ、「Ｓｔａｔｉｓｔｉｃａｌ  Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ  ｕｓｉｎｇ  Ｍａｒｋｏｖ  Ｃｈａｉｎ  Ｍｏｎｔｅ  Ｃａｒｌｏ」、Ｐｒｏｃ．Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  ａｎｄ  Ｔｅｓｔ  Ｅｕｒｏｐｅ、２０１０年３月）では、サンプリング分布は、まれな許容不可能な事象に向かって適応的に傾斜され、サンプルの「連鎖」内の各後続サンプルは、閾値に基づき、確率的に使用または却下される。残念ながら、実際には、特にＭＣＭＣの専門家ではない人（すなわち、ツールユーザ）にとって、ＭＣＭＣサンプルの安定した「十分に混ざった」連鎖を確実に達成することは困難である。
【００１５】
別の一連の手法は、重要度サンプリングを使用する。代表的な例は、２００８年４月１６日に出願された、米国特許出願公開第２００８／０１９５３２５号、Ｒ．Ｊｏｓｈｉらの「Ｓｙｓｔｅｍ  ａｎｄ  Ｃｏｍｐｕｔｅｒ  Ｐｒｏｇｒａｍ  ｆｏｒ  Ｅｆｆｉｃｉｅｎｔ  Ｃｅｌｌ  Ｆａｉｌｕｒｅ  Ｒａｔｅ  Ｅｓｔｉｍａｔｉｏｎ  ｉｎ  Ｃｅｌｌ  Ａｒｒａｙｓ」である。重要度サンプリングでは、分布は、ＭＣＭＣと同様に、まれな許容不可能なサンプルに向かってシフトされる。しかし、ＭＣＭＣとは異なり、重要度サンプリングは、すべてのサンプルを使用する。不良率を推定する際、真の分布におけるその密度と比較したサンプリング分布におけるその密度に従って、各サンプルに重みを与える。回路解析のための最も有望な重要度サンプリング手法では、「中心」が計算され、続いて重要度サンプリングで使用され、中心は、ガウス分布の平均である。Ｒ．Ｊｏｓｈｉらによる研究では、中心は、各プロセスパラメータの［−６、＋６］の標準偏差の範囲内の一様分布からサンプルを取り出し、最初の３０個の許容不可能なサンプルを保持することによって計算される。本手法（Ｍ．Ｑａｚｉ、Ｍ．Ｔｉｋｅｋａｒ、Ｌ．Ｄｏｌｅｃｅｋ、Ｄ．Ｓｈａｈ、およびＡ．Ｃｈａｎｄｒａｋａｓａｎ、「Ｌｏｏｐ  Ｆｌａｔｔｅｎｉｎｇ  ＆  Ｓｐｈｅｒｉｃａｌ  Ｓａｍｐｌｉｎｇ：  Ｈｉｇｈｌｙ  Ｅｆｆｉｃｉｅｎｔ  Ｍｏｄｅｌ  Ｒｅｄｕｃｔｉｏｎ  Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  ＳＲＡＭ  Ｙｉｅｌｄ  Ａｎａｌｙｓｉｓ」、Ｐｒｏｃ．Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  ａｎｄ  Ｔｅｓｔ  ｉｎ  Ｅｕｒｏｐｅ、２０１０年３月）は、球面サンプリング技法を介して中心を選択する。これらの研究の両方は、わずか６〜１２個の変数の小さい問題で実証された。残念ながら、これらは、選択される中心の確率があまりに低いため、大きい数の次元（ランダム変数）では上手く機能せず、したがって、重みは、不良率の推定に影響を及ぼすには小さすぎ、例えば、１ｅ−８前後であるべき場合に１ｅ−２００のｐfを報告することによって、あまりにも甘い推定をもたらす。現実世界の回路歩留り推定問題では、１００または１０００以上のランダム変数が存在する可能性があり、そのため、重要度サンプリングを、不良を推定するのに妥当な手法であると見なすことはできない。重要度サンプリングシステムの別の欠点は、そのようなツールを使用する設計者に対する透明性の欠如である−設計者が、変化した分布の性質、および分布が最高確率の許容可能性境界に沿って適切にサンプリングするか否かを評価することは困難である。
【００１６】
したがって、ＥＣＤの不良率の推定における改善が望ましい。
【発明の概要】
【００１７】
不良率が低いＥＣＤの不良率を推定する前述のツールおよび方法の少なくとも１つの欠点を取り除くこと、または軽減することが、本発明の目的である。
【００１８】
本開示の実施形態では、ばらつきを表すランダム分布から、Ｎ個のモンテカルロサンプル（点）の集合が取り出される。次いで、これらのサンプルの部分集合がランダムに選択され、そのＮinit個のサンプルの部分集合は、各サンプルの性能値を測定するためにシミュレーションされる（回路シミュレータを用いて）。次いで、Ｎinit個の点を訓練入力として、および対応するＮinit個の性能値を訓練出力として使用して、回帰モデルが構築される。候補モンテカルロサンプルは、Ｎ個のモンテカルロサンプルからのまだシミュレーションされていないものである。各候補は、予測性能値を得るために、回帰モデル上でシミュレーションされ、サンプルは、予測性能値の昇順（または降順）に順序付けされる。次いで、その順序で、順序付けされた候補サンプルのシミュレーションが開始される。つまり、候補は、最悪の出力候補からシミュレーションされる。回帰モデルおよび順序は、以下にさらに記載されるように、定期的に更新されてもよい。サンプリングおよびシミュレーションは、いったんすべての不良が発見されたという十分な確信が得られると停止する。
【００１９】
代替えとして、ばらつきを表すランダム分布から、Ｎ個のモンテカルロまたは準モンテカルロサンプルが取り出される。次いで、所与のサンプル（点）の性能値をもたらすシミュレータからのフィードバックを受けて、各性能（出力）について、ばらつきパラメータ対性能をマップする回帰モデルが構築される。候補モンテカルロサンプルは、Ｎ個のモンテカルロサンプルからのまだシミュレーションされていないものである。各回帰モデル（各出力）について、予測性能値を得るために、各候補サンプルが回帰モデル上でシミュレーションされ、サンプルは、予測性能値（その出力の）の昇順（または降順）に順序付けされる。これらの順序は、インターリーブで、単一の順序に統合される。次いで、その順序で、候補サンプルのシミュレーションが開始される。加えて、例えば、順序付けモデルの品質を改善するために、非候補点（Ｎ個のモンテカルロサンプルの集合からのものではない点）または後ろの方に順序付けされた候補点（集合内ではあるが、順序の前の方ではない点）のシミュレーションもまた、自動的に行われてもよい。回帰モデルおよび順序付けは、定期的に更新されてもよい。サンプリングおよびシミュレーションは、いったんすべての不良が発見されたという十分な確信が得られると停止する。
【００２０】
従来技術と比較した本発明の主な利点は、これは、問題空間について学習する（効率性のために）ためにモデル化を使用するが、他のモデル化手法とは異なり、これは、高モデル精度を必要としないということである。これは、サンプルが許容可能であるか、または許容不可能であるかについての決定を行うためにモデルを使用するというよりはむしろ、サンプルを単に順序付けするためにモデルを使用する。前者のモデルの使用法は、高次元問題では達成することが困難である、はるかに優れたモデル精度を必要とする。
【００２１】
本開示の態様では、電気回路設計（ＥＣＤ）のまれな不良事象を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、ＥＣＤには、プロセス変数および性能メトリックスが関連付けられており、性能メトリックスは、プロセス変数に依存し、プロセス変数は、確率分布を有する、持続性の有形コンピュータ可読媒体が提供される。本方法は、プロセス変数の確率分布から点（プロセス点と称することができる）の集合を生成することと、点の集合から点の部分集合を選択することと、シミュレーションデータを取得するために、点の部分集合の各点のＥＣＤをシミュレーションすることと、性能メトリックス値の集合を取得するために、シミュレーションデータに従って、点の部分集合の各点の性能メトリックスの値を計算することであって、性能メトリックスには、標的値が関連付けられている、ことと、性能メトリックス値の集合に従って、および点の部分集合の各点のプロセス変数の値を用いて、プロセス変数の関数として、性能メトリックスのモデルを構築することと、順序付けされた残りの点を取得するために、モデルに従って、点の集合の残りの点を順序付けすることであって、順序付けされた残りの点は、それに関連付けられる順序を有する、ことと、ＥＣＤ不良の表示カウントを取得するために、停止条件が満足されるまで、順序付けされた残りの点の順序に従って、以下のアクションａ〜ｄ、（ａ）順序付けされた残りの点のシミュレーションデータを取得するために、順序付けされた残りの点をシミュレーションすることと、（ｂ）順序付けされた残りの点のシミュレーションデータに従って、順序付けされた残りの点の性能メトリックスの値を計算することと、（ｃ）順序付けされた残りの点の性能メトリックスの値を標的値と比較することと、（ｄ）順序付けされた残りの点の性能メトリックスの値が標的値を満足しない場合に、ＥＣＤ不良の表示カウントを増加させることと、を反復的に繰り返すことによって、ＥＣＤ不良のカウント数を表示することと、を含む。
【００２２】
本開示の別の態様では、電気回路設計（ＥＣＤ）のまれな事象発生を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、ＥＣＤには、プロセス変数および性能メトリックスが関連付けられており、性能メトリックスは、プロセス変数に依存し、プロセス変数は、確率分布を有する、持続性の有形コンピュータ可読媒体が提供される。本方法は、プロセス変数の確率分布から点の集合を生成することと、点の集合から点の部分集合を選択することと、シミュレーションデータを取得するために、点の部分集合の各点のＥＣＤをシミュレーションすることと、性能メトリックス値の集合を取得するために、シミュレーションデータに従って、点の部分集合の各点の性能メトリックスの値を計算することと、性能メトリックス値の集合に従って、および点の部分集合の各点のプロセス変数の値を用いて、プロセス変数の関数として、性能メトリックスのモデルを構築することと、順序付けされた残りの点を取得するために、モデルに従って、点の集合の残りの点を順序付けすることであって、順序付けされた残りの点は、それに関連付けられる順序を有する、ことと、表示プロットを取得するために、停止条件が満足されるまで、順序付けされた残りの点の順序に従って、以下のアクションａ〜ｃ、（ａ）順序付けされた残りの点のシミュレーションデータを取得するために、順序付けされた残りの点をシミュレーションすることと、（ｂ）順序付けされた残りの点のシミュレーションデータに従って、順序付けされた残りの点の性能メトリックスの値を計算することと、（ｃ）順序付けされた残りの点の性能メトリックスの値を、性能メトリックスの値の分布のプロットに組み込むことと、を反復的に繰り返すことによって、性能メトリックスの値の分布のプロットを表示することと、を含む。
【００２３】
本開示のさらに別の態様では、電気回路設計（ＥＣＤ）のまれな不良事象を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、ＥＣＤには、プロセス変数および性能メトリックスが関連付けられており、性能メトリックスは、プロセス変数に依存し、プロセス変数は、確率分布を有する、持続性の有形コンピュータ可読媒体が提供される。本方法は、プロセス変数の確率分布から点の集合を生成することと、点の集合から点の部分集合を選択することと、シミュレーションデータを取得するために、点の部分集合の各点のＥＣＤをシミュレーションすることと、性能メトリックス値の１つ以上の集合を取得するために、シミュレーションデータに従って、ＥＣＤの１つ以上の性能メトリックスについて、点の部分集合の各点の１つ以上の性能メトリックスの値を計算することと、性能メトリックス値の１つ以上の集合に従って、および点の部分集合の各点のプロセス変数の値を用いて、プロセス変数の関数として、１つ以上の性能メトリックスのそれぞれのモデルを構築することと、１つ以上の性能メトリックスのそれぞれの出力値の事前に確立された関心領域のそれぞれについて、順序付けされた残りの点の集合を取得するために、１つ以上の性能メトリックスのそれぞれのモデルに従って、点の集合の残りの点を順序付けすることであって、順序付けされた残りの点の集合の数は、事前に確立された関心領域の数と等しく、出力値の各事前に確立された関心領域には、標的値が関連付けられている、ことと、点の順序付けされたインターリーブ集合を取得するために、順序付けされた残りの点の集合をインターリーブすることであって、点の順序付けされたインターリーブ集合は、順序を有する、ことと、ＥＣＤ不良の表示カウントを取得するために、停止条件が満足されるまで、点の順序付けされたインターリーブ集合の順序に従って、出力値の事前に確立された関心領域のそれぞれについて、以下のアクションａ〜ｄ、（ａ）点の順序付けされたインターリーブ集合の点をシミュレーションすることと、（ｂ）点の順序付けされたインターリーブ集合の点の性能メトリックスの値を計算することと、（ｃ）点の順序付けされたインターリーブ集合の点の性能メトリックスの値を、その関連標的値と比較することと、（ｄ）点の順序付けされたインターリーブ集合の点の性能メトリックスの値が、その関連標的値を満足しない場合に、ＥＣＤ不良の表示カウントを増加させることと、を反復的に繰り返すことによって、ＥＣＤ不良のカウント数を表示することと、を含む。
【００２４】
本発明の他の態様および特徴は、添付の図面と併せて、以下の本発明の具体的な実施形態の説明を概観すると、当業者に明らかとなるであろう。
【図面の簡単な説明】
【００２５】
ここで、一例として、添付の図面を参照して、本開示の実施形態を記載する。
【図１】不良率を推定する、従来技術の方法を示す。
【図２】本開示の実施形態を図示する、ブロック図を示す。
【図３】ビットセル回路のビットセル電流の分布を示す。
【図４】ビットセル回路図を示す。
【図５】センスアンプ回路図を示す。
【図６】図４のビットセル回路図の出力電流値のプロットを示す。
【図７】サンプル数の関数として、図４のビットセル回路の発見される不良の数のプロットを示す。
【図８】図５のセンスアンプ回路のセンスアンプ出力電力値のプロットを示す。
【図９】サンプル数の関数として、図５のセンスアンプ回路の発見される不良の数のプロットを示す。
【図１０】図５のセンスアンプ回路の遅延のプロットを示す。
【図１１】サンプル数の関数として、図５のセンスアンプ回路の発見される不良の数のプロットを示す。
【図１２】サンプル数の関数として、フリップフロップ回路のＶｈ（高電圧）値のプロットを示す。
【図１３】サンプル数の関数として、図１２に関連するフリップフロップ回路の発見される不良の数のプロットを示す。
【図１４】サンプル数の関数として、フリップフロップ回路のＩｄ電流値のプロットを示す。
【図１５】サンプル数の関数として、図１４に関連するフリップフロップ回路の発見される不良の数のプロットを示す。
【図１６】本開示の別の実施形態を図示する、ブロック図を示す。
【図１７Ａ】サンプル数の関数として、目標値の一般的プロットを示す。
【図１７Ｂ】サンプル数の関数として、目標値の一般的プロットを示す。
【図１７Ｃ】サンプル数の関数として、目標値の一般的プロットを示す。
【図１８】本開示の方法を実施するために、コンピュータが実行するための命令が記憶されている、持続性の有形コンピュータ可読媒体を示す。
【発明を実施するための形態】
【００２６】
概して、本発明は、ランダムばらつきの影響を受ける（すなわち、プロセスばらつきとも称することができる、ランダムばらつきの影響を受ける設計変数を有する）ＥＣＤにおける不良および不良率を識別するための方法ならびにシステムを提供する。
【００２７】
本発明は、低不良率を有するＥＣＤの不良率を効率的に推定するためのシステムおよび方法を提供する。図２は、本発明の方法／システムの例示的なブロック図を図示する。
【００２８】
図２では、ステップ２０２が開始である。本発明への一入力は、設計の表現（デバイスの集合、それらがどのように接続されるか、ならびに幅、長さ、および抵抗等のデバイス寸法）、および回路の性能に影響を及ぼす可能性があるばらつきを表す確率分布である。設計および特定のばらつきサンプル（ばらつき分布から取り出される点）の組み合わせを、ＳＰＩＣＥのような回路シミュレータによってシミュレーションすることができる。設計およびばらつきサンプルの組み合わせがシミュレーションされる際、性能値のベクトル（性能メトリックス値）を取得することができる。以下は、１つの性能メトリックスのみに基づき、不良率を判定することを記載する。複数の性能メトリックスが影響を及ぼす一般的事例は、さらに以下に記載される。
【００２９】
ステップ２０４で、ＥＣＤのばらつきを表すランダム分布から、Ｎ個のモンテカルロサンプル（点）の集合が取り出される。典型的に、ＥＣＤの各デバイスは、それに関連するばらつきを有し、そのばらつきは、デバイスのプロセス変数の確率分布によって表すことができる（それらは、分布に従い、プロセス変数は、ランダム変数であるため）。すべての確率分布の集合（デバイス毎に１つの分布）は、ＥＣＤの全体的確率分布を定義することができる。
【００３０】
プロセス変数は、本質的にランダムであり、ＥＣＤの製造に関与するプロセスステップに関連する。そのような変数には、最終的にＥＣＤの電気特性および性能メトリックスに影響を及ぼす可能性がある、例えば、ゲート酸化物の厚さ、基板ドーピング濃度、シート抵抗、移動度、ならびにデバイス長さおよび幅の変動を挙げることができる。
【００３１】
続いて、ステップ２０６で、Ｎ個のサンプルのうちのＮinit個のサンプルの部分集合がランダムに選択され、２０８で、ＥＣＤは、各サンプルの所与の性能メトリックス（同一の性能メトリックス）の値を取得するために、そのＮinit個のサンプルの部分集合でシミュレーションされる（回路シミュレータを用いて）。次いで、２１０で、Ｎinit個の点を訓練入力として、および対応するＮinit個の性能値を訓練出力として使用して、その性能メトリックスの回帰モデルが構築される。
【００３２】
任意の好適な種類の回帰モデルが、本開示の範囲内である。例えば、回帰モデルには、線形モデル、多項式モデル、スプラインモデル、ガウス過程モデル、ニューラルネットワーク、ＭＡＲＳモデル（Ｊ．Ｈ．Ｆｒｉｅｄｍａｎ、多変量適応型回帰スプライン、Ａｎｎａｌｓ  ｏｆ  Ｓｔａｔｉｓｔｉｃｓ、Ｖｏｌ．１９、Ｎｏ．１、１９９１年）、ＦＦＸ（高速関数抽出）モデル（Ｔ．ＭｃＣｏｎａｇｈｙ、Ｈｉｇｈ−ｄｉｍｅｎｓｉｏｎａｌ  ｓｔａｔｉｓｔｉｃａｌ  ｍｏｄｅｌｉｎｇ  ａｎｄ  ａｎａｌｙｓｉｓ  ｏｆ  ｃｕｓｔｏｍ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ、Ｐｒｏｃ．Ｃｕｓｔｏｍ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ、２０１１年９月）、またはこれらの組み合わせを挙げることができ、これらはすべて、本開示の範囲内である。一実施例として、コンパレータのバンド幅（ＢＷ）は、ＢＷ＝１．７１ｅ７−４．５７ｅ５＊ｘcm1,m1,lint＊ｘcm1,m2,lint＋５．２３ｅ４＊ｘ2cm1,m1,lint＋４．８０ｅ４＊ｘ2cm1,m2,lintによる、プロセス変数「ｘ」の多項式関数であってもよく、式中、例えば、ｘcm1,m1,lintは、電流ミラーＣＭ１上のトランジスタＭ１の長さのばらつきである。
【００３３】
２１２で、予測性能値を得るために、まだシミュレーションされていない候補モンテカルロサンプルが、回帰モデル上でシミュレーションされ、また、２１２で、候補サンプルは、予測性能値の昇順（または降順）に順序付けもされる。出力、すなわち、例えば、利得であってもよい性能メトリックスを最大化することが望ましい場合、最悪の場合の値は、最小値であり、サンプルは、昇順である。逆に、性能メトリックス（例えば、電力消費）を最小化することが望ましい場合、サンプルは、降順に順序付けされる。別の実施例では、ビットセルでは、所定の値未満のビットセル電流を有することが望ましい場合がある。そのような場合では、サンプル（順序付けされるサンプル）は、それらの予測ビットセル電流値の降順に順序付けされるであろう。図３は、ビットセルの電流のそのような実施例に関し、回帰モデルに基づく、予測ビットセル電流の関数として、モンテカルロサンプルの確率分布関数を示す。本実施例では、ビットセル電流仕様は、最大許容可能値を有する。そのため、サンプルは、高予測電流から低予測電流に順序付けされる。最初の９個の順序付けされたサンプルは、１〜９とラベル付けされる。
【００３４】
図２のステップ２１４で、判定された順序で、順序付けされた候補のシミュレーションが開始される。サンプルを、それぞれＮorder個のサイズのバッチでシミュレーションすることができる。シミュレーション結果が戻り、結果を、例えば、シミュレーションが不適合となったシミュレーション出力値、取得された不良の数、すべての不良が発見されたと見なした推定不良率、およびその他の形態で、ユーザディスプレイ２２０に出力することができる。不良率は、（不良の数）／（サンプルの総数Ｎ）として推定される。２１６で、すべての不良が発見されたと判定される場合、システムは、２１８で停止する。すべての不良が発見されたか否かの判定は、自動的に、またはユーザがディスプレイからフィードバックを得ることによって行うことができる。システムが停止しない場合、フローは、２１０に再ループすることができる。シミュレーションからちょうど取得された追加のデータを用いて、回帰モデルを再訓練することができ、２１２で、残りの候補サンプルを再順序付けし、次いで２１４で、シミュレーションすることができる。ループは、すべての不良が発見されるまで継続することができる。いったんすべての不良が発見されると、システムは、２１８で停止することができる。
【００３５】
以下は、１つが単一の出力を伴い、２つがそれぞれ２つの出力を有する、３つのＥＣＤの５つの異なる高歩留り（低ｐf）問題への本開示の適用を示す。ＥＣＤは、代表的なメモリ回路であるビットセルおよびセンスアンプ、ならびに代表的なデジタル標準セルであるフリップフロップである。回路は、妥当なデバイス寸法を有し、例えば、それらは、公称でスペックに適合し、標的歩留りに近い歩留りを有する妥当な可能性を有する。デバイス毎に約５〜１０個のローカルプロセス変数を有する、現代の産業の４５ｎｍプロセスからのデバイスモデルが使用される。ビットセルは、３０個のプロセス変数を有し、センスアンプは、１２５個のプロセス変数を有し、フリップフロップは、１８０個のプロセス変数を有する。図４は、例示的なビットセルの回路図を示す。図５は、例示的なセンスアンプの回路図を示す。
【００３６】
実験用の方法論は、以下の通りである。各問題について、問題のＥＣＤの確率分布（プロセス変数の）からＮ個のモンテカルロサンプル（ランダムサンプル）が取り出され、回路シミュレータを用いて、これらのランダムサンプルのすべてでのＥＣＤがシミュレーションされる。これらのシミュレーションは、本開示の方法が試験／比較される、「高品質」結果を形成する。これらの試験の場合では、Ｎ個のサンプルのうちのｘ個が不適合となる（ｘは、例えば、１００であってもよい）ように、出力仕様を設定することができる。出力仕様は、ビットセルでは、ビットセル電流であり、センスアンプでは、センスアンプ電力およびセンスアンプ遅延であり、フリップフロップでは、電圧出力および電流出力である。
【００３７】
上記の「高品質」結果においてＭＣサンプルを生成するために使用されたものと同一のランダムシードを使用して、取り出された（または生成された）モンテカルロサンプルの数Ｎgen＝Ｎ個で、図２に示される例示的な方法が使用された。図２の方法は、ビットセルではＮ＝１５０万個、センスアンプではＮ＝１００万個、およびフリップフロップではＮ＝１００万個で、Ｎgen個のサンプルのうちの１００個が不適合となるようなスペック設定で、２００００個のシミュレーションを実行した。
【００３８】
図６は、サンプル数の関数として、２００００個のモンテカルロサンプルの計算ビットセル電流をプロットする。計算は、シミュレーションデータを取得するために、回路シミュレータを用いて、ビットセルをシミュレーションすることによって、およびシミュレーションデータに従ってビットセル電流を計算することによって実施される。下方の曲線５００は、順序付けされていないモンテカルロサンプルのものであり、上方の曲線５０２は、ビットセル電流の回帰モデル毎に順序付けされたモンテカルロサンプルのものである。曲線５０４は、本方法が完璧な挙動を有する場合の「理想」曲線であり、そのため、この「理想」曲線は、本方法と比較するのに有用である。この「理想」曲線５０４は、減少ビットセル電流の関数として順序付けされたＭＣサンプルで取得された電流を示す、つまり、１５０万個のＭＣサンプルのそれぞれのビットセル電流が取得され、ＭＣサンプルは、減少ビットセル電流の関数として順序付けされる。曲線５０４を取得するために、回帰モデルは使用されない。ＭＣサンプルのうちの２００００個のみが、曲線５０４上に示されている。定義上、理想のソート順序は、単調に減少し、これは、曲線５０４と一致する。モンテカルロサンプリング曲線５００は、ランダムに挙動する。バイアスを有さないと、モンテカルロサンプル（点）出力値は、全範囲にわたって分布し、そのため、ＭＣサンプル単独のシミュレーションは、最悪の場合の値を発見するのが非常に遅い。
【００３９】
曲線５０２は、最悪の場合の値で開始し、いくらかのノイズを伴う、概して下向きの傾向を有する。傾向は、曲線５０２が、プロセス変数対出力値から、概略的関係を捕捉していることを示す。ノイズは、回帰モデルが、予期される、ある誤差を有することを示す。モデリング誤差が低いほど、ノイズは低く、図２に示される方法が不良を発見するのがより速い。５０６で示される約２０００個のサンプルで、曲線５０２の下側範囲の値は急上昇する。これは、ビットセル電流を推定するために使用されるモデルが、その点で再構築され、これが、その点以降の順序付けをより正確にしたためである。モデルは、シミュレーションされた（回路シミュレーションされた）ＭＣサンプルのシミュレーション結果、元の回帰モデルを構築するために開始時にシミュレーションされたもの、および最大で〜２０００個のサンプル数のシミュレーションビットセル電流データを取得するために、その後にシミュレーションされたものを使用して再構築された。場合によっては、５０８で示される約１０，５００個のサンプル等では、図２に示される方法は、本方法の成功が、誤差許容範囲内であると予測されるあらゆるサンプルを得ることに依存しないため、いくつかの点は、極大値を有する場合があるが、シミュレーションされた際、これらは、許容可能である可能性がある極小値を有したことを予測した。むしろ、成功は、方法が最悪の場合をいかに早く発見することができるかに基づく。
【００４０】
図６の曲線５０２は、本方法の挙動の透明性を提供し、方法がいかに上手く不良の発見を実施するかを理解することを可能にする。ノイズエリアの幅は、所与の仕様値（性能メトリックス値）について、すべての不良が発見されたと結論付ける前に、どれくらいの余地が与えられるべきかを示す。明確な傾向は、本方法が正常に機能しており、この場合では、ビットセル電流の分布の裾を概略的に描いていることを示す。
【００４１】
本方法の不良の発見における有効性は、標的仕様（標的性能メトリックス値）に依存する。正しいセットアップ（ＥＣＤ問題セットアップ）は、仕様を満足するために、典型的に、生成されるサンプルの数内に１００個より少ない不良を含むことができる。より多い不良が存在する場合、ＥＣＤは、その標的歩留りを満足しないか、または標的歩留りに対してあまりに多くのサンプルが生成されたかのいずれかである。同様に、標的仕様を満足する不良が存在しない場合、設計は、過度の余地があるか、または標的歩留りを検証するのに十分なサンプルが生成されなかったかのいずれかである。したがって、例示的な本方法は、仕様を満足するために、最大で１００個の不良を発見することさえできればよく、大幅な順序付け誤差の許容範囲を可能にし、一方、依然として、許容可能なシミュレーション予算内で機能する。ビットセル例では、図７に示されるように、本方法は、その最初の５０００個の予測サンプル内で最初の１００個の不良を発見する。１００個の不良を含有する１５０万個のモンテカルロサンプルでは、ＭＣシミュレーションは、５０００個のサンプル内で１つの不良も発見しないことに留意する。
【００４２】
ビットセル例は、予測誤差の順序付けに対するその弾力性である、本方法の重要な強みのうちの１つを示す。順序付けモデルは、妥当な数のシミュレーション内の高歩留り分布の極裾において、モンテカルロおよびＳＰＩＣＥ（回路シミュレータ）の正確な結果をもたらすために、完全に正確である必要はない。
【００４３】
図８は、サンプル数の関数として、２００００個のモンテカルロサンプルの計算センスアンプ電力出力の曲線を示す。計算は、シミュレーションデータを取得するために、回路シミュレータを用いて、センスアンプをシミュレーションすることによって、およびシミュレーションデータに従ってセンスアンプ電流を計算することによって実施される。下方の曲線５２０は、順序付けされていないモンテカルロサンプルのものであり、上方の曲線５２２は、センスアンプ出力電力の回帰モデル毎に順序付けされたモンテカルロサンプルのものである。「理想」曲線、曲線５２４は、減少センスアンプ出力電力の関数として、適切に順序付けされた１００万個のモンテカルロサンプルで取得されたセンスアンプ出力電力を示す。最初の２００００個のサンプルのみが、曲線５２４内に示されている。図９は、シミュレーションされるＭＣサンプルの数の関数として、発見される不良の数のグラフを示す。図８および図９（センスアンプに関する）の概略的挙動は、図６および図７（ビットセルに関する）と同様であるが、しかしながら、センスアンプ事例では、最初の１０００個のサンプル内ですべての１００個の不良が発見される（図９参照）。図８において、曲線５２２内に示されるノイズの量が曲線５２０内のノイズと比較して明らかに低いことから、順序付けモデルの効果を見ることができる。このように、センスアンプ出力例は、図２の例示的な方法が、より優れた順序付けモデルを用いて、いかに効率性を得るかを図示する。これは、単に、センスアンプ順序付けモデルがビットセル順序付けモデルより低い誤差を有したことを示す。しかし、本方法が、より高い誤差にも関わらず、ビットセルのすべての不良を発見したという事実は、本方法のより高いモデル誤差に対する弾力性を強調する。
【００４４】
図１０および図１１は、図２の方法を、センスアンプの遅延出力にどのように適用することができるかを示す。この出力は、大部分のサンプル値が約０．１ｅ−９秒（０．１ｎ秒）であり、不良事例が、約１．５ｅ−９秒の値を有する、二峰性分布を有する。スペックをその間に設定する。１００万個のＭＣサンプルに、６１個（前述の実施例での１００個というよりはむしろ）の不良サンプルが存在する。図１０は、本方法が、その最初の９０００個のサンプル内ですべての不良を発見することを示す。本方法は、早い方のサンプルで最高であり、減少する頻度で不良を発見する。曲線６００では、不良の頻度が最初に高く、次いで降下するため、順序付けモデルが適していることを、図１０の出力対サンプルプロット上で視覚的に見ることができる。また、大きい範囲のサンプルにわたって（すなわち、サンプル＃９０００〜＃１５０００）、新たな不良が発見されないため、すべての不良が発見された可能性が高いことも見ることができる。理想曲線６０２およびランダムサンプル曲線６０４もまた、示されている。図１１は、この挙動をさらに示し、ＨＳＭＣが９０００個のサンプル内ですべての６１個の不良を発見し、不良の大部分を最初の１０００個のサンプル内で発見することが分かる。
【００４５】
図１２および図１３は、フリップフロップのＶｈ出力におけるＨＳＭＣの挙動を示す。曲線６１０が、本方法に基づき、出力対サンプル収束においてほぼ理想的に振る舞い、本方法は、５００個未満のサンプル内で１００／１００個の不良を発見することが分かる。６１２で、理想曲線が示され、順序付けされたていないＭＣ曲線が６１４で示されている。
【００４６】
この場合も同様に、サンプリング領域（曲線６１４）と比較して、曲線６１０のノイズの量がいかに視覚的に小さいかに留意する。この場合も同様に、ノイズの量は、サンプル順序付けモデルの有効性の適した指標である。
【００４７】
図１４および図１５は、フリップフロップのＩｄ電流出力の挙動への本方法の適用を示す。図１４は、図２の例示的な方法を通して取得される曲線６２０が、極大に向かってバイアスがかかっている一方で、高度のノイズを有することを示す。これは、基礎となるモデルが、全体傾向は捕捉しているが、局所傾向の捕捉における大幅な誤差を有することを意味する。この大幅な誤差にも関わらず、これは、依然として妥当な効率性で不良を発見する。また、図１４には、理想曲線６２２、およびランダムに選択されたサンプルに関連する曲線６２４も示されている。図１５は、本方法が、２００００個のシミュレーションの後に、１００個の不良のうちの２６個を発見したことを示す。
【００４８】
図１４および図１５に示される結果は、本方法が実行時間にどのように自己検証することができるか、および質の悪い順序付けモデルでさえ、どのように本方法が依然として有用な結果をもたらすことができるかを示す。そのような場合では、ユーザ／設計者は、本方法が、２００００個のシミュレーション内で信頼できる結果をもたらしていないことを明確に分かることができるであろう。このことから、設計者は、より多くの解決を得るため、１００万個のサンプルを用いたモンテカルロ、それに続く外挿等の別の技法を用いて検証を称賛するため、もしくは重要度サンプリングのために、追加のシミュレーションを実行するか、または不確実性に対処するために、ある追加の余地を伴って設計するかのいずれかを選択することができる。また、設計者は、続く反復において、設計にここで発見される高シグマコーナー（不良をもたらすプロセス点）を使用することもできる。より具体的には、設計者がデバイス寸法を反復的に変更し、「コーナー」を回路シミュレータでシミュレーションすることによってフィードバックを得るフローにおいて、不良をもたらしたプロセス点のうちのいくつかを「コーナー」として使用することができ、設計者は、いったんコーナーでの性能が満足されると停止し、この時点で、設計者は、新しい設計の不良率を発見するために、次いで本方法を再実行してもよい。
【００４９】
繰り返すが、本方法の重要な利点は、その出力対サンプル収束曲線の品質を評価する能力により、誤った方向に導かないということである。
【００５０】
図１６は、本発明の代替えの方法／システム実施形態を図示する、ブロック図である。図２と比較すると、これは、より多種多様な実現形態選択肢に適合する。しかし、両方の実施形態は、不良事例に焦点を当てるように、ランダムに取り出されたサンプルの集合が順序付けされ、次いで、すべての不良が発見されるまで、その順序でシミュレーションされるという性質を共有する。
【００５１】
次の数段落は、図１６のフローを記載する。ステップ３０２が開始である。システムは、図２の前述の実施形態で記載されるものと同一の入力を有する。次いで、ステップ３０４で、ＥＣＤのプロセスばらつきを表すランダム分布から、Ｎ個のサンプル（点）の集合が取り出される。これらは、モンテカルロサンプリング（また、疑似ランダムサンプリングとしても知られる）を使用して、または確率分布からバイアスがかかっていないサンプルを取り出すという点でモンテカルロサンプリングと類似する準モンテカルロ（ＱＭＣ）サンプリングを使用して取り出すことができる。ＱＭＣは、同一の数のサンプルの統計的推定において、より低い分散に変換することができる、ランダム変数空間中への「より良好な広がり」（より低い矛盾）を有するサンプルを生成することを目的とするという点で異なる。ＱＭＣサンプリング技法には、ハルトン列（Ｊ．Ｈａｌｔｏｎ、Ｏｎ  ｔｈｅ  ｅｆｆｉｃｉｅｎｃｙ  ｏｆ  ｃｅｒｔａｉｎ  ｑｕａｓｉ−ｒａｎｄｏｍ  ｓｅｑｕｅｎｃｅｓ  ｏｆ  ｐｏｉｎｔｓ  ｉｎ  ｅｖａｌｕａｔｉｎｇ  ｍｕｌｔｉ−ｄｉｍｅｎｓｉｏｎａｌ  ｉｎｔｅｇｒａｌｓ、Ｎｕｍｅｒｉｓｃｈｅ  Ｍａｔｈｅｍａｔｉｋ、２：８４〜９０、１９６０年）、ハマーズレイ列（Ｊ．Ｈａｍｍｅｒｓｌｅｙ、Ｍｏｎｔｅ  Ｃａｒｌｏ  ｍｅｔｈｏｄｓ  ｆｏｒ  ｓｏｌｖｉｎｇ  ｍｕｌｔｉｖａｒｉａｔｅ  ｐｒｏｂｌｅｍｓ、Ａｎｎａｌｓ  ｏｆ  ＮＹ  Ａｃａｄｅｍｙ  ｏｆ  Ｓｃｉｅｎｃｅ、８６：８４４〜８７４、１９６０年）、およびその他を挙げることができる。
【００５２】
図１６では、ステップ３０６で、初期サンプル順序付けモデルが構築される。各関心出力（性能メトリックス）に対して、または代替えとして、各出力の各目標（例えば、昇順での最小目標、降順での最大目標、または両方）に対して、１つのモデルが構築される。各モデルの入力は、ばらつき確率分布のランダム変数である。各モデルの出力は、モデル化する性能値（性能メトリックス値）である。Ｎ個のモンテカルロまたは準モンテカルロサンプルの部分集合をランダムに選択し、これらをシミュレーションし、各性能メトリックスの回帰モデルを構築することを伴う、図２に示される方法のように、モデルを構築することができる。代替えとして、Ｎ個のモンテカルロまたは準モンテカルロサンプルを無視し、代わりに入力空間内の任意の範囲の入力点の集合を作成し、これらをシミュレーションし、入力点対シミュレーション性能値をマッピングするモデルを構築することによって、モデルを構築することができる。代替えとして、いくつかの初期サンプルが選択され、シミュレーションされ、回帰モデルが構築され、次いで、回帰モデルが最高不確実性（例えば、ガウス過程モデル上での予測における最高分散）を有する新しいサンプルが入力点として選択され、次いでこれらのサンプルがシミュレーションされる適応型で、各モデルを構築することができる。サンプルを選択し、シミュレーションし、不確実性を測定するというサイクルは、標的誤差が達成されるまで繰り返される。不確実性のモデル化に加えて、予測値および不確実性値のモデル化の重み付き組み合わせ等の他の基準も使用されてもよい。いずれの場合でも、ステップ３０６の終わりには、ばらつき入力パラメータ対性能出力をマップする、回帰モデルの集合が存在する。
【００５３】
フローは、図１６のステップ３０８に進む。候補モンテカルロサンプルは、Ｎ個のモンテカルロサンプルからのまだシミュレーションされていないものである。ステップ３０８で、Ｎnext個のサンプルの集合が、以下のように選択される。予測性能値を得るために、各回帰モデルについて、モデル上で各候補サンプルがシミュレーションされ、サンプルは、予測性能値の昇順（または降順）に順序付けされる。出力毎に１つ（または出力に２つ以上の関心領域が含まれている場合では、目標毎に１つ）のこれらの順序は、単一の順序に統合される（例えば、インターリービングを介して）。
【００５４】
例えば、３つの目標の場合では、目標１は、ＥＣＤの最大電力であり、目標２は、ＥＣＤの最小電力であり、目標３は、ＥＣＤの利得であってもよい。本実施例では、目標１および目標２は、電力の分布関数の反対の端部の２つの関心領域であり得る。図１７Ａ、図１７Ｂ、および図１７Ｃは、サンプル数の関数としてプロットされた、順序付けされた目標１、２、および３を示す。目標１の順序付けされたサンプルがｓ５０５、ｓ１０、ｓ１、ｓ３、・・・であり、目標２の順序付けされたサンプルがｓ１２、ｓ９、ｓ１０、ｓ２、・・・であり、目標３の順序付けされたサンプルがｓ７、ｓ５、ｓ８、ｓ１１、・・・である場合、インターリーブサンプルは、ｓ５０５、ｓ１２、ｓ７、ｓ１０、ｓ９、ｓ５、ｓ１、ｓ１０、ｓ８、ｓ３、ｓ２、ｓ１１、等である。しかしながら、サンプルｓ１０が２回発生するため、２回シミュレーションされる必要はなく、インターリーブサンプルリストから削除することができる。
【００５５】
加えて、非候補または後ろの方に順序付けされた点のシミュレーションもまた、行われてもよい。例えば、新しいサンプルが、モデルが最大誤差を有する入力点として選択される。これを行うことは、モデルのそれらが最も不確実な領域を継続的に改善するのを助長する。または、いくつかの候補点が、バイアスなく（バイアスを順序付けするというよりはむしろ）ランダムに選択されてもよい。これを行うことは、真の分布からわずかなサンプルを取り出すことによって、より優れた予期される「最悪の場合」収束を得る、「混合」重要度サンプリングと同様に、アルゴリズムに、より優れた予期される「最悪の場合」収束を与える。最初の順序付けされた候補は、追加の点と共に、選択されたＮnext個のサンプルとなる。
【００５６】
図１６のステップ３１０で、Ｎnext個のサンプルがシミュレーションされる。サンプリングおよびシミュレーションは、いったんすべての不良が発見されたという十分な確信が得られると、または別の停止基準が満足されると、３１２で停止する。他の停止基準には、最大実行時間の超過、サンプルの最大数の超過、または今までのところのシミュレーションを考慮して、標的歩留りに達する能力が証明または反証されたことの発見が挙げられる。
【００５７】
図１６のステップ３１４で、更新されたシミュレーションデータを使用して、回帰モデルのうちのいくつかが再構築されてもよい。これは、典型的に、既存のモデルが、予測順序の誤差をもたらす、シミュレーション出力値と比較して高い出力値の予測における誤差を有する際に生じる。
【００５８】
図１６では、シミュレーションおよびモデル化の結果は、ユーザディスプレイ３１８およびデータベース等の記憶媒体３２０の両方に出力される。場合によっては、結果は、記憶媒体に出力され、次いでディスプレイに渡される。図２のように、ディスプレイ３１８は、シミュレーションが不適合となったシミュレーション出力値、およびすべての不良が発見されたと見なした推定不良率を示してもよい。また、不良率は、例えば、ウィルソン二項分布推定（Ｅ．Ｂ．Ｗｉｌｓｏｎ、Ｐｒｏｂａｂｌｅ  ｉｎｆｅｒｅｎｃｅ，  ｔｈｅ  ｌａｗ  ｏｆ  ｓｕｃｃｅｓｓｉｏｎ，  ａｎｄ  ｓｔａｔｉｓｔｉｃａｌ  ｉｎｆｅｒｅｎｃｅ、Ｊｏｕｒｎａｌ  ｏｆ  ｔｈｅ  Ａｍｅｒｉｃａｎ  Ｓｔａｔｉｓｔｉｃａｌ  Ａｓｓｏｃｉａｔｉｏｎ、Ｖｏｌ．２２、２０９〜２１２ページ、１９２７年）を用いて、または任意の他の好適な種類の推定を用いて計算される、上および下信頼区間の推定も含んでもよい。ディスプレイは、各出力または目標の不良率を示してもよく、すべての出力にわたる集計不良率（全体的不良率の）を示してもよい。ディスプレイは、各出力または全体のすべての不良が発見されたという確信の推定を示してもよい。ディスプレイは、各出力および目標（最小もしくは最大または両方）のシミュレーション出力値対予測サンプル順序番号のプロットを示してもよい。または、シミュレーション出力値対サンプル数のプロット内にモデル予測出力値、モデル予測上界、モデル予測下界も有するバージョンを示してもよい。ディスプレイは、各出力および目標の実際のサンプル順序番号対予測サンプル数のプロットを示してもよい。ディスプレイは、各出力および目標の実際対予測サンプル数の相関を示してもよい。ディスプレイは、頻度プロットで、今までのところのすべてのサンプル値を示し、所与の出力および目標の予測される最悪の場合の値を、例えば、異なる色でハイライトしてもよい。ディスプレイは、各出力、または各出力および目標のプロセスパラメータに対する出力値の感度を示してもよい。ディスプレイは、曲線の裾の計算される分布を示し、それを示してもよく、分布の裾を計算する手法には、極値理論、および性能値対出力変位値からの１ｄモデルマッピングの構築を挙げることができる。ディスプレイは、各出力の裾だけではない分布を計算し、それを示してもよい。ディスプレイが接続されるシステムは、ユーザが不適合となった任意の点を選択し、他のツールが使用するためにこれらの点をエクスポートするための手段を含んでもよい。ディスプレイは、出力裾の標的パーセンタイル値（例えば、１ｅ−６thおよび１−１ｅ−６thパーセンタイル値）での代表的なランダム点を計算し、これらの点およびそれらの出力値を表示し、他のツールが使用するために、これらの点をエクスポートしてもよい。
【００５９】
追加の代替えの実施形態は、各サンプル（ばらつき点）が、「最悪の場合のコーナー」の集合にわたってシミュレーションされることを除き、図１６の実施形態と同様である。これらのコーナーは、温度、負荷、電源電圧、およびＦＦ／ＳＳ／等のモデル集合に捕捉される統計的ばらつき等、他の制御不可能なばらつきをモデル化することができる。（ＣＭＯＳデバイスモデルは、高速、低速、または典型挙動を有することができるＮＭＯＳコンポーネント、および同様に高速、低速、または典型挙動を有することができるＰＭＯＳコンポーネントをモデル化するために、それらのグローバルプロセス変数集合を有することができる。次いで、例えば、高速ＮＭＯＳ／高速ＰＭＯＳ（ＦＦ）、高速ＮＭＯＳ／低速ＰＭＯＳ（ＦＳ）、低速ＮＭＯＳ／高速ＰＭＯＳ（ＳＦ）、低速ＮＭＯＳ／低速ＰＭＯＳ（ＳＳ）、または典型ＮＭＯＳ／典型ＰＭＯＳ（ＴＴ）グローバルプロセスコーナーで、ＣＭＯＳデバイスを解析することができる。これらのグローバルプロセスコーナーは、速度および電力のデジタル回路の重要な性能特性を一括するように設計される。）いったんサンプルがこれらのコーナーにわたってシミュレーションされると、最悪の場合の値が取られ、モデルおよび他の場所で使用される。最悪の場合の作用素は、目標が最小である際は最小であり（昇順）、目標が最大である際は最大である（昇順）。ユーザディスプレイは、すべての最悪の場合のコーナーにわたる結果の表示を含んでもよい。
【００６０】
さらなる代替えの実施形態は、最悪の場合の意義で考慮することができる他の制御不可能なばらつきパラメータが存在し、それらが回帰モデルへの追加入力変数として扱われることを除き、図１６の実施形態と同様である。これらのパラメータには、温度、負荷、電源電圧、およびＦＦ／ＳＳ／等のモデル集合を挙げることができる。図１６のステップ３０６は、ランダムばらつき空間の「最悪の場合の」ばらつき空間との和集合内に十分に広がった入力点を取り出し、ランダムおよび最悪の場合のパラメータの和集合を出力にマップするモデルを構築することに関与する。
【００６１】
本発明の実施形態は、電気システム（ＥＣＤ）に関して記載されてきた。しかしながら、当業者が理解するであるように、また、本開示は、電気システム以外のシステムにも適用可能である。例えば、中でも特に、また、金融システムおよび天気システムも、本明細書に記載される方法およびシステムを使用することができる。
【００６２】
前述の説明では、実施形態の完全な理解を提供するために、説明のための数多くの詳細が説明される。しかしながら、これらの具体的な詳細は要求されないことが当業者には明らかであろう。他の例では、周知の電気的構造および回路は、理解を不明瞭にしないために、ブロック図形態で示されている。例えば、本明細書に記載される実施形態が、ソフトウェアルーチン、ハードウェア回路、ファームウェア、またはこれらの組み合わせとして実現されるかについての具体的な詳細は提供されていない。
【００６３】
本開示の実施形態を、機械可読媒体（コンピュータ可読媒体、プロセッサ可読媒体、またはその中に具現化されるコンピュータ可読プログラムコードを有するコンピュータ使用可能媒体とも称される）に記憶されるコンピュータプログラム製品として表すことができる。機械可読媒体は、磁気、光学、あるいはディスケット、小型ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、メモリデバイス（揮発性もしくは不揮発性）、または同様の記憶機構を含む電気記憶媒体を含む、任意の好適な有形の持続性媒体であってもよい。機械可読媒体は、様々な一連の命令、コードシーケンス、設定情報、または実行される際に、プロセッサに本開示の実施形態に従って方法のステップを実施させる他のデータを含有することができる。当業者は、記載される実現形態を実現するために必要な他の命令および動作もまた、機械可読媒体に記憶することができることを理解するであろう。機械可読媒体に記憶される命令は、プロセッサまたは他の好適な処理デバイスによって実行することができ、記載されるタスクを実施するように回路とインターフェースを取ることができる。図１８は、本開示の方法を実施するために、コンピュータが実行するための命令１０１０が記憶されている、コンピュータ可読媒体１０００を示す。
【００６４】
上記の実施形態は、一例であることが意図される。添付の特許請求の範囲によってのみ定義される範囲から逸脱することなく、当業者によって、特定の実施形態に対する代替え、修正、および変形が達成されてもよい。
【図１】
0005860054.tif 000002
【図２】
0005860054.tif 000003
【図３】
0005860054.tif 000004
【図４】
0005860054.tif 000005
【図５】
0005860054.tif 000006
【図６】
0005860054.tif 000007
【図７】
0005860054.tif 000008
【図８】
0005860054.tif 000009
【図９】
0005860054.tif 000010
【図１０】
0005860054.tif 000011
【図１１】
0005860054.tif 000012
【図１２】
0005860054.tif 000013
【図１３】
0005860054.tif 000014
【図１４】
0005860054.tif 000015
【図１５】
0005860054.tif 000016
【図１６】
0005860054.tif 000017
【図１７Ａ】
0005860054.tif 000018
【図１７Ｂ】
0005860054.tif 000019
【図１７Ｃ】
0005860054.tif 000020
【図１８】
0005860054.tif 000021