(57)【特許請求の範囲】
【請求項１】
半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計方法において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行い、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々のマンハッタン長を算出して調査を行い、
上記マンハッタン長に基づいて、上記入力クロックバッファから各末端フリップフロップまでの遅延時間を小さく抑えるようにクロックドライバを挿入し、
上記マンハッタン長から推定される上記入力クロックバッファから上記各末端フリップフロップまでの遅延時間が略同一になるようにクロックツリーを合成し、
上記合成されたクロックツリーに基づいて各クロックドライバセルから各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行うことを特徴とする半導体集積回路のクロックツリー設計方法。
【請求項２】
半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計方法において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行い、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々のマンハッタン長を算出して調査を行い、
上記複数の末端フリップフロップ夫々のマンハッタン長に基づいて上記各末端フリップフロップで位相が略同一となるように上記末端フリップフロップ夫々に応じて遅延量の異なる複数のクロックを出力するＰＬＬ回路を設計し、
上記入力クロックバッファの出力するクロックを上記ＰＬＬ回路に供給し、上記ＰＬＬ回路の出力する遅延量の異なる複数のクロック夫々を対応する複数の末端フリップフロップ夫々に供給するよう接続してクロックツリーを合成し、
上記合成されたクロックツリーに基づいて上記ＰＬＬ回路から各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行うことを特徴とする半導体集積回路のクロックツリー設計方法。
【請求項３】
半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計装置において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行う事前レイアウト手段と、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々のマンハッタン長を算出して調査を行う調査手段と、
上記マンハッタン長に基づいて、上記入力クロックバッファから各末端フリップフロップまでの遅延時間を小さく抑えるようにクロックドライバを挿入し、上記マンハッタン長から推定される上記入力クロックバッファから上記各末端フリップフロップまでの遅延時間が略同一になるようにクロックツリーを合成する合成手段と、
上記合成されたクロックツリーに基づいて各クロックドライバセルから各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行うレイアウト手段とを有することを特徴とする半導体集積回路のクロックツリー設計装置。
【請求項４】
半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計装置において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行う事前レイアウト手段と、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々のマンハッタン長を算出して調査を行う調査手段と、
上記複数の末端フリップフロップ夫々のマンハッタン長に基づいて上記各末端フリップフロップで位相が略同一となるように上記末端フリップフロップ夫々に応じて遅延量の異なる複数のクロックを出力するＰＬＬ回路を設計するＰＬＬ設計手段と、
上記入力クロックバッファの出力するクロックを上記ＰＬＬ回路に供給し、上記ＰＬＬ回路の出力する遅延量の異なる複数のクロック夫々を対応する複数の末端フリップフロップ夫々に供給するよう接続してクロックツリーを合成する合成手段と、
上記合成されたクロックツリーに基づいて上記ＰＬＬ回路から各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行うレイアウト手段とを有することを特徴とする半導体集積回路のクロックツリー設計装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路のクロックツリー設計方法及びその装置に関し、半導体集積回路の各部にクロック信号を供給する半導体集積回路のクロックツリー設計方法及びその装置に関する。
近年、大規模かつ高集積化された半導体集積回路の設計期間短縮に伴い、論理記述による設計からレイアウトへの自動化を図るべく、合成ツール及び自動レイアウトツールを用いたクロックツリーの設計自動化が要求されている。
【０００２】
【従来の技術】
従来のクロックツリー設計方法について図１３を用いて説明する。まず、図１４（Ａ）に示すようにクロック入力端子１０から供給されるクロックを入力クロックバッファ１１を通して末端フリップフロップ１２，１３，１４夫々に供給する回路が設計データとして構成されている場合について考える。
【０００３】
図１３は従来のシステムフローチャートを示す。ステップＳ１０では上記の設計データに対して、クロックドライバセルの自動挿入を行う合成ツールでクロックツリーを発生させる。このステップでは入力クロックバッファ１１から末端のフリップフロップ１２〜１４までの遅延時間を最小に抑えるようにしており、遅延時間は仮配線容量から求めている。これにより、図１４（Ｂ）に示すように末端フリップフロップ１２，１３，１４夫々に対応してクロックドライバセル１５，１６，１７が挿入されたクロックツリーが得られる。この場合、入力クロックバッファ１１から末端フリップフロップ１２，１３，１４夫々までの配線容量は全て同一とみなしている。
【０００４】
更に、上記のクロックツリーを自動レイアウトツールによりレイアウトを行う。
このステップでは各クロックドライバセル１５〜１７夫々から末端のフリップフロップ１２〜１４夫々までの配線が等長となるように配線を行う。これにより図１４（Ｃ）に示すようなチップレイアウトが得られる。なお、クロックドライバセル１５〜１７の各個には複数のフリップフロップが接続されることが一般的である。
【０００５】
【発明が解決しようとする課題】
大規模かつ大集積の半導体集積回路ではクロックドライバセルから末端のフリップフロップまでの配線を全て等配線長となるようにフリップフロップを配置してしまうと、回路素子の配置の自由度が小さくなってしまい、本来、集積回路内の全ての素子間配線が最短となるよう調整して高集積化を可能とする自動レイアウト手法が効果を発揮できないという問題があった。
【０００６】
本発明は上記の点に鑑みなされたもので、集積回路内の全ての素子間配線を最短となるよう調整して高集積化が可能な半導体集積回路のクロックツリー設計方法及びその装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
請求項１に記載の発明は、半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計方法において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行い、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々の配線の最短距離であるマンハッタン長を算出して調査を行い、
上記マンハッタン長に基づいて、上記入力クロックバッファから各末端フリップフロップまでの遅延時間を小さく抑えるようにクロックドライバを挿入し、
上記マンハッタン長から推定される上記入力クロックバッファから上記各末端フリップフロップまでの遅延時間が略同一になるようにクロックツリーを合成し、
上記合成されたクロックツリーに基づいて各クロックドライバセルから各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行う。
【０００８】
このように事前レイアウトによって集積度を高くするような素子配置を行い、その後、各末端フリップフロップまでのマンハッタン長から配線容量を推定して各末端フリップフロップまでの遅延時間が小さくなるようにクロックドライバを挿入し、マンハッタン長から推定される入力クロックバッファから各末端フリップフロップまでの遅延時間が略同一になるようにクロックツリーを合成し、更に各クロックドライバから各末端フリップフロップまでの配線長が最短となるようレイアウトを行うため、クロック入力端子から各末端フリップフロップまでの遅延時間を略同一とすることができ、かつ半導体集積回路の集積度を高くすることができる。
【０００９】
請求項２に記載の発明は、半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計方法において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行い、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々の配線の最短距離であるマンハッタン長を算出して調査を行い、
上記複数の末端フリップフロップ夫々のマンハッタン長に基づいて上記各末端フリップフロップで位相が略同一となるように上記末端フリップフロップ夫々に応じて遅延量の異なる複数のクロックを出力するＰＬＬ回路を設計し、
上記入力クロックバッファの出力するクロックを上記ＰＬＬ回路に供給し、上記ＰＬＬ回路の出力する遅延量の異なる複数のクロック夫々を対応する複数の末端フリップフロップ夫々に供給するよう接続してクロックツリーを合成し、
上記合成されたクロックツリーに基づいて上記ＰＬＬ回路から各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行う。
【００１０】
このように、事前レイアウトによって集積度を高くするような素子配置を行い、その後、各末端フリップフロップまでのマンハッタン長から遅延量を推定して各末端フリップフロップでクロックの位相が略同一となるように遅延量を異ならせた複数のクロックをＰＬＬ回路を設計し、このＰＬＬ回路を入力クロックバッファと末端フリップフロップとの間に接続してレイアウトを行うため、各末端フリップフロップにおけるクロックの位相を略同一とすることができる。
【００１１】
請求項３に記載の発明は、半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計装置において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行う事前レイアウト手段と、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々の配線の最短距離であるマンハッタン長を算出して調査を行う調査手段と、
上記マンハッタン長に基づいて、上記入力クロックバッファから各末端フリップフロップまでの遅延時間を小さく抑えるようにクロックドライバを挿入しし、上記マンハッタン長から推定される上記入力クロックバッファから上記各末端フリップフロップまでの遅延時間が略同一になるようにクロックツリーを合成する合成手段と、
上記合成されたクロックツリーに基づいて各クロックドライバセルから各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行うレイアウト手段とを有する。
【００１２】
このように、事前レイアウト手段と、調査手段と、合成手段と、レイアウト手段とを設けることにより、請求項１の方法を実現でき、集積度の高い半導体集積回路の設計が可能となる。
請求項４に記載の発明は、半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計装置において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行う事前レイアウト手段と、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々の配線の最短距離であるマンハッタン長を算出して調査を行う調査手段と、
上記複数の末端フリップフロップ夫々のマンハッタン長に基づいて上記各末端フリップフロップで位相が略同一となるように上記末端フリップフロップ夫々に応じて遅延量の異なる複数のクロックを出力するＰＬＬ回路を設計するＰＬＬ設計手段と、
上記入力クロックバッファの出力するクロックを上記ＰＬＬ回路に供給し、上記ＰＬＬ回路の出力する遅延量の異なる複数のクロック夫々を対応する複数の末端フリップフロップ夫々に供給するよう接続してクロックツリーを合成する合成手段と、
上記合成されたクロックツリーに基づいて上記ＰＬＬ回路から各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行う。
【００１３】
このように、事前レイアウト手段と、調査手段と、ＰＬＬ設計手段と、合成手段と、レイアウト手段とを設けることにより、請求項２の方法を実現でき、集積度の高い半導体集積回路の設計が可能となる。
【００１４】
【発明の実施の形態】
図２は本発明のシステム構成図を示す。同図中、計算機本体１は後述の各種処理を実行するものであり、半導体集積回路の設計データを格納するハードディスク装置２，キーボード等の入力装置３，ディスプレイ装置４，印刷装置５が接続されている。上記のハードディスク装置２にはレイアウト前の基本データ２ａ，事前レイアウト処理で得られる事前レイアウトデータ２ｂ，調査処理で得られるマンハッタン長データ２ｃ，合成処理で得られる合成データ２ｄ，レイアウト処理で得られるレイアウトデータ２ｅ、ＰＬＬ設計処理で得られるＰＬＬ設計データ２ｆ等の半導体集積回路の設計データが格納される。
【００１５】
図１は本発明の一実施例のシステムフローチャートを示す。同図中、ステップＳ３０の事前レイアウト処理では基本データ２ａに対してクロックツリーを意識せずにフリップフロップも含めた回路素子の集積度を高くするよう全素子間の配線長を最短とするようにレイアウトを行い事前レイアウトデータ２ｂを得る。図３は事前レイアウト処理でレイアウトされたクロック入力端子２０と、入力クロックバッファ２１と、末端フリップフロップ２２，２３，２４，及びその間の配線を示している。なお、この半導体集積回路は論理回路であり、フリップフロップ等の順序回路と、アンド回路、オア回路等の各種の組み合わせ回路とから構成されており、上記末端フリップフロップ２２〜２４夫々の周辺に各種の組み合わせ回路が配置される。
【００１６】
次のステップＳ４０では事前レイアウトデータ２ｂに対して調査処理を行いマンハッタン長データ２ｃを得る。ここでは図３に示す事前レイアウトにおいて、入力クロックバッファ２１から各末端フリップフロップ２２，２３，２４までの配線の最短距離であるマンハッタン長を算出する。このマンハッタン長は配線容量を近似するために用いるものであり、入力クロックバッファ２１から末端フリップフロップ２２，２４夫々までのマンハッタン長はα，入力クロックバッファ２１から末端フリップフロップ２３までのマンハッタン長は２αである。
【００１７】
ステップＳ５０の合成処理では事前レイアウトデータ２ｂ及びマンハッタン長データ２ｃを用い、入力クロックバッファ２１から末端フリップフロップ２２〜２４夫々までの遅延時間を最小に抑えるようにクロックドライバセルを自動挿入してクロックツリーを合成して合成データ２ｄを得る。このときの遅延時間はマンハッタン長で近似された配線容量に対応するものとする。図４はこの合成処理で得られたクロックツリーを示している。ここではマンハッタン長がαのフリップフロップ２２，２４は挿入されたクロックドライバセル２５の出力端子に接続され、また、マンハッタン長が２αの末端フリップフロップ２３は挿入されたクロックドライバセル２６の出力端子に接続されている。
【００１８】
つまり、クロックドライバセル２５には末端フリップフロップ２２，２４夫々と接続する配線の配線長２α（＝α＋α）に対応する配線容量が付く。また、クロックドライバ２６には末端のフリップフロップ２３と接続する配線の配線長２αに対応する配線容量が付く。このため、入力クロックバッファ２１から各末端フリップフロップ２２〜２４夫々までの遅延時間は同一となる。
【００１９】
次のステップＳ５０では合成データ２ｄを用いてレイアウト処理を行い、レイアウトデータ２ｅを得る。ここでは事前レイアウト処理での配置を基本とし、かつ合成処理で得られたクロックツリーの構成で、クロックドライバセル２５，２６から末端フリップフロップ２２〜２３までの配線長が夫々最短となるように配線を行う。
【００２０】
これによって、図５に示すレイアウトが得られる。図５では末端フリップフロップ２２と２４とを最短で結ぶ配線の略中点位置にクロックドライバセル２５の出力端子を接続し、入力クロックバッファ２１の出力端子をクロックドライバセル２５の入力端子に接続すると共に、クロックドライバセル２５に隣接配置されたクロックドライバセル２６の入力端子に接続している。そしてクロックドライバセル２６の出力端子とフリップフロップ２３との間を最短で結ぶ配線で接続している。
【００２１】
上記のステップＳ３０が事前レイアウト手段に対応し、ステップＳ４０が調査手段に対応し、ステップＳ５０が合成手段に対応し、ステップＳ６０がレイアウト手段に対応する。
図６は本発明の第１実施例による半導体集積回路の回路配置の一実施例を示す。この半導体集積回路は極めて集積度が高く、末端フリップフロップＦＦ１〜ＦＦ１０夫々に関係する組み合わせ回路素子を対応するフリップフロップの近くに配置することは配線長を長くすることとなり、チップ全体の素子間の配線長をより短くするとフリップフロップ自体も優先的に配置できなくなった状態のものである。
【００２２】
この半導体集積回路のクロックツリーでは入力クロックバッファ３０からクロックドライバセル３１及びクロックドライバセル３２〜３６夫々を経て末端フリップフロップＦＦ１〜ＦＦ１０夫々に至る配線は全て等配線長とはなっていない。しかし、各末端フリップフロップＦＦ１〜ＦＦ１０を事前レイアウトした際のマンハッタン長に基づいてクロックドライバセル３２〜３６を配置しているため、入力クロックバッファ３０から末端フリップフロップＦＦ１〜ＦＦ１０夫々までの遅延時間は略同一、つまり遅延時間差が小さく抑えられる。なお、図中の破線はクロックドライバセル３１からの遅延時間が略同一となる位置を示している。
【００２３】
これに対して、図７は従来方法による半導体集積回路の回路配置の一例を示す。図７においては、クロックドライバセル４１からの遅延時間が略同一となる破線上にクロックドライバセル４２〜４５を配置している。そして、各クロックドライバセル４２〜４５夫々から末端フリップフロップＦＦ１１〜ＦＦ１８夫々までの配線長を略同一としている。
【００２４】
この場合は末端フリップフロップＦＦ１１〜ＦＦ１８夫々がある程度離れて配置されるため、末端フリップフロップＦＦ１１〜ＦＦ１８夫々の近傍に、これらと関係のある組み合わせ回路を配置することになり、例えば末端フリップフロップＦＦ１４とＦＦ１７との間に図６に示すような末端フリップフロップＦＦ４〜ＦＦ６を配置することができず、半導体集積回路の集積度を上げることができない。
【００２５】
図８は本発明の第２実施例のシステムフローチャートを示す。同図中、ステップＳ７０の事前レイアウト処理では基本データ２ａに対してクロックツリーを意識せずにフリップフロップも含めた回路素子の集積度を高くするよう全素子間の配線長を最短とするようにレイアウトを行い事前レイアウトデータ２ｂを得る。図９は事前レイアウト処理でレイアウトされたクロック入力端子５０と、入力クロックバッファ５１と、末端フリップフロップ５２，５３，５４，及びその間の配線を示している。なお、この半導体集積回路は論理回路であり、フリップフロップ等の順序回路と、アンド回路、オア回路等の各種の組み合わせ回路とから構成されており、上記末端フリップフロップ５２〜５４夫々の周辺に各種の組み合わせ回路が配置される。
【００２６】
次のステップＳ８０では事前レイアウトデータ２ｂに対して調査処理を行いマンハッタン長データ２ｃを得る。ここでは図９に示す事前レイアウトにおいて、入力クロックバッファ５１から各末端フリップフロップ５２，５３，５４までの配線の最短距離であるマンハッタン長を算出する。このマンハッタン長は遅延量を近似するために用いるものであり、入力クロックバッファ５１から末端フリップフロップ５２〜５４夫々までのマンハッタン長はα，２α，３α夫々である。
【００２７】
ステップＳ９０では上記のマンハッタン長データ２ｃを用いてＰＬＬ（フェーズ・ロックト・ループ）回路設計処理を行い、ＰＬＬ設計データ２ｆを得る。ここでは、図１０に示すように遅延量の異なる複数のクロックを出力するＰＬＬ回路６０を設計する。ＰＬＬ回路６０はＰＬＬセル６１と、クロックディレイセル６２，６３より構成される。ＰＬＬセル６１は入力クロックバッファ５１から供給されるクロックと、端子６４から供給されるフィードバッククロックとを位相比較して、フィードバッククロックと位相が一致するクロックを出力する。このＰＬＬセル６１の出力するクロックは端子Ｘ３から出力されると共に、クロックディレイセル６２に供給される。
【００２８】
クロックディレイセル６２は供給されるクロックをマンハッタン長αに対応する遅延量だけ遅延して端子Ｘ２から出力すると共に、クロックディレイセル６３に供給する。クロックディレイセル６３は供給されるクロックをマンハッタン長αに対応する遅延量だけ遅延して端子Ｘ１から出力する。これにより、端子Ｘ１から出力されるクロックに対して端子Ｘ２から出力されるクロックはマンハッタン長α分だけ進んでおり、端子Ｘ３から出力されるクロックは端子Ｘ２に対して更にマンハッタン長α分だけ進んでいる。
【００２９】
次にステップＳ１００で事前レイアウトデータ２ｂとマンハッタン長データ２ｃとＰＬＬ設計データ２ｆとを用い、ＰＬＬ回路６０の端子Ｘ１を末端フリップフロップ５２のクロック入力端子に接続し、端子Ｘ２を末端フリップフロップ５３のクロック入力端子に接続し、端子Ｘ３を末端フリップフロップ５４のクロック入力端子に接続して図１１に示すようなクロックツリーを合成データ２ｄを得る。また、ここでは、マンハッタン長が最長３αの末端フリップフロップ５４に供給されるクロックをＰＬＬ回路６０の端子６４にフィードバックするよう配線を行う。
【００３０】
次のステップＳ１１０では合成データ２ｄを用いてレイアウト処理を行いレイアウトデータ２ｅを得る。ここではＰＬＬ回路６０は入力クロックバッファ５１の近傍に配置され、末端フリップフロップ５２〜５４夫々は事前レイアウト処理で配置された通りであり、ＰＬＬ回路６０からのマンハッタン長は略α，２α，３α夫々であるので、ＰＬＬ回路６０から末端フリップフロップ５２〜５４夫々までの配線長が最短となるように配線を行う。
【００３１】
図１２は本発明の第２実施例による半導体集積回路の回路配置の一実施例を示す。この半導体集積回路は極めて集積度が高く、末端フリップフロップＦＦ２０〜ＦＦ２９夫々に関係する組み合わせ回路素子を対応するフリップフロップの近くに配置することは配線長を長くすることになり、チップ全体の配線長をより短くするとフリップフロップ自体も優先的に配置できなくなった状態のものである。
【００３２】
この半導体集積回路のクロックツリーでは入力クロックバッファ７０から末端フリップフロップＦＦ２０〜ＦＦ２９夫々までの配線長は夫々異なっている。しかし、予め調査したマンハッタン長に基づいてＰＬＬ回路７１で出力するクロックの遅延量を調整しているため、各末端フリップフロップＦＦ２０〜ＦＦ２９におけるクロックの位相は略同一となる。
【００３３】
また、マンハッタン長が最長の末端フリップフロップＦＦ２２に供給されるクロックをＰＬＬ回路７１にフィードバックしているため、ＰＬＬ回路７１に入力されるクロックと末端フリップフロップＦＦ２２に供給されるクロックとの遅延時間差を小さく抑えることができる。
【００３４】
【発明の効果】
上述の如く、請求項１に記載の発明は、半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計方法において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行い、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々の配線の最短距離であるマンハッタン長を算出して調査を行い、
上記マンハッタン長に基づいて、上記入力クロックバッファから各末端フリップフロップまでの遅延時間を小さく抑えるようにクロックドライバを挿入し、
上記マンハッタン長から推定される上記入力クロックバッファから上記各末端フリップフロップまでの遅延時間が略同一になるようにクロックツリーを合成し、
上記合成されたクロックツリーに基づいて各クロックドライバセルから各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行う。
【００３５】
このように事前レイアウトによって集積度を高くするような素子配置を行い、その後、各末端フリップフロップまでのマンハッタン長から配線容量を推定して各末端フリップフロップまでの遅延時間が小さくなるようにクロックドライバを挿入し、マンハッタン長から推定される入力クロックバッファから各末端フリップフロップまでの遅延時間が略同一になるようにクロックツリーを合成し、更に各クロックドライバから各末端フリップフロップまでの配線長が最短となるようレイアウトを行うため、クロック入力端子から各末端フリップフロップまでの遅延時間を略同一とすることができ、かつ半導体集積回路の集積度を高くすることができる。
【００３６】
また、請求項２に記載の発明は、半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計方法において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行い、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々の配線の最短距離であるマンハッタン長を算出して調査を行い、
上記複数の末端フリップフロップ夫々のマンハッタン長に基づいて上記各末端フリップフロップで位相が略同一となるように上記末端フリップフロップ夫々に応じて遅延量の異なる複数のクロックを出力するＰＬＬ回路を設計し、
上記入力クロックバッファの出力するクロックを上記ＰＬＬ回路に供給し、上記ＰＬＬ回路の出力する遅延量の異なる複数のクロック夫々を対応する複数の末端フリップフロップ夫々に供給するよう接続してクロックツリーを合成し、
上記合成されたクロックツリーに基づいて上記ＰＬＬ回路から各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行う。
【００３７】
このように、事前レイアウトによって集積度を高くするような素子配置を行い、その後、各末端フリップフロップまでのマンハッタン長から遅延量を推定して各末端フリップフロップでクロックの位相が略同一となるように遅延量を異ならせた複数のクロックをＰＬＬ回路を設計し、このＰＬＬ回路を入力クロックバッファと末端フリップフロップとの間に接続してレイアウトを行うため、各末端フリップフロップにおけるクロックの位相を略同一とすることができる。
【００３８】
また、請求項３に記載の発明は、半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計装置において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行う事前レイアウト手段と、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々の配線の最短距離であるマンハッタン長を算出して調査を行う調査手段と、
上記マンハッタン長に基づいて、上記入力クロックバッファから各末端フリップフロップまでの遅延時間を小さく抑えるようにクロックドライバを挿入し、上記マンハッタン長から推定される上記入力クロックバッファから上記各末端フリップフロップまでの遅延時間が略同一になるようにクロックツリーを合成する合成手段と、
上記合成されたクロックツリーに基づいて各クロックドライバセルから各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行うレイアウト手段とを有する。
【００３９】
このように、事前レイアウト手段と、調査手段と、合成手段と、レイアウト手段とを設けることにより請求項１の方法を実現でき、集積度の高い半導体集積回路の設計が可能となる。
また、請求項４に記載の発明は、半導体集積回路の外部より供給されるクロックを上記半導体集積回路内の各部に供給するクロックツリーの設計を行う半導体集積回路のクロックツリー設計装置において、
上記半導体集積回路の集積度を高くするように事前レイアウトを行う事前レイアウト手段と、
上記事前レイアウト結果に基づいて、上記外部よりクロックを供給される入力クロックバッファとクロックを半導体集積回路の各部に供給する複数の末端フリップフロップ夫々の配線の最短距離であるマンハッタン長を算出して調査を行う調査手段と、
上記複数の末端フリップフロップ夫々のマンハッタン長に基づいて上記各末端フリップフロップで位相が略同一となるように上記末端フリップフロップ夫々に応じて遅延量の異なる複数のクロックを出力するＰＬＬ回路を設計するＰＬＬ設計手段と、
上記入力クロックバッファの出力するクロックを上記ＰＬＬ回路に供給し、上記ＰＬＬ回路の出力する遅延量の異なる複数のクロック夫々を対応する複数の末端フリップフロップ夫々に供給するよう接続してクロックツリーを合成する合成手段と、
上記合成されたクロックツリーに基づいて上記ＰＬＬ回路から各末端フリップフロップまでの配線長を最短となるよう配線してレイアウトを行う。
【００４０】
このように、事前レイアウト手段と、調査手段と、ＰＬＬ設計手段と、合成手段と、レイアウト手段とを設けることにより、請求項２の方法を実現でき、集積度の高い半導体集積回路の設計が可能となる。
【図面の簡単な説明】
【図１】本発明のシステムフローチャートである。
【図２】本発明のシステム構成図である。
【図３】本発明を説明するための図である。
【図４】本発明を説明するための図である。
【図５】本発明を説明するための図である。
【図６】本発明方法による回路配置の一実施例を示す図である。
【図７】従来方法による回路配置の一例を示す図である。
【図８】本発明のシステムフローチャートである。
【図９】本発明を説明するための図である。
【図１０】本発明を説明するための図である。
【図１１】本発明を説明するための図である。
【図１２】本発明を説明するための図である。
【図１３】従来のシステムフローチャートである。
【図１４】従来を説明するための図である。
【符号の説明】
２０  クロック入力端子
２１，４０  入力クロックバッファ
２２〜２４，ＦＦ１〜ＦＦ１０  末端フリップフロップ
２５，２６，３１〜３６  クロックドライバセル
Ｓ３０，Ｓ７０  事前レイアウト処理
Ｓ４０，Ｓ８０  調査処理
Ｓ５０，Ｓ１００  合成処理
Ｓ６０，Ｓ１１０  レイアウト処理
Ｓ９０  ＰＬＬ設計処理
【図１】
0003943643.tif 000002
【図２】
0003943643.tif 000003
【図３】
0003943643.tif 000004
【図４】
0003943643.tif 000005
【図５】
0003943643.tif 000006
【図６】
0003943643.tif 000007
【図７】
0003943643.tif 000008
【図８】
0003943643.tif 000009
【図９】
0003943643.tif 000010
【図１０】
0003943643.tif 000011
【図１１】
0003943643.tif 000012
【図１２】
0003943643.tif 000013
【図１３】
0003943643.tif 000014
【図１４】
0003943643.tif 000015