(57)【特許請求の範囲】
【請求項１】
始点Ｆ／Ｆ終点Ｆ／Ｆリストを記憶部に抽出し、始点Ｆ／Ｆ及び終点Ｆ／Ｆへ接続する最終段クロックドライバの候補を検索して選択し前記記憶部に格納する始終点Ｆ／Ｆ処理部と、最終段クロックドライバ間クロックスキューを前記記憶部に抽出し、前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆへ接続する前記最終段クロックドライバ候補の組み合わせから、前記最終段クロックドライバ間クロックスキューが最小になる前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆに接続する前記最終段クロックドライバを選択して前記記憶部に格納するクロックスキュー処理部と、を備えることを特徴とするクロック配線処理装置。
【請求項２】
前記始終点Ｆ／Ｆ処理部は、前記始点Ｆ／Ｆへ接続する前記最終段クロックドライバの候補を選択し、前記記憶部に格納する始点Ｆ／Ｆ処理部と、前記終点Ｆ／Ｆへ接続する前記最終段クロックドライバの候補を選択し、前記記憶部に格納する終点Ｆ／Ｆ処理部と、を備えることを特徴とする請求項１記載のクロック配線処理装置。
【請求項３】
前記始点Ｆ／Ｆ処理部は、前記始点Ｆ／Ｆがクロック供給可能基本範囲に存在するときに、前記クロック供給可能基本範囲に対応する前記最終段クロックドライバを前記始点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納し、前記始点Ｆ／Ｆがクロック供給可能隣接範囲に存在するときに、前記クロック供給可能隣接範囲に対応するすべての前記最終段クロックドライバを前記始点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納し、
前記終点Ｆ／Ｆ処理部は、前記終点Ｆ／Ｆが前記クロック供給可能基本範囲に存在するときに、前記クロック供給可能基本範囲に対応する前記最終段クロックドライバを前記終点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納し、前記終点Ｆ／Ｆがクロック供給可能隣接範囲に存在するときに、前記クロック供給可能隣接範囲に対応するすべての前記最終段クロックドライバを前記終点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納することを特徴とする請求項２記載のクロック配線処理装置。
【請求項４】
前記始点Ｆ／Ｆ終点Ｆ／Ｆリストを格納する始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベースと、前記最終段クロックドライバ間クロックスキューを格納する最終段クロックドライバ間クロックスキューデータベースと、を備えることを特徴とする請求項３記載のクロック配線処理装置。
【請求項５】
前記始点Ｆ／Ｆから前記終点Ｆ／Ｆへのパスの遅延時間順にソートされた前記始点Ｆ／Ｆ終点Ｆ／Ｆリストからパスの遅延時間が大きい順に、前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆを抽出する前記始終点Ｆ／Ｆ処理部と、を備えることを特徴とする請求項１乃至請求項４のいずれかに記載のクロック配線処理装置。
【請求項６】
最終段クロックドライバから始点Ｆ／Ｆ及び終点Ｆ／Ｆに接続するクロック配線処理方法であって、
始点Ｆ／Ｆ終点Ｆ／Ｆリストを記憶部に抽出し、始点Ｆ／Ｆ及び終点Ｆ／Ｆへ接続する最終段クロックドライバの候補を検索して選択し前記記憶部に格納する始終点Ｆ／Ｆ処理ステップと、最終段クロックドライバ間クロックスキューを前記記憶部に抽出し、前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆへ接続する前記最終段クロックドライバ候補の組み合わせから、前記最終段クロックドライバ間クロックスキューが最小になる前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆに接続する前記最終段クロックドライバを選択して前記記憶部に格納するクロックスキュー選択処理ステップと、を含むことを特徴とするクロック配線処理方法。
【請求項７】
前記始終点Ｆ／Ｆ処理ステップは、前記始点Ｆ／Ｆへ接続する前記最終段クロックドライバの候補を選択し、前記記憶部に格納する始点Ｆ／Ｆ処理ステップと、前記終点Ｆ／Ｆへ接続する前記最終段クロックドライバの候補を選択し、前記記憶部に格納する終点Ｆ／Ｆ処理ステップと、を含むことを特徴とする請求項６記載のクロック配線処理方法。
【請求項８】
前記始点Ｆ／Ｆ処理ステップは、前記始点Ｆ／Ｆがクロック供給可能基本範囲に存在するときに、前記クロック供給可能基本範囲に対応する前記最終段クロックドライバを前記始点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納し、前記始点Ｆ／Ｆがクロック供給可能隣接範囲に存在するときに、前記クロック供給可能隣接範囲に対応するすべての前記最終段クロックドライバを前記始点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納し、前記終点Ｆ／Ｆ処理ステップは、前記終点Ｆ／Ｆが前記クロック供給可能基本範囲に存在するときに、前記クロック供給可能基本範囲に対応する前記最終段クロックドライバを前記終点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納し、前記終点Ｆ／Ｆがクロック供給可能隣接範囲に存在するときに、前記クロック供給可能隣接範囲に対応するすべての前記最終段クロックドライバを前記終点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納することを特徴とする請求項７記載のクロック配線処理方法。
【請求項９】
前記始点Ｆ／Ｆ終点Ｆ／Ｆリストを始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベースに格納するステップと、前記最終段クロックドライバ間クロックスキューを最終段クロックドライバ間クロックスキューデータベース格納するステップと、を含むことを特徴とする請求項８記載のクロック配線処理方法。
【請求項１０】
前記始点Ｆ／Ｆから前記終点Ｆ／Ｆへのパスの遅延時間順にソートされた前記始点Ｆ／Ｆ終点Ｆ／Ｆリストからパスの遅延時間が大きい順に、前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆを抽出する前記始終点Ｆ／Ｆ処理ステップと、を含むことを特徴とする請求項６乃至請求項９のいずれかに記載のクロック配線処理方法。
【請求項１１】
最終段クロックドライバから始点Ｆ／Ｆ及び終点Ｆ／Ｆに接続するプログラムであって、
始点Ｆ／Ｆ終点Ｆ／Ｆリストを記憶部に抽出し、始点Ｆ／Ｆ及び終点Ｆ／Ｆへ接続する最終段クロックドライバの候補を検索して選択し前記記憶部に格納する始終点Ｆ／Ｆ処理と、最終段クロックドライバ間クロックスキューを前記記憶部に抽出し、前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆへ接続する前記最終段クロックドライバ候補の組み合わせから、前記最終段クロックドライバ間クロックスキューが最小になる前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆに接続する前記最終段クロックドライバを選択して前記記憶部に格納するクロックスキュー処理と、をコンピュータに実行させることを特徴とするプログラム。
【請求項１２】
前記始終点Ｆ／Ｆ処理は、前記始点Ｆ／Ｆへ接続する前記最終段クロックドライバの候補を選択し、前記記憶部に格納する始点Ｆ／Ｆ処理と、前記終点Ｆ／Ｆへ接続する前記最終段クロックドライバの候補を選択し、前記記憶部に格納する終点Ｆ／Ｆ処理と、を含むことを特徴とする請求項１１記載のプログラム。
【請求項１３】
前記始点Ｆ／Ｆ処理は、前記始点Ｆ／Ｆがクロック供給可能基本範囲に存在するときに、前記クロック供給可能基本範囲に対応する前記最終段クロックドライバを前記始点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納し、前記始点Ｆ／Ｆがクロック供給可能隣接範囲に存在するときに、前記クロック供給可能隣接範囲に対応するすべての前記最終段クロックドライバを前記始点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納し、
前記終点Ｆ／Ｆ処理は、前記終点Ｆ／Ｆが前記クロック供給可能基本範囲に存在するときに、前記クロック供給可能基本範囲に対応する前記最終段クロックドライバを前記終点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納し、前記終点Ｆ／Ｆがクロック供給可能隣接範囲に存在するときに、前記クロック供給可能隣接範囲に対応するすべての前記最終段クロックドライバを前記終点Ｆ／Ｆに接続する前記最終段クロックドライバの候補として選択して、前記記憶部に格納することを特徴とする請求項１２記載のプログラム。
【請求項１４】
前記始点Ｆ／Ｆ終点Ｆ／Ｆリストを始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベースに格納する処理と、前記最終段クロックドライバ間クロックスキューを最終段クロックドライバ間クロックスキューデータベース格納する処理と、をコンピュータに実行させることを特徴とする請求項１３記載のプログラム。
【請求項１５】
前記始点Ｆ／Ｆから前記終点Ｆ／Ｆへのパスの遅延時間順にソートされた前記始点Ｆ／Ｆ終点Ｆ／Ｆリストからパスの遅延時間が大きい順に、前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆを抽出する前記始終点Ｆ／Ｆ処理、をコンピュータに実行させることを特徴とする請求項１１乃至請求項１４のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック配線処理装置、クロック配線処理方法、及びプログラムに関し、特に最終段クロックドライバからフリップフロップへ配線を行うクロック配線処理装置、クロック配線処理方法、及びプログラムに関する。
【背景技術】
【０００２】
クロック配線処理に関する例が特許文献１に記載されている。特許文献１記載の技術は、クロック分配系をクロック供給先の末端回路に向かって枝分かれするツリー状とし、各段バッファ回路間の配線が等長かつ等容量になるように、各段のバッファ回路のファンアウト数を同一にする構成である。しかし、特許文献１記載の技術は、パスの始点Ｆ／Ｆ終点Ｆ／Ｆ間の遅延時間、及びそのＦ／Ｆ間の遅延時間に影響を与える最終段クロックドライバ間のクロックスキューについての記載がない。
【０００３】
特許文献２記載の技術は、メインクロックバッファからクロック信号をＨ形ツリー状に繰り返し配線する構成であるが、パスの始点Ｆ／Ｆ終点Ｆ／Ｆ間の遅延時間、及びそのＦ／Ｆ間の遅延時間に影響を与える最終段クロックドライバ間のクロックスキューについての記載がない。
【０００４】
【特許文献１】特開平５−１５９０８０号公報
【特許文献２】特開平７−８６４１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１及び特許文献２の技術は、パス始点Ｆ／Ｆ終点Ｆ／Ｆ間の遅延および、そのＦ／Ｆ間遅延に影響を与えるクロックスキューについての考慮がされていない。そのため、パス始点Ｆ／Ｆ終点Ｆ／Ｆ間の遅延を最小化することができないという問題がある。
【０００６】
本発明の目的は、上記問題を解決するクロック配線処理装置、クロック配線処理方法、プログラムを提供することである。
【課題を解決するための手段】
【０００７】
本発明のクロック配線処理装置は、始点Ｆ／Ｆ終点Ｆ／Ｆリストを記憶部に抽出し、始点Ｆ／Ｆ及び終点Ｆ／Ｆへ接続する最終段クロックドライバの候補を検索して選択し前記記憶部に格納する始終点Ｆ／Ｆ処理部と、最終段クロックドライバ間クロックスキューを前記記憶部に抽出し、前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆへ接続する前記最終段クロックドライバ候補の組み合わせから、前記最終段クロックドライバ間クロックスキューが最小になる前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆに接続する前記最終段クロックドライバを選択して前記記憶部に格納するクロックスキュー処理部と、を備えることを特徴とする。
【０００８】
本発明のクロック配線処理方法は、最終段クロックドライバから始点Ｆ／Ｆ及び終点Ｆ／Ｆに接続するクロック配線処理方法であって、
始点Ｆ／Ｆ終点Ｆ／Ｆリストを記憶部に抽出し、始点Ｆ／Ｆ及び終点Ｆ／Ｆへ接続する最終段クロックドライバの候補を検索して選択し前記記憶部に格納する始終点Ｆ／Ｆ処理ステップと、最終段クロックドライバ間クロックスキューを前記記憶部に抽出し、前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆへ接続する前記最終段クロックドライバ候補の組み合わせから、前記最終段クロックドライバ間クロックスキューが最小になる前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆに接続する前記最終段クロックドライバを選択して前記記憶部に格納するクロックスキュー処理ステップと、を含むことを特徴とする。
【０００９】
本発明のプログラムは、最終段クロックドライバから始点Ｆ／Ｆ及び終点Ｆ／Ｆに接続するプログラムであって、
始点Ｆ／Ｆ終点Ｆ／Ｆリストを記憶部に抽出し、始点Ｆ／Ｆ及び終点Ｆ／Ｆへ接続する最終段クロックドライバの候補を検索して選択し前記記憶部に格納する始終点Ｆ／Ｆ処理と、最終段クロックドライバ間クロックスキューを前記記憶部に抽出し、前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆへ接続する前記最終段クロックドライバ候補の組み合わせから、前記最終段クロックドライバ間クロックスキューが最小になる前記始点Ｆ／Ｆ及び前記終点Ｆ／Ｆに接続する前記最終段クロックドライバを選択して前記記憶部に格納するクロックスキュー処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１０】
本発明の効果は、パス始点Ｆ／Ｆ終点Ｆ／Ｆ間の遅延を最小化できることである。
【発明を実施するための最良の形態】
【００１１】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００１２】
図１は、本発明の第１の実施の形態であるクロック配線処理装置（１）１００の構成図である。
【００１３】
クロック配線処理装置（１）１００は、始終点Ｆ／Ｆ処理部１０１と、クロックスキュー処理部１０２から構成されている。
【００１４】
始終点Ｆ／Ｆ処理部１０１は、始点Ｆ／Ｆ（実際には、Ｆ／Ｆを一意に示す名称、または、識別子等）終点Ｆ／Ｆリストを記憶部（例えば、メモリ、ハードディスク、レジスタ）に抽出し、始点Ｆ／Ｆ及び終点Ｆ／Ｆに接続する最終段クロックドライバ（実際には、ドライバを一意に示す名称、または、識別子等）を検索し選択して、上述の記憶部に格納する。
【００１５】
次に、クロックスキュー処理部１０２は、最終段クロックドライバ間クロックスキューを上述の記憶部に抽出する。また、クロックスキュー処理部１０２は、始点Ｆ／Ｆ及び終点Ｆ／Ｆへ接続する最終段クロックドライバ候補の組み合わせから、最終段クロックドライバ間クロックスキューが最小になる始点Ｆ／Ｆ及び終点Ｆ／Ｆに接続する最終段クロックドライバを選択する。その後、クロックスキュー処理部１０２は、選択した最終段クロックドライバ（実際には、ドライバを一意に示す名称、または、識別子等）を上述の記憶部に格納する。
【００１６】
このため、本発明の第１の実施の形態であるクロック配線処理装置（１）１００は、パス始点Ｆ／Ｆ終点Ｆ／Ｆ間の遅延を最小化することができる。
【００１７】
その理由は、パス始点Ｆ／Ｆ終点Ｆ／Ｆ間の遅延および、そのＦ／Ｆ間遅延に影響を与えるクロックスキューについて考慮し、最終クロックドライバからパス始点Ｆ／Ｆ終点Ｆ／Ｆへのクロック配線を実施するような構成を採用したためである。
【００１８】
尚、始終点Ｆ／Ｆ処理部１０１とクロックスキュー処理部１０２は、ハードウェアで実現してもよいし、ソフトウェアで実現してもよい。
【００１９】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００２０】
以下、「Ｆ／Ｆを抽出」、「クロックドライバを候補として格納」、「Ｆ／Ｆを候補として格納」等は、実際には、「Ｆ／Ｆ、または、クロックドライバを一意に示す名称、または、識別子等を抽出、または、候補として格納」のことである。
【００２１】
ここで、ＬＳＩにおけるクロック信号を供給するクロック幹線の最終段ドライバからフリップフロップ（以下、Ｆ／Ｆという）へ接続する配線の接続方法について、以下に説明する。
【００２２】
まず、クロック幹線とその最終段ドライバの配置配線状況について、図１０を用いて説明する。
【００２３】
図１０は、Ｈ−Ｔｒｅｅ方式でＬＳＩの全面にクロック信号の幹線を供給した場合の一例を示している。
【００２４】
ＬＳＩ全面に供給されるクロック信号は、まず、ＬＳＩ中心部の初段のクロックドライバより、クロック幹線初段の配線により、初段のクロックドライバより等距離にある２個の２段目のクロックドライバに供給される。クロックドライバ２段目以降も、同様の方法で、後段のクロックドライバに、相似形を保ちながら、クロック信号が供給される。
【００２５】
図１１は、図１０に示したＨ−Ｔｒｅｅ方式によるクロック幹線をツリー状に表したものである。
【００２６】
尚、ここでは、Ｈ−Ｔｒｅｅ方式を例にして説明しているが、クロック幹線をあらかじめ作り込む方法であれば、碁盤の目状にクロック信号を配分するクロックメッシュ方式、魚の骨状にクロック信号を配分するＦｉｓｈｂｏｎｅ方式でも同様である。
【００２７】
図１０では、ＬＳＩを１６分割した各エリアに存在する４つの最終段クロックドライバまでは、相似形を保ちつつ、クロック幹線を構成している。
【００２８】
各段のクロックドライバは、同一の駆動能力を持つドライバを使用し、配線長や負荷を揃える。これにより、クロックドライバ初段より分配されたクロックの最終段クロックドライバに到達するまでの遅延時間は、製造ばらつき、もしくは配線の差による微少な差のみ異なり、ほぼ同一の値となる。
【００２９】
上記に示すように、クロック幹線をあらかじめ作りこんだ後、部品（以下、インスタンスという）の配置を行い、インスタンス間の配線を行った後に、Ｆ／Ｆに対するクロック信号を供給するために、クロック幹線からＦ／Ｆのクロック入力ピンへ配線しなければならない。
【００３０】
Ｆ／Ｆの配置完了後、クロックを供給する幹線の末端である最終段クロックドライバからＦ／Ｆへ配線する。
【００３１】
以下に、この最終段クロックドライバからＦ／Ｆへ自動配線する方法を詳細に説明する。
【００３２】
図１２は、クロック幹線をあらかじめ作り込み、インスタンスを配置した後の、最終段クロックドライバの近傍での最終段クロックドライバとＦ／Ｆのみを記載した図である。
【００３３】
ある最終段クロックドライバ４０１と最終段クロックドライバ４０２の近傍に、Ｆ／Ｆ５１１からＦ／Ｆ５１７までの７つのＦ／Ｆが、存在すると想定されている。
【００３４】
これら７つのＦ／Ｆは、最終段クロックドライバ４０１からクロックを供給することが可能なエリアであるクロック供給可能範囲６２１と、最終段クロックドライバ４０２からクロックを供給することが可能なエリアであるクロック供給可能範囲６２２のエリア内に存在する。
【００３５】
このクロックを供給することが可能なクロック供給可能範囲は、最終段クロックドライバからＦ／Ｆまでの遅延時間のばらつきを、どれだけ許容するかによって決められる。例えば、最終段クロックドライバ４０１からＦ／Ｆ５１１間の配線長と、最終段クロックドライバ４０１からＦ／Ｆ５１７間の配線長は後者の方が長くなるため、遅延時間も後者の方が長くなり、ばらつきが大きくなる。そのため、クロック供給可能な範囲は、ある最終段クロックドライバを中心として一定の範囲内に限られている。
【００３６】
図１３に示すように、クロック供給可能範囲６２２は、クロック供給可能基本範囲６２３とクロック供給可能隣接範囲６２４とから構成されている。クロック供給可能基本範囲６２３は、図１３のドットエリアで示すように、最終段クロックドライバ４０２を中心として、一定の範囲に限られている。また、クロック供給可能隣接範囲６２４は、図１３の斜線エリアで示すように、このクロック供給可能基本範囲の外側に隣接している。
【００３７】
クロック供給可能隣接範囲６２４は、クロック供給可能範囲６２１とクロック供給可能範囲６２２の一部が重複している（図１３では、左右の隣接クロック可能範囲の重複を記載しているが、上下の隣接クロック可能範囲も同様に重複している）。
【００３８】
この重複している理由は、以下の通りである。
【００３９】
インスタンスの配置後の状態として、ある最終段クロックドライバの近傍にはＦ／Ｆが大量に存在し、ある最終段クロックドライバの近傍にはＦ／Ｆが僅かしか存在しないという場合があり得る。その場合、大量にＦ／Ｆが存在する箇所では、最終段クロックドライバが駆動するＦ／Ｆの数が増え、負荷容量の増加による最終段クロックドライバからＦ／Ｆまでの遅延時間が悪化する。また、僅かなＦ／Ｆしか存在しない箇所では、最終段クロックドライバが駆動するＦ／Ｆの負荷容量は少なく、遅延時間は大きく悪化しない。このような最終段クロックドライバからＦ／Ｆへの遅延時間のばらつきを調整するために、最終段クロックドライバが駆動するＦ／Ｆ数を均一にすることを目的として、クロック供給可能範囲は重複している。
【００４０】
図１４は、最終段クロックドライバからＦ／Ｆにクロックを供給する自動配線処理のフローチャートである。
【００４１】
図１４のフローチャートを参照すると、まず、最終段クロックドライバのクロック供給可能基本範囲に存在するＦ／Ｆは、その最終段クロックドライバに接続される。従って、図１２に示すクロック供給可能基本範囲６２３内にあるＦ／Ｆ５１１とＦ／Ｆ５１２は、最終段クロックドライバ４０１に接続される。
【００４２】
また、クロック供給可能基本範囲６２３内にあるＦ／Ｆ５１６とＦ／Ｆ５１７は、最終段クロックドライバ４０２に接続される（ステップＳ５０）。
【００４３】
次に、最終段クロックドライバのクロック供給可能隣接範囲に存在するＦ／Ｆは、隣接する最終段クロックドライバがドライブするＦ／Ｆ数が均等になるように、距離の最も近い最終段クロックドライバに接続される。したがって、図１２に示すクロック供給可能隣接範囲内にあるＦ／Ｆ５１３，５１４，５３２の接続先が決まる。隣接する最終段クロックドライバの駆動するＦ／Ｆ数は共に２つであるため、隣接する最終段クロックのドライブするＦ／Ｆが均等になるように、３つのＦ／Ｆ中２つが、最終段クロックドライバ４０１と最終段クロックドライバ４０２に各々１つ接続される。また、Ｆ／Ｆ５１３は、距離の近い最終段クロックドライバ４０１に、Ｆ／Ｆ５３２は距離の近い最終段クロックドライバ４０２に接続される（ステップＳ５１）。
【００４４】
最後に、全工程で接続する最終段クロックドライバが決定できなかったＦ／Ｆは、距離の最も近い最終段クロックドライバに接続される。従って、図１２に示すＦ／Ｆ５１４の接続が決まる。Ｆ／Ｆ５１４は、距離の最も近い最終段クロックドライバ４０２に接続される（ステップＳ５２）。
【００４５】
図１５は、図１４に示すフローチャートにより行われた最終段クロックドライバからＦ／Ｆまでの配線接続後の状態である。
【００４６】
次に、上記に記載したクロック幹線の最終段ドライバからＦ／Ｆへ接続する配線の接続方法の課題について、以下に詳細に説明する。
【００４７】
まず、Ｆ／Ｆ間パスの始終点Ｆ／Ｆに接続される最終段クロックドライバの関係から生じる最終段クロックドライバ間クロックスキューについて、説明する。
【００４８】
最終段クロックドライバ間クロックスキューは、クロック幹線を作りこんだときに、クロック幹線経路上のクロックドライバの製造ばらつきによる回路遅延時間の差、および配線遅延時間の製造ばらつきと、クロック配線による配線遅延時間の差によって生じる。
【００４９】
例えば、図１０に示すようなＨ−Ｔｒｅｅ構造を採り、図１１に示すようにクロックドライバ初段から全最終段クロックドライバまでの関係が等しくなる構造を採ったとしても、その経路が異なれば、最終段クロックドライバ間でクロックスキューが生じる。
【００５０】
また、経路が同一の箇所では、クロックスキューは生じないため、最終段クロックドライバまでの経路に同一箇所が多ければ、クロックスキューの差は小さく、同一箇所が少なくなればクロックスキューは大きくなる。
【００５１】
図１６を用いて、ある最終段クロックドライバに着目した場合の最終段クロックドライバ間クロックスキューについて説明する。
【００５２】
同一のクロックドライバ５段目からクロックを供給される最終段クロックドライバを１つのグループとして考え、左から７番目の最終段クロックドライバのグループをグループＡとする。
【００５３】
グループＡの最終段クロックドライバに対し、グループＢの最終段クロックドライバはクロックドライバ４段目までの経路が同一であるため、クロックスキューはクロックドライバ５段目以降の遅延時間の差だけ生じる。
【００５４】
グループＡの最終段クロックドライバに対し、グループＣの最終段クロックドライバとのクロックスキューはクロックドライバ４段目以降の遅延の差で発生する。そのため、グループＡとグループＢ間のクロックスキューＳＫＥＷ−ＡＢに対し、グループＡとグループＣ間のクロックスキューＳＫＥＷ−ＡＣはＳＫＥＷ−ＡＢより大きくなる。
【００５５】
同様に、グループＡに対するそれぞれのグループ間のクロックスキュー関係は、
ＳＫＥＷ−ＡＥ  ＞  ＳＫＥＷ−ＡＤ  ＞  ＳＫＥＷ−ＡＣ  ＞  ＳＫＥＷ−ＡＢ
となる。
【００５６】
図１７は、最終段クロックドライバ、及びＦ／Ｆ間パスの１例を示す。
【００５７】
クロック接続前にパスの遅延時間の見積もりを行い、遅延時間が長いパスＸが存在したと想定する。また、パスＸの始点Ｆ／ＦであるＦ／Ｆ５３１は、グループＡの最終段クロックドライバからクロックが供給可能であり、パスＸの終点Ｆ／ＦであるＦ／Ｆ５３２は、グループＢとグループＥの最終段クロックドライバからクロックが供給可能であると想定している。
【００５８】
パスＸの遅延時間が長く、ＳＫＥＷ−ＡＢはＳＫＥＷ−ＡＥより小さいので、このようなケースでは、パスの遅延時間＋ＳＫＥＷ−ＡＥが１クロックを越えてしまうこともあるので、Ｆ／Ｆ５３２にはグループＢの最終段クロックドライバよりクロックを供給すべきである。しかし、図１４のフローチャートに示す最終段クロックドライバからＦ／Ｆへの自動配線処理方法では、図１８のように、図１７に示すＦ／Ｆ５３２がグループＥの最終段クロックドライバからクロックが供給される可能性があり、Ｆ／Ｆ５３２にはグループＢの最終段クロックドライバよりクロックを供給することはできない。
【００５９】
従って、図１４のフローチャートに示す自動配線処理方法では、Ｆ／Ｆ間パスの遅延時間を考慮していないため、パス始点Ｆ／Ｆ終点Ｆ／Ｆ間の遅延を最小化することができないという問題がある。
【００６０】
次に、上記の課題を解決するための本発明の第２の実施の形態であるクロック配線処理装置（２）２００について、以下に説明する。
【００６１】
図２は、本発明の第２の実施の形態であるクロック配線処理装置（２）２００の構成図である。
【００６２】
クロック配線処理装置（２）２００は、Ｈ−Ｔｒｅｅ方式、クロックメッシュ方式、またはＦｉｓｈｂｏｎｅ方式等でクロック幹線をあらかじめ作り込んだ後に、最終段クロックドライバから始終点Ｆ／Ｆへクロック信号を配線する装置である。
【００６３】
クロック配線処理装置（２）２００は、記憶部２０１、クロック配線処理部２０２、始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベース２１０、Ｆ／Ｆ最終段クロックドライバクロック供給可能範囲データベース２１１、最終段クロックドライバ間クロックスキューデータベース２１２、及び入出力処理部２１３から構成されている。
【００６４】
ここで、クロック配線処理部２０２は、データ処理部２０３、始終点Ｆ／Ｆ処理部１０１、クロックスキュー処理部１０２から構成されている。
【００６５】
また、始終点Ｆ／Ｆ処理部１０１は、始点Ｆ／Ｆ処理部１０１０、及び終点Ｆ／Ｆ処理部１０１１から構成されている。
尚、各部は、プログラムで記述され、記憶部２０１に格納され、プロセッサがプログラムを読み出し、実行することにより、各部が実現される構成でもよい。
【００６６】
記憶部２０１は、情報及び処理結果を格納する記憶装置である。入出力処理部２１３は、データの入出力処理を行う。
【００６７】
データ処理部２０３は、クロック配線処理装置（２）２００の全体の処理を実行する。
【００６８】
始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベース２１０は、遅延時間順にソートされたパスの始点Ｆ／Ｆ終点Ｆ／Ｆリストを格納する。
【００６９】
始点Ｆ／Ｆ処理部１０１０は、始点Ｆ／Ｆがクロック供給可能基本範囲に存在する場合に、クロック供給可能基本範囲に対応する最終段クロックドライバを始点Ｆ／Ｆに接続する最終段クロックドライバの候補として選択する。始点Ｆ／Ｆ処理部１０１０は、始点Ｆ／Ｆがクロック供給可能隣接範囲に存在する場合に、クロック供給可能隣接範囲に対応するすべての最終段クロックドライバを始点Ｆ／Ｆに接続する最終段クロックドライバの候補として選択する。
【００７０】
また、終点Ｆ／Ｆ処理部１０１１は、終点Ｆ／Ｆがクロック供給可能基本範囲に存在する場合に、クロック供給可能基本範囲に対応する最終段クロックドライバを終点Ｆ／Ｆに接続する最終段クロックドライバの候補として選択する。終点Ｆ／Ｆ処理部１０１１は、終点Ｆ／Ｆがクロック供給可能隣接範囲に存在する場合に、クロック供給可能隣接範囲に対応するすべての最終段クロックドライバを終点Ｆ／Ｆに接続する最終段クロックドライバの候補として選択する。
【００７１】
クロックスキュー処理部１０２は、最終段クロックドライバ間クロックスキューを記憶部２０１に抽出する。また、クロックスキュー処理部１０２は、始点Ｆ／Ｆ及び終点Ｆ／Ｆへ接続する最終段クロックドライバ候補の組み合わせから、最終段クロックドライバ間クロックスキューが最小になる始点Ｆ／Ｆ及び終点Ｆ／Ｆに接続する最終段クロックドライバを選択する。その後、クロックスキュー処理部１０２は、選択された最終段クロックドライバを記憶部２０１に格納する。
【００７２】
図３は、始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベース２１０の１例を示す図である。
パスの遅延時間が大きい順に、パスの始点Ｆ／Ｆ、終点Ｆ／Ｆ、及びパス遅延時間が示されている。パスの遅延時間が１番目、２番目、３番目、ｎ番目に大きいパスに対応して、（Ｆ／Ｆ５３１、Ｆ／Ｆ５３２、２．３５ｎＳ）、（Ｆ／ＦＳ２、Ｆ／ＦＥ２、Ｄ２ｎＳ）、（Ｆ／ＦＳ３、Ｆ／ＦＥ３、Ｄ３ｎＳ）、及び（Ｆ／ＦＳｎ、Ｆ／ＦＥｎ、ＤｎｎＳ）が示されている。
【００７３】
図４は、各Ｆ／Ｆがどの最終段クロックドライバのクロック供給可能範囲に存在するかを示すデータベースの図１５での１例を示す図である。
【００７４】
例えば、Ｆ／Ｆ５１１は、最終段クロックドライバ４０１のクロック供給可能基本範囲に存在する。Ｆ／Ｆ５１３は、最終段クロックドライバ４０１、４０２のクロック供給可能隣接範囲に存在する。
【００７５】
図５は、最終段クロックドライバ間クロックスキューデータベース２１２の１例を示す図である。図１６に示す最終段クロックドライバの構成に対応して、最終段クロックドライバのグループＡ、グループＢ、グループＣ、グループＤ、グループＥ間のそれぞれの組のクロックスキューの１例を示している。グループＡとグループＢのクロックスキューとしてＳＫＥＷ−ＡＢ（０．１ｎＳ）、グループＡとグループＣのクロックスキューとしてＳＫＥＷ−ＡＣ、グループＡとグループＤのクロックスキューとしてＳＫＥＷ−ＡＤ、グループＡとグループＥのクロックスキューとしてＳＫＥＷ−ＡＥ（０．３ｎＳ）、及びグループＸとグループＹのクロックスキューとしてＳＫＥＷ−ＸＹが示されている。
【００７６】
図６は、記憶部２０１に格納された最終段クロックドライバ候補データの１例を示す図であり、始点Ｆ／Ｆ、最終段クロックドライバ候補、終点Ｆ／Ｆ、及び最終段クロックドライバ候補が示されている。パスの遅延時間が１番目、２番目、３番目、ｎ番目に大きいパスに対応して、（Ｆ／Ｆ５３１、グループＡ、Ｆ／Ｆ５３２、グループＢ、グループＥ）、（Ｆ／ＦＳ２、グループＸ２、Ｆ／ＦＥ２、グループＹ２）、（Ｆ／ＦＳ３、グループＸ３、Ｆ／ＦＥ３、グループＹ３）、及び（Ｆ／ＦＳｎ、グループＸｎ、Ｆ／ＦＥｎ、グループＹｎ）が示されている。
【００７７】
図７は、最終段クロックドライバからＦ／Ｆへクロック配線を実施するときの始点Ｆ／Ｆ終点Ｆ／Ｆの配置状態の１例を示す図である。
【００７８】
図８は、最終段クロックドライバからＦ／Ｆへクロック配線を実施した配線結果の１例を示す図である。
【００７９】
図９は、本発明の第２の実施の形態であるクロック配線処理装置（２）２００の動作を示すフローチャートである。
【００８０】
次に、以上のような構成のクロック配線処理装置（２）２００の動作について、図９のフローチャートに基づいて、図７に示すＦ／Ｆの配置状態を例にして説明する。
【００８１】
まず、図７に示すＦ／Ｆの配置状態を説明すると、インスタンスの自動配置後における遅延時間の最も長いパスＸ７４１の始点Ｆ／Ｆ５３１は、グループＡ最終段クロックドライバ４１３のクロック供給可能基本範囲６２３内に存在すると想定している。
【００８２】
パスＸ７４１の終点Ｆ／Ｆ５３２は、グループＢ最終段クロックドライバ４１１のクロック供給可能範囲６２１と、グループＥ最終段クロックドライバ４１２のクロック供給可能範囲６２２とが重複するクロック供給可能隣接範囲６２４内に存在すると想定している。
【００８３】
図９を参照すると、まず、データ処理部２０３は、入出力処理部２１３から入力された遅延時間順にソートされたパスの始点Ｆ／Ｆ終点Ｆ／Ｆリストを始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベース２１０に格納する（ステップＳ１０）。この遅延時間順にソートされたパスの始点Ｆ／Ｆ終点Ｆ／Ｆリストは、遅延時間の見積もり結果から求められる。この遅延見積もり結果は、例えば、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）と遅延時間制約（クロックの値）を与えて、Ｆ／Ｆの配置、組み合わせ回路の発生と最適化を実施するタイミングドリブン配置を行った結果から得られる。この遅延見積もり結果は、遅延時間が長い順にソートされ最も遅延時間が長いものから順に、最終段クロックドライバからＦ／Ｆへの接続を行う対象となる。図３は、この始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベース２１０の１例を示している。
【００８４】
また、データ処理部２０３は、入出力処理部２１３から入力された各Ｆ／Ｆがどの最終段クロックドライバのクロック供給可能範囲に存在するかのデータをＦ／Ｆ最終段クロックドライバクロック供給可能範囲データベース２１１に格納する（ステップＳ１１）。
【００８５】
次に、データ処理部２０３は、入出力処理部２１３から入力された最終段クロックドライバ間のクロックスキューを含むリストを最終段クロックドライバ間クロックスキューデータベース２１２に格納する（ステップＳ１２）。最終段クロックドライバ間のクロックスキューは、作りこんだクロック幹線の構造から見積もったクロックスキュー値から作成する。図５は、この最終段クロックドライバ間クロックスキューデータベース２１２の１例を示している。
【００８６】
次に、データ処理部２０３は、始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベース２１０から処理が終了していない最も遅延時間の長いＦ／Ｆ間パスの始点Ｆ／Ｆ、終点Ｆ／Ｆを読み出し、記憶部２０１に抽出する（ステップＳ１３）。この抽出結果に基づいて、データ処理部２０３は、まず始点Ｆ／Ｆから処理を始める。
【００８７】
データ処理部２０３は、図３に示す始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベース２１０から、処理が終了していない最も遅延時間の長いＦ／Ｆ間パスの始点Ｆ／Ｆ、終点Ｆ／Ｆを抽出し、始点Ｆ／ＦとしてＦ／Ｆ５３１が、終点Ｆ／ＦがＦ／Ｆ５３２が処理の対象であると判断する。
【００８８】
また、データ処理部２０３は、最終段クロックドライバ間のクロックスキューを最終段クロックドライバ間クロックスキューデータベース２１２から読み出し記憶部２０１に格納する（ステップＳ１４）。
【００８９】
次に、データ処理部２０３は、始点Ｆ／Ｆへのクロック接続が接続済みか否かをチェックする（ステップＳ１５）。このチェックを行う理由は、図９に示すフローチャートのループ箇所を繰り返したときに、あるパスの始点Ｆ／Ｆが別のパスの終点Ｆ／Ｆであるため、既にクロックが接続されている可能性があるためである。図７に示す例で説明すると、データ処理部２０３は、始点Ｆ／Ｆ５３１に対して、クロックが配線済みか否かのチェックを行う（ステップＳ１５）。フローチャートのループ箇所の最初の処理であるため、まだクロックは接続されていない。
【００９０】
データ処理部２０３は、クロックが接続済みであるときは（ステップＳ１５／ＹＥＳ）、接続済みの最終段クロックドライバを候補とし、記憶部２０１に格納する（ステップＳ２０）。データ処理部２０３は、接続済みでない場合は（ステップＳ１５／ＮＯ）、ステップＳ３０に処理を引き継ぐ。
【００９１】
次に、始点Ｆ／Ｆ処理部１０１０は、Ｆ／Ｆ最終段クロックドライバクロック供給可能範囲データベース２１１を参照して、始点Ｆ／Ｆがクロック供給可能基本範囲に存在するか否かの判断を行う（ステップＳ３０）。
【００９２】
始点Ｆ／Ｆ処理部１０１０は、始点Ｆ／Ｆがクロック供給可能基本範囲に存在するときには（ステップＳ３０／ＹＥＳ）、クロック供給可能基本範囲に対応する最終段クロックドライバを始点Ｆ／Ｆに接続する最終段クロックドライバの候補とし、記憶部２０１に格納する（ステップＳ３１）。
【００９３】
また、始点Ｆ／Ｆ処理部１０１０は、始点Ｆ／Ｆがクロック供給可能隣接範囲に存在するときには（ステップＳ３０／ＮＯ）、クロック供給可能隣接範囲に対応するすべての最終段クロックドライバを始点Ｆ／Ｆに接続する最終段クロックドライバの候補とし、記憶部２０１に格納する（ステップＳ３２）。
【００９４】
図７に示す例で説明すると、始点Ｆ／Ｆ５３１にクロック供給可能な最終段クロックドライバを検索すると、始点Ｆ／Ｆ５３１がグループＡ最終段クロックドライバ４１３のクロック供給可能基本範囲６２３に存在しているので、終点Ｆ／Ｆ５３１に対するクロックを供給する最終段クロックドライバの候補は、グループＡ最終段クロックドライバ４１３となる。
【００９５】
次に、データ処理部２０３は、終点Ｆ／Ｆへのクロック接続が接続済みか否かをチェックする（ステップＳ２１）。データ処理部２０３は、始点Ｆ／Ｆと同様に、あるパスの終点Ｆ／Ｆが別のパスの始点Ｆ／Ｆであり、終点Ｆ／Ｆにクロックが接続済みであるか否かをチェックする。
【００９６】
図７の例で説明すると、終点Ｆ／Ｆ５３１に対してクロックが配線済みか否かのチェックを行う（ステップＳ２１）。フローチャートのループ箇所で最初の処理であるため、まだクロックは接続されていない。
【００９７】
データ処理部２０３は、クロックが接続済みであるときは（ステップＳ２１／ＹＥＳ）、接続済みの最終段クロックドライバを候補とし、記憶部２０１に格納する（ステップＳ２２）。データ処理部２０３は、接続済みでないときは（ステップＳ２１／ＮＯ）、ステップＳ３３に処理を引き継ぐ。
【００９８】
次に、終点Ｆ／Ｆ処理部１０１１は、Ｆ／Ｆ最終段クロックドライバクロック供給可能範囲データベース２１１を参照して、終点Ｆ／Ｆがクロック供給可能基本範囲に存在するか否かの判断を行う（ステップＳ３３）。
【００９９】
終点Ｆ／Ｆ処理部１０１１は、終点Ｆ／Ｆがクロック供給可能基本範囲に存在するときに（ステップＳ３３／ＹＥＳ）、クロック供給可能基本範囲に対応する最終段クロックドライバを終点Ｆ／Ｆに接続する最終段クロックドライバの候補とし、記憶部２０１に格納する（ステップＳ３４）。
【０１００】
また、終点Ｆ／Ｆ処理部１０１１は、終点Ｆ／Ｆがクロック供給可能隣接範囲に存在するときに（ステップＳ３３／ＮＯ）、クロック供給可能隣接範囲に対応するすべての最終段クロックドライバを終点Ｆ／Ｆに接続する最終段クロックドライバの候補とし、記憶部２０１に格納する（ステップＳ３５）。
【０１０１】
図７に示す例で説明すると、終点Ｆ／Ｆ５３２にクロック供給可能な最終段クロックドライバを検索すると、終点Ｆ／Ｆ５３２がグループＢ最終段クロックドライバ４１１とグループＥ最終段クロックドライバ４１２に重複しているクロック供給可能隣接範囲６２４に存在しているので、終点Ｆ／Ｆ５３２に対するクロックを供給する最終段クロックドライバの候補は、グループＢ最終段クロックドライバ４１１とグループＥ最終段クロックドライバ４１２となる。
【０１０２】
次に、データ処理部２０３は、既に始点Ｆ／Ｆと終点Ｆ／Ｆにクロックが接続済みかをチェックする（ステップＳ２３）。データ処理部２０３は、両Ｆ／Ｆともクロックが接続済みである場合は（ステップＳ２３／ＹＥＳ）、クロックの接続処理をスキップする。
【０１０３】
データ処理部２０３は、始点Ｆ／Ｆ、終点Ｆ／Ｆのどちらか、もしくは両Ｆ／Ｆともクロックが未接続である場合は（ステップＳ２３／ＮＯ）、クロック接続処理を行う。
【０１０４】
図７に示す例で説明すると、データ処理部２０３は、始点Ｆ／Ｆ、終点Ｆ／Ｆともクロック配線が行われていないため、ステップＳ２４の処理を行う。
【０１０５】
次に、データ処理部２０３は、これまでの処理により候補となった始点Ｆ／Ｆの最終段クロックドライバと終点Ｆ／Ｆの最終ドライバに対応する最終段クロックドライバ間クロックスキューを選択し、記憶部２０１に格納する（ステップＳ２４）。
【０１０６】
次に、クロックスキュー処理部１０２は、抽出された始点Ｆ／Ｆの最終段クロックドライバの候補と終点Ｆ／Ｆの最終段クロックドライバの候補の組み合わせごとの最終段クロックドライバ間スキューから、最小の最終段クロックドライバ間スキューを選ぶ。そして、クロックスキュー処理部１０２は、その最小の最終段クロックドライバ間スキューに対応する始点Ｆ／Ｆ、終点Ｆ／Ｆ最終段クロックドライバを始点Ｆ／Ｆ、終点Ｆ／Ｆに接続する最終段クロックドライバとして選択し、記憶部２０１に格納する（ステップＳ３６）。
【０１０７】
図７に示す例で説明すると、始点Ｆ／Ｆ５３１に対するクロックを供給する最終段クロックドライバの候補がグループＡ最終段クロックドライバ４１３であり、終点Ｆ／Ｆ５３２に対するクロックを供給する最終段クロックドライバの候補がグループＢ最終段クロックドライバ４１１と、グループＥ最終段クロックドライバ４１２である。このため、クロックスキュー処理部１０２は、グループＡ最終段クロックドライバ４１３とグループＢ最終段クロックドライバ４１１間のクロックスキューＳＫＥＷ−ＡＢと、グループＡ最終段クロックドライバ４１３とグループＥ最終段クロックドライバ４１２間のクロックスキューＳＫＥＷ−ＡＥを抽出する。
【０１０８】
次に、クロックスキュー処理部１０２は、図５に示すように、ＳＫＥＷ−ＡＢがＳＫＥＷ−ＡＥより小さいため、始点Ｆ／Ｆに対するクロックを供給する最終段クロックドライバとしてグループＡ最終段クロックドライバ４１３を選択する。また、クロックスキュー処理部１０２は、終点Ｆ／Ｆに対するクロックを供給する最終段クロックドライバとして、グループＢ最終段クロックドライバ４１１を選択する。
【０１０９】
その後、データ処理部２０３は、選択された始点Ｆ／Ｆ側の最終段クロックドライバと始点Ｆ／Ｆを接続し、選択された終点Ｆ／Ｆ側の最終段クロックドライバと終点Ｆ／Ｆを接続する（ステップＳ２５）。たとえば、データ処理部２０３は、「選択された始点Ｆ／Ｆ側の最終段クロックドライバの識別子と始点Ｆ／Ｆの識別子との組を示すデータ」、および、「選択された終点Ｆ／Ｆ側の最終段クロックドライバの識別子と終点Ｆ／Ｆの識別子との組を示すデータ」を記憶部２０１に格納する。
【０１１０】
図７に示す例で説明すると、データ処理部２０３は、Ｆ／Ｆ５３１に対してはグループＡ最終段クロックドライバ４１３から配線を接続し、Ｆ／Ｆ５３２に対してはグループＢ最終段クロックドライバ４１１から配線を接続する。
【０１１１】
次に、データ処理部２０３は、全始点Ｆ／Ｆ、終点Ｆ／Ｆのクロック接続が完了したかを判断する（ステップＳ２６）。全始点Ｆ／Ｆ、終点Ｆ／Ｆのクロック接続が完了していなければ（ステップＳ２６／ＮＯ）、ステップＳ１３に処理を引き継ぐ。
【０１１２】
図８は、以上のように、クロック配線を実施した配線結果の１例を示す図である。
【０１１３】
図８に示すクロック配線は、パスの遅延時間が長く、クロックスキューの小さくなる最終段クロックドライバからクロックを供給すべきケースで、クロックスキューの小さくなる最終段クロックドライバの組み合わせで、クロックをＦ／Ｆに接続している。
【０１１４】
ここで、図８、図１８において、
（１）  目標遅延時間が２．５ｎＳ
（２）  Ｆ／Ｆ３１からＦ／Ｆ３２の配線遅延時間、回路遅延時間、及びＦ／Ｆ３２のセットアップ時間の合計が２．３５ｎＳ（図３に示されている）
（３）  ＳＫＥＷ−ＡＢが０．１ｎＳ（図５に示されている）
（４）  ＳＫＥＷ−ＡＥが０．３ｎＳ（図５に示されている）であると想定する。
【０１１５】
Ｆ／Ｆ５３２に接続される最終段クロックバッファをグループＥとした図１８の場合、遅延時間は２．３５ｎＳ＋０．３ｎＳ＝２．６５ｎＳであり、目標の２．５ｎＳをオーバーする。図８の場合、Ｆ／Ｆ５３２に接続する最終段クロックバッファをグループＢと判断したので遅延時間は２．３５ｎＳ＋０．１ｎＳ＝２．４５ｎＳであり、目標の２．５ｎＳを満足できる。
【０１１６】
データ処理部２０３は、ここまでの処理の終了後、全始点Ｆ／Ｆ終点Ｆ／Ｆのクロック接続が完了したかをチェックする（ステップＳ２６）。データ処理部２０３は、未完了であれば次のＦ／Ｆ間パスについて上記処理を繰り返す（ステップＳ２６／ＮＯ）。データ処理部２０３は、全て完了済みであれば、自動接続処理は終了とする（ステップＳ２６／ＹＥＳ）。
【０１１７】
以上のように、本発明の第２の実施の形態であるクロック配線処理装置（２）２００は、パス始点Ｆ／Ｆ終点Ｆ／Ｆ間の遅延および、そのＦ／Ｆ間遅延に影響を与えるクロックスキューを考慮して、最終クロックドライバからパス始点Ｆ／Ｆ終点Ｆ／Ｆへのクロック配線を行うので、パス始点Ｆ／Ｆ終点Ｆ／Ｆ間の遅延を最小化できる効果を持つ。
【図面の簡単な説明】
【０１１８】
【図１】本発明の第１の実施の形態であるクロック配線処理装置（１）１００の構成図である。
【図２】本発明の第２の実施の形態であるクロック配線処理装置（２）２００の構成図である。
【図３】本発明の第２の実施の形態である始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベース２１０の１例を示す図である。
【図４】本発明の第２の実施の形態であるＦ／Ｆ最終段クロックドライバクロック供給可能範囲データベース２１１の１例を示す図である。
【図５】本発明の第２の実施の形態である最終段クロックドライバ間クロックスキューデータベース２１２の１例を示す図である。
【図６】本発明の第２の実施の形態である最終段クロックドライバ候補データの１例を示す図である。
【図７】本発明の第２の実施の形態であるクロック配線処理装置（２）２００でのクロック配線を実施するときの始点Ｆ／Ｆ終点Ｆ／Ｆの配置状態の１例を示す図である。
【図８】本発明の第２の実施の形態であるクロック配線処理装置（２）２００でのクロック配線を実施した配線結果の１例を示す図である。
【図９】本発明の第２の実施の形態であるクロック配線処理装置（２）２００の動作を示すフローチャートである。
【図１０】ＬＳＩの全面にクロック幹線をＨ−Ｔｒｅｅ方式にて供給した場合の一例を示す図である。
【図１１】図１０に示すＨ−Ｔｒｅｅ方式によるクロック幹線をツリー状に表したものを示す図である。
【図１２】インスタンスを配置した後の最終段クロックドライバ近傍についての最終段クロックドライバとＦ／Ｆの１例を示す図である。
【図１３】クロック供給可能範囲について示す図である。
【図１４】最終段クロックドライバからＦ／Ｆにクロックを供給する自動処理のフローチャートを示す図である。
【図１５】図１４に示すフローチャートにより行われた最終段クロックドライバからＦ／Ｆまでの配線後の状態を示す図である。
【図１６】クロック幹線をツリー状に表した図である。
【図１７】最終段クロックドライバと始点Ｆ／Ｆ終点Ｆ／Ｆとの接続の１例を示す図である。
【図１８】図１４に示すフローチャートにより行われた最終段クロックドライバからＦ／Ｆまでの配線後の状態を示す図である。
【符号の説明】
【０１１９】
１００    クロック配線処理装置（１）
１０１    始終点Ｆ／Ｆ処理部
１０２    クロックスキュー処理部
２００    クロック配線処理装置（２）
２０１    記憶部
２０２    クロック配線処理部
２０３    データ処理部
２１０    始点Ｆ／Ｆ終点Ｆ／Ｆリストデータベース
２１１    Ｆ／Ｆ最終段クロックドライバクロック供給可能範囲データベース
２１２    最終段クロックドライバ間クロックスキューデータベース
２１３    入出力処理部
４０１    最終段クロックドライバ
４０２    最終段クロックドライバ
４１１    グループＢ最終段クロックドライバ
４１２    グループＥ最終段クロックドライバ
４１３    グループＡ最終段クロックドライバ
５１１    Ｆ／Ｆ
５１２    Ｆ／Ｆ
５１３    Ｆ／Ｆ
５１４    Ｆ／Ｆ
５１７    Ｆ／Ｆ
５３１    Ｆ／Ｆ
５３２    Ｆ／Ｆ
６２１    クロック供給可能範囲
６２２    クロック供給可能範囲
６２３    クロック供給可能基本範囲
６２４    クロック供給可能隣接範囲
１０１０    始点Ｆ／Ｆ処理部
１０１１    終点Ｆ／Ｆ処理部
【図１】
0004966838.tif 000002
【図２】
0004966838.tif 000003
【図３】
0004966838.tif 000004
【図４】
0004966838.tif 000005
【図５】
0004966838.tif 000006
【図６】
0004966838.tif 000007
【図７】
0004966838.tif 000008
【図８】
0004966838.tif 000009
【図９】
0004966838.tif 000010
【図１０】
0004966838.tif 000011
【図１１】
0004966838.tif 000012
【図１２】
0004966838.tif 000013
【図１３】
0004966838.tif 000014
【図１４】
0004966838.tif 000015
【図１５】
0004966838.tif 000016
【図１６】
0004966838.tif 000017
【図１７】
0004966838.tif 000018
【図１８】
0004966838.tif 000019