(57)【要約】【課題】半導体デバイスの特性のシミュレーションに用いるパラメータの最適化を容易にする。【解決手段】シミュレーション部１２は、半導体デバイスをモデル化する第１パラメータを用いてシミュレーションを行い、半導体デバイスの所定の特性の計算値を算出し、誤差計算部１３は、特性の実測値を記憶した記憶部１６を参照し、実測値に対する計算値の誤差を算出し、パラメータ変換部１４は、第１パラメータをシグモイド関数で第２パラメータに変換し、最適値計算部１５は、上記の誤差を最小とする第２パラメータの最適値Ｖｏｐ２を算出し、パラメータ変換部１４は、第２パラメータの最適値Ｖｏｐ２を、シグモイド関数の逆関数を用いて第１パラメータの最適値Ｖｏｐ１に変換する。【選択図】図１
2014063797.tif 000002
【特許請求の範囲】
【請求項１】
半導体デバイスをモデル化する第１のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出するシミュレーション部と、
前記特性の実測値を記憶した記憶部を参照し、前記実測値に対する前記計算値の誤差を算出する誤差計算部と、
前記第１のパラメータをシグモイド関数で第２のパラメータに変換するパラメータ変換部と、
前記誤差を最小とする前記第２のパラメータの最適値を算出する最適値計算部と、
を有し、
前記パラメータ変換部は、前記第２のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第１のパラメータの最適値に変換する、ことを特徴とする最適値計算装置。
【請求項２】
前記シミュレーション部は、複数の前記第１のパラメータを用いてシミュレーションを行い、複数の前記第１のパラメータは、稜構造をもつパラメータを含むことを特徴とする請求項１記載の最適値計算装置。
【請求項３】
前記パラメータ変換部は、前記第１のパラメータの複数の値のうち、前記誤差が小さくなるものから優先して所定数の値を前記第２のパラメータの値に変換し、前記最適値計算部は、前記所定数の前記第２のパラメータの値をもとに、前記第２のパラメータの最適値を算出することを特徴とする請求項１または２に記載の最適値計算装置。
【請求項４】
複数の計算装置を有する最適値計算システムであって、
半導体デバイスをモデル化する第１のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出するシミュレーション部と、
前記特性の実測値を記憶した記憶部を参照し、前記実測値に対する前記計算値の誤差を算出する誤差計算部と、
前記第１のパラメータをシグモイド関数で第２のパラメータに変換するパラメータ変換部と、
前記誤差を最小とする前記第２のパラメータの最適値を算出する最適値計算部と、
を有し、
前記パラメータ変換部は、前記第２のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第１のパラメータの最適値に変換する、ことを特徴とする最適値計算システム。
【請求項５】
１または複数のコンピュータが、
半導体デバイスをモデル化する第１のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出し、
記憶部に記憶された実測値に対する前記計算値の誤差を算出し、
前記第１のパラメータをシグモイド関数で第２のパラメータに変換し、
前記誤差を最小とする前記第２のパラメータの最適値を算出し、
前記第２のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第１のパラメータの最適値に変換する、
ことを特徴とする最適値計算方法。
【請求項６】
コンピュータに、
半導体デバイスをモデル化する第１のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出し、
記憶部に記憶された実測値に対する前記計算値の誤差を算出し、
前記第１のパラメータをシグモイド関数で第２のパラメータに変換し、
前記誤差を最小とする前記第２のパラメータの最適値を算出し、
前記第２のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第１のパラメータの最適値に変換する、
処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最適値計算装置、最適値計算システム、最適値計算方法及びプログラムに関する。
【背景技術】
【０００２】
製品開発の際に、製品の性能評価を計算機シミュレーションで代替し、開発期間を短縮させることが行われている。ＬＳＩ（Large Scale Integrated circuit）の設計時には、半導体デバイスをモデル化する複数のパラメータを用いて、半導体デバイスの特性（電流−電圧特性など）が計算される。このとき、半導体デバイスの特性をシミュレーションで精度よく再現するために、特性の実測値に対する計算値の誤差ができるだけ小さくなるように、パラメータを最適化することが行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２５０９８１号公報
【特許文献２】特開２０１０−６７８３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、半導体デバイスをモデル化するパラメータの中には、稜構造をもつパラメータが含まれる。稜構造をもつパラメータは、パラメータの値の変化に対して、特性の実測値に対する計算値の誤差が極端に大きく変化するものである。そのようなパラメータとして、たとえば、実効チャネル幅のゲート依存係数（ＤWB）、実効チャネル幅の基板バイアス依存係数（ＤWG）などがある。このようなパラメータを最適化する際、パラメータの値を少し変化させただけでも、特性の実測値に対するシミュレーションで得られる計算値の誤差の変動が大きくなる場合があり、最適値を求めることは困難であった。
【課題を解決するための手段】
【０００５】
発明の一観点によれば、半導体デバイスをモデル化する第１のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出するシミュレーション部と、前記特性の実測値を記憶した記憶部を参照し、前記実測値に対する前記計算値の誤差を算出する誤差計算部と、前記第１のパラメータをシグモイド関数で第２のパラメータに変換するパラメータ変換部と、前記誤差を最小とする前記第２のパラメータの最適値を算出する最適値計算部と、を有し、前記パラメータ変換部は、前記第２のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第１のパラメータの最適値に変換する、最適値計算装置が提供される。
【０００６】
また、発明の一観点によれば、１または複数のコンピュータが、半導体デバイスをモデル化する第１のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出し、記憶部に記憶された実測値に対する前記計算値の誤差を算出し、前記第１のパラメータをシグモイド関数で第２のパラメータに変換し、前記誤差を最小とする前記第２のパラメータの最適値を算出し、前記第２のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第１のパラメータの最適値に変換する、最適値計算方法が提供される。
【発明の効果】
【０００７】
開示の最適値計算装置、最適値計算システム、最適値計算方法及びプログラムによれば、半導体デバイスの特性のシミュレーションに用いるパラメータの最適化が容易になる。
【図面の簡単な説明】
【０００８】
【図１】最適値計算装置の一例を示す図である。
【図２】最適値計算方法の一例の流れを示すフローチャートである。
【図３】第２の実施の形態の最適値計算方法を実行するコンピュータの一例を示す図である。
【図４】第１の最適値計算処理の流れを説明するフローチャートである。
【図５】モデルパラメータの値に応じた、ある特性の計算結果と実測値の一例を示す図である。
【図６】誤差の一例を示す図である。
【図７】誤差の算出結果の一例を示す図である。
【図８】最適化処理の一例を示す図である。
【図９】第１の最適値計算処理で生成される最適化データテーブルの一例を示す図である。
【図１０】第２の最適値計算処理の流れを説明するフローチャートである。
【図１１】第２の最適値計算処理で生成される最適化データテーブルの一例を示す図である。
【図１２】モデルパラメータの１つであるＤWGと誤差との関係を示す図である。
【図１３】モデルパラメータの１つであるＥTABと誤差との関係を示す図である。
【図１４】最適値計算システムの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、最適値計算装置の一例を示す図である。
【００１０】
最適値計算装置１０は、入力データ作成部１１、シミュレーション部１２、誤差計算部１３、パラメータ変換部１４、最適値計算部１５、記憶部１６を有している。
入力データ作成部１１は、シミュレーション部１２に入力する入力データを作成する。入力データには入力変数や、半導体デバイス（以下、単にデバイスと呼ぶ）をモデル化する第１パラメータが含まれる。第１パラメータは、デバイスの特性（たとえば、電流−電圧特性）をモデル化する式における係数となるものである。
【００１１】
シミュレーション部１２は、入力データに含まれる第１パラメータと、入力変数を用いてシミュレーションを行い、デバイスの所定の特性の計算値を算出する。シミュレーション部１２は、たとえば、Ｓｐｉｃｅシミュレーションにより、デバイスの電流−電圧特性などを計算する。
【００１２】
Ｓｐｉｃｅシミュレーションで電流−電圧特性を計算する際に使用されるＭＯＳＦＥＴ素子モデルの１つとして、ＢＳＩＭ（Berkeley Short-channel IGFET (Insulated-Gate Field Effect Transistor) Model）（ＢＳＩＭ３，４，６など）がある。ＢＳＩＭが用いられる場合、第１パラメータは、前述したような、ＤWB、ＤWGなどがある。
【００１３】
このような第１パラメータの値は、たとえば、実験計画法を用いて、複数サンプリングされ、入力データに含まれる。第１パラメータの値は、たとえば、プロセスの仕様（デバイス寸法など）をもとに算出され、たとえば、記憶部１６に記憶しておくようにしてもよいし、入力データ作成部１１が、ユーザからの設定を受け付けるようにしてもよい。
【００１４】
また、電流−電圧特性の計算が行われる場合、入力変数は電圧値であり、シミュレーションの結果として電流値が出力変数として算出される。
誤差計算部１３は、デバイスの特性の実測値を記憶した記憶部１６を参照し、実測値に対する、シミュレーション部１２で計算された特性の計算値の誤差を算出する。たとえば、半導体デバイスの電流−電圧特性の計算が行われる場合、誤差計算部１３は、出力変数である電流値の実測値に対する、計算値の誤差を算出する。誤差は、入力変数の各点における誤差であってもよいし、各点における誤差を、たとえば２乗平均した値であってもよい。
【００１５】
パラメータ変換部１４は、第１パラメータを、シグモイド関数で第２パラメータに変換する。図１には、ある第１パラメータと誤差との関係を示すグラフが示されている。縦軸が誤差を示し、横軸が第１パラメータの値を示している。また、図１には、第１パラメータをシグモイド関数で変換して得られた第２パラメータと誤差との関係を示すグラフが示されている。縦軸が誤差を示し、横軸が第２パラメータの値を示している。
【００１６】
図１に示すような稜構造をもつ第１パラメータは、誤差が小さくなる値の範囲が狭く、このままの状態で最適値を求めることは難しい。そのため、パラメータ変換部１４は、第１パラメータをシグモイド関数で変換して第２パラメータを得る。シグモイド関数を用いて算出された第２パラメータは、図１に示すように誤差が小さくなる値の範囲が広く、誤差が最小になる最適値Ｖｏｐ２を求めることが容易である。
【００１７】
第１パラメータの値ｘに対する第２パラメータの値をｆ（ｘ）とすると、ｆ（ｘ）は以下の式（１）により求められる。
ｆ（ｘ）＝１／（１＋ＥＸＰ（−（ｘ−Ａ）／Ｂ））        （１）
式（１）で、Ａ，Ｂは所定の係数である。
【００１８】
稜構造をもつようなパラメータを最適化しやすい形に変換する際に、ｌｏｇ関数などを適用することも考えられるが、デバイスをモデル化する第１パラメータは、値の範囲に０を含むものがあって適用ができない。これに対し、式（１）で表されるシグモイト関数は、０を扱うことができる。また、上限と下限のオーダが大きく異なるようなデバイスをモデル化する第１パラメータ（たとえば、ＤWGは０〜１０-7）に対しても、シグモイド関数を用いることは適している。
【００１９】
また、パラメータ変換部１４は、最適値計算部１５で算出された第２パラメータの最適値（たとえば図１の最適値Ｖｏｐ２）に対してシグモイド関数の逆関数を用いた変換を行うことで、第１パラメータの最適値（たとえば、図１の最適値Ｖｏｐ１）に変換できる。
【００２０】
最適値計算部１５は、実測値に対する誤差を最小とする第２パラメータの最適値を算出する。最適値計算部１５は、たとえば、誤差計算部１３から得られる誤差データと、パラメータ変換部１４で得られる第２パラメータをもとに、誤差が最小となる第２パラメータの最適値を算出する。最適値計算部１５は、所定の最適化アルゴリズムで最適値を算出する。最適化アルゴリズムには、ブレント法、遺伝的アルゴリズム、微分進化アルゴリズム、シミュレーテッドアニーリング、粒子群最適化などがある。
【００２１】
記憶部１６は、たとえば、入力変数の値、入力変数の各値に対する出力変数の実測値、第１パラメータの値などを記憶している。なお、記憶部１６は複数あってもよい。
なお、図１の最適値計算装置１０は、たとえば、１または複数のコンピュータで実現される。その場合、最適値計算装置１０の各部は、プロセッサ、メモリなどを用いて実現される。
【００２２】
次に、最適値計算装置１０を用いた最適値計算方法を説明する。
図２は、最適値計算方法の一例の流れを示すフローチャートである。
まず、入力データ作成部１１は、記憶部１６に記憶されている入力変数や第１パラメータの複数の値が、所定のフォーマットで記述された入力データを作成する（ステップＳ１）。シミュレーション部１２は、作成された入力データをもとに、シミュレーションを実行する（ステップＳ２）。そして、誤差計算部１３は、デバイスの特性の実測値を記憶した記憶部１６を参照し、実測値に対する、シミュレーション部１２で計算された特性の計算値の誤差を算出する（ステップＳ３）。ある第１パラメータの１つの値に対して、実測値に対する計算値の誤差は入力変数の各点に対応して複数得られる。誤差計算部１３は、たとえば、各点の誤差を２乗平均して、第１パラメータの値ごと、誤差の代表値を算出する（詳細は後述する）。
【００２３】
次に、パラメータ変換部１４は、シグモイド関数を用いたパラメータ変換を行う（ステップＳ４）。パラメータ変換部１４は、第１パラメータの値を式（１）に代入して、第２パラメータの値に変換する。
【００２４】
パラメータ変換部１４は、たとえば、サンプリングされた第１パラメータの複数の値のうち、誤差が小さくなるものから優先して所定数の値を第２パラメータの値に変換する。どれだけの値を変換するかは、たとえば、記憶部１６に予め設定されていてもよいし、パラメータ変換部１４がユーザからの入力を受け付けてもよい。パラメータ変換する第１パラメータの値を限定することで、計算時間を短縮できる。
【００２５】
最適値計算部１５は、実測値に対する計算値の誤差を最小とする第２パラメータの最適値を算出する（ステップＳ５）。最適値計算部１５は、たとえば、第１パラメータの複数の値に対応した誤差データと、その第１パラメータの各値が変換されることで得られた複数の第２パラメータの値をもとに、第２パラメータと誤差との関係式（たとえば、２次関数）を求める。そして、最適値計算部１５は、誤差が最小となる第２パラメータの最適値Ｖｏｐ２を算出する。
【００２６】
その後、パラメータ変換部１４は、最適値計算部１５で算出された第２パラメータの最適値Ｖｏｐ２に対して、シグモイド関数の逆関数を用いた変換を行う。これにより、第２パラメータの最適値Ｖｏｐ２を第１パラメータの最適値Ｖｏｐ１に変換することができる（ステップＳ６）。
【００２７】
以上のように、稜構造をもつような第１パラメータを、シグモイド関数を用いて最適化が容易な第２パラメータに変換して最適化を行い、その後、得られた最適値を第１パラメータの最適値に変換することで、パラメータの最適化が容易になる。その結果、パラメータの最適値を精度よく求めることができるようになる。
【００２８】
なお、最適値計算装置１０は、最適値Ｖｏｐ１とその周辺値を第１パラメータの値として用い、再度シミュレーションや誤差の算出、所定数の第１パラメータの値を第２パラメータの値に変換して最適化し第１パラメータの値に戻す処理、を繰り返してもよい。
【００２９】
これにより、より精度よく第１パラメータの最適化が可能になる。
また、図２の各処理は、適宜入れ替えることができる。たとえば、ステップＳ５の処理であるシグモイド関数を用いたパラメータ変換を、ステップＳ４の処理である誤差算出処理より前に行ってもよい。たとえば、サンプリングした第１パラメータの値を全て第２パラメータの値に変換し、その後、第１パラメータを用いたシミュレーションの計算結果から実測値に対する誤差を算出するようにしてもよい。また、シミュレーション（ステップＳ２）自体も、パラメータ変換後に、第１パラメータを用いて行うようにしてもよい。
【００３０】
（第２の実施の形態）
図３は、第２の実施の形態の最適値計算方法を実行するコンピュータの一例を示す図である。
【００３１】
コンピュータ２０は、プロセッサ２１によって装置全体が制御されている。プロセッサ２１には、バス２９を介してＲＡＭ（Random Access Memory）２２と複数の周辺機器が接続されている。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３２】
ＲＡＭ２２は、コンピュータ２０の主記憶装置として使用される。ＲＡＭ２２には、プロセッサ２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００３３】
バス２９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２３、グラフィック処理装置２４、入力インタフェース２５、光学ドライブ装置２６、機器接続インタフェース２７及びネットワークインタフェース２８がある。
【００３４】
ＨＤＤ２３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２３は、コンピュータ２０の補助記憶装置として使用される。ＨＤＤ２３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３５】
グラフィック処理装置２４には、モニタ２４ａが接続されている。グラフィック処理装置２４は、プロセッサ２１からの命令に従って、画像をモニタ２４ａの画面に表示させる。モニタ２４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３６】
入力インタフェース２５には、キーボード２５ａとマウス２５ｂとが接続されている。入力インタフェース２５は、キーボード２５ａやマウス２５ｂから送られてくる信号をプロセッサ２１に送信する。なお、マウス２５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３７】
光学ドライブ装置２６は、レーザ光などを利用して、光ディスク２６ａに記録されたデータの読み取りを行う。光ディスク２６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３８】
機器接続インタフェース２７は、コンピュータ２０に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース２７には、メモリ装置２７ａやメモリリーダライタ２７ｂを接続することができる。メモリ装置２７ａは、機器接続インタフェース２７との通信機能を搭載した記録媒体である。メモリリーダライタ２７ｂは、メモリカード２７ｃへのデータの書き込み、またはメモリカード２７ｃからのデータの読み出しを行う装置である。メモリカード２７ｃは、カード型の記録媒体である。
【００３９】
ネットワークインタフェース２８は、ネットワーク２８ａに接続されている。ネットワークインタフェース２８は、ネットワーク２８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４０】
以上のようなハードウェア構成によって、以下に示す最適値計算方法を実現することができる。なお、以上のようなハードウェア構成を有する複数のコンピュータによって以下に示す最適値計算方法を実行するようにしてもよい。また、第１の実施の形態に示した最適値計算装置１０も、図３に示したコンピュータ２０と同様のハードウェアにより実現することができる。
【００４１】
コンピュータ２０は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、前述した第１の実施形態の最適値計算装置１０の処理機能や、以下に示す最適値計算方法を実現する。コンピュータ２０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ２０に実行させるプログラムをＨＤＤ２３に格納しておくことができる。プロセッサ２１は、ＨＤＤ２３内のプログラムの少なくとも一部をＲＡＭ２２にロードし、プログラムを実行する。またコンピュータ２０に実行させるプログラムを、光ディスク２６ａ、メモリ装置２７ａ、メモリカード２７ｃなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ２１からの制御により、ＨＤＤ２３にインストールされた後、実行可能となる。またプロセッサ２１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４２】
以下、図３に示したようなコンピュータ２０によって実行される最適値計算方法の例を説明する。
なお、ＨＤＤ２３には、ｘ１，ｘ２，ｘ３，…といった複数種類のデバイス寸法について、代表的な値の組み合わせ（たとえば、（０．１，０．２，０．３，…）というような代表値セットなど）が複数予め格納されているものとする。なお、デバイス寸法については、具体的に、ゲート長（Ｌ）及びゲート幅（Ｗ）が採用される場合もある。また、ＨＤＤ２３には、デバイス寸法の代表値セットごとに、たとえば、所定の端子電圧ごとの特性値（電流値など）が予め格納されているものとする。これらの値は、ＨＤＤ２３からＲＡＭ２２に読み出されてプロセッサ２１により処理される。
【００４３】
以下、例として３種類の最適値計算処理を説明する。
図４は、第１の最適値計算処理の流れを説明するフローチャートである。
プロセッサ２１は、ＨＤＤ２３からデバイス寸法の代表値セットと、デバイス寸法の代表値セットに対応する特性（たとえば、電流−電圧特性）の実測値を取得する（ステップＳ５０）。
【００４４】
次に、プロセッサ２１は、デバイスの特性をモデル化する所定のモデル式のモデルパラメータ（第１の実施の形態の第１パラメータ）を設定する（ステップＳ５１）。プロセッサ２１は、たとえば、ＨＤＤ２３に予め格納された複数種類のモデルパラメータ（たとえば、モデルパラメータＡ，Ｂ，Ｃ，…）の複数の値を取得して、設定を行う。
【００４５】
その後、プロセッサ２１は、たとえば、ユーザからの入力を受け付け、繰り返し計算回数の設定を行う（ステップＳ５２）。
そして、プロセッサ２１は、設定したモデルパラメータを用いてシミュレーションを実行し、実測値に対する計算値の誤差を算出する（ステップＳ５３）。
【００４６】
図５は、モデルパラメータの値に応じた、ある特性の計算結果と実測値の一例を示す図である。縦軸が出力変数（たとえば、電流値）の値を示し、横軸が入力変数（たとえば、電圧値）の値を示している。
【００４７】
計算結果Ｄ１，Ｄ２は、あるモデルパラメータ（以下ではモデルパラメータＡとする）の２つの値での、入力変数−出力変数の計算結果を示している。たとえば、計算結果Ｄ１は、モデルパラメータＡが値Ｖ１の場合の計算結果、計算結果Ｄ２は、モデルパラメータＡが値Ｖ２の場合の計算結果である。プロセッサ２１は、モデルパラメータＡの各値における計算結果Ｄ１，Ｄ２ごとに、実測値Ｄａの各点との誤差を算出する。
【００４８】
図６は、誤差の一例を示す図である。縦軸が出力変数の値を示し、横軸が入力変数の値を示している。
計算結果Ｄ３は、モデルパラメータＡが、ある値のときの、入力変数−出力変数の計算結果を示している。たとえば、プロセッサ２１は、図６に示されているように、計算結果Ｄ３と、実測値Ｄｂの各点における誤差ｓｕｂ１，ｓｕｂ２，ｓｕｂ３，ｓｕｂ４，ｓｕｂ５を算出する。
【００４９】
図７は、誤差の算出結果の一例を示す図である。モデルパラメータＡの値がｘのときの、入力変数の各点における出力変数の実測値に対する計算値の誤差の算出結果が示されている。さらに、プロセッサ２１は、入力変数の各点での上記誤差をもとに、モデルパラメータＡの値がｘのときにおける誤差の代表値を算出する。
【００５０】
誤差の代表値を、入力変数の各点での誤差の２乗平均で求める場合、入力変数の数をｎとすると、図７の例の場合、代表値ＳＵＢ＝（（１０2＋２０2＋２０2＋…）／ｎ）1/2となる。入力変数の各点での誤差や誤差の代表値の算出結果は、ＨＤＤ２３に記憶されるようにしてもよい。
【００５１】
その後、プロセッサ２１は、シグモイド関数を用いたパラメータ変換を行う（ステップＳ５４）。パラメータ変換は、たとえば、モデルパラメータの値を、式（１）に代入することで行われる。代入するモデルパラメータの値は、ステップＳ５３の処理で、たとえば、誤差の代表値が小さくなる値を優先して、所定数（たとえば、３点）選択される。パラメータ変換するモデルパラメータの値を限定することで、計算時間を短縮できる。
【００５２】
その後、プロセッサ２１は、所定の最適化アルゴリズムで最適化処理を行う（ステップＳ５５）。最適化処理は、シグモイド関数適用後のモデルパラメータ（第１の実施の形態の第２パラメータ）で行われる。また、ステップＳ５３の処理で計算された誤差（代表値）のデータが用いられる。最適化アルゴリズムには、ブレント法、遺伝的アルゴリズム、微分進化アルゴリズム、シミュレーテッドアニーリング、粒子群最適化などがある。
【００５３】
図８は、最適化処理の一例を示す図である。縦軸は誤差であり、横軸はシグモイド関数適用後のモデルパラメータである。
図８では、シグモイド関数適用後の特定の３点のモデルパラメータの値ｐ１，ｐ２，ｐ３が示されている。プロセッサ２１は、たとえば、この３点から２次関数ｆ１を算出し、その２次関数ｆ１において、誤差が最小となる値を最適値Ｖｏｐとして算出する。パラメータ変換するモデルパラメータの値を限定し、変換したモデルパラメータで最適化を行うことで、計算時間を短縮できる。
【００５４】
このような最適化処理後、プロセッサ２１は、最適化処理により得られた最適値Ｖｏｐを、シグモイド関数の逆関数を用いて、元のモデルパラメータの最適値ｘｏｐに変換する（ステップＳ５６）。元のモデルパラメータの最適値ｘｏｐは、以下の式（２）から求まる。
【００５５】
Ｖｏｐ＝１／（１＋ＥＸＰ（−（ｘｏｐ−Ａ）／Ｂ））
ｘｏｐ＝Ａ＋Ｂ×ＬＮ（Ｖｏｐ／（１−Ｖｏｐ））      （２）
その後、プロセッサ２１は、ステップＳ５２で設定された繰り返し計算回数だけ、ステップＳ５３〜Ｓ５６の処理が終了したか否かを判定する（ステップＳ５７）。ステップＳ５３〜Ｓ５６の処理が、繰り返し計算回数終了していない場合には、プロセッサ２１は、ステップＳ５３からの処理を繰り返す。ステップＳ５３〜Ｓ５６の処理が、繰り返し計算回数分終了した場合には、プロセッサ２１は、たとえば、ＨＤＤ２３に最適化データテーブルを生成して、最適化データの登録を行い（ステップＳ５８）、第１の最適値計算処理を終える。
【００５６】
図９は、第１の最適値計算処理で生成される最適化データテーブルの一例を示す図である。
最適化データテーブルには、シグモイド関数を用いて計算されたモデルパラメータＡ，Ｂ，…の値のセットと、当該モデルパラメータの値のセットを用いて計算された各デバイス寸法の代表値のセットについての各点誤差、及び誤差の代表値が登録されている。各点誤差は、前述のように入力変数の各点における実測値に対する計算値の誤差である。誤差の代表値は、たとえば、複数のデバイス寸法の代表値のセットについての各点誤差を、たとえば２乗平均した値である。各デバイス寸法の代表値のセットごとに、誤差の代表値を求めるようにしてもよい。
【００５７】
次に、第２の最適値計算処理について説明する。
図１０は、第２の最適値計算処理の流れを説明するフローチャートである。
プロセッサ２１は、たとえば、所定のモデル式のモデルパラメータのうち、デバイス寸法に依存性がないモデルパラメータの指定を、ユーザから受け付ける（ステップＳ６０）。
【００５８】
第２の最適値計算処理においては、デバイス寸法に依存性がないモデルパラメータについては、デバイス寸法の全ての点（デバイス寸法の値のセット）について共通の値を有するモデルパラメータとして扱われる。一方、デバイス寸法に依存性のあるモデルパラメータについては、デバイス寸法の各点（デバイス寸法の値のセット）について独立の値を有するモデルパラメータであるとして取り扱われる。
【００５９】
なお、ステップＳ６０の処理では、プロセッサ２１は、デバイス寸法に依存性がないモデルパラメータの代わりに、デバイス寸法に依存性があるモデルパラメータの指定を、ユーザから受け付けるようにしてもよい。
【００６０】
次に、プロセッサ２１は、ＨＤＤ２３からデバイス寸法の代表値セットと、デバイス寸法の代表値セットに対応する特性（たとえば、電流）の実測値を取得する（ステップＳ６１）。
【００６１】
そして、プロセッサ２１は、デバイスの特性をモデル化する所定のモデル式のモデルパラメータ（第１の実施の形態の第１パラメータ）を設定する（ステップＳ６２）。第２の最適化データ生成処理においては、デバイス寸法の全ての点について共通の値を有するモデルパラメータと、デバイス寸法の各点について独立の値を有するモデルパラメータが設定される。
【００６２】
ステップＳ６３，Ｓ６４，Ｓ６５，Ｓ６６，Ｓ６７，Ｓ６８の処理は、図４に示した第１の最適値計算処理のステップＳ５２〜Ｓ５７の処理と同様であるので説明を省略する。
ステップＳ６９の処理では、プロセッサ２１は、たとえば、ＨＤＤ２３に、以下に示すような最適化データテーブルを生成して、最適化データの登録を行い、第２の最適値計算処理を終える。
【００６３】
図１１は、第２の最適値計算処理で生成される最適化データテーブルの一例を示す図である。
最適化データテーブルには、デバイス寸法の全ての代表値について共通の値が適用されるモデルパラメータＡの、シグモイド関数を用いて計算された値が登録されている。また、デバイス寸法の各代表値セットについて独立の値が適用されるモデルパラメータＢの、シグモイド関数を用いて計算された値が登録されている。さらに、これらのモデルパラメータの値のセットと、当該モデルパラメータの値のセットを用いて計算された各デバイス寸法の代表値のセットについての各点誤差、及び誤差の代表値が登録されている。
【００６４】
次に、第３の最適値計算処理について説明する。
第３の最適値計算処理の流れとしては、図４に示した第１の最適値計算処理とほぼ同様である。ただし、ステップＳ５５の最適化処理の際に、誤差の代表値を最小にするのではなく、モデルパラメータの値のセットごとに、各点誤差を最小にするように最適化処理が行われる。
【００６５】
生成される最適化データテーブルのフォーマットは、図９に示したようなものと同様である。
以上のように第１乃至第３の最適値計算処理の際に、モデルパラメータを、シグモイド関数を用いて変換して最適化を行うことで、モデルパラメータが稜構造をもつような場合に、最適化が容易になる。また、算出された最適値を用いて、複数回最適化処理を繰り返し、最適値を更新していくことで、より精度よくモデルパラメータの最適化が可能になる。
【００６６】
なお、上記では所定の繰り返し計算回数だけ、最適化処理を繰り返すものとしたがこれに限定されず、所定時間の間、最適化処理を繰り返すようにしてもよいし、誤差が所定範囲以下になったら最適化処理の繰り返しを停止するようにしてもよい。
【００６７】
稜構造をもつようなモデルパラメータの例を以下に示す。
図１２は、モデルパラメータの１つであるＤWGと誤差との関係を示す図である。縦軸は誤差を示し、横軸はＤWGの値を示している。
【００６８】
ＤWGはとり得る値の範囲が０〜１０-7と広く、計算値の実測値に対する誤差が小さくなる範囲が狭い。図１２の例では、ＤWGが０付近で、誤差が最小になっている。ＤWBについても同様の特性をもつ。
【００６９】
図１３は、モデルパラメータの１つであるＥTABと誤差との関係を示す図である。縦軸は誤差を示し、横軸はＥTABの値を示している。
ＥTABは、弱反転領域におけるＤＩＢＬ（Drain-Induced-BarrierLowering）効果基板バイアス係数である。ＥTABは、はとり得る値の範囲が−１０-3〜０と広く、計算値の実測値に対する誤差が小さくなる範囲が狭い。図１３の例では、ＥTABが０付近で、誤差が最小になっている。ＤＩＢＬパラメータの基板効果係数（ＰＤＩＢＬＣＢ）についても同様の特性をもつ。
【００７０】
なお、プロセッサ２１は、図９や図１１に示したような最適化データテーブルを生成したのち、モデルパラメータを様々な側面で検討できるように、特許文献２に記載されているような、各種のデータ変換や、データ処理を行うようにしてもよい。たとえば、プロセッサ２１が、モデルパラメータの近似式（たとえば、モデルパラメータ＝α×ｘ１＋β×ｘ２＋…＋γ（ｘ１，ｘ２はデバイス寸法））の係数α，β，…，γを計算するようにしてもよい。この際、より最適な係数を容易に算出できるように、プロセッサ２１は、シグモイド関数を用いて係数を変換して、変換した係数を用いて最適化処理を行うようにしてもよい。
【００７１】
ところで、上記の処理内容は、複数の計算装置（コンピュータ）により実行されるようにしてもよい。
図１４は、最適値計算システムの一例を示す図である。
【００７２】
最適値計算システム５０は、計算装置５１，５２を有する。
第１の計算装置５１は、入力データ作成部６１、シミュレーション部６２、誤差計算部６３、パラメータ変換部６４、記憶部６６を有する。
【００７３】
また、計算装置５２は、最適値計算部６５を有する。
上記の各部は、図１に示した入力データ作成部１１、シミュレーション部１２、誤差計算部１３、パラメータ変換部１４、最適値計算部１５、記憶部１６と同じ動作を行う。しかし、図１４に示すように、複数の計算装置５１，５２を用いて最適値の計算を行うことで、１つの計算装置にかかる処理負荷を軽減できる。
【００７４】
計算装置５１，５２は、図３に示したようなハードウェア構成のコンピュータで実現できる。
なお、図１４に示した最適値計算システム５０は、一例であり、計算装置５１の代わりに、計算装置５２が、入力データ作成部６１、シミュレーション部６２、誤差計算部６３、パラメータ変換部６４、記憶部６６の少なくとも１つを有するようにしてもよい。
【００７５】
また、図１４の例では、２つの計算装置５１，５２を用いた場合について示されているが、３つ以上の計算装置を用いてもよい。
以上、実施の形態に基づき、本発明の最適値計算装置、最適値計算システム、最適値計算方法及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【００７６】
１０  最適値計算装置
１１  入力データ作成部
１２  シミュレーション部
１３  誤差計算部
１４  パラメータ変換部
１５  最適値計算部
１６  記憶部
【図１】
2014063797.tif 000003
【図２】
2014063797.tif 000004
【図３】
2014063797.tif 000005
【図４】
2014063797.tif 000006
【図５】
2014063797.tif 000007
【図６】
2014063797.tif 000008
【図７】
2014063797.tif 000009
【図８】
2014063797.tif 000010
【図９】
2014063797.tif 000011
【図１０】
2014063797.tif 000012
【図１１】
2014063797.tif 000013
【図１２】
2014063797.tif 000014
【図１３】
2014063797.tif 000015
【図１４】
2014063797.tif 000016