説明

消費電力解析装置及び方法

【課題】 本発明の課題は、組み合せ回路を含めた電力解析を効率的かつ高速に行うことを目的とする。
【解決手段】 上記課題は、回路の動作記述の抽象度が異なる概要回路モデルと、該概要回路モデルより抽象度が低い詳細回路モデルとを含む回路データと、該回路の電力検証方法に係る動作シーケンス・データとを記憶する記憶部と、論理回路の動作シミュレーションを行う論理シミュレーション部に、前記前記概要回路モデルと前記詳細回路モデルとを含む前記回路データをロードし、該記憶部に記憶されている前記動作シーケンス・データに従って、該概要回路モデルによって前記動作シミュレーションを行わせる概要モードと、該詳細回路モデルによって該動作シミュレーションを行わせる詳細モードとを切り替えて、該論理シミュレーション部に該動作シミュレーションを行わせるシミュレーション制御部とを有することを特徴とする消費電力解析装置により達成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、低消費電力な大規模論理回路(例えば、LSI(Large Scale Integration))を設計するための論理回路設計技術に関する。
【背景技術】
【0002】
近年、システムLSIの消費電力(電流)は、設計制約のひとつであり、また低消費電力が実現されれば強い商品力となる。
【0003】
低電力設計を正しく効率よく行うためには、電力の正確な見積もりを行い、電力消費の原因を的確に把握し、設計にフィードバックをかけることが必要である。
【0004】
全体シミュレーションで全信号の波形データや、全信号の信号変化回数を計測することなく、クロック及びメモリのみの信号変化回数を計測することによって、モジュールごとの消費電力と解析意対象の回路全体の消費電力とを解析すること等が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−234187号公報
【特許文献2】特開2006−202102号公報
【特許文献3】特開2007−102337号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
回路全体のなかで最も電力を消費する部分は、クロックやメモリであったが、最近の回路設計における徹底したクロックゲーティングにより、クロックで消費される電力の全体に対する割合は減少する一方で、組み合せ回路部の消費電力の割合が大きくなってきている。
【0007】
例えば、CMOS(Complementary Metal Oxide Semiconductor)回路の電力は回路の動作(すなわち、回路の変化回数)に大きく依存するので、電力見積もりのためには、回路の動作シミュレーションの結果が要求される。
【0008】
回路の設計及び検証は、RTL(Register Transfer Level)で行われることが多い。組み合せ回路の電力は、論理合成、クロック木合成、レイアウト設計が行われた回路でないと、正確に見積もることができない。
【0009】
上述した従来技術では、クロック及びメモリの消費電力の解析を精度良く行えるようになったものの、設計段階で組み合せ回路部の消費電力を精度良く行うことは困難であり、そのため組み合せ回路を含めた低電力な回路設計を効率的に行うことができないと言った問題があった。
【0010】
また、電力は、動作率と回路構成の2つの要因が関わっているため、シミュレーション波形だけや回路記述だけを見ても容易には判断することができない。低電力施策の効果確認や無駄電力の修正を行うためには、場所別、電力要因別といった詳細な電力値と回路動作の関係を確かめる必要がある。しかしながら、従来技術では、低電力施策の効果確認や無駄電力の修正を行うための対話的な解析機能が十分に備えられておらず、その結果、高速にかつ効果的な電力解析を行えていなかった。
【課題を解決するための手段】
【0011】
開示の技術は、回路の動作記述の抽象度が異なる概要回路モデルと、該概要回路モデルより抽象度が低い詳細回路モデルとを含む回路データと、該回路の電力検証方法に係る動作シーケンス・データとを記憶する記憶部と、論理回路の動作シミュレーションを行う論理シミュレーション部に、前記記憶部に記憶されている前記概要回路モデルと前記詳細回路モデルとを含む前記回路データをロードし、該記憶部に記憶されている前記動作シーケンス・データに従って、該概要回路モデルによって前記動作シミュレーションを行わせる概要モードと、該詳細回路モデルによって該動作シミュレーションを行わせる詳細モードとを切り替えて、該論理シミュレーション部に該動作シミュレーションを行わせるシミュレーション制御部とを有することを特徴とする消費電力解析装置のように構成される。
【0012】
また、上記課題を解決するための手段として、コンピュータに上記消費電力解析装置として機能させるためのプログラム、そのプログラムを記録した記録媒体、及び消費電力解析方法とすることもできる。
【発明の効果】
【0013】
開示の技術では、概要モードと詳細モードの切り替えることによって、組み合せ回路を含めた電力解析を効率的かつ高速に行うことができる。
【図面の簡単な説明】
【0014】
【図1】消費電力解析装置のハードウェア構成例を示す図である。
【図2】本実施例に係る機能構成例を示す図である。
【図3】消費電力解析処理の全体概要を説明するための図である。
【図4】エミュレータ装置の動作シミュレーションの切り替えに係る機能構成の一例を示す図である。
【図5】切り替え手順の例を示す図である。
【図6】モード切替による連続処理を説明するためのフローチャート図である。
【図7】動作シーケンス・データの構成例を示す図である。
【図8】アサーション関連付けテーブルの例を示す図である。
【図9】モード切替例を示す図である。
【図10】シーン毎の電力値の例を示す図である。
【図11】区間指定のモード切替による処理の全体概要を示すフローチャート図である。
【図12】シミュレーション制御部による概要モードでの電力測定に係る処理を説明するためのフローチャート図である。
【図13】シミュレーション制御部による詳細モードに係る処理を説明するためのフローチャート図である。
【図14】高電力値を示す区間で詳細モードに切り替える処理を説明するためのフローチャート図である。
【図15】メニュー画面例を示す図である。
【図16】概要モードと詳細モードとを切り替えながら回路の動作シミュレーション全体を実行する例を示す図である。
【図17】アサーションを用いた応用例を説明するための図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態を図面に基づいて説明する。本実施例に係る消費電力解析装置は、図1に示されるようなハードウェア構成を有する。図1は、消費電力解析装置のハードウェア構成例を示す図である。図1に例示される消費電力解析装置100は、ホスト計算機であり、CPU(Central Processing Unit)101によって装置全体が制御されている。
【0016】
CPU101には、バス107を介してRAM(Random Access Memory)102と、ハードディスクドライブ(HDD:Hard Disk Drive)103と、グラフィック処理装置104と、入力インタフェース105と、通信インタフェース106と、ドライブ108とが接続されている。
【0017】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。なお、半導体集積回路の設計情報及び解析情報は、HDD103、または、図示しないHDDインタフェースを介して接続する外部HDDに格納される。以下、本実施例に係る処理に必要なプログラム、各種データ等を格納するための記憶領域を提供するRAM102、HDD103、外部HDD等を総称して記憶部と言う。
【0018】
グラフィック処理装置104には、モニタ108が接続されており、CPU101からの命令に従って画像をモニタ108の画面に表示させる。入力インタフェース105には、キーボード109aやマウス109bが接続されており、キーボード109aやマウス109bから送られてくる信号を、バス107を介してCPU101に送信する。通信インタフェース106は、エミュレータ装置200に接続されている。
【0019】
消費電力解析装置100が、対象の半導体集積回路の設計データ及び全体テストベンチをエミュレータ装置200に送信することで、エミュレータ装置200に論理エミュレーションを実行させる。そして、エミュレータ装置200が実行したエミュレーション結果は、通信インタフェース106を介してCPU101に送られる。
【0020】
消費電力解析装置100によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体109によって消費電力解析装置100に提供される。即ち、後述される本実施例に係る処理を実現するためのプログラムが保存された記憶媒体109がドライブ108にセットされると、ドライブ108が記憶媒体109からプログラムを読み出し、その読み出されたプログラムがシステムバスBを介して記憶装置103にインストールされる。そして、プログラムが起動されると、記憶装置103にインストールされたプログラムに従ってCPU101がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。消費電力解析装置100は、各媒体に対応したインタフェースを有するものとする。
【0021】
また、消費電力解析装置100がネットワーク通信インタフェースを有する場合、消費電力解析装置100によって行われる処理を実現するプログラムが、外部装置から提供されてもよい。或いは、外部装置へ該プログラムを提供し、後述される各処理は外部装置で実現されるように構成してもよい。ネットワーク通信インタフェースを介する通信は無線又は有線に限定されるものではない。
【0022】
図2は、本実施例に係る機能構成例を示す図である。図2において、消費電力解析装置100は、シミュレーション制御部10と、入力制御部20と、電力見積部30と、動作・電力ビューア部40と、記憶部50とを有する。シミュレーション制御部10と、入力制御部20と、電力見積部30と、動作・電力ビューア部40とは、CPU101が、記憶媒体109等によってインストールされた対応するプログラムを実行することによって動作する処理によって実現される。
【0023】
シミュレーション制御部10は、通信インタフェース106を介して、エミュレータ装置200を制御して、本実施例に係る概要動作と詳細動作とを切り替えて回路の動作シミュレーションを行う処理部である。
【0024】
入力制御部20は、設計者から回路の動作シミュレーションに必要なデータを取得するためのユーザインタフェースを制御する処理部である。入力制御部20は、設計者から動作シーケンス・データ57を取得するためのユーザインタフェースを提供する。動作シーケンス・データ57は、記憶部50に記憶され、シミュレーション制御部10は、記憶部50から動作シーケンス・データ57を参照することによって、エミュレータ装置200を制御する。また、入力制御部20は、設計者による割り込み入力に応じて、シミュレーション制御部10へ通知する。シミュレーション制御部10は、割り込み入力の種別に応じた処理をエミュレータ装置200に対して行う。
【0025】
動作・電力ビューア部40は、エミュレータ装置200から取得した動作データ230、電力結果データ55、動作出力データ56の各々を、グラフィック処理装置104によってモニタ108に表示させる処理部である。
【0026】
電力見積部30は、エミュレータ装置200から取得した動作データ230を用いて、回路の電力を見積る処理部であり、高速電力見積部31と、詳細電力見積部32とを有する。高速電力見積部31は、動作データ230の概要動作データ231を用いて電力見積りを行う処理部である。詳細電力見積部32は、動作データ230の詳細動作データ232を用いて電力見積りを行う処理部である。高速電力見積部31と、詳細電力見積部32とから得られた夫々の結果は、記憶部50の電力結果データ55に格納される。
【0027】
記憶部50には、少なくとも、回路データ51と、テストベンチ・データ52と、電力結果データ55と、動作出力データ56と、動作シーケンス・データ57とが格納される。
【0028】
回路データ51には、RTLで回路の動作を記述したデータ(概要回路モデル221及び計数回路モデル222のデータ)と、Verilog等のハードウェア記述言語によってゲートレベルで回路の動作を記述したデータ(詳細回路モデル223及び計数回路モデル224のデータ)とが含まれる。回路データ51は、エミュレータ装置200のメモリにロードされ、エミュレーション実行部210によって、各回路モデルとして動作する。
【0029】
RTLによって記述された回路モデルは、エミュレーション実行部210によって、概要回路モデル221及び計数回路モデル222として動作する。また、ゲートレベルで記述された回路モデルは、エミュレーション実行部210によって、詳細回路モデル223及び計数回路モデル224として動作する。
【0030】
各計数回路モデル222及び224を予め回路データ51に組み込んでおくことによって、回路の特定箇所の動作を測定できる。また、所定値を設定しておくことによって、計数値が所定値となった際に、概要回路モデル221によって回路の動作シミュレーション回路の中であれば、詳細回路モデル223へと切り替えて詳細回路モデル223による動作シミュレーションを継続して行う。詳細回路モデル223によって回路の動作シミュレーション中であれば、概要回路モデル221へと切り替えて詳細回路モデル223による動作シミュレーションを継続して行う。
【0031】
電力結果データ55は、電力見積部30によって見積られた回路の電力値を含み、回路モデル、場所毎に対応付けして記憶部50に記憶される。設計者の指示に応じて、電力結果データ55は、動作・電力ビューア部40によって参照され、グラフィック処理装置104によってモニタ108に表示される。
【0032】
動作出力データ56は、エミュレータ装置200から取得したエミュレーション実行部210による回路の動作シミュレーションの結果である概要動作データ231と詳細動作データ232とを含む動作データ230である。設計者の指示に応じて、動作出力データ56は、動作・電力ビューア部40によって参照され、グラフィック処理装置104によってモニタ108に表示される。
【0033】
動作シーケンス・データ57は、入力制御部20を介して設計者によって設定された検証条件等を示すデータである。動作シーケンス・データ57によって指定される検証条件等に従って回路動作のシミュレーションが行われるように、エミュレータ装置200は、シミュレーション制御部10によって制御される。
【0034】
エミュレータ装置200は、設計回路の動作を評価するための論理シミュレーション部であって、回路の動作をエミュレートするためのハードウェアと、設計回路の動作を評価するために装置全体を制御するプロセッサと、シミュレーションに必要な種々のプログラム及びデータ、シミュレーションによって得られる種々のデータなどを記憶する記憶部(図4の記憶部250)とを少なくとも有する。
【0035】
エミュレータ装置200は、機能構成において、回路動作を記述したデータに従って、回路動作をエミュレートするためのハードウェアを動作させて、回路の動作シミュレーションを実行するエミュレーション実行部(エミュレータ)210と、消費電力解析装置100のシミュレーション制御部10に割り込みを発生させるトリガー部270とを有する。
【0036】
エミュレータ装置200は、ホスト計算機である消費電力解析装置100から回路データ51とテストベンチ・データ52とを記憶部250(図4)にロードし、シミュレーション制御部10による制御に従って、エミュレーション実行部210によって回路の動作シミュレーションを実行させる。本実施例では、回路動作の抽象度の異なる概要回路モデル221と詳細回路モデル223の両方が、回路データ51によってロードされる。
【0037】
エミュレーション実行部210は、消費電力解析装置100からロードされた回路データ51によって、概要回路シミュレーション部M1と詳細回路シミュレーション部M2とを有し、シミュレーション制御部10からの切替指示に応じて、概要回路シミュレーション部M1と詳細回路シミュレーション部M2とを互いに切り替えながら、回路の動作シミュレーションを行う。
【0038】
概要回路シミュレーション部M1は、概要回路モデル221及び計数回路モデル222によって回路の動作シミュレーションを行う処理部である。計数回路モデル222は予め回路データ51に組み込まれている。
【0039】
詳細回路シミュレーション部M2は、詳細回路モデル223及び計数回路モデル224によって回路の動作シミュレーションを行う処理部である。計数回路モデル224は予め回路データ51に組み込まれている。
【0040】
トリガー部270は、シミュレーション制御部10より予め指示されている所定値に達した場合、消費電力解析装置100のシミュレーション制御部10へ割り込みを発生させる。
【0041】
動作データ230は、エミュレーション実行部210による回路の動作シミュレーションの結果を含み、概要回路シミュレーション部M1による動作シミュレーション結果は概要動作データ231で示され、詳細回路シミュレーション部M2による動作シミュレーション結果は詳細動作データ232で示される。
【0042】
概要回路シミュレーション部M1から詳細回路シミュレーション部M2への切り替え時には、詳細回路シミュレーション部M2において概要動作データ231の切り替え時のFFなどの状態値が詳細回路シミュレーション部M2の詳細回路モデル223に対して設定された後、動作シミュレーションが詳細回路シミュレーション部M2によって実行される。
【0043】
同様に、詳細回路シミュレーション部M2から概要回路シミュレーション部M1への切り替え時には、概要回路シミュレーション部M1において詳細動作データ232の切り替え時のFFなどの状態値が概要回路シミュレーション部M1の概要回路モデル221に対して設定された後、動作シミュレーションが概要回路シミュレーション部M1によって実行される。
【0044】
図3は、消費電力解析処理の全体概要を説明するための図である。図3において、消費電力解析装置100の入力制御部20は、計数回路モデル222及び224を埋め込んだ回路データ51と、テストベンチ・データ52とをエミュレータ装置200にロードする(ステップS1)。概要回路シミュレーション部M1と詳細回路シミュレーション部M2の両方がエミュレータ装置200にロードされる。テストベンチ・データ52には、テストデータが含まれている。
【0045】
入力制御部20は、グラフィック処理装置104によって検証条件設定画面をモニタ108に表示させ、検証条件設定画面から設計者によって設定された検証条件を解釈して、動作シーケンス・データ56へと変換する(ステップS2)。得られた動作シーケンス・データ56は記憶部50に格納される。
【0046】
そして、消費電力解析装置100のシミュレーション制御部10は、動作シーケンス・データ57を用いてエミュレータ装置200を制御することによって、設計者が設定した検証条件に従った回路の動作シミュレーションを実行する(ステップS3)。
【0047】
回路の動作シミュレーションは、エミュレータ装置200のエミュレーション実行部210によって実行され、回路の動作シミュレーションによって得られた動作出力データ56と電力結果データ55とが消費電力解析装置100の記憶部50に格納される。
【0048】
動作・電力ビューア部40は、回路の動作シミュレーションの結果を解析するために、記憶部50に格納された電力結果データ55と動作出力データ56と用いて、電力値、動作率などを表示するための結果解析画面をグラフィック処理装置104によってモニタ108にビューア表示させる(ステップS4)。
【0049】
結果解析画面では、電力結果を常時出力するようにし、動作シーケンス遷移結果をトリガーが立ったことで出力する。また、設計者が検証条件を変更するための補助情報が表示される。
【0050】
入力制御部20は、設計者による指示が電力解析の終了であるか否かを判断する(ステップS5)。電力解析の終了でない場合、入力制御部20は、検証条件設定画面を再度グラフィック処理装置104によってモニタ108にビューア表示させ、設計者によって変更された検証条件を動作シーケンス・データ57に変換する(ステップS6)。
【0051】
そして、ステップS3へと進み、上記同様の処理を繰り返し、ステップS5の判断処理において、設計者による指示が電力解析の終了となった場合に、この消費電力解析処理を終了する。
【0052】
図4は、エミュレータ装置の動作シミュレーションの切り替えに係る機能構成の一例を示す図である。図4において、エミュレータ装置200の記憶部250に格納される動作データ230は、時刻インデックス23a及び概要動作データ231と、時刻インデックス23b及び詳細動作データ232とを有する。
【0053】
概要動作データ231は、概要回路シミュレーション部M1が詳細回路シミュレーション部M2へと切り替えられる際に、記憶部250に格納される回路動作の状態を示すデータである。時刻インデックス23aは、回路動作の状態を示す概要動作データ231を保存した時刻と、その概要動作データ231へのポインタとを対応付けたインデックスである。時刻インデックス23aを備えることによって、指定された時刻に対応する概要動作データ231を用いて、その時刻から詳細回路シミュレーション部M2による動作シミュレーションを実行させることができる。
【0054】
詳細動作データ232は、詳細回路シミュレーション部M2が概要回路シミュレーション部M1へと切り替えられる際に、記憶部250に格納される回路動作の状態を示すデータである。時刻インデックス23bは、回路動作の状態を示す詳細動作データ232を保存した時刻と、詳細動作データ232へのポインタとを対応付けたインデックスである。時刻インデックス23bを備えることによって、指定された時刻に対応する詳細動作データ232を用いて、その時刻から概要回路シミュレーション部M1による動作シミュレーションを実行させることができる。
【0055】
更に、記憶部250には、マッピング情報25aと、追加FF設定値情報25bとが格納される。
【0056】
マッピング情報25aと追加FF設定値情報25bとは、論理合成によって、抽象度の高いRTLで回路の動作を記述した概要回路モデル221から、ゲートレベルで回路の動作を記述した詳細回路モデル223が生成される際に作成される情報である。
【0057】
マッピング情報25aは、概要回路モデル221と詳細回路モデル223間のFF(Flip Flop)の対応付けを示す情報である。概要回路モデル221に存在するFFの詳細回路モデル223におけるFFへの対応を示す情報である。
【0058】
概要回路シミュレーション部M1から詳細回路シミュレーション部M2への切り替え時に、概要回路モデル221のFFの状態値を詳細回路モデル223のFFへ設定するために、マッピング情報25aが参照される。
【0059】
追加FF設定値情報25bは、論理合成によって、概要回路モデル221には存在しないが詳細回路モデル223には存在するFFに設定するための状態値である。テスト用FFなどは概要回路モデル221には存在しない。
【0060】
概要回路シミュレーション部M1から詳細回路シミュレーション部M2への切り替え時に、概要回路モデル221には存在しないが詳細回路モデル223には存在するFFへ状態値を設定するために、追加FF設定値情報25bが参照される。
【0061】
また、詳細回路シミュレーション部M2から概要回路シミュレーション部M1への切り替え時に、詳細回路モデル223のFFの状態値を概要回路モデル221のFFへ設定する際に、概要回路モデル221に存在しないFFであるか否かを判断するために追加FF設定値情報25bが参照されても良い。更に、概要回路モデル221に存在するFFである場合には、マッピング情報25aが参照されて、概要回路モデル221において対応するFFを特定して、詳細回路モデル223のFFの状態値を概要回路モデル221のFFへと設定されるようにしても良い。
【0062】
以下に、本実施例に係る処理について詳述する。
(1)高速処理
(1−1)概要モードと詳細モード
概要モードとは、概要回路シミュレーション部M1によって行われる、抽象度の高い回路の動作記述による動作シミュレーション(RTLシミュレーション)によって、概要電力を算出するためのモードである。概要電力の算出では、クロック、メモリ部分に備えた少数の観測ポイントから算出する。従って、クロック動作電力とメモリ動作電力だけが算出される。概要電力は、詳細な電力計算を必要とする箇所及び必要な時刻のみで算出される。
【0063】
詳細モードとは、詳細回路シミュレーション部M2によって行われる、概要モードより抽象度の低い回路の動作記述による動作シミュレーション(ゲート・シミュレーション)によって、組み込み回路を含む回路全体に係る詳細電力を算出するためのモードである。従って、全てのノードの動作波形を用いて、全てのノードの電力が計算される。
【0064】
高速化のために、通常は概要モードで電力を算出する。概要モードから詳細モードへの切り替えは、シミュレーション制御部10によって判定される。本実施例では、設計者は、概要モードでの電力算出結果に基づく電力状態を見ることで、詳細モードへ切り替える場所を決定することができる。
(1−2)動作シミュレーションの切り替え
前走行シミュレーションのFFの出力及びメモリの状態値を含む回路状態を記憶部250に格納し、後走行シミュレーションのFFの出力及びメモリの状態値の初期状態として設定することで、動作シミュレーションの切り替えを行う。
【0065】
前走行シミュレーションが概要モードによる動作シミュレーション(RTLシミュレーション)である場合、FFの出力及びメモリの状態値を含む回路状態を示す概要動作データ231が記憶部250に格納され、概要動作データ231を参照することにより、詳細モードによる後走行シミュレーション(ゲート・シミュレーション)のFFの出力及びメモリの状態値の初期状態として設定される。
【0066】
また、回路状態を保存することで、途中時刻からの再実行も可能となる。いずれのモードであっても、設計者によって指定された時刻の組み合せ回路部に係るFFの出力及びメモリの状態値を設定することで、その時刻から再シミュレーションが可能である。
【0067】
概要モードでの回路の動作シミュレーション(概要回路シミュレーション又はRTLシミュレーションと言う)と詳細モードでの回路の動作シミュレーション(詳細回路シミュレーション又はゲート・シミュレーションと言う)間の切り替えは、その切り替え時刻で、前走行のシミュレーション結果を保存し、後走行の際に設定する状態値とすることによって実現することができる。
(1−2−1)動作シミュレーション切り替え用のトリガー機能
特定の信号又は特定の信号群を常にチェックして、指定した値になったら、トリガー信号を上げ、動作シミュレーションを停止する。計測回路モデル222及び224を予め組み込んでおくことにより、所定のクロック数に達すると、トリガー部270が割り込みを消費電力解析装置100のシミュレーション制御部10へ通知することによって、動作シミュレーションを停止するように制御できる。
【0068】
ここで、切り替え手順の例について図5で説明する。図5では、最初に概要モードでの概要回路シミュレーションを実行し、詳細モードへ切り替えて詳細回路シミュレーションを実行して詳細回路シミュレーションが終了するまでの手順が示される。
【0069】
図5において、シミュレーション制御部10からの指示によって、概要回路シミュレーション部M1は、回路の動作シミュレーションを実行する前に、開始時の設定値を設定する(ステップS11)。ここでは、初期値或いは状態値が設定される。初期値は、例えば、全てX値(不定値)や全て論理「1」値である。概要モードでの回路の動作シミュレーションが開始される。
【0070】
そして、シミュレーション制御部10は、トリガー設定を行う(ステップS12)。トリガー設定によって、概要回路シミュレーション部M1に対して、シミュレーションが終了する条件(例えば、終了時刻)がトリガーとして設定され、概要回路シミュレーション部M1による回路の動作シミュレーションが実行される。
【0071】
トリガー条件が成立すると、概要回路シミュレーション部M1は、動作シミュレーションを停止し、概要動作データ231を記憶部250に保存する(ステップS13)。トリガー部270は割り込みを発生して、シミュレーション制御部10に終了を通知する。
【0072】
シミュレーション制御部10は、概要回路シミュレーション部M1による回路の動作シミュレーションの終了時の回路の状態値を記憶部250に格納された概要動作データ231から取得する(ステップS14)。
【0073】
シミュレーション制御部10は、マッピング情報25aを参照して、概要回路モデル221の状態値を詳細回路モデル223の状態値に書き込む(ステップS15)。詳細回路モデル223に状態値が設定され、モードの切り替えが行われる。
【0074】
詳細回路シミュレーション部M2のトリガー条件を設定する(ステップS16)。詳細回路シミュレーション部M2に対して、シミュレーションが終了する条件(例えば、終了時刻)がトリガーとして設定され、詳細回路シミュレーション部M2による回路の動作シミュレーションが実行される。詳細モードでの回路の動作シミュレーションが開始される。
【0075】
トリガー条件が成立すると、詳細回路シミュレーション部M2は、動作シミュレーションを停止し、詳細動作データ232を記憶部250に保存する(ステップS17)。トリガー部270は割り込みを発生して、シミュレーション制御部10に終了を通知する。
【0076】
シミュレーション制御部10によって、シミュレータ装置200の記憶部250に格納されている詳細動作データ232から状態値が読み出される(ステップS18)。更に、概要モードへ切り替えた場合には、上記同様の処理が繰り返される。
【0077】
図6は、モード切替による連続処理を説明するためのフローチャート図である。図6において、シミュレーション制御部10は、入力制御部20からの設計者によるシミュレーション開始指示に応じて、概要モード又は詳細モードのいずれで開始かを判断する(ステップS30)。シミュレーション開始指示にモードが指定されていない場合、デフォルトを概要モードとする。
【0078】
概要モードで開始であると判断した場合、シミュレーション制御部10は、エミュレータ装置200に概要モードを指定したシミュレーション開始指示を行う。エミュレータ装置200は、エミュレーション実行部210に概要回路モデル221の回路状態に開始時の設定値を設置する(ステップS31)。
【0079】
次に、シミュレーション制御部10は、概要回路モデル221による動作シミュレーションが終了するトリガー条件を設定する(ステップS32)。
【0080】
エミュレーション実行部210の概要回路シミュレーション部M1によって、概要回路モデル221による動作シミュレーションが実行され、トリガー条件が成立すると停止し、トリガー部270によってシミュレーション制御部に終了が通知される(ステップS33)。動作シミュレーションの停止時に、概要回路モデル221の状態値を含む概要動作データ231が停止した時刻と対応付けられて記憶部250に格納される。
【0081】
シミュレーション制御部10は、回路の動作シミュレーションを終了するか又はモード切替かを判断する(ステップS34)。回路の動作シミュレーションの終了であると判断した場合、この処理を終了する。
【0082】
一方、モード切替であると判断した場合、シミュレーション制御部10は、エミュレータ装置200の記憶部250に格納されている概要動作データ231から概要回路モデル221の状態値を取得する(ステップS35)。
【0083】
そして、シミュレーション制御部10は、エミュレータ装置200の記憶部250に格納されているマッピング情報25a及び追加FF設定値情報25bを参照して、概要回路モデル221の状態値を詳細回路モデル223の状態値に設定する(ステップS36)。その後、シミュレーション制御部10は、ステップS42へと進む。以下に説明されるステップS42からS46の処理が繰り返される。
【0084】
ステップS30にて、シミュレーション開始指示によって詳細モードで開始であると判断した場合、シミュレーション制御部10は、エミュレータ装置200に詳細モードを指定したシミュレーション開始指示を行う。エミュレータ装置200は、エミュレーション実行部210に詳細回路モデル223の回路状態に開始時の設定値を設置する(ステップS41)。
【0085】
次に、シミュレーション制御部10は、詳細回路モデル223による動作シミュレーションが終了するトリガー条件を設定する(ステップS42)。
【0086】
エミュレーション実行部210の詳細回路シミュレーション部M2によって、詳細回路モデル223による動作シミュレーションが実行され、トリガー条件が成立すると停止し、トリガー部270によってシミュレーション制御部に終了が通知される(ステップS43)。動作シミュレーションの停止時に、詳細回路モデル223の状態値を含む詳細動作データ232が停止した時刻と対応付けられて記憶部250に格納される。
【0087】
シミュレーション制御部10は、回路の動作シミュレーションを終了するか又はモード切替かを判断する(ステップS44)。回路の動作シミュレーションの終了であると判断した場合、この処理を終了する。
【0088】
一方、モード切替であると判断した場合、シミュレーション制御部10は、エミュレータ装置200の記憶部250に格納されている詳細動作データ232から詳細回路モデル223の状態値を取得する(ステップS45)。
【0089】
そして、シミュレーション制御部10は、エミュレータ装置200の記憶部250に格納されているマッピング情報25aを参照して、詳細回路モデル223の状態値を概要回路モデル221の状態値に設定する(ステップS46)。その後、シミュレーション制御部10は、ステップS32へと進む。上述したステップS32からS36の処理が繰り返される。
【0090】
上述したように、概要モードから詳細モードへ切り替え、また、詳細モードから概要モードへ切り替えの両方を行うことができる。
(1−3)再実行
再実行とは、概要モードでの回路の動作シミュレーション実行中に、エミュレータ装置200の記憶部250に途中状態を含む概要動作データ231を保存して、その途中状態から詳細モードでの回路の動作シミュレーションを実行すること、又は、詳細モードでの回路の動作シミュレーション実行中に、エミュレータ装置200の記憶部250に途中状態を含む詳細動作データ232を保存して、その途中状態から概要モードでの回路の動作シミュレーションを実行することである。
【0091】
概要モードでの実行中の幾つかの時刻における途中状態は、時刻インデックス23aによって対応付けられるため、それらのうち指定された時刻から詳細モードで回路の動作シミュレーションを開始することができる。また、同様に、詳細モードでの実行中の幾つかの時刻における途中状態は、時刻インデックス23bによって対応付けられるため、それらのうち指定された時刻から概要モードで回路の動作シミュレーションを開始することができる。
【0092】
指定された時刻からシミュレーションを再実行できるように、再実行可能ポイントを設定される。再実行可能ポイントは、動作データ230を保存する時刻であり、時刻データ、全メモリダンプデータ、全レジスタ内容データが保存される。
【0093】
このように再実行可能ポイントに時刻データが含まれることによって、詳細モードのために、全ノードの動作波形を取得するような場合には、詳細モードでの回路の動作シミュレーションを開始する時刻より、シミュレーションの実行が進んでしまった場合などに、時刻を戻して再実行することができる。
【0094】
(2)対話的な検証方式
設計者が対話的な検証を行なうための入力制御部20の種々の役割について以下に説明する。
【0095】
(2−1)動作シーケンス
入力制御部20は、設計者の電力検証のための入力設定に基づいて電力検証シナリオを作成する。入力制御部20は、モニタ108にメニュー形式による検証条件設定画面などを表示させ、設計者によって指定された情報の入力によって、電力検証シナリオを作成する。更に、入力制御部20は、作成された電力検証シナリオに基づいて、シミュレーション動作の手順である動作シーケンスを示す動作シーケンス・データ57を生成する。
【0096】
図7は、動作シーケンス・データの構成例を示す図である。図7に例示される動作シーケンス・データ57は、基本項目と条件項目などで構成される。
【0097】
基本項目は、電力測定対象、動作観測対象などの項目を有する。電力測定対象は、概略モード及び詳細モードに適用される情報であり、測定開始時間(開始イベント)と測定終了時間(終了イベント)とを指定する。動作観測対象は、詳細モードに適用される情報であり、測定開始時間(開始イベント)と測定終了時間(終了イベント)とを指定する。
【0098】
条件項目は、モード切替、再実行用データダンプ条件などの項目を有する。モード切替は、モード切替のタイミングを示す情報であり、クロック数(詳細モード開始時刻及び終了時刻)、高電力値を示す区間などの設定によってモード切替のタイミングを指定する。再実行用データダンプ条件は、データをダンプするためのタイミングを示す情報であり、ダンプ時刻の決定条件を指定する。
【0099】
(2−2)電力アサーション
入力制御部20は、電力を詳細に調べたい状況をアサーションとして、設計者による設定を可能とする。設計者は、シーン毎の予測される処理量から大小関係を定義することによって、想定電力の大小関係を指定する。例えば、状態例として、テレビ映像の特定のシーンA、B、及びCで説明する。
【0100】
シーンA > シーンB > シーンC
シーンAは全体的に高め
シーンBは機能Fは使っているが、他は平均のはず
シーンCは機能Gだけを使っていて、他は使わないはず
のように、設計者はTV映像に係る処理状況を予測して設定する。次に、設計者は、入力制御部20を介して、アサーションに使われる状態(各シーンA、B、及びC)を信号と関連付ける。入力制御部20は、設計者によって定義された、アサーションに使われる状態(各シーンA、B、及びC)を信号とのアサーション関連付けテーブルを記憶部50に格納する。
【0101】
図8は、アサーション関連付けテーブルの例を示す図である。図8に例示するアサーション関連付けテーブル27は、状態定義、観測信号などの項目を有する。この例では、状態定義「シーンA処理中」は観測信号「シーンID = "A"」で判断され、状態定義「シーンB処理中」は観測信号「シーンID = "B"」で判断され、状態定義「シーンC処理中」は観測信号「シーンID = "C"」で判断される。
【0102】
このように定義された状態(各シーンA、B、及びC)の電力は、概要モードで評価される。この場合の概要モードでは、アサーション関連付けテーブル27で定義される状態の開始時刻で、概要モデル221の状態値を示す概要動作データ231が保存される。そして、高速電力見積部31によって、概要モードで得た概要動作データ231を用いて概要電力見積が実行され、記憶部50に概要電力見積を含む電力結果データ55が格納される。
【0103】
アサーション関連付けテーブル27は、図7の動作シーケンス・データ57の基本項目の電力測定対象として設定される一例である。
【0104】
(2−3)電力の集計と表示
アサーションの関係をシーケンスとして観測し、評価すべき状態になったら詳細に電力を見積もる。
【0105】
入力制御部20は、処理量の大小関係を電力の大小関係とし、アサーションの関係を満たさない箇所を要確認区間として表示する。入力制御部20は、シーン毎の電力を集計し、アサーションをチェックして表示する。
【0106】
図9は、モード切替例を示す図である。図9(a)は、TV映像などの動作例を示す。TV映像データにおける図8に示すアサーション関連付けテーブル27によって定義された観測信号に基づいて、シーンA、B、及びCの出現状態が時系列に示されている。
【0107】
図9(a)において、シーンAは4回出現したことを示し、シーンAに関して、実行区間A1は開始時刻t1から終了時刻t2までであり、実行区間A2は開始時刻t7から終了時刻t8までであり、実行区間A3は開始時刻t13から終了時刻t14までであり、及び、実行区間A4は開始時刻t17から終了時刻t18であることが示される。
【0108】
そして、シーンBは6回出現したことを示し、シーンBに関して、実行区間B1は開始時刻t3から終了時刻t4までであり、実行区間B2は開始時刻t9から終了時刻t10までであり、実行区間B3は開始時刻t11から終了時刻t12までであり、実行区間B4は開始時刻t19から終了時刻t20までであり、実行区間B5は開始時刻t23から終了時刻t24までであり、及び、実行区間B6は開始時刻t25から終了時刻t26までであることが示される。
【0109】
また、シーンCは3回出現したことを示し、シーンCに関して、実行区間C1は開始時刻t5から終了時刻t6までであり、実行区間C2は開始時刻t15から終了時刻t16までであり、及び、実行区間C3は開始時刻t21から終了時刻t22までであることが示される。
【0110】
各実行区間の開始時刻t1、t3、t5、t7、t9、t11、t13、t15、t17、t19、t21、t23、及びt25は、再実行用データのダンプ時刻となる。また、これら開始時刻が概要モードでの回路の動作シミュレーションの開始時刻となり、各実行区間の終了時刻t2、t4、t6、t8、t10、t112、t14、t16、t18、t20、t22、t24、及びt26は、動作シミュレーションの終了時刻となる。
【0111】
図9(b)は、概要モードでの回路の動作シミュレーションにおいて、電力測定の開始(上矢印)と終了(下矢印)とを示す。概要モードの開始(上矢印)と終了(下矢印)は、アサーション関連付けテーブル27で定義される各観測信号がオンになった時刻とオフになった時刻で決定される。
【0112】
各実行区間で電力が測定され、シーン毎の各電力が見積もられ、アサーションの関係が満たされるか否かが判断される。概要モードによって得られた電力の見積もり結果は、例えば、図10のようにモニタ108に表示される。
【0113】
図9(c)は、データダンプのタイミング(上矢印)を示している。エミュレータ装置200の記憶部250に出力されたダンプデータは、モードの切り替えなどにおいて、時刻指定で回路の動作シミュレーションを行う際に利用される。
【0114】
図9(d)は、概要モードでのシミュレーション結果に基づいて、設計者によって指定された詳細モードでの回路の動作シミュレーションの開始(上矢印)と終了(下矢印)とを示す。詳細モードの開始(上矢印)と終了(下矢印)は、設計者が、モニタ108に表示されたシーン毎の各実行区間の電力値(図10)を参照することによって、指定した実行区間の開始時刻と終了時刻とによって設定される。
【0115】
図10は、シーン毎の電力値の例を示す図である。図10中、IDは、出現順に処理を識別するためのIDであり、IDに対応させて処理毎に見積もられた電力値が示されている。例えば、シーンAに関して、ID「No.1」、「No.2」、「No.3」、及び「No.4」の処理は、図9中の実行区間A1、A2、A3、及びA4に夫々対応する。シーンB及びCについても同様である。また、このようにシーン毎に各処理を識別するIDは、図9に示されるその処理が実行される実行区間の開始時刻と終了時刻とに対応付けられている。
【0116】
図10に示すシーン毎の電力値の例では、各処理の電力値に加えて、シーン毎の平均電力値が示される。設計者は、モニタ108に表示された概要モードでのシミュレーション結果を参照して、更に詳細に電力解析をしたい処理をマウス109bなどで選択する。
【0117】
例えば、設計者は、シーンAに関して、ID「No.2」の処理(図9の開始時刻t7から終了時刻t8の実行区間A2)を指定する。
【0118】
また、設計者は、シーンBに関して、ID「No.2」の処理(図9の開始時刻t9から終了時刻t10の実行区間B2)、ID「No.3」の処理(図9の開始時刻t11から終了時刻t12の実行区間B3)、ID「No.4」の処理(図9の開始時刻t19から終了時刻t20の実行区間B4)、ID「No.5」の処理(図9の開始時刻t23から終了時刻t24の実行区間B5)、及びID「No.6」の処理(図9の開始時刻t25から終了時刻t26の実行区間B6)を指定する。
【0119】
更に、設計者は、シーンCに関して、ID「No.2」の処理(図9の開始時刻t15から終了時刻t16の実行区間C2)を指定する。
【0120】
設計者によって指定された各処理(開始時刻から終了時刻)は、図7の動作シーケンス・データ57の条件項目のモード切替条件において、クロック数(詳細モード開始時刻及び詳細モード終了時刻)に設定される。
【0121】
このように、設計者は、所望の処理を指定するのみで、詳細モードによる電力を測定する区間を容易に設定することができる。
【0122】
概要モードでの回路の動作シミュレーションの結果に基づいて指定された区間で、詳細モードでの回路の動作シミュレーションを実行するための処理について、図11及び図12で説明する。
【0123】
図11は、区間指定のモード切替による処理の全体概要を示すフローチャート図である。図11において、シミュレーション制御部10は、動作シーケンス・データ57に基づいて、エミュレータ装置200に概要モードでの回路の動作シミュレーションを実行させる(ステップS51)。動作シーケンス・データ57に設定される図8に示すアサーション関連付けテーブル27によって、電力測定対象の測定開始時間及び測定終了時間が指定されている。アサーション関連付けテーブル27に従って、概要モードでの電力測定が行われる。
【0124】
そして、高速電力見積部31によって算出された概要モードでの電力測定結果を、動作・電力ビューア部40が、グラフィック処理装置104を介してモニタ108に表示させる。入力制御部20は、モニタ108に表示された電力測定結果に基づいて、設計者が詳細モードの区間を指定することによって、詳細モードでシミュレーションを実行する区間を取得する(ステップS52)。
【0125】
設計者によって指定された区間は、入力制御部20によって生成される図7の動作シーケンス・データ57の条件項目のモード切替条件として設定され、各区間はクロック数(詳細モード開始時間及び詳細モード終了時間)で指定される。
【0126】
そして、シミュレーション制御部10は、動作シーケンス・データ57に基づいて、エミュレータ装置200に詳細モードでの回路の動作シミュレーションを実行させる(ステップS53)。
【0127】
シミュレーション制御部による、図9(b)及び図9(c)に例示されるような概要モードでの電力測定を行う処理について図12で説明する。図12は、シミュレーション制御部による概要モードでの電力測定に係る処理を説明するためのフローチャート図である。
【0128】
図12において、シミュレーション制御部10は、トリガー1をエミュレータ装置200に設定する(ステップS61)。図9(a)の動作例において、トリガー1は、シーンAの各処理の開始、シーンBの各処理の開始、又は、シーンCの各処理の開始、又は、回路の動作シミュレーションの終了時刻である。
【0129】
そして、シミュレーション制御部10は、エミュレータ装置200による回路の動作シミュレーションを実行する(ステップS62)。シミュレーション制御部10の制御によって、概要回路シミュレーション部M1による回路の動作シミュレーションが実行される。
【0130】
設定されたトリガー1が成立すると、シミュレーション制御部10は、トリガー部270から割り込みにより終了イベントを受信する(ステップS63)。シミュレーション制御部10は、受信した終了イベントから、何が原因で止まったのかを判定するトリガー判定を行う(ステップS64)。
【0131】
シミュレーション制御部10は、止まった原因が終了時間であったのか否かを判断する(ステップS65)。止まった原因が終了時間であると判断した場合、シミュレーション制御部10は、この処理を終了する。
【0132】
一方、止まった原因が終了時間でないと判断した場合、シーンA、B、Cの各々に対応付けられる観測信号(図8)の立ち上がりを検出したと判断し、シミュレーション制御部10は、エミュレータ装置200にシミュレーションの再実行用データをダンプさせ、トリガー2を設定し、概要モードでの電力測定を開始する(ステップS66)。再実行用データのダンプ時刻は、動作シーケンス・データ57の条件項目の再実行用データダンプ条件で指定される。図9(a)の動作例の場合、シーンA、B、及びCの各実行区間の開始時刻などが指定される。トリガー2は、シーンAの各処理の終了、シーンBの各処理の終了、又は、シーンCの各処理の終了、又は、回路の動作シミュレーションの終了時刻である。
【0133】
そして、シミュレーション制御部10は、エミュレータ装置200による概要モードでの回路の動作シミュレーションを実行する(ステップS67)。シミュレーション制御部10の制御によって、概要回路シミュレーション部M1による回路の動作シミュレーションが実行される。
【0134】
その後、設定されたトリガー2が成立すると、シミュレーション制御部10は、トリガー部270から割り込みにより終了イベントを受信する(ステップS68)。シミュレーション制御部10は、受信した終了イベントから、何が原因で止まったのかを判定するトリガー判定を行う(ステップS69)。
【0135】
シミュレーション制御部10は、止まった原因が終了時間であったのか否かを判断する(ステップS70)。止まった原因が終了時間であると判断した場合、シミュレーション制御部10は、この処理を終了する。
【0136】
一方、止まった原因が終了時間でないと判断した場合、シミュレーション制御部10は、エミュレータ装置200に時刻を保存させ、概要モードでの電力測定を終了し(ステップS71)、ステップS61へ戻り、上述同様の処理を繰り返す。
【0137】
上述したシミュレーション制御部10による処理によって、指定されたシーンのみの電力測定を行うため、概要モードでの動作中の全てのデータを保存する必要がない。
【0138】
シミュレーション制御部10による、図9(d)に例示されるような詳細モードに係る処理について図13で説明する。図13は、シミュレーション制御部による詳細モードに係る処理を説明するためのフローチャート図である。
【0139】
図13において、シミュレーション制御部10は、図7の動作シーケンス・データ57の条件項目のモード切替条件のクロック数(詳細モード開始時刻)を参照することによって、エミュレータ実行部210にダンプした再実行用データをロードさせる(ステップS81)。図10に例示されるような、設計者によって指定された処理の開始時刻(測定開始時刻)に関連付けされた再実行用データが、エミュレータ実行部210の詳細回路シミュレーション部M2にロードされる。
【0140】
また、シミュレーション制御部10は、図7の動作シーケンス・データ57の条件項目のモード切替条件のクロック数(詳細モード終了時刻)を参照することによって、エミュレータ装置200にトリガーを設定する(ステップS82)。トリガーの設定によって、終了時刻(測定終了時刻)が設定される。
【0141】
そして、シミュレーション制御部10は、エミュレータ装置200による詳細モードでの回路の動作シミュレーションを実行する(ステップS83)。シミュレーション制御部10の制御によって、詳細回路シミュレーション部M2による回路の動作シミュレーションが実行される。
【0142】
その後、設定されたトリガーが成立すると、シミュレーション制御部10は、トリガー部270から割り込みにより終了イベントを受信する(ステップS84)。終了イベントを受信すると、シミュレーション制御部10は、動作シーケンス・データ57を参照して、条件項目のモード切替条件を全て完了したか否かを判断する(ステップS85)。全て完了した場合、シミュレーション制御部10は、この処理を終了する。
【0143】
一方、モード切替条件を全て完了していない場合、シミュレーション制御部10は、ステップS81へ戻り、次のモード切替条件について上述同様の処理を実行する。
【0144】
再実行用データを用いて、詳細モードでのシミュレーションを行うため、再実行用データに関連付けられる時刻を指定すればよく、従って、モード切替条件におけるクロック数(詳細モード開始時刻及び詳細モード終了時刻)の指定順序は、図9に示されるような時系列な処理の順序である必要がない。
【0145】
次に、図7の動作シーケンス・データ57の条件項目のモード切替条件に高電力値を示す区間が指定された場合の、シミュレーション制御部10による処理について図14で説明する。
【0146】
図14は、高電力値を示す区間で詳細モードに切り替える処理を説明するためのフローチャート図である。図14において、シミュレーション制御部10は、動作シーケンス・データ57に従って、モード切替条件で指定される区間1から区間nの各区間iで、概要モードで電力を測定するようにエミュレータ装置200を制御する(ステップS91)。
【0147】
そして、概要モードでの電力測定結果に基づいて、概要モードで電力の大きい所定数の区間を選択する(ステップS93)。区間の選択は、動作・電力ビューア部40によってもニタ108に表示された電力測定結果を参照することによって、設計者が選択しても良い。或いは、設計者によって予め指定された所定数で、シミュレーション制御部10によって電力の大きい値の順に区間を自動的に選択するようにしてもよい。選択された区間の開始時刻及び終了時刻に基づいて、モード切替条件が変更された動作シーケンス・データ57が生成される。
【0148】
所定数の区間が選択されると、シミュレーション制御部10は、動作シーケンス・データ57に従って、モード切替条件で指定される所定数の各区間iで、詳細モードで電力を測定するようにエミュレータ装置200を制御する(ステップS95)。そして、動作・電力ビューア部40は、詳細モードで測定された電力の最も高い区間を最大電力としてモニタ108に表示する(ステップS97)。表示される情報には、最大電力と、その区間の開始時刻とを含む。
【0149】
(2−4)画面例
上述した概要モードと詳細モードとを利用したシミュレーションの実行を、設計者に選択可能とする画面例について図15で説明する。
【0150】
図15は、メニュー画面例を示す図である。図15に示すメニュー画面G15は、入力制御部20によってグラフィック処理装置104を介してモニタ108に表示されるメニュー画面である。設計者は、電力解析を、「概要電力レビューモードで実行する」、「調査モードで実行する」、及び「最も電力の高い時刻ポイントを求める」から選択することができる。選択に応じて、入力制御部20は、選択された電力解析に係る検証条件を入力可能な画面を表示する。設計者によって検証条件が入力されると、入力制御部20は、動作シーケンス・データ57を生成して記憶部50に格納する。
【0151】
(2−5)利便性
本実施例に係る消費電力解析装置100を利用する設計者の利便性について説明する。
【0152】
(2−5−1)概要電力レビューモード
概要モードで測定された電力を表示させることができ、更に、設計者に電力を表示させるブロックを指定可能とする。
【0153】
動作・電力ビューア部40は、電力結果データ55を用いて、回路の動作シミュレーションを表示させることができる。例えば、動画表示で電力の変化を表示する。また、動作・電力ビューア部40は、動作出力データ56を用いて、動作波形の表示を行うことによって、設計者は、動作モードの確認を行うことができる。また、設計者によってどの信号線の理論を波形表示するかを指定させることができる。
【0154】
設計者は、必要に応じて割り込みを発生させ、シミュレーションを停止されることができる。
【0155】
モニタ108に表示された電力又は波形を参照して、設計者は、検証条件を変更したり、詳細モードで検証したい時刻を設定できる。また、概要モードの結果から時区間を絞り込み、詳細モードで検証することができる。
【0156】
(2−5−2)調査モード
電力を見積もる際に、概要モードと詳細モードとを切り替えながら、詳細な検証が必要な処理の実行区間を詳細モードで電力検証を行なうことができる。
【0157】
観測信号に基づいて詳細モードへ切り替えるように、エミュレータ装置200を制御することによって、例えば、図16に示すように、シーンA、B、及びCで詳細モードに切り替え、それ以外では概要モードで電力を測定することができる。
【0158】
図16は、概要モードと詳細モードとを切り替えながら回路の動作シミュレーション全体を実行する例を示す図である。図16において、動作シーケンス・データ57で指定されるシーンA、B、及びCの処理の実行区間のみで詳細モードとなる。
【0159】
回路の動作シミュレーション全体では、シーンAの実行区間の開始時刻で概要モードから詳細モードへと切り替え、シーンAの実行区間の終了時刻で詳細モードから概要モードへと切り替えられる。同様に、シーンBの実行区間の開始時刻で概要モードから詳細モードへと切り替え、シーンBの実行区間の終了時刻で詳細モードから概要モードへと切り替えられる。また、シーンCの実行区間の開始時刻で概要モードから詳細モードへと切り替え、シーンCの実行区間の終了時刻で詳細モードから概要モードへと切り替えられる。
【0160】
図16に示す動作例は、図8に例示されるアサーション関連付けテーブル27による動作シーケンス・データ57の条件項目のモード切替条件の設定と、図6に示すモード切替による連続処理によって実現される。
【0161】
(2−5−3)応用例
アサーションを用いた応用例について図17で説明する。図17中、設計者による一連の電力解析の手順の一例を示し、左に設計者によって設定されたシナリオのバリエーションを示し、右にシナリオに基づいた表示のバリエーションを示している。
【0162】
設計者は、先ず、回路全体の大まかな電力を見るために、概要モードによる電力表示シナリオを、入力制御部20を介して設定する(ステップS101)。このシナリオに基づく、概要モードによる電力波形の動画表示が、動作・電力ビューア部40によってモニタ108に行われる(ステップS102)。
【0163】
設計者は、モニタ108に表示された電力波形の動画を検証することによって、あるシーンに係る電力を消費している場所を検証するためにブロック別の電力動作表示シナリオを設定する(ステップS103)。このシナリオに基づく、ブロック別の電力動作表示が、動作・電力ビューア部40によってモニタ108に行われる(ステップS104)。シーンは、上述したように、シーンに係る処理の実行区間(開始時刻及び終了時刻)で指定される。ステップS104では、ブロック別電力波形表示、ブロック別動作モード表示、ブロック別動作量(性能)表示などが行われる。
【0164】
また、設計者は、ステップS103で指定したシーンとは別のシーンに関して、電力を消費している場所を検証するためにブロック別の電力動作表示シナリオを設定する(ステップS105)。このシナリオに基づく、ブロック別の電力動作表示が、動作・電力ビューア部40によってモニタ108になされる(ステップS106)。ステップS106では、ステップS104と同様の処理が行われると共に、ステップS103で指定されたシーンとの比較がなされ、電力比較表示、動作量(性能)比較表示などがモニタ108に表示される。
【0165】
設計者は、モニタ108に表示された電力比較、動作量(性能)比較などを参照することによって、詳細モードでの電力動作表示シナリオを設定する(ステップS107)。このシナリオに基づく、詳細モードによる電力波形表示が、動作・電力ビューア部40によってモニタ108に行われる(ステップS108)。
【0166】
携帯電話機のTV映像の画像処理などの実アプリケーションでは、数百MHzクロックで数秒に及ぶ処理の電力解析が要求され、膨大な変化数を集計し、電力計算を行う必要がある。従って、本実施例を適用することによって、設計者は、概要モードでの電力検証後、指定した処理の実行区間を指定した詳細モードでの電力検証を行なうことができるため、効率的な電力検証を行なえる。
【0167】
また、再実行では、指定された時刻からの回路の動作シミュレーションが可能であるため、電力検証の時間を大幅に削減することができる。
【0168】
更に、予め詳細モードでの電力検証が必要な処理に関して、アサーション関連付けテーブル27によるモード切替条件(図7)を設定することで、概要モードと詳細モードと切り替えながら連続した処理によって回路の動作シミュレーションを実現することができる。
【0169】
本実施例に係る消費電力解析装置100により、回路の動作シミュレーションは10倍以上の高速化が期待できる。また、詳細モードと概要モードとの動作比率を1:10程度にすることができ、それらの結果による詳細モードと概要モードでのデータのダンプ比率は1:1000程度にできると期待できる。
【0170】
精度に関して、必要な部分での詳細モードによる結果は、略100%の精度を得ることができ、概要モードの場合は、50〜80%の精度を得ることができる。
【0171】
対話的な電力検証に関して、電力検証に係るアサーションによる精度と速度トレードオフを設計者が設定可能である。また、アサーションを設定することで、電力バグを検出することも可能である。
【0172】
上述したように、本実施例では、論理回路の電力検証において、モード切替のタイミングを設計者が設定できることにより対話的な電力検証が行なえると共に、電力解析の要求精度を考慮した効率的かつ高速な電力見積もりを実現することができる。
【0173】
概要モードと詳細モードとを必要に応じて切り替えることで、高速な電力見積もりを行う。概要モードでは、RTLレベルでの高速な電力見積もりが行われ、RTLによる回路動作からメモリとクロックゲーティングの動作を計数し、メモリ、クロック木、FFクロックの電力を算出する。また、詳細モードでは、ゲートレベルでの詳細な電力見積もりが行われ、Verilogなどによるハードウェア記述言語による回路動作から、全ての回路の動作を計数し、組み合せ回路を含めた全電力を算出する。
【0174】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【0175】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
回路の動作記述の抽象度が異なる概要回路モデルと、該概要回路モデルより抽象度が低い詳細回路モデルとを含む回路データと、該回路の電力検証方法に係る動作シーケンス・データとを記憶する記憶部と、
論理回路の動作シミュレーションを行う論理シミュレーション部に、前記記憶部に記憶されている前記概要回路モデルと前記詳細回路モデルとを含む前記回路データをロードし、該記憶部に記憶されている前記動作シーケンス・データに従って、該概要回路モデルによって前記動作シミュレーションを行わせる概要モードと、該詳細回路モデルによって該動作シミュレーションを行わせる詳細モードとを切り替えて、該論理シミュレーション部に該動作シミュレーションを行わせるシミュレーション制御部と
を有することを特徴とする消費電力解析装置。
(付記2)
前記シミュレーション制御部は、
前記動作シーケンス・データのモード切替条件で指定される前記詳細モードへの切替タイミングで、前記詳細モードへと切り替えることによって、前記概要モードと前記詳細モードとを交互に切り替えながら一連の連続した動作シミュレーションを、前記論理シミュレーション部に行わせることを特徴とする付記1記載の消費電力解析装置。
(付記3)
前記概要モードから前記詳細モードへの切替タイミングにて、前記概要モードにおける前記概要回路モデルの状態値が前記詳細回路モデルの状態値に設定されることを特徴とする付記2記載の消費電力解析装置。
(付記4)
前記概要モードから前記詳細モードへの切替タイミングでの前記状態値の設定は、前記概要回路モデルから前記詳細回路モデルへの対応付けを示すマッピング情報に基づいて行われることを特徴とする付記3記載の消費電力解析装置。
(付記5)
前記詳細モードから前記概要モードへの切替タイミングにて、前記詳細モードにおける前記詳細回路モデルの状態値が前記概要回路モデルの状態値に設定されることを特徴とする付記3又は4記載の消費電力解析装置。
(付記6)
前記詳細モードから前記概要モードへの切替タイミング前記状態値の設定は、前記マッピング情報と、前記詳細回路モデルに存在するが前記概要モデルに存在しない回路への設定値を示す設定値情報とに基づいて行われることを特徴とする付記5記載の消費電力解析装置。
(付記7)
前記シミュレーション制御部は、
前記動作シーケンス・データのモード切替条件で指定される前記概要モードによるシミュレーション結果に基づく前記詳細モードへの切替タイミングでの、該概要モードの実行時に得た前記概要回路モデルの状態値を用いて、前記論理シミュレーション部に該切替タイミングから詳細モードでの前記動作シミュレーションを開始させることを特徴とする付記1記載の消費電力解析装置。
(付記8)
前記シミュレーション制御部は、
論理シミュレーション部に、前記動作シーケンス・データのモード切替条件で指定される複数の処理の実行区間で前記概要モードによる電力測定を行い、該電力測定の結果に基づく電力の大きい一以上の実行区間で、前記詳細モードによる電力測定を行わせる
ことを特徴とする付記1記載の消費電力解析装置。
(付記9)
前記回路データには、前記概要回路モデル用の計数回路モデルと、前記詳細回路モデル用の計数回路モデルとが含まれていることを特徴とする付記1乃至8のいずれか一項記載の消費電力解析装置。
(付記10)
前記概要モードでの前記論理シミュレーション部による前記動作シミュレーションの結果に基づいて、電力を見積もる概要電力見積部と、
前記詳細モードでの前記論理シミュレーション部による前記動作シミュレーションの結果に基づいて、電力を見積もる詳細電力見積部と
を更に有する付記1乃至9のいずれか一項記載の消費電力解析装置。
(付記11)
前記概要電力見積部による電力見積もり結果と、前記詳細電力見積部による電力見積もり結果とをモニタに表示させるビューア部と、
前記動作シミュレーションの前記電力検証方法に係る設定、又は、前記ビューア部によって前記モニタに表示された結果から選択することによる該電力検証方法に係る設定を設計者に行わせる入力制御部と
を更に有する付記10記載の消費電力解析装置。
(付記12)
コンピュータによって実行される消費電力解析方法であって、該コンピュータが、
論理回路の動作シミュレーションを行う論理シミュレーション部に、記憶部に記憶されている回路の動作記述の抽象度が異なる概要回路モデルと、該概要回路モデルより抽象度が低い詳細回路モデルとを含む回路データをロードし、該記憶部に記憶されている前記動作シーケンス・データに従って、該概要回路モデルによって前記動作シミュレーションを行わせる概要モードと、該詳細回路モデルによって該動作シミュレーションを行わせる詳細モードとを切り替えて、該論理シミュレーション部に該動作シミュレーションを行わせることを特徴とする消費電力解析方法。
(付記13)
論理回路の動作シミュレーションを行う論理シミュレーション部に、記憶部に記憶されている回路の動作記述の抽象度が異なる概要回路モデルと、該概要回路モデルより抽象度が低い詳細回路モデルとを含む回路データをロードし、
前記記憶部に記憶されている前記動作シーケンス・データに従って、前記概要回路モデルによって前記動作シミュレーションを行わせる概要モードと、前記詳細回路モデルによって該動作シミュレーションを行わせる詳細モードとを切り替えて、前記論理シミュレーション部に前記動作シミュレーションを行わせる、
処理をコンピュータに実行させるプログラム。
(付記14)
論理回路の動作シミュレーションを行う論理シミュレーション部に、記憶部に記憶されている回路の動作記述の抽象度が異なる概要回路モデルと、該概要回路モデルより抽象度が低い詳細回路モデルとを含む回路データをロードし、
前記記憶部に記憶されている前記動作シーケンス・データに従って、前記概要回路モデルによって前記動作シミュレーションを行わせる概要モードと、前記詳細回路モデルによって該動作シミュレーションを行わせる詳細モードとを切り替えて、前記論理シミュレーション部に前記動作シミュレーションを行わせる、
処理をコンピュータに実行させるプログラムを記憶したコンピュータ読取可能な記憶媒体。
【符号の説明】
【0176】
10 シミュレーション制御部
11 CPU
12 メモリユニット
13 表示ユニット
14 出力ユニット
15 入力ユニット
16 通信ユニット
17 記憶装置
18 ドライブ
19 記憶媒体
20 入力制御部
30 電力見積部
31 高速電力見積部
32 詳細電力見積部
40 動作・電力ビューア部
50 記憶部
51 回路データ
52 テストベンチ・データ
55 電力結果データ
56 動作出力データ
57 動作シーケンス・データ
100 消費電力解析装置(ホスト計算機)
200 エミュレータ装置
210 エミュレーション実行部
221 概要回路モデル
222 計数回路モデル
223 詳細回路モデル
224 計数回路モデル
230 動作データ
231 概要動作データ
232 詳細動作データ
270 トリガー部
M1 概要回路シミュレーション部
M2 詳細回路シミュレーション部

