(57)【特許請求の範囲】
【請求項１】
半導体装置におけるセルのレイアウトに関する情報を記憶可能な記憶装置と、
上記記憶装置内の情報を参照して、上記半導体装置における各部にクロック信号を分配するためのクロックツリーを生成し、生成されたクロックツリーにおける過剰なタイミングマージンを削減するための演算処理を実行可能な演算処理装置と、を含み、
上記演算処理装置は、クロックライン上のトランジション制約及びキャパシタンス制約に余裕があるか否かを判別する第１処理と、
上記第１処理での判別結果に応じて、上記クロックラインにおけるクロックバッファのサイズダウン又は削除を行う第２処理と、
上記第２処理後のクロックバッファの充放電電流と貫通電流との合計値を考慮して、電力低減が可能であるか否かを判別する第３処理と、
上記第３処理での判別結果に応じて上記クロックバッファのサイズ調整を行う第４処理と、を実行するレイアウト装置。
【請求項２】
上記演算処理装置は、上記第４処理での上記クロックバッファのサイズ調整後に、クロックゲーティングセルを介して伝達されるクロック信号のタイミングに余裕があるか否かを判別する第５処理と、
上記第５処理での判別結果に応じて上記クロックゲーティングセルのサイズダウン又は削減を行う第６処理と、を実行する請求項１記載のレイアウト装置。
【請求項３】
上記演算処理装置は、セットアップ・ホールドタイミングを満足していることを前提に、データライン上のトランジション制約及びキャパシタンス制約を満足する範囲で、上記データラインにおけるセルのサイズを最小化することでデータラインを最適化する処理を実行する請求項２記載のレイアウト装置。
【請求項４】
上記演算処理装置は、電力削減が可能であるか否かを判別し、その判別結果に基づいてデータラインを最適化する請求項３記載のレイアウト装置。
【請求項５】
演算処理を実行可能な演算処理装置を用いて、半導体装置における各部にクロック信号を分配するためのクロックツリーを生成可能なレイアウト方法であって、
クロックライン上のトランジション制約及びキャパシタンス制約に余裕があるか否かを判別する第１処理と、
上記第１処理での判別結果に応じて、上記クロックラインにおけるクロックバッファのサイズダウン又は削除を行う第２処理と、
上記第２処理後のクロックバッファの充放電電流と貫通電流との合計値を考慮して、電力低減が可能であるか否かを判別する第３処理と、
上記第３処理での判別結果に応じて上記クロックバッファのサイズ調整を行う第４処理と、を上記演算処理装置に実行させるレイアウト方法。
【請求項６】
上記第４処理での上記クロックバッファのサイズ調整後に、クロックゲーティングセルを介して伝達されるクロック信号のタイミングに余裕があるか否かを判別する第５処理と、
上記第５処理での判別結果に応じて上記クロックゲーティングセルのサイズダウン又は削減を行う第６処理と、を上記演算処理装置に実行させる請求項５記載のレイアウト方法。
【請求項７】
セットアップ・ホールドタイミングを満足していることを前提に、データライン上のトランジション制約及びキャパシタンス制約を満足する範囲で、上記データラインにおけるセルのサイズを最小化することでデータラインを最適化する処理を上記演算処理装置に実行させる請求項６記載のレイアウト方法。
【請求項８】
電力削減が可能な否かを判別し、その判別結果に基づいてデータを最適化する処理を上記演算処理装置に実行させる請求項７記載のレイアウト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スタンダードセルのレイアウト技術、さらにはデザインルールを遵守しつつ、過剰なタイミングマージンを削減することで半導体装置における消費電力を抑えるための技術に関する。
【背景技術】
【０００２】
論理ＬＳＩ（Large Scale Integration）を効率よく設計するために、予め、機能毎に、所定の機能を実現するためのパターンを示すスタンダードセル（単に「セル」という）が設計され、設計対象となる回路に含まれる機能に応じて、チップ上に複数のスタンダードセルがレイアウトされる。また、論理ＬＳＩには、クロック信号を分配するためのクロックツリーが構築される。クロックツリーは、クロック分配のための論理構造のひとつとされる。  
【０００３】
特許文献１には、データ接続経路の数に基づいて、半導体集積回路上のフリップフロップが配置された領域の分割を繰り返し、分割された領域のフリップフロップをツリー状に接続する技術が記載されている。
【０００４】
特許文献２には、クロックスキューが閾値以下に収束する回路規模となるように、クロックツリーが有するフリップフロップを複数のグループに分割し、グループの前段に遅延バッファを挿入する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１２３３３６号公報
【特許文献２】特開２００６−１０７２０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
論理ＬＳＩのインプリメントにおいて、タイミング考慮のレイアウト設計を実施するケースが一般的である。この際、セットアップ、ホールドのタイミング制約に加え、最大トランジション（Max_transition）や、最大キャパシタンス（Max_capacitance）等のデザインルール制約を遵守する必要がある。  
【０００７】
一般的なレイアウト設計用ＥＤＡ（Electronic Design Automation）ツールでは、タイミング制約においては満足する範囲でリーク・エリア等を削減し、待機および動作電力（消費電力）を最小化する手法が用いられている。  
【０００８】
一方、デザインルール制約においては、それを満足していることが最優先であるが、実際にはかなりのマージンを持って制約が実現されている。そこで、過剰なマージンを持ってデザインルール制約を満足しているようなケースにおいては、マージンを削減することにより消費電力のさらなる削減が可能になると考えられる。このような状況は、クロックツリー生成（ＣＴＳ：Clock Tree Synthesys）にて実装されるクロック論理だけにとどまらず、通常のタイミング最適化の対象となるデータラインにおいても同等である。  
【０００９】
本願発明者は、上記の観点から、マージン削減の手法と実際の実現手順について検討を行った。
【００１０】
クロックツリー生成（ＣＴＳ）における良し悪しの指標としては、「低クロックスキュー・レイテンシ」を挙げることができる。また、近年においては「低消費電力」も重要な項目であり、クロックゲーティング挿入のテクニックが一般的に用いられているが、クロックゲーティングはデータ信号の変化が無い期間のクロック信号の伝播そのものを停止する手法であり、ＬＳＩの論理にクロックゲーティングの効果が大きく左右される。そのため、半導体装置のレイアウト設計用ＥＤＡツールにおいては、ＣＴＳで挿入されたバッファ（およびクロック論理にあらかじめ挿入されている組み合わせ回路）の削除機能、リサイズによりクロックエリアの削除機能、電力の削減機能が備えられている。この場合、削除・リサイズ可能なセルの選択は、スキュー・レイテンシを悪化させないことが目的関数となっている。  
【００１１】
また、デザインルール制約に目を向けると、ライブラリに記載されている最大トランジション値はライブラリのキャラクタライズ時の周波数に依存しており、ＬＳＩの周波数がこれより低い場合には制約値そのものの緩和が可能である。最大キャパシタンス値も同様であるが、実際にはエレクトロマイグレーション（ＥＭ：ElectroMigration）の制約で律則してしまうケースが多い。  
【００１２】
そのため、動作周波数の低いＬＳＩの場合、最大トランジション値や、最大キャパシタンス値が緩和できることになり、より低い駆動能力にてドライブしたり、配線そのものをより長く引き回すことができるようになる。この緩和条件に基づいてクロックツリーを構築することにより、クロックツリーのセル面積（クロックエリア）を削減し、更なる電力削減を図ることが可能になることが、本願発明者によって見いだされた。
【００１３】
また、データ論理においてもクロック論理と同じく、セットアップ・ホールドタイミングを満足し、デザインルール制約を満足する範囲内でセルの削減が可能と考えられる。  
【００１４】
本発明の目的は、デザインルールを遵守しつつ、過剰なタイミングマージンを削減することで半導体装置における消費電力を抑えるための技術を提供することにある。
【００１５】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１６】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１７】
すなわち、半導体装置におけるセルのレイアウトに関する情報を記憶可能な記憶装置と、上記記憶装置内の情報を参照して、上記半導体装置における各部にクロック信号を分配するためのクロックツリーを生成し、生成されたクロックツリーにおける過剰なタイミングマージンを削減するための演算処理を実行可能な演算処理装置とを含んでレイアウト装置を構成する。上記演算処理装置は、クロックライン上のトランジション制約及びキャパシタンス制約に余裕があるか否かを判別する第１処理、及び上記第１処理での判別結果に応じて、上記クロックラインにおけるクロックバッファのサイズダウン又は削除を行う第２処理を実行する。また、上記演算処理装置は、上記第２処理におけるクロックバッファのサイズダウン又は削除によって電力低減が可能であるか否かを判別する第３処理、及び上記第３処理での判別結果に応じて上記クロックバッファのサイズ調整を行う第４処理を実行する。
【発明の効果】
【００１８】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１９】
すなわち、デザインルールを遵守しつつ、過剰なタイミングマージン削減することで半導体装置における消費電力を低減することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明にかかるレイアウト装置の構成例ブロック図である。
【図２】図１に示されるレイアウト装置における演算処理装置で実行される処理の全体的な流れを示すフローチャートである。
【図３】図２におけるクロックツリー生成処理の詳細なフローチャートである。
【図４】図２におけるタイミングマージン削減処理の詳細なフローチャートである。
【図５】図２におけるデータライン最適化処理の詳細なフローチャートである。
【図６】タイミングゲーティングセルによる負荷分散の説明図である。
【図７】バッファの最大キャパシタンス制約の説明図である。
【図８】バッファの駆動能力とバッファの充放電電流及び貫通電流との関係説明図である。
【図９】クロックバッファのサイズ調整の説明図である。
【図１０】クロックバッファのサイズ調整の説明図である。
【図１１】クロックゲーティングセル最適化の説明図である。
【図１２】クロックゲーティングセル最適化の説明図である。
【図１３】データライン最適化の説明図である。
【発明を実施するための形態】
【００２１】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２２】
〔１〕本発明の代表的な実施の形態に係るレイアウト装置（１０）は、半導体装置におけるセルのレイアウトに関する情報を記憶可能な記憶装置（１３）と、上記記憶装置内の情報を参照して、上記半導体装置における各部にクロック信号を分配するためのクロックツリーを生成し、生成されたクロックツリーにおける過剰なタイミングマージンを削減するための演算処理を実行可能な演算処理装置（１２）とを含む。
【００２３】
上記演算処理装置は、クロックライン上のトランジション制約及びキャパシタンス制約に余裕があるか否かを判別する第１処理（Ｓ７１）、及び上記第１処理での判別結果に応じて、上記クロックラインにおけるクロックバッファのサイズダウン又は削除を行う第２処理（Ｓ７２）を実行する。また、上記演算処理装置は、上記第２処理におけるクロックバッファのサイズダウン又は削除によって電力低減が可能であるか否かを判別する第３処理（Ｓ７３）、及び上記第３処理での判別結果に応じて上記クロックバッファのサイズ調整を行う第４処理（Ｓ７４）を実行する。
【００２４】
上記の構成によれば、過剰なタイミングマージンを削減することができ、クロックバッファのサイズダウンや削除により、半導体装置における消費電力を低減することができる。また、過剰なタイミングマージンを削減は、最大トランジション、及び最大キャパシタンスのチェックが行われ、その制約値を満足する範囲内で行われることから、デザインルールが遵守されている。
【００２５】
〔２〕上記〔１〕において、上記演算処理部は、上記第４処理での上記クロックバッファのサイズ調整後に、クロックゲーティングセルを介して伝達されるクロック信号のタイミングに余裕があるか否かを判別する第５処理（Ｓ７５）と、上記第５処理での判別結果に応じて上記クロックゲーティングセルのサイズダウン又は削減を行う第６処理（Ｓ７６）とを実行するように構成することができる。このようにクロックゲーティングセルの最適化が行われることで、半導体装置における消費電力を更に低減することができる。
【００２６】
〔３〕上記〔２〕において、上記演算処理部は、セットアップ・ホールドタイミングを満足していることを前提に、データライン上のトランジション制約及びキャパシタンス制約を満足する範囲で、上記データラインにおけるセルのサイズを最小化することでデータラインを最適化する処理（Ｓ４）を実行するように構成することができる。このようにデータラインが最適化されることにより、半導体装置における消費電力を更に低減することができる。
【００２７】
〔４〕上記〔３〕において、上記演算処理部は、電力削減が可能であるか否かを判別し（Ｓ４０７）、その判別結果に基づいてデータラインを最適化する（Ｓ４０４，Ｓ４０５）ように構成することができる。電力削減が可能であるか否かの判別が行われることにより、データラインを最適化を適切に行うことができる。
【００２８】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２９】
《実施の形態１》
図１には、本発明にかかるレイアウト装置の構成例が示される。
【００３０】
図１に示されるレイアウト装置１０は、表示装置１１、演算処理装置１２、記憶装置１３、及び入力装置１４を含むコンピュータシステムを用いて構成される。記憶装置１３は、例えば磁気ディスクを記録媒体とするハードディスク装置である。この記憶装置１３には、各種プログラムや、半導体装置のレイアウトに用いられる各種情報が格納される。半導体装置のレイアウトに用いられる各種情報には、ネットリストやライブラリが含まれる。演算処理装置１２は、自動配置配線（Plaace and Route）処理のためのプログラムを実行可能なマイクロコンピュータ、及びその周辺回路を含む。演算処理回路１２での処理には、半導体装置における各部にクロック信号を分配するためのクロックツリーの構築や、このクロックツリー間のクロックスキューの調整が含まれる。上記レイアウト装置１２においては、必要に応じて、記憶装置１３内のネットリストやライブラリが参照される。入力装置１４は、キーボードやマウスを含み、半導体装置のレイアウト処理に関する各種情報入力を行うのに用いられる。表示装置１１は、液晶ディスプレイなどとされ、半導体装置のレイアウト処理に関する各種情報表示を行うことができる。
【００３１】
論理ＬＳＩなどの半導体装置においては、クロック信号を分配するためのクロックツリーが構築される。クロックツリーは、クロック分配のための論理構造のひとつであり、半導体装置におけるクロック論理始点からフリップフロップ回路へのクロック到達時間のばらつき（クロックスキュー）をできるだけ小さくするために、複数の遅延素子が介在されることでツリー状に構築される。
【００３２】
図２には、演算処理装置１２で実行される自動配置配線処理の全体的な流れが示される。この自動配置配線処理では、半導体装置のネットリストに従ってセルの自動配置配線が行われる。
【００３３】
先ず、演算処理装置１２によって、記憶装置１３内のネットリストが読み込まれ（Ｓ１）、このネットリストに基づいてフロアプランが形成される（Ｓ２）。そして、作成されたフロアプランを使用してセルの配置が行われ（Ｓ３）、その後、データラインの最適化処理が行われる（Ｓ４）。そして、タイミングエラーが有るか否かの判別が行われる（Ｓ５）。この判別において、エラーが有ると判断された場合には、再度フロアプランの作成が行われる。上記ステップＳ５の判別において、エラーが無いと判断された場合には、クロックツリー生成処理が行われる（Ｓ６）。そして半導体装置における消費電力の低減のため、クロックツリーにおける過剰なタイミングマージンを削減するためのタイミングマージン削減処理が行われる（Ｓ７）。上記タイミングマージン削減処理が完了された後に、クロック配線処理が行われる（Ｓ８）。そしてこのクロック配線後の実負荷の状態で、ルール違反等を生じていないことを確認するためのチェックが行われる（Ｓ９）。このチェックにおいて、クロック配線後の実負荷の状態でルール違反等を生じていないことが確認された場合には、フリップフロップ回路間のタイミング最適化が行われる（Ｓ１０）。
【００３４】
図３には、上記ステップＳ６のクロックツリー生成処理の詳細な流れが示される。
【００３５】
クロックツリー生成処理においては、自動配置配線処理の対象とされる半導体装置における各種情報が参照される。この各種情報には、クロックゲーティングのタイミング情報３１、クロックゲーティングのファンアウト情報３２、マニュアル配置情報３３、マニュアル経路微調整情報３４等が含まれ、それらは、記憶装置１３内に格納されている。
【００３６】
クロックツリー生成処理では、先ず、クロックゲーティングのタイミング情報に基づいて、クロックゲーティングのタイミングチェックが行われる（Ｓ６１）。クロックゲーティングのタイミングに余裕が無い場合には、クロックゲーティングのファンアウト情報３２が参照されて、ファンアウト数のチェックが行われる（Ｓ６２）。ファンアウト数が大きい場合には、タイミング違反の原因となるため、タイミングゲーティングセルによる負荷分散が行われる（Ｓ６３）。例えば図６の（Ａ）に示されるように、ゲーティングセル６１の出力端子から多数のフリップフロップ回路６３〜６７にクロック信号が供給される場合に比べて、図６の（Ｂ）に示されるように、ゲーティングセル６１，６２によって負荷を分けることで、ゲーティングセル６１のファンアウト数を小さくして、負荷軽減を図ることができる。
【００３７】
次に、マニュアル配置情報３３及びマニュアル経路調整情報３４が参照されて、マニュアルによる個別クロック対策が行われる（Ｓ６４）。この個別クロック対策には、クロック経路の分割、クロック経路の固定、セルの配置固定等が含まれる。具体例としては、外部から入力された非同期クロックの伝達経路を、外部出力経路とフリップフロップ回路への伝達経路とに分割したり、フラッシュモジュールなどのように動作が２サイクルになるような場合にクロックレイテンシの調整が行われる。尚、上記ステップＳ６１のクロックゲーティングタイミングチェックにおいて、「余裕がある」と判断された場合や、上記ステップＳ６２のファンアウトチェックにおいて、「ファンアウトが小さい」と判断された場合には、上記ステップＳ６３のクロックゲーティングセルの負荷分割を行うことなく、上記ステップＳ６４の個別クロック対策が行われる。
【００３８】
上記ステップ６４の個別クロック対策の後に、クロックツリー構造構築が行われ（Ｓ６５）、各クロックドメイン内のクロックスキューの調整が行われる（Ｓ６６）。ここで、「クロックドメイン」とは、クロック入力により駆動される回路領域を指す。このクロックスキューの調整では、クロック伝達経路にバッファやインバータが挿入される。そして、各クロックドメイン内の周波数チェックが行われる（Ｓ６７）。クロックドメインが高速系の場合には、クロックドメイン間のディレイ調整が行われた後に、クロックツリー生成処理（Ｓ６）が終了される。尚、クロックドメインが低速系の場合は、同時切り替えノイズを低減するため、上記ステップＳ６８のクロックドメイン間のディレイ調整を行うことなく、クロックツリー生成処理（Ｓ６）が終了される。
【００３９】
図４には、図２におけるタイミングマージン削減処理（Ｓ７）の詳細な処理の流れが示される。
【００４０】
このタイミングマージン削減処理では、上記ステップＳ６のクロックツリー生成の結果（ＣＴＳ結果）４１、各クロックネットのトランジション情報４２、各クロックネットのキャパシタンス情報４３、電力情報４５、タイミング情報３１が参照される。これら各情報は、タイミングマージン削減処理（Ｓ７）が開始される時点で、既に記憶装置１３に格納されているものとする。各クロックネットのトランジション情報４２を参照することで各クロックネットの最大トランジション制約値を知ることができる。また、各クロックネットのキャパシタンス情報４３を参照することで各クロックネットの最大キャパシタンス制約値を知ることができる。ここで、最大トランジション制約値や最大キャパシタンス制約値は、次のように求められる。
【００４１】
すなわち、ターゲット周波数が決定され、このターゲット周波数に応じた最大トランジション制約値が決定される。そして各セル毎に、最大トランジション制約値を満たす最大容量が求められる。そして、ＥＭ制約による最大キャパシタンスの上限（周波数毎に一律値）と、上記最大トランジション制約値を満たす最大容量とが比較され、厳しいほうの値が、最大キャパシタンス制約値として定義される。
【００４２】
図７の（Ａ）には、バッファの最大キャパシタンス制約値の例が示される。この例では、ターゲット周波数は３００ＭＨｚ、トランジション制約値は０．８ｎｓ、ＥＭ制約上限値は０．８ｐＦとされる。ターゲット周波数が決定されると、それに応じた最大トランジションが決定され、セル毎にこの最大トランジションを満たす最大容量値が求められる。そしてこの最大容量値とＥＭ制約上限値とが比較され、厳しいほうの値が最大キャパシタンス制約値とされる。図７の（Ａ）の例では、バッファＢＵＦ１Ｘ〜ＢＵＦ４Ｘまでは、最大トランジション制約値を満たす最大容量が、最大キャパシタンス制約値とされるが、バッファＢＵＦ８Ｘ〜ＢＵＦ３２Ｘの場合、ＥＭ制約のほうが厳しいため、ＥＭ制約上限値が最大キャパシタンス制約値とされる。これにより、図７の（Ｂ）に示されるように、最大キャパシタンス制約値はセルのドライバビリティに応じて上昇されるが、あるドライバビリティからはセルによらず、一律となる。
【００４３】
そこで、タイミングマージン削減処理（Ｓ７）において、先ず、ＣＴＳ結果４１、各クロックネットのトランジション情報４２、各クロックネットのキャパシタンス情報４３が参照されて、最大トランジション、及び最大キャパシタンスのチェックが行われる（Ｓ７１）。このチェックにおいて、最大トランジション及び最大キャパシタンスに余裕があると判断された場合には、制約値を満足する範囲内で、クロックバッファのサイズダウン又はクロックバッファの削除が行われる（Ｓ７２）。つまり、制約値を満足する範囲内でクロックバッファのサイズが最小化され、必要に応じてバッファの削減が行われる。
【００４４】
ここで、クロックバッファのサイズダウンは、並列接続されているＭＯＳトランジスタの数を低減したり、ＭＯＳトランジスタのゲート幅とゲート長との比を低下させることによって可能となる。
【００４５】
上記ステップＳ７２のクロックバッファのサイズダウンや削除によりセル電力は削減されるが、ネット容量の増加により、充放電電流が増えることが考えられる。そこで、ＣＴＳ結果４１と電力情報４５とが参照されて、電力チェックが行われる（Ｓ７３）。この電力チェックにおいては、バッファの充放電電流と貫通電流との合計値が求められ、その合計値による電力（トータル電力）が最小になるような組み合わせが選択される。これは、例えば図８の（Ａ）に示されるように、バッファＢ１の出力クロックがバッファＢ２，Ｂ３，Ｂ４に分配される場合に、図８の（Ｂ）に示されるように、バッファＢ１のドライバビリティ（駆動能力）によって、バッファＢ１の充放電電流や、バッファＢ２〜Ｂ４の貫通電流が異なることを考慮したものである。例えばバッファＢ１のドライバビリティが大きい場合、クロックバッファＢ１の放電電流は多いが、バッファＢ２〜Ｂ４の貫通電流は比較的少ない。しかし、バッファＢ１のドライバビリティを小さくすると、バッファＢ１の充放電電流は少なくなるが、バッファＢ２〜Ｂ４の貫通電流が大きくなてしまう。従って、上記ステップＳ７３の電力チェックにおいては、バッファの充放電電流と貫通電流との合計値を考慮する必要がある。
【００４６】
ここで、バッファＢ１のトータル電力値Ｐtotal(B1)は、次式によって示される。Ｐcell(B1)は、バッファＢ１で消費される電力、「ｆ」は周波数、「ＣN1」はノードＮ１のキャパシタンス、「Ｖ」は電圧である。
【００４７】
【数１】
0005883633.tif 000002
【００４８】
尚、上記ステップＳ７１の判別において、「最大トランジション及び最大キャパシタンスに余裕が無い」と判断された場合においては、クロックバッファのサイズダウン等を行うことなく、上記ステップＳ７３の電力チェックが行われる。
【００４９】
上記ステップＳ７３の電力チェックにおいて、「電力低減が可能である」と判断された場合には、その判断結果に従ってクロックバッファのサイズ調整が行われる（Ｓ７４）。
【００５０】
図９及び図１０には、クロックバッファのサイズ調整の様子が示される。
【００５１】
図９の（Ａ）に示されるよう、バッファＢ１のドライバビリティを「×１６」とすると、最大トランジション及び最大キャパシタンスを満足する状態で、バッファＢ１のドライバビリティ（×１６）が、図９の（Ｂ）に示されるように、「×１２」にサイズダウンされる（Ｓ７２）。そして、上記ステップＳ７３の電力チェックにおいて、「電力低減が可能である」と判断された場合には、バッファＢ１のドライバビリティ（×１２）が、図９の（Ｃ）に示されるように、「×８」に調整される（Ｓ７４）。また、図１０の（Ａ）に示されるように、バッファＢ１のドライバビリティを「×１６」とし、バッファ３のドライバビリティを「×８」とすると、最大トランジション及び最大キャパシタンスを満足する状態で、バッファＢ１のドライバビリティ（×１６）、バッファＢ３のドライバビリティ（×８）が、それぞれ図１０の（Ｂ）に示されるように、「×１２」、「×４」にサイズダウンされる（Ｓ７２）。また、図１０の（Ａ）のバッファＢ５は、最大トランジション及び最大キャパシタンスを満足する状態で削除されている。尚、上記ステップＳ７４のクロックバッファのサイズ調整においては、上記ステップＳ７３の電力チェック結果に基づいてクロックバッファのサイズアップを行う場合もあり得る。
【００５２】
上記ステップＳ７４のクロックバッファのサイズ調整後にクロックゲーティングセルの最適化のためのタイミングチェックが行われる（Ｓ７５）。尚、上記ステップＳ７３の電力チェックにおいて、「電力削減は不可である」と判断された場合には、クロックバッファのサイズ調整を行うことなく、上記ステップＳ７５のタイミングチェックが行われる。上記ステップＳ７５のタイミングチェックにおいて、「タイミング余裕がある」と判断された場合には、クロックゲーティングセルの最適化が行われる（Ｓ７６）。この最適化処理では、クロックゲーティングセルのサイズダウンが行われる。また、タイミングに余裕があって論理的に等価なクロックゲーティングセルが統合されることによって、クロックゲーティングセルの削減が行われる。
【００５３】
図１１及び図１２には、クロックゲーティングセル最適化の様子が示される。
【００５４】
図１１の（Ａ）に示されるように、フリップフロップ回路ＦＦから出力されたイネーブル信号ＥＮが、インバータ１１０及び論理回路１１１を介してクロックゲーティングセルＧ１，Ｇ２に伝達される場合を考える。ステップＳ７５の判別において、「タイミング余裕がある」と判断された場合にはクロックゲーティングセルのサイズダウンが行われる。例えば図１１の（Ｂ）に示されるように、クロックゲーティングセルＧ１が「×１６」から「×８」にサイズダウンされる。尚、クロックゲーティングセルのサイズダウンにより、ゲーティングセットアップ時間が増えるため、フリップフロップ回路ＦＦからクロックゲーティングセルＧ１までの遅延時間が増加することが考えられる。そのため、上記ステップＳ７５のクロックゲーティングセル最適化においては、サイズダウンした場合にセットアップ違反が無いか否かの判別が行われ、セットアップ違反が無いことが確認されてから「タイミング余裕あり」と判断される。また、図１２の（Ａ）に示されるようにクロックゲーティングセルＧ１，Ｇ２は、論理的には互いに等価なクロックゲーティングセルであるため、上記ステップ７５の判別において、「タイミング余裕がある」と判断された場合には、図１２の（Ｂ）に示されるように、クロックゲーティングセルＧ１，Ｇ２が１個に統合される。つまり、クロックゲーティングセルＧ２が削除され、１個のクロックゲーティングセルＧ１を介してクロック信号の分配が行われる。
【００５５】
尚、クロックゲーティングセルのサイズダウンやクロックゲーティングセルの統合によって充放電電流が増える場合を避けるため、上記ステップＳ７３で行われたような電力がチェックを上記ステップ７５において実行するようにしても良い。
【００５６】
図５には、図２におけるステップＳ４のデータライン最適化処理の詳細な流れが示される。
【００５７】
データライン最適化処理では、多ファンアウトネットの対策が行われる（Ｓ４０１）。この多ファンアウトネットの対策では、配線と配線の間隔や、配線の幅など物理的なエラーが発見される。そして、データラインにおけるフリップフロップ回路のセットアップ・ホールドタイミングの改善処理が行われる（Ｓ４０２）。そして、タイミング余裕のあるパスが存在するか否かの判別が行われる（Ｓ４０３）。この判別において、「タイミング余裕のあるパスが存在する」と判断された場合には、バッファのサイズダウンが可能か否かの判別が行われる（Ｓ４０４）。この判別において、「バッファのサイズダウンが可能である」と判断された場合には、バッファのサイズダウンや、バッファの削除が行われ（Ｓ４０５）。例えば図１３の（Ａ）に示されるように、バッファＢ１のサイズが「×１６」の場合に、図１３の（Ｂ）に示されるように、バッファＢ１のサイズが「×１２」にサイズダウンされ、さらに、図１３の（Ｃ）に示されるように、バッファＢ１のサイズが「×８」にサイズダウンされる。上記ステップＳ４０５において、バッファのサイズダウンや、バッファの削除が行われた後、電力の見積もりが行われ（Ｓ４０６）、バッファのサイズダウン等によりトータル電力が改善されるか否かの判別が行われる（Ｓ４０７）。この判別は、クロックツリーにおけるタイミングマージン削減処理（図４参照）におけるステップＳ７３の電力チェックの場合と同様に行うことができる。上記ステップＳ４０７の判別において、「トータル電力が改善される（ＹＥＳ）」と判断された場合には、ＤＲＣ（Design Rule Check）制約に余裕があるか否かの判別が行われる（Ｓ４０８）。ここで、ＤＲＣ制約には、最大トランジションや最大キャパシタンスが含まれる。上記ステップＳ４０８の判別において、「ＤＲＣ制約に余裕がある（ＹＥＳ）」と判断された場合には、上記ステップＳ４０４の判別に戻り、再びバッファのサイズダウンが行われる。また、上記ステップＳ４０４の判別において「バッファのダウンサイズが可能ではない（ＮＯ）」と判断された場合、及び上記ステップＳ４０７の判別において「トータル電力が改善されない（ＮＯ）」と判断された場合、並びに上記ステップＳ４０８の判別において「ＤＲＣ制約に余裕が無い（ＮＯ）」と判断された場合には、全てのインスタンス（「セル」を意味する）についての探索が終了したか否かの判別が行われる（Ｓ４０９）。この判別において、未だ全てのセルについての探索が終了していない（ＮＯ）と判断された場合には、次のセルが選択され（Ｓ４１１）、そのセルについて、バッファのサイズダウンが可能か否かの判別（Ｓ４０４）や、バッファのサイズダウンやバッファ削除（Ｓ４０５）が行われる。このようにして、全てのセルについて、バッファのサイズダウンが可能か否かの判別（Ｓ４０４）や、バッファのサイズダウンやバッファ削除（Ｓ４０５）が行われた場合、上記ステップＳ４０９の判別において、「全てのセルについての探索が終了した（ＹＥＳ）」と判断され、次のタイミングパスが選択され、そのタイミングパスが、タイミング余裕のあるパスであるか否かの判別が行われる（Ｓ４０３）。また、上記ステップＳ４０３の判別において、���タイミング余裕のあるパスではない（ＮＯ）」と判断された場合には、全てのパスにつての探索が終了したか否かの判別が行われる（Ｓ４１０）。この判別において、「全てのパスにつての探索が終了していない（ＮＯ）」と判断された場合には、次のタイミングパスが選択され、そのタイミングパスが、タイミング余裕のあるパスであるか否かの判別が行われる（Ｓ４０３）。また、上記ステップＳ４１０の判別において、「全てのパスにつての探索が終了した（ＹＥＳ）」と判断された場合には、ステップＳ４のデータライン最適化処理が終了され、図２におけるステップＳ２の判別が行われる。
【００５８】
実施の形態１によれば、以下の作用効果を奏する。
【００５９】
（１）タイミングマージン削減処理（Ｓ７）において、最大トランジション、及び最大キャパシタンスのチェックが行われる（Ｓ７１）。このチェックにおいて、最大トランジション及び最大キャパシタンスに余裕があると判断された場合には、制約値を満足する範囲内で、クロックバッファのサイズダウン又はクロックバッファの削除が行われる（Ｓ７２）。上記ステップＳ７２のクロックバッファのサイズダウンや削除によりセル電力は削減されるが、ネット容量の増加により、充放電電流が増えることが考えられるため、ＣＴＳ結果４１と電力情報４５とが参照されて、電力チェックが行われる（Ｓ７３）。上記ステップＳ７３の電力チェックにおいて、「電力低減が可能である」と判断された場合には、その判断結果に従ってクロックバッファのサイズ調整が行われる（Ｓ７４）。このような処理が行われることで、過剰なタイミングマージンを削減することができ、クロックバッファのサイズダウンや削除により、半導体装置における消費電力を低減することができる。また、過剰なタイミングマージンを削減は、最大トランジション、及び最大キャパシタンスのチェックが行われ、その制約値を満足する範囲内で行われる。つまり、デザインルールが遵守されている。
【００６０】
（２）電力チェックが行われる（Ｓ７３）。上記ステップＳ７３の電力チェックにおいて、「電力低減が可能である」と判断された場合には、その判断結果に従ってクロックバッファのサイズ調整が行われる（Ｓ７４）ため、上記ステップＳ７２のクロックバッファのサイズダウンや削除によりセル電力は削減されるが、ネット容量の増加により充放電電流が増えてしまうようなケースを回避できる。
【００６１】
（３）上記ステップＳ７４のクロックバッファのサイズ調整後にクロックゲーティングセルの最適化のためのタイミングチェックが行われ（Ｓ７５）、「タイミング余裕がある」と判断された場合には、クロックゲーティングセルの最適化が行われる（Ｓ７６）。この最適化処理では、クロックゲーティングセルのサイズダウンが行われる。また、タイミングに余裕があって論理的に等価なクロックゲーティングセルが統合されることによって、クロックゲーティングセルの削減が行われる。このようにクロックゲーティングセルの最適化が行われることで、半導体装置における消費電力を更に低減することができる。
【００６２】
（４）データラインの最適化処理（Ｓ４）においては、タイミング余裕のあるパスが存在するか否かの判別が行われる（Ｓ４０３）。この判別において、「タイミング余裕のあるパスが存在する」と判断された場合には、バッファのサイズダウンが可能か否かの判別が行われる（Ｓ４０４）。この判別において、「バッファのサイズダウンが可能である」と判断された場合には、バッファのサイズダウンや、バッファの削除が行われ（Ｓ４０５）。これにより、半導体装置における消費電力を更に低減することができる。
【００６３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６４】
例えば、図４において、クロックゲーティングセルのタイミングチェック（Ｓ７５）やクロックゲーティングセルの最適化処理（Ｓ７６）を、最大トランジション及び最大キャパシタンスのチェック（Ｓ７１）の前に実行するようにしても良い。
【符号の説明】
【００６５】
１０  レイアウト装置
１１  表示装置
１２  演算処理装置
１３  記憶装置
１４  入力装置
【図１】
0005883633.tif 000003
【図２】
0005883633.tif 000004
【図３】
0005883633.tif 000005
【図４】
0005883633.tif 000006
【図５】
0005883633.tif 000007
【図６】
0005883633.tif 000008
【図７】
0005883633.tif 000009
【図８】
0005883633.tif 000010
【図９】
0005883633.tif 000011
【図１０】
0005883633.tif 000012
【図１１】
0005883633.tif 000013
【図１２】
0005883633.tif 000014
【図１３】
0005883633.tif 000015