説明

半導体集積回路のレイアウト方法及びプログラム

【課題】パワードメインを自動作成する。
【解決手段】設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理(9)と、上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理(10)とがコンピュータで行われる。これにより、パワードメインは、コンピュータで行われる処理によって得られるため、人手(設計者の手作業)によって求める場合に比べてパワードメインの最適化を図ることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路のレイアウト技術に関し、特に携帯電話やPDA(Personal Digital Assistant;携帯情報端末)などの携帯機器の回路設計に適用して有効な技術に関する。
【背景技術】
【0002】
近年、需要が増加している携帯電話やPDAなど携帯機器の回路設計においては、低消費電力化が不可欠となっている。チップ上の論理ブロックをいくつかのグループに分けて、グループごとに電源のオン、オフ制御を行う技術は、消費電力を削減する上で有効とされる。ここで、単一の電源電圧レベルで動作する論理ブロックのグループを「パワードメイン」といい、単一の電源電圧レベルで動作する論理ブロックの物理的な配置エリアを「電圧アイランド」という。
【0003】
特許文献1には、動作合成レベルやRTL(Register Transfer Level;レジスタ転送レベル)といった機能設計レベルにおいて、電圧アイランドを作成する方法が記載されている。それによれば、機能設計レベルにおいて、面積、タイミング、消費電力を見積もり、見積もった値を基に電圧アイランドを作成する。例えば、機能設計レベルにおいて、タイミング違反を改善する場合、あるいは、面積を小さくする場合は、電源電圧値をより高い値に割り当てることにより改善が図られる。また、消費電力を削減する場合は、電源電圧値をより小さい値に割り当てることにより改善が図られる。電圧アイランドを作成し、電圧アイランドの設置による影響を動作合成過程にフィードバックを行う。このことにより、タイミング、面積、消費電力の各観点で最適化された回路を短期間で得ることが可能となる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−176486号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
半導体集積回路における消費電力設計手法の1つとして、回路の消費電力を最適化する多電源設計手法を挙げることができる。この多電源設計手法では、電源遮断技術、複数電源技術、DVFS(Dynamic Voltage Frequency Scaling;基板バイアス制御)技術が用いられる。電源遮断技術によれば、リーク電流を削減するために、使用しない論理ブロック(単に「ブロック」ともいう)の電源が一時的にオフされる。電源遮断の場合、電源のオンとオフをコントロールする回路が必要となり、複数電源の場合、低い電源電圧のブロックから高い電源電圧のブロックへ接続する配線間にはレベルシフタを挿入する必要があり、回路内でのオーバヘッドが発生してしまうが、動作時の個々のブロックに対して最適な電源電圧を供給できることによる消費電力の削減効果は非常に大きい。複数電源技術によれば、電圧レベルが互いに異なる複数の電源電圧が形成され、個々のブロックに最適な電源電圧が割り当てられる。DVFS技術によれば、処理すべき負荷が軽い場合に、電源電圧や動作周波数が低下されて、消費電力の低減が図られる。
【0006】
しかしながら、従来の多電源設計手法では、電源遮断技術、複数電源技術、DVFS技術が用いられているものの、動作時の個々のブロックに対して最適な電源電圧を供給する技術は、自動化されていないため、人手(設計者の手作業)に委ねざるを得ない。従って設計者の技術力によっては、パワードメインの最適化が十分で無い場合もあり得る。
【0007】
特許文献1の記載は、複数電源に関する提案であり、電源遮断や、DFVSについては考慮されていない。また特許文献1には、電圧アイランドの論理レベルであるパワードメインの作成を自動化することについては記載されていない。さらに特許文献1には、ブロックの物理的な配置を考慮したパワードメインの作成についても記載されていない。
【0008】
本発明の目的は、パワードメインを自動作成するための技術を提供することにある。
【0009】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0010】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0011】
すなわち、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理と、上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理とをコンピュータで行う。
【発明の効果】
【0012】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0013】
すなわち、パワードメインを自動作成するための技術を提供することができる。
【図面の簡単な説明】
【0014】
【図1】本発明にかかる半導体集積回路のレイアウト方法の一例とされる電圧アイランド作成処理の説明図である。
【図2】図1に示される電圧アイランド作成処理の結果を用いた配置配線・回路最適化処理の説明図である。
【図3】本発明にかかる半導体集積回路のレイアウト方法が実施されるワークステーションの構成例ブロック図である。
【図4】図1に示される電圧アイランド作成処理におけるクラスタ分割処理の説明図である。
【図5】図1に示される電圧アイランド作成処理におけるクラスタ配置処理の説明図である。
【図6】図1に示される電圧アイランド作成処理におけるグルーピング処理の説明図である。
【図7】図1に示される電圧アイランド作成処理における電圧アイランド作成の説明図である。
【図8】図1に示される電圧アイランド作成処理における電圧アイランド作成の説明図である。
【図9】図1に示される電圧アイランド作成処理におけるバッファ領域生成処理の説明図である。
【図10】図1に示される電圧アイランド作成処理におけるクラスタ分割処理の説明図である。
【図11】図1に示される電圧アイランド作成処理におけるグルーピング処理の説明図である。
【図12】本発明にかかる半導体集積回路のレイアウト方法の一例とされる電圧アイランド作成処理の別の説明図である。
【図13】図12に示される電圧アイランド作成処理におけるクラスタ分割処理の説明図である。
【図14】本発明にかかる半導体集積回路のレイアウト方法の一例とされる電圧アイランド作成処理の別の説明図である。
【図15】図3に示されるワークステーションを用いた配置配線可否判別処理の説明図である。
【発明を実施するための形態】
【0015】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0016】
〔1〕本発明の代表的な実施の形態に係る半導体集積回路のレイアウト方法は、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理(9)と、上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理(10)とがコンピュータで行われる。これにより、パワードメインは、コンピュータで行われる処理によって得られるため、人手(設計者の手作業)によって求める場合に比べてパワードメインの最適化を図ることができる。
【0017】
〔2〕上記〔1〕において、上記パワードメインに対応する電圧アイランドを形成するためのグルーピング処理(12)を上記コンピュータで行う。
【0018】
〔3〕上記〔2〕において、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もり結果を指標として、最適な電圧アイランドを有する処理結果が得られたか否かの判別(15)を上記コンピュータで行い、その判別結果に応じて、上記クラスタ分割処理に戻り、条件を変更してパワードメインの作成をやり直す。
【0019】
〔4〕上記〔3〕において、上記パワードメインの情報を上記コンピュータの制御により記憶装置(33)に格納する。
【0020】
〔5〕上記〔4〕において、上記記憶装置に格納されているパワードメインの情報を読み込んで、当該パワードメインに対応する電圧アイランドを形成するためのグルーピング処理(12)を上記コンピュータで行う。
【0021】
〔6〕上記〔3〕において、上記記憶装置(33)から電圧アイランド情報を読み込んで、当該電圧アイランド情報の配置配線可否を判定する配置配線可否処理を含み、上記配置配線可否処理は、所定のタイミング条件を満足することができない箇所が存在する場合に、所定の間隔毎に、バッファを配置可能なバッファ領域を形成する処理(13)を上記コンピュータで行う。
【0022】
〔7〕本発明の代表的な実施の形態に係る半導体集積回路の別のレイアウト方法は、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理(9)と、上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理(10)とをコンピュータで行う。さらに、設計された回路のネットリストを記憶装置から読み込む処理と、上記回路のネットリストに基づいて、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりを行い、この見積もり結果を指標として、上記パワードメインに対応する電圧アイランドを得るための電圧アイランド選択処理(15)とをコンピュータで行う。これにより、パワードメインは、コンピュータで行われる処理によって得られるため、人手(設計者の手作業)によって求める場合に比べてパワードメインの最適化を図ることができる。
【0023】
〔8〕本発明の代表的な実施の形態に係るプログラムは、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理(9)と、上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理(10)と、をコンピュータに実行させる。
【0024】
〔9〕本発明の代表的な実施の形態に係る別のプログラムは、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理(9)と、上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理(10)とをコンピュータで行う。さらに、設計された回路のネットリストを記憶装置から読み込む処理と、上記回路のネットリストに基づいて、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりを行い、この見積もり結果を指標として、上記パワードメインに対応する電圧アイランドを得るための電圧アイランド選択処理(15)とをコンピュータに実行させる。これにより、パワードメインは、コンピュータで行われる処理によって得られるため、人手(設計者の手作業)によって求める場合に比べてパワードメインの最適化を図ることができる。
【0025】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0026】
《実施の形態1》
図3には、本発明にかかる半導体集積回路レイアウト方法の実施に用いられるワークステーションが示される。図3に示されるワークステーション30は、特に制限されないが、ディスプレイ31、ワークステーション本体32、記憶装置33、及び入力装置34を含んで成る。ワークステーション本体32は、所定のプログラムを実行するためのCPU(中央処理装置)を備えており、このワークステーション本体32が、本発明におけるコンピュータの一例とされる。記憶装置33は、例えばハードディスク装置であり、ワークステーション本体32で実行されるプログラムや、携帯電話又はPDAなどの携帯機器に搭載される半導体集積回路のレイアウトに使用される各種情報が格納されている。入力装置34は、例えばキーボードやマウスであり、半導体集積回路の設計者の操作により、ワークステーション本体32に対して各種情報を入力することができる。ディスプレイ31は、ワークステーション本体52から供給された表示用データを可視化する。
【0027】
図1には、ワークステーション30を用いた電圧アイランド作成処理の流れが示される。
【0028】
電圧アイランド作成処理7は、ワークステーション本体32で行われるが、この電圧アイランド作成処理7の前に、機能マッピング用ライブラリデータ作成処理5を実行させるためのプログラムがワークステーション本体32に読み込まれ、当該プログラムが実行されることによって、機能マッピング用ライブラリデータ6が作成される。この機能マッピング用ライブラリデータは、RTL1とネットリスト用ライブラリデータ2とに基づいて作成される。RTL1は、同期デジタル回路を記述する手法により、回路の動作をレジスタ間の信号の流れとそれに対する論理演算の組み合わせで構成されたものであり、ネットリスト用ライブラリデータ2は、ネットリストを作成するためのライブラリデータである。このRTL1やネットリスト用ライブラリデータ2は、予め記憶装置33に格納されている。機能マッピング用ライブラリデータ6には、加算器の面積と動作タイミングと消費電力、乗算器の面積と動作タイミングと消費電力というように、演算器毎に、その面積と動作タイミングと消費電力との各情報が設定される。このような機能マッピング用ライブラリデータ6によれば、機能マッピング結果に対して、回路全体の面積と動作タイミングと消費電力とを見積もることが可能になる。作成された機能マッピング用ライブラリデータ6は、記憶装置33に格納される。
【0029】
次に、ワークステーション本体32に、電圧アイランド作成処理7を実行させるためのプログラムが読み込まれる。このプログラムがワークステーション本体32で実行されることで、電圧アイランド作成処理7が行われる。この電圧アイランド作成処理7において、RTL1、ネットリスト用ライブラリデータ2、フロアプラン3、機能テストベクトル4、機能マッピング用ライブラリデータ6が参照され、ネットリスト17、パワードメイン情報18、及び電圧アイランド情報19が作成される。
【0030】
フロアプラン3は、ダイエリアとIO(入出力)回路の配置情報を含むが、ハードマクロ配置や電圧アイランド情報は含まない。機能テストベクトル4は、論理値“0”“1”の羅列であり、設計された回路が仕様を満たしているか否かを評価するための機能シミュレート用データである。このフロアプラン3や、機能テストベクトル4は、予め記憶装置33に格納されているものとする。
【0031】
電圧アイランド作成処理7は、機能マッピング処理8、機能シミュレーション処理9、クラスタ分割処理10、クラスタ配置処理11、グルーピング処理12、バッファ領域生成処理13、テクノロジマッピング処理14、電圧アイランド選択処理15、及び電圧コントローラ作成処理16を含む。つまり、電圧アイランド作成処理7を実行させるためのプログラムがワークステーション本体32で実行されることで、上記機能マッピング処理8、機能シミュレーション処理9、クラスタ分割処理10、クラスタ配置処理11、グルーピング処理12、バッファ領域生成処理13、テクノロジマッピング処理14、電圧アイランド選択処理15、及び電圧コントローラ作成処理16が行われる。
【0032】
次に、電圧アイランド作成処理7における各処理の内容を説明する。
【0033】
機能マッピング処理8では、電圧アイランド作成対象となるRTL1が記憶装置33から読み込まれ、そのRTL1の記述に従って、加算器や乗算器などの演算器が割り当てられる。
【0034】
機能マッピング処理8が終了した後に、設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理9が行われる。この機能シミュレーション処理9では、機能シミュレート用データである機能テストベクトル4が読み込まれて機能シミュレーションが実施される。
【0035】
クラスタ分割処理10では、機能シミュレーション処理9でのシミュレーション結果に基づいて同時動作ブロック毎にクラスタ分割が行われる。ここで「同時動作ブロック」とは、活性化されるタイミングがほぼ同時であるブロックを指す。活性化されるタイミングがほぼ同時であるか否かは、設計者によって予め指定された閾値に従って決定される。例えば設計者によって、閾値が70%に設定された場合には、活性化する時期が70%以上の割合で該当するブロックが同時動作ブロックとなる。例えば図4の(A)に示されるように、入力バッファ(IN)と出力バッファ(OUT)との間に、32ビット構成の加算器21、32ビット構成の乗算器22,23、及び32ビット構成の加算器24が存在する場合のクラスタ分割処理10では、機能シミュレーション処理9でのシミュレーション結果に基づいて、図4の(B)に示されるようにクラスタ分割が行われる。すなわち、32ビット構成の加算器21は、上位16ビットの加算処理を行うブロック21Aと、下位16ビットの加算処理を行うブロック21Bとに分割され、32ビット構成の乗算器22は、上位16ビットの乗算処理を行うブロック22Aと、下位16ビットの乗算処理を行うブロック22Bとに分割される。また、32ビット構成の乗算器23は、上位16ビットの乗算処理を行うブロック23Aと、下位16ビットの乗算処理を行うブロック23Bとに分割され、32ビット構成の加算器24は、上位16ビットの加算処理を行うブロック24Aと、下位16ビットの加算処理を行うブロック24Bとに分割される。ここで、ブロック21A,22A,23A,24Aは、活性化する時期が70%以上の割合で該当する同時動作ブロックAとされ、ブロック21B,22B,23B,24Bは、活性化する時期が70%以上の割合で該当する同時動作ブロックBとされる。ここで、同時動作ブロックA、及び同時動作ブロックBは、それぞれ単一の電源電圧レベルで動作する論理ブロックのグループである「パワードメイン」とされる。
【0036】
クラスタ分割処理10でのクラスタ分割処理が行われた後に、クラスタ配置処理11が行われる。このクラスタ配置処理11では、クラスタ分割処理10で分割されたブロックが、フロアプラン3上に配置される。このとき、同じ種類の同時動作ブロックは、可能な限り、互いに近傍域に配置されるようにする。つまり、同時動作ブロックAに属するブロック21A,22A,23A,24Aは、それぞれ互いに近傍域に配置され、同時動作ブロックBに属するブロック21B,22B,23B,24Bは、それぞれ互いに近傍域に配置されるようにする。このクラスタ配置処理には、半導体集積回路の配置処理で一般的に用いられている公知のアルゴリズムを適用することができる。
【0037】
このクラスタ配置処理11では、機能マッピング用ライブラリデータ6を参照することで、機能マッピング結果に対して、回路全体の面積と動作タイミングと消費電力とが見積りが行われる。そして、回路全体の面積と動作タイミングと消費電力に対して重み付けが行われ、その重み係数が変更される毎にクラスタ配置が行われることで、複数のクラスタ配置結果が得られる。例えば回路全体の面積に対する重み係数を大きくすることにより、回路全体の面積を重視したクラスタ配置結果が得られ、動作タイミングに対する重み係数を大きくすることにより、動作タイミングを重視したクラスタ配置結果が得られ、消費電力に対する重み係数を大きくすることにより、消費電力を重視したクラスタ配置結果が得られる。このように回路全体の面積と動作タイミングと消費電力に対する重み係数を変更して複数のクラスタ配置結果を得るのは、後の電圧アイランド選択処理15において、最適な電圧アイランドの選択を可能にするためである。図5には、クラスタ配置例が示される。図5における(A)の配置例では、同時動作ブロックA(21A,22A,23A,24A)と、同時動作ブロックB(22A,22B,23B,24B)とが、互いに同一方向(矢印X方向)に配置されている。図5における(B)の配置例では、同時動作ブロックAは、21A,22Aと、23A,24Aとに分けて配置され、その間に、同時動作ブロックB(22A,22B,23B,24B)が配置される。同時動作ブロックB(21A,22B,23B,24B)は、矢印X方向と交差する方向に配置される。
【0038】
上記クラスタ配置処理11の後に、同時動作ブロックの配置領域のグルーピング処理12が行われる。グルーピング処理12では、同じ種類の同時動作ブロックであって、且つ、同時動作ブロックの配置領域の間隔が、予め設計者によって指定された基準値より小さい場合に、該当する配置領域がグループ化されることで、単一の電源電圧レベルで動作する論理ブロックの物理的な配置エリアとされる「電圧アイランド」が形成される。図6には、配置領域のグルーピング例が示される。図6の(A)のグルーピング例では、同時動作ブロックA(21A,22A,23A,24A)の配置領域がグループ化されることで、第1のパワードメインに対応する電圧アイランドVA1が形成され、同時動作ブロックB(22A,22B,23B,24B)の配置領域がグループ化されることで、第2のパワードメインに対応する電圧アイランドVA2が形成される。図6の(B)のグルーピング例では、第1のパワードメインに対応する電圧アイランドが二つ形成される。すなわち、同時動作ブロックA(21A,22A)の配置領域がグループ化されることで第1のパワードメインに対応する電圧アイランドVA1−1が形成され、同時動作ブロックA(23A,24A)の配置領域がグループ化されることで、第1のパワードメインに対応する電圧アイランドVA1−2が形成される。これは、ブロック21A,22Aと、ブロック23A,24Aとの間隔が、予め設計者によって指定された基準値を越えていることに起因する。また、同時動作ブロックB(22A,22B,23B,24B)の配置領域がグループ化されることで、第2のパワードメインに対応する電圧アイランドVA2が形成される。ここで、上記第1のパワードメイン及び上記第2のパワードメインは、それぞれ単一の電源電圧レベルで動作する論理ブロックのグループとされ、その情報は、パワードメイン情報18として記憶装置33に格納される。
【0039】
同時動作ブロックの配置領域をグルーピングする際、配置領域に重なりがある場合と、重なりがない場合との2つのケースが考えられる。例えば図7に示されるように、四角形状の配置領域71と四角形状の配置領域72とがグループ化され、配置領域71と配置領域72との重なり部分73が存在する場合には、重なり部分73の面積に相当する補正領域73−1,73−2がグルーピング領域70に追加される。補正領域73−1,73−2の面積の合計値は、重なり部分73の面積に等しい。そして、配置領域71と配置領域72とのグルーピング領域70に、補正領域73−1,73−2が追加された状態で電圧アイランド74が形成される。このように重なり部分73の面積に相当する補正領域73−1,73−2がグルーピング領域70に追加された状態で電圧アイランド74が形成されることにより電圧アイランド74が適正化されるため、後述する配置配線・回路最適化処理において、電圧アイランド内にセルが入りきれなくなるという不都合が生じなくなる。また、図8に示されるように、四角形状の配置領域81と、四角形状の配置領域82とが、所定の間隔を有して配置されているために、配置領域81,82を包囲するようにグループ化され、配置領域81と配置領域82との間隙83を生ずる場合がある。かかる場合には、配置領域81の一部領域81’と、配置領域82の一部領域82’との面積の合計値が間隙83の面積に等しくなるように、一部領域81’,82’が決定され、この一部領域81’,82’を利用して間隙83を埋めるように面積が補正されてから電圧アイランド84が形成される。このように一部領域81’,82’を利用して間隙83を埋めるように面積が補正されてから電圧アイランド84が形成されることにより電圧アイランド84が適正化されるため、後述する配置配線・回路最適化処理において、電圧アイランド84内に、セル配置領域の余り(セル未配置エリア)を生ずることを回避できる。
【0040】
上記グルーピング処理12は、クラスタ配置処理11で得られた複数のクラスタ配置結果に対応して、複数のグルーピング処理結果が得られる。
【0041】
バッファ領域生成処理13について説明する。
【0042】
バッファ領域生成処理13において、先ず、同じパワードメインに属する電圧アイランド間に他のパワードメインに属する電圧アイランドが形成され、且つ、それに起因して所定のタイミング条件を満足することができない箇所が存在するか否かの判別が行われる。この判別は、上記グルーピング処理12での複数のグルーピング処理結果に対して行われる。そして、所定のタイミング条件を満足することができない箇所が存在すると判断された場合には、所定の間隔毎に、バッファを配置可能なバッファ領域が形成される。このバッファ領域は、セル間のタイミング条件を満たすために挿入するバッファを配置する領域である。バッファ領域は、可能な限り、配線が混雑していない箇所に形成される。図9には、バッファ領域配置例が示される。図9に示されるように、第1のパワードメインに対応する電圧アイランドVA1−1とVA1−2との間に、第2のパワードメインに対応する電圧アイランドVA2が介在し、ブロック22Aの出力をブロック23Aに伝達する経路での信号遅延により、所定のタイミング条件を満たすことができない場合には、電圧アイランドVA2内に、バッファ領域91が形成される。そしてこのバッファ領域91に形成されたバッファを介してブロック22Aの出力をブロック23Aに伝達することにより、セル間のタイミング条件を満たせるようになる。
【0043】
テクノロジマッピング処理14について説明する。
【0044】
テクノロジマッピング処理14では、上記グルーピング処理12で形成された電圧アイランドと、機能マッピング処理8での処理結果とに基づいてテクノロジマッピングが行われる。このテクノロジマッピングにより、加算器や乗算器などの演算器が、アンドやオアなどのゲートレベルに置き換えられる。そして、このテクノロジマッピング処理14において、ネットリスト17が形成される。テクノロジマッピング処理14では、上記グルーピング処理12での複数のグルーピング処理結果に対応して、複数のテクノロジマッピング処理結果が得られる。
【0045】
電圧アイランド選択処理15について説明する。
【0046】
電圧アイランド選択処理15では、上記複数のテクノロジマッピング処理結果について、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりが実施される。そしてこの見積もり結果を指標として、上記テクノロジマッピング処理14での複数のテクノロジマッピング処理結果の中で、最適な電圧アイランドを有する処理結果があるか否かの判別が行われる。回路全体の面積、動作タイミング、配線混雑度、消費電力が所定の制約を満たしている場合には、最適な電圧アイランドを有する処理結果があると判断され、該当する電圧アイランド情報19が得られる。この電圧アイランド情報19は記憶装置33に格納される。また、上記テクノロジマッピング処理14での複数のテクノロジマッピング処理結果の全てが、回路全体の面積、動作タイミング、配線混雑度、消費電力が所定の制約を満たしていない場合には、最適な電圧アイランドを有する処理結果が無いと判断される。この場合、上記クラスタ分割処理10に戻され、活性化されるタイミングがほぼ同時であるか否かの判別に用いられる閾値が変更され、その変更後の閾値に従ってクラスタ分割が行われる。例えば現在の閾値が70%に設定されている場合、それが80%に変更されて再びクラスタ分割が行われる。図10には、この場合のクラスタ分割例が示される。図10の(A)に示されるように、入力バッファ(IN)と出力バッファ(OUT)との間に、32ビット構成の加算器21、32ビット構成の乗算器22,23、及び32ビット構成の加算器24が存在する場合の2度目のクラスタ分割処理10では、機能シミュレーション処理9でのシミュレーション結果に基づいて、図10の(B)に示されるようにクラスタ分割が行われる。すなわち、32ビット構成の乗算器22は、上位16ビットの乗算処理を行うブロック22Aと、下位16ビットの乗算処理を行うブロック22Bとに分割され、32ビット構成の乗算器23は、上位16ビットの乗算処理を行うブロック23Aと、下位16ビットの乗算処理を行うブロック23Bとに分割される。しかし、32ビット構成の加算器21及び32ビット構成の加算器24については、閾値が80%に変更されたことにより、クラスタ分割されない。そして、上記クラスタ分割処理10での処理結果に基づいて、クラスタ配置処理11、グルーピング処理12、バッファ領域生成処理13、テクノロジマッピング処理14、及び電圧アイランド選択処理15が再び実行される。これらの処理は、最適な電圧アイランドを有する電圧アイランド情報19が得られるまで繰返される。図11には、図10に示されるクラスタ分割例が配置される、配置領域のグルーピング例が示される。図11に示されるグルーピング例では、同時動作ブロックA(21,22A,23A,24)の配置領域がグループ化されることで電圧アイランドVA1が形成され、同時動作ブロックB(22B,23B)の配置領域がグループ化されることで電圧アイランドVA2が形成される。
【0047】
次に、電圧コントローラ作成処理16について説明する。
【0048】
上記のように、電圧アイランド選択処理15によって、最適な電圧アイランドを有する電圧アイラン情報19が得られた後に電圧コントローラ作成処理16が行われる。この電圧コントローラ作成処理16では、パワードメイン情報18、及び電圧アイランド情報19が参照されることで、同時動作ブロックごとに電源のオン、オフ制御を行うための電圧コントローラが作成される。
【0049】
電圧アイランド作成処理7により、ネットリスト17、パワードメイン情報18、及び電圧アイランド情報19が作成された後に、図2に示されるような配置配線・回路最適化処理20のためのプログラムがワークステーション本体32に読込まれて実行されることで、電圧アイランド内にセルが配置され、セル間の配線が行われる。これにより、半導体集積回路の配置配線情報21を得ることができる。この配置配線・回路最適化処理20には、半導体集積回路のネットリスト17、ネットリスト用ライブラリデータ2、フロアプラン3、パワードメイン情報18、及び電圧アイランド情報19が参照される。このとき、ネットリスト17、パワードメイン情報18、及び電圧アイランド情報19は、上記電圧アイランド作成処理7で得られたものが用いられる。配置配線・回路最適化処理20には、一般的に用いられている公知のアルゴリズムを適用することができる。
【0050】
実施の形態1によれば以下の作用効果が得られる。
【0051】
(1)機能シミュレーション処理9でのシミュレーション結果に基づいてクラスタ分割処理10が行われることで、パワードメインである同時動作ブロックを容易に求めることができる。この同時動作ブロックは、ワークステーション本体32で所定のプログラムが実行されることによって自動的に求めることができるので、人手(設計者の手作業)によって求める場合に比べてパワードメインの最適化を図ることができる。
【0052】
(2)電圧アイランド選択処理15では、上記テクノロジマッピング処理14で得られた回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もり結果を指標として、上記テクノロジマッピング処理14での複数のテクノロジマッピング処理結果のなかで、最適な電圧アイランドを有する処理結果があるか否かの判別が行われる。最適な電圧アイランドを有する処理結果が無いと判断された場合には、クラスタ分割処理10に戻され、活性化されるタイミングがほぼ同時であるか否かの判別に用いられる閾値が変更され、その変更後の閾値に従ってクラスタ分割が行われることにより、再びパワードメインが作成されるようになっているため、ブロックの物理的な配置を考慮したパワードメイン作成が可能となる。
【0053】
《実施の形態2》
図1に示される電圧アイランド作成処理7によってパワードメイン情報18が既に得られており、それが記憶装置33に格納されている場合において、このパワードメイン情報18をワークステーション本体32に読み込んで、新たに電圧アイランド情報19を作成したい場合がある。
【0054】
かかる場合の電圧アイランド作成処理7は以下のように行われる。
【0055】
図12には、既存のパワードメイン情報18に対応する電圧アイランド情報19を作成する場合の電圧アイランド作成処理の流れが示される。
【0056】
図12に示される電圧アイランド作成処理7が、図1に示されるのと大きく相違するのは、機能シミュレーション処理9が省略されている点である。これは、パワードメイン情報が既に得られており、パワードメイン情報18を新たに得るための機能シミュレーション処理9が不要となるためである。従って、機能マッピング処理8の終了後に、クラスタ分割処理10が実行される。図13には、パワードメイン情報18によって、パワードメインA,Bが与えられた場合のクラスタ分割処理が示される。すなわち、図13の(A)に示されるように、入力バッファ(IN)と出力バッファ(OUT)との間に、32ビット構成の加算器21、32ビット構成の乗算器22,23、及び32ビット構成の加算器24が存在する場合のクラスタ分割処理10では、図13の(B)に示されるように、演算器毎にクラスタ分割される。すなわち、32ビットの加算処理を行うブロック21Aと、32ビットの乗算処理を行うブロック22Aと、32ビットの加算処理を行うブロック23Aと、32ビットの乗算処理を行うブロック24Aとに分割される。また、図13の(C)に示されるように、入力バッファ(IN)と出力バッファ(OUT)との間に、32ビット構成の加算器25、32ビット構成の乗算器26が存在する場合のクラスタ分割処理10は、図13の(D)に示されるように、演算器毎にクラスタ分割される。すなわち、32ビットの加算処理を行うブロック25Bと、32ビットの乗算処理を行うブロック26Bとに分割される。
【0057】
その他、図12に示される電圧アイランド作成処理7が、図1に示されるのと若干相違するのは、以下の通りである。
【0058】
図12に示されるクラスタ配置処理11は、図1に示される場合と同様であるが、図12に示されるクラスタ配置処理11では、同じパワードメインに属するクラスタが互いに近傍域に配置されるようにする。
【0059】
図12に示されるグルーピング処理12は、同じパワードメインに属するクラスタがグルーピングされる。
【0060】
図12に示される電圧アイランド選択処理15において、クラスタ分割処理10に戻されることはない。これは、パワードメイン情報18が既に与えられており、その内容が変更されないことを想定しているためである。
【0061】
実施の形態2によれば、図12に示される電圧アイランド作成処理7において、既存のパワードメイン情報18に対応する電圧アイランド情報19を作成することができる。
【0062】
《実施の形態3》
図1に示されるRTL1に代えて、ネットリストを取り込むようにしても良い。図14には、この場合の電圧アイランド作成処理の流れが示される。
【0063】
図14に示される電圧アイランド作成処理7が、図1に示されるのと大きく相違するのは、RTL1に代えて、ネットリスト41が参照される点である。また、図14においては、図1に示される機能マッピング用ライブラリデータ作成処理5や、機能マッピング処理6、テクノロジマッピング処理14は省略されている。これは、回路のネットリスト41が与えられたことにより、機能マッピング用ライブラリデータ作成処理5や、機能マッピング処理6、テクノロジマッピング処理14が不要とされるためである。
【0064】
図14に示される機能シミュレーション処理9、クラスタ分割処理10、クラスタ配置処理11、グルーピング処理12、バッファ領域作成処理13は、図1の場合と同様とされる。ただし、クラスタ配置処理11では、ネットリスト41に基づいて、回路全体の面積と動作タイミングと消費電力との見積りが行われる。電圧アイランド処理15では、ネットリスト41に基づいて、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりが実施される。そしてこの見積もり結果を指標として、最適な電圧アイランドを有する処理結果があるか否かの判別が行われ、その判別結果に基づいて電圧アイランド情報19が得られる。
【0065】
このように、図1に示されるRTL1に代えて、ネットリストを参照することにより、パワードメイン情報と電圧アイランド情報とを得ることができる。
【0066】
《実施の形態4》
図1に示される電圧アイランド作成処理7における一部の処理を利用することにより、既に作成された電圧アイランドの配置配線可否を把握することができる。図15には、この場合の処理の流れが示される。図15に示される配置配線可否判別処理46では、ネットリスト41、ネットリスト用ライブラリデータ2、フロアプラン2、パワードメイン情報18、電圧アイランド情報19が、記憶装置33からワークステーション本体32に読み込まれる。配置配線可否判別処理46は、クラスタ配置処理11、バッファ領域生成処理13、電圧アイランド選択処理15を含む。このクラスタ配置処理11、バッファ領域生成処理13、電圧アイランド選択処理15の各処理の内容は、基本的には、図1における該当処理に等しい。配置配線可否判別処理46は、以下のように行われる。
【0067】
先ず、電圧アイランド情報45が記憶装置33からワークステーション本体32に読み込まれ、クラスタ配置処理47により、クラスタ配置が行われる。
【0068】
バッファ領域生成処理11において、バッファ領域を追加することにより、タイミングを改善できる場合には、バッファ領域が追加される。つまり、面積、消費電力、配線混雑度も考慮し、必要に応じてバッファ領域が追加される。
【0069】
電圧アイランド選択処理15において、面積、タイミング、消費電力、配線混雑度の見積もりを行い、入力した電圧アイランドの配置配線可否を判定し、出力する。バッファ領域を追加した場合には、バッファ領域追加前と追加後の面積、タイミング、消費電力、配線混雑度が比較され、どちらが最適かの判定が行われ、その判定結果51が得られる。また、バッファ領域を追加した場合のほうが最適な場合には、図12の更新された電圧アイランド情報50が得られる。
【0070】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【0071】
1 RTL
2 ネットリスト用ライブラリデータ
3 フロアプラン
4 機能テストベクトル
5 機能マッピング用ライブラリデータ作成処理
6 機能マッピング用ライブラリデータ
7 電圧ライランド作成処理
8 機能マッピング処理
9 機能シミュレーション処理
10 クラスタ分割処理
11 クラスタ配置処理
12 グルーピング処理
13 バッファ領域生成処理
14 テクロジマッピング処理
15 電圧アイランド選択処理
16 電圧コントローラ作成処理
17 ネットリスト
18 パワードメイン情報
19 電圧アイランド情報
20 配置配線・回路最適化処理
21 配置配線結果
31 ディスプレイ
32 ワークステーション本体
33 記憶装置
34 入力装置
VA1,VA1−1,VA1−2,VA2 電圧アイランド

