(57)【要約】【課題】物理的な意味を有するモデル式におけるパラメータ素子のパラメータ抽出方法において、モデルや実際の素子特性などの深い理解や経験による適正な初期値を設定することによらず、素子のパラメータの最適値を抽出するパラメータ抽出方法を提供することを課題とする。【解決手段】乱数発生機構によってパラメータの初期値を多数のパターンにわたって生成し、それぞれの初期値に対して自動パラメータ抽出を実行し、最終的な計算値と実測値の差が最も小さくなるようなパラメータの組み合わせを選ぶことで、最適解を求める構成とした。【選択図】図１
2007310873.tif 000002
【特許請求の範囲】
【請求項１】
モデル式からパラメータを抽出するパラメータ抽出方法であって、
前記モデル式のパラメータの初期値を設定するステップと、
前記モデル式のパラメータの初期値を変更するステップと、
実デバイスの入出力応答と、前記パラメータが入力されたモデル式の出力結果とを評価するステップとを有し、
前記モデル式のパラメータの初期値は、乱数生成プログラムによって与えられることを特徴とするパラメータ抽出方法。
【請求項２】
請求項１において、
前記実デバイスの入出力応答と前記パラメータが入力されたモデル式の出力結果の誤差を小さくする前記パラメータを探索するアルゴリズムに基づいて、前記モデル式のパラメータの初期値を自動的に変更するステップを有し、
前記モデル式のパラメータの初期値を自動的に更新するステップは、前記パラメータについて設定された判断基準に基づいて、終了するものであることを特徴とするパラメータ抽出方法。
【請求項３】
請求項２において、
前記モデル式のパラメータの初期値を設定するステップから、前記モデル式のパラメータの初期値を自動的に変更するステップを、複数回繰り返す回数を設定するステップを有し、
前記複数回繰り返すステップにおいて、前記実デバイスの入出力応答と前記パラメータが入力されたモデル式との誤差を比較し、
前記実デバイスの入出力応答と前記パラメータが入力されたモデル式の誤差が最小になるパラメータを抽出することを特徴とするパラメータ抽出方法。
【請求項４】
請求項１乃至３のいずれか一において、
前記モデル式のパラメータの最大値および最小値を設定するステップを有し、
前記乱数生成プログラムは、当該最大値と当該最小値の間に含まれる数値の中から、いずれかの数値の乱数を生成することを特徴とするパラメータ抽出方法。
【請求項５】
請求項１乃至４のいずれか一において、前記乱数生成プログラムは、一様乱数あるいは正規乱数の乱数を発生させるプログラムであることを特徴とするパラメータ抽出方法。
【請求項６】
請求項１乃至５のいずれか一において、前記実デバイスは、半導体素子であることを特徴とするパラメータ抽出方法。
【請求項７】
請求項６において、前記半導体素子は、電界効果トランジスタ、薄膜トランジスタ、ＳＯＩトランジスタ、バイポーラトランジスタ、容量素子、または抵抗素子であることを特徴とするパラメータ抽出方法。
【請求項８】
モデル式からパラメータを抽出するプログラムが記憶された記憶媒体であって、
コンピュータに、
前記コンピュータが、前記モデル式のパラメータの初期値を設定するステップと、
前記コンピュータが、前記モデル式のパラメータの初期値を変更するステップと、
前記コンピュータが、実デバイスの入出力応答と、前記パラメータが入力されたモデル式の出力結果とを評価するステップと、を実行させるためのプログラムを記憶し、
前記モデル式のパラメータの初期値は、乱数生成プログラムによって与えられることを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項９】
請求項８において、
前記コンピュータが、前記実デバイスの入出力応答と前記パラメータが入力されたモデル式の出力結果の誤差を小さくする前記パラメータを探索するアルゴリズムに基づいて、前記モデル式のパラメータの初期値を自動的に変更するステップを実行させるためのプログラムを記憶し、
前記モデル式のパラメータの初期値を自動的に更新するステップは、前記パラメータについて設定された判断基準に基づいて、終了するものであることを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１０】
請求項９において、
前記コンピュータが、前記モデル式のパラメータの初期値を設定するステップから、前記モデル式のパラメータの初期値を自動的に変更するステップを、複数回繰り返す回数を設定するステップ実行させるためのプログラムを記憶し、
前記複数回繰り返すステップにおいて、前記実デバイスの入出力応答と前記パラメータが入力されたモデル式との誤差を比較し、
前記実デバイスの入出力応答と前記パラメータが入力されたモデル式の誤差が最小になるパラメータを抽出することを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１１】
請求項８乃至１０のいずれか一において、前記乱数生成プログラムは、一様乱数あるいは正規乱数の乱数を発生させるプログラムであることを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１２】
請求項８乃至１１のいずれか一において、前記実デバイスは、半導体素子であることを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１３】
請求項１２において、前記半導体素子は、電界効果トランジスタ、薄膜トランジスタ、ＳＯＩトランジスタ、バイポーラトランジスタ、容量素子、または抵抗素子であることを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のパラメータを有する素子のパラメータ抽出方法及び当該パラメータ抽出方法を実行させるプログラムを具備するコンピュータ読み取り可能な記憶媒体に関する。特に半導体回路の設計にあたり、半導体素子のモデル式を利用して回路構成素子の動作を表現するパラメータを与えた上で、設計した回路の動作を検証する半導体回路シミュレーションにおけるパラメータ抽出方法及び当該パラメータ抽出方法を実行させるプログラムを具備するコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【０００２】
一般的に回路シミュレーションとは、回路接続情報、素子モデルパラメータ、解析条件、出力条件など回路シミュレーションに必要な諸条件を直接入力し、あるいは入力された情報を間接的に使用して回路の動作を検証するものである。
【０００３】
上記入力情報において、素子モデルパラメータとは、素子の入出力応答特性をモデル化した解析式に含まれる、物理的な、あるいは半経験的に決定されるパラメータである。ＭＯＳＦＥＴのモデルの例としてはＢＳＩＭ３モデルなどが挙げられる。ＢＳＩＭ３は、一般的にはＳＰＩＣＥモデル（Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ）と呼ばれ、回路シミュレーションに通常用いられるＳＰＩＣＥ系回路シミュレータ上にて素子の入出力応答を再現するモデルである。ＢＳＩＭ３は、数万あるいはそれ以上の数の多くの素子の動作を一度に扱う計算に使用されるため、計算量がなるべくコンパクトに済むように作られている。
【０００４】
素子モデルパラメータを使用する代わりに、デバイスシミュレーション装置にて素子の動作を再現する方法を用いて回路シミュレーションを行うこともできる。しかしながら、デバイスシミュレーション装置を回路シミュレーション装置と併用する場合、解析精度が高くなる代わりに解析規模が大きくなり、さらには解析速度が小さくならざるを得ず、現実的でないために用いられることは少ない。
【０００５】
よって、大規模回路のシミュレーションを行う場合は通常、回路を構成する素子の動作をモデル式とその素子モデルパラメータで表現し、モデル式と素子モデルパラメータの情報を回路シミュレーション装置で処理して回路シミュレーションを行うことになる。この場合、モデル式と素子モデルパラメータから再現した素子特性が、実際に回路を構成する素子の特性と良く一致していなければ、回路シミュレーションの結果と実際に作成した回路の解析結果が合わなくなる。
【０００６】
回路の動作検証を精度良く実施するためには、素子レベルにおいては、素子モデルパラメータを適切に決定する必要がある。素子モデルパラメータが適切かどうかの判定基準としては、素子の実測特性（以下、実測特性という）と解析モデルに基づいた計算値（以下、仮想特性という）との誤差（以下、単に誤差ともいう）が用いられる。この誤差が、理想的には最小になるように素子モデルパラメータの組み合わせを求め、当該誤差を回路動作検証に用いることで、精度の高い検証を行うことができる。回路動作検証に用いる素子モデルパラメータの組み合わせを求めることをパラメータ抽出という。
【０００７】
そして、回路を構成する素子の動作に関するパラメータを効率良く抽出する方法について、例えば特許文献１には、実測値と計算値の誤差を真の値に近づけるために、ニュートン法系解法を用いて実行することが開示されている。
【特許文献１】特開２００１−１４８３３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
具体的な素子モデルパラメータ（以下、単にパラメータともいう）を実測特性から抽出するには、作業者が適当なパラメータの値を入力して仮想特性を実測値に近づける方法と、特許文献１に記載のようにコンピュータに何らかのアルゴリズムを利用させて自動的に仮想特性を実測特性に近づける方法がある。
【０００９】
何らかのアルゴリズム、例えば非線形最小２乗法など、を用いてコンピュータで自動的に仮想特性を実測特性に近づける場合、前もってパラメータに初期値、並びに最大値及び最小値を与えてやる必要がある。コンピュータは、仮想特性と実測特性の誤差が小さくなる方向にパラメータを変更し、その誤差が極小になるか、またはパラメータが最大値あるいは最小値に達するまでパラメータを変更する。
【００１０】
前記初期値はパラメータ抽出作業者が任意に与えることができるが、この初期値を与える操作は非常に重要である。なぜなら、仮想特性と実測特性の誤差を極小にするパラメータの解は通常複数存在し、それらの解のうち、どの解が得られるかは初期値にかかっているからである。そして、解によっては、計算値が実測値から大きくかけ離れ、近似とは言えない状態になってしまう。この状況を、図４を使用して説明する。
【００１１】
図４はパラメータと誤差の関係をグラフにしたものである。グラフ横軸のパラメータというのは素子モデルパラメータのことであり、例えばＵＣＢ  ＭＯＳＦＥＴ  ＬＥＶＥＬ３のモデルであれば、ＶＴＨ、ＥＴＡ、ＧＡＭＭＡなどのパラメータである。
【００１２】
また図４におけるグラフ縦軸の誤差というのは、仮想特性と実測特性との差のことである。仮想特性とは、具体的な数値をそれぞれの素子モデルパラメータに代入した結果得られる素子特性のことである。
【００１３】
つまり図４において、この誤差ができるだけ小さくなるようなパラメータを見つけ、そしてパラメータを取得することが、よりよいパラメータを抽出することになるといえる。
【００１４】
しかしながらパラメータと誤差の関係は、通常図４で示されるように、多数の極値を持つ。パラメータ抽出の際には、各パラメータに初期値を与え、必要に応じてパラメータを１つずつ調整して誤差が小さくなるようにパラメータの最適解を探していく必要がある。
【００１５】
つまり作業者がパラメータを調整する場合には、納得いくまでパラメータを調整することができるが、誤差を最も小さくするようなパラメータの最適解を抽出するには、使用するモデルを詳細にわたって理解することと、パラメータを抽出する対象の素子の特性を理解することが必要である。もちろん、素子の特性は製造プロセスに左右されるので、素子の特性はプロセスごとに分けて理解する必要がある。
【００１６】
作業者がコンピュータとソフトウェアを用いて自動的にパラメータ抽出をする際は、レーベンバーグ・マルカート（Ｌｅｖｅｎｂｅｒｇ−Ｍａｒｑｕａｒｄｔ）法などの非線形最小２乗法アルゴリズムを用いてパラメータを調整するが、初期値と最適解の間に極値が存在すると、コンピュータはその極値をパラメータとして抽出してしまう。例えば図４で説明すると、初期値４０１をコンピュータに与えてパラメータ抽出をすると、コンピュータは誤差を小さくする方向にパラメータを動かし、誤差が極小値をとる安定解４０４をパラメータとして抽出する。初期値４０２をコンピュータに与えてパラメータ抽出をすると、同様にして安定解４０５をパラメータとして抽出する。初期値４０３をコンピュータに与えることで初めて最適解である安定解４０６を自動的に抽出することができる。
【００１７】
なお、本明細書において最適解とは、誤差の値が減少する方向にパラメータの調整を行い、使用する物性モデルの全体としての誤差の最小値のことをいう。
【００１８】
なお、ここでは簡単のためにパラメータと誤差の関係として単純な曲線を用いたが、実際はパラメータ毎に傾向が複雑に変化し、しかも他のパラメータ値との兼ね合いによって更に傾向が変化する。そのような状況の中で初期値を適切に設定するのは簡単ではない。
【００１９】
上述のように初期値の設定は重要であるが、初期値をどう設定した方が良いかは、プロセス、または素子のサイズ等に依存するため、一通りではない。しかも、統計解析のために同プロセスで作成した多数の素子からパラメータ抽出を行う場合、素子の特性ばらつきが大きいと、１つの初期値ではそれぞれの特性に対して最適解を求められないなどの問題があった。
【００２０】
図２は従来のパラメータ抽出について説明するフローチャートである。実デバイス素子の例として、ＴＦＴ（薄膜トランジスタ；Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）を取り上げる。実測特性を仮想特性で近似するため、まずステップ２０１で、仮想特性を作り出すのに使用するモデルの選択を行う。このモデルは回路シミュレータで使用できるモデルのことであり、例としてＴＦＴ用のＳＰＩＣＥモデルであるＲＰＩ  ｐ−Ｓｉモデルが挙げられる。
【００２１】
次に図２において、ステップ２０２でモデル式の各パラメータに初期値、最大値、及び最小値を入力する。前述のＲＰＩ  ｐ−Ｓｉモデルであれば、例えばしきい値電圧に関連するＶＴＯなどを始めとして最大５０個以上のパラメータ群を使用して仮想特性を表現することができる。これらはモデル式を構成するパラメータ群であり、これらのパラメータ群の他に、出力値を規定するための入力値として、ゲート−ソース電圧とドレイン−ソース電圧が必要である。
【００２２】
なお、最大値及び最小値はパラメータを動かす範囲を決めるために設定する。これを決めなければ、パラメータが際限なく変更される一方で、仮想特性と実測特性の誤差の極値が求まらない場合が発生する。そのような事態になると、計算がいつまでも終了しなくなってしまうので、最大値及び最小値を決めることで、パラメータの変更の限界を与える。
【００２３】
図２において、ステップ２０３は仮想特性と実測特性の誤差を評価するステップで、このとき評価した誤差をステップ２０４、ステップ２０５のステップを実行する上での基準とする。
【００２４】
図２において、ステップ２０４はパラメータを変更するステップで、初期値から微増または微減させる。増加量または減少量は特に決まっておらず、計算速度と精度の兼ね合いで調整される。また、パラメータが変更された際は、仮想特性と実測特性の誤差を評価し直す。
【００２５】
図２において、ステップ２０５はステップ２０４でパラメータの変更及び仮想特性と実測特性の誤差が評価されたのを受け、その誤差が基準と照らして小さいか大きいかを判断するステップである。ステップ２０４で求めた誤差が基準より小さければ、ステップ２０５で求めた誤差を新たな基準とし、ステップ２０４に戻る。
【００２６】
図２において、ステップ２０４で求めた誤差が基準より大きければ、基準の誤差を与えるパラメータ群をステップ２０６で取得し、そして基準の誤差を与えるパラメータ群を保存する。
【００２７】
従来は、図２で説明したように、作業者がパラメータ抽出ソフト上で各パラメータに初期値を入力し、その初期値を出発点として、コンピュータが非線形最小２乗法などのアルゴリズムに基づいて計算値と実測値の差を極小にするように各パラメータを変更する方法が採られてきた。
【００２８】
しかし、各パラメータにおける初期値と最適解の中間に、計算値と実測値の差を極小にするような値が存在する場合、各パラメータが最適解まで至らずにパラメータ抽出が終了してしまう。このような場合、往々にして計算値と実測値の差はあまり小さくならず、パラメータ抽出が失敗してしまう。そこで、なるべく最適解に近い値にパラメータの初期値を設定する必要があるが、適正な初期値を設定するにはモデルや実際の素子特性などの深い理解や経験が必要である。そして更に素子作成のプロセスが変更になる度に初期値を見直す必要が出てくる。
【００２９】
しかも、統計解析の目的で同じ基板上に存在する同種類の素子のパラメータを抽出する必要がある場合、プロセス起因のばらつきによってそれぞれの特性が数１０％レベルでずれることがある。このようなときには、それぞれの特性に対して最適なパラメータを求めるには異なる初期値を設定する必要が出てくる可能性がある。
【００３０】
本発明は前述の課題に鑑み、物理的な意味を有するモデル式におけるパラメータ素子のパラメータ抽出方法において、モデルや実際の素子特性などの深い理解や経験による適正な初期値を設定することによらず、素子のパラメータの最適値を抽出するパラメータ抽出方法及び当該パラメータ抽出方法を実行させるプログラムを具備するコンピュータ読み取り可能な記憶媒体を提供するものである。
【課題を解決するための手段】
【００３１】
上述の諸問題を解決するため、本発明は乱数発生プログラムによってパラメータの初期値を多数のパターンにわたって生成し、それぞれの初期値に対して自動パラメータ抽出を実行し、最終的な計算値と実測値の差が最も小さくなるようなパラメータの組み合わせを選ぶことで、最適解を求めることを特徴とする。
【００３２】
本発明のパラメータ抽出方法の一は、モデル式からパラメータを抽出するパラメータ抽出方法であって、モデル式のパラメータの初期値を設定するステップと、モデル式のパラメータの初期値を変更するステップと、実デバイスの入出力応答と、パラメータが入力されたモデル式の出力結果とを評価するステップとを有し、モデル式のパラメータの初期値は、乱数生成プログラムによって与えられる構成とする。
【発明の効果】
【００３３】
本発明により、パラメータの初期値を乱数生成プログラムによってランダムに生成し、その初期値を出発点としたパラメータ抽出を行うことで、作業者が初期値を設定するステップを省略することができる。
【００３４】
また、初期値をうまく設定するためには物理的意味を有するモデル式に対する理解や実際にパラメータ抽出をする対象の実デバイスの入出力応答およびプロセスを良く理解していることが必要であり、熟練を要するものであった。本発明により、初心者でも物理的意味を有するモデル式のパラメータ抽出を容易に行えるようになる。すなわち、モデルの大幅な変更や実デバイスの設計または製造プロセスの変更にも柔軟に対応することができる。
【００３５】
また更に、統計解析などの目的で、同サイズ且つ同製造プロセスの複数の実デバイスの入出力応答から、物理的意味を有するモデル式のパラメータ抽出を行うことがあるときに、実デバイスの入出力応答のばらつきが大きい場合、初期値を複数個用意しないとそれぞれの最適解が求まらない場合がある。本発明は特に、前述のような場合であっても、初心者でも複数の初期値の入力を施すことなく、パラメータの最適解を求めることができる。
【発明を実施するための最良の形態】
【００３６】
以下、本発明の実施の形態について図面を参照しながら説明する。但し、本発明は多くの異なる態様で実施することが可能であり、本発明の趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは当業者であれば容易に理解される。従って本実施の形態の記載内容に限定して解釈されるものではない。なお、以下に説明する本発明の構成において、同じ物を指し示す符号は異なる図面間において共通とする。
（実施の形態１）
【００３７】
以下、図面を参照して、本発明のパラメータ抽出方法について説明する。
【００３８】
なお、本実施の形態においては、説明のため、実デバイスとして半導体素子を選定し、半導体集積回路におけるＭＯＳＦＥＴの回路シミュレーションについて用いるものとして説明する。そのため予め、実デバイスにおける素子特性の測定を行う。なお半導体素子における実デバイスとしては、トランジスタや抵抗などが挙げられる。
【００３９】
なおここでいう実デバイスは、半導体素子等の物理的特性を有し、入力物理量に対する出力物理量の応答を示すものであればよい。半導体素子においては、トランジスタなどの能動素子であれば例えばＭＯＳＦＥＴ、ＴＦＴ、バイポーラトランジスタ等の素子、あるいは受動素子であれば抵抗、容量素子などの受動素子であってもよい。
【００４０】
なお、ここでいう素子の物理的な特性とは、種々の物理現象を利用した現実の素子において、入力の信号以外の全ての条件を固定した上で測定した入力信号値と出力信号値の相関のことをいう。つまり厳密には、物理的な特性を表す個々の出力信号の測定値を実測値と言う。
【００４１】
図１は本発明におけるパラメータ抽出方法についてのフローチャートである。図１において、乱数発生プログラムにより、乱数をある範囲で一様な確率で発生させて初期値に用いる自動パラメータ抽出のフローチャートである。
【００４２】
まず図１におけるステップ１０１はＳＰＩＣＥ等の回路シミュレーション上で素子の仮想特性を表すのに使用するモデルを選択するステップである。ＭＯＳＦＥＴならＢＳＩＭ３、ＴＦＴならＲＰＩ  ｐ−Ｓｉモデルなどがあり、素子構造の特徴に従って適切なモデルを選ぶ必要がある。
【００４３】
モデル式は、例えば半導体素子におけるＭＯＳＦＥＴであれば、例えばカルフォルニアバークレー校（ＵＣＢ）の開発したＢＳＩＭ３モデルのモデル式であってもよいし、既存の他のモデル式であってもよい。モデル式においては、素子モデルパラメータによる式で表され、各パラメータを求めることで実デバイスに近似した特性の仮想デバイスとしてシミュレーションを行うことができる。なお、回路シミュレーションにおいては、半導体の分野で主に用いられる、ＵＣＢが開発したＳＰＩＣＥ（Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ）を用いればよい。
【００４４】
なお、半導体素子のモデル式としては、実デバイスの選定等の条件によって選択されればよい。例えば、ＭＯＳＦＥＴのモデル式であれば、ＬＥＶＥＬ１、ＬＥＶＥＬ２、ＬＥＶＥＬ３、ＢＳＩＭ１、ＢＳＩＭ２、ＢＳＩＭ３等から選択されればよい。ＴＦＴのモデル式であれば、ＲＰＩ  ｐｏｌｙｓｉｌｉｃｏｎ  ＴＦＴ  Ｍｏｄｅｌ、ＲＰＩ  ａｍｏｒｐｈｏｕｓ  ＴＦＴ  Ｍｏｄｅｌ等から選択されればよい。ＳＯＩであれば、ＵＦＳＯＩ  Ｍｏｄｅｌ等から選択されればよい。
【００４５】
次に図１におけるステップ１０２は、ステップ１０１で選択したモデル式の解析式を構成する素子モデルパラメータ群（以下、単にパラメータ群ともいう）のそれぞれに、初期値、最大値、及び最小値を与えるステップである。これらのパラメータ群は、モデル毎に標準的な値が定められている場合があり、その値を入れても良いし、作業者が任意の値を入力してもよい。コンピュータは、初期値をモデルの各パラメータ群に与えたときの仮想特性と実測特性の誤差を基準にして、より誤差が小さくなるようにパラメータを変更していくことになる。基準がなければ、誤差が小さくなるようなパラメータの値を探索することが出来ないので、初期値を決めることが必要である。また、あるパラメータに対して、誤差が極小値を持たないような場合、例えばパラメータを変化させても誤差が変化しない場合など、コンピュータがいつまでも誤差が小さくなるパラメータを探索しつづけ、パラメータ抽出が終了しなくなったり、計算の途中経過を記憶しておく媒体に情報が入り切らなくなったりするなどの不具合が生じる可能性がある。そこで、誤差の極小値が見つからない場合は計算を途中で打ち切るようにするために、パラメータ群の最大値、最小値を設定しておく必要がある。
【００４６】
なお、初期値、最大値、及び最小値を与えるパラメータ群のうち、全てのパラメータにおいて初期値、最大値、及び最小値を与えてもよい。この場合は、最適値の見積もりがより正確な値として得られるため好適である。また、当該パラメータ群のうち、パラメータの幾つかだけを選択し、初期値、最大値、及び最小値を与える構成としてもよい。この場合は、最適値の見積もりにかかる計算時間を短縮化することができるため好適である。
【００４７】
次に図１におけるステップ１０３は、パラメータ群に初期値を与えるステップからパラメータ抽出が終了するまでの繰り返し回数を入力するステップである。通常は初期値を与えてから仮想特性と実測特性の誤差の極小値を求めるまででパラメータ抽出は終了する。本発明では、パラメータ群の初期値をランダムに与え、パラメータ抽出を行う一連の流れを繰り返し、複数回のパラメータ抽出作業の中で最も仮想特性と実測特性の誤差を小さくするパラメータ群の組み合わせを求めることで、適切なパラメータ抽出が行われる可能性を飛躍的に向上させている。繰り返し回数は多ければ多いほど適切なパラメータ抽出を行える可能性が高まるが、抽出するパラメータの数、または計算時間などの兼ね合いで決定する。
【００４８】
次に図１におけるステップ１０４は乱数発生プログラムにより素子モデルパラメータの初期値を生成するステップで、素子モデルパラメータの全てをランダムに決めても良いし、一部だけ選択してランダムに決められるようにしても良い。
【００４９】
次に図１におけるステップ１０５はステップ１０４で生成された初期値やステップ１０２で設定した初期値をもとに、仮想特性と実測特性の誤差を評価するステップであり、このときの誤差を基準として誤差の小さくなるパラメータを探索する。
【００５０】
次に図１におけるステップ１０６はパラメータを変更するステップで、初期値から微増または微減させる。増加量または減少量は特に決まっておらず、計算速度と精度の兼ね合いで調整される。また、パラメータが変更された際は、仮想特性と実測特性の誤差を評価し直す。
【００５１】
次に図１におけるステップ１０７はステップ１０６でパラメータの変更及び仮想特性と実測特性の誤差が評価されたのを受け、その誤差が基準と照らして小さいか大きいかを判断するステップである。ステップ１０６で求めた誤差が基準より小さければ、ステップ１０６で求めた誤差を新たな基準とし、ステップ１０６に戻る。
【００５２】
図１におけるステップ１０６で求めた誤差が基準より大きければ、基準の誤差を与えるパラメータ群をステップ１０８で取得し、そして基準の誤差を与えるパラメータ群を保存する。
【００５３】
図１におけるステップ１０４からステップ１０８の繰り返しがステップ１０３で入力した回数だけ繰り返され、ステップ１１０で、繰り返し試行の中で最も小さい誤差を与えるようなパラメータ群を取得し、そして繰り返し試行の中で最も小さい誤差を与えるようなパラメータ群を保存する。
【００５４】
なお、モデル式における抽出された各パラメータについては、ハードウェア記述言語（ＨＤＬ）によって半導体集積回路の機能設計または仕様記述を行った後、ＨＤＬで記述された機能を実現するべくセルライブラリに格納されたセルの接続関係を規定するネットリストを生成する（以下、論理合成という）。
【００５５】
論理合成においてはセルライブラリに格納された各セルのタイミング情報及び論理情報を主として参照し、所望の機能が実現されるように、且つタイミング情報から算出される遅延時間が所定の基準を満たすようにセルの選択及び接続がなされ、回路シミュレーションを行うことができる。
【００５６】
また、設定した計算回数が多いと計算時間も長くなってしまうが、複数のＣＰＵで並列に計算を行えるコンピュータ、所謂スーパーコンピュータを用いることで、多くの計算を一度に実行し計算時間を短縮することができるため好適である。
【００５７】
なお、それぞれの計算は独立に行っても問題ないので、最終的に全ての計算終了後に結果を比較し、計算値と実測値の差が最小になるパラメータを取得し、そして計算値と実測値の差が最小になるパラメータを保存するようにすれば良い。
【００５８】
本実施の形態において、乱数生成プログラムは、乱数として一様乱数を生成する。そこで、乱数として一様乱数を初期値として用いることの利点について図５を用いて説明する。図５において、最大値及び最小値として示したのは、図１におけるステップ１０２で設定した最大値及び最小値のことであり、乱数生成プログラムは、最大値と最小値に挟まれた領域で、一様な確率で初期値を生成する。
【００５９】
なお、本明細書において一様乱数とは、ある最大値と最小値の区間における区間内で全ての実数が同じ確率で現れるような乱数のことをいう。
【００６０】
図５では説明のために、パラメータを、最大値から最小値の範囲で等間隔に６つにわけ、それぞれ初期値５０４〜５０９を割り当てたものについて示す。一様乱数を初期値として用いた場合、初期値が図５の初期値５０４、初期値５０５、初期値５０６、初期値５０７、初期値５０８、初期値５０９に入る確率はそれぞれ等しい。誤差とパラメータの関係は、横軸のパラメータ以外の素子モデルパラメータの影響によって複雑に変化するので、横軸に示したパラメータ以外のパラメータは固定されている前提で、誤差は解５０１、解５０２、解５０３の３つの極値を持つとする。
【００６１】
例えば初期値が初期値５０４で示した領域に生成されたときには、誤差の極小値を探索するプログラムによって、コンピュータは解５０１を求めることができる。同様に、初期値が初期値５０５および５０６の領域に生成されると、解５０２を求めることができる。このように、一様乱数は広い領域で最適パラメータを効率よく探索できるというメリットがある。
【００６２】
このようにして解５０１、解５０２、解５０３を求めた後は、図１におけるステップ１１０にて最良のパラメータ、つまり誤差が最小となる解５０３を与えるパラメータを取得し、保存することでパラメータ抽出を行うことができる。
【００６３】
以上のような本発明の構成と取ることにより、本発明により、パラメータの初期値を乱数生成プログラムによってランダムに生成し、その初期値を出発点としたパラメータ抽出を行うことで、作業者が初期値を設定しなくても良くなる。
【００６４】
また、初期値をうまく設定するためには物理的意味を有するモデル式に対する理解や実際にパラメータ抽出をする対象の実デバイスの入出力応答（入力に応じて出力される値ともいう）およびプロセスを良く理解していることが必要であり、熟練を要するものであった。本発明により、初心者でも物理的意味を有するモデル式のパラメータ抽出を容易に行えるようになる。すなわち、モデルの大幅な変更や実デバイスの設計または製造プロセスの変更にも柔軟に対応することができる。
【００６５】
また更に、統計解析などの目的で、同サイズ・同製造プロセスの複数の実デバイスの入出力応答から、物理的意味を有するモデル式のパラメータ抽出を行うときに、実デバイスの入出力応答のばらつきが大きい場合、初期値を複数個用意しないとそれぞれの最適解が求まらない場合がある。本発明は特に、前述のような場合であっても、初心者でも複数の初期値の入力を施すことなく、パラメータの最適解を求めることができる。
【００６６】
なお、本実施の形態は、本明細書中の他の実施の形態の記載と自由に組み合わせて実施することが可能である。
（実施の形態２）
【００６７】
本実施の形態は、実施の形態１で示した構成と別の構成について説明する。実施の形態２におけるパラメータ抽出方法は、実施の形態１にかかる素子モデルパラメータ抽出方法の変形例であり、同プロセスで作成した、実測特性ばらつきのある複数の素子の精度良いパラメータ抽出方法を提供するものである。
【００６８】
実施の形態１では素子モデルパラメータの初期値を一様乱数で生成していたが、本実施の形態においては、乱数として正規乱数を用いる。以下、乱数として正規乱数を用いることにより、計算時間が短縮して計算することのできるパラメータ抽出方法について述べる。
【００６９】
なお、正規乱数については、一様乱数をボックス＝ミューラー（Ｂｏｘ−Ｍｕｌｌｅｒ）法により変換する方法により正規乱数を生成する方法を用いて生成すればよい。
【００７０】
同プロセスで作成した複数の同種類素子は、抽出されるパラメータに違いがあると言っても、各パラメータともある平均値の周りで分布していると考えられる。そこで、実施の形態１の乱数生成プログラムで生成する乱数を、一様乱数ではなく正規乱数にすることを考える。
【００７１】
前述の複数の同種類素子の中から１つの素子を選び実測特性を測定し、パラメータ抽出を精度良く行ったとすると、他の素子のパラメータも前記抽出したパラメータ付近に存在する可能性が高い。その場合、他の素子に対しては実施の形態１を施すよりも、正規乱数を生成して前記抽出したパラメータ付近の値を初期値として選んだ方が誤差を最小化する最適解が見つかる可能性が高い。その一方で、正規乱数の分布の分散を大きくすれば、初期値にある程度幅を持たせることもできる。
【００７２】
図３のフローチャートを用いて本実施の形態を説明する。
【００７３】
図３において、ステップ３０１はＳＰＩＣＥ等の回路シミュレーション上で素子の仮想特性を表すのに使用するモデルを選択するステップである。ＭＯＳＦＥＴならＢＳＩＭ３、ＴＦＴならＲＰＩ  ｐ−Ｓｉモデルなどがあり、素子構造の特徴に従って適切なモデルを選ぶ必要がある。
【００７４】
図３において、ステップ３０２は、ステップ３０１で選択したモデル式の解析式を構成するパラメータ群のそれぞれに、初期値、最大値、及び最小値を与えるステップである。これらのパラメータ群は、モデル式毎に標準的な値が定められている場合があり、その値を入れても良いし、作業者が任意の値を入力してもよい。コンピュータは、初期値をモデル式の各パラメータ群に与えたときの仮想特性と実測特性の誤差を基準にして、より誤差が小さくなるようにパラメータを変更していくことになる。基準がなければ、誤差が小さくなるようなパラメータの値を探索することが出来ないので、初期値を決めることが必要である。また、あるパラメータに対して、誤差が極小値を持たないような場合、例えばパラメータを変化させても誤差が変化しない場合などがある。誤差が極小値を持たないような場合、コンピュータがいつまでも誤差が小さくなるパラメータを探索しつづけ、パラメータ抽出が終了しなくなったり、計算の途中経過を記憶しておく媒体に情報が入り切らなくなったりするなどの不具合が生じる可能性がある。そこで、誤差の極小値が見つからない場合は計算を途中で打ち切るようにするために、モデル式の各パラメータ群の最大値、及び最小値を設定しておく必要がある。
【００７５】
図３において、ステップ３０３は、初期値を正規乱数によって生成するパラメータに対して平均値と分散を規定するステップである。複数の素子に対してパラメータ抽出をする場合、典型的なパラメータ値を平均値にして、素子ばらつきが大きい場合には分散を大きめに、素子ばらつきが小さい場合は分散を小さめにすることで、初期値の生成の仕方に分布を持たせることができる。これにより、ある程度初期値の的を絞ってパラメータ抽出の効率を高めつつ、分散という幅を持たせることにより、素子ばらつきが大きくて初期値を平均値から離れたところに設定しなければ誤差を最小化できないような場合にも対応できるようになる。
【００７６】
図３において、ステップ３０４は、素子モデルパラメータ群に初期値を与えるステップからパラメータ抽出が終了するまでの繰り返し回数を入力するステップである。通常は初期値を与えてから仮想特性と実測特性の誤差の極小値を求めるまででパラメータ抽出は終了するが、本発明では、パラメータ群の初期値をランダムに与え、パラメータ抽出を行う一連の流れを繰り返し、複数回のパラメータ抽出作業の中で最も仮想特性と実測特性の誤差を小さくするパラメータ群の組み合わせを求めることで、適切なパラメータ抽出が行われる可能性を飛躍的に向上させている。繰り返し回数は多ければ多いほど適切なパラメータ抽出を行える可能性が高まるが、抽出するパラメータの数、または計算時間などの兼ね合いで決定する。
【００７７】
図３において、ステップ３０５は乱数発生プログラムにより素子モデルパラメータの初期値を生成するステップで、素子モデルパラメータの全てをランダムに決めても良いし、一部だけ選択してランダムに決められるようにしても良い。
【００７８】
図３において、ステップ３０６はステップ３０５で生成された初期値やステップ３０２で設定した初期値をもとに、仮想特性と実測特性の誤差を評価するステップであり、このときの誤差を基準として誤差の小さくなるパラメータを探索する。
【００７９】
図３において、ステップ３０７はパラメータを変更するステップで、初期値から微増または微減させる。増加量または減少量は特に決まっておらず、計算速度と精度の兼ね合いで調整される。また、パラメータが変更された際は、仮想特性と実測特性の誤差を評価し直す。
【００８０】
図３において、ステップ３０８はステップ３０７でパラメータの変更及び仮想特性と実測特性の誤差が評価されたのを受け、その誤差が基準と照らして小さいか大きいかを判断するステップである。ステップ３０７で求めた誤差が基準より小さければ、ステップ２０６で求めた誤差を新たな基準とし、ステップ３０７に戻る。
【００８１】
図３において、ステップ３０７で求めた誤差が基準より大きければ、基準の誤差を与えるパラメータ群をステップ３１０で取得、保存する。
【００８２】
図３において、ステップ３０５からステップ３０９の繰り返しがステップ３０４で入力した回数だけ繰り返され、ステップ３１１で、繰り返し試行の中で最も小さい誤差を与えるようなパラメータ群を取得し、そして繰り返し試行の中で最も小さい誤差を与えるようなパラメータ群を保存する。
【００８３】
以上のような本発明の構成と取ることにより、本発明により、パラメータの初期値を乱数生成プログラムによってランダムに生成し、その初期値を出発点としたパラメータ抽出を行うことで、作業者が初期値を設定しなくても良くなる。さらには乱数生成プログラムより生成される乱数として正規乱数を用いることにより、得られるパラメータの計算時間を短縮して得ることができるため好適である。
【００８４】
また、初期値をうまく設定するためには物理的意味を有するモデル式に対する理解や実際にパラメータ抽出をする対象の実デバイスの入出力応答およびプロセスを良く理解していることが必要であり、熟練を要するものであった。本発明により、初心者でも物理的意味を有するモデル式のパラメータ抽出を容易に行えるようになる。すなわち、モデルの大幅な変更や実デバイスの設計または製造プロセスの変更にも柔軟に対応することができる。
【００８５】
また更に、統計解析などの目的で、同サイズ・同製造プロセスの複数の実デバイスの入出力応答から、物理的意味を有するモデル式のパラメータ抽出を行うときに、実デバイスの入出力応答のばらつきが大きい場合、初期値を複数個用意しないとそれぞれの最適解が求まらない場合がある。本発明は特に、前述のような場合であっても、初心者でも複数の初期値の入力を施すことなく、パラメータの最適解を求めることができる。
【００８６】
なお、本実施の形態は、本明細書中の他の実施の形態の記載と自由に組み合わせて実施することが可能である。
【実施例１】
【００８７】
本実施例においては、本発明のパラメータ抽出方法をプログラムとして記憶し、コンピュータに実行させることのできる記憶媒体について説明する。
【００８８】
本発明の記憶媒体は、上記実施の形態で示したパラメータ抽出方法を、コンピュータに実行させるためのコンピュータ読み取り可能なプログラムとして記憶することができる。例えば、磁気ディスク、ハードディスク、ＣＤＲＯＭ、メモリカード、光磁気ディスク等の記憶媒体に記憶してコンピュータに読み取らせることで使用することができる。本発明の記憶媒体は、パラメータ抽出方法を実行させるためのプログラムを有している。このため、コンピュータに記憶されたプログラムを読み取らせることができる。
【００８９】
なお、本実施例は、上述した実施の形態と自由に組み合わせて行うことができる。そのため、パラメータの初期値を乱数生成プログラムによってランダムに生成し、その初期値を出発点としたパラメータ抽出を行うことで、作業者が初期値を設定しなくても良くなる。
【００９０】
また、初期値をうまく設定するためには物理的意味を有するモデル式に対する理解や実際にパラメータ抽出をする対象の実デバイスの入出力応答およびプロセスを良く理解していることが必要であり、熟練を要するものであった。本発明により、初心者でも物理的意味を有するモデル式のパラメータ抽出を容易に行えるようになる。すなわち、モデルの大幅な変更や実デバイスの設計または製造プロセスの変更にも柔軟に対応することができる。
【００９１】
また更に、統計解析などの目的で、同サイズ・同製造プロセスの複数の実デバイスの入出力応答から、物理的意味を有するモデル式のパラメータ抽出を行うときに、実デバイスの入出力応答のばらつきが大きい場合、初期値を複数個用意しないとそれぞれの最適解が求まらない場合がある。本発明は特に、前述のような場合であっても、初心者でも複数の初期値の入力を施すことなく、パラメータの最適解を求めることができる。
【図面の簡単な説明】
【００９２】
【図１】本発明の実施の形態１のフローチャート図。
【図２】従来のパラメータ抽出方法のフローチャート図。
【図３】本発明の実施の形態２のフローチャート図。
【図４】本発明のパラメータ抽出方法を説明するための図。
【図５】本発明のパラメータ抽出方法を説明するための図。
【符号の説明】
【００９３】
１０１    ステップ
１０２    ステップ
１０３    ステップ
１０４    ステップ
１０５    ステップ
１０６    ステップ
１０７    ステップ
１０８    ステップ
１０９    ステップ
１１０    ステップ
２０１    ステップ
２０２    ステップ
２０３    ステップ
２０４    ステップ
２０５    ステップ
２０６    ステップ
３０１    ステップ
３０２    ステップ
３０３    ステップ
３０４    ステップ
３０５    ステップ
３０６    ステップ
３０７    ステップ
３０８    ステップ
３０９    ステップ
３１０    ステップ
３１１    ステップ
４０１    初期値
４０２    初期値
４０３    初期値
４０４    安定解
４０５    安定解
４０６    安定解
５０１    解
５０２    解
５０３    解
５０４    初期値
５０５    初期値
５０６    初期値
５０７    初期値
５０８    初期値
５０９    初期値
【図１】
2007310873.tif 000003
【図２】
2007310873.tif 000004
【図３】
2007310873.tif 000005
【図４】
2007310873.tif 000006
【図５】
2007310873.tif 000007