【特許請求の範囲】
【請求項1】
回路の動作記述の抽象度が異なる概要回路モデルと、該概要回路モデルより抽象度が低い詳細回路モデルとを含む回路データと、該回路の電力検証方法に係る動作シーケンス・データとを記憶する記憶部と、
論理回路の動作シミュレーションを行う論理シミュレーション部に、前記記憶部に記憶されている前記概要回路モデルと前記詳細回路モデルとを含む前記回路データをロードし、該記憶部に記憶されている前記動作シーケンス・データに従って、該概要回路モデルによって前記動作シミュレーションを行わせる概要モードと、該詳細回路モデルによって該動作シミュレーションを行わせる詳細モードとを切り替えて、該論理シミュレーション部に該動作シミュレーションを行わせるシミュレーション制御部と
を有することを特徴とする消費電力解析装置。
【請求項2】
前記シミュレーション制御部は、
前記動作シーケンス・データのモード切替条件で指定される前記詳細モードへの切替タイミングで、前記詳細モードへと切り替えることによって、前記概要モードと前記詳細モードとを交互に切り替えながら一連の連続した動作シミュレーションを、前記論理シミュレーション部に行わせることを特徴とする請求項1記載の消費電力解析装置。
【請求項3】
前記シミュレーション制御部は、
前記動作シーケンス・データのモード切替条件で指定される前記概要モードによるシミュレーション結果に基づく前記詳細モードへの切替タイミングでの、該概要モードの実行時に得た前記概要回路モデルの状態値を用いて、前記論理シミュレーション部に該切替タイミングから詳細モードでの前記動作シミュレーションを開始させることを特徴とする請求項1記載の消費電力解析装置。
【請求項4】
前記シミュレーション制御部は、
論理シミュレーション部に、前記動作シーケンス・データのモード切替条件で指定される複数の処理の実行区間で前記概要モードによる電力測定を行い、該電力測定の結果に基づく電力の大きい一以上の実行区間で、前記詳細モードによる電力測定を行わせることを特徴とする請求項1記載の消費電力解析装置。
【請求項5】
コンピュータによって実行される消費電力解析方法であって、該コンピュータが、
論理回路の動作シミュレーションを行う論理シミュレーション部に、記憶部に記憶されている回路の動作記述の抽象度が異なる概要回路モデルと、該概要回路モデルより抽象度が低い詳細回路モデルとを含む回路データをロードし、該記憶部に記憶されている前記動作シーケンス・データに従って、該概要回路モデルによって前記動作シミュレーションを行わせる概要モードと、該詳細回路モデルによって該動作シミュレーションを行わせる詳細モードとを切り替えて、該論理シミュレーション部に該動作シミュレーションを行わせることを特徴とする消費電力解析方法。

【図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

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2013−29893(P2013−29893A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2011−163635(P2011−163635)
【出願日】平成23年7月26日(2011.7.26)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】