(57)【要約】【課題】フロアプラン設計におけるイタレーションを防ぎ、設計期間を短縮する。【解決手段】複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶部に記憶し、ネットリスト及びグループ設定情報に基づき、複数の回路モジュールにグループを設定し（Ｓ２１）、設定されたグループ間におけるタイミング制約を満たす距離を算出し（Ｓ２３）、算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成する（Ｓ２５）。【選択図】図３
2013045318.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶部に記憶し、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定し、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出し、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成する、
フロアプラン作成情報生成方法。
【請求項２】
前記ネットリストは、前記複数の回路モジュールが複数の階層レベルに区分された階層構造を有している、
請求項１に記載のフロアプラン作成情報生成方法。
【請求項３】
前記グループ設定情報は、前記階層レベルごとにグループ設定する回路モジュールを規定し、
前記グループの設定では、前記グループ設定情報に基づいて階層レベルを選択し、当該選択した階層レベルにおいて、前記複数の回路モジュールにグループを設定する、
請求項２に記載のフロアプラン作成情報生成方法。
【請求項４】
前記距離の算出において、前記設定されたグループ間におけるタイミング制約を満たす距離が算出できない場合、前記グループの設定において、選択されているグループの階層レベルよりも下位の階層レベルを選択し、当該選択した階層レベルにおいて、再度、前記複数の回路モジュールにグループを設定する、
請求項３に記載のフロアプラン作成情報生成方法。
【請求項５】
前記距離の算出は、第１のグループ内の第１のフリップフロップと第２のグループ内の第２のフリップフロップとを接続する接続経路の回路遅延に基づいて算出される、
請求項１乃至４のいずれか一項に記載のフロアプラン作成情報生成方法。
【請求項６】
前記回路遅延は、前記第１のフリップフロップから前記第１のグループの出力端子までの回路遅延と、前記第１のグループの出力端子から前記第２のグループの入力端子までの回路遅延と、前記第２のグループの入力端子から前記第２のフリップフロップまでの回路遅延を含んでいる、
請求項５に記載のフロアプラン作成情報生成方法。
【請求項７】
前記回路遅延は、前記第１のグループと前記第２のグループとの間に接続される第３のグループにおける、入力端子から出力端子までの回路遅延を含んでいる、
請求項６に記載のフロアプラン作成情報生成方法。
【請求項８】
前記回路遅延は、前記接続経路上に配置される遅延回路の段数に基づいて算出される、
請求項５乃至７のいずれか一項に記載のフロアプラン作成情報生成方法。
【請求項９】
前記遅延回路による遅延値を前記記憶部に記憶し、
前記回路遅延は、前記遅延回路の段数と前記遅延回路による遅延値とに基づいて算出される、
請求項８に記載のフロアプラン作成情報生成方法。
【請求項１０】
前記回路遅延は、前記遅延回路の段数と前記遅延回路による遅延値とを掛け算して算出される、
請求項９に記載のフロアプラン作成情報生成方法。
【請求項１１】
前記第１のフリップフロップと前記第２のフリップフロップ間のタイミング制約である制約時間を前記記憶部に記憶し、
前記距離の算出は、前記回路遅延と前記制約時間とに基づいて前記距離を算出する、
請求項５乃至１０のいずれか一項に記載のフロアプラン作成情報生成方法。
【請求項１２】
前記距離の算出は、前記制約時間から前記回路遅延を引き算して算出される、
請求項１１に記載のフロアプラン作成情報生成方法。
【請求項１３】
前記制約時間は、前記第１のフリップフロップ及び前記第２のフリップフロップに供給されるクロックのサイクル情報である、
請求項１１または１２に記載のフロアプラン作成情報生成方法。
【請求項１４】
前記接続経路を構成する配線の単位長さ当たりの遅延値を前記記憶部に記憶し、
前記距離の算出は、前記回路遅延と前記配線の遅延値とに基づいて前記距離を算出する、
請求項５乃至１０のいずれか一項に記載のフロアプラン作成情報生成方法。
【請求項１５】
前記距離の算出は、前記回路遅延に対し前記配線の遅延値を除算して算出される、
請求項１４に記載のフロアプラン作成情報生成方法。
【請求項１６】
前記接続経路を構成する配線の単位長さ当たりの遅延値を前記記憶部に記憶し、
前記距離の算出は、前記回路遅延と前記制約時間と前記配線の遅延値とに基づいて、前記距離を算出する、
請求項１１乃至１３のいずれか一項に記載のフロアプラン作成情報生成方法。
【請求項１７】
前記距離の算出は、前記制約時間から前記回路遅延を差し引いた値に対し、前記配線の遅延値を除算して算出される、
請求項１６に記載のフロアプラン作成情報生成方法。
【請求項１８】
コンピュータにフロアプラン作成情報生成方法を実行させるフロアプラン作成情報生成プログラムであって、前記フロアプラン作成情報生成方法は、
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶部に記憶し、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定し、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出し、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成する、
フロアプラン作成情報生成プログラム。
【請求項１９】
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶する記憶部と、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定するグループ設定部と、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出する距離算出部と、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成するフロアプラン作成情報生成部と、
を備えるフロアプラン作成情報生成装置。
【請求項２０】
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶部に記憶し、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定し、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出し、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成し、
前記ネットリスト、前記グループ設定情報及び前記フロアプラン作成情報に基づき、前記グループのフロアプランであるフロアプラン情報を作成する、
フロアプラン最適化方法。
【請求項２１】
コンピュータにフロアプラン最適化方法を実行させるフロアプラン最適化プログラムであって、前記フロアプラン最適化方法は、
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶部に記憶し、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定し、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出し、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成し、
前記ネットリスト、前記グループ設定情報及び前記フロアプラン作成情報に基づき、前記グループのフロアプランであるフロアプラン情報を作成する、
フロアプラン最適化プログラム。
【請求項２２】
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶する記憶部と、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定するグループ設定部と、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出する距離算出部と、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成するフロアプラン作成情報生成部と、
前記ネットリスト、前記グループ設定情報及び前記フロアプラン作成情報に基づき、前記グループのフロアプランであるフロアプラン情報を作成するフロアプラン作成部と、
を備えるフロアプラン最適化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フロアプラン作成情報生成方法、フロアプラン作成情報生成プログラム、フロアプラン作成情報生成装置、フロアプラン最適化方法、フロアプラン最適化プログラム及びフロアプラン最適化装置に関し、特に、回路モジュールを含む複数のグループに基づきフロアプランを作成するためのフロアプラン作成情報生成方法、フロアプラン作成情報生成プログラム、フロアプラン作成情報生成装置、フロアプラン最適化方法、フロアプラン最適化プログラム及びフロアプラン最適化装置に関する。
【背景技術】
【０００２】
近年、半導体集積回路（ＬＳＩ：Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の大規模化が進み、さらに、高い周波数による動作など高性能化も要求されている。このため、半導体集積回路の設計の難易度が高くなり、設計期間がますます長くなる傾向にある。一方、半導体集積回路の製品要求仕様確定から製品出荷までの顧客に要求される期間は、より短くなる傾向にあるため、設計期間の短縮が強く望まれている。
【０００３】
半導体集積回路の設計では、回路設計工程において、個々の機能モジュール（論理モジュールや回路モジュールともいう）が設計され、その後、レイアウト設計工程において、機能モジュールの配置を決定するフロアプランを行い、フロアプランに従って機能モジュールに含まれる回路の配置配線が行われる。
【０００４】
半導体集積回路のフロアプランを行う従来技術として、例えば、特許文献１が知られている。
【０００５】
図１８は、特許文献１に記載された従来のフロアプラン作成装置の構成を示している。図に示されるように、従来のフロアプラン作成装置９３０は、フロアプランを作成するフロアプラン作成部９２１、作成されたフロアプランを評価するフロアプラン評価部９２０、フロアプランの評価に基づいてフロアプランを修正するフロアプラン修正部９２２を有している。
【０００６】
また、フロアプラン評価部９２０は、フロアプランから着目する要素を抽出する着目要素抽出部９０２、抽出された要素を個別に評価する個別評価値を算出する個別評価値算出部９０３、算出された個別評価値に基づき総合評価値を算出する総合評価値算出部９０４、個別評価値及び総合評価値を記憶する記憶部９１１、個別評価値及び総合評価値に基づいて修正する項目を選択する修正項目選択部９１２を有している。
【０００７】
図１９は、特許文献１に記載さえた従来のフロアプラン作成方法を示している。図に示されるように、従来のフロアプラン作成方法では、まず、フロアプラン作成部９２１が、フロアプランのデータを作成する（Ｓ９０１）。
【０００８】
次いで、着目要素抽出部９０２は、作成されたフロアプランのデータから、配置情報と、接続情報と、グループ情報とを着目要素として抽出する（Ｓ９０２）。
【０００９】
次いで、個別評価値算出部９０３は、抽出された着目要素に関するデータの配置情報と、接続情報と、グループ情報とをもとに、仮想線の線長、仮想線同士の交差数、論理モジュール関係、ハードマクロセル関係、及びグループ領域の面積を個別評価項目として各々の個別評価値を算出する（Ｓ９０３）。
【００１０】
次いで、総合評価値算出部９０４は、算出された個別評価値である、仮想線の線長、仮想線同士の交差数、論理モジュール関係、ハードマクロセル関係、及びグループ領域の面積を加算することにより、評価対象となっているフロアプランに関する総合評価値を算出する（Ｓ９０４）。
【００１１】
次いで、記憶部９１１は、Ｓ９０３で算出された個別評価値と、Ｓ９０４で算出された総合評価値をデータベースとして登録する（Ｓ９０５）。
【００１２】
次いで、修正項目選択部９１２は、記憶された複数の個別評価値の中から、修正すべき一又は複数の個別評価項目を選択する（Ｓ９０６）。
【００１３】
次いで、修正項目選択部９１２は、選択された個別評価項目に関してフロアプランの修正は必要か否かを判定する（Ｓ９０７）。判断条件として、修正の繰り返し回数の最大値や、修正作業に要する所要時間の最大値が予め設定されており、現在の繰り返し回数や所要時間が最大値に到達していなければ、フロアプランの修正が必要であると判定する。
【００１４】
Ｓ９０７で、フロアプランの修正が必要な場合、フロアプラン修正部９２２は、フロアプランを修正する（Ｓ９０８）。
【００１５】
以上のように、特許文献１では、Ｓ９０２においてフロアプランから複数の着目要素が抽出され、Ｓ９０３において複数の個別評価値が求められ、Ｓ９０４において総合評価値を算出する。そして、複数のフロアプランを対象としてＳ９０２〜Ｓ９０４を実行することによって得られた複数の総合評価値を比較することにより、複数のフロアプランを相対的に評価する。従って、フロアプランの評価のために詳細な配置配線を行うまでもなく、作成されたフロアプラン自身を総合評価値によって定量的に評価することを可能としている。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００９−９５９８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
上記のように、特許文献１に記載された従来のフロアプラン作成方法では、フロアプランを作成し、作成したフロアプランを個別評価値及び総合評価値により評価することで、フロアプランを効率よく修正している。
【００１８】
しかしながら、従来のフロアプラン作成方法では、図１９の方法により、フロアプランを作成した後に、再度フロアプランの修正が必要となり、フロアプランの作成が繰り返される場合があることを、発明者は見出した。なお、フロアプラン作成工程後に、またフロアプラン作成工程に戻り、フロアプラン作成が繰り返されることをイタレーションという。
【００１９】
一般的に半導体集積回路を半導体チップに配置する場合、フロアプランを作成して、自動配置ツールで仮配置後に仮配線を行った後に、タイミング検証を実施し、フロアプランにて配置した論理モジュール間のタイミングエラーが配置起因であると判明すれば、人手によりフロアプラン工程まで戻り、フロアプランを修正することが繰り返し行われている。
【００２０】
すなわち、従来のフロアプラン作成方法によりフロアプランを作成したとしても、フロアプランを決定するために、フロアプランに対し仮配置及び仮配線し、タイミングを確認した場合、フロアプラン起因によりタイミングエラーとなる可能性がある。特に、図１９の従来のフロアプラン作成方法では、機能モジュール間のタイミングが考慮されていないため、タイミングエラーとなる可能性がある。そうすると、フロアプランを再度修正する必要があるため、フロアプランの作成が繰り返されてしまう。
【００２１】
したがって、従来のフロアプラン作成方法では、フロアプランの作成が繰り返されてイタレーションが生じ、設計期間が増加するという問題があった。
【課題を解決するための手段】
【００２２】
本発明は、複数の回路モジュールにグループを設定し、設定されたグループ間におけるタイミング制約を満たす距離を算出し、算出されたグループ間の距離を含みフロアプランを作成するためのフロアプラン作成情報を生成することを主な特徴としている。
【００２３】
本発明では、グループ間のタイミング制約を満たす距離に基づきフロアプランを作成するためのフロアプラン作成情報を生成するため、フロアプラン作成情報を用いてタイミングエラーの生じないフロアプランの作成が可能となり、フロアプラン設計におけるイタレーションを防ぎ、設計期間を短縮することができる。
【発明の効果】
【００２４】
本発明によれば、フロアプラン設計におけるイタレーションを防ぎ、設計期間を短縮することが可能なフロアプラン作成情報生成方法、フロアプラン作成情報生成プログラム、フロアプラン作成情報生成装置、フロアプラン最適化方法、フロアプラン最適化プログラム及びフロアプラン最適化装置を提供することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態１に係るフロアプラン作成情報生成装置の機能構成を示す図である。
【図２】本発明の実施の形態１に係るフロアプラン作成情報生成装置のハードウェア構成を示す図である。
【図３】本発明の実施の形態１に係るフロアプラン作成情報生成方法の流れを示すフローチャートである。
【図４】本発明の実施の形態１に係るフロアプラン作成情報生成方法で処理されるグループ設定情報を説明するための図である。
【図５】本発明の実施の形態１に係るフロアプラン作成情報生成方法の動作を説明するための図である。
【図６】本発明の実施の形態１に係るフロアプラン作成情報生成方法の動作を説明するための図である。
【図７】本発明の実施の形態１に係るフロアプラン作成情報生成方法で処理されるフロアプラン作成情報を説明するための図である。
【図８】本発明の実施の形態２に係るフロアプラン最適化装置の機能構成を示す図である。
【図９】本発明の実施の形態２に係るフロアプラン最適化方法の流れを示すフローチャートである。
【図１０】フロアプラン最適化方法の参考例の流れを示すフローチャートである。
【図１１】参考例によるフロアプランの具体例１のイメージ図である。
【図１２】本発明の実施の形態２によるフロアプランの具体例１のイメージ図である。
【図１３】参考例によるフロアプランの具体例２のイメージ図である。
【図１４】本発明の実施の形態２によるフロアプランの具体例２のイメージ図である。
【図１５】本発明の実施の形態２によるフロアプランの具体例２のイメージ図である。
【図１６】参考例によるフロアプランの具体例３のイメージ図である。
【図１７】本発明の実施の形態２によるフロアプランの具体例３のイメージ図である。
【図１８】従来のフロアプラン作成装置の機能構成を示す図である。
【図１９】従来のフロアプラン作成方法の流れを示すフローチャートである。
【発明を実施するための形態】
【００２６】
（本発明の実施の形態１）
以下、図面を参照して本発明の実施の形態１について説明する。
【００２７】
図１は、本発明の実施の形態１に係るフロアプラン作成情報生成装置の機能構成を示している。このフロアプラン作成情報生成装置１００は、階層構造を有するネットリストのグループを用いて半導体集積回路のレイアウト設計を行う場合における、フロアプラン作成工程の設計装置である。
【００２８】
フロアプラン作成情報生成装置１００は、入力される入力ファイル群１１に基づいて、フロアプラン作成情報１４やグループ配置不可情報１７を出力する。
【００２９】
入力ファイル群１１には、グループ設定情報１、ネットリスト２、評価関数設定情報３が含まれている。ネットリスト２は、半導体集積回路に配置配線される機能モジュール（回路モジュール）についての構成や接続関係が定義された回路情報であり、ここでは特に、階層構造を有するネットリストである。グループ設定情報１は、階層構造を有するネットリスト２内の機能モジュールをグループ指定する情報である。評価関数設定情報３は、ゲート１段当りの遅延値（以下、ゲート遅延値と呼ぶ）と単位配線長に対しての遅延値（以下、距離遅延値と呼ぶ)とサイクル情報を有する情報である。
【００３０】
フロアプラン作成情報生成装置１００は、グループ設定部４、回路情報抽出部１２、関連階層ブロック評価部８、タイミング判定処理部９、階層判定処理部１５、グループ修正部１０、配置不可情報作成部１６を備えている。
【００３１】
グループ設定部４は、入力ファイル群１１のネットリスト２とグループ設定情報１を入力とし、ネットリスト２の機能モジュールにグループを設定する。ここでは、ネットリスト２の階層を選択し機能モジュール（階層ブロック）にグループを設定する。例えば、選択された階層レベルについて、階層ブロックに設定されたグループを示す情報（例えば、階層ブロック情報）が生成される。
【００３２】
回路情報抽出部１２及び関連階層ブロック評価部８は、設定されたグループ間におけるタイミング制約を満たす距離を算出する距離算出部である。例えば、設定されたグループを示す情報を参照し、複数の階層ブロック（機能モジュール）を接続する経路（パス）について、タイミング制約を満たす距離を算出する。
【００３３】
回路情報抽出部１２は、設定されたグループにおける回路の段数を算出する回路段数算出部である。例えば、設定されたグループを示す情報を参照し、複数の階層ブロック（機能モジュール）の全ての入出力経路（パス）について、遅延回路（ゲート回路）の段数（個数）である回路段数を抽出する。
【００３４】
回路情報抽出部１２は、階層ブロック入出力段数算出部５と、階層ブロック通過段数算出部６と、階層ブロック間接続情報抽出部７を備えている。
【００３５】
階層ブロック入出力段数算出部５は、グループ設定された各階層ブロックについて、ネットリスト２より始点または終点となる順序セル（またはフリップフロップ）を含む階層ブロックで、順序セルから階層ブロックの出力端子までの論理素子段数（階層ブロック出力段数）を算出し、階層ブロックの入力端子から順序セルまでの論理素子段数（階層ブロック入力段数）を算出する。
【００３６】
階層ブロック通過段数算出部６は、グループ設定された各階層ブロックについて、階層ブロックを通過する経路がある場合に、階層ブロックの入力端子から組み合わせ回路を介して当該階層ブロックの出力端子まで通過する論理素子段数（階層ブロック通過段数）を算出する。順序セルから順序セルまので経路を抽出し、階層ブロックの中を順序セルを介さずに通過する段数を算出する。
【００３７】
階層ブロック間接続情報抽出部７は、グループ設定された各階層ブロックについて、階層ブロック間の論理素子段数（階層ブロック間接続情報）を算出する。順序セルから順序セルまので経路を抽出し、階層ブロックから他の階層ブロックまでの段数を算出する。
【００３８】
関連階層ブロック評価部８は、回路情報抽出部１２で抽出した階層ブロック出力段数、階層ブロック入力段数、階層ブロック通過段数、階層ブロック間接続情報と、入力ファイル群１１の評価関数設定情報３を入力して、タイミング制約を満たす各階層ブロック間の距離を算出する。
【００３９】
タイミング判定処理部９は、関連階層ブロック評価部８にて算出された距離をもとに、階層ブロック間のタイミングを満足しているかを判定する。
【００４０】
階層判定処理部１５は、タイミング判定処理部９にて各階層ブロック間のタイミングが満足できないと判定された場合、グループ設定情報１で指定された階層ブロックの下位階層が存在するかどうか判定を行う。
【００４１】
グループ修正部１０は、階層判定処理部１５において最下位層ではない、すなわち、下位階層が存在すると判定された場合、グループ設定情報１に基づいて、下位階層を選択し、選択した階層で階層ブロックにグループを設定する。
【００４２】
配置不可情報作成部１６は、階層判定処理部１５において最下位層である、すなわち、下位階層が存在しないと判定された場合、グループ配置不可情報１７を出力して処理を終了する。
【００４３】
フロアプラン作成情報出力部（フロアプラン作成情報生成部）１３は、タイミング判定処理部９にて各階層ブロック間のタイミングを満足する場合に、グループ間の距離情報であるフロアプラン作成情報１４を生成し出力する。
【００４４】
例えば、フロアプラン作成情報出力部１３は、フロアプラン作成情報１４として、初めに、階層ブロック間のタイミングを満足する距離であって、階層ブロック内で順序セルを介さずに通過する経路における距離のうち、小さい方を優先して抽出し、次に、階層ブロック間のタイミングを満足する距離であって、階層ブロック内で順序セルを介して通過する経路における距離のうち、小さい方を優先して抽出する。
【００４５】
図２は、本発明の実施の形態１に係るフロアプラン作成情報生成装置のハードウェア構成を示している。フロアプラン作成情報生成装置は、パーソナルコンピュータやワークステーションなどの情報処理装置から構成され、情報処理装置上でプログラムが実行されることにより、フロアプラン作成情報生成装置の各機能及びフロアプラン作成情報生成方法の各処理が実現される。
【００４６】
フロアプラン作成情報生成装置は、制御部５１、記憶部５２、入力部５３、出力部５４を備えている。なお、制御部５１、記憶部５２、入力部５３、出力部５４は、全てを１つのハードウェア装置により構成してもよいし、複数のハードウェア装置により構成してもよい。また、ネットワーク等を介して接続してもよい。
【００４７】
制御部５１は、ＣＰＵ（Central Processing Unit）などであり、記憶部５２に記憶されたプログラムを実行して演算等を行うことにより、後述のフロアプラン作成情報生成方法が実行される。
【００４８】
入力部５３は、キーボードやマウスなどの入力装置である。入力ファイル群１１などが入力部５３から入力され、記憶部５２に記憶される。出力部５４は、ディスプレイ等の表示装置であり、生成されたフロアプラン作成情報１４やグループ配置不可情報１７等を表示する。
【００４９】
記憶部５２は、ハードディスクなどの記憶装置であり、フロアプラン作成情報生成方法を実行するためのフロアプラン作成情報生成プログラムや、入力ファイル群１１、フロアプラン作成情報１４、グループ配置不可情報１７、その他、フロアプラン作成情報の生成に必要な情報が記憶される。
【００５０】
次に、図３〜図７を用いて、本発明の実施の形態１に係るフロアプラン作成情報生成装置で動作するフロアプラン作成情報生成方法について説明する。
【００５１】
図３のフローチャートは、フロアプラン作成情報生成方法の流れを示している。図に示されるように、フロアプラン作成情報生成方法では、まず、グループ設定部４はグループを設定し（Ｓ２１）、回路情報抽出部１２は、設定したグループに関する経路の回路段数を算出し（Ｓ２２）、関連階層ブロック評価部８は、段数算出した結果に対し経路の遅延及びタイミング制約を満たす距離を計算し（Ｓ２３）、タイミング判定処理部９は、算出した距離についてタイミングを確認する（Ｓ２４）。
【００５２】
Ｓ２４のタイミング確認がＯＫの場合、フロアプラン作成情報出力部１３は、フロアプラン作成情報１４を生成し（Ｓ２５）、処理が終了する。一方、Ｓ２４のタイミング確認がＮＧの場合、階層判定処理部１５は、階層を下位に変更できるかどうか判定する（Ｓ３０）。
【００５３】
Ｓ３０の階層判定でＯＫの場合、グループ修正部１０は、グループ設定を修正し（Ｓ３１）、再度グループを設定する（Ｓ２１）。一方、Ｓ３０の階層判定でＮＧの場合、配置不可情報作成部１６は、配置不可情報を作成し（Ｓ３２）、処理が終了する。
【００５４】
以下、図３の各ステップについて、さらに詳細に説明する。
【００５５】
まず、図３のＳ２１において、グループ設定部４は、ネットリスト２とグループ設定情報１に基づき、機能ブロックにグループを設定する。グループ設定部４は、グループ設定情報１から与えられる階層ブロック指定情報を読み込み、ネットリスト２内の機能モジュールとグループ設定が一致するグループ名をグループ指定する。なお、グループとは、グループ設定情報（階層ブロック指定情報）に従って設定される回路集合の単位である。ここでは、機能モジュール単位にグループ設定されて階層ブロックが構成されるため、グループ、階層ブロック及び機能モジュールは、それぞれ１対１で対応している。例えば、ある機能が指定されたグループでは、その機能を有する機能モジュールが当該グループに属することになる。
【００５６】
図４（ａ）は、グループ設定情報１の一例である。グループ設定情報１では、図４（ａ）の各行が階層ブロック指定情報であり、トップレベルから階層レベル順に階層ブロック（機能モジュール）が指定されている。
【００５７】
例えば、１行目の「ＴＯＰ／ＡＡＡ／ＷＷＷ」という記述は、トップレベルの下位であるレベル１にグループＡＡＡが属し、グループＡＡＡの下位であるレベル２にグループＷＷＷが属することを指定している。
【００５８】
図４（ｂ）は、図４（ａ）のグループ設定情報１に基づき、グループを設定した場合の階層関係を示すイメージ図である。トップレベルは、最上位の階層である。トップレベルにはトップレベルグループのみが設定され、トップレベルグループには下位の全ての機能モジュール、すなわち、グループＡＡＡ、グループＢＢＢ、グループＣＣＣが含まれる。
【００５９】
トップレベルの下位階層であるレベル１には、グループＡＡＡ、グループＢＢＢ、グループＣＣＣが設定される。グループＡＡＡには、下位のグループＷＷＷ、グループＸＸＸが含まれ、グループＢＢＢには、下位のグループＹＹＹが含まれ、グループＣＣＣには、下位のグループＺＺＺが含まれる。
【００６０】
レベル１の下位階層であるレベル２が、例えば、最下位の階層である。レベル２には、グループＷＷＷ、グループＸＸＸ、グループＹＹＹ、グループＺＺＺが設定される。
【００６１】
Ｓ２１では、図４（ｂ）のような階層構造において、階層を選択し、選択された階層に属する機能モジュールにグループが設定される。例えば、設定されたグループを示す情報として、選択した階層に属する階層ブロックを含む情報が生成され、この情報をもとにＳ２２以降の処理が行われる。フロアプラン作成情報生成方法では、まず、レベル１の階層が選択され、タイミングエラーとなる場合に、次に下位のレベル２が選択される。
【００６２】
次いで、図３のＳ２２において、回路情報抽出部１２は、グループ設定部４で設定された各グループについて、回路段数を算出する。ここでは、タイミング遅延の計算速度向上の為に、タイミング遅延を回路段数を用いて簡易的に数値化する。
【００６３】
具体的には、階層ブロック入出力段数算出部５は、階層ブロック内の順序セルと入力端子または出力端子との間の回路段数を算出し、階層ブロック通過段数算出部６は、階層ブロックを通過する経路の回路段数を算出し、階層ブロック間接続情報抽出部７は、階層ブロック間の回路段数を算出する。順序セルは、複数のフリップフロップ（ＦＦ）を含んでおり、ここでは、フリップフロップを基準として、フリップフロップに接続される経路の回路段数を算出する。なお、フリップフロップ単位ではなくセル単位で回路段数を算出してもよい。
【００６４】
階層ブロック入出力段数算出部５は、ネットリスト２を参照し、グループ設定部４で設定された各グループに対し、フリップフロップからフリップフロップが属するグループの全出力端子までの回路段数を調査する。すなわち、各グループの全てのフリップフロップについて、フリップフロップと全出力端子とを接続する経路を求め、各経路上に配置されるゲート回路の数をカウントする。
【００６５】
このフリップフロップから出力端子までの段数の算出により、次の（式１）のような段数情報（出力段数情報）が生成される。
グループ  ［ＦＦ名］［グループ名／出力端子名］＝段数  ・・・（式１）
【００６６】
例えば、図５（ａ）に示すようなグループＡ１の場合、ＦＦ１からＯＵＴ１１までの回路段数が１０であり、ＦＦ１からＯＵＴ１２までの回路段数が２０であるため、次の（式１１）、（式１２）のような段数情報となる。
グループ  ［ＦＦ１］［グループＡ１／ＯＵＴ１１］＝１０  ・・・（式１１）
グループ  ［ＦＦ１］［グループＡ１／ＯＵＴ１２］＝２０  ・・・（式１２）
【００６７】
また、階層ブロック入出力段数算出部５は、ネットリスト２を参照し、グループ設定部４で設定された各グループに対し、グループの全入力端子からグループ内のフリップフロップまでの回路段数を調査する。すなわち、各グループの全てのフリップフロップについて、全入力端子とフリップフロップとを接続する経路を求め、各経路上に配置されるゲート回路の数をカウントする。
【００６８】
この入力端子からフリップフロップまでの段数の算出により、次の（式２）のような段数情報（入力段数情報）が生成される。
グループ  ［グループ名／入力端子名］［ＦＦ名］＝段数  ・・・（式２）
【００６９】
例えば、図５（ｂ）に示すようなグループＢ１の場合、ＩＮ１１からＦＦ２までの回路段数が１０であり、ＩＮ１２からＦＦ２までの回路段数が２０であるため、次の（式２１）、（式２２）のような段数情報となる。
グループ  ［グループＢ１／ＩＮ１１］［ＦＦ２］＝１０・・・（式２１）
グループ  ［グループＢ１／ＩＮ１２］［ＦＦ２］＝２０・・・（式２２）
【００７０】
階層ブロック通過段数算出部６は、ネットリスト２を参照し、グループ設定部４で設定された各グループに対し、グループの全入力端子及び全出力端子について、フリップフロップへの繋がりが無い場合、グループの入力端子からグループの出力端子への回路段数を調査する。すなわち、各グループについて、グループ内で全入力端子と全出力端子とを接続する経路を求め、全経路のうちグループ内のフリップフロップを経由しない経路を特定し、この経路上に配置されるゲート回路の数をカウントする。
【００７１】
この入力端子から出力端子までの通過段数の算出により、次の（式３）のような段数情報（通関段数情報）が生成される。
グループ  ［グループ名／入力端子名］［グループ名／出力端子名］＝段数・・・（式３）
【００７２】
例えば、図５（ｃ）に示すようなグループＣ１の場合、ＩＮ２１からＯＵＴ２１までの回路段数が１５であり、ＩＮ２２からＯＵＴ２２までの回路段数が２５であるため、次の（式３１）、（式３２）のような段数情報となる。
グループ  ［グループＣ１／ＩＮ２１］［グループＣ１／ＯＵＴ２１］＝１５・・・（式３１）
グループ  ［グループＣ１／ＩＮ２２］［グループＣ１／ＯＵＴ２２］＝２５・・・（式３２）
【００７３】
階層ブロック間接続情報抽出部７は、ネットリスト２を参照し、グループ設定部４で設定された各グループに対し、グループの全入力端子及び全出力端子について、各グループ以外を介して繋がっている部分に対し、回路段数を調査する。すなわち、各グループについて、グループ外で全入力端子と全出力端子とを接続する経路を求め、全経路のうちグループを経由しない経路を特定し、この経路上に配置されるゲート回路の数をカウントする。
【００７４】
このグループ間の段数の算出により、次の（式４）のような段数情報（グループ間段数情報）が生成される。
ＴＯＰ［グループ名／出力端子名］［グループ名／入力端子名］＝段数・・・（式４）
【００７５】
例えば、図５（ｄ）に示すようなグループＡ２とグループＢ２の場合、ＯＵＴ３１からＩＮ３１までの回路段数が１０であり、ＯＵＴ３２からＩＮ３２までの回路段数が２０であるため、次の（式４１）、（式４２）のような段数情報となる。
ＴＯＰ  ［グループＡ２／ＯＵＴ３１］［グループＢ２／ＩＮ３１］＝１０・・・（式４１）
ＴＯＰ  ［グループＡ２／ＯＵＴ３２］［グループＢ２／ＩＮ３２］＝２０・・・（式４２）
【００７６】
次いで、図３のＳ２３において、関連階層ブロック評価部８は、入力ファイル群１１の評価関数設定情報３を入力して、回路情報抽出部１２が算出した回路段数に基づき、タイミング遅延を算出し、タイミング制約を満たす距離を算出する。
【００７７】
ここで、評価関数設定情報３は、次のようなゲート遅延値Ｇと、距離遅延値Ｔと、サイクル情報Ｆを有する。サイクル情報Ｆは、フリップフロップに供給されるクロックのサイクルであり、クロックサイクルの１周期の時間を示すサイクル時間である。サイクル情報Ｆは、フリップフロップ間でデータが伝達されなければならない時間であり、タイミング制約でもある。
Ｇ＝ゲート１段当りの遅延値（ゲート遅延値）
Ｔ＝単位配線長に対しての遅延値（距離遅延値）
Ｆ＝サイクル情報
【００７８】
関連階層ブロック評価部８は、ゲート遅延値Ｇ、距離遅延値Ｔ、サイクル情報Ｆ、上記（式１）〜（式４）の段数の段数を用いて遅延を計算する。すなわち、次の（式５）のように、上記（式１）〜（式４）により抽出された段数の合計した総段数Ｄ（総段数情報）を求める。
総段数Ｄ＝（式１）＋（式２）＋（式３）＋（式４）  ・・・（式５）
【００７９】
そして、次の（式６）のように、上記総段数Ｄに評価関数設定情報３のゲート遅延値Ｇを掛けることで、セル遅延Ｔｃ（回路遅延情報）を求める。
セル遅延Ｔｃ＝  Ｄ  ＊  Ｇ  ・・・（式６）
【００８０】
さらに、次の（式７）のように、評価関数設定情報３のサイクル情報Ｆから上記セル遅延Ｔｃを引き算することで、距離遅延Ｔｌ（距離遅延情報）を求める。
距離遅延Ｔｌ＝  Ｆ−Ｔｃ  ・・・（式７）
【００８１】
さらに、次の（式８）のように、上記距離遅延Ｔｌを評価関数設定情報３の距離遅延値Ｔにより割ることで、グループ間でタイミング制約を満たすために必要な距離Ｌ（距離情報）を算出する。
距離Ｌ＝  Ｔｌ  ／  距離遅延値Ｔ  ・・・（式８）
【００８２】
例えば、図６（ａ）の例で、グループＡ３とグループＢ３間の距離Ｌは、グループＡ３について上記（式１）により求めたフリップフロップから出力端子までの段数、グループＢ３について上記（式２）により求めた入力端子からフリップフロップまでの段数、グループＡ３とグループＢ３について上記（式４）により求めたグループ間の段数を、上記（式５）〜（式８）に代入し算出することができる。この距離Ｌは、タイミング制約を満たすようなフロアプランを作成するためのパラメータであり、距離Ｌ以下の距離にグループを配置してフロアプランを作成すると、フロアプランにおいてタイミング制約を満たすことが保証される。また、ここでは、距離Ｌは、グループの重心（中心）から他のグループの重心までの距離である。
【００８３】
なお、距離Ｌが小さくタイミングが厳しい場合に、重心から出力端子あるいは入力端子まで離れているようであれば、グループの出力端子や入力端子の位置を重心に近づくように調整し、距離Ｌを小さくしてもよい。
【００８４】
次いで、図３のＳ２４において、タイミング判定処理部９は、関連階層ブロック評価部８で算出した距離Ｌ（距離情報）に基づきタイミングを確認する。
【００８５】
具体的には、上記（式８）で算出した全てのグループ間の距離Ｌについて、フロアプランでグループ配置可能な距離であるかどうか判定し、全ての距離Ｌが配置可能であればタイミング制約を満たすとし、距離Ｌが１つでも配置不可能であればタイミング制約を満たさないとする。例えば、距離Ｌとフロアプランに必要な最低距離とを比較し、距離Ｌが最低距離よりも小さい場合は配置可能とし、距離Ｌが最低距離よりも大きい場合は配置不可能とする。最低距離には任意の値が設定できる。
【００８６】
次いで、図３のＳ２４でタイミング確認がＯＫの場合、すなわち、距離Ｌがグループ配置可能な距離と判断された場合、図３のＳ２５において、フロアプラン作成情報出力部１３は、フロアプラン作成情報１４を生成し出力する。上記（式８）で算出した全てのグループ間の距離Ｌ（距離情報）をフロアプラン作成情報１４として生成する。
【００８７】
図７は、フロアプラン作成情報１４の例である。フロアプラン作成情報１４の各行には、グループ間の距離Ｌと、グループ間の経路である接続関係とが対応付けられて記載されている。例えば、図７では、１行目は、グループ１からグループ３を介しグループ２までの距離が４．１ｍｍ以下、２行目は、グループ４からグループ１までの距離が２．７ｍｍ以下である必要があることを示している。
【００８８】
図３のＳ２４でタイミング確認がＮＧの場合、すなわち、距離Ｌがグループ配置不可能な距離と判断された場合、図３のＳ３０において、階層判定処理部１５は、階層変更可能かどうか、すなわち、グループ設定の階層が最下位層であるかどうか判定を行う。現在選択されている階層のグループではタイミング制約を満たさないため、タイミング制約を満たすようにするにはグループの変更が必要である。現在の階層が、最下位層でなければ下位の階層に変更可能であり、最下位層であれば階層の変更は不可能である。
【００８９】
図３のＳ３０で階層が変更可能である場合、すなわち、最下位層では無いと判断された場合、図３のＳ３１において、グループ修正部１０は、現在の階層を下位の階層に変更しグループ設定を修正する。
【００９０】
例えば、図６（ａ）のようにレベル１の階層でグループ間の距離Ｌを算出し、タイミング確認がＮＧの場合、図６（ｂ）のように下位のレベル２の階層に変更しグループ間の距離Ｌを算出する。グループ設定の階層を下位に変更することで、対象グループの大きさが小さくなるため、距離Ｌが短くなり、タイミングを満足することが可能になる。
【００９１】
図３のＳ３０で階層が変更不可能である場合、すなわち、最下位層であると判断された場合、図３のＳ３２において、配置不可情報作成部１６は、グループ配置不可情報１７を作成し出力する。例えば、グループ配置不可情報１７は、各階層で算出したグループ間の距離Ｌが含まれ、タイミングエラーとなるグループ間の距離Ｌが含まれている。
【００９２】
また、グループ配置不可情報１７が出力されると、現在の条件では、タイミング制約を満たすフロアプランを作成することはできない。このため、グループ配置不可情報１７に基づいて入力ファイル群１１を修正してもよい。例えば、サイクル情報Ｆを大きくして、タイミング制約を緩くしてもよいし、タイミングエラーとなる経路について、ネットリスト２を修正してもよい。
【００９３】
以上のように、本実施形態では、階層構造を有するネットリストについてグループを設定し、グループ間のタイミング制約を満たすために必要な距離を示すフロアプラン作成情報を作成する。このフロアプラン作成情報を用いてフロアプランを作成すると、フロアプランにおけるグループ間のタイミング制約を予め満たすことが可能になるため、フロアプランの修正が不要となる。したがって、フロアプラン設計のイタレーションを防ぎ、設計期間を短縮することができる。
【００９４】
（本発明の実施の形態２）
以下、図面を参照して本発明の実施の形態２について説明する。本実施形態では、実施の形態１と同様にフロアプラン作成情報を生成し、さらに、フロアプラン作成情報に基づきフロアプランを作成する。
【００９５】
図８は、本発明の実施の形態２に係るフロアプラン最適化装置の機能構成を示している。フロアプラン最適化装置３００は、フロアプラン作成情報生成装置１００とフロアプラン作成装置２００とを備えている。図７の入力ファイル群１１、フロアプラン作成情報生成装置１００、フロアプラン作成情報１４は、図１と同様の構成である。なお、フロアプラン最適化装置３００のハードウェア構成は、図２と同様であり、フロアプラン最適化プログラムが図２のハードウェアにより実行されることにより、フロアプラン最適化装置の各機能及びフロアプラン最適化方法の各処理が実現される。
【００９６】
フロアプラン作成装置２００は、フロアプラン作成情報１４に基づいてフロアプランを作成する。フロアプラン作成装置２００は、フロアプラン作成部２１、仮配置部２２、仮配線部２３、配置配線タイミング判定処理部２４、フロアプラン決定部２５を備えている。
【００９７】
フロアプラン作成部２１は、フロアプラン作成情報１４を入力し、半導体チップ全体のフロアプラン（フロアプラン情報）を作成する。仮配置部２２は、作成されたフロアプランに基づいて、半導体チップのレイアウト面上に各回路を仮配置する。仮配線部２３は、仮配置された各回路間について仮配線を行う。例えば、仮配置部２２及び仮配線部２３は、自動配置配線ツール等により実現可能である。
【００９８】
配置配線タイミング判定処理部２４は、仮配置及び仮配線した配置配線情報について、タイミング遅延を検証し、タイミングエラーの有無を確認する。例えば、配置配線タイミング判定処理部２４は、タイミング解析ツール等により実現可能である。
【００９９】
フロアプラン決定部２５は、タイミング確認の結果、タイミング制約を満たしている場合に、仮配置及び仮配線を行ったフロアプランを、フロアプラン情報３０として出力する。
【０１００】
次に、図８のフローチャートを用いて、本発明の実施の形態２に係るフロアプラン最適化装置で動作するフロアプラン最適化法について説明する。図８のＳ２１〜Ｓ２５，Ｓ３０〜Ｓ３２は、フロアプラン作成情報生成装置１００で実行されるフロアプラン作成情報生成処理であり、図２と同様である。すなわち、フロアプラン作成情報生成装置１００が、Ｓ２１〜Ｓ２５、Ｓ３０〜Ｓ３２により、フロアプラン作成情報１４を生成する。その後、フロアプラン作成装置２００が、Ｓ４１〜Ｓ４５により、フロアプラン情報３０を作成する。
【０１０１】
フロアプラン作成装置２００では、まず、フロアプラン作成部２１が、Ｓ２５で生成されたフロアプラン作成情報１４を入力し、フロアプラン（フロアプラン情報）を作成する（Ｓ４１）。すなわち、各グループを配置する距離が、フロアプラン作成情報１４に含まれる距離Ｌよりも小さくなるように、各グループの位置を決定しフロアプランを作成する。このとき、少なくとも距離Ｌよりも近くにグループが配置できればよい。
【０１０２】
ここで、グループ間パス（経路）やグループが複数ある場合が一般的であり、フロアプラン作成情報１４の距離Ｌは複数になるため、必要な距離Ｌを使いフロアプランを行うことが好ましい。
【０１０３】
例えば、グループ内のパスには着目せずグループ間のパスに着目して距離Ｌを適用する。具体的には、グループ１からグループ４へのパスが複数あった場合は、グループ間単位で必要な距離Ｌの値が一番小さい値を適用する。また、グループから複数のグループへ繋がりがある場合、必要な距離Ｌの値が最も小さい値のグループからフロアプランする事で、タイミングが一番厳しいグループ間を最優先してフロアプランする。
【０１０４】
また、本発明では、タイミング要素を最重要項目としてフロアプランを作成するが、仮配線の長さや仮配線の交差など他のパラメータを考慮してフロアプランを作成してもよい。また、必要な距離Ｌの値が大きい場合は、タイミングが厳しくないグループ間である事が、フロアプラン作成時に判断が出来る為、遠くに配置し迂回配線が発生してもタイミングに問題は発生しない。
【０１０５】
次いで、仮配置部２２は、作成されたフロアプラン情報に基づき、半導体チップのレイアウト面において、決定されたグループの位置に機能モジュールや機能モジュールに含まれる回路を仮配置する（Ｓ４２）。次いで、仮配線部２３は、フロアプラン情報に基づき仮配置された機能モジュールや回路間を接続するように仮配線を行う（Ｓ４３）。
【０１０６】
次いで、配置配線タイミング判定処理部２４は、仮配置・仮配線された配置配線情報に基づきタイミング確認を行う（Ｓ４４）。すなわち、配置配線された全ての回路間のパスについてタイミング制約を満たすかどうか判定する。Ｓ４４において、タイミング制約を満足しない場合、タイミング制約を満たすように再度、仮配線部２３により仮配線が行われる（Ｓ４３）。Ｓ４４において、タイミング制約を満足する場合、フロアプラン決定部２５は、配置配線した情報でフロアプランを決定し、現在のフロアプラン情報３０を出力する（Ｓ４５）。
【０１０７】
ここで、本発明適用前と本発明適用後のフロアプランを比較して説明するために、本発明適用前のフロアプラン最適化方法の参考例を図１０に示す。図１０では、Ｓ９１０が図１９の従来のフロアプラン作成方法と同様である。
【０１０８】
すなわち、参考例では、図１９と同様に、フロアプランを作成し（Ｓ９０１）、フロアプランから着目要素を抽出し（Ｓ９０２）、フロアプランから個別評価値を算出し（Ｓ９０３）、個別評価値から総合評価値を算出し（Ｓ９０４）、個別評価値と総合評価値をデータベースへ登録し（Ｓ９０５）、個別評価値と総合評価値から修正項目を選択し（Ｓ９０６）、選択された修正項目についてフロアプランの修正が必要か否かを判定する（Ｓ９０７）。Ｓ９０７で、フロアプランの修正が必要な場合、フロアプランを修正する（Ｓ９０８）。
【０１０９】
Ｓ９０７で、フロアプランの修正が不要な場合、生成されたフロアプランに基づき仮配置を行い（Ｓ９１１）、仮配置された回路間について仮配線を行い（Ｓ９１２）、仮配置及び仮配線された回路についてタイミング確認を行う（Ｓ９１３）。
【０１１０】
Ｓ９１３において、タイミング確認により、タイミング制約を満足する場合には、配置配線した情報でフロアプランが決定し、フロアプラン情報が出力される（Ｓ９１４）。
【０１１１】
Ｓ９１３において、タイミング確認により、タイミング制約を満足しない場合には、フロアプランの変更が必要かどうか、すなわち、タイミングエラーの原因がフロアプランに起因するかどうか判定される（Ｓ９１５）。
【０１１２】
Ｓ９１５において、フロアプランの変更が必要ない場合には、再度、仮配線し（Ｓ９１２）、タイミングが確認される（Ｓ９１３）。
【０１１３】
Ｓ９１５において、フロアプランの変更が必要である場合には、フロアプラン作成処理に戻り、フロアプランの修正（Ｓ９０８）が行われる。フロアプラン修正後、タイミング確認によりタイミングエラーが解消するまで、フロアプランの修正が繰り返され、イタレーションが生じる。
【０１１４】
参考例では、図１９の従来技術と同様に、配置情報と接続情報とグループ情報を元に、仮配線の線長と、仮想配線の交差点と、論理モジュール関係と、ハードマクロセル関係と、グループ領域の面積とを、個別評価項目として抽出し、全体スコアとしてフロアプランを評価しており、論理モジュール間のタイミングを考慮していない。このため、図１０では、フロアプラン作成後（Ｓ９１０）、仮配置（Ｓ９１１）、仮配線（Ｓ９１２）を行った後にタイミング確認（Ｓ９１３）で論理モジュール間のタイミング制約を満足出来ず、その原因がフロアプラン起因と判断（Ｓ９１５）された場合は、フロアプラン修正（Ｓ９１０）が必要になるというイタレーションが発生し、設計期間が増えてしまう。
【０１１５】
特に、タイミングを考慮せずに接続情報や仮配線の線長を元にフロアプランを作成し、仮配置、仮配線後のタイミング解析結果からフロアプラン修正が必要なった場合、タイミングエラーが配置起因であるか判断するのに時間を要する事と、フロアプラン修正してタイミング検証を行わないとタイミングエラーが改善しているか判明しないため、複数回のイタレーションが発生して設計期間が増えてしまう。
【０１１６】
これに対し、本発明では、図９に示すように、グループ間のタイミング制約を満たす距離であるフロアプラン作成情報１４を生成し、フロアプラン作成情報１４に基づいてフロアプランを作成するため、予めフロアプランにおけるタイミングエラーの発生を抑止できる。したがって、フロアプラン起因によるタイミングエラーは生じないため、フロアプラン作成のイタレーションを防ぐことができる。本発明では、図９のように、仮配置（Ｓ４２）、仮配線（Ｓ４３）を実施した後に、２回目のタイミング確認（Ｓ４５）を実施し、タイミング制約を満たす場合は、フロアプランが決定（Ｓ４５）し終了する。２回目のタイミング確認（Ｓ４４）でタイミング制約を満たさない場合でも、フロアプランの修正の必要はなく、仮配線（Ｓ４３）へ戻り、配線を実施し直すことでタイミングエラーを解消することができるため、設計期間の短縮が可能である。
【０１１７】
図１０の参考例によりフロアプランを作成した場合と、図９の本発明によりフロアプランを作成した場合とで、具体的なフロアプラン例について説明する。
【０１１８】
まず、フロアプランの具体例１として、図１１に参考例によるフロアプラン、図１２に本発明によるフロアプランを示す。
【０１１９】
この例では、グループＡ１０とグループＢ１０の接続数が１００本、グループＢ１０とグループＣ１０の接続数が１０本と少ないのに対し、グループＤ１０から、グループＡ１０、グループＢ１０、グループＣ１０への接続数が１０００本と多い。
【０１２０】
参考例によるフロアプランでは、接続本数を考慮しているものの、グループ間のタイミングは考慮されていない。このため、参考例の場合、図１１に示すように、グループＤ１０をレイアウト面中央部に配置して、グループＤ１０の周囲を囲むように、グループＡ１０、グループＢ１０、グループＣ１０をレイアウト面周辺の角部に配置するフロアプランが作成される。
【０１２１】
しかし、グループＡ１０からグループＢ１０を経由してグループＣ１０に接続する経路について、接続本数が少ないが、タイミングが厳しい場合、図１１のように接続関係だけを考慮した配置ではタイミング制約を満足させる事が出来ずに、フロアプラン修正が必要となる。すなわち、図１０の参考例のように、フロアプラン作成後のタイミング確認でエラーとなって、フロアプラン修正することになり、イタレーションが発生する。
【０１２２】
一方、本発明では、上記のようにタイミング制約を満たすような距離Ｌを示すフロアプラン作成情報１４に基づいてフロアプランを作成する。すなわち、フロアプラン作成情報には、グループＡ１０からグループＢ１０を介してグループＣ１０へ接続するパスのタイミング制約を満たすための、グループＡ１０、グループＢ１０、グループＣ１０間の距離が含まれている。
【０１２３】
したがって、本発明では、図１２に示すように、フロアプラン作成情報１４に記載された距離の範囲内にグループＡ１０、グループＢ１０、グループＣ１０を配置する。そして、グループＤ１０は、グループＡ１０とグループＢ１０とグループＣ１０に接続できるように配置される。このため、グループＡ１０とグループＢ１０とグループＣ１０のタイミング制約が必ず満足されることになる。
【０１２４】
すなわち、図９の本発明では、図１０の参考例のように、仮配置後、仮配線後のタイミング確認からフロアプランの修正に戻るようなイタレーションが無くなり、設計期間の増加を防ぐことができる。
【０１２５】
次に、フロアプランの具体例２として、図１３に参考例によるフロアプラン、図１４，１５に本発明によるフロアプランを示す。
【０１２６】
この例は、グループＡ１１、グループＢ１１、グループＣ１１の配置に着目した例であり、グループＡ１１、グループＢ１１、グループＣ１１の経路について、フロアプラン作成情報１４の距離Ｌを算出する例について説明する。
【０１２７】
参考例では、図１３に示すように、図１１と同様、レイアウト面中央部にグループＤ１１が配置され、レイアウト面周辺の角部にグループＡ１１、グループＢ１１、グループＣ１１が配置されたフロアプランとなる。
【０１２８】
しかしながら、上記のように、このフロアプランでは、タイミングエラーが発生するおそれがあるため、本発明では、タイミング制約を満たす距離Ｌを算出する。ここでは、グループＡ１１からグループＢ１１を通過してグループＣ１１に接続されるパスについての算出例を説明する。
【０１２９】
ここでは、評価関数設定情報３のゲート遅延値Ｇ、距離遅延値Ｔ、サイクル情報Ｆは次の（式１０１）とする。
Ｇ＝０．１  ｎｓ、Ｔ＝１．１  ｎｓ／ｍｍ、Ｆ＝１．０  ｎｓ  ・・・（式１０１）
【０１３０】
グループＡ１１のＦＦ１０からグループＡ１１の出力端子ＯＵＴ１１までの段数Ｇ１１は、次の（式１０２）となり、グループＡ１１の出力端子ＯＵＴ１１からグループＢ１１の入力端子ＩＮ１２までの段数Ｇ１２は、次の（式１０３）となり、グループＢ１１の入力端子ＩＮ１２からグループＢの出力端子ＯＵＴ１２までの段数Ｇ１３は、次の（式１０３）となり、グループＢ１１の出力端子ＯＵＴ１３からグループＣ１１の入力端子ＩＮ１４までの段数Ｇ１４は、次の（式１０４）となり、グループＣ１１の入力端子ＩＮ１４からグループＣ１１のＦＦ２０までの段数Ｇ１５は、次の（式１０５）となる。
Ｇ１１＝グループ［ＦＦ１０］［グループＡ１１／ＯＵＴ１１］＝  ２０段  ・・・（式１０２）
Ｇ１２＝ＴＯＰ［グループＡ１１／ＯＵＴ１１］［グループＢ１１／ＩＮ１２］  ＝３段  ・・・（式１０３）
Ｇ１３＝グループ［グループＢ１１／ＩＮ１２］［グループＢ１１／ＯＵＴ１３］＝  １０段  ・・・（式１０４）
Ｇ１４＝ＴＯＰ［グループＢ１１／ＯＵＴ１３］［グループＣ１１／ＩＮ１４］＝５段  ・・・（式１０５）
Ｇ１５＝グループ［グループＣ１１／ＩＮ１４］［ＦＦ２０］＝  １７段  ・・・（式１０６）
【０１３１】
この（式１０２）〜（式１０６）より、総段数Ｄは、次の（式１０７）となる。
Ｄ＝  グループ［ＦＦ１０］［グループＡ１１／ＯＵＴ１１］＋ＴＯＰ［グループＡ１１／ＯＵＴ１１］［グループＢ１１／ＩＮ１２］＋グループ［グループＢ１１／ＩＮ１２］［グループＢ１１／ＯＵＴ１３］＋ＴＯＰ［グループＢ１１／ＯＵＴ１３］［グループＣ１１／ＩＮ１４］＋グループ［グループＣ１１／ＩＮ１４］［ＦＦ２０］  ＝  ２０＋３＋１０＋５＋１７＝５５段  ・・・（式１０７）
【０１３２】
この（式１０７）と上記（式１０１）より、セル遅延Ｔｃは、次の（式１０８）となる。
Ｔｃ＝  Ｄ  ＊  Ｇ  ＝  ５５  ＊  ０．１  ＝  ５．５ｎｓ  ・・・（式１０８）
【０１３３】
この（式１０８）と上記（式１０１）より、距離遅延Ｔｌは、次の（式１０９）となる。
Ｔｌ＝  Ｆ  −  Ｔｃ  ＝  １．０  −  ５．５  ＝  ４．５ｎｓ  ・・・（式１０９）
【０１３４】
したがって、この（式１０９）と上記（式１０１）より、サイクル情報Ｆを満たすために必要な距離Ｌは、次の（式１１０）となる。
Ｌ＝  Ｔ１  ／  Ｔ  ＝  ４．５ｎｓ  ／  １．１  ≒  ４．１ｍｍ
【０１３５】
このように、グループＡ１１からグループＢ１１を経由してグループＣ１１までは、４．１ｍｍ以下に配置することで、タイミング制約を満たすことができることがわかる。
【０１３６】
グループＤ１１から、グループＡ１１、グループＢ１１、グループＣ１１への配線本数が多い場合は、参考例では一般的に図１３の様なフロアプランが作成される。しかし、本発明では、グループ間のタイミング制約を考慮する事により、図１４に示すように、グループＡ１１、グループＢ１１、グループＣ１１の距離を４．１ｍｍ以下となるように配置する。グループＡ１１、グループＢ１１、グループＣ１１の経路のタイミングが厳しい場合、グループＡ１１、グループＢ１１、グループＣ１１の経路が最短経路となるようなフロアプランを作成する。
【０１３７】
グループＡ１１、グループＢ１１、グループＣ１１の距離を４．１ｍｍ以下に配置するためには、図１５に示すように、各グループの重心に基づいてフロアプランを作成する。グループＡ１１の重心Ｃ１からグループＢ１１の重心Ｃ２を介しグループＣ１１の重心Ｃ３までを接続する直線Ｌ１の距離が４．１ｍｍ以下であればよい。
【０１３８】
ここでは、グループＢ１１の重心Ｃ２を直線Ｌ１の中間点とする。すなわち、経路が通過するグループ、つまり、経路の中間に位置するグループの重心を、直線Ｌ１の中心とする。そして、この直線Ｌ１を対角線とする正方形Ｑを考え、重心Ｃ２を中心として対角線Ｌ１全体の長さが４．１ｍｍ以下となる範囲の中に、グループＡ１１の重心Ｃ１、グループＣ１１の重心Ｃ２を配置する。
【０１３９】
これにより、グループＡ１１、グループＢ１１、グループＣ１１の経路でタイミングエラーが発生することのないフロアプランを、イタレーションが生じることなく作成することができる。
【０１４０】
次に、フロアプランの具体例３として、図１６に参考例によるフロアプラン、図１７に本発明によるフロアプランを示す。
【０１４１】
この例は、グループＡ１２、グループＢ１２、グループＣ１２にそれぞれ接続されるグループＤ１２の配置に着目した例であり、グループＤ１２とグループＡ１２、グループＢ１２、グループＣ１２のそれぞれとの経路について、フロアプラン作成情報１４の距離Ｌを算出する例について説明する。
【０１４２】
参考例では、図１６に示すように、グループＤ１２は、グループＡ１２とグループＢ１２とグループＣ１２に繋がりがある為、通常はレイアウト面中央部に配置される。
【０１４３】
しかしながら、グループＤ１２と各グループとの間で、タイミングエラーが発生するおそれがあるため、本発明では、タイミング制約を満たす距離Ｌを算出する。ここでは、グループＤ１２からグループＡ１２のみタイミングが厳しく、グループＤ１２からグループＢ１２と、グループＤ１２からグループＣ１２は、タイミングが厳しく無い場合についての算出例を説明する。
【０１４４】
ここでは、評価関数設定情報３のゲート遅延値Ｇ、距離遅延値Ｔ、サイクル情報Ｆは次の（式２０１）とする。
Ｇ＝０．１  ｎｓ、Ｔ＝１．１  ｎｓ／ｍｍ、Ｆ＝１０ｎｓ  ・・・（式２０１）
【０１４５】
グループＡ１２のＦＦ１１からグループＡ１２の出力端子ＯＵＴ１１までの段数Ｇ２１は、次の（式２０２）となり、グループＡ１２の出力端子ＯＵＴ１１からグループＤ１２の入力端子ＩＮ４１までの段数Ｇ２２は、次の（式２０３）となり、グループＤ１２の入力端子ＩＮ４１からグループＤ１２のＦＦ４１までの段数Ｇ２３は、次の（式２０４）となる。
Ｇ２１＝グループ［ＦＦ１１］［グループＡ１２／ＯＵＴ１１］＝  ４５段  ・・・（式２０２）
Ｇ２２＝ＴＯＰ［グループＡ１２／ＯＵＴ１１］［グループＤ１２／ＩＮ４１］  ＝３段  ・・・（式２０３）
Ｇ２３＝グループ［グループＤ１２／ＩＮ４１］［ＦＦ４１］＝  ２２段  ・・・（式２０４）
【０１４６】
また、グループＢ１２のＦＦ２２からグループＢ１２の出力端子ＯＵＴ２２までの段数Ｇ２４は、次の（式２０５）となり、グループＢ１２の出力端子ＯＵＴ２２からグループＤの入力端子ＩＮ４２までの段数Ｇ２５は、次の（式２０６）となり、グループＤ１２の入力端子ＩＮ４２からグループＤ１２のＦＦ４２までの段数Ｇ２６は、次の（式２０７）となる。
Ｇ２４＝グループ［ＦＦ２２］［グループＢ１２／ＯＵＴ２２］＝  ２０段  ・・・（式２０５）
Ｇ２５＝ＴＯＰ［グループＢ１２／ＯＵＴ２２］［グループＤ１２／ＩＮ４２］  ＝３段  ・・・（式２０６）
Ｇ２６＝グループ［グループＤ１２／ＩＮ４２］［ＦＦ４２］＝  ２段  ・・・（式２０７）
【０１４７】
また、グループＣ１２のＦＦ３３からグループＣ１２の出力端子ＯＵＴ３３までの段数Ｇ２７は、次の（式２０８）となり、グループＣ１２の出力端子ＯＵＴ３３からグループＤ１２の入力端子ＩＮ４３までの段数Ｇ２８は、次の（式２０９）となり、グループＤ１２の入力端子ＩＮ４３からグループＤ１２のＦＦ４３までの段数Ｇ２９は、次の（式２１０）となる。
Ｇ２７＝グループ［ＦＦ３３］［グループＣ１２／ＯＵＴ３３］＝  ４段  ・・・（式２０８）
Ｇ２８＝ＴＯＰ［グループＣ１２／ＯＵＴ３３］［グループＤ１２／ＩＮ４３］  ＝３段  ・・・（式２０９）
Ｇ２９＝グループ［グループＤ１２／ＩＮ４３］［ＦＦ４３］＝  ５段  ・・・（式２１０）
【０１４８】
グループＡ１２からグループＤ１２の経路について、上記（式２０２）〜（式２０４）、上記（式２０１）より、総段数Ｄは次の（式２１１）となり、セル遅延Ｔｃは次の（式２１２）となり、距離遅延Ｔｌは次の（式２１３）となり、サイクル情報Ｆを満たすために必要な距離Ｌは次の（式２１４）となる。
Ｄ＝グループ［ＦＦ１１］［グループＡ１２／ＯＵＴ１１］＋ＴＯＰ［グループＡ１２／ＯＵＴ１１］［グループＤ／ＩＮ４１］＋グループ［グループＤ１２／ＩＮ４１］［ＦＦ４１］＝４５＋３＋２２＝７０段  ・・・（式２１１）
Ｔｃ＝Ｄ  ＊  Ｇ  ＝  ５８  ＊  ０．１  ＝  ７．０ｎｓ  ・・・（式２１２）
Ｔｌ＝Ｆ−Ｔｃ＝１０−７．０＝３．０ｎｓ  ・・・（式２１３）
Ｌ＝Ｔ１／Ｔ＝３．０ｎｓ／１．１≒２．７ｍｍ  ・・・（式２１４）
【０１４９】
グループＢ１２からグループＤ１２の経路について、上記（式２０５）〜（式２０７）、上記（式２０１）より、総段数Ｄは次の（式２１５）となり、セル遅延Ｔｃは次の（式２１６）となり、距離遅延Ｔｌは次の（式２１７）となり、サイクル情報Ｆを満たすために必要な距離Ｌは次の（式２１８）となる。
Ｄ＝グループ［ＦＦ２２］［グループＢ１２／ＯＵＴ２２］＋ＴＯＰ［グループＢ１２／ＯＵＴ２２］［グループＤ１２／ＩＮ４２］＋グループ［グループＤ１２／ＩＮ４２］［ＦＦ４２］＝２０＋３＋２＝２５段  ・・・（式２１５）
Ｔｃ＝Ｄ  ＊  Ｇ  ＝  ２５  ＊  ０．１  ＝  ２．５ｎｓ  ・・・（式２１６）
Ｔｌ＝Ｆ−Ｔｃ＝１０−２．５＝７．５ｎｓ  ・・・（式２１７）
Ｌ＝Ｔ１／Ｔ＝７．５ｎｓ／１．１≒６．８ｍｍ    ・・・（式２１８）
【０１５０】
グループＣ１２からグループＤ１２の経路について、上記（式２０８）〜（式２１０）、上記（式２０１）より、総段数Ｄは次の（式２１９）となり、セル遅延Ｔｃは次の（式２２０）となり、距離遅延Ｔｌは次の（式２２１）となり、サイクル情報Ｆを満たすために必要な距離Ｌは次の（式２２２）となる。
Ｄ＝グループ［ＦＦ３３］［グループＣ１２／ＯＵＴ３３］＋ＴＯＰ［グループＣ１２／ＯＵＴ３３］［グループＤ１２／ＩＮ４３］＋グループ［グループＤ１２／ＩＮ４２］［ＦＦ４３］＝４＋３＋５＝１２段  ・・・（式２１９）
Ｔｃ＝Ｄ  ＊  Ｇ  ＝  １２  ＊  ０．１  ＝  １．２ｎｓ  ・・・（式２２０）
Ｔｌ＝Ｆ−Ｔｃ＝１０−１．２＝８．８ｎｓ  ・・・（式２２１）
Ｌ＝Ｔ１／Ｔ＝８．８ｎｓ／１．１≒８．０ｍｍ    ・・・（式２２２）
【０１５１】
以上の結果より、上記（式２１４）、上記（式２１８）、上記（式２２２）の距離以下の場所にグループを配置する。これにより、グループＤ１２と各グループ間の経路でタイミングエラーが発生することがないフロアプランを、イタレーションが生じることなく作成することができる。
【０１５２】
グループＡ１２からグループＤ１２間の距離が２．７ｍｍ以下、グループＢ１２からグループＤ１２間の距離が６．８ｍｍ以下、グループＣ１２からグループＤ１２間の距離が８．０ｍｍ以下であるため、グループＡ１２からグループＤ１２の距離が短く、グループＣ１２からグループＤ１２の距離が長い。この場合、グループＤ１２は、中央に配置する必要がなくなり、グループＡ１２の近くに配置すれば良い。すなわち、図１７に示すように、グループＤ１２を、グループＡ１２の近くの位置で、かつ、グループＣ１２から遠く離れる位置に配置するフロアプランを作成する。
【０１５３】
以上のように、本実施形態では、実施の形態１と同様に、グループ間のタイミング制約を満たすために必要な距離を示すフロアプラン作成情報を作成し、このフロアプラン作成情報に基づいてフロアプランを作成する。これにより、グループ間のタイミング制約を常に満たすことになるため、フロアプランの修正が不要となる。したがって、フロアプラン設計のイタレーションを防ぎ、設計期間を短縮することができる。
【０１５４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、フロアプラン作成情報として距離について説明したが、これにマージン情報を含めて、マージンの範囲でフロアプランを作成するようにしてもよい。また、フロアプラン作成情報及びフロアプランの作成に関し、グループの重心（中心）を基準としたが、タイミング制約を満たすために重心の位置を変更してもよい。グループ（機能モジュール）の形状を略正方形としたが、タイミング制約を満たすために長方形やその他の形状としてもよい。
【符号の説明】
【０１５５】
１  グループ設定情報
２  ネットリスト
３  評価関数設定情報
５  階層ブロック入出力段数算出部
６  階層ブロック通過段数算出部
７  階層ブロック間接続情報抽出部
８  関連階層ブロック評価部
９  タイミング判定処理部
１０  グループ修正部
１１  入力ファイル群
１２  回路情報抽出部
１３  フロアプラン作成情報出力部
１４  フロアプラン作成情報
１５  階層判定処理部
１６  配置不可情報作成部
１７  グループ配置不可情報
２１  フロアプラン作成部
２２  仮配置部
２３  仮配線部
２４  配置配線タイミング判定処理部
２５  フロアプラン決定部
３０  フロアプラン情報
５１  制御部
５２  記憶部
５３  入力部
５４  出力部
１００  フロアプラン作成情報生成装置
２００  フロアプラン作成装置
３００  フロアプラン最適化装置
【図１】
2013045318.tif 000003
【図２】
2013045318.tif 000004
【図３】
2013045318.tif 000005
【図４】
2013045318.tif 000006
【図５】
2013045318.tif 000007
【図６】
2013045318.tif 000008
【図７】
2013045318.tif 000009
【図８】
2013045318.tif 000010
【図９】
2013045318.tif 000011
【図１０】
2013045318.tif 000012
【図１１】
2013045318.tif 000013
【図１２】
2013045318.tif 000014
【図１３】
2013045318.tif 000015
【図１４】
2013045318.tif 000016
【図１５】
2013045318.tif 000017
【図１６】
2013045318.tif 000018
【図１７】
2013045318.tif 000019
【図１８】
2013045318.tif 000020
【図１９】
2013045318.tif 000021