(57)【特許請求の範囲】
【請求項１】
ＬＳＩの消費電力を見積もる電力見積方法において，
コンピュータが，ソースコードで記述されている機能モデルの前記ソースコード記述を解析して前記ソースコード記述に含まれる信号及び変数を含む機能モデルパラメータを抽出し，前記機能モデルから論理合成により生成されたネットリストモデルのネットリストを解析して前記機能モデルパラメータの信号及び変数に対応する端子及びレジスタを含むネットリストパラメータを抽出し，前記機能モデルパラメータと前記ネットリストパラメータの対応関係を保持する工程と，
コンピュータが，前記ネットリストモデルを動作シミュレーションしてサンプリングタイミングでの前記機能モデルパラメータの値及び消費電力のログを測定する工程と，
コンピュータが，前記ログを測定する工程により測定された前記機能モデルパラメータの値の組み合わせとそれに対応する消費電力との関係からなる電力モデルを作成する工程と，
コンピュータが，見積対象アプリケーションプログラムの動作における機能モデルの動作シミュレーションを実行してサンプリングタイミング毎の前記機能モデルパラメータの値のログを取得し，前記機能モデルの動作シミュレーションを実行したときの機能モデルパラメータの値の組み合わせに対応する消費電力を，前記電力モデルを参照して抽出し，前記見積対象アプリケーションの動作における機能モデルの消費電力を見積もる工程とを有する電力見積方法。
【請求項２】
請求項１において，
前記電力モデルを作成する工程は，機能モデルパラメータの異なる値に対応する消費電力の分散が基準値以下の場合に，当該機能モデルパラメータを削除して前記電力モデル内の機能モデルパラメータの組み合わせ数を低減する低減工程を有する電力見積方法。
【請求項３】
ＬＳＩの消費電力を見積もる電力見積装置において，
ソースコードで記述されている機能モデルの前記ソースコード記述を解析して前記ソースコード記述に含まれる信号及び変数を含む機能モデルパラメータを抽出し，前記機能モデルから論理合成により生成されたネットリストモデルのネットリストを解析して前記機能モデルパラメータの信号及び変数に対応する端子及びレジスタを含むネットリストパラメータを抽出し，前記機能モデルパラメータと前記ネットリストパラメータの対応関係を保持する手段と，
前記ネットリストモデルを動作シミュレーションしてサンプリングタイミングでの前記機能モデルパラメータの値及び消費電力のログを測定する手段と，
前記ログを測定する手段により測定された前記機能モデルパラメータの値の組み合わせとそれに対応する消費電力との関係からなる電力モデルを作成する手段と，
見積対象アプリケーションの動作における機能モデルの動作シミュレーションを実行し，その実行してサンプリングタイミング毎の前記機能モデルパラメータの値のログを取得し，前記機能モデルの動作シミュレーションを実行したときの機能モデルパラメータの値の組み合わせに対応する消費電力を，前記電力モデルを参照して抽出し，前記見積対象アプリケーションの動作における機能モデルの消費電力を見積もる手段とを有する電力見積装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＬＳＩの電力見積方法及びその装置に関し，特に，電力見積時間を短縮した方法及び装置に関する。
【背景技術】
【０００２】
ＬＳＩを設計する工程において，事前に電力を見積もることが要求されている。ＬＳＩの電力見積の方法としては，トランジスタレベルでシミュレーションを行い電力を見積もる方法がある。この方法では，ＬＳＩに含まれる全てのトランジスタのＯＮ／ＯＦＦ回数と，全ての信号線の充放電回数をカウントし，この回数に，個々のトランジスタのＯＮ／ＯＦＦで生じる消費電力や，信号線の充放電容量できまる充放電電力を掛け合わせて，電力を見積もる。この方法では，ＬＳＩに含まれる膨大な数のトランジスタや信号線を全てシミュレーションする必要があり，電力見積には膨大な計算時間が必要になる。
【０００３】
ＬＳＩの電力見積方法として別の方法では，ＬＳＩに含まれる機能マクロ（ＩＰ）の電力を固定値としてあらかじめ与えておき，ＬＳＩ内のＩＰの電力を積算することで電力を見積もる。しかし，この方法では，ＬＳＩのアプリケーションに対応した動作に依存しない一定の電力値を使用しているので，機能マクロ（ＩＰ）に動作を指令するアプリケーションプログラムによる電力の違いを見積もることはできない。
【０００４】
ＬＳＩの電力見積方法としては，以下の特許文献１，２，３にも種々提案されている。特許文献１によれば，ＬＳＩをクロック回路部分とそれ以外の回路部分とに分けて，クロック回路部分をゲートレベルまたはトランジスタレベルで消費電力を見積もり，それ以外の回路部分をＲＴレベルで消費電力を見積もり，両者を加算する。
【０００５】
また，特許文献２によれば，メモリ部をトランジスタレベルで電力見積を行い，ＬＳＩ全体をＲＴレベルでシミュレーションしたときのメモリ部のアクセス回数を反映させてＬＳＩの平均消費電力及びピーク消費電力を計算する。
【０００６】
そして，特許文献３によれば，組み合わせ回路をブロック化して消費電力を計算してライブラリ化し，順序回路と併せてチップ全体の消費電力を計算する。
【特許文献１】特開平２００４−２８７６６９号公報
【特許文献２】特開平２００３−２５６４９５号公報
【特許文献３】特開平２００２−１５０２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来の電力見積方法は，トランジスタレベルでシミュレーションを行って動作に対応した消費電力を見積もる方法はあるものの，膨大な計算時間を要する。また，短時間での電力見積方法では，ＬＳＩの動作に対応した電力見積ができていない。
【０００８】
そこで，本発明の目的は，ＬＳＩの動作に対応した消費電力を短時間で見積もることができる電力見積方法とその装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために，本発明の第１の側面によれば，事前準備として，ビヘイビアレベル或いはレジスタトランスファレベルのソースコードで記述されている機能モデルを解析して消費電力に影響を与える機能モデルパラメータ（信号や変数など）を抽出し，機能モデルから生成され，ネットリストで記述されているネットリストモデルを解析して機能モデルパラメータに対応するネットリストパラメータ（端子名やレジスタ名など）を抽出し，両者の対応関係を保持しておく。さらに，事前準備として，ネットリストモデルを動作シミュレーションして消費電力を測定する。そして，測定結果から，電力に影響を与える機能モデルパラメータの組み合わせとそれに対応する消費電力とからなる電力モデルを作成する。以上が事前準備（事前モデリング）工程である。
【００１０】
そして，電力見積対象のアプリケーションプログラムについて機能モデルを動作シミュレーションし，そのアプリケーションプログラムを実行したときの機能モデルパラメータのログを取得する。そして，事前モデリング工程で生成した電力モデルを参照し，ログの機能モデルパラメータの組み合わせに対応する電力を抽出し，電力見積対象のアプリケーションの動作における機能モデルの消費電力を見積もる。以上が電力見積対象アプリケーションにおける機能モデルの電力見積工程である。
【００１１】
事前モデリング工程で，機能モデルについて，ネットリストモデルで動作シミュレーションを実行して，トランジスタレベルまたはレジスタレベルでの動作シミュレーションで消費電力を求める。この工程では膨大な計算時間が必要になるが比較的正確な消費電力を求めることができる。そして，この動作シミュレーションで得た機能モデルパラメータの組み合わせと消費電力との対応を有する電力モデルを記憶しておけば，電力見積対象のアプリケーションプログラムの実行時における機能モデルについて，動作シミュレーションを実行し，そこで得られた機能モデルパラメータのログから，前述の電力モデルを参照して電力値を見積もることができる。この機能モデルでの動作シミュレーションはネットリストモデルの場合ほど長い計算時間は必要ない。よって，短時間でアプリケーションプログラムの動作に依存した機能モデルの消費電力を見積もることができる。
【００１２】
上記の目的を達成するために，本発明の第２の側面によれば，ＬＳＩの消費電力を見積もる電力見積方法は，
（ａ）ソースコードで記述されている機能モデルを解析して消費電力に影響を与える機能モデルパラメータを抽出し，前記機能モデルに対応し，ネットリストで記述されているネットリストモデルを解析して前記機能モデルパラメータに対応するネットリストパラメータを抽出し，前記機能モデルパラメータとネットリストパラメータの対応関係を保持する工程と，
（ｂ）前記ネットリストモデルを動作シミュレーションして前記機能モデルパラメータの値と消費電力を測定する工程と，
（ｃ）工程（ｂ）で得られた機能モデルパラメータの値の組み合わせとそれに対応する消費電力との関係からなる電力モデルを作成する工程と，
（ｄ）見積対象アプリケーションプログラムの動作における機能モデルの動作シミュレーションを実行し，その実行したときの機能モデルパラメータの値の組み合わせに対応する消費電力を，前記電力モデルを参照して抽出し，前記見積対象アプリケーションの動作における機能モデルの消費電力を見積もる工程とを有する。
【発明を実施するための最良の形態】
【００１３】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１４】
ＬＳＩの消費電力は，一般的にＬＳＩの内部の動作に関連しているので，内部の動作が決まると消費電力も決まる。一方，内部の動作は，内部の信号線やレジスタの値などのパラメータ値に反映されている。ただし，消費電力は，全てのパラメータ値に依存しているわけではなく，消費電力に影響を与える特定のパラメータ値に依存している。
【００１５】
たとえば，ＤＭＡ（ダイレクトメモリアクセス）機能を有するマクロ（ＩＰ）の消費電力は，ＤＭＡ動作の有無，リードやライト時の内部パラメータ値，例えばバーストサイズなど，に依存して決まる。または，ＭＰＥＧデコーダの機能を有するマクロの場合は，画像サイズや画像の種類などの内部パラメータ値に依存して電力が決まる。
【００１６】
そこで，本実施の形態では，機能モデルについて，そのネットリストモデルの動作シミュレーションを実行して機能モデルパラメータの組み合わせと消費電力との関係を電力モデルとしてあらかじめ求めておく。そして，見積対象アプリケーションプログラムを実行した場合の機能モデルの動作をシミュレーションし，そのときの機能モデルパラメータ値のログを取得する。このログの機能モデルパラメータの組み合わせについて，前述の電力モデルを参照して，対応する消費電力を求める。見積対象アプリケーションプログラムについて機能モデルをシミュレーションするだけで，ネットリストモデルのシミュレーションの精度で消費電力を見積もることができる。
【００１７】
上記の機能モデルは，回路の動作や振る舞いを表現したレベルであるビヘイビアレベルの記述レベルであり，例えばSystemCなどの言語で記述される。または，機能モデルは，レジスタ間の動作を表現したレベルであるレジスタトランスファレベル（RTL）の記述レベルであってもよい。
【００１８】
図１は，本実施の形態における電力見積方法の概略を示す図である。この電力見積方法は，事前準備としての事前モデリング（Ｓ１，Ｓ２，Ｓ３）と，見積対象アプリケーションについての電力見積（Ｓ４）とで構成される。最初の工程は，モデルの全パラメータを抽出する工程Ｓ１である。ここでは，見積対象のモデル１０を周辺マクロとして有するシステム１００において，モデル１０のパラメータを抽出する（Ｓ１）。
【００１９】
具体的には，モデル１０に対応するビヘイビアレベルのソースコード（例えば言語SystemC）で記述された機能モデル１０Ｆの記述を解析して，それに含まれる機能モデルパラメータ１２Ｆを抽出し（Ｓ１１），さらに，モデル１０に対応するネットリストで記述されたネットリストモデル１０Ｎの記述を解析して，それに含まれるネットリストパラメータ１２Ｎを抽出する（Ｓ１２）。両パラメータは１対１に対応付けられることが望ましい。
【００２０】
次に，ネットリストモデル１０Ｎについて，シミュレーションシステム２００により，動作シミュレーションを実行し電力を測定する（Ｓ２）。このとき，パラメータの値とそれらに対する消費電力のログを取得する。そして，電力に関係する機能モデルパラメータの値の組み合わせと消費電力との相関関係を示す電力モデル２０８を作成する（Ｓ３）。このとき，電力モデルは，電力値に関係する（影響を与える）機能モデルパラメータ２１０に絞り込むことが望ましい。以上で事前モデリングが終了する。
【００２１】
そして，見積対象アプリケーションプログラムをシステム３００が実行した場合の機能モデルシミュレーションにより電力見積を行う（Ｓ４）。具体的には，見積対象アプリケーションプログラムをシステム３００が実行した場合における，機能モデル１０Ｆの動作シミュレーションを実行し，その時の機能モデルパラメータの値のログを取得する（Ｓ４１）。この機能モデルパラメータの値のログ（シミュレーション結果）から，前述の電力モデルを参照し，同じ値の組み合わせに対応する消費電力を抽出し，機能モデル１０Ｆの電力を見積もる（Ｓ４２）。
【００２２】
以下，各工程について具体例を参照しながら説明する。
【００２３】
図２は，工程Ｓ１の詳細なフローチャート図である。モデルの全パラメータを抽出する工程Ｓ１は，前述の通り機能モデル１０Ｆのソースコードを解析して機能モデルパラメータ１２Ｆを抽出する工程Ｓ１１と，ネットリストモデルを解析してネットリストパラメータ１２Ｎを抽出する工程Ｓ１２とからなる。
【００２４】
図３，図４は，機能モデルの一例としてＤＭＡ（ダイレクトメモリアクセス）の機能を有するモデルを説明する図である。図３には，システム１１０の構成が示されている。このシステムは，ＣＰＵと，２つのメモリＲＡＭａ，ＲＡＭｂと，システムバスＢＵＳと，ＤＭＡ機能を有する機能マクロ１０とを有する。ＤＭＡマクロ１０は，リードユニットＲｅａｄとライトユニットＷｒｉｔｅと転送バッファＢｕｆとを有する転送ユニット１１２と，コントローラ１１４と，レジスタ群１１６とを有する。レジスタ群１１６は，ＤＭＡの転送元アドレスを格納するソースアドレスレジスタＳｒｃＡｄｒと，ＤＭＡの転送先アドレスを格納するデスティネーションアドレスレジスタＤｓｔＡｄｒと，ＤＭＡ転送データ量を示す転送サイズを格納するサイズレジスタＳｉｚｅと，１回のＤＭＡリクエストに対する転送回数（バーストサイズ）を格納するバーストサイズレジスタＢｕｒｓｔＳｉｚｅと，ＤＭＡ転送フラグを格納するアクティブレジスタＡｃｔｉｖｅとを有する。
【００２５】
ＤＭＡマクロ１０では，例えばＣＰＵが，レジスタ群１１６内のソースアドレスレジスタＳｒｃＡｄｒと，デスティネーションアドレスレジスタＤｓｔＡｄｒと，サイズレジスタＳｉｚｅと，バーストサイズレジスタＢｕｒｓｔＳｉｚｅとにそれぞれ，転送元アドレスと，転送先アドレスと，転送サイズと，バーストサイズを設定した後に，ＣＰＵがアクティブレジスタを活性状態の「１」に設定して，ＤＭＡリクエストをアサートする。ＤＭＡマクロ１０のコントローラ１１４は，アクティブレジスタに「１」が設定されたことに応答して，転送元アドレスへの読み出し動作を読み出しユニットＲｅａｄに実行させ，読み出したデータを転送バッファＢｕｆに格納させ，転送先アドレスへの書き込み動作を書き込みユニットＷｒｉｔｅに実行させる。そして，コントローラ１１４が，レジスタ内の転送元アドレスと転送先アドレスと転送サイズとを更新する。そして，コントローラ１１４は，転送サイズが「０」になるまで，上記の読み出しと書き込み動作を繰り返し，転送サイズが「０」になると，アクティブレジスタに非活性状態の「０」を設定してＤＭＡ転送を終了する。
【００２６】
図４は，ＤＭＡマクロに対応するビヘイビアレベルのソースコードで記述されている機能モデルの例を示している。ただし，図４では，SystemCの言語やＲＴＬ言語では記述されておらず，より高度な擬似コードで記述されている。
【００２７】
図４の左側の機能モデル１０Ｆ（１）には，モデル名「ＤＭＡ」の宣言，制御レジスタと外部信号線とが宣言されている。さらに，右側の機能モデル１０Ｆ（２）には，ＤＭＡ起動シーケンスのビヘイビアと，ＤＭＡ動作のビヘイビアとが記述されている。この擬似コードで記述されたＤＭＡ起動シーケンスとＤＭＡ動作シーケンスは，前述したＤＭＡマクロ１０のＤＭＡ転送の動作シーケンスと一致している。ただし，実際の機能モデル１０Ｆは，SystemC言語やＲＴＬ言語などの高級言語によるソースコードで記述されている。
【００２８】
そして，そのソースコードの記述には，外部とのインターフェースになる信号線と，変数とが含まれている。図２の工程Ｓ１１による機能モデルのソースコード解析（例えば構文解析）により，ソースコードの記述に含まれている信号線と変数が機能モデルパラメータとして抽出される。
【００２９】
図５は，ＤＭＡ機能モデルにおける機能モデルパラメータとネットリストパラメータの例を示す図である。図４に示した機能モデル１０Ｆのソースコードによる記述を解析して，インターフェースになる信号「address」「data」「ReadEnable」「WriteEnable」と，変数「SrcAdr」「DstAdr」「size」「burstsize」「Active」とが機能モデルパラメータ１２Ｆとして抽出されている。
【００３０】
図２に示したとおり，機能モデル１０Ｆは，論理合成ツールなどの変換ツール１４により対応するネットリスト１０Ｎに変換される。この変換ツール１４では，機能モデルの機能モデルパラメータに対応して，ネットリストのネットリストパラメータとして，機能モデルパラメータと同じ名称で，または異なるが対応する名称に変換する。したがって，機能モデルパラメータ１２Ｆとネットワークパラメータ１２Ｎとは１対１に対応する関係を有する。
【００３１】
そこで，ネットリストモデル１０Ｎについてネットリスト解析Ｓ１２を行うことで，ネットリストパラメータ１２Ｎが抽出される。変換ツール１４が変換時に作成したパラメータ対応表などを参照することで，機能モデルパラメータ１２Ｆとネットリストパラメータ１２Ｎとを１対１に対応付けすることができる。
【００３２】
図５の右側には，ネットリストパラメータ１２Ｎの一例が示されている。この例では，ネットリストパラメータ１２Ｎが，端子名として「Taddress」「Tdata」「TReadEnable」「TWriteEnable」が，レジスタ名として「RSrcAdr」「RDstAdr」「Rsize」「Rburstsize」「RActive」がそれぞれ抽出されている。そして，この例では，ネットリストパラメータの端子名とレジスタ名は，機能モデルパラメータの信号名と変数名に「Ｔ」「Ｒ」を頭文字に加えたものに変更されている。このように，図５に示されるとおり，機能モデルパラメータ１２Ｆとネットリストパラメータ１２Ｎとは１対１の対応関係を有している。
【００３３】
図６は，ネットリストシミュレーションによる電力測定工程Ｓ２を説明する図である。ネットリストの動作シミュレーションを行って電力を測定するツールは一般に普及している。したがって，その電力測定ツールであるシミュレーションシステム２００により，ネットリスト１０Ｎに複数の入力パターンを与えて動作シミュレーションを実行する。入力パターン２０２は，ネットリストパラメータ１２Ｎのパラメータ値の多数の組み合わせからなる入力データパターンであり，多数の入力パラメータ２０２（１）〜２０２（ｘ）について動作シミュレーションを実行し，実行時のパラメータ値２０６と電力値２０４とのログを取得する。
【００３４】
図７は，ネットリストシミュレーションで取得したパラメータ値と電力値の一例を示す図である。図７には，横軸時間に対して電力値の変化と，機能モデルパラメータに対応するパラメータ値の変化が示されている。ネットリストシミュレーションでは，図７中の複数の垂直線で示したサンプリングタイミングでの電力値と全てのパラメータの値（図中丸の位置の値）とがログとして記録される。図７の例に示されるとおり，パラメータ値の変化に対応して電力値が逐次変化していることが理解できる。特に，アクティブレジスタの変数Activeが「１」になるとＤＭＡマクロがＤＭＡ転送を実行して電力値が上昇することが認められる。また，電力値は，それ以外のパラメータ値，例えばリードイネーブル，ライトイネーブルなどの影響を受けて変動している。
【００３５】
図８は，図７のネットワークシミュレーションを実行して得られたパラメータ値の組み合わせと対応する電力値のログを示す図である。多数の入力パターンに対して動作シミュレーションが行われるので，得られるログのデータ量はかなりの数になる。図８には，そのごく一部のみが一例として示され，９つのパラメータ（機能モデルパラメータで示されている）の値に対する電力値がそれぞれ示されている。
【００３６】
図９は，図１の工程Ｓ３の具体的なフローチャート図である。工程Ｓ３では，ネットリストシミュレーションで得られた電力とパラメータ値のデータ２０４，２０６（図８のログデータ）から，電力値に関係しない機能モデルパラメータを削除し（Ｓ３２），ログデータのデータ量を低減する。そして，電力値に関係する機能モデルパラメータと電力値の対応表を作成して電力モデル２０８を生成する（Ｓ３４）。つまり，電力モデル２０８は，電力値に関係する機能モデルパラメータと電力値の対応表である。
【００３７】
図１０は，図９の上記の工程Ｓ３２の処理プログラムの擬似コードを示す図である。まず，機能モデルパラメータＸ１〜Ｘｎと，機能モデルパラメータＸ１〜Ｘｎの組み合わせに対する電力値Ｗ（Ｘ１〜Ｘｎ）を定義する（Ｐ１）。そして，プログラムＰ２では，全てのパラメータについて，その指定したパラメータが電力に関係あるか否かをチェックするサブルーチンＳＵＢ１を実行し，関係がない場合はそのパラメータを削除する。
【００３８】
サブルーチンＳＵＢ１では，図８の全ての測定データについて，パラメータＸｋ（Ｘｋ＝Ｘ０〜Ｘｎ）の値がＮk0〜Ｎknの場合の電力値の平均値をそれぞれ求め，その電力値の平均値の分散を計算する。そして，この電力値の平均値の分散が規定値Ｓ以下の場合は，そのパラメータＸｋは電力が依存しない，つまり電力に関係しない（影響を与えない）パラメータであると判定する。電力値の平均値の分散が規定値Ｓを超える場合は，そのパラメータは電力が依存するパラメータと判定する。分散が規定値Ｓを超える場合は，パラメータＸｋの値に関連して電力値が変化する度合いが大きいからである。
【００３９】
図１０の処理プログラムによれば，電力値に関係しないパラメータを検出することができ，測定データのログからそのパラメータを削除することができ，電力モデルのデータ量を少なくすることができる。
【００４０】
図１１は，図１の工程Ｓ３の別の具体的なフローチャート図である。これによれば，工程Ｓ３では，ネットリストシミュレーションで得られた電力とパラメータ値のデータ２０４，２０６（図８のログデータ）から，電力値に関係しない機能モデルパラメータを２つのアルゴリズムにより２段階で削除し（Ｓ３２，Ｓ３２−１，Ｓ３２−２），ログデータのデータ量を低減する。２段階でパラメータを削減することが，図９と異なる点である。そして，電力値に関係する機能モデルパラメータと電力値の対応表を作成して電力モデル２０８を生成する（Ｓ３４）。
【００４１】
図１２は，図１１の上記の工程Ｓ３２−１，Ｓ３２−２の処理プログラムの擬似コードを示す図である。図１０と同様に，まず，機能モデルパラメータＸ１〜Ｘｎと，機能モデルパラメータＸ１〜Ｘｎの組み合わせに対する電力値Ｗ（Ｘ１〜Ｘｎ）を定義する（Ｐ１）。そして，プログラムＰ２では，全てのパラメータについて，その指定したパラメータが電力に関係あるか否かをチェックするサブルーチンＳＵＢ２を実行し，関係がない場合はそのパラメータを削除する。
【００４２】
サブルーチンＳＵＢ２では，図８の全ての測定データについて，パラメータＸｋの値がＮk0〜Ｎknの場合での電力値の平均値と平均値の分散とをそれぞれ求める（Ｐ３）。そして，パラメータＸｋの値がＮk0〜Ｎknの場合での電力値の分散が規定値Ｓ以下の場合は，そのパラメータ値Ｘｋ＝Ｎk0〜Ｎknの時に，それ以外のパラメータには依存しないと判定する（Ｓ４）。この判定Ｐ４は，図１１のアルゴリズムＡＬ１に基づくものであり，あるパラメータＸｋが特定の値Ｎkkの時にそれ以外のパラメータは電力値に影響を与えないことが判別できれば，電力モデルからパラメータの組み合わせ数を減らすことができる。
【００４３】
さらに，アルゴリズムＡＬ２として，電力値の平均値の分散が規定値Ｓ以下の場合は，そのパラメータＸｋは電力が依存しないパラメータであると判定する。電力値の平均値の分散が規定値Ｓを超える場合は，そのパラメータは電力が依存するパラメータと判定する（Ｐ５）。このアルゴリズムＡＬ２は，図１０のサブルーチンＳＵＢ１と同じである。
【００４４】
図１３は，ネットリストシミュレーションで取得した測定データの一例を示す図である。図１３（Ａ）は，横軸がバーストサイズBurstSize，縦軸が電力値であり，アクティブActive＝０の場合においてバーストサイズが１，２，４，８，１６と変化した時の電力値がプロットされている。白丸が測定値であり黒丸がその平均値である。これによれば，アルゴリズムＡＬ１による判別処理により，アクティブActive＝０の場合には，電力値の分散がほとんどないので，他のパラメータであるバーストサイズは電力に影響を与えないことが判別できる。つまり，アクティブActive＝０の場合にバーストサイズは「ノットケア（依存せず）」になる。
【００４５】
図１３（Ｂ）も，横軸がバーストサイズBurstSize，縦軸が電力値であり，ただし，アクティブActive＝１の場合においてバーストサイズが１，２，４，８，１６と変化した時の電力値がプロットされている。これによれば，アクティブActive＝１の場合には，バーストサイズに依存した電力値が検出されている。これによれば，アルゴリズムＡＬ１による判別処理により，アクティブActive＝１の場合には，電力値の分散が大きく，他のパラメータであるバーストサイズは電力に影響を与えることが判別され，アクティブActive＝１の場合においてバーストサイズというパラメータを削減することはできない。
【００４６】
しかも，アクティブActiveについては，「０」の場合と「１」の場合とで電力値が異なり分散しているので，アルゴリズムＡＬ２による判別処理により，パラメータのアクティブActiveが削除されることはない。
【００４７】
図１４は，図１３の測定データ例を工程Ｓ３２−１，Ｓ３２−２の処理プログラムで生成した電力モデルの例を示す図である。この電力モデル２０８のパラメータでは，図８の測定データ２０４／２０６から電力値に依存しないパラメータを削除し，さらにあるパラメータが特定の値の場合に電力値に依存しないパラメータも削除している。
【００４８】
例えば，Ｍ１は，アクティブActive＝０の場合に他の３つのパラメータの値には電力値が依存しないことを示している。また，Ｍ２は，アクティブActive＝１の場合でもリードイネーブルReadEnable＝０，ライトイネーブルWriteEnable＝０の場合には，バーストサイズBurstSizeに依存しないことを示している。それ以外のＭ３〜Ｍ８は，４つのパラメータの値の組み合わせに応じた電力値が対応付けられている。
【００４９】
上記のモデルＭ２を判別するためには，アクティブActive＝１，リードイネーブルReadEnable＝０，ライトイネーブルWriteEnable＝０の場合での，バーストサイズBurstSizeを可変にした時の電力値が分散していないことが検出される必要がある。よって，図１２のプログラムP3,P4では，パラメータＸｋの部分集合が取りうる組み合わせについて全て電力値の平均値を分散を計算することが必要になる。
【００５０】
よって，図１２において，プログラムＰ５の処理を最初に行ってある程度のパラメータを削除し，その後，プログラムＰ３，Ｐ４について，単独のパラメータが特定の値をとるときの電力値の分散値，複数のパラメータが特定の値の組み合わせをとるときの電力値の分散値を共に求めて，その分散値と規定値Ｓとの比較から電力値との関係をチェックすることが望ましい。
【００５１】
図１４に示されるとおり，電力モデル２０８では，測定データよりもパラメータの数が削減され，且つパラメータの値の組み合わせ数も削減される。
【００５２】
図１５は，工程Ｓ４の具体的なフローチャートを示す図である。機能モデルシステム３００は，ＣＰＵや他のＩＰ（マクロ）に加えて，電力測定対象のＩＰマクロ（機能モデル）１０Ｆを有する。このＩＰマクロ１０Ｆは，前述の例では図３のＤＭＡマクロ１０をSystemCなどで記述した機能モデルである。ただし，機能モデルシステム３００は，図１中の機能モデルシステム１００とは異なる見積対象アプリケーションプログラム２１２を実行する。この見積対象アプリケーションプログラム２１２は，例えばＭＰＥＧデコードプログラムなどであり，そのアプリケーションプログラム２１２を実行した場合における，電力測定対象のＩＰマクロであるＤＭＡマクロ１０Ｆの消費電力を，電力モデル２０８を参照することで見積もることができる。
【００５３】
図１５に記載されるとおり，見積対象アプリケーションプログラム２１２と，対象ＩＰマクロ１０に対応する機能モデル１０Fの機能モデルパラメータのうち電力値に影響を与える機能モデルパラメータ２１０とを機能モデルシミュレータに入力して，機能モデルシミュレーションＳ４１を実行する。このシミュレーションＳ４１は，例えば，記述言語の一例であるベリログ（Verilog）の機能シミュレータや，記述言語の他の例であるSystemCの機能シミュレータや，RTL言語の機能シミュレータなど，既存の機能シュミレータツールを利用して行うことができる。機能モデルシミュレーションＳ４１を実行することで，ソースコードで記述された機能モデル１０Ｆについて，見積対象アプリケーションプログラム２１２を実行した場合の機能モデルパラメータの変化をログにとることができる。
【００５４】
その結果，一定時間間隔毎の機能モデルパラメータの値がシミュレーションのログＬＯＧとして取得される。
【００５５】
図１６は，機能モデルパラメータのログとそれから見積もられる電力値の一例を示す図である。図１６（Ａ）は，図１５で求められたログＬＯＧを示す図である。このログＬＯＧは，電力モデルに残っている４つの機能モデルパラメータburstSize，Active，ReadEnable，WriteEnableの値のサンプリングタイミング毎の値を有する。見積対象アプリケーションプログラム，例えばＭＰＥＧデコーダ処理プログラムを実行した時に，ＣＰＵが必要に応じてＤＭＡ要求を発行し，それに応答してＤＭＡマクロ１０がＤＭＡを実行した場合の機能モデルパラメータの変化が，ＬＯＧとして取得される。
【００５６】
図１５に戻り，機能モデルシミュレーションＳ４１で取得したログＬＯＧについて，あらかじめ生成していた電力モデル２０８を参照し，対応するパラメータ値の組み合わせに対応する電力値を抽出して，図１６（Ｂ）に示す見積電力値２１４を生成することができる。
【００５７】
以上説明したとおり，本実施の形態によれば，図１に示すとおり，事前モデリングで電力見積対象のＩＰマクロについて，ネットリストシミュレーションＳ２で電力値を測定し，機能マクロパラメータの組み合わせに対応する電力値を有する電力モデル２０８を生成しておく。そして，電力見積対象のアプリケーションプログラムを実行した時の，電力見積対象のＩＰマクロの機能モデル１０Ｆの機能マクロパラメータのログを，機能モデルシミュレーションにより取得し（Ｓ４１），電力モデル２０８を参照してログに含まれる機能マクロパラメータの値の組み合わせに対応する電力値を抽出し，電力見積を行うことができる（Ｓ４２）。よって，様々な動作における電力値を機能モデルについてシミュレーションを実行するだけで，より正確な電力値を見積もることができる。
【００５８】
以上の実施の形態をまとめると，次の付記のとおりである。
【００５９】
（付記１）ＬＳＩの消費電力を見積もる電力見積方法において，
（ａ）ソースコードで記述されている機能モデルを解析して消費電力に影響を与える機能モデルパラメータを抽出し，前記機能モデルに対応し，ネットリストで記述されているネットリストモデルを解析して前記機能モデルパラメータに対応するネットリストパラメータを抽出し，前記機能モデルパラメータとネットリストパラメータの対応関係を保持する工程と，
（ｂ）前記ネットリストモデルを動作シミュレーションして前記機能モデルパラメータの値と消費電力を測定する工程と，
（ｃ）工程（ｂ）で得られた機能モデルパラメータの値の組み合わせとそれに対応する消費電力との関係からなる電力モデルを作成する工程と，
（ｄ）見積対象アプリケーションプログラムの動作における機能モデルの動作シミュレーションを実行し，その実行したときの機能モデルパラメータの値の組み合わせに対応する消費電力を，前記電力モデルを参照して抽出し，前記見積対象アプリケーションの動作における機能モデルの消費電力を見積もる工程とを有する電力見積方法。
【００６０】
（付記２）付記１において，
前記機能モデルパラメータは，前記機能モデルの記述に含まれる信号及び変数を含み，
前記ネットリストパラメータは，前記ネットリストの記述に含まれる端子名やレジスタ名を含む電力見積方法。
【００６１】
（付記３）付記１において，
前記工程（ｃ）は，前記消費電力に影響を与えない機能モデルパラメータを削除して前記電力モデル内の機能モデルパラメータの組み合わせ数を低減する低減工程を有する電力見積方法。
【００６２】
（付記４）付記３において，
前記低減工程では，機能モデルパラメータの異なる値に対応する消費電力の分散が基準値以下の場合に，当該機能モデルパラメータを削除する電力見積方法。
【００６３】
（付記５）付記４において，
前記低減工程では，機能モデルパラメータの第１の値に対応する消費電力の分散が第１の基準値以下の場合に，前記機能モデルパラメータの第１の値に対応する消費電力の平均値を，当該機能モデルパラメータが第１の値でありそれ以外の機能モデルパラメータが任意の値の時の消費電力とする電力見積方法。
【００６４】
（付記６）付記１において，
前記工程（ｂ）において，前記ネットリストモデルの動作シミュレーションでは，複数種類の入力パターンについて動作シミュレーションを実行し，サンプリングタイミング毎の前記ネットリストパラメータの値とその時の消費電力のログを記録することを特徴とする電力見積方法。
【００６５】
（付記７）付記１において，
前記工程（ｄ）において，前記機能モデルの動作シミュレーションでは，サンプリングタイミング毎の前記機能モデルパラメータの値のログを記録することを特徴とする電力見積方法。
【００６６】
（付記８）ＬＳＩの消費電力を見積もる電力見積装置において，
（ａ）ソースコードで記述されている機能モデルを解析して消費電力に影響を与える機能モデルパラメータを抽出し，前記機能モデルに対応し，ネットリストで記述されているネットリストモデルを解析して前記機能モデルパラメータに対応するネットリストパラメータを抽出し，前記機能モデルパラメータとネットリストパラメータの対応関係を保持する手段と，
（ｂ）前記ネットリストモデルを動作シミュレーションして前記機能モデルパラメータの値と消費電力を測定する手段と，
（ｃ）工程（ｂ）で得られた機能モデルパラメータの値の組み合わせとそれに対応する消費電力との関係からなる電力モデルを作成する手段と，
（ｄ）見積対象アプリケーションの動作における機能モデルの動作シミュレーションを実行し，その実行したときの機能モデルパラメータの値の組み合わせに対応する消費電力を，前記電力モデルを参照して抽出し，前記見積対象アプリケーションの動作における機能モデルの消費電力を見積もる手段とを有する電力見積装置。
【図面の簡単な説明】
【００６７】
【図１】本実施の形態における電力見積方法の概略を示す図である。
【図２】工程Ｓ１の詳細なフローチャート図である。
【図３】機能モデルの一例としてＤＭＡ（ダイレクトメモリアクセス）の機能を有するモデルを説明する図である。
【図４】機能モデルの一例としてＤＭＡ（ダイレクトメモリアクセス）の機能を有するモデルを説明する図である。
【図５】ＤＭＡ機能モデルにおける機能モデルパラメータとネットリストパラメータの例を示す図である。
【図６】ネットリストシミュレーションによる電力測定工程Ｓ２を説明する図である。
【図７】ネットリストシミュレーションで取得したパラメータ値と電力値の一例を示す図である。
【図８】図７のネットワークシミュレーションを実行して得られたパラメータ値の組み合わせと対応する電力値のログを示す図である。
【図９】図１の工程Ｓ３の具体的なフローチャート図である。
【図１０】図９の上記の工程Ｓ３２の処理プログラムの擬似コードを示す図である。
【図１１】図１の工程Ｓ３の別の具体的なフローチャート図である。
【図１２】図１１の上記の工程Ｓ３２−１，Ｓ３２−２の処理プログラムの擬似コードを示す図である。
【図１３】ネットリストシミュレーションで取得した測定データの一例を示す図である。
【図１４】図１３の測定データ例を工程Ｓ３２−１，Ｓ３２−２の処理プログラムで生成した電力モデルの例を示す図である。
【図１５】工程Ｓ４の具体的なフローチャートを示す図である。
【図１６】機能モデルパラメータのログとそれから見積もられる電力値の一例を示す図である。
【符号の説明】
【００６８】
１０Ｆ：機能モデル                  １０Ｎ：ネットリスト
１２Ｎ：ネットリストパラメータ      １２Ｆ：機能モデルパラメータ
２０８：電力モデル
【図１】
0005040625.tif 000002
【図２】
0005040625.tif 000003
【図３】
0005040625.tif 000004
【図４】
0005040625.tif 000005
【図５】
0005040625.tif 000006
【図６】
0005040625.tif 000007
【図７】
0005040625.tif 000008
【図８】
0005040625.tif 000009
【図９】
0005040625.tif 000010
【図１０】
0005040625.tif 000011
【図１１】
0005040625.tif 000012
【図１２】
0005040625.tif 000013
【図１３】
0005040625.tif 000014
【図１４】
0005040625.tif 000015
【図１５】
0005040625.tif 000016
【図１６】
0005040625.tif 000017