(57)【要約】【課題】  所与の条件に応じて半導体リソースを適切に配置したフロアプランを、迅速かつ容易に作成することを可能にする技術を提供する。【解決手段】  半導体集積回路のフロアプランを生成するフロアプラン生成装置は、前記半導体集積回路の接続情報を入力する入力手段と、前記接続情報に基づいてフロアプランの編集領域を決定する決定手段と、前記決定手段において決定された前記編集領域を、リソース数に基づいて正規化された正規化領域に変換する変換手段と、前記正規化領域において、前記接続情報に基づきフロアプランシード情報を形成する形成手段と、前記フロアプランシード情報が形成された前記正規化領域を逆変換して編集済み領域を取得し、当該編集済み領域に基づいてフロアプランを生成する生成手段と、を備える。【選択図】  図２
2007328745.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路のフロアプランを生成するフロアプラン生成装置であって、
前記半導体集積回路の接続情報を入力する入力手段と、
前記接続情報に基づいてフロアプランの編集領域を決定する決定手段と、
前記決定手段において決定された前記編集領域を、リソース数に基づいて正規化された正規化領域に変換する変換手段と、
前記正規化領域において、前記接続情報に基づきフロアプランシード情報を形成する形成手段と、
前記フロアプランシード情報が形成された前記正規化領域を逆変換して編集済み領域を取得し、当該編集済み領域に基づいてフロアプランを生成する生成手段と、
を備えることを特徴とするフロアプラン生成装置。
【請求項２】
前記変換手段は、前記編集領域を、垂直方向及び水平方向のリソース数がそれぞれ等しい複数の基準領域に区分し、該複数の基準領域をそれぞれ正方形になるように伸縮することにより、前記変換を行う
ことを特徴とする請求項１に記載のフロアプラン生成装置。
【請求項３】
前記決定手段は、前記接続情報に基づいてフロアプランの編集を行わない非編集領域を見積もり、当該見積もりに基づいて前記決定を行う
ことを特徴とする請求項１又は２に記載のフロアプラン生成装置。
【請求項４】
前記非編集領域には、電源配線領域と、ＰＬＬ回路領域と、ＤＬＬ回路領域との少なくともいずれかが含まれることを特徴とする請求項３に記載のフロアプラン生成装置。
【請求項５】
前記生成手段は、前記編集済み領域と、前記見積もられた非編集領域とに基づいて、前記生成を行うことを特徴とする請求項３又は４に記載のフロアプラン生成装置。
【請求項６】
前記正規化領域を表示する正規化領域表示手段を更に備え、
前記形成手段は、更に、ユーザからの指示に基づいて、前記フロアプランシード情報を形成する
ことを特徴とする請求項１乃至５のいずれか１項に記載のフロアプラン生成装置。
【請求項７】
前記生成手段により生成された前記フロアプランを表示するフロアプラン表示手段を更に備えることを特徴とする請求項１乃至６のいずれか１項に記載のフロアプラン生成装置。
【請求項８】
半導体集積回路のフロアプランを生成するフロアプラン生成装置の制御方法であって、
前記半導体集積回路の接続情報を入力する入力工程と、
前記接続情報に基づいてフロアプランの編集領域を決定する決定工程と、
前記決定工程において決定された前記編集領域を、リソース数に基づいて正規化された正規化領域に変換する変換工程と、
前記正規化領域において、前記接続情報に基づきフロアプランシード情報を形成する形成工程と、
前記フロアプランシード情報が形成された前記正規化領域を逆変換して編集済み領域を取得し、当該編集済み領域に基づいてフロアプランを生成する生成工程と、
を備えることを特徴とするフロアプラン生成装置の制御方法。
【請求項９】
コンピュータを請求項１乃至７のいずれかに記載のフロアプラン生成装置として機能させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを格納したコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に係る、フロアプラン生成装置及びその制御方法、プログラム、記憶媒体に関する。
【背景技術】
【０００２】
半導体集積回路のフロアプラン生成においては、配線混雑度を緩和することが重要である。このため、従来より、機能ブロック、ハードマクロを配置して配線混雑度の高い部分を見積もり、機能ブロック内の配置密度を制御したり、機能ブロック間、あるいはハードマクロ間の相対位置を変更する手法が採られてきた。
【０００３】
しかし、これらの手法では配線混雑度が高くなった部分に対し、局所的な問題対処を繰り返し行うことになる。このため、ある部分において配線混雑度を低くする対処を行った場合に、他の部分で別の問題が発生する可能性が高く、フロアプランの収束性が良くなかった。また、従来は、電源配線やマクロブロックによる一般信号配線への影響は、機能ブロック、ハードマクロの配置配線後に検討されていた。このため、一般信号配線の配線性を見積もりながらフロアプランを作成することが難しかった。
【０００４】
近年では半導体プロセスの微細化に伴い、１チップに搭載される半導体集積回路は大規模化しており、半導体集積回路のレイアウト設計に要する期間は増大する傾向にある。特に、半導体集積回路のレイアウト設計におけるタイミング収束や配置に関して問題が発生した場合には、半導体集積回路全体を再設計しなければならないため、レイアウト設計を含めたチップ開発の長期化を招いてしまう。そのような状況を避けるため、半導体集積回路を設計する場合には設計の初期段階から機能ブロック、マクロブロックの配置、電源配線、クロックツリーを見積もった半導体集積回路のフロアプラン設計が重要となってきている。
【０００５】
半導体集積回路のフロアプランを行う場合には、サブモジュールを含む機能ブロックを一つの単位として、半導体集積回路配置可能領域に複数の機能ブロックを仮配置し、半導体集積回路上の配置位置を決定する手法が採られることがある。配置した機能ブロックでは、機能ブロックを構成するサブモジュール配置を行い、機能ブロックと機能ブロック、あるいは機能ブロックとＲＡＭ等に代表されるマクロブロック間の配線を行う。
【０００６】
一般に、機能ブロックやマクロブロックを配置した後に半導体集積回路のフロアプランの可否判断を測る一つの指標として混雑度がある。混雑度は、半導体集積回路の半導体集積回路配置可能領域に機能ブロックを配置した後、所定の領域に機能ブロック間、マクロブロック間の配線がどの位必要かといった情報から算出する。
【０００７】
回路設計者は、半導体集積回路のフロアプランの信頼度を高めるため、上記混雑度の分布情報から半導体集積回路の混雑度の高い部分を把握する。機能ブロック間の混雑度が高い部分では、機能ブロック間の混雑部を迂回する配線が増加し、配線が長くなるためタイミングを満たすことが難しくなる。そこで、混雑度の高い部分では配線が迂回しないように混雑部周辺の配線領域をより広く確保するか、機能ブロックの配置位置を変更して混雑部が分散するように対処する。一方、機能ブロック内に混雑度の高い部分があれば、フロアプランで該当する機能ブロックの占有面積を広げて、ブロック内部に配置されるセル領域を拡大して、フロアプランの信頼性を向上させるといった手法が採られる。
【特許文献１】特開平０８−１０６４７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来は回路設計者が上記のような混雑度の問題に対して、半導体集積回路のリソースをチップ全体のダイイメージのまま扱っていた。このため、垂直方向、水平方向のリソースが均一であるか否かに関わらず、同じチップ全体のダイイメージでフロアプランを作成しなければならなかった。従って、回路設計者は、条件に応じて適切にフロアプラン生成することが困難だった。特に、フロアプラン生成の初期段階では、空いているリソースの算出に電源配線領域が正確に見積もられていないため、生成されたフロアプランの信頼性が低かった。
【０００９】
更に回路設計者は、半導体集積回路を構成する各機能ブロック及び、マクロブロックの仮配置を一度行ってから混雑度を算出し、半導体集積回路を構成する機能ブロック内、及び機能ブロック間、マクロブロック間の混雑度の高い部分を把握していた。従って、混雑度の高い場合は、回路設計者が個別にフロアプランの最適化を繰り返すため、混雑度が低くなるようなフロアプランの生成に時間がかかっていた。
【００１０】
本発明は上記問題に鑑みなされたものであり、所与の条件に応じて半導体リソースを適切に配置したフロアプランを、迅速かつ容易に作成することを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明によるフロアプラン生成装置は以下の構成を備える。即ち、
半導体集積回路のフロアプランを生成するフロアプラン生成装置であって、
前記半導体集積回路の接続情報を入力する入力手段と、
前記接続情報に基づいてフロアプランの編集領域を決定する決定手段と、
前記決定手段において決定された前記編集領域を、リソース数に基づいて正規化された正規化領域に変換する変換手段と、
前記正規化領域において、前記接続情報に基づきフロアプランシード情報を形成する形成手段と、
前記フロアプランシード情報が形成された前記正規化領域を逆変換して編集済み領域を取得し、当該編集済み領域に基づいてフロアプランを生成する生成手段と、
を備える。
【００１２】
また、本発明によるフロアプラン生成装置の制御方法は以下の構成を備える。即ち、
半導体集積回路のフロアプランを生成するフロアプラン生成装置の制御方法であって、
前記半導体集積回路の接続情報を入力する入力工程と、
前記接続情報に基づいてフロアプランの編集領域を決定する決定工程と、
前記決定工程において決定された前記編集領域を、リソース数に基づいて正規化された正規化領域に変換する変換工程と、
前記正規化領域において、前記接続情報に基づきフロアプランシード情報を形成する形成工程と、
前記フロアプランシード情報が形成された前記正規化領域を逆変換して編集済み領域を取得し、当該編集済み領域に基づいてフロアプランを生成する生成工程と、
を備える。
【発明の効果】
【００１３】
本発明によれば、所与の条件に応じて半導体リソースを適切に配置したフロアプランを、迅速かつ容易に作成することを可能にする技術を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００１５】
（ハードウェア構成）
まず、本実施形態に係るフロアプラン生成装置のハードウェア構成について、図１２を参照して説明する。図１２は、本実施形態に係るフロアプラン生成装置のハードウェア構成を模式的に示したブロック図である。尚、本実施形態に係るフロアプラン生成装置は、例えば、パーソナルコンピュータ（ＰＣ）やワークステーション（ＷＳ）等で実現される。
【００１６】
図１２において、９９０はＣＰＵである。ＣＰＵ９９０は、後述するハードディスク装置９９５に格納されているアプリケーションプログラム、オペレーティングシステム（ＯＳ）や制御プログラム等を実行し、ＲＡＭ９９２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００１７】
９９１はＲＯＭであり、内部には基本Ｉ／Ｏプログラム等のプログラム、基本処理において使用するフォントデータ、テンプレート用データ等の各種データを記憶する。９９２は各種データを一時記憶するためのＲＡＭであり、ＣＰＵ９９０の主メモリ、ワークエリア等として機能する。
【００１８】
９９３は記録媒体へのアクセスを実現するための外部記憶ドライブであり、メディア（記録媒体）９９４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。尚、メディア９９４には、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等が含まれる。
【００１９】
９９５は外部記憶装置であり、本実施形態では大容量メモリとして機能するハードディスク装置（以下、ＨＤと呼ぶ）を用いている。ＨＤ９９５には、アプリケーションプログラム、ＯＳ、制御プログラム、関連プログラム等が格納される。
【００２０】
９９６は指示入力装置であり、キーボードやポインティングデバイス（マウス等）、タッチパネル等がこれに相当する。指示入力装置９９６を用いて、ユーザは、本実施形態に係るフロアプラン生成装置に対して、装置を制御するコマンド等を入力指示する。
【００２１】
９９７はディスプレイであり、指示入力装置９９６から入力されたコマンドや、それに対するフロアプラン生成装置の応答出力等を表示したりするものである。
【００２２】
９９９はシステムバスであり、フロアプラン生成装置内のデータの流れを司るものである。９９８はインターフェイス（以下、Ｉ／Ｆという）であり、このＩ／Ｆ９９８を介して外部装置とのデータのやり取りを行う。
【００２３】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【００２４】
本実施形態では、メディア９９４から本実施形態に係るプログラム及び関連データを直接ＲＡＭ９９２にロードして実行させる例を示すが、これに限られない。例えば、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているＨＤ９９５からＲＡＭ９９２にロードするようにしてもよい。また、本実施形態に係るプログラムをＲＯＭ９９１に記録しておき、これをメモリマップの一部をなすように構成し、直接ＣＰＵ９９０で実行することも可能である。
【００２５】
また、本実施形態では、説明の便宜のため、本実施形態に係るフロアプラン生成装置を１つの装置で実現した構成について述べるが、複数の装置に計算機資源を分散した構成によって実現してもよい。例えば、記憶や演算の計算機資源を複数の装置に分散した形に構成してもよい。或いは、フロアプラン生成装置上で仮想的に実現される構成要素毎に計算機資源を分散し、並列処理を行うようにしてもよい。
【００２６】
（機能構成）
次に、本実施形態に係るフロアプラン生成装置の機能構成について、図１を参照して説明する。図１は、フロアプラン生成装置の機能構成を示すブロック図である。
【００２７】
図１に示される各機能ブロックは、図１２を参照して上述したＣＰＵ９９０がＲＡＭ９９２にロードされたプログラムを実行し、図１２に示される各ハードウェアと協働することによって実現される。もちろん機能要素の一部或いは全てが専用のハードウェアで実現されてもよい。
【００２８】
図１のように、半導体集積回路のフロアプラン生成装置は以下の機能要素を備える。
・外部データ入力部１０１。
・記憶部１０２。
・電源配線領域生成部１０３。
・ルートグリッド生成部１０４。
・リソースグリッド生成部１０５。
・ルートグリッド表示部１０６。
・リソースグリッド表示部１０７。
・ルート領域生成部１０８。
・フロアプラン生成部１０９。
これらの機能要素は共通バスで接続されている。ただし、共通バスは、各機能要素１０１〜１０９を接続する論理的なバスであり、物理的なバスに対応するとは必ずしも限られない。
【００２９】
外部データ入力部１０１は、半導体集積回路の接続情報からなるネットリストデータを入力する機能要素である。ネットリストデータには、半導体集積回路の接続情報として、配置可能領域のサイズ（垂直方向、水平方向）、リソース数、半導体要素（例えば、機能ブロック、マクロブロック、セル領域、電源配線等）の配置等の情報が含まれる。ネットリストデータは、例えば、Ｖｅｒｉｌｏｇ、ＥＤＩＦ、ＳＰＩＣＥ、ＤＥＦ等のフォーマットにより記述される。ただし、ＥＤＩＦはelectronic design interchange formatの略称であり、ＤＥＦはdesign exchange formatの略称である。外部データ入力部１０１は、例えば、ＨＤ９９５、Ｉ／Ｆ９９８、外部記憶ドライブ９９３、ＲＡＭ９９２等により実現することができるが、これに限られない。
【００３０】
記憶部１０２は、入力されたネットリストデータを記憶する機能要素である。記憶部１０２は、例えば、ＲＡＭ９９２、ＨＤ９９５、メディア９９４等により実現できるが、これに限られない。
【００３１】
電源配線領域生成部１０３は、後述する配線層情報に基づいてフロアプランに含まれる電源配線領域を示す情報を生成する機能要素である。ただし、配線層情報は、半導体集積回路の配置可能領域における電源配線を示す情報であり、例えば、１以上の配線層を構成する各配線について、配線層毎に、配線の位置や方向、幅等を示す情報が含まれる。本実施形態では、配線層情報は、ネットリストデータに含まれるものとするが、ネットリストデータとは別のデータとして、例えば、ＨＤ９９５、メディア９９４、ＲＡＭ９９２、ＲＯＭ９９１等の記憶装置、或いは、外部装置に記憶されていてもよい。
【００３２】
ルート領域生成部１０８は、ネットリストデータ等に基づいてルート領域情報を生成する機能要素である。ただし、ルート領域情報は、半導体集積回路の配置可能領域から電源配線領域を除いたフロアプランを示す情報である。
【００３３】
リソースグリッド生成部１０５は、ルート領域情報に基づいてリソースグリッド（正規化領域）を定義・生成する機能要素である。ただし、リソースグリッドは、半導体集積回路の配置可能領域から電源配線領域を除いた部分に対応する、格子状の複数の基準領域に区分された領域であり、各基準領域についてリソース数が垂直方向と水平方向とで同一になるように正規化されている。また、リソース数は、設置可能な半導体要素の数に対応する量（例えば、設置可能な配線数に比例する量）である。リソースグリッドの具体例については後述する。
【００３４】
ルートグリッド生成部１０４は、リソースグリッド上で生成されたフロアプランシードに基づいて、ルートグリッドを生成する機能要素である。ルートグリッドは、半導体集積回路の配置可能領域に対応する、格子状の複数の基準領域に区分された領域である。ただし、ルートグリッドは、リソース数に基づく正規化がなされておらず、各基準領域についての垂直方向と水平方向の長さの比が実際の配置可能領域における比に対応している。例えば、各基準領域についての垂直方向と水平方向の長さの比が実際の配置可能領域における比と同じになるようにすることができる。また、ルートグリッドには電源配線領域の部分が含まれうる。
【００３５】
ルートグリッド表示部１０６は、ルートグリッド生成部１０４において生成されたルートグリッドを表示する機能要素である。また、リソースグリッド表示部１０７は、リソースグリッド生成部１０５において生成されたリソースグリッドを表示する機能要素である。ルートグリッド表示部１０６とリソースグリッド表示部１０７は、それぞれ、例えば、ディスプレイ９９７により実現することができるが、これに限られない。ルートグリッド表示部１０６とリソースグリッド表示部１０７は、例えば、物理的に同一のディスプレイ上に実現することもできるし、それぞれ別のディスプレイに実現することもできる。
【００３６】
フロアプラン生成部１０９は、フロアプランシード情報の修正がなされた電源配線領域を含むルートグリッドに基づいて、実際のチップ全体のダイイメージに対応するフロアプランを生成する機能要素である。
【００３７】
（フロアプラン生成処理）
次に、本実施形態に係るフロアプラン生成装置が実行するフロアプラン生成処理について、図２を参照して説明する。図２は、フロアプラン生成処理の流れを示すフローチャートである。
【００３８】
まず、ステップＳ２０１（外部データ入力）において、外部データ入力部１０１から、半導体集積回路の接続情報からなるネットリストデータを入力する。入力したネットリストデータは、記憶部１０３に記憶する。
【００３９】
次に、ステップＳ２０２（電源配線領域の生成）において、半導体集積回路の配置可能領域での垂直方向、水平方向の電源配線領域を示す情報を電源配線領域生成部１０３で生成する。上述のように、電源配線領域を示す情報は、ネットリストデータに含まれる配線層情報に基づいて生成される。ただし、配線層情報が別データとして記憶されている場合は、必要に応じて、例えば、ＨＤ９９５等の記憶装置を読み出したり、外部装置とＩ／Ｆ９９８を介して通信することにより取得される。電源配線領域の生成（見積もり）の具体例については後述する。
【００４０】
次に、ステップＳ２０３（ルート領域の生成）において、ルート領域生成部１０８により、ステップＳ２０２（電源配線領域の生成）で生成した電源配線領域の情報と前記のネットリストデータに基づいて、ルート領域情報を新たに生成する。具体的には、例えば、ネットリストデータから、電源配線領域に対応する情報を削除することにより、ルート領域情報を生成することができる。ルート領域（編集領域）とその生成の具体例については後述する。
【００４１】
次に、ステップＳ２０４（リソースグリッドの生成）において、リソースグリッド生成部１０５により、前記のルート領域情報に基づいてリソースグリッドを定義・生成する。具体的には、例えば、ルート領域を、所定の大きさを有する複数の矩形の基準領域に分割し、各基準領域について、垂直方向及び水平方向のリソース数が同じになるように正規化することにより、リソースグリッドを生成することができる。ただし、ここでの正規化は、矩形の基準領域の、垂直方向の長さと水平方向の長さとの比率を修正する変換を意味する。
【００４２】
ステップＳ２０４（リソースグリッドの生成）でリソースグリッドを生成すると、ステップＳ２０８（リソースグリッド領域表示）において、生成したリソースグリッド情報をリソースグリッド表示部１０７に表示する。
【００４３】
さらに、ステップＳ２０５（フロアプランシードの生成）において、半導体集積回路を構成する機能ブロックの相対位置を示すフロアプランシード情報をネットリストデータに基づいて生成する。また、リソースグリッド表示部１０７が、生成したフロアプランシードをリソースグリッド上に重畳して表示するように制御する。このフロアプランシード情報は、最終的に生成するチップ全体のダイイメージのフロアプランの元データになる。また、リソースグリッド上で扱う情報であるため、電源配線領域が含まれていない情報になる。
【００４４】
また、ＣＰＵ９９０は、生成するフロアプランシード情報の修正作業を回路設計者が行えるようにするために、指示入力装置９９６に対する入力に基づいて、フロアプランシード情報を更新する。また、フロアプランシード情報の更新に基づいて、リソースグリッド表示部１０７上のフロアプランシードの表示を更新する。これにより、ユーザは、リソースグリッド表示部１０７を見ながら指示入力装置９９６を操作することで、フロアプランシード情報を編集することができる。
【００４５】
次に、ステップＳ２０６（ルートグリッドの生成）において、前記フロアプランシード情報と、電源配線領域生成部１０３で既に見積もられている電源配線領域の情報に基づき、電源配線領域を含むルートグリッド情報をルートグリッド生成部１０４で生成する。ただし、ステップＳ２０６では、リソース数に係る正規化と逆の変換処理を実行して編集済みのルート領域（編集済み領域）を取得する。これにより、ルートグリッド情報に係る配置可能領域の垂直方向及び水平方向の長さの比が、実際の配置可能領域に対応するようにする。さらに、編集済みのルート領域に電源配線領域を加えて電源配線領域を含むルートグリッド情報を生成する。
【００４６】
また、ステップＳ２０９（ルートグリッド領域表示）において、ステップＳ２０６（ルートグリッドの生成）で生成したルートグリッド情報をルートグリッド表示部１０７に表示する。これにより、回路設計者は、最終的に生成するフロアプランの前段階で電源配線領域を含んだ検証をすることが可能となる。
【００４７】
なお、指示入力装置９９６に対する設計者の指示入力に基づいて、ＣＰＵ９９０がフローチャートを構成する任意のステップに処理を戻すように、構成することができる。この場合、ユーザは、フロアプランを生成する前に、その内容をリソースグリッド表示部１０７、ルートグリッド表示部１０６で確認して、所望とするフロアプランを生成することができる。
【００４８】
次に、ステップＳ２０７（フロアプランの生成）において、前記の電源配線領域を含むルートグリッド情報をフロアプラン生成部１０９で実際のチップ全体のダイイメージに変換してフロアプランを生成する。
【００４９】
上記の処理を全て実行すると、フロアプラン生成処理を終了する。
【００５０】
（電源配線領域の生成）
次に、図３、９を参照して、上記のステップＳ２０２で実行する、電源配線領域の生成（見積もり）の具体的な処理を説明する。図３は、見積もられた電源配線領域が半導体集積回路の配置可能領域３０１に設けられた様子を例示した模式図である。図９は、配線層情報を例示した図である。
【００５１】
上述のように、電源配線領域の見積もりは、配線層情報に基づいて行われる。図９には、６層配線使用時の各配線層情報が例示されている。図９の例では、垂直方向の配線層として、第１配線層、第３配線層、第５配線層が使用され、水平方向の配線層として、第２配線層、第４配線層を使用する。また、第６配線層は電源配線専用として使用する。この場合、第１配線層、第２配線層はセルの配線に多くのリソースを使用し、セル間の接続、ブロック間の接続には、第３配線層、第４配線層、第５配線層のリソースを使用する。
【００５２】
ルート領域の算出は、第６配線層の電源配線領域、及びそれ以外の電源配線領域の総和に基づいて行う。具体的には、例えば、垂直方向に延びる電源配線の幅（太さ）の総和と水平方向に延びる電源配線の幅の総和をそれぞれ算出する。なお、第５配線層には太幅配線が使用されているため、電源配線領域を削除した残りのリソースでは、太幅配線を１／２の大きさのリソースとして見積もる必要がある。
【００５３】
図３は、半導体集積回路の配置可能領域３０１に、水平方向の電源配線領域３０２、垂直方向の電源配線領域３０３が構成されていることを示し、水平方向の電源配線領域の幅が“ａ”、垂直方向の電源配線領域の幅が“ｂ”であることを示す。この電源配線領域の幅は、特定の配線層の電源配線領域だけではなく全配線層の電源配線領域を合わせた領域として表示する。つまり、“ａ”は、水平方向の電源配線領域の幅の総和を示し、“ｂ”は、垂直方向の電源配線領域の幅の総和を示している。
【００５４】
（ルート領域の生成）
次に、図４を参照して、上記のステップＳ２０３で実行する、ルート領域の生成の具体的な処理を説明する。図４は、ルート領域の生成を説明する図である。
【００５５】
図４において、頂点４０４〜４０７で囲まれた矩形領域は、半導体集積回路の配置可能領域３０１を示している。４０２は、電源配線領域を示しており、図３の電源配線領域見積もりで生成された水平方向の電源配線領域３０２を、頂点４０６及び頂点４０７を結ぶ直線に接するようにシフトしたものである。同様に、４０３も電源配線領域を示しており、垂直方向の電源配線領域３０３を、頂点４０５及び頂点４０６を結ぶ直線に接するようにシフトしたものである。
【００５６】
配置可能領域３０１から、この水平方向の電源配線領域４０２及び垂直方向の電源配線領域４０３との重複部分を除いて形成される、頂点４０８〜４１０及び頂点４０４で囲まれた矩形領域４１１が、ルート領域と定義される。
【００５７】
（基準領域）
次に、基準領域について図５〜７を参照して説明する。図５は、ルートグリッドを模式的に表した図である。上述のように、ルートグリッドは、電源配線領域を配置可能領域から削除し、太幅配線も見積もって水平方向のリソース数と、垂直方向のリソース数が等しくなるように分割して生成される。図５において、ルートグリッドでの基準領域５０１は、水平方向の距離Ｘ、垂直方向の距離Ｙを有している。
【００５８】
図６は、図５に例示したルートグリッドでの基準領域５０１を切り出して表示した図である。図６のルートグリッドでの基準領域５０１において、上辺に○で囲まれた数値“１０”は垂直方向のリソース６０１を表し、右辺に○で囲まれた数値“１０”は水平方向のリソース６０２を表す。このように、ルートグリッドでの基準領域は、水平方向のリソース数と垂直方向のリソース数が等しい領域として切り出された、矩形の領域となる。
【００５９】
図７は、図５のルートグリッドでの基準領域に対応する、リソースグリッドでの基準領域を示した模式図である。リソースグリッドでの基準領域は、水平方向のリソース数と垂直方向のリソース数とが等しくなるように区分され、かつ、基準領域の垂直方向及び水平方向に含まれるリソース数に応じて、垂直方向及び水平方向の長さが決定される。このため、その形状は正方形として表示される。図６の場合と同様に、図７のリソースグリッドでの基準領域７０３では、上辺に○で囲まれた数値“１０”は垂直方向のリソース７０１を表し、右辺に○で囲まれた数値“１０”は水平方向のリソース７０２を表す。
【００６０】
図８は、電源配線領域を削除したルート領域４１１に対応するリソースグリッドを例示した図である。図８のように、リソースグリッドは複数の正方形の基準領域から構成される。図８の領域０１（８０１）〜領域０９（８０９）について、各領域の水平方向、垂直方向には同じリソースが割り当てられており、その表示形状は正方形が並んだ格子状の領域となる。回路設計者は、図８のような、半導体集積回路のチップ全体のリソースに基づいて正規化されたリソースグリッド上で、フロアプランの元データとなるフロアプランシードをチップ全体にリソースを配分して生成する操作を行うことになる。
【００６１】
（フロアプランの設計）
次に、フロアプランの設計について、図１０、１１を参照して説明する。図１０は、リソースグリッドでのフロアプランシードの一例を示す図である。図１１は、チップのダイサイズをイメージした、図１０に対応するルートグリッドでのフロアプランの一例を示す図である。
【００６２】
図１０において、領域０１（１００１）〜領域０９（１００９）は、リソースグリッドの分割された各領域を表している。Ａ１０１０、Ｂ１０１１は、両方ともフロアプランの情報となるフロアプランブロックであり、図２のフローチャートのステップＳ２０５においてネットリストデータに基づいて生成され、必要に応じて回路設計者の指示入力に基づいて修正される。
【００６３】
図１１においても同様に、領域０１（１１０１）〜領域０９（１１０９）は、ルートグリッドの分割した各領域を表し、フロアプランの情報となるフロアプランブロックＡ１１１０、フロアプランブロックＢ１１１１で構成される。また、図２のステップＳ２０２（電源配線領域の生成）で見積もられた水平方向電源配線領域１１１２、垂直方向電源配線領域１１１３を含んでいる。
【００６４】
図１０のリソースグリッドでのフロアプランシードは、水平方向のリソースと、垂直方向のリソースが等しくなるように正規化されている。このため、フロアプランブロックＡ１０１０や、フロアプランブロックＢ１０１１は、実際のチップイメージとは異なり、水平方向、垂直方向に所定の係数で伸縮された状態で表示される。
【００６５】
例えば、実際のチップのリソースが粗に分布する領域については、ルートグリッドは大きな領域として表示され、逆にリソースが密に分布する領域については、ルートグリッドは小さな領域として表示される。言い換えれば、実際のチップのリソースが粗に分布する領域については、リソースグリッドは相対的に縮小して表示され、逆にリソースが密に分布する領域については、ルートグリッドは相対的に伸張して表示される。
【００６６】
従って、図１０のリソースグリッドでのフロアプランシードのフロアプランブロックＡ１０１０は、垂直方向のリソースが粗であるので、図１１のルートグリッドでのフロアプランでフロアプランブロックＡ１１１０のように横長に伸張して表示される。同様に、図１０のリソースグリッドでのフロアプランシードのフロアプランブロックＢ１０１１は、図１１のルートグリッドでのフロアプランでフロアプランブロックＢ１１１１のように横長に伸張して表示される。
【００６７】
これと同時に、図１１のルートグリッドでのフロアプランでは電源配線領域が多く含まれる１１０６の領域に、水平方向の電源配線領域１１１２、及び垂直方向の電源配線領域１１１３を含んでいるため拡大した領域として表示される。つまり、図１０のリソースグリッドでは、領域０１（１００１）〜領域０９（１００９）は同一の大きさであるが、図１１のルートグリッドでは、領域０１（１１０１）、領域０４（１１０４）、領域０６（１１０６）のように、領域により表示の大きさが異なる。これに合わせて、図１０のリソースグリッドでのフロアプランシードの配置情報も変換して表示される。
【００６８】
図２のステップＳ２０７（フロアプランの生成）において、回路設計者は、フロアプラン生成部１０９により、図１１のルートグリッド上で生成したフロアプランに対して、格子領域の削除や、フロアプランとしてのルールチェック等の作業を行う。このようにして、回路設計者は、本実施形態に係るフロアプラン生成装置を用いてフロアプランを生成することができる。
【００６９】
以上のように、本実施形態に係る構成では、フロアプランは、水平方向のリソースと垂直方向のリソースが等しくなるようなリソースグリッド上で生成される。このため、回路設計者は、水平方向、垂直方向のリソースの配分をイメージし易くフロアプランの元となるフロアプランシードを適切かつ容易に生成することができる。また、本実施形態に係る構成では、最初に編集を行わない領域（例えば、電源配線領域等）をあらかじめ見積もり、配置可能領域から電源配線領域を削除してフロアプランを生成する。このため、回路設計者は電源配線領域を気にせずリソースの配分を考慮した適切なフロアプランを生成することが可能となる。
【００７０】
つまり、本実施形態に係る構成においては、フロアプランの対象となる半導体集積回路の半導体集積回路配置可能領域から水平方向の電源配線領域、垂直方向の電源配線領域を見積もることによって、ルート領域を生成する。そして、ルート領域の水平方向、垂直方向のリソースを正規化したリソースグリッドを生成する。半導体集積回路の回路設計者は、リソースグリッド上で水平方向、垂直方向のリソースの配分を把握しながらフロアプランを生成することが出来るので、チップ全体のリソースを有効に使用したフロアプランが生成可能となる。
【００７１】
また、リソースグリッド上で生成されたフロアプランシードは、最初の段階で見積もられた電源配線領域情報が付加され、全体のフロアプランへと変換される。このため、生成されたフロアプランに基づいて、最終的には、チップ全体のダイイメージのフロアプランを生成することが可能である。
【００７２】
また、リソースグリッドで生成したフロアプランシードをルートグリッドに変換することで、電源配線領域を含んだチップ全体のダイイメージのフロアプランが生成でき、使用する配線層数を変更した場合等のフロアプランへの影響を容易に比較できる。このため、半導体集積回路のチップ全体に最適なフロアプランを得ることが可能となる。
【００７３】
なお、上記の説明では、電源配線領域を削除したルート領域が３×３の領域に区分された場合について説明したが、ルート領域は任意の数に区分することができる。このため、回路設計の初期段階では分割数を少なくして概略の配置作業を高速で実行し、設計作業を進めるに伴って、ルート領域の分割数を増加させてより小さい領域でフロアプランを作り直し、フロアプランの精度を高めるといった手法が実行可能となる。このような設計手法を採用することで、適切なフロアプランを迅速かつ容易に設計することが可能である。
【００７４】
更に、特定のブロック周辺でリソースが不足するような場合には、問題発生個所のルート領域のみをさらに細かく分割して、より詳細な領域でのリソース分布を見積もることによって、問題収束を可能にすることが出来る。
【００７５】
なお、本実施形態では、理解の容易のために、半導体集積回路の配置可能領域全体に水平方向の電源配線領域、垂直方向の電源配線領域のみを配置した状態について説明を行った。つまり、編集を行わない領域として電源配線領域のみを想定した。しかし、編集を行わない領域はこれに限られない。例えば、電源配線領域以外にも、あらかじめ決定されているＰＬＬやＤＬＬ等の周辺回路を編集を行わない特別な領域として設定してもよい。これにより、本実施形態に係る構成の特色である、リソースを正規化したリソースグリッドでフロアプランの生成しチップ全体のリソースを最適化する効果を得ることができる。
【００７６】
（その他の実施形態）
以上、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を取ることが可能である。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００７７】
尚、本発明は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００７８】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。
【００７９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００８０】
プログラムを供給するための記録媒体としては、例えば、次のものが含まれる。即ち、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）等が含まれる。
【００８１】
その他、プログラムの供給形態としては、次のようなものも考えられる。即ち、クライアント装置のブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明に係るコンピュータプログラム、或いは、圧縮され自動インストール機能を含むファイルをＨＤ等の記録媒体にダウンロードする形態も考えられる。また、本発明に係るプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００８２】
また、次のような供給形態も考えられる。即ち、まず、本発明に係るプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布する。そして、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報の使用により暗号化されたプログラムを実行してコンピュータにインストールさせて本発明に係る構成を実現する。このような供給形態も可能である。
【００８３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、次のような実現形態も想定される。即ち、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００８４】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づいても前述した実施形態の機能が実現される。即ち、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８５】
【図１】フロアプラン生成装置の機能構成を示すブロック図である。
【図２】フロアプラン生成処理の流れを示すフローチャートである。
【図３】見積もられた電源配線領域が半導体集積回路の配置可能領域に設けられた様子を例示した模式図である。
【図４】ルート領域の生成を説明する図である。
【図５】ルートグリッドを模式的に表した図である。
【図６】ルートグリッドでの基準領域を切り出して表示した図である。
【図７】リソースグリッドでの基準領域を示した模式図である。
【図８】電源配線領域を削除したルート領域に対応するリソースグリッドを例示した図である。
【図９】配線層情報を例示した図である。
【図１０】リソースグリッドでのフロアプランシードの一例を示す図である。
【図１１】チップのダイサイズをイメージした、ルートグリッドでのフロアプランの一例を示す図である。
【図１２】フロアプラン生成装置のハードウェア構成を模式的に示したブロック図である。
【図１】
2007328745.tif 000003
【図２】
2007328745.tif 000004
【図３】
2007328745.tif 000005
【図４】
2007328745.tif 000006
【図５】
2007328745.tif 000007
【図６】
2007328745.tif 000008
【図７】
2007328745.tif 000009
【図８】
2007328745.tif 000010
【図９】
2007328745.tif 000011
【図１０】
2007328745.tif 000012
【図１１】
2007328745.tif 000013
【図１２】
2007328745.tif 000014