(57)【要約】      （修正有）【課題】集積回路内の電源電位分布及び基準電位分布に応じたクロック配線を設計する方法を提供する。【解決手段】集積回路内の電源電位分布及び基準電位分布を演算する演算ステップと、電源電位分布及び基準電位分布を基に集積回路内のクロック配線を設計する設計ステップとを有する集積回路設計方法が提供される。集積回路内の電源電位分布及び基準電位分布に応じたクロック配線を設計することによりクロックスキューを低減し、時間的な電源電圧変動が発生している状況下でもクロック分配の安定供給が可能になる。【選択図】        図４
2004199279.tif 000002
【特許請求の範囲】
【請求項１】
集積回路内の電源電位分布及び基準電位分布を演算する演算ステップと、
前記電源電位分布及び前記基準電位分布を基に集積回路内のクロック配線を設計する設計ステップと
を有する集積回路設計方法。
【請求項２】
前記演算ステップは、集積回路内の電源電位配線網及び基準電位配線網をモデリングして抵抗素子からなるネットリストを生成し、該ネットリストを基に電源電位分布及び基準電位分布を演算する請求項１記載の集積回路設計方法。
【請求項３】
前記設計ステップは、前記電源電位分布及び前記基準電位分布を基にクロック配線分岐枝の長さを調整する請求項１記載の集積回路設計方法。
【請求項４】
前記設計ステップは、２分岐した２本のクロック配線の遅延時間が等しくなるようにクロック配線分岐点を設計する請求項３記載の集積回路設計方法。
【請求項５】
前記設計ステップは、前記電源電位及び前記基準電位の差の等電位上に、同じ段階数のバッファ又はインバータを配置する請求項１記載の集積回路設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路設計方法に関し、特に集積回路内のクロック配線の設計方法に関する。
【０００２】
【従来の技術】
近年の集積回路は、ＬＳＩ半導体チップ自身にシステムの機能を持たせる、システムオンチップ（ＳｏＣ）への意向が強く、チップに搭載する回路規模が急増し、大規模チップやIP混在チップが数多く出荷されている。また、低消費電力化、低コスト化の流れにより、できるだけパッケージを小さくし、パッケージピン数を抑える努力が不可欠になっている。その結果、パッケージピンに占める電源ピンの本数が制約を受け、十分な本数の電源ピン数を確保できないという事態すらある。
【０００３】
一方、チップ内部については、複雑で大規模な論理を１チップに収めるため、搭載するゲート数（トランジスタ数）が増加し、それらを接続するネット数も膨大な規模になる。したがって、電源配線の補強よりも一般信号配線の引き回しに面積を割かなければならなくなりチップ面内の電圧降下を抑えた設計は、「チップ面積＋配線層数」と「チップコスト」のトレードオフとなり、設計できる範囲で妥協しなければならない。
【０００４】
【発明が解決しようとする課題】
以上の理由から、LSIチップの電源配線の電圧降下を無視できるようなLSIの開発は技術的には可能でも、コストの観点からは、チップが動作する範囲内で妥協せざるを得ないのが現実である。従来の設計では、チップ面内の電源配線電圧降下をある基準値以下に抑えるような設計が主流で、電圧降下値を設計にフィードバックすることは難しかった。
【０００５】
クロック配線は、所定間隔のバッファを介して接続される。バッファは、電源電圧の供給を受けて、クロック信号を伝達する。集積回路内の電源配線により、電源電圧が降下する。すなわち、各バッファに供給される電源電圧は、電圧降下に応じた異なる値をとり得る。バッファの電源電圧が下がると、そのクロック信号の遅延時間が長くなる。しかし、実際には、そのような電圧降下を無視してクロック配線が設計されている。その結果、同じ段階数のバッファであっても、クロック信号の遅延時間が異なってしまい、クロックスキューが増加してしまう。クロックスキューが増加すると、集積回路内の同期がとれず、正常な動作を行うことができなくなってしまう。
【０００６】
また、上記のように、電源ピン数が減ってきている。電源ピン数が多いほど、電源電圧降下を防ぐことができる。しかし、電源ピン数が少ないと、電源電圧降下が生じ易くなり、各バッファに供給される電源電圧に差異が生じ易い。この結果、クロックスキューが増加しがちになる。
【０００７】
本発明の目的は、集積回路内の電源電位分布及び基準電位分布に応じたクロック配線を設計することである。
【０００８】
【課題を解決するための手段】
本発明の一観点によれば、集積回路内の電源電位分布及び基準電位分布を演算する演算ステップと、電源電位分布及び基準電位分布を基に集積回路内のクロック配線を設計する設計ステップとを有する集積回路設計方法が提供される。
【０００９】
集積回路内の電源電位分布及び基準電位分布に応じたクロック配線を設計することにより、クロックスキューを低減し、時間的な電源電圧変動が発生している状況下でもクロック分配の安定供給が可能になる。
【００１０】
【発明の実施の形態】
本発明の実施形態では、クロック配線ツリー（以下、クロックツリーという）の生成段階で、電源配線の電圧降下によるドロップを求め、電源電圧の正味のドロップ量から、クロックツリーの部分枝の最適化を行なう。以下、アルゴリズムの概要を順に述べる。
【００１１】
（１）ＬＳＩ半導体チップ面内の電源配線の抵抗網を抽出しネットワークを作成する。
【００１２】
（２）チップ外周の入出力パッド（I/O-PAD）に、チップパッケージとワイヤーボンディングでドロップした後の正味の電圧値を与え境界条件とする。
【００１３】
（３）チップをN×M個のリージョン（領域）に分割し、各リージョンで使用する平均的な消費電流を、リージョン内の抵抗網の交点に電流源として付加する。
【００１４】
（４）チップ外周の入出力パッド（I/O-PAD）の境界条件と、(N-2)×(M-2)個の交点にある電流源を基にしてチップ全面の電圧降下量を計算し、電源電位VD(X,Y)とグランド電位（基準電位）VS(X,Y)を配列に保存する。
【００１５】
図１に、X,Y平面の実効的な電源電圧（VD(X,Y)- VS(X,Y)）を鳥瞰図表示する。X軸はチップのX軸（任意単位）、Y軸はチップのY軸（任意単位）、Z軸は実効的な電源電圧（VD(X,Y)- VS(X,Y)）［Ｖ］を示す。底面（XY面）には電源電圧の等高線も合わせて表示する。例えば、XY面の４つの辺（５単位刻み）の入出力パッドに、１．２Ｖの電源電圧が供給される。電源電位VD(X,Y)は、電源電位配線網の電圧降下による電源電位分布として演算される。グランド電位VS(X,Y)は、グランド電位配線網の電圧降下によるグランド電位分布として演算される。電源電圧は、電源電位VD(X,Y)とグランド電位VS(X,Y)の差で与えられる。
【００１６】
（５）チップ面内にあるＨツリー（H-Tree）タイプのクロックツリー（図５参照）に対して、ツリーの末端側より順番に、図２の２分岐枝の片方の長さＬ１を補正していく。バッファＤＶ１は、電源電位ＶＤ１及びグランド電位ＶＳ１に接続され、２分岐枝交点ＰＡの直前に設けられる。バッファＤＶ１の出力は、交点ＰＡを介して、クロック配線ＬＮ２及びＬＮ３に２分岐する。長さＬは、クロック配線ＬＮ２及びＬＮ３の合計配線長である。長さＬ１は、クロック配線ＬＮ２の配線長である。クロック配線ＬＮ２は、バッファＲＶ２の入力に接続される。バッファＲＶ２は、電源電位ＶＤ２及びグランド電位ＶＳ２に接続される。クロック配線ＬＮ３は、バッファＲＶ３の入力に接続される。バッファＲＶ３は、電源電位ＶＤ３及びグランド電位ＶＳ３に接続される。バッファＲＶ２及びＲＶ３は、同じ段階数のバッファであるので、クロック信号の遅延時間が同じである必要がある。バッファＲＶ２の電源電圧ＶＤ２−ＶＳ２とバッファＲＶ３の電源電圧ＶＤ３−ＶＳ３が同じであれば、長さＬ１はＬ／２である。長さＬ１がＬ／２であるクロックツリーを予め設計しておき、これを補正して行く。まず、図１に示す電源電圧分布を基に、バッファＲＶ２の電源電圧ＶＤ２−ＶＳ２とバッファＲＶ３の電源電圧ＶＤ３−ＶＳ３を求める。その電源電圧に応じて、長さＬ１を補正する。すなわち、バッファＲＶ２の出力クロック信号とバッファＲＶ３の出力クロック信号の遅延時間が同じになるように、長さＬ１を調整する。
【００１７】
（６）図３に示すように、補正前の２分岐の交点をＰＡ、補正後の２分岐の交点をＰＢとし、交点ＰＡ及びＰＢにそれぞれインバータＩＶ１及びＩＶ２を配置する。図２の補正前のバッファＤＶ１は、図３の補正後のインバータＩＶ１及びＩＶ２に置き換えられる。インバータＩＶ１及びＩＶ２は、それぞれクロック信号を反転する。インバータＩＶ１は、電源電位ＶＤ１及びＶＳ１に接続され、出力が点ＰＡに接続される。インバータＩＶ１は、図２のバッファＶＤ１と同じ位置であり、電源電位ＶＤ１及びグランド電位ＶＳ１が同じである。インバータＩＶ１の出力は、点ＰＡ及びクロック配線ＬＮ４を介して、インバータＩＶ２の入力に接続される。インバータＩＶ２の出力は、補正後の分岐点ＰＢを介して、クロック配線ＬＮ２及びＬＮ３に２分岐される。インバータＩＶ２は、バッファＲＶ２及びＲＶ３のおよそ中間に位置するので、それらの平均として、電源電位（ＶＤ２＋ＶＤ３）／２及びグランド電位（ＶＳ２＋ＶＳ３）／２が与えられる。なお、インバータＩＶ２の電源電位及びグランド電位は、図１の電源電圧分布から求めてもよい。インバータＩＶ１及びＩＶ２のサイズ等を調整することにより、バッファＤＶ１よりも遅延時間（インサーションディレイ）を短くすることができる。
【００１８】
図４（Ａ）は補正前のクロック配線を示し、図４（Ｂ）は補正後のクロック配線を示す。クロック配線ＬＮ１は、図２及び図３のクロック配線ＬＮ２及びＬＮ３をまとめた配線として示す。図４（Ａ）では、バッファＤＶ１の出力が点ＰＡにおいて２分岐している。図４（Ｂ）では、インバータＩＶ２の出力が点ＰＢにおいて２分岐している。インバータＩＶ１及びＩＶ２は、バッファＤＶ１を置き換えたものである。バッファは、２つのインバータの直列接続により構成されるので、図４（Ａ）及び図４（Ｂ）の構成は実質的に同じである。図４（Ａ）では、点ＰＡのビアホールを介して、バッファＤＶ１の出力とクロック配線ＬＮ１が接続される。図４（Ｂ）では、インバータＩＶ１の出力が点ＰＡで接続されず、インバータＩＶ２の出力が点ＰＢのビアホールを介してクロック配線ＬＮ１に接続される。図４（Ａ）の点ＰＡと図４（Ｂ）の点ＰＡは同じ位置を示す。
【００１９】
（７）図５に示すように、上記の（５）及び（６）のステップをルートクロックバッファ５０１まで遡って行き、クロックツリー全体の補正を完了する。ルートクロックバッファ５０１の入力は、クロック配線を介してチップの入出力パッドに接続される。クロックツリーは、ルートクロックバッファ５０１をルートとして、２分木を構成する。分岐前には、三角形で示すバッファが接続される。例えば、バッファＤＶ１の出力は、補正前の分岐点ＰＡにおいて分岐される。分岐点ＰＡは、２分岐された２本のクロック配線の長さが同じになるように設けられる。上記の補正により、○印で示す補正後の分岐点ＰＢが求められる。図５の電源電圧分布は、図１に対応するものである。
【００２０】
図６は、本実施形態の集積回路設計方法の詳細を示すフローチャートである。まず、ステップＳ６０１では、チップ面内の電源配線（電源電位配線及びグランド電位配線）の抵抗網を抽出し、配線情報を得て、外部記憶装置６０２に保存する。
【００２１】
次に、ステップＳ６０３では、チップをＮ×Ｍ個のメッシュリージョン（領域）に分割したグランド電位モデル６２１及び電源電位モデル６２２を生成する。外部記憶装置６０２内の配線情報を基に、抵抗セグメントＲ１〜Ｒ４を算出する。例えば、対象ノード接点が（Ｉ，Ｊ）のときには、ノード接点（Ｉ，Ｊ）に接続される４つの抵抗Ｒ１〜Ｒ４を算出する。接続されていない配線の抵抗値は無限大とする。
【００２２】
次に、ステップＳ６０４では、Ｎ×Ｍ平面全域に渡って処理を繰り返し、グランド電位モデル６２１及び電源電位モデル６２２の抵抗網ネットリストを作成し、それぞれ外部記憶装置６０５及び６０６に保存する。
【００２３】
次に、ステップＳ６０７では、チップ外周の入出力（Ｉ／Ｏ）パッドに、チップパッケージとワイヤーボンディングでドロップした後の正味の電圧値を与え、境界条件とする。例えば、グランド電位モデル６２１の外周には、境界条件として、４つの電圧０．１３Ｖ、０．１１Ｖ、０．１１Ｖ及び０．１２Ｖを与える。電源電位モデル６２２の外周には、境界条件として、４つの電圧１．３３Ｖ、１．３６Ｖ、１．３４Ｖ及び１．３５Ｖを与える。その境界条件を、外部記憶装置６０５及び６０６に書き込む。
【００２４】
次に、ステップＳ６０８では、Ｎ×Ｍ個のリージョンで使用される平均的な消費電流を電流源６２４として電源電位モデル６２２及びグランド電位モデル６２１のノード接点間に付加する。例えば、対象ノード接点（Ｉ，Ｊ）のときには、領域６２３内の平均消費電流を求めてその電流源６２４を、電源電位モデル６２２のノード接点（Ｉ，Ｊ）とグランド電位モデル６２１のノード接点（ｉ，Ｊ）との間に接続する。その電流源６２４のネットリストを、外部記憶装置６０５及び６０６に書き込む。
【００２５】
次に、ステップＳ６０９では、上記の境界条件とＮ×Ｍ個の電流源を基にして、チップ全面の電圧降下量を計算し、電源電位ＶＤ（Ｘ，Ｙ）及びグランド電位ＶＳ（Ｘ，Ｙ）を外部記憶装置６１０及び６１１に保存する。これにより、チップ内の電源電位分布及びグランド電位分布が生成される。
【００２６】
次に、図７を参照しながら説明する。続いて、ステップＳ７０１では、Ｎ×Ｍ個のメッシュリージョン（領域）において、外部記憶装置６１０及び６１１内の電源電位ＶＤ（Ｘ，Ｙ）及びグランド電位ＶＳ（Ｘ，Ｙ）を基に、次式の実効的な電源電圧ＶＤＳ（Ｘ，Ｙ）を求め、外部記憶装置７０２に保存する。
【００２７】
ＶＤＳ（Ｘ，Ｙ）＝ＶＤ（Ｘ，Ｙ）−ＶＳ（Ｘ，Ｙ）
【００２８】
次に、ステップＳ７０３では、クロックツリー７２１において２分岐枝のドライバ側をドライババッファＤＶ１とし、レシーバ側をレシーババッファＲＶ２及びＲＶ３とする。そして、ドライババッファＤＶ１の電源電圧ＶＤＳ１（Ｘ１，Ｙ１）、レシーババッファＲＶ２の電源電圧ＶＤＳ２（Ｘ２，Ｙ２）及びレシーババッファＲＶ３（Ｘ３，Ｙ３）の電源電圧ＶＤＳ３（Ｘ３，Ｙ３）を、次式により求め、外部記憶装置７０４〜７０６に保存する。
【００２９】
ＶＤＳ１（Ｘ１，Ｙ１）＝ＶＤ（Ｘ１，Ｙ１）−ＶＳ（Ｘ１，Ｙ１）
ＶＤＳ２（Ｘ２，Ｙ２）＝ＶＤ（Ｘ２，Ｙ２）−ＶＳ（Ｘ２，Ｙ２）
ＶＤＳ３（Ｘ３，Ｙ３）＝ＶＤ（Ｘ３，Ｙ３）−ＶＳ（Ｘ３，Ｙ３）
【００３０】
ここで、ドライババッファＤＶ１は（Ｘ１，Ｘ１）に位置し、レシーババッファＲＶ２は（Ｘ２，Ｙ２）に位置し、レシーババッファＲＶ３は（Ｘ３，Ｙ３）に位置する。
【００３１】
次に、ステップＳ７０７では、計算式７１０に従い、レシーババッファＲＶ２及びＲＶ３の固有遅延時間Ｔ０２及びＴ０３を求め、外部記憶装置７０８及び７０９に保存する。ここで、Ｌｇはゲート長、ＶＴはトランジスタのしきい値電圧、ｎはＮファクター、μは実効移動度である。ドライババッファＤＶ１は、ゲート長がＬｇ、ゲート幅がＷｇＤのトランジスタを含む。レシーババッファＲＶ２は、ゲート長がＬｇ、ゲート幅がＷｇＲのトランジスタを含む。レシーババッファＲＶ３は、ゲート長がＬｇ、ゲート幅がＷｇＲのトランジスタを含む。
【００３２】
次に、図８を参照しながら説明する。続いて、ステップＳ８０１では、外部記憶装置７０８及び７０９内の固有遅延時間Ｔ０２及びＴ０３とその他の物理パラメータを基に、計算式８０３に従い、２分岐クロック線路（配線）の片側の線路ＬＮ２の配線長Ｌ１を算出し、外部記憶装置８０２に格納する。
【００３３】
ここで、Ｌｇはゲート長、ＷｇＲはレシーババッファＲＶ２及びＲＶ３内のトランジスタゲート幅、ＶＴはトランジスタのしきい値電圧、ｎはＮファクター、μは実効移動度、Ｌは２分岐配線ＬＮ２及びＬＮ３の合計長、Ｒ０は単位長さ当たりの配線抵抗、Ｃ０は単位長さ当たりの配線容量、Ｃｏｘはゲートの酸化膜容量、ＣＬはレシーババッファＲＶ２及びＲＶ３に接続される負荷容量である。
【００３４】
次に、ステップＳ８０４では、２分岐配線を２等分する補正前の分岐点をＰＡ、長さＬ１の配線ＬＮ２に補正された点をＰＢとする。
【００３５】
次に、図９を参照しながら説明する。続いて、ステップＳ９０１では、点ＰＡのドライババッファＤＶ１（図８）を同サイズのインバータＩＶ１に置き換える。次に、点ＰＢにも、インバータＩＶ２を配置し、点ＰＡ及びＰＢ間に配線ＬＮ４を配線する。インバータＩＶ２の出力は、点ＰＢにて配線ＬＮ２及びＬＮ３に分岐される。
【００３６】
次に、ステップＳ９０２では、クロックツリー７２１の処理対象として他にリーフノードが存在しないか否かを判断する。本実施形態では、クロックツリー７２１において、リーフ側からルート側に向かって分岐単位で処理を行っていく。処理対象の段階数において、他にリーフノードが存在するか否かをチェックする。リーフノードが存在すればステップＳ９０３へ進み、リーフノードが存在しなければステップＳ９０４へ進む。
【００３７】
ステップＳ９０３では、同じクロックバッファ段階数の別のリーフノードへ移り、図７のステップＳ７０３から処理を継続する。
【００３８】
ステップＳ９０４では、クロックツリー７２１の処理対象がルートクロックバッファ５０１（図５）か否かをチェックする。ルートクロックバッファでなければステップＳ９０５へ進み、ルートクロックバッファであれば処理を終了する。
【００３９】
ステップＳ９０５では、親のクロックツリー階層へターゲットを移し、図７のステップＳ７０３から処理を継続する。
【００４０】
以上の処理を行うことにより、図５に示すように、すべての分岐について、補正前の分岐点ＰＡを補正後の分岐点ＰＢに補正することができる。この補正により、同じ段階数のクロックバッファ（インバータ）の出力クロック信号は同じ遅延時間になり、クロックスキューを低減することができる。
【００４１】
図１０（Ａ）〜（Ｃ）は、本実施形態によるクロックツリーのＳＰＩＣＥ（Simulation Program with Integrated Circuit Emphasis）波形を示す。ここで、クロックスキューは、リーフノードにある１６個のクロックバッファ（インバータ）の出口における波形のバラツキとして計測する。チップ面内の電源電圧降下が無ければ、ＳＰＩＣＥ上はスキューゼロで計算される。しかしながら、チップ内部の電源電圧降下があるためスキューは発生してしまう。
【００４２】
図１０（Ｂ）は補正前のクロックツリーの末端の１６ヶ所のクロック電圧波形を示す。立ち下がりエッジでは、１６個のクロック波形間のスキュー時間Ｔ１１は４６２［ｐｓ］である。立ち上がりエッジでは、１６個のクロック波形間のスキュー時間Ｔ２は４７８［ｐｓ］である。
【００４３】
図１０（Ａ）は本実施形態による補正後のクロックツリーの末端の１６ヶ所のクロック電圧波形を示す。立ち下がりエッジでは、１６個のクロック波形間のスキュー時間Ｔ１は４１１［ｐｓ］である。この補正後のスキュー時間Ｔ１は、補正前のスキュー時間Ｔ１１に比べて１１％短く改善された。立ち上がりエッジでは、１６個のクロック波形間のスキュー時間Ｔ２は４３０［ｐｓ］である。この補正後のスキュー時間Ｔ２は、補正前のスキュー時間Ｔ１２に比べて１０％短く改善された。
【００４４】
図１０（Ｃ）は、ルートクロックバッファ（インバータ）の電圧波形１０００、補正前のクロックツリー末端の電圧波形１０１２及び補正後のクロックツリー末端の電圧波形１０１１を示す。ここで、インサーションディレイは、ルートクロックバッファの入り口からリーフノードのクロックバッファ（インバータ）の出口までの遅延時間とする。補正前のインサーションディレイＴ２２は、１．２７［ｎｓ］である。補正後のインサーションディレイＴ２１は、１．１６［ｎｓ］であり、補正前のインサーションディレイに比べて８．６％短く改善された。本実施形態では、補正前のドライババッファを補正後には２個のインバータに置き換えた。この２個のインバータのサイズ等を調整することにより、インサーションディレイを短くすることができる。
【００４５】
以上のように、本実施形態によるクロックツリーのチューニングでチップ面内の電源電圧降下を考慮したクロックツリーの作成が可能となる。この結果、クロックスキュー、クロックインサーションディレイが小さくでき、チップの遅延マージンの短縮により高速動作が可能となる。また、これまでクロックは理想的な電源電圧が印加されると仮定して設計されていたが、本実施形態により電源電圧を考慮したクロックツリーの最適化が行なえ、実際のＬＳＩチップの動作に近いシミュレーションが可能になることも意味深いものとなる。
【００４６】
図１１は、本発明の他の実施形態による集積回路設計方法を示す。クロックツリー１１００は、図５と同様に、電源電圧等高線１１０１を演算して求める。第１段階のルートクロックバッファ１１１１は、例えば電源電圧の一番低い分布の位置に配置する。第２段階の２個のクロックバッファ１１１２は、それぞれルートクロックバッファ１１１１の２分岐出力を入力し、同じ電源電圧等高線（分布）上に設けられる。第３段階の４個のクロックバッファ１１１３は、それぞれ第２段階の２個のクロックバッファ１１１２の２分岐出力を入力し、同じ電源電圧等高線（分布）上に設けられる。クロックバッファは、上記のように、２個のインバータで構成してもよい。
【００４７】
以上のように、電源電圧（電源電位及びグランド電位の差）の等電位上に、同じ段階数のバッファ又はインバータを配置する。そして、２分岐する２本のクロック配線の長さを同じにする。同じ段階数のバッファ又はインバータの電源電圧が同じであり、かつそれに対応する２分岐する２本のクロック配線の長さを同じにすれば、同じ段階数のバッファ又はインバータの出力クロック信号は遅延時間が同じになり、クロックスキューを低減することができる。
【００４８】
図１２は、上記の本実施形態による集積回路設計（ＣＡＤ(computer-aided design)設計）を行うためのコンピュータのハードウエア構成図である。バス１２０１には、中央処理装置（ＣＰＵ）１２０２、ＲＯＭ１２０３、ＲＡＭ１２０４、ネットワークインタフェース１２０５、入力装置１２０６、出力装置１２０７及び外部記憶装置１２０８が接続されている。
【００４９】
ＣＰＵ１２０２は、データの処理及び演算を行うと共に、バス１２０１を介して接続された上記の構成ユニットを制御するものである。ＲＯＭ１２０３には、予めブートプログラムが記憶されており、このブートプログラムをＣＰＵ１２０２が実行することにより、コンピュータが起動する。外部記憶装置１２０８にコンピュータプログラムが記憶されており、そのコンピュータプログラムがＲＡＭ１２０４にコピーされ、ＣＰＵ１２０２により実行される。このコンピュータは、コンピュータプログラム（ＣＡＤソフトウエア）を実行することにより、集積回路の設計を行うことができる。
【００５０】
外部記憶装置１２０８は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置１２０８は、コンピュータプログラム及び設計データを記録媒体に記録したり、記録媒体からコンピュータプログラム及び設計データを読み出すことができる。
【００５１】
ネットワークインタフェース１２０５は、ネットワークに対してコンピュータプログラム及び設計データを入出力することができる。入力装置１２０６は、例えばキーボード及びポインティングデバイス（マウス）等であり、各種指定又は入力等を行うことができる。出力装置１２０７は、ディスプレイ及びプリンタ等である。
【００５２】
本実施形態は、集積回路におけるクロック分配のアルゴリズムを示し、クロックを内蔵する全てのＬＳＩに適用可能な技術である。本実施形態の要点は、チップ内部の電源配線及びグランド配線の電圧降下をクロックツリー作成時に反映させるものである。クロックツリーは、ＬＳＩが動作する場合の基準信号を伝搬させる大事なネットワークであり、クロックツリー作成時に電圧降下の補正を行なうことで、クロックスキューの低減、クロック伝搬時間の短縮、時間的な電源電圧変動が発生している状況下でもクロック分配の安定供給が可能となる。
【００５３】
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００５４】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００５５】
本発明の実施形態は、例えば以下のように種々の適用が可能である。
【００５６】
（付記１）集積回路内の電源電位分布及び基準電位分布を演算する演算ステップと、
前記電源電位分布及び前記基準電位分布を基に集積回路内のクロック配線を設計する設計ステップと
を有する集積回路設計方法。
（付記２）前記演算ステップは、集積回路内の電源電位配線網及び基準電位配線網をモデリングして抵抗素子からなるネットリストを生成し、該ネットリストを基に電源電位分布及び基準電位分布を演算する付記１記載の集積回路設計方法。
（付記３）前記演算ステップは、前記ネットリストに境界条件として入出力パッドの電源電位及び基準電位を与え、前記電源電位配線網及び前記基準電位配線網のネットリストのノード接点に、集積回路で消費する電流を与えることにより、該ノード接点における電圧降下を演算するステップを含む付記２記載の集積回路設計方法。
（付記４）前記入出力パッドの電源電位及び基準電位は、少なくともパッケージ及びワイヤボンディングによる電圧降下を加味した電位である付記３記載の集積回路設計方法。
（付記５）前記演算ステップは、前記ノード接点における電圧降下を基に、平面座標におけるノード接点の電源電位及び基準電位を演算する付記３記載の集積回路設計方法。
（付記６）前記設計ステップは、前記電源電位分布及び前記基準電位分布を基にクロック配線分岐枝の長さを調整する付記１記載の集積回路設計方法。
（付記７）前記設計ステップは、２分岐した２本のクロック配線の遅延時間が等しくなるようにクロック配線分岐点を設計する付記６記載の集積回路設計方法。
（付記８）前記設計ステップは、分岐毎にバッファを有するクロック配線を予め設計しておき、前記電源電位分布及び前記基準電位分布を基にクロック配線分岐枝の長さを補正する付記６記載の集積回路設計方法。
（付記９）前記設計ステップは、補正前の分岐点から補正後の分岐点までは、前記バッファの代わりにクロック信号を反転するインバータを２つ配置する付記８記載の集積回路設計方法。
（付記１０）前記設計ステップは、前記電源電位分布及び前記基準電位分布を基に前記バッファの固有遅延時間を演算し、該固有遅延時間を基に前記補正後の分岐点を決定する付記８記載の集積回路設計方法。
（付記１１）前記設計ステップは、前記電源電位及び前記基準電位の差の等電位上に、同じ段階数のバッファ又はインバータを配置する付記１記載の集積回路設計方法。
（付記１２）前記設計ステップは、２分岐する２本のクロック配線の長さを同じにする付記１１記載の集積回路設計方法。
【００５７】
【発明の効果】
以上説明したように、集積回路内の電源電位分布及び基準電位分布に応じたクロック配線を設計することにより、クロックスキューを低減し、時間的な電源電圧変動が発生している状況下でもクロック分配の安定供給が可能になる。
【図面の簡単な説明】
【図１】X,Y平面の実効的な電源電圧（VD(X,Y)- VS(X,Y)）を示す鳥瞰図である。
【図２】補正前の２分岐クロックツリーを示す図である。
【図３】補正後の２分岐クロックツリーを示す図である。
【図４】図４（Ａ）は補正前の２分岐クロックツリーを示す図、図４（Ｂ）は補正後の２分岐クロックツリーを示す図である。
【図５】集積回路内のクロックツリーの補正を示す図である。
【図６】本発明の実施形態による集積回路設計方法を示すフローチャートである。
【図７】本実施形態による集積回路設計方法を示すフローチャートである。
【図８】本実施形態による集積回路設計方法を示すフローチャートである。
【図９】本実施形態による集積回路設計方法を示すフローチャートである。
【図１０】ＳＰＩＣＥによるクロック電圧波形を示す図である。
【図１１】本発明の他の実施形態による集積回路設計方法を示す図である。
【図１２】本実施形態による集積回路設計を行うためのコンピュータのハードウエア構成図である。
【符号の説明】
１２０１  バス
１２０２  ＣＰＵ
１２０３  ＲＯＭ
１２０４  ＲＡＭ
１２０５  ネットワークインタフェース
１２０６  入力装置
１２０７  出力装置
１２０８  外部記憶装置
【図１】
2004199279.tif 000003
【図２】
2004199279.tif 000004
【図３】
2004199279.tif 000005
【図４】
2004199279.tif 000006
【図５】
2004199279.tif 000007
【図６】
2004199279.tif 000008
【図７】
2004199279.tif 000009
【図８】
2004199279.tif 000010
【図９】
2004199279.tif 000011
【図１０】
2004199279.tif 000012
【図１１】
2004199279.tif 000013
【図１２】
2004199279.tif 000014