本発明は、計算機を用いて構造など多数のパラメータに依存する系の最適化を行う最適化方法、及びその最適化システム、さらに、その系を構成する被処理体に最適化方法の処理を行って装置を製造する方法に関する。
近年、TCAD(Technology Computer Aided Design)技術を用い、半導体の製造工程および電気特性評価のシミュレーションを行うことによって半導体素子を最適化設計することが頻繁に行われるようになってきている。
微細なMOSFETなどの構造を最適化して優れた特性を実現するために、応答曲面法や直交表実験に従って実験やシミュレーションが用いられている。特に、これらの最適化方法とシミュレーションを用いることは、実際の試作をせずに最適化の検討を行うことができるため、有効である。
これに伴って、直交表を用いた実験計画法や、準Newton法などの最適値の探索法を用い、予め指定された条件にしたがって、シミュレーションの入力データを自動的に変更し、所望の計算結果を得るためのシステムが提案されている(例えば、特許文献1参照。)。
そのような半導体素子のシミュレーションで用いられる入力データは、通常、数百から数千の変更可能な製造パラメータが含まれているが、構造の最適化を行う一連のシミュレーションでは、それら全てを変化させることはほとんどなく、目的とする目標特性に影響が大きいと思われる製造パラメータを変化させる。これは、著しく多数のパラメータ(現状では一般的に10個以上)を扱うと最適解探索空間の次元が過大となり、直交表を用いた実験計画表や、準Newton法などの最適値の探索法では膨大な演算回数を要する様になるためである。ただし仮に、実験計画法等の最適解探索法で、パラメータの目標特性に対する効果が主効果だけ大きな交互作用や特異点が無い事を前提にすれば、演算回数を大幅に減らす事が可能になる。
しかしながら、例えば閾値電圧Vthによって大きく変化するようなMOSFETの駆動電流Ion特性、オフリーク電流Ioff特性の最適化設計を直交表を用いた実験計画法で行う場合に、平均値や分散を直交表の工程平均値計算で推定すると、交互作用成分が有ると推定の誤差が大きくなってしまうため、主効果により最適解を推定する事と多数のパラメータを扱う事は、両立しなかった。
MOSFET等の複雑な構造の最適化においては、最適化される構造は複数の特性値と複数の共有する製造パラメータ(構造因子)を有する系であると考えられる。複数の特性値が、構造因子を共有して依存する。そして、一つの特性値の仕様を満たそうとすると、他の目標が満たされないトレードオフの関係が、最適化の検討の際に生じやすい。このように、互いに目標に対して相反するトレードオフの関係に有る目標特性間や特性間で共有する因子水準の寄与方向にトレードオフの関係を有する構造因子を有する系の最適化設計は、目標特性間で共有されていない構造因子や因子水準の向きにトレードオフが無い構造因子を見つけなければならず、必然的に多数の構造因子の水準値を扱わないと前記トレードオフ関係を解消する事はできない。
EWSの演算能力の進歩により、従来人的リソースを使用することで対処されてきたシミュレータの入力データの変更、シミュレータの起動、シミュレータの計算結果の整理が自動化され、半導体素子の最適化設計の効率が大幅に向上してきた。多数のパラメータを直交表に従って割り付け入力してシミュレーションを実行する事が容易になってきた。シミュレーションで多数のパラメータを扱って複数の目標特性値を同時に満足する全体最適設計を行うと全体最適化設計が著しく効率化するが、交互作用や特異点が存在する可能性が、多パラメータ化を困難にしている。
特開2002−259463号公報
本発明は、上記事情に鑑みてなされたものであり、その目的とするところは、複数の特性値がトレードオフの関係を有していても構造因子の最適化が可能な最適化方法を提供することにある。
また、本発明の目的は、複数の特性値がトレードオフの関係を有していても構造因子の最適化が可能な最適化システムを提供することにある。
また、本発明の目的は、複数の特性値がトレードオフの関係を有していても構造因子の最適化が可能な最適化方法を用いて装置を製造する方法を提供することにある。
上記課題を解決するための本発明の第1の特徴は、複数の構造因子に複数の目標特性値が依存する一続きの系について構造因子から目標特性値に調整するために選択した複数の制御因子に複数の水準を設定し、水準を直交させて選択した複数の実験の組を設定し、トレードオフの関係にある目標特性値を基準特性値として選択し、基準特性値の系において満たすべき基準値を設定し、基準特性値を増減可能な構造因子を制御因子とは別に事前調整因子として選択し、基準特性値が基準値になるように実験の組毎に対応する系の事前調整因子の調整値を計算機を用いて決定し、調整値と実験の組毎に対応する系の目標特性値を調整値を用いて複数の実験特性値として求め、実験の組と実験特性値に基づいて目標特性値の最適値と最適値を与える水準の組を直交表の工程平均値計算により最適の組として求める最適化方法にある。
本発明の第2の特徴は、構造を規定する複数の目標特性値を増減可能な複数の構造因子を制御因子として選択し、目標特性値とトレードオフの関係にある構造の基準特性値を選択し、構造において満たすべき基準特性値の基準値を設定し、基準特性値を増減可能な構造因子を制御因子とは別に事前調整因子として選択し、構造因子毎の値からなる複数のサンプル組を設定し、サンプル組毎に対応して基準特性値が基準値になるように事前調整因子の調整値を計算機を用いて決定し、計算機を用いて調整値とサンプル組毎に対応する構造の目標特性値のサンプル値を調整値を用いて求め、サンプル組とサンプル値に基づいて目標特性値の最適値と最適値を有する構造に対応する構造因子の値の最適組を求める最適化方法にある。
本発明の第3の特徴は、複数の構造因子に複数の目標特性値が依存する一続きの系について構造因子から選択した複数の制御因子に複数の水準を設定する条件表エディター部と、水準を直交させて選択した複数の実験の組を設定する直交表生成部と、トレードオフの関係にある目標特性値を基準特性値として選択し、基準特性値の系において満たすべき基準値を設定し、基準特性値を増減可能な構造因子を事前調整因子として選択する入力データエディター部と、基準特性値が基準値になるように実験の組毎に対応する系の事前調整因子の調整値を計算機を用いて決定する調整部と、調整値と実験の組毎に対応する系の目標特性値を調整値を用いて複数の実験特性値として求める直交表実験実施制御部と、実験の組と実験特性値に基づいて目標特性値の最適値と最適値を与える水準の組を最適の組として求める後処理部を有する最適化システムにある。本発明の第4の特徴は、複数の構造因子に複数の目標特性値が依存する一続きの系について、構造因子から目標特性値に調整するために選択した複数の制御因子に複数の水準を設定し、水準を直交させて選択した複数の実験の組を設定し、トレードオフの関係にある目標特性値を基準特性値として選択し、基準特性値の系において満たすべき基準値を設定し、基準特性値を増減可能な構造因子を制御因子とは別に事前調整因子として選択し、基準特性値が基準値になるように実験の組毎に対応する系の事前調整因子の調整値を計算機を用いて決定し、調整値と実験の組毎に対応する系の目標特性値を調整値を用いて複数の実験特性値として求め、実験の組と実験特性値に基づいて目標特性値の最適値と最適値を与える水準の組を直交表の工程平均値計算により最適の組として求める最適化を行い、最適化した組に基づいて系を構成する被処理体に処理を行って装置を製造する方法にある。
以上説明したように、本発明によれば、複数の特性値がトレードオフの関係を有していても構造因子の最適化が可能な最適化方法を提供できる。
また、本発明によれば、複数の特性値がトレードオフの関係を有していても構造因子の最適化が可能な最適化システムを提供できる。
また、本発明によれば、複数の特性値がトレードオフの関係を有していても構造因子の最適化が可能な最適化方法を用いて装置を製造する方法を提供できる。
次に、図面を参照して、本発明の実施の形態について説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。また、図面は模式的なものであり、厚みと平面寸法との関係、各層の厚みの比率等は現実のものとは異なることに留意すべきである。
(実施の形態)
(最適化システム)
図1に示すように、実施の形態に係る最適化システム1は、事前調整因子の探索条件設定部2、探索条件記憶部3、シミュレーション制御部4、探索制御部5、事前調整因子の水準記憶部6、文字列置換部7、シミュレータ8、文字列抽出部12、基準特性と目標特性の特性値記憶部13、入力データ記憶部14、条件表記憶部15、直交表生成部16、入力データエディター部17、条件表エディター部18、整理部19、結果一覧表記憶部20、調整部21、事前調整因子の調整済み水準値と基準特性の特性値記憶部22、基準特性の特性値判定部23、直交表実験実施制御部24、後処理部25と目標特性の特性値判定部26を有している。
条件表エディター部18は、複数の構造因子に複数の目標特性値が依存する一続きの系について、構造因子から目標値に調整するために選択した複数の制御因子に複数の水準を設定する。
直交表生成部16は、水準を直交させて選択した複数の実験の組を設定する。条件表記憶部15は、制御因子、制御因子の水準と、水準を直交させて選択した複数の実験の組を記憶する。
入力データエディター部17は、トレードオフの関係にある目標特性値を基準特性値として選択し、基準特性値の系において満たすべき基準値を設定し、基準特性値を増減可能な構造因子を制御因子とは別に事前調整因子として選択する。なお、他の目標特性値に合わせ込むために用意した制御因子との間に交互作用ができるだけ少ない構造因子を制御因子とは別に選択したものが事前調整因子である。また、入力データエディター部17は、誤差因子を選択し、誤差因子の水準値、誤差因子の水準値から調合された誤差条件を設定する。入力データ記憶部14は、基準特性値、基準値、事前調整因子、誤差因子、誤差因子の水準値、誤差因子の水準値から調合された誤差条件を記憶している。なお、事前調整因子と制御因子は互いに異なる構造因子である。入力データエディター部17は、目標特性値とトレードオフの関係にある基準特性値を選択することでは、目標特性値毎に許容範囲を設定し、許容範囲を満たさない目標特性値の中から基準特性値を選択する。入力データエディター部17は、目標特性値とトレードオフの関係にある基準特性値を選択することでは、目標特性値毎に目標特性値のバラツキの許容範囲を設定し、許容範囲を満たさない目標特性値の中から基準特性値を選択する。入力データエディター部17は、基準特性値を増減可能な構造因子を調整因子として選択することでは、基準特性値に対する構造因子の感度を計算し、感度の高い構造因子から事前調整因子を選択する。
事前調整因子の探索条件設定部2は、基準特性値が実質的に基準値になるように実験の組毎に対応する系の事前調整因子の値の探索方法として準ニュートン法、2分法、反復法、内挿と外挿等の方法が選択され、それぞれの方法を実施するためのシミュレーションの条件を設定する。探索条件記憶部3では、設定された探索方法を実施するためのシミュレーションの条件を記憶する。
探索制御部5では、シミュレーションの条件に基づいて、事前調整因子の水準値を変更する。事前調整因子の水準記憶部6は、変更される度に事前調整因子の水準値を記憶する。
文字列置換部7は、シミュレータ8が入力可能なデータのフォーマットに、事前調整因子の水準記憶部6の事前調整因子の水準値、条件表記憶部15の制御因子の水準と、入力データ記憶部14の誤差因子の水準値を変換する。
シミュレータ8は、入力値記憶部9、シミュレーション実行部10と出力値記憶部11を有している。入力値記憶部9は、フォーマットされた事前調整因子の水準値、制御因子の水準と、誤差因子の水準値を記憶する。シミュレーション実行部10は、事前調整因子の水準値である探索値、制御因子の水準の実験の組と、誤差因子の水準値に基づいて、系の目標特性の特性値と基準特性の探索特性値を算出する。出力値記憶部11は、算出された目標特性の特性値と基準特性の探索特性値を記憶する。また、シミュレーション制御部4は、シミュレータ8の入力値の入力のタイミングと、出力値の出力のタイミングを調整し、シミュレータの連続動作を可能にする。
文字列抽出部12は、目標特性の特性値と基準特性の基準特性値を最適化システム1が処理可能なデータのフォーマットに変換する。具体的には、シミュレータ8から目標特性の特性値と基準特性の基準特性値はASCII文字による文字列として出力される。文字列抽出部12は、この文字列から目標特性の特性値と基準特性の特性値を抽出する。基準特性と目標特性の特性値記憶部13は、抽出された目標特性の特性値と基準特性の基準特性値を記憶する。
整理部19は、シミュレータ8の入力値と対応するシミュレータ8の出力値を互いに一方から他方が抽出可能なように関係付けた結果一覧表を生成する。結果一覧表記憶部20は、生成した結果一覧表を記憶する。
調整部21は、結果一覧表の探索値と探索特性値に基づいて、基準特性値が実質的に基準値になるように実験の組毎に対応する系の事前調整因子の調整済み水準値である調整値を決定する。また、調整部21は、調整値における基準特性の基準特性値を出力する。調整部21は、基準特性値の基準値からのずれの許容値を設定し、基準特性値の基準値からのずれを許容値以下とする事前調整因子の水準値を調整値に設定する。調整値と基準特性の基準特性値記憶部22は、調整値と対応する基準特性の基準特性値を記憶する。
基準特性の特性値判定部23は、調整値における基準特性値が実質的に基準値であるか否か判定する。調整値における基準特性値が実質的に基準値でない場合は、入力データエディター部17と条件表エディター部18で出力値の変更を行う。調整値における基準特性値が実質的に基準値である場合は、直交表実験実施制御部24において処理が行われる。
直交表実験実施制御部24は、調整値と実験の組毎に対応する系の目標特性値を複数の実験特性値として求める。直交表実験実施制御部24は、事前調整因子の水準記憶部6の事前調整因子の値を調整値に変更する。シミュレータ8は、この調整値を用いて目標特性の実験特性値を算出する。
後処理部25は、実験の組と実験特性値に基づいて目標特性値の最適値と最適値を与える水準の組を直交表の工程平均値計算により最適の組として求める。
目標特性の特性値判定部26は、目標特性値の最適値が所望の目標値を達成しているか否か判定する。目標特性値の最適値が所望の目標値を達成していない場合は、入力データエディター部17と条件表エディター部18で出力値の変更を行う。目標特性値の最適値が所望の目標値を達成している場合は、最適化を終了する。
図2に示すように、文字列抽出部12は、抽出位置とフォーマットデータ作成登録部31、複数の記憶部である第1抽出位置と第1フォーマット記憶部32、・・・、第n抽出位置と第nフォーマット記憶部33、抽出位置とフォーマットデータ選択部34、適応位置と適応フォーマット記憶部35、抽出実行部36を有している。
抽出位置とフォーマットデータ作成登録部31は、オペレータによる端末27からの入力により、出力値記憶部11に記憶されている基準特性値等を含んだ出力値のASCII文字の文字列から基準特性値等の所望の文字列を抽出する抽出位置のデータと、出力値のASCII文字の文字列と抽出された文字列のフォーマットのデータを作成する。第1抽出位置と第1フォーマット記憶部32、・・・、第n抽出位置と第nフォーマット記憶部33は、抽出位置のデータとフォーマットのデータを記憶する。抽出位置のデータとフォーマットのデータは、シミュレータ8毎に異なり、シミュレーション8が算出する基準特性値や目標特性値の算出対象によっても異なるので、複数の記憶部32、33を有していると便利である。なお、抽出位置のデータとは、所望の文字列の存在する行数、列数の指定、検索可能なタイトル文字の指定、デリミタと単語の順番の指定等である。また、フォーマットのデータとは、いわゆるフォーマット形式とか格納変数のことである。
抽出位置とフォーマットデータ選択部34は、出力値記憶部11に記憶されている出力値のASCII文字の文字列に対応する抽出位置のデータとフォーマットのデータを、記憶部32、33から選択する。
抽出実行部36は、選択された抽出位置のデータとフォーマットのデータに基づいて、出力値記憶部11に記憶されている基準特性値等を含んだ出力値のASCII文字の文字列から基準特性値等の所望の文字列を抽出する。そして、抽出した文字列から最適化システム1で処理可能なフォーマットで書かれた基準特性値等のデータを出力する。基準特性値等は、基準特性と目標特性の特性値記憶部13に記憶される。
図3に示すように、図2の抽出実行部36は、ファイル読み込み部101、文字列比較範囲抽出部102、トークン分割部103、トークン比較&抽出対象トークン記憶部104、抽出対象トークン出力部105と、変数名とトークン値記憶部131を有している。また、図2の適用抽出位置&適用フォーマット記憶部35は、適用抽出位置記憶部35aと、適応フォーマット記憶部35bを有している。
ファイル読み込み部101は、シミュレーション出力値11のファイル全体を読み込む。
文字列比較範囲抽出部102は、ファイル読み込み部101で読み込んだシミュレーション出力値11から、適応抽出位置記憶部35aが記憶しているシミュレーション出力値11の中の基準特性値を含む抽出範囲の開始行および終了行などの適用抽出位置を用いて、シミュレーション出力値11の中の基準特性値を含む抽出範囲を抽出する。
トークン分割部103は、シミュレーション出力値11からの抽出範囲を、出力値11の計算機出力フォーマットの中から適用する適用フォーマットに基づいて複数のトークンに分割する。適用フォーマットは、複数のトークン間に配置されたデリミタ、リターンキーおよび空白文字等の情報を有している。トークン分割部103は、分割された複数のトークンを並べた第1トークン列を生成する。
トークン比較&抽出対象トークン記憶部104は、適用フォーマットに基づいて、第1トークン列から基準特性値が抽出可能な第2トークン列を生成する。第2トークン列は、トークン毎に、比較文字列、比較可否判別子、第2トークン列において当トークンの次に配列される記憶対象トークン等のリスト情報を有する。トークン比較&抽出対象トークン記憶部104は、第2トークン列を用いて、第1トークン列から前記基準特性値を抽出する。トークン比較&抽出対象トークン記憶部104は、抽出対象となる第2トークン列を第1トークン列から抽出し、抽出された情報で指定された部分の前記基準特性値等の情報を変数名とトークン値として、変数名とトークン値のテーブル記憶部131に記憶する。
抽出対象トークン出力部105は、適用フォーマット記憶部35bに記憶された出力フォーマットにしたがって、変数名とトークン値のテーブル記憶部131に記憶された出力すべき基準特性の特性値と目標特性の特性値13を出力する。ここで、適用抽出位置および適用フォーマットは図1の探索制御部5から文字列抽出部12へ送られる情報である。
図4に示すように、図3の適用フォーマットの第2トークン列は、読み出し順序の設定された複数の文字列比較用トークン(1)乃至(n)からなるデータ構造を有している。文字列比較用トークン(1)乃至(n)は、このトークンが比較文字列か変数かを判別する判別子、読み出し順序が当トークンの次のトークンのポインタを有する。また、このトークンが比較文字列の場合、その比較文字列と文字列比較実行の可否の判別子を有する。このトークンが変数の場合、変数名を有する。理解の容易性のために、図4では、第2トークン列のデータ保持方法としてリンクドリスト形式を採用した場合を示している。第2トークン列でのトークンの読み出しの順番は次のトークンへのポインタによって決定される。抽出する際に抽出すべきトークンか否かの判断に用いるトークンの順番は第2トークン列でのトークンの順番に対応している。比較文字列か変数かを判別する判別子の値で異なるデータ部分は、判別子が比較文字列を意味している場合には、比較に用いる比較用文字列(例えば空白文字以外で1文字以上の文字列)と文字列比較実行の可否(Yes/No)の情報を持ち、判別子が変数の場合は、変数名(文字列)を持つ。このデータは例えばプログラミング言語にC言語を用いた場合には、StructとUnionを用いることによって記述できる。
図5に示すように、図3の変数名とトークン値のテーブル記憶部131が記憶する変数名とトークン値のデータ構造例は、配列により構成することができる。変数名とトークン値のデータは、変数名とトークン値の2つの組の配列として記述できる。
また、図6に示すように、図3の変数名とトークン値のテーブル記憶部131が記憶する変数名とトークン値のデータ構造例は、複数のリスト(1)乃至(n)を有するリンクドリストにより構成することができる。リンクドリストを用いた場合には、各リスト(1)乃至(n)は、変数名とトークン値の組と次のリストへのポインタの3つの情報を持つ。この組の部分は、図3の抽出対象トークン出力部105で出力フォーマットに記載された出力すべき変数名に対応したトークン値を検索する際に使用されるので、取り扱う情報量が多い場合には検索しやすい形式のデータ構造(バイナリ−ツリーなど)を採用してもよい。
図7に示すように、図3の適用フォーマット記憶部35bに記憶されている適用フォーマットの出力フォーマットのデータ構造の例も複数のリスト(0)乃至(n)を有するリンクドリストにより構成することができる。リスト(0)は、文字列からなる出力フォーマットと変数名リストのヘッダを有している。変数名リストのヘッダによりリスト(1)を読み出すことができる。リスト(1)乃至(n)は、文字列の各文字に対応する変数名と、文字列の次の文字に対応する変数名を有するリストのポインタを有している。出力フォーマットは例えば、C言語のprintfなどで指定するフォーマットに準じた形式の文字列であり、変数名は、通常のリンクドリスト形式で保持する。
図8に示すように、文字列抽出部12は、適応位置と適応フォーマット記憶部35、抽出実行部36、テーブル記憶部37、数式入力部38、テーブルデータ処理(数式処理)部39、数式記憶部40を有していてもよい。
適応抽出位置と適応フォーマット記憶部35は、基準特性値等を算出可能な文字列を含んだ出力値のASCII文字の文字列から、基準特性値等を算出可能な所望の文字列を抽出する抽出位置のデータと、出力値のASCII文字の文字列と抽出された文字列のフォーマットのデータを記憶する。
抽出実行部36は、記憶された抽出位置のデータとフォーマットのデータに基づいて、出力値記憶部11に記憶されている基準特性値等を算出可能な文字列を含んだ出力値のASCII文字の文字列から基準特性値等を算出可能な所望の文字列を抽出する。そして、抽出した文字列から最適化システム1で処理可能なフォーマットで書かれた基準特性値等を算出可能なデータを出力する。基準特性値等を算出可能なデータは、テーブル記憶部37に記憶される。ここで、基準特性値等を算出可能なデータとは、例えば、基準特性値をMOSFETの駆動電流Ion特性、オフリーク電流Ioff特性や閾値電圧Vthとした場合、値を変化させたゲート電圧VGそれぞれに対するドレイン電流IDにおける複数のゲート電圧VGと複数のドレイン電流IDが相当する。
数式入力部38は、オペレータによる端末27からの入力により、基準特性値等を算出可能なデータの処理手順を数式として入力する。数式記憶部40は、数式を記憶する。
テーブルデータ処理(数式処理)部39は、基準特性値等を算出可能なデータを数式に示された処理手順にしたがい処理し、処理結果を基準特性値として、基準特性と目標特性の特性値記憶部13に出力する。基準特性と目標特性の特性値記憶部13は入力した基準特性値を記憶する。例えば、基準特性値等を算出可能なデータが複数のゲート電圧VGと対応する複数のドレイン電流IDである場合、いわゆるID−VGカーブから駆動電流Ion、オフリーク電流Ioffや閾値電圧Vthを算出する処理を実施する。オフリーク電流Ioffが基準特性である場合は、ゲート電圧VG、ソース電圧と基板電圧Vsubが0Vであり、ドレイン電圧が電源電圧VDDである場合におけるドレイン電流IDを、オフリーク電流Ioffにする処理を行う。駆動電流Ionが基準特性である場合は、ソース電圧と基板電圧Vsubが0Vであり、ドレイン電圧とゲート電圧VGが電源電圧VDDである場合におけるドレイン電流IDを、駆動電流Ionにする処理を行う。
図8の抽出実行部36も、図3の抽出実行部36の構造と同様の構造を有している。しかし、図8のトークン比較&抽出対象トークン記憶部104と、図8の抽出対象トークン出力部105の機能は、図3のトークン比較&抽出対象トークン記憶部104と、図8の抽出対象トークン出力部105の機能とは多少異なっている。
トークン比較&抽出対象トークン記憶部104は、計算機からの出力に適用する適用フォーマットに基づいて、第1トークン列から基準特性値を生成可能であり繰り返される複数の第3トークン列を有する第2トークン列を生成する。
抽出対象トークン出力部105は、第1トークン列から第2トークン列を抽出する。抽出された第2トークンは、第3トークン列の繰り返しを有する。この繰り返しにより、例えば表形式(テーブル)で出力されたシミュレーション出力値も処理可能となる。
また、図9に示すように、繰り返しデータのある場合の適用フォーマットは、図4の適用フォーマットを多少変更している。変更点は、判別子に繰り返しが加わった点と、判別子によって異なる情報を保持する部分に判別子が繰り返しの場合の情報が加わった点である。判別子が繰り返しの場合には、終了判定用関数による繰り返しの終了条件と、第3トークンの繰り返しを表すトークンリストへのヘッダを持つ。例えばC言語を用いた場合、繰り返し終了条件は終了判定用関数へのポインタとしてもよい。終了判定用関数は、必要な終了条件が成り立つ場合にYes(あるいは1)、成り立たない場合はNo(あるいは0)を返す関数である。
また、図10に示すように、繰り返しデータのある場合の変数名とトークン値のテーブルのデータ構造は、図6の変数名とトークン値のテーブルのデータ構造を多少変更している。図10のデータ構造は、図6のデータ構造に対して、変数名として配列が使えるように変更されている。変数か配列かの判別をする判別子が新たに設けられている。判別子によって異なる情報を保持する部分が設けられ、特に、判別子が配列の場合の情報が加わっている。判別子が配列の場合、配列を構成する変数用トークンリストのヘッダが設けられている。図10のデータ構造では、トークンをリンクドリスト形式で実現しているだけでなく、配列もリンクドリスト形式として実現した場合を示している。変数名として配列を使えるようにすることで、配列に繰り返しデータを記憶することができる。
また、図11に示すように、繰り返しデータのある場合の出力フォーマットのデータ構造は、図7の出力フォーマットのデータ構造を多少変更している。変更点は、リスト(1)乃至(n)が繰り返し番号を有する点である。変数名と繰り返し番号を指定することで、この変数名に関係付けられ、この繰り返し番号に対応するトークン値を、変数名とトークン値のテーブル記憶部131から読み出すことができる。
実施の形態の最適化システムによれば、例えば、閾値電圧Vthによって大きく変動するようなMOSFETのIon特性、Ioff特性の最適化設計を行う場合に、平均値や分散の解析で誤差が大きくなってしまう場合でも良好に最適化設計を行えるようになる。
また、任意のフォーマットで出力されたデータから指定されたデータを抽出する文字列抽出部12を保有するので、実行形式のみでソースコードを保有しないシミュレータ8を取扱うことが可能となる。
更に、抽出したデータに対して数式処理部39を保有するので、ID−VGや時系列データなどの表形式で出力される計算結果から、ID−VGカーブ等のある傾きを満足する点などの抽出も可能である。
最適化システム1は、計算機やコンピュータであってもよく、コンピュータにプログラムに書かれた手順を実行させることにより、最適化システム1を実現させてもよい。
(最適化方法)
図12に示すように、実施の形態に係る最適化方法では、まず、ステップS1で、事前調査を行う。事前調査として、条件表エディター部18が、制御因子を選択し、制御因子の水準値を設定する。入力データエディター部17が、誤差因子、基準特性と事前調整因子を選択し、誤差因子の水準値、基準特性の基準値、目標特性の目標値を設定する。直交表生成部16が、選択された直交表に制御因子の水準値を割り付け、実験条件を生成する。
ステップS2で、計算機により事前調整因子による基準特性の事前調整を行う。事前調整として、事前調整因子の探索条件設定部2は、基準特性値が実質的に基準値になるように事前調整因子の値の探索方法が選択され、探索方法を実施するためのシミュレーションの条件を設定する。探索制御部5では、シミュレーションの条件に基づいて、事前調整因子の水準値を変更する。シミュレータ8は、事前調整因子の水準値である探索値、制御因子の水準の実験の組と、誤差因子の水準値に基づいて、系の目標特性の特性値と基準特性の探索特性値を算出する。整理部19は、シミュレータ8の入力値と対応するシミュレータ8の出力値を互いに一方から他方が抽出可能なように関係付けた結果一覧表を生成する。調整部21は、結果一覧表の探索値と探索特性値に基づいて、基準特性値が実質的に基準値になるように実験の組毎に対応する系の事前調整因子の調整済み水準値である調整値を決定する。また、調整部21は、調整値における基準特性の基準特性値を出力する。
ステップS3で、事前調整を、基準の誤差条件についての直交表実験のすべての実験nについて実施する。シミュレーション制御部4は、シミュレータ8の入力値の入力のタイミングと、出力値の出力のタイミングを調整し、シミュレータ8はすべての実験nの回数毎に事前調整で必要な回数分だけ繰り返し実行する。
ステップS4で、基準特性の特性値判定部23は、調整値における基準特性値が実質的に基準値であるか否か判定する。調整値における基準特性値が実質的に基準値でない場合は、ステップS1に戻る。調整値における基準特性値が実質的に基準値である場合は、ステップS5に進む。
ステップS5で、すべての誤差条件についての直交表実験のすべての実験nについて、目標特性の特性値をシミュレーション等で算出する。なお、基準の誤差条件についての直交表実験のすべての実験nについては、ステップS3にて目標特性の特性値をシミュレーションで算出しておいてもよい。直交表実験実施制御部24は、シミュレータ8を用いて調整値と実験の組毎に対応する系の目標特性値を求めている。
ステップS6で、後処理を行う。後処理として、SN比と感度の分析を行う。後処理部25は、SN比と感度の分析により、実験の組毎の目標特性値に基づいて目標特性値の最適値とこの最適値を与える水準の組を最適の組として求める。
ステップS7で、目標特性の特性値判定部26は、目標特性値の最適値が所望の目標値を達成しているか否か判定する。目標特性値の最適値が所望の目標値を達成していない場合は、ステップS1に戻る。目標特性値の最適値が所望の目標値を達成している場合は、最適化方法を終了する。
実施の形態に最適化方法は、複数のパラメータに依存する構造などの系の最適化を行う際、注目する基準特性について基準値を満たす構造となるよう計算機を用いて事前に調整した上で他の目標特性の最適化を行うことにより、最適化のための解析の精度を向上し、最適化作業の効率を改善する。実施の形態に最適化方法は、直交表実験に限られるわけではないが、特に直交表実験において用いると有効である。
構造の目標特性が複数のパラメータに非線形に依存している場合でも、特定の目標特性(基準特性)に注目してそれが基準値を与える調整された構造を集めた部分空間の中で解析を行うと、関連をもつ他の目標特性の応答の線形性が高まり、1次の展開による近似の精度が高まるという効果を発見した。計算機を用いて構造のパラメータである事前調整因子を調整することにより、調整された構造の組を実際に容易に得ることを可能にした。
直交表実験においては、交互作用が無視できる場合、実験結果が加法性を有しており、複数の要因の効果を組み合わせる解析が容易であり、ばらつきを小さくするような構造の選択および目標特性値を目標値に近づけるような構造の選択を容易に行うことができる。
実施の形態の最適化方法のように、事前調整を行った上で直交表実験を行う場合、事前調整によって関連する交互作用がみかけ上消去され、しかも実験結果は加法性を有し、ばらつきを小さくする構造の選択および特性値を目標値に近づける構造の選択を高精度に行うことができる。また、多数のパラメータについての最適値を一度に得ることが可能となる。これらにより、最適構造を得るための解析の効率を飛躍的に向上できる。
実施の形態の最適化方法のように、事前調整を行った上で直交表実験を行うことは、事前調整を用いる束縛条件付直交表実験による解析である。事前調整は直交表をなす制御因子以外の因子で行う。制御因子の直交性は保持され、このため直交表実験の手法を適用できる。事前調整により、事前調整された基準特性に関連する目標特性が類似する構造内での解析となり、これらの目標特性について制御因子に対する応答の線形性が改善される。非線形性により交互作用がある現実の変数空間を、あらかじめ基準特性の値を揃えた平坦性の増した空間にマッピングして解析するものである。
従来の直交表実験においても交互作用を消去するために複数の因子の水準を組み合わせて変化させるすべり水準の技術が用いられることがある。これに対し実施の形態の最適化方法の趣旨は、事前調整因子を用いて基準特性が基準値を満たすように系の構造全体をすべらせることに対応すると言うこともできる。
実施の形態の最適化方法は、手順としてコンピュータが実行可能な最適化プログラムにより表現することができる。この最適化プログラムをコンピュータに実行させることにより、最適化方法を実施することができる。
以下では、図12のステップS2の事前調整因子による事前調整において、シミュレータ8が算出する目標特性の特性値と基準特性の探索特性値の取り扱い方法について説明する。特に、図1の文字列抽出部12の出力値11から目標特性の特性値と基準特性の探索特性値の抽出方法について説明する。特に、図3のトークン比較&抽出対象トークン記憶部104のトークンの比較と抽出対象トークンの記憶について説明する。
図14に示すように、図3のトークン比較&抽出対象トークン記憶部104においては、まず、ステップS201で、シミュレーション出力値11をトークン分割することによって得られた比較対象トークンの番号(i)を零に初期化する。
ステップS202で、その番号(i)をインクリメント(i=i+1)する。
その後、ステップS203において、番号(i)に対応する比較対象トークン(i)が最後のトークンかどうか判断する。最後のトークンであれば処理を終了し、そうでなければ、ステップS204へ進む。
その後、ステップS204で、図4のデータ構造に保持された文字列比較用トークンの番号(k)を零に初期化する。
ステップS205で、文字列比較用トークン番号(k)をインクリメント(k=k+1)する。
ステップS206で、文字列比較用トークン番号(k)が最大値(比較用トークンリストのデータの数n)に達したかどうか判断する。
最大値に達した場合は、ステップS211において、抽出すべきデータと一致したので、一時記憶されたトークンおよび変数名を図3の変数名とトークン値のテーブル131へ正式に登録する。
一方、文字列比較用トークン番号(k)が最大値に達していない場合は、ステップS207へ進み、比較用トークン(k)の判別子の判別を行う。
判別子が変数の場合は、ステップS208で、比較対照トークン(i)を仮の記憶領域に一時保存したのち、ステップS205へ戻る。
また、比較用トークン(i)の判別子が比較文字列の場合は、ステップS209において、比較用トークン(i)の比較可否のフラグを判定し、フラグの値がNoの場合は何もせずにステップS205へ戻り、そのフラグの値がYESの場合にはステップS210へ進む。
ステップS210では、比較対象トークン(i+k-1)と比較用トークン(k)の文字列比較を行う。両者が一致した場合はステップS205へ進み、一致しない場合はステップS202へ進む。
これらの処理を行うことによって、図3のシミュレーション出力値11から、適用フォーマット35bに記憶された情報によって、抽出したい部分に名前(変数名)をつけた形で、抽出したい値を図3の変数名とトークン値のテーブル131へ保存できる。なお、分かりやすさを考慮して、細かいエラー処理は示していなく、以後のフローチャートでも同様に細かいエラー処理は省いている。
次に、図1の文字列抽出部12の出力値11から目標特性の特性値と基準特性の探索特性値の抽出方法において、特に、図3の抽出対象トークン出力部105の抽出対象トークンの出力について説明する。
図15に示すように、図3の抽出対象トークン出力部105においては、まず、ステップS301で出力フォーマット(文字列)の抽出と出力用文字列の初期化(例えばC言語を用いた場合はNULL文字を代入する)を行う。
ステップS302で、出力フォーマットの文字列の文字番号(i)と変数の番号(j)を零に初期化する。
ステップS303で、文字列の文字番号(i)をインクリメントする。
ステップS304で、文字番号(i)の対応する文字が、出力フォーマット(文字列)の最後の文字であるかどうか判断する。
文字番号(i)の対応する文字が最後の文字である場合は、ステップS310に進み、予め指定された出力装置へ出力用文字列を出力する。
文字番号(i)の対応する文字が最後の文字でない場合は、ステップS305に進み、出力フォーマットの文字列のi番目の文字(文字番号(i))の文字列が変数を置き換える文字かどうか判断する。例えばC言語のprintfなどで指定するフォーマットに準じた場合は、文字が“%”かどうか判断する。
文字列が変数を置き換える文字でない場合は、ステップS311に進み、文字番号(i)の文字を出力用文字列に追加した後、ステップS303へ戻る。
文字列が変数を置き換える文字である場合は、ステップS306で変数の番号(k)をインクリメント(k=k+1)する。
ステップS307で、出力フォーマットの変数リストからk番目の変数名を抽出する。
ステップS308で、図3の変数名とトークン値のテーブル131から抽出されたその変数名に関係付けられたトークン値を抽出する。
ステップS309で、抽出されたトークン値を出力用文字列に追加した後に、ステップS303へ戻る。
以下では、図12のステップS2の事前調整因子による事前調整において、シミュレータ8が算出する目標特性の特性値と基準特性の探索特性値の取り扱い方法について説明する。特に、図1の文字列抽出部12の出力値11から目標特性の特性値と基準特性の探索特性値の抽出方法について、出力値11に繰り返しがある場合を説明する。まず、図3のトークン比較&抽出対象トークン記憶部104の繰り返しがある場合のトークンの比較と抽出対象トークンの記憶について説明する。
図16に示すように、図3のトークン比較&抽出対象トークン記憶部104においては、ステップS407を除くステップS401乃至ステップS411は図14のステップS201乃至ステップS211にそれぞれ対応している。
ステップS407はステップS207へ繰り返しがある場合の処理を加えたものになっている。
また、ステップS421とステップS422が新たに加わり、ステップS407で判別子が繰り返しの場合と判断された場合に、後述するステップS421で繰り返しがある場合の処理を行う。
ステップS422で、繰り返しパターンが一致したか否かを判断する。一致した場合はステップS403へ戻り、不一致の場合はステップS405へ戻る。
図17は図16のステップS421の繰り返しのある場合の処理に対応したフローチャートである。
ステップS501で、繰り返しの回数(n)を零に初期化する。
ステップS502で、繰り返し回数(n)をインクリメント(n=n+1)する。
ステップS503で、繰り返しトークンの番号(m)を零に初期化する。
ステップS504で、繰り返しトークンの番号(m)をインクリメント(m=m+1)する。
この後、ステップS505で、繰り返し終了条件を満たしたかどうか判断する。
繰り返し終了条件が満たされた場合は、ステップS511へ進み、パターンが一致したことを示す変数(例えばC言語で図17の内容を1つの関数とする場合は、リターン値としてもよい)をYes(あるいは1)に設定する。
一方、繰り返し条件を満たしていない場合は、ステップS506へ進み、繰り返しトークンの番号(m)が最大値に達したかどうか判断する。最大値に達した場合は、ステップS502へ戻り、最大値に達していない場合は、ステップS507へ進む。
ステップS507は、比較用トークン(m)の判別子が、変数か、比較文字列かを判断する。
判別子が変数の場合は、ステップS508に進み、比較対照トークンを一時記憶した後、ステップS504へ戻る。
判別子が比較文字列の場合は、ステップS509で、比較可否のフラグを判定する。比較可否のフラグがNoの場合は、なにもせずにステップS504へ戻る。比較可否のフラグがYESの場合は、ステップS510で比較対象トークン(i+m−1)と比較用トークン(m)を比較する。比較対象トークン(i+m−1)と比較用トークン(m)が一致した場合は、ステップS504へ戻る。比較対象トークン(i+m−1)と比較用トークン(m)が一致しない場合は、ステップS512で、パターンが一致したことを示す変数をNOに設定し、処理を終了する。
次に、図1の文字列抽出部12の出力値11から目標特性の特性値と基準特性の探索特性値の抽出方法において、出力値11に繰り返しデータがある場合の図3の抽出対象トークン出力部105の抽出対象トークンの出力について説明する。
図18は、図15に示した抽出対象トークンの出力部105のフローチャートに基づいて、出力値11に繰り返しデータがある場合に対応している。ステップS602乃至ステップS611は図15のステップS302乃至ステップS311にそれぞれ対応している。図18では、新たにステップS621乃至ステップS624が加わっている。
ステップS606とステップS607の間のステップS621において、出力値11に繰り返しがある変数かどうか判断する。出力値11が繰り返しがある変数であると判断された場合はステップS622へ進み、変数リストからk番目の変数名を抽出し、出力フォーマットから繰り返し番号(n)を抽出する。
その後、ステップS623で、変数名とトークン値のテーブルからk番目の変数名で繰り返し番号が(n)のデータを抽出する。
ステップS624で、k番目の変数名で繰り返し番号が(n)のデータのトークン値を出力変数用文字列に追加してステップS603に戻る。
ステップS621で繰り返しがある変数でないと判断された場合はステップS607へ進む。
次に、図1の文字列抽出部12の出力値11から目標特性の特性値と基準特性の探索特性値の抽出方法において、出力フォーマットに数式があり数式処理を行う場合の図3の抽出対象トークン出力部105の抽出対象トークンの出力について説明する。
図19は、図15に示した抽出対象トークンの出力部105のフローチャートに基づいて、出力フォーマットに数式がある場合に対応している。ステップS602乃至ステップS611は図15のステップS302乃至ステップS311にそれぞれ対応している。図19では、新たにステップS621乃至ステップS626が加わっている。
ステップS606とステップS607の間のステップS621において、数式であるかどうか、繰り返しがある変数であるかどうか判断する。数式であると判断された場合はステップS625へ進み、数式に基づいて数式処理を行って、その結果である文字列を作成する。
その後、ステップS626で、数式処理結果である文字列を出力変数用文字列に追加してステップS603に戻る。
ステップS621で、繰り返しがある変数であると判断された場合は、図18のステップS622乃至S624と同様に、ステップS622乃至S624を実施する。
ステップS621で数式でも繰り返しがある変数でもないと判断された場合はステップS607へ進む。なお、ステップS625の処理は膨大な処理を必要とするがよく知られた処理であるので、ステップS625の処理の詳細な説明は省略する。なお、ステップS625の処理の詳細な説明は、例えば、文献Herbert Schildt, “ADVANCED C,” HcGraw-Hill, 1986に開示されている。
本発明の実施の形態によれば、特性値の最適値とそれを与える因子の値の組を求めパラメータの最適化を行うことによって、被処理体として半導体基板を用いた場合にその条件に基づいた処理を行うことによって、容易に高性能な半導体装置を製造することが可能になる。
実施例1では、実施の形態の最適化システムと最適化方法をMOSFETの最適化に適用し、微細MOSFETの構造を束縛条件を持つ直交表実験とシミュレーションを用いて最適化する。微細化において歩留まり低下の原因となるプロセスばらつきのうち、特に、ゲート長ばらつきに起因する短チャネル効果を抑制し、同時に、オフリーク電流値Ioffを小さくし、同時に、駆動電流値Ionを大きくするMOSFET構造を最適化している。
まず、図12のステップS1において、事前調査を行う。事前調査として、まず、多数考えられるパラメータの中から制御因子と誤差因子を選択する。制御因子や誤差因子として、24個のパラメータを選択する。この24個のパラメータについて最適化を検討する。次に、基準特性を選択する。そして、基準特性の基準値を選択する。また、事前調整因子を選択する。直交表実験の条件を作成する。選択された24個のパラメータの中から、11個のパラメータについては2水準設定し、13個のパラメータについては3水準設定する。直交表としては、L36直交表を用いる。
ステップS1において、事前調査としてシミュレーションにより微細MOSFETの構造の検討をおこない、オフリーク電流値Ioffを小さくする構造では、一般に、駆動電流値Ionも小さくなる結果が得られる。即ち、オフリーク電流値Ioffと駆動電流値Ionはトレードオフの関係にある。実施例1ではMOSFETのオフリーク電流値Ioffを基準特性として選択する。また、基準特性の基準値を、MOSFETを搭載するLSIの製品の仕様にしたがって、100nA/umに設定した。すなわち、オフリーク電流値Ioffを100nA/umに固定したMOSFET構造において、駆動電流値Ionを大きくするMOSFET構造を探し選択することになる。駆動電流値Ionを大きくするMOSFET構造を選択する際に、オフリーク電流値Ioffを考慮する必要がないので、MOSFET構造の選択を明確に択一的に行うことができる。
さらに、MOSFETの色々な構造パラメータXiに対するオフリーク電流値Ioffの依存性を調べる。オフリーク電流値Ioff値が、ハローイオン注入のドーズ量に強く依存するという知見が得られた。そこで、オフリーク電流値Ioffを調整する事前調整因子としてこのハローイオン注入のドーズ量を選択した。これは、このように基準特性に対して感度の高いパラメータは、少しの変化によって基準特性を大きく調節できるからである。また、ハローイオン注入のドーズ量を少し変化させても、他の構造パラメータXiの最適値をあまり変化させないと考えられるからである。
さらに、MOSFETの他の構造パラメータXiに対する駆動電流値Ion等の特性の依存性を考慮して、図20に示す直交表実験の条件表を作成した。実施例1では1例として、図20に示すL36直交表と呼ばれる直交条件表にしたがって、図21のような実験条件表を作成する。図20のL36直交表においては、因子AからKの11因子がそれぞれ2水準の値を有し、因子LからWの12因子がそれぞれ3水準の値を有する。36回の実験において、因子A乃至W毎に水準がそれぞれが互いに同じ回数だけ現れるように構成されている。この構成を実験条件が互いに直交していると呼ぶ。因子AからWの23種の因子は、この最適化において、改善を望む特性の特性値を制御しようとしているパラメータであり、因子AからWは制御因子A乃至Wと呼ばれる。図20のそれぞれの制御因子A乃至Wにおける1、2、3、等の数は、それぞれ、水準1、水準2、水準3に対応している。図21に、図20に示した23個の制御因子A乃至Wの各水準にわりつけた値を示す。
このような直交表を用いて実験を計画する場合、23種のパラメータA乃至Wのそれぞれの水準に対する211×312回の実験を行わずとも、この表に示される36回の実験によって改善を望む目標特性の特性値のばらつきや、目標特性の特性値の大小を解析できることが知られている。
また、直交表実験を行う際に誤差因子を設定し、目標特性値のばらつきを解析している。
実施例1では図22(a)に示すように、ゲート電極の長さを誤差因子EAとした。ゲート電極の長さEAの水準としては、ゲート電極長さの設計の許容範囲の中央値に対し、水準1、EA1として15%大きくした値と、水準2、EA2として15%小さくした値の2水準を設定した。また、制御因子Sのハローイオン注入のチルト角の誤差を誤差因子EBとした。ハローイオン注入のチルト角Sの各水準の値を中心に2度大きくした値を水準1、EB1とし、2度小さくした値を水準2、EB2として設定した。また、MOSFETの動作温度を誤差因子ECとした。動作温度ECの水準として、水準1、EC1として室温に設定し、水準2、EC2として65℃に設定した。
これらの誤差因子EA、EB、ECの水準に対して特性値のバラツキを小さくする構造を、これらの誤差因子EA、EB、ECに対してロバスト(頑健)な構造として選択する。これら誤差因子EA、EB、ECが、MOSFETの特性、駆動電流値Ionとオフリーク電流値Ioffに与える影響を、ステップS1の事前調査において調べる。具体的には、誤差因子EA、EB、ECの各水準が、駆動電流値Ionとオフリーク電流値Ioffをそれぞれ大きくすることに寄与するのか、小さくすることに寄与するのかを調べる。
そして、図22(b)に示した4つの条件Ni1乃至Ni4に調合する。条件Ni1では、駆動電流値Ionが大きくなることに寄与する水準を誤差因子EA、EB、EC毎に抽出する。駆動電流値Ionが大きくなることに寄与する水準は、水準EA1、EB1、EC1である。水準EA1、EB1、EC1によって、誤差因子EA、EB、ECによる最大の駆動電流値Ionが設定できる。条件Ni2の駆動電流値Ionが小さくなることに寄与する水準は、水準EA2、EB2、EC2である。水準EA2、EB2、EC2によって、誤差因子EA、EB、ECによる最小の駆動電流値Ionが設定できる。条件Ni3のオフリーク電流値Ioffが大きくなることに寄与する水準は、水準EA1、EB1、EC2である。水準EA1、EB1、EC2によって、誤差因子EA、EB、ECによる最大のオフリーク電流値Ioffが設定できる。条件Ni4のオフリーク電流値Ioffが小さくなることに寄与する水準は、水準EA2、EB2、EC1である。水準EA2、EB2、EC1によって、誤差因子EA、EB、ECによる最小のオフリーク電流値Ioffが設定できる。
次に、直交表実験を行う際に関連の深い因子を組み合わせてその水準値を設定し、交互作用を低減する。図21に示した実験条件表でも、因子Lのチャネルイオン注入エネルギーに対し因子Mのチャネルイオン注入ドーズ量をすべり水準とした。図23(a)に示すように、チャネルイオン注入ドーズ量Mの場合には、L(低)、M(中)、H(高)の3水準を、チャネルイオン注入エネルギーLの水準値L1、L2、L3それぞれにおけるMOSFETのしきい電圧がほぼ同じになるように設定した。
また、図23(b)に示すように、因子NのTEOSスペーサ厚さに対し、因子Vの側壁スペーサ厚さをすべり水準とした。側壁スペーサ厚さVの場合には、TEOSスペーサ厚さNと側壁スペーサ厚さVの和が40、50、または60となるように側壁スペーサ厚さVの値を設定した。
また、図21の因子Kはダミーの因子として水準値を設定せず、また、因子Wの水準2と水準3もダミーの水準として同一の値を設定した。これらのダミー水準は後にのべるように直交表実験における解析誤差の評価に用いた。
このように、実施例1では図20に示したように、20個以上の因子A乃至Wについての最適値を求めようとしている。MOSFETの駆動電流値Ionとオフリーク電流値Ioffは、これらの多数の因子A乃至Wに依存する。また、交互作用により、それら多数の因子A乃至Wの駆動電流値Ionとオフリーク電流値Ioffへの影響の大きさが、他の因子A乃至Wの水準によって異なる。したがって、因子A乃至Wの最適値を求めるためには、これら因子A乃至Wの一部分の数個の因子だけを取り出して検討をしても、因子A乃至Wの全体の最適値は得られない。従ってこれらの因子A乃至Wによる特性への影響を同時に検討することが望ましい。
この同時に検討する目的において事前調整を用いることが有効である。実施例1では、図21に示した事前調整因子のハローイオン注入のドーズ量を用いて、事前調整を行う。そして、事前調整の結果を用いて直交表実験を行っている。
ステップS2乃至S4において、調整部21が、事前調整因子を36回の実験毎に調整して、あらかじめ基準特性の特性値を36回の実験間で同じの基準値に設定する。そして、以降、36回の実験毎に調整された事前調整因子の値を用いて、各パラメータの最適値を一度に検討することになる。
まず、ステップS2で、36回の各実験に対応して、事前調整因子による事前調整を行う。1つの実験において、制御因子と誤差因子の水準の値は変更せずに、事前調整因子の値を変更して、基準特性の特性値を基準値に一致させる。
事前調整をさらに詳しく説明する。図13に示すように、36回の実験のn番目(n=1〜36)の実験に対応するように、基準の誤差条件Ni1についての個々のn番目の微細MOSFETの構造について、事前調整因子の値を値1乃至値4あるいはそれ以上まで変化させた構造を準備する。次に、これらの事前調整因子の値1乃至4に対応して基準特性であるIoffの特性値を求める。次に、基準特性Ioffの特性値が基準値となる事前調整因子の値を求める。具体的には、ニュートン法等のように、求めた特性値が基準値に近づくように事前調整因子の値を変更し、変更した事前調整因子の値を用いて再度基準特性値を求める。このことを繰り返すことにより、基準特性値は、基準値に近づけられ、基準値に一致する。そして。基準特性値が基準値に一致した際の事前調整因子の調整値を抽出する。
ステップS3では、ステップS2で抽出された特性値が基準値に一致した際の事前調整因子の調整値と特性値を、36回の実験のすべての微細MOSFETの構造に対応させて、記憶する。
このような事前調整では、因子A乃至Wの水準値と、図20のL36直交表により、36種の構造について、駆動電流値Ionとオフリーク電流値Ioffのシミュレーションをシミュレータ(計算機)8上で行っている。即ち、例えば図20の実験No.10の構造の場合、直交表での各因子A乃至Wの水準は、図24に示すように、数列1 2 1 2 2 1 2 2 1 1 2 1 1 3 2 1 3 2 3 2 1 3 2のように直交表生成部16によって生成される。条件表エディター部18は、さらに、この数列を読み込み、シミュレーションで使用可能な入力データ列に変換する。すなわち、図24の数列にしたがって図25のような入力データ列A1 B2 C1 D2 E2 F1 G2 H2 I1 J1 K2 L1 M1 N3 O2 P1 Q3 R2 S3 T2 U1 V3 W2を作成する。
例えば、図21から分るように、入力データ列内の水準A1には、因子Aでは水準1の因子Aの時間が23秒であることが記載されている。また、入力データ列内の水準B2には、因子Bでは水準2の因子Bのドーズ量が5.0e12cm-2であることが記載されている。因子Aの時間が23秒であること(A1)や、因子Bのドーズ量が5.0e12cm-2であること(B2)等々は、シミュレーションの条件であり、シミュレータ8に入力される。図26に示すように、具体的には、文字列置換部7が、シミュレーションの入力データの識別子%timeや%doseに対応させて水準A1やB2の入力データをシミュレータに入力する。
なお、入力データ列を作成する際に、同時に、図22(b)の誤差条件Ni1に対応して、入力データ列A1 B2 C1 D2 E2 F1 G2 H2 I1 J1 K2 L1 M1 N3 O2 P1 Q3 R2 S3 T2 U1 V3 W2の個々の入力データや、シミュレータ8内の固定されたデータでシミュレータ8外部からの入力データによって変更可能な内部データを、図27に示す誤差因子の水準EA1、EB1、EC1に従って変化させた。
このようにして、直交表実験の条件と誤差条件を反映させてシミュレーション実験を行うことができる。
さらに、入力データ列とは別に、図21の中に示したように、シミュレーションの条件であるハローイオン注入のドーズ量は、事前調整因子として用いている。即ち、図29に示すように、誤差条件Ni1における実験1乃至36のシミュレーションにおいて、図13の事前調整因子の値1乃至4に対応してハローイオン注入のドーズ量を変化させ、オフリーク電流値Ioffが基準値Log(Ioff)=-7となるように調整する。このために、図21から図23の内容による入力データを固定しておいて、図28(a)乃至(c)に示すようなハローイオン注入のドーズ量を変化させた入力データ列の組を、探索制御部5が生成し、事前調整因子の水準記憶部6が記憶している。または、入力データ列毎にハローイオン注入のドーズ量を変化させている。ハローイオン注入のドーズ量は、2e12 cm-2、5e12 cm-2、8e12 cm-2のように変化させ、その度毎に、オフリーク電流値Ioffをシミュレーションにより算出している。あるいは、ハローイオン注入のドーズ量を変化させた一連の入力データ列を用いて、ハローイオン注入のドーズ量を変化させた一連のシミュレーションを実行し、一連のオフリーク電流値Ioffを算出している。
図30に示すように、図1のシミュレーションの出力値11が出力されオフリーク電流値Ioffと制御電流値Ionを抽出する場合を例に、文字列抽出部12の機能を具体的に説明する。
まず、図3のファイル読み込み部101は、シミュレーション出力値11のファイル全体を読み込む。
トークン分割部103は、シミュレーション出力値11を、適用フォーマットに基づいて複数のトークンに分割する。適用フォーマットは、複数のトークン間に空白文字が配置されているという情報を有している。図30の下部に示すように、トークン分割部103は、例えばオフリーク電流値Ioffと制御電流値Ionに関する第1トークン乃至第8トークンを分割し、分割された複数の第1乃至第8トークンを並べた第1トークン列を生成する。
トークン比較&抽出対象トークン記憶部104は、適用フォーマットに基づいて、第1トークン列から基準特性値が抽出可能な第2トークン列を生成する。
図31に示すように、第2トークン列は、トークン(1)乃至(8)毎に、比較文字列か変数かの判別子、第2トークン列において当トークンの次に配列される記憶対象トークンのアドレス、文字列、文字列比較可否判別子、変数名を有する。具体的に、トークン(1)は、判別子として比較文字列、アドレスとしてトークン(2)のアドレス、文字列としてIoff、文字列比較可否判別子としてYesを有する。トークン(2)は、判別子として比較文字列、アドレスとしてトークン(3)のアドレス、文字列として=、文字列比較可否判別子としてYesを有する。トークン(3)は、判別子として変数、アドレスとしてトークン(4)のアドレス、変数名としてVal1を有する。トークン(4)は、判別子として変数、アドレスとしてトークン(5)のアドレス、変数名としてUnit1を有する。トークン(5)は、判別子として比較文字列、アドレスとしてトークン(6)のアドレス、文字列としてIon、文字列比較可否判別子としてYesを有する。トークン(6)は、判別子として比較文字列、アドレスとしてトークン(7)のアドレス、文字列として=、文字列比較可否判別子としてYesを有する。トークン(7)は、判別子として変数、アドレスとしてトークン(8)のアドレス、変数名としてVal2を有する。トークン(8)は、判別子として変数、アドレスとしてNULL、変数名としてUnit2を有する。
トークン比較&抽出対象トークン記憶部104は、図31の第2トークン列を用いて、図30の第1トークン列から基準特性値を抽出する。抽出された情報で変数として指定されたVal1、Unit1、Val2とUnit2の変数名と対応するトークン値を、図32あるいは図33に示すように、変数名とトークン値のテーブル記憶部131に記憶する。
抽出対象トークン出力部105は、図34に示すような出力フォーマットにしたがって、変数名とトークン値のテーブル記憶部131に記憶された出力すべき基準特性の特性値と目標特性の特性値13を出力する。リスト(0)は、出力フォーマットとして文字列%%%%と、変数名リスト(1)のヘッダを有している。文字列%%%%により4つの変数を置き換えることができる。変数名リスト(1)のヘッダによりリスト(1)を読み出すことができる。リスト(1)は、文字番号(i)=1に対応する変数名Val1と、リスト(2)のポインタを有している。図33で変数名Val1に対応するトークン値1.0e+05を出力用文字列に追加する。リスト(2)のポインタによりリスト(2)を読み出すことができる。リスト(2)は、文字番号(i)=2に対応する変数名Unit1と、リスト(3)のポインタを有している。図33で変数名Unit1に対応するトークン値pAを出力用文字列に追加する。リスト(3)のポインタによりリスト(3)を読み出すことができる。リスト(3)は、文字番号(i)=3に対応する変数名Val2と、リスト(4)のポインタを有している。図33で変数名Val2に対応するトークン値258e−06を出力用文字列に追加する。リスト(4)のポインタによりリスト(4)を読み出すことができる。リスト(4)は、文字番号(i)=4に対応する変数名Unit2と、最終リストであることを示すNULLを有している。図33で変数名Unit2に対応するトークン値μAを出力用文字列に追加する。
文字列抽出部12は、出力用文字列を出力することにより、オフリーク電流値Ioffと制御電流値Ionとして、1.0e+05pAと、258e−06μAを抽出し出力することができる。
次に、図29に示すように、調整部21が、シミュレーションの結果であるこの一連のオフリーク電流値Ioffを用いて、オフリーク電流値IoffがLog(Ioff)=-7となるハローイオン注入のドーズ量を内挿あるいは外挿により決定している。このようなオフリーク電流値IoffがLog(Ioff)=-7になるように事前調整因子のハローイオン注入のドーズ量を設定する事前調整を、図12のステップS3において、実験No.1からNo.36の構造について繰り返し実施し、図35に示すように、36種の構造それぞれについて、基準の誤差条件Ni1において、オフリーク電流値IoffをLog(Ioff)=-7に調整するハローイオン注入のドーズ値を求めている。
また、各々の実験No.1からNo.36の構造において、オフリーク電流値IoffをLog(Ioff)=-7に調整するハローイオン注入のドーズ値を用いて、駆動電流値Ionを求めている。これは基準の誤差条件N1における駆動電流値Ionのデータである。
ステップS4では、36回の実験に対応するそれぞれの36個の特性値が、基準値に一致するか否か判定する。直交表の36種のすべての構造について、基準特性であるオフリーク電流値Ioffが基準値Log(Ioff)=-7であるので、36個のすべての特性値が基準値に一致していると判断し、ステップS5に進む。以上で、事前調整が完了する。
なお、36個の特性値の1つでも基準値に一致していない場合は、ステップS1に戻る。ステップS1に戻る場合は、図12に示すように、ステップS1において次の4つの項目の内少なくとも1つを行う。(1)制御因子にするパラメータを変更する。または、制御因子の水準を変更する。(2)交互作用を削減する。具体的には、多水準法やすべり水準法を導入する。(3)調整因子にするパラメータを変更する。または、調整因子の値の変更の許容範囲を変更する。(4)基準特性にする特性を変更する。または、基準特性の基準値を変更する。
ステップS5に進む場合は、ステップS5において、入力データエディター部17が、基準の誤差条件Ni1の他の誤差条件Ni2、Ni3、Ni4について、基準の誤差条件N1で求めた各実験1乃至36の構造に対するハローイオン注入のドーズ量を用いて、シミュレーション用の入力データ列を生成する。シミュレータはこの入力データ列を入力してシミュレーションを実行し、図35に示すように、他の誤差条件Ni2、Ni3、Ni4におけるオフリーク電流値Ioffと駆動電流値Ionを求めている。図35のシミュレーション実験結果では、基準の誤差条件Ni1におけるオフリーク電流値Ioffがすべて同一の値になるよう調整されており、図35の右端のハローイオン注入のドーズ値がこれらの調整をするために用いられている。
ステップS6において、図35のシミュレーション実験結果を用いて、後処理の計算を行った。後処理はオフリーク電流値Ioffと駆動電流値Ionについて、通常の直交表実験で行うSN比、感度などを計算している。図36乃至図39にオフリーク電流値Ioffと駆動電流値Ionについての要因効果図を示す。なお、図36と図39の要因効果図のオフリーク電流値Ioffは対数を取った値に対して示している。図36乃至図39に示した要因効果図においては、ダミー水準K1、K2、W2、W3を用いて誤差を評価している。図21の因子Kと因子Wにおいて、水準値が等しく変化していない水準がダミー水準K1、K2、W2、W3である。図36乃至図39の要因効果図でダミー水準K1とK2に対して現れている効果の差が誤差である。また、ダミー水準W2とW3に対して現れている効果の差が誤差である。これらの誤差を図36乃至図39の各図において横棒の組の間隔で示している。
図36ではオフリーク電流値Ioff の対数log(Ioff)のばらつきを評価するためにSN比の代わりに1/σ2を用いている。σは標準偏差である。大きな1/σ2を与える水準A1乃至W3は、誤差条件Ni3とNi4によって取り入れられる対数log(Ioff)のばらつきに対して、対数log(Ioff)のばらつきをより抑える構造を与える。図36の要因効果図において、ダミー因子Kのダミー水準K1とK2に現れている解析誤差は極めて小さい。また、ダミー因子Wのダミー水準W2とW3に現れている解析誤差も、他の因子の水準依存性に比べて、極めて小さい。これらの解析誤差よりも有意な差を有する水準として選択できる水準B2、C2、E2、G1、I2、L1、N3、O1、Q2、R1、T2、U2、W1を図17中に大きい丸印で示している。2水準の因子の中に5個、3水準の因子の中に8個、計13個の有意な因子と水準値が得られている。
図37に駆動電流値IonのSN比を示す。SN比は、駆動電流値Ionのばらつきの大きさで駆動電流値Ionを割り算したものであり、SN比が大きい場合に駆動電流値Ionのばらつきが小さいことを示す。駆動電流値IonのSN比においても、解析誤差よりも有意な差として9個の有意な因子と水準D2、E2、G1、I1、N3、P1、T2、U2、W1が得られている。
また、図36と図37より、Ioffのばらつきを押さえる水準が、Ionのばらつきを押さえる水準と矛盾せず、両方のばらつきを押さえる水準E2、G1、N3、T2、U2、W1を選択できる結果となっている。
また、図38にIonの感度の要因効果図を示す。感度が大きいほど高い駆動電流値Ionが得られる。図38でダミー水準K1、K2、W2、W3に現れた解析誤差は極めて小さく、多数の有意な因子と水準B2、D2、E2、G1、I2、L1、N3、P1、S1、T1、W1が得られている。
図39にIoffの感度の要因効果図を示す。感度に関して、図39のIoffの要因効果図は、図38のIonの要因効果図と水準に対する同じ依存性を示しており、Ionが高い構造においてIoffも高く、Ionを大きくしIoffを押さえるという課題はトレードオフであることが、図38と図39の要因効果図にも現れている。
実施例1では基準の誤差条件Ni1を基準としてIoffは調整しており、Ioffについては図36で有意な水準を用いてばらつきを小さくすることにし、図39は傾向を確認するのみとして最適条件の決定には用いなかった。これらの解析方針、解析結果、その他の検討に基づいて、実施例1における最適構造として、この最適構造を決定する水準を図40に示すような水準B1、C2、D3、E2、G1、I2、L2、N3、O1、P2、R1、S1、T2、U3、W1に決定している。なお、因子Dが、図21の水準値の表では2水準となっているのに、水準D3となっているのは、図38に見られるように因子DのIon感度への効果が大きいところ、Ionの目標値を満たすために図21の因子Dについての水準2の1.0nmよりもさらに小さな値の0.7nmを水準D3として設けて用いたためである。
ステップS7において、最適化された特性値が目標値を達成しているか否かを判定する。最適化された特性値が目標値を達成しているので、微細MOSFETの構造の最適化を終了する。
なお、最適化された特性値が目標値を達成していなければ、ステップS1に戻り、次の2つの項目の内少なくとも1つを行う。(1)微細MOSFETの構造を再度検討し、変更する。(2)改善を望む特性の特性値の目標値のスペックを見直し、変更する。
このように、事前調整因子を用いる場合、解析誤差が小さく、特性毎のSN比と感度のような多くの要因についての知見が一度に得られるため、これらの特性毎のSN比と感度についての最適条件を一度に求めることができる。また、要因の効果を明瞭に検討できるため、変化させ検討すべき制御因子の選択をより多くの因子の候補の中から行うことができる。また、事前調整することによって本来の構造を基準特性がそろった構造の組に置き換えて解析するため、調整が可能な範囲において、因子の水準値の振れ幅を大きく設定することができる。このため、より広い選択範囲の中でより有効な最適構造を検討することが可能となっている。
また、調整した基準特性については最適化をする必要がないため、この基準特性を含んだ特性間のトレードオフを検討しなくてよい。そこで、基準特性とトレードオフの関係にある最適化を目的とする特性のスペック値を満たす構造の組について高精度の最適化を行うことが可能となっている。
実施例1においては誤差条件Ni1のみを調整を行うための基準の誤差条件として用いたが、調整に用いる基準の誤差条件は、誤差条件Ni1乃至Ni4のうちの1つでなくとも、これらのうちの一部のいくつかまたは全部であってもよい。このように基準の誤差条件が複数の場合は、複数の基準の誤差条件毎に得られた基準特性の平均値が基準値に一致するように事前調整因子を設定すればよい。このようにしても、直交表の36種の構造の各々においては、誤差条件Ni1乃至Ni4の全てにおいて事前調整因子の値は同じになる。同じにするのは、直交表実験で誤差条件によるばらつきを許容するロバストな構造を選択するが、事前調整因子が誤差条件毎に変化すると誤差条件によるばらつきの大きさが正しく取り入れられなくなるためである。
また、実施例1では図35の誤差条件Ni1の調整後のIoff値は全て一致する1e5pA/umを示しているが、これは図29に示したようにIoffが1e5pA/umに一致するように、シミュレーションにより求めたIoffのハローイオン注入のドーズ量に対する依存性のグラフからの内挿でハローイオン注入のドーズ量を求めたためである。内挿を用いずに、基準値に近いIoff値を示すハローイオン注入のドーズ量を用いてシミュレーションを行って算出してもよい。基準値に一致せず基準値に近い基準特性の特性値をシミュレーションに用いると、最適化を目的とする特性の特性値は調整誤差を有することになる。しかし、調整誤差は小さくなっているので、実施例1の効果を発揮し、解析誤差も小さくなり、高精度の最適化を行うことができる。また、このように調整誤差を有していても、36種の各々の構造に対して、実験の各誤差条件Ni1乃至Ni4について事前調整因子の値が実質的に一致している場合には、誤差条件Ni1乃至Ni4によるばらつきはロバスト性の解析に正しく反映される。
実施例1の事前調整因子を用いる方法と比較して、従来の直交表実験に基づく最適化方法においては、まず、事前調査において制御因子、誤差因子、また、目的に応じて信号因子、等を設定する。次に、事前調整を行うことなく、直交表と水準値、すべり水準等を設定した後、直交表による実験条件に従って実験を行う。事前調整を行わない従来の最適化方法においては、すべり水準等を用いても交互作用を十分に小さくすることができず、一般にMOSFETの場合の直交表実験の解析誤差はきわめて大きくなる場合がある。このため、有意な因子と有意な水準を少しか得ることができない場合がある。有意な因子と水準を得るために解析誤差を小さくするために、因子の水準値のふり幅を小さくするなどの方法もあるが、この場合、最適構造を検討する領域が狭くなり、有効な最適化を行うことができない場合がある。
直交表としては、実施例1で用いたL36直交表の他にも、混合型の通常型L18直交表、多水準L18直交表、L108直交表、また、さらに大きな規模の直交表も、実施例1で使用可能である。また、より小さな規模の直交表も実施例1で使用することができる。いずれの場合も、実施例1と同様な効果が得られる。
実施例1においては、図12のステップS2の事前調整の計算は増えるが、計算機が計算することにより、事前調整は容易に実行することができる。また、複数の因子について直交表実験を用いることにより、複数変数について応答曲面を用いる場合よりも、特性値算出のためのシミュレーションの回数を大幅に削減できる。また、多変数について応答曲面を用いる場合と比べて、多因子について直交表実験を用いる場合の方が、多変数についての最適化が少ない実験により可能である。
なお、実施例1においては、図12のステップS2の事前調整およびステップS3の直交表実験を計算機シミュレーションを用いて行ったが、この計算機シミュレーションにかえて試作実験を含めることもできる。試作実験として、図29に示すように例えばハローイオン注入のドーズ量を数種変化させたMOSFETの試作を行い、それらのMOSFETのIoffを測定する。そして、計算機を用いて、Ioffの測定値の内挿によりIoff値が基準値に等しくなるためのドーズ量を求めることができる。試作したMOSFETのIonを測定することにより、求められたドーズ量を有するMOSFETのIonの値も同様にIonの測定値の内挿により求めることができる。これらのMOSFETについて上記の内挿により事前調整を行ったドーズ量をして用い、実施例1の図12のステップS5以降の直交表実験を行うことができる。
また、MOSFETの試作では、MOSFETはウェハ上に多数作製される。この多数のMOSFETの測定値を誤差条件として用いることができる。
また、実施例1においてはIoffの値を基準特性として設定したが、他の特性を基準特性として用いることもできる。MOSFETの場合には、しきい電圧、ドレイン耐圧、また、例えばゲート長ばらつきに対するIonなどのばらつきの大きさなどで評価できる短チャネル効果、ゲートリーク電流値、ゲート端またはチャネル表面などにおける電界の強さ、などである。特定の特性の最適化に応じたパラメータのトレードオフの検討において、最適化すべき特性の中でトレードオフの関係にある特性が、基準特性の候補となる。そして、特性値を十分に増減制御できるような事前調整因子が設定できるような特性を基準特性として選択することが必要である。このために、例えばシミュレーションにおいて、図12のステップS1において、事前調査を行うことが有効である。事前調査においては、最適化に必要な因子(変数)の数に対応した直交表実験を用いることも有効である。事前調査において、最適化する特性として、例えば、MOSFETのゲートリーク電流値、オフリーク電流値、基板電流値、短チャネル効果によるIonなどの特性を任意に選択する。選択した特性のばらつきなどの特性の許容範囲を次に設定する。さらに、MOSFETの構造を様々に変化させてシミュレーションを行い、選択した特性の特性値を算出する。あるいは、構造を様々に変えてMOSFETを試作し、選択した特性の特性値を測定する。算出あるいは測定された特性値が、許容範囲に設定されることが困難な特性を抽出する。この抽出された特性を基準特性として選択することができる。さらに、この基準特性に対するMOSFET構造因子の感度をシミュレーションにより算出する。感度が大きく基準特性の増減に強く影響を与える構造因子を抽出し、抽出された因子を事前調整因子に設定することができる。
また、基準特性は2つ以上を用いることができる。例えば、Ioffを基準特性とし、同時に、基板電流値を2つ目の基準特性とすることができる。この時、事前調整因子も2つ用いることが望ましい。例えば、ハローイオン注入ドーズ量とソース・ドレインイオン注入ドーズ量などが事前調整因子の候補となる。この時、図12のステップS2の事前調整因子の値を決定する部分では、これら2つの事前調整因子の値を決定することになる。また、複数のMOSFETやキャパシタによる小規模回路についてL108直交表以上の大きな直交表を用いて最適化する場合などに、それら複数のMOSFETのそれぞれのしきい電圧を基準特性とすることもできる。
また、1つの基準特性に対して事前調整因子は1つであることが望ましいが、事前調整因子の望ましい値の範囲における調整が困難な場合、2つ以上の調整因子を組み合わせて用いることもできる。例えば、ハローイオン注入ドーズ量を増加させる調整によってIoff値を下げる調整をしようとして、許容できるドーズ量よりも高いドーズ量が必要となる場合に、ハローイオン注入ドーズ量とハローイオン注入エネルギーの2つを組み合わせる。ハローイオン注入エネルギーを低くすることにより、ハローイオン注入ドーズ量は許容範囲の低い値のまま、Ioff値を下げることができる。
また、3つ以上のより多くの事前調整因子を用いて基準特性を基準値に調整する時、この調整作業自体を一つの最適化問題と考え、この基準特性を基準値に調整するという最適化問題に実施例1の最適化方法を用いることができる。即ち、実施例1の最適化方法を2段階以上に用いて最適化を行うことができる。例えば、いくつかのMOSFETによりなる小規模回路の回路構造の最適化を行う場合に、この回路の待機時の消費電力を基準特性として実施例1の図12および図13に示した最適化を実施することができる。ここで、待機時の消費電力を基準値とするためにMOSFETの構造パラメータを事前調整因子として用いる時、この待機時の消費電力を基準値に一致させる調整作業自体を新たに一つの最適化問題と考えることができる。この新たな最適化問題において、例えば、この小規模回路を成すMOSFETのIoff値を新たな基準特性とし、例えば実施例1において説明した図12および図13に示した最適化を適用することができる。
また、実施例1の事前調整因子を用いて基準特性を事前に基準値に揃えて最適化の検討を行うことは、直交表実験でなくとも、応答曲面法を用いて検討する場合にも有効である。例えば、上記のように2段階以上に実施例1の最適化方法を用いる場合、例えば2段階目には2因子2水準などの小さな規模の最適化を行うと十分である場合も多い。このような場合に小さな規模の最適化であっても実施例1の事前調整因子を用いて基準特性を事前に基準値に揃えて最適化を効率的に行うことができる。
また、調整因子による調整の結果が調整因子の望ましい値の範囲の中で得られなかった場合に、それが解析の全体において少数の場合に限られる場合、例えばL36直交表の場合に2ないし3個以下の場合であるならば、調整因子の値が望ましい値の範囲の中ではない場合を含んでいても、直交表実験の全体を行い、要因効果図などの検討を行うことが有効である場合が多い。要因に対する特性の依存性は正しく求められており、最適化についての知見が得られることが多いためである。
また、図12のステップS4で直交表実験の一組の全実験に対して調整をすることができなかった場合、ステップS4のNoに進み、ステップS1において、(1)の制御因子の種類または水準値の見直しを行うことが有効な場合が多い。事前調整因子の値が設定困難になった場合について調整が可能になるように制御因子の水準値の取り直しを行う。例えば、ハローイオン注入ドーズ量を事前調整因子とした場合、或る構造で極端に高いドーズ量を必要とする結果が得られた時、この構造で用いられたチャネルイオン注入ドーズ量の水準値をより高い値に取り直す、などの場合がある。このように水準値を見直す場合、解析の直交性を保つため、一般に、それまでに終了していた部分の事前調整の作業も、部分的に再計算を行う必要が生じる。水準値の取り直しによりそれまでに終了していた部分のどれだけを再計算する必要が生じるかは、取り直した水準がそれまでに終了していた部分のどれだけで用いられていたかを計数することで把握できる。
また、同じくステップS4でNoに進んだ場合に、ステップS1において、(2)のすべり水準を加えることが有効な場合も多い。事前調整は事前調整因子によって系の交互作用を平坦化しているのであり、調整しきれない交互作用がある場合は、他の制御因子にすべり水準を用いて交互作用を軽減することにより、調整因子による調整の負担を小さくすることができる。
また、同じくステップS4でNoに進んだ場合に、ステップS1において、(3)のより調整力のある因子を調整因子として用いることや、(4)の他の特性変数を基準変数として用いることもできる。
実施例1によれば、因子の値が互いに直交するよう設定して解析する最適化問題において、基準変数の値が事前に調整された構造に対応する事前調整因子の値を求めるという部分を、計算機を用いて容易に行うことができる。具体的には、最適化作業において事前調整因子を用いて基準変数の値を調整するために、調整因子を変種々変化させて基準変数を求め、調整作業を可能にするという部分を、計算機を用いて容易に行うことができる。
事前調整因子は、制御しようとする互いに直交する値を持つ制御因子以外の因子から選択する。このことにより、直交表を成す制御因子の自由度以外の自由度から事前調整因子を用いる最適化方法が実施できる。
実施例1によれば、直交表をなさない場合の最適化作業の場合にも効率的な最適化を実現できる。互いに直交する場合に限らず、因子の値の複数の組に対応する特性値を求め特性値の最適値とそれを与える因子の値の組を求めるパラメータ最適化の問題において、事前に基準変数の値が基準値となるよう調整して目標特性を求めればよい。このように、実施例1は、2変数2水準法等の小さな規模の最適化においても有効である。
実施例1において、目標特性の特性値の許容範囲を設定し、許容範囲を満たさない目標特性の特性値を与える目標特性を基準特性の候補とし、この候補の中から基準特性を設定する。このことにより、基準特性の選択をシミュレーションに基づいて容易に行うことができる。
また、2つ以上の目標特性の特性値の許容範囲を設定し、等しい構造において同時に許容範囲を満たさない目標特性の特性値を与える2つ以上の目標特性を基準特性の候補とし、この候補の中から基準特性を設定する。このことにより、基準変数の選択をトレードオフの観点からシミュレーションに基づいて容易に行うことができる。
目標特性の特性値のばらつきの許容範囲を設定し、許容範囲を満たさない目標特性の特性値のばらつきを与える目標特性を基準特性の候補とし、この候補の中から基準特性を設定する。このことにより、基準特性の選択をばらつきの観点からシミュレーションに基づいて容易に行うことができる。
また、実施例1において、基準特性の感度を計算する。感度の高い因子を事前調整因子の候補にする。この候補の中から事前調整因子を選択する。このことにより、基準変数に対して有効な事前調整因子をシミュレーションに基づいて容易に選択することができる。
また、実施例1において、事前調整因子の調整が設定された許容範囲内で可能でなかった場合に、制御因子の値を再設定して再調整する。このことにより、直交表実験においては様々な構造を検討するため、事前調整因子によって調整しきれない場合でも、直交表をなす制御因子の水準を取り直すことによって調整できる。
また、実施例1において、基準特性の基準値からのずれの許容値を設定し、この基準特性に対応する事前調整因子の調整値を2分法または他の反復法により求め、基準特性の基準値からのずれを許容値以下にする。このことにより、事前調整因子を用いて基準特性が基準値に調整する事前調整を、設定された許容値以内で計算機上で行うことができる。
また、実施例1において、制御因子の水準値の設定にいわゆるすべり水準を用いる。特に、事前調整因子と関連のある効果をもつ制御因子についてすべり水準を用いることにより、事前調整因子の調整値の実験間の差を狭めることができ、調整値を事前調整因子の設定可能な範囲内に収めることが容易になる。
また、実施例1において、2つ以上の基準特性と2つ以上の事前調整因子を設定し、これらが成す2次元以上の変数空間内でこれらの基準特性がそれぞれの基準値となるよう複数の事前調整因子の調整値を計算機を用いて定める。このことにより、多数の目標特性を有する系において、2つ以上の目標特性を基準特性に選択しそれぞれの基準値に設定する束縛を与えることができ、他の目標特性の特性値の最適化を行うことができる。
また、実施例1において、事前調整因子の調整が、設定された許容範囲内で可能でなかった場合に、許容範囲を超えて調整値を求める。そして、調整を行った結果調整因子の値が許容範囲を超える場合に、許容範囲を超えることを許して解析を行う。許容範囲を超えている場合、実際の製造や適用には用いることができなくても、一般に特性値の因子への依存性は正しく求められており、最適化の検討は正しく行うことができるからである。
また、実施例1において、基準特性の数と事前調整因子の数を同じにする。このことにより、調整因子の調整値の曖昧さをなくすことができる。また、基準特性の数よりも事前調整因子の数を多くする。このことにより、事前調整因子の値を許容値内で容易に調整することができる。
また、実施例1の最適化方法を2回以上行う。このことにより、構造全体あるいは系全体の効率的な最適化を可能にすることである。
以上、実施例1によれば、多変数に依存する系に対して計算機を用いて極めて効率的に高精度な最適化を実現できるようになる。また、実施例1によれば、特性値の最適値とそれを与える因子の値の組を求めパラメータの最適化を行うことによって、被処理体として半導体基板を用いた場合にその条件に基づいた処理を行うことによって、容易に高性能な半導体装置を製造することが可能になる。
実施例2は、実施例1の事前調整を用いた直交表実験手法を、半導体装置の製造のプロセス条件最適化に適用したものであり、特に、n型MOSFETのソース・ドレイン拡散層について、接合リーク電流を低減するためのイオン注入条件と活性化熱工程の最適化に応用したものである。
図41に示すように、最適化を行ったn型MOSFETの場合、シリコン基板1のp型シリコン領域にソース・ドレイン拡散層3をn型不純物拡散層で形成してpn接合を形成する。消費電力を低減するために、シリコン基板1とソース・ドレイン拡散層3との間に形成されたpn接合に流れる接合リーク電流を低く抑える必要がある。接合リーク電流の周辺成分は0.1pA/μm未満、面積成分は0.1pA/μm2未満にする必要がある。接合リーク電流の周辺成分とは、ソース・ドレイン拡散層3の周辺部とシリコン基板1の接合に生じる接合リーク電流であり、ソース・ドレイン拡散層3の周辺長当たりの線密度で表される。接合リーク電流の面積成分とは、ソース・ドレイン拡散層3の底面とシリコン基板1の接合に生じる接合リーク電流であり、ソース・ドレイン拡散層3の底面積当たりの面密度で表される。
他方、ソース・ドレイン拡散層3を回路配線(図示せず)へ接続することにより生じMOSFETの主電流を減少させる寄生抵抗となる配線コンタクト抵抗と拡散層シート抵抗を低減するため、ソース・ドレイン拡散層3の上にシリサイド層4を貼り付けている。このシリサイド層4を拡散層3の上面に形成する際に生じる欠陥などの影響により、ソース・ドレイン拡散層3からシリコン基板1への接合リーク電流が増大するという問題が生じている。この接合リーク電流を低減するため、ソース・ドレイン拡散層3を形成するイオン注入のイオン種、イオン注入の加速エネルギーやドーズ量、注入後の活性化熱工程条件、などを最適化することが課題である。
発明者らは、図12のステップS1の事前調査において、この最適化は、次の4つの要因によって複雑なものとなっていることを明らかにした。
(1)ソース・ドレイン拡散層3は半導体ウェハ1に砒素(As)、燐(P)、などのn型の不純物イオンを注入して形成される。そして、接合リーク電流の増減はこれらのどのn型不純物を用いるかに依存する。
図42に、不純物イオンの砒素と燐毎に、接合リーク電流(Ileak)の周辺成分のイオン注入ドーズ量に対する依存性を示す。図42では、イオン注入量を増加させるに伴いIleakが減少するが、ある注入量を境にしてIleakは増加する。この理由は次のように説明される。注入量が少ない場合には、拡散層3にコンタクトするシリサイド層4の直下に1E18〜1E19cm-3程度以上の高濃度の不純物拡散層3が十分に形成されず。シリサイド層4の下のn+拡散層3がすべて空乏化されないだけの十分な厚みだけ形成されないために、接合リーク電流が大きくなる。従って、イオン注入量を増加させるとシリサイド層4の下に十分な厚みのn+拡散層3が形成されて接合リーク電流は低下する。ところが、3E15cm-2以上の高い注入量のイオン注入を行うと熱処理によって結晶欠陥が十分に回復できないために接合リーク電流が注入量の増加に伴って増加する。図42に示すように、この接合リーク電流の大きさは注入イオン種によって異なっている。注入イオン種が砒素である場合の接合リーク電流は、注入イオン種が燐である場合の接合リーク電流に比較して大きい。
(2)図43と図44に示すように、拡散層シート抵抗ρsやコンタクト抵抗ρcも、イオン注入ドーズ量などの工程条件に依存する。図43に示すように、拡散層シート抵抗ρsは、イオン注入量が増加するほど低下する。また、拡散層シート抵抗ρsの大きさは注入イオン種によって異なっている。注入イオン種が砒素である場合の拡散層シート抵抗ρsは、注入イオン種が燐である場合の拡散層シート抵抗ρsに比較して大きい。図44に示すように、コンタクト抵抗ρcは、イオン注入量が増加するほど低下する。また、コンタクト抵抗ρcの大きさは注入イオン種によって異なる場合がある。3E14cm-2以上の注入量のイオン注入を行うと、注入イオン種が砒素である場合のコンタクト抵抗ρcは、注入イオン種が燐である場合のコンタクト抵抗ρcに比較して大きい。
(3)図45に示すように、MOSFET特性のばらつきに強く影響を与える半導体基板の深さ方向の不純物分布のpn接合の接合深さも、不純物イオン注入のドーズ量とイオン種に依存している。一般に、MOSFET特性ばらつきを小さくするためにはソース・ドレイン拡散層3と半導体基板1の接合深さは浅い方が望ましく、接合深さを浅くするためには図45に示すように、ドーズ量は小さい方が望ましい。また、注入イオン種が砒素である場合の接合深さは、注入イオン種が燐である場合の接合深さに比較して浅い。したがって、接合深さを浅くするためには、燐を用いるよりも、砒素を用いる方が望ましい。しかし、図42、図43、図44に示すように、砒素の方が燐よりも大きな接合リーク電流Ileakおよび寄生抵抗(拡散層抵抗ρsやコンタクト抵抗ρc)を示している。また、しかし、イオン注入ドーズ量を小さくするとリーク電流Ileakが大きくなると共に寄生抵抗ρs、ρcが大きくなる。
(4)図42に示した接合リーク電流Ileakや図43と図44に示した寄生抵抗ρs、ρcは、接合深さに影響を与えないような非常に短時間の高温アニールを追加することによって低減できる。しかし、このような高温短時間アニールによる接合リーク電流の低減効果も不純物種に依存していると考えられる。これらの(1)〜(4)の要因を考慮して最適化を行うことは膨大な実験を必要としていた。
実施例2では、(1)〜(4)の要因を考慮して、ソース・ドレイン不純物のイオン注入後の接合深さを基準特性にした。なお、接合深さは制御因子Aでもあるので、ソース・ドレイン不純物のイオン注入後の接合深さが直交表実験の全実験について指定の水準値になるように事前に事前調整因子を調整した後に実験を行った。事前調整因子としては、異なるイオン種に対して、加速エネルギーとドーズ量とを事前調整因子にした。また、直交表実験はL18直交表にしたがっている。
制御因子の内訳とその水準値を図48に示す。直交表の制御因子Bをイオン注入不純物種としている。図48に示すように、イオン注入不純物種の水準1は砒素のみであり、水準2は燐のみであり、水準3は砒素と燐の両方であるという3水準で検討した。制御因子C、D、E、Fは不純物分布に影響を与えない極短時間の高温アニールについての因子である。具体的には、シリコン基板1のウェハ下面から低温で予備加熱した上で、ウェハの上面からの光照射による極短時間高温アニールを行った。高温アニールのための上面からの照射光の照射エネルギーを因子Cとしている。下面からの予備加熱の予備加熱温度を因子Dとしている。上面からの高温アニールの回数をEとしている。下面からの予備加熱の予備加熱時間を因子Fとしている。
このようにウェハ下面から予備加熱した上で上面からも加熱して極短時間のアニールを行うので、例えば、因子Cの水準1、C1と、因子Dに水準1、D1の条件においては、下面からの450℃の加熱に加えて上面から500℃の極短時間の加熱が行われ、ウェハ上面は極短時間の間950℃となる。ウェハ上面は極短時間の間950℃となることにより、不純物の活性化と供に結晶欠陥も減少し、接合リーク電流の低減の効果が得られる。
また、この活性化のための高温アニールを行うよりも前に予め不純物プロファイルに影響を与えない低温アニールを付け加えることに関する制御因子も取り入れ、この制御因子をGとしている。
また、ソース・ドレイン拡散層3に貼り付けるシリサイド層4のスパッタ膜の厚さを制御因子Hとしている。
このように、因子Aの接合深さと因子Bのイオン種以外の因子はいずれもソース・ドレイン不純物プロファイルに影響を与えない因子とした。
事前調整因子であるソース・ドレイン拡散層3のイオン注入のドーズ量と加速エネルギーを用いてイオン注入後の接合深さを調整した結果を図46と図47に示す。この調整はイオン注入についての計算機シミュレーションを用いて行った。図46はイオン注入に砒素と燐を用いた場合、図47は燐のみを用いた場合である。ともに接合深さは、制御因子の水準2の80nmを基準値2として調整されている。したがって、接合深さが、制御因子の水準1の100nmである基準値1に対する調整も別途行われている。
図46の砒素と燐を用いた場合では砒素のみによって接合深さが決まっている。燐は、基板表面部分に分布させることにより、接合深さには影響を与えないが、コンタクト抵抗ρcを小さくしている。接合深さは、0.078μmである。図46の不純物の分布は、図48の因子Bの水準3、B3に対応する。
図47に示すように、因子Bの水準2、B2に対応する燐を用いた場合の接合深さは、0.082μmであり、図46の因子Bの水準3、B3の接合深さと同じに調整されている。
図48の因子Bの水準1、B1の砒素のみに対応する不純物分布には、図46のグラフから燐の分布を取り除いた砒素の分布が対応する。因子B以外の因子はいずれも不純物分布に影響を与えないため、この調整により、直交表実験の全ての実験に対して接合深さが同じになるように調整することができる。
実施例2では、事前調整因子として加速エネルギーとドーズ量を用い、シミュレーション計算の入力データにおいて加速エネルギーとドーズ量の2つのパラメータを変化させ、接合深さという基本特性の特性値を基準値1の0.100μmと基準値2の0.080μmに一致させる調節をした。事前調整する基準特性として異なる不純物についての接合深さを用いたことが実施例2の特徴の一つである。図42から図44に示したように、接合リーク電流の値やシート抵抗値ρsは不純物種依存性を持つが、この不純物種依存性の一部分はそれぞれ異なる不純物を用いた場合の接合深さが異なることに起因している。接合深さを調整して実験間で一定にすることにより、直交表実験における接合深さに関わる交互作用を低減した不純物種の依存性を接合リーク電流、シート抵抗値ρs、コンタクト抵抗値ρcに関して検討することができる。また、1個の基準特性を調節するために事前調整因子を2つ用いたことも、実施例2の特徴の一つである。
図49に、実施例2で行った実験条件のL18直交表を示す。半導体装置の製造においては、複数のウェハをロットとして一連の製造工程を実施する。実施例2においては、図49に示した18種の実験を実施するためのウェハを含むロットを準備し、制御因子A乃至Hに関する最適化する工程の前後の工程を単一の条件でロットに対して実施し、最適化する工程の部分について表2に示した条件によってロットを分割し工程を実施することにより、直交表実験を行った。このように、半導体装置の製造工程におけるロット内のウェハを分割して製造プロセスを実施する実験において注目した基準特性を調節して直交表実験を行ったことが、本実施例の他の特徴である。また、ウェハ面内に製造される複数の半導体装置について、異なる位置の22個の半導体装置のn型MOSFETを測定して誤差因子とし、ウェハ面内位置依存性が小さくなるように最適化した。
図50に、最適化条件を用いた場合の接合リーク電流の累積頻度分布を示す。図50に示すように従来例と比較して接合リーク電流は2桁改善することが確認された。さらにNiSi電極とのコンタクト抵抗値ρcも従来の3E-7Ω・cm2から1E-7Ω・cm2以下に改善された。
実施例2によれば、特性値の最適値とそれを与える因子の値の組を求めパラメータの最適化を行うことによって、被処理体として半導体基板を用いた場合にその条件に基づいた処理を行うことによって、容易に高性能な半導体装置を製造することが可能になる。
実施例3では、バイポーラトランジスタの増幅率(hFE)のバラツキを改善するための最適化方法について説明する。
バイポーラトランジスタは、アナログ系ICの中で使用されている。バイポーラトランジスタの増幅率(hFE)のバラツキを低減することにより、アナログ系ICの歩留りを良くできる場合がある。このことにより、アナログ系ICの収益性が改善することが必要な場合が多い。
この増幅率(hFE)のバラツキを抑える際には、同時に、コレクター/エミッター間電圧(Vce)が振れてもアーリー電圧VAが変わらないことが望まれる。アーリー電圧VAとは、飽和領域のIc-Vce特性を延長した直線のコレクタ電流Ic=0すなわちコレクタ/エミッター間電圧(Vce)軸上におけるコレクタ/エミッター間電圧(Vce)値である。
この増幅率(hFE)のバラツキを改善するための最適化方法をタグチメソッドを用いて行う手順を図12のフローチャートにしたがって説明する。
まず、ステップS1において、制御因子、誤差因子、事前調整因子、基準特性及び最適化を目的とする出力特性を設定する。
具体的に。制御因子としては、バイポーラトランジスタの製造パラメータの以下の5つの因子を選択している。これらの5つの因子に対して、それぞれ3つの水準を設定している。
(1)ベースイオン注入のボロンイオンドーズ量
(2)ベースイオン注入のボロンイオン加速電圧
(3)エミッタイオン注入のヒ素イオンドーズ量
(4)エミッタアニール温度
(5)エミッタアニール時間
誤差因子としては、バイポーラトランジスタの製造バラツキを評価するために、以下の2つの因子を選択している。これらの2つの因子に対して、それぞれ最大値(Max)と最小値(Min)の2つの水準を設定している。
(1)ベースイオン注入時のバッファシリコン酸化膜(SiO2)膜厚
(2)エミッタイオン注入時のバッファシリコン酸化膜(SiO2)膜厚
さらに、基準特性として、アーリー電圧VAを選択している。事前調整因子としては、エミッタイオン注入のヒ素イオン加速電圧を選択している。最適化を目的とする出力特性としては、増幅率(hFE)を選択している。
ステップS1において、L18直交表に制御因子と誤差因子とそれらの水準を割り付ける。さらに、2水準ずつ有する2つの誤差因子から、水準を組み合わせて4つの誤差条件N1乃至N4を生成する。誤差条件N1は、誤差因子(1)と(2)の水準が共に最大値の場合である。誤差条件N2は、誤差因子(1)の水準が最大値であり、誤差因子(2)の水準が最小値である場合である。誤差条件N3は、誤差因子(1)の水準が最小値であり、誤差因子(2)の水準が最大値である場合である。誤差条件N4は、誤差因子(1)と(2)の水準が共に最小値の場合である。
ステップS2とS3において、誤差条件N1での、L18直交表の各18個の実験について、アーリー電圧VAが基準値、例えば-50Vになるように事前調整因子であるエミッタイオン注入のヒ素イオンの加速電圧を調整する。なお、アーリー電圧VAを基準値に設定するためには、事前調整因子の水準を変化させた複数の水準毎に複数のシミュレーションを行い複数のアーリー電圧VAを算出する。算出された複数のアーリー電圧VAと複数の水準から内挿して、アーリー電圧がVAが基準値になるエミッタイオン注入のヒ素イオンの加速電圧を算出し決定する。このような調整の複数回のシミュレーションと事前調整因子の水準の決定を、計算機において制御ソフトウェアを用いて自動的に実施する。
ステップS4において、誤差条件N1での、L18直交表の18個のすべての実験について、基準特性であるアーリー電圧VAが基準値に設定できているか判定する。アーリー電圧VAが基準値に設定できているので、ステップS5に進む。
ステップS5において、誤差条件N1でのL18直交表の18個の実験それぞれに求めた事前調整因子の水準値を用いて、誤差条件N2〜N4毎のL18直交表の18個の実験それぞれで増幅率(hFE)を求める。
ステップS6において後処理を行う。SN比と感度を分析し、増幅率(hFE)のバラツキを小さすると同時に、増幅率(hFE)を目標値に近づける制御因子の水準を選択する。
ステップS7において、選択された制御因子の水準により増幅率(hFE)が目標値を達成できたかを判定する。選択された制御因子の水準を用いてシミュレーションを行い、増幅率(hFE)を算出する。算出された増幅率(hFE)を目標値と比較する。算出された増幅率(hFE)が目標値を満足しているので、実施例3の最適化を終了する。以上のような手順の最適化により、アーリー電圧VAを一定値に固定しているので、アーリー電圧VAのバラツキと増幅率(hFE)のバラツキの交互作用が抑えられ、増幅率(hFE)のバラツキを小さくする制御因子とその水準を容易に抽出することが出来る。
実施例3によれば、特性値の最適値とそれを与える因子の値の組を求めパラメータの最適化を行うことによって、被処理体として半導体基板を用いた場合にその条件に基づいた処理を行うことによって、容易に高性能な半導体装置を製造することが可能になる。
図51に示すように、図1のシミュレーションの出力値11が出力され閾値電圧Vthを抽出する場合を例に、文字列抽出部12の機能を具体的に説明する。
まず、図3のファイル読み込み部101は、シミュレーション出力値11のファイル全体を読み込む。
トークン分割部103は、シミュレーション出力値11を、適用フォーマットに基づいて複数のトークンに分割する。適用フォーマットは、複数のトークン間に空白文字が配置されているという情報を有している。図51の下部に示すように、トークン分割部103は、例えば閾値電圧Vthに関する第1トークン乃至第5トークンを分割し、分割された複数の第1乃至第5トークンを並べた第1トークン列を生成する。
トークン比較&抽出対象トークン記憶部104は、適用フォーマットに基づいて、第1トークン列から基準特性値が抽出可能な第2トークン列を生成する。
図52に示すように、第2トークン列は、トークン(1)乃至(5)毎に、比較文字列か変数かの判別子、第2トークン列において当トークンの次に配列される記憶対象トークンのアドレス、文字列、文字列比較可否判別子、変数名を有する。具体的に、トークン(1)は、判別子として比較文字列、アドレスとしてトークン(2)のアドレス、文字列としてVth、文字列比較可否判別子としてYesを有する。トークン(2)は、判別子として比較文字列、アドレスとしてトークン(3)のアドレス、文字列として(current)、文字列比較可否判別子としてYesを有する。トークン(3)は、判別子として比較文字列、アドレスとしてトークン(4)のアドレス、文字列として=、文字列比較可否判別子としてYesを有する。トークン(4)は、判別子として変数、アドレスとしてトークン(5)のアドレス、変数名としてValを有する。トークン(5)は、判別子として変数、アドレスとしてNULL、変数名としてUnitを有する。
トークン比較&抽出対象トークン記憶部104は、図52の第2トークン列を用いて、図51の第1トークン列から閾値電圧Vthを抽出する。抽出された情報で変数として指定されたValとUnitの変数名と対応するトークン値を、図53あるいは図54に示すように、変数名とトークン値のテーブル記憶部131に記憶する。
抽出対象トークン出力部105は、図55に示すような出力フォーマットにしたがって、変数名とトークン値のテーブル記憶部131に記憶された出力すべき閾値電圧Vthを出力する。リスト(0)は、出力フォーマットとして文字列%%と、変数名リスト(1)のヘッダを有している。文字列%%により2つの変数を置き換えることができる。変数名リスト(1)のヘッダによりリスト(1)を読み出すことができる。リスト(1)は、文字番号(i)=1に対応する変数名Valと、リスト(2)のポインタを有している。図53で変数名Valに対応するトークン値0.11675091を出力用文字列に追加する。リスト(2)のポインタによりリスト(2)を読み出すことができる。リスト(2)は、文字番号(i)=2に対応する変数名Unitと、最終リストであることを示すNULLを有している。図53で変数名Unitに対応するトークン値Vを出力用文字列に追加する。
文字列抽出部12は、出力用文字列を出力することにより、閾値電圧Vthとして0.11675091Vを抽出し出力することができる。
実施例4によれば、特性値の最適値とそれを与える因子の値の組を求めパラメータの最適化を行うことによって、被処理体として半導体基板を用いた場合にその条件に基づいた処理を行うことによって、容易に高性能な半導体装置を製造することが可能になる。
図56に示すように、図1のシミュレーションの出力値11が出力され容量計算結果を抽出する場合を例に、文字列抽出部12の機能を具体的に説明する。
まず、図3のファイル読み込み部101は、図56のシミュレーション出力値11のファイル全体を読み込む。
トークン分割部103は、シミュレーション出力値11を、適用フォーマットに基づいて複数のトークンに分割する。適用フォーマットは、複数のトークン間に空白文字が配置されているという情報を有している。分割された複数のトークンを並べた第1トークン列を生成する。
トークン比較&抽出対象トークン記憶部104は、適用フォーマットに基づいて、第1トークン列から容量値が抽出可能な第2トークン列を生成する。
図57に示すように、第2トークン列は、トークン(1)乃至(5)を有するだけでなく、第3トークン列を有する。第3トークン列はトークン(5−1)乃至(5−3)を有する。トークン(1)乃至(5)とトークン(5−1)乃至(5−3)は階層が異なり、トークン(5−1)乃至(5−3)は、トークン(1)乃至(5)の下の階層である。
第2トークン列は、トークン(1)乃至(5)毎に、比較文字列か変数か繰り返しかの判別子、第2トークン列において当トークンの次に配列される記憶対象トークンのポインタ、文字列、文字列比較可否判別子、変数名、繰り返し終了条件、繰り返しのあるリストすなわち第3トークン列へのポインタを有する。具体的に、トークン(1)は、判別子として比較文字列、次へのポインタとしてトークン(2)のアドレス、文字列として#容量計算結果#、文字列比較可否判別子としてYesを有する。トークン(2)は、判別子として比較文字列、次へのポインタとしてトークン(3)のアドレス、文字列として電極名、文字列比較可否判別子としてYesを有する。トークン(3)は、判別子として比較文字列、次へのポインタとしてトークン(4)のアドレス、文字列として電圧(V)、文字列比較可否判別子としてYesを有する。トークン(4)は、判別子として比較文字列、次へのポインタとしてトークン(5)のアドレス、文字列として容量(F)、文字列比較可否判別子としてYesを有する。トークン(5)は、判別子として繰り返し、次へのポインタとしてNULL、繰り返し終了条件としてトークンが#####か否かの判断結果を返す関数へのポインタ、繰り返し用の第3トークン列へのポインタとしてトークン(5−1)へのポインタを有する。
第3トークン列は、トークン(5−1)乃至(5−3)毎に、比較文字列か変数か繰り返しかの判別子、第3トークン列において当トークンの次に配列される記憶対象トークンのポインタ、文字列、文字列比較可否判別子、変数名、繰り返し終了条件、繰り返しのあるリストすなわち後段の階層の第4トークン列へのポインタを有する。具体的に、トークン(5−1)は、判別子として変数、次へのポインタとしてトークン(5−2)のアドレス、変数名としてElecを有する。トークン(5−2)は、判別子として変数、次へのポインタとしてトークン(5−3)のアドレス、変数名としてVoltを有する。トークン(5−3)は、判別子として変数、次へのポインタとしてNULL、変数名としてCapaを有する。
トークン比較&抽出対象トークン記憶部104は、図56のシミュレーション出力値11をトークン分割した第1トークン列から、図57の第2トークン列に一致するトークン列を抽出する。抽出された情報で変数として指定されたElec、VoltとCapaの変数名とこれらの変数名と配列(繰り返し番号)に対応するトークン値を、図58に示すように、変数名とトークン値のテーブル記憶部131に記憶する。
抽出対象トークン出力部105は、図59に示すような出力フォーマットにしたがって、変数名とトークン値のテーブル記憶部131に記憶された電極名ごと電圧と容量を出力する。リスト(0)は、出力フォーマットとして文字列%%%%%%%%%%%%と、変数名リスト(1)のヘッダを有している。文字列%%%%%%%%%%%%により12個の変数を置き換えることができる。変数名リスト(1)のヘッダによりリスト(1)を読み出すことができる。リスト(1)は、文字番号(i)=1に対応する変数名Elec、繰り返し番号n=1と、リスト(2)のポインタを有している。図58で変数名Elecと繰り返し番号n=1に対応するトークン値、DRAINを出力用文字列に追加する。リスト(2)のヘッダによりリスト(2)を読み出すことができる。リスト(2)は、文字番号(i)=2に対応する変数名Elec、繰り返し番号n=2と、リスト(2)のポインタを有している。図58で変数名Elecと繰り返し番号n=2に対応するトークン値、GATEを出力用文字列に追加する。以下リスト(3)からリスト(12)まで同様の処理を行う。最後のリスト(12)では、文字番号(i)=12に対応する変数名Capaと繰り返し番号n=4と、最終リストであることを示すNULLを有している。図58で変数名Capaと繰り返し番号n=4に対応するトークン値2.6e−15を出力用文字列に追加する。
文字列抽出部12は、出力用文字列を出力することにより、DRAIN、GATE、SOURCE、SUB、1.2e+0、8.5e−1、0.0e+0、0.0e+0、−7.1e−15、1.2e−15、3.2e―15、2.6e−15を抽出し出力することができる。
実施例5によれば、特性値の最適値とそれを与える因子の値の組を求めパラメータの最適化を行うことによって、被処理体として半導体基板を用いた場合にその条件に基づいた処理を行うことによって、容易に高性能な半導体装置を製造することが可能になる。
図60に示すように、図1のシミュレーションの出力値11が出力されドレイン電流Id−ゲート電圧Vg特性の計算結果を抽出する場合を例に、文字列抽出部12の機能を具体的に説明する。このId−Vg特性の基づいて、MOSFETの駆動電流Ion、オフリーク電流Ioff、閾値電圧Vthを算出することができる。すなわち、MOSFETの駆動電流Ion、オフリーク電流Ioff、閾値電圧Vthを基準特性値に設定することができる。
まず、図3のファイル読み込み部101は、図60のシミュレーション出力値11のファイル全体を読み込む。
トークン分割部103は、シミュレーション出力値11を、適用フォーマットに基づいて複数のトークンに分割する。適用フォーマットは、複数のトークン間に空白文字が配置されているという情報を有している。分割された複数のトークンを並べた第1トークン列を生成する。
トークン比較&抽出対象トークン記憶部104は、適用フォーマットに基づいて、第1トークン列からドレイン電流Id及びゲート電圧Vgが抽出可能な第2トークン列を生成する。
図61に示すように、第2トークン列は、トークン(1)乃至(4)を有するだけでなく、第3トークン列を有する。第3トークン列はトークン(4−1)乃至(4−2)を有する。トークン(1)乃至(4)とトークン(4−1)乃至(4−2)は階層が異なり、トークン(4−1)乃至(4−2)は、トークン(1)乃至(4)の下の階層である。
第2トークン列のトークン(1)は、判別子として比較文字列、次へのポインタとしてトークン(2)のアドレス、文字列として#Id−Vg特性#、文字列比較可否判別子としてYesを有する。トークン(2)は、判別子として比較文字列、次へのポインタとしてトークン(3)のアドレス、文字列としてゲート電圧(V)、文字列比較可否判別子としてYesを有する。トークン(3)は、判別子として比較文字列、次へのポインタとしてトークン(4)のアドレス、文字列としてドレイン電流(A)、文字列比較可否判別子としてYesを有する。トークン(4)は、判別子として繰り返し、次へのポインタとしてNULL、繰り返し終了条件としてトークンが#####か否かの判断結果を返す関数へのポインタ、繰り返し用の第3トークン列へのポインタとしてトークン(4−1)へのポインタを有する。
第3トークン列のトークン(4−1)は、判別子として変数、次へのポインタとしてトークン(4−2)のアドレス、変数名としてVgを有する。トークン(4−2)は、判別子として変数、次へのポインタとしてNULL、変数名としてIdを有する。
トークン比較&抽出対象トークン記憶部104は、図60のシミュレーション出力値11をトークン分割した第1トークン列から、図61の第2トークン列に一致するトークン列を抽出する。抽出された情報で変数として指定されたVgとIdの変数名とこれらの変数名と配列(繰り返し番号)に対応するトークン値を、図62に示すように、変数名とトークン値のテーブル記憶部131に記憶する。
抽出対象トークン出力部105は、図63に示すような出力フォーマットにしたがって、変数名とトークン値のテーブル記憶部131に記憶されたゲート電圧Vgとドレイン電流Idを出力する。リスト(0)は、出力フォーマットとして26個の文字%からなる文字列と、変数名リスト(1)のヘッダを有している。26個の文字%からなる文字列により26個の変数を置き換えることができる。変数名リスト(1)のヘッダによりリスト(1)を読み出すことができる。リスト(1)は、文字番号(i)=1に対応する変数名Vg、繰り返し番号n=1と、リスト(2)のポインタを有している。図62で変数名Vgと繰り返し番号n=1に対応するトークン値、0.0e+0を出力用文字列に追加する。リスト(2)のヘッダによりリスト(2)を読み出すことができる。リスト(2)は、文字番号(i)=1に対応する変数名Vg、繰り返し番号n=2と、リスト(2)のポインタを有している。図62で変数名Vgと繰り返し番号n=2に対応するトークン値、1.0e−1を出力用文字列に追加する。以下リスト(3)からリスト(25)まで同様の処理を行う。最後のリスト(26)では、文字番号(i)=26に対応する変数名Idと繰り返し番号n=13と、最終リストであることを示すNULLを有している。図62で変数名Idと繰り返し番号n=13に対応するトークン値1.4e−4を出力用文字列に追加する。
文字列抽出部12は、出力用文字列を出力することにより、図60のシミュレーション出力値11に対応するデータ0.0e+0、1.0e−1、・・・1.2e+0・・・6.0e−9、8.6e−8、・・・1.4e−4を抽出し出力することができる。
実施例6によれば、特性値の最適値とそれを与える因子の値の組を求めパラメータの最適化を行うことによって、被処理体として半導体基板を用いた場合にその条件に基づいた処理を行うことによって、容易に高性能な半導体装置を製造することが可能になる。
実施例1乃至6は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、製造される装置としては、半導体装置に限定されず、液晶装置などの電子装置や自動車などの製造方法にも適用可能で、実施例1乃至6によって本発明の技術的範囲が限定的に解釈されてはならないものである。本発明は、その技術的思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。すなわち、本発明の特許請求の範囲を逸脱しない範囲で、変更・改良や一部転用などが可能であり、これらすべて本発明の請求範囲内に包含されるものである。
実施の形態に係る最適化システムの構成図である。
実施の形態に係る最適化システムの文字列抽出部の構成図(その1)である。
実施の形態に係る最適化システムの文字列抽出部の抽出実行部の構成図である。
適用フォーマットのデータ構造の構造図である。
変数名とトークン値のテーブルのデータ構造の構造図(その1)である。
変数名とトークン値のテーブルのデータ構造の構造図(その2)である。
出力フォーマットのデータ構造の構造図である。
実施の形態に係る最適化システムの文字列抽出部の構成図(その2)である。
繰り返しがある場合の適用フォーマットのデータ構造の構造図である。
繰り返しがある場合の変数名とトークン値のテーブルのデータ構造の構造図である。
繰り返しがある場合の出力フォーマットのデータ構造の構造図である。
実施の形態に係る最適化方法のフローチャートである。
事前調整因子による事前調整をするためのシミュレーションの入力条件の設定方法を説明するための図である。
実施の形態に係る最適化システムの文字列抽出部の抽出実行部のトークン比較&抽出対象トークンの記憶部のフローチャートである。
実施の形態に係る最適化システムの文字列抽出部の抽出実行部の抽出対象トークンの出力部のフローチャートである。
実施の形態に係る最適化システムの文字列抽出部の抽出実行部の繰り返しがある場合のトークン比較&抽出対象トークンの記憶部のフローチャート(その1)である。
実施の形態に係る最適化システムの文字列抽出部の抽出実行部の繰り返しがある場合のトークン比較&抽出対象トークンの記憶部のフローチャート(その2)である。
実施の形態に係る最適化システムの文字列抽出部の抽出実行部の繰り返しがある場合の抽出対象トークンの出力部のフローチャートである。
実施の形態に係る最適化システムの文字列抽出部の抽出実行部の数式がある場合の抽出対象トークンの出力部のフローチャートである。
実施例1で用いた直交表である。
実施例1で実施した直交表実験の制御因子の水準値の一覧表である。
(a)は実施例1で用いた誤差因子の水準値の一覧表である。(b)は実施例1で用いた誤差条件の一覧表である。
(a)は実施例1で用いた制御因子Lチャネルイオン注入エネルギーの水準L1乃至L3に対してすべらせた制御因子Mチャネルイオン注入ドーズ量の水準の一覧表である。(b)は実施例1で用いた制御因子Nスペーサの厚さの水準N1乃至N3に対してすべらせた制御因子Vサイドウォールの幅の水準の一覧表である。
実施例1で実施した直交表実験の第10実験の制御因子の水準名のデータ列(一覧表)である。
実施例1で実施した直交表実験の第10実験の制御因子の水準値のデータ列(一覧表)である。
実施例1で実施した直交表実験の第10実験におけるシミュレーションの入力値のフォーマットを示す図である。
基準の誤差条件Ni1を構成する誤差因子の水準を示す図である。
実施例1で実施したステップS2の事前調整においてシミュレーションのたびに事前調整因子の値を変えて入力される入力値のフォーマットを示す図である。
事前調整因子の調整方法を説明するための事前調整因子と基準特性のグラフである。
実施例1に係るシミュレーションの出力値のデータ構造の構造図である。
実施例1に係る適用フォーマットのデータ構造の構造図である。
実施例1に係る変数名とトークン値のテーブルのデータ構造の構造図(その1)である。
実施例1に係る変数名とトークン値のテーブルのデータ構造の構造図(その2)である。
実施例1に係る出力フォーマットのデータ構造の構造図である。
実施例1で実施した直交表実験の実験結果の基準特性と目標特性の特性値の一覧表である。
基準特性であるオフリーク電流IoffのSN比の要因効果図である。
目標特性である駆動電流IonのSN比の要因効果図である。
目標特性である駆動電流Ionの感度の要因効果図である。
基準特性であるオフリーク電流Ioffの感度の要因効果図である。
実施例1の最適化方法によって最適化された制御因子の水準値のデータ列(一覧表)である。
実施例2で最適化方法の対象にしたMOSFETの断面図である。
接合リーク電流のイオン注入のドーズ量に対する依存性を示すグラフである。
シート抵抗のイオン注入のドーズ量に対する依存性を示すグラフである。
コンタクト抵抗のイオン注入のドーズ量に対する依存性を示すグラフである。
接合深さのイオン注入のドーズ量に対する依存性を示すグラフである。
実施例2で実施したステップS2の事前調整によって、調整された不純物密度分布図(その1)である。
実施例2で実施したステップS2の事前調整によって、調整された不純物密度分布図(その2)である。
実施例2で実施した直交表実験の制御因子の水準値の一覧表である。
実施例2で用いた直交表である。
実施例2の最適化方法によって最適化されたMOSFETの接合リーク電流の累積頻度分布を示すグラフである。
実施例4に係るシミュレーションの出力値のデータ構造の構造図である。
実施例4に係る適用フォーマットのデータ構造の構造図である。
実施例4に係る変数名とトークン値のテーブルのデータ構造の構造図(その1)である。
実施例4に係る変数名とトークン値のテーブルのデータ構造の構造図(その2)である。
実施例4に係る出力フォーマットのデータ構造の構造図である。
実施例5に係るシミュレーションの出力値のデータ構造の構造図である。
実施例5に係る適用フォーマットのデータ構造の構造図である。
実施例5に係る変数名とトークン値のテーブルのデータ構造の構造図である。
実施例5に係る出力フォーマットのデータ構造の構造図である。
実施例6に係るシミュレーションの出力値のデータ構造の構造図である。
実施例6に係る適用フォーマットのデータ構造の構造図である。
実施例6に係る変数名とトークン値のテーブルのデータ構造の構造図である。
実施例6に係る出力フォーマットのデータ構造の構造図である。
符号の説明
1 最適化システム
2 事前調整因子の探索条件設定部
3 探索条件記憶部
4 シミュレーション制御部
5 探索制御部
6 事前調整因子の水準記憶部
7 文字列置換部
8 シミュレータ
9 入力値記憶部
10 シミュレーション実行部
11 出力値記憶部
12 文字列抽出部
13 基準特性と目標特性の特性値記憶部
14 入力データ記憶部
15 条件表記憶部
16 直交表生成部
17 入力データエディター部
18 条件表エディター部
19 整理部
20 結果一覧表記憶部
21 調整部
22 事前調整因子の調整済み水準値と基準特性の特性値記憶部
23 基準特性の特性値判定部
24 直交表実験実施制御部
25 後処理部
26 目標特性の特性値判定部
27 端末
31 抽出位置とフォーマットデータ作成登録部
32 第1抽出位置と第1フォーマット記憶部
33 第n抽出位置と第nフォーマット記憶部
34 抽出位置とフォーマットデータ選択部
35 適応位置と適応フォーマット記憶部
36 抽出実行部
37 テーブル記憶部
38 数式入力部
39 テーブルデータ処理(数式処理)部
40 数式記憶部
41 シリコン基板
42 素子分離領域
43 ソース・ドレイン拡散層
44 シリサイド層
45 ゲート絶縁膜
46 ゲート電極
47 TEOSスペーサ
48 サイドウォール
49 絶縁膜
50 絶縁膜
51 導体膜
52 コンタクトプラグ