説明

クロックツリー設計装置及びクロックツリー設計方法

【課題】クロックレイテンシを最小にする条件下において、クロックスキュー及びバッファ数を比較的少なくする。
【解決手段】実施形態のクロックツリー設計装置は、ターゲットシンクからのマンハッタン距離と最遠シンクからのマンハッタン距離とが等しくなる等距離点の集合を求める等距離点集合算出部と、クロックパスのパス長を最短のマンハッタン距離にするパス設定ブロック領域を設定するパス設定ブロック設定部と、等距離点の集合のうちパス設定ブロック領域内でクロックソースから最も遠い距離の点を分岐点とする分岐点設定部と、クロックソースから分岐点までのパス設定ブロック領域内にターゲットシンクと最遠シンクとの共有パスを設定すると共に、分岐点からターゲットシンクまでのクロックパス及び分岐点から最遠シンクまでのクロックパスをパス長が最短のマンハッタン距離となるように設定するパス設定部とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、クロックツリー設計装置及びクロックツリー設計方法に関する
【背景技術】
【0002】
従来、LSIにおけるクロック分配方式として、クロックツリー方式がある。クロックツリーのレイアウト設計においては、クロックレイテンシ、バッファ数、クロックスキュー等を考慮した設計を行う必要がある。
【0003】
Hツリー方式は、クロックの供給先であるシンク(sink)同士の重心にクロックパス(以下、単にパスともいう)を設定するものである。Hツリー方式は、各シンクまでのパスとして共有パスが多く用いられるのでバッファ数削減、OCVマージンの削減の観点から優れている。また、Hツリー方式は、各シンクへのパス長が等しくなることが多く、クロックスキューの観点からも優れている。
【0004】
また、クロックレイテンシの観点からは、クロックソースから最も遠い距離のシンク(以下、最遠シンクという)までのクロックパス長は短い方がよい。しかしながら、Hツリー方式では、クロックパスは必ず2シンク間の重心を通るように設定されることから、クロックレイテンシが比較的大きくなることがある。
【0005】
クロックレイテンシを最小にするようにクロックツリーを設計する方法として、クロックソースから最遠シンクまでの距離がマンハッタン距離となることのみを条件に、クロックソースと最遠シンク間にクロックパスを設定する方法が考えられる。
【0006】
しかしながら、この方法では、クロックソースと最遠シンク以外のシンクとの間のパスの最適化が困難であり、バッファ数、OCV(on-chip variation)マージン及びスキューが増大する可能性がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−7500号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の実施形態は、クロックレイテンシを最小にする条件下において、共有パスのパス長を比較的長くして、クロックスキュー及びバッファ数を比較的少なくすることができるクロックツリー設計装置及びクロックツリー設計方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
実施形態のクロックツリー設計装置は、クロックレイテンシを一致させるべき一群のシンクから順次選択されるターゲットシンクからのマンハッタン距離と前記一群のシンクのうちクロックソースから最も遠い距離に位置する最遠シンクからのマンハッタン距離とが等しくなる等距離点の集合を求める等距離点集合算出部と、クロックパスが存在しうる領域であって、前記クロックパスのパス長を最短のマンハッタン距離にするパス設定ブロック領域を設定するパス設定ブロック設定部と、前記等距離点の集合のうち前記パス設定ブロック領域内で前記クロックソースから最も遠い距離の点を分岐点とする分岐点設定部と、前記クロックソースから前記分岐点までの前記パス設定ブロック領域内に前記ターゲットシンクと前記最遠シンクとの共有パスを設定すると共に、前記分岐点から前記ターゲットシンクまでのクロックパス及び前記分岐点から前記最遠シンクまでのクロックパスをパス長が最短のマンハッタン距離となるように設定するパス設定部とを具備する。
【図面の簡単な説明】
【0010】
【図1】本発明の第1の実施の形態に係るクロックツリー設計装置を示すブロック図。
【図2】クロックレイテンシ、バッファ数、クロックスキューとクロックツリーとの関係を示す説明図。
【図3】クロックレイテンシ、バッファ数、クロックスキューとクロックツリーとの関係を示す説明図。
【図4】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図5】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図6】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図7】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図8】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図9】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図10】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図11】等距離となる点の軌跡を求める方法を説明するための説明図。
【図12】等距離となる点の軌跡を求める方法を説明するための説明図。
【図13】等距離となる点の軌跡を求める方法を説明するための説明図。
【図14】等距離となる点の軌跡を求める方法を説明するための説明図。
【図15】等距離となる点の軌跡を求める方法を説明するための説明図。
【図16】等距離となる点の軌跡を求める方法を説明するための説明図。
【図17】等距離となる点の軌跡を求める方法を説明するための説明図。
【図18】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図19】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図20】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図21】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図22】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図23】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図24】本実施の形態におけるクロックツリー設計方法を説明するための説明図。
【図25】クロックツリー設計の全体の動作を示すフローチャート。
【図26】図25中の分岐点及びパス設定フローを示すフローチャート。
【図27】本発明の第2の実施の形態を示す説明図。
【図28】本発明の第2の実施の形態を示す説明図。
【図29】本発明の第2の実施の形態を示すフローチャート。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【0012】
(第1の実施の形態)
図1は本発明の第1の実施の形態に係るクロックツリー設計装置を示すブロック図である。
【0013】
先ず、図2及び図24を参照して、本実施の形態におけるクロックツリー設計方法について説明する。図2及び図3はクロックレイテンシ、バッファ数、クロックスキューとクロックツリーとの関係を示す説明図である。なお、図2ではクロックが供給されるフリップフロップFの信号ピンをシンクとする。
【0014】
図2(a),(b)はクロックレイテンシとパスとの関係を示している。図2(a),(b)は夫々クロックソースSoとシンクSi1との間に設定されたクロックパスP1,P2を示している。パスP1のパス長はマンハッタン距離に等しく、パスP2はパスの一部が平行な部分を有しているので、マンハッタン距離よりも長い。クロックレイテンシの観点からは、図2(a)のように最遠シンクまでのパスのパス長が短いことが望ましい。
【0015】
図2(c),(d)はバッファ数及びOCVマージンとパスとの関係を示している。図2(c),(d)はクロックソースSoとシンクSi2,Si3との間に設定されたクロックパスP3〜P7を示している。図2(c)においては、クロックソースSoからシンクSi2,Si3までのパスP3〜P5のうち、パスP3は共有パスである。図2(d)においては、クロックソースSoからシンクSi2,Si3までのパスP6,P7は独立したパスであり、共有パスは存在しない。バッファ数及びOCVマージンの観点からは、図2(c)のように共有パスを設けた方が望ましい。
【0016】
図2(e),(f)はクロックスキューとパスとの関係を示している。図2(e),(f)はクロックソースSoとシンクSi4,Si5との間に設定されたクロックパスP8〜P10を示している。図2(e),(f)はクロックスキューが生じていない例を示しており、図2(e)ではパスP8,P9のパス長を同一にすることによりクロックスキューが発生しないようにしているのに対し、図2(f)ではパスP8上のバッファ数よりもパスP10上のバッファ数を増やすことで、クロックスキューが発生しないようにしている。
【0017】
クロックスキューを小さくするためにバッファを挿入する手法を採用した場合には、微細プロセスでの遅延ばらつきや電源電圧の低下の影響を受け、チップのコンディションによっては、バッファ挿入によってかえってスキューが大きくなってしまうことがある。従って、クロックスキューの観点からは、図2(e)のように各シンクまでの距離は等しい方がよい。
【0018】
このように、クロックレイテンシの観点からは、最遠シンクまでのパスのパス長が短いことが望ましく、バッファ数及びOCVマージンの観点からは、長い共有パスを設けた方が望ましく、クロックスキューの観点からは、各シンクまでのパス長を等しくした方が望ましい。
【0019】
図3は複数の四角の枠によって各シンクSiを示しており、クロックソースSoと最遠シンクSifとの間のパスを太線によって示している。図3(a)はHツリー方式を示しており、各シンクSiを結ぶ線によってパスPを示している。各パスPは、2つのシンク間の重心を通るように設計されていることから、最遠シンクSifまでのパスPmには平行な部分が形成されて、マンハッタン距離よりも長いパス長を有する。即ち、Hツリー方式では、最遠シンクまでのパス長が長くなり、クロックレイテンシが大きくなることがあるという欠点がある。
【0020】
一方、図3(b)は、クロックソースSoと最遠シンクSifまでのパスのパス長がマンハッタン距離となるようにパスを設定する例を示している。太線の四角の枠内を通り平行な部分が形成されなければ、どのようなパスを採用しても、最遠シンクSifまでのパス長を最短にすることができる。
【0021】
しかしながら、図3(b)の方法では、他のシンクに対するパスを最適化することはできず、バッファ数やクロックスキュー等の観点では不利である。
【0022】
そこで、本実施の形態においては、図4〜図24に示すクロックツリー設計方法を採用することにより、クロックレイテンシを最小にしつつ、各シンク間の共有パスを増大させ、各シンク間のパス長を等しくする。これにより、クロックレイテンシ、バッファ数、クロックスキュー及びOCVマージン等を最適化したクロックツリーの生成を可能にする。
【0023】
本実施の形態においては、クロックレイテンシを最小にするために、最遠シンクSifまでのパスを優先するようにパスの決定を行う。また、共有パスを増やすために、クロックソースからなるべく離れた位置までを共有パスを用い、共有パスの終端を分岐点として分岐点から各シンクまでのパスを形成する。分岐点から各シンクまでのパス同士を等しい長さに設定するように、分岐点の位置を決定する。
【0024】
図4はクロックツリー設計対象の回路レイアウトの一例を示している。図5〜図24は図4と同一の回路レイアウトを示している。図4乃至図24において、塗りつぶした四角の枠はクロックソースを示し、白抜きの四角の枠は回路レイアウト内で同時にクロックを供給したい(クロックレイテンシを一致させる)シンクを示し、斜線を施した四角の枠は最遠シンクを示している。図4〜図24の破線は回路上に配線可能な配線パターンの方向を示している。図4〜図24の例では、水平及び垂直方向に所定の配線ピッチで、配線パターンを形成可能であることを示している。なお、図4〜図24において決定したパスは太線にて示している。
【0025】
先ず、クロックレイテンシを最小にするために、クロックソースSoと最遠シンクSifまでのパスのパス長を最短、即ち、マンハッタン距離とするパスの候補を求める。クロックソースSoと最遠シンクSifとのパス長をマンハッタン距離とするパスは複数有る。図5はそのうちの3つのパスPfを太線にて示している。即ち、クロックソースSo及び最遠シンクSifの位置を対角の頂点とする長方形で囲まれた領域(斜線部)B1内において、平行なパスを形成しないようにパスを設定すればよい。このように、斜線部の領域は、2点間のパス長をマンハッタン距離に設定可能なパスが存在する領域(以下、パス設定ブロック領域という)である。
【0026】
いま、例えば、図6に示すように、1つのシンクを選択して、パスを設定するターゲットシンクSitとする。最遠シンクSifからのマンハッタン距離とターゲットシンクSitからのマンハッタン距離とが等距離となる点の軌跡TA1を求める。なお、図6以降の図ではこの点を白抜きの丸印によって示している。軌跡TA1の一部は、図7に示すように、パス設定ブロック領域B1内に存在している。
【0027】
本実施の形態においては、図8に示すように、この等距離の点の軌跡TA1のうち、パス設定ブロック領域B1内でクロックソースSoからの距離が最も遠い位置の点(斜線)を分岐点T1とする。本実施の形態においては、分岐点T1を、クロックソースSoから最遠シンクSifまでのパスと、クロックソースSoからターゲットシンクSitまでのパスとが分岐する点とし、クロックソースSoから分岐点T1までのパスは、最遠シンクSifとターゲットシンクSitとの共有パスとする。クロックソースSoから分岐点T1までの共有パスの候補は、図9の斜線部に示すパス設定ブロック領域B2内に設定する。これにより、クロックソースSoから分岐点T1までのパスのパス長を、クロックソースSoと分岐点T1とを対角の頂点とする長方形により規程されるマンハッタン距離にすることができ、クロックソースSoから分岐点T1までのパスのパス長を最短にすることができる。
【0028】
図10に示すように、分岐点T1から最遠シンクSifまでのパスPfと分岐点T1からターゲットシンクSitまでのパスPt1とを決定する。これらのパスPf,Pt1のパス長をマンハッタン距離に設定することで、パスPf,Pt1のパス長は最短で且つ同一となる。クロックソースSoから分岐点T1までは共有パスを用いるので、クロックソースSoから最遠シンクSifまでのパスとクロックソースSoからターゲットシンクSitまでのパスとは、最短で且つ同一長であり、しかも共有パスの長さは最長である。
【0029】
図11乃至図17は最遠シンクSifからのマンハッタン距離とターゲートシンクSitからのマンハッタン距離とが等距離となる点の軌跡を求める方法を説明するための説明図である。
【0030】
図11の網線は配線グリッドを示している。図11のグリッド上の黒丸は、等距離点の軌跡を求めようとする2つのシンクの位置A,Bを示している。先ず、図12に示すように、位置A,Bの中点の位置Cにおけるグリッド(黒丸)を求める。2点A,B間の水平方向及び垂直方向のグリッド数が奇数個の場合には、中点の位置Cはグリッド上に位置しない。この場合には、例えば、中点の位置Cを半グリッド分移動させることで、中点の位置Cをグリッド上に位置させる。或いは、予め、各シンクの位置を、シンク同士の間に偶数個のグリッドが配置されるように設定する等の方法を採用する。
【0031】
次に、配線グリッドを中点Cのグリッドを原点とする直交座標と考え、線分ABが通過しない象限上に、中点Cのグリッドからx,y方向の両方向に位置が変化するようにグリッド上に白抜きで示す点(以下、仮の中点という)をとる。この仮の中点は、点Aからの距離と点Bからの距離とが等距離(マンハッタン距離)となる点を求めるためのものであり、点A,Bからの各距離が、x方向について小さくなった場合にはy方向について大きくなるようにし、x方向について大きくなった場合にはy方向について小さくなるようにしたものである。
【0032】
しかし、図13に示すように、点A,Bを対角の頂点とする長方形の領域R1の領域外にとった仮の中点は、点A,Bからのマンハッタン距離が相互に異なる。点A,Bからのマンハッタン距離が等しくなる中点は、領域R1端部の仮の中点からx方向又はy方向に延出したグリッド上に存在する。
【0033】
図14はこうして求めた等距離となる点の軌跡TAを示している。なお、中点がx,y方向のいずれに延出したグリッド上に存在するかは、領域R1のx方向のサイズとy方向のサイズとに依存し、図14のようにy方向のサイズがx方向よりも大きい場合には、x方向上に中点が存在し、図15に示すように、y方向のサイズがx方向よりも小さい場合には、y方向上に中点が存在する。
【0034】
また、図16に示すように、領域R1のx,y方向のサイズが等しい場合には、仮の中点が中点となる。また、図17に示すように、2点A,Bのx座標又はy座標の一方が同一ならば、直線ABの垂直2等分線上のグリッドが等距離となる点の軌跡である。
【0035】
以後、同様の手法によって、各シンクまでのパスを決定する。
【0036】
例えば、図18に示すように、1つのシンクを選択してパスを設定するターゲットシンクSitとする。最遠シンクSifとターゲットシンクSitとの間で、マンハッタン距離が等距離となる点の軌跡TA2を求める。軌跡TA2の一部は、図18に示すように、パス設定ブロック領域B2内に存在している。
【0037】
次に、図19に示すように、この等距離の点の軌跡TA2のうち、パス設定ブロック領域B2内でクロックソースSoからの距離が最も遠い位置の点(斜線)を分岐点T2とする。この分岐点T2を、クロックソースSoから最遠シンクSifまでのパスと、クロックソースSoからターゲットシンクSitまでのパスとが分岐する点とする。クロックソースSoから分岐点T2までのパスは、最遠シンクSifとターゲットシンクSitとの共有パスとする。クロックソースSoから分岐点T2までの共有パスの候補は、図19の斜線部に示すパス設定ブロック領域B3内に設定する。これにより、クロックソースSoから分岐点T2までのパスのパス長を最短にすることができる。
【0038】
図20に示すように、パス長がマンハッタン距離となるように、分岐点T2からターゲットシンクSitまでのパスPt2を決定する。なお、分岐点T2と分岐点T1との間のパスは、図20に示すように、パス設定ブロック領域B2中の一部の領域B2’に設定される。
【0039】
分岐点T2から最遠シンクSif及びターゲットシンクSitまでの各パスのパス長をマンハッタン距離に設定することで、これらのパスのパス長は最短で且つ同一となる。クロックソースSoから分岐点T2までは共有パスを用いるので、クロックソースSoから最遠シンクSifまでのパスとクロックソースSoからターゲットシンクSitまでのパスとは、最短で且つ同一長であり、しかも共有パスの長さは最長である。
【0040】
同様にして、次に設定するターゲットシンクSitまでのパスを決定する。
【0041】
図21に示すように、残りの1つのシンクをパスを設定するターゲットシンクSitとする。最遠シンクSifとターゲットシンクSitとの間で、マンハッタン距離が等距離となる点の軌跡TA3を求める。軌跡TA3の一部は、図21に示すように、パス設定ブロック領域B3内に存在している。
【0042】
次に、図22に示すように、この等距離の点の軌跡TA3のうち、パス設定ブロック領域B3内でクロックソースSoからの距離が最も遠い位置の点(斜線)を分岐点T3とする。この分岐点T3を、クロックソースSoから最遠シンクSifまでのパスと、クロックソースSoからターゲットシンクSitまでのパスとが分岐する点とする。クロックソースSoから分岐点T3までのパスは、最遠シンクSifとターゲットシンクSitとの共有パスとする。クロックソースSoから分岐点T2までの共有パスの候補は、図22の斜線部に示すパス設定ブロック領域B4内に設定する。これにより、クロックソースSoから分岐点T3までのパスのパス長を最短にすることができる。
【0043】
図23に示すように、パス長がマンハッタン距離となるように、分岐点T3からターゲットシンクSitまでのパスPt3を決定する。なお、分岐点T3と分岐点T2との間のパスは、図23に示すように、パス設定ブロック領域B3中の一部の領域B3’に設定される。
【0044】
分岐点T3から最遠シンクSif及びターゲットシンクSitまでの各パスのパス長をマンハッタン距離に設定することで、これらのパスのパス長は最短で且つ同一となる。クロックソースSoから分岐点T3までは共有パスを用いるので、クロックソースSoから最遠シンクSifまでのパスとクロックソースSoからターゲットシンクSitまでのパスとは、最短で且つ同一長であり、しかも共有パスの長さは最長である。
【0045】
最後に、パス設定ブロック領域B4内でパス長がマンハッタン距離となるようにクロックソースSoから分岐点T3までのパスを設定する。例えば、図24では、パス設定ブロック領域B4の一部の領域B4’に共有パスPcを設定した例を示している。
【0046】
結局、図4〜図24の例は、最遠シンクSifを含む全てのシンクSiにおいて、クロックソースSoからのパスは、最短で且つ等距離であり、比較的長い共有パスが設定されている。
【0047】
図1において、クロックツリー設計装置1には、各種情報を記憶するメモリ11〜15が設けられている。シンク及び配線情報メモリ11は、クロックツリー設計対象の回路レイアウト中に設けられるクロックソースSo、各シンクSi、最遠シンクSif及び配線に関する情報(以下、シンク及び配線情報という)が記憶されている。例えば、シンク及び配線情報としては、クロックソースSo、各シンクSi、最遠シンクSif及び配線の位置に関する情報や、配線グリッドの単位の情報等が含まれる。なお、本実施の形態においては、クロックソースSo、シンクSi及び最遠シンクSifは、クロックの入出力端を構成するピンを示しているものとする。また、ピンのサイズや配線の幅等は無視できるものとする。
【0048】
処理順情報メモリ12には、各シンクSiのうちのいずれのシンクをターゲットシンクSitとするかを順次示す情報(処理順情報)を記憶する。図4乃至図24の例は一例であり、ターゲットシンクSitとする順番が異なれば、設計されるクロックツリーも異なる。本実施の形態においては、処理順は既に決定されており、処理順情報を読出すことで、決定された処理順で順次処理が行われるものとして説明する。
【0049】
なお、処理順は、クロックツリーの生成に大きな影響を与える。処理順の決定には多く処理が必要であると予想される。そこで、例えば、いくつかの処理順を決定しておき、上述した図4〜図24の手法に従ったクロックツリーの生成結果から、最適なクロックツリーを選択するようにしてもよい。
【0050】
なお、より長い共有パスを設定するためには、クロックソースSoと最遠シンクSifとを対角の頂点とする長方形で規定されるパス設定ブロック領域の外にあるシンクを内にあるシンクよりも先に処理した方がよい。
【0051】
制御部10はメモリ11〜15の書込み及び読出しを制御すると共に、各部を制御してクロックツリーを設計する。
【0052】
パス設定ブロック設定部21は、制御部10を介してメモリ11からのシンク及び配線情報が与えられて、パス設定ブロック領域を設定し、パス設定ブロック領域情報を出力する。このパス設定ブロック領域情報は、制御部10を介してパス設定ブロック領域情報メモリ13に与えられる。パス設定ブロック領域情報メモリ13は、2点間のパス設定ブロック領域に関する情報を記憶する。
【0053】
また、分岐点情報メモリ14は、後述する分岐点設定部24から制御部10を介して分岐点情報が与えられて記憶する。パス設定ブロック設定部21は、制御部10を介して分岐点情報も与えられ、クロックソースSoと分岐点との間のパス設定ブロック領域も設定して、パス設定ブロック領域情報として出力し、記憶させるようになっている。
【0054】
制御部10は、処理順情報メモリ12からの処理順情報に基づいて、シンク及び配線情報メモリ11から、最遠シンクSif及びターゲットシンクSitに関してシンク及び配線情報をマンハッタン距離算出部22に与えることができる。マンハッタン距離算出部22は、制御部10によって指定された2点のマンハッタン距離を算出する。マンハッタン距離算出部22の算出結果は制御部10を介して等距離点集合算出部23に供給され、等距離点集合算出部23は、2点からのマンハッタン距離が等しくなる、等距離点の集合を求める。なお、等距離点の集合は、厳密には配線上に存在しないこともある。そこで、等距離点集合算出部23は、配線に関する情報を用いることで、例えば、最も近い配線上に等距離点が存在するように補正した等距離点集合を求める。
【0055】
分岐点設定部24は、制御部10を介して等距離点集合の情報、パス設定ブロック領域情報、シンク及び配線情報が与えられて、パス設定ブロック領域内において、クロックソースSoから最も遠い距離に位置する分岐点を求める。分岐点設定部24により設定された分岐点の情報は、分岐点情報として分岐点情報メモリ14に与えられて記憶される。
【0056】
パス設定部25は、シンク及び配線情報、分岐点情報、パス設定ブロック領域情報が与えられて、分岐点からターゲットシンクSit及び最遠シンクSifまでのパス及びソースSoから分岐点までのパスを設定する。パス設定部25によって設定されたクロックパスに関する情報は、パス設定情報メモリ15に与えられる。こうして、パス設定情報メモリ15にクロックツリー設計によって設計されたクロックツリーに関するパス設定情報が記憶される。
【0057】
なお、図1のクロックツリー設計装置は、CPU、メモリ及び入出力装置を備えたコンピュータによって実現可能である。
【0058】
次に、このように構成された実施の形態の動作について図25及び図26を参照して説明する。図25はクロックツリー設計の全体の動作を示すフローチャートであり、図26は図25中の分岐点及びパス設定フローを示すフローチャートである。
【0059】
図25のステップS1において、制御部10はメモリ11,12からシンク及び配線情報と処理順情報とを読み出す。制御部10は、ステップS2において、処理順情報に基づいてターゲットシンクSitを決定する。次いで、制御部10は、各部を制御して、最遠シンクSifとターゲットシンクSitとの共有パスの分岐点を決定して、分岐点から最遠シンクSif及びターゲットシンクSitまでのパスを決定する(ステップS3)。
【0060】
制御部10は、ステップS4において、全てのシンクSiについてパスの決定を行ったか否かを判定し、行っていない場合には、処理をステップS2に戻して、分岐点及びパスの設定処理を繰り返す。
【0061】
制御部10は、分岐点を決定するために、図26のステップS11において、マンハッタン距離算出部22によって、最遠シンクSifとターゲットシンクSitとの間のマンハッタン距離を算出させる。等距離点集合算出部23は、制御部10に制御されて、等距離点の軌跡を算出する(ステップS12)。
【0062】
分岐点設定部24は、パス設定ブロック領域内で、クロックソースSoからの距離が最も遠い等距離点を分岐点に設定する(ステップS13)。なお、最初のターゲットシンクSitに対する処理時には、パス設定ブロック設定部21によって、クロックソースSoと最遠シンクSifとを夫々対角の頂点とする長方形がパス設定ブロック領域として設定されている。
【0063】
ステップS13の処理によって、例えば、図8,図19,図22の各最遠シンクSifとターゲットシンクSitとについて分岐点T1〜T3が決定される。
【0064】
次のステップS14では、パス設定ブロック設定部21によって、クロックソースSoとステップS14で求められた分岐点とを対角の頂点とする長方形を新たなパス設定ブロック領域として設定する。
【0065】
パス設定部25は、ステップS15において、ステップS14で求めた分岐点から最遠シンクSif及びターゲットシンクSitまでのパスを決定する。
【0066】
パス設定部25は、分岐点から全てのターゲットシンクSitまでのパスを決定すると、最後に、クロックソースSoから最後に求めた分岐点までのパスを決定する。
【0067】
なお、次に分岐点を決定する処理を行う必要がない場合には、ステップS14におけるパス設定ブロック領域の設定処理は不要である。
【0068】
このように本実施の形態においては、クロックレイテンシを最小にする条件化において、最遠シンクとターゲットシンクとの間の等距離点でクロックソースから最も遠い点を分岐点に決定し、分岐点を通過するパスを決定する。クロックソースから分岐点までは共有パスとなり、共有パスを増大させることができる。また、分岐点からのパスのパス長は等しく、レイテンシを最小にしながら、共有パスを増大させ、各シンクまでのパス長を等しくすることができる。これにより、クロックレイテンシを最小にしながら、共有パスのパス長を最長にし、クロックスキュー及びバッファ数を最小にすることができる。パスの配線長を等長にすることができるので、ばらつきに対するスキューの増大を抑制することが可能となる。
【0069】
(第2の実施の形態)
図27及び図28は本発明の第2の実施の形態を示す説明図である。本実施の形態のハードウェア構成は図1の実施の形態と同様である。本実施の形態においては、分岐点及びパスの決定方法のみが第1の実施の形態と異なる。
【0070】
図27は図24の回路レイアウト上の3つのシンク(Si1〜Si3)の外にもう1つのシンクSi4が存在する場合の例を示している。シンクSi4は、シンクSi3の近傍に配置されており、図27の例は、このシンクSi4をターゲットシンクSitに設定し、このターゲットシンクSitについて、第1の実施の形態において説明した手法によって、分岐点及びパスを決定した例を示している。図27の例では、ターゲットシンクSi4には、クロックソースSoからパスPc、分岐点T3及びパスPt4’を介してクロックが供給される。
【0071】
即ち、第1の実施の形態においては、最遠シンクSifとターゲットシンクSitとを、分岐点の設定に用いるシンクの組と考えて、このシンクの組における等距離点上に分岐点を決定した。しかしながら、図27の例では、シンクSi4はシンクSi3の近傍に配置されているにも拘わらず、分岐点がシンクSi2,Si4から比較的離間しており、共有パスは比較的短い。
【0072】
そこで、本実施の形態においては、パスが既に決定された任意のシンクを、ターゲットシンクSitと共に分岐点を求めるためのシンク(以下、ペアシンクという)とすると共に、クロックソースSoに代えて分岐点の1つを擬似的にクロックソース(以下、疑似ソースという)とすることで、共有パスを長くする分岐点を決定するようになっている。
【0073】
第1の実施の形態に従ってパスが決定されたシンクSiとクロックソースSoとを結ぶパスのパス長は、クロックソースSoと最遠シンクSifまでのパスのパス長と同一である。従って、クロックレイテンシを一致させるシンクの組として、最遠シンクSifに代えてパスが決定されたシンクをペアシンクとして用いることができる。
【0074】
図28にこの例を示しており、最遠シンクSifに代えて、ターゲットシンクSit近傍のシンクSi2をターゲットシンクSitへのパスの分岐点を求めるための組のペアシンクとする。また、ターゲットシンクSitに近い距離の分岐点T2を疑似ソースSopとする。
【0075】
次にこのように構成された実施の形態の動作について図29のフローチャートを参照して説明する。図29において図25と同一の手順には同一符号を付して説明を省略する。
【0076】
本実施の形態においては、ステップS2の次に、ステップS21及びステップS22の処理が追加された点が図25のフローと異なるのみである。分岐点及びパス設定処理は、図26のフローに従って行われることは、第1の実施の形態と同様である。
【0077】
本実施の形態においては、ステップS2において、ターゲットが決定されると、次のステップS21において、制御部10は、ターゲットシンクSitへの分岐点を求めるためのシンクの組を決定する。第1の実施の形態においては、常に最遠シンクSifを用いた。これに対し、本実施の形態においては、制御部10は、ターゲットシンクSit近傍のシンク、図28の例では、シンクSi2を分岐点を求めるためのペアシンクとする。
【0078】
次いで、制御部10は、クロックソースSoに代えて、疑似ソースSopを決定する。例えば、制御部10は、疑似ソースSopとして、ターゲットシンクSitに最も近い位置の分岐点、図28では分岐点T2を決定する。
【0079】
以後の処理は第1の実施の形態と同様である。即ち、図26のステップS11において、ペアシンクSi2とターゲットシンクSitとの間のマンハッタン距離が求められ、マンハッタン距離が等距離となる点の軌跡が求められる(ステップS12)。
【0080】
次に、ステップS13において、疑似ソースSop(分岐点T2)とペアシンクSi2とを対角の頂点とする長方形で与えられるパス設定ブロック領域内で、疑似ソースSopから最も離れた位置の等距離点を分岐点(図28の分岐点T4)とする。次に、パス長がマンハッタン距離となるように、分岐点T4からターゲットシンクSitまでのパスPt4を決定する。
【0081】
なお、次に分岐点を決定する処理を行う必要がない場合には、ステップS14におけるパス設定ブロック領域の設定処理は不要である。
【0082】
図27と図28の比較から明らかなように、本実施の形態においては、第1の実施の形態に比べて、共有パスのパス長は長くなる。
【0083】
このように本実施の形態においては、分岐点を求めるためのシンクの組をターゲットシンクの位置に応じて決定すると共に、分岐点を決定するためのパス設定ブロック領域の一端となるクロックソースに代えて分岐点の位置の疑似ソースを用いることによって、共有パスのパス長を長くすることができるという利点がある。
【0084】
なお、上記各実施の形態のクロックツリー設計装置の機能は、制御部をCPUによって構成し、CPUによってソフトウェアプログラムを実行することで実現可能である。例えば、パス設定ブロック領域の設定、マンハッタン距離の算出、等距離点集合の算出、分岐点の設定及びパス設定は、コンピュータを用いたソフトウェアプログラムによって実現可能である。
【符号の説明】
【0085】
1…クロックツリー設計装置、10…制御部、11…シンク及び配線情報メモリ、12…処理順情報メモリ、13…パス設定ブロック領域情報メモリ、14…分岐点情報メモリ、15…パス設定情報メモリ、21…パス設定ブロック設定部、22…マンハッタン距離算出部、23…等距離点集合算出部、24…分岐点設定部、25…パス設定部。

【特許請求の範囲】
【請求項1】
クロックレイテンシを一致させるべき一群のシンクから順次選択されるターゲットシンクからのマンハッタン距離と前記一群のシンクのうちクロックソースから最も遠い距離に位置する最遠シンクからのマンハッタン距離とが等しくなる等距離点の集合を求める等距離点集合算出部と、
クロックパスが存在しうる領域であって、前記クロックパスのパス長を最短のマンハッタン距離にするパス設定ブロック領域を設定するパス設定ブロック設定部と、
前記等距離点の集合のうち前記パス設定ブロック領域内で前記クロックソースから最も遠い距離の点を分岐点とする分岐点設定部と、
前記クロックソースから前記分岐点までの前記パス設定ブロック領域内に前記ターゲットシンクと前記最遠シンクとの共有パスを設定すると共に、前記分岐点から前記ターゲットシンクまでのクロックパス及び前記分岐点から前記最遠シンクまでのクロックパスをパス長が最短のマンハッタン距離となるように設定するパス設定部と
を具備することを特徴とするクロックツリー設計装置。
【請求項2】
前記パス設定ブロック設定部は、前記ターゲットシンクが切換る毎に、前記クロックソースと前記分岐点とを対角の頂点とする長方形の領域を前記パス設定ブロック領域に設定する
ことを特徴とする請求項1に記載のクロックツリー設計装置。
【請求項3】
前記等距離点集合算出部は、前記パス設定部によってクロックパスが設定されたシンクをペアシンクとし、前記最遠シンクに代えて前記ペアシンクからのマンハッタン距離と前記ターゲットシンクからのマンハッタン距離とが等しくなる前記等距離点の集合を求める
ことを特徴とする請求項1に記載のクロックツリー設計装置。
【請求項4】
クロックツリー設計装置を用いて、
クロックレイテンシを一致させるべき一群のシンクから順次選択されるターゲットシンクからのマンハッタン距離と前記一群のシンクのうちクロックソースから最も遠い距離に位置する最遠シンクからのマンハッタン距離とが等しくなる等距離点の集合を求め、
クロックパスが存在しうる領域であって、前記クロックパスのパス長を最短のマンハッタン距離にするパス設定ブロック領域を設定し、
前記等距離点の集合のうち前記パス設定ブロック領域内で前記クロックソースから最も遠い距離の点を分岐点とし、
前記クロックソースから前記分岐点までの前記パス設定ブロック領域内に前記ターゲットシンクと前記最遠シンクとの共有パスを設定すると共に、前記分岐点から前記ターゲットシンクまでのクロックパス及び前記分岐点から前記最遠シンクまでのクロックパスをパス長が最短のマンハッタン距離となるように設定する
ことを特徴とするクロックツリー設計方法。
【請求項5】
前記クロックツリー設計装置を用いて、
前記パス設定ブロック領域を、前記ターゲットシンクが切換る毎に、前記クロックソースと前記分岐点とを対角の頂点とする長方形の領域に設定する
ことを特徴とする請求項4に記載のクロックツリー設計方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate


【公開番号】特開2012−194888(P2012−194888A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−59454(P2011−59454)
【出願日】平成23年3月17日(2011.3.17)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】