(57)【特許請求の範囲】
【請求項１】
自動配置配線装置により、自動セル配置処理により生成された半導体集積回路に対するタイミング解析結果を取得して各論理パス間のタイミング収束の難易度を判別し、
前記自動配置配線装置により、前記タイミング収束の難易度が所定のレベルを超える論理パスについて、当該パスを構成する論理回路素子間では前記タイミング収束の難易度が前記所定のレベル以下のパスと比較して分岐が少なくなるようにクロックツリーを生成する、
工程を含み、
前記タイミング解析結果は、前記論理回路素子間のパスについてのタイミング制約情報として、あらかじめ分類されたパスの種類を含み、
前記自動配置配線装置は、前記パスの種類がクリティカルパスとして指定されている場合に、前記タイミング収束の難易度が所定のレベルを超えるパスとして判別し、
前記パスの種類は、前記クリティカルパス、１クロックサイクル内での遅延を許容するシングルサイクルパス、２クロックサイクル以上の遅延が認められるマルチサイクルパス、及びタイミングを考慮しなくてもよいフォルスパス、を含む
ことを特徴とする自動配置配線方法。
【請求項２】
前記自動配置配線装置において前記タイミング収束の難易度を複数段階に設定し、
前記複数段階のタイミング収束の難易度に応じて、前記分岐を低減する割合を異ならせる、
ことを特徴とする請求項１に記載の自動配線配置方法。
【請求項３】
前記タイミング制約情報は、各論理パス間のタイミングスラックであり、
前記自動配置配線装置による前記判別は、前記タイミングスラックが所定の時間よりも短い場合に、前記タイミング収束の難易度が所定のレベルを超えるパスとして判別する、
ことを特徴とする請求項１又は２に記載の自動配線方法。
【請求項４】
自動配置配線処理がなされたセル配置に対してタイミング解析を行うタイミング解析部と、
前記タイミング解析結果に基づいて、各論理回路素子間のタイミング収束の難易度を判別するタイミング制約判断部と、
前記タイミング収束の難易度が所定のレベルを超えるパスについて、当該パスを構成する論理回路素子間での分岐が前記所定のレベル以下のパスと比較して少なくなるようにクロックツリーを生成するクロックツリー構築部と、
を有し、
前記タイミング解析部は、前記論理回路素子間のパスについてのタイミング制約情報として、あらかじめ分類されたパスの種類を出力し、
前記タイミング判断部は、前記パスの種類がクリティカルパスとして指定されている場合に、前記タイミング収束の難易度が所定のレベルを超えるパスとして判断し、
前記クロックツリー構築部は、前記クリティカルパスを構成する前記論理回路素子間での前記分岐が他のパスと比較して少なくなるように前記クロックツリーを生成し、
前記パスの種類は、前記クリティカルパス、１クロックサイクル内での遅延を許容するシングルサイクルパス、２クロックサイクル以上の遅延が認められるマルチサイクルパス、及びタイミングを考慮しなくてもよいフォルスパス、を含む
ことを特徴とするレイアウト装置。
【請求項５】
前記タイミング制約判断部は、複数段階に設定された前記タイミング収束の難易度に応じて、前記各論理回路素子間のタイミング収束の難易度を判別し、
前記クロックツリー構築部は、前記複数段階のタイミング収束の難易度に応じて、前記分岐を低減する割合を異ならせて前記クロックツリーを生成する
ことを特徴とする請求項４に記載のレイアウト装置。
【請求項６】
前記タイミング解析部は、前記タイミング制約情報として前記各論理回路素子間のタイミングスラックを出力し、
前記タイミング制約判断部は、前記タイミングスラックが所定の時間よりも短い場合に前記タイミング収束の難易度が所定のレベルを超えるパスとして判断し、
前記クロックツリー構築部は、前記タイミングスラックが所定の時間よりも短い前記論理回路素子間において、前記分岐が低減されるように前記クロックツリーを生成する、
ことを特徴とする請求項４又は５に記載のレイアウト装置。
【請求項７】
レイアウト装置にインストールされて前記レイアウト装置に以下の処理を実行させるコンピュータ読み取り可能な自動配置配線プログラム：
前記レイアウト装置で生成処理されたセル配置に対するタイミング解析結果を取得する処理；
前記タイミング解析結果に基づいて、各論理回路素子間のタイミング収束の難易度を判別する処理；および
前記タイミング収束の難易度が所定のレベルを超えるパスを構成する論理回路素子間での分岐が前記所定のレベル以上のパスと比較して少なくなるようにクロックツリーを生成する処理、であって、
前記タイミング解析結果を取得する処理は、前記論理回路素子間のパスについてのタイミング制約情報として、あらかじめ分類されたパスの種類を取得し、
前記判別する処理は、前記パスの種類がクリティカルパスとして指定されている場合に、前記タイミング収束の難易度が所定のレベルを超えるパスとして判別し、
前記パスの種類は、前記クリティカルパス、１クロックサイクル内での遅延を許容するシングルサイクルパス、２クロックサイクル以上の遅延が認められるマルチサイクルパス、及びタイミングを考慮しなくてもよいフォルスパス、を含む
自動配置配線プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ（Large Scale Integrated Circuit）等の半導体集積回路チップ内の回路の自動レイアウトを行なう自動配置配線方法、レイアウト装置、自動配置配線プログラム、及びこれらに基づいて製造される半導体集積回路に関する。
【背景技術】
【０００２】
近年のＬＳＩ設計では、微細化、大規模化が進み、チップのレイアウトは非常に大きくなってきている。これにより、タイミングの収束が悪くなる、工程数が増大する等、チップ内のばらつき（ＯＣＶ：On Chip Variation）の影響も顕著になってきている。特に、クロックツリーは数十万以上のフリップフロップ（ＦＦ）を駆動することもあり、これらのクロックスキューを低減させるため、非常に段数が深くなってきている。
【０００３】
０．１８μｍよりも前のプロセスであれば、クロックスキューを抑えることによりＦＦ間のタイミングは良化するため、クロックツリーの段数は問題にならなかった。しかし、近年の微細化により、信号の分岐が起きると、セルごとにばらつきによる遅延を考慮する必要が出てきている。デザインのタイミング収束性が厳しい場合、クロックラインのばらつきは大きな問題となり、工期の増大、最悪の場合にはデザインのパフォーマンス劣化にまで繋がってしまう。
【０００４】
この問題に対して、レイアウト時に素子をクラスタリングすることにより、共通のクロック経路を増やしてクロックツリーのばらつきを低減させる提案がなされている（例えば、特許文献１参照）。この提案では、ＦＦとマクロとを近傍に配置し、かつマクロの近傍にマクロにマクロ用のクロックを供給する第１クロック選択回路を配置してクラスター化する。さらに、ソースクロックを供給するクロックツリーソースセルと、各ＦＦに対応して設けられる遅延調整用のクロックツリーセルとの間に共通のクロックツリーセルを挿入し、共通クロックツリーセルの後段で、ＦＦ遅延調整用のクロックツリーセルに供給されるクロック信号と、マクロ用の第１クロック選択回路とに供給されるクロック信号とを分岐させている。
【０００５】
しかし、上記の方法を用いても、ＦＦ間のタイミング制約又は遅延要件の相違は考慮されないため、タイミング収束性の観点から最適なクロックツリーを構築できるとは限らない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記問題点を踏まえ、本願ではタイミング制約を考慮することにより、タイミング収束性が向上し、ばらつき耐性に優れたクロックツリーを構築することのできる半導体集積回路の自動配置配線方法、レイアウト装置、自動配置配線プログラム、及び半導体集積回路を提供することを課題とする。
【課題を解決するための手段】
【０００７】
クロックツリーの構築に際して、各論理回路素子（ＦＦ）間のタイミング制約を考慮して、制約の厳しいパスを構成するＦＦ間ではツリーの分岐を極力低減するようにクロックツリーを構築する。
【０００８】
第１の側面では、レイアウト装置を用いた半導体集積回路の自動配置配線方法を提供する。この自動配置配線方法では、
自動セル配置処理により生成された半導体集積回路に対するタイミング解析結果に基づいて、各論理回パス間のタイミング収束の難易度を判別し、
前記タイミング収束の難易度が所定のレベルを超えるパスについて、当該パスを構成する論理回路素子間での分岐が前記タイミング収束の難易度が前記所定のレベル以下のパスと比較して少なくなるようにクロックツリーを生成する。
【０００９】
第２の側面としては、上述の方法を実行するレイアウト装置を提供する。レイアウト装置は、
自動配置配線処理がなされたセル配置に対してタイミング解析を行うタイミング解析部と、
前記タイミング解析結果に基づいて、各論理パス間のタイミング収束の難易度を判別するタイミング制約判断部と、
前記タイミング収束の難易度が所定のレベルを超えるパスについて、当該パスを構成する論理回路素子間での分岐が前記所定のレベル以下のパスと比較して少なくなるようにクロックツリーを生成するクロックツリー構築部と、
を有する。
【００１０】
第３の側面では、レイアウト装置にインストールされてレイアウト装置に以下の処理を実行させるコンピュータ読み取り可能な自動配置配線プログラムを提供する。レイアウト装置に実行させる処理は、
前記レイアウト装置で生成処理されたセル配置に対するタイミング解析を取得する処理；
前記タイミング解析結果に基づいて、各論理回路素子間のタイミング収束の難易度を判別する処理；および
前記タイミング収束の難易度が所定のレベルを超えるパスについて、当該パスを構成する論理回路素子間での分岐が一定割合以下となるようにクロックツリーを生成する処理、
を含む。
【００１１】
第４の側面では、上述した方法で作成されたレイアウトに基づいて製造される半導体集積回路を提供する。半導体集積回路は、
半導体基板と、
前記半導体基板上に配置される複数の論理回路素子と、
前記複数の論理回路素子にクロック信号を分配するクロックツリー配線と、
を含み、
前記クロックツリー配線は、各論理パス間におけるタイミング収束の難易度が所定のレベルを超えるパスについて、当該パスを構成する前記論理回路素子間での分岐が前記所定のレベル以下のパスと比較して少なくなるように配置されている。
【発明の効果】
【００１２】
上記構成及び手法により、ばらつきによるタイミング違反を軽減することができ、最終製品のタイミングの収束性を向上し、０．１８μｍ以降のプロセスにおいても、ＬＳＩチップの性能、動作の正確性を維持することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態による半導体集積回路の自動レイアウトの処理フローを示す図である。
【図２】タイミング制約を考慮しないで構築したクロックツリーの一例を示す図である。
【図３】クロックラインのばらつきによりタイミング収束の厳しくなる例を示す概略図である。
【図４】本発明の一実施形態によるタイミング制約を考慮したクロックツリー構築の処理フローの一例を示す図である。
【図５】タイミング解析結果から読み出されたタイミング制約情報の例として、パスの余裕度リストを示す図である。
【図６】図４の処理により構築されたばらつきを耐性の強いクロックツリーの一例を示す図である。
【図７】本発明の実施形態によるタイミング制約を考慮したクロックツリー構築の処理フローの別の例を示す図である。
【図８】本発明の実施形態による半導体集積回路の自動レイアウト装置の機能ブロック図である。
【発明を実施するための形態】
【００１４】
図１は、本発明の一実施形態による半導体集積回路の自動レイアウト方法の処理フローを示す図である。この処理フローの中で特徴的な部分は、後述するようにステップ６におけるタイミング制約を考慮したクロックツリーの構築工程である。
【００１５】
まず、ステップＳ１で、設計システムの内部又は外部のデータベースからデザインルール及びライブラリを読み込む。デザインルールは、ライン幅、スペース幅、ライン間隔など、各レイヤ又はレイヤ間で満たすべき論理的、物理的規則に関する情報を含む。ライブラリは、スタンダードセルやマクロセルを含む論理セルのレイアウトデータ、端子位置、サイズ、論理情報等を含む。
【００１６】
ステップＳ２では、ステップＳ１と同時又は前後して、配置配線のためのネットリストとタイミング制約を読み込む。ネットリストは端子間の論理接続情報であり、たとえばレジスタ転送レベル（ＲＴＬ：Register Transfer Level）を論理合成したネットリストを読み込む。タイミング制約は、回路を設計どおりに動作させるために素子間に要求される遅延時間の制約条件である。
【００１７】
ステップＳ３で、セル配置を行なう。セル配置は、たとえばネットリストの結線情報に基づきライブラリから論理セルを選択してセル配置領域に配置する。この際にタイミングが考慮される。
【００１８】
ステップＳ４で、タイミングの最適化を行なう。この時点でのタイミングの最適化は、クロックツリー作成前の段階でのタイミング最適化であり、たとえば、配線遅延時間の最小化を行なう。
【００１９】
ステップＳ５で、タイミング解析を行なう。タイミング解析では、セル配置や遅延時間の最適化が適正に行なわれてタイミング要求が満たされているかどうかを検証する。タイミング解析の結果、入出力間のパスの各ノードでの遅延や合計の遅延時間、ＦＦ間のスラック（タイミング・マージン）、求められるタイミング要件と実際のコンパイル結果の差などが得られる。このタイミング解析により、すべてのＦＦ間でタイミング要件が満たされていることが前提となって、以降の工程が行なわれる。
【００２０】
ステップＳ６で、ステップＳ５のタイミング解析結果に基づき、ＦＦ間のタイミング制約を考慮してクロックツリーを作成する。従来は、タイミング解析はもっぱらセル配置と遅延時間の確認、問題のあるパスの特定等のために行なわれていたが、本実施形態では、タイミング解析結果をクロックツリー構築のための資料として積極的に利用する。タイミング解析結果は、後述するように、ＦＦ間のパスタイミング制約の厳しさの程度すなわちタイミング収束の難易度についての情報を含む。そのようなタイミング制約情報の一例として、タイミングスラックレポートを用いることができる。あるいは、タイミング収束の難易度の程度に応じて分類されたパスの種類を用いてもよい。パスの種類としては、遅延要件が非常に厳しいクリティカルパス（最小のスラックを持つパスの集合）、１クロックサイクル内での遅延が許されるシングルサイクルパス、２クロックサイクル以上の遅延が認められるマルチサイクルパス、タイミングを考慮しなくてもよいフォルスパス（信号線は存在するがデータラインとしては繋がっていないパス）等の区別を用いることができる。タイミング制約情報を利用することによって、タイミング制約の厳しいＦＦ間において、クロックツリーの分岐が極力少なくなるように、あるいは共通経路部分の割合が極力多くなるように、クロックツリーを作成する。ツリー作成時にクロックスキューの軽減処理も併せて行なう。
【００２１】
最後にステップＳ７で、クロックツリー後のタイミングの最適化を行い、信号配線を行なう。
【００２２】
仮に、ステップＳ６でタイミング制約を考慮しないでクロックツリーを作成した場合、図２のようなクロックツリーが形成される。すなわち、ネットリストの記述にしたがってＦＦ１〜ＦＦ８が配置され、クロックのルートとなるバッファ１０１とＦＦ１〜ＦＦ８の各素子の間に、各ＦＦへの信号到達時間が一致するようにクロックバッファ１０２〜１１５が階層的に挿入される。
【００２３】
しかし、図２のようなクロックツリーを実施した場合、たとえばＦＦ１とＦＦ８の間のパスがクリティカルパス（タイミングの厳しいパス）であった場合に問題が生じる。ＦＦ１を送り側、ＦＦ８を受け側とするＦＦ１−ＦＦ８間のパスはクリティカルパスであるとの指定がなされている場合、図３に示すように、もともとタイミング要件の厳しいＦＦ１−ＦＦ８間において、さらにクロックスキュー（クロックのズレ）とクロックラインのばらつきの分だけタイミングが厳しくなり、指定されたタイミング要求を満たすことができなくなる可能性が非常に高い。図３の例では、クロックラインのセルのばらつきはCLKBUF 1〜3、及びCLKBUF 4〜6にかかっており、１つのセルのばらつきを２０ピコ秒とすると、クロックスキューがゼロ（０ピコ秒）だとしても、最大２０×６＝１２０ピコ秒タイミングが厳しくなる。
【００２４】
０．１８μｍよりも前のプロセスでは、タイミングの厳しいパスがある場合、クロックラインにセルを挿入してクロックをずらすことによってデータラインマージンを稼ぐ手法（ローカルスキュー若しくはユースフルスキューと呼ばれる）が使われていた。しかし微細化が進み、ばらつきを考慮する必要がでてくると、クロックラインにセルを挿入するたびにセルのばらつき分の遅延が加算されるため、ローカルスキューの手法でタイミングを収束させることは困難である。そこで、実施形態では、図１のステップＳ６のように、あらかじめタイミング制約を考慮に入れてクロックツリーを構築する。
【００２５】
図４は、図１のステップＳ６の具体例を示す処理フローである。まず、ステップＳ６−１でタイミング解析結果を取得する。タイミング解析結果は、自動レイアウト装置の内部又は外部の記憶領域から読み出すことによって取得することができる。解析結果は、例えば図５に示すように、セル配置に含まれる全てのフリップフロップ（ＦＦ）間についてのタイミングスラック情報を含む。タイミングスラックとはＦＦ間のタイミング・マージン（余裕度）であり、図５では許容される遅延時間（ピコ秒）で示してある。
【００２６】
次にステップＳ６−２で、読み出した解析結果の中から各ＦＦ間のパスを順次選択し、ステップＳ６−３で、選択したパスについて遅延要件（タイミング）が所定のレベルよりも厳しいか（すなわちタイミング収束性の何度が所定のレベルを超えるか）否かを判断する。たとえば、「許容遅延時間が４０ピコ秒よりも短いＦＦ間を所定のレベルよりもタイミングが厳しいパスとする」というルールがあらかじめ設定されている場合は、そのような条件を満たすパスが所定レベルよりもタイミングが厳しい（タイミング収束性の難易度が高い）パスとして判断される。図５の表によると、ＦＦ１とＦＦ８の間のパス、ＦＦ２とＦＦ７の間のパス、ＦＦ３とＦＦ４の間のパス等が、遅延要件の厳しいパスであると判断される。
【００２７】
次に、ステップＳ６−４で、遅延要件が厳しいと判断されたＦＦ間でのクロック分配の分岐が前記所定のレベル以下のパスと比較して少なくなるように設定され、ステップＳ６−５でこのような設定に応じてクロックツリーを作成する。
【００２８】
他方、ステップＳ６−４で遅延要件が所定レベル以下であると判断された場合は（Ｓ６−４でＮＯ）、分岐の低減を考慮することなくステップＳ６−５のクロックツリーの作成に進む。すなわち、タイミングに余裕のあるパス、フォルスパスやマルチサイクルパス等については、ばらつきの影響を受けてもかまわないため、ツリー上でＦＦ間の分岐が多くなるような配置となっても問題は生じない。そこで、これらのタイミングの緩いパスやタイミングを考慮する必要のないパスについては分岐低減処理を特に行なわない。ＦＦ１とＦＦ２の間はタイミング制約が最も緩く、クロックのルートから分岐しても差し支えないと判断される。たとえば、図５の例では、ＦＦ１とＦＦ２の間はタイミング制約が最も緩く、クロックのルートから分岐しても差し支えないため、特に分岐の数を考慮せずにクロックツリー作成に進むことができる。
【００２９】
タイミング収束性の難易度が高いパスについて分岐が最小限となるように、すべての論理パス間についてのタイミング収束性を考慮しツリー配置を決定する。
【００３０】
分岐を少なくする例として、ツリーのルートからＦＦに至るまでのツリー経路上での分岐の割合が最小限となるように配置を決定する。ツリー全体の分岐は、ツリーの規模、ＦＦの数、タイミングの要件等によって適宜設定され得る。たとえば、ツリーのルートを０段目として、ｎ段目まで分岐がある場合に、タイミングの最も厳しいＦＦ間においては、ルートからこのＦＦ間までの経路のうち分岐経路が占める割合は１／ｎ、逆に言うと共通経路が占める割合が（ｎ−１）／nとなるようにツリーを構成する。図２の例では、説明を簡略化するためｎ＝３の場合を例にとっているが、通常は、ｎは十分に大きな値であり、一般化するとｎは２以上の整数とすることができる。
【００３１】
図６は、図４の処理フローに基づいて作成されたクロックツリーの一例である。タイミング制約の厳しいＦＦ１とＦＦ８の間では、分岐は３段目に１回あるだけであり（分岐の割合が１／３）、CLKBUF0からCLKBUF1、CLKBUF2までが共通である。したがって、クロックラインのばらつきの影響はCLKBUF3とCLKBUF7のみとなる。１つのセルのばらつきが２０ピコ秒、クロックスキューが０ピコ秒だとすると、２０×２＝４０ピコ秒分タイミングが厳しくなるだけである。また、ＦＦ８をCLKBUF3の先につなげてしまえば、クロックラインのセルのばらつきの影響はまったく受けないことになる。他方、タイミング制約の緩いＦＦ１とＦＦ２の間では、ルートとなるCLKBUF0から分岐して分岐が３回となるが、タイミングを厳格に考える必要のないパスなので２０×６＝１２０ピコ秒のばらつきが生じても動作に影響しない。
【００３２】
このように、タイミング制約を考慮することにより、クロックツリー作成前の段階でクリティカルパスを認識し、タイミングの厳しい箇所に対しては極力ツリーの分岐を抑えてばらつき耐姓を持つクロックツリーを構築することが可能になる。その結果タイミングの収束性を上げばらつき耐性を向上することができる。
【００３３】
なお、図４のフローでは、本発明の基本的な考え方を実現するのに必要最小限の工程だけを示しているが、タイミング収束の難易度の判断基準を複数段階に分けて、ツリーの分岐の低減を段階的に行なってもよい。たとえば、図５のタイミング解析結果において、タイミングスラックが４０ピコ秒以上、１２０ピコ秒未満のパスを、２番目にタイミング制約が厳しいレベルのパスとして判断する構成としてもよい。この場合、ＦＦ１とＦＦ３の間のタイミングスラックは８０ピコ秒であり、遅延に対して第２レベルの厳しさが要求されている。本来は、ＦＦ１−ＦＦ３間もＦＦ１−ＦＦ８間と同様に、なるべくツリーの分岐を少なくしたいところである。しかし、ＦＦのセル配置状況やクロックツリーのバランス上の観点から、最小限の分岐とすることが困難な場合は、２番目に分岐が少なくなるようにツリーを構成する。例えば、２番目にタイミングが厳しいＦＦ間では、分岐経路の割合が２／ｎ、共通経路が占める割合を（ｎ−２）／ｎとなるようにツリーを構成する。この結果、ＦＦ１とＦＦ３の間では分岐が２回となり、２０×４＝８０ピコ秒だけタイミングのばらつきが生じる。
【００３４】
図７は、図１のステップＳ６の別の具体的な処理フロー例を示す図である。図７の手法では、タイミングスラックレポートを利用する代わりに、たとえば予め各ＦＦ間のタイミング制約の厳格さに応じて指定されるパスの種類に応じて、ツリー上での分岐が少なくなるように（すなわち共通経路の割合が多くなるように）クロックツリーを構築する。タイミング制約の厳しさの程度に応じたパスの種類は、図１のステップＳ２で読み込まれたタイミング制約の中に記述されているものとする。また、ＦＦの数に応じてｎ段のツリーが作成されるものとする。
【００３５】
まず、ステップＳ６−１１で、タイミング解析結果を読み出す。ステップＳ６−１２で着目パスを選択し、ステップＳ６−１３で、クリティカルパスとして指定されているか否かを判断する。クリティカルパスの場合はステップＳ６−１４へ進み、当該着目パスを構成するＦＦ間でツリー上の分岐が１／ｎとなるように設定する。
【００３６】
着目バスがクリティカルパスでない場合は（Ｓ６−１３でＮＯ）、ステップＳ６−１５へ進み、着目パスが１クロックサイクル内での遅延が許容されるシングルサイクルパスであるかどうかが判断される。シングルサイクルパスである場合は、ステップＳ６−１６に進み、分岐の割合を２／ｎ〜１／２になるように設定する。この値はもちろん例示であって回路規模に応じて適宜選択され得ることは言うまでもない。
【００３７】
着目パスがシングルサイクルパスでない場合は（Ｓ６−１５でＮＯ）、タイミングを考慮する必要のないパスとして分岐を考慮しない（Ｓ６−１７）。
【００３８】
このような判断のあと、Ｓ６−１８で全てのパスについて判断がなされたか否かを判断し、全てのパスの処理が完了するまでＳ６−１２〜Ｓ６−１７の処理を繰り返す。すべてのパスについて判断がなされたら、Ｓ６−１９でＦＦ間のタイミングの厳格度あるいはタイミング収束の難易度に応じて決定された分岐の程度、すなわちこの例では分岐の割合（共通経路の割合）に基づいてクロックツリーを作成する。
【００３９】
この手法によっても、ＦＦ間のタイミング制約を考慮した収束性にすぐれたクロックツリーを構成することができる。
【００４０】
図８は、一実施形態によるレイアウト装置の機能ブロック図である。レイアウト装置１０は、情報読込部１１、セル配置処理部１２、タイミング最適化部１３、記憶領域１５、タイミング制約判断部１６、クロックツリー構築部１７、回路最適化処理部１８、信号配線処理部１９を有する。
【００４１】
情報読込部１１は、たとえば外部のデータベース（不図示）等からデザインルール、ライブラリ、ネットリスト、タイミング制約情報等を読み込む。セル配置処理部１２は、読み込まれた情報に基づいてセル配置処理を行う。タイミング最適化部１３は、配置処理がなされたセル配置における配線長や配線遅延量を最適化する。上述したように、この段階でのタイミング最適化はクロックツリー作成前の一般的な配線の遅延調整である。タイミング解析部１４は、タイミング最適化がなされたセル配置に対してタイミング解析を行なう。タイミング解析により、どのパスの遅延要件が厳しいか、どのパスにおいて要求されるタイミングとの差が大きいか等の情報が得られる。タイミング解析結果は、記憶領域１５に格納される。
【００４２】
タイミング制約判断部１６は、記憶領域１５からタイミング解析結果を読み出し、処理対象となる論理回路に含まれるすべてのＦＦに対して、各ＦＦ間のタイミングの厳格度あるいはタイミング収束の難易度を判断する。具体的な例として、タイミングスラックが一定期間よりも短いか否か、あるいはそのＦＦ間のパスがクリティカルパスとして指定されているか否か、等を例にとって説明してきたが、本発明はこのような判断基準に限定されるわけではなく、たとえば、回路構成上、設計者が指定しているパスを基準にしてもよい。
【００４３】
クロックツリー構築部１７は、すべてのＦＦ間のタイミング判断結果に基づき、ＦＦの配置状況やクロックツリーのバランスも考慮した上で、タイミングの厳しいＦＦ間で分岐が最小になるようにクロックツリーを構築する。
【００４４】
回路最適化処理部１８はクロックツリー後の回路の最適化を行なう。信号配線処理部１９は、上述した処理により生成された回路の物理的な配線レイアウトを生成する。
【００４５】
上述したタイミング制約判断部１６とクロックツリー構築部１７の処理は、ソフトウエアプログラムで実現してもよい。この場合、そのようなプログラムはレイアウト装置１０にインストールされて、レイアウト装置１０に、(a) セル配置に対して行われたタイミング解析結果を取得する処理、(b) タイミング解析結果に基づいて、各論理回路素子間のタイミングの厳格度あるいはタイミング収束の難易度を判別する処理、及び(c) タイミングの厳格度（タイミング収束の難易度）が所定のレベルを超えるパスを構成する論理回路素子間での分岐が少なくなるようにクロックツリーを生成する処理、を実行させる。
【００４６】
実際の半導体集積回路の製造工程では、レイアウト装置１０によって生成された配線レイアウトに基づいて、レイヤごとにマスクを作製し、マスクを用いて半導体基板上にトランジスタ、ビアコンタクト、上部配線、入出力線、各論理回路素子にクロック信号を供給するクロックツリー配線等を順次形成してウエハを製造する。ウエハをチップに切断し、チップを回路基板等に搭載してパッケージを組み立てる。
【００４７】
このようにして製造されたチップすなわち半導体集積回路は、複数の論理回路素子（ＦＦ）と、これらの論理回路素子にクロック信号を分配するクロックツリー配線を含む。この場合、クロックツリー配線は、各ＦＦ間におけるタイミング収束の難易度に応じてツリーが分岐する程度（割合）が決定されているので、ばらつき耐性に優れている。具体的には、図６のように、タイミング制約が厳しいＦＦ１とＦＦ８、ＦＦ２とＦＦ７のような素子間では、分岐の数を極力減らして共通経路部分が多くなるように配線されている。そのため、０．１８μｍ以降のデザインルールでも半導体集積回路のタイミング収束を向上させ、回路性能と動作の正確さを維持することが可能になる。
【００４８】
以上、本発明を特定の実施例に基づいて説明してきたが、タイミング制約の厳しい論理回路素子間ではツリーの分岐を極力減らすという基本的な技術思想の範囲内において、適宜変形、変更をなし得ることは明らかである。
【符号の説明】
【００４９】
１０  レイアウト装置
１１  情報読込部
１２  セル配置処理部
１３  タイミング最適化部
１４  タイミング解析部
１５  記憶領域
１６  タイミング制約判断部
１７  クロックツリー構築部
１８  回路最適化処理部
１９  信号配線処理部
【先行技術文献】
【特許文献】
【００５０】
【特許文献１】特開２００９−１８７１０４
【図１】
0005696407.tif 000002
【図２】
0005696407.tif 000003
【図３】
0005696407.tif 000004
【図４】
0005696407.tif 000005
【図５】
0005696407.tif 000006
【図６】
0005696407.tif 000007
【図７】
0005696407.tif 000008
【図８】
0005696407.tif 000009