(57)【要約】【課題】許容電流不足による工程の手戻りを防止する。【解決手段】レイアウト手段１１によって、セル初期配置（ステップＳ１１）、クロックツリー合成（ステップＳ１２）および最適化（ステップＳ１３）の各ステップが終了するごとに、消費電流見積り手段１２によって、それぞれセル初期配置後消費電流見積り（ステップＳ２１）、クロックツリー合成後消費電流見積り（ステップＳ２２）および最適化後消費電流見積り（ステップＳ２３）が実行される。各消費電流見積り処理では、それぞれに対応するステップ終了時に適したモデルを選択し、設計対象のチップ領域を電源補助線で分割したパワーユニットごとに許容電流値と消費電流値の見積りを行って、消費電流値が許容電流値を超えていないことを確認する。【選択図】図１
2007148863.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路を構成するセルを各種制約情報に基づきレイアウトする半導体集積回路のレイアウト方法において、
レイアウト工程の各段階が終了するごとに、消費電流見積り手段が、
設計対象チップの領域を仮想的に格子状に分割した区画ごとに、
前記区画内に供給できる許容電流値をテクノロジ固有の電源規格値に基づき算出し、
前記区画内に配置されたセル群の負荷容量見積りと、終了した前記レイアウト工程に応じたモデルを用いて算出される配線容量見積りを加算した区画内消費電流に基づいて予測される消費電流値を算出し、前記区画について算出された前記許容電流値と前記消費電流値とを比較して前記消費電流値が前記許容電流値を超えていないかどうか判定する、手順を有することを特徴とする半導体集積回路のレイアウト方法。
【請求項２】
前記消費電流値の見積りにおける配線容量見積り手順では、
前記レイアウト工程によって前記セルの配線経路が決定していない段階では、配置モデルより導出される仮想配線容量により前記配線容量見積りを算出し、クロック系の特殊配線を含む前記セルの配線経路が決定した段階では、実配線モデルを用いてセル間配線のマンハッタン長を算出し、前記マンハッタン長に基づいて前記配線容量見積りを算出する、
ことを特徴とする請求項１記載の半導体集積回路のレイアウト方法。
【請求項３】
前記消費電流値の見積り手順では、
前記レイアウト工程におけるクロックツリー合成が終了した段階では、前記セル群をクロックネットが張られたクロック系セル群と、それ以外のデータ系セル群に分け、前記クロック系セル群と前記データ系セル群ごとに前記消費電流値の見積りを行う、
ことを特徴とする請求項１記載の半導体集積回路のレイアウト方法。
【請求項４】
さらに、前記消費電流値が前記許容電流値を超える区画が検出されると、消費電流調整手段が、
前記区画内で配線がなされていない前記セル群について、前記区画内の前記消費電流値が前記許容電流値を下回るように前記区画内の所定のセルを他の区画に移動させる、
ことを特徴とする請求項１記載の半導体集積回路のレイアウト方法。
【請求項５】
半導体集積回路を構成するセルを各種制約情報に基づきレイアウトする半導体集積回路のレイアウト処理を行う半導体集積回路のレイアウト処理プログラムにおいて、
コンピュータを、
レイアウト工程の各段階が終了するごとに、
設計対象チップの領域を仮想的に格子状に分割した区画ごとに、
前記区画内に供給できる許容電流値をテクノロジ固有の電源規格値に基づき算出し、
前記区画内に配置されたセル群の負荷容量見積りと、終了した前記レイアウト工程に応じたモデルを用いて算出される配線容量見積りを加算した区画内消費電流に基づいて予測される消費電流値を算出し、
前記区画について算出された前記許容電流値と前記消費電流値とを比較して前記消費電流値が前記許容電流値を超えていないかどうか判定する消費電流見積り手段、として機能させることを特徴とする半導体集積回路のレイアウト処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路のレイアウト方法およびレイアウト処理プログラムに関し、特に半導体集積回路を構成するセルを各種制約情報に基づきレイアウトする半導体集積回路のレイアウト方法およびレイアウト処理プログラムに関する。
【背景技術】
【０００２】
半導体集積回路の設計は、仕様作成から始まって、機能設計、論理設計、回路設計、レイアウト設計、製造、テストなどの複数の工程から構成されている。このうち、レイアウト設計は、回路設計で決定されたセルの初期配置から配線までを行う工程であり、様々なＣＡＤ（Computer Aided Design）ツールが利用され、自動化が進んでいる。
【０００３】
図８は、従来のレイアウト設計の工程を示すフローチャートである。
論理合成されたネットリスト９０１と、レイアウトに必要な各種情報を格納したライブラリ９０２がＣＡＤツールに与えられ、処理が開始される。ライブラリ情報には、セルやマクロなどの物理情報、タイミング制約に関する制約情報などがある。
【０００４】
まず、セルを配置するセル初期配置が行われ（ステップＳ９１）、生成された初期配置が評価される（ステップＳ９２）。ＯＫであればクロックスキュー調整を行うクロックツリー合成が行われ（ステップＳ９３)、クロックネットが張られる。作成されたクロックネットの評価が行われ（ステップＳ９４）、ＯＫであれば、各種制約を満足したうえで、チップ面積改善、タイミング改善などの最適化が施される（ステップＳ９５）。そして、最適化後にも評価が行われ（ステップＳ９６）、ＯＫであれば、クロックネットの配線と遅延値算出が行われ、スキューが満足するようにスキュー改善が実行される（ステップＳ９７）。
【０００５】
上記のセル初期配置、クロックツリー合成および最適化の各工程では、所定の配置領域のセル間パス遅延がタイミング制約を満足するように配置が行われるが、許容電流値は考慮されない。配置されたセル群の消費電流値が許容電流値内に収まっているかどうかの検証は、クロックネットの配線実行が終了してから行われていた。
【０００６】
また、クロックツリー合成段階で、レイアウト領域に対して仮想的な格子を設定し、この格子で区切られた部分領域ごとにセルが一次元方向に配置された一次元セルアレイの消費電流を調査し、追加セルを消費電流の少ない一次元セルアレイに配置するセル配置方法も提案されている（たとえば、特許文献１参照）。
【特許文献１】特開２００２−２１７３００号公報（段落番号〔００２９〕〜〔００３４〕、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、従来のセル配置方法では、レイアウト設計工程の最終段階、すなわち、配線が完了してから配置されたセル群の消費電流が許容電流値内であるかどうかが検討されるため、設計最終段階になるまで許容電流不足が検出されないという問題点があった。このため、許容電流不足が検出されると、前段階まで戻って設計をやり直さなければならず、工程の遅延や修正工数の増大を招いていた。
【０００８】
また、特許文献１に記載のセル配置方法は、クロックツリー合成段階において、タイミング調整用の追加セルを配置する部分領域の消費電流が許容電流を超えないようにするための手法であり、前工程までのセル配置によって生じた許容電流不足を修正するものではない。
【０００９】
以上のように、従来のレイアウト方法では、レイアウト設計の各工程において許容電流値を考慮した配置が行われておらず、消費電流の大きいセルが所定の配置領域にまとまって配置され、許容電流不足が生じることがあった。また、許容電流不足は、設計最終段階の工程になって初めて検出されていた。
【００１０】
本発明はこのような点に鑑みてなされたものであり、レイアウト工程において、設計最終段階で検出された許容電流不足による工程の手戻りを防止する半導体集積回路のレイアウト方法およびレイアウト処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明では上記課題を解決するために、図１に示すような半導体集積回路のレイアウト方法が提供される。本発明にかかるレイアウト方法は、半導体集積回路を構成するセルを各種制約に基づきレイアウトするレイアウト処理装置１に適用される。レイアウト処理装置１は、レイアウト手段１１が実行するレイアウト工程の各段階の終了ごとに、消費電流見積り手段１２を起動し、設計対象チップの領域を仮想的に格子状に分割した区画について、消費電流値を見積り、消費電流値見積りが許容電流値を超えているかどうかを調べる。すなわち、格子状に分割された区画ごとに、テクノロジ固有の電源規格値に基づき許容電流値を算出するとともに、終了したレイアウト工程に応じたモデルを用いて区画内に配置されたセル群の負荷容量と配線容量を見積り、これらを加算した区画内消費電流に基づき予測される消費電流値を算出する。そして、算出された消費電流値を許容電流値と比較し、消費電流値が許容電流値を超えていないかどうかを判定する。
【００１２】
このような半導体集積回路のレイアウト方法によれば、レイアウト手段１１がレイアウト工程の各段階を終了すると、消費電流見積り手段１２は、設計対象チップの領域を仮想的に分割する区画ごとに、テクノロジ固有の電源規格値に基づき許容電流値を算出する。また、レイアウト手段１１によって配置されたセル群の負荷容量と、終了したレイアウト工程に応じたモデルに応じて算出される配線の負荷容量を加算し、その区画の消費電流値見積りを算出する。そして、消費電流値と許容電流値を比較して、消費電流値が許容電流値を超えていないかどうかを判定する。これにより、レイアウト工程の各段階で許容電流不足をチェックすることができる。
【００１３】
また、上記課題を解決するために、半導体集積回路を構成するセルを各種制約情報に基づきレイアウトする半導体集積回路のレイアウト処理を行う半導体集積回路のレイアウト処理プログラムにおいて、コンピュータを、レイアウト工程の各段階が終了するごとに、設計対象チップの領域を仮想的に格子状に分割した区画ごとに、区画内に供給できる許容電流値をテクノロジ固有の電源規格値に基づき算出し、区画内に配置されたセル群の負荷容量見積りと、終了したレイアウト工程に応じたモデルを用いて算出される配線容量見積りを加算した区画内消費電流に基づいて予測される消費電流値を算出し、区画について算出された許容電流値と消費電流値とを比較して消費電流値が許容電流値を超えていないかどうか判定する消費電流見積り手段、として機能させることを特徴とする半導体集積回路のレイアウト処理プログラム、が提供される。
【００１４】
このようなレイアウト処理プログラムが実行されることにより、コンピュータは、レイアウト処理装置として機能し、レイアウト工程の各段階の終了ごとに、設計対象チップを仮想的に格子状に区切った区画それぞれについて、テクノロジ固有の電源規格値に基づく許容電流値と、区画内で予測される消費電流値を算出する。消費電流値は、前段階で配置されたセル群の負荷容量見積りと配線容量見積りとに基づき算出する。そして、消費電流値と許容電流値を比較し、消費電流値が許容電流値内であるかどうかを判定する。
【発明の効果】
【００１５】
本発明の半導体装置のレイアウト方法およびレイアウト処理プログラムが実行されると、レイアウト工程の各段階が終了するごとに、設計対象チップを格子状に分割した区画の許容電流値と、消費電流値を算出し、消費電流値が許容電流値内に収まっているかどうかを判定する。消費電流値の算出には、終了したレイアウト工程の段階に応じたモデルが選択され、利用される。
【００１６】
このように、各段階の終了ごとに、許容電流値に対して消費電流値がオーバーしていないかどうかを確認するので、許容電流値不足があれば、レイアウト工程の初期段階からこれを検出することが可能で、必要であれば、レイアウトの手直しを行うことができる。これによって、設計最終段階になって許容電流値不足が検出され、手戻りが発生してしまうことを防止することが可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明の概念図である。
【００１８】
本発明にかかるレイアウト処理装置１は、論理設計により決定された半導体集積回路を構成するセル群を制約情報に基づいてチップ上に配置するレイアウト手段１１と、レイアウト工程の各段階が終了するごとに消費電流値を見積り、許容電流値を超えていないかどうかを判定する消費電流見積り手段１２の処理手段と、各種情報データを格納する記憶手段２０を具備する。
【００１９】
記憶手段２０には、論理回路データ２１、物理回路データ２２、セル・ライブラリ２３、制約情報ファイル２４およびタイミング・ライブラリ２５の各情報データが格納される。
【００２０】
論理回路データ２１は、前工程で論理合成された論理回路を記述したデータ、いわゆるネットリストである。物理回路データ２２は、電源情報や配置情報など物理的な回路情報である。セル・ライブラリ２３は、回路を構成するセルに関するセル情報や、マクロ情報を有する。制約情報ファイル２４は、タイミングの制約情報を有する。タイミング・ライブラリ２５は、タイミング情報を有する。
【００２１】
レイアウト手段１１は、最初にチップ上の概略レイアウトを決定し（セル初期配置、ステップＳ１１）、クロックなどの特殊配線の経路を決定し（クロックツリー合成、ステップＳ１２）、チップ面積改善、タイミング改善が行われ（最適化、ステップＳ１３）、最終的に決定されたレイアウトについてスキューが満足されるように調整が行われる（スキュー改善、ステップＳ１４）。各ステップの終了時には、消費電流見積り手段１２が起動され、ステップ終了時のレイアウト情報に基づき、消費電流値が見積られ、許容電流値をオーバーしていないかどうかが確認される。
【００２２】
セル初期配置（ステップＳ１１）では、論理回路データ２１、物理回路データ２２、セル・ライブラリ２３、および制約情報ファイル２４の各情報を用いて、セルの仮配置が行われる。初期配置終了後、消費電流見積り手段１２によるセル初期配置後消費電流見積り（ステップＳ２１）が行われる。クロックツリー合成（ステップＳ１２）では、セル初期配置（ステップＳ１１）によるセルの仮配置情報（レイアウト情報）と、タイミング・ライブラリ２５に基づき、フリップフロップ・メモリ間のクロックスキューの目標値を満たすようにバッファーの挿入と配置がなされる。消費電流見積り手段１２によるクロックツリー合成後消費電流見積り（ステップＳ２２）が行われる。最適化（ステップＳ１３）では、最適化処理が実行され、セルの配置の詳細および配線が決定される。最適化終了後、消費電流見積り手段１２による最適化後消費電流見積り（ステップＳ２３）が行われる。スキュー改善（ステップＳ１４）では、スキューチェックを行って、スキューが満足するようにバッファーやゲートの配置、配線経路の修正を行い、スキューの改善処理を行う。
【００２３】
消費電流見積り手段１２は、レイアウト手段１１における各ステップが終了するごとに、ステップ終了時点のレイアウト情報に基づいて、チップを仮想的に分割した区画ごとに、区画内の負荷容量に応じた消費電流値を見積り、消費電流値が許容電流値以下に収まっているかどうかを判定する。チップ内の許容電流値と消費電流値を見積るためには、チップ全体として計算するよりもチップを仮想的に格子状に分割し、格子によって区切られる一区画ごとに処理するほうが容易である。そこで、電源補助線によって格子状に区切られる一区画を１つのパワーユニットとして捉え、パワーユニットごとに見積りを行う。パワーユニットごとに、供給できる電流値（許容電流値）をテクノロジ固有の電源規格値により計算し、配置されたセルの負荷容量と配線容量を加えた負荷容量に応じて算出されるパワーユニットで消費される消費電流値を計算する。消費電流値は、消費電流見積り手段１２が起動されるレイアウト工程の各段階に応じて適したモデルを選択し、そのモデルに従って算出する。
【００２４】
こうして算出された消費電流値をそのパワーユニットの許容電流値と比較し、消費電流値が許容電流値以内に収まっているかどうかを判定する。
さらに、消費電流値が許容電流値を超えると判定された場合は、このパワーユニットのセルが移動可能であれば、パワーユニットの消費電流値が許容電流値を下回るように、消費電流の大きいセルを他のパワーユニットへ移動させる。なお、セルが移動可能であるとは、セル間の配線がなされていない状態をいう。
【００２５】
各ステップの処理を説明する。
セル初期配置終了後消費電流見積り（ステップＳ２１）は、レイアウト手段１１のセル初期配置（ステップＳ１１）終了後に処理を行う。セル初期配置終了後消費電流見積り（ステップＳ２１）では、パワーユニット内の許容電流値をテクノロジ固有の電源規格値に基づき算出する。また、この時点では概略レイアウトとして、セルの仮配置のみが行われ、配線はまだ実行されていない。そこで、配線負荷容量は、配置モデルに基づいて仮想的な配線容量を算出する。そして、消費電流値と許容電流値を比較し、消費電流値が許容電流値を超えていないかどうかを判定する。その結果、消費電流値が許容電流値を超えている場合は、まだ配線は行われていないので、図示しない消費電流調整手段によって、消費電流値が許容電流値を超えたパワーユニット内で消費電流の大きいセルを他のパワーユニットに移動する。このとき、移動によって、このセルの受け入れ先のパワーユニットの消費電流値が許容電流値を超えないようにする。
【００２６】
クロックツリー合成後消費電流見積り（ステップＳ２２）は、レイアウト手段１１のクロックツリー合成（ステップＳ１２）終了後に処理を行う。クロックツリー合成後消費電流見積り（ステップＳ２２）では、クロックツリーで合成されるクロック系セルと、それ以外の一般のセル（データ系セルとする）とに分けて処理を行う。データ系セルについては、セル初期配置終了後消費電流見積り（ステップＳ２１）と同様にして、パワーユニットのデータ系セルに関する許容電流値と消費電流値を算出し、算出された値を比較する。そして、消費電流値が許容電流値を超えている場合は、当該パワーユニット内で消費電流の大きいデータ系セルを他のパワーユニットに移動する。クロック系セルの許容電流値は、上記と同様に電源テクノロジに基づき算出するが、消費電流値については、クロックツリー合成においてクロックネットは仮配線で縦横無尽に張られているので、この場合、仮配線の経路は、経路によって配線容量を算出するのは難しい。ここでは、スタイナ（Ｓｔｅｉｎｅｒ）配線（マンハッタン長）の方法を用いて配線容量を計算する。
【００２７】
そして、算出された消費電流値を許容電流値と比較する。消費電流値が許容電流値を超えている場合、許容電流値をオーバーするパワーユニットがあることを通知する。クロックツリー合成では、クロックスキューの目標値を考慮しながらクロックツリーを構築するので、セルを移動するとスキューに影響を及ぼすことが考えられる。そこで、クロック系セルは、許容電流値がオーバーしたことを通知するのみとし、セルの移動は行わない。
【００２８】
最適化後消費電流見積り（ステップＳ２３）は、レイアウト手段１１の最適化（ステップＳ１３）終了後に処理を行う。最適化後消費電流見積り（ステップＳ２３）では、各パワーユニットの許容電流値を上記と同様に電源テクノロジに基づき算出する。もしくは、ステップＳ２１で算出された許容電流値を用いる。最適化（ステップＳ１３）では、多分岐ネットや長距離ネットに対してバッファ挿入されるので、極端な負荷容量がつくことはなく、最終的な実配線に近い値が設定される。パワーユニットの消費電流見積りについては、最終的な実配線に近い値なので、データ系セルおよびクロック系セルのいずれも配線容量をスタイナ配線の方法で算出することができる。こうして算出された消費電流値を許容電流値と比較する。消費電流値が許容電流値を超えている場合、許容電流値をオーバーするパワーユニットがあることを通知する。最適化終了後は、最終的な実配線に近い値なので、セルを移動した場合の影響が大きい。そこで、負荷容量値が許容電流値をオーバーしたことを通知するのみとし、セルの移動は行わない。
【００２９】
以上のような半導体集積回路のレイアウト方法では、レイアウト手段１１によって、レイアウト工程であるセル初期配置（ステップＳ１１）、クロックツリー合成（ステップＳ１２）および最適化（ステップＳ１３）の各ステップが終了するごとに、消費電流見積り手段１２によって、それぞれセル初期配置後消費電流見積り（ステップＳ２１）、クロックツリー合成後消費電流見積り（ステップＳ２２）および最適化後消費電流見積り（ステップＳ２３）が実行される。各消費電流見積り処理では、それぞれに対応するステップ終了時に適したモデルを選択し、設計対象のチップ領域を電源補助線で分割したパワーユニットごとに許容電流値と消費電流値の見積りを行って、消費電流値が許容電流値を超えていないことを確認する。もし、消費電流値が許容電流値を超えていた場合は、セルの配線がなされていない状態であれば、該当するパワーユニットの消費電流の大きいセルを近隣の他のパワーユニットに移動させる。
【００３０】
このように、ステップごとに、許容電流値に対して消費電流値がオーバーしていないかどうかを確認するので、許容電流値不足があれば、レイアウト工程の初期段階からこれを検出することが可能となる。また、配線がなされていなければ、消費電流値がオーバーしているパワーユニットの消費電流の大きいセルを他のパワーユニットへ移動させ、パワーユニットの消費電流値が許容電流値を下回るようにする。これにより、設計最終段階における手戻りを防止することができる。
【００３１】
以下、本発明の実施の形態を、ＣＡＤを用いたレイアウトツールに適用した場合を例に説明する。図２は、本発明の実施の形態のレイアウトツールのハードウェア構成例を示すブロック図である。
【００３２】
レイアウトツール１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、通信インタフェース１０６が接続されている。
【００３３】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションのプログラムが格納される。グラフィック処理装置１０４には、モニタ１０８が接続されており、ＣＰＵ１０１からの命令に従って画像をモニタ１０８の画面に表示させる。入力インタフェース１０５には、キーボード１０９ａやマウス１０９ｂが接続されており、キーボード１０９ａやマウス１０９ｂから送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、ネットワークに接続されており、ネットワークを介して端末装置との間でデータの送受信を行う。
【００３４】
このようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、以下に説明するレイアウトツールの処理機能においては、通信インタフェース１０６は具備しなくてもよい。
【００３５】
上記のハードウェア構成を有するレイアウトツール１００が、本発明に係る半導体集積回路のレイアウト処理プログラムを実行することにより、レイアウトツール１００がレイアウト手段、消費電流見積り手段および消費電流調整手段として機能し、実施の形態のレイアウト方法の処理手順が実行される。
【００３６】
レイアウトツール１００では、レイアウト手段によって各段階のレイアウト処理が行われるごとに、消費電流見積り手段によって消費電流値が見積られ、算出された消費電流値が許容電流値を超えていないかどうかが確認される。また、必要に応じて、消費電流調整手段によって消費電流が調整される。したがって、上述のように、セル初期配置（ステップＳ１１）、クロックツリー合成（ステップＳ１２）、最適化（ステップＳ１３）の工程が終了するごとに、消費電流見積り処理が行われる。
【００３７】
以下、工程に従って順次説明する。なお、レイアウト工程における処理は公知のものと同様であるので詳細な説明は省略し、必要な事項のみ説明する。
（ａ）セル初期配置後の消費電流見積り
セル初期配置によってセルが仮配置されたパワーユニットの消費電流見積りを行う。図３は、本実施の形態のセル初期配置後の消費電流見積り処理手順を示したフローチャートである。
【００３８】
セル初期配置（ステップＳ１１）では、セルが仮配置され、概略レイアウトが決定されるが、まだ配線はされていない。この状態からセルの消費電流見積り処理が開始される。
［ステップＳ２０１］  電源補助線を用いて、設計対象チップの領域を仮想的に格子状に分割する。分割された区画は、パワーユニットと呼ぶ。
【００３９】
［ステップＳ２０２］  それぞれのパワーユニットについて、テクノロジ固有の電源規格値や電源構造に基づく電源ルールに従って、パワーユニット内のセルに供給できる許容電流値の見積りを算出する。
【００４０】
［ステップＳ２０３］  それぞれのパワーユニットについて、パワーユニット内の全セルのセル仮入力負荷容量と仮配線容量を算出する。セル仮入力負荷容量は、仮配置されたセルに関するセル情報に設定される負荷容量をパワーユニット内のすべてのセルについて取得して算出する。また、仮配線容量については、まだ実際の配線はなされていないため、配置モデルに基づきモデルベースで配線容量を見積る。そして、セル仮入力負荷容量、仮配線容量およびパラメータ（動作周波数、動作率）を用いて、パワーユニットの消費電流値の見積りを算出する。
【００４１】
［ステップＳ２０４］  ステップＳ２０２で算出されたパワーユニットの許容電流値と、ステップＳ２０３で算出されたそのパワーユニットの消費電流値を比較し、許容電流値に対して値がオーバーしていないかの確認を行う。
【００４２】
ステップＳ２０２、ステップＳ２０３およびステップＳ２０４の処理をすべてのパワーユニットに対して実行しておく。
［ステップＳ２０５］  違反パワーユニット、すなわち、ステップＳ２０４の確認で許容電流値に対して消費電流値がオーバーしているパワーユニットを検索する。
【００４３】
［ステップＳ２０６］  ステップＳ２０５の検索によって、違反パワーユニットが検出されたかどうかを判定する。検出されない場合、次のレイアウト工程であるクロックツリー合成（ステップＳ１２）へ処理を進める。
【００４４】
［ステップＳ２０７］  違反パワーユニットが検出された場合、違反パワーユニットの近隣のパワーユニットのうち、違反パワーユニットのセルを受け入れても消費電流値がオーバーしないセルの移動先パワーユニットを検索する。ここでは、簡単のため、違反パワーユニットで最も消費電流の大きいセルを移動させるとして、移動が可能であるかどうかをチェックする。このセルを移動させても消費電流値オーバーの場合は、さらに次に消費電流が大きいセルを移動させるとする。また、複数の違反パワーユニットが検出された場合、それぞれについて同様の処理を行い、セル移動先パワーユニットを検索する。
【００４５】
［ステップＳ２０８］  ステップＳ２０７で検索されたセルの移動が可能なパワーユニットに違反パワーユニットにある消費電流の大きいセルを移動させる。検索された移動可能なパワーユニットが複数ある場合は、最短距離にあるパワーユニットに移動させる。こうしてセルの移動が終了し、消費電流の調整がなされた後、再度、違反パワーユニット検索（ステップＳ２０５）で違反パワーユニットが検出されないのを確かめ、次のレイアウト工程であるクロックツリー合成（ステップＳ１２）へ処理を進める。
【００４６】
以上の処理手順が実行されることにより、セル初期配置終了後の配線が行われていない仮配置の状態で、消費電流値が許容電流値を超えていないかどうかを確認することができる。また、消費電流値が許容電流値を超えたパワーユニットが検出された場合は、このパワーユニットのセルを他のパワーユニットに移動させることにより、自動で負荷の調整を行うことができる。これにより、この後に続くレイアウト工程で、許容電流値不足が発生する可能性を抑えることができる。
【００４７】
ここで、セルを移動して消費電流を調整する方法について説明する。図４は、本実施の形態の消費電流調整方法を示した図である。
実施の形態では、設計対象の半導体チップの設計領域を補助電源線１１０によって仮想的に格子状に分割し、それぞれの区画をパワーユニット（ＰＵ１）１２１、ＰＵ２（１２２）、ＰＵ３（１２３）、ＰＵ４（１２４）、ＰＵ５（１２５）、ＰＵ６（１２６）、ＰＵ７（１２７）、ＰＵ８（１２８）およびＰＵ９（１２９）と呼ぶ。各パワーユニットには、セル１３０が配置されている。
【００４８】
パワーユニットの許容電流値と消費電流値を比較した結果、図の例では、ＰＵ５（１２５）に消費電流値の大きいセルが固まって配置されたため、ＰＵ５（１２５）が負荷容量値オーバーとなったとする。また、ＰＵ５（１２５）については、消費電流値の大きい対象セル１３１を移動させれば、消費電流値は許容電流値内に収まるとする。
【００４９】
そこで、ＰＵ５（１２５）に近接するパワーユニット、ＰＵ１（１２１）、ＰＵ２（１２２）、ＰＵ３（１２３）、ＰＵ４（１２４）、ＰＵ６（１２６）、ＰＵ７（１２７）、ＰＵ８（１２８）およびＰＵ９（１２９）について、対象セル１３１を受け入れても負荷容量値オーバーとならないかどうかが調べられる。この結果、ＰＵ１（１２１）、ＰＵ２（１２２）、ＰＵ３（１２３）、ＰＵ４（１２４）、ＰＵ６（１２６）およびＰＵ９（１２９）の６つのパワーユニットがセル移動先パワーユニットの候補になる。
【００５０】
そこで、６箇所の候補のいずれか任意のパワーユニットに対象セル１３１を移動させる。これにより、設計対象チップの負荷容量が分散され、すべてのパワーユニットについて消費電流値を許容電流値内に収めることができる。
【００５１】
なお、レイアウト工程において関連付けされてセル配置がなされているので、移動先の選択は、これを考慮して行うようにする。
（ｂ）クロックツリー合成後の消費電流見積り
クロックツリー合成によってクロックネットが張られたパワーユニットの消費電流見積りを行う。図５は、本実施形態のクロックツリー合成後の消費電流見積り処理手順を示したフローチャートである。クロックツリー合成（ステップＳ１２）では、クロックネットに接続される総負荷容量、クロックスキューに対する制約などに応じて、クロックツリーの形状、バッファを挿入する段数などが決定され、クロックネットにクロックツリーが構築される。この状態からセルの負荷容量見積り処理が開始される。
【００５２】
［ステップＳ２１１］  電源補助線を用いて、設計対象チップの領域を仮想的に格子状に分割する。分割された区画は、パワーユニットと呼ぶ。 
［ステップＳ２１２］  それぞれのパワーユニットについて、テクノロジ固有の電源規格値や電源構造に基づく電源ルールに従って、パワーユニット内のセルに供給できる許容電流値の見積りを算出する。
【００５３】
［ステップＳ２１３］  実際に配置されたセルの負荷容量をセル情報から取得し、セル実入力負荷容量を算出する。また、配線容量については、既にクロックツリーが構築され、配線経路が確定しているので、実配線モデルに基づき配線容量の見積りをスタイナ配線方法を用いてセル間のマンハッタン長を算出し、配線容量の見積りを算出する。
【００５４】
［ステップＳ２１４］  クロック系セルについて、ステップＳ２１２で算出されたパワーユニットの許容電流値と、ステップＳ２１３で算出されたそのパワーユニットの消費電流値を比較し、許容電流値に対して消費電流値がオーバーしていないかの確認を行う。
＜クロック系セル対応処理＞
［ステップＳ２１５］  クロック系セルについては、クロックツリー合成において、クロックスキューの目標値を考慮しながらバッファーの挿入と配置がされているので、セルの移動を行うとクロックスキューに影響を及ぼす。したがって、ここではパワーユニット内消費電流の調整は対象としない。つまり、違反パワーユニットが検出されても、移動するセルの対象としない。
＜データ系セル対応処理＞ 
［ステップＳ２１６］  データ系セルについては、セル初期配置の処理と同様に進める。
【００５５】
［ステップＳ２１７］  違反パワーユニット、すなわち、ステップＳ２１４の確認で許容電流値に対して消費電流値がオーバーしているパワーユニットを検索する。
［ステップＳ２１８］  ステップＳ２１７の検索によって、違反パワーユニットが検出されたかどうかを判定する。検出されない場合、次のレイアウト工程である最適化（ステップＳ１３）へ処理を進める。
【００５６】
［ステップＳ２１９］  違反パワーユニットが検出された場合、違反パワーユニットの近隣のパワーユニットのうち、違反パワーユニットのセルを受け入れても消費電流値がオーバーしないセルの移動先パワーユニットを検索する。ここでは、簡単のため、違反パワーユニットで最も消費電流の大きいセルを移動させるとして、移動が可能であるかどうかをチェックする。このセルを移動させても消費電流値オーバーの場合は、さらに次に消費電流が大きいセルを移動させるとする。また、複数の違反パワーユニットが検出された場合、それぞれについて同様の処理を行い、セル移動先パワーユニットを検索する。
【００５７】
［ステップＳ２２０］  ステップＳ２１９で検索されたセルの移動が可能なパワーユニットに違反パワーユニットにある消費電流の大きいセルを移動させる。検索された移動可能なパワーユニットが複数ある場合は、最短距離にあるパワーユニットに移動させる。こうしてセルの移動が終了し、消費電流の調整がなされた後、再度、違反パワーユニット検索（ステップＳ２１７）で違反パワーユニットが検出されないのを確かめ、次のレイアウト工程である最適化（ステップＳ１３）へ処理を進める。
【００５８】
以上の処理手順が実行されることにより、クロックツリー合成終了後、クロック系の配線経路が決定したクロック系セルと、まだ配線経路が決定していないデータ系セルとを分別し、それぞれに適した方法で消費電流値を算出する。データ系セルについては、上記のセル初期配置と同様に、配置モデルに基づきモデルベースで配線容量を見積り、負荷容量を算出する。一方、クロック系セルは、実配線のモデルを用いてスタイナ配線容量を見積り、負荷容量を算出する。この結果、より高い精度で消費電流値が許容電流値を超えていないかどうかを確認することができる。
【００５９】
また、配線経路が決定していないデータ系セルについては、消費電流値が許容電流値を超えたパワーユニットが検出された場合は、このパワーユニットのセルを他のパワーユニットに移動させることにより、自動で負荷の調整を行うことができる。これにより、この後に続くレイアウト工程で、許容電流値不足が発生する可能性を低くし、後工程での手戻りの可能性を抑えることができる。
【００６０】
ここで、スタイナ配線について説明する。図６は、スタイナ配線を説明する図である。
セル１３２とセル１３３間の配線経路は、他のセルを避けて配線するため、実配線１４１に示したように、実際には複雑な経路となる。そこで、このような配線をＸ軸（水平方向）とＹ軸（垂直方向）の直線と見なした配線経路がスタイナ配線１４２であり、その配線経路の長さを、マンハッタン長ともいう。すなわち、マンハッタン長は、端子と端子の間を直線で結んだ結線をＸ軸とＹ軸に分解し、これを加算した値になる。
（ｃ）最適化後の消費電流見積り
最適化によってセル間の配線経路が決定されたパワーユニットの消費電流見積りを行う。図７は、本実施の形態の最適化後の消費電流見積り処理手順を示したフローチャートである。
【００６１】
最適化（ステップＳ１３）では、セルの配置および配線経路が決定され、この状態からセルの消費電流見積り処理が開始される。
［ステップＳ２３１］  電源補助線を用いて、設計対象チップの領域を仮想的に格子状に分割する。分割された区画は、パワーユニットと呼ぶ。
【００６２】
［ステップＳ２３２］  それぞれのパワーユニットについて、セル初期配置と同様に、テクノロジ固有の電源規格値や電源構造に基づく電源ルールに従って、パワーユニットのセルに供給できる許容電流値の見積りを算出する。なお、セル初期配置後の許容電流見積り処理で算出した許容電流値を用いてもよい。
【００６３】
［ステップＳ２３３］  ここでは、クロックツリー合成後のクロック系セルの負荷容量見積りと同様にして、実際に配置されたセルの負荷容量をセル情報から取得し、セル実入力負荷容量を算出する。また、配線容量については、多分岐ネットや長距離ネットに対してバッファ挿入されるので、極端な負荷容量がつくことはなく、最終的な実配線に近い値が設定されるので、実配線モデルに基づきスタイナ配線容量の見積りを算出する。
【００６４】
［ステップＳ２３４］  ステップＳ２３２で算出されたパワーユニットの許容電流値と、ステップＳ２３３で算出されたそのパワーユニットの消費電流値を比較し、許容電流値に対して消費電流値がオーバーしていないかの確認を行う。なお、チップ面積改善、タイミング改善などの最適化が施されているので、ここでは確認のみとし、消費電流の調整は行わずに処理を次のレイアウト工程であるスキュー改善（ステップＳ１４）へ進める。
【００６５】
以上の処理手順が実行されることにより、最適化終了後の状態で、消費電流値が許容電流値を超えていないかどうかを確認することができる。
このように、セルの初期配置から最適化までの各工程の終了ごとに、消費電流値が許容電流値を超えていないかどうかを確認し、セルの移動が可能であれば、消費電流の調整を行うことによって、最終工程において許容電流不足が検出され、手戻りが発生することを防止することができる。
【００６６】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、レイアウト処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００６７】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００６８】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００６９】
（付記１）  半導体集積回路を構成するセルを各種制約情報に基づきレイアウトする半導体集積回路のレイアウト方法において、
レイアウト工程の各段階が終了するごとに、消費電流見積り手段が、
設計対象チップの領域を仮想的に格子状に分割した区画ごとに、
前記区画内に供給できる許容電流値をテクノロジ固有の電源規格値に基づき算出し、
前記区画内に配置されたセル群の負荷容量見積りと、終了した前記レイアウト工程に応じたモデルを用いて算出される配線容量見積りを加算した区画内消費電流に基づいて予測される消費電流値を算出し、前記区画について算出された前記許容電流値と前記消費電流値とを比較して前記消費電流値が前記許容電流値を超えていないかどうか判定する、手順を有することを特徴とする半導体集積回路のレイアウト方法。
【００７０】
（付記２）  前記設計対象チップの領域を仮想的に格子状に分割する手順は、電源補助線によってチップ領域を格子状に分割する、
ことを特徴とする付記１記載の半導体集積回路のレイアウト方法。
【００７１】
（付記３）  前記消費電流値の見積り手順では、
前記消費電流値の見積りを、配置された前記セルと配線の負荷容量に対し、動作率と動作周波数をパラメータとして用いて算出する、
ことを特徴とする付記１記載の半導体集積回路のレイアウト方法。
【００７２】
（付記４）  前記消費電流値の見積りにおける配線容量見積り手順では、
前記レイアウト工程によって前記セルの配線経路が決定していない段階では、配置モデルより導出される仮想配線容量により前記配線容量見積りを算出し、クロック系の特殊配線を含む前記セルの配線経路が決定した段階では、実配線モデルを用いてセル間配線のマンハッタン長を算出し、前記マンハッタン長に基づいて前記配線容量見積りを算出する、
ことを特徴とする付記１記載の半導体集積回路のレイアウト方法。
【００７３】
（付記５）  前記消費電流値の見積り手順では、
前記レイアウト工程におけるクロックツリー合成が終了した段階では、前記セル群をクロックネットが張られたクロック系セル群と、それ以外のデータ系セル群に分け、前記クロック系セル群と前記データ系セル群ごとに前記消費電流値の見積りを行う、
ことを特徴とする付記１記載の半導体集積回路のレイアウト方法。
【００７４】
（付記６）  前記消費電流値の見積り手順では、
前記クロック系セル群については、決定された配線経路に基づき実配線モデルを用いて前記配線容量見積りを算出し、前記データ系セル群については、配置モデルより導出される仮想配線容量により前記配線容量見積りを算出する、
ことを特徴とする付記５記載の半導体集積回路のレイアウト方法。
【００７５】
（付記７）  さらに、前記消費電流値が前記許容電流値を超える区画が検出されると、消費電流調整手段が、
前記区画内で配線がなされていない前記セル群について、前記区画内の前記消費電流値が前記許容電流値を下回るように前記区画内の所定のセルを他の区画に移動させる、
ことを特徴とする付記１記載の半導体集積回路のレイアウト方法。
【００７６】
（付記８）  前記セルを他の区間に移動させる手順は、
前記消費電流値が前記許容電流値を超える前記区画に配置される前記セル群のうち、消費電流の大きい前記セルを選択し、選択された前記セルを、前記セルを追加した場合の前記消費電流値が前記許容電流値を超えない区画へ移動させる、
ことを特徴とする付記７記載の半導体集積回路のレイアウト方法。
【００７７】
（付記９）  前記セルを他の区間に移動させる手順は、
選択された前記セルを追加した場合の前記消費電流値が前記許容電流値を超えない区画のうち、最も近くの前記区画へ前記セルを移動させる、
ことを特徴とする付記８記載の半導体集積回路のレイアウト方法。
【００７８】
（付記１０）  半導体集積回路を構成するセルを各種制約情報に基づきレイアウトする半導体集積回路のレイアウト処理を行う半導体集積回路のレイアウト処理プログラムにおいて、
コンピュータを、
レイアウト工程の各段階が終了するごとに、
設計対象チップの領域を仮想的に格子状に分割した区画ごとに、
前記区画内に供給できる許容電流値をテクノロジ固有の電源規格値に基づき算出し、
前記区画内に配置されたセル群の負荷容量見積りと、終了した前記レイアウト工程に応じたモデルを用いて算出される配線容量見積りを加算した区画内消費電流に基づいて予測される消費電流値を算出し、
前記区画について算出された前記許容電流値と前記消費電流値とを比較して前記消費電流値が前記許容電流値を超えていないかどうか判定する消費電流見積り手段、として機能させることを特徴とする半導体集積回路のレイアウト処理プログラム。
【図面の簡単な説明】
【００７９】
【図１】実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態のレイアウトツールのハードウェア構成例を示すブロック図である。
【図３】本実施の形態のセル初期配置後の消費電流見積り処理手順を示したフローチャートである。
【図４】本実施の形態の消費電流調整方法を示した図である。
【図５】本実施の形態のクロックツリー合成後の消費電流見積り処理手順を示したフローチャートである。
【図６】スタイナ配線を説明する図である。
【図７】本実施の形態の最適化後の消費電流見積り処理手順を示したフローチャートである。
【図８】従来のレイアウト設計の工程を示すフローチャートである。
【符号の説明】
【００８０】
１  レイアウト処理装置
１１  レイアウト手段
１２  消費電流見積り手段
２１  論理回路データ
２２  物理回路データ
２３  セル・ライブラリ
２４  制約情報ファイル
２５  タイミング・ライブラリ
【図１】
2007148863.tif 000003
【図２】
2007148863.tif 000004
【図３】
2007148863.tif 000005
【図４】
2007148863.tif 000006
【図５】
2007148863.tif 000007
【図６】
2007148863.tif 000008
【図７】
2007148863.tif 000009
【図８】
2007148863.tif 000010