(57)【特許請求の範囲】
【請求項１】
半導体基板上に異なるサイズの複数の回路ブロック領域が配置される集積回路装置のレイアウト方法において，
前記半導体基板上に前記複数の回路ブロックの領域を配置するフロアプラン工程と，
前記半導体基板上の分割された矩形状の複数の分割回路領域それぞれに対応付けられた最下位のクロックドライバを分配経路の最終端に有し，分配経路の開始端の最上位のクロックドライバからＨ字型経路に分岐し，更に当該Ｈ字型経路の末端が下位のクロックドライバを介して下位のＨ字型経路に分岐して構成されるクロック分配経路を，前記半導体基板上に配置する工程と，
前記回路ブロック内に，前記クロック分配経路の最下位クロックドライバと，当該最下位クロックドライバへのその上位のクロックドライバからのＨ字型経路とをレイアウトする第１のレイアウト工程と，
前記回路ブロック外に，前記回路ブロック内にレイアウトされた部分を除いて前記クロック分配経路をレイアウトする第２のレイアウト工程と，
前記第１及び第２のレイアウト工程後に論理回路とその接続配線及び前記最下位クロックドライバから前記論理回路へのクロック配線とがレイアウトされた前記複数の回路ブロックを，前記半導体基板上に配置する工程とを有し，
前記第１及び第２のレイアウト工程で，前記分割回路領域とそこに配置された回路ブロックの領域との関係に基づいて，前記回路ブロック領域内に位置する最下位のクロックドライバを当該分割回路領域内であって回路ブロック領域外の位置に移動させる工程を有する集積回路装置のレイアウト方法。
【請求項２】
半導体基板上に異なるサイズの複数の回路ブロック領域が配置される集積回路装置のレイアウト方法において，
前記半導体基板上に前記複数の回路ブロックの領域を配置するフロアプラン工程と，
前記半導体基板上の分割された矩形状の複数の分割回路領域それぞれに対応付けられた最下位のクロックドライバを分配経路の最終端に有し，分配経路の開始端の最上位のクロックドライバからＨ字型経路に分岐し，更に当該Ｈ字型経路の末端が下位のクロックドライバを介して下位のＨ字型経路に分岐して構成されるクロック分配経路を，前記半導体基板上に配置する工程と，
前記回路ブロック内に，前記クロック分配経路の最下位クロックドライバと，当該最下位クロックドライバへのその上位のクロックドライバからのＨ字型経路とをレイアウトする第１のレイアウト工程と，
前記回路ブロック外に，前記回路ブロック内にレイアウトされた部分を除いて前記クロック分配経路をレイアウトする第２のレイアウト工程と，
前記第１及び第２のレイアウト工程後に論理回路とその接続配線及び前記最下位クロックドライバから前記論理回路へのクロック配線とがレイアウトされた前記複数の回路ブロックを，前記半導体基板上に配置する工程とを有し，
前記第１及び第２のレイアウト工程で，複数の前記分割回路領域とそこに配置された回路ブロックの領域との関係に基づいて，前記回路ブロック領域内に位置する最下位のクロックドライバより上位のクロックドライバを当該複数の分割回路領域内であって回路ブロック領域外の位置に移動させる工程を有する集積回路装置のレイアウト方法。
【請求項３】
請求項１又は２において，
前記第１及び第２のレイアウト工程で，前記分割回路領域とそこに配置された回路ブロックの領域との関係に基づいて，前記回路ブロック領域内に配置された最下位のクロックドライバから当該回路ブロック外への追加クロック分配経路を，前記回路ブロック内に配置する集積回路装置のレイアウト方法。
【請求項４】
請求項１又は２において，
前記第１及び第２のレイアウト工程で，前記分割回路領域とそこに配置された回路ブロックの領域との関係に基づいて，前記分割回路領域内であって回路ブロック領域外に配置された最下位のクロックドライバから当該回路ブロック内への追加クロック分配経路と，当該追加クロック分配経路の末端に接続される追加の最下位クロックドライバとを，前記回路ブロック内に配置する集積回路装置のレイアウト方法。
【請求項５】
請求項１又は２において，
前記第１及び第２のレイアウト工程で，前記分割回路領域とそこに配置された回路ブロックの領域との関係に基づいて，前記回路ブロック領域外に位置する最下位のクロックドライバを当該回路ブロック領域内の位置に移動させ，当該分割回路領域に隣接する分割回路領域内で前記回路ブロック領域外のセルに，前記移動させた最下位クロックドライバからクロック分配路をレイアウトする集積回路装置のレイアウト方法。
【請求項６】
請求項１又は２において，
前記第１及び第２のレイアウト工程で，第１の隣接する４つの分割回路領域内に位置する４つの最下位クロックドライバのうち，前記回路ブロック領域内に位置する最下位クロックドライバを当該回路ブロック領域外に移動し，当該移動した最下位クロックドライバから前記回路ブロック領域外のセルへのクロック分配路を配置する集積回路装置のレイアウト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，集積回路のレイアウト方法及びそのレイアウトプログラムに関し，特に，階層設計におけるクロック分配系のレイアウト方法に関する。
【背景技術】
【０００２】
大規模な集積回路装置は，チップ内に大規模な論理マクロやメモリマクロに加えて，複数の基本的な論理セルの組み合わせを有し，チップ内の基準クロック信号に同期して前記マクロや論理セルからなる大規模集積回路が動作する。このクロック信号は，チップ内に分散して配置された論理回路に同じタイミング，同じ位相で分配されることが望まれる。
【０００３】
そこで，従来，チップ内のクロック信号の分配路として，Ｈ字型のクロックツリー構造が提案されている。このＨ字型のクロックツリー構造は，Ｈ字型の分配路の各先端に下位のＨ字型の分配路の中心を接続し，そのＨ字型の分配路の各先端にさらに下位のＨ字型の分配路の中心を接続して構成され，各Ｈ字型分配路の各先端にはクロック信号を供給するためのクロックドライバが設けられる。このような多段のＨ字型のクロックツリー構造にすることで，単一の基準クロック信号を末端のクロックドライバから同一のタイミング，同一の位相で論理回路に供給することができる。このようなＨ字型クロックツリー構造については，例えば，特許文献１，２，３などに記載されている。
【特許文献１】特開平５−１５９０８０号公報
【特許文献２】特開平１１−３１７４５７号公報
【特許文献３】特開２００３−７８０１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一方で，近年の集積回路装置の大規模化に伴い，階層設計の手法が導入されている。すなわち，集積回路を複数の階層化レベルブロック（HLB : Hierarchical Level Block）に分解し，各ＨＬＢを異なる設計グループが担当してレイアウト設計し，最終的にそれらのレイアウトされたＨＬＢをチップ内に合体する。この場合，チップ内でのクロックのタイミング調整の必要性に加えて，各ＨＬＢ内でのクロックのタイミング調整，ＨＬＢの内外でのクロックのタイミング調整などが必要になる。
【０００５】
このように，Ｈ字型クロックツリー構造は，チップ内に画一的なクロック信号分配経路を設けるものであるのに対して，階層設計の手法は，個別にＨＬＢのレイアウト設計を行うものであり，両者をどのように統合させるかについての解決策は提案されていない。
【０００６】
すなわち，ＨＬＢは，一般に機能別に切り分けられ，すべてのＨＬＢのサイズ，回路規模を共通化することができず，サイズ，回路規模などが異なる複数のＨＬＢをチップ内の任意の位置にレイアウトする必要がある。そのようなサイズや位置がばらばらのＨＬＢ内の論理回路に対して，タイミング調整されたクロックを供給するためには，従来の画一的にチップ領域を分割しそれぞれの分割領域に対して画一的なＨ型クロックツリーをレイアウトする方法は不適切である。
【０００７】
そこで，本発明の目的は，階層設計におけるＨＬＢへのＨ型クロックツリーのクロック信号分配路を形成する集積回路装置のレイアウト方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために，本発明の第１の側面によれば，半導体基板上に異なるサイズの複数の回路ブロック領域が配置される集積回路装置のレイアウト方法において，
前記半導体基板上に前記複数の回路ブロックの領域を配置するフロアプラン工程と，
前記半導体基板上の分割された矩形状の複数の分割回路領域それぞれに対応付けられた最下位のクロックドライバを分配経路の最終端に有し，分配経路の開始端の最上位のクロックドライバからＨ字型経路に分岐し，更に当該Ｈ字型経路の末端が下位のクロックドライバを介して下位のＨ字型経路に分岐して構成されるクロック分配経路を，前記半導体基板上に配置する工程と，
前記回路ブロック内に，前記クロック分配経路の最下位クロックドライバと，当該最下位クロックドライバへのその上位のクロックドライバからのＨ字型経路とをレイアウトする第１のレイアウト工程と，
前記回路ブロック外に，前記回路ブロック内にレイアウトされた部分を除いて前記クロック分配経路をレイアウトする第２のレイアウト工程と，
前記第１及び第２のレイアウト工程後に論理回路とその接続配線及び前記最下位クロックドライバから前記論理回路へのクロック配線とがレイアウトされた前記複数の回路ブロックを，前記半導体基板上に配置する工程とを有する。
【０００９】
つまり，Ｈ字型クロックツリー構造により各分割回路領域に対応して配置される最下位クロックドライバを，回路ブロック内にレイアウトすべきか回路ブロック外にレイアウトすべきかを決定し，それぞれの位置にレイアウトしておき，その最下位クロックドライバへのクロック分配経路もレイアウトしておく。その後，各回路ブロック内のレイアウト設計が行われ，レイアウト設計済みの回路ブロックが半導体基板上に配置される。
【発明の効果】
【００１０】
上記発明の側面によれば，階層設計のフロアプランの段階で，回路ブロック領域と分割回路領域との関係に基づいて，最下位クロックドライバとその上位のクロックドライバからのクロック分配経路とを，回路ブロック内にあらかじめレイアウトしておくので，各回路ブロック内のレイアウト設計が個別に行われ回路ブロック内のクロックのタイミング調整が個別に行われても，各回路ブロックのレイアウト後の全体のクロックのタイミング調整を容易に行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１２】
図１は，半導体基板と分割回路領域との関係を示す図である。図１では，チップである半導体基板１０が分割回路領域Ｒ１〜Ｒ１６に１６等分されている。ただし，チップの周辺には入出力端子（パッド）や，入出力回路，電源配線領域などが配置されるが，それらを除いた内部の集積回路が配置される領域が，１６の分割回路領域Ｒ１〜Ｒ１６に分割されている。
【００１３】
図２は，Ｈ字型クロックツリー構造を示す図である。半導体基板１０内に基準クロックＣＬＫが最上位のクロックドライバＤ１からＨ字型経路ＣＬ１に分岐し，そのＨ字型経路ＣＬ１の末端が，下位のクロックドライバＤ２を介して下位のＨ字型経路ＣＬ２に分岐し，そのＨ字型経路ＣＬ２の末端に最下位のクロックドライバＤ３が設けられている。その結果，１６分割された分割回路領域Ｒ１〜Ｒ１６のほぼ中央位置に最下位のクロックドライバＤ３がそれぞれ配置される。もしチップ１０が３２等分されている場合は，もう一層のＨ字型経路と末端のクロックドライバとが追加されることになる。
【００１４】
このクロック分配経路の考え方は，基準クロックＣＬＫが最上位のクロックドライバ（第１分配クロックドライバ）Ｄ１から最下位のクロックドライバ（第３分配クロックドライバ）Ｄ３までのクロック分配路を同じクロック分配経路長で同じクロックドライバ数にすることで，各分割回路領域Ｒ１〜Ｒ１６に同じタイミングまたは同じ位相のクロック信号を分配することにある。したがって，各分割回路領域内の回路規模が均一であれば，最下位の第３分配クロックドライバＤ３からクロック信号を供給して，分割回路領域内の基本論理回路に同じタイミングのクロック信号を供給することができる。
【００１５】
なお，本実施の形態のＨ字型経路ＣＬ１，ＣＬ２は，いずれもクロックドライバの４出力でそれぞれ駆動される４つの経路で構成される。クロックドライバが１出力の場合は，Ｈ字型経路は４本の経路ではなく，一本の経路が２つに分岐し更にそれぞれ２つに分岐するＨ字の配線にする必要がある。いずれの場合も，本実施の形態ではＨ字型経路と称することにする。
【００１６】
図３は，階層設計におけるＨ字型クロックツリー構造と下位の回路モジュールとの関係を示す図である。図２のＨ字型クロックツリー構造に重ねて，下位の回路モジュールである階層化レベルブロックＨＬＢが複数個配置されている。このような回路ブロックＨＬＢの配置は，より上位のレイアウト工程であるフロアプランニング工程で行われる。この段階では，回路ブロックの論理設計は終了しておりそのネットリストは生成済みである。したがって，各回路ブロックの領域サイズはほぼ確定している。そして，トップレイヤーのレイアウトを行うフロアプランニング工程で，複数の回路ブロックＨＬＢが配置される。
【００１７】
回路ブロックＨＬＢは，それぞれサイズや回路規模が異なり，分割回路領域Ｒ１〜Ｒ１６に対して任意の位置に配置される。それに伴って，第３分配のクロックドライバＤ３と回路ブロックＨＬＢとの関係は，クロックドライバＤ３と分割回路領域Ｒ１〜Ｒ１６との関係とは異なり，各回路ブロックＨＬＢにそれぞれ１個のクロックドライバＤ３が対応して配置されないことになる。しかも，回路ブロックＨＬＢのサイズや規模が異なるので，内部に必要なクロックドライバＤ３の数も異なることになる。一方，回路ブロックＨＬＢのレイアウト設計は，一般に個別に独立して行われる。したがって，各回路ブロックＨＬＢのレイアウト設計において，各回路ブロックが独立したＬＳＩであるように，それぞれの回路ブロック内でクロック信号のタイミング調整が行われることが要求される。他方で，トップレイヤーのレイアウトでは，チップ１０内にＨ字型のクロックツリー構造を配置する必要があり，画一的なクロックツリー構造のままにすると，各回路ブロックＨＬＢに対してクロックドライバＤ３が存在しなかったり，その数が不十分であったりして回路ブロック内に適切なクロック分配ができなくなる。同様に，回路ブロックＨＬＢの外の領域に対しても，クロックドライバＤ３が存在しなかったりして適切なクロック分配ができなくなる。そこで，Ｈ字型クロックツリー構造を回路ブロックＨＬＢのサイズと位置に適合させることが必要になる。
【００１８】
図４は，本実施の形態における集積回路装置のレイアウト装置の構成図である。レイアウト装置１００は，汎用のコンピュータシステムにＬＳＩレイアウトプログラム２０がインストールされて構成される。中央処理ユニットＣＰＵと入出力インターフェース１６と表示装置１４とＬＳＩレイアウトプログラム２０とがバス１２を介して接続されている。そして，中央処理ユニットＣＰＵがレイアウトプログラム２０を実行することで，レイアウト環境が構築される。このレイアウト装置１００は，回路ブロックＨＬＢの論理設計データ１８に基づいて，トップレイヤーレイアウトモジュール２２によりトップレイヤーでのレイアウト処理を実行し，クロックツリーレイアウトモジュール２４により回路ブロックＨＬＢ内及び外のクロックツリー構造のレイアウト処理を実行する。また，レイアウト装置１００は，ＨＬＢ内レイアウトモジュールにより回路ブロックＨＬＢ内のレイアウト処理も実行することができる。
【００１９】
図５は，本実施の形態における集積回路装置のレイアウトデータ構成を示す図である。階層設計によれば，トップレイヤーのレイアウトデータ３０と，複数の下位の回路ブロックＨＬＢ１〜ＨＬＢｎのレイアウトデータ３２，３４，３６とで構成される。また，トップレイヤーのレイアウトデータ３０には，回路ブロックＨＬＢのレイアウトデータLayoutHLBと，クロックツリー構造のレイアウトデータLayoutCLKと，回路ブロック外の回路のレイアウトデータLayoutCIRとを有する。また，回路ブロックのレイアウトデータ３２，３４，３６は，回路ブロック内のクロックツリー構造と最下位クロックドライバからのクロック分配レイアウトとからなるクロックレイアウトデータLayoutCLKと回路ブロック内の回路のレイアウトデータLayoutCIRとを有する。
【００２０】
図６は，本実施の形態におけるレイアウト工程のフローチャート図である。レイアウト工程に先だって，回路ブロックＨＬＢの論理設計が行われておりその論理設計データ４２，４４が入力される（Ｓ１０）。または，入力データはネットリストのような論理設計データではなく，回路ブロックの回路規模やサイズに関するデータであってもよい。
【００２１】
次に，フロアプラン工程でトップレイヤーに複数の回路ブロックＨＬＢを配置する（Ｓ１２）。さらに，Ｈ字型クロックツリー構造も基本構造の形で配置されて，図３で示したレイアウト状態になる（Ｓ１２）。このトップレイヤーでの配置工程Ｓ１２により，回路ブロックＨＬＢを配置したトップレイヤーのレイアウトデータ４０が生成される。このデータ４０には，回路ブロックの位置を特定するレイアウトデータLayoutHLBが含まれる。
【００２２】
そして，半導体基板上に配置された回路ブロック領域と分割回路領域との関係に基づいて，各回路ブロック内と回路ブロック外のクロックツリー構造のレイアウト設計が行われる（Ｓ１４）。この工程により，トップレイヤーのデータ４０−１には，クロックツリー構造のレイアウトデータLayoutCLKが追加され，回路ブロックのデータ４２−１，４４−１にも，クロックツリー構造のレイアウトデータLayoutCLKが追加される。ここでクロックツリー構造のレイアウトデータとは，図２及び図３に示したクロックドライバＤ１，Ｄ２，Ｄ３とクロック配線経路ＣＬ１，ＣＬ２のレイアウトデータである。最下位の第３分配クロックドライバＤ３から先の基本論理回路（論理セル）へのクロック分配配線は，後で行われる各回路ブロックでのレイアウト工程Ｓ１８，回路ブロック外の領域のレイアウト工程Ｓ１６でそれぞれ配置される。
【００２３】
回路ブロック以外の領域のレイアウト工程Ｓ１６と，各回路ブロック内のレイアウト工程１８とは，この順番で，または並列して，或いは逆の順番で行われる。それぞれのレイアウト工程では，回路ブロック内でのクロックタイミング調整工程，回路ブロック以外の領域でのクロックタイミング調整工程が行われる。ここで，クロックタイミング調整工程は，レイアウトされた回路のクロック分配配線や回路間接続配線の遅延特性を求め，その遅延特性を考慮してクロックのタイミングが適切か否かをチェックするタイミング検証と，タイミングが適切でない場合は，接続配線内やクロック分配配線内に遅延回路などを挿入するタイミング調整とを含む。
【００２４】
そして，最後にトップレイヤーに複数の回路ブロックのレイアウトデータ３２，３４，３６とそれ以外の回路のレイアウトデータを含むトップレイヤーレイアウトデータ３０とが合体される（Ｓ２０）。合体した段階で，回路ブロック内外のクロックタイミング調整工程も行われる。
【００２５】
図７は，本実施の形態におけるクロックツリーのレイアウト工程のフローチャート図である。このフローチャート図は，図６のクロックツリーのレイアウト工程Ｓ１４を詳細にしたものである。まず，図３に示されるとおり，チップ１０内に複数の回路ブロックＨＬＢの領域が配置されると，基本領域である分割回路領域Ｒ１〜Ｒ１６それぞれの中央位置に配置された第３分配のクロックドライバＤ３と，さらに，第２分配のクロックドライバＤ２及び第１分配のクロックドライバＤ１と，回路ブロックの領域との関係が解析される（Ｓ１４−１）。この解析工程では，回路ブロックＨＬＢの領域が分割回路領域Ｒ１〜Ｒ１６と比較して，その面積比，水平方向及び垂直方向のサイズ比，回路ブロックの領域内に位置する第３分配のクロックドライバの数，回路ブロックの領域外に位置する第３分配のクロックドライバＤ３の数，さらに，同じ第２分配のクロックドライバＤ２に従属する第３分配クロックドライバＤ３の回路ブロック内と回路ブロック外の数の比較などが解析される。そして，図３の配置関係にあるときに，回路ブロック内に配置される第３分配クロックドライバＤ３で回路ブロック内の回路へのクロック分配が可能か否か，各分割回路領域Ｒ１〜Ｒ１６内であって回路ブロック領域外の回路へのクロック分配が可能か否かが検証される。
【００２６】
次に，これらの関係解析結果やクロック分配の検証結果に基づいて，回路ブロック内のクロックツリー構造と回路ブロック外のクロックツリー構造のレイアウトが行われる（Ｓ１４−２）。具体例は後述するが，概略を説明すると，回路ブロック内の第３分配クロックドライバＤ３から回路ブロック外へのクロック分配経路，回路ブロック外の第３分配クロックドライバＤ３から回路ブロック内へのクロック分配経路，回路ブロックの領域内から領域外へのクロックドライバＤ３，Ｄ２の移動，回路ブロック領域外から領域内へのクロックドライバＤ３，Ｄ２の移動などが行われる。この配置された回路ブロック領域と分割回路領域との関係に基づいて最適化されたクロックツリー構造のレイアウトがこの段階で行われるので，後に行われる回路ブロックの個別のレイアウト工程で十分なクロック分配が可能になり，また，回路ブロック外の基本論理回路へのクロック分配も適切に行うことができ，さらに，トップレイヤーとの合体時のクロックタイミング調整工程を容易化することができる。
【００２７】
以下，本実施の形態におけるクロックツリー構造のレイアウト例について具体的に説明する。以下のレイアウト例では，回路ブロックのサイズ別と回路ブロック内に位置する第３分配クロックドライバの数別に分類されている。
【００２８】
［回路ブロックのサイズが１つの分割回路領域以下の場合］
図８は，第１のレイアウト例を示す図である。この例では，回路ブロックＨＬＢ１のサイズが１つの分割回路領域と同じサイズであり，フロアプラン工程で回路ブロックＨＬＢ１が分割回路領域Ｒ１内に配置されている。この場合，オリジナルのクロックツリー構造の第３分配クロックドライバＤ３が分割回路領域Ｒ１の中央に配置されていて，このままの状態で第３分配クロックドライバＤ３が回路ブロックＨＬＢ１内にクロックを分配することができるので，オリジナルのクロックツリー構造が維持される。つまり，クロックツリー構造のレイアウトとしては，回路ブロックＨＬＢ１内にその領域内に位置するＨ字型クロック経路ＣＬ２と第３分配クロックドライバＤ３とがレイアウトされ，回路ブロックＨＬＢ１外のトップレイヤーには第１，第２分配クロックドライバＤ１，Ｄ２と残りの３つの第３分配クロックドライバＤ３とＨ字型クロック経路ＣＬ１，ＣＬ２とがレイアウトされる。
【００２９】
そして，後に行われる回路ブロックＨＬＢ１内のレイアウト工程で，第３分配クロックドライバＤ３から論理セルＣＥＬへのクロック分配経路ＣＬ３（破線）がレイアウトされる。その段階では，すでに回路ブロックＨＬＢ１へのクロック分配に必要な第３分配クロックドライバＤ３（実線太線）までのレイアウトは終了していて，クロックドライバＤ３までのクロック信号のタイミングは最適化されている。したがって，回路ブロックＬＢ１内のレイアウト設計ではクロックドライバＤ３から先のクロックタイミングのみを調整すれば良い。クロック分配経路ＣＬ３は，回路ブロックＨＬＢ１の論理設計の段階でネットリストに含まれている。
【００３０】
なお，回路ブロックＨＬＢ１には，単独のチップと同様に，ブロック外からのクロック分配経路ＣＬ２のために入力ポートが設けられるが，図示されていない。上記したとおり，クロックツリー構造のレイアウト工程では，回路ブロック内及び外において実線太線のクロック分配経路とクロックドライバなどがレイアウトされ，破線のクロック分配経路は，回路ブロックのレイアウト工程とトップレイヤーのレイアウト工程でそれぞれレイアウトされる。以下の例においても同様である。
【００３１】
図９は，第２，第３のレイアウト例を示す図である。回路ブロックＨＬＢ２は，１つの分割回路領域と同じサイズであるが，フロアプラン工程で分割回路領域Ｒ１，Ｒ２上にレイアウトされている。この場合は，回路ブロックＨＬＢ２の領域内のクロックドライバＤ３で回路ブロック内のセルへのクロック分配可能であるので，オリジナルのクロックツリー構造が維持される。つまり，太線のクロック分配経路とクロックドライバＤ３が回路ブロックＨＬＢ２内にレイアウトされる。また，トップレイヤーにはそれ以外の太線のクロック分配経路とクロックドライバＤ１，Ｄ２，Ｄ３がレイアウトされる。さらに，トップレイヤーのレイアウトでは，回路ブロックＨＬＢ２の領域外のクロックドライバＤ３が領域Ｒ１とＲ２の回路ブロックＨＬＢ２の領域外のセルへのクロック分配経路ＣＬ３がレイアウトされる。そして，回路ブロックＨＬＢ２のレイアウト工程でその領域内の破線のクロック分配経路がレイアウトされる。
【００３２】
図９の回路ブロックＨＬＢ３は，１つの分割回路領域Ｒ２よりも小さいサイズである。この場合，回路ブロックＨＬＢ３の領域内のクロックドライバＤ３はそのままレイアウトされ，内部のセルＣＥＬへのクロック分配を担当する。一方，分割回路領域Ｒ２内で回路ブロックＨＬＢ３の領域外のセルへのクロック分配経路として太線の経路ＣＬ３Ａとクロック出力ポートＣＰｏとがレイアウトされる。このクロック出力ポートＣＰｏは，出力端子であると共に波形成型用のリピータ機能が含まれる。また，図示しないが，Ｈ字型経路ＣＬ２のためのクロック入力ポートも回路ブロック内にレイアウトされる。
【００３３】
以上のとおり，図９において，クロックツリーレイアウト設計にて，クロックドライバＤ１，Ｄ２，Ｄ３と太線のクロック分配経路とクロック出力ポートＣＰｏとが，トップレイヤー及び回路ブロックＨＬＢ２，３内にそれぞれレイアウトされ，破線のクロック分配経路は，それぞれのレイアウト工程で配置される。
【００３４】
図１０は，第４，第５のレイアウト例を示す図である。回路ブロックＨＬＢ４，ＨＬＢ５はいずれも１つの分割回路領域Ｒ１，Ｒ２と同じサイズであるが，回路ブロックの領域内に２つの第３分配クロックドライバＤ３が位置する。そこで，回路ブロックＨＬＢ４の例では，領域Ｒ５内のクロックドライバＤ３を回路ブロックＨＬＢ４の領域外にレイアウトし，そのクロックドライバＤ３には，領域Ｒ１，Ｒ５内の回路ブロックＨＬＢ４外のセルへのクロック分配を分担させ，領域Ｒ１内のクロックドライバＤ３には回路ブロックＨＬＢ４内のセルへのクロック分配を分担させる。
【００３５】
一方，別の例としては，回路ブロックＨＬＢ５の領域内に２つのクロックドライバＤ３をそのままレイアウトし，ただし，領域Ｒ６内のクロックドライバＤ３から回路ブロックＨＬＢ５の領域外のセルへのクロック分配を可能にするために，回路ブロックＨＬＢ５内にクロック分配経路ＣＬ３Ａとクロック出力ポートＣｐｏとをレイアウトする。図１０のような分割回路領域と回路ブロックの領域との関係にある場合，いずれのクロックツリー構造のレイアウトを行っても良い。
【００３６】
図１１は，第６のレイアウト例を示す図である。回路ブロックＨＬＢ６は，１つの分割回路領域よりも小さいサイズであり，レイアウトされた状態ではその領域内に第３分配クロックドライバＤ３を有していない。この場合は，領域Ｒ１，Ｒ５のいずれかのクロックドライバＤ３からのクロック分配経路ＣＬ３Ａをトップレイヤー側にレイアウトし，回路ブロックＨＬＢ６内には，クロック入力ポートＣＰｉとクロック分配経路ＣＬ３Ｂと第４分配クロックドライバＤ４とをレイアウトする。
【００３７】
［回路ブロックのサイズが１つの分割回路領域より大きい場合］
図１２は，第７のレイアウト例を示す図である。回路ブロックＨＬＢ７は，縦方向及び横方向共に分割回路領域Ｒ１の一辺長Ａの１１０％未満であり，１つの分割回路領域Ｒ１より１２１％未満のサイズである。この程度のサイズであれば，領域Ｒ１内の１つのクロックドライバＤ３で回路ブロックＨＬＢ７内のセルへのクロック分配が可能であり，回路ブロックのレイアウトツールにより自動レイアウト可能である。また，回路ブロックＨＬＢ７のサイズが大きいため，第２分配クロックドライバＤ２が回路ブロックの領域内に位置する。しかし，クロックドライバＤ２は，回路ブロックＨＬＢ７の外の３つのクロックドライバＤ３にクロック分配するので，それらの３つのクロックドライバＤ３と共にクロックタイミング調整を行うのが好ましい。そこで，第２分配のクロックドライバＤ２は，回路ブロックＨＬＢ７の領域外に移動させてレイアウトされる。それに伴い，クロックドライバＤ２から３つのクロックドライバＤ３への分配経路ＣＬ２は，回路ブロックＨＬＢ７の領域外のトップレイヤーにレイアウトされる。なお，第２分配クロックドライバＤ２から回路ブロックＨＬＢ７内へのクロック分配経路上には，クロック入力ポートが設けられる。ただし，図示されていない。
【００３８】
図１３は，第８のレイアウト例を示す図である。この例では，回路ブロックＨＬＢ８の縦方向の長さが領域Ｒ１の一辺長Ａの１１０％を越えているが（α＞Ａ／１０），横方向の長さが一辺長Ａの１１０％未満（β＜Ａ／１０）の例である。この場合，回路ブロックＨＬＢ８のサイズが大きくなっているので，領域Ｒ１内のクロックドライバＤ３のみでは回路ブロックＨＬＢ８内の全ての回路へのクロック分配はできない。そこで，領域Ｒ５内のクロックドライバＤ３から回路ブロックＨＬＢ８内へのクロック分配経路として，クロック入力ポートＣｐｉとクロック分配経路ＣＬ３Ａと第４分配クロックドライバＤ４とを回路ブロックＨＬＢ８内にレイアウトする。そして，回路ブロックＨＬＢ８のレイアウト工程では領域Ｒ５内のセルには，第４分配クロックドライバＤ４からクロックを分配する。さらに，図１２の第７のレイアウト例と同様に，第２分配クロックドライバＤ２は，回路ブロックの外に移動してトップレイヤー側にレイアウトされ，第１分配クロックドライバＤ２から回路ブロック外の３つのクロックドライバＤ３へのクロック分配経路もトップレイヤー側にレイアウトされる。
【００３９】
図１４は，第９のレイアウト例を示す図である。この例では，回路ブロックＨＬＢ９の縦方向と横方向共に領域Ｒ１の一辺長Ａの１１０％を越えている（α，β＞Ａ／１０）。但し，回路ブロックＨＬＢ９の領域内には領域Ｒ１の第３分配クロックドライバＤ３のみが位置している。この場合，そのクロックドライバＤ３のみではクロック分配が不十分であるので，領域Ｒ５では，クロックドライバＤ３から回路ブロックＨＬＢ９内へのクロック分配構造として，クロック入力ポートＣｐｉとクロック分配経路ＣＬ３Ａと第４分配クロックドライバＤ４とが回路ブロック内にレイアウトされる。同様に，領域Ｒ２でも同様のクロック分配構成が回路ブロック内にレイアウトされる。また，図１２の第７のレイアウト例と同様に，第２分配クロックドライバＤ２は，回路ブロックＨＬＢ９の領域から外に移動してトップレイヤー側にレイアウトされる。
【００４０】
［回路ブロック領域内に２つの第３分配クロックドライバを含む場合］
図１５は，第１０のレイアウト例を示す図である。この例では，回路ブロックＨＬＢ１０の縦方向は領域Ｒ５において領域の一辺長Ａの約半分より小さく（α＞Ａ／２−Ｄ３の長さ）横方向は領域Ｒ１の一辺長Ａの１１０％未満である（β＜Ａ／１０）場合であって，領域Ｒ５内の第３分配クロックドライバＤ３が回路ブロックの領域内に位置する場合である。この場合は，領域Ｒ５内のクロックドライバＤ３から領域Ｒ５内で回路ブロックＨＬＢ１０の外のセルへのクロック分配構成を確保するために，回路ブロックＨＬＢ１０内に，クロックドライバＤ３からのクロック分配経路（図示せず）とクロック出力ポートＣｐｏとをレイアウトする。さらに，トップレイヤー側にクロック分配経路ＣＬ３Ａと第４分配クロックドライバＤ４をレイアウトする。また，第２分配クロックドライバＤ２は，回路ブロックＨＬＢ１０の外に移動させトップレイヤー側にレイアウトする。
【００４１】
図１６は，第１１のレイアウト例を示す図である。この例では，回路ブロックＨＬＢ１０の縦方向は領域Ｒ５において領域の一辺長Ａの約半分より小さく（α＞Ａ／２−Ｄ３の長さ）横方向は領域Ｒ１の一辺長Ａの１１０％を越える（β＞Ａ／１０）場合であって，領域Ｒ５内の第３分配クロックドライバＤ３が回路ブロックの領域内に位置する場合である。この場合は，領域Ｒ５では，図１５の例と同様に，回路ブロックＨＬＢ１１の領域内のクロックドライバＤ３から回路ブロック外へのクロック分配経路として，クロック出力ポートＣｐｏと，クロック分配経路ＣＬ３Ａと第４分配クロックドライバＤ４とを，回路ブロックＨＬＢ１１内と外にそれぞれレイアウトする。また，領域Ｒ２側では，図１４と同様に，クロックドライバＤ３から回路ブロックＨＬＢ１１内へのクロック分配経路として，回路ブロック内にクロック入力ポートＣｐｉとクロック分配経路ＣＬ３Ｂと第４分配クロックドライバＤ４とをレイアウトする。また，第２分配クロックドライバＤ２は回路ブロックの外にレイアウトする。
【００４２】
なお，回路ブロックＨＬＢ１１内には２つのクロックドライバＤ３が位置し，回路ブロック外にも２つのクロックドライバＤ３が位置する。そのため，第２分配クロックドライバＤ２を回路ブロックの外に配置するか中に配置するかの決定が必要になる。第２分配クロックドライバＤ２を回路ブロック内にレイアウトすると，そのクロックドライバＤ２は，回路ブロック外のクロックドライバＤ３とタイミング調整が必要になり，回路ブロックを別々のレイアウト設計する場合に好ましくない。したがって，第２分配クロックドライバＤ２を回路ブロック外にレイアウトすることによるＤ２−Ｄ３のクロック分配経路の長さのアンバランスと，クロックドライバＤ２を回路ブロック内にレイアウトすることによるクロックドライバＤ２と外部のクロックドライバＤ３とのタイミング調整の煩雑さとを比較考量して，クロックドライバＤ２を回路ブロックの外に移動するか否かが決定される。上記の考慮は，図１５の場合も同じである。
【００４３】
図１７は，第１２のレイアウト例を示す図である。この例では，回路ブロックＨＬＢ１２の縦方向は領域Ｒ５において領域の一辺長Ａの約半分より大きく（α＜Ａ／２−Ｄ３の長さ）横方向は領域Ｒ１の一辺長Ａの１１０％未満の（β＜Ａ／１０）場合であって，領域Ｒ５内の第３分配クロックドライバＤ３が回路ブロックの領域内に位置する場合である。この場合は，回路ブロックＨＬＢ１２内のセルには，２つの第３分配クロックドライバＤ３によりクロックを分配させるために，それらのクロックドライバＤ３を回路ブロック内にレイアウトする。一方，領域Ｒ５内の回路ブロック外のセルは，αが小さくセル数が少ないと予想されるので，領域Ｒ６内のクロックドライバＤ３から破線のようにクロックを供給するようにする。それにより，領域Ｒ５のクロックドライバＤ３から回路ブロック外へのクロック供給構造のレイアウトを不要にすることができる。なお，第２分配クロックドライバＤ２を回路ブロックＨＬＢ１２の領域から外に移動するのは，図１６などと同じである。
【００４４】
図１８は，第１３のレイアウト例である。この例では，回路ブロックＨＬＢ１３の縦方向は領域Ｒ５において領域の一辺長Ａの約半分より大きく（α＜Ａ／２−Ｄ３の長さ）横方向は領域Ｒ１の一辺長Ａの１１０％を越える（β＞Ａ／１０）場合であって，領域Ｒ５内の第３分配クロックドライバＤ３が回路ブロックの領域内に位置する場合である。この場合も，回路ブロックＨＬＢ１２内のセルには，２つの第３分配クロックドライバＤ３によりクロックを分配させるために，それらのクロックドライバＤ３を回路ブロック内にレイアウトする。そして，領域Ｒ５の回路ブロック外のセルには領域Ｒ６のクロックドライバＤ３からクロックを供給させる。また，βが大きいので，第２分配クロックドライバＤ２は，回路ブロック内にレイアウトして，Ｄ２−Ｄ３のクロック分配経路長のアンバランスを避ける。それに伴って，回路ブロックＨＬＢ１３内にクロックドライバＤ２から外のクロックドライバＤ３へのクロック分配経路ＣＬ２とクロック出力ポートＣｐｏとをレイアウトする。また，第１分配クロックドライバＤ１から第２分配クロックドライバＤ２へのクロック入力ポート（図示せず）を回路ブロックＨＬＢ１３内に設ける。
【００４５】
図１９は，第１４のレイアウト例である。この例では，回路ブロックＨＬＢ１４の縦方向は領域Ｒ１の一辺長Ａの２１０％未満であり（α＜Ａ／１０）横方向は領域Ｒ１の一辺長Ａの１１０％未満の（β＜Ａ／１０）場合である。この場合は，回路ブロックＨＬＢ１２内のセルには，２つの第３分配クロックドライバＤ３によりクロックを分配させるために，それらのクロックドライバＤ３を回路ブロック内にレイアウトする。さらに，領域Ｒ９内で回路ブロックＨＬＢ１４内のセル数は少ないと予想されるので，領域Ｒ５内のクロックドライバＤ３からクロックを分配させる。また，βが小さいので第２分配クロックドライバＤ２は，回路ブロックＨＬＢ１４の領域外に移動してトップレイヤー側にレイアウトする。
【００４６】
図２０は，第１５のレイアウト例である。この例では，回路ブロックＨＬＢ１５の縦方向は領域Ｒ１の一辺長Ａの２１０％より大きく（α＞Ａ／１０）横方向は領域Ｒ１の一辺長Ａの１１０％未満の（β＜Ａ／１０）場合である。この場合は，回路ブロックＨＬＢ１５のサイズが図１９の例よりも大きくなっている。そこで，領域Ｒ２，Ｒ６の第３分配クロックドライバＤ３からそれぞれ領域Ｒ２，Ｒ６内の回路ブロック内のセルへのクロック分配路を形成するために，領域Ｒ２，Ｒ６の回路ブロック内にそれぞれ，クロック入力ポートＣｐｉとクロック分配路ＣＬ３Ａ，Ｂと第４分配クロックドライバＤ４とをレイアウトする。また，第２分配クロックドライバＤ２は，回路ブロック外にレイアウトする。
【００４７】
図２１は，第１６のレイアウト例である。この例では，回路ブロックＨＬＢ１６の縦方向は領域Ｒ１の一辺長Ａの２１０％より大きく（α＞Ａ／１０）横方向は領域Ｒ１の一辺長Ａの１１０％より大きい（β＞Ａ／１０）場合である。この場合は，横方向が図２０よりも長くなっているので，第２分配クロックドライバＤ２は回路ブロック内にレイアウトして，Ｄ２−Ｄ３のクロック経路長のアンバランスを回避し，さらにＤ１−Ｄ２のクロック経路長が短くなるのを回避している。それにともなって，図１８と同様に，回路ブロックＨＬＢ１６内にクロック分配路ＣＬ２とクロック出力ポートＣｐｏとを設け，領域Ｒ２，Ｒ６内のクロックドライバＤ３へのクロック分配構造を確保する。なお，クロックドライバＤ２を回路ブロック外に設けても良い。その場合は，図２０のように領域Ｒ２，Ｒ６でクロックドライバＤ３から回路ブロック内へのクロック分配経路構造をレイアウトする必要がある。なお，βが大きいので，領域Ｒ２，Ｒ６内の第３分配クロックドライバＤ３のいずれか一方を回路ブロックＨＬＢ１６内にレイアウトしても良い。
【００４８】
［回路ブロック領域内に３つの第３分配クロックドライバを含む場合］
図２２は，第１７のレイアウト例である。この例では，回路ブロックＨＬＢ１７の縦方向は領域Ｒ９において領域の一辺長Ａの約半分より小さく（α＞Ａ／２−Ｄ３の長さ）横方向は領域Ｒ１の一辺長Ａの１１０％未満の（β＜Ａ／１０）場合であって，領域Ｒ９内の第３分配クロックドライバＤ３が回路ブロックの領域内に位置する場合である。この場合は，領域Ｒ９内のクロックドライバＤ３を回路ブロックＨＬＢ１７の外側に移動し，回路ブロックＨＬＢ１７の領域内の第２分配クロックドライバＤ２も回路ブロックＨＬＢ１７の外側に移動する。αが大きいので，領域Ｒ９内であって回路ブロックＨＬＢ１７の外のセルには移動したクロックドライバＤ３からクロックドライバが供給される。また，βは小さいが回路ブロックＨＬＢ１７内のすべてのセルに２つの第３分配クロックドライバＤ３からクロックを供給するには不十分であるので，図２０の第１５のレイアウト例と同様に，領域Ｒ２，Ｒ６内の第３分配クロックドライバＤ３から回路ブロック内へのクロック供給路として，クロック入力ポートＣｐｉとクロック分配路ＣＬ３Ａ，ＣＬ３Ｂと第４分配クロックドライバＤ４とを回路ブロック内にレイアウトする。
【００４９】
図２３は，第１８のレイアウト例である。この例では，回路ブロックＨＬＢ１８の縦方向は領域Ｒ９において領域の一辺長Ａの約半分より小さく（α＞Ａ／２−Ｄ３の長さ）横方向は領域Ｒ１の一辺長Ａの１１０％を超える（β＞Ａ／１０）場合であって，領域Ｒ９内の第３分配クロックドライバＤ３が回路ブロックの領域内に位置する場合である。この場合は，αが大きいので，図２２の第１７のレイアウト例のように，領域Ｒ９内の第３分配クロックドライバＤ３を回路ブロックの領域外に移動してトップレイヤー型にレイアウトし，回路ブロック外のセルへのクロック分配を担当させる。また，βも大きいので，図１１の第１６のレイアウト例と同様に，第２分配クロックドライバＤ２と領域Ｒ２のクロックドライバＤ３は共に回路ブロック内にレイアウトし，領域Ｒ６内のクロックドライバＤ３は回路ブロック外にレイアウトし，そのクロックドライバＤ３には領域Ｒ２，Ｒ６内の回路ブロック外のセルへのクロック分配を担当させる。それに伴い，クロックドライバＤ２から領域Ｒ６のクロックドライバＤ３へのクロック供給路としてクロック出力ポートＣｐｏをレイアウトする。
【００５０】
なお，βの大きさによっては，回路ブロックＨＬＢ１８内のセル数が少なく，その場合は，領域Ｒ２内の第３分配クロックドライバＤ３を回路ブロック外にレイアウトする。その場合は，図２２の第１７レイアウト例のように，第２分配クロックドライバＤ２を回路ブロック外に移動させる。
【００５１】
図２４は，第１９のレイアウト例である。この例では，回路ブロックＨＬＢ１９の縦方向は領域Ｒ９において領域の一辺長Ａの約半分より大きく（α＜Ａ／２−Ｄ３の長さ）横方向は領域Ｒ１の一辺長Ａの１１０％未満の（β＜Ａ／１０）場合であって，領域Ｒ９内の第３分配クロックドライバＤ３が回路ブロックの領域内に位置する場合である。この場合は，領域Ｒ９内の第３分配クロックドライバＤ３を回路ブロックＨＬＢ１９内にレイアウトし，第２分配クロックドライバＤ３からのクロック分配路ＣＬ２Ａを回路ブロック内の３つのクロックドライバＤ３に対して設ける。それに対応して，回路ブロック外の第２分配クロックドライバＤ２から領域Ｒ６内のクロックドライバＤ３へのクロック分配路ＣＬ２Ｂを設ける。これにより，回路ブロックＨＬＢ１９内の３つのクロックドライバＤ３に対しては，共通の第２分配クロックドライバＤ２からタイミング調整することができる。
【００５２】
上記のよう，隣接４分割回路領域Ｒ１，Ｒ２，Ｒ５，Ｒ６内の第２分配クロックドライバＤ２からは，領域Ｒ１，Ｒ２，Ｒ５，Ｒ９の第３分配クロックドライバＤ３にクロック分配路が設けられ，隣接４分割回路領域Ｒ９，Ｒ１０，Ｒ１３，Ｒ１４（図示せず）の第２分配クロックドライバＤ２から領域Ｒ６，Ｒ１０の第３分配クロックドライバＤ３にクロック分配路が設けられる。
【００５３】
なお，βが小さい点では，図２２の第１７レイアウト例と類似するが，回路ブロック内には３つの第３分配クロックドライバＤ３が設けられているので，回路ブロック内のセルへのクロック分配は十分に行える。よって，領域Ｒ２，Ｒ６の第３分配クロックドライバＤ３から回路ブロック内へのクロック供給路は必要ない。
【００５４】
図２５は，第２０のレイアウト例である。この例では，回路ブロックＨＬＢ２０の縦方向は領域Ｒ９の一辺長Ａの約半分より大きく（α＜Ａ／２−Ｄ３の長さ）横方向は領域Ｒ１の一辺長Ａの１１０％を超える（β＞Ａ／１０）場合であって，領域Ｒ９内の第３分配クロックドライバＤ３が回路ブロックの領域内に位置する場合である。この場合，図２４と同様にαが小さいので，領域Ｒ９の第３分配クロックドライバＤ３は回路ブロック内にレイアウトされる。そして，クロック分配路ＣＬ２Ａも回路ブロック内にレイアウトされる。一方，βが大きいので，領域Ｒ２の第３分配クロックドライバＤ３は回路ブロック内にレイアウトされ，領域Ｒ２内の回路ブロック外のセルには，領域Ｒ６の第３分配クロックドライバＤ３からクロックが供給される。また，αが小さいので，領域Ｒ１０の第３分配クロックドライバＤ３から領域Ｒ９の回路ブロック外のセルにクロックが供給される。
【００５５】
［回路ブロック領域内に４つの第３分配クロックドライバを含む場合］
図２６は，第２１のレイアウト例である。この例では，回路ブロックＨＬＢ２１の縦方向は領域Ｒ５において一辺長Ａの約半分より小さく（α＞Ａ／２−Ｄ３の長さ）横方向も領域Ｒ２の一辺長Ａの約半分より小さく（β＞Ａ／２−Ｄ３の長さ），回路ブロック内に４つの第３分配クロックドライバＤ３が位置する場合である。このような分割回路領域と回路ブロックとの関係の場合，領域Ｒ６内の第３分配クロックドライバＤ３を回路ブロック外に移動させ，領域Ｒ２，Ｒ６，Ｒ５内で回路ブロック外のセルには移動させたクロックドライバＤ３からクロックを供給させるのが基本的考えである。ただし，αとβが大きいので領域Ｒ２，Ｒ５内の回路ブロック外のセルへのクロック供給が不足する。そのため，領域Ｒ２，Ｒ５内の第３分配クロックドライバＤ３から領域Ｒ２，Ｒ５内の回路ブロック外のセルに対するクロック供給路として，クロック分配路ＣＬ３Ａ，ＣＬ３Ｂとクロック出力ポートＣｐｏを回路ブロック内に設ける。
【００５６】
図２７は，第２２のレイアウト例である。この例では，回路ブロックＨＬＢ２２の縦方向は領域Ｒ５において一辺長Ａの約半分より大きく（α＜Ａ／２−Ｄ３の長さ）横方向は領域Ｒ２において一辺長Ａの約半分より小さく（β＞Ａ／２−Ｄ３の長さ），回路ブロック内に４つの第３分配クロックドライバＤ３が位置する場合である。この場合は，図２６の第２１のレイアウト例と比較すると，αが小さくなっている点で異なる。したがって，領域Ｒ６の第３分配クロックドライバＤ３を回路ブロックの外に移動し，領域Ｒ６，Ｒ５内の回路ブロック外のセルへのクロック供給を担当させる。また，βが大きいので領域Ｒ２でクロック分配路ＣＬ３Ａとクロック出力ポートＣｐｏとを回路ブロック内にレイアウトする。
【００５７】
図２８は，第２３のレイアウト例である。この例では，回路ブロックＨＬＢ２３の縦方向は領域Ｒ５において一辺長Ａの約半分より小さく（α＞Ａ／２−Ｄ３の長さ）横方向は領域Ｒ２において一辺長Ａの約半分より大きく（β＜Ａ／２−Ｄ３の長さ），回路ブロック内に４つの第３分配クロックドライバＤ３が位置する場合である。つまり，図２７とαとβの関係が逆になっている。それに伴い，領域Ｒ２とＲ５の構成が逆になっている。それ以外は同じである。
【００５８】
図２９は，第２４のレイアウト例である。この例では，回路ブロックＨＬＢ２４の縦方向は領域Ｒ５において一辺長Ａの約半分より大きく（α＜Ａ／２−Ｄ３の長さ）横方向も領域Ｒ２において一辺長Ａの約半分より大きく（β＜Ａ／２−Ｄ３の長さ），回路ブロック内に４つの第３分配クロックドライバＤ３が位置する場合である。つまり，αとβが共に小さい場合である。この場合は，回路ブロック内に４つの第３分配クロックドライバＤ３をレイアウトし，領域Ｒ２，Ｒ５，Ｒ６では，それぞれクロックドライバＤ３から回路ブロック外のセルへのクロック供給路ＣＬ３Ａ，Ｂ，Ｃとクロック出力ポートＣｐｏを設ける。
【００５９】
図３０は，第２５のレイアウト例である。この例では，回路ブロックＨＬＢ２５の縦方向は領域Ｒ１の一辺長Ａの２１０％未満（α＜Ａ／１０）横方向は領域Ｒ２において一辺長Ａの約半分より小さく（β＞Ａ／２−Ｄ３の長さ），回路ブロック内に４つの第３分配クロックドライバＤ３が位置する場合である。この場合は，βが大きいので，領域Ｒ６内の第３分配クロックドライバＤ３を回路ブロック外に移動させ，そのクロックドライバＤ３により領域Ｒ２とＲ６内で回路ブロック外のセルへのクロック供給を担当させる。αは小さいので，回路ブロック内の３つの第３分配クロックドライバＤ３に回路ブロック内のセルへのクロック供給を担当させる。
【００６０】
図３１は，第２６のレイアウト例である。この例では，回路ブロックＨＬＢ２６の縦方向は領域Ｒ１の一辺長Ａの２１０％未満（α＜Ａ／１０）横方向は領域Ｒ２の一辺長Ａの約半分より大きく（β＜Ａ／２−Ｄ３の長さ），回路ブロック内に４つの第３分配クロックドライバＤ３が位置する場合である。この場合は，図３０の第２５レイアウト例と比較すると，βが小さくなっている。それに伴って，領域Ｒ６内の第３分配クロックドライバＤ３を回路ブロック内にレイアウトする。そして，領域Ｒ２，Ｒ６の回路ブロック外のセルに対するクロック分配路ＣＬ３Ａ，Ｂとクロック出力ポートＣｐｏとを回路ブロック内にレイアウトする。
【００６１】
以上説明したとおり，本実施の形態では，分割回路領域のほぼ中央に第３分配クロックドライバが置かれるＨ字型クロックツリー構造を，フロアプラン工程でレイアウトされる回路ブロックＨＬＢのサイズと位置に対応させて，回路ブロック内と回路ブロック外に適切にレイアウトする。これにより，個別にレイアウト設計される回路ブロック内でのクロック供給に支障を生じることを回避し，回路ブロック内でのクロックタイミング調整も容易にすることができる。さらに，回路ブロック外のセルへのクロック供給にも支障を生じることを回避することができる。
【００６２】
以上の実施の形態をまとめると，次の付記のとおりである。
【００６３】
（付記１）半導体基板上に異なるサイズの複数の回路ブロック領域が配置される集積回路装置のレイアウト方法において，
前記半導体基板上に前記複数の回路ブロックの領域を配置するフロアプラン工程と，
前記半導体基板上の分割された矩形状の複数の分割回路領域それぞれに対応付けられた最下位のクロックドライバを分配経路の最終端に有し，分配経路の開始端の最上位のクロックドライバからＨ字型経路に分岐し，更に当該Ｈ字型経路の末端が下位のクロックドライバを介して下位のＨ字型経路に分岐して構成されるクロック分配経路を，前記半導体基板上に配置する工程と，
前記回路ブロック内に，前記クロック分配経路の最下位クロックドライバと，当該最下位クロックドライバへのその上位のクロックドライバからのＨ字型経路とをレイアウトする第１のレイアウト工程と，
前記回路ブロック外に，前記回路ブロック内にレイアウトされた部分を除いて前記クロック分配経路をレイアウトする第２のレイアウト工程と，
前記第１及び第２のレイアウト工程後に論理回路とその接続配線及び前記最下位クロックドライバから前記論理回路へのクロック配線とがレイアウトされた前記複数の回路ブロックを，前記半導体基板上に配置する工程とを有する集積回路装置のレイアウト方法。
【００６４】
（付記２）付記１において，
前記第１及び第２のレイアウト工程で，前記分割回路領域とそこに配置された回路ブロックの領域との関係に基づいて，前記回路ブロック領域内に配置された最下位のクロックドライバから当該回路ブロック外への追加クロック分配経路を，前記回路ブロック内に配置する集積回路装置のレイアウト方法。
【００６５】
（付記３）付記１において，
前記第１及び第２のレイアウト工程で，前記分割回路領域とそこに配置された回路ブロックの領域との関係に基づいて，前記分割回路領域内であって回路ブロック領域外に配置された最下位のクロックドライバから当該回路ブロック内への追加クロック分配経路と，当該追加クロック分配経路の末端に接続される追加の最下位クロックドライバとを，前記回路ブロック内に配置する集積回路装置のレイアウト方法。
【００６６】
（付記４）付記１において，
前記第１及び第２のレイアウト工程で，前記分割回路領域とそこに配置された回路ブロックの領域との関係に基づいて，前記回路ブロック領域内に位置する最下位のクロックドライバを当該分割回路領域内であって回路ブロック領域外の位置に移動させる工程を有する集積回路装置のレイアウト方法。
【００６７】
（付記５）付記４において，
前記移動させた最下位のクロックドライバから前記回路ブロック内への追加クロック分配経路と，当該追加クロック分配経路の末端に接続される追加の最下位クロックドライバとを，前記回路ブロック内に配置する集積回路装置のレイアウト方法。
【００６８】
（付記６）付記１において，
前記第１及び第２のレイアウト工程で，複数の前記分割回路領域とそこに配置された回路ブロックの領域との関係に基づいて，前記回路ブロック領域内に位置する最下位のクロックドライバより上位のクロックドライバを当該複数の分割回路領域内であって回路ブロック領域外の位置に移動させる工程を有する集積回路装置のレイアウト方法。
【００６９】
（付記７）付記６において，
前記上位のクロックドライバの移動は，当該上位のクロックドライバに属する最下位クロックドライバの，前記回路ブロックの領域内に位置する数と前記回路ブロックの領域外に位置する数との関係に基づいて判定される集積回路装置のレイアウト方法。
【００７０】
（付記８）付記１において，
前記第２のレイアウト工程で，所定の分割回路領域内であって前記回路ブロック領域外に配置された最下位クロックドライバから，前記所定の分割回路領域に隣接する分割回路領域内であって前記回路ブロック領域外のセルにクロック分配路をレイアウトする集積回路装置のレイアウト方法。
【００７１】
（付記９）付記１において，
前記第１及び第２のレイアウト工程で，前記分割回路領域とそこに配置された回路ブロックの領域との関係に基づいて，前記回路ブロック領域外に位置する最下位のクロックドライバを当該回路ブロック領域内の位置に移動させ，当該分割回路領域に隣接する分割回路領域内で前記回路ブロック領域外のセルに，前記移動させた最下位クロックドライバからクロック分配路をレイアウトする集積回路装置のレイアウト方法。
【００７２】
（付記１０）付記１において，
前記第１及び第２のレイアウト工程で，第１の隣接する４つの分割回路領域内に位置する４つの最下位クロックドライバのうち，前記回路ブロック領域外の最下位クロックドライバへのクロック分配路を，前記第１の隣接４分割回路領域に隣接する第２の隣接４分割回路領域内に位置する上位のクロックドライバからのクロック分配路に置き換え，前記第２の隣接４分割回路領域内に位置する４つの最下位クロックドライバのうち，前記回路ブロック領域内の最下位クロックドライバへのクロック分配路を，前記第１の隣接４分割回路領域内に位置する上位のクロックドライバからのクロック分配路に置き換える集積回路装置のレイアウト方法。
【００７３】
（付記１１）付記１において，
前記第１及び第２のレイアウト工程で，第１の隣接する４つの分割回路領域内に位置する４つの最下位クロックドライバのうち，前記回路ブロック領域内に位置する最下位クロックドライバを当該回路ブロック領域外に移動し，当該移動した最下位クロックドライバから前記回路ブロック領域外のセルへのクロック分配路を配置する集積回路装置のレイアウト方法。
【００７４】
（付記１２）付記１１において，
前記移動した最下位クロックドライバから，隣接する分割回路領域内で前記回路ブロック外のセルへのクロック分配路を配置する集積回路装置のレイアウト方法。
【図面の簡単な説明】
【００７５】
【図１】半導体基板と分割回路領域との関係を示す図である。
【図２】Ｈ字型クロックツリー構造を示す図である。
【図３】階層設計におけるＨ字型クロックツリー構造と下位の回路モジュールとの関係を示す図である。
【図４】本実施の形態における集積回路装置のレイアウト装置の構成図である。
【図５】本実施の形態における集積回路装置のレイアウトデータ構成を示す図である。
【図６】本実施の形態におけるレイアウト工程のフローチャート図である。
【図７】本実施の形態におけるクロックツリーのレイアウト工程のフローチャート図である。
【図８】クロックツリー構造の第１のレイアウト例を示す図である。
【図９】クロックツリー構造の第２，第３のレイアウト例を示す図である。
【図１０】クロックツリー構造の第４，第５のレイアウト例を示す図である。
【図１１】クロックツリー構造の第６のレイアウト例を示す図である。
【図１２】クロックツリー構造の第７のレイアウト例を示す図である。
【図１３】クロックツリー構造の第８のレイアウト例を示す図である。
【図１４】クロックツリー構造の第９のレイアウト例を示す図である。
【図１５】クロックツリー構造の第１０のレイアウト例を示す図である。
【図１６】クロックツリー構造の第１１のレイアウト例を示す図である。
【図１７】クロックツリー構造の第１２のレイアウト例を示す図である。
【図１８】クロックツリー構造の第１３のレイアウト例を示す図である。
【図１９】クロックツリー構造の第１４のレイアウト例を示す図である。
【図２０】クロックツリー構造の第１５のレイアウト例を示す図である。
【図２１】クロックツリー構造の第１６のレイアウト例を示す図である。
【図２２】クロックツリー構造の第１７のレイアウト例を示す図である。
【図２３】クロックツリー構造の第１８のレイアウト例を示す図である。
【図２４】クロックツリー構造の第１９のレイアウト例を示す図である。
【図２５】クロックツリー構造の第２０のレイアウト例を示す図である。
【図２６】クロックツリー構造の第２１のレイアウト例を示す図である。
【図２７】クロックツリー構造の第２２のレイアウト例を示す図である。
【図２８】クロックツリー構造の第２３のレイアウト例を示す図である。
【図２９】クロックツリー構造の第２４のレイアウト例を示す図である。
【図３０】クロックツリー構造の第２５のレイアウト例を示す図である。
【図３１】クロックツリー構造の第２６のレイアウト例を示す図である。
【符号の説明】
【００７６】
Ｒ１，Ｒ２，Ｒ５，Ｒ６：分割回路領域
Ｄ３：第３分配クロックドライバ        Ｄ２：第２分配クロックドライバ
Ｄ１：第１分配クロックドライバ        ＨＬＢ：回路ブロック
Ｃｐｏ：クロック出力ポート            ＣＥＬ：セル
【図１】
0004814578.tif 000002
【図２】
0004814578.tif 000003
【図３】
0004814578.tif 000004
【図４】
0004814578.tif 000005
【図５】
0004814578.tif 000006
【図６】
0004814578.tif 000007
【図７】
0004814578.tif 000008
【図８】
0004814578.tif 000009
【図９】
0004814578.tif 000010
【図１０】
0004814578.tif 000011
【図１１】
0004814578.tif 000012
【図１２】
0004814578.tif 000013
【図１３】
0004814578.tif 000014
【図１４】
0004814578.tif 000015
【図１５】
0004814578.tif 000016
【図１６】
0004814578.tif 000017
【図１７】
0004814578.tif 000018
【図１８】
0004814578.tif 000019
【図１９】
0004814578.tif 000020
【図２０】
0004814578.tif 000021
【図２１】
0004814578.tif 000022
【図２２】
0004814578.tif 000023
【図２３】
0004814578.tif 000024
【図２４】
0004814578.tif 000025
【図２５】
0004814578.tif 000026
【図２６】
0004814578.tif 000027
【図２７】
0004814578.tif 000028
【図２８】
0004814578.tif 000029
【図２９】
0004814578.tif 000030
【図３０】
0004814578.tif 000031
【図３１】
0004814578.tif 000032