【特許請求の範囲】
【請求項1】
コンピュータを用いた半導体集積回路のレイアウト方法であって、
設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理と、
上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理と、をコンピュータで行うことを特徴とする、半導体集積回路のレイアウト方法。
【請求項2】
上記パワードメインに対応する電圧アイランドを形成するためのグルーピング処理を、上記コンピュータで行う請求項1記載の半導体集積回路のレイアウト方法。
【請求項3】
回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もり結果を指標として、最適な電圧アイランドを有する処理結果が得られたか否かの判別を上記コンピュータで行い、その判別結果に応じて、上記クラスタ分割処理に戻り、条件を変更してパワードメインの作成をやり直す請求項2記載の半導体集積回路のレイアウト方法。
【請求項4】
上記パワードメインの情報を上記コンピュータの制御により記憶装置に格納する請求項3記載の半導体集積回路のレイアウト方法。
【請求項5】
上記記憶装置に格納されているパワードメインの情報を読み込んで、当該パワードメインに対応する電圧アイランドを形成するためのグルーピング処理を上記コンピュータで行う請求項4記載の半導体集積回路のレイアウト方法。
【請求項6】
上記記憶装置から電圧アイランド情報を読み込んで、当該電圧アイランド情報の配置配線可否を判定する配置配線可否処理を含み、
上記配置配線可否処理は、所定のタイミング条件を満足することができない箇所が存在する場合に、所定の間隔毎に、バッファを配置可能なバッファ領域を形成する処理を上記コンピュータで行う請求項3記載の半導体集積回路のレイアウト方法。
【請求項7】
コンピュータを用いた半導体集積回路のレイアウト方法であって、
設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理と、
上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理と、
設計された回路のネットリストを記憶装置から読み込む処理と、
上記回路のネットリストに基づいて、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりを行い、この見積もり結果を指標として、上記パワードメインに対応する電圧アイランドを得るための電圧アイランド選択処理と、をコンピュータで行うことを特徴とする、半導体集積回路のレイアウト方法。
【請求項8】
設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理と、
上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理と、をコンピュータに実行させるためのプログラム。
【請求項9】
設計された回路が仕様を満たしているか否かを評価するための機能シミュレーション処理と、
上記機能シミュレーション処理の結果に基づいて、活性化タイミングが所定の範囲内で揃う論理ブロック毎にクラスタ分割することでパワードメインを得るクラスタ分割処理と、
設計された回路のネットリストを記憶装置から読み込む処理と、
上記回路のネットリストに基づいて、回路全体の面積、動作タイミング、配線混雑度、消費電力の見積もりを行い、この見積もり結果を指標として、上記パワードメインに対応する電圧アイランドを得るための電圧アイランド選択処理と、をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−173832(P2012−173832A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−32775(P2011−32775)
【出願日】平成23年2月18日(2011.2.18)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】