JP5785725B2 - 電力見積装置、電力見積方法及びプログラム - Google Patents

電力見積装置、電力見積方法及びプログラム Download PDF

Info

Publication number
JP5785725B2
JP5785725B2 JP2011025564A JP2011025564A JP5785725B2 JP 5785725 B2 JP5785725 B2 JP 5785725B2 JP 2011025564 A JP2011025564 A JP 2011025564A JP 2011025564 A JP2011025564 A JP 2011025564A JP 5785725 B2 JP5785725 B2 JP 5785725B2
Authority
JP
Japan
Prior art keywords
power
circuit
value
calculation unit
signal
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
Application number
JP2011025564A
Other languages
English (en)
Other versions
JP2012104091A (ja
Inventor
佐々木 貴行
貴行 佐々木
博久 古手川
博久 古手川
貴志 徳江
貴志 徳江
佐藤 茂
茂 佐藤
達郎 宮川
達郎 宮川
隆司 藤田
隆司 藤田
潤一 新妻
潤一 新妻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Socionext Inc
Original Assignee
Fujitsu Ltd
Socionext Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd, Socionext Inc filed Critical Fujitsu Ltd
Priority to JP2011025564A priority Critical patent/JP5785725B2/ja
Priority to US13/273,837 priority patent/US9021289B2/en
Publication of JP2012104091A publication Critical patent/JP2012104091A/ja
Application granted granted Critical
Publication of JP5785725B2 publication Critical patent/JP5785725B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、電力見積装置、電力見積方法及びプログラムに関する。
電子システムでは、消費電力の評価が重要である。消費電力は、製品単価と製品の品質の両面に深い影響を及ぼす。
従来、評価対象の回路における各信号線の電力と、各セル(例えば、AND回路、OR回路などの論理合成における最小単位)内部の電力を算出して、これらを合算することで全体の動的な電力を算出する手法があった。
各信号線の電力は、例えば、論理シミュレーションで各信号線における信号の変化密度D(変化回数/秒)を求め、1/2×C(信号の負荷容量)×V(電圧)2×Dを算出することで求められる。
従来、上記の信号の変化回数を、計測回路(例えば、エミュレータなど)を用いて計測する手法が知られている。また、計測回路量を削減するために、複数の信号線の信号変化回数を1つのカウンタでカウントする手法などが知られている。
ところで、今日ではスクラッチ開発が減少している。システム・アーキテクトはブラックボックスな部品を適切に組み合わせてシステムを構成し、構成したシステムが、クライアントが要求する性能・電力・品質を達成していることを評価する。このため、システムの電力を直観的に把握することが重要であり、システムレベルで長時間にわたる電力見積が求められている。
特開2002−288257号公報 特開2009−53747号公報 特開2007−102337号公報 特開平08−249372号公報 特開平2−171861号公報 特開平8−6980号公報 特開2006−285835号公報 米国特許第6151568号明細書 国際公開第2008/038617号 国際公開第2008/081669号 特開2008−234240号公報 特開2008−204350号公報 特開2001−318960号公報
しかしながら、従来の電力見積手法では、大規模な回路に対して長時間(例えば、秒オーダ以上)にわたって精度よく電力の消費傾向を解析することが困難であった。
その理由として、例えば、計測回路量や計測データの増大、電力見積時間の長大化が挙げられる。また、安易に観測する信号線を適当に間引くなどの処置をとってしまうと、電力の見積精度が低下してしまう。
発明の一観点によれば、各回路範囲における単位時間当たりの信号の変化回数の平均値を取得して、前記回路範囲ごとの電力係数を算出する、または、単位時間当たりの信号の変化回数の平均値が1の場合の前記回路範囲ごとの電力係数を算出する電力係数算出部と、前記回路範囲において指定された観測ポイントの信号の単位時間当たりの変化回数の平均値に対する、前記回路範囲に含まれる各信号線の信号の単位時間当たりの変化回数の平均値の比を補正係数として算出する補正係数算出部と、前記回路範囲ごとの前記補正係数と前記電力係数をもとに、前記回路範囲ごとの電力値を算出する電力値算出部と、を備えた電力見積装置が提供される。
開示の電力見積装置、電力見積方法及びプログラムによれば、大規模な回路に対して長時間にわたって精度よく電力解析が可能になる。
第1の実施の形態の電力見積装置の一例を示す図である。 電力見積装置の動作の一例を示すフローチャートである。 第2の実施の形態の電力見積装置の一例を示す図である。 電力算出処理部の機能ブロックの一例を示す図である。 電力見積装置で扱うデータの一例である。 観測ポイントの一例を示す図である。 電力見積装置の処理の流れの一例を示すフローチャートである。 ユーザによる回路範囲の指定例を示す図である。 ユーザによる回路範囲の他の指定例を示す図である。 設計データの一例を示す図である。 サンプリング時間の一例を示す図である。 生成された平均変化密度データの一例を示す図である。 階層を有する設計データの一例を示す図である。 電力係数データの一例を示す図である。 補正係数を算出するためのシミュレーション期間の一例を示す図である。 補正係数データの一例を示す図である。 電力見積結果の一例を示す図である。 電力見積結果を電力波形にした例を示す図である。 平均変化密度の算出処理の一例を示すフローチャートである。 電力係数の算出処理の一例を示す図である。 電力見積部の動作の一例を示すフローチャートである。 補正係数の算出処理の一例の流れを示すフローチャートである。 回路範囲ごとの観測ポイントの信号の平均変化密度リストの一例を示す図である。 回路範囲ごとの計算対象要因に該当する信号線の信号の平均変化密度リストの一例を示す図である。 生成される計測回路数と、計測回路による被評価回路に対しての面積の増加率を示す図である。 本実施の形態の電力見積装置により算出された電力値と、比較例の電力値との相関関係を示す図である。 設計データA中の各ブロックでの決定係数の結果を示す図である。 本実施の形態の電力見積装置により算出された電力値と比較例の電力値との誤差を示す図である。 シミュレーション時間における、本実施の形態の電力見積装置により算出された電力値と、比較例の電力値との誤差を示す図である。 決定係数が小さかったブロックの回路構造の一例を示す図である。 観測ポイントの他の例を示す図である。 RAMのアドレス端子、入力データ端子、出力データ端子の信号の平均変化密度の計算例を示す図である。 RAMのアドレス端子、入力データ端子、出力データ端子の信号の平均変化密度と、電力の期待値との相関関係の例を示す図である。 RAMを有するブロックの例を示す図である。 RAMが支配的な影響を及ぼす範囲の例を示す図である。 RAMが支配的な影響を及ぼす範囲の電力の期待値と、そのRAMのアドレス端子、入力データ端子及び出力データ端子の信号の平均変化密度の相関関係の例を示す図である。 RAMを複数のフリップフロップを含むモジュールでモデル化した例である。 ブロック80に含まれるフリップフロップの入力データ端子とブロック80に含まれるRAMのアドレス端子と入力データ端子の信号の平均変化密度の計算例を示す図である。 フリップフロップの入力データ端子とRAMのアドレス端子と入力データ端子の信号の平均変化密度と、電力の期待値との相関関係の例を示す図である。 ブロック80に含まれるフリップフロップの入力データ端子とRAMのアドレス端子と入力データ端子及び出力データ端子の信号の平均変化密度の計算例を示す図である。 フリップフロップの入力データ端子と各RAMのアドレス端子と入力データ端子と出力データ端子の信号の平均変化密度と、電力の期待値との相関関係の例を示す図である。 電力見積装置のハードウェアの一例を示す図である。
以下、本発明の実施の形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の電力見積装置の一例を示す図である。
電力見積装置1は、電力係数算出部2、補正係数算出部3、電力値算出部4を有している。
電力係数算出部2は、各回路範囲における単位時間当たりの信号の変化回数の平均値を取得して、回路範囲ごとの電力係数を算出する。
ここで、回路範囲は、例えば、電力見積対象となる回路において、複数のセルと信号線を含む回路ブロックである。例えば、この回路範囲は、組み合わせ回路を含む。
以下では、信号の単位時間当たりの変化回数を変化密度と呼び、その平均値を平均変化密度と呼ぶ。
電力係数算出部2は、各回路範囲における信号線の信号の平均変化密度が、ある値である場合の電力値(信号線とセルの電力値の合計)を、電力係数として回路範囲ごとに算出する。電力係数算出部2は、例えば、ユーザから回路範囲ごとの適当な平均変化密度を取得する。
詳細は後述するが、電力係数算出部2は、取得した平均変化密度と、評価対象回路の設計データなどを含む評価用データをもとに、各回路範囲のセルと信号線の電力値を求めて電力係数の算出を行う。
これにより、本質的には、各回路範囲の1平均変化密度当たりの電力が求まる。本実施の形態では既存電力見積技術を利用する例を示している。セルごとに算出されているセル内部の信号の1変化当たりの電力量(=1変化密度当たりの電力)と、配線の信号の1変化当たりの電力量1/2×C(信号の負荷容量)×V(電圧)2より、各回路範囲の信号の1変化当たりの電力量を算出してもよい。
補正係数算出部3は、回路範囲において指定された観測ポイントの信号の平均変化密度に対する、回路範囲に含まれる各信号線の信号の平均変化密度の比を補正係数として算出する。
観測ポイントには、例えば、フリップフロップの入力データ端子、出力データ端子、回路内でランダムに選択された信号、ネットリストにおけるバス表記の信号などがある。
例えば、補正係数算出部3は、電力見積期間よりも短い期間の論理シミュレーションにより、補正係数を算出するのに望ましい期間(例えば、補正係数算出対象の回路範囲がよく動作している期間)の波形データを取得する。そして補正係数算出部3は、取得した波形データから、回路範囲において、例えば、ユーザに指定された観測ポイントにおける平均変化密度と、例えば、回路範囲に含まれる各信号線の平均変化密度を求める。さらに、補正係数算出部3は、上記の2種の平均変化密度の比(各信号線の平均変化密度/観測ポイントにおける平均変化密度)による補正係数を算出する。
なお、補正係数算出部3は、エミュレータを用いて、波形データを取得するようにしてもよいし、ソフトウェアの論理シミュレータを用いて波形データを取得するようにしてもよい。
電力値算出部4は、回路範囲ごとの補正係数と電力係数をもとに、回路範囲ごとの電力値を算出する。詳細は後述するが、電力値算出部4は、例えば、論理シミュレーションのあるサンプリング区間の波形データから求められた回路範囲ごとの観測ポイントにおける平均変化密度と、ユーザから入力された平均変化密度の比に、電力係数と補正係数を掛ける。言いかえると、回路範囲ごとの観測ポイントにおける平均変化密度と、この回路範囲の信号の1平均変化密度当たりの電力と補正係数を掛けていることになる。これにより、電力値算出部4は、そのサンプリング区間の電力値を回路範囲ごとに算出する。
以下、電力見積装置1の動作をまとめる。
図2は、電力見積装置の動作の一例を示すフローチャートである。
ステップS1:電力係数算出部2が、各回路範囲における平均変化密度を取得して、回路範囲ごとの電力係数を算出する。
ステップS2:補正係数算出部3が、回路範囲において指定された観測ポイントの信号の平均変化密度に対する、回路範囲に含まれる各信号線の信号の平均変化密度の比を補正係数として算出する。
ステップS3:電力値算出部4が、回路範囲ごとの補正係数と電力係数をもとに、回路範囲ごとの電力値を算出する。
以上のような電力見積装置1によれば、例えば、セルよりも大きい回路範囲ごとに、指定された観測ポイントにおける信号の平均変化密度をもとに電力値を求めることができる。これにより、計測するデータ量、計測時間が削減され、大規模な回路で長時間にわたって電力の消費傾向を解析することが可能になる。また、回路範囲において指定された観測ポイントの信号の平均変化密度に対する、回路範囲に含まれる各信号線の信号の平均変化密度の比である補正係数を用いることで、少ない観測ポイントを採用しても精度よく電力の見積を行うことができる。
(第2の実施の形態)
図3は、第2の実施の形態の電力見積装置の一例を示す図である。
電力見積装置10は、例えば、コンピュータであり、電力算出処理部11、電力見積部12、エミュレータ制御部13を有している。各部はそれぞれソフトウェアにて実現可能である。
電力算出処理部11は、電力見積部12とエミュレータ14を用いて、評価対象の回路で消費される電力を見積もる。電力算出処理部11が出力する電力見積結果には、長時間にわたって多サンプリングな波形データを生成可能な情報が含まれる。電力算出処理部11は、以下のような2つの機能ブロックを有している。
図4は、電力算出処理部の機能ブロックの一例を示す図である。
電力算出処理部11は、変化密度算出部11aと、電力算出部11bを有している。
変化密度算出部11aは、回路範囲ごとに、各観測ポイントの信号の単位時間当たりの変化回数の平均値である、平均変化密度を算出する。
電力算出部11bは、第1の実施の形態の電力見積装置1の電力係数算出部2、補正係数算出部3、電力値算出部4の機能を有しており、回路範囲ごとの電力を算出する。
図3の説明に戻り、電力見積部12は、セルまたは信号線単位で電力の見積を行う。
エミュレータ制御部13は、電力見積装置10と接続されたエミュレータ14を制御する。
エミュレータ14は、設計データをもとにしたエミュレーション(以下、シミュレーションという場合もある)を行う。エミュレータ14は、例えば、コンピュータの拡張バス(例えば、PCI(Peripheral Component Interconnect)Express)の拡張デバイスとして電力見積装置10に接続される。
エミュレータ14は、エミュレータ制御部13で指示された動作を完了すると、割り込み信号をエミュレータ制御部13に送出する。エミュレータ制御部13から次の命令が送られてくると、エミュレータ14は、再び、その命令に従った動作を行う。このようなシーケンスを繰り返してシミュレーションが実行される。エミュレータ14に送られる命令は、例えば、ユーザによりエミュレータ制御部13用のスクリプト言語で記述される。
電力見積装置10には記憶装置15が接続されている。記憶装置15は、例えば、ハードディスクドライブ(HDD:Hard Disk Drive)、またはRAM(Random Access Memory)などである。記憶装置15は、エミュレーション用データ、評価用データ、電力見積結果、電力算出処理部11で加工されたエミュレーション用データ、エミュレータ14での計測結果データなど、各種データを記憶する。また、記憶装置15は、過去の計測結果を蓄積するようにしてもよい。過去の計測結果を利用することで、設計の早い段階で電力見積をすることができる。記憶装置15は、電力見積装置10内にあってもよい。
なお、エミュレータ14の代わりに、FPGA(Field-Programmable Gate Array)を用いたボードを適用してもよい。FPGAを用いたボードも、拡張バスに接続される拡張デバイスとして電力見積装置10に接続される。FPGAを用いたボードを利用する場合、例えば、ユーザが通信部分を設計する。その場合、エミュレータ制御部13は、例えば、ユーザが設計したデバイスドライバとなる。そして、FPGAを用いたボードに載せるテストベンチに、デバイスドライバと通信できるターゲット回路が組み込まれる。さらに、例えば、デバイスドライバとテストベンチ間のプロトコル(例えば、ユーザによって設計される)を処理する機能が、デバイスドライバとテストベンチに実装される。
エミュレータ14には設計データにおける各信号線の波形データを取得する機能がある。一方、FPGAを用いたボードでは、前述のようにデバイスドライバとテストベンチはユーザ責任で開発するものなので、このような機能は入れないのが一般的である。そのため、波形データを使う処理については、エミュレータや、RTL(Register Transfer Level)またはゲートレベルのソフトウェアの論理シミュレーションなどの代替え手段により実行されるものとする。
図5は、電力見積装置で扱うデータの一例である。
エミュレーション用データ20には、例えば、評価対象回路の設計データ21、テストベンチ22、テストデータ23、制御スクリプト24が含まれる。
設計データ21は、例えば、ネットリストやRTLなどで記述されたデータである。テストベンチ22は、設計データ21に対するテストベンチであり、エミュレータ14に搭載される。テストデータ23は、例えば、RAMの初期化データや、外部からの入力データなどであり、制御スクリプト24にしたがって、設計データ21やテストベンチ22上のRAMにロードされる。制御スクリプト24は、エミュレータ14の制御の流れが記述されたスクリプトである。
電力算出処理部11で加工された加工済エミュレーション用データ25には、例えば、前述の設計データ21、テストデータ23の他に、加工済テストベンチ26、加工済制御スクリプト27が含まれる。これらについては後述する。
電力算出処理部11に入力される評価用データ28には、評価用設計データ29、テクノロジライブラリ30、配線容量計算用データ31が含まれる。
評価用設計データ29は、ネットリストまたはRTLなどで記述された評価用の設計データである。評価用設計データ29は、エミュレーション用データ20に含まれる設計データ21と同じであってもよいし、異なっていてもよい。テクノロジライブラリ30は、セルに関する特性をまとめたものであり、セルの電力特性などの情報が含まれ、電力値を算出する際に参照される。
配線容量計算用データ31は、配線容量を求めるためのデータである。どのようなデータかは、電力見積部12による電力の見積方法に依存する。配線容量計算用データ31の例としては、実配線容量データ32、仮配線負荷データ33、物理ライブラリ34などがある。
実配線容量データ32は、レイアウト結果から抽出される配線容量から得られる。実配線容量データ32は、例えばSPEF(Standard Parasitic Exchange Format)データである。仮配線負荷データ33は、回路の面積とファンアウト数から容量を決定するものであり、例えば、テクノロジライブラリ30に含まれている。物理ライブラリ34は、論理合成ツールのPLE(Physical Layout Estimation)で配線容量計算に用いられるものであり、例えばLEF(Library Exchange Format)データである。
このような配線容量計算用データ31は、信号線における電力値を算出する際に参照される。
なお、評価用データ28は、レイアウト設計途中(レイアウト完成前)のプロトタイプのデータを用いたものであってもよい(詳細は後述する)。
図6は、観測ポイントの一例を示す図である。
回路範囲40は、組み合わせ回路41、フリップフロップ42,43,44を有している。なお、フリップフロップ42〜44において、クロックの配線については図示を省略している。
観測ポイントは、例えば、フリップフロップ42〜44の入力データ端子42a,43a,44aまたは、出力データ端子42b,43b,44bなどである。
以下、電力見積装置10の動作を説明する。
なお、電力消費の発生要因としては、クロックツリーでの電力消費、RAMまたはROMでの電力消費、レジスタでの電力消費、組み合わせ回路(クロックツリーを除く)での電力消費などがある。以下では、組み合わせ回路を、計算対象とする電力消費の発生要因(以下計算対象要因と呼ぶ)として説明する。また、観測ポイントとして、フリップフロップの入力データ端子を採用する。
図7は、電力見積装置の処理の流れの一例を示すフローチャートである。
変化密度算出部11aは、例えば、ユーザにより指定される回路範囲をもとに、回路範囲指定ファイルを生成する(ステップS10)。
図8は、ユーザによる回路範囲の指定例を示す図である。
ユーザは、例えば、ブロックへのパス名で回路範囲を指定する。例えば、“A0.B1”は、ブロックA0に含まれるブロックB1へのパスを示している。この場合、ブロックB1が回路範囲として設定される。パス名としてA0が指定されると、例えば、ブロックA0内のブロックB0,B1,B2以外の部分が1つの回路範囲として設定される。
さらに特定の条件を付加してもよい。例えば、組み合わせ回路の電力見積であれば、「指定されたブロック中の組み合わせ回路(クロックツリーを除く)に含まれるセルと信号線を回路範囲とする」といった条件をつけるようにしてもよい。
図9は、ユーザによる回路範囲の他の指定例を示す図である。
ユーザは、グループを構成する、図9に示すようなセルのパス名(属性がセルインスタンスのもの)や信号のパス名(属性がネットインスタンスのもの)を指定することで、回路範囲を指定してもよい。この指定方法では、ブロックの界面にとらわれない回路範囲の指定が可能になる。例えば、データパスや制御系に分割して信号の変化回数の合計値を求めることができる。
なお、以下の説明では、前者の、ブロックへのパス名で回路範囲を指定する場合を例にして説明する。なお、パス名で指定されないブロックは、その他のブロックとして回路範囲が設定される。
図10は、設計データの一例を示す図である。チップ50は、ブロックA,B,C,D,E,Fを有している。
ここで、ユーザによってブロックA、ブロックB、ブロックCが指定された場合、これらのブロックがそれぞれ回路範囲として設定され、例えば、指定されなかった破線で示されるブロックD、ブロックE、ブロックF、ブロックA〜ブロックF以外のチップ部分は1つの回路範囲として設定される。
以上のようにして回路範囲が指定され、回路範囲指定ファイルが生成されると、変化密度算出部11aは、ユーザから、電力見積の開始時間、サンプリング時間、サンプリング数の入力を受け付ける(ステップS11)。
以下の説明では、開始時間を0ms、サンプリング時間を1ms、サンプリング数を4とするが、これに限定されるわけではない。例えば、変化密度算出部11aは、時間ごとにサンプリング時間などを変えてもよい。
図11は、サンプリング時間の一例を示す図である。
指定時間区間0ms〜10ms、10ms〜100ms、100ms〜110msごとに、サンプリング時間が1ms、10ms、0.5msと変化している。
ステップS11の処理が終わると、変化密度算出部11aは、平均変化密度を算出する(ステップS12)。変化密度算出部11aは、図5に示したようなエミュレーション用データ20を参照して、観測ポイントを指定する観測ポイントリストを生成する。そして、変化密度算出部11aは、後述するシミュレーションによる観測ポイントでの信号の変化回数の計測結果をもとに、回路範囲ごと、サンプリング区間ごとに平均変化密度を算出する。この処理によって、例えば、以下のような平均変化密度データが生成される。
図12は、生成された平均変化密度データの一例を示す図である。
回路範囲ごと、サンプリング区間ごとの平均変化密度(変化回数(単位はメガ)/秒)が示されている。なお、図12では、図10に示したようにブロックA、ブロックB、ブロックCが回路範囲として設定されている場合について示されている。例えば、ブロックAのサンプリング区間0ms〜1msでは、観測ポイントの信号の平均変化密度は10M(変化回数/秒)であることが示されている。
“<Other>”は、例えば、図10において、回路範囲として指定されなかったブロックD、ブロックE、ブロックF、ブロックA〜ブロックF以外のチップ部分を示している。平均変化密度の算出方法の詳細については後述する。
図13は、階層を有する設計データの一例を示す図である。
図13では、ブロックKにブロックJ、ブロックLが含まれ、ブロックJに、さらに、ブロックH、ブロックIが含まれる場合が示されている。
ブロックH、ブロックI、ブロックJ、ブロックK、ブロックLがいずれも回路範囲として指定されている場合、変化密度算出部11aは、ブロックH、ブロックI、ブロックLについては観測ポイントの平均変化密度を求める。ブロックJについては、変化密度算出部11aは、ブロックH、ブロックI以外の部分にある各観測ポイントの平均変化密度を求める。ブロックKについては、変化密度算出部11aは、ブロックJ、ブロックL以外の部分にある観測ポイントの平均変化密度を求める。
指定範囲の平均変化密度を単純に算出するという方法もあり得る。例えば、ブロックJ、ブロックKの平均変化密度はこれらのブロックに含まれる観測ポイントの信号線の平均変化密度を求めるとしてもよい。このようにすると、子供のブロックには観測ポイントが多くあるが直下の階層には観測ポイントが少ない場合であっても、子供のブロックの観測ポイントの平均変化密度で代用した効果が得られる。後述の(実験例1)ではこのような計算方法で計算した結果を示す。
ステップS12の処理が終わると、電力算出部11bは、電力見積部12を用いて、電力係数の算出を行う(ステップS13)。また、このとき電力算出部11bは、評価用データ28を参照して、計算対象要因に属する信号線のリストを生成する。
電力算出部11bは、電力係数の算出の際、回路範囲指定ファイル、観測ポイントリスト及び、図5に示したような評価用データ28を参照する。電力算出部11bは、さらに、例えば、ユーザから、各回路範囲における信号の平均変化密度を取得し、電力見積部12を用いて、取得した平均変化密度の各回路範囲の電力値である電力係数を算出し、電力係数データとして出力する。電力係数/ユーザが指定した平均変化密度は、1平均変化密度当たりの電力量となるので、評価用データ28の中の評価用設計データ29の回路と、使用されるテクノロジに関する係数となっており、テクノロジの変化などの際に参考データとして用いることができる。
図14は、電力係数データの一例を示す図である。
図14では、回路範囲ごと、指定された変化密度で算出される電力係数の一例が示されている。回路範囲A(例えば、図10に示したブロックAに対応している)の電力係数は1,000[mW]、平均変化密度は1[変化回数(単位はギガ)/秒]であることが示されている。
このように平均変化密度値とこの平均変化密度値を使った場合の電力値が明記されているので、1平均変化密度当たりの電力係数(1平均変化密度当たりの電力量)が求まるデータが含まれている。
なお、図13に示したような階層を有する設計データの場合、電力算出部11bは、以下のように電力係数を算出する。ブロックH、ブロックI、ブロックJ、ブロックK、ブロックLがいずれも回路範囲として指定されている場合、電力算出部11bは、ブロックH、ブロックI、ブロックLについては電力係数を求める。ブロックJの電力係数については、電力算出部11bは、ブロックH、ブロックI以外の部分の電力係数を用いて求める。ブロックKの電力係数については、電力算出部11bは、ブロックJ、ブロックL以外の部分の電力係数を用いて求める。
ステップS13の処理が終わると、電力算出部11bは、回路範囲指定ファイル、評価用データ28を参照して、回路範囲ごとの補正係数を算出して補正係数データとして出力する(ステップS14)。なお、電力算出部11bは、過去に算出され記憶装置15に格納されている補正係数がある場合には、その補正係数を読み出してもよい。
電力算出部11bは、例えば、電力見積期間よりも短い期間のシミュレーションにより取得した波形データをもとに、回路範囲の観測ポイントによる平均変化密度と、回路範囲の計算対象要因に属する各信号線の平均変化密度の比を補正係数として算出する。
図15は、補正係数を算出するためのシミュレーション期間の一例を示す図である。
例えば、電力算出部11bは、シミュレーションにより、補正係数を算出するのに望ましい期間t(例えば、補正係数算出対象の回路範囲がよく動作している期間)の波形データを取得する。この期間tは、電力見積期間Tよりも十分短いため、取得する波形データのデータ量は少なくて済む。
電力算出部11bは、取得した波形データから、回路範囲において、例えば、ユーザに指定された観測ポイントにおける平均変化密度と、例えば、回路範囲に含まれる全ての信号線の平均変化密度を求める。さらに、補正係数算出部3は、上記の2種の平均変化密度の比(全信号線の平均変化密度/指定された観測ポイントにおける平均変化密度)による補正係数を算出する。
なお、電力算出部11bは、ユーザの経験により指定された補正係数を入力して利用するようにしてもよい。
図16は、補正係数データの一例を示す図である。
例えば、回路範囲Aの場合、補正係数が1.06となっている。これは、観測ポイントにおける信号よりも計算対象要因に属する各信号線の信号のほうが、平均で6%ほどよく変化する傾向を持っていることを示している。
ステップS14の処理が終わると、電力算出部11bは、回路範囲別にサンプリング区間ごとの電力値を算出し、電力見積結果として出力する(ステップS15)。電力算出部11bは、回路範囲ごと、サンプリング区間ごとに求められた平均変化密度(図12参照)と、指定された平均変化密度における電力係数(図14参照)と、回路範囲ごとに求められた補正係数(図16参照)をもとに、以下の式で電力値を計算する。
回路範囲Xサンプリング区間Yの電力値=((回路範囲Xサンプリング区間Yの平均変化密度)/(回路範囲Xの平均変化密度))×(回路範囲Xで指定された平均変化密度における電力係数)×(回路範囲Xにおける補正係数)…(式1)
以下に、回路範囲Aでサンプリング区間が0ms〜1msでの電力値の計算例を示す。
図12より、回路範囲Aでサンプリング区間が0ms〜1msの平均変化密度は、10[M変化回数/秒]である。図14より、回路範囲Aで指定された平均変化密度は1[G変化回数/秒]で、その時の電力係数は1[W]である。また、図16より、回路範囲Aの補正係数は1.06である。これらの値を(式1)に当てはめると、10[M変化回数/秒]/1[G変化回数/秒]×1[W]×1.06=10.6[mW]となる。
以上のように、回路範囲Aのサンプリング区間が0ms〜1msの電力値、10.6[mW]が算出される。
図17は、電力見積結果の一例を示す図である。
電力算出部11bは、(式1)を用いて、全回路範囲において全サンプリング区間での電力値を算出し、図17に示すような電力見積結果を出力する。電力算出部11bは、図17に示したような電力見積結果を、以下に示すような電力波形のデータとして出力するようにしてもよい。
図18は、電力見積結果を電力波形にした例を示す図である。横軸がシミュレーション時間[ms]、縦軸が電力値[mW]を示している。
各回路範囲A,B,C,<Other>の電力値が、グラフで示されている。電力算出部11bが、図18に示すようなグラフを生成して出力することで、ユーザは、時間ごとの電力の推移を容易に把握できるようになる。
なお、図13に示したような階層を有する設計データの場合、電力算出部11bは、以下のように電力値を算出する。ブロックH、ブロックI、ブロックJ、ブロックK、ブロックLがいずれも回路範囲として指定されている場合、電力算出部11bは、ブロックH、ブロックI、ブロックLについては、上記の方法で電力値を求める。ブロックJの電力値については、電力算出部11bは、ブロックH、ブロックI以外の部分の電力値を算出して、ブロックH及びブロックIの電力値と加算して求める。ブロックKの電力値については、電力算出部11bは、ブロックJ、ブロックL以外の部分の電力値を算出して、ブロックJ及びブロックLの電力値と加算して求める。
(平均変化密度算出処理の詳細)
以下、図7に示したステップS12の平均変化密度の算出処理の詳細を説明する。
図19は、平均変化密度の算出処理の一例を示すフローチャートである。
変化密度算出部11aは、まず、観測ポイントリストを生成する(ステップS20)。本実施の形態では、フリップフロップの入力データ端子を観測ポイントとした例を取り上げているので、変化密度算出部11aは、フリップフロップの入力データ端子のリストを生成し、出力する。
図5に示したようなエミュレーション用データ20の設計データ21が、ネットリストの場合、変化密度算出部11aは、最初に、テクノロジライブラリ30からフリップフロップのセル名を抽出する。次に、変化密度算出部11aは、ネットリストを電力見積装置10内の図示しないメモリに展開して、抽出したセル名に対応するセルのインスタンスへのパスを全て抽出する。さらに、変化密度算出部11aは、各々のインスタンスの入力データ端子へのパスを抽出して、観測ポイントリストを生成する。
設計データ21が、RTLの場合、変化密度算出部11aは、最初にエミュレーション用のコンパイルを実行して、次に、エミュレーション用のテクノロジライブラリ30にマッピングされたネットリストを生成する。以下、変化密度算出部11aは、設計データ21が、ネットリストだった場合と同じ処理を行い、観測ポイントリストを生成する。
次に、変化密度算出部11aは、計測回路データを生成する(ステップS21)。変化密度算出部11aは、回路範囲指定ファイルを参照して、観測ポイントリストの信号線(本例ではフリップフロップの入力データ端子)をグルーピングする。そして、変化密度算出部11aは、グルーピングした結果をもとに、各グループの入力データ端子の信号を計測するための計測回路データを生成する。なお、グルーピングを考慮した計測回路に関しては特許文献2、計測回路を生成する方法については、特許文献3に示されており、ここでは詳細な説明を省略する。
なお、変化密度算出部11aは、グルーピングの際、回路範囲内の全ての信号線をグループ化する。または、変化密度算出部11aは、回路範囲内の信号線を複数のグループに分けてグループ化する。このようにすることで、回路範囲の平均変化密度を算出するために十分なデータが計測でき、且、回路量が小さい計測回路が生成される。
次に、変化密度算出部11aは、エミュレーション用データ20のテストベンチ22(図5参照)に、生成した計測回路データを埋め込んで、加工済テストベンチ26を生成する(ステップS22)。また、変化密度算出部11aは、制御スクリプト24に計測結果を抽出するための記述を追加して、加工済制御スクリプト27を生成する。
その後、変化密度算出部11aは、加工済エミュレーション用データ25をエミュレータ制御部13に送る。これにより、エミュレータ制御部13の制御のもと、エミュレータ14によるエミュレーションが実行される(ステップS23)。エミュレーションの結果、計測結果データが生成される。
変化密度算出部11aは、生成された計測結果データを加工して、図12に示したような回路範囲ごと、サンプリング区間ごとの平均変化密度データを生成する(ステップS24)。計測結果データには、回路範囲ごとの観測ポイントの信号の変化回数の合計値が、サンプリングポイントごとに記載されている。そのため、回路範囲に含まれている観測ポイント数を使って、観測ポイント1つ当たりの信号の変化密度、つまり、平均変化密度を求める。
以上のような処理によって、回路範囲ごと、サンプリング区間ごとの平均変化密度が算出される。
(電力係数算出処理の詳細)
次に、図7に示したステップS13の電力係数の算出処理の詳細を説明する。
図20は、電力係数の算出処理の一例を示す図である。
電力係数算出部60は、図4に示した電力算出部11bに含まれる一機能を示している。なお、図20では、電力見積部12及び電力係数算出部60を、電力見積ツール、電力係数算出ツールといったソフトウェアで実現する場合を想定している。
電力見積部12は、評価用データ28と、電力見積用制御スクリプト70を参照して、電力計算用ライブラリ71とリンクして電力見積を行い、全信号線/全セルの電力値/変化密度データ72を生成する。
電力見積部12は、例えば、信号線及びセルを検索する機能、検索した信号線やセルに対して、変化密度の設定及び変化密度の参照を行う機能と、電力値を参照する機能と、信号線やセルがクロックツリーに所属するか否かを判定できる機能を有する。
電力見積用制御スクリプト70は、電力見積部12を制御する手続きが書かれたものである。この指示にそって、電力見積部12では計算が行われる。
電力計算用ライブラリ71は、電力の算出処理に使用する関数を集めたライブラリである。CAD(Computer Aided Design system)ツールの制御インタフェースは、CADツール用の制御インタフェースの共通化のために開発されたTCL(Tool Command Language)と呼ばれる言語に準拠していることが多い。CAD開発者はTCLインタプリタをCADツールに組み込み、CADツールの制御コマンドをTCLインタプリタに組み込む。TCL言語は通常のプログラミング言語並みの記述力を持っており、C/C++言語ともリンクできるので、ユーザ定義コマンドを作成するのが容易である。電力計算用ライブラリ71では、例えば、以上のようなTCLを用いて作られた関数がまとめられている。
全信号線/全セルの電力値/変化密度データ72は、全信号線に対する電力値と変化密度及び、全セルに対する電力値のデータである。また、全信号線/全セルの電力値/変化密度データ72は、付加的なデータをもっていてもよい。例えば、付加的データとして、その信号線及びセルがクロックツリーに所属しているか否かを示すフラグ(組み合わせ回路(クロックツリーを除く)に含まれるセルまたは信号線かどうかを判別できる情報)などがある。ここでは、セルがクロックツリーに含まれるとは、セルのいずれかの端子がクロックツリーと繋がっている場合であることとする。
図21は、電力見積部の動作の一例を示すフローチャートである。
電力見積部12は、電力見積用制御スクリプト70の記述にしたがって、例えば、以下の動作を行う。
電力見積部12は、評価用データ28を参照し(ステップS30)、例えば、ユーザによる平均変化密度の設定を受け付ける(ステップS31)。例えば、電力計算用ライブラリ71に、各信号線に対する引数として与えられる平均変化密度を指定するコマンドが登録されていれば、電力見積部12は、ユーザの指示のもとステップS31の処理で、そのコマンドをコールして、ユーザに所望の設定を行わせる。
次に、電力見積部12は、設定された平均変化密度と、参照された評価用データ28をもとに電力見積を実行する(ステップS32)。
各信号線の電力値は、例えば、設定された平均変化密度D1から、1/2×C(信号の負荷容量)×V(電圧)2×D1を算出することで求められる。信号の負荷容量などは、評価用データ28から取得される。
また、各セルの電力値は、例えば、テクノロジライブラリ30に記載されている各セルの電力特性から取得可能である。テクノロジライブラリ30には、例えば、ある入力信号の変化によりセルの出力の変化が1回起きた場合の電力量Eが、テーブルとして記載されている。このテーブルは1種類とは限らない。例えば、テクノロジライブラリ30は、2入力1出力のセルであれば、第1の入力の変化により出力が変化した場合の電力量と、第2の入力の変化により出力が変化した場合の電力量が記載されたテーブルを含んでいる。
電力見積部12は、上記テーブルと、設定された平均変化密度を用いて各セルの電力値を算出する。そして、全信号線と全セルの電力値を合算することで、全体の電力値を見積もる。
そして、電力見積部12は、電力見積結果から、全信号線及びセルの電力値及び変化密度値と、信号線及びセルがクロックツリーに含まれるか含まれないかのフラグを抽出して、全信号線/全セルの電力値/変化密度データ72を出力する(ステップS33)。
例えば、電力計算用ライブラリ71に、電力見積結果から上記の各情報を抽出してファイルにセーブするコマンドが登録されていれば、電力見積部12は、ユーザの指示のもと、そのコマンドをコールして所望の情報を抽出する。これにより、所望の全信号線/全セルの電力値/変化密度データ72が生成される。
以上のような処理で、全信号線/全セルの電力値/変化密度データ72が生成されると、電力係数算出部60は、全信号線/全セルの電力値/変化密度データ72から、電力係数データ74を生成し、出力する。
具体的には、電力係数算出部60は、回路範囲指定ファイル73を参照して、回路範囲ごとに、全信号線/全セルの電力値/変化密度データ72を分類する。さらに、電力係数算出部60は、クロックツリーに所属していない信号線及びセルについて、各々の回路範囲ごとに平均の電力値を算出する。そして、電力係数算出部60は、回路範囲名、算出した電力値、平均変化密度を電力係数データ74として出力する。また、電力係数算出部60は、観測する対象の信号線(クロックツリーに所属しない信号線)のリストである信号線リスト75を生成し、出力する。
(補正係数算出処理の詳細)
次に、図7に示したステップS14の補正係数の算出処理の詳細を説明する。
図22は、補正係数の算出処理の一例の流れを示すフローチャートである。
最初に、エミュレータ制御部13は、エミュレーション用データ20を用いて、エミュレータ14を制御して、論理シミュレーションを行う(ステップS40)。このとき電力算出部11bは、エミュレータ制御部13を介してエミュレータ14から波形データを取得する。
例えば、電力算出部11bは、補正係数を算出するのに望ましい期間(例えば、補正係数算出対象の回路範囲がよく動作している期間)の波形データを取得する。例えば、電力算出部11bが、シミュレーション結果からフリップフロップの入力データ端子の動作率を検出して、動作率が高い期間などを、波形データを取得する期間としてもよい。また、ユーザが経験により波形を取得する期間を決めてもよい。
次に、電力算出部11bは、回路範囲ごとに、回路範囲に含まれる観測ポイントの信号の平均変化密度を算出する(ステップS41)。ステップS41の処理では、電力算出部11bは、まず、前述した信号線リスト75に含まれている各々の信号線に対して、取得した波形データを使って、変化密度を算出する。具体的には、電力算出部11bは、波形データから、各信号の変化回数を求め、変化回数/シミュレーション時間を計算することにより変化密度を算出する。次に、電力算出部11bは、前述した回路範囲指定ファイル73と、変化密度算出部11aが生成した観測ポイントリストを使って、回路範囲ごとの観測ポイントリストを作成する。そして、電力算出部11bは、回路範囲ごとに、観測ポイントリストにある信号線における信号の変化密度を平均して、回路範囲ごとの観測ポイントの信号の平均変化密度リストを生成し、出力する。
図23は、回路範囲ごとの観測ポイントの信号の平均変化密度リストの一例を示す図である。
図23に示す平均変化密度リストの例では、回路範囲A、回路範囲B、回路範囲Cごとの観測ポイントの信号の平均変化密度の一例が示されている。
次に、電力算出部11bは、回路範囲ごとの計算対象要因(ここでは組み合わせ回路)に属する信号線の信号の平均変化密度を算出する(ステップS42)。ステップS42の処理では、電力算出部11bは、まず、前述の回路範囲指定ファイル73と、信号線リスト75を参照して、回路範囲ごとの計算対象要因に該当する信号線のリストを作る。そして、電力算出部11bは、回路範囲ごとの計算対象要因に該当する信号線の信号の変化密度の平均値を算出し、回路範囲ごとの計算対象要因に該当する信号線の信号の平均変化密度リストを生成し、出力する。
図24は、回路範囲ごとの計算対象要因に該当する信号線の信号の平均変化密度リストの一例を示す図である。
図24に示す平均変化密度リストの例では、回路範囲A、回路範囲B、回路範囲Cごとの計算対象要因に該当する信号線の信号の平均変化密度の一例が示されている。図23に示した観測ポイントの信号の平均変化密度リストとは、回路範囲A、回路範囲Cにおいて、平均変化密度の値が異なっている。
次に、電力算出部11bは、補正係数を算出する(ステップS43)。電力算出部11bは、回路範囲ごとに、観測ポイントの信号の平均変化密度と、計算対象要因に該当する信号線の信号の平均変化密度の比を求める。
図23、図24に示した例の場合、回路範囲Aでは、観測ポイントの信号の平均変化密度は7.5[M変化回数/秒]、計算対象要因に該当する信号線の信号の平均変化密度は8[M変化回数/秒]なので、8/7.5≒1.06という補正係数が得られる。同様にして、回路範囲Bについては7/7=1、回路範囲Cについては4/3.5≒1.14という補正係数が得られる。
電力算出部11bは、以上のような回路範囲ごとの補正係数を用いることで、図17や図18に示したように、回路範囲別にサンプリング区間ごとの電力値を算出することができる。
なお、電力算出部11bは、記憶装置15に格納されている、過去に上記の方法で算出された補正係数を再利用してもよいし、ユーザの経験により指定された補正係数を入力して利用するようにしてもよい。
また、電力算出部11bは、実際に電力見積を行った結果から、電力係数データを求めるようにしてもよい。
なお、上記では、エミュレータ14を用いて波形データを取得する例を示しているが、ソフトウェア論理シミュレーションや、ブロックレベルの論理シミュレーションによって波形データを取得するようにしてもよい。例えば、電力算出部11bは、ソフトウェア論理シミュレータの出力波形データより、指定された回路範囲の信号線の平均変化密度を算出してもよい。また、回路範囲ごとに、波形データを取得するのに望ましい期間が異なる場合には、電力算出部11bは、複数の期間の波形データを取得するようにしてもよい。
また、上記の第2の実施の形態の説明では、説明の都合上、重複する処理を複数のステップで書いているが、まとめて処理してもよい。
なお、図5で示したような評価用データ28は、レイアウト初期段階に作成されるプロトタイプのデータをもとにしたものであってもよい。レイアウト設計では、最初に回路量の把握やレイアウト設計の計画を立てるために、動作検証が十分に行えていない、正常動作しないデータを使ってレイアウト設計を行うことがある。レイアウト設計途中で得られたデータ(プロトタイプのデータ)でも、配線容量や回路構成がレイアウト完成後のものと似ているので、電力算出部11bが電力係数を算出する際の評価用データ28として用いることができる。
プロトタイプは設計の比較的早い時期に設計されるため、設計の早い時期に、レイアウトツールが実際にレイアウトした結果による配線容量データを使った電力の見積が、上記と同様に可能になる。
また、上記の説明では、電力見積のサンプリング時間をユーザが指定する場合について説明したが、変化密度算出部11aが、動的にサンプリング時間を変更するようにしてもよい。変化密度算出部11aは、例えば、スクリプトなどでシミュレーションの動作状況(例えば、計測回路のカウンタの特定ビットに1が立つかどうか、など)を観測する。そして、変化密度算出部11aは、例えば、よく動いている時間帯では、サンプリング時間を短くするなどの変更を行う(図11参照)。これにより、電力消費が大きい時間帯では、短いサンプリング時間での詳細な電力見積が行え、逆に電力消費が小さい時間帯では、広いサンプリング時間で電力見積を行うなど、長時間の電力見積に適したサンプリング時間の制御が可能になる。
また、上記の説明では、各サンプリング時間で電力値を算出する際に用いる補正係数を同じものとしたが、例えば、サンプリング時間または所望の時間ごとに、図22で示したような処理を行って補正係数を更新するようにしてもよい。
(実験例1)
以下、数メガゲートサイズの被評価回路の実設計データ(以下設計データAと呼ぶ)に対して、本実施の形態の電力見積方法を適用した結果を示す。
同期設計であることを考えると、フリップフロップは組み合わせ回路内のどのパスにおいても比較的に等間隔に出現する可能性が高い。そのため、フリップフロップのデータ端子に対して入出力される信号は、組み合わせ回路の代表的な信号であると考えられる。また、入力データ端子のほうが出力データ端子よりも変化回数が大きくなる。そのため、上記実施の形態で述べたように、以下の実験でも、観測ポイントは、フリップフロップの入力データ端子とする。
図25は、生成される計測回路数と、計測回路による被評価回路に対しての面積の増加率を示す図である。
図25では、サンプリング期間=10us、サンプリング数=30,000で信号の変化回数をカウンタで計測する場合で、3つのケースの場合について生成される計測回路数と、計測回路による被評価回路に対しての面積の増加率が示されている。
ケース1は、例えば、階層構造となっている設計データAの最上層のモジュール(トップモジュール)からの深さが3までのブロックを回路範囲とし、信号線を最大1024本ずつグループ化してカウンタで計測を行う計測回路を適用した場合を示している。ケース1では、各グループを計測する部分を1つの計測回路とすると、計測回路数は、例えば、1,097個程度となり、その場合の増加率は56%であった。
ケース2は、電力見積したいブロックに絞ってパス指定を行って回路範囲を設定し、信号線を最大1024本ずつグループ化してカウンタで計測を行う場合を示している。ケース2では、例えば、計測回路数は350個程度に減少し、その場合の増加率は52%であった。
ケース3は、電力見積したいブロックに絞ってパス指定を行って回路範囲を設定し、信号線を最大8096本ずつグループ化してカウンタで計測を行う場合を示している。ケース3では、例えば、計測回路数は85個程度に減少し、その場合の増加率は51%であった。
なお、サンプリング期間=10us、サンプリング数=30,000とした場合、シミュレーション時間は300ms程度となり、短い。
シミュレーション時間を30秒とすると、上記の3つのケースと比べ、シミュレーション時間が100倍となるので、この間の信号の変化回数をカウントするためのカウンタのビット数は7ビット増える。ケース3の場合、シミュレーション時間が300msではカウンタのビット数は28ビットなので、シミュレーション時間が30秒になると、カウンタのビット数は35ビットになり、回路量が25%程度増加する。
しかし、ケース3では、回路の約99%が1サイクル当たりの変化回数を算出する回路部分である。したがって、カウンタ部分の増分は無視できる。また、この数値は、観測用のフリップフロップ(約14%)を含んだ値なので観測用のフリップフロップを無視すると、非カウンタ回路部は観測ポイント数に比例するので、増加率は44%〜48%程度になる。
このように、本実施の形態の電力見積方法によれば、従来では被評価回路に対して、数倍から十数倍の面積となっていた計測回路の面積を大幅に削減することができる。
また、以下の理由によって、電力見積用のデータ量を小さくすることができる。
上記のケース3の場合、カウンタのビット数の最大値が28ビットであるので、1ワード=4バイトである。計測回路数が85個の場合、1サンプリングの格納領域は128ワードである。サンプリングポイントは30,000なので、計測結果のデータ量は、4×128×30,000=15.4[MB]になる。ケース1の場合、計測結果のデータ量は4×2,048×30,000=264[MB]になる。
サンプリング時間が1msの場合、ケース3では1ワード=5バイトになり、計測結果のデータ量は25%増になる。ケース1は1ワード=32ビットなので変わらない。したがって、どのケースでも、計測結果のデータ量は、300[MB]以下になる。
また、取得する波形データについてもデータ量を小さくできる。シミュレーション時間が300msの場合、設計データAに対するシミュレーションで得られる波形データのデータ量は2[GB]程度である。300msは、補正係数を作成する処理には十分な時間である。
以上のように、従来では(例えば、特許文献1,5)、電力見積用のデータ量は[TB]オーダだったのが、本実施の形態では、数[GB]オーダに削減することができる。
また、本実施の形態によれば、以下のように、電力見積時間を短時間で行うことができる。
図22に示した、ステップS41、ステップS42の処理では、波形データを解析して信号ごとの変化密度を算出する処理が行われる。この処理を行う電力算出部11bを、スクリプト言語であるRuby1.9を用いて実現した場合、処理に係る時間は、4,930サンプリングポイントで2分程度、30,000サンプリングでは12分程度であった。
また、電力見積部12による、信号線ごとの変化密度データから電力を算出する処理は、4,930サンプリングポイントで5分程度を要し、30,000サンプリングでは28分程度かかった。
したがって、30,000サンプリングポイントでは、電力見積処理は、40分程度で終了する。以上のように、従来では現実的な時間で終わらなかった処理が、1時間以内で終わるようになった。大幅な改善である。
電力見積部12による計算では、信号線ごとの変化密度データから電力を算出する処理を1回やればよいので、短時間で計算を終わらせることができる。
また、図22に示したステップS41、ステップS42の処理では、例えば、観測ポイントをフリップフロップの入力データ端子などとして、あまり多くの観測ポイントを観測する必要がないので、現実的な時間で計算することができる。
次に、本実施の形態における電力見積精度を検討した結果を示す。電力見積精度を検討するにあたり、以下の実験を行った。
(1)電力算出部11bが、設計データAに対する過去の電力見積結果より、主要ブロックの電力に変動が生じる箇所を選び、10us×30ポイントの波形データを取得する。
(2)電力算出部11bが、指定された回路範囲の電力係数と平均変化密度を算出する。なお、精度を比較するため、設計データAの各ブロックが、A.B0(ブロックA内にブロックB0がある)のように包含関係があっても、電力算出部11bは、ブロックA全体の観測ポイントの電力係数と平均変化密度を算出するものとした。
(3)電力算出部11bが、(2)の結果に対して、補正係数を1とした場合の電力値の計算結果を算出する。
なお、サンプリングポイント数を30ポイントとした論理シミュレーションで取得される波形データから各信号線における電力値を算出し、また、各セルにおける電力値を算出し、これらを合算することにより算出した電力値を、比較例として用いる。
また、この実験では、0.05[mW]以上の電力値があるポイントを有効サンプルとした。
図26は、本実施の形態の電力見積装置により算出された電力値と、比較例の電力値との相関関係を示す図である。
図26では、チップ全体についての相関図が示されている。横軸が本実施の形態の電力見積装置10により算出された電力値[mW]であり、縦軸が比較例の電力値[mW]である。図26中のドットは、各々のサンプリングポイントを表している。実線と点線の直線は線形近似を表している。
実線の直線は、y=0.8822x+3.4353で示される。点線の直線は、y=0.9223xで示される。R2は決定係数である。一般に、|R|≧0.7以上で強い相関があると言われている。ここでは|R|≧0.9程度以上であればよいと仮定して、決定係数R2≧0.8を基準にした。
決定係数はMicrosoft Excel(登録商標)2007のLinEst関数を使って算出した。LinEst関数の仕様上、切片が0に固定できないため、切片が小さいことを目の子で確認した実線の直線を用いて計算を行った。実線の直線では、R2=0.9582であり、切片が0の点線の直線の決定係数R2=0.9562と同程度の値が得られた。
図27は、設計データA中の各ブロックでの決定係数の結果を示す図である。
円グラフ内の数字はブロック数を示している。図27に示すように、94%程度のブロックがR2≧0.8であり、基準値を満たしている。決定係数0.4のブロックは、ユーザ設計部分よりも、テストなど後の設計工程で挿入された回路が多く、例外として扱うべき回路だった。決定係数0.7台の2ブロックのうち、電力が大きいブロック(以下ブロックPと略す)は、2つのサブブロックで構成されており、各サブブロックはともに決定係数が0.9以上だった。これらの補正係数がサブブロック間で異なるため0.7台になっている。したがって、適切な回路範囲を指定すれば精度のよい電力見積が可能といえる。もう1つのブロックは電力がごく小さいため検討していない。
前述のように、ブロックPのサブブロックは0.9台であるが、上位ブロックの電力はサブブロックの電力を使って算出されるので、補正係数を使えば、ブロックPの適切な電力値が求まる。
また、波形データを使って補正係数を算出する際、対象の回路範囲の観測ポイントの信号がある程度動いていれば、質のよい補正係数が求められ、高い精度の電力見積が保証できる。
図28は、本実施の形態の電力見積装置により算出された電力値と比較例の電力値との誤差を示す図である。円グラフ内の数字はブロック数を示している。
なお、このデータは補正係数を1(つまり、観測ポイントの信号の平均変化密度=計算対象要因の全信号線の信号の平均変化密度と仮定)とした場合について示してある。図28に示すように、80%程度のブロックが、絶対値誤差40%以内、全てが100%以内である。
決定係数がよいことは、波形データをとるポイントの自由度が高いことを示している。波形データを使って電力を見積もるポイントを減らしても精度劣化が起きにくい。したがって、波形データを用いた電力見積の長時間化による精度劣化のリスクが低い。
図29は、シミュレーション時間における、本実施の形態の電力見積装置により算出された電力値と、比較例の電力値との誤差を示す図である。
横軸が、時間[ns]、縦軸は電力値[mW]と、誤差[%]である。図29に示すように、時間が経過しても、低い誤差に維持されていることがわかる。
以上のように、本実施の形態の電力見積装置10で算出された電力値は、比較例として示した電力値と相関が強いことがわかった。したがって、観測ポイントとしてフリップフロップの入力データ端子を適用した本実施の形態の電力見積装置10による電力見積方法によれば、十分な電力見積精度が期待できることがわかった。よって、従来では、観測信号数を大きく削減した場合、電力見積精度が低下する可能性があったが、本実施の形態の電力見積装置10による電力見積方法では、上記のように、精度の良さについても定量的に実証できた。
また、本実験例では補正係数を1としたが、図22に示したような処理で補正係数を適切に設定することできるようになれば、更に有効性が高まる。
なお、上記の実験例では、フリップフロップの入力データ端子を観測ポイントとしたが、フリップフロップの出力データ端子も、入力データ端子と同様、比較例との電圧値との一致性が高い。出力データ端子のデータ変化はRTL設計データでも容易に観測しやすい。したがって、フリップフロップの出力データ端子も観測ポイントの有力な候補である。
以上のように、本実施の形態の電力見積装置10及び電力見積方法により、大規模回路に対して、長時間にわたって、組み合わせ回路のように多くの信号線を含む計算対象要因であっても、精度よく高速に電力見積が可能となる。
(実験例2)
上記の実験例1において、決定係数が0.4となったブロックについて調べたところ以下のような回路構造となっていたことがわかった。
図30は、決定係数が小さかったブロックの回路構造の一例を示す図である。
ブロック80は、サブブロックとしてブロック81,82と、RAM83−1,83−2,…,83−nを有している。ブロック81は、ブロック80の中の代表的なブロックであり、この部分の決定係数は0.91であった。ブロック80中のブロック81以外の回路部分(以下回路部84という)を調べると、リピータバッファ、テスト回路、複数のRAMのデータ出力線を選択するための回路などが多量に含まれていた。回路部84内の論理回路の数は、ブロック81と同程度であった。ただ、回路部84に含まれるフリップフロップは、テスト回路内部のフリップフロップや設定レジスタなどであり、ブロック81とRAM83−1〜83−n間の信号線(図示せず)の変化密度と相関があるようなものがなかった。
したがって、回路部84のフリップフロップの入力データ端子に対して入力される信号は、回路部84の電力傾向を示す代表的な信号であるとはいえず、電力を見積もる上で、観測ポイントとして採用するには適切ではなかった。
そこで、回路部84の観測ポイントとして以下のものを採用した。
図31は、観測ポイントの他の例を示す図である。
RAM83−1は、nビットのアドレス線83aに接続されるアドレス端子addr、mビットのデータ入力線83bに接続される入力データ端子data_in、mビットのデータ出力線83cに接続される出力データ端子data_outを有している。
これらの端子を観測ポイントとして採用した。RAM83−1には、他にチップイネーブル信号、ライトイネーブル信号、クロック信号などが入力される端子があるが、それらについては観測ポイントとはしなかった。その他のRAM83−2〜83−nについてもアドレス端子、入力データ端子、出力データ端子を観測ポイントとした。
図32は、RAMのアドレス端子、入力データ端子、出力データ端子の信号の平均変化密度の計算例を示す図である。
図32では、図30に示したRAM83−1〜83−nのアドレス端子、入力データ端子、出力データ端子の信号の平均変化密度の計算例が示されている。また、図30の回路部84における電力の期待値(回路部84の全信号線を用いた電力見積結果)が示されている。
横軸は時間[ns]を示し、左の縦軸は電力値[mW]、右の縦軸は平均変化密度[変化回数/秒]を示している。
RAM83−1〜83−nのアドレス端子、入力データ端子、出力データ端子の信号の平均変化密度は、図32に示すように、回路部84における電力の期待値に対して、よい相関を示している。
図33は、RAMのアドレス端子、入力データ端子、出力データ端子の信号の平均変化密度と、電力の期待値との相関関係の例を示す図である。
横軸は回路部84における電力の期待値[mW]を示し、縦軸はRAM83−1〜83−nのアドレス端子、入力データ端子、出力データ端子の信号の平均変化密度を示している。図33中のドットは、各々のサンプリングポイントを表している。実線の直線は線形近似を表している。
この直線は、横軸をx、縦軸をyとしたとき、y=1.4614×106xで示される。Microsoft Excel(登録商標)2007のグラフツールの線形近似曲線描画機能を使って算出された決定係数R2は約0.99であった。すなわち、RAM83−1〜83−nのアドレス端子、入力データ端子、出力データ端子の信号の平均変化密度は、回路部84の電力傾向をよく表すデータになっていることがわかる。
そこで、変化密度算出部11aは、図19のステップS20の処理において、RAMが多量に含まれるブロック(例えば、図30の回路部84)に対しては、観測ポイントとして、RAMのアドレス端子、入力データ端子、出力データ端子を選択する。
例えば、変化密度算出部11aは、ある回路範囲であるブロックにおけるRAMとフリップフロップ数の比率やRAMの容量などに応じて、観測ポイントを選択する。例えば、あるブロックにおけるRAMの数がフリップフロップ数に対して所定の比率を超えて存在する場合には、変化密度算出部11aは、そのブロックの観測ポイントとして、RAMのアドレス端子、入力データ端子、出力データ端子を選択する。そうでない場合には、変化密度算出部11aは、そのブロックの観測ポイントとして、フリップフロップの入力データ端子を選択する。
以上のように観測ポイントを選択して、電力見積を行うことにより、図30に示したようなブロック80がある場合でも、精度よく電力を見積もることができる。
ところで、RAMは、必ずしも図30のように、あるブロックに集めて配置されるように設計されるとは限らない。例えば、以下のように配置される場合もある。
図34は、RAMを有するブロックの例を示す図である。
ブロック85は、RAM86−1,86−2と、論理回路87−1,87−2,87−3を有している。RAM86−1は論理回路87−2に接続され、RAM86−2は論理回路87−1に接続され、論理回路87−1は論理回路87−2,87−3に接続されている。
このようなブロック85の場合、図30に示したブロック80のように、単純に、代表的なブロック81とその他の回路部84に分けることはできない。そこで、このようなブロック85に対しても精度のよい電力見積を行うため、以下のような検討を行った。
図34のようなRAM86−1,86−2への入出力は、実際にはレイアウト設計などを考慮して、論理回路87−1,87−2中のフリップフロップで区切られていることが多い。
図35は、RAMが支配的な影響を及ぼす範囲の例を示す図である。
例えば、RAM86−1が支配的な影響を及ぼす範囲として以下のような範囲がある。まず、RAM86−1のアドレス端子addrと、図34に示した論理回路87−2中の最寄りのフリップフロップ群88−1の間の論理領域(以下ロジックコーンという)89−1である。
2つ目は、入力データ端子data_inと論理回路87−2中の最寄りのフリップフロップ群88−2の間のロジックコーン89−2である。
そして、3つ目は、出力データ端子data_outと論理回路87−2中の最寄りのフリップフロップ群88−3間のロジックコーン89−3である。
論理回路87−2において、ロジックコーン89−1〜89−3の外には、RAM86−1を制御するセルが含まれ、ロジックコーン89−1〜89−3内には、リピータバッファなど、RAM86−1に入力されるアドレスや入出力データの変化に影響を受けるセルが多い。
図36は、RAMが支配的な影響を及ぼす範囲の電力の期待値と、そのRAMのアドレス端子、入力データ端子及び出力データ端子の信号の平均変化密度の相関関係の例を示す図である。
横軸はRAMによる影響を受ける範囲(例えば、図35のロジックコーン89−1〜89−3)の電力の期待値[mW]を示している。縦軸は、そのRAMのアドレス端子、入力データ端子及び出力データ端子の信号の平均変化密度[変化回数/秒]を示している。
図36中のドットは、各々のサンプリングポイントを表している。直線は線形近似を表している。この直線は、横軸をx、縦軸をyとしたとき、y=2.0702×106xで示される。前述の線形近似曲線描画機能を使って算出された決定係数R2は約0.98であった。
すなわち、前述の図30で示した回路部84における電力の期待値と、RAMのアドレス端子、入力データ端子、出力データ端子の信号の平均変化密度との相関を調べた結果(決定係数R2が約0.99)に対して、遜色のない結果が得られた。
そこで、変化密度算出部11aは、図7のステップS10の処理において、指定された回路範囲から、上記のようなロジックコーンで示されるRAMによる影響が支配的な範囲と、その他の範囲を切り分け、異なる回路範囲指定ファイルを生成する。
そして、変化密度算出部11aは、図19のステップS20の処理において、RAMによる影響を受ける範囲を切り出した回路範囲に対しては、観測ポイントとして、RAMのアドレス端子、入力データ端子、出力データ端子を選択する。その他の回路範囲に対しては、変化密度算出部11aは、前述のように、例えば、フリップフロップの入力データ端子または出力データ端子を観測ポイントとして選択する。
これにより、RAMによる影響を受ける範囲が多く存在する場合でも、精度よく電力を見積もることができる。
また、図30に示したようなRAMが集約されているような設計になっていない場合でも、RAMによる影響を考慮した精度のよい電力見積を行うことができる。
ところで、RAMもフリップフロップと同様に、クロック信号に同期して動作するものであることを考慮して、以下のようにRAMを複数のフリップフロップを含むモジュールとして扱うようにしてもよい。
図37は、RAMを複数のフリップフロップを含むモジュールでモデル化した例である。このモデル化では、RAMを、入力データはレジスタで受けとって、出力データはレジスタの出力を用いる回路でモデル化している。フリップフロップとRAM間にも同期設計の制約がかかっているはずなので、RAMを図37のようにみなせると考えたためである。この仮定が正しいとすると、アドレス端子、入力データ端子、出力データ端子などをFFの入力データ端子や出力データ端子としてみなしてよいことになる。つまり、RAMの端子とフリップフロップを同列に扱ってよいことになる。そこで、この仮定が妥当かを実験的に調べた。以下、実験結果を記載する。
モジュール90は、nビットのアドレス線ADDRに接続されたフリップフロップ群91、mビットのデータ入力線DINに接続されたフリップフロップ群92、mビットのデータ出力線DOUTに接続されたフリップフロップ群93を有している。
このモジュール90では、RAMのアドレス端子がフリップフロップ群91のフリップフロップ(図37では“FF”と表記している)の入力データ端子として扱われる。また、RAMの入力データ端子が、フリップフロップ群92のフリップフロップの入力データ端子として扱われる。また、RAMの出力データ端子が、フリップフロップ群93のフリップフロップの出力データ端子として扱われる。
図30で示したブロック80に含まれる図示しないフリップフロップの入力データ端子とRAMのアドレス端子addrと入力データ端子data_inの信号の平均変化密度を算出した結果、以下のようになった。
図38は、ブロック80に含まれるフリップフロップの入力データ端子とブロック80に含まれるRAMのアドレス端子と入力データ端子の信号の平均変化密度の計算例を示す図である。
ブロック80の各RAMを前述のようなモジュールとみなして、フリップフロップの入力データ端子とRAMのアドレス端子addrと入力データ端子data_inの信号の平均変化密度の計算例が示されている。RAMのアドレス端子addrは、図37のフリップフロップ群91の入力データ端子に相当し、RAMの入力データ端子data_inは、図37のフリップフロップ群92の入力データ端子に相当している。また、そのブロックにおける電力の期待値(ブロックの全信号線を用いた電力見積結果)が示されている。
横軸は時間[ns]を示し、左の縦軸は平均変化密度[変化回数/秒]、右の縦軸は電力値[mW]を示している。
この結果をもとに、電力の期待値と平均変化密度の相関を計算すると以下のようになった。
図39は、フリップフロップの入力データ端子とRAMのアドレス端子と入力データ端子の信号の平均変化密度と、電力の期待値との相関関係の例を示す図である。
横軸はブロック80の電力の期待値[mW]を示し、縦軸はフリップフロップの入力データ端子とRAMのアドレス端子と入力データ端子の信号の平均変化密度[変化回数/秒]を示している。図39中のドットは、各々のサンプリングポイントを表している。実線の直線は線形近似を表している。
この直線は、横軸をx、縦軸をyとしたとき、y=250357xで示される。前述の線形近似曲線描画機能を使って算出された決定係数R2は約0.89であった。この値は、基準とした0.8を超えており、フリップフロップの入力データ端子とRAMの入力データ端子とアドレス端子の信号の平均変化密度は、電力の期待値に対してよい相関を示している。この結果より、RAMを図37のようにモデル化することは妥当であると考えられる。
そこで、変化密度算出部11aは、図19のステップS20の処理において、たとえば、以下の処理を行う。すなわち、変化密度算出部11aは、RAMとフリップフロップ数の比率などをもとに、RAMが多量に含まれると判定したブロックに対して、フリップフロップの入力データ端子に加えて、RAMの入力データ端子とアドレス端子を、観測ポイントとして追加する。また、変化密度算出部11aは、任意のRAMを含むブロックに対して、フリップフロップの入力データ端子に加えて、RAMの入力データ端子とアドレス端子を、観測ポイントとして追加するようにしてもよい。
これにより、RAMが含まれるブロックがある場合でも、特に多量に含まれるブロックであっても、精度よく電力を見積もることができる。
また、RAMが含まれるブロックについても、観測ポイントとしてRAMの入力データ端子やアドレス端子をフリップフロップの入力データ端子と同列に扱えるので、RAMの各端子の信号を計測する計測回路を、フリップフロップの端子の信号計測用のものと別に設けなくてもよい。そのため、計測回路の増大を抑制できる。
なお、フリップフロップの入力データ端子とRAMのアドレス端子と入力データ端子の信号の平均変化密度と電力の期待値との相関は、フリップフロップの入力データ端子とRAMのアドレス端子、入力データ端子及び出力データ端子の信号の平均変化密度と、電力の期待値との相関よりもやや低い。
これは、図37に示したモジュール90のデータ出力線DOUTに接続されるフリップフロップ(フリップフロップ群93)の出力データ端子における信号の変化を考慮していなかったからと考えられる。フリップフロップで入力データ端子を観測することは、入力データ端子の信号変化傾向を観測するのみならず、出力データ端子の変化傾向をも観測している効果があると考えた。さらに、図37中のフリップフロップ群93の入力データ端子は観測することができないので、フリップフロップ群93の出力データ端子に相当する、RAMの出力データ端子data_outで代用しても精度があげられるのではないかと考えた。そこで、data_out端子を観測対象に加える実験を行った。以下、実験結果を記載する。
図40は、ブロック80に含まれるフリップフロップの入力データ端子とRAMのアドレス端子と入力データ端子及び出力データ端子の信号の平均変化密度の計算例を示す図である。
フリップフロップの入力データ端子と、各RAMのアドレス端子addrの信号と入力データ端子data_inの信号と、出力データ端子data_outの信号の平均変化密度の計算例が示されている。また、ブロック80の電力の期待値が示されている。
横軸は時間[ns]を示し、左の縦軸は平均変化密度[変化回数/秒]、右の縦軸は電力値[mW]を示している。
この計算例をもとに、電力の期待値と平均変化密度の相関を計算すると以下のようになった。
図41は、フリップフロップの入力データ端子と各RAMのアドレス端子と入力データ端子と出力データ端子の信号の平均変化密度と、電力の期待値との相関関係の例を示す図である。
横軸はブロック80の電力の期待値[mW]を示している。縦軸はフリップフロップの入力データ端子とRAMのアドレス端子と入力データ端子と出力データ端子の信号の平均変化密度[変化回数/秒]を示している。図41中のドットは、各々のサンプリングポイントを表している。実線の直線は線形近似を表している。
この直線は、横軸をx、縦軸をyとしたとき、y=270560xで示される。前述の線形近似曲線描画機能を使って算出された決定係数R2は約0.92であった。すなわち、データ出力線に接続されるフリップフロップの出力データ端子の信号を考慮にいれると、平均変化密度は電力の期待値に対して、さらによい相関を示すことがわかった。この結果より、図37中のフリップフロップ群93の入力データ端子の代用として、フリップフロップ群93の出力データ端子に相当する、RAMの出力データ端子data_outを観測ポイントに加えるアイディアは有効であると考えられる。
そこで、変化密度算出部11aは、フリップフロップの入力データ端子に加えて、RAMのアドレス端子と入力データ端子と、出力データ端子を観測ポイントとして追加する。
これにより、RAMが含まれるブロックがある場合でも、特に多量に含まれるブロックであっても、精度よく電力を見積もることができる。
また、図37に示したモデル、及びRAMの出力データ端子を入力データ端子の代用とみなすアイディアにより、観測ポイントとしてRAMのアドレス端子や入力データ端子や出力データ端子をフリップフロップの入力データ端子と同列に扱える。そのため、RAMの各端子の信号を計測する計測回路を、フリップフロップの端子の信号の計測用のものと別に設けなくてもよくなり、計測回路の増大を抑制できる。
以上のように、図37に示したモデル化の妥当性、図37のフリップフロップ群の入力データ端子の観測を出力データ端子で代用することの妥当性が実験的に実証された。したがって、RAMの端子をフリップフロップの入力データ端子と同列に扱ってよい。
RAMのアドレス端子、入力データ端子、出力データ端子の信号は、よく変わる部分なので、この部分を上記のように考慮して観測ポイントを設定することで、より精度のよい、電力見積が可能となる。
なお、上記の説明では、RAMのアドレス端子と入力データ端子及び出力データ端子を観測する例を示したが、データマスク端子についても同様に扱えることは容易に想像しうる。
(電力見積装置のハードウェア例)
図42は、電力見積装置のハードウェアの一例を示す図である。
図1または図3で示した電力見積装置1,10は、例えば、図42に示すようなコンピュータ100で実現される。コンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。CPU101は、バス107に接続された各部と連携して、図3に示した電力算出処理部11、電力見積部12、エミュレータ制御部13などの機能を実現する。
RAM102は、コンピュータ100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に用いる各種データが格納される。
バス107に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105及び光学ドライブ装置106などがある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD103は、コンピュータ100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。HDD103は、例えば、図3に示した記憶装置15の機能を有する。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ104aが接続されている。グラフィック処理装置104は、CPU101からの命令にしたがって、例えば、図17や、図18に示したような電力見積結果をモニタ104aの画面に表示させる。モニタ104aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード105aとマウス105bとが接続されている。入力インタフェース105は、キーボード105aやマウス105bから送られてくる信号をCPU101に送信する。なお、マウス105bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク106aに記録されたデータの読み取りを行う。光ディスク106aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク106aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
上記のように本実施の形態の処理機能は、コンピュータによって実現することができる。その場合、電力見積装置1,10が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、HDD、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
以上、実施の形態に基づき、本発明の電力見積装置、電力見積方法及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
1 電力見積装置
2 電力係数算出部
3 補正係数算出部
4 電力値算出部

Claims (9)

  1. 第1の回路範囲から分割されたクロックツリーを含まない複数の回路範囲のそれぞれにおいて、前記複数の回路範囲のそれぞれに含まれる信号線における単位時間当たりの第1の信号の第1の変化回数の第1の平均値が一定値である場合の、前記複数の回路範囲のそれぞれの第1の電力値を示す電力係数を算出する電力係数算出部と、
    前記電力係数と、前記複数の回路範囲のそれぞれに含まれる前記信号線のうちからランダムに選択された観測ポイントにおける、第2の信号の前記単位時間当たりの第2の変化回数の第2の平均値と、に基づき前記複数の回路範囲のそれぞれの第2の電力値を算出する電力値算出部と、
    を有することを特徴とする電力見積装置。
  2. 所定時間ごとの、前記複数の回路範囲のそれぞれにおける前記第2の平均値を算出する算出部を有し、
    前記電力値算出部は、前記所定時間ごとの、前記複数の回路範囲のそれぞれにおける前記第2の平均値をもとに、前記第2の電力値の履歴を示す、前記所定時間ごとの前記第2の電力値を算出することを特徴とする請求項1記載の電力見積装置。
  3. 前記第2の平均値に対する、前記信号線における第3の信号の前記単位時間当たりの第3の変化回数の第3の平均値の比を補正係数として算出する補正係数算出部を更に有し、
    前記電力値算出部は、更に前記補正係数に基づき、前記第2の電力値を算出する、ことを特徴とする請求項1または2に記載の電力見積装置。
  4. 前記補正係数算出部は、電力見積期間より短いシミュレーションにより取得する波形データから、前記補正係数を算出することを特徴とする請求項3に記載の電力見積装置。
  5. 前記電力係数算出部は、レイアウト設計途中のデータを用いて、前記電力係数を算出することを特徴とする請求項1乃至の何れか一項に記載の電力見積装置。
  6. 前記算出部は、シミュレーションの動作状況に応じて、前記単位時間の長さを変化させることを特徴とする請求項2乃至の何れか一項に記載の電力見積装置。
  7. 前記電力値算出部は、記憶装置に記憶された過去に算出された前記補正係数をもとに、前記第2の電力値を算出することを特徴とする請求項3に記載の電力見積装置。
  8. コンピュータが実行する電力見積方法であって、
    第1の回路範囲から分割されたクロックツリーを含まない複数の回路範囲のそれぞれにおいて、前記複数の回路範囲のそれぞれに含まれる信号線における単位時間当たりの第1の信号の第1の変化回数の第1の平均値が一定値である場合の、前記複数の回路範囲のそれぞれの第1の電力値を示す電力係数を算出し、
    前記電力係数と、前記複数の回路範囲のそれぞれに含まれる前記信号線のうちからランダムに選択された観測ポイントにおける、第2の信号の前記単位時間当たりの第2の変化回数の第2の平均値と、に基づき前記複数の回路範囲のそれぞれの第2の電力値を算出することを特徴とする電力見積方法。
  9. コンピュータに、
    第1の回路範囲から分割されたクロックツリーを含まない複数の回路範囲のそれぞれにおいて、前記複数の回路範囲のそれぞれに含まれる信号線における単位時間当たりの第1の信号の第1の変化回数の第1の平均値が一定値である場合の、前記複数の回路範囲のそれぞれの第1の電力値を示す電力係数を算出し、
    前記電力係数と、前記複数の回路範囲のそれぞれに含まれる前記信号線のうちからランダムに選択された観測ポイントにおける、第2の信号の前記単位時間当たりの第2の変化回数の第2の平均値と、に基づき前記複数の回路範囲のそれぞれの第2の電力値を算出する処理を実行させるプログラム。
JP2011025564A 2010-10-15 2011-02-09 電力見積装置、電力見積方法及びプログラム Expired - Fee Related JP5785725B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011025564A JP5785725B2 (ja) 2010-10-15 2011-02-09 電力見積装置、電力見積方法及びプログラム
US13/273,837 US9021289B2 (en) 2010-10-15 2011-10-14 Method and system for power estimation based on a number of signal changes

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010233081 2010-10-15
JP2010233081 2010-10-15
JP2011025564A JP5785725B2 (ja) 2010-10-15 2011-02-09 電力見積装置、電力見積方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2012104091A JP2012104091A (ja) 2012-05-31
JP5785725B2 true JP5785725B2 (ja) 2015-09-30

Family

ID=45934866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011025564A Expired - Fee Related JP5785725B2 (ja) 2010-10-15 2011-02-09 電力見積装置、電力見積方法及びプログラム

Country Status (2)

Country Link
US (1) US9021289B2 (ja)
JP (1) JP5785725B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9618547B2 (en) * 2012-01-24 2017-04-11 University Of Southern California Digital circuit power measurements using numerical analysis
US20140288861A1 (en) * 2013-03-20 2014-09-25 Xerox Corporation Sampling methodology for measuring power consumption for a population of power-consuming devices
TWI571820B (zh) * 2014-11-06 2017-02-21 財團法人資訊工業策進會 工具機耗電量預測系統與方法
US10386395B1 (en) 2015-06-03 2019-08-20 University Of Southern California Subcircuit physical level power monitoring technology for real-time hardware systems and simulators
GB2542215B (en) * 2016-01-18 2018-04-11 Imagination Tech Ltd Dynamic power measurement using a formal verification tool

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2803119B2 (ja) 1988-12-23 1998-09-24 日本電気株式会社 Cmosゲートアレイ消費電力計算方式
FI86352C (fi) * 1989-11-14 1992-08-10 Nokia Oy Ab Digitaliskt radiolaenksystem och foerfarande foer reglering av en saendingseffekt i ett digitaliskt radiolaenksystem.
US5557531A (en) * 1990-04-06 1996-09-17 Lsi Logic Corporation Method and system for creating and validating low level structural description of electronic design from higher level, behavior-oriented description, including estimating power dissipation of physical implementation
US5541849A (en) * 1990-04-06 1996-07-30 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters
US5555201A (en) * 1990-04-06 1996-09-10 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
JP2752597B2 (ja) 1994-04-19 1998-05-18 松下電器産業株式会社 消費電力の推定方法,消費電力の推定装置,配置配線の決定方法及び配置配線設計装置
JP3213198B2 (ja) 1995-03-15 2001-10-02 株式会社東芝 集積回路の電力評価方法
US6151568A (en) 1996-09-13 2000-11-21 Sente, Inc. Power estimation software system
US5940779A (en) * 1997-03-05 1999-08-17 Motorola Inc. Architectural power estimation method and apparatus
JPH11232147A (ja) * 1998-02-16 1999-08-27 Toshiba Corp パワーエスティメーション装置、パワーエスティメーション方法、及びパワーエスティメーションプログラムを記録した機械読み取り可能な記録媒体
US6397170B1 (en) * 1998-08-18 2002-05-28 International Business Machines Corporation Simulation based power optimization
US6865526B1 (en) * 2000-01-24 2005-03-08 University Of California-Riverside Method for core-based system-level power modeling using object-oriented techniques
JP2002015022A (ja) * 2000-06-28 2002-01-18 Nec Microsystems Ltd 消費電力計算装置、消費電力計算方法および消費電力計算プログラムを記録した記録媒体
US6640195B1 (en) * 2000-12-21 2003-10-28 Sprint Communications Company, L.P. Integrated services hub self speed detection
US6810482B1 (en) * 2001-01-26 2004-10-26 Synopsys, Inc. System and method for estimating power consumption of a circuit thourgh the use of an energy macro table
US6598209B1 (en) * 2001-02-28 2003-07-22 Sequence Design, Inc. RTL power analysis using gate-level cell power models
JP3699901B2 (ja) 2001-03-12 2005-09-28 株式会社東芝 集積回路の電力評価方法
JP2002288257A (ja) 2001-03-23 2002-10-04 Matsushita Electric Ind Co Ltd 消費電力評価方法および装置
US7089437B2 (en) * 2001-06-18 2006-08-08 Texas Instruments Incorporated Apparatus for determining power consumed by a bus of a digital signal processor using counted number of logic state transitions on bus
US7007256B2 (en) * 2003-03-06 2006-02-28 Sun Microsystems, Inc. Method and apparatus for power consumption analysis in global nets
US7356454B2 (en) * 2003-10-17 2008-04-08 Ud Technology Corporation Method and apparatus for emulation of logic circuits
US7725848B2 (en) * 2005-01-27 2010-05-25 Wolfgang Nebel Predictable design of low power systems by pre-implementation estimation and optimization
JP2005293163A (ja) * 2004-03-31 2005-10-20 Nec Electronics Corp 消費電力計算方法及び装置
EP1677175B1 (en) * 2004-12-31 2013-08-28 ST-Ericsson SA Dynamic power management in system on chips (SOC)
US7343499B2 (en) * 2005-01-27 2008-03-11 International Business Machines Corporation Method and apparatus to generate circuit energy models with multiple clock gating inputs
JP2006285835A (ja) 2005-04-04 2006-10-19 Matsushita Electric Ind Co Ltd 消費電力評価方法および消費電力評価システム
US7222039B2 (en) * 2005-06-10 2007-05-22 Azuro (Uk) Limited Estimation of average-case activity for digital state machines
US7464278B2 (en) * 2005-09-12 2008-12-09 Intel Corporation Combining power prediction and optimal control approaches for performance optimization in thermally limited designs
JP4761906B2 (ja) * 2005-09-27 2011-08-31 ルネサスエレクトロニクス株式会社 半導体集積回路の設計方法
JP4330573B2 (ja) 2005-09-30 2009-09-16 富士通株式会社 消費電力評価方法、消費電力評価システム
US7925899B2 (en) * 2005-12-29 2011-04-12 Intel Corporation Method, system, and apparatus for runtime power estimation
US7549069B2 (en) * 2006-03-15 2009-06-16 Fujitsu Limited Estimating software power consumption
JP2008052491A (ja) 2006-08-24 2008-03-06 Renesas Technology Corp 消費電流波形の推定方法及び半導体回路の検証方法
EP2071480A4 (en) * 2006-09-29 2012-08-22 Nec Corp SIGNAL SELECTION APPARATUS, CIRCUIT RECTIFICATION APPARATUS, CIRCUIT SIMULATOR, CIRCUIT EMULATOR, SIGNAL SELECTION METHOD AND PROGRAM
US8060765B1 (en) * 2006-11-02 2011-11-15 Nvidia Corporation Power estimation based on block activity
EP2109053B1 (en) 2006-12-28 2015-08-19 NEC Corporation Signal selection device, method, and program
JP2008204350A (ja) 2007-02-22 2008-09-04 Renesas Technology Corp 電力消費見積もりシステムおよび電力消費見積もり方法
JP4924130B2 (ja) * 2007-03-19 2012-04-25 富士通株式会社 消費電力解析支援プログラム、該プログラムを記録した記録媒体、および消費電力解析支援装置
JP2008234240A (ja) 2007-03-20 2008-10-02 Fujitsu Ltd 消費電力解析方法及び消費電力解析装置
US7941679B2 (en) * 2007-08-10 2011-05-10 Atrenta, Inc. Method for computing power savings and determining the preferred clock gating circuit of an integrated circuit design
JP5098517B2 (ja) 2007-08-23 2012-12-12 富士通株式会社 消費電力解析方法及び消費電力解析装置
US8041521B2 (en) * 2007-11-28 2011-10-18 International Business Machines Corporation Estimating power consumption of computing components configured in a computing system
WO2010061506A1 (ja) * 2008-11-27 2010-06-03 日本電気株式会社 信号補正装置
US8214663B2 (en) * 2009-04-15 2012-07-03 International Business Machines Corporation Using power proxies combined with on-chip actuators to meet a defined power target
US8258792B2 (en) * 2009-05-11 2012-09-04 Semiconductor Components Industries, Llc. Monitoring system and method
RU2636848C2 (ru) * 2009-07-20 2017-11-28 Шнайдер Электрик АйТи Корпорейшен Способ оценки потребления мощности
US8442786B2 (en) * 2010-06-02 2013-05-14 Advanced Micro Devices, Inc. Flexible power reporting in a computing system
US8650428B2 (en) * 2011-07-19 2014-02-11 Ati Technologies Ulc Dynamic weight calculation in a digital power estimation and management system

Also Published As

Publication number Publication date
US20120095737A1 (en) 2012-04-19
JP2012104091A (ja) 2012-05-31
US9021289B2 (en) 2015-04-28

Similar Documents

Publication Publication Date Title
JP4634269B2 (ja) クロストークを考慮したタイミング分析のためのシステム、方法及び論理装置
US7464015B2 (en) Method and apparatus for supporting verification, and computer product
US11836641B2 (en) Machine learning-based prediction of metrics at early-stage circuit design
CN1716264B (zh) 利用控制程序信息注释并呈现***踪迹的方法和***
JP2009266237A (ja) エミュレーションシステムを用いるデジタル設計のピーク電力検出
JP5785725B2 (ja) 電力見積装置、電力見積方法及びプログラム
US9690889B2 (en) Method for adjusting a timing derate for static timing analysis
US20150370955A1 (en) Method for adjusting a timing derate for static timing analysis
US7856608B2 (en) Method and apparatus for generating current source noise model for creating semiconductor device model used in power supply noise analysis
CN109902318A (zh) 生成标准延时格式文件的方法和装置
JP5163350B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
JPWO2006006198A1 (ja) 電力算出装置、電力算出方法、耐タンパ性評価装置及び耐タンパ性評価方法
US8566768B1 (en) Best clock frequency search for FPGA-based design
JP2009140388A (ja) 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置
JP5012816B2 (ja) 信号選択装置とシステムと回路エミュレータ及び方法並びにプログラム
JP5454349B2 (ja) 性能推定装置
WO2012137652A1 (ja) Fpga設計支援システムおよびfpga設計支援方法ならびにfpga設計支援プログラム
JPWO2008038617A1 (ja) 信号選択装置、回路修正装置、回路シミュレータ、回路エミュレータ、信号選択方法およびプログラム
JP5146087B2 (ja) 消費電力見積方法、回路設計支援装置及びプログラム
US20140325468A1 (en) Storage medium, and generation apparatus for generating transactions for performance evaluation
JP5799645B2 (ja) 電源電圧設定方法及び電源電圧設定プログラム
JP2006085635A (ja) タイミング解析装置、タイミング解析方法、タイミング解析プログラムおよび記録媒体
US7360189B1 (en) Method and apparatus for enabling waveform display in a system design model
JP2008234080A (ja) 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム、半導体集積回路、半導体集積回路の製造方法
JP7351189B2 (ja) タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140624

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150605

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150611

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: 20150707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150727

R150 Certificate of patent or registration of utility model

Ref document number: 5785725

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees