(57)【特許請求の範囲】
【請求項１】
プロセッサ、レイアウト設計データを記憶するメモリ、分析基準を記憶するメモリ及び入出力装置を備えたコンピュータを用いて、前記プロセッサがレイアウト設計データを分析する方法であって、
（ａ）レイアウト設計データについて第１の分析基準を用いて第１の誤り分析プロセスを実行して修正情報を得るステップと、
（ｂ）前記レイアウト設計データの初期バージョンを含む第１のデータベースと、前記修正情報により変更されたデータを含む前記レイアウト設計データの訂正バージョンを含む第２のデータベースとを比較するステップと、
（ｃ）前記修正情報により変更されたデータを含む、前記レイアウト設計データの部分を特定するステップと、
（ｄ）前記第１の誤り分析を実行し続けている間に、前記レイアウト設計の前記特定された部分について、第２の分析基準を用いて第２の誤り分析プロセスを実行するステップと、を含む、レイアウト設計データを分析する方法。
【請求項２】
前記第２の分析基準が、前記第１の分析基準の部分集合である、請求項１に記載の方法。
【請求項３】
前記第１および第２の誤り分析が、設計ルール検査分析である、請求項１に記載の方法。
【請求項４】
前記第１および第２の誤り分析が、製造性を考慮した設計分析である、請求項１に記載の方法。
【請求項５】
前記比較するステップが、ハッシュ表を使用するステップを含む、請求項１に記載の方法。
【請求項６】
請求項１〜請求項５のいずれか１項に記載の各ステップをコンピュータに実行させるコンピュータ読み取り可能命令が保存されている、コンピュータ読み取り可能媒体。
【請求項７】
プロセッサ、レイアウト設計データを記憶するメモリ、分析基準を記憶するメモリ及び入出力装置を備えたコンピュータを用いて、前記プロセッサがレイアウト設計データを分析する方法であって、
（ａ）分析基準の第１の集合を用いて、レイアウト設計データについて、第１の分析プロセスを実行して修正情報を得るステップと、
（ｂ）前記レイアウト設計データの初期バージョンを含む第１のデータベースと、前記修正情報により変更されたデータを含む前記レイアウト設計データの訂正バージョンを含む第２のデータベースとを比較するステップと、
（ｃ）分析基準の前記第１の集合とは異なる分析基準の第２の集合を選択するステップと、
（ｄ）前記修正情報により変更されたデータを含む、前記レイアウト設計データの部分を特定するステップと、
（ｅ）前記第１の分析プロセスを実行し続けている間に、分析基準の前記第２の集合を用いて、前記レイアウト設計データの前記特定された部分について、第２の分析プロセスを実行するステップと、を含む、レイアウト設計データを分析する方法。
【請求項８】
分析基準の前記第２の集合が、分析基準の前記第１の集合と完全には重なって一致していない、請求項７に記載の方法。
【請求項９】
前記レイアウト設計データのうちの１つ以上の部分を特定するステップと、
前記レイアウト設計データの前記特定された部分だけについて、第２の分析プロセスを実行するステップと、をさらに含む、請求項７に記載の方法。
【請求項１０】
請求項７〜請求項９のいずれか１項に記載のステップをコンピュータに実行させるコンピュータ読み取り可能命令が保存されている、コンピュータ読み取り可能媒体。
【請求項１１】
プロセッサ、レイアウト設計データを記憶するメモリ、及び分析基準を記憶するメモリを備えたコンピュータに備えられるユーザーインタフェース・システムであって、
進行中のレイアウト設計データ分析プロセスの状態を表示する第１の表示部分を表示する手段と、
前記進行中のレイアウト設計データ分析が完了する前に、前記進行中のレイアウト設計データ分析プロセスの結果を表示する第２の表示部分を表示する手段と、
前記進行中のレイアウト設計データ分析プロセスが完了する前に、前記第２の表示部分に表示された前記結果のうちの１つ以上に対応するレイアウト設計データについて、第２のレイアウト設計データ分析プロセスを、ユーザーが開始できるようにする操作が可能な１つ以上のコントロールを表示する手段と含む、ユーザーインタフェース・システム。
【請求項１２】
請求項１１に記載のユーザーインタフェース・システムを搭載したコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
発明は、レイアウト設計データの増分分析に関する。本発明のさまざまな態様は、設計ルール検査分析または製造性（生産性）を考慮した設計分析などの先行する分析の結果に基づいてレイアウト設計データ内の変更を分析するのに特に有益であろう。
【背景技術】
【０００２】
関連出願
出願は、「増分設計ルール検査」と題する、ジェームス・パリス他を発明者として指定する２００７年３月９日に出願された米国仮特許出願第６０／８９４，１５１号に対して米国特許法第１１９条のもとで優先権を主張し、当該仮特許出願は引用により完全にここに組み込まれるものとする。
【０００３】
集積超小型回路のような電子回路が、自動車から、電子レンジ、パーソナル・コンピュータまでさまざまな製品で使用されている。超小型回路デバイスの設計および製造は、「設計フロー」として知られる多数のステップを通常含んでいる。設計フローの特定のステップは、超小型回路の種類、その複雑さ、設計チーム、および超小型回路を製造することになる超小型回路製造業者または半導体製造工場に依存する場合が多い。通常、ソフトウェアおよびハードウェア「ツール」が、ソフトウェア・シミュレータおよび／またはハードウェア・エミュレータを作動することにより設計フローのさまざまな段階で設計を検証し、設計の誤りが修正されたり、または設計が別の方法で改良されたりする。
【０００４】
いくつかのステップは、ほとんどの設計フローに共通している。最初に、新規の回路の仕様を論理設計に変換する。この論理設計は回路のレジスタ転送レベル（ＲＴＬ）記述と呼ばれることがある。この論理設計を用いて、回路は、ハードウェア・レジスタ間の信号のやりとりと、それらの信号上で実行される論理演算間の信号のやりとりとの両方に関して記述される。論理設計は、超高速集積回路ハードウェア設計言語（ＶＨＤＬ）のようなハードウェア設計言語（ＨＤＬ）を通常使用する。その後、回路のロジックを分析して、回路に要求される機能を回路のロジックが正確に実行するであろうことを確認する。この分析は、「機能検証」と呼ばれることがある。
【０００５】
論理設計の正確さが確認された後に、論理設計は合成ソフトウェアを用いてデバイス設計に変換される。通常、回路図またはネットリストの形式のデバイス設計では、回路内で使用されることになる具体的な電子デバイス（トランジスタ、抵抗器、およびコンデンサなど）が、それらの相互接続とともに記述される。このデバイス設計は、一般的に、従来の回路図に表示される表現のレベルに対応している。この段階で、各デバイスに対する推定特性速度を用いて回路の部分に対する事前時間推定を行ってもよい。さらに、電子デバイス間の関係を分析して、デバイス設計により記述された回路が要求機能を正確に実行するであろうことを確認する。この分析は、「形式的検証」と呼ばれることがある。
【０００６】
回路デバイス間の関係が確立されると、今度は具体的な幾何学的要素を記述する物理設計へと設計が再び変換される。この種類の設計は「レイアウト」設計と呼ばれることが多い。通常、多角形である幾何学的要素は、回路を製造するためにさまざまな材料で作られるであろう構造を形成する。通常、設計者は回路デバイス構成要素（例えば、接点、ゲートなど）を表す幾何学的要素の群を選択して、それらを設計領域内に配設することになる。幾何学的要素のこれらの群は、特注設計であってもよく、以前になされた設計のライブラリから選択されてもよく、またはその両方の何らかの組み合わせであってもよい。その後、幾何学的要素の間が線で結ばれ、この線は電子デバイスを相互接続するために使用される配線を形成することになる。これらのタスクの両方に対して、メンター  グラフィックス  コーポレイションのＩＣステーション、またはケイデンス社（Ｃａｄｅｎｃｅ）のヴィルトゥーソ（Ｖｉｒｔｕｏｓｏ）のようなレイアウト・ツール（「プレイス・アンド・ルート」ツールと呼ばれることが多い）が一般的に使用される。
【０００７】
レイアウト設計では、回路の各物理層は、設計において対応する層表現を有し、層表現内に記述された幾何学的要素は、回路デバイスを構成する回路デバイス構成要素の相対的位置を規定することになる。したがって、注入（埋め込み）層として表現された幾何学的要素は、ドーピングが行われる（または行われない）領域を規定し、他方、金属層として表現された幾何学的要素は、回路デバイスを接続するために導線を形成することになる金属層内の位置を規定する。
【０００８】
さらに、１つ以上の解像度向上技術（ＲＥＴ）を利用するためにレイアウト設計を変更してもよい。これらの技術は、フォトリソグラフィー製造プロセスにおいてレイアウト設計から生成されるレチクルまたはマスクの使用可能な解像度を向上させる。光近接効果補正（ＯＰＣ）プロセスと呼ばれる場合がある、このような種類の１つの変更プロセスは、既存のレイアウト設計データにセリフまたは凹部のような特徴を追加してもよく、それにより、変更したレイアウト設計データから作られたマスクの解像度を向上させる。例えば、光近接効果補正プロセスは、多角形の角におけるフォトリソグラフィー画像の丸まりを軽減させる「ハンマーの頭」の形状を含むように矩形の多角形を変更してもよい。
【０００９】
通常、リソグラフィー・マスクを生成するためにレイアウト設計データをまとめる前に、設計者は１つ以上のプロセスを実行してレイアウト設計データを分析するであろう。例えば、レイアウト設計データを分析して、回路デバイスとそれらの関係とをデバイス設計で記述しているようにレイアウト設計データが正確に表していることを確認してもよい。この種類の分析は、「レイアウト対回路図検査」と呼ばれることが多い。また、レイアウト設計データを分析して、幾何学的要素の間に最小の間隔を設けることなどのさまざまな設計要件にレイアウト設計データが適合していることを確認してもよい。この種類の分析は、「設計ルール検査」と一般的に呼ばれている。さらに、レイアウト設計を分析して、製造プロセスにおける制限を補うために行うことができる変更を特定してもよい。例えば、ユーザーがレイアウト設計データを分析して、幾何学的要素の製造性を向上させるために１つまたは複数の幾何学的要素を移動したり、もしくは変更したりできるかどうかを判断してもよく、または製造プロセスの間に不良を生じる確率が高い幾何学的要素のバックアップとして冗長幾何学的要素を設計に追加することができるかどうかを判断してもよい。この種類の分析は、「製造性を考慮した設計検査」または「リソグラフィー向け設計検査」と一般的に呼ばれている。同様に、光近接効果補正プロセスの後に、設計者はレイアウト設計データを分析して、任意のさらなる増強変更を行うべきかどうかを判断してもよい。
【００１０】
分析プロセスの結果に応じて、設計者はレイアウト設計データをさらに変更してもよい。例えば、設計ルール検査分析プロセスが、近接しすぎて配置されている２つの幾何学的要素を特定したとき、設計者は幾何学的要素を移動させて離すことによりレイアウト設計データを修正してもよい。同様に、製造性を考慮した設計分析プロセスが、冗長性をもたせるために複製（同じものを２つ設けること）できる幾何学的要素（例えば、ビアなど）を特定したとき、設計者は１つまたは複数の複製した幾何学的要素を設計に追加してもよい。レイアウト設計データを変更した後には、変更がいかなる新たな問題をも生じていないことを確保するために、設計は１つ以上の所望の分析プロセスを繰り返してもよい。変更と分析とのこのサイクルは、設計者がレイアウト設計データ分析の結果に満足するまで何回も繰り返してもよい。
【００１１】
レイアウト設計を仕上げた後に、フォトリソグラフィー製造プロセス用のマスクまたはレチクルを生成するために、マスクまたはレチクル書き込みツールにより使用できるフォーマットに、レイアウト設計を変換する。マスクおよびレチクルは、ブランクのレチクルまたはマスク基板を電子またはレーザ・ビームに（または、電子ビームもしくはレーザ・ビームのアレイに）さらすツールを用いて通常作られている。しかしながら、ほとんどのマスク書き込みツールは、直角三角形、長方形、または他の台形のような特定の種類の多角形をただ「書き込む」ことができるだけである。さらに、多角形の寸法は、ツールが利用できる最大ビーム（またはビーム・アレイ）寸法により物理的に制限される。その結果、レイアウト設計内の、より大きな幾何学的要素、または直角三角形でもなく、長方形でもなく、もしくは台形でもない幾何学的要素（通常、レイアウト設計内の幾何学的要素の大部分である）は、マスクまたはレチクル書き込みツールにより書き込むことができる、より小さな、より基本的な多角形に「バラバラに分割され」なければならない。このプロセスは、「マスク・データ処理」と呼ばれることがある。
【００１２】
レイアウト設計がショットに分割されると、分割されたレイアウト設計データは、マスクまたはレチクル書き込みツールと互換性を有するフォーマットに変換することができる。このようなフォーマットの実施例は、アプライドマテリアルズ社（Ａｐｐｌｉｅｄ  Ｍａｔｅｒｉａｌｓ  Ｃｏｍｐａｎｙ）系列のイーテック（ＥＴＥＣ）社により製造されたラスター・スキャニング装置用のＭＥＢＥＳ、ならびにＶＳＢ１１またはＶＳＢ１２のような、ニューフレア（Ｎｕｆｌａｒｅ）、ＪＥＯＬ、および日立の装置用のさまざまなベクトル・スキャン・フォーマットである。その後、書き込まれたマスクまたはレチクルをフォトリソグラフィー・プロセスで使用して、ウェハの選択された領域を光または他の放射線にさらし、ウェハ上に所望の集積回路デバイスを製造することができる。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述したように、レイアウト設計者は、分析と変更とのサイクルを何回も繰り返してもよい。しかしながら、多数の分析プロセスには時間がかかるとともに、大量の処理資源を必要とする。分散計算システムを用いても、例えば、最新のマイクロプロセッサ設計について設計ルール検査プロセスの単一の繰り返しを実行するのに、数時間かかる可能性がある。さらに、従来の設計ルール検査技術では、設計者は、設計に満足できるまでに１０回ないし１５回の間で設計ルール検査プロセスの繰り返しを実行する必要があるかもしれない。さらに、設計者は、超小型回路設計と、それらの設計を分析するのに使用する基準との両方が、将来さらに複雑になり続けるであろうということを予想している。
【課題を解決するための手段】
【００１４】
本発明の態様は、レイアウト設計データを追加的（漸増的）に分析するための技術に関する。本発明のいくつかの実施態様では、初期の分析基準の集合を用いてレイアウト設計データの集合全体を分析する従来の分析プロセスが開始された後に、特に有用である可能性がある。本発明のさまざまな実施例では、分析基準の部分集合を用いて、または両方の何らかの組み合わせを用いて、レイアウト設計データの部分だけに対して後続の増分分析を行うことができる。例えば、本発明のいくつかの実施態様では、初期の（もしくは他の先行する）分析プロセスにおいて特定された誤りに分析を限定したり、初期の（もしくは他の先行する）分析プロセスの後に行われたレイアウト設計データ内の変更に分析を限定したり、設計者により指定された特定の領域に分析を限定したり、またはそれらの何らかの組み合わせに分析を限定したりすることができる。さらに、本発明のいくつかの実施態様では、分析中の設計データの部分に関連する初期の分析基準の部分集合だけを用いて、初期の（もしくは他の先行する）分析プロセスにおいて設計データが不合格となった初期の分析基準の部分集合だけを用いて、設計者により選択された初期の分析基準の部分集合だけを用いて、またはそれらの何らかの組み合わせを用いて、分析プロセスを実行してもよい。
【００１５】
本発明のさまざまな実施例では、増分分析プロセス（すなわち、初期のレイアウト設計データのうちの選択された部分だけを用いる、初期の分析基準の部分集合だけを用いる、または両方を用いる、分析プロセス）を、初期の（または他の先行する）分析プロセスが完了する前に開始できる。例えば、設計者は、その分析プロセスが継続している間にリアルタイムの分析結果を提供するような初期の分析プロセスを使用してもよい。レイアウト設計データ内の誤りを特定したとき、設計者は誤りを修正するように設計を変更できる。その後、レイアウト設計データが初期の分析プロセスにより継続的に分析されている間であっても、設計者は増分設計プロセスを開始して、誤りが修正されたこと、および／または、変更によりいかなる新たな誤りも生じなかったこと、を確認することができる。
【図面の簡単な説明】
【００１６】
【図１】コンピュータ・ネットワークの構成要素および動作について説明するための図である。
【図２】本発明のさまざまな実施形態で使用してもよいマルチコア・プロセッサ・ユニットの実施例を示す図である。
【図３】本発明のさまざまな実施例に従って実行してもよい増分分析ツールの実施例を示す図である。
【図４Ａ】増分分析ツールの動作を説明するためのフローチャートである。
【図４Ｂ】増分分析ツールの動作を説明するためのフローチャートである。
【図５】ユーザーインタフェース・モジュールにより提供されるユーザーインタフェースの例を示す図である。
【図６Ａ】レイアウト設計内の１対のエラー・マーカーを示す図である。
【図６Ｂ】レイアウト設計データ選択モジュールにより生成される、エラー・マーカーの境界を示す境界ボックスの例を示す図である。
【図６Ｃ】レイアウト設計データ選択モジュールにより生成される、境界ボックスの周縁に基づくハロー領域の例を示す図である。
【図７Ａ】第１の幾何学的要素と第２の幾何学的要素との間に位置するエラー・マーカーを示す図である。
【図７Ｂ】レイアウト設計データ選択モジュールにより生成されるハロー領域の例を示す図である。
【図７Ｃ】エラー・マーカーを示す図である。
【図７Ｄ】より大きなハロー領域が指定されている例を示す図である。
【図８】本発明のさまざまな実施例に従って提供されてもよいユーザーインタフェースの実施例を示す図である。
【図９Ａ】本発明のいくつかの実施態様に係るユーザーインタフェースを示す図である。
【図９Ｂ】本発明のいくつかの実施態様に係るユーザーインタフェースを示す図である。
【発明を実施するための形態】
【００１７】
レイアウト設計データの構成
本明細書で用いられるように、用語「設計」は、集積回路デバイスまたは微小電気機械システム（ＭＥＭＳ）デバイスのような超小型デバイス全体を記述するデータを含むものとする。しかしながら、また、この用語は、集積回路デバイスの層、または集積回路デバイスの層のうちのほんの一部分のような、超小型デバイス全体のうちの１つ以上の構成要素を記述する、より小さい群のデータも含むものとする。さらに、用語「設計」は、また、単一の基板上に複数の超小型デバイスを同時に形成するためのマスクまたはレチクルを形成するのに使用されるべきデータのような、２つ以上の超小型デバイスを記述するデータを含むものとする。レイアウト設計データは、例えば、グラフィック・データ・システムＩＩ（ＧＤＳＩＩ）データ・フォーマット、または国際半導体製造装置材料協会（ＳＥＭＩ）により提案されたオープン・アートワーク・システム・インターチェンジ・スタンダード（ＯＡＳＩＳ）データ・フォーマットなどの任意の所望フォーマットであってもよい。他のフォーマットとしては、オープン・アクセスという名前のオープン・ソース・フォーマット、シノプシス社（Ｓｙｎｏｐｓｙｓ，  Ｉｎｃ．）によるミルキーウェイ（Ｍｉｌｋｙｗａｙ）、およびメンター  グラフィックス  コーポレイションによるＥＤＤＭなどがある。
【００１８】
新規の集積回路の設計は、何百万個ものトランジスタ、抵抗器、コンデンサ、または他の電気的構造が相互接続された、論理回路、メモリ回路、プログラマブル・フィールド・アレイ、および他の回路デバイスを含む可能性がある。コンピュータがこれらの大きなデータ構造をより容易に生成し、かつ分析できるようにするために（およびユーザーがこれらのデータ構造をよりよく理解できるようにするために）、これらのデータ構造は、通常「セル」と呼ばれる、より小さなデータ構造で階層的に構成されていることが多い。したがって、マイクロプロセッサまたはフラッシュ・メモリ設計では、単独ビットを保存するためのメモリ回路を構成するトランジスタのすべては、単独「ビット・メモリ」セルに分類されてもよい。各トランジスタを個々に数え上げる必要はなく、シングルビット・メモリ回路を構成するトランジスタの群を、したがって、まとめて単独ユニットと見なして、操作することができる。同様に、より大きな１６ビットのメモリ・レジスタ回路を記述する設計データは、単独セルに分類できる。そのとき、この上位の「レジスタ・セル」は、ビット・メモリ・セルのそれぞれへデータを転送するための、およびビット・メモリ・セルのそれぞれからデータを転送するための入出力回路のような他の種々雑多な回路を記述する設計データとともに、１６個のビット・メモリ・セルを含む可能性がある。そのとき同様に、１２８ｋＢのメモリ・アレイを記述する設計データは、たった６４，０００個のレジスタ・セルの組み合わせとして簡潔に記述でき、レジスタ・セルのそれぞれへデータを転送するための、およびレジスタ・セルのそれぞれからデータを転送するための入出力回路のような、その６４，０００個のレジスタ・セルの組み合わせ自身の種々雑多な回路を記述する設計データとともに、簡潔に記述できる。
【００１９】
超小型回路設計データを階層的なセルに分類することにより、大きなデータ構造を、より迅速かつ効率的に処理できる。例えば、回路設計者は、通常、設計を分析して、設計で記述されたそれぞれの回路の特徴が、設計から超小型回路を製造することになる半導体製造工場により指定された設計ルールに適合していることを確実にするであろう。上述した実施例では、１２８ｋＢのメモリ・アレイ全体の各特徴を分析する必要がある代わりに、設計ルール検査プロセスは単独のビット・セルの特徴を分析できる。その後、検査の結果は単独ビット・セルのすべてに適用可能である。単独ビット・セルの一例が設計ルールに従っていることを確認すると、その後、設計ルール検査プロセスは、単にレジスタ・セルの付加的な種々雑多な回路（それ自体が１つ以上の階層的なセルで構成されていてもよい）の特徴を分析するだけで、レジスタ・セルの分析を達成することができる。その後、この検査の結果はレジスタ・セルのすべてに適用可能である。レジスタ・セルの一例が設計ルールに従っていることを確認すると、設計ルール検査ソフトウェア・アプリケーションは、単にメモリ・アレイ内の付加的な種々雑多な回路の特徴を分析するだけで、１２８ｋＢのメモリ・アレイ全体の分析を達成することができる。このようにして、大きなデータ構造の分析は、データ構造を構成する比較的少数のセルの分析に圧縮できる。
【００２０】
本発明のさまざまな実施例では、レイアウト設計データは、２つの異なった種類のデータ、すなわち、「引きまわし層」設計データと「誘導層」設計データとを含んでいる。引きまわし層データは、集積回路を製造するための材料の層内の構造を形成するのに使用される幾何学的特徴を記述している。引きまわし層データは、金属層、拡散層、およびポリシリコン層内の構造を形成するのに使用される多角形を通常含むであろう。そのとき、誘導層は、引きまわし層データと他の誘導層データとの組み合わせで構成される特徴を含むであろう。例えば、上述したトランジスタ・ゲートでは、ゲートを記述する誘導層設計データは、ポリシリコン材料層内の多角形と拡散材料層内の多角形との交差部分から導かれることになる。
【００２１】
例えば、設計ルール検査モジュールにより実行される設計ルール検査プロセスは、２種類の動作、すなわち、設計データ値が、指定されたパラメータに適合しているかどうかを確認する「検査」動作と、誘導層データを生成する「導出」動作と、を通常実行することになる。したがって、トランジスタ・ゲート設計データは、下記の導出動作で生成されてもよい。
ｇａｔｅ＝ｄｉｆｆ  ＡＮＤ  ｐｏｌｙ
この動作の結果は、拡散層多角形とポリシリコン層多角形とのすべての交差部分を特定するデータの「層」になるであろう。同様に、拡散層にｎ型材料をドーピングすることにより形成されるｐ型トランジスタ・ゲートは、下記の導出動作で特定される。
ｐｇａｔｅ＝ｎｗｅｌｌ  ＡＮＤ  ｇａｔｅ
そのとき、この動作の結果は、拡散層内の多角形にｎ型材料をドーピングしたすべてのトランジスタ・ゲート（すなわち、拡散層多角形とポリシリコン層多角形との交差部分）を特定するデータの他の「層」になるであろう。
【００２２】
その後、設計ルール検査モジュールにより実行された検査動作は、データ設計値に対するパラメータまたはパラメータ範囲を規定するであろう。例えば、ユーザーは、金属配線ラインが他の配線ラインの１ミクロン以内には無いことを確保する必要があるかもしれない。この種類の分析は、下記の検査動作により実行してもよい。
ｅｘｔｅｒｎａｌ  ｍｅｔａｌ＜１
この動作の結果は、金属層設計データ内の他の多角形から１ミクロンよりも近い位置にある金属層設計データ内の各多角形を特定するであろう。
【００２３】
また、上述した動作は引きまわし層データを使用しているが、検査動作は誘導層データについて同様に実行してもよい。例えば、ユーザーが、他のゲートの１ミクロン以内にはトランジスタ・ゲートが無いことを確認する必要があるとき、設計ルール検査プロセスは下記の検査動作を含んでいてもよい。
ｅｘｔｅｒｎａｌ  ｇａｔｅ＜１
この動作の結果は、他のゲートから１ミクロン未満の位置に配置されているゲートを表すすべてのゲート設計データを特定するであろう。しかしながら、引きまわし層設計データからゲートを特定する導出動作が実行されるまでは、この検査動作を実行できないということを理解すべきである。
動作環境
開示された技術は、本明細書で説明するシステムおよび方法の実施形態の新規でかつ自明でないすべての特徴および態様を、それら単独で、ならびにそれらのさまざまな組み合わせおよびサブ・コンビネーションの形で含んでいる。実施形態の開示された特徴および態様は、単独で、または互いにさまざまな新規でかつ自明でない組み合わせおよびサブ・コンビネーションの形で利用することができる。
【００２４】
開示された方法の動作は、提示するのに便利なように特定の連続した順序で記述されているが、後述の特定の表現により特定の順序が要求される場合を除いて、説明されるこの方法は配列換えを含むことを理解すべきである。例えば、連続的に記述された動作は、場合によっては配列換えされたり、または同時に実行されたりしてもよい。さらに、便宜上、開示されたフローチャートおよびブロック図は、特定の方法を他の方法と併用して使用することができるさまざまなやり方を通常示していない。さらに、詳細な説明では、開示された方法を記述するために「判断する」のような用語を使用することがある。このような用語は、実行される実際の動作の高度な抽象概念である。これらの用語に対応する実際の動作は、特定の実施態様に応じて変化するであろうが、当業者は容易に認識できる。
【００２５】
本明細書で説明する方法のいくつかは、コンピュータ読み取り可能媒体上に保存されたソフトウェア内に実装することができ、コンピュータ上で実行することができる。開示された方法のいくつかは、例えば、電子設計自動化（ＥＤＡ）ツールの一部として実施することができる。このような方法は、単独のコンピュータまたはネットワーク・コンピュータ上で実行することができる。明確にするために、これらの開示された方法に密接な関係があるソフトウェアのそれらの態様だけを説明しており、当技術分野でよく知られている製品の詳細については省略している。
【００２６】
本発明の実施形態のさまざまな電子設計自動化プロセスの実行は、１つ以上のプログラマブル・コンピュータ・デバイスにより実行されるコンピュータ実行可能ソフトウェア命令を用いて実施してもよい。本発明のこれらの実施形態はソフトウェア命令を用いて実施してもよいため、本発明のさまざまな実施形態が採用されてもよい一般的なプログラマブル・コンピュータ・システムの構成要素および動作について、最初に説明する。さらに、いくつかの電子設計自動化プロセスの複雑さ、および多くの回路設計の大きいサイズのために、さまざまな電子設計自動化ツールは、複数の処理スレッドを同時に実行できる計算機システム上で動作するように構成されている。したがって、ホストまたはマスタ・コンピュータと、１つ以上のリモートまたはサーバント・コンピュータとを有するコンピュータ・ネットワークの構成要素および動作について、図１を参照して説明する。しかしながら、この動作環境は好適な動作環境の単なる一実施例に過ぎず、本発明の使用または機能の範囲に関していかなる制限をも示唆するものではない。
【００２７】
図１では、コンピュータ・ネットワーク１０１はマスタ・コンピュータ１０３を含んでいる。図示の実施例では、マスタ・コンピュータ１０３は、複数の入出力装置１０５と１つのメモリ１０７とを含むマルチプロセッサ・コンピュータである。入出力装置１０５は、ユーザーから入力データを受信したり、またはユーザーへ出力データを提供したりするための任意のデバイスを含んでいてもよい。入力装置は、ユーザーからの入力を受け取るための、例えば、キーボード、マイクロホン、スキャナ、またはポインティング・デバイスなどを含んでいてもよい。その場合、出力装置は、ディスプレイ・モニタ、スピーカ、プリンタ、または触覚フィードバック・デバイスを含んでいてもよい。これらのデバイスとその接続については当技術分野でよく知られているため、ここで詳細に議論はしない。
【００２８】
同様に、メモリ１０７は、マスタ・コンピュータ１０３がアクセスできるコンピュータ読み取り可能媒体の任意の組み合わせを用いて実現されてもよい。コンピュータ読み取り可能媒体は、例えば、読み出し書き込みメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的消却・プログラム可能型読み出し専用メモリ（ＥＥＰＲＯＭ）、もしくはフラッシュ・メモリ超小型回路デバイスのような超小型回路メモリ・デバイス、ＣＤ−ＲＯＭディスク、デジタル・ビデオ・ディスク（ＤＶＤ）、または他の光記憶デバイスを含んでいてもよい。また、コンピュータ読み取り可能媒体は、磁気カセット、磁気テープ、磁気ディスク、もしくは他の磁気記憶デバイス、穿孔媒体、ホログラフィック・ストレージ・デバイス、または所望情報を保存するのに使用できる他の任意の媒体を含んでいてもよい。
【００２９】
詳細に後述するように、マスタ・コンピュータ１０３は、本発明のさまざまな実施例の１つまたは複数の動作を実行するためのソフトウェア・アプリケーションを実行する。したがって、メモリ１０７は、それが実行されると１つまたは複数の動作を実行するためのソフトウェア・アプリケーションを実施することになるソフトウェア命令１０９Ａを保存している。また、メモリ１０７は、ソフトウェア・アプリケーションとともに使用されるデータ１０９Ｂを保存している。図示の実施形態では、データ１０９Ｂは、ソフトウェア・アプリケーションが動作を実行するのに使用するプロセス・データを含んでおり、動作のうちの少なくともいくつかは並行して同時に実行してもよい。
【００３０】
また、マスタ・コンピュータ１０３は、複数のプロセッサ・ユニット１１１と１つのインタフェース装置１１３とを含んでいる。プロセッサ・ユニット１１１は、ソフトウェア命令１０９Ａを実行するようにプログラムできる任意の種類のプロセッサ・デバイスであってもよいが、通常、マイクロプロセッサ・デバイスである。例えば、1つまたは複数のプロセッサ・ユニット１１１は、インテル（登録商標）のペンティアム（登録商標）もしくはジーオン（商標）マイクロプロセッサ、アドバンスト・マイクロ・デバイセスのアスロン（商標）マイクロプロセッサ、またはモトローラの６８Ｋ／コールドファイア（登録商標）マイクロプロセッサのような商業的に一般的なプログラマブル・マイクロプロセッサであってもよい。代替として、または追加として、１つまたは複数のプロセッサ・ユニット１１１は、特定の種類の数学演算を最適に実行するように設計されたマイクロプロセッサなどの特注プロセッサであってもよい。インタフェース装置１１３、プロセッサ・ユニット１１１、メモリ１０７、および入出力装置１０５は、バス１１５により互いに接続されている。
【００３１】
本発明のいくつかの実施態様では、マスタ・コンピュータ・デバイス１０３には、２つ以上のプロセッサ・コアを有する１つ以上のプロセッサ・ユニット１１１を使用してもよい。したがって、図２は、本発明のさまざまな実施形態で使用してもよいマルチコア・プロセッサ・ユニット１１１の実施例を示している。この図で分かるように、プロセッサ・ユニット１１１は複数のプロセッサ・コア２０１を含んでいる。各プロセッサ・コア２０１は、計算エンジン２０３とメモリ・キャッシュ２０５とを含んでいる。当業者に知られているように、計算エンジンは、ソフトウェア命令をフェッチすること、および、その後、フェッチした命令内で指定されたアクションを実行することなどのさまざまな演算関数を実行するための論理デバイスを含んでいる。これらのアクションは、例えば、足し算をすること、引き算をすること、掛け算をすること、ならびに数字を比較すること、ＡＮＤ、ＯＲ、ＮＯＲ、ＸＯＲのような論理演算を実行すること、およびデータを取り出すこと、を含んでいてもよい。その場合、各計算エンジン２０３は、それに対応するメモリ・キャッシュ２０５を使用して、実行のためのデータおよび／または命令を迅速に保存し、かつ取り出してもよい。
【００３２】
各プロセッサ・コア２０１は相互接続２０７に接続されている。相互接続２０７の特定の構成は、プロセッサ・ユニット２０１のアーキテクチャに応じて変化してもよい。ソニーと、東芝と、ＩＢＭ社とにより作られたセル・マイクロプロセッサなどのいくつかのプロセッサ・コア２０１では、相互接続２０７は相互接続バスとして実施されてもよい。しかしながら、カリフォルニア州サニーベールのアドバンスト・マイクロ・デバイセスから入手できるオプテロン(商標)およびアスロン（商標）デュアルコア・プロセッサなどの他のプロセッサ・ユニット２０１では、相互接続２０７は、システム要求インタフェース装置として実施されてもよい。いずれの場合でも、プロセッサ・コア２０１は、相互接続２０７を介して入出力インタフェース２０９およびメモリ・コントローラ２１１と通信する。入出力インタフェース２０９は、プロセッサ・ユニット２０１とバス１１５の間の通信インタフェースを提供している。同様に、メモリ・コントローラ２１１は、プロセッサ・ユニット２０１とシステム・メモリ１０７との間の情報交換を制御している。本発明のいくつかの実施態様では、プロセッサ・ユニット２０１は、プロセッサ・コア２０１により共有されアクセス可能な高次キャッシュ・メモリのような付加的な構成要素を含んでいてもよい。
【００３３】
図２は、本発明のいくつかの実施形態で使用してもよいプロセッサ・ユニット２０１の１つの説明図を示しているが、この説明図はあくまで代表例を示したに過ぎず、限定しようとするものではないことを理解すべきである。例えば、本発明のいくつかの実施形態では、１つ以上のセル・プロセッサを備えたマスタ・コンピュータ１０３を使用してもよい。セル・プロセッサは、複数の入出力インタフェース２０９と複数のメモリ・コントローラ２１１とを使用している。また、セル・プロセッサは、異なる種類の９個の異なるプロセッサ・コア２０１を有している。さらに詳細には、セル・プロセッサは、６個以上の相乗プロセッサ要素（ＳＰＥ）と１つの電力プロセッサ要素（ＰＰＥ）とを有している。それぞれの相乗プロセッサ要素は、４２８×４２８ビット・レジスタと、４個の単精度浮動小数点計算ユニットと、４個の整数計算ユニットと、命令およびデータの両方を保存する５５６ＫＢのローカル・ストア・メモリと、を備えたベクトル型計算エンジン２０３を有している。その場合、電力プロセッサ要素は相乗プロセッサ要素により実行されたそのタスクを制御する。その構成のために、セル・プロセッサは、高速フーリエ変換（ＦＦＴ）の計算のようないくつかの数学演算を、多くの従来のプロセッサよりも実質的に速いスピードで実行できる。
【００３４】
また、いくつかの実施態様では、複数の個別のプロセッサ・ユニット１１１の代わりにマルチコア・プロセッサ・ユニット１１１を使用できることを理解すべきである。例えば、６個の個別のプロセッサ・ユニット１１１を使用せずに、本発明の他の実施態様では、例えば、６個のコアを有する単独のプロセッサ・ユニット１１１を使用したり、それぞれが３個ずつのコアを有する２個のマルチコア・プロセッサ・ユニットを使用したり、２個の個別のシングルコア・プロセッサ・ユニット１１１と、４個のコアを有するマルチコア・プロセッサ・ユニット１１１とを一緒に使用したりしてもよい。
【００３５】
ここで図１を参照すると、インタフェース装置１１３は、マスタ・コンピュータ１０３が通信インタフェースを介してサーバント・コンピュータ１１７Ａ、１１７Ｂ、１１７Ｃ．．．．１１７ｘと通信することを可能にしている。通信インタフェースは、例えば、従来の有線ネットワーク接続または光伝送有線ネットワーク接続などを含む任意の好適な種類のインタフェースであってもよい。また、通信インタフェースは、例えば、無線の光接続、無線周波数接続、赤外線接続、または音響接続さえ含む無線接続であってもよい。インタフェース装置１１３は、マスタ・コンピュータ１０３とサーバント・コンピュータ１１７のそれぞれとからのデータと制御信号とを、伝送制御プロトコル（ＴＣＰ）、ユーザ・データグラム・プロトコル（ＵＤＰ）、およびインターネット・プロトコル（ＩＰ）などの１つ以上の通信プロトコルに従うネットワーク・メッセージに変換する。これらの、および他の従来の通信プロトコルについては当技術分野でよく知られているため、ここで詳細に議論はしない。
【００３６】
各サーバント・コンピュータ１１７は、メモリ１１９と、プロセッサ・ユニット１２１と、インタフェース装置１２３と、任意で、システム・バス１２７により一緒に接続されたもう１つの入出力装置１２５と、を含んでいてもよい。マスタ・コンピュータ１０３と同様に、サーバント・コンピュータ１１７用の任意の入出力装置１２５は、キーボード、ポインティング・デバイス、マイクロホン、表示モニタ、スピーカ、およびプリンタのような従来の任意の入力装置または出力装置を含んでいてもよい。同様に、プロセッサ・ユニット１２１は、従来の任意の種類の、または特注のプログラマブル・プロセッサ・デバイスであってもよい。例えば、１つまたは複数のプロセッサ・ユニット１２１は、インテル（登録商標）のペンティアム（登録商標）もしくはジーオン（商標）マイクロプロセッサ、アドバンスト・マイクロ・デバイセスのアスロン（商標）マイクロプロセッサ、またはモトローラの６８Ｋ／コールドファイア（登録商標）マイクロプロセッサのような商業的に一般的なプログラマブル・マイクロプロセッサであってもよい。あるいは、１つまたは複数のプロセッサ・ユニット１２１は、特定の種類の数学演算を最適に実行するように設計されたマイクロプロセッサなどの特注プロセッサであってもよい。さらに、上述の図２に関して説明したように、１つまたは複数のプロセッサ・ユニット１２１は、２つ以上のコアを有してもよい。例えば、本発明のいくつかの実施態様では、プロセッサ・ユニット１２１のうちの１つ以上は、セル・プロセッサであってもよい。その場合、メモリ１１９は、上述したコンピュータ読み取り可能媒体の任意の組み合わせを用いて実現してもよい。インタフェース装置１１３と同様に、インタフェース装置１２３は、サーバント・コンピュータ１１７が通信インタフェースを介してマスタ・コンピュータ１０３と通信することを可能にしている。
【００３７】
図示の実施例では、マスタ・コンピュータ１０３は複数のプロセッサ・ユニット１１１を備えたマルチプロセッサ・ユニット・コンピュータであり、他方、各サーバント・コンピュータ１１７は単一のプロセッサ・ユニット１２１を有している。しかしながら、本発明の他の実施態様では、単一のプロセッサ・ユニット１１１を有するマスタ・コンピュータを使用してもよいことに注目すべきである。さらに、１つまたは複数のサーバント・コンピュータ１１７は、上述したように、それらの使用目的に応じて複数のプロセッサ・ユニット１２１を有してもよい。また、マスタ・コンピュータ１０３とサーバント・コンピュータとの両方に対して、単一のインタフェース装置１１３または１２３だけを示しているが、本発明の他の実施形態では、コンピュータ１０３、１つまたは複数のサーバント・コンピュータ１１７、またはその両方の何らかの組み合わせが、２つ以上の異なるインタフェース装置１１３または１２３を使用して、複数の通信インタフェースを介して通信してもよいことに注目すべきである。
【００３８】
本発明のさまざまな実施例では、マスタ・コンピュータ１０３は、１つまたは複数の外部データ記憶装置に接続されていてもよい。これらの外部データ記憶装置は、マスタ・コンピュータ１０３がアクセスできるコンピュータ読み取り可能媒体の任意の組み合わせを用いて実現してもよい。コンピュータ読み取り可能媒体は、例えば、読み出し書き込みメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的消却・プログラム可能型読み出し専用メモリ（ＥＥＰＲＯＭ）、もしくはフラッシュ・メモリ超小型回路デバイスのような超小型回路メモリ・デバイス、ＣＤ−ＲＯＭディスク、デジタル・ビデオ・ディスク（ＤＶＤ）、または他の光記憶デバイスを含んでいてもよい。また、コンピュータ読み取り可能媒体は、磁気カセット、磁気テープ、磁気ディスク、もしくは他の磁気記憶デバイス、穿孔媒体、ホログラフィック・ストレージ・デバイス、または所望情報を保存するのに使用できる他の任意の媒体を含んでいてもよい。本発明のいくつかの実施態様に従って、サーバント・コンピュータ１１７のうちの１つ以上は、代替的に、または追加として、１つ以上の外部データ記憶装置に接続されていてもよい。通常、これらの外部データ記憶装置は、マスタ・コンピュータ１０３にも接続されているデータ記憶装置を含むであろうが、これらの外部データ記憶装置は、また、マスタ・コンピュータ１０３がアクセス可能ないかなるデータ記憶装置とも異なるものであってもよい。
【００３９】
また、図１および図２に示したコンピュータ・ネットワークの説明は、あくまで実施例として提供されているに過ぎず、本発明の他の実施形態の使用または機能の範囲に関していかなる制限をも示唆するものではないということを理解すべきである。
増分分析ツール
図３は、本発明のさまざまな実施例に従って実行してもよい増分分析ツール３０１の実施例を示している。増分分析ツール３０１は、ユーザーインタフェース・モジュール３０３と、レイアウト設計データ選択モジュール３０５と、分析基準選択モジュール３０７と、分析プロセス・モジュール３０９と、を含んでいる。この図で分かるように、増分分析ツール３０１は、レイアウト設計データ記憶装置３１１と分析基準記憶装置３１３とに連動して作動してもよい。
【００４０】
ユーザーインタフェース・モジュール３０３は、レイアウト設計データ選択モジュール３０５、分析基準選択モジュール３０７、および分析プロセス・モジュール３０９の動作を制御するための１つ以上のユーザーインタフェースをユーザーに提供している。本明細書で用いられるように、用語「ユーザー」は、増分分析ツール３０１を使用して超小型回路設計を分析しかつ変更する可能性がある任意の人を示している。ユーザーは、例えば、超小型回路設計の元の設計者、または設計から超小型回路を製造する前に既存の超小型回路設計を、例えば、変更しようとしている半導体製造工場の利用者であってもよい。詳細に後述するように、ユーザーインタフェースは、増分分析プロセスで分析されることになるレイアウト設計データを決定するように、ユーザーがレイアウト設計データ選択モジュール３０５に命令することを可能にする。同様に、ユーザーインタフェースは、選択されたレイアウト設計データを増分分析プロセスで分析するのに使用される分析基準を決定するように、ユーザーが分析基準選択モジュール３０７に命令することを可能にする。
【００４１】
ユーザーからの命令に呼応して、レイアウト設計データ選択モジュール３０５は、レイアウト設計データ記憶装置３１１内のレイアウト設計データを選択し、その後、これらのレイアウト設計データは分析プロセス・モジュール３０９に提供される。同様に、ユーザーからの命令に呼応して、分析基準選択モジュール３０７は、分析基準記憶装置３１３から分析基準を選択し、その後、これらの分析基準は分析プロセス・モジュール３０９に提供される。選択された分析基準を用いて、その後、分析プロセス・モジュール３０９は選択されたレイアウト設計データを分析することになる。図４に示したフローチャートに関して、増分分析ツール３０１の動作を詳述するであろう。
事前分析および修正
ステップ４０１では、第１の電子設計自動化分析プロセスがレイアウト設計データについて実行される。分析プロセスは、レイアウト対回路図プロセス、設計ルール検査プロセス、製造性（生産性）を考慮した設計プロセス、または光近接効果補正検証プロセスのような任意の種類の既知の電子設計自動化分析プロセスであってもよい。本発明のさまざまな実施形態では、この第１の分析プロセスは増分分析ツール３０１により実行してもよい。しかしながら、本発明のさらに他の実施形態では、第１の分析プロセスは、増分分析ツール３０１以外の何らかの分析ツールにより実行してもよい。
【００４２】
上述したように、場合によっては、第１の分析プロセスはレイアウト設計データの「完全な」分析を行うであろう。すなわち、分析プロセスは、レイアウト設計のすべてまたは主要部（例えば、層全体）を分析するであろう。完全な分析では、分析プロセスは、分析基準の大きな集合を通常使用して、レイアウト設計データを分析するであろう。例えば、分析プロセスが設計ルール検査プロセスであるとき、完全な分析は、レイアウト設計データが分析に合格するために従わなければならないルールの比較的大きなリストまたは「デッキ」を使用してもよい。設計ルール検査プロセスのルール・デッキは、例えば、金属層に対する金属線間の最小距離、ポリシリコン層内の隣接する平行線の最大長、他の金属層内の構造の最小密度などのルールを含んでいてもよい。これらのルール・デッキは、設計者の経験と研究知識とに基づいて集められ、慎重に保護された独占的秘密である場合が多い。
【００４３】
分析プロセスは、レイアウト設計データ内で検出された、修正を必要とする誤りを特定する。例えば、従来の分析プロセスの分析結果は、検出されたそれぞれの誤りの位置を示すエラー・マーカーを有する設計のマップを含んでいてもよい。さらに、分析結果は、レイアウト設計データがそれに違反して誤りを引き起こした分析基準（例えば、設計ルール）を特定してもよい。したがって、レイアウト設計内の２本の線が最小間隔ルールに違反しているとき、分析結果は、違反している線を示すエラー・マーカーと、違反している最小間隔ルールを明示する注意書きと、を含んでいてもよい。分析プロセスが増分分析ツール３０１により実行されるとき、増分分析ツール３０１は第１の分析プロセスの結果を保存できる。分析プロセスが増分分析ツール３０１以外の異なるツールにより実行されるとき、分析プロセスの結果は、その後の使用のために増分分析ツール３０１に提供されてもよい。
【００４４】
次に、ステップ４０３では、設計者が、第１の分析プロセスにより特定された１つまたは複数の誤りを修正するように、レイアウト設計データを変更する。この場合も先と同様に、本発明のさまざまな実施形態では、設計者は、増分分析ツール３０１を用いてレイアウト設計データを変更するであろう。例えば、ユーザーインタフェース・モジュール３０３は、オレゴン州ウィルソンビルのメンター  グラフィックス  コーポレイションから入手できるカリバーＲＶＥおよびカリバー対話式ソフトウェア・ツールのような１つまたは複数のレイアウト設計データ編集ツールにアクセスし、またはこれを利用するための手段を設計者に提供してもよい。あるいは、設計者は、増分分析ツール３０１以外の１つまたは複数の個別のレイアウト設計データ編集ツールを使用して、レイアウト設計データを変更してもよい。この場合も先と同様に、レイアウト設計データを変更するために増分分析ツール３０１以外のレイアウト設計データ編集ツールを使用する場合には、レイアウト設計データの改訂は、その後の使用のために増分分析ツール３０１に提供されてもよい。
レイアウト設計データの選択
ステップ４０５では、ユーザーが、第２の増分分析プロセスにより分析されることになるレイアウト設計データを選択する。さらに詳細には、ユーザーは、ユーザーインタフェース・モジュール３０３により提供される１つまたは複数のユーザーインタフェースを使用して、分析されることになるレイアウト設計データを選択するようにレイアウト設計データ選択モジュール３０５に命令する。本明細書で用いられるように、用語「選択する」は、ユーザーにより指示された選択と、指示された選択を行わず、その代わりに、増分分析ツール３０１がデフォルト選択を実施することを可能にするようなユーザーによる決定と、の両方を含んでいることに注目すべきである。上述したように、本発明のさまざまな実施形態は、ユーザーが多数の異なる特性に従ってレイアウト設計データを選択できるようにするであろう。
変更されたレイアウト設計データ
本発明のいくつかの実施態様では、例えば、旧バージョンから変更されたレイアウト設計データの部分をユーザーが選択することを可能にしてもよい。この選択基準は、レイアウト設計データに行われた変更がユーザーには容易に分からない場合に特に有用であるかもしれない。例えば、レイアウト設計データがステップ４０３で他の設計者により増分分析ツール３０１とは異なるレイアウト設計データ編集ツールを用いて変更されたとき、ユーザーは、例えば、第１の分析プロセス後にレイアウト設計データに行われた変更に気づかない可能性がある。レイアウト設計データの旧バージョンに行われた変更を特定するように、レイアウト設計データ選択モジュール３０５に命令することにより、レイアウト設計データに行われたいかなる変更も第２の分析プロセスで分析されることをユーザーは確保することができる。
【００４５】
本発明のさまざまな実施形態では、レイアウト設計データ選択モジュール３０５は、さまざまな技術を用いてレイアウト設計データ内の変更を特定できる。変更が増分分析ツール３０１を用いて行われたとき、レイアウト設計データ選択モジュール３０５（または、増分分析ツール３０１の他の構成要素）は、各変更を、それが行われた通りにただ記録するだけかもしれない。レイアウト設計データ選択モジュール３０５は、例えば、ルックアップテーブル内に変更を保存してもよい。本発明のさらに他の実施態様では、現行バージョンのレイアウト設計データと旧バージョンのレイアウト設計データの両方について論理ＸＯＲ演算を実行してもよい。当技術分野で周知のように、このような論理演算は、レイアウト設計データの２つのバージョンの間の差異を特定するであろう。
【００４６】
レイアウト設計データが特に複雑であったり、または階層構造配置を有しているとき、いくつかの実施態様では、レイアウト設計データの２つのバージョンの間の差異をより迅速に特定するためにハッシュ表を使用してもよい。詳細に上述したように、レイアウト設計データはセルで階層的に構成されている場合が多い。各セルは、２つの異なる種類の設計構成要素、すなわち、他のセルと、幾何学的要素（テキスト・データなどの、それらの幾何学的要素と関連するさまざまなデータとともに）と、のどちらを含んでいてもよい。異なるバージョンのレイアウト設計データ内の２つのセルが実際に同じであることを確実にするために、セルの内容を調べて、それらが同じであることを確認しなければならない。しかしながら、１つのセルの幾何学的要素と他のセルのすべての幾何学的要素とを、一致が見つかるまで（または、第２のセルが、一致する幾何学的要素を含まないことを証明するまで）比較することは、時間がかかる可能性があり、かつ費やされる時間は比較されることになる幾何学的要素の個数とともに指数関数的に増大する。同様に、１つのセルのセル・インスタンスと他のセル内のすべてのセル・インスタンスとを、一致が見つかるまで（または、第２のセル内に一致が無いことを証明するまで）比較することは時間がかかり、費やされる時間は比較されることになるインスタンスの個数とともに指数関数的に増大する。
【００４７】
１つのセルの内容と他のセルの内容とを比較するのに要する時間と計算資源とを削減するために、本発明のさまざまな実施形態では、ハッシュ演算を使用して、比較前に２つのセル内の設計構成要素を分類（ソート）するであろう。例えば、本発明の実施態様では、セル内の幾何学的要素のそれぞれを分類するハッシュ表を生成するであろう。同様に、本発明の実施態様では、セル内のセル・インスタンスのそれぞれを分類する他のハッシュ表を生成するであろう。セルの内容がこれらのハッシュ表で整理されると、増分分析ツール３０１は、第１のセルに対するハッシュ表の１つの「バケット」内の（すなわち、１つのインデックス値を有する）内容と、一致する可能性がある第２のセルに対して生成されたハッシュ表の対応する「バケット」の内容とを、ただ比較することだけが必要である。
【００４８】
例えば、増分分析ツール３０１のいくつかの実施態様では、セル内の未処理の幾何学的要素を特定するであろう。次に、増分分析ツール３０１は、幾何学的要素を分類するためにハッシュ関数とともに使用できる幾何学的要素の何らかの特性を選択するであろう。例えば、本発明のいくつかの実施態様では、増分分析ツール３０１は幾何学的要素の周囲に境界ボックスを生成するであろう。当業者には明らかなように、境界ボックスを使用することにより、増分分析ツール３０１は不規則な形状の幾何学的要素に対してさえ容易に比較できる特徴を設定することが可能になる。その後、増分分析ツール３０１は、例えば、左下隅のような境界ボックス上のいくつかの特有の点を選択して、その点の座標値にハッシュ関数を適用するであろう。例えば、本発明のいくつかの実施形態では、幾何学的要素に対する境界ボックスの左下隅のｘ座標値とｙ座標値との絶対値を組み合わせることにより６４ビットの数または「ハッシュ値」を生成し、その後、そのハッシュ値にハッシュ関数を適用するであろう。
【００４９】
本発明のさまざまな実施形態では、幾何学的要素の特性に対して任意の所望の種類のハッシュ関数を使用してもよい。しかしながら、本発明のいくつかの実施態様では、分類される必要があるセル内の幾何学的要素の個数に基づいてハッシュ関数を選択してもよい。例えば、セルがＮ個の幾何学的要素を有しているとき、本発明のいくつかの実施形態では、Ｎの値を超えずＮの値に最も近い素数である数Ｓでハッシュ値を割るであろう。したがって、セルが１００個の幾何学的要素を有しているとき（すなわち、Ｎ＝１００）、本発明のさまざまな実施形態では、Ｓ＝９７の値を決定するであろう。その後、増分分析ツール３０１は幾何学的要素に対するハッシュ値をＳで割って、割り算の除数を、その幾何学的要素に対するインデックス値になるように指定するであろう。その後、これらのステップは、セル内の各幾何学的要素を処理して、幾何学的要素に対する特有の情報をハッシュ表にキーとして追加するまで繰り返される。次に、これらのステップのそれぞれが、同じＳの値を用いて、第１のセルと比較されている第２のセルに対して繰り返される。
【００５０】
セルのそれぞれにおける幾何学的要素に対してハッシュ表が生成されると、同じ「バケット」またはインデックス値を有する各セル内の幾何学的要素を比較することができる。例えば、第１のセルに対するハッシュ表はインデックス値「３」が割り当てられた２つの幾何学的要素を有していてもよく、他方、第２のセルに対するハッシュ表はインデックス値「３」が割り当てられた３つの幾何学的要素を有していてもよい。そのとき、一致が見つかる（または、見つからないようになる）まで、第１のハッシュ表内の第１の幾何学的要素と第２のハッシュ表内の３つの幾何学的要素のそれぞれとをただ比較することだけが必要である。同様に、一致が見つかる（または、見つからないようになる）まで、第１のハッシュ表内の第２の幾何学的要素と第２のハッシュ表内の３つの幾何学的要素のそれぞれとをただ比較することだけが必要である。第１のハッシュ表内の第１の幾何学的要素が第２のハッシュ表内の第１の幾何学的要素と一致し、かつ第１のハッシュ表内の第２の幾何学的要素が第２のハッシュ表内の第２の幾何学的要素と一致しているとき、第２のハッシュ表内の第３の幾何学的要素を新規の幾何学的要素として特定できる。本発明のさまざまな実施形態では、対応する幾何学的要素を一意的に特定する情報を含むハッシュ表内の１つ以上のキーを用いて、幾何学的要素を比較することができる。
【００５１】
本発明のさまざまな実施形態では、任意の特有の特性を使用して、インデックス値を共有する幾何学的要素を比較してもよい。本発明のいくつかの実施態様では、例えば、幾何学的要素の各隅部の座標値を比較して、それらの幾何学的要素が事実上同一であることを確認してもよい。まず第１に、座標値の個数が異なっているとき（例えば、一方の幾何学的要素が６個の隅部を有しており、もう一方の幾何学的要素が８個の隅部を有しているとき）、２つの幾何学的要素を異なるものとして即座に特定できる。ある場合には、２つの幾何学的要素が同一であっても、それらの２つの幾何学的要素に対する座標値は異なって順序付けられていることがある。例えば、一方の幾何学的要素の隅部に対する座標値は時計回りで順序付けられている可能性があり、もう一方の幾何学的要素の隅部に対する座標値は反時計回りで順序付けられている可能性がある。したがって、本発明のさまざまな実施例は、同じ順序で座標値を比較し始めてもよい（例えば、一方の幾何学的要素の第１の隅部に対する座標値と、もう一方の幾何学的要素の第１の隅部に対する座標値とを比較する）。座標値が一致しないとき、増分分析ツール３０１は座標値の比較順序を逆にするであろう（例えば、一方の幾何学的要素の第１の隅部に対する座標値と、もう一方の幾何学的要素の最後の隅部に対する座標値とを比較したり、一方の幾何学的要素の第２の隅部に対する座標値と、もう一方の幾何学的要素の最後から２番目の隅部に対する座標値とを比較したりするなど）。このように、計算上より強力な比較アルゴリズムを用いることなく、幾何学的要素に対する座標値を迅速に比較することができる。
【００５２】
本発明のさまざまな実施例では、２つのセル内に存在するセル・インスタンスを、幾何学的要素と同じ方法で分類しかつ比較することができる。しかしながら、セル・インスタンスはセルを配置する特定の座標位置を含むため、ハッシュ値を決定するための境界ボックスの使用を省略できる。その代わりに、上述したように、セルの配置位置に対する座標値を境界ボックスの左下隅の座標値の代わりに使用できる。２つのセルのセル・インスタンスと幾何学的要素とが、分類されかつ比較されると、第１のセル内の不一致セル・インスタンスを削除セル・インスタンスとして特定でき、他方、第２のセル内の不一致セル・インスタンスを追加セル・インスタンスとして特定できる。同様に、第１のセル内の不一致幾何学的要素を削除幾何学的要素として特定でき、他方、第２のセル内の不一致幾何学的要素を追加幾何学的要素として特定できる。このように、レイアウト設計データの異なるバージョンの間でレイアウト設計データに行われた変更を、迅速かつ効率的に特定できる。
【００５３】
本明細書で議論したように、ハッシュに基づくこの比較技術のさまざまな実施態様は、増分分析を実行するために使用できるが、これらの実施態様はまた、異なるバージョンのレイアウト設計データを比較する必要がある任意の動作またはプロセスに使用してもよいことに注目すべきである。例えば、ハッシュに基づくこの比較技術のいくつかの実施態様は、レイアウト設計データの、より大きな集合内の特定の部分（独占的回路設計のような）を特定するために使用できる。
レイアウト設計データ内の誤り
また、本発明のいくつかの実施態様では、先行する分析プロセスで不合格になったレイアウト設計データの部分をユーザーが選択することを可能にしてもよい。したがって、増分分析ツール３０１が第１の分析プロセスの結果を利用できるとき、ユーザーは、それらの先行する結果で特定された１つ以上の誤りを選択するように、レイアウト設計データ選択モジュール３０５に命令できる。上述したように、分析プロセスの結果は、設計内の誤り（すなわち、分析基準のうちの１つ以上で不合格になったレイアウト設計データの部分）を示すエラー・マーカーを通常含むであろう。増分分析ツール３０１がこれらのエラー・マーカーを利用できるとき、レイアウト設計データ選択モジュール３０５は、これらのマーカーを使用して、マーカーで特定されたレイアウト設計データの部分を選択できる。
【００５４】
本発明のいくつかの実施例では、ユーザーはレイアウト設計データ内の特定された誤りのそれぞれを選択してもよい。すなわち、ユーザーはユーザーインタフェースを使用して、エラー・マーカーで特定されたレイアウト設計データ内の各位置を特定するようにレイアウト設計データ選択モジュール３０５に命令してもよい。しかしながら、本発明のさらに他の実施形態では、代替として、または追加として、特定の種類の誤りだけをユーザーが選択できるようにしてもよい。例えば、ユーザーは、金属層最小間隔ルールに違反するそれらの誤りだけを特定するように、レイアウト設計データ選択モジュール３０５に命令してもよい。いくつかの実施態様では、先行する分析プロセスの結果から、そのカテゴリ内の誤りを選択することにより、ユーザーは特定のカテゴリの誤りを選択してもよい。その後、レイアウト設計データ選択モジュール３０５は、レイアウト設計データ内のその誤りの種類のインスタンスを特定するであろう。
【００５５】
本発明のさらに他の実施態様では、代替として、または追加として、「修復された」（すなわち、レイアウト設計データを修正して、特定された誤りを正したり、または取り除いたりした）レイアウト設計データ内のそれらの誤りだけをユーザーが選択できるようにしてもよい。さらに詳細には、いくつかのレイアウト設計データ編集ツールは、「修復された」誤りと「修復されていない」誤りとを区別してもよい。これらのレイアウト設計データ編集ツールは、例えば、誤りが修復されたことを設計者が示すときエラー・マーカーと関連するフラグの値を変更したり、修復された誤りの位置をルックアップテーブル内に保存したりなどしてもよい。その後、レイアウト設計データ選択モジュール３０５はこの情報を使用して、表面的には修復されているそれらの誤りを特定しかつ選択することができる。この特徴は、特に、多数の誤りがまだ修復されていないことをユーザーが知っているとき、レイアウト設計データの他の部分を分析するのに多大な時間を費やすことなく、特定の誤りを取り除いたことをユーザーが確認したいだけである場合に、役立つ可能性がある。
【００５６】
誤りを修正する、または「修復する」ために行われた変更は通常、誤りを特定するエラー・マーカーの近くにあるということを設計者が知っている場合には、あらかじめ特定された誤りに基づいてレイアウト設計データを選択することが役立つ可能性がある。変更がエラー・マーカーの近くにあるとき、エラー・マーカーで特定されたレイアウト設計データを分析することにより、その結果、変更も同様に分析されていることを通常確保するであろう。
ユーザー定義のレイアウト設計データ
本発明のいくつかの実施態様では、代替として、または追加として、第２の増分分析プロセスにより分析するために、レイアウト設計データのうちの１つ以上の部分をユーザーが手入力で指定できるようにしてもよい。例えば、ユーザーインタフェース・モジュール３０３はユーザーに設計のマップを提供してもよく、この設計のマップから、ユーザーは設計内の位置を選択して分析することができる。それに呼応して、レイアウト設計データ選択モジュール３０５は、ユーザーが選んだ位置に対応するレイアウト設計データの部分を選択するであろう。例えば、図５に示すように、ユーザーは、ユーザーインタフェース・モジュール３０３により提供されるユーザーインタフェースを使用して、レイアウト設計データ内の領域の座標を指定してもよい。その後、レイアウト設計データ選択モジュール３０５は、所定領域の中でレイアウト設計データを選択するであろう。
ハロー
本発明のさまざまな実施形態では、レイアウト設計データ選択モジュール３０５は、選択されたレイアウト設計データの周囲に「ハロー」領域を生成するであろう。その後、このハロー領域の中のレイアウト設計データは、増分分析プロセスにより分析するために、選択されたレイアウト設計データに追加される。本発明のいくつかの実施形態では、レイアウト設計データ選択モジュール３０５は、選択されたレイアウト設計の周囲に境界ボックスを生成するであろう。その後、レイアウト設計データ選択モジュール３０５は、境界ボックスの周縁に基づいてハロー領域を指定するであろう。
【００５７】
例えば、図６Ａは、レイアウト設計内の１対のエラー・マーカー６０１を示している。エラー・マーカー６０１は、例えば、最小間隔幅よりも近接している２本の隣接線の発生を示しているかもしれない。上述したように、選択されたレイアウト設計データは、エラー・マーカー６０１のようなエラー・マーカーにより特定されたデータであってもよい。エラー・マーカー６０１により特定された誤りの選択に呼応して、レイアウト設計データ選択モジュール３０５は、図６Ｂに示すように、エラー・マーカー６０１の境界を示す境界ボックス６０３を生成するであろう。次に、レイアウト設計データ選択モジュール３０５は、図６Ｃに示すように、境界ボックス６０５の周縁に基づいてハロー領域６０５を生成するであろう。図示の実施例では、レイアウト設計データ選択モジュール３０５は、境界ボックス６０３を１０００μｍ×１μｍになるように生成している。次に、レイアウト設計データ選択モジュール３０５は、境界ボックス６０３の長さまたは幅のうちの長い方（すなわち、１０００μｍ）の何倍かのものとしてハロー領域を指定するであろう。本発明の図示の実施態様では、レイアウト設計データ選択モジュール３０５は、ハロー領域の各側部が境界ボックス６０３の長さの３倍、例えば、３０００μｍ×３０００μｍになるように指定している。もちろん、本発明のさらに他の実施態様では、境界ボックスの最も長い側部の異なる倍数を使用したり、またはハロー領域全体を決定するさらに他のアルゴリズムを使用したりしてもよい。
【００５８】
本発明のさまざまな実施態様では、代替として，または追加として、ハロー領域の寸法および／または形状をユーザーが選択できるようにしてもよい。これは、例えば、増分分析プロセスが間違って誤りを検出するのを防止するのに役立つ可能性がある。例えば、図７Ａは、第１の幾何学的要素７０３と第２の幾何学的要素７０５との間に位置するエラー・マーカー７０１を示しており、これらの両方とも第３の幾何学的要素７０７に隣接している。レイアウト設計データ選択モジュール３０５が図７Ｂに示すようにハロー領域７０９を生成するとき、ハロー領域７０９は不注意で幾何学的要素７０３〜７０７のうちの極端に狭い範囲しか取り囲んでいない可能性がある。その結果、実際には幾何学的要素７０３〜７０７のそれぞれが最小幅要件に適合していても、次の増分分析プロセスは、最小幅要件に違反するという理由で（図７Ｃのエラー・マーカー７１１〜７１５で示すように）、誤りを登録する可能性がある。より大きなハロー領域７１７を指定することにより（図７Ｄに示すように）、利用者は、確実に後続の増分分析プロセスにより不正確な最小幅要件違反が登録されることがないようにできる。
組み合わせおよび他の選択基準
増分分析用にレイアウト設計データを選択する個々の具体的な技術について上述したが、本発明のさまざまな実施態様では、これらの技術の組み合わせを用いてユーザーがレイアウト設計データを選択できるようにしてもよいことを理解すべきである。さらに詳細には、本発明のいくつかの実施態様では、これらの技術のうちの任意の２つ以上により指定されたレイアウト設計データの集合をユーザーが選択できるようにしてもよく（すなわち、論理ＯＲ演算のように）、これらの技術のうちの任意の２つ以上により指定されたレイアウト設計データの重複部分だけをユーザーが選択できるようにしてもよく（すなわち、論理ＡＮＤ演算のように）、または両方の組み合わせであってもよい。例えば、本発明のいくつかの実施態様では、まず最初に、先行する分析プロセスにより特定された誤りをユーザーが選択できるようにして、その後、ユーザー定義領域の中に含まれるこれらの領域の部分集合をユーザーがさらに選択できるようにしてもよい。さらに他の実施態様では、代替として、または追加として、先行する分析プロセスにより特定された誤りと、旧バージョンからのレイアウト設計データ内の変更との両方をユーザーが選択できるようにしてもよい。
【００５９】
また、上述した選択技術に加えて、本発明のさまざまな実施態様では、さらに他の技術を用いてユーザーがデータを選択できるようにしてもよいことに注目すべきである。例えば、増分分析ツール３０１のいくつかの実施形態では、レイアウト設計データの特定の層内だけで発生している誤りまたは変更をユーザーが選択できるようにしてもよく、特定の設計者により行われた変更をユーザーが選択できるようにしてもよく、分析プロセスの個別の繰り返しにより特定された誤りをユーザーが選択できるようにしてもよく、または増分分析用にレイアウト設計データの部分を区別するのに役立つ他の任意の特性をユーザーが選択できるようにしてもよい。
分析基準の選択
ここで図４を参照すると、ステップ４０７では、ユーザーが、第２の増分分析プロセスにより使用されることになる分析基準を選択する。上述したように、本発明のさまざまな実施態様では、代替として、または追加として、増分分析プロセスでレイアウト設計データを分析するために使用されることになる分析基準をユーザーが選択できるようにするであろう。例えば、本発明のいくつかの実施態様では、ユーザーは、ユーザーインタフェース・モジュール３０３により提供される１つ以上のユーザーインタフェースを使用して、選択されたレイアウト設計データを分析するための分析基準を選択できる。その後、分析基準選択モジュール３０７は、増分分析プロセスに対するユーザーの選択を実施するであろう。
【００６０】
ユーザーがレイアウト設計データの集合全体の「完全な」分析を実行した後に、本発明のさまざまな実施態様を使用してもよい。この完全な分析では、通常多数の分析基準を使用してレイアウト設計データを分析するであろう。例えば、設計ルール検査分析プロセスのルール・デッキは何百ものルールを含んでいる可能性があり、実行するのに膨大な量のコンピュータ処理時間および資源を必要とする。本発明のさまざまな実施態様では、レイアウト設計データの先行する「完全な」分析で使用されたような分析基準の集合全体をユーザーが指定できるようにして、後続の増分分析プロセスで使用するであろう。しかしながら、本発明のいくつかの実施態様では、増分分析プロセス用に利用可能な分析基準の、より大きな集合の部分集合をユーザーが選択できるようにするであろう。
【００６１】
例えば、本発明のいくつかの実施態様は、増分分析プロセスで分析中のレイアウト設計データに適用できる分析基準だけを増分分析プロセスが使用するように、ユーザーが指定することを可能にする。したがって、分析中のレイアウト設計データが設計内の特定の金属層（例えば、金属層１）に対するデータだけを含んでいるとき、分析基準選択モジュール３０７は、そのデータに適用できる分析基準だけを選択するであろう。分析基準選択モジュール３０７は、例えば、設計内のポリシリコン層に対するレイアウト設計データに関連する分析基準は選択しないであろう。本発明のいくつかの実施態様では、分析基準選択モジュール３０７は、レイアウト設計内の他の金属層（例えば、金属層１、充填層１など）に具体的に関連する分析基準を選択することさえないであろう。
【００６２】
本発明のいくつかの実施態様では、代替として、または追加として、先行する分析プロセスでは合格するものがなかった分析基準だけを増分分析プロセスが使用するようにユーザーが指定することを可能にしてもよい。例えば、先行する分析プロセスにより与えられた結果を増分分析が分析しているとき、その結果は、特定された各誤りがそれに引っかかって不合格になった分析基準を指定してもよい。それに呼応して、分析基準選択モジュール３０７は増分分析に対して選択された特定の誤りを特定して、選択された各誤りと関連する分析基準を決定して、それらの分析基準を増分分析により使用するために選択してもよい。この特徴により、ユーザーは、不要である可能性が高い評価を増分分析プロセスが実行することを回避できる。
【００６３】
さらに、本発明のいくつかの実施態様では、より大きな集合から分析基準の部分集合をユーザーが手入力で選択できるようにしてもよい。本発明のこれらの実施態様では、増分分析プロセスでどの特定の基準を使用するのかを選択するように、ユーザーに能動的に要求してもよく、ユーザーが明確には放棄していない分析基準の集合内のあらゆる基準を受動的に適用してもよく、またはその両方の何らかの組み合わせがなされてもよい。
【００６４】
本発明のいくつかの実施形態では、いくつかの分析基準が増分分析プロセスで使用されるのを自動的に制限してもよいということに注目すべきである。例えば、増分分析プロセスが設計ルール検査分析プロセスであるとき、分析基準選択モジュール３０７は増分分析プロセスが接続性検査を使用するのを防止してもよい。増分分析プロセスはレイアウト設計データ全体の一部分だけを分析する可能性が高いため、分析部分がこの種類の検査を正確に実行できるほど十分なデータを含む可能性は低い。すなわち、分析部分は、対象装置と電力または接地接続点との間の連続した接続を確立するのに必要な幾何学的要素のすべてを含む可能性が低い。同様に、分析基準選択モジュール３０７は、充填密度検査のような、適正に評価するにはレイアウト設計データのかなりの部分を必要とする他の「チップ・レベル」分析基準を自動的に除外してもよい。
【００６５】
レイアウト設計データの選択と同様に、本発明のさまざまな実施態様では、分析基準を選択する選択技術のうちの２つ以上をユーザーが組み合わすことができるようにしてもよい。例えば、分析基準選択モジュール３０７のいくつかの実施形態では、選択されたレイアウト設計データ内の誤りがそれに引っかかって不合格になった分析基準と、ユーザーにより手入力で指定された追加の分析基準との両方をユーザーが選択できるようにしてもよい。本発明のさらに他の実施例は、代替として、または追加として、選択されたレイアウト設計データに適用できる分析基準だけをユーザーが選択できるようにして、その後、この限定された分析基準の特定の部分集合をユーザーがさらに手入力で選択できるようにしてもよい。
増分分析
ユーザーが、増分分析プロセスで使用されることになるレイアウト設計データおよび／または分析基準を選択した後に、分析プロセス・モジュール３０９が、ステップ４０９でこれらの入力を用いて増分分析プロセスを実行する。次に、ステップ４１１では、分析プロセス・モジュール３０９が増分分析プロセスの結果をユーザーに出力する。結果は任意の所望フォーマットであってもよい。
【００６６】
上述したように、本発明のさまざまな実施例の増分分析プロセスは、多数のものの中の分析プロセスのただ１つの繰り返しであってもよい。したがって、レイアウト設計データが満足できると判断されるまで、ステップ４０３〜４０９のそれぞれは１回以上繰り返されてもよい。さらに、分析の前にレイアウト設計データを変更するステップ４０３は必要に応じて省略できる。例えば、ユーザーは、レイアウト設計データのいずれかを変更する前に、分析基準の第１の集合に違反しているレイアウト設計データの１つの部分を検査することを望み、その後、分析基準の第２の集合に違反しているレイアウト設計データの第２の部分を検査することを望むかもしれない。
【００６７】
いくつかの実施態様では、先行する増分分析プロセスがその分析を完了する前に、ステップ４０３〜４０９のうちの１つ以上をユーザーが繰り返すことができるようにしてもよい。例えば、分析プロセス・モジュール３０９のいくつかの実施形態では、増分分析プロセスがその分析を完了する前に、分析結果をユーザーに返し始めてもよい。それに呼応して、ユーザーは、増分分析プロセスにより特定された１つ以上の誤りを、例えば、修正して、第２の増分分析プロセスを開始して、誤りが修復されたことを確認してもよい。詳細に上述したように、ユーザーはユーザーインタフェースを使用して、第２の増分分析プロセスで分析するために、報告された誤りの特定のインスタンスだけを選択してもよく、第２の増分分析プロセスにより使用するために、報告された誤りがそれに引っかかって不合格になった分析基準だけを選択してもよく、または両方の組み合わせ（選択され報告された誤りがそれに引っかかって不合格になった分析基準だけを選択する組み合わせを含む）を選択してもよい。このように、ユーザーは分散計算システムのような計算機システムを効率的に使用して、より長時間で、より時間のかかる分析プロセスが完了する前であっても、検出された誤りのその修正を確認することができる。
【００６８】
また、本発明のいくつかの実施態様では、レイアウト設計データ選択モジュール３０５を省略でき、他方、本発明のさらに他の実施態様では、分析基準選択モジュール３０７を省略できることに注目すべきである。すなわち、本発明のいくつかの実施態様では、ユーザーが増分分析プロセスで使用されることになる分析基準を選択できるようにして、しかし、レイアウト設計データは選択できないようにしてもよい。あるいは、本発明のいくつかの実施態様では、ユーザーがレイアウト設計データを選択できるようにして、しかし、増分分析プロセスで使用されることになる分析基準は選択できないようにしてもよい。
ユーザーインタフェース
初期フロー選択ユーザーインタフェース
図８は、本発明のさまざまな実施例に従って提供されてもよいユーザーインタフェース８０１の実施例を示している。この図で分かるように、ユーザーインタフェース８０１は、レイアウト設計データについて増分分析プロセスを実行するためにユーザーが選択できるようにする増分分析プロセス・ラジオ・コントロール８０３を提供する。（図示の実施形態では、分析プロセスは設計ルール検査である。）また、ユーザーインタフェース８０１は、「完全なフロー(complete flow)」ラジオ・コントロール８０５と、「設計デルタ(design delta)」ラジオ・コントロール８０７と、「先行結果フロー(previous results flow)」ラジオ・コントロール８０９と、を含んでいる。本発明の図示の実施例では、これらの制御の各々は相互に排他的である（すなわち、１つの制御を選択すると、他の２つの制御は自動的に非選択状態になるであろう）。
【００６９】
ユーザーが「完全なフロー(complete flow)」ラジオ・コントロール８０５を選択する
とき、分析プロセス・モジュール３０９は、詳細に上述したように、レイアウト設計データについて「完全な」分析を実行するであろう。（本発明のいくつかの実施態様は、分析されることになるレイアウト設計データをユーザーが選択できるようにするさらなるユーザーインタフェースまたはコントロールを提供してもよい。）しかしながら、ユーザーが「設計デルタ(design delta)」ラジオ・コントロール８０７を選択するとき、ユーザーインタフェース・モジュール３０３は、「ファイル(file)」フィールド・コントロール８１１と、「セル(cell)」フィールド・コントロール８１３と、を有効にする。これらのフィールド・コントロールを使用して、ユーザーは、詳細に上述したように、増分分析プロセスを用いて分析されることになるレイアウト設計データとそのレイアウト設計データのセルとを含むファイルを指定する。さらに詳細には、分析プロセス・モジュール３０９は、指定されたレイアウト設計データの旧バージョンから変更された指定されたレイアウト設計内のデータについて増分分析プロセスを実行するであろう。
【００７０】
あるいは、ユーザーが「先行結果フロー(previous results flow)」ラジオ・コントロール８０９を選択するとき、ユーザーインタフェース・モジュール３０３は、ファイル・フィールド・コントロール８１５と、「先行実行(previous run)」ラジオ・コントロール８１７と、を同様に有効にするであろう。また、ユーザーインタフェース・モジュール３０３は、「修復されたもののみ(fixed only)」  ラジオ・コントロール８１９と、「放棄されていない(not waived)」ラジオ・コントロール８２１と、「すべての結果(all results)」ラジオ・コントロール８２３と、を有効にするであろう。ユーザーはファイル・フィールド・コントロール８１５を使用して、先行する分析プロセスの結果を含むファイルを指定できる。あるいは、ユーザーが分析プロセス・モジュール３０９によりちょうど提供されたばかりの結果を分析したいだけであるとき、ユーザーは「先行実行(previous run)」ラジオ・コントロール８１７を選択できる。結果のソースが指定されると、ユーザーは、詳細に上述したように、どの結果を分析するかを指定するのにラジオ・コントロール８１９〜８２３を使用できる。さらに詳細には、先行する増分分析プロセスでそれに対する結果が生成されたレイアウト設計データのすべてをユーザーが欲しいとき、ユーザーは「すべての結果(all results)」ラジオ・コントロール８２３を選択する。しかしながら、結果が得られて以降に表面的には修復されている誤りをユーザーが分析したいだけであるとき、ユーザーは「修復されたもののみ(fixed only)」ラジオ・コントロール８１９を選択する。先行する増分分析プロセスでそれに対する結果が生成されたレイアウト設計データの特定の部分をユーザーが分析したいだけであるとき、ユーザーは、ユーザーが分析したくない任意のレイアウト設計部分を放棄でき、「放棄されていない(not waived)」ラジオ・コントロール８２１を選択できる。
検証実行ユーザーインタフェース
ユーザーがユーザーインタフェース８０１を介して提示された選択に基づいて増分分析プロセスを開始すると、本発明のさまざまな実施形態では、進行中の分析プロセス（増分の、および／または完全な）の実時間の結果を示す第２のユーザーインタフェースをユーザーに提供してもよい。例えば、本発明のいくつかの実施態様では、図９に示したユーザーインタフェース９０１をユーザーに提供してもよい。この図で分かるように、ユーザーインタフェース９０１は、結果表示部分９０３と、分析プロセス状態表示部分９０５と、を含んでいる。結果表示部分９０３は、分析基準のそれぞれに対して進行中の分析プロセスにより与えられた結果９０７を表示している。この図で分かるように、結果９０７は、関連する分析基準で不合格になったレイアウト設計データの部分の個数として表示されている。
【００７１】
詳細に上述したように、先行する分析プロセスが進行中であっても、ユーザーはユーザーインタフェース９０１を使用して、結果９０７のうちの１つ以上と関連するレイアウト設計データの部分について増分分析プロセスを開始してもよい。例えば、ユーザーは、結果９０７のうちの１つ以上に関連するレイアウト設計データの部分を変更してもよい（例えば、結果９０７Ａ）。ユーザーがこの結果に関連する領域について増分分析を実行することを望むとき、ユーザーは「増分領域」ボタン・コントロール９１１を選択できる。本発明のさまざまな実施例では、ユーザーインタフェース・モジュール３０３は、後続の増分分析（図５に示したユーザーインタフェースのような）のためにレイアウト設計データの所望部分をユーザーが指定できるようにするユーザーインタフェース（図５に示したユーザーインタフェースのような）を提供するであろう。しかしながら、ユーザーが結果９０７Ａと関連するレイアウト設計データの部分について増分分析プロセスを繰り返すことを望むとき、ユーザーはその結果を選択して、その後、「検証実行を開始」ボタン・コントロール９０９をアクティブにすることができる。
【００７２】
「検証実行を開始」ボタン・コントロール９０９の起動に呼応して、増分ツール３０１は、選択された結果に対応するレイアウト設計データの部分について新規の増分分析プロセスを開始するであろう。さらに、ユーザーインタフェース９０１は結果表示部分９０３を更新して、新規の増分分析プロセスで提供された新規の結果を示してもよい。追加として、本発明のいくつかの実施態様では、図９Ｂに示すように、特定の分析基準と関連するそれぞれの新規の結果をユーザーが見ることができるようにしてもよい。本発明のさまざまな実施形態は、要望通りに新規の結果を提供できる。例えば、本発明のいくつかの実施態様では、後続の増分分析プロセスがレイアウト設計データのうちのその関連する部分についてまだ依然として作動している場合には黄色で、レイアウト設計データの部分が後続の増分分析プロセスに対する分析基準に合格した場合には緑色で、レイアウト設計データの部分が後続の増分分析プロセスの分析基準に引っかかって再び不合格になった場合には赤色で、および後続の増分分析プロセスがレイアウト設計データのそれらの部分に対する新規の結果を返してきた場合にはオレンジ色で、結果を強調表示してもよい。
【００７３】
もちろん、詳細に上述したように本発明のさまざまな実施形態を実施するために、さらに他の種類のユーザーインタフェースを使用できることを理解すべきである。
結論
本発明の原理を説明するために本発明の特定の実施形態について図示し詳細に上述したが、本発明から逸脱することなく他の方法で本発明を具現化してもよいということが理解されるであろう。したがって、本発明は本発明を実施するための現在好ましい形態を含む特定の実施例に関して説明されているが、添付特許請求の範囲に記載の本発明の精神および範囲の中に存在している上述したシステムおよび技術の多数の変形および置換があることを当業者は理解するであろう。
本発明の精神および範囲は、添付する特許請求の範囲の中に存在するが、本願の出願時に存在し、その一部は、補正により削除された、以下の［予備的な特許請求の範囲］の中にも潜在する。この［予備的な特許請求の範囲］の記載事項は、本願明細書の中に含まれるものとする。
［予備的な特許請求の範囲］
［請求項１］
レイアウト設計データについて第１の分析プロセスを実行するステップと、
前記レイアウト設計データの部分を特定するステップと、
前記レイアウト設計データの前記特定された部分について、第２の分析プロセスを実行するステップと、を含む、レイアウト設計データを修正する方法。
［請求項２］
前記レイアウト設計データの部分を特定するステップが、修正情報により変更されたデータを特定するステップを含む、請求項１に記載の方法。
［請求項３］
修正情報により変更されたデータを特定するステップが、前記レイアウト設計データの初期バージョンを含む第１のデータベースと、前記修正情報内に提供された新規のデータを含む前記レイアウトの訂正バージョンを含む第２のデータベースとを比較するために、ハッシュ表を使用するステップを含む、請求項２に記載の方法。
［請求項４］
前記誤り分析が、設計ルール検査分析である、請求項１に記載の方法。
［請求項５］
前記誤り分析が、製造性を考慮した設計分析である、請求項１に記載の方法。
［請求項６］
分析基準の前記第２の集合が、分析基準の前記第１の集合の部分集合である、請求項１に記載の方法。
［請求項７］
前記レイアウト設計の第２の部分について、前記第１の誤り分析を実行し続けている間に、前記レイアウト設計の前記特定された部分について、前記第２の誤り分析を開始するステップをさらに含む、請求項１に記載の方法。
［請求項８］
前記修正情報内に提供された新規のデータを含む前記レイアウト設計データの第２の部分を特定するステップと、
前記レイアウト設計データの前記特定された第２の部分について、第３の誤り分析を実行するステップと、をさらに含む、請求項１に記載の方法。
［請求項９］
前記レイアウト設計の前記特定された第１の部分について、前記第２の誤り分析を実行し続けており、かつ前記レイアウト設計の第３の部分について、前記第１の誤り分析を実行し続けている間に、前記レイアウト設計の前記特定された第２の部分について、前記第３の誤り分析を開始するステップをさらに含む、請求項８に記載の方法。
［請求項１０］
請求項１〜９のいずれか１項に記載のステップを実行するコンピュータ読み取り可能命令が保存されている、コンピュータ読み取り可能媒体。
［請求項１１］
分析基準の第１の集合を用いて、レイアウト設計データについて、第１の分析プロセスを実行するステップと、
分析基準の前記第１の集合とは異なる分析基準の第２の集合を選択するステップと、
分析基準の前記第２の集合を用いて、前記レイアウト設計データの前記特定された部分について、第２の分析プロセスを実行するステップと、を含む、レイアウト設計データを修正する方法。
［請求項１２］
分析基準の前記第２の集合が、分析基準の前記第１の集合と完全には重なって一致していない、請求項１１に記載の方法。
［請求項１３］
前記レイアウト設計データのうちの１つ以上の部分を特定するステップと、
前記レイアウト設計データの前記特定された部分だけについて、第２の分析プロセスを実行するステップと、をさらに含む、請求項１１に記載の方法。
［請求項１４］
請求項１１〜１３のいずれか１項に記載のステップを実行するコンピュータ読み取り可能命令が保存されている、コンピュータ読み取り可能媒体。
［請求項１５］
進行中のレイアウト設計データ分析プロセスの状態を表示する第１の表示部分と、
前記進行中のレイアウト設計データ分析が完了する前に、前記進行中のレイアウト設計データ分析プロセスの結果を表示する第２の表示部分と、を含む、ユーザーインタフェース・システム。
［請求項１６］
前記第２の表示部分に表示された前記結果のうちの１つ以上に対応するレイアウト設計データについて、第２のレイアウト設計データ分析プロセスを、ユーザーが開始できるようにする１つ以上のコントロールをさらに含む、請求項１５に記載のユーザーインタフェース・システム。
［請求項１７］
前記第１のレイアウト設計データ分析プロセスが完了する前に、前記第２の表示部分に表示された前記結果のうちの１つ以上に対応するレイアウト設計データについて、第２のレイアウト設計データ分析プロセスを、ユーザーが開始できるようにする１つ以上のコントロールを含む、請求項１５に記載の方法。
［請求項１８］
請求項１５〜１７のいずれか１項に記載のステップを実行するコンピュータ読み取り可能命令が保存されている、コンピュータ読み取り可能媒体。
［請求項１９］
増分分析プロセスで分析されるべきレイアウト設計データの集合の部分を決定するように構成されたレイアウト設計データ選択モジュールと、
前記レイアウト設計データ選択モジュールにより決定されたレイアウト設計データの前記集合の前記部分について、分析プロセスを実行するように構成された分析プロセス・モジュールと、
前記レイアウト設計データ選択モジュールの前記動作を制御する１つ以上のユーザーインタフェースをユーザーに提供するように構成されたユーザーインタフェース・モジュールと、を含む、増分レイアウト設計データ分析ツール。
［請求項２０］
前記選択されたレイアウト設計データを前記増分分析プロセスで分析するために、前記分析プロセス・モジュールにより使用されるべき利用可能な分析基準の部分集合を決定するように構成された分析基準選択モジュールをさらに含む、請求項１９に記載の装置。
［請求項２１］
増分分析プロセスで使用されるべき利用可能な分析基準の部分集合を決定するように構成された分析基準選択モジュールと、
前記分析基準選択モジュールにより決定された前記分析基準を用いて、レイアウト設計データについて、分析プロセスを実行するように構成された分析プロセス・モジュールと、
前記分析基準選択モジュールの前記動作を制御する１つ以上のユーザーインタフェースをユーザーに提供するように構成されたユーザーインタフェース・モジュールと、を含む、増分レイアウト設計データ分析ツール。
［請求項２２］
レイアウト設計データの第１の集合の設計構成要素を特定するステップと、
レイアウト設計データの前記第１の集合内の前記特定された設計構成要素のそれぞれに対するインデックス値を生成するためにハッシュ関数を使用するステップと、
レイアウト設計データの第２の集合の設計構成要素を特定するステップと、
レイアウト設計データの前記第２の集合内の前記特定された設計構成要素のそれぞれに対するインデックス値を生成するために前記ハッシュ関数を使用するステップと、
レイアウト設計データの前記第１の集合内の前記特定された設計構成要素と、レイアウト設計データの前記第２の集合内の同じインデックス値を共有する前記特定された設計構成要素とを比較するステップと、を含む、レイアウト設計データを比較する方法。
［請求項２３］
請求項２２に記載のステップを実行するコンピュータ読み取り可能命令が保存されている、コンピュータ読み取り可能媒体。
【図１】
0005619210.tif 000002
【図２】
0005619210.tif 000003
【図３】
0005619210.tif 000004
【図４Ａ】
0005619210.tif 000005
【図４Ｂ】
0005619210.tif 000006
【図５】
0005619210.tif 000007
【図６Ａ】
0005619210.tif 000008
【図６Ｂ】
0005619210.tif 000009
【図６Ｃ】
0005619210.tif 000010
【図７Ａ】
0005619210.tif 000011
【図７Ｂ】
0005619210.tif 000012
【図７Ｃ】
0005619210.tif 000013
【図７Ｄ】
0005619210.tif 000014
【図８】
0005619210.tif 000015
【図９Ａ】
0005619210.tif 000016
【図９Ｂ】
0005619210.tif 000017