IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-30
(45)【発行日】2023-02-07
(54)【発明の名称】設計方法、および設計プログラム
(51)【国際特許分類】
   G06F 30/392 20200101AFI20230131BHJP
   G06F 30/398 20200101ALI20230131BHJP
   H01L 21/82 20060101ALI20230131BHJP
【FI】
G06F30/392
G06F30/398
H01L21/82 C
H01L21/82 T
【請求項の数】 5
(21)【出願番号】P 2019086808
(22)【出願日】2019-04-26
(65)【公開番号】P2020184119
(43)【公開日】2020-11-12
【審査請求日】2022-01-11
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】小澤 元広
【審査官】堀井 啓明
(56)【参考文献】
【文献】特表2018-528617(JP,A)
【文献】特開2011-34291(JP,A)
【文献】特開2019-46249(JP,A)
【文献】特開2010-66871(JP,A)
【文献】特開2009-130191(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00-30/398
H01L 21/82
(57)【特許請求の範囲】
【請求項1】
セルサイズとセル間隔との組み合わせごとに、セルを敷き詰めたモデルに対して実施された、前記セルの出力負荷および動作周波数に応じた前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価し、
評価した結果を参照して、前記セルのセルサイズごとに、前記セルのセル間隔についての配置制限を示す情報を生成する、
処理をコンピュータが実行することを特徴とする設計方法。
【請求項2】
評価した結果を参照して、所定の制約条件に基づいて、前記セルのセルサイズを決定し、
生成した前記情報のうち、決定した前記セルのセルサイズに対応する情報を、集積回路の設計に用いられるセルライブラリに登録する、
処理を前記コンピュータが実行することを特徴とする請求項1に記載の設計方法。
【請求項3】
前記セルライブラリを参照して、前記集積回路の設計において、基板領域上に配置する前記セルが、前記セルのセル間隔についての配置制限を満たすか否かを判定して出力する、
処理を前記コンピュータが実行することを特徴とする請求項2に記載の設計方法。
【請求項4】
前記評価する処理は、
前記組み合わせごとに、前記セルを敷き詰め、かつ、前記セル間に所定の大きさの消費電流を示す電流源を接続したモデルに対して実施された、前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価する、ことを特徴とする請求項1~3のいずれか一つに記載の設計方法。
【請求項5】
セルサイズとセル間隔との組み合わせごとに、セルを敷き詰めたモデルに対して実施された、前記セルの出力負荷および動作周波数に応じた前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価し、
評価した結果を参照して、前記セルのセルサイズごとに、前記セルのセル間隔についての配置制限を示す情報を生成する、
処理をコンピュータに実行させることを特徴とする設計プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、設計方法、および設計プログラムに関する。
【背景技術】
【0002】
従来、集積回路を設計する際には、基板領域上にセルの配置を行い、配線の配置を行った後に、集積回路における電源ドロップが許容範囲内であるか否かの評価が行われる。集積回路は、例えば、LSI(Large Scale Integration)などである。セルは、例えば、トランジスタを含み、所定の機能を実現する回路である。
【0003】
先行技術としては、例えば、クロック系セルを除く基本セルの配置後において、基本セルの配置位置と動作周波数とに基づいて電源電圧降下の発生しやすい電圧降下領域を推測し、推測された電圧降下領域において基本セルの再配置を行うものがある。また、例えば、チップレベルあるいは下位モジュールレベルの初期配置を仮定して作成した電圧降下傾向の情報を基に、設計初期に決まってくる電圧降下傾向に対応したセル、マクロおよびトランジスタの密度分布を見積もる技術がある。また、例えば、セル接続情報と、セル接続情報に含まれたセルの動的消費電力値とから、レイアウト時に隔離すべきセルの組み合わせを隔離セル組と定義する隔離制約情報を生成する技術がある。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2007-114986号公報
【文献】特開2007-95811号公報
【文献】特開2000-164723号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、集積回路を設計する際、電源ドロップが許容範囲外になる電源ドロップエラーが発生すると、セルの配置を行う工程への手戻りが発生してしまい、集積回路を設計する作業にかかる作業負担の増大化を招くことになる。
【0006】
1つの側面では、本発明は、集積回路を設計する際の、電源ドロップエラーの発生による作業負担の増大化を抑制することを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、セルサイズとセル間隔との組み合わせごとに、セルを敷き詰めたモデルに対して実施された、前記セルの出力負荷および動作周波数に応じた前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価し、評価した結果を参照して、前記セルのセルサイズごとに、前記セルのセル間隔についての配置制限を示す情報を生成する設計方法、および設計プログラムが提案される。
【発明の効果】
【0008】
一態様によれば、集積回路を設計する際の、電源ドロップエラーの発生による作業負担の増大化を抑制することが可能になる。
【図面の簡単な説明】
【0009】
図1図1は、実施の形態にかかる設計方法の一実施例を示す説明図である。
図2図2は、情報処理装置100のハードウェア構成例を示すブロック図である。
図3図3は、情報処理装置100の機能的構成例を示すブロック図である。
図4図4は、配置禁止領域410の一例を示す説明図である。
図5図5は、モデル500の一例を示す説明図である。
図6図6は、対象セルに消費電流を流す一例を示す説明図である。
図7図7は、モデル700に対して電源網解析を実施する一例を示す説明図である。
図8図8は、様々なピッチで、電源ドロップが許容値以下であるか否かを評価する一例を示す説明図である。
図9図9は、セルライブラリ900に登録する一例を示す説明図である。
図10図10は、動作例1におけるセル配置制御処理の一例を示す説明図である。
図11図11は、動作例1における全体処理手順の一例を示すフローチャートである。
図12図12は、動作例1におけるルール作成処理手順の一例を示すフローチャート(その1)である。
図13図13は、動作例1におけるルール作成処理手順の一例を示すフローチャート(その2)である。
図14図14は、動作例1におけるセルサイズ決定処理手順の一例を示すフローチャートである。
図15図15は、動作例1における電源ドロップ評価処理手順の一例を示すフローチャート(その1)である。
図16図16は、動作例1における電源ドロップ評価処理手順の一例を示すフローチャート(その2)である。
図17図17は、動作例1におけるモデル作成処理手順の一例を示すフローチャートである。
図18図18は、モデル1800の一例を示す説明図である。
図19図19は、モデル1900に対して電源網解析を実施する一例を示す説明図である。
図20図20は、セルライブラリ2000に登録する一例を示す説明図である。
図21図21は、動作例2におけるセル配置制御処理の一例を示す説明図である。
図22図22は、動作例2における電源ドロップ評価処理手順の一例を示すフローチャート(その1)である。
図23図23は、動作例2における電源ドロップ評価処理手順の一例を示すフローチャート(その2)である。
図24図24は、動作例2におけるモデル作成処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる設計方法、および設計プログラムの実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる設計方法の一実施例)
図1は、実施の形態にかかる設計方法の一実施例を示す説明図である。情報処理装置100は、集積回路の設計作業を支援するコンピュータである。集積回路は、例えば、LSIなどである。情報処理装置100は、例えば、LSIを設計するユーザにより利用される。情報処理装置100は、例えば、サーバやPC(Personal Computer)などである。
【0012】
従来、LSIは、より小さいチップ面積でより多くの機能を実現可能に、トランジスタを配置する密度を高め、セル面積を小さくするよう設計される傾向があり、設計者の想定通りに動作することが望まれる。トランジスタへの電源供給は、LSI外部端子からLSI内部各配線層に割り当てられた電源配線を通して行われる。セルは、例えば、トランジスタを含み、所定の機能を実現する回路である。
【0013】
ここで、トランジスタの動作時、トランジスタの動作電流は、電源配線により供給されるが、電源配線の抵抗による電源ドロップが生じ、LSI外部端子から印加した電圧よりも、トランジスタに印加される電圧が低下するという性質がある。電源ドロップは、電圧降下とも呼ばれる。この性質により、トランジスタに印加される電圧が、一定値未満になってしまうと、LSIが設計者の想定通りに動作しなくなることがある。
【0014】
このため、従来、LSIを設計する際には、基板領域上にセルの配置を行い、配線の配置を行った後に、LSIにおける電源ドロップが許容範囲内であるか否かを評価し、電源ドロップが許容範囲外になる電源ドロップエラーが発生するか否かの判定が行われる。電源ドロップエラーが発生すると判定すれば、セルの配置をやり直し、または、電源補強を行うことにより、電源ドロップが許容範囲内になるようにし、電源ドロップエラーが発生しないようにされる。
【0015】
このように、LSIを設計する際、電源ドロップエラーが発生すると、セルの配置を行う工程への手戻りが発生してしまい、集積回路を設計する作業にかかる作業負担の増大化を招くことになる。また、LSIの高集積化および高速化により消費電流が増大したり、配線抵抗が増大したりして、電源ドロップエラーが発生しないようにすることが難しくなる状況があり、集積回路を設計する作業にかかる作業負担の増大化を招くことになる。
【0016】
そこで、本実施の形態では、LSIを設計する際、基板領域上にセルを配置する前に、セルのサイズごとに、電源ドロップを許容範囲内に抑制するための、セル間の間隔についての配置制限を示す情報を生成しておくことができる設計方法について説明する。
【0017】
図1において、情報処理装置100は、いずれかの種類のセルを処理対象とする。以下の説明では、処理対象とするセルを「対象セル」と表記する場合がある。情報処理装置100は、対象セルの消費電流のデータを取得する。対象セルの消費電流は、例えば、対象セルの出力負荷、および、対象セルの動作周波数から求められる。出力負荷は、対象セル出力端子に接続された配線やセル入力端子の総容量である。
【0018】
(1-1)情報処理装置100は、セルサイズとセル間隔との組み合わせごとに、対象セルを敷き詰めたモデルに対して実施された、対象セルの消費電流に基づく電源網解析の結果を参照して、モデルにおける電源ドロップが許容範囲内であるか否かを評価する。許容範囲は、例えば、許容値以下を示す範囲である。
【0019】
図1の例では、情報処理装置100は、第1のセルサイズの対象セル101を、それぞれ異なるセル間隔で敷き詰めたモデル110,111などを作成して電源網解析を実施し、モデル110,111などにおける電源ドロップが許容範囲内であるか否かを評価する。また、情報処理装置100は、同様に、第2のセルサイズの対象セル102などを、それぞれ異なるセル間隔で敷き詰めたモデルを作成して電源網解析を実施し、作成したモデルにおける電源ドロップが許容範囲内であるか否かを判定してもよい。
【0020】
(1-2)情報処理装置100は、評価した結果を参照して、対象セルのセルサイズごとに、対象セルのセル間隔についての配置制限を示す情報を生成する。配置制限を示す情報は、例えば、基板領域上に対象セルを配置する際、対象セルと他セルとの間隔をどの程度大きくすれば、基板領域上の電源ドロップを許容範囲内に抑制可能であるのかを示す情報である。配置制限を示す情報は、具体的には、対象セルと他セルとの間隔についての下限値を示す情報である。
【0021】
図1の例では、情報処理装置100は、モデル110,111などにおける電源ドロップが許容範囲内であるか否かを評価した結果を参照して、第1のセルサイズに対応付けて、対象セル101のセル間隔についての配置制限を示す情報を生成する。情報処理装置100は、具体的には、モデル110,111などにおける電源ドロップが許容範囲内であるか否かを評価した結果を参照して、電源ドロップを許容範囲内に抑制可能にするための、対象セル101のセル間隔が取りうる下限値を示す情報を生成する。また、情報処理装置100は、同様に、第2のセルサイズに対応付けて、対象セル102のセル間隔についての配置制限を示す情報を生成してもよい。
【0022】
これにより、情報処理装置100は、ユーザが、対象セルのセルサイズごとに、電源ドロップエラーを発生させないための、対象セルのセル間隔についての配置制限を把握可能にすることができる。このため、ユーザは、LSIを設計する際、電源ドロップエラーを発生させずに、対象セルを配置する密度が向上するように、対象セルを配置していくことが可能になり、自身の想定通りに動作するLSIを設計することができる。
【0023】
また、ユーザは、対象セルを配置する工程で、電源ドロップエラーを発生させないようにすることができ、対象セルを配置する工程への手戻りの発生を回避することができ、作業負担の増大化を抑制することができる。また、ユーザは、LSIの高集積化および高速化により消費電流が増大したり、配線抵抗が増大したりする状況でも、電源ドロップエラーを発生させないようにすることができ、作業負担の増大化を抑制することができる。
【0024】
ここでは、情報処理装置100が、対象セルのセルサイズごとに、電源ドロップエラーを発生させないための、対象セルのセル間隔についての配置制限を示す情報を、ユーザに提供する場合について説明したが、これに限らない。例えば、情報処理装置100が、対象セルのセルサイズごとの、電源ドロップエラーを発生させないための、対象セルのセル間隔についての配置制限を示す情報を、LSIの設計に用いられるセルライブラリに登録してユーザに提供する場合があってもよい。
【0025】
ここでは、情報処理装置100が、1つの装置で、設計方法の一実施例を実現する場合について説明したが、これに限らない。例えば、複数の装置が協働して、設計方法の一実施例を実現する場合があってもよい。具体的には、対象セルを敷き詰めたモデルにおける電源ドロップが許容範囲内であるか否かを評価する第1の装置と、評価した結果を参照して対象セルのセル間隔についての配置制限を示す情報を生成する第2の装置とが協働する場合があってもよい。
【0026】
(情報処理装置100のハードウェア構成例)
次に、図2を用いて、情報処理装置100のハードウェア構成例について説明する。
【0027】
図2は、情報処理装置100のハードウェア構成例を示すブロック図である。図2において、情報処理装置100は、CPU(Central Processing Unit)201と、メモリ202と、ネットワークI/F(Interface)203と、記録媒体I/F204と、記録媒体205とを有する。また、各構成部は、バス200によってそれぞれ接続される。
【0028】
ここで、CPU201は、情報処理装置100の全体の制御を司る。メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU201のワークエリアとして使用される。メモリ202に記憶されるプログラムは、CPU201にロードされることで、コーディングされている処理をCPU201に実行させる。
【0029】
ネットワークI/F203は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F203は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F203は、例えば、モデムやLAN(Local Area Network)アダプタなどである。
【0030】
記録媒体I/F204は、CPU201の制御に従って記録媒体205に対するデータのリード/ライトを制御する。記録媒体I/F204は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体205は、記録媒体I/F204の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体205は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体205は、情報処理装置100から着脱可能であってもよい。
【0031】
情報処理装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F204や記録媒体205を複数有していてもよい。また、情報処理装置100は、記録媒体I/F204や記録媒体205を有していなくてもよい。
【0032】
(情報処理装置100の機能的構成例)
次に、図3を用いて、情報処理装置100の機能的構成例について説明する。
【0033】
図3は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部300と、取得部301と、評価部302と、作成部303と、設計部304と、出力部305とを含む。
【0034】
記憶部300は、例えば、図2に示したメモリ202や記録媒体205などの記憶領域によって実現される。以下では、記憶部300が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部300が、情報処理装置100とは異なる装置に含まれ、記憶部300の記憶内容が情報処理装置100から参照可能である場合があってもよい。
【0035】
取得部301~出力部305は、制御部の一例として機能する。取得部301~出力部305は、具体的には、例えば、図2に示したメモリ202や記録媒体205などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、ネットワークI/F203により、その機能を実現する。各機能部の処理結果は、例えば、図2に示したメモリ202や記録媒体205などの記憶領域に記憶される。
【0036】
記憶部300は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部300は、対象セルに関する情報を記憶する。対象セルは、例えば、トランジスタを含み、所定の機能を実現する回路である。記憶部300は、例えば、対象セルの出力負荷、および、対象セルの動作周波数を記憶する。記憶部300は、具体的には、対象セルの出力負荷が取りうる候補と、対象セルの動作周波数が取りうる候補とを特定可能にするリストを記憶する。
【0037】
記憶部300は、例えば、対象セルのセルサイズが取りうる候補と、対象セルのセル間隔が取りうる候補とを特定可能にする情報を記憶する。対象セルのセルサイズは、例えば、横方向のセルサイズと、縦方向のセルサイズとを含む。記憶部300は、具体的には、対象セルのセルサイズが取りうる初期値と、対象セルのセルサイズを変化させる変化幅と、対象セルのセル間隔が取りうる初期値と、対象セルのセル間隔を変化させる変化幅とを記憶する。
【0038】
記憶部300は、例えば、集積回路の設計に用いられるセルライブラリを記憶する。セルライブラリは、例えば、対象セルのレイアウトのデータ、および、対象セルの端子のデータなどを含む。記憶部300は、集積回路の設計に関する所定の制約条件を記憶する。
【0039】
制約条件は、例えば、対象セルの面積の上限値と、対象セルのセル間隔の横方向または縦方向の上限値と、対象セルの動作周波数の上限値と、対象セルの出力負荷の上限値となどを含む。制約条件は、集積回路の設計時の目的を含んでもよい。目的は、例えば、対象セルの面積を最小化することなどである。制約条件は、ユーザが、横方向にどの程度離してセルを配置したいのか、縦方向にどの程度離してセルを配置したいのか、および、セルをどの程度小さくしたいのかなどを、セルの配置に反映させるための情報である。
【0040】
記憶部300は、電源ドロップエラーを発生させずに済む消費電流が取りうる所定の大きさのデータを記憶する。所定の大きさは、例えば、所定の領域に隣接して敷き詰めた場合にも、所定の領域における電源ドロップが許容範囲内になる所定のセルの消費電流の大きさに基づいて、予めユーザにより設定される。所定の大きさは、具体的には、所定の領域に隣接して敷き詰めた場合にも、所定の領域における電源ドロップが許容範囲内になる所定のセルの消費電流の大きさよりも小さい大きさが設定される。記憶部300は、論理設計で生成されるネットリストを記憶する。記憶部300は、電源設計で生成される電源配線のデータを記憶する。
【0041】
取得部301は、各機能部の処理に用いられる各種情報を取得する。取得部301は、取得した各種情報を、記憶部300に記憶し、または、各機能部に出力する。また、取得部301は、記憶部300に記憶しておいた各種情報を、各機能部に出力してもよい。取得部301は、例えば、ユーザの操作入力に基づき、各種情報を取得する。取得部301は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
【0042】
取得部301は、対象セルに関する情報を取得する。取得部301は、例えば、対象セルの出力負荷、および、対象セルの動作周波数を取得する。取得部301は、具体的には、対象セルの出力負荷が取りうる候補と、対象セルの動作周波数が取りうる候補とを特定可能にするリストを取得する。
【0043】
取得部301は、例えば、対象セルのセルサイズが取りうる候補と、対象セルのセル間隔が取りうる候補とを特定可能にする情報を取得する。取得部301は、具体的には、対象セルのセルサイズが取りうる初期値と、対象セルのセルサイズを変化させる変化幅と、対象セルのセル間隔が取りうる初期値と、対象セルのセル間隔を変化させる変化幅とを取得する。
【0044】
取得部301は、例えば、集積回路の設計に用いられるセルライブラリを取得する。取得部301は、設計に関する所定の制約条件を取得する。取得部301は、電源ドロップエラーを発生させずに済む消費電流が取りうる所定の大きさのデータを取得する。取得部301は、論理設計で生成されるネットリストを取得する。取得部301は、電源設計で生成される電源配線のデータを取得する。
【0045】
評価部302は、対象セルを敷き詰めたモデルにおける電源ドロップが許容範囲内であるか否かを評価する。評価部302は、例えば、対象セルの出力負荷、および、対象セルの動作周波数から、対象セルの消費電流を求める。そして、評価部302は、対象セルの消費電流に基づいて、セルサイズとセル間隔との組み合わせごとに、対象セルを敷き詰めたモデルを作成して電源網解析を実施し、作成したモデルにおける電源ドロップが許容範囲内であるか否かを評価する。電源網解析は、電源ドロップの値を算出する。
【0046】
評価部302は、具体的には、記憶部300を参照して、対象セルの出力負荷と、対象セルの動作周波数との組み合わせごとに、対象セルの消費電流を求める。次に、評価部302は、記憶部300を参照して、対象セルのセルサイズと対象セルのセル間隔とを順に変化させつつ、対象セルを敷き詰めたモデルを作成する。そして、評価部302は、作成したモデルに対して、求めた対象セルの消費電流に基づく電源網解析を実施した結果を参照して、作成したモデルにおける電源ドロップが許容範囲内であるか否かを評価する。
【0047】
対象セルを敷き詰めたモデルにおける電源ドロップが許容範囲内であるか否かを評価する一例は、具体的には、図4図9を用いて情報処理装置100の動作例1として後述する。これにより、評価部302は、対象セルのセルサイズごとに、対象セルと他セルとのセル間隔がどの程度大きければ、電源ドロップを許容範囲内にすることができるかを判定可能にすることができる。
【0048】
評価部302は、対象セルを敷き詰め、かつ、対象セル間に所定の大きさの消費電流を示す電流源を接続したモデルにおける電源ドロップが許容範囲内であるか否かを評価してもよい。評価部302は、例えば、対象セルの消費電流に基づいて、セルサイズとセル間隔との組み合わせごとに、対象セルを敷き詰め、かつ、対象セル間に所定の大きさの消費電流を示す電流源を接続したモデルを作成して電源網解析を実施する。そして、評価部302は、電源網解析を実施した結果を参照して、作成したモデルにおける電源ドロップが許容範囲内であるか否かを評価する。
【0049】
評価部302は、具体的には、記憶部300を参照して、対象セルの出力負荷と、対象セルの動作周波数との組み合わせにおける対象セルの消費電流を求める。次に、評価部302は、記憶部300を参照して、対象セルのセルサイズと対象セルのセル間隔とを順に変化させつつ、対象セルを敷き詰め、かつ、対象セル間に電流源を接続したモデルを作成する。そして、評価部302は、作成したモデルに対して、求めた対象セルの消費電流に基づく電源網解析を実施した結果を参照して、作成したモデルにおける電源ドロップが許容範囲内であるか否かを評価する。
【0050】
対象セルを敷き詰め、かつ、対象セル間に電流源を接続したモデルにおける電源ドロップが許容範囲内であるか否かを評価する一例は、具体的には、図18図21を用いて情報処理装置100の動作例2として後述する。これにより、評価部302は、対象セルのセルサイズごとに、対象セルと消費電流が所定の大きさを超える他セルとのセル間隔がどの程度大きければ、電源ドロップを許容範囲内にすることができるかを判定可能にすることができる。
【0051】
作成部303は、評価部302が評価した結果を参照して、対象セルのセルサイズごとに、対象セルのセル間隔についての配置制限を示す情報を生成する。配置制限を示す情報は、例えば、基板領域上に対象セルを配置する際、対象セルと他セルとの間隔をどの程度大きくすれば、基板領域上の電源ドロップを許容範囲内に抑制可能であるのかを示す情報である。配置制限を示す情報は、具体的には、対象セルと他セルとの間隔についての下限値を示す情報である。
【0052】
作成部303は、例えば、記憶部300を参照して、対象セルのセルサイズごとに、電源ドロップを許容範囲内に抑制可能にするための、対象セルのセル間隔が取りうる下限値を示す情報を生成する。これにより、作成部303は、対象セルのセルサイズごとに、対象セルと消費電流が所定の大きさを超える他セルとのセル間隔がどの程度大きければ、電源ドロップを許容範囲内に抑制可能であるかを、ユーザが利用可能にすることができる。
【0053】
作成部303は、さらに、対象セルのセル間隔についての配置制限を示す情報を、セルライブラリに登録してもよい。作成部303は、例えば、評価部302が評価した結果を参照して、記憶部300に記憶された所定の制約条件に基づいて、対象セルのセルサイズを決定する。そして、作成部303は、決定した対象セルのセルサイズに対応する、対象セルのセル間隔についての配置制限を示す情報を、セルライブラリに登録する。
【0054】
作成部303は、具体的には、電源ドロップが許容範囲内になり、所定の制約条件を満たし、対象セルの面積が最小になる対象セルのセルサイズを決定する。そして、作成部303は、決定した対象セルのセルサイズに対応する、対象セルのセル間隔についての配置制限を示す情報を、記憶部300に記憶されたセルライブラリに登録する。
【0055】
セルライブラリに登録する一例は、具体的には、図4図9を用いて情報処理装置100の動作例1として後述する。これにより、作成部303は、対象セルと消費電流が所定の大きさを超える他セルとのセル間隔がどの程度大きければ、電源ドロップを許容範囲内に抑制可能であるかを、ユーザがLSIを設計する際に、セルライブラリとして利用させることができる。
【0056】
設計部304は、セルライブラリを参照して、集積回路の設計において、基板領域上に配置する対象セルが、対象セルのセル間隔についての配置制限を満たすか否かを判定する。設計部304は、例えば、セルライブラリを参照して、集積回路の設計において、ユーザの操作入力に基づき対象セルを基板領域上に配置する際に、配置しようとする対象セルと基板領域上に配置済みの他セルとのセル間隔が、配置制限を満たすか否かを判定する。
【0057】
また、設計部304は、例えば、セルライブラリを参照して、集積回路の設計において、対象セル以外の他セルを基板領域上に配置する際に、基板領域上に配置済みの対象セルと配置しようとする他セルとのセル間隔が、配置制限を満たすか否かを判定してもよい。
【0058】
配置制限を満たすか否かを判定する一例は、具体的には、図4図9を用いて情報処理装置100の動作例1として後述する。これにより、設計部304は、ユーザがLSIを設計する際、電源ドロップが許容範囲内になるようにセルを配置させることができ、手戻りの防止し、作業負担の増大化を抑制することができる。
【0059】
出力部305は、いずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F203による外部装置への送信、または、メモリ202や記録媒体205などの記憶領域への記憶である。これにより、出力部305は、各機能部の処理結果をユーザに通知可能にし、情報処理装置100の利便性の向上を図ることができる。
【0060】
出力部305は、例えば、セルライブラリを出力する。これにより、出力部305は、セルライブラリをユーザが参照可能にし、電源ドロップが許容範囲内になるようにするための、セル間隔についての配置制限を把握可能にすることができる。
【0061】
出力部305は、例えば、配置制限を満たすか否かを判定した結果を出力してもよい。これにより、出力部305は、ユーザがLSIを設計する際、所望の位置にセルを配置すると、電源ドロップが許容範囲内になるのか否かを把握させ、セルを配置しやすくさせることができる。
【0062】
(情報処理装置100の動作例1)
次に、図4図10を用いて、情報処理装置100の動作例1について説明する。動作例1は、対象セルを基準とする領域であり、対象セル以外の他セルを配置することを禁止する、図4に後述する配置禁止領域410を設定する動作例である。ここで、図4を用いて、配置禁止領域410の一例について説明する。
【0063】
図4は、配置禁止領域410の一例を示す説明図である。配置禁止領域410は、対象セル枠400を基準とし、対象セル枠400から縦方向にEyだけ外側までの領域であり、対象セル枠400から横方向にExだけ外側までの領域である。
【0064】
動作例1では、情報処理装置100は、後述する対象セル設計処理により、対象セルのセルサイズを決定し、対象セルのセルサイズに対応付けて配置禁止領域410を設定し、セルライブラリを作成し、配置ルールを作成する。そして、情報処理装置100は、配置ルールに従って、セル配置制御処理により、セルの配置を制御し、電源ドロップエラーを回避可能にする。情報処理装置100の動作例1は、例えば、図11に後述する全体処理により実現される。
【0065】
≪対象セル設計処理の一例≫
次に、図5図9を用いて、上述した対象セル設計処理の一例について説明する。情報処理装置100は、セルに所望の論理に従って、セルサイズが最小となるように、セルのレイアウトを仮設計し、セルのレイアウトのデータを生成する。ここで、情報処理装置100は、仮設計したセルのセルサイズを、最小セルサイズSxn,Synとして設定する。
【0066】
次に、情報処理装置100は、Freq,Cloadを変更しながら、セルのspiceシミュレーションを実施し、Freq,Cloadをパラメータとするセルの消費電流Icell(Freq,Cload)のデータを生成する。セルの消費電流のデータは、例えば、Freq,Cloadをパラメータとし、セルの消費電流を算出するための数式である。セルの消費電流のデータは、例えば、Freq,Cloadに対応付けてセルの消費電流を記憶するテーブルであってもよい。また、情報処理装置100は、電源配線のデータを生成する。
【0067】
そして、情報処理装置100は、最小セルサイズSxn,Synと、Icell(Freq,Cload)とを入力として、下記(2-1)~下記(2-9)の通りに動作を実施する。これによれば、情報処理装置100は、最小セルサイズSxn,Synから、予め設定された計算対象範囲内でセルサイズを変更しながら、セルサイズごとにEx,Eyを算出することになる。セルサイズごとにEx,Eyを算出する動作は、例えば、図12図15に後述する各種処理により実現される。
【0068】
(2-1)情報処理装置100は、初期設定を実施する。情報処理装置100は、例えば、Freq,Cloadと、モデルを作成する際に用いられるセル間の横方向配置ピッチPxおよび縦方向配置ピッチPyとの計算対象範囲を設定する。情報処理装置100は、例えば、Px,Pyを変更する際に用いられる、Px,Pyの増加分を設定する。情報処理装置100は、例えば、計算対象範囲内で、セルライブラリに登録するFreq,Cloadの組み合わせのリストを作成する。
【0069】
(2-2)情報処理装置100は、セルライブラリに登録するFreq,Cloadの組み合わせのリストに基づいて、Freq,Cloadの初期値を設定する。
【0070】
(2-3)情報処理装置100は、ピッチの初期値として、Px=Sx,Py=Syを設定する。Px=Sx+Ex,Py=Sy+Eyである。
【0071】
(2-4)情報処理装置100は、電源配線のデータを参照して、横方向セルサイズSx,縦方向セルサイズSyの対象セルを敷き詰めた、図5に後述するモデル500を作成する。ここで、図5を用いて、モデル500の一例について説明する。
【0072】
図5は、モデル500の一例を示す説明図である。モデル500は、対象セルを、縦横に、設定されたピッチ(Px,Py)で配置して作成されたモデルである。モデル500は、具体的には、対象セルの配置場所を示す対象セル枠501を、縦横に、設定されたピッチ(Px,Py)で配置して作成されたモデルである。モデル500は、設定されたピッチと同じ配置禁止領域を設定した場合の、最悪の電源ノイズを評価可能であり、電源ドロップが最大でどの程度になり、電源ドロップエラーが発生する可能性があるか否かを評価可能であるモデルである。
【0073】
(2-5)情報処理装置100は、下記(a)~下記(c)の通りに動作を実施し、作成したモデル500における対象セルの電源ドロップが許容値以下であるか否かを評価する。
【0074】
(a)情報処理装置100は、モデル500内の電源配線を抵抗網に置き換える。
【0075】
(b)情報処理装置100は、モデル500内の対象セルのすべてに、Freq,Cloadに対応する消費電流Icell(Freq,Cload)を流す。消費電流Icell(Freq,Cload)は、例えば、生成したセルの消費電流のデータに基づいて求められる。
【0076】
情報処理装置100は、例えば、セルの消費電流のデータが示す数式に、Freq,Cloadを代入することにより、消費電流Icell(Freq,Cload)を求める。情報処理装置100は、例えば、セルの消費電流のデータが示すテーブルから、Freq,Cloadに対応する消費電流Icell(Freq,Cload)を取得することにより、消費電流Icell(Freq,Cload)を求めてもよい。ここで、図6を用いて、対象セルに消費電流を流す一例について説明する。
【0077】
図6は、対象セルに消費電流を流す一例を示す説明図である。図6において、情報処理装置100は、例えば、対象セル枠501内を、横方向サイズSxiかつ縦方向サイズSyiの電流源接続単位枠に分割し、電流源を接続することにより、対象セル内のトランジスタに電流を流すことを、電流源により示すようにする。分割数n=(Sx×Sy)/(Sxi×Syi)である。図6に示すように、セルサイズが2倍になれば、電流密度が1/2倍になることになる。このため、セルサイズを大きくするほど、電源ドロップエラーを回避しやすくなるという性質がある。
【0078】
(c)情報処理装置100は、(a)および(b)により、モデル500から変換された、図7に後述するモデル700に対して、電源網解析を実施することにより、対象セルの電源ドロップを算出する。ここで、図7を用いて、モデル700に対して電源網解析を実施する一例について説明する。
【0079】
図7は、モデル700に対して電源網解析を実施する一例を示す説明図である。図7において、情報処理装置100は、配線上層のVDD,VSS供給ポートから、対象セルの電源端子までの電源ドロップΔVDD,ΔVSSを算出し、対象セルの電源ドロップΔVDD+ΔVSSを算出する。
【0080】
(2-6)情報処理装置100は、対象セルの電源ドロップが許容値以下である場合には、Px,Pyを配置ピッチリストに追加し、Px=Sxとして、Pyを、設定された増加幅だけ増加させる。許容値は、対象セルのトランジスタに印加される電圧を所定値以上にするための、電源ドロップの最大値である。例えば、モデル700全体にかかる電圧Eから、対象セルの電源ドロップΔVDD+ΔVSSを減算して算出される、対象セルのトランジスタに印加される電圧を、所定値ε以上にするための、電源ドロップの最大値E-εである。一方で、情報処理装置100は、対象セルの電源ドロップが許容値を超える場合には、Pxを、設定された増加幅だけ増加させる。情報処理装置100は、Pxを増加させた結果、Pxが計算対象範囲を超えた場合には、Px=Sxとして、Pyを、設定された増加幅だけ増加させる。
【0081】
(2-7)情報処理装置100は、Pyが計算対象範囲を超えない間は、(2-4)~(2-6)の動作を繰り返し実施する。情報処理装置100は、(2-4)~(2-6)の動作を繰り返し実施することにより、様々なセルサイズにおいて、様々なピッチ(Px,Py)で、電源ドロップが許容値以下であるか否かを評価することになる。ここで、図8を用いて、様々なピッチ(Px,Py)で、電源ドロップが許容値以下であるか否かを評価する一例について説明する。
【0082】
図8は、様々なピッチで、電源ドロップが許容値以下であるか否かを評価する一例を示す説明図である。図8において、Pxの増加幅dx,Pyの増加幅dyとする。情報処理装置100は、Px=Sx,Py=Syのモデル801において電源ドロップ>許容値であると評価する。情報処理装置100は、電源ドロップ>許容値であるため、Pyを増加させず、Px=Sx+dx,Py=Syのモデル802において電源ドロップ>許容値であると評価する。情報処理装置100は、電源ドロップ>許容値であるため、Pyを増加させず、Px=Sx+n・dx,Py=Syのモデル803において電源ドロップ≦許容値であると評価する。
【0083】
情報処理装置100は、電源ドロップ≦許容値であるため、Pxを初期値に戻しPyを増加させ、Px=Sx,Py=Sy+dyのモデル804において電源ドロップ>許容値であると評価する。情報処理装置100は、電源ドロップ>許容値であるため、Pyを増加させず、Px=Sx+dy,Py=Sy+dyのモデル805において電源ドロップ>許容値であると評価する。このように、情報処理装置100は、(2-4)~(2-6)の動作を繰り返し実施することにより、様々なピッチ(Px,Py)で、電源ドロップが許容値以下であるか否かを評価する。
【0084】
(2-8)情報処理装置100は、配置ピッチリストのPx,PyからPx×Pyが最小となるPx,Pyに対応するセル間隔Ex,Eyを算出し、算出したEx,Eyにより、対象セルの配置禁止領域を設定する。Exは、横方向のセル間隔である。Eyは、縦方向のセル間隔である。
【0085】
(2-9)情報処理装置100は、出力負荷Cload、動作周波数Freqを変更して(2-3)~(2-9)の動作を繰り返し実施する。そして、情報処理装置100は、セルサイズごとに{Ex,Ey}(Sx,Sy,Freq,Cload)の組み合わせを示すデータを生成する。
【0086】
そして、情報処理装置100は、セルサイズごとの{Ex,Ey}(Sx,Sy,Freq,Cload)の組み合わせを示すデータに基づいて、ユーザにより予め設定された制約条件に従って、最適セルサイズを決定する。情報処理装置100は、決定した最適セルサイズSx,Syで、対象セルのレイアウトのデータを生成し、セルライブラリを作成する。また、情報処理装置100は、Ex,Eyを、Cload,Freqに対応付けて、セルライブラリに登録する。ここで、図9を用いて、Ex,Eyを、Cload,Freqに対応付けて、セルライブラリ900に登録する一例について説明する。
【0087】
図9は、セルライブラリ900に登録する一例を示す説明図である。情報処理装置100は、Ex,Eyを、Cload,Freqに対応付けて、セルライブラリ900に登録する。情報処理装置100は、例えば、「Cload=10,Freq=1:Ex=2,Ey=3」、「Cload=10,Freq=1.5:Ex=3,Ey=2」、・・・、「Cload=100,Freq=4:Ex=10,Ey=8」などを登録する。
【0088】
≪セル配置制御処理の一例≫
次に、図10を用いて、上述したセル配置制御処理の一例について説明する。
【0089】
図10は、動作例1におけるセル配置制御処理の一例を示す説明図である。情報処理装置100は、チップ設計の段階において、セルライブラリに登録されたEx,Eyを利用して、セル配置を制限する。
【0090】
情報処理装置100は、例えば、配置済みセル、および、配置しようとするセルについて、実際の出力負荷Cloadr,実効動作周波数Freqrをそれぞれ下回らない最小のCload,動作周波数Freqを特定する。Cload≧Cloadr,Freq≧Freqrである。そして、情報処理装置100は、特定したCload,Freqに対応付けられたEx,Eyを、セルライブラリから読み出し、配置済みセル、および、配置しようとするセルについての配置禁止領域を設定する。
【0091】
情報処理装置100は、配置しようとするセルが、配置済みの他セルの配置禁止領域に重なる場合、または、配置しようとするセルの配置禁止領域が、配置済みの他セルと重なる場合、配置不可能として、配置不可能をユーザに通知する。また、異なるセルの配置禁止領域同士は、重なってもよい。
【0092】
図10の例では、情報処理装置100は、配置状況1000では、セル1とセル2との配置禁止領域が重ならないため、セル1とセル2とを配置可能であると判定する。また、情報処理装置100は、配置状況1010では、セル1とセル2との配置禁止領域同士が重なるが、セル1とセル2の配置禁止領域とは重ならず、セル1の配置禁止領域とセル2とは重ならないため、セル1とセル2とを配置可能であると判定する。
【0093】
また、情報処理装置100は、配置状況1020では、セル1とセル2の配置禁止領域が重なるため、セル1とセル2とを配置状況1020のようには配置不可能であると判定する。これにより、情報処理装置100は、チップ設計の段階において、チップ設計よりも後段において電源ドロップエラーが発生しないように、ユーザにセルを配置させることができる。このため、情報処理装置100は、手戻りの発生を防止することができ、ユーザの作業負担の増大化を抑制することができる。
【0094】
(動作例1における全体処理手順)
次に、図11を用いて、情報処理装置100が実行する、動作例1における全体処理手順の一例について説明する。全体処理は、例えば、図2に示したCPU201と、メモリ202や記録媒体205などの記憶領域と、ネットワークI/F203とによって実現される。
【0095】
図11は、動作例1における全体処理手順の一例を示すフローチャートである。図11において、情報処理装置100は、ユーザの操作入力に応じた電源設計を実施し、電源配線のデータ1111を生成する(ステップS1101)。
【0096】
また、情報処理装置100は、ユーザの操作入力に応じた論理設計を実施し、ネットリスト1112を生成する(ステップS1102)。また、情報処理装置100は、図12に後述するルール作成処理を実行し、セルライブラリ1113を生成し、セルライブラリ1113に基づいて、配置ルール1114を生成する(ステップS1103)。
【0097】
次に、情報処理装置100は、電源配線のデータ1111と、ネットリスト1112と、配置ルール1114とに基づいて、ユーザの操作入力に応じたセル配置を実施し、セル配置データ1115を生成する(ステップS1104)。そして、情報処理装置100は、ユーザの操作入力に応じた配線配置を実施し、セル間配線データ1116を生成する(ステップS1105)。
【0098】
次に、情報処理装置100は、セル配置データ1115とセル間配線データ1116とに基づいて、チップにおける電源ドロップが許容範囲内であるか否かを評価する(ステップS1106)。そして、情報処理装置100は、全体処理を終了する。これにより、情報処理装置100は、電源ドロップが許容範囲内であるLSIなどのチップを設計することができる。
【0099】
ここでは、情報処理装置100が、チップにおける電源ドロップが許容範囲内であるか否かを評価する場合について説明したが、これに限らない。例えば、情報処理装置100が、チップにおける電源ドロップが許容範囲内であるか否かの評価を省略する場合があってもよい。これによれば、情報処理装置100は、処理量の低減化を図ることができる。
【0100】
(動作例1におけるルール作成処理手順)
次に、図12および図13を用いて、情報処理装置100が実行する、動作例1におけるルール作成処理手順の一例について説明する。ルール作成処理は、例えば、図2に示したCPU201と、メモリ202や記録媒体205などの記憶領域と、ネットワークI/F203とによって実現される。
【0101】
図12および図13は、動作例1におけるルール作成処理手順の一例を示すフローチャートである。図12において、情報処理装置100は、動作周波数および出力負荷のデータ1211に基づいて、シミュレーションを実施し、対象セルの消費電流のデータ1212を生成する(ステップS1201)。
【0102】
次に、情報処理装置100は、各種データに基づいて、図14に後述するセルサイズ決定処理を実行する(ステップS1202)。各種データは、例えば、電源配線のデータ1111と、対象セルの消費電流のデータ1212と、制約条件のデータ1213と、最小セルサイズのデータ1214と、対象セル間の微小消費電流のデータ1215とである。そして、情報処理装置100は、図13のステップS1301の処理に移行する。
【0103】
図13において、情報処理装置100は、最適セルサイズに対応付けて配置禁止領域のデータ1421を記憶する(ステップS1301)。配置禁止領域のデータ1421は、図14に後述するセルサイズ決定処理により生成される。
【0104】
次に、情報処理装置100は、最適セルサイズについて、セルライブラリ1113を生成する(ステップS1302)。そして、情報処理装置100は、論理設計で生成したネットリスト1112で定めた動作周波数および出力負荷のデータ1311を参照して、セルライブラリ1113に基づいて、動作周波数および出力負荷に対して配置禁止領域を探索する(ステップS1303)。
【0105】
次に、情報処理装置100は、動作周波数および出力負荷を満たすか否かを判定する(ステップS1304)。ここで、満たさない場合(ステップS1304:No)、情報処理装置100は、ステップS1303の処理に戻る。一方で、満たす場合(ステップS1304:Yes)、情報処理装置100は、ステップS1305の処理に移行する。
【0106】
ステップS1305では、情報処理装置100は、配置ルール1114を生成する(ステップS1305)。そして、情報処理装置100は、ルール作成処理を終了する。これにより、情報処理装置100は、配置ルール1114により、電源ドロップが許容範囲内になるようにセルを配置していくことを可能にすることができる。
【0107】
(動作例1におけるセルサイズ決定処理手順)
次に、図14を用いて、情報処理装置100が実行する、動作例1におけるセルサイズ決定処理手順の一例について説明する。セルサイズ決定処理は、例えば、図2に示したCPU201と、メモリ202や記録媒体205などの記憶領域と、ネットワークI/F203とによって実現される。
【0108】
図14は、動作例1におけるセルサイズ決定処理手順の一例を示すフローチャートである。図14において、情報処理装置100は、セルサイズSx,Syにセルサイズ初期値Sxn,Synを設定する(ステップS1401)。
【0109】
次に、情報処理装置100は、図15および図16に後述する電源ドロップ評価処理を実行する(ステップS1402)。そして、情報処理装置100は、Sx,Sy,Freq,Cloadに対応付けてEx,Eyを出力する(ステップS1403)。
【0110】
次に、情報処理装置100は、Ex,Eyの少なくともいずれか一方が正の値となるFreq,Cloadの組み合わせが存在するか否かを判定する(ステップS1404)。ここで、組み合わせが存在しない場合(ステップS1404:No)、情報処理装置100は、ステップS1409の処理に移行する。一方で、組み合わせが存在する場合(ステップS1404:Yes)、情報処理装置100は、ステップS1405の処理に移行する。
【0111】
ステップS1405では、情報処理装置100は、Sxを所定量増加させる(ステップS1405)。次に、情報処理装置100は、Sxが計算対象範囲外であるか否かを判定する(ステップS1406)。ここで、計算対象範囲外ではない場合(ステップS1406:No)、情報処理装置100は、ステップS1402の処理に戻る。一方で、計算対象範囲外である場合(ステップS1406:Yes)、情報処理装置100は、ステップS1407の処理に移行する。
【0112】
ステップS1407では、情報処理装置100は、Sx=SxnとしてSyを所定量増加させる(ステップS1407)。次に、情報処理装置100は、Syが計算対象範囲外であるか否かを判定する(ステップS1408)。ここで、計算対象範囲外ではない場合(ステップS1408:No)、情報処理装置100は、ステップS1402の処理に戻る。一方で、計算対象範囲外である場合(ステップS1408:Yes)、情報処理装置100は、ステップS1410の処理に移行する。
【0113】
ステップS1409では、情報処理装置100は、Sx=Sxnであるか否かを判定する(ステップS1409)。ここで、Sx=Sxnではない場合(ステップS1409:No)、情報処理装置100は、ステップS1407の処理に移行する。一方で、Sx=Sxnである場合(ステップS1409:Yes)、情報処理装置100は、ステップS1410の処理に移行する。
【0114】
ステップS1410では、情報処理装置100は、セルサイズごとの配置禁止領域のデータ1421を生成する(ステップS1410)。次に、情報処理装置100は、制約条件のデータ1213と、セルサイズごとの配置禁止領域のデータ1421とに基づいて、最適セルサイズSx,Syを決定する(ステップS1411)。
【0115】
そして、情報処理装置100は、セルサイズ決定処理を終了する。これにより、情報処理装置100は、電源ドロップが許容範囲内にすることができ、セル面積が最小になり、かつ、制約条件を満たするような最適セルサイズを決定することができ、LSIなどのチップを設計しやすくすることができる。
【0116】
(動作例1における電源ドロップ評価処理手順)
次に、図15および図16を用いて、情報処理装置100が実行する、動作例1における電源ドロップ評価処理手順の一例について説明する。電源ドロップ評価処理は、例えば、図2に示したCPU201と、メモリ202や記録媒体205などの記憶領域と、ネットワークI/F203とによって実現される。
【0117】
図15および図16は、動作例1における電源ドロップ評価処理手順の一例を示すフローチャートである。図15において、情報処理装置100は、初期設定を実施する(ステップS1501)。初期設定は、Freq,Cload,Px,Pyなどの計算対象範囲の設定、Px,Pyの増加分の設定、および、Freq,Cloadの組み合わせのリストの作成などである。
【0118】
次に、情報処理装置100は、Cload,Freqの初期値を設定する(ステップS1502)。そして、情報処理装置100は、対象セルの消費電流のデータ1212に基づいて、Cload,Freqに対するIcellを設定する(ステップS1503)。
【0119】
次に、情報処理装置100は、ピッチの初期値としてPx=Sx,Py=Syを設定する(ステップS1504)。そして、情報処理装置100は、Icell(Cload,Freq)と、Pxと、Sxと、Pyと、Syとを入力として、図17に後述するモデル作成処理を実行し、敷き詰めモデルを作成する(ステップS1505)。
【0120】
次に、情報処理装置100は、電源網解析を実施し、作成した敷き詰めモデルの電源ドロップ=ΔVDD+ΔVSSを算出する(ステップS1506)。そして、情報処理装置100は、電源ドロップ≦許容値であるか否かを判定する(ステップS1507)。
【0121】
ここで、電源ドロップ≦許容値である場合(ステップS1507:Yes)、情報処理装置100は、ステップS1508の処理に移行する。一方で、電源ドロップ≦許容値ではない場合(ステップS1507:No)、情報処理装置100は、ステップS1509の処理に移行する。
【0122】
ステップS1508では、情報処理装置100は、Px,Pyの組み合わせを、配置ピッチリストに追加する(ステップS1508)。そして、情報処理装置100は、ステップS1511の処理に移行する。
【0123】
ステップS1509では、情報処理装置100は、Pxを所定量増加させる(ステップS1509)。次に、情報処理装置100は、Pxが計算対象範囲外であるか否かを判定する(ステップS1510)。ここで、計算対象範囲外ではない場合(ステップS1510:No)、情報処理装置100は、ステップS1505の処理に戻る。一方で、計算対象範囲外である場合(ステップS1510:Yes)、情報処理装置100は、ステップS1511の処理に移行する。
【0124】
ステップS1511では、情報処理装置100は、Px=SxとしてPyを所定量増加させる(ステップS1511)。次に、情報処理装置100は、Pyが計算対象範囲外であるか否かを判定する(ステップS1512)。ここで、計算対象範囲外ではない場合(ステップS1512:No)、情報処理装置100は、ステップS1505の処理に戻る。一方で、計算対象範囲外である場合(ステップS1512:Yes)、情報処理装置100は、図16のステップS1601の処理に移行する。
【0125】
図16において、情報処理装置100は、配置ピッチリストのPx,Pyの組み合わせのうち、Px×Pyが最小になるPx,Pyの組み合わせに基づいて、Ex,Eyを算出する(ステップS1601)。
【0126】
次に、情報処理装置100は、Cload,Freqに対応付けてEx,Eyを出力する(ステップS1602)。そして、情報処理装置100は、Cload,Freqのリストに基づいて、Cload,Freqを次の値に変更する(ステップS1603)。
【0127】
次に、情報処理装置100は、Cload,Freqのリストのすべての値を処理済みであるか否かを判定する(ステップS1604)。ここで、未処理の値がある場合(ステップS1604:No)、情報処理装置は、図15のステップS1503の処理に戻る。一方で、すべての値を処理済みである場合(ステップS1604:Yes)、情報処理装置100は、電源ドロップ評価処理を終了する。これにより、情報処理装置100は、Cload,Freqに対応付けて、電源ドロップエラーを回避可能なEx,Eyを記憶しておくことができる。
【0128】
(動作例1におけるモデル作成処理手順)
次に、図17を用いて、情報処理装置100が実行する、動作例1におけるモデル作成処理手順の一例について説明する。モデル作成処理は、例えば、図2に示したCPU201と、メモリ202や記録媒体205などの記憶領域と、ネットワークI/F203とによって実現される。
【0129】
図17は、動作例1におけるモデル作成処理手順の一例を示すフローチャートである。図17において、情報処理装置100は、Px,Pyに基づいて対象セル枠を配置する(ステップS1701)。
【0130】
次に、情報処理装置100は、対象セル枠内を、横方向サイズSxiかつ縦方向サイズSyiの電流源接続単位枠に分割し、分割数n=(Sx×Sy)/(Sxi×Syi)を設定する(ステップS1702)。そして、情報処理装置100は、対象セル枠外を、同様に、電流源接続単位枠に分割する(ステップS1703)。
【0131】
次に、情報処理装置100は、対象セル枠内の電流源接続単位枠に電流値Icell/nの電流源を接続する(ステップS1704)。そして、情報処理装置100は、電源配線網を抵抗網に置換する(ステップS1705)。その後、情報処理装置100は、モデル作成処理を終了する。これにより、情報処理装置100は、電源ドロップが許容範囲内であるか否かを評価するためのモデルを作成することができる。
【0132】
(情報処理装置100の動作例2)
次に、図18図21を用いて、情報処理装置100の動作例2について説明する。上述した動作例1は、対象セル以外の他セルを配置することを禁止する配置禁止領域410を設定する動作例である。
【0133】
これに対し、動作例2は、対象セル以外の他セルのうち、単位面積あたりの消費電流の大きさがIspcを超える他セルを配置することを禁止する配置禁止領域410を設定する動作例である。換言すれば、動作例2は、配置禁止領域410に、対象セル以外の他セルのうち、単位面積あたりの消費電流の大きさがIspc以下の他セルについては配置することを許可する。これにより、動作例2は、チップ面積の低減化を図ることができる。
【0134】
≪対象セル設計処理の一例≫
次に、図18図20を用いて、動作例2における対象セル設計処理の一例について説明する。情報処理装置100は、セルに所望の論理に従って、セルサイズが最小となるように、セルのレイアウトを仮設計し、セルのレイアウトのデータを生成する。ここで、情報処理装置100は、仮設計したセルのセルサイズを、最小セルサイズSxn,Synとして設定する。
【0135】
次に、情報処理装置100は、Freq,Cloadを変更しながら、セルのspiceシミュレーションを実施し、Freq,Cloadをパラメータとするセルの消費電流Icell(Freq,Cload)のデータを求める。セルの消費電流のデータは、例えば、Freq,Cloadをパラメータとし、セルの消費電流を算出するための数式である。セルの消費電流のデータは、例えば、Freq,Cloadに対応付けてセルの消費電流を記憶するテーブルであってもよい。
【0136】
また、情報処理装置100は、単位面積あたりの消費電流の大きさが、所定の大きさIspcで、基板領域上に一様に消費電流が存在する場合に、基板領域における電源ドロップが許容値以下となるように、電源配線のデータを生成する。
【0137】
そして、情報処理装置100は、最小セルサイズSxn,Synと、Icell(Freq,Cload)とを入力として、下記(3-1)~下記(3-9)の通りに動作を実施する。これによれば、情報処理装置100は、最小セルサイズSxn,Synから、予め設定された計算対象範囲内でセルサイズを変更しながら、セルサイズごとにEx,Eyを算出することになる。
【0138】
(3-1)情報処理装置100は、初期設定を実施する。情報処理装置100は、例えば、Freq,Cloadと、モデルを作成する際に用いられるセル間の横方向配置ピッチPxおよび縦方向配置ピッチPyとの計算対象範囲を設定する。情報処理装置100は、例えば、Px,Pyを変更する際に用いられる、Px,Pyの増加分を設定する。情報処理装置100は、例えば、計算対象範囲内で、セルライブラリに登録するFreq,Cloadの組み合わせのリストを作成する。
【0139】
(3-2)情報処理装置100は、セルライブラリに登録するFreq,Cloadの組み合わせのリストに基づいて、Freq,Cloadの初期値を設定する。
【0140】
(3-3)情報処理装置100は、ピッチの初期値として、Px=Sx,Py=Syを設定する。Px=Sx+Ex,Py=Sy+Eyである。
【0141】
(3-4)情報処理装置100は、電源配線のデータを参照して、横方向セルサイズSx,縦方向セルサイズSyの対象セルを敷き詰め、対象セル間の領域には単位面積あたり消費電流Ispcを設定した、図18に後述するモデル1800を作成する。ここで、図18を用いて、モデル1800の一例について説明する。
【0142】
図18は、モデル1800の一例を示す説明図である。モデル1800は、対象セルを、縦横に、設定されたピッチ(Px,Py)で配置し、対象セル間の領域に、単位面積あたり消費電流Ispcを設定して作成されたモデルである。モデル1800は、具体的には、対象セルの配置場所を示す対象セル枠1801を、縦横に、設定されたピッチ(Px,Py)で配置して作成されたモデルである。モデル1800は、設定されたピッチと同じ配置禁止領域を設定した場合の、最悪の電源ノイズを評価可能であり、電源ドロップが最大でどの程度になり、電源ドロップエラーが発生する可能性があるか否かを評価可能であるモデルである。
【0143】
(3-5)情報処理装置100は、下記(a)~下記(c)の通りに動作を実施し、作成したモデル1800における対象セルの電源ドロップが許容値以下であるか否かを評価する。
【0144】
(a)情報処理装置100は、モデル1800内の電源配線を抵抗網に置き換える。
【0145】
(b)情報処理装置100は、モデル1800内の対象セルのすべてに、Freq,Cloadに対応する消費電流Icell(Freq,Cload)を流す。情報処理装置100は、例えば、対象セル枠1801内を、横方向サイズSxiかつ縦方向サイズSyiの電流源接続単位枠に分割し、電流源を接続することにより、対象セル内のトランジスタに電流を流すことを、電流源により示すようにする。分割数n=(Sx×Sy)/(Sxi×Syi)である。また、情報処理装置100は、例えば、対象セル枠以外の領域内を、横方向サイズSxiかつ縦方向サイズSyiの電流源接続単位枠に分割し、電流源を接続することにより、単位面積あたり消費電流Ispcを流すことを示すようにする。
【0146】
(c)情報処理装置100は、(a)および(b)により、モデル1800から変換された、図19に後述するモデル1900に対して、電源網解析を実施することにより、対象セルの電源ドロップを算出する。ここで、図19を用いて、モデル1900に対して電源網解析を実施する一例について説明する。
【0147】
図19は、モデル1900に対して電源網解析を実施する一例を示す説明図である。図19において、情報処理装置100は、配線上層のVDD,VSS供給ポートから、対象セルの電源端子までの電源ドロップΔVDD,ΔVSSを算出し、対象セルの電源ドロップΔVDD+ΔVSSを算出する。情報処理装置100は、対象セルの消費電流が、Ispc×Sx×Sy以下になる状況であれば、対象セルの電源ドロップΔVDD+ΔVSSを算出しなくてもよい。
【0148】
(3-6)情報処理装置100は、対象セルの電源ドロップが許容値以下である場合には、Px,Pyを配置ピッチリストに追加し、Px=Sxとして、Pyを、設定された増加幅だけ増加させる。一方で、情報処理装置100は、対象セルの電源ドロップが許容値を超える場合には、Pxを、設定された増加幅だけ増加させる。情報処理装置100は、Pxを増加させた結果、Pxが計算対象範囲を超えた場合には、Px=Sxとして、Pyを、設定された増加幅だけ増加させる。情報処理装置100は、対象セルの消費電流がIspc×Sx×Sy以下になる状況であれば、Ex=Ey=“LCD”に設定する。
【0149】
(3-7)情報処理装置100は、対象セルの消費電流がIspcを超える状況であり、Pyが計算対象範囲を超えない間は、(3-4)~(3-6)の動作を繰り返し実施する。情報処理装置100は、(3-4)~(3-6)の動作を繰り返し実施することにより、様々なセルサイズにおいて、様々なピッチ(Px,Py)で、電源ドロップが許容値以下であるか否かを評価することになる。情報処理装置100は、対象セルの消費電流がIspc×Sx×Sy以下の状況であれば、(3-8)の動作に移行してもよい。
【0150】
(3-8)情報処理装置100は、配置ピッチリストのPx,Pyのうち、Px×Pyが最小となるPx,Pyに対応するセル間隔Ex(横方向),Ey(縦方向)を算出し、算出したEx,Eyにより、対象セルの配置禁止領域を設定する。この場合、情報処理装置100は、(Sx,Sy,Freq,Cload)と、対象セルの配置禁止領域を示す{Ex,Ey}との組み合わせを示すデータを生成する。
【0151】
また、情報処理装置100は、Px×Pyが最小となるPx,Pyに対応するセル間隔Ex(横方向),Ey(縦方向)に“LCD”が設定されていれば、対象セルの配置禁止領域を設定せず、配置禁止領域が存在しないと判定する。この場合、情報処理装置100は、(Sx,Sy,Freq,Cload)と、配置禁止領域が存在しないことを示す“LCD”フラグとの組み合わせを示すデータを生成する。
【0152】
(3-9)情報処理装置100は、出力負荷Cload、動作周波数Freqを変更して(3-3)~(3-9)の動作を繰り返し実施する。そして、情報処理装置100は、セルサイズごとに、{Ex,Ey}(Sx,Sy,Freq,Cload)の組み合わせを示すデータ、または、{“LCD”フラグ}(Sx,Sy,Freq,Cload)の組み合わせを示すデータを生成する。
【0153】
そして、情報処理装置100は、生成したセルサイズごとのデータに基づいて、ユーザにより予め設定された制約条件に従って、最適セルサイズを決定する。情報処理装置100は、決定した最適セルサイズSx,Syで、対象セルのレイアウトのデータを生成し、セルライブラリを作成する。また、情報処理装置100は、Ex,Eyまたは“LCD”フラグを、Cload,Freqに対応付けて、セルライブラリに登録する。ここで、図20を用いて、Ex,Eyまたは“LCD”フラグを、Cload,Freqに対応付けて、セルライブラリ2000に登録する一例について説明する。
【0154】
図20は、セルライブラリ2000に登録する一例を示す説明図である。情報処理装置100は、Ex,Eyまたは“LCD”フラグを、Cload,Freqに対応付けて、セルライブラリ2000に登録する。情報処理装置100は、例えば、「Cload=10,Freq=1:LCD」、「Cload=10,Freq=1.5:Ex=3,Ey=2」、・・・、「Cload=100,Freq=4:Ex=10,Ey=8」などを登録する。
【0155】
≪セル配置制御処理の一例≫
次に、図21を用いて、上述したセル配置制御処理の一例について説明する。
【0156】
図21は、動作例2におけるセル配置制御処理の一例を示す説明図である。情報処理装置100は、チップ設計の段階において、セルライブラリに登録されたEx,Eyまたは“LCD”フラグを利用して、セル配置を制限する。
【0157】
情報処理装置100は、例えば、配置済みセル、および、配置しようとするセルについて、実際の出力負荷Cloadr,実効動作周波数Freqrをそれぞれ下回らない最小のCload,動作周波数Freqを特定する。そして、情報処理装置100は、特定したCload,Freqに対応付けられたEx,Eyまたは“LCD”フラグを、セルライブラリから読み出し、配置済みセル、および、配置しようとするセルについての配置禁止領域を設定する。
【0158】
情報処理装置100は、配置しようとするセルが、配置済みの他セルの配置禁止領域に重なる場合、または、配置しようとするセルの配置禁止領域が、配置済みの他セルと重なる場合、配置不可能と判定して、配置不可能をユーザに通知する。また、異なるセルの配置禁止領域同士は、重なってもよい。また、情報処理装置100は、配置しようとするセルが“LCD”フラグ付きである場合、配置済みの他セルの配置禁止領域に関わらずに配置可能と判定する。また、情報処理装置100は、配置しようとするセルの配置禁止領域が、“LCD”フラグ付きの他セルと重なる場合、配置可能と判定する。
【0159】
図21の例では、情報処理装置100は、配置状況2100では、セル1とセル2との配置禁止領域が重ならず、セル1とセル2との配置禁止領域に存在するセル3が“LCD”フラグ付きであると判定する。このため、情報処理装置100は、配置状況2100では、セル1とセル2とを配置可能であると判定する。また、情報処理装置100は、配置状況2110では、セル1とセル2の配置禁止領域とは重ならず、セル1の配置禁止領域とセル2とが重ならないと判定する。また、情報処理装置100は、配置状況2110では、セル1とセル2との配置禁止領域に存在するセル3が“LCD”フラグ付きであると判定する。このため、情報処理装置100は、配置状況2110では、セル1とセル2とを配置可能であると判定する。
【0160】
また、情報処理装置100は、配置状況2120では、セル1とセル2の配置禁止領域が重なるため、セル1とセル2とを配置不可能であると判定する。情報処理装置100は、例えば、セル1が配置済みで、配置状況2120のように、セル2を配置しようとする場合、セル2を配置不可能なように制御する。これにより、情報処理装置100は、チップ設計の段階において、チップ設計よりも後段において電源ドロップエラーが発生しないように、セルを配置することができる。このため、情報処理装置100は、手戻りの発生を防止することができ、ユーザの作業負担の増大化を抑制することができる。
【0161】
(動作例2における全体処理手順)
動作例2における全体処理手順の一例は、図11に示した、動作例1における全体処理手順の一例と同様であるため、説明を省略する。
【0162】
(動作例2におけるルール作成処理手順)
動作例2におけるルール作成処理手順の一例は、図12および図13に示した、動作例1におけるルール作成処理手順の一例と同様であるため、説明を省略する。
【0163】
(動作例2におけるセルサイズ決定処理手順)
動作例2におけるセルサイズ決定処理手順の一例は、図14に示した、動作例1におけるセルサイズ決定処理手順の一例と同様であるが、ステップS1402では、情報処理装置100は、図22および図23に後述する電源ドロップ評価処理を実行する。
【0164】
(動作例2における電源ドロップ評価処理手順)
次に、図22および図23を用いて、情報処理装置100が実行する、動作例2における電源ドロップ評価処理手順の一例について説明する。電源ドロップ評価処理は、例えば、図2に示したCPU201と、メモリ202や記録媒体205などの記憶領域と、ネットワークI/F203とによって実現される。
【0165】
図22および図23は、動作例2における電源ドロップ評価処理手順の一例を示すフローチャートである。図22において、情報処理装置100は、初期設定を実施する(ステップS2201)。初期設定は、Freq,Cload,Px,Pyなどの計算対象範囲の設定、Px,Pyの増加分の設定、および、Freq,Cloadの組み合わせのリストの作成などである。
【0166】
次に、情報処理装置100は、Cload,Freqの初期値を設定する(ステップS2202)。そして、情報処理装置100は、対象セルの消費電流のデータ1212に基づいて、Cload,Freqに対するIcellを設定する(ステップS2203)。
【0167】
次に、情報処理装置100は、Icell>Ispc×Sx×Syであるか否かを判定する(ステップS2204)。ここで、Icell>Ispc×Sx×Syである場合(ステップS2204:Yes)、情報処理装置100は、ステップS2206の処理に移行する。一方で、Icell>Ispc×Sx×Syではない場合(ステップS2204:No)、情報処理装置100は、ステップS2205の処理に移行する。
【0168】
ステップS2205では、情報処理装置100は、Ex=Ey=“LCD”に設定する(ステップS2205)。そして、情報処理装置100は、図23のステップS2302の処理に移行する。
【0169】
ステップS2206では、情報処理装置100は、ピッチの初期値としてPx=Sx,Py=Syを設定する(ステップS2206)。そして、情報処理装置100は、Icell(Cload,Freq)と、Pxと、Sxと、Pyと、Syとを入力として、図24に後述するモデル作成処理を実行し、敷き詰めモデルを作成する(ステップS2207)。
【0170】
次に、情報処理装置100は、電源網解析を実施し、作成した敷き詰めモデルの電源ドロップ=ΔVDD+ΔVSSを算出する(ステップS2208)。そして、情報処理装置100は、電源ドロップ≦許容値であるか否かを判定する(ステップS2209)。
【0171】
ここで、電源ドロップ≦許容値である場合(ステップS2209:Yes)、情報処理装置100は、ステップS2210の処理に移行する。一方で、電源ドロップ≦許容値ではない場合(ステップS2209:No)、情報処理装置100は、ステップS2211の処理に移行する。
【0172】
ステップS2210では、情報処理装置100は、Px,Pyの組み合わせを、配置ピッチリストに追加する(ステップS2210)。そして、情報処理装置100は、ステップS2213の処理に移行する。
【0173】
ステップS2211では、情報処理装置100は、Pxを所定量増加させる(ステップS2211)。次に、情報処理装置100は、Pxが計算対象範囲外であるか否かを判定する(ステップS2212)。ここで、計算対象範囲外ではない場合(ステップS2212:No)、情報処理装置100は、ステップS2207の処理に戻る。一方で、計算対象範囲外である場合(ステップS2212:Yes)、情報処理装置100は、ステップS2213の処理に移行する。
【0174】
ステップS2213では、情報処理装置100は、Px=SxとしてPyを所定量増加させる(ステップS2213)。次に、情報処理装置100は、Pyが計算対象範囲外であるか否かを判定する(ステップS2214)。ここで、計算対象範囲外ではない場合(ステップS2214:No)、情報処理装置100は、ステップS2207の処理に戻る。一方で、計算対象範囲外である場合(ステップS2214:Yes)、情報処理装置100は、図23のステップS2301の処理に移行する。
【0175】
図23において、情報処理装置100は、配置ピッチリストのPx,Pyの組み合わせのうち、Px×Pyが最小になるPx,Pyの組み合わせに基づいて、Ex,Eyを算出する(ステップS2301)。
【0176】
次に、情報処理装置100は、Cload,Freqに対応付けてEx,Eyを出力する(ステップS2302)。そして、情報処理装置100は、Cload,Freqのリストに基づいて、Cload,Freqを次の値に変更する(ステップS2303)。
【0177】
次に、情報処理装置100は、Cload,Freqのリストのすべての値を処理済みであるか否かを判定する(ステップS2304)。ここで、未処理の値がある場合(ステップS2304:No)、情報処理装置は、図22のステップS2203の処理に戻る。一方で、すべての値を処理済みである場合(ステップS2304:Yes)、情報処理装置100は、電源ドロップ評価処理を終了する。これにより、情報処理装置100は、Cload,Freqに対応付けて、電源ドロップエラーを回避可能なEx,Eyを記憶しておくことができる。
【0178】
(動作例2におけるモデル作成処理手順)
次に、図24を用いて、情報処理装置100が実行する、動作例2におけるモデル作成処理手順の一例について説明する。モデル作成処理は、例えば、図2に示したCPU201と、メモリ202や記録媒体205などの記憶領域と、ネットワークI/F203とによって実現される。
【0179】
図24は、動作例2におけるモデル作成処理手順の一例を示すフローチャートである。図24において、情報処理装置100は、Px,Pyに基づいて対象セル枠を配置する(ステップS2401)。
【0180】
次に、情報処理装置100は、対象セル枠内を、横方向サイズSxiかつ縦方向サイズSyiの電流源接続単位枠に分割し、分割数n=(Sx×Sy)/(Sxi×Syi)を設定する(ステップS2402)。そして、情報処理装置100は、対象セル枠外を、同様に、電流源接続単位枠に分割する(ステップS2403)。
【0181】
次に、情報処理装置100は、対象セル枠内の電流源接続単位枠に電流値Icell/nの電流源を接続する(ステップS2404)。そして、情報処理装置100は、対象セル枠外の電流源接続単位枠に電流値Ispc×Sxi×Syiの電流源を接続する(ステップS2405)。
【0182】
次に、情報処理装置100は、電源配線網を抵抗網に置換する(ステップS2406)。そして、情報処理装置100は、モデル作成処理を終了する。これにより、情報処理装置100は、対象セル以外に、単位面積あたりの消費電流の大きさがIspc以下の他セルが配置されることを考慮したモデルを作成することができる。
【0183】
以上説明したように、情報処理装置100によれば、対象セルの消費電流に基づいて、セルサイズとセル間隔との組み合わせごとに、対象セルを敷き詰めたモデルに対する電源網解析を実施することができる。情報処理装置100によれば、電源網解析の結果を参照して、作成したモデルにおける電源ドロップが許容範囲内であるか否かを評価することができる。情報処理装置100によれば、評価した結果を参照して、対象セルのセルサイズごとに、対象セルのセル間隔についての配置制限を示す情報を生成することができる。これにより、情報処理装置100は、ユーザが、対象セルのセルサイズごとに、電源ドロップエラーを発生させないための、対象セルのセル間隔についての配置制限を把握可能にすることができる。このため、ユーザは、LSIを設計する際、電源ドロップエラーを発生させずに、対象セルを配置する密度が向上するように、対象セルを配置していくことが可能になり、自身の想定通りに動作するLSIを設計することができる。
【0184】
情報処理装置100によれば、評価した結果を参照して、所定の制約条件に基づいて、対象セルのセルサイズを決定することができる。情報処理装置100によれば、生成した情報のうち、決定した対象セルのセルサイズに対応する情報を、集積回路の設計に用いられる対象セルライブラリに登録することができる。これにより、情報処理装置100は、ユーザがLSIを設計する際、電源ドロップエラーが発生しないように、セルを配置させることができる。このため、情報処理装置100は、セル配置よりも後段の作業において電源ドロップエラーが発見され、手戻りが発生してしまうことを防止することができ、ユーザの作業負担の増大化を抑制することができる。
【0185】
情報処理装置100によれば、ライブラリを参照して、集積回路の設計において、基板領域上に配置する対象セルが、対象セルのセル間隔についての配置制限を満たすか否かを判定して出力することができる。これにより、情報処理装置100は、ユーザがLSIを設計する際、電源ドロップエラーが発生しないように、セルを配置させることができる。また、情報処理装置100は、セルが配置可能であるか否かを、ユーザが把握可能にすることができる。
【0186】
情報処理装置100によれば、対象セルの消費電流に基づいて、セルサイズとセル間隔との組み合わせごとに、対象セルを敷き詰め、かつ、対象セル間に所定の大きさの消費電流を示す電流源を接続したモデルに対する電源網解析を実施することができる。これにより、情報処理装置100は、所定の大きさ以下の消費電流のセルを、対象セルとの位置関係に関わらず配置可能に、対象セルのセル間隔についての配置制限を示す情報を生成することができる。このため、情報処理装置100は、ユーザがLSIを設計する際、所定の大きさ以下の消費電流のセルを、比較的自由に配置可能にし、LSIの面積の低減化を図りやすくすることができる。
【0187】
情報処理装置100によれば、所定の領域に敷き詰めても電源ドロップエラーを回避可能である所定のセルの消費電流の大きさに基づいて、対象セル間に接続する電流源が示す消費電流の大きさを設定することができる。これにより、情報処理装置100は、対象セル間に接続する電流源の消費電流の大きさを設定可能にすることができる。
【0188】
なお、本実施の形態で説明した設計方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した設計プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した設計プログラムは、インターネット等のネットワークを介して配布してもよい。
【0189】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0190】
(付記1)セルサイズとセル間隔との組み合わせごとに、セルを敷き詰めたモデルに対して実施された、前記セルの出力負荷および動作周波数に応じた前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価し、
評価した結果を参照して、前記セルのセルサイズごとに、前記セルのセル間隔についての配置制限を示す情報を生成する、
処理をコンピュータが実行することを特徴とする設計方法。
【0191】
(付記2)評価した結果を参照して、所定の制約条件に基づいて、前記セルのセルサイズを決定し、
生成した前記情報のうち、決定した前記セルのセルサイズに対応する情報を、集積回路の設計に用いられるセルライブラリに登録する、
処理を前記コンピュータが実行することを特徴とする付記1に記載の設計方法。
【0192】
(付記3)前記セルライブラリを参照して、前記集積回路の設計において、基板領域上に配置する前記セルが、前記セルのセル間隔についての配置制限を満たすか否かを判定して出力する、
処理を前記コンピュータが実行することを特徴とする付記2に記載の設計方法。
【0193】
(付記4)前記評価する処理は、
前記組み合わせごとに、前記セルを敷き詰め、かつ、前記セル間に所定の大きさの消費電流を示す電流源を接続したモデルに対して実施された、前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価する、ことを特徴とする付記1~3のいずれか一つに記載の設計方法。
【0194】
(付記5)所定の領域において隣接するように敷き詰めた場合にも、前記所定の領域における電源ドロップが許容範囲内になる所定のセルの消費電流の大きさに基づいて、前記所定の大きさが設定される、ことを特徴とする付記4に記載の設計方法。
【0195】
(付記6)セルサイズとセル間隔との組み合わせごとに、セルを敷き詰めたモデルに対して実施された、前記セルの出力負荷および動作周波数に応じた前記セルの消費電流に基づく電源網解析の結果を参照して、前記モデルにおける電源ドロップが許容範囲内であるか否かを評価し、
評価した結果を参照して、前記セルのセルサイズごとに、前記セルのセル間隔についての配置制限を示す情報を生成する、
処理をコンピュータに実行させることを特徴とする設計プログラム。
【符号の説明】
【0196】
100 情報処理装置
101,102 対象セル
110,111,500,700,801~805,1800,1900 モデル
200 バス
201 CPU
202 メモリ
203 ネットワークI/F
204 記録媒体I/F
205 記録媒体
210 ネットワーク
300 記憶部
301 取得部
302 評価部
303 作成部
304 設計部
305 出力部
400,501,1801 対象セル枠
410 配置禁止領域
900,1113,2000 セルライブラリ
1000,1010,1020,2100,2110,2120 配置状況
1111 電源配線のデータ
1112 ネットリスト
1114 配置ルール
1115 セル配置データ
1116 セル間配線データ
1211,1311 動作周波数および出力負荷のデータ
1212 対象セルの消費電流のデータ
1213 制約条件のデータ
1214 最小セルサイズのデータ
1215 対象セル間の微小消費電流のデータ
1421 配置禁止領域のデータ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24