JP4330573B2 - 消費電力評価方法、消費電力評価システム - Google Patents
消費電力評価方法、消費電力評価システム Download PDFInfo
- Publication number
- JP4330573B2 JP4330573B2 JP2005288409A JP2005288409A JP4330573B2 JP 4330573 B2 JP4330573 B2 JP 4330573B2 JP 2005288409 A JP2005288409 A JP 2005288409A JP 2005288409 A JP2005288409 A JP 2005288409A JP 4330573 B2 JP4330573 B2 JP 4330573B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- clock
- power consumption
- evaluation
- measurement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Description
図1は、本発明の一実施の形態である消費電力評価方法の作用の一例を示すフローチャートであり、図2は、本実施の形態の消費電力評価方法を実施するハードウェアシミュレーション環境の構成の一例を示す概念図である。
本実施の形態の消費電力評価方法には、1回のトランザクションにおける有効ビット数を増やすパッキング工程200、パッキングされたデータの転送順序とパッキングを実現するバスの生成と転送時間に間に合うバスの並列化を行い、生成したバスや計測回路等を被評価回路に埋め込む計測回路挿入工程201、転送回路をもった被測定回路をハードウェアシミュレーションして、トグル回数を収集するエミュレーション工程202、収集されたデータはパックされているので、パックされているデータをアンパックして所望のデータを抽出する抽出工程203、抽出したデータを既存の電力解析ツールで電力解析を行う電力解析工程204をもち、シームレスにハードウェアシミュレータ300を用いて効率的なトグル回数等の情報のサンプリングおよび外部システムへの転送を実現する。
すなわち、ハードウェアシミュレーションの高速化とハードウェアシミュレーションのセットアップ、電力解析作業の短時間化を両立させる消費電力評価方法を提供する。
被評価回路400には、クロック420、クロック421、クロック422の3本のクロック信号がある。部分回路410、部分回路411、部分回路412はそれぞれクロック420(clock1,50MHz)、クロック421(clock2,75MHz)、クロック422(clock3,100MHz)で駆動されているレジスタおよびRAMを含み、さらに各々に含まれるレジスタで駆動される組み合わせ回路を含む。
図8、図9は被評価回路310の測定(評価結果327の収集)と記憶装置302(HDD)に書き込む処理を並列化したものである。
計測回路320は、信号変化検出回路321、加算器322、レジスタ323、ラッチ324、ゲート端子325、0クリア端子326を含んでいる。
レジスタ323は、加算器322のカウント値を保持し、0クリア端子326から入力される0クリア信号348にて0に初期化され、この初期化の契機で加算器322も初期化する。
セレクタ331は、イネーブルラッチ332からの選択信号333に基づいて、複数の計測回路320の各々から出力される評価結果327の一つを選択してFIFOバッファ350に出力する動作を行う。
期間設定/判定部342は、外部から設定され期間値とサンプル期間カウンタ341のカウンタ値が等しくなった時に、サンプル期間カウンタ341を初期化する。
FIFOバッファ350は、転送タイミング判定部344からの書き込み要求信号349の入力を契機としてセレクタ331で選択された評価結果327を取り込んで保持する。
図10は、上述の図8に対応し、計測回路320を一斉に0クリアする場合であり、図11は、上述の図9に対応し、計測回路320を個別に0クリアする場合である。
この場合、転送回路330では、複数のセレクタ331およびセレクタ334が並列に設けられ、各々に対応して、FIFOバッファ351およびFIFOバッファ350が設けられている。また、個々のFIFOバッファ350およびFIFOバッファ351の転送タイミングを制御するための転送タイミング判定部344、転送タイミング判定部345が個別に設けられている。
memory −dump <メモリインスタンス名> −start <開始アドレス> −end <終了アドレス> −file <出力ファイル名>は、<メモリインスタンス名> のアドレス<開始アドレス>から<終了アドレス>のデータをリード、リードしたデータ<出力ファイル名>に書き出すコマンドとする。
以上の方法のうち全部または一部を自動化してもよい。
また、複数の計測回路320におけるレジスタ323の0クリアの実行方法や、ラッチ324の有無等を組み合わせた複数の転送方法を提供することにより、ハードウェアシミュレーションの制御方法の選択、ハードウェアシミュレータ300における回路量の増加と精度のトレードオフを選択的に決めることができる。
図17、図18、図19は、本実施の形態の消費電力評価方法において用いられる各種情報の構成例を示す概念図である。
このソースクロックリスト11は、被評価回路310の設計者が作成するリストである。被評価回路310に入力されるクロック、または、クロック生成器の出力の一覧である。各クロック名(クロック名11a)と各々の動作周波数11bを与える。例では、clock1/clock2/clock3、がソースクロックである。
RAMピンネーム規則12は、インスタンス(回路データの実体)がRAMモジュールか否かを判定する規則と、計測対象のピンを判定する規則が記載されたものである。例では、モジュール名(RAMモジュール12a)がRAMから始まるものをRAMと判定し、そのモジュールのうち、WEというポートがあったらそのピンを計測対象とすることが定義されている。図20の例の、ハードウェア記述言語による回路データ601では、“RAM 1RW”というモジュールがRAM0という名前でインスタンスされ、“.WE()”からWEポートを持つことがわかる。
クロックドメインリスト14は、クロック名14a、追跡可能全クロック名14bを含んでいる。
ネーミングルールによる場合、必ずしもソースクロック別にソースクロックからたどれるクロックの集合を抽出できないことがある。この場合、クロックドメインリスト14の代わりに擬似クロックドメインリスト15を作る。clock1,clock2,clock3が見つかる。ソースクロックリスト11から最高周波数のクロックを探す。例ではclock1がみつかる。clock1をクロック名にする。擬似クロックドメインリスト15のフォーマットはクロックドメインリスト14と同じである。
クロックを見つけることができない場合、全信号をクロックとしてリストアップする。クロック名は擬似クロックドメインリスト15と同様、最高周波数のクロックを選択する。全クロック化クロックドメインリスト16のフォーマットはクロックドメインリスト14と同じである。
クロックドメイン別レジスタリスト17は、クロックドメインリスト14または擬似クロックドメインリスト15をもとに各クロック名ごとにそのドメインに含まれるクロック信号と繋がるレジスタをメモリ上の回路から検索したものである。検索対象のクロック名17aを決める。TOPノードから全探索して、ノードタイプがレジスタのものを見つける。そのノードのクロック名が探索中のクロック名と一致するか判定する。一致したらレジスタ名17bに記憶する。これによりクロックドメイン別レジスタリスト17が生成できる。
クロックドメイン別ワイヤリスト18(クロックドメイン別の組み合わせ回路リスト)は、クロックドメイン別のレジスタリストと回路データからクロックドメインに属するワイヤを探すために用いられる。
サンプリング期間指定19(サンプリング期間T_SAMPLING)は、評価データを計測する期間を指定する情報である。例では40(μs)を設定している。
RAMのインスタンス名と計測対象のポート名のリスト。メモリ上の回路を全探索し、ノードタイプのうち、計測対象の名前を持つピンを探す。この場合、RAM0__WEが見つかる。従って、上記のような計測RAMピンリスト20が生成される。
データ構造情報21は、リスト名21a、ポインタ21bを含んでいる。ポインタ21bは、後述のクロックリストサブテーブル22〜RAMリストサブテーブル24を指し示す。
生成回路指示表26は、設定項目26a、属性値26bを含んでいる。
生成回路指示表26には、計測回路挿入工程201に与える各種のオプションが設定される。どのような転送回路330を生成するかを指定する。この生成回路指示表26の設定項目26aへの各種情報の設定により、多様な仕様の転送回路330を自動的に生成させることができる。
電力ツール用データ本体28は、サンプリング回数28a、タイプ28b、信号名28c、変化回数28d、アクティブ期間28e、変化平均28fを含んでいる。
パッキング工程200では、ソースクロックリスト11、RAMピンネーム規則12、サンプリング期間指定19、回路データ601を用いて、クロックドメインリスト14を生成するとともに、計測RAMピンリスト20、クロックドメイン別ワイヤリスト18、データ構造情報21を出力する。
このネーミングルール600は、信号名の命名法をルール化したものである。設計データの可読性を向上させたり、自動化を図るために用いられる。たとえば、「クロック信号は“clock”から始まる信号名をつける、クロック信号以外は“clock”からはじめてはいけない」というように規則をつける。これにより、“clock”からはじめる信号名を見つけると設計者はクロック信号であると認識できる。また、アプリケーションソフトが“clock”から始まる信号名を探すことにより、クロック信号を抽出することができる。本実施の形態では、クロックに対して先の例の規則が設けられているとする。
信号分離工程200aでは、回路データ601、ソースクロックリスト11、ネーミングルール600、RAMピンネーム規則12、等に情報に基づいて、クロックドメインリスト14、クロックドメイン別レジスタリスト17、クロックドメイン別ワイヤリスト18、計測RAMピンリスト20等の情報を出力する。
(ステップ701). ソースクロックリストから最速のクロックを見つける。fast_clock=<クロック名>とする。
(ステップ702). lib_type にあったクロック用のパラメタライズド・モジュール記述のモジュール名を pm_module にセットする。
(ステップ703). データバス幅指定を参照する。data_bus_width = <データバス幅>とする。
(ステップ704). 被評価回路のインスタンス名をもらう。target_instance = <被評価回路のインスタンス名>とする。
(ステップ705). count_wire = 0; count_module = 0; remain_bit = data_bus_width; is_instance_width = true; phase = CLOCK; を設定する。
(ステップ706). phase=CLOCKの場合、データ構造情報21のクロックリストサブテーブル22を参照する。このステップがコールされるたびに先頭から一行づつ参照、クロック名とビット数を得る。それぞれ、sig_name=<クロック名>; bits = <ビット数>; とする。もしすべて参照済みで得られなかった場合、phase = RAM にし、lib_type にあったクロック用のパラメタライズド・モジュール記述のモジュール名を pm_module にセットする。
(ステップ707). phase=RAMの場合、データ構造情報のRAMリストサブテーブルを参照、信号名とビット数を得る。それぞれ、sig_name=<信号名>; bits = <ビット数>; とする。もしすべて参照済みで得られなかった場合、(ステップ713).に分岐する。
(ステップ708). remain_bit < width の場合の処理。remain_bit > 0の場合、“assign eval_<count_wire値>[<remain_bit 値−1> : 0] = 0;” を印字する。そうではない場合何もしない。いずれの場合も、is_instance_width = true にする。
(ステップ709). is_instance_width == true の場合、“wire [<data_bus_width値 − 1> : 0] eval_<count_wire値>;” を出力、is_instance_width = false, count_wire = count_wire + 1 、とする。
(ステップ710). 一斉0クリアの場合、clear_name = “clear_signal” をセットする。そうでない場合、clear_name = “clear_signal_<count_wire値>”をセットする。
(ステップ711). インスタンスを生成する。インスタンス名を “<pm_module値> i_evaluator_<count_module値>” とする。
(ステップ712). count_module = count_module + 1 、remain_bits = remain_bits − bits とする。(ステップ705).に戻る。
(ステップ713). “assign eval_<count_wire値>[<remain_bit 値−1> : 0] = 0;” を印字し、終了する。
(ステップ721). lib_type にあったワイヤ用のパラメタライズド・モジュール記述のモジュール名を pm_module にセットする。
(ステップ722). データバス幅指定を参照する。data_bus_width = <データバス幅>とする。
(ステップ723). 被評価回路のインスタンス名をもらう。target_instance = <被評価回路のインスタンス名>とする。
(ステップ724). count_wireにクロック・RAM評価部品生成終了時のcount_wire値をセットする。count_moduleにクロック・RAM評価部品生成終了時のcount_module値をセットする。remain_bit = data_bus_width; is_instance_width = trueをセットする。
(ステップ725). データ構造情報の信号リストサブテーブルの要素ごとにクロックドメイン別生成手続きを行う。この際、clock_name = <クロック名>、bits = <ビット幅>とする。すべての要素に対してクロックドメイン別生成手続きを行ったら終了する。
(ステップ−ア) クロックドメイン別ワイヤリストのうちclock_nameをクロック名にもつフィールドを参照する。このステップがコールされるたびにワイヤ名のリストをひとつづつ参照、ワイヤ名を得る。それぞれ、sig_name=<ワイヤ名>とする。もしすべて参照済みで得られなかった場合、(ステップ−ク)に行く。
(ステップ−イ) remain_bit < width の場合の処理。remain_bit > 0の場合、“assign eval_<count_wire値>[<remain_bit 値−1> : 0] = 0;” を印字する。そうでない場合何もしない。いずれの場合も、is_instance_width = true にする。
(ステップ−ウ) is_instance_width == true の場合、“wire [<data_bus_width値 − 1> : 0] eval_<count_wire値>;” を出力、is_instance_width = false, count_wire = count_wire + 1 する。
(ステップ−エ) 一斉0クリアの場合、clear_name = “clear_signal” をセットする。そうでない場合、clear_name = “clear_signal_<count_wire値>”をセットする。
(ステップ−オ) インスタンスを生成する。インスタンス名を “<pm_module値> i_evaluator_<count_module値>” とする。
(ステップ−キ) count_module = count_module + 1 、remain_bits = remain_bits − bits とする。(ステップ705).に戻る。
(ステップ−ク) “assign eval_<count_wire値>[<remain_bit 値−1> : 0] = 0;”を印字し、終了する。
サンプリングサイクル算出工程201eでは、サンプリング期間指定19の Sampling_period とソースクロックリスト11の最速クロックから算出する。Sampling_periodがA(秒)、最速クロックがB(Hz)の時、サンプリングサイクルA*B(サイクル)を出力する。本実施の形態の例では、40(μs)*100(MHz)=4000(サイクル)が算出される。
(ステップ751). 生成回路指示表26の設定項目26aの「バスの本数」を調べる。1本の時、control_data_length[0] に前工程からもらったcount_wire 値をセットする。L本の時、a = count_wire / L , b = count_wire % L とする時、control_data_length[0] 〜 control_data_length[b − 1] に a+1 をセットする。control_data_length[b] 〜control_data_length[L−1] に a をセットする。また、en_length = a+2 とする。
(ステップ752). c = log2(サンプリングサイクル)の切捨てを算出し、bit_length = c + 1 とする。
(ステップ754). ソースクロックリストから最速のクロックをみつけ、クロック名を fast_clockにセットする。wire <fast_clock値> = <ターゲットインスタンス名>.<fast_clock値>; を記述する(信号名が衝突しない場合。簡単のため本例では衝突しないものとする)。
(ステップ755). “clear”, “en”,“en_d”, “p_en”, “p_en_d”, “p_p1_en”, “p_p1_en_d”, “trigger” をワイヤ宣言する。
(ステップ756). インスタンス名を “<pm_module値> i_control” とする。更にclock端子にfast_clock値をつなぐ。clear, EN, EN_D,P_EN, P_EN_D, P_P1_EN, P_P1_EN_D,TRIGGERにそれぞれ“clear”, “en”,“en_d”, “p_en”, “p_en_d”, “p_p1_en”, “p_p1_en_d”、“trigger”をつなぐ。
(ステップ757). “defparam i_control.N = <bit_length値>;” , “defparam i_control.P=<a値>;” , “defparam i_control.M = <サンプリングサイクル値>;” をセットする。
(ステップ731). データバス幅指定で指定されたバス幅のワイヤを生成回路指示表で指定されたバス本数分宣言する。名前をtrans_port_0 〜 trans_port_<バス本数 − 1> とする。
(ステップ732). en_length + 1幅のシフトレジスタ en_shift を宣言する。
(ステップ733). en_shift[i] ( i>0) には en_shift[i−1] を代入する記述を生成する。en_shift[0] に enを代入する記述を生成する。NOの時、また、clear をリセットとして en_shift に0を代入する記述にする。
(ステップ734). en_shift をセレクタ信号とするマルチプレクサ記述を生成する。trans_port_0 には、eval_000 〜 eval_<control_data_length[0] −1> をマルチプレクスした出力をつなぐ。en_shift[0] の時、eval_000, en_shift[i]の時、eval_<i>をtrans_port_0に出力するマルチプレクサを生成する。k>=1 の時、trans_port_<k> には、eval_<control_data_length[0] + ... + control_data_length[k−1] > から eval_<control_data_length[0]+ ... + control_data_length[k] −1> をマルチプレクスした出力をつなぐ。en_shift[0] の時、eval_<control_data_length[0] + ... + control_data_length[k−1] >, en_shift[i] の時には eval_<control_data_length[0] + ... + control_data_length[k−1] + i> をtrans_port_<k>に出力するマルチプレクサを生成する。
(ステップ736). 一斉0クリア法か?がYESの時、gate 信号にen信号をつなぐ。
(ステップ737). RAMタイプがFIFOの時、データバス幅指定のバス幅のFIFOをバス本数分インスタンスする。FIFO_<i> の深さはcontrol_data[i] * 2 以上にする。任意のFIFOの clear 端子に rst をつなぐ。FIFO_<i> の data 端子に trans_port_<i>をつなぐ。clock端子に fast_clockの値をつなぐ。
(ステップ739). RAMタイプがセーブRAMの時、データバス幅指定のバス幅のセーブRAMをバス本数分インスタンスする。SAVE_RAM_<i> のAには、log2(control_data[i] * 生成回路指示表26のセーブRAM回数)の切り上げ値を設定する。任意のセーブRAMの clear 端子に rst をつなぐ。SAVE_RAM_<i> の data 端子に trans_port_<i>をつなぐ。ck端子にfast_clockの値をつなぐ。
(ステップ740). RAMタイプがセーブRAMの時、k < ( count_wire % バス本数) SAVE_RAM_<k> の we端子に p_p1_enをつなぐ。k >= (count_wire % バス本数) FSAVE_RAM_<k> の we端子に p_en をつなぐ。
(ステップ741). バスマスターつきですか?がYESの時、バスマスターモジュールとFIFOモジュールを接続する。
マージ工程201dでは、回路データ601(被評価回路310)と、上述のようにした得られた計測・制御・転送回路記述(計測回路320、転送回路330、制御部340、FIFOバッファ350、バスインタフェース360、エミュレーションシステム制御部370)を併合して、ハードウェアシミュレータ300を構築するための回路データが出力される。
抽出工程203では、計測値ログ211、サンプリング回数、fast_clock(11−1)の情報から、電力ツール用データヘッダ27、電力ツール用データ本体28を抽出する。
(ステップ751). サンプリング回数を調べて、サンプリング回数−1をサンプリング回数として出力する。
(ステップ752). サンプリング周期を出力する。
(ステップ753). 計測に使ったクロック名(fast_clock)を出力する。
(ステップ754). fast_clockの周波数を出力する。
(ステップ755). sample_count = 0 にする。
(ステップ756). 計測値ログ211をオープンする。
(ステップ757). sample_count がサンプリング回数になるまで、繰り返し、分析・出力処理(後述のステップ801〜ステップ818)を行う。
(ステップ801). データ構造情報21のクロックリストサブテーブル22を見つける。
(ステップ802). dw = データバス幅とする。また、nokori = 0とする。
(ステップ803). クロックリストサブテーブル22の上から順番に評価する。クロック名ckとビット幅bitを取り出す。もし、取り出せなかったら(すべてのクロックリストサブテーブル22中のクロックを評価し終わったら)、(ステップ807)へ分岐する。
(ステップ804). もし nokori == 0 だったら、ファイルから1ワード(dw幅のデータ)を読み出し、変数xに代入する。
(ステップ805). もし nokori >= bit だったら、変数x の nokori − 1 ビット目から nokori − bit 目の数値 y を取り出す。sample_count > 0 だったら、ck と y を出力する。(ステップ803)に行く。
(ステップ806). もし nokori < bit だったら、nokori = 0 にして、(ステップ804)に行く。
(ステップ807). データ構造情報21のRAMリストサブテーブル24を見つける。
(ステップ808). RAMリストサブテーブル24の上から順番に評価する。信号名sigとビット幅bitを取り出す。もし、取り出せなかったら(すべての表中のクロックを評価し終わったら)、(ステップ812)へ分岐する。
(ステップ810). もし nokori >= bit だったら、変数x の nokori − 1 ビット目から nokori − bit 目の数値 y を取り出す。sample_count > 0 だったら、ck と y を出力する。(ステップ808)に行く。
(ステップ811). もし nokori < bit だったら、nokori = 0 にして、(ステップ809)に行く。
(ステップ812). データ構造情報21の信号リストサブテーブル23をみつける。
(ステップ813). 信号リストサブテーブル23の上から順番に評価する。クロック名 ck 、ビット幅 bit、信号数 n を取り出す。カウンタc = 0にする。もし、取り出せなかったら、終了する。
(ステップ814). 累積値 a = 0 、nokori = 0 とする。
(ステップ815). もし nokori == 0 かつ c < n だったら、計測値ログ211のファイルから1ワード(dw幅のデータ)を読み出し、変数xに代入する。
(ステップ816). もし c == n かつ sample_count > 0 だったら、ck と a/n を出力し、(ステップ813)へ分岐する。
(ステップ817). もし nokori >= bit だったら、変数x の nokori − 1 ビット目から nokori − bit 目の数値 y を取り出す。a = a+ yする。c = c+1 にする。
(ステップ818). もし nokori < bit だったら、nokori = 0 にして、(ステップ809)に行く。
電力解析工程204では、電力ツール用データヘッダ27、電力ツール用データ本体28を用いて、消費電力値900を算出する。
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
消費電力の評価対象となる被評価回路と、前記被評価回路から前記消費電力の算出の基礎となる評価情報を得る計測手段と、前記評価情報を外部に取り出す転送手段とを含むシミュレーションシステムにおける消費電力評価方法であって、
前記計測手段で得られた前記評価情報を所定の転送単位毎に詰め込んで前記転送手段を経由して外部に取り出す第1工程と、
前記転送単位毎に詰め込まれた前記評価情報を復元する第2工程と、
を含むことを特徴とする消費電力評価方法。
(付記2)
付記1記載の消費電力評価方法において、
前記転送単位毎に対する複数の前記評価情報の詰め込み方法を定義するデータ構造情報を用いて、前記第1工程における前記転送単位に対する前記評価情報の詰め込み、および前記第2工程における前記評価情報の復元を行うことを特徴とする消費電力評価方法。
(付記3)
付記1記載の消費電力評価方法において、
前記計測手段による前記評価情報の採取と、採取された前記評価情報の外部への取り出し動作とを並行して行うことを特徴とする消費電力評価方法。
(付記4)
付記1記載の消費電力評価方法において、
前記転送手段を多重に設けて、個々の前記転送手段を並列に動作させることを特徴とする消費電力評価方法。
(付記5)
消費電力の評価対象となる被評価回路と、前記被評価回路から前記消費電力の算出の基礎となる評価情報を得る計測手段と、前記評価情報を外部に取り出す転送手段とを含むシミュレーションシステムにおける消費電力評価方法であって、
前記計測手段による前記評価情報の採取と、採取された前記評価情報の外部への取り出し動作とを並行して行うことを特徴とする消費電力評価方法。
(付記6)
付記5記載の消費電力評価方法において、
前記被評価回路における前記評価情報の採取対象の複数の信号の各々に対応して設けられた複数の前記計測手段を同時に初期化し、個々の前記計測手段内における前記評価情報のラッチと、ラッチされた前記評価情報の前記転送手段を経由した取り出し動作とを、異なる前記計測手段について並行して実行することを特徴とする消費電力評価方法。
(付記7)
付記5記載の消費電力評価方法において、
前記被評価回路における前記評価情報の採取対象の複数の信号の各々に対応して設けられた複数の前記計測手段の各々において、当該計測手段の初期化、前記評価情報の採取、採取された前記評価情報の前記転送手段を経由した取り出し動作を、順次実行することで、複数の前記計測手段の各々における前記評価情報の採取と、前記評価情報に転送とを並行して行うことを特徴とする消費電力評価方法。
(付記8)
付記5記載の消費電力評価方法において、
前記転送手段を多重に設けて、個々の前記転送手段を並列に動作させることを特徴とする消費電力評価方法。
(付記9)
付記5記載の消費電力評価方法において、
前記計測手段で得られた前記評価情報を所定の転送単位毎に詰め込んで前記転送手段を経由して外部に取り出す工程と、
前記転送単位毎に詰め込まれた前記評価情報を復元する工程と、
を含むことを特徴とする消費電力評価方法。
(付記10)
転送データ量を削減するためのパッキングに必要なデータ構造情報を生成するパッキング工程、
被評価回路に計測データを転送する転送手段を生成する転送手段生成工程、
前記転送手段を付加した前記被評価回路をハードウェア方式のシミュレーションシステムでシミュレーションを実行し、前記被評価回路の消費電力の算出の基礎となる評価情報を収集し、前記データ構造情報に基づいてパックしつつ前記転送手段を経由して外部に出力するエミュレーション工程、
前記データ構造情報に基づいて前記評価情報をアンパックして所望のデータを抽出する抽出工程、
前記抽出工程で抽出した前記データを前記電力解析ツールに入力し、前記被評価回路の消費電力を計算する消費電力算出工程、
を含むことを特徴とする消費電力評価方法。
(付記11)
付記10記載の消費電力評価方法において、
前記転送手段生成工程において、前記評価情報を送出した直後に当該評価情報を保持していた記憶手段を初期化するとともに、次の計測を開始するように前記転送手段が構築され、前記記憶手段以外の記憶手段を不要にして、前記転送手段の実装による回路量の増加を抑制することを特徴とする消費電力評価方法。
(付記12)
消費電力の評価対象となる被評価回路と、前記被評価回路から前記消費電力の算出の基礎となる評価情報を得る計測手段と、前記評価情報を外部に取り出す転送手段とをプログラム可能な論理回路上に構築して前記被評価回路のシミュレーションを行うことで、前記評価情報を収集する消費電力評価システムであって、
前記転送手段における転送単位毎に対する複数の前記評価情報の詰め込み方法を定義するデータ構造情報を備え、
前記シミュレーションでは、
前記計測手段で得られた前記評価情報を所定の転送単位毎に詰め込んで前記転送手段を経由して外部に取り出す工程と、
前記転送単位毎に詰め込まれた前記評価情報を復元する工程と、
を実行することを特徴とする消費電力評価システム。
11a クロック名
11b 動作周波数
12 RAMピンネーム規則
12a RAMモジュール
12b モジュール名
13 データバス幅指定
14 クロックドメインリスト
14a クロック名
14b 追跡可能全クロック名
15 擬似クロックドメインリスト
15a クロック名
15b 追跡可能全クロック名
16 全クロック化クロックドメインリスト
16a クロック名
16b 全クロック名
17 クロックドメイン別レジスタリスト
17a クロック名
17b レジスタ名
18 クロックドメイン別ワイヤリスト
18a クロック名
18b ワイヤ名
19 サンプリング期間指定
19a 変数
19b 値
20 計測RAMピンリスト
20a インスタンス名
20b ピン名
21 データ構造情報
21a リスト名
21b ポインタ
22 クロックリストサブテーブル
22a クロック名
22b ビット幅
23 信号リストサブテーブル
23a クロック名
23b 所属信号数
23c ビット幅
24 RAMリストサブテーブル
24a 信号名
24b ビット幅
25 ビット表
25a クロック名
25b 必要ビット幅
26 生成回路指示表
26a 設定項目
26b 属性値
27 電力ツール用データヘッダ
27a 分類
27b 属性値
28 電力ツール用データ本体
28a サンプリング回数
28b タイプ
28c 信号名
28d 変化回数
28e アクティブ期間
28f 変化平均
200 パッキング工程
200a 信号分離工程
200b スケジューリング工程
201 計測回路挿入工程
201a 計測部品生成工程
201b 制御部品生成工程
201c 転送回路生成工程
201d マージ工程
201e サンプリングサイクル算出工程
202 エミュレーション工程
203 抽出工程
204 電力解析工程
210 データ構造情報
211 計測値ログ
300 ハードウェアシミュレータ
301 制御コンピュータ
301−1 制御ソフトウェア
301a 0クリア信号
302 記憶装置
303 PCIバス
310 被評価回路
311 対象信号
320 計測回路
321 信号変化検出回路
322 加算器
323 レジスタ
324 ラッチ
325 ゲート端子
326 0クリア端子
327 評価結果
330 転送回路
331 セレクタ
332 イネーブルラッチ
333 選択信号
334 セレクタ
340 制御部
341 サンプル期間カウンタ
342 期間設定/判定部
342a トリガ信号
343 測定切り替えタイミング判定部
344 転送タイミング判定部
345 転送タイミング判定部
345 0クリアラッチ
346 基準クロック
347 結果出力タイミング信号
348 0クリア信号
349 書き込み要求信号
350 FIFOバッファ
351 FIFOバッファ
360 バスインタフェース
370 エミュレーションシステム制御部
400 被評価回路
410 部分回路
411 部分回路
412 部分回路
420〜422 クロック
430〜432 レジスタ出力
510 対応テーブル
511 クロックドメイン
512 信号名
513 ビット数
514 クロックドメイン
600 ネーミングルール
601 回路データ
900 消費電力値
Claims (3)
- 消費電力の評価対象となる被評価回路と、前記被評価回路から前記消費電力の算出の基礎となる評価情報を得る1つ以上の計測手段と、バッファ用記憶手段と、前記評価情報を該バッファ用記憶手段に転送する転送手段と、外部装置と接続される外部バスと接続されるバスインターフェースと、を有するハードウェアエミュレータを含むシミュレーションシステムにおける消費電力評価方法であって、
前記外部装置へ前記評価情報を転送する場合に前記外部バスのバス幅に応じた転送単位毎の前記評価情報の格納方法が定義されたデータ構造情報に基づいて設定された前記転送手段により、前記各計測手段で得られた前記評価情報を順次前記バッファ用記憶手段に格納し、前記バスインターフェースにより、前記バッファ用記憶手段に前記バス幅に応じた転送単位分の前記評価情報が格納された評価情報であるパック化評価情報を前記外部バスへ出力する第1工程と、
前記外部装置により、前記データ構造情報に基づいて、前記パック化評価情報を復元する第2工程と、
を含むことを特徴とする消費電力評価方法。 - 請求項1記載の消費電力評価方法において、
前記計測手段が2以上の場合、該2以上の計測手段のうちの第1の計測手段による前記評価情報の採取と、該2以上の計測手段のうちの第2の計測手段により採取された前記評価情報の外部への取り出し動作とを並行して行うことを特徴とする消費電力評価方法。 - 消費電力の評価対象となる被評価回路と、前記被評価回路から前記消費電力の算出の基礎となる評価情報を得る1つ以上の計測手段と、バッファ用記憶手段と、前記評価情報を該バッファ用記憶手段に転送する転送手段と、外部装置と接続される外部バスと接続されるバスインターフェースと、を有するハードウェアエミュレータをプログラム可能な論理回路上に構築して前記被評価回路のシミュレーションを行うことで、前記評価情報を収集する消費電力評価システムであって、
前記シミュレーションでは、
前記外部装置へ前記評価情報を転送する場合に前記外部バスのバス幅に応じた転送単位毎の前記評価情報の格納方法が定義されたデータ構造情報に基づいて設定された前記転送手段により、前記各計測手段で得られた前記評価情報を順次前記バッファ用記憶手段に格納し、前記バスインターフェースにより、前記バッファ用記憶手段に前記バス幅に応じた転送単位分の前記評価情報が格納された評価情報であるパッキング評価情報を前記外部バスへ出力する工程と、
前記外部装置により、前記データ構造情報に基づいて、前記パック化評価情報を復元する工程と、
を実行することを特徴とする消費電力評価システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005288409A JP4330573B2 (ja) | 2005-09-30 | 2005-09-30 | 消費電力評価方法、消費電力評価システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005288409A JP4330573B2 (ja) | 2005-09-30 | 2005-09-30 | 消費電力評価方法、消費電力評価システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007102337A JP2007102337A (ja) | 2007-04-19 |
JP4330573B2 true JP4330573B2 (ja) | 2009-09-16 |
Family
ID=38029245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005288409A Expired - Fee Related JP4330573B2 (ja) | 2005-09-30 | 2005-09-30 | 消費電力評価方法、消費電力評価システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4330573B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5098517B2 (ja) * | 2007-08-23 | 2012-12-12 | 富士通株式会社 | 消費電力解析方法及び消費電力解析装置 |
JP4985466B2 (ja) * | 2008-02-26 | 2012-07-25 | 富士通株式会社 | 消費電力見積もり方法、消費電力見積もり装置、および消費電力見積もりプログラム |
JP5262442B2 (ja) * | 2008-08-27 | 2013-08-14 | 富士通株式会社 | 設計支援プログラム、設計支援装置、および設計支援方法 |
JP2010182241A (ja) * | 2009-02-09 | 2010-08-19 | Fujitsu Ltd | 評価方法および評価装置 |
JP5123255B2 (ja) * | 2009-06-09 | 2013-01-23 | 株式会社東芝 | アーキテクチャ検証装置 |
JP5785725B2 (ja) | 2010-10-15 | 2015-09-30 | 富士通株式会社 | 電力見積装置、電力見積方法及びプログラム |
-
2005
- 2005-09-30 JP JP2005288409A patent/JP4330573B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007102337A (ja) | 2007-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8356272B2 (en) | Logic verification module apparatus to serve as a hyper prototype for debugging an electronic design that exceeds the capacity of a single FPGA | |
US6961872B2 (en) | Microcomputer and debugging system | |
EP2165280B1 (en) | Recording of emulation states using replicated memory elements | |
US10180850B1 (en) | Emulating applications that use hardware acceleration | |
US20020152061A1 (en) | Data processing system and design system | |
JP4330573B2 (ja) | 消費電力評価方法、消費電力評価システム | |
US10691856B1 (en) | System design flow with runtime customizable circuits | |
EP2743848A1 (en) | Verification module apparatus for debugging software and timing of an embedded processor design that exceeds the capacity of a single FPGA | |
US10678976B2 (en) | Generic protocol analyzer for circuit design verification | |
Monson et al. | New approaches for in-system debug of behaviorally-synthesized FPGA circuits | |
JP5065113B2 (ja) | 等価性検証方法、等価性検証プログラム及び等価性検証プログラムの生成方法 | |
JP2001014298A (ja) | 合成及びレイアウトのオーバーヘッドが少ないsatソルバー・アーキテクチャーを得るための方法及び装置 | |
JP2011100388A (ja) | トレース情報収集装置,トレース情報処理装置,およびトレース情報収集方法 | |
CN115686655A (zh) | 用于gpu ip验证的联合仿真系统 | |
JP2006139729A (ja) | ハードウェア検証用プログラミング言語モデル生成装置、ハードウェア検証用プログラミング言語モデル生成方法、コンピュータシステム、ハードウェアシミュレーション方法、制御プログラムおよび可読記憶媒体 | |
US6077305A (en) | Latch inference using dataflow analysis | |
CN117113908B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
KR20040063846A (ko) | 다양한 검증 플랫폼들의 통합 사용을 지원하는 검증 장치및 이를 이용한 검증 방법 | |
US7502728B1 (en) | Code coverage testing in hardware emulation | |
US20090234620A1 (en) | Verification support apparatus, verification support method, and computer product | |
Goli et al. | Through the looking glass: Automated design understanding of SystemC-based VPs at the ESL | |
JP5454349B2 (ja) | 性能推定装置 | |
Wu et al. | SCCL: An open-source SystemC to RTL translator | |
CN114239445A (zh) | 一种信号采集方法及芯片验证平台 | |
US11281830B2 (en) | Method and apparatus for performing profile guided optimization for first in first out sizing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090310 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090420 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090616 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090616 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130626 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130626 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |