以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図2は、本実施形態によるライブラリ作成装置を搭載した消費電力評価装置の構成を説明する図である。なお、図2では、ライブラリ作成装置、消費電力評価装置が用いる情報も、模式的に図示している。本実施形態によるライブラリ作成装置は、対象とする半導体装置を構成する各セルの消費電力を計算するためのライブラリ45aを作成するものとして実現されている。消費電力評価装置は、本実施形態によるライブラリ作成装置が作成したライブラリ45aを用いて半導体装置全体の消費電力値49を計算する消費電力計算装置を搭載している。
本実施形態によるライブラリ作成装置は、評価範囲情報41aを入力し、セルごとに消費電力計算用の消費電力データを登録したライブラリ45aを作成する。ライブラリ作成装置は、評価範囲情報41aを取得する情報取得部41、評価範囲情報41aを参照してライブラリ45aを作成するうえでの条件であるライブラリ作成条件43aを生成する作成条件決定部42、生成されたライブラリ作成情報43aを保存する第1の記憶部43、生成されたライブラリ作成条件43aに従ってライブラリ45aを作成する係数ライブラリ作成部44、及びライブラリ45aを保存する第2の記憶部45を備えた構成である。
評価範囲情報41aは、半導体装置の消費電力を評価する可能性が考えられるPVT条件の範囲を表すものである。情報取得部41は、評価範囲情報41aを入力するか、或いは格納したものである。本実施形態では、評価範囲情報41aとして、PVT条件以外の実行条件の範囲も指定するものを採用している。具体的には、遷移時間、及び負荷容量等の各範囲も指定する情報も評価範囲情報41aとして採用している。以降、実行条件の内容を表す各状態量は「条件変数」と呼ぶことにする。
評価範囲情報41aの内容、つまり各条件変数、及びその値域の例を説明する前に、消費電力の大部分を占めるリーク電力、及びダイナミック電力について具体的に説明する。
図3は、リーク電力を発生させるリーク電流の測定方法を説明する図である。図3において、50はセル、A1〜Aiはセル50の入力端子、X1〜Xjはセル50の出力端子、F1〜Fkはセル50の内部状態、VDDは正電圧側の正電源電圧、VSSは負電圧側の負電源電圧、IDDは正電圧側からセル50に供給される正電源電流、ISSはセル50から負電圧側に流れる負電源電流、をそれぞれ表している。
リーク電力は、何れのセル50への入力信号も変化しない状況下で流れるリーク電流によって生じるものである。リーク電流は、入力条件、つまり各入力端子に入力される信号の組み合わせ、及びセル50の内部状態によって異なる。このことから、リーク電流は、セル50の入力条件、及び内部状態F1, F2, …Fkを設定し、設定内容でシミュレーション(例えばデバイスシミュレーション)を実行することで算出される。セル50の各出力端子から出力される信号は、設定された入力条件、及び内部状態によって確定する。
図4は、ダイナミック電力を発生させるダイナミック電流の測定方法を説明する図である。図4において、Cloadは負荷60の負荷容量、Vは正電源電圧VDDと負電源電圧VSSの間の電位差(以降「電源電圧」)、IDDは正電源側から流れる電流(以降「正電源電流」)、ISSは負電源側に流れる電流(以降「負電源電流」)をそれぞれ表している。
図4に示すように、Tsin_upはセル50の入力端子に入力する信号の立ち上がりに要する遷移時間、Tsin_downは入力端子に入力する信号の立ち下がりに要する遷移時間、をそれぞれ表している。Tsinは立ち上がりに要する遷移時間Tsin_upと立ち下がりに要する遷移時間Tsin_downとを平均した遷移時間を表している。同様に、Tsout_upはセル50の出力端子から出力される信号の立ち上がりに要する遷移時間、Tsout_downは出力端子から出力される信号の立ち下がりに要する遷移時間、Tsoutは遷移時間Tsout_up及びTsout_downを平均した遷移時間、をそれぞれ表している。本実施形態では、遷移時間Tsin、及びTsoutをそれぞれ算出することにより、遷移時間を入力される信号における遷移時間、及び出力される信号における遷移時間に大別して扱っている。以降、Tsinと表記の入力される信号の遷移時間は「入力遷移時間」、Tsoutと表記の出力される信号の遷移時間は「出力遷移時間」とそれぞれ呼ぶことにする。図4における他のシンボルが表す意味は図3と同じであるため、説明は省略する。
立ち上がり遷移時間、及び立ち下がり遷移時間は共に、信号が或るレベルから別の或るレベルに変化するまでに要する時間として定義される。例えば負電源電圧VSSのレベルを0、正電源電圧VDDのレベルを100とした場合、立ち上がり遷移時間は、信号のレベルが20から80に変化するまでに要する時間として定義される。同様に、立ち下がり遷移時間は、信号のレベルが80から20に変化するまでに要する時間として定義される。
セル50から出力される信号の時間変化は、セル50に入力される信号の時間変化に一致するとは限らない。本実施形態において、遷移時間として入力遷移時間、及び出力遷移時間の二つを扱うのはこのためである。
セル50と接続された負荷60にセル50から出力される信号が変化する場合、信号の変化により負荷60は充放電を行う。負荷60に蓄えられる最大の電荷は、負荷60の負荷容量Cloadの値に電源電圧Vを掛けて得られる値(=Cload・V)である。負荷60が蓄える電荷は、負荷60に出力される信号のレベルが下がることにより負荷60から放出される。そのような負荷60の充放電が発生する状況下でダイナミック電力が発生する。負荷60による充電自体は、電力の消費にはならない。
本実施形態では、評価範囲情報41aの条件変数、つまり状態量として、電源電圧V、入力遷移時間Tsin、出力遷移時間Tsout、及び負荷容量Cloadを採用している。その他に、半導体装置(チップ)間におけるプロセスのばらつき(以降シンボルとして「Pchip」を表記)、半導体装置内におけるプロセスのばらつき(以降シンボルとして「Pocv」と表記)、セルを構成するトランジスタのジャンクション温度(以降シンボルとして「Tj」を表記)を状態量として採用している。評価範囲情報41aは、条件変数ごとに、その値域を表す。PVT条件は、プロセスのばらつきPchip、Pocv、電源電圧V、及びトランジスタのジャンクション温度Tjによって表されるものである。
トランジスタがFET(多くの場合、MOS FET(Metal-Oxide-Semiconductor Field Effect Transistor)である)であれば、ジャンクション温度Tjの代わりにチャネル温度が用いられる。しかし、消費電力の計算上、チャネル温度とジャンクション温度Tjは同じものと考えることができる。このことから、ジャンクション温度Tjは、トランジスタの種類に係わらず、トランジスタのなかで最も高温となる部分の温度を指す意味で用いる。消費電力を評価するうえでジャンクション温度Tjよりも影響が大きい、或いはより適切に消費電力を評価できるような温度が他に存在する場合、ジャンクション温度Tj以外の温度を採用しても良い。セルの温度はジャンクション温度Tjに限定されるものではない。
プロセスのばらつきPchip及びPocvは、他の条件変数と異なり、定められた次元は存在しない。このことから、プロセスのばらつきPchip及びPocvの各値は、無次元の値、つまり正規化した値により表現される。以降、プロセスのばらつきPchip及びPocvを共に指す場合、「プロセスのばらつきP」と表記する。
図5は、プロセスのばらつきの正規化方法を説明する図である。図5において、左側のグラフは、確率変数Xに対する標準正規分布の累積分布関数F(X)、右側のグラフは、プロセスのばらつきPに対応付ける特性値Yに対する累積分布関数G(Y)、をそれぞれ表している。
特性値Yは、プロセスのばらつきPによって変化する数値である。具体的には、例えばトランジスタの閾値電圧、或いはトランジスタの動作時に流れる電流値(例えば何れも絶対値である)などの、トランジスタの特性値である。本実施形態では、プロセスのばらつきPは標準正規分布に従うと仮定し、ばらつきPによって変化する特性値Yを用いてプロセスのばらつきを正規化する。特性値Yに対応するプロセスのばらつきPの値は、2つの累積分布関数F(X)、G(Y)が同じ値(確率)となる確率変数Xの値として求める。すなわち、
G(Y)=F(X)
より、確率変数XをばらつきPと見なして、
Y=G−1[F(P)]
となる。図5は、X(=P)が「1」の場合の、F(X)=0.84と等しい累積分布関数G(Y)に対応するG−1[F(P)]=G−1[F(1)]の関係を示している。
例えば物体が或る状態となる確率は、物体が或る状態とならなかった確率を表す情報と見なすことができる。確率は、そのように視点を変えた解釈が可能である。それにより、確率変数Xに対する累積分布関数F(X)の表す確率は、二つの意味に解釈することが可能である。このため、本実施形態では、確率変数Xの値が大きくなるほど、特性値Yの絶対値が小さくなるように確率変数Xと特性値Yの間の関係を考慮している。そのように考慮することにより、例えば特性値Yとしてトランジスタの動作時に流れる電流値(の絶対値)を採用していた場合、プロセスのばらつきPの値は、電流値(の絶対値)が大きくなるほど小さくなる。
特性値Yとして採用できる状態量は、プロセスのばらつきPに応じて値が変化するものであれば良いことから、特に限定するものではない。また、プロセスのばらつきPの数値化は、上述したようなもの以外の方法を採用しても良い。例えばプロセスのばらつきPに対する消費電力への影響を数値化(モデル化)することにより、想定するプロセスのばらつきPに対応する数値を直接的に求められるようにしても良い。
図2の作成条件決定部42は、上記のような条件変数により表現される評価範囲情報41aを情報取得部41から入力し、条件変数ごとに、その値域から刻み幅を決定することにより、各条件変数の値の組を特定する。各条件変数の値の組み合わせは、ライブラリ作成条件43aを作成するためのシミュレーションの実行条件とする。各条件変数の値の組、つまりシミュレーションの実行条件は、例えば以下のようなものである。なお、評価範囲情報41aは、以下のような条件変数ごとの値の組を表すものであっても良い。
Pchip :−3、−1.5、0、1.5、3
Pocv :−3、−1.5、0、1.5、3
V(V) :0.8、0.9、1.0、1.1、1.2
Tj(°C) :25、45、65、85、105
Tsin(ps) :5、10、20、40、80
Tsout(ps):5、10、20、40、80
Cload(pF):0.005、0.01、0.020、0.050、0.100
作成条件決定部42は、決定した実行条件ごとにシミュレーションを実行すると共に、決定した実行条件のなかからライブラリ作成条件43aの候補を抽出する。シミュレーションは、全セルのなかから選択した複数のセルを対象に行われる。セルの駆動力としては、例えば最小、最大の2種類程度の駆動力を想定する。セルは、例えばインバータ、バッファ、NANDゲート、ANDゲート、NORゲート、ORゲート、XORゲート、XNORゲート、及びセレクタを含むものである。この9種類のセルで2種類の駆動力を想定した場合、選択されるセルは18(=9×2)種類となる。
本実施形態では、各セルのリーク電流、及びダイナミック電流の各値は、評価範囲情報41aの内容を表す1つ以上の条件変数を用いた計算式により算出することを想定している。計算式とは、例えば以下のようなものである。
Ileak=exp(A+B・V+C/(Tj+273)+D・V/(Tj+273)
+E・Pchip+F・Pocv) ・・・ (1)
Idyn=Qdyn/Tsw ・・・ (2)
Qdyn=Cint・V+(Kst+Ksi・Tsin)・[Kc+
exp(Kp・Pchip+Kv・V+Kt/(Tj+273))]
・・・ (3)
ここで、
Ileak :リーク電流値
Idyn :ダイナミック電流値
(あるPchip, Pocv, V, Tj, Tsin, Tsoutに対して、入力データが1周期スイッチングした時の、リーク電流を除いた消費電流量)
Tsw :セルに入力される信号が変化する1周期分の時間(スイッチング時間)
Qdyn :スイッチング時間Tswに消費される消費電荷量
(あるPchip, Pocv, V, Tj, Tsin, Tsoutに対して、入力データが1周期スイッチングした時の、リーク電流を除いた消費電荷量)
である。A、B、C、D、E、F、Cint、Kst、Ksi、Kc、Kp、Kv、及びKtは係数である。A、Kst、及びKcはそれぞれ単独で項となっているので定数である。273は、摂氏温度を絶対温度に換算するための値である。
(1)式は、リーク電流値Ileakは電源電圧Vに応じて指数関数的に変化するとの想定をベースにし、電源電圧Vの他に、各プロセスのばらつきPchip、Pocv、ジャンクション温度Tjのそれぞれの影響を考慮したものである。(3)式では、右辺第1項の値は電荷の基準値、右辺第2項の値は基準値からの調整分となる。電荷の調整分は、入力遷移時間Tsin、プロセスのばらつきPchip、電源電圧V、ジャンクション温度Tjによって変化するものと想定している。調整分にも、電流は電源電圧Vに応じて指数関数的に変化するとの想定を反映させている。プロセスのばらつきPocvは、ダイナミック電力への影響が無視できるものとしている。(2)式は、ダイナミック電流値Idynは、スイッチング時間Tswの間に消費電荷量Qdynによって流れる電流が一定との想定により作成したものである。(1)及び(2)式により電流値Ileak、Idynを算出するのは、電源電圧Vに応じてリーク電力値、及びダイナミック電力値を計算できるようにしたためである。
なお、リーク電流値Ileak、及びダイナミック電流値Idyn(消費電荷量Qdyn)を算出する計算式は、上記のようなものに限定されない。つまり、モデル化の手法により異なる別の計算式を採用しても良い。セルごとに異なる計算式を用意しても良い。例えばリーク電流値Ileakの別の計算式としては、以下のようなものを採用しても良い。
Ileak=exp(A+B・V+C/(Tj+273)+D・V/(Tj+273)
+E・Pchip+F・Pocv+G・Pchip・Pocv
+H・V・Pchip+J・V・Pocv+L・Pchip/(Tj+273)
+M・Pocv/(Tj+273)) ・・・ (4)
ここで、G、H、J、L及びMは全て係数である。
消費電荷量Qdynを算出する計算式としては、例えば以下のようなものを採用しても良い。
Qdyn=Cint・V+(Kst+Ksi・Tsin+Kso/Tsout+Ksx・Tsin 2/Tsout)
・[Kc+exp(Kp・Pchip+Kv・V+Kt/(Tj+273))]
・・・ (5)
ここで、Kso、Ksxは係数である。
上記(1)〜(3)式を用意したことから、作成条件決定部42がシミュレーションの実行により候補を抽出するライブラリ作成条件43aは、(1)及び(3)式の各係数の値を決定するためにシミュレーションを実行すべき実行条件群を表すものとしている。候補は、実行条件群の1実行条件となりうるものである。
(1)式には4条件変数が存在し、(3)式にも4条件変数が存在する。各条件変数の値の個数は5である。このことから、(1)式、(3)式ともにシミュレーションの実行条件として625(=54)条件が必要となる。それにより、作成条件決定部42は、選択したセルごとに、1250(=625×2)回のシミュレーションを少なくとも実行する。ライブラリ作成条件の候補は、計算式べつに抽出される。
上記625条件は、1セルで計算式別にシミュレーションが実行される最小の実行条件数である。実際には、各セルでは、最小の実行条件数に、対象とするセルで考慮すべき入力条件数、及び内部状態数等をそれぞれ掛けた数のシミュレーションが実行される。ここでは特に断らない限り、セルによる違いは無視することにする。つまり、特に断らない限り、各セルでは最小の実行条件数のシミュレーションが実行されるものとの想定で説明を行うこととする。
評価範囲情報41aには7条件変数が存在する。このため、各条件変数の値の全組み合わせ数は78125(=57)となる。しかし、上記のように計算式ごとに必要なシミュレーションを実行すると、シミュレーションの実行回数はより少なくなる。計算式ごとに必要なシミュレーションを実行するようにしているのは、このためである。
(1)式には6係数が存在する。6係数の値の算出では、少なくとも6回の実行条件の異なるシミュレーション結果を用いるのが望ましい。本実施形態では、より高い精度を得るために、候補として抽出する実行条件数は係数の数の倍以上としている。それにより、作成条件決定部42は、(1)式を想定したライブラリ作成条件43aの候補として、例えば12の実行条件を抽出する。同様に、(3)式には8係数が存在することから、(3)式を想定したライブラリ作成条件の候補としては、例えば16の実行条件を抽出する。
以降、計算式ごとに候補として抽出される実行条件数は「候補条件数」と呼ぶことにする。候補条件数は、ライブラリ作成条件43aとして抽出される実行条件数となる。それにより、ライブラリ作成条件43aは、計算式ごとに候補条件数の実行条件を表すものとなっている。
計算式別のライブラリ作成条件43a、つまり候補条件数の実行条件は、複数の候補条件数の実行条件のなかからシミュレーションの結果を用いて抽出される。実行条件の抽出は、例えば候補条件数の実行条件ごとに、シミュレーションの結果との誤差を評価し、誤差が最小となる各係数の値が算出される候補条件数の実行条件を特定することで行われる。作成条件決定部42は、そのようにして、セルごと、計算式ごとに、より高い精度が得られる候補条件数の実行条件を特定し、その特定結果をライブラリ作成条件43aとして第1の記憶部43に保存する。
各計算式における各係数の値の算出は、シミュレーション結果と最も良く合う計算式(回帰曲線)を求める操作(フィッティング)により行われる。フィッティングを行う方法は、特に限定するものではない。
候補条件数のシミュレーションの実行条件は、例えば各条件変数の値がそれぞれ同じように変化するように選択すれば良い。或いは、実行条件を選択するうえでの規則等を設けずに、ランダムに実行条件を選択するようにしても良い。誤差の評価方法としては、例えば誤差の二乗和平方根を求めて行うものがある。(1)式、(3)式は共に、標本値から求めた回帰方程式であることから、その回帰方程式の精度の尺度である決定係数(R2)を求めて誤差を評価しても良い。誤差の評価方法も特に限定するものではない。
上記のように各条件変数の値の数を全て5にしたとしても、シミュレーションの実行条件の数は多くなる。このため、全セルを対象に全実行条件(計算式別に特定される数の実行条件)のシミュレーションを実行すると、シミュレーションの実行に要する時間は非常に長くなる。このことから、本実施形態では、全セルのなかから選択した複数のセルのみを対象に、ライブラリ作成条件43aの作成、つまり(1)及び(3)式の各係数の値を算出するためのシミュレーションの実行条件群の抽出を行うようにしている。シミュレーションの実行回数を抑えることにより、ライブラリ45aの作成を、誤差の低下を抑えつつ、より短時間に行えるようにさせている。
本実施形態では、選択したセルごとに、シミュレーションの全実行条件分だけ、シミュレーションを実行させている。これは、全実行条件を対象に誤差の評価を行えるようにしたためである。誤差の評価を行うシミュレーションの実行条件は、制限しても良い。実行条件の制限を行うことにより、シミュレーションの実行回数はより少なくなることから、ライブラリ作成条件43aは、全セル、或いは比較的に重要なセルといったより多くのセルを対象にして作成するようにしても良い。
係数ライブラリ作成部44は、第1の記憶部43に保存されたライブラリ作成条件43aを参照し、セルごとに、(1)及び(3)式の各係数の値の算出、及び算出した各係数の値のライブラリ45aへの格納を行う。ライブラリ45aは、全てのセルの各係数の値が格納されることにより作成される。係数ライブラリ作成部44は、作成したライブラリ45aを第2の記憶部45に保存する。各係数の値は以降、「係数データ」とも表記する。(1)式用の係数データは「リーク係数データ」、(3)式用の係数データは「ダイナミック係数データ」と表記して区別する。「係数データ」は、区別する必要がない場合、或いは2種類の係数データの総称として用いる。
セルのリーク電力値は、上記したように、入力条件によって変化する(図1)。セルによっては、内部状態がリーク電力に影響を及ぼす。このようなことから、(1)式の各係数は、入力条件、及び内部状態ごとに算出される。それにより、(1)式用には、最小の実行条件数に入力条件数、及び内部状態数を掛けた数のシミュレーションを実行する必要が生じる。
一方、ダイナミック電力は、1入力信号の変化によって発生する。このことから、(3)式は、1入力信号と1出力信号の関係、つまりセルの1入力端子と1出力端子の関係(以降「入出力関係」と呼ぶ)を想定したものとなっている。
複数の出力端子を備えたセルでは、1入力信号の変化によって複数の出力信号が変化する場合がありうる。各出力信号の変化は、セルの内部状態、及び他の入力信号に依存するのが普通である。以降セルの他の入力信号(他の入力端子に入力される信号)は「状況条件」と呼ぶことにする。また、入力条件、入出力関係、或いは内部状態等の計算式の各係数の値を算出するうえで区別される状態は「論理状態」と総称する。
複数の出力信号が同時変化するセルでは、以下の手順により、対象とする1出力信号分を分離する。ここでは、説明は計nの出力信号が同時に変化する場合を想定して行う。
先ず、(3)式で考慮しない、ダイナミック電力に影響を及ぼす条件変数を選択し、同時に変化する出力信号のなかで選択した条件変数の値を変化させる1出力信号を決定し、(3)式の各係数の値を算出する。この時、算出される各係数はそれぞれCint1_i、Kst1_i、Ksi1_i、Kc1_i、Kp1_i、Kv1_i、及びKt1_iとする。これら各係数は、他の同時に変化する各出力信号でも同様に算出する。各係数の下添字の最後に位置するiは1〜nの間の整数を表している。選択される条件変数は、例えば負荷容量Cloadである。選択した条件変数では、上記のように、最大で5つの値を用いることができる。
同時に変化する全ての出力信号で各係数の値を算出した後は、それぞれ算出した各係数を用いて次式へのフィッティングを行い、この式中の係数Cint_all、Kst2_i、Ksi2_i(i=1,2,・・・,n)の各値を算出する。
Qdyn=Cint_all・V+ΣKst2_i・(Kc1_1+
exp(Kp1_i・Pchip+Kv1_i・V+Kt1_i/(Tj+273)))
+ΣKsi2_i・Tsin・(Kc1_1+
exp(Kp1_i・Pchip+Kv1_i・V+Kt1_i/(Tj+273)))
・・・ (6)
(6)式は、(3)式の右辺第2項を展開し、各出力信号の影響を全て考慮するように変形したものである。係数Kst2_i、Ksi2_i、は、各出力信号が影響する度合いの調整用となっている。(6)式により、入力信号と対応付ける1出力信号における(3)式の各係数の値は、以下のように求められる。
Cint = Cint_all/n ・・・ (7)
Kst = Kst2_i ・・・ (8)
Ksi = Ksi2_i ・・・ (9)
Kc = Kc1_i ・・・ (10)
Kp = Kp1_i ・・・ (11)
Kv = Kv1_i ・・・ (12)
Kt = Kt1_i ・・・ (13)
上記のようなことから、係数ライブラリ作成部44は、ダイナミック電力用の各係数を算出する場合、シミュレーションの結果を参照し、設定された入出力関係が指定する1入力端子における信号の変化により複数の出力信号が変化するか否か確認する。複数の出力信号が変化することを確認した場合に、(6)〜(13)式を用いて(3)式の各係数の値を算出する。そのようにして、より高い評価精度を実現させている。
上記のようなフィッティングにより各係数の値を決定した(1)式、(3)式は共に、リーク電流値Ileak、及び消費電荷量Qdynを高精度に算出できることが確認された。(3)式では、11のサンプル(実行条件が異なる11回のシミュレーション結果)を用いたフィッティングの結果、シミュレーション結果との最大誤差が11%、平均誤差が4.8%、決定係数(R2)が0.99、の(3)式が得られた。このことから明らかなように、特に消費電荷量Qdynは、高精度に算出することができる。
(3)式は、2つの項を有する多項式となっている。(3)式の右辺第2項は、2つの因子を乗算する形となっている。この右辺第2項の第1因子は、定数Kstの項と、係数Ksiに入力遷移時間Tsinを乗算する項の2つの項を有している。
本実施形態では、(3)式の前に、以下の(3’)式の各係数のフィッティングを同じ11のサンプルから行い、計算される消費電荷量Qdynの誤差を評価したところ、最大誤差は60%、平均誤差は19%、決定係数(R2)は0,34、という結果が得られた。
Qdyn=Cint・V+Ksi・Tsin・[Kc+
exp(Kp・Pchip+Kv・V+Kt/(Tj+273))]
・・・ (3’)
(3’)式の右辺第2項の因子の一つである入力遷移時間Tsinは、上記のように極端に小さい。例えば、クロックを生成するセルからクロックを直接、入力するようなセルでは、入力遷移時間Tsinは極めて短いものとなる。そのようなセルでは、入力遷移時間Tsinを含む因子Ksi・Tsinと乗算される因子[Kc+exp(Kp・Pchip+Kv・V+Kt/(Tj+273))]の値は極端に大きいものとなる。この結果、右辺第2項における因子Ksi・Tsinと因子[Kc+exp(Kp・Pchip+Kv・V+Kt/(Tj+273))]の乗算では、桁落ちが生じ、誤差が大きくなりやすい。
このことから、本実施形態では、因子[Kc+exp(Kp・Pchip+Kv・V+Kt/(Tj+273))]と乗算させる因子を因子Ksi・Tsinから定数Kstを追加した因子(Kst+Ksi・Tsin)に変更している。その変更により、上記のように、誤差は大幅に低減させることができる。この結果、消費電荷量Qdyn、更にはダイナミック電流値Idynを高精度に計算することができる。
なお、本実施形態では、入力遷移時間Tsinを含む因子を項として定数Kst(定数項)を追加しているが、定数項を追加する因子に含まれる条件変数(状態量)は入力遷移時間Tsin以外であっても良い。その条件変数の数は2つ以上であっても良い。定数項は、極端に小さい値となる可能性のある条件変数を含む因子に必要に応じて追加すれば良い。
図6Aは、リーク係数データの記述例を表す図であり、図6Bは、ダイナミック係数データの記述例を表す図である。図6A及び図6Bの各記述例は共に、名称が「NAND2」のセル(NANDゲート)のものである。このセル「NAND2」は名称が「A1」及び「A2」の2つの入力端子、名称が「X」の1つの出力端子を備えている。
このセル「NAND2」のリーク電力は、信号の入力条件、つまり各入力端子に入力される信号の組み合わせによって変化する。このことから、(1)式は、入力条件ごと(及び/或いは内部状態ごと)に用いられるものとなっている。それによりリーク係数データは、入力条件別に記述されている。図6Aにおいて、「LEAK(A1=“L”,A2=“L”)」は、各入力端子A1及びA2にレベルがLの信号が入力される入力条件を表している。「LEAK(A1=“H”,A2=“L”)」は、入力端子A1にレベルがHの信号、入力端子A2にレベルがLの信号が入力される入力条件を表している。
上記したように、ダイナミック電力の計算用の(3)式は、1入力信号と1出力信号の間の入出力関係を想定したものとなっている。それにより、ダイナミック係数データは、入出力関係別に記述されている。図6Bにおいて、「DYNAMIC(A1,X)」は、入力端子A1と出力端子Xの間の入出力関係を表している。「DYNAMIC(A1,X)」の記述に続く括弧内の「CONDITION01(A2=“H”)」は、入力端子A1に入力される信号が変化する間に入力端子A2にはレベルがH(論理値=1)の信号が入力される状況条件を表している。同様に、「DYNAMIC(A2,X)」は、入力端子A2と出力端子Xの入出力関係を表し、「DYNAMIC(A2,X)」に続く括弧内の「CONDITION01(A1=“H”)」は、入力端子A1にはレベルがHの信号が入力される状況条件を表している。NANDゲートは組み合わせ回路であるため、何れの状況条件にも内部状態は含まれていない。
上記のように、セルのリーク係数データ、及びダイナミック係数データは共に、入力条件、入出力関係、或いは内部状態等により区別される論理状態ごとに生成される。係数ライブラリ作成部44は、例えば論理状態ごとに、ライブラリ作成条件44が表す各実行条件でシミュレーションを実行し、係数データの生成、つまり各係数の値の算出を行う。それにより、図6A及び図6Bにそれぞれ表すようなリーク係数データ、及びダイナミック係数データがセルごとにライブラリ45aに登録される。
このようにして、本実施形態によるライブラリ作成装置は、ライブラリ45aを作成する。ライブラリ45aに記述される係数データは、論理状態ごとに各係数の値のみを表すものとしている。これは、ライブラリ45a全体のデータ量をより抑えるためである。言い換えれば、全セルに同じ計算式を適用していることから、各係数の値が判明すれば、消費電力を計算することができるためである。セルによって異なる計算式を適用可能にする場合、例えば各係数の値を含む計算式をライブラリ45aに記述するか、或いは適用する計算式を表す識別データを更にライブラリ45aに記述すれば良い。セルの種類によって適用する計算式を変える場合には、同様に各係数の値のみを論理状態ごとに記述することができる。
上記のように係数データがセルごとに記述されたライブラリ45aは、評価範囲情報41aが表すPVT条件の範囲内(ここでは他の複数の条件変数の各値域を含む)での消費電力の評価に用いることができる。このため、多くのライブラリ45aを用意しなくとも良い。ディレーティングファクタを定義したライブラリを用意する場合と比較して、用意すべきライブラリ45aの数は大幅に少なくすることができる。1ライブラリ45aのデータ量は従来から大幅に増大しない。このようなことから、従来と比較して、ライブラリの格納に必要なメモリ量も大幅に抑えつつ、幅広い範囲のPVT条件に対応できることとなる。
次に、消費電力評価装置に搭載された消費電力計算装置について詳細に説明する。
消費電力計算装置は、条件取得部46、インスタンスごとの消費電力計算部47、及びLSIの消費電力計算部48を備えた構成となっている。
条件取得部46は、消費電力の評価に用いる計算条件46aを取得する。実際の条件取得部46は、例えばユーザ(オペレータ)にPVT条件を含む計算条件46aを指定させる入力装置である。インスタンスごとの消費電力計算部47は、消費電力を評価する対象となる半導体装置(以降「LSI」と表記)の構成部品となっているセル(インスタンス)ごとに、消費電力を計算する。消費電力は、計算条件によって変化する。このことから、消費電力の計算は、ライブラリ45a、及び条件取得部46から入力した計算条件46aを参照して行われる。
消費電力、つまりリーク電力値、及びダイナミック電力値は、条件変数の値によって変化する。各条件変数の値は、計算条件46aとは別に与えられる。リーク電力値、及びダイナミック電力値の計算には、(1)〜(3)式が用いられる。このことから、計算条件46aは、プロセスのばらつきPchip、電源電圧V、ジャンクション温度Tj、入力遷移時間Tsin、スイッチング時間Tsw、を表すものとしている。プロセスのばらつきPocvは計算条件46aに含めていない。これは、リーク電流値Ileakとして、平均が0、標準偏差が1の正規分布に従うと想定し、プロセスのばらつきPocvの値を変えて(1)式から得られた複数のリーク電流値Ileakの平均値を用いるからである。リーク電流値Ileakの平均値は以降「平均リーク電流値Ileaka」と表記する。プロセスのばらつきPocvは計算条件46aに含めても良い。
リーク電力値、及びダイナミック電力値は、セルの論理状態によって変化する。このため、論理状態はインスタンスごとに設定される。それにより、インスタンスごとの消費電力計算部47は、設定された論理状態での消費電力値をインスタンスごとに計算する。
インスタンスごとの論理状態の設定方法は、特に限定されるものではない。論理状態の設定は、論理シミュレーションの実行により行うことができる。それ以外としては、論理状態をランダムに設定する、論理状態を統計的に設定する、といった方法等が考えられる。統計的な方法とは、例えばセルごとに可能な論理条件を特定し、特定した論理条件ごとに、その論理条件となる確率を評価し、評価した確率に沿って、各セル(インスタンス)に論理状態を割り当てる、といったものが考えられる。入力遷移時間Tsin、及び出力遷移時間Tsoutの設定は、例えばタイミング検証のためのSTA(Static Timing Analysis)の結果を用いて行っても良い。
ライブラリ45aは、リーク電流値Ileak、消費電荷量Qdyn、及びダイナミック電流値Idynをそれぞれ高精度に計算できる(1)〜(3)式を提供する。このため、インスタンスごとの消費電力計算部47は、各インスタンスの設定された論理状態でのリーク電流値Ileak、消費電荷量Qdyn(ダイナミック電流値Idyn)を高精度に算出することができる。インスタンスごとの消費電力計算部47は、リーク電流値Ileak、及び消費電荷量Qdynをそれぞれ算出し、算出したリーク電流値Ileak、及び消費電荷量Qdynを用いて、インスタンス全体の消費電力値を計算する。インスタンス全体の消費電力値がLSIの消費電力計算部48に出力される。インスタンス全体の消費電力値には以降「Pinst」を付して、他の消費電力値と区別する。
LSIの消費電力計算部48は、インスタンスごとの消費電力計算部47から入力するインスタンスごとの消費電力値Pinstを累算することにより、LSI全体の消費電力値49を算出する。上記したように、インスタンスごとのリーク電流値Ileak、消費電荷量Qdyn(ダイナミック電流値Idyn)は高精度に算出することができる。このため、最終的に計算される消費電力値49も高精度なものとなる。
図2に表す条件取得部46、作成条件決定部42、係数ライブラリ作成部44、インスタンスごとの消費電力計算部47及びLSIの消費電力計算部48は、上記のように動作する。図2に表す構成、つまり消費電力計算装置は、コンピュータ(データ処理装置)に専用のプログラムを実行させることによって実現される。
図11は、本実施形態を適用可能なコンピュータのハードウェア構成の一例を示す図である。ここで図11を参照して、消費電力計算装置として使用可能なコンピュータの構成例について具体的に説明する。
本実施形態によるプログラム(以降「消費電力評価プログラム」)は、例えば本実施形態によるライブラリ作成装置を実現させるサブプログラム(以降「ライブラリ作成プログラム」)、及び消費電力計算装置を実現させるサブプログラム(以降「消費電力計算プログラム」)を備えた構成である。本実施形態によるライブラリ作成装置は、ライブラリ作成プログラムをコンピュータに実行させることにより実現される。
図11に構成を表すコンピュータは、CPU71、メモリ72、入力装置73、出力装置74、外部記憶装置75、媒体駆動装置76、及びネットワーク接続装置77を有し、これらがバス79によって互いに接続された構成となっている。図19に示す構成は一例であり、これに限定されるものではない。
CPU71は、当該コンピュータ全体の制御を行う。図19には一つのみ示しているが、CPU71はコンピュータに複数、搭載されていても良い。
メモリ72は、プログラム実行、データ更新等の際に、外部記憶装置75(あるいは可搬型の記録媒体80)に記憶されているプログラムあるいはデータを一時的に格納するRAM等の半導体メモリである。CPU71は、プログラムをメモリ72に読み出して実行することにより、全体の制御を行う。
入力装置73は、例えば、キーボード等の作業者が操作する操作装置、及びその操作への操作を検出する検出装置を備えたものか、或いは他のコンピュータである端末装置(例えばコンソール)と接続するためのインターフェースである。前者の場合、入力装置73は、操作装置へのオペレータの操作を検出し、その検出結果をCPU71に通知する。後者の場合、入力装置73は、端末装置を介したオペレータの指示を受信し、その指示内容をCPU71に通知する。ここでは便宜的に、前者を入力装置73として想定する。
出力装置74は、例えば表示装置、及びその表示装置と接続された表示制御装置を備えたものである。図2に表すライブラリ作成条件43a、ライブラリ45a及び消費電力値49は、出力装置74の表示装置上に表示可能である。外部記憶装置75は、例えばフラッシュメモリ、或いはハードディスク装置等の大容量の記憶装置である。主に各種データやプログラムの保存に用いられる。
媒体駆動装置76は、メモリカード等の可搬型の記録媒体80にアクセスするものである。ネットワーク接続装置77は、例えば通信ネットワークを介した不図示の外部装置との通信を可能とさせるものである。シミュレーションの実行、消費電力の計算には、半導体装置(LSI)の設計データ(例えばセル間の接続状態を記述したネットリスト)、各セルの詳細データ(シミュレーション用のデータ)が必要である。これらのデータが外部装置に保存されている場合、それらのデータの取得はこのネットワーク接続装置77を用いて行うことができる。
消費電力評価プログラムは、外部記憶装置75、若しくは記録媒体80に記録されているか、或いは通信ネットワークを介してネットワーク接続装置77により取得される。本実施形態によるライブラリ作成装置は、消費電力評価プログラムをメモリ72に読み出してCPU71が実行することにより、実現可能となる。
図11に示す構成では、図2に表す情報取得部41、作成条件決定部42、係数ライブラリ作成部44、インスタンスごとの消費電力計算部47及びLSIの消費電力計算部48は以下の組み合わせにより実現される。ここでは便宜的に、消費電力評価プログラムが外部記憶装置75に格納され、作成したデータは外部記憶装置75に保存されると想定する。また、消費電力の評価の対象となるLSI(半導体装置)のデータ、及びシミュレーションの実行に必要な各セルの詳細データ等の消費電力の評価に必要な他のデータも全て外部記憶装置75に保存されていると想定する。
この想定では、情報取得部41、作成条件決定部42、及びインスタンスごとの消費電力計算部47は共に、例えばCPU71、メモリ72、入力装置73、外部記憶装置75、及びバス79によって実現される。係数ライブラリ作成部44、及びLSIの消費電力計算部48は共に、例えばCPU71、メモリ72、外部記憶装置75、及びバス79によって実現される。第1及び第2の記憶部43及び45は共に、例えば外部記憶装置75である。
ライブラリの作成において、入力装置73は、ライブラリ作成プログラムの起動の他に、評価範囲情報41aの入力、或いは指定に用いられる。また、例えばライブラリを作成すべきLSI(例えばネットリスト)の指定、ライブラリ45aの作成指示等に用いられる。その作成指示により、例えば作成条件決定部42はライブラリ作成条件43aを作成し、係数ライブラリ作成部44は作成されたライブラリ作成条件43aに従ってライブラリ45aを自動的に作成する。このことから、入力装置73は、情報取得部41及び作成条件決定部42を実現させる1構成要素となるが、係数ライブラリ作成部44を実現させる1構成要素とはならない。
消費電力値49の計算において、入力装置73は、消費電力計算プログラムの起動の他に、PVT条件46aの入力あるいは指定に用いられる。また、例えば消費電力値49を計算すべきLSI(例えばネットリスト)、ライブラリ45a及びPVT条件46a等の各種指定、並びに消費電力値49の計算指示等に用いられる。その計算指示により、インスタンスごとの消費電力計算部47は、指定されたPVT条件46aで指定されたライブラリ45aを用いて指定されたLSIの各インスタンスの消費電力値Pinstを算出する。LSIの消費電力計算部48は、例えば各インスタンスの消費電力値Pinstを用いて消費電力値49を自動的に計算する。このことから、入力装置73は、条件取得部46及びインスタンスごとの消費電力計算部47を実現させる1構成要素となるが、LSIの消費電力計算部48を実現させる1構成要素とはならない。計算した消費電力値49の保存先、或いは出力先等が入力装置73への操作により指定可能であれば、入力装置73もLSIの消費電力計算部48を実現させる1構成要素となる。
消費電力評価プログラムは、コンピュータに以下のような処理を実行させることにより、情報取得部41、作成条件決定部42、係数ライブラリ作成部44、インスタンスごとの消費電力計算部47及びLSIの消費電力計算部48を実現させる。次に、図7〜図10に表す各フローチャートを参照して、消費電力評価プログラムによりコンピュータが実行する各処理について具体的に説明する。
図7は、ライブラリ作成条件決定処理のフローチャートである。始めに図7を参照して、ライブラリ作成条件決定処理について詳細に説明する。このライブラリ作成条件決定処理は、ライブラリ作成条件43aを作成するために実行される処理である。図7には、例えばライブラリを作成すべきLSI(例えばネットリスト)の指定等が行われた後のライブラリ45aの作成指示によって実行される部分を表している。作成条件決定部42は、コンピュータ(に搭載されたCPU71)がライブラリ作成条件決定処理を実行することにより実現される。
先ず、ステップS11では、コンピュータは、オペレータの入力装置73への操作によって入力、或いは指定された評価範囲情報41aを取得し、ライブラリ作成条件43aを決定するうえで評価対象とするセルを複数、選択する。セルの選択は、セルの他のライブラリ、或いは指定されたLSI(例えばネットリスト)を参照して行われる。次のステップS12では、コンピュータは、条件変数ごとに、取得した評価範囲情報41aが表す値域から刻み幅を決定することにより、各条件変数の値の組を特定する。その後は、ステップS13に移行し、コンピュータは、選択した各セルで消費電流を求めるシミュレーションを実行する。各セルのシミュレーションは、計算式ごと、各条件変数の値の組み合わせごとに実行される。セルの論理状態は複数、考慮しても良いが、1セルに1論理状態のみ考慮しても良い。シミュレーションを全て実行した後はステップS14に移行する。
ステップS14では、コンピュータは、計算式、及びセルごとに、候補条件数のシミュレーションの実行条件を候補としてピックアップする。次のステップS15では、コンピュータは、計算式、及びセルごとに、ピックアップした実行条件の各シミュレーション結果を用いて各係数の値を算出し、算出した各係数の値を代入した計算式とシミュレーション結果との間の誤差を評価する。
誤差の評価後はステップS16に移行し、コンピュータは、予め定めた回数(ピックアップ回数)分、処理を繰り返したか否か判定する。ピックアップ回数分、ステップS14及びS15の処理、つまりピックアップした実行条件のシミュレーション結果を用いた各係数の値の算出、及び誤差の評価を行った場合、S16の判定はYESとなり、ステップS17に移行する。ピックアップ回数分、ステップS14及びS15の処理を行っていない場合、S16の判定はNOとなってステップS14に戻る。それにより、コンピュータは、ステップS14において、計算式、及びセルごとに、候補条件数の異なる実行条件の組み合わせを候補としてピックアップする。この場合のピックアップは、前回ピックアップした全ての実行条件を変更するように行っても良いが、一部の実行条件のみを変更するように行っても良い。このようなことから、2回目以降の実行条件のピックアップに採用する方法も、特に限定されるものではない。
ステップS17では、コンピュータは、計算式、及びセルごとにピックアップ回数分得られた誤差を比較して、最も小さい誤差を特定し、特定した誤差が得られるシミュレーションの実行条件の組み合わせをライブラリ作成条件43aとして決定する。その後、コンピュータはこのライブラリ作成条件決定処理を終了する。
図8は、リーク係数データ登録処理のフローチャートであり、図9は、ダイナミック係数データ登録処理のフローチャートである。リーク係数データ登録処理は、セルごとに、(1)式の各係数の値を表すリーク係数データをライブラリ45aに登録するための処理である。ダイナミック係数データ登録処理は、セルごとに、(3)式の各係数の値を表すダイナミック係数データをライブラリ45aに登録するための処理である。
図8及び図9には共に、1セルの1論理状態分の係数データをライブラリ45aに登録するために実行される処理を抽出して表している。しかし実際には、リーク係数データ登録処理、及びダイナミック係数データ登録処理は、各セルで各論理状態ごとに係数データをライブラリ45aに登録するものとなっている。例えば、これらリーク係数データ登録処理、及びダイナミック係数データ登録処理は共に、同じサブルーチン処理内で実行される。このサブルーチン処理(以降「係数ライブラリ作成処理」)は、例えばライブラリ45aを新たに作成した後、リーク係数データ登録処理、及びダイナミック係数データ登録処理を実行する。それにより、リーク係数データ登録処理、及びダイナミック係数データ登録処理により生成された係数データは、新たに作成されたライブラリ45aに登録される。このようなことから、係数ライブラリ作成部44は、コンピュータが係数ライブラリ作成処理を実行することで実現される。ここでは、始めに図8を参照して、リーク係数データ登録処理について詳細に説明する。
先ず、ステップS21では、コンピュータは現在、対象としているセルの論理状態(入力条件、及び内部状態等)を設定する。続くステップS22では、コンピュータはライブラリ作成条件43aを参照し、シミュレーションの実行条件を設定する。(1)式には、条件変数として、各プロセスのばらつきPchip、Pocv、電源電圧V、及びジャンクション温度Tjが存在する。このことから、ステップS22の実行により、各プロセスのばらつきPchip、Pocv、電源電圧V、及びジャンクション温度Tjの各値がシミュレーションの実行条件として設定される。
ステップS22に続くステップS23では、コンピュータは、設定された実行条件でシミュレーションを実行し、リーク電流を測定する。次に移行するステップS24では、(1)式用にライブラリ作成条件43aに登録された全実行条件でシミュレーションを実行したか否か判定する。他にシミュレーションを実行すべき実行条件が残っていない場合、S24の判定はYESとなり、ステップS25に移行する。他にシミュレーションを実行すべき実行条件が残っている場合、S24の判定はNOとなって上記ステップS22に戻る。
ステップS25では、コンピュータは、シミュレーションの全実行結果、つまり測定した全リーク電流を用いて(1)式の各係数の値を算出し、算出した各係数の値を、対象とするセルの1論理状態の係数データとしてライブラリ45aに登録する。その後、図8に表す部分のリーク係数データ登録処理を終了する。
上記ステップS22を再度実行するコンピュータは、(1)式用にライブラリ作成条件43aに登録された全実行条件のなかから、シミュレーションを実行していない実行条件を選択して設定する。このため、ステップS22〜S24で形成される処理ループをステップS24の判定がYESとなるまで繰り返し実行することにより、1セルの1論理状態のリーク係数データを生成するために実行すべきシミュレーションが全て実行される。
次に、図9を参照して、ダイナミック係数データ登録処理について詳細に説明する。
先ず、ステップS31では、コンピュータは現在、対象としているセルの論理状態(入出力関係、内部状態、及び状況条件等)を設定する。続くステップS32では、コンピュータはライブラリ作成条件43aを参照し、シミュレーションの実行条件を設定する。(3)式には、条件変数として、プロセスのばらつきPchip、電源電圧V、入力遷移時間Tsin、及びジャンクション温度Tjが存在する。(2)式には、条件変数としてスイッチング時間Tswが存在する。このことから、ステップS32の実行により、プロセスのばらつきPchip、電源電圧V、入力遷移時間Tsin及びスイッチング時間Tsw(動作周波数f)、並びにジャンクション温度Tjの各値がシミュレーションの実行条件として設定される。
ステップS32に続くステップS33では、コンピュータは、設定された実行条件でシミュレーションを実行し、1スイッチング時間Tswの平均電流値、レベルを変化させる信号がL或いはHとなっている各状態でのリーク電流値を測定する。次のステップS34では、コンピュータは、ステップS33の測定結果を用いてダイナミック電流値を計算する。ダイナミック電流値の計算は、例えば1スイッチング時間Tswの平均電流値から、レベルを変化させる信号がL或いはHとなっている各状態でのリーク電流値分、及び負荷60への充電分(負荷60に蓄えられる最大の電荷=Cload・V)を引くことで行われる。そのようにしてダイナミック電流値を計算した後はステップS35に移行する。
ステップS35では、コンピュータは、(3)式用にライブラリ作成条件43aに登録された全実行条件でシミュレーションを実行したか否か判定する。他にシミュレーションを実行すべき実行条件が残っていない場合、S35の判定はYESとなり、ステップS36に移行する。他にシミュレーションを実行すべき実行条件が残っている場合、S35の判定はNOとなって上記ステップS32に戻る。
ステップS36では、コンピュータは、シミュレーションの全実行結果を用いて(3)式の各係数の値を算出し、算出した各係数の値を、対象とするセルの1論理状態の係数データとしてライブラリ45aに登録する。その後、図9に表す部分のダイナミック係数データ登録処理を終了する。
上記ステップS32を再度、実行するコンピュータは、(3)式用にライブラリ作成条件43aに登録された全実行条件のなかからシミュレーションを実行していない実行条件を選択して設定する。このため、ステップS32〜S35で形成される処理ループをステップS35の判定がYESとなるまで繰り返し実行することにより、1セルの1論理状態のダイナミック係数データを生成するために実行すべきシミュレーションが全て実行される。
図8及び図9に表す部分の処理は、同一のセルで論理状態ごとに繰り返し実行される。その結果、1セルの係数データが論理状態ごとにライブラリ45aに登録される。各セルで同様の処理が繰り返し実行されることにより、各セルの係数データを論理状態ごとに登録したライブラリ45aの作成が完了する。ライブラリ45aの完了後、係数ライブラリ作成処理が終了する。
図10は、消費電力計算処理のフローチャートである。この消費電力計算処理は、ライブラリ45aを用いてLSIの消費電力値を計算するための処理であり、上記消費電力計算プログラムによって実現される。インスタンスごとの消費電力計算部47及びLSIの消費電力計算部48は、コンピュータが消費電力計算処理を実行することで実現される。
先ず、ステップS41では、コンピュータは、オペレータの入力装置73への操作に従い、各種設定を行う。例えばオペレータは、入力装置73を操作して、消費電力を評価させるLSI(例えばネットリスト)、計算条件(PVT(プロセスのばらつきPchip、電源電圧V及びジャンクション温度Tj)条件、入力遷移時間Tsin、等)46a、動作周波数f、及び消費電力の評価に用いるべきライブラリ45a等を指定する。それにより、各種設定は、これらの指定内容に従って行われる。各種設定を行った後は、ステップS42に移行する。スイッチング時間Tswは動作周波数fの逆数に相当する。
ステップS42では、コンピュータは、例えばネットリストを参照し、インスタンスごとに動作情報を設定する。全てのインスタンスに動作情報を設定した後はステップS43に移行する。
動作情報は、計算条件46a以外にインスタンスの消費電力の評価に必要な情報である。具体的には、動作率α、及び負荷容量Cloadが含まれる。
動作率αは、対応するインスタンスが動作する割合を表す情報であり、例えば0〜1の間の値である。動作率αは、論理シミュレーションの結果などを用いて、インスタンスごとに設定(算出)しても良いが、LSIのブロックごと、或いは/及び、セルとして採用された回路の種類(組み合わせ回路、順序回路、及びクロック源などによって区別される種類)ごとに設定しても良い。動作率αを設定する対象は、例えば消費電力の評価に要求される精度に応じて選択すれば良い。対象が複数のインスタンスであった場合、平均値等の動作率αを算出し、各インスタンスに割り当てるといった方法を用いることができる。
ステップS43では、コンピュータは、インスタンスごとに、設定された計算条件46a及び動作情報を用いてライブラリ45aを参照することにより、(1)式および(3)式から平均リーク電流値Ileaka、及び消費電荷量Qdynをそれぞれ計算する。次のステップS44では、コンピュータは、インスタンスごとに、計算した平均リーク電流値Ileaka、及び消費電荷量Qdynを用いて消費電力値Pinstを計算する。消費電力値Pinstの計算は、例えば以下の計算式を用いて行われる。
Pinst=(Ileaka+(Qdyn+Cload・V)・f・α)・V ・・・ (14)
(14)式を用いて全インスタンスの消費電力値Pinstを計算した後はステップS45に移行し、コンピュータは、インスタンスごとに得られた消費電力値Pinstを累算することにより、LSI全体の消費電力値49を計算する。計算した消費電力値49を保存、或いは出力した後、この消費電力計算処理が終了する。
このようにして、指定されたLSIの消費電力値49は、ライブラリ45aを用いて計算される。ライブラリ45aは評価範囲情報41aが表すPVT条件の範囲に対応したものである。このため、例えば計算条件46aのみを異ならせて消費電力値49を計算させる場合には、計算条件46aの指定を変更すれば、変更後の計算条件46aでの消費電力値49を迅速、且つ高精度に得ることができる。
本実施形態では、LSIの消費電力値49の計算に用いるライブラリ45aを指定可能とさせている。これは、ライブラリ45aを新たに作成させることなく、異なる計算条件46aにおけるLSIの消費電力値49を計算できるようにするためである。
なお、本実施形態では、ライブラリ45aの作成、及びLSI(半導体装置)の消費電力値49の計算はそれぞれ別々に行うようにしているが、ライブラリ45aの作成、及びLSIの消費電力値49の計算を連続して行えるようにしても良い。ライブラリ45aは、与えられた1評価範囲情報41aで1つ作成するようにしているが、1評価範囲情報41aが表す範囲の大きさによっては複数のライブラリ45aを作成するようにしても良い。そのように複数のライブラリ45aを作成する場合、ライブラリ45aの作成に要する時間はより長くなるが、消費電力の評価精度はより向上させることができる。