(57)【要約】  集積回路（ＩＣ）の電力回路網内の電圧降下の最小化を提供する一方でスタック・バイアを自動的に削減する方法。この方法では、電力回路網のあらゆる処理可能スタック・バイア（すなわち、接続必須スタック・バイアと非密集スタック・バイア以外）の除去が可能である。電力回路網の電圧降下目標値が越えられた場合には、少なくとも、ＩＣ上の最大電圧降下の重大度の大きさがアップデートされる。このアップデートの後、電圧降下改善スタック・バイアのグループが、電力回路網に復帰させられる。電圧降下目標値が越えられたかどうかを決定するステップと、１以上の問題部位の電圧降下の重大度をアップデートするステップと、追加的なスタック・バイアのグループを復帰させるステップは、電圧降下目標値が越えられなくなるまで繰り返される。【選択図】  図３
2011511390.tif 000002
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）の電力回路網内のスタック・バイアを自動的に削減する方法であって、
ＩＣ設計、前記ＩＣ設計の電力回路網、前記電力回路網の電圧降下目標値、及び、前記ＩＣ設計と前記電力回路網に基づく密集度情報を決定する過程、
前記密集度情報に基づいて前記電力回路網の接続必須スタック・バイアと非密集スタック・バイアのいずれをも特定する過程であって、該接続必須スタック・バイアとは電力接続性が必要なスタック・バイアであり、非密集スタック・バイアとは前記ＩＣの非密集領域内のスタック・バイアである、該過程、
前記電力回路網の処理可能スタック・バイアのいずれをも除去する過程であって、処理可能スタック・バイアとは接続必須スタック・バイアと非密集スタック・バイア以外のスタック・バイアである、該過程、
前記電力回路網内において前記電圧降下目標値が越えられたかどうかを決定する過程、
前記電圧降下目標値が越えられた時、前記ＩＣ上の少なくとも最大電圧降下の重大度の大きさをアップデートする過程、
アップデートの後、前記処理可能スタック・バイアの部分集合である電圧降下改善スタック・バイアの１つのセットを前記電力回路網に復帰する過程、
前記電圧降下目標値が越えられない、となるまで、決定する過程とアップデートする過程と復帰する過程を繰り返す過程、
接続必須スタック・バイアと非密集スタック・バイアと電圧降下改善スタック・バイア以外の電力回路網のいずれのスタック・バイアも除去する過程、及び
削減されたスタック・バイアを有する電力回路網を出力する過程を含むことを特徴とする方法。
【請求項２】
除去する過程の後に密集度検証のための全体的なルーティングを実行する過程をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
除去する過程の後に電圧降下と接続性検証のための電力回路網分析を実行する過程をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
復帰する過程が、電圧応答度と密集度コストに基づいて前記処理可能スタック・バイアを分類する過程を含むことを特徴とする請求項１に記載の方法。
【請求項５】
分類する過程が、密集度コストで割った前記電圧応答度の比を決定する過程を含むことを特徴とする請求項４に記載の方法。
【請求項６】
各処理可能スタック・バイアの前記電圧応答度は、処理可能スタック・バイアの前記電力回路網への復帰による前記電力回路網の少なくとも１つの電圧降下問題部位への影響を解析することによって決定されることを特徴とする請求項５に記載の方法。
【請求項７】
各処理可能スタック・バイアの前記密集度は、前記処理可能スタック・バイアに関連するオーバーフローを解析することによって決定されることを特徴とする請求項６に記載の方法。
【請求項８】
分類された処理可能スタック・バイアをグループに分け、前記目標電圧が越えられたかどうかを決定する過程にもどる前に、１つのグループのみを加え戻す過程をさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記１つのグループは、最高の比を有する残されたグループであることを特徴とする請求項７に記載の方法。
【請求項１０】
各グループは、実質的に同一である結合された密集度コストを有することを特徴とする請求項９に記載の方法。
【請求項１１】
前記ＩＣ設計の密集による問題がスタック・バイアによるものかどうかを決定する過程をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１２】
全スタック・バイアの総計密集度ウエイトを計算する過程、
前記処理可能スタック・バイアの密集度ウエイトの合計を計算する過程、
前記合計を前記総計密集度ウエイトと比較する過程、
前記ＩＣ上の密集状態がスタック・バイアによるものかどうか及びスタック・バイアの除去が価値があるかどうかを決定する過程をさらに含むことを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、集積回路（ＩＣ）の電力回路網に関し、特に、電圧降下目標値が越えられないように保持し且つ初期電力回路網の接続性を維持しつつ電力回路網スタック・バイアを除去することによってＩＣの密集度を削減する方法に関する。
【背景技術】
【０００２】
産業用ＩＣ設計での電力供給電圧レベルは、低電力エレクトロニクスを目指す継続的な傾向の故に下がり続けているので、電力（又は接地）回路網内の電圧降下によって生ずるノイズが益々重要になっている。結果として、電圧降下を最小とするため高密度電力回路網が必要とされる。この高密度電力回路網は、最上位電力回路網から標準セル・レイルまでその全経路に作成される多数のスタック・バイアを含む。この明細書にて使用のように、スタック・バイアとは、隣接しない金属層内にあり且つ介在する接続金属線を有しない２つの金属線を接続する複数個のバイアと定義される。例えば、図１は、３つのバイア１０１、１０２、及び１０３を含む例示的なスタック・バイア１００を図解する。スタック・バイア１００は、金属線１０４と１０５（これらは別の金属層内に形成される）を接続しており、金属線を接続する介在部分を有していない（すなわち、バイア１０１と１０２の間の境界は金属線への接続を有しておらず、同様に、バイア１０２と１０３の間の境界も金属線への接続を有していない。）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７，３４６，８６９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
不都合なことに、スタック・バイアの使用は、ＩＣ上に密集状態を引き起こす。例えば、図２は、複数個のバイア２０１を含む電力回路網２００の１つのバイア層の例示的な上面を図解しており（図解目的のため３つのみ符号付けしている）、その全てがスタック・バイアの位置を表している。実際の電力回路網では、非常に多数のバイアが含まれており、ＩＣ設計（バイア層との関係の単純化のために図示しない）のコンポーネントに沿って容易に密集状態を生ずる。この密集状態を削減するための従来の方法は、明白な不都合を有していた。
【０００５】
例えば、ＩＣのダイ寸法の増加により密集度を削減可能ではあるが、しかし、これは、高額のコストと長いターンアラウンド時間を招くこととなる。ロウ／カラムのＮ個おき（ここでのＮは１よりも大きな整数である）のスタック・バイアの一律除去によっても密集度の削減は可能であるが、しかし、これは、比較的大きな電圧降下と電力回路網接続性の喪失を招くこととなる。通常のバイアをカットの数の少ない比較的小さなバイアで置き換えても密集度の削減は可能であるが、しかし、これは、比較的大きな電圧降下と比較的大きな電子移動を招くこととなる（バイアは、１以上のカット（すなわち、孔）を有しており、この中には２つの金属線を接続するべく金属が充填されていることをご留意願います。通常、金属線の幅が広くなるのに伴い、バイアにそれだけ多い数のカットが生じ、これにより、必然的に１つの「バイア」からバイア・アレイが形成される。カット数の減少は、不都合にも、そのようなバイアの抵抗を増加することとなる）。密集問題部位でスタック・バイアを手操作によって除去しても密集度の削減は可能であるが、しかし、これは、比較的大きな電圧降下と電力回路網接続性の喪失と比較的長いターンアラウンド時間を招いてしまう。
【０００６】
したがって、電圧降下要求に合致し、電力回路網接続性の無喪失を保証し、且つ、ターンアラウンド時間を最小化する一方で、ＩＣ上の密集度を削減する技術に対する需要が起こっている。
【課題を解決するための手段】
【０００７】
集積回路（ＩＣ）の電力回路網内のスタック・バイアを自動的に削減する方法を提供する。便宜なことに、この方法は、また、電力回路網接続性を維持し、且つ、電力回路網内の電圧降下を最小化する。この方法において、ＩＣ設計、前記ＩＣ設計の電力回路網、前記電力回路網の電圧降下目標値、及び、前記ＩＣ設計と前記電力回路網に基づいた密集度情報が決定される。
【０００８】
密集度は、密集度マップ内の各グリッドに対する特定方向（すなわち、水平方向又は垂直方向）に配置されたトラック数（各トラックは、ＩＣ要素又はその部分を設置するのに適した所定の領域を意味する）を見つけることによって決定される。グリッド内に（各方向にて）配置可能なトラック数は、利用可能なリソグラフィー技術によって決まると同様に、技術ノードによっても決まる。設計要素及びスタック・バイアが配置されたグリッドのトラック数が所定の閾値を越えたならば、そのグリッドは、密集状態であるとみなされる。
【０００９】
この段階で、これらのスタック・バイア、すなわち電力回路網内の接続必須スタック・バイア、非密集スタック・バイア、及び処理可能スタック・バイアが識別される。接続必須スタック・バイアとは、ＩＣ設計を実行し且つ電力回路網の接続性を維持するのに必要なスタック・バイアのいずれをもいう。
【００１０】
１実施例では、接続必須スタック・バイアの識別工程は、図表での電力回路網のモデル化を含み、この図表内のエッジは、ワイヤ部分、バイア、又はスタック・バイアを表す。この図表内のノードは、２つの又は複数のエッジの間の交点を表す。この図表内のソース・ノードは、電力を供給する電力パッド又は電力ピンを表す。この図表内の上位ソース・ノードは、前記ソース・ノードの全てを接続するノードである。この図表内のシンク・ノードは、電流シンク、例えば、電力を消費する１つの標準セル又はマクロ・ブロックの電力ピンを表す。各ワイヤ部分、バイア、又はスタック・バイアの密集度コストは、密集度マップ（これは、ＩＣ設計の電力回路網とコンポーネントの両方を含む）に基づいてそれ自身が関連する総計密集度オーバーフローを解析することによって決定される。次に、各エッジは、対応するワイヤ、バイア、又はスタック・バイアに基づいて密集度ウエイト（重み）に関連付けられる。
【００１１】
前記図表において、上位ソース・ノードから各シンク・ノードに至る少なくとも１つのパスが存在するようにエッジの最小セット（すなわち、エッジが最小の組又はグループ）が識別される。同時に、このエッジの最小セットの総計密集度ウエイトは最小化される。このエッジのセットを、この明細書では「基本エッジ」と呼ぶものとする。生成されるこのエッジの最小セット内のエッジのいずれにも対応するスタック・バイアを、接続必須スタック・バイアと識別する。
【００１２】
基本エッジを識別する１実施例においては、前記図表内の全ノード接続のために前記図表から最小全域木（ＭＳＴ）が抽出される。次に、ＭＳＴエッジのみから構成されるパスが、各シンク・ノードから上位ソース・ノードへとさかのぼる。これらのパス内のエッジは、基本エッジとして識別される。基本エッジを識別する別の実施例では、上位ソース・ノードから各シンク・ノードに至る最短パスが見つけ出されるが、ここでの、各エッジの距離（ｄｉｓｔａｎｃｅ）が密集度ウエイトである。基本エッジを識別するさらに別の実施例では、上位ソース・ノードから各シンク・ノードへの経路を有する多重シンク図表に基づく最小スタイナー木（Minimum Steiner Tree）が探査される。
【００１３】
非密集スタック・バイアとは、一般的に、非密集領域内のスタック・バイアのいずれをも言う。グリッドを基本とする密集度マップと１つのスタック・バイアとを仮定した場合、介在する層におけるこのスタック・バイアの各形状（矩形形状又は直線形状）は、それが重なる複数のグリッドに分割される。各グリッドにおいて、グリッドの内側にてスタック・バイアの部分（下位形状）によって占められるトラックの数は、前記層の方向（ここで、各層は、設計要素が設置されるトラックに関する所定の方向性を有する）を考慮して計算される。グリッドに所定のオーバーフローが有る場合には、下位形状の密集度コストは、どちらが小であるにせよ、下位形状によって使用されるトラックの数又はオーバーフローのいずれかとして計算される。スタック・バイアの密集度コストは、スタック・バイアを含む下位形状の密集度コストの合計である。この密集度コストの合計が、所定の閾値よりも小ならば、そのスタック・バイアは、非密集スタック・バイアとして識別される。１実施例では、この所定の閾値は、０である。
【００１４】
接続必須スタック・バイア又は非密集スタック・バイアではないスタック・バイアのいずれをも、この明細書において「処理可能スタック・バイア」と呼ぶこととする（接続必須スタック・バイアと非密集スタック・バイアのセットは、重なることもあり、重ならないこともあることにご留意願います）。この方法の１つの側面にしたがい、電力回路網のいずれの処理可能スタック・バイアも除去が可能である。
【００１５】
１実施例においては、処理可能スタック・バイアの密集度ウエイトの合計とともに、全スタック・バイアの総計密集度ウエイトが、計算される。前記処理可能スタック・バイアの密集度ウエイトの合計を前記総計密集度ウエイトと比較することによって、密集状態が電力回路網スタック・バイアによるものがどうかを明らかにし、また、密集度削減のためのスタック・バイア除去が、価値があるかどうか、すなわち、電力回路網接続性を維持しつつ電力回路網電圧降下への影響を考慮することなく最良の結果が可能かどうかを明らかにする利点が得られる。
【００１６】
次に、電力回路網内において電圧降下目標値が越えられたかどうかの判定が行われる。電圧降下目標値が越えられた時には、少なくともＩＣ上の最大電圧降下の重大度（ｓｅｖｅｒｉｔｙ）の大きさ（ｍｅａｓｕｒｅｍｅｎｔ）がアップデートされる。最大電圧降下を有するノードは、最悪問題部位と指定される。１実施例において、電圧降下目標値よりも大きな電圧降下の伴った電力回路網内のノードは、電圧降下問題部位と指定される。これらの電圧降下問題部位に対する除去された各処理可能スタック・バイアの応答度（ｓｅｎｓｉｔｉｖｉｔｙ）、すなわち、除去された処理可能スタック・バイアが電力回路網に事実上復帰された場合のこれらの電圧降下問題部位上の改善に対する除去された各処理可能スタック・バイアの応答度が解析される。公知の合同随伴ネットワーク解析方法を利用して、電圧降下問題部位の所定のセットに対する各スタック・バイアの電圧降下応答度が、ただ１つの電力回路網電圧降下シミュレーションによって効率的に解析される。
【００１７】
このアップデートの後、電圧降下改善スタック・バイア（すなわち、電圧降下問題部位の重大度において少なくとも所定の改善を示した処理可能スタック・バイア）のセットが、電力回路網に復帰される。電圧降下目標値が越えられたかどうかを判定するステップと、１以上の問題部位における電圧降下の重大度をアップデートするステップと、電圧降下改善スタック・バイアのセットを電力回路網に復帰させるステップは、電圧降下目標値が越えられなくなるまで繰り返される。
【００１８】
この段階で、電力回路網に残っている処理可能スタック・バイア（すなわち、接続必須スタック・バイア、非密集スタック・バイア、及び電圧降下改善スタック・バイア以外のスタック・バイア）のいずれもが物理的に除去される。次に、削減されたスタック・バイアを有する電力回路網が出力される。指定されたスタック・バイアの物理的な除去の後に実行される追加的なステップには、例えば、密集度検証のための全体的なルーティング（経路設定）の実行及び電力回路網接続性と電圧降下を検証するための電力回路網解析の実行が含まれる。
【００１９】
１実施例では、電圧降下改善スタック・バイアのセットを事実上復帰させるステップは、電圧応答度及び密集度コストに基づき処理可能スタック・バイアを分類する過程を含む。処理可能スタック・バイアを分類する過程は、密集度コストによって割られた電圧応答度の比を決定する過程を含む。１実施例では、この分類する過程は、また、分類された処理可能スタック・バイアを分割する過程と、電圧降下目標値が越えられたかどうかを判定するステップに戻る前に、１つのセット、すなわち、最高の比を有するセットのみを加え戻す過程を含む。１実施例では、各セットは、実質的に同一である結合された密集度コストを有する。この方法において、密集度に対する影響は最小にされる一方、電圧降下問題部位上の改善可能性は最大にされ、これにより、生成物の最良品質を達成するとともにコンバージェンスを改善する。
【図面の簡単な説明】
【００２０】
【図１】例示的スタック・バイアを図解する。
【図２】複数個のバイアを含む電力回路網の１つの層の例示的上面を図解する。
【図３】例示的な電力回路網スタック・バイア削減技法を図解する。
【図４】グリッド・パターンを有する例示的な密集度マップを図解する。
【図５Ａ】第1の金属層内の金属線を第２の金属層内の金属線に接続するスタック・バイアを含む例示的な電力回路網を図解する。
【図５Ｂ】処理可能スタック・バイアが実際に除去され、これにより、接続必須スタック・バイアが残された電力回路網を図解する。
【図５Ｃ】接続必須スタック・バイアに電圧降下改善スタック・バイアが加えられた後の電力回路網を図解する。
【図６】複数個のノードを有するＩＣの例示的な電圧降下マップを図解する。
【図７】電力回路網スタック・バイア削減技法を含む例示的デジタルＡＳＩＣ設計フローの簡略図表を示す。
【発明を実施するための形態】
【００２１】
ＩＣ上の密集度を削減する従来の方法は、不都合なことに、比較的高額のコスト、比較的長いターンアラウンド時間、電力回路網接続性の喪失、及び／又は、比較的大きな電圧降下を招く。ＩＣ上の密集度を削減し、一方で、有効に電力回路網接続性を維持し且つ電圧降下目標値を越えないようにする自動的技法を以下に説明する。
【００２２】
図３は、例示的電力回路網スタック・バイア削減技法３００を図解する。ステップ３０１において、ＩＣ設計、初期電力回路網、このＩＣ設計と初期電力回路網に基づく密集度情報、及び、電圧降下目標値が決定される。スタック・バイアに関する密集度情報とは、ＩＣの介在層においてこのスタック・バイアが配置されたリソースに関連する総計密集度を意味する。例えば、図解のための図１に戻って参照するに、スタック・バイア１００の密集度情報は、バイア１０１と１０２の境界及びバイア１０２と１０３の境界に形成されたＩＣの層に関係する。このスタック・バイアが除去されても、線１０４と１０５は後に残る。したがって、バイア１０１の頭部矩形部分及びバイア１０３の底部矩形部分に関連する密集度コストは無視することができる。１実施例では、電圧降下目標値（すなわち、ＩＣ上の受容可能な電圧降下とＩＣ上の受容不可能な電圧降下の間を区別する閾電圧降下）は使用者によって決められる。例えば、使用者は、「集積回路用電力回路網分析器」との標題の米国特許第７，３４６，８６９号明細書（特許文献１）に記載された電力回路網分析器の使用が可能であり、これは、引証としてこの明細書に加えられる。コンパイラ・ツールによって実行可能なこの電力回路網分析器が、電圧降下目標値を出力する。別の実施例では、電圧降下目標値は、システム入力として提供される（例えば、同一使用者の別の電力回路網の電圧降下目標値を使用して）。
密集度は、密集度マップ（これはＩＣ設計の当業者に公知である）内の各グリッドに関して特定の方向（すなわち、水平方向又は垂直方向のいずれか）で配置される多数のトラック（各トラックは、単一ＩＣ設計を設置するのに適した所定領域を意味する）を見つけることによって決定される。グリッド内に（各方向で）配置可能なトラック数は、利用可能なリソグラフィー技法と同様に技術ノードに依拠する。設計要素とスタック・バイアとが配置されたグリッドのトラック数が所定の閾値を越えた場合に、そのグリッドは密集状態にあるとみなされる。例えば、グリッドのトラック数が８で、そのグリッド内に現に設置される設計要素が１１トラックを占めている場合には、そのグリッドは密集状態であり、３のオーバーフローを有する（すなわち、１１−８＝３）。所定のグリッドでの必要よりも供給の方が多い場合には、最小オーバーフローは０である。すなわち、比較的大きなオーバーフローは、比較的大きなグリッドの密集度に対応する。
【００２３】
個々のバイアが完全に積層されない場合、スタック・バイアは直線的なので、密集度の決定には、２つのバイアの組み合わされた周縁が考慮されることとなる。例えば、図４は、グリッド・パターン４０１を有する例示的密集度マップ４００を図解する。図４に示すように、スタック・バイアを形成する２つのバイア４０２と４０３は、矩形状ではなく、組み合わされた直線で形成された周縁４０４を有する。この直線で形成された周縁４０４は、周縁４０４が重なる各グリッドに関する密集度の正確な決定を提供するのに有効に利用することができる。簡略化のため、ＩＣ設計の他のスタック・バイア及びコンポーネントは示されていないことにご留意願います。
【００２４】
図３の参照に戻るに、ステップ３０２は、接続必須スタック・バイア、非密集スタック・バイア、及び、処理可能スタック・バイアを特定する。接続必須スタック・バイアとは、ＩＣ設計の実行に必要なスタック・バイアのいずれをも意味する。１実施例では、接続必須スタック・バイアを特定する過程は、電力回路網を図表としてモデル化する過程を含んでおり、ここで、図表内のエッジは、ワイヤ部分、バイア、又はスタック・バイアを表している。図表内のノードは、２つの又は多数のエッジの間の交点を表している。図表内のソース・ノードは、電力を供給する電力パット又はピンを表している。図表内の上位ソース・ノードは、ソース・ノードの全てを接続するノードである。図表内のシンク・ノードは、電流シンクを表しており、例えば、電力を消費する１つの標準セル又はマクロ・ブロックの電力ピンである。各ワイヤ部分、バイア、又はスタック・バイアの密集度コストは、密集度マップに基いてそれ自身が関係する総計密集度オーバーフローを解析することによって決定される（これには、ＩＣ設計の電力回路網とコンポーネントの両者が含まれる）。各エッジは、次に、対応するワイヤ、バイア、又はスタック・バイアに基づく密集度ウエイトに関係する。
【００２５】
エッジの最小セットは、上位ソース・ノードから各シンク・ノードに至る少なくとも１つのパスの存在で図表内に特定される。明白に、同時に、エッジのこの最小セットの総計密集度ウエイトは最小にされる。エッジのこのセットを、この明細書では、基本エッジと呼ぶこととする。結果として生成されるエッジの最小セット内のエッジのいずれにも対応するスタック・バイアを、接続必須スタック・バイアとして特定する。
【００２６】
基本エッジを特定するための１実施例では、図表内の全てのノードを接続するべく図表から最小全域木（ＭＳＴ）が抽出される。ＭＳＴエッジを構成するだけのパスは、次に、各シンク・ノードから上位ソース・ノードへとさかのぼって確認される。これらのパス内のエッジが、基本エッジとして識別される。基本エッジを特定するための別の実施例では、上位ソース・ノードから各シンク・ノードに至る最も短いパスを見出すが、各エッジの距離が密集度ウエイトである。基本エッジを特定するためのさらに別の実施例では、上位ソース・ノードから各シンク・ノードへと経路設定されている、多重シンクの図表に基づく最小スタイナー木が探査される。
【００２７】
非密集スタック・バイアとは、一般的に、非密集領域内のスタック・バイアのいずれをもいう。１つのスタック・バイアとグリットに基づく密集度マップがある場合には、このスタック・バイアの介在する層での各形状（矩形形状又は直線形状）は、それが重なる複数のグリッド内に分けられる。各グリッドに関しては、このグリッドの内側でスタック・バイアの一部（下位形状）によって占められるトラックの数は、この層の方向を考慮して計算される（ここで、各層は、設計要素が設置されるトラックに対して所定の方向を有している）。グリッドに所定のオーバーフローが有る場合には、下位形状の密集度コストは、下位形状によって使用されているトラック数又はオーバーフローのいずれが小であっても、このどちらかとして計算される。スタック・バイアの密集度コストは、スタック・バイアを構成する下位形状のコストの合計である。その合計が所定の閾値よりも小さい場合には、そのスタック・バイアは、非密集スタック・バイアとみなされる。１実施例では、この閾値は０である。
【００２８】
接続必須スタック・バイア又は非密集スタック・バイアではないスタック・バイアはいずれも処理可能スタック・バイアと識別される（接続必須スタック・バイアと非接続スタック・バイアのセットは重ならないことにご留意願います）。
ステップ３０３では、電力回路網から処理可能スタック・バイアを除去する。
【００２９】
例えば、図５Ａは、（第１の金属層内の）金属線５０２と（第２の金属層内の）金属線５０３を接続するスタック・バイア５０１を含む例示的電力回路網５００を図解する。図５Ｂは、処理可能スタック・バイア５１１が除去された（周縁が鎖線で示される）後、これにより、接続必須スタック・バイアと非密集スタック・バイア５１０が後に残された電力回路網５００を図解する（周縁が肉太の実線で示される）。
【００３０】
１実施例では、全スタック・バイアの総計密集度ウエイトが、処理可能スタック・バイアの密集度ウエイトの合計と同様に計算される。この合計を前記総計密集度ウエイトと比較することによって、密集状態が電力回路網スタック・バイアによるものがどうかということ及び密集度削減のためスタック・バイアの削減が価値があるかどうかということ、すなわち、電力回路網接続性を維持しつつ、電力回路網電圧降下への影響を考慮することなく最良の結果を達成し得るかどうかということを有効に示すことができる。
【００３１】
例えば、電力回路網を有するＩＣ設計内の（オーバーフローで計測した）総計密集度は、１，０００である。電力回路網スタック・バイアによる総計密集度は、６００、又は６０％である。前記処理可能スタック・バイアによる総計密集度は、５００、又は５０％である。すなわち、この削減技法によって控えめな５０％の上限の密集度削減が達成可能なので、電力回路網スタック・バイア削減の実行には価値がある。
【００３２】
別の実施例では、電力回路網を有するＩＣ設計内の（オーバーフローで計測した）総計密集度は、１，０００である。電力回路網スタック・バイアによる総計密集度は、５０、又は５％である。全ての処理可能スタック・バイアによる総計密集度は、１０、又は１％である。すなわち、密集状態は電力スタック・バイアによるものではなく、そして、この削減技法の適用によって達成される密集度削減の控えめな上限は１％にすぎないので、電力回路網スタック・バイア削減の実行には価値がない。
【００３３】
この段階で、ステップ３０４は、電力回路網に関する電圧降下目標値が越えられたかどうかを決定する。例えば、スタック・バイアの数を接続性維持のために必要な最低限の数に削減するならば、密集状態領域内の密集度を有効に最小化することができるが、この数では、電力回路網全体にわたり十分な電力配分を確保するには不十分である。
【００３４】
電圧降下目標値が越えられた時には、ステップ３０５で、ＩＣ上の少なくとも最大電圧降下の重大度の大きさがアップデートされる。この最大電圧降下を有するノードが、最悪問題部位として指定される。１実施例では、電圧降下目標値よりも大きな電圧降下を有する電力回路網内ノードが、電圧降下問題部位として指定され、これらの部位の電圧降下重大度がアップデートされる。
【００３５】
これらの電圧降下問題部位に関する除去された各処理可能スタック・バイアの電圧応答度が、ステップ３０５で、また、解析される。１実施例では、処理可能スタック・バイアが電力回路網に復帰された場合に、特定の処理可能スタック・バイアが識別された電圧降下問題部位に与える影響を、電圧応答度で計測する。最も効率的に電力回路網内での電圧降下を最小化することを目的として、低い電圧応答度を有する処理可能スタック・バイアより前に高い電圧応答度を有する処理可能スタック・バイアが復帰される。電圧降下問題部位のセットは、１以上の電圧降下箇所（これは電圧降下目標値に基づいて変化する）を有することにご留意願います。１実施例では、電圧応答度の解析は、少なくとも１つの電圧降下部位、例えば、最悪電圧降下部位との比較で実行される。公知の合同随伴ネットワーク解析方法を使用して、電圧降下問題部位の定められたセットに関する各スタック・バイアの電圧降下応答度は、たった１つの電力回路網電圧降下シミュレーションによって効率的に解析することができる。
【００３６】
このアップデートの後に、ステップ３０６で、電圧降下問題部位の重大度に少なくとも所定の改善を示した処理可能スタック・バイア（この明細書では、電圧降下改善スタック・バイアという）のセットが、電力回路網に復帰させられる。図６を参照してさらに詳細に説明される１実施例では、密集度コストと電圧応答度を含むアルゴリズムが、ステップ３０６での追加的スタック・バイアのセットを決定するのに使用される。上述したように、密集度コストは、例えば、オーバーフローがより大きい、密集度コストがより高い、グリッド内配置トラックのオーバーフローに関係する。
【００３７】
電圧降下改善スタック・バイア、接続必須スタック・バイア、及び、例えば，ワイヤ部分である他の電力回路網要素に沿った非密集スタック・バイアの新しいセットが、その時点での、電力回路網を構成し、ステップ３０４で、ＩＣ上の最大電圧降下を再計算し、且つ、その最大電圧降下が電圧降下目標値を越えたかどうかを決定するのに使用される。ステップ３０４−３０６は、電圧降下目標値が越えられない、となるまで、すなわち、電圧降下問題部位が検出されない、となるまで、繰り返される。図５Ｃは、電圧降下改善スタック・バイア５１２が、接続必須及び非密集スタック・バイア５１１に加えられた後の電力回路網５００を図解する。電圧降下改善スタック・バイアは、ＩＣの電圧降下を改善するので、電圧効果問題部位の重大度は、ステップ３０６で、削減され、次に、ステップ３０５で、アップデートされることにご留意願います。明白に、これらのステップでは、新しい電圧降下問題部位は発生しない。実際、ステップ３０４、３０５及び３０６が繰り返されるのに伴い、ＩＣ上の電圧降下問題部位の箇所は、除去される。
【００３８】
ステップ３０４の決定において、電圧降下目標値が越えられない場合（すなわち、電圧降下問題部位が存在しない場合）、ステップ３０７において密集度削減が見積もられる。１実施例では、密集度の削減は、全ての削減されたスタック・バイアの密集度コストの合計として見積もられる。この見積もりは、その時点で存在するルーティング（経路）に基づいており、１つのグリッド内の空いているトラックは、隣接するグリッドでの必要によって、新しいルーティング（経路）による迂回を介して使用可能なので、この見積もりは、控えめとなる傾向がある。ステップ３０８では、接続必須スタック・バイア、非密集スタック・バイア、及び電圧降下改善スタック・バイア以外のスタック・バイアを除去する。
【００３９】
この段階で、ＩＣ密集度検証のために、ステップ３０９において、全体的なルーティング（経路形成）が実行される。全体的なルーティングは、特定のＩＣ設計と利用可能なリソースに基づいていることをご留意願います。様々な処理可能スタック・バイア除去によって、より有効なリソースが生成され、密集度の検証のために全体的なルーティングが再度実行される。ステップ３１０において、新たに最適化された電力回路網の電圧降下と接続性を検証するべく、電力回路網解析が実行される。ステップ３１１では、削減されたスタック・バイアにより新たに最適化された電力回路網が出力される。
【００４０】
電圧応答度を決定すべく、電圧降下マップが作成される。図６は、複数個のノード６０１を有するＩＣの例示的な電圧降下マップ６００を図解する（簡略のため６０１Ａ，６０１Ｂ，６０１Ｃのみ示す）。１実施例において、各エッジ６１０（簡略のため６１０Ａ，６１０Ｂ，６１０Ｃ，６１０Ｄのみ示す）が、電力回路網のスタック・バイアに対応する。エッジ６１０は、典型的には、例えば、ワイヤ部分、バイア、及びスタック・バイアである電力回路網要素を表すことにご留意願います。したがって、各エッジ６１０は、１つの抵抗とみなされる。対照的に、各ノード６０１は、２つの又は多数のエッジの間の交点又は接続点を表すものとして使用される。電圧降下マップ６００において、電力ソース（本例では１．５Ｖ）が１以上のノード６０１（簡略のため図６では１つのみを示す）に導入される。電圧降下マップ６００の各ノード６０１は、設計の要素６０２（簡略のため１つの要素のみ示す）並びにその配置と電力消費に依拠する関連電圧と、電力ソースからその特定ノードに至るパスに関係する等価抵抗を有する。要素６０２は、電力回路網内の電流シンクとしてモデル化される。
【００４１】
不都合なことに、１つのスタック・バイアの除去は、電力回路網内の他のノードの電圧に影響する。例えば、エッジ６１０Ａに関連するスタック・バイアの除去は、例えば、ノード６０１Ａのような、いずれかのノードの電圧に影響を与える。電力回路網スタック・バイア削減技法の１つの特徴に従い、各エッジ６１０は、電圧降下問題部位への影響に関して評価される。例えば、ノード６０１Ｃを、１．２Ｖの電圧を有するただ１つの識別された電圧降下問題部位であると仮定する（１．３５Ｖを電圧降下目標値として）。次に、エッジ６１０Ａに関連するスタック・バイアが電力回路網に復帰したときに、ノード６０１Ｃの電圧への影響に関してエッジ６１０Ａの評価が行われる。１実施例では、電圧降下問題部位での電圧降下改善が大きければ大きい程、評価されるスタック・バイア（及びこれに対応するノード）の電圧応答度が大きくなる。上述したように、スタック・バイアのこの電圧応答度が、ステップ３０６において、電力回路網に復帰させるべきスタック・バイアを決定するのに使用される（図３）。
【００４２】
１実施例において、密集度コストで割られた電圧応答度（すなわち、電圧応答度／密集度コスト）より成るアルゴリズムが、電力回路網に復帰させるべき処理可能スタック・バイア５１１（図５Ｂ）の決定に使用される。上述したように、密集度コストは、例えば、オーバーフローのような各種の方法で決定可能である。処理可能スタック・バイアは、ＩＣの密集状態の領域の中にのみ存在しており、結果として、密集度は正である（そして、分母の「０」は回避される）ことが確保されることにご留意願います。
【００４３】
１実施例では、除去された全ての処理可能スタック・バイアは、電圧応答度／密集度コストの比に基づいて、例えば、高い方から低い方へ、分類される。比較的高い比を有する処理可能スタック・バイアは、比較的低い比を有する処理可能スタック・バイアよりも前に選択される。この比と選択工程とを利用することによって、比較的小さな密集度を有する処理可能スタック・バイアの復帰への選択が、概ね、比較的大きな密集度を有する処理可能スタック・バイアの前に行われる。同様に、比較的大きな電圧応答度を有する処理可能スタック・バイアの電力回路網への復帰の選択が、比較的小さな電圧応答度を有する処理可能スタック・バイアの前に行われる。すなわち、上述した電圧応答度／密集度コストの比、これらの比の分類、及びこの分類に基づく電圧降下改善スタック・バイアの選択が、ＩＣ上の最悪電圧箇所の改善を最高にするとともに、密集度を有効に最小化する。
【００４４】
１実施例では、選択工程をさらに最適とするべく、電力回路網に加えられるべき電圧降下改善スタック・バイアに関する所望の繰り返し数に基づいて、分類されたスタック・バイアのグループが形成される。例えば、電圧応答度／密集度コストの比に基づいて１００個の処理可能スタック・バイアが分類され、そして、最高で５回の繰り返しが必要であると仮定する。したがって、分類された処理可能スタック・バイアの５つのグループが形成される。１実施例では、この５つのグループの各々の中のスタック・バイアの結合したオーバーフローは、実質的に等しい。この例では、各グループ内のスタック・バイアの数を変更することが可能である。例えば、第１のグループ（最高の比を有する）では４０個のスタック・バイア、第２のグループ（二番目に高い比を有する）では２０個のスタック・バイア、第３のグループでは１５個のスタック・バイア、そして、第４のグループでは２０個のスタック・バイア、そして、第５のグループ（最低の比を有する）では５個のスタック・バイアとすることができる。この様式で、電圧降下への影響を最大にし、一方で、密集度への影響を最小にし、これにより、コンバージェンスを向上する。
【００４５】
図７は、電力回路網スタック・バイア削減技法を含む例示的なデジタルＡＳＩＣ設計フローの略示説明図を示す。ハイレベルで製品アイデア（ステップ７００）から工程が始まり、ＥＤＡソフトウエア設計工程（ステップ７１０）で実現される。設計が仕上がったならば、テープ出力（イベント７４０）される。テープ出力の後、製造工程（ステップ７５０）並びにパッケージ及びアセンブリ工程（ステップ７６０）を実施して、最後に、完成チップ（結果７７０）が生ずる。
【００４６】
ＥＤＡソフトウエア設計プロセス（ステップ７１０）は、実際には複数のステップ７１２−７３０から構成されており、簡略化のために直線的に示している。実際のＡＳＩＣ設計プロセスでは、特定の設計は、所定の試験に合格するまでステップを逆戻りしなければならないこともある。同様に、任意の実際の設計プロセスでは、これらのステップは、異なる順序及び組み合わせで行われることがある。従って、この説明は、特定のＡＳＩＣのための具体的な或いは推奨する設計フローとしてよりも、むしろ背景説明（context）及び一般的な説明のために提供される。
【００４７】
ＥＤＡソフトウエア設計プロセス（ステップ７１０）の構成するステップを簡単に説明する。
【００４８】
システム設計（ステップ７１２）：
【００４９】
設計者は、実装したい機能性を記述し、ｗｈａｔ−ｉｆプランニングを実施して機能性改良や費用確認などを行う。ハードウエア−ソフトウエア・アーキテクチャ・ハーティショニングは、このステップで行うことができる。このステップで使用されるＳｙｎｏｐｓｙｓ，Ｉｎｃ．製の例示的ＥＤＡソフトウエア製品は、Ｍｏｄｅｌ  Ａｒｃｈｉｔｅｃｔ，Ｓａｂｅｒ，Ｓｙｓｔｅｍ  Ｓｔｕｄｉｏ，及びＤｅｓｉｇｎＷａｒｅ製品を含む。
【００５０】
論理設計及び機能性の検証（ステップ７１４）：
【００５１】
このステップでは、システム内のモジュールのためのＶＨＤＬ又はＶｅｒｉｌｏｇコードを書き込み、その設計を機能性の精度について検査する。より具体的には、設計を検査することによって、正しい出力を生成することを保証する。このステップで使用されるＳｙｎｏｐｓｙｓ，Ｉｎｃ．製の例示的ＥＤＡソフトウエア製品は、ＶＣＳ，ＶＥＲＡ，ＤｅｓｉｇｎＷａｒｅ，Ｍａｇｅｌｌａｎ，Ｆｏｒｍａｌｉｔｙ，ＥＳＰ，及びＬＥＤＡ製品を含む。
【００５２】
試験のための合成及び設計（ステップ７１６）
【００５３】
このステップでは、ＶＨＤＬ／Ｖｅｒｉｌｏｇを、ネットリストに変換する。ネットリストは、目標技術のために最適化される。完成品チップの検査を可能とする試験の設計及び実装を行う。このステップで使用されるＳｙｎｏｐｓｙｓ，Ｉｎｃ．製の例示的ＥＤＡソフトウエア製品は、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒ，Ｐｏｗｅｒ  Ｃｏｍｐｉｌｅｒ，Ｔｅｔｒａｍａｘ，及びＤｅｓｉｇｎＷａｒｅ製品を含む。
【００５４】
ネットリスト検証（ステップ７１８）：
【００５５】
このステップで、ネットリストは、タイミング制約との適合性及びＶＨＤＬ／Ｖｅｒｌｏｇソース・コードへの対応性に関して検査される。このステップで使用されるＳｙｎｏｐｓｙｓ，Ｉｎｃ．製の例示的ＥＤＡソフトウエア製品は、Ｆｏｒｍａｌｉｔｙ，ＰｒｉｍｅＴｉｍｅ，及びＶＣＳ製品を含む。
【００５６】
設計プランニング（ステップ７２０）：
【００５７】
このステップでは、チップに関する全体的フロアプランが作成し、タイミング及び最上位ルーティングについて解析する。この段階で使用されるＳｙｎｏｐｓｙｓ，Ｉｎｃ．製の例示的ＥＤＡソフトウエア製品は、Ａｓｔｒｏ及びＩＣ  Ｃｏｍｐｌｉｅｒ製品を含む。１実施例では、設計プランニングの間に、図３を参照して記述された電力回路網スタック・バイア削減技法が、ＩＣコンパイラ・ツールで実行される。
【００５８】
物理的な実装（ステップ７２２）：
【００５９】
このステップでは、配置（回路素子の位置決め）及びローティング（回路素子の接続）を行う。このステップで使用されるＳｙｎｏｐｓｙｓ，Ｉｎｃ．製の例示的ＥＤＡソフトウエア製品は、Ａｓｔｒｏ及びＩＣ  Ｃｏｍｐｌｉｅｒ製品を含む。１実施例では、電力回路網スタック・バイア削減技法３００は、また、物理的な実装の間に、ＩＣコンパイラ・ツールで実行される。
【００６０】
分析及び抽出（ステップ７２４）：
【００６１】
このステップでは、回路機能をトランジスタレベルで検証し、これによりｗｈａｔ−ｉｆ解析による改良を可能とする。この段階で使用されるＳｙｎｏｐｓｙｓ，Ｉｎｃ．製の例示的ＥＤＡソフトウエア製品は、ＡｔｒｏＲａｉｌ，ＰｒｉｍｅＲａｉｌ，Ｐｒｉｍｅｔｉｍｅ，及びＳｔａｒ  ＲＣ／ＸＴ製品を含む。
【００６２】
物理的な検証（ステップ７２６）：
【００６３】
このステップでは、様々なチェック機能を実行し、製造、電気的な結果、リソグラフィックの結果、及び回路構成について正確性を保証する。このステップで使用されるＳｙｎｏｐｓｙｓ，Ｉｎｃ．製の例示的ＥＤＡソフトウエア製品は、Ｈｅｒｃｕｌｅｓ製品を含む。
【００６４】
分解能向上（ステップ７２８）：
【００６５】
このステップでは、レイアウトの幾何学的操作を行い、設計の製造可能性を改善する。このステップで使用されるＳｙｎｏｐｓｙｓ，Ｉｎｃ．製の例示的ＥＤＡソフトウエア製品は、Ｐｒｏｔｅｕｓ，ＰｒｏｔｅｕｓＡＦ，及びＰＳＭＧｅｎ製品を含む。
【００６６】
マスクデータ準備（ステップ７３０）：
【００６７】
このステップでは、完成品チップを作成するのに使用するリソグラフィーのために、マスク作成用の「テープ出力」データを提供する。このステップで使用されるＳｙｎｏｐｓｙｓ，Ｉｎｃ．製の例示的ＥＤＡソフトウエア製品は、ＣＡＴＳ（Ｒ）のシリーズ製品が含まれる。
【００６８】
この発明は、１つのデータ保存システム、少なくとも１つの入力装置、及び少なくとも１つの出力装置からデータ及び命令を受信し、且つそれらに対してデータ及び命令を送信するように接続された少なくとも１つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行する１つ或いは複数のコンピュータプログラムに有利に実装することができる。
各コンピュータプログラムは、高次手続き型又はオブジェクト指向型プログラミング言語で、或いは所望に応じてアセンブリ言語又は機械語で実装することができる。いずれにせよ、その言語は、コンパイラ型言語又はインタープリタ型言語である。適切なプロセッサには、例えば、汎用マイクロプロセッサ及び特定用途向けマイクロプロセッサの両者のほか、他の種類のマイクロコントローラが含まれる。一般的に、プロセッサは、読み出し専用メモリ及び／又はランダムアクセスメモリから命令及びデータを受信する。一般的に、コンピュータは、データファイルの保存用として１つ或いは複数の大容量記憶装置を有しており、その大容量記憶装置には、磁気ディスク（例えば、内蔵されたハードディスク及びリムーバブルディスク）、光磁気ディスク、及び光ディスクが含まれる。コンピュータプログラム命令及びデータを具体的に実施するのに適合する記憶装置には、全ての形態の不揮発性メモリ（例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの半導体メモリ装置、及びフラッシュメモリ装置）、磁気ディスク（例えば、内蔵されたハードディスク及びリムーバブルディスク）、光磁気ディスク、及びＣＤ−ＲＯＭディスクが含まれる。前述したいずれのものも、特定用途向け集積回路（ＡＳＩＣ）により補足することができる又はそれに組み込むことができる。
【００６９】
この明細書において添付図面を参照してこの発明の実例的な実施例について説明したが、この発明がこれらの具体的実施例に限定されないことを理解されるべきである。これらは、開示された具体的な形態にこの発明を徹底することまたは限定することを意図していない。すなわち、多くの改良及び変更が明白であろう。
【００７０】
例えば、グリッド・パターンの電力回路網が論述されているが、そのようなグリッド・パターン内に１端子フローティング・ワイヤを含むことも可能である。これらの１端子フローティング・ワイヤは、その位置が未定のマクロの接続のために含ましめることができる。この場合、そのマクロに接続されるスタック・バイアは、接続必須スタック・バイアと指定される。１実施例においては、指定されたスタック・バイアの実際の除去（ステップ３０８、図３）の前に、ＩＣの電子移動（ＥＭ）マップが、使用者によって事前検査される。この段階で、使用者は、ＥＭコンプライアンスを確保するべく、さらに別のスタック・バイアを手操作で含ませるように決定する。
【００７１】
１実施例では、スタック・バイア削減が遂行された時の、より一層正確な時間変更電力回路網電圧降下分析のため、ワイヤ（又はバイア）抵抗に沿ったワイヤ・キャパシタンスとパッド・インダクタンスが、さらに、電力回路網から抽出される。別の実施例では、スタック・バイアは、除去されず、比較的大きな抵抗を有するものの、比較的僅かの量のリソースを占める比較的小さなスタック・バイア（例えば、内側に少数のカットを有するバイア）で選択的に取り替えられる。さらに別の実施例では、スタック・バイア除去の時に、スタック・バイア密度拘束（すなわち、単位チップ領域内のスタック・バイアの最小数）が、さらに、考慮される。さらに別の実施例では、電力回路網接続性を維持し且つ電圧降下を最小化する一方で、密集度を削減するべく、他の電力回路網要素、例えば、ワイヤが、さらに寸法変更され又は除去される。
【００７２】
したがって、この発明の範囲は、以下の請求項とその均等物によって画定される。
【符号の説明】
【００７３】
１００    スタック・バイア
１０１    バイア
１０２    バイア
１０３    バイア
１０４    金属線
１０５    金属線
２００    電力回路網
２０１    バイア
４００    密集度マップ
４０１    グリッド・パターン
４０２    バイア
４０３    バイア
４０４    周縁
５００    電力回路網
５０１    スタック・バイア
５０２    金属線
５０３    金属線
５１０    非密集スタック・バイア
５１１    処理可能スタック・バイア
５１２    電圧降下改善スタック・バイア
６００    電圧降下マップ
６０１    ノード
６０２    設計要素
６１０    エッジ
【図１】
2011511390.tif 000003
【図２】
2011511390.tif 000004
【図３】
2011511390.tif 000005
【図４】
2011511390.tif 000006
【図５Ａ】
2011511390.tif 000007
【図５Ｂ】
2011511390.tif 000008
【図５Ｃ】
2011511390.tif 000009
【図６】
2011511390.tif 000010
【図７】
2011511390.tif 000011
【国際調査報告】
2011511390.tif 000012
2011511390.tif 000013