(57)【特許請求の範囲】
【請求項１】
半導体素子構造の不純物濃度を離散化計算するシミュレーションにおいて、シミュレーション手順データに基づいて、前記離散化計算に必要なグリッドの位置をあらかじめ設定することを特徴とし、前記グリッド位置設定方法として、初期グリッドに加えて、イオン注入による不純物分布関数で求めた不純物濃度の最大値位置にグリッドを追加する工程を含む、半導体プロセスシミュレーション方法。
【請求項２】
半導体素子構造の不純物濃度を離散化計算するシミュレーションにおいて、シミュレーション手順データに基づいて、前記離散化計算に必要なグリッドの位置をあらかじめ設定することを特徴とし、前記グリッド位置設定方法として、初期グリッドに加えて、イオン注入による不純物分布関数で求めた不純物濃度の最大値位置にグリッドを追加し、さらに、イオン注入シミュレーションで求めた積分量とイオン注入による不純物分布関数で求めた積分量との差が所望の誤差範囲になるまで、グリッドを追加する半導体プロセスシミュレーション方法。
【請求項３】
半導体素子構造のシミュレーションを、複数のシミュレーション条件の組み合わせについて行う場合に、イオン注入、拡散、酸化などの各シミュレーションを順次行いながら、前記条件が分岐する時に、分岐したシミュレーション手順データに基づいて、グリッド位置をあらかじめ設定することを特徴とし、分岐前のグリッドに加えて、イオン注入による不純物分布関数で求めた不純物濃度の最大値位置にグリッドを追加し、さらに、イオン注入シミュレーションで求めた積分量とイオン注入による不純物分布関数で求めた積分量との差が所望の誤差範囲になるまで、グリッドを追加する半導体プロセスシミュレーション方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体素子の不純物状態を離散化計算するシミュレーションに関し、特に実験条件として、製造条件の組み合わせを多数シミュレーションするときに、精度の良い計算を短時間で実現するものである。
【０００２】
【従来の技術】
近年の半導体プロセス開発ＴＡＴ  の短縮に伴い、コンピュータシミュレーションを用いたプロセス開発が必須となりつつある。半導体製造プロセスには、不純物イオン注入、拡散、酸化、気相成長、エッチングなどがあるが、これら製造プロセスをモデル化し、このモデルに従った計算手順をコンピュータ上で行うことによって、例えば仮想的に半導体素子を製造するのがプロセスシミュレーションである。プロセス開発に際して、最適な製造条件（イオン注入エネルギー、注入量、拡散温度、拡散時間など）を決定するために、これら種々の製造条件を実験条件として組み合わせ、プロセスシミュレーションすることは、実際の素子製造による実験方法に比べて、コスト、時間ともに大幅な削減が可能である。
【０００３】
従来の、プロセスシミュレーションを用いたプロセス開発手順について、図１５のフローチャートにしたがって説明する。まず、１５０１で一連の製造工程順序と、その実験条件とシミュレーション手順（グリッド位置、物理モデル、モデルパラメータ、数値解法アルゴリズムなど）を入力する。１５０２で、実験したい実験条件値の組み合わせを入力し、１５０３では、この条件値組み合わせに対応するよう、１５０１で入力したシミュレーション手順データをそれぞれ変更したデータを生成する。次に、１５０３で生成したシミュレーション手順データに従い、複数のシミュレーションを実施するが、これには、まず、離散化データを生成する座標位置を、グリッドデータとして、計算機上に設定することになる。シミュレーションする領域全体にグリッドを多次元に各々複数設定することにより、半導体素子構造を計算機上でシミュレーションすることが可能になる。不純物分布の勾配が急峻な部分で、このグリッド間隔が広いと、離散化した時に不純物分布を再現するのに不可欠なデータが抜け落ちる可能性が大きいためである。そこで、どんな実験条件でも、精度良く計算できるように、離散化計算用のグリッド間隔はできるだけ細かくするべきであるが、グリッドの本数が多くなると処理時間が大幅に増大するため、グリッド間隔は実用に耐える処理時間を鑑みて決定しなければならない。１５０１で入力するグリッドデータは、実用に耐え、かつ、実験条件組み合わせの全てについて、ある程度の精度が確保されることを経験的に予想したものである。１５０４でこのグリッドを用いた離散化計算を、全実験条件の組み合わせについて行う。これらシミュレーション結果に基づいて、実験条件と半導体素子特性の関係を予想することが可能となる。
【０００４】
【発明が解決しようとする課題】
しかし、前記、従来のプロセスシミュレーションによると、種々の実験条件の組み合わせにおいて統一のグリッドを設定するため、処理時間を短く保ちつつ、精度を最大限に上げる事は困難であった。例えば、実験条件のイオン注入エネルギーを種々変更すると、不純物濃度のピーク位置が変化し、ピーク頂点付近では不純物濃度の変化が大きいため細かいグリッド間隔が必要となる。しかし、全ての実験条件の組み合わせについて、不純物濃度のピーク位置に細かいグリッドを設定しようとすると、全体のグリッド数が増加し、処理時間が長くなるという問題点があった。
【０００５】
また、各シミュレーション計算時に最適なグリッドになるよう、最初からグリッド設定をやり直すという方法も考えられるが、グリッドやり直しのための処理時間がかかる。さらに、グリッド設定をやり直す方法を実験計画法に用いる場合には、途中までのシミュレーション結果をやり直したグリッド設定にしたがって変更することになり、引き続き、条件を変更してシミュレーションを行っても、全体のシミュレーション結果の違いが、何に起因するかを特定できなくなる。
【０００６】
本発明は、前記問題点に鑑み、計算時間が短く、かつ、精度良く半導体素子シミュレーションを行うことを目的とする。
【０００７】
【課題を解決するための手段】
この目的を達成するために、本発明の半導体プロセスシミュレーション方法は、シミュレーション手順データに基づいて、前記離散化計算に必要なグリッドの位置をあらかじめ設定する。
【０００８】
【発明の実施の形態】
以下、本発明の第１の実施形態について、図１を参照しながら説明する。まず、１０１でシミュレーション手順データを計算機に入力する。このシミュレーション手順データには、実験条件としてイオン注入エネルギー・注入量や拡散時間などを、また、計算条件として初期グリッド位置、物理モデル名やモデルパラメータなどの情報を含むこととする。初期グリッドは、ごく粗い間隔でよい。図５は、シミュレーション手順データの例であり、例えば”ｉｍｐｌａｎｔ”で始まる行はイオン注入を行う事を意味する。図５の下線で示した単語（ｅ１，ｄ１，ｅ２，ｄ３）は、色々な値に設定して実験したい条件であり、具体的な数値は、以下に述べるように、１０２の処理結果をもとにして１０３で決定する。次に、１０２で実験計画法を実施するための実験条件範囲を計算機に入力する。実験計画法とは、実験したい製造条件や計算条件の範囲に応じて、それら条件値の組み合わせを生成するものであり、各条件の変化が結果に影響する度合いを統計理論的に計算することができる。図６は、実験条件の範囲を指定する例である。続いて、１０３で実験計画法の理論にしたがって、条件値の組み合わせを生成する。図７は、生成した条件値の組み合わせ例である。続いて、１０４では、１０１で入力したシミュレーション手順データを、１０３で生成した実験条件値の組み合わせに従って、具体的な数値を決定する。図８は、数値決定後のシミュレーション手順データの例である。８０１は図７の組み合わせ１、８０２は図７の組み合わせ２、８０３は図７の組み合わせ３、８０４は図７の組み合わせｎに相当する。
【０００９】
ここで、本発明の第１の実施形態では、上記のシミュレーション手順データを解析することにより、グリッドを設定する。このグリッドの設定は、処理時間短縮と高精度の両方を実現するためは、特に、不純物濃度が高く勾配が大きい部分で、グリッド間隔を小さくすることとする。この理由は、例えば、イオン注入後のシリコン基板表面酸化・熱拡散工程を考慮しようとしても、その直前のイオン注入時のシミュレーション精度が低ければ、シミュレーション結果の精度は得られない。この理由は、不純物分布のピーク位置付近にグリッドが無ければ、最も不純物濃度が大きいデータが失われる結果となるためである。図１２は、その例であり、横軸に深さ方向座標を、縦軸に不純物濃度をプロットしたものである。１２００の不純物分布関数に基づく曲線に対して、１２０１、１２０２の初期グリッド位置でしか離散化計算が行われなければ、１２０３の斜線部分に示すような不純物の積分量誤差が生じる。例えば、基板表面から０．５μｍ〜１μｍ程度の深さに、ボロン不純物分布のピークがある場合に、その領域で０．０５μｍ程度の深さ方向グリッド間隔を設定すると、ピーク頂点にグリッドが無い場合には、ピーク位置付近の不純物積分量が１０％以上変化する。つまり、このイオン注入時のピーク位置付近にグリッドを設定することが、最も少ないグリッド本数でシミュレーション全体の精度を向上する結果となる。
【００１０】
まず、１０５では、１０４で生成したシミュレーション手順データの一つを、各シミュレーション工程毎に行として、グリッド設定のための計算用メモリに読み込む。続いて、１０６で、グリッド挿入を行う。図３は、このグリッド挿入のフローチャートである。３０１で、１０５で読み込んだデータから、イオン注入に相当するデータを、行の先頭１単語などをキーに抽出する。さらに、３０２では、抽出したイオン注入の不純物種や注入エネルギー、角度などに従って、不純物分布関数の係数を抽出する。不純物分布関数とは、一般的にイオン注入シミュレーションに用いる方法で、半導体基板や表面薄膜に注入した不純物イオンが、基板や薄膜内に分布する様子を計算機上に再現するために用いられる。その関数例は（数１）のようである。
【００１１】
【数１】
0003546759.tif 000002
【００１２】
ｘ：深さ方向座標（イオン注入対象物の表面からの距離）
Ｃ（ｘ）：深さｘでの不純物濃度
Ｋ，Ｒｐ，ａ，ｂ０，ｂ１，ｂ２：係数
上記関数の各係数は、注入エネルギー依存性があるので各注入エネルギー毎に、信頼できる実測データを元にこれら係数を決めて、計算機上の蓄積データとして用いている。また、上式を２つ足しあわせる事により、イオン注入時に不純物イオンが結晶格子を通り抜けるチャンネリング効果を表現する事も出来る。この方法がシミュレーション時間の短縮と、実測データへの合わせ込みに便利であるため、よく用いられている。図１０は、各係数の蓄積データの例であり、例えば、１００１は８０１のシミュレーション手順データのイオン注入条件に該当する。上記のように、イオン注入シミュレーションは一定の関数を用いるため、不純物濃度が最も大きくなる深さ座標を、離散化計算よりも高速な計算方法によって求めることができる。例えば、準Ｎｅｗｔｏｎ法を用いた非線形最適化計算などが可能である。その手順を図１１に従って、簡単に説明する。１１０１では、初期点を設定する。初期点Ｘ０は、深さ方向座標の数点を含む１×ｎ次行列で、例えば、初期グリッド上に離散化計算されたデータのうち、最も不純物濃度が大きいグリッドの両側に位置する２グリッドの各深さ方向座標と、その間の数点を選ぶ。初期行列Ｂ０はｎ×ｎ単位行列などとする。次に１１０２で、各ｘでのｆ（ｘ）の傾きを微分計算によって求める。ここでｆ（ｘ）として−Ｃ（ｘ）を用いることにより、不純物濃度を最大にする点を求める事になる。１１０３でより最大値に近い方向に各ｘを移動して、次のＸｋを求める。１１０４は、繰り返し計算を止める判定部分で、例えば、繰り返し計算前後（ｋ，ｋ＋１）でのｆ（ｘ）の変化がある値以下になることを停止条件などとし、停止条件が満たされなければ、Ｂｋを変更して計算を繰り返す。停止条件が満たされたｘを解、つまり、不純物濃度がもっとも大きくなるピーク位置として、グリッドを設定することが出来る。図１３は、ピーク位置にグリッドを設定し、離散化計算を行った結果である。１３００の不純物濃度分布の曲線に対して、１３０１、１３０２の初期グリッドはピーク位置から遠く、積分量誤差が大きい。ここで、前述の方法で、１３０３のピーク位置にグリッドを挿入すると、１３０４の斜線部分が積分量誤差となり、１２０３のようにピーク位置にグリッドが無い場合の誤差に比べて、大幅に縮小される。
【００１３】
このように全てのシミュレーション手順データについて、グリッド挿入位置データを設定したら、１０８〜１１０で全シミュレーション手順データについて、離散化計算にもとづくシミュレーションを実施する。
【００１４】
本発明の第２の実施形態は、前述のグリッド挿入を拡張したもので、不純物濃度の最大誤差を制御するために必要なグリッド位置を設定できる。図１４は、そのイメージで、ピーク位置へのグリッド挿入後にさらに、グリッドを挿入する事により、誤差を所望の程度まで縮小するものである。図４はそのフローチャートで、１０６のグリッド挿入部分において、図３の方法に替えて行う。４０１から４０４は、３０１から３０４と同様にする。続いて、更にグリッドを追加挿入する。以下、プロット図のイメージに従って、深さ方向座標の大きい方を右側、小さい方を左側という。まず、４０５で、追加挿入のための処理用カウンタｋを初期値０に、４０６で追加するグリッドデータの初期化を行う。ここでピーク位置の右側に追加するグリッドを、カウンタｋを添え字としてＲｇｒｉｄ０、左側のグリッドをＬｇｒｉｄ０という。４０６の初期化では、Ｒｇｒｉｄ０としてピーク位置の右側で隣に位置する初期グリッドを、Ｒｇｒｉｄ１としてピーク位置のグリッドを、同様にＬｇｒｉｄも設定する。Ｒｇｒｉｄ０は１４０１に、Ｒｇｒｉｄ１は１４０２にあたる。次に４０７で、ピーク位置の右側の誤差が許容範囲内に収まっているかを判定する。例えば、Ｒｇｒｉｄ０からＲｇｒｉｄｋ（一回目はｋ＝１つまりピーク位置）までの範囲での、不純物関数による積分量と、グリッド上に計算された点から得られる積分量の差が、充分に小さければグリッド挿入は終了する。誤差が大きいと判定した場合は、グリッドを追加する。４０８は右側にグリッドを追加する処理であり、追加する位置の計算は、前述と同様に図１１の非線形最適化計算を用いることが出来る。例えば、ｆ（ｘ）を、ピーク位置とｘ位置の間の積分量差として、（数２）のように表す。
【００１５】
【数２】
0003546759.tif 000003
【００１６】
ｘｋ：Ｒｇｒｉｄｋつまり、ピーク位置または追加挿入グリッドのｘ座標
ただし、ｋ≧１
また、Ｘ０は、ｘ０とｘｋと、その間の数点を選ぶ。こうして、ｆ（ｘ）を最小化する計算を行い、所望の値を下回るところを停止条件とすれば、ピーク位置もしくは直前に追加したグリッドと、追加すべきグリッドの区間の積分量誤差を所望の値にする位置が計算できる。この積分量誤差は１４０３にあたり、追加すべきグリッドとして計算されたのが１４０４である。さらに、４０９でｋをカウントアップし、続いて４０７で前述と同様に、追加したグリッドと初期グリッドの間の誤差判定を行う。１４０５の積分量誤差がここで判定に用いるものにあたる。この判定により、まだグリッド追加が必要な場合、４０７〜４０９を繰り返す。同様の操作を、４１０〜４１３で、左側についても行う。このようにして、ピーク位置両側の初期グリッドまでの誤差を所望の範囲に収めることができる。ここで、ｆ（ｘ）は積分量差の絶対値としたが、分布関数による積分量に対する比率ともできる。さらに、各初期グリッドの間に、図４と同じ方法でグリッドを追加していけば、素子領域全体の最大誤差を比率で表すこともできる。
【００１７】
このように、第２の実施形態は、あらかじめ全てのシミュレーション手順データとグリッド挿入位置データを準備した上で、シミュレーションを行う方法である。
【００１８】
一方、本発明の第３の実施形態は、図２のように、シミュレーション手順の進行に従って、順次グリッドを追加していくものである。２０１〜２０３は、１０１〜１０３と同様に行う。その後、実験条件を設定している部分で、シミュレーション手順を分岐する。図９は、分岐するイメージで、９０１は、図７の組み合わせ１と２のｅ１，ｄ１を決定したデータである。９０２は、同様に組み合わせ３に相当する。９０３は組み合わせ１と３のｅ２，ｄ３を決定したデータで、９０４は、同様に組み合わせ２に相当する。９０５は、ｅ１，ｄ１，ｅ２，ｄ３を決定している。図９中の矢印の流れに従って、順次シミュレーションを行う事により、全ての組み合わせを網羅する事ができる。順次シミュレーションを行いながら、次にシミュレーションを行おうとする分岐データを２０５で１０５と同様に読み込み、２０６で１０６と同様にグリッド挿入を行う。ここで、それまでに、既に離散化計算された結果を、挿入したグリッドに反映するため、２０７で補間計算を行う。例えば、既にイオン注入・拡散などによって、各グリッド位置のデータとして離散化計算されている各種不純物濃度データを、各隣接２グリッド間で線形変化するとして、挿入グリッド位置のデータとして追加する。こうして、２０８でシミュレーションを実施することを、２０９のように実験条件の分岐がある部分で繰り返す。この図２の方法によると、途中までのシミュレーション結果が、同じグリッドで実施されているため、シミュレーション結果の違いがグリッドの違いによって起こる可能性がなくなり、実験を精密に行うことができる。
【００１９】
このようなグリッド設定方法は、上記のように、シミュレーション手順データに基づいて逐次計算による事も可能であるが、あらかじめイオン注入量・エネルギー毎に必要なグリッド位置のデータを蓄積しておき、これを読み取る事もできる。さらに、図２の方法によれば、イオン注入による格子欠陥生成などの影響を精度良く再現するために、シミュレーション手順データに加えて、それまでのシミュレーション結果におけるグリッド上の離散化データを読み取ることにより、逐次計算方法として格子間原子や空孔の濃度が大きい部分にグリッドを追加することも有効である。
【００２０】
【発明の効果】
本発明は、半導体素子構造の不純物状態を、離散化計算するシミュレーションにおいて、シミュレーション条件データに基づいて、前記離散化計算に必要なグリッドの位置をあらかじめ設定することにより、種々の条件の組み合わせについて多数のシミュレーションを行う場合に、画一にグリッド設定する方法や、実際にシミュレーションを行いながら再度グリッド設定する方法に比べて、短時間で、より精度良く計算する事ができる。ここで、特許請求の範囲に示された発明は上記実施例で説明した態様に限られるものではない。
【図面の簡単な説明】
【図１】本発明の第１の実施形態におけるフローチャート
【図２】本発明の第３の実施形態におけるフローチャート
【図３】本発明の第１の実施形態においてピーク位置にグリッドを挿入するフローチャート
【図４】本発明の第２の実施形態において順次グリッドを追加挿入するフローチャート
【図５】本発明の第１〜３の実施形態におけるシミュレーション手順データを示す図
【図６】本発明の第１〜３の実施形態における条件値範囲を示す図
【図７】本発明の第１〜３の実施形態における条件値組み合わせを示す図
【図８】本発明の第１の実施形態におけるシミュレーション手順データを示す図
【図９】本発明の第３の実施形態におけるシミュレーション手順データを示す図
【図１０】本発明の第１〜３の実施形態における不純物分布関数係数を示す図
【図１１】本発明の第１〜３の実施形態におけるピーク位置計算フローチャート
【図１２】本発明の第１〜３の実施形態における初期グリッドイメージ図
【図１３】本発明の第１の実施形態においてピーク位置にグリッドを挿入するイメージ図
【図１４】本発明の第２、３の実施形態においてグリッドを追加挿入するイメージ図
【図１５】従来例におけるフローチャート
【符号の説明】
１０６  グリッド挿入
２０６  グリッド挿入
３０４  ピーク位置にグリッド挿入
４０７  右側誤差判定
４１１  左側誤差判定
１００１  パラメータセット
１２００  不純物分布関数
１２０１  初期グリッド
１２０２  初期グリッド
１２０３  積分量誤差
１３００  不純物分布関数
１３０１  初期グリッド
１３０２  初期グリッド
１３０３  ピーク位置に挿入したグリッド
１３０４  グリッド挿入後の積分量誤差
１４００  不純物分布関数
１４０１  初期グリッド
１４０２  ピーク位置のグリッド
１４０３  右側グリッド追加時の積分量誤差
１４０４  追加グリッド
１４０５    右側判定用の積分量誤差
【図１】
0003546759.tif 000004
【図２】
0003546759.tif 000005
【図３】
0003546759.tif 000006
【図４】
0003546759.tif 000007
【図５】
0003546759.tif 000008
【図６】
0003546759.tif 000009
【図７】
0003546759.tif 000010
【図８】
0003546759.tif 000011
【図９】
0003546759.tif 000012
【図１０】
0003546759.tif 000013
【図１１】
0003546759.tif 000014
【図１２】
0003546759.tif 000015
【図１３】
0003546759.tif 000016
【図１４】
0003546759.tif 000017
【図１５】
0003546759.tif 000018