以下、本発明を図示する実施形態に基づいて説明する。
<<< §1. 従来のセル・リムーバル・モデルの問題点 >>>
ここでは、本発明との対比を明確にするため、半導体装置の製造プロセスなどの形状変化シミュレーション方法として従来から提案されているセル・リムーバル・モデルの基本原理とその問題点を説明する。
図1は、一般的な半導体装置の製造工程において広く利用されているエッチングプロセスの一例を示す断面図である。ここでは、図1(a) に示すように、基板層1の上に加工対象材料層2を形成し、この加工対象材料層2に対して所定のパターニング処理を施し、所望の形状に加工する場合を例にとって説明する。
このようなパターニング処理を行うために、まず、加工対象材料層2の表面にレジスト層3を形成する。そして、図1(b) に示すように、レジスト層3の一部の領域に光Eを照射して露光し、レジスト層3内に非露光部3Aと露光部3Bとを形成する。通常は、レジスト層3の上方に所定の加工パターンが形成されたフォトマスクを配置し、フォトマスクを透過した光Eにより、レジスト層3の一部の領域だけが露光するようにする。
レジスト層3は、感光性材料から構成されているため、非露光部3Aと露光部3Bとでは化学的な特性に相違が生じる。そこで、この特性の相違を利用して、たとえば、図1(c) に示すように、露光部3Bに対してのみ反応する現像液を作用させることにより、露光部3Bのみを除去することができる。
続いて、図1(d) に示すように、残存した非露光部3Aを保護層として利用して、加工対象材料層2の露出部分に対して腐食性のエッチング液を作用させれば、図1(e) に示すように、加工対象材料層2のうちの露出対応領域のみを除去できる。こうして、所望のパターンをもった残存材料層2Aを得ることができる。最後に、残存しているレジスト層(非露光部3A)を剥離除去すれば、図1(f) に示すように、基板層1の上に所望のパターンに加工された残存材料層2Aが得られる。
このような工程において、図1(c) に示す現像液により露光部3Bを除去するプロセスや、図1(d) に示すエッチング液により加工対象材料層2の露出部分を除去するプロセスは、物体表面を浸食により除去して加工を行う加工プロセスである。この加工プロセスによって得られる加工対象物の形状は、実際には、様々な浸食条件に依存するため、高い加工精度をもって所望の形状を得るためには、最適な浸食条件を定める必要がある。
物体の形状変化シミュレーションは、このような事情から、近年、広く利用されるようになってきた技術であり、コンピュータを利用して、物体表面からの浸食に基づく形状変化をシミュレートし、所定の浸食条件において、時間の経過とともに物体にどのような形状変化が生じるかを検証するための技術である。
前述したとおり、このような形状変化シミュレーションの一手法として利用されているセル・リムーバル・モデルを利用した方法は、物体を多数のセルの集合体として表現し、微小時間ステップごとに、所定の条件に従って表面セルを削除してゆくことにより、物体の時間的な形状変化を追ってゆく手法であり、比較的単純な計算により実行できるため、計算時間が短いという利点を有している。また、複数の異なる材質で構成された物体に対しても、セルに材質番号を付与することで容易に対応できるという利点も有している。
図2は、セル・リムーバル・モデルの発展型である等濃度表現モデルによる形状変化シミュレーションの基本原理を示す断面図である。まず、図2(a) に示すように、物体の初期形状を、濃度値1をもった多数のセルの集合体として表現する。図に実線で描かれたセルは、濃度値1をもったセルであり、これら実線のセルの集合体が初期段階の物体に相当する。ここでは便宜上、物体を構成するセル(濃度値1をもったセル)のみを実線で示しているが、実際には、この物体が配置された空間は、縦横に隣接して配置された多数のセルによって満たされており、物体外部の空間に位置するセル(空乏セル)には、濃度値0が与えられる。図では、説明のために、濃度値0の空乏セルを1つだけ破線で示してあるが、実際には、物体外部の空間は、このような空乏セルで埋められている。
ここで、濃度値1をもったセルのうち、濃度値0をもった空乏セルに接しているセルを表面セルSと呼ぶことにすると、図2(b) に示す例の場合、図にハッチングを施したセルが表面セルSということになる。等濃度表現モデルでは、この表面セルSに対して所定の浸食速度で浸食作用が生じるものとして、その濃度値を時間とともに減じてゆく処理が行われる。濃度値を減じる割合は、個々のセルの材質を考慮した浸食速度に応じて定められる。そして、濃度値が0に達した表面セルSを、空乏セルになったものとして削除する。図2(c) は、図2(b) に示す表面セルSを削除した状態を示している。
このように表面セルSが削除されると、その時点で空乏セルに接することになったセルが新たな表面セルSとなり、これら新たな表面セルSに対して濃度値を減じてゆく処理が続行される。かくして、表面セルSが一層ごとに削除されてゆき、物体の形状が時間とともに変化してゆくことになる。このようなシミュレーションを必要な時間だけ継続してゆき、シミュレーション終了時に削除されずに残ったセルが、物体の最終形状を示すものになる。
図2(d) は、シミュレーション終了時に残ったセル(濃度値が0でないセル)を示している。物体の最終形状は、たとえば、この時点における表面セルの表面を輪郭として決定すればよい。ただ、セルの表面をそのまま物体の輪郭にすると、物体表面が階段状の面になってしまうので、実際には、図2(d) に太線で示すように、表面セルの表面をなだらかに結ぶような輪郭面を定義するのが好ましい。前掲の特許文献1に開示された等濃度表現モデルを採用する場合は、個々のセルの濃度値の分布に基づいて等濃度面を定義し、この等濃度面に基づいて物体の輪郭を決定することにより、更に正確な輪郭面を得ることができる。
なお、シミュレーションの対象となる現実の物体は、三次元形状を有する物体であるので、本来は、立方体からなる三次元セルの集合体により三次元のシミュレーションを行うべきであるが、半導体装置などの場合、奥行き方向が同一形状となる構造部が多いため、実用上は、その一断面について二次元のシミュレーションを行えば十分である。図2(a) 〜(d) に示す例も、1つの断面に関する二次元のシミュレーションであり、二次元平面上に配列されたセルについて、二次元平面上での浸食のみを考慮したシミュレーションになっている。以下に述べる本発明の実施例においても、説明の便宜上、このような二次元シミュレーションの例を示すことにする。
上述したセル・リムーバル・モデルによるシミュレーション方法は、個々のセルの濃度値を時間とともに減じてゆく処理を行ってゆけばよいため、比較的単純な演算処理で実行することができ、計算時間が短いという利点を有している。しかしながら、矩形を基本形状とするセルを用いているため、斜めの面についてのシミュレーション精度が低下するという問題が生じる。この問題を、具体例を挙げて説明しよう。
図3は、従来の一般的なセル・リムーバル・モデルによるシミュレーションにおいて、縦横方向に対する実際の浸食速度と斜め方向に対する実際の浸食速度とに差が生じる原因を示す断面図である。上述したように、浸食速度は、各表面セルの濃度値を減少させる速度として設定され、同じ材質からなるセルについては、同一の浸食速度が設定される。このため、図3の左側に示す系列(a) のシミュレーションと、右側に示す系列(b) のシミュレーションとを比べると、同一の浸食速度(セルの濃度値を減少させる速度)を設定したとしても、実際の浸食速度に差が生じることになる。
図3(a) に示すシミュレーションプロセスは、物体の上面(露出面)から下方に向かって浸食が進む例を示しており、物体の上面に配置された1層分のセル(ハッチングを施したセル)が表面セルSとなり、その上方に配置された空乏セル(図示されていない)からの浸食を受けて、各表面セルSの濃度値が所定の浸食速度で減少することになる。具体的には、図3(a) 上段の初期状態において、濃度値1が与えられていた表面セルSについて、濃度値を減少させるシミュレーションが行われ、所定の時間ステップΔtが経過すると、図の中段に示すように、上面1層分の表面セルS(破線で示すセル)は、濃度値が0に達し、空乏セルとして削除される。
この場合、図の下段に示すように、時間ステップΔtの経過により、1層分のセルが浸食されたことになるので、セルサイズをLとすれば、Δtの経過によりセルサイズLの距離だけ浸食が進んだことになるので、実際の浸食速度はL/Δtということになる。
一方、図3(b) に示すシミュレーションプロセスは、斜め45°に傾斜した露出面を有する物体表面から、右下方向に向かって浸食が進む例を示している。この場合、物体の傾斜面に配置された1層分のセル(ハッチングを施したセル)が表面セルSとなり、これに隣接して配置された空乏セル(図示されていない)からの浸食を受けて、各表面セルSの濃度値が所定の浸食速度で減少することになる。具体的には、図3(b) 上段の初期状態において、濃度値1が与えられていた表面セルSについて、濃度値を減少させるシミュレーションが行われ、所定の時間ステップΔtが経過すると、図の中段に示すように、露出面1層分の表面セルS(破線で示すセル)は、濃度値が0に達し、空乏セルとして削除される。
この場合、図の下段に示すように、時間ステップΔtの経過により、1層分のセルが浸食されたことになるが、浸食を受けた1層分のセルは、斜め階段状に配置されたセルであるため、セルサイズをLとすれば、Δtの経過によりL/√2の距離だけ浸食が進んだことになるので、実際の浸食速度は(L/√2)/Δtということになる。
図3(a) に示すシミュレーションプロセスも、図3(b) に示すシミュレーションプロセスも、各セルに対して設定した浸食速度は同一である。すなわち、いずれの場合も、濃度値を1から0にまで減少させる速度として、「1/Δt」なる同一の浸食速度を設定している。それにもかかわらず、実際の浸食速度は、前者の場合はL/Δt、後者の場合は(L/√2)/Δtとなり、差が生じる結果となる。これは、同一の浸食条件を設定したシミュレーションを行ったとしても、物体の露出面の向きによって、当該露出面に対する実際の浸食速度に差が生じることを意味し、精度の高い形状変化シミュレーションを阻む要因になる。
このような問題は、セルサイズLを小さく設定し、物体のセル表現による解像度を高めたとしても解決することはできない。たとえば、図4(a) は、斜めの露出面を有する物体について、セルサイズをLに設定したモデルを示し、図4(b) は、同じ物体について、セルサイズをL/2に設定したモデルを示す。物体のセル表現による解像度は、前者のモデルに比べて、後者のモデルは2倍となっており、後者では、物体の形状がより精細に表現されている。
一方、セルサイズは、前者のLに比べて後者のL/2は半分になっているため、同一の浸食速度を設定した場合、前者における濃度値の減少速度に比べて、後者における濃度値の減少速度を2倍に設定する必要がある。別言すれば、1つのセルの濃度値が1〜0に減少する時間として、前者で時間ステップΔtを設定した場合、後者では時間ステップΔt/2を設定する必要がある。
結局、前者では、時間ステップΔtの経過により、図4(a) にハッチングを施して示した1層分の表面セルが削除されることになるのに対して、後者では、まず、前半の時間ステップΔt/2の経過により、図4(b) に斜線ハッチングを施して示す1層分の表面セルが削除され、続いて、後半の時間ステップΔt/2の経過により、ドットハッチングを施して示す次の1層分の表面セルが削除されることになる。要するに、同一の時間ステップΔtの経過により、前者では1層分の表面セルが削除されるのに対して、後者では2層分の表面セルが削除されることになる。
図5(a) ,(b) は、この場合の実際の浸食速度を示す断面図であり、いずれの場合も、実際の浸食速度は(L/√2)/Δtになる。すなわち、図5(a) に示すように、セルサイズをLに設定した場合は、時間ステップΔtの経過により、斜めの露出面に配置された1層分のセルが削除されたため、実際の浸食速度は(L/√2)/Δtになる。一方、図5(b) に示すように、セルサイズをL/2に設定した場合は、時間ステップΔtの経過により、斜めの露出面に配置された2層分のセルが削除されたため、実際の浸食速度は、やはり(L/√2)/Δtになる。
結局、セルサイズを細かな値に設定して解像度を向上させたとしても、物体の露出面の向きによって、当該露出面に対する実際の浸食速度に差が生じるという問題は解決しないことがわかる。すなわち、従来のシミュレーションにより最終的に得られる形状には、斜め方向に関して歪みが生じてしまうことになり、実際のエッチング工程で得られる形状と食い違いが生じ、形状精度の高いシミュレーション結果を得ることができない。本発明は、このような問題を解決するための新たな手法を提案するものである。
<<< §2. 本発明に係る形状変化シミュレーション装置 >>>
図6は、本発明に係る形状変化シミュレーション装置の基本構成を示すブロック図である。この装置は、図示のとおり、初期形状設定部10、物体形状格納部20、濃度値更新部30、時間ステップ設定部40、進展レート設定部50、進展係数決定部60、最終形状決定部70によって構成され、初期形状データDで表される初期形状をもった物体について、表面からの浸食に基づく形状変化をシミュレートし、所定時間経過後の最終形状をもった物体の形状を最終形状データD′として出力する処理を行う機能を有している。
物体形状格納部20は、シミュレーション過程の各時点の物体形状を、それぞれ所定の濃度値C(0≦C≦1)をもったセルの集合体を示す情報として格納する構成要素である。図には、濃度値0または1のいずれかが定義されたセルの集合体からなる二次元セル配列Aが格納された具体例が示されている。この物体形状格納部20は、実際には、メモリなどの記憶装置によって構成され、セル配列Aは、この記憶装置に二次元配列(縦横マトリックス状に並べられたデータ)として格納されることになる。
図では、説明の便宜上、この物体形状格納部20内に格納されたセルの集合体からなる配列Aを、縦横に並べられた多数の正方形で示すことにし、個々のセルのもつ濃度値Cを、各正方形内に数字として表記することにする。図示のような初期状態では、各セルのもつ濃度値Cは0または1のいずれかであるが、後述するシミュレーションの過程において、濃度値Cは1から0へと段階的に減少することになるので、各セルのもつ濃度値Cを格納するため、物体形状格納部20には、必要な有効桁数をもった濃度値Cのビット列を格納するための記憶領域が確保されている。
初期形状設定部10は、与えられた初期形状データDに基づいて、物体形状格納部20内にセル配列Aの情報を設定する機能をもった構成要素である。すなわち、初期形状設定部10は、シミュレーションの開始時点において、初期形状データDに基づいて、物体を構成する位置に配置されたセルについてはC=1なる濃度値を、物体を構成しない位置に配置されたセルについてはC=0なる濃度値を、それぞれ付与したセルの集合体を、物体の初期形状を示すセル配列Aなる情報として物体形状格納部20に設定する処理を行う。
図7は、この初期形状設定部10が行う具体的な初期形状設定処理の一例を示す断面図である。図7(a) は、初期形状データDによって示される、シミュレーションの対象となる物体Obj の初期形状を示す断面図である。前述したように、ここでは、奥行き方向が同一形状となる三次元物体をシミュレーションの対象とした例について述べるため、初期形状データDは、実際の物体を所定断面で切断した二次元の形状を示す断面図データとして与えられる。図7(a) の場合、グレーの部分が物体内部の領域、白い部分が物体外部の領域を示している。
初期形状設定部10は、このような初期形状をもった物体Obj 上に、図7(b) に示すようにセルの集合体(正方形の輪郭からなるメッシュ)を配置し、物体の占有率が所定の基準占有率以上のセルには濃度値C=1を与え、基準占有率未満のセルには濃度値C=0を与えることにより、物体の初期形状を示すセル配列Aの情報(濃度値0または1が定義されたセルの集合体を示す情報)を生成し、これを物体形状格納部20に格納する処理を行う。
たとえば、基準占有率として50%を設定した場合は、セル内の物体の占有率が50%以上であるセルについては濃度値C=1を与え、50%未満であるセルについては濃度値C=0を与えるようにすればよい。図7(c) は、図7(b) に示す各セルのうち、グレーの領域の占有面積が50%以上のセルについて、斜線によるハッチングを施したものであり、図7(d) は、図7(c) においてハッチングが施されたセルには濃度値C=1を与え、それ以外のセルには濃度値C=0を与えた結果を示すものである。
図6の物体形状格納部20のブロック内に例示されているセル配列Aは、図7(d) に示すセル配列に対応するものであり、図7(a) に示すような初期形状データDに基づいて設定された初期形状を示すデータということになる。濃度値C=1をもつセルは物体を構成する部分、濃度値C=0をもつセルは物体を構成しない部分を示している。図7(a) に示す元の初期形状データDが滑らかな輪郭線を有しているのに対して、図7(d) に示すセル配列Aによって表現される物体は、階段状の輪郭線を有するものになるため、形状精度は低下することになるが、セルサイズを十分に小さくして、必要な解像度が得られるようにすれば、実用上、支障は生じない。なお、本願では濃度値Cは、0≦C≦1の範囲の値をとることになるが、当該0〜1の範囲は概念的、原理的な値を示すものであり、実際には演算の便宜を考慮して、たとえば、0〜100や、0〜255や、100〜200といった任意の数値範囲を設定してもかまわない。
濃度値更新部30は、この物体形状格納部20内に格納されている各セルの濃度値Cを逐次更新する処理を行う構成要素である。この更新処理は、時間ステップ設定部40によって設定された時間ステップΔtで定まる所定のタイミングにおいて、進展レート設定部50で設定された進展レートRと、進展係数決定部60で決定された進展係数Kとを考慮することによって行われる。すなわち、濃度値更新部30は、時間ステップΔtが経過するたびに、物体形状格納部20に格納されている表面セルの濃度値Cを、進展レートR、進展係数K、時間ステップΔtに基づいて減少させる更新処理を行うことになる。
時間ステップ設定部40は、セルの濃度値Cを更新するタイミングの時間幅を示す時間ステップΔtを設定する役割を果たす。時間ステップΔtは、たとえば、Δt=100msのように、予め一定の時間幅を設定しておき、常に一定の時間間隔で更新処理が繰り返されるようにしてもよいし、後述するように、毎回異なる時間幅を設定し、更新処理の間隔を適宜変動させるようにしてもよい(§4参照)。いずれにしても、濃度値更新部30は、時間ステップ設定部40から与えられた時間ステップΔtが経過するたびに、物体形状格納部20内の表面セルの濃度値を減少させる更新処理を実行することになる。
図6に示す例の場合、時間ステップ設定部40には、物体形状格納部20から濃度値C、進展レート設定部50から進展レートR、進展係数決定部60から進展係数Kが与えられているが、これは、後述するように、個々の時点で最適な時間ステップΔtを、濃度値C,進展レートR,進展係数Kに基づいて求める演算を行うためである。時間ステップΔtを一定値に固定する場合には、これらの値C,R,Kを時間ステップ設定部40に与える必要はない。
なお、ここでいう時間ステップΔtは、あくまでもシミュレーションのプロセスでの仮想の経過時間を示すものであり、この装置が演算処理を行う上での実時間とは無関係である。たとえば、時間ステップΔt=100msに設定した場合、シミュレーションの系において、100msの仮想時間が経過するたびに濃度値の更新処理が行われることを意味するものであり、実時間で100msが経過するたびに更新処理演算が実行されるわけではない。
進展レート設定部50は、浸食の速度を示す進展レートRを設定する構成要素である。この進展レートRは、実際の腐食プロセスにおけるレジスト層に対する現像レートや加工対象材料層に対するエッチングレートに対応するものであり、実在の物体の材質と用いる腐食材料(たとえば、現像液やエッチング液)との間に生じる化学反応の進行速度(浸食速度V)に応じて決定されるパラメータである。具体的には、物体形状格納部20に、セルサイズLをもったセルの集合体からなるセル配列Aの情報が格納されていた場合、進展レート設定部50は、単位長さあたりの浸食速度VをセルサイズLで除した値を進展レートRとして設定すればよい。すなわち、浸食速度をV、セルサイズをLとすれば、進展レートRは、R=V/Lで与えられる。
なお、進展レート設定部50は、セルによって異なる複数通りの浸食速度Vを設定することにより、セルによって異なる複数通りの進展レートRを設定することも可能である。図7(a) には、均一の材料からなる物体Obj をシミュレーションの対象となる物体とする例を述べたが、実際には、複数の異なる材料からなる物体を対象としたシミュレーションが必要になることも少なくない。
たとえば、図8(a) には、2つの異なる材質からなる物体Obj の例が示されている。すなわち、図示の物体Obj の左半分は第1の材質部O1によって構成され、右半分は第2の材質部O2によって構成されている。このような物体Obj に対して、所定のエッチング液を用いてエッチング処理を行った場合、エッチング液は共通していても、左右の材質ごとにエッチングレートは異なる。したがって、シミュレーションを行う場合にも、第1の材質部O1と第2の材質部O2には、それぞれ異なる浸食速度V(進展レートR)を設定する必要がある。
図6に示す装置の場合、初期形状データDに、図8(a) に示すような材質に関する情報を含ませておけば、初期形状設定部10から進展レート設定部50に対して、当該材質に関する情報を与えることにより、進展レート設定部50は、材質の異なる個々の部分に対して、それぞれ異なる浸食速度V(進展レートR)を設定することが可能になる。
図8(b) は、図8(a) に示す物体Obj を構成する第1の材質部O1と第2の材質部O2について、それぞれ異なる浸食速度V(進展レートR)を設定した例を示す断面図である。図8(b) に示す各セルは、図8(a) に示す物体Obj の各微小部分に対応し、セル内のx,yは、それぞれのセルに設定された進展レートRの値を示している。すなわち、図示の例では、第1の材質部O1に対応するセルには第1の進展レートxが設定され、第2の材質部O2に対応するセルには第2の進展レートyが設定されている。このように、進展レート設定部50は、初期形状設定部10から、物体Obj の各部の材質に関する情報をもらうことにより、個々のセル単位でそれぞれ独立した進展レートRを設定することができる。
なお、セル単位で独立した進展レートRを設定するためには、必ずしも物体各部の材質を直接的に示す情報を与える必要はない。たとえば、初期形状データDとして、図7(a) に示すような均一な材質からなる物体の情報が与えられた場合でも、同時に、図9(a) に示すような露光情報が併せて与えられた場合には、この露光情報に基づいて、個々のセル単位でそれぞれ独立した進展レートRを設定することができる。図9(a) に示す露光情報は、均一な材質からなる物体の一部分に、上方から露光用の光Eを照射することを示す情報である。この場合、物体(たとえば、レジスト層)の露光部と非露光部とでは化学的な組成に変化が生じ、浸食速度Vに相違が生じることになる。
図9(b) は、図9(a) に示す露光情報に基づいて、露光部と非露光部とについて、それぞれ異なる浸食速度V(進展レートR)を設定した例を示す断面図である。図9(b) に示す各セルは、図9(a) に示す物体Obj の各微小部分に対応し、セル内のx,yは、それぞれのセルに設定された進展レートRの値を示している。すなわち、図示の例では、中央の露光部に位置するセルには第1の進展レートxが設定され、その両脇の非露光部に位置するセルには第2の進展レートyが設定されている。このように、進展レート設定部50は、初期形状設定部10から、露光情報をもらうことにより、個々のセル単位でそれぞれ独立した進展レートRを設定することもできる。
なお、図9(b) では、露光用の光Eが通過するセルについて第1の進展レートxを与え、露光用の光Eが通過しないセルについて第2の進展レートyを与えているため、物体を構成しない空乏セルについても進展レートxもしくはyが定義されている。実際には、空乏セルの濃度値Cは当初から0であるので、濃度値を更新する作業は不要であり、進展レートを定義する必要はない。ただ、露光用の光Eの光路上にあるか否かという単純な条件に基づいて各セルに進展レートを定義すると、図9(b) に示す例のように、空乏セルについても進展レートが定義されることになる。空乏セルについて定義された進展レートは無意味な情報であるが、実用上は、何ら支障は生じない。
以上、進展レート設定部50によって設定される進展レートRについての説明を行ったが、本発明の重要な特徴は、進展レートRとは別に、進展係数決定部60によって進展係数Kなるものを決定し、濃度値更新部30が、表面セルの濃度値Cを、進展レートR、進展係数K、時間ステップΔtに基づいて減少させるようにした点にある。ここで、進展レートRは、上述したとおり、浸食速度Vに応じて定まる、濃度値Cに対する減少パラメータであり、必要があれば、個々のセルごとに独立して設定される値になる。これに対して、進展係数決定部60によって決定される進展係数Kは、個々のセルごとに独立して設定される値である点は同じであるが、その時点における周囲のセルの濃度値の分布状況によっても変化するパラメータである点に特徴がある。
別言すれば、進展レートRは、個々のセルの材料と腐食材料との間に生じる化学反応の進展速度に応じて定まる値であり、シミュレーションの開始時点で所定値に設定された後は、シミュレーションの終了時点まで当該設定値が維持される性質のパラメータである。これに対して、進展係数Kは、シミュレーションの各時点(時間ステップΔtで指定された時点)において、表面セルについてのみ、その周囲のセルの濃度値Cに基づいて、その都度決定されるパラメータである。したがって、同一のセルであっても、周囲のセルの濃度値の分布状態に応じて、進展係数Kの値は時々刻々と変化してゆくことになる。
本発明の特徴は、このように、個々の表面セルに対して、それぞれ周囲のセルの濃度値Cを参照することにより固有の進展係数Kを定義し、この進展係数Kを考慮して当該表面セルの濃度値Cを減少させる更新処理を行うようにした点にある。その結果、縦横方向に対する浸食速度と斜め方向に対する浸食速度とができるだけ均一になるようなシミュレーションが可能になり、比較的単純な演算により、斜め方向に関して生じる歪みをできるだけ抑え、形状精度の高いシミュレーション結果を得ることができるようになる。
このように、進展係数決定部60によって進展係数Kを決定する処理は、本発明において重要な特徴をもった処理であるので、その内容は、§3において具体例を示しながら詳述する。
かくして、濃度値更新部30は、時間ステップΔtが経過するたびに、物体形状格納部20に格納されている表面セルの濃度値Cを、進展レートR、進展係数K、時間ステップΔtに基づいて減少させる更新を行う。具体的には、濃度値更新部30は、進展レートRおよび進展係数Kに基づいて、E=R×Kなる式で与えられる実行レートEを算出し、時間ステップΔtを用いて、更新前の濃度値Cold からE×Δtを減じた値を新たな濃度値Cnew とする更新を行うことになる。結局、更新後の新たな濃度値Cnew は、Cnew =Cold −E×Δtなる演算式(但し、E=R×K)で与えられることになる。
なお、濃度値更新部30によって濃度値Cが更新される対象となるセルは、物体形状格納部20内に格納されている多数のセルのうちの表面セルだけである。ここで、表面セルとは、図2(b) にハッチングを施して示したセルSであり、その時点で残存している物体の表面に位置するセルを指す。この表面セルSは、現像液やエッチング液などの腐食材料と接しているセルであり、時間とともに濃度値Cを減少させてゆき、やがて濃度値Cが0に到達した時点で削除されるべきセルである。
このように、濃度値Cとの関連からは、濃度値Cが0になったセルを空乏セルと呼び、濃度値Cが0でないセルを残存セルと呼ぶことにすれば、空乏セルに隣接する残存セルを表面セルSと定義することができる。一般に、縦横マトリックス状に配置されている多数のセルに関して、セル同士が「隣接」しているか否かを判定する基準としては、判定の対象となるセルの周囲8個のセルを「隣接セル」と定義する判定基準と、縦横方向(上下左右方向)に配置されている4個のセルを「隣接セル」と定義する判定基準とがあるが、本発明を実施するにあたり、いずれの基準を採用してもかまわない。
たとえば、図10(a) は、対象セルQの周囲8方向(上下左右および斜め)に配置された8個のセルP0〜P7を「隣接セル」として定義した例であり、図10(b) は、対象セルQの上下左右4方向に配置された4個のセルP1,P3,P5,P7を「隣接セル」として定義した例である。本発明における「隣接セル」は、いずれの定義方法で定義されたものでもよい。もちろん、変則的ではあるが、上下左右4方向に、左斜め上および右斜め上の2方向を加えた6個のセルを「隣接セル」とする定義等を採用してもかまわない。
図11は、図10(b) に示す定義方法を採用した場合の表面セルSの実例を示す断面図である。表面セルSは、残存セル(濃度値Cが0でないセル)のうち、空乏セル(濃度値Cが0のセル)に隣接するセルとして定義されるセルであるから、図10(b) に示す定義方法を採用した場合、図11に太線で囲って示すセルが表面セルSということになる。
この図11に示すセル配列Aは、図6の物体形状格納部20に格納されているセル配列Aと同じものであり、図6に示す例の場合、濃度値更新部30が行う最初の更新処理は、図11に太線で示した表面セルS内の各濃度値C=1を更新前の濃度値Cold として、Cnew =Cold −E×Δtなる演算式によって新たな濃度値Cnew を求め、旧濃度値Cold を新濃度値Cnew に書き換える処理ということになる。
この濃度値更新処理によって、濃度値Cが0に到達したセルは新たな空乏セルとなり、その下層に位置していたセルが新たな表面セルになる。こうしてシミュレーションのプロセスが進行してゆくうちに、残存セルは表面から1層ずつ削除されてゆく。なお、本願における「セルの削除」とは、物体を構成していた残存セルが空乏セルに変化することを言い、物体形状格納部20内に格納されているセル配列Aを構成する個々のセルの情報が削除されるわけではない。別言すれば、濃度値Cが0に達したセルは、セル・リムーバル・モデルのシミュレーションを行う概念上、「削除されたセル(removed cell)」ということになるが、実際の記憶装置上では、濃度値C=0をもった空乏セルとして、セルの情報が残ることになる。
また、ここで述べる基本的な実施形態では、C=0なる濃度値Cをもつセルを空乏セル、1≧C>0なる濃度値Cをもつセルを残存セルと呼んでいるが、濃度値Cが0には達していないが所定の値以下になったセルも空乏セルと定義するようにしてもかまわない。すなわち、空乏セルと残存セルの定義を、一般論に拡張すれば、濃度値Cについて所定の空乏判定値φを定め(0≦φ<1)、C≦φのセルを空乏セル、C>φのセルを残存セルとすることができる。たとえば、空乏判定値φ=0.1に設定した場合、濃度値Cが0.1以下となったセルは空乏セルとなり、0.1を超える濃度値をもったセルが残存セルということになる。
表面セルSは、上述したように「空乏セルに隣接する残存セル」として定義されるので、空乏判定値をφ=0.1に設定した場合、表面セルは、「0.1を超える濃度値をもったセル(残存セル)のうち、濃度値Cが0.1以下となったセル(空乏セル)に隣接しているセル」ということになる。もっとも、実用上は、φ=0に設定し、濃度値Cが0に達したセルを空乏セルとする扱いを行えば十分である。そこで、以下に述べる実施例では、空乏判定値φ=0に定め、濃度値Cについて、C=0のセルを空乏セル、C>0のセルを残存セルとし、濃度値更新部30が、濃度値Cの最小値が0となるような更新(Cがマイナスになるような場合も、これを0とする更新)を行うようにしている。
こうして、時間ステップΔtが経過するたびに、濃度値更新部30による更新処理が繰り返されてゆくと、物体形状格納部20内に格納されているセル配列A内の各セルの濃度値は徐々に減少してゆき、空乏セルが増えてゆくことになる。最終形状決定部70は、シミュレーション過程の最終時点において、物体形状格納部20に格納されている残存セルの位置に基づいて、物体の最終形状を決定する処理を行う。具体的には、たとえば、表面セルSの位置を物体の最終形状を示す輪郭と定め、これを最終形状データD′として出力すればよい。
以上、本発明の基本的な実施形態に係る形状変化シミュレーション装置を、図6のブロック図を参照しながら説明したが、実際には、この装置は、汎用のコンピュータに専用のプログラムを組み込むことによって実現することができ、図6に個々のブロックとして示す構成要素は、コンピュータのハードウエア資源を利用したソフトウエアプログラムの機能として実現することができる。
<<< §3. 進展係数の決定方法 >>>
§2で述べたとおり、図6に示す形状変化シミュレーション装置において、進展係数決定部60は、本発明の重要な特徴となる構成要素であり、本発明の基本的な作用効果は、この進展係数決定部60の機能によって得られるものである。そこで、ここでは、この進展係数決定部60の処理内容を、具体例を示しながら詳述する。
進展係数決定部60の役割は、時間ステップΔtが経過するたびに、物体形状格納部20に格納されている個々の表面セルSについて、その周囲のセルの濃度値Cに基づいて進展係数Kを決定することである。その目的は、縦横方向に対する浸食速度と斜め方向に対する浸食速度とに生じる差を是正することにある。そこで、ここでは、図3を再び参照することにより、浸食速度に差が生じる理由を考えてみよう。
前述したとおり、図3(a) に示すシミュレーションプロセスも、図3(b) に示すシミュレーションプロセスも、各セルに対して設定した浸食速度は同一である。したがって、表面セルSの濃度値Cを1から0にまで減少させるのに必要な所要時間も同一になり、いずれの場合も、当該所要時間の経過により、1層分の表面セルSが空乏セルとなり削除されることになる。ところが、図3(a) の場合、表面のセル1層分が削除されることにより距離Lだけ浸食が進むのに対して、図3(b) の場合、表面のセル1層分が削除されることにより距離L/√2だけしか浸食が進まないため、結局、露出面が斜め45°に傾斜している場合、浸食速度が1/√2になってしまう。
このような原因によって生じる浸食速度の差を是正するには、縦横方向の浸食速度に対して斜め45°方向の浸食速度を√2倍に設定すればよいことになる。進展係数決定部60は、このような考え方に基づいて、濃度値Cを更新する対象となる表面セルについて、その周囲のセルの濃度値Cに基づいて進展係数Kを決定する処理を行う。なお、ここで言う「周囲のセル」には、「空乏セル」および「残存セル」の双方が含まれており、たとえば、図10(a) もしくは図10(b) に示すような所定の定義方法によって「隣接セル」とされるセルをすべて含むことになる。
ここで述べる実施形態の場合、「表面セル」とは、図10(b) に示す「隣接セル」の定義方法を採用して、「残存セルのうち、上下左右の少なくともいずれかに空乏セルが隣接しているセル」と定義したが、進展係数Kの決定に関与する「周囲のセル」については、図10(a) に示す「隣接セル」の定義方法を採用して、「対象セルQを取り巻く周囲8箇所に配置されているセルP0〜P7」を「周囲のセル」と定義することにする。
もちろん、進展係数Kの決定に関与する「周囲のセル」の定義方法は、このような方法に限定されるものではないが、進展係数Kが縦横方向の浸食速度と斜め45°方向の浸食速度との差を是正する役割を果たすことを考慮すると、少なくとも縦横方向に隣接するセルと斜め方向に隣接するセルとの双方を含むような定義方法が必要である。従って、一般的には、図10(a) に示す定義方法を採用し、対象セルQについては、その周囲を取り巻く8個のセルP0〜P7を「周囲のセル」として、進展係数Kの決定を行えばよい。
もっとも、図10(a) に示す対象セルQは、通常、上下左右斜め方向を含めた全8方向からの浸食を同時に受けるわけではない。たとえば、図11に示す例の場合、太枠で囲って示すいくつかの表面セルSに対する浸食は、上から下へ向かう方向、左上から右下へ斜めに向かう方向、左から右へ向かう方向のいずれかであり、下から上へ向かう方向などに浸食を受けることはない。
そこで、本発明では、対象セルQの周囲のセルを、浸食に関与するものとして取り扱う第1属性隣接セルと、浸食に関与しないものとして取り扱う第2属性隣接セルとに分類する作業を行う。図10(a) に示す例の場合、対象セルQを取り巻く8個のセルP0〜P7が、第1属性隣接セルか第2属性隣接セルかのいずれかに分類されることになる。
この分類の基準は、個々のセルP0〜P7のもつ濃度値Cである。すなわち、予め濃度閾値Tを定めておき、濃度値CがC≦Tであるセルは第1属性隣接セルとし、濃度値CがC>Tであるセルは第2属性隣接セルとすればよい。たとえば、濃度閾値Tを、T=0.5に定めた場合、濃度値Cが0.5以下である隣接セルは第1属性隣接セルになり、濃度値Cが0.5を超える隣接セルは第2属性隣接セルになる。そして、上述したように、第1属性隣接セルのみが対象セルQに対する浸食に関与するものとして取り扱い、対象セルQの進展係数Kの決定に関与させるようにする。
図12は、進展係数決定部60により、対象セルQについての進展係数Kを決定する作業のプロセスを示す断面図である。図12の左側に示すように、対象セルQの進展係数Kを決定するためには、まず、その周囲を取り巻く8個の隣接セルP0〜P7についての濃度値Cを参照し、濃度閾値Tと比較する作業を行う。ここでは、説明の便宜上、8個の隣接セルP0〜P7が、それぞれ図示のような濃度値Cをもっていたものとし、濃度閾値Tが、T=0.5に定められていたものとしよう。この場合、8個の隣接セルP0〜P7は、図12の右側に示すように、第1属性隣接セル(丸数字0で示す)と第2属性隣接セル(丸数字1で示す)とに分類される。
すなわち、T=0.5以下の濃度値をもつ3個の隣接セルP0,P1,P7は第1属性隣接セルに分類され、T=0.5を超える濃度値をもつ5個の隣接セルP2〜P6は第2属性隣接セルに分類される。結局、第1属性隣接セルおよび第2の属性隣接セルのいずれかに分類する作業は、8個の隣接セルP0〜P7の濃度値Cを、濃度閾値Tを基準として二値化する処理ということになる。
ここで留意すべき点は、対象セルQに対する浸食に関与することになる第1属性隣接セルは、必ずしも空乏セルではない点である。前述したとおり、ここで述べる実施形態の場合、濃度値Cが0のセルを空乏セルとし、濃度値Cが0でないセルを残存セルとしているため、図12の例の場合、空乏セルはP0,P1のみであり、濃度値Cが0.4であるセルP7はまだ空乏セルにはなっていない。すなわち、この例の場合、3個の第1属性隣接セルは、2個の空乏セルP0,P1と1個の残存セルP7によって構成されている。
もし、残存セルが実際に物理的に存在するセルであったとすると、対象セルQは残存セルP7の位置からの浸食(右から左に向かう浸食)を受けることはないが、シミュレーションを行う上では、濃度値Cが濃度閾値T以下となった残存セルは、空乏セルと同様に対象セルQに対して浸食作用をもったセルとして取り扱うことができ、そのような取り扱いを行えば、より柔軟な対応が可能になる。
もちろん、空乏セルか残存セルかを区別する基準となる空乏判定値φ(0≦φ<1)や、第1属性か第2属性かを区別する基準となる濃度閾値T(0≦T<1)は、シミュレーションを行う上で任意に設定できるパラメータであるので、T≦φとなるような設定を行った場合は、第1属性隣接セルは必ず空乏セルということになる。
特に、空乏判定値をφ=0に定め、濃度値Cについて、C=0のセルを空乏セル、C>0のセルを残存セルとした場合、濃度閾値Tを、0<T<1の範囲内の値に設定すれば、設定の自由度は向上するが、第1属性隣接セルは必ずしも空乏セルに限られないことになる。一方、濃度閾値Tを、T=0に設定すれば、第1属性隣接セルは必ず空乏セルということになるので、演算負担は軽減される。
さて、図12に示す作業により二値化(2つの属性への分類)が行われた後、第1属性隣接セルのみが浸食に関与するものとして、対象セルQの進展係数Kが決定される。このとき、対象セルQと各第1属性隣接セルとの相互位置関係に基づいて、それぞれ関与の度合いを定める。具体的には、相互位置関係に基づいて、各第1属性隣接セルに重み値を定め、その重み値の総和を対象セルQについての進展係数Kとすればよい。
図13は、図12に示す各隣接セルP0〜P7が第1属性隣接セルとなった場合に、それぞれに対して具体的な重み値を与え、その総和に基づいて進展係数Kを決定する例を示す図である。この例では、図13(a) に示すように、第1属性隣接セルが、対象セルQの上下左右に隣接するセルであった場合(図12におけるセルP1,P3,P5,P7であった場合)は、当該第1属性隣接セルに対して重み値aを与えている。また、図13(b) に示すように、第1属性隣接セルが、対象セルQの斜めに隣接するセルであった場合(図12におけるセルP0,P2,P4,P6であった場合)は、当該第1属性隣接セルに対して重み値bを与えている。そして、対象セルQについての進展係数Kは、図13(c) に示すように、第1属性隣接セルに与えられた重み値の総和として求められる。
しかも、重み値a,bを設定する際には、重み値aを重み値bよりも大きく設定する。図13に示す例は、a=(2√2−1)/3、b=(2−√2)/3に設定した例である。これらの数値の意味については後述するが、この例の場合、aの値はおよそ0.6になり、bの値はおよそ0.2になるため、重み値aは重み値bのほぼ3倍の大きさに設定されたことになる。
このように、対象セルQに対して上下左右に隣接するセルP1,P3,P5,P7の重み値aを、斜めに隣接するセルP0,P2,P4,P6の重み値bよりも大きく設定するのは、上下左右に隣接するセルからの浸食作用の方が斜めに隣接するセルからの浸食作用よりも大きいと考えられるからである。
ここに示す実施形態の場合、物体形状格納部20には、物体の二次元形状の形状変化シミュレーションを行うために、同一形状同一サイズの矩形セルを縦横に配置したセルの集合体の情報が格納されている。このようなセル配列を採用した場合、上下左右に隣接するセルと対象セルQとの接触領域の方が、斜めに隣接するセルと対象セルQとの接触領域よりも大きくなる。したがって、対象セルQに対して上下左右に隣接する4個の第1属性隣接セルP1,P3,P5,P7についての重み値aを、対象セルQに対して斜めに隣接する4個の第1属性隣接セルP0,P2,P4,P6についての重み値bよりも大きく設定することは理に適っている。
要するに、進展係数決定部60は、特定の対象セルQについての進展係数Kを決定する際に、当該対象セルQの周囲に隣接する個々の隣接セルの濃度値Cを所定の濃度閾値Tと比較し、C≦Tの隣接セルを第1属性隣接セル、C>Tの隣接セルを第2属性隣接セルと判定し、第1属性隣接セルについて対象セルQとの位置関係に応じた重み値を定義し、この重み値の総和を進展係数Kとする処理を行うことになる。
進展係数Kを決定する必要があるセルは、濃度値更新部30による更新作業が必要になるセル、すなわち、その時点における表面セルSである。したがって、進展係数決定部60は、個々の表面セルSをそれぞれ対象セルQとして、上記方針に従って、周囲8個の隣接セルをその濃度値Cに基づいて第1属性隣接セルと第2属性隣接セルとに分類する作業(濃度値Cの二値化作業)を行い、第1属性隣接セルに与えられた重み値の総和として、進展係数Kを求める処理を行うことになる。もちろん、各セルの濃度値Cは、シミュレーションが進行するにつれて更新されてゆくので、図12に示す二値化処理はシミュレーションの時間ステップごとに繰り返し行う必要が生じ、同一のセルについて得られる進展係数Kの値も、時間ステップごとに変化してゆくことになる。
図12に示すように、濃度値Cを濃度閾値Tに基づいて二値化し、8個の隣接セルを第1属性隣接セルと第2属性隣接セルとに分類する処理を行い、第1属性隣接セルの重み値の総和により進展係数Kを決定する方法を採ると、第2属性隣接セルに分類された隣接セルは、進展係数Kの決定には一切関与しないことになる。たとえば、図12に示す例の場合、濃度値C=0.4をもつ隣接セルP7は第1属性隣接セルとして進展係数Kの決定に関与することになるが(隣接セルP7の重み値aが加算される)、濃度値C=0.6をもつ隣接セルP2は第2属性隣接セルであるので進展係数Kの決定には関与しない(隣接セルP2の重み値bは加算されない)。
また、第1属性隣接セルが進展係数Kの決定に関与する度合いは、二値化前の濃度値Cの値にかかわらず、対象画素Qに対する位置関係に応じた重み値によって決定されることになる。たとえば、図12に示す例の場合、第1属性隣接セルP1とP7には、同じ重み値aが付与されるため、進展係数Kの決定に関与する度合いは同じになる。実際には、隣接セルP1は濃度値C=0をもつ空乏セルであるのに対して、隣接セルP7は濃度値C=0.4をもつ残存セルであるので、本来は、隣接セルP1からの浸食度合いの方が、隣接P7からの浸食度合いよりも大きいと考えられるが、ここに示す実施形態の場合は、二値化処理により、両者の浸食度合いは同一として取り扱われることになる。
このように、図12に示す二値化処理は、理論的には、シミュレーションの精度を低下させる要因になる可能性があるが、この二値化処理は、演算負担を軽減する上で効果的であり、できるだけ単純な演算によってシミュレーションの計算時間を短縮するという目的を達成する上では好ましい。コンピュータ上では、各濃度値Cは二進数のビット列として表現されるので、二値化処理(濃度閾値Tとの大小比較処理)は、特定の桁のビットが0か1かを判定するだけの単純な演算によって行うことができる。特に、濃度閾値Tを0に設定した場合は、濃度値Cが0か否かを判定する処理を行うだけで足りる。そして、二値化した後は、第1属性隣接セルについて、対象セルQに対する位置関係に基づいて、重み値aもしくはbを加算する処理を行えばよいので、演算処理は極めて単純になる。
もちろん、より精度の高い結果を得るという目的を達成する上では、二値化処理を行わずに、個々の濃度値Cを考慮して進展係数Kを求める演算を行うことも可能である。たとえば、個々の隣接セルの浸食度合いを、(1−C)×(位置関係に基づく重み値)のような形で求め、その総和を進展係数Kとすることも可能であるが、乗算を含む複雑な演算が必要になるため、実用上は、上述した実施例のように、二値化処理を行って演算負担を軽減するのが好ましい。
ところで、図13に示す例の場合、重み値aを(2√2−1)/3に設定し、重み値bを(2−√2)/3に設定しているが、このような重み値は、縦横方向の浸食速度と斜め45°方向の浸食速度との差を零にする上では理想的な値になっている。以下、この点について説明しよう。
まず、図14に示す例を考えてみよう。この例は、図12に示す対象セルQを取り巻く周囲8個のセルP0〜P7のうち、3個のセルP0,P1,P2が第1属性隣接セル(丸数字0で示す)、残りの5個のセルP3〜P7が第2属性隣接セル(丸数字1で示す)と分類された例である。このような例は、図3(a) に示すように、上方から下方に向かって浸食が進む場合に、各表面セルSについて生じる例に相当する。この場合、3個の第1属性隣接セルP0,P1,P2には、図示のとおり重み値aもしくはbが付与されているので、これらの総和として決定される進展係数Kは、K=a+2b=((2√2−1)/3)+(2(2−√2)/3)=1になる。
一方、図15に示す例は、図12に示す対象セルQを取り巻く周囲8個のセルP0〜P7のうち、3個のセルP1,P2,P3が第1属性隣接セル(丸数字0で示す)、残りの5個のセルP4〜P7,P0が第2属性隣接セル(丸数字1で示す)と分類された例である。このような例は、図3(b) に示すように、左上方から右下方に向かって斜め45°の方向に浸食が進む場合に、各表面セルSについて生じる例に相当する。この場合、3個の第1属性隣接セルP1,P2,P3には、図示のとおり重み値aもしくはbが付与されているので、これらの総和として決定される進展係数Kは、K=2a+b=(2(2√2−1)/3)+((2−√2)/3)=√2になる。
§1で述べたとおり、図3(a) に示すシミュレーションプロセスも、図3(b) に示すシミュレーションプロセスも、各セルに対して設定した浸食速度V(浸食レートR)は同一であるため、表面セルSの1層分が削除されるまでに要する時間Δtも同一になる。このため、図3(a) に示す下方への実際の浸食速度はL/Δtであるのに対して、図3(b) に示す斜め45°方向への実際の浸食速度は(L/√2)/Δtとなり、両者に差が生じる結果となる。
ところが、図6に示す本発明に係るシミュレーション装置では、進展係数決定部60によって、図3(a) に示す各表面セルSについては進展係数K=1が与えられ、図3(b) に示す各表面セルSについては進展係数K=√2が与えられることになる。そして、濃度値更新部30による更新処理は、更新前の濃度値Cから、進展レートRに進展係数Kを乗じることによって得られる値を減じることによって行われるので、結果的に、図3(a) に示す各表面セルSについての濃度値Cの減少率よりも、図3(b) に示す各表面セルSについての濃度値Cの減少率の方が、√2倍だけ大きくなる。かくして、前者の実際の浸食速度L/Δtに比べて、後者の実際の浸食速度(L/√2)/Δtの方が1/√2倍になるという問題が是正されることになり、両者の実際の浸食速度を等しくすることができるようになる。
結局、進展係数決定部60が、重み値a=(2√2−1)/3、重み値b=(2−√2)/3に設定するようにすれば、縦横方向の浸食速度と斜め45°方向の浸食速度との差を零にすることができるようになる。もちろん、進展係数決定部60が、対象セルQに対して上下左右に隣接する第1属性隣接セルについての重み値aを、対象セルQに対して斜めに隣接する第1属性隣接セルについての重み値bよりも大きく設定するようにすれば、縦横方向の浸食速度と斜め45°方向の浸食速度との差を是正するという本発明の効果は得られるので、重み値a,bの値は、必ずしも上記特定の数値に設定する必要はない。
<<< §4. 具体的な濃度値の更新処理 >>>
続いて、ここでは、図6に示す装置における濃度値更新部30が行う具体的な濃度値Cの更新処理を説明する。既に§2で述べたとおり、濃度値更新部30は、時間ステップ設定部40によって設定された時間ステップΔtが経過するたびに、物体形状格納部20に格納されている表面セルSの濃度値Cを、進展レート設定部50によって設定された進展レートR、進展係数決定部60によって決定された進展係数K、そして上記時間ステップΔtに基づいて減少させる更新処理を行う。
図16は、この濃度値更新部30が濃度値Cを更新する処理を行う際に用いる数式を示す図である。ここで、
Cnew =Cold −E・Δt 式(1)
は、濃度値Cを更新する際に用いる基本的な式であり、更新対象となる表面セルSの更新前の濃度値をCold 、更新後の濃度値をCnew とした場合に、更新前の濃度値Cold からE×Δtを減じた値を更新後の濃度値Cnew とする更新を行うことを示している。ここで、Eは、
E=R×K 式(2)
で定義される実行レートであり、進展レート設定部50によって設定された進展レートRに、進展係数決定部60によって決定された進展係数Kを乗じた値になる。§3で詳述したように、同じ対象セルQであっても、その周囲のセルの濃度値Cに応じて、進展係数Kは異なる値になる。たとえば、図14に示す例の場合、対象セルQの進展係数Kは1になるが、図15に示す例の場合、対象セルQの進展係数は√2になる。その結果、実行レートEの値も異なることになり、縦横方向に浸食が行われている場合と、斜め45°方向に浸食が行われている場合とで、濃度値Cの減少率に差が生じ、実際の浸食速度の差が是正されることは、既に述べたとおりである。
なお、進展レートRは、セルサイズLと浸食速度Vに基づいて、
R=V/L 式(3)
なる式で定義される数値であり、進展レート設定部50は、上記式(3) に基づいて、進展レートRを設定することになる。浸食速度Vは、前述したとおり、シミュレーションの対象となる物体の材質と用いる腐食材料(たとえば、現像液やエッチング液)との間に生じる化学反応の進行速度を示すものであり、図8や図9に示す例の場合、個々のセルごとに異なる値が設定される。
この浸食速度Vは、「凹凸のない十分に広い平面状の被浸食物質に、浸食物質(現像液やエッチング液)が接したときの、当該被浸食物質に対する浸食の進展速度」として定義される値であり、理論的に算出することも可能であるが、実用上は、実際の材料を用いて実験を行い、その結果から得られた実験値を用いるようにするのが好ましい。一般に、パターニングしていない基板を用いた実験は比較的容易であり、実在の平面状物体を用いて行った実験により、正確な浸食速度Vを得ることが可能である。
シミュレーションでは、上記式(3) に示すとおり、こうして実測した浸食速度VをセルサイズLで割った値Rを進展レートとして用いるようにすればよい。たとえば、浸食速度V=10[nm/s]、セルサイズL=5[nm]であれば、進展レートR=2[1/s]になる。すなわち、0.5秒経過により1セルが削られ、1秒経過により2セルが削られ、1秒ごとに10[nm]だけ浸食が進むことになる。セルサイズL=2[nm]に設定した場合は、進展レートR=5[1/s]になり、0.2秒経過により1セルが削られ、1秒経過により5セルが削られ、やはり1秒ごとに10[nm]だけ浸食が進むことになる。このように、現実の浸食速度をVを用いてシミュレーション上での進展レートRを定義するようにすれば、セルサイズをどのように設定しようとも、現実の浸食速度に即した正しいシミュレーション結果を得ることができる。
また、ここで示す実施形態の場合、濃度値Cの実際の数値を、0≦C≦1の範囲をとる値として定義しているので、式(1) によって算出される値Cnew が負の値になる場合には、更新後の濃度値をCnew としては0を与えるようにする。もっとも、実用上は、Cnew が負の値にはならないように、時間ステップΔtを最適値に設定するのが好ましい。
一方、図16に示す空乏所要時間τは、
τ=(Cold −φ)/E 式(4)
なる式で定義される時間であり、時間ステップ設定部40によって時間ステップΔtを設定する際に利用される。§2で述べたとおり、時間ステップΔtは、たとえば、Δt=100msのように、予め一定の時間幅を設定しておき、常に一定の時間間隔で更新処理が繰り返されるようにしてもよいが、より効率的なシミュレーションを行う上では、毎回異なる時間幅を設定し、更新処理の間隔を適宜変動させるようにするのが好ましい。以下、この点について詳述する。
図16の式(1) に示されているとおり、濃度値Cの更新による減少幅は、E・Δtで与えられる。したがって、時間ステップΔtを大きく設定しすぎてしまうと、式(1) で求められる値Cnew が負になり好ましくない。上述したように、もし、式(1) で求められる値Cnew が負になった場合は、これを0に置き換える処理を行うこともできるが、本来は、値Cnew が負にならないように、あるいは、負になったとしても、その絶対値が極めて小さくなるように、時間ステップΔtの値を適切に設定すべきである。
このような観点からは、時間ステップΔtはできるだけ微小値に設定すればよい。たとえば、時間ステップΔt=1μsのような極端に微小な値に設定しておけば、値Cnew が負になったとしても、差分E・Δtの値が微小値になるので、Cnew の絶対値は極めて小さな値になるであろう。しかしながら、時間ステップΔtを小さく設定すればするほど、濃度値更新部30が更新処理を行う頻度は増加し、演算回数が増えることになる。しかも、シミュレーションの対象となる物体に形状変化が生じるのは、残存セルから空乏セルに変わるセルが少なくとも1つ存在した時点に限られるので、むやみに時間ステップΔtを小さく設定しても、形状変化に寄与しない無駄な演算処理が繰り返されるだけである。
結局、効率的なシミュレーションを行う上では、時間ステップ設定部40が、各時点において、少なくとも1つの表面セルSの濃度値Cが空乏判定値φに達するまでの最短時間を、次の時点までの時間幅を示す時間ステップΔtとして設定すればよいことになる。
空乏セルは、濃度値Cについて所定の空乏判定値φ(0≦φ<1)を定めた場合に、C≦φのセルとして定義されるセルであるから、現時点で更新前の濃度値Cold を有している残存セルが、空乏セルに変わるまでに必要な所要時間を空乏所要時間τと定義すると、
τ=(Cold −φ)/E 式(4)
なる演算により、当該残存セルについての空乏所要時間τを求めることができる。
すなわち、式(4) で得られる空乏所要時間τを、式(1) の時間ステップΔtに代入すれば、
Cnew =Cold −E・(Cold −φ)/E=φ
となるので、空乏所要時間τが経過した時点で、当該残存セルの新たな濃度値Cnew はφになり、当該セルは空乏セルに変わることになる。これまで述べてきた実施例は、空乏判定値φをφ=0に設定した例であるため、濃度値Cnew が0になった時点で空乏セルに変わることになる。
そこで、時間ステップ設定部40は、すべての表面セルSについて、濃度値Cが空乏判定値φに達するまでに要する空乏所要時間τを進展レートRおよび進展係数Kを参照することにより計算し、得られた空乏所要時間τの最小値を時間ステップΔtとする処理を行えばよいことになる。より具体的には、空乏所要時間τは、上記式(4) で与えられるので、時間ステップ設定部40は、進展レートRおよび進展係数Kに基づいて、E=R×Kなる式で与えられる実行レートEを算出し、更新前の濃度値Cold と空乏判定値φとの差を、実行レートEで除した商を空乏所要時間τとする処理を行えばよい。
要するに、濃度値更新部30は、時間ステップ設定部40から与えられる時間ステップΔtが経過したときに、物体形状格納部20内に格納されている各表面セルSの濃度値Cold を新たな濃度値Cnew に更新する処理を行い、時間ステップ設定部40は、この更新後の濃度値Cnew を、次のステップにおける更新前の濃度値Cold として用い、上記式(4) により、各表面セルSについての空乏所要時間τをそれぞれ求め、得られた空乏所要時間τの最小値を次の時間ステップΔtとして、濃度値更新部30に伝えるようにすればよい。そうすれば、残存セルから空乏セルに変わるセルが少なくとも1つ生じる適切な時間ステップΔtを設定することができ、効率的なシミュレーションを行うことができる。
<<< §5. 本発明に係る形状変化シミュレーション方法 >>>
これまで、本発明に係る形状変化シミュレーション装置の構成および動作を説明してきたが、ここでは、本発明を形状変化シミュレーションの方法として捉えた説明を行う。図17は、この形状変化シミュレーション方法の基本手順を示す流れ図であり、表面からの浸食に基づく物体の形状変化をシミュレートする手順である。
図示のとおり、この基本手順は、初期形状入力段階S1、進展レート設定段階S2、浸食進展段階S3、最終形状決定段階S4の4つのステップによって構成されている。いずれの段階も、実際には、コンピュータによって実施される。
ステップS1の初期形状入力段階は、図6に示す装置における初期形状設定部10によって実行される段階である。この初期形状入力段階では、物体を構成する位置に配置されたセルについてはC=1なる濃度値を、物体を構成しない位置に配置されたセルについてはC=0なる濃度値を、それぞれ付与したセルの集合体を、物体の初期形状を示す形状情報として入力する処理が行われる。図6に示す装置の場合、入力した形状情報は、物体形状格納部20内にセル配列Aとして格納される。
ステップS2の進展レート設定段階は、図6に示す装置における進展レート設定部50によって実行される段階であり、浸食の速度を示す進展レートRを設定する処理が行われる。進展レートRは、一般に、現像レートやエッチングレートと呼ばれているパラメータであり、図16の式(3) に示すように、浸食速度VをセルサイズLで除した商として設定される。ここで、浸食速度Vは、たとえば物体とエッチング液との間に生じる化学反応に応じて定まる値であり、個々のセルごとに独立して設定することができる点は、既に述べたとおりである。
ステップS3の浸食進展段階は、図6に示す装置において、濃度値更新部30により物体形状格納部20内のセル配列Aの情報(セル内の濃度値C)を更新する処理を行う段階である。この浸食進展段階では、図18の流れ図に示すように、処理A〜処理Fによって構成される一巡処理が、所定の回数だけ繰り返し実行される。以下、これらの各処理の内容を順に説明する。
処理A「表面セル抽出処理」では、予め定められた所定の空乏判定値φを参照して(0≦φ<1)、C≦φのセルを空乏セル、C>φのセルを残存セルと判断し、空乏セルに隣接する残存セルを表面セルSとして抽出する処理が行われる。これまで述べてきた実施例では、空乏判定値φ=0に設定し、濃度値C=0に達したセルを空乏セルとする取り扱いを行っている。
処理B「進展係数決定処理」では、処理Aで抽出された各表面セルについて、その周囲のセルの濃度値Cに基づいて進展係数Kを決定する処理が行われる。この処理の詳細は、図6に示す装置における進展係数決定部60が行う処理として、§3で説明したとおりである。
処理C「実行レート算出処理」では、処理Aで抽出された各表面セルについて、進展レートRおよび進展係数Kに基づいて、E=R×Kなる式で与えられる実行レートEを算出する処理が行われる。ここで、進展レートRは、図17のステップS2で設定された値であり、進展係数Kは、処理Bで決定された値である。進展レートRが、処理A〜処理Fによって構成される一巡処理が何回繰り返されても同一の値を維持するパラメータであるのに対して、進展係数Kは、当該一巡処理が繰り返されるたびに再計算されて新しい値が求められるパラメータである。
処理D「時間ステップ決定処理」では、シミュレーションの各時点間の時間幅を示す時間ステップΔtを決定する処理が行われる。具体的には、図16を参照して§4で説明したとおり、時間ステップ設定部40によって、各表面セルSについて、進展レートRおよび進展係数Kに基づいて、E=R×Kなる式で与えられる実行レートEを算出し、更新前の濃度値Cold と空乏判定値φとの差を、実行レートEで除した商として空乏所要時間τをそれぞれ算出し(図16の式(4) )、得られた空乏所要時間τの最小値を時間ステップΔtとする処理が行われる。
処理E「濃度値更新処理」では、処理Aで抽出された各表面セルについて、更新前の濃度値Cold からE×Δtを減じた値を新たな濃度値Cnew とする更新を行う処理が行われる。ここで、Eは、ステップS2で設定された進展レートRと処理Bで決定された進展係数Kに基づいて、E=R×Kなる式で与えられる実行レートであり、Δtは、処理Dで決定された時間ステップである。
処理F「浮遊残存セル修正処理」では、濃度値更新処理後、互いに隣接した残存セルによって構成される集合セル群を認識し、認識した集合セル群が複数組存在する場合に、総セル数が最も多い集合セル群以外の集合セル群に所属するセルについては、濃度値Cを空乏判定値以下に修正する処理が行われる。
この処理F「浮遊残存セル修正処理」は、これまでの実施例では述べていない新たな処理であるので、ここでは実例に即して、もう少し詳しい説明を行うことにする。図19は、この浮遊残存セル修正処理の具体例を示す断面図である。いま、ある時点において、セル配列Aが図19(a) に示すような状態にあるものとしよう。ここで、ハッチングを施して示すセルは残存セル、白色セルは空乏セルである。残存セルの集合体は、その時点の物体形状を示すことになるが、図19(a) は、本体部Mから上方に突起部Hが突き出した物体形状を示している。
ここでは、図19(a) に示す状態から、時間ステップΔtが経過することにより、図19(b) に示す状態に移行した場合を考えてみる。移行後は、突起部Hを支えていた括れ部分が浸食を受けて空乏セルに変わったため、これまでの突起部Hは本体部Mから分離して島部Iに変化している。実際のエッチングプロセスでは、このような現象が生じると、島部Iとして孤立した部分はエッチング液とともに流されて除去され、本体部Mだけが残ることになる。「浮遊残存セル修正処理」は、このような現象をシミュレーションするための処理である。
いま、図19(b) に示す状態において、互いに隣接した残存セルによって構成される集合セル群を認識すると、図19(c) に太線で囲って示すように、第1の集合セル群G1と第2の集合セル群G2との2つのグループが認識されることになる。図19(c) における第1の集合セル群G1は、元は、第2の集合セル群G2に連なっていたが、この時点で両者は分離し、複数の集合セル群G1,G2が併存する状態になっている。そこで、このように認識した集合セル群が複数組存在する場合には、総セル数が最も多い集合セル群を本体部Mと認識し、それ以外の集合セル群に所属するセルについては、浮遊残存セルとして、濃度値Cを空乏判定値φ以下に修正する処理を行うようにする。
図19(d) は、図19(c) に示す状態に対して「浮遊残存セル修正処理」を実行した後の状態を示している。この例では、第1の集合セル群G1を構成するセル数に比べて、第2の集合セル群G2を構成するセル数の方が多いため、前者を構成するセルが浮遊残存セルと認識され、その濃度値Cを空乏判定値φ以下に修正する処理が行われる。かくして、図19(b) に示す島部Iを構成するセル(浮遊残存セル)は空乏セルとなり、図19(d) に示すように、物体形状を構成するセルからは除外されることになる。
浮遊残存セルは、そのまま残しておいても、シミュレーションの進展に支障が生じることはないので、処理F「浮遊残存セル修正処理」は、本発明を実施する上で必須の処理ではない。たとえば、図19(b) に示すような島部Iをそのまま残しておいたとしても、小さな領域であれば、やがて周囲からの浸食を受けて消滅することになる。ただ、島部Iに対する浸食シミュレーションは、本来は必要のない無駄なプロセスになり、また、島部Iが残存していると、本体部Mに対する浸食プロセスに若干の影響も生じるため、実用上は、処理Fを実行するのが好ましい。図6に示す装置の場合、濃度値更新部30に処理Fの機能をもたせておけば、処理E「濃度値更新処理」を実行した後に、引き続いて処理F「浮遊残存セル修正処理」を実行することができる。
図18の流れ図における処理Gは、上記処理A〜処理Fによって構成される一巡処理を、所定の回数だけ繰り返し実行する処理である。たとえば、予め所定のシミュレーション対象時間を定めておき、処理D「時間ステップ決定処理」で決定された時間ステップΔtを毎回加算してゆき、加算値が所定のシミュレーション対象時間に達するまでは、処理Gによって、処理A〜処理Fが繰り返されるようにすればよい。そうすれば、所定のシミュレーション対象時間が経過後にステップS3の浸食進展段階は終了する。
こうして、ステップS3の浸食進展段階が終了すると、図17の流れ図に示すように、ステップS4の最終形状決定段階が実行される。この段階は、図6に示す装置における最終形状決定部70によって実行される段階である。この最終形状決定段階では、ステップS3の浸食進展段階を行った後に、最終的な残存セルの位置に基づいて物体の最終形状を決定する処理が行われる。
セル・リムーバル・モデルの最終段階において、物体の最終形状を決定する方法としては、様々な具体的方法が公知であり、これら公知の方法を利用して最終形状の決定を行えばよい。ここでは、参考のため、図20に、いくつかの具体的な方法を例示しておく。
図20(a) は、最終時点の表面セルの位置に基づいて物体の最終形状を決定した例であり、表面セルの露出面(空乏セルに接している面)をそのまま物体の輪郭面としたものである。図示の例は、物体の所定断面のみを考慮した二次元シミュレーションのモデルであり、表面セルを構成する正方形の四辺のうち、空乏セルに接している辺(図には太線で示す)を物体の輪郭線として抽出している。このように、表面セルの輪郭をそのまま物体の輪郭とすれば、非常に単純な方法で物体の最終形状を決定することができるが、セルの四辺によって輪郭が構成されるため、斜めの形状を階段状の輪郭として表現せざるを得ない。
これに対して、図20(b) は、前掲の特許文献1等に開示された等濃度表現モデルを採用し、個々のセルの濃度値の分布に基づいて等濃度面を定義し、この等濃度面に基づいて物体の輪郭を決定した例を示している。たとえば、図にハッチングを施して示すセルが濃度値C=1をもつ残存セルであり、空白部分が濃度値C=0をもつ空乏セルで埋められている場合を考えてみよう。この場合、図に示す黒点は、濃度値C=0.5に相当する等濃度点ということになる。すなわち、濃度値C=1のセルと濃度値C=0のセルとの境界上の点であるので、平均濃度値C=0.5をもつ点と考えることができる。
実際には、図20(b) に示す黒点(等濃度点)は、図20(a) に太線で示す各辺の中点になっており、図20(b) に示す太線は、このような等濃度点を連結して得られる等濃度面(二次元シミュレーションのモデルであるため、実際には、等濃度線になる)を示している。そこで、この等濃度面を物体の輪郭面として物体の最終形状を決定するようにすれば、図20(a) に比べて、より滑らかな輪郭面をもった最終形状を決定することができる。
もっとも、シミュレーションの終了時に残った残存セルの濃度値は、必ずしもC=1ではなく、様々な値をとる。したがって、前掲の特許文献1等に開示された等濃度表現モデルでは、等濃度点をセルの境界線上だけでなく、セル内部にも定義する運用を採っている。図20(c) は、斜線によるハッチングを施した残存セル(濃度値C=1のセル)と、ドットによるハッチングを施した残存セル(濃度値C=0.5)と、空白部分を構成する空乏セル(濃度値C=0)と、によって空間が埋められている例において、等濃度面を定義した例である。
この例でも、個々の黒点は濃度値C=0.5をもつ等濃度点を構成し、各等濃度点を連結する太線によって等濃度面を形成し、この等濃度面を物体の輪郭面として物体の最終形状を決定することができる。ドットによるハッチングを施した残存セルは、濃度値C=0.5をもつセルであるため、濃度値C=0.5をもつ等濃度点は、当該セルの中心点にプロットされている。濃度勾配に応じて、1セル内に複数の等濃度点を定義することも可能であり、より滑らかな輪郭面をもつ最終形状を得るようにすることもできる。
いずれにしても、このような等濃度面によって物体の最終形状を決定する手法は、等濃度表現モデルとして公知の手法であるため、ここでは詳しい説明は省略する。
以上、本発明を、物体の一断面についての形状変化を観察する二次元シミュレーションの例について説明したが、もちろん、本発明は物体の三次元構造をそのまま取り扱う三次元シミュレーションにも適用可能である。二次元シミュレーションの場合は、矩形の二次元セルを二次元平面上に配置した二次元セル配列について、それぞれ濃度値を更新してゆく処理を行うことになるが、三次元シミュレーションの場合は、ブロック状の三次元セルを三次元空間上に配置した三次元セル配列について、同様に濃度値を更新してゆく処理を行えばよい。この場合、対象セルについての周囲のセルとは、平面的に上下左右および斜めに隣接しているセルに加えて、奥行き方向に隣接するセルも含めることになる。
<<< §6. 係数値テーブルを利用した変形例 >>>
既に述べたとおり、図6に示す進展係数決定部60は、時間ステップΔtが経過するたびに、物体形状格納部20に格納されている個々の表面セルSについて、その周囲のセルの濃度値Cに基づいて進展係数Kを決定する処理を行う。そして、所定の対象セルQについて進展係数Kを決定する具体的な方法として、§3では、図12に示すように、当該対象セルQの周囲に位置する8個の隣接セルP0〜P7の濃度値Cを、濃度閾値Tを基準として二値化し、個々のセルを第1属性隣接セルと第2属性隣接セルとに分類し、第1属性隣接セルに基づいて進展係数Kを決定する例を述べた。
より具体的には、8個の隣接セルP0〜P7について、対象セルQに対する位置関係に基づいて重み値を定義し、第1属性隣接セルについての重み値の総和を進展係数Kとする例を述べた。重み値としては、図13に示すとおり、上下左右に隣接するセルP1,P3,P5,P7については重み値a、斜めに隣接するセルP0,P2,P4,P6については重み値bを設定し、これらについての具体的な数値として、a=(2√2−1)/3、b=(2−√2)/3とする設定例を述べた。
結局、進展係数決定部60は、図14もしくは図15に例示するように、第1属性隣接セル(丸数字0が示されたセル)についての重み値の総和を進展係数Kとして求める演算処理を行うことになる。
ただ、進展係数Kを求める処理は、必ずしも加算演算によって行う必要はない。§3で述べた実施例の場合、8個の隣接セルP0〜P7の濃度値Cは二値化されるため、進展係数Kを決定する要素は、8個の隣接セルP0〜P7が第1属性隣接セル(丸数字0で示す)か第2属性隣接セル(丸数字1で示す)かのいずれであるかを示す情報と、これら8個の隣接セルに対して付与される重み値を示す情報のみである。ここで、重み値は、図13(a) ,(b) に示すように予め定めておくことができるので、結局、図12に示す対象セルQについての進展係数Kは、8個の隣接セルP0〜P7の各属性を示す情報、別言すれば、図12に丸数字0,1で示した属性の分布パターンに基づいて一義的に決定することができる。
ここでは、8個の隣接セルP0〜P7の属性の分布パターンを、丸数字0,1をこの順序で右から左へ並べた8ビットのデータで表現してみる。たとえば、図12の右に示す例の場合、隣接セルP0が丸数字0(第1属性隣接セル)、隣接セルP1が丸数字0(第1属性隣接セル)、隣接セルP2が丸数字1(第2属性隣接セル)、隣接セルP3が丸数字1(第2属性隣接セル)、... 、隣接セルP6が丸数字1(第2属性隣接セル)、隣接セルP7が丸数字0(第1属性隣接セル)であるので、属性の分布パターンは、「01111100」ということになる。同様に、図14に示す例についての属性の分布パターンは「11111000」ということになり、図15に示す例についての分布パターンは「11110001」ということになる。
8個の隣接セルP0〜P7は、第1属性隣接セル(丸数字0で示す)か第2属性隣接セル(丸数字1で示す)かのいずれかに分類されるので、結局、属性の分布パターンは、「00000000」から「11111111」で表現される256通りのいずれかに該当することになる。したがって、対象セルQの進展係数Kも、この256通りの分布パターンに応じた256通りのいずれかということになる。たとえば、分布パターンが「11111000」の場合は、図14に示すように進展係数K=1であり、分布パターンが「11110001」の場合は、図15に示すように進展係数K=√2である。
このような点に着目すれば、進展係数決定部60内に、第1属性隣接セルおよび第2の属性隣接セルの分布パターンに応じて、それぞれ進展係数Kの値を定義した係数値テーブルを予め格納しておくようにすれば、個々の対象セルQについて、この係数値テーブルを参照することにより進展係数Kを決定することができることがわかる。すなわち、予め256通りの場合について、それぞれ進展係数Kを求める演算を行い、その結果を係数値テーブルとして格納しておくようにすれば、進展係数決定部60は、毎回、進展係数Kを決定するための加算演算を行う代わりに、この係数値テーブルを参照するだけで、特定の分布パターンに応じた進展係数Kを得ることができる。
要するに、対象セルQの周囲に隣接する8個の隣接セルP0〜P7に、その位置関係に基づいて1〜8までの順序を定め、第1属性隣接セルおよび第2属性隣接セルのうち、いずれか一方にビット「0」、他方にビット「1」を対応づけ、対応づけられたビットを前記順序に基づいて並べることにより得られる8ビットのデータによって示される0〜255の識別コードによって分布パターンを特定できるようにすれば、各識別コードと各進展係数Kの値とを対応づけた係数値テーブルを参照して進展係数Kを決定できるようになる。
図12に示す例は、対象セルQの右上に位置する隣接セルを第1の隣接セルP0とし、そこから反時計まわりに、第2の隣接セルP1,第3の隣接セルP2,... ,第8の隣接セルP7と順序を定め、第1属性隣接セルにビット「0」(丸数字0で示す)、第2属性隣接セルにビット「1」(丸数字1で示す)を対応づけた例である。このような対応づけを行えば、前述したとおり、たとえば、図14に示す分布パターンは8ビットの識別コード「11111000」(10進表記では248)で特定することができ、図15に示す分布パターンは8ビットの識別コード「11110001」(10進表記では241)で特定することができる。
図21は、このようにして定義した256通りの識別コード(256通りの分布パターン)について、それぞれ対応する進展係数Kを定義した係数値テーブルの構成例を示す図である。進展係数Kの欄には、便宜上、K(0)〜K(255)という記号が掲載されているが、実際には、これらの各欄には、実際の進展係数Kの値が掲載されることになる。たとえば、識別コード「11111000」に対応する欄に掲載される進展係数K(248)の実際の値は1(図14に示すKの値)であり、識別コード「11110001」に対応する欄に掲載される進展係数K(241)の実際の値は√2(図15に示すKの値)である。
このように、進展係数決定部60が、係数値テーブルを参照して進展係数Kを決定するようにすれば、加算演算を行う必要がなくなり、演算負担を更に軽減することができるようになる。
また、図21に示すような係数値テーブルを利用する変形例の別な利点は、256通りの分布パターンごとに、それぞれ固有の進展係数Kを設定することができるため、個々の分布パターンに適した、よりきめの細かな進展制御が可能になる点である。すなわち、§3で説明した実施例の場合、256通りの分布パターンについての各進展係数K(0)〜K(255)は、図13に示す規則に従って一義的に決定されることになり、その値は、必ず(n×a)+(m×b)なる式で表される(a,bは、図13に示す重み値、n,mは0〜4の整数)。
これに対して、図21に示すような係数値テーブルを利用する変形例では、こうして得られた各進展係数K(0)〜K(255)について、必要に応じて補正を加えることができる。図13に示す規則は、§3で述べたとおり、縦横方向の浸食速度と斜め45°方向の浸食速度との差を是正する上で最適な規則であるが、それ以外の方向(たとえば、斜め30°方向)の浸食速度に関しては、必ずしも最適な是正が行われるわけではない。係数値テーブルを利用すれば、各進展係数K(0)〜K(255)について細かな補正を加えることができるので、より最適な是正を行うことが可能になる。
図22および図23は、このような補正を加えることによって作成した係数値テーブルの具体的な実例を示すものであり、256通りの進展係数K(0)〜K(255)について、具体的な数値が掲載されている。この係数値テーブルは、図13に示す規則に基づいて計算された進展係数K(0)〜K(255)の値に対して、本願発明者が試行錯誤で補正を加えることにより得られたものである。実際、この補正を加えた係数値テーブルを利用して進展係数Kの決定を行ったところ、補正前の方法(図13に示す規則に基づく方法)で進展係数Kの決定を行った場合に比べて、より良好な結果が得られた。
図24および図25は、具体的なシミュレーションの結果を比較して示す平面図である。まず、図24には、完全な円盤状の物体を対象として、3通りの形状変化シミュレーションを実施した結果が示されている。図24(a) は、初期状態の物体形状を示す平面図である。ハッチングを施した部分が物体構成部分であり、所定半径をもった円盤状の物体が示されている。図24(b) ,(c) ,(d) は、この図24(a) に示す初期状態の物体に対して、それぞれ異なる方法で形状変化シミュレーションを実施した結果を示すものである。
図24(b) は、従来の一般的なセル・リムーバル・モデルによる方法で形状を変化させたシミュレーション結果を示す。具体的には、円盤状の物体をエッチング液に浸した場合に、周囲からの浸食を受けて半径の小さな円盤に変化した状態が示されている。シミュレーションの条件は、単純な等方性エッチングの条件であるため、本来であれば、シミュレーション終了時には、半径は小さいが、初期状態と同様に完全に円形の物体が得られるはずである。ところが、図24(b) に示されている物体は、四隅に角が残った歪んだ形状をしている。これは、§1で説明したように、従来の方法では、縦横方向と斜め45°方向とについて、実際の浸食速度に差が生じてしまうためである。すなわち、図3に示すように、縦横方向の浸食速度に比べて斜め方向の浸食速度に遅延が生じ、四隅の部分が角として残る結果となってしまう。
これに対して、図24(c) は、本発明の実施例1に係る方法で形状を変化させたシミュレーション結果を示す。ここで、実施例1に係る方法とは、図13に示す規則に基づいて進展係数Kを計算する方法であり、前述したとおり、縦横方向の浸食速度と斜め45°方向の浸食速度との差を是正する上では理想的な方法である。その結果、図24(b) に示す従来の手法による結果に比べると、円形に近い形状が得られている。しかしながら、全体的には、8角形に近い歪みが若干生じている。
また、図24(d) は、本発明の実施例2に係る方法で形状を変化させたシミュレーション結果を示す。ここで、実施例2に係る方法とは、図22および図23に示す係数値テーブルを参照して進展係数Kを決定する方法であり、前述したとおり、よりきめの細かい進展制御を行うことができる方法である。図24(c) に示す実施例1の結果と比べると、全体的に歪みが是正され、真円に近い形状が得られている。したがって、円盤状の物体についてのシミュレーションを行う場合には、この実施例2が最も好ましい形態といえる。
一方、図25には、中心に円形の開口部が形成された正方形状の基板を対象として、3通りの形状変化シミュレーションを実施した結果が示されている。図25(a) は、初期状態の物体形状を示す平面図であり、ハッチングを施した部分が物体構成部分に対応する。図25(b) ,(c) ,(d) は、この図25(a) に示す初期状態の物体に対して、それぞれ異なる方法で形状変化シミュレーションを実施した結果を示すものである。シミュレーションは、いずれの場合も、物体中央の開口部にエッチング液が作用したものとして、開口部の広がりによる変形状態を観察する目的で行われている。
図25(b) は、従来の一般的なセル・リムーバル・モデルによる方法で形状を変化させたシミュレーション結果である。やはりシミュレーションの条件は、単純な等方性エッチングの条件であるため、本来であれば、シミュレーション終了時には、半径のより大きな円形開口部が形成されるはずであるが、図25(b) に示されている開口部は、四隅に角が残った歪んだ形状をしている。これは、縦横方向の浸食速度に比べて斜め方向の浸食速度に遅延が生じたためである。
これに対して、図25(c) は、本発明の実施例1に係る方法、すなわち、図13に示す規則に基づいて進展係数Kを計算する方法でシミュレーションを行った結果を示すものである。図25(b) に示す従来の手法による結果に比べると、開口部はかなり円形に近くなっているが、全体的には、8角形に近い歪みが若干生じている。
図25(d) は、本発明の実施例2に係る方法、すなわち、図22および図23に示す係数値テーブルを参照して進展係数Kを決定する方法でシミュレーションを行った結果を示すものである。図25(c) に示す実施例1の結果と比べると、開口部の歪みが是正され、真円に近い形状が得られている。したがって、円形開口部を有する物体についてのシミュレーションを行う場合には、この実施例2が最も好ましい形態といえる。
<<< §7. その他の変形例 >>>
最後に、これまで述べてきた基本的な実施形態に対するいくつかの変形例を述べておく。
<7.1 濃度値Cの初期設定に関する変形例>
§2では、図6に示す形状変化シミュレーション装置が、シミュレーションを開始する際に、初期形状設定部10によって、物体の初期形状を示すセル配列Aが物体形状格納部20に設定されることを述べた。すなわち、§2で述べた基本的な実施形態の場合、初期形状設定部10は、与えられた初期形状データDに基づいて、物体を構成する位置に配置されたセルについてはC=1なる濃度値を、物体を構成しない位置に配置されたセルについてはC=0なる濃度値を、それぞれ付与したセルの集合体を、物体の初期形状を示すセル配列Aとして物体形状格納部20に設定することになる。
より具体的には、図7(a) に示す初期形状をもった物体Obj 上に、図7(b) に示すようなセルの集合体を配置し、物体の占有率が所定の基準占有率以上のセルには濃度値C=1を与え、基準占有率未満のセルには濃度値C=0を与えることにより、図7(d) に示すようなセル配列Aを設定する例を述べた。この例は、基準占有率として50%を設定し、セル内の物体の占有率が50%以上であるセルについては濃度値C=1を与え、50%未満であるセルについては濃度値C=0を与えた例である。
ここで、各セル内の物体の占有率は、「セル内の物体部分の面積/セルの全面積」として算出することができる。ただ、実用上は、各セルの初期濃度値を決定するにあたって、必ずしも正確な物体の占有率を算出する必要はなく、より簡便な方法で初期濃度値を決定してもかまわない。
図26は、セルの初期濃度値を決定する方法の第1のバリエーションを示す断面図である。図26(a) ,(b) ,(c) に示す各正方形は1つのセルを示しており、グレーで示す領域が物体Obj を構成する領域である。このバリエーションの場合、セル内に縦横の二等分線(図では破線で示されている)を引き、その交点に判定点Fを定義している。結局、判定点Fはセルの中心に位置する点ということになる。そして、判定点Fが物体Obj の外部に位置する場合(図26(a) )には、当該セルに濃度値C=0を付与し、判定点Fが物体Obj の内部に位置する場合(図26(b) ,(c) )には、当該セルに濃度値C=1を付与するようにする。
このように、図26に示す第1のバリエーションでは、各セルについて、判定点Fが物体の内部の点か外部の点かを判定する簡便な方法により、当該セルの初期濃度値Cを決定することができる。このような方法を採れば、セル内の物体部分の面積を求める方法を採る場合に比べて、演算負担を大幅に軽減することができる。
図27は、セルの初期濃度値を決定する方法の第2のバリエーションを示す断面図である。ここでも、図27(a) ,(b) ,(c) に示す各正方形は1つのセルを示しており、グレーで示す領域が物体Obj を構成する領域である。このバリエーションは、「セル内の物体部分の面積/セルの全面積」として算出された物体の占有率を有効数字2桁までとった値をそのまま初期濃度値Cとして採用した例であり、セルの初期濃度値は、より正確に設定される。具体的には、図27(a) に示すセルについては初期濃度値C=0.28、図27(b) に示すセルについては初期濃度値C=0.53、図27(c) に示すセルについては初期濃度値C=0.71が設定されている。
§2で述べた基本的な実施形態では、初期形状設定部10が、シミュレーションの開始時点においてセルの初期濃度値Cを、0もしくは1のいずれかに設定していたが、セルの初期濃度値Cは必ずしも0か1のいずれかに設定する必要はなく、当該セル内の物体の占有率に応じて、0≦C≦1の範囲内の任意の値を設定することができる。要するに、初期形状設定部10は、シミュレーションの開始時点において、物体の占有率に応じた所定の濃度値Cをそれぞれ付与したセルの集合体を、物体の初期形状を示す情報として物体形状格納部20に設定すればよい。
もちろん、0≦C≦1の範囲内の値を初期濃度値Cを設定する場合にも、セル内の物体部分の面積を求める代わりに、より簡便な方法を採ることも可能である。図28は、セルの初期濃度値を決定する方法の第3のバリエーションを示す断面図である。このバリエーションでは、物体部分の面積を求める演算を行わずに、より簡便な方法で「0および1」以外の中間値を含めた初期濃度値Cを設定することができる。
ここでも、図28(a) ,(b) ,(c) に示す各正方形は1つのセルを示しており、グレーで示す領域が物体Obj を構成する領域である。このバリエーションの場合、セル内に縦横の二等分線(図では破線で示されている)を引き、その交点で区分けされた4つの区間の中心位置に、それぞれ判定点F1,F2,F3,F4を定義している。そして、物体Obj の内部に位置する内部判定点の数を求め、1つの内部判定点につき0.25を積算するという方法により、初期濃度値Cを算出している。
具体的には、図28(a) に示すセルの場合は、内部判定点はF4のみであるのでC=0.25、図28(b) に示すセルの場合は、内部判定点はF3,F4の2つであるのでC=0.5、図28(c) に示すセルの場合は、内部判定点はF2,F3,F4の3つであるのでC=0.75が設定される。結局、この例の場合、初期濃度値Cは、0,0.25,0.5,0.75,1.0の5段階のいずれかに設定されることになる。
<7.2 内部に空洞構造を有する物体の取り扱い>
ここでは、シミュレーションの対象となる物体が、内部に空洞構造を有する物体である場合の取り扱いを述べておく。エッチング等の加工対象として、多孔質の材料を用いる場合、シミュレーションの対象物体は、内部に空洞構造を有することになる。このように内部に空洞構造を有する物体であっても、浸食プロセスの初期段階において、当該空洞内にエッチング液が満たされているのであれば、これまで基本的な実施形態として述べてきた取り扱いをそのまま適用することができる。
図29は、空洞構造をもつ物体について、これまで述べてきた取り扱いと同様の取り扱いを行った例を示す断面図である。図29(a) に斜線ハッチングを施して示すセルは、初期濃度値C=1が付与されたセル(物体の材料が充填されたセル)であり、空白のセルW1,W2は、初期濃度値C=0が付与された空洞セル(物体の材料が充填されていないセル)である。すなわち、空洞セルW1,W2は、初期段階から空乏セルということになる。
ここでは、図の上方部分が物体外部であり、上方の1段目のセルが表面セルであるものとしよう。この場合、空洞セルW1,W2が物体外部に通じていたとすれば(図に示す二次元構造では、空洞セルW1,W2は完全に密閉され、物体外部と遮蔽されているが、三次元構造上は、何らかの経路を介して外部に通じていたとすれば)、エッチング液は、図の上方から作用するとともに、空洞セルW1,W2内にも進入し、その内部表面にも作用することになる。
図29(b) において、ドットによるハッチングを施したセルは、エッチング液による腐食作用を受ける表面セルであり、その濃度値は時間とともに減少してゆき、やがて空乏セルになる。すなわち、物体に対する浸食は、上方から下方へと進むだけでなく、空洞セルW1,W2から外方へと進むことになる。もちろん、物体外部から何らかの経路を介して空洞セルW1,W2内にエッチング液が侵入するのであれば、このような取り扱いに何ら問題はない。
ところが、空洞セルW1,W2が物体外部から遮断され、三次元的に完全密閉された空間であった場合には、上述のような取り扱いは不適切である。この場合、初期段階では、空洞セルW1,W2内にエッチング液は侵入していないので、空洞セルW1,W2の内部からの浸食は生じない。このように、三次元的に完全密閉された空洞構造を有する物体を取り扱うには、次のような工夫を行えばよい。
まず、初期形状設定部10は、このような空洞構造をもつ物体について、空洞部分に位置する空洞セルに対してC>φなる濃度値Cを付与する。すなわち、実際には、空洞部分のセルであるにもかかわらず、空洞ではなく、物体材料が充填されているセルとして、初期形状設定を行うのである。ここでは、空洞セルについて、C=1なる初期濃度値を設定したものとしよう(空洞セルについての初期濃度値Cは、空乏判定値を超える値、すなわち、C>φであれば、必ずしもC=1である必要はない)。図29(a) では、斜線ハッチングを施して示すセルには初期濃度値C=1を付与し、空洞セルW1,W2には初期濃度値C=0を付与しているが、ここで述べる取り扱いを行う場合は、空洞セルW1,W2にも初期濃度値C=1を付与することになる。別言すれば、初期形状設定部10は、空洞構造の存在を無視して初期形状設定を行うことになる。
その代わりに、空洞セルW1,W2の情報は、進展レート設定部50によって進展レートとして設定される。図8や図9に示す実施例で説明したとおり、進展レート設定部50は、セルによって異なる複数通りの浸食速度Vを設定することができる。そこで、進展レート設定部50によって、空洞セルW1,W2についての浸食速度Vを無限大に設定するようにする。
図30は、このような取り扱いを説明する断面図である。図30(a) は、図29(a) と同じ物体を示すセル配列であり、セル内のxおよびzは、それぞれ当該セルについて設定された進展レート(浸食速度)を示している。図示のとおり、物体を構成するセルについては浸食速度xが設定され、空洞セルW1,W2については浸食速度zが設定されている。しかも、浸食速度z=無限大に設定されている。前述したとおり、進展レートRは、浸食速度をV、セルサイズをLとした場合に、R=V/Lで与えられるパラメータであるので、浸食速度Vが無限大の場合、進展レートRも無限大になる。
したがって、上記設定を行うと、空洞セルW1,W2については、浸食が始まった場合(すなわち、空洞セルW1,W2が表面セルになった場合)、その時点で無限大の速度で濃度値Cが減少することになる。別言すれば、図16に示す実行レートEも無限大になるため、理論上は、空洞セルW1,W2が表面セルになった時点から時間ステップΔt=0が経過した時点で(すなわち、時間経過なしに)、濃度値Cは空乏判定値φを下回ることになり、空洞セルW1,W2は、一瞬にして空乏セルに変化することになる。
図30(b) 〜(d) は、このような理論により、シミュレーションが進行する様子を示している。すなわち、図30(a) に示す初期状態では、空洞セルW1,W2は、まだ表面セル(空乏セルに隣接するセル)にはなっていないので、空洞セルW1,W2に対する浸食は始まっていない。このため、浸食は上方から下方へと進行する。図30(b) は、こうして上方2段のセルが空乏セルになった状態を示している。更に上方からの浸食が進むと、図30(c) に示すように、上方3段のセルが空乏セルとなり、この時点で、空洞セルW1が初めて表面セルとなり、空洞セルW1に対する浸食が始まることになる。
上述したとおり、空洞セルW1は、進展速度V=無限大に設定されたセルであるので、浸食が始まると、直ちに空乏セルに転じることになり、図30(d) に示す状態になる。図では、便宜上、図30(c) から図30(d) に変遷する様子を描いているが、実際には、図30(c) から図30(d) への変遷に要する時間は0であり、他のセルの濃度値に一切影響を与えることなしに、空洞セルW1の濃度値のみが瞬時に0に変遷することになる。この後、有限の時間経過により、第4段目のセルが空乏セルになると、今度は、第5段目の空洞セルW2に対する浸食が始まり、空洞セルW2の濃度値は瞬時に0になる。
このように、三次元的に完全密閉された空洞構造を有する物体については、擬似的に図30に示すような取り扱いを行うことにより、適切なシミュレーションを行うことが可能になる。