(57)【要約】【課題】集積回路の製造後に実施されるテストでＲＡＭが動作しなくなるのを防ぎ、設計への戻りをなくすこと。製造後のテストの回数を減らし、テスト費用の削減を図ること。【解決手段】集積回路の設計時に、ＲＡＭの消費電流値、ＲＡＭの配置位置に基づいて消費電流値に重み付けをした重み付け消費電流値、または重み付け消費電流値に素子間の距離を考慮した値に基づいて複数のＲＡＭを複数のグループに振り分ける。各グループについてコアノイズを解析し、得られた電源ドロップ量が所定の条件を満たすか否かを判定する。電源ドロップ量が所定の条件を満たすグループについては、そのグループに含まれるＲＡＭを同時に動作させるＲＡＭとする。一方、電源ドロップ量が所定の条件を満たさないグループについては、ＲＡＭの振り分け条件を変更してＲＡＭの振り分けからやり直す。【選択図】図１
2010134498.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
複数の素子を電気的特性値に基づいて複数のグループに振り分ける振り分け手段、
前記振り分け手段により前記素子が振り分けられた各グループについてコアノイズを解析する解析手段、
前記解析手段によるコアノイズ解析によって得られた前記素子の電源ドロップ量が所定の条件を満たすか否かを判定する判定手段、
前記判定手段により前記素子の電源ドロップ量が所定の条件を満たすと判定された前記グループについて当該グループに含まれる前記素子を同時に動作させる素子に決定する決定手段、
前記判定手段により前記素子の電源ドロップ量が所定の条件を満たさないと判定された前記グループについて前記振り分け手段による前記素子の振り分け条件を変更する変更手段、
として機能させることを特徴とする集積回路設計プログラム。
【請求項２】
前記振り分け手段として、前記コンピュータを、
振り分け済み素子の消費電流の合計値を前記グループごとに計算するグループ内消費電流計算手段、
前記グループ内消費電流計算手段により得られた前記各グループの前記消費電流の合計値に基づいて振り分け対象素子の振り分け先グループを判定するグループ判定手段、
として機能させることを特徴とする請求項１に記載の集積回路設計プログラム。
【請求項３】
前記振り分け手段として、前記コンピュータを、
前記素子の配置位置に基づいて前記素子の消費電流値に重み付けをする重み付け消費電流計算手段、
前記重み付け消費電流計算手段により得られた振り分け済み素子の重み付け消費電流の合計値を前記グループごとに計算するグループ内消費電流計算手段、
前記グループ内消費電流計算手段により得られた前記各グループの前記重み付け消費電流の合計値に基づいて振り分け対象素子の振り分け先グループを判定するグループ判定手段、
として機能させることを特徴とする請求項１に記載の集積回路設計プログラム。
【請求項４】
前記振り分け手段として、前記コンピュータを、
前記素子の配置位置に基づいて前記素子の消費電流値に重み付けをする重み付け消費電流計算手段、
振り分け対象素子と振り分け済み素子との距離を前記グループごとに計算する素子間距離計算手段、
前記重み付け消費電流計算手段により得られた前記振り分け済み素子の重み付け消費電流値および前記素子間距離計算手段により得られた素子間距離に基づいて、前記振り分け済み素子の前記素子間距離を考慮した重み付け消費電流の合計の平均値を前記グループごとに計算するグループ内消費電流計算手段、
前記グループ内消費電流計算手段により得られた前記各グループの前記素子間距離を考慮した重み付け消費電流の合計の平均値に基づいて前記振り分け対象素子の振り分け先グループを判定するグループ判定手段、
として機能させることを特徴とする請求項１に記載の集積回路設計プログラム。
【請求項５】
前記コンピュータを、
請求項２に記載の前記振り分け手段、請求項３に記載の前記振り分け手段および請求項４に記載の前記振り分け手段のうちの少なくとも二つの手段として機能させるとともに、
前記素子の分布に基づいていずれか一つの前記振り分け手段を選択する選択手段、
として機能させることを特徴とする請求項１に記載の集積回路設計プログラム。
【請求項６】
複数の素子を電気的特性値に基づいて複数のグループに振り分ける振り分け部と、
前記振り分け部により前記素子が振り分けられた各グループについてコアノイズを解析する解析部と、
前記解析部によるコアノイズ解析によって得られた前記素子の電源ドロップ量が所定の条件を満たすか否かを判定する判定部と、
前記判定部により前記素子の電源ドロップ量が所定の条件を満たすと判定された前記グループについて当該グループに含まれる前記素子を同時に動作させる素子に決定する決定部と、
前記判定部により前記素子の電源ドロップ量が所定の条件を満たさないと判定された前記グループについて前記振り分け部による前記素子の振り分け条件を変更する変更部と、
を備えることを特徴とする集積回路設計装置。
【請求項７】
複数の素子を電気的特性値に基づいて複数のグループに振り分ける振り分けステップと、
前記振り分けステップにより前記素子が振り分けられた各グループについてコアノイズを解析する解析ステップと、
前記解析ステップによるコアノイズ解析によって得られた前記素子の電源ドロップ量が所定の条件を満たすか否かを判定する判定ステップと、
前記判定ステップにより前記素子の電源ドロップ量が所定の条件を満たすと判定された前記グループについて当該グループに含まれる前記素子を同時に動作させる素子に決定する決定ステップと、
前記判定ステップにより前記素子の電源ドロップ量が所定の条件を満たさないと判定された前記グループについて前記振り分けステップによる前記素子の振り分け条件を変更する変更ステップと、
を含むことを特徴とする集積回路設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、集積回路設計プログラム、集積回路設計装置および集積回路設計方法に関する。
【背景技術】
【０００２】
従来、コンピュータを用いたＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の設計システムとして、ＬＳＩ動作保証設計システムが知られている。このシステムは、セル接続情報と、このセル接続情報に含まれたセルの動的消費電力値とから、レイアウト時に隔離すべきセルの組み合わせを隔離セル組と定義する隔離制約情報を生成する隔離制約情報生成手段と、この隔離制約情報生成手段で生成された隔離制約情報に基づいてレイアウトを生成するレイアウト生成手段とを有していることを特徴とする（例えば、特許文献１参照。）。
【０００３】
【特許文献１】特開２０００−１６４７２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、設計段階において、複数のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を、同時に動作するＲＡＭごとに複数のグループに分けるための基準がないため、ＲＡＭを適切にグループ分けすることができない。そのため、集積回路の製造後に実施されるテストにおいて、次のような問題が生じることがある。１グループ当たりのＲＡＭの個数を少なく見積もった場合には、グループ数が多くなる。グループごとにテストを行う必要がある場合には、グループ数が増えるとテストの回数が増えてしまい、テスト費用が嵩む。一方、１グループ当たりのＲＡＭの個数が多すぎると、テストの際に同時に動作するＲＡＭの数が増えるため、ＲＡＭの動作に起因するコア部の電源ノイズが大きくなる。その結果、ＲＡＭが正常に動作しなくなり、テストを正常に行うことができない。この場合には、再び設計をやり直す必要があるため、設計開始から製造終了までの全体の時間および費用が増大するという問題がある。
【課題を解決するための手段】
【０００５】
この集積回路設計プログラム、集積回路設計装置および集積回路設計方法は、複数の素子を電気的特性値に基づいて複数のグループに振り分け、各グループについてコアノイズを解析し、得られた電源ドロップ量が所定の条件を満たすか否かを判定する。電源ドロップ量が所定の条件を満たすグループについては、そのグループに含まれる素子を同時に動作させる素子とする。一方、電源ドロップ量が所定の条件を満たさないグループについては、素子の振り分け条件を変更して素子の振り分けからやり直す。素子の電気的特性値として、消費電流値、素子の配置位置に基づいて消費電流値に重み付けをした重み付け消費電流値、または重み付け消費電流値に素子間の距離を考慮した値を用いることができる。
【発明の効果】
【０００６】
この集積回路設計プログラム、集積回路設計装置および集積回路設計方法によれば、設計段階において、複数の素子が、同時に動作する素子ごとのグループに適切に振り分けられるので、集積回路の製造後に実施されるテストの回数が減り、テスト費用の削減を図ることができる。また、そのテストを正常に行うことができる。この場合には、再び設計をやり直さずに済むので、設計開始から製造終了までの全体の時間および費用を削減することができる。
【発明を実施するための最良の形態】
【０００７】
以下に添付図面を参照して、この集積回路設計プログラム、集積回路設計装置および集積回路設計方法の好適な実施の形態を詳細に説明する。
【０００８】
（概略）
図１は、実施の形態にかかる集積回路設計装置の構成を示す説明図である。図１に示すように、集積回路設計装置は、集積回路の設計時に、例えば、ＲＡＭ（素子）の消費電流値、ＲＡＭの配置位置を考慮したＲＡＭの消費電流値、またはＲＡＭの配置位置とＲＡＭ間の距離を考慮した消費電流値のいずれかに基づいて複数のＲＡＭを、同時に動作するＲＡＭごとのグループに適切に振り分ける。
【０００９】
（集積回路設計装置の機能的構成）
図１に示すように、集積回路設計装置は、選択部１、第１振り分け部２、第２振り分け部３、第３振り分け部４、解析部５、判定部６、決定部７および変更部８を備えている。選択部１は、チップ内のＲＡＭの分布に基づいて第１振り分け部２、第２振り分け部３または第３振り分け部４を選択する。第１振り分け部２は、ＲＡＭの平均消費電流値に基づいて複数のＲＡＭを、同時に動作するＲＡＭごとのグループに振り分ける。第２振り分け部３は、ＲＡＭの配置位置を考慮してＲＡＭの平均消費電流値に重み付けをした重み付け消費電流値に基づいて複数のＲＡＭを、同時に動作するＲＡＭごとのグループに振り分ける。第３振り分け部４は、前記重み付け消費電流値にＲＡＭ間の距離を考慮した値に基づいて複数のＲＡＭを、同時に動作するＲＡＭごとのグループに振り分ける。
【００１０】
解析部５は、ＲＡＭが振り分けられたグループについてコアノイズを解析する。例えば、解析部５は、コアノイズ解析モデルを作成し、ＳＰＩＣＥシミュレーションを実行して動的な電源ドロップ量を測定する。判定部６は、動作ＲＡＭの電源ドロップ量とＲＡＭの最低保障電圧を比較し、動作ＲＡＭの電源ドロップ量がＲＡＭの最低保障電圧に対して所定の範囲に収まっているか否かを判定する。
【００１１】
決定部７は、判定部６により動作ＲＡＭの電源ドロップ量が前記所定の範囲に収まっていると判定されたグループについて、そのグループに割り振られたＲＡＭを、同時に動作させるＲＡＭに決定する。変更部８は、判定部６により動作ＲＡＭの電源ドロップ量がＲＡＭの最低保障電圧よりも低くなると判定されたグループについて、ＲＡＭの振り分け条件を変更する。振り分け条件の変更により、同時に動作させるＲＡＭの数が減ったり、組み合わせが変更される。また、変更部８は、判定部６により動作ＲＡＭの電源ドロップ量がＲＡＭの最低保障電圧に対して、予め設定された閾値を超える程度の余裕があると判定されたグループについて、同時に動作させるＲＡＭを追加する。
【００１２】
（第１振り分け部の機能的構成）
図２は、第１振り分け部の構成を示す説明図である。図２に示すように、第１振り分け部２は、ソート処理部２１、グループ内消費電流計算部２２およびグループ判定部２３を備えている。ソート処理部２１は、ＲＡＭの平均消費電流値に基づいて複数のＲＡＭを並べ替える。例えば、ソート処理部２１は、ＲＡＭを平均消費電流値の大きい順に並べる。ＲＡＭの平均消費電流値は、設計データの一つである消費電流値データ１１から得られる。
【００１３】
グループ内消費電流計算部２２は、グループに既に振り分けられているＲＡＭ（振り分け済みＲＡＭ）の平均消費電流の合計値をグループごとに計算する。ＲＡＭが振り分けられていないグループの平均消費電流の合計値はゼロである。グループ判定部２３は、ＲＡＭの平均消費電流値に基づいて振り分け対象ＲＡＭの振り分け先グループを判定する。例えば、グループ判定部２３は、その時点で平均消費電流値が最も大きい振り分け対象ＲＡＭを、振り分け済みＲＡＭの平均消費電流の合計値が最も小さいグループに振り分ける。
【００１４】
（第２振り分け部の機能的構成）
図３は、第２振り分け部の構成を示す説明図である。図３に示すように、第２振り分け部３は、重み付け係数取得部３１、重み付け消費電流計算部３２、ソート処理部３３、グループ内消費電流計算部３４およびグループ判定部３５を備えている。重み付け係数取得部３１は、チップ内のＲＡＭの配置位置に基づいてＲＡＭの平均消費電流値に重み付けをするための重み付け係数を取得する。ＲＡＭの配置位置は、設計データの一つであるＲＡＭ配置座標データ１２から得られる。重み付け係数は、例えば重み付け係数テーブル１３から得られる。重み付け係数は、チップ内部の電源メッシュの占有率、または電源配線自体の抵抗値に基づいて設定されている。
【００１５】
重み付け消費電流計算部３２は、ＲＡＭの平均消費電流値および重み付け係数に基づいて重み付け消費電流値を計算する。例えば、重み付け消費電流計算部３２は、ＲＡＭの平均消費電流値に重み付け係数をかけて重み付け消費電流値を得る。ソート処理部３３は、ＲＡＭの重み付け消費電流値に基づいて複数のＲＡＭを並べ替える。例えば、ソート処理部３３は、ＲＡＭを重み付け消費電流値の大きい順に並べる。
【００１６】
グループ内消費電流計算部３４は、振り分け済みＲＡＭの重み付け消費電流の合計値をグループごとに計算する。ＲＡＭが振り分けられていないグループの重み付け消費電流の合計値はゼロである。グループ判定部３５は、ＲＡＭの重み付け消費電流値に基づいて振り分け対象ＲＡＭの振り分け先グループを判定する。例えば、グループ判定部３５は、その時点で重み付け消費電流値が最も大きい振り分け対象ＲＡＭを、振り分け済みＲＡＭの重み付け消費電流の合計値が最も小さいグループに振り分ける。
【００１７】
（第３振り分け部の機能的構成）
図４は、第３振り分け部の構成を示す説明図である。図４に示すように、第３振り分け部４は、重み付け係数取得部４１、重み付け消費電流計算部４２、ソート処理部４３、ＲＡＭ間距離計算部４４、グループ内消費電流計算部４５およびグループ判定部４６を備えている。重み付け係数取得部４１、重み付け消費電流計算部４２およびソート処理部４３は、それぞれ、第２振り分け部３の重み付け係数取得部３１、重み付け消費電流計算部３２およびソート処理部３３と同様である。
【００１８】
ＲＡＭ間距離計算部４４は、その時点での振り分け対象ＲＡＭと振り分け済みＲＡＭとの距離をグループごとに計算する。例えば、ＲＡＭ間距離計算部４４は、ＲＡＭの配置座標に基づいてＲＡＭ間の距離を計算する。ＲＡＭの配置座標は、ＲＡＭ配置座標データ１２から得られる。
【００１９】
グループ内消費電流計算部４５は、振り分け済みＲＡＭの重み付け消費電流値、およびその時点での振り分け対象ＲＡＭと振り分け済みＲＡＭとの距離に基づいて、振り分け済みＲＡＭの距離依存重み付け消費電流の合計の平均値をグループごとに計算する。距離依存重み付け消費電流とは、ＲＡＭ間距離を考慮した重み付け消費電流のことである。ＲＡＭが振り分けられていないグループの距離依存重み付け消費電流の合計の平均値はゼロである。グループ判定部４６は、ＲＡＭの距離依存重み付け消費電流の合計の平均値に基づいて振り分け対象ＲＡＭの振り分け先グループを判定する。例えば、グループ判定部４６は、その時点で重み付け消費電流値が最も大きい振り分け対象ＲＡＭを、そのＲＡＭに対する振り分け済みＲＡＭの距離依存重み付け消費電流の合計の平均値が最も小さいグループに振り分ける。
【００２０】
（コンピュータ装置のハードウェア構成）
図５は、実施の形態にかかるコンピュータ装置のハードウェア構成を示す説明図である。図５に示すように、コンピュータ装置は、コンピュータ本体２１０、入力装置２２０および出力装置２３０を備えている。コンピュータ装置は、図示しないルータやモデムを介してＬＡＮやＷＡＮやインターネットなどのネットワーク１１０に接続可能である。
【００２１】
コンピュータ本体２１０は、ＣＰＵ、記憶部およびインターフェースを有する。ＣＰＵは、コンピュータ装置の全体の制御を司る。記憶部は、ＲＯＭ、ＲＡＭ、ＨＤ、光ディスク２１１およびフラッシュメモリのうちの一つ以上で構成される。記憶部は、ＣＰＵのワークエリアとして使用される。
【００２２】
また、記憶部には各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤや光ディスク２１１は、ディスクドライブによりデータのリード／ライトが制御される。また、光ディスク２１１やフラッシュメモリは、コンピュータ本体２１０に対して着脱自在である。インターフェースは、入力装置２２０からの入力、出力装置２３０への出力、およびネットワーク１１０に対する送受信の制御を行う。
【００２３】
また、入力装置２２０としては、キーボード２２１、マウス２２２およびスキャナ２２３などがある。キーボード２２１は、文字や数字や各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式であってもよい。マウス２２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。スキャナ２２３は、画像を光学的に読み取る。読み取られた画像は、画像データとして取り込まれ、コンピュータ本体２１０内の記憶部に格納される。なお、スキャナ２２３にＯＣＲ機能を持たせてもよい。
【００２４】
また、出力装置２３０としては、ディスプレイ２３１、スピーカ２３２およびプリンタ２３３などがある。ディスプレイ２３１は、カーソル、アイコンまたはツールボックスをはじめ、文書、画像および機能情報などのデータを表示する。また、スピーカ２３２は、効果音や読み上げ音などの音声を出力する。また、プリンタ２３３は、画像データや文書データを印刷する。
【００２５】
集積回路設計装置の各機能部のうち、選択部１、第１振り分け部２の各機能部２１〜２３、第２振り分け部３の各機能部３１〜３５、第３振り分け部４の各機能部４１〜４６、解析部５、判定部６、決定部７および変更部８は、例えばコンピュータ本体２１０の記憶部に記憶された当該機能に関するプログラムをＣＰＵに実行させることにより、または、入出力Ｉ／Ｆにより、当該機能を実現することができる。消費電流値データ１１、ＲＡＭ配置座標データ１２および重み付け係数テーブル１３は、例えば記憶部により実現される。
【００２６】
（集積回路設計手順）
図６は、実施の形態にかかる集積回路設計処理の全体の流れを示す説明図である。図６に示す設計処理は、例えば動作周波数が同じで、かつ種類が同じであるという所定の制約を満たすＲＡＭごとに行われる。つまり、動作周波数や種類が異なるＲＡＭが、同時に動作するＲＡＭとして選択されることはない。
【００２７】
図６に示すように、集積回路の設計処理が開始されると、まず、解析部５により、前記制約を満たす全てのＲＡＭを、同時に動作させるＲＡＭの候補として選択し（ステップＳ１）、コアノイズを解析する（ステップＳ２）。コアノイズ解析では、例えば、コアノイズ解析モデルを作成し、ＳＰＩＣＥシミュレーションを実行して動的な電源ドロップ量を測定する。次いで、判定部６により、ＲＡＭ部ドロップピークを判定する。例えば、動作ＲＡＭの電源ドロップ量とＲＡＭの最低保障電圧を比較し、動作ＲＡＭの電源ドロップ量がＲＡＭの最低保障電圧に対して所定の範囲に収まっているか否かを判定する（ステップＳ３）。
【００２８】
ＲＡＭ部ドロップピーク判定の結果が良しである場合（ステップＳ４：Ｙｅｓ）、例えば動作ＲＡＭの電源ドロップ量がＲＡＭの最低保障電圧に対して所定の範囲に収まっている場合、決定部７により、その良しと判定された全てのＲＡＭを、製造後のテストで同時に動作させるＲＡＭに決定する。それによって、製造後のテストで同時に動作させるＲＡＭの個数が決定する（ステップＳ５）。そして、一連の設計処理を終了する。
【００２９】
一方、ＲＡＭ部ドロップピーク判定の結果が良しでない場合（ステップＳ４：Ｎｏ）、例えば動作ＲＡＭの電源ドロップ量がＲＡＭの最低保障電圧よりも低くなる場合、変更部８により、ＲＡＭの振り分け条件を変更し（ステップＳ７）、ステップＳ１に戻る。厳密には、１巡目で全てのＲＡＭを選択した場合にはＲＡＭの振り分け条件が特に設定されていないので、ステップＳ７では振り分け条件の設定であるが、ここでは振り分け条件の変更に含める。
【００３０】
ステップＳ１に戻って２巡目では、選択部１により、前記制約を満たす複数のＲＡＭのチップ内の分布に基づいて第１振り分け部２、第２振り分け部３または第３振り分け部４を選択する。そして、選択された振り分け部により、複数のＲＡＭを複数のグループに振り分けることによって、同時に動作させるＲＡＭをグループごとに選択する（ステップＳ１）。
【００３１】
次いで、解析部５により、グループごとにコアノイズを解析し（ステップＳ２）、例えば電源ドロップ量を測定する。次いで、判定部６により、ＲＡＭ部ドロップピークを判定する（ステップＳ３）。ＲＡＭ部ドロップピーク判定の結果が良しである場合（ステップＳ４：Ｙｅｓ）、その良しと判定されたグループについて、決定部７により、そのグループに割り振られたＲＡＭを、製造後のテストで同時に動作させるＲＡＭに決定する。それによって、その良しと判定されたグループについて、製造後のテストで同時に動作させるＲＡＭの個数が決定する（ステップＳ５）。
【００３２】
一方、ＲＡＭ部ドロップピーク判定の結果が良しでない場合（ステップＳ４：Ｎｏ）、その良しでないと判定されたグループについて、変更部８により、ＲＡＭの振り分け条件を変更し（ステップＳ７）、ステップＳ１に戻って新たな振り分け条件で動作ＲＡＭの選択から繰り返す。それによって、３巡目以降で、ＲＡＭ部ドロップピーク判定の結果が良しでないとされたグループについて、同時に動作させるＲＡＭの数を減らしたり、組み合わせを変更したりして、新たなグループ分けがなされる。
【００３３】
また、上述した理由とは別に、動作ＲＡＭの電源ドロップ量がＲＡＭの最低保障電圧以上であっても、ＲＡＭの最低保障電圧に対して、予め設定された閾値を超える程度の余裕がある場合も、判定部６により、ＲＡＭ部ドロップピークの判定結果は良しでないとされる。その場合には、変更部８により、その良しでないと判定されたグループにＲＡＭを追加し（ステップＳ７）、ステップＳ１に戻る。全てのＲＡＭについて振り分けが終了するまで（ステップＳ６：Ｎｏ）、以上の処理を繰り返す。この繰り返し処理は、ステップＳ４でＲＡＭ部ドロップピーク判定の結果が良しであるとされたグループに振り分けられたＲＡＭを除く、残りのＲＡＭについて行われる。前記制約を満たす全てのＲＡＭの振り分けが終了したら（ステップＳ６：Ｙｅｓ）、一連の設計処理を終了する。
【００３４】
図７は、図６に示す設計手順で複数のＲＡＭをグループ化する様子を模式的に示す説明図である。図７には、全体または各グループについて、１回目のグループ分けでは二つのグループに分け、２回目以降のグループ分けでは一つずつグループを増やすという振り分け条件の例が示されている。
【００３５】
図７において、符号５１で示すように、全体がＡとＢの二つのグループに分けられる。全体とは、前記制約を満たす全てのＲＡＭのことである。ＲＡＭ部ドロップピーク判定の結果、グループＡおよびグループＢの両方とも良しでない（ＮＧ）場合、符号５２で示すように、全体がＣとＤとＥの三つのグループに分けられる。ＲＡＭ部ドロップピーク判定の結果、三つのグループとも良しでない（ＮＧ）場合、符号５３で示すように全体がグループＦ、グループＧ、・・・およびグループＨというように、いずれかのグループがＲＡＭ部ドロップピーク判定で良しとなるまで、多くのグループに分けられていく。
【００３６】
また、全体が二分された後、ＲＡＭ部ドロップピーク判定の結果、グループＡは良し（ＯＫ）であり、グループＢが良しでない（ＮＧ）場合、符号５４で示すように、グループＡについては同時に動作するＲＡＭの決定となり、グループＢについてのみ、Ｂ−ａとＢ−ｂの二つのグループに分けられる。ＲＡＭ部ドロップピーク判定の結果、グループＢ−ａおよびグループＢ−ｂの両方とも良しでない（ＮＧ）場合、符号５５で示すように、グループＢがＢ−ｃとＢ−ｄとＢ−ｅの三つのグループに分けられる。そして、符号５６で示すように、全体の場合と同様に、グループＢの細分化されたいずれかのグループがＲＡＭ部ドロップピーク判定で良しとなるまで、グループＢはさらに多くのグループに細分化されていく。
【００３７】
符号５２〜５６で示す状態において、細分化されたいずれかのグループがＲＡＭ部ドロップピーク判定で良しとなると、そのグループについては同時に動作するＲＡＭの決定となる。そして、符号５４で示すように、ＲＡＭ部ドロップピーク判定で良しとされなかったグループについてのみ、同様に細かくグループ化される。細分化されるグループ数に上限を設けてもよい。例えば、全体または各グループについて細分化する際のグループ数の上限値を４とする場合、図７に示す例において、全体やグループＢを四つのグループに分けても、いずれのグループもＲＡＭ部ドロップピーク判定で良しとならなければ、振り分け条件を変更して、最初から動作ＲＡＭの選択がやり直される。なお、振り分け条件は、上記例に限らず、全体または各グループについて、１回目のグループ分けで三つ以上のグループに分け、２回目以降のグループ分けでは二つ以上ずつグループを増やすというようにしてもよい。
【００３８】
（動作ＲＡＭ選択処理手順）
図８は、動作ＲＡＭ選択処理の流れを示す説明図である。図９〜図１２は、図８に示す動作ＲＡＭ選択処理における判定基準を示す説明図である。図８に示すように、動作ＲＡＭの選択処理が開始されると、まず、選択部１により、ＲＡＭがチップの上下左右方向に均一に分布しているか否かを判定する（ステップＳ１１）。例えば、ＲＡＭがチップ全体に存在する場合は均一であるとし、ＲＡＭがチップの上部もしくは下部に集中している場合、または左部もしくは右部に集中している場合は均一でないとする。具体的には、チップを格子状に複数の領域に分割し、ＲＡＭ配置座標データ１２から各ＲＡＭの配置位置を求め、各領域に存在するＲＡＭの個数を数える。そして、領域間でＲＡＭの数に偏りがない場合は均一であるとし、偏りがある場合は均一でないとしてもよい。
【００３９】
例えば、図９に示す例では、Ｊ、Ｋ、ＭおよびＮの各領域に存在するＲＡＭの数の比が１：１：１：１であるので、均一であるとする。図１０に示す例では、Ｊ、Ｋ、ＭおよびＮの各領域に存在するＲＡＭの数の比が０：２：２：０（＝０：１：１：０）であるので、均一でないとする。一例として、最も多くＲＡＭが存在する領域の比の値を１として換算した場合に、残りの領域のＲＡＭの存在比が所定の閾値、例えば０．５以上であるときに均一であるとし、ＲＡＭの存在比がその閾値よりも小さい領域があるときに均一でないとする。
【００４０】
図８に戻り、ＲＡＭがチップの上下左右方向に均一に分布していない場合（ステップＳ１１：Ｎｏ）、選択部１により、第３振り分け部４を選択する。それによって、第３振り分け部４により、第３振り分け処理を実行し（ステップＳ１５）、動作ＲＡＭ選択処理を終了する。一方、ＲＡＭがチップの上下左右方向に均一に分布している場合（ステップＳ１１：Ｙｅｓ）、選択部１により、ＲＡＭがチップの同心円上に均一に分布しているか否かを判定する（ステップＳ１２）。例えば、ＲＡＭがチップの周辺部のみまたは中央部のみに集中している場合は均一であるとし、ＲＡＭがチップの周辺部および中央部の両方に存在している場合は均一でないとする。具体的には、チップを同心円状に複数の領域に分割し、ＲＡＭ配置座標データ１２から各ＲＡＭの配置位置を求め、各領域に存在するＲＡＭの個数を数える。そして、領域間でＲＡＭの数に偏りがない場合は均一であるとし、偏りがある場合は均一でないとしてもよい。
【００４１】
例えば、図１１に示す例では、ＰおよびＱの各領域に存在するＲＡＭの数の比が３：１である。最も多くＲＡＭが存在する領域Ｐの比の値を１として換算すると、領域ＱのＲＡＭの存在比は０．３３であり、所定の閾値、例えば０．５よりも小さいので、均一でないとする。図１２に示す例では、ＰおよびＱの各領域に存在するＲＡＭの数の比が２：２（＝１：１）であるので、均一であるとする。
【００４２】
図８に戻り、ＲＡＭがチップの同心円上に均一に分布している場合（ステップＳ１２：Ｙｅｓ）、選択部１により、第１振り分け部２を選択する。それによって、第１振り分け部２により、第１振り分け処理を実行し（ステップＳ１３）、動作ＲＡＭ選択処理を終了する。一方、ＲＡＭがチップの同心円上に均一に分布していない場合（ステップＳ１２：Ｎｏ）、選択部１により、第２振り分け部３を選択する。それによって、第２振り分け部３により、第２振り分け処理を実行し（ステップＳ１４）、動作ＲＡＭ選択処理を終了する。
【００４３】
図１３、図１４および図１５は、それぞれ、第１振り分け処理、第２振り分け処理および第３振り分け処理が実行される代表的なＲＡＭの配置パターンを示す説明図である。図１３に示すパターンは、ＲＡＭがチップの周辺部のみに集中して配置されている。図１４に示すパターンは、ＲＡＭがチップの周辺部および中央部の両方に配置されている。図１５に示すパターンは、ＲＡＭがチップの上部もしくは下部、または左部もしくは右部に集中して配置されている。
【００４４】
（第１振り分け処理手順）
図１６は、第１振り分け処理の流れを示す説明図である。図１６に示すように、第１振り分け処理が開始されると、まず、ソート処理部２１により、消費電流値データ１１から取得したＲＡＭの平均消費電流値に基づいてＲＡＭを並べ替える（ステップＳ２１）。例えば、ソート処理部２１により、ＲＡＭを平均消費電流値の大きい順に並べる。次いで、グループ内消費電流計算部２２により、振り分け済みＲＡＭの平均消費電流の合計値（合計電流値）をグループごとに計算し、確認する（ステップＳ２２）。最初は、いずれのグループにもＲＡＭが振り分けられていないので、各グループの平均消費電流の合計値はゼロである。
【００４５】
次いで、グループ判定部２３により、ＲＡＭの平均消費電流値に基づいて振り分け対象ＲＡＭを振り分ける（ステップＳ２３）。例えば、グループ判定部２３により、平均消費電流の合計値が最も小さいグループに、その時点で平均消費電流値が最も大きい振り分け対象ＲＡＭを振り分ける。最初は、各グループの平均消費電流の合計値がゼロであるので、所定のルールに従って振り分け先のグループを選択する。次いで、グループ内消費電流計算部２２により、グループの平均消費電流の合計値に、ステップＳ２３で振り分けられたＲＡＭの平均消費電流値を加算する（ステップＳ２４）。そして、全てのＲＡＭについて振り分けが終了したか否かを判定し（ステップＳ２５）、振り分けられていないＲＡＭが残っている場合（ステップＳ２５：Ｎｏ）、ステップＳ２２に戻る。全てのＲＡＭの振り分けが終了したら（ステップＳ２５：Ｙｅｓ）、第１振り分け処理を終了する。
【００４６】
図１７は、図１６に示す第１振り分け処理でＲＡＭを振り分ける様子を模式的に示す説明図である。例えば、ＲＡＭ＿ａ、ＲＡＭ＿ｂ、ＲＡＭ＿ｃおよびＲＡＭ＿ｄの平均消費電流値がそれぞれ３０ｍＡ、１５０ｍＡ、５０ｍＡおよび１３０ｍＡであるとする。この場合、ソート処理部２１により、ＲＡＭ＿ｂ、ＲＡＭ＿ｄ、ＲＡＭ＿ｃ、ＲＡＭ＿ａの順にＲＡＭが並べ替えられる。そして、図１７において符号６１で示すように、第１振り分け処理の１巡目に、グループＡにＲＡＭ＿ｂが振り分けられ、グループＡの平均消費電流の合計値が１５０ｍＡとなる。次いで、符号６２で示すように、第１振り分け処理の２巡目において、グループＡよりもグループＢの方が平均消費電流の合計値が小さいので、グループＢにＲＡＭ＿ｄが振り分けられる。それによって、グループＢの平均消費電流の合計値が１３０ｍＡとなる。
【００４７】
次いで、符号６３で示すように、第１振り分け処理の３巡目において、グループＡよりもグループＢの方が平均消費電流の合計値が小さいので、グループＢにＲＡＭ＿ｃが振り分けられる。それによって、グループＢの平均消費電流の合計値が１８０ｍＡとなる。次いで、符号６４で示すように、第１振り分け処理の４巡目において、グループＢよりもグループＡの方が平均消費電流の合計値が小さいので、グループＡにＲＡＭ＿ａが振り分けられる。それによって、グループＡおよびグループＢの平均消費電流の合計値が１８０ｍＡとなる。このように、グループ内の平均消費電流の合計値が略同じになるように、ＲＡＭが振り分けられる。
【００４８】
（第２振り分け処理手順）
図１８は、第２振り分け処理の流れを示す説明図である。図１８に示すように、第２振り分け処理が開始されると、まず、重み付け係数取得部３１により、ＲＡＭ配置座標データ１２からチップ内のＲＡＭの配置位置を取得し、重み付け係数テーブル１３からＲＡＭの配置位置に対応する重み付け係数を取得する。そして、重み付け消費電流計算部３２により、消費電流値データ１１から取得したＲＡＭの平均消費電流値および重み付け係数に基づいて重み付け消費電流値を計算する（ステップＳ３１）。例えば、重み付け消費電流計算部３２により、ＲＡＭの平均消費電流値に重み付け係数をかけた値を計算し、重み付け消費電流値とする。
【００４９】
そして、全てのＲＡＭについて重み付け消費電流値を計算したか否かを判定し（ステップＳ３２）、計算の済んでいないＲＡＭが残っている場合（ステップＳ３２：Ｎｏ）、ステップＳ３１に戻る。全てのＲＡＭについて重み付け消費電流値の計算が終了したら（ステップＳ３２：Ｙｅｓ）、ソート処理部３３により、ＲＡＭの重み付け消費電流値に基づいてＲＡＭを並べ替える（ステップＳ３３）。例えば、ソート処理部３３により、ＲＡＭを重み付け消費電流値の大きい順に並べる。次いで、グループ内消費電流計算部３４により、振り分け済みＲＡＭの重み付け消費電流の合計値（合計電流値）をグループごとに計算し、確認する（ステップＳ３４）。最初は、いずれのグループにもＲＡＭが振り分けられていないので、各グループの重み付け消費電流の合計値はゼロである。
【００５０】
次いで、グループ判定部３５により、ＲＡＭの重み付け消費電流値に基づいて振り分け対象ＲＡＭを振り分ける（ステップＳ３５）。例えば、グループ判定部３５により、重み付け消費電流の合計値が最も小さいグループに、その時点で重み付け消費電流値が最も大きい振り分け対象ＲＡＭを振り分ける。最初は、各グループの重み付け消費電流の合計値がゼロであるので、所定のルールに従って振り分け先のグループを選択する。次いで、グループ内消費電流計算部３４により、グループの重み付け消費電流の合計値に、ステップＳ３５で振り分けられたＲＡＭの重み付け消費電流値を加算する（ステップＳ３６）。そして、全てのＲＡＭについて振り分けが終了したか否かを判定し（ステップＳ３７）、振り分けられていないＲＡＭが残っている場合（ステップＳ３７：Ｎｏ）、ステップＳ３４に戻る。全てのＲＡＭの振り分けが終了したら（ステップＳ３７：Ｙｅｓ）、第２振り分け処理を終了する。
【００５１】
図１９は、重み付け係数の異なる領域を示す説明図である。図１９に示す例では、チップの４辺に電源ソースがあるとする。この場合、チップの中心に近い方が抵抗が高くなるので、チップの周辺領域Ｒ、その内側の領域Ｔ、チップの中央領域Ｕの順で重み付け係数が大きくなる。例えば、領域Ｒ、領域Ｔおよび領域Ｕの重み付け係数がそれぞれ１．０、１．３および１．５であり、ＲＡＭ＿ａ、ＲＡＭ＿ｂ、ＲＡＭ＿ｃおよびＲＡＭ＿ｄの平均消費電流値がそれぞれ３０ｍＡ、１５０ｍＡ、５０ｍＡおよび１３０ｍＡであり、ＲＡＭ＿ａが領域Ｕに存在し、ＲＡＭ＿ｂおよびＲＡＭ＿ｃが領域Ｒに存在し、ＲＡＭ＿ｄが領域Ｔに存在するとする。ＲＡＭ＿ａ、ＲＡＭ＿ｂ、ＲＡＭ＿ｃおよびＲＡＭ＿ｄの重み付け消費電流値は、それぞれ、４５ｍＡ（＝３０ｍＡ×１．５）、１５０ｍＡ（＝１５０ｍＡ×１．０）、５０ｍＡ（＝５０ｍＡ×１．０）および１６９ｍＡ（＝１３０ｍＡ×１．３）となるので、ソート処理部３３により、ＲＡＭ＿ｄ、ＲＡＭ＿ｂ、ＲＡＭ＿ｃ、ＲＡＭ＿ａの順にＲＡＭが並べ替えられる。
【００５２】
図２０は、第３振り分け処理の流れを示す説明図である。図２０に示すように、第３振り分け処理が開始されると、まず、前記ステップＳ３１〜ステップＳ３３と同様にして、ＲＡＭの重み付け消費電流値に基づいてＲＡＭを並べ替える（ステップＳ４１〜ステップＳ４３）。次いで、ＲＡＭ間距離計算部４４により、その時点での振り分け対象ＲＡＭとグループ内の振り分け済みＲＡＭとの距離をグループごとに計算する（ステップＳ４４）。例えば、ＲＡＭ間距離計算部４４により、ＲＡＭ配置座標データ１２から取得したＲＡＭの配置座標に基づいてＲＡＭ間の距離を計算する。最初は、いずれのグループにもＲＡＭが振り分けられていないので、ＲＡＭ間距離を計算しなくてよい。
【００５３】
次いで、グループ内消費電流計算部４５により、振り分け済みＲＡＭの重み付け消費電流値、およびその時点での振り分け対象ＲＡＭと振り分け済みＲＡＭとの距離に基づいて、振り分け済みＲＡＭの距離依存重み付け消費電流を計算する（ステップＳ４５）。例えば、グループ内消費電流計算部４５により、振り分け済みＲＡＭの重み付け消費電流値をＲＡＭ間距離で割り、振り分け済みＲＡＭの距離依存重み付け消費電流値を取得する。そして、グループ内の全てのＲＡＭについて距離依存重み付け消費電流値を計算したか否かを判定し（ステップＳ４６）、計算の済んでいないＲＡＭが残っている場合（ステップＳ４６：Ｎｏ）、ステップＳ４４に戻る。最初は、いずれのグループにもＲＡＭが振り分けられていないので、距離依存重み付け消費電流値を計算しなくてよい。
【００５４】
グループ内の全てのＲＡＭについて距離依存重み付け消費電流値の計算が終了したら（ステップＳ４６：Ｙｅｓ）、グループ内消費電流計算部４５により、グループ内のＲＡＭの距離依存重み付け消費電流の合計の平均値（合計電流値）をグループごとに計算する（ステップＳ４７）。そして、全てのグループについて距離依存重み付け消費電流の合計の平均値（合計電流値）を計算したか否かを判定し（ステップＳ４８）、計算の済んでいないグループが残っている場合（ステップＳ４８：Ｎｏ）、ステップＳ４４に戻る。最初は、いずれのグループにもＲＡＭが振り分けられていないので、距離依存重み付け消費電流の合計の平均値を計算しなくてよい。
【００５５】
全てのグループについて距離依存重み付け消費電流の合計の平均値（合計電流値）の計算が終了したら（ステップＳ４８：Ｙｅｓ）、グループ判定部４６により、ＲＡＭの距離依存重み付け消費電流の合計の平均値に基づいて振り分け対象ＲＡＭを振り分ける（ステップＳ４９）。例えば、グループ判定部４６により、その時点で重み付け消費電流値が最も大きい振り分け対象ＲＡＭを、そのＲＡＭに対する振り分け済みＲＡＭの距離依存重み付け消費電流の合計の平均値が最も小さいグループに振り分ける。最初は、各グループの距離依存重み付け消費電流の合計の平均値がゼロであるので、所定のルールに従って振り分け先のグループを選択する。そして、全てのＲＡＭについて振り分けが終了したか否かを判定し（ステップＳ５０）、振り分けられていないＲＡＭが残っている場合（ステップＳ５０：Ｎｏ）、ステップＳ４４に戻る。全てのＲＡＭの振り分けが終了したら（ステップＳ５０：Ｙｅｓ）、第３振り分け処理を終了する。
【００５６】
図２１および図２２は、図２０に示す第３振り分け処理でＲＡＭを振り分ける様子を模式的に示す説明図である。図２１に示すように、例えば、ＲＡＭ＿ａとＲＡＭ＿ｂとのＲＡＭ間距離、ＲＡＭ＿ａとＲＡＭ＿ｃとのＲＡＭ間距離およびＲＡＭ＿ａとＲＡＭ＿ｄとのＲＡＭ間距離がそれぞれｘ２、ｘ３およびｘ１であるとする。また、ＲＡＭ＿ｂ、ＲＡＭ＿ｃおよびＲＡＭ＿ｄの重み付け消費電流値がそれぞれｙ２、ｙ３およびｙ１であるとする。そして、図２２に示すように、既にグループＡにＲＡＭ＿ｄが振り分けられ、グループＢにＲＡＭ＿ｂとＲＡＭ＿ｃが振り分けられているとする。
【００５７】
この状態で、ＲＡＭ＿ａが振り分け対象ＲＡＭである場合、グループ内消費電流計算部４５により、グループＡに対して次の（１）式を計算してグループＡの距離依存重み付け消費電流の合計の平均値ｉ１を求め、グループＢに対して次の（２）式を計算してグループＢの距離依存重み付け消費電流の合計の平均値ｉ２を求める。そして、グループ判定部４６により、ｉ１≦ｉ２である場合には、ＲＡＭ＿ａはグループＡに割り振られる。ｉ１＞ｉ２である場合には、ＲＡＭ＿ａはグループＢに割り振られる。
ｉ１＝ｙ１／ｘ１  ・・・（１）
ｉ２＝（ｙ２／ｘ２＋ｙ３／ｘ３）／２  ・・・（２）
【００５８】
（コアノイズ解析処理）
コアノイズ解析によって、動的な電源ノイズが求められる。コアノイズ解析を行うにあたっては、電源パッケージ抵抗、インダクタンス、コア部電源抵抗、コア部電源間容量およびコア部電流源からなるコアノイズ解析モデルが作成される。コアノイズ解析モデルとして、集積回路のレイアウト領域を複数の分割ユニット（パワーユニット）に分割し、電源配線、電源間容量および電流源をパワーユニット単位で表現した簡易モデルが用いられてもよい。あるいは、電源配線結果およびセル配置結果に基づいて作成された詳細な電源網モデルが用いられてもよい。
【００５９】
図２３は、コアノイズ解析に用いられる簡易モデルを示す説明図である。図２３に示すように、チップのレイアウト領域７１は、複数のパワーユニット７２に分割される。図２３において、符号７３は電源パッケージによる抵抗であり、符号７４は電源パッケージによるインダクタンスである。また、パワーユニット７２において、符号７５はコア電源抵抗であり、符号７６は電流源であり、符号７７は電源間容量であり、符号７８はＶＤＤＩノイズ観測点であり、符号７９はＶＳＳノイズ観測点である。電流源としては、平均消費電流から三角波形や台形波形を作成して用いられるか、ユニットセルやＲＡＭ単体のシミュレーション結果から求めた電流波形が用いられる。ＲＡＭ部についてはＲＡＭの電流源が用いられる。ロジック部についてはロジックの電流源が用いられる。このような簡易モデルの構成およびこの簡易モデルを用いたコアノイズ解析については、従来同様である。
【００６０】
（ＲＡＭ部ドロップピーク判定処理）
図２４は、動作ＲＡＭの電源ドロップ量とＲＡＭの最低保障電圧との比較の様子を示す説明図である。図２４において、動作ＲＡＭの電源波形の最も電圧が低い谷部分と、ＲＡＭの最低保障電圧とが比較される。
【００６１】
（集積回路の設計開始から製造終了までの手順）
図２５は、集積回路の設計開始から製造終了までの流れを示す説明図である。図２５に示すように、まず、論理設計を行う（ステップＳ６１）。次いで、上述した実施の形態により同時に動作させることに決定されたＲＡＭの個数の情報に基づいて、テスト合成を行う（ステップＳ６２）。次いで、レイアウト設計を行い（ステップＳ６３）、実際に集積回路を製造する（ステップＳ６４）。その後、製造された集積回路のテストを行う（ステップＳ６５）。テスト合成の際に用いられる、同時に動作させるＲＡＭの個数が適切でない場合、ステップＳ６５のテストでＲＡＭが動作しない状態となり、テストを正常に行うことができないことがある。しかし、実施の形態によれば、設計時に、同時に動作するＲＡＭを適切に決定することができるので、テストの際にＲＡＭが動作しない状態となるのを防ぐことができる。従って、テストを正常に行うことができる。
【００６２】
なお、本実施の形態で説明した集積回路設計方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００６３】
また、本実施の形態で説明した集積回路設計装置は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、例えば、上述した集積回路設計装置の機能１〜８，２１〜２３，３１〜３５，４１〜４６をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、集積回路設計装置を製造することができる。
【００６４】
以上に述べた実施形態によれば、集積回路の製造後に実施されるテストの回数が減り、テスト費用の削減を図ることができる集積回路設計プログラム、集積回路設計装置および集積回路設計方法が提供される。また、そのテストを正常に行うことができ、それによって設計から製造に至るまでの全体の時間および費用を削減することができる集積回路設計プログラム、集積回路設計装置および集積回路設計方法が提供される。
【００６５】
以上に述べた実施形態によれば、設計段階において、複数のＲＡＭが、同時に動作するＲＡＭごとのグループに適切に分けられるので、集積回路の製造後に実施されるテストにおいて、より少ない回数でテストが終了する。従って、１グループ当たりのＲＡＭの個数を少なく見積もった場合に比べて、テスト費用を少なくすることができる。また、そのテスト時に、ＲＡＭの動作に起因するコア部の電源ノイズが許容範囲に収まるので、ＲＡＭが正常に動作し、テストを正常に行うことができる。この場合には、再び設計をやり直さずに済むので、設計から製造に至るまでの全体の時間および費用を削減することができる。
【００６６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００６７】
（付記１）コンピュータを、複数の素子を電気的特性値に基づいて複数のグループに振り分ける振り分け手段、前記振り分け手段により前記素子が振り分けられた各グループについてコアノイズを解析する解析手段、前記解析手段によるコアノイズ解析によって得られた前記素子の電源ドロップ量が所定の条件を満たすか否かを判定する判定手段、前記判定手段により前記素子の電源ドロップ量が所定の条件を満たすと判定された前記グループについて当該グループに含まれる前記素子を同時に動作させる素子に決定する決定手段、前記判定手段により前記素子の電源ドロップ量が所定の条件を満たさないと判定された前記グループについて前記振り分け手段による前記素子の振り分け条件を変更する変更手段、として機能させることを特徴とする集積回路設計プログラム。
【００６８】
（付記２）前記振り分け手段として、前記コンピュータを、振り分け済み素子の消費電流の合計値を前記グループごとに計算するグループ内消費電流計算手段、前記グループ内消費電流計算手段により得られた前記各グループの前記消費電流の合計値に基づいて振り分け対象素子の振り分け先グループを判定するグループ判定手段、として機能させることを特徴とする付記１に記載の集積回路設計プログラム。
【００６９】
（付記３）前記振り分け手段として、前記コンピュータを、前記素子の配置位置に基づいて前記素子の消費電流値に重み付けをする重み付け消費電流計算手段、前記重み付け消費電流計算手段により得られた振り分け済み素子の重み付け消費電流の合計値を前記グループごとに計算するグループ内消費電流計算手段、前記グループ内消費電流計算手段により得られた前記各グループの前記重み付け消費電流の合計値に基づいて振り分け対象素子の振り分け先グループを判定するグループ判定手段、として機能させることを特徴とする付記１に記載の集積回路設計プログラム。
【００７０】
（付記４）前記振り分け手段として、前記コンピュータを、前記素子の配置位置に基づいて前記素子の消費電流値に重み付けをする重み付け消費電流計算手段、振り分け対象素子と振り分け済み素子との距離を前記グループごとに計算する素子間距離計算手段、前記重み付け消費電流計算手段により得られた前記振り分け済み素子の重み付け消費電流値および前記素子間距離計算手段により得られた素子間距離に基づいて、前記振り分け済み素子の前記素子間距離を考慮した重み付け消費電流の合計の平均値を前記グループごとに計算するグループ内消費電流計算手段、前記グループ内消費電流計算手段により得られた前記各グループの前記素子間距離を考慮した重み付け消費電流の合計の平均値に基づいて前記振り分け対象素子の振り分け先グループを判定するグループ判定手段、として機能させることを特徴とする付記１に記載の集積回路設計プログラム。
【００７１】
（付記５）前記コンピュータを、付記２に記載の前記振り分け手段、付記３に記載の前記振り分け手段および付記４に記載の前記振り分け手段のうちの少なくとも二つの手段として機能させるとともに、前記素子の分布に基づいていずれか一つの前記振り分け手段を選択する選択手段、として機能させることを特徴とする付記１に記載の集積回路設計プログラム。
【００７２】
（付記６）複数の素子を電気的特性値に基づいて複数のグループに振り分ける振り分け部と、前記振り分け部により前記素子が振り分けられた各グループについてコアノイズを解析する解析部と、前記解析部によるコアノイズ解析によって得られた前記素子の電源ドロップ量が所定の条件を満たすか否かを判定する判定部と、前記判定部により前記素子の電源ドロップ量が所定の条件を満たすと判定された前記グループについて当該グループに含まれる前記素子を同時に動作させる素子に決定する決定部と、前記判定部により前記素子の電源ドロップ量が所定の条件を満たさないと判定された前記グループについて前記振り分け部による前記素子の振り分け条件を変更する変更部と、を備えることを特徴とする集積回路設計装置。
【００７３】
（付記７）前記振り分け部は、振り分け済み素子の消費電流の合計値を前記グループごとに計算するグループ内消費電流計算部と、前記グループ内消費電流計算部により得られた前記各グループの前記消費電流の合計値に基づいて振り分け対象素子の振り分け先グループを判定するグループ判定部と、を備えることを特徴とする付記６に記載の集積回路設計装置。
【００７４】
（付記８）前記振り分け部は、前記素子の配置位置に基づいて前記素子の消費電流値に重み付けをする重み付け消費電流計算部と、前記重み付け消費電流計算部により得られた振り分け済み素子の重み付け消費電流の合計値を前記グループごとに計算するグループ内消費電流計算部と、前記グループ内消費電流計算部により得られた前記各グループの前記重み付け消費電流の合計値に基づいて振り分け対象素子の振り分け先グループを判定するグループ判定部と、を備えることを特徴とする付記６に記載の集積回路設計装置。
【００７５】
（付記９）前記振り分け部は、前記素子の配置位置に基づいて前記素子の消費電流値に重み付けをする重み付け消費電流計算部と、振り分け対象素子と振り分け済み素子との距離を前記グループごとに計算する素子間距離計算部と、前記重み付け消費電流計算部により得られた前記振り分け済み素子の重み付け消費電流値および前記素子間距離計算部により得られた素子間距離に基づいて、前記振り分け済み素子の前記素子間距離を考慮した重み付け消費電流の合計の平均値を前記グループごとに計算するグループ内消費電流計算部と、前記グループ内消費電流計算部により得られた前記各グループの前記素子間距離を考慮した重み付け消費電流の合計の平均値に基づいて前記振り分け対象素子の振り分け先グループを判定するグループ判定部と、を備えることを特徴とする付記６に記載の集積回路設計装置。
【００７６】
（付記１０）付記７に記載の前記振り分け部、付記８に記載の前記振り分け部および付記９に記載の前記振り分け部のうちの少なくとも二つを備え、前記素子の分布に基づいていずれか一つの前記振り分け部を選択する選択部、をさらに備えることを特徴とする付記６に記載の集積回路設計装置。
【００７７】
（付記１１）複数の素子を電気的特性値に基づいて複数のグループに振り分ける振り分けステップと、前記振り分けステップにより前記素子が振り分けられた各グループについてコアノイズを解析する解析ステップと、前記解析ステップによるコアノイズ解析によって得られた前記素子の電源ドロップ量が所定の条件を満たすか否かを判定する判定ステップと、前記判定ステップにより前記素子の電源ドロップ量が所定の条件を満たすと判定された前記グループについて当該グループに含まれる前記素子を同時に動作させる素子に決定する決定ステップと、前記判定ステップにより前記素子の電源ドロップ量が所定の条件を満たさないと判定された前記グループについて前記振り分けステップによる前記素子の振り分け条件を変更する変更ステップと、を含むことを特徴とする集積回路設計方法。
【００７８】
（付記１２）前記振り分けステップは、振り分け済み素子の消費電流の合計値を前記グループごとに計算するグループ内消費電流計算ステップと、前記グループ内消費電流計算ステップにより得られた前記各グループの前記消費電流の合計値に基づいて振り分け対象素子の振り分け先グループを判定するグループ判定ステップと、を含むことを特徴とする付記１１に記載の集積回路設計方法。
【００７９】
（付記１３）前記振り分けステップは、前記素子の配置位置に基づいて前記素子の消費電流値に重み付けをする重み付け消費電流計算ステップと、前記重み付け消費電流計算ステップにより得られた振り分け済み素子の重み付け消費電流の合計値を前記グループごとに計算するグループ内消費電流計算ステップと、前記グループ内消費電流計算ステップにより得られた前記各グループの前記重み付け消費電流の合計値に基づいて振り分け対象素子の振り分け先グループを判定するグループ判定ステップと、を含むことを特徴とする付記１１に記載の集積回路設計方法。
【００８０】
（付記１４）前記振り分けステップは、前記素子の配置位置に基づいて前記素子の消費電流値に重み付けをする重み付け消費電流計算ステップと、振り分け対象素子と振り分け済み素子との距離を前記グループごとに計算する素子間距離計算ステップと、前記重み付け消費電流計算ステップにより得られた前記振り分け済み素子の重み付け消費電流値および前記素子間距離計算ステップにより得られた素子間距離に基づいて、前記振り分け済み素子の前記素子間距離を考慮した重み付け消費電流の合計の平均値を前記グループごとに計算するグループ内消費電流計算ステップと、前記グループ内消費電流計算ステップにより得られた前記各グループの前記素子間距離を考慮した重み付け消費電流の合計の平均値に基づいて前記振り分け対象素子の振り分け先グループを判定するグループ判定ステップと、を含むことを特徴とする付記１１に記載の集積回路設計方法。
【００８１】
（付記１５）付記１２に記載の前記振り分けステップ、付記１３に記載の前記振り分けステップおよび付記１４に記載の前記振り分けステップのうちの少なくとも二つを含み、前記素子の分布に基づいていずれか一つの前記振り分けステップを選択する選択ステップ、をさらに含むことを特徴とする付記１１に記載の集積回路設計方法。
【図面の簡単な説明】
【００８２】
【図１】実施の形態にかかる集積回路設計装置の構成を示す説明図である。
【図２】第１振り分け部の構成を示す説明図である。
【図３】第２振り分け部の構成を示す説明図である。
【図４】第３振り分け部の構成を示す説明図である。
【図５】実施の形態にかかるコンピュータ装置のハードウェア構成を示す説明図である。
【図６】実施の形態にかかる集積回路設計処理の全体の流れを示す説明図である。
【図７】ＲＡＭをグループ化する様子を模式的に示す説明図である。
【図８】動作ＲＡＭ選択処理の流れを示す説明図である。
【図９】動作ＲＡＭ選択処理における判定基準を示す説明図である。
【図１０】動作ＲＡＭ選択処理における判定基準を示す説明図である。
【図１１】動作ＲＡＭ選択処理における判定基準を示す説明図である。
【図１２】動作ＲＡＭ選択処理における判定基準を示す説明図である。
【図１３】第１振り分け処理が実行される代表的なＲＡＭの配置パターンを示す説明図である。
【図１４】第２振り分け処理が実行される代表的なＲＡＭの配置パターンを示す説明図である。
【図１５】第３振り分け処理が実行される代表的なＲＡＭの配置パターンを示す説明図である。
【図１６】第１振り分け処理の流れを示す説明図である。
【図１７】第１振り分け処理でＲＡＭを振り分ける様子を模式的に示す説明図である。
【図１８】第２振り分け処理の流れを示す説明図である。
【図１９】重み付け係数の異なる領域を示す説明図である。
【図２０】第３振り分け処理の流れを示す説明図である。
【図２１】第３振り分け処理でＲＡＭを振り分ける様子を模式的に示す説明図である。
【図２２】第３振り分け処理でＲＡＭを振り分ける様子を模式的に示す説明図である。
【図２３】コアノイズ解析に用いられる簡易モデルを示す説明図である。
【図２４】動作ＲＡＭの電源ドロップ量とＲＡＭの最低保障電圧との比較の様子を示す説明図である。
【図２５】集積回路の設計開始から製造終了までの流れを示す説明図である。
【符号の説明】
【００８３】
１  選択部
２，３，４  振り分け部
５  解析部
６  判定部
７  決定部
８  変更部
２２，３４，４５  グループ内消費電流計算部
２３，３５，４６  グループ判定部
３２，４２  重み付け消費電流計算部
４４  素子間距離計算部
【図１】
2010134498.tif 000003
【図２】
2010134498.tif 000004
【図３】
2010134498.tif 000005
【図４】
2010134498.tif 000006
【図５】
2010134498.tif 000007
【図６】
2010134498.tif 000008
【図７】
2010134498.tif 000009
【図８】
2010134498.tif 000010
【図９】
2010134498.tif 000011
【図１０】
2010134498.tif 000012
【図１１】
2010134498.tif 000013
【図１２】
2010134498.tif 000014
【図１３】
2010134498.tif 000015
【図１４】
2010134498.tif 000016
【図１５】
2010134498.tif 000017
【図１６】
2010134498.tif 000018
【図１７】
2010134498.tif 000019
【図１８】
2010134498.tif 000020
【図１９】
2010134498.tif 000021
【図２０】
2010134498.tif 000022
【図２１】
2010134498.tif 000023
【図２２】
2010134498.tif 000024
【図２３】
2010134498.tif 000025
【図２４】
2010134498.tif 000026
【図２５】
2010134498.tif 000027