(57)【特許請求の範囲】
【請求項１】
光強度シミュレーションを利用して設計データに含まれるパターンを補正するモデルベースの光近接効果補正方法であって、
前記パターンの頂点及び頂点間に設定された複数の分割点で前記パターンの辺を分割する分割工程と、
前記分割した辺毎に設定された評価点を中心にした所定範囲内に含まれる前記複数の分割点の座標を取得する取得工程と、
前記取得した複数の分割点の座標のそれぞれを前記評価点の座標で正規化する正規化工程と、
前記正規化された複数の分割点のｘ軸座標の合計値と、前記正規化された複数の分割点のｙ軸座標の合計値と、前記正規化された複数の分割点の座標データとを含む第１評価点データを生成する第１生成工程と、
前記第１評価点データ内の少なくとも前記ｘ軸座標の合計値及び前記ｙ軸座標の合計値を座標変換して、前記所定範囲内のパターンを前記光強度シミュレーション時の照明条件に応じた所定の回転・鏡像状態に変換した場合の第２評価点データを生成する第２生成工程と、
前記第１評価点データ及び前記第２評価点データに基づいて、前記所定範囲内におけるパターンの配置及び形状が同じになる評価点を同一評価点として算出する同一評価点算出工程と、
前記同一評価点毎に前記光強度シミュレーションを実施する工程と、
を有し、
前記第２生成工程では、
前記照明条件が円形照明又は輪帯照明である場合には、前記第１評価点データを鏡像反転させた場合と、前記第１評価点データ及び前記鏡像反転させた場合のデータを９０度回転、１８０度回転、２７０度回転させた場合とに対応する７つの第２評価点データを生成する一方、前記照明条件が二眼照明である場合には、前記第１評価点データを鏡像反転させた場合と、前記第１評価点データ及び前記鏡像反転させた場合のデータを１８０度回転させた場合とに対応する３つの第２評価点データを生成することを特徴とする光近接効果補正方法。
【請求項２】
前記同一評価点算出工程は、
前記第１評価点データ及び前記第２評価点データの中から、前記ｘ軸座標の合計値が最も小さく且つ前記ｙ軸座標の合計値が最も小さいという条件、又は前記ｘ軸座標の合計値が最も大きく且つ前記ｙ軸座標の合計値が最も大きいという条件を満たす１つの評価点データを抽出する抽出工程と、
前記抽出工程で前記評価点毎に抽出された全ての評価点データを比較することにより、前記同一評価点を算出する算出工程と、
を有することを特徴とする請求項１に記載の光近接効果補正方法。
【請求項３】
前記抽出工程は、
前記第１評価点データ及び前記第２評価点データの中から、前記ｘ軸座標の合計値及び前記ｙ軸座標の合計値が前記条件を満たす評価点データを抽出する第１抽出工程と、
前記第１抽出工程で抽出された評価点データに対応する前記所定範囲内の複数の分割点の座標データを作成する作成工程と、を有し、
前記算出工程では、前記抽出工程で抽出された各評価点データに対応する前記所定範囲内の複数の分割点の座標データの全てが一致するか否かを比較することにより、前記同一評価点を算出することを特徴とする請求項２に記載の光近接効果補正方法。
【請求項４】
前記算出工程は、
前記ｘ軸座標の合計値、前記ｙ軸座標の合計値、前記所定範囲内に含まれる辺又は複数の分割点の数、及び前記所定範囲内の複数の分割点の座標データをキーとして、前記抽出工程で前記評価点毎に抽出された全ての評価点データを整列する第１整列工程と、
前記第１整列工程の結果に基づいて、整列順位が同順位となる評価点を前記同一評価点として算出する工程と
を有することを特徴とする請求項３に記載の光近接効果補正方法。
【請求項５】
前記複数の分割点が前記分割された辺の始点及び終点に設定され、
前記取得工程では、前記複数の分割点の座標として前記辺の始点座標及び終点座標を取得し、
前記正規化工程では、前記始点座標及び前記終点座標を前記評価点の座標で正規化し、
前記作成工程では、前記第１抽出工程で抽出された評価点データに対応する前記所定範囲内の辺の始点座標及び終点座標を作成し、
前記第１整列工程では、前記ｘ軸座標の合計値、前記ｙ軸座標の合計値、前記所定範囲内に含まれる辺の数、前記作成された全ての前記始点座標及び前記終点座標をキーとして、前記評価点毎に抽出された全ての評価点データを整列することを特徴とする請求項４に記載の光近接効果補正方法。
【請求項６】
前記第２生成工程では、前記第１評価点データ内の前記正規化された複数の分割点の座標データを座標変換して生成された前記所定範囲内の複数の分割点の座標データを有する第２評価点データを生成し、
前記同一評価点算出工程は、
前記ｘ軸座標の合計値、前記ｙ軸座標の合計値、前記所定範囲内に含まれる辺又は複数の分割点の数、及び前記所定範囲内の複数の分割点の座標データをキーとして、全ての前記第１評価点データ及び前記第２評価点データを整列する第２整列工程と、
前記第２整列工程の結果に基づいて、整列順位が同順位となる評価点を前記同一評価点として算出する工程と
を有することを特徴とする請求項１に記載の光近接効果補正方法。
【請求項７】
設計装置が実行する設計方法であって、
設計データを生成する工程と、
前記設計データに含まれるパターンを、光強度シミュレーションを利用して補正するモデルベースの光近接効果補正工程と、
前記補正後の設計データに基づいて描画データを生成する工程とを有し、
前記光近接効果補正工程は、
前記パターンの頂点及び頂点間に設定された複数の分割点で前記パターンの辺を分割する分割工程と、
前記分割した辺毎に設定された評価点を中心にした所定範囲内に含まれる前記複数の分割点の座標を取得する取得工程と、
前記取得した複数の分割点の座標のそれぞれを前記評価点の座標で正規化する正規化工程と、
前記正規化された複数の分割点のｘ軸座標の合計値と、前記正規化された複数の分割点のｙ軸座標の合計値と、前記正規化された複数の分割点の座標データとを含む第１評価点データを生成する第１生成工程と、
前記第１評価点データ内の少なくとも前記ｘ軸座標の合計値及び前記ｙ軸座標の合計値を座標変換して、前記所定範囲内のパターンを前記光強度シミュレーション時の照明条件に応じた所定の回転・鏡像状態に変換した場合の第２評価点データを生成する第２生成工程と、
前記第１評価点データ及び前記第２評価点データに基づいて、前記所定範囲内におけるパターンの配置及び形状が同じになる評価点を同一評価点として算出する同一評価点算出工程と、
前記同一評価点毎に前記光強度シミュレーションを実施する工程と、
を有し、
前記第２生成工程では、
前記照明条件が円形照明又は輪帯照明である場合には、前記第１評価点データを鏡像反転させた場合と、前記第１評価点データ及び前記鏡像反転させた場合のデータを９０度回転、１８０度回転、２７０度回転させた場合とに対応する７つの第２評価点データを生成する一方、前記照明条件が二眼照明である場合には、前記第１評価点データを鏡像反転させた場合と、前記第１評価点データ及び前記鏡像反転させた場合のデータを１８０度回転させた場合とに対応する３つの第２評価点データを生成することを特徴とする設計方法。
【請求項８】
設計データを生成する処理と、
前記設計データに含まれるパターンを、光強度シミュレーションを利用して補正するモデルベースの光近接効果補正処理と、
前記補正後の設計データに基づいて描画データを生成する処理と、
を実行し、
前記光近接効果補正処理において、
前記パターンの頂点及び頂点間に設定された複数の分割点で前記パターンの辺を分割する処理と、
前記分割した辺毎に設定された評価点を中心にした所定範囲内に含まれる前記複数の分割点の座標を取得する処理と、
前記取得した複数の分割点の座標のそれぞれを前記評価点の座標で正規化する処理と、
前記正規化された複数の分割点のｘ軸座標の合計値と、前記正規化された複数の分割点のｙ軸座標の合計値と、前記正規化された複数の分割点の座標データとを含む第１評価点データを生成する処理と、
前記第１評価点データ内の少なくとも前記ｘ軸座標の合計値及び前記ｙ軸座標の合計値を座標変換して、前記所定範囲内のパターンを前記光強度シミュレーション時の照明条件に応じた所定の回転・鏡像状態に変換した場合の第２評価点データを生成する処理と、
前記第１評価点データ及び前記第２評価点データに基づいて、前記所定範囲内におけるパターンの配置及び形状が同じになる評価点を同一評価点として算出する処理と、
前記同一評価点毎に前記光強度シミュレーションを実施する処理と、
を実行し、
前記第２評価点データを生成する処理では、
前記照明条件が円形照明又は輪帯照明である場合には、前記第１評価点データを鏡像反転させた場合と、前記第１評価点データ及び前記鏡像反転させた場合のデータを９０度回転、１８０度回転、２７０度回転させた場合とに対応する７つの第２評価点データを生成する一方、前記照明条件が二眼照明である場合には、前記第１評価点データを鏡像反転させた場合と、前記第１評価点データ及び前記鏡像反転させた場合のデータを１８０度回転させた場合とに対応する３つの第２評価点データを生成することを特徴とする設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光近接効果補正方法、設計方法及び設計装置に関するものである。
【背景技術】
【０００２】
近年、半導体装置に対する小型化・高集積化の要請が高まっている。この要請に応えるためには、半導体装置の各種パターンの更なる微細化が要求される。このため、微細なパターンを形成する際に問題となる光近接効果の影響を事前に取得して設計通りの寸法を得るべく、設計データの回路パターンを補正する光近接効果補正（ＯＰＣ：Optical Proximity Correction）の技術が採用されている。
【０００３】
このＯＰＣには、ルールベースＯＰＣとモデルベースＯＰＣがある。ルールベースＯＰＣは、回路パターンの特徴に応じて定めた補正ルールによって補正を行う手法である。これに対し、モデルベースＯＰＣは、投影光学系やレジストの特性をモデル化し、モデル化した特性等に基づくシミュレーションによって補正を行う手法である。このモデルベースＯＰＣは、ルールベースＯＰＣにより補正が困難な、複雑な形状の回路パターンの補正に適している。特に、６５ｎｍ以下の世代の微細加工には、モデルベースＯＰＣが必須である。
【０００４】
しかし、モデルベースＯＰＣは、フーリエ変換を繰り返し行うことによる光強度シミュレーションをベースとしているため、その処理に多大な時間を要する。そこで、この処理時間を短縮する方法が種々提案されている（例えば、特許文献１，２参照）。
【０００５】
詳述すると、設計データの回路パターンには、光強度シミュレーションによるシミュレーション結果が同一になる箇所が多数存在する。そこで、パターンマッチング手法を利用して同一のシミュレーション結果となる箇所を予め探索し、一つのパターンマッチング領域についてのシミュレーション結果を、上記探索された同一のシミュレーション結果となる他の領域にも利用する。これにより、光強度シミュレーションを実施する回数を減らすことができるため、モデルベースＯＰＣの全体の処理時間を短縮することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−０１３６６９号公報
【特許文献２】特開２００６−２７６７４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、提案されているパターンマッチング手法では、必ずしも十分に高精度な探索を行うことができない。詳述すると、従来のパターンマッチング手法では、回路パターンから切り出したパターンマッチング領域のパターンが他の領域のパターンと同じ形状及び同じ配置であるかを比較することにより、同一のシミュレーション結果となる箇所を探索している。このため、従来のパターンマッチング手法では、パターンの形状が同じであっても、パターンの配置位置が少しでも異なると、同一のシミュレーション結果となる箇所であると検出されない。したがって、従来のパターンマッチング手法では、光強度シミュレーションを実施する回数を減らすという効果を十分に得ることができない場合がある。このような場合には、上記パターンマッチング処理に多大な時間を要するにも関わらず、光強度シミュレーションの処理時間をそれほど短縮することができないため、ＯＰＣ処理にかかる処理時間が長時間化するという問題がある。
【課題を解決するための手段】
【０００８】
本発明の一観点によれば、光強度シミュレーションを利用して設計データに含まれるパターンを補正するモデルベースの光近接効果補正方法であって、前記パターンの頂点及び頂点間に設定された複数の分割点で前記パターンの辺を分割する分割工程と、前記分割した辺毎に設定された評価点を中心にした所定範囲内に含まれる前記複数の分割点の座標を取得する取得工程と、前記取得した複数の分割点の座標のそれぞれを前記評価点の座標で正規化する正規化工程と、前記正規化された複数の分割点のｘ軸座標の合計値と、前記正規化された複数の分割点のｙ軸座標の合計値と、前記正規化された複数の分割点の座標データとを含む第１評価点データを生成する第１生成工程と、前記第１評価点データ内の少なくとも前記ｘ軸座標の合計値及び前記ｙ軸座標の合計値を座標変換して、前記所定範囲内のパターンを前記光強度シミュレーション時の照明条件に応じた所定の回転・鏡像状態に変換した場合の第２評価点データを生成する第２生成工程と、前記第１評価点データ及び前記第２評価点データに基づいて、前記所定範囲内におけるパターンの配置及び形状が同じになる評価点を同一評価点として算出する同一評価点算出工程と、前記同一評価点毎に前記光強度シミュレーションを実施する工程と、を有し、前記第２生成工程では、前記照明条件が円形照明又は輪帯照明である場合には、前記第１評価点データを鏡像反転させた場合と、前記第１評価点データ及び前記鏡像反転させた場合のデータを９０度回転、１８０度回転、２７０度回転させた場合とに対応する７つの第２評価点データを生成する一方、前記照明条件が二眼照明である場合には、前記第１評価点データを鏡像反転させた場合と、前記第１評価点データ及び前記鏡像反転させた場合のデータを１８０度回転させた場合とに対応する３つの第２評価点データを生成する。
【発明の効果】
【０００９】
本発明の一観点によれば、ＯＰＣ処理にかかる処理時間を短縮することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】設計装置を示す概略構成図。
【図２】フォトマスクの製造方法を示すフローチャート。
【図３】ＯＰＣ処理を示すフローチャート。
【図４】（ａ）補正前の図形データを示す説明図、（ｂ）頂点座標を示すテーブル。
【図５】（ａ）フラグメント処理後の図形データを示す説明図、（ｂ）識別番号を付与した後の図形データを示す説明図、（ｃ）同一シミュレーション点探索後の図形データを示す説明図。
【図６】エッジの始点座標及び終点座標を示すテーブル。
【図７】補正値を示すテーブル。
【図８】補正後の図形データを示す説明図。
【図９】第１実施形態の同一シミュレーション点の算出処理を示すフローチャート。
【図１０】識別番号Ｅ１５のシミュレーション影響範囲を示す説明図。
【図１１】シミュレーション点データの構造を示す説明図。
【図１２】識別番号Ｅ１５の０度回転のシミュレーション点データを示す説明図。
【図１３】（ａ）〜（ｈ）は、回転・鏡像後の識別番号Ｅ１５のシミュレーション影響範囲を示す説明図。
【図１４】回転・鏡像による座標の変換方法を示すテーブル。
【図１５】識別番号Ｅ１５の９０度回転のシミュレーション点データを示す説明図。
【図１６】識別番号Ｅ１５の１８０度回転のシミュレーション点データを示す説明図。
【図１７】識別番号Ｅ１５の２７０度回転のシミュレーション点データを示す説明図。
【図１８】識別番号Ｅ１５の０度回転＋鏡像のシミュレーション点データを示す説明図。
【図１９】識別番号Ｅ１５の９０度回転＋鏡像のシミュレーション点データを示す説明図。
【図２０】識別番号Ｅ１５の１８０度回転＋鏡像のシミュレーション点データを示す説明図。
【図２１】識別番号Ｅ１５の２７０度回転＋鏡像のシミュレーション点データを示す説明図。
【図２２】識別番号Ｅ４２のシミュレーション影響範囲を示す説明図。
【図２３】識別番号Ｅ４２の０度回転のシミュレーション点データを示す説明図。
【図２４】識別番号Ｅ４２の９０度回転のシミュレーション点データを示す説明図。
【図２５】識別番号Ｅ４２の１８０度回転のシミュレーション点データを示す説明図。
【図２６】識別番号Ｅ４２の２７０度回転のシミュレーション点データを示す説明図。
【図２７】識別番号Ｅ４２の０度回転＋鏡像のシミュレーション点データを示す説明図。
【図２８】識別番号Ｅ４２の９０度回転＋鏡像のシミュレーション点データを示す説明図。
【図２９】識別番号Ｅ４２の１８０度回転＋鏡像のシミュレーション点データを示す説明図。
【図３０】識別番号Ｅ４２の２７０度回転＋鏡像のシミュレーション点データを示す説明図。
【図３１】ステップＳ３６の詳細処理を示すフローチャート。
【図３２】整列結果例を示すテーブル。
【図３３】第１実施形態の識別番号の設定処理を示す説明図。
【図３４】第１実施形態の識別番号の設定処理を示す説明図。
【図３５】第１実施形態の識別番号の設定処理を示す説明図。
【図３６】第１実施形態の識別番号の設定処理を示す説明図。
【図３７】第１実施形態の識別番号の設定処理を示す説明図。
【図３８】第２実施形態の同一シミュレーション点の算出処理を示すフローチャート。
【図３９】（ａ）〜（ｄ）は、整列前後のデータを示すテーブル。
【図４０】識別番号Ｅ１５の０度回転のシミュレーション点データを示す説明図。
【図４１】（ａ）〜（ｄ）は、識別番号Ｅ１５の簡易シミュレーション点データを示す説明図。
【図４２】（ａ）〜（ｃ）は、識別番号Ｅ１５の簡易シミュレーション点データを示す説明図。
【図４３】識別番号Ｅ１５の整列結果を示すテーブル。
【図４４】識別番号Ｅ１５の９０度回転のシミュレーション点データを示す説明図。
【図４５】（ａ）〜（ｃ）は、識別番号Ｅ４２の簡易シミュレーション点データを示す説明図。
【図４６】（ａ）〜（ｄ）は、識別番号Ｅ４２の簡易シミュレーション点データを示す説明図。
【図４７】識別番号Ｅ４２の整列結果を示すテーブル。
【図４８】識別番号Ｅ８７のシミュレーション影響範囲を示す説明図。
【図４９】識別番号Ｅ８７の０度回転のシミュレーション点データを示す説明図。
【図５０】（ａ）〜（ｅ）は、識別番号Ｅ８７の簡易シミュレーション点データを示す説明図。
【図５１】（ａ）、（ｂ）は、識別番号Ｅ８７の簡易シミュレーション点データを示す説明図。
【図５２】識別番号Ｅ８７の整列結果を示すテーブル。
【図５３】識別番号Ｅ８７の１８０度回転のシミュレーション点データを示す説明図。
【図５４】識別番号Ｅ８７の０度回転＋鏡像のシミュレーション点データを示す説明図。
【図５５】ステップＳ６８の詳細処理を示すフローチャート。
【図５６】整列結果例を示すテーブル。
【図５７】第２実施形態の識別番号の設定処理を示す説明図。
【図５８】第２実施形態の識別番号の設定処理を示す説明図。
【図５９】第２実施形態の識別番号の設定処理を示す説明図。
【図６０】第２実施形態の識別番号の設定処理を示す説明図。
【図６１】（ａ）〜（ｃ）は、照明の形状を示す説明図。
【発明を実施するための形態】
【００１１】
（第１実施形態）
以下、第１実施形態を図１〜図３７に従って説明する。
図１に示すように、設計装置（コンピュータ）１０は、半導体装置の製造工程に用いるフォトマスクの描画データを生成するための装置であり、例えば一般的な設計支援装置（Computer Aided Design：ＣＡＤ）である。この設計装置１０は、中央処理装置（Central Processing Unit：ＣＰＵ）１１と、メモリ１２と、記憶装置１３と、表示装置１４と、入力装置１５と、ドライブ装置１６とを有している。これら各装置１１，１３，１４，１５，１６及びメモリ１２は、バス１７を介して相互に接続されている。
【００１２】
ＣＰＵ１１は、メモリ１２を利用してプログラムを実行し、描画データの生成、ＯＰＣ処理等の必要な処理を実現する。プログラムは、ＣＰＵ１１を描画データを生成する設計装置としての各種手段として機能させるためのものである。また、プログラムは、ＣＰＵ１１をＯＰＣ処理を実施する処理装置としての各種手段として機能させるためのものである。メモリ１２には、各種処理を提供するために必要なプログラムとデータが格納される。このメモリ１２としては、通常、キャッシュ・メモリ、システム・メモリ及びディスプレイ・メモリ等が含まれる。
【００１３】
表示装置１４は、パターン表示、パラメータ入力画面等の表示に用いられる。この表示装置１４としては、例えばＣＲＴ，ＬＣＤ，ＰＤＰ等が用いられる。入力装置１５は、ユーザからの要求や指示、パターン、パラメータの入力に用いられる。この入力装置１５としては、例えばキーボード及びマウス装置等が用いられる。
【００１４】
設計装置１０は、設計データや描画データに基づくパターン（図形）を表示装置１４に表示させる。そして、設計装置１０は、ユーザが操作する入力装置１５からの信号に従って、表示装置１４上のパターンの追加、削除を行うとともに、レイアウトデータに対してパターンデータの追加、削除を行う。
【００１５】
記憶装置１３は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置等を含む。この記憶装置１３には、描画データを生成するためのプログラムデータやＯＰＣ処理を実施するためのプログラムデータが格納されている。また、記憶装置１３には、例えば図２、図３及び図９に示すファイル２０〜２３が格納される。なお、以下の説明において、各ファイルに含まれるデータの総称に各ファイルの符号を付して説明する。ＣＰＵ１１は、入力装置１５による指示に応答してプログラムやデータをメモリ１２に転送し、それを実行する。
【００１６】
ＣＰＵ１１が実行するプログラムデータは、記録媒体１８にて提供される。ドライブ装置１６は、記録媒体１８を駆動し、その記憶内容にアクセスする。ＣＰＵ１１は、ドライブ装置１６を介して記録媒体１８からプログラムデータを読み出し、それを記憶装置１３にインストールする。
【００１７】
記録媒体１８としては、磁気テープ（ＭＴ）、メモリカード、フレキシブルディスク、光ディスク（ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭなど）、光磁気ディスク（ＭＯ，ＭＤなど）等、任意のコンピュータ読み取り可能な記録媒体を使用することができる。この記録媒体１８に、上述のプログラムやデータを格納しておき、必要に応じて、メモリ１２にロードして使用することもできる。
【００１８】
なお、記録媒体１８には、通信媒体を介してアップロード又はダウンロードされたプログラムデータを記録した媒体やディスク装置が含まれる。さらに、コンピュータによって直接実行可能なプログラムを記録した記録媒体だけでなく、一旦他の記録媒体（ハードディスク等）にインストールすることによって実行可能となるようなプログラムを記録した記録媒体や、暗号化されたり、圧縮されたりしたプログラムを記録した記録媒体も含まれる。
【００１９】
次に、フォトマスク（レチクル）の製造方法について説明する。ここで、フォトマスクは、基板と、その基板上に形成されたマスクパターンとを含む。基板は例えば石英ガラスであり、マスクパターンは例えばクロム等の金属パターンである。上記フォトマスクは、そのフォトマスクに照明をあて、フォトマスク上に形成されたマスクパターンを、半導体装置を形成する半導体基板上に塗布された感光硬化膜、いわゆるレジストに転写するために用いられる。そして、マスクパターンが転写されて形成されたレジストのパターンをマスクにして半導体基板上の材料をエッチングすることにより、半導体装置の回路パターンが形成される。なお、上記フォトマスクは、レチクルや単にマスクとも呼ばれる。
【００２０】
図２に示すように、まず、ＣＰＵ１１は、予めデザインルール２０を設定し（ステップＳ１）、その設定したデザインルール２０を記憶装置１３に格納する。ここで、デザインルール２０とは、例えばレチクル上のマスクパターンを形成する上での制限事項のことである。例えばマスクパターンの最小線幅の確保、最小パターン間隔の確保、及び鋭角パターンの排除のための制限事項などがある。
【００２１】
次に、ＣＰＵ１１は、設計データ２１を作成し（ステップＳ２）、その作成した設計データ２１を記憶装置１３に格納する。この設計データ２１は、回路パターンのレイアウトデータを含む。回路パターンは、半導体等の基板に素子や配線を形成するためのパターンであり、レイアウトデータはパターンを形成する位置（座標値）やパターンの頂点の座標を含む。
【００２２】
続いて、ＣＰＵ１１は、作成された設計データ２１が規定のデザインルール２０を満たすか否かを判定する（ステップＳ３）。設計データ２１がデザインルール２０を満たさない場合には、ＣＰＵ１１は、そのデザインルール２０を満たさない設計データ２１部分について、デザインルール２０に適合するように設計データ２１を修正する（ステップＳ４）。その後、修正後の設計データ２１が規定のデザインルール２０を満たすか否かの検証が再度行われる（ステップＳ３）。
【００２３】
ステップＳ３において設計データ２１が規定のデザインルール２０を満たすと判定されると、ＣＰＵ１１は、光近接効果補正（ＯＰＣ）処理を行う（ステップＳ５）。ここで、ＯＰＣ処理の概略を説明する。
【００２４】
まず、レチクルに対して照明をあてると、レチクル上のマスクパターンの投影像が得られる。その投影像をレンズに通すと、縮小投影像が得られる。ここで、レチクル上のマスクパターンが照明光の波長に近づくと、いわゆる光の近接露光効果により、上記縮小投影像は、マスクパターンの完全な相似形でなくなる。そこで、レチクル上のマスクパターンを変形させて、縮小投影像が変形前のマスクパターンと相似形となるように、変形前のマスクパターンを形成するための設計データ２１を補正する必要がある。したがって、上記ＯＰＣ処理（ステップＳ５）は、上記ステップＳ２〜Ｓ４で作成された設計データ２１を補正（変形）して、変形後のレチクル上のマスクパターンを形成するための図形データを生成する処理である。
【００２５】
ここで、ＯＰＣにはルールベースＯＰＣとモデルベースＯＰＣとがあるが、本実施形態の上記ステップＳ５では、モデルベースＯＰＣが実行される。
次に、ＣＰＵ１１は、設計データ２１に対する補正が、上記縮小投影像を得るために適切な補正であるか否かを検証する（ステップＳ６）。設計データ２１に対する補正が適切でない場合には、ＣＰＵ１１は、ＯＰＣ処理のパラメータを修正する（ステップＳ７）。そして、ＣＰＵ１１は、修正後のパラメータを用いてＯＰＣ処理を再度実行する（ステップＳ５）。
【００２６】
上記ステップＳ６において設計データ２１に対する補正が適切であると判定されると、ＣＰＵ１１は、補正を行った設計データ２１に基づいて描画データを作成する（ステップＳ８）。ここで、描画データは、半導体装置の製造工程に用いるレチクルを作成するためのデータである。この描画データは、例えば図示しない露光装置が入力可能な形式のデータである。そして、露光装置は、その描画データに従って、基板上の金属薄膜（例えば、クロム膜）上に形成したレジスト膜に対して、電子ビームを照射して、金属薄膜上のレジストパターンを形成する（ステップＳ９）。
【００２７】
次に、ＣＰＵ１１は、上記ステップＳ９で形成されたレジストパターンの線幅を検証する（ステップＳ１０）。上記レジストパターンが規格値を満足しない場合には、ＣＰＵ１１は、露光装置における露光条件を変更する（ステップＳ１１）。但し、露光条件の変更だけでは上記レジストパターンの線幅を規格内に納めることができないと判断された場合には、ＯＰＣ処理のパラメータが修正され（ステップＳ７）、ＯＰＣ処理が再度実行される（ステップＳ５）。
【００２８】
上記ステップＳ１０において上記レジストパターンが規格値を満足すると判断された場合には、そのレジストパターンをマスクにして上記基板上の金属薄膜をエッチングし、金属薄膜パターン（マスクパターン）を形成する（ステップＳ１２）。
【００２９】
以上の製造工程により、基板上にマスクパターンが形成され、レチクルが製造される。
次に、ＯＰＣ処理（ステップＳ５）の詳細処理を図３〜図８に従って説明する。ここでは、図４（ａ）に示す図形データ３０，３１に対してＯＰＣ処理を実行する方法について説明する。図形データ３０，３１は、先のステップＳ２〜Ｓ４で作成された設計データ２１の回路パターン、つまりＯＰＣ処理前の図形データである。図形データ３０は複数の頂点Ｔ１〜Ｔ８を有し、図形データ３１は複数の頂点Ｔ１１〜Ｔ１８を有している。図形データ３０では、頂点Ｔ１〜Ｔ８のうち頂点番号の小さい頂点（例えば、頂点Ｔ１）を始点とし、次に頂点番号の大きい頂点（ここでは、頂点Ｔ２）を終点としたとき、その始点から終点に向かう進行方向の左側が図形の内部となる。同様に、図形データ３１では、頂点Ｔ１１〜Ｔ１８のうち頂点番号の小さい頂点（例えば、頂点Ｔ１１）を始点とし、次に頂点番号の大きい頂点（ここでは、頂点Ｔ１２）を終点としたとき、その始点から終点に向かう進行方向の左側が図形の内部となる。なお、これら頂点Ｔ１〜Ｔ８，Ｔ１１〜Ｔ１８の座標（ｘ，ｙ）は、図４（ｂ）に示した通りである。例えば頂点Ｔ１のｘ軸座標は１２．８７５０μｍであり、頂点Ｔ１のｙ軸座標は１２．０２５０μｍであるため、頂点Ｔ１の座標（ｘ，ｙ）は（１２８７５０，１２０２５０）である。この座標値は、０．１ｎｍ単位で表記されている。この表記方法は、以下の座標値でも同様である。
【００３０】
図３に示すように、まず、ＣＰＵ１１は、全ての図形データ３０，３１のエッジ（辺）に対してフラグメント処理を施す（ステップＳ２１）。ここで、フラグメント処理とは、補正対象の図形データ３０，３１を適切に補正ができるように、周辺図形の形状に応じて図形データ３０，３１を構成するエッジを複数に分割する処理のことである。具体的には、フラグメント処理では、頂点からの位置、あるいは近傍の図形のエッジを考慮して、予め設定された作成基準（作成ルール）に基づいて、図５（ａ）に示すように、図形データ３０，３１のエッジに分割点（ノード）Ｎが設定され、エッジが複数のエッジＡ１に分割される。ここで設定された分割点Ｎは、頂点Ｔ１〜Ｔ８，Ｔ１１〜Ｔ１８に設定された分割点Ｎ１と、各頂点間に設定された分割点Ｎ２とを有している。各頂点間に設定された分割点Ｎ２の数は、上記作成基準に基づいて適宜設定される。なお、分割点Ｎ間の距離、つまりエッジＡ１の距離が長くなると、後工程で実施する光近接露光効果の見積もりを行う際に高い精度で見積もりを行うことができないため、頂点間の距離が長いエッジには多くの分割点Ｎ２が設定される。
【００３１】
このように、本フラグメント処理によって図形データ３０，３１のエッジに分割点Ｎ（分割点Ｎ２）が設定されると、頂点間のエッジが細分化されるため、高い精度で光近接露光効果の見積もりを行うことができる。
【００３２】
次に、図３に示すステップＳ２２において、ＣＰＵ１１は、分割されたエッジＡ１に識別番号を付与する。ここでは、図５（ｂ）に示すように、図形データ３０，３１の８８個のエッジＡ１に、識別番号Ｅ０〜Ｅ８７が任意の順番で付与される。以下の説明では、識別番号Ｅ０〜Ｅ８７のエッジをそれぞれ、エッジＥ０〜Ｅ８７とも言う。これらエッジＥ０〜Ｅ８７は各々、始点から終点に向かう進行方向の左側が図形の内部となるように、始点となる分割点Ｎｓと終点となる分割点Ｎｅとを有している。これらエッジＥ０〜Ｅ８７の始点座標（ｘ，ｙ）及び終点座標（ｘ，ｙ）を示すエッジデータ２２は、図６に示したようになる。
【００３３】
例えばエッジＥ０では、そのエッジＥ０が有する分割点のうち、図５（ｂ）において下側の分割点Ｎｓが始点となり、図中上側の分割点Ｎｅが終点となる。そして、図６に示すように、エッジＥ０の始点の座標（ｘ，ｙ）は（１４０５５０，１１９５５０）となり、エッジＥ０の終点の座標は（１４０５５０，１２０２５０）となる。
【００３４】
なお、各エッジＥ０〜Ｅ８７の始点座標及び終点座標を示すエッジデータ２２は、記憶装置１３に格納される。このとき、例えば識別番号の小さいエッジのデータから順に、つまりエッジＥ０→Ｅ１→…→Ｅ８７の順に記憶装置１３に格納される。
【００３５】
続いて、図３に示すステップＳ２３において、ＣＰＵ１１は、後工程の光強度シミュレーションによるシミュレーション結果が同じになる箇所、すなわちシミュレーションを行う範囲内のエッジの形状・配置が同一になる箇所を同一シミュレーション点（同一評価点）として算出する。
【００３６】
詳述すると、上記識別番号の付与された各エッジＥ０〜Ｅ８７の中心点をシミュレーション点（評価点）とし、そのシミュレーション点を中心とした所定範囲内からエッジを切り出す。その切り出したエッジの始点及び終点の座標を、シミュレーション点の座標を原点（０，０）にした座標に変換（正規化）する。そして、この正規化したシミュレーション点のデータを他のシミュレーション点のデータと比較し、データが同一となるシミュレーション点、つまり光強度シミュレーションの結果が同一となるシミュレーション点が存在するか否かを探索する。さらに、この探索は、図形データ３０，３１から切り取ったままのシミュレーション点のデータと併せて、上記切り出したエッジを鏡像反転（ｘ軸反転又はｙ軸反転）させたデータや、上記切り出したエッジ及び鏡像反転させたエッジを９０度、１８０度、２７０度で回転させたデータについても行われる。すなわち、１つのシミュレーション点に対して８通りのデータが生成され、その全てのデータを利用して同一シミュレーション点の探索が行われる。
【００３７】
そして、同一シミュレーション点を算出した後、同一シミュレーション点が同じ識別番号となるように、上記エッジＥ０〜Ｅ８７に対して新たな識別番号を付与する。その新たな識別番号を付与した後の図形データ３０，３１を図５（ｃ）に示している。この図５（ｃ）では、８８個のエッジに対して識別番号Ｆ０〜Ｆ３１の３２個の識別番号が付与される。例えば本例では、図５（ｂ）、（ｃ）に示すように、エッジＥ１２，Ｅ１５，Ｅ４２，Ｅ４５（下線参照）が同一シミュレーション点であると算出されるため、これら４つのエッジに同じ識別番号Ｆ１５が付与される。
【００３８】
次に、図３に示すステップＳ２４において、ＣＰＵ１１は、光強度シミュレーションを実行する。ここでは、最も小さい識別番号Ｆ０が付与された２つのエッジのうちの１つのエッジの中心点をシミュレーション点として光強度シミュレーションが実行される。ここで、光強度シミュレーションとは、マスクパターンデータの光強度分布からレジストパターン形状（閾値における等高線）を予測する手法である。なお、本実施形態の光強度シミュレーションにおける光学条件は、照明形状を円形照明とし、シミュレーションを行う範囲をＦ×λ／ＮＡという式に応じて設定する。上記式において、Ｆは比例定数、λは露光波長、ＮＡは開口数である。
【００３９】
次に、ＣＰＵ１１は、上記予測されたレジストパターン形状と対象のエッジの形状との差分に基づいて、対象のエッジ（ここでは、エッジＦ０）に対する補正値を算出する（ステップＳ２５）。この算出された補正値は、図７に示すように識別番号と補正値とが関連付けされた補正値テーブル２３として記憶装置１３に格納される。上記補正値は、光によりウェハに転写（露光）される図形形状のエッジの位置を目的形状（露光しようとする図形）のエッジの位置に近づけるために、対象のエッジ（ここでは、エッジＦ０）をどの方向にどれだけ移動させるかを示した値である。すなわち、上記補正値は、上記光強度シミュレーションで予測されるパターン形状のエッジの位置を目的形状（例えば設計データの図形データ、ここでは図５（ａ）に示した図形データ３０，３１の形状）のエッジの位置に近づけるために、対象のエッジをどの方向にどれだけ移動させるかを示した値である。本例では、図７に示すように、エッジＦ０に対する補正値が＋３．５ｎｍと算出される。なお、補正値がプラス値である場合には対象エッジが図形の外側に平行に移動されることを示し、補正値がマイナス値である場合には対象エッジが図形の内側に平行に移動されることを示している。
【００４０】
次に、図３に示すステップＳ２６において、ＣＰＵ１１は、異なる識別番号の付与された全てのシミュレーション点についての処理（光強度シミュレーション及び補正値算出）が終了したか否かを判定する。このとき、処理の終了していないシミュレーション点が存在する場合には、次の識別番号のエッジ（例えば識別番号Ｆ１が付与されたエッジ）の中心点をシミュレーション点として光強度シミュレーションが実行される（ステップＳ２４）。続いて、そのエッジＦ１に対する補正値が算出される（ステップＳ２５）。これらステップＳ２４〜Ｓ２６の処理が繰り返し実行されることにより、異なる識別番号の付与された全てのエッジＦ０〜Ｆ３１に対して光強度シミュレーションが実施され、さらに図７に示されるように、それらエッジＦ０〜Ｆ３１に対する補正値が算出される。
【００４１】
このようなステップＳ２４〜Ｓ２６の処理では、既に補正値の算出されたエッジと同じ識別番号が付与されたエッジについては、上記既に算出された補正値を利用することができるため、光強度シミュレーションが省略される。このようにして、計算量が多く膨大な処理時間の必要な光強度シミュレーションを実施する回数を減らすことができる。本例では、３２回の光強度シミュレーションを行うことにより、８８個の全エッジに対する補正値を算出することができる。
【００４２】
次に、ＣＰＵ１１は、記憶装置１３から読み出した補正値に基づいて各エッジＦ０〜Ｆ３１を移動し、図形データ３０，３１を補正する（ステップＳ２７）。この補正処理によって、図８に示す図形データ３０Ａ，３１Ａが得られる。
【００４３】
続いて、ＣＰＵ１１は、処理精度などに応じて設定された回数の反復処理が終了したか否かを判定する（ステップＳ２８）。規定の回数の反復処理が終了していない場合には、上記ステップＳ２７で得られた図形データ３０Ａ，３１Ａに対してステップＳ２３〜Ｓ２７の処理が実行される。このように反復処理を繰り返し実行することにより、光強度シミュレーションで予測されるパターン形状が目的形状に近づく、つまり上記ステップＳ２７で得られる図形のエッジの位置が実際に露光装置で露光されるときのエッジの位置に近づく。このため、反復処理の回数が多くなるほど、ＯＰＣ処理による補正精度が高くなる。
【００４４】
次に、上記同一シミュレーション点の算出処理（ステップＳ２３）の詳細処理を図９〜図３０に従って説明する。ここでは、図５（ｂ）に示すエッジＥ１５とエッジＥ４２の２つのシミュレーション点を例に挙げて説明する。なお、これら２つのシミュレーション点は、上述したように同一シミュレーション点である。
【００４５】
まず、図９に示すステップＳ３１において、対象のエッジ（ここでは、エッジＥ１５）の中心座標（１３９３００，１１９５５０）をシミュレーション点（評価点）ＳＥ１５に設定する。続いて、図１０に示すように、このシミュレーション点ＳＥ１５を中心にして、後工程である光強度シミュレーションを実施する際にそのシミュレーションの影響が及ぶ影響範囲ＩＲを設定する。
【００４６】
ここで、影響範囲ＩＲは、光強度シミュレーションの光学条件（例えば、シミュレーションを行う範囲）に応じて設定される、つまりＦ×λ／ＮＡという式に応じて設定される。例えば光強度シミュレーションにおいて高い補正精度を必要とする場合には、比例定数Ｆが高く設定され、影響範囲ＩＲが広く設定される。これは、影響範囲ＩＲの外のエッジがシミュレーション点に対して全く影響を及ぼさないわけではないため、影響範囲ＩＲが広く設定されると、影響の小さいエッジまで考慮することになるからである。本実施形態では、シミュレーション点ＳＥ１５から０．１２μｍまでの範囲が影響範囲に設定される。このため、実際の影響範囲ＩＲ１は円形状となる。但し、ここでは、処理の簡便化のために、円形の影響範囲ＩＲ１を内接円とする四角形の範囲が上記影響範囲ＩＲとして設定される。
【００４７】
そして、ＣＰＵ１１は、このように設定された影響範囲ＩＲ内の１０個のエッジＥ２，Ｅ５，Ｅ６，Ｅ９，Ｅ１２，Ｅ１５，Ｅ１６，Ｅ１９，Ｅ２０，Ｅ２３のエッジデータ２２（図６参照）を切り出す。すなわち、ＣＰＵ１１は、上記１０個のエッジのエッジデータ２２を記憶装置１３から読み出す。続いて、影響範囲ＩＲから一部がはみ出すエッジＥ２，Ｅ５，Ｅ２０，Ｅ２３を影響範囲ＩＲで切り出すためにエッジを切断する。すると、始点座標（１４０５５０，１２０２５０）及び終点座標（１４００５０，１２０２５０）であるエッジＥ２の一部が切断された後のエッジＥ２Ａでは、始点座標が（１４０５００，１２０２５０）となり、終点座標が（１４００５０，１２０２５０）となる。同様に、始点座標（１４００５０，１１９５５０）及び終点座標（１４０５５０，１１９５５０）であるエッジＥ５の一部が切断された後のエッジＥ５Ａでは、始点座標が（１４００５０，１１９５５０）となり、終点座標が（１４０５５０，１１９５５０）となる。始点座標（１３８５０５，１２０２５０）及び終点座標（１３７９６０，１２０２５０）であるエッジＥ２０の一部が切断された後のエッジＥ２０Ａでは、始点座標が（１３８５０５，１２０２５０）となり、終点座標が（１３８１００，１２０２５０）となる。始点座標（１３７９６０，１１９５５０）及び終点座標（１３８５０５，１１９５５０）であるエッジＥ２３の一部が切断された後のエッジＥ２３Ａでは、始点座標が（１３８１００，１１９５５０）となり、終点座標が（１３８５０５，１１９５５０）となる。なお、ここでは、同一シミュレーション点の一致精度を向上させるために影響範囲ＩＲからはみ出すエッジを切断するようにしたが、影響範囲ＩＲからはみ出すエッジを切断しなくとも同一シミュレーション点を判定することはできる。
【００４８】
次に、図９に示すステップＳ３２において、ＣＰＵ１１は、シミュレーション点ＳＥ１５の座標で、上記切り出されたエッジデータ（始点座標及び終点座標）を正規化する。具体的には、切り出されたエッジの始点座標及び終点座標が、シミュレーション点ＳＥ１５の座標を原点（０，０）にした座標に変換される。すなわち、切り出されたエッジの始点座標及び終点座標からシミュレーション点ＳＥ１５の座標（１３９３００，１１９５５０）がオフセットされる。例えばエッジＥ２３Ａの始点座標（１３８１００，１１９５５０）が正規化されると、ｘ座標が−１２００（＝１３８１００−１３９３００）、ｙ座標が０（＝１１９５５０−１１９５５０）となるため、図１２に示すように、エッジＥ２３Ａの始点座標は（−１２００，０）となる。また、エッジＥ２３Ａの終点座標（１３８５０５，１１９５５０）が正規化されると、エッジＥ２３Ａの終点座標は（−７９５，０）となる。
【００４９】
同様に、正規化されたエッジＥ１９の始点座標及び終点座標はそれぞれ（−７９５，０）及び（−２５０，０）となり、正規化されたエッジＥ１５の始点座標及び終点座標はそれぞれ（−２５０，０）及び（２５０，０）となる。正規化されたエッジＥ９の始点座標及び終点座標はそれぞれ（２５０，０）及び（７５０，０）となり、正規化されたエッジＥ５Ａの始点座標及び終点座標はそれぞれ（７５０，０）及び（１２００，０）となる。正規化されたエッジＥ２０Ａの始点座標及び終点座標はそれぞれ（−７９５，７００）及び（−１２００，７００）となり、正規化されたエッジＥ１６の始点座標及び終点座標はそれぞれ（−２５０，７００）及び（−７９５，７００）となる。正規化されたエッジＥ１２の始点座標及び終点座標はそれぞれ（２５０，７００）及び（−２５０，７００）となり、正規化されたエッジＥ６の始点座標及び終点座標はそれぞれ（７５０，７００）及び（２５０，７００）となり、正規化されたエッジＥ２Ａの始点座標及び終点座標はそれぞれ（１２００，７００）及び（７５０，７００）となる。なお、このとき、各座標値が０．１ｎｍ単位で記憶装置１３に格納されているため、座標値を整数で扱うことができ、誤差を考慮する必要がなくなる。これにより、処理が簡素化される。
【００５０】
そして、正規化されたエッジデータについて、正規化されたエッジの始点ｘ座標，始点ｙ座標，終点ｘ座標，終点ｙ座標をソートキーに含めてソート（整列）を行う。一例として本実施形態では、始点終点の小さい方のｙ座標を第１キーとして昇順ソートし、始点終点の大きい方のｙ座標を第２キーとして昇順ソートし、始点終点の小さい方のｘ座標を第３キーとして昇順ソートし、始点終点の大きい方のｘ座標を第４キーとして昇順ソートする。このソートの結果、本例では、エッジＥ２３Ａ→Ｅ１９→Ｅ１５→Ｅ９→Ｅ５Ａ→Ｅ２０Ａ→Ｅ１６→Ｅ１２→Ｅ６→Ｅ２Ａの順番で整列される。
【００５１】
このように正規化及びソートされたエッジの始点座標及び終点座標は、図１１及び図１２に示すような形式でエッジデータＤ２０（Ｄ２１）として記憶装置１３に格納される。具体的には、エッジデータＤ２０は、影響範囲ＩＲ内のエッジ数（ｎ）分だけの上記正規化後のエッジデータＤ２１を有する。１つのエッジに対応するエッジデータＤ２１は、対応エッジの始点ｘ座標が格納されたデータＤ２２と、対応エッジの始点ｙ座標が格納されたデータＤ２３と、対応エッジの終点ｘ座標が格納されたデータＤ２４と、対応エッジの終点ｙ座標が格納されたデータＤ２５とを有する。そして、このエッジデータＤ２０内におけるエッジデータＤ２１の格納順序は、上述したソートによる整列順序に対応している。すなわち、本例の評価点ＳＥ１５のエッジデータＤ２０では、図１２に示すように、エッジＥ２３Ａ，Ｅ１９，Ｅ１５，Ｅ９，Ｅ５Ａ，Ｅ２０Ａ，Ｅ１６，Ｅ１２，Ｅ６，Ｅ２ＡのエッジデータＤ２１がこの順序で格納されている。なお、図１２では、図面の簡素化のために、図１１に示したデータＤ２２〜Ｄ２５に相当するエッジデータＤ２１を１つの区画にまとめて表記しているが、実際には、データＤ２２〜Ｄ２５は別々の区画（メモリ領域）に格納される。
【００５２】
上述のように正規化したことと、始点ｘ座標，始点ｙ座標，終点ｘ座標，終点ｙ座標を全てキーに含めてソートしたことにより、エッジデータＤ２０を先頭から順に比較することで他のシミュレーション点と同一のシミュレーション結果となる個所、つまり同一シミュレーション点データを見つけることができるようになる。
【００５３】
次に、図９に示すステップＳ３３において、ＣＰＵ１１は、対象の評価点ＳＥ１５に対するシミュレーション点データＤ１を作成する。図１１及び図１２に示すように、シミュレーション点データＤ１は、シミュレーション点データＤ１０とエッジデータＤ２０とを有する。
【００５４】
シミュレーション点データＤ１０は、対象のシミュレーション点を識別する識別番号が格納されたデータＤ１１と、エッジデータＤ２０内の始点ｘ座標及び終点ｘ座標の合計値が格納されたデータＤ１２と、エッジデータＤ２０内の始点ｙ座標及び終点ｙ座標の合計値が格納されたデータＤ１３とを有する。また、シミュレーション点データＤ１０は、オフセットｘ値、つまりシミュレーション点のｘ座標が格納されたデータＤ１４と、オフセットｙ値、つまりシミュレーション点のｙ座標が格納されたデータＤ１５と、上記影響範囲ＩＲ内のエッジ数が格納されたデータＤ１６とを有する。さらに、シミュレーション点データＤ１０は、上記エッジデータＤ２０が格納されているメモリアドレスが格納されたデータＤ１７を有する。
【００５５】
本例の評価点ＳＥ１５のシミュレーション点データＤ１では、図１２に示すように、識別番号が１５、ｘ座標の合計値が−１８０、ｙ座標の合計値が７０００、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０、エッジ数が１０となる。また、シミュレーション点データＤ１０のデータＤ１７には、エッジデータＤ２０、具体的にはエッジＥ２３Ａ，Ｅ１９，Ｅ１５，Ｅ９，Ｅ５Ａ，Ｅ２０Ａ，Ｅ１６，Ｅ１２，Ｅ６，Ｅ２ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。ここで、上記ｘ座標の合計値は以下のように算出されたものである。すなわち、エッジデータＤ２０のうち始点ｘ座標の合計値が−９０（＝−１２００−７９５−２５０＋２５０＋７５０−７９５−２５０＋２５０＋７５０＋１２００）と算出され、終点ｘ座標の合計値が−９０（＝−７９５−２５０＋２５０＋７５０＋１２００−１２００−７９５−２５０＋２５０＋７５０）と算出される。このため、これら始点ｘ座標の合計値と終点ｘ座標の合計値を合算した値−１８０が上記ｘ座標の合計値になる。なお、上記ｙ座標の合計値についても同様に算出される。
【００５６】
次に、図９に示すステップＳ３４において、ＣＰＵ１１は、図１０に示した影響範囲ＩＲ内の図形（エッジ）を９０度回転、１８０度回転、２７０度回転させた場合、図１０に示した図形を鏡像反転させた場合、及び鏡像反転させた図形を９０度回転、１８０度回転、２７０度回転させた場合の７通りのシミュレーション点データＤ２を作成する。なお、以下の説明では、説明の便宜上、図１０に示した影響範囲ＩＲ内の図形、つまり図形データ３０，３１から切り出したままの図形を０度回転の図形とも称する。
【００５７】
図１３には、０度回転の図形（図１３（ａ）参照）、０度回転の図形を左回りに９０度回転させた図形（図１３（ｂ）参照）、０度回転の図形を左回りに１８０度回転させた図形（図１３（ｃ）参照）、０度回転の図形を左回りに２７０度回転させた図形（図１３（ｄ）参照）が示されている。また、図１３には、０度回転の図形を鏡像反転（ここでは、ｙ軸反転）させた図形（図１３（ｅ）参照）、鏡像反転させた図形を左回りに９０度回転させた図形（図１３（ｆ）参照）が示されている。さらに、図１３には、鏡像反転させた図形を左回りに１８０度回転させた図形（図１３（ｇ）参照）、鏡像反転させた図形を左回りに２７０度回転させた図形（図１３（ｈ）参照）が示されている。なお、回転方向は右回りであってもよく、鏡像反転はｘ軸反転であってもよい。また、鏡像反転させた後の図形を所定の角度で回転させるようにしたが、９０度回転、１８０度回転、２７０回転させた後に鏡像反転させるようにしてもよい。
【００５８】
このように回転・鏡像された場合の図形のエッジの座標は、図１４に示す変換テーブル２４を利用して、０度回転の図形のエッジの座標値を座標変換することにより算出することができる。例えば０度回転の図形のある点の座標を（ｘ，ｙ）とすると、９０度回転後の同一点における座標は（−ｙ，ｘ）と座標変換することにより求めることができる。また、鏡像反転させた場合には、エッジの始点から終点に向かう方向が鏡像反転前とは逆方向になるため、始点から終点に向かう進行方向の左側が常に図形の内部となるように、エッジの始点座標と終点座標とが入れ替えられる。すなわち、０度回転の図形のあるエッジの始点座標及び終点座標をそれぞれ（ｘ１，ｙ１）、（ｘ２，ｙ２）とすると、０度回転＋鏡像後の同一エッジの始点座標及び終点座標は（−ｘ２，ｙ２）、（−ｘ１，ｙ１）となる。
【００５９】
そして、０度回転のシミュレーション点データＤ１（図１２参照）に対して上記変換テーブル２４に従って座標変換を行うことにより、図１５〜図２１に示すように、上記７通りのシミュレーション点データＤ２を作成する。以下に、ここで作成される７通りのシミュレーション点データＤ２について説明する。なお、これらシミュレーション点データＤ２は、上記シミュレーション点データＤ１と同様のデータ構造を有している。
【００６０】
図１５に示すように、９０度回転のシミュレーション点データＤ２では、識別番号が１５、ｘ座標の合計値が−７０００、ｙ座標の合計値が−１８０、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０、エッジ数が１０となる。このとき、ｘ座標の合計値及びｙ座標の合計値は、０度回転のシミュレーション点データＤ１（図１２参照）におけるｘ座標の合計値及びｙ座標の合計値に対して上記座標変換が行われて算出される。また、９０度回転のシミュレーション点データＤ１０のデータＤ１７には、エッジＥ２０Ａ，Ｅ２３Ａ，Ｅ１６，Ｅ１９，Ｅ１２，Ｅ１５，Ｅ６，Ｅ９，Ｅ２Ａ，Ｅ５ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０メモリアドレスが格納されている。この各エッジのエッジデータＤ２１は、０度回転時の同一エッジのエッジデータＤ２１（始点ｘ座標、始点ｙ座標、終点ｘ座標及び終点ｙ座標）に対して上記座標変換が行われて作成されたものであり、上記シミュレーション点データＤ１のエッジデータＤ２０とは別のメモリ領域に格納されたデータである。例えばエッジＥ２０Ａの始点座標（−７００，−７９５）及び終点座標（−７００，−１２００）は、０度回転時のエッジＥ２０Ａの始点座標（−７９５，７００）及び終点座標（−１２００，７００）が座標変換されて算出される。また、上記座標変換されたエッジデータＤ２１について、０度回転時と同様のソート処理（座標変換後の始点ｘ座標，始点ｙ座標，終点ｘ座標，終点ｙ座標を全てキーに含めたソート処理）が行われ、その結果（整列順序）に対応する順序でエッジデータＤ２１がエッジデータＤ２０内に格納されている。
【００６１】
図１６に示すように、１８０度回転のシミュレーション点データＤ２では、識別番号が１５、ｘ座標の合計値が１８０、ｙ座標の合計値が−７０００、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ２Ａ，Ｅ６，Ｅ１２，Ｅ１６，Ｅ２０Ａ，Ｅ５Ａ，Ｅ９，Ｅ１５，Ｅ１９，Ｅ２３ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。
【００６２】
図１７に示すように、２７０度回転のシミュレーション点データＤ２では、識別番号が１５、ｘ座標の合計値が７０００、ｙ座標の合計値が１８０、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ５Ａ，Ｅ２Ａ，Ｅ９，Ｅ６，Ｅ１５，Ｅ１２，Ｅ１９，Ｅ１６，Ｅ２３Ａ，Ｅ２０ＡのエッジデータＤ２０が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。
【００６３】
図１８に示すように、０度回転＋鏡像のシミュレーション点データＤ２では、識別番号が１５、ｘ座標の合計値が１８０、ｙ座標の合計値が７０００、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ５Ａ，Ｅ９，Ｅ１５，Ｅ１９，Ｅ２３Ａ，Ｅ２Ａ，Ｅ６，Ｅ１２，Ｅ１６，Ｅ２０ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。ここで、エッジＥ５Ａの始点座標（−１２００，０）は、０度回転時のエッジＥ５Ａの終点座標（１２００，０）が上記変換テーブル２４（図１４参照）に従って座標変換されて算出される。また、エッジＥ５Ａの終点座標（−７５０，０）は、０度回転時のエッジＥ５Ａの始点座標（７５０，０）が変換テーブル２４に従って座標変換されて算出される。
【００６４】
図１９に示すように、９０度回転＋鏡像のシミュレーション点データＤ２では、識別番号が１５、ｘ座標の合計値が−７０００、ｙ座標の合計値が１８０、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ２Ａ，Ｅ５Ａ，Ｅ６，Ｅ９，Ｅ１２，Ｅ１５，Ｅ１６，Ｅ１９，Ｅ２０Ａ，Ｅ２３ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。
【００６５】
図２０に示すように、１８０度回転＋鏡像のシミュレーション点データＤ２では、識別番号が１５、ｘ座標の合計値が−１８０、ｙ座標の合計値が−７０００、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ２０Ａ，Ｅ１６，Ｅ１２，Ｅ６，Ｅ２Ａ，Ｅ２３Ａ，Ｅ１９，Ｅ１５，Ｅ９，Ｅ５ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。
【００６６】
図２１に示すように、２７０度回転＋鏡像のシミュレーション点データＤ２では、識別番号が１５、ｘ座標の合計値が７０００、ｙ座標の合計値が−１８０、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ２３Ａ，Ｅ２０Ａ，Ｅ１９，Ｅ１６，Ｅ１５，Ｅ１２，Ｅ９，Ｅ６，Ｅ５Ａ，Ｅ２ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。
【００６７】
そして、ＣＰＵ１１は、以上のように作成された７つのシミュレーション点データＤ２を記憶装置１３に格納する。
ここで、上記シミュレーション点データが作成される回転・鏡像状態（つまり、同一シミュレーション点を算出する際に考慮される回転・鏡像状態）は、光強度シミュレーションにおける照明条件（照明形状）に応じて設定される。例えば本例のように照明形状が円形形状である場合には、シミュレーション点を中心にしてどの角度で回転させた場合のエッジデータでも、シミュレーション点を通るどのような方向の直線で鏡像させた場合のエッジデータでも、シミュレーション結果は同じになる。一方、微細化されたＬＳＩを構成する図形のエッジの大半は水平垂直線で表わすことができる。なお、ＬＳＩのチップ面積を小さくするために、水平垂直線以外の斜めのエッジを僅かながら使用することもあるが、水平垂直線以外のエッジ上に設定されたシミュレーション点と水平垂直線で表わされるエッジ上に設定されたシミュレーション点とが同一シミュレーション点となることは殆どない。このため、同じシミュレーション結果となる同一シミュレーション点を探索する場合、０度回転、９０度回転、１８０度回転、２７０度回転、及びそれらの回転に鏡像を加えた８通りのシミュレーション点データを探索すれば、同一シミュレーション点を略全て探索することができる。そこで、本実施形態では、上述したように上記８通りのシミュレーション点データＤ１，Ｄ２を作成するようにした。
【００６８】
次に、図９に示すステップＳ３５において、ＣＰＵ１１は、全てのシミュレーション点（エッジ）に対するシミュレーション点データＤ１，Ｄ２の作成処理が終了したか否かを判定する。全ての作成処理が終了していないと判定された場合には、次のシミュレーション点（エッジ）に対するシミュレーション点データＤ１の作成処理を実行する（ステップＳ３１〜Ｓ３３）。
【００６９】
ここでは、エッジＥ１５に対する作成処理に続いて、エッジＥ４２の中心座標（１３７１６５，１２０２５０）がシミュレーション点（評価点）ＳＥ４２に設定される。続いて、図２２に示すように、評価点ＳＥ４２を中心にして、上記エッジＥ１５の際と同様に四角形状の影響範囲ＩＲが設定される。次いで、影響範囲ＩＲ内の１０個のエッジＥ２０，Ｅ２３，Ｅ２６，Ｅ３６，Ｅ３９，Ｅ４２，Ｅ４５，Ｅ４８，Ｅ５０，Ｅ５８のエッジデータ２２（図６参照）が記憶装置１３から読み出される（ステップＳ３１）。そして，影響範囲ＩＲから一部がはみ出すエッジＥ２０，Ｅ２３，Ｅ４８，Ｅ５８を影響範囲ＩＲで切り出すためにエッジを切断する。すると、始点座標（１３８５０５，１２０２５０）及び終点座標（１３７９６０，１２０２５０）であるエッジＥ２０の一部が切断された後のエッジＥ２０Ｂでは、始点座標が（１３８３６５，１２０２５０）となり、終点座標が（１３７９６０，１２０２５０）となる。同様に、始点座標（１３７９６０，１１９５５０）及び終点座標（１３８５０５，１１９５５０）であるエッジＥ２３の一部が切断された後のエッジＥ２３Ｂでは、始点座標が（１３７９６０，１１９５５０）となり、終点座標が（１３８３６５，１１９５５０）となる。始点座標（１３６４１５，１２０２５０）及び終点座標（１３５９１５，１２０２５０）であるエッジＥ４８の一部が切断された後のエッジＥ４８Ａでは、始点座標が（１３５９６５，１２０２５０）となり、終点座標が（１３５９１５，１２０２５０）となる。始点座標（１３５９１５，１１９５５０）及び終点座標（１３６４１５，１１９５５０）であるエッジＥ５８の一部が切断された後のエッジＥ５８Ａでは、始点座標が（１３５９１５，１１９５５０）となり、終点座標が（１３５９６５，１１９５５０）となる。
【００７０】
次に、切り出されたエッジの始点座標及び終点座標が評価点ＳＥ４２の座標で正規化され、さらに正規化されたエッジデータＤ２１が上述と同様の条件でソートされる。その正規化及びソート後のエッジデータＤ２１が順に格納されたエッジデータＤ２０（図２３参照）が記憶装置１３に格納される。
【００７１】
ここで、正規化されたエッジＥ５８Ａの始点座標及び終点座標はそれぞれ（−１２００，−７００）及び（−７５０，−７００）となり、正規化されたエッジＥ５０の始点座標及び終点座標はそれぞれ（−７５０，−７００）及び（−２５０，−７００）となる。正規化されたエッジＥ４５の始点座標及び終点座標はそれぞれ（−２５０，−７００）及び（２５０，−７００）となり、正規化されたエッジＥ３９の始点座標及び終点座標はそれぞれ（２５０，−７００）及び（７９５，−７００）となる。正規化されたエッジＥ２３Ｂの始点座標及び終点座標はそれぞれ（７９５，−７００）及び（１２００，−７００）となり、正規化されたエッジＥ４８Ａの始点座標及び終点座標はそれぞれ（−７５０，０）及び（−１２００，０）となる。正規化されたエッジＥ２６の始点座標及び終点座標はそれぞれ（−２５０，０）及び（−７５０，０）となり、正規化されたエッジＥ４２の始点座標及び終点座標はそれぞれ（２５０，０）及び（−２５０，０）となる。正規化されたエッジＥ３６の始点座標及び終点座標はそれぞれ（７９５，０）及び（２５０，０）となり、正規化されたエッジＥ２０Ｂの始点座標及び終点座標はそれぞれ（１２００，０）及び（７９５，０）となる。
【００７２】
次に、エッジＥ４２の０度回転のシミュレーション点データＤ１が作成される（ステップＳ３３）。図２３に示すように、０度回転のシミュレーション点データＤ１では、識別番号が４２、ｘ座標の合計値が１８０、ｙ座標の合計値が−７０００、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０、エッジ数が１０となる。また、シミュレーション点データＤ１０のデータＤ１７には、エッジＥ５８Ａ，Ｅ５０，Ｅ４５，Ｅ３９，Ｅ２３Ｂ，Ｅ４８Ａ，Ｅ２６，Ｅ４２，Ｅ３６，Ｅ２０ＢのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。この識別番号Ｅ４２の０度回転のシミュレーション点データＤ１におけるｘ座標の合計値、ｙ座標の合計値及びエッジ数は、図１６に示した識別番号Ｅ１５の１８０度回転のシミュレーション点データＤ２のそれと全て一致する。さらに、識別番号Ｅ４２の０度回転のエッジデータＤ２０（１０個のエッジデータＤ２１）も、図１６に示した識別番号Ｅ１５の１８０度回転のエッジデータＤ２０（１０個のエッジデータＤ２１）と全て一致する。
【００７３】
そして、このように作成されたシミュレーション点データＤ１が記憶装置１３に格納される。
次に、ＣＰＵ１１は、図２４〜図３０に示すように、対象の評価点ＳＥ４２に対する７通りのシミュレーション点データＤ２を作成する。以下に、ここで作成されるシミュレーション点データＤ２について説明する。
【００７４】
図２４に示すように、９０度回転のシミュレーション点データＤ２では、識別番号が４２、ｘ座標の合計値が７０００、ｙ座標の合計値が１８０、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ４８Ａ，Ｅ５８Ａ，Ｅ２６，Ｅ５０，Ｅ４２，Ｅ４５，Ｅ３６，Ｅ３９，Ｅ２０Ｂ，Ｅ２３ＢのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。この識別番号Ｅ４２の９０度回転のシミュレーション点データＤ１０におけるｘ座標の合計値、ｙ座標の合計値及びエッジ数とエッジデータＤ２０とは、図１７に示した識別番号Ｅ１５の２７０度回転時のそれと全て一致する。
【００７５】
図２５に示すように、１８０度回転のシミュレーション点データＤ２では、識別番号が４２、ｘ座標の合計値が−１８０、ｙ座標の合計値が７０００、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ２０Ｂ，Ｅ３６，Ｅ４２，Ｅ２６，Ｅ４８Ａ，Ｅ２３Ｂ，Ｅ３９，Ｅ４５，Ｅ５０，Ｅ５８ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。この識別番号Ｅ４２の１８０度回転のシミュレーション点データＤ１０におけるｘ座標の合計値、ｙ座標の合計値及びエッジ数とエッジデータＤ２０とは、図１２に示した識別番号Ｅ１５の０度回転時のそれと全て一致する。
【００７６】
図２６に示すように、２７０度回転のシミュレーション点データＤ２では、識別番号が４２、ｘ座標の合計値が−７０００、ｙ座標の合計値が−１８０、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ２３Ｂ，Ｅ２０Ｂ，Ｅ３９，Ｅ３６，Ｅ４５，Ｅ４２，Ｅ５０，Ｅ２６，Ｅ５８Ａ，Ｅ４８ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。この識別番号Ｅ４２の２７０度回転のシミュレーション点データＤ１０におけるｘ座標の合計値、ｙ座標の合計値及びエッジ数とエッジデータＤ２０とは、図１５に示した識別番号Ｅ１５の９０度回転時のそれと全て一致する。
【００７７】
図２７に示すように、０度回転＋鏡像のシミュレーション点データＤ２では、識別番号が４２、ｘ座標の合計値が−１８０、ｙ座標の合計値が−７０００、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ２３Ｂ，Ｅ３９，Ｅ４５，Ｅ５０，Ｅ５８Ａ，Ｅ２０Ｂ，Ｅ３６，Ｅ４２，Ｅ２６，Ｅ４８ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。この識別番号Ｅ４２の０度回転＋鏡像のシミュレーション点データＤ１０におけるｘ座標の合計値、ｙ座標の合計値及びエッジ数とエッジデータＤ２０とは、図２０に示した識別番号Ｅ１５の１８０度回転＋鏡像時のそれと全て一致する。
【００７８】
図２８に示すように、９０度回転＋鏡像のシミュレーション点データＤ２では、識別番号が４２、ｘ座標の合計値が７０００、ｙ座標の合計値が−１８０、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ２０Ｂ，Ｅ２３Ｂ，Ｅ３６，Ｅ３９，Ｅ４２，Ｅ４５，Ｅ２６，Ｅ５０，Ｅ４８Ａ，Ｅ５８ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。この識別番号Ｅ４２の９０度回転＋鏡像のシミュレーション点データＤ１０におけるｘ座標の合計値、ｙ座標の合計値及びエッジ数とエッジデータＤ２０とは、図２１に示した識別番号Ｅ１５の２７０度回転＋鏡像時のそれと全て一致する。
【００７９】
図２９に示すように、１８０度回転＋鏡像のシミュレーション点データＤ２では、識別番号が４２、ｘ座標の合計値が１８０、ｙ座標の合計値が７０００、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ４８Ａ，Ｅ２６，Ｅ４２，Ｅ３６，Ｅ２０Ｂ，Ｅ５８Ａ，Ｅ５０，Ｅ４５，Ｅ３９，Ｅ２３ＢのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。この識別番号Ｅ４２の１８０度回転＋鏡像のシミュレーション点データＤ１０におけるｘ座標の合計値、ｙ座標の合計値及びエッジ数とエッジデータＤ２０とは、図１８に示した識別番号Ｅ１５の０度回転＋鏡像時のそれと全て一致する。
【００８０】
図３０に示すように、２７０度回転＋鏡像のシミュレーション点データＤ２では、識別番号が４２、ｘ座標の合計値が−７０００、ｙ座標の合計値が１８０、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０、エッジ数が１０となる。また、このシミュレーション点データＤ１０のデータＤ１７には、エッジＥ５８Ａ，Ｅ４８Ａ，Ｅ５０，Ｅ２６，Ｅ４５，Ｅ４２，Ｅ３９，Ｅ３６，Ｅ２３Ｂ，Ｅ２０ＢのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。この識別番号Ｅ４２の２７０度回転＋鏡像のシミュレーション点データＤ１０におけるｘ座標の合計値、ｙ座標の合計値及びエッジ数とエッジデータＤ２０とは、図１９に示した識別番号Ｅ１５の９０度回転＋鏡像時のそれと全て一致する。
【００８１】
そして、ＣＰＵ１１は、以上のように作成されたシミュレーション点データＤ２を記憶装置１３に格納する。
以後も同様に、全てのエッジＥ０〜Ｅ８７に対する処理が終了するまで上記ステップＳ３１〜Ｓ３５の処理が繰り返し実行される。そして、全てのエッジＥ０〜Ｅ８７に対する処理が終了すると、８８個の各エッジＥ０〜Ｅ８７（シミュレーション点）に対して８個のシミュレーション点データＤ１，Ｄ２が作成されるため、合計７０４（＝８８×８）個のシミュレーション点データＤ１，Ｄ２が作成される。
【００８２】
なお、ここでは、説明の便宜上、エッジＥ１５の処理を行った後にエッジＥ４２の処理を行うようにしたが、この処理の順序は特に制限されない。例えば記憶装置１３に格納された順序、つまり識別番号の小さい順にエッジＥ０→Ｅ１→…→Ｅ１４と順次処理された後に、エッジＥ１５の処理を実行するようにしてもよい。この場合には、その後も識別番号の小さい順にエッジＥ１６→Ｅ１７→…→Ｅ４２→…→Ｅ８７と順次処理される。
【００８３】
次に、図９に示すステップＳ３６において、ＣＰＵ１１は、上記作成された全てのシミュレーション点データＤ１，Ｄ２を所定の条件でソート（整列）し、上記同一シミュレーション点を算出する。以下に、このステップＳ３６の詳細処理を図３１〜図３７に従って説明する。
【００８４】
まず、図３１に示すステップＳ４１において、ＣＰＵ１１は、全てのシミュレーション点データＤ１，Ｄ２を所定の条件でソートする。具体的には、上記作成された７０４個のシミュレーション点データＤ１，Ｄ２を、以下に示す（ア）〜（キ）の複数のデータをソートキーとして昇順ソートする。
（ア）エッジデータのｘ座標の合計値（データＤ１２）
（イ）エッジデータのｙ座標の合計値（データＤ１３）
（ウ）エッジ数（データＤ１４）
（エ）全ての始点ｘ座標（データＤ２２）
（オ）全ての始点ｙ座標（データＤ２３）
（カ）全ての終点ｘ座標（データＤ２４）
（キ）全ての終点ｙ座標（データＤ２５）
より具体的には、（ア）のデータを第１キーとして昇順ソートし、（イ）のデータを第２キーとして昇順ソートし、（ウ）のデータを第３キーとして昇順ソートする。さらに、（エ）のデータを第４キーとして昇順ソートし、（オ）のデータを第５キーとして昇順ソートし、（カ）のデータを第６キーとして昇順ソートし、（キ）のデータを第７キーとして昇順ソートする。このステップＳ４１では、特に（エ）〜（キ）のデータが比較されることで、影響範囲ＩＲ内の全てのエッジの始点座標及び終点座標が一致するか否かが比較される。
【００８５】
以上のようなソート処理が終了すると、７０４個のシミュレーション点データＤ１，Ｄ２が図３２に示すようにソート（整列）される。ここで、図３２の「識別番号−回転・鏡像状態」欄において、例えば「Ｅ１０−Ｈ」の「Ｅ１０」は識別番号Ｅ１０を示し、「Ｅ１０−Ｈ」の「Ｈ」は２７０度回転＋鏡像を示している。なお、その他の回転・鏡像状態を示す記号は、Ａが０度回転、Ｂが９０度回転、Ｃが１８０度回転、Ｄが２７０度回転、Ｅが０度回転＋鏡像、Ｆが９０度回転＋鏡像、Ｇが１８０度回転＋鏡像をそれぞれ示している。また、「整列順位の直前データとの関係」欄において、「＝」記号は整列順位の直前のシミュレーション点データと同一である、つまりソートキーとした上記（ア）〜（キ）のデータの全てが直前のシミュレーション点データと同一であることを示している。換言すると、上記「＝」記号は直前の整列順位と同順位であることを示している。ここで、例えば図１５及び図２６の２つのシミュレーション点データＤ２を比較すると明らかなように、２つのシミュレーション点データＤ２が同一シミュレーション点である場合には、上記（ア）〜（キ）の全てのデータが同一となる。このため、「＝」記号が付与されたシミュレーション点データと、その直前の整列順位のシミュレーション点データとが同一シミュレーション点であると判断することができる。一方、「＋」記号は整列順位の直前のシミュレーション点データと相違する、つまりソートキーとした上記（ア）〜（キ）のデータのうち少なくとも１つのデータが直前のシミュレーション点データと相違することを示している。このため、「＋」記号が付与されたシミュレーション点データと、その直前の整列順位のシミュレーション点データとは同一シミュレーション点ではないと判断することができる。
【００８６】
本例では、整列順位１である「識別番号Ｅ１０の２７０度回転＋鏡像のシミュレーション点データＤ２」と整列順位２である「識別番号Ｅ６９の２７０度回転のシミュレーション点データＤ２」とが同一シミュレーション点となる。一方、整列順位３である「識別番号Ｅ１０の２７０度回転のシミュレーション点データＤ２」は、整列順位２である「識別番号Ｅ６９の２７０度回転のシミュレーション点データＤ２」とは異なるシミュレーション点データになる。
【００８７】
また、先の図１０〜図３０で例に挙げた識別番号Ｅ１５，Ｅ４２の８通りのシミュレーション点データＤ１，Ｄ２も昇順で整列される。詳述すると、各８通りのシミュレーション点データＤ１，Ｄ２の中では、「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２（図１５参照）」及び「識別番号Ｅ４２の２７０度回転のシミュレーション点データＤ２（図２６参照）」のデータＤ１２，Ｄ１３が−７０００、−１８０で最も小さい。また、識別番号Ｅ１５，Ｅ４２の他のシミュレーション点データには、データＤ１２，Ｄ１３が−７０００，−１８０となるシミュレーション点データは存在しない。したがって、識別番号Ｅ１５，Ｅ４２の中では最も整列順位の小さい位置、つまり整列順位６１，６２に、「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２」及び「識別番号Ｅ４２の２７０度回転のシミュレーション点データＤ２」がそれぞれ整列される。そして、これら「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２」及び「識別番号Ｅ４２の２７０度回転のシミュレーション点データＤ２」は、「＝」記号で示されるように、同一シミュレーション点となる。さらに、整列順位６３，６４に示されるように、「識別番号Ｅ１２の２７０度回転＋鏡像のシミュレーション点データＤ２」及び「識別番号Ｅ４５の９０度回転＋鏡像のシミュレーション点データＤ２」も「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２」と同一シミュレーション点となる。
【００８８】
次に、図３１に示すステップＳ４２において、ＣＰＵ１１は、同一シミュレーション点に同じ識別番号を割り当てるために、新たに割り当てられる識別番号を０に設定（初期化）する。
【００８９】
続いて、ＣＰＵ１１は、図３３に示すような８８個のエッジＥ０〜Ｅ８７に新たに付与される識別番号が格納される識別番号テーブル２５、つまりエッジＥ０〜Ｅ８７に対応する８８個の区画を有する識別番号テーブル２５（メモリ領域）を記憶装置１３に確保する。次いで、ＣＰＵ１１は、識別番号テーブル２５の全ての内容を「−１」で初期化する（ステップＳ４３）。すなわち、図３３に示すように、エッジＥ０〜Ｅ８７の新たな識別番号が全て−１に設定される。なお、ここでは識別番号テーブル２５を「−１」で初期化するようにしたが、この値はエッジに識別番号として付与されることのない値であれば特に限定されない。
【００９０】
次に、図３１に示すステップＳ４４において、ＣＰＵ１１は、最初のシミュレーション点データ、つまり図３２に示した整列順位１の「識別番号Ｅ１０の２７０度回転＋鏡像のシミュレーション点データＤ２」を記憶装置１３から読み出す。続いて、ＣＰＵ１１は、読み出したシミュレーション点データＤ２内の識別番号（１０）に新たな識別番号（ここでは、０）を設定する（ステップＳ４５）。具体的には、ＣＰＵ１１は、図３４に示すように、識別番号テーブル２５内のエッジＥ１０の識別番号に対応する領域に設定された「−１」を、新たな識別番号「０」に書き換える。
【００９１】
次に、図３１に示すステップＳ４６において、ＣＰＵ１１は、７０４個全てのシミュレーション点データＤ１，Ｄ２を取り出したか否かを判定する。ここでは、全てのシミュレーション点データＤ１，Ｄ２の取り出しが終了していないため、次のシミュレーション点データ、つまり図３２に示した整列順位２の「識別番号Ｅ６９の２７０度回転のシミュレーション点データＤ２」が記憶装置１３から読み出される（ステップＳ４７）。続いて、ＣＰＵ１１は、識別番号テーブル２５において、読み出したシミュレーション点データＤ２の識別番号（６９）に「−１」が設定されているか否かを判定する（ステップＳ４８）。ここでは、図３４に示すように、識別番号テーブル２５内のエッジＥ６９の識別番号に対応する領域に「−１」が設定されているため、ステップＳ４９に移る。
【００９２】
次に、ステップＳ４９において、ＣＰＵ１１は、識別番号テーブル２５に最後に新たな識別番号を設定したシミュレーション点データ、ここでは「識別番号Ｅ１０の２７０度回転＋鏡像のシミュレーション点データＤ２」と同一か否かを判定する。本例では、図３２に示すように、上記ステップＳ４７で取り出した「識別番号Ｅ６９の２７０度回転のシミュレーション点データＤ２」と「識別番号Ｅ１０の２７０度回転＋鏡像のシミュレーション点データＤ２」とが同一シミュレーション点であるため（ステップＳ４９でＹＥＳ）、ステップＳ５０を省略してステップＳ５１に移る。このステップＳ５１において、ＣＰＵ１１は、識別番号テーブル２５内のエッジＥ６９の識別番号に対応する領域に設定された「−１」を、新たな識別番号「０」に書き換える。
【００９３】
その後、ステップＳ４６に戻って、整列順位３の「識別番号Ｅ１０の２７０度回転のシミュレーション点データＤ２」が取り出され（ステップＳ４７）、その取り出されたシミュレーション点データＤ２の識別番号（１０）に「−１」が設定されているか否かが判定される（ステップＳ４８）。ここでは、図３４に示すように、識別番号テーブル２５内のエッジＥ１０の識別番号に対応する領域に「−１」以外の「０」が設定されており、既に新たな識別番号が付与されているため（ステップＳ４８でＮＯ）、ステップＳ４６に戻る。
【００９４】
その後、ステップＳ４６〜Ｓ５１の処理が繰り返し実行され、整列順位５の「識別番号Ｅ１１の９０度回転のシミュレーション点データＤ２」が取り出されると（ステップＳ４７）、識別番号テーブル２５内のエッジＥ１１の識別番号に対応する領域に「−１」が設定されているため（ステップＳ４８でＹＥＳ）、ステップＳ４９に移る。このステップＳ４９において、上記取り出された「識別番号Ｅ１１の９０度回転のシミュレーション点データＤ２」と最後に新たな識別番号を設定した「識別番号Ｅ６９の２７０度回転のシミュレーション点データＤ２」とが同一シミュレーション点ではないと判定されると、新たな識別番号に１が加算される（ステップＳ５０）。これにより、新たな識別番号が「１」に設定される。続いて、図３５に示すように、識別番号テーブル２５内のエッジＥ１１の識別番号に対応する領域に設定された「−１」が、新たな識別番号「１」に書き換えられる。
【００９５】
以後同様に、ステップＳ４６〜Ｓ５１の処理が繰り返し実行され、図３２に示す整列順位６０の「識別番号Ｅ１９の９０度回転のシミュレーション点データＤ２」に対する処理が終了すると、識別番号テーブル２５が図３５に示すようになる。このとき、新たな識別番号は「１４」になっている。
【００９６】
次に、整列順位６１の「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２」が取り出されると（ステップＳ４７）、識別番号テーブル２５（図３５参照）内のエッジＥ１５の識別番号に対応する領域に「−１」が設定されているため、ステップＳ４９に移る。このステップＳ４９では、図３２に示すように、上記取り出された「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２」と最後に新たな識別番号が設定された「識別番号Ｅ１９の９０度回転のシミュレーション点データＤ２」とが同一シミュレーション点ではないと判定されるため、新たな識別番号に１が加算される（ステップＳ５０）。これにより、新たな識別番号が「１５」に設定される。続いて、図３６に示すように、識別番号テーブル２５内のエッジＥ１５の識別番号に対応する領域に設定された「−１」が、新たな識別番号「１５」に書き換えられる。
【００９７】
次に、整列順位６２の「識別番号Ｅ４２の２７０度回転のシミュレーション点データＤ２」が取り出されると（ステップＳ４７）、識別番号テーブル２５内のエッジＥ４２の識別番号に対応する領域に「−１」が設定されているため、ステップＳ４９に移る。すると、ステップＳ４９では、図３２に示すように、上記取り出された「識別番号Ｅ４２の２７０度回転のシミュレーション点データＤ２」と最後に新たな識別番号が設定された「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２」とが同一シミュレーション点であると判定されるため、ステップＳ５１に移る。すると、図３６に示すように、識別番号テーブル２５内のエッジＥ４２の識別番号に対応する領域に設定された「−１」が、上記エッジＥ１５と同一の新たな識別番号「１５」に書き換えられる。
【００９８】
同様に、整列順位６３の「識別番号Ｅ１２の２７０度回転＋鏡像のシミュレーション点データＤ２」も「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２」と同一シミュレーション点であるため、エッジＥ１２の識別番号に対応する領域が新たな識別番号「１５」に書き換えられる。さらに、整列順位６４の「識別番号Ｅ４５の９０度回転＋鏡像のシミュレーション点データＤ２」も「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２」と同一シミュレーション点であるため、エッジＥ４５の識別番号に対応する領域が新たな識別番号「１５」に書き換えられる。
【００９９】
その後も全てのシミュレーション点データＤ１，Ｄ２の処理が終了するまでステップＳ４６〜Ｓ５１の処理が繰り返し実行される。やがて、７０４個全てのシミュレーション点データＤ１，Ｄ２の処理が終了すると、識別番号テーブル２５は図３７に示すようになる。これにより、全てのエッジについて、同一シミュレーション点となるエッジに同一の識別番号が割り当てられたことになる。そして、ここで割り当てられた識別番号Ｆ０〜Ｆ３１を図形データ３０，３１のエッジに付与すると、先の図５（ｃ）に示したようになる。
【０１００】
なお、新たな識別番号の付与が終了すると、図９に示すステップＳ３４が終了したことになり、同一シミュレーション点の算出処理（図３のステップＳ２３）が終了したことになるため、新たな識別番号の付与された図形データ３０，３１に対して光強度シミュレーション（ステップＳ２４）が実行される。
【０１０１】
本実施形態において、図形データ３０，３１はパターンの一例、シミュレーション点データＤ１は第１評価点データの一例、シミュレーション点データＤ２は第２評価点データの一例、エッジＡ１は辺の一例、影響範囲ＩＲは所定範囲の一例である。また、ステップＳ５は光近接効果補正工程の一例、ステップＳ２１は分割工程の一例、ステップＳ３１は取得工程の一例、ステップＳ３２は正規化工程の一例、ステップＳ３３は第１生成工程の一例、ステップＳ３４は第２生成工程の一例である。また、ステップＳ４１〜Ｓ５１は同一評価点算出工程の一例、ステップＳ４１は第２整列工程の一例である。
【０１０２】
以上説明した本実施形態によれば、以下の効果を奏することができる。
（１）図形データ３０，３１から切り出したままの０度回転のシミュレーション点データＤ１と併せて、光強度シミュレーション時の照明条件に応じた所定の回転・鏡像状態におけるシミュレーション点データＤ２を考慮して、同一シミュレーション点を算出するようにした。これにより、影響範囲ＩＲ内の図形（エッジ）が回転などによって異なる配置位置になっていたとしても、同一シミュレーション点として算出することができるようになる。すなわち、同一シミュレーション点を精度良く算出することができるようになる。したがって、光強度シミュレーションを実施する回数を効率的に減らすことができるため、ＯＰＣ処理にかかる処理時間を短縮することができる。
【０１０３】
（２）０度回転、９０度回転、１８０度回転、２７０度回転、及びそれらの回転に鏡像を加えた８通りのシミュレーション点データＤ１，Ｄ２を考慮して同一シミュレーション点を算出するようにした。これにより、図形データ３０，３１から切り出したときの図形がどのような回転・鏡像状態であっても、略全ての同一シミュレーション点を算出（探索）することができる。したがって、光強度シミュレーションを実施する回数をより効率的に減らすことができるため、ＯＰＣ処理にかかる処理時間を短縮することができる。
【０１０４】
（第２実施形態）
以下、第２実施形態について、図３８〜図６０に従って説明する。この実施形態の同一シミュレーション点の算出処理が上記第１実施形態と異なっている。以下、第１実施形態との相違点を中心に説明する。なお、先の図１〜図３７に示した要素と同一の要素にはそれぞれ同一の符号を付して示し、それら各要素についての詳細な説明は省略する。
【０１０５】
まず、同一シミュレーション点の算出処理（図３のステップＳ２３）の方法を図３８〜図５４に従って説明する。ここでは、上記第１実施形態と同様にエッジＥ１５とエッジＥ４２のシミュレーション点を例に挙げ、さらにエッジＥ８７のシミュレーション点を例に挙げて説明する。
【０１０６】
はじめに、本実施形態の同一シミュレーション点の算出処理の概要を説明する。上記第１実施形態では、１つのシミュレーション点について回転・鏡像を考慮して８通りのシミュレーション点データを生成し、全てのシミュレーション点についての全て（上記第１実施形態の例では７０４個）のシミュレーション点データＤ１，Ｄ２を比較して同一シミュレーション点を算出するようにした。これに対し、本実施形態では、各シミュレーション点における８通りのシミュレーション点データの中から所定条件を満たす１つのシミュレーション点データを抽出し、全てのシミュレーション点で抽出された全シミュレーション点データを比較して同一シミュレーション点を算出する。すなわち、上記第１実施形態の例のように、８８個のシミュレーション点（エッジ）が存在する場合には、８８個のシミュレーション点データが抽出され、その抽出された８８個のシミュレーション点データが比較されて同一シミュレーション点が算出される。このような方法によって、上記第１実施形態と同様の精度で同一シミュレーション点を算出することが可能な理由を以下に説明する。
【０１０７】
例えば影響範囲内のエッジデータのｘ座標の合計値が−１０、エッジデータのｙ座標の合計値が−２０である第１データと、影響範囲内のエッジデータのｘ座標の合計値が２０、エッジデータのｙ座標の合計値が−１０である第２データという２つの同一シミュレーション点のデータがあったとする。この場合に、図１４に示した変換テーブル２４に従って第１データを座標変換すると、図３９（ａ）に示すように８通りのデータを求めることができる。同様に、図１４に示した変換テーブル２４に従って第２データを座標変換すると、図３９（ｂ）に示すように８通りのデータを求めることができる。次に、図３９（ａ）、（ｂ）に示した８通りのデータを、ｘ座標の合計値を第１キーとして昇順ソートし、ｙ座標の合計値を第２キーとして昇順ソートする。すると、第１データについての整列結果は図３９（ｃ）に示すようになり、第２データについての整列結果は図３９（ｄ）に示すようになる。このとき、この整列結果の整列順位が最も小さいデータを上記所定条件として８通りのデータから１つのデータを抽出すると、第１データについては２７０度回転＋鏡像状態の（−２０，−１０）というデータが抽出され、第２データについては０度回転＋鏡像状態の（−２０，−１０）というデータが抽出される。これにより、第１データと第２データとからは共に、（−２０，−１０）という同一のデータが抽出される。このことから、０度回転時のデータがどのような回転・鏡像状態であっても、複数のデータから所定条件（同じ条件）を満たす１つのデータを抽出することにより、同一のデータを抽出することができることが分かる。したがって、このように抽出されたデータを比較することにより、上記第１実施形態と同様の精度で同一シミュレーション点を算出することができる。以下に、その具体的な処理方法について説明する。
【０１０８】
まず、図３８に示すステップＳ６１において、ＣＰＵ１１（図１参照）は、対象のエッジ（ここでは、エッジＥ１５）の０度回転のシミュレーション点データＤ１を上記第１実施形態と同様に作成する。すなわち、このステップＳ６１では、先に説明した図９のステップＳ３１〜Ｓ３３と同様の処理が実行される。したがって、このとき上記第１実施形態と同様に、図４０に示すように、シミュレーション点となるエッジＥ１５の中心座標で正規化されたエッジデータＤ２０が作成され、そのエッジデータＤ２０やシミュレーション点の座標等に基づいてシミュレーション点データＤ１０が作成される。これにより、シミュレーション点データＤ１０及びエッジデータＤ２０を有するシミュレーション点データＤ１が作成される。そして、ＣＰＵ１１は、作成されたシミュレーション点データＤ１を記憶装置１３に格納する。
【０１０９】
次に、図３８に示すステップＳ６２において、ＣＰＵ１１は、影響範囲ＩＲ内の図形を９０度回転、１８０度回転、２７０度回転させた場合、影響範囲ＩＲ内の図形を鏡像反転させた場合、及び鏡像反転させた図形を９０度回転、１８０度回転、２７０度回転させた場合（図１３参照）の７通りの簡易シミュレーション点データＤ１０ａを作成する。ここで作成される簡易シミュレーション点データＤ１０ａは、図４１及び図４２に示すように、エッジデータＤ２０が存在しない。すなわち、ステップＳ６２では、エッジデータＤ２０を作成しない。これは、上述したように、本実施形態の方法では、所定条件で抽出されたシミュレーション点データのみが、同一シミュレーション点を算出するために他のシミュレーション点におけるシミュレーション点データと比較されるためである。すなわち、所定条件で抽出されるシミュレーション点データのみにエッジデータが作成されれば十分であるため、抽出前の本ステップＳ６２ではエッジデータＤ２０の作成を省略している。
【０１１０】
以下に、ステップＳ６２で作成される７通りの簡易シミュレーション点データＤ１０ａについて図４１及び図４２に従って説明する。この簡易シミュレーション点データＤ１０ａは、図４０に示したシミュレーション点データＤ１０と略同様のデータ構造を有している。但し、簡易シミュレーション点データＤ１０ａでは、エッジデータＤ２０へアクセスするためのメモリアドレスが格納されるデータＤ１７に、エッジデータＤ２０が存在しないことを示すように無効アドレス値を表わす「ＮＵＬＬ」が設定される。また、簡易シミュレーション点データＤ１０ａでは、エッジデータＤ２０が存在しないため、データＤ１６のエッジ数が「０」に設定される。
【０１１１】
図４１（ａ）に示すように、９０度回転の簡易シミュレーション点データＤ１０ａでは、識別番号が１５、ｘ座標の合計値が−７０００、ｙ座標の合計値が−１８０、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０となる。このとき、ｘ座標の合計値（−７０００）は、０度回転のシミュレーション点データＤ１０（図４０参照）におけるｙ座標の合計値（７０００）が上記変換テーブル２４（図１４参照）に従って座標変換されて算出される。同様に、ｙ座標の合計値（−１８０）は、０度回転のシミュレーション点データＤ１０（図４０参照）におけるｘ座標の合計値（−１８０）が変換テーブル２４に従って座標変換されて算出される。なお、その他の回転・鏡像状態のシミュレーション点データＤ１０ａにおけるｘ座標の合計値及びｙ座標の合計値も同様に、０度回転のシミュレーション点データＤ１０におけるｘ座標の合計値及びｙ座標の合計値が変換テーブル２４に従って座標変換されて算出される。
【０１１２】
図４１（ｂ）に示すように、１８０度回転の簡易シミュレーション点データＤ１０ａでは、識別番号が１５、ｘ座標の合計値が１８０、ｙ座標の合計値が−７０００、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０となる。
【０１１３】
図４１（ｃ）に示すように、２７０度回転の簡易シミュレーション点データＤ１０ａでは、識別番号が１５、ｘ座標の合計値が７０００、ｙ座標の合計値が１８０、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０となる。
【０１１４】
図４１（ｄ）に示すように、０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が１５、ｘ座標の合計値が１８０、ｙ座標の合計値が７０００、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０となる。
【０１１５】
図４２（ａ）に示すように、９０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が１５、ｘ座標の合計値が−７０００、ｙ座標の合計値が１８０、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０となる。
【０１１６】
図４２（ｂ）に示すように、１８０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が１５、ｘ座標の合計値が−１８０、ｙ座標の合計値が−７０００、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０となる。
【０１１７】
図４２（ｃ）に示すように、２７０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が１５、ｘ座標の合計値が７０００、ｙ座標の合計値が−１８０、オフセットｘ値が１３９３００、オフセットｙ値が１１９５５０となる。
【０１１８】
そして、ＣＰＵ１１は、以上のように作成された７つの簡易シミュレーション点データＤ１０ａを記憶装置１３に格納する。なお、以下の説明では、簡易シミュレーション点データＤ１０ａを単にシミュレーション点データＤ１０ａとも言う。
【０１１９】
次に、図３８に示すステップＳ６３において、ＣＰＵ１１は、上記作成した８つのシミュレーション点データＤ１，Ｄ１０ａの中から所定条件を満たすシミュレーション点データを抽出する。本実施形態では、８つのシミュレーション点データＤ１，Ｄ１０ａから、所定条件としてｘ座標の合計値が最も小さく、且つｙ座標の合計値が最も小さいシミュレーション点データが抽出される。
【０１２０】
そこで、ＣＰＵ１１は、８つのシミュレーション点データＤ１，Ｄ１０ａを、ｘ座標の合計値を第１キーとして昇順ソートし、ｙ座標の合計値を第２キーとして昇順ソートする。そして、ＣＰＵ１１は、この整列結果に基づいて、整列順位の最も小さいシミュレーション点データを抽出する。本例のエッジＥ１５では、図４３に示すように、９０度回転の簡易シミュレーション点データＤ１０ａが抽出される。なお、上記所定条件を満たすシミュレーション点データが複数ある場合には、その複数のシミュレーション点データを全て抽出する。
【０１２１】
次に、図３８に示すステップＳ６４において、ＣＰＵ１１は、上記抽出された全てのシミュレーション点データのエッジデータＤ２０を作成する。ここでは、図４４に示すように、９０度回転の簡易シミュレーション点データＤ１０ａのエッジデータＤ２０を作成する。具体的には、影響範囲ＩＲ内の各エッジＥ２０Ａ，Ｅ２３Ａ，Ｅ１６，Ｅ１９，Ｅ１２，Ｅ１５，Ｅ６，Ｅ９，Ｅ２Ａ，Ｅ５Ａの始点ｘ座標、始点ｙ座標、終点ｘ座標及び終点ｙ座標を、０度回転のシミュレーション点データＤ１（図４０参照）内の同データを変換テーブル２４（図１４参照）に従って座標変換することにより算出する。このように算出された座標値に基づいて、図４４に示すような１０個のエッジデータＤ２１を有するエッジデータＤ２０が作成される。また、このとき、シミュレーション点データＤ１０ａのデータＤ１６は、「０」から、エッジデータＤ２１の個数である「１０」に変更される。さらに、シミュレーション点データＤ１０ａのデータＤ１７は、「ＮＵＬＬ」から、エッジＥ２０Ａ，Ｅ２３Ａ，Ｅ１６，Ｅ１９，Ｅ１２，Ｅ１５，Ｅ６，Ｅ９，Ｅ２Ａ，Ｅ５ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスに変更される。これにより、シミュレーション点データＤ１０ａとエッジデータＤ２０とを有するシミュレーション点データＤ２ａが生成される。
【０１２２】
なお、上記ステップＳ６３で抽出されたシミュレーション点データが０度回転のシミュレーション点データＤ１である場合には、図４０に示すように既にエッジデータＤ２０が作成されているため、本ステップＳ６４でのエッジデータＤ２０の作成は省略される。
【０１２３】
次に、図３８に示すステップＳ６５において、ＣＰＵ１１は、上記ステップＳ６３で抽出されたシミュレーション点データが複数存在するか否かを判定する。このとき、抽出されたシミュレーション点データが複数存在する場合には、ステップＳ６６の処理が実行された後、ステップＳ６７に移る。本例では、９０度回転のシミュレーション点データＤ１０ａのみが抽出されているため、ステップＳ６６の処理を省略してステップＳ６７に移る。
【０１２４】
続いて、ＣＰＵ１１は、全てのシミュレーション点（エッジ）に対する処理が終了したか否かを判定する（ステップＳ６７）。すなわち、ステップＳ６７では、全てのシミュレーション点について、エッジデータＤ２０を有するシミュレーション点データが１つ抽出されたか否かが判定される。全ての処理が終了していないと判定された場合には、次のシミュレーション点（エッジ）に対する処理が実行される（ステップＳ６１〜Ｓ６６）。
【０１２５】
ここでは、エッジＥ１５に対する処理に続いて、エッジＥ４２に対する処理が実行され、そのエッジＥ４２の０度回転のシミュレーション点データＤ１が作成される（ステップＳ６１）。これにより、先の図２３で示したシミュレーション点データＤ１０とエッジデータＤ２０とを有するシミュレーション点データＤ１が作成される。そして、ＣＰＵ１１は、作成されたシミュレーション点データＤ１を記憶装置１３に格納する。
【０１２６】
続いて、ＣＰＵ１１は、図４５及び図４６に示すように、対象のエッジＥ４２（評価点）に対する７通りの簡易シミュレーション点データＤ１０ａを作成する（ステップＳ６２）。以下に、ここで作成される簡易シミュレーション点データＤ１０ａについて説明する。
【０１２７】
図４５（ａ）に示すように、９０度回転の簡易シミュレーション点データＤ１０ａでは、識別番号が４２、ｘ座標の合計値が７０００、ｙ座標の合計値が１８０、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０となる。
【０１２８】
図４５（ｂ）に示すように、１８０度回転の簡易シミュレーション点データＤ１０ａでは、識別番号が４２、ｘ座標の合計値が−１８０、ｙ座標の合計値が７０００、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０となる。
【０１２９】
図４５（ｃ）に示すように、２７０度回転の簡易シミュレーション点データＤ１０ａでは、識別番号が４２、ｘ座標の合計値が−７０００、ｙ座標の合計値が−１８０、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０となる。
【０１３０】
図４６（ａ）に示すように、０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が４２、ｘ座標の合計値が−１８０、ｙ座標の合計値が−７０００、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０となる。
【０１３１】
図４６（ｂ）に示すように、９０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が４２、ｘ座標の合計値が７０００、ｙ座標の合計値が−１８０、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０となる。
【０１３２】
図４６（ｃ）に示すように、１８０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が４２、ｘ座標の合計値が１８０、ｙ座標の合計値が７０００、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０となる。
【０１３３】
図４６（ｄ）に示すように、２７０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が４２、ｘ座標の合計値が−７０００、ｙ座標の合計値が１８０、オフセットｘ値が１３７１６５、オフセットｙ値が１２０２５０となる。
【０１３４】
そして、ＣＰＵ１１は、以上のように作成された簡易シミュレーション点データＤ１０ａを記憶装置１３に格納する。
次に、ＣＰＵ１１は、８つのシミュレーション点データＤ１，Ｄ１０ａを、ｘ座標の合計値を第１キーとして昇順ソートし、ｙ座標の合計値を第２キーとして昇順ソートする。そして、ＣＰＵ１１は、この整列結果に基づいて、整列順位の最も小さいシミュレーション点データを抽出する。本例のエッジＥ４２では、図４７に示すように、２７０度回転の簡易シミュレーション点データＤ１０ａが抽出される。このように、エッジＥ１５の９０度回転の簡易シミュレーション点データＤ１０ａ（図４１（ａ）参照）と同一の値（ｘ座標の合計値が−７０００、ｙ座標の合計値が−１８０）になる２７０度回転の簡易シミュレーション点データＤ１０ａが抽出される。
【０１３５】
次に、０度回転のシミュレーション点データＤ１（図２３）のエッジデータＤ２０内の各座標を座標変換することにより、上記抽出された２７０度回転の簡易シミュレーション点データＤ１０ａのエッジデータＤ２０を作成する。これにより、図２６に示したシミュレーション点データＤ２と同様のシミュレーション点データＤ２ａ（図示略）が作成される。ここで作成されるシミュレーション点データＤ２ａにおけるｘ座標の合計値、ｙ座標の合計値及びエッジ数とエッジデータＤ２０とは、図４４に示した識別番号Ｅ１５の９０度回転時のそれと全て一致する。
【０１３６】
続いて、抽出されたシミュレーション点データが１つであり（ステップＳ６６でＮＯ）、全てのシミュレーション点に対する処理が終了していないため（ステップＳ６７でＮＯ）、次のシミュレーション点に対する処理が実行される。
【０１３７】
ここでは、エッジＥ４２に対する処理に続いて、エッジＥ８７に対する処理が実行され、そのエッジＥ４２の０度回転のシミュレーション点データＤ１が作成される（ステップＳ６１）。具体的には、図４８に示すように、エッジＥ８７の中心座標（１２８７５０，１１７９００）がシミュレーション点（評価点）ＳＥ８７に設定される。続いて、評価点ＳＥ８７を中心にして、上記第１実施形態と同様に四角形状の影響範囲ＩＲが設定される。次いで、影響範囲ＩＲ内の７個のエッジＥ８５，Ｅ７７，Ｅ８１，Ｅ８７，Ｅ８４，Ｅ７６，Ｅ８０のエッジデータ２２（図６参照）が記憶装置１３から読み出される。そして、影響範囲ＩＲからはみ出すエッジＥ８０，Ｅ８１を影響範囲ＩＲで切り出すためにエッジを切断する。すると、始点座標（１３０２５０，１１８２４０）及び終点座標（１２９７５０，１１８２４０）であるエッジＥ８０の一部が切断された後のエッジＥ８０Ａでは、始点座標が（１２９９５０，１１８２４０）となり、終点座標が（１２９７５０，１１８２４０）となる。同様に、始点座標（１２９７５０，１１７５６０）及び終点座標（１３０２５０，１１７５６０）であるエッジＥ８１の一部が切断された後のエッジＥ８１Ａでは、始点座標が（１２９７５０，１１７５６０）となり、終点座標が（１２９９５０，１１７５６０）となる。ここでは、上記第１実施形態と同様に、同一シミュレーション点の一致精度を向上させるために影響範囲ＩＲからはみ出すエッジを切断するようにしたが、影響範囲ＩＲからはみ出すエッジを切断しなくとも同一シミュレーション点を判定することはできる。
【０１３８】
次に、切り出されたエッジの始点座標及び終点座標が評価点ＳＥ８７の座標で正規化され、さらに正規化されたエッジデータＤ２１が上述と同様の条件（正規化後の始点ｘ座標，始点ｙ座標，終点ｘ座標，終点ｙ座標を全てキーに含めた条件）でソートされる。その正規化及びソート後のエッジデータＤ２１が順に格納されたエッジデータＤ２０（図４９参照）が記憶装置１３に格納される。
【０１３９】
ここで、正規化されたエッジＥ８５の始点座標及び終点座標はそれぞれ（０，−３４０）及び（５００，−３４０）となり、正規化されたエッジＥ７７の始点座標及び終点座標はそれぞれ（５００，−３４０）及び（１０００，−３４０）となる。正規化されたエッジＥ８１Ａの始点座標及び終点座標はそれぞれ（１０００，−３４０）及び（１２００，−３４０）となり、正規化されたエッジＥ８７の始点座標及び終点座標はそれぞれ（０，３４０）及び（０，−３４０）となる。正規化されたエッジＥ８４の始点座標及び終点座標はそれぞれ（５００，３４０）及び（０，３４０）となり、正規化されたエッジＥ７６の始点座標及び終点座標はそれぞれ（１０００，３４０）及び（５００，３４０）となる。そして、正規化されたエッジＥ８０Ａの始点座標及び終点座標はそれぞれ（１２００，３４０）及び（１０００，３４０）となる。
【０１４０】
続いて、ＣＰＵ１１は、図４９に示すように、上記正規化後のエッジデータＤ２０に基づいてシミュレーション点データＤ１０を作成し、それらシミュレーション点データＤ１０及びエッジデータＤ２０を有するシミュレーション点データＤ１を作成する。この０度回転のシミュレーション点データＤ１では、識別番号が８７、ｘ座標の合計値が８４００、ｙ座標の合計値が０、オフセットｘ値が１２８７５０、オフセットｙ値が１１７９００、エッジ数が７となる。また、シミュレーション点データＤ１０のデータＤ１７には、エッジＥ８５，Ｅ７７，Ｅ８１Ａ，Ｅ８７，Ｅ８４，Ｅ７６，Ｅ８０ＡのエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスが格納されている。
【０１４１】
そして、ＣＰＵ１１は、作成されたシミュレーション点データＤ１を記憶装置１３に格納する。
続いて、ＣＰＵ１１は、図５０及び図５１に示すように、対象のエッジＥ８７（評価点）に対する７通りの簡易シミュレーション点データＤ１０ａを作成する（ステップＳ６２）。以下に、ここで作成される簡易シミュレーション点データＤ１０ａについて説明する。
【０１４２】
図５０（ａ）に示すように、９０度回転の簡易シミュレーション点データＤ１０ａでは、識別番号が８７、ｘ座標の合計値が０、ｙ座標の合計値が８４００、オフセットｘ値が１２８７５０、オフセットｙ値が１１７９００となる。
【０１４３】
図５０（ｂ）に示すように、１８０度回転の簡易シミュレーション点データＤ１０ａでは、識別番号が８７、ｘ座標の合計値が−８４００、ｙ座標の合計値が０、オフセットｘ値が１２８７５０、オフセットｙ値が１１７９００となる。
【０１４４】
図５０（ｃ）に示すように、２７０度回転の簡易シミュレーション点データＤ１０ａでは、識別番号が８７、ｘ座標の合計値が０、ｙ座標の合計値が−８４００、オフセットｘ値が１２８７５０、オフセットｙ値が１１７９００となる。
【０１４５】
図５０（ｄ）に示すように、０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が８７、ｘ座標の合計値が−８４００、ｙ座標の合計値が０、オフセットｘ値が１２８７５０、オフセットｙ値が１１７９００となる。
【０１４６】
図５０（ｅ）に示すように、９０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が８７、ｘ座標の合計値が０、ｙ座標の合計値が−８４００、オフセットｘ値が１２８７５０、オフセットｙ値が１１７９００となる。
【０１４７】
図５１（ａ）に示すように、１８０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が８７、ｘ座標の合計値が８４００、ｙ座標の合計値が０、オフセットｘ値が１２８７５０、オフセットｙ値が１１７９００となる。
【０１４８】
図５１（ｂ）に示すように、２７０度回転＋鏡像の簡易シミュレーション点データＤ１０ａでは、識別番号が８７、ｘ座標の合計値が０、ｙ座標の合計値が８４００、オフセットｘ値が１２８７５０、オフセットｙ値が１１７９００となる。
【０１４９】
そして、ＣＰＵ１１は、以上のように作成された簡易シミュレーション点データＤ１０ａを記憶装置１３に格納する。
次に、ＣＰＵ１１は、８つのシミュレーション点データＤ１，Ｄ１０ａを、ｘ座標の合計値を第１キーとして昇順ソートし、ｙ座標の合計値を第２キーとして昇順ソートする。そして、ＣＰＵ１１は、この整列結果に基づいて、整列順位の最も小さいシミュレーション点データを抽出する。本例のエッジＥ８７では、図５２に示すように、１８０度回転の簡易シミュレーション点データＤ１０ａと０度回転＋鏡像の簡易シミュレーション点データＤ１０ａとが共に所定条件を満たすため、２つの簡易シミュレーション点データＤ１０ａが抽出される。
【０１５０】
次に、ＣＰＵ１１は、上記抽出された２つのシミュレーション点データＤ１０ａのエッジデータＤ２０を作成する。ここでは、図５３に示す１８０度回転の簡易シミュレーション点データＤ１０ａのエッジデータＤ２０を作成するとともに、図５４に示す０度回転＋鏡像の簡易シミュレーション点データＤ１０ａのエッジデータＤ２０を作成する。
【０１５１】
具体的には、図５３に示すように、影響範囲ＩＲ内の各エッジＥ８０Ａ，Ｅ７６，Ｅ８４，Ｅ８７，Ｅ８１Ａ，Ｅ７７，Ｅ８５の始点ｘ座標、始点ｙ座標、終点ｘ座標及び終点ｙ座標を、０度回転のシミュレーション点データＤ１（図４９参照）内の同データを変換テーブル２４（図１４参照）に従って座標変換することにより算出する。さらに、座標変換後のエッジデータＤ２１について、座標変換後の始点ｘ座標，始点ｙ座標，終点ｘ座標，終点ｙ座標を全てキーに含めたソート処理が行われる。そして、そのソート結果（整列順序）に対応する順序で７個のエッジデータＤ２１が格納され、図５３に示すようなエッジデータＤ２０が作成される。
【０１５２】
また、このとき、シミュレーション点データＤ１０ａのデータＤ１６は、「０」から、エッジデータＤ２１の個数である「７」に変更される。さらに、シミュレーション点データＤ１０ａのデータＤ１７は、「ＮＵＬＬ」から、エッジＥ８０Ａ，Ｅ７６，Ｅ８４，Ｅ８７，Ｅ８１Ａ，Ｅ７７，Ｅ８５のエッジデータＤ２１順に格納されているエッジデータＤ２０のメモリアドレスに変更される。これにより、シミュレーション点データＤ１０ａとエッジデータＤ２０とを有する１８０度回転のシミュレーション点データＤ２ａが生成される。
【０１５３】
同様に、０度回転のシミュレーション点データＤ１（図４９）内のエッジデータＤ２１内の各座標値が座標変換され、さらに座標変換後のエッジデータＤ２１がソートされて、図５４に示すような７個のエッジデータＤ２１を有するエッジデータＤ２０が作成される。また、このとき、シミュレーション点データＤ１０ａのデータＤ１６は、「０」から、エッジデータＤ２１の個数である「７」に変更される。さらに、シミュレーション点データＤ１０ａのデータＤ１７は、「ＮＵＬＬ」から、エッジＥ８１Ａ，Ｅ７７，Ｅ８５，Ｅ８７，Ｅ８０Ａ，Ｅ７６，Ｅ８４のエッジデータＤ２１が順に格納されているエッジデータＤ２０のメモリアドレスに変更される。これにより、シミュレーション点データＤ１０ａとエッジデータＤ２０とを有する０度回転＋鏡像のシミュレーション点データＤ２ａが生成される。
【０１５４】
続いて、上記抽出されたシミュレーション点データが複数（ここでは、２つ）存在するため（図３８のステップ６５でＹＥＳ）、ステップＳ６６に移る。このステップＳ６６において、ＣＰＵ１１は、上記エッジデータＤ２０の作成された２つのシミュレーション点データＤ２ａを、エッジデータＤ２０を利用して更に比較することにより、優先順位の最も高いシミュレーション点データＤ２ａを抽出する。
【０１５５】
詳述すると、まず、ＣＰＵ１１は、シミュレーション点データＤ１０ａのデータＤ１６に格納されたエッジ数を比較し、エッジ数が最も少ないシミュレーション点データＤ２ａを上記所定条件を満たすデータとして抽出する。本例では、図５３及び図５４に示すように、２つのシミュレーション点データＤ２ａのエッジ数が共に「７」であるため、次の比較が行われる。
【０１５６】
次に、ＣＰＵ１１は、シミュレーション点データＤ２ａのエッジデータＤ２０の先頭に格納されているエッジデータＤ２１の始点ｘ座標を比較し、始点ｘ座標が最も小さいシミュレーション点データＤ２ａを上記所定条件を満たすデータとして抽出する。本例では、１８０度回転のシミュレーション点データＤ２ａにおけるエッジデータＤ２０の先頭エッジデータＤ２１、つまりエッジＥ８０Ａの始点ｘ座標（−１２００）と、０度回転＋鏡像のシミュレーション点データＤ２ａにおけるエッジデータＤ２０の先頭エッジデータＤ２１、つまりエッジＥ８１Ａの始点ｘ座標（−１２００）とが比較される。ここでは、両始点ｘ座標値が同じ値であるため、その後、同エッジの始点ｙ座標→終点ｘ座標→終点ｙ座標が順に比較される。本例のように上記全ての座標値が同じである場合には、先頭エッジデータＤ２１の場合と同様に、各エッジデータＤ２０内の２番目のエッジデータＤ２１→３番目のエッジデータＤ２１→…→エッジデータＤ２０内の最終エッジデータＤ２１という順序で、座標値が双方で異なる値となるまで比較処理が実行される。但し、本例では、１８０度回転のシミュレーション点データＤ２ａのエッジデータＤ２０と、０度回転＋鏡像のシミュレーション点データＤ２ａのエッジデータＤ２０とにおける各座標値が全て一致する。このような場合には、いずれのシミュレーション点データＤ２ａを抽出しても、同じように同一シミュレーション点を探索することが可能であるため、任意のシミュレーション点データＤ２ａ（例えば、１８０度回転のシミュレーション点データＤ２ａ）を抽出する。
【０１５７】
このように実施されるステップＳ６６及び先のステップＳ６３の処理をまとめると、８つのシミュレーション点データから以下のような条件で１つのシミュレーション点が抽出される。
【０１５８】
（Ａ）まず、エッジデータのｘ座標の合計値及びエッジデータのｙ座標の合計値が所定条件を満たすシミュレーション点データを抽出する。
（Ｂ）次に、エッジデータのｘ座標及びｙ座標の合計値が同じ場合には、エッジ数が所定条件を満たすシミュレーション点データを抽出する。
【０１５９】
（Ｃ）さらに、上記（Ａ）、（Ｂ）のデータが同じである場合には、エッジデータＤ２０内のエッジデータＤ２１の始点座標及び終点座標が所定条件を満たすシミュレーション点データを抽出する。
【０１６０】
そして、このような所定条件を満たすシミュレーション点データが全てのシミュレーション点で抽出されると（図３８のステップＳ６７でＹＥＳ）、８８個の各エッジＥ０〜Ｅ８７（シミュレーション点）に対して１個のシミュレーション点データＤ１，Ｄ２ａが抽出・作成される。
【０１６１】
なお、ここでは、説明の便宜上、エッジＥ１５の処理を行った後にエッジＥ４２の処理を行って、エッジＥ８７の処理を行うようにしたが、この処理の順序は特に制限されない。例えば記憶装置１３に格納された順序、つまり識別番号の小さい順にエッジＥ０→Ｅ１→…→Ｅ８７と順次処理するようにしてもよい。
【０１６２】
次に、ステップＳ６８において、ＣＰＵ１１は、上記抽出された全てのシミュレーション点データＤ１，Ｄ２ａを所定の条件でソートし、上記同一シミュレーション点を算出する。以下に、このステップＳ６８の詳細処理を図５５〜図６０に従って説明する。
【０１６３】
まず、図５５に示すステップＳ７１において、ＣＰＵ１１は、上記抽出された全てのシミュレーション点データＤ１，Ｄ２ａを所定の条件でソートする。具体的には、上記抽出された８８個のシミュレーション点データＤ１，Ｄ２ａを、以下に示す（ア）〜（キ）の複数のデータをソートキーとして昇順ソートする。
（ア）エッジデータのｘ座標の合計値（データＤ１２）
（イ）エッジデータのｙ座標の合計値（データＤ１３）
（ウ）エッジ数（データＤ１４）
（エ）全ての始点ｘ座標（データＤ２２）
（オ）全ての始点ｙ座標（データＤ２３）
（カ）全ての終点ｘ座標（データＤ２４）
（キ）全ての終点ｙ座標（データＤ２５）
より具体的には、（ア）のデータを第１キーとして昇順ソートし、（イ）のデータを第２キーとして昇順ソートし、（ウ）のデータを第３キーとして昇順ソートする。さらに、（エ）のデータを第４キーとして昇順ソートし、（オ）のデータを第５キーとして昇順ソートし、（カ）のデータを第６キーとして昇順ソートし、（キ）のデータを第７キーとして昇順ソートする。このステップＳ７１では、特に（エ）〜（キ）のデータが比較されることで、影響範囲ＩＲ内の全てのエッジの始点座標及び終点座標が一致するか否かが比較される。
【０１６４】
以上のようなソート処理が終了すると、８８個のシミュレーション点データＤ１，Ｄ２ａが図５６に示すようにソートされる。なお、この図内の表記方法の意味は、先の図３２と同様である。本例では、整列順位１である「識別番号Ｅ１０の２７０度回転＋鏡像のシミュレーション点データＤ２ａ」と整列順位２である「識別番号Ｅ６９の２７０度回転のシミュレーション点データＤ２ａ」とが同一シミュレーション点となる。一方、整列順位３である「識別番号Ｅ１１の９０度回転のシミュレーション点データＤ２ａ」は、整列順位２である「識別番号Ｅ６９の２７０度回転のシミュレーション点データＤ２ａ」とは異なるシミュレーション点データになる。また、先の図４０〜図４７で例に挙げた識別番号Ｅ１５，Ｅ４２については、整列順位３８，３７に示されるように、「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２ａ」及び「識別番号Ｅ４２の２７０度回転のシミュレーション点データＤ２ａ」が同一シミュレーション点となる。
【０１６５】
次に、図５５に示すステップＳ７２において、ＣＰＵ１１は、同一シミュレーション点に同じ識別番号を割り当てるために、新たに割り当てられる識別番号を０に設定（初期化）する。
【０１６６】
次に、ステップＳ７３において、ＣＰＵ１１は、最初のシミュレーション点データ、つまり図５６に示した整列順位１の「識別番号Ｅ１０の２７０度回転＋鏡像のシミュレーション点データＤ２ａ」を記憶装置１３から読み出す。続いて、ＣＰＵ１１は、読み出したシミュレーション点データＤ２ａ内の識別番号（１０）に新たな識別番号（ここでは、０）を設定する（ステップＳ７４）。具体的には、ＣＰＵ１１は、まず、図５７に示すように、エッジＥ０〜Ｅ８７に新たに付与される識別番号が格納される識別番号テーブル２６、具体的には各エッジＥ０〜Ｅ８７に対応する領域に上記ステップＳ２２（図３参照）で付与された識別番号０〜８７がそれぞれ格納される識別番号テーブル２６を記憶装置１３に確保する。そして、ＣＰＵ１１は、識別番号テーブル２６内のエッジＥ１０の識別番号に対応する領域に設定された「１０」を、図５８に示すように、新たな識別番号「０」に書き換える。なお、図５７に示す識別番号テーブル２６の各領域に格納される値は特に限定されず、全ての領域に「０」を格納するようにしてもよい。
【０１６７】
次に、図５５に示すステップＳ７５において、ＣＰＵ１１は、８８個全てのシミュレーション点データＤ１，Ｄ２ａを取り出したか否かを判定する。ここでは、全てのシミュレーション点データＤ１，Ｄ２ａの取り出しが終了していないため、次のシミュレーション点データ、つまり図５６に示した整列順位２の「識別番号Ｅ６９の２７０度回転のシミュレーション点データＤ２ａ」が記憶装置１３から読み出される（ステップＳ７６）。続いて、ＣＰＵ１１は、識別番号テーブル２６に最後に新たな識別番号を設定したシミュレーション点データ、ここでは「識別番号Ｅ１０の２７０度回転＋鏡像のシミュレーション点データＤ２ａ」と同一か否かを判定する。本例では、図５６に示すように、上記ステップＳ７６で取り出した「識別番号Ｅ６９の２７０度回転のシミュレーション点データＤ２ａ」と「識別番号Ｅ１０の２７０度回転＋鏡像のシミュレーション点データＤ２ａ」とが同一シミュレーション点であるため（ステップＳ７７でＹＥＳ）、ステップＳ７８を省略してステップＳ７９に移る。このステップＳ７９において、ＣＰＵ１１は、識別番号テーブル２６内のエッジＥ６９の識別番号に対応する領域に設定された「６９」を、図５８に示すように、新たな識別番号「０」に書き換える。
【０１６８】
その後、ステップＳ７５に戻って、整列順位３の「識別番号Ｅ１１の９０度回転のシミュレーション点データＤ２ａ」が取り出される（ステップＳ７６）。続いて、ステップＳ７７において、上記取り出された「識別番号Ｅ１１の９０度回転のシミュレーション点データＤ２ａ」と最後に新たな識別番号を設定した「識別番号Ｅ６９の２７０度回転のシミュレーション点データＤ２ａ」とが同一シミュレーション点ではないと判定されると、新たな識別番号に１が加算される（ステップＳ５０）。これにより、新たな識別番号が「１」に設定される。続いて、識別番号テーブル２６内のエッジＥ１１の識別番号に対応する領域に設定された「１１」が、図５９に示すように、新たな識別番号「１」に書き換えられる。
【０１６９】
以後同様に、ステップＳ７５〜Ｓ７９の処理が繰り返し実行され、図５６に示す整列順位３７の「識別番号Ｅ１９の９０度回転のシミュレーション点データＤ２ａ」に対する処理が終了すると、新たな識別番号が「１４」になっている。
【０１７０】
次に、整列順位３８の「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２ａ」が取り出されると（ステップＳ７６）、ステップＳ７７に移る。このステップＳ７７では、上記取り出された「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２ａ」と最後に新たな識別番号が設定された「識別番号Ｅ１９の９０度回転のシミュレーション点データＤ２ａ」とが同一シミュレーション点ではないと判定されるため、新たな識別番号に１が加算される（ステップＳ７８）。これにより、新たな識別番号が「１５」に設定される。続いて、識別番号テーブル２６内のエッジＥ１５の識別番号に対応する領域に設定された「１５」が、図５９に示されるように、新たな識別番号「１５」に書き換えられる。
【０１７１】
次に、整列順位３９の「識別番号Ｅ４２の２７０度回転のシミュレーション点データＤ２ａ」が取り出されると（ステップＳ７６）、ステップＳ７７に移る。このステップＳ７７では、上記取り出された「識別番号Ｅ４２の２７０度回転のシミュレーション点データＤ２ａ」と最後に新たな識別番号が設定された「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２ａ」とが同一シミュレーション点であると判定されるため、ステップＳ７９に移る。すると、識別番号テーブル２６内のエッジＥ４２の識別番号に対応する領域に設定された「４２」が、図５９に示されるように、上記エッジＥ１５と同一の新たな識別番号「１５」に書き換えられる。
【０１７２】
同様に、整列順位４０の「識別番号Ｅ１２の２７０度回転＋鏡像のシミュレーション点データＤ２ａ」も「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２ａ」と同一シミュレーション点であるため、エッジＥ１２の識別番号に対応する領域が新たな識別番号「１５」に書き換えられる。さらに、整列順位４１の「識別番号Ｅ４５の９０度回転＋鏡像のシミュレーション点データＤ２ａ」も「識別番号Ｅ１５の９０度回転のシミュレーション点データＤ２ａ」と同一シミュレーション点であるため、エッジＥ４５の識別番号に対応する領域が新たな識別番号「１５」に書き換えられる。
【０１７３】
その後も、上記抽出された全てのシミュレーション点データＤ１，Ｄ２ａの処理が終了するまでステップＳ７５〜Ｓ７９の処理が繰り返し実行される。やがて、８８個全てのシミュレーション点データＤ１，Ｄ２ａの処理が終了すると、識別番号テーブル２６は図６０に示すようになる。これにより、全てのエッジについて、同一シミュレーション点となるエッジに同一の識別番号が割り当てられたことになる。このとき、図６０に示した識別番号テーブル２６は、上記第１実施形態で生成された図３７の識別番号テーブル２５と同じになる。すなわち、本実施形態の同一シミュレーション点の算出方法であっても、上記第１実施形態と同程度の精度で同一シミュレーション点を算出することができる。
【０１７４】
本実施形態において、シミュレーション点データＤ１は第１評価点データの一例、簡易シミュレーション点データＤ１０ａは第２評価点データの一例である。また、ステップＳ６１は取得工程、正規化工程及び第１生成工程の一例、ステップＳ６２は第２生成工程の一例、ステップＳ６３〜Ｓ６８は同一評価点算出工程の一例、ステップＳ６３〜Ｓ６６は抽出工程の一例である。また、ステップＳ６３は第１抽出工程の一例、ステップＳ６４は作成工程の一例、ステップＳ６６は第２抽出工程及び第３抽出工程の一例、ステップＳ６８は算出工程の一例、ステップＳ７１は第１整列工程の一例である。
【０１７５】
以上説明した実施形態によれば、第１実施形態の（１）及び（２）の効果に加えて以下の効果を奏する。
（３）各シミュレーション点について作成した８つのシミュレーション点データの中から所定条件を満たす１つのシミュレーション点データを予め抽出し、各シミュレーション点毎に抽出した全シミュレーション点データを比較することにより同一シミュレーション点を算出するようにした。これにより、同一シミュレーション点を算出する際に比較されるシミュレーション点データの数を大幅に減らすことができる。具体的には、作成した全てのシミュレーション点データを比較して同一シミュレーション点を算出する場合と比べて、同一シミュレーション点を算出する際に比較されるシミュレーション点データの数を１／８に減らすことができる。したがって、同一シミュレーション点を算出するためのシミュレーション点データ同士の比較回数を減らすことができるため、同一シミュレーション点を高速に算出することができる。この結果、同一シミュレーション点の算出処理にかかる処理時間を短縮することができる。
【０１７６】
（４）各シミュレーション点について作成した８つのシミュレーション点データの中から所定条件を満たす１つのシミュレーション点データを抽出するようにした。このように複数のシミュレーション点データから所定条件（同じ条件）を満たす１つのシミュレーション点データを抽出することにより、０度回転時のデータがどのような回転・鏡像状態であっても、同一のシミュレーション点データを抽出することができる。したがって、このように抽出されたシミュレーション点データを比較して同一シミュレーション点を算出することにより、作成した全てのシミュレーション点データを比較して同一シミュレーション点を算出する場合と同様の精度で同一シミュレーション点を算出することができる。すなわち、同一シミュレーション点の算出精度を低下させることなく、同一シミュレーション点の算出処理にかかる処理時間を短縮することができる。
【０１７７】
（５）なお、モデルベースＯＰＣの光強度シミュレーションは単純で膨大な数値演算を行うため、ＧＰＵ（Graphic Processing Unit）を使用して高速に処理させることができる。このような仕組みで処理されるモデルベースＯＰＣでは、同一シミュレーション点を算出する処理がモデルベースＯＰＣ処理全体の処理時間の多くを占めるようになってきている。これに対し、本実施形態の処理方法によれば、同一シミュレーション点の算出処理にかかる処理時間を短縮することができるため、モデルベースＯＰＣ処理全体の処理時間を大幅に短縮することができる。
【０１７８】
（６）ステップＳ６３で抽出された簡易シミュレーション点データＤ１０ａのみエッジデータＤ２０を作成するようにした。これにより、ステップＳ６３で抽出されない簡易シミュレーション点データＤ１０ａのエッジデータＤ２０の作成が省略されるため、その分だけ処理時間を短縮することができる。また、上記作成が省略された分だけエッジデータＤ２０を格納するためのメモリ領域を小さくすることができる。
【０１７９】
（７）各シミュレーション点について作成した８つのシミュレーション点データの中から所定条件を満たす１つのシミュレーション点データを予め抽出し、各シミュレーション点毎に抽出した全シミュレーション点データを比較することにより同一シミュレーション点を算出するようにした。このため、同一シミュレーション点を算出する際には、１つのシミュレーション点に対して１つのシミュレーション点データのみが比較対象となる。したがって、新たな識別番号を付与する際に、１つのシミュレーション点に対して１つのシミュレーション点データのみが取り出されるため、新たな識別番号が１度付与されたシミュレーション点に対して他のシミュレーション点データが取り出されることがない。このため、新たな識別番号を付与する際に、識別番号テーブル２６を「−１」等で初期化する必要がない。
【０１８０】
（他の実施形態）
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記各実施形態では、光強度シミュレーション時の照明条件を、図６１（ａ）に示すように円形照明とした。これに限らず、例えば図６１（ｂ）に示すように、光強度シミュレーション時の照明条件を輪帯照明としてもよい。この場合にも、上記各実施形態と同様に、０度回転、９０度回転、１８０度回転、２７０度回転、及びそれらの回転に鏡像を加えた８通りのシミュレーション点データを考慮して同一シミュレーション点を算出することにより、略全ての同一シミュレーション点を算出することができる。
【０１８１】
また、例えば図６１（ｃ）に示すように、光強度シミュレーション時の照明条件を二眼照明（ダイポール照明）としてもよい。この場合には、二眼照明の形状が上下対称及び左右対称であるため、０度回転、１８０度回転、及びそれらの回転に鏡像を加えた４通りのシミュレーション点データを考慮して同一シミュレーション点を算出することにより、略全ての同一シミュレーション点を算出することができる。このため、この場合には、０度回転のシミュレーション点データＤ１と併せて、１８０度回転のシミュレーション点データＤ２，Ｄ１０ａ、０度回転＋鏡像のシミュレーション点データＤ２，Ｄ１０ａ、及び１８０度回転＋鏡像のシミュレーション点データＤ２，Ｄ１０ａを生成するようにする。
【０１８２】
・上記第１実施形態のステップＳ４１、及び上記第２実施形態のステップＳ７１におけるソート処理では、上記（ア）〜（キ）のデータをソートキーとして昇順ソートを行うようにした。これに限らず、例えば（ア）〜（キ）のデータをソートキーとして降順ソートを行うようにしてもよい。また、（ア）〜（キ）の優先順位は特に限定されず、例えば（イ）のデータを第１キーとしてもよい。また、上記（ア）〜（キ）の全てのデータをソートキーとする必要はなく、少なくとも（エ）〜（キ）のデータがソートキーに含まれていればよい。すなわち、影響範囲ＩＲ内の全てのエッジの始点座標及び終点座標が一致するか否かを比較することができればよい。
【０１８３】
・上記第２実施形態におけるステップＳ６３では、上記（Ａ）における所定条件を、エッジデータのｘ座標の合計値が最も小さく、且つエッジデータのｙ座標の合計値が最も小さいシミュレーション点データとした。これに限らず、例えば（Ａ）における所定条件を、エッジデータのｘ座標の合計値が最も大きく、且つエッジデータのｙ座標の合計値が最も大きいシミュレーション点データとしてもよい。
【０１８４】
・上記第２実施形態におけるステップＳ６６では、上記（Ｂ）における所定条件を、影響範囲ＩＲ内のエッジ数が最も小さいシミュレーション点データとした。これに限らず、例えば（Ｂ）における所定条件を、影響範囲ＩＲ内のエッジ数が最も大きいシミュレーション点データとしてもよい。また、上記（Ｂ）の比較条件による抽出処理を省略してもよい。
【０１８５】
・上記第２実施形態におけるステップＳ６６では、上記（Ｃ）における所定条件を、エッジデータＤ２１の始点ｘ座標が最も小さくなるデータ、又は始点ｙ座標が最も小さくなるデータ、又は終点ｘ座標が最も小さくなるデータ、又は終点ｙ座標が最も小さくなるデータとした。これに限らず、例えば（Ｃ）における所定条件を、エッジデータＤ２１の始点ｘ座標が最も大きくなるデータ、又は始点ｙ座標が最も大きくなるデータ、又は終点ｘ座標が最も大きくなるデータ、又は終点ｙ座標が最も大きくなるデータとしてもよい。また、ステップＳ６６における比較順序も始点ｘ座標→始点ｙ座標→終点ｘ座標→終点ｙ座標の順序に限定されず、例えば始点ｙ座標→始点ｘ座標→終点ｙ座標→終点ｘ座標の順序に変更してもよい。
【０１８６】
・上記各実施形態では、０度回転、９０度回転、１８０度回転、２７０度回転、及びそれらの回転に鏡像を加えた８通りのシミュレーション点データを考慮して同一シミュレーション点を算出するようにした。これに限らず、例えば上記８通りのシミュレーション点データのうち少なくとも２つのシミュレーション点データを考慮して同一シミュレーション点を算出するようにしてもよい。これによっても、図形データ３０，３１から切り出したままの０度回転のシミュレーション点データＤ１のみを考慮して同一シミュレーション点を算出する場合よりも、同一シミュレーション点の算出精度を向上させることができる。
【０１８７】
・上記実施形態では、分割点の座標をエッジの始点座標及び終点座標として取得するようにしたが、エッジの始点座標や終点座標を考えずに、分割点の座標を取得するようにしてもよい。例えば図５（ｂ）に示す分割点Ｎｓは、エッジＥ５の終点であると共にエッジＥ０の始点であるが、それらの終点座標及び始点座標は共に（１４０５５０，１１９５５０）となる。そこで、この分割点Ｎｓが影響範囲ＩＲ内に含まれる場合に、分割点Ｎｓの座標（１４０５５０，１１９５５０）のみを取得するようにしてもよい。
【０１８８】
以上の様々な実施の形態をまとめると、以下のようになる。
（付記１）
光強度シミュレーションを利用して設計データに含まれるパターンを補正するモデルベースの光近接効果補正方法であって、
前記パターンの頂点及び頂点間に設定された分割点で前記パターンの辺を分割する分割工程と、
前記分割した辺毎に設定された評価点を中心にした所定範囲内に含まれる前記分割点の座標を取得する取得工程と、
前記取得した分割点の座標を前記評価点の座標で正規化する正規化工程と、
前記正規化された分割点のｘ軸座標の合計値と、前記正規化された分割点のｙ軸座標の合計値と、前記正規化された分割点の座標データとを含む第１評価点データを生成する第１生成工程と、
前記第１評価点データ内の少なくとも前記ｘ軸座標の合計値及び前記ｙ軸座標の合計値を座標変換して、前記所定範囲内のパターンを光強度シミュレーション時の照明条件に応じた所定の回転・鏡像状態に変換した場合の第２評価点データを生成する第２生成工程と、
前記第１評価点データ及び前記第２評価点データに基づいて、前記所定範囲内におけるパターンの配置及び形状が同じになる評価点を同一評価点として算出する同一評価点算出工程と、
前記同一評価点毎に前記光強度シミュレーションを実施する工程と、
を有することを特徴とする光近接効果補正方法。
（付記２）
前記同一評価点算出工程は、
前記第１評価点データ及び前記第２評価点データの中から所定条件を満たす１つの評価点データを抽出する抽出工程と、
前記抽出工程で前記評価点毎に抽出された全ての評価点データを比較することにより、前記同一評価点を算出する算出工程と、
を有することを特徴とする付記１に記載の光近接効果補正方法。
（付記３）
前記抽出工程は、
前記第１評価点データ及び前記第２評価点データの中から、前記ｘ軸座標の合計値及び前記ｙ軸座標の合計値が所定条件を満たす評価点データを抽出する第１抽出工程と、
前記第１抽出工程で抽出された評価点データに対応する前記所定範囲内の分割点の座標データを作成する作成工程と、を有し、
前記算出工程では、前記抽出工程で抽出された各評価点データに対応する前記所定範囲内の分割点の座標データの全てが一致するか否かを比較することにより、前記同一評価点を算出することを特徴とする付記２に記載の光近接効果補正方法。
（付記４）
前記抽出工程は、
前記作成工程の後に、前記第１抽出工程で抽出された評価点データが複数存在する場合に、該複数の評価点データの中から、前記所定範囲内の分割点の数が所定条件を満たす評価点データを抽出する第２抽出工程と、
前記第２抽出工程で抽出された評価点データが複数存在する場合に、該複数の評価点データの中から、前記所定範囲内の分割点の座標データが所定条件を満たす評価点データを抽出する第３抽出工程と
を有することを特徴とする付記３に記載の光近接効果補正方法。
（付記５）
前記算出工程は、
前記ｘ軸座標の合計値、前記ｙ軸座標の合計値、前記所定範囲内に含まれる辺又は分割点の数、及び前記所定範囲内の分割点の座標データをキーとして、前記抽出工程で前記評価点毎に抽出された全ての評価点データを整列する第１整列工程と、
前記第１整列工程の結果に基づいて、整列順位が同順位となる評価点を前記同一評価点として算出する工程と
を有することを特徴とする付記３又は４に記載の光近接効果補正方法。
（付記６）
前記分割点が前記分割された辺の始点及び終点に設定され、
前記取得工程では、前記分割点の座標として前記辺の始点座標及び終点座標を取得し、
前記正規化工程では、前記始点座標及び前記終点座標を前記評価点の座標で正規化し、
前記作成工程では、前記第１抽出工程で抽出された評価点データに対応する前記所定範囲内の辺の始点座標及び終点座標を作成し、
前記第１整列工程では、前記ｘ軸座標の合計値、前記ｙ軸座標の合計値、前記所定範囲内に含まれる辺の数、前記作成された全ての前記始点座標及び前記終点座標をキーとして、前記評価点毎に抽出された全ての評価点データを整列することを特徴とする付記５に記載の光近接効果補正方法。
（付記７）
前記第２生成工程では、前記第１評価点データ内の前記正規化された分割点の座標データを座標変換して生成された前記所定範囲内の分割点の座標データを有する第２評価点データを生成し、
前記同一評価点算出工程は、
前記ｘ軸座標の合計値、前記ｙ軸座標の合計値、前記所定範囲内に含まれる辺又は分割点の数、及び前記所定範囲内の分割点の座標データをキーとして、全ての前記第１評価点データ及び前記第２評価点データを整列する第２整列工程と、
前記第２整列工程の結果に基づいて、整列順位が同順位となる評価点を前記同一評価点として算出する工程と
を有することを特徴とする付記１に記載の光近接効果補正方法。
（付記８）
前記分割工程の後に、前記分割された各辺に識別番号を付与する工程を有し、
前記同一評価点算出工程は、
前記同一評価点であると判定された複数の辺に同一の識別番号を新たに付与する工程を有することを特徴とする付記１〜７のいずれか１つに記載の光近接効果補正方法。
（付記９）
前記第２生成工程では、
前記照明条件が円形照明又は輪帯照明である場合には、前記第１評価点データを鏡像反転させた場合と、前記第１評価点データ及び前記鏡像反転させた場合のデータを９０度回転、１８０度回転、２７０度回転させた場合とに対応する７つの第２評価点データを生成する一方、前記照明条件が二眼照明である場合には、前記第１評価点データを鏡像反転させた場合と、前記第１評価点データ及び前記鏡像反転させた場合のデータを１８０度回転させた場合とに対応する３つの第２評価点データを生成することを特徴とする付記１〜８のいずれか１つに記載の光近接効果補正方法。
（付記１０）
設計装置が実行する設計方法であって、
設計データを生成する工程と、
前記設計データに含まれるパターンを、光強度シミュレーションを利用して補正するモデルベースの光近接効果補正工程と、
前記補正後の設計データに基づいて描画データを生成する工程とを有し、
前記光近接効果補正工程は、
前記パターンの頂点及び頂点間に設定された分割点で前記パターンの辺を分割する分割工程と、
前記分割した辺毎に設定された評価点を中心にした所定範囲内に含まれる前記分割点の座標を取得する取得工程と、
前記取得した分割点の座標を前記評価点の座標で正規化する正規化工程と、
前記正規化された分割点のｘ軸座標の合計値と、前記正規化された分割点のｙ軸座標の合計値と、前記正規化された分割点の座標データとを含む第１評価点データを生成する第１生成工程と、
前記第１評価点データ内の少なくとも前記ｘ軸座標の合計値及び前記ｙ軸座標の合計値を座標変換して、前記所定範囲内のパターンを光強度シミュレーション時の照明条件に応じた所定の回転・鏡像状態に変換した場合の第２評価点データを生成する第２生成工程と、
前記第１評価点データ及び前記第２評価点データに基づいて、前記所定範囲内におけるパターンの配置及び形状が同じになる評価点を同一評価点として算出する同一評価点算出工程と、
前記同一評価点毎に前記光強度シミュレーションを実施する工程と、
を有することを特徴とする設計方法。
（付記１１）
設計データを生成する処理と、
前記設計データに含まれるパターンを、光強度シミュレーションを利用して補正するモデルベースの光近接効果補正処理と、
前記補正後の設計データに基づいて描画データを生成する処理と、
を実行し、
前記光近接効果補正処理において、
前記パターンの頂点及び頂点間に設定された分割点で前記パターンの辺を分割する処理と、
前記分割した辺毎に設定された評価点を中心にした所定範囲内に含まれる前記分割点の座標を取得する処理と、
前記取得した分割点の座標を前記評価点の座標で正規化する処理と、
前記正規化された分割点のｘ軸座標の合計値と、前記正規化された分割点のｙ軸座標の合計値と、前記正規化された分割点の座標データとを含む第１評価点データを生成する処理と、
前記第１評価点データ内の少なくとも前記ｘ軸座標の合計値及び前記ｙ軸座標の合計値を座標変換して、前記所定範囲内のパターンを光強度シミュレーション時の照明条件に応じた所定の回転・鏡像状態に変換した場合の第２評価点データを生成する処理と、
前記第１評価点データ及び前記第２評価点データに基づいて、前記所定範囲内におけるパターンの配置及び形状が同じになる評価点を同一評価点として算出する処理と、
前記同一評価点毎に前記光強度シミュレーションを実施する処理と、
を実行することを特徴とする設計装置。
【符号の説明】
【０１８９】
１０  設計装置
１１  中央処理装置
１３  記憶装置
２１  設計データ
２２  エッジデータ
３０，３１  図形データ
Ｎ，Ｎ１，Ｎ２，Ｎｅ，Ｎｓ  分割点
Ｔ１〜Ｔ８，Ｔ１１〜Ｔ１８  頂点
Ｄ１  シミュレーション点データ
Ｄ２，Ｄ２ａ  シミュレーション点データ
Ｄ１０  シミュレーション点データ
Ｄ１０ａ  簡易シミュレーション点データ
Ｄ１１〜Ｄ１７  データ
Ｄ２０，Ｄ２１  エッジデータ
Ｄ２２〜Ｄ２５  データ
Ａ１  エッジ
Ｅ０〜Ｅ８７，Ｆ０〜Ｆ３１  識別番号（エッジ）
ＳＥ１５，ＳＥ４２，ＳＥ８７  シミュレーション点（評価点）
ＩＲ  影響範囲
【図１】
0005810701.tif 000002
【図２】
0005810701.tif 000003
【図３】
0005810701.tif 000004
【図４】
0005810701.tif 000005
【図５】
0005810701.tif 000006
【図６】
0005810701.tif 000007
【図７】
0005810701.tif 000008
【図８】
0005810701.tif 000009
【図９】
0005810701.tif 000010
【図１０】
0005810701.tif 000011
【図１１】
0005810701.tif 000012
【図１２】
0005810701.tif 000013
【図１３】
0005810701.tif 000014
【図１４】
0005810701.tif 000015
【図１５】
0005810701.tif 000016
【図１６】
0005810701.tif 000017
【図１７】
0005810701.tif 000018
【図１８】
0005810701.tif 000019
【図１９】
0005810701.tif 000020
【図２０】
0005810701.tif 000021
【図２１】
0005810701.tif 000022
【図２２】
0005810701.tif 000023
【図２３】
0005810701.tif 000024
【図２４】
0005810701.tif 000025
【図２５】
0005810701.tif 000026
【図２６】
0005810701.tif 000027
【図２７】
0005810701.tif 000028
【図２８】
0005810701.tif 000029
【図２９】
0005810701.tif 000030
【図３０】
0005810701.tif 000031
【図３１】
0005810701.tif 000032
【図３２】
0005810701.tif 000033
【図３３】
0005810701.tif 000034
【図３４】
0005810701.tif 000035
【図３５】
0005810701.tif 000036
【図３６】
0005810701.tif 000037
【図３７】
0005810701.tif 000038
【図３８】
0005810701.tif 000039
【図３９】
0005810701.tif 000040
【図４０】
0005810701.tif 000041
【図４１】
0005810701.tif 000042
【図４２】
0005810701.tif 000043
【図４３】
0005810701.tif 000044
【図４４】
0005810701.tif 000045
【図４５】
0005810701.tif 000046
【図４６】
0005810701.tif 000047
【図４７】
0005810701.tif 000048
【図４８】
0005810701.tif 000049
【図４９】
0005810701.tif 000050
【図５０】
0005810701.tif 000051
【図５１】
0005810701.tif 000052
【図５２】
0005810701.tif 000053
【図５３】
0005810701.tif 000054
【図５４】
0005810701.tif 000055
【図５５】
0005810701.tif 000056
【図５６】
0005810701.tif 000057
【図５７】
0005810701.tif 000058
【図５８】
0005810701.tif 000059
【図５９】
0005810701.tif 000060
【図６０】
0005810701.tif 000061
【図６１】
0005810701.tif 000062