(57)【要約】【課題】電力見積り値の誤差を抑制する。【解決手段】電力見積り装置は、記憶部、機能モデル生成部および電力見積り部を備える。記憶部は、電力を消費する回路動作におけるクロックの変化回数の１回当たりの電力量を記憶する。機能モデル生成部は、電力を消費する回路動作時にクロックを透過させる端子を追加した機能モデルを生成する。電力見積り部は、電力を消費する回路動作時にクロックを透過させる端子に透過したクロックのトグルレートと上記の電力量との演算を行って、上記の回路動作時に要する電力量を算出する。【選択図】図１
2013210777.tif 000002
【特許請求の範囲】
【請求項１】
電力を消費する回路動作におけるクロックの変化回数の１回当たりの電力量を記憶する記憶部と、
前記回路動作時に前記クロックを透過させる端子を追加した機能モデルを生成する機能モデル生成部と、
前記端子に透過した前記クロックのトグルレートと前記電力量との演算を行って、前記回路動作時に要する電力量を算出する電力見積り部と、
を有する電力見積り装置。
【請求項２】
前記機能モデルはメモリマクロの機能モデルであり、前記回路動作は前記メモリマクロのライト動作またはリード動作であって、
前記機能モデル生成部は、前記ライト動作時または前記リード動作時に前記クロックが透過する前記端子を生成し、
前記電力見積り部は、前記端子に透過した前記クロックのトグルレートと前記電力量との演算を行って、前記ライト動作時または前記リード動作時に要する電力量を算出する請求項１記載の電力見積り装置。
【請求項３】
前記機能モデルはメモリマクロの機能モデルであり、前記回路動作は、前記メモリマクロのライト動作とリード動作であって、
前記機能モデル生成部は、前記ライト動作時に前記クロックが透過する第１の端子を生成し、前記リード動作時に前記クロックが透過する第２の端子を生成し、
前記電力見積り部は、前記第１の端子に透過した前記クロックの第１のトグルレートおよび前記第２の端子に透過した前記クロックの第２のトグルレートに対し、前記第１のトグルレートと第１の電力量との演算を行って、前記ライト動作時に要する電力量を算出し、前記第２のトグルレートと第２の電力量との演算を行って、前記リード動作時に要する電力量を算出する請求項１記載の電力見積り装置。
【請求項４】
コンピュータが、
電力を消費する回路動作時にクロックを透過させる端子を追加した機能モデルを生成し、
記憶部に記憶された前記回路動作におけるクロックの変化回数の１回当たりの電力量と、前記端子に透過した前記クロックのトグルレートとの演算を行って、前記回路動作時に要する電力量を算出する電力見積り方法。
【請求項５】
コンピュータに、
電力を消費する回路動作時にクロックを透過させる端子を追加した機能モデルを生成し、
記憶部に記憶された前記回路動作におけるクロックの変化回数の１回当たりの電力量と、前記端子に透過した前記クロックのトグルレートとの演算を行って、前記回路動作時に要する電力量を算出する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電力見積り装置、電力見積り方法およびプログラムに関する。
【背景技術】
【０００２】
ＡＳＩＣ（Application Specific Integrated Circuit）は、特定用途の制御などを目的として設計されたカスタムＩＣ（Integrated Circuit：集積回路）の総称である。ＡＳＩＣは、汎用チップとは異なり、通常、機器メーカーの希望する仕様に合わせて新たな専用デバイスとして設計される。
【０００３】
ＡＳＩＣを開発する際は、ライブラリとしてあらかじめ用意されているセル（基本論理ゲート）や、数種のマクロ（特定機能を持つ１つの回路ブロック）を使用して、論理空間に応じた回路を、ＨＤＬ（Hardware Description Language）により記述して生成する。
【０００４】
ＨＤＬは、集積回路を設計するための論理記述言語である。ＨＤＬとしては、例えば、デジタル回路設計の論理シミュレータである、Ｖｅｒｉｌｏｇ ＨＤＬが広く使用されている。
【０００５】
一方、ＡＳＩＣ設計の段階では、消費電力を見積ることが行われる。この場合、入力データに応じた消費電力の見積り結果を表示する電力見積りツールが利用されることが多い。
【０００６】
電力見積りツールでは、セルの端子における、トグルレート（toggle rate）とプロバビリティ（probability）とを使った確率伝搬計算により、電力値を求めるピンベース方式が広く採用されている。
【０００７】
なお、トグルレートとは、単位時間当たりの信号の値の変化回数を示す。例えば、トグル回数／ｎｓと表記される。また、プロバビリティは、単位時間当たりの信号のハイレベル区間の割合を示す。例えば、単位時間当たりの信号の７０％の区間がハイレベルであれば０．７と表記される。
【０００８】
ピンベース方式では、電力見積りの高速計算が可能であり、また、機能追加などに柔軟に対応することができるメンテナンスビリティを持つといった利点を有している。
消費電力算出の従来技術としては、実パタン方式と確率伝搬方式を組み合わせて、回路の消費電力計算を行う技術が提案されている。また、機能ブロック、組合せ回路、およびフリップフロップの出力信号の動作率から、論理回路を動作させたときの消費電力を算出する技術が提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−２０７４２５号公報
【特許文献２】特開２００９−２０５２７０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、従来のピンベース方式の確率伝搬計算で、メモリマクロの消費電力を算出すると、主にトグルレートの変化が確率伝搬計算に影響を与えるため、誤差が出やすく、正確な消費電力を見積ることができない可能性があった。
【００１１】
例えば、クロックゲーティング回路を使用したメモリマクロでは、クロック供給の有無に応じて、同じライト動作またはリード動作であっても、消費電力に誤差が生じることがある。
【課題を解決するための手段】
【００１２】
発明の一観点によれば、電力を消費する回路動作におけるクロックの変化回数の１回当たりの電力量を記憶する記憶部と、前記回路動作時に前記クロックを透過させる端子を追加した機能モデルを生成する機能モデル生成部と、前記端子に透過した前記クロックのトグルレートと前記電力量との演算を行って、前記回路動作時に要する電力量を算出する電力見積り部と、を備えた電力見積装置が提供される。
【発明の効果】
【００１３】
開示の電力見積り装置、電力見積り方法およびプログラムによれば、電力見積り値の誤差を抑制することが可能になる。
【図面の簡単な説明】
【００１４】
【図１】電力見積り装置の構成例を示す図である。
【図２】回路シミュレーション装置の構成例を示す図である。
【図３】電力見積りの動作フローを示す図である。
【図４】ＲＡＭ一覧ファイルの例を示す図である。
【図５】ＲＡＭの設計データの例を示す図である。
【図６】ライブラリの例を示す図である。
【図７】シミュレーションモデルを示す図である。
【図８】ＲＡＭの各端子の波形を示す図である。
【図９】ＲＡＭの各端子の波形を示す図である。
【図１０】回路シミュレーション装置の構成例を示す図である。
【図１１】コンピュータのハードウェアの一構成例を示す図である。
【図１２】シミュレーションモデルを示す図である。
【図１３】ＲＡＭの各端子の波形を示す図である。
【図１４】ライブラリの例を示す図である。
【図１５】ＲＡＭのシミュレーションモデルとライブラリとの生成動作フローを示す図である。
【図１６】ＲＡＭ一覧ファイルの例を示す図である。
【図１７】ＲＡＭ／ＲＯＭパラメータ計算モデルの例を示す図である。
【図１８】ＲＡＭパラメータ値一覧の例を示す図である。
【図１９】１ＲＷ−ＲＡＭ用のシミュレーションモデルテンプレートの例を示す図である。
【図２０】１ＲＷ−ＲＡＭ用のシミュレーションモデルテンプレートの例を示す図である。
【図２１】シミュレーションモデルの出力例を示す図である。
【図２２】ライブラリセルテンプレートの例を示す図である。
【図２３】ライブラリセルテンプレートの例を示す図である。
【図２４】ライブラリの出力例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面を参照して説明する。図１は電力見積り装置の構成例を示す図である。電力見積り装置１０は、記憶部１１、機能モデル生成部１２および電力見積り部１３を備える。
【００１６】
記憶部１１は、電力を消費する回路動作（例えば、メモリマクロにおけるリード動作またはライド動作等）におけるクロックの変化回数の１回当たりの電力量を記憶する。
機能モデル生成部１２は、電力を消費する回路動作時にクロックを透過させる端子を追加した機能モデルを生成する。
【００１７】
この端子は、電力を消費する回路動作が複数種類ある場合には、複数設けるようにしてもよい。
電力見積り部１３は、上記端子に透過したクロックのトグルレートと、記憶部１１に記憶されている電力量との演算を行って、上記の回路動作時に要する電力量を算出する。
【００１８】
このように、電力見積り装置１０では、電力を消費する回路動作時にクロックを透過させる端子をあらたに設け、透過したクロックのトグルレートと、記憶部１１に記憶された電力規定値との演算を行って、回路動作時に要する電力量を算出する。
【００１９】
これにより、電力見積り値の誤差を抑制することが可能になる。例えば、クロックゲーティング回路を使用したようなメモリマクロに対し、クロック供給の有無に応じて、同じライト動作またはリード動作で消費電力に誤差が生じるといったことを抑制することが可能になる。
【００２０】
次に本技術を説明する前に解決すべき課題について詳しく説明する。なお、以降では、生成（検証）対象回路として、メモリマクロのうち、ＲＡＭ（Random Access Memory）を生成するものとして説明する。
【００２１】
図２は回路シミュレーション装置の構成例を示す図である。従来の回路シミュレーション装置２は、ＲＡＭライブラリシミュレーションモデル生成ツール２ａ、シミュレーション部２ｂおよび電力見積りツール２ｃを備える。
【００２２】
ＲＡＭライブラリシミュレーションモデル生成ツール２ａは、ＲＡＭ一覧ファイルからライブラリおよびシミュレーションモデルを生成する。
シミュレーション部２ｂは、シミュレーションモデルや設計データから、シミュレーション波形を取得して、メモリの各ポートのプロバビリティおよびトグルレートを算出する。電力見積りツール２ｃは、設計データ、ライブラリ内の情報、プロバビリティおよびトグルレート等から対象回路の電力値を算出する。
【００２３】
図３は電力見積りの動作フローを示す図である。回路シミュレーション装置２における電力見積りフローを示している。
〔Ｓ１〕ＲＡＭライブラリシミュレーションモデル生成ツール２ａは、ＲＡＭ一覧ファイルＦ１１にもとづき、ライブラリＬ１１およびシミュレーションモデルＭ１１を生成する。
【００２４】
〔Ｓ２〕シミュレーション部２ｂは、シミュレーションモデルＭ１１および設計データＤ１１にもとづき、シミュレーションを実行し、シミュレーション波形を取得する。
〔Ｓ３〕シミュレーション部２ｂは、シミュレーション波形からトグルレートおよびプロバビリティを算出し、算出結果をトグルレート／プロバビリティファイルに登録する。
【００２５】
〔Ｓ４〕電力見積りツール２ｃは、ライブラリＬ１１内の情報、設計データＤ１１、トグルレート／プロバビリティファイル内のトグルレートおよびプロバビリティから対象回路の電力値を算出する。
【００２６】
次にステップＳ１〜Ｓ４の各ステップの内容に説明する。まず、ステップＳ１について説明する。図４はＲＡＭ一覧ファイルの例を示す図である。ＲＡＭ一覧ファイルＦ１１は、ＲＡＭライブラリシミュレーションモデル生成ツール２ａに作成すべきモジュールを支持するファイルの一例を示している。
【００２７】
ＲＡＭ一覧ファイルＦ１１では、アドレス幅が５ビット、データ幅が８ビットのシングルポートのＲＡＭ０（１ＲＷ−ＲＡＭ）を作るように指示している。
図５はＲＡＭの設計データの例を示す図である。設計データＤ１１は、１個のＲＡＭ０がインスタンスされたモデルのトップモジュールを示している。ＲＡＭ０の端子には、ＣＫ端子、ＣＥ端子、ＷＥ端子、Ｉ［７：０］端子、ＩＡ［４：０］端子およびＡ［７：０］端子が接続されている。
【００２８】
ＣＫ端子は、クロックが入力する端子である。また、ＣＥ端子は、チップイネーブル端子であり、ＷＥ端子は、ライトイネーブル端子である。なお、ＣＥ端子およびＷＥ端子は共に、ローアクティブとする。
【００２９】
さらに、Ｉ［７：０］端子は、データ入力端子である。さらにまた、ＩＡ［４：０］端子は、アドレス入力端子であり、Ａ［７：０］端子は出力端子である。なお、［ｂ：ａ］とは、ａビットからｂビットまでの範囲を示している（例えば、ＩＡ［４：０］なら、０ビットから４ビットまでの範囲の計５ビットのアドレス入力端子であることがわかる）。
【００３０】
図６はライブラリの例を示す図である。ＲＡＭライブラリシミュレーションモデル生成ツール２ａは、ライブラリＬ１１を生成する。ライブラリＬ１１の記述では、ＲＡＭ０のＣＫ端子に電力値が記載されている。
【００３１】
記述文２１ａの！CE＆！WEは、ＣＥ端子とＷＥ端子が共にローレベルの場合であることを示す。すなわち、ＲＡＭ０がライト時の状態である条件を示している（なお、“！”はネガ（反転）を意味する）。
【００３２】
また、記述文２１ｂのvalues（“5.81735”）：は、ＣＫ端子が１回トグルしたときの消費電力の規定値が5.81735であることを示している。したがって、記述文２１では、ＲＡＭ０のライト時に、クロックが１回トグルした時に消費する電力は、5.81735であることを表している。
【００３３】
一方、記述文２２ａの！CE＆WEは、ＣＥ端子がローレベルで、ＷＥ端子がハイレベルである場合を示す。すなわち、ＲＡＭ０がリード時の状態である条件を示している。
また、記述文２２ｂのvalues（“6.26258”）：は、ＣＫ端子が１回トグルしたときの消費電力の規定値が6.26258であることを示している。したがって、記述文２２では、ＲＡＭ０のリード時に、クロックが１回トグルした時に消費する電力は、6.26258であることを表している。
【００３４】
一方、ステップＳ２において、シミュレーション部２ｂは、ＲＡＭ０の設計時、各種データ値、シミュレーションモデルおよびテストベンチ等を入力として、シミュレーションを実行する。
【００３５】
図７はシミュレーションモデルを示す図である。ＲＡＭ０（１ＲＷ−ＲＡＭ）の振る舞いをＨＤＬで書いた従来のシミュレーションモデルＭ１１であり、ＨＤＬ記述の中で利用される。シミュレーション部２ｂによるシミュレーションによって、ＲＡＭ０の波形データを取得でき、ＲＡＭ０の各端子の波形も取得できる。
【００３６】
また、シミュレーション部２ｂは、ステップＳ３において、シミュレーション波形データにもとづき、トグルレート／プロバビリティ算出処理を行って、算出結果をトグルレート・プロバビリティファイルに登録する。
【００３７】
トグルレート・プロバビリティファイルは、各端子のトグルレートとプロバビリティが書かれたファイルである。ファイルフォーマットとしては、ＴＣＦ（Toggle Count Format）やＳＡＩＦ（Switching Activity Interchange Format）が知られている。
【００３８】
ステップＳ４において、電力見積りツール２ｃは、設計データＤ１１、ライブラリＬ１１およびトグルレート・プロバビリティファイルを使って消費電力を算出する。また、ライブラリＬ１１の中に確率伝搬の演算式が定義されている場合には、この式を用いて消費電力の値が計算される。
【００３９】
次に具体的な波形例を示して消費電力算出について説明する。図８はＲＡＭの各端子の波形を示す図である。１００ｎｓ区間における、ＲＡＭ０のＣＫ端子、ＣＥ端子およびＷＥ端子の各波形を示している。
【００４０】
各端子のプロバビリティおよびトグルレートを示すと、ＣＫ端子のプロバビリティおよびトグルレートは、probability＝0.5、toggle rate＝0.2（toggle／ns）（＝100MHz）である。
【００４１】
また、ＣＥ端子のプロバビリティおよびトグルレートは、probability＝0.45、toggle rate＝0.01（toggle／ns）である。さらに、ＷＥ端子のプロバビリティおよびトグルレートは、probability＝0.75、toggle rate＝0.01（toggle／ns）である。
【００４２】
ここで、ＲＡＭ０のライト時のプロバビリティprobability（！CE＆！WE）を求める。この場合、probability（！CE）＝1−0.45＝0.55、probability（！WE）＝1−0.75＝0.25である。
【００４３】
また、Ａ＆Ｂのプロバビリティは、probability（A）×probability（B）で算出されるので、ＲＡＭ０のライト時のプロバビリティは、probability（！CE＆！WE）＝0.55×0.25＝0.1375となる。
【００４４】
さらに、ＲＡＭ０のリード時のプロバビリティprobability（！CE＆WE）を求めると、probability（！CE＆WE）＝0.55×0.75＝0.4125となる。
よって、ＲＡＭ０のライト時のＣＫ端子のトグルレートは、0.0275（＝0.2×0.1375）となり、ＲＡＭ０のリード時のＣＫ端子のトグルレートは、0.0825（＝0.2×0.4125）となる。
【００４５】
したがって、図８における、ＲＡＭ０のライト時の消費電力は、0.0275×5.81735と求まる。また、図８における、ＲＡＭ０のリード時の消費電力は、0.0825×6.26258と求まる。
【００４６】
図９はＲＡＭの各端子の波形を示す図である。クロック供給が途中で停止された場合のＣＫ端子、ＣＥ端子およびＷＥ端子の各波形を示している。
ここで、ＲＡＭやＲＯＭ（Read Only Memory）といったメモリマクロには、クロックゲーティング回路が使用されることがある。
【００４７】
クロックゲーティング回路は、回路が動作する必要のない時には、回路へのクロック供給を停止することで、消費電力を低減させる回路である。図９の場合では、ＣＥ端子がアサートされている区間では、クロックが供給され、ＣＥ端子がアサートされていない区間では、クロック供給が停止されている。
【００４８】
図９におけるＲＡＭ０の各端子のプロバビリティおよびトグルレートを示すと、ＣＫ端子のプロバビリティおよびトグルレートは、probability＝0.3、toggle rate＝0.11（toggle／ns）（＝55MHz）である。
【００４９】
また、ＣＥ端子のプロバビリティおよびトグルレートは、probability＝0.45、toggle rate＝0.01（toggle／ns）である。さらに、ＷＥ端子のプロバビリティおよびトグルレートは、probability＝0.75、toggle rate＝0.01（toggle／ns）である。
【００５０】
ＲＡＭ０のライト時のプロバビリティは、probability（！CE＆！WE）＝0.1375となる。また、ＲＡＭ０のリード時のプロバビリティは、probability（！CE＆WE）＝0.4125となる。
【００５１】
よって、ＲＡＭ０のライト時のＣＫ端子のトグルレートは、0.015125（＝0.11×0.1375）となり、ＲＡＭ０のリード時のＣＫ端子のトグルレートは、0.045375（＝0.11×0.4125）となる。
【００５２】
したがって、図９における、ＲＡＭ０のライト時の消費電力は、0.015125×5.81735と求まる。また、図９における、ＲＡＭ０のリード時の消費電力は、0.045375×6.26258と求まる。
【００５３】
ここで、図８で算出したＲＡＭ０のライト時のトグルレートは0.0275であり、図９で算出したＲＡＭ０のライト時のトグルレートは0.015125であり、値が大きく異なっている。
また、図８で算出したＲＡＭ０のリード時のトグルレートは0.0825であり、図９で算出したＲＡＭ０のリード時のトグルレートは0.045375であり、値が大きく異なっている。
【００５４】
図６のライブラリＬ１１で示したwhen（＊＊＊）の記述節の条件下でのＣＫ端子のトグルレートは、同じ演算式で算出することになっている。このため、図８と図９のライト時のトグルレートは同じ値にならなければならないし、図８と図９のリード時のトグルレートは同じ値にならなければならない。
【００５５】
しかし、図８と図９に示すように、クロックの供給状態が異なると、図８でのライト時のトグルレートと、図９でのライト時のトグルレートが大きく異なり、同じライト動作であっても消費電力の算出値に差が生じてしまうことになる（リード動作でも同様に消費電力の算出値に誤差が出る）。
【００５６】
このように、クロックゲーティング回路を有するメモリマクロに対して、上記のような確率伝搬計算で消費電力を算出しようとすると、クロックの供給／停止の状態に応じて、トグルレートの値が異なることになる。すると、例えば、同じライト動作または同じリード動作を行っている時でも、クロック供給の有無で消費電力に誤差が生じることになる。
【００５７】
本技術は、このような点に鑑みてなされたものであり、誤差のない正確な消費電力の見積りを算出可能な電力見積り装置、電力見積り方法およびプログラムを提供するものである。
【００５８】
次に図１に示した電力見積り装置１０の機能を含む回路シミュレーション装置について説明する。図１０は回路シミュレーション装置の構成例を示す図である。回路シミュレーション装置１は、メモリライブラリシミュレーションモデル生成ツール１ａ、シミュレーション部１ｂおよび電力見積りツール１ｃを備える。なお、電力見積りツール１ｃは、図１の電力見積り装置１０の機能を有する。
【００５９】
メモリライブラリシミュレーションモデル生成ツール１ａは、メモリ一覧ファイルからライブラリおよびシミュレーションモデルを生成する。
シミュレーション部１ｂは、シミュレーションモデルや設計データから、シミュレーション波形を取得して、メモリの各ポートのプロバビリティおよびトグルレートを算出する。電力見積りツール１ｃは、設計データ、ライブラリ内の情報、プロバビリティおよびトグルレート等から対象回路の電力値を算出する。
【００６０】
なお、上記に示した回路シミュレーション装置１の処理機能は、コンピュータによって実現することができる。図１１はコンピュータのハードウェアの一構成例を示す図である。本実施の形態に用いるコンピュータ１００は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続されている。
【００６１】
ＲＡＭ１０２は、コンピュータ１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００６２】
バス１０８に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００６３】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、コンピュータ１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００６４】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００６５】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００６６】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１０６ａに記録されたデータの読み取りを行う。光ディスク１０６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１０６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Re Writable）などがある。
【００６７】
通信インタフェース１０７は、ネットワーク１１０に接続されている。通信インタフェース１０７は、ネットワーク１１０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
【００６８】
次に電力見積り処理について詳しく説明する。図１２はシミュレーションモデルを示す図である。本技術で生成するＲＡＭのシミュレーションモデルＭ１を示している。
従来では、図７に示したように、ＲＡＭのポート（端子）のみのシミュレーションモデルＭ１１であったが、シミュレーションモデルＭ１では、ＲＡＭのポートに加えて、さらにモニタ端子を追加している。
【００６９】
具体的には、ライト時にクロックを透過するＷＡ端子と、リード時にクロックを透過するＲＡ端子とを追加している。
すなわち、ライト時は、！CE＆！WEと定義されるので、ＷＡ端子は、！CE＆！WEの条件の時にクロックを透過させる端子である。また、リード時は！CE＆WEと定義されるので、ＲＡ端子は、！CE＆WEの条件の時にクロックを透過させる端子である。
【００７０】
図１３はＲＡＭの各端子の波形を示す図である。図１２のシミュレーションモデルＭ１をシミュレーションして得た波形を示している。ＣＥ端子がアサートされた状態で、ＷＥ端子がローレベルとなってライト状態になると、ＷＡ端子はクロックを透過する。
【００７１】
また、ＷＥ端子がハイレベルとなってリード状態になるか、または、ＣＥ端子がアサートされない状態になると、ＷＡ端子はローレベルとなってクロック透過を停止する。
さらに、ＣＥ端子がアサートされた状態で、ＷＥ端子がハイレベルとなってリード状態になると、ＲＡ端子はクロックを透過する。
【００７２】
また、ＷＥ端子がローレベルとなってライト状態になるか、または、ＣＥ端子がアサートされない状態になると、ＲＡ端子はローレベルとなってクロック透過を停止する。
図１３の場合、ＷＡ端子およびＲＡ端子は共に、トグルレートは0.055（toggle／ns）である。すなわち、６クロックのトグルレートが0.11（toggle／ns）であるから、ＷＡ端子およびＲＡ端子のクロックは共に0.055（＝0.11／2）となる。
【００７３】
また、ライト時のＣＫ端子が１回トグルしたときの消費電力の規定値が5.81735であるから、ライト時の消費電力は、0.055×5.81735となる。これは、when（!CE & !WE）時のクロックの回数×5.81735が算出できていることになる。
【００７４】
さらに、リード時のＣＫ端子が１回トグルしたときの消費電力の規定値が6.26258であるから、リード時の消費電力は、0.055×6.26258となる。これはwhen（!CE & WE）時のクロックの回数×6.26258が算出できていることになる。
【００７５】
このように、ライト時およびリード時において、同じトグルレートの値が用いられて消費電力が算出されている。したがって、例えば、クロックゲーティング回路を有するメモリマクロに対して、クロックの供給／停止の状態に応じて、トグルレートの値が異なることがない。
【００７６】
このため、同じライト動作または同じリード動作を行っている時でも、クロック供給の有無で消費電力に差が生じることがなくなり、正確に消費電力を算出することが可能になる。
【００７７】
なお、ＷＡ端子およびＲＡ端子は浮きピンとなっているので、設計データではつながっていない端子として認識されるが、波形には残っているので、トグルレート・プロバビリティファイルには記載されるものである。
【００７８】
図１４はライブラリの例を示す図である。図６で示した従来のライブラリＬ１１では、ＣＫ端子に条件when（・・・）の節を記述して、電力を算出することが示されていた。
これに対し、電力見積りツール１ｃは、シミュレーションモデルの変更を行って、ライト時のみにクロックを透過させるＷＡ端子と、リード時のみにクロックを透過させるＲＡ端子とを設けることとした。これにより、図１４のライブラリＬ１では、when（・・・）節の記述が不要になっている。
【００７９】
記述文３１のpin（WA）の定義では、ＷＡ端子が変化したときに電力を消費する記述となっており、記述文３１内における、“rise power”は、ライト時のクロックの立ち上がりを示し、“fall power”は、ライト時のクロックの立ち下がりを示している。また、ライト時のクロック変化回数の１回当たりの電力量は、5.81735と記述されている。
【００８０】
同様に、記述文３２のpin（RA）の定義では、ＲＡ端子が変化したときに電力を消費する記述となっており、記述文３２内における、“rise power”はリード時のクロックの立ち上がりを示し、“fall power”はリード時のクロックの立ち下がりを示している。また、リード時のクロック変化回数の１回当たりの電力量は、6.26258と記述されている。
【００８１】
以上説明したように、電力見積り装置１０では、メモリマクロの機能モデルに、ライトとリードの動作で独立してクロックを透過する端子を追加して、該端子を透過するクロックのトグルレートと電力規定値から電力量を算出する構成とした。
【００８２】
このように、メモリマクロ用に生成されるライブラリとシミュレーションモデルを電力見積ツールに適したものに変更することにより、ピンベース方式の電力見積ツールでメモリマクロの電力値の誤差を抑制することが可能になる。また、低コストで精度向上が可能になる。なお、上記では、ＲＡＭを例にして説明したが、ＲＯＭの場合でも、同様な電力見積り処理を行うことで、電力誤差を抑制することができる。
【００８３】
次に回路シミュレーション装置２で生成されるＲＡＭのシミュレーションモデルとライブラリとの生成動作について具体例を挙げて説明する。図１５はＲＡＭのシミュレーションモデルとライブラリとの生成動作フローを示す図である。
【００８４】
〔Ｓ１１〕ＣＰＵ１０１は、ＲＡＭ一覧ファイルおよびＲＡＭ／ＲＯＭパラメータ計算モデルにもとづいて、パラメータ値の変換処理を行い、ＲＡＭパラメータ値一覧を生成する。
【００８５】
〔Ｓ１２〕ＣＰＵ１０１は、ＲＡＭパラメータ値一覧およびシミュレーションモデルテンプレートにもとづいて、シミュレーションモデルを生成する。
〔Ｓ１３〕ＣＰＵ１０１は、ＲＡＭパラメータ値一覧およびライブラリセルモデルテンプレートにもとづいて、ライブラリを生成する。
【００８６】
次にステップＳ１１〜Ｓ１３のステップ毎に説明する。まず、ステップＳ１１のパラメータ値変換処理について説明する。図１６はＲＡＭ一覧ファイルの例を示す図である。ＲＡＭ一覧ファイルＦ１では、ＲＡＭのタイプ、ＲＡＭのモジュール名、アドレス線の幅、データ線の幅が定義されている。
【００８７】
例えば、先頭の項目では、ＲＡＭのタイプが１ＲＷ−ＲＡＭ、モジュール名がＲＡＭ０、アドレス線の幅が５ビット、データ線の幅が８ビットとなっている。
このような、ＲＡＭ一覧ファイルＦ１により、ＣＰＵ１０１は、指定されたＲＡＭタイプ、アドレス幅およびデータ幅を持ったモジュール名のＲＡＭを生成する。
【００８８】
図１７はＲＡＭ／ＲＯＭパラメータ計算モデルの例を示す図である。テーブルＴ１には、図１６で指定されたパラメータ値から各種の派生パラメータを計算する式が定義されている。
【００８９】
例えば、ＲＡＭタイプの１ＲＷ−ＲＡＭでは、データ−１（data−1）がPARAMETER 0000となること、アドレス−１（address−1）がPARAMETER 0001となることが示されている。
【００９０】
このように、ＣＰＵ１０１は、パラメータ値変換処理を行って、ＲＡＭ／ＲＯＭパラメータ計算モデルで必要とされるパラメータを、ＲＡＭ一覧ファイルＦ１で定義されたモジュール毎に生成する。
【００９１】
図１８はＲＡＭパラメータ値一覧の例を示す図である。ＲＡＭパラメータ値一覧テーブルＴ２は、モジュール名（MODULE NAME）、ＲＡＭタイプ（RAM TYPE）およびパラメータ（PARAMETER）の各項目を有している。
【００９２】
例えば、モジュール名がＲＡＭ０（１ＲＷ−ＲＡＭ）では、パラメータ値変換処理結果として、PARAMETER 0000＝７、PARAMETER 0001＝４、・・・が記載されている。このように、パラメータ値変換処理後の結果は、ＲＡＭパラメータ値一覧テーブルＴ２に登録される。
【００９３】
次にステップＳ１２のシミュレーションモデル生成処理について説明する。図１９、図２０は１ＲＷ−ＲＡＭ用のシミュレーションモデルテンプレートの例を示す図である。
図１９は従来のシミュレーションモデルテンプレートｔｅｐ１、図２０は本技術のシミュレーションモデルテンプレートｔｅｐ１ａである。
【００９４】
シミュレーションモデルテンプレート中の＿MODULE NAME＿や＿PARAMETER＿<番号>＿で示されている部分がパラメータを埋め込む部分である。
ＣＰＵ１０１は、ＲＡＭパラメータ値一覧テーブルＴ２から各パラメータに対応するパラメータ値を抽出して、シミュレーションモデルテンプレート中のパラメータを置換する。なお、図２１にシミュレーションモデルの出力例ｍ１を示す。
【００９５】
次にステップＳ１３のライブラリ生成処理について説明する。シミュレーションモデルと同様、パラメータが埋め込まれたライブラリセルテンプレートが用意される。
図２２、図２３はライブラリセルテンプレートの例を示す図である。図２２は従来のライブラリセルテンプレートｔｅｐ２であり、図２３は本技術のライブラリセルテンプレートｔｅｐ２ａである。ＣＰＵ１０１は、ＲＡＭパラメータ値一覧テーブルＴ２から各パラメータに対応するパラメータ値を抽出して、ライブラリセルテンプレート中のパラメータを置換する。すべて置換し終わったらライブラリを出力する。なお、図２４にライブラリの出力例ｍ２を示す。
【００９６】
上記のようにして、ＲＡＭのシミュレーションモデルとライブラリとが生成され、所望のデータが生成できる。なお、旧方式のライブラリ、シミュレーションモデルを生成しておいて、これを図１９から図２０への変換と、図２２から図２３への変換に相当する書き換えをするとしてもよい。
【００９７】
以上説明したように、本実施の形態では、メモリマクロの機能モデルに、ライトとリードの動作で独立してクロックを透過する端子を追加して、該端子を透過するクロックのトグルレートと電力規定値から電力量を算出する。これにより、電力見積り値の誤差を抑制することが可能になる。
【００９８】
なお、上記に説明した電力見積り装置１０を、図１１に示したコンピュータ１００で実現する場合、処理内容を記述したプログラムが提供される。
そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
【００９９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１００】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１０１】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１０２】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。
【符号の説明】
【０１０３】
１０  電力見積り装置
１１  記憶部
１２  機能モデル生成部
１３  電力見積り部
【図１】
2013210777.tif 000003
【図２】
2013210777.tif 000004
【図３】
2013210777.tif 000005
【図４】
2013210777.tif 000006
【図５】
2013210777.tif 000007
【図６】
2013210777.tif 000008
【図７】
2013210777.tif 000009
【図８】
2013210777.tif 000010
【図９】
2013210777.tif 000011
【図１０】
2013210777.tif 000012
【図１１】
2013210777.tif 000013
【図１２】
2013210777.tif 000014
【図１３】
2013210777.tif 000015
【図１４】
2013210777.tif 000016
【図１５】
2013210777.tif 000017
【図１６】
2013210777.tif 000018
【図１７】
2013210777.tif 000019
【図１８】
2013210777.tif 000020
【図１９】
2013210777.tif 000021
【図２０】
2013210777.tif 000022
【図２１】
2013210777.tif 000023
【図２２】
2013210777.tif 000024
【図２３】
2013210777.tif 000025
【図２４】
2013210777.tif 000026