(57)【要約】【課題】  本発明の課題は、半導体装置の動作シミュレーションを高精度に行い、最適な設計を行うことを目的とする。【解決手段】  上記課題は、コンピュータ装置が、回路セルの複数の素子モデルの設計値を基準とした製造時のばらつき値による空間において、不良の生起確率が最大となる最確点を探索する探索手順と、前記探索の過程において、前記複数の素子モデルと夫々の実測値との差をモデル誤差として計算する誤差計算手順と、前記モデル誤差が所望の精度を満たさない場合、前記複数の素子モデルを再調整するモデル再調整手順と、前記再調整された複数の素子モデルを用いて前記最確点を中心としてサンプリングした結果に基づいて、前記半導体装置の歩留を予測する歩留予測手順とを実行することを特徴とする半導体装置の動作シミュレーション方法により達成される。【選択図】  図５
2011113291.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置の動作シミュレーション方法において、コンピュータ装置が、
回路セルの複数の素子モデルの設計値を基準とした製造時のばらつき値による空間において、不良の生起確率が最大となる最確点を探索する探索手順と、
前記探索の過程において、前記複数の素子モデルと夫々の実測値との差をモデル誤差として計算する誤差計算手順と、
前記モデル誤差が所望の精度を満たさない場合、前記複数の素子モデルを再調整するモデル再調整手順と、
前記再調整された複数の素子モデルを用いて前記最確点を中心としてサンプリングした結果に基づいて、前記半導体装置の歩留を予測する歩留予測手順と
を実行することを特徴とする半導体装置の動作シミュレーション方法。
【請求項２】
前記探索手順は、設計値から所定近傍毎にノイズ許容値が最も小さくなる製造時のばらつき値を探索点として取得し、
前記誤差計算手順は、前記複数の素子モデルと前記探索点に近い実測値との差をモデル誤差として計算し、
前記モデル再調整手順は、所定の許容歩留誤差を用いた前記探索点に基づいて推定した最確点における推定歩留に基づいて、前記所望の精度となる許容誤差を計算する許容誤差計算手順を有することを特徴とする請求項１記載の半導体装置の動作シミュレーション方法。
【請求項３】
前記許容誤差計算手順は、前記推定した最確点を中心に最も近い実測点に相当する前記複数の素子モデルのパラメータセットによって、該複数の素子モデルを再調整することを特徴とする請求項２記載の半導体装置の動作シミュレーション方法。
【請求項４】
前記モデル再調整手順は、前記モデル誤差が前記許容誤差を満たさない場合、該許容誤差に収まるまで、前記推定した最確点を中心とする再調整の範囲における前記複数の素子モデルのパラメータセットを分割することを特徴とする請求項３記載の半導体装置の動作シミュレーション方法。
【請求項５】
半導体装置の動作シミュレーションを行うコンピュータ装置における測定データ取得方法において、該コンピュータ装置が、
回路セルの複数の素子モデルの設計値を基準とする製造時のばらつき値のうちの不良の生起確率が最大となる最確点を用いて、該設計値から該最確点にいたる直線上に測定する実測点を取得する測定点取得手順と、
前記実測点にて既存の回路セルの複数の素子モデルに対して測定した測定データを取得する測定値取得手順と
を実行することを特徴とする測定データ取得方法。
【請求項６】
半導体装置の回路設計方法において、コンピュータ装置が、
回路セルの複数の素子モデルの設計値を基準とした製造時のばらつき値による空間において、不良の生起確率が最大となる最確点を探索する探索手順と、
前記設計値から前記最確点にいたる直線上の実測点にて測定した測定データを取得する測定データ取得手順と、
前記探索の過程において、前記複数の素子モデルと夫々の前記実測点での前記測定データで示される実測値との差をモデル誤差として計算する誤差計算手順と、
前記モデル誤差が所望の精度を満たさない場合、前記複数の素子モデルを再調整するモデル再調整手順と、
前記再調整された複数の素子モデルを用いて前記最確点を中心としてサンプリングした結果に基づいて、前記半導体装置の歩留を予測する歩留予測手順と
を実行することを特徴とする半導体装置の回路設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置の動作シミュレーションを高精度に行い、最適な設計を行う半導体装置の動作シミュレーション方法、測定データ取得方法、及び回路設計方法に関する。
【背景技術】
【０００２】
半導体装置を開発する際、半導体装置をモデル化したシミュレーションモデルを用いて、種々のシミュレーションを行い、半導体装置の設計検証が行われている。より精度の高い設計検証を行うには最適なシミュレーションモデルを用いる必要があるが、シミュレーションモデルは多くのパラメータで構成されており、最適値を決定するには開発者の経験を要し、またシミュレーションを繰り返し行う必要があった。
【０００３】
そのため、設定されたパラメータでシミュレーションを行なった結果、実測値とに誤差がある場合には勾配ベクトルを用いてパラメータを修正したり、キャリブレーションなどにより収束判定により収束するまでパラメータの設定範囲を自動的に再指定するなどが提案されている。（例えば、特許文献１、２を参照）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２５７３８０号公報
【特許文献２】特開平１０−３０１９７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、シミュレーションモデルと実測値との誤差に基づいてパラメータの設定を容易とするが、設計値に基づいて製造した半導体装置の歩留を高精度に得ることができないという問題があった。
【０００６】
例えば、１０ＭｂｉｔのＳＲＡＭの歩留を動作シミュレーションによって計算する場合、セルの数は約１千万必要であり、その一つでも不良があればＳＲＡＭ自体が不良となってしまう。このＳＲＡＭの歩留が、設計値で製造した場合に９９％以上であることを確認するには、１０億個のサンプル数でシミュレーションをして不良が１サンプル以下であることを確認する必要がある。サンプル数が１０億個以上の場合、すなわち、半導体装置の動作シミュレーションを１０億回行わなければならない。しかしながら、現実には動作シミュレーションにはサンプル数に制限があり、１０億個以上のサンプル数でシミュレーションを行えない、又は同程度の精度で歩留を得ることができないと言った問題があった。
【課題を解決するための手段】
【０００７】
開示の技術は、半導体装置の動作シミュレーション方法において、コンピュータ装置が、回路セルの複数の素子モデルの設計値を基準とした製造時のばらつき値による空間において、不良の生起確率が最大となる最確点を探索する探索手順と、前記探索の過程において、前記複数の素子モデルと夫々の実測値との差をモデル誤差として計算する誤差計算手順と、前記モデル誤差が所望の精度を満たさない場合、前記複数の素子モデルを再調整するモデル再調整手順と、前記再調整された複数の素子モデルを用いて前記最確点を中心としてサンプリングした結果に基づいて、前記半導体装置の歩留を予測する歩留予測手順とを実行するように構成される。
【発明の効果】
【０００８】
開示のコンピュータ装置によって、半導体装置の動作シミュレーションにて、製造ばらつきに基づくノイズ許容値がゼロとなる値の探索途中において、設計値とのモデル誤差に応じてトランジスタモデルを再調整することによって設定値の歩留精度を改善する。
【図面の簡単な説明】
【０００９】
【図１】ＳＲＡＭセルのトランジスタ構成例を示す図である。
【図２】半導体装置の動作シミュレーション方法の概要を説明するための図である。
【図３】回路設計装置のハードウェア構成を示すブロック図である。
【図４】回路設計装置の機能構成例を示す図である。
【図５】本実施例に係る動作シミュレーション処理の概要を説明するためのフローチャート図である。
【図６】探索部による図５のステップＳ１からＳ４での処理を説明するためのフローチャート図である。
【図７】モデル誤差計算部による図５のステップＳ５での処理を説明するためのフローチャート図である。
【図８】モデル再調整部による図５のステップＳ７での処理を説明するためのフローチャート図である。
【図９】モデル再調整部による図８のステップＳ７４における許容誤差の計算処理を説明するためのフローチャート図である。
【図１０】最確点シミュレーション部の機能構成例を示す図である。
【図１１】測定データ取得方法について説明するためのフローチャート図である。
【図１２】本実施例に係る動作シミュレーション処理のモデル最適化設計への適用例を説明するためのフローチャート図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態を図面に基づいて説明する。図１に示すようなＳＲＡＭ（Static Random Access Memory）セル４を回路セルの例とし、トランジスタモデルのパラメータを調整しつつモデル誤差を最小限としたモンテカルロシミュレーションを行うことによって、設計値に対する歩留の精度を改善する半導体装置の動作シミュレーション方法について説明する。
【００１１】
図１は、ＳＲＡＭセルのトランジスタ構成例を示す図である。図１に例示されるＳＲＡＭセル４は、ロード（Load）、ドライバ（Driver）、トランスファ（Transfer）の３種類のトランジスタを１組とし、これを２組組み合わせた６トランジスタ型のＳＲＡＭセルである。以下、ＬｏＡ、ＤｒＡ、ＴｆＡ、ＬｏＢ、ＤｒＢ、及びＴｆＢで示す。３種類の６トランジスタに対して長さ（Ｌ）、幅（Ｗ）、及び閾値（Ｖｔｈ）の変数を与えると、設計変数は下記の計１８個となる。
ＬｏＡ＿Ｌ、ＬｏＡ＿Ｗ、ＬｏＡ＿Ｖｔｈ
ＤｒＡ＿Ｌ、ＤｒＡ＿Ｗ、ＤｒＡ＿Ｖｔｈ
ＴｆＡ＿Ｌ、ＴｆＡ＿Ｗ、ＴｆＡ＿Ｖｔｈ
ＬｏＢ＿Ｌ、ＬｏＢ＿Ｗ、ＬｏＢ＿Ｖｔｈ
ＤｒＢ＿Ｌ、ＤｒＢ＿Ｗ、ＤｒＢ＿Ｖｔｈ
ＴｆＢ＿Ｌ、ＴｆＢ＿Ｗ、ＴｆＢ＿Ｖｔｈ
【００１２】
これら設計変数は、予め定めた設計値と、モンテカルロシミュレーションによってランダムに与えられるばらつき値とで表される。ばらつき値とは、設計値でＳＲＡＭセル４を製造した場合における設計値との差分を示す。例えば、
ＬｏＡ＿Ｌ＝設計値＋ΔＬｏＡ＿Ｌ
となる。ここでは、ΔＬｏＡ＿Ｌがばらつき値（差分）を示す。他設計変数についても同様に表される。
【００１３】
図２は、半導体装置の動作シミュレーション方法の概要を説明するための図である。図２（Ａ）において、ＳＲＡＭセル４でのノイズマージン（ノイズ許容値）を例えば正規分布で推定した場合、ノイズマージンの平均μから負の方向へdσのときにゼロとなり、従って、ゼロ以降でセル不良率を予測でき歩留を得ることができる。しかし、セルが不良するポイント辺り、つまり、１０Ｍｂｉｔで歩留９９％では分布中心μから分散の平方根６σ程離れているため、実際のノイズマージン分布と正規分布との間では差が大きくなってしまう。歩留精度を改善するためには、ノイズマージンがゼロとなるＳＲＡＭセル４が不良するポイント辺りで歩留を算出する必要がある。
【００１４】
本実施例では、図２（Ｂ）に示すように、設計値を原点としてばらつき値を分散させた設計変数空間９において、原点からノイズマージンがゼロとなる境界２上の最確点ＩＭを予測しつつシミュレーションを行い、最確点ＩＭでの予測値とトランジスタモデルとの誤差が所定範囲内となるようにトランジスタモデルのパラメータを調整することによって、最確点ＩＭにおけるばらつき値で不良率をシミュレーションする。
【００１５】
最確点ＩＭでのモンテカルロシミュレーションの実施は、例えば、Rouwaida Kanj等の"Mixture Importance Sampling and Its Application to the Analysis of SRAM Designs in the Presence of Rare Failure Events", Design Automation Conference, 2006による重点的サンプリング手法を用いる。しかしながら、既に最確点ＩＭから乖離している設計値に相当するトランジスタモデルを用いてシミュレーションするのではなく、本実施例では、パラメータを調整したトランジスタモデルを用いる。
【００１６】
トランジスタモデルのパラメータは、設計値の原点から最確点ＩＭへ探索の過程で調整を行う。最確点ＩＭにおいてパラメータを調整したトランジスタモデルを用いることによって、通常３σ程度のサンプリング数に制限されるモンテカルロシミュレーションであっても、十分な歩留精度を得ることができる。
【００１７】
図２（Ｂ）では、説明を簡単にするため、設計変数空間９は、ｘ軸にΔＬｏＡ＿Ｖｔｈ［σ］を示し、ｙ軸にΔＤｒＡ＿Ｖｔｈ［σ］を示す２次元座標で示したが、実際のシミュレーションでは設計変数の個数に応じた１８次元空間となる。
【００１８】
本実施例における回路設計装置１００は、例えば、図３に示すようなハードウェア構成を有する。図３は、回路設計装置のハードウェア構成を示すブロック図である。
【００１９】
図３において、回路設計装置１００は、コンピュータによって制御される端末であって、ＣＰＵ（Central Processing Unit）１１と、メモリユニット１２と、表示ユニット１３と、出力ユニット１４と、入力ユニット１５と、通信ユニット１６と、記憶装置１７と、ドライバ１８とを有し 、システムバスＢに接続される。
【００２０】
ＣＰＵ１１は、メモリユニット１２に格納されたプログラムに従って回路設計装置１００を制御する。メモリユニット１２には、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read-Only Memory）等が用いられ、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を格納する。また、メモリユニット１２の一部の領域が、ＣＰＵ１１での処理に利用されるワークエリアとして割り付けられている。
【００２１】
表示ユニット１３は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。出力ユニット１４は、プリンタ等を有し、利用者からの指示に応じて各種情報を出力するために用いられる。入力ユニット１５は、マウス、キーボード等を有し、利用者が回路設計装置１００が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット１６は、例えばインターネット、ＬＡＮ（Local Area Network）等に接続し、外部装置との間の通信制御をするための装置である。記憶装置１７には、例えば、ハードディスクユニットが用いられ、各種処理を実行するプログラム等のデータを格納する。
【００２２】
回路設計装置１００よって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）等の記憶媒体１９によって回路設計装置１００に提供される。即ち、プログラムが保存された記憶媒体１９がドライバ１８にセットされると、ドライバ１８が記憶媒体１９からプログラムを読み出し、その読み出されたプログラムがシステムバスＢを介して記憶装置１７にインストールされる。そして、プログラムが起動されると、記憶装置１７にインストールされたプログラムに従ってＣＰＵ１１がその処理を開始する。尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本実施例に係る処理を実現するプログラムは、通信ユニット１６によってネットワークを介してダウンロードし、記憶装置１７にインストールするようにしても良い。また、ＵＳＢ対応の回路設計装置１００であれば、ＵＳＢ接続可能な外部記憶装置からインストールするようにしても良い。更に、ＳＤカード等のフラッシュメモリ対応の回路設計装置１００であれば、そのようなメモリカードからインストールするようにしても良い。 
【００２３】
図４は、回路設計装置の機能構成例を示す図である。図４において、回路設計装置１００は、動作シミュレーション部２と、測定点取得部８とを処理部として有する。動作シミュレーション部２は更に、探索点マージン計算部３１を含む探索部３と、モデル誤差計算部４と、モデル再調整部５と、最確点シミュレーション部６と、歩留計算部７と、測定点取得部８とを処理部として有する。回路設計装置１００において、ＣＰＵ１１が本実施例に係る処理を行うためのプログラムを実行することによってこれら処理部２から８として機能する。
【００２４】
また、回路設計装置１００は、本実施例に係る処理にて使用されるネットリスト８１と、トランジスタモデルＤＢ８２と、実測データＤＢ８３と、許容歩留誤差データ８４と、最確点データ８５と、圧縮測定点データ（集合ＣＰ）８６とをメモリユニット１２又は記憶装置１７の記憶領域に保持する。
【００２５】
探索部３は、ネットリスト８１とトランジスタモデルＤＢ８２とを用いて回路シミュレーションすることによって、図２（Ｂ）に示す設計変数空間９内におけるシミュレーションによって設計値（原点）から最確点ＩＭへと探索する経路における探索点Ｍを決定する処理部である。そして、探索点マージン計算部３１は、探索部３によって決定された探索点Ｍでのノイズマージンをシミュレーションすることによって計算する処理部である。探索部３は、ノイズマージンがゼロ以下となる探索点Ｍを最確点ＩＭとし、最確点ＩＭに係る最確点データ８５を記憶領域に出力する。
【００２６】
モデル誤差計算部４は、実測データＤＢ８３を参照することによって得られる探索点Ｍでの実測値と、トランジスタモデルＤＢ８２の探索点Ｍの時点でのトランジスタモデルに対して回路シミュレーションすることによって得られるモデル値との誤差を計算する処理部である。
【００２７】
モデル再調整部５は、モデル誤差計算部４によって計算された実測値とモデル値との誤差の最大誤差が、探索点Ｍの時点でのトランジスタモデルにおける許容誤差を超えている場合に、トランジスタモデルＤＢ８２から許容誤差内となるパラメータを検索してトランジスタモデルを選択することによって、トランジスタモデルのパラメータの値を変更してトランジスタモデルの再調整を行う処理部である。トランジスタモデルの再調整が行われることによって、最確点ＩＭの探索において、設計値から遠くなるほど実測値とモデル値との誤差が増大するのを防ぐ。
【００２８】
最確点シミュレーション部６は、最確点ＩＭを中心としたモンテカルロシミュレーションを実行して不良率を取得する処理部である。最確点ＩＭを中心としたモンテカルロシミュレーションを行うためのサンプル数は、原点を中心にモンテカルロシミュレーションを行う場合のサンプル数程度であれば良く、例えば、高品質を保証するためのノイズマージンの正規分布における６σの範囲を満たすに十分なサンプル数を備える必要がない。また、例えば３σの範囲を満たす程度の限られたサンプル数であっても高精度の不良率を得られるため、モンテカルロシミュレーションによる処理負荷を低減することができる。
【００２９】
歩留計算部７は、最確点シミュレーション部６による結果を用いて歩留を計算し、設計値を中心とした場合の歩留として出力する処理部である。
【００３０】
測定点取得部８は、例えば、Ｒｅａｄ、Ｗｒｉｔｅなどのノイズマージンの種類、及びＬＳＩチップのＰＴＶ条件（プロセス、温度、電圧）により異なる最確点ＩＭの集合を用いて、測定点Ｐの数を圧縮する処理部である。
【００３１】
図５は、本実施例に係る動作シミュレーション処理の概要を説明するためのフローチャート図である。図５において、回路設計装置１００において、ネットリスト８１、トランジスタモデルＤＢ８２、実測データＤＢ８３、許容歩留誤差データ８４から、動作シミュレーション処理にて必要なデータが入力される（ステップＳ１）。
【００３２】
探索部３は、図２（Ｂ）に示すような設計変数空間９における設計値に対応するばらつきのない原点を探索点Ｍとして設定し初期化する（ステップＳ２）。そして、探索点マージン計算部３１によって、探索点Ｍでのノイズマージンを回路シミュレーションによって計算し、その結果をマージン変数に設定する（ステップＳ３）。探索部３は、マージン変数の値がゼロ以下であるか否かを判断する（ステップＳ４）。マージン変数がゼロ以下である場合、探索部３は、探索点Ｍを最確点ＩＭに係る最確点データ８５を記憶領域に出力して記憶する（ステップＳ８）。その後、回路設計装置１００による処理は、ステップＳ１０へ進む。
【００３３】
一方、マージン変数がゼロより大きい場合、探索部３は、次の探索点Ｍを探索し、その探索点Ｍでのノイズマージンを探索点マージン計算部３１によって行い、マージン変数に設定する（ステップＳ５）。
【００３４】
次に、モデル誤差計算部４は、ステップＳ４で得られた探索点Ｍでの実測値とトランジスタモデルのモデル値とのパラメータ毎に誤差を算出する（ステップＳ６）。そして、モデル再調整部５は、その中の最大誤差が許容誤差を超えているか否かを判断して、許容誤差を超えている場合に、その探索点Ｍにおいて誤差が小さくなるようにトランジスタモデルのパラメータをトランジスタモデルＤＢ８２から選択して再調整する（ステップＳ７）。その後、回路設計装置１００による処理は、ステップＳ４へ戻り、上述同様の処理を繰り返す。
【００３５】
ステップＳ４での判断によって、最確点ＩＭが確定すると、最確点シミュレーション部６は、最確点ＩＭを中心としたモンテカルロシミュレーションを実行する（ステップＳ９）。歩留計算部７は、モンテカルロシミュレーションの結果から歩留を計算し、その結果を歩留７ｒとして記憶領域に出力する（ステップＳ１０）。よって、回路設計装置１００による処理は終了する。
【００３６】
図６は、探索部による図５のステップＳ１からＳ４での処理を説明するためのフローチャート図である。図６において、探索部３は、現在の探索点Ｍｉから微小距離αで一番ノイズマージンが減少する次の探索点Ｍｉ＋１を求める（ステップＳ１１）。例えば、下記［数１］式による最急降下法などにより求めることができる。
【００３７】
【数１】
2011113291.tif 000003
ただし、関数ｆはノイズマージンを算出する関数であるが与えられるものではないため、現在の探索点Ｍｉから＋α分進んだ次の探索点Ｍｉ＋１のｘ軸及びｙ軸のそれぞれの値（２点）で、ネットリスト８１及びトランジスタモデルＤＢ８２とを用いて、実際に回路シミュレーションを行い各々のノイズマージンを算出してそれらの差分を計算する。
【００３８】
探索部３は、現在の探索点Ｍｉとして、求めた次の探索点Ｍｉ＋１を設定する（ステップＳ１２）。そして、探索部３は、現在の探索点Ｍｉのノイズマージンをネットリスト８１及びトランジスタモデルＤＢ８２とを用いて、回路シミュレーションを行いノイズマージンを計算する（ステップＳ１３）。
【００３９】
図７は、モデル誤差計算部による図５のステップＳ５での処理を説明するためのフローチャート図である。図７において、実測データＤＢ８３では、トランジスタの種別毎に、例えば、長さ（Ｌ）、幅（Ｗ）、及び閾値（Ｖｔｈ）の組み合わせを±６σの範囲内で均等なばらつき値に対し、例えば、１σ毎の実測点において既存ＳＲＡＭで実測した測定値が測定項目毎に格納され管理される。測定項目１、測定項目２・・・として、トランジスタを動作させた際の特徴的な値が示されるが、例えば、トランジスタの閾値Ｖｔｈ、トランジスタのオン電流などである。
【００４０】
探索点Ｍでの補間された実測値７ａは、実測データＤＢ８２から探索点Ｍでのばらつきの組み合わせに最も近いばらつきの組み合わせとなる各測定項目の測定値を取り出して、探索点Ｍで予測される各測定項目の測定値との間を補間した値である。
【００４１】
探索点Ｍでのモデル値７ｂは、探索点Ｍの時点で適応しているトランジスタモデルを用いてシミュレーションして得た各測定項目の測定値である。探索点Ｍが原点（ばらつきゼロ）であれば、３種類のトランジスタの設計値から得られる各測定項目の測定値となる。
【００４２】
モデル誤差計算部４は、実測データＤＢ８３から探索点Ｍに最も近いばらつきの組み合わせをトランジスタの種類毎に取り出して、探索点Ｍで予測される測定値との間を各測定項目毎に補間した補間された実測値７ａを記憶領域に出力する。
【００４３】
また、モデル誤差計算部４は、探索点Ｍでのトランジスタモデルの各測定項目のモデル測定値７ｂを得て、トランジスタの種別毎に、各測定項目で、補間された実測値７ａとモデル測定値７ｂとの誤差（％）を計算する。
【００４４】
モデル誤差計算部４によって計算されたトランジスタの種別毎の各測定項目の誤差（％）のうち最大誤差（％）が許容誤差を超えた場合に、トランジスタモデルの再調整が行われる。
【００４５】
図８は、モデル再調整部による図５のステップＳ７での処理を説明するためのフローチャート図である。図８において、モデル再調整部５は、設計変数空間９において、現在の探索点Ｍｉから次の探索点Ｍｉ＋１へのベクトル方向に延長してノイズマージンがゼロになる点を点Ｃ１に設定し（ステップＳ７１）、現在の探索点Ｍｉから次の探索点Ｍｉ＋１へのベクトル方向に距離ｋσの点を点Ｃ２に設定する（ステップＳ７２）。そして、モデル再調整部５は、点Ｃ１と点Ｃ２のうち原点０に近い方の点を再調整中心Ｃ０に設定する（ステップＳ７３）。距離ｋσのｋ値はＭＣシミュレーションのサンプル数nに対応するσ数に対応した値を外部から入力するものとする。
【００４６】
次に、モデル再調整部５は、許容誤差を算出して（ステップＳ７４）、再調整中心Ｃ０を中心に±ｋσの再調整範囲８ｒとなるように、現在適応されているトランジスタモデルのパラメータを再決定する（ステップＳ７５）。モデル再調整部５は、許容誤差を満たすように、再調整中心Ｃ０に最も近い実測点を実測データＤＢ８３から取得して、トランジスタモデルＤＢ８２から検索することによってその実測点に近いパラメータセットを作成する。パラメータセットとは、３種類分のトランジスタのパラメータ値をセットにしたものである。
【００４７】
そして、モデル再調整部５は、許容誤差を満たすようにトランジスタモデルのパラメータの再決定が出来たか否かを判断する（ステップＳ７６）。許容誤差を満たせなかった場合、再調整範囲８ｒにおけるトランジスタモデルのパラメータセットを分割して、ステップＳ７５と同様に、トランジスタモデルＤＢ８２を参照することによってトランジスタモデルのパラメータセットを再決定し（ステップＳ７７）、ステップＳ７６へ戻る。一方、許容誤差を満たせた場合、モデル再調整部５は、この処理を終了する。
【００４８】
図９は、モデル再調整部による図８のステップＳ７４における許容誤差の計算処理を説明するためのフローチャート図である。図９において、モデル再調整部５は、図８のステップＳ７１で設定したＣ１を推定した推定した最確点ＩＭｅｓｔとし、その推定した最確点ＩＭｅｓｔで良不良確率を５０％としたときの歩留を推定歩留Ｙｅｓｔに設定する（ステップＳ７４−２）。
【００４９】
次に、モデル再調整部５は、ＭｉＭｉ＋１と同じベクトル方向で、推定した最確点ＩＭｅｓｔを始点とし推定歩留が「Ｙｅｓｔ−ΔＹｍａｘ」となる点を終点とするベクトルを、許容誤差ベクトルとして設定する（ステップＳ７４−４）。
【００５０】
モデル再調整部５は、許容誤差ベクトルのトランジスタの種類（ロード、ドライブ、トランスファ）毎の成分の大きさを種類毎のトランジスタモデルの許容誤差［σ］に設定する（ステップＳ７４−６）。
【００５１】
図７で説明したように、探索点Ｍでの補間された実測値７ａと現在適応されているトランジスタモデルでの探索点Ｍでのモデル値７ｂとの誤差のうち最大誤差が、このようにして求められた許容誤差を超えたときは、トランジスタモデルのパラメータを変更して再調整する。許容誤差との比較は、トランジスタの種類毎に行う。
【００５２】
この許容誤差は、ノイズマージンの傾きが大きく、かつ探索点Ｍから推定した最確点ＩＭが近いときは小さくなる。一方、許容誤差は、ノイズマージンの傾きが小さく、かつ探索点Ｍから推定した最確点ＩＭが遠いときは大きくなる。従って、探索点Ｍのときの許容誤差におうじて必要な分だけトランジスタモデルのパラメータを調整することができ、よって、最確点ＩＭを適切に見つけることができる。
【００５３】
また、最確点ＩＭを予測しながら許容誤差との比較を行うことにより、トランジスタモデルを再調整する必要な回数分にまで少なくすることができる。
【００５４】
図１０は、最確点シミュレーション部の機能構成例を示す図である。図１０において、本実施例における最確点シミュレーション部６は、ＭＣ（モンテカルロ）シミュレーション部６ｍｃと、ばらつき分布６ｄとを有する。
【００５５】
ＭＣシミュレーション部６ｍｃは、設計値のトランジスタモデル８２ａに対してパラメータ調整８２ｂされたトランジスタと、最確点データ８５とを入力し、また、１８個の設計変数の各々に対して、例えば分散の平方根がσ１からσ１８による正規分布で表されるばらつき分布データ６ｄを入力して、最確点ＩＭでの重点的サンプリングによる回路シミュレーションを行う。サンプル数ｎはＭＣシミュレーションによって決定されるが、例えば３σの範囲である。
【００５６】
ＭＣシミュレーション部６ｍｃは、各サンプル１〜ｎの回路シミュレーションの結果を出力する。例えば、サンプル１では「良品」、サンプル２では「ｗｒｉｔｅ不良」、・・・、サンプルｎでは「ｒｅａｄ不良」等の結果が出力される。この結果に基づいて、歩留計算部８が歩留を算出する。
【００５７】
このように、最確点ＩＭでの重点的サンプリングでのモンテカルロシミュレーションにおいて、図２（Ｂ）の設計変数空間９において原点０の設計値となるトランジスタモデル８２ａを用いるのではなく、パラメータ調整８２ｂによって最確点ＩＭに相当するトランジスタモデルで回路シミュレーションを行うことにより、モデル誤差を少なくすることができ、かつ、歩留精度を改善することができる。
【００５８】
また、３σの範囲のサンプル数であったとしても、正規分布の６σでノイズマージンを予測した場合と同等の精度で歩留を得ることができる。従って、実際のノイズマージン分布との差を改善することができる。
【００５９】
次に、記憶した最確点ＩＭと設計中心から最確点ＩＭにいたる直線上の実測点のポイントを重点的に設定し、測定することにより設定データ数と測定時間の短縮を図る測定点取得方法について図１１で説明する。図１１は、測定データ取得部による測定データ取得方法について説明するためのフローチャート図である。
【００６０】
図１１において、測定点取得部８は、記憶した最確点データ８５から最確点ＩＭの集合｛ＩＭ１、・・・、ＩＭｎ｝と、測定点Ｐの集合｛Ｐ１、・・・、Ｐｍ｝と、範囲ｒとを読み込む（ステップＳ９１）。
【００６１】
最確点ＩＭｉ（ｉ＝１〜ｎの自然数）は、例えば、ＲｅａｄかＷｒｉｔｅかというノイズマージンの種類、及び歩留を考えるＬＳＩチップのＰＴＶ条件（Ｐ：プロセス、Ｔ：温度、Ｖ：電圧）により異なる点となる。
【００６２】
また、測定点Ｐｊ（ｊ＝１〜ｍの自然数）は、例えば、各設計変数Ｌｏ（ロード）、Ｄｒ（ドライバ）、Ｔｒ（トランスファ）について±６σで１σ毎に測定する場合、１３ポイントあり、そのトランジスタの種類毎に長さ（Ｌ）、幅（Ｗ）、及び閾値（Ｖｔｈ）があるため、１３×１３×１３×３＝６５９１の測定点となる。範囲ｒは、σで与えられ、例えば、０．５σなどの値で与えられ、その範囲ｒ内の測定点Ｐｊを選択することによって測定点の数を圧縮することができる。
【００６３】
動作シミュレーションでは、上述したように探索点Ｍの近傍の測定点の測定データのみが必要となる。従って、以下に必要な測定点のみを取得しておく処理について説明する。
【００６４】
測定点取得部８は、最確点ＩＭの集合から要素を順番に取り出すための変数ｉに１を設定して初期化して（ステップＳ９２）、変数ｉが要素数ｎ以下であるか否かを判断する（ステップＳ９３）。
【００６５】
変数ｉが要素数ｎ以下である場合、測定点取得部８は、測定点Ｐの集合から要素を順番に取り出すための変数ｊに１を設定して初期化して（ステップＳ９４）、変数ｊが要素数ｍ以下であるか否かを判断する（ステップＳ９５）。変数ｊが要素数ｍより大きい場合、測定点取得部８は、最確点ＩＭの集合に対する変数ｉに１加算して（ステップＳ９５−２）、ステップＳ９３へ戻り、上述同様の処理を繰り返す。
【００６６】
一方、ステップＳ９５において、変数ｊが要素数ｍ以下である場合、測定点取得部８は、設計変数空間９内での設計中心（原点０）からのベクトルＯＭｉとＰｊとの距離が範囲ｒ以下であるか否かを判断する（ステップＳ９６）。距離が範囲ｒを超える場合、測定点取得部８は、ステップＳ９７を処理することなく、ステップＳ９８にて変数ｊに１加算してステップＳ９５へと進む。一方、距離が範囲ｒ以下である場合、測定点取得部８は、測定点Ｐｊを圧縮測定点データ８６の集合ＣＰに含め（ステップＳ９７）、ステップＳ９８にて変数ｊに１加算してステップＳ９５へと進む。そして、上述同様の処理を繰り返す。
【００６７】
一方、ステップＳ９３にて、変数ｉが最確点ＩＭの集合の要素数ｎより大きい場合、測定点取得部８は、ステップＳ９６で選別された測定点Ｐｊを含む集合ＣＰを圧縮測定点データ８６として記憶領域に出力する（ステップＳ９９）。そして、測定点取得部８は、この処理を終了する。
【００６８】
圧縮測定点データ８６によって示される測定点Ｐｊにて、既存のＳＲＡＭセルにおけるトランジスタモデルに対して、トランジスタ種別毎に測定した測定値は、実測データＤＢ８３に格納される。
【００６９】
圧縮測定点データ８６によって示される測定点Ｐｊのみで実測すればよく、±６σの範囲で１σ毎のばらつきに応じた６５９１点と比べて、実測数を低減させることができ、測定時間を短縮することができる。一方、集合ＣＰの測定点Ｐｊの数を圧縮するのみならず、測定点の集合の刻みを細かくして最実行するようにしても良い。
【００７０】
上述のように選択された集合ＣＰの測定点Ｐｊにおいて、実測された実測値が実測データＤＢ８３に格納される。従って、動作シミュレーション処理で必要となる実測値を測定するための作業負担を軽減することができる。
【００７１】
上述において、設計値に対する高精度の歩留を得るために、ばらつきにより設計値からトランジスタモデルのパラメータの値を変化させることを説明したが、本実施例に係る回路設計装置１００は、設計値自体が最適でない、つまり、ノイズマージンが十分大きくない場合に、設計値自体のより最適な点を求めて探索する場合にも適用可能である。最適な点を求めて探索するモデル最適化設計について図１２で説明する。
【００７２】
図１２は、本実施例に係る動作シミュレーション処理のモデル最適化設計への適用例を説明するためのフローチャート図である。図１２において、図５に示すフローチャートにおいて異なる部分についてのみ説明し、同様の処理については同一の符号で示し、その説明を省略する。また、図１２における最適点ＩＭ'は、最確点ＩＭの言い換えであって、処理自体がそれによって異なるものではない。
【００７３】
ステップＳ４−２における判断処理では、ノイズマージンが設計オーダーに従った所定値より大きいか否かを判断する。所定値以下の場合、ステップＳ５、Ｓ６、及びＳ７−２が行われる。従って、探索点Ｍはマージンが大きくなる方向に探索して行くことになる。ここで、ステップＳ７−２では、再調整中心Ｃ０（図８）を決定する際には、一次微分だけでなく二次微分も求めて増分が０になる点を最適点ＩＭ'として推定する。
【００７４】
一方、所定値より大きい場合、最適点ＩＭ'に係る最適点データを記憶領域に出力して記憶する（ステップＳ８）。そして、ステップＳ９及びＳ１０が行なわれる。
【００７５】
上述したように、動作シミュレーション処理をモデル最適化設計に適用することによって、長さ（Ｌ）、幅（Ｗ）、及び閾値（Ｖｔｈ）を変えてより良い歩留を探して、トランジスタモデルの設計値を変更することができる。
【００７６】
以上の説明に関し、更に以下の項を開示する。
（付記１）
半導体装置の動作シミュレーション方法において、コンピュータ装置が、
回路セルの複数の素子モデルの設計値を基準とした製造時のばらつき値による空間において、不良の生起確率が最大となる最確点を探索する探索手順と、
前記探索の過程において、前記複数の素子モデルと夫々の実測値との差をモデル誤差として計算する誤差計算手順と、
前記モデル誤差が所望の精度を満たさない場合、前記該複数の素子モデルを再調整するモデル再調整手順と、
前記再調整された複数の素子モデルを用いて前記最確点を中心としてサンプリングした結果に基づいて、前記半導体装置の歩留を予測する歩留予測手順と
を実行することを特徴とする半導体装置の動作シミュレーション方法。
（付記２）
前記探索手順は、設計値から所定近傍毎にノイズ許容値が最も小さくなる製造時のばらつき値を探索点として取得し、
前記誤差計算手順は、前記複数の素子モデルと前記探索点に近い実測値との差をモデル誤差として計算し、
前記モデル再調整手順は、所定の許容歩留誤差を用いた前記探索点に基づいて推定した最確点における推定歩留に基づいて、前記所望の精度となる許容誤差を計算する許容誤差計算手順を有することを特徴とする付記１記載の半導体装置の動作シミュレーション方法。
（付記３）
前記許容誤差計算手順は、前記推定した最確点を中心に最も近い実測点に相当する前記複数の素子モデルのパラメータセットによって、該複数の素子モデルを再調整することを特徴とする付記２記載の半導体装置の動作シミュレーション方法。
（付記４）
前記モデル再調整手順は、前記モデル誤差が前記許容誤差を満たさない場合、該許容誤差に収まるまで、前記推定した最確点を中心とする再調整の範囲における前記複数の素子モデルのパラメータセットを分割することを特徴とする付記３記載の半導体装置の動作シミュレーション方法。
（付記５）
前記探索手順は、前記最確点に係る最確点データを記憶領域に記憶し、
前記基準となる前記設計値から前記最確点にいたる直線上に測定する実測点を設定する測定点取得手順を更に前記コンピュータ装置が実行する付記１乃至４のいずれか一項記載の半導体装置の動作シミュレーション方法。
（付記６）
前記歩留予測手順は、
前記再調整された複数の素子モデルを用いて、前記最確点を中心とした製造時のばらつき分布でサンプリングすることによって、サンプル毎の良不良を判定するシミュレーション手順と、
前記サンプル毎の良不良の結果から歩留を計算する歩留計算手順と
を有することを特徴とする付記１乃至５のいずれか一項記載の半導体装置の動作シミュレーション方法。
（付記７）
半導体装置の動作シミュレーションを行うコンピュータ装置における測定データ取得方法において、該コンピュータ装置が、
回路セルの複数の素子モデルの設計値を基準とする製造時のばらつき値のうちの不良の生起確率が最大となる最確点を用いて、該設計値から該最確点にいたる直線上に測定する実測点を取得する測定点取得手順と、
前記実測点にて既存の回路セルの複数の素子モデルに対して測定した測定データを取得する測定値取得手順と
を実行することを特徴とする測定データ取得方法。
（付記８）
半導体装置の回路設計方法において、コンピュータ装置が、
回路セルの複数の素子モデルの設計値を基準とした製造時のばらつき値による空間において、不良の生起確率が最大となる最確点を探索する探索手順と、
前記設計値から前記最確点にいたる直線上の実測点にて測定した測定データを取得する測定データ取得手順と、
前記探索の過程において、前記複数の素子モデルと夫々の前記実測点での前記測定データで示される実測値との差をモデル誤差として計算する誤差計算手順と、
前記モデル誤差が所望の精度を満たさない場合、前記該複数の素子モデルを再調整するモデル再調整手順と、
前記再調整された複数の素子モデルを用いて前記最確点を中心としてサンプリングした結果に基づいて、前記半導体装置の歩留を予測する歩留予測手順と
を実行することを特徴とする半導体装置の回路設計方法。
（付記９）
コンピュータ装置に半導体装置の動作シミュレーションを行わせるためのコンピュータ実行可能な動作シミュレーションプログラムにおいて、該コンピュータ装置に、
回路セルの複数の素子モデルの設計値を基準とした製造時のばらつき値による空間において、不良の生起確率が最大となる最確点を探索する探索手順と、
前記探索の過程において、前記複数の素子モデルと夫々の実測値との差をモデル誤差として計算する誤差計算手順と、
前記モデル誤差が所望の精度を満たさない場合、前記複数の素子モデルを再調整するモデル再調整手順と、
前記再調整された複数の素子モデルを用いて前記最確点を中心としてサンプリングした結果に基づいて、前記半導体装置の歩留を予測する歩留予測手順と
を実行させることを特徴とするコンピュータ実行可能な動作シミュレーションプログラム。
（付記１０）
コンピュータ装置に半導体装置の動作シミュレーションで用いられる測定データを取得させるコンピュータ実行可能な測定データ取得プログラムにおいて、該コンピュータ装置が、
回路セルの複数の素子モデルの設計値を基準とする製造時のばらつき値のうちの不良の生起確率が最大となる最確点を用いて、該設計値から該最確点にいたる直線上に測定する実測点を取得する測定点取得手順と、
前記実測点にて既存の回路セルの複数の素子モデルに対して測定した測定データを取得する測定値取得手順と
を実行させることを特徴とするコンピュータ実行可能な測定データ取得プログラム。
（付記１１）
半導体装置の回路設計装置において、
回路セルの複数の素子モデルの設計値を基準とした製造時のばらつき値による空間において、不良の生起確率が最大となる最確点を探索する探索手段と、
前記設計値から前記最確点にいたる直線上の実測点にて測定した測定データを取得する測定データ取得手段と、
前記探索の過程において、前記複数の素子モデルと夫々の前記実測点での前記測定データで示される実測値との差をモデル誤差として計算する誤差計算手段と、
前記モデル誤差が所望の精度を満たさない場合、前記複数の素子モデルを再調整するモデル再調整手段と、
前記再調整された複数の素子モデルを用いて前記最確点を中心としてサンプリングした結果に基づいて、前記半導体装置の歩留を予測する歩留予測手段と
を有する回路設計装置。
【００７７】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００７８】
２        動作シミュレーション部
３        探索部
３１      探索点マージン計算部
４        モデル誤差計算部
５        モデル再調整部
６        最確点シミュレーション部
７        歩留計算部
７ｒ      歩留
８        測定点取得部
８１      ネットリスト
８２      トランジスタモデルＤＢ
８３      実測データＤＢ
８４      許容歩留誤差データ
８５      最確点データ
８６      圧縮測定点データ
１００    回路設計装置
【図１】
2011113291.tif 000004
【図２】
2011113291.tif 000005
【図３】
2011113291.tif 000006
【図４】
2011113291.tif 000007
【図５】
2011113291.tif 000008
【図６】
2011113291.tif 000009
【図７】
2011113291.tif 000010
【図８】
2011113291.tif 000011
【図９】
2011113291.tif 000012
【図１０】
2011113291.tif 000013
【図１１】
2011113291.tif 000014
【図１２】
2011113291.tif 000015