JP5994515B2 - 最適値計算装置、最適値計算システム、最適値計算方法及びプログラム - Google Patents
最適値計算装置、最適値計算システム、最適値計算方法及びプログラム Download PDFInfo
- Publication number
- JP5994515B2 JP5994515B2 JP2012206708A JP2012206708A JP5994515B2 JP 5994515 B2 JP5994515 B2 JP 5994515B2 JP 2012206708 A JP2012206708 A JP 2012206708A JP 2012206708 A JP2012206708 A JP 2012206708A JP 5994515 B2 JP5994515 B2 JP 5994515B2
- Authority
- JP
- Japan
- Prior art keywords
- parameter
- value
- error
- optimal value
- value calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000004364 calculation method Methods 0.000 title claims description 124
- 238000004088 simulation Methods 0.000 claims description 34
- 238000006243 chemical reaction Methods 0.000 claims description 28
- 239000004065 semiconductor Substances 0.000 claims description 20
- 238000005259 measurement Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 16
- 238000000034 method Methods 0.000 description 46
- 230000006870 function Effects 0.000 description 33
- 238000005457 optimization Methods 0.000 description 28
- 238000010586 diagram Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012887 quadratic function Methods 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000002922 simulated annealing Methods 0.000 description 2
- 235000013599 spices Nutrition 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000013401 experimental design Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 101150018444 sub2 gene Proteins 0.000 description 1
Images
Description
本発明は、最適値計算装置、最適値計算システム、最適値計算方法及びプログラムに関する。
製品開発の際に、製品の性能評価を計算機シミュレーションで代替し、開発期間を短縮させることが行われている。LSI(Large Scale Integrated circuit)の設計時には、半導体デバイスをモデル化する複数のパラメータを用いて、半導体デバイスの特性(電流−電圧特性など)が計算される。このとき、半導体デバイスの特性をシミュレーションで精度よく再現するために、特性の実測値に対する計算値の誤差ができるだけ小さくなるように、パラメータを最適化することが行われる。
しかしながら、半導体デバイスをモデル化するパラメータの中には、稜構造をもつパラメータが含まれる。稜構造をもつパラメータは、パラメータの値の変化に対して、特性の実測値に対する計算値の誤差が極端に大きく変化するものである。そのようなパラメータとして、たとえば、実効チャネル幅のゲート依存係数(DWB)、実効チャネル幅の基板バイアス依存係数(DWG)などがある。このようなパラメータを最適化する際、パラメータの値を少し変化させただけでも、特性の実測値に対するシミュレーションで得られる計算値の誤差の変動が大きくなる場合があり、最適値を求めることは困難であった。
発明の一観点によれば、半導体デバイスをモデル化する第1のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出するシミュレーション部と、前記特性の実測値を記憶した記憶部を参照し、前記実測値に対する前記計算値の誤差を算出する誤差計算部と、前記第1のパラメータをシグモイド関数で第2のパラメータに変換するパラメータ変換部と、前記誤差を最小とする前記第2のパラメータの最適値を算出する最適値計算部と、を有し、前記パラメータ変換部は、前記第2のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第1のパラメータの最適値に変換する、最適値計算装置が提供される。
また、発明の一観点によれば、1または複数のコンピュータが、半導体デバイスをモデル化する第1のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出し、記憶部に記憶された実測値に対する前記計算値の誤差を算出し、前記第1のパラメータをシグモイド関数で第2のパラメータに変換し、前記誤差を最小とする前記第2のパラメータの最適値を算出し、前記第2のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第1のパラメータの最適値に変換する、最適値計算方法が提供される。
開示の最適値計算装置、最適値計算システム、最適値計算方法及びプログラムによれば、半導体デバイスの特性のシミュレーションに用いるパラメータの最適化が容易になる。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、最適値計算装置の一例を示す図である。
(第1の実施の形態)
図1は、最適値計算装置の一例を示す図である。
最適値計算装置10は、入力データ作成部11、シミュレーション部12、誤差計算部13、パラメータ変換部14、最適値計算部15、記憶部16を有している。
入力データ作成部11は、シミュレーション部12に入力する入力データを作成する。入力データには入力変数や、半導体デバイス(以下、単にデバイスと呼ぶ)をモデル化する第1パラメータが含まれる。第1パラメータは、デバイスの特性(たとえば、電流−電圧特性)をモデル化する式における係数となるものである。
入力データ作成部11は、シミュレーション部12に入力する入力データを作成する。入力データには入力変数や、半導体デバイス(以下、単にデバイスと呼ぶ)をモデル化する第1パラメータが含まれる。第1パラメータは、デバイスの特性(たとえば、電流−電圧特性)をモデル化する式における係数となるものである。
シミュレーション部12は、入力データに含まれる第1パラメータと、入力変数を用いてシミュレーションを行い、デバイスの所定の特性の計算値を算出する。シミュレーション部12は、たとえば、Spiceシミュレーションにより、デバイスの電流−電圧特性などを計算する。
Spiceシミュレーションで電流−電圧特性を計算する際に使用されるMOSFET素子モデルの1つとして、BSIM(Berkeley Short-channel IGFET (Insulated-Gate Field Effect Transistor) Model)(BSIM3,4,6など)がある。BSIMが用いられる場合、第1パラメータは、前述したような、DWB、DWGなどがある。
このような第1パラメータの値は、たとえば、実験計画法を用いて、複数サンプリングされ、入力データに含まれる。第1パラメータの値は、たとえば、プロセスの仕様(デバイス寸法など)をもとに算出され、たとえば、記憶部16に記憶しておくようにしてもよいし、入力データ作成部11が、ユーザからの設定を受け付けるようにしてもよい。
また、電流−電圧特性の計算が行われる場合、入力変数は電圧値であり、シミュレーションの結果として電流値が出力変数として算出される。
誤差計算部13は、デバイスの特性の実測値を記憶した記憶部16を参照し、実測値に対する、シミュレーション部12で計算された特性の計算値の誤差を算出する。たとえば、半導体デバイスの電流−電圧特性の計算が行われる場合、誤差計算部13は、出力変数である電流値の実測値に対する、計算値の誤差を算出する。誤差は、入力変数の各点における誤差であってもよいし、各点における誤差を、たとえば2乗平均した値であってもよい。
誤差計算部13は、デバイスの特性の実測値を記憶した記憶部16を参照し、実測値に対する、シミュレーション部12で計算された特性の計算値の誤差を算出する。たとえば、半導体デバイスの電流−電圧特性の計算が行われる場合、誤差計算部13は、出力変数である電流値の実測値に対する、計算値の誤差を算出する。誤差は、入力変数の各点における誤差であってもよいし、各点における誤差を、たとえば2乗平均した値であってもよい。
パラメータ変換部14は、第1パラメータを、シグモイド関数で第2パラメータに変換する。図1には、ある第1パラメータと誤差との関係を示すグラフが示されている。縦軸が誤差を示し、横軸が第1パラメータの値を示している。また、図1には、第1パラメータをシグモイド関数で変換して得られた第2パラメータと誤差との関係を示すグラフが示されている。縦軸が誤差を示し、横軸が第2パラメータの値を示している。
図1に示すような稜構造をもつ第1パラメータは、誤差が小さくなる値の範囲が狭く、このままの状態で最適値を求めることは難しい。そのため、パラメータ変換部14は、第1パラメータをシグモイド関数で変換して第2パラメータを得る。シグモイド関数を用いて算出された第2パラメータは、図1に示すように誤差が小さくなる値の範囲が広く、誤差が最小になる最適値Vop2を求めることが容易である。
第1パラメータの値xに対する第2パラメータの値をf(x)とすると、f(x)は以下の式(1)により求められる。
f(x)=1/(1+EXP(−(x−A)/B)) (1)
式(1)で、A,Bは所定の係数である。
f(x)=1/(1+EXP(−(x−A)/B)) (1)
式(1)で、A,Bは所定の係数である。
稜構造をもつようなパラメータを最適化しやすい形に変換する際に、log関数などを適用することも考えられるが、デバイスをモデル化する第1パラメータは、値の範囲に0を含むものがあって適用ができない。これに対し、式(1)で表されるシグモイト関数は、0を扱うことができる。また、上限と下限のオーダが大きく異なるようなデバイスをモデル化する第1パラメータ(たとえば、DWGは0〜10-7)に対しても、シグモイド関数を用いることは適している。
また、パラメータ変換部14は、最適値計算部15で算出された第2パラメータの最適値(たとえば図1の最適値Vop2)に対してシグモイド関数の逆関数を用いた変換を行うことで、第1パラメータの最適値(たとえば、図1の最適値Vop1)に変換できる。
最適値計算部15は、実測値に対する誤差を最小とする第2パラメータの最適値を算出する。最適値計算部15は、たとえば、誤差計算部13から得られる誤差データと、パラメータ変換部14で得られる第2パラメータをもとに、誤差が最小となる第2パラメータの最適値を算出する。最適値計算部15は、所定の最適化アルゴリズムで最適値を算出する。最適化アルゴリズムには、ブレント法、遺伝的アルゴリズム、微分進化アルゴリズム、シミュレーテッドアニーリング、粒子群最適化などがある。
記憶部16は、たとえば、入力変数の値、入力変数の各値に対する出力変数の実測値、第1パラメータの値などを記憶している。なお、記憶部16は複数あってもよい。
なお、図1の最適値計算装置10は、たとえば、1または複数のコンピュータで実現される。その場合、最適値計算装置10の各部は、プロセッサ、メモリなどを用いて実現される。
なお、図1の最適値計算装置10は、たとえば、1または複数のコンピュータで実現される。その場合、最適値計算装置10の各部は、プロセッサ、メモリなどを用いて実現される。
次に、最適値計算装置10を用いた最適値計算方法を説明する。
図2は、最適値計算方法の一例の流れを示すフローチャートである。
まず、入力データ作成部11は、記憶部16に記憶されている入力変数や第1パラメータの複数の値が、所定のフォーマットで記述された入力データを作成する(ステップS1)。シミュレーション部12は、作成された入力データをもとに、シミュレーションを実行する(ステップS2)。そして、誤差計算部13は、デバイスの特性の実測値を記憶した記憶部16を参照し、実測値に対する、シミュレーション部12で計算された特性の計算値の誤差を算出する(ステップS3)。ある第1パラメータの1つの値に対して、実測値に対する計算値の誤差は入力変数の各点に対応して複数得られる。誤差計算部13は、たとえば、各点の誤差を2乗平均して、第1パラメータの値ごと、誤差の代表値を算出する(詳細は後述する)。
図2は、最適値計算方法の一例の流れを示すフローチャートである。
まず、入力データ作成部11は、記憶部16に記憶されている入力変数や第1パラメータの複数の値が、所定のフォーマットで記述された入力データを作成する(ステップS1)。シミュレーション部12は、作成された入力データをもとに、シミュレーションを実行する(ステップS2)。そして、誤差計算部13は、デバイスの特性の実測値を記憶した記憶部16を参照し、実測値に対する、シミュレーション部12で計算された特性の計算値の誤差を算出する(ステップS3)。ある第1パラメータの1つの値に対して、実測値に対する計算値の誤差は入力変数の各点に対応して複数得られる。誤差計算部13は、たとえば、各点の誤差を2乗平均して、第1パラメータの値ごと、誤差の代表値を算出する(詳細は後述する)。
次に、パラメータ変換部14は、シグモイド関数を用いたパラメータ変換を行う(ステップS4)。パラメータ変換部14は、第1パラメータの値を式(1)に代入して、第2パラメータの値に変換する。
パラメータ変換部14は、たとえば、サンプリングされた第1パラメータの複数の値のうち、誤差が小さくなるものから優先して所定数の値を第2パラメータの値に変換する。どれだけの値を変換するかは、たとえば、記憶部16に予め設定されていてもよいし、パラメータ変換部14がユーザからの入力を受け付けてもよい。パラメータ変換する第1パラメータの値を限定することで、計算時間を短縮できる。
最適値計算部15は、実測値に対する計算値の誤差を最小とする第2パラメータの最適値を算出する(ステップS5)。最適値計算部15は、たとえば、第1パラメータの複数の値に対応した誤差データと、その第1パラメータの各値が変換されることで得られた複数の第2パラメータの値をもとに、第2パラメータと誤差との関係式(たとえば、2次関数)を求める。そして、最適値計算部15は、誤差が最小となる第2パラメータの最適値Vop2を算出する。
その後、パラメータ変換部14は、最適値計算部15で算出された第2パラメータの最適値Vop2に対して、シグモイド関数の逆関数を用いた変換を行う。これにより、第2パラメータの最適値Vop2を第1パラメータの最適値Vop1に変換することができる(ステップS6)。
以上のように、稜構造をもつような第1パラメータを、シグモイド関数を用いて最適化が容易な第2パラメータに変換して最適化を行い、その後、得られた最適値を第1パラメータの最適値に変換することで、パラメータの最適化が容易になる。その結果、パラメータの最適値を精度よく求めることができるようになる。
なお、最適値計算装置10は、最適値Vop1とその周辺値を第1パラメータの値として用い、再度シミュレーションや誤差の算出、所定数の第1パラメータの値を第2パラメータの値に変換して最適化し第1パラメータの値に戻す処理、を繰り返してもよい。
これにより、より精度よく第1パラメータの最適化が可能になる。
また、図2の各処理は、適宜入れ替えることができる。たとえば、ステップS5の処理であるシグモイド関数を用いたパラメータ変換を、ステップS4の処理である誤差算出処理より前に行ってもよい。たとえば、サンプリングした第1パラメータの値を全て第2パラメータの値に変換し、その後、第1パラメータを用いたシミュレーションの計算結果から実測値に対する誤差を算出するようにしてもよい。また、シミュレーション(ステップS2)自体も、パラメータ変換後に、第1パラメータを用いて行うようにしてもよい。
また、図2の各処理は、適宜入れ替えることができる。たとえば、ステップS5の処理であるシグモイド関数を用いたパラメータ変換を、ステップS4の処理である誤差算出処理より前に行ってもよい。たとえば、サンプリングした第1パラメータの値を全て第2パラメータの値に変換し、その後、第1パラメータを用いたシミュレーションの計算結果から実測値に対する誤差を算出するようにしてもよい。また、シミュレーション(ステップS2)自体も、パラメータ変換後に、第1パラメータを用いて行うようにしてもよい。
(第2の実施の形態)
図3は、第2の実施の形態の最適値計算方法を実行するコンピュータの一例を示す図である。
図3は、第2の実施の形態の最適値計算方法を実行するコンピュータの一例を示す図である。
コンピュータ20は、プロセッサ21によって装置全体が制御されている。プロセッサ21には、バス29を介してRAM(Random Access Memory)22と複数の周辺機器が接続されている。プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ21は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM22は、コンピュータ20の主記憶装置として使用される。RAM22には、プロセッサ21に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM22には、プロセッサ101による処理に必要な各種データが格納される。
バス29に接続されている周辺機器としては、HDD(Hard Disk Drive)23、グラフィック処理装置24、入力インタフェース25、光学ドライブ装置26、機器接続インタフェース27及びネットワークインタフェース28がある。
HDD23は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD23は、コンピュータ20の補助記憶装置として使用される。HDD23には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置24には、モニタ24aが接続されている。グラフィック処理装置24は、プロセッサ21からの命令に従って、画像をモニタ24aの画面に表示させる。モニタ24aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース25には、キーボード25aとマウス25bとが接続されている。入力インタフェース25は、キーボード25aやマウス25bから送られてくる信号をプロセッサ21に送信する。なお、マウス25bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置26は、レーザ光などを利用して、光ディスク26aに記録されたデータの読み取りを行う。光ディスク26aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク26aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース27は、コンピュータ20に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース27には、メモリ装置27aやメモリリーダライタ27bを接続することができる。メモリ装置27aは、機器接続インタフェース27との通信機能を搭載した記録媒体である。メモリリーダライタ27bは、メモリカード27cへのデータの書き込み、またはメモリカード27cからのデータの読み出しを行う装置である。メモリカード27cは、カード型の記録媒体である。
ネットワークインタフェース28は、ネットワーク28aに接続されている。ネットワークインタフェース28は、ネットワーク28aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、以下に示す最適値計算方法を実現することができる。なお、以上のようなハードウェア構成を有する複数のコンピュータによって以下に示す最適値計算方法を実行するようにしてもよい。また、第1の実施の形態に示した最適値計算装置10も、図3に示したコンピュータ20と同様のハードウェアにより実現することができる。
コンピュータ20は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、前述した第1の実施形態の最適値計算装置10の処理機能や、以下に示す最適値計算方法を実現する。コンピュータ20に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ20に実行させるプログラムをHDD23に格納しておくことができる。プロセッサ21は、HDD23内のプログラムの少なくとも一部をRAM22にロードし、プログラムを実行する。またコンピュータ20に実行させるプログラムを、光ディスク26a、メモリ装置27a、メモリカード27cなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ21からの制御により、HDD23にインストールされた後、実行可能となる。またプロセッサ21が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
以下、図3に示したようなコンピュータ20によって実行される最適値計算方法の例を説明する。
なお、HDD23には、x1,x2,x3,…といった複数種類のデバイス寸法について、代表的な値の組み合わせ(たとえば、(0.1,0.2,0.3,…)というような代表値セットなど)が複数予め格納されているものとする。なお、デバイス寸法については、具体的に、ゲート長(L)及びゲート幅(W)が採用される場合もある。また、HDD23には、デバイス寸法の代表値セットごとに、たとえば、所定の端子電圧ごとの特性値(電流値など)が予め格納されているものとする。これらの値は、HDD23からRAM22に読み出されてプロセッサ21により処理される。
なお、HDD23には、x1,x2,x3,…といった複数種類のデバイス寸法について、代表的な値の組み合わせ(たとえば、(0.1,0.2,0.3,…)というような代表値セットなど)が複数予め格納されているものとする。なお、デバイス寸法については、具体的に、ゲート長(L)及びゲート幅(W)が採用される場合もある。また、HDD23には、デバイス寸法の代表値セットごとに、たとえば、所定の端子電圧ごとの特性値(電流値など)が予め格納されているものとする。これらの値は、HDD23からRAM22に読み出されてプロセッサ21により処理される。
以下、例として3種類の最適値計算処理を説明する。
図4は、第1の最適値計算処理の流れを説明するフローチャートである。
プロセッサ21は、HDD23からデバイス寸法の代表値セットと、デバイス寸法の代表値セットに対応する特性(たとえば、電流−電圧特性)の実測値を取得する(ステップS50)。
図4は、第1の最適値計算処理の流れを説明するフローチャートである。
プロセッサ21は、HDD23からデバイス寸法の代表値セットと、デバイス寸法の代表値セットに対応する特性(たとえば、電流−電圧特性)の実測値を取得する(ステップS50)。
次に、プロセッサ21は、デバイスの特性をモデル化する所定のモデル式のモデルパラメータ(第1の実施の形態の第1パラメータ)を設定する(ステップS51)。プロセッサ21は、たとえば、HDD23に予め格納された複数種類のモデルパラメータ(たとえば、モデルパラメータA,B,C,…)の複数の値を取得して、設定を行う。
その後、プロセッサ21は、たとえば、ユーザからの入力を受け付け、繰り返し計算回数の設定を行う(ステップS52)。
そして、プロセッサ21は、設定したモデルパラメータを用いてシミュレーションを実行し、実測値に対する計算値の誤差を算出する(ステップS53)。
そして、プロセッサ21は、設定したモデルパラメータを用いてシミュレーションを実行し、実測値に対する計算値の誤差を算出する(ステップS53)。
図5は、モデルパラメータの値に応じた、ある特性の計算結果と実測値の一例を示す図である。縦軸が出力変数(たとえば、電流値)の値を示し、横軸が入力変数(たとえば、電圧値)の値を示している。
計算結果D1,D2は、あるモデルパラメータ(以下ではモデルパラメータAとする)の2つの値での、入力変数−出力変数の計算結果を示している。たとえば、計算結果D1は、モデルパラメータAが値V1の場合の計算結果、計算結果D2は、モデルパラメータAが値V2の場合の計算結果である。プロセッサ21は、モデルパラメータAの各値における計算結果D1,D2ごとに、実測値Daの各点との誤差を算出する。
図6は、誤差の一例を示す図である。縦軸が出力変数の値を示し、横軸が入力変数の値を示している。
計算結果D3は、モデルパラメータAが、ある値のときの、入力変数−出力変数の計算結果を示している。たとえば、プロセッサ21は、図6に示されているように、計算結果D3と、実測値Dbの各点における誤差sub1,sub2,sub3,sub4,sub5を算出する。
計算結果D3は、モデルパラメータAが、ある値のときの、入力変数−出力変数の計算結果を示している。たとえば、プロセッサ21は、図6に示されているように、計算結果D3と、実測値Dbの各点における誤差sub1,sub2,sub3,sub4,sub5を算出する。
図7は、誤差の算出結果の一例を示す図である。モデルパラメータAの値がxのときの、入力変数の各点における出力変数の実測値に対する計算値の誤差の算出結果が示されている。さらに、プロセッサ21は、入力変数の各点での上記誤差をもとに、モデルパラメータAの値がxのときにおける誤差の代表値を算出する。
誤差の代表値を、入力変数の各点での誤差の2乗平均で求める場合、入力変数の数をnとすると、図7の例の場合、代表値SUB=((102+202+202+…)/n)1/2となる。入力変数の各点での誤差や誤差の代表値の算出結果は、HDD23に記憶されるようにしてもよい。
その後、プロセッサ21は、シグモイド関数を用いたパラメータ変換を行う(ステップS54)。パラメータ変換は、たとえば、モデルパラメータの値を、式(1)に代入することで行われる。代入するモデルパラメータの値は、ステップS53の処理で、たとえば、誤差の代表値が小さくなる値を優先して、所定数(たとえば、3点)選択される。パラメータ変換するモデルパラメータの値を限定することで、計算時間を短縮できる。
その後、プロセッサ21は、所定の最適化アルゴリズムで最適化処理を行う(ステップS55)。最適化処理は、シグモイド関数適用後のモデルパラメータ(第1の実施の形態の第2パラメータ)で行われる。また、ステップS53の処理で計算された誤差(代表値)のデータが用いられる。最適化アルゴリズムには、ブレント法、遺伝的アルゴリズム、微分進化アルゴリズム、シミュレーテッドアニーリング、粒子群最適化などがある。
図8は、最適化処理の一例を示す図である。縦軸は誤差であり、横軸はシグモイド関数適用後のモデルパラメータである。
図8では、シグモイド関数適用後の特定の3点のモデルパラメータの値p1,p2,p3が示されている。プロセッサ21は、たとえば、この3点から2次関数f1を算出し、その2次関数f1において、誤差が最小となる値を最適値Vopとして算出する。パラメータ変換するモデルパラメータの値を限定し、変換したモデルパラメータで最適化を行うことで、計算時間を短縮できる。
図8では、シグモイド関数適用後の特定の3点のモデルパラメータの値p1,p2,p3が示されている。プロセッサ21は、たとえば、この3点から2次関数f1を算出し、その2次関数f1において、誤差が最小となる値を最適値Vopとして算出する。パラメータ変換するモデルパラメータの値を限定し、変換したモデルパラメータで最適化を行うことで、計算時間を短縮できる。
このような最適化処理後、プロセッサ21は、最適化処理により得られた最適値Vopを、シグモイド関数の逆関数を用いて、元のモデルパラメータの最適値xopに変換する(ステップS56)。元のモデルパラメータの最適値xopは、以下の式(2)から求まる。
Vop=1/(1+EXP(−(xop−A)/B))
xop=A+B×LN(Vop/(1−Vop)) (2)
その後、プロセッサ21は、ステップS52で設定された繰り返し計算回数だけ、ステップS53〜S56の処理が終了したか否かを判定する(ステップS57)。ステップS53〜S56の処理が、繰り返し計算回数終了していない場合には、プロセッサ21は、ステップS53からの処理を繰り返す。ステップS53〜S56の処理が、繰り返し計算回数分終了した場合には、プロセッサ21は、たとえば、HDD23に最適化データテーブルを生成して、最適化データの登録を行い(ステップS58)、第1の最適値計算処理を終える。
xop=A+B×LN(Vop/(1−Vop)) (2)
その後、プロセッサ21は、ステップS52で設定された繰り返し計算回数だけ、ステップS53〜S56の処理が終了したか否かを判定する(ステップS57)。ステップS53〜S56の処理が、繰り返し計算回数終了していない場合には、プロセッサ21は、ステップS53からの処理を繰り返す。ステップS53〜S56の処理が、繰り返し計算回数分終了した場合には、プロセッサ21は、たとえば、HDD23に最適化データテーブルを生成して、最適化データの登録を行い(ステップS58)、第1の最適値計算処理を終える。
図9は、第1の最適値計算処理で生成される最適化データテーブルの一例を示す図である。
最適化データテーブルには、シグモイド関数を用いて計算されたモデルパラメータA,B,…の値のセットと、当該モデルパラメータの値のセットを用いて計算された各デバイス寸法の代表値のセットについての各点誤差、及び誤差の代表値が登録されている。各点誤差は、前述のように入力変数の各点における実測値に対する計算値の誤差である。誤差の代表値は、たとえば、複数のデバイス寸法の代表値のセットについての各点誤差を、たとえば2乗平均した値である。各デバイス寸法の代表値のセットごとに、誤差の代表値を求めるようにしてもよい。
最適化データテーブルには、シグモイド関数を用いて計算されたモデルパラメータA,B,…の値のセットと、当該モデルパラメータの値のセットを用いて計算された各デバイス寸法の代表値のセットについての各点誤差、及び誤差の代表値が登録されている。各点誤差は、前述のように入力変数の各点における実測値に対する計算値の誤差である。誤差の代表値は、たとえば、複数のデバイス寸法の代表値のセットについての各点誤差を、たとえば2乗平均した値である。各デバイス寸法の代表値のセットごとに、誤差の代表値を求めるようにしてもよい。
次に、第2の最適値計算処理について説明する。
図10は、第2の最適値計算処理の流れを説明するフローチャートである。
プロセッサ21は、たとえば、所定のモデル式のモデルパラメータのうち、デバイス寸法に依存性がないモデルパラメータの指定を、ユーザから受け付ける(ステップS60)。
図10は、第2の最適値計算処理の流れを説明するフローチャートである。
プロセッサ21は、たとえば、所定のモデル式のモデルパラメータのうち、デバイス寸法に依存性がないモデルパラメータの指定を、ユーザから受け付ける(ステップS60)。
第2の最適値計算処理においては、デバイス寸法に依存性がないモデルパラメータについては、デバイス寸法の全ての点(デバイス寸法の値のセット)について共通の値を有するモデルパラメータとして扱われる。一方、デバイス寸法に依存性のあるモデルパラメータについては、デバイス寸法の各点(デバイス寸法の値のセット)について独立の値を有するモデルパラメータであるとして取り扱われる。
なお、ステップS60の処理では、プロセッサ21は、デバイス寸法に依存性がないモデルパラメータの代わりに、デバイス寸法に依存性があるモデルパラメータの指定を、ユーザから受け付けるようにしてもよい。
次に、プロセッサ21は、HDD23からデバイス寸法の代表値セットと、デバイス寸法の代表値セットに対応する特性(たとえば、電流)の実測値を取得する(ステップS61)。
そして、プロセッサ21は、デバイスの特性をモデル化する所定のモデル式のモデルパラメータ(第1の実施の形態の第1パラメータ)を設定する(ステップS62)。第2の最適化データ生成処理においては、デバイス寸法の全ての点について共通の値を有するモデルパラメータと、デバイス寸法の各点について独立の値を有するモデルパラメータが設定される。
ステップS63,S64,S65,S66,S67,S68の処理は、図4に示した第1の最適値計算処理のステップS52〜S57の処理と同様であるので説明を省略する。
ステップS69の処理では、プロセッサ21は、たとえば、HDD23に、以下に示すような最適化データテーブルを生成して、最適化データの登録を行い、第2の最適値計算処理を終える。
ステップS69の処理では、プロセッサ21は、たとえば、HDD23に、以下に示すような最適化データテーブルを生成して、最適化データの登録を行い、第2の最適値計算処理を終える。
図11は、第2の最適値計算処理で生成される最適化データテーブルの一例を示す図である。
最適化データテーブルには、デバイス寸法の全ての代表値について共通の値が適用されるモデルパラメータAの、シグモイド関数を用いて計算された値が登録されている。また、デバイス寸法の各代表値セットについて独立の値が適用されるモデルパラメータBの、シグモイド関数を用いて計算された値が登録されている。さらに、これらのモデルパラメータの値のセットと、当該モデルパラメータの値のセットを用いて計算された各デバイス寸法の代表値のセットについての各点誤差、及び誤差の代表値が登録されている。
最適化データテーブルには、デバイス寸法の全ての代表値について共通の値が適用されるモデルパラメータAの、シグモイド関数を用いて計算された値が登録されている。また、デバイス寸法の各代表値セットについて独立の値が適用されるモデルパラメータBの、シグモイド関数を用いて計算された値が登録されている。さらに、これらのモデルパラメータの値のセットと、当該モデルパラメータの値のセットを用いて計算された各デバイス寸法の代表値のセットについての各点誤差、及び誤差の代表値が登録されている。
次に、第3の最適値計算処理について説明する。
第3の最適値計算処理の流れとしては、図4に示した第1の最適値計算処理とほぼ同様である。ただし、ステップS55の最適化処理の際に、誤差の代表値を最小にするのではなく、モデルパラメータの値のセットごとに、各点誤差を最小にするように最適化処理が行われる。
第3の最適値計算処理の流れとしては、図4に示した第1の最適値計算処理とほぼ同様である。ただし、ステップS55の最適化処理の際に、誤差の代表値を最小にするのではなく、モデルパラメータの値のセットごとに、各点誤差を最小にするように最適化処理が行われる。
生成される最適化データテーブルのフォーマットは、図9に示したようなものと同様である。
以上のように第1乃至第3の最適値計算処理の際に、モデルパラメータを、シグモイド関数を用いて変換して最適化を行うことで、モデルパラメータが稜構造をもつような場合に、最適化が容易になる。また、算出された最適値を用いて、複数回最適化処理を繰り返し、最適値を更新していくことで、より精度よくモデルパラメータの最適化が可能になる。
以上のように第1乃至第3の最適値計算処理の際に、モデルパラメータを、シグモイド関数を用いて変換して最適化を行うことで、モデルパラメータが稜構造をもつような場合に、最適化が容易になる。また、算出された最適値を用いて、複数回最適化処理を繰り返し、最適値を更新していくことで、より精度よくモデルパラメータの最適化が可能になる。
なお、上記では所定の繰り返し計算回数だけ、最適化処理を繰り返すものとしたがこれに限定されず、所定時間の間、最適化処理を繰り返すようにしてもよいし、誤差が所定範囲以下になったら最適化処理の繰り返しを停止するようにしてもよい。
稜構造をもつようなモデルパラメータの例を以下に示す。
図12は、モデルパラメータの1つであるDWGと誤差との関係を示す図である。縦軸は誤差を示し、横軸はDWGの値を示している。
図12は、モデルパラメータの1つであるDWGと誤差との関係を示す図である。縦軸は誤差を示し、横軸はDWGの値を示している。
DWGはとり得る値の範囲が0〜10-7と広く、計算値の実測値に対する誤差が小さくなる範囲が狭い。図12の例では、DWGが0付近で、誤差が最小になっている。DWBについても同様の特性をもつ。
図13は、モデルパラメータの1つであるETABと誤差との関係を示す図である。縦軸は誤差を示し、横軸はETABの値を示している。
ETABは、弱反転領域におけるDIBL(Drain-Induced-BarrierLowering)効果基板バイアス係数である。ETABは、はとり得る値の範囲が−10-3〜0と広く、計算値の実測値に対する誤差が小さくなる範囲が狭い。図13の例では、ETABが0付近で、誤差が最小になっている。DIBLパラメータの基板効果係数(PDIBLCB)についても同様の特性をもつ。
ETABは、弱反転領域におけるDIBL(Drain-Induced-BarrierLowering)効果基板バイアス係数である。ETABは、はとり得る値の範囲が−10-3〜0と広く、計算値の実測値に対する誤差が小さくなる範囲が狭い。図13の例では、ETABが0付近で、誤差が最小になっている。DIBLパラメータの基板効果係数(PDIBLCB)についても同様の特性をもつ。
なお、プロセッサ21は、図9や図11に示したような最適化データテーブルを生成したのち、モデルパラメータを様々な側面で検討できるように、特許文献2に記載されているような、各種のデータ変換や、データ処理を行うようにしてもよい。たとえば、プロセッサ21が、モデルパラメータの近似式(たとえば、モデルパラメータ=α×x1+β×x2+…+γ(x1,x2はデバイス寸法))の係数α,β,…,γを計算するようにしてもよい。この際、より最適な係数を容易に算出できるように、プロセッサ21は、シグモイド関数を用いて係数を変換して、変換した係数を用いて最適化処理を行うようにしてもよい。
ところで、上記の処理内容は、複数の計算装置(コンピュータ)により実行されるようにしてもよい。
図14は、最適値計算システムの一例を示す図である。
図14は、最適値計算システムの一例を示す図である。
最適値計算システム50は、計算装置51,52を有する。
第1の計算装置51は、入力データ作成部61、シミュレーション部62、誤差計算部63、パラメータ変換部64、記憶部66を有する。
第1の計算装置51は、入力データ作成部61、シミュレーション部62、誤差計算部63、パラメータ変換部64、記憶部66を有する。
また、計算装置52は、最適値計算部65を有する。
上記の各部は、図1に示した入力データ作成部11、シミュレーション部12、誤差計算部13、パラメータ変換部14、最適値計算部15、記憶部16と同じ動作を行う。しかし、図14に示すように、複数の計算装置51,52を用いて最適値の計算を行うことで、1つの計算装置にかかる処理負荷を軽減できる。
上記の各部は、図1に示した入力データ作成部11、シミュレーション部12、誤差計算部13、パラメータ変換部14、最適値計算部15、記憶部16と同じ動作を行う。しかし、図14に示すように、複数の計算装置51,52を用いて最適値の計算を行うことで、1つの計算装置にかかる処理負荷を軽減できる。
計算装置51,52は、図3に示したようなハードウェア構成のコンピュータで実現できる。
なお、図14に示した最適値計算システム50は、一例であり、計算装置51の代わりに、計算装置52が、入力データ作成部61、シミュレーション部62、誤差計算部63、パラメータ変換部64、記憶部66の少なくとも1つを有するようにしてもよい。
なお、図14に示した最適値計算システム50は、一例であり、計算装置51の代わりに、計算装置52が、入力データ作成部61、シミュレーション部62、誤差計算部63、パラメータ変換部64、記憶部66の少なくとも1つを有するようにしてもよい。
また、図14の例では、2つの計算装置51,52を用いた場合について示されているが、3つ以上の計算装置を用いてもよい。
以上、実施の形態に基づき、本発明の最適値計算装置、最適値計算システム、最適値計算方法及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
以上、実施の形態に基づき、本発明の最適値計算装置、最適値計算システム、最適値計算方法及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 最適値計算装置
11 入力データ作成部
12 シミュレーション部
13 誤差計算部
14 パラメータ変換部
15 最適値計算部
16 記憶部
11 入力データ作成部
12 シミュレーション部
13 誤差計算部
14 パラメータ変換部
15 最適値計算部
16 記憶部
Claims (6)
- 半導体デバイスをモデル化する第1のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出するシミュレーション部と、
前記特性の実測値を記憶した記憶部を参照し、前記実測値に対する前記計算値の誤差を算出する誤差計算部と、
前記第1のパラメータをシグモイド関数で第2のパラメータに変換するパラメータ変換部と、
前記誤差を最小とする前記第2のパラメータの最適値を算出する最適値計算部と、
を有し、
前記パラメータ変換部は、前記第2のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第1のパラメータの最適値に変換する、ことを特徴とする最適値計算装置。 - 前記シミュレーション部は、複数の前記第1のパラメータを用いてシミュレーションを行い、複数の前記第1のパラメータは、稜構造をもつパラメータを含むことを特徴とする請求項1記載の最適値計算装置。
- 前記パラメータ変換部は、前記第1のパラメータの複数の値のうち、前記誤差が小さくなるものから優先して所定数の値を前記第2のパラメータの値に変換し、前記最適値計算部は、前記所定数の前記第2のパラメータの値をもとに、前記第2のパラメータの最適値を算出することを特徴とする請求項1または2に記載の最適値計算装置。
- 複数の計算装置を有する最適値計算システムであって、
半導体デバイスをモデル化する第1のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出するシミュレーション部と、
前記特性の実測値を記憶した記憶部を参照し、前記実測値に対する前記計算値の誤差を算出する誤差計算部と、
前記第1のパラメータをシグモイド関数で第2のパラメータに変換するパラメータ変換部と、
前記誤差を最小とする前記第2のパラメータの最適値を算出する最適値計算部と、
を有し、
前記パラメータ変換部は、前記第2のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第1のパラメータの最適値に変換する、ことを特徴とする最適値計算システム。 - 1または複数のコンピュータが、
半導体デバイスをモデル化する第1のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出し、
記憶部に記憶された実測値に対する前記計算値の誤差を算出し、
前記第1のパラメータをシグモイド関数で第2のパラメータに変換し、
前記誤差を最小とする前記第2のパラメータの最適値を算出し、
前記第2のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第1のパラメータの最適値に変換する、
ことを特徴とする最適値計算方法。 - コンピュータに、
半導体デバイスをモデル化する第1のパラメータを用いてシミュレーションを行い、前記半導体デバイスの所定の特性の計算値を算出し、
記憶部に記憶された実測値に対する前記計算値の誤差を算出し、
前記第1のパラメータをシグモイド関数で第2のパラメータに変換し、
前記誤差を最小とする前記第2のパラメータの最適値を算出し、
前記第2のパラメータの最適値を、シグモイド関数の逆関数を用いて前記第1のパラメータの最適値に変換する、
処理を実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012206708A JP5994515B2 (ja) | 2012-09-20 | 2012-09-20 | 最適値計算装置、最適値計算システム、最適値計算方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012206708A JP5994515B2 (ja) | 2012-09-20 | 2012-09-20 | 最適値計算装置、最適値計算システム、最適値計算方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014063797A JP2014063797A (ja) | 2014-04-10 |
JP5994515B2 true JP5994515B2 (ja) | 2016-09-21 |
Family
ID=50618799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012206708A Expired - Fee Related JP5994515B2 (ja) | 2012-09-20 | 2012-09-20 | 最適値計算装置、最適値計算システム、最適値計算方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5994515B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3907670A4 (en) * | 2019-01-02 | 2022-03-02 | Panasonic Intellectual Property Corporation of America | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND PROGRAM |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08123832A (ja) * | 1994-10-26 | 1996-05-17 | Ricoh Co Ltd | パラメータ抽出装置 |
JP5493319B2 (ja) * | 2008-09-11 | 2014-05-14 | 富士通株式会社 | モデルパラメータ抽出プログラム |
JP5463856B2 (ja) * | 2009-11-02 | 2014-04-09 | 富士通株式会社 | 入力パラメータ値セット特定プログラム、方法及び装置 |
-
2012
- 2012-09-20 JP JP2012206708A patent/JP5994515B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014063797A (ja) | 2014-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11568204B2 (en) | Optimization apparatus and control method thereof | |
US11475099B2 (en) | Optimization apparatus and method for controlling thereof | |
JP7320033B2 (ja) | 量子制御パルス生成方法、装置、電子デバイス、記憶媒体、及びプログラム | |
US10102319B2 (en) | Electromagnetic scattering analysis module using subdivision based isogeometric analysis | |
US9836564B1 (en) | Efficient extraction of the worst sample in Monte Carlo simulation | |
US20080244488A1 (en) | Method for laying out decoupling cells and apparatus for laying out decoupling cells | |
US20200074279A1 (en) | Optimization apparatus and optimization apparatus control method | |
CN113779779A (zh) | 优化掩模的方法、设备和计算机可读存储介质 | |
JP5785725B2 (ja) | 電力見積装置、電力見積方法及びプログラム | |
JP5994515B2 (ja) | 最適値計算装置、最適値計算システム、最適値計算方法及びプログラム | |
WO2012131863A1 (ja) | 設計支援方法、設計支援プログラムおよび設計支援装置 | |
JP7323796B2 (ja) | 最適化装置、最適化方法及び最適化プログラム | |
US20090234631A1 (en) | Linear Time-Invariant System Modeling Apparatus And Method Of Generating A Passive Model | |
Olsen et al. | Cluster perturbation theory. VII. The convergence of cluster perturbation expansions | |
Lim et al. | Accuracy, temporal performance and stability comparisons of discretization methods for the numerical solution of Partial Differential Equations (PDEs) in the presence of steep moving fronts | |
US20140244226A1 (en) | Compact opc model generation using virtual data | |
JP2021170163A (ja) | 学習プログラム、学習方法及び情報処理装置 | |
JP5799645B2 (ja) | 電源電圧設定方法及び電源電圧設定プログラム | |
US11106855B2 (en) | Pre-characterization mixed-signal design, placement, and routing using machine learning | |
JP6620658B2 (ja) | 遅延見積方法、遅延見積プログラム、及び遅延見積装置 | |
Statter et al. | A novel high-throughput method for table look-up based analog design automation | |
US20230041386A1 (en) | Non-transitory computer-readable storage medium, data processing method, and data processing apparatus | |
Kolak et al. | Evaluating Quantum Algorithms for Linear Solver Workflows | |
US20200042654A1 (en) | Information processing apparatus and method for securing flow path | |
WO2009012046A2 (en) | System and method for modeling semiconductor devices using pre-processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150604 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160726 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160808 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5994515 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |