(58)【調査した分野】(Int.Cl.,DB名)
第1外周と第1内周と前記第1外周に前記第1内周を接続する線分とを有する第1サンプル・パターンの前記第1外周と前記第1内周の各頂点とを通って前記第1サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第1内周に対応する内抜きパターンを生成する工程と、
前記内抜きパターンと第1リファレンス・パターンが一致するか判定する工程とを有する
パターンマッチング方法。
第1外周と第1内周と前記第1外周に前記第1内周を接続する線分とを有する第1サンプル・パターンの前記第1外周と前記第1内周の各頂点とを通って前記第1サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第1内周に対応する内抜きパターンを生成し、
前記内抜きパターンと第1リファレンス・パターンが一致するか判定する
処理をコンピュータに実行させるプログラム。
【発明を実施するための形態】
【0012】
以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。尚、図面が異なっても対応する部分には同一の符号を付し、その説明を省略する。
【0013】
(実施の形態1)
(1)既存のパターンマッチング方法
図1は、既存のパターンマッチング方法では検出困難なパターン内スペースを説明する図である。
【0014】
図1には、内側にスペース4(パターンの存在しない領域)が設けられた満たされたパターン2(Filled Pattern)が示されている。スペース4の外縁は、パターン2の内周7に一致する。この様な内周7のパターンを以下、内抜きパターンと呼ぶ。パターン2の外周8は、外形パターンと呼ぶ。
【0015】
既存のパターンマッチング・プログラム(例えば、Calibre Pattern Matching; Calibreは登録商標)は、内抜きパターンのパターンマッチングに関し、種々の問題を有している。
図2は、内抜きパターンのマッチングに関する第1の問題を説明する図である。
【0016】
図2には、上から1番目のパターン10をリファレンスとするパターンマッチングの結果の一例が示されている。パターン10は、内側に内抜きパターンが存在しないパターンである。既存のパターンマッチング・プログラムによれば、2番目及び3番目のパターン12,14は、1番目のパターン10と一致すると判定される。一方、4番目のパターン16は、1番目のパターン10とは一致しないと判定される。
【0017】
4番目のパターン16は、外形パターン9の形状が1番目のパターン10と一致しない。このため4番目のパターン16は、1番目のパターン10と一致しないと判定される。一方、2番目および3番目のパターン12,14は、外形パターン9が1番目のパターン10と一致する。このため2番目および3番目のパターン12,14は、1番目のパターン10と一致すると判定される。なお「形状が一致する」とは、合同を意味するものとする(以下、同様)。
【0018】
2番目のパターン12は、内側に内抜きパターン6が存在しない点でも、1番目のパターン10と一致している。一方、3番目のパターン14の内側には、1番目のパターン10とは異なり、内抜きパターン6が存在している。
【0019】
このように既存のパターンマッチング・プログラムには、内抜きパターン6の有無に拘わらず、外形パターン9だけで一致判定(マッチング)を行うという第1の問題が存在する。
【0020】
図3は、内抜きパターンのマッチングに関する第2の問題を説明する図である。
【0021】
既存のパターンマッチング・プログラムには、内抜きパターン自体の一致判定を行う機能は存在しない。この問題の解決策としては、内抜きパターンの一致判定を行う代わりに、内側に内抜きパターンが存在するパターンをリファレンスとして一致判定を行うことが考えられる。
【0022】
図3は、上から1番目のパターン18をリファレンスとするパターンマッチングの結果の一例が示されている。1番目パターン18は、内側に内抜きパターン6が存在するパターンである。2番目のパターン20は、1番目のパターン18と一致すると判定されるパターンの一例である。3番目のパターン22および4番目のパターン24は、1番目のパターン18と一致しないと判定されるパターンの一例である。
【0023】
2番目のパターン20は、1番目のパターン18と外形パターン9および内抜きパターン6の形状が一致し更に内抜きパターン6の位置が一致する。このため2番目のパターン20は、1番目のパターン18と一致すると判定される。
【0024】
4番目のパターン24は、1番目のパターン18と内抜きパターン6の形状は一致する。しかし、4番目のパターン24は、1番目のパターン18と外形パターン9の形状が一致しない。このため4番目のパターン24は、1番目のパターン18と一致しないと判定される。
【0025】
3番目のパターン22は、1番目のパターン18と外形パターン9および内抜きパターン6の形状が一致する。しかし3番目のパターン22は、内抜きパターン6の位置が1番目のパターン18と一致しない。このため3番目のパターン22は、1番目のパターン18と一致しないと判定される。
【0026】
このように既存のパターンマッチング・プログラムは、内抜きパターン6の形状が一致していても内抜きパターン6の位置や外形パターン9の形状が一致しないパターン同士は一致しないと判定する。
【0027】
したがって既存のパターンマッチング・プログラムには、内抜きパターンの形状だけに着目したパターンマッチングを行えないという第2の問題が存在する。
【0028】
(2)パターンマッチング装置
図4は、実施の形態1のパターンマッチング装置26の一例を示す図である。
図4のパターンマッチング装置26は、例えばパターンマッチング・プログラムが補助記憶部32に記録されたコンピュータである。
【0029】
図4に示すように、パターンマッチング装置26は、演算部28と主記憶部30と補助記憶部32と入力部34と表示部36と通信部38とバス40とを有している。演算部28は例えば、CPU(Central Processing Unit)である。
【0030】
主記憶部30は例えば、RAM(Random Access Memory)およびROM(Read Only Memory)である。補助記憶部32は例えば、HD(Hard Disk)を格納したHDD(Hard Disk Drive)である。入力部34は例えば、キーボード及び/又はマウスである。表示部36は例えば、液晶ディスプレイ及び/又はプリンタである。通信部38は、例えばNIC(Network Interface Card)である。
【0031】
演算部28は、パターンマッチング装置26の各ハードウエア30〜38を制御すると共に演算を実行する。演算部28は例えば、補助記憶部32に記録されたプログラムを主記憶部30(例えば、RAM)にロードし、ロードしたプログラムを実行する。主記憶部30にはプログラム以外にも、演算途中のデータが一時的に記録される。
【0032】
補助記憶部32には、実施の形態1のパターンマッチング方法を演算部28に実行させるパターンマッチング・プログラムが記録されている。補助記憶部32には更に、リファレンスのライブラリ(データベース)が記録されている。補助記憶部32には好ましくは、パターンマッチング・プログラムにより検索するデータ(例えば、集積回路のレイアウトパターン)が予め記録されている。
【0033】
通信部38は例えば、コンピュータ26をネットワークに接続する。
【0034】
バス40には、演算部28と主記憶部30と補助記憶部32と入力部34と表示部36と通信部38とが接続されている。これらハードウエア間のデータの送受信は、バス40を介して行われる。
【0035】
(3)リファレンス・ライブラリ
上述したように補助記憶部32には、リファレンス・パターンが登録されたライブラリ(以下、リファレンス・ライブラリと呼ぶ)が記録されている。
図5は、リファレンス・ライブラリ42の一例を示す図である。
図5に示すように、リファレンス・ライブラリ42には内抜きパターン表44が登録されている。
【0036】
図6は、内抜きパターン表44の一例を説明する図である。
図6に示すように内抜きパターン表44は、表形式のファイルである。内抜きパターン表44には、複数の異なる内抜きパターン6に対応するデータ46(以下、内抜きRデータと呼ぶ)が記録されている。内抜きパターン表44には更に、内抜きRデータ46に対応する識別子48が記録されている。
【0037】
図7は、内抜きRデータを説明する図である。
図7(a)には、内抜きRデータに対応する内抜きRパターン50(以下、第1リファレンス・パターンと呼ぶ)の一例が示されている。
【0038】
内抜きRパターン50は、
図7(a)に示すように例えば、空の多角形(Unfilled Polygon)である。
図7(b)には、内抜きRパターン50の頂点Ab,Bb,Cb,Dbと、内抜きRパターン50の各頂点を通って内抜きRパターン50を一周する経路52が示されている。
【0039】
内抜きRデータ46は、経路52が各頂点Ab,Bb,Cb,Dbを通る順に各頂点Ab,Bb,Cb,Dbの座標を配列した座標列である。座標の単位は、例えばnm(ナノメータ)である(以下、同様)。
【0040】
例えば第1パターン表44(
図6参照)の1番目の内抜きRデータ46は、頂点座標が(-50,-50)と(-50,50)と(50,50)と(50,-50)の四角形状の内抜きRパターン50のデータである。内抜きRデータ46の両端の括弧()は、内抜きRパターンのデータであることを示している。
図6に示す例では、内抜きRデータ46の最初の頂点座標と最後の頂点座標は一致していない。しかし、最初の頂点座標と最後の頂点座標は一致してもよい。後述するリファレンス・データについても、同様である。
【0041】
(4)パターンマッチング方法
図8は、実施の形態1のパターンマッチング方法のフローチャートの一例である。
【0042】
(4−1)設計パターンおよびリファレンス・パターンの取得(S2〜S4)
パターンマッチング・プログラムが主記憶部30にロードされると、パターンマッチング装置(例えば、コンピュータ)は
図8に示す処理を開始する。
【0043】
まず、ユーザが内抜きRデータ46の識別子48(リファレンスID)を、入力部34に入力する(S2)。すると演算部28は、識別子48に対応する内抜きRデータ46をリファレンス・ライブラリ42から読み出し、主記憶部30に記録する(S4)。 演算部28は更に、例えば設計パターン(すなわち、OPC補正前のレイアウトパターン)のデータを補助記憶部32から読み出し、主記憶部30に記録する(S4)。
【0044】
以上により演算部28は、内抜きRパターン(以下、第1リファレンス・パターンと呼ぶ)および設計パターンを取得する。
【0045】
ステップS2でユーザが入力する識別子48は、例えば「a-1」である。内抜きRデータ46は例えば、(-50 -50, -50 50, 50 50, 50 -50)である。
【0046】
ステップS4で読み込まれる設計パターンのデータ(以下、設計データと呼ぶ)は、例えばGDS II形式又はOASIS形式のデータである。演算部28は、設計データのフォーマットを非階層形式に変換し、補助記憶部32に記録する。変換後の設計データは、設計パターンに含まれる図形(すなわち、要素パターン)のデータの集まりである。
図9は、要素パターンのデータ(以下、要素パターン・データと呼ぶ)の一例を説明する図である。
【0047】
図9(a)は、要素パターン54の一例を示す図である。
図9(b)は、ダンプされた要素パターン・データ56の一例を示す図である。
図9(c)は、要素パターン54の頂点a,b,c,dを通る経路52の一例を示す図である。
【0048】
要素パターン・データ56は例えば、要素パターン54の種類を示すヘッダ58と、データ本体60と、テイル62とを有している。
【0049】
要素パターンの種類には、満たされた多角形(Boundary Element)や一定の幅を有するワイヤ(Path Element)などがある。データ本体60には例えば、レイヤナンバー64、データタイプ66、頂点数68、座標列70などが含まれる。座標列70は、経路52(
図9(c)参照)が各頂点a,b,c,dを通る順に各頂点の座標(すなわち、頂点座標)を配列した座標列である。最初の頂点座標と最後の頂点座標は好ましくは、同じ頂点(例えば、頂点a)の座標である。
【0050】
ステップS2では、ユーザがリファレンスIDを入力する。しかし、ユーザの代わりに演算部28が、予め補助記憶部32に記録されているリファレンスIDを取得してもよい。
【0051】
ステップS4では演算部28は、補助記憶部32に記録された設計データを取得する。しかし演算部28は、通信部38を介して、ネットワークに接続された記憶装置から設計データを取得してもよい。
【0052】
さらに演算部28は、設計データの代わりに、レイアウトパターンのデータを取得してもよい。レイアウトパターンとは、フォトマスクに形成されるパターンのことである。
【0053】
なお以後の説明では、要素パターン等を適宜、その頂点記号により表示する。例えば、
図9(c)の要素パターン54は、要素パターン(abcd)と表示する。また要素パターン等の経路を、通過点の記号を用いて表示する。例えば、
図9(c)の経路52は、経路(a→b→c→d)と表示する。
【0054】
(4−2)未処理要素パターンの抽出(S6〜S8)
演算部28は先ず、主記憶部30に記録した設計データに、後段の処理(S10〜S12)が行われていない要素パターン・データが存在するか否かを判定する(S6)。処理対象は、Boundary Elementである。以下のステップでも同様である。
【0055】
未処理の要素パターン・データが存在する場合、演算部28は設計データから、未処理の要素パターン・データを抽出する(S8)。すなわち、演算部28は設計パターンから、未処理の要素パターンを抽出する。未処理の要素パターン・データが存在しない場合、演算部28はステップS16に進む。
【0056】
(4−3)内抜きパターンの有無判定(S10)
演算部28は、ステップS8で抽出した要素パターンの内側に内抜きパターンが存在するか否かを判定する(S10)。抽出した要素パターンの内側に内抜きパターン6が存在する場合、演算部28はステップS12に進む。抽出した要素パターンの内側に内抜きパターン6が存在しない場合、演算部28はステップS6に戻る。
【0057】
演算部28は例えば以下の手順により、要素パターンの内側に内抜きパターンが存在するか否かを判定する。先ず、内抜きパターンが存在する要素パターンについて説明する。
【0058】
―内抜きパターンが存在する要素パターン―
図10は、内側に内抜きパターン6が存在する要素パターン72及びその要素パターン・データ74を説明する図である。
【0059】
図10(a)は、内側に内抜きパターン6が存在する要素パターン72の一例を示す図である。
図10(b)は、この要素パターン72に対応する要素パターン・データ74の一例を示す図である。
図10(b)には、ダンプされた状態の要素パターン・データ74が示されている。
図10(c)には、要素パターン72の各頂点を通る経路76の一例が示されている。なお
図10(c)には、実施の形態2で説明するベクトル161も示されている。
【0060】
図10(a)に示すように、内側に内抜きパターン6が存在する要素パターン72は、データ上は第1外周78aと第1内周80aと第1外周78aに第1内周80aを接続する線分82とを有する図形として取り扱われる。
【0061】
図10(b)に示すように、要素パターン・データ74の座標列85(以下、サンプル・データと呼ぶ)には、経路76の両端(例えば、頂点a)および経路76が方向を変える折れ点(例えば、点b〜j)の各座標84が、経路76が両端と折れ点とを通る順に配列される。
【0062】
経路76は、
図10(c)に示すように、第1外周78aと第1内周80aの各頂点とを通って要素パターン72を一周する経路である。経路76の両端a(始点および終点)は好ましくは、
図10(c)に示すように重なっている。
【0063】
図10(a)に示す例では、経路76の両端および折れ点は点d,iを除き、第1外周78aまたは第1内周80aの頂点である。
【0064】
―判定方法―
図11は、要素パターン・データ74における座標列85の一例を示す図である。
【0065】
演算部28は先ず、座標列85(サンプル・データ)内において隣接する座標84の組合せ86(以下、第1座標組合せと呼ぶ)の中で、対応する区間(線分)が少なくとも部分的に重なる座標84の組合せ88,90(以下、第2座標組合せと呼ぶ)を探索する。
【0066】
演算部28は探索の結果、対応する区間が少なくとも部分的に重なる第2座標組合せ88,90が検出された場合、要素パターンの内側に内抜きパターン6が存在すると判定する。第2座標組合せ88,90が検出された要素パターン72は、後述する一致判定(S12)においてサンプル・パターンとなる。一方、第2座標組合せ88,90が検出されない場合、演算部28は要素パターンの内側に内抜きパターン6は存在しないと判定する。
【0067】
以下、
図10を参照して上記判定方法を具体的に説明する。なお以下の説明では2点間の区間を、両端の記号を用いて表す。例えば、点aと点bとに挟まれた区間は、区間(a⇔b)と表す。
図11の座標列85は、
図10(a)の要素パターン72に対応している。
【0068】
第2座標組合せ88,90の一方88は、折れ点dと折れ点eに挟まれた第1区間(d⇔e)に対応している(
図10(c)参照)。第2座標組合せ88,90の他方90は、折れ点hと折れ点iに挟まれた第2区間(h⇔i)に対応している。
【0069】
第1区間(d⇔e)と第2区間(h⇔i)が重なった区間(e⇔i)(以下、重複区間と呼ぶ)は、第1外周78aに第1内周80aを接続する線分82(
図10(a)参照)が存在する区間に一致する。線分82が存在することは、要素パターン72の内側に内抜きパターン6が存在することを意味する。
【0070】
したがって、第2座標組合せ80,90が検出された場合、演算部28は要素パターン72の内側に内抜きパターン6が存在すると判定する。第2座標組合せ80,90が検出されない場合、演算部28は要素パターン72の内側に内抜きパターン6は存在しないと判定する。
【0071】
図12は、内側に内抜きパターン6が存在する要素パターンの別の例を説明する図である。
図10(c)に示す例と同様、第2座標組合せの一方は折れ点dと折れ点eに挟まれた区間(d⇔e)に対応し、第2座標組合せの他方は折れ点hと折れ点iに挟まれた区間(h⇔i)に対応している。
【0072】
図10(c)に示す例では、折れ点dと折れ点iは重なっている。このため重複区間は、折れ点eと折れ点iに挟まれた区間(e⇔i)である。一方、
図12に示す例では、折れ点dと折れ点iは分離している。このため重複区間は、折れ点dと折れ点eに挟まれた区間(d⇔e)になる。
【0073】
なお、第1座標組合せ86に対応する区間が互いに重なるか否かは、第1座標組合せ86に含まれる座標84同士を比較する容易に判定できる。
【0074】
(4−4)一致判定(S12)
図13は、一致判定工程(S12)のフローチャートの一例である。
【0075】
(4−4−1)内抜きパターンの抽出(S20)
演算部28は、内側に内抜きパターンが存在すると判定された要素パターン72(以下、第1サンプル・パターンと呼ぶ)の経路76から、経路76が重なる重複区間(e⇔d)で削除して、第1内周80aに対応する内抜きパターン6を抽出(生成)する。
【0076】
具体的には演算部28は、例えば以下の手順により内抜きパターンを抽出する。
【0077】
図14は、内抜きパターン抽出工程(S20)のフローチャートの一例である。を説明する図である。
図15は、内抜きパターン抽出工程を説明する図である。
【0078】
図15(a)には、要素パターン72(第1サンプル・パターン)に対応する座標列85の一例が示されている。
図15(a)に示す座標列85は、
図11に示した座標列と同じものである。
図15(b)には、後述する第2座標列105が示されている。
【0079】
―サンプル・データの分断(S32)―
演算部28は先ず、ステップS10(又は、ステップS14)で検出した第2座標組合せ88,90それぞれを分断して、座標列85(サンプル・データ)から第1座標列94(
図10(a)参照)と第2座標列105(
図10(b)参照)を生成する(S32)。
【0080】
第1座標列94は、第2座標組合せ88,90の一方88の座標の間で座標列85を分断して得られ一端100と、第2座標組合せ88,90の他方90の座標の間で座標列85を分断して得られる他端102とを有する座標列である。
【0081】
第2座標列105は、座標列85から第1座標列94を削除して得られる座標列である。
図15に示すように、第1座標列94が座標列85の内部に位置する場合には、
図15(b)に示すように、第1座標列94の削除によって分離された第3座標列104同士を接続することで第2座標列105が得られる。第1座標列94が座標列85の一端に位置する場合には、第1座標列94の削除によって直ちに第2座標列105が得られる。
【0082】
―内側に位置する座標列の検出(S34)―
演算部28は、第1座標列94に対応する第1分割パターン(例えば、
図10(c)の多角形(efgh))が第2座標列105に対応する第2分割パターン(例えば、
図10(c)の多角形(abcj))の内側に存在するか否かを判定する。第1分割パターンが第2分割パターンの内側に存在すると判定すると、演算部28はステップS36に進む。第1分割パターンが第2分割パターンの内側に存在しない場合、演算部28はステップS38に進む。
【0083】
第1分割パターンが第2分割パターンの内側か否かは、例えば以下のように判定することができる。
【0084】
演算部28は先ず、第1分割パターンの各頂点が第2分割パターンの内側に存在するか否か判定する。
【0085】
判定の結果、第1分割パターンの頂点が全て第2分割パターンの内側に存在する場合、演算部28は第1分割パターンが第2分割パターンの内側に存在すると判定する。第1分割パターンの頂点が全て第2分割パターンの内側に存在しない場合、演算部28は第2分割パターンが第1分割パターンの内側に存在すると判定する。
【0086】
図16は、第1分割パターン(efgh)の頂点eが第2分割パターン(abcj)の内側にあるか否かを判定する方法の説明図である。
図16(a)は、頂点eが第2分割パターン(abcj)の内側にある場合を示している。
図16(b)は、頂点eが第2分割パターン(abcj)の外側にある場合を示している。
【0087】
演算部28は先ず、第2分割パターン(abcj)の第1頂点(例えば、頂点a)と第1分割パターンの頂点eを結ぶ第1線分と第1頂点(例えば、頂点a)に隣接する第2頂点(例えば、頂点b)と頂点eを結ぶ第2線分の間の角度θ1を算出する。演算部28は更に、第2分割パターン(abcj)の各頂点(頂点aを除く)と第1分割パターンの頂点eを結ぶ線分間の角度θ2〜θ4を算出する。
【0088】
角度θ1〜θ4の総和が2π(rad)または−2π(rad)の場合に演算部28は、第1分割パターンの頂点eは第2分割パターン(abcj)の内側にあると判定する。一方、角度θ1〜θ4の総和が0(rad)の場合、演算部28は第1分割パターンの頂点eは第2分割パターン(abcj)の内側に存在しないと判定する。
【0089】
―内抜きパターン・データの生成(S36およびS38)―
演算部28はステップ36に進んだ場合、内抜きパターン・データとして第1分割パターンに対応するデータを生成する(S36)。一方、演算部28はステップ38に進んだ場合、内抜きパターン・データとして第2分割パターンに対応するデータを生成する(S38)。
【0090】
以上により演算部28は、第1座標列94に対応する第1分割パターンおよび第2座標列105に対応する第2分割パターンのうち内側のパターンに対応するデータを内抜きパターン6のデータとして生成する。
【0091】
具体的には例えば演算部28は、ステップS36に進んだ場合、第1座標列104に多角形(efgh)の頂点以外の座標が存在する場合、第1座標列104から頂点以外の座標を削除する。演算部28は更に、第1座標列104に重複する座標が存在する場合、重複する座標の一方を削除する。以上により、第1分割パターンに対応するデータが生成される。
【0092】
図15に示す第1座標列94には、多角形(efgh)の頂点座標以外の座標や重複する座標は存在しない。したがってステップS36では、(-50,50)(50,50)(50,-50)(-50,-50)という座標列が生成される。
【0093】
演算部28は、ステップS38に進んだ場合には、例えば第3座標列104を接続して第2座標列を生成する。演算部28は生成した第2座標列105から、ステップS36と同様に、不要な座標点を削除する。これにより、第2分割パターンに対応するデータが生成される。
図15(b)に示す例では、演算部28は第2座標列105から、頂点以外の座標(-50,100)と重複座標(-100,-100)の一方を削除して、(-100,-100) (100,-100) (100,100) (-100,-100)という座標列を生成する。
【0094】
ステップS32〜S38により演算部28は、要素パターン72(第1サンプル・パターン)から第1内周80aに対応する内抜きパターン6を抽出する。
【0095】
(4−4−2)判定(S22)
演算部28は、ステップS20(
図13参照)で生成した内抜きパターン6と、ステップS4(
図8参照)で取得した内抜きRパターン50が一致するか判定する。具体的には演算部28は、ステップS20で生成した内抜きパターン6のデータが、ステップS4で読み出した内抜きRデータ48に対応(マッチング)するか否かを判定する(S22)。
【0096】
内抜きパターン6と内抜きRパターン50が一致すると判定した場合、演算部28はステップS24に進む。内抜きパターン6と内抜きRパターン50が一致しないと判定した場合、演算部28は一致判定S12(
図8参照)を終了する。
【0097】
内抜きパターン6と内抜きRパターン50が一致するか否かは、例えば以下のように判定することができる。
【0098】
演算部28は先ず、ステップS4(
図8参照)で読み出した内抜きRパターン50(例えば、
図7参照)の基準頂点からこの基準頂点に隣接する一方の頂点に至る第1ベクトルを算出する。基準頂点は例えば、x座標が最小の頂点のうちy座標が最小の頂点である。
図7に示す例では、基準頂点は頂点Abである。演算部28は例えば、基準頂点Abから頂点Bbに至る第1ベクトルを算出する。
【0099】
次に演算部28は、ステップS20(
図13参照)で抽出した内抜きパターン(例えば、
図10(c)の多角形efgh)の基準頂点からこの基準頂点に隣接する各頂点に至る第2及び第3ベクトルを算出する。
図10(c)に示す例では、基準頂点は頂点hである。隣接する頂点は、頂点eと頂点gである。
【0100】
次に演算部28は、内抜きRパターン50(第1リファレンス・パターン)から算出した第1ベクトルが、内抜きパターン6から算出した第2又は第3ベクトルに一致するか否か判定する。
【0101】
第1ベクトルと第2又は第3ベクトルが一致する場合、演算部28は、内抜きRパターン50(第1リファレンス・パターン)の他の頂点に対して同様の処理を、例えば経路52に沿って順次行う。内抜きパターン6側のベクトルを算出する起点は例えば、内抜きパターン6側の基準点(例えば、頂点h)に内抜きパターン6で算出したベクトルを順次加算することで算出できる。
【0102】
演算部28は、内抜きRパターン50(第1リファレンス・パターン)の各頂点Ab,Bb,Cb,Dbで算出したベクトルが全て内抜きパターン側の各頂点h,e,f,gで算出したベクトルの一方と一致する場合、内抜きパターン6は内抜きRパターン50に一致すると判断する。
【0103】
このようにステップS22(
図13参照)の一致判定はベクトルに基づいて行われるので、内抜きRパターン50と内抜きパターン60は、形状が同一であれば(正確には、並進操作により重なるならば)一致すると判定される。なお演算部28は、内抜きRパターン50を回転又は反転してから、一致判定(ステップS22)を行ってもよい。
【0104】
(4−4−3)記録(S24)
演算部28はステップS24に進むと、ステップS22で内抜きRパターンと一致すると判定した内抜きパターン6を補助記憶部32に記録する(S24)。
【0105】
以上により、ステップS12(
図8参照)は終了する。
【0106】
(4−5)未判定内抜きパターンの有無判定(S14)
演算部28は、ステップS8で抽出した要素パターン72に一致判定(ステップS12)を行っていない内抜きパターンが存在するか否か判定する(S14)。
【0107】
一致判定を行っていない内抜きパターンが存在する場合には、演算部28はステップS12に戻る。一致判定を行っていない内抜きパターンが存在しない場合には、演算部28はステップS6に戻る。
【0108】
図10に示す例では内抜きパターン6は一つなので、演算部28はステップS6に戻る。
【0109】
(4−6)検出パターンの出力(S16)
演算部28は、ステップS6で設計パターンに未処理の要素パターンが存在しないと判定すると、ステップS24(
図13参照)で記録した内抜きパターン6のデータを出力する。
図17は、要素パターン108の内側に内抜きパターン109が複数存在する場合の出力の一例を示す図である。
【0110】
図17(a)には、ステップS8により抽出される要素パターン108の一例が示されている。
図17(a)の要素パターン108の内側には、複数の内抜きパターン109が存在している。
図17(b)には、ステップS16で出力される内抜きパターン6の一例が示されている。
【0111】
実施の形態1によれば、内抜きパターン6を外形パターン9(
図10(a)参照)から分離する。このため
図17(b)に示すように、内抜きパターンの形状だけに着目したパターンマッチングを行うことができる。したがって、内抜きパターンのマッチング(すなわち、パターン内スペースのマッチング)が容易になる。
【0112】
(実施の形態2)
実施の形態2は、実施の形態1に類似している。したがって、実施の形態1と共通する部分の説明は、省略または簡単にする。実施の形態2によれば、内包パターンの有無および位置を反映したマッチングを行うことができる。
【0113】
(1)内包パターン
図18は、内包パターン110の一例を説明する図である。内包パターン110とは、
図18に示すように、内抜きパターン6(すなわち、内周7)に囲われたパターン(内部が満たされたパターン)のことである。なお内包パターン110は、要素パターンの1種である。
【0114】
既存のパターンマッチング・プログラム(例えば、Calibre Pattern Matching)は、内包パターンに関する問題を有している。
図19は、内包パターンに関する問題を説明する図である。
【0115】
図19は、上から1番目のパターン112をリファレンスとするパターンマッチングの結果の一例を示している。1番目〜3番目のパターン112,114,116は、内包パターン110と内包パターン110を囲うパターン111とを有するパターンである。
【0116】
2番目のパターン114における内包パターン110の位置は、1番目のパターン112における内包パターン110の位置と異なっている。しかし既存のパターンマッチング・プログラムは、1番目のパターン112と2番目のパターン114は一致すると判定する。3番目のパターン116における内包パターン110についても、同様である。
【0117】
このように既存のパターンマッチング・プログラムには、内包パターン110の位置が異なっていても、リファレンス・パターン112とサンプル・パターン114,116は一致すると判定してしまう問題がある。
【0118】
(2)パターンマッチング装置
実施の形態2のパターンマッチング装置は、
図4を参照して説明した実施の形態1のパターンマッチング装置26と略同じである。ただし補助記憶部32には、実施の形態2に対応したパターンマッチング・プログラムが記録されている。補助記憶部32には更に、実施の形態2に対応したリファレンス・ライブラリが記録される。
【0119】
(3)リファレンス・ライブラリ
図20は、実施の形態2のリファレンス・ライブラリとリファレンス・パターンとの一例を説明する図である。
図20(a)に示すように、リファレンス・ライブラリ118は内抜きパターン表44と内包パターン表120と第1位置データ表122aとを有している。内抜きパターン表44は、実施の形態1で説明したものである。
【0120】
図21は、内包パターン表120および第1位置データ表122aの一例を説明する図である。
図21(a)に示すように内包パターン表120には、複数の異なる内包パターン110の外周に対応するデータ124(以下、内包Rデータと呼ぶ)が記録されている。内包パターン表120(
図21(a)参照)には更に、内包Rデータ124に対応する識別子128が記録されている。内包Rデータに対応するパターンを以下、内包Rパターンと呼ぶ。
【0121】
図20(b)には、内抜きRパターン50(第1リファレンス・パターン)の頂点Ab,Bb,Cb,Dbが示されている。
図20(b)には更に、内包Rパターン130(以下、第2リファレンス・パターンと呼ぶ)の頂点Aa,Ba,Ca,Daが示されている。内包Rパターン(以下、第2リファレンス・パターンと呼ぶ)は例えば、
図20(b)に示すように多角形の外周に対応するパターンである。
【0122】
図20(b)には更に、内包Rパターン130の各頂点を通って内包Rパターン130を一周する経路131が示されている。
【0123】
内包Rデータ124(
図21(a)参照)は、経路131が各頂点Aa,Ba,Ca,Daを通る順に頂点Aa,Ba,Ca,Dbの座標を配列した座標列である。内包Rデータ124の両端の括弧[]は、内包Rパターンのデータであることを示している。
【0124】
図21(b)に示すように、第1位置データ表122aには、内抜きRパターン50に対する内包Rパターン130の位置を表すデータ132(以下、第1位置情報と呼ぶ)が記録されている。第1データ表122には更に、第1位置情報132に対応する識別子134が記録されている。
【0125】
第1位置情報132は、内包Rパターン130(第2リファレンス・パターン)の内抜きRパターン50(第1リファレンス・パターン)に対する位置情報である。第1位置情報132は、例えば
図20(b)に示すように、内抜きRパターン50の基準点(例えば、頂点Ab)から内包Rパターンの基準点(例えば、頂点Aa)に至るベクトル136である。第1位置情報132(
図21(b)参照)の両端の括弧{}は、位置情報の座標であることを示している。
【0126】
内抜きRパターン50の基準点は例えば、x座標が最小の各頂点Ab,Bbのうちy座標が最小の頂点Abである。同様に内包Rパターン130の基準点は例えば、x座標が最小の各頂点Aa,Baのうちy座標が最小の頂点Aaである。後述する内包Rパターンや外形Rパターン等の基準点についても同様である。
【0127】
(4)パターンマッチング方法
実施の形態2のフローチャートは、実施の形態1のフローチャート(
図8参照)と略同じである。
図22は、実施の形態2のフローチャートの一例である。
図23は、実施の形態2を説明するパターン図である。
【0128】
図22で破線により囲われたステップは、実施の形態1のフローチャートにも存在するステップである。破線で囲われたステップで実行される処理は、ステップS112を除き、実施の形態1で行われる処理と略同じである。
【0129】
以下の説明では、実施の形態1と共通するステップの説明は省略または簡単にする。
【0130】
(4−1)リファレンス・データおよび設計データの取得工程(S2〜S4)
まずユーザが、リファレンスIDを入力部34に入力する(S2)。
【0131】
ユーザが入力するリファレンスIDは例えば、内抜きRデータ46の識別子48(例えば、「a-2」;
図6参照)と、内包Rパターンの識別子128(例えば、「b-1」;
図21(a)参照)と、第1位置情報の識別子134(例えば、「c-1」;
図21(b)参照)である。
【0132】
ステップS2で入力される識別子128に対応する内包Rパターン(第2リファレンス・パターン)は、同じくステップS2で入力される識別子48に対応する内抜きRパターン(第1リファレンス・パターン)に囲われるパターンである。
【0133】
リファレンスIDが入力されると演算部28は、入力された識別子48,128,134それぞれに対応するリファレンス・データを補助記憶部32から読み出して、主記憶部30に記録する(S4)。
【0134】
演算部28は更に、例えば集積回路の設計データ(すなわち、設計パターン)を補助記憶部32から読み出し、主記憶部30に記録する(S4)。
【0135】
(4−2)リファレンス・データの組みわせ(S102)
演算部28は、ステップS2で入力されたリファレンス・データを組み合わせる。例えば演算部28は、内抜きRデータ(-100 -100, -100 100, 100 100, 100 -100)と、内包Rデータ[-60 -60, -60 60, 60 60, 60 -60]と、第1位置情報{40 40}との組み合わせ(以下、第1組合せRデータと呼ぶ)を生成する。第1組合せRデータは例えば、(-100 -100, -100 100, 100 100, 100 -100), [-60 -60, -60 60, 60 60, 60 -60], {40 40}である。
【0136】
(4−3)未処理要素パターンの抽出(S6〜S8)
演算部28は、後段の処理(S10〜S12)が済んでいない要素パターンが設計パターンに存在するか否かを判定する(S6)。
【0137】
未処理の要素パターンが存在する場合、演算部28は設計データから未処理の要素パターンを抽出する(S8)。未処理の要素パターンが存在しない場合、演算部28はステップS16に進む。
【0138】
以下の説明では特に断らない限り、
図23(a)に示すように、内抜きパターン6に囲われた内包パターン110が設計パターンに存在する場合するものとする。さらにステップS4で読み込むリファレンス・パターンには、
図23(b)に示すように、内抜きRパターン50に囲われた内包Rパターン130が存在するものとする。
【0139】
(4−4)内抜きパターンの有無判定(S10)
演算部28は、ステップS8で抽出した要素パターン72(第1サンプル・パターン)の内側に内抜きパターン6が存在するか否かを判定する(S10)。抽出した要素パターン72の内側に内抜きパターン6が存在する場合、演算部28はステップS112に進む。抽出した要素パターン72の内側に内抜きパターン6が存在しない場合、演算部28はステップS6に戻る。
【0140】
(4−5)一致判定(S112)
図24及び25は、実施の形態2の一致判定工程(S112)のフローチャートの一例である。
図24及び25は、実施の形態1のフローチャート(
図13参照)に類似している。
図24及び25で破線により囲われたステップは、実施の形態1のフローチャート(
図13参照)にも存在するステップである。破線で囲われたステップで実行される処理は、実施の形態1で行われる処理と略同じである。
【0141】
(4−5−1)内抜きパターンの抽出(S20)
演算部28は、ステップS8(
図22参照)で抽出された要素パターン72(第1サンプル・パターン)から内抜きパターン6を抽出する。
【0142】
(4−5−2)判定(S22)
演算部28は、第1組合せRデータを参照して、ステップS4で読み込んだ内抜きRパターン50(
図23(b)参照)と、ステップS20で抽出した内抜きパターン6(
図23(a)参照)とが一致するか判定する。
【0143】
内抜きパターン6と内抜きRパターン50が一致すると判定した場合、演算部28はステップS202に進む。内抜きパターン6と内抜きRパターン50が一致しないと判定した場合、演算部28は一致判定S112を終了しステップS14(
図22参照)に進む。
【0144】
(4−5−3)内包パターンの有無判定(S202)
演算部28は、内抜きパターン6(すなわち、第1サンプル・パターン72の第1内周80a)に囲われた内包パターン110(以下、第2サンプル・パターンと呼ぶ)が設計パターンに存在するか判定する(S202)。内包パターン110が存在する場合、演算部28はステップS204に進む。内包パターン110が存在しない場合、演算部28はステップS206に進む。
【0145】
具体的には演算部28は例えば、設計パターン内で、内抜きパターン6の内側に要素パターンを探索する。探索の結果、内抜きパターン6の内側に要素パターンが検出された場合、演算部28は内包パターンが存在すると判定する。内抜きパターン6の内側に位置する要素パターンが検出されなかった場合、演算部28は内包パターンが存在しないと判定する。
【0146】
(4−5−4)内包Rデータの有無判定(S204)
演算部28は、第1組合せRデータデータを参照して、ステップS102で生成した第1組合せRデータに内包Rデータ124が存在するか判定する(S204)。内包Rデータ124が存在する場合、演算部28はステップ208に進む。内包Rデータ124が存在しない場合、演算部28は一致判定S112を終了し、ステップS14(
図22参照)に進む。
【0147】
(4−5−5)内包パターンの抽出(S208)
演算部28は、内抜きパターン6の内側に存在する内包パターン110(第2サンプル・パターン)を設計データから抽出する。
【0148】
(4−5−6)内包パターンの一致判定(S210)
演算部28は、ステップS208で抽出した内包パターン110(第2サンプル・パターン)の第2外周78bと、ステップS4で読み出した内包Rパターン130(第2リファレンス・パターン)が一致するか判定する(S210)。
【0149】
内包パターン110の第2外周78bと内包Rパターン130が一致する場合、演算部28はステップS212に進む。内包パターン110の第2外周78bと内包Rパターン130が一致しない場合、演算部28は一致判定S112を終了し、ステップS14に進む(
図22参照)。
【0150】
(4−5−7)内包パターン位置の算出(S212)
演算部28は、(内包パターン110の)第2外周78bの内抜きパターン6に対する位置(以下、第1位置と呼ぶ)を算出する。
【0151】
具体的には、演算部28は例えば、内抜きパターン6の基準点から内包パターンの基準点に至るベクトル138を算出する。
【0152】
内抜きパターン6の基準点は例えば、内抜きパターン6に頂点のうちx座標が最小で更にy座標が最小の頂点である。内包パターン110の基準点は例えば、内包パターン110の頂点のうちx座標が最小で更にy座標が最小の頂点である。後述する外形パターン等の基準点についても同様である。
【0153】
(4−5−8)内包パターン位置の判定(S214)
演算部28は、第1組合せRデータ内の第1位置情報132(例えば、ベクトル136)と内包パターン110の第1位置(例えば、ベクトル138)が一致するか判定する(S214)。第1組合せRデータ内の第1位置情報132と内包パターン110の第1位置が一致する場合、演算部28はステップS216に進む。第1位置情報132と内包パターン110の第1位置が一致しない場合、演算部28は一致判定S112を終了し、ステップS14に進む。
【0154】
(4−5−9)記録(S216)
演算部28は、ステップS20で抽出した内抜きパターン6のデータとステップS208で抽出した内包パターン110のデータを補助記憶部32に記録する(S216)。その後、演算部28はステップS14(
図22参照)に進む。
【0155】
(4−5−10)内包Rデータの第2有無判定(S206)
演算部28は、ステップS202で内包パターン110が存在しないと判定した場合、第1組合せRデータ内に内包Rデータ124が存在するか判定する(S206)。
【0156】
第1組合せRデータ内に内包Rデータ124が存在する場合、演算部28は一致判定S112を終了し、ステップS14に進む。内包Rデータ124が存在しない場合、演算部28はステップS216に進み、内抜きパターン6のデータを記録する。
【0157】
以上により、一致判定(S112)の説明は終了する。
【0158】
(4−6)未判定内抜きパターンの有無判定(S14)
演算部28は、ステップS8で抽出した要素パターン72に一致判定(ステップS112)を行っていない内抜きパターンが存在するか否か判定する(
図22参照)。
【0159】
一致判定を行っていない内抜きパターンが存在する場合には、演算部28はステップS112に戻る。一致判定を行っていない内抜きパターンが存在しない場合、演算部28はステップS6に進む。
【0160】
(4−7)検出パターンの出力(S16)
演算部28は、ステップS216で記録したデータを出力する。
【0161】
上述したように演算部28は、内包Rパターン130の位置ベクトル136(すなわち、第1位置情報)と内包パターン110の位置ベクトル138(すなわち、第1位置)とを比較する(
図23参照)。したがって、実施の形態2によれば内包パターンの位置を反映したマッチングを行うことができる。
【0162】
以上の例ではステップS2で、内抜きRデータ46の識別子48と内包Rデータ124の識別子128と第1位置情報132の識別子134とが入力される。しかし、内包Rデータ124の識別子128と第1位置情報132の識別子134は入力されなくてもよい。その場合には、実施の形態1と同様、内抜きパターンのパターンマッチングだけが行われる。
【0163】
(実施の形態3)
実施の形態3は、実施の形態1に類似している。したがって、実施の形態1と共通する部分の説明は、省略または簡単にする。実施の形態3によれば、外形パターンの形状および位置を反映したパターンマッチングを行うことができる。
【0164】
(1)パターンマッチング装置
実施の形態3のパターンマッチング装置は、
図4を参照して説明した実施の形態1のパターンマッチング装置26と略同じである。ただし補助記憶部32には、実施の形態3に対応したパターンマッチング・プログラムが記録されている。補助記憶部32には更に、実施の形態3に対応したリファレンス・ライブラリが記録される。
【0165】
(2)外形パターン
外形パターン9(
図10(a)参照)は、要素パターン72(すなわち、第1サンプル・パターン)を一周する経路76(
図10(c)参照)から重複区間(例えば、区間e⇔d)を削除して得られるパターンのうち外側のパターンである。
【0166】
(3)リファレンス・ライブラリ
図26は、実施の形態3のリファレンス・ライブラリ140とリファレンス・パターンとの一例を説明する図である。
図26(a)に示すように、リファレンス・ライブラリ140には、内抜きパターン表44と外形パターン表142と第2位置データ表122bが登録されている。内抜きパターン表44は、実施の形態1で説明したものである。
【0167】
図27は、外形パターン表142および第2位置データ表122bの一例を説明する図である。
図27(a)に示すように外形パターン表142には、複数の異なる外形パターン9(
図10(a)参照)に対応するデータ148(以下、外形Rデータと呼ぶ)が記録されている。外形パターン表142には更に、外形Rデータ148に対応する識別子150が記録されている。
【0168】
図26(b)には、内抜きRパターン50の頂点Ab,Bb,Cb,Dbが示されている。
図26(b)には更に、外形Rパターン152の頂点Ad,Bd,Cd,Ddが示されている。
図26(b)には更に、外形Rパターン152の各頂点を通って外形Rパターン152を一周する経路154が示されている。
【0169】
外形Rデータ148は、経路154が各頂点Ad,Bd,Cd,Ddを通る順に頂点Ad,Bd,Cd,Ddの座標を配列した座標列である。外形Rデータ148の両端の括弧[]は、外形Rパターンのデータであることを示している。
【0170】
図27(b)に示すように、第2位置データ表122bには、外形Rパターン152(第3リファレンス・パターン)の内抜きRパターン50(第1リファレンス・パターン)に対する位置を示すデータ156(以下、第2位置情報と呼ぶ)が記録されている。第2位置データ表122b(
図27(b)参照)には更に、第2位置情報156に対応する識別子158が記録されている。
【0171】
第2位置データ表122bは例えば、内抜きRパターン50の基準点(例えば、頂点Ab)から外形Rパターンの基準点(例えば、頂点Ad)に至るベクトル160の座標である(
図26(b)参照)。第2位置情報156(
図27(b)参照)の両端の括弧{}は、位置情報であることを示している。
【0172】
(4)パターンマッチング方法
実施の形態3のフローチャートは、実施の形態2のフローチャート(
図22参照)と略同じである。以下の説明では、実施の形態2と共通するステップの説明は省略または簡単にする。また以下の説明は、
図22に基づいて行われる。
【0173】
(4−1)リファレンス・データおよび設計データの取得工程(S2〜S4)
まずユーザが、リファレンスIDを入力部34に入力する(S2;
図22参照)。
【0174】
ユーザが入力するリファレンスIDは例えば、内抜きRデータ46の識別子48(例えば、「a-2」;
図6参照)と、外形Rデータの識別子150(例えば、「d-1」)と、第2位置情報の識別子158(例えば、「e-2」;
図27(b)参照)である。
【0175】
識別子150に対応する外形Rパターン152(第3リファレンス・パターンと呼ぶ)は、識別子48に対応する内抜きRパターン50(第1リファレンス・パターン)を囲むパターンである。
【0176】
リファレンスIDが入力されると演算部28は、入力された識別子48,150,158それぞれに対応するリファレンス・データ46,148,156を補助記憶部32から読み出し、主記憶部30に記録する(S4)。
【0177】
演算部28は更に、例えば集積回路の設計データ(すなわち、設計パターン)を補助記憶部32から読み出し、主記憶部30に記録する(S4)。
【0178】
(4−2)リファレンス・データの組みわせ(S102)
演算部28は、ステップS2で入力されたリファレンス・データを組み合わせる。例えば演算部28は、内抜きRデータ(-100 -100, -100 100, 100 100, 100 -100)と、外形Rデータ[-150 -150, -150 150, 150 150, 150 -150]と、第2位置情報{-50 -50}との組み合わせ(以下、第2組合せRデータと呼ぶ)を生成する。第2組合せRデータは例えば、[-150 -150, -150 150, 150 150, 150 -150], (-100 -100, -100 100, 100 100, 100 -100), {-50 50}である。
【0179】
(4−3)未処理要素パターンの有無判定〜内抜きパターンの有無判定(S6〜S10)
演算部28は、設計パターンから要素パターンを抽出し、抽出した要素パターンの内側に内抜きパターンが存在するか判定する。内抜きパターン6が存在する場合、演算部28はステップS512に進む。内抜きパターン6が存在しない場合、演算部28はステップS6に戻る。
【0180】
(4−4)一致判定(S512)
図28及び29は、実施の形態3の一致判定工程(S512;
図22参照)のフローチャートの一例である。
図28及び29は、実施の形態1のフローチャート(
図13参照)に類似している。
【0181】
図28及び29で破線により囲われたステップは、実施の形態1のフローチャート(
図13参照)にも存在するステップである。破線で囲われたステップの処理は、実施の形態1で行われる処理と略同じである。
【0182】
(4−4−1)内抜きパターンおよび外形パターンの生成(S302)
演算部28は、ステップ8で抽出した要素パターン72(第1サンプル・パターン)から内抜きパターン6(
図10(a)参照)と外形パターン9を生成する。具体的には演算部28は、経路76から重複区間(e⇔d)を削除して、内抜きパターン6と外形パターン9を生成する。
【0183】
(4−4−2)判定(S22)
演算部28は、ステップS302で生成した内抜きパターン6と、ステップS4で読み出した内抜きRパターン50(
図26(b)参照)とが一致するか判定する。
【0184】
内抜きパターン6と内抜きRパターン50が一致すると判定した場合、演算部28はステップS304に進む。内抜きパターン6と内抜きRパターン50が一致しないと判定した場合、演算部28は一致判定S512を終了し、ステップS14(
図22参照)に進む。
【0185】
(4−4−3)外形Rデータの有無判定(S304)
演算部28は、ステップS102で生成した第2組合せRデータに外形Rデータ148が存在するか判定する(S304)。外形Rデータ148が存在する場合、演算部28はステップS306に進む。外形Rデータ148が存在しない場合、演算部28はステップS312に進む。
【0186】
(4−4−4)外形パターンの一致判定(S306)
演算部28は、ステップS302で生成した外形パターン9と、ステップS4で読み出した外形Rパターン152(第3リファレンス・パターン)が一致するか判定する。
【0187】
外形パターン9と外形Rパターン152が一致する場合、演算部28はステップS308に進む。外形パターン9と外形Rパターン152が一致しない場合、演算部28は一致判定S512(
図22参照)を終了し、ステップS14に進む。
【0188】
(4−4−5)外形パターン位置の算出(S308)
演算部28は、外形パターン9の内抜きパターン6に対する位置(以下、第2位置と呼ぶ)を算出する。具体的には演算部28は例えば、
図10(c)に示すように、内抜きパターン6の基準点(例えば、頂点h)から外形パターン9の基準点(例えば、頂点a)に至るベクトル161を算出する。
【0189】
(4−4−6)外形パターン位置の判定(S310)
演算部28は、第2組合せRデータ内の第2位置情報156(例えば、ベクトル160)とステップS308で算出した外形パターン9の第2位置(例えば、ベクトル161)が一致するか判定する(S310)。
【0190】
第2組合せRデータ内の第2位置情報156と外形パターン9の第2位置が一致する場合、演算部28はステップS312に進む。第2組合せRデータ内の第2位置情報156と外形パターン9の第2位置が一致しない場合、演算部28は一致判定S512を終了し、ステップS14に進む。
【0191】
(4−4−7)記録(S312)
演算部28は、ステップS302で抽出した内抜きパターン6および外形パターン9のデータを補助記憶部32に記録する。
【0192】
以上により、一致判定S512は終了する。
【0193】
(4−5)未判定内抜きパターンの有無判定(S14)
演算部28は、
図22に示すように、ステップS8で抽出した要素パターン72に一致判定S512を行っていない内抜きパターンが存在するか否か判定する(S14)。
【0194】
一致判定を行っていない内抜きパターン6が存在する場合、演算部28はステップS512に戻る。一致判定を行っていない内抜きパターン6が存在しない場合、演算部28はステップS6に進む。
【0195】
(4−6)検出パターンの出力(S16)
演算部28は、ステップS312で記録したデータを出力する。
【0196】
上述したように演算部28は、外形パターン9を外形Rパターン152(第3リファレンス・パターン)と比較する。演算部28は更に、外形パターン9の第2位置と外形Rパターン152の第2位置情報とを比較する。したがって実施の形態3によれば、外形パターン9の形状および位置を反映した内抜きパターンのマッチングを行うことができる。
【0197】
なお、実施の形態2と実施の形態3とを組み合わせて、外形パターン9および内包パターン110の存在を反映したパターンマッチングを行ってもよい。
【0198】
(実施の形態4)
実施の形態4は、実施の形態1及び2に類似している。したがって、実施の形態1又は2と共通する部分の説明は、省略または簡単にする。実施の形態4によれば、内包パターンの内側に内抜きパターン(以下、第2内抜きパターンと呼ぶ)が存在する場合にも、パターン・マッチングを行うことができる。
【0199】
(1)パターンマッチング装置
実施の形態4のパターンマッチング装置は、
図4を参照して説明した実施の形態1のパターンマッチング装置26と略同じである。ただし補助記憶部32には、実施の形態4に対応したパターンマッチング・プログラムが記録されている。さらに補助記憶部32には、実施の形態4に対応したリファレンス・ライブラリが記録される。
【0200】
(2)リファレンス・ライブラリ
図30は、実施の形態4のリファレンス・ライブラリ164とリファレンス・パターンとの一例を説明する図である。
図30(a)に示すように、リファレンス・ライブラリ164には、第1内抜きパターン表44aと内包パターン表120と第1位置データ表122aと第2内抜きパターン表44bと第3位置データ表122cとが登録されている。
【0201】
第1内抜きパターン表44aは、実施の形態1で説明した内抜きパターン表44と同じものである。第1内抜きパターン表44aに記録されている内抜きRデータ46を以下、第1内抜きRデータと呼ぶ。第1内抜きRデータに対応する内抜きパターンを以下、第1内抜きパターンと呼ぶ。
【0202】
第1内抜きRパターンおよび第1内抜きRデータは、それぞれ実施の形態1の内抜きRパターン50および内抜きRデータ46と同じものである。内包パターン表120および第1位置データ表122aは、実施の形態2で説明したものである。
【0203】
第2内抜きパターン表44bは、第1内抜きパターン表44aと同じ構造を有している。ただし第2内抜きパターン表44bには、内包Rパターン130(
図30(b)参照)の内側に存在する内抜きRパターン170のデータが登録されている。内包Rパターン130の内側に存在する内抜きRパターンを以下、第2内抜きRパターンと呼ぶ。第2内抜きRパターン170のデータを以下、第2内抜きRデータと呼ぶ。
【0204】
図30(b)には、第2内抜きRパターン170とその頂点Ac,Bc,Cc,Dcが示されている。
図30(b)には更に、第2内抜きRパターン170を一周する経路172が示されている。第2内抜きRデータは、経路172が各頂点Ac,Bc,Cc,Dcを通る順に各頂点Ac,Bc,Cc,Dcの座標を配列した座標列である。
【0205】
第3位置データ表122cは、第1位置データ表122aと同じ構造を有している。第3位置データ表122cには、内抜きRパターン50に対する第2内抜きRパターン170の位置を示すデータ(以下、第3位置情報と呼ぶ)が登録されている。
【0206】
第3位置情報は例えば、第1内抜きRパターン50の基準点(例えば、頂点Ab)から第2内抜きRパターン170の基準点(例えば、頂点Ac)に至るベクトル174の座標である。
【0207】
(3)パターンマッチング方法
実施の形態4のフローチャートは、実施の形態2のフローチャート(
図22参照)と略同じである。以下の説明では、実施の形態2と共通するステップの説明は省略または簡単にする。また以下の説明は、
図22に基づいて行われる。
図31は、実施の形態4のパターンマッチング方法を説明する図である。
【0208】
(3−1)リファレンス・データおよび設計データの取得工程(S2〜S4)
先ずユーザが、リファレンスIDを入力部34に入力する(S2;
図22参照)。
【0209】
ユーザが入力するリファレンスIDには例えば、第1内抜きRデータ、内包Rデータ、および第2内抜きRデータ、第1位置情報、および第2位置情報それぞれの識別の識別子である。
【0210】
リファレンスIDが入力されると演算部28は、入力された識別子それぞれに対応するリファレンス・データを補助記憶部32から読み出して、主記憶部30に記録する(S4)。演算部28は更に、例えば集積回路の設計データを補助記憶部32から読み出して、主記憶部30に記録する(S4)。
【0211】
以下の説明では特に断らない限り、
図31(a)に示すように、要素パターン72の内側に、第1内抜きパターン6aと内包パターン176と第2内抜きパターン6bが存在する場合について説明する。
【0212】
さらに特に断らない限りステップS4では、
図31(b)に示すように、第1内抜きRパターン50aと、第1内抜きRパターン50aの内側に位置する内包Rパターン130と、内包Rパターン130の内側に位置する第2内抜きRパターン50bとが読み込まれるものとする。
【0213】
(3−2)リファレンス・データの組みわせ(S102)
演算部28は、ステップS2で入力されたリファレンス・データを組み合わせて、第3組合せRデータを生成する。第3組合せRデータは、第1内抜きRデータ、内包Rデータ、第2内抜きRデータ、第1位置情報、および第2位置情報がこの順番に配列されたデータ列である。
【0214】
(3−3)未処理要素パターンの有無判定〜内抜きパターンの有無判定(S6〜S10)
演算部28は、設計パターンから要素パターン72を抽出し、抽出した要素パターン72の内側に未処理の第1内抜きパターン6aが存在するか判定する。第1内抜きパターン6aが存在する場合、演算部28はステップS612に進む。未処理の第1内抜きパターン6aが存在しない場合、演算部28はステップS6に戻る。
【0215】
(3−4)一致判定(S612)
図32及び33は、実施の形態4の一致判定工程(S612;
図22参照)のフローチャートの一例である。
図32及び33は、実施の形態2のフローチャート(
図24及び25参照)に類似している。
【0216】
図32及び33で破線により囲われたステップは、実施の形態2のフローチャートにも存在する。破線で囲われたステップで実行される処理は、実施の形態2で行われる処理と略同じである。
【0217】
(3−5−1)第1内抜きパターンの抽出(S20)
演算部28は、ステップS8で抽出した要素パターン72から第1内抜きパターン6a(
図31(a)参照)を抽出する。
【0218】
(3−5−2)第1内抜きパターンの一致判定(S22)
演算部28は、第3組合せRデータを参照して、ステップS20で抽出した第1内抜きパターン6aと、ステップ4で読み込んだ第1内抜きRパターン50aとが一致するか判定する(S22)。
【0219】
第1内抜きパターン6aと第1内抜きRパターン50aが一致すると判定した場合、演算部28はステップS202に進む。第1内抜きパターン6aと第1内抜きRパターン50aが一致しないと判定した場合、演算部28は一致判定S612を終了し、ステップS14(
図22参照)に進む。
【0220】
(3−5−3)内包パターンの有無判定(S202)
演算部28は、ステップS4で読み込んだ設計パターンに内包パターン176が存在するか判定する(S202)。
【0221】
内包パターン176が存在する場合、演算部28はステップS402に進む。内包パターン176が存在しない場合、演算部28は後述するステップS404に進む。
【0222】
(3−5−4)内包Rデータの有無判定(S402)
演算部28は、ステップS102で生成した第3組合せRデータに内包Rデータが存在するか判定する(S402)。
【0223】
内包Rデータが存在する場合、演算部28はステップ208に進む。内包Rデータが存在しない場合、演算部28は一致判定S612を終了し、ステップS14に進む。
【0224】
(3−5−5)内包パターンの抽出(S208)
演算部28は、内包パターン176を設計データから抽出する(S208)。
【0225】
(3−5−6)内包パターンの一致判定(S210)
演算部28は、第3組合せRデータを参照して、ステップS4で読み出した内包Rパターン130とステップS208で抽出した内包パターン176の外周とが一致するか判定する。
【0226】
両者が一致する場合、演算部28はステップS406に進む。両者が一致しない場合、演算部28は一致判定S612を終了し、ステップS14に進む(
図22参照)。
【0227】
(3−5−7)第2内抜きパターンの有無判定(S406)
演算部28は、ステップS208で抽出した内包パターン176の内側に第2内抜きパターン6bが存在するか判定する(S406)。
【0228】
第2内抜きパターン6bが存在する場合、演算部28はステップS408に進む。第2内抜きパターン6bが存在しない場合、演算部28はステップS410に進む。
【0229】
(3−5−8)第2内抜きRデータの有無判定(S408)
演算部28は、第3組合せRデータを参照して、第2内抜きRデータが存在するか判定する(S408)。
【0230】
第2内抜きRデータが存在する場合、演算部28はステップS20に戻る。第2内抜きRデータが存在しない場合、演算部28は一致判定S612を終了する。
図31(b)に示す例では、第2内抜きRパターン50bが存在するので、演算部28はステップS20に戻る。演算部28はステップS20に戻ると、第2内抜きパターン6bを抽出する。
【0231】
次に演算部28は、第2内抜きRパターン50bと第2内抜きパターン6bが一致するか判定する(S22)。両者が一致する場合、演算部28はステップS202に進む。
【0232】
演算部28はステップS202に進むと、第2内抜きパターン6b内に内包パターンが存在するか判断する。
図31(a)に示す例では、第2内抜きパターン6b内に内包パターンは存在しない。したがって演算部28は、ステップS404に進む。
【0233】
次に演算部28は、第3組合せRデータを参照して、第2内抜きRパターン50b内に内包Rパターンが存在するか判定する(S404)。
図31(b)に示す例では、第2内抜きRパターン50b内に内包Rパターンは存在しない。したがって演算部28は、(端子C2を介して)ステップS412に進む。
【0234】
なお
図32のフローチャートでは、ステップS404の後に第1内抜きRパターン50a内に内包Rパターン130が存在するか判定するステップが省略されている。第1内抜きRパターン50a内に内包Rパターン130が存在しない場合、後述するように演算部28はステップS216に進む。
【0235】
(3−5−9)内包パターン位置/第2内抜きパターン位置の算出(S412)
演算部28は、第1内抜きパターン6aに対する内包パターン176の第1位置を算出する。第2内抜きパターン6bが存在する場合には、演算部28は更に、第1内抜きパターン6aに対する第2内抜きパターン6bの第3位置を算出する。
【0236】
(3−5−10)内包パターン/第2内抜きパターンの位置の判定(S414)
演算部28は、内包Rパターン130の第1位置情報と内包パターン176の第1位置が一致するか判定する。第2内抜きパターン6bが存在する場合には、演算部28は更に、第2内抜きRパターン50bの第3位置情報と第2内抜きパターン6bの第3位置が一致するか判定する。
【0237】
これらのデータが一致すると判定する場合、演算部28は、ステップS216に進む。一致しないと判定した場合には、演算部28は一致判定(S612)を終了し、ステップS14に進む(
図8参照)。
【0238】
(3−5−11)記録(S216)
演算部28は、ステップS20で抽出した内抜きパターン(例えば、第1及び第2内抜きパターン6a,6b)のデータと、ステップS208で抽出した内包パターン176のデータとを補助記憶部32に記録する(S216)。
【0239】
以上により、一致判定S612は終了する。
【0240】
(3−6)未判定内抜きパターンの有無判定(S14)
一致判定S612が終了すると演算部28は、ステップS8で抽出した要素パターン72内に一致判定(ステップS612)を行っていない第1内抜きパターン6aが存在するか否か判定する(
図22参照)。
【0241】
一致判定を行っていない第1内抜きパターン6aが存在する場合には、演算部28はステップS612に戻る(
図22参照)。未判定の内抜きパターンが存在しない場合、演算部28はステップS6に戻る。
【0242】
演算部28はステップS6に戻ると、未処理の要素データが存在しないか判定する。未処理の要素データが存在しない場合、演算部28はステップS16に進む。
【0243】
(3−7)検出パターンの出力(S16)
演算部28は、ステップS216で記録したデータを出力して、プログラムを終了する。
【0244】
次に、
図10(a)に示すうに、第1内抜きパターン6a(
図31(a)参照)の内側に内包パターン176が存在しない場合について説明する。今、ステップS2(
図22参照)では、第1内抜きRデータの識別子だけが入力されるとする。
【0245】
この場合、第1内抜きパターン6aと第1内抜きRパターン50aが一致すると(S22)、演算部28はステップS202(
図32参照)を介してステップS404に進む。すると演算部28は、第3組合せRデータに内包Rデータが存在しないので(端子C1を介して)ステップ216に進み、第1内抜きパターン6aのデータを記録する。
【0246】
次に、
図23(a)に示すように、第2内抜きパターン6b(
図31(a)参照)が存在しない場合について説明する。今、ステップS2(
図22参照)では、第1内抜きRデータの識別子と、内包Rデータの識別子と、第1位置情報とが入力されるとする。
【0247】
この場合、第1内抜きパターン6aと第1内抜きRパターン50aが一致し更に内包パターン176の外周と内包Rパターン130とが一致すると演算部28は、ステップS20〜S406(
図32〜33)を介してステップS410に進む。すると第2内抜きRデータが存在しないので、演算部28はステップS412を介して、ステップ414に進すむ。ステップ414に進すむと、演算部28は内包パターン176の第1位置と内包Rパターン130の第1位置情報を比較する。両者が一致する場合には、演算部は第1内抜きパターン6aと内包パターン176のデータを記録する(S216)。両者が一致しない場合、演算部28は一致判定S612を終了する。
【0248】
以上のように実施の形態4によれば、内包パターン176の内側に第2内抜きパターン6bが存在する場合にも、第2内抜きパターン6bの存在を反映したパターンマッチングを行うことができる。
【0249】
(実施の形態5)
実施の形態5は、実施の形態2のパターンマッチング方法を利用したパターン設計方法である。したがって、実施の形態2と共通する部分の説明は、省略または簡単にする。実施の形態5によれば、ホットスポットが発生し難いパターンを設計することができる。
【0250】
(1)パターンマッチング装置
実施の形態5のマッチング装置は、
図4を参照して説明した実施の形態1のパターン・マッチング装置26と略同じである。ただし補助記憶部32には、実施の形態2のパターンマッチング・プログラム等に加え、実施の形態5のパターン設計方法を実行するプログラムが記録されている。
【0251】
(2)リファレンス・ライブラリ
実施の形態5のリファレンス・ライブラリの構成は、実施の形態2のリファレンス・ライブラリ118(
図20参照)と同じである。
図34は、実施の形態5のリファレンス・ライブラリ118に登録されるデータの一例を説明する図である。
【0252】
図34(a)には、集積回路(以下、第2集積回路と呼ぶ)の設計パターン(以下、第2設計パターンと呼ぶ)に含まれ、ホットスポットに対応する領域184(以下、ホットスポット領域と呼ぶ)を内周80b(以下、第2内周と呼ぶ)が囲う要素パターン182が示されている。
図34には更に、上記ホットスポットを発生させる内包パターン188が示されている。
【0253】
ホットスポットとは、リソグラフィプロセスマージンが不足し、転写パターン(すなわち、レジストパターン)の不良が予測される箇所である。
図34に示すホットスポット領域184は、転写パターン同士が接近して間隔が狭くなるブリッジング(すなわち、ショート)が起き易いホットスポットに対応している。
【0254】
図34(b)には、内抜きRパターン186と内包Rパターン210が示されている。リファレンス・ライブラリ118(
図20参照)の内抜きパターン表44には、第2内周80bに対応する内抜きRパターン186(以下、第1リファレンス・パターンと呼ぶ)のデータが、内抜きRデータ46(
図6参照)として登録されている。
【0255】
さらに内包パターン表120には、ホットスポットを発生させる内包パターン188に対応する内包Rパターン210(以下、第2リファレンス・パターンと呼ぶ)のデータが、内包Rデータ124(
図21参照)として登録されている。さらに第1位置情報表122aには、内抜きRパターン186(第1リファレンス・パターン)の基準点から内包Rパターン210(第2リファレンス・パターン)の基準点に至るベクトル212の座標が第1位置情報132として登録されている。
【0256】
(3)設計方法
図35は、実施の形態5のパターン設計方法のフローチャートの一例である。
図36は、実施の形態5のパターン設計方法を説明する図である。
【0257】
(3−1)ホットスポットを発生させるパターンの検出(S702)
図35に示すように演算部28は先ず、設計パターンから抽出した要素パターン194(
図36参照)の内抜きパターン190内にホットスポットを発生させるパターンが存在するか判定する(S702)。内抜きパターン190内にホットスポットを発生させるパターンが存在する場合、演算部28はホットスポットを発生させるパターンを修正する(S704)。内抜きパターン190内にホットスポットを発生させるパターンが存在しない場合には、演算部28は処理を終了する。
【0258】
具体的には、演算部28は先ず、実施の形態2のパターンマッチング・プログラムを呼び出して起動する。
【0259】
実施の形態2のパターンマッチング・プログラムが起動されると先ず、
図22のフローチャートに示すように、ユーザがリファレンスIDを入力する(S2)。ユーザはこの時、
図34(b)を参照して説明した内抜きRパターン186、内包Rパターン210、およびベクトル212(第1位置情報)の識別子を入力する。
【0260】
すると演算部28は、集積回路(以下、第1集積回路回路と呼ぶ)の設計パターンから要素パターン194(
図36(a)参照)を抽出する(S6〜S10)。
【0261】
演算部28は更に、
図24のフローチャートに示すように、抽出した要素パターン194(第1サンプル・パターン)の内抜きパターン190(
図36(a)参照)と内抜きRパターン186(
図34(b)参照)とが一致するか判定する(S20〜S22)。両者が一致する場合、演算部28はステップ202に進む。両者が一致しない場合、演算部28は一致判定S112(
図22参照)を終了する。
【0262】
演算部28は内抜きパターン190と内抜きRパターン186が一致する場合、内抜きパターン190(
図36(a)参照)の内側に内包Rパターン210(
図34(b)参照)に対応する内包パターン192が存在するか判定する(S202〜S210)。
【0263】
内包Rパターン210に対応する内包パターン192(ホットスポット領域184を発生させるパターン)が存在する場合、演算部28は内包パターン192の位置(第1位置)と内包Rパターン210の第1位置情報が一致するか判定する(S212〜S214)。双方が一致する場合、演算部28は、内抜きパターン190および内包パターン192のデータを記録する(S216)。双方が一致しない場合、一致判定S112を終了する。
【0264】
演算部28は、以上の処理を第1集積回路に含まれる各要素パターンに対して実行する(S14)。その後演算部28は、実施の形態2のパターンマッチング・プログラムを終了する。
【0265】
ステップS20〜S214により検出される内包パターン192(以下、第1パターンと呼ぶ)は、ホットスポットを発生させるパターンである。第1パターン198aが検出された場合、演算部28はステップS704に進む。
【0266】
(3−2)パターン修正(S704)
演算部28は、ホットスポットを発生させる第1パターン198aを第1パターン198aよりホットスポットを発生させる確率が低い第2パターン198bに変更する。具体的には、演算部28は、設計パターン内の第1パターンを補助記憶装置32に予め記録されていた第2パターンに置き換える。
【0267】
図36(b)には、修正後のパターンの一例が示されている。
図36(b)に示しように、第1パターン198a(
図36(a)参照)は例えば、第1パターン198aより短い第2パターン192bに置き換えられる。このため、内抜きパターン190と第2パターン198bの間隔が拡がり、ホットスポットが発生し難くなる。
【0268】
ところで、
図34のホットスポット領域184は、ブリッジングが起きるホットスポットに対応している。ホットスポットとしては、転写パターンが細くなるネッキングや、ビアパターンと配線パターンのカバレッジが不足するビアカバレッジ不良などもある。
【0269】
図37は、内抜きパターン190の内側にホットスポット領域184を形成する第1パターン198aの別の例を説明する図である。
図37に示す例では、内抜きパターン190の内側に複数の第1パターン198aが存在する。
図37に示す例では、第1パターン198a間にホットスポット領域184が発生する。尚、
図36及び
図37に示すパターンは、フューズパターンと呼ばれる。
【0270】
実施の形態5によれば、ホットスポットを発生させる第1パターン198aを、ホットスポットを発生させる確率が第1パターン198aより低い第2パターン198bに変換する。したがって、内抜きパターン内にホットスポット領域が発生し難いパターンを設計することができる。
【0271】
尚、以上の例では、内包パターン192を修正しているが、内抜きパターン190を修正してもよい。
【0272】
また以上の例では、内包パターン192がホットスポットを発生させている。しかし、内抜きパターン190が単独でホットスポットを発生する場合も存在する。このような場合には、実施の形態1のパターンマッチング方法によりホットスポットを発生させる内抜きパターン(例えば、複雑な屈曲部を有する内抜きパターン)を検出して、検出した内抜きパターンを、ホットスポットを発生させないパターンに修正してもよい。
【0273】
また以上の例では設計パターンを修正しているが、設計パターンをOPC(Optical Proximity Correction)補正したマスクパターン(すなわち、レイアウトパターン)を修正してもよい。
【0274】
また以上の例では、実施の形態のパターンマッチング方法は設計パターンまたはレイアウトパターンのマッチングに用いられる。しかし、実施の形態のパターンマッチング方法は、他のパターンのマッチング(例えば、撮影画像のパターンマッチング)に用いられてもよい。
【0275】
以上の実施の形態1〜5に関し、更に以下の付記を開示する。
【0276】
(付記1)
第1外周と第1内周と前記第1外周に前記第1内周を接続する線分とを有する第1サンプル・パターンの前記第1外周と前記第1内周の各頂点とを通って前記第1サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第1内周に対応する内抜きパターンを生成する工程と、
前記内抜きパターンと第1リファレンス・パターンが一致するか判定する工程とを有する
パターンマッチング方法。
【0277】
(付記2)
付記1に記載のパターンマッチング方法において、
前記第1サンプル・パターンは、前記経路が方向を変える折れ点と前記経路の両端との座標を前記経路が前記折れ点と前記両端を通る順に配列したサンプル・データに対応し、
前記内抜きパターンを生成する工程では、前記サンプル・データにおいて隣接する前記座標の複数の第1座標組合せから対応する区間が少なくとも部分的に重なる第2座標組合せを検出し、
前記第2座標組合せの一方の前記座標の間で前記サンプル・データを分断して得られ一端と前記第2座標組合せの他方の前記座標の間で前記サンプル・データを分断して得られる他端とを有する第1座標列と、前記サンプル・データから前記第1座標列を削除して得られる第2座標列を生成し、
前記第1座標列に対応する第1分割パターンおよび前記第2座標列に対応する第2分割パターンのうち内側のパターンに対応する内抜きパターン・データを前記内抜きパターンのデータとして生成し、
前記内抜きパターンと前記第1リファレンス・パターンが一致するか判定する工程では、生成した前記内抜きパターン・データが前記第1リファレンス・パターンのデータに対応するか判定することを
特徴とするパターンマッチング方法。
【0278】
(付記3)
付記1又は2に記載のパターンマッチング方法において、更に、
前記第1サンプル・パターンの前記第1内周に囲われた第2サンプル・パターンの第2外周と第1リファレンス・パターンに囲われる第2リファレンス・パターンとが一致するか判定する工程と、
前記第2外周と前記第2リファレンス・パターンとが一致する場合に、前記第2リファレンス・パターンの前記第1リファレンス・パターンに対する第1位置情報と前記第2外周の前記内抜きパターンに対する第1位置とが一致するか判定する工程とを有することを特徴とする
パターンマッチング方法。
【0279】
(付記4)
付記1又は2に記載のパターンマッチング方法において、
前記第1サンプル・パターンの前記経路から前記重複区間を削除して得られるパターンのうち外側の外形パターンと前記第1リファレンス・パターンを囲む第3リファレンス・パターンが一致するか判定する工程と、
前記外形パターンと前記第3リファレンス・パターンが一致する場合、前記第3リファレンス・パターンの前記第1リファレンス・パターンに対する第2位置情報と前記外形パターンの前記内抜きパターンに対する第2位置とが一致する否かを判定する工程とを有することを特徴とする
パターンマッチング方法。
【0280】
(付記5)
第1外周と第1内周と前記第1外周に前記第1内周を接続する線分とを有する第1サンプル・パターンの前記第1外周と前記第1内周の各頂点とを通って前記第1サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第1内周に対応する内抜きパターンを生成し、
前記内抜きパターンと第1リファレンス・パターンが一致するか判定する
処理をコンピュータに実行させるプログラム。
【0281】
(付記6)
第1集積回路に対応する第1設計パターンまたは前記第1集積回路に対応する第1レイアウト・パターンから、第1外周と第1内周と前記第1外周に前記第1内周を接続する線分とを有する第1サンプル・パターンを抽出する工程と、
前記第1サンプル・パターンの前記第1外周と前記第1内周の各頂点とを通って前記第1サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第1内周に対応する内抜きパターンを生成する工程と、
第2集積回路に対応する第2設計パターンまたは前記第2集積回路に対応する第2レイアウト・パターンに含まれ、ホットスポットに対応する領域を第2内周が囲う要素パターンの当該第2内周に対応する第1リファレンス・パターンと、前記内抜きパターンとが一致するか判定する工程と、
前記第1リファレンス・パターンと前記内抜きパターンが一致する場合、前記ホットスポットを発生させる第1パターンが前記内抜きパターン内に存在するか判定する工程と、
前記第1パターンが存在する場合、前記第1パターンを前記第1パターンより前記ホットスポットを発生させる確率が低い第2パターンに変換する工程とを有する
パターン設計方法。