(57)【要約】自動設計ルールチェックソフトウェア（５００）システムは、回路設計の物理レイアウトファイル（５０１）を処理し、金属末端（５３１）、包囲（５３０）、および／または曝露設計ルール（５４０）における違反について設計ルールチェックを必要とするビア（５０２）のリストを引き出す。物理レイアウトファイル上で設計ルールチェックを実行するための方法であって、回路設計の物理レイアウトファイルを受け取るステップと、設計ルールチェックを行うための物理レイアウト図のビアの中からビアのサブセットを識別するステップと、ビア金属ライン端との間の隙間の距離によって該サブセットのビアを拡張するステップと、拡張されたビアによって被われた金属の拡張されたビア領域から差し引くステップと、ビアのサブセット上の設計ルールチェックを実行するステップとを包含する方法。【選択図】図５
2004502259.tif 000002
【特許請求の範囲】
【請求項１】
電子設計自動システムにおいて、物理レイアウトファイル上で設計ルールチェックを実行するための方法であって、
回路設計の物理レイアウトファイルを受け取るステップであって、該物理レイアウトファイルは、金属レイヤおよびビアを含む該回路設計の物理レイアウト図を含む、ステップと、
設計ルールチェックを行うための該物理レイアウト図のビアの中からビアのサブセットを識別するステップと、
該ビア金属ライン端との間の隙間の距離によって該サブセットの該ビアを拡張するステップと、
該拡張されたビアの領域を選択し、該金属ラインを選択しないように、該拡張されたビアおよび該金属領域に論理「Ａｎｄ　Ｎｏｔ」機能を適用することによって、該拡張されたビアによって被われた金属の該拡張されたビア領域から差し引くステップと、
該ビアのサブセット上の設計ルールチェックを実行するステップと
を包含する、方法。
【請求項２】
前記設計ルールチェックを実行するための物理レイアウト図におけるすべてのビアの中から問題がありそうなビアのサブセットを識別するステップは、金属の境界の所定の最小距離内で該物理レイアウト図におけるビアを識別するステップを包含する、請求項１に記載の方法。
【請求項３】
前記金属の境界の所定の最小距離内で物理レイアウト図におけるビアを識別するステップは、
該所定の最小距離だけ該物理レイアウト図における該ビアのすべてを拡張し、該ビアに対応する複数の拡張されたビアを生成するステップと、
該拡張されたビアと該ビアが接続する金属ワイヤまたは金属領域とを比較することにより、金属末端違反、包囲違反、または曝露違反が存在するか否かを判定するステップと
を包含する、請求項２に記載の方法。
【請求項４】
電子設計自動システムにおいて、金属末端、包囲、および曝露設計ルールチェックのうちの１つ以上が実行される問題のありそうなビアを選択する方法であって、
回路設計の物理レイアウト図の説明を含む物理レイアウトファイルを受け取るステップであって、該物理レイアウト図は、複数のビアを含む、ステップと、
ビアと金属ライン末端部との間の隙間に必要な第１の最小距離またはビアと金属端部との間の隙間に必要な第２の最小距離だけ該物理レイアウト図における該ビアを拡張し、どちらの距離の方が大きくても、それにより複数の拡張されたビアを生成するステップと、
該拡張されたビアにより被われた金属領域を該拡張されたビアから差し引くステップと、
設計ルールチェックを問題のありそうなビアとして選択するか、または該拡張されたビアにより被われた金属領域の差し引き後、残りの領域で拡張したビアに対応するビアをさらにスクリーニングするステップと
を包含する、方法。
【請求項５】
前記拡張されたビアにより被われた金属領域を拡張されたビアから差し引くステップは、該拡張されたビアであってかつ該金属領域ではない領域を選択するように、該拡張されたビアおよび該金属領域に論理の“Ａｎｄ　Ｎｏｔ”機能を適用するステップを包含する、請求項４に記載の方法。
【請求項６】
前記拡張されたビアは、設計ルールチェック処理の前にその元の形状のサイズに戻される、請求項４に記載の方法。
【請求項７】
前記問題のありそうなビアに設計ルールチェックを実行するステップをさらに包含する、請求項４に記載の方法。
【請求項８】
ビアと金属包囲の端部との間の隙間に必要な第３の最小距離だけ前記問題のありそうなビアを拡張し、それにより第２の複数の拡張されたビアを生成するステップと、
該第２の複数の拡張されたビアにより被われた金属領域を該第２の複数の拡張されたビアから差し引くステップと、
包囲ルール違反に関する設計ルールチェックを問題のありそうなビアとして選択するステップであって、それらのビアのみが、該第２の複数の拡張されたビアにより被われた該金属領域の差し引き後、残りの領域を有する該第２の複数の拡張されたビアに対応する、ステップと
をさらに包含する、請求項４に記載の方法。
【請求項９】
前記包囲ルール違反に関する設計ルールチェックで問題のありそうなビアは、包囲ルール違反に関する設計ルールチェックプロセスの前にその元の形状のサイズに戻される、請求項８に記載の方法。
【請求項１０】
ビアと金属末端の端部との間の隙間に必要な第３の最小距離だけ前記問題のありそうなビアを拡張し、それにより第２の複数の拡張されたビアを生成するステップと、
該第２の複数の拡張されたビアにより被われた金属領域を該第２の複数の拡張されたビアから差し引くステップと、
金属末端ルール違反に関する設計ルールチェックを問題のありそうなビアとして選択するステップであって、それらのビアのみが、該第２の複数の拡張されたビアにより被われた該金属領域の差し引き後、残りの領域を有する該第２の複数の拡張されたビアに対応する、ステップと
をさらに包含する、請求項４に記載の方法。
【請求項１１】
前記包囲ルール違反に関する設計ルールチェックで問題のありそうなビアは、金属末端ルール違反に関する設計ルールチェックプロセスの前にその元の形状のサイズに戻される、請求項１０に記載の方法。
【請求項１２】
電子設計自動システムにおいて、金属末端、包囲、および曝露設計ルールチェックのうちの１つ以上が実行される問題のありそうなビアを選択する命令の１つ以上のシーケンスを格納するコンピュータ読み出し可能媒体であって、該命令の１つ以上のシーケンスにより、１つ以上のプロセッサが複数の動作を実行し、該動作は、
回路設計の物理レイアウト図の説明を含む物理レイアウトファイルを受け取る動作であって、該物理レイアウト図は、複数のビアを含む、動作と、
ビアと金属ライン末端部との間の隙間に必要な第１の最小距離またはビアと金属端部との間の隙間に必要な第２の最小距離だけ該物理レイアウト図における該ビアを拡張し、どちらの距離の方が大きくても、それにより複数の拡張されたビアを生成する動作と、
該拡張されたビアにより被われた金属領域を該拡張されたビアから差し引く動作と、
設計ルールチェックを問題のありそうなビアとして選択するか、または該拡張されたビアにより被われた金属領域の差し引き後、残りの領域で拡張したビアに対応するビアをさらにスクリーニングする動作と
を包含する、コンピュータ読み出し可能媒体。
【請求項１３】
前記拡張されたビアにより被われた金属領域を拡張されたビアから差し引く動作は、該拡張されたビアであってかつ該金属領域ではない領域を選択するように、該拡張されたビアおよび該金属領域に論理の“Ａｎｄ　Ｎｏｔ”機能を適用する動作を包含する、請求項１２に記載のコンピュータ読み出し可能媒体。
【請求項１４】
前記拡張されたビアは、設計ルールチェック処理の前にその元の形状のサイズに戻される、請求項１２に記載のコンピュータ読み出し可能媒体。
【請求項１５】
前記問題のありそうなビアに設計ルールチェックを実行する動作をさらに包含する、請求項１２に記載のコンピュータ読み出し可能媒体。
【請求項１６】
ビアと金属包囲の端部との間の隙間に必要な第３の最小距離だけ前記問題のありそうなビアを拡張し、それにより第２の複数の拡張されたビアを生成する動作と、
該第２の複数の拡張されたビアにより被われた金属領域を該第２の複数の拡張されたビアから差し引く動作と、
包囲ルール違反に関する設計ルールチェックを問題のありそうなビアとして選択する動作であって、それらのビアのみが、該第２の複数の拡張されたビアにより被われた該金属領域の差し引き後、残りの領域を有する該第２の複数の拡張されたビアに対応する、手段と
をさらに包含する、請求項１２に記載のコンピュータ読み出し可能媒体。
【請求項１７】
前記包囲ルール違反に関する設計ルールチェックで問題のありそうなビアは、包囲ルール違反に関する設計ルールチェックプロセスの前にその元の形状のサイズに戻される、請求項１６に記載のコンピュータ読み出し可能媒体。
【請求項１８】
ビアと金属末端の端部との間の隙間に必要な第３の最小距離だけ前記問題のありそうなビアを拡張し、それにより第２の複数の拡張されたビアを生成する動作と、
該第２の複数の拡張されたビアにより被われた金属領域を該第２の複数の拡張されたビアから差し引く動作と、
金属末端ルール違反に関する設計ルールチェックを問題のありそうなビアとして選択する動作であって、それらのビアのみが、該第２の複数の拡張されたビアにより被われた該金属領域の差し引き後、残りの領域を有する該第２の複数の拡張されたビアに対応する、動作と
をさらに包含する、請求項１２に記載のコンピュータ読み出し可能媒体。
【請求項１９】
前記包囲ルール違反に関する設計ルールチェックで問題のありそうなビアは、金属末端ルール違反に関する設計ルールチェックプロセスの前にその元の形状のサイズに戻される、請求項１８に記載のコンピュータ読み出し可能媒体。
【請求項２０】
複数のビアと回路設計の金属領域との間の接続性を特定する物理レイアウトファイルが設計ルールチェックプロセスのために受け取られる電子設計自動システムにおいて、すべての該ビアのうち問題のありそうなビアのセットを選択するための方法であって、
該ビアが接続される該金属領域の金属の境界の所定の最小距離内でビアを識別するステップと、
金属末端違反、包囲違反、および曝露違反のうちの１つ以上について識別されたビアのみに設計ルールチェックを実行するステップと
を包含する、方法。
【請求項２１】
前記ビアが接続される金属領域の金属の境界の所定の最小距離内でビアを識別するステップは、
該所定の最小距離だけ物理レイアウト図におけるすべての該ビアを拡張し、該ビアに対応する複数の拡張されたビアを生成するステップと、
該拡張されたビアから該金属領域を差し引くステップと、
該差し引きの後、該金属領域の任意の部分が残るか否かを判定するステップと
を包含する、請求項２０に記載の方法。
【発明の詳細な説明】
【０００１】
（発明の背景）
（発明の分野）
本発明の分野は、電子自動設計、より具体的には、電子自動設計手順によりビアの金属端、すなわち包囲チェックおよび露出チェックを行なう方法およびシステムに関する。
（背景）
チップ設計者は、設計プロセスを支援し、プロトタイプ作成または製造の前にチップ設計のシミュレーションおよび検証を可能にする電子自動設計（ＥＤＡ）ソフトウェアツールを用いることが多い。ＥＤＡソフトウェアツールを用いるチップ設計は、通常、反復プロセスを含み、これにより、チップ設計は段階的に完成される。典型的には、チップ設計者は、通常、高品質グラフィック機能を有し、従って、回路デザインの部分を必要に応じて表示するコンピュータワークステーションで情報を入力することによって回路を構築する。Ｖｅｒｉｌｏｇ（Ｒ）またはＶＨＤＬといったハードウェア記述言語（ＨＤＬ）を用いるトップダウン設計技法が一般的に利用され、これにより、例えば、設計者は、回路の機能的構成要素を階層的に規定し、その後、各構成要素を益々小さい構成要素に分解することにより集積回路を製作する。
【０００２】
集積回路の種々の構成要素は、これらの機能的動作および関連する入力および出力により最初に規定される。ＨＤＬまたは他の高レベル記述から、実際の論理セルのインプリメンテーションが論理合成により決定される。この論理合成は、回路の論理記述を特定の回路インプリメンテーションに変換する。論理セルは、その後「配置され」（すなわち、回路レイアウトにおいて特定の座標位置が与えられる）および「ルーティングされる」（すなわち、設計者の指定により、配線されるか、または互いに接続される）。配置およびルーティングソフトウェアルーチンは、通常、それらの入力として、論理合成プロセスによって生成された平面化されたネットリストを受け付ける。この平面化されたネットリストは、目標標準セルライブラリから特定の論理セルインスタンスを識別し、特定のセル間の接続性を記述する。この特定のセル間の接続性が確定された後、物理設計およびレイアウトソフトウェアは、各金属ライン（すなわち、ワイヤ）および各ビア（すなわち、チップのレイヤ間の金属遷移）の物理位置を含む、集積回路の物理レイアウトファイルを生成する。最終ステップとして、製造施設へ送達するためのマスクファイルを製作する前に、物理検証ソフトウェアおよびレイアウトの妥当性検査ソフトウェアは、レイアウトファイル上で種々の設計ルールチェック（ＤＲＣ）を実行する。これらのＤＲＣは一括して、一般に業界において「ルールデック（Ｒｕｌｅ　Ｄｅｃｋ」と呼ばれる。
【０００３】
ルールデックに含まれる設計ルールチェックの間、物理レイアウトファイルは、通常、ビアおよび金属ラインの相対的配置を訂正するためにチェックされなければならない。例えば、（ビアと金属ラインとの間に導電性経路が必要とされる場合）ビアと金属ラインとの間の十分な接触を確実にするために、金属が各ビアを超えて延びなければならない範囲を要求する、最小のオーバーラップ距離が必要とされる。ビアを包囲する金属の形状に依存して、これらの最小オーバーラップ距離はしばしば異なる。設計ルールチェックの別の例として、ビアと金属端との間に特定の最低距離が必要とされ、最終製品における短絡または他の類似の問題の尤度を低減する。金属端は、通常、金属ラインの終端（ｔｅｒｍｉｎａｔｉｎｇ　ｅｄｇｅ）（単数または複数）あるいは金属ラインの点（単数または複数）と定義される。金属によって包囲される（包囲されるビアとも呼ばれる）ビアにも最小距離が必要とされる。包囲は、通常、ビアと金属との間の接続点と定義され、金属端にあるのではない（すなわち、ここでは、金属上のビアの設置場所は、２つの金属末端が近付きすぎない近辺でなければならない）。別の設計ルールチェックは、露出に関し、これにより、ビアの全体が露出されるのか、または部分が露出される（すなわち、金属により被われない）のかについての決定がなされる。
【０００４】
従来技術において、ルールデックの部分であるすべてのビアは設計ルールチェック（ＤＲＣ）によりチェックされる。これらの手順の部分として、金属端毎に、金属端における各ポイントから各ビアへの距離が計算され、最小距離が満たされることを保証する。これらの手順により必要とされる計算は、簡単に数百万になる。しかしながら、これらの計算の多くは不必要である。なぜなら、これらの計算の多くは、金属末端から明らかに遠いビア上で実行されるからである。結果として、多くの処理時間が費やされる。
【０００５】
従って、発明者は、これらのビア上で実行される完全な設計ルールチェックを受けるべきであるのはどのビアかについてのインテリジェントセレクションを提供し、他方、設計ルールチェックの完全なセットを必要としないビアをふるい落とすことは有利であると判定した。
【０００６】
（発明の要旨）
本発明は、金属末端、包囲、および曝露チェックを実行するためのビアを有するビアのサブセット（単数または複数）を選択するシステムおよび方法を一局面において提供する。
【０００７】
好適な実施形態において、ソフトウェアシステムをチェックする自動化された設計ルールは、回路設計の物理レイアウトファイルを入力として受信する。ソフトウェアシステムをチェックする自動化された設計ルールは、３つのカテゴリーである金属末端、包囲、および曝露をしようとする違反のための設計ルールチェックを必要とするビアのリストを出力する。
【０００８】
１つ以上の実施形態において、自動化されたプロセスは、物理レイアウトファイルの全てのビア中から、設計ルールチェックの問題を引き起こす可能性が高い物理レイアウトファイルからのビアを選択する。次に、プロセスは、包囲ルールに違反するそれらのビアを選択して、識別されたビア上の包囲違反の設計ルールチェックを実行し、潜在的に問題のあるビア上の金属末端違反の設計ルールチェックを実行し、潜在的に問題のあるビア上の曝露チェックを実行する。
【０００９】
潜在的に問題のあるビアは、第１の所定の最小距離により存在するビアの寸法を拡張すること、金属領域外を差し引くこと、および潜在的に問題のあるビアとして残っている残りの部分と共にそれらのビアを識別することによって識別され得る。包囲設計ルールチェックの候補ビアは、第２の所定の最小距離による潜在的問題のあるビアの寸法を拡張すること、金属領域外を差し引くこと、および包囲設計ルールに違反するとして残っている残りの部分と共にそれらのビアを識別することによって識別され得る。金属末端設計ルールチェックの候補ビアは、第１の所定の最小距離により存在するビアの寸法を拡張すること、金属領域外を差し引くこと、および金属末端設計ルールに違反するとして残っている残りの部分と共にそれらのビアを識別することによって識別され得る。
【００１０】
さらなる実施形態、変更、変化、および拡張がまた、本明細書中に記載される。
【００１１】
（好適な実施形態の詳細な説明）
次に、必要に応じて添付の図面を参照しながら、好適な実施形態を説明する。しかしながら、まず第１に、電子設計自動化（ＥＤＡ）ソフトウェアツールに関して、さらなる背景情報を提供する。
【００１２】
図１は、本明細書中において説明する本発明の種々の実施形態に関連して用いられ得るコンピュータシステムの図である。図１に示すように、コンピュータシステム１００は、ディスプレイ１９１および種々の入出力デバイス１９２に接続されたコンピュータ１１０を備える。コンピュータ１１０は、１つ以上のプロセッサ（図示せず）、ならびにシステムの速度要件および処理要件を満たすために十分な容量の作業メモリ（例えば、ＲＡＭ）を備え得る。コンピュータ１１０は、例えば、Ｓａｎｔａ　Ｃｌａｒａ，ＣａｌｉｆｏｒｎｉａのＳｕｎ　Ｃｏｍｐｕｔｅｒｓ，Ｉｎｃ．から販売されるＳＰＡＲＣＴＭワークステーション、または任意の他の適切なコンピュータを含み得る。
【００１３】
コンピュータ１１０は、１つの実施形態では、データパスフロアプランナー（ｄａｔａｐａｔｈ　ｆｌｏｏｒｐｌａｎｎｅｒ）１２０、データパスプレーサ１３０、およびルーティングスペースエスティメータ１４０を含む、格納プログラムコードを含む。データパスフロアプランナー１２０は、データパス機能、データバス領域、およびこれらに関して、回路設計者による双方向フロアプラン操作上の制約の定義を提供し、データパスプレーサ１３０の配置操作を制御する。データパスプレーサ１３０は、回路設計者により定義された制約に従って、データパス機能のデータパス領域内での配置、および論理セルインスタンスのデータパス機能内での配置を決定する。ルーティングスペースエスティメータ１４０は、データパス機能をルーティングするために必要とされるルーティングスペースを見積もる（データパスプランナー１３０によりそのような機能の配置がなされている場合）。
【００１４】
上述のシステムコンポーネントのサポートとして、チップフロアプランナー１５０、グローバル／ディテールルータ１６０、標準セルプレーサ１７０、論理合成回路１８０、およびＨＤＬエディタ１９０が有用に用いられ得る。チップフロアプランナー１５０、グローバル／ディテールルータ１６０、標準セルプレーサ１７０、論理合成回路１８０、およびＨＤＬエディタ１９０の動作は従来どおりであり、これらのコンポーネントの設計は電子設計自動化の分野では周知である。これらのシステムコンポーネントの販売例としては、それぞれ、ＰｒｅｖｉｅｗＴＭ、Ｃｅｌｌ３ＴＭ、ＱＰｌａｃｅＴＭ（またはＤｅｓｉｇｎＰｌａｎｎｅｒＴＭ）、ＳｙｎｅｒｇｙＴＭ（またはＢｕｉｌｄＧａｔｅｓＴＭ）、およびＶｅｒｉｌｏｇ（Ｒ）がある。
【００１５】
コンピュータ１１０は、好ましくは、前述のシステムコンポーネントがインターフェース接続される、レイアウトデータベース１９５を提供する、大容量記憶デバイス（例えば、磁気ディスクまたはカートリッジ式記憶装置）に接続される。レイアウトデータベース１９５は、ＥＤＩＦデータベース規格を用いてインプリメントされ得る。コンピュータ１１０はまた、回路設計に利用可能な電子コンポーネントの特徴を特定する、１つ以上のコンポーネントライブラリ（図示せず）を備える、大容量記憶装置に接続され得る。
【００１６】
本明細書中においてすでに説明したように、チップ設計者は、一般に、例えば、
Ｖｅｒｉｌｏｇ（Ｒ）またはＶＨＤＬ等のハードウェア記述言語（ＨＤＬ）から始めて、回路の機能コンポーネントを階層的に定義し、そして、各コンポーネントをごく小さいコンポーネントに分解することにより、集積回路を作製するトップダウン設計方法論を用いる。デジタル集積回路で用いられる、２つの主要なタイプのコンポーネントは、データパスおよび制御論理である。制御論理（通常はランダム論理）はデータパスの動作制御に用いられる。回路のデータパスエリアは、数学的動作または他の動作等の機能動作を実施する。
【００１７】
集積回路の種々のコンポーネントは、最初に、それらの機能的な動作、ならびに関連する入力および出力により定義される。設計者はまた。フロアプランニングツールを用いて、回路内でのコンポーネントの配置に関する基本的な組織情報を提供し得る。これらの設計状態にある間、設計者は一般に、有意な階層情報を用いて回路を構成し、設計における実質的なルール性を有する。
【００１８】
背景のセクションにおいて前述したように、ＨＤＬまたは他の高位記述から、実際の論理セルインプリメンテーションは、通常、論理合成により決定される。これにより、回路の機能的記述が特定の回路インプリメンテーションに変換される。次いで、論理セルが配置され、ルーティングされることにより、物理レイアウトファイルが生じる。
【００１９】
次に、図２を参照すると、レイアウトデータベース１９５に格納された回路設計データによって表され得る簡略化された集積回路２００の模式図が示されている。実際には、より実際的な集積回路設計として、集積回路２００は、ずっと複雑になり得る。しかし、図２は、例示のためには有用である。図２に示すように、集積回路２００は、複数制御領域２０１と、データパス領域２０３と、メモリ２０５とを含む。各種の制御領域２０１、データパス領域２０３、およびメモリ２０５は、概して、複数ビットにわたるデータバス２０７と相互接続される。データパス領域２０３は、複数のデータパス機能２０９を含み得る。データパス機能２０９は、データバス２０７から利用可能なビットの一部または全てを利用し得る。データパス機能２０９は、一部の形態の信号またはデータの論理変形がデータバス２０７を通ることを可能にする複数のセルインスタンス２１５を含み得る。データパス機能２０９内のセルインスタンス２１５は、概して、データパス機能２０９のデータについて動作する。
【００２０】
レイアウトデータベース１９５のスキーマに表されるように、集積回路２００は、複数のインスタンスおよび複数のネットを含む。ネットは、各インスタンスのピンを関連付けることによって、より概略的に言うと、複数のインスタンスの入力および出力を関連付けることによって、複数のインスタンスを相互接続する。
【００２１】
図３は、上記の回路概念の様々なレベルのうちの一部を示す、回路設計についての概略的なプロセスのフローチャートである。図３に示すように、ＨＤＬファイルまたは他の高レベル機能的記述の形態のレジスタ転送論理（ＲＴＬ）ファイル３０１は、コンパイルプロセス３０３を受ける。コンパイルプロセス３０３は、典型的には、何らかの形の論理合成を含み、回路の機能記述を、ネットリストファイル３０４の形態で格納される特定回路インプリメンテーションに変換する。コンパイルプロセス３０３の一部として、どのようなタイプの設計コンポーネントが利用可能であるか、および、機能的接続性を判定するために必要とされるこれらの設計コンポーネントの特性についての情報を格納するコンポーネントライブラリ３０６が、概して参照される。このプロセスの段階で、回路設計において用いられるコンポーネントの数を最小限にするため、回路最適化において、いくつかの試みが行われ得る。ネットリストファイル３０４は、上述したように、概して、目標基準セルライブラリから、特定の論理セルインスタンスを識別し、特定のセルとセルとの接続性を記述する。
【００２２】
図３に示す物理設計プロセス３０９を適用することによって、ネットリストファイル３０４の論理セルが、位置付けられ、ルーティングされて、レイアウトファイル３１０が得られる。コンポーネントライブラリ３０６は、ネットリストファイル３０４に存在し得るゲートおよび他のコンポーネントのサイズについての情報を得るために、このプロセスにおいて利用される。
【００２３】
図３にさらに示されるように、レイアウトファイル３１０から、物理検証プロセス３１２が実行され得、例えば、ＧＤＳＩＩまたはＣＩＦフォーマットのマスクファイル３１５が得られる。マスクファイル３１５は、製造工場に提供され得るが、製造工場が実際の集積回路を製造することを可能にするのに充分な情報を含む。
【００２４】
本明細書中で開示される各種の実施形態において、特定のビアについての設計ルールチェックを選択するために、図３に示す検証プロセス３１２に関連して用いられ得るプロセスが提供される。図４は、金属末端、包囲、および／または曝露違反を有する可能性が高いビアを選択し、処理するプロセスのフローチャートである。これらのビアは、本明細書中、概して、「潜在的問題を有するビア」と呼ばれる。
【００２５】
各種のタイプの問題を有するビアは、図１９、２０および２１を参照しながら説明され得る。金属末端タイプのビアは、図１９に示すように、金属ラインの端部に位置する。ビアのフットプリントと、金属ラインが「終端する」端部との間に、ある一定の最短距離が必要とされており、この最短距離は、図１９において、Ｃ１で示される。ある一定の最短距離は、ビアのフットプリントと、金属の端との間にも必要とされており、この最短距離は、図１９において、Ｃで表される。包囲タイプのビアは、図２０に示すように、金属ラインの端部ではないところにあるビアである。包囲タイプのビアは、図２０に示すように、金属の両側の端（角ではない）の隣に存在してもよいし、金属の一方の端の隣に位置してもよいし、金属の端部に近くなくてもよい。ビアのフットプリントと金属の端部との間の最短距離（金属末端ビアと金属の端部との間に必要とされる最短距離と同じ距離であり得る）が、概して必要とされており、図２０においてＣで示される。
【００２６】
本明細書中で説明される特定の実施形態において、図２１に示されるように、金属ラインの角に位置したビアは、ハイブリットの様態で扱われ得る。例えば、金属末端に隣接したビアのサイドの一つは、金属の端部に配置されたように扱われ得る。一方、金属末端に隣接したビアの他方のサイドは、包囲ビアのように扱われ得る。従って、金属ラインの角におけるこのようなビアは、二つの間隔を空ける必要がある。一つは、最小距離Ｃ（ビアのエッジから金属のエッジまで）によって規定され、もう一方は、最小距離Ｃ１（ビアのエッジから金属末端の「終端」エッジまで）によって規定される。
【００２７】
図４に示されるように、階層型金属末端、包囲および／または曝露チェックに関する好ましいプロセス４００、好ましくは後に本明細書中で説明される（および、示される、例えば、図５に関する）技術に従って、物理レイアウトファイル４０１から潜在的に問題のあるビアを選択するステップ４０２を含む。ステップ４０２の後、一つ以上のステップ４０５、４０６、４０７および４１０が実行され得る。ステップ４０５では、ビアは、好ましくはさらに本明細書中で述べられる（および、示される、例えば、図６に関する）基準に基づいて、包囲設計ルールチェックとして選択される。ステップ４１０では、ビアは、好ましくはさらに本明細書中で述べられる基準に従って、曝露設計ルールチェックとして選択される。ステップ４０６では、ビアは、好ましくは本明細書中でさらに述べられる（および、示される、例えば、図７に関する）基準に基づいて、金属末端設計ルールチェックとして選択される。ステップ４０７では、設計ルールチェックは、全ての潜在的に問題のあるビアに対して実行され、一方、問題の無いビアに対する設計ルールチェックを好ましくは避ける。
【００２８】
図５は、潜在的に問題のあるビアを選択するための好ましいサブプロセス５２０を示す。サブプロセス５２０は、金属末端、包囲および／または曝露違反がありそうなビアを選択、および、処理するための好ましいプロセス５００と連結している。一局面において、サブプロセス５２０は、潜在的に問題のあるビアを残して、問題がありそうにないビアにフィルタリングを行うように見え得る。詳細には、サブプロセス５２０は、金属領域のエッジから特定の最小距離Ｃ１内にあるビアのみを選択する。図５に示されるように、問題のあるビアを選択するサブプロセス５２０は、最初、ステップ５０３を含む。このステップ５０３によってどのビアが金属境界に近いかを決定するために、各ビアは、所定の拡張距離だけ各方向に体系的に「拡張」される。この拡張は、図８で図式的に示される。この図では、元のビア８００は、拡張されたビア８３０まで所定の拡張距離Ｃ１だけ拡張される。一局面において、所定の拡張距離Ｃ１は、金属末端または終点からの選択された最小距離を表す。所定の拡張距離は、例えば、工場での製造に必要な特定の条件に基づいて、設計エンジニアによって選択され得る。
【００２９】
次のステップ５０４では、図８で示される金属領域８２０は、金属領域８２０の外に残る拡張したビア８３０の残差部分８４０（図９を見よ）のみ残して、拡張したビア８３０の領域から取り去られる。
【００３０】
次のステップ５１０では、金属領域８２０の外に残る材料を有する拡張されたビア８３０が識別される。本実施例では、拡張されたビア８３０ａおよび８３０ｂは、影響があるためにステップ５１０で識別される。一方、潜在的に問題のあるビア８３０ｃは無視される。次のステップ５１１では、潜在的に問題のあるビア８３０ａおよび８３０ｂに対する元の大きさが回復される。このことは、任意の様々な方法によって、達成され得る。例えば、ビア８３０ａ、８３０ｂの各エッジから距離Ｃ１を取り去ることによって、拡張されたビア８３０ａ、８３０ｂから元の大きさへと戻る。あるいは、潜在的に問題のあるビア８３０ａおよび８３０ｂの元の大きさは、標準のビアを得るために、後に本明細書中で説明されるように（第二のレイヤの周囲にある、または、第二のレイヤに重なる第一のレイヤの形状の全てを識別する）「ｇｅｏｍＢｕｔｔＯｒＯｖｅｒ」機能を適用し、次いで、元のビアを得るために、後に本明細書中で説明されるように（レイヤＡとレイヤＢとの間の論理ＡＮＤ操作）「ｇｅｏｍＡＮＤ」機能を適用することによって回復され得る。図１０および１１は、潜在的に問題のある拡張されたビア８５０、および、元の大きさに戻された潜在的に問題のある拡張されたビア８６０を示す。この点において、サブプロセス５２０は、潜在的に問題のあるビアのセットを選択する。このセットの性質は、物理レイアウトファイル４０１（または、図５で示されるような５０１）上で実行される確認プロセスの一部として保持される一次ファイル内のテーブル、または、他のデータ構造に格納され得る。
【００３１】
図５のステップ５３０、５４０、５３１および５３２は、図４に表れるステップ４０５、４１０、４０６および４０７にそれぞれ類似している。
【００３２】
図６は、包囲設計ルールチェックに関する潜在的に問題のあるビアを選択するための好ましいサブプロセス６２０を示す。このサブプロセス６２０は、金属末端、包囲および／または曝露違反を有するであろうビアの選択および処理に関する好ましい処理６００と連結する。図６に示されるように、包囲設計ルールチェックに関する潜在的に問題のあるビアに関するサブプロセス６２０は、所定の拡張距離Ｃによって前もって識別され、拡張されたビア８６５となった潜在的に問題のあるビア８６０を拡張する第一のステップ６０５を含む。このステップは、図８から図１１にかけて以前に説明された実施例に関して図１２で図式的に示される。次のステップ６０６では、金属領域８２０は、拡張されたビア８６５から取り除かれ、図１３で示されるような残差部分８７０となる。次のステップ６０７では、金属領域を取り除いた後に残った材料を有するビアが識別される。本実施例において、拡張されたビア８６５ｂは、ステップ６０７で識別される。一方、拡張されたビア８６５ａは無視される。ステップ６０７において、開示ルールに違反する拡張されたビア（すなわち、拡張された回路８６５ｂ）に関連する残差部分８７０は、図１４に示されるように、最新の金属領域が取り除かれる前に、それらの拡張された大きさへ戻される。次のステップ６０８で、曝露ルールに違反する拡張されたビアは、図１４の拡張されたビア８８０（すなわち、図１２の拡張されたビア８６５ｂ）の未拡張のバージョンに相当する図１５のビア８９０によって示されたそれらの元の拡張前の大きさに戻される。次のステップ６１０で、曝露設計ルールに違反するビア（つまり、金属末端にかなり近い）リストは、さらなる処理のための出力である。
【００３３】
ステップ６４０では、包囲設計ルールチェックは、包囲ルール、および、格納されるまたは次のプロセスへ出力される結果に違反するとき、サブプロセス６２０内で決定される全てのビア上で実行される。しかし、金属末端包囲設計ルールチェックは必要とされず、包囲設計ルールに違反しないビア上で、つまり、金属末端に「あまりに近い」と考えられていないビア上で、好ましくは実行されない。
【００３４】
図６のステップ６０２、６２５、６３０および６３５は、図４に表れるステップ４０２、４０６、４０７および４１０にそれぞれ類似している。
【００３５】
図７は、金属末端設計ルールチェックに関して潜在的に問題のあるビアを選択する好ましいサブプロセス７２０を示す。このサブプロセスは、金属末端、包囲および／または曝露違反を有すであろうビアを選択および処理する好ましいプロセス７００と連結している。図７に示されるように、金属末端設計ルールチェックに関して潜在的に問題のあるビアを選択するサブプロセス７２０は、潜在的に問題のあるビア８６０のエッジを拡張する第一のステップ７２５を含む。（図８から図１１にかけて以前に説明された実施例に関して）図１６で図式的に示されたように、このビア８６０は、（例えば、図５で示されたサブプロセスによって）以前に識別され、角の部分を拡張することなく、予め決められた拡張距離Ｃ１だけ引き伸ばされ、拡張されたビア９０５となる。次のステップ７２６では、金属領域８２０は、図１７に示されるように、拡張されたビア９０５から取り除かれ、残差部分９１０となる。ステップ７２７では、金属領域が取り除かれた後に残る残差部分９１０を有するビアが識別される。次いで、残差部分は、残差部分９１０の外エッジ９１１から、予め決められた拡張距離Ｃ１だけ押し出すことによって、矩形形状９３０を発生し、元のビア８６０の拡張されたサイドの全てではないが、そのいくつかに対する矩形形状９３０のセットとなる。次のステップ７２９では、設計ルールチェックは、これらのビア上で行われ、「Ｌ」型のノッチ９２０のような特定の機能を探索する。このノッチ９２０は、金属末端設計ルールの違反を示す。金属末端設計ルールに違反する（つまり、金属末端にあまりに近い）ビアのリストは、さらなる処理に関する出力であり得る。
【００３６】
図６のステップ７０２、７０５、７０６および７１５は、図４に現れるステップ４０２、４０５、４１０および４１５にそれぞれ類似している。
【００３７】
一局面において、プロセス４００、５００、６００または７００は、物理レイアウトファイルの全てのビア間から問題を引き起こしそうなビアを選択する。次いで、プロセスは、包囲ルールに違反するビア、識別されたビア上の包囲違反に関する設計ルールチェックを実行するビア、潜在的に問題のあるビア上の金属末端違反に関する設計ルールチェックを実行するビア、潜在的に問題のあるビア上の曝露チェックを実行するビアを選択する。
【００３８】
本明細書中で説明されたような様々な実施形態は、回路設計に関する物理レイアウトファイルのビアの金属末端、包囲および曝露をチェックするために必要な時間を（例えば、要素１００によって）大きく減少することが可能である。
【００３９】
このような設計チェックを実行するために必要なメモリは、同様に極めて減少される。金属のエッジから特定距離内にあるビアのみを選択および処理することによって、設計ルールチェックのスピードが、各段に増加される。
【００４０】
本発明の一実施形態は、以下のプログラム命令で例示される。このプログラム命令は、カリフォルニア、サン　ホセのＣａｄａｎｃｅ　Ｄｅｓｉｇｎ　Ｓｙｓｔｅｍｓ，Ｉｎｃ．から市販されているＡｓｓｕｒａＴＭによって解釈され得るフォーマットで書かれている。
【００４１】
【表１】
2004502259.tif 000003
特定の設計ルールデッキと連結する上記のプログラム命令を実行するために、そして、電子設計プロセスの結果として生成される物理レイアウトファイル上で演算するために、電子設計自動システムの文脈で、コンピュータシステムが構成され得る。
【００４２】
説明のために、タスク「ｇｅｏｍＳｉｚｅ」は、ポリゴンまたは形状をサイジングするために用いられるとする。サイジング関数は、ユニットが正である場合、ポリゴンまたは形状の大きさを増加し、同様に、ユニットが負である場合、ポリゴンまたは形状の大きさを減少する。サイジングの例を以下のとおりである。
ｖ４＿９ｓ＝ｇｅｏｍＳｉｚｅ（ｖｉａ４　０．０９）
上記の例によれば、ｖｉａ４の形状は、０．０９ミクロンだけ外へ成長する。
【００４３】
タスク「ｇｅｏｍＡｎｄＮｏｔ」は、異なる（すなわち、Ａ−Ｂ）表現を表す。例えば、ＭｅｔａｌＡおよびＭｅｔａｌＢは、二つの金属レイヤであり、従って、以下の表現は、任意形状のＢと重ならないＡの全ての形状を含む結果のレイヤを生じる。
Ｙ＝ｇｅｏｍＡｎｄＮｏｔ（ＡＢ）
タスク「ｇｅｏｍＡｎｄ」は、単なるＡＮＤおよび結合演算である。このタスクは、二つのレイヤに重なる共有の領域を提供する。例えば、次の表現は、領域ＡおよびＢに重なる共通部分の全てを含む結果のレイヤＹを生む。
Ｙ＝ｇｅｏｍＡＮＤ（ＡＢ）
タスク「ｇｅｏｍＢｕｔｔＯｒＯｖｅｒ」は、第２のレイヤ（例えば、レイヤＢ）と隣接するか、または重なる第１のレイヤ（例えば、レイヤＡ）の形状全てを識別する。例えば、以下の表現は、レイヤＢの形状に接触するか、または重なるレイヤＡの形状全てを識別する結果として生じるレイヤＹを生成する：
Ｙ＝ｇｅｏｍＢｕｔｔＯｒＯｖｅｒ（ＡＢ）
「ｄｒｃ」タスクは、物理レイアウトファイルの設計ルール整合性をチェックするために利用され得る設計ルールチェック機能（ｄｅｓｉｇｎ　ｒｕｌｅ　ｃｈｅｃｋｉｎｇ　ｆｕｎｃｔｉｏｎ）である。包囲設計ルールチェックは、第２のレイヤ（例えば、レイヤＡ）上の形状によって第１のレイヤ（例えば、レイヤＢ）の形状の包囲を測定する。この測定は、レイヤＡ上の形状の内接端部（ｉｎｓｉｄｅ−ｆａｃｉｎｇ　ｅｄｇｅ）とレイヤＢ上の形状の外接端部（ｏｕｔｓｉｄｅ−ｆａｃｉｎｇ　ｅｄｇｅ）との間の距離を表示する。言い換えれば、包囲設計ルールチェックは、レイヤＡがレイヤＢを封入するか否か、ならびに、レイヤＡがどれくらいレイヤＢを封入しているかを決定する。例えば、以下の表現は、０より大きく４未満の封入限界によって、レイヤＡの形状全ておよびレイヤＢ上の包囲形状に対してチェックする：
Ｙ＝ｄｒｃ（レイヤＡ　レイヤＢ０＜ｅｎｃ＜４）
上述のプログラミング命令のライン１〜４の実行は、設計ルールデッキに組み込まれる場合、図５に示されるステップによって一般的に、通常、コンピュータシステムに、物理レイアウトファイルから、問題を引き起こすようなビアをフィルタリングさせる。ライン５〜８は、図６に記載されたステップによって一般的に、包囲ルールに違反する上記のビアを選択する。ライン９は、ライン８の出力の包囲違反についての設計ルールチェック（ＤＲＣ）を実行する（例えば、図６のステップ６４０によって示唆されるように）。ライン１０は、ライン８で実行される設計ルールチェックの結果を出力する。ライン１１〜１４は、図７に記載されたステップによって一般的に、ライン５の出力上の金属末端違反についての設計ルールチェック（ＤＲＣ）を実行する。ライン１５は、ライン１１〜１４において実行される設計ルールチェックの結果を出力する。ライン１６は、ライン８の出力上の曝露チェックを実行し、ライン１７は、この結果を出力する。
【００４４】
さらに詳細に、上述のプログラムのライン１〜４は、さらに詳細な図５のサブプロセス５２０に関して最初に議論されるように、包囲、金属末端および／または曝露違反を有するようなビアを選択する。プログラムのライン１〜４は、金属領域８２０（図８参照）の端部の、一定かつ所定の距離、Ｃ１、内にあるこれらのビアのみを選択する。ライン１は、距離Ｃ１によって全てのビア８００の外部端部を拡張させる。ライン２は、拡張されたビア８３０から金属８２０の領域を取り去り、金属領域８２０の外部にある拡張されたビア８３０の上記の部分８４０（図９参照）のみを残す。ライン３は、金属領域８２０を取り去った後に残っている材料を有するこれらのビア８３０ａ、８３０ｂを識別しながら、取り去った後に残っているいかなる材料も有さないビア（ビア８３０ｃ等）を無視する。これは、次いで、金属領域の除去８６０前に、上記ビアを拡張された寸法に変える。ライン４は、上記ビア８３０ａ、８３０ｂをこれらの元の、拡張されていない、サイズに変える。
【００４５】
ライン５〜８は、包囲設計ルールチェックを提供する。ライン５は、図１２に示されるように、距離Ｃにより、選択されたビア８６０の外部端部を拡張する。ライン６は、図１３に示されるように、拡張されたビアから金属領域８２０を取り去る。ライン７は、金属領域を取り去った後の材料残部８７０を有するこれらの拡張されたビア８６５を識別し、図１４に示されるように、金属領域を取り去る前に、拡張された寸法にこれらのビアを変える。ライン８は、図１５に示されるように、これらのビアをこれらの元の、拡張されていない、サイズに変える。ライン９は、包囲ルールに違反するこれらのビアについての設計ルールチェックを行う。ライン１０は、設計ルールチェックの結果を出力する。
【００４６】
ライン１１〜１５は、金属末端部チェックを実行する。ライン１１は、潜在的に問題であるビアの外部端部を距離Ｃ１だけ拡張させる（ライン４によって識別されるように）。しかし、前回の拡張と異なって、図１６に示されるように、ライン１１は、角を拡張させることなく、端部ラインを直線状に拡張するに過ぎない。ライン１２は、図１７に示されるように、金属領域８２０を拡張されたビア９０５から取り去る。ライン１３は、金属領域を取り去った後に残っている部分９１０を有するこれらの拡張されたビア９０５を識別し、図１８に示されるように、これらの最も外側の端部を距離Ｃ１だけ内部に拡張する。ライン１４は、「Ｌ」形状ノッチ９２０（図１８参照）等の、独特の特徴部（金属末端部ルールの違反を示す）を識別するために、これらのビアの設計ルールチェックを行う。ライン１５は、金属末端部チェックプロセスの結果を出力する。
【００４７】
ライン１６および１７は、曝露チェックを実行する。ライン１６は、曝露ルールに違反するビアから（すなわち、ライン８からの出力）曝露するビアにチェックする。ライン１７は、曝露設計ルールチェックの結果を出力する。
【００４８】
「ｇｅｏｍＳｉｚｅ」、「「ｇｅｏｍＡｎｄＮｏｔ」、「ｇｅｏｍＢｕｔｔＯｒＯｖｅｒ」および「ｇｅｏｍＡＮＤ」タスクの機能を実行する多くの等価な方法は、基礎的な機能性を変えることなく、または、本明細書中に記載された潜在的に問題であるビアを選択し、処理する方法およびシステム全体の原理から逸脱することなく、実行され得る。同様に、他のタイプの判断基準は、本明細書中に新規の原理から逸脱することなく、記載されたビアが接続される金属ワイヤおよび特徴部の境界または端部に対する物理レイアウトファイルのビアの近接度を判定する同一または類似の原理を基礎として、潜在的に問題であるビアを選択するために用いられ得る。
【００４９】
本発明の好適な実施形態が本明細書中に記載される一方で、本発明の概念および範囲内にある多くの変形が可能である。このような変形は、明細書および図面を調べれば、当業者には明らかである。したがって、本発明は、特許請求の範囲の意図および範囲以外には、限定されない。
【図面の簡単な説明】
【図１】図１は、本明細書中に記載されるような本発明の多様な実施形態に関して使用され得るコントロールシステムの図である。
【図２】図２は、図１に示されるようなコントロールシステムを用いて引き起こされ得るような簡単な集積回路の図である。
【図３】図３は、回路設計の一般的なプロセスフローの図であり、回路概念の多様なレベルを示す。
【図４】図４は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図である。
【図５】図５は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図であり、一般的に図４のプロセスによって、潜在的に問題のあるビアを選択する特有のステップを示す。
【図６】図６は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図であり、一般的に図４のプロセスによって、包囲設計ルールチェックの潜在的に問題のあるビアを選択する特有のステップを示す。
【図７】図７は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図であり、一般的に図４のプロセスによって、金属末端設計ルールチェックの潜在的に問題のあるビアを選択する特有のステップを示す。
【図８】図８は、距離Ｃ１によって拡張されるビアと共に、物理レイアウト設計の例示の部分を示す図である。
【図９】図９は、金属領域除去と共に、図８の拡張されたビアを示す図である。
【図１０】図１０は、図８から選択された問題のあるビアのみを示す図であり、金属領域の除去の前に拡張された寸法に戻される。
【図１１】図１１は、図８から選択された問題のあるビアのみを示す図であり、それらの元のサイズに戻される。
【図１２】図１２は、金属領域と共に図８から選択された問題のあるビアのみを示す図であり、ここでビアは別の拡張距離によって再び拡張される。
【図１３】図１３は、金属領域除去と共に、図１２の問題のある包囲ビアのうち１つのみを示す図である。
【図１４】図１４は、図１３の同様に選択された包囲ビアを示す図であり、金属領域の除去の前に拡張された寸法に戻される。
【図１５】図１５は、図１３の同様に選択された包囲ビアを示す図であり、元のサイズに拡張された寸法に戻される。
【図１６】図１６は、距離Ｃ１によってのみ拡張されたビアの端部と共に、図８からの選択された問題のあるビアを示す図である。
【図１７】図１７は、距離Ｃ１によってのみ拡張されたビアの端部と共に、および金属領域除去と共に、図８からの選択された問題のあるビアを示す図である。
【図１８】図１８は、距離Ｃ１によってのみ拡張されたビアの端部と共に、および金属領域除去と共に、および元の位置の方へ拡張された端部と共に、図８からの選択された問題のあるビアを示す図である。
【図１９】図１９は、金属ラインまたは金属領域に関連のあるビアの図であり、ビアと金属の端部との間の例示の最小距離を示す。
【図２０】図２０は、金属ラインまたは金属領域に関連のあるビアの図であり、ビアと金属の端部との間の例示の最小距離を示す。
【図２１】図２１は、金属ラインまたは金属領域に関連のあるビアの図であり、ビアと金属の端部との間の例示の最小距離を示す。
【図１】
2004502259.tif 000004
【図２】
2004502259.tif 000005
【図３】
2004502259.tif 000006
【図４】
2004502259.tif 000007
【図５】
2004502259.tif 000008
【図６】
2004502259.tif 000009
【図７】
2004502259.tif 000010
【図８】
2004502259.tif 000011
【図１９】
2004502259.tif 000012
【図２０】
2004502259.tif 000013
【図２１】
2004502259.tif 000014
【国際公開パンフレット】
2004502259.tif 000015
2004502259.tif 000016
2004502259.tif 000017
2004502259.tif 000018
2004502259.tif 000019
2004502259.tif 000020
2004502259.tif 000021
2004502259.tif 000022
2004502259.tif 000023
2004502259.tif 000024
2004502259.tif 000025
2004502259.tif 000026
2004502259.tif 000027
2004502259.tif 000028
2004502259.tif 000029
2004502259.tif 000030
2004502259.tif 000031
2004502259.tif 000032
2004502259.tif 000033
2004502259.tif 000034
2004502259.tif 000035
2004502259.tif 000036
2004502259.tif 000037
2004502259.tif 000038
2004502259.tif 000039
2004502259.tif 000040
2004502259.tif 000041
2004502259.tif 000042
2004502259.tif 000043
2004502259.tif 000044
2004502259.tif 000045
2004502259.tif 000046
2004502259.tif 000047
【国際調査報告】
2004502259.tif 000048