(57)【特許請求の範囲】
【請求項１】
クロック信号発生器に近い部分の上位の段はＨーｔｒｅｅ構造とし、
前記上位の段以外の部分である下位の段はクロック・ツリー・シンセシスにより決定した構造で、かつ前記上段のＨーｔｒｅｅ構造の末端それぞれについて下位に連なるクロックドライバは当該Ｈーｔｒｅｅ構造末端に対し一の方向に延びる帯状の領域内に配置した構造であることを特徴とするクロックツリー構造によるクロック分配回路。
【請求項２】
クロック信号発生器に近い部分の上位の段はＨーｔｒｅｅ構造とし、
前記上位の段以外の部分である下位の段はクロック・ツリー・シンセシスにより決定した構造で、かつ前記上位の段のＨーｔｒｅｅ構造の末端それぞれについて一の方向に延びる領域を当該一の方向に等分割した複数の小領域に分け、前記上位の段のＨーｔｒｅｅ構造の末端に直接接続するクロックドライバが前記複数の小領域の中央に位置するものに配置され、当該末端に直接接続するクロックドライバの次の段のクロックドライバが他のクロックドライバと重ならないように前記複数の小領域のいずれかに配置された構造であることを特徴とするクロックツリー構造によるクロック分配回路。
【請求項３】
クロック信号発生器に近い部分の上位の段をＨーｔｒｅｅ構造として決定した後に、
前記Ｈーｔｒｅｅ構造を固定配線として前記上位の段以外の部分である下位の段をクロック・ツリー・シンセシスにより決定し、かつ前記上位の段のＨーｔｒｅｅ構造の末端それぞれについて下位に連なるクロックドライバを当該Ｈーｔｒｅｅ構造末端に対し一の方向に延びる帯状の領域内に配置することを特徴とするクロックツリー構造によるクロック分配回路の設計方法。
【請求項４】
クロック信号発生器に近い部分の上位の段をＨーｔｒｅｅ構造として決定した後に、
前記Ｈーｔｒｅｅ構造を固定配線として前記上位の段以外の部分である下位の段をクロック・ツリー・シンセシスにより決定し、かつ前記上位の段のＨーｔｒｅｅ構造の末端それぞれについて一の方向に延びる領域を当該一の方向に等分割した複数の小領域に分け、前記上位の段のＨーｔｒｅｅ構造の末端に直接接続するクロックドライバを前記複数の小領域の中央に位置するものに配置し、当該末端に直接接続するクロックドライバの次の段のクロックドライバを他のクロックドライバと重ならないように前記複数の小領域のいずれかに配置した構造であることを特徴とするクロックツリー構造によるクロック分配回路の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クロックツリー構造によるクロック分配回路およびその設計方法に関し、特に半導体集積回路においてクロックスキューを低減し、しかも回路規模および消費電力を少なくできるクロック分配回路およびその設計方法に関する。
【０００２】
【従来の技術】
半導体集積回路においては、一つの発信器からのクロック信号を分配して多数のフリップフロップ等の回路を同期して駆動する場合が多い。このような同期回路の動作を高速化するためには、クロックスキューを極力低減する必要がある。
【０００３】
従来のこのようなクロック信号を多数の回路に分配するものとしてＨーｔｒｅｅ構造の分配回路がある。Ｈーｔｒｅｅ構造とは、図２に示すようにＨ形状の回路の中央にクロック発信器からクロック信号を印加し、そのＨ形状の両側の直線の回路の末端それぞれに直行する回路を更に連結し、この直交する回路の末端に更にこれに直行する回路を連結することを繰り返し、中央部のＨ形状回路を中心として次第に小さくなるＨ形状の回路が組み合わせられた木構造をなす回路で、一の直線回路の末端を次の直線回路の中央に位置させて回路を分岐していき、クロックスキューが発生しないようにしている。通常は、各分岐点にクロックドライバーが配置される。このＨーｔｒｅｅ構造は、クロックスキューを調整するには、有効であるが、分岐された各回路の信号の伝搬時間が同じになるように実際には不要な位置にもクロックドライバーを配置することが多く、冗長なクロックドライバを多数設置することにより、集積回路の回路規模および消費電力の点で問題があった。
【０００４】
Ｈーｔｒｅｅ構造を用いない従来の他のクロック分配回路の設計方法としては、ＣＴＳ（クロック・ツリー・シンセシス）がある。ＣＴＳは、配線長、抵抗、容量および途中に介在するクロックドライバー等による影響を考慮してクロック信号発信器からクロック信号の分配先の回路までのクロックスキューが最少となる配線経路をコンピュータを用いて決定する方法で、冗長なクロックドライバを設ける必要はないが、クロックスキューを十分に低減するのは、困難であった。
【０００５】
【発明が解決しようとする課題】
従来のＨ−Ｔｒｅｅ構造を用いたクロック分配回路は、多数の冗長なクロックドライバにより、集積回路の回路規模、消費電力が問題となっていた。一方、ＣＴＳによるクロック信号の分配回路の設計では、クロックスキューを十分に低減するのが困難であった。
【０００６】
本発明の目的は、冗長なクロックドライバを設けることなく、しかもクロックスキューを十分に低減できるクロックツリー構造によるクロック分配回路およびその設計方法を提供することにある。
【０００９】
本発明のクロックツリー構造によるクロック分配回路は、クロック信号発生器に近い部分の上位の段（図１の１）はＨーｔｒｅｅ構造（図１の１５）とし、
前記上位の段以外の部分である下位の段（図１の２）はクロック・ツリー・シンセシスにより決定した構造で、かつ前記上位の段のＨーｔｒｅｅ構造の末端それぞれについて下位に連なるクロックドライバは当該Ｈーｔｒｅｅ構造末端に対し一の方向に延びる帯状の領域（図１の３）内に配置した構造であることを特徴とする。
【００１０】
本発明のクロックツリー構造によるクロック分配回路は、クロック信号発生器に近い部分の上位の段（図１の１）はＨーｔｒｅｅ構造（図１の２）とし、
前記上位の段以外の部分である下位の段はクロック・ツリー・シンセシスにより決定した構造で、かつ前記上位の段のＨーｔｒｅｅ構造の末端それぞれについて一の方向に延びる領域（図３の４）を当該一の方向に等分割した複数の小領域（図３の５、６）に分け、前記上位の段のＨーｔｒｅｅ構造の末端に直接接続するクロックドライバが前記複数の小領域の中央に位置するもの（図３の５）に配置され、当該末端に直接接続するクロックドライバの次の段のクロックドライバが他のクロックドライバと重ならないように前記複数の小領域のいずれかに配置された構造であることを特徴とする。
【００１３】
本発明のクロックツリー構造によるクロック分配回路の設計方法は、クロック信号発生器に近い部分の上位の段（図１の１）をＨーｔｒｅｅ構造（図２の１５）として決定した後に、
前記Ｈーｔｒｅｅ構造を固定配線として前記上位の段以外の部分である下位の段（図１の２）をクロック・ツリー・シンセシスにより決定し、かつ前記上位の段のＨーｔｒｅｅ構造の末端それぞれについて下位に連なるクロックドライバを当該Ｈーｔｒｅｅ構造末端に対し一の方向に延びる帯状の領域（図１の３）内に配置することを特徴とする。
【００１４】
本発明のクロックツリー構造によるクロック分配回路の設計方法は、クロック信号発生器に近い部分の上位の段（図１の１）をＨーｔｒｅｅ構造（図２の１５）として決定した後に、
前記Ｈーｔｒｅｅ構造を固定配線として前記上位の段以外の部分である下位の段（図１の２）をクロック・ツリー・シンセシスにより決定し、かつ前記上位の段のＨーｔｒｅｅ構造の末端それぞれについて一の方向に延びる領域（図３の４）を当該一の方向に等分割した複数の小領域（図３の５、６）に分け、前記上位の段のＨーｔｒｅｅ構造の末端に直接接続するクロックドライバを前記複数の小領域の中央に位置するもの（図３の５）に配置し、当該末端に直接接続するクロックドライバの次の段のクロックドライバを他のクロックドライバと重ならないように前記複数の小領域のいずれかに配置した構造であることを特徴とする。
【００１５】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
図１は、本発明の実施の形態の半導体集積回路のクロック分配回路の概略を示す図である。
【００１７】
図１において、クロックドライバ１１は、クロック信号発信器（図示せず）からクロック信号を直接、入力し、分岐して２つのクロックドライバ１２に送出する。クロックドライバ１２それぞれは、２つずつのクロックドライバ１３にクロック信号を分岐して送出し、クロックドライバ１３それぞれは、２つずつのクロックドライバにクロック信号を分岐して送出する。
【００１８】
すなわち、クロックドライバ１１〜１４は、クロックツリーを構成し、クロックドライバ１１は第１段目を構成し、クロックドライバ１２、１３および１４は、それぞれ第２段目、第３段目および第４段目を構成する。
【００１９】
本実施の形態では、第１段目および第２段目の上位の段１をＨ−Ｔｒｅｅで構成し、第３段目および第４段目の下位の段２をＣＴＳで構成している。
【００２０】
図２は、クロック分配回路の半導体集積回路上での配置を示す図である。クロックドライバ１１および１２は、太い線で示すＨーｔｒｅｅ１５を構成し、クロックドライバ１３および１４は、ＣＴＳにより構成したものである。ただし、図１の概略図と異なり１つのクロックドライバ１２は、４つのクロックドライバ１３にクロック信号を分岐して送出している。
【００２１】
また、ＣＴＳで生成するクロックドライバ１３および１４を領域３内にのみ収めるように配置位置を制限し、Ｈ−Ｔｒｅｅ１５の末端と、ＣＴＳにより生成したクロックドライバ１３および１４との接続は、配置と同時に接続されるかまたは一方向のみ等の単純な配線で接続されるようにしておく。
【００２２】
本実施の形態のクロック分配回路の設計は、ＣＡＤ（コンピュータ支援による設計）によりコンピュータを使用するにしても設計者の判断により、クロックドライバ１１および１２を含むＨーｔｒｅｅ１５を配置、決定する。この際にＨーｔｒｅｅ１５の末端は領域３内に位置させる。この領域３は、Ｈーｔｒｅｅ１５の末端それぞれについて定められ、いずれかのＨーｔｒｅｅ１５の末端の下位に連なるクロックドライバ１３および１４が、その末端に対し一の配線方向の配線に接続され得るように位置する領域である。図２では、Ｈーｔｒｅｅ１５の末端の２つずつが同一の配線方向上にあるため、２つの末端に対して１つの領域３が設けられている。
【００２３】
次に、このように決定したＨーｔｒｅｅ１５を固定配線として、クロックドライバー１３および１４を、これらを領域３内に位置させる条件でコンピュータを用いてＣＴＳにより決定する。クロックドライバ１３および１４を領域３内に位置させることにより、Ｈーｔｒｅｅ１５の末端とクロックドライバ１３との配線を単純にして配線長のばらつきを防ぐことができ、またクロックドライバ１３と１４との配線も単純なものにでき、正確に同期するクロックツリーの配線が容易になる。
【００２４】
図２に示すクロック分配回路のＨ−Ｔｒｅｅ部分においては、クロックドライバを固定配置し、クロック配線を固定配線し、クロック信号のスキュー低減効果が大きい。またＣＴＳ部分においては必要に応じたクロックドライバーのみを配置するように設計でき、冗長なクロックドライバを用意しておく必要がない。なお、図２では、Ｈーｔｒｅｅ１５の末端の全てにクロックドライバ１３を接続したが、クロック信号を必要とするフリップフロップ等の回路の配置状況によっては、一部の末端にクロックドライバ１３が配置されないようなＣＴＳの実行結果となる場合もある。
【００２５】
図１ではＨ−Ｔｒｅｅで構成するクロック分配段数が２段、ＣＴＳで分配する段数が２段で構成しているが、それぞれの段数は任意の段数で構成してもよい。また、各段の分配数も任意でよい。
【００２６】
また、図２でＣＴＳでのクロックドライバ１３および１４の領域３内での配置位置は制限していないが、ＣＴＳで分配する各段のものを図３のように別々に配置を指定してもよい。すなわち、図３において、Ｈーｔｒｅｅの末端に対し一の配線方向の帯状の領域４を一の配線方向に５つの小領域に等分割し、中央の小領域５にクロックドライバ１３を配置し、他の小領域６それぞれに１つまたは０個のクロックドライバ１４を配置してクロックスキューの調整を容易にしている。
【００２７】
また、図２ではＨ−Ｔｒｅｅ１５はＨの形状の組み合わせたものとなっているが、各段において、分岐点から次の分岐点または末端までの配線長または信号の遅延時間が等しければ、任意の形状でもよい。例えば、１つの分岐点で３つ以上に分岐してもよいし、配線が縦横以外の斜め方向のものでもよい。ただし、ＣＴＳの実行においては、Ｈーｔｒｅｅは固定配線とすることが条件である。
【００２８】
【発明の効果】
以上説明したように、クロックツリーの上位の段をＨ−Ｔｒｅｅ構造で、下位の段をＣＴＳで構成することにより、クロックツリー全体の末端までＨ−Ｔｒｅｅで構成した場合と比較して、冗長なクロックドライバを不要とし、末端に置かれるクロックドライバ数を削減することができるため回路規模および消費電力の削減の効果が得られ、また全てをＣＴＳで構成した場合と比較してスキュー調整が容易となり、十分なクロックスキューの調整が得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態のクロックツリー構造によるクロック分配回路の概略を示す図である。
【図２】図１に示すクロックツリー構造によるクロック分配回路の集積回路上の配置を示す図である。
【図３】図２に示す領域３を分割した小領域５および６にクロックドライバ１３および１４を配置した図である。
【符号の説明】
１    上位の段
２    下位の段
３    領域
１１〜１４    クロックドライバ
１５    Ｈーｔｒｅｅ
【図１】
0003587184.tif 000002
【図２】
0003587184.tif 000003
【図３】
0003587184.tif 000004