特許第5860054号(P5860054)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソリド デザイン オートメーション インコーポレイティドの特許一覧

特許5860054まれな不良事象率を識別するための方法およびシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5860054
(24)【登録日】2015年12月25日
(45)【発行日】2016年2月16日
(54)【発明の名称】まれな不良事象率を識別するための方法およびシステム
(51)【国際特許分類】
   G06F 17/50 20060101AFI20160202BHJP
   G06F 19/00 20110101ALI20160202BHJP
【FI】
   G06F17/50 662G
   G06F19/00 110
【請求項の数】18
【全頁数】24
(21)【出願番号】特願2013-535224(P2013-535224)
(86)(22)【出願日】2011年10月27日
(65)【公表番号】特表2013-542526(P2013-542526A)
(43)【公表日】2013年11月21日
(86)【国際出願番号】CA2011050673
(87)【国際公開番号】WO2012055045
(87)【国際公開日】20120503
【審査請求日】2014年10月9日
(31)【優先権主張番号】61/407,230
(32)【優先日】2010年10月27日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】513105498
【氏名又は名称】ソリド デザイン オートメーション インコーポレイティド
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100119987
【弁理士】
【氏名又は名称】伊坪 公一
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(74)【代理人】
【識別番号】100180806
【弁理士】
【氏名又は名称】三浦 剛
(72)【発明者】
【氏名】トレント ローン マッコナジー
(72)【発明者】
【氏名】ジョエル クーパー
(72)【発明者】
【氏名】ジェフリー ディック
(72)【発明者】
【氏名】カイル フィッシャー
【審査官】 松浦 功
(56)【参考文献】
【文献】 特開2010−160787(JP,A)
【文献】 特開2010−122832(JP,A)
【文献】 特開2011−113291(JP,A)
【文献】 特開2012−043093(JP,A)
【文献】 米国特許出願公開第2006/0203581(US,A1)
【文献】 米国特許出願公開第2009/0248387(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/50
G06F 19/00
(57)【特許請求の範囲】
【請求項1】
電気回路設計(ECD)のまれな不良事象を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、前記ECDには、プロセス変数および性能メトリックスが関連付けられており、前記性能メトリックスは、前記プロセス変数に依存し、前記プロセス変数は、確率分布を有し、前記方法は、
前記プロセス変数の前記確率分布から点の集合を生成することと、
点の前記集合から点の部分集合を選択することと、
シミュレーションデータを取得するために、点の前記部分集合の各点の前記ECDをシミュレーションすることと、
性能メトリックス値の集合を取得するために、前記シミュレーションデータに従って、点の前記部分集合の各点の性能メトリックスの値を計算することであって、前記性能メトリックスには、標的値が関連付けられている、ことと、
性能メトリックス値の前記集合に従って、および点の前記部分集合の各点の前記プロセス変数の値を用いて、前記プロセス変数の関数として、前記性能メトリックスのモデルを構築することと、
前記モデルに従って、順序付けされた残りの点を取得するために、点の前記集合の残りの点を順序付けすることであって、前記順序付けされた残りの点は、それに関連付けられた順序を有する、ことと、
ECD不良の表示カウントを取得するために、停止条件が満足されるまで、前記順序付けされた残りの点の順序に従って、以下のアクションa〜d、
(a)順序付けされた残りの点のシミュレーションデータを取得するために、順序付けされた残りの点をシミュレーションすることと、
(b)前記順序付けされた残りの点の前記シミュレーションデータに従って、前記順序付けされた残りの点の前記性能メトリックスの値を計算することと、
(c)前記順序付けされた残りの点の前記性能メトリックスの前記値を前記標的値と比較することと、
(d)前記順序付けされた残りの点の前記性能メトリックスの前記値が前記標的値を満足しない場合に、ECD不良の前記表示カウントを増加させることと、
を反復的に繰り返すことによって、ECD不良のカウント数を表示することと、
を含む、持続性の有形コンピュータ可読媒体。
【請求項2】
前記残りの点は、点の前記部分集合の点とは異なる、請求項1に記載の持続性の有形コンピュータ可読媒体。
【請求項3】
点の前記集合の点の総数は、前記ECDの標的歩留りに従って判定される、請求項1に記載の持続性の有形コンピュータ可読媒体。
【請求項4】
前記ECDの不良率または前記ECDの歩留りは、ECD不良の数、および点の前記集合の点の総数に従って推定される、請求項1に記載の持続性の有形コンピュータ可読媒体。
【請求項5】
前記方法は、すべてのECD不良が発見されたか否かを自動的に判定することをさらに含む、請求項4に記載の持続性の有形コンピュータ可読媒体。
【請求項6】
前記方法は、前記ECDの前記不良率または前記ECDの前記歩留りの信頼区間を判定することをさらに含む、請求項4に記載の持続性の有形コンピュータ可読媒体。
【請求項7】
前記モデルは、線形モデル、多項式モデル、スプラインモデル、ガウス過程モデル、ニューラルネットワーク、多変量適応型回帰スプラインモデル、および高速関数抽出モデルのうちの少なくとも1つを含む、回帰モデルである、請求項1に記載の持続性の有形コンピュータ可読媒体。
【請求項8】
再構築モデルを取得するために、アクションa〜dの反復の後に、すべてのシミュレーション点に基づく前記モデルの再構築がもたらされ、まだシミュレーションされていない点は、前記再構築モデルに従って再順序付けされる、請求項1に記載の持続性の有形コンピュータ可読媒体。
【請求項9】
プロットを表示することをさらに含み、前記プロットは、前記点がシミュレーションされた前記順序の関数として、シミュレーション点の前記性能メトリックスの前記値を示す曲線を含む、請求項1に記載の持続性の有形コンピュータ可読媒体。
【請求項10】
前記方法は、プロットを表示することをさらに含み、前記プロットは、前記性能メトリックスの確率分布の曲線を含む、請求項1に記載の持続性の有形コンピュータ可読媒体。
【請求項11】
前記曲線は、前記性能メトリックスの確率分布の少なくとも1つの極部分を示す、請求項10に記載の持続性の有形コンピュータ可読媒体。
【請求項12】
前記方法は、前記プロセス変数によって画定される空間内の追加の点を取得することをさらに含み、前記追加の点は、点の前記集合外である、請求項1に記載の持続性の有形コンピュータ可読媒体。
【請求項13】
前記方法は、
追加のシミュレーションデータを取得するために、前記追加の点の前記ECDをシミュレーションすることと、
前記追加のシミュレーションデータに従って、追加の性能メトリックス値を計算することと、
前記追加の性能メトリックス値に従って、前記モデルを修正することと、
をさらに含む、請求項12に記載の持続性の有形コンピュータ可読媒体。
【請求項14】
前記方法は、
推定誤差または不確実性を取得するために、前記モデルの誤差または不確実性を推定することと、
前記推定誤差または不確実性に従って、前記追加の点を取得することと、
をさらに含む、請求項12に記載の持続性の有形コンピュータ可読媒体。
【請求項15】
ECD不良の前記カウント数を表示することは、ECD不良の前記カウント数をプロットで表示することを含む、請求項1に記載の持続性の有形コンピュータ可読媒体。
【請求項16】
前記プロセス変数の前記確率分布から点の前記集合を生成することは、前記プロセス変数の前記確率分布をサンプリングすることを含む、請求項1に記載の持続性の有形コンピュータ可読媒体。
【請求項17】
電気回路設計(ECD)のまれな事象発生を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、前記ECDには、プロセス変数および性能メトリックスが関連付けられており、前記性能メトリックスは、前記プロセス変数に依存し、前記プロセス変数は、確率分布を有し、前記方法は、
前記プロセス変数の前記確率分布から点の集合を生成することと、
点の前記集合から点の部分集合を選択することと、
シミュレーションデータを取得するために、点の前記部分集合の各点の前記ECDをシミュレーションすることと、
性能メトリックス値の集合を取得するために、前記シミュレーションデータに従って、点の前記部分集合の各点の性能メトリックスの値を計算することと、
性能メトリックス値の前記集合に従って、および点の前記部分集合の各点の前記プロセス変数の前記値を用いて、前記プロセス変数の関数として、前記性能メトリックスのモデルを構築することと、
順序付けされた残りの点を取得するために、前記モデルに従って、点の前記集合の残りの点を順序付けすることであって、前記順序付けされた残りの点は、それに関連付けられる順序を有する、ことと、
表示プロットを取得するために、停止条件が満足されるまで、前記順序付けされた残りの点の前記順序に従って、以下のアクションa〜c、
(a)順序付けされた残りの点のシミュレーションデータを取得するために、順序付けされた残りの点をシミュレーションすることと、
(b)前記順序付けされた残りの点の前記シミュレーションデータに従って、前記順序付けされた残りの点の前記性能メトリックスの値を計算することと、
(c)前記順序付けされた残りの点の前記性能メトリックスの前記値を、前記性能メトリックスの前記値の前記分布の前記プロットに組み込むことと、
を反復的に繰り返すことによって、前記性能メトリックスの前記値の分布のプロットを表示することと、
を含む、持続性の有形コンピュータ可読媒体。
【請求項18】
電気回路設計(ECD)のまれな不良事象を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、前記ECDには、プロセス変数および性能メトリックスが関連付けられており、前記性能メトリックスは、前記プロセス変数に依存し、前記プロセス変数は、確率分布を有し、前記方法は、
前記プロセス変数の前記確率分布から点の集合を生成することと、
点の前記集合から点の部分集合を選択することと、
シミュレーションデータを取得するために、点の前記部分集合の各点の前記ECDをシミュレーションすることと、
性能メトリックス値の1つ以上の集合を取得するために、前記シミュレーションデータに従って、前記ECDの1つ以上の性能メトリックスについて、点の前記部分集合の各点の前記1つ以上の性能メトリックスの値を計算することと、
性能メトリックス値の前記1つ以上の集合に従って、および点の前記部分集合の各点の前記プロセス変数の前記値を用いて、前記プロセス変数の関数として、前記1つ以上の性能メトリックスのそれぞれのモデルを構築することと、
前記1つ以上の性能メトリックスのそれぞれの出力値の事前に確立された関心領域のそれぞれについて、順序付けされた残りの点の集合を取得するために、前記1つ以上の性能メトリックスのそれぞれの前記モデルに従って、点の前記集合の残りの点を順序付けすることであって、順序付けされた残りの点の集合の数は、事前に確立された関心領域の数と等しく、出力値の各事前に確立された関心領域には、標的値が関連付けられている、ことと、
点の順序付けされたインターリーブ集合を取得するために、順序付けされた残りの点の前記集合をインターリーブすることであって、点の前記順序付けされたインターリーブ集合は、順序を有する、ことと、
ECD不良の表示カウントを取得するために、停止条件が満足されるまで、点の前記順序付けされたインターリーブ集合の前記順序に従って、出力値の前記事前に確立された関心領域のそれぞれについて、以下のアクションa〜d、
(a)点の前記順序付けされたインターリーブ集合の点をシミュレーションすることと、
(b)点の前記順序付けされたインターリーブ集合の前記点の前記性能メトリックスの値を計算することと、
(c)点の前記順序付けされたインターリーブ集合の前記点の前記性能メトリックスの前記値を、その関連標的値と比較することと、
(d)点の前記順序付けされたインターリーブ集合の前記点の前記性能メトリックスの前記値が、その関連標的値を満足しない場合に、前記ECD不良の前記表示カウントを増加させることと、
を反復的に繰り返すことによって、ECD不良のカウント数を表示することと、
を含む、持続性の有形コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、ばらつきに影響される性能を有する設計(例えば、電気回路設計)における不良率を推定することであって、ばらつきは、少なくとも一部において、確率分布によってモデル化され、不適合となる確率は、適合となる確率より大幅に低い、不良率を推定することに関する。より具体的には、本発明は、高歩留りの半導体設計における不良率を推定することに関する。
【背景技術】
【0002】
本願は、その全体が参照することによって本明細書に組み込まれる、2010年10月27日に出願された、米国特許仮出願第61/407,230号の優先権の利益を主張する。
【0003】
メモリ、カスタムデジタル、および他の種類の回路の歩留りは、上に問題の回路が形成されるチップの利益性に直接影響するため、重要である。したがって、設計者が、これらの回路の歩留りを、それらの製造の前に推定することができることは、重要である。当該技術分野において既知であるように、不良率とは、歩留りに関連する単なる別の単位である。つまり、設計の不良率とは、サンプリングされた設計の不適合となる比率であり、一方、歩留りとは、設計の適合となる比率である。
【0004】
電気回路設計(ECD)の不良率を推定するために、通常、ECDのいくつかの変数の統計的ばらつきのモデルが起用される。そのばらつきのモデルは、ランダム変数の確率分布を含むことができる。例えば、ECD内の各デバイスは、酸化物の厚さ、基板のドーピング濃度等、そのデバイスの「n」個のプロセス変数のばらつきを表す、n次元のガウス分布を有することができる。その結果、ECDの分布(確率分布)のモデルは、デバイスの分布の和集合にすぎない。分布からランダム点を取り出し、ECDのトポロジーおよびデバイスの寸法(長さ、幅等)と組み合わせることで、ECDの「インスタンス」がもたらされ、インスタンスは、製造され得る単一のチップ(ダイ)(またはチップ設計全体内のブロックもしくは「セル」)のモデルである。
【0005】
ECDのインスタンスの性能は、典型的に、回路シミュレーションを介して推定される。様々な環境点、例えば、異なる温度でのその性能を推定することができる。ECDのインスタンスは、各環境点での性能が仕様を満足する場合、「許容可能」である。また、性能メトリックスとも称される性能には、例えば、電力消費、読み取り電流等も含むことができる。
【0006】
所与のECDの不良率を推定する簡単な既知の方法は、図1に示されるような、シミュレーションを伴うモンテカルロサンプリングを使用する。開始102で使用される入力は、ECDの表現、およびECDに影響を及ぼす可能性があるばらつきを表す確率分布を含む。SPICE回路シミュレータ(SPICE:Simulation Program with Integrated Circuit Emphasis)等によって、インスタンス、ECD(通常設計)、および特定のばらつき(プロセスのランダム度による)の組み合わせをシミュレーションすることができる。ステップ104で、ECDの確率分布から多数のインスタンスが取り出される。各インスタンスは、「許容可能」であるか否か(すなわち、性能メトリックスの所定の仕様を満足するか否か)を判定するために、106でシミュレーションされる。実行は、典型的に、すべてのN個のサンプルがシミュレーションされた際に108で停止する。インスタンスの総数に対する許容不可能なインスタンスの数の割合として計算される不良率を含む結果が、ユーザディスプレイ110に報告される。
【0007】
図1のモンテカルロフローに従って不良率を推定することは、許容不可能なインスタンス(不良率)を発見する確率が、許容可能なインスタンスを発見する確率と比較して同一の桁数または2桁以内である際、比較的安価である。例えば、不良率(pf)が0.10である場合、歩留りは、0.90であり、推定するのが比較的安価である。適度の精度で不良率を推定するための妥当な大体の目安は、約10個の不良を得るのに十分なサンプルを有することであり、より多くのサンプルは、精度をさらに向上させる。上記の例では、pf=0.10は、N=10/0.10=100サンプルをもたらす。現代のシミュレーションソフトウェアを有する現代のCPU上では、典型的に、数分から数時間で100個のモンテカルロサンプルをシミュレーションすることができ、これは、妥当である。多くの場合、1000個のモンテカルロサンプルが妥当である可能性があり、特定の高速シミュレーション回路では、10,000個のサンプルもまた、妥当である可能性がある。
【0008】
しかしながら、インスタンスが不良となる確率がはるかにまれである場合、図1に示される手法を使用すると、不良率を推定するために、はるかに多くのモンテカルロサンプルが必要となる。例えば、pf=1.0e−6(100万分の1)である場合、約N=10/1e−6=1000万個のモンテカルロサンプルが必要となる。この場合、現代の機械には、ECDをシミュレーションすることは、コンピュータ的にあまりに負担が大きく、妥当な期間(例えば、数時間)内に結果を得ることができない。所与の回路で、pf=1.0e−9(10億分の1)である場合、約N=10/1e−9=100億個のモンテカルロサンプルが必要となる。そのような膨大な数のサンプルをシミュレーションすることは、必要とされる期間に関して明らかに不当である。
【0009】
そのような低いpf値は、実際には、特定の種類の現代の回路において一般的である。そのような回路の中には、単一のチップ上にビットセルが数百万回または数十億回繰り返されるメモリ回路(メガビットまたはギガビットメモリ)があり、したがって、メモリ全体の歩留りが妥当となるように、各ビットセルは、好ましくは、極めて信頼性が高いべきであり(ごく小さいpfを有する)、多くの場合、同様に繰り返されるセンスアンプ等のサポート回路もまた、非常に信頼性が高い必要がある。さらに、デジタル電子機器は、非常に多くのデジタル標準セルを有するため、各セルは、回路全体の歩留りが適度となるように、好ましくは、極めて信頼性が高いべきである。
【0010】
1000万個または100億個のモンテカルロサンプルをシミュレーションすることは、不当に高価であるため、不良率を推定する他の手法が探索された。
【0011】
一手法は、より小さい数のモンテカルロサンプル(10,000〜100万)をシミュレーションし、分布の裾のモデルを構築し、次いで、裾を外挿して、裾が許容可能性境界と交差する場所(特定の性能メトリックスの良/不良境界)を発見することである。残念ながら、これは、非常にコンピュータ的に高価であり、外挿法は、かなり不正確な可能性がある。
【0012】
別の手法は、ECDの解析モデルを構築し、そのモデルから大きい数のサンプルを取り出すか、またはモデルを解析的に積分することによって不良率を導出することである。残念ながら、これもまた、非常に不正確な可能性がある。さらに、この手法は、異なる回路図毎に繰り返さなければならず、場合によっては、新たな製造プロセスノード毎に修正しなければならない、時間のかかる面倒な手作業を必要とする。
【0013】
別の一連の手法は、分類または回帰モデルを使用することである。核となる考えは、モデルが、シミュレーションよりはるかに早くサンプルの許容可能性を評価することができるということである。そのような一手法(2008年3月28日に出願された、米国特許出願第20090248387号、A.Singheeらの「Method and apparatus for sampling and predicting rare events in complex electronic devices, circuits and systems」)は、分布からモンテカルロサンプルを取り出し、その許容可能性の予測に確信がある際、シミュレーションの代わりに許容可能/許容不可能分類子を使用する。別の手法(J.Wang、S.Yaldiz、X.Li、およびL.Pileggiの「SRAM Parametric Failure Analysis」、Proc.ACM/IEEE Design Automation Conference、2009年6月)は、区分線系モデルを適応的に構築し、線系回帰モデルで開始し、各反復で、既知のモデリング誤差または不確実性を伴う、より高い確率のランダム点を選択し、シミュレーションし、モデルに別の「フォールド」を追加する。さらなる手法(C.GuおよびJ.Roychowdhuryの「An efficient, fully nonlinear, variability−aware non−Monte−Carlo yield estimation procedure with applications to SRAM cells and ring oscillators」、Proc.2008、Asia and South Pacific Design Automation Conference、2008年、754〜761ページ)は、前述のものと同様であるが、回帰モデルというよりはむしろ分類モデルを使用する。モデルベースの手法の一般的な問題は、モデルが信用できるものでなければならず、モデルが不正確な場合、結果は不正確であるということである。これらの手法は、わずか6〜12個の変数の小さい問題でのみ実証されており、50または150個以上の変数における信頼性が高いモデルを有することは、はるかに困難である。
【0014】
追加の手法は、マルコフ連鎖モンテカルロ(MCMC)を使用する。この手法は、有名なメトロポリスヘイスティングアルゴリズム(N.Metropolis、A.W.Rosenbluth、M.N.Rosenbluth、A.H.Teller、E.Teller、「Equations of State Calculations by Fast Computing Machines」、Journal of Chemical Physics21(6)、1953年、1087〜1092ページ)から導出される。統計的サンプリングのためのMCMC手法(Y.Kanoria、S.Mitra、およびA.Montanari、「Statistical Static Timing Analysis using Markov Chain Monte Carlo」、Proc.Design Automation and Test Europe、2010年3月)では、サンプリング分布は、まれな許容不可能な事象に向かって適応的に傾斜され、サンプルの「連鎖」内の各後続サンプルは、閾値に基づき、確率的に使用または却下される。残念ながら、実際には、特にMCMCの専門家ではない人(すなわち、ツールユーザ)にとって、MCMCサンプルの安定した「十分に混ざった」連鎖を確実に達成することは困難である。
【0015】
別の一連の手法は、重要度サンプリングを使用する。代表的な例は、2008年4月16日に出願された、米国特許出願公開第2008/0195325号、R.Joshiらの「System and Computer Program for Efficient Cell Failure Rate Estimation in Cell Arrays」である。重要度サンプリングでは、分布は、MCMCと同様に、まれな許容不可能なサンプルに向かってシフトされる。しかし、MCMCとは異なり、重要度サンプリングは、すべてのサンプルを使用する。不良率を推定する際、真の分布におけるその密度と比較したサンプリング分布におけるその密度に従って、各サンプルに重みを与える。回路解析のための最も有望な重要度サンプリング手法では、「中心」が計算され、続いて重要度サンプリングで使用され、中心は、ガウス分布の平均である。R.Joshiらによる研究では、中心は、各プロセスパラメータの[−6、+6]の標準偏差の範囲内の一様分布からサンプルを取り出し、最初の30個の許容不可能なサンプルを保持することによって計算される。本手法(M.Qazi、M.Tikekar、L.Dolecek、D.Shah、およびA.Chandrakasan、「Loop Flattening & Spherical Sampling: Highly Efficient Model Reduction Techniques for SRAM Yield Analysis」、Proc.Design Automation and Test in Europe、2010年3月)は、球面サンプリング技法を介して中心を選択する。これらの研究の両方は、わずか6〜12個の変数の小さい問題で実証された。残念ながら、これらは、選択される中心の確率があまりに低いため、大きい数の次元(ランダム変数)では上手く機能せず、したがって、重みは、不良率の推定に影響を及ぼすには小さすぎ、例えば、1e−8前後であるべき場合に1e−200のpfを報告することによって、あまりにも甘い推定をもたらす。現実世界の回路歩留り推定問題では、100または1000以上のランダム変数が存在する可能性があり、そのため、重要度サンプリングを、不良を推定するのに妥当な手法であると見なすことはできない。重要度サンプリングシステムの別の欠点は、そのようなツールを使用する設計者に対する透明性の欠如である−設計者が、変化した分布の性質、および分布が最高確率の許容可能性境界に沿って適切にサンプリングするか否かを評価することは困難である。
【0016】
したがって、ECDの不良率の推定における改善が望ましい。
【発明の概要】
【0017】
不良率が低いECDの不良率を推定する前述のツールおよび方法の少なくとも1つの欠点を取り除くこと、または軽減することが、本発明の目的である。
【0018】
本開示の実施形態では、ばらつきを表すランダム分布から、N個のモンテカルロサンプル(点)の集合が取り出される。次いで、これらのサンプルの部分集合がランダムに選択され、そのNinit個のサンプルの部分集合は、各サンプルの性能値を測定するためにシミュレーションされる(回路シミュレータを用いて)。次いで、Ninit個の点を訓練入力として、および対応するNinit個の性能値を訓練出力として使用して、回帰モデルが構築される。候補モンテカルロサンプルは、N個のモンテカルロサンプルからのまだシミュレーションされていないものである。各候補は、予測性能値を得るために、回帰モデル上でシミュレーションされ、サンプルは、予測性能値の昇順(または降順)に順序付けされる。次いで、その順序で、順序付けされた候補サンプルのシミュレーションが開始される。つまり、候補は、最悪の出力候補からシミュレーションされる。回帰モデルおよび順序は、以下にさらに記載されるように、定期的に更新されてもよい。サンプリングおよびシミュレーションは、いったんすべての不良が発見されたという十分な確信が得られると停止する。
【0019】
代替えとして、ばらつきを表すランダム分布から、N個のモンテカルロまたは準モンテカルロサンプルが取り出される。次いで、所与のサンプル(点)の性能値をもたらすシミュレータからのフィードバックを受けて、各性能(出力)について、ばらつきパラメータ対性能をマップする回帰モデルが構築される。候補モンテカルロサンプルは、N個のモンテカルロサンプルからのまだシミュレーションされていないものである。各回帰モデル(各出力)について、予測性能値を得るために、各候補サンプルが回帰モデル上でシミュレーションされ、サンプルは、予測性能値(その出力の)の昇順(または降順)に順序付けされる。これらの順序は、インターリーブで、単一の順序に統合される。次いで、その順序で、候補サンプルのシミュレーションが開始される。加えて、例えば、順序付けモデルの品質を改善するために、非候補点(N個のモンテカルロサンプルの集合からのものではない点)または後ろの方に順序付けされた候補点(集合内ではあるが、順序の前の方ではない点)のシミュレーションもまた、自動的に行われてもよい。回帰モデルおよび順序付けは、定期的に更新されてもよい。サンプリングおよびシミュレーションは、いったんすべての不良が発見されたという十分な確信が得られると停止する。
【0020】
従来技術と比較した本発明の主な利点は、これは、問題空間について学習する(効率性のために)ためにモデル化を使用するが、他のモデル化手法とは異なり、これは、高モデル精度を必要としないということである。これは、サンプルが許容可能であるか、または許容不可能であるかについての決定を行うためにモデルを使用するというよりはむしろ、サンプルを単に順序付けするためにモデルを使用する。前者のモデルの使用法は、高次元問題では達成することが困難である、はるかに優れたモデル精度を必要とする。
【0021】
本開示の態様では、電気回路設計(ECD)のまれな不良事象を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、ECDには、プロセス変数および性能メトリックスが関連付けられており、性能メトリックスは、プロセス変数に依存し、プロセス変数は、確率分布を有する、持続性の有形コンピュータ可読媒体が提供される。本方法は、プロセス変数の確率分布から点(プロセス点と称することができる)の集合を生成することと、点の集合から点の部分集合を選択することと、シミュレーションデータを取得するために、点の部分集合の各点のECDをシミュレーションすることと、性能メトリックス値の集合を取得するために、シミュレーションデータに従って、点の部分集合の各点の性能メトリックスの値を計算することであって、性能メトリックスには、標的値が関連付けられている、ことと、性能メトリックス値の集合に従って、および点の部分集合の各点のプロセス変数の値を用いて、プロセス変数の関数として、性能メトリックスのモデルを構築することと、順序付けされた残りの点を取得するために、モデルに従って、点の集合の残りの点を順序付けすることであって、順序付けされた残りの点は、それに関連付けられる順序を有する、ことと、ECD不良の表示カウントを取得するために、停止条件が満足されるまで、順序付けされた残りの点の順序に従って、以下のアクションa〜d、(a)順序付けされた残りの点のシミュレーションデータを取得するために、順序付けされた残りの点をシミュレーションすることと、(b)順序付けされた残りの点のシミュレーションデータに従って、順序付けされた残りの点の性能メトリックスの値を計算することと、(c)順序付けされた残りの点の性能メトリックスの値を標的値と比較することと、(d)順序付けされた残りの点の性能メトリックスの値が標的値を満足しない場合に、ECD不良の表示カウントを増加させることと、を反復的に繰り返すことによって、ECD不良のカウント数を表示することと、を含む。
【0022】
本開示の別の態様では、電気回路設計(ECD)のまれな事象発生を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、ECDには、プロセス変数および性能メトリックスが関連付けられており、性能メトリックスは、プロセス変数に依存し、プロセス変数は、確率分布を有する、持続性の有形コンピュータ可読媒体が提供される。本方法は、プロセス変数の確率分布から点の集合を生成することと、点の集合から点の部分集合を選択することと、シミュレーションデータを取得するために、点の部分集合の各点のECDをシミュレーションすることと、性能メトリックス値の集合を取得するために、シミュレーションデータに従って、点の部分集合の各点の性能メトリックスの値を計算することと、性能メトリックス値の集合に従って、および点の部分集合の各点のプロセス変数の値を用いて、プロセス変数の関数として、性能メトリックスのモデルを構築することと、順序付けされた残りの点を取得するために、モデルに従って、点の集合の残りの点を順序付けすることであって、順序付けされた残りの点は、それに関連付けられる順序を有する、ことと、表示プロットを取得するために、停止条件が満足されるまで、順序付けされた残りの点の順序に従って、以下のアクションa〜c、(a)順序付けされた残りの点のシミュレーションデータを取得するために、順序付けされた残りの点をシミュレーションすることと、(b)順序付けされた残りの点のシミュレーションデータに従って、順序付けされた残りの点の性能メトリックスの値を計算することと、(c)順序付けされた残りの点の性能メトリックスの値を、性能メトリックスの値の分布のプロットに組み込むことと、を反復的に繰り返すことによって、性能メトリックスの値の分布のプロットを表示することと、を含む。
【0023】
本開示のさらに別の態様では、電気回路設計(ECD)のまれな不良事象を識別する方法を実施するために、コンピュータが実行するための命令が記録されている、持続性の有形コンピュータ可読媒体であって、ECDには、プロセス変数および性能メトリックスが関連付けられており、性能メトリックスは、プロセス変数に依存し、プロセス変数は、確率分布を有する、持続性の有形コンピュータ可読媒体が提供される。本方法は、プロセス変数の確率分布から点の集合を生成することと、点の集合から点の部分集合を選択することと、シミュレーションデータを取得するために、点の部分集合の各点のECDをシミュレーションすることと、性能メトリックス値の1つ以上の集合を取得するために、シミュレーションデータに従って、ECDの1つ以上の性能メトリックスについて、点の部分集合の各点の1つ以上の性能メトリックスの値を計算することと、性能メトリックス値の1つ以上の集合に従って、および点の部分集合の各点のプロセス変数の値を用いて、プロセス変数の関数として、1つ以上の性能メトリックスのそれぞれのモデルを構築することと、1つ以上の性能メトリックスのそれぞれの出力値の事前に確立された関心領域のそれぞれについて、順序付けされた残りの点の集合を取得するために、1つ以上の性能メトリックスのそれぞれのモデルに従って、点の集合の残りの点を順序付けすることであって、順序付けされた残りの点の集合の数は、事前に確立された関心領域の数と等しく、出力値の各事前に確立された関心領域には、標的値が関連付けられている、ことと、点の順序付けされたインターリーブ集合を取得するために、順序付けされた残りの点の集合をインターリーブすることであって、点の順序付けされたインターリーブ集合は、順序を有する、ことと、ECD不良の表示カウントを取得するために、停止条件が満足されるまで、点の順序付けされたインターリーブ集合の順序に従って、出力値の事前に確立された関心領域のそれぞれについて、以下のアクションa〜d、(a)点の順序付けされたインターリーブ集合の点をシミュレーションすることと、(b)点の順序付けされたインターリーブ集合の点の性能メトリックスの値を計算することと、(c)点の順序付けされたインターリーブ集合の点の性能メトリックスの値を、その関連標的値と比較することと、(d)点の順序付けされたインターリーブ集合の点の性能メトリックスの値が、その関連標的値を満足しない場合に、ECD不良の表示カウントを増加させることと、を反復的に繰り返すことによって、ECD不良のカウント数を表示することと、を含む。
【0024】
本発明の他の態様および特徴は、添付の図面と併せて、以下の本発明の具体的な実施形態の説明を概観すると、当業者に明らかとなるであろう。
【図面の簡単な説明】
【0025】
ここで、一例として、添付の図面を参照して、本開示の実施形態を記載する。
図1】不良率を推定する、従来技術の方法を示す。
図2】本開示の実施形態を図示する、ブロック図を示す。
図3】ビットセル回路のビットセル電流の分布を示す。
図4】ビットセル回路図を示す。
図5】センスアンプ回路図を示す。
図6図4のビットセル回路図の出力電流値のプロットを示す。
図7】サンプル数の関数として、図4のビットセル回路の発見される不良の数のプロットを示す。
図8図5のセンスアンプ回路のセンスアンプ出力電力値のプロットを示す。
図9】サンプル数の関数として、図5のセンスアンプ回路の発見される不良の数のプロットを示す。
図10図5のセンスアンプ回路の遅延のプロットを示す。
図11】サンプル数の関数として、図5のセンスアンプ回路の発見される不良の数のプロットを示す。
図12】サンプル数の関数として、フリップフロップ回路のVh(高電圧)値のプロットを示す。
図13】サンプル数の関数として、図12に関連するフリップフロップ回路の発見される不良の数のプロットを示す。
図14】サンプル数の関数として、フリップフロップ回路のId電流値のプロットを示す。
図15】サンプル数の関数として、図14に関連するフリップフロップ回路の発見される不良の数のプロットを示す。
図16】本開示の別の実施形態を図示する、ブロック図を示す。
図17A】サンプル数の関数として、目標値の一般的プロットを示す。
図17B】サンプル数の関数として、目標値の一般的プロットを示す。
図17C】サンプル数の関数として、目標値の一般的プロットを示す。
図18】本開示の方法を実施するために、コンピュータが実行するための命令が記憶されている、持続性の有形コンピュータ可読媒体を示す。
【発明を実施するための形態】
【0026】
概して、本発明は、ランダムばらつきの影響を受ける(すなわち、プロセスばらつきとも称することができる、ランダムばらつきの影響を受ける設計変数を有する)ECDにおける不良および不良率を識別するための方法ならびにシステムを提供する。
【0027】
本発明は、低不良率を有するECDの不良率を効率的に推定するためのシステムおよび方法を提供する。図2は、本発明の方法/システムの例示的なブロック図を図示する。
【0028】
図2では、ステップ202が開始である。本発明への一入力は、設計の表現(デバイスの集合、それらがどのように接続されるか、ならびに幅、長さ、および抵抗等のデバイス寸法)、および回路の性能に影響を及ぼす可能性があるばらつきを表す確率分布である。設計および特定のばらつきサンプル(ばらつき分布から取り出される点)の組み合わせを、SPICEのような回路シミュレータによってシミュレーションすることができる。設計およびばらつきサンプルの組み合わせがシミュレーションされる際、性能値のベクトル(性能メトリックス値)を取得することができる。以下は、1つの性能メトリックスのみに基づき、不良率を判定することを記載する。複数の性能メトリックスが影響を及ぼす一般的事例は、さらに以下に記載される。
【0029】
ステップ204で、ECDのばらつきを表すランダム分布から、N個のモンテカルロサンプル(点)の集合が取り出される。典型的に、ECDの各デバイスは、それに関連するばらつきを有し、そのばらつきは、デバイスのプロセス変数の確率分布によって表すことができる(それらは、分布に従い、プロセス変数は、ランダム変数であるため)。すべての確率分布の集合(デバイス毎に1つの分布)は、ECDの全体的確率分布を定義することができる。
【0030】
プロセス変数は、本質的にランダムであり、ECDの製造に関与するプロセスステップに関連する。そのような変数には、最終的にECDの電気特性および性能メトリックスに影響を及ぼす可能性がある、例えば、ゲート酸化物の厚さ、基板ドーピング濃度、シート抵抗、移動度、ならびにデバイス長さおよび幅の変動を挙げることができる。
【0031】
続いて、ステップ206で、N個のサンプルのうちのNinit個のサンプルの部分集合がランダムに選択され、208で、ECDは、各サンプルの所与の性能メトリックス(同一の性能メトリックス)の値を取得するために、そのNinit個のサンプルの部分集合でシミュレーションされる(回路シミュレータを用いて)。次いで、210で、Ninit個の点を訓練入力として、および対応するNinit個の性能値を訓練出力として使用して、その性能メトリックスの回帰モデルが構築される。
【0032】
任意の好適な種類の回帰モデルが、本開示の範囲内である。例えば、回帰モデルには、線形モデル、多項式モデル、スプラインモデル、ガウス過程モデル、ニューラルネットワーク、MARSモデル(J.H.Friedman、多変量適応型回帰スプライン、Annals of Statistics、Vol.19、No.1、1991年)、FFX(高速関数抽出)モデル(T.McConaghy、High−dimensional statistical modeling and analysis of custom integrated circuits、Proc.Custom Integrated Circuits Conference、2011年9月)、またはこれらの組み合わせを挙げることができ、これらはすべて、本開示の範囲内である。一実施例として、コンパレータのバンド幅(BW)は、BW=1.71e7−4.57e5*xcm1,m1,lint*xcm1,m2,lint+5.23e4*x2cm1,m1,lint+4.80e4*x2cm1,m2,lintによる、プロセス変数「x」の多項式関数であってもよく、式中、例えば、xcm1,m1,lintは、電流ミラーCM1上のトランジスタM1の長さのばらつきである。
【0033】
212で、予測性能値を得るために、まだシミュレーションされていない候補モンテカルロサンプルが、回帰モデル上でシミュレーションされ、また、212で、候補サンプルは、予測性能値の昇順(または降順)に順序付けもされる。出力、すなわち、例えば、利得であってもよい性能メトリックスを最大化することが望ましい場合、最悪の場合の値は、最小値であり、サンプルは、昇順である。逆に、性能メトリックス(例えば、電力消費)を最小化することが望ましい場合、サンプルは、降順に順序付けされる。別の実施例では、ビットセルでは、所定の値未満のビットセル電流を有することが望ましい場合がある。そのような場合では、サンプル(順序付けされるサンプル)は、それらの予測ビットセル電流値の降順に順序付けされるであろう。図3は、ビットセルの電流のそのような実施例に関し、回帰モデルに基づく、予測ビットセル電流の関数として、モンテカルロサンプルの確率分布関数を示す。本実施例では、ビットセル電流仕様は、最大許容可能値を有する。そのため、サンプルは、高予測電流から低予測電流に順序付けされる。最初の9個の順序付けされたサンプルは、1〜9とラベル付けされる。
【0034】
図2のステップ214で、判定された順序で、順序付けされた候補のシミュレーションが開始される。サンプルを、それぞれNorder個のサイズのバッチでシミュレーションすることができる。シミュレーション結果が戻り、結果を、例えば、シミュレーションが不適合となったシミュレーション出力値、取得された不良の数、すべての不良が発見されたと見なした推定不良率、およびその他の形態で、ユーザディスプレイ220に出力することができる。不良率は、(不良の数)/(サンプルの総数N)として推定される。216で、すべての不良が発見されたと判定される場合、システムは、218で停止する。すべての不良が発見されたか否かの判定は、自動的に、またはユーザがディスプレイからフィードバックを得ることによって行うことができる。システムが停止しない場合、フローは、210に再ループすることができる。シミュレーションからちょうど取得された追加のデータを用いて、回帰モデルを再訓練することができ、212で、残りの候補サンプルを再順序付けし、次いで214で、シミュレーションすることができる。ループは、すべての不良が発見されるまで継続することができる。いったんすべての不良が発見されると、システムは、218で停止することができる。
【0035】
以下は、1つが単一の出力を伴い、2つがそれぞれ2つの出力を有する、3つのECDの5つの異なる高歩留り(低pf)問題への本開示の適用を示す。ECDは、代表的なメモリ回路であるビットセルおよびセンスアンプ、ならびに代表的なデジタル標準セルであるフリップフロップである。回路は、妥当なデバイス寸法を有し、例えば、それらは、公称でスペックに適合し、標的歩留りに近い歩留りを有する妥当な可能性を有する。デバイス毎に約5〜10個のローカルプロセス変数を有する、現代の産業の45nmプロセスからのデバイスモデルが使用される。ビットセルは、30個のプロセス変数を有し、センスアンプは、125個のプロセス変数を有し、フリップフロップは、180個のプロセス変数を有する。図4は、例示的なビットセルの回路図を示す。図5は、例示的なセンスアンプの回路図を示す。
【0036】
実験用の方法論は、以下の通りである。各問題について、問題のECDの確率分布(プロセス変数の)からN個のモンテカルロサンプル(ランダムサンプル)が取り出され、回路シミュレータを用いて、これらのランダムサンプルのすべてでのECDがシミュレーションされる。これらのシミュレーションは、本開示の方法が試験/比較される、「高品質」結果を形成する。これらの試験の場合では、N個のサンプルのうちのx個が不適合となる(xは、例えば、100であってもよい)ように、出力仕様を設定することができる。出力仕様は、ビットセルでは、ビットセル電流であり、センスアンプでは、センスアンプ電力およびセンスアンプ遅延であり、フリップフロップでは、電圧出力および電流出力である。
【0037】
上記の「高品質」結果においてMCサンプルを生成するために使用されたものと同一のランダムシードを使用して、取り出された(または生成された)モンテカルロサンプルの数Ngen=N個で、図2に示される例示的な方法が使用された。図2の方法は、ビットセルではN=150万個、センスアンプではN=100万個、およびフリップフロップではN=100万個で、Ngen個のサンプルのうちの100個が不適合となるようなスペック設定で、20000個のシミュレーションを実行した。
【0038】
図6は、サンプル数の関数として、20000個のモンテカルロサンプルの計算ビットセル電流をプロットする。計算は、シミュレーションデータを取得するために、回路シミュレータを用いて、ビットセルをシミュレーションすることによって、およびシミュレーションデータに従ってビットセル電流を計算することによって実施される。下方の曲線500は、順序付けされていないモンテカルロサンプルのものであり、上方の曲線502は、ビットセル電流の回帰モデル毎に順序付けされたモンテカルロサンプルのものである。曲線504は、本方法が完璧な挙動を有する場合の「理想」曲線であり、そのため、この「理想」曲線は、本方法と比較するのに有用である。この「理想」曲線504は、減少ビットセル電流の関数として順序付けされたMCサンプルで取得された電流を示す、つまり、150万個のMCサンプルのそれぞれのビットセル電流が取得され、MCサンプルは、減少ビットセル電流の関数として順序付けされる。曲線504を取得するために、回帰モデルは使用されない。MCサンプルのうちの20000個のみが、曲線504上に示されている。定義上、理想のソート順序は、単調に減少し、これは、曲線504と一致する。モンテカルロサンプリング曲線500は、ランダムに挙動する。バイアスを有さないと、モンテカルロサンプル(点)出力値は、全範囲にわたって分布し、そのため、MCサンプル単独のシミュレーションは、最悪の場合の値を発見するのが非常に遅い。
【0039】
曲線502は、最悪の場合の値で開始し、いくらかのノイズを伴う、概して下向きの傾向を有する。傾向は、曲線502が、プロセス変数対出力値から、概略的関係を捕捉していることを示す。ノイズは、回帰モデルが、予期される、ある誤差を有することを示す。モデリング誤差が低いほど、ノイズは低く、図2に示される方法が不良を発見するのがより速い。506で示される約2000個のサンプルで、曲線502の下側範囲の値は急上昇する。これは、ビットセル電流を推定するために使用されるモデルが、その点で再構築され、これが、その点以降の順序付けをより正確にしたためである。モデルは、シミュレーションされた(回路シミュレーションされた)MCサンプルのシミュレーション結果、元の回帰モデルを構築するために開始時にシミュレーションされたもの、および最大で〜2000個のサンプル数のシミュレーションビットセル電流データを取得するために、その後にシミュレーションされたものを使用して再構築された。場合によっては、508で示される約10,500個のサンプル等では、図2に示される方法は、本方法の成功が、誤差許容範囲内であると予測されるあらゆるサンプルを得ることに依存しないため、いくつかの点は、極大値を有する場合があるが、シミュレーションされた際、これらは、許容可能である可能性がある極小値を有したことを予測した。むしろ、成功は、方法が最悪の場合をいかに早く発見することができるかに基づく。
【0040】
図6の曲線502は、本方法の挙動の透明性を提供し、方法がいかに上手く不良の発見を実施するかを理解することを可能にする。ノイズエリアの幅は、所与の仕様値(性能メトリックス値)について、すべての不良が発見されたと結論付ける前に、どれくらいの余地が与えられるべきかを示す。明確な傾向は、本方法が正常に機能しており、この場合では、ビットセル電流の分布の裾を概略的に描いていることを示す。
【0041】
本方法の不良の発見における有効性は、標的仕様(標的性能メトリックス値)に依存する。正しいセットアップ(ECD問題セットアップ)は、仕様を満足するために、典型的に、生成されるサンプルの数内に100個より少ない不良を含むことができる。より多い不良が存在する場合、ECDは、その標的歩留りを満足しないか、または標的歩留りに対してあまりに多くのサンプルが生成されたかのいずれかである。同様に、標的仕様を満足する不良が存在しない場合、設計は、過度の余地があるか、または標的歩留りを検証するのに十分なサンプルが生成されなかったかのいずれかである。したがって、例示的な本方法は、仕様を満足するために、最大で100個の不良を発見することさえできればよく、大幅な順序付け誤差の許容範囲を可能にし、一方、依然として、許容可能なシミュレーション予算内で機能する。ビットセル例では、図7に示されるように、本方法は、その最初の5000個の予測サンプル内で最初の100個の不良を発見する。100個の不良を含有する150万個のモンテカルロサンプルでは、MCシミュレーションは、5000個のサンプル内で1つの不良も発見しないことに留意する。
【0042】
ビットセル例は、予測誤差の順序付けに対するその弾力性である、本方法の重要な強みのうちの1つを示す。順序付けモデルは、妥当な数のシミュレーション内の高歩留り分布の極裾において、モンテカルロおよびSPICE(回路シミュレータ)の正確な結果をもたらすために、完全に正確である必要はない。
【0043】
図8は、サンプル数の関数として、20000個のモンテカルロサンプルの計算センスアンプ電力出力の曲線を示す。計算は、シミュレーションデータを取得するために、回路シミュレータを用いて、センスアンプをシミュレーションすることによって、およびシミュレーションデータに従ってセンスアンプ電流を計算することによって実施される。下方の曲線520は、順序付けされていないモンテカルロサンプルのものであり、上方の曲線522は、センスアンプ出力電力の回帰モデル毎に順序付けされたモンテカルロサンプルのものである。「理想」曲線、曲線524は、減少センスアンプ出力電力の関数として、適切に順序付けされた100万個のモンテカルロサンプルで取得されたセンスアンプ出力電力を示す。最初の20000個のサンプルのみが、曲線524内に示されている。図9は、シミュレーションされるMCサンプルの数の関数として、発見される不良の数のグラフを示す。図8および図9(センスアンプに関する)の概略的挙動は、図6および図7(ビットセルに関する)と同様であるが、しかしながら、センスアンプ事例では、最初の1000個のサンプル内ですべての100個の不良が発見される(図9参照)。図8において、曲線522内に示されるノイズの量が曲線520内のノイズと比較して明らかに低いことから、順序付けモデルの効果を見ることができる。このように、センスアンプ出力例は、図2の例示的な方法が、より優れた順序付けモデルを用いて、いかに効率性を得るかを図示する。これは、単に、センスアンプ順序付けモデルがビットセル順序付けモデルより低い誤差を有したことを示す。しかし、本方法が、より高い誤差にも関わらず、ビットセルのすべての不良を発見したという事実は、本方法のより高いモデル誤差に対する弾力性を強調する。
【0044】
図10および図11は、図2の方法を、センスアンプの遅延出力にどのように適用することができるかを示す。この出力は、大部分のサンプル値が約0.1e−9秒(0.1n秒)であり、不良事例が、約1.5e−9秒の値を有する、二峰性分布を有する。スペックをその間に設定する。100万個のMCサンプルに、61個(前述の実施例での100個というよりはむしろ)の不良サンプルが存在する。図10は、本方法が、その最初の9000個のサンプル内ですべての不良を発見することを示す。本方法は、早い方のサンプルで最高であり、減少する頻度で不良を発見する。曲線600では、不良の頻度が最初に高く、次いで降下するため、順序付けモデルが適していることを、図10の出力対サンプルプロット上で視覚的に見ることができる。また、大きい範囲のサンプルにわたって(すなわち、サンプル#9000〜#15000)、新たな不良が発見されないため、すべての不良が発見された可能性が高いことも見ることができる。理想曲線602およびランダムサンプル曲線604もまた、示されている。図11は、この挙動をさらに示し、HSMCが9000個のサンプル内ですべての61個の不良を発見し、不良の大部分を最初の1000個のサンプル内で発見することが分かる。
【0045】
図12および図13は、フリップフロップのVh出力におけるHSMCの挙動を示す。曲線610が、本方法に基づき、出力対サンプル収束においてほぼ理想的に振る舞い、本方法は、500個未満のサンプル内で100/100個の不良を発見することが分かる。612で、理想曲線が示され、順序付けされたていないMC曲線が614で示されている。
【0046】
この場合も同様に、サンプリング領域(曲線614)と比較して、曲線610のノイズの量がいかに視覚的に小さいかに留意する。この場合も同様に、ノイズの量は、サンプル順序付けモデルの有効性の適した指標である。
【0047】
図14および図15は、フリップフロップのId電流出力の挙動への本方法の適用を示す。図14は、図2の例示的な方法を通して取得される曲線620が、極大に向かってバイアスがかかっている一方で、高度のノイズを有することを示す。これは、基礎となるモデルが、全体傾向は捕捉しているが、局所傾向の捕捉における大幅な誤差を有することを意味する。この大幅な誤差にも関わらず、これは、依然として妥当な効率性で不良を発見する。また、図14には、理想曲線622、およびランダムに選択されたサンプルに関連する曲線624も示されている。図15は、本方法が、20000個のシミュレーションの後に、100個の不良のうちの26個を発見したことを示す。
【0048】
図14および図15に示される結果は、本方法が実行時間にどのように自己検証することができるか、および質の悪い順序付けモデルでさえ、どのように本方法が依然として有用な結果をもたらすことができるかを示す。そのような場合では、ユーザ/設計者は、本方法が、20000個のシミュレーション内で信頼できる結果をもたらしていないことを明確に分かることができるであろう。このことから、設計者は、より多くの解決を得るため、100万個のサンプルを用いたモンテカルロ、それに続く外挿等の別の技法を用いて検証を称賛するため、もしくは重要度サンプリングのために、追加のシミュレーションを実行するか、または不確実性に対処するために、ある追加の余地を伴って設計するかのいずれかを選択することができる。また、設計者は、続く反復において、設計にここで発見される高シグマコーナー(不良をもたらすプロセス点)を使用することもできる。より具体的には、設計者がデバイス寸法を反復的に変更し、「コーナー」を回路シミュレータでシミュレーションすることによってフィードバックを得るフローにおいて、不良をもたらしたプロセス点のうちのいくつかを「コーナー」として使用することができ、設計者は、いったんコーナーでの性能が満足されると停止し、この時点で、設計者は、新しい設計の不良率を発見するために、次いで本方法を再実行してもよい。
【0049】
繰り返すが、本方法の重要な利点は、その出力対サンプル収束曲線の品質を評価する能力により、誤った方向に導かないということである。
【0050】
図16は、本発明の代替えの方法/システム実施形態を図示する、ブロック図である。図2と比較すると、これは、より多種多様な実現形態選択肢に適合する。しかし、両方の実施形態は、不良事例に焦点を当てるように、ランダムに取り出されたサンプルの集合が順序付けされ、次いで、すべての不良が発見されるまで、その順序でシミュレーションされるという性質を共有する。
【0051】
次の数段落は、図16のフローを記載する。ステップ302が開始である。システムは、図2の前述の実施形態で記載されるものと同一の入力を有する。次いで、ステップ304で、ECDのプロセスばらつきを表すランダム分布から、N個のサンプル(点)の集合が取り出される。これらは、モンテカルロサンプリング(また、疑似ランダムサンプリングとしても知られる)を使用して、または確率分布からバイアスがかかっていないサンプルを取り出すという点でモンテカルロサンプリングと類似する準モンテカルロ(QMC)サンプリングを使用して取り出すことができる。QMCは、同一の数のサンプルの統計的推定において、より低い分散に変換することができる、ランダム変数空間中への「より良好な広がり」(より低い矛盾)を有するサンプルを生成することを目的とするという点で異なる。QMCサンプリング技法には、ハルトン列(J.Halton、On the efficiency of certain quasi−random sequences of points in evaluating multi−dimensional integrals、Numerische Mathematik、2:84〜90、1960年)、ハマーズレイ列(J.Hammersley、Monte Carlo methods for solving multivariate problems、Annals of NY Academy of Science、86:844〜874、1960年)、およびその他を挙げることができる。
【0052】
図16では、ステップ306で、初期サンプル順序付けモデルが構築される。各関心出力(性能メトリックス)に対して、または代替えとして、各出力の各目標(例えば、昇順での最小目標、降順での最大目標、または両方)に対して、1つのモデルが構築される。各モデルの入力は、ばらつき確率分布のランダム変数である。各モデルの出力は、モデル化する性能値(性能メトリックス値)である。N個のモンテカルロまたは準モンテカルロサンプルの部分集合をランダムに選択し、これらをシミュレーションし、各性能メトリックスの回帰モデルを構築することを伴う、図2に示される方法のように、モデルを構築することができる。代替えとして、N個のモンテカルロまたは準モンテカルロサンプルを無視し、代わりに入力空間内の任意の範囲の入力点の集合を作成し、これらをシミュレーションし、入力点対シミュレーション性能値をマッピングするモデルを構築することによって、モデルを構築することができる。代替えとして、いくつかの初期サンプルが選択され、シミュレーションされ、回帰モデルが構築され、次いで、回帰モデルが最高不確実性(例えば、ガウス過程モデル上での予測における最高分散)を有する新しいサンプルが入力点として選択され、次いでこれらのサンプルがシミュレーションされる適応型で、各モデルを構築することができる。サンプルを選択し、シミュレーションし、不確実性を測定するというサイクルは、標的誤差が達成されるまで繰り返される。不確実性のモデル化に加えて、予測値および不確実性値のモデル化の重み付き組み合わせ等の他の基準も使用されてもよい。いずれの場合でも、ステップ306の終わりには、ばらつき入力パラメータ対性能出力をマップする、回帰モデルの集合が存在する。
【0053】
フローは、図16のステップ308に進む。候補モンテカルロサンプルは、N個のモンテカルロサンプルからのまだシミュレーションされていないものである。ステップ308で、Nnext個のサンプルの集合が、以下のように選択される。予測性能値を得るために、各回帰モデルについて、モデル上で各候補サンプルがシミュレーションされ、サンプルは、予測性能値の昇順(または降順)に順序付けされる。出力毎に1つ(または出力に2つ以上の関心領域が含まれている場合では、目標毎に1つ)のこれらの順序は、単一の順序に統合される(例えば、インターリービングを介して)。
【0054】
例えば、3つの目標の場合では、目標1は、ECDの最大電力であり、目標2は、ECDの最小電力であり、目標3は、ECDの利得であってもよい。本実施例では、目標1および目標2は、電力の分布関数の反対の端部の2つの関心領域であり得る。図17A図17B、および図17Cは、サンプル数の関数としてプロットされた、順序付けされた目標1、2、および3を示す。目標1の順序付けされたサンプルがs505、s10、s1、s3、・・・であり、目標2の順序付けされたサンプルがs12、s9、s10、s2、・・・であり、目標3の順序付けされたサンプルがs7、s5、s8、s11、・・・である場合、インターリーブサンプルは、s505、s12、s7、s10、s9、s5、s1、s10、s8、s3、s2、s11、等である。しかしながら、サンプルs10が2回発生するため、2回シミュレーションされる必要はなく、インターリーブサンプルリストから削除することができる。
【0055】
加えて、非候補または後ろの方に順序付けされた点のシミュレーションもまた、行われてもよい。例えば、新しいサンプルが、モデルが最大誤差を有する入力点として選択される。これを行うことは、モデルのそれらが最も不確実な領域を継続的に改善するのを助長する。または、いくつかの候補点が、バイアスなく(バイアスを順序付けするというよりはむしろ)ランダムに選択されてもよい。これを行うことは、真の分布からわずかなサンプルを取り出すことによって、より優れた予期される「最悪の場合」収束を得る、「混合」重要度サンプリングと同様に、アルゴリズムに、より優れた予期される「最悪の場合」収束を与える。最初の順序付けされた候補は、追加の点と共に、選択されたNnext個のサンプルとなる。
【0056】
図16のステップ310で、Nnext個のサンプルがシミュレーションされる。サンプリングおよびシミュレーションは、いったんすべての不良が発見されたという十分な確信が得られると、または別の停止基準が満足されると、312で停止する。他の停止基準には、最大実行時間の超過、サンプルの最大数の超過、または今までのところのシミュレーションを考慮して、標的歩留りに達する能力が証明または反証されたことの発見が挙げられる。
【0057】
図16のステップ314で、更新されたシミュレーションデータを使用して、回帰モデルのうちのいくつかが再構築されてもよい。これは、典型的に、既存のモデルが、予測順序の誤差をもたらす、シミュレーション出力値と比較して高い出力値の予測における誤差を有する際に生じる。
【0058】
図16では、シミュレーションおよびモデル化の結果は、ユーザディスプレイ318およびデータベース等の記憶媒体320の両方に出力される。場合によっては、結果は、記憶媒体に出力され、次いでディスプレイに渡される。図2のように、ディスプレイ318は、シミュレーションが不適合となったシミュレーション出力値、およびすべての不良が発見されたと見なした推定不良率を示してもよい。また、不良率は、例えば、ウィルソン二項分布推定(E.B.Wilson、Probable inference, the law of succession, and statistical inference、Journal of the American Statistical Association、Vol.22、209〜212ページ、1927年)を用いて、または任意の他の好適な種類の推定を用いて計算される、上および下信頼区間の推定も含んでもよい。ディスプレイは、各出力または目標の不良率を示してもよく、すべての出力にわたる集計不良率(全体的不良率の)を示してもよい。ディスプレイは、各出力または全体のすべての不良が発見されたという確信の推定を示してもよい。ディスプレイは、各出力および目標(最小もしくは最大または両方)のシミュレーション出力値対予測サンプル順序番号のプロットを示してもよい。または、シミュレーション出力値対サンプル数のプロット内にモデル予測出力値、モデル予測上界、モデル予測下界も有するバージョンを示してもよい。ディスプレイは、各出力および目標の実際のサンプル順序番号対予測サンプル数のプロットを示してもよい。ディスプレイは、各出力および目標の実際対予測サンプル数の相関を示してもよい。ディスプレイは、頻度プロットで、今までのところのすべてのサンプル値を示し、所与の出力および目標の予測される最悪の場合の値を、例えば、異なる色でハイライトしてもよい。ディスプレイは、各出力、または各出力および目標のプロセスパラメータに対する出力値の感度を示してもよい。ディスプレイは、曲線の裾の計算される分布を示し、それを示してもよく、分布の裾を計算する手法には、極値理論、および性能値対出力変位値からの1dモデルマッピングの構築を挙げることができる。ディスプレイは、各出力の裾だけではない分布を計算し、それを示してもよい。ディスプレイが接続されるシステムは、ユーザが不適合となった任意の点を選択し、他のツールが使用するためにこれらの点をエクスポートするための手段を含んでもよい。ディスプレイは、出力裾の標的パーセンタイル値(例えば、1e−6thおよび1−1e−6thパーセンタイル値)での代表的なランダム点を計算し、これらの点およびそれらの出力値を表示し、他のツールが使用するために、これらの点をエクスポートしてもよい。
【0059】
追加の代替えの実施形態は、各サンプル(ばらつき点)が、「最悪の場合のコーナー」の集合にわたってシミュレーションされることを除き、図16の実施形態と同様である。これらのコーナーは、温度、負荷、電源電圧、およびFF/SS/等のモデル集合に捕捉される統計的ばらつき等、他の制御不可能なばらつきをモデル化することができる。(CMOSデバイスモデルは、高速、低速、または典型挙動を有することができるNMOSコンポーネント、および同様に高速、低速、または典型挙動を有することができるPMOSコンポーネントをモデル化するために、それらのグローバルプロセス変数集合を有することができる。次いで、例えば、高速NMOS/高速PMOS(FF)、高速NMOS/低速PMOS(FS)、低速NMOS/高速PMOS(SF)、低速NMOS/低速PMOS(SS)、または典型NMOS/典型PMOS(TT)グローバルプロセスコーナーで、CMOSデバイスを解析することができる。これらのグローバルプロセスコーナーは、速度および電力のデジタル回路の重要な性能特性を一括するように設計される。)いったんサンプルがこれらのコーナーにわたってシミュレーションされると、最悪の場合の値が取られ、モデルおよび他の場所で使用される。最悪の場合の作用素は、目標が最小である際は最小であり(昇順)、目標が最大である際は最大である(昇順)。ユーザディスプレイは、すべての最悪の場合のコーナーにわたる結果の表示を含んでもよい。
【0060】
さらなる代替えの実施形態は、最悪の場合の意義で考慮することができる他の制御不可能なばらつきパラメータが存在し、それらが回帰モデルへの追加入力変数として扱われることを除き、図16の実施形態と同様である。これらのパラメータには、温度、負荷、電源電圧、およびFF/SS/等のモデル集合を挙げることができる。図16のステップ306は、ランダムばらつき空間の「最悪の場合の」ばらつき空間との和集合内に十分に広がった入力点を取り出し、ランダムおよび最悪の場合のパラメータの和集合を出力にマップするモデルを構築することに関与する。
【0061】
本発明の実施形態は、電気システム(ECD)に関して記載されてきた。しかしながら、当業者が理解するであるように、また、本開示は、電気システム以外のシステムにも適用可能である。例えば、中でも特に、また、金融システムおよび天気システムも、本明細書に記載される方法およびシステムを使用することができる。
【0062】
前述の説明では、実施形態の完全な理解を提供するために、説明のための数多くの詳細が説明される。しかしながら、これらの具体的な詳細は要求されないことが当業者には明らかであろう。他の例では、周知の電気的構造および回路は、理解を不明瞭にしないために、ブロック図形態で示されている。例えば、本明細書に記載される実施形態が、ソフトウェアルーチン、ハードウェア回路、ファームウェア、またはこれらの組み合わせとして実現されるかについての具体的な詳細は提供されていない。
【0063】
本開示の実施形態を、機械可読媒体(コンピュータ可読媒体、プロセッサ可読媒体、またはその中に具現化されるコンピュータ可読プログラムコードを有するコンピュータ使用可能媒体とも称される)に記憶されるコンピュータプログラム製品として表すことができる。機械可読媒体は、磁気、光学、あるいはディスケット、小型ディスク読み取り専用メモリ(CD−ROM)、メモリデバイス(揮発性もしくは不揮発性)、または同様の記憶機構を含む電気記憶媒体を含む、任意の好適な有形の持続性媒体であってもよい。機械可読媒体は、様々な一連の命令、コードシーケンス、設定情報、または実行される際に、プロセッサに本開示の実施形態に従って方法のステップを実施させる他のデータを含有することができる。当業者は、記載される実現形態を実現するために必要な他の命令および動作もまた、機械可読媒体に記憶することができることを理解するであろう。機械可読媒体に記憶される命令は、プロセッサまたは他の好適な処理デバイスによって実行することができ、記載されるタスクを実施するように回路とインターフェースを取ることができる。図18は、本開示の方法を実施するために、コンピュータが実行するための命令1010が記憶されている、コンピュータ可読媒体1000を示す。
【0064】
上記の実施形態は、一例であることが意図される。添付の特許請求の範囲によってのみ定義される範囲から逸脱することなく、当業者によって、特定の実施形態に対する代替え、修正、および変形が達成されてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17A
図17B
図17C
図18