(57)【要約】クロックツリーシンセシス（ＣＴＳ）ツールが、所定の最大グループスキューを有して、個々のクロック信号をＩＣ内の各クロックシンクに運ぶためにＩＣ設計に組み込まれるべき一群のクロックツリー（３０）を設計する（３６）。
2005513626.tif 000002
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）の設計に組み込まれるべき複数のクロックツリーを設計する方法であって、各クロックツリーが対応するクロック信号をＩＣ設計に含まれるシンクに運ぶものであり、それらのクロックツリーが所定の最大のグループスキューの限度を有しており、
各クロックツリーを特定する、独立してバランスのとれた、第１の個別のクロックツリー設計を生成する工程ａと、
各クロックツリーに対して前記第１のクロックツリー設計を処理して、搬送されるクロック信号が前記クロックツリーを経由して該クロック信号を受信する各シンクに至るときに該クロック信号が経験するであろう平均的な遅延を推定する工程ｂと、
ターゲットの通路遅延として、工程ｂにおいて全てのクロックツリーに対して計算された遅延平均値から最大の遅延平均値を選択する工程ｃと、そして、
各クロックツリーを特定する個別の第２のクロックツリーの設計をする工程ｄであって、ターゲットの通路遅延と、前記クロック信号が前記クロックツリーを通って各シンクに至るときに前記クロックツリーが運ぶクロック信号推定された遅延との差をグループクロックスキューが前記所定の最大のグループスキュー限度内に存在することを確実にするような値に制限して、各第２のクロックツリーの設計がバランスのとれたものにされる工程とからなる方法。
【請求項２】
前記工程ｄが、
バッファサイズを選択するサブ工程ｄ１と、
複数の分岐を有するように各クロックツリーを特定する個々の第２のクロックツリーの設計を生成し、選択されたバッファサイズのバッファが前記クロックツリーの選択された分岐内の選択された位置に含まれており、それぞれの選択された分岐にアサートされるバッファの数が、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定通路遅延との間の差異を最小にするように選択されるサブ工程ｄ２と、
からなることを特徴とする請求項１に記載の方法。
【請求項３】
更に、少なくとも一つの第２のクロックツリー設計を修正して、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定通路遅延との間の差異を少なくするように、それが特定するクロックツリーの選択された分岐内のバッファの位置を調節する工程ｄ３を具備することを特徴とする請求項２に記載の方法。
【請求項４】
更に、少なくとも一つの第２のクロックツリー設計を修正して、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定通路遅延との間の差異を少なくするように、それが特定するクロックツリーの選択された分岐内のバッファのサイズを調節する工程ｄ３を具備することを特徴とする請求項２に記載の方法。
【請求項５】
更に、少なくとも一つの第２のクロックツリー設計を修正して、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定通路遅延との間の差異を少なくするように、それが特定するクロックツリーの選択された分岐内のバッファの位置を調節する工程ｄ４を具備することを特徴とする請求項４に記載の方法。
【請求項６】
少なくとも一つの第２のクロックツリー設計によって特定されたクロックツリーの選択された分岐内のバッファのサイズが、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定通路遅延との間の差異を所定の最大値に抑制するように、調整されることを特徴とする請求項５に記載の方法。
【請求項７】
少なくとも一つの第２のクロックツリー設計によって特定されたクロックツリーの選択された分岐内のバッファのサイズと位置が、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定通路遅延との間の差異を所定の最大値に抑制するように、調整されることを特徴とする請求項５に記載の方法。
【請求項８】
コンピュータによって読み出されて実行されたときに、コンピュータに集積回路（ＩＣ）の設計に組み込まれるべき複数のクロックツリーを設計する方法を実行させる、コンピュータによって判読可能なメディアであって、各クロックツリーが対応するクロック信号をＩＣ設計に含まれるシンクに運ぶものであり、そのクロックツリーが所定の最大のグループスキューの限度内のグループスキューを有しており、
各クロックツリーを特定する、独立してバランスのとれた、第１の個別のクロックツリー設計を生成する工程ａと、
各クロックツリーに対して前記第１のクロックツリー設計を処理して、搬送されるクロック信号が前記クロックツリーを経由して該クロック信号を受信する各シンクに至るときに該クロック信号が経験するであろう平均的な遅延を推定する工程ｂと、
ターゲットの通路遅延として、工程ｂにおいて全てのクロックツリーに対して計算された遅延平均値から最大の遅延平均値を選択する工程ｃと、そして、
各クロックツリーを特定する個別の第２のクロックツリーの設計をする工程ｄであって、ターゲットの通路遅延と、クロック信号が前記クロックツリーを通って各シンクに至るときに前記クロックツリーが運ぶクロック信号推定された遅延との差を、グループクロックスキューが前記所定の最大のグループスキュー限度内に存在することを確実にするような値に制限して、各第２のクロックツリーの設計がバランスのとれたものにされる工程とからなるメディア。
【請求項９】
前記工程ｄが、
バッファサイズを選択するサブ工程ｄ１と、
複数の分岐を有するように各クロックツリーを特定する個々の第２のクロックツリーの設計を生成し、選択されたバッファサイズのバッファが前記クロックツリーの選択された分岐内の選択された位置に含まれており、それぞれの選択された分岐にアサートされるバッファの数が、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定された遅延との間の差異を最小にするように選択されるサブ工程ｄ２と、
からなることを特徴とする請求項８に記載のコンピュータによって判読可能なメディア。  
【請求項１０】
前記方法が、更に、少なくとも一つの第２のクロックツリー設計を修正して、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定通路遅延との間の差異を少なくするように、それが特定するクロックツリーの選択された分岐内のバッファの位置を調節する工程ｄ３を具備にすることを特徴とする請求項９に記載のコンピュータによって判読可能なメディア。
【請求項１１】
前記方法が、更に、少なくとも一つの第２のクロックツリー設計を修正して、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定通路遅延との間の差異を少なくするように、それが特定するクロックツリーの選択された分岐内のバッファのサイズを調節する工程ｄ３を具備することを特徴とする請求項９に記載のコンピュータによって判読可能なメディア。
【請求項１２】
更に、少なくとも一つの第２のクロックツリー設計を修正して、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定通路遅延との間の差異を少なくするように、それが特定するクロックツリーの選択された分岐内のバッファの位置を調節する工程ｄ４を具備することを特徴とする請求項１１に記載のコンピュータによって判読可能なメディア。
【請求項１３】
少なくとも一つの第２のクロックツリー設計によって特定されたクロックツリーの選択された分岐内のバッファのサイズが、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定通路遅延との間の差異を所定の最大値に抑制するように、調整されることを特徴とする請求項１１に記載の方法。
【請求項１４】
少なくとも一つの第２のクロックツリー設計によって特定されたクロックツリーの選択された分岐内のバッファのサイズと位置が、ターゲットの通路遅延とクロックツリーによって運ばれるクロック信号の推定通路遅延との間の差異を所定の最大値に抑制するように、調整されることを特徴とする請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の背景
発明の技術分野
本発明は、一般的には、集積回路（ＩＣ）レイアウトを生成するためのコンピュータ支援設計（ＣＡＤ）ツールに関するが、より詳細には、ＩＣレイアウトＣＡＤツールによって実行される混在する領域クロックツリーを論理合成する（synthesize）方法に関する。
【背景技術】
【０００２】
関連技術の記載
典型的なデジタルＩＣは、クロック信号パルスに応答してステートを変更する、フリップフロップやレジスタやラッチのような、クロック制御されるデバイス（クロックシンク又はシンク）を非常に多く有し、そして、そのＩＣは、同じクロック信号によって一群のシンクをクロック制御することによってそれらにおけるステート変更の同期を取る。そのＩＣは、クロックツリーや分岐ネットワークやバッファを採用して、そのクロック信号によってクロック制御される全てのシンクに対してその入力端子のうちの一つに到着したクロック信号を展開する。ＩＣレイアウト内に各シンクの位置が与えられているとすると、クロックツリーシンセシス（ＣＴＳ）ツールが、クロック信号を各シンクに配信するためのクロックツリーを自動的に設計する。典型的なＣＴＳツールは、まず、外部源からクロック信号を受信するＩＣ入力端子から各シンクへクロック信号が移動しなければならない距離を均等にするような方法で、クロックツリーを構成する導体をレイアウトする。ＣＴＳツールは、必要に応じたサイズでバッファ（増幅器）をツリーの分岐点に配置して、該分岐点の川下側のバッファ又はシンクの全てを駆動する。クロックツリーの各分岐における信号通路の遅延の推定に基づいて、ＣＴＳツールは、そして、クロックツリーの選択された分岐に別途バッファを挿入してこれらの分岐内の通路遅延を調整することで、クロックツリーの「バランスを取り」、クロックツリーが各クロック信号パルスを全てのシンクにほとんど同じ時間に配信することを確実にする。クロックツリーをこのようにしてバランスを取ることは、その差異（何れか２つのシンクにおいて各クロックパルスの到着時間の間の「スキュー」）を最小にすることに役立つ。
【０００３】
クロックツリーにバッファを挿入することで、クロックツリーを通じた信号通路遅延を増やすか又は減らすことができる。各バッファは、固有の遅延を有しており、それがクロックツリーを介して通路遅延に加わることがある。しかし、大出力電流を生じる大きなバッファは、バッファの川下のクロックツリーの導体の容量が充電される割合を大きくすることで、通路遅延を減らすことができる。このように、クロックツリー内に挿入されたバッファのサイズとバッファに依存して、バッファはクロックツリーを通じた信号通路遅延を増やすか又は減らすことができる。したがって、ＣＴＳツールは、クロックツリーの各分岐に挿入するバッファの数とサイズと位置を適宜選択することで、クロックツリーをバランスよくすることができる。決められた範囲のバッファサイズのみが有効なので、ＣＴＳツールは、通常、クロック信号スキューを完全に消去するためにバッファをサイズ決めしたり、配置したりすることはできないが、しかし、クロック信号スキューをある特定の許容可能な限度内に維持することは可能である。
【０００４】
「混在する領域」を有するＩＣにおいて、各群のシンクは、異なるクロック信号によって個別にクロック制御されている。図１は、ＩＣピン１２においてＮ個のクロック信号入力ＣＬＫ（１）−ＣＬＫ（Ｎ）を有し、そのクロック信号の領域に属する一組のシンク１６に各クロック信号を配信する個々のクロックツリー１４（１）−１４（Ｎ）を提供する、先行技術に関する混在する領域を有するＩＣ１０を示している。かつて、ＩＣ設計者は、各クロック領域内のシンクの各エッジの到着時間の間の最大許容スキューを決めていた。そして、ＣＴＳツールは、各クロック領域内のクロックスキューをその領域にとって決められた最大値に制限するように、各クロックツリー１４内の各バッファ１８のサイズと配置を決定する。したがって、ＣＴＳツールは、それぞれバランスのとれたクロックツリー１４を独立して設計することが可能であった。なぜならば、同じクロック領域内のシンク１６への通路にとっては最大スキューの制約のみを満足すればよいからである。異なるクロック領域に存在するシンク１６への通路間のタイミングスキューは、関連するものではない。
【０００５】
近年、ＩＣ設計者は、２又はそれ以上の個別のクロック信号を同じ「クロック群」に割り振って、同じクロック群のクロックツリーを設計し、同じクロック郡内のクロック信号のエッジ間のスキュー（即ち、グループスキュー）が決められた最大値に制限されるようにすることを始めた。たとえば、設計者は、図１のクロックＣＬＫ（１）とＣＬＫ（２）を同じクロック群に割り当て、クロックツリー１４（１）を介して入力ピン１２（１）からその領域内の何れか所定のシンク１６へ移動するクロック信号ＣＬＫ（１）のエッジの通路遅延と、クロックツリー１４（２）を介して入力ピン１２（２）から何れか所定のシンク１６へ移動するクロック信号ＣＬＫ（２）のエッジの通路遅延の間の差異を、ある所定の最大許容グループスキューに制限したいときがあるかもしれない。このような制約の下では、クロックツリーを設計するＣＴＳツールは、もはや独立してそれらのバランスを取ることができない。
【０００６】
図２に示すように、グループスキューの制約を満たそうとするために、先行技術のＣＴＳツールは、グループ内のクロックのうちの最初の一つにとってバランスのとれたクロックツリーを論理合成して、そのクロック信号の領域内のスキューを最小にする（工程２０）。そして、ＣＴＳツールはその最初のクロック信号を受信したＩＣピンとその最初のクロック信号のエッジを受信した全てのシンクの間の平均的な通路遅延を計算し、そして、論理合成されるべき群の次のクロックツリーのためのターゲット通路遅延としてその平均的な通路遅延を確立する（工程２２）。そのクロック群にクロックツリーがまだ論理合成されていない他のクロック信号が含まれている場合（工程２４）、ＣＴＳツールはそのクロック信号のためのクロックツリーを論理合成し、その分岐内の通路遅延を調整して、そのクロック信号の入力端子とその領域内の各シンクの間の全通過時間がターゲット通路遅延にできるだけ合致するようにする。２つの論理合成されたクロックツリーの領域内の全てのシンクに対する平均的な通路遅延が、次いで、計算され（工程２２）、工程２６で、論理合成されるべきその群の次のクロックツリーのためのターゲット通路遅延として確立する。ＣＴＳツールがその郡内の全てのクロック信号のためのクロックツリーを論理合成するまでこのプロセスは続行する。
【０００７】
グループスキューを許容限度内に維持するこの先行技術のやり方の蓋然性は、ＣＴＳツールがクロックツリーを論理合成する順番に大きく依存するものである。たとえば、論理合成されるべき、最初のクロックツリーの平均通路遅延があまりにも短い場合、論理合成されるべき最初のクロックツリーのそれと非常に接近している平均通路遅延を有するその郡内の次のクロックツリーを論理合成することはできないかも知れない。この方法を実行するＣＴＳツールが図２のシンセシス方法を幾度か繰り返す必要があるかも知れないが、その場合には、許容可能なグループスキューとなる順番を発見するまで、異なる順番を選択して各繰り返し又はその方法中にクロックツリーを論理合成することとなる。
【０００８】
必要なのは、クロックツリーが論理合成される順番に依存しないで成功するようなやり方で、許容可能な限度のグループスキューを有する、バランスのとれた一群のクロックツリーを論理合成するためのより迅速な方法である。
【発明の要約】
【０００９】
発明の要約
本発明は、同じクロック群に割り当てられた２又はそれ以上の個々のクロックツリーを論理合成し、そして、バランスのとれたものにし、グループクロックスキューを所定の最大限度内に維持する方法に関する。本発明に関連して、クロックツリーシンセシス（ＣＴＳ）ツールは、まず、各クロックツリーを特定する、独立してバランスのとれた第１の個別のクロックツリーの設計をする。そして、ＣＴＳツールは、各クロックツリー毎にその第１のクロックツリーの設計を処理して、搬送されるべきクロック信号がクロックツリーを経由して該クロック信号を受信する各シンクに至るときに該クロック信号が経験するであろう平均的な遅延を推定する。そして、ＣＴＳツールは、ターゲットの通路遅延として、全てのクロックツリーに対して計算された遅延平均値から最大の遅延平均値を選択する。その後、ＣＴＳツールは、各クロックツリーに対して個別の第２のクロックツリーの設計をするが、それはバランスのとれたものであり、ターゲットの通路遅延と各シンクに対する推定遅延との間の差をグループクロックスキューが所定の最大限度のグループスキュー内に存在することを確実にするような値に制限する。
【００１０】
本明細書に添付の特許請求の範囲は、本発明の主題を特に指摘している共に明確に権利請求している。しかし、そこでは同じ引用符号が同一の部材に付けられている添付の図面に関連して本明細書の残りの部分を読むことによって、業界で通常の知識を有する者は、出願人が本発明の最良の実施の形態と考えているものの機構と動作方法の両方を、本発明の更なる利点と目的と共に最もよく理解する。
【発明を実施するための最良の形態】
【００１１】
発明の詳細な説明
図１は、混在する領域を有する集積回路（ＩＣ）１０内に形成されたＮ個の一群のクロックツリー１４（１）−１４（Ｎ）を示す略図であるが、それぞれのクロックツリーは、個々のＩＣピン１２（１）−１２（Ｎ）に到達した、対応するクロック信号ＣＬＫ（１）−ＣＬＫ（Ｎ）を、たとえば、フリップフロップやレジスタやラッチのような、個々の、クロック制御されるデバイス（クロックシンク又はシンク）群に配信するものである。各クロックツリー１４（１）−１４（Ｎ）は、導体の分岐ネットワークとバッファ１８で構成されている。ＩＣ設計者は、ときに、通路遅延（グループスキュー）のいかなる変動をもある種の決められたグループスキュー限度内に納めた状態で、その郡内のＮ個のクロックツリー１４（１）−１４（Ｎ）の全てをそれらに対応する入力ピン１２（１）−１２（Ｎ）とシンク１６の全てのものと間で実質的に同じ通路遅延を有するようにしたいときがある。
【００１２】
本発明は、グループスキューを決められた限度内に維持するようなやり方で、ＩＣ用の一群のクロックツリーを論理合成するクロックツリーシンセシス（ＣＴＳ）ツールに用いられる方法に関する。この方法は、従来のコンピュータによって読み込まれ実行されるときにそのコンピュータをクロックツリーシンセシス（ＣＴＳ）ツールとして作動させる、コンピュータによって判読可能なメディアに格納されるソフトウェアに適切に組み込まれる。デバッグ命令を格納した適切なコンピュータによって判読可能なメディアには、コンパクトディスクと、フロッピー（登録商標）ディスクと、ハードディスクと、ランダムアクセスメモリ又はリードオンリーメモリが含まれているが、これらに限定されるものではない。
【００１３】
本発明のＣＴＳツールは、クロックツリーの選択された分岐にバッファを挿入することで、クロックツリーのバランスを取って、それらの分岐内の通路遅延を調整しクロックツリーが各クロック信号パルスを全てのシンクに可能な限り同じ遅延を有して配信することを確実にする。
【００１４】
クロックツリーにバッファを挿入することで、クロックツリーを通じた信号通路遅延を増やすか又は減らすことができる。各バッファは、固有の遅延を有しており、それがクロックツリーを介して通路遅延に加わることがある。しかし、大出力電流を生じる大きなバッファは、バッファの川下のクロックツリーの導体の容量を充電する割合を大きくすることで、通路遅延を減らすことができる。このように、クロックツリー内に挿入されたバッファのサイズと位置に依存して、バッファはクロックツリーを通じた信号通路遅延を増やすか又は減らすことができる。したがって、ＣＴＳツールは、もしあれば、クロックツリーの各分岐に挿入するバッファの数とサイズと位置を適宜選択することで、クロックツリーをバランスよくすることができる。
【００１５】
図３は、ＩＣレイアウト内に含まれた一群のクロックツリーを論理合成する本発明の方法を図示しているが、そこでは、クロックツリー内の通路遅延がグループクロックスキューを所定の最大限度内に維持するように調整される。まず、全てのクロックツリーは、適切な従来のクロックツリーシンセシス方法を用いて独立して論理合成され、各クロックツリーにとって独立してバランスのとれた最初の設計を生成する（工程３０）。ＣＴＳツールは、それがクロックツリー内のクロックスキューを最小にするようにそのクロックツリーを設計するという意味で、それぞれの最初のクロックツリー設計を「独立的に」バランスが取れるようにするが、しかし、クロックツリーを設計するときにはまだグループスキューを考慮に入れてはいない。
【００１６】
ＣＴＳツールは、クロック信号を受信したＩＣクロック入力ピンから各クロックツリー内の各シンクへの平均的なクロック信号通路遅延を計算し（工程３２）、そして、その後、「ターゲットの通路遅延」として、全てのクロックツリーのうちから最大の平均通路遅延を選択する（工程３４）。そして、全てのクロックツリーは、各クロック信号の入力端子から各クロックシンクへのクロック信号通路遅延を調節して十分にターゲットの通路遅延に近くなるようにして、クロックツリーがバランスのとれた状態で再び論理合成される（工程３６）。
【００１７】
図４は、図３の工程３６を詳細に示したものである。工程３６を実行するＣＴＳツールは、まず、一つのバッファサイズを選択し（工程４０）、ツリーの選択された通路に沿って、均等に離間された、選択されたサイズのバッファを適切な数挿入することによって、各シンクへの通路遅延をできるだけターゲット遅延に近いものに設定する（工程４２）。そして、ＣＴＳツールは、クロック入力端子とその端子に連結された各シンクの間の通路遅延が、ターゲット通路遅延に許容可能なほどに近いか否かを判定する。たとえば、ターゲット遅延と通路遅延の差が最大許容グループスキューの１／２以下であるか否かを判定する（工程４４）。ツリー内の全てのシンクに対する通路遅延がターゲット通路遅延に許容可能なほど近い場合には、工程４４の後でこのクロックツリーバランシング方法は終了する。
【００１８】
しかしながら、少なくとも一つのシンクへの通路遅延がターゲット通路遅延に許容可能なほどに近いものではないときには、ＣＴＳツールは、各通路において２つまでのバッファのサイズ及び／又はその配置をインクリメントしながら修正することで、許容可能なバランシングソリューションを探す（工程４６）。ツリー内の全てのシンクに対する通路遅延がターゲット通路遅延に許容可能なほど近いソリューションをＣＴＳツールが見つけた場合（工程４８）には、このクロックツリーバランシング方法は終了する。しかし、所定のツリーの少なくとも一つのシンクへの通路遅延がターゲット通路遅延に許容可能なほどに近いものにまだなっていないときには、ＣＴＳツールは次のバッファサイズを選択し（工程５０）、工程４２で始まる方法を繰り返す。工程４４又は４８においてすべての通路遅延がターゲット通路遅延に許容可能なほど近いことを見出すまで、ＣＴＳツールがバッファのサイズとその位置の各種組み合わせを試みながら、引き続き工程４２−５０のループの処理を行う。
【００１９】
全てのクロックツリーがこのような方法で論理合成されたとき、ターゲット通路遅延とそれぞれのクロック入力端子−シンクの通路に対して計算された通路遅延の間の差異の絶対値は、最大許容グループスキューの１／２以内となる。したがって、グループスキューは、最大許容グループスキューと同じか又はそれ未満である。
【００２０】
上記明細書と図面は本発明の最良の実施の形態を例示すると共に、その最良の実施の形態の構成要素と工程は、特許請求の範囲に記載された発明の構成要素と工程を例示するものである。しかしながら、特許請求の範囲の記載は、明細書と図面に記載された発明の実施の形態に例示された構成要素又は工程と機能的に均等である構成要素又は工程を含み、その特許請求の範囲のいずれかの請求項に記載された構成要素又は工程の組み合わせからなる発明の実施の形態にも適用されることを意図するものである。
【図面の簡単な説明】
【００２１】
【図１】混在する領域を有する集積回路内に形成される一群のクロックツリーを示す略図である。
【図２】一群のクロックツリーを論理合成する従来の方法を示すフローチャートである。
【図３】一群のクロックツリーを論理合成する本発明の方法を示すフローチャートである。
【図４】図３の方法の工程の一つのサブ工程を示すフローチャートである。
【図１】
2005513626.tif 000003
【図２】
2005513626.tif 000004
【図３】
2005513626.tif 000005
【図４】
2005513626.tif 000006
【国際調査報告】
2005513626.tif 000007