(57)【要約】【課題】設計時間の短縮を図ること。【解決手段】設計装置の記憶装置には、半導体装置を検証ステップの格子にて区画した各領域に含まれるレイアウトパターンの面積がそれぞれ格納される面積テーブルと、移動される検証エリアの位置に対応し、各検証エリアには所定数の領域が含まれ、検証エリアに対してその検証エリアに含まれるレイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブルを含む面積ＤＢ３３が記憶される。ＣＰＵは、レイアウトパターンの入力中において、面積テーブル及び占有率テーブルを更新する。【選択図】図２
2009266213.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置に形成されるレイアウトパターンのレイアウトデータを生成する設計装置の中央処理装置にて実行され、前記半導体装置の設計規則に従って所定サイズの検証エリアを検証ステップにて移動させ、各検証エリアにおける前記レイアウトパターンの占有率が設計規則を満足するか否かを検証するレイアウト検証方法であって、
記憶装置には、
前記半導体装置を前記検証ステップの格子にて区画した各領域に含まれる前記レイアウトパターンの占有面積がそれぞれ格納される面積テーブルと、
前記移動される検証エリアの位置に対応し、各検証エリアには所定数の前記領域が含まれ、検証エリアに対してその検証エリアに含まれる前記レイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブルと、
が記憶され、
前記中央処理装置が実行する処理は、
前記レイアウトパターンの入力におけるトリガの発生の有無を判定するトリガ判定工程と、
前記トリガに応答して入力中の前記レイアウトパターンの前記占有面積を算出して前記面積テーブルを更新する面積算出工程と、
前記入力中の前記レイアウトパターンに対応する対象部分における占有率を算出して前記占有率テーブルを更新する占有率算出工程と、
を含むこと、
を特徴とするレイアウト検証方法。
【請求項２】
前記設計装置には検証ステップとして互いに異なる複数の検証ステップが設定され、
前記面積テーブル及び前記占有率テーブルは、各検証ステップに対応してそれぞれ複数のテーブルから構成され、
前記中央処理装置は、
複数の検証ステップについて、大きな検証ステップから小さな検証ステップへと検証ステップを順次変更し、
前記面積算出工程では各検証ステップの面積テーブルを更新し、
前記占有率算出工程ではその時の検証ステップに対応する占有率テーブルを更新すること、
を特徴とする請求項１に記載のレイアウト検証方法。
【請求項３】
前記設計装置には前記上限値に応じた保証占有率が設定され、
前記中央処理装置が実行する処理は、
その時に設定された検証ステップに対応する占有率テーブルを対象テーブルとし、その対象テーブルの占有率を前記保証占有率と比較し、占有率が保証占有率を超えている場合に対象テーブルから保証占有率を超える占有率のエリアを抽出する工程と、前記検証ステップをその時の検証ステップより小さな検証ステップに更新する工程と、更新した検証ステップに対応する占有率テーブルを対象テーブルとしてその対象テーブルにおいて前記エリア内の対象部分について占有率を算出して対象テーブルを更新する工程と、を含むことを請求項２に記載のレイアウト検証方法。
【請求項４】
前記中央処理装置が実行する処理は、
前記占有率算出工程において更新された前記占有率テーブルの更新部分の占有率が上限値を超えているか否かを判断するエラー判断工程と、
前記エラー判断工程において占有率が上限値を超えていると判断した場合に前記レイアウトパターンの入力を強制的に戻して前記面積テーブル及び前記占有率テーブルを更新するエラー解消工程と、
を含むこと、を特徴とする請求項１〜３のうちの何れか１項に記載のレイアウト検証方法。
【請求項５】
前記中央処理装置は、入力装置からの信号に基づいて、入力中の前記レイアウトパターンが前記検証ステップの格子を越えているか否か、及び前記レイアウトパターンの入力が終了したか否か、を判断し、入力中の前記レイアウトパターンが前記検証ステップの格子を越えた場合、又は前記レイアウトパターンの入力が終了した場合を前記トリガとする、ことを特徴とする請求項１〜４のうちの何れか１項に記載のレイアウト検証方法。
【請求項６】
半導体装置に形成されるレイアウトパターンのレイアウトデータを生成し、前記半導体装置の設計規則に従って所定サイズの検証エリアを検証ステップにて移動させ、各検証エリアにおける前記レイアウトパターンの占有率が設計規則を満足するか否かを検証する設計装置であって、
記憶装置には、
前記半導体装置を前記検証ステップの格子にて区画した各領域に含まれる前記レイアウトパターンの占有面積がそれぞれ格納される面積テーブルと、
前記移動される検証エリアの位置に対応し、各検証エリアには所定数の前記領域が含まれ、検証エリアに対してその検証エリアに含まれる前記レイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブルと、
が記憶され、
前記設計装置の中央処理装置が実行する処理は、
前記レイアウトパターンの入力におけるトリガの発生の有無を判定するトリガ判定工程と、
前記トリガに応答して入力中の前記レイアウトパターンの占有面積を算出して前記面積テーブルを更新する面積算出工程と、
前記入力中の前記レイアウトパターンに対応する対象部分における占有率を算出して前記占有率テーブルを更新する占有率算出工程と、
を含むこと、
を特徴とする設計装置。
【請求項７】
半導体装置に形成されるレイアウトパターンのレイアウトデータを生成する設計装置の中央処理装置にて実行され、中央処理装置に前記半導体装置の設計規則に従って所定サイズの検証エリアを検証ステップにて移動させ、各検証エリアにおける前記レイアウトパターンの占有率が設計規則を満足するか否かを検証するレイアウト検証方法を実行させるためのプログラムであって、
記憶装置には、
前記半導体装置を前記検証ステップの格子にて区画した各領域に含まれる前記レイアウトパターンの占有面積がそれぞれ格納される面積テーブルと、
前記移動される検証エリアの位置に対応し、各検証エリアには所定数の前記領域が含まれ、検証エリアに対してその検証エリアに含まれる前記レイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブルと、
が記憶され、
前記中央処理装置が実行する処理は、
前記レイアウトパターンの入力におけるトリガの発生の有無を判定するトリガ判定工程と、
前記トリガに応答して入力中の前記レイアウトパターンの占有面積を算出して前記面積テーブルを更新する面積算出工程と、
前記入力中の前記レイアウトパターンに対応する対象部分における占有率を算出して前記占有率テーブルを更新する占有率算出工程と、
を含むこと、
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
半導体装置のレイアウト検証方法、設計装置及びプログラムに関するものである。
【背景技術】
【０００２】
近年の半導体装置は素子数の増大や高集積化が進められ、それに伴って配線層の多層配線化が進んでいる。一方、各配線層において、レイアウトパターンの密度に偏り、即ち粗密が生じる。レイアウトパターンの粗密は、上方の配線層に段差を生じさせる。
【０００３】
この結果、表面に近い配線層では、下層の累積的な段差により、上層配線と下層配線を接続するビアの接続不良などの問題が発生する。この問題に対し、化学的機械的研磨（ＣＭＰ:Chemical Mechanical Polishing）に代表される研磨技術によるウェハ表面の平坦化や、ダミーパターンの追加による配線密度差の低減が行われている。
【０００４】
しかし、レイアウトパターンの密度が高い部分では、研磨により必用以上にレイアウトパターンが削れてしまう場合がある。このため、レイアウトパターンの最大密度（占有率）を設定し、半導体装置の設計処理では、図１２に示すように、レイアウトデータにおけるレイアウトパターンの密度を検証している。
【０００５】
まず、ステップ１２１において、レイアウトパターン（図形）を入力する。即ち設計装置は、ユーザが操作するマウスなどの入力手段の情報に従って、レイアウトパターンや素子等のレイアウトパターンのデータを生成し、そのデータをファイル１２６に格納する。ステップ１２２において、設計装置は、全レイアウトパターンの入力が終了したか否かを判断し、終了していない場合にはステップ１２１に移行する。全レイアウトパターンの入力が終了した場合、ステップ１２３に移行し、ファイル１２６のレイアウトデータに対して配線密度の検証を実施する。ステップ１２３において、設計装置は、ファイル１２６に格納したレイアウトデータを読み出し、このレイアウトデータの配線密度を算出する。
【０００６】
この時、設計装置は、図１３に実線で示すように、レイアウトパターンＬ１〜Ｌ７のうち、所定サイズの占有率計算エリア１３１内に含まれるレイアウトパターンの占有面積と、占有率計算エリア１３１の占有面積とから配線密度を算出する。次に、占有率計算エリア１３１を一定のステップ（以下、検証ステップ）で移動さる。移動させた占有率計算エリアを破線で示している。そして、この位置において、配線密度を算出する。同様に、占有率計算エリア１３１を一点鎖線，二点鎖線で示す位置に移動させ、それぞれの位置における配線密度を算出する。図１３では、各占有率計算エリア１３１の位置が判りやすいように図面における上下方向にずらしている。
【０００７】
次に、図１２に示すステップ１２４において、設計装置は、ステップ１２３で算出した配線密度と配線密度のプロセス製造基準とを比較し、密度エラーが発生しているか否かを判断する。密度エラーが発生していない場合には処理を終了し、密度エラーが発生している場合にはステップ１２５に移行する。ステップ１２５において、設計装置は、ファイル１２６から読み出したレイアウトデータを表示装置に表示し、ユーザにより編集されたレイアウトデータをファイル１２６に格納した後、再度密度を検証するべくステップ１２３に移行する。
【０００８】
上記記載の検証フローでは、ステップ１２３における配線密度の検証に半導体装置全体のレイアウトデータが必用である。このため、配線密度の検証の結果、レイアウトデータの一部を修正した場合であっても、半導体装置全体のレイアウトデータに対して検証を行うため、レイアウトデータの検証に多くの時間を費やし、開発期間が増大する。また、レイアウトデータの修正後に行う検証で密度エラーが発生した場合には、レイアウトパターン修正を行った後、再度配線密度の検証を行わなければならない。このため、工程の手戻りが発生し、更に修正ミスなどによって手戻り工数が増加する。図１３に示すように、配線密度の算出において、占有率計算エリア１３１の検証ステップを小さく設定した場合には検証時間が増大し、検証ステップを大きく設定した場合には検証漏れが発生し、後工程からの手戻りが発生する場合がある。
【０００９】
上記記載の問題に対して、例えば、特許文献１は、検証を行おうとするマクロブロックもしくはチップそのもののレイアウト内部に所定のレイアウトデータ率を持つ仮想（ダミー）データを、一時的に前記レイアウトに加え（ステップＳ２）、もしくは前記レイアウトから差し引くことにより、仮想的なレイアウトである仮想レイアウトを形成し、このように作成された仮想レイアウトに対して配線密度の検証を行い（ステップＳ３）、レイアウト完成前に配線密度の分布を求めている。これにより、レイアウトデータの完成前に配線密度の検証をすることができ、マクロブロック単位でも配線密度検証ができるため、開発期間の増大を抑えることができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００３−６７４４１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記特許文献１のレイアウト密度検証方法では、仮想データをレイアウトに加え、もしくは差し引き、仮想レイアウトを生成する必用があり、手間がかかるという問題がある。また、仮想データをレイアウトに加え、もしくは差し引くため、仮想データと実際のレイアウトパターンとが相違し、実際のレイアウトパターンの密度検証を行っていない。この結果、密度誤差が生じるおそれがあり、手戻りが発生する場合があり、設計時間を短縮する妨げとなる場合があった。
【００１２】
開示されたレイアウト検証方法、設計装置及びプログラムは、設計時間の短縮を図ることを目的とする。
【課題を解決するための手段】
【００１３】
この方法において、記憶装置には、前記半導体装置を前記検証ステップの格子にて区画した各領域に含まれるレイアウトパターンの占有面積がそれぞれ格納される面積テーブルと、前記移動される検証エリアの位置に対応し、各検証エリアには所定数の前記領域が含まれ、検証エリアに対してその検証エリアに含まれるレイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブルと、が記憶され、前記中央処理装置が実行する処理は、レイアウトパターンの入力におけるトリガの発生の有無を判定するトリガ判定工程と、前記トリガに応答して入力中のレイアウトパターンの占有面積を算出して前記面積テーブルを更新する面積算出工程と、前記入力中のレイアウトパターンに対応する対象部分における占有率を算出して前記占有率テーブルを更新する占有率算出工程と、を含むこと、を要件とする。
【００１４】
この方法によれば、半導体装置を検証ステップの格子にて区画した各領域に含まれるレイアウトパターンの占有面積がそれぞれ格納される面積テーブルと、移動される検証エリアの位置に対応し、各検証エリアには所定数の領域が含まれ、検証エリアに対してその検証エリアに含まれるレイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブルとを備え、レイアウトパターンの入力中におけるトリガに応じて、面積テーブル及び占有率テーブルが更新される。従って、入力中のレイアウトパターンに対応して占有率を算出する領域は、半導体装置全体に比べて少ないため、短時間で占有率を算出することができ、半導体装置に形成するすべてのレイアウトパターンを入力した後に占有率を算出する方法に比べて設計時間が短くなる。
【００１５】
また、この方法は、前記設計装置には検証ステップとして互いに異なる複数の検証ステップが設定され、前記面積テーブル及び前記占有率テーブルは、各検証ステップに対応してそれぞれ複数のテーブルから構成され、前記中央処理装置は、複数の検証ステップについて、大きな検証ステップから小さな検証ステップへと検証ステップを順次変更し、前記面積算出工程では各検証ステップの面積テーブルを更新し、前記占有率算出工程ではその時の検証ステップに対応する占有率テーブルを更新することを要件とする。
【００１６】
この方法によれば、その時の検証ステップにより面積テーブルと占有率テーブルを更新することで、半導体装置を大まかに分割して占有率を算出してその算出に要する時間を短縮し、検証ステップを小さな検証ステップに更新することで、小さな領域に対応する占有率を算出することで精度の低下を抑える。
【００１７】
また、この方法は、前記設計装置には前記上限値に応じた保証占有率が設定され、前記中央処理装置が実行する処理は、その時に設定された検証ステップに対応する占有率テーブルを対象テーブルとし、その対象テーブルの占有率を前記保証占有率と比較し、占有率が保証占有率を超えている場合に対象テーブルから保証占有率を超える占有率のエリアを抽出する工程と、前記検証ステップをその時の検証ステップより小さな検証ステップに更新する工程と、更新した検証ステップに対応する占有率テーブルを対象テーブルとしてその対象テーブルにおいて前記エリア内の対象部分について占有率を算出して対象テーブルを更新する工程と、を含むことを要件とする。
【００１８】
この方法によれば、その時の検証ステップにおいて更新した占有率テーブルの更新部分について、その時の検証ステップより小さな検証ステップによって占有率を算出して対応する占有率テーブルを更新することで、小さな検証ステップに対応する占有率テーブルの全体を更新する場合に比べて更新に要する時間が短くなり、設計時間が短縮される。
【００１９】
また、この方法は、前記中央処理装置が実行する処理は、前記占有率算出工程において更新された前記占有率テーブルの更新部分の占有率が上限値を超えているか否かを判断するエラー判断工程と、前記エラー判断工程において占有率が上限値を超えていると判断した場合に前記レイアウトパターンの入力を強制的に戻して前記面積テーブル及び前記占有率テーブルを更新するエラー解消工程と、を含むことを要件とする。この方法によれば、占有率が上限値を超えたエラーを自動的に解消することができる。
【００２０】
また、この方法は、前記中央処理装置は、入力装置からの信号に基づいて、入力中のレイアウトパターンが前記検証ステップの格子を越えているか否か、及びレイアウトパターンの入力が終了したか否か、を判断し、入力中のレイアウトパターンが前記検証ステップの格子を越えた場合、又はレイアウトパターンの入力が終了した場合を前記トリガとする、ことを要件とする。
【００２１】
この方法によれば、検証ステップの格子に従ってレイアウトパターンの入力中にトリガが発生するため、占有率を算出する対象となるレイアウトパターンの占有面積が検証ステップに応じており、その時の占有率を算出する演算量が少なくなり、レイアウトパターンの入力に対する影響を少なくすることができる。
【００２２】
この設計装置において、記憶装置には、前記半導体装置を前記検証ステップの格子にて区画した各領域に含まれるレイアウトパターンの占有面積がそれぞれ格納される面積テーブルと、前記移動される検証エリアの位置に対応し、各検証エリアには所定数の前記領域が含まれ、検証エリアに対してその検証エリアに含まれるレイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブルと、が記憶され、前記設計装置の中央処理装置が実行する処理は、レイアウトパターンの入力におけるトリガの発生の有無を判定するトリガ判定工程と、前記トリガに応答して入力中のレイアウトパターンの占有面積を算出して前記面積テーブルを更新する面積算出工程と、前記入力中のレイアウトパターンに対応する対象部分における占有率を算出して前記占有率テーブルを更新する占有率算出工程と、を含むことを要件とする。
【００２３】
この設計装置によれば、入力中のレイアウトパターンに対応して占有率を算出する領域は、半導体装置全体に比べて少ないため、短時間で占有率を算出することができ、半導体装置に形成するすべてのレイアウトパターンを入力した後に占有率を算出する方法に比べて設計時間が短くなる。
【００２４】
このプログラムにおいて、記憶装置には、前記半導体装置を前記検証ステップの格子にて区画した各領域に含まれるレイアウトパターンの占有面積がそれぞれ格納される面積テーブルと、前記移動される検証エリアの位置に対応し、各検証エリアには所定数の前記領域が含まれ、検証エリアに対してその検証エリアに含まれるレイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブルと、が記憶され、前記中央処理装置が実行する処理は、レイアウトパターンの入力におけるトリガの発生の有無を判定するトリガ判定工程と、前記トリガに応答して入力中のレイアウトパターンの占有面積を算出して前記面積テーブルを更新する面積算出工程と、前記入力中のレイアウトパターンに対応する対象部分における占有率を算出して前記占有率テーブルを更新する占有率算出工程と、を含むことを要件とする。
【００２５】
このプログラムによれば、入力中のレイアウトパターンに対応して占有率を算出する領域は、半導体装置全体に比べて少ないため、短時間で占有率を算出することができ、半導体装置に形成するすべてのレイアウトパターンを入力した後に占有率を算出する方法に比べて設計時間が短くなる。
【発明の効果】
【００２６】
開示されたレイアウト検証方法、設計装置及びプログラムによれば、設計時間の短縮を図ることができる。
【図面の簡単な説明】
【００２７】
【図１】配線設計装置の概略構成図である。
【図２】レイアウト検証処理の概略フロー図である。
【図３】レイアウト検証処理のフロー図である。
【図４】レイアウト検証処理のフロー図である。
【図５】保証占有率の説明図である。
【図６】（ａ）〜（ｃ）は検証処理の説明図である。
【図７】（ａ）〜（ｃ）は検証処理の説明図である。
【図８】（ａ）〜（ｃ）は検証処理の説明図である。
【図９】（ａ）〜（ｃ）は検証処理の説明図である。
【図１０】（ａ），（ｂ）は検証処理の説明図である。
【図１１】（ａ）〜（ｄ）は検証処理の説明図である。
【図１２】従来のレイアウト検証処理のフロー図である。
【図１３】従来のレイアウト検証処理の説明図である。
【発明を実施するための形態】
【００２８】
以下、一実施形態を図１〜図１１に従って説明する。
図１に示すように、半導体装置のレイアウトデータを生成するための設計装置（コンピュータ）１１は一般的なＣＡＤ（Computer Aided Design ）装置からなり、中央処理装置（以下、ＣＰＵという）１２、メモリ１３、記憶装置１４、表示装置１５、入力装置１６、及び、ドライブ装置１７により構成され、それらはバス１８を介して相互に接続されている。
【００２９】
ＣＰＵ１２は、メモリ１３を利用してプログラムを実行し、半導体装置のレイアウト設計等の必要な処理を実現する。プログラムは、ＣＰＵ１２を半導体装置のレイアウトデータを生成する設計装置としての各種手段として機能させるためのものである。メモリ１３には、各種処理を提供するために必要なプログラムとデータが格納され、メモリ１３としては、通常、キャッシュ・メモリ、システム・メモリおよびディスプレイ・メモリを含む。
【００３０】
表示装置１５は、レイアウト表示、パラメータ入力画面等の表示に用いられ、これにはＣＲＴ，ＬＣＤ，ＰＤＰ等が用いられる。入力装置１６は、ユーザからの要求や指示，パターン，パラメータの入力に用いられ、これにはキーボードおよびマウス装置（図示せず）等が用いられる。
【００３１】
コンピュータ１１は、レイアウトデータに基づき半導体装置に形成するレイアウトパターン（図形）を表示装置１５に表示させる。そして、コンピュータ１１は、ユーザが操作する入力装置１６からの信号に従って、表示装置１５上のレイアウトパターンの追加，削除を行うとともに、レイアウトデータに対してパターンデータの追加，削除を行う。
【００３２】
記憶装置１４は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置を含む。この記憶装置１４には、図２に示す各ステップからなる半導体装置（半導体集積回路装置）のレイアウトデータを生成するためのプログラムデータとファイルが格納され、ＣＰＵ１２は、入力装置１６による指示に応答しているプログラム，データをメモリ１３へ転送し、それを実行する。
【００３３】
ＣＰＵ１２が実行するプログラムデータは、記録媒体１９にて提供される。ドライブ装置１７は、記録媒体１９を駆動し、その記憶内容にアクセスする。ＣＰＵ１２は、ドライブ装置１７を介して記録媒体１９からプログラムデータを読み出し、それを記憶装置１４にインストールする。
【００３４】
記録媒体１９としては、磁気テープ（MT）、メモリカード、フレキシブルディスク、光ディスク（CD-ROM,DVD-ROM,… ）、光磁気ディスク（MO,MD,…）等、任意のコンピュータ読み取り可能な記録媒体を使用することができる。この記録媒体１９に、上述のプログラム，データを格納しておき、必要に応じて、メモリ１３にロードして使用することもできる。
【００３５】
尚、記録媒体１９には、通信媒体を介してアップロード又はダウンロードされたプログラムデータを記録した媒体、ディスク装置を含む。更に、コンピュータによって直接実行可能なプログラムを記録した記録媒体だけでなく、いったん他の記録媒体（ハードディスク等）にインストールすることによって実行可能となるようなプログラムを記録した記録媒体や、暗号化されたり、圧縮されたりしたプログラムを記録した記録媒体も含む。
【００３６】
次に、配線密度を考慮したレイアウト検証方法の概要を、図２のフローチャートに従って説明する。
図１のＣＰＵ１２は、図２に示すステップ２１，２２の処理を実行することで、半導体装置のレイアウトデータを生成するとともにレイアウト検証する手段として機能する。
【００３７】
まず、ステップ２１において、ＣＰＵ１２は、図形生成処理を実行する。図形生成処理は、所定形状のレイアウトパターンを入力する入力処理と、入力済のレイアウトパターンの形状を変更する編集処理を含む。ＣＰＵ１２は、図形生成処理において生成したレイアウトパターンの形状やレイアウトパターンを形成する層などの情報を含むレイアウトデータをファイル３１に格納する。レイアウトパターンの入力のために必用な処理と、ファイル３１から読み出したレイアウトデータに対してレイアウトパターン編集に必用な処理は同じである。
【００３８】
ＣＰＵ１２は、表示装置１５に、レイアウトデータに基づくレイアウトパターンを表示するとともに、ユーザが操作する入力装置１６からの信号に基づいて、入力中のレイアウトパターンもしくは編集中のレイアウトパターンを表示する。そして、ユーザがレイアウトパターンの入力確定を指示すると、ＣＰＵ１２は、確定されたレイアウトパターンのレイアウトデータをファイル３１に格納する。
【００３９】
この図形生成処理において、ＣＰＵ１２は、図形データベース（図形ＤＢ）３２を参照し、所望形状のレイアウトパターンを表示、及びレイアウトデータを生成する。図形ＤＢには、配線等を形成するためのポリゴンデータ、素子の形状を示すデータ等が格納されている。ＣＰＵ１２は、ユーザの指定に従って例えばポリゴンデータを図形ＤＢ３２から読出し、そのポリゴンデータの頂点を変更することによりレイアウトパターンのレイアウトデータを形成する。
【００４０】
更に、ＣＰＵ１２は、この図形入力・編集処理において、処理中（入力中もしくは編集中）のレイアウトパターンに基づいて、面積データベース（面積ＤＢ）３３を更新する。次に、ＣＰＵ１２は、面積ＤＢ３３に基づいて、処理中のレイアウトパターンに係る配線密度の検証を実行し、処理中のレイアウトパターンが含まれる検証領域において密度エラー発生しているか否かを判断する。
【００４１】
そして、ＣＰＵ１２は、密度エラーが発生している場合にその旨を表示装置１５に表示するとともに、処理中のレイアウトパターンに対する編集制御を行う。つまり、ＣＰＵ１２が図形入力・編集処理を行うステップ２１は、配線密度の検証を行うサブステップ２１ａと、エラー表示・編集制御を行うサブステップ２１ｂとを含む。
【００４２】
密度エラーが発生することなくレイアウトパターンを確定すると、ＣＰＵ１２はステップ２１からステップ２２に移行し、そのステップ２２において、全レイアウトパターンの入力が終了したか否かを判断する。全レイアウトパターンの入力が終了していない場合、ＣＰＵ１２は、ステップ２１に移行し、図形生成処理を実行する。全レイアウトパターンの入力が終了した場合、ＣＰＵ１２は、配線密度を考慮したレイアウト検証を終了する。
【００４３】
次に、上記のステップ２１における図形生成処理の詳細を説明する。
まず、図３に示すステップ４１において、ＣＰＵ１２は、図２の面積ＤＢ３３に含まれる面積テーブル３４と占有率テーブル３５を初期化する。例えば、新たなレイアウトデータを生成する場合、ＣＰＵ１２は、面積テーブル３４と占有率テーブル３５をそれぞれクリア、つまり各テーブル３４，３５を構成する要素の値を「０」にする。各テーブル３４，３５は、検証ステップに応じたサブテーブルから構成されている。従って、ステップ４１において、ＣＰＵ１２は、各テーブル３４，３５のサブテーブルを初期化する。
【００４４】
設計装置１１にはレイアウトデータの配線密度を検証する検証エリアを移動させる複数の検証ステップが設定されている。本実施形態において、設計装置１１には、検証ステップとして、所定値の第１検証ステップと、その第１検証ステップよりも小さな値の第２検証ステップが設定されている。本実施形態において、設定する各検証ステップＸ軸方向及びＹ軸方向の大きさは、本設計装置１１により生成するレイアウトパターンの最小サイズ、即ち入力ステップのＸ軸方向及びＹ軸方向の値に対応している。第１検証ステップはＸ軸方向及びＹ軸方向ともに入力ステップの整数倍（例えば２倍）に設定され、第２検証ステップは入力ステップの等倍（１倍）に設定されている。
【００４５】
ＣＰＵ１２は、大きな値から小さな値へと検証ステップを変更し、レイアウトパターンに対する密度チェック処理等を実行する。即ち、ＣＰＵ１２は、先ず第１検証ステップにて密度チェックを行い、次に、第２検証ステップに変更して密度チェックを行う。この第２検証ステップによる密度チェックにおいて、ＣＰＵ１２は、第１検証ステップにて行った密度チェックの結果に基づいて、密度違反の可能性が高い部分を対象領域とし、この対象領域について第２検証ステップによる密度チェックを行う。即ち、第２検証ステップによる密度チェックを行う領域を予め絞り込むことで、密度チェックに要する処理時間（演算時間）が少なくなり、チェックに要する時間を短縮することができる。
【００４６】
面積テーブル３４は、２つの検証ステップに応じたサブテーブル３４ａ，３４ｂを含む（図６，７参照）。即ち、面積テーブル３４は、第１検証ステップに対応する第１面積テーブル３４ａ（図６（ｂ）参照）と、第２検証ステップに対応する第２面積テーブル３４ｂ（図７（ｂ）参照）とを含む。
【００４７】
面積テーブル３４（３４ａ、３４ｂ）に格納された値は、各テーブル３４ａ，３４ｂに対応する検証ステップの格子、及びその格子内に生成されたレイアウトパターンの占有面積に対応する。例えば、Ｘ軸及びＹ軸のサイズが入力ステップと等しい格子の面積を「１」とした場合、第１検証ステップはＸ軸方向及びＹ軸方向において入力ステップの２倍に設定されているため、第１検証ステップの格子内に生成されるレイアウトパターンの占有面積は「１」〜「４」うちの何れかとなり、第２検証ステップは入力ステップと等倍に設定されているため、第２検証ステップの格子内に生成されるレイアウトパターンの占有面積は「１」となる。従って、第１検証ステップに対応する第１面積テーブル３４ａの各要素は、レイアウトパターンが形成されていない場合の値「０」と、格子内に形成されるレイアウトパターンの占有面積「１」〜「４」の何れかの値となる。第２検証ステップに対応する第２面積テーブル３４ｂの各要素は、レイアウトパターンが形成されていない場合の値「０」と、レイアウトパターンが形成されている場合の値「１」の何れかとなる。
【００４８】
同様に、占有率テーブル３５は、２つの検証ステップに応じたサブテーブル３５ａ，３５ｂを含む（図６，７参照）。即ち、占有率テーブル３５は、第１検証ステップに対応する第１占有率テーブル３５ａ（図６（ｃ）参照）と、第２検証ステップに対応する第２占有率テーブル３５ｂ（図７（ｃ）参照）とを含む。
【００４９】
占有率テーブル３５（３５ａ，３５ｂ）の値は、各値に対応する位置の検証エリアにおいて、その検証エリアの面積と、その検証エリア内に生成されたレイアウトパターンの占有面積との比を示す。例えば、検証エリアの縦横、つまりＸ軸方向及びＹ軸方向のサイズをそれぞれ入力ステップ（第２検証ステップ）の１０倍（第１検証ステップの５倍）に設定する。従って、１００個の格子からなる検証エリアが設定される。そして、検証エリアの総項指数と、検証エリア内においてレイアウトパターンが形成された格子の数との比が、検証エリアの位置に対応する要素の値として占有率テーブル３５（３５ａ，３５ｂ）に格納される。一例として、検証エリアに含まれる１００個の格子のうちの１個にレイアウトパターンを形成した場合、対応する占有率テーブル３５ａ，３５ｂの値はそれぞれ「１（％）」となる。別の例として、検証エリアを構成する１００個の格子のうちの５０個にレイアウトパターンを形成した場合、対応する占有率テーブル３５ａ，３５ｂの値はそれぞれ「５０（％）」となる。
【００５０】
レイアウトデータのレイアウトパターンと、面積テーブル３４（３４ａ，３４ｂ）及び占有率テーブル３５（３５ａ，３５ｂ）の関係を図８に従って説明する。
図８（ａ）に示すように、表示装置１５の画面にはレイアウトパターンＰ２（ハッチングを付した部分）が表示されている。このレイアウトパターンＰ２は、設計装置１１には所定の入力ステップに応じた入力格子（図において一点鎖線で示す格子）が設定されている。そして、レイアウトパターンＰ２は、設定された入力格子のうち、図８（ａ）に示す格子６１ａ，６１ｂに形成されている。上記したように、第１検証ステップは入力ステップの２倍に設定されている場合、その第１検証ステップに対応する第１面積テーブル３４ａの１つの要素の値は、隣接する４つの格子（図８（ａ）において格子６１ａ，６１ｂ，６１ｃ，６１ｄ）に形成されたレイアウトパターンの占有面積となる。１つの格子に形成されたレイアウトパターンの占有面積を「１」とすると、図８（ａ）に示すレイアウトパターンＰ２の場合、図８（ｂ）に示すように、要素６２の値が「２」となる。
【００５１】
レイアウトデータの密度チェックのために、検証エリアＶＡを設定する。ＣＰＵ１２は、検証エリアＶＡにおいてレイアウトパターンＰ２が占める占有面積の割合（占有率）を算出し、その占有率を検証エリアＶＡの位置に対応して第１占有率テーブル３５ａに格納する。例えば、図８（ａ）に示すように、１００個の入力格子（＝横１０×縦１０）に検証エリアＶＡが設定され、この検証エリアＶＡを第１検証ステップにて移動させ、各位置における占有率を算出し、その算出した占有率にて第１占有率テーブル３５ａを更新する。例えば、図８（ｂ）に示す検証エリアＶＡに対応して、図８（ｃ）に示す第１占有率テーブル３５ａの要素６３の占有率を「２」とする。図８（ａ）に示すレイアウトパターンＰ２の占有面積が影響する部分は、図８（ｃ）の枠６４で囲まれた部分となる。従って、ＣＰＵ１２は、この枠６４内の要素の値を「２」とする。
【００５２】
尚、形成したレイアウトパターンと、第２面積テーブル３４ｂ及び第２占有率テーブル３５ｂの関係は、上記したように、レイアウトパターンＰ２と第１面積テーブル３４ａ及び第１占有率テーブル３５ａとの関係と同じであり、ＣＰＵ１２が行う処理も、検証ステップの大きさが異なるだけであるため、説明を省略する。
【００５３】
次に、ステップ４２において、ＣＰＵ１２は、下限値の指定と、下限値チェックゾーンの指定を入力する。下限値は、占有率の下限値であり、製造プロセスの基準値（必要とするレイアウトパターンの密度の最小値）である。下限値チェックゾーンは、下限値のチェックを行う場所を示す領域であり、例えば矩形にて指示される。このチェックゾーンの位置は、マウスを用いて画面上に表示したチップ等のレイアウトに対して入力する、キーボードから座標値を入力する、チェックゾーンの位置を記述したデータファイルを読み込む、等により指定される。
【００５４】
次に、ステップ４３において、ＣＰＵ１２は、入力装置１６の操作に従って、ひとつのレイアウトパターンの入力処理またはレイアウトパターンの編集処理の開始する。例えば、ポリゴンを作成する始点が決定されることによりレイアウトパターンの入力を開始し、ポリゴンの頂点が指示されることにより編集を開始する。これ以降の処理において、レイアウトパターンを入力することと既存のレイアウトパターンを編集（変形）することに状態に差が生じているが、入力中のレイアウトパターンに対する検証処理（チェック）と、編集中のレイアウトパターンに対する検証処理（チェック）とは同じ内容であるため、以下の説明において、レイアウトパターンの入力に対する処理について説明する。
【００５５】
ステップ４４（トリガ判定工程）において、ＣＰＵ１２は、ステップ４３において、入力中のレイアウトパターンが第１所定の検証ステップ（例えば第１検証ステップ）の判定格子を通過したか否か、レイアウトパターンの入力を終了したか否かを判断する。ＣＰＵ１２は、入力レイアウトパターンが格子を通過せず、且つレイアウトパターンの入力が終了されていない場合にステップ４３に移行し、入力レイアウトパターンが判定格子を通過したか又はレイアウトパターンの入力が終了された場合にステップ４５に移行する。つまり、ＣＰＵ１２は、入力レイアウトパターンが判定格子を通過すること、レイアウトパターンの入力が終了することをトリガとして次のステップに移行する。
【００５６】
ステップ４５において、ＣＰＵ１２は、入力中のレイアウトパターンの占有面積を算出する。この時、ＣＰＵ１２は、レイアウトパターンの占有面積を、検証ステップ毎に算出する。そして、ステップ４６において、ＣＰＵ１２は、ステップ４５において算出したレイアウトパターンの占有面積に基づいて、その時の検証ステップに対応する面積テーブルを更新する。つまり、ＣＰＵ１２は、入力したレイアウトパターンに基づいて、第１面積テーブル３４ａ及び第２面積テーブル３４ｂを更新する。面積算出工程はステップ４５，４６を含む。
【００５７】
ステップ４７において、ＣＰＵ１２は、ステップ４６において更新した面積テーブル３４（３４ａ，３４ｂ）の値に基づいて、対象部分の占有率を算出する。次に、ステップ４８において、ＣＰＵ１２は、ステップ４７にて計算した占有率により、検証ステップに対応する占有率テーブル３５（３５ａ，３５ｂ）の対象部分の値を更新する。この時、ＣＰＵ１２は、設定された検証ステップに対応するテーブルを対象テーブルとしてその対象テーブルを更新する。即ち、ＣＰＵ１２は、第１検証ステップがその時の検証ステップとして設定されている場合、第１検証ステップに対応する第１占有率テーブル３５ａを対象テーブルとし、その対象テーブルを更新する。同様に、ＣＰＵ１２は、第２検証ステップがその時の検証ステップとして設定されている場合、第２検証ステップに対応する第２占有率テーブル３５ｂを対象テーブルとし、その対象テーブルを更新する。占有率算出工程はステップ４７，４８を含む。
【００５８】
ステップ４７における対象部分は、レイアウトパターンの入力によって占有率の値が変化する要素からなる部分、又は処理によって抽出された部分である。例えば、Ｘ軸方向とＹ軸方向のそれぞれにおいて、第１検証ステップを検証エリアのサイズの１／５に設定した場合、１つの格子におけるレイアウトパターンの占有面積の変更が、占有率テーブル３５の２５個の要素に影響する。従って、ＣＰＵ１２は、２５個の要素についてそれぞれ占有率を算出する。同様に、第２検証ステップを検証エリアの１／１０に設定した場合、ＣＰＵ１２は、１００個の要素についてそれぞれ占有率を算出する。これらの占有率を算出する領域の大きさは、半導体装置のチップ面積に比べて極めて小さい。従って、半導体装置の全体について占有率を算出する時間に比べて、極めて短い時間で対応する領域の占有率を算出することができる。
【００５９】
第２占有率テーブル３５ｂの要素のうち、必ず第１占有率テーブル３５ａの要素と同じ値となるものが存在する。これは、要素の値、つまり占有率を算出する検証エリアの位置が同じであることに因る。上記したように、第１占有率テーブル３５ａの各要素の値は、第１検証ステップにて検証エリアを移動させ各位置において算出した値であり、第２占有率テーブル３５ｂの各要素の値は第２検証ステップにて検証エリアを移動させ各位置において算出した値である。従って、上記のように、第１検証ステップを第２検証ステップの２倍に設定した場合、第２占有率テーブル３５ｂを構成する各要素のうち、Ｘ軸方向及びＹ軸方向のそれぞれにおいて、１つ置きに検証エリアの位置が第１占有率テーブル３５ａの要素に対応する検証エリアの位置と一致する。そして、検証エリアの位置が一致する要素は、第１占有率テーブル３５ａと第２占有率テーブル３５ｂの設定により決定される、即ち検証処理を行う時点では判っている。従って、第１占有率テーブル３５ａの要素の値を算出することにより、第２占有率テーブル３５ｂの一部の要素の値を確定することができ、その分の演算を省略することができる。
【００６０】
ステップ４９において、ＣＰＵ１２は、ステップ４８において、占有率テーブル３５のうち更新された部分の占有率が、占有率の上限値を超えているか否かを判断し、占有率が上限値以下の場合（ＮＯ）はステップ５０に移行し、占有率が上限値を超えている場合（ＹＥＳ）はステップ５７に移行する。占有率の上限値は、製造プロセスの基準値（許容されるレイアウトパターンの密度の最大値）である。
【００６１】
ステップ５０において、ＣＰＵ１２は、更新部分の占有率が、保証占有率を超えているか否かを判断する。そして、ＣＰＵ１２は、占有率が保証占有率以下の場合（ＮＯ）は図４に示すステップ５１に移行し、占有率が保証占有率を超えている場合（ＹＥＳ）はステップ５８（図３参照）に移行する。
【００６２】
保証占有率は、検証エリアの移動によってレイアウトパターンの占有面積が増減し、この占有面積の増減により変化する占有率が、占有率の上限値を超えないことを保証できる占有率を言う。占有面積の増減は、検証ステップに対応する。従って、保証占有率は、検証ステップに応じて設定されている。本実施形態では、検証ステップとして第１検証ステップ及び第２検証ステップが設定されているため、保証占有率は、第１検証ステップに対応する第１保証占有率と、第２検証ステップに対応する第２保証占有率とが設定されている。
【００６３】
保証占有率を図５に従って説明する。一例として、レイアウトパターンＰ１が形成されている。ＣＰＵ１２は、このレイアウトパターンＰ１に対して、検証エリアＶＡを検証ステップＶＳずつ移動させて各位置における占有率を算出する。この場合において、実線で示す検証エリアＶＡを、破線で示す位置まで移動させる。この時、実線で示す検証エリアＶＡに含まれるレイアウトパターンＰ１の占有面積に対して、破線で示す検証エリアＶＡに含まれるレイアウトパターンの占有面積は、検証エリアＶＡの縦（図５において上下方向）の長さと、検証ステップＶＳとの積の値となる。つまり、検証エリアＶＡにおける占有率は、検証エリアＶＡの横（図５において左右方向であって、検証エリアＶＡを移動させる方向）の長さと、検証ステップＶＳとの比だけ増加することになる。
【００６４】
上記例のように、検証エリアが１００個の格子から構成され、第１検証ステップがその１つの格子のサイズの２倍に設定されている場合、移動によって検証エリアの占有率は、最大２０（％）増加する。このため、占有率の上限値を５０（％）とすると、その最大値を超えないように保証する値、即ち第１保証占有率は３０（％）となる。また、検証エリアが１００個の格子から構成され、第２検証ステップがその１つの格子のサイズと等しく設定されている場合、移動によって検証エリアの占有率は、最大１０（％）増加する。このため、第２保証占有率は４０（％）となる。
【００６５】
従って、所定位置における検証エリアの占有率が保証占有率を超えていない場合、その検証エリアを検証ステップに応じて移動させた位置に於いても、占有率が最大値を超えることはない。つまり、所定の検証エリアにおける占有率を算出することにより、その位置における占有率と検証ステップだけずれた位置における検証エリアの占有率が、占有率の最大値が越えているか否かを判断することができる。
【００６６】
また、第１保証占有率は、第２検証ステップにおいて算出する占有率が上記の上限値を超えないことを保証する。例えば、上記したように第１検証ステップは第２検証ステップの２倍に設定されている。この場合、第２検証ステップに対応する第２占有率テーブル３５ｂには、第１検証ステップと第２検証ステップとにおいて検証エリアが一致する位置における占有率と、その位置からＸ軸方向、Ｙ軸方向に第２検証ステップだけ検証エリアを移動させた位置における占有率を含む。これらの位置における占有率の増加は、第２検証ステップにて検証エリアを移動させた時の占有面積の増加分となる。つまり、Ｘ軸方向にのみ検証エリアを移動させた場合、検証エリアの占有率は、最大１０（％）増加する。同様に、Ｙ軸方向にのみ検証エリアを移動させた場合、検証エリアの占有率は、最大１０（％）増加する。そして、Ｘ軸方向とＹ軸方向にそれぞれ検証エリアを移動させた場合、検証エリアの占有率は、最大１９（％）増加する。従って、第１占有率テーブル３５ａにおいて、占有率が第１保証占有率（＝３０）を越えていない場合、その占有率を算出した検証エリアの位置からそれぞれ第２検証ステップだけ検証エリアを移動させた位置における占有率は、占有率の上限値を超えないことになる。つまり、占有率が上限値を超えないことを保証することができる。
【００６７】
図４に示すステップ５１（エラー判断工程）において、ＣＰＵ１２は、対象領域の占有率が占有率の上限値と等しいか否かを判断し、対象領域の占有率が上限値と等しい場合（ＹＥＳ）にはステップ５２に移行し、等しくない場合（ＮＯ）にはステップ５６に移行する。
【００６８】
ステップ５２（エラー解消工程）において、ＣＰＵ１２は、図形入力禁止エリアを生成する。図形入力禁止エリアは、作業者の操作によるレイアウトパターンの追加を禁止するエリアである。ＣＰＵ１２は、対象領域の占有率に影響を与える範囲に対応して図形入力禁止エリアを生成する。この図形入力禁止エリアにより、所定位置の検証エリアにおける占有密度が、占有率の上限値を超えるのを防ぐ。
【００６９】
ステップ５３において、ＣＰＵ１２は、レイアウトパターンが下限値チェックゾーンに接触しているか否かを判断する。チェック対象のレイアウトパターンは、入力中のレイアウトパターン、編集中のレイアウトパターンに含まれるレイアウトパターンである。ＣＰＵ１２は、入力中又は編集中のレイアウトパターンが下限値チェックゾーンの枠内に入っている場合に接触していると判断する。そして、ＣＰＵ１２は、レイアウトパターンが下限値チェックゾーンと接触している場合（ＹＥＳ）にステップ５４に移行し、接触していない場合（ＮＯ）にステップ５６に移行する。
【００７０】
ステップ５４において、ＣＰＵ１２は、下限値チェックゾーンに対応する位置の占有率と下限値とを比較し、占有率が下限値未満か否かを判断する。そして、ＣＰＵ１２は、占有率が下限値未満の場合（ＹＥＳ）にステップ５５に移行する。そのステップ５５において、ＣＰＵ１２は、占有率が下限値未満である旨のエラー表示を表示装置１５に出力する。一方、ステップ５４において、ＣＰＵ１２は、占有率が下限値以上の場合（ＮＯ）にステップ５６に移行する。
【００７１】
ステップ５６において、ＣＰＵ１２は、全図形入力・編集終了か否かを判断する。操作者は、全てのレイアウトパターンを入力し終わるか、又はレイアウトパターンの編集を終了すると、図１に示す入力装置１６により入力又は編集処理の終了を指示する。ＣＰＵ１２は、入力装置１６からの信号に基づいて、終了指示の有無を判断し、終了が指示されている場合（ＹＥＳ）は図形入力・編集処理を終了し、終了が指示されていない場合（ＮＯ）は図３のステップ４３移行し次のレイアウトパターンの入力又はレイアウトパターンの編集を可能とする。
【００７２】
上記の図３に示すステップ４９において、更新された部分の占有率が上限値を超えている場合（ＹＥＳ）、ＣＰＵ１２は図４に示すステップ５７に移行する。ステップ５７において、ＣＰＵ１２は、エラー発生箇所までレイアウトパターンの入力を強制的に戻し、面積テーブル３４と占有率テーブル３５を更新し、ステップ５１に移行する。エラー発生箇所は、エラーとなるレイアウトパターンを生成した入力確定又は操作の直前において検証処理を終了した箇所を示す。つまり、エラーが発生した場合に、その検証処理の直前の入力や処理による変更を面積テーブル３４及び占有率テーブル３５から削除することで、エラー発生までに確定したレイアウトパターンの状態を示す。このエラー発生箇所まで入力を戻すことにより、エラー発生を自動的に解消するとともに、エラーの発生を操作者に示すことが可能となる。
【００７３】
上記の図３に示すステップ５０において、更新部分の占有率が保証占有率を超えている場合（ＹＥＳ）、ＣＰＵ１２は図３に示すステップ５８に移行する。ステップ５８において、ＣＰＵ１２は、占有率テーブル３５の更新箇所内で保証占有率を超えている検証エリア、即ち第１占有率テーブル３５ａの要素を抽出する。次に、ステップ５９において、ＣＰＵ１２は、保証占有率・検証ステップを更新する。詳しくは、ＣＰＵ１２は、検証ステップを第１検証ステップから第２検証ステップに変更するとともに、保証占有率を第１保証占有率から第２保証占有率に変更する。そして、ＣＰＵ１２は、ステップ４７に移行する。
【００７４】
ステップ４７において、ＣＰＵ１２は、ステップ５９において抽出した第１占有率テーブル３５ａの要素を対象領域とする。そして、ＣＰＵ１２は、ステップ４７において設定した第２検証ステップに対応する第２占有率テーブル３５ｂの対象領域に含まれる要素の値を更新する。
【００７５】
次に、入力レイアウトパターンの一例を示して上記の処理を説明する。
図９（ａ）に示すように、レイアウトパターン７１，７２が形成されたレイアウトデータに対して、新たなレイアウトパターンを入力する。尚、図９（ａ）は表示装置１５に表示されたレイアウトデータであり、同図９（ａ）において、レイアウトパターン７３は入力中のレイアウトパターンである。更に、図９（ａ）において、破線は第１検証ステップの格子を示す。
【００７６】
図１のＣＰＵ１２は、入力中のレイアウトパターン７３が格子を通過したと判断し（ステップ４４）、入力中のレイアウトパターン７３の占有面積を算出する（ステップ４５）。このとき、格子７４内のレイアウトパターン７３ａについては、このレイアウトパターン７３が入力格子枠７５を越えた時点で処理されている。従って、ＣＰＵ１２は、格子７６内のレイアウトパターン７３ｂの占有面積を算出する。そして、ＣＰＵ１２は、図９（ｂ）に示すように、第１面積テーブル３４ａの要素７７を更新する（ステップ４６）。更に、ＣＰＵ１２は、図１０（ａ）に示すように、第２面積テーブル３４ｂの要素（実線で囲まれた要素）を更新する（ステップ４６）。
【００７７】
次に、ＣＰＵ１２は、対象部分の占有率を算出し（ステップ４７）、第１占有率テーブル３５ａの対象部分の値を更新する。この場合、図９（ｂ）に示す要素７７の値の更新は、図９（ｃ）に示す枠７８内の要素に影響する。このため、ＣＰＵ１２は、枠７８内の要素を対象部分とし、この対象部分の要素の値を更新する（ステップ４８）。
【００７８】
次に、ＣＰＵ１２は、第１占有率テーブル３５ａにおいて、更新部分の占有率が上限値を超えているか否かを判断する（ステップ４９）。図９（ｃ）において、枠７８内の要素が更新されているが、何れの要素の値も上限値（＝５０）を超えていない。従って、ＣＰＵ１２は、更新部分の占有率が第１保証占有率（＝３０）を越えているか否かを判断する（ステップ５０）。図９（ｃ）において、枠７８内の要素が更新されており、枠７９内の要素の値が第１保証占有率を超えている。従って、ＣＰＵ１２は、第１保証占有率を超えている要素が含まれるエリア、つまり図９（ｃ）に示す枠７９を抽出する（ステップ５８）。
【００７９】
次に、ＣＰＵ１２は、保証占有率及び検証ステップを、第１保証占有率と第１検証ステップから第２保証占有率と第２検証ステップに更新する（ステップ５９）。
次に、ＣＰＵ１２は、抽出した枠７９内を対象部分とし、対象部分の占有率を算出する（ステップ４７）。この時、ＣＰＵ１２は、検証ステップを第２検証ステップに設定しているため、ステップ５８において抽出した枠７９に対応する第２占有率テーブル３５ｂの部分について、占有率を算出する。図９（ｃ）に示す枠７９に対応する部分は、第２占有率テーブル３５ｂにおいて、図１０（ｂ）に示す枠８０に囲まれた部分である。従って、ＣＰＵ１２は、この枠８０内の要素について、占有率を算出する。
【００８０】
即ち、ＣＰＵ１２は、第１保証占有率によって第１占有率テーブル３５ａの更新部分から密度エラーが発生する可能性が高い部分を抽出し、抽出した部分についてのみ第２占有率テーブル３５ｂの値を更新するようにした。従って、更新部分の全ての占有率が第１保証占有率を超えていない場合、抽出は行われず、第２占有率テーブル３５ｂの更新も行われない。このため、更新部分の全ての要素について占有率を算出する場合に比べ、演算に要する時間が短くなる。
【００８１】
この占有率算出において、上記したように、第２占有率テーブル３５ｂにおいて、検証エリアの位置が第１占有率テーブル３５ａの要素と同じ要素については、第１占有率テーブル３５ａの要素の値を複写し、他の要素について第２面積テーブル３４ｂに従って占有率を算出する。これによって、抽出した部分の要素の全てについて占有率を算出する場合に比べ、演算に要する時間が短くなる。
【００８２】
上記のように演算に要する時間を短くすることは、レイアウトパターンの入力の応答性を良くする。つまり、ＣＰＵ１２は、レイアウトパターンの入力中に占有率を算出するため、占有率の演算量が多くなる（演算時間が長くなる）と、操作者による入力装置１６の操作から、表示装置１５に対するレイアウトパターンの表示までの時間が長くなる、つまり入力に対する表示の応答性が悪くなる。しかし、本実施形態のように、占有率の演算に要する時間を短くすることで、入力に対する表示の応答性の劣化を抑えることができる。
【００８３】
次に、ＣＰＵ１２は、第２占有率テーブル３５ｂにおいて、更新部分の占有率が上限値を超えているか否かを判断する（ステップ４９）。図１０（ｂ）において、枠８０内の要素のうちの１つが「５１」であり、上限値（＝５０）を超えている。つまり、この占有率（＝５１）の要素に対応する検証エリアにおいて、密度エラーが発生している。このため、ＣＰＵ１２は、エラー発生箇所までレイアウトパターンの入力を強制的に戻して各テーブル３４，３５を更新する（ステップ５７）。具体的には、図１１（ａ）に示すように、ＣＰＵ１２は、入力中のレイアウトパターンの座標値（表示装置１５に表示するためのレイアウトパターンの終点の座標値）を、入力格子に従って密度エラーが発生している占有率と上限値との差に応じて始点側の座標値に変更したレイアウトパターン７３ｃを生成し、図１１（ｂ），（ｃ）に示す第２面積テーブル３４ｂ及び第２占有率テーブル３５ｂを更新する。これにより、密度エラーが発生した要素の占有率は、占有率の上限値と等しくなる。
【００８４】
このため、ＣＰＵ１２は、密度エラーを解消した要素に対応して図形入力禁止エリアを生成する（ステップ５２）。具体的には、図１１（ｃ）に示すように、密度エラーを解消した要素８１の値は、図１１（ｄ）に示す検証エリア８２により算出した占有率である。従って、この検証エリア８２内にレイアウトパターンを追加すると、要素８１の値が大きくなり、密度エラーを発生させる。このため、ＣＰＵ１２は、この検証エリア８２と同じ大きさの図形入力禁止エリアを生成する。この図形入力禁止エリアの生成により、上限値と等しい占有率の要素について、その占有率が上限値を超えることがなくなる、つまり、密度エラーの発生を防止する。
【００８５】
以上記述したように、本実施の形態によれば、以下の効果を奏する。
（１）設計装置１１の記憶装置１４には、半導体装置を検証ステップの格子にて区画した各領域に含まれるレイアウトパターンの占有面積がそれぞれ格納される面積テーブル３４と、移動される検証エリアの位置に対応し、各検証エリアには所定数の領域が含まれ、検証エリアに対してその検証エリアに含まれるレイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブル３５とが記憶される。ＣＰＵ１２は、レイアウトパターンの入力中において、面積テーブル３４及び占有率テーブル３５を更新する。従って、入力中のレイアウトパターンに対応して占有率を算出する領域は、半導体装置全体に比べて少ないため、短時間で占有率を算出することができ、半導体装置に形成するすべてのレイアウトパターンを入力した後に占有率を算出する方法に比べて設計時間を短縮することができる。
【００８６】
（２）設計装置１１には検証ステップとして互いに異なる第１及び第２検証ステップが設定され、面積テーブル３４及び占有率テーブル３５は、第１及び第２検証ステップに対応してそれぞれ第１及び第２面積テーブル３４ａ，３４ｂ，第１及び第２占有率テーブル３５ａ，３５ｂから構成される。ＣＰＵ１２は、値が大きな第１検証ステップから値の小さな第２検証ステップへと変更し、ステップ４６では各検証ステップの面積テーブル３４ａ，３４ｂを更新し、ステップ４８ではその時の検証ステップに対応する占有率テーブル３５ａ，３５ｂを更新する。従って、値の大きな第１検証ステップに対応する第１占有率テーブル３５ａを更新した後、値の小さな検証ステップに対応する第２占有率テーブル３５ｂを更新することで、第２占有率テーブル３５ｂにおいて、占有率が上限値を超えないと判定される部分については占有率の算出を省略することが可能となる、占有率の算出に要する時間を短縮することができる。更に、値が小さな検証ステップに対応する第２占有率テーブル３５ｂを更新ことで、小さな領域に対応する占有率が算出され、必用な精度にて占有率を算出することができ、従来に比べて精度の低下を抑えることができる。
【００８７】
（３）設計装置１１には上限値に応じた保証占有率が設定される。ＣＰＵ１２は、第１検証ステップに対応する第１占有率テーブル３５ａを対象テーブルとし、その対象テーブルの占有率を保証占有率と比較し、占有率が保証占有率を超えているエリアを抽出する。そして、ＣＰＵ１２は、検証ステップを第２検証ステップに更新し、第２占有率テーブルを対象テーブルとしてその対象テーブルにおいて先に抽出したエリア内の対象部分について占有率を算出して第２占有率テーブルを更新するようにした。上限値に応じた保証占有率を超える部分は、占有率が上限値を超える確率が高い、即ち密度エラーが発生する候補の部分である。従って、第１占有率テーブル３５ａ、第２占有率テーブル３５ｂと、順次切り換え、エラー候補の箇所を段階的に絞り込むことで、第２占有率テーブル３５ｂにおいて、入力するレイアウトパターンの占有面積が影響する部分の全ての占有率を算出する場合に比べ、第２占有率テーブル３５ｂの更新に要する時間が短くなり、設計時間を短縮することができる。
【００８８】
（４）ＣＰＵ１２は、更新された占有率テーブル３５（３５ａ，３５ｂ）の更新部分の占有率が上限値を超えていると判断した場合にレイアウトパターンの入力を強制的に戻して面積テーブル３４及び占有率テーブル３５を更新するようにした。そのため、占有率が上限値を超えた密度エラーを自動的に解消することができる。
【００８９】
（５）ＣＰＵ１２は、入力装置１６からの信号に基づいて、入力中のレイアウトパターンが検証ステップの格子を越えているか否か、及びレイアウトパターンの入力が終了したか否か、を判断し、入力中のレイアウトパターンが前記検証ステップの格子を越えた場合、又はレイアウトパターンの入力が終了した場合にそのレイアウトパターンに占有面積計算、占有率計算を行うようにした。従って、検証ステップの格子に従ってレイアウトパターンの入力中にトリガが発生するため、占有率を算出する対象となるレイアウトパターンの占有面積が検証ステップに応じており、その時の占有率を算出する演算量が少なくなり、レイアウトパターンの入力に対する影響を少なくすることができる、つまり、操作者においてレイアウトパターンを入力するための操作性の劣化を抑えることができる。
【００９０】
（６）ＣＰＵ１２は、占有率テーブル３５の占有率が上限値と等しい場合に、その上限値と等しい占有率に対応するエリアに対して図形入力禁止エリアを生成するようにした。その結果、上限値と等しい占有率の要素について、その占有率が上限値を超えることがなくなる、つまり、密度エラーの発生を防止することができる。
【００９１】
（７）ＣＰＵ１２は、レイアウトパターンが設定された下限値チェックゾーンに接触するか否かを判断し、接触する場合には、下限値チェックゾーンに対応する位置の占有率と下限値とを比較する。そして、ＣＰＵ１２は、占有率が下限値未満の場合にエラー表示を表示装置１５に出力するようにした。その結果、レイアウトパターンが必要な領域にレイアウトパターンを追加することができるようになり、設計後に下限値をチェックする手順と比べて設計時間を短縮することができるようになる。
【００９２】
尚、前記実施形態は、以下の態様に変更してもよい。
・上記実施形態では、面積テーブル３４を、レイアウトパターンを形成する領域に対して、１つの領域に形成されたレイアウトパターンの占有面積を格納する第１面積テーブル３４ａと、複数の領域に形成されたレイアウトパターンの占有面積を格納する第２面積テーブル３４ｂとから構成したが、互いに格納する領域数が異なるｎ個（３つ以上）の面積テーブルにより構成し、配線密度の検証をｎ段階にて実施するようにしてもよい。また、占有率テーブル３５を、ｎ個（３つ以上）の占有率テーブルにより構成し、配線密度の検証をｎ段階にて実施するようにしてもよい。
【００９３】
・上記実施形態では、完成した１Ｃｈｉｐ全体のレイアウトデータやマクロレベルのレイアウトデータに対して、配線密度のプロセス製造基準の高い側だけでなく、低い側も配線密度の検証をしてもよい。
【００９４】
・上記実施形態では、新たなレイアウトデータを生成する場合について説明したが、追加又は修正が必用なレイアウトデータを編集する場合に適用しても良い。この場合、図３のステップ４１における初期化処理において、ＣＰＵ１２は、記憶装置１４に格納されたレイアウトデータを読み込み、そのレイアウトデータのレイアウトパターンに基づいて、面積テーブル３４及び占有率テーブル３５の値を設定する。このようにしても、追加又は修正するレイアウトパターンに係る密度チェックを容易に行うことができる。
【００９５】
上記各実施形態に関し、以下の付記を開示する。
（付記１）
半導体装置に形成されるレイアウトパターンのレイアウトデータを生成する設計装置の中央処理装置にて実行され、前記半導体装置の設計規則に従って所定サイズの検証エリアを検証ステップにて移動させ、各検証エリアにおける前記レイアウトパターンの占有率が設計規則を満足するか否かを検証するレイアウト検証方法であって、
記憶装置には、
前記半導体装置を前記検証ステップの格子にて区画した各領域に含まれる前記レイアウトパターンの占有面積がそれぞれ格納される面積テーブルと、
前記移動される検証エリアの位置に対応し、各検証エリアには所定数の前記領域が含まれ、検証エリアに対してその検証エリアに含まれる前記レイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブルと、
が記憶され、
前記中央処理装置が実行する処理は、
前記レイアウトパターンの入力におけるトリガの発生の有無を判定するトリガ判定工程と、
前記トリガに応答して入力中の前記レイアウトパターンの前記占有面積を算出して前記面積テーブルを更新する面積算出工程と、
前記入力中の前記レイアウトパターンに対応する対象部分における占有率を算出して前記占有率テーブルを更新する占有率算出工程と、
を含むこと、
を特徴とするレイアウト検証方法。
（付記２）
前記設計装置には検証ステップとして互いに異なる複数の検証ステップが設定され、
前記面積テーブル及び前記占有率テーブルは、各検証ステップに対応してそれぞれ複数のテーブルから構成され、
前記中央処理装置は、
複数の検証ステップについて、大きな検証ステップから小さな検証ステップへと検証ステップを順次変更し、
前記面積算出工程では各検証ステップの面積テーブルを更新し、
前記占有率算出工程ではその時の検証ステップに対応する占有率テーブルを更新すること、
を特徴とする付記１に記載のレイアウト検証方法。
（付記３）
前記設計装置には前記上限値に応じた保証占有率が設定され、
前記中央処理装置が実行する処理は、
その時に設定された検証ステップに対応する占有率テーブルを対象テーブルとし、その対象テーブルの占有率を前記保証占有率と比較し、占有率が保証占有率を超えている場合に対象テーブルから保証占有率を超える占有率のエリアを抽出する工程と、前記検証ステップをその時の検証ステップより小さな検証ステップに更新する工程と、更新した検証ステップに対応する占有率テーブルを対象テーブルとしてその対象テーブルにおいて前記エリア内の対象部分について占有率を算出して対象テーブルを更新する工程と、を含むことを付記２に記載のレイアウト検証方法。
（付記４）
前記中央処理装置が実行する処理は、
前記占有率算出工程において更新された前記占有率テーブルの更新部分の占有率が上限値を超えているか否かを判断するエラー判断工程と、
前記エラー判断工程において占有率が上限値を超えていると判断した場合に前記レイアウトパターンの入力を強制的に戻して前記面積テーブル及び前記占有率テーブルを更新するエラー解消工程と、
を含むこと、を特徴とする付記１〜３のうちの何れか１つに記載のレイアウト検証方法。
（付記５）
前記中央処理装置は、入力装置からの信号に基づいて、入力中の前記レイアウトパターンが前記検証ステップの格子を越えているか否か、及び前記レイアウトパターンの入力が終了したか否か、を判断し、入力中の前記レイアウトパターンが前記検証ステップの格子を越えた場合、又は前記レイアウトパターンの入力が終了した場合を前記トリガとする、ことを特徴とする付記１〜４のうちの何れか１つに記載のレイアウト検証方法。
（付記６）
前記中央処理装置は、前記占有率テーブルの占有率が前記上限値と等しいか否かを判断し、上限値と等しい占有率に対応するエリアに対して図形入力禁止エリアを生成する禁止エリア生成工程を実行すること、を特徴とする付記１〜５のうちの何れか１つに記載のレイアウト検証方法。
（付記７）
前記中央処理装置は、前記レイアウトパターンが下限値チェックゾーンに接触するか否かを判断し、接触している場合には前記下限値チェックゾーンに対応する占有率と下限値とを比較し、占有率が下限値未満の場合にエラーを表示する、ことを特徴とする付記１〜５のうちの何れか１項に記載のレイアウト検証方法。
（付記８）
半導体装置に形成されるレイアウトパターンのレイアウトデータを生成し、前記半導体装置の設計規則に従って所定サイズの検証エリアを検証ステップにて移動させ、各検証エリアにおける前記レイアウトパターンの占有率が設計規則を満足するか否かを検証する設計装置であって、
記憶装置には、
前記半導体装置を前記検証ステップの格子にて区画した各領域に含まれる前記レイアウトパターンの占有面積がそれぞれ格納される面積テーブルと、
前記移動される検証エリアの位置に対応し、各検証エリアには所定数の前記領域が含まれ、検証エリアに対してその検証エリアに含まれる前記レイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブルと、
が記憶され、
前記設計装置の中央処理装置が実行する処理は、
前記レイアウトパターンの入力におけるトリガの発生の有無を判定するトリガ判定工程と、
前記トリガに応答して入力中の前記レイアウトパターンの占有面積を算出して前記面積テーブルを更新する面積算出工程と、
前記入力中の前記レイアウトパターンに対応する対象部分における占有率を算出して前記占有率テーブルを更新する占有率算出工程と、
を含むこと、
を特徴とする設計装置。
（付記９）
半導体装置に形成されるレイアウトパターンのレイアウトデータを生成する設計装置の中央処理装置にて実行され、中央処理装置に前記半導体装置の設計規則に従って所定サイズの検証エリアを検証ステップにて移動させ、各検証エリアにおける前記レイアウトパターンの占有率が設計規則を満足するか否かを検証するレイアウト検証方法を実行させるためのプログラムであって、
記憶装置には、
前記半導体装置を前記検証ステップの格子にて区画した各領域に含まれる前記レイアウトパターンの占有面積がそれぞれ格納される面積テーブルと、
前記移動される検証エリアの位置に対応し、各検証エリアには所定数の前記領域が含まれ、検証エリアに対してその検証エリアに含まれる前記レイアウトパターンの占有率が、各検証エリアに対応して格納される占有率テーブルと、
が記憶され、
前記中央処理装置が実行する処理は、
前記レイアウトパターンの入力におけるトリガの発生の有無を判定するトリガ判定工程と、
前記トリガに応答して入力中の前記レイアウトパターンの占有面積を算出して前記面積テーブルを更新する面積算出工程と、
前記入力中の前記レイアウトパターンに対応する対象部分における占有率を算出して前記占有率テーブルを更新する占有率算出工程と、
を含むこと、
を特徴とするプログラム。
【符号の説明】
【００９６】
１１  設計装置
１２  中央処理装置（ＣＰＵ）
３４（３４ａ，３４ｂ）  面積テーブル
３５（３５ａ，３５ｂ）  占有率テーブル
【図１】
2009266213.tif 000003
【図２】
2009266213.tif 000004
【図３】
2009266213.tif 000005
【図４】
2009266213.tif 000006
【図５】
2009266213.tif 000007
【図６】
2009266213.tif 000008
【図７】
2009266213.tif 000009
【図８】
2009266213.tif 000010
【図９】
2009266213.tif 000011
【図１０】
2009266213.tif 000012
【図１１】
2009266213.tif 000013
【図１２】
2009266213.tif 000014
【図１３】
2009266213.tif 000015