(57)【要約】【課題】ローカルエリアの数が多い場合にも、エレクトロマイグレーションの制約を守りつつ、高集積密度かつ低消費電力でゼロスキューを実現できるクロックレイアウトシステム、及びクロックレイアウト方法を提供する。【解決手段】論理回路の回路情報を入力する入力装置９、回路情報を基に、クロック配線を行うクロック配線処理部１、クロック配線の第１ノードから分岐した第１配線に現れるノードのうち第２ノードを特定する第２ノード特定部１４、第１ノードから分岐した第２配線に現れるノードのうち第３ノードを特定する第３ノード特定部５、第１ノードから分岐して第３ノードに至るまでの配線及び第１ノードから分岐して第３ノードに至るまでの配線上のノードを削除する畳み込み対象削除部６、第２ノードから配線を分岐させて、第３ノードへ配線する畳み込み配線処理部７を含む。【選択図】　　　図１
2004054598.tif 000002
【特許請求の範囲】
【請求項１】
論理回路の回路情報を入力する入力装置と、
前記回路情報を基に、クロック配線を行うクロック配線処理部と、
前記クロック配線の第１ノードから分岐した複数の配線のうちの第１配線に最初に現れるノードを第２ノードとして特定する第２ノード特定部と、
前記第１ノードから分岐した複数の配線のうちの第２配線に２番目に現れるノードを第３ノードとして特定する第３ノード特定部と、
前記第１ノードから前記第３ノードに至るまでの前記第２配線及び前記第２配線上に最初に現れるノードを削除する畳み込み対象削除部と、
前記第２ノードにおいて前記第１配線から新たな配線を分岐させて、前記第３ノードへ配線する畳み込み配線処理部
とを含むことを特徴とするクロックレイアウトシステム。
【請求項２】
前記クロック配線により半導体チップ上に配置されたルートドライバを前記第１ノードとする第１ノード特定部を更に含むことを特徴とする請求項１に記載のクロックレイアウトシステム。
【請求項３】
前記第１ノード特定部は、前記第２ノードを新たな第１ノードとすることを特徴とする請求項１に記載のクロックレイアウトシステム。
【請求項４】
前記第１ノードから信号伝播方向に最初に現れるノードを次段ノードとする次段ノード特定部を更に含むことを特徴とする請求項１に記載のクロックレイアウトシステム。
【請求項５】
前記次段ノードの数をカウントする次段ノード数カウント部とを更に含むことを特徴とする請求項４に記載のクロックレイアウトシステム。
【請求項６】
前記第２ノード特定部は、前記次段ノードの数が２以上の場合に、前記次段ノードのうち１の次段ノードを前記第２ノードとすることを特徴とする請求項５に記載のクロックレイアウトシステム。
【請求項７】
前記第３ノード特定部は、畳み込み後に前記第１ノードから前記第３ノードへ伝播するクロックのディレイが少なくとも増加しないことを条件に、前記第３ノードを特定することを特徴とする請求項１に記載のクロックレイアウトシステム。
【請求項８】
前記畳み込みの後にクロックのディレイを調整するディレイ調整部を更に含むことを特徴とする請求項１乃至７の何れか１項に記載のクロックレイアウトシステム。
【請求項９】
前記ディレイ調整部は、
前記クロック配線における中間ノードを削除する中間ノード削除部と、
前記中間ノードが削除されたクロック配線におけるセグメントのディレイを算定するディレイ算定部と、
前記ディレイに対応した目標遅延を設定する目標遅延設定部と、
前記目標遅延の設定に対応したリピータを設計上の最短距離で配線した場合に、前記目標遅延の設定に対応した配線の長さを得られるように前記リピータの配置を行うリピータ配置部
とを更に含むことを特徴とする請求項８に記載のクロックレイアウトシステム。
【請求項１０】
入力された論理回路情報を基に、クロック配線を行うステップと、
前記クロック配線の第１ノードから分岐した複数の配線のうちの第１配線に最初に現れるノードを第２ノードとして特定するステップと、
前記第１ノードから分岐した複数の配線のうちの第２配線に２番目に現れるノードを第３ノードとして特定するステップと、
前記第１ノードから前記第３ノードに至るまでの前記第２配線及び前記第２配線上に最初に現れるノードを削除するステップと、
前記第２ノードにおいて前記第１配線から新たな配線を分岐させて、前記第３ノードへ配線するステップ
とを行うことを特徴とするクロックレイアウト方法。
【請求項１１】
前記クロック配線により半導体チップ上に配置されたルートドライバを前記第１ノードとするステップを更に行うことを特徴とする請求項１０に記載のクロックレイアウト方法。
【請求項１２】
前記第１ノードを特定するステップは、前記第２ノードを新たな第１ノードとするステップであることを特徴とする請求項１０に記載のクロックレイアウト方法。
【請求項１３】
前記第１ノードから信号伝播方向に最初に現れるノードを次段ノードとするステップを更に行うことを特徴とする請求項１０に記載のクロックレイアウト方法。
【請求項１４】
前記次段ノードの数をカウントするステップとを更に行うことを特徴とする請求項１３に記載のクロックレイアウト方法。
【請求項１５】
前記第２ノードを特定するステップは、前記次段ノードの数が２以上の場合に、前記次段ノードのうち１の次段ノードを前記第２ノードとするステップであることを特徴とする請求項１４に記載のクロックレイアウト方法。
【請求項１６】
前記第３ノードを特定するステップは、畳み込み後に前記第１ノードから前記第３ノードへ伝播するクロックのディレイが少なくとも増加しないことを条件に、前記第３ノードを特定するステップであることを特徴とする請求項１０に記載のクロックレイアウト方法。
【請求項１７】
前記畳み込みの後にクロックのディレイを調整するステップを更に行うことを特徴とする請求項１０乃至１６の何れか１項に記載のクロックレイアウト方法。
【請求項１８】
前記ディレイを調整するステップは、
前記クロック配線における中間ノードを削除するステップと、
前記中間ノードが削除されたクロック配線におけるセグメントのディレイを算定するステップと、
前記ディレイに対応した目標遅延を設定するステップと、
前記目標遅延の設定に対応したリピータを設計上の最短距離で配線した場合に、前記目標遅延の設定に対応した配線の長さを得られるように前記リピータの配置を行うステップ
とを更に行うことを特徴とする請求項１７に記載のクロックレイアウト方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機を用いた集積回路の設計方法に係り、特に集積回路のクロック配線を設計するクロックレイアウトシステム、及びクロックレイアウト方法に関する。
【０００２】
【従来の技術】
クロック配線では、誤作動を防止するため、総ての出力信号におけるスキューを無くすことが望ましい。スキューがないことを、「ゼロスキュー」という。「スキュー」とは、信号の伝播遅延（ディレイ）のずれをいう。
【０００３】
図５（ａ）に示すように、ゼロスキューを実現する方法の１つとして、「Ｈツリー型の構造」を用いたクロック配線を行う方法がある。即ち、ラッチ１１５とラッチ１１６、ラッチ１１７とラッチ１１８、ラッチ１１９とラッチ１２０、ラッチ１２１とラッチ１２２をそれぞれ等遅延の配線１２５〜１２８で２つのクロック入力端を結び、次に配線１２５と配線１２６、配線１２７と配線１２８の中点をそれぞれ等遅延の配線１３１、１３２で結ぶ。そして更に、配線１３１と１３２の中点を等遅延の配線１４１で結ぶ。「Ｈツリー型の構造」は、このような配線処理を繰り返すことにより、回路素子のクロック入力端に到達するクロックのディレイを均一化する構造である。
【０００４】
図５（ｂ）に示すように、ゼロスキューを実現する他の方法として、「スター型の構造」を用いたクロック配線を行う方法がある。即ち、ルートドライバ７０から配線７１ａ〜７６ａに分岐し、リピータ６１〜６６を介して配線７１ｂ〜７６ｂによりラッチ５１〜５６のクロック入力端に配線を行う構造である。このような配線で、配線７１ａ〜７６ａ、配線７１ｂ〜７６ｂの長さを均一化し、挿入されるリピータ６１〜６６の数を均一化することにより、ルートドライバ７０からラッチ５１〜５６のクロック入力端に到達するクロックのディレイを均一化する構造である。
【０００５】
更に、回路の性能を向上する方法の１つとして、ユースフルスキューを達成した回路を構成する方法がある。ツリーのリーフとなる各ノードに対して目標遅延を設定することで、ユースフルスキューは達成される。ユースフルスキューを達成した回路は、実質のスキューを減らすことで回路性能を向上させている。「目標遅延の設定」とは、バッファ、アンプの挿入、クロック配線の延長・短絡等によりクロックのディレイを調整してスキューの最小化を図る方法である。
【０００６】
【発明が解決しようとする課題】
大規模な集積回路において、半導体チップ上に搭載された総ての回路素子をＨツリー型の構造で配線することは困難である。なぜなら、Ｈツリー型の構造では、図５（ａ）に示すように、分岐点のみに１つのリピータ１５０〜１５７が挿入されることから配線１２５〜１２８、１３１、１３２、１４１の配線距離が制限されるため、Ｈツリー型の構造で配線できる範囲が制限されるからである。又、Ｈツリー型では次第に電流が集中し、電流が大きくなる。しかし、エレクトロマイグレーションを防止するための電流値の制約があるため、Ｈツリー型の構造には一定の限界があるからである。
【０００７】
図５（ｃ）に示すように、Ｈツリー型の構造で配線できる局所的な領域９１〜９６（以下、「ローカルエリア」という）では、Ｈツリー型の構造を用い、Ｈツリー型の構造で配線できない全体の領域（以下、「グローバルエリア」という）では、スター型の構造を用いる方法が、一般的である。しかし、この方法でも、グローバルエリアでルートドライバ７００からの分岐が多くなると、以下の問題が生じる。即ち、ルートドライバ７００が駆動できる電流容量が一定であるところ、ルートドライバ７００からローカルエリアへの分岐の数が制限されるため、ローカルエリアの数が多くなると、この方法が使えなくなる。又、ルートドライバ７００が駆動できる電流が増えて電流容量が、エレクトロマイグレーションの制約で定まる値を超えるおそれがある。更に、ローカルエリアの数が多くなると、ルートドライバ７００からローカルエリアへの配線の数が多くなり、配線占有面積の増大や配線による消費電力の増大が生じる。
【０００８】
一方、目標遅延の設定において、クロック配線処理部に配線処理を自動設計させる場合、クロック配線処理部にクロック配線を延長するような迂回配線の命令をしても、迂回配線等のクロック配線の延長は他の配線、回路素子等の位置に影響を与えるため、結果的に所望の遅延時間を達成するクロック配線の長さが実現されない場合もある。
【０００９】
本発明は、上述のような従来の課題を解決するためになされたもので、その目的は、ローカルエリアの数が多い場合にも、ルートドライバからローカルエリアへの分岐の数を削減でき、分岐の数の制限内でエレクトロマイグレーションの制約を守りつつ、高集積密度かつ低消費電力でゼロスキューを実現できるクロックレイアウトシステム、及びクロックレイアウト方法を提供することである。
【００１０】
【課題を解決するための手段】
本発明の第１の特徴は、論理回路の回路情報を入力する入力装置と、回路情報を基に、クロック配線を行うクロック配線処理部と、クロック配線の第１ノードから分岐した第１配線に現れるノードのうち第２ノードを特定する第２ノード特定部と、第１ノードから分岐した第２配線に現れるノードのうち第３ノードを特定する第３ノード特定部と、第１ノードから分岐して第３ノードに至るまでの第２配線及び第２配線上のノードを削除する畳み込み対象削除部と、第２ノードから配線を分岐させて、第３ノードへ配線する畳み込み配線処理部とを含むクロックレイアウトシステムであることを要旨とする。
【００１１】
「ノードの畳み込み」とは、クロック配線の第１ノードから分岐した複数の配線のうちの第１配線に最初に現れるノードを第２ノードとして特定し、第１ノードから分岐した複数の配線のうちの第２配線に２番目に現れるノードを第３ノードとして特定した後、第１ノードから第３ノードに至るまでの第２配線及び第２配線上に最初に現れるノードを削除し、第２ノードにおいて第１配線から新たな配線を分岐させて、第３ノードへ配線することをいう。
【００１２】
本発明の第１の特徴によれば、ルートドライバから分岐する配線の数を削減できる。
【００１３】
本発明の第２の特徴は、ディレイ調整部は、クロック配線における中間ノードを削除する中間ノード削除部と、中間ノードが削除されたクロック配線におけるセグメントのディレイを算定するディレイ算定部と、ディレイに対応した目標遅延を設定する目標遅延設定部と、目標遅延の設定に対応したリピータを設計上の最短距離で配線した場合に、目標遅延の設定に対応した配線の長さを得られるようにリピータの配置を行うリピータ配置部とを含むクロックレイアウトシステムであることを要旨とする。
【００１４】
本発明の第２の特徴によれば、目標遅延の設定に対応したリピータを設計上の最短距離で配線した場合に、目標遅延の設定に対応した配線の長さを得られる。
【００１５】
本発明の第３の特徴は、論理回路の回路情報を入力するステップと、回路情報を基に、クロック配線を行うステップと、クロック配線の第１ノードから分岐した第１配線に現れるノードのうち第２ノードを特定するステップと、第１ノードから分岐した第２配線に現れるノードのうち第３ノードを特定するステップと、第１ノードから分岐して第３ノードに至るまでの第２配線及び第２配線上のノードを削除するステップと、第２ノードから配線を分岐させて、第３ノードへ配線するステップとを行うクロックレイアウト方法であることを要旨とする。
【００１６】
本発明の第３の特徴によれば、ルートドライバから分岐する配線の数を削減できる。
【００１７】
本発明の第４の特徴は、ディレイを調整するステップは、クロック配線における中間ノードを削除するステップと、中間ノードが削除されたクロック配線におけるセグメントのディレイを算定するステップと、ディレイに対応した目標遅延を設定するステップと、目標遅延の設定に対応したリピータを設計上の最短距離で配線した場合に、目標遅延の設定に対応した配線の長さを得られるようにリピータの配置を行うステップとを行うクロックレイアウト方法であることを要旨とする。
【００１８】
本発明の第４の特徴によれば、目標遅延の設定に対応したリピータを設計上の最短距離で配線した場合に、目標遅延の設定に対応した配線の長さを得られる。
【００１９】
【発明の実施の形態】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は模式的なものであることに留意すべきである。
【００２０】
図１に示すように、本発明の実施の形態に係るクロックレイアウトシステムは、入力装置９、中央演算処理装置（ＣＰＵ）１００、出力装置１７、インターフェイス１５、ホストコンピュータ１６、共通バス２０を備える。入力装置９は、設計しようとする論理回路の回路情報をクロック配線処理部１に入力する。出力装置１７は、ＣＰＵ１００で処理等されるデータを出力する。ホストコンピュータ１６は、インターフェイス１５を介して、出力装置１７が出力するデータと同様のデータを保存し、モニター等に出力する。入力装置９、ＣＰＵ１００、出力装置１７、インターフェイス１５、ホストコンピュータ１６は、共通バス２０を介してデータのやり取りを行う。
【００２１】
ＣＰＵ１００は、クロック配線処理部１、第１ノード特定部２、次段ノード特定部３、次段ノード数カウント部４、第２ノード特定部１４、第３ノード特定部５、畳み込み実行部１１、ディレイ調整部８を備える。クロック配線処理部１は、入力装置９により入力された論理回路の回路情報を基に、半導体チップ上にルートドライバを配置し、そのルートドライバからクロック配線を行う。第１ノード特定部２は、クロック配線処理部１により配置されたルートドライバを先ず「第１ノード」とする。図４（ａ）では、先ずルートドライバ７０１が「第１ノード」となる。次段ノード特定部３は、第１ノード特定部２で特定された第１ノードから信号伝播方向に最初に現れるノードを、「次段ノード」とする。図４（ａ）では、第１ノードであるルートドライバ７０１から信号伝播方向に最初に現れるバッファ４００ａ、４００ｂが「次段ノード」となる。次段ノード数カウント部４は、次段ノード特定部３で特定された次段ノードの数を数える。第２ノード特定部１４は、次段ノード特定部３で特定された次段ノードのうち１の次段ノードを「第２ノード」とする。図４（ａ）では、バッファ４００ａが「第２ノード」となる。第３ノード特定部５は、畳み込み後に第１ノードから第３ノードへ伝播するクロックのディレイが少なくとも増加しないことを条件に、第２ノードとは異なる次段ノードから信号伝播方向に最初に現れるノードを「第３ノード」とする。図４（ａ）では、第２ノード４００ａとは異なる次段ノードであるバッファ４００ｂから信号伝播方向に最初に現れるバッファ４０１ｂが「第３ノード」となる。
【００２２】
「畳み込み後に第１ノードから第３ノードへ伝播するクロックのディレイが少なくとも増加しないこと」とは、例えば図４（ｂ）のように畳み込みを行った場合、第１ノードであるルートドライバ７０１から配線４０、４０ａ、バッファ４００ａ、配線４１ｃ、配線４１ｅを伝播して第３ノードであるバッファ４０１ｂに至るまでのディレイが、図４（ａ）におけるルートドライバ７０１から配線４０、４０ｂ、バッファ４００ｂ、配線４１ｂを伝播してバッファ４０１ｂに至るまでのディレイに比し増加しないことをいう。
【００２３】
畳み込み実行部１１は、第３ノード特定部５で特定された第３ノードへ畳み込みを行う。第３ノード特定部５により３以上の第３ノードが特定された場合は、総ての第３ノードへ畳み込みを行う。この場合、第２ノード特定部１４で特定された第２ノードが駆動できる電流容量を超えるときは、畳み込み実行部１１は、畳み込みができないと判断し、先ず電流容量を超えない範囲で第３ノードへ畳み込みを行い、残りの第３ノードへは他の第２ノードから畳み込みが行われる。畳み込み実行部１１は、畳み込み対象削除部６、畳み込み配線処理部７を備える。
【００２４】
畳み込み対象削除部６は、第１ノードから分岐して第３ノードに至るまでの配線及び第１ノードから分岐して第３ノードに至るまでの配線上のノードを削除する。例えば図４（ａ）に示す第１ノードであるルートドライバ７０１から分岐して第３ノードであるバッファ４０１ｂに至るまでの配線４０ｂ、バッファ４００ｂを図４（ｂ）のように削除する。畳み込み配線処理部７は、第２ノードから配線を分岐させて、第３ノードへ配線する。例えば図４（ｂ）に示すように、第２ノードであるバッファ４００ａから配線４１ｅを点Ｑで分岐させて、第３ノードであるバッファ４０１ｂへ配線することをいう。このとき、バッファ４００ａから出力した信号は配線４１ｃを伝播して点Ｑで配線４１ｅに分岐し、バッファ４０１ｂへ信号が伝播することとなる。これにより、配線４０ｂ、バッファ４００ｂが配線４０ａ、バッファ４００ａに畳み込まれる。
【００２５】
更に畳み込み後に、第１ノード特定部２は、第２ノード特定部１４により特定された第２ノードを「新たな第１ノード」とする。「新たな第１ノードとする」とは、図４（ｂ）に示すように、第２ノードであるバッファ４００ａが図４（ａ）のバッファ４００ｂを畳み込んだ場合、畳み込み後のバッファ４００ａを新たな第１ノードとすることをいう。バッファ４００ａを新たな第１ノードとすることにより、次段ノードは図４（ｂ）に示すバッファ４０１ａ、バッファ４０１ｂとなり、バッファ４０１ａ、バッファ４０１ｂが畳み込みの対象となる。
【００２６】
ディレイ調整部８は、クロックのディレイを調整してゼロスキューを実現する。ディレイ調整部８は、中間ノード削除部８１、ディレイ算定部８２、目標遅延設定部８３、リピータ配置部８４、目標遅延情報記憶装置１３を備える。中間ノード削除部８１は、入力装置９により入力された回路情報を基に、論理回路から中間ノードを削除する。クロックレイアウトにおける「中間ノード」とは、クロックレイアウト上で２本の配線を共有する接合部分をいう。出力側の配線が分岐していないリピータも「中間ノード」となる。図４（ａ）に示す、バッファ４００ａ、４００ｂ、４０１ａ、４０１ｂが中間ノードである。一方、図４（ｂ）に示す、バッファ４００ａは中間ノードではない。バッファ４００ａの出力側の配線が分岐しているからである。「中間ノードの削除」とは、中間ノードが接合する２本の回線を中間ノードが挿入されない１本の回線とすることをいう。クロックレイアウトにおける「中間ノードの削除」とは、中間ノードであるバッファ、アンプ等が接合する２本の配線をバッファ、アンプ等が挿入されない１本の配線とすることをいう。
【００２７】
ディレイ算定部８２は、中間ノード削除部８１により中間ノードを削除した論理回路において、各セグメントの信号伝播の遅延時間を算定する。セグメントのディレイの算定にあたって、削除された中間ノードのディレイを算入しない。更に、削除された中間ノードが接続していた２本それぞれの配線の他端である２つのノード間を１つのセグメントとしてディレイが算定される。図４（ｃ）に示すように、図４（ｂ）における中間ノードであるバッファ４０１ａ、４０１ｂを削除すると、配線４１ｄ、４２ａが新たな配線４３となり、配線４１ｅ、４２ｂが新たな配線４４となる。バッファ４００ａとバッファ４０２ａの２つのノード間である配線４１ｃと配線４３は、全体として１つのセグメントを構成し、バッファ４００ａとバッファ４０２ｂの２つのノード間である配線４１ｃと配線４４は、全体として１つのセグメントを構成し、それぞれ全体でディレイが算定される。
【００２８】
目標遅延設定部８３は、ディレイ算定部８２により算定された信号伝播の遅延時間を基に、目標遅延を実現するように、リピータの挿入、クロック配線の延長・短絡等によりクロックのディレイを調整する。目標遅延の設定は、ディレイ算定部８２で算定された各セグメントのディレイのうち最も大きいディレイを基準に、各セグメントのディレイが均等になるようにバッファ、アンプ等のリピータが挿入され、クロック配線の延長・短絡等が行われる。リピータ配置部８４は、目標遅延設定部８３により挿入されるリピータの種類・数、又は延長・短絡される配線長の情報を基に、挿入されるリピータの配置を行う。リピータの配置は、挿入されるリピータを設計上可能な最短距離でクロック配線した場合に、所望のクロック配線の延長が得られるように配置する。
【００２９】
更に、本発明の実施の形態に係るクロックレイアウトシステムは、回路情報記憶装置１０、ディレイ情報記憶装置１２、目標遅延情報記憶装置１３、読み出し専用メモリ（ＲＯＭ）１８、ランダムアクセスメモリ（ＲＡＭ）１９を備える。回路情報記憶装置１０は、入力装置９により入力され、又はクロック配線処理部１によりクロック配線された論理回路の回路情報を記憶する。又、回路情報記憶装置１０は、畳み込み実行部１１により総ての畳み込みが終了した後の論理回路の回路情報を記憶する。更に、回路情報記憶装置１０は、中間ノード削除部８１により中間ノードを削除した論理回路の回路情報を記憶する。ディレイ情報記憶装置１２は、ディレイ算定部８２により算定された各セグメントの信号伝播の遅延時間を、データとして記憶する。目標遅延情報記憶装置１３は、目標遅延設定部８３により挿入されるリピータ、又は延長・短絡される配線の情報を記憶する。ＲＯＭ１８は、システムを立ち上げる基本入出力システム（ＢＩＯＳ）を格納する。ＲＡＭ１９は、種々の情報、及び演算結果を記憶する。
【００３０】
入力装置９により入力された回路情報、クロック配線処理部１によりクロック配線された論理回路の回路情報、畳み込み実行部１１により総ての畳み込みが終了した後の論理回路の回路情報、中間ノード削除部８１により中間ノードを削除した論理回路の回路情報、ディレイ算定部８２により算定された各セグメントの信号伝播の遅延時間、及び目標遅延設定部８３により挿入されるリピータ、又は延長・短絡される配線の情報を、出力装置１７が出力する。これらの情報は、回路情報記憶装置１０、ディレイ情報記憶装置１２、目標遅延情報記憶装置１３から出力されてもよい。入力装置９、ＣＰＵ１００、出力装置１７、インターフェイス１５、ホストコンピュータ１６、回路情報記憶装置１０、ディレイ情報記憶装置１２、目標遅延情報記憶装置１３、ＲＯＭ１８、ＲＡＭ１９は、共通バス２０を介してデータのやり取りを行う。
【００３１】
畳み込み実行部１１でノードを畳み込むことにより、ローカルエリアの数が多い場合であっても、ルートドライバからローカルエリアへの分岐の数を削減でき、分岐の数の制限内でエレクトロマイグレーションの制約を守りつつ、高集積密度でクロック配線を実現できるクロックレイアウトシステム、及びクロックレイアウト方法を提供することができる。第１ノード特定部２で畳み込み後の第２ノードを新たな第１ノードとすることにより、畳み込み後の信号伝播方向へ次々とノードの畳み込みを行うことができ、畳み込みが可能なノードの総てを畳み込むことができる。第３ノード特定部５で畳み込みが可能なノードを特定することにより、信号のディレイを増加させずに確実に畳み込みを行うことができ、畳み込み後の誤動作を回避できる。ディレイ調整部８でディレイを調整することにより、クロック配線後の誤作動を回避できる。尚、ディレイ調整部８でのディレイ調整は、目標遅延を設定する方法に限られない。リピータ配置部８４で、所望のクロック配線の長さが得られるようにリピータを配置することにより、クロック配線処理部１にクロック配線を延長するように命令しなくても、所望のクロック配線の延長を実現できる。
【００３２】
図４を参照しながら、図２のフローチャートで本発明の実施の形態に係るクロックレイアウト方法を説明する。
【００３３】
（イ）先ずステップＳ２０１において、入力装置９により、設計しようとする論理回路の回路情報が入力される。例えば、図４（ａ）に示す論理回路の回路情報が入力される。
【００３４】
（ロ）ステップＳ２０２において、クロック配線処理部１は、入力装置９により入力された論理回路の回路情報を基に、半導体チップ上にルートドライバを配置し、そのルートドライバからクロック配線を行う。即ち、グローバルエリアにおいて、図４（ａ）に示すように半導体チップ上に設けられたルートドライバ７０１から複数の配線４０ａ、４０ｂを分岐し、スター型のクロック配線が行われる。
【００３５】
（ハ）ステップＳ２０３において、クロック配線処理部１によりクロック配線された後の論理回路の回路情報を基に、第１ノード特定部２により図４（ａ）に示すルートドライバ７０１が「第１ノード」とされる。
【００３６】
（ニ）ステップＳ２０４において、ルートドライバ７０１から複数の配線４０ａ、４０ｂに沿って信号伝播方向に最初にそれぞれ現れるノード（バッファ４００ａ、４００ｂ，・・・・・）が「次段ノード」として次段ノード特定部３により特定される。
【００３７】
（ホ）ステップＳ２０５において、次段ノード数カウント部４により、次段ノード特定部３で特定された次段ノード（バッファ４００ａ、４００ｂ，・・・・・）の数が数えられる。
【００３８】
（へ）ステップＳ２０５においてカウントされた次段ノードであるバッファ４００ａ、４００ｂ等が２以上あれば、ステップＳ２０６において、第２ノード特定部１４は２以上の次段ノード（バッファ４００ａ、４００ｂ，・・・・・）のうち１の次段ノード（バッファ４００ａ）を「第２ノード」とする。
【００３９】
（ト）ステップＳ２０７において、畳み込み後に第１ノードから第３ノードへ伝播するクロックのディレイが少なくとも増加しないことを条件に、第３ノード特定部５は図４（ａ）に示す第２ノード（バッファ４００ａ）とは異なる次段ノード（バッファ４００ｂ）から信号伝播方向に最初に現れるノード（バッファ４０１ｂ）を「第３ノード」とする。
【００４０】
（チ）ステップＳ２０７において第３ノードが特定された場合は、ステップＳ２０８において、畳み込み実行部１１は第３ノード特定部５で特定された第３ノード（バッファ４０１ｂ）へ畳み込みを行う。
【００４１】
（リ）ステップＳ２０８における畳み込み実行部１１での畳み込みは、図３（ａ）に示すように、先ずステップＳ３０において、畳み込み対象削除部６により第１ノード（ルートドライバ７０１）から分岐して第３ノード（バッファ４０１ｂ）に至るまでの配線４０ｂ、４１ｂ及び配線４０ｂ、４１ｂ上のノード（バッファ４００ｂ）が削除される。
【００４２】
（ヌ）そしてＳ３１において、畳み込み配線処理部７により第２ノード（バッファ４００ａ）から配線４１ｄ、４１ｅに分岐して、配線４１ｅを介して第３ノード（バッファ４０１ｂ）へ配線する。
【００４３】
（ル）ステップＳ２０８においてノードが畳み込まれた後に、ステップＳ２１１において、第２ノード（バッファ４００ａ）が第１ノード特定部２により「新たな第１ノード」とされる。
【００４４】
（ヲ）新たな第１ノードを用いて更にステップＳ２０４〜Ｓ２０８を繰り返し、ステップＳ２１１を経由して信号伝播方向へ次々とノードが畳み込まれ、総ての畳み込みが可能なノードが畳み込まれる。
【００４５】
（ワ）ステップＳ２０５においてカウントされた次段ノードが２以上ない場合、又はステップＳ２０７において、第３ノード特定部５により第３ノードが特定されなかった場合は、ステップＳ２０９において、ディレイ調整部８でディレイ調整が行われる。
【００４６】
（カ）図３（ｂ）に示すように、ステップＳ２０９におけるディレイ調整部８でのディレイ調整の方法は、先ずステップＳ３００において、中間ノード削除部８１で中間ノード（図４（ｂ）に示すバッファ４０１ａ、４０１ｂ）が削除される。
【００４７】
（ヨ）ステップＳ３０１において、中間ノード（バッファ４０１ａ、４０１ｂ）が削除された後の論理回路の回路情報を基に、各ノード（バッファ４００ａ、４００ｂ、４０１ａ、４０１ｂ、４０２ａ、４０２ｂ）間のセグメントの信号伝播の遅延時間がディレイ算定部８２により算定される。
【００４８】
（タ）ステップＳ３０２において、目標遅延設定部８３で、信号伝播の遅延時間を基に、リピータの挿入、クロック配線の延長・短絡等によりクロックのディレイが調整される。
【００４９】
（レ）ステップＳ３０３において、挿入されるリピータの配置がリピータ配置部８４により行われる。
【００５０】
（ソ）そして最終的に、図２に示すように、ステップＳ２１０において、リピータ配置部８４により配置されたリピータを基に、クロック配線処理部１によりクロック配線される。
【００５１】
これにより、ルートドライバのみならず畳み込み後のノードからも、配線が分岐するため、ローカルエリアの数が多くなっても、ルートドライバからローカルエリアへの分岐の数の制限及びエレクトロマイグレーションの制約を超えることなくクロック配線処理を行うことができる。更に、セグメント、リピータの数が削減されることにより、チップ内の面積利用効率が増大し、消費電力が低減される。
【００５２】
【発明の効果】
本発明によれば、ローカルエリアの数が多い場合にも、ノードを畳み込むことにより、ルートドライバからローカルエリアへの分岐の数を削減でき、分岐の数の制限内でエレクトロマイグレーションの制約を守りつつ、高集積密度かつ低消費電力でゼロスキューを実現できるクロックレイアウトシステム、及びクロックレイアウト方法を提供することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るクロックレイアウトシステムの概略を示す図である。
【図２】本発明の実施の形態に係るクロックレイアウト方法を説明するためのフローチャートである。
【図３】（ａ）は、本発明の実施の形態に係るクロックレイアウト方法におけるノードの畳み込みを説明するためのフローチャートである。（ｂ）は、本発明の実施の形態に係るクロックレイアウト方法におけるディレイ調整を説明するためのフローチャートである。
【図４】（ａ）は、畳み込み前のクロック配線の概略を示す図である。（ｂ）は、畳み込み後のクロック配線の概略を示す図である。（ｃ）は、中間ノードを削除した後のクロック配線の概略を示す図である。
【図５】（ａ）は、Ｈツリー型の構造を用いたクロック配線の概略を示す図である。（ｂ）は、スター型の構造を用いたクロック配線の概略を示す図である。（ｃ）は、Ｈツリー型とスター型の構造を併用したクロック配線の概略を示す図である。
【符号の説明】
１　クロック配線処理部
２　第１ノード特定部
３　次段ノード特定部
４　次段ノード数カウント部
５　第３ノード特定部
６　畳み込み対象削除部
７　畳み込み配線処理部
８　ディレイ調整部
９　入力装置
１０　回路情報記憶装置
１１　畳み込み実行部
１２　ディレイ情報記憶装置
１３　目標遅延情報記憶装置
１４　第２ノード特定部
１５　インターフェイス
１６　ホストコンピュータ
１７　出力装置
１８　ＲＯＭ
１９　ＲＡＭ
２０　共通バス
８１　中間ノード削除部
８２　ディレイ算定部
８３　目標遅延設定部
８４　リピータ配置部
１００　ＣＰＵ
【図１】
2004054598.tif 000003
【図２】
2004054598.tif 000004
【図３】
2004054598.tif 000005
【図４】
2004054598.tif 000006
【図５】
2004054598.tif 000007