(57)【特許請求の範囲】
【請求項１】
集積回路設計でデカップリング・キャパシタンスを加えるための方法であって、
コンピュータ・システムに、
１）集積回路に関する平面図であって、所定の機能特性及びデカップリング・キャパシタンス・スペースに関する要件を備えるマクロを含む、平面図を作成させるステップと、
２）前記平面図を複数の領域に分割させるステップと、
３）各領域毎に、固有キャパシタンス値を決定させるステップと
４）各領域毎に、前記平面図におけるパワー・グリッドの電圧をサポートするのに必要なサポート・デカップリング・キャパシタンス値を決定させるステップと、
５）各領域毎に、前記サポート・デカップリング・キャパシタンス値および前記固有キャパシタンス値に基づいて、必要なデカップリング・キャパシタンス値を決定させるステップと、
６）各領域毎に、前記必要なデカップリング・キャパシタンス値に対するデカップリング・コンデンサ・エリアを決定させるステップと、
７）前記集積回路が、デカップリング・キャパシタンスを空領域中に加えるべきタイプであるか否かを判断させるステップと、
８）前記集積回路が、デカップリング・キャパシタンスを空領域中に加えるべきタイプでは無いと判断された場合には、各領域中の、回路として利用可能なエリアを、その領域において必要なデカップリング・コンデンサ・エリアに対応する量だけ縮小させるステップと、
９）各領域毎に、縮小された回路配置の規則を作成させるステップと、
１０）前記規則に基いて平面図を修正させるステップと、
を含む方法を実行させる方法。
【請求項２】
前記コンピュータ・システムに実行させる方法が、
８−a）前記ステップ７）で、前記集積回路が、デカップリング・キャパシタンスを空領域中に加えるべきタイプであると判断された場合には、各マクロ毎に、総デカップリング・コンデンサ・エリアを計算するステップと、
８−ｂ）各マクロ毎に、該マクロの空領域から前記総デカップリング・コンデンサ・エリアを減算させるステップと、
８−ｃ）前記減算の結果が正であるマクロでは、該マクロに割り振られたスペースを縮小させ、負のマクロには追加のスペースを加えるステップと、
８−ｄ）前記平面図を修正させるステップと、
をさらに含む請求項１記載の方法。
【請求項３】
前記コンピュータ・システムに実行させる方法が、
ステップ１）と２）の間に、
１−ａ）前記平面図に関するパワー・グリッドを生成させるステップ
をさらに含む請求項１または２記載の方法。
【請求項４】
前記コンピュータ・システムに実行させる方法が、ステップ１−ａ）の後に、
１−ｂ）前記平面図に前記パワー・グリッドを重ね合わせるステップ、
をさらに含む請求項３記載の方法。
【請求項５】
前記集積回路が特定用途向け集積回路（ＡＳＩＣ）である請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記集積回路がマイクロプロセッサである請求項１〜４のいずれか１項に記載の方法。
【請求項７】
集積回路設計中にデカップリング・キャパシタンスを加えるための方法を実行するためのコンピュータ・プログラムであって、
コンピュータ・システムに、
１）集積回路に関する平面図であって、所定の機能特性及びデカップリング・キャパシタンス・スペースに関する要件を備えるマクロを含む、平面図を作成させるステップと、
２）前記平面図を複数の領域に分割させるステップと、
３）各領域毎に、固有キャパシタンス値を決定させるステップと
４）各領域毎に、前記平面図におけるパワー・グリッドの電圧をサポートするのに必要なサポート・デカップリング・キャパシタンス値を決定させるステップと、
５）各領域毎に、前記サポート・デカップリング・キャパシタンス値および前記固有キャパシタンス値に基づいて、必要なデカップリング・キャパシタンス値を決定させるステップと、
６）各領域毎に、前記必要なデカップリング・キャパシタンス値に対するデカップリング・コンデンサ・エリアを決定させるステップと、
７）前記集積回路が、デカップリング・キャパシタンスを空領域中に加えるべきタイプであるか否かを判断させるステップと、
８）前記集積回路が、デカップリング・キャパシタンスを空領域中に加えるべきタイプでは無いと判断された場合には、各領域中の、回路として利用可能なエリアを、その領域において必要なデカップリング・コンデンサ・エリアに対応する量だけ縮小させるステップと、
９）各領域毎に、縮小された回路配置の規則を作成させるステップと、
を含む方法であって、
１０）前記規則に基いて平面図を修正させるステップと
を含む方法を実行させるコンピュータ・プログラム。
【請求項８】
前記コンピュータ・システムに実行させる方法が、
８−a）前記ステップ７）で、前記集積回路が、デカップリング・キャパシタンスを空領域中に加えるべきタイプであると判断された場合には、各マクロ毎に、総デカップリング・コンデンサ・エリアを計算するステップと、
８−ｂ）各マクロ毎に、該マクロの空領域から前記総デカップリング・コンデンサ・エリアを減算させるステップと、
８−ｃ）前記減算の結果が正であるマクロでは、該マクロに割り振られたスペースを縮小させ、負のマクロには追加のスペースを加えるステップと、
８−ｄ）前記平面図を修正させるステップと、
をさらに含む請求項７に記載のコンピュータ・プログラム。
【請求項９】
前記コンピュータ・システムに実行させる方法が、
１−ａ）前記平面図に関するパワー・グリッドを生成させるステップ
をさらに含む請求項７または８に記載のコンピュータ・プログラム。
【請求項１０】
前記コンピュータ・システムに実行させる方法が、ステップ１−ａ）の後に、
１−ｂ）前記平面図に前記パワー・グリッドを重ね合わせるステップ、
をさらに含む請求項９記載のコンピュータ・プログラム。
【請求項１１】
前記集積回路が特定用途向け集積回路（ＡＳＩＣ）である請求項７〜１０のいずれか１項に記載のコンピュータ・プログラム。
【請求項１２】
前記集積回路がマイクロプロセッサである請求項７〜１０のいずれか１項に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に集積回路に関する。詳細には、本発明は、集積回路設計の平面図設計段階の間に、集積回路中にデカップリング・キャパシタンスを加えるための方法に関する。
【０００２】
【従来の技術】
特に特定用途向け集積回路（ＡＳＩＣ）や、マイクロプロセッサなど他の先進・複雑な半導体集積回路デバイスの半導体設計で現在の一趨勢は、動作電力を下げることである。この趨勢により、電源およびデバイス閾値（すなわちターンオン）電圧がより低いレベルに追い込まれる。デカップリングの必要性を強調する別の趨勢は、電圧スケーリングが遅れエリア／キャパシタンス・スケーリングを有することである。パワー・グリッド供給電圧（ＶＤＤ）およびデバイス閾値電圧（Ｖｔ）が降下するにつれて、雑音レベルがＶｔおよびＶＤＤと同じ比率ではスケールダウンしないので、雑音電圧のＶｔおよびＶＤＤに対する比が増大する。したがって、このタイプの半導体集積回路デバイスでの、雑音への感度が増大する。
【０００３】
ノイズに対する感度の増大は、さらに、局部高電流の使用によって引き起こされる、ＶＤＤの局部降下によって悪化する。これは、例えば高電流回路または高デューティ・サイクル回路によって引き起こされる可能性がある。この効果は、一部の回路または回路のグループが短期間に全ＶＤＤ電圧を認識せず、さらに雑音対信号比が増大するものである。このようなノイズ感度の問題は、しばしば設計工程の非常に後の方になるまで、あるいは実際のデバイスの製造中または試験中になるまで明らかにならず、改造、シミュレーション、または設計活動、あるいはそれらの組み合わせで費用と時間がかかってしまう。現在、このノイズ感度問題は、しばしば、集積回路が雑音または電力降下を許容するように過剰設計することによって克服されている。遺憾ながら、この解決策では性能が低下し、電力消費が増大し、チップ・エリアが増大し、チップが高価となってしまう。
【０００４】
局部パワー・グリッド電圧降下を補償する１つの方法は、デカップリング・コンデンサを使用することによる方法である。必要なデカップリング・キャパシタンス量は、一度にスイッチングする近くの回路の数や、そのスイッチングのシーケンスなどの要因に依存する局部要件である。現況技術は、デカップリング・キャパシタンスを集積回路設計に加えるという課題を、２つの方法の一方を用いて実施する。一方の方法では、入出力（Ｉ／Ｏ）セルまたはクロック・バッファあたりのデカップリング・キャパシタンスの量を推定し、次いで対応する回路の近くに配置する。この設計の残りの部分については、経験則を使用する。１つの方法は、デカップリング・コンデンサを各ラッチの近くに配置することである。別の方法は、配置した後に、チップ・エリア中の空きスペース上にデカップリング・コンデンサを配置することである。これにより、しばしば過剰なデカップリング・キャパシタンスが設計に加えられてしまう。別の方法では、設計する完全な回路についてのグリッド電圧の電力降下に基づいて、デカップリング・キャパシタンスの量を計算する。次いで、デカップリング・コンデンサのためのスペースが存在する、チップのマクロの領域中にデカップリング・コンデンサを配置する。この方法の１つの欠点は、利用可能なスペースが、デカップリング・キャパシタンスが必要な所の十分に近くではない可能性があり、電圧降下をなくするためにより多くのデカップリング・キャパシタンスが必要となる可能性があることである。
【０００５】
したがって、集積回路中にデカップリング・キャパシタンスを加え、または配置する従来の方法により、集積回路の設計が完了した後になってからでしか対処することができない他の問題がしばしば生み出される。これらには、とりわけ、チップ・スペースの浪費、過剰なデカップリング・キャパシタンス（およびデカップリング・キャパシタンスを実装するのに必要なサポート回路（例えばスイッチング・バッファ・ツリー）による電力要件の増大、およびデカップリング・キャパシタンスを必要とする回路から過度に離して事後設計配置し、配線要件が増加することによって引き起こされるグリッド電圧の電力降下に対する不十分な補償が含まれる。
【０００６】
したがって、現在利用可能なキャパシタンス配置技法に関連するこれらの問題や他の問題を解決する、集積回路の設計中にデカップリング・キャパシタンスを加えるための方法に関しての必要が存在する。
【０００７】
【発明が解決しようとする課題】
本発明は、集積回路設計の平面設計段階の間に、集積回路内にデカップリング・キャパシタンスを加えるための方法を提供する。
【０００８】
【課題を解決するための手段】
本発明は、集積回路設計でデカップリング・キャパシタンスを加えるための方法であって、
複数の機能単位の相対位置を有する、集積回路のための平面図を作成するステップと、
前記平面図上にパワー・グリッドを重ね合わせるステップと、
前記平面図および前記パワー・グリッドを複数の領域に分割し、各領域ごとに、
前記パワー・グリッドの電圧をサポートするのに必要なサポート・デカップリング・キャパシタンス値を決定するステップと、
固有キャパシタンス値を決定するステップと、
前記サポート・デカップリング・キャパシタンス値および前記固有キャパシタンス値に基づいて、必要なデカップリング・キャパシタンス値を決定するステップと、
前記必要なデカップリング・キャパシタンス値に対するデカップリング・コンデンサ・エリアを決定するステップと、
前記デカップリング・コンデンサ・エリアに基づいて、前記領域中の回路エリアを修正するステップを含む方法を提供する。
【０００９】
加えて本発明は、
集積回路に関する平面図を作成するステップと、
前記平面図を複数の領域に分割し、各領域ごとに、
前記平面図のパワー・グリッドの電圧をサポートするのに必要なサポート・デカップリング・キャパシタンス値を決定するステップと、
固有キャパシタンス値を決定するステップと、
前記サポート・デカップリング・キャパシタンス値および前記固有キャパシタンス値に基づいて、必要なデカップリング・キャパシタンス値を決定するステップと、
前記必要なデカップリング・キャパシタンス値に対するデカップリング・コンデンサ・エリアを決定するステップと、
前記デカップリング・コンデンサ・エリアに基づいて、前記領域中の回路エリアを修正するステップを含む方法を提供する。
【００１０】
本発明は、さらに、
集積回路設計中にデカップリング・キャパシタンスを加えるための方法を実行するためにその中で実施されたコンピュータ可読プログラム・コードを有するコンピュータ使用可能媒体を備えるコンピュータ・プログラムであって、コンピュータ可読プログラム・コードが、
コンピュータ・システムに集積回路に関する平面図を作成させるためのコードと、
コンピュータ・システムに、平面図を複数の領域に分割させるためのコードと、各領域ごとに、
平面図のパワー・グリッドの電圧をサポートするのに必要なサポート・デカップリング・キャパシタンス値をコンピュータ・システムに決定させるためのコードと、
コンピュータ・システムに固有キャパシタンス値を決定させるためのコードと、
サポート・デカップリング・キャパシタンス値および固有キャパシタンス値に基づいて、必要なデカップリング・キャパシタンス値をコンピュータ・システムに決定させるためのコードと、
必要なデカップリング・キャパシタンス値に対するデカップリング・コンデンサ・エリアをコンピュータ・システムに決定させるためのコードと、
デカップリング・コンデンサ・エリアに基づいて、領域中の回路エリアをコンピュータ・システムに修正させるためのコードとを含むコンピュータ・プログラムを提供する。
【００１１】
本発明の上記その他の特徴は、以下の本発明の実施形態のより具体的な説明から明らかとなろう。
【００１２】
本発明の実施形態を、添付の図面を参照しながら詳細に説明する。添付の図面では、類似の名称は類似の要素を示す。
【００１３】
【発明の実施の形態】
本発明のある実施形態を詳細に示し、説明するが、添付の特許請求の範囲から逸脱することなく様々な変更および修正を行えることを理解されたい。本発明の範囲は、構成要素の数、その材料、形状、相対配置などに限定されない。図面は本発明を図示するためのものであるが、この図面は必ずしも原寸に比例しない。
【００１４】
集積回路チップ１０に関する例示的な平面図１２を図１に示す。平面図１２は、しばしば「マクロ」と呼ばれる、相互に論理的な関係で配置され、特定の機能を提供する複数の機能単位１４の相対位置を含む。インターナショナル・ビジネス・マシーンズ・コーポレイションから入手可能なCplace（商標）およびMCplace（商標）を含む多くの製品が、平面図１２を生成するために利用可能である。図１では、平面図１２内のマクロ１４の境界を例示的に画定するために太線１６を使用している。
【００１５】
各マクロ１４は、事前設計し、事前検証した機能を提供し、かつ各マクロ１４は、例えば組込みデカップリング・キャパシタンス・スペース要件（すなわち、デカップリング・コンデンサの配置のために利用可能なマクロ中のエリアの量）を含む、すでに十分確立された機能特性、動作特性、および電気特性を有する。図３の流れ図２０に示すように、複数の異なるマクロ、または異なるマクロの集合１４が、一般に、マクロ・ベンダによってマクロ・ライブラリ２２で提供される。集積回路チップ１０に関する平面図１２は、ＶＨＤＬまたはVerilog（登録商標）などのハードウェア記述言語（ＨＤＬ）で一般に定義される、集積回路チップ１０に関する所望の回路機能および要件２６を、マクロ・ライブラリ２２で提供される１組のマクロ１４にマッピングすることにより、周知の方式で合成される（２４）。これらの回路は、インバータ、ＮＡＮＤおよびＮＯＲゲート、ならびにフリップ・フロップおよびラッチなどの最も単純な機能から、加算器、カウンタ、混合信号回路、位相ロック・ループ、メモリ・アレイ（例えばＳＲＡＭ）、デジタル信号プロセッサ、マイクロコントローラ、さらにはマイクロプロセッサなどのより複雑な回路にまでおよぶことができる。
【００１６】
平面図１２に関するパワー・グリッド２８は周知の方式で生成され、重ね合わされるか、そうでなければ平面図１２中に組み込まれる。パワー・グリッド２８は、すべての金属層上で通常同じ周期性を有するグリッド・タイプ構造を有する。あるケースでは、コアまたはアレイなどの事前設計したマクロを使用する場合に、同じ平面図内で異なるパワー・グリッド・ピッチを有することが可能である。合成構造を図２に略図で示す。図２では、パワー・グリッド２８は、線３０によって表されている。図２に示すパワー・グリッド２８はパワー・グリッドが存在するということだけを表しており、パワー・グリッドの実際の構造またはレイアウトを表すものではないことに留意されたい。
【００１７】
図３のステップ３０では、各マクロ１４ごとの固有キャパシタンスまたは各マクロ１４ごとの固有キャパシタンス分布、あるいはその両方を決定する。固有キャパシタンスは、マクロ１４を備える回路中に存在する接地キャパシタンスへの自然発生供給レール（naturally occurring supply rail）（例えばＶＤＤ）を指す。マクロ・ライブラリ２２中の各マクロ１４ごとの固有キャパシタンスは、周知の方法を用いて各マクロ１４ごとに事前定義することができ、またはやはり周知の方法を用いて必要に応じて決定することができ、あるいはその両方で行うことができる。
【００１８】
マクロ１４の固有キャパシタンスは、一般に、マクロ１４を形成するデバイスおよび回路の設計およびレイアウトや、マクロ１４を実装するのに使用される半導体技術を含む多くの要因に依存する。例えばバルク・シリコン基板上に形成されるシリコン・デバイスでは、固有キャパシタンスは、基板またはｎウェルへのそれぞれｎまたはｐ拡散接合キャパシタンス、接地源のキャパシタンス、未使用ゲートから生じる静電キャパシタンス負荷などを含む可能性がある。他の多くの固有キャパシタンス源も存在する可能性がある。
【００１９】
図３のステップ３２では、図４に示すように、集積回路チップ１０の平面図１２を、複数の領域１８を有するグリッドに分割する。図４に示す実施形態では、例えば平面図１２全体は、複数の等しいサイズ領域１８を有するグリッドに分割される。本発明の代替実施形態では、領域１８のサイズは、例えば位相電力放散差（topological power dissipation difference）に応じて、各マクロ１４ごとに変動することがある。本発明の別の代替実施形態では、１つまたは複数のマクロ１４は、領域１８に分割されないことがある。これは、例えばマクロ１４が大きい相対サイズを有し（例えばマクロ１４がＳＲＡＭを有する）、補正デカップリング・キャパシタンスが既にマクロ１４中に構築されている場合に行われることがある。
【００２０】
グリッド領域１８のサイズは、デカップリング・コンデンサおよび供給インピーダンス３４に基づいて決定される。本発明の一実施形態では、出力ＶＤＤがチップの境界上のピンを介して平面図１２によって表される設計に供給されていると仮定する。パワー・グリッドが一様である場合、設計中のセルと電力ピンとの間の最長距離は、チップの中心である。供給インピーダンスは、ＶＤＤピンに向かうセルによって認識される抵抗を含む。チップ中心のキャパシタンス（セル）を帯電させる時間は、キャパシタンスのサイズ（セル固有のキャパシタンスおよび負荷）と、ＶＤＤとセル位置間の抵抗との関数である。同様に、デカップリング・キャパシタンスを一時的電源として見る場合、前の関係が当てはまる。しかし、デカップリング・コンデンサがセルにより近いので、デカップリング・コンデンサと負荷キャパシタンスの間の抵抗はより小さくなる。小さくなる程度は、それらの間の距離の関数となる。したがってグリッド領域１８のサイズは、負荷キャパシタンスからのデカップリング・キャパシタンスの距離の関数であり、パワー・グリッドが所定の電圧より下に降下することを防止するのにやはり効果的である。最小のとき、グリッド領域１８のサイズは、パワー・グリッドの領域のサイズとなる。しかし、必要なデカップリング・キャパシタンスの決定をより高速に、しかも正確さを保ちながら行うために、より疎のグリッド（すなわち、より大きなグリッド領域１８を有するグリッド）を使用することができる。グリッドのサイズを見つけるための１つの方法は、セル・ライブラリからの１つのデカップリング・キャパシタンスを最大にし（例えば最も粗いグリッドに対して最大にし）、それがどの程度の負荷を、パワー・グリッドによって駆動される同じ負荷よりも（大きな電圧降下を防止しながら）速く駆動することができるかを決定することである。負荷が領域あたりのセルの平均数に変換される場合、デカップリング・コンデンサから最も遠いセルの距離を決定することができる。例えばデカップリング・コンデンサが円の中心に配置される場合、その円の直径はグリッド領域の対角線となり、グリッド・ピッチは円内部の最大の正方形となる。話を簡単にするために、計算したグリッド領域を複数のパワー・グリッドに調整することができるとする。最小のデカップリングに対して同じプロセスを繰り返して、グリッド・サイズに関する上限を得る（前者は下限またはより疎なグリッドとなる）。電力ＶＤＤが周辺部からではなく、チップ内で一様な分布を有する設計に供給される場合、先の説明はやはり当てはまる。しかし、典型的な電源からのインピーダンスは前よりも小さくなる。
【００２１】
ステップ３６では、グリッド領域１８のサイズを確立した後、領域１８のそれぞれの内部に位置する回路の電流要件を、様々な所定の動作条件（例えば、平均命令ストリームに基づく活動因子、ＤＣ回路位相、および待機電流を含む）に対して決定する。集積回路チップのエリア内の電流要件を決定するための多くの回路シミュレーション・ツールが存在し、そのツールには、Synopsysから入手可能なプログラムPowerMill（登録商標）が含まれる。一般に、このようなツールは、シミュレーションした動作条件の下で、集積回路チップの離散的領域のＡＣおよびＤＣ電流ドローまたは電力要件を計算する。
【００２２】
ステップ３８は、ステップ３６と平行に実行することができる。ステップ３８では、各領域１８内の固有キャパシタンス値を、ステップ３０で決定したのと同様に、領域１８が位置するマクロ１４の固有キャパシタンスに基づいて決定する。
【００２３】
（ステップ３６で決定した）所定の電流条件の下で各領域１８中のパワー・グリッド２８の電圧をサポートするために必要なサポート・デカップリング・キャパシタンス値を、ステップ４０で提供する。例えば、サポート・デカップリング・キャパシタンス値は、領域１８内の所定の電流レベル（例えば平均または最大動作電流レベル）で動作するすべての回路要素に対して、各領域１８内の、所定の、応用例特有の範囲内のパワー・グリッド電圧をサポートするように選ぶことができる。次いで、ステップ３８でその領域に対して決定された固有キャパシタンス値を、ステップ４０で決定されたその領域に対するサポート・デカップリング・キャパシタンス値から引くことによって、各領域１８中で必要なデカップリング・キャパシタンス値を計算する。
【００２４】
ステップ４２でデカップリング・コンデンサに対する適用可能規則４４に基づいて、各領域１８中で必要なデカップリング・キャパシタンス値を実装するのに必要なエリアを決定する。次いで、デカップリング・コンデンサを設計に加え、必要なデカップリング・キャパシタンス値を提供する。デカップリング・コンデンサに対する設計規則４４は、一般に、ゲート酸化物完全性、拡散分離欠陥制御、ポリシリコン・アノード・プレート間の最小間隔、ポリシリコンおよび拡散シート抵抗、ポリ／拡散コンタクト技術などを含むいくつかの要因に依存する。
【００２５】
各領域１８ごとの必要なデカップリング・コンデンサ・エリアをステップ４２で決定した後、図３の処理フローは、設計する集積回路チップ１０のタイプに応じてステップ４６で分岐する。ステップ４６での分岐は、様々なチップ・タイプに対して共通に利用される設計方法に組み込まれるデカップリング・コンデンサ・アカウンティングの差（その例を以下で説明する）のために提供される。例えば、ＡＳＩＣ（分岐４８）に対しては、デカップリング・キャパシタンス・スペース要件は一般に各マクロ１８中に組み込まれ、マイクロプロセッサ（分岐５０）に対しては、デカップリング・キャパシタンスは一般にマクロ１８の空領域中に、さらには集積回路チップ１０全体の空領域中に加えられる。上述の典型的なＡＳＩＣまたはマイクロプロセッサのいずれかのデカップリング・キャパシタンス・アカウンティング実施例に該当しない、デジタル信号プロセッサ（ＤＳＰ）、アナログ通信チップ、マイクロコントローラなどの集積回路チップに対して、追加の分岐５２を提供する。分岐５２は、例えば分岐４８または５０で実行されるステップの修正バージョン、分岐４８および５０で実行される１組のステップの組み合わせなどを含むことができる。ＡＳＩＣおよびマイクロプロセッサが分岐４６および５０で定義される以下のフローに厳密に限定されないことにも留意されたい。実際、特定のＡＳＩＣおよびマイクロプロセッサ設計に関して追従する特定の設計方法およびデカップリング・キャパシタンス・アカウンティング実施例や、他の可能性のある要素に応じて、集積回路チップのどちらのタイプに対するフローも、流れ図２０の１つまたは複数の分岐４８および５０をたどることができる。必ずしもＡＳＩＣまたはマイクロプロセッサ・チップに該当しない他のチップ・タイプも、流れ図２０の分岐４８および５０の一方または両方をたどることができる。
【００２６】
ＡＳＩＣ分岐４８では、ステップ５４で、各領域１８中の回路が利用可能なエリアを、その領域１８に対して必要なデカップリング・コンデンサ・エリアによって縮小する。例えば、マクロ１４（または集積回路１０、あるいはその両方）の設計規則により、４０回路を領域１８内に配置することができるが、その領域１８に対して必要なデカップリング・コンデンサ・エリアが１０回路によって占有されるエリアに等しいことが示される場合、回路配置を３０回路に制限する、その領域１８に対する設計配置規則例外を生成する（ステップ５６）。逆に言えば、ステップ３８で領域１８に対する固有キャパシタンスの過大な量を決定し、ステップ４０でその領域１８に対する必要なデカップリング・コンデンサ・エリアが負となる場合、その領域１８中に追加の回路を配置することができる。やはり、その領域１８に対する設計配置規則をステップ５６で作成し、その領域１８に対する回路配置値が増加する。このプロセスを集積回路チップ１０の各領域１８ごとに実行する。その後ステップ５８で、流れ図２０の分岐４８で生成した設計配置規則例外に基づいて新しい平面図１２’を作成する。
【００２７】
マイクロプロセッサ分岐５０では、ステップ６０で、マクロ１４を有する各領域１８ごとにステップ４２で計算した、必要なデカップリング・コンデンサ・エリアを合計することによって、各マクロ１４ごとの必要な全デカップリング・コンデンサ・エリアを決定する。次いでステップ６２で、各マクロ１４ごとの必要な全デカップリング・コンデンサ・エリアと、そのマクロ１４が利用可能なデカップリング・コンデンサ・エリアとを比較する。マクロ１４中に過剰な利用可能なデカップリング・コンデンサ・エリアが存在する（すなわち、利用可能なデカップリング・コンデンサ・エリアから必要な全デカップリング・コンデンサ・エリアを引いた結果正となった）場合、フローは、分岐６４に沿ってステップ６６に進む。ステップ６６では、例えばマクロ１４のサイズ、レイアウト、または設計、あるいはそれらの組み合わせを変更することによって、そのマクロ１４に割り振られたスペースを縮小する。ステップ６２で、マクロ１４中に十分な利用可能なデカップリング・コンデンサ・エリアが存在しないと判定した場合、フローは分岐６８に沿ってステップ７０に進み、そこで追加のデカップリング・コンデンサ・スペースをそのマクロ１４に加える。これは、例えばデカップリング・コンデンサの配置のためにマクロ１４の縁に沿って追加のスペースを提供することによって実施することができる。集積回路チップ１０の平面図１２中の各マクロ１４ごとにこれらのステップを実行し、必要に応じてステップ７２で平面図を修正する。
【００２８】
本発明のデカップリング・コンデンサ配置方法を実施するための代表的なコンピュータ・システム１００を図５に示す。このコンピュータ・システム１００は、少なくとも１つのプロセッサ１０２（例えば中央演算処理装置（ＣＰＵ））を含む。プロセッサ１０２は、バス１０４を介して、ランダム・アクセス・メモリ（ＲＡＭ）１０６と、読取り専用メモリ１０８と、様々な周辺装置１１２をバス１０４に接続する入出力（Ｉ／Ｏ）アダプタ１１０とに相互接続される。周辺装置１１２は、とりわけ、ハード・ドライブ、コンパクト・ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ）ドライブ、テープ・ドライブ、フロッピー・ディスク・ドライブ、スキャナ、プリンタ、ビデオ・カメラなどを含むことができる。ユーザ・インターフェース・アダプタ１１４は、キーボード１１６、マウス１１８、マイクロフォン１２０、スピーカ１２２などの少なくとも１つのユーザ入力装置をバス１０４に接続するために提供される。ディスプレイ・アダプタ１２４は、少なくとも１つのディスプレイ装置１２６をバス１０４に相互接続するために提供される。少なくとも１つのデータ・ネットワーク１２８は、１つまたは複数の通信アダプタ１３０を介してバス１０４に接続される。図５は、コンピュータ・システム１００をハードウェアおよびソフトウェアの特定の構成として示すが、当業者に周知のどんな適切なハードウェアおよびソフトウェアの構成を使用しても、本発明のデカップリング・コンデンサ配置方法を実行することができる。
【００２９】
図３で詳述した実施形態などの本発明のデカップリング・コンデンサ配置方法の別の実施形態を、１組または複数組の命令（例えばコンピュータ可読プログラム・コード）として実装することができる。この命令は、図５を参照して説明したように一般に構成される１つまたは複数のコンピュータ・システム１００のランダム・アクセス・メモリ１０６中に、または他の適切な位置に常駐することができる。その１組の命令は、コンピュータ・システム１００によって要求されるまで、例えばハード・ドライブ、フロッピー・ディスク、磁気テープ、コンパクト・ディスク、光ディスクなどを含む取外し可能な、または固定のコンピュータ使用可能媒体中に格納される。コンピュータ使用可能媒体はバス１０４に直接接続することができ、またはＣＤ−ＲＯＭドライブ、フロッピー・ディスク・ドライブなどの適切な装置を介してアクセスすることができる。さらに、この１組の命令を別のコンピュータのメモリ中に、または別のコンピュータに装着されたコンピュータ使用可能媒体中に格納し、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（例えばインターネット）などのネットワークを介して送ることもできる。１組の命令が電気的、機械的、または化学的に格納される媒体を、その命令の物理記憶域が物理的に変更し、その結果その媒体がコンピュータ使用可能情報を担持することを当業者は理解されよう。
【００３０】
上記で概説した特定の実施形態に関連して本発明を説明したが、多くの代替形態、修正形態、および変形形態が当業者には明らかであろう。したがって、上述の本発明の実施形態は、例示的なものであって限定的なものではない。頭記の特許請求の範囲で定義される本発明の精神および範囲から逸脱することなく、様々な変更を行うことができる。
【００３１】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３２】
（１）集積回路設計でデカップリング・キャパシタンスを加えるための方法であって、
複数の機能単位の相対位置を有する、集積回路のための平面図を作成するステップと、
前記平面図上にパワー・グリッドを重ね合わせるステップと、
前記平面図および前記パワー・グリッドを複数の領域に分割し、各領域ごとに、
前記パワー・グリッドの電圧をサポートするのに必要なサポート・デカップリング・キャパシタンス値を決定するステップと、
固有キャパシタンス値を決定するステップと、
前記サポート・デカップリング・キャパシタンス値および前記固有キャパシタンス値に基づいて、必要なデカップリング・キャパシタンス値を決定するステップと、
前記必要なデカップリング・キャパシタンス値に対するデカップリング・コンデンサ・エリアを決定するステップと、
前記デカップリング・コンデンサ・エリアに基づいて、前記領域中の回路エリアを修正するステップを含む方法。
（２）前記機能単位がマクロを含む上記（１）に記載の方法。
（３）ライブラリから前記複数の機能単位を選択するステップと、
前記複数の選択した機能単位を、相互に論理的な関係で配置することによって前記平面図を作成するステップをさらに含む上記（１）に記載の方法。
（４）前記集積回路が特定用途向け集積回路（ＡＳＩＣ）を備える上記（１）に記載の方法。
（５）前記集積回路がマイクロプロセッサを備える上記（１）に記載の方法。
（６）各領域中の前記修正した回路エリアに基づいて前記平面図を修正するステップをさらに含む上記（１）に記載の方法。
（７）前記機能単位内の各領域中の前記修正した回路エリアに基づいて、前記平面図中の機能単位を修正するステップをさらに含む上記（１）に記載の方法。
（８）各領域ごとの前記必要なデカップリング・キャパシタンス値が、前記固有キャパシタンス値から前記サポート・デカップリング・キャパシタンス値を引くことによって決定される上記（１）に記載の方法。
（９）各領域が同一サイズを有する上記（１）に記載の方法。
（１０）各機能単位内の前記領域が同一サイズを有する上記（１）に記載の方法。
（１１）各領域のサイズを確立するステップをさらに含む上記（１）に記載の方法。
（１２）各領域ごとに、前記デカップリング・コンデンサ・エリアに対応する量だけ、領域中の利用可能な回路エリアを縮小するステップをさらに含む上記（１）に記載の方法。
（１３）各領域ごとに、前記デカップリング・コンデンサ・エリアに対応する量だけ、前記領域中の利用可能な回路エリアを増大させるステップをさらに含む上記（１）に記載の方法。
（１４）各機能ユニットごとに、
デカップリング・コンデンサが利用可能な所定量のエリアを提供するステップと、
前記必要な全デカップリング・コンデンサ・エリアを決定するステップと、
前記必要な全デカップリング・コンデンサ・エリアと、前記利用可能なデカップリング・コンデンサ・エリアとを比較するステップをさらに含む上記（１）に記載の方法。
（１５）前記機能単位内の各領域ごとに、前記必要なデカップリング・コンデンサ・エリアを合計することによって、各機能単位ごとの前記必要な全デカップリング・コンデンサ・エリアを決定するステップをさらに含む上記（１４）に記載の方法。
（１６）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリア未満の場合に、前記平面図中の前記機能単位に割り振られたスペースを縮小するステップをさらに含む上記（１４）に記載の方法。
（１７）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリア未満の場合に、前記機能単位のサイズを縮小するステップをさらに含む上記（１４）に記載の方法。
（１８）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリア未満の場合に、前記機能単位のレイアウトを調整するステップをさらに含む上記（１４）に記載の方法。
（１９）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリアより大きい場合に、前記機能単位中のデカップリング・キャパシタンスが利用可能な前記所定量のエリアを増大させるステップをさらに含む上記（１４）に記載の方法。
（２０）集積回路に関する平面図を作成するステップと、
前記平面図を複数の領域に分割し、各領域ごとに、
前記平面図のパワー・グリッドの電圧をサポートするのに必要なサポート・デカップリング・キャパシタンス値を決定するステップと、
固有キャパシタンス値を決定するステップと、
前記サポート・デカップリング・キャパシタンス値および前記固有キャパシタンス値に基づいて、必要なデカップリング・キャパシタンス値を決定するステップと、
前記必要なデカップリング・キャパシタンス値に対するデカップリング・コンデンサ・エリアを決定するステップと、
前記デカップリング・コンデンサ・エリアに基づいて、前記領域中の回路エリアを修正するステップを含む方法。
（２１）前記平面図が複数のマクロを備える上記（２０）に記載の方法。
（２２）ライブラリから前記複数のマクロを選択するステップと、
前記複数の選択したマクロを、相互に論理的な関係で配置することによって前記平面図を作成するステップをさらに含む上記（２１）に記載の方法。
（２３）前記集積回路が特定用途向け集積回路（ＡＳＩＣ）を備える上記（２０）に記載の方法。
（２４）前記集積回路がマイクロプロセッサを備える上記（２０）に記載の方法。
（２５）各領域中の前記修正した回路エリアに基づいて平面図を修正するステップをさらに含む上記（２０）に記載の方法。
（２６）マクロ内の各領域中の修正した回路エリアに基づいて、前記平面図中の前記マクロを修正するステップをさらに含む上記（２１）に記載の方法。
（２７）各領域ごとの前記必要なデカップリング・キャパシタンス値が、前記固有キャパシタンス値から前記サポート・デカップリング・キャパシタンス値を引くことによって決定される上記（２０）に記載の方法。
（２８）各領域が同一サイズを有する上記（２０）に記載の方法。
（２９）各マクロ内の前記領域が同一サイズを有する上記（２１）に記載の方法。
（３０）各領域のサイズを確立するステップをさらに含む上記（２０）に記載の方法。
（３１）各領域ごとに、前記デカップリング・コンデンサ・エリアに対応する量だけ、前記領域中の利用可能な回路エリアを縮小するステップをさらに含む上記（２０）に記載の方法。
（３２）各領域ごとに、前記デカップリング・コンデンサ・エリアに対応する量だけ、前記領域中の利用可能な回路エリアを増大させるステップをさらに含む上記（２０）に記載の方法。
（３３）各マクロごとに、
デカップリング・コンデンサが利用可能な所定量のエリアを提供するステップと、
前記必要な全デカップリング・コンデンサ・エリアを決定するステップと、
前記必要な全デカップリング・コンデンサ・エリアと、前記利用可能なデカップリング・コンデンサ・エリアとを比較するステップをさらに含む上記（２１）に記載の方法。
（３４）前記マクロ内の各領域ごとに、前記必要なデカップリング・コンデンサ・エリアを合計することによって、各マクロごとの前記必要な全デカップリング・コンデンサ・エリアを決定するステップをさらに含む上記（３３）に記載の方法。
（３５）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリア未満の場合に、前記平面図中の前記マクロに割り振られたスペースを縮小するステップをさらに含む上記（３３）に記載の方法。
（３６）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリア未満の場合に、前記マクロのサイズを縮小するステップをさらに含む上記（３３）に記載の方法。
（３７）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリア未満の場合に、前記マクロのレイアウトを調整するステップをさらに含む上記（３３）に記載の方法。
（３８）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリアより大きい場合に、前記マクロ中のデカップリング・キャパシタンスが利用可能な前記所定量のエリアを増大させるステップをさらに含む上記（３３）に記載の方法。
（３９）集積回路設計中にデカップリング・キャパシタンスを加えるための方法を実行するためにその中で実施されたコンピュータ可読プログラム・コードを有するコンピュータ使用可能媒体を備えるコンピュータ・プログラムであって、前記コンピュータ可読プログラム・コードが、
コンピュータ・システムに集積回路に関する平面図を作成させるためのコードと、
コンピュータ・システムに、前記平面図を複数の領域に分割させるためのコードと、各領域ごとに、
平面図のパワー・グリッドの電圧をサポートするのに必要なサポート・デカップリング・キャパシタンス値をコンピュータ・システムに決定させるためのコードと、
前記コンピュータ・システムに固有キャパシタンス値を決定させるためのコードと、
前記サポート・デカップリング・キャパシタンス値および前記固有キャパシタンス値に基づいて、必要なデカップリング・キャパシタンス値を前記コンピュータ・システムに決定させるためのコードと、
前記必要なデカップリング・キャパシタンス値に対するデカップリング・コンデンサ・エリアを前記コンピュータ・システムに決定させるためのコードと、
前記デカップリング・コンデンサ・エリアに基づいて、前記領域中の回路エリアを前記コンピュータ・システムに修正させるためのコードとを含むコンピュータ・プログラム。
（４０）前記平面図が複数のマクロを備え、
前記コンピュータ・システムにライブラリから前記複数のマクロを選択させるためのコードと、
前記コンピュータ・システムに、前記複数の選択したマクロを相互に論理的な関係で配置することによって前記平面図を作成させるためのコードとをさらに含む上記（３９）に記載のコンピュータ・プログラム。
（４１）各領域中の前記修正した回路エリアに基づいて前記コンピュータ・システムに前記平面図を修正させるためのコードをさらに含む上記（３９）に記載のコンピュータ・プログラム。
（４２）前記平面図が複数のマクロを備え、
マクロ内の各領域中の前記修正した回路エリアに基づいて前記コンピュータ・システムに平面図中のマクロを修正させるためのコードをさらに含む上記（３９）に記載のコンピュータ・プログラム。
（４３）必要なデカップリング・キャパシタンス値を前記コンピュータ・システムに決定させるための前記コードが、前記固有キャパシタンス値から前記サポート・デカップリング・キャパシタンス値を前記コンピュータ・システムに減算させるためのコードを含む上記（３９）に記載のコンピュータ・プログラム。
（４４）前記コンピュータ・システムに各領域のサイズを確立させるためのコードをさらに含む上記（３９）に記載のコンピュータ・プログラム。
（４５）各領域中の利用可能な回路エリアを、前記デカップリング・コンデンサ・エリアに対応する量だけ前記コンピュータ・システムに縮小させるためのコードをさらに含む上記（３９）に記載のコンピュータ・プログラム。
（４６）各領域中の利用可能な回路エリアを、前記デカップリング・コンデンサ・エリアに対応する量だけ前記コンピュータ・システムに増大させるためのコードをさらに含む上記（３９）に記載のコンピュータ・プログラム。
（４７）各マクロごとに、
デカップリング・コンデンサが利用可能な所定量のエリアを前記コンピュータ・システムに提供させるためのコードと、
前記必要な全デカップリング・コンデンサ・エリアを前記コンピュータ・システムに決定させるためのコードと、
前記必要な全デカップリング・コンデンサ・エリアと、前記利用可能なデカップリング・コンデンサ・エリアとを前記コンピュータ・システムに比較させるためのコードとをさらに含む上記（４２）に記載のコンピュータ・プログラム。
（４８）マクロ内の各領域ごとに、前記必要なデカップリング・コンデンサ・エリアを合計することによって、各マクロごとの前記必要な全デカップリング・コンデンサ・エリアをコンピュータ・システムに決定させるためのコードをさらに含む上記（４７）に記載のコンピュータ・プログラム。
（４９）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリア未満の場合に、前記平面図中の前記マクロに割り振られたスペースを前記コンピュータ・プログラムに縮小させるためのコードをさらに含む上記（４７）に記載のコンピュータ・プログラム。
（５０）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリア未満の場合に、前記マクロのサイズを前記コンピュータ・システムに縮小させるためのコードをさらに含む上記（４７）に記載のコンピュータ・プログラム。
（５１）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリア未満の場合に、前記マクロのレイアウトを前記コンピュータ・システムに調整させるためのコードをさらに含む上記（４７）に記載のコンピュータ・プログラム。
（５２）前記必要な全デカップリング・コンデンサ・エリアが前記利用可能なデカップリング・コンデンサ・エリアより大きい場合に、前記マクロ中のデカップリング・キャパシタンスが利用可能な前記所定量のエリアを前記コンピュータ・システムに増大させるためのコードをさらに含む上記（４７）に記載のコンピュータ・プログラム。
【図面の簡単な説明】
【図１】集積回路チップに関する平面図である。
【図２】図１の平面図の上にパワー・グリッドを重ね合わせた図である。
【図３】本発明の方法を示す流れ図である。
【図４】本発明により複数の領域に分割される図２の平面図を示す図である。
【図５】本発明の方法を実施するための代表的なコンピュータ・システムを示す図である。
【符号の説明】
１０  集積回路チップ
１２  平面図
１４  マクロ
１８  領域
２０  流れ図
２８  パワー・グリッド
１００  コンピュータ・システム
１０２  プロセッサ
１０４  バス
１０６  ランダム・アクセス・メモリ
１０８  読取り専用メモリ
１１０  Ｉ／Ｏアダプタ
１１２  周辺装置
１１４  ユーザ・インターフェース・アダプタ
１１６  キーボード
１１８  マウス
１２０  マイクロフォン
１２２  スピーカ
１２４  ディスプレイ・アダプタ
１２６  ディスプレイ装置
１２８  ネットワーク
１３０  通信アダプタ
【図１】
0003800514.tif 000002
【図２】
0003800514.tif 000003
【図３】
0003800514.tif 000004
【図４】
0003800514.tif 000005
【図５】
0003800514.tif 000006