(57)【要約】【課題】集積回路を設計する際の、電源ドロップエラーの発生による作業負担の増大化を抑制すること。【解決手段】情報処理装置１００は、第１のセルサイズの対象セル１０１を、それぞれ異なるセル間隔で敷き詰めたモデル１１０，１１１などを作成して電源網解析を実施し、モデル１１０，１１１などにおける電源ドロップが許容範囲内であるか否かを評価する。情報処理装置１００は、モデル１１０，１１１などにおける電源ドロップが許容範囲内であるか否かを評価した結果を参照して、第１のセルサイズに対応付けて、対象セル１０１のセル間隔についての配置制限を示す情報を生成する。【選択図】図１
2020184119.tif 000002
【特許請求の範囲】
【請求項１】
セルサイズとセル間隔との組み合わせごとに、セルを敷き詰めたモデルに対して実施された、前記セルの出力負荷および動作周波数に応じた前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価し、
評価した結果を参照して、前記セルのセルサイズごとに、前記セルのセル間隔についての配置制限を示す情報を生成する、
処理をコンピュータが実行することを特徴とする設計方法。
【請求項２】
評価した結果を参照して、所定の制約条件に基づいて、前記セルのセルサイズを決定し、
生成した前記情報のうち、決定した前記セルのセルサイズに対応する情報を、集積回路の設計に用いられるセルライブラリに登録する、
処理を前記コンピュータが実行することを特徴とする請求項１に記載の設計方法。
【請求項３】
前記セルライブラリを参照して、前記集積回路の設計において、基板領域上に配置する前記セルが、前記セルのセル間隔についての配置制限を満たすか否かを判定して出力する、
処理を前記コンピュータが実行することを特徴とする請求項２に記載の設計方法。
【請求項４】
前記評価する処理は、
前記組み合わせごとに、前記セルを敷き詰め、かつ、前記セル間に所定の大きさの消費電流を示す電流源を接続したモデルに対して実施された、前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価する、ことを特徴とする請求項１〜３のいずれか一つに記載の設計方法。
【請求項５】
セルサイズとセル間隔との組み合わせごとに、セルを敷き詰めたモデルに対して実施された、前記セルの出力負荷および動作周波数に応じた前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価し、
評価した結果を参照して、前記セルのセルサイズごとに、前記セルのセル間隔についての配置制限を示す情報を生成する、
処理をコンピュータに実行させることを特徴とする設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計方法、および設計プログラムに関する。
【背景技術】
【０００２】
従来、集積回路を設計する際には、基板領域上にセルの配置を行い、配線の配置を行った後に、集積回路における電源ドロップが許容範囲内であるか否かの評価が行われる。集積回路は、例えば、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）などである。セルは、例えば、トランジスタを含み、所定の機能を実現する回路である。
【０００３】
先行技術としては、例えば、クロック系セルを除く基本セルの配置後において、基本セルの配置位置と動作周波数とに基づいて電源電圧降下の発生しやすい電圧降下領域を推測し、推測された電圧降下領域において基本セルの再配置を行うものがある。また、例えば、チップレベルあるいは下位モジュールレベルの初期配置を仮定して作成した電圧降下傾向の情報を基に、設計初期に決まってくる電圧降下傾向に対応したセル、マクロおよびトランジスタの密度分布を見積もる技術がある。また、例えば、セル接続情報と、セル接続情報に含まれたセルの動的消費電力値とから、レイアウト時に隔離すべきセルの組み合わせを隔離セル組と定義する隔離制約情報を生成する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１１４９８６号公報
【特許文献２】特開２００７−９５８１１号公報
【特許文献３】特開２０００−１６４７２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、集積回路を設計する際、電源ドロップが許容範囲外になる電源ドロップエラーが発生すると、セルの配置を行う工程への手戻りが発生してしまい、集積回路を設計する作業にかかる作業負担の増大化を招くことになる。
【０００６】
１つの側面では、本発明は、集積回路を設計する際の、電源ドロップエラーの発生による作業負担の増大化を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、セルサイズとセル間隔との組み合わせごとに、セルを敷き詰めたモデルに対して実施された、前記セルの出力負荷および動作周波数に応じた前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価し、評価した結果を参照して、前記セルのセルサイズごとに、前記セルのセル間隔についての配置制限を示す情報を生成する設計方法、および設計プログラムが提案される。
【発明の効果】
【０００８】
一態様によれば、集積回路を設計する際の、電源ドロップエラーの発生による作業負担の増大化を抑制することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる設計方法の一実施例を示す説明図である。
【図２】図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、情報処理装置１００の機能的構成例を示すブロック図である。
【図４】図４は、配置禁止領域４１０の一例を示す説明図である。
【図５】図５は、モデル５００の一例を示す説明図である。
【図６】図６は、対象セルに消費電流を流す一例を示す説明図である。
【図７】図７は、モデル７００に対して電源網解析を実施する一例を示す説明図である。
【図８】図８は、様々なピッチで、電源ドロップが許容値以下であるか否かを評価する一例を示す説明図である。
【図９】図９は、セルライブラリ９００に登録する一例を示す説明図である。
【図１０】図１０は、動作例１におけるセル配置制御処理の一例を示す説明図である。
【図１１】図１１は、動作例１における全体処理手順の一例を示すフローチャートである。
【図１２】図１２は、動作例１におけるルール作成処理手順の一例を示すフローチャート（その１）である。
【図１３】図１３は、動作例１におけるルール作成処理手順の一例を示すフローチャート（その２）である。
【図１４】図１４は、動作例１におけるセルサイズ決定処理手順の一例を示すフローチャートである。
【図１５】図１５は、動作例１における電源ドロップ評価処理手順の一例を示すフローチャート（その１）である。
【図１６】図１６は、動作例１における電源ドロップ評価処理手順の一例を示すフローチャート（その２）である。
【図１７】図１７は、動作例１におけるモデル作成処理手順の一例を示すフローチャートである。
【図１８】図１８は、モデル１８００の一例を示す説明図である。
【図１９】図１９は、モデル１９００に対して電源網解析を実施する一例を示す説明図である。
【図２０】図２０は、セルライブラリ２０００に登録する一例を示す説明図である。
【図２１】図２１は、動作例２におけるセル配置制御処理の一例を示す説明図である。
【図２２】図２２は、動作例２における電源ドロップ評価処理手順の一例を示すフローチャート（その１）である。
【図２３】図２３は、動作例２における電源ドロップ評価処理手順の一例を示すフローチャート（その２）である。
【図２４】図２４は、動作例２におけるモデル作成処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかる設計方法、および設計プログラムの実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかる設計方法の一実施例）
図１は、実施の形態にかかる設計方法の一実施例を示す説明図である。情報処理装置１００は、集積回路の設計作業を支援するコンピュータである。集積回路は、例えば、ＬＳＩなどである。情報処理装置１００は、例えば、ＬＳＩを設計するユーザにより利用される。情報処理装置１００は、例えば、サーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。
【００１２】
従来、ＬＳＩは、より小さいチップ面積でより多くの機能を実現可能に、トランジスタを配置する密度を高め、セル面積を小さくするよう設計される傾向があり、設計者の想定通りに動作することが望まれる。トランジスタへの電源供給は、ＬＳＩ外部端子からＬＳＩ内部各配線層に割り当てられた電源配線を通して行われる。セルは、例えば、トランジスタを含み、所定の機能を実現する回路である。
【００１３】
ここで、トランジスタの動作時、トランジスタの動作電流は、電源配線により供給されるが、電源配線の抵抗による電源ドロップが生じ、ＬＳＩ外部端子から印加した電圧よりも、トランジスタに印加される電圧が低下するという性質がある。電源ドロップは、電圧降下とも呼ばれる。この性質により、トランジスタに印加される電圧が、一定値未満になってしまうと、ＬＳＩが設計者の想定通りに動作しなくなることがある。
【００１４】
このため、従来、ＬＳＩを設計する際には、基板領域上にセルの配置を行い、配線の配置を行った後に、ＬＳＩにおける電源ドロップが許容範囲内であるか否かを評価し、電源ドロップが許容範囲外になる電源ドロップエラーが発生するか否かの判定が行われる。電源ドロップエラーが発生すると判定すれば、セルの配置をやり直し、または、電源補強を行うことにより、電源ドロップが許容範囲内になるようにし、電源ドロップエラーが発生しないようにされる。
【００１５】
このように、ＬＳＩを設計する際、電源ドロップエラーが発生すると、セルの配置を行う工程への手戻りが発生してしまい、集積回路を設計する作業にかかる作業負担の増大化を招くことになる。また、ＬＳＩの高集積化および高速化により消費電流が増大したり、配線抵抗が増大したりして、電源ドロップエラーが発生しないようにすることが難しくなる状況があり、集積回路を設計する作業にかかる作業負担の増大化を招くことになる。
【００１６】
そこで、本実施の形態では、ＬＳＩを設計する際、基板領域上にセルを配置する前に、セルのサイズごとに、電源ドロップを許容範囲内に抑制するための、セル間の間隔についての配置制限を示す情報を生成しておくことができる設計方法について説明する。
【００１７】
図１において、情報処理装置１００は、いずれかの種類のセルを処理対象とする。以下の説明では、処理対象とするセルを「対象セル」と表記する場合がある。情報処理装置１００は、対象セルの消費電流のデータを取得する。対象セルの消費電流は、例えば、対象セルの出力負荷、および、対象セルの動作周波数から求められる。出力負荷は、対象セル出力端子に接続された配線やセル入力端子の総容量である。
【００１８】
（１−１）情報処理装置１００は、セルサイズとセル間隔との組み合わせごとに、対象セルを敷き詰めたモデルに対して実施された、対象セルの消費電流に基づく電源網解析の結果を参照して、モデルにおける電源ドロップが許容範囲内であるか否かを評価する。許容範囲は、例えば、許容値以下を示す範囲である。
【００１９】
図１の例では、情報処理装置１００は、第１のセルサイズの対象セル１０１を、それぞれ異なるセル間隔で敷き詰めたモデル１１０，１１１などを作成して電源網解析を実施し、モデル１１０，１１１などにおける電源ドロップが許容範囲内であるか否かを評価する。また、情報処理装置１００は、同様に、第２のセルサイズの対象セル１０２などを、それぞれ異なるセル間隔で敷き詰めたモデルを作成して電源網解析を実施し、作成したモデルにおける電源ドロップが許容範囲内であるか否かを判定してもよい。
【００２０】
（１−２）情報処理装置１００は、評価した結果を参照して、対象セルのセルサイズごとに、対象セルのセル間隔についての配置制限を示す情報を生成する。配置制限を示す情報は、例えば、基板領域上に対象セルを配置する際、対象セルと他セルとの間隔をどの程度大きくすれば、基板領域上の電源ドロップを許容範囲内に抑制可能であるのかを示す情報である。配置制限を示す情報は、具体的には、対象セルと他セルとの間隔についての下限値を示す情報である。
【００２１】
図１の例では、情報処理装置１００は、モデル１１０，１１１などにおける電源ドロップが許容範囲内であるか否かを評価した結果を参照して、第１のセルサイズに対応付けて、対象セル１０１のセル間隔についての配置制限を示す情報を生成する。情報処理装置１００は、具体的には、モデル１１０，１１１などにおける電源ドロップが許容範囲内であるか否かを評価した結果を参照して、電源ドロップを許容範囲内に抑制可能にするための、対象セル１０１のセル間隔が取りうる下限値を示す情報を生成する。また、情報処理装置１００は、同様に、第２のセルサイズに対応付けて、対象セル１０２のセル間隔についての配置制限を示す情報を生成してもよい。
【００２２】
これにより、情報処理装置１００は、ユーザが、対象セルのセルサイズごとに、電源ドロップエラーを発生させないための、対象セルのセル間隔についての配置制限を把握可能にすることができる。このため、ユーザは、ＬＳＩを設計する際、電源ドロップエラーを発生させずに、対象セルを配置する密度が向上するように、対象セルを配置していくことが可能になり、自身の想定通りに動作するＬＳＩを設計することができる。
【００２３】
また、ユーザは、対象セルを配置する工程で、電源ドロップエラーを発生させないようにすることができ、対象セルを配置する工程への手戻りの発生を回避することができ、作業負担の増大化を抑制することができる。また、ユーザは、ＬＳＩの高集積化および高速化により消費電流が増大したり、配線抵抗が増大したりする状況でも、電源ドロップエラーを発生させないようにすることができ、作業負担の増大化を抑制することができる。
【００２４】
ここでは、情報処理装置１００が、対象セルのセルサイズごとに、電源ドロップエラーを発生させないための、対象セルのセル間隔についての配置制限を示す情報を、ユーザに提供する場合について説明したが、これに限らない。例えば、情報処理装置１００が、対象セルのセルサイズごとの、電源ドロップエラーを発生させないための、対象セルのセル間隔についての配置制限を示す情報を、ＬＳＩの設計に用いられるセルライブラリに登録してユーザに提供する場合があってもよい。
【００２５】
ここでは、情報処理装置１００が、１つの装置で、設計方法の一実施例を実現する場合について説明したが、これに限らない。例えば、複数の装置が協働して、設計方法の一実施例を実現する場合があってもよい。具体的には、対象セルを敷き詰めたモデルにおける電源ドロップが許容範囲内であるか否かを評価する第１の装置と、評価した結果を参照して対象セルのセル間隔についての配置制限を示す情報を生成する第２の装置とが協働する場合があってもよい。
【００２６】
（情報処理装置１００のハードウェア構成例）
次に、図２を用いて、情報処理装置１００のハードウェア構成例について説明する。
【００２７】
図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。図２において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、記録媒体Ｉ／Ｆ２０４と、記録媒体２０５とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００２８】
ここで、ＣＰＵ２０１は、情報処理装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。
【００２９】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３は、例えば、モデムやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アダプタなどである。
【００３０】
記録媒体Ｉ／Ｆ２０４は、ＣＰＵ２０１の制御に従って記録媒体２０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ２０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体２０５は、記録媒体Ｉ／Ｆ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体２０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体２０５は、情報処理装置１００から着脱可能であってもよい。
【００３１】
情報処理装置１００は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を複数有していてもよい。また、情報処理装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を有していなくてもよい。
【００３２】
（情報処理装置１００の機能的構成例）
次に、図３を用いて、情報処理装置１００の機能的構成例について説明する。
【００３３】
図３は、情報処理装置１００の機能的構成例を示すブロック図である。情報処理装置１００は、記憶部３００と、取得部３０１と、評価部３０２と、作成部３０３と、設計部３０４と、出力部３０５とを含む。
【００３４】
記憶部３００は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域によって実現される。以下では、記憶部３００が、情報処理装置１００に含まれる場合について説明するが、これに限らない。例えば、記憶部３００が、情報処理装置１００とは異なる装置に含まれ、記憶部３００の記憶内容が情報処理装置１００から参照可能である場合があってもよい。
【００３５】
取得部３０１〜出力部３０５は、制御部の一例として機能する。取得部３０１〜出力部３０５は、具体的には、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶される。
【００３６】
記憶部３００は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部３００は、対象セルに関する情報を記憶する。対象セルは、例えば、トランジスタを含み、所定の機能を実現する回路である。記憶部３００は、例えば、対象セルの出力負荷、および、対象セルの動作周波数を記憶する。記憶部３００は、具体的には、対象セルの出力負荷が取りうる候補と、対象セルの動作周波数が取りうる候補とを特定可能にするリストを記憶する。
【００３７】
記憶部３００は、例えば、対象セルのセルサイズが取りうる候補と、対象セルのセル間隔が取りうる候補とを特定可能にする情報を記憶する。対象セルのセルサイズは、例えば、横方向のセルサイズと、縦方向のセルサイズとを含む。記憶部３００は、具体的には、対象セルのセルサイズが取りうる初期値と、対象セルのセルサイズを変化させる変化幅と、対象セルのセル間隔が取りうる初期値と、対象セルのセル間隔を変化させる変化幅とを記憶する。
【００３８】
記憶部３００は、例えば、集積回路の設計に用いられるセルライブラリを記憶する。セルライブラリは、例えば、対象セルのレイアウトのデータ、および、対象セルの端子のデータなどを含む。記憶部３００は、集積回路の設計に関する所定の制約条件を記憶する。
【００３９】
制約条件は、例えば、対象セルの面積の上限値と、対象セルのセル間隔の横方向または縦方向の上限値と、対象セルの動作周波数の上限値と、対象セルの出力負荷の上限値となどを含む。制約条件は、集積回路の設計時の目的を含んでもよい。目的は、例えば、対象セルの面積を最小化することなどである。制約条件は、ユーザが、横方向にどの程度離してセルを配置したいのか、縦方向にどの程度離してセルを配置したいのか、および、セルをどの程度小さくしたいのかなどを、セルの配置に反映させるための情報である。
【００４０】
記憶部３００は、電源ドロップエラーを発生させずに済む消費電流が取りうる所定の大きさのデータを記憶する。所定の大きさは、例えば、所定の領域に隣接して敷き詰めた場合にも、所定の領域における電源ドロップが許容範囲内になる所定のセルの消費電流の大きさに基づいて、予めユーザにより設定される。所定の大きさは、具体的には、所定の領域に隣接して敷き詰めた場合にも、所定の領域における電源ドロップが許容範囲内になる所定のセルの消費電流の大きさよりも小さい大きさが設定される。記憶部３００は、論理設計で生成されるネットリストを記憶する。記憶部３００は、電源設計で生成される電源配線のデータを記憶する。
【００４１】
取得部３０１は、各機能部の処理に用いられる各種情報を取得する。取得部３０１は、取得した各種情報を、記憶部３００に記憶し、または、各機能部に出力する。また、取得部３０１は、記憶部３００に記憶しておいた各種情報を、各機能部に出力してもよい。取得部３０１は、例えば、ユーザの操作入力に基づき、各種情報を取得する。取得部３０１は、例えば、情報処理装置１００とは異なる装置から、各種情報を受信してもよい。
【００４２】
取得部３０１は、対象セルに関する情報を取得する。取得部３０１は、例えば、対象セルの出力負荷、および、対象セルの動作周波数を取得する。取得部３０１は、具体的には、対象セルの出力負荷が取りうる候補と、対象セルの動作周波数が取りうる候補とを特定可能にするリストを取得する。
【００４３】
取得部３０１は、例えば、対象セルのセルサイズが取りうる候補と、対象セルのセル間隔が取りうる候補とを特定可能にする情報を取得する。取得部３０１は、具体的には、対象セルのセルサイズが取りうる初期値と、対象セルのセルサイズを変化させる変化幅と、対象セルのセル間隔が取りうる初期値と、対象セルのセル間隔を変化させる変化幅とを取得する。
【００４４】
取得部３０１は、例えば、集積回路の設計に用いられるセルライブラリを取得する。取得部３０１は、設計に関する所定の制約条件を取得する。取得部３０１は、電源ドロップエラーを発生させずに済む消費電流が取りうる所定の大きさのデータを取得する。取得部３０１は、論理設計で生成されるネットリストを取得する。取得部３０１は、電源設計で生成される電源配線のデータを取得する。
【００４５】
評価部３０２は、対象セルを敷き詰めたモデルにおける電源ドロップが許容範囲内であるか否かを評価する。評価部３０２は、例えば、対象セルの出力負荷、および、対象セルの動作周波数から、対象セルの消費電流を求める。そして、評価部３０２は、対象セルの消費電流に基づいて、セルサイズとセル間隔との組み合わせごとに、対象セルを敷き詰めたモデルを作成して電源網解析を実施し、作成したモデルにおける電源ドロップが許容範囲内であるか否かを評価する。電源網解析は、電源ドロップの値を算出する。
【００４６】
評価部３０２は、具体的には、記憶部３００を参照して、対象セルの出力負荷と、対象セルの動作周波数との組み合わせごとに、対象セルの消費電流を求める。次に、評価部３０２は、記憶部３００を参照して、対象セルのセルサイズと対象セルのセル間隔とを順に変化させつつ、対象セルを敷き詰めたモデルを作成する。そして、評価部３０２は、作成したモデルに対して、求めた対象セルの消費電流に基づく電源網解析を実施した結果を参照して、作成したモデルにおける電源ドロップが許容範囲内であるか否かを評価する。
【００４７】
対象セルを敷き詰めたモデルにおける電源ドロップが許容範囲内であるか否かを評価する一例は、具体的には、図４〜図９を用いて情報処理装置１００の動作例１として後述する。これにより、評価部３０２は、対象セルのセルサイズごとに、対象セルと他セルとのセル間隔がどの程度大きければ、電源ドロップを許容範囲内にすることができるかを判定可能にすることができる。
【００４８】
評価部３０２は、対象セルを敷き詰め、かつ、対象セル間に所定の大きさの消費電流を示す電流源を接続したモデルにおける電源ドロップが許容範囲内であるか否かを評価してもよい。評価部３０２は、例えば、対象セルの消費電流に基づいて、セルサイズとセル間隔との組み合わせごとに、対象セルを敷き詰め、かつ、対象セル間に所定の大きさの消費電流を示す電流源を接続したモデルを作成して電源網解析を実施する。そして、評価部３０２は、電源網解析を実施した結果を参照して、作成したモデルにおける電源ドロップが許容範囲内であるか否かを評価する。
【００４９】
評価部３０２は、具体的には、記憶部３００を参照して、対象セルの出力負荷と、対象セルの動作周波数との組み合わせにおける対象セルの消費電流を求める。次に、評価部３０２は、記憶部３００を参照して、対象セルのセルサイズと対象セルのセル間隔とを順に変化させつつ、対象セルを敷き詰め、かつ、対象セル間に電流源を接続したモデルを作成する。そして、評価部３０２は、作成したモデルに対して、求めた対象セルの消費電流に基づく電源網解析を実施した結果を参照して、作成したモデルにおける電源ドロップが許容範囲内であるか否かを評価する。
【００５０】
対象セルを敷き詰め、かつ、対象セル間に電流源を接続したモデルにおける電源ドロップが許容範囲内であるか否かを評価する一例は、具体的には、図１８〜図２１を用いて情報処理装置１００の動作例２として後述する。これにより、評価部３０２は、対象セルのセルサイズごとに、対象セルと消費電流が所定の大きさを超える他セルとのセル間隔がどの程度大きければ、電源ドロップを許容範囲内にすることができるかを判定可能にすることができる。
【００５１】
作成部３０３は、評価部３０２が評価した結果を参照して、対象セルのセルサイズごとに、対象セルのセル間隔についての配置制限を示す情報を生成する。配置制限を示す情報は、例えば、基板領域上に対象セルを配置する際、対象セルと他セルとの間隔をどの程度大きくすれば、基板領域上の電源ドロップを許容範囲内に抑制可能であるのかを示す情報である。配置制限を示す情報は、具体的には、対象セルと他セルとの間隔についての下限値を示す情報である。
【００５２】
作成部３０３は、例えば、記憶部３００を参照して、対象セルのセルサイズごとに、電源ドロップを許容範囲内に抑制可能にするための、対象セルのセル間隔が取りうる下限値を示す情報を生成する。これにより、作成部３０３は、対象セルのセルサイズごとに、対象セルと消費電流が所定の大きさを超える他セルとのセル間隔がどの程度大きければ、電源ドロップを許容範囲内に抑制可能であるかを、ユーザが利用可能にすることができる。
【００５３】
作成部３０３は、さらに、対象セルのセル間隔についての配置制限を示す情報を、セルライブラリに登録してもよい。作成部３０３は、例えば、評価部３０２が評価した結果を参照して、記憶部３００に記憶された所定の制約条件に基づいて、対象セルのセルサイズを決定する。そして、作成部３０３は、決定した対象セルのセルサイズに対応する、対象セルのセル間隔についての配置制限を示す情報を、セルライブラリに登録する。
【００５４】
作成部３０３は、具体的には、電源ドロップが許容範囲内になり、所定の制約条件を満たし、対象セルの面積が最小になる対象セルのセルサイズを決定する。そして、作成部３０３は、決定した対象セルのセルサイズに対応する、対象セルのセル間隔についての配置制限を示す情報を、記憶部３００に記憶されたセルライブラリに登録する。
【００５５】
セルライブラリに登録する一例は、具体的には、図４〜図９を用いて情報処理装置１００の動作例１として後述する。これにより、作成部３０３は、対象セルと消費電流が所定の大きさを超える他セルとのセル間隔がどの程度大きければ、電源ドロップを許容範囲内に抑制可能であるかを、ユーザがＬＳＩを設計する際に、セルライブラリとして利用させることができる。
【００５６】
設計部３０４は、セルライブラリを参照して、集積回路の設計において、基板領域上に配置する対象セルが、対象セルのセル間隔についての配置制限を満たすか否かを判定する。設計部３０４は、例えば、セルライブラリを参照して、集積回路の設計において、ユーザの操作入力に基づき対象セルを基板領域上に配置する際に、配置しようとする対象セルと基板領域上に配置済みの他セルとのセル間隔が、配置制限を満たすか否かを判定する。
【００５７】
また、設計部３０４は、例えば、セルライブラリを参照して、集積回路の設計において、対象セル以外の他セルを基板領域上に配置する際に、基板領域上に配置済みの対象セルと配置しようとする他セルとのセル間隔が、配置制限を満たすか否かを判定してもよい。
【００５８】
配置制限を満たすか否かを判定する一例は、具体的には、図４〜図９を用いて情報処理装置１００の動作例１として後述する。これにより、設計部３０４は、ユーザがＬＳＩを設計する際、電源ドロップが許容範囲内になるようにセルを配置させることができ、手戻りの防止し、作業負担の増大化を抑制することができる。
【００５９】
出力部３０５は、いずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ２０３による外部装置への送信、または、メモリ２０２や記録媒体２０５などの記憶領域への記憶である。これにより、出力部３０５は、各機能部の処理結果をユーザに通知可能にし、情報処理装置１００の利便性の向上を図ることができる。
【００６０】
出力部３０５は、例えば、セルライブラリを出力する。これにより、出力部３０５は、セルライブラリをユーザが参照可能にし、電源ドロップが許容範囲内になるようにするための、セル間隔についての配置制限を把握可能にすることができる。
【００６１】
出力部３０５は、例えば、配置制限を満たすか否かを判定した結果を出力してもよい。これにより、出力部３０５は、ユーザがＬＳＩを設計する際、所望の位置にセルを配置すると、電源ドロップが許容範囲内になるのか否かを把握させ、セルを配置しやすくさせることができる。
【００６２】
（情報処理装置１００の動作例１）
次に、図４〜図１０を用いて、情報処理装置１００の動作例１について説明する。動作例１は、対象セルを基準とする領域であり、対象セル以外の他セルを配置することを禁止する、図４に後述する配置禁止領域４１０を設定する動作例である。ここで、図４を用いて、配置禁止領域４１０の一例について説明する。
【００６３】
図４は、配置禁止領域４１０の一例を示す説明図である。配置禁止領域４１０は、対象セル枠４００を基準とし、対象セル枠４００から縦方向にＥｙだけ外側までの領域であり、対象セル枠４００から横方向にＥｘだけ外側までの領域である。
【００６４】
動作例１では、情報処理装置１００は、後述する対象セル設計処理により、対象セルのセルサイズを決定し、対象セルのセルサイズに対応付けて配置禁止領域４１０を設定し、セルライブラリを作成し、配置ルールを作成する。そして、情報処理装置１００は、配置ルールに従って、セル配置制御処理により、セルの配置を制御し、電源ドロップエラーを回避可能にする。情報処理装置１００の動作例１は、例えば、図１１に後述する全体処理により実現される。
【００６５】
≪対象セル設計処理の一例≫
次に、図５〜図９を用いて、上述した対象セル設計処理の一例について説明する。情報処理装置１００は、セルに所望の論理に従って、セルサイズが最小となるように、セルのレイアウトを仮設計し、セルのレイアウトのデータを生成する。ここで、情報処理装置１００は、仮設計したセルのセルサイズを、最小セルサイズＳｘｎ，Ｓｙｎとして設定する。
【００６６】
次に、情報処理装置１００は、Ｆｒｅｑ，Ｃｌｏａｄを変更しながら、セルのｓｐｉｃｅシミュレーションを実施し、Ｆｒｅｑ，Ｃｌｏａｄをパラメータとするセルの消費電流Ｉｃｅｌｌ（Ｆｒｅｑ，Ｃｌｏａｄ）のデータを生成する。セルの消費電流のデータは、例えば、Ｆｒｅｑ，Ｃｌｏａｄをパラメータとし、セルの消費電流を算出するための数式である。セルの消費電流のデータは、例えば、Ｆｒｅｑ，Ｃｌｏａｄに対応付けてセルの消費電流を記憶するテーブルであってもよい。また、情報処理装置１００は、電源配線のデータを生成する。
【００６７】
そして、情報処理装置１００は、最小セルサイズＳｘｎ，Ｓｙｎと、Ｉｃｅｌｌ（Ｆｒｅｑ，Ｃｌｏａｄ）とを入力として、下記（２−１）〜下記（２−９）の通りに動作を実施する。これによれば、情報処理装置１００は、最小セルサイズＳｘｎ，Ｓｙｎから、予め設定された計算対象範囲内でセルサイズを変更しながら、セルサイズごとにＥｘ，Ｅｙを算出することになる。セルサイズごとにＥｘ，Ｅｙを算出する動作は、例えば、図１２〜図１５に後述する各種処理により実現される。
【００６８】
（２−１）情報処理装置１００は、初期設定を実施する。情報処理装置１００は、例えば、Ｆｒｅｑ，Ｃｌｏａｄと、モデルを作成する際に用いられるセル間の横方向配置ピッチＰｘおよび縦方向配置ピッチＰｙとの計算対象範囲を設定する。情報処理装置１００は、例えば、Ｐｘ，Ｐｙを変更する際に用いられる、Ｐｘ，Ｐｙの増加分を設定する。情報処理装置１００は、例えば、計算対象範囲内で、セルライブラリに登録するＦｒｅｑ，Ｃｌｏａｄの組み合わせのリストを作成する。
【００６９】
（２−２）情報処理装置１００は、セルライブラリに登録するＦｒｅｑ，Ｃｌｏａｄの組み合わせのリストに基づいて、Ｆｒｅｑ，Ｃｌｏａｄの初期値を設定する。
【００７０】
（２−３）情報処理装置１００は、ピッチの初期値として、Ｐｘ＝Ｓｘ，Ｐｙ＝Ｓｙを設定する。Ｐｘ＝Ｓｘ＋Ｅｘ，Ｐｙ＝Ｓｙ＋Ｅｙである。
【００７１】
（２−４）情報処理装置１００は、電源配線のデータを参照して、横方向セルサイズＳｘ，縦方向セルサイズＳｙの対象セルを敷き詰めた、図５に後述するモデル５００を作成する。ここで、図５を用いて、モデル５００の一例について説明する。
【００７２】
図５は、モデル５００の一例を示す説明図である。モデル５００は、対象セルを、縦横に、設定されたピッチ（Ｐｘ，Ｐｙ）で配置して作成されたモデルである。モデル５００は、具体的には、対象セルの配置場所を示す対象セル枠５０１を、縦横に、設定されたピッチ（Ｐｘ，Ｐｙ）で配置して作成されたモデルである。モデル５００は、設定されたピッチと同じ配置禁止領域を設定した場合の、最悪の電源ノイズを評価可能であり、電源ドロップが最大でどの程度になり、電源ドロップエラーが発生する可能性があるか否かを評価可能であるモデルである。
【００７３】
（２−５）情報処理装置１００は、下記（ａ）〜下記（ｃ）の通りに動作を実施し、作成したモデル５００における対象セルの電源ドロップが許容値以下であるか否かを評価する。
【００７４】
（ａ）情報処理装置１００は、モデル５００内の電源配線を抵抗網に置き換える。
【００７５】
（ｂ）情報処理装置１００は、モデル５００内の対象セルのすべてに、Ｆｒｅｑ，Ｃｌｏａｄに対応する消費電流Ｉｃｅｌｌ（Ｆｒｅｑ，Ｃｌｏａｄ）を流す。消費電流Ｉｃｅｌｌ（Ｆｒｅｑ，Ｃｌｏａｄ）は、例えば、生成したセルの消費電流のデータに基づいて求められる。
【００７６】
情報処理装置１００は、例えば、セルの消費電流のデータが示す数式に、Ｆｒｅｑ，Ｃｌｏａｄを代入することにより、消費電流Ｉｃｅｌｌ（Ｆｒｅｑ，Ｃｌｏａｄ）を求める。情報処理装置１００は、例えば、セルの消費電流のデータが示すテーブルから、Ｆｒｅｑ，Ｃｌｏａｄに対応する消費電流Ｉｃｅｌｌ（Ｆｒｅｑ，Ｃｌｏａｄ）を取得することにより、消費電流Ｉｃｅｌｌ（Ｆｒｅｑ，Ｃｌｏａｄ）を求めてもよい。ここで、図６を用いて、対象セルに消費電流を流す一例について説明する。
【００７７】
図６は、対象セルに消費電流を流す一例を示す説明図である。図６において、情報処理装置１００は、例えば、対象セル枠５０１内を、横方向サイズＳｘｉかつ縦方向サイズＳｙｉの電流源接続単位枠に分割し、電流源を接続することにより、対象セル内のトランジスタに電流を流すことを、電流源により示すようにする。分割数ｎ＝（Ｓｘ×Ｓｙ）／（Ｓｘｉ×Ｓｙｉ）である。図６に示すように、セルサイズが２倍になれば、電流密度が１／２倍になることになる。このため、セルサイズを大きくするほど、電源ドロップエラーを回避しやすくなるという性質がある。
【００７８】
（ｃ）情報処理装置１００は、（ａ）および（ｂ）により、モデル５００から変換された、図７に後述するモデル７００に対して、電源網解析を実施することにより、対象セルの電源ドロップを算出する。ここで、図７を用いて、モデル７００に対して電源網解析を実施する一例について説明する。
【００７９】
図７は、モデル７００に対して電源網解析を実施する一例を示す説明図である。図７において、情報処理装置１００は、配線上層のＶＤＤ，ＶＳＳ供給ポートから、対象セルの電源端子までの電源ドロップΔＶＤＤ，ΔＶＳＳを算出し、対象セルの電源ドロップΔＶＤＤ＋ΔＶＳＳを算出する。
【００８０】
（２−６）情報処理装置１００は、対象セルの電源ドロップが許容値以下である場合には、Ｐｘ，Ｐｙを配置ピッチリストに追加し、Ｐｘ＝Ｓｘとして、Ｐｙを、設定された増加幅だけ増加させる。許容値は、対象セルのトランジスタに印加される電圧を所定値以上にするための、電源ドロップの最大値である。例えば、モデル７００全体にかかる電圧Ｅから、対象セルの電源ドロップΔＶＤＤ＋ΔＶＳＳを減算して算出される、対象セルのトランジスタに印加される電圧を、所定値ε以上にするための、電源ドロップの最大値Ｅ−εである。一方で、情報処理装置１００は、対象セルの電源ドロップが許容値を超える場合には、Ｐｘを、設定された増加幅だけ増加させる。情報処理装置１００は、Ｐｘを増加させた結果、Ｐｘが計算対象範囲を超えた場合には、Ｐｘ＝Ｓｘとして、Ｐｙを、設定された増加幅だけ増加させる。
【００８１】
（２−７）情報処理装置１００は、Ｐｙが計算対象範囲を超えない間は、（２−４）〜（２−６）の動作を繰り返し実施する。情報処理装置１００は、（２−４）〜（２−６）の動作を繰り返し実施することにより、様々なセルサイズにおいて、様々なピッチ（Ｐｘ，Ｐｙ）で、電源ドロップが許容値以下であるか否かを評価することになる。ここで、図８を用いて、様々なピッチ（Ｐｘ，Ｐｙ）で、電源ドロップが許容値以下であるか否かを評価する一例について説明する。
【００８２】
図８は、様々なピッチで、電源ドロップが許容値以下であるか否かを評価する一例を示す説明図である。図８において、Ｐｘの増加幅ｄｘ，Ｐｙの増加幅ｄｙとする。情報処理装置１００は、Ｐｘ＝Ｓｘ，Ｐｙ＝Ｓｙのモデル８０１において電源ドロップ＞許容値であると評価する。情報処理装置１００は、電源ドロップ＞許容値であるため、Ｐｙを増加させず、Ｐｘ＝Ｓｘ＋ｄｘ，Ｐｙ＝Ｓｙのモデル８０２において電源ドロップ＞許容値であると評価する。情報処理装置１００は、電源ドロップ＞許容値であるため、Ｐｙを増加させず、Ｐｘ＝Ｓｘ＋ｎ・ｄｘ，Ｐｙ＝Ｓｙのモデル８０３において電源ドロップ≦許容値であると評価する。
【００８３】
情報処理装置１００は、電源ドロップ≦許容値であるため、Ｐｘを初期値に戻しＰｙを増加させ、Ｐｘ＝Ｓｘ，Ｐｙ＝Ｓｙ＋ｄｙのモデル８０４において電源ドロップ＞許容値であると評価する。情報処理装置１００は、電源ドロップ＞許容値であるため、Ｐｙを増加させず、Ｐｘ＝Ｓｘ＋ｄｙ，Ｐｙ＝Ｓｙ＋ｄｙのモデル８０５において電源ドロップ＞許容値であると評価する。このように、情報処理装置１００は、（２−４）〜（２−６）の動作を繰り返し実施することにより、様々なピッチ（Ｐｘ，Ｐｙ）で、電源ドロップが許容値以下であるか否かを評価する。
【００８４】
（２−８）情報処理装置１００は、配置ピッチリストのＰｘ，ＰｙからＰｘ×Ｐｙが最小となるＰｘ，Ｐｙに対応するセル間隔Ｅｘ，Ｅｙを算出し、算出したＥｘ，Ｅｙにより、対象セルの配置禁止領域を設定する。Ｅｘは、横方向のセル間隔である。Ｅｙは、縦方向のセル間隔である。
【００８５】
（２−９）情報処理装置１００は、出力負荷Ｃｌｏａｄ、動作周波数Ｆｒｅｑを変更して（２−３）〜（２−９）の動作を繰り返し実施する。そして、情報処理装置１００は、セルサイズごとに｛Ｅｘ，Ｅｙ｝（Ｓｘ，Ｓｙ，Ｆｒｅｑ，Ｃｌｏａｄ）の組み合わせを示すデータを生成する。
【００８６】
そして、情報処理装置１００は、セルサイズごとの｛Ｅｘ，Ｅｙ｝（Ｓｘ，Ｓｙ，Ｆｒｅｑ，Ｃｌｏａｄ）の組み合わせを示すデータに基づいて、ユーザにより予め設定された制約条件に従って、最適セルサイズを決定する。情報処理装置１００は、決定した最適セルサイズＳｘ，Ｓｙで、対象セルのレイアウトのデータを生成し、セルライブラリを作成する。また、情報処理装置１００は、Ｅｘ，Ｅｙを、Ｃｌｏａｄ，Ｆｒｅｑに対応付けて、セルライブラリに登録する。ここで、図９を用いて、Ｅｘ，Ｅｙを、Ｃｌｏａｄ，Ｆｒｅｑに対応付けて、セルライブラリ９００に登録する一例について説明する。
【００８７】
図９は、セルライブラリ９００に登録する一例を示す説明図である。情報処理装置１００は、Ｅｘ，Ｅｙを、Ｃｌｏａｄ，Ｆｒｅｑに対応付けて、セルライブラリ９００に登録する。情報処理装置１００は、例えば、「Ｃｌｏａｄ＝１０，Ｆｒｅｑ＝１：Ｅｘ＝２，Ｅｙ＝３」、「Ｃｌｏａｄ＝１０，Ｆｒｅｑ＝１．５：Ｅｘ＝３，Ｅｙ＝２」、・・・、「Ｃｌｏａｄ＝１００，Ｆｒｅｑ＝４：Ｅｘ＝１０，Ｅｙ＝８」などを登録する。
【００８８】
≪セル配置制御処理の一例≫
次に、図１０を用いて、上述したセル配置制御処理の一例について説明する。
【００８９】
図１０は、動作例１におけるセル配置制御処理の一例を示す説明図である。情報処理装置１００は、チップ設計の段階において、セルライブラリに登録されたＥｘ，Ｅｙを利用して、セル配置を制限する。
【００９０】
情報処理装置１００は、例えば、配置済みセル、および、配置しようとするセルについて、実際の出力負荷Ｃｌｏａｄｒ，実効動作周波数Ｆｒｅｑｒをそれぞれ下回らない最小のＣｌｏａｄ，動作周波数Ｆｒｅｑを特定する。Ｃｌｏａｄ≧Ｃｌｏａｄｒ，Ｆｒｅｑ≧Ｆｒｅｑｒである。そして、情報処理装置１００は、特定したＣｌｏａｄ，Ｆｒｅｑに対応付けられたＥｘ，Ｅｙを、セルライブラリから読み出し、配置済みセル、および、配置しようとするセルについての配置禁止領域を設定する。
【００９１】
情報処理装置１００は、配置しようとするセルが、配置済みの他セルの配置禁止領域に重なる場合、または、配置しようとするセルの配置禁止領域が、配置済みの他セルと重なる場合、配置不可能として、配置不可能をユーザに通知する。また、異なるセルの配置禁止領域同士は、重なってもよい。
【００９２】
図１０の例では、情報処理装置１００は、配置状況１０００では、セル１とセル２との配置禁止領域が重ならないため、セル１とセル２とを配置可能であると判定する。また、情報処理装置１００は、配置状況１０１０では、セル１とセル２との配置禁止領域同士が重なるが、セル１とセル２の配置禁止領域とは重ならず、セル１の配置禁止領域とセル２とは重ならないため、セル１とセル２とを配置可能であると判定する。
【００９３】
また、情報処理装置１００は、配置状況１０２０では、セル１とセル２の配置禁止領域が重なるため、セル１とセル２とを配置状況１０２０のようには配置不可能であると判定する。これにより、情報処理装置１００は、チップ設計の段階において、チップ設計よりも後段において電源ドロップエラーが発生しないように、ユーザにセルを配置させることができる。このため、情報処理装置１００は、手戻りの発生を防止することができ、ユーザの作業負担の増大化を抑制することができる。
【００９４】
（動作例１における全体処理手順）
次に、図１１を用いて、情報処理装置１００が実行する、動作例１における全体処理手順の一例について説明する。全体処理は、例えば、図２に示したＣＰＵ２０１と、メモリ２０２や記録媒体２０５などの記憶領域と、ネットワークＩ／Ｆ２０３とによって実現される。
【００９５】
図１１は、動作例１における全体処理手順の一例を示すフローチャートである。図１１において、情報処理装置１００は、ユーザの操作入力に応じた電源設計を実施し、電源配線のデータ１１１１を生成する（ステップＳ１１０１）。
【００９６】
また、情報処理装置１００は、ユーザの操作入力に応じた論理設計を実施し、ネットリスト１１１２を生成する（ステップＳ１１０２）。また、情報処理装置１００は、図１２に後述するルール作成処理を実行し、セルライブラリ１１１３を生成し、セルライブラリ１１１３に基づいて、配置ルール１１１４を生成する（ステップＳ１１０３）。
【００９７】
次に、情報処理装置１００は、電源配線のデータ１１１１と、ネットリスト１１１２と、配置ルール１１１４とに基づいて、ユーザの操作入力に応じたセル配置を実施し、セル配置データ１１１５を生成する（ステップＳ１１０４）。そして、情報処理装置１００は、ユーザの操作入力に応じた配線配置を実施し、セル間配線データ１１１６を生成する（ステップＳ１１０５）。
【００９８】
次に、情報処理装置１００は、セル配置データ１１１５とセル間配線データ１１１６とに基づいて、チップにおける電源ドロップが許容範囲内であるか否かを評価する（ステップＳ１１０６）。そして、情報処理装置１００は、全体処理を終了する。これにより、情報処理装置１００は、電源ドロップが許容範囲内であるＬＳＩなどのチップを設計することができる。
【００９９】
ここでは、情報処理装置１００が、チップにおける電源ドロップが許容範囲内であるか否かを評価する場合について説明したが、これに限らない。例えば、情報処理装置１００が、チップにおける電源ドロップが許容範囲内であるか否かの評価を省略する場合があってもよい。これによれば、情報処理装置１００は、処理量の低減化を図ることができる。
【０１００】
（動作例１におけるルール作成処理手順）
次に、図１２および図１３を用いて、情報処理装置１００が実行する、動作例１におけるルール作成処理手順の一例について説明する。ルール作成処理は、例えば、図２に示したＣＰＵ２０１と、メモリ２０２や記録媒体２０５などの記憶領域と、ネットワークＩ／Ｆ２０３とによって実現される。
【０１０１】
図１２および図１３は、動作例１におけるルール作成処理手順の一例を示すフローチャートである。図１２において、情報処理装置１００は、動作周波数および出力負荷のデータ１２１１に基づいて、シミュレーションを実施し、対象セルの消費電流のデータ１２１２を生成する（ステップＳ１２０１）。
【０１０２】
次に、情報処理装置１００は、各種データに基づいて、図１４に後述するセルサイズ決定処理を実行する（ステップＳ１２０２）。各種データは、例えば、電源配線のデータ１１１１と、対象セルの消費電流のデータ１２１２と、制約条件のデータ１２１３と、最小セルサイズのデータ１２１４と、対象セル間の微小消費電流のデータ１２１５とである。そして、情報処理装置１００は、図１３のステップＳ１３０１の処理に移行する。
【０１０３】
図１３において、情報処理装置１００は、最適セルサイズに対応付けて配置禁止領域のデータ１４２１を記憶する（ステップＳ１３０１）。配置禁止領域のデータ１４２１は、図１４に後述するセルサイズ決定処理により生成される。
【０１０４】
次に、情報処理装置１００は、最適セルサイズについて、セルライブラリ１１１３を生成する（ステップＳ１３０２）。そして、情報処理装置１００は、論理設計で生成したネットリスト１１１２で定めた動作周波数および出力負荷のデータ１３１１を参照して、セルライブラリ１１１３に基づいて、動作周波数および出力負荷に対して配置禁止領域を探索する（ステップＳ１３０３）。
【０１０５】
次に、情報処理装置１００は、動作周波数および出力負荷を満たすか否かを判定する（ステップＳ１３０４）。ここで、満たさない場合（ステップＳ１３０４：Ｎｏ）、情報処理装置１００は、ステップＳ１３０３の処理に戻る。一方で、満たす場合（ステップＳ１３０４：Ｙｅｓ）、情報処理装置１００は、ステップＳ１３０５の処理に移行する。
【０１０６】
ステップＳ１３０５では、情報処理装置１００は、配置ルール１１１４を生成する（ステップＳ１３０５）。そして、情報処理装置１００は、ルール作成処理を終了する。これにより、情報処理装置１００は、配置ルール１１１４により、電源ドロップが許容範囲内になるようにセルを配置していくことを可能にすることができる。
【０１０７】
（動作例１におけるセルサイズ決定処理手順）
次に、図１４を用いて、情報処理装置１００が実行する、動作例１におけるセルサイズ決定処理手順の一例について説明する。セルサイズ決定処理は、例えば、図２に示したＣＰＵ２０１と、メモリ２０２や記録媒体２０５などの記憶領域と、ネットワークＩ／Ｆ２０３とによって実現される。
【０１０８】
図１４は、動作例１におけるセルサイズ決定処理手順の一例を示すフローチャートである。図１４において、情報処理装置１００は、セルサイズＳｘ，Ｓｙにセルサイズ初期値Ｓｘｎ，Ｓｙｎを設定する（ステップＳ１４０１）。
【０１０９】
次に、情報処理装置１００は、図１５および図１６に後述する電源ドロップ評価処理を実行する（ステップＳ１４０２）。そして、情報処理装置１００は、Ｓｘ，Ｓｙ，Ｆｒｅｑ，Ｃｌｏａｄに対応付けてＥｘ，Ｅｙを出力する（ステップＳ１４０３）。
【０１１０】
次に、情報処理装置１００は、Ｅｘ，Ｅｙの少なくともいずれか一方が正の値となるＦｒｅｑ，Ｃｌｏａｄの組み合わせが存在するか否かを判定する（ステップＳ１４０４）。ここで、組み合わせが存在しない場合（ステップＳ１４０４：Ｎｏ）、情報処理装置１００は、ステップＳ１４０９の処理に移行する。一方で、組み合わせが存在する場合（ステップＳ１４０４：Ｙｅｓ）、情報処理装置１００は、ステップＳ１４０５の処理に移行する。
【０１１１】
ステップＳ１４０５では、情報処理装置１００は、Ｓｘを所定量増加させる（ステップＳ１４０５）。次に、情報処理装置１００は、Ｓｘが計算対象範囲外であるか否かを判定する（ステップＳ１４０６）。ここで、計算対象範囲外ではない場合（ステップＳ１４０６：Ｎｏ）、情報処理装置１００は、ステップＳ１４０２の処理に戻る。一方で、計算対象範囲外である場合（ステップＳ１４０６：Ｙｅｓ）、情報処理装置１００は、ステップＳ１４０７の処理に移行する。
【０１１２】
ステップＳ１４０７では、情報処理装置１００は、Ｓｘ＝ＳｘｎとしてＳｙを所定量増加させる（ステップＳ１４０７）。次に、情報処理装置１００は、Ｓｙが計算対象範囲外であるか否かを判定する（ステップＳ１４０８）。ここで、計算対象範囲外ではない場合（ステップＳ１４０８：Ｎｏ）、情報処理装置１００は、ステップＳ１４０２の処理に戻る。一方で、計算対象範囲外である場合（ステップＳ１４０８：Ｙｅｓ）、情報処理装置１００は、ステップＳ１４１０の処理に移行する。
【０１１３】
ステップＳ１４０９では、情報処理装置１００は、Ｓｘ＝Ｓｘｎであるか否かを判定する（ステップＳ１４０９）。ここで、Ｓｘ＝Ｓｘｎではない場合（ステップＳ１４０９：Ｎｏ）、情報処理装置１００は、ステップＳ１４０７の処理に移行する。一方で、Ｓｘ＝Ｓｘｎである場合（ステップＳ１４０９：Ｙｅｓ）、情報処理装置１００は、ステップＳ１４１０の処理に移行する。
【０１１４】
ステップＳ１４１０では、情報処理装置１００は、セルサイズごとの配置禁止領域のデータ１４２１を生成する（ステップＳ１４１０）。次に、情報処理装置１００は、制約条件のデータ１２１３と、セルサイズごとの配置禁止領域のデータ１４２１とに基づいて、最適セルサイズＳｘ，Ｓｙを決定する（ステップＳ１４１１）。
【０１１５】
そして、情報処理装置１００は、セルサイズ決定処理を終了する。これにより、情報処理装置１００は、電源ドロップが許容範囲内にすることができ、セル面積が最小になり、かつ、制約条件を満たするような最適セルサイズを決定することができ、ＬＳＩなどのチップを設計しやすくすることができる。
【０１１６】
（動作例１における電源ドロップ評価処理手順）
次に、図１５および図１６を用いて、情報処理装置１００が実行する、動作例１における電源ドロップ評価処理手順の一例について説明する。電源ドロップ評価処理は、例えば、図２に示したＣＰＵ２０１と、メモリ２０２や記録媒体２０５などの記憶領域と、ネットワークＩ／Ｆ２０３とによって実現される。
【０１１７】
図１５および図１６は、動作例１における電源ドロップ評価処理手順の一例を示すフローチャートである。図１５において、情報処理装置１００は、初期設定を実施する（ステップＳ１５０１）。初期設定は、Ｆｒｅｑ，Ｃｌｏａｄ，Ｐｘ，Ｐｙなどの計算対象範囲の設定、Ｐｘ，Ｐｙの増加分の設定、および、Ｆｒｅｑ，Ｃｌｏａｄの組み合わせのリストの作成などである。
【０１１８】
次に、情報処理装置１００は、Ｃｌｏａｄ，Ｆｒｅｑの初期値を設定する（ステップＳ１５０２）。そして、情報処理装置１００は、対象セルの消費電流のデータ１２１２に基づいて、Ｃｌｏａｄ，Ｆｒｅｑに対するＩｃｅｌｌを設定する（ステップＳ１５０３）。
【０１１９】
次に、情報処理装置１００は、ピッチの初期値としてＰｘ＝Ｓｘ，Ｐｙ＝Ｓｙを設定する（ステップＳ１５０４）。そして、情報処理装置１００は、Ｉｃｅｌｌ（Ｃｌｏａｄ，Ｆｒｅｑ）と、Ｐｘと、Ｓｘと、Ｐｙと、Ｓｙとを入力として、図１７に後述するモデル作成処理を実行し、敷き詰めモデルを作成する（ステップＳ１５０５）。
【０１２０】
次に、情報処理装置１００は、電源網解析を実施し、作成した敷き詰めモデルの電源ドロップ＝ΔＶＤＤ＋ΔＶＳＳを算出する（ステップＳ１５０６）。そして、情報処理装置１００は、電源ドロップ≦許容値であるか否かを判定する（ステップＳ１５０７）。
【０１２１】
ここで、電源ドロップ≦許容値である場合（ステップＳ１５０７：Ｙｅｓ）、情報処理装置１００は、ステップＳ１５０８の処理に移行する。一方で、電源ドロップ≦許容値ではない場合（ステップＳ１５０７：Ｎｏ）、情報処理装置１００は、ステップＳ１５０９の処理に移行する。
【０１２２】
ステップＳ１５０８では、情報処理装置１００は、Ｐｘ，Ｐｙの組み合わせを、配置ピッチリストに追加する（ステップＳ１５０８）。そして、情報処理装置１００は、ステップＳ１５１１の処理に移行する。
【０１２３】
ステップＳ１５０９では、情報処理装置１００は、Ｐｘを所定量増加させる（ステップＳ１５０９）。次に、情報処理装置１００は、Ｐｘが計算対象範囲外であるか否かを判定する（ステップＳ１５１０）。ここで、計算対象範囲外ではない場合（ステップＳ１５１０：Ｎｏ）、情報処理装置１００は、ステップＳ１５０５の処理に戻る。一方で、計算対象範囲外である場合（ステップＳ１５１０：Ｙｅｓ）、情報処理装置１００は、ステップＳ１５１１の処理に移行する。
【０１２４】
ステップＳ１５１１では、情報処理装置１００は、Ｐｘ＝ＳｘとしてＰｙを所定量増加させる（ステップＳ１５１１）。次に、情報処理装置１００は、Ｐｙが計算対象範囲外であるか否かを判定する（ステップＳ１５１２）。ここで、計算対象範囲外ではない場合（ステップＳ１５１２：Ｎｏ）、情報処理装置１００は、ステップＳ１５０５の処理に戻る。一方で、計算対象範囲外である場合（ステップＳ１５１２：Ｙｅｓ）、情報処理装置１００は、図１６のステップＳ１６０１の処理に移行する。
【０１２５】
図１６において、情報処理装置１００は、配置ピッチリストのＰｘ，Ｐｙの組み合わせのうち、Ｐｘ×Ｐｙが最小になるＰｘ，Ｐｙの組み合わせに基づいて、Ｅｘ，Ｅｙを算出する（ステップＳ１６０１）。
【０１２６】
次に、情報処理装置１００は、Ｃｌｏａｄ，Ｆｒｅｑに対応付けてＥｘ，Ｅｙを出力する（ステップＳ１６０２）。そして、情報処理装置１００は、Ｃｌｏａｄ，Ｆｒｅｑのリストに基づいて、Ｃｌｏａｄ，Ｆｒｅｑを次の値に変更する（ステップＳ１６０３）。
【０１２７】
次に、情報処理装置１００は、Ｃｌｏａｄ，Ｆｒｅｑのリストのすべての値を処理済みであるか否かを判定する（ステップＳ１６０４）。ここで、未処理の値がある場合（ステップＳ１６０４：Ｎｏ）、情報処理装置は、図１５のステップＳ１５０３の処理に戻る。一方で、すべての値を処理済みである場合（ステップＳ１６０４：Ｙｅｓ）、情報処理装置１００は、電源ドロップ評価処理を終了する。これにより、情報処理装置１００は、Ｃｌｏａｄ，Ｆｒｅｑに対応付けて、電源ドロップエラーを回避可能なＥｘ，Ｅｙを記憶しておくことができる。
【０１２８】
（動作例１におけるモデル作成処理手順）
次に、図１７を用いて、情報処理装置１００が実行する、動作例１におけるモデル作成処理手順の一例について説明する。モデル作成処理は、例えば、図２に示したＣＰＵ２０１と、メモリ２０２や記録媒体２０５などの記憶領域と、ネットワークＩ／Ｆ２０３とによって実現される。
【０１２９】
図１７は、動作例１におけるモデル作成処理手順の一例を示すフローチャートである。図１７において、情報処理装置１００は、Ｐｘ，Ｐｙに基づいて対象セル枠を配置する（ステップＳ１７０１）。
【０１３０】
次に、情報処理装置１００は、対象セル枠内を、横方向サイズＳｘｉかつ縦方向サイズＳｙｉの電流源接続単位枠に分割し、分割数ｎ＝（Ｓｘ×Ｓｙ）／（Ｓｘｉ×Ｓｙｉ）を設定する（ステップＳ１７０２）。そして、情報処理装置１００は、対象セル枠外を、同様に、電流源接続単位枠に分割する（ステップＳ１７０３）。
【０１３１】
次に、情報処理装置１００は、対象セル枠内の電流源接続単位枠に電流値Ｉｃｅｌｌ／ｎの電流源を接続する（ステップＳ１７０４）。そして、情報処理装置１００は、電源配線網を抵抗網に置換する（ステップＳ１７０５）。その後、情報処理装置１００は、モデル作成処理を終了する。これにより、情報処理装置１００は、電源ドロップが許容範囲内であるか否かを評価するためのモデルを作成することができる。
【０１３２】
（情報処理装置１００の動作例２）
次に、図１８〜図２１を用いて、情報処理装置１００の動作例２について説明する。上述した動作例１は、対象セル以外の他セルを配置することを禁止する配置禁止領域４１０を設定する動作例である。
【０１３３】
これに対し、動作例２は、対象セル以外の他セルのうち、単位面積あたりの消費電流の大きさがＩｓｐｃを超える他セルを配置することを禁止する配置禁止領域４１０を設定する動作例である。換言すれば、動作例２は、配置禁止領域４１０に、対象セル以外の他セルのうち、単位面積あたりの消費電流の大きさがＩｓｐｃ以下の他セルについては配置することを許可する。これにより、動作例２は、チップ面積の低減化を図ることができる。
【０１３４】
≪対象セル設計処理の一例≫
次に、図１８〜図２０を用いて、動作例２における対象セル設計処理の一例について説明する。情報処理装置１００は、セルに所望の論理に従って、セルサイズが最小となるように、セルのレイアウトを仮設計し、セルのレイアウトのデータを生成する。ここで、情報処理装置１００は、仮設計したセルのセルサイズを、最小セルサイズＳｘｎ，Ｓｙｎとして設定する。
【０１３５】
次に、情報処理装置１００は、Ｆｒｅｑ，Ｃｌｏａｄを変更しながら、セルのｓｐｉｃｅシミュレーションを実施し、Ｆｒｅｑ，Ｃｌｏａｄをパラメータとするセルの消費電流Ｉｃｅｌｌ（Ｆｒｅｑ，Ｃｌｏａｄ）のデータを求める。セルの消費電流のデータは、例えば、Ｆｒｅｑ，Ｃｌｏａｄをパラメータとし、セルの消費電流を算出するための数式である。セルの消費電流のデータは、例えば、Ｆｒｅｑ，Ｃｌｏａｄに対応付けてセルの消費電流を記憶するテーブルであってもよい。
【０１３６】
また、情報処理装置１００は、単位面積あたりの消費電流の大きさが、所定の大きさＩｓｐｃで、基板領域上に一様に消費電流が存在する場合に、基板領域における電源ドロップが許容値以下となるように、電源配線のデータを生成する。
【０１３７】
そして、情報処理装置１００は、最小セルサイズＳｘｎ，Ｓｙｎと、Ｉｃｅｌｌ（Ｆｒｅｑ，Ｃｌｏａｄ）とを入力として、下記（３−１）〜下記（３−９）の通りに動作を実施する。これによれば、情報処理装置１００は、最小セルサイズＳｘｎ，Ｓｙｎから、予め設定された計算対象範囲内でセルサイズを変更しながら、セルサイズごとにＥｘ，Ｅｙを算出することになる。
【０１３８】
（３−１）情報処理装置１００は、初期設定を実施する。情報処理装置１００は、例えば、Ｆｒｅｑ，Ｃｌｏａｄと、モデルを作成する際に用いられるセル間の横方向配置ピッチＰｘおよび縦方向配置ピッチＰｙとの計算対象範囲を設定する。情報処理装置１００は、例えば、Ｐｘ，Ｐｙを変更する際に用いられる、Ｐｘ，Ｐｙの増加分を設定する。情報処理装置１００は、例えば、計算対象範囲内で、セルライブラリに登録するＦｒｅｑ，Ｃｌｏａｄの組み合わせのリストを作成する。
【０１３９】
（３−２）情報処理装置１００は、セルライブラリに登録するＦｒｅｑ，Ｃｌｏａｄの組み合わせのリストに基づいて、Ｆｒｅｑ，Ｃｌｏａｄの初期値を設定する。
【０１４０】
（３−３）情報処理装置１００は、ピッチの初期値として、Ｐｘ＝Ｓｘ，Ｐｙ＝Ｓｙを設定する。Ｐｘ＝Ｓｘ＋Ｅｘ，Ｐｙ＝Ｓｙ＋Ｅｙである。
【０１４１】
（３−４）情報処理装置１００は、電源配線のデータを参照して、横方向セルサイズＳｘ，縦方向セルサイズＳｙの対象セルを敷き詰め、対象セル間の領域には単位面積あたり消費電流Ｉｓｐｃを設定した、図１８に後述するモデル１８００を作成する。ここで、図１８を用いて、モデル１８００の一例について説明する。
【０１４２】
図１８は、モデル１８００の一例を示す説明図である。モデル１８００は、対象セルを、縦横に、設定されたピッチ（Ｐｘ，Ｐｙ）で配置し、対象セル間の領域に、単位面積あたり消費電流Ｉｓｐｃを設定して作成されたモデルである。モデル１８００は、具体的には、対象セルの配置場所を示す対象セル枠１８０１を、縦横に、設定されたピッチ（Ｐｘ，Ｐｙ）で配置して作成されたモデルである。モデル１８００は、設定されたピッチと同じ配置禁止領域を設定した場合の、最悪の電源ノイズを評価可能であり、電源ドロップが最大でどの程度になり、電源ドロップエラーが発生する可能性があるか否かを評価可能であるモデルである。
【０１４３】
（３−５）情報処理装置１００は、下記（ａ）〜下記（ｃ）の通りに動作を実施し、作成したモデル１８００における対象セルの電源ドロップが許容値以下であるか否かを評価する。
【０１４４】
（ａ）情報処理装置１００は、モデル１８００内の電源配線を抵抗網に置き換える。
【０１４５】
（ｂ）情報処理装置１００は、モデル１８００内の対象セルのすべてに、Ｆｒｅｑ，Ｃｌｏａｄに対応する消費電流Ｉｃｅｌｌ（Ｆｒｅｑ，Ｃｌｏａｄ）を流す。情報処理装置１００は、例えば、対象セル枠１８０１内を、横方向サイズＳｘｉかつ縦方向サイズＳｙｉの電流源接続単位枠に分割し、電流源を接続することにより、対象セル内のトランジスタに電流を流すことを、電流源により示すようにする。分割数ｎ＝（Ｓｘ×Ｓｙ）／（Ｓｘｉ×Ｓｙｉ）である。また、情報処理装置１００は、例えば、対象セル枠以外の領域内を、横方向サイズＳｘｉかつ縦方向サイズＳｙｉの電流源接続単位枠に分割し、電流源を接続することにより、単位面積あたり消費電流Ｉｓｐｃを流すことを示すようにする。
【０１４６】
（ｃ）情報処理装置１００は、（ａ）および（ｂ）により、モデル１８００から変換された、図１９に後述するモデル１９００に対して、電源網解析を実施することにより、対象セルの電源ドロップを算出する。ここで、図１９を用いて、モデル１９００に対して電源網解析を実施する一例について説明する。
【０１４７】
図１９は、モデル１９００に対して電源網解析を実施する一例を示す説明図である。図１９において、情報処理装置１００は、配線上層のＶＤＤ，ＶＳＳ供給ポートから、対象セルの電源端子までの電源ドロップΔＶＤＤ，ΔＶＳＳを算出し、対象セルの電源ドロップΔＶＤＤ＋ΔＶＳＳを算出する。情報処理装置１００は、対象セルの消費電流が、Ｉｓｐｃ×Ｓｘ×Ｓｙ以下になる状況であれば、対象セルの電源ドロップΔＶＤＤ＋ΔＶＳＳを算出しなくてもよい。
【０１４８】
（３−６）情報処理装置１００は、対象セルの電源ドロップが許容値以下である場合には、Ｐｘ，Ｐｙを配置ピッチリストに追加し、Ｐｘ＝Ｓｘとして、Ｐｙを、設定された増加幅だけ増加させる。一方で、情報処理装置１００は、対象セルの電源ドロップが許容値を超える場合には、Ｐｘを、設定された増加幅だけ増加させる。情報処理装置１００は、Ｐｘを増加させた結果、Ｐｘが計算対象範囲を超えた場合には、Ｐｘ＝Ｓｘとして、Ｐｙを、設定された増加幅だけ増加させる。情報処理装置１００は、対象セルの消費電流がＩｓｐｃ×Ｓｘ×Ｓｙ以下になる状況であれば、Ｅｘ＝Ｅｙ＝“ＬＣＤ”に設定する。
【０１４９】
（３−７）情報処理装置１００は、対象セルの消費電流がＩｓｐｃを超える状況であり、Ｐｙが計算対象範囲を超えない間は、（３−４）〜（３−６）の動作を繰り返し実施する。情報処理装置１００は、（３−４）〜（３−６）の動作を繰り返し実施することにより、様々なセルサイズにおいて、様々なピッチ（Ｐｘ，Ｐｙ）で、電源ドロップが許容値以下であるか否かを評価することになる。情報処理装置１００は、対象セルの消費電流がＩｓｐｃ×Ｓｘ×Ｓｙ以下の状況であれば、（３−８）の動作に移行してもよい。
【０１５０】
（３−８）情報処理装置１００は、配置ピッチリストのＰｘ，Ｐｙのうち、Ｐｘ×Ｐｙが最小となるＰｘ，Ｐｙに対応するセル間隔Ｅｘ（横方向），Ｅｙ（縦方向）を算出し、算出したＥｘ，Ｅｙにより、対象セルの配置禁止領域を設定する。この場合、情報処理装置１００は、（Ｓｘ，Ｓｙ，Ｆｒｅｑ，Ｃｌｏａｄ）と、対象セルの配置禁止領域を示す｛Ｅｘ，Ｅｙ｝との組み合わせを示すデータを生成する。
【０１５１】
また、情報処理装置１００は、Ｐｘ×Ｐｙが最小となるＰｘ，Ｐｙに対応するセル間隔Ｅｘ（横方向），Ｅｙ（縦方向）に“ＬＣＤ”が設定されていれば、対象セルの配置禁止領域を設定せず、配置禁止領域が存在しないと判定する。この場合、情報処理装置１００は、（Ｓｘ，Ｓｙ，Ｆｒｅｑ，Ｃｌｏａｄ）と、配置禁止領域が存在しないことを示す“ＬＣＤ”フラグとの組み合わせを示すデータを生成する。
【０１５２】
（３−９）情報処理装置１００は、出力負荷Ｃｌｏａｄ、動作周波数Ｆｒｅｑを変更して（３−３）〜（３−９）の動作を繰り返し実施する。そして、情報処理装置１００は、セルサイズごとに、｛Ｅｘ，Ｅｙ｝（Ｓｘ，Ｓｙ，Ｆｒｅｑ，Ｃｌｏａｄ）の組み合わせを示すデータ、または、｛“ＬＣＤ”フラグ｝（Ｓｘ，Ｓｙ，Ｆｒｅｑ，Ｃｌｏａｄ）の組み合わせを示すデータを生成する。
【０１５３】
そして、情報処理装置１００は、生成したセルサイズごとのデータに基づいて、ユーザにより予め設定された制約条件に従って、最適セルサイズを決定する。情報処理装置１００は、決定した最適セルサイズＳｘ，Ｓｙで、対象セルのレイアウトのデータを生成し、セルライブラリを作成する。また、情報処理装置１００は、Ｅｘ，Ｅｙまたは“ＬＣＤ”フラグを、Ｃｌｏａｄ，Ｆｒｅｑに対応付けて、セルライブラリに登録する。ここで、図２０を用いて、Ｅｘ，Ｅｙまたは“ＬＣＤ”フラグを、Ｃｌｏａｄ，Ｆｒｅｑに対応付けて、セルライブラリ２０００に登録する一例について説明する。
【０１５４】
図２０は、セルライブラリ２０００に登録する一例を示す説明図である。情報処理装置１００は、Ｅｘ，Ｅｙまたは“ＬＣＤ”フラグを、Ｃｌｏａｄ，Ｆｒｅｑに対応付けて、セルライブラリ２０００に登録する。情報処理装置１００は、例えば、「Ｃｌｏａｄ＝１０，Ｆｒｅｑ＝１：ＬＣＤ」、「Ｃｌｏａｄ＝１０，Ｆｒｅｑ＝１．５：Ｅｘ＝３，Ｅｙ＝２」、・・・、「Ｃｌｏａｄ＝１００，Ｆｒｅｑ＝４：Ｅｘ＝１０，Ｅｙ＝８」などを登録する。
【０１５５】
≪セル配置制御処理の一例≫
次に、図２１を用いて、上述したセル配置制御処理の一例について説明する。
【０１５６】
図２１は、動作例２におけるセル配置制御処理の一例を示す説明図である。情報処理装置１００は、チップ設計の段階において、セルライブラリに登録されたＥｘ，Ｅｙまたは“ＬＣＤ”フラグを利用して、セル配置を制限する。
【０１５７】
情報処理装置１００は、例えば、配置済みセル、および、配置しようとするセルについて、実際の出力負荷Ｃｌｏａｄｒ，実効動作周波数Ｆｒｅｑｒをそれぞれ下回らない最小のＣｌｏａｄ，動作周波数Ｆｒｅｑを特定する。そして、情報処理装置１００は、特定したＣｌｏａｄ，Ｆｒｅｑに対応付けられたＥｘ，Ｅｙまたは“ＬＣＤ”フラグを、セルライブラリから読み出し、配置済みセル、および、配置しようとするセルについての配置禁止領域を設定する。
【０１５８】
情報処理装置１００は、配置しようとするセルが、配置済みの他セルの配置禁止領域に重なる場合、または、配置しようとするセルの配置禁止領域が、配置済みの他セルと重なる場合、配置不可能と判定して、配置不可能をユーザに通知する。また、異なるセルの配置禁止領域同士は、重なってもよい。また、情報処理装置１００は、配置しようとするセルが“ＬＣＤ”フラグ付きである場合、配置済みの他セルの配置禁止領域に関わらずに配置可能と判定する。また、情報処理装置１００は、配置しようとするセルの配置禁止領域が、“ＬＣＤ”フラグ付きの他セルと重なる場合、配置可能と判定する。
【０１５９】
図２１の例では、情報処理装置１００は、配置状況２１００では、セル１とセル２との配置禁止領域が重ならず、セル１とセル２との配置禁止領域に存在するセル３が“ＬＣＤ”フラグ付きであると判定する。このため、情報処理装置１００は、配置状況２１００では、セル１とセル２とを配置可能であると判定する。また、情報処理装置１００は、配置状況２１１０では、セル１とセル２の配置禁止領域とは重ならず、セル１の配置禁止領域とセル２とが重ならないと判定する。また、情報処理装置１００は、配置状況２１１０では、セル１とセル２との配置禁止領域に存在するセル３が“ＬＣＤ”フラグ付きであると判定する。このため、情報処理装置１００は、配置状況２１１０では、セル１とセル２とを配置可能であると判定する。
【０１６０】
また、情報処理装置１００は、配置状況２１２０では、セル１とセル２の配置禁止領域が重なるため、セル１とセル２とを配置不可能であると判定する。情報処理装置１００は、例えば、セル１が配置済みで、配置状況２１２０のように、セル２を配置しようとする場合、セル２を配置不可能なように制御する。これにより、情報処理装置１００は、チップ設計の段階において、チップ設計よりも後段において電源ドロップエラーが発生しないように、セルを配置することができる。このため、情報処理装置１００は、手戻りの発生を防止することができ、ユーザの作業負担の増大化を抑制することができる。
【０１６１】
（動作例２における全体処理手順）
動作例２における全体処理手順の一例は、図１１に示した、動作例１における全体処理手順の一例と同様であるため、説明を省略する。
【０１６２】
（動作例２におけるルール作成処理手順）
動作例２におけるルール作成処理手順の一例は、図１２および図１３に示した、動作例１におけるルール作成処理手順の一例と同様であるため、説明を省略する。
【０１６３】
（動作例２におけるセルサイズ決定処理手順）
動作例２におけるセルサイズ決定処理手順の一例は、図１４に示した、動作例１におけるセルサイズ決定処理手順の一例と同様であるが、ステップＳ１４０２では、情報処理装置１００は、図２２および図２３に後述する電源ドロップ評価処理を実行する。
【０１６４】
（動作例２における電源ドロップ評価処理手順）
次に、図２２および図２３を用いて、情報処理装置１００が実行する、動作例２における電源ドロップ評価処理手順の一例について説明する。電源ドロップ評価処理は、例えば、図２に示したＣＰＵ２０１と、メモリ２０２や記録媒体２０５などの記憶領域と、ネットワークＩ／Ｆ２０３とによって実現される。
【０１６５】
図２２および図２３は、動作例２における電源ドロップ評価処理手順の一例を示すフローチャートである。図２２において、情報処理装置１００は、初期設定を実施する（ステップＳ２２０１）。初期設定は、Ｆｒｅｑ，Ｃｌｏａｄ，Ｐｘ，Ｐｙなどの計算対象範囲の設定、Ｐｘ，Ｐｙの増加分の設定、および、Ｆｒｅｑ，Ｃｌｏａｄの組み合わせのリストの作成などである。
【０１６６】
次に、情報処理装置１００は、Ｃｌｏａｄ，Ｆｒｅｑの初期値を設定する（ステップＳ２２０２）。そして、情報処理装置１００は、対象セルの消費電流のデータ１２１２に基づいて、Ｃｌｏａｄ，Ｆｒｅｑに対するＩｃｅｌｌを設定する（ステップＳ２２０３）。
【０１６７】
次に、情報処理装置１００は、Ｉｃｅｌｌ＞Ｉｓｐｃ×Ｓｘ×Ｓｙであるか否かを判定する（ステップＳ２２０４）。ここで、Ｉｃｅｌｌ＞Ｉｓｐｃ×Ｓｘ×Ｓｙである場合（ステップＳ２２０４：Ｙｅｓ）、情報処理装置１００は、ステップＳ２２０６の処理に移行する。一方で、Ｉｃｅｌｌ＞Ｉｓｐｃ×Ｓｘ×Ｓｙではない場合（ステップＳ２２０４：Ｎｏ）、情報処理装置１００は、ステップＳ２２０５の処理に移行する。
【０１６８】
ステップＳ２２０５では、情報処理装置１００は、Ｅｘ＝Ｅｙ＝“ＬＣＤ”に設定する（ステップＳ２２０５）。そして、情報処理装置１００は、図２３のステップＳ２３０２の処理に移行する。
【０１６９】
ステップＳ２２０６では、情報処理装置１００は、ピッチの初期値としてＰｘ＝Ｓｘ，Ｐｙ＝Ｓｙを設定する（ステップＳ２２０６）。そして、情報処理装置１００は、Ｉｃｅｌｌ（Ｃｌｏａｄ，Ｆｒｅｑ）と、Ｐｘと、Ｓｘと、Ｐｙと、Ｓｙとを入力として、図２４に後述するモデル作成処理を実行し、敷き詰めモデルを作成する（ステップＳ２２０７）。
【０１７０】
次に、情報処理装置１００は、電源網解析を実施し、作成した敷き詰めモデルの電源ドロップ＝ΔＶＤＤ＋ΔＶＳＳを算出する（ステップＳ２２０８）。そして、情報処理装置１００は、電源ドロップ≦許容値であるか否かを判定する（ステップＳ２２０９）。
【０１７１】
ここで、電源ドロップ≦許容値である場合（ステップＳ２２０９：Ｙｅｓ）、情報処理装置１００は、ステップＳ２２１０の処理に移行する。一方で、電源ドロップ≦許容値ではない場合（ステップＳ２２０９：Ｎｏ）、情報処理装置１００は、ステップＳ２２１１の処理に移行する。
【０１７２】
ステップＳ２２１０では、情報処理装置１００は、Ｐｘ，Ｐｙの組み合わせを、配置ピッチリストに追加する（ステップＳ２２１０）。そして、情報処理装置１００は、ステップＳ２２１３の処理に移行する。
【０１７３】
ステップＳ２２１１では、情報処理装置１００は、Ｐｘを所定量増加させる（ステップＳ２２１１）。次に、情報処理装置１００は、Ｐｘが計算対象範囲外であるか否かを判定する（ステップＳ２２１２）。ここで、計算対象範囲外ではない場合（ステップＳ２２１２：Ｎｏ）、情報処理装置１００は、ステップＳ２２０７の処理に戻る。一方で、計算対象範囲外である場合（ステップＳ２２１２：Ｙｅｓ）、情報処理装置１００は、ステップＳ２２１３の処理に移行する。
【０１７４】
ステップＳ２２１３では、情報処理装置１００は、Ｐｘ＝ＳｘとしてＰｙを所定量増加させる（ステップＳ２２１３）。次に、情報処理装置１００は、Ｐｙが計算対象範囲外であるか否かを判定する（ステップＳ２２１４）。ここで、計算対象範囲外ではない場合（ステップＳ２２１４：Ｎｏ）、情報処理装置１００は、ステップＳ２２０７の処理に戻る。一方で、計算対象範囲外である場合（ステップＳ２２１４：Ｙｅｓ）、情報処理装置１００は、図２３のステップＳ２３０１の処理に移行する。
【０１７５】
図２３において、情報処理装置１００は、配置ピッチリストのＰｘ，Ｐｙの組み合わせのうち、Ｐｘ×Ｐｙが最小になるＰｘ，Ｐｙの組み合わせに基づいて、Ｅｘ，Ｅｙを算出する（ステップＳ２３０１）。
【０１７６】
次に、情報処理装置１００は、Ｃｌｏａｄ，Ｆｒｅｑに対応付けてＥｘ，Ｅｙを出力する（ステップＳ２３０２）。そして、情報処理装置１００は、Ｃｌｏａｄ，Ｆｒｅｑのリストに基づいて、Ｃｌｏａｄ，Ｆｒｅｑを次の値に変更する（ステップＳ２３０３）。
【０１７７】
次に、情報処理装置１００は、Ｃｌｏａｄ，Ｆｒｅｑのリストのすべての値を処理済みであるか否かを判定する（ステップＳ２３０４）。ここで、未処理の値がある場合（ステップＳ２３０４：Ｎｏ）、情報処理装置は、図２２のステップＳ２２０３の処理に戻る。一方で、すべての値を処理済みである場合（ステップＳ２３０４：Ｙｅｓ）、情報処理装置１００は、電源ドロップ評価処理を終了する。これにより、情報処理装置１００は、Ｃｌｏａｄ，Ｆｒｅｑに対応付けて、電源ドロップエラーを回避可能なＥｘ，Ｅｙを記憶しておくことができる。
【０１７８】
（動作例２におけるモデル作成処理手順）
次に、図２４を用いて、情報処理装置１００が実行する、動作例２におけるモデル作成処理手順の一例について説明する。モデル作成処理は、例えば、図２に示したＣＰＵ２０１と、メモリ２０２や記録媒体２０５などの記憶領域と、ネットワークＩ／Ｆ２０３とによって実現される。
【０１７９】
図２４は、動作例２におけるモデル作成処理手順の一例を示すフローチャートである。図２４において、情報処理装置１００は、Ｐｘ，Ｐｙに基づいて対象セル枠を配置する（ステップＳ２４０１）。
【０１８０】
次に、情報処理装置１００は、対象セル枠内を、横方向サイズＳｘｉかつ縦方向サイズＳｙｉの電流源接続単位枠に分割し、分割数ｎ＝（Ｓｘ×Ｓｙ）／（Ｓｘｉ×Ｓｙｉ）を設定する（ステップＳ２４０２）。そして、情報処理装置１００は、対象セル枠外を、同様に、電流源接続単位枠に分割する（ステップＳ２４０３）。
【０１８１】
次に、情報処理装置１００は、対象セル枠内の電流源接続単位枠に電流値Ｉｃｅｌｌ／ｎの電流源を接続する（ステップＳ２４０４）。そして、情報処理装置１００は、対象セル枠外の電流源接続単位枠に電流値Ｉｓｐｃ×Ｓｘｉ×Ｓｙｉの電流源を接続する（ステップＳ２４０５）。
【０１８２】
次に、情報処理装置１００は、電源配線網を抵抗網に置換する（ステップＳ２４０６）。そして、情報処理装置１００は、モデル作成処理を終了する。これにより、情報処理装置１００は、対象セル以外に、単位面積あたりの消費電流の大きさがＩｓｐｃ以下の他セルが配置されることを考慮したモデルを作成することができる。
【０１８３】
以上説明したように、情報処理装置１００によれば、対象セルの消費電流に基づいて、セルサイズとセル間隔との組み合わせごとに、対象セルを敷き詰めたモデルに対する電源網解析を実施することができる。情報処理装置１００によれば、電源網解析の結果を参照して、作成したモデルにおける電源ドロップが許容範囲内であるか否かを評価することができる。情報処理装置１００によれば、評価した結果を参照して、対象セルのセルサイズごとに、対象セルのセル間隔についての配置制限を示す情報を生成することができる。これにより、情報処理装置１００は、ユーザが、対象セルのセルサイズごとに、電源ドロップエラーを発生させないための、対象セルのセル間隔についての配置制限を把握可能にすることができる。このため、ユーザは、ＬＳＩを設計する際、電源ドロップエラーを発生させずに、対象セルを配置する密度が向上するように、対象セルを配置していくことが可能になり、自身の想定通りに動作するＬＳＩを設計することができる。
【０１８４】
情報処理装置１００によれば、評価した結果を参照して、所定の制約条件に基づいて、対象セルのセルサイズを決定することができる。情報処理装置１００によれば、生成した情報のうち、決定した対象セルのセルサイズに対応する情報を、集積回路の設計に用いられる対象セルライブラリに登録することができる。これにより、情報処理装置１００は、ユーザがＬＳＩを設計する際、電源ドロップエラーが発生しないように、セルを配置させることができる。このため、情報処理装置１００は、セル配置よりも後段の作業において電源ドロップエラーが発見され、手戻りが発生してしまうことを防止することができ、ユーザの作業負担の増大化を抑制することができる。
【０１８５】
情報処理装置１００によれば、ライブラリを参照して、集積回路の設計において、基板領域上に配置する対象セルが、対象セルのセル間隔についての配置制限を満たすか否かを判定して出力することができる。これにより、情報処理装置１００は、ユーザがＬＳＩを設計する際、電源ドロップエラーが発生しないように、セルを配置させることができる。また、情報処理装置１００は、セルが配置可能であるか否かを、ユーザが把握可能にすることができる。
【０１８６】
情報処理装置１００によれば、対象セルの消費電流に基づいて、セルサイズとセル間隔との組み合わせごとに、対象セルを敷き詰め、かつ、対象セル間に所定の大きさの消費電流を示す電流源を接続したモデルに対する電源網解析を実施することができる。これにより、情報処理装置１００は、所定の大きさ以下の消費電流のセルを、対象セルとの位置関係に関わらず配置可能に、対象セルのセル間隔についての配置制限を示す情報を生成することができる。このため、情報処理装置１００は、ユーザがＬＳＩを設計する際、所定の大きさ以下の消費電流のセルを、比較的自由に配置可能にし、ＬＳＩの面積の低減化を図りやすくすることができる。
【０１８７】
情報処理装置１００によれば、所定の領域に敷き詰めても電源ドロップエラーを回避可能である所定のセルの消費電流の大きさに基づいて、対象セル間に接続する電流源が示す消費電流の大きさを設定することができる。これにより、情報処理装置１００は、対象セル間に接続する電流源の消費電流の大きさを設定可能にすることができる。
【０１８８】
なお、本実施の形態で説明した設計方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した設計プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した設計プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１８９】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１９０】
（付記１）セルサイズとセル間隔との組み合わせごとに、セルを敷き詰めたモデルに対して実施された、前記セルの出力負荷および動作周波数に応じた前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価し、
評価した結果を参照して、前記セルのセルサイズごとに、前記セルのセル間隔についての配置制限を示す情報を生成する、
処理をコンピュータが実行することを特徴とする設計方法。
【０１９１】
（付記２）評価した結果を参照して、所定の制約条件に基づいて、前記セルのセルサイズを決定し、
生成した前記情報のうち、決定した前記セルのセルサイズに対応する情報を、集積回路の設計に用いられるセルライブラリに登録する、
処理を前記コンピュータが実行することを特徴とする付記１に記載の設計方法。
【０１９２】
（付記３）前記セルライブラリを参照して、前記集積回路の設計において、基板領域上に配置する前記セルが、前記セルのセル間隔についての配置制限を満たすか否かを判定して出力する、
処理を前記コンピュータが実行することを特徴とする付記２に記載の設計方法。
【０１９３】
（付記４）前記評価する処理は、
前記組み合わせごとに、前記セルを敷き詰め、かつ、前記セル間に所定の大きさの消費電流を示す電流源を接続したモデルに対して実施された、前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価する、ことを特徴とする付記１〜３のいずれか一つに記載の設計方法。
【０１９４】
（付記５）所定の領域において隣接するように敷き詰めた場合にも、前記所定の領域における電源ドロップが許容範囲内になる所定のセルの消費電流の大きさに基づいて、前記所定の大きさが設定される、ことを特徴とする付記４に記載の設計方法。
【０１９５】
（付記６）セルサイズとセル間隔との組み合わせごとに、セルを敷き詰めたモデルに対して実施された、前記セルの出力負荷および動作周波数に応じた前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価し、
評価した結果を参照して、前記セルのセルサイズごとに、前記セルのセル間隔についての配置制限を示す情報を生成する、
処理をコンピュータに実行させることを特徴とする設計プログラム。
【符号の説明】
【０１９６】
１００  情報処理装置
１０１，１０２  対象セル
１１０，１１１，５００，７００，８０１〜８０５，１８００，１９００  モデル
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  記録媒体Ｉ／Ｆ
２０５  記録媒体
２１０  ネットワーク
３００  記憶部
３０１  取得部
３０２  評価部
３０３  作成部
３０４  設計部
３０５  出力部
４００，５０１，１８０１  対象セル枠
４１０  配置禁止領域
９００，１１１３，２０００  セルライブラリ
１０００，１０１０，１０２０，２１００，２１１０，２１２０  配置状況
１１１１  電源配線のデータ
１１１２  ネットリスト
１１１４  配置ルール
１１１５  セル配置データ
１１１６  セル間配線データ
１２１１，１３１１  動作周波数および出力負荷のデータ
１２１２  対象セルの消費電流のデータ
１２１３  制約条件のデータ
１２１４  最小セルサイズのデータ
１２１５  対象セル間の微小消費電流のデータ
１４２１  配置禁止領域のデータ
【図１】
2020184119.tif 000003
【図２】
2020184119.tif 000004
【図３】
2020184119.tif 000005
【図４】
2020184119.tif 000006
【図５】
2020184119.tif 000007
【図６】
2020184119.tif 000008
【図７】
2020184119.tif 000009
【図８】
2020184119.tif 000010
【図９】
2020184119.tif 000011
【図１０】
2020184119.tif 000012
【図１１】
2020184119.tif 000013
【図１２】
2020184119.tif 000014
【図１３】
2020184119.tif 000015
【図１４】
2020184119.tif 000016
【図１５】
2020184119.tif 000017
【図１６】
2020184119.tif 000018
【図１７】
2020184119.tif 000019
【図１８】
2020184119.tif 000020
【図１９】
2020184119.tif 000021
【図２０】
2020184119.tif 000022
【図２１】
2020184119.tif 000023
【図２２】
2020184119.tif 000024
【図２３】
2020184119.tif 000025
【図２４】
2020184119.tif 000026