(57)【特許請求の範囲】
【請求項１】
半導体集積回路のレイアウト方法であって、
設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理と、
上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理と、
をコンピュータが行うことを特徴とする、半導体集積回路のレイアウト方法。
【請求項２】
上記パワードメインに対応する電圧アイランドを形成するためのグルーピング処理を、上記コンピュータが行う請求項１記載の半導体集積回路のレイアウト方法。
【請求項３】
回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もり結果を指標として、最適な電圧アイランドを有する処理結果が得られたか否かの判別を上記コンピュータが行い、その判別結果に応じて、上記クラスタ分割処理に戻り、条件を変更してパワードメインの作成をやり直す請求項２記載の半導体集積回路のレイアウト方法。
【請求項４】
上記パワードメインの情報を上記コンピュータが制御することにより記憶装置に格納する請求項３記載の半導体集積回路のレイアウト方法。
【請求項５】
上記記憶装置に格納されているパワードメインの情報を読み込んで、当該パワードメインに対応する電圧アイランドを形成するためのグルーピング処理を上記コンピュータが行う請求項４記載の半導体集積回路のレイアウト方法。
【請求項６】
上記記憶装置から電圧アイランド情報を読み込んで、当該電圧アイランド情報の配置配線可否を判定する配置配線可否処理を含み、
上記配置配線可否処理は、所定のタイミング条件を満足することができない箇所が存在する場合に、所定の間隔毎に、バッファを配置可能なバッファ領域を形成する処理を上記コンピュータが行う請求項３記載の半導体集積回路のレイアウト方法。
【請求項７】
半導体集積回路のレイアウト方法であって、
設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処
理と、
上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で
揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理と、
設計された回路のネットリストを記憶装置から読み込む処理と、
上記回路のネットリストに基づいて、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりを行い、この見積もり結果を指標として、上記パワードメインに対応する電圧アイランドを得るための電圧アイランド選択処理と、をコンピュータが行うことを特徴とする、半導体集積回路のレイアウト方法。
【請求項８】
設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理と、
上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理と、
をコンピュータに実行させるためのプログラム。
【請求項９】
設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理と、
上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理と、
設計された回路のネットリストを記憶装置から読み込む処理と、
上記回路のネットリストに基づいて、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりを行い、この見積もり結果を指標として、上記パワードメインに対応する電圧アイランドを得るための電圧アイランド選択処理と、をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のレイアウト技術に関し、特に携帯電話やＰＤＡ（Personal Digital Assistant；携帯情報端末）などの携帯機器の回路設計に適用して有効な技術に関する。
【背景技術】
【０００２】
近年、需要が増加している携帯電話やＰＤＡなど携帯機器の回路設計においては、低消費電力化が不可欠となっている。チップ上の論理ブロックをいくつかのグループに分けて、グループごとに電源のオン、オフ制御を行う技術は、消費電力を削減する上で有効とされる。ここで、単一の電源電圧レベルで動作する論理ブロックのグループを「パワードメイン」といい、単一の電源電圧レベルで動作する論理ブロックの物理的な配置エリアを「電圧アイランド」という。
【０００３】
特許文献１には、動作合成レベルやＲＴＬ（Register Transfer Level；レジスタ転送レベル）といった機能設計レベルにおいて、電圧アイランドを作成する方法が記載されている。それによれば、機能設計レベルにおいて、面積、タイミング、消費電力を見積もり、見積もった値を基に電圧アイランドを作成する。例えば、機能設計レベルにおいて、タイミング違反を改善する場合、あるいは、面積を小さくする場合は、電源電圧値をより高い値に割り当てることにより改善が図られる。また、消費電力を削減する場合は、電源電圧値をより小さい値に割り当てることにより改善が図られる。電圧アイランドを作成し、電圧アイランドの設置による影響を動作合成過程にフィードバックを行う。このことにより、タイミング、面積、消費電力の各観点で最適化された回路を短期間で得ることが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１７６４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
半導体集積回路における消費電力設計手法の１つとして、回路の消費電力を最適化する多電源設計手法を挙げることができる。この多電源設計手法では、電源遮断技術、複数電源技術、ＤＶＦＳ（Dynamic Voltage Frequency Scaling；基板バイアス制御）技術が用いられる。電源遮断技術によれば、リーク電流を削減するために、使用しない論理ブロック（単に「ブロック」ともいう）の電源が一時的にオフされる。電源遮断の場合、電源のオンとオフをコントロールする回路が必要となり、複数電源の場合、低い電源電圧のブロックから高い電源電圧のブロックへ接続する配線間にはレベルシフタを挿入する必要があり、回路内でのオーバヘッドが発生してしまうが、動作時の個々のブロックに対して最適な電源電圧を供給できることによる消費電力の削減効果は非常に大きい。複数電源技術によれば、電圧レベルが互いに異なる複数の電源電圧が形成され、個々のブロックに最適な電源電圧が割り当てられる。ＤＶＦＳ技術によれば、処理すべき負荷が軽い場合に、電源電圧や動作周波数が低下されて、消費電力の低減が図られる。
【０００６】
しかしながら、従来の多電源設計手法では、電源遮断技術、複数電源技術、ＤＶＦＳ技術が用いられているものの、動作時の個々のブロックに対して最適な電源電圧を供給する技術は、自動化されていないため、人手（設計者の手作業）に委ねざるを得ない。従って設計者の技術力によっては、パワードメインの最適化が十分で無い場合もあり得る。
【０００７】
特許文献１の記載は、複数電源に関する提案であり、電源遮断や、ＤＦＶＳについては考慮されていない。また特許文献１には、電圧アイランドの論理レベルであるパワードメインの作成を自動化することについては記載されていない。さらに特許文献１には、ブロックの物理的な配置を考慮したパワードメインの作成についても記載されていない。
【０００８】
本発明の目的は、パワードメインを自動作成するための技術を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理と、上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理とをコンピュータで行う。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１３】
すなわち、パワードメインを自動作成するための技術を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明にかかる半導体集積回路のレイアウト方法の一例とされる電圧アイランド作成処理の説明図である。
【図２】図１に示される電圧アイランド作成処理の結果を用いた配置配線・回路最適化処理の説明図である。
【図３】本発明にかかる半導体集積回路のレイアウト方法が実施されるワークステーションの構成例ブロック図である。
【図４】図１に示される電圧アイランド作成処理におけるクラスタ分割処理の説明図である。
【図５】図１に示される電圧アイランド作成処理におけるクラスタ配置処理の説明図である。
【図６】図１に示される電圧アイランド作成処理におけるグルーピング処理の説明図である。
【図７】図１に示される電圧アイランド作成処理における電圧アイランド作成の説明図である。
【図８】図１に示される電圧アイランド作成処理における電圧アイランド作成の説明図である。
【図９】図１に示される電圧アイランド作成処理におけるバッファ領域生成処理の説明図である。
【図１０】図１に示される電圧アイランド作成処理におけるクラスタ分割処理の説明図である。
【図１１】図１に示される電圧アイランド作成処理におけるグルーピング処理の説明図である。
【図１２】本発明にかかる半導体集積回路のレイアウト方法の一例とされる電圧アイランド作成処理の別の説明図である。
【図１３】図１２に示される電圧アイランド作成処理におけるクラスタ分割処理の説明図である。
【図１４】本発明にかかる半導体集積回路のレイアウト方法の一例とされる電圧アイランド作成処理の別の説明図である。
【図１５】図３に示されるワークステーションを用いた配置配線可否判別処理の説明図である。
【発明を実施するための形態】
【００１５】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕本発明の代表的な実施の形態に係る半導体集積回路のレイアウト方法は、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理（９）と、上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理（１０）とがコンピュータで行われる。これにより、パワードメインは、コンピュータで行われる処理によって得られるため、人手（設計者の手作業）によって求める場合に比べてパワードメインの最適化を図ることができる。
【００１７】
〔２〕上記〔１〕において、上記パワードメインに対応する電圧アイランドを形成するためのグルーピング処理（１２）を上記コンピュータで行う。
【００１８】
〔３〕上記〔２〕において、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もり結果を指標として、最適な電圧アイランドを有する処理結果が得られたか否かの判別（１５）を上記コンピュータで行い、その判別結果に応じて、上記クラスタ分割処理に戻り、条件を変更してパワードメインの作成をやり直す。
【００１９】
〔４〕上記〔３〕において、上記パワードメインの情報を上記コンピュータの制御により記憶装置（３３）に格納する。
【００２０】
〔５〕上記〔４〕において、上記記憶装置に格納されているパワードメインの情報を読み込んで、当該パワードメインに対応する電圧アイランドを形成するためのグルーピング処理（１２）を上記コンピュータで行う。
【００２１】
〔６〕上記〔３〕において、上記記憶装置（３３）から電圧アイランド情報を読み込んで、当該電圧アイランド情報の配置配線可否を判定する配置配線可否処理を含み、上記配置配線可否処理は、所定のタイミング条件を満足することができない箇所が存在する場合に、所定の間隔毎に、バッファを配置可能なバッファ領域を形成する処理（１３）を上記コンピュータで行う。
【００２２】
〔７〕本発明の代表的な実施の形態に係る半導体集積回路の別のレイアウト方法は、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理（９）と、上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理（１０）とをコンピュータで行う。さらに、設計された回路のネットリストを記憶装置から読み込む処理と、上記回路のネットリストに基づいて、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりを行い、この見積もり結果を指標として、上記パワードメインに対応する電圧アイランドを得るための電圧アイランド選択処理（１５）とをコンピュータで行う。これにより、パワードメインは、コンピュータで行われる処理によって得られるため、人手（設計者の手作業）によって求める場合に比べてパワードメインの最適化を図ることができる。
【００２３】
〔８〕本発明の代表的な実施の形態に係るプログラムは、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理（９）と、上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理（１０）と、をコンピュータに実行させる。
【００２４】
〔９〕本発明の代表的な実施の形態に係る別のプログラムは、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理（９）と、上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理（１０）とをコンピュータで行う。さらに、設計された回路のネットリストを記憶装置から読み込む処理と、上記回路のネットリストに基づいて、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりを行い、この見積もり結果を指標として、上記パワードメインに対応する電圧アイランドを得るための電圧アイランド選択処理（１５）とをコンピュータに実行させる。これにより、パワードメインは、コンピュータで行われる処理によって得られるため、人手（設計者の手作業）によって求める場合に比べてパワードメインの最適化を図ることができる。
【００２５】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２６】
《実施の形態１》
図３には、本発明にかかる半導体集積回路レイアウト方法の実施に用いられるワークステーションが示される。図３に示されるワークステーション３０は、特に制限されないが、ディスプレイ３１、ワークステーション本体３２、記憶装置３３、及び入力装置３４を含んで成る。ワークステーション本体３２は、所定のプログラムを実行するためのＣＰＵ（中央処理装置）を備えており、このワークステーション本体３２が、本発明におけるコンピュータの一例とされる。記憶装置３３は、例えばハードディスク装置であり、ワークステーション本体３２で実行されるプログラムや、携帯電話又はＰＤＡなどの携帯機器に搭載される半導体集積回路のレイアウトに使用される各種情報が格納されている。入力装置３４は、例えばキーボードやマウスであり、半導体集積回路の設計者の操作により、ワークステーション本体３２に対して各種情報を入力することができる。ディスプレイ３１は、ワークステーション本体５２から供給された表示用データを可視化する。
【００２７】
図１には、ワークステーション３０を用いた電圧アイランド作成処理の流れが示される。
【００２８】
電圧アイランド作成処理７は、ワークステーション本体３２で行われるが、この電圧アイランド作成処理７の前に、機能マッピング用ライブラリデータ作成処理５を実行させるためのプログラムがワークステーション本体３２に読み込まれ、当該プログラムが実行されることによって、機能マッピング用ライブラリデータ６が作成される。この機能マッピング用ライブラリデータは、ＲＴＬ１とネットリスト用ライブラリデータ２とに基づいて作成される。ＲＴＬ１は、同期デジタル回路を記述する手法により、回路の動作をレジスタ間の信号の流れとそれに対する論理演算の組み合わせで構成されたものであり、ネットリスト用ライブラリデータ２は、ネットリストを作成するためのライブラリデータである。このＲＴＬ１やネットリスト用ライブラリデータ２は、予め記憶装置３３に格納されている。機能マッピング用ライブラリデータ６には、加算器の面積と動作タイミングと消費電力、乗算器の面積と動作タイミングと消費電力というように、演算器毎に、その面積と動作タイミングと消費電力との各情報が設定される。このような機能マッピング用ライブラリデータ６によれば、機能マッピング結果に対して、回路全体の面積と動作タイミングと消費電力とを見積もることが可能になる。作成された機能マッピング用ライブラリデータ６は、記憶装置３３に格納される。
【００２９】
次に、ワークステーション本体３２に、電圧アイランド作成処理７を実行させるためのプログラムが読み込まれる。このプログラムがワークステーション本体３２で実行されることで、電圧アイランド作成処理７が行われる。この電圧アイランド作成処理７において、ＲＴＬ１、ネットリスト用ライブラリデータ２、フロアプラン３、機能テストベクトル４、機能マッピング用ライブラリデータ６が参照され、ネットリスト１７、パワードメイン情報１８、及び電圧アイランド情報１９が作成される。
【００３０】
フロアプラン３は、ダイエリアとＩＯ（入出力）回路の配置情報を含むが、ハードマクロ配置や電圧アイランド情報は含まない。機能テストベクトル４は、論理値“０”“１”の羅列であり、設計された回路が仕様を満たしているか否かを評価するための機能シミュレート用データである。このフロアプラン３や、機能テストベクトル４は、予め記憶装置３３に格納されているものとする。
【００３１】
電圧アイランド作成処理７は、機能マッピング処理８、機能シミュレーション処理９、クラスタ分割処理１０、クラスタ配置処理１１、グルーピング処理１２、バッファ領域生成処理１３、テクノロジマッピング処理１４、電圧アイランド選択処理１５、及び電圧コントローラ作成処理１６を含む。つまり、電圧アイランド作成処理７を実行させるためのプログラムがワークステーション本体３２で実行されることで、上記機能マッピング処理８、機能シミュレーション処理９、クラスタ分割処理１０、クラスタ配置処理１１、グルーピング処理１２、バッファ領域生成処理１３、テクノロジマッピング処理１４、電圧アイランド選択処理１５、及び電圧コントローラ作成処理１６が行われる。
【００３２】
次に、電圧アイランド作成処理７における各処理の内容を説明する。
【００３３】
機能マッピング処理８では、電圧アイランド作成対象となるＲＴＬ１が記憶装置３３から読み込まれ、そのＲＴＬ１の記述に従って、加算器や乗算器などの演算器が割り当てられる。
【００３４】
機能マッピング処理８が終了した後に、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理９が行われる。この機能シミュレーション処理９では、機能シミュレート用データである機能テストベクトル４が読み込まれて機能シミュレーションが実施される。
【００３５】
クラスタ分割処理１０では、機能シミュレーション処理９でのシミュレーション結果に基づいて同時動作ブロック毎にクラスタ分割が行われる。ここで「同時動作ブロック」とは、活性化されるタイミングがほぼ同時であるブロックを指す。活性化されるタイミングがほぼ同時であるか否かは、設計者によって予め指定された閾値に従って決定される。例えば設計者によって、閾値が７０％に設定された場合には、活性化する時期が７０％以上の割合で該当するブロックが同時動作ブロックとなる。例えば図４の（Ａ）に示されるように、入力バッファ（ＩＮ）と出力バッファ（ＯＵＴ）との間に、３２ビット構成の加算器２１、３２ビット構成の乗算器２２，２３、及び３２ビット構成の加算器２４が存在する場合のクラスタ分割処理１０では、機能シミュレーション処理９でのシミュレーション結果に基づいて、図４の（Ｂ）に示されるようにクラスタ分割が行われる。すなわち、３２ビット構成の加算器２１は、上位１６ビットの加算処理を行うブロック２１Ａと、下位１６ビットの加算処理を行うブロック２１Ｂとに分割され、３２ビット構成の乗算器２２は、上位１６ビットの乗算処理を行うブロック２２Ａと、下位１６ビットの乗算処理を行うブロック２２Ｂとに分割される。また、３２ビット構成の乗算器２３は、上位１６ビットの乗算処理を行うブロック２３Ａと、下位１６ビットの乗算処理を行うブロック２３Ｂとに分割され、３２ビット構成の加算器２４は、上位１６ビットの加算処理を行うブロック２４Ａと、下位１６ビットの加算処理を行うブロック２４Ｂとに分割される。ここで、ブロック２１Ａ，２２Ａ，２３Ａ，２４Ａは、活性化する時期が７０％以上の割合で該当する同時動作ブロックＡとされ、ブロック２１Ｂ，２２Ｂ，２３Ｂ，２４Ｂは、活性化する時期が７０％以上の割合で該当する同時動作ブロックＢとされる。ここで、同時動作ブロックＡ、及び同時動作ブロックＢは、それぞれ単一の電源電圧レベルで動作する論理ブロックのグループである「パワードメイン」とされる。
【００３６】
クラスタ分割処理１０でのクラスタ分割処理が行われた後に、クラスタ配置処理１１が行われる。このクラスタ配置処理１１では、クラスタ分割処理１０で分割されたブロックが、フロアプラン３上に配置される。このとき、同じ種類の同時動作ブロックは、可能な限り、互いに近傍域に配置されるようにする。つまり、同時動作ブロックＡに属するブロック２１Ａ，２２Ａ，２３Ａ，２４Ａは、それぞれ互いに近傍域に配置され、同時動作ブロックＢに属するブロック２１Ｂ，２２Ｂ，２３Ｂ，２４Ｂは、それぞれ互いに近傍域に配置されるようにする。このクラスタ配置処理には、半導体集積回路の配置処理で一般的に用いられている公知のアルゴリズムを適用することができる。
【００３７】
このクラスタ配置処理１１では、機能マッピング用ライブラリデータ６を参照することで、機能マッピング結果に対して、回路全体の面積と動作タイミングと消費電力とが見積りが行われる。そして、回路全体の面積と動作タイミングと消費電力に対して重み付けが行われ、その重み係数が変更される毎にクラスタ配置が行われることで、複数のクラスタ配置結果が得られる。例えば回路全体の面積に対する重み係数を大きくすることにより、回路全体の面積を重視したクラスタ配置結果が得られ、動作タイミングに対する重み係数を大きくすることにより、動作タイミングを重視したクラスタ配置結果が得られ、消費電力に対する重み係数を大きくすることにより、消費電力を重視したクラスタ配置結果が得られる。このように回路全体の面積と動作タイミングと消費電力に対する重み係数を変更して複数のクラスタ配置結果を得るのは、後の電圧アイランド選択処理１５において、最適な電圧アイランドの選択を可能にするためである。図５には、クラスタ配置例が示される。図５における（Ａ）の配置例では、同時動作ブロックＡ（２１Ａ，２２Ａ，２３Ａ，２４Ａ）と、同時動作ブロックＢ（２２Ａ，２２Ｂ，２３Ｂ，２４Ｂ）とが、互いに同一方向（矢印Ｘ方向）に配置されている。図５における（Ｂ）の配置例では、同時動作ブロックＡは、２１Ａ，２２Ａと、２３Ａ，２４Ａとに分けて配置され、その間に、同時動作ブロックＢ（２２Ａ，２２Ｂ，２３Ｂ，２４Ｂ）が配置される。同時動作ブロックＢ（２１Ａ，２２Ｂ，２３Ｂ，２４Ｂ）は、矢印Ｘ方向と交差する方向に配置される。
【００３８】
上記クラスタ配置処理１１の後に、同時動作ブロックの配置領域のグルーピング処理１２が行われる。グルーピング処理１２では、同じ種類の同時動作ブロックであって、且つ、同時動作ブロックの配置領域の間隔が、予め設計者によって指定された基準値より小さい場合に、該当する配置領域がグループ化されることで、単一の電源電圧レベルで動作する論理ブロックの物理的な配置エリアとされる「電圧アイランド」が形成される。図６には、配置領域のグルーピング例が示される。図６の（Ａ）のグルーピング例では、同時動作ブロックＡ（２１Ａ，２２Ａ，２３Ａ，２４Ａ）の配置領域がグループ化されることで、第１のパワードメインに対応する電圧アイランドＶＡ１が形成され、同時動作ブロックＢ（２２Ａ，２２Ｂ，２３Ｂ，２４Ｂ）の配置領域がグループ化されることで、第２のパワードメインに対応する電圧アイランドＶＡ２が形成される。図６の（Ｂ）のグルーピング例では、第１のパワードメインに対応する電圧アイランドが二つ形成される。すなわち、同時動作ブロックＡ（２１Ａ，２２Ａ）の配置領域がグループ化されることで第１のパワードメインに対応する電圧アイランドＶＡ１−１が形成され、同時動作ブロックＡ（２３Ａ，２４Ａ）の配置領域がグループ化されることで、第１のパワードメインに対応する電圧アイランドＶＡ１−２が形成される。これは、ブロック２１Ａ，２２Ａと、ブロック２３Ａ，２４Ａとの間隔が、予め設計者によって指定された基準値を越えていることに起因する。また、同時動作ブロックＢ（２２Ａ，２２Ｂ，２３Ｂ，２４Ｂ）の配置領域がグループ化されることで、第２のパワードメインに対応する電圧アイランドＶＡ２が形成される。ここで、上記第１のパワードメイン及び上記第２のパワードメインは、それぞれ単一の電源電圧レベルで動作する論理ブロックのグループとされ、その情報は、パワードメイン情報１８として記憶装置３３に格納される。
【００３９】
同時動作ブロックの配置領域をグルーピングする際、配置領域に重なりがある場合と、重なりがない場合との２つのケースが考えられる。例えば図７に示されるように、四角形状の配置領域７１と四角形状の配置領域７２とがグループ化され、配置領域７１と配置領域７２との重なり部分７３が存在する場合には、重なり部分７３の面積に相当する補正領域７３−１，７３−２がグルーピング領域７０に追加される。補正領域７３−１，７３−２の面積の合計値は、重なり部分７３の面積に等しい。そして、配置領域７１と配置領域７２とのグルーピング領域７０に、補正領域７３−１，７３−２が追加された状態で電圧アイランド７４が形成される。このように重なり部分７３の面積に相当する補正領域７３−１，７３−２がグルーピング領域７０に追加された状態で電圧アイランド７４が形成されることにより電圧アイランド７４が適正化されるため、後述する配置配線・回路最適化処理において、電圧アイランド内にセルが入りきれなくなるという不都合が生じなくなる。また、図８に示されるように、四角形状の配置領域８１と、四角形状の配置領域８２とが、所定の間隔を有して配置されているために、配置領域８１，８２を包囲するようにグループ化され、配置領域８１と配置領域８２との間隙８３を生ずる場合がある。かかる場合には、配置領域８１の一部領域８１’と、配置領域８２の一部領域８２’との面積の合計値が間隙８３の面積に等しくなるように、一部領域８１’，８２’が決定され、この一部領域８１’，８２’を利用して間隙８３を埋めるように面積が補正されてから電圧アイランド８４が形成される。このように一部領域８１’，８２’を利用して間隙８３を埋めるように面積が補正されてから電圧アイランド８４が形成されることにより電圧アイランド８４が適正化されるため、後述する配置配線・回路最適化処理において、電圧アイランド８４内に、セル配置領域の余り（セル未配置エリア）を生ずることを回避できる。
【００４０】
上記グルーピング処理１２は、クラスタ配置処理１１で得られた複数のクラスタ配置結果に対応して、複数のグルーピング処理結果が得られる。
【００４１】
バッファ領域生成処理１３について説明する。
【００４２】
バッファ領域生成処理１３において、先ず、同じパワードメインに属する電圧アイランド間に他のパワードメインに属する電圧アイランドが形成され、且つ、それに起因して所定のタイミング条件を満足することができない箇所が存在するか否かの判別が行われる。この判別は、上記グルーピング処理１２での複数のグルーピング処理結果に対して行われる。そして、所定のタイミング条件を満足することができない箇所が存在すると判断された場合には、所定の間隔毎に、バッファを配置可能なバッファ領域が形成される。このバッファ領域は、セル間のタイミング条件を満たすために挿入するバッファを配置する領域である。バッファ領域は、可能な限り、配線が混雑していない箇所に形成される。図９には、バッファ領域配置例が示される。図９に示されるように、第１のパワードメインに対応する電圧アイランドＶＡ１−１とＶＡ１−２との間に、第２のパワードメインに対応する電圧アイランドＶＡ２が介在し、ブロック２２Aの出力をブロック２３Ａに伝達する経路での信号遅延により、所定のタイミング条件を満たすことができない場合には、電圧アイランドＶＡ２内に、バッファ領域９１が形成される。そしてこのバッファ領域９１に形成されたバッファを介してブロック２２Aの出力をブロック２３Ａに伝達することにより、セル間のタイミング条件を満たせるようになる。
【００４３】
テクノロジマッピング処理１４について説明する。
【００４４】
テクノロジマッピング処理１４では、上記グルーピング処理１２で形成された電圧アイランドと、機能マッピング処理８での処理結果とに基づいてテクノロジマッピングが行われる。このテクノロジマッピングにより、加算器や乗算器などの演算器が、アンドやオアなどのゲートレベルに置き換えられる。そして、このテクノロジマッピング処理１４において、ネットリスト１７が形成される。テクノロジマッピング処理１４では、上記グルーピング処理１２での複数のグルーピング処理結果に対応して、複数のテクノロジマッピング処理結果が得られる。
【００４５】
電圧アイランド選択処理１５について説明する。
【００４６】
電圧アイランド選択処理１５では、上記複数のテクノロジマッピング処理結果について、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりが実施される。そしてこの見積もり結果を指標として、上記テクノロジマッピング処理１４での複数のテクノロジマッピング処理結果の中で、最適な電圧アイランドを有する処理結果があるか否かの判別が行われる。回路全体の面積、動作タイミング、配線混雑度、消費電力が所定の制約を満たしている場合には、最適な電圧アイランドを有する処理結果があると判断され、該当する電圧アイランド情報１９が得られる。この電圧アイランド情報１９は記憶装置３３に格納される。また、上記テクノロジマッピング処理１４での複数のテクノロジマッピング処理結果の全てが、回路全体の面積、動作タイミング、配線混雑度、消費電力が所定の制約を満たしていない場合には、最適な電圧アイランドを有する処理結果が無いと判断される。この場合、上記クラスタ分割処理１０に戻され、活性化されるタイミングがほぼ同時であるか否かの判別に用いられる閾値が変更され、その変更後の閾値に従ってクラスタ分割が行われる。例えば現在の閾値が７０％に設定されている場合、それが８０％に変更されて再びクラスタ分割が行われる。図１０には、この場合のクラスタ分割例が示される。図１０の（Ａ）に示されるように、入力バッファ（ＩＮ）と出力バッファ（ＯＵＴ）との間に、３２ビット構成の加算器２１、３２ビット構成の乗算器２２，２３、及び３２ビット構成の加算器２４が存在する場合の２度目のクラスタ分割処理１０では、機能シミュレーション処理９でのシミュレーション結果に基づいて、図１０の（Ｂ）に示されるようにクラスタ分割が行われる。すなわち、３２ビット構成の乗算器２２は、上位１６ビットの乗算処理を行うブロック２２Ａと、下位１６ビットの乗算処理を行うブロック２２Ｂとに分割され、３２ビット構成の乗算器２３は、上位１６ビットの乗算処理を行うブロック２３Ａと、下位１６ビットの乗算処理を行うブロック２３Ｂとに分割される。しかし、３２ビット構成の加算器２１及び３２ビット構成の加算器２４については、閾値が８０％に変更されたことにより、クラスタ分割されない。そして、上記クラスタ分割処理１０での処理結果に基づいて、クラスタ配置処理１１、グルーピング処理１２、バッファ領域生成処理１３、テクノロジマッピング処理１４、及び電圧アイランド選択処理１５が再び実行される。これらの処理は、最適な電圧アイランドを有する電圧アイランド情報１９が得られるまで繰返される。図１１には、図１０に示されるクラスタ分割例が配置される、配置領域のグルーピング例が示される。図１１に示されるグルーピング例では、同時動作ブロックＡ（２１，２２Ａ，２３Ａ，２４）の配置領域がグループ化されることで電圧アイランドＶＡ１が形成され、同時動作ブロックＢ（２２Ｂ，２３Ｂ）の配置領域がグループ化されることで電圧アイランドＶＡ２が形成される。
【００４７】
次に、電圧コントローラ作成処理１６について説明する。
【００４８】
上記のように、電圧アイランド選択処理１５によって、最適な電圧アイランドを有する電圧アイラン情報１９が得られた後に電圧コントローラ作成処理１６が行われる。この電圧コントローラ作成処理１６では、パワードメイン情報１８、及び電圧アイランド情報１９が参照されることで、同時動作ブロックごとに電源のオン、オフ制御を行うための電圧コントローラが作成される。
【００４９】
電圧アイランド作成処理７により、ネットリスト１７、パワードメイン情報１８、及び電圧アイランド情報１９が作成された後に、図２に示されるような配置配線・回路最適化処理２０のためのプログラムがワークステーション本体３２に読込まれて実行されることで、電圧アイランド内にセルが配置され、セル間の配線が行われる。これにより、半導体集積回路の配置配線情報２１を得ることができる。この配置配線・回路最適化処理２０には、半導体集積回路のネットリスト１７、ネットリスト用ライブラリデータ２、フロアプラン３、パワードメイン情報１８、及び電圧アイランド情報１９が参照される。このとき、ネットリスト１７、パワードメイン情報１８、及び電圧アイランド情報１９は、上記電圧アイランド作成処理７で得られたものが用いられる。配置配線・回路最適化処理２０には、一般的に用いられている公知のアルゴリズムを適用することができる。
【００５０】
実施の形態１によれば以下の作用効果が得られる。
【００５１】
（１）機能シミュレーション処理９でのシミュレーション結果に基づいてクラスタ分割処理１０が行われることで、パワードメインである同時動作ブロックを容易に求めることができる。この同時動作ブロックは、ワークステーション本体３２で所定のプログラムが実行されることによって自動的に求めることができるので、人手（設計者の手作業）によって求める場合に比べてパワードメインの最適化を図ることができる。
【００５２】
（２）電圧アイランド選択処理１５では、上記テクノロジマッピング処理１４で得られた回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もり結果を指標として、上記テクノロジマッピング処理１４での複数のテクノロジマッピング処理結果のなかで、最適な電圧アイランドを有する処理結果があるか否かの判別が行われる。最適な電圧アイランドを有する処理結果が無いと判断された場合には、クラスタ分割処理１０に戻され、活性化されるタイミングがほぼ同時であるか否かの判別に用いられる閾値が変更され、その変更後の閾値に従ってクラスタ分割が行われることにより、再びパワードメインが作成されるようになっているため、ブロックの物理的な配置を考慮したパワードメイン作成が可能となる。
【００５３】
《実施の形態２》
図１に示される電圧アイランド作成処理７によってパワードメイン情報１８が既に得られており、それが記憶装置３３に格納されている場合において、このパワードメイン情報１８をワークステーション本体３２に読み込んで、新たに電圧アイランド情報１９を作成したい場合がある。
【００５４】
かかる場合の電圧アイランド作成処理７は以下のように行われる。
【００５５】
図１２には、既存のパワードメイン情報１８に対応する電圧アイランド情報１９を作成する場合の電圧アイランド作成処理の流れが示される。
【００５６】
図１２に示される電圧アイランド作成処理７が、図１に示されるのと大きく相違するのは、機能シミュレーション処理９が省略されている点である。これは、パワードメイン情報が既に得られており、パワードメイン情報１８を新たに得るための機能シミュレーション処理９が不要となるためである。従って、機能マッピング処理８の終了後に、クラスタ分割処理１０が実行される。図１３には、パワードメイン情報１８によって、パワードメインＡ，Ｂが与えられた場合のクラスタ分割処理が示される。すなわち、図１３の（Ａ）に示されるように、入力バッファ（ＩＮ）と出力バッファ（ＯＵＴ）との間に、３２ビット構成の加算器２１、３２ビット構成の乗算器２２，２３、及び３２ビット構成の加算器２４が存在する場合のクラスタ分割処理１０では、図１３の（Ｂ）に示されるように、演算器毎にクラスタ分割される。すなわち、３２ビットの加算処理を行うブロック２１Ａと、３２ビットの乗算処理を行うブロック２２Ａと、３２ビットの加算処理を行うブロック２３Ａと、３２ビットの乗算処理を行うブロック２４Ａとに分割される。また、図１３の（Ｃ）に示されるように、入力バッファ（ＩＮ）と出力バッファ（ＯＵＴ）との間に、３２ビット構成の加算器２５、３２ビット構成の乗算器２６が存在する場合のクラスタ分割処理１０は、図１３の（Ｄ）に示されるように、演算器毎にクラスタ分割される。すなわち、３２ビットの加算処理を行うブロック２５Ｂと、３２ビットの乗算処理を行うブロック２６Ｂとに分割される。
【００５７】
その他、図１２に示される電圧アイランド作成処理７が、図１に示されるのと若干相違するのは、以下の通りである。
【００５８】
図１２に示されるクラスタ配置処理１１は、図１に示される場合と同様であるが、図１２に示されるクラスタ配置処理１１では、同じパワードメインに属するクラスタが互いに近傍域に配置されるようにする。
【００５９】
図１２に示されるグルーピング処理１２は、同じパワードメインに属するクラスタがグルーピングされる。
【００６０】
図１２に示される電圧アイランド選択処理１５において、クラスタ分割処理１０に戻されることはない。これは、パワードメイン情報１８が既に与えられており、その内容が変更されないことを想定しているためである。
【００６１】
実施の形態２によれば、図１２に示される電圧アイランド作成処理７において、既存のパワードメイン情報１８に対応する電圧アイランド情報１９を作成することができる。
【００６２】
《実施の形態３》
図１に示されるＲＴＬ１に代えて、ネットリストを取り込むようにしても良い。図１４には、この場合の電圧アイランド作成処理の流れが示される。
【００６３】
図１４に示される電圧アイランド作成処理７が、図１に示されるのと大きく相違するのは、ＲＴＬ１に代えて、ネットリスト４１が参照される点である。また、図１４においては、図１に示される機能マッピング用ライブラリデータ作成処理５や、機能マッピング処理６、テクノロジマッピング処理１４は省略されている。これは、回路のネットリスト４１が与えられたことにより、機能マッピング用ライブラリデータ作成処理５や、機能マッピング処理６、テクノロジマッピング処理１４が不要とされるためである。
【００６４】
図１４に示される機能シミュレーション処理９、クラスタ分割処理１０、クラスタ配置処理１１、グルーピング処理１２、バッファ領域作成処理１３は、図１の場合と同様とされる。ただし、クラスタ配置処理１１では、ネットリスト４１に基づいて、回路全体の面積と動作タイミングと消費電力との見積りが行われる。電圧アイランド処理１５では、ネットリスト４１に基づいて、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりが実施される。そしてこの見積もり結果を指標として、最適な電圧アイランドを有する処理結果があるか否かの判別が行われ、その判別結果に基づいて電圧アイランド情報１９が得られる。
【００６５】
このように、図１に示されるＲＴＬ１に代えて、ネットリストを参照することにより、パワードメイン情報と電圧アイランド情報とを得ることができる。
【００６６】
《実施の形態４》
図１に示される電圧アイランド作成処理７における一部の処理を利用することにより、既に作成された電圧アイランドの配置配線可否を把握することができる。図１５には、この場合の処理の流れが示される。図１５に示される配置配線可否判別処理４６では、ネットリスト４１、ネットリスト用ライブラリデータ２、フロアプラン２、パワードメイン情報１８、電圧アイランド情報１９が、記憶装置３３からワークステーション本体３２に読み込まれる。配置配線可否判別処理４６は、クラスタ配置処理１１、バッファ領域生成処理１３、電圧アイランド選択処理１５を含む。このクラスタ配置処理１１、バッファ領域生成処理１３、電圧アイランド選択処理１５の各処理の内容は、基本的には、図１における該当処理に等しい。配置配線可否判別処理４６は、以下のように行われる。
【００６７】
先ず、電圧アイランド情報４５が記憶装置３３からワークステーション本体３２に読み込まれ、クラスタ配置処理４７により、クラスタ配置が行われる。
【００６８】
バッファ領域生成処理１１において、バッファ領域を追加することにより、タイミングを改善できる場合には、バッファ領域が追加される。つまり、面積、消費電力、配線混雑度も考慮し、必要に応じてバッファ領域が追加される。
【００６９】
電圧アイランド選択処理１５において、面積、タイミング、消費電力、配線混雑度の見積もりを行い、入力した電圧アイランドの配置配線可否を判定し、出力する。バッファ領域を追加した場合には、バッファ領域追加前と追加後の面積、タイミング、消費電力、配線混雑度が比較され、どちらが最適かの判定が行われ、その判定結果５１が得られる。また、バッファ領域を追加した場合のほうが最適な場合には、図１２の更新された電圧アイランド情報５０が得られる。
【００７０】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【００７１】
１  ＲＴＬ
２  ネットリスト用ライブラリデータ
３  フロアプラン
４  機能テストベクトル
５  機能マッピング用ライブラリデータ作成処理
６  機能マッピング用ライブラリデータ
７  電圧ライランド作成処理
８  機能マッピング処理
９  機能シミュレーション処理
１０  クラスタ分割処理
１１  クラスタ配置処理
１２  グルーピング処理
１３  バッファ領域生成処理
１４  テクロジマッピング処理
１５  電圧アイランド選択処理
１６  電圧コントローラ作成処理
１７  ネットリスト
１８  パワードメイン情報
１９  電圧アイランド情報
２０  配置配線・回路最適化処理
２１  配置配線結果
３１  ディスプレイ
３２  ワークステーション本体
３３  記憶装置
３４  入力装置
ＶＡ１，ＶＡ１−１，ＶＡ１−２，ＶＡ２  電圧アイランド
【図１】
0005630870.tif 000002
【図２】
0005630870.tif 000003
【図３】
0005630870.tif 000004
【図４】
0005630870.tif 000005
【図５】
0005630870.tif 000006
【図６】
0005630870.tif 000007
【図７】
0005630870.tif 000008
【図８】
0005630870.tif 000009
【図９】
0005630870.tif 000010
【図１０】
0005630870.tif 000011
【図１１】
0005630870.tif 000012
【図１２】
0005630870.tif 000013
【図１３】
0005630870.tif 000014
【図１４】
0005630870.tif 000015
【図１５】
0005630870.tif 000016