(57)【特許請求の範囲】
【請求項１】
半導体装置のレイアウトデータであり複数のレイヤの配置を規定するレイアウトデータがレイヤ同士の重なり関係を規定するデザインルールに適合しているか否かを検証するための検証プログラムがレイアウトデータの適否を正しく検証できるか否かをテストするためのテストデータを生成する方法であって、
夫々が各レイヤに対応している擬似レイヤを含む擬似レイヤ群が平面上に規則的に配置された第１平面データを生成する第１平面データ生成工程と、
前記擬似レイヤ群が平面上に規則的に配置された第２平面データであり、第１平面データと重ね合わせたときに第２平面データ上の各擬似レイヤが第１平面データ上のそれぞれの擬似レイヤと重なる第２平面データを生成する第２平面データ生成工程と、
第１平面データと第２平面データとが重なった第１レイアウトデータであって、第２平面データ上の各擬似レイヤが第１平面データ上のそれぞれの擬似レイヤと重なっている第１レイアウトデータを含むテストレイアウトデータを生成するテストレイアウトデータ生成工程と、
を備えるテストデータ生成方法。
【請求項２】
複数のレイヤのうち、少なくとも１つのレイヤに対応する擬似レイヤであって、テストレイアウトデータの第１平面データと第２平面データとが重なる領域以上の面積の領域を有する擬似レイヤが平面上に配置された第３平面データを生成する第３平面データ生成工程をさらに備えており、
テストレイアウトデータ生成工程は、第１平面データと第２平面データと第３平面データとが重なり合った第２レイアウトデータを含むテストレイアウトデータを生成し、
第２レイアウトデータは、第１レイアウトデータが、第３平面データの擬似レイヤと重なっていることを特徴とする請求項１に記載のテストデータ生成方法。
【請求項３】
第１平面データ生成工程は、擬似レイヤ群が一つの方向に沿って並んで配置された第１平面データを生成し、
第２平面データ生成工程は、擬似レイヤ群が他の一つの方向に沿って並んで配置された第２平面データを生成することを特徴とする請求項１又は２に記載のテストデータ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証プログラムをテストするためのテストデータを生成する技術に関する。
【背景技術】
【０００２】
例えばＬＳＩ（Large Scale Integration）等の半導体装置の設計工程の一つに、半導体装置を構成する複数の構成要素の配置を決めるレイアウト設計工程がある。レイアウト設計工程では、デザインルールに従って、各構成要素が配置されたレイアウトデータが生成される。レイアウトデータでは、複数の構成要素のそれぞれが「レイヤ」という概念を用いて記述される。例えば、レイアウトデータに含まれる複数のレイヤのそれぞれは、１つのマスクを用いて半導体基板に形成される１又は複数の構成要素に対応する。レイアウトデータは、複数のレイヤが配置されたデータである。デザインルールでは、各レイヤの寸法、各レイヤ間の距離、レイヤ同士の重なり関係等の、半導体装置を設計する際に従うべきルールが規定されている。
【０００３】
レイアウトデータを生成すると、レイアウトデータがデザインルールに適合しているか否かを検証する。レイアウトデータの検証には、検証プログラムが用いられる。検証プログラムは、デザインルールに基づいて生成される。検証プログラムは、レイアウトデータを解析し、レイアウトデータに記述されているレイヤがデザインルールに沿っているか違反しているか否かを確かめる。
【０００４】
特許文献１，２に、検証プログラムを生成する技術が開示されている。一つの半導体装置は多数の構成要素を含むため、デザインルールも複雑になる。そのため、検証プログラム自体が正しく動作するか否かを確かめる必要がある。即ち、検証プログラムを検証するための技術が必要となる。特許文献２には、検証プログラムが正しく動作することを確かめる技術として、デザインルールに適合した第１のテストデータと、デザインルールに適合していない第２のテストデータを用意し、それぞれのテストデータを検証プログラムに入力する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２５３４０９号公報
【特許文献２】特開２００６−３５０４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来、検証プログラムのテストが煩雑であった。例えば特許文献２の技術では、デザインルールに適合しているテストデータと、デザインルールに適合していないテストデータとを準備しなければならない。本発明は、上記の実情に鑑みて創作されたものであり、複数のテストデータを準備することなく、検証プログラムをテストすることができるテストデータを効率的に生成する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本明細書で開示される技術は、半導体装置のレイアウトデータであり複数のレイヤの配置を規定するレイアウトデータがレイヤ同士の重なり関係を規定するデザインルールに適合しているか否かを検証するための検証プログラムがレイアウトデータの適否を正しく検証できるか否かをテストするためのテストデータを生成する方法である。テストデータ生成方法は、夫々が各レイヤに対応している擬似レイヤを含む擬似レイヤ群が平面上に規則的に配置された第１平面データを生成する第１平面データ生成工程と、前記擬似レイヤ群が平面上に規則的に配置された第２平面データであり、第１平面データと重ね合わせたときに第２平面データ上の各擬似レイヤが第１平面データ上のそれぞれの擬似レイヤと重なる第２平面データを生成する第２平面データ生成工程と、第１平面データと第２平面データとが重なった第１レイアウトデータであって、第２平面データ上の各擬似レイヤが第１平面データ上のそれぞれの擬似レイヤと重なっている第１レイアウトデータを含むテストレイアウトデータを生成するテストレイアウトデータ生成工程と、を備える。
また、本明細書で開示される技術は、テストデータ生成方法に関する。生成されるテストデータは、半導体装置のレイアウトデータがデザインルールに適合しているか否かを検証するための検証プログラムがレイアウトデータの適否を正しく検証できるか否かをテストするためのテストデータである。前述したように、レイアウトデータは、半導体装置の複数の構成要素、即ち、レイヤの配置を規定するデータである。ここで、デザインルールは、レイアウトデータに記述されているレイヤ同士の重なり関係を規定するルールである。このテストデータ生成方法は、第１平面データ生成工程と第２平面データ生成工程とテストレイアウトデータ生成工程とを備える。第１平面データ生成工程は、夫々が各レイヤに対応している擬似レイヤを含む擬似レイヤ群が一つの平面上に規則的に配置された第１平面データを生成する。第２平面データ生成工程は、擬似レイヤ群が他の一つの平面上に規則的に配置された第２平面データであり、第１平面データと重ね合わせたときに第２平面データ上の各擬似レイヤが第１平面データ上のそれぞれの擬似レイヤと重なる第２平面データを生成する。テストレイアウトデータ生成工程は、第１平面データと第２平面データとが重なったレイアウトデータを含むテストレイアウトデータを生成する。ここで、「第１平面データと第２平面データを重ねる」という表現は、第１平面データが表す擬似レイヤの平面配置と第２平面データが表す擬似レイヤの平面配置を重ねることを意味する。また、「第２平面データ上の擬似レイヤが第１平面データ上の擬似レイヤと重なる」という表現は、第２平面上で擬似レイヤが占める領域の一部が、第１平面上で各擬似レイヤが占める領域の一部と重なることを意味する。
【０００８】
上記した方法で生成されるテストレイアウトデータでは、第１平面データに配置された擬似レイヤと第２平面データに配置された擬似レイヤ群のそれぞれの擬似レイヤが重なっている。理解を助けるために、第１から第３レイヤの３つのレイヤで構成されるレイアウトデータを例に挙げて説明する。第１平面データ生成工程では、第１から第３レイヤのそれぞれに対応する第１から第３擬似レイヤが一つの平面上に規則的に配置された第１平面データを生成する。第２平面データ生成工程では、第１から第３レイヤのそれぞれに対応する第１から第３擬似レイヤが規則的に一つの平面上に配置された第２平面データを生成する。ここで、第２平面データ生成工程では、第１平面データと重ねたときに、第１平面データの第１擬似レイヤと第２平面データの第１から第３擬似レイヤとが重なり、第１平面データの第２擬似レイヤと第２平面データの第１から第３擬似レイヤとが重なり、第１平面データの第３擬似レイヤと第２平面データの第１から第３擬似レイヤとが重なるように第２平面データを生成する。テストレイアウト生成工程が生成するテストレイアウトデータは、第１平面データと第２平面データが重なり合っており、第１平面データの第１擬似レイヤと第２平面データの第１から第３擬似レイヤとが重なり、第１平面データの第２擬似レイヤと第２平面データの第１から第３擬似レイヤとが重なり、第１平面データの第３擬似レイヤと第２平面データの第１から第３擬似レイヤとが重なっている。
【０００９】
この方法によれば、複数のレイヤのそれぞれが、他の全てのレイヤのそれぞれと重なる領域を有する模擬的なテストデータを生成することができる。このテストデータを検証プログラムに入力すると、検証プログラムは、第１平面データ上の擬似レイヤと第２平面データ上の擬似レイヤの重なり領域のそれぞれが、デザインルールに適合しているか否かを出力する。その出力を正しいデザインルールと照合することによって、検証プログラムが正しく動作しているか否かを確認することができる。このテストデータを利用することによって、検証プログラムをテストするために、複数のテストデータを生成する必要がなくなる。
【００１０】
３つのレイヤの重なり関係を規定するデザインルールに好適なテストデータの生成方法を以下に示す。このテストデータ生成方法は、複数のレイヤのうち、少なくとも１つのレイヤに対応する擬似レイヤであって、テストレイアウトデータの第１平面データと第２平面データとが重なる領域以上の面積の領域を有する擬似レイヤが平面上に配置された第３平面データを生成する第３平面データ生成工程をさらに備えていてもよい。テストレイアウトデータ生成工程は、第１平面データと第２平面データと第３平面データとが重なり合ったレイアウトデータを含むテストレイアウトデータを生成してもよい。この構成によれば、３つのレイヤが重なる領域を有するテストデータを生成することができる。
【００１１】
上記のテストデータ生成方法は、４以上のｎ個のレイヤの重なり関係を規定するデザインルールに対するテストデータの生成方法に容易に拡張できる。４つのレイヤの重なり関係を規定するデザインルールの場合、夫々が各レイヤに対応している擬似レイヤを含む擬似レイヤ群が一つの平面上に規則的に配置された第３平面データと、擬似レイヤ群が他の一つの平面上に規則的に配置された第４平面データであり、第３平面データと重ね合わせたときに第４平面データ上の各擬似レイヤが第３平面データ上のそれぞれの擬似レイヤと重なる第４平面データを生成する。即ち、第３平面データは第１平面データと擬似レイヤの配置が同じであり、第４平面データは第２平面データと擬似レイヤの配置が同じである。但し、第３平面上の擬似レイヤと第４平面上の各擬似レイヤが重なった領域の面積が、第１平面データと第２平面データが重なる領域の面積以上である。テストレイアウトデータ生成工程は、第１〜第４平面データが重なったデータであり、第３平面上の擬似レイヤと第４平面上の各擬似レイヤが重なっている各領域に、第１平面データと第２平面データを重ねたテストレイアウトデータを生成する。そのようなテストレイアウトデータは、４つの擬似レイヤの重なり関係の全ての組み合わせが含まれる。そのようなテストレイアウトデータを検証プログラムに入力することによって、検証プログラムは、４つの擬似レイヤの重なり関係の全ての組み合わせに対してデザインルールに適合しているか否かを出力する。その出力を正しいデザインルールと照合することによって、検証プログラムが正しく動作しているか否かを確認することができる。
【００１２】
第１平面データ生成工程は、擬似レイヤ群が一つの方向に沿って並んで配置された第１平面データを生成することが好ましい。第２平面データ生成工程は、擬似レイヤ群が他の一つの方向に沿って並んで配置された第２平面データを生成することが好ましい。
この構成では、第２平面データ生成工程は、第１平面データを回転させることによって、生成することができる。この結果、より簡単に、テストレイアウトデータを生成することができる。
【発明の効果】
【００１３】
本明細書が開示する技術によると、検証プログラムが正しく動作するか否かを効率よくテストすることができる。
【図面の簡単な説明】
【００１４】
【図１】テスト装置の構成を示すブロック図を示す。
【図２】半導体装置の模式図を示す。
【図３】２つの擬似レイヤの重なりを有するテストレイアウトデータの生成処理のフローチャートを示す。
【図４】第１平面データを示す。
【図５】実施例１の第２平面データを示す。
【図６】実施例１の２つの擬似レイヤの重なりを有するテストレイアウトデータを示す。
【図７】３つの擬似レイヤの重なりを有するテストレイアウトデータの生成処理のフローチャートを示す。
【図８】第３平面データを示す。
【図９】３つの擬似レイヤの重なりを有するテストレイアウトデータを示す。
【図１０】４つの擬似レイヤの重なりを有するテストレイアウトデータを示す。
【図１１】実施例２の第２平面データを示す。
【図１２】実施例２の２つの擬似レイヤの重なりを有するテストレイアウトデータを示す。
【図１３】変形例の２つの擬似レイヤの重なりを有するテストレイアウトデータを示す。
【図１４】変形例の２つの擬似レイヤの重なりを有するテストレイアウトデータを示す。
【発明を実施するための形態】
【００１５】
本明細書に開示される技術の実施形態のいくつかを示す。
（形態１）本明細書の技術によって生成されるテストデータは、以下のように表現することができる。即ち、テストデータは、第１平面データと第２平面データを含んでいる。第１平面データは、夫々が各レイヤに対応している擬似レイヤ群が一つの平面に規則的に配置されている。第２平面データは、擬似レイヤ群が他の一つの平面上に規則的に配置されたデータであり、第１平面データと重ねたときに第２平面データ上の各擬似レイヤが第１平面データ上の擬似レイヤ群のそれぞれと重なる平面データである。
（形態２）本明細書の技術によって生成されるテストデータは、以下のようにも表現することができる。即ち、テストデータは、夫々が各レイヤに対応している擬似レイヤ群が一つの平面に規則的に配置されている平面配置データを複数の平面に亘って有していてもよい。テストデータは、複数の平面配置データを相互に重ねたときに、一の平面データ上の各擬似レイヤが他の平面データ上の各擬似レイヤと重なる。
（形態３）本明細書の技術によって生成されるテストデータを利用して、検証プログラムをテストする方法は、以下のように表現することができる。この方法は、半導体装置のレイアウトデータであり複数のレイヤの配置を規定するレイアウトデータがレイヤ同士の重なり関係を規定するデザインルールに適合しているか否かを検証するための検証プログラムがレイアウトデータの適否を正しく検証できるか否かをテストする方法である。この方法は、夫々が各レイヤに対応している擬似レイヤ群が一つの平面に規則的に配置されている平面配置データを複数の平面に亘って有しており、相互に重ねたときに、一の平面データ上の各擬似レイヤが他の平面データ上の各擬似レイヤと重なるテストデータを用意する工程と、テストデータを与えて検証プログラムを実行する工程と、検証プログラムの実行結果を、テストデータにおけるデザインルールの不適合箇所を示す（既知の）正解データと比較する工程と、を含んでいてもよい。このテスト方法によれば、複数のテストデータを利用することなく、検証プログラムをテストすることができる。
（形態４）第１平面データ生成工程は、長方形の領域を有する擬似レイヤ群が一つの方向に沿って並んで配置されており全体で正方形となる第１平面データを生成してもよい。第２平面データ生成工程は、第１平面データをコピーし、そのコピーを９０度回転させることによって、第２平面データを生成してもよい。
（形態５）テストレイアウト生成工程は、第３平面データの擬似レイヤのそれぞれに、第１平面データと第２平面データを重ねたテストレイアウトデータを生成する。
（形態６）テストレイアウトデータのフォーマットは、半導体装置のレイアウトデータのフォーマットと同じである。
（形態７）テストレイアウトデータの検証対象である検証プログラムは、レイアウトデータを入力すると、レイヤが重なっている領域の全てを抽出するとともに、各重なり領域がデザインルールに適合しているか否かの情報を出力する。
【実施例１】
【００１６】
本発明を実施した実施例について図面を参照しながら説明する。図１は、本実施例のテスト装置１０の構成ブロック図を示す。テスト装置１０は、ＣＰＵ１２と、記憶部１４と、操作部１８と、表示部２０を備える。各部１２，１４，１８，２０は、バス２２によって接続されている。ＣＰＵ１２は、記憶部１４に記憶されているプログラムに従って処理を実行する。プログラムには、半導体装置のレイアウトデータがデザインルールに適合しているか否かを検証する処理が記述されている。即ち、このテスト装置１０は、レイアウトデータがデザインルールに適合しているか否かを検証する装置である。また、このテスト装置１０は、検証プログラムが正しく動作するか否かを確かめるためのテストレイアウトデータを生成することもできる。
【００１７】
記憶部１４は、ＲＡＭ、ＲＯＭ等で構成されている。記憶部１４には、ＣＰＵ１２が処理を実行するためのプログラムが記憶されている。また、記憶部１４には、デザインルール１６が記憶されている。デザインルール１６には、ＬＳＩ等の半導体装置を設計する際に、従うべきルールや制約等が記述されている。制約の一つとして、デザインルール１６には、各レイヤの重なり関係が規定されている。
【００１８】
操作部１８は、キーボードやマウス等を備える。ユーザは、操作部１８を操作することによって、テスト装置１０に情報（レイアウトデータ）を入力したり、ＣＰＵ１２に所定の処理を実行させることができる。表示部２０は、ＣＰＵ１２によって指示された情報を表示することができる。なお、表示部２０は、例えば、印刷装置等、ＣＰＵ１２によって指示された情報を出力するものであってもよい。出力情報のひとつとして、テスト装置１０は、入力されたレイアウトデータが規定するレイヤ群の重なり領域がデザインルールに適合しているか否かを領域毎に示す。
【００１９】
図２は、半導体装置の配線パターンの一部の模式図を示す。デザインルール１６では、第１配線パターン３０と第２配線パターン３２とは、互いに重なる領域３４を有することが必須であることが規定されている。また、第３配線パターン４０と第４配線パターン４２とは、互いに重なる領域４４を有することが必須であることが規定されている。一方において、第１配線パターン３０は、第３配線パターン４０及び第４配線パターン４２とは重なってはならず、また、第２配線パターン３２は、第３配線パターン４０及び第４配線パターン４２とは重なってはならないことが規定されている。
【００２０】
第１から第４配線パターン３０，３２，４０，４２は、それぞれ異なるマスクを用いて半導体基板（図示省略）に形成される。半導体装置のレイアウトデータでは、各配線パターン３０，３２，４０，４２は、それぞれ異なるレイヤとして記述されている。即ち、配線パターンの一つひとつがレイヤに相当する。以下では、第１配線パターン３０に対応するレイヤを第１レイヤ３０と、第２配線パターン３２に対応するレイヤを第２レイヤ３２と、第３配線パターン４０に対応するレイヤを第３レイヤ４０と、第４配線パターン４２に対応するレイヤを第４レイヤ４２と呼ぶ。
【００２１】
ユーザは、操作部１８を操作することによって、レイアウトデータの各レイヤの重なりを検証するための検証プログラムを生成する。検証プログラムは、半導体装置のレイアウトデータがデザインルール１６に適合しているか否かを検証するためのプログラムである。ユーザは、デザインルール１６に従って、検証プログラムを生成する。生成された検証プログラムでは、第１レイヤ３０と第２レイヤ３２との重なり、及び、第３レイヤ４０と第４レイヤ４２との重なりが必須であり、第１レイヤ３０と第３レイヤ４０及び第４レイヤ４２との重なり、及び、第２レイヤ３２と第３レイヤ４０及び第４レイヤ４２との重なりが禁止であることが規定されているはずである。
【００２２】
次に、テストレイアウトデータの生成方法を説明する。なお、以下では、「テストレイアウトデータ」を単に「テストデータ」と称する。また、テストデータはレイアウトデータと同じフォーマットを有しており、レイアウトデータと同様に検証プログラムへの入力データとして用いることができる。
【００２３】
図３は、ＣＰＵ１２で実行されるテストデータ生成処理のフローチャートである。図４から図６は、テストデータの生成処理の過程で生成されるデータを示す。ＣＰＵ１２は、第１レイヤ３０から第４レイヤ４２のそれぞれを模擬的に示す擬似レイヤを生成する（Ｓ１２）。レイヤ３０，３２，４０，４２は、それぞれ擬似レイヤ５２，５４，５６，５８に対応する（図４参照）。擬似レイヤ５２，５４，５６，５８は、各レイヤの重なり関係を調べるためのデータであり、その機能が特定されている必要はない。また、実際のレイアウトデータでは第１レイヤ３０から第４レイヤ４２のそれぞれが異なる大きさや形状を有している場合であっても、各擬似レイヤ５２，５４，５６，５８は、元のレイヤの形状に関係なく、同一形状で生成される。続いて、ＣＰＵ１２は、各擬似レイヤ５２，５４，５６，５８が一方向（図４の左右方向）に並んだ第１平面データ５０を生成する（Ｓ１４）。図４は、第１平面データ５０を示す。第１平面データ５０では、各擬似レイヤ５２，５４，５６，５８が隣り合う擬似レイヤと接して並べられている。第１平面データ５０は、正方形である。言い換えれば、各擬似レイヤ５２，５４，５６，５８の長手方向（図４の上下方向）の長さが、短手方向（図４の左右方向）の長さの４倍となっている。以下では、第ｎレイヤ（ｎは１から４の自然数）に対応する擬似レイヤを第ｎ擬似レイヤと呼ぶ。
【００２４】
次いで、ＣＰＵ１２は、第１平面データ５０をコピーするとともに、平面の垂直線周りに９０度回転した第２平面データ６０を生成する（Ｓ１６）。図５は、第２平面データ６０を示す。第２平面データ６０の擬似レイヤ６２，６４，６６，６８は、それぞれレイヤ３０，３２，４０，４２に対応する。ＣＰＵ１２は、第１平面データ５０と第２平面データ６０とを重ね合わせて、テストデータ７０を生成する（Ｓ１８）。
【００２５】
図６は、テストデータ７０を示す。図６の各領域内の数字の組合せ（ｘ，ｙ）は、当該領域が一方の平面データの第ｘ擬似レイヤと、他方の平面データの第ｙ擬似レイヤとが重なる領域であることを示す。例えば、領域７２は、第２平面データ６０の第１擬似レイヤ６２と第１平面データ５０の第２擬似レイヤ５４とが重なっている領域であり、領域７４は、第２平面データ６０の第２擬似レイヤ６４と第１平面データ５０の第３擬似レイヤ５６とが重なっている領域である。テストデータ７０は、第１から第４擬似レイヤのそれぞれが重なる領域が、２つずつ存在する。例えば、第１擬似レイヤと第２擬似レイヤとが重なる領域は、領域７２と領域７６の２つの領域が存在する。ＣＰＵ１２は、テストデータ７０を生成する際に、例えば第１平面データ５０の第１擬似レイヤ５２と第２平面データ６０の第１擬似レイヤ６２とが重なる領域７８のように、同一の擬似レイヤが重なる領域を削除してもよい。あるいは、当該領域を擬似レイヤが重なっていない単一の擬似レイヤの領域として取り扱ってもよい。
【００２６】
テスト装置１０は、ユーザによって生成された検証プログラムを実行する。即ち、テスト装置１０は、テストデータ７０を入力としてレイアウト検証処理を実行する。これにより、検証プログラムがデザインルール１６に適合しているか否かをテストする。レイアウト検証処理では、テストデータ７０の領域ごとに、デザインルール１６に適合しているか否かが判定される。例えば、デザインルール１６では、第１配線パターン３０（第１レイヤ３０）と配線パターン３２（第２レイヤ３２）との重なりが必須である。領域７２は、第１擬似レイヤと第２擬似レイヤとが重なっているため、デザインルール１６に適合している。従って、レイアウト検証処理が実行されると、領域７２は、デザインルール１６に適合しているという結果が得られるはずである。一方、領域７４は、デザインルール１６に適合していないという結果が得られるはずである。
【００２７】
ユーザは、検証プログラムの出力とは別に、テストデータ７０がデザインルール１６に適合していると仮定したときの正解データを用意する。正解データのフォーマットは、レイアウト検証処理の結果のフォーマットと同じにする。即ち、正解データは、検証プログラムが正しく動作すると仮定したときのテストデータ７０に対する検証プログラムの出力に等しい。別言すれば、正解データには、テストデータ７０に記述されているレイヤの重なり領域ごとに、その重なり領域がデザインルールに適合しているか否かが記されている。例えば、正解データには、領域７２がデザインルール１６に適合し、領域７４が不適合であり、領域７６が適合していることが記されている。このとき、正解データは、各重なり領域を、その行位置と列位置を表す座標として表されてもよい。例えば、領域７２は座標（１，２）で表され、領域７４は座標（２，３）で表される。
【００２８】
正解データは、生成されたテストデータ７０に基づいてユーザが用意し、テスト装置１０に記憶される。ＣＰＵ１２は、レイアウト検証処理で検証されたレイアウトデータ７０の検証結果と正解データとを比較する。検証結果と正解データとが一致する場合には、ＣＰＵ１２は検証プログラムが正しいと判断する。一方において、検証結果と正解データとが一致しない場合には、検証プログラムが誤りであると判断する。検証プログラムが誤りである場合、ＣＰＵ１２は、表示部２０に検証プログラムが誤りであることを表示する。これにより、ユーザに検証プログラムの修正を促す。
【００２９】
上記した実施例のテストデータ７０は、第１平面データ５０と第２平面データ６０とを重ね合わせることによって生成される。テストデータ７０は、半導体装置の各要素に対応する第１から第４レイヤ３０，３２，４０，４２を模擬した第１平面データ５０の第１から第４擬似レイヤ５２，５４，５６，５８と、第２平面データ６０の第１から第４擬似レイヤ６２，６４，６６，６８のそれぞれが重なる領域を有する。即ち、テストデータ７０では、全てのレイヤ３０，３２，４０，４２の重なりが擬似的に再現されている。テストデータ７０を利用してレイアウト検証処理することによって、検証プログラムがどのレイヤの重なりが必須であると規定し、どのレイヤの重なりが禁止であると規定しているのかを判定することができる。これにより、デザインルール１６に適合しているテストデータと、デザインルール１６に不適合なテストデータの２つのテストデータを利用して、検証プログラムが正しいか否かを判定する場合と比べて、短時間で判定することができる。テストデータ７０を利用することによって、検証プログラムが正しく動作するか否かを効率よく確かめることができる。
【００３０】
テストデータ７０は、第１平面データ５０を生成し、第１平面データ５０のコピーを９０度回転させることによって第２平面データ６０を生成している。この方法によれば、第１平面データを使って第２平面データ６０を生成することができるので、テストデータ７０を効率よく生成することができる。
【００３１】
また、第１平面データ５０において擬似レイヤが規則的に並んでおり、第２平面データ６０においても擬似レイヤが規則的に並んでいる。このため、テストデータ７０においては、重なり領域が規則的に並ぶ。それゆえ、テストデータ７０を用いると、どの領域でどの擬似レイヤが重なっているかを特定しやすい。この結果、正解データを生成する際に、各領域や各領域を示す座標ごとに検証の結果を付与することができる。これにより、正解データを容易に生成することができる。また、レイアウト検証処理の検証結果が、どのレイヤの重なり領域で適否が判定されたかをユーザが容易に把握することができる。
【００３２】
テストデータ７０は、一方の平面データ上の擬似レイヤと他方の平面データ上の擬似レイヤが重なり合う領域（重なり領域）を有する。以下では、３つの擬似レイヤが重なり合う領域を有するテストデータ９０を生成する方法を説明する。ここで、擬似レイヤの元となるレイヤは、前述した第１レイヤ３０、第２レイヤ３２、第３レイヤ４０、及び第４レイヤ４２である。但し、テストデータ９０が対象とするレイアウトデータでは、３つのレイヤが重なる場合がある。即ち、テストデータ９０が対象とするデザインルールには、４つのレイヤの中から選んだ３つのレイヤが重なることが必須であるのか禁止であるのかが規定されている。
【００３３】
図７は、テストデータ９０の生成処理を示すフローチャートである。図７のフローチャートの処理は、図３のフローチャートの処理に続いて実行される。ＣＰＵ１２は、第１レイヤ３０と第２レイヤ３２のそれぞれに対応する擬似レイヤ８２，８４を生成する（Ｓ２２）。擬似レイヤ８２，８４のそれぞれは、テストデータ７０と同一の形状とサイズを有している。ＣＰＵ１２は、図８に示すように、擬似レイヤ８２，８４を、同一平面上に隣接して配置し、第３平面データ８０を生成する（Ｓ２４）。すなわち、第３平面データ８０は、第１平面データ５０や第２平面データ６０の２倍の大きさの領域を有している。次いで、ＣＰＵ１２は、図３のフローチャートの処理で生成されたテストデータ７０をコピーして２つのテストデータ７０を用意し、図９に示すように、第３平面データ８０の各擬似レイヤ８２，８４のそれぞれに、テストデータ７０を重ね合わせて、テストデータ９０を生成する（Ｓ２６）。
【００３４】
生成されたテストデータ９０では、例えば、領域９２は、第１、第２及び第３擬似レイヤの３つの擬似レイヤが重なる領域である。同様に、領域９４は第１、第２及び第４擬似レイヤの３つの擬似レイヤが重なる領域であり、領域９６は第１、第３及び第４擬似レイヤの３つの擬似レイヤが重なる領域であり、領域９８は第２、第３及び第４擬似レイヤの３つの擬似レイヤが重なる領域である。これにより、３つの擬似レイヤが重なる領域を有するテストデータ９０を容易に生成することができる。
【００３５】
図１０は、擬似レイヤの４つの重なり領域を有するテストデータ１００を示す。テストデータ１００の生成処理では、まず、ＣＰＵ１２は、図３に示すフローチャートに従って、テストデータ７０を生成する。次いで、ＣＰＵ１２は、再度図３に示すフローチャートに従って、補助テストデータ１０２を生成する。補助テストデータ１０２は、第１平面データ５０と第２平面データ６０を重ね合わせたテストデータ７０と同じ構造を有している。即ち、補助テストデータ１０２は、２つの平面データを重ね合わせたレイアウトデータであり、４つの擬似レイヤから２つを選択する全ての組み合わせについて選択された２つの擬似レイヤの重なり領域を有する。但し、補助テストデータ１０２において２つの擬似レイヤが重なる領域１０４は、テストデータ７０と同一の形状とサイズを有する。ＣＰＵ１２は、重なり領域１０４の数だけテストデータ７０をコピーし、補助テストデータ１０２のそれぞれの重なり領域１０４にテストデータ７０を重ねる。そうすると、それぞれの重なり領域１０４では、４つの擬似データが重なっている。これにより、４つの擬似レイヤが重なる領域を有するテストデータ１００を生成することができる。テストデータ１００には、４つの擬似レイヤが重なる領域、３つの擬似レイヤが重なる領域、２つの擬似レイヤが重なる領域、及び、異なる擬似レイヤが全く重ならない領域が形成される。例えば、図１０のテストデータ１００において、左上から右下に亘る対角線上の最小サイズの重なり領域は、同一の擬似レイヤが重なる領域、即ち、異なる擬似レイヤが全く重ならない領域に相当する。上記した４つの擬似レイヤが重なるテストデータの生成方法と、先に示した３つの擬似レイヤが重なるテストデータの生成方法を組み合わせれば、任意の数の擬似レイヤが重なる領域を有するテストデータを容易に生成することができる。
【実施例２】
【００３６】
実施例２のテストデータ生成方法について説明する。ここでは、実施例１と重複する説明については適宜省略する。ＣＰＵ１２は、図３のフローチャートに従って、第１平面データ５０を生成する（Ｓ１２，１４）。次いで、ＣＰＵ１２は、第１平面データ５０のコピーを生成するとともに、コピーした第１平面データ全体の左右方向の幅を、各擬似レイヤ５２，５４，５６，５８の左右方向の幅と同一の幅になるように変形して、図１１に示す第２平面データ１１０を生成する（Ｓ１６）。第２平面データ１１０は、第１レイヤ３０に対応する第１擬似レイヤ１１２、第２レイヤ３２に対応する第２擬似レイヤ１１４、第３レイヤに対応する第３擬似レイヤ１１６、及び第４レイヤに対応する第４擬似レイヤ１１８を有している。第２平面データ１１０上の擬似レイヤの幅は、第１平面データ５０上の擬似レイヤの幅の１／４である。
【００３７】
続いて、ＣＰＵ１２は、第１平面データ５０の擬似レイヤ５２，５４，５６，５８のそれぞれに、第２平面データ１１０を重ね合わせて、図１２に示すテストデータ１２０を生成する（Ｓ１８）。これにより、２つの擬似レイヤが重なる領域を有するテストデータ１２０を生成することができる。
【００３８】
ＣＰＵ１２は、テストデータ１２０を、先に示した第３平面データ８０の擬似レイヤ８２，８４のそれぞれに重ね合わせることによって、３つの擬似レイヤが重なり合う領域を有するテストデータを生成することができる。また、ＣＰＵ１２は、テストデータ１２０を、先に示した補助テストデータ１０２の各領域に重ね合わせることによって、４つの擬似レイヤが重なり合う領域を有するテストデータを生成することができる。実施例２においても、実施例１と同様の効果を奏することができる。
【００３９】
上記したテストデータを用いて、検証プログラムが正しく動作するか否かをテストする方法は、端的には次の通りである。その方法では、まず、夫々が各レイヤに対応している擬似レイヤ群が一つの平面に規則的に配置されている平面配置データを複数の平面に亘って有しており、相互に重ねたときに、一の平面データ上の各擬似レイヤが他の平面データ上の各擬似レイヤと重なるテストデータを用意する（用意工程）。図３のフローチャートの処理、或いは図７のフローチャートの処理が「用意工程」に相当する。次に、用意されたテストデータを与えて検証プログラムを実行する。最後に、検証プログラムの実行結果を、テストデータにおけるデザインルールの不適合箇所を示す既知の正解データと比較する。検証プログラムの実行結果が正解データと一致していれば、検証プログラムが正しく動作することが確認される。
【００４０】
（変形例）
（１）上記した実施例１，２では、平面データ５０，６０，８０，１１０は、隣り合う擬似レイヤ同士が接している。しかしながら、ＣＰＵ１２は、隣り合う擬似レイヤが離間している平面データを生成してもよい。図１３は、隣り合う擬似レイヤが離間している平面データを重ね合わせることによって生成されるテストデータ１３０の一例を示す。テストデータ１３０では、２つの擬似レイヤの重なり合う領域が互いに離間している。このようなテストデータによっても、上記した実施例１，２と同様の効果を奏することができる。
【００４１】
（２）上記したテストデータ７０では、対角線対称に、擬似レイヤの同じ組合せの重なり領域が、２つ存在している。しかしながら、図１４に示すように、対角線対称の一方を削除し、擬似レイヤの同じ組合せの重なり領域が、１つのみ存在するテストデータ１４０を生成してもよい。ＣＰＵ１２は、テストデータ７０を生成した後、左下半分の領域と、重なりがない領域を削除することによって、テストデータ１４０を生成する。この構成によれば、テストデータのデータサイズを小さくすることができる。
【００４２】
上記した平面データ５０，６０，８０，１１０のそれぞれに含まれる各擬似レイヤは、同一の形状を有している。しかしながら、擬似レイヤは、それぞれ異なる形状であってもよい。例えば、平面データ５０の擬似レイヤ５２，５４，５６，５８は、その長手方向の長さが同一であり、短手方向の長さが異なっていてもよい。
【００４３】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時の請求項に記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００４４】
１０：検証装置
１２：ＣＰＵ
１４：記憶部
１６：デザインルール
１８：操作部
２０：表示部
５０：第１平面データ
６０：第２平面データ
７０：テストレイアウトデータ
【図１】
0005540576.tif 000002
【図２】
0005540576.tif 000003
【図３】
0005540576.tif 000004
【図４】
0005540576.tif 000005
【図５】
0005540576.tif 000006
【図６】
0005540576.tif 000007
【図７】
0005540576.tif 000008
【図８】
0005540576.tif 000009
【図９】
0005540576.tif 000010
【図１０】
0005540576.tif 000011
【図１１】
0005540576.tif 000012
【図１２】
0005540576.tif 000013
【図１３】
0005540576.tif 000014
【図１４】
0005540576.tif 000015