JP2004502259A - 階層型金属末端、包囲、および曝露をチェックする方法およびシステム - Google Patents
階層型金属末端、包囲、および曝露をチェックする方法およびシステム Download PDFInfo
- Publication number
- JP2004502259A JP2004502259A JP2002507262A JP2002507262A JP2004502259A JP 2004502259 A JP2004502259 A JP 2004502259A JP 2002507262 A JP2002507262 A JP 2002507262A JP 2002507262 A JP2002507262 A JP 2002507262A JP 2004502259 A JP2004502259 A JP 2004502259A
- Authority
- JP
- Japan
- Prior art keywords
- vias
- metal
- extended
- design rule
- design
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000002184 metal Substances 0.000 title claims abstract description 162
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000013461 design Methods 0.000 claims abstract description 125
- 238000010586 diagram Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 11
- 238000012216 screening Methods 0.000 claims 2
- 230000026676 system process Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 16
- 230000015572 biosynthetic process Effects 0.000 description 7
- 238000003786 synthesis reaction Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 5
- 238000012795 verification Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012938 design process Methods 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 241000006464 Asura Species 0.000 description 1
- JHKXZYLNVJRAAJ-WDSKDSINSA-N Met-Ala Chemical compound CSCC[C@H](N)C(=O)N[C@@H](C)C(O)=O JHKXZYLNVJRAAJ-WDSKDSINSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000007873 sieving Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Container Filling Or Packaging Operations (AREA)
- Investigating And Analyzing Materials By Characteristic Methods (AREA)
- Analysing Materials By The Use Of Radiation (AREA)
Abstract
自動設計ルールチェックソフトウェア(500)システムは、回路設計の物理レイアウトファイル(501)を処理し、金属末端(531)、包囲(530)、および/または曝露設計ルール(540)における違反について設計ルールチェックを必要とするビア(502)のリストを引き出す。物理レイアウトファイル上で設計ルールチェックを実行するための方法であって、回路設計の物理レイアウトファイルを受け取るステップと、設計ルールチェックを行うための物理レイアウト図のビアの中からビアのサブセットを識別するステップと、ビア金属ライン端との間の隙間の距離によって該サブセットのビアを拡張するステップと、拡張されたビアによって被われた金属の拡張されたビア領域から差し引くステップと、ビアのサブセット上の設計ルールチェックを実行するステップとを包含する方法。
【選択図】図5
【選択図】図5
Description
【0001】
(発明の背景)
(発明の分野)
本発明の分野は、電子自動設計、より具体的には、電子自動設計手順によりビアの金属端、すなわち包囲チェックおよび露出チェックを行なう方法およびシステムに関する。
(背景)
チップ設計者は、設計プロセスを支援し、プロトタイプ作成または製造の前にチップ設計のシミュレーションおよび検証を可能にする電子自動設計(EDA)ソフトウェアツールを用いることが多い。EDAソフトウェアツールを用いるチップ設計は、通常、反復プロセスを含み、これにより、チップ設計は段階的に完成される。典型的には、チップ設計者は、通常、高品質グラフィック機能を有し、従って、回路デザインの部分を必要に応じて表示するコンピュータワークステーションで情報を入力することによって回路を構築する。Verilog(R)またはVHDLといったハードウェア記述言語(HDL)を用いるトップダウン設計技法が一般的に利用され、これにより、例えば、設計者は、回路の機能的構成要素を階層的に規定し、その後、各構成要素を益々小さい構成要素に分解することにより集積回路を製作する。
【0002】
集積回路の種々の構成要素は、これらの機能的動作および関連する入力および出力により最初に規定される。HDLまたは他の高レベル記述から、実際の論理セルのインプリメンテーションが論理合成により決定される。この論理合成は、回路の論理記述を特定の回路インプリメンテーションに変換する。論理セルは、その後「配置され」(すなわち、回路レイアウトにおいて特定の座標位置が与えられる)および「ルーティングされる」(すなわち、設計者の指定により、配線されるか、または互いに接続される)。配置およびルーティングソフトウェアルーチンは、通常、それらの入力として、論理合成プロセスによって生成された平面化されたネットリストを受け付ける。この平面化されたネットリストは、目標標準セルライブラリから特定の論理セルインスタンスを識別し、特定のセル間の接続性を記述する。この特定のセル間の接続性が確定された後、物理設計およびレイアウトソフトウェアは、各金属ライン(すなわち、ワイヤ)および各ビア(すなわち、チップのレイヤ間の金属遷移)の物理位置を含む、集積回路の物理レイアウトファイルを生成する。最終ステップとして、製造施設へ送達するためのマスクファイルを製作する前に、物理検証ソフトウェアおよびレイアウトの妥当性検査ソフトウェアは、レイアウトファイル上で種々の設計ルールチェック(DRC)を実行する。これらのDRCは一括して、一般に業界において「ルールデック(Rule Deck」と呼ばれる。
【0003】
ルールデックに含まれる設計ルールチェックの間、物理レイアウトファイルは、通常、ビアおよび金属ラインの相対的配置を訂正するためにチェックされなければならない。例えば、(ビアと金属ラインとの間に導電性経路が必要とされる場合)ビアと金属ラインとの間の十分な接触を確実にするために、金属が各ビアを超えて延びなければならない範囲を要求する、最小のオーバーラップ距離が必要とされる。ビアを包囲する金属の形状に依存して、これらの最小オーバーラップ距離はしばしば異なる。設計ルールチェックの別の例として、ビアと金属端との間に特定の最低距離が必要とされ、最終製品における短絡または他の類似の問題の尤度を低減する。金属端は、通常、金属ラインの終端(terminating edge)(単数または複数)あるいは金属ラインの点(単数または複数)と定義される。金属によって包囲される(包囲されるビアとも呼ばれる)ビアにも最小距離が必要とされる。包囲は、通常、ビアと金属との間の接続点と定義され、金属端にあるのではない(すなわち、ここでは、金属上のビアの設置場所は、2つの金属末端が近付きすぎない近辺でなければならない)。別の設計ルールチェックは、露出に関し、これにより、ビアの全体が露出されるのか、または部分が露出される(すなわち、金属により被われない)のかについての決定がなされる。
【0004】
従来技術において、ルールデックの部分であるすべてのビアは設計ルールチェック(DRC)によりチェックされる。これらの手順の部分として、金属端毎に、金属端における各ポイントから各ビアへの距離が計算され、最小距離が満たされることを保証する。これらの手順により必要とされる計算は、簡単に数百万になる。しかしながら、これらの計算の多くは不必要である。なぜなら、これらの計算の多くは、金属末端から明らかに遠いビア上で実行されるからである。結果として、多くの処理時間が費やされる。
【0005】
従って、発明者は、これらのビア上で実行される完全な設計ルールチェックを受けるべきであるのはどのビアかについてのインテリジェントセレクションを提供し、他方、設計ルールチェックの完全なセットを必要としないビアをふるい落とすことは有利であると判定した。
【0006】
(発明の要旨)
本発明は、金属末端、包囲、および曝露チェックを実行するためのビアを有するビアのサブセット(単数または複数)を選択するシステムおよび方法を一局面において提供する。
【0007】
好適な実施形態において、ソフトウェアシステムをチェックする自動化された設計ルールは、回路設計の物理レイアウトファイルを入力として受信する。ソフトウェアシステムをチェックする自動化された設計ルールは、3つのカテゴリーである金属末端、包囲、および曝露をしようとする違反のための設計ルールチェックを必要とするビアのリストを出力する。
【0008】
1つ以上の実施形態において、自動化されたプロセスは、物理レイアウトファイルの全てのビア中から、設計ルールチェックの問題を引き起こす可能性が高い物理レイアウトファイルからのビアを選択する。次に、プロセスは、包囲ルールに違反するそれらのビアを選択して、識別されたビア上の包囲違反の設計ルールチェックを実行し、潜在的に問題のあるビア上の金属末端違反の設計ルールチェックを実行し、潜在的に問題のあるビア上の曝露チェックを実行する。
【0009】
潜在的に問題のあるビアは、第1の所定の最小距離により存在するビアの寸法を拡張すること、金属領域外を差し引くこと、および潜在的に問題のあるビアとして残っている残りの部分と共にそれらのビアを識別することによって識別され得る。包囲設計ルールチェックの候補ビアは、第2の所定の最小距離による潜在的問題のあるビアの寸法を拡張すること、金属領域外を差し引くこと、および包囲設計ルールに違反するとして残っている残りの部分と共にそれらのビアを識別することによって識別され得る。金属末端設計ルールチェックの候補ビアは、第1の所定の最小距離により存在するビアの寸法を拡張すること、金属領域外を差し引くこと、および金属末端設計ルールに違反するとして残っている残りの部分と共にそれらのビアを識別することによって識別され得る。
【0010】
さらなる実施形態、変更、変化、および拡張がまた、本明細書中に記載される。
【0011】
(好適な実施形態の詳細な説明)
次に、必要に応じて添付の図面を参照しながら、好適な実施形態を説明する。しかしながら、まず第1に、電子設計自動化(EDA)ソフトウェアツールに関して、さらなる背景情報を提供する。
【0012】
図1は、本明細書中において説明する本発明の種々の実施形態に関連して用いられ得るコンピュータシステムの図である。図1に示すように、コンピュータシステム100は、ディスプレイ191および種々の入出力デバイス192に接続されたコンピュータ110を備える。コンピュータ110は、1つ以上のプロセッサ(図示せず)、ならびにシステムの速度要件および処理要件を満たすために十分な容量の作業メモリ(例えば、RAM)を備え得る。コンピュータ110は、例えば、Santa Clara,CaliforniaのSun Computers,Inc.から販売されるSPARCTMワークステーション、または任意の他の適切なコンピュータを含み得る。
【0013】
コンピュータ110は、1つの実施形態では、データパスフロアプランナー(datapath floorplanner)120、データパスプレーサ130、およびルーティングスペースエスティメータ140を含む、格納プログラムコードを含む。データパスフロアプランナー120は、データパス機能、データバス領域、およびこれらに関して、回路設計者による双方向フロアプラン操作上の制約の定義を提供し、データパスプレーサ130の配置操作を制御する。データパスプレーサ130は、回路設計者により定義された制約に従って、データパス機能のデータパス領域内での配置、および論理セルインスタンスのデータパス機能内での配置を決定する。ルーティングスペースエスティメータ140は、データパス機能をルーティングするために必要とされるルーティングスペースを見積もる(データパスプランナー130によりそのような機能の配置がなされている場合)。
【0014】
上述のシステムコンポーネントのサポートとして、チップフロアプランナー150、グローバル/ディテールルータ160、標準セルプレーサ170、論理合成回路180、およびHDLエディタ190が有用に用いられ得る。チップフロアプランナー150、グローバル/ディテールルータ160、標準セルプレーサ170、論理合成回路180、およびHDLエディタ190の動作は従来どおりであり、これらのコンポーネントの設計は電子設計自動化の分野では周知である。これらのシステムコンポーネントの販売例としては、それぞれ、PreviewTM、Cell3TM、QPlaceTM(またはDesignPlannerTM)、SynergyTM(またはBuildGatesTM)、およびVerilog(R)がある。
【0015】
コンピュータ110は、好ましくは、前述のシステムコンポーネントがインターフェース接続される、レイアウトデータベース195を提供する、大容量記憶デバイス(例えば、磁気ディスクまたはカートリッジ式記憶装置)に接続される。レイアウトデータベース195は、EDIFデータベース規格を用いてインプリメントされ得る。コンピュータ110はまた、回路設計に利用可能な電子コンポーネントの特徴を特定する、1つ以上のコンポーネントライブラリ(図示せず)を備える、大容量記憶装置に接続され得る。
【0016】
本明細書中においてすでに説明したように、チップ設計者は、一般に、例えば、
Verilog(R)またはVHDL等のハードウェア記述言語(HDL)から始めて、回路の機能コンポーネントを階層的に定義し、そして、各コンポーネントをごく小さいコンポーネントに分解することにより、集積回路を作製するトップダウン設計方法論を用いる。デジタル集積回路で用いられる、2つの主要なタイプのコンポーネントは、データパスおよび制御論理である。制御論理(通常はランダム論理)はデータパスの動作制御に用いられる。回路のデータパスエリアは、数学的動作または他の動作等の機能動作を実施する。
【0017】
集積回路の種々のコンポーネントは、最初に、それらの機能的な動作、ならびに関連する入力および出力により定義される。設計者はまた。フロアプランニングツールを用いて、回路内でのコンポーネントの配置に関する基本的な組織情報を提供し得る。これらの設計状態にある間、設計者は一般に、有意な階層情報を用いて回路を構成し、設計における実質的なルール性を有する。
【0018】
背景のセクションにおいて前述したように、HDLまたは他の高位記述から、実際の論理セルインプリメンテーションは、通常、論理合成により決定される。これにより、回路の機能的記述が特定の回路インプリメンテーションに変換される。次いで、論理セルが配置され、ルーティングされることにより、物理レイアウトファイルが生じる。
【0019】
次に、図2を参照すると、レイアウトデータベース195に格納された回路設計データによって表され得る簡略化された集積回路200の模式図が示されている。実際には、より実際的な集積回路設計として、集積回路200は、ずっと複雑になり得る。しかし、図2は、例示のためには有用である。図2に示すように、集積回路200は、複数制御領域201と、データパス領域203と、メモリ205とを含む。各種の制御領域201、データパス領域203、およびメモリ205は、概して、複数ビットにわたるデータバス207と相互接続される。データパス領域203は、複数のデータパス機能209を含み得る。データパス機能209は、データバス207から利用可能なビットの一部または全てを利用し得る。データパス機能209は、一部の形態の信号またはデータの論理変形がデータバス207を通ることを可能にする複数のセルインスタンス215を含み得る。データパス機能209内のセルインスタンス215は、概して、データパス機能209のデータについて動作する。
【0020】
レイアウトデータベース195のスキーマに表されるように、集積回路200は、複数のインスタンスおよび複数のネットを含む。ネットは、各インスタンスのピンを関連付けることによって、より概略的に言うと、複数のインスタンスの入力および出力を関連付けることによって、複数のインスタンスを相互接続する。
【0021】
図3は、上記の回路概念の様々なレベルのうちの一部を示す、回路設計についての概略的なプロセスのフローチャートである。図3に示すように、HDLファイルまたは他の高レベル機能的記述の形態のレジスタ転送論理(RTL)ファイル301は、コンパイルプロセス303を受ける。コンパイルプロセス303は、典型的には、何らかの形の論理合成を含み、回路の機能記述を、ネットリストファイル304の形態で格納される特定回路インプリメンテーションに変換する。コンパイルプロセス303の一部として、どのようなタイプの設計コンポーネントが利用可能であるか、および、機能的接続性を判定するために必要とされるこれらの設計コンポーネントの特性についての情報を格納するコンポーネントライブラリ306が、概して参照される。このプロセスの段階で、回路設計において用いられるコンポーネントの数を最小限にするため、回路最適化において、いくつかの試みが行われ得る。ネットリストファイル304は、上述したように、概して、目標基準セルライブラリから、特定の論理セルインスタンスを識別し、特定のセルとセルとの接続性を記述する。
【0022】
図3に示す物理設計プロセス309を適用することによって、ネットリストファイル304の論理セルが、位置付けられ、ルーティングされて、レイアウトファイル310が得られる。コンポーネントライブラリ306は、ネットリストファイル304に存在し得るゲートおよび他のコンポーネントのサイズについての情報を得るために、このプロセスにおいて利用される。
【0023】
図3にさらに示されるように、レイアウトファイル310から、物理検証プロセス312が実行され得、例えば、GDSIIまたはCIFフォーマットのマスクファイル315が得られる。マスクファイル315は、製造工場に提供され得るが、製造工場が実際の集積回路を製造することを可能にするのに充分な情報を含む。
【0024】
本明細書中で開示される各種の実施形態において、特定のビアについての設計ルールチェックを選択するために、図3に示す検証プロセス312に関連して用いられ得るプロセスが提供される。図4は、金属末端、包囲、および/または曝露違反を有する可能性が高いビアを選択し、処理するプロセスのフローチャートである。これらのビアは、本明細書中、概して、「潜在的問題を有するビア」と呼ばれる。
【0025】
各種のタイプの問題を有するビアは、図19、20および21を参照しながら説明され得る。金属末端タイプのビアは、図19に示すように、金属ラインの端部に位置する。ビアのフットプリントと、金属ラインが「終端する」端部との間に、ある一定の最短距離が必要とされており、この最短距離は、図19において、C1で示される。ある一定の最短距離は、ビアのフットプリントと、金属の端との間にも必要とされており、この最短距離は、図19において、Cで表される。包囲タイプのビアは、図20に示すように、金属ラインの端部ではないところにあるビアである。包囲タイプのビアは、図20に示すように、金属の両側の端(角ではない)の隣に存在してもよいし、金属の一方の端の隣に位置してもよいし、金属の端部に近くなくてもよい。ビアのフットプリントと金属の端部との間の最短距離(金属末端ビアと金属の端部との間に必要とされる最短距離と同じ距離であり得る)が、概して必要とされており、図20においてCで示される。
【0026】
本明細書中で説明される特定の実施形態において、図21に示されるように、金属ラインの角に位置したビアは、ハイブリットの様態で扱われ得る。例えば、金属末端に隣接したビアのサイドの一つは、金属の端部に配置されたように扱われ得る。一方、金属末端に隣接したビアの他方のサイドは、包囲ビアのように扱われ得る。従って、金属ラインの角におけるこのようなビアは、二つの間隔を空ける必要がある。一つは、最小距離C(ビアのエッジから金属のエッジまで)によって規定され、もう一方は、最小距離C1(ビアのエッジから金属末端の「終端」エッジまで)によって規定される。
【0027】
図4に示されるように、階層型金属末端、包囲および/または曝露チェックに関する好ましいプロセス400、好ましくは後に本明細書中で説明される(および、示される、例えば、図5に関する)技術に従って、物理レイアウトファイル401から潜在的に問題のあるビアを選択するステップ402を含む。ステップ402の後、一つ以上のステップ405、406、407および410が実行され得る。ステップ405では、ビアは、好ましくはさらに本明細書中で述べられる(および、示される、例えば、図6に関する)基準に基づいて、包囲設計ルールチェックとして選択される。ステップ410では、ビアは、好ましくはさらに本明細書中で述べられる基準に従って、曝露設計ルールチェックとして選択される。ステップ406では、ビアは、好ましくは本明細書中でさらに述べられる(および、示される、例えば、図7に関する)基準に基づいて、金属末端設計ルールチェックとして選択される。ステップ407では、設計ルールチェックは、全ての潜在的に問題のあるビアに対して実行され、一方、問題の無いビアに対する設計ルールチェックを好ましくは避ける。
【0028】
図5は、潜在的に問題のあるビアを選択するための好ましいサブプロセス520を示す。サブプロセス520は、金属末端、包囲および/または曝露違反がありそうなビアを選択、および、処理するための好ましいプロセス500と連結している。一局面において、サブプロセス520は、潜在的に問題のあるビアを残して、問題がありそうにないビアにフィルタリングを行うように見え得る。詳細には、サブプロセス520は、金属領域のエッジから特定の最小距離C1内にあるビアのみを選択する。図5に示されるように、問題のあるビアを選択するサブプロセス520は、最初、ステップ503を含む。このステップ503によってどのビアが金属境界に近いかを決定するために、各ビアは、所定の拡張距離だけ各方向に体系的に「拡張」される。この拡張は、図8で図式的に示される。この図では、元のビア800は、拡張されたビア830まで所定の拡張距離C1だけ拡張される。一局面において、所定の拡張距離C1は、金属末端または終点からの選択された最小距離を表す。所定の拡張距離は、例えば、工場での製造に必要な特定の条件に基づいて、設計エンジニアによって選択され得る。
【0029】
次のステップ504では、図8で示される金属領域820は、金属領域820の外に残る拡張したビア830の残差部分840(図9を見よ)のみ残して、拡張したビア830の領域から取り去られる。
【0030】
次のステップ510では、金属領域820の外に残る材料を有する拡張されたビア830が識別される。本実施例では、拡張されたビア830aおよび830bは、影響があるためにステップ510で識別される。一方、潜在的に問題のあるビア830cは無視される。次のステップ511では、潜在的に問題のあるビア830aおよび830bに対する元の大きさが回復される。このことは、任意の様々な方法によって、達成され得る。例えば、ビア830a、830bの各エッジから距離C1を取り去ることによって、拡張されたビア830a、830bから元の大きさへと戻る。あるいは、潜在的に問題のあるビア830aおよび830bの元の大きさは、標準のビアを得るために、後に本明細書中で説明されるように(第二のレイヤの周囲にある、または、第二のレイヤに重なる第一のレイヤの形状の全てを識別する)「geomButtOrOver」機能を適用し、次いで、元のビアを得るために、後に本明細書中で説明されるように(レイヤAとレイヤBとの間の論理AND操作)「geomAND」機能を適用することによって回復され得る。図10および11は、潜在的に問題のある拡張されたビア850、および、元の大きさに戻された潜在的に問題のある拡張されたビア860を示す。この点において、サブプロセス520は、潜在的に問題のあるビアのセットを選択する。このセットの性質は、物理レイアウトファイル401(または、図5で示されるような501)上で実行される確認プロセスの一部として保持される一次ファイル内のテーブル、または、他のデータ構造に格納され得る。
【0031】
図5のステップ530、540、531および532は、図4に表れるステップ405、410、406および407にそれぞれ類似している。
【0032】
図6は、包囲設計ルールチェックに関する潜在的に問題のあるビアを選択するための好ましいサブプロセス620を示す。このサブプロセス620は、金属末端、包囲および/または曝露違反を有するであろうビアの選択および処理に関する好ましい処理600と連結する。図6に示されるように、包囲設計ルールチェックに関する潜在的に問題のあるビアに関するサブプロセス620は、所定の拡張距離Cによって前もって識別され、拡張されたビア865となった潜在的に問題のあるビア860を拡張する第一のステップ605を含む。このステップは、図8から図11にかけて以前に説明された実施例に関して図12で図式的に示される。次のステップ606では、金属領域820は、拡張されたビア865から取り除かれ、図13で示されるような残差部分870となる。次のステップ607では、金属領域を取り除いた後に残った材料を有するビアが識別される。本実施例において、拡張されたビア865bは、ステップ607で識別される。一方、拡張されたビア865aは無視される。ステップ607において、開示ルールに違反する拡張されたビア(すなわち、拡張された回路865b)に関連する残差部分870は、図14に示されるように、最新の金属領域が取り除かれる前に、それらの拡張された大きさへ戻される。次のステップ608で、曝露ルールに違反する拡張されたビアは、図14の拡張されたビア880(すなわち、図12の拡張されたビア865b)の未拡張のバージョンに相当する図15のビア890によって示されたそれらの元の拡張前の大きさに戻される。次のステップ610で、曝露設計ルールに違反するビア(つまり、金属末端にかなり近い)リストは、さらなる処理のための出力である。
【0033】
ステップ640では、包囲設計ルールチェックは、包囲ルール、および、格納されるまたは次のプロセスへ出力される結果に違反するとき、サブプロセス620内で決定される全てのビア上で実行される。しかし、金属末端包囲設計ルールチェックは必要とされず、包囲設計ルールに違反しないビア上で、つまり、金属末端に「あまりに近い」と考えられていないビア上で、好ましくは実行されない。
【0034】
図6のステップ602、625、630および635は、図4に表れるステップ402、406、407および410にそれぞれ類似している。
【0035】
図7は、金属末端設計ルールチェックに関して潜在的に問題のあるビアを選択する好ましいサブプロセス720を示す。このサブプロセスは、金属末端、包囲および/または曝露違反を有すであろうビアを選択および処理する好ましいプロセス700と連結している。図7に示されるように、金属末端設計ルールチェックに関して潜在的に問題のあるビアを選択するサブプロセス720は、潜在的に問題のあるビア860のエッジを拡張する第一のステップ725を含む。(図8から図11にかけて以前に説明された実施例に関して)図16で図式的に示されたように、このビア860は、(例えば、図5で示されたサブプロセスによって)以前に識別され、角の部分を拡張することなく、予め決められた拡張距離C1だけ引き伸ばされ、拡張されたビア905となる。次のステップ726では、金属領域820は、図17に示されるように、拡張されたビア905から取り除かれ、残差部分910となる。ステップ727では、金属領域が取り除かれた後に残る残差部分910を有するビアが識別される。次いで、残差部分は、残差部分910の外エッジ911から、予め決められた拡張距離C1だけ押し出すことによって、矩形形状930を発生し、元のビア860の拡張されたサイドの全てではないが、そのいくつかに対する矩形形状930のセットとなる。次のステップ729では、設計ルールチェックは、これらのビア上で行われ、「L」型のノッチ920のような特定の機能を探索する。このノッチ920は、金属末端設計ルールの違反を示す。金属末端設計ルールに違反する(つまり、金属末端にあまりに近い)ビアのリストは、さらなる処理に関する出力であり得る。
【0036】
図6のステップ702、705、706および715は、図4に現れるステップ402、405、410および415にそれぞれ類似している。
【0037】
一局面において、プロセス400、500、600または700は、物理レイアウトファイルの全てのビア間から問題を引き起こしそうなビアを選択する。次いで、プロセスは、包囲ルールに違反するビア、識別されたビア上の包囲違反に関する設計ルールチェックを実行するビア、潜在的に問題のあるビア上の金属末端違反に関する設計ルールチェックを実行するビア、潜在的に問題のあるビア上の曝露チェックを実行するビアを選択する。
【0038】
本明細書中で説明されたような様々な実施形態は、回路設計に関する物理レイアウトファイルのビアの金属末端、包囲および曝露をチェックするために必要な時間を(例えば、要素100によって)大きく減少することが可能である。
【0039】
このような設計チェックを実行するために必要なメモリは、同様に極めて減少される。金属のエッジから特定距離内にあるビアのみを選択および処理することによって、設計ルールチェックのスピードが、各段に増加される。
【0040】
本発明の一実施形態は、以下のプログラム命令で例示される。このプログラム命令は、カリフォルニア、サン ホセのCadance Design Systems,Inc.から市販されているAssuraTMによって解釈され得るフォーマットで書かれている。
【0041】
【表1】
特定の設計ルールデッキと連結する上記のプログラム命令を実行するために、そして、電子設計プロセスの結果として生成される物理レイアウトファイル上で演算するために、電子設計自動システムの文脈で、コンピュータシステムが構成され得る。
【0042】
説明のために、タスク「geomSize」は、ポリゴンまたは形状をサイジングするために用いられるとする。サイジング関数は、ユニットが正である場合、ポリゴンまたは形状の大きさを増加し、同様に、ユニットが負である場合、ポリゴンまたは形状の大きさを減少する。サイジングの例を以下のとおりである。
v4_9s=geomSize(via4 0.09)
上記の例によれば、via4の形状は、0.09ミクロンだけ外へ成長する。
【0043】
タスク「geomAndNot」は、異なる(すなわち、A−B)表現を表す。例えば、MetalAおよびMetalBは、二つの金属レイヤであり、従って、以下の表現は、任意形状のBと重ならないAの全ての形状を含む結果のレイヤを生じる。
Y=geomAndNot(AB)
タスク「geomAnd」は、単なるANDおよび結合演算である。このタスクは、二つのレイヤに重なる共有の領域を提供する。例えば、次の表現は、領域AおよびBに重なる共通部分の全てを含む結果のレイヤYを生む。
Y=geomAND(AB)
タスク「geomButtOrOver」は、第2のレイヤ(例えば、レイヤB)と隣接するか、または重なる第1のレイヤ(例えば、レイヤA)の形状全てを識別する。例えば、以下の表現は、レイヤBの形状に接触するか、または重なるレイヤAの形状全てを識別する結果として生じるレイヤYを生成する:
Y=geomButtOrOver(AB)
「drc」タスクは、物理レイアウトファイルの設計ルール整合性をチェックするために利用され得る設計ルールチェック機能(design rule checking function)である。包囲設計ルールチェックは、第2のレイヤ(例えば、レイヤA)上の形状によって第1のレイヤ(例えば、レイヤB)の形状の包囲を測定する。この測定は、レイヤA上の形状の内接端部(inside−facing edge)とレイヤB上の形状の外接端部(outside−facing edge)との間の距離を表示する。言い換えれば、包囲設計ルールチェックは、レイヤAがレイヤBを封入するか否か、ならびに、レイヤAがどれくらいレイヤBを封入しているかを決定する。例えば、以下の表現は、0より大きく4未満の封入限界によって、レイヤAの形状全ておよびレイヤB上の包囲形状に対してチェックする:
Y=drc(レイヤA レイヤB0<enc<4)
上述のプログラミング命令のライン1〜4の実行は、設計ルールデッキに組み込まれる場合、図5に示されるステップによって一般的に、通常、コンピュータシステムに、物理レイアウトファイルから、問題を引き起こすようなビアをフィルタリングさせる。ライン5〜8は、図6に記載されたステップによって一般的に、包囲ルールに違反する上記のビアを選択する。ライン9は、ライン8の出力の包囲違反についての設計ルールチェック(DRC)を実行する(例えば、図6のステップ640によって示唆されるように)。ライン10は、ライン8で実行される設計ルールチェックの結果を出力する。ライン11〜14は、図7に記載されたステップによって一般的に、ライン5の出力上の金属末端違反についての設計ルールチェック(DRC)を実行する。ライン15は、ライン11〜14において実行される設計ルールチェックの結果を出力する。ライン16は、ライン8の出力上の曝露チェックを実行し、ライン17は、この結果を出力する。
【0044】
さらに詳細に、上述のプログラムのライン1〜4は、さらに詳細な図5のサブプロセス520に関して最初に議論されるように、包囲、金属末端および/または曝露違反を有するようなビアを選択する。プログラムのライン1〜4は、金属領域820(図8参照)の端部の、一定かつ所定の距離、C1、内にあるこれらのビアのみを選択する。ライン1は、距離C1によって全てのビア800の外部端部を拡張させる。ライン2は、拡張されたビア830から金属820の領域を取り去り、金属領域820の外部にある拡張されたビア830の上記の部分840(図9参照)のみを残す。ライン3は、金属領域820を取り去った後に残っている材料を有するこれらのビア830a、830bを識別しながら、取り去った後に残っているいかなる材料も有さないビア(ビア830c等)を無視する。これは、次いで、金属領域の除去860前に、上記ビアを拡張された寸法に変える。ライン4は、上記ビア830a、830bをこれらの元の、拡張されていない、サイズに変える。
【0045】
ライン5〜8は、包囲設計ルールチェックを提供する。ライン5は、図12に示されるように、距離Cにより、選択されたビア860の外部端部を拡張する。ライン6は、図13に示されるように、拡張されたビアから金属領域820を取り去る。ライン7は、金属領域を取り去った後の材料残部870を有するこれらの拡張されたビア865を識別し、図14に示されるように、金属領域を取り去る前に、拡張された寸法にこれらのビアを変える。ライン8は、図15に示されるように、これらのビアをこれらの元の、拡張されていない、サイズに変える。ライン9は、包囲ルールに違反するこれらのビアについての設計ルールチェックを行う。ライン10は、設計ルールチェックの結果を出力する。
【0046】
ライン11〜15は、金属末端部チェックを実行する。ライン11は、潜在的に問題であるビアの外部端部を距離C1だけ拡張させる(ライン4によって識別されるように)。しかし、前回の拡張と異なって、図16に示されるように、ライン11は、角を拡張させることなく、端部ラインを直線状に拡張するに過ぎない。ライン12は、図17に示されるように、金属領域820を拡張されたビア905から取り去る。ライン13は、金属領域を取り去った後に残っている部分910を有するこれらの拡張されたビア905を識別し、図18に示されるように、これらの最も外側の端部を距離C1だけ内部に拡張する。ライン14は、「L」形状ノッチ920(図18参照)等の、独特の特徴部(金属末端部ルールの違反を示す)を識別するために、これらのビアの設計ルールチェックを行う。ライン15は、金属末端部チェックプロセスの結果を出力する。
【0047】
ライン16および17は、曝露チェックを実行する。ライン16は、曝露ルールに違反するビアから(すなわち、ライン8からの出力)曝露するビアにチェックする。ライン17は、曝露設計ルールチェックの結果を出力する。
【0048】
「geomSize」、「「geomAndNot」、「geomButtOrOver」および「geomAND」タスクの機能を実行する多くの等価な方法は、基礎的な機能性を変えることなく、または、本明細書中に記載された潜在的に問題であるビアを選択し、処理する方法およびシステム全体の原理から逸脱することなく、実行され得る。同様に、他のタイプの判断基準は、本明細書中に新規の原理から逸脱することなく、記載されたビアが接続される金属ワイヤおよび特徴部の境界または端部に対する物理レイアウトファイルのビアの近接度を判定する同一または類似の原理を基礎として、潜在的に問題であるビアを選択するために用いられ得る。
【0049】
本発明の好適な実施形態が本明細書中に記載される一方で、本発明の概念および範囲内にある多くの変形が可能である。このような変形は、明細書および図面を調べれば、当業者には明らかである。したがって、本発明は、特許請求の範囲の意図および範囲以外には、限定されない。
【図面の簡単な説明】
【図1】図1は、本明細書中に記載されるような本発明の多様な実施形態に関して使用され得るコントロールシステムの図である。
【図2】図2は、図1に示されるようなコントロールシステムを用いて引き起こされ得るような簡単な集積回路の図である。
【図3】図3は、回路設計の一般的なプロセスフローの図であり、回路概念の多様なレベルを示す。
【図4】図4は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図である。
【図5】図5は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図であり、一般的に図4のプロセスによって、潜在的に問題のあるビアを選択する特有のステップを示す。
【図6】図6は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図であり、一般的に図4のプロセスによって、包囲設計ルールチェックの潜在的に問題のあるビアを選択する特有のステップを示す。
【図7】図7は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図であり、一般的に図4のプロセスによって、金属末端設計ルールチェックの潜在的に問題のあるビアを選択する特有のステップを示す。
【図8】図8は、距離C1によって拡張されるビアと共に、物理レイアウト設計の例示の部分を示す図である。
【図9】図9は、金属領域除去と共に、図8の拡張されたビアを示す図である。
【図10】図10は、図8から選択された問題のあるビアのみを示す図であり、金属領域の除去の前に拡張された寸法に戻される。
【図11】図11は、図8から選択された問題のあるビアのみを示す図であり、それらの元のサイズに戻される。
【図12】図12は、金属領域と共に図8から選択された問題のあるビアのみを示す図であり、ここでビアは別の拡張距離によって再び拡張される。
【図13】図13は、金属領域除去と共に、図12の問題のある包囲ビアのうち1つのみを示す図である。
【図14】図14は、図13の同様に選択された包囲ビアを示す図であり、金属領域の除去の前に拡張された寸法に戻される。
【図15】図15は、図13の同様に選択された包囲ビアを示す図であり、元のサイズに拡張された寸法に戻される。
【図16】図16は、距離C1によってのみ拡張されたビアの端部と共に、図8からの選択された問題のあるビアを示す図である。
【図17】図17は、距離C1によってのみ拡張されたビアの端部と共に、および金属領域除去と共に、図8からの選択された問題のあるビアを示す図である。
【図18】図18は、距離C1によってのみ拡張されたビアの端部と共に、および金属領域除去と共に、および元の位置の方へ拡張された端部と共に、図8からの選択された問題のあるビアを示す図である。
【図19】図19は、金属ラインまたは金属領域に関連のあるビアの図であり、ビアと金属の端部との間の例示の最小距離を示す。
【図20】図20は、金属ラインまたは金属領域に関連のあるビアの図であり、ビアと金属の端部との間の例示の最小距離を示す。
【図21】図21は、金属ラインまたは金属領域に関連のあるビアの図であり、ビアと金属の端部との間の例示の最小距離を示す。
(発明の背景)
(発明の分野)
本発明の分野は、電子自動設計、より具体的には、電子自動設計手順によりビアの金属端、すなわち包囲チェックおよび露出チェックを行なう方法およびシステムに関する。
(背景)
チップ設計者は、設計プロセスを支援し、プロトタイプ作成または製造の前にチップ設計のシミュレーションおよび検証を可能にする電子自動設計(EDA)ソフトウェアツールを用いることが多い。EDAソフトウェアツールを用いるチップ設計は、通常、反復プロセスを含み、これにより、チップ設計は段階的に完成される。典型的には、チップ設計者は、通常、高品質グラフィック機能を有し、従って、回路デザインの部分を必要に応じて表示するコンピュータワークステーションで情報を入力することによって回路を構築する。Verilog(R)またはVHDLといったハードウェア記述言語(HDL)を用いるトップダウン設計技法が一般的に利用され、これにより、例えば、設計者は、回路の機能的構成要素を階層的に規定し、その後、各構成要素を益々小さい構成要素に分解することにより集積回路を製作する。
【0002】
集積回路の種々の構成要素は、これらの機能的動作および関連する入力および出力により最初に規定される。HDLまたは他の高レベル記述から、実際の論理セルのインプリメンテーションが論理合成により決定される。この論理合成は、回路の論理記述を特定の回路インプリメンテーションに変換する。論理セルは、その後「配置され」(すなわち、回路レイアウトにおいて特定の座標位置が与えられる)および「ルーティングされる」(すなわち、設計者の指定により、配線されるか、または互いに接続される)。配置およびルーティングソフトウェアルーチンは、通常、それらの入力として、論理合成プロセスによって生成された平面化されたネットリストを受け付ける。この平面化されたネットリストは、目標標準セルライブラリから特定の論理セルインスタンスを識別し、特定のセル間の接続性を記述する。この特定のセル間の接続性が確定された後、物理設計およびレイアウトソフトウェアは、各金属ライン(すなわち、ワイヤ)および各ビア(すなわち、チップのレイヤ間の金属遷移)の物理位置を含む、集積回路の物理レイアウトファイルを生成する。最終ステップとして、製造施設へ送達するためのマスクファイルを製作する前に、物理検証ソフトウェアおよびレイアウトの妥当性検査ソフトウェアは、レイアウトファイル上で種々の設計ルールチェック(DRC)を実行する。これらのDRCは一括して、一般に業界において「ルールデック(Rule Deck」と呼ばれる。
【0003】
ルールデックに含まれる設計ルールチェックの間、物理レイアウトファイルは、通常、ビアおよび金属ラインの相対的配置を訂正するためにチェックされなければならない。例えば、(ビアと金属ラインとの間に導電性経路が必要とされる場合)ビアと金属ラインとの間の十分な接触を確実にするために、金属が各ビアを超えて延びなければならない範囲を要求する、最小のオーバーラップ距離が必要とされる。ビアを包囲する金属の形状に依存して、これらの最小オーバーラップ距離はしばしば異なる。設計ルールチェックの別の例として、ビアと金属端との間に特定の最低距離が必要とされ、最終製品における短絡または他の類似の問題の尤度を低減する。金属端は、通常、金属ラインの終端(terminating edge)(単数または複数)あるいは金属ラインの点(単数または複数)と定義される。金属によって包囲される(包囲されるビアとも呼ばれる)ビアにも最小距離が必要とされる。包囲は、通常、ビアと金属との間の接続点と定義され、金属端にあるのではない(すなわち、ここでは、金属上のビアの設置場所は、2つの金属末端が近付きすぎない近辺でなければならない)。別の設計ルールチェックは、露出に関し、これにより、ビアの全体が露出されるのか、または部分が露出される(すなわち、金属により被われない)のかについての決定がなされる。
【0004】
従来技術において、ルールデックの部分であるすべてのビアは設計ルールチェック(DRC)によりチェックされる。これらの手順の部分として、金属端毎に、金属端における各ポイントから各ビアへの距離が計算され、最小距離が満たされることを保証する。これらの手順により必要とされる計算は、簡単に数百万になる。しかしながら、これらの計算の多くは不必要である。なぜなら、これらの計算の多くは、金属末端から明らかに遠いビア上で実行されるからである。結果として、多くの処理時間が費やされる。
【0005】
従って、発明者は、これらのビア上で実行される完全な設計ルールチェックを受けるべきであるのはどのビアかについてのインテリジェントセレクションを提供し、他方、設計ルールチェックの完全なセットを必要としないビアをふるい落とすことは有利であると判定した。
【0006】
(発明の要旨)
本発明は、金属末端、包囲、および曝露チェックを実行するためのビアを有するビアのサブセット(単数または複数)を選択するシステムおよび方法を一局面において提供する。
【0007】
好適な実施形態において、ソフトウェアシステムをチェックする自動化された設計ルールは、回路設計の物理レイアウトファイルを入力として受信する。ソフトウェアシステムをチェックする自動化された設計ルールは、3つのカテゴリーである金属末端、包囲、および曝露をしようとする違反のための設計ルールチェックを必要とするビアのリストを出力する。
【0008】
1つ以上の実施形態において、自動化されたプロセスは、物理レイアウトファイルの全てのビア中から、設計ルールチェックの問題を引き起こす可能性が高い物理レイアウトファイルからのビアを選択する。次に、プロセスは、包囲ルールに違反するそれらのビアを選択して、識別されたビア上の包囲違反の設計ルールチェックを実行し、潜在的に問題のあるビア上の金属末端違反の設計ルールチェックを実行し、潜在的に問題のあるビア上の曝露チェックを実行する。
【0009】
潜在的に問題のあるビアは、第1の所定の最小距離により存在するビアの寸法を拡張すること、金属領域外を差し引くこと、および潜在的に問題のあるビアとして残っている残りの部分と共にそれらのビアを識別することによって識別され得る。包囲設計ルールチェックの候補ビアは、第2の所定の最小距離による潜在的問題のあるビアの寸法を拡張すること、金属領域外を差し引くこと、および包囲設計ルールに違反するとして残っている残りの部分と共にそれらのビアを識別することによって識別され得る。金属末端設計ルールチェックの候補ビアは、第1の所定の最小距離により存在するビアの寸法を拡張すること、金属領域外を差し引くこと、および金属末端設計ルールに違反するとして残っている残りの部分と共にそれらのビアを識別することによって識別され得る。
【0010】
さらなる実施形態、変更、変化、および拡張がまた、本明細書中に記載される。
【0011】
(好適な実施形態の詳細な説明)
次に、必要に応じて添付の図面を参照しながら、好適な実施形態を説明する。しかしながら、まず第1に、電子設計自動化(EDA)ソフトウェアツールに関して、さらなる背景情報を提供する。
【0012】
図1は、本明細書中において説明する本発明の種々の実施形態に関連して用いられ得るコンピュータシステムの図である。図1に示すように、コンピュータシステム100は、ディスプレイ191および種々の入出力デバイス192に接続されたコンピュータ110を備える。コンピュータ110は、1つ以上のプロセッサ(図示せず)、ならびにシステムの速度要件および処理要件を満たすために十分な容量の作業メモリ(例えば、RAM)を備え得る。コンピュータ110は、例えば、Santa Clara,CaliforniaのSun Computers,Inc.から販売されるSPARCTMワークステーション、または任意の他の適切なコンピュータを含み得る。
【0013】
コンピュータ110は、1つの実施形態では、データパスフロアプランナー(datapath floorplanner)120、データパスプレーサ130、およびルーティングスペースエスティメータ140を含む、格納プログラムコードを含む。データパスフロアプランナー120は、データパス機能、データバス領域、およびこれらに関して、回路設計者による双方向フロアプラン操作上の制約の定義を提供し、データパスプレーサ130の配置操作を制御する。データパスプレーサ130は、回路設計者により定義された制約に従って、データパス機能のデータパス領域内での配置、および論理セルインスタンスのデータパス機能内での配置を決定する。ルーティングスペースエスティメータ140は、データパス機能をルーティングするために必要とされるルーティングスペースを見積もる(データパスプランナー130によりそのような機能の配置がなされている場合)。
【0014】
上述のシステムコンポーネントのサポートとして、チップフロアプランナー150、グローバル/ディテールルータ160、標準セルプレーサ170、論理合成回路180、およびHDLエディタ190が有用に用いられ得る。チップフロアプランナー150、グローバル/ディテールルータ160、標準セルプレーサ170、論理合成回路180、およびHDLエディタ190の動作は従来どおりであり、これらのコンポーネントの設計は電子設計自動化の分野では周知である。これらのシステムコンポーネントの販売例としては、それぞれ、PreviewTM、Cell3TM、QPlaceTM(またはDesignPlannerTM)、SynergyTM(またはBuildGatesTM)、およびVerilog(R)がある。
【0015】
コンピュータ110は、好ましくは、前述のシステムコンポーネントがインターフェース接続される、レイアウトデータベース195を提供する、大容量記憶デバイス(例えば、磁気ディスクまたはカートリッジ式記憶装置)に接続される。レイアウトデータベース195は、EDIFデータベース規格を用いてインプリメントされ得る。コンピュータ110はまた、回路設計に利用可能な電子コンポーネントの特徴を特定する、1つ以上のコンポーネントライブラリ(図示せず)を備える、大容量記憶装置に接続され得る。
【0016】
本明細書中においてすでに説明したように、チップ設計者は、一般に、例えば、
Verilog(R)またはVHDL等のハードウェア記述言語(HDL)から始めて、回路の機能コンポーネントを階層的に定義し、そして、各コンポーネントをごく小さいコンポーネントに分解することにより、集積回路を作製するトップダウン設計方法論を用いる。デジタル集積回路で用いられる、2つの主要なタイプのコンポーネントは、データパスおよび制御論理である。制御論理(通常はランダム論理)はデータパスの動作制御に用いられる。回路のデータパスエリアは、数学的動作または他の動作等の機能動作を実施する。
【0017】
集積回路の種々のコンポーネントは、最初に、それらの機能的な動作、ならびに関連する入力および出力により定義される。設計者はまた。フロアプランニングツールを用いて、回路内でのコンポーネントの配置に関する基本的な組織情報を提供し得る。これらの設計状態にある間、設計者は一般に、有意な階層情報を用いて回路を構成し、設計における実質的なルール性を有する。
【0018】
背景のセクションにおいて前述したように、HDLまたは他の高位記述から、実際の論理セルインプリメンテーションは、通常、論理合成により決定される。これにより、回路の機能的記述が特定の回路インプリメンテーションに変換される。次いで、論理セルが配置され、ルーティングされることにより、物理レイアウトファイルが生じる。
【0019】
次に、図2を参照すると、レイアウトデータベース195に格納された回路設計データによって表され得る簡略化された集積回路200の模式図が示されている。実際には、より実際的な集積回路設計として、集積回路200は、ずっと複雑になり得る。しかし、図2は、例示のためには有用である。図2に示すように、集積回路200は、複数制御領域201と、データパス領域203と、メモリ205とを含む。各種の制御領域201、データパス領域203、およびメモリ205は、概して、複数ビットにわたるデータバス207と相互接続される。データパス領域203は、複数のデータパス機能209を含み得る。データパス機能209は、データバス207から利用可能なビットの一部または全てを利用し得る。データパス機能209は、一部の形態の信号またはデータの論理変形がデータバス207を通ることを可能にする複数のセルインスタンス215を含み得る。データパス機能209内のセルインスタンス215は、概して、データパス機能209のデータについて動作する。
【0020】
レイアウトデータベース195のスキーマに表されるように、集積回路200は、複数のインスタンスおよび複数のネットを含む。ネットは、各インスタンスのピンを関連付けることによって、より概略的に言うと、複数のインスタンスの入力および出力を関連付けることによって、複数のインスタンスを相互接続する。
【0021】
図3は、上記の回路概念の様々なレベルのうちの一部を示す、回路設計についての概略的なプロセスのフローチャートである。図3に示すように、HDLファイルまたは他の高レベル機能的記述の形態のレジスタ転送論理(RTL)ファイル301は、コンパイルプロセス303を受ける。コンパイルプロセス303は、典型的には、何らかの形の論理合成を含み、回路の機能記述を、ネットリストファイル304の形態で格納される特定回路インプリメンテーションに変換する。コンパイルプロセス303の一部として、どのようなタイプの設計コンポーネントが利用可能であるか、および、機能的接続性を判定するために必要とされるこれらの設計コンポーネントの特性についての情報を格納するコンポーネントライブラリ306が、概して参照される。このプロセスの段階で、回路設計において用いられるコンポーネントの数を最小限にするため、回路最適化において、いくつかの試みが行われ得る。ネットリストファイル304は、上述したように、概して、目標基準セルライブラリから、特定の論理セルインスタンスを識別し、特定のセルとセルとの接続性を記述する。
【0022】
図3に示す物理設計プロセス309を適用することによって、ネットリストファイル304の論理セルが、位置付けられ、ルーティングされて、レイアウトファイル310が得られる。コンポーネントライブラリ306は、ネットリストファイル304に存在し得るゲートおよび他のコンポーネントのサイズについての情報を得るために、このプロセスにおいて利用される。
【0023】
図3にさらに示されるように、レイアウトファイル310から、物理検証プロセス312が実行され得、例えば、GDSIIまたはCIFフォーマットのマスクファイル315が得られる。マスクファイル315は、製造工場に提供され得るが、製造工場が実際の集積回路を製造することを可能にするのに充分な情報を含む。
【0024】
本明細書中で開示される各種の実施形態において、特定のビアについての設計ルールチェックを選択するために、図3に示す検証プロセス312に関連して用いられ得るプロセスが提供される。図4は、金属末端、包囲、および/または曝露違反を有する可能性が高いビアを選択し、処理するプロセスのフローチャートである。これらのビアは、本明細書中、概して、「潜在的問題を有するビア」と呼ばれる。
【0025】
各種のタイプの問題を有するビアは、図19、20および21を参照しながら説明され得る。金属末端タイプのビアは、図19に示すように、金属ラインの端部に位置する。ビアのフットプリントと、金属ラインが「終端する」端部との間に、ある一定の最短距離が必要とされており、この最短距離は、図19において、C1で示される。ある一定の最短距離は、ビアのフットプリントと、金属の端との間にも必要とされており、この最短距離は、図19において、Cで表される。包囲タイプのビアは、図20に示すように、金属ラインの端部ではないところにあるビアである。包囲タイプのビアは、図20に示すように、金属の両側の端(角ではない)の隣に存在してもよいし、金属の一方の端の隣に位置してもよいし、金属の端部に近くなくてもよい。ビアのフットプリントと金属の端部との間の最短距離(金属末端ビアと金属の端部との間に必要とされる最短距離と同じ距離であり得る)が、概して必要とされており、図20においてCで示される。
【0026】
本明細書中で説明される特定の実施形態において、図21に示されるように、金属ラインの角に位置したビアは、ハイブリットの様態で扱われ得る。例えば、金属末端に隣接したビアのサイドの一つは、金属の端部に配置されたように扱われ得る。一方、金属末端に隣接したビアの他方のサイドは、包囲ビアのように扱われ得る。従って、金属ラインの角におけるこのようなビアは、二つの間隔を空ける必要がある。一つは、最小距離C(ビアのエッジから金属のエッジまで)によって規定され、もう一方は、最小距離C1(ビアのエッジから金属末端の「終端」エッジまで)によって規定される。
【0027】
図4に示されるように、階層型金属末端、包囲および/または曝露チェックに関する好ましいプロセス400、好ましくは後に本明細書中で説明される(および、示される、例えば、図5に関する)技術に従って、物理レイアウトファイル401から潜在的に問題のあるビアを選択するステップ402を含む。ステップ402の後、一つ以上のステップ405、406、407および410が実行され得る。ステップ405では、ビアは、好ましくはさらに本明細書中で述べられる(および、示される、例えば、図6に関する)基準に基づいて、包囲設計ルールチェックとして選択される。ステップ410では、ビアは、好ましくはさらに本明細書中で述べられる基準に従って、曝露設計ルールチェックとして選択される。ステップ406では、ビアは、好ましくは本明細書中でさらに述べられる(および、示される、例えば、図7に関する)基準に基づいて、金属末端設計ルールチェックとして選択される。ステップ407では、設計ルールチェックは、全ての潜在的に問題のあるビアに対して実行され、一方、問題の無いビアに対する設計ルールチェックを好ましくは避ける。
【0028】
図5は、潜在的に問題のあるビアを選択するための好ましいサブプロセス520を示す。サブプロセス520は、金属末端、包囲および/または曝露違反がありそうなビアを選択、および、処理するための好ましいプロセス500と連結している。一局面において、サブプロセス520は、潜在的に問題のあるビアを残して、問題がありそうにないビアにフィルタリングを行うように見え得る。詳細には、サブプロセス520は、金属領域のエッジから特定の最小距離C1内にあるビアのみを選択する。図5に示されるように、問題のあるビアを選択するサブプロセス520は、最初、ステップ503を含む。このステップ503によってどのビアが金属境界に近いかを決定するために、各ビアは、所定の拡張距離だけ各方向に体系的に「拡張」される。この拡張は、図8で図式的に示される。この図では、元のビア800は、拡張されたビア830まで所定の拡張距離C1だけ拡張される。一局面において、所定の拡張距離C1は、金属末端または終点からの選択された最小距離を表す。所定の拡張距離は、例えば、工場での製造に必要な特定の条件に基づいて、設計エンジニアによって選択され得る。
【0029】
次のステップ504では、図8で示される金属領域820は、金属領域820の外に残る拡張したビア830の残差部分840(図9を見よ)のみ残して、拡張したビア830の領域から取り去られる。
【0030】
次のステップ510では、金属領域820の外に残る材料を有する拡張されたビア830が識別される。本実施例では、拡張されたビア830aおよび830bは、影響があるためにステップ510で識別される。一方、潜在的に問題のあるビア830cは無視される。次のステップ511では、潜在的に問題のあるビア830aおよび830bに対する元の大きさが回復される。このことは、任意の様々な方法によって、達成され得る。例えば、ビア830a、830bの各エッジから距離C1を取り去ることによって、拡張されたビア830a、830bから元の大きさへと戻る。あるいは、潜在的に問題のあるビア830aおよび830bの元の大きさは、標準のビアを得るために、後に本明細書中で説明されるように(第二のレイヤの周囲にある、または、第二のレイヤに重なる第一のレイヤの形状の全てを識別する)「geomButtOrOver」機能を適用し、次いで、元のビアを得るために、後に本明細書中で説明されるように(レイヤAとレイヤBとの間の論理AND操作)「geomAND」機能を適用することによって回復され得る。図10および11は、潜在的に問題のある拡張されたビア850、および、元の大きさに戻された潜在的に問題のある拡張されたビア860を示す。この点において、サブプロセス520は、潜在的に問題のあるビアのセットを選択する。このセットの性質は、物理レイアウトファイル401(または、図5で示されるような501)上で実行される確認プロセスの一部として保持される一次ファイル内のテーブル、または、他のデータ構造に格納され得る。
【0031】
図5のステップ530、540、531および532は、図4に表れるステップ405、410、406および407にそれぞれ類似している。
【0032】
図6は、包囲設計ルールチェックに関する潜在的に問題のあるビアを選択するための好ましいサブプロセス620を示す。このサブプロセス620は、金属末端、包囲および/または曝露違反を有するであろうビアの選択および処理に関する好ましい処理600と連結する。図6に示されるように、包囲設計ルールチェックに関する潜在的に問題のあるビアに関するサブプロセス620は、所定の拡張距離Cによって前もって識別され、拡張されたビア865となった潜在的に問題のあるビア860を拡張する第一のステップ605を含む。このステップは、図8から図11にかけて以前に説明された実施例に関して図12で図式的に示される。次のステップ606では、金属領域820は、拡張されたビア865から取り除かれ、図13で示されるような残差部分870となる。次のステップ607では、金属領域を取り除いた後に残った材料を有するビアが識別される。本実施例において、拡張されたビア865bは、ステップ607で識別される。一方、拡張されたビア865aは無視される。ステップ607において、開示ルールに違反する拡張されたビア(すなわち、拡張された回路865b)に関連する残差部分870は、図14に示されるように、最新の金属領域が取り除かれる前に、それらの拡張された大きさへ戻される。次のステップ608で、曝露ルールに違反する拡張されたビアは、図14の拡張されたビア880(すなわち、図12の拡張されたビア865b)の未拡張のバージョンに相当する図15のビア890によって示されたそれらの元の拡張前の大きさに戻される。次のステップ610で、曝露設計ルールに違反するビア(つまり、金属末端にかなり近い)リストは、さらなる処理のための出力である。
【0033】
ステップ640では、包囲設計ルールチェックは、包囲ルール、および、格納されるまたは次のプロセスへ出力される結果に違反するとき、サブプロセス620内で決定される全てのビア上で実行される。しかし、金属末端包囲設計ルールチェックは必要とされず、包囲設計ルールに違反しないビア上で、つまり、金属末端に「あまりに近い」と考えられていないビア上で、好ましくは実行されない。
【0034】
図6のステップ602、625、630および635は、図4に表れるステップ402、406、407および410にそれぞれ類似している。
【0035】
図7は、金属末端設計ルールチェックに関して潜在的に問題のあるビアを選択する好ましいサブプロセス720を示す。このサブプロセスは、金属末端、包囲および/または曝露違反を有すであろうビアを選択および処理する好ましいプロセス700と連結している。図7に示されるように、金属末端設計ルールチェックに関して潜在的に問題のあるビアを選択するサブプロセス720は、潜在的に問題のあるビア860のエッジを拡張する第一のステップ725を含む。(図8から図11にかけて以前に説明された実施例に関して)図16で図式的に示されたように、このビア860は、(例えば、図5で示されたサブプロセスによって)以前に識別され、角の部分を拡張することなく、予め決められた拡張距離C1だけ引き伸ばされ、拡張されたビア905となる。次のステップ726では、金属領域820は、図17に示されるように、拡張されたビア905から取り除かれ、残差部分910となる。ステップ727では、金属領域が取り除かれた後に残る残差部分910を有するビアが識別される。次いで、残差部分は、残差部分910の外エッジ911から、予め決められた拡張距離C1だけ押し出すことによって、矩形形状930を発生し、元のビア860の拡張されたサイドの全てではないが、そのいくつかに対する矩形形状930のセットとなる。次のステップ729では、設計ルールチェックは、これらのビア上で行われ、「L」型のノッチ920のような特定の機能を探索する。このノッチ920は、金属末端設計ルールの違反を示す。金属末端設計ルールに違反する(つまり、金属末端にあまりに近い)ビアのリストは、さらなる処理に関する出力であり得る。
【0036】
図6のステップ702、705、706および715は、図4に現れるステップ402、405、410および415にそれぞれ類似している。
【0037】
一局面において、プロセス400、500、600または700は、物理レイアウトファイルの全てのビア間から問題を引き起こしそうなビアを選択する。次いで、プロセスは、包囲ルールに違反するビア、識別されたビア上の包囲違反に関する設計ルールチェックを実行するビア、潜在的に問題のあるビア上の金属末端違反に関する設計ルールチェックを実行するビア、潜在的に問題のあるビア上の曝露チェックを実行するビアを選択する。
【0038】
本明細書中で説明されたような様々な実施形態は、回路設計に関する物理レイアウトファイルのビアの金属末端、包囲および曝露をチェックするために必要な時間を(例えば、要素100によって)大きく減少することが可能である。
【0039】
このような設計チェックを実行するために必要なメモリは、同様に極めて減少される。金属のエッジから特定距離内にあるビアのみを選択および処理することによって、設計ルールチェックのスピードが、各段に増加される。
【0040】
本発明の一実施形態は、以下のプログラム命令で例示される。このプログラム命令は、カリフォルニア、サン ホセのCadance Design Systems,Inc.から市販されているAssuraTMによって解釈され得るフォーマットで書かれている。
【0041】
【表1】
特定の設計ルールデッキと連結する上記のプログラム命令を実行するために、そして、電子設計プロセスの結果として生成される物理レイアウトファイル上で演算するために、電子設計自動システムの文脈で、コンピュータシステムが構成され得る。
【0042】
説明のために、タスク「geomSize」は、ポリゴンまたは形状をサイジングするために用いられるとする。サイジング関数は、ユニットが正である場合、ポリゴンまたは形状の大きさを増加し、同様に、ユニットが負である場合、ポリゴンまたは形状の大きさを減少する。サイジングの例を以下のとおりである。
v4_9s=geomSize(via4 0.09)
上記の例によれば、via4の形状は、0.09ミクロンだけ外へ成長する。
【0043】
タスク「geomAndNot」は、異なる(すなわち、A−B)表現を表す。例えば、MetalAおよびMetalBは、二つの金属レイヤであり、従って、以下の表現は、任意形状のBと重ならないAの全ての形状を含む結果のレイヤを生じる。
Y=geomAndNot(AB)
タスク「geomAnd」は、単なるANDおよび結合演算である。このタスクは、二つのレイヤに重なる共有の領域を提供する。例えば、次の表現は、領域AおよびBに重なる共通部分の全てを含む結果のレイヤYを生む。
Y=geomAND(AB)
タスク「geomButtOrOver」は、第2のレイヤ(例えば、レイヤB)と隣接するか、または重なる第1のレイヤ(例えば、レイヤA)の形状全てを識別する。例えば、以下の表現は、レイヤBの形状に接触するか、または重なるレイヤAの形状全てを識別する結果として生じるレイヤYを生成する:
Y=geomButtOrOver(AB)
「drc」タスクは、物理レイアウトファイルの設計ルール整合性をチェックするために利用され得る設計ルールチェック機能(design rule checking function)である。包囲設計ルールチェックは、第2のレイヤ(例えば、レイヤA)上の形状によって第1のレイヤ(例えば、レイヤB)の形状の包囲を測定する。この測定は、レイヤA上の形状の内接端部(inside−facing edge)とレイヤB上の形状の外接端部(outside−facing edge)との間の距離を表示する。言い換えれば、包囲設計ルールチェックは、レイヤAがレイヤBを封入するか否か、ならびに、レイヤAがどれくらいレイヤBを封入しているかを決定する。例えば、以下の表現は、0より大きく4未満の封入限界によって、レイヤAの形状全ておよびレイヤB上の包囲形状に対してチェックする:
Y=drc(レイヤA レイヤB0<enc<4)
上述のプログラミング命令のライン1〜4の実行は、設計ルールデッキに組み込まれる場合、図5に示されるステップによって一般的に、通常、コンピュータシステムに、物理レイアウトファイルから、問題を引き起こすようなビアをフィルタリングさせる。ライン5〜8は、図6に記載されたステップによって一般的に、包囲ルールに違反する上記のビアを選択する。ライン9は、ライン8の出力の包囲違反についての設計ルールチェック(DRC)を実行する(例えば、図6のステップ640によって示唆されるように)。ライン10は、ライン8で実行される設計ルールチェックの結果を出力する。ライン11〜14は、図7に記載されたステップによって一般的に、ライン5の出力上の金属末端違反についての設計ルールチェック(DRC)を実行する。ライン15は、ライン11〜14において実行される設計ルールチェックの結果を出力する。ライン16は、ライン8の出力上の曝露チェックを実行し、ライン17は、この結果を出力する。
【0044】
さらに詳細に、上述のプログラムのライン1〜4は、さらに詳細な図5のサブプロセス520に関して最初に議論されるように、包囲、金属末端および/または曝露違反を有するようなビアを選択する。プログラムのライン1〜4は、金属領域820(図8参照)の端部の、一定かつ所定の距離、C1、内にあるこれらのビアのみを選択する。ライン1は、距離C1によって全てのビア800の外部端部を拡張させる。ライン2は、拡張されたビア830から金属820の領域を取り去り、金属領域820の外部にある拡張されたビア830の上記の部分840(図9参照)のみを残す。ライン3は、金属領域820を取り去った後に残っている材料を有するこれらのビア830a、830bを識別しながら、取り去った後に残っているいかなる材料も有さないビア(ビア830c等)を無視する。これは、次いで、金属領域の除去860前に、上記ビアを拡張された寸法に変える。ライン4は、上記ビア830a、830bをこれらの元の、拡張されていない、サイズに変える。
【0045】
ライン5〜8は、包囲設計ルールチェックを提供する。ライン5は、図12に示されるように、距離Cにより、選択されたビア860の外部端部を拡張する。ライン6は、図13に示されるように、拡張されたビアから金属領域820を取り去る。ライン7は、金属領域を取り去った後の材料残部870を有するこれらの拡張されたビア865を識別し、図14に示されるように、金属領域を取り去る前に、拡張された寸法にこれらのビアを変える。ライン8は、図15に示されるように、これらのビアをこれらの元の、拡張されていない、サイズに変える。ライン9は、包囲ルールに違反するこれらのビアについての設計ルールチェックを行う。ライン10は、設計ルールチェックの結果を出力する。
【0046】
ライン11〜15は、金属末端部チェックを実行する。ライン11は、潜在的に問題であるビアの外部端部を距離C1だけ拡張させる(ライン4によって識別されるように)。しかし、前回の拡張と異なって、図16に示されるように、ライン11は、角を拡張させることなく、端部ラインを直線状に拡張するに過ぎない。ライン12は、図17に示されるように、金属領域820を拡張されたビア905から取り去る。ライン13は、金属領域を取り去った後に残っている部分910を有するこれらの拡張されたビア905を識別し、図18に示されるように、これらの最も外側の端部を距離C1だけ内部に拡張する。ライン14は、「L」形状ノッチ920(図18参照)等の、独特の特徴部(金属末端部ルールの違反を示す)を識別するために、これらのビアの設計ルールチェックを行う。ライン15は、金属末端部チェックプロセスの結果を出力する。
【0047】
ライン16および17は、曝露チェックを実行する。ライン16は、曝露ルールに違反するビアから(すなわち、ライン8からの出力)曝露するビアにチェックする。ライン17は、曝露設計ルールチェックの結果を出力する。
【0048】
「geomSize」、「「geomAndNot」、「geomButtOrOver」および「geomAND」タスクの機能を実行する多くの等価な方法は、基礎的な機能性を変えることなく、または、本明細書中に記載された潜在的に問題であるビアを選択し、処理する方法およびシステム全体の原理から逸脱することなく、実行され得る。同様に、他のタイプの判断基準は、本明細書中に新規の原理から逸脱することなく、記載されたビアが接続される金属ワイヤおよび特徴部の境界または端部に対する物理レイアウトファイルのビアの近接度を判定する同一または類似の原理を基礎として、潜在的に問題であるビアを選択するために用いられ得る。
【0049】
本発明の好適な実施形態が本明細書中に記載される一方で、本発明の概念および範囲内にある多くの変形が可能である。このような変形は、明細書および図面を調べれば、当業者には明らかである。したがって、本発明は、特許請求の範囲の意図および範囲以外には、限定されない。
【図面の簡単な説明】
【図1】図1は、本明細書中に記載されるような本発明の多様な実施形態に関して使用され得るコントロールシステムの図である。
【図2】図2は、図1に示されるようなコントロールシステムを用いて引き起こされ得るような簡単な集積回路の図である。
【図3】図3は、回路設計の一般的なプロセスフローの図であり、回路概念の多様なレベルを示す。
【図4】図4は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図である。
【図5】図5は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図であり、一般的に図4のプロセスによって、潜在的に問題のあるビアを選択する特有のステップを示す。
【図6】図6は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図であり、一般的に図4のプロセスによって、包囲設計ルールチェックの潜在的に問題のあるビアを選択する特有のステップを示す。
【図7】図7は、本明細書中に記載されるような好適な金属末端、包囲、および曝露チェックするプロセスによるプロセスフロー図であり、一般的に図4のプロセスによって、金属末端設計ルールチェックの潜在的に問題のあるビアを選択する特有のステップを示す。
【図8】図8は、距離C1によって拡張されるビアと共に、物理レイアウト設計の例示の部分を示す図である。
【図9】図9は、金属領域除去と共に、図8の拡張されたビアを示す図である。
【図10】図10は、図8から選択された問題のあるビアのみを示す図であり、金属領域の除去の前に拡張された寸法に戻される。
【図11】図11は、図8から選択された問題のあるビアのみを示す図であり、それらの元のサイズに戻される。
【図12】図12は、金属領域と共に図8から選択された問題のあるビアのみを示す図であり、ここでビアは別の拡張距離によって再び拡張される。
【図13】図13は、金属領域除去と共に、図12の問題のある包囲ビアのうち1つのみを示す図である。
【図14】図14は、図13の同様に選択された包囲ビアを示す図であり、金属領域の除去の前に拡張された寸法に戻される。
【図15】図15は、図13の同様に選択された包囲ビアを示す図であり、元のサイズに拡張された寸法に戻される。
【図16】図16は、距離C1によってのみ拡張されたビアの端部と共に、図8からの選択された問題のあるビアを示す図である。
【図17】図17は、距離C1によってのみ拡張されたビアの端部と共に、および金属領域除去と共に、図8からの選択された問題のあるビアを示す図である。
【図18】図18は、距離C1によってのみ拡張されたビアの端部と共に、および金属領域除去と共に、および元の位置の方へ拡張された端部と共に、図8からの選択された問題のあるビアを示す図である。
【図19】図19は、金属ラインまたは金属領域に関連のあるビアの図であり、ビアと金属の端部との間の例示の最小距離を示す。
【図20】図20は、金属ラインまたは金属領域に関連のあるビアの図であり、ビアと金属の端部との間の例示の最小距離を示す。
【図21】図21は、金属ラインまたは金属領域に関連のあるビアの図であり、ビアと金属の端部との間の例示の最小距離を示す。
Claims (21)
- 電子設計自動システムにおいて、物理レイアウトファイル上で設計ルールチェックを実行するための方法であって、
回路設計の物理レイアウトファイルを受け取るステップであって、該物理レイアウトファイルは、金属レイヤおよびビアを含む該回路設計の物理レイアウト図を含む、ステップと、
設計ルールチェックを行うための該物理レイアウト図のビアの中からビアのサブセットを識別するステップと、
該ビア金属ライン端との間の隙間の距離によって該サブセットの該ビアを拡張するステップと、
該拡張されたビアの領域を選択し、該金属ラインを選択しないように、該拡張されたビアおよび該金属領域に論理「And Not」機能を適用することによって、該拡張されたビアによって被われた金属の該拡張されたビア領域から差し引くステップと、
該ビアのサブセット上の設計ルールチェックを実行するステップと
を包含する、方法。 - 前記設計ルールチェックを実行するための物理レイアウト図におけるすべてのビアの中から問題がありそうなビアのサブセットを識別するステップは、金属の境界の所定の最小距離内で該物理レイアウト図におけるビアを識別するステップを包含する、請求項1に記載の方法。
- 前記金属の境界の所定の最小距離内で物理レイアウト図におけるビアを識別するステップは、
該所定の最小距離だけ該物理レイアウト図における該ビアのすべてを拡張し、該ビアに対応する複数の拡張されたビアを生成するステップと、
該拡張されたビアと該ビアが接続する金属ワイヤまたは金属領域とを比較することにより、金属末端違反、包囲違反、または曝露違反が存在するか否かを判定するステップと
を包含する、請求項2に記載の方法。 - 電子設計自動システムにおいて、金属末端、包囲、および曝露設計ルールチェックのうちの1つ以上が実行される問題のありそうなビアを選択する方法であって、
回路設計の物理レイアウト図の説明を含む物理レイアウトファイルを受け取るステップであって、該物理レイアウト図は、複数のビアを含む、ステップと、
ビアと金属ライン末端部との間の隙間に必要な第1の最小距離またはビアと金属端部との間の隙間に必要な第2の最小距離だけ該物理レイアウト図における該ビアを拡張し、どちらの距離の方が大きくても、それにより複数の拡張されたビアを生成するステップと、
該拡張されたビアにより被われた金属領域を該拡張されたビアから差し引くステップと、
設計ルールチェックを問題のありそうなビアとして選択するか、または該拡張されたビアにより被われた金属領域の差し引き後、残りの領域で拡張したビアに対応するビアをさらにスクリーニングするステップと
を包含する、方法。 - 前記拡張されたビアにより被われた金属領域を拡張されたビアから差し引くステップは、該拡張されたビアであってかつ該金属領域ではない領域を選択するように、該拡張されたビアおよび該金属領域に論理の“And Not”機能を適用するステップを包含する、請求項4に記載の方法。
- 前記拡張されたビアは、設計ルールチェック処理の前にその元の形状のサイズに戻される、請求項4に記載の方法。
- 前記問題のありそうなビアに設計ルールチェックを実行するステップをさらに包含する、請求項4に記載の方法。
- ビアと金属包囲の端部との間の隙間に必要な第3の最小距離だけ前記問題のありそうなビアを拡張し、それにより第2の複数の拡張されたビアを生成するステップと、
該第2の複数の拡張されたビアにより被われた金属領域を該第2の複数の拡張されたビアから差し引くステップと、
包囲ルール違反に関する設計ルールチェックを問題のありそうなビアとして選択するステップであって、それらのビアのみが、該第2の複数の拡張されたビアにより被われた該金属領域の差し引き後、残りの領域を有する該第2の複数の拡張されたビアに対応する、ステップと
をさらに包含する、請求項4に記載の方法。 - 前記包囲ルール違反に関する設計ルールチェックで問題のありそうなビアは、包囲ルール違反に関する設計ルールチェックプロセスの前にその元の形状のサイズに戻される、請求項8に記載の方法。
- ビアと金属末端の端部との間の隙間に必要な第3の最小距離だけ前記問題のありそうなビアを拡張し、それにより第2の複数の拡張されたビアを生成するステップと、
該第2の複数の拡張されたビアにより被われた金属領域を該第2の複数の拡張されたビアから差し引くステップと、
金属末端ルール違反に関する設計ルールチェックを問題のありそうなビアとして選択するステップであって、それらのビアのみが、該第2の複数の拡張されたビアにより被われた該金属領域の差し引き後、残りの領域を有する該第2の複数の拡張されたビアに対応する、ステップと
をさらに包含する、請求項4に記載の方法。 - 前記包囲ルール違反に関する設計ルールチェックで問題のありそうなビアは、金属末端ルール違反に関する設計ルールチェックプロセスの前にその元の形状のサイズに戻される、請求項10に記載の方法。
- 電子設計自動システムにおいて、金属末端、包囲、および曝露設計ルールチェックのうちの1つ以上が実行される問題のありそうなビアを選択する命令の1つ以上のシーケンスを格納するコンピュータ読み出し可能媒体であって、該命令の1つ以上のシーケンスにより、1つ以上のプロセッサが複数の動作を実行し、該動作は、
回路設計の物理レイアウト図の説明を含む物理レイアウトファイルを受け取る動作であって、該物理レイアウト図は、複数のビアを含む、動作と、
ビアと金属ライン末端部との間の隙間に必要な第1の最小距離またはビアと金属端部との間の隙間に必要な第2の最小距離だけ該物理レイアウト図における該ビアを拡張し、どちらの距離の方が大きくても、それにより複数の拡張されたビアを生成する動作と、
該拡張されたビアにより被われた金属領域を該拡張されたビアから差し引く動作と、
設計ルールチェックを問題のありそうなビアとして選択するか、または該拡張されたビアにより被われた金属領域の差し引き後、残りの領域で拡張したビアに対応するビアをさらにスクリーニングする動作と
を包含する、コンピュータ読み出し可能媒体。 - 前記拡張されたビアにより被われた金属領域を拡張されたビアから差し引く動作は、該拡張されたビアであってかつ該金属領域ではない領域を選択するように、該拡張されたビアおよび該金属領域に論理の“And Not”機能を適用する動作を包含する、請求項12に記載のコンピュータ読み出し可能媒体。
- 前記拡張されたビアは、設計ルールチェック処理の前にその元の形状のサイズに戻される、請求項12に記載のコンピュータ読み出し可能媒体。
- 前記問題のありそうなビアに設計ルールチェックを実行する動作をさらに包含する、請求項12に記載のコンピュータ読み出し可能媒体。
- ビアと金属包囲の端部との間の隙間に必要な第3の最小距離だけ前記問題のありそうなビアを拡張し、それにより第2の複数の拡張されたビアを生成する動作と、
該第2の複数の拡張されたビアにより被われた金属領域を該第2の複数の拡張されたビアから差し引く動作と、
包囲ルール違反に関する設計ルールチェックを問題のありそうなビアとして選択する動作であって、それらのビアのみが、該第2の複数の拡張されたビアにより被われた該金属領域の差し引き後、残りの領域を有する該第2の複数の拡張されたビアに対応する、手段と
をさらに包含する、請求項12に記載のコンピュータ読み出し可能媒体。 - 前記包囲ルール違反に関する設計ルールチェックで問題のありそうなビアは、包囲ルール違反に関する設計ルールチェックプロセスの前にその元の形状のサイズに戻される、請求項16に記載のコンピュータ読み出し可能媒体。
- ビアと金属末端の端部との間の隙間に必要な第3の最小距離だけ前記問題のありそうなビアを拡張し、それにより第2の複数の拡張されたビアを生成する動作と、
該第2の複数の拡張されたビアにより被われた金属領域を該第2の複数の拡張されたビアから差し引く動作と、
金属末端ルール違反に関する設計ルールチェックを問題のありそうなビアとして選択する動作であって、それらのビアのみが、該第2の複数の拡張されたビアにより被われた該金属領域の差し引き後、残りの領域を有する該第2の複数の拡張されたビアに対応する、動作と
をさらに包含する、請求項12に記載のコンピュータ読み出し可能媒体。 - 前記包囲ルール違反に関する設計ルールチェックで問題のありそうなビアは、金属末端ルール違反に関する設計ルールチェックプロセスの前にその元の形状のサイズに戻される、請求項18に記載のコンピュータ読み出し可能媒体。
- 複数のビアと回路設計の金属領域との間の接続性を特定する物理レイアウトファイルが設計ルールチェックプロセスのために受け取られる電子設計自動システムにおいて、すべての該ビアのうち問題のありそうなビアのセットを選択するための方法であって、
該ビアが接続される該金属領域の金属の境界の所定の最小距離内でビアを識別するステップと、
金属末端違反、包囲違反、および曝露違反のうちの1つ以上について識別されたビアのみに設計ルールチェックを実行するステップと
を包含する、方法。 - 前記ビアが接続される金属領域の金属の境界の所定の最小距離内でビアを識別するステップは、
該所定の最小距離だけ物理レイアウト図におけるすべての該ビアを拡張し、該ビアに対応する複数の拡張されたビアを生成するステップと、
該拡張されたビアから該金属領域を差し引くステップと、
該差し引きの後、該金属領域の任意の部分が残るか否かを判定するステップと
を包含する、請求項20に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/609,459 US6536023B1 (en) | 2000-07-03 | 2000-07-03 | Method and system for hierarchical metal-end, enclosure and exposure checking |
PCT/US2001/019733 WO2002003261A1 (en) | 2000-07-03 | 2001-06-20 | Method and system for hierarchical metal-end, enclosure and exposure checking |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004502259A true JP2004502259A (ja) | 2004-01-22 |
Family
ID=24440885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002507262A Pending JP2004502259A (ja) | 2000-07-03 | 2001-06-20 | 階層型金属末端、包囲、および曝露をチェックする方法およびシステム |
Country Status (7)
Country | Link |
---|---|
US (1) | US6536023B1 (ja) |
EP (1) | EP1305744B1 (ja) |
JP (1) | JP2004502259A (ja) |
AT (1) | ATE316267T1 (ja) |
AU (1) | AU2001271353A1 (ja) |
DE (1) | DE60116769T2 (ja) |
WO (1) | WO2002003261A1 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19900980C1 (de) * | 1999-01-13 | 2000-05-11 | Siemens Ag | Verfahren und Anordnung zur Verifikation eines Layouts einer integrierten Schaltung mit Hilfe eines Rechners sowie dessen Anwendung zur Herstellung einer integrierten Schaltung |
US7080329B1 (en) * | 2002-01-22 | 2006-07-18 | Cadence Design Systems, Inc. | Method and apparatus for identifying optimized via locations |
US6892368B2 (en) * | 2002-06-10 | 2005-05-10 | Sun Microsystems, Inc. | Patching technique for correction of minimum area and jog design rule violations |
US6922822B2 (en) * | 2002-07-19 | 2005-07-26 | Hewlett-Packard Development Company, L.P. | Verifying proximity of ground vias to signal vias in an integrated circuit |
US6871332B2 (en) * | 2002-07-23 | 2005-03-22 | Sun Microsystems, Inc. | Structure and method for separating geometries in a design layout into multi-wide object classes |
US6792586B2 (en) * | 2002-07-23 | 2004-09-14 | Sun Microsystems, Inc. | Correction of spacing violations between wide class objects of dummy geometries |
US6895568B2 (en) | 2002-09-30 | 2005-05-17 | Sun Microsystems, Inc. | Correction of spacing violations between pure fill via areas in a multi-wide object class design layout |
US6832360B2 (en) * | 2002-09-30 | 2004-12-14 | Sun Microsystems, Inc. | Pure fill via area extraction in a multi-wide object class design layout |
US6804808B2 (en) * | 2002-09-30 | 2004-10-12 | Sun Microsystems, Inc. | Redundant via rule check in a multi-wide object class design layout |
US6883149B2 (en) * | 2002-09-30 | 2005-04-19 | Sun Microsystems, Inc. | Via enclosure rule check in a multi-wide object class design layout |
JP3924550B2 (ja) * | 2003-05-22 | 2007-06-06 | Necエレクトロニクス株式会社 | 半導体装置及びレイアウト装置及び方法並びにプログラム |
US7007258B2 (en) * | 2003-06-13 | 2006-02-28 | Sun Microsystems, Inc. | Method, apparatus, and computer program product for generation of a via array within a fill area of a design layout |
JP4296051B2 (ja) * | 2003-07-23 | 2009-07-15 | 株式会社リコー | 半導体集積回路装置 |
US7096447B1 (en) | 2003-10-15 | 2006-08-22 | Sun Microsystems, Inc. | Method and apparatus for efficiently locating and automatically correcting certain violations in a complex existing circuit layout |
US7448012B1 (en) | 2004-04-21 | 2008-11-04 | Qi-De Qian | Methods and system for improving integrated circuit layout |
US20060030965A1 (en) * | 2004-07-20 | 2006-02-09 | Williams Brett H | Method and apparatus for automating VLSI modifications made after routing has been performed |
US20060090144A1 (en) * | 2004-10-27 | 2006-04-27 | Lsi Logic Corporation | Method of automating place and route corrections for an integrated circuit design from physical design validation |
CN100461169C (zh) * | 2005-06-28 | 2009-02-11 | 华为技术有限公司 | 一种硬件设计经验规则查询系统 |
US7380227B1 (en) * | 2005-10-28 | 2008-05-27 | Sun Microsystems, Inc. | Automated correction of asymmetric enclosure rule violations in a design layout |
US7698676B1 (en) * | 2005-11-10 | 2010-04-13 | Qi-De Qian | Method and system for improving manufacturability of integrated devices |
JP2007164536A (ja) | 2005-12-14 | 2007-06-28 | Toshiba Corp | 半導体集積回路の設計支援システム、半導体集積回路の設計方法、半導体集積回路の設計支援プログラム及び半導体集積回路の製造方法 |
US7519929B2 (en) * | 2006-06-23 | 2009-04-14 | Sun Microsystems, Inc. | Method and computer program product for interlayer connection of arbitrarily complex shapes under asymmetric via enclosure rules |
US8987916B2 (en) | 2011-11-28 | 2015-03-24 | Freescale Semiconductor, Inc. | Methods and apparatus to improve reliability of isolated vias |
US8656336B2 (en) * | 2012-02-27 | 2014-02-18 | Globalfoundries Inc. | Pattern based method for identifying design for manufacturing improvement in a semiconductor device |
CN103426866B (zh) * | 2012-05-17 | 2016-08-31 | 中芯国际集成电路制造(上海)有限公司 | 围栏间隔的设计规则测试电路 |
US8703507B1 (en) | 2012-09-28 | 2014-04-22 | Freescale Semiconductor, Inc. | Method and apparatus to improve reliability of vias |
CN103164568B (zh) * | 2012-12-04 | 2018-03-20 | 天津蓝海微科技有限公司 | 版图验证规则中金属层的测试向量针对不同工艺的可复用生成方法 |
US8984449B1 (en) * | 2013-09-16 | 2015-03-17 | Oracle International Corporation | Dynamically generating jog patches for jog violations |
US9747404B2 (en) | 2015-07-23 | 2017-08-29 | United Microelectronics Corp. | Method for optimizing an integrated circuit layout design |
US9885951B2 (en) | 2015-12-11 | 2018-02-06 | International Business Machines Corporation | Structure design generation for fixing metal tip-to-tip across cell boundary |
CN115577672B (zh) * | 2022-11-17 | 2023-03-14 | 深圳鸿芯微纳技术有限公司 | 通孔单元的确定方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05181934A (ja) * | 1991-12-10 | 1993-07-23 | Fujitsu Ltd | 半導体装置のレイアウトデータ検証方法 |
JPH06125007A (ja) * | 1992-10-12 | 1994-05-06 | Fujitsu Ltd | 半導体装置のレイアウトデータ検証方法 |
JPH0721239A (ja) * | 1993-06-22 | 1995-01-24 | Nec Corp | デザインルールチェック実行装置 |
JPH07153845A (ja) * | 1993-08-13 | 1995-06-16 | Harris Corp | 集積回路構造の製造方法 |
JPH08235232A (ja) * | 1995-02-24 | 1996-09-13 | Matsushita Electric Ind Co Ltd | レイアウトの検証方法およびその装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5629861A (en) * | 1995-05-19 | 1997-05-13 | International Business Machines Corporation | Nested maximum space computation and efficient generation of nested shape complementation |
US5812415A (en) * | 1996-04-05 | 1998-09-22 | Cadence Design Systems, Inc. | Method and apparatus for enhancing performance of design verification systems |
US6275971B1 (en) * | 1997-09-30 | 2001-08-14 | Philips Electronics North America Corporation | Methods and apparatus for design rule checking |
-
2000
- 2000-07-03 US US09/609,459 patent/US6536023B1/en not_active Expired - Lifetime
-
2001
- 2001-06-20 JP JP2002507262A patent/JP2004502259A/ja active Pending
- 2001-06-20 WO PCT/US2001/019733 patent/WO2002003261A1/en active IP Right Grant
- 2001-06-20 DE DE60116769T patent/DE60116769T2/de not_active Expired - Lifetime
- 2001-06-20 AU AU2001271353A patent/AU2001271353A1/en not_active Abandoned
- 2001-06-20 AT AT01950354T patent/ATE316267T1/de not_active IP Right Cessation
- 2001-06-20 EP EP01950354A patent/EP1305744B1/en not_active Expired - Lifetime
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05181934A (ja) * | 1991-12-10 | 1993-07-23 | Fujitsu Ltd | 半導体装置のレイアウトデータ検証方法 |
JPH06125007A (ja) * | 1992-10-12 | 1994-05-06 | Fujitsu Ltd | 半導体装置のレイアウトデータ検証方法 |
JPH0721239A (ja) * | 1993-06-22 | 1995-01-24 | Nec Corp | デザインルールチェック実行装置 |
JPH07153845A (ja) * | 1993-08-13 | 1995-06-16 | Harris Corp | 集積回路構造の製造方法 |
US5581475A (en) * | 1993-08-13 | 1996-12-03 | Harris Corporation | Method for interactively tailoring topography of integrated circuit layout in accordance with electromigration model-based minimum width metal and contact/via rules |
JPH08235232A (ja) * | 1995-02-24 | 1996-09-13 | Matsushita Electric Ind Co Ltd | レイアウトの検証方法およびその装置 |
Also Published As
Publication number | Publication date |
---|---|
DE60116769D1 (de) | 2006-04-06 |
EP1305744A1 (en) | 2003-05-02 |
WO2002003261A1 (en) | 2002-01-10 |
EP1305744B1 (en) | 2006-01-18 |
ATE316267T1 (de) | 2006-02-15 |
DE60116769T2 (de) | 2006-11-02 |
US6536023B1 (en) | 2003-03-18 |
EP1305744A4 (en) | 2004-04-14 |
AU2001271353A1 (en) | 2002-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004502259A (ja) | 階層型金属末端、包囲、および曝露をチェックする方法およびシステム | |
CN107918694B (zh) | 用于减少集成电路上的延迟的方法 | |
US6446246B1 (en) | Method and apparatus for detail routing using obstacle carving around terminals | |
US7890909B2 (en) | Automatic block composition tool for composing custom blocks having non-standard library cells in an integrated circuit design flow | |
US8984465B1 (en) | Methods, systems, and articles of manufacture for automatically assigning track patterns to regions for physical implementation of an electronic design | |
US8219959B2 (en) | Generating integrated circuit floorplan layouts | |
US8234612B2 (en) | Cone-aware spare cell placement using hypergraph connectivity analysis | |
US9785740B2 (en) | Computer implemented system and method for modifying a layout of standard cells defining a circuit component | |
TW201514742A (zh) | 產生積體電路佈局的方法 | |
JP2006301961A (ja) | 半導体集積回路の自動フロアプラン手法 | |
US8281269B2 (en) | Method of semiconductor integrated circuit device and program | |
US9047434B2 (en) | Clustering for processing of circuit design data | |
US11694016B2 (en) | Fast topology bus router for interconnect planning | |
JPH06274568A (ja) | 階層図形データの展開方法 | |
US7418675B2 (en) | System and method for reducing the power consumption of clock systems | |
US11301614B1 (en) | Feasibility analysis of engineering change orders | |
US9454632B1 (en) | Context specific spare cell determination during physical design | |
US10878164B1 (en) | Methods, systems, and computer program product for interactively probing a multi-fabric electronic design | |
US9293450B2 (en) | Synthesis of complex cells | |
US9177090B1 (en) | In-hierarchy circuit analysis and modification for circuit instances | |
JP4668974B2 (ja) | 半導体装置の設計方法、半導体装置設計システム及びコンピュータプログラム | |
JP5059657B2 (ja) | マクロ内端子配線を考慮したネットリストによって信号の遅延時間を予測する設計方法、及び、プログラム | |
JP2006338090A (ja) | 半導体集積回路の設計方法および設計装置 | |
Lienig et al. | Methodologies for Physical Design: Models, Styles, Tasks, and Flows | |
US7240302B1 (en) | Method and apparatus for relocating elements in a floorplan editor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080605 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100430 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100730 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100902 |