(57)【要約】【課題】高速動作が可能な半導体集積回路の物理設計を行う際に、品質の高いフロアプランを短時間で生成すること。【解決手段】ＲＴＬデータを論理合成（ステップＳ２１）してゲートレベルのネットリストを得る。ゲートレベルのネットリストに対して仮配線ＳＴＡ（ステップＳ２２）を行い、タイミング情報を得る。ゲートレベルのネットリストおよびタイミング情報に基づいて、閉じたタイミンググループを構成する単位をフロアプランモジュールとして定義する（ステップＳ２３）。フロアプランモジュールに基づいてゲートレベルのネットリストを再構築し（ステップＳ２４）、フロアプランを行う（ステップＳ２５）。フロアプランモジュールごとにクロックバッファを設け、各フロアプランモジュール内の局所的なクロックスキューが最小になるようなクロックトポロジを構築する（ステップＳ２６）。【選択図】図３
2008071000.tif 000002
【特許請求の範囲】
【請求項１】
ＲＴＬレベルの設計データをゲートレベルのネットリストにマッピングする論理合成手段と、
前記論理合成手段により得られたゲートレベルのネットリストに対して統計的手法によりモデル化した配線容量値を用いてタイミング検証を行う仮配線静的タイミング解析手段と、
前記論理合成手段により得られたゲートレベルのネットリスト、および前記仮配線静的タイミング解析手段により得られたタイミング情報に基づいて、始点のフリップフロップ、終点のフリップフロップおよび該始点および終点のフリップフロップの間のタイミングパス上に存在するゲートからなる閉じたタイミンググループを構成する単位を、フロアプランモジュールとして定義するフロアプランモジュール定義手段と、
前記フロアプランモジュール定義手段により得られたフロアプランモジュールに基づいて物理回路全体をグループ化し直し、各グループの占めるブロック領域の大きさと各ブロック領域間の接続関係を抽出し、該抽出情報に基づいてゲートレベルのネットリストを再構成するゲートレベルネットリスト再構成手段と、
前記ゲートレベルネットリスト再構成手段により得られたゲートレベルのネットリストに基づいて各ブロック領域の配置を行うフロアプラン手段と、
を備えることを特徴とする半導体集積回路の設計装置。
【請求項２】
前記フロアプランモジュール定義手段により得られたフロアプランモジュールごとに、該フロアプランモジュール内のフリップフロップにクロックを供給するクロックバッファを１つ定義し、該クロックバッファから各フリップフロップまでのクロックスキューを最小にするクロックトポロジを構築するクロックツリー構築手段、
をさらに備えることを特徴とする請求項１に記載の半導体集積回路の設計装置。
【請求項３】
ＲＴＬレベルの設計データをゲートレベルのネットリストにマッピングする論理合成工程と、
前記論理合成工程により得られたゲートレベルのネットリストに対して統計的手法によりモデル化した配線容量値を用いてタイミング検証を行う仮配線静的タイミング解析工程と、
前記論理合成工程により得られたゲートレベルのネットリスト、および前記仮配線静的タイミング解析工程により得られたタイミング情報に基づいて、始点のフリップフロップ、終点のフリップフロップおよび該始点および終点のフリップフロップの間のタイミングパス上に存在するゲートからなる閉じたタイミンググループを構成する単位を、フロアプランモジュールとして定義するフロアプランモジュール定義工程と、
前記フロアプランモジュール定義工程により得られたフロアプランモジュールに基づいて物理回路全体をグループ化し直し、各グループの占めるブロック領域の大きさと各ブロック領域間の接続関係を抽出し、該抽出情報に基づいてゲートレベルのネットリストを再構成するゲートレベルネットリスト再構成工程と、
前記ゲートレベルネットリスト再構成工程により得られたゲートレベルのネットリストに基づいて各ブロック領域の配置を行うフロアプラン工程と、
を含むことを特徴とする半導体集積回路の設計方法。
【請求項４】
請求項３に記載の半導体集積回路の設計方法をコンピュータに実行させる半導体集積回路の設計プログラム。
【請求項５】
請求項４に記載の半導体集積回路の設計プログラムを記録したコンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路の設計装置、設計方法、設計プログラムおよび該プログラムを記録した記録媒体に関し、特に半導体集積回路のフロアプランの設計技術に関する。
【背景技術】
【０００２】
図１５は、一般的な半導体集積回路の設計処理手順を示すフローチャートである。図１５に示すように、まず、仕様策定処理を行い（ステップＳ１）、その仕様に基づいてＲＴＬコーディング処理を行う（ステップＳ２）。ＲＴＬコーディング処理によって、論理回路がＨＤＬ言語（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）によるＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）レベルで記述される。
【０００３】
この段階では、実際の回路を構成するゲートやフリップフロップ等の物理的実体はなく、単純にＲｅｇｉｓｔｅｒ−Ｔｏ−Ｒｅｇｉｓｔｅｒのデータの流れ、およびその間の論理が記述されているだけである。次いで、論理検証処理（ステップＳ３）および論理合成処理（ステップＳ４）を順次、行う。これによって、ＲＴＬの記述が、物理的対象を有するゲートレベルのネットリストにマッピングされ、実際にレイアウト（物理設計）を行える段階になる。
【０００４】
次いで、仮配線ＳＴＡ（静的タイミング解析）処理を行う（ステップＳ５）。仮配線ＳＴＡ処理では、物理的配置配線がなされていないゲートレベルのネットリストに対して統計的手法によりモデル化した配線容量値を用いてタイミング検証を行う。従来、この仮配線ＳＴＡ処理の結果は、後工程において、タイミングを満足するか否かを判定する際に用いられるが、積極的に物理設計には利用されていない。
【０００５】
次いで、フロアプランや配置・配線等のレイアウト処理を行い（ステップＳ６）、そのレイアウトに対してタイミング検証処理（ステップＳ７）および物理検証処理（ステップＳ８）を順次、行う。そして、半導体集積回路の製造プロセスへ移行する。
【０００６】
上述した一連の設計処理手順は、ステップＳ１〜Ｓ５の論理設計と、ステップＳ６〜Ｓ８の物理設計に二分される。通常、論理設計者から物理設計者には、ゲートレベルのネットリスト（物理的実体をもつ回路）、タイミング制約（タイミング検証を行うための制約ファイル）および仮配線ＳＴＡ処理の結果の情報が渡される。物理設計者は、これらの情報に基づいて、タイミング等を満足させるように物理設計を行う。
【０００７】
近時、半導体集積回路の設計においては、微細化が進み、ゲートの遅延よりも、ゲート間を接続するネット遅延が支配的になってきている。従って、ゲートの配置をほぼ決定するフロアプランの重要性が増している。その理由は、フロアプランの品質によって、配置・配線処理後の物理設計のタイミング品質がほぼ決定されてしまうからである。
【０００８】
図１６は、従来の半導体集積回路の設計処理のうちのレイアウト処理手順を示すフローチャートである。図１６に示すように、ＲＴＬコーディング処理により得られたＲＴＬデータ１を用いて論理合成処理を行い（ステップＳ１１）、ゲートレベルのネットリスト２を得る。ここまでは、論理設計に含まれる。次いで、ゲートレベルのネットリスト２を用いて、フロアプラン処理（ステップＳ１２）、初期配置およびクロックツリー合成（ＣＴＳ）の処理（ステップＳ１３）、並びに論理の最適化および配線の処理（ステップＳ１４）を順次、行う。
【０００９】
フロアプランを作成する際には、タイミング情報がないので、フロアプランの品質を高めるためには、作成したフロアプランに対して配線処理およびＳＴＡ処理を行い、そのＳＴＡ処理の結果をフィードバックすることによって、よりよいフロアプランを作成する、という処理を繰り返す必要がある。ただし、フロアプランを何度も作成し直すことになるため、高い品質のフロアプランが得られるまでには、非常に長い時間がかかる。
【００１０】
ところで、次のような特徴を有する半導体集積回路装置の自動フロアプラン決定方法が公知である。設計対象の半導体集積回路装置内のレジスタと論理演算セルを抽出する抽出ステップと、前記論理演算セルに直接または他の論理演算セルを介して信号を入力する可能性のある第１のレジスタの集合および前記論理演算セルから直接または他の論理演算セルを介して信号が入力される可能性のある第２のレジスタの集合を抽出し、該抽出結果に基づいて前記論理演算セルの集合をクラスタセルとして生成するクラスタセル生成ステップと、クラスタセル内の論理演算セルが近接配置するよう前記クラスタセルおよび前記レジスタの配置位置を決定する第１のセル配置ステップと、半導体集積回路装置内の前記論理演算セルおよび前記レジスタの集合で構成される任意の論理階層ブロックの中からフロアプランを行う論理階層ブロックをフロアプラニング対象ブロックとして選択する選択ステップと、前記第１のセル配置ステップの結果に基づいて、前記選択された各論理階層ブロックの配置配線領域がその論理階層ブロックに属するセルをできるだけ多く含むように配置配線領域を決定する階層ブロック配置配線領域決定ステップと、を備えることを特徴とする（例えば、特許文献１参照。）。
【００１１】
ここで、通常、チップの回路構造は、チップに対応するモジュールの下階層に複数の小規模なモジュールを有しており、これらのモジュールが組み合わされて構成されている。以下、このモジュールの階層構造を論理階層と称する。
【００１２】
【特許文献１】特開２００４−３３４５６５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
近時のように半導体集積回路が大規模化および複雑化した状況においては、物理設計者が論理を詳細に解析することは、極めて困難である。従って、物理設計者は、フロアプランを行う際に、論理設計者がタイミングを考慮して論理階層を区切っているとみなし、論理階層や配線接続の過密状況などに基づいて、ある程度の大きさを有するモジュールごとにその中に含まれる物理ゲートの配置を決める。
【００１４】
一方、論理設計者は、論理回路の設計時に、タイミングを考慮しているわけではなく、単に機能ごとに論理階層を区切る。そのため、物理設計の段階で、クリティカルパスが複数のモジュールに跨がることがある。そのような場合には、クリティカルパスが跨がる複数のモジュールを近接して配置する必要がある。しかしながら、上述した従来の設計方法では、タイミングが考慮されていない論理階層に基づいてフロアプランを行うため、それらのモジュールがタイミングを満足しない程度に離れて配置されることがあるという問題点がある。
【００１５】
また、前記特許文献１に開示された自動フロアプラン決定方法では、クラスタセルを生成する際にタイミング情報を考慮していないため、近接して配置する必要のない論理演算セルが近接して配置されてしまい、配線性が悪化したり、エレクトロマイグレーション等に対して悪影響を及ぼすなどの問題点がある。さらに、同方法では、クロックスキューについても考慮されていない。
【００１６】
この発明は、上述した従来技術による問題点を解消するため、高速動作が可能な半導体集積回路の物理設計を行う際に、品質の高いフロアプランを短時間で生成することができる半導体集積回路の設計装置、設計方法、設計プログラムおよび該プログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上述した課題を解決し、目的を達成するため、本発明にかかる半導体集積回路の設計装置、設計方法、設計プログラムおよび該プログラムを記録した記録媒体は、以下の特徴を有する。ＲＴＬレベルの設計データを論理合成することによって、ゲートレベルのネットリストを得る。そのゲートレベルのネットリストに対して仮配線静的タイミング解析を行うことによって、タイミング情報を得る。
【００１８】
得られたタイミング情報および前記ゲートレベルのネットリストに基づいて、始点および終点となる各フリップフロップと、それらフリップフロップの間のタイミングパス上に存在するゲートとからなる閉じたタイミンググループを構成する単位を、フロアプランモジュールとして定義する。そして、フロアプランモジュールに基づいて物理回路全体をグループ化し直し、フロアプランモジュールに基づいてフロアプランを行う。また、フロアプランモジュールごとにクロックバッファを設け、各フロアプランモジュール内の局所的なクロックスキューが最小になるようなクロックトポロジを構築する。
【００１９】
この発明によれば、フロアプランモジュールを定義することによって、最適な階層レイアウトブロックを抽出することが可能となる。また、フロアプラン段階において近接配置と局所的なクロックスキューの最小化を行うことができるので、レイアウト初期の段階においてタイミングを考慮した設計を容易に行うことができる。
【発明の効果】
【００２０】
本発明にかかる半導体集積回路の設計装置、設計方法、設計プログラムおよび該プログラムを記録した記録媒体によれば、高速動作が可能な半導体集積回路の物理設計を行う際に、品質の高いフロアプランを短時間で生成することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２１】
以下に添付図面を参照して、この発明にかかる半導体集積回路の設計装置、設計方法、設計プログラムおよび該プログラムを記録した記録媒体の好適な実施の形態を詳細に説明する。
【００２２】
（半導体集積回路の設計装置のハードウェア構成）
まず、この発明の実施の形態にかかる半導体集積回路の設計装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる半導体集積回路の設計装置のハードウェア構成を示すブロック図である。
【００２３】
図１に示すように、半導体集積回路の設計装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部は、バス１００によってそれぞれ接続されている。
【００２４】
ここで、ＣＰＵ１０１は、半導体集積回路の設計装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御に従ってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００２５】
ＦＤＤ１０６は、ＣＰＵ１０１の制御に従ってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを半導体集積回路の設計装置に読み取らせたりする。
【００２６】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、例えば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２７】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００２８】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２９】
スキャナ１１２は、画像を光学的に読み取り、半導体集積回路の設計装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、例えば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３０】
（半導体集積回路の設計装置の機能的構成）
次に、この発明の実施の形態にかかる半導体集積回路の設計装置の機能的構成について説明する。図２は、この発明の実施の形態にかかる半導体集積回路の設計装置の機能的構成を示すブロック図である。図２に示すように、半導体集積回路の設計装置は、論理合成手段１１と、仮配線ＳＴＡ手段１２と、フロアプランモジュール定義手段１３と、ゲートレベルネットリスト再構成手段１４と、フロアプラン手段１５と、クロックツリー構築手段１６と、を備えている。
【００３１】
論理合成手段１１は、ＲＴＬレベルの設計データをゲートレベルのネットリストにマッピングする。仮配線ＳＴＡ手段１２は、論理合成手段１１により得られたゲートレベルのネットリストに対して統計的手法によりモデル化した配線容量値を用いて静的タイミング解析によるタイミング検証を行う。論理合成手段１１および仮配線ＳＴＡ手段１２については、従来同様である。
【００３２】
フロアプランモジュール定義手段１３は、論理合成手段１１により得られたゲートレベルのネットリストと、仮配線ＳＴＡ手段１２により得られたタイミング情報に基づいて、フロアプランモジュールを定義する。フロアプランモジュールは、タイミングパス上の始点となるフリップフロップ（以下、始点フリップフロップとする）、終点となるフリップフロップ（以下、終点フリップフロップとする）、およびそれらフリップフロップの間のタイミングパス上に存在するゲートからなる閉じたタイミンググループを構成する単位である。
【００３３】
また、フロアプランモジュール定義手段１３は、始点フリップフロップに、タイミングパスの終点に対するスラック値情報を付加するとともに、終点フリップフロップに、タイミングパスの始点に対するスラック値情報を付加する。ここで、フロアプランモジュール定義手段１３は、十分なスラック値を有するタイミングパスを除いて、クリティカルパスとなるタイミングパスに対してのみフロアプランモジュールを定義するのが望ましい。
【００３４】
その理由は、クリティカルパスを含む複数のフロアプランモジュールは、近接して配置される必要があるが、十分なスラック値を有するタイミングパスを含む複数のフロアプランモジュールについては、近接して配置する必要がないからである。そして、無意味な近接配置が原因となって、配線性が悪化したり、エレクトロマイグレーション等に対して悪影響を及ぼすのを軽減することができるからである。
【００３５】
ゲートレベルネットリスト再構成手段１４は、フロアプランモジュール定義手段１３により定義されたフロアプランモジュールに基づいて、物理回路全体をグループ化し直す。そして、ゲートレベルネットリスト再構成手段１４は、仮配線ＳＴＡ手段１２により得られたタイミング情報に含まれる最悪セットアップスラック値と、各フロアプランモジュール内に含まれるゲート規模と、各フロアプランモジュール内のタイミングを規定するクロック周波数や必要な容量数に基づいて、各グループの占めるブロック領域の物理的な大きさを決定する。
【００３６】
また、ゲートレベルネットリスト再構成手段１４は、各ブロック領域間の接続関係を抽出する。そして、ゲートレベルネットリスト再構成手段１４は、各ブロック領域の大きさと、ブロック領域間の接続関係に基づいて、ゲートレベルのネットリストを再構成する。
【００３７】
フロアプラン手段１５は、ゲートレベルネットリスト再構成手段１４により得られたゲートレベルのネットリストに基づいて、各ブロック領域の配置を行う。その際、同じフリップフロップが、あるフロアプランモジュール（以下、第１のフロアプランモジュールとする）では終点となり、別のフロアプランモジュール（以下、第２のフロアプランモジュールとする）では始点となる場合、フロアプラン手段１５は、それら第１のフロアプランモジュールと第２のフロアプランモジュールを近接配置する。
【００３８】
そして、フロアプラン手段１５は、それら第１のフロアプランモジュールと第２のフロアプランモジュールをフロアプランモジュールクラスタとして取り扱う。フロアプラン手段１５は、フロアプランモジュールクラスタを、階層レイアウトを実行する際の階層レイアウトブロックとして定義する。
【００３９】
クロックツリー構築手段１６は、フロアプランモジュール定義手段１３により得られたフロアプランモジュールごとに、その内部のフリップフロップにクロックを供給するクロックバッファを１つ定義する。そして、クロックツリー構築手段１６は、各フロアプランモジュールにおいて、クロックバッファから各フリップフロップまでのクロックスキューが最小になるように、クロックトポロジを構築する。
【００４０】
また、クロックツリー構築手段１６は、第１のフロアプランモジュールでは終点となり、第２のフロアプランモジュールでは始点となるフリップフロップに対してクロックを供給するクロックバッファを決める。その際、クロックツリー構築手段１６は、第１のフロアプランモジュールにおいてそのフリップフロップが終点となるタイミングパスの始点に対するスラック値情報と、第２のフロアプランモジュールにおいてそのフリップフロップが始点となるタイミングパスの終点に対するスラック値情報を比較する。
【００４１】
そして、クロックツリー構築手段１６は、より厳しいタイミングのタイミングパスを含むフロアプランモジュール側のクロックバッファからクロックを供給するようなクロックトポロジを構築する。さらに、そのような場合に、クロックツリー構築手段１６は、第１のフロアプランモジュールに定義されたクロックバッファと、第２のフロアプランモジュールに定義されたクロックバッファに、別の共通のクロックバッファからクロックを供給するクロックトポロジを構築する。
【００４２】
なお、上述した論理合成手段１１、仮配線ＳＴＡ手段１２、フロアプランモジュール定義手段１３、ゲートレベルネットリスト再構成手段１４、フロアプラン手段１５およびクロックツリー構築手段１６は、具体的には、例えば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５などの記録媒体に記録されたプログラムを、ＣＰＵ１０１が実行することによって、またはＩ／Ｆ１０９によって、その機能を実現する。
【００４３】
（半導体集積回路の設計手順）
次に、この発明の実施の形態にかかる半導体集積回路の設計装置の処理手順について説明する。図３は、この発明の実施の形態にかかる半導体集積回路の設計装置の処理手順を示すフローチャートである。また、図４〜図１４は、各処理工程での処理内容を説明する説明図である。
【００４４】
図３に示すように、まず、論理合成手段１１により、ＲＴＬコーディング処理により得られたＲＴＬデータ２１を用いて論理合成処理を行い（ステップＳ２１）、ゲートレベルのネットリスト２２を得る。次いで、仮配線ＳＴＡ手段１２により、仮配線ＳＴＡ処理を行い（ステップＳ２２）、タイミング情報２３を得る。仮配線ＳＴＡ処理では、数学的遅延モデルを適用して、タイミングパス上のフリップフロップやゲート等に適当な遅延を割り当てることによって、セットアップマージンを抽出する。
【００４５】
例えば、図４に示すようなタイミングパスの場合、始点フリップフロップ３１と終点フリップフロップ３２の間のセットアップマージンは、１サイクルタイムから、始点フリップフロップ３１における遅延時間１００ｐｓ、アンドゲート３３における遅延時間２００ｐｓ、アンドゲート３４における遅延時間２００ｐｓ、オアゲート３５における遅延時間２００ｐｓ、バッファ３６における遅延時間１００ｐｓ、終点フリップフロップ３２における遅延時間３０ｐｓおよびフリップフロップのセットアップタイムを引いた値となる。ここまでは、従来同様であり、論理設計に含まれる。
【００４６】
図３に戻り、続いて、フロアプランモジュール定義手段１３により、ゲートレベルのネットリスト２２とタイミング情報２３に基づいて、フロアプランモジュール定義処理を行い（ステップＳ２３）、フロアプランモジュール定義（１）２４とフロアプランモジュール定義（２）２５を得る。フロアプランモジュール定義（１）２４には、各フロアプランモジュール内のフリップフロップやゲートの情報が含まれている。フロアプランモジュール定義（２）２５には、クリティカルタイミングマージン情報が含まれている。
【００４７】
例えば、図５に示すような構成の場合、まず、入力側のフリップフロップＦ１から、値が伝播し得るフリップフロップを抽出する。その際、仮配線ＳＴＡ処理により得られたタイミング情報を利用し、スラック値を考慮する。また、フォルスパスやマルチタイミングパスなどの制約を考慮する。値を受け取る側のフリップフロップがセットアップ方向に対して十分に大きなスラック値を有している場合には、そのフリップフロップをフロアプランモジュールに含めずに除外する。ここでは、十分なスラック値を有するフリップフロップを除外した構成が図５に示されているとする。
【００４８】
図５において、フリップフロップＦ１からみると、矢印４２に示すように、フリップフロップＦ４が抽出される。フリップフロップＦ４から遡って、当該フリップフロップＦ４に出力値を伝播し得るフリップフロップを抽出すると、矢印４３に示すように、フリップフロップＦ１と、矢印４４に示すように、フリップフロップＦ２と、矢印４５に示すように、フリップフロップＦ３が抽出される。
【００４９】
同様に、フリップフロップＦ２からは、矢印４６に示すように、フリップフロップＦ５が抽出される。フリップフロップＦ５から遡ると、矢印４７に示すように、フリップフロップＦ２と、矢印４８に示すように、フリップフロップＦ３が抽出される。フリップフロップＦ３からは、矢印４９に示すように、フリップフロップＦ６が抽出される。フリップフロップＦ６から遡ると、既知のフリップフロップＦ３が抽出されるだけである。
【００５０】
この段階でタイミングユニットの抽出を終了する。このようにして、Ｆ１、Ｆ２、Ｆ３、Ｆ４、Ｆ５およびＦ６の６個のフリップフロップが、１つの閉じたタイミングパスを形成していることがわかる。続いて、入力側のフリップフロップＦ１，Ｆ２，Ｆ３から出力側のフリップフロップＦ４，Ｆ５，Ｆ６までのタイミングトレースを行い、その間に出現するゲートＸ１，Ｘ２，Ｘ３，Ｘ４，Ｘ５，Ｘ６，Ｘ７，Ｘ８，Ｘ９をすべて抽出する。
【００５１】
その際、スラック値の閾値を設定しておき、この閾値以下のスラック値を有するパスについてのみ、タイミングトレースを行う。つまり、緩いタイミングのパスについては、ゲートを抽出しない。これは、フロアプランモジュールの無意味な近接配置を避けるためである。また、抽出された６個のフリップフロップには、その属性としてスラック値を付加しておく。図５に示す例では、始点フリップフロップの終点に対するスラック値および終点フリップフロップの始点に対するスラック値が、それぞれ、「ｔｏＦ＊（＊＊＊ｐｓ）」および「ｆｒｏｍＦ＊（＊＊＊ｐｓ）」と表されている（＊は数字を表す）。
【００５２】
なお、始点フリップフロップと終点フリップフロップが同じ組み合わせで、かつその間のパスが複数ある場合（図５の例では、設定されていない）には、各パスでのスラック値のうちの最悪の値を各フリップフロップの属性として付加する。ただし、始点と終点が同じ複数パスについて、閾値以下のスラック値を有するパス上のゲートをすべて抽出する。このように、始点フリップフロップと終点フリップフロップと、その間のタイミングパス上に存在する各種ゲートにより、最小の１つの閉じたタイミンググループを構成している単位をフロアプランモジュール４１として定義する。
【００５３】
例えば、図６に示すフロアプランモジュール５１では、６個のフリップフロップ５２，５３，５４，５５，５６，５７とその間のタイミングパス上の論理ゲート５８が存在する。このフロアプランモジュール５１の定義は、例えば図７に示す通りである。フロアプランモジュールＦＰＭ００の定義５９では、例えば、フリップフロップ５２、フリップフロップ５３は、それぞれ、「ｃｈｉｐ／ｃｏｎｔｒｏｌ／ｍｕｌｔｉ／ＦＦ１：（ｆｒｏｍ．．．ｔｏ．．．）（ｆｒｏｍ．．．ｔｏ．．．）」および「ｃｈｉｐ／ｃｏｎｔｒｏｌ／ｍｕｌｔｉ／ＦＦ２：（ｆｒｏｍ．．．ｔｏ．．．）」と表されている。
【００５４】
また、フロアプランモジュールＦＰＭ００の定義５９では、例えば、論理ゲート５８は、「ｃｈｉｐ／ｅｘｅｃ／Ｕ２３」と表されている。このように、フロアプランモジュールの定義で必要なのは、そのフロアプランモジュールに含まれるインスタンス名のリストと、フリップフロップの場合には、始点および終点としてのマージン値のリストである。
【００５５】
図３に戻り、続いて、ゲートレベルネットリスト再構成手段１４により、フロアプランモジュール定義（１）２４、フロアプランモジュール定義（２）２５、および経験／実績テーブル２６に基づいて、物理回路全体をグループ化し直すゲートレベルネットリスト再構成処理を行い（ステップＳ２４）、フロアプランモジュールに基づいたゲートレベルのネットリスト２７を得る。経験／実績テーブル２６には、クロック周波数やデカップリング容量等の物理制約に基づく値が含まれている。
【００５６】
ゲートレベルネットリスト再構成処理では、各フロアプランモジュール内に含まれるゲート規模と、各フロアプランモジュール内のタイミングを規定するクロックおよびその周波数とから算出される必要容量値に基づいて、各グループの占めるブロック領域に対して、純粋に物理的に必要な大きさが決定される。また、仮配線ＳＴＡ処理により得られたタイミング情報に含まれる最悪セットアップスラック値に基づいて、ブロック領域内でのセル配置領域の使用率が決定される。
【００５７】
そして、例えば、最悪セットアップスラック値が小さい場合には、タイミング余裕度が小さいので、ブロック領域を縮めて、セル配置領域の使用率が大きくされる。反対に、最悪セットアップスラック値が大きい場合には、タイミング余裕度が大きいので、ブロック領域を広げて、セル配置領域の使用率が小さくされる。また、フロアプランモジュールのリストの中で多重定義されているフリップフロップの個数に基づいて、フロアプランモジュール相互の接続関係とその接続強度が抽出される。
【００５８】
次いで、フロアプラン手段１５により、フロアプランモジュールに基づいたゲートレベルのネットリスト２７に基づいて、各ブロック領域を配置するフロアプラン処理を行う（ステップＳ２５）。例えば、図８に示すように、フロアプランモジュールＦＰＭ００とフロアプランモジュールＦＰＭ０１に同じフリップフロップが定義されている場合には、「ＦＰＭ００，ＦＰＭ０１」というように、両フロアプランモジュールのブロック領域を近接して配置するという制約が設けられる。
【００５９】
図８に示す例では、他にも、「ＦＰＭ０１，ＦＰＭ０２」と「ＦＰＭ０３，ＦＰＭ０４」という制約が設けられている。このような制約があることによって、チップ６１内に、フロアプランモジュールＦＰＭ００のブロック領域６２とフロアプランモジュールＦＰＭ０１のブロック領域６３が近接して配置され、さらに、フロアプランモジュールＦＰＭ０１のブロック領域６３に近接してフロアプランモジュールＦＰＭ０２のブロック領域６４が配置される。
【００６０】
また、フロアプランモジュールＦＰＭ０３のブロック領域６５とフロアプランモジュールＦＰＭ０４のブロック領域６６が近接して配置される。なお、フロアプランモジュールＦＰＭ００、フロアプランモジュールＦＰＭ０１およびフロアプランモジュールＦＰＭ０２のグループと、フロアプランモジュールＦＰＭ０３およびフロアプランモジュールＦＰＭ０４のグループとの間には、近接配置の制約がないので、両グループは離れて配置されている。
【００６１】
このようなブロック領域の配置状態で後に初期配置を行った場合の、レイアウトを図９に示す。チップ７１において、各フロアプランモジュール内のゲートは、対応するブロック領域７２，７３，７４，７５，７６内に配置されることになる。つまり、このフロアプラン処理によって、タイミングの厳しいパスを構成するゲートが近接して配置されることが保証される。
【００６２】
上述したようにブロック領域を配置していくと、近接して配置されたフロアプランモジュールの境界となるフリップフロップは、隣り合うフロアプランモジュールで重複して定義されているので、ある大きさをもったフロアプランモジュールの集まり（以下、フロアプランモジュールクラスタとする）が形成される。例えば、図１０に示すフロアプランモジュールクラスタ９１は、例えば１４個のフロアプランモジュールで構成されている。
【００６３】
あるフロアプランモジュール９２には、始点フリップフロップ９４と終点フリップフロップ９５が存在する。この終点フリップフロップ９５は、その隣のフロアプランモジュール９３の始点フリップフロップとなっている。さらに、このフロアプランモジュール９３の終点フリップフロップ９６は、その隣のフロアプランモジュールの始点フリップフロップとなっている。
【００６４】
このようなフロアプランモジュールクラスタは、フロアプランモジュールの定義から明らかなように、タイミングの厳しいパスにより構成される塊である。フロアプランモジュールクラスタに基づいてフロアプラン処理を実行することによって、個々のフロアプランモジュールが近接して配置され、それに付随するフロアプランモジュールは、その近傍に配置されるので、一連の厳しいタイミングパスは、初期配置段階において必ず近接して配置されることが保証される。
【００６５】
また、フロアプランモジュールクラスタは、階層レイアウトを実行する際の階層レイアウトブロックとして定義される。このように定義すると、図１１に示すように、チップ１２１において、ある階層レイアウトブロック１２２と別の階層レイアウトブロック１２３の間がタイミングの緩いパスで接続されるという利点や、階層レイアウトブロックが回路論理によらずにほぼ一意に決定されるという利点がある。
【００６６】
また、階層レイアウトブロックが物理タイミングを考慮して定義されているので、後工程におけるタイミング問題が軽減されるという利点がある。さらに、フロアプランモジュールの定義から明らかなように、階層レイアウトブロックの境界がフリップフロップ受けおよびフリップフロップ出しという理想の構造になるという利点がある。階層レイアウトブロックのチップレベルにおける物理的な配置は、ＡＣタイミングを考慮して決定される。
【００６７】
フロアプラン処理によって、グループ情報およびＣＴＳトポロジ情報２８が得られる。グループ情報およびＣＴＳトポロジ情報２８には、当初のフロアプランモジュール定義に含まれるインスタンス名とフリップフロップのタイミングマージンリストに基づいて、どのフリップフロップ群を一つのまとまりとしてクロックを構築するかという情報が含まれている。
【００６８】
図３に戻り、続いて、グループ情報およびＣＴＳトポロジ情報２８に基づいて、初期配置処理を行い、クロックツリー構築手段１６により、クロックツリー合成（ＣＴＳ）処理を行う（ステップＳ２６）。クロックツリー合成処理では、各フロアプランモジュールに対してクロックバッファを一つだけ定義する。そして、各フロアプランモジュールにおいて、フロアプランモジュール内のフリップフロップには、必ずそのフロアプランモジュールに対して定義されたクロックバッファからクロックスキューが最小になるようにクロックツリー合成を行う。
【００６９】
例えば、図１２に示すようなフロアプランモジュール１３１の場合、クロックバッファ１３２を１つだけ設け、矢印１３３，１３４，１３５，１３６，１３７，１３８に示すように、フロアプランモジュール１３１内のすべてのフリップフロップのクロックピンに、このクロックバッファ１３２を経由して信号が分配されるようにする。このようなクロックツリー構造とすることによって、クリティカルパスにおいてクロックツリーのＯＣＶ（Ｏｎ  Ｃｈｉｐ  Ｖａｒｉａｔｉｏｎ）による遅延差を局所的に最小に抑えることができる。
【００７０】
上述したように、各フロアプランモジュール内のクロックツリー合成が済んだら、フロアプランモジュール相互の接続関係に着目して、１つ上の階層に、接続関係のあるフロアプランモジュールにクロック信号を供給するためのクロックバッファを設ける。例えば、図１３に示すクロックツリー構造のように、フロアプランモジュール１４１，１４２，１４３，１４４内の各フリップフロップ群１４５，１４６，１４７，１４８に、ぞれぞれ、最下層のクロックバッファ１４９，１５０，１５１，１５２から信号を供給する構造において、最下層の第１のクロックバッファ１４９と第２のクロックバッファ１５０、および第３のクロックバッファ１５１と第４のクロックバッファ１５２に、それぞれ、１つ上の階層の第５のクロックバッファ１５３および第６のクロックバッファ１５４からクロック信号を供給するように、クロックツリー合成を行う。
【００７１】
さらに、第５のクロックバッファ１５３と第６のクロックバッファ１５４に、もう１つ上の階層の第７のクロックバッファ１５５からクロック信号を供給するように、クロックツリー合成を行う。最後に、クロックルート（外部端子またはＰＬＬ出力）から第７のクロックバッファ１５５までのクロックツリー合成を行う。
【００７２】
上述したクロックツリー合成処理において、近接して配置されたフロアプランモジュールの境界となるフリップフロップについては、属性として有するスラック値の大小によりどちらのクロックバッファを優先させるかを決定する。例えば、図１４に示すように、２つのフロアプランモジュール１６１，１７１において、Ｆ７、Ｆ８およびＦ９の各フリップフロップが一方のフロアプランモジュール１６１では終点フリップフロップとなり、他方のフロアプランモジュール１７１では始点フリップフロップとなっている場合は、次のようにして優先させるクロックバッファを選択する。
【００７３】
フリップフロップＦ７については、一方のフロアプランモジュール１６１のフリップフロップＦ２またはフリップフロップＦ３からのスラック値が５０ｐｓであり、他方のフロアプランモジュール１７１のフリップフロップＦ４へのスラック値が２５０ｐｓである。従って、フリップフロップＦ２またはフリップフロップＦ３に対するタイミングの方が厳しいので、矢印１６６に示すように、フリップフロップＦ７には、フリップフロップＦ２またはフリップフロップＦ３を含むフロアプランモジュール１６１のクロックバッファ１６２からクロック信号を供給する。
【００７４】
フリップフロップＦ８およびフリップフロップＦ９についても同様である。フリップフロップＦ８については、フリップフロップＦ４へのスラック値が最も厳しいので、矢印１７３に示すように、フリップフロップＦ８には、フリップフロップＦ４を含むフロアプランモジュール１７１のクロックバッファ１７２からクロック信号を供給する。フリップフロップＦ９については、フリップフロップＦ３からのスラック値が最も厳しいので、矢印１６７に示すように、フリップフロップＦ９には、フリップフロップＦ３を含むフロアプランモジュール１６１のクロックバッファ１６２からクロック信号を供給する。
【００７５】
なお、Ｆ１、Ｆ２およびＦ３の各フリップフロップには、矢印１６３，１６４，１６５に示すように、それらが属するフロアプランモジュール１６１のクロックバッファ１６２からクロック信号を供給する。また、Ｆ４、Ｆ５およびＦ６の各フリップフロップには、矢印１７４，１７５，１７６に示すように、それらが属するフロアプランモジュール１７１のクロックバッファ１７２からクロック信号を供給する。
【００７６】
そして、一方のクロックバッファ１６２と他方のクロックバッファ１７２については、直上の階層で共通のクロックバッファ１８１を定義し、この共通のクロックバッファ１８１により駆動するように、クロックツリートポロジを定義する。フリップフロップが３つのフロアプランモジュールや４つのフロアプランモジュールの境界に配置される場合も同様である。図３に戻り、最後に、論理の最適化処理と配線処理を行う（ステップＳ２７）。
【００７７】
なお、本実施の形態で説明した半導体集積回路の設計方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００７８】
実施の形態によれば、フロアプランモジュールを定義することによって、最適な階層レイアウトブロックを抽出することができる。また、フロアプラン段階において近接配置と局所的なクロックスキューの最小化を行うことができるので、レイアウト初期の段階においてタイミングを考慮した設計を容易に行うことができる。従って、高速動作が可能な半導体集積回路の物理設計を行う際に、品質の高いフロアプランを短時間で生成することができるという効果を奏する。
【００７９】
（付記１）ＲＴＬレベルの設計データをゲートレベルのネットリストにマッピングする論理合成手段と、前記論理合成手段により得られたゲートレベルのネットリストに対して統計的手法によりモデル化した配線容量値を用いてタイミング検証を行う仮配線静的タイミング解析手段と、前記論理合成手段により得られたゲートレベルのネットリスト、および前記仮配線静的タイミング解析手段により得られたタイミング情報に基づいて、始点のフリップフロップ、終点のフリップフロップおよび該始点および終点のフリップフロップの間のタイミングパス上に存在するゲートからなる閉じたタイミンググループを構成する単位を、フロアプランモジュールとして定義するフロアプランモジュール定義手段と、前記フロアプランモジュール定義手段により得られたフロアプランモジュールに基づいて物理回路全体をグループ化し直し、各グループの占めるブロック領域の大きさと各ブロック領域間の接続関係を抽出し、該抽出情報に基づいてゲートレベルのネットリストを再構成するゲートレベルネットリスト再構成手段と、前記ゲートレベルネットリスト再構成手段により得られたゲートレベルのネットリストに基づいて各ブロック領域の配置を行うフロアプラン手段と、を備えることを特徴とする半導体集積回路の設計装置。
【００８０】
（付記２）前記フロアプランモジュール定義手段は、前記仮配線静的タイミング解析手段により得られたタイミング情報に基づいて、各フロアプランモジュールのタイミングパス上の始点となるフリップフロップおよび終点となるフリップフロップに、それぞれ、タイミングパスの終点に対するスラック値情報およびタイミングパスの始点に対するスラック値情報を付加することを特徴とする付記１に記載の半導体集積回路の設計装置。
【００８１】
（付記３）前記フロアプランモジュール定義手段は、前記仮配線静的タイミング解析手段により得られたタイミング情報に基づいて、クリティカルパスとなるタイミングパスに対してのみフロアプランモジュールを定義することを特徴とする付記１または２に記載の半導体集積回路の設計装置。
【００８２】
（付記４）前記ゲートレベルネットリスト再構成手段は、前記仮配線静的タイミング解析手段により得られたタイミング情報の最悪セットアップスラック値、各フロアプランモジュール内に含まれるゲート規模、および各フロアプランモジュール内のタイミングを規定するクロック周波数に基づいて、各ブロック領域の大きさを決定することを特徴とする付記１〜３のいずれか一つに記載の半導体集積回路の設計装置。
【００８３】
（付記５）前記フロアプラン手段は、第１のフロアプランモジュールで終点となるフリップフロップが第２のフロアプランモジュールで始点のフリップフロップである場合、前記第１のフロアプランモジュールと前記第２のフロアプランモジュールを近接配置してフロアプランモジュールクラスタとし、該フロアプランモジュールクラスタを、階層レイアウトを実行する際の階層レイアウトブロックとして定義することを特徴とする付記１〜４のいずれか一つに記載の半導体集積回路の設計装置。
【００８４】
（付記６）前記フロアプランモジュール定義手段により得られたフロアプランモジュールごとに、該フロアプランモジュール内のフリップフロップにクロックを供給するクロックバッファを１つ定義し、該クロックバッファから各フリップフロップまでのクロックスキューを最小にするクロックトポロジを構築するクロックツリー構築手段、をさらに備えることを特徴とする付記２に記載の半導体集積回路の設計装置。
【００８５】
（付記７）前記クロックツリー構築手段は、第１のフロアプランモジュールで終点となり、かつ第２のフロアプランモジュールで始点となるフリップフロップに、当該フリップフロップを前記第１のフロアプランモジュールにおける終点とするタイミングパスの始点に対するスラック値情報、および当該フリップフロップを前記第２のフロアプランモジュールにおける始点とするタイミングパスの終点に対するスラック値情報に基づいて、より厳しいタイミングのタイミングパスを有するフロアプランモジュール側のクロックバッファからクロックを供給するクロックトポロジを構築することを特徴とする付記６に記載の半導体集積回路の設計装置。
【００８６】
（付記８）前記クロックツリー構築手段は、前記第１のフロアプランモジュールに定義された第１のクロックバッファ、および前記第２のフロアプランモジュールに定義された第２のクロックバッファに、第３のクロックバッファからクロックを供給するクロックトポロジを構築することを特徴とする付記７に記載の半導体集積回路の設計装置。
【００８７】
（付記９）ＲＴＬレベルの設計データをゲートレベルのネットリストにマッピングする論理合成工程と、前記論理合成工程により得られたゲートレベルのネットリストに対して統計的手法によりモデル化した配線容量値を用いてタイミング検証を行う仮配線静的タイミング解析工程と、前記論理合成工程により得られたゲートレベルのネットリスト、および前記仮配線静的タイミング解析工程により得られたタイミング情報に基づいて、始点のフリップフロップ、終点のフリップフロップおよび該始点および終点のフリップフロップの間のタイミングパス上に存在するゲートからなる閉じたタイミンググループを構成する単位を、フロアプランモジュールとして定義するフロアプランモジュール定義工程と、前記フロアプランモジュール定義工程により得られたフロアプランモジュールに基づいて物理回路全体をグループ化し直し、各グループの占めるブロック領域の大きさと各ブロック領域間の接続関係を抽出し、該抽出情報に基づいてゲートレベルのネットリストを再構成するゲートレベルネットリスト再構成工程と、前記ゲートレベルネットリスト再構成工程により得られたゲートレベルのネットリストに基づいて各ブロック領域の配置を行うフロアプラン工程と、を含むことを特徴とする半導体集積回路の設計方法。
【００８８】
（付記１０）前記フロアプランモジュール定義工程は、前記仮配線静的タイミング解析工程により得られたタイミング情報に基づいて、各フロアプランモジュールのタイミングパス上の始点となるフリップフロップおよび終点となるフリップフロップに、それぞれ、タイミングパスの終点に対するスラック値情報およびタイミングパスの始点に対するスラック値情報を付加することを特徴とする付記９に記載の半導体集積回路の設計方法。
【００８９】
（付記１１）前記フロアプランモジュール定義工程は、前記仮配線静的タイミング解析工程により得られたタイミング情報に基づいて、クリティカルパスとなるタイミングパスに対してのみフロアプランモジュールを定義することを特徴とする付記９または１０に記載の半導体集積回路の設計方法。
【００９０】
（付記１２）前記ゲートレベルネットリスト再構成工程は、前記仮配線静的タイミング解析工程により得られたタイミング情報の最悪セットアップスラック値、各フロアプランモジュール内に含まれるゲート規模、および各フロアプランモジュール内のタイミングを規定するクロック周波数に基づいて、各ブロック領域の大きさを決定することを特徴とする付記９〜１１のいずれか一つに記載の半導体集積回路の設計方法。
【００９１】
（付記１３）前記フロアプラン工程は、第１のフロアプランモジュールで終点となるフリップフロップが第２のフロアプランモジュールで始点のフリップフロップである場合、前記第１のフロアプランモジュールと前記第２のフロアプランモジュールを近接配置してフロアプランモジュールクラスタとし、該フロアプランモジュールクラスタを、階層レイアウトを実行する際の階層レイアウトブロックとして定義することを特徴とする付記９〜１２のいずれか一つに記載の半導体集積回路の設計方法。
【００９２】
（付記１４）前記フロアプランモジュール定義工程により得られたフロアプランモジュールごとに、該フロアプランモジュール内のフリップフロップにクロックを供給するクロックバッファを１つ定義し、該クロックバッファから各フリップフロップまでのクロックスキューを最小にするクロックトポロジを構築するクロックツリー構築工程、をさらに含むことを特徴とする付記１０に記載の半導体集積回路の設計方法。
【００９３】
（付記１５）前記クロックツリー構築工程は、第１のフロアプランモジュールで終点となり、かつ第２のフロアプランモジュールで始点となるフリップフロップに、当該フリップフロップを前記第１のフロアプランモジュールにおける終点とするタイミングパスの始点に対するスラック値情報、および当該フリップフロップを前記第２のフロアプランモジュールにおける始点とするタイミングパスの終点に対するスラック値情報に基づいて、より厳しいタイミングのタイミングパスを有するフロアプランモジュール側のクロックバッファからクロックを供給するクロックトポロジを構築することを特徴とする付記１４に記載の半導体集積回路の設計方法。
【００９４】
（付記１６）前記クロックツリー構築工程は、前記第１のフロアプランモジュールに定義された第１のクロックバッファ、および前記第２のフロアプランモジュールに定義された第２のクロックバッファに、第３のクロックバッファからクロックを供給するクロックトポロジを構築することを特徴とする付記１５に記載の半導体集積回路の設計方法。
【００９５】
（付記１７）付記９〜１６のいずれか一つに記載の半導体集積回路の設計方法をコンピュータに実行させる半導体集積回路の設計プログラム。
【００９６】
（付記１８）付記１７に記載の半導体集積回路の設計プログラムを記録したコンピュータに読み取り可能な記録媒体。
【産業上の利用可能性】
【００９７】
以上のように、本発明にかかる半導体集積回路の設計装置、設計方法、設計プログラムおよび該プログラムを記録した記録媒体は、大規模で高速な半導体集積回路の設計に有用である。
【図面の簡単な説明】
【００９８】
【図１】この発明の実施の形態にかかる半導体集積回路の設計装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態にかかる半導体集積回路の設計装置の機能的構成を示すブロック図である。
【図３】この発明の実施の形態にかかる半導体集積回路の設計装置の処理手順を示すフローチャートである。
【図４】仮配線ＳＴＡ処理について説明する説明図である。
【図５】フロアプランモジュール定義処理について説明する説明図である。
【図６】フロアプランモジュールの一例を示す説明図である。
【図７】図６に示すフロアプランモジュールの定義を示す説明図である。
【図８】フロアプラン処理について説明する説明図である。
【図９】フロアプランモジュール内のゲートの配置について説明する説明図である。
【図１０】フロアプランモジュールクラスタについて説明する説明図である。
【図１１】階層レイアウトブロックについて説明する説明図である。
【図１２】クロックツリー構造について説明する説明図である。
【図１３】クロックツリー構造について説明する説明図である。
【図１４】クロックツリー構造について説明する説明図である。
【図１５】一般的な半導体集積回路の設計処理手順を示すフローチャートである。
【図１６】従来の半導体集積回路の設計処理のうちのレイアウト処理手順を示すフローチャートである。
【符号の説明】
【００９９】
１１  論理合成手段
１２  仮配線ＳＴＡ手段
１３  フロアプランモジュール定義手段
１４  ゲートレベルネットリスト再構成手段
１５  フロアプラン手段
１６  クロックツリー構築手段
２１  ＲＴＬデータ
２２，２７  ゲートレベルのネットリスト
２３  タイミング情報
２４，２５  フロアプランモジュール定義
４１，５１，９２，９３，１３１，１４１，１４２，１４３，１４４，１６１，１７１  フロアプランモジュール
６１，７１，１２１  チップ
６２，６３，６４，６５，６６，７２，７３，７４，７５，７６  ブロック領域
９１  フロアプランモジュールクラスタ
１２２，１２３  階層レイアウトブロック
１３２，１４９，１５０，１５１，１５２，１５３，１５４，１５５，１６２，１７２，１８１  クロックバッファ
【図１】
2008071000.tif 000003
【図２】
2008071000.tif 000004
【図３】
2008071000.tif 000005
【図４】
2008071000.tif 000006
【図５】
2008071000.tif 000007
【図６】
2008071000.tif 000008
【図７】
2008071000.tif 000009
【図８】
2008071000.tif 000010
【図９】
2008071000.tif 000011
【図１０】
2008071000.tif 000012
【図１１】
2008071000.tif 000013
【図１２】
2008071000.tif 000014
【図１３】
2008071000.tif 000015
【図１４】
2008071000.tif 000016
【図１５】
2008071000.tif 000017
【図１６】
2008071000.tif 000018