(57)【要約】      （修正有）【課題】パターン内スペースのマッチングを容易にする。【解決手段】第１外周７８ａと第１内周８０ａと前記第１外周に前記第１内周を接続する線分とを有する第１サンプル・パターン７２の前記第１外周と前記第１内周の各頂点とを通って前記第１サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第１内周に対応する内抜きパターン６を生成する第１工程と、前記内抜きパターンと第１リファレンス・パターンが一致するか判定する第２工程とを有するパターンマッチング方法。【選択図】図１０
2015132873.tif 000002
【特許請求の範囲】
【請求項１】
第１外周と第１内周と前記第１外周に前記第１内周を接続する線分とを有する第１サンプル・パターンの前記第１外周と前記第１内周の各頂点とを通って前記第１サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第１内周に対応する内抜きパターンを生成する工程と、
前記内抜きパターンと第１リファレンス・パターンが一致するか判定する工程とを有する
パターンマッチング方法。
【請求項２】
請求項１に記載のパターンマッチング方法において、
前記第１サンプル・パターンは、前記経路が方向を変える折れ点と前記経路の両端との座標を前記経路が前記折れ点と前記両端を通る順に配列したサンプル・データに対応し、
前記内抜きパターンを生成する工程では、前記サンプル・データにおいて隣接する前記座標の複数の第１座標組合せから対応する区間が少なくとも部分的に重なる第２座標組合せを検出し、
前記第２座標組合せの一方の前記座標の間で前記サンプル・データを分断して得られ一端と前記第２座標組合せの他方の前記座標の間で前記サンプル・データを分断して得られる他端とを有する第１座標列と、前記サンプル・データから前記第１座標列を削除して得られる第２座標列を生成し、
前記第１座標列に対応する第１分割パターンおよび前記第２座標列に対応する第２分割パターンのうち内側のパターンに対応する内抜きパターン・データを前記内抜きパターンのデータとして生成し、
前記内抜きパターンと前記第１リファレンス・パターンが一致するか判定する工程では、生成した前記内抜きパターン・データが前記第１リファレンス・パターンのデータに対応するか判定することを
特徴とするパターンマッチング方法。      
【請求項３】
請求項１又は２に記載のパターンマッチング方法において、更に、
前記第１サンプル・パターンの前記第１内周に囲われた第２サンプル・パターンの第２外周と第１リファレンス・パターンに囲われる第２リファレンス・パターンとが一致するか判定する工程と、
前記第２外周と前記第２リファレンス・パターンとが一致する場合に、前記第２リファレンス・パターンの前記第１リファレンス・パターンに対する第１位置情報と前記第２外周の前記内抜きパターンに対する第１位置とが一致するか判定する工程とを有することを特徴とする
パターンマッチング方法。
【請求項４】
請求項１又は２に記載のパターンマッチング方法において、
前記第１サンプル・パターンの前記経路から前記重複区間を削除して得られるパターンのうち外側の外形パターンと前記第１リファレンス・パターンを囲む第３リファレンス・パターンが一致するか判定する工程と、
前記外形パターンと前記第３リファレンス・パターンが一致する場合、前記第３リファレンス・パターンの前記第１リファレンス・パターンに対する第２位置情報と前記外形パターンの前記内抜きパターンに対する第２位置とが一致する否かを判定する第７工程とを有することを特徴とする
パターンマッチング方法。
【請求項５】
第１外周と第１内周と前記第１外周に前記第１内周を接続する線分とを有する第１サンプル・パターンの前記第１外周と前記第１内周の各頂点とを通って前記第１サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第１内周に対応する内抜きパターンを生成し、
前記内抜きパターンと第１リファレンス・パターンが一致するか判定する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パターンマッチング方法、プログラム、およびパターン設計方法に関する。
【背景技術】
【０００２】
パターンマッチングは、集積回路のレイアウトパターンの検証や設計に有益である。パターンマッチングによれば、ホットスポットを発生させるパターンを、レイアウトパターンから容易に検出することできる。その結果、レイアウトパターンの検証及び設計が効率化される。
【０００３】
パターンマッチングに関しては、種々の技術が提案されている。例えば、複数の切断線に沿った基準パターンの切断パターンと、入力画像に設定された複数のウィンド内のパターンとが一致するか判別する技術が提案されている。この技術では、切断パターンとウィンド内のパターンが一致し更に、切断パターン間の位置関係とウィンド内のパターン間の位置関係とが一致する場合に、入力パターンと基準パターンが一致すると判定される。
【０００４】
また、撮影された物体が目標物であるか否かを判定するため、目標物を構成する複数の基本図形を撮像画像から抽出する技術が提案されている。この技術では、目標物を構成する基本図形間のベクトルを利用して、撮像画面から複数の基本図形を抽出する。
【０００５】
また、平面図形のパターンマッチングを容易にするため、平面図形の重心から各辺に向かうベクトルを異なる図形間で対比する技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１―２７９３７９号公報
【特許文献２】特開昭６４−３１１８８号公報
【特許文献３】特開昭６２−１８６３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ホットスポットは、よく知られているように、レイアウトパターンの外形が特定の形状を有する箇所で発生する。今日まで特に注目はされていないが、ホットスポットは、レイアウトパターンに囲われたスペースが特定の形状を有する場合にも発生する。
【０００８】
しかし既存のパターンマッチング方法により、このようなパターン内スペースのマッチングを行うことは容易ではない。
【課題を解決するための手段】
【０００９】
上記の問題を解決するために、本方法の一観点によれば、第１外周と第１内周と前記第１外周に前記第１内周を接続する線分とを有する第１サンプル・パターンの前記第１外周と前記第１内周の各頂点とを通って前記第１サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第１内周に対応する内抜きパターンを生成する工程と、前記内抜きパターンと第１リファレンス・パターンが一致するか判定する工程とを有するパターンマッチング方法が提供される。 
【発明の効果】
【００１０】
開示の方法によれば、パターン内スペースのマッチングを容易に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、既存のパターンマッチング方法では検出困難なパターン内スペースを説明する図である。
【図２】図２は、内抜きパターンのマッチングに関する第１の問題を説明する図である。
【図３】図３は、内抜きパターンのマッチングに関する第２の問題を説明する図である。
【図４】図４は、実施の形態１のパターンマッチング装置の一例を示す図である。
【図５】図５は、リファレンス・ライブラリの一例を示す図である。
【図６】図６は、内抜きパターン表の一例を説明する図である。
【図７】図７は、内抜きＲデータを説明する図である。
【図８】図８は、実施の形態１のパターンマッチング方法のフローチャートの一例である。
【図９】図９は、要素パターン・データの一例を説明する図である。
【図１０】図１０は、内側に内抜きパターンが存在する要素パターン及びそのデータを説明する図である。
【図１１】図１１は、要素パターン・データにおける座標列の一例を示す図である。
【図１２】図１２は、内側に内抜きパターンが存在する要素パターンの別の例を説明する図である。
【図１３】図１３は、一致判定工程のフローチャートの一例である。
【図１４】図１４は、内抜きパターン生成工程のフローチャートの一例である。
【図１５】図１５は、内抜きパターン抽出工程を説明する図である。
【図１６】図１６は、第１分割パターンの頂点が第２分割パターンの内側にあるか否かを判断する方法の説明図である。
【図１７】図１７は、要素パターンの内側に内抜きパターンが複数存在する場合の出力の一例を示す図である。
【図１８】図１８は、内包パターンの一例を説明する図である。
【図１９】図１９は、内包パターンに関する問題を説明する図である。
【図２０】図２０は、実施の形態２のリファレンス・ライブラリとリファレンス・パターンとの一例を説明する図である。
【図２１】図２１は、内包パターン表および第１位置データ表の一例を説明する図である。
【図２２】図２２は、実施の形態２のパターンマッチング方法のフローチャートの一例である。
【図２３】図２３は、実施の形態２を説明するパターン図である。
【図２４】図２４は、実施の形態２の一致判定工程のフローチャートの一例である。
【図２５】図２５は、実施の形態２の一致判定工程のフローチャートの一例である。
【図２６】図２６は、実施の形態３のリファレンス・ライブラリとリファレンス・パターンとの一例を説明する図である。
【図２７】図２７は、外形パターン表および第２位置データ表の一例を説明する図である。
【図２８】図２８は、実施の形態３の一致判定工程のフローチャートの一例である。
【図２９】図２９は、実施の形態３の一致判定工程のフローチャートの一例である。
【図３０】図３０は、実施の形態４のリファレンス・ライブラリとリファレンス・パターンとの一例を説明する図である。
【図３１】図３１は、実施の形態４のパターンマッチング方法を説明する図である。
【図３２】図３２は、実施の形態４の一致判定工程のフローチャートの一例である。
【図３３】図３３は、実施の形態４の一致判定工程のフローチャートの一例である。
【図３４】図３４は、実施の形態５のリファレンス・ライブラリに登録されるデータの一例を説明する図である。
【図３５】図３５は、実施の形態５のパターン設計方法のフローチャートの一例である。
【図３６】図３６は、実施の形態５のパターン設計方法を説明する図である。
【図３７】図３７は、内抜きパターンの内側にホットスポット領域を形成する第１パターンの別の例を説明する図である。
【発明を実施するための形態】
【００１２】
以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。尚、図面が異なっても対応する部分には同一の符号を付し、その説明を省略する。
【００１３】
（実施の形態１）
（１）既存のパターンマッチング方法
図１は、既存のパターンマッチング方法では検出困難なパターン内スペースを説明する図である。
【００１４】
図１には、内側にスペース４（パターンの存在しない領域）が設けられた満たされたパターン２（Filled Pattern）が示されている。スペース４の外縁は、パターン２の内周７に一致する。この様な内周７のパターンを以下、内抜きパターンと呼ぶ。パターン２の外周８は、外形パターンと呼ぶ。
【００１５】
既存のパターンマッチング・プログラム（例えば、Calibre Pattern Matching; Calibreは登録商標）は、内抜きパターンのパターンマッチングに関し、種々の問題を有している。図２は、内抜きパターンのマッチングに関する第１の問題を説明する図である。
【００１６】
図２には、上から１番目のパターン１０をリファレンスとするパターンマッチングの結果の一例が示されている。パターン１０は、内側に内抜きパターンが存在しないパターンである。既存のパターンマッチング・プログラムによれば、２番目及び３番目のパターン１２,１４は、１番目のパターン１０と一致すると判定される。一方、４番目のパターン１６は、１番目のパターン１０とは一致しないと判定される。
【００１７】
４番目のパターン１６は、外形パターン９の形状が１番目のパターン１０と一致しない。このため４番目のパターン１６は、１番目のパターン１０と一致しないと判定される。一方、２番目および３番目のパターン１２，１４は、外形パターン９が１番目のパターン１０と一致する。このため２番目および３番目のパターン１２，１４は、１番目のパターン１０と一致すると判定される。なお「形状が一致する」とは、合同を意味するものとする（以下、同様）。
【００１８】
２番目のパターン１２は、内側に内抜きパターン６が存在しない点でも、１番目のパターン１０と一致している。一方、３番目のパターン１４の内側には、１番目のパターン１０とは異なり、内抜きパターン６が存在している。
【００１９】
このように既存のパターンマッチング・プログラムには、内抜きパターン６の有無に拘わらず、外形パターン９だけで一致判定（マッチング）を行うという第１の問題が存在する。
【００２０】
図３は、内抜きパターンのマッチングに関する第２の問題を説明する図である。
【００２１】
既存のパターンマッチング・プログラムには、内抜きパターン自体の一致判定を行う機能は存在しない。この問題の解決策としては、内抜きパターンの一致判定を行う代わりに、内側に内抜きパターンが存在するパターンをリファレンスとして一致判定を行うことが考えられる。
【００２２】
図３は、上から１番目のパターン１８をリファレンスとするパターンマッチングの結果の一例が示されている。１番目パターン１８は、内側に内抜きパターン６が存在するパターンである。２番目のパターン２０は、１番目のパターン１８と一致すると判定されるパターンの一例である。３番目のパターン２２および４番目のパターン２４は、１番目のパターン１８と一致しないと判定されるパターンの一例である。
【００２３】
２番目のパターン２０は、１番目のパターン１８と外形パターン９および内抜きパターン６の形状が一致し更に内抜きパターン６の位置が一致する。このため２番目のパターン２０は、１番目のパターン１８と一致すると判定される。
【００２４】
４番目のパターン２４は、１番目のパターン１８と内抜きパターン６の形状は一致する。しかし、４番目のパターン２４は、１番目のパターン１８と外形パターン９の形状が一致しない。このため４番目のパターン２４は、１番目のパターン１８と一致しないと判定される。
【００２５】
３番目のパターン２２は、１番目のパターン１８と外形パターン９および内抜きパターン６の形状が一致する。しかし３番目のパターン２２は、内抜きパターン６の位置が１番目のパターン１８と一致しない。このため３番目のパターン２２は、１番目のパターン１８と一致しないと判定される。
【００２６】
このように既存のパターンマッチング・プログラムは、内抜きパターン６の形状が一致していても内抜きパターン６の位置や外形パターン９の形状が一致しないパターン同士は一致しないと判定する。
【００２７】
したがって既存のパターンマッチング・プログラムには、内抜きパターンの形状だけに着目したパターンマッチングを行えないという第２の問題が存在する。
【００２８】
（２）パターンマッチング装置
図４は、実施の形態１のパターンマッチング装置２６の一例を示す図である。図４のパターンマッチング装置２６は、例えばパターンマッチング・プログラムが補助記憶部３２に記録されたコンピュータである。
【００２９】
図４に示すように、パターンマッチング装置２６は、演算部２８と主記憶部３０と補助記憶部３２と入力部３４と表示部３６と通信部３８とバス４０とを有している。演算部２８は例えば、ＣＰＵ（Central Processing Unit）である。
【００３０】
主記憶部３０は例えば、ＲＡＭ（Random Access Memory）およびＲＯＭ（Read Only Memory）である。補助記憶部３２は例えば、ＨＤ（Hard Disk）を格納したＨＤＤ（Hard Disk Drive）である。入力部３４は例えば、キーボード及び／又はマウスである。表示部３６は例えば、液晶ディスプレイ及び／又はプリンタである。通信部３８は、例えばＮＩＣ（Network Interface Card）である。
【００３１】
演算部２８は、パターンマッチング装置２６の各ハードウエア３０〜３８を制御すると共に演算を実行する。演算部２８は例えば、補助記憶部３２に記録されたプログラムを主記憶部３０（例えば、ＲＡＭ）にロードし、ロードしたプログラムを実行する。主記憶部３０にはプログラム以外にも、演算途中のデータが一時的に記録される。
【００３２】
補助記憶部３２には、実施の形態１のパターンマッチング方法を演算部２８に実行させるパターンマッチング・プログラムが記録されている。補助記憶部３２には更に、リファレンスのライブラリ（データベース）が記録されている。補助記憶部３２には好ましくは、パターンマッチング・プログラムにより検索するデータ（例えば、集積回路のレイアウトパターン）が予め記録されている。
【００３３】
通信部３８は例えば、コンピュータ２６をネットワークに接続する。
【００３４】
バス４０には、演算部２８と主記憶部３０と補助記憶部３２と入力部３４と表示部３６と通信部３８とが接続されている。これらハードウエア間のデータの送受信は、バス４０を介して行われる。
【００３５】
（３）リファレンス・ライブラリ
上述したように補助記憶部３２には、リファレンス・パターンが登録されたライブラリ（以下、リファレンス・ライブラリと呼ぶ）が記録されている。図５は、リファレンス・ライブラリ４２の一例を示す図である。図５に示すように、リファレンス・ライブラリ４２には内抜きパターン表４４が登録されている。
【００３６】
図６は、内抜きパターン表４４の一例を説明する図である。図６に示すように内抜きパターン表４４は、表形式のファイルである。内抜きパターン表４４には、複数の異なる内抜きパターン６に対応するデータ４６（以下、内抜きＲデータと呼ぶ）が記録されている。内抜きパターン表４４には更に、内抜きＲデータ４６に対応する識別子４８が記録されている。
【００３７】
図７は、内抜きＲデータを説明する図である。図７（ａ）には、内抜きＲデータに対応する内抜きＲパターン５０（以下、第１リファレンス・パターンと呼ぶ）の一例が示されている。
【００３８】
内抜きＲパターン５０は、図７（ａ）に示すように例えば、空の多角形(Unfilled Polygon)である。図７（ｂ）には、内抜きＲパターン５０の頂点Ab,Bb,Cb,Dbと、内抜きＲパターン５０の各頂点を通って内抜きＲパターン５０を一周する経路５２が示されている。
【００３９】
内抜きＲデータ４６は、経路５２が各頂点Ab,Bb,Cb,Dbを通る順に各頂点Ab,Bb,Cb,Dbの座標を配列した座標列である。座標の単位は、例えばnm（ナノメータ）である（以下、同様）。
【００４０】
例えば第１パターン表４４（図６参照）の１番目の内抜きＲデータ４６は、頂点座標が(-50,-50)と（-50,50）と（50,50）と（50,-50)の四角形状の内抜きＲパターン５０のデータである。内抜きＲデータ４６の両端の括弧()は、内抜きＲパターンのデータであることを示している。図６に示す例では、内抜きＲデータ４６の最初の頂点座標と最後の頂点座標は一致していない。しかし、最初の頂点座標と最後の頂点座標は一致してもよい。後述するリファレンス・データについても、同様である。
【００４１】
（４）パターンマッチング方法
図８は、実施の形態１のパターンマッチング方法のフローチャートの一例である。
【００４２】
（４−１）設計パターンおよびリファレンス・パターンの取得（Ｓ２〜Ｓ４）
パターンマッチング・プログラムが主記憶部３０にロードされると、パターンマッチング装置（例えば、コンピュータ）は図８に示す処理を開始する。
【００４３】
まず、ユーザが内抜きＲデータ４６の識別子４８（リファレンスＩＤ）を、入力部３４に入力する（Ｓ２）。すると演算部２８は、識別子４８に対応する内抜きＲデータ４６をリファレンス・ライブラリ４２から読み出し、主記憶部３０に記録する（Ｓ４）。  演算部２８は更に、例えば設計パターン（すなわち、ＯＰＣ補正前のレイアウトパターン）のデータを補助記憶部３２から読み出し、主記憶部３０に記録する（Ｓ４）。
【００４４】
以上により演算部２８は、内抜きＲパターン（以下、第１リファレンス・パターンと呼ぶ）および設計パターンを取得する。
【００４５】
ステップＳ２でユーザが入力する識別子４８は、例えば「a-1」である。内抜きＲデータ４６は例えば、(-50 -50, -50 50, 50 50, 50 -50)である。
【００４６】
ステップＳ４で読み込まれる設計パターンのデータ（以下、設計データと呼ぶ）は、例えばGDS II形式又はOASIS形式のデータである。演算部２８は、設計データのフォーマットを非階層形式に変換し、補助記憶部３２に記録する。変換後の設計データは、設計パターンに含まれる図形（すなわち、要素パターン）のデータの集まりである。図９は、要素パターンのデータ（以下、要素パターン・データと呼ぶ）の一例を説明する図である。
【００４７】
図９（ａ）は、要素パターン５４の一例を示す図である。図９（ｂ）は、ダンプされた要素パターン・データ５６の一例を示す図である。図９（ｃ）は、要素パターン５４の頂点ａ,ｂ,ｃ,ｄを通る経路５２の一例を示す図である。
【００４８】
要素パターン・データ５６は例えば、要素パターン５４の種類を示すヘッダ５８と、データ本体６０と、テイル６２とを有している。
【００４９】
要素パターンの種類には、満たされた多角形（Boundary Element）や一定の幅を有するワイヤ（Path Element）などがある。データ本体６０には例えば、レイヤナンバー６４、データタイプ６６、頂点数６８、座標列７０などが含まれる。座標列７０は、経路５２（図９（ｃ）参照）が各頂点ａ,ｂ,ｃ,ｄを通る順に各頂点の座標（すなわち、頂点座標）を配列した座標列である。最初の頂点座標と最後の頂点座標は好ましくは、同じ頂点（例えば、頂点ａ）の座標である。
【００５０】
ステップＳ２では、ユーザがリファレンスＩＤを入力する。しかし、ユーザの代わりに演算部２８が、予め補助記憶部３２に記録されているリファレンスＩＤを取得してもよい。
【００５１】
ステップＳ４では演算部２８は、補助記憶部３２に記録された設計データを取得する。しかし演算部２８は、通信部３８を介して、ネットワークに接続された記憶装置から設計データを取得してもよい。
【００５２】
さらに演算部２８は、設計データの代わりに、レイアウトパターンのデータを取得してもよい。レイアウトパターンとは、フォトマスクに形成されるパターンのことである。
【００５３】
なお以後の説明では、要素パターン等を適宜、その頂点記号により表示する。例えば、図９（ｃ）の要素パターン５４は、要素パターン（ａｂｃｄ）と表示する。また要素パターン等の経路を、通過点の記号を用いて表示する。例えば、図９（ｃ）の経路５２は、経路（ａ→ｂ→ｃ→ｄ）と表示する。
【００５４】
（４−２）未処理要素パターンの抽出（Ｓ６〜Ｓ８）
演算部２８は先ず、主記憶部３０に記録した設計データに、後段の処理（Ｓ１０〜Ｓ１２）が行われていない要素パターン・データが存在するか否かを判定する（Ｓ６）。処理対象は、Boundary Elementである。以下のステップでも同様である。
【００５５】
未処理の要素パターン・データが存在する場合、演算部２８は設計データから、未処理の要素パターン・データを抽出する（Ｓ８）。すなわち、演算部２８は設計パターンから、未処理の要素パターンを抽出する。未処理の要素パターン・データが存在しない場合、演算部２８はステップＳ１６に進む。
【００５６】
（４−３）内抜きパターンの有無判定（Ｓ１０）
演算部２８は、ステップＳ８で抽出した要素パターンの内側に内抜きパターンが存在するか否かを判定する（Ｓ１０）。抽出した要素パターンの内側に内抜きパターン６が存在する場合、演算部２８はステップＳ１２に進む。抽出した要素パターンの内側に内抜きパターン６が存在しない場合、演算部２８はステップＳ６に戻る。
【００５７】
演算部２８は例えば以下の手順により、要素パターンの内側に内抜きパターンが存在するか否かを判定する。先ず、内抜きパターンが存在する要素パターンについて説明する。
【００５８】
―内抜きパターンが存在する要素パターン―
図１０は、内側に内抜きパターン６が存在する要素パターン７２及びその要素パターン・データ７４を説明する図である。
【００５９】
図１０（ａ）は、内側に内抜きパターン６が存在する要素パターン７２の一例を示す図である。図１０（ｂ）は、この要素パターン７２に対応する要素パターン・データ７４の一例を示す図である。図１０（ｂ）には、ダンプされた状態の要素パターン・データ７４が示されている。図１０（ｃ）には、要素パターン７２の各頂点を通る経路７６の一例が示されている。なお図１０（ｃ）には、実施の形態２で説明するベクトル１６１も示されている。
【００６０】
図１０（ａ）に示すように、内側に内抜きパターン６が存在する要素パターン７２は、データ上は第１外周７８ａと第１内周８０ａと第１外周７８ａに第１内周８０ａを接続する線分８２とを有する図形として取り扱われる。
【００６１】
図１０（ｂ）に示すように、要素パターン・データ７４の座標列８５（以下、サンプル・データと呼ぶ）には、経路７６の両端(例えば、頂点ａ)および経路７６が方向を変える折れ点（例えば、点ｂ〜ｊ）の各座標８４が、経路７６が両端と折れ点とを通る順に配列される。
【００６２】
経路７６は、図１０（ｃ）に示すように、第１外周７８ａと第１内周８０ａの各頂点とを通って要素パターン７２を一周する経路である。経路７６の両端ａ（始点および終点）は好ましくは、図１０（ｃ）に示すように重なっている。
【００６３】
図１０（ａ）に示す例では、経路７６の両端および折れ点は点ｄ,iを除き、第１外周７８ａまたは第１内周８０ａの頂点である。
【００６４】
―判定方法―
図１１は、要素パターン・データ７４における座標列８５の一例を示す図である。
【００６５】
演算部２８は先ず、座標列８５（サンプル・データ）内において隣接する座標８４の組合せ８６（以下、第１座標組合せと呼ぶ）の中で、対応する区間（線分）が少なくとも部分的に重なる座標８４の組合せ８８,９０（以下、第２座標組合せと呼ぶ）を探索する。
【００６６】
演算部２８は探索の結果、対応する区間が少なくとも部分的に重なる第２座標組合せ８８,９０が検出された場合、要素パターンの内側に内抜きパターン６が存在すると判定する。第２座標組合せ８８,９０が検出された要素パターン７２は、後述する一致判定（Ｓ１２）においてサンプル・パターンとなる。一方、第２座標組合せ８８,９０が検出されない場合、演算部２８は要素パターンの内側に内抜きパターン６は存在しないと判定する。
【００６７】
以下、図１０を参照して上記判定方法を具体的に説明する。なお以下の説明では２点間の区間を、両端の記号を用いて表す。例えば、点ａと点ｂとに挟まれた区間は、区間（ａ⇔ｂ）と表す。図１１の座標列８５は、図１０（ａ）の要素パターン７２に対応している。
【００６８】
第２座標組合せ８８,９０の一方８８は、折れ点ｄと折れ点eに挟まれた第１区間（ｄ⇔ｅ）に対応している（図１０（ｃ）参照）。第２座標組合せ８８,９０の他方９０は、折れ点ｈと折れ点iに挟まれた第２区間（ｈ⇔ｉ）に対応している。
【００６９】
第１区間（ｄ⇔ｅ）と第２区間（ｈ⇔ｉ）が重なった区間（ｅ⇔ｉ）（以下、重複区間と呼ぶ）は、第１外周７８ａに第１内周８０ａを接続する線分８２（図１０（ａ）参照）が存在する区間に一致する。線分８２が存在することは、要素パターン７２の内側に内抜きパターン６が存在することを意味する。
【００７０】
したがって、第２座標組合せ８０,９０が検出された場合、演算部２８は要素パターン７２の内側に内抜きパターン６が存在すると判定する。第２座標組合せ８０,９０が検出されない場合、演算部２８は要素パターン７２の内側に内抜きパターン６は存在しないと判定する。
【００７１】
図１２は、内側に内抜きパターン６が存在する要素パターンの別の例を説明する図である。図１０（ｃ）に示す例と同様、第２座標組合せの一方は折れ点ｄと折れ点ｅに挟まれた区間（ｄ⇔ｅ）に対応し、第２座標組合せの他方は折れ点ｈと折れ点ｉに挟まれた区間（ｈ⇔ｉ）に対応している。
【００７２】
図１０（ｃ）に示す例では、折れ点ｄと折れ点iは重なっている。このため重複区間は、折れ点ｅと折れ点ｉに挟まれた区間（ｅ⇔ｉ）である。一方、図１２に示す例では、折れ点ｄと折れ点iは分離している。このため重複区間は、折れ点ｄと折れ点ｅに挟まれた区間（ｄ⇔ｅ）になる。
【００７３】
なお、第１座標組合せ８６に対応する区間が互いに重なるか否かは、第１座標組合せ８６に含まれる座標８４同士を比較する容易に判定できる。
【００７４】
（４−４）一致判定（Ｓ１２）
図１３は、一致判定工程（Ｓ１２）のフローチャートの一例である。
【００７５】
（４−４−１）内抜きパターンの抽出（Ｓ２０）
演算部２８は、内側に内抜きパターンが存在すると判定された要素パターン７２（以下、第１サンプル・パターンと呼ぶ）の経路７６から、経路７６が重なる重複区間（ｅ⇔ｄ）で削除して、第１内周８０ａに対応する内抜きパターン６を抽出（生成）する。
【００７６】
具体的には演算部２８は、例えば以下の手順により内抜きパターンを抽出する。
【００７７】
図１４は、内抜きパターン抽出工程（Ｓ２０）のフローチャートの一例である。を説明する図である。図１５は、内抜きパターン抽出工程を説明する図である。
【００７８】
図１５（ａ）には、要素パターン７２(第１サンプル・パターン)に対応する座標列８５の一例が示されている。図１５（ａ）に示す座標列８５は、図１１に示した座標列と同じものである。図１５（ｂ）には、後述する第２座標列１０５が示されている。
【００７９】
―サンプル・データの分断（Ｓ３２）―
演算部２８は先ず、ステップＳ１０（又は、ステップＳ１４）で検出した第２座標組合せ８８,９０それぞれを分断して、座標列８５（サンプル・データ）から第１座標列９４（図１０（ａ）参照）と第２座標列１０５（図１０（ｂ）参照）を生成する（Ｓ３２）。
【００８０】
第１座標列９４は、第２座標組合せ８８,９０の一方８８の座標の間で座標列８５を分断して得られ一端１００と、第２座標組合せ８８,９０の他方９０の座標の間で座標列８５を分断して得られる他端１０２とを有する座標列である。
【００８１】
第２座標列１０５は、座標列８５から第１座標列９４を削除して得られる座標列である。図１５に示すように、第１座標列９４が座標列８５の内部に位置する場合には、図１５（ｂ）に示すように、第１座標列９４の削除によって分離された第３座標列１０４同士を接続することで第２座標列１０５が得られる。第１座標列９４が座標列８５の一端に位置する場合には、第１座標列９４の削除によって直ちに第２座標列１０５が得られる。
【００８２】
―内側に位置する座標列の検出（Ｓ３４）―
演算部２８は、第１座標列９４に対応する第１分割パターン（例えば、図１０（ｃ）の多角形（ｅｆｇｈ））が第２座標列１０５に対応する第２分割パターン(例えば、図１０（ｃ）の多角形（ａｂｃｊ））の内側に存在するか否かを判定する。第１分割パターンが第２分割パターンの内側に存在すると判定すると、演算部２８はステップＳ３６に進む。第１分割パターンが第２分割パターンの内側に存在しない場合、演算部２８はステップＳ３８に進む。
【００８３】
第１分割パターンが第２分割パターンの内側か否かは、例えば以下のように判定することができる。
【００８４】
演算部２８は先ず、第１分割パターンの各頂点が第２分割パターンの内側に存在するか否か判定する。
【００８５】
判定の結果、第１分割パターンの頂点が全て第２分割パターンの内側に存在する場合、演算部２８は第１分割パターンが第２分割パターンの内側に存在すると判定する。第１分割パターンの頂点が全て第２分割パターンの内側に存在しない場合、演算部２８は第２分割パターンが第１分割パターンの内側に存在すると判定する。
【００８６】
図１６は、第１分割パターン（ｅｆｇｈ）の頂点ｅが第２分割パターン（ａｂｃｊ）の内側にあるか否かを判定する方法の説明図である。図１６（ａ）は、頂点ｅが第２分割パターン（ａｂｃｊ）の内側にある場合を示している。図１６（ｂ）は、頂点ｅが第２分割パターン（ａｂｃｊ）の外側にある場合を示している。
【００８７】
演算部２８は先ず、第２分割パターン（ａｂｃｊ）の第１頂点（例えば、頂点ａ）と第１分割パターンの頂点ｅを結ぶ第１線分と第１頂点（例えば、頂点ａ）に隣接する第２頂点（例えば、頂点ｂ）と頂点ｅを結ぶ第２線分の間の角度θ１を算出する。演算部２８は更に、第２分割パターン（ａｂｃｊ）の各頂点（頂点ａを除く）と第１分割パターンの頂点ｅを結ぶ線分間の角度θ２〜θ４を算出する。
【００８８】
角度θ１〜θ４の総和が２π（rad）または−２π（rad）の場合に演算部２８は、第１分割パターンの頂点ｅは第２分割パターン（ａｂｃｊ）の内側にあると判定する。一方、角度θ１〜θ４の総和が０（rad）の場合、演算部２８は第１分割パターンの頂点ｅは第２分割パターン（ａｂｃｊ）の内側に存在しないと判定する。
【００８９】
―内抜きパターン・データの生成（Ｓ３６およびＳ３８）―
演算部２８はステップ３６に進んだ場合、内抜きパターン・データとして第１分割パターンに対応するデータを生成する（Ｓ３６）。一方、演算部２８はステップ３８に進んだ場合、内抜きパターン・データとして第２分割パターンに対応するデータを生成する（Ｓ３８）。
【００９０】
以上により演算部２８は、第１座標列９４に対応する第１分割パターンおよび第２座標列１０５に対応する第２分割パターンのうち内側のパターンに対応するデータを内抜きパターン６のデータとして生成する。
【００９１】
具体的には例えば演算部２８は、ステップＳ３６に進んだ場合、第１座標列１０４に多角形（ｅｆｇｈ）の頂点以外の座標が存在する場合、第１座標列１０４から頂点以外の座標を削除する。演算部２８は更に、第１座標列１０４に重複する座標が存在する場合、重複する座標の一方を削除する。以上により、第１分割パターンに対応するデータが生成される。
【００９２】
図１５に示す第１座標列９４には、多角形（ｅｆｇｈ）の頂点座標以外の座標や重複する座標は存在しない。したがってステップＳ３６では、(-50,50)（50,50）（50,-50）（-50,-50)という座標列が生成される。
【００９３】
演算部２８は、ステップＳ３８に進んだ場合には、例えば第３座標列１０４を接続して第２座標列を生成する。演算部２８は生成した第２座標列１０５から、ステップＳ３６と同様に、不要な座標点を削除する。これにより、第２分割パターンに対応するデータが生成される。図１５（ｂ）に示す例では、演算部２８は第２座標列１０５から、頂点以外の座標（-50,100）と重複座標(-100,-100)の一方を削除して、(-100,-100) (100,-100) (100,100) (-100,-100)という座標列を生成する。
【００９４】
ステップＳ３２〜Ｓ３８により演算部２８は、要素パターン７２（第１サンプル・パターン）から第１内周８０ａに対応する内抜きパターン６を抽出する。
【００９５】
（４−４−２）判定（Ｓ２２）
演算部２８は、ステップＳ２０（図１３参照）で生成した内抜きパターン６と、ステップＳ４（図８参照）で取得した内抜きＲパターン５０が一致するか判定する。具体的には演算部２８は、ステップＳ２０で生成した内抜きパターン６のデータが、ステップＳ４で読み出した内抜きＲデータ４８に対応（マッチング）するか否かを判定する（Ｓ２２）。
【００９６】
内抜きパターン６と内抜きＲパターン５０が一致すると判定した場合、演算部２８はステップＳ２４に進む。内抜きパターン６と内抜きＲパターン５０が一致しないと判定した場合、演算部２８は一致判定Ｓ１２（図８参照）を終了する。
【００９７】
内抜きパターン６と内抜きＲパターン５０が一致するか否かは、例えば以下のように判定することができる。
【００９８】
演算部２８は先ず、ステップＳ４（図８参照）で読み出した内抜きＲパターン５０（例えば、図７参照）の基準頂点からこの基準頂点に隣接する一方の頂点に至る第１ベクトルを算出する。基準頂点は例えば、ｘ座標が最小の頂点のうちｙ座標が最小の頂点である。図７に示す例では、基準頂点は頂点Abである。演算部２８は例えば、基準頂点Abから頂点Bbに至る第１ベクトルを算出する。
【００９９】
次に演算部２８は、ステップＳ２０（図１３参照）で抽出した内抜きパターン（例えば、図１０（ｃ）の多角形eｆｇｈ）の基準頂点からこの基準頂点に隣接する各頂点に至る第２及び第３ベクトルを算出する。図１０（ｃ）に示す例では、基準頂点は頂点hである。隣接する頂点は、頂点eと頂点ｇである。
【０１００】
次に演算部２８は、内抜きＲパターン５０（第１リファレンス・パターン）から算出した第１ベクトルが、内抜きパターン６から算出した第２又は第３ベクトルに一致するか否か判定する。
【０１０１】
第１ベクトルと第２又は第３ベクトルが一致する場合、演算部２８は、内抜きＲパターン５０（第１リファレンス・パターン）の他の頂点に対して同様の処理を、例えば経路５２に沿って順次行う。内抜きパターン６側のベクトルを算出する起点は例えば、内抜きパターン６側の基準点（例えば、頂点h）に内抜きパターン６で算出したベクトルを順次加算することで算出できる。
【０１０２】
演算部２８は、内抜きＲパターン５０（第１リファレンス・パターン）の各頂点Ab,Bb,Cb,Dbで算出したベクトルが全て内抜きパターン側の各頂点h,e,f,gで算出したベクトルの一方と一致する場合、内抜きパターン６は内抜きＲパターン５０に一致すると判断する。
【０１０３】
このようにステップＳ２２（図１３参照）の一致判定はベクトルに基づいて行われるので、内抜きＲパターン５０と内抜きパターン６０は、形状が同一であれば（正確には、並進操作により重なるならば）一致すると判定される。なお演算部２８は、内抜きＲパターン５０を回転又は反転してから、一致判定（ステップＳ２２）を行ってもよい。
【０１０４】
（４−４−３）記録（Ｓ２４）
演算部２８はステップＳ２４に進むと、ステップＳ２２で内抜きＲパターンと一致すると判定した内抜きパターン６を補助記憶部３２に記録する（Ｓ２４）。
【０１０５】
以上により、ステップＳ１２（図８参照）は終了する。
【０１０６】
（４−５）未判定内抜きパターンの有無判定（Ｓ１４）
演算部２８は、ステップＳ８で抽出した要素パターン７２に一致判定（ステップＳ１２）を行っていない内抜きパターンが存在するか否か判定する（Ｓ１４）。
【０１０７】
一致判定を行っていない内抜きパターンが存在する場合には、演算部２８はステップＳ１２に戻る。一致判定を行っていない内抜きパターンが存在しない場合には、演算部２８はステップＳ６に戻る。
【０１０８】
図１０に示す例では内抜きパターン６は一つなので、演算部２８はステップＳ６に戻る。
【０１０９】
（４−６）検出パターンの出力（Ｓ１６）
演算部２８は、ステップＳ６で設計パターンに未処理の要素パターンが存在しないと判定すると、ステップＳ２４（図１３参照）で記録した内抜きパターン６のデータを出力する。図１７は、要素パターン１０８の内側に内抜きパターン１０９が複数存在する場合の出力の一例を示す図である。
【０１１０】
図１７（ａ）には、ステップＳ８により抽出される要素パターン１０８の一例が示されている。図１７（ａ）の要素パターン１０８の内側には、複数の内抜きパターン１０９が存在している。図１７（ｂ）には、ステップＳ１６で出力される内抜きパターン６の一例が示されている。
【０１１１】
実施の形態１によれば、内抜きパターン６を外形パターン９（図１０（ａ）参照）から分離する。このため図１７（ｂ）に示すように、内抜きパターンの形状だけに着目したパターンマッチングを行うことができる。したがって、内抜きパターンのマッチング（すなわち、パターン内スペースのマッチング）が容易になる。
【０１１２】
（実施の形態２）
実施の形態２は、実施の形態１に類似している。したがって、実施の形態１と共通する部分の説明は、省略または簡単にする。実施の形態２によれば、内包パターンの有無および位置を反映したマッチングを行うことができる。
【０１１３】
（１）内包パターン
図１８は、内包パターン１１０の一例を説明する図である。内包パターン１１０とは、図１８に示すように、内抜きパターン６（すなわち、内周７）に囲われたパターン（内部が満たされたパターン）のことである。なお内包パターン１１０は、要素パターンの１種である。
【０１１４】
既存のパターンマッチング・プログラム（例えば、Calibre Pattern Matching）は、内包パターンに関する問題を有している。図１９は、内包パターンに関する問題を説明する図である。
【０１１５】
図１９は、上から１番目のパターン１１２をリファレンスとするパターンマッチングの結果の一例を示している。１番目〜３番目のパターン１１２,１１４,１１６は、内包パターン１１０と内包パターン１１０を囲うパターン１１１とを有するパターンである。
【０１１６】
２番目のパターン１１４における内包パターン１１０の位置は、１番目のパターン１１２における内包パターン１１０の位置と異なっている。しかし既存のパターンマッチング・プログラムは、１番目のパターン１１２と２番目のパターン１１４は一致すると判定する。３番目のパターン１１６における内包パターン１１０についても、同様である。
【０１１７】
このように既存のパターンマッチング・プログラムには、内包パターン１１０の位置が異なっていても、リファレンス・パターン１１２とサンプル・パターン１１４,１１６は一致すると判定してしまう問題がある。
【０１１８】
（２）パターンマッチング装置
実施の形態２のパターンマッチング装置は、図４を参照して説明した実施の形態１のパターンマッチング装置２６と略同じである。ただし補助記憶部３２には、実施の形態２に対応したパターンマッチング・プログラムが記録されている。補助記憶部３２には更に、実施の形態２に対応したリファレンス・ライブラリが記録される。
【０１１９】
（３）リファレンス・ライブラリ
図２０は、実施の形態２のリファレンス・ライブラリとリファレンス・パターンとの一例を説明する図である。図２０（ａ）に示すように、リファレンス・ライブラリ１１８は内抜きパターン表４４と内包パターン表１２０と第１位置データ表１２２ａとを有している。内抜きパターン表４４は、実施の形態１で説明したものである。
【０１２０】
図２１は、内包パターン表１２０および第１位置データ表１２２ａの一例を説明する図である。図２１（ａ）に示すように内包パターン表１２０には、複数の異なる内包パターン１１０の外周に対応するデータ１２４（以下、内包Ｒデータと呼ぶ）が記録されている。内包パターン表１２０（図２１（ａ）参照）には更に、内包Ｒデータ１２４に対応する識別子１２８が記録されている。内包Ｒデータに対応するパターンを以下、内包Ｒパターンと呼ぶ。
【０１２１】
図２０（ｂ）には、内抜きＲパターン５０（第１リファレンス・パターン）の頂点Ab,Bb,Cb,Dbが示されている。図２０（ｂ）には更に、内包Ｒパターン１３０（以下、第２リファレンス・パターンと呼ぶ）の頂点Aa,Ba,Ca,Daが示されている。内包Ｒパターン（以下、第２リファレンス・パターンと呼ぶ）は例えば、図２０（ｂ）に示すように多角形の外周に対応するパターンである。
【０１２２】
図２０（ｂ）には更に、内包Ｒパターン１３０の各頂点を通って内包Ｒパターン１３０を一周する経路１３１が示されている。
【０１２３】
内包Ｒデータ１２４（図２１（ａ）参照）は、経路１３１が各頂点Aa,Ba,Ca,Daを通る順に頂点Aa,Ba,Ca,Dbの座標を配列した座標列である。内包Ｒデータ１２４の両端の括弧[]は、内包Ｒパターンのデータであることを示している。
【０１２４】
図２１（ｂ）に示すように、第１位置データ表１２２ａには、内抜きＲパターン５０に対する内包Ｒパターン１３０の位置を表すデータ１３２（以下、第１位置情報と呼ぶ）が記録されている。第１データ表１２２には更に、第１位置情報１３２に対応する識別子１３４が記録されている。
【０１２５】
第１位置情報１３２は、内包Ｒパターン１３０（第２リファレンス・パターン）の内抜きＲパターン５０（第１リファレンス・パターン）に対する位置情報である。第１位置情報１３２は、例えば図２０（ｂ）に示すように、内抜きＲパターン５０の基準点（例えば、頂点Ab）から内包Ｒパターンの基準点（例えば、頂点Aa）に至るベクトル１３６である。第１位置情報１３２（図２１（ｂ）参照）の両端の括弧{}は、位置情報の座標であることを示している。
【０１２６】
内抜きＲパターン５０の基準点は例えば、ｘ座標が最小の各頂点Ab,Bbのうちｙ座標が最小の頂点Aｂである。同様に内包Ｒパターン１３０の基準点は例えば、ｘ座標が最小の各頂点Aa,Baのうちｙ座標が最小の頂点Aaである。後述する内包Ｒパターンや外形Ｒパターン等の基準点についても同様である。
【０１２７】
（４）パターンマッチング方法
実施の形態２のフローチャートは、実施の形態１のフローチャート（図８参照）と略同じである。図２２は、実施の形態２のフローチャートの一例である。図２３は、実施の形態２を説明するパターン図である。
【０１２８】
図２２で破線により囲われたステップは、実施の形態１のフローチャートにも存在するステップである。破線で囲われたステップで実行される処理は、ステップＳ１１２を除き、実施の形態１で行われる処理と略同じである。
【０１２９】
以下の説明では、実施の形態１と共通するステップの説明は省略または簡単にする。
【０１３０】
（４−１）リファレンス・データおよび設計データの取得工程（Ｓ２〜Ｓ４）
まずユーザが、リファレンスＩＤを入力部３４に入力する（Ｓ２）。
【０１３１】
ユーザが入力するリファレンスＩＤは例えば、内抜きＲデータ４６の識別子４８（例えば、「a-2」；図６参照）と、内包Ｒパターンの識別子１２８（例えば、「b-1」；図２１（ａ）参照）と、第１位置情報の識別子１３４（例えば、「c-1」；図２１（ｂ）参照）である。
【０１３２】
ステップＳ２で入力される識別子１２８に対応する内包Ｒパターン（第２リファレンス・パターン）は、同じくステップＳ２で入力される識別子４８に対応する内抜きＲパターン（第１リファレンス・パターン）に囲われるパターンである。
【０１３３】
リファレンスＩＤが入力されると演算部２８は、入力された識別子４８,１２８,１３４それぞれに対応するリファレンス・データを補助記憶部３２から読み出して、主記憶部３０に記録する（Ｓ４）。
【０１３４】
演算部２８は更に、例えば集積回路の設計データ（すなわち、設計パターン）を補助記憶部３２から読み出し、主記憶部３０に記録する（Ｓ４）。
【０１３５】
（４−２）リファレンス・データの組みわせ（Ｓ１０２）
演算部２８は、ステップＳ２で入力されたリファレンス・データを組み合わせる。例えば演算部２８は、内抜きＲデータ(-100 -100, -100 100, 100 100, 100 -100)と、内包Ｒデータ[-60 -60, -60 60, 60 60, 60 -60]と、第１位置情報{40 40}との組み合わせ（以下、第１組合せＲデータと呼ぶ）を生成する。第１組合せＲデータは例えば、(-100 -100, -100 100, 100 100, 100 -100), [-60 -60, -60 60, 60 60, 60 -60], {40 40}である。
【０１３６】
（４−３）未処理要素パターンの抽出（Ｓ６〜Ｓ８）
演算部２８は、後段の処理（Ｓ１０〜Ｓ１２）が済んでいない要素パターンが設計パターンに存在するか否かを判定する（Ｓ６）。
【０１３７】
未処理の要素パターンが存在する場合、演算部２８は設計データから未処理の要素パターンを抽出する（Ｓ８）。未処理の要素パターンが存在しない場合、演算部２８はステップＳ１６に進む。
【０１３８】
以下の説明では特に断らない限り、図２３（ａ）に示すように、内抜きパターン６に囲われた内包パターン１１０が設計パターンに存在する場合するものとする。さらにステップＳ４で読み込むリファレンス・パターンには、図２３（ｂ）に示すように、内抜きＲパターン５０に囲われた内包Ｒパターン１３０が存在するものとする。
【０１３９】
（４−４）内抜きパターンの有無判定（Ｓ１０）
演算部２８は、ステップＳ８で抽出した要素パターン７２（第１サンプル・パターン）の内側に内抜きパターン６が存在するか否かを判定する（Ｓ１０）。抽出した要素パターン７２の内側に内抜きパターン６が存在する場合、演算部２８はステップＳ１１２に進む。抽出した要素パターン７２の内側に内抜きパターン６が存在しない場合、演算部２８はステップＳ６に戻る。
【０１４０】
（４−５）一致判定（Ｓ１１２）
図２４及び２５は、実施の形態２の一致判定工程（Ｓ１１２）のフローチャートの一例である。図２４及び２５は、実施の形態１のフローチャート（図１３参照）に類似している。図２４及び２５で破線により囲われたステップは、実施の形態１のフローチャート（図１３参照）にも存在するステップである。破線で囲われたステップで実行される処理は、実施の形態１で行われる処理と略同じである。
【０１４１】
（４−５−１）内抜きパターンの抽出（Ｓ２０）
演算部２８は、ステップＳ８（図２２参照）で抽出された要素パターン７２（第１サンプル・パターン）から内抜きパターン６を抽出する。
【０１４２】
（４−５−２）判定（Ｓ２２）
演算部２８は、第１組合せＲデータを参照して、ステップＳ４で読み込んだ内抜きＲパターン５０（図２３（ｂ）参照）と、ステップＳ２０で抽出した内抜きパターン６（図２３（ａ）参照）とが一致するか判定する。
【０１４３】
内抜きパターン６と内抜きＲパターン５０が一致すると判定した場合、演算部２８はステップＳ２０２に進む。内抜きパターン６と内抜きＲパターン５０が一致しないと判定した場合、演算部２８は一致判定Ｓ１１２を終了しステップＳ１４（図２２参照）に進む。
【０１４４】
（４−５−３）内包パターンの有無判定（Ｓ２０２）
演算部２８は、内抜きパターン６（すなわち、第１サンプル・パターン７２の第１内周８０ａ）に囲われた内包パターン１１０（以下、第２サンプル・パターンと呼ぶ）が設計パターンに存在するか判定する（Ｓ２０２）。内包パターン１１０が存在する場合、演算部２８はステップＳ２０４に進む。内包パターン１１０が存在しない場合、演算部２８はステップＳ２０６に進む。
【０１４５】
具体的には演算部２８は例えば、設計パターン内で、内抜きパターン６の内側に要素パターンを探索する。探索の結果、内抜きパターン６の内側に要素パターンが検出された場合、演算部２８は内包パターンが存在すると判定する。内抜きパターン６の内側に位置する要素パターンが検出されなかった場合、演算部２８は内包パターンが存在しないと判定する。
【０１４６】
（４−５−４）内包Ｒデータの有無判定（Ｓ２０４）
演算部２８は、第１組合せＲデータデータを参照して、ステップＳ１０２で生成した第１組合せＲデータに内包Ｒデータ１２４が存在するか判定する（Ｓ２０４）。内包Ｒデータ１２４が存在する場合、演算部２８はステップ２０８に進む。内包Ｒデータ１２４が存在しない場合、演算部２８は一致判定Ｓ１１２を終了し、ステップＳ１４（図２２参照）に進む。
【０１４７】
（４−５−５）内包パターンの抽出（Ｓ２０８）
演算部２８は、内抜きパターン６の内側に存在する内包パターン１１０（第２サンプル・パターン）を設計データから抽出する。
【０１４８】
（４−５−６）内包パターンの一致判定（Ｓ２１０）
演算部２８は、ステップＳ２０８で抽出した内包パターン１１０（第２サンプル・パターン）の第２外周７８ｂと、ステップＳ４で読み出した内包Ｒパターン１３０（第２リファレンス・パターン）が一致するか判定する（Ｓ２１０）。
【０１４９】
内包パターン１１０の第２外周７８ｂと内包Ｒパターン１３０が一致する場合、演算部２８はステップＳ２１２に進む。内包パターン１１０の第２外周７８ｂと内包Ｒパターン１３０が一致しない場合、演算部２８は一致判定Ｓ１１２を終了し、ステップＳ１４に進む（図２２参照）。
【０１５０】
（４−５−７）内包パターン位置の算出（Ｓ２１２）
演算部２８は、（内包パターン１１０の）第２外周７８ｂの内抜きパターン６に対する位置（以下、第１位置と呼ぶ）を算出する。
【０１５１】
具体的には、演算部２８は例えば、内抜きパターン６の基準点から内包パターンの基準点に至るベクトル１３８を算出する。
【０１５２】
内抜きパターン６の基準点は例えば、内抜きパターン６に頂点のうちｘ座標が最小で更にｙ座標が最小の頂点である。内包パターン１１０の基準点は例えば、内包パターン１１０の頂点のうちｘ座標が最小で更にｙ座標が最小の頂点である。後述する外形パターン等の基準点についても同様である。
【０１５３】
（４−５−８）内包パターン位置の判定（Ｓ２１４）
演算部２８は、第１組合せＲデータ内の第１位置情報１３２（例えば、ベクトル１３６）と内包パターン１１０の第１位置（例えば、ベクトル１３８）が一致するか判定する（Ｓ２１４）。第１組合せＲデータ内の第１位置情報１３２と内包パターン１１０の第１位置が一致する場合、演算部２８はステップＳ２１６に進む。第１位置情報１３２と内包パターン１１０の第１位置が一致しない場合、演算部２８は一致判定Ｓ１１２を終了し、ステップＳ１４に進む。
【０１５４】
（４−５−９）記録（Ｓ２１６）
演算部２８は、ステップＳ２０で抽出した内抜きパターン６のデータとステップＳ２０８で抽出した内包パターン１１０のデータを補助記憶部３２に記録する（Ｓ２１６）。その後、演算部２８はステップＳ１４（図２２参照）に進む。
【０１５５】
（４−５−１０）内包Ｒデータの第２有無判定（Ｓ２０６）
演算部２８は、ステップＳ２０２で内包パターン１１０が存在しないと判定した場合、第１組合せＲデータ内に内包Ｒデータ１２４が存在するか判定する（Ｓ２０６）。
【０１５６】
第１組合せＲデータ内に内包Ｒデータ１２４が存在する場合、演算部２８は一致判定Ｓ１１２を終了し、ステップＳ１４に進む。内包Ｒデータ１２４が存在しない場合、演算部２８はステップＳ２１６に進み、内抜きパターン６のデータを記録する。
【０１５７】
以上により、一致判定（Ｓ１１２）の説明は終了する。
【０１５８】
（４−６）未判定内抜きパターンの有無判定（Ｓ１４）
演算部２８は、ステップＳ８で抽出した要素パターン７２に一致判定（ステップＳ１１２）を行っていない内抜きパターンが存在するか否か判定する（図２２参照）。
【０１５９】
一致判定を行っていない内抜きパターンが存在する場合には、演算部２８はステップＳ１１２に戻る。一致判定を行っていない内抜きパターンが存在しない場合、演算部２８はステップＳ６に進む。
【０１６０】
（４−７）検出パターンの出力（Ｓ１６）
演算部２８は、ステップＳ２１６で記録したデータを出力する。
【０１６１】
上述したように演算部２８は、内包Ｒパターン１３０の位置ベクトル１３６（すなわち、第１位置情報）と内包パターン１１０の位置ベクトル１３８（すなわち、第１位置）とを比較する（図２３参照）。したがって、実施の形態２によれば内包パターンの位置を反映したマッチングを行うことができる。
【０１６２】
以上の例ではステップＳ２で、内抜きＲデータ４６の識別子４８と内包Ｒデータ１２４の識別子１２８と第１位置情報１３２の識別子１３４とが入力される。しかし、内包Ｒデータ１２４の識別子１２８と第１位置情報１３２の識別子１３４は入力されなくてもよい。その場合には、実施の形態１と同様、内抜きパターンのパターンマッチングだけが行われる。
【０１６３】
（実施の形態３）
実施の形態３は、実施の形態１に類似している。したがって、実施の形態１と共通する部分の説明は、省略または簡単にする。実施の形態３によれば、外形パターンの形状および位置を反映したパターンマッチングを行うことができる。
【０１６４】
（１）パターンマッチング装置
実施の形態３のパターンマッチング装置は、図４を参照して説明した実施の形態１のパターンマッチング装置２６と略同じである。ただし補助記憶部３２には、実施の形態３に対応したパターンマッチング・プログラムが記録されている。補助記憶部３２には更に、実施の形態３に対応したリファレンス・ライブラリが記録される。
【０１６５】
（２）外形パターン
外形パターン９（図１０（ａ）参照）は、要素パターン７２（すなわち、第１サンプル・パターン）を一周する経路７６（図１０（ｃ）参照）から重複区間（例えば、区間ｅ⇔ｄ）を削除して得られるパターンのうち外側のパターンである。
【０１６６】
（３）リファレンス・ライブラリ
図２６は、実施の形態３のリファレンス・ライブラリ１４０とリファレンス・パターンとの一例を説明する図である。図２６（ａ）に示すように、リファレンス・ライブラリ１４０には、内抜きパターン表４４と外形パターン表１４２と第２位置データ表１２２ｂが登録されている。内抜きパターン表４４は、実施の形態１で説明したものである。
【０１６７】
図２７は、外形パターン表１４２および第２位置データ表１２２ｂの一例を説明する図である。図２７（ａ）に示すように外形パターン表１４２には、複数の異なる外形パターン９（図１０（ａ）参照）に対応するデータ１４８（以下、外形Ｒデータと呼ぶ）が記録されている。外形パターン表１４２には更に、外形Ｒデータ１４８に対応する識別子１５０が記録されている。
【０１６８】
図２６（ｂ）には、内抜きＲパターン５０の頂点Ab,Bb,Cb,Dbが示されている。図２６（ｂ）には更に、外形Ｒパターン１５２の頂点Ad,Bd,Cd,Ddが示されている。図２６（ｂ）には更に、外形Ｒパターン１５２の各頂点を通って外形Ｒパターン１５２を一周する経路１５４が示されている。
【０１６９】
外形Ｒデータ１４８は、経路１５４が各頂点Ad,Bd,Cd,Ddを通る順に頂点Ad,Bd,Cd,Ddの座標を配列した座標列である。外形Ｒデータ１４８の両端の括弧[]は、外形Ｒパターンのデータであることを示している。
【０１７０】
図２７（ｂ）に示すように、第２位置データ表１２２ｂには、外形Ｒパターン１５２（第３リファレンス・パターン）の内抜きＲパターン５０（第１リファレンス・パターン）に対する位置を示すデータ１５６（以下、第２位置情報と呼ぶ）が記録されている。第２位置データ表１２２ｂ（図２７（ｂ）参照）には更に、第２位置情報１５６に対応する識別子１５８が記録されている。
【０１７１】
第２位置データ表１２２ｂは例えば、内抜きＲパターン５０の基準点（例えば、頂点Ab）から外形Ｒパターンの基準点（例えば、頂点Aｄ）に至るベクトル１６０の座標である（図２６（ｂ）参照）。第２位置情報１５６（図２７（ｂ）参照）の両端の括弧{}は、位置情報であることを示している。
【０１７２】
（４）パターンマッチング方法
実施の形態３のフローチャートは、実施の形態２のフローチャート（図２２参照）と略同じである。以下の説明では、実施の形態２と共通するステップの説明は省略または簡単にする。また以下の説明は、図２２に基づいて行われる。
【０１７３】
（４−１）リファレンス・データおよび設計データの取得工程（Ｓ２〜Ｓ４）
まずユーザが、リファレンスＩＤを入力部３４に入力する（Ｓ２；図２２参照）。
【０１７４】
ユーザが入力するリファレンスＩＤは例えば、内抜きＲデータ４６の識別子４８（例えば、「a-2」；図６参照）と、外形Ｒデータの識別子１５０（例えば、「d-1」）と、第２位置情報の識別子１５８（例えば、「e-2」；図２７（ｂ）参照）である。
【０１７５】
識別子１５０に対応する外形Ｒパターン１５２（第３リファレンス・パターンと呼ぶ）は、識別子４８に対応する内抜きＲパターン５０（第１リファレンス・パターン）を囲むパターンである。
【０１７６】
リファレンスＩＤが入力されると演算部２８は、入力された識別子４８,１５０,１５８それぞれに対応するリファレンス・データ４６,１４８，１５６を補助記憶部３２から読み出し、主記憶部３０に記録する（Ｓ４）。
【０１７７】
演算部２８は更に、例えば集積回路の設計データ（すなわち、設計パターン）を補助記憶部３２から読み出し、主記憶部３０に記録する（Ｓ４）。
【０１７８】
（４−２）リファレンス・データの組みわせ（Ｓ１０２）
演算部２８は、ステップＳ２で入力されたリファレンス・データを組み合わせる。例えば演算部２８は、内抜きＲデータ(-100 -100, -100 100, 100 100, 100 -100)と、外形Ｒデータ[-150 -150, -150 150, 150 150, 150 -150]と、第２位置情報{-50 -50}との組み合わせ（以下、第２組合せＲデータと呼ぶ）を生成する。第２組合せＲデータは例えば、[-150 -150, -150 150, 150 150, 150 -150], (-100 -100, -100 100, 100 100, 100 -100), {-50 50}である。
【０１７９】
（４−３）未処理要素パターンの有無判定〜内抜きパターンの有無判定（Ｓ６〜Ｓ１０）
演算部２８は、設計パターンから要素パターンを抽出し、抽出した要素パターンの内側に内抜きパターンが存在するか判定する。内抜きパターン６が存在する場合、演算部２８はステップＳ５１２に進む。内抜きパターン６が存在しない場合、演算部２８はステップＳ６に戻る。
【０１８０】
（４−４）一致判定（Ｓ５１２）
図２８及び２９は、実施の形態３の一致判定工程（Ｓ５１２；図２２参照）のフローチャートの一例である。図２８及び２９は、実施の形態１のフローチャート（図１３参照）に類似している。
【０１８１】
図２８及び２９で破線により囲われたステップは、実施の形態１のフローチャート（図１３参照）にも存在するステップである。破線で囲われたステップの処理は、実施の形態１で行われる処理と略同じである。
【０１８２】
（４−４−１）内抜きパターンおよび外形パターンの生成（Ｓ３０２）
演算部２８は、ステップ８で抽出した要素パターン７２（第１サンプル・パターン）から内抜きパターン６（図１０（ａ）参照）と外形パターン９を生成する。具体的には演算部２８は、経路７６から重複区間（e⇔ｄ）を削除して、内抜きパターン６と外形パターン９を生成する。
【０１８３】
（４−４−２）判定（Ｓ２２）
演算部２８は、ステップＳ３０２で生成した内抜きパターン６と、ステップＳ４で読み出した内抜きＲパターン５０（図２６（ｂ）参照）とが一致するか判定する。
【０１８４】
内抜きパターン６と内抜きＲパターン５０が一致すると判定した場合、演算部２８はステップＳ３０４に進む。内抜きパターン６と内抜きＲパターン５０が一致しないと判定した場合、演算部２８は一致判定Ｓ５１２を終了し、ステップＳ１４（図２２参照）に進む。
【０１８５】
（４−４−３）外形Ｒデータの有無判定（Ｓ３０４）
演算部２８は、ステップＳ１０２で生成した第２組合せＲデータに外形Ｒデータ１４８が存在するか判定する（Ｓ３０４）。外形Ｒデータ１４８が存在する場合、演算部２８はステップＳ３０６に進む。外形Ｒデータ１４８が存在しない場合、演算部２８はステップＳ３1２に進む。
【０１８６】
（４−４−４）外形パターンの一致判定（Ｓ３０６）
演算部２８は、ステップＳ３０２で生成した外形パターン９と、ステップＳ４で読み出した外形Ｒパターン１５２（第３リファレンス・パターン）が一致するか判定する。
【０１８７】
外形パターン９と外形Ｒパターン１５２が一致する場合、演算部２８はステップＳ３０８に進む。外形パターン９と外形Ｒパターン１５２が一致しない場合、演算部２８は一致判定Ｓ５１２（図２２参照）を終了し、ステップＳ１４に進む。
【０１８８】
（４−４−５）外形パターン位置の算出（Ｓ３０８）
演算部２８は、外形パターン９の内抜きパターン６に対する位置（以下、第２位置と呼ぶ）を算出する。具体的には演算部２８は例えば、図１０（ｃ）に示すように、内抜きパターン６の基準点（例えば、頂点ｈ）から外形パターン９の基準点（例えば、頂点ａ）に至るベクトル１６１を算出する。
【０１８９】
（４−４−６）外形パターン位置の判定（Ｓ３１０）
演算部２８は、第２組合せＲデータ内の第２位置情報１５６（例えば、ベクトル１６０）とステップＳ３０８で算出した外形パターン９の第２位置（例えば、ベクトル１６１）が一致するか判定する（Ｓ３１０）。
【０１９０】
第２組合せＲデータ内の第２位置情報１５６と外形パターン９の第２位置が一致する場合、演算部２８はステップＳ３１２に進む。第２組合せＲデータ内の第２位置情報１５６と外形パターン９の第２位置が一致しない場合、演算部２８は一致判定Ｓ５１２を終了し、ステップＳ１４に進む。
【０１９１】
（４−４−７）記録（Ｓ３１２）
演算部２８は、ステップＳ３０２で抽出した内抜きパターン６および外形パターン９のデータを補助記憶部３２に記録する。
【０１９２】
以上により、一致判定Ｓ５１２は終了する。
【０１９３】
（４−５）未判定内抜きパターンの有無判定（Ｓ１４）
演算部２８は、図２２に示すように、ステップＳ８で抽出した要素パターン７２に一致判定Ｓ５１２を行っていない内抜きパターンが存在するか否か判定する（Ｓ１４）。
【０１９４】
一致判定を行っていない内抜きパターン６が存在する場合、演算部２８はステップＳ５１２に戻る。一致判定を行っていない内抜きパターン６が存在しない場合、演算部２８はステップＳ６に進む。
【０１９５】
（４−６）検出パターンの出力（Ｓ１６）
演算部２８は、ステップＳ３１２で記録したデータを出力する。
【０１９６】
上述したように演算部２８は、外形パターン９を外形Ｒパターン１５２（第３リファレンス・パターン）と比較する。演算部２８は更に、外形パターン９の第２位置と外形Ｒパターン１５２の第２位置情報とを比較する。したがって実施の形態３によれば、外形パターン９の形状および位置を反映した内抜きパターンのマッチングを行うことができる。
【０１９７】
なお、実施の形態２と実施の形態３とを組み合わせて、外形パターン９および内包パターン１１０の存在を反映したパターンマッチングを行ってもよい。
【０１９８】
（実施の形態４）
実施の形態４は、実施の形態１及び２に類似している。したがって、実施の形態１又は２と共通する部分の説明は、省略または簡単にする。実施の形態４によれば、内包パターンの内側に内抜きパターン（以下、第２内抜きパターンと呼ぶ）が存在する場合にも、パターン・マッチングを行うことができる。
【０１９９】
（１）パターンマッチング装置
実施の形態４のパターンマッチング装置は、図４を参照して説明した実施の形態１のパターンマッチング装置２６と略同じである。ただし補助記憶部３２には、実施の形態４に対応したパターンマッチング・プログラムが記録されている。さらに補助記憶部３２には、実施の形態４に対応したリファレンス・ライブラリが記録される。
【０２００】
（２）リファレンス・ライブラリ
図３０は、実施の形態４のリファレンス・ライブラリ１６４とリファレンス・パターンとの一例を説明する図である。図３０（ａ）に示すように、リファレンス・ライブラリ１６４には、第１内抜きパターン表４４ａと内包パターン表１２０と第１位置データ表１２２ａと第２内抜きパターン表４４ｂと第３位置データ表１２２ｃとが登録されている。
【０２０１】
第１内抜きパターン表４４ａは、実施の形態１で説明した内抜きパターン表４４と同じものである。第１内抜きパターン表４４ａに記録されている内抜きＲデータ４６を以下、第１内抜きＲデータと呼ぶ。第１内抜きＲデータに対応する内抜きパターンを以下、第１内抜きパターンと呼ぶ。
【０２０２】
第１内抜きＲパターンおよび第１内抜きＲデータは、それぞれ実施の形態１の内抜きＲパターン５０および内抜きＲデータ４６と同じものである。内包パターン表１２０および第１位置データ表１２２ａは、実施の形態２で説明したものである。
【０２０３】
第２内抜きパターン表４４ｂは、第１内抜きパターン表４４ａと同じ構造を有している。ただし第２内抜きパターン表４４ｂには、内包Ｒパターン１３０（図３０（ｂ）参照）の内側に存在する内抜きＲパターン１７０のデータが登録されている。内包Ｒパターン１３０の内側に存在する内抜きＲパターンを以下、第２内抜きＲパターンと呼ぶ。第２内抜きＲパターン１７０のデータを以下、第２内抜きＲデータと呼ぶ。
【０２０４】
図３０（ｂ）には、第２内抜きＲパターン１７０とその頂点Ac,Bc,Cc,Dcが示されている。図３０（ｂ）には更に、第２内抜きＲパターン１７０を一周する経路１７２が示されている。第２内抜きＲデータは、経路１７２が各頂点Ac,Bc,Cc,Dcを通る順に各頂点Ac,Bc,Cc,Dcの座標を配列した座標列である。
【０２０５】
第３位置データ表１２２ｃは、第１位置データ表１２２ａと同じ構造を有している。第３位置データ表１２２ｃには、内抜きＲパターン５０に対する第２内抜きＲパターン１７０の位置を示すデータ（以下、第３位置情報と呼ぶ）が登録されている。
【０２０６】
第３位置情報は例えば、第１内抜きＲパターン５０の基準点（例えば、頂点Ab）から第２内抜きＲパターン１７０の基準点（例えば、頂点Ac）に至るベクトル１７４の座標である。
【０２０７】
（３）パターンマッチング方法
実施の形態４のフローチャートは、実施の形態２のフローチャート（図２２参照）と略同じである。以下の説明では、実施の形態２と共通するステップの説明は省略または簡単にする。また以下の説明は、図２２に基づいて行われる。図３１は、実施の形態４のパターンマッチング方法を説明する図である。
【０２０８】
（３−１）リファレンス・データおよび設計データの取得工程（Ｓ２〜Ｓ４）
先ずユーザが、リファレンスＩＤを入力部３４に入力する（Ｓ２；図２２参照）。
【０２０９】
ユーザが入力するリファレンスＩＤには例えば、第１内抜きＲデータ、内包Ｒデータ、および第２内抜きＲデータ、第１位置情報、および第２位置情報それぞれの識別の識別子である。
【０２１０】
リファレンスＩＤが入力されると演算部２８は、入力された識別子それぞれに対応するリファレンス・データを補助記憶部３２から読み出して、主記憶部３０に記録する（Ｓ４）。演算部２８は更に、例えば集積回路の設計データを補助記憶部３２から読み出して、主記憶部３０に記録する（Ｓ４）。
【０２１１】
以下の説明では特に断らない限り、図３１（ａ）に示すように、要素パターン７２の内側に、第１内抜きパターン６ａと内包パターン１７６と第２内抜きパターン６ｂが存在する場合について説明する。
【０２１２】
さらに特に断らない限りステップＳ４では、図３１（ｂ）に示すように、第1内抜きＲパターン５０ａと、第1内抜きＲパターン５０ａの内側に位置する内包Ｒパターン１３０と、内包Ｒパターン１３０の内側に位置する第２内抜きＲパターン５０ｂとが読み込まれるものとする。
【０２１３】
（３−２）リファレンス・データの組みわせ（Ｓ１０２）
演算部２８は、ステップＳ２で入力されたリファレンス・データを組み合わせて、第３組合せＲデータを生成する。第３組合せＲデータは、第１内抜きＲデータ、内包Ｒデータ、第２内抜きＲデータ、第１位置情報、および第２位置情報がこの順番に配列されたデータ列である。
【０２１４】
（３−３）未処理要素パターンの有無判定〜内抜きパターンの有無判定（Ｓ６〜Ｓ１０）
演算部２８は、設計パターンから要素パターン７２を抽出し、抽出した要素パターン７２の内側に未処理の第１内抜きパターン６ａが存在するか判定する。第１内抜きパターン６ａが存在する場合、演算部２８はステップＳ６１２に進む。未処理の第１内抜きパターン６ａが存在しない場合、演算部２８はステップＳ６に戻る。
【０２１５】
（３−４）一致判定（Ｓ６１２）
図３２及び３３は、実施の形態４の一致判定工程（Ｓ６１２；図２２参照）のフローチャートの一例である。図３２及び３３は、実施の形態２のフローチャート（図２４及び２５参照）に類似している。
【０２１６】
図３２及び３３で破線により囲われたステップは、実施の形態２のフローチャートにも存在する。破線で囲われたステップで実行される処理は、実施の形態２で行われる処理と略同じである。
【０２１７】
（３−５−１）第１内抜きパターンの抽出（Ｓ２０）
演算部２８は、ステップＳ８で抽出した要素パターン７２から第１内抜きパターン６ａ（図３１（ａ）参照）を抽出する。
【０２１８】
（３−５−２）第１内抜きパターンの一致判定（Ｓ２２）
演算部２８は、第３組合せＲデータを参照して、ステップＳ２０で抽出した第１内抜きパターン６ａと、ステップ４で読み込んだ第１内抜きＲパターン５０ａとが一致するか判定する（Ｓ２２）。
【０２１９】
第１内抜きパターン６ａと第1内抜きＲパターン５０ａが一致すると判定した場合、演算部２８はステップＳ２０２に進む。第１内抜きパターン６ａと第1内抜きＲパターン５０ａが一致しないと判定した場合、演算部２８は一致判定Ｓ６１２を終了し、ステップＳ１４（図２２参照）に進む。
【０２２０】
（３−５−３）内包パターンの有無判定（Ｓ２０２）
演算部２８は、ステップＳ４で読み込んだ設計パターンに内包パターン１７６が存在するか判定する（Ｓ２０２）。
【０２２１】
内包パターン１７６が存在する場合、演算部２８はステップＳ４０２に進む。内包パターン１７６が存在しない場合、演算部２８は後述するステップＳ４０４に進む。
【０２２２】
（３−５−４）内包Ｒデータの有無判定（Ｓ４０２）
演算部２８は、ステップＳ１０２で生成した第３組合せＲデータに内包Ｒデータが存在するか判定する（Ｓ４０２）。
【０２２３】
内包Ｒデータが存在する場合、演算部２８はステップ２０８に進む。内包Ｒデータが存在しない場合、演算部２８は一致判定Ｓ６１２を終了し、ステップＳ１４に進む。
【０２２４】
（３−５−５）内包パターンの抽出（Ｓ２０８）
演算部２８は、内包パターン１７６を設計データから抽出する（Ｓ２０８）。
【０２２５】
（３−５−６）内包パターンの一致判定（Ｓ２１０）
演算部２８は、第３組合せＲデータを参照して、ステップＳ４で読み出した内包Ｒパターン１３０とステップＳ２０８で抽出した内包パターン１７６の外周とが一致するか判定する。
【０２２６】
両者が一致する場合、演算部２８はステップＳ４０６に進む。両者が一致しない場合、演算部２８は一致判定Ｓ６１２を終了し、ステップＳ１４に進む（図２２参照）。
【０２２７】
（３−５−７）第２内抜きパターンの有無判定（Ｓ４０６）
演算部２８は、ステップＳ２０８で抽出した内包パターン１７６の内側に第２内抜きパターン６ｂが存在するか判定する（Ｓ４０６）。
【０２２８】
第２内抜きパターン６ｂが存在する場合、演算部２８はステップＳ４０８に進む。第２内抜きパターン６ｂが存在しない場合、演算部２８はステップＳ４１０に進む。
【０２２９】
（３−５−８）第２内抜きＲデータの有無判定（Ｓ４０８）
演算部２８は、第３組合せＲデータを参照して、第２内抜きＲデータが存在するか判定する（Ｓ４０８）。
【０２３０】
第２内抜きＲデータが存在する場合、演算部２８はステップＳ２０に戻る。第２内抜きＲデータが存在しない場合、演算部２８は一致判定Ｓ６１２を終了する。図３１（ｂ）に示す例では、第２内抜きＲパターン５０ｂが存在するので、演算部２８はステップＳ２０に戻る。演算部２８はステップＳ２０に戻ると、第２内抜きパターン６ｂを抽出する。
【０２３１】
次に演算部２８は、第２内抜きＲパターン５０ｂと第２内抜きパターン６ｂが一致するか判定する（Ｓ２２）。両者が一致する場合、演算部２８はステップＳ２０２に進む。
【０２３２】
演算部２８はステップＳ２０２に進むと、第２内抜きパターン６ｂ内に内包パターンが存在するか判断する。図３１（ａ）に示す例では、第２内抜きパターン６ｂ内に内包パターンは存在しない。したがって演算部２８は、ステップＳ４０４に進む。
【０２３３】
次に演算部２８は、第３組合せＲデータを参照して、第２内抜きＲパターン５０ｂ内に内包Ｒパターンが存在するか判定する（Ｓ４０４）。図３１（ｂ）に示す例では、第２内抜きＲパターン５０ｂ内に内包Ｒパターンは存在しない。したがって演算部２８は、（端子Ｃ２を介して）ステップＳ４１２に進む。
【０２３４】
なお図３２のフローチャートでは、ステップＳ４０４の後に第１内抜きＲパターン５０ａ内に内包Ｒパターン１３０が存在するか判定するステップが省略されている。第１内抜きＲパターン５０ａ内に内包Ｒパターン１３０が存在しない場合、後述するように演算部２８はステップＳ２１６に進む。
【０２３５】
（３−５−９）内包パターン位置／第２内抜きパターン位置の算出（Ｓ４１２）
演算部２８は、第１内抜きパターン６ａに対する内包パターン１７６の第１位置を算出する。第２内抜きパターン６ｂが存在する場合には、演算部２８は更に、第１内抜きパターン６ａに対する第２内抜きパターン６ｂの第３位置を算出する。
【０２３６】
（３−５−１０）内包パターン／第２内抜きパターンの位置の判定（Ｓ４１４）
演算部２８は、内包Ｒパターン１３０の第１位置情報と内包パターン１７６の第１位置が一致するか判定する。第２内抜きパターン６ｂが存在する場合には、演算部２８は更に、第２内抜きＲパターン５０ｂの第３位置情報と第２内抜きパターン６ｂの第３位置が一致するか判定する。
【０２３７】
これらのデータが一致すると判定する場合、演算部２８は、ステップＳ２１６に進む。一致しないと判定した場合には、演算部２８は一致判定（Ｓ６１２）を終了し、ステップＳ１４に進む（図８参照）。
【０２３８】
（３−５−１１）記録（Ｓ２１６）
演算部２８は、ステップＳ２０で抽出した内抜きパターン（例えば、第１及び第２内抜きパターン６ａ，６ｂ）のデータと、ステップＳ２０８で抽出した内包パターン１７６のデータとを補助記憶部３２に記録する（Ｓ２１６）。
【０２３９】
以上により、一致判定Ｓ６１２は終了する。
【０２４０】
（３−６）未判定内抜きパターンの有無判定（Ｓ１４）
一致判定Ｓ６１２が終了すると演算部２８は、ステップＳ８で抽出した要素パターン７２内に一致判定（ステップＳ６１２）を行っていない第１内抜きパターン６ａが存在するか否か判定する（図２２参照）。
【０２４１】
一致判定を行っていない第１内抜きパターン６ａが存在する場合には、演算部２８はステップＳ６１２に戻る（図２２参照）。未判定の内抜きパターンが存在しない場合、演算部２８はステップＳ６に戻る。
【０２４２】
演算部２８はステップＳ６に戻ると、未処理の要素データが存在しないか判定する。未処理の要素データが存在しない場合、演算部２８はステップＳ１６に進む。
【０２４３】
（３−７）検出パターンの出力（Ｓ１６）
演算部２８は、ステップＳ２１６で記録したデータを出力して、プログラムを終了する。
【０２４４】
次に、図１０（ａ）に示すうに、第１内抜きパターン６ａ（図３１（ａ）参照）の内側に内包パターン１７６が存在しない場合について説明する。今、ステップＳ２（図２２参照）では、第１内抜きＲデータの識別子だけが入力されるとする。
【０２４５】
この場合、第１内抜きパターン６ａと第1内抜きＲパターン５０ａが一致すると（Ｓ２２）、演算部２８はステップＳ２０２（図３２参照）を介してステップＳ４０４に進む。すると演算部２８は、第３組合せＲデータに内包Ｒデータが存在しないので（端子Ｃ１を介して）ステップ２１６に進み、第１内抜きパターン６ａのデータを記録する。
【０２４６】
次に、図２３（ａ）に示すように、第２内抜きパターン６ｂ（図３１（ａ）参照）が存在しない場合について説明する。今、ステップＳ２（図２２参照）では、第１内抜きＲデータの識別子と、内包Ｒデータの識別子と、第１位置情報とが入力されるとする。
【０２４７】
この場合、第１内抜きパターン６ａと第1内抜きＲパターン５０ａが一致し更に内包パターン１７６の外周と内包Ｒパターン１３０とが一致すると演算部２８は、ステップＳ２０〜Ｓ４０６（図３２〜３３）を介してステップＳ４１０に進む。すると第２内抜きＲデータが存在しないので、演算部２８はステップＳ４１２を介して、ステップ４１４に進すむ。ステップ４１４に進すむと、演算部２８は内包パターン１７６の第１位置と内包Ｒパターン１３０の第１位置情報を比較する。両者が一致する場合には、演算部は第１内抜きパターン６ａと内包パターン１７６のデータを記録する（Ｓ２１６）。両者が一致しない場合、演算部２８は一致判定Ｓ６１２を終了する。
【０２４８】
以上のように実施の形態４によれば、内包パターン１７６の内側に第２内抜きパターン６ｂが存在する場合にも、第２内抜きパターン６ｂの存在を反映したパターンマッチングを行うことができる。
【０２４９】
（実施の形態５）
実施の形態５は、実施の形態２のパターンマッチング方法を利用したパターン設計方法である。したがって、実施の形態２と共通する部分の説明は、省略または簡単にする。実施の形態５によれば、ホットスポットが発生し難いパターンを設計することができる。
【０２５０】
（１）パターンマッチング装置
実施の形態５のマッチング装置は、図４を参照して説明した実施の形態１のパターン・マッチング装置２６と略同じである。ただし補助記憶部３２には、実施の形態２のパターンマッチング・プログラム等に加え、実施の形態５のパターン設計方法を実行するプログラムが記録されている。
【０２５１】
（２）リファレンス・ライブラリ
実施の形態５のリファレンス・ライブラリの構成は、実施の形態２のリファレンス・ライブラリ１１８（図２０参照）と同じである。図３４は、実施の形態５のリファレンス・ライブラリ１１８に登録されるデータの一例を説明する図である。
【０２５２】
図３４（ａ）には、集積回路（以下、第２集積回路と呼ぶ）の設計パターン（以下、第２設計パターンと呼ぶ）に含まれ、ホットスポットに対応する領域１８４（以下、ホットスポット領域と呼ぶ）を内周８０ｂ（以下、第２内周と呼ぶ）が囲う要素パターン１８２が示されている。図３４には更に、上記ホットスポットを発生させる内包パターン１８８が示されている。
【０２５３】
ホットスポットとは、リソグラフィプロセスマージンが不足し、転写パターン（すなわち、レジストパターン）の不良が予測される箇所である。図３４に示すホットスポット領域１８４は、転写パターン同士が接近して間隔が狭くなるブリッジング（すなわち、ショート）が起き易いホットスポットに対応している。
【０２５４】
図３４（ｂ）には、内抜きＲパターン１８６と内包Ｒパターン２１０が示されている。リファレンス・ライブラリ１１８（図２０参照）の内抜きパターン表４４には、第２内周８０ｂに対応する内抜きＲパターン１８６（以下、第１リファレンス・パターンと呼ぶ）のデータが、内抜きＲデータ４６（図６参照）として登録されている。
【０２５５】
さらに内包パターン表１２０には、ホットスポットを発生させる内包パターン１８８に対応する内包Ｒパターン２１０（以下、第２リファレンス・パターンと呼ぶ）のデータが、内包Ｒデータ１２４（図２１参照）として登録されている。さらに第１位置情報表１２２aには、内抜きＲパターン１８６（第１リファレンス・パターン）の基準点から内包Ｒパターン２１０（第２リファレンス・パターン）の基準点に至るベクトル２１２の座標が第１位置情報１３２として登録されている。
【０２５６】
（３）設計方法
図３５は、実施の形態５のパターン設計方法のフローチャートの一例である。図３６は、実施の形態５のパターン設計方法を説明する図である。
【０２５７】
（３−１）ホットスポットを発生させるパターンの検出（Ｓ７０２）
図３５に示すように演算部２８は先ず、設計パターンから抽出した要素パターン１９４（図３６参照）の内抜きパターン１９０内にホットスポットを発生させるパターンが存在するか判定する（Ｓ７０２）。内抜きパターン１９０内にホットスポットを発生させるパターンが存在する場合、演算部２８はホットスポットを発生させるパターンを修正する（Ｓ７０４）。内抜きパターン１９０内にホットスポットを発生させるパターンが存在しない場合には、演算部２８は処理を終了する。
【０２５８】
具体的には、演算部２８は先ず、実施の形態２のパターンマッチング・プログラムを呼び出して起動する。
【０２５９】
実施の形態２のパターンマッチング・プログラムが起動されると先ず、図２２のフローチャートに示すように、ユーザがリファレンスＩＤを入力する（Ｓ２）。ユーザはこの時、図３４（ｂ）を参照して説明した内抜きＲパターン１８６、内包Ｒパターン２１０、およびベクトル２１２（第１位置情報）の識別子を入力する。
【０２６０】
すると演算部２８は、集積回路（以下、第１集積回路回路と呼ぶ）の設計パターンから要素パターン１９４（図３６（ａ）参照）を抽出する（Ｓ６〜Ｓ１０）。
【０２６１】
演算部２８は更に、図２４のフローチャートに示すように、抽出した要素パターン１９４（第１サンプル・パターン）の内抜きパターン１９０（図３６（ａ）参照）と内抜きＲパターン１８６（図３４（ｂ）参照）とが一致するか判定する（Ｓ２０〜Ｓ２２）。両者が一致する場合、演算部２８はステップ２０２に進む。両者が一致しない場合、演算部２８は一致判定Ｓ１１２（図２２参照）を終了する。
【０２６２】
演算部２８は内抜きパターン１９０と内抜きＲパターン１８６が一致する場合、内抜きパターン１９０（図３６（ａ）参照）の内側に内包Ｒパターン２１０（図３４（ｂ）参照）に対応する内包パターン１９２が存在するか判定する（Ｓ２０２〜Ｓ２１０）。
【０２６３】
内包Ｒパターン２１０に対応する内包パターン１９２（ホットスポット領域１８４を発生させるパターン）が存在する場合、演算部２８は内包パターン１９２の位置（第１位置）と内包Ｒパターン２１０の第１位置情報が一致するか判定する（Ｓ２１２〜Ｓ２１４）。双方が一致する場合、演算部２８は、内抜きパターン１９０および内包パターン１９２のデータを記録する（Ｓ２１６）。双方が一致しない場合、一致判定Ｓ１１２を終了する。
【０２６４】
演算部２８は、以上の処理を第１集積回路に含まれる各要素パターンに対して実行する（Ｓ１４）。その後演算部２８は、実施の形態２のパターンマッチング・プログラムを終了する。
【０２６５】
ステップＳ２０〜Ｓ２１４により検出される内包パターン１９２（以下、第１パターンと呼ぶ）は、ホットスポットを発生させるパターンである。第１パターン１９８ａが検出された場合、演算部２８はステップＳ７０４に進む。
【０２６６】
（３−２）パターン修正（Ｓ７０４）
演算部２８は、ホットスポットを発生させる第１パターン１９８ａを第１パターン１９８ａよりホットスポットを発生させる確率が低い第２パターン１９８ｂに変更する。具体的には、演算部２８は、設計パターン内の第１パターンを補助記憶装置３２に予め記録されていた第２パターンに置き換える。
【０２６７】
図３６（ｂ）には、修正後のパターンの一例が示されている。図３６（ｂ）に示しように、第１パターン１９８ａ（図３６（ａ）参照）は例えば、第１パターン１９８ａより短い第２パターン１９２ｂに置き換えられる。このため、内抜きパターン１９０と第２パターン１９８ｂの間隔が拡がり、ホットスポットが発生し難くなる。
【０２６８】
ところで、図３４のホットスポット領域１８４は、ブリッジングが起きるホットスポットに対応している。ホットスポットとしては、転写パターンが細くなるネッキングや、ビアパターンと配線パターンのカバレッジが不足するビアカバレッジ不良などもある。
【０２６９】
図３７は、内抜きパターン１９０の内側にホットスポット領域１８４を形成する第１パターン１９８ａの別の例を説明する図である。図３７に示す例では、内抜きパターン１９０の内側に複数の第１パターン１９８ａが存在する。図３７に示す例では、第１パターン１９８ａ間にホットスポット領域１８４が発生する。尚、図３６及び図３７に示すパターンは、フューズパターンと呼ばれる。
【０２７０】
実施の形態５によれば、ホットスポットを発生させる第１パターン１９８ａを、ホットスポットを発生させる確率が第１パターン１９８ａより低い第２パターン１９８ｂに変換する。したがって、内抜きパターン内にホットスポット領域が発生し難いパターンを設計することができる。
【０２７１】
尚、以上の例では、内包パターン１９２を修正しているが、内抜きパターン１９０を修正してもよい。
【０２７２】
また以上の例では、内包パターン１９２がホットスポットを発生させている。しかし、内抜きパターン１９０が単独でホットスポットを発生する場合も存在する。このような場合には、実施の形態１のパターンマッチング方法によりホットスポットを発生させる内抜きパターン（例えば、複雑な屈曲部を有する内抜きパターン）を検出して、検出した内抜きパターンを、ホットスポットを発生させないパターンに修正してもよい。
【０２７３】
また以上の例では設計パターンを修正しているが、設計パターンをＯＰＣ（Optical Proximity Correction）補正したマスクパターン（すなわち、レイアウトパターン）を修正してもよい。
【０２７４】
また以上の例では、実施の形態のパターンマッチング方法は設計パターンまたはレイアウトパターンのマッチングに用いられる。しかし、実施の形態のパターンマッチング方法は、他のパターンのマッチング（例えば、撮影画像のパターンマッチング）に用いられてもよい。
【０２７５】
以上の実施の形態１〜５に関し、更に以下の付記を開示する。
【０２７６】
（付記１）
第１外周と第１内周と前記第１外周に前記第１内周を接続する線分とを有する第１サンプル・パターンの前記第１外周と前記第１内周の各頂点とを通って前記第１サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第１内周に対応する内抜きパターンを生成する工程と、
前記内抜きパターンと第１リファレンス・パターンが一致するか判定する工程とを有する
パターンマッチング方法。      
【０２７７】
（付記２）
付記１に記載のパターンマッチング方法において、
前記第１サンプル・パターンは、前記経路が方向を変える折れ点と前記経路の両端との座標を前記経路が前記折れ点と前記両端を通る順に配列したサンプル・データに対応し、
前記内抜きパターンを生成する工程では、前記サンプル・データにおいて隣接する前記座標の複数の第１座標組合せから対応する区間が少なくとも部分的に重なる第２座標組合せを検出し、
前記第２座標組合せの一方の前記座標の間で前記サンプル・データを分断して得られ一端と前記第２座標組合せの他方の前記座標の間で前記サンプル・データを分断して得られる他端とを有する第１座標列と、前記サンプル・データから前記第１座標列を削除して得られる第２座標列を生成し、
前記第１座標列に対応する第１分割パターンおよび前記第２座標列に対応する第２分割パターンのうち内側のパターンに対応する内抜きパターン・データを前記内抜きパターンのデータとして生成し、
前記内抜きパターンと前記第１リファレンス・パターンが一致するか判定する工程では、生成した前記内抜きパターン・データが前記第１リファレンス・パターンのデータに対応するか判定することを
特徴とするパターンマッチング方法。      
【０２７８】
（付記３）  
付記１又は２に記載のパターンマッチング方法において、更に、
前記第１サンプル・パターンの前記第１内周に囲われた第２サンプル・パターンの第２外周と第１リファレンス・パターンに囲われる第２リファレンス・パターンとが一致するか判定する工程と、
前記第２外周と前記第２リファレンス・パターンとが一致する場合に、前記第２リファレンス・パターンの前記第１リファレンス・パターンに対する第１位置情報と前記第２外周の前記内抜きパターンに対する第１位置とが一致するか判定する工程とを有することを特徴とする
パターンマッチング方法。
【０２７９】
（付記４）
付記１又は２に記載のパターンマッチング方法において、
前記第１サンプル・パターンの前記経路から前記重複区間を削除して得られるパターンのうち外側の外形パターンと前記第１リファレンス・パターンを囲む第３リファレンス・パターンが一致するか判定する工程と、
前記外形パターンと前記第３リファレンス・パターンが一致する場合、前記第３リファレンス・パターンの前記第１リファレンス・パターンに対する第２位置情報と前記外形パターンの前記内抜きパターンに対する第２位置とが一致する否かを判定する工程とを有することを特徴とする
パターンマッチング方法。
【０２８０】
（付記５）
第１外周と第１内周と前記第１外周に前記第１内周を接続する線分とを有する第１サンプル・パターンの前記第１外周と前記第１内周の各頂点とを通って前記第１サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第１内周に対応する内抜きパターンを生成し、
前記内抜きパターンと第１リファレンス・パターンが一致するか判定する
処理をコンピュータに実行させるプログラム。
【０２８１】
（付記６）
第１集積回路に対応する第１設計パターンまたは前記第１集積回路に対応する第１レイアウト・パターンから、第１外周と第１内周と前記第１外周に前記第１内周を接続する線分とを有する第１サンプル・パターンを抽出する工程と、
前記第１サンプル・パターンの前記第１外周と前記第１内周の各頂点とを通って前記第１サンプル・パターンを一周する経路から前記経路が重なる重複区間を削除して、前記第１内周に対応する内抜きパターンを生成する工程と、
第２集積回路に対応する第２設計パターンまたは前記第２集積回路に対応する第２レイアウト・パターンに含まれ、ホットスポットに対応する領域を第２内周が囲う要素パターンの当該第２内周に対応する第１リファレンス・パターンと、前記内抜きパターンとが一致するか判定する工程と、
前記第１リファレンス・パターンと前記内抜きパターンが一致する場合、前記ホットスポットを発生させる第１パターンが前記内抜きパターン内に存在するか判定する工程と、
前記第１パターンが存在する場合、前記第１パターンを前記第１パターンより前記ホットスポットを発生させる確率が低い第２パターンに変換する工程とを有する
パターン設計方法。
【符号の説明】
【０２８２】
６・・・内抜きパターン    ７・・・内周    ８・・・外周
９・・・外形パターン
５０, １８６・・・内抜きＲパターン（第１リファレンス・パターン）
７２・・・要素パターン（第１サンプル・パターン）
７６・・・経路    ７８ａ・・・第１外周    ７８ｂ・・・第２外周
８０ａ・・・第１内周    ８０ｂ・・・第２内周    ８２・・・線分
８４・・・座標    ８６・・・第１座標組合せ    ８８,９０・・・第２座標組合せ
９２・・・サンプル・データ    ９４・・・第１座標列    １０５・・・第２座標列
１０４・・・第３座標列    １１０・・・内包パターン（第２サンプル・パターン）
１３０,２１０・・・内包Ｒパターン（第２リファレンス・パターン）
１５２・・・外形Ｒパターン（第３リファレンス・パターン）
１９８ａ・・・第１パターン    １９８ｂ・・・第２パターン
【図１】
2015132873.tif 000003
【図２】
2015132873.tif 000004
【図３】
2015132873.tif 000005
【図４】
2015132873.tif 000006
【図５】
2015132873.tif 000007
【図６】
2015132873.tif 000008
【図７】
2015132873.tif 000009
【図８】
2015132873.tif 000010
【図９】
2015132873.tif 000011
【図１０】
2015132873.tif 000012
【図１１】
2015132873.tif 000013
【図１２】
2015132873.tif 000014
【図１３】
2015132873.tif 000015
【図１４】
2015132873.tif 000016
【図１５】
2015132873.tif 000017
【図１６】
2015132873.tif 000018
【図１７】
2015132873.tif 000019
【図１８】
2015132873.tif 000020
【図１９】
2015132873.tif 000021
【図２０】
2015132873.tif 000022
【図２１】
2015132873.tif 000023
【図２２】
2015132873.tif 000024
【図２３】
2015132873.tif 000025
【図２４】
2015132873.tif 000026
【図２５】
2015132873.tif 000027
【図２６】
2015132873.tif 000028
【図２７】
2015132873.tif 000029
【図２８】
2015132873.tif 000030
【図２９】
2015132873.tif 000031
【図３０】
2015132873.tif 000032
【図３１】
2015132873.tif 000033
【図３２】
2015132873.tif 000034
【図３３】
2015132873.tif 000035
【図３４】
2015132873.tif 000036
【図３５】
2015132873.tif 000037
【図３６】
2015132873.tif 000038
【図３７】
2015132873.tif 000039