(57)【要約】【課題】重複した描画データの保存を抑止し、描画データを効率的に保存する、保存データの生成方法、保存データの生成プログラム、及び、保存データ生成装置を提供する。【解決手段】処理部は、機能ブロックごとの光近接効果補正後の描画データから、前記機能ブロックの外縁領域を除外した第１の内側データを取得する取得工程と、前記機能ブロックの光近接効果補正の処理条件に基づいて、前記第１の内側データを、記憶部が保存する第２の内側データと比較するか否か判定する判定工程と、比較すると判定した場合、前記第１の内側データと前記第２の内側データとのパターンを比較し、比較結果に応じて、前記第１の内側データを前記記憶部に保存する保存工程と、を有する。【選択図】図１６
2016018114.tif 000002
【特許請求の範囲】
【請求項１】
処理部は、
機能ブロックごとの光近接効果補正後の描画データから、前記機能ブロックの外縁領域を除外した第１の内側データを取得する取得工程と、
前記機能ブロックの光近接効果補正の処理条件に基づいて、前記第１の内側データを、記憶部が保存する第２の内側データと比較するか否か判定する判定工程と、
比較すると判定した場合、前記第１の内側データと前記第２の内側データとのパターンを比較し、比較結果に応じて、前記第１の内側データを前記記憶部に保存する保存工程と、
を有する保存データの生成方法。
【請求項２】
請求項１において、
前記判定工程は、複数の前記処理条件に基づいて、前記第１の内側データを、前記記憶部が保存する第２の内側データと比較するか否か判定する、保存データの生成方法。
【請求項３】
請求項２において、
前記複数の処理条件は、前記機能ブロックが含むパターンの平均密度、前記機能ブロックが含む前記パターンの辺の数、前記光近接効果補正を実行するプログラムの実績の有無、当該プログラムのバージョンの実績の有無の組み合わせである、保存データの生成方法。
【請求項４】
請求項２または３において、
前記複数の処理条件はそれぞれ重みを有し、
前記判定工程は、前記機能ブロックが前記処理条件に該当する場合に前記重みを適用した値を算出し、前記複数の処理条件の前記値の合計値に基づいて、前記第１の内側データを、前記記憶部が保存する第２の内側データと比較するか否か判定する、保存データの生成方法。
【請求項５】
請求項４において、
前記パターンの平均密度、及び、前記パターンの辺の数の前記重みは、前記プログラムの実績の有無、及び、当該プログラムのバージョンの実績の有無の前記重みより大きい、保存データの生成方法。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記判定工程は、さらに、前記第１の内側データを、前記第２の内側データのうち、基準の期間内に前記記憶部から読み出された前記第２の内側データと比較する、保存データの生成方法。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記判定工程は、さらに、前記第１の内側データを、前記第２の内側データのうち、前記外縁領域の幅が、前記第１の内側データと同一の前記第２の内側データと比較する、保存データの生成方法。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記取得工程は、さらに、前記機能ブロックごとの描画データから、前記機能ブロックの外縁領域の第１の外側データを取得し、
前記保存工程は、さらに、前記第１の外側データを、前記記憶部が保存する第２の外側データと個別に前記記憶部に保存する、
保存データの生成方法。
【請求項９】
請求項８において、さらに、
前記記憶部が保存する前記第１の外側データと、前記記憶部が保存する複数の機能ブロックで共通に保存する内側データとに基づいて、前記機能ブロックの描画データを生成する生成工程を有する、保存データの生成方法。
【請求項１０】
機能ブロックごとの光近接効果補正後の描画データから、前記機能ブロックの外縁領域を除外した第１の内側データを取得し、
前記機能ブロックの光近接効果補正の処理条件に基づいて、前記第１の内側データを、記憶部が保存する第２の内側データと比較するか否か判定し、
比較すると判定した場合、前記第１の内側データと前記第２の内側データとのパターンを比較し、比較結果に応じて、前記第１の内側データを前記記憶部に保存する、
処理をコンピュータに実行させる保存データ生成プログラム。
【請求項１１】
処理部と、
第２の内側データを記憶する記憶部と、を有し、
前記処理部は、機能ブロックごとの光近接効果補正後の描画データから、前記機能ブロックの外縁領域を除外した第１の内側データを取得し、前記機能ブロックの光近接効果補正の処理条件に基づいて、前記第１の内側データを、前記記憶部が保存する第２の内側データと比較するか否か判定し、比較すると判定した場合、前記第１の内側データと前記第２の内側データとのパターンを比較し、比較結果に応じて、前記第１の内側データを前記記憶部に保存する、保存データ生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、保存データの生成方法、保存データの生成プログラム、及び、保存データ生成装置に関する。
【背景技術】
【０００２】
近年、半導体装置の微細化に伴い、半導体装置の製造工程で扱う製造データの量が飛躍的に増加している。例えば、６５ｎｍ（nanometre：ｎｍ）テクノロジーのある製造データの総容量は、１００ＧＢ（GigaByte：ＧＢ）になる。この場合、例えば、年間数十〜数百ＴＢ（TeraByte：ＴＢ）以上の容量が必要になる。これにより、製造データを保存するための設備投資（ストレージデバイスの増強等）が定期的に行われており、コストが発生している。
【０００３】
保存するデータの容量を抑えるために、半導体装置の設計工程で生成される設計データを機能ブロックごとに階層化して保存する。設計データの保存については、例えば、特許文献１〜３に記載される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２８５１５２号公報
【特許文献２】特開２００２−７２４３８号公報
【特許文献３】特開２００９−２１６９３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、設計データから生成される描画データ（レチクル描画データ、ＥＢ（Electron Beam：ＥＢ）直描（直接描画）データ等）は、フラットデータに変換される。したがって、描画データを階層化して保存することは困難であり、保存するデータ容量を抑えることが困難であった。
【０００６】
１つの側面は、本発明は、重複した描画データの保存を抑止し、描画データを効率的に保存する、保存データの生成方法、保存データの生成プログラム、及び、保存データ生成装置を提供する。
【課題を解決するための手段】
【０００７】
第１の側面は、処理部は、機能ブロックごとの光近接効果補正後の描画データから、前記機能ブロックの外縁領域を除外した第１の内側データを取得する取得工程と、前記機能ブロックの光近接効果補正の処理条件に基づいて、前記第１の内側データを、記憶部が保存する第２の内側データと比較するか否か判定する判定工程と、比較すると判定した場合、前記第１の内側データと前記第２の内側データとのパターンを比較し、比較結果に応じて、前記第１の内側データを前記記憶部に保存する保存工程と、を有する。
【発明の効果】
【０００８】
第１の側面によれば、重複した描画データの保存を抑止し、描画データを効率的に保存する。
【図面の簡単な説明】
【０００９】
【図１】本実施の形態例における保存データ生成装置のハードウェア構成を説明する図である。
【図２】図１に示した保存データ生成装置のソフトウェアモジュール構成図である。
【図３】本実施の形態例における保存データ生成処理の概要を模式的に説明する図である。
【図４】製品Ａのレチクル描画データの一例を説明する図である。
【図５】製品Ｂのレチクル描画データの一例を説明する図である。
【図６】図３で示した機能ブロック対応テーブルの一例を説明する図である。
【図７】ＯＰＣ処理前後の機能ブロックのパターンの変化を模式的に説明する第１の図である。
【図８】ＯＰＣ処理前後の機能ブロックのパターンの変化を模式的に説明する第２の図である。
【図９】ＯＰＣ処理によって、周囲の機能ブロックの影響を受ける、機能ブロックの外縁領域を説明する第１の図である。
【図１０】ＯＰＣ処理によって、周囲の機能ブロックの影響を受ける、機能ブロックの外縁領域を説明する第２の図である。
【図１１】本実施の形態例における保存データ生成処理の概要を説明するフローチャート図である。
【図１２】図２及び図１１で示した、機能ブロック抜き取りモジュールの処理を説明するフローチャート図である。
【図１３】図１２の工程Ｓ２１及びＳ２２を説明する図である。
【図１４】図４に示した製品Ａの描画データの内側データ及び外側データを示す図である。
【図１５】図５に示した製品Ｂの描画データの内側データ及び外側データを示す図である。
【図１６】図２及び図１１で示した、パターン一致予測モジュールの処理、及び、パターン検索モジュールの処理を説明するフローチャート図である
【図１７】パターン検索判断基準テーブルの一例を説明する図である。
【図１８】機能ブロック抜き取りモジュールの処理の具体例を説明する図である。
【図１９】図１８で示した機能ブロックの内側データと同一または類似する内側データが検出される場合の例を示す図である。
【図２０】図１８で示した機能ブロックの内側データと同一または類似する内側データが検出されない場合の例を示す図である。
【図２１】図１１で示した、保存された内側データ及び外側データと、機能ブロック対応テーブルに基づいて描画データを再現する処理を説明する図である。
【発明を実施するための形態】
【００１０】
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１１】
［保存データ生成装置の構成］
図１は、本実施の形態例における保存データ生成装置のハードウェア構成を説明する図である。保存データ生成装置１０は、ＣＰＵ（Central Processing Unit：ＣＰＵ）１０１、メモリ１０２、通信インタフェース部１０３、表示部１０５、入力部１０６、外部インタフェース部１０７を有する。各部は、バス１０４を介して相互に接続する。
【００１２】
メモリ１０２は、ＲＡＭ（Random Access Memory：ＲＡＭ）２０１、不揮発性メモリ２０２を有する。不揮発性メモリ２０２は、ＨＤＤ（Hard disk drive：ＨＤＤ）、不揮発性半導体メモリ等で構成される。表示部１０５は、例えば、ディスプレイ等の表示画面を示し、入力部１０６は、例えば、キーボードやマウス等を示す。外部インタフェース部１０７は、例えば、外部のストレージサーバ３２０と接続する。
【００１３】
ＣＰＵ１０１は、バス１０４を介してメモリ１０２等と接続すると共に、保存データ生成装置１０全体の制御を行う。通信インタフェース部１０３は、ネットワーク５０を介して、外部の通信機器と接続する。ＲＡＭ２０２は、ＣＰＵ１０１が処理を行うデータ等を記憶する。不揮発性メモリ２０２は、ＣＰＵ１０１が実行するＯＳ（Operating System：ＯＳ）のプログラムを格納する領域（図示せず）、保存データ生成プログラムを格納する領域２１０、図形及びＯＰＣ（Optical Proximity Correction：ＯＰＣ）プログラムを格納する領域２１４を備える。
【００１４】
ストレージサーバ３２０は、データ格納領域３１０を有するストレージデバイス３００を備える。ストレージデバイス３００は、例えば、ＨＤＤである。データ格納領域３１０は、設計工程で生成されるレイアウトデータや保存データを格納する。レイアウトデータとは、半導体装置を構成する各セルパターンの配置データを示す。保存データの詳細は、後述する。
【００１５】
図形及びＯＰＣプログラム領域２１４に記憶された図形及びＯＰＣプログラム（以下、図形ＯＰＣ及びプログラム２１４と称する）は、ＣＰＵ１０１の実行によって、本実施の形態例における図形処理と、ＯＰＣ処理とを実現する。図形処理、及び、ＯＰＣ処理については、図３にしたがって後述する。
【００１６】
また、保存データ生成プログラム領域２１０に記憶された保存データ生成プログラム（以下、保存データ生成プログラム２１０と称する）は、ＣＰＵ１０１の実行によって、本実施の形態例における保存データの生成処理を実現する。保存データ生成処理は、描画データに基づいて保存データを生成し、ストレージデバイス３００のデータ格納領域３１０に記憶する。本実施の形態例における描画データは、例えば、ＯＰＣ処理後のレチクル描画データや、ＥＢ（Electron Beam：ＥＢ）直描（直接描画）データ等である。
【００１７】
［保存データ生成装置のソフトウェアモジュール構成］
図２は、図１に示した保存データ生成プログラム２１０のソフトウェアモジュール構成図である。保存データ生成プログラム２１０は、図２に示すように、機能ブロック抜き取りモジュール２１１、パターン一致予測モジュール２１２、及び、パターン検索モジュール２１３を有する。機能ブロック対応テーブルＴ１、及び、パターン検索判断基準テーブルＰ１は、メモリ１０２に格納されている。
【００１８】
機能ブロック対応テーブルＴ１は、製品ごとに、描画データが有する機能ブロックと保存データとの対応情報や機能ブロックの情報等を有するテーブルである。機能ブロックとは、半導体装置を構成するセルパターンの集合であって、機能単位のセルパターンを示す。機能ブロック対応テーブルＴ１の詳細については、図６にしたがって後述する。また、パターン検索判断基準テーブルＰ１については、図１７にしたがって後述する。
【００１９】
機能ブロック抜き取りモジュール２１１は、描画データから、機能ブロックの領域を識別する。そして、機能ブロック抜き取りモジュール２１１は、機能ブロックごとに、機能ブロックの外縁領域を除外した内側データと、外縁領域の外側データとを取得する。内側データ及び外側データの詳細、及び、機能ブロック抜き取りモジュール２１１の処理の詳細については、図１２〜図１５にしたがって後述する。
【００２０】
パターン一致予測モジュール２１２は、パターン検索判断基準テーブルＰ１に基づいて、取得した内側データのパターンが、既に保存されている内側データのパターンと一致する可能性があるか否かを予測する。具体的に、パターン一致予測モジュール２１２は、機能ブロックのＯＰＣ処理の条件にしたがって、一致する可能性があるか否かを予測する。パターン一致予測モジュール２１２の処理の詳細は、図１６、図１７にしたがって後述する。
【００２１】
そして、パターン検索モジュール２１３は、パターン一致予測モジュール２１２が一致する可能性があると予測した場合、取得した内側データのパターンと、データ格納領域３１０に既に保存されている内側データのパターンとを比較する。いずれかの内側データのパターンと同一または類似する場合、パターン検索モジュール２１３は、取得した内側データをデータ格納領域３１０に保存しない。つまり、同一または類似する内側データは、取得した内側データと共通で使用の内側データとして保存される。
【００２２】
一方、いずれの内側データのパターンとも同一ではなく類似もしていない場合、パターン検索モジュール２１３は、取得した内側データをデータ格納領域３１０に保存する。つまり、既にデータ格納領域３１０に保存されている内側データと、取得した内側データとは、個別にデータ格納領域３１０に保存される。パターン検索モジュール２１３の処理の詳細については、図１６にしたがって後述する。
【００２３】
［保存データ生成処理の概要］
図３は、本実施の形態例における、図２のモジュール２１１〜２１３による保存データ生成処理の概要を模式的に説明する図である。図３の例では、保存データ生成装置１０が、例えば、２つの製品（製品Ａ、製品Ｂ）の描画データ６０−Ａ、６０−Ｂの保存データを生成する場合を例示する。描画データ６０−Ａは製品Ａの描画データを、描画データ６０−Ｂは製品Ｂの描画データを示す。描画データ６０−Ａ、６０−Ｂは、例えば、ＳＯＣ（System-On-a-Chip：ＳＯＣ）の描画データである。
【００２４】
図１に示した図形ＯＰＣプログラム２１４は、レイアウトデータ６１−Ａ、６１−Ｂを入力として、描画データ６０−Ａ、６０−Ｂを生成する。レイアウトデータ６１−Ａは製品Ａのレイアウトデータを、レイアウトデータ６１−Ｂは製品Ｂのレイアウトデータを示す。レイアウトデータ６１−Ａ、６１−Ｂは、階層化されたデータである。
【００２５】
図形ＯＰＣ処理プログラム２１４は、レイアウトデータ６１−Ａ、６１−Ｂに対して図形処理、及び、ＯＰＣ処理を行うことによって、フラットデータである描画データ６０−Ａ、６０−Ｂを生成する。
【００２６】
図形ＯＰＣ処理プログラム２１４は、図形処理として、レイアウトデータ６１−Ａ、６１−Ｂに対し、サイジング処理や回転処理等の処理を行う。また、図形ＯＰＣ処理プログラム２１４は、ＯＰＣ処理として、光近接効果による影響の予測に基づいて、レイアウトデータの通りの現像パターンが得られるように、パターンの形状を補正する。
【００２７】
なお、図形ＯＰＣ処理プログラム２１４は、他の製品についても同様にして、レイアウトデータ６１−Ｃ、６１−Ｄを入力として、描画データ（図示せず）を生成する。
【００２８】
レイアウトデータ６１−Ａ、６１−Ｂのそれぞれは、複数の機能ブロックのパターンを有する。また、双方のレイアウトデータ６１−Ａ、６１−Ｂは、パターンが同一の機能ブロックを有することがある。ただし、ＯＰＣ処理では、パターンが同一であっても、その周辺のパターンやパターンの向き等に応じて、パターンの補正内容が異なる。
【００２９】
したがって、レイアウトデータ６１−Ａ、６１−Ｂが、パターンが同一の機能ブロックを有する場合であっても、描画データ６０−Ａ、６０−Ｂにおける機能ブロックのパターンの形状は、異なってくることがある。この場合、機能ブロックの周辺の機能ブロックが異なることにより、ＯＰＣ処理による、機能ブロックの外縁部分のパターンの補正内容が異なることを示す。ＯＰＣ処理によるパターンの変化については、図７、図８にしたがって後述する。
【００３０】
また、ＯＰＣ処理後の描画データ６０−Ａ、６０−Ｂは、階層化されていないフラットデータであるため、データ容量が大きい。また、描画データ６０−Ａ、６０−Ｂのパターンの形状は、データ処理を行う環境（ＯＳ、ＯＰＣツール、ツールのバージョン等）に応じて変化する。このため、過去に生成した描画データ６０−Ａ、６０−Ｂと同一のデータを、再度、生成することが困難な場合がある。このため、過去に生成した描画データ６０−Ａ、６０−Ｂを長期間、保持しておく必要が生じ、データを保存するために多くの容量が必要になる。
【００３１】
したがって、本実施の形態例における保存データ生成装置１０は、描画データ６０−Ａ、６０−Ｂが有する各機能ブロックの領域のうち、ＯＰＣ処理の結果、周辺の機能ブロックに応じてパターンが変化する外縁の領域を除外し、内側データを切り出す。つまり、内側データの領域は、ＯＰＣ処理において、周辺の機能ブロックに応じたパターンの変化が生じない領域である。このため、同一のパターンを有する２つの機能ブロックの内側データは、ＯＰＣ処理後でも同一のパターンを有する。また、保存データ生成装置１０は、機能ブロックの外縁の領域を外側データとして切り出す。
【００３２】
そして、保存データ生成装置１０は、パターンが同一の機能ブロックの内側データを、共通で使用するデータとしてデータ格納領域３１０（図１）保存する。保存データ生成装置１０は、外側データについては、機能ブロックごとに個別にデータ格納領域３１０に保存する。保存データは、このようにデータ格納領域３１０に保存された、内側データ及び外側データを示す。
【００３３】
このように、保存データ生成装置１０は、描画データ６０−Ａ、６０−Ｂの機能ブロックごとの内側データのうち、他の内側データとパターンが同一の内側データを重複して保存しないことで、データ格納領域３１０に保存する容量を抑える。
【００３４】
ただし、描画データ６０−Ａ、６０−Ｂは画像データであることから、比較処理には時間がかかる。また、ＯＰＣ処理によって、小刻みにパターンが補正されることから、内側データのパターンも複雑な形状を有する。また、膨大な数の内側データと比較する場合、対象の内側データとパターンが同一の内側データを検索する処理には多大な処理時間を要する。
【００３５】
したがって、保存データ生成装置１０は、ＯＰＣの処理条件に基づいて、対象の内側データを、既に保存されている内側データのいずれかと一致する可能性があるか否かを判定する。そして、一致する可能性がある場合に、保存データ生成装置１０は、内側データのパターンを、既に保存されている内側データのパターンと比較する。
【００３６】
図３において、まず、保存データ生成装置１０の機能ブロック抜き取りモジュール２１１は、製品Ａ、Ｂの描画データ６０−Ａ、６０−Ｂから、機能ブロックごとに、内側データ及び外側データを切り出す（抜き取る）。
【００３７】
図３の例において、機能ブロック抜き取りモジュール２１１は、製品Ａの描画データ６０−Ａから、機能ブロックＡ−１、機能ブロックＡ−２の領域を識別する。そして、機能ブロック抜き取りモジュール２１１は、機能ブロックＡ−１の内側データＡ−１−１、及び、外側データＡ−１−２を取得する。また、機能ブロック抜き取りモジュール２１１は、機能ブロックＡ−２の内側データＡ−２−１、及び、外側データＡ−２−２を取得する。
【００３８】
機能ブロック抜き取りモジュール２１１は、取得した外側データＡ−１−２、Ａ−２−２を、保存データとして、データ格納領域３１０に格納する。また、機能ブロック抜き取りモジュール２１１は、機能ブロックと、外側データＡ−１−２、Ａ−２−２との対応情報を機能ブロック対応テーブルＴ１に更新する。
【００３９】
また、パターン一致予測モジュール２１２は、内側データＡ−１−１、Ａ−２−１を、既に保存されている内側データと一致する可能性があるか否かを判定する。一致する可能性が低いと予測した場合、パターン一致予測モジュール２１２は、内側データＡ−１−１、Ａ−２−１を、保存データとしてデータ格納領域３１０に保存する。また、パターン一致予測モジュール２１２は、機能ブロックと、内側データＡ−１−１、Ａ−２−１との対応情報を機能ブロック対応テーブルＴ１に更新する。
【００４０】
一方、一致する可能性があると判定した場合、パターン検索モジュール２１３は、内側データＡ−１−１、Ａ−２−１を、既に機能ブロック対応テーブルＴ１に登録されている内側データと比較する。内側データＡ−１−１、Ａ−２−１と一致または類似している内側データがある場合、パターン検索モジュール２１３は、内側データＡ−１−１、Ａ−２−１を、保存データとしてデータ格納領域３１０に保存しない。また、パターン一致予測モジュール２１２は、機能ブロックと、一致または類似している内側データとの対応情報を機能ブロック対応テーブルＴ１に更新する。
【００４１】
図３の例では、製品Ａの描画データ６０−Ａが、既に保存されており、新たに製品Ｂの描画データ６０−Ｂを保存する場合を例示する。つまり、既に、製品Ａの機能ブロックＡ−１、Ａ−２が、機能ブロック対応テーブルＴ１に登録され、内側データＡ−１−１、Ａ−２−１及び外側データＡ−１−２、Ａ−２−２がデータ格納領域３１０に保存されている場合を示す。
【００４２】
同様にして、機能ブロック抜き取りモジュール２１１は、機能ブロックＢ−１の内側データＢ−１−１及び外側データＢ−１−２と、機能ブロックＢ−２の内側データＢ−２−１及び外側データＢ−２−２とを取得する。そして、パターン検索モジュール２１３は、内側データＢ−１−１、Ｂ−２−１のそれぞれが、既に保存されている内側データ（Ａ−１−１、Ａ−２−１を含む）と一致する可能性があるか否かを判定する。
【００４３】
図３の例では、パターン検索モジュール２１３は、内側データＢ−１−１、Ｂ−２−１のそれぞれが一致する可能性がある旨、判定する。また、図３の例では、内側データＢ−２−１は、既に保存されている内側データＡ−２−１と、同一のパターンを有するものとする。したがって、パターン検索モジュール２１３は、内側データＢ−２−１をデータ格納領域３１０に保存せず、機能ブロックＢ−２と内側データＡ−２−１との対応情報を機能ブロック対応テーブルＴ１に更新する。これにより、内側データＢ−２−１の保存に要する容量を抑制する。
【００４４】
また、図３の例において、内側データＢ−１−１は、既に保存されている内側データと、パターンが同一ではなく類似もしていないものとする。この場合、パターン検索モジュール２１３は、内側データＢ−１−１をデータ格納領域３１０に保存し、機能ブロックＢ−１と内側データＢ−１−１との対応情報を機能ブロック対応テーブルＴ１に更新する。
【００４５】
ここで、図３で示した、製品Ａ、製品Ｂの描画データ６０−Ａ、６０−Ｂの一例を図４、図５にしたがって説明する。その後、機能ブロック対応テーブルＴ１の一例を図６にしたがって説明する。
【００４６】
図４、図５は、図３で説明した製品Ａ、Ｂ（例えば、ＳＯＣ）の描画データ６０−Ａ、６０−Ｂの一例を説明する図である。図４、図５における描画データ６０−Ａ、６０−Ｂは、レチクル（マスク）描画データである。図４、図５の描画データ６０−Ａ、６０−Ｂは、例えば、ＳＲＡＭ（Static Random Access Memory：ＳＲＡＭ）やＩ／Ｏ（Input／Output：Ｉ／Ｏ）コントローラ、ＣＰＵ（Central Processing Unit：ＣＰＵ）コア等の機能ブロックを有する。
【００４７】
図４は、製品Ａのレチクル描画データ６０−Ａの一例を説明する図である。図４によると、製品Ａのレチクル描画データ６０−Ａは、機能ブロックＡ−１、Ａ−２、Ａ−３、Ａ−４の領域を有する。また、図４によると、レチクル描画データ６０−Ａにおける機能ブロックＡ−１の領域の中心座標は、（Ｘ，Ｙ）＝（−１５００，０）である。他の機能ブロックＡ−２、Ａ−３、Ａ−４の領域も同様にして、中心座標を有する。
【００４８】
図５は、製品Ｂのレチクル描画データ６０−Ｂの一例を説明する図である。図５によると、製品Ｂのレチクル描画データ６０−Ｂは、機能ブロックＢ−１、Ｂ−２、Ｂ−３、Ｂ−４の領域を有する。また、図５によると、レチクル描画データ６０−Ｂにおける機能ブロックＢ−１の領域の中心座標は、（Ｘ，Ｙ）＝（−１５００，２０００）である。他の機能ブロックＢ−２、Ｂ−３、Ｂ−４の領域も同様にして、中心座標を有する。
【００４９】
図４、図５に示すように、機能ブロックの数や座標（位置）、及び、サイズは、製品に応じて異なる。また、たとえ、描画データ６０−Ａ、６０−Ｂが同一の種類の機能ブロックを有する場合であっても、当該機能ブロックのパターンの形状や、機能ブロックの領域や位置等は、描画データ６０−Ａ、６０−Ｂ間で、異なることが多い。なお、図４、図５の例では、レチクル描画データ６０−Ａ、６０−Ｂが有する各機能ブロックの領域は矩形であるが、矩形に限定されるものではない。
【００５０】
図６は、図３で示した機能ブロック対応テーブルＴ１の一例を説明する図である。図３で前述したとおり、機能ブロック対応テーブルＴ１は、製品ごとに、機能ブロックの情報を管理するデータベースである。また、図６の機能ブロック対応テーブルＴ１は、図４、図５のレチクル描画データ６０−Ａ、６０−Ｂに対応する。
【００５１】
図６に示す機能ブロック対応テーブルＴ１は、内側データ識別名、外側データ識別名、中心座標、傾き情報（回転、Ｘ反転、Ｙ反転）、機能ブロックの種類、ＯＰＣ条件、最終参照日、を有する。
【００５２】
内側データ識別名は、複数の内側データを識別する名前である。外側データ識別名は、複数の外側データを識別する名前である。中心座標は、図４、図５で示したように、機能ブロックの中心の座標を示す。また、傾き情報の回転は、機能ブロックの回転角度を示す。傾き情報のＸ反転は、機能ブロックがＸ軸方向に反転する場合の角度を示す。傾き情報のＹ反転は、機能ブロックがＹ軸方向に反転する場合の角度を示す。
【００５３】
また、機能ブロックの種類は、機能ブロックが実現する機能の種類を示す。機能ブロックの種類は、例えば、ＳＯＣチップでは、ＳＲＡＭやＩ／Ｏコントローラ、ＣＰＵコア等である。ＯＰＣ条件は、ＯＰＣ処理の実行時の条件である。ＯＰＣ処理の実行時の条件とは、例えば、ＯＰＣ処理を実行したツール名（プログラム名）、ツールのバージョン情報、ＯＰＣ処理の実行日時等である。また、最終参照日は、内側データが、データ格納領域３１０から読み出された日付を示す。
【００５４】
具体的に、図６の機能ブロック対応テーブルＴ１によると、製品Ａは、４つの機能ブロックを有する。製品Ａの機能ブロックのうち、１番目の機能ブロックＡ−１の内側データ識別名は「Ａ−１−１」であって、外側データ識別名は「Ａ−１−２」である。また、図４で示したとおり、機能ブロックＡ−１の中心座標は（Ｘ，Ｙ）＝（−１５００，０）である。また、機能ブロックＡ−１の回転角度は９０度であって、種類はＣＰＵコアである。
【００５５】
さらに、機能ブロック対応テーブルＴ１によると、機能ブロックＡ−１は、バージョン「Ｖｅｒ２.１.１」のＯＰＣプログラム「Ｐｒｏｇｒａｍ−Ａ」にしたがって、「２０１４／０２／２８」にＯＰＣ処理が行われたことを示す。また、機能ブロック対応テーブルＴ１によると、機能ブロックＡ−１の内側データＡ−１−１は、未だ、参照されていないことを示す。
【００５６】
同様にして、２番目の機能ブロックＡ−２の内側データ識別名は「Ａ−２−１」であって、外側データ識別名は「Ａ−２−２」である。また、図４で示したとおり、機能ブロックＡ−２の中心座標は（Ｘ，Ｙ）＝（１５００，２０００）である。また、機能ブロックＡ−２は回転しておらず、種類は機能ブロックＡ−１と同様にして、ＣＰＵコアである。つまり、製品Ａの半導体装置は、ＣＰＵコアを２つ搭載することを示す。
【００５７】
なお、機能ブロックＡ−１と同一の製品であることから、機能ブロックＡ−１〜Ａ−４のＯＰＣ条件は共通である。また、機能ブロック対応テーブルＴ１によると、機能ブロックＡ−２の内側データＡ−２−１の最終参照日は、日付「２０１４／０３／０１」である。これは、日付「２０１４／０３／０１」に、内側データＡ−２−１が参照されたことを示す。
【００５８】
機能ブロック対応テーブルＴ１は、他の機能ブロックＡ−３、Ａ−４についても、同様にして情報を有する。なお、図６に示す、内側データ識別名「Ａ−０」は、製品Ａの描画データ６０−Ａにおける、機能ブロックＡ−１〜Ａ−４以外の領域の情報を示す。
【００５９】
また、図６の機能ブロック対応テーブルＴ１によると、製品Ｂの機能ブロックのうち、２番目の機能ブロックＢ−２の内側データ識別名は「Ａ−２−１」、外側データ識別名は「Ｂ−２−２」である。即ち、製品Ｂの機能ブロックＢ−２の内側データ識別名に、製品Ａの機能ブロックＡ−２の内側データ識別名が対応付けられている。
【００６０】
これは、図３で説明したとおり、機能ブロックＢ−２の内側データと、製品Ａの機能ブロックＡ−２の内側データＡ−２−１とが、一致または類似していることを示す。この場合、内側データＡ−２−１は、機能ブロックＢ−２の内側データと共通で使用されるデータとして、データ格納領域３１０に保存される。このとき、内側データＡ−２−１が参照されることから、製品Ａ、及び、製品Ｂの内側データＡ−２−１の最終参照日に、例えば、製品Ｂのデータを保存した日付「２０１４／０３／０１」が登録される。
【００６１】
［ＯＰＣ処理］
次に、図３で説明した、ＯＰＣ処理前後の機能ブロックのパターンの変化を説明する。図３で説明したとおり、同一のパターンを有する機能ブロック間で、周辺の機能ブロックの配置や向き等が異なる場合、ＯＰＣ処理後における、双方の機能ブロックの外縁部分のパターンの形状が異なることがある。この点を、図７にしたがって説明する。
【００６２】
図７は、ＯＰＣ処理前後の機能ブロックのパターンの変化を模式的に説明する第１の図である。図７は、半導体装置Ｘ（製品Ｘに対応、例えばＳＯＣ）、半導体装置Ｙ（製品Ｙに対応、例えばＳＯＣ）のそれぞれの、ＯＰＣ処理前のレイアウトデータ６１−Ｘ、６１−Ｙと、ＯＰＣ処理後の描画データ６０−Ｘ、６０−Ｙの一例を示す。図７のＯＰＣ処理２１４は、図１で説明した図形ＯＰＣプログラム２１４の処理に対応する。
【００６３】
図７の半導体装置Ｘのレイアウトデータ６１−Ｘは、３つの機能ブロックａ〜ｃを有する。また、半導体装置Ｙのレイアウトデータ６１−Ｙは、５つの機能ブロックｄ〜ｈを有する。図７の例において、レイアウトデータ６１−Ｘの機能ブロックａと、レイアウトデータ６１−Ｙの機能ブロックｄとは、同一のパターンを有する（Ｙ１）。
【００６４】
また、図７の描画データ６０−Ｘ、６０−Ｙは、レイアウトデータ６１−Ｘ、６１−ＹのＯＰＣ処理２１４を実行することによって生成した描画データである。したがって、図７に示すように、描画データ６０−Ｘ、６０−Ｙの機能ブロックａｘ〜ｆｘのパターンの形状は、レイアウトデータ６１−Ｘ、６１−Ｙの機能ブロックａ〜ｆと異なっている。
【００６５】
前述したとおり、レイアウトデータ６１−Ｘ、６１−Ｙにおける、機能ブロックａと機能ブロックｄとは、パターンが同一である（Ｙ１）。ただし、機能ブロックａと機能ブロックｄとでは、周辺に位置する機能ブロックが異なる。具体的に、レイアウトデータ６１−Ｘにおける機能ブロックａの周辺には、機能ブロックｂ、機能ブロックｃが位置し、機能ブロック間の距離は大きい。一方、レイアウトデータ６１−Ｙにおける機能ブロックｄの周辺には、機能ブロックｅ、機能ブロックｇ、機能ブロックｈが位置し、機能ブロック間の距離は小さい。
【００６６】
これにより、図７に示すように、ＯＰＣ処理２１４の結果、描画データ６０−Ｘの機能ブロックａｘと、描画データ６０−Ｙの機能ブロックｄｘとでは、機能ブロックの外縁部分のパターンの形状が異なっている（Ｙ２）。
【００６７】
図８は、ＯＰＣ処理前後の機能ブロックのパターンの変化を模式的に説明する第２の図である。図８のレイアウトデータ６１−Ｘ、６１−Ｙは、図７と同様である。図８では、図７の描画データ６０−Ｘ、６０−Ｙに対して、ＯＰＣ処理２１４において、周囲の機能ブロックに応じてパターンの形状が変化する領域が網点で表されている。描画データ６０−Ｘ、６０−Ｙの機能ブロックの領域の網点で表される領域は、機能ブロックの外縁領域であって、ＯＰＣ処理２１４によって周囲の機能ブロックの影響を受ける領域を示す。
【００６８】
ＯＰＣ処理２１４は、網点で表される領域の内側の領域（例えば、ａｘ−１、ｄｘ−１）に位置するパターンに対しても行われている。ただし、網点で表される領域の内側に位置するパターンは、周囲の機能ブロックの配置や向き等の影響を受けない。したがって、同一のパターンであれば、ＯＰＣ処理の結果、同一のパターンの形状に補正される。したがって、描画データ６０−Ｘにおける機能ブロックａの内側領域ａｘ−１と、６０−Ｙにおける機能ブロックｄの内側領域ｄｘ−１とでは、パターンが一致する（Ｙ３）。
【００６９】
次に、図８で説明した、ＯＰＣ処理２１４によって周囲の機能ブロックの影響を受ける、機能ブロックの外縁領域を、詳細に説明する。
【００７０】
図９は、ＯＰＣ処理によって、周囲の機能ブロックの影響を受ける、機能ブロックの外縁領域を説明する第１の図である。図９は、ＯＰＣ処理２１４によって機能ブロックのパターンが縮小する場合を説明する。
【００７１】
図９において、機能ブロックｈの領域６１ｈ、及び、機能ブロックｉの領域６１ｉは、ＯＰＣ処理前のレイアウトデータにおけるパターンを示す。また、図９において、機能ブロックｈの領域６０ｈ、及び、機能ブロックｉの領域６０ｉは、ＯＰＣ処理後の描画データにおけるパターンを示す。
【００７２】
図９の例において、例えば、機能ブロックｈの領域６１ｈと、機能ブロックｉの領域６１ｉとの間隔が狭い。機能ブロックの間隔が狭い場合、ＯＰＣ処理２１４を行わない場合、パターン同士がつながってブリッジが生じてしまうことがある。このため、ＯＰＣ処理２１４では、機能ブロック間のパターンのブリッジを回避するために、機能ブロックｈ、ｉのパターンを削って縮小する。描画データの機能ブロックｈの領域６０ｈ、及び、機能ブロックｉの領域６０ｉにおける横線領域は、ＯＰＣ処理によってパターンが削られた領域を示す。
【００７３】
つまり、機能ブロックｈの領域６０ｈ、及び、機能ブロックｉの領域６０ｉにおける外周から点線までの領域が、図７で網点によって示した、周囲の機能ブロックの影響を受ける外縁領域に相当する。領域６０ｈ−１、６０ｉ−１は、機能ブロックｈの領域６０ｈ、及び、機能ブロックｉの領域６０ｉの外周から、図９に示す幅Ｃ１分の領域を除外した点線内の領域を示す。即ち、領域６０ｈ−１、６０ｉ−１は、内側データの領域に相当する。
【００７４】
なお、内側データの領域６０ｈ−１、６０ｉ−１は、例えば、ＯＰＣ処理２１４によって、周囲の機能ブロックの影響を受けて生じる変化の度合いが、許容できる程度まで小さい領域を示す。
【００７５】
図１０は、ＯＰＣ処理によって、周囲の機能ブロックの影響を受ける、機能ブロックの外縁領域を説明する第２の図である。図１０は、ＯＰＣ処理２１４によって機能ブロックのパターンが拡張する場合を説明する。
【００７６】
図１０において、機能ブロックｊの領域６１ｊ、及び、機能ブロックｋの領域６１ｋは、ＯＰＣ処理前のレイアウトデータにおけるパターンを示す。また、図１０において、機能ブロックｊの領域６０ｊ、及び、機能ブロックｋの領域６０ｋは、ＯＰＣ処理後の描画データにおけるパターンを示す。
【００７７】
図１０の例において、例えば、機能ブロックｊの領域６１ｊと、機能ブロックｋの領域６１ｋとの間隔が広い。機能ブロックの間隔が広い場合、パターンを広くしてもパターン同士のブリッジが発生する可能性は低い。このため、ＯＰＣ処理では、機能ブロックｊ、ｋのパターンを拡張する。これにより、幅の狭いパターンの断線（ネック）が回避できる。描画データの機能ブロックｊ、ｋの領域６０ｊ、６０ｋにおける横線領域は、ＯＰＣ処理によってパターンが拡張された領域を示す。
【００７８】
つまり、機能ブロックｊの領域６０ｊ、及び、機能ブロックｋの領域６０ｋにおける外周から点線までの領域が、図７で網点によって示した、周囲の機能ブロックの影響を受ける外縁領域に相当する。領域６０ｊ−１、６０ｋ−１は、機能ブロックｊの領域６０ｊ、及び、機能ブロックｋの領域６０ｋの外周から、図１０に示す幅Ｃ１分の領域を除外した点線内の領域を示す。即ち、領域６０ｊ−１、６０ｋ−１は、内側データの領域に相当する。
【００７９】
図９、図１０で説明した、機能ブロックの内側データを画定する幅Ｃ１は、例えば、光源によって露光された部分からの距離と光の強度分布等にしたがって、実験的に測定される。幅Ｃ１は、例えば、保存データ生成装置１０に対して、予め設定される。
【００８０】
図３〜図１０で説明してきたように、本実施の形態例における保存データ生成装置１０は、機能ブロックごとのＯＰＣ処理後の描画データから、機能ブロックの外縁領域を除外した内側データを取得する。そして、保存データ生成装置１０は、機能ブロックのＯＰＣの処理条件に基づいて、取得した内側データを、データ格納領域３１０が保存する内側データと比較するか否か判定する。そして、保存データ生成装置１０は、比較すると判定した場合、取得した内側データと、データ格納領域３１０が保存する内側データとのパターンを比較し、比較結果に応じて、取得した内側データをデータ格納領域３１０に保存する。
【００８１】
このように、保存データ生成装置１０は、同一のパターンを有する複数の機能ブロック間で、ストレージデバイス３００に内側データを重複して保存することを抑制する。これにより、保存データ生成装置１０は、ストレージデバイス３００に保存する保存データのデータ容量を低減させることができる。
【００８２】
また、保存データ生成装置１０は、検索処理の前に、取得した内側データが、既に保存されている内側データと比較して一致する可能性があるか否かを予測する。そして、保存データ生成装置１０は、一致する可能性がある場合に、取得した内側データと、既に保存されている内側データと比較する。さらに、保存データ生成装置１０は、比較処理に時間を要するか否かを予測する。
【００８３】
これにより、保存データ生成装置１０は、比較の結果一致する可能性が低く、比較処理に時間を要することが予測される場合、内側データの比較処理を回避することができる。このため、保存されている内側データの数が多い場合でも、保存データ生成装置１０は、高速に、保存データ生成処理を行うことができる。したがって、本実施の形態例における保存データ生成装置１０は、重複した描画データの保存を抑止するとともに、高速に、描画データを保存することができる。
【００８４】
また、保存データ生成装置１０は、機能ブロックごとの描画データから、機能ブロックの外縁領域の外側データを取得し、外側データとデータ格納領域３１０が保存する外側データとを、個別にデータ格納領域３１０に保存する。保存データ生成装置１０は、ＯＰＣ処理において周辺の機能ブロックの影響を受ける外側データについては、機能ブロックごとに保存する。
【００８５】
次に、図３〜図１０で説明してきた、本実施の形態例における保存データ生成処理をフローチャート図にしたがって説明する。初めに、保存データ生成処理の概要を、図１１のフローチャート図にしたがって説明する。
【００８６】
［保存データ生成処理の概要］
図１１は、本実施の形態例における保存データ生成処理の概要を説明するフローチャート図である。図１１のフローチャート図において、描画データ６０を蓄積して保存する工程Ｆ１は、工程Ｓ１１〜Ｓ１９を有する。また、保存した描画データ６０に基づいて、ある製品の描画データ６０を再生する工程Ｆ２は、工程Ｓ２０を有する。
【００８７】
Ｓ１１：図形ＯＰＣ処理プログラム２１４（図３）は、レイアウトデータ６１（図３〜図５の６１−Ａ、６１−Ｂ、図７〜図８の６１−Ｘ、６１−Ｙに対応）を入力として、図形処理及びＯＰＣ処理を行う。そして、図形ＯＰＣ処理プログラム２１４は、サマリーレポート６４、描画データ６０（図３〜図５の６０−Ａ、６０−Ｂ、図７〜図８の６０−Ｘ、６０−Ｙに対応）を生成する。サマリーレポート６４は、ＯＰＣ処理実行時のパラメータや、ＯＰＣ処理結果を有するログ情報である。
【００８８】
Ｓ１２：保存データ生成装置１０の機能ブロック抜き取りモジュール２１１は、描画データ６０と結線情報６２とセルネーミングルール６３とに基づいて、描画データ６０の機能ブロックの領域を識別する。結線情報６２、及び、セルネーミングルール６３は、メモリ１０２に格納されている。
【００８９】
結線情報６２は、電子回路における端子間の接続情報のデータを示す情報であって、例えば、ネットリスト等である。また、機能ブロック抜き取りモジュール２１１は、識別した機能ブロックごとに、内側データ６０−１（例えば、図３のＡ−１−１に対応）及び外側データ６０−２（例えば、図３のＡ−１−２に対応）を取得し、仮保存する。処理の詳細については、図１２のフローチャート図にしたがって後述する。
【００９０】
Ｓ１３：保存データ生成装置１０のパターン一致予測モジュール２１２は、サマリーレポート６４からＯＰＣ処理実行時のパラメータを取得する。ＯＰＣ処理実行時のパラメータについては、図１６のフローチャート図に従って、後述する。
【００９１】
Ｓ１４：パターン一致予測モジュール２１２は、工程Ｓ１３で取得したパラメータに基づいて、パターン検索判断基準テーブルＰ１を参照する。そして、パターン一致予測モジュール２１２は、描画データ６０が有する機能ブロックの内側データ６０−１が、既に保存されている他の内側データ６０−１のいずれかと、一致または類似する可能性があるか否かを予測する。処理の詳細については、図１６のフローチャート図にしたがって後述する。
【００９２】
Ｓ１５：一致または類似する可能性があると予測した場合（Ｓ１４のＹＥＳ）、保存データ生成装置１０のパターン検索モジュール２１３は、保存対象の描画データ６０が有する各機能ブロックの内側データ６０−１を、既に保存されている内側データ６０−１と比較する。
【００９３】
Ｓ１６：内側データ６０−１が、既に保存されている内側データ６０−１と一致せず類似もしていない場合（Ｓ１５のＮＯ）、パターン検索モジュール２１３は、機能ブロックと内側データ６０−１との対応情報を機能ブロック対応テーブルＴ１に更新する。また、パターン検索モジュール２１３は、内側データ６０−１のパターンをデータ格納領域３１０（図１）に、正式に保存する。
【００９４】
Ｓ１７：内側データ６０−１が、既に保存されている内側データ６０−１と一致、または類似している場合（Ｓ１４のＹＥＳ）、パターン検索モジュール２１３は、機能ブロックと、一致または類似している内側データ６０−１との対応情報を、機能ブロック対応テーブルＴ１に更新する。このとき、パターン検索モジュール２１３は、工程Ｓ１２で仮保存した内側データ６０−１削除する。
【００９５】
Ｓ１８：パターン検索モジュール２１３は、機能ブロックと外側データ６０−２との対応情報を機能ブロック対応テーブルＴ１に更新するとともに、取得した外側データ６０−２のパターンをデータ格納領域３１０に保存する。
【００９６】
Ｓ１９：保存データ生成装置１０は、描画データが保存されている製品の再注文や、不良な機能ブロックを有する製品の調査要求等を受け付ける。
【００９７】
Ｓ２０：保存データ生成装置１０は、製品の再注文に応じて、機能ブロック対応テーブルＴ１を参照し、データ格納領域３１０が記憶する内側データ６０−１と外側データ６０−２とを読み出すことにより、描画データ６５を再生成する。このように、本実施の形態例における保存データ生成装置１０は、機能ブロック対応テーブルＴ１と、データ格納領域３１０が保存する保存データ（内側データ６０−１及び外側データ６０−２）とに基づいて、描画データを再生成できる。
【００９８】
また、保存データ生成装置１０は、製品の調査要求に応じて機能ブロック対応テーブルＴ１を参照し、障害が発生する可能性がある機能ブロックを有する製品を抽出する。製品の障害が検出された場合、データ格納領域３１０に保存された描画データに基づいて、障害の波及範囲を検知することが求められる場合がある。前述したとおり、描画データは階層化されていないデータであり、同一のパターンの有する機能ブロックであってもＯＰＣ処理によってパターンの形状が変化している場合がある。したがって、障害が発生した機能ブロックが検知されている場合でも、描画データに基づいて、同一の機能ブロックを有する製品を抽出することが困難であった。
【００９９】
これに対し、本実施の形態例における保存データ生成装置１０は、同一のパターンを有する複数の機能ブロック間で、内側データを共通で使用する。したがって、保存データ生成装置１０は、同一のパターンを有する機能ブロックを容易に検出することができる。
【０１００】
例えば、保存データ生成装置１０は、不良な機能ブロックを特定する。そして、保存データ生成装置１０は、機能ブロック対応テーブルＴ１に基づいて、不良な機能ブロックと、内側データ６０−１を共通で使用する機能ブロックを検出する。そして、保存データ生成装置１０は、検出した機能ブロックが構成する製品を抽出することによって、障害が発生する可能性がある製品の範囲を調査できる。
【０１０１】
このように、保存データ生成装置１０は、障害が発生した機能ブロックと内側データを共有する機能ブロックを検索することで、障害が発生する可能性がある製品を効率的に検出することができる。したがって、保存データ生成装置１０は、機能ブロック対応テーブルＴ１と、データ格納領域３１０が保存する保存データ（内側データ６０−１及び外側データ６０−２）とに基づいて、障害の波及範囲を短時間で、容易に検出することができる。
【０１０２】
［機能ブロック抜き取り処理（図１１のＳ１２）］
図１２は、機能ブロック抜き取りモジュール２１１（図２）の処理（図１１のＳ１２）を説明するフローチャート図である。機能ブロック抜き取りモジュール２１１は、描画データ６０が有する各機能ブロックについて、工程Ｓ２１〜Ｓ２６の処理を行う。
【０１０３】
Ｓ２１：機能ブロック抜き取りモジュール２１１は、結線情報６２とセルネーミングルール６３とに基づいて、機能ブロックの情報を取得する。ネットリストの各セルは、機能ブロックに対応する。機能ブロック抜き取りモジュール２１１は、ネットリストの各セル名に基づいて、セルネーミングルール６３を参照し、セル名に対応するデバイスパターン（機能ブロックの種類）を取得する。
【０１０４】
Ｓ２２：機能ブロック抜き取りモジュール２１１は、セル名に基づいてレイアウトデータ６１を参照し、機能ブロックの中心座標（Ｘ，Ｙ）を取得する。この例において、座標は、描画データ６０の左下部を座標（Ｘ，Ｙ）＝（０，０）とした場合の相対的な座標である。ここで、工程Ｓ２１、Ｓ２２の処理を図１３にしたがって説明する。
【０１０５】
図１３は、図１２の工程Ｓ２１及びＳ２２を説明する図である。図１３は、結線情報６２、セルネーミングルール６３、及び、レイアウトデータ６１の一例を有する。
【０１０６】
図１３の結線情報６２は、ネット名ごとに結線情報６２と、対応するセル名の情報を有する。図１３の結線情報６２は、ネット名「Ｎｅｔ１」に対応して、結線情報６２「Ａ−１---Ａ−２」及びセル名「Ａ１１１１」を有する。同様にして、図１３の結線情報６２は、ネット名「Ｎｅｔ２」に対応して、結線情報６２「Ａ−２１---Ａ−１２」及びセル名「Ａ２２２２」を有する。
【０１０７】
図１３のセルネーミングルール６３は、セル名ごとにデバイスパターン（機能ブロックの種類）を有する。図１３のセルネーミングルール６３は、セル名「Ａ１１１１」に対応して、デバイスパターン「ＳＲＡＭ１」を有する。同様にして、図１３のセルネーミングルール６３は、セル名「Ａ２２２２」に対応して、デバイスパターン「ＳＲＡＭ２」を有する。また、図１３のレイアウトデータ６１は、セル名ごとに、セルの領域を示す座標情報を有する。
【０１０８】
具体的に、機能ブロック抜き取りモジュール２１１は、結線情報６２に基づいて、セル名「Ａ１１１１」を取得する。そして、機能ブロック抜き取りモジュール２１１は、セル名「Ａ１１１１」に基づいて、セルネーミングルール６３を参照し、セル名「Ａ１１１１」に対応する機能ブロックの種類「ＳＲＡＭ１」を取得する（図１２のＳ１１）。
【０１０９】
そして、機能ブロック抜き取りモジュール２１１は、セル名「Ａ１１１１」に基づいて、レイアウトデータ６１を参照して、セル名「Ａ１１１１」が位置する座標を取得する。そして、機能ブロック抜き取りモジュール２１１は、取得した座標に基づいて、セル名「Ａ１１１１」の中心座標（Ｘ，Ｙ）を算出する（図１２のＳ１２）。
【０１１０】
このように、機能ブロック抜き取りモジュール２１１は、結線情報６２、セルネーミングルール６３、及び、レイアウトデータ６１に基づいて、機能ブロックごとの種類、及び、中心座標（Ｘ，Ｙ）を取得する。図１２のフローチャート図に戻る。
【０１１１】
Ｓ２３：機能ブロック抜き取りモジュール２１１は、外側データを画定する外縁領域の幅「Ｃ１」を算出する。外縁領域の幅「Ｃ１」は、図９、図１０で説明した、ＯＰＣ処理で周囲のパターンに応じて影響が生じる、機能ブロックの外縁領域の幅「Ｃ１」に対応する。機能ブロック抜き取りモジュール２１１は、外縁領域の幅「Ｃ１」を、例えば式１にしたがって求める。
Ｃ１＝ＯＰＣ処理時の周辺取り込み幅＋ＭＡＳＫ最小グリッド…式１
式１における、ＯＰＣ処理時の周辺取り込み幅は、例えば、実験的に測定された実測値に基づいて算出される。この例では、ＯＰＣ処理時の周辺取り込み幅は、例えば、「１ｕｍ」である。ＯＰＣ処理時の周辺取り込み幅は、ＯＰＣ処理で周囲のパターンに応じて影響が生じる距離範囲である。また、式１における、ＭＡＳＫ最小グリッドは、描画データ６０の（マスクの）グリッドの最小単位である。式１における、ＭＡＳＫ最小グリッドは、例えば、「０．０５ｍｍ」である。機能ブロック抜き取りモジュール２１１は、ＭＡＳＫ最小グリッドを加算して値「Ｃ１」を算出することによって、グリッドによる誤差を吸収する。
【０１１２】
Ｓ２４：機能ブロック抜き取りモジュール２１１は、工程Ｓ２３で算出した外縁領域の幅「Ｃ１」に基づいて、ＯＰＣ処理で周囲のパターンによって影響を受けない内側データ６０−１の領域を画定する。機能ブロック抜き取りモジュール２１１は、内側データ６０−１の領域「Ｂ１」を、例えば式２にしたがって求める。
Ｂ１=（ｌｘ＋Ｃ１,ｌｙ−Ｃ１,ｒｘ−Ｃ１,ｒｙ＋Ｃ１）…式２
式２における座標「ｌｘ，ｌｙ，ｒｘ，ｒｙ」は、機能ブロックの領域を画定する座標である。例えば、座標「ｌｘ，ｌｙ（＝Ｘ，Ｙ）」は、機能ブロックの左上の座標であって、座標「ｒｘ，ｒｙ（＝Ｘ，Ｙ）」は、機能ブロックの右下の座標である。前述したとおり、座標は、描画データ６０の左下部を座標（Ｘ，Ｙ）＝（０，０）とした場合の相対的な座標である。機能ブロック抜き取りモジュール２１１は、例えば、レイアウトデータ６１に基づいて、機能ブロックを画定する座標を取得する。そして、機能ブロック抜き取りモジュール２１１は、式２にしたがって、機能ブロックの領域から外縁領域の幅「Ｃ１」分、狭くした内側データ６０−１の領域「Ｂ１」の座標を取得する。
【０１１３】
Ｓ２５：機能ブロック抜き取りモジュール２１１は、描画データ６０から、工程Ｓ２４で算出した領域「Ｂ１」のデータを抜き取り、内側データ６０−１として一時的に保存する。
【０１１４】
Ｓ２６：機能ブロック抜き取りモジュール２１１は、機能ブロックの領域から、内側データ６０−１の領域「Ｂ１」を除いた外縁領域の外側データ６０−２を、データ格納領域３１０に保存する。また、機能ブロック抜き取りモジュール２１１は、さらに、描画データ６０における、機能ブロックの領域以外の領域のデータを、データ格納領域３１０に保存する。
【０１１５】
図１４、図１５は、図１２のフローチャート図にしたがって、図４、図５に示した製品Ａ、製品Ｂの描画データ６０−Ａ、６０−Ｂから切り出した、内側データ６０−１及び外側データ６０−２を表す図である。
【０１１６】
図１４は、図４に示した製品Ａの描画データ６０−Ａの内側データ６０−１及び外側データ６０−２を示す図である。図１４に示すように、機能ブロック抜き取りモジュール２１１は、機能ブロックＡ−１、Ａ−２、Ａ−３、Ａ−４のそれぞれについて、内側データ６０−１、及び、網点で表す外側データ６０−２を切り出す。
【０１１７】
図１４の例において、機能ブロックＡ−１の内側データ識別名は「Ａ−１−１」であって、外側データ識別名は「Ａ−１−２」である。同様にして、機能ブロックＡ−２の内側データ識別名は「Ａ−２−１」であって、外側データ識別名は「Ａ−２−２」である。他の機能ブロックＡ−３、Ａ−４についても同様である。これらの識別名は、図６の機能ブロック対応テーブルＴ１に対応する。
【０１１８】
図１５は、図５に示した製品Ｂの描画データ６０−Ｂの内側データ６０−１及び外側データ６０−２を示す図である。図１５に示すように、機能ブロック抜き取りモジュール２１１は、機能ブロックＢ−１、Ｂ−２、Ｂ−３、Ｂ−４のそれぞれについて、内側データ６０−１、及び、網点で表す外側データ６０−２を切り出す。
【０１１９】
図１５の例において、機能ブロックＢ−１の内側データ識別名は「Ｂ−１−１」であって、外側データ識別名は「Ｂ−１−２」である。同様にして、機能ブロックＢ−２の内側データ識別名は「Ｂ−２−１」であって、外側データ識別名は「Ｂ−２−２」である。他の機能ブロックＢ−３、Ｂ−４についても同様である。図１４と同様にして、これらの識別名は、図６の機能ブロック対応テーブルＴ１に対応する。
【０１２０】
［パターン一致予測処理（図１１のＳ１４）、パターン検索処理（図１１のＳ１５〜Ｓ１８）］
図１６は、パターン一致予測モジュール２１２（図２）の処理（図１１のＳ１４）、及び、パターン検索モジュール２１３（図２）の処理（図１１のＳ１５〜Ｓ１８）を説明するフローチャート図である。
【０１２１】
図１６のフローチャート図おいて、工程Ｓ３１〜Ｓ３３の処理は、パターン一致予測モジュール２１２の処理（図１１のＳ１４）に対応する。また、図１６のフローチャート図おいて、工程Ｓ３４〜Ｓ３９の処理は、パターン検索モジュール２１３の処理（図１１のＳ１５〜Ｓ１８）に対応する。
【０１２２】
Ｓ３１：パターン一致予測モジュール２１２は、ＯＰＣ処理２１４（図３）が出力するサマリーレポート６４から、ＯＰＣ処理実行時のパラメータを取得する。パラメータは、例えば、ＯＰＣツールのプログラム名やバージョン、処理した機能ブロックのパターンの密度平均値、処理した機能ブロックの、辺の数が基準値「ｘ」以上のパターン数等である。ＯＰＣツールのプログラム名は、図６で前述したとおり、ＯＰＣ処理を実行したプログラム名を示す。また、バージョンは、ＯＰＣ処理を実行したプログラムのバージョンを示す。
【０１２３】
機能ブロックのパターンの密度平均値は、機能ブロックの領域における、パターンの密度の平均値を示す。機能ブロックのパターンの密度平均値は、例えば、機能ブロックの領域のサイズと、機能ブロックが有するパターンの数、及び、各パターンのサイズ等に基づいて、算出される。機能ブロックのパターンの密度平均値は、例えば、機能ブロックの領域に位置するパターンの数が多いほど大きい。
【０１２４】
また、機能ブロックの辺の数は、ＯＰＣ処理後の機能ブロックの各パターンが有する辺の数を示す。また、辺の数の基準値「ｘ」は、例えば、「１００」である。したがって、機能ブロックの辺の数が基準値以上のパターン数は、機能ブロックが有するパターンのうち、辺の数が「１００」以上の辺を有するパターンの数を示す。ＯＰＣ処理の結果、機能ブロックが有するパターンは小刻みに補正される。したがって、辺の数が「１００」を超えるパターンが生じ得る。ただし、辺の数の基準値「ｘ」は、この例に限定されるものではなく、実測値等に基づいて調整される。
【０１２５】
Ｓ３２：パターン一致予測モジュール２１２は、サマリーレポート６４から取得したパラメータに基づいて（Ｓ３１）、パターン検索判断基準テーブルＰ１が有する各項目（条件）に該当するか否かを判定する。パターン一致予測モジュール２１２は、描画データ６０の機能ブロックごとに、パターン検索判断基準テーブルＰ１が有する複数の条件に該当する度合いに応じて、パターンが一致する可能性を示すスコアを算出する。
【０１２６】
Ｓ３３：パターン一致予測モジュール２１２は、工程Ｓ３２で算出したスコアが、基準値「Ｘ」以上であるか否か（スコア≧基準値「Ｘ」）を判定する。この例において、基準値「Ｘ」は、値「３」である。
【０１２７】
スコアが基準値「Ｘ」未満である場合（Ｓ３３のＮＯ）、パターン一致予測モジュール２１２は、対象の機能ブロックの内側データ６０−１が、既に保存されている内側データ６０−１と一致する可能性があると判定する。この場合、パターン検索モジュール２１３は、後述する工程Ｓ３４〜Ｓ３６で、対象の機能ブロックの内側データ６０−１を、既に保存されている内側データ６０−１と比較する。
【０１２８】
一方、スコアが基準値「Ｘ」以上の場合（Ｓ３３のＹＥＳ）、パターン一致予測モジュール２１２は、対象の機能ブロックの内側データ６０−１が、既に保存されている内側データ６０−１と一致する可能性が低いと予測する。また、スコアが基準値「Ｘ」以上の場合（Ｓ３３のＹＥＳ）、パターン一致予測モジュール２１２は、さらに、比較処理に長時間を要すると予測する。
【０１２９】
図１７は、パターン検索判断基準テーブルＰ１の一例を説明する図である。図１７のパターン検索判断基準テーブルＰ１は、ＯＰＣの処理条件に対応する４つの項目（条件）を有する。また、パターン検索判断基準テーブルＰ１は、項目ごとに重みを有する。重みは、機能ブロックが項目の条件に該当する場合における、スコアへの寄与率を示す。
【０１３０】
パターン検索判断基準テーブルＰ１の１つ目の項目（条件）は、ＯＰＣツールの実績が無い場合を示す。具体的に、対象の機能ブロックを処理したＯＰＣツールが、既に保存されている保存データ（内側データ及び外側データ）を処理した実績が無い場合を示す。
【０１３１】
ＯＰＣ処理は、内側データが含むパターンに対しても行われる。ＯＰＣ処理の内容は、ＯＰＣツールによって異なる場合がある。このため、ＯＰＣツールが異なることによって、内側データのパターンが同一であっても、ＯＰＣ処理後の内側データのパターンが異なる場合がある。このため、対象の機能ブロックを処理したＯＰＣツールの実績が無い場合、ＯＰＣ処理前に同一のパターンを有する内側データが保存されている場合でも、一致または類似しない可能性が高くなる。
【０１３２】
この例では、ＯＰＣツールの実績が無いという条件に該当した場合の重みは、「２」に設定される。前述したとおり、基準値「Ｘ」は、値「３」である。したがって、１つ目の項目のみに該当した場合、スコアは基準値「Ｘ」を超えない。ただし、他の項目にも該当した場合、スコアは基準値「Ｘ」を超える。
【０１３３】
パターン検索判断基準テーブルＰ１の２つ目の項目（条件）は、ＯＰＣツールのバージョンの実績が無い場合を示す。具体的に、対象の機能ブロックを処理したバージョンのＯＰＣツールが、既に保存されている保存データ（内側データ及び外側データ）を処理した実績が無い場合を示す。
【０１３４】
同一のＯＰＣツールであっても、ツールがバージョンアップすることによって、補正の精度が向上することや、補正の機能が追加されることがある。このため、ＯＰＣ処理の内容は、ＯＰＣツールのバージョンによって異なる場合がある。したがって、ＯＰＣツールのバージョンが異なることによって、内側データのパターンが同一であっても、ＯＰＣ処理後の内側データのパターンが異なる場合がある。このため、対象の機能ブロックを処理したＯＰＣツールのバージョンの実績が無い場合、ＯＰＣ処理前に同一のパターンを有する内側データが保存されている場合でも、一致または類似しない可能性が高くなる。
【０１３５】
この例では、ＯＰＣツールのバージョンの実績が無いという条件に該当した場合の重みは、「２」に設定される。前述したとおり、基準値「Ｘ」は、値「３」である。したがって、２つ目の項目のみに該当した場合、スコアは基準値「Ｘ」を超えない。ただし、他の項目にも該当した場合、スコアは基準値「Ｘ」を超える。
【０１３６】
また、パターン検索判断基準テーブルＰ１の３つ目の項目（条件）は、機能ブロックが有するパターンの密度の平均値が基準値「ｎ１」を超える場合を示す。機能ブロックが有するパターンの密度の平均値が基準値「ｎ１」を超える場合、機能ブロックが有するパターンが多く、パターンが密集していることを示す。この場合、機能ブロックの内側データのパターンが、既に保存された内側データと一致する可能性は低く、パターンの比較処理にも時間を要することが予測される。
【０１３７】
この例では、機能ブロックが有するパターンの密度の平均値が基準値「ｎ１」を超えるという条件に該当した場合の重みは、「３」に設定される。したがって、３つ目の項目の条件に該当する場合、他の項目の条件に該当しない場合であっても、スコアは基準値「Ｘ」以上の値になる。
【０１３８】
このように、パターン一致予測モジュール２１２は、機能ブロックが有する密度の平均値が基準値「ｎ１」以上の場合、対象の機能ブロックの内側データが、既に保存された内側データと一致しない可能性が高く、比較処理にも長い時間を要する旨、予測する。なお、基準値「ｎ１」は、例えば、実測値等に基づいて設定される。
【０１３９】
また、パターン検索判断基準テーブルＰ１の４つ目の項目（条件）は、機能ブロックが有する、辺の数が「ｘ」個以上のパターン数が、基準値「ｎ２」を超える場合を示す。前述したとおり、辺の数「ｘ」は、例えば、「１００」である。辺の数「ｘ」、及び、基準値「ｎ２」は、例えば、実測値等に基づいて設定される。機能ブロックが有する、辺の数が「ｘ」個以上のパターン数が、基準値「ｎ２」を超える場合、機能ブロックが複雑な形状のパターンを多数、有することを示す。この場合、機能ブロックの内側データのパターンが、既に保存された内側データと一致する可能性は低く、パターンの比較処理にも時間を要することが予測される。
【０１４０】
この例では、辺の数が「ｘ」個以上のパターン数が、基準値「ｎ２」を超えるという条件に該当した場合の重みは、「３」に設定される。したがって、４つ目の項目の条件に該当する場合、他の項目の条件に該当しない場合であっても、スコアは基準値「Ｘ」以上の値になる。このように、パターン一致予測モジュール２１２は、辺の数が「ｘ」個以上のパターン数が、基準値「ｎ２」を超える場合、対象の機能ブロックの内側データが、既に保存された内側データと一致しない可能性が高く、比較処理にも長い時間を要する旨、予測する。なお、基準値「ｎ２」は、例えば、実測値等に基づいて設定される。
【０１４１】
パターン一致予測モジュール２１２は、サマリーレポート６４から取得したＯＰＣの処理条件に係るパラメータに基づいて、パターン検索判断基準テーブルＰ１の各項目のフラグをセットする。パターン一致予測モジュール２１２は、項目の条件に該当する場合に、フラグ「１」を、該当しない場合にフラグ「０」をセットする。そして、パターン一致予測モジュール２１２は、項目のフラグの値に重みを乗算し、各項目の小計を算出する。パターン一致予測モジュール２１２は、各項目の小計を合計したスコアを算出する。
【０１４２】
図１７の例では、例えば、対象の機能ブロックは、当該機能ブロックを処理したＯＰＣツールの実績、及び、バージョンの実績は無く、辺の数が「ｘ」個以上のパターン数が、基準値「ｎ２」を超える。したがって、スコアは、値「７」となる。このため、パターン一致予測モジュール２１２は、対象ブロックが、既に保存された内側データと一致しない可能性が高い旨、判定する。
【０１４３】
このように、パターン一致予測モジュール２１２は、複数のＯＰＣの処理条件（項目）に基づいて、内側データを、データ格納領域３１０が保存する内側データと比較するか否か判定する。これにより、パターン一致予測モジュール２１２は、不要な比較処理が発生することを抑制することができるとともに、比較処理に時間がかかることを抑制することができる。したがって、パターン一致予測モジュール２１２は、保存データの生成処理を高速に行うことができる。
【０１４４】
また、パターン一致予測モジュール２１２は、複数の項目に基づいて、内側データが、既に保存されている内側データが一致する可能性、及び、比較処理にかかる時間を予測する。複数の要素に基づいて予測することにより、パターン一致予測モジュール２１２は、内側データが一致または類似する可能性があるか否かを、より高精度に予測することができる。これにより、パターン一致予測モジュール２１２は、効率的に、保存データの生成処理を行うことができる。
【０１４５】
また、複数の処理条件は、機能ブロックが含むパターンの平均密度、機能ブロックが含むパターンの辺の数、光近接効果補正を実行するプログラムの実績の有無、当該プログラムのバージョンの実績の有無のいずれか、または、その組み合わせである。これにより、パターン一致予測モジュール２１２は、一致する可能性を予測可能な処理条件に組み合わせに基づいて、内側データが一致または類似する可能性があるか否かを、高精度に予測することができる。
【０１４６】
また、複数の処理条件は、重みを有する。そして、パターン一致予測モジュール２１２は、機能ブロックが処理条件に該当する場合に重みを適用した値を算出し、複数の処理条件の値の合計値に基づいて、比較するか否かを判定する。これにより、パターン一致予測モジュール２１２は、処理条件の重みを柔軟に調整することが可能になり、内側データが一致または類似する可能性があるか否かを、より適切に予測することができる。
【０１４７】
また、図１７の例では、パターンの平均密度、及び、パターンの辺の数の重みは、プログラムの実績の有無、及び、当該プログラムのバージョンの実績の有無の重みより大きい。このように、条件に該当した場合に一致しない可能性がより高くなることが予測される条件の重みにより大きな値が設定される。これにより、パターン一致予測モジュール２１２は、内側データが一致または類似する可能性があるか否かを、適切に予測することができる。
【０１４８】
なお、各項目の重みは、図１７の例に限定されるものではない。各項目の重みは、例えば、実績や経験則にしたがって設定される。例えば、新たに、実績が無いＯＰＣツールや、実績が無いバージョンのＯＰＣツールを採用する場合、使用の初期段階では重みの値を設定することは容易ではない。したがって、パターン一致予測モジュール２１２は、例えば、使用の初期段階では、項目の重みを、単独で条件に該当した場合に基準値「Ｘ」を超えない値に設定しておく。そして、パターン一致予測モジュール２１２は、例えば、一定の期間における比較の実績に基づいて、重みの値を調整する。
【０１４９】
なお、この例において、基準値「Ｘ」は、値「３」である。しかしながら、この例に限定されるものではない。基準値「Ｘ」の値は、比較結果や比較処理に要する時間に応じて、調整されてもよい。図１６のフローチャート図に戻る。
【０１５０】
Ｓ３４：スコアが基準値「Ｘ」未満の場合（Ｓ３３のＮＯ）、まず、パターン検索モジュール２１３は、機能ブロック対応テーブルＴ１（図６）を参照し、種類が同一の内側データ６０−１を検索する。機能ブロックの種類が異なる場合、パターンが一致しない可能性が高い。したがって、パターン検索モジュール２１３は、既に記憶されている内側データ６０−１のうち、機能ブロックの種類が同一の内側データ６０−１を比較の対象とする。
【０１５１】
また、パターン検索モジュール２１３は、検索した内側データ６０−１のうち、ＯＰＣ処理の設定が同一または類似する内側データ６０−１を検索する。ＯＰＣ処理の設定とは、図１２のフローチャート図で説明した、ＯＰＣ処理時の周辺取り込み幅や、ＭＡＳＫ最小グリッドの設定値等である。ＯＰＣ処理の設定が大きく異なる場合、内側データの領域範囲が異なることによって、パターンが一致しない可能性が高くなる。
【０１５２】
したがって、パターン検索モジュール２１３は、既に記憶されている内側データ６０−１のうち、ＯＰＣ処理の設定が同一の内側データ６０−１を比較の対象とする。このように、パターン検索モジュール２１３は、対象の内側データを、データ格納領域３１０に保存された内側データのうち、外縁領域の幅が対象の内側データと同一の内側データと比較する。これにより、パターン検索モジュール２１３は、ＯＰＣ処理の設定に基づいて、既に保存されている内側データ６０−１のうち、一致しない可能性の高い内側データ６０−１を、予め、比較対象から除外する。これにより、パターン検索モジュール２１３は、パターンの比較処理を効率的に行うことができる。
【０１５３】
そして、パターン検索モジュール２１３は、検索によって抽出した内側データ６０−１の識別名を、処理日時（ＯＰＣ条件、図６）、もしくは、最終参照日の新しい順に並び替えた、内側データ識別名のリストを生成する。最終参照日は、図６で前述したとおり、内側データ６０−１が、データ格納領域３１０から読み出された日付を示す。処理日時が新しいほど、処理日が近いことから、一致または類似する可能性が高いことが想定される。また、最終参照日が新しいほど、最近、参照されたデータであることにより、一致または類似する可能性が高いことが想定される。このように、日付の新しい順に並び替えることにより、パターン検索モジュール２１３は、より速く一致または類似する内側データ６０−１を検索することができる。
【０１５４】
Ｓ３５：パターン検索モジュール２１３は、内側データ識別名のリストの日付の新しい順に、比較対象とする内側データ識別名を選択する。また、パターン検索モジュール２１３は、選択した内側データ識別名の内側データ６０−１が、所定の期間（この例では、３６５日）内に参照されたデータであるか否かを判定する。具体的に、パターン検索モジュール２１３は、比較対象として選択した内側データ６０−１の「現在の日付−最終参照日≦３６５（Ｙ）」であるか否かを判定する。
【０１５５】
Ｓ３６：比較対象として選択した内側データ６０−１が、「現日付−最終参照日≦３６５（Ｙ）」に該当する場合（Ｓ３５のＹ以下）、パターン検索モジュール２１３は、選択した内側データ６０−１を、データ格納領域３１０から読み出す。そして、パターン検索モジュール２１３は、対象の機能ブロックの内側データ６０−１と、読み出した内側データ６０−１のパターンを比較する。
【０１５６】
パターン検索モジュール２１３は、工程Ｓ３４で生成した内側データ識別名のリストのうち、「現在の日付−最終参照日≦３６５（Ｙ）」を満たす内側データを対象として（工程Ｓ３５のＹ以下）、順次、パターンの比較処理を行う。なお、パターン検索モジュール２１３は、図６の機能ブロック対応テーブルＴ１の傾き情報（回転、Ｘ反転、Ｙ反転）を有する場合は、傾き情報を加味して、パターンを比較する。
【０１５７】
一方、比較対象として選択した内側データ６０−１が「現日付−最終参照日＞３６５（Ｙ）」に該当する場合（Ｓ３５のＹを超過）、パターン検索モジュール２１３は、パターンの比較を行わない。つまり、パターン検索モジュール２１３は、既に保存されている内側データ６０−１のうち、最後に参照された日付から１年以上経過している内側データ６０−１を比較の対象外とする。
【０１５８】
最後に参照された日付から長い期間が経過している場合、ＯＰＣ実行時の環境が大きく変化していることが予測される。ＯＰＣ実行時の環境とは、例えば、ＯＰＣ処理を実行するＯＳや、パターンの集積度等である。ＯＰＣ実行時の環境が大きく変化している場合、パターンが一致しない可能性が高くなる。したがって、パターン検索モジュール２１３は、既に保存されている内側データ６０−１のうち、最後に参照された日付から長い期間が経過している内側データ６０−１を比較の対象から除外する。
【０１５９】
なお、パターン検索モジュール２１３は、比較対象として選択した内側データ６０−１が、「現日付−処理日付（ＯＰＣ条件、図６）＞３６５（Ｙ）」に該当する場合に、パターンの比較を行わない旨、判定してもよい。同様にして、ＯＰＣ処理が行われた日付から長い期間が経過している場合、ＯＰＣ実行時の環境が大きく変化していることが予測される。したがって、パターン検索モジュール２１３は、既に保存されている内側データ６０−１のうち、ＯＰＣ処理が行われた日付から長い期間が経過している内側データ６０−１を比較の対象から除外する。
【０１６０】
このように、パターン検索モジュール２１３は、さらに、内側データを、データ格納領域３１０に保存された内側データのうち、基準の期間内にデータ格納領域３１０から読み出された内側データと比較する。これにより、パターン検索モジュール２１３は、既に保存されている内側データ６０−１のうち、一致しない可能性の高い内側データ６０−１を、予め、比較対象から除外する。このため、パターン検索モジュール２１３は、パターンの比較処理を効率的に行うことができる。
【０１６１】
Ｓ３７：パターン検索モジュール２１３は、対象の機能ブロックの内側データ６０−１のパターンが、既に保存されている内側データ６０−１のパターンのいずれかと、一致または類似するか否かを判定する。
【０１６２】
Ｓ３８：一致または類似する内側データ６０−１があった場合（Ｓ３７のＹＥＳ）、パターン検索モジュール２１３は、対象の機能ブロックと、一致または類似していた内側データの識別名との対応情報を機能ブロック対応テーブルＴ１に登録する。そして、パターン検索モジュール２１３は、一時的に保存した（図１２のＳ２５）、対象の機能ブロックの内側データ６０−１を削除する。
【０１６３】
Ｓ３９：一致または類似する内側データ６０−１がない場合（Ｓ３７のＹＥＳ）、パターン検索モジュール２１３は、対象の機能ブロックの内側データに識別名を付与する。そして、パターン検索モジュール２１３は、対象の機能ブロックと、付与した内側データの識別名との対応情報を機能ブロック対応テーブルＴ１に登録する。また、パターン検索モジュール２１３は、スコアが基準値「Ｘ」以上の場合（Ｓ３３のＹＥＳ）にも同様の処理を行う。
【０１６４】
このように、本実施の形態例における保存データ生成装置１０は、既に保存されている内側データ６０−１とパターンが同一または類似する内側データ６０−１を重複して保存しない。そして、保存データ生成装置１０は、対象の機能ブロックに、パターンが同一または類似する内側データ６０−１の識別名を関連付ける。これにより、保存データ生成装置１０は、パターンが同一の内側データ６０−１を共通で使用することができる。
【０１６５】
［具体例］
図１８は、機能ブロック抜き取りモジュール２１１の処理の具体例を説明する図である。図１８に示す描画データ６０は、例えば、ＣＰＵコア、ＧＰＵコア、メモリインターフェース、Ｉ／Ｏコントローラ、ビデオコントローラ等の機能ブロックの領域を有する。機能ブロック抜き取りモジュール２１１は、図１８に示す各機能ブロックの領域を判断し、ＯＰＣ処理が影響する外縁領域分、小さくした内側データの領域を切り出す（図１２のＳ２１〜Ｓ２６）。
【０１６６】
具体的に、機能ブロック抜き取りモジュール２１１は、例えば、ＣＰＵコア６０１の領域Ｃ−１を切り出し、内側データＣ−１−１と外側データＣ−１−２とを取得する。機能ブロック抜き取りモジュール２１１は、例えば、内側データＣ−１−１及び外側データＣ−１−２をデータ格納領域３１０に保存する。
【０１６７】
また、機能ブロック抜き取りモジュール２１１は、例えば、Ｉ／Ｏコントローラ６０２の領域Ｃ−２を切り出し、内側データＣ−２−１と外側データＣ−２−２とを取得する。機能ブロック抜き取りモジュール２１１は、例えば、内側データＣ−２−１及び外側データＣ−２−２をデータ格納領域３１０に保存する。機能ブロック抜き取りモジュール２１１は、他の機能ブロックについても同様にして、内側データ及び外側データを取得し、データ格納領域３１０に保存する。
【０１６８】
次に、パターン一致予測モジュール２１２は、機能ブロックごとに、対象の機能ブロックの内側データが、既に保存されている内側データと一致する可能性があるか否かを判定する（図３１〜図３３）。具体例では、パターン一致予測モジュール２１２は、ＣＰＵコア６０１の内側データＣ−１−１、及び、Ｉ／Ｏコントローラ６０２の内側データＣ−２−１が、既に保存されている内側データと一致する可能性がある旨、判定する（図１６のＳ３３のＮＯ）。
【０１６９】
そして、パターン検索モジュール２１３は、ＣＰＵコア６０１の内側データＣ−１−１、及び、Ｉ／Ｏコントローラ６０２の内側データＣ−２−１を、既に保存されている内側データと比較する。
【０１７０】
図１９は、図１８で示した機能ブロックの内側データと同一または類似する内側データが検出される場合の例を示す図である。図１９には、データ格納領域３１０に保存されている、機能ブロックの種類ごとの内側データ群８０〜８２を示す。例えば、ＣＰＵコア６０１の内側データ群８０は、内側データＸ-１-１、Ｙ-１-１、Ｚ-１-１を有する。また、Ｉ／Ｏコントローラ６０２の内側データ群８１は、内側データＸ-２-１、Ｙ-２-１、Ｚ-２-１を有する。
【０１７１】
パターン検索モジュール２１３は、各機能ブロックの内側データ群８０〜８２を、処理日付または参照日付のうち新しい日付をキーにして、ソートする。図１９の例において、ＣＰＵコア６０１の内側データ群８０は、内側データＹ-１-１、Ｘ-１-１、Ｚ-１-１の順にソートされる（図１６のＳ３４）。
【０１７２】
また、この例において、内側データＹ-１-１、Ｘ-１-１、Ｚ-１-１の最終参照日は、１年以内である（図１６のＳ３５のＹ以下）。したがって、パターン検索モジュール２１３は、内側データＹ-１-１から順に、ＣＰＵコア６０１の内側データＣ−１−１と比較する（Ｓ３６）。
【０１７３】
図１９の例では、ＣＰＵコア６０１の内側データＣ−１−１と、登録されている内側データＹ-１-１とが一致する（図１６のＳ３７のＹＥＳ）。したがって、パターン検索モジュール２１３は、データ格納領域３１０に保存された、内側データＣ−１−１を削除する。また、パターン検索モジュール２１３は、機能ブロック対応テーブルＴ１の機能ブロックＣ−１の内側データ識別名に、識別名「Ｙ-１-１」を更新する（Ｓ３８）。また、パターン検索モジュール２１３は、機能ブロック対応テーブルＴ１に、機能ブロックＣ−１の外側データ識別名「Ｃ-１-２」、種類「ＣＰＵコア」、及び、処理日等を更新する。
【０１７４】
同様にして、図１９の例では、Ｉ／Ｏコントローラ６０２の内側データＣ−２−１と、登録されている内側データＺ-２-１とが一致する（図１６のＳ３７のＹＥＳ）。したがって、パターン検索モジュール２１３は、データ格納領域３１０に保存された、内側データＣ−２−１を削除する。また、パターン検索モジュール２１３は、機能ブロック対応テーブルＴ１の機能ブロックＣ−２の内側データ識別名に、識別名「Ｚ-２-１」を更新する（Ｓ３８）。また、パターン検索モジュール２１３は、機能ブロック対応テーブルＴ１に、機能ブロックＣ−２の外側データ識別名「Ｃ-２-２」、種類「Ｉ／Ｏコントローラ」、及び、処理日等を更新する。
【０１７５】
図２０は、図１８で示した機能ブロックの内側データと同一または類似する内側データが検出されない場合の例を示す図である。図２０の機能ブロックの種類ごとの内側データは、図１９と同様である。
【０１７６】
図２０の例では、ＣＰＵコア６０１の内側データＣ−１−１と、登録されている内側データＹ-１-１、Ｘ-１-１、Ｚ-１-１とは一致せず、類似もしていない（図１６のＳ３７のＮＯ）。したがって、パターン検索モジュール２１３は、機能ブロック対応テーブルＴ１の機能ブロックＣ−１の内側データ識別名に、識別名「Ｃ-１-１」を更新する（Ｓ３９）。また、パターン検索モジュール２１３は、機能ブロック対応テーブルＴ１に、機能ブロックＣ−１の外側データ識別名「Ｃ-１-２」、種類「ＣＰＵコア」、及び、処理日等を更新する。
【０１７７】
同様にして、Ｉ／Ｏコントローラ６０２の内側データＣ−２−１と、登録されている内側データＸ-２-１、Ｙ-２-１、Ｚ-２-１とは一致せず、類似もしていない（図１６のＳ３７のＮＯ）。したがって、パターン検索モジュール２１３は、機能ブロック対応テーブルＴ１の機能ブロックＣ−２の内側データ識別名に、識別名「Ｃ-２-１」を更新する（Ｓ３９）。また、パターン検索モジュール２１３は、機能ブロック対応テーブルＴ１に、機能ブロックＣ−２の外側データ識別名「Ｃ-２-２」、種類「Ｉ／Ｏコントローラ」、及び、処理日等を更新する。
【０１７８】
以上のように、本実施の形態例における保存データ生成装置１０は、機能ブロックごとのＯＰＣ処理後の描画データから、機能ブロックの外縁領域を除外した第１の内側データを取得する。また、保存データ生成装置１０は、機能ブロックのＯＰＣ処理の処理条件に基づいて、第１の内側データを、記憶部（データ格納領域３１０）が保存する第２の内側データと比較するか否か判定する。そして、保存データ生成装置１０は、比較すると判定した場合、第１の内側データと第２の内側データとのパターンを比較し、比較結果に応じて、第１の内側データを記憶部に保存する。
【０１７９】
このように、保存データ生成装置１０は、同一のパターンを有する複数の機能ブロック間で、内側データを重複して保存することを抑制し、保存データのデータ容量を低減させることができる。また、保存データ生成装置１０は、対象の内側データが、既に保存されている内側データと比較して一致する可能性があるか否かを予測することにより、一致する可能性が低く、比較処理に時間を要する内側データの比較処理を抑制することができる。これにより、本実施の形態例における保存データ生成装置１０は、重複した描画データの保存を抑止するとともに、高速に、描画データを保存することができる。
【０１８０】
図２１は、保存された内側データ及び外側データと、機能ブロック対応テーブルＴ１に基づいて描画データ６０を再現する処理を説明する図である（図１１のＳ２０）。初めに、保存データ生成装置１０は、機能ブロック対応テーブルＴ１を参照し、対象の製品の描画データ６０が有する機能ブロックを抽出する。次に、保存データ生成装置１０は、抽出した機能ブロックの内側データと外側データの識別名を取得する。
【０１８１】
例えば、保存データ生成装置１０は、ＣＰＵコア６０１の機能ブロックの内側データの識別名「Ｙ−１−１」、及び、外側データの識別名「Ｃ−１−２」を取得する。そして、保存データ生成装置１０は、データ格納領域３１０に保存されている内側データＹ−１−１、及び、外側データＣ−１−２（図示せず）を読み出す。
【０１８２】
また、保存データ生成装置１０は、機能ブロック対応テーブルＴ１を参照し、機能ブロックの中心座標情報に基づいて、読み出した内側データＹ−１−１、及び、外側データＣ−１−２を配置する。保存データ生成装置１０は、他の機能ブロックについても同様にして、データ格納領域３１０から、内側データ及び外側データを読み出して配置する。これにより、保存データ生成装置１０は、保存データ（内側データ及び外側データ）、及び、機能ブロック対応テーブルＴ１に基づいて、図２１に示す描画データ６０を再現することができる。
【０１８３】
このように、本実施の形態例における保存データ生成装置１０は、データ格納領域３１０が保存する外側データと、複数の機能ブロックで共通に使用する内側データとに基づいて、機能ブロックの描画データを生成することができる。これにより、保存データ生成装置１０は、描画データの重複を抑制して保存する場合であっても、元の描画データを生成することができる。
【０１８４】
［他の実施の形態例］
上記の実施の形態例では、製品間で、同一のパターンを有する内側データを共通で使用するデータとして保存する場合を例示した。ただし、この例に限定されるものではない。保存データ生成装置１０は、同一の製品が有する、同一のパターンを有する内側データを共通で使用するデータとして保存してもよい。
【０１８５】
これにより、保存データ生成装置１０は、同一の製品を構成する、複数の機能ブロック間で、内側データを重複して保存することを抑制し、さらに、保存データのデータ容量を低減させることができる。
【０１８６】
以上の実施の形態をまとめると、次の付記のとおりである。
【０１８７】
（付記１）
処理部は、
機能ブロックごとの光近接効果補正後の描画データから、前記機能ブロックの外縁領域を除外した第１の内側データを取得する取得工程と、
前記機能ブロックの光近接効果補正の処理条件に基づいて、前記第１の内側データを、記憶部が保存する第２の内側データと比較するか否か判定する判定工程と、
比較すると判定した場合、前記第１の内側データと前記第２の内側データとのパターンを比較し、比較結果に応じて、前記第１の内側データを前記記憶部に保存する保存工程と、
を有する保存データの生成方法。
【０１８８】
（付記２）
付記１において、
前記判定工程は、複数の前記処理条件に基づいて、前記第１の内側データを、前記記憶部が保存する第２の内側データと比較するか否か判定する、保存データの生成方法。
【０１８９】
（付記３）
付記２において、
前記複数の処理条件は、前記機能ブロックが含むパターンの平均密度、前記機能ブロックが含む前記パターンの辺の数、前記光近接効果補正を実行するプログラムの実績の有無、当該プログラムのバージョンの実績の有無の組み合わせである、保存データの生成方法。
【０１９０】
（付記４）
付記２または３において、
前記複数の処理条件はそれぞれ重みを有し、
前記判定工程は、前記機能ブロックが前記処理条件に該当する場合に前記重みを適用した値を算出し、前記複数の処理条件の前記値の合計値に基づいて、前記第１の内側データを、前記記憶部が保存する第２の内側データと比較するか否か判定する、保存データの生成方法。
【０１９１】
（付記５）
付記４において、
前記パターンの平均密度、及び、前記パターンの辺の数の前記重みは、前記プログラムの実績の有無、及び、当該プログラムのバージョンの実績の有無の前記重みより大きい、保存データの生成方法。
【０１９２】
（付記６）
付記１乃至５のいずれかにおいて、
前記判定工程は、さらに、前記第１の内側データを、前記第２の内側データのうち、基準の期間内に前記記憶部から読み出された前記第２の内側データと比較する、保存データの生成方法。
【０１９３】
（付記７）
付記１乃至６のいずれかにおいて、
前記判定工程は、さらに、前記第１の内側データを、前記第２の内側データのうち、前記外縁領域の幅が、前記第１の内側データと同一の前記第２の内側データと比較する、保存データの生成方法。
【０１９４】
（付記８）
付記１乃至７のいずれかにおいて、
前記取得工程は、さらに、前記機能ブロックごとの描画データから、前記機能ブロックの外縁領域の第１の外側データを取得し、
前記保存工程は、さらに、前記第１の外側データを、前記記憶部が保存する第２の外側データと個別に前記記憶部に保存する、
保存データの生成方法。
【０１９５】
（付記９）
付記８において、さらに、
前記記憶部が保存する前記第１の外側データと、前記記憶部が保存する複数の機能ブロックで共通に保存する内側データとに基づいて、前記機能ブロックの描画データを生成する生成工程を有する、保存データの生成方法。
【０１９６】
（付記１０）
機能ブロックごとの光近接効果補正後の描画データから、前記機能ブロックの外縁領域を除外した第１の内側データを取得し、
前記機能ブロックの光近接効果補正の処理条件に基づいて、前記第１の内側データを、記憶部が保存する第２の内側データと比較するか否か判定し、
比較すると判定した場合、前記第１の内側データと前記第２の内側データとのパターンを比較し、比較結果に応じて、前記第１の内側データを前記記憶部に保存する、
処理をコンピュータに実行させる保存データ生成プログラム。
【０１９７】
（付記１１）
付記１０において、
複数の前記処理条件に基づいて、前記第１の内側データを、前記記憶部が保存する第２の内側データと比較するか否か判定する、保存データの生成プログラム。
【０１９８】
（付記１２）
付記１１において、
前記複数の処理条件は、前記機能ブロックが含むパターンの平均密度、前記機能ブロックが含む前記パターンの辺の数、前記光近接効果補正を実行するプログラムの実績の有無、当該プログラムのバージョンの実績の有無の組み合わせである、保存データの生成プログラム。
【０１９９】
（付記１３）
付記１１または１２において、
前記複数の処理条件はそれぞれ重みを有し、
前記機能ブロックが前記処理条件に該当する場合に前記重みを適用した値を算出し、前記複数の処理条件の前記値の合計値に基づいて、前記第１の内側データを、前記記憶部が保存する第２の内側データと比較するか否か判定する、保存データの生成プログラム。
【０２００】
（付記１４）
付記１３において、
前記パターンの平均密度、及び、前記パターンの辺の数の前記重みは、前記プログラムの実績の有無、及び、当該プログラムのバージョンの実績の有無の前記重みより大きい、保存データの生成プログラム。
【０２０１】
（付記１５）
付記１０乃至１４のいずれかにおいて、
さらに、前記第１の内側データを、前記第２の内側データのうち、基準の期間内に前記記憶部から読み出された前記第２の内側データと比較する、保存データの生成プログラム。
【０２０２】
（付記１６）
処理部と、
第２の内側データを記憶する記憶部と、を有し、
前記処理部は、機能ブロックごとの光近接効果補正後の描画データから、前記機能ブロックの外縁領域を除外した第１の内側データを取得し、前記機能ブロックの光近接効果補正の処理条件に基づいて、前記第１の内側データを、前記記憶部が保存する第２の内側データと比較するか否か判定し、比較すると判定した場合、前記第１の内側データと前記第２の内側データとのパターンを比較し、比較結果に応じて、前記第１の内側データを前記記憶部に保存する、保存データ生成装置。
【０２０３】
（付記１７）
付記１６において、
前記処理部は、複数の前記処理条件に基づいて、前記第１の内側データを、前記記憶部が保存する第２の内側データと比較するか否か判定する、保存データの生成装置。
【０２０４】
（付記１８）
付記１７において、
前記複数の処理条件は、前記機能ブロックが含むパターンの平均密度、前記機能ブロックが含む前記パターンの辺の数、前記光近接効果補正を実行するプログラムの実績の有無、当該プログラムのバージョンの実績の有無の組み合わせである、保存データの生成装置。
【０２０５】
（付記１９）
付記１７または１８において、
前記複数の処理条件はそれぞれ重みを有し、
前記処理部は、前記機能ブロックが前記処理条件に該当する場合に前記重みを適用した値を算出し、前記複数の処理条件の前記値の合計値に基づいて、前記第１の内側データを、前記記憶部が保存する第２の内側データと比較するか否か判定する、保存データの生成装置。
【０２０６】
（付記２０）
付記１９において、
前記パターンの平均密度、及び、前記パターンの辺の数の前記重みは、前記プログラムの実績の有無、及び、当該プログラムのバージョンの実績の有無の前記重みより大きい、保存データの生成装置。
【符号の説明】
【０２０７】
１０：保存データ生成装置、１０１：ＣＰＵ、１０２：メモリ、１０３：通信インタフェース部、１０５：表示部、１０６：入力部、１０７：外部インタフェース部、３００：ストレージデバイス、３１０：データ格納領域、３２０：ストレージサーバ、２１１：機能ブロック抜き取りモジュール、２１２：パターン一致予測モジュール、２１３：パターン検索モジュール、Ｔ１：機能ブロック対応テーブル、Ｐ１：パターン検索判断基準テーブル
【図１】
2016018114.tif 000003
【図２】
2016018114.tif 000004
【図３】
2016018114.tif 000005
【図４】
2016018114.tif 000006
【図５】
2016018114.tif 000007
【図６】
2016018114.tif 000008
【図７】
2016018114.tif 000009
【図８】
2016018114.tif 000010
【図９】
2016018114.tif 000011
【図１０】
2016018114.tif 000012
【図１１】
2016018114.tif 000013
【図１２】
2016018114.tif 000014
【図１３】
2016018114.tif 000015
【図１４】
2016018114.tif 000016
【図１５】
2016018114.tif 000017
【図１６】
2016018114.tif 000018
【図１７】
2016018114.tif 000019
【図１８】
2016018114.tif 000020
【図１９】
2016018114.tif 000021
【図２０】
2016018114.tif 000022
【図２１】
2016018114.tif 000023