JP2013061811A - 消費電力解析方法および消費電力解析装置 - Google Patents

消費電力解析方法および消費電力解析装置 Download PDF

Info

Publication number
JP2013061811A
JP2013061811A JP2011199994A JP2011199994A JP2013061811A JP 2013061811 A JP2013061811 A JP 2013061811A JP 2011199994 A JP2011199994 A JP 2011199994A JP 2011199994 A JP2011199994 A JP 2011199994A JP 2013061811 A JP2013061811 A JP 2013061811A
Authority
JP
Japan
Prior art keywords
circuit
macro
operation information
power consumption
information
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.)
Granted
Application number
JP2011199994A
Other languages
English (en)
Other versions
JP5831067B2 (ja
Inventor
Yukito Kawabe
幸仁 川辺
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
Original Assignee
Fujitsu Ltd
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 filed Critical Fujitsu Ltd
Priority to JP2011199994A priority Critical patent/JP5831067B2/ja
Publication of JP2013061811A publication Critical patent/JP2013061811A/ja
Application granted granted Critical
Publication of JP5831067B2 publication Critical patent/JP5831067B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】マクロ出力の後段の回路の動作情報を回路単位で補正することにより、回路全体の消費電力解析の精度を向上させる。
【解決手段】解析対象の回路100のサイクルベース論理シミュレーションにより得られた回路動作情報と、回路100に含まれる特定のマクロ101の動作情報に対する動作補正情報と、に基づき回路100内のマクロ101の動作情報を補正し、回路100内の各信号の動作情報を確定する際に、補正後の動作情報をマクロ101の後段の回路102に確率伝搬させて後段の回路102の動作情報を確定し、確率伝搬させた動作情報を用いてマクロ101の後段の回路102の消費電力を求める。
【選択図】図1

Description

本発明は、回路の消費電力を計算する消費電力解析方法および消費電力解析装置に関する。
近年、システムの高集積化に伴う電力密度低減の要求や、Energy Star、省エネ法といった電気機器の消費電力規制の制定などにより、LSI等の回路の低消費電力化への要求がますます厳しくなり、LSI設計における低消費電力化技術の重要性が増している。
LSI設計時の消費電力解析手法として、論理シミュレーションによって得られた回路各部の動作情報を元に回路要素ごとの消費電力を算出する手法が一般的におこなわれている。このような動作情報を取得するための論理シミュレーションとしては、セル・マクロに実際の信号伝搬遅延を反映した上で、ゲートレベルのイベントドリブンシミュレーションを用いるとグリッチなども考慮した精度が高い動作情報が得られる。しかし、このような実遅延を反映したゲートレベルのイベントドリブンシミュレーションには、非常にシミュレーション時間がかかる。近年のLSIは大規模化しており、チップレベルでこのようなイベントドリブンシミュレーションが現実的な時間では実行できない場合が増加している。
論理シミュレーションの高速化手法としては、ハードウェアエミュレータによるサイクルベース論理シミュレーションによりゲートレベルシミュレーションを高速化する手法がある。また、RTLやさらに高位のBehaviorレベルなど、ハードウェアの動作をより抽象度の高いレベルで記述することで記述量を減らしてシミュレーション時間を削減する手法がある。たとえば、クロックレベル記述という、RTLと動作レベル記述の中ほどの抽象度をもった動作記述で記述されたデータを用いてサイクルベースの論理シミュレーションをおこない、その結果得られた動作情報および別途用意したセル・マクロの電力計算式を元に消費電力計算をおこなう技術がある(たとえば、下記特許文献1参照。)。
一方、LSIの大規模化により消費電力解析に用いる動作情報が巨大化し、ファイルサイズの増大や情報取得時間の増大などにより、LSIの全内部ノードの情報を取得・保持しておくことが困難になってきている。この問題の対処方法としては、たとえば、対象デザインの入出力信号、順序セル出力、機能マクロの入出力信号など限られた場所の動作情報のみを取得する。また、この限られた場所以外については、動作情報を与えた場所を起点として各素子の入力側から出力側に向かって動作情報を確率的に生成・伝播していくことで全ノードの動作情報を生成するという手法が知られている。この手法は、市販のCADツールの機能として組み込まれている。たとえば、Apache社PowerArtist、Cadence社PowerMeter、Synopsys社PrimeTime PXなどがある。
特開2005−293163号公報
LSIの消費電力解析用の動作情報をサイクルベースの論理シミュレーションから取得する場合を考えてみる。サイクルベース論理シミュレーションでは、各素子の値の評価がクロックサイクルごとに1度だけおこなわれるため、クロックサイクル中で変化する情報は欠落してしまい、結果として得られる各内部信号の動作は1クロックサイクルで1回しか得られない。動作情報の適用方法としては、上述したように、回路の全ネットにシミュレーションで得られた動作情報を適用する方法や、解析対象の入出力信号、順序セルの出力、機能マクロの出力信号など限られたノードに動作情報を適用して残りの信号には動作情報の確率的な伝搬処理により動作情報を生成・適用する方法などがある。
マクロを含まない回路における各セルの動作情報については、動作情報の確率伝搬手法の改善などにより動作率について、ある程度の精度向上が期待できる。しかし、ある程度規模の大きい回路をまとめたマクロではマクロ内部の論理が複雑なため入力信号の動作情報を出力信号に確率伝搬することが困難なため、サイクルベースの動作情報と実際の動作の誤差が大きいマクロを含む回路において、確率伝搬手法を改善することだけで動作率の精度を向上させることは難しい。
マクロ自体の消費電力については、動作情報の不確実さを予め考慮した電力モデルを作成することでマクロの消費電力解析の精度を上げることが可能であるが、そのマクロの出力ピンにつながる後段の論理回路については、仮に確率伝搬の手法を用いたとしても伝搬元であるマクロ出力の動作情報が不正確なため、精度を上げることができず、結果として消費電力解析の解析精度の低下につながる。
このようなサイクルベースの動作情報と実際の動作の誤差が大きいマクロとして、たとえば、XOR論理や多対一のセレクタ構造などのようにグリッチが発生しやすい構造をもつマクロの出力信号や、ダイナミック回路を使った機能マクロ論理の出力信号などがある。
開示の消費電力解析方法および消費電力解析装置は、上述した問題点を解消するものであり、マクロ出力の後段の回路の動作情報を回路単位で補正して回路全体の消費電力解析の精度を向上することを目的とする。
上述した課題を解決し、目的を達成するため、開示技術は、解析対象の回路のサイクルベース論理シミュレーションにより得られた回路動作情報と、前記回路に含まれる特定のマクロの動作情報に対する動作補正情報と、に基づき前記回路内の前記マクロの動作情報を補正し、前記回路内の各信号の動作情報を確定する際に、補正後の前記動作情報を前記マクロの後段の回路に確率伝搬させて前記後段の回路の動作情報を確定し、前記確率伝搬させた前記動作情報を用いて前記マクロの後段の回路の消費電力を求めることを含む。
開示の消費電力解析方法および消費電力解析装置によれば、マクロ出力の後段の回路の動作情報を回路単位で補正することにより、回路全体の消費電力解析の精度を向上できるという効果を奏する。
図1は、実施の形態1にかかる消費電力解析の処理概要を示す図である。 図2は、実施の形態1にかかる消費電力解析装置を示すブロック図である。 図3は、消費電力解析処理の手順を示すフローチャートである。 図4は、グリッチの信号波形を説明する図である。 図5は、ダイナミック回路の出力信号波形を説明する図である。 図6は、グリッチを考慮した補正情報を示す図表である。 図7は、ダイナミック回路の補正情報を示す図表である。 図8は、動作情報補正処理の詳細な手順の一例を示すフローチャートである。 図9は、消費電力解析をおこなう回路と動作情報、動作補正情報の例を示す回路図である。 図10は、マクロインスタンスに対する動作情報補正処理、および動作情報伝搬を説明する図である。 図11は、実施の形態1にかかる電力解析による電力算出例を説明する回路図である(その1)。 図12は、実施の形態1にかかる電力解析による電力算出例を説明する回路図である(その2)。 図13は、実施の形態1の電力解析の手法を未適用時の電力算出例を説明する回路図である。 図14は、実施の形態2にかかる動作補正情報とマクロの回路構成を示す図である。 図15は、実施の形態2にかかる動作情報補正処理を説明する図である。 図16は、実施の形態2にかかるマクロを含んだ回路を示す図である。 図17は、動作情報の補正処理を説明する回路図である。 図18は、動作情報を確定した結果を説明する回路図である。 図19は、実施の形態2の電力解析の手法を未適用時の電力算出例を説明する回路図である。
(実施の形態1)
以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。開示技術は、サイクルベース論理シミュレーションで得られた動作情報を元にして回路(ゲート)単位で消費電力を計算することにより、回路単位での消費電力の解析精度を向上させる。特に、動作情報を確率伝搬させて動作情報を精度向上させることが困難なマクロが含まれても、このマクロ出力から先の回路の動作情報の精度を改善することにより、回路全体の電力解析精度を向上させる。
(消費電力解析の処理概要)
図1は、実施の形態1にかかる消費電力解析の処理概要を示す図である。開示技術では、サイクルベース動作情報と実際の出力信号の動作が大きく異なるマクロ(対象マクロ)101について、マクロ101の補正対象となる出力ピン101aの出力信号ごとの補正情報を別途用意しておく。そして、(1)補正情報に基づいて、回路100全体の動作情報のうち対象となるマクロ101の出力ピン101aの出力信号の動作情報を補正する。これにより、(2)出力ピン101aには、補正後の動作情報が入る。つぎに、(3)電力計算前の回路100内の各信号の動作情報を確定するフェーズで、この補正後の動作情報を後段のゲート(回路)102に確率伝搬する。そして、(4)電力計算処理では、確率伝搬による伝搬後の最終的な動作情報に基づいて消費電力解析を実行することにより、回路100の消費電力精度を向上させる。
実施形態の消費電力解析で用いる内部ノードの動作情報としては、信号のトグル率(基準クロック1サイクル内にその信号が反転する回数の期待値)と、信号のデューティー比(全解析期間のうちその信号の値が1であった期間の比率)を想定している。消費電力解析に用いる動作情報としては、この他に動作情報の確率伝搬の補助情報としてサイクル内でその信号が変化する可能性がある範囲を示すタイミングウィンドウという情報などを用いることも考えられるが、以下の説明では、トグル率およびデューティー比を用いている。
(消費電力解析装置の構成)
図2は、実施の形態1にかかる消費電力解析装置のブロック図を示す図である。図2に示す消費電力解析装置200は、汎用のコンピュータやサーバを用いて構成することができる。消費電力解析装置200は、CPU201と、ROM202と、RAM203と、I/F204と、バス205と、HDD等のストレージ206を含む。
CPU201は、ROM202に格納された消費電力解析プログラムを実行し、RAM203をワークエリアとして用いることにより、消費電力解析処理をおこなう制御部として機能する。I/F204にはキーボード210や外部のハードウェアエミュレータ211等からサイクルベースの回路動作情報、解析対象ネットリスト、マクロ101の動作補正情報等が入力され、ストレージ206に格納される。CPU201は、これら入力された情報に基づきマクロ101の動作情報の補正処理、および消費電力計算をおこなう。計算後の消費電力は、ディスプレイやI/F204を介して外部出力することができる。
(消費電力解析の全体概要)
図3は、消費電力解析処理の手順を示すフローチャートである。消費電力解析装置200がおこなう消費電力解析処理全体の概要を説明する。以下の説明では、ネットリスト中に実際に埋め込まれている個々のマクロをマクロの「インスタンス」と呼び、部品の種類としての「マクロ」101という文言と使い分ける。
1.準備:ステップS301
サイクルベース動作との誤差が大きい出力信号をもつマクロ101の動作補正情報を予め用意しておく(ステップS301)。用意しておく情報は、ハードウェアエミュレータ211のシミュレーション処理により得たサイクルベースの回路動作情報310と、電力の解析対象となる回路のネットリスト311と、マクロ101の動作補正情報312である。サイクルベースの回路動作情報310は、回路100内全ノードまたはマクロインスタンスの出力信号を含む限定的なノードの動作情報のどちらでもよい。動作補正情報312は、マクロ名、対象出力信号名、補正用情報等を含む。
2.動作情報補正処理:ステップS302
つぎに、サイクルベースの回路動作情報310、ネットリスト311、動作補正情報312の入力に基づき回路動作情報310を補正する処理をおこなう。この補正処理では、ネットリスト311に含まれる全マクロインスタンスのうち、マクロ101が動作補正情報312に含まれるものに対して、そのマクロインスタンスの出力ピン101aのうち動作補正情報312に記述された全ての出力ピン101aについて、出力ピン101aが接続されたネットの動作情報を動作補正情報312に基づいて補正する。これにより、補正後のサイクルベースの回路動作情報310aが得られる。この補正処理における動作情報および補正方法の具体的な内容については後述する。
3.回路内動作情報確定処理:ステップS303
消費電力計算のために回路100内の全ネットの動作情報を確定する処理では、動作情報補正処理ステップS302において動作補正をおこなった全てのネットの回路動作情報310aをそのネットの後段の回路に対して確率伝搬させて、順序セル103、マクロ101、回路出力104に到達するまで回路動作情報310aの伝搬をおこなう。この回路内動作情報確定処理では、電力解析に必要なその他のデータ(たとえば、配線容量情報、セル・マクロの電力ライブラリ等)313についても入力を受けて処理できる。そして、他の動作情報が未確定のネットがある場合は、確率伝搬処理により回路動作情報310aを確定する。
4.消費電力計算処理:ステップS304
回路内動作情報確定処理ステップS303によって伝播された、補正された回路動作情報310aを用いて消費電力計算をおこない、消費電力解析結果314の情報を得る。上記の各情報(データ)は、消費電力解析装置200のストレージ206やRAM203等に格納後に外部出力される。
(動作情報補正処理について)
つぎに、回路動作情報310の補正処理について説明する。回路動作情報310の補正では、a.グリッチを考慮した補正、b.ダイナミック回路を考慮した補正をおこなう。
これらグリッチとダイナミック回路について説明しておく。サイクルベースの動作情報と実際の動作の誤差が大きいマクロとしては、たとえば、XOR論理や多対一のセレクタ構造などのようにグリッチが発生しやすい構造をもつマクロの出力信号や、ダイナミック回路を使った機能マクロ論理の出力信号などがある。
図4は、グリッチの信号波形を説明する図である。図4(a)は、サイクルベースのシミュレーションで取得した信号波形であり、図4(b)は、この信号波形にグリッチが乗った状態を示している。図4(b)に示すようなグリッチが乗ることにより、サイクルベースのシミュレーションで取得した信号波形より動作率が大きくなることが分かる。定常的にグリッチが乗りやすい回路構造(XOR論理や多対一のセレクタ等)をもつマクロ101については、消費電力計算上の誤差は非常に大きくなる。具体的には、グリッチが乗った信号波形は、クロックサイクルCK内で変化するため、この信号波形のトグル変化(反転率)まで考慮した消費電力計算がおこなえない。
図5は、ダイナミック回路の出力信号波形を説明する図である。ダイナミック回路では毎クロックサイクルCKごとに評価動作が実行される。仮に、ダイナミック回路の論理出力値として回路のプリチャージ時の出力値と逆の値が出力され続けていた場合、実際の回路動作としてはプリチャージのフェーズのたびに信号が強制的にプリチャージ値(論理出力値と逆の値)にドライブされることになる。
これにより、図5(b)に示すように、毎クロックサイクルにパルスが乗ったような信号波形になる。サイクルベースのシミュレーションの場合には動作情報として取得されるのは評価フェーズの値のみであるため、図5(a)に示す信号波形を動作情報として記録することとなり、回路の実際の動作とかけ離れて動作率が低くなってしまう。なお、プリチャージパルスを隠ぺいするためにマクロ101の出力部分にラッチを設けることが多いが、このラッチによる遅延増加の影響を避けるために、ダイナミック回路動作する信号波形をそのままマクロ101から出力させることも少なくない。
a.グリッチを考慮した補正について
上記グリッチの影響を考慮した補正として、マクロの出力信号にグリッチの乗りやすさに応じた係数値を補正情報とする。そして、回路動作情報310に対して、出力信号のトグル率を係数倍して補正する。
図6は、グリッチを考慮した補正情報を示す図表である。図6に示すグリッチに関する動作補正情報312の例では、たとえば、マクロ1の出力信号2に対して係数値2.0が設定されている。この「係数」については、たとえば事前にマクロ101単体のシミュレーションなどにより得た論理出力のトグル率と、実際の波形から得られたトグル率との関係を調べることにより予め求め用意しておくことができる。この係数は、トグル率に掛け合わせられる。すなわち、補正式は下記となる。
新トグル率=トグル率×係数値
新デューティー比=デューティー比
b.ダイナミック回路を考慮した補正について
上記ダイナミック回路を考慮した補正では、出力信号ごとに制御クロックピン名、プリチャージ極性を補正情報とする。制御クロックピンは、出力信号を作っているダイナミック回路のプリチャージ/評価フェーズのタイミングを取っているクロック入力ピンであり、プリチャージ極性は、プリチャージフェーズでその出力信号が0になるか1になるかを示す情報である。
図7は、ダイナミック回路の補正情報を示す図表である。図7に示すダイナミック回路に関する動作補正情報312の例では、たとえば、マクロ2の出力信号1に対してプリチャージ極性が1、プリチャージをする制御クロック名がCK2として設定される。これらの補正情報である「制御クロックピン名」、「プリチャージ極性」はマクロ101の論理仕様書、もしくはマクロ101の開発元から容易に入手でき予め用意できる情報である。ダイナミック回路出力は、論理出力値がプリチャージ極性と同じときには信号変化が起きず、プリチャージ極性と逆のときには制御クロックと同じ周期のパルス信号が出力されることになる。このため、デューティー比が信号が1である期間の割合であることに注意すると、補正式はプリチャージ極性が1の場合と0の場合でそれぞれ以下のようになる。下記では、回路動作情報に含まれるマクロ101の出力信号がプリチャージ極性と逆の値である確率と、制御クロックの動作率を元にトグル率を算出する。
プリチャージ極性=0の場合
新トグル率=制御クロックトグル率×デューティー比
新デューティー比=デューティー比−デューティー比/2=デューティー比/2
プリチャージ極性=1の場合
新トグル率=制御クロックトグル率×(1−デューティー比)
新デューティー比=デューティー比+(1−デューティー比)/2
さらに、ダイナミック回路の動作を抑止する制御入力信号がある場合は、マクロ101の論理仕様書等に基づき、これら「制御入力信号」と、「制御極性」についても情報として補正情報に加えることができる。図7の例では、たとえば、マクロ2の制御入力信号がEN1、制御極性が1である。これにより、制御入力信号のデューティー比をダイナミック回路が動作した割合とみなして上記の新トグル率を下記のようにさらに補正してもよい。この場合、制御入力信号が抑止値である確率を元に補正する。
制御入力信号が1で回路動作の場合
新トグル率’=新トグル率×(制御入力信号のデューティー比)
制御入力信号が0で回路動作の場合
新トグル率’=新トグル率×(1−制御入力信号のデューティー比)
制御入力信号がある場合の新デューティー比は、プリチャージパルスによるデューティーの変化が制御入力信号のデューティー比によって補正されるため、以下のようになる。
プリチャージ極性=0,制御入力信号=1で回路動作の場合
新デューティー比=デューティー比−デューティー比/2×(制御入力信号デューティー比)
プリチャージ極性=0,制御入力信号=0で回路動作の場合
新デューティー比=デューティー比−デューティー比/2×(1−制御入力信号デューティー比)
プリチャージ極性=1,制御入力信号=1で回路動作の場合
新デューティー比=デューティー比+(1−デューティー比)/2×(制御入力信号デューティー比)
プリチャージ極性=1,制御入力信号=0で回路動作の場合
新デューティー比=デューティー比+(1−デューティー比)/2×(1−制御入力信号デューティー比)
また、マクロ101内部でダイナミック回路出力がマクロ出力に至る途中でさらにグリッチが乗る場合などは、一つの出力信号に上記a.グリッチと、b.ダイナミック回路の両方の補正情報をもたせ、b.ダイナミック回路の補正後に、a.グリッチの補正をおこなえばよい。
(動作情報補正処理の流れについて)
図8は、動作情報補正処理の詳細な手順の一例を示すフローチャートである。消費電力解析装置200がおこなう、図3のステップS302に示した動作情報補正処理の詳細について説明する。はじめに、ネットリスト311に含まれる全てのマクロインスタンスから動作情報補正処理(ステップS302)がまだ実行されていないものを一つ選択する(ステップS801)。たとえば、インスタンスA(マクロ種類B)を選択したとする。
つぎに、動作補正情報312の中からマクロBの情報を取得する(ステップS802)。そして、動作補正情報312にマクロBの情報が存在するかチェックし(ステップS803)、存在すれば(ステップS803:Yes)、ステップS804に移行し、存在しなければ(ステップS803:No)、ステップS801に戻る。
つぎに、ステップS804では、インスタンスAの出力ピン101aから、未選択の出力ピン101aを一つ選択する(ステップS804)。たとえば、出力ピンSを選択したとする。そして、動作補正情報312に選択した出力ピンSの情報が存在するかチェックし(ステップS805)、存在すれば(ステップS805:Yes)、ステップS806に移行し、存在しなければ(ステップS805:No)、ステップS804に戻る。
つぎに、ステップS806では、回路動作情報310からインスタンスAの出力ピンSにつながる信号の動作情報(トグル率、デューティー比)を取得し、出力ピンSの補正情報に基づいて新しいトグル率とデューティー比を求め、回路動作情報310を更新する。この際、補正処理をおこなったということを記録しておく(ステップS806)。
つぎに、インスタンスAの全ての出力ピン101aを選択したかチェックし(ステップS807)、全ての出力ピン101aを選択済みであれば(ステップS807:Yes)、ステップS808に移行し、未だ未選択の出力ピン101aがあれば(ステップS807:No)、ステップS804に戻る。
最後に、ステップS808では、ネットリスト311中の全てのマクロインスタンスを選択したかチェックし(ステップS808)、未選択のマクロインスタンスがあれば(ステップS808:No)、ステップS801に戻り、全てのマクロインスタンスを選択済みであれば(ステップS808:Yes)、以上説明した動作情報補正処理を終了する。
(消費電力解析処理の具体例)
つぎに、消費電力解析処理について、具体的な回路例を用いて説明する。図9は、消費電力解析をおこなう回路と動作情報、動作補正情報の例を示す回路図である。各ネットに記載されたトグル率Tとデューティー比D、および動作補正情報312を入力として処理する場合の例について説明する。
図10は、マクロインスタンスに対する動作情報補正処理、および動作情報伝搬を説明する図である。図10には、一つのマクロインスタンスA(マクロX)に対する処理別に上段、中段、下段にそれぞれ記載してある。はじめに、図10の上段に示すように、上述した2.動作情報補正処理(ステップS302)では、マクロインスタンスAは、マクロX(101)のインスタンスなので、動作補正情報312からマクロXの情報を検索する。これにより、マクロXの補正情報として、出力ピンS1とS2の補正情報が得られる。得られた補正情報から、出力ピンS1は、上のa.グリッチの補正、出力ピンS2はb.ダイナミック回路の補正をおこなうことになる。
そして、動作情報補正処理(ステップS302)では、図10の中段に示すように、上記補正式にしたがって、各出力ピンS1,S2につながるネットの回路動作情報310を補正する。たとえば、出力ピンS1のトグル率T(toggle_rate)は、0.3×2.5=0.75に補正され、出力ピンS2のデューティー比D(duty)は、0.4+(1−0.4)/2=0.7に補正される。
この後、上述した3.回路内動作情報確定処理(ステップS303)では、図10の下段に示すように、補正をおこなった2つのネットの回路動作情報310aを後段の回路に伝搬する。この回路例では、後段の回路が単純なバッファ(Buf)1001のため、入力信号の回路動作情報310aをそのまま出力まで伝搬させるだけでよく、確率計算は必要ない。
つぎに、上述した補正後の回路動作情報310aを元にした消費電力解析について説明する。マクロ101後段の各バッファの消費電力について考えると、バッファ(Buf)1001のスイッチング電力(回路が動作することで消費される電力)は「(トグル率)×(信号変化1回当たりのバッファの消費エネルギー)」で求められる。このため、インスタンスA(マクロX)101の出力ピンS1につながるバッファ1001aについては、本実施の形態の電力解析の手法を適用しない場合に比べてスイッチング電力が2.5倍(0.75/0.3)になり、出力ピンS2につながるバッファ1001bについては、ダイナミック電力が6倍(1.2/0.2)になる。
これは、本実施の形態の電力解析の手法を未適用としていた、サイクルベース動作率を元に解析した消費電力では過小評価となることを意味する。上記a.グリッチを考慮した補正については、係数の算出時動作と実動作の違いなどにより、多少の補正誤差は出るが、b.ダイナミック回路を考慮した補正については、ダイナミック回路動作による信号波形を元にした補正であるため、ほぼ誤差のない補正となる。
また、リーク電力(漏れ電流などによって回路が動作しなくても消費し続ける電力)について、このリーク電力は、一般的に入力信号の値によって変わるため、このような入力信号の値を考慮したリーク電力解析をおこなう場合は、入力信号のデューティー比を用いて計算をおこなう。このことから、b.ダイナミック回路を考慮した補正では、上記の手法によりデューティー比も修正されるため、リーク電力の解析精度についても併せて向上することができる。
(消費電力の算出例)
つぎに、本実施の形態にかかるスイッチング電力の算出例について説明する。例として、図9に示した回路100について、マクロを除いた部分のスイッチング電力について説明する。回路動作情報310は、各回路の入力信号と、マクロ101の出力信号に与えられており、その他のネットの動作情報は、確率伝搬によって求める。説明を簡単にするために、図示の回路例では、マクロ101の他は、2入力のAND、OR、XORと、バッファ(Buf)の回路のみ使用する。また、説明を単純にするためにマクロ101以外の各ゲートのスイッチング電力を以下のように計算することにする。
各ゲートのスイッチング電力=(対象ゲートの出力信号のトグル率)×100[uW]
動作情報の確率伝搬の手法としては、単純なモデルを用いる。AND、ORの場合は、片側の入力信号が変化したときにもう片側の入力がANDなら1、ORなら0のときにその信号変化が出力に伝搬し、XORの場合は他方の入力信号の値に関わらず出力に伝搬するとしている。そして、2つの入力信号および出力信号(トグル率T,デューティー比D)を(T1,D1)(T2,D2)(TO,DO)としたときに、(T1,D1)(T2,D2)から(TO,DO)を以下のように求めることにする。
AND:TO=T1×D2+T2×D1,DO=D1×D2
OR :TO=T1×(1−D2)+T2×(1−D1),DO=1−(1−D1)×(1−D2)
XOR:TO=T1+T2,DO=D1×(1−D2)+(1−D1)×D2
バッファは入力の(T,D)をそのまま出力に用いる。
図11、図12は、実施の形態1にかかる電力解析による電力算出例を説明する回路図である。図11に示すように、上述した2.動作情報補正処理(ステップS302)では、動作補正情報312として、マクロXの出力ピンS1,S2に対する補正情報が与えられているため、マクロインスタンスA,Bそれぞれの出力ピンS1,S2の出力信号の動作情報を補正することになる。上述したa.グリッチ、b.ダイナミック回路を考慮した計算式に基づいて求めた各信号の新しい(補正後の)動作情報を矢印(→)後段に併記している。出力ピンS1については、トグル率を係数に基づき2.5倍、出力ピンS2については、クロックCKのトグル率2.0に(1−デューティー比)を掛けたものが新しいトグル率としている。
上述した3.回路内動作情報確定処理(ステップS303)では、補正した回路動作情報310aを後段の回路に確率伝搬する。伝搬後の各ネットの動作情報を図12に示す。この結果に基づいて消費電力計算をおこなったマクロ以外の回路(a)〜(h)のダイナミック電力は、(a)0.3×100+(b)0.9×100+(c)0.6×100+(d)0.41×100+(e)1.53×100+(f)1.53×100+(g)1.6×100+(h)1.6×100=847uWとなる。
対比のために、本実施の形態の電力解析の手法を適用しなかった場合の電力について説明する。図13は、実施の形態1の電力解析の手法を未適用時の電力算出例を説明する回路図である。図13には、入力側から出力側に向かって動作情報を確率伝搬して全ネットの動作情報を確定した状態を示している。確率伝搬で生成した回路動作情報は下線付きで示した。ここで、マクロX(101)は、入力から出力への動作情報の確率伝搬ができず、出力値に設定された動作情報をそのまま後段に伝搬するものとする。このときのマクロX(101)以外の部分のダイナミック電力は、(a)0.3×100+(b)0.9×100+(c)0.6×100+(d)0.29×100+(e)0.52×100+(f)0.52×100+(g)1.3×100+(h)1.3×100=573uWとなる。このように、本実施の形態1による電力解析の手法を適用しなかった場合には、約32%過小に消費電力を計算していることが分かる。
以上説明した実施の形態1によれば、動作情報取得のための論理シミュレーションの工数を増大させることなく、電力解析の精度を向上させることができる。動作情報の補正(変換)のための処理が入るだけで、その後の電力解析処理自体に大きな処理の追加はないため、全体の解析時間へのオーバーヘッドも小さく、短時間で解析できる。
(実施の形態2)
つぎに、実施の形態2では、ダイナミック回路動作を考慮した回路動作情報の補正において、実施の形態1の構成に加えて、複数クロックおよび制御入力信号が付いた場合の動作補正の例について説明する。図14は、実施の形態2にかかる動作補正情報とマクロの回路構成を示す図である。動作補正情報312における制御入力信号の極性は、制御入力が1で回路動作の場合に1、0で回路動作の場合に0としている。以下の説明では、この動作補正情報312を用いるものとして説明する。
マクロA(101)は、ダイナミック回路1401,1402を備え、ダイナミック回路1401は、制御信号EN1および制御クロックCK1で動作し、出力ピンS1から信号出力する。ダイナミック回路1402は、制御信号INH2および制御クロックCK2で動作し、出力ピンS2,S3から信号出力する。
図15は、実施の形態2にかかる動作情報補正処理を説明する図である。図15上段が補正前の動作情報であり、下段が補正後の動作情報となる。図15の上段に示すように、マクロA(101)の補正前の動作情報の各信号について、トグル率T,デューティー比D(T,D)について説明する。制御クロックCK1は(2,0.5)、制御クロックCK2は(0.5,0.5)、制御信号EN1は(0.3,0.7)、制御信号INH2は(0.2,0.2)、出力ピンS1は(0.3,0.3)、出力ピンS2は(0.1,0.4)、出力ピンS3は(0.1,0.4)であったとする。
動作補正情報312を用いた補正により、図15の下段に示すように、出力ピンS1に対する動作補正をおこなうと、トグル率toggle_rate=(1−duty)×(制御CK toggle_rate)×制御信号duty=(1−0.3)×2.0×0.7=0.98となる。また、デューティー比duty=duty+[(1−duty)/2}×制御信号duty=0.3+{(1−0.3)/2}×0.7=0.545となる。
出力ピンS2に対する動作補正をおこなうと、トグル率toggle_rate=(1−duty)×(制御CK toggle_rate)×(1−制御信号duty)=(1−0.4)×0.5×(1−0.2)=0.24となる。また、デューティー比duty=duty+{(1−duty)/2}×(1−制御信号duty)=0.4+{(1−0.4)/2}×(1−0.2)=0.64となる。
出力ピンS3に対する動作補正をおこなうと、トグル率toggle_rate=duty×(制御CK toggle_rate)×(1−制御信号duty)=0.4×0.5×(1−0.2)=0.16となる。また、デューティー比duty=duty−(duty/2)×(1−制御信号duty)=0.4−(0.4/2)×(1−0.2)=0.24となる。
図16は、実施の形態2にかかるマクロを含んだ回路を示す図である。図16の回路は、図14、図15に示したマクロA(101)を含んだ回路の例であり、各回路の入力およびマクロA(101)の入出力には、図16に示すサイクルベースの動作情報(トグル率T,デューティー比D)がアノーテートされているとする。
図17は、動作情報の補正処理を説明する回路図である。図17には、動作補正情報312を用いてマクロインスタンス1(マクロA)の出力ピンS1,S2,S3の動作情報を補正した結果を矢印(→)後段に併記している。制御入力信号の動作情報は、最終的には上述した3.回路内動作情報確定処理(ステップS303)で入力側の回路から伝搬された動作情報で上書きされることになる。
しかし、2.動作情報補正処理(ステップS302)では、マクロA(101)の内部クロックCK1,CK2の制御情報として取り扱うため、3.回路内動作情報確定処理(ステップS303)後のグリッチ等を含めた動作情報ではなく、初期の動作情報であるサイクルベースの動作情報を用いておこなう必要がある。制御クロックCK1,CK2の入力は、サイクル単位の波形が規定された信号であるため、3.回路内動作情報確定処理(ステップS303)によって動作情報が書き変わることはない。
図18は、動作情報を確定した結果を説明する回路図である。上記の3.回路内動作情報確定処理(ステップS303)によって動作情報を確定した結果を示す。実施の形態2による電力解析の手法適用時のマクロA(101)以外の回路(a)〜(i)のダイナミック電力は、((a)0.3+(b)0.5+(c)0.2+(d)0.9205+(e)0.9205+(f)0.16+(g)0.16+(h)0.36+(i)0.36)×100uW=388.1uWとなる。
対比のために、本実施の形態の電力解析の手法を適用しなかった場合の電力について説明する。図19は、実施の形態2の電力解析の手法を未適用時の電力算出例を説明する回路図である。回路(a)〜(i)のダイナミック電力を「(対象ゲートの出力信号のトグル率T)×100[uW]」としてマクロ以外の回路のダイナミック電力を求めると、ダイナミック電力は、((a)0.3+(b)0.5+(c)0.2+(d)0.45+(e)0.45+(f)0.08+(g)0.08+(h)0.3+(i)0.3)×100uW=266uWとなる。このように、本実施の形態2による電力解析の手法を適用しなかった場合には、約31%過小に消費電力を計算していることが分かる。
以上説明した実施の形態2によれば、複数の制御信号およびクロック入力があるマクロを含む場合でも、動作情報取得のための論理シミュレーションの工数を増大させることなく、電力解析の精度を向上させることができる。動作情報の補正(変換)のための処理が入るだけで、その後の電力解析処理自体に大きな処理の追加はないため、全体の解析時間へのオーバーヘッドも小さく、短時間で解析できる。
そして、上記各実施の形態による動作情報の補正は、サイクルベース論理シミュレーションにより得られた動作情報に基づき、ゲート単位で動作情報を補正するため、動作情報を確率伝搬させて動作情報を精度向上させることが困難なマクロが含まれても、このマクロ出力から先の回路の動作情報の精度を改善でき、電力解析の処理を高速におこなえる。加えて、クロックサイクル中で変化するグリッチやダイナミック回路の出力を考慮した補正をおこなう。これにより、サイクルベースの動作情報と実際の動作の誤差が大きいマクロに対応できるようになり、これらマクロを含む回路の消費電力解析を精度よく短時間で行えるようになる。
101 マクロ
101a(S1,S2,S3) 出力ピン
200 消費電力解析装置
201 CPU
202 ROM
203 RAM
204 I/F
211 ハードウェアエミュレータ
310 回路動作情報
310a 補正後の回路動作情報
311 ネットリスト
312 動作補正情報
314 消費電力解析結果
CK1,CK2 制御クロック

Claims (8)

  1. 解析対象の回路のサイクルベース論理シミュレーション実行により得られた回路動作情報と、前記回路に含まれる特定のマクロの動作情報に対する動作補正情報と、に基づき前記回路内の前記マクロの動作情報を補正し、
    前記回路内の各信号の動作情報を確定する際に、補正後の前記動作情報を前記マクロの後段の回路に確率伝搬させて前記後段の回路の動作情報を確定し、
    前記確率伝搬させた前記動作情報を用いて前記マクロの後段の回路の消費電力を求めること
    を特徴とする消費電力解析方法。
  2. 前記回路動作情報は、前記解析対象の回路のトグル率および解析期間中の前記回路のデューティー比を含むことを特徴とする請求項1に記載の消費電力解析方法。
  3. 前記動作補正情報は、前記マクロの出力信号の動作率に対する係数を含み、前記トグル率を前記係数を用いて補正することを特徴とする請求項2に記載の消費電力解析方法。
  4. 前記動作補正情報は、ダイナミック回路動作する前記マクロの出力信号のプリチャージ制御クロック名と、プリチャージフェーズでの極性情報とを含み、前記マクロの出力信号がプリチャージ極性と逆の値である確率と、制御クロックの動作率を元に前記トグル率を算出することを特徴とする請求項2に記載の消費電力解析方法。
  5. 前記動作補正情報は、さらに前記マクロの出力信号の動作/抑止を制御する制御入力信号名と、当該制御入力信号の制御極性とを含み、前記制御入力信号が抑止値である確率を元に前記トグル率を補正することを特徴とする請求項4に記載の消費電力解析方法。
  6. 前記動作補正情報に含まれる前記係数は、予め前記マクロ単体のシミュレーションにより得た論理出力のトグル率と、実際の波形から得られるトグル率との関係に基づき求めたものを用いることを特徴とする請求項3に記載の消費電力解析方法。
  7. 前記動作補正情報に含まれる前記プリチャージ制御クロック名と、前記極性情報は、前記マクロの仕様に基づき予め用意したものを用いることを特徴とする請求項4に記載の消費電力解析方法。
  8. 解析対象の回路のサイクルベース論理シミュレーション実行により得られた回路動作情報と、前記回路に含まれる特定のマクロの動作情報に対する動作補正情報と、に基づき前記回路内の前記マクロの動作情報を補正し、
    前記回路内の各信号の動作情報を確定する際に、補正後の前記動作情報を前記マクロの後段の回路に確率伝搬させて前記後段の回路の動作情報を確定し、
    前記確率伝搬させた前記動作情報を用いて前記マクロの後段の回路の消費電力を求める制御部を備えたことを特徴とする消費電力解析装置。
JP2011199994A 2011-09-13 2011-09-13 消費電力解析方法、消費電力解析装置および消費電力解析プログラム Expired - Fee Related JP5831067B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011199994A JP5831067B2 (ja) 2011-09-13 2011-09-13 消費電力解析方法、消費電力解析装置および消費電力解析プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011199994A JP5831067B2 (ja) 2011-09-13 2011-09-13 消費電力解析方法、消費電力解析装置および消費電力解析プログラム

Publications (2)

Publication Number Publication Date
JP2013061811A true JP2013061811A (ja) 2013-04-04
JP5831067B2 JP5831067B2 (ja) 2015-12-09

Family

ID=48186428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011199994A Expired - Fee Related JP5831067B2 (ja) 2011-09-13 2011-09-13 消費電力解析方法、消費電力解析装置および消費電力解析プログラム

Country Status (1)

Country Link
JP (1) JP5831067B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100910A (zh) * 2020-09-07 2020-12-18 海光信息技术有限公司 一种处理器的功耗模型训练方法、功耗测试方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020149312A (ja) 2019-03-13 2020-09-17 株式会社東芝 回路設計支援方法、及び回路設計支援プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148833A (ja) * 1998-09-10 2000-05-30 Fujitsu Ltd 消費電力見積方法
JP2001265847A (ja) * 2000-03-22 2001-09-28 Nec Corp 消費電力予測装置およびその予測方法
JP2009075970A (ja) * 2007-09-21 2009-04-09 Fujitsu Ltd 電力演算装置、方法及びプログラム
JP2012043170A (ja) * 2010-08-19 2012-03-01 Ricoh Co Ltd 半導体集積回路の消費電力見積もり方法及び半導体集積回路の消費電力見積もり装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148833A (ja) * 1998-09-10 2000-05-30 Fujitsu Ltd 消費電力見積方法
JP2001265847A (ja) * 2000-03-22 2001-09-28 Nec Corp 消費電力予測装置およびその予測方法
JP2009075970A (ja) * 2007-09-21 2009-04-09 Fujitsu Ltd 電力演算装置、方法及びプログラム
JP2012043170A (ja) * 2010-08-19 2012-03-01 Ricoh Co Ltd 半導体集積回路の消費電力見積もり方法及び半導体集積回路の消費電力見積もり装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100910A (zh) * 2020-09-07 2020-12-18 海光信息技术有限公司 一种处理器的功耗模型训练方法、功耗测试方法及装置

Also Published As

Publication number Publication date
JP5831067B2 (ja) 2015-12-09

Similar Documents

Publication Publication Date Title
US10354042B2 (en) Selectively reducing graph based analysis pessimism
US6763505B2 (en) Apparatus and method for automated use of phase abstraction for enhanced verification of circuit designs
US20070277144A1 (en) Conversion of circuit description to an abstract model of the circuit
US20090210841A1 (en) Static timing analysis of template-based asynchronous circuits
JP2005092885A (ja) デジタル回路の統計的タイミング解析のためのシステムおよび方法
US10025895B2 (en) Circuit simulation using a recording of a reference execution
US20120047477A1 (en) Method of Measuring the Impact of Clock Skew on Slack During a Statistical Static Timing Analysis
TW201140357A (en) Techniques for analysis of logic designs with transient logic
US8627263B2 (en) Gate configuration determination and selection from standard cell library
US9727668B2 (en) Delta retiming in logic simulation
US10248746B1 (en) Method and apparatus for estimating ideal power of an integrated circuit design
US6748573B2 (en) Apparatus and method for removing effects of phase abstraction from a phase abstracted trace
US20110295536A1 (en) Clock jitter analyzing method and apparatus
Behal et al. An automated setup for large-scale simulation-based fault-injection experiments on asynchronous digital circuits
US11593543B2 (en) Glitch power analysis with register transfer level vectors
US6745377B2 (en) Apparatus and method for representing gated-clock latches for phase abstraction
JP5831067B2 (ja) 消費電力解析方法、消費電力解析装置および消費電力解析プログラム
US20090077440A1 (en) Apparatus and method for verifying target cicuit
US10055532B2 (en) Collapsing terms in statistical static timing analysis
US7802214B2 (en) Methods and apparatuses for timing analysis of electronics circuits
US7983891B1 (en) Receiver dependent selection of a worst-case timing event for static timing analysis
US10885248B1 (en) Method for modeling glitches during circuit simulation
JP6089627B2 (ja) 消費電力見積り装置および消費電力見積り方法
Raji et al. A practical metric for soft error vulnerability analysis of combinational circuits
Pagliarini et al. Snap: A novel hybrid method for circuit reliability assessment under multiple faults

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150625

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151012

R150 Certificate of patent or registration of utility model

Ref document number: 5831067

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees