(57)【特許請求の範囲】
【請求項１】
消費電力解析装置を用いた消費電力解析方法において、
前記消費電力解析装置が有する補正処理部が、解析対象の回路のサイクルベース論理シミュレーション実行により得られた回路動作情報と、前記解析対象の回路に含まれる、前記サイクルベース論理シミュレーションによる模擬動作と前記解析対象の回路の出力信号の現実の動作との違いに対応する誤差を含むマクロの動作情報に対する動作補正情報とに基づき、前記解析対象の回路内の前記マクロの動作情報に含まれる前記誤差を補正し、
前記消費電力解析装置が有する確定処理部が、前記解析対象の回路内の各信号の動作情報を確定する際に、補正後の動作情報を前記マクロの後段の回路に確率伝搬させて前記マクロの後段の回路の動作情報を確定し、
前記消費電力解析装置が有する消費電力計算部が、前記確率伝搬させた前記動作情報を用いて前記マクロの後段の回路の消費電力を求めること
を特徴とする消費電力解析方法。
【請求項２】
前記回路動作情報は、前記解析対象の回路のトグル率および解析期間中の前記解析対象の回路のデューティー比を含むことを特徴とする請求項１に記載の消費電力解析方法。
【請求項３】
前記動作補正情報は、前記マクロの出力信号の動作率に対する係数を含み、前記トグル率を前記係数を用いて補正することを特徴とする請求項２に記載の消費電力解析方法。
【請求項４】
前記動作補正情報は、ダイナミック回路動作する前記マクロの出力信号のプリチャージ制御クロック名と、プリチャージフェーズでの極性情報とを含み、前記マクロの出力信号がプリチャージ極性と逆の値である確率と、制御クロックの動作率を元に前記トグル率を算出することを特徴とする請求項２に記載の消費電力解析方法。
【請求項５】
前記動作補正情報は、さらに前記マクロの出力信号の動作／抑止を制御する制御入力信号名と、当該制御入力信号の制御極性とを含み、前記制御入力信号が抑止値である確率を元に前記トグル率を補正することを特徴とする請求項４に記載の消費電力解析方法。
【請求項６】
前記動作補正情報に含まれる前記係数は、予め前記マクロ単体のシミュレーションにより得た論理出力のトグル率と、実際の波形から得られるトグル率との関係に基づき求めたものを用いることを特徴とする請求項３に記載の消費電力解析方法。
【請求項７】
前記動作補正情報に含まれる前記プリチャージ制御クロック名と、前記極性情報は、前記マクロの仕様に基づき予め用意したものを用いることを特徴とする請求項４に記載の消費電力解析方法。
【請求項８】
解析対象の回路のサイクルベース論理シミュレーション実行により得られた回路動作情報と、前記解析対象の回路に含まれる、前記サイクルベース論理シミュレーションによる模擬動作と前記解析対象の回路の出力信号の現実の動作との違いに対応する誤差を含むマクロの動作情報に対する動作補正情報とに基づき前記解析対象の回路内の前記マクロの動作情報に含まれる前記誤差を補正する補正処理部と、
前記解析対象の回路内の各信号の動作情報を確定する際に、補正後の動作情報を前記マクロの後段の回路に確率伝搬させて前記マクロの後段の回路の動作情報を確定する確定処理部と、
前記確率伝搬させた前記動作情報を用いて前記マクロの後段の回路の消費電力を求める消費電力計算部を備えることを特徴とする消費電力解析装置。
【請求項９】
消費電力解析装置の消費電力解析プログラムにおいて、
前記消費電力解析装置が有する補正処理部に、解析対象の回路のサイクルベース論理シミュレーション実行により得られた回路動作情報と、前記解析対象の回路に含まれる、前記サイクルベース論理シミュレーションによる模擬動作と前記解析対象の回路の出力信号の現実の動作との違いに対応する誤差を含むマクロの動作情報に対する動作補正情報とに基づき、前記解析対象の回路内の前記マクロの動作情報に含まれる前記誤差を補正させ、
前記消費電力解析装置が有する確定処理部に、前記解析対象の回路内の各信号の動作情報を確定する際に、補正後の動作情報を前記マクロの後段の回路に確率伝搬させて前記マクロの後段の回路の動作情報を確定させ、
前記消費電力解析装置が有する消費電力計算部に、前記確率伝搬させた前記動作情報を用いて前記マクロの後段の回路の消費電力を求めさせること
を特徴とする消費電力解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路の消費電力を計算する消費電力解析方法、消費電力解析装置および消費電力解析プログラムに関する。
【背景技術】
【０００２】
近年、システムの高集積化に伴う電力密度低減の要求や、Ｅｎｅｒｇｙ  Ｓｔａｒ、省エネ法といった電気機器の消費電力規制の制定などにより、ＬＳＩ等の回路の低消費電力化への要求がますます厳しくなり、ＬＳＩ設計における低消費電力化技術の重要性が増している。
【０００３】
ＬＳＩ設計時の消費電力解析手法として、論理シミュレーションによって得られた回路各部の動作情報を元に回路要素ごとの消費電力を算出する手法が一般的におこなわれている。このような動作情報を取得するための論理シミュレーションとしては、セル・マクロに実際の信号伝搬遅延を反映した上で、ゲートレベルのイベントドリブンシミュレーションを用いるとグリッチなども考慮した精度が高い動作情報が得られる。しかし、このような実遅延を反映したゲートレベルのイベントドリブンシミュレーションには、非常にシミュレーション時間がかかる。近年のＬＳＩは大規模化しており、チップレベルでこのようなイベントドリブンシミュレーションが現実的な時間では実行できない場合が増加している。
【０００４】
論理シミュレーションの高速化手法としては、ハードウェアエミュレータによるサイクルベース論理シミュレーションによりゲートレベルシミュレーションを高速化する手法がある。また、ＲＴＬやさらに高位のＢｅｈａｖｉｏｒレベルなど、ハードウェアの動作をより抽象度の高いレベルで記述することで記述量を減らしてシミュレーション時間を削減する手法がある。たとえば、クロックレベル記述という、ＲＴＬと動作レベル記述の中ほどの抽象度をもった動作記述で記述されたデータを用いてサイクルベースの論理シミュレーションをおこない、その結果得られた動作情報および別途用意したセル・マクロの電力計算式を元に消費電力計算をおこなう技術がある（たとえば、下記特許文献１参照。）。
【０００５】
一方、ＬＳＩの大規模化により消費電力解析に用いる動作情報が巨大化し、ファイルサイズの増大や情報取得時間の増大などにより、ＬＳＩの全内部ノードの情報を取得・保持しておくことが困難になってきている。この問題の対処方法としては、たとえば、対象デザインの入出力信号、順序セル出力、機能マクロの入出力信号など限られた場所の動作情報のみを取得する。また、この限られた場所以外については、動作情報を与えた場所を起点として各素子の入力側から出力側に向かって動作情報を確率的に生成・伝播していくことで全ノードの動作情報を生成するという手法が知られている。この手法は、市販のＣＡＤツールの機能として組み込まれている。たとえば、Ａｐａｃｈｅ社ＰｏｗｅｒＡｒｔｉｓｔ、Ｃａｄｅｎｃｅ社ＰｏｗｅｒＭｅｔｅｒ、Ｓｙｎｏｐｓｙｓ社ＰｒｉｍｅＴｉｍｅ  ＰＸなどがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２９３１６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＬＳＩの消費電力解析用の動作情報をサイクルベースの論理シミュレーションから取得する場合を考えてみる。サイクルベース論理シミュレーションでは、各素子の値の評価がクロックサイクルごとに１度だけおこなわれるため、クロックサイクル中で変化する情報は欠落してしまい、結果として得られる各内部信号の動作は１クロックサイクルで１回しか得られない。動作情報の適用方法としては、上述したように、回路の全ネットにシミュレーションで得られた動作情報を適用する方法や、解析対象の入出力信号、順序セルの出力、機能マクロの出力信号など限られたノードに動作情報を適用して残りの信号には動作情報の確率的な伝搬処理により動作情報を生成・適用する方法などがある。
【０００８】
マクロを含まない回路における各セルの動作情報については、動作情報の確率伝搬手法の改善などにより動作率について、ある程度の精度向上が期待できる。しかし、ある程度規模の大きい回路をまとめたマクロではマクロ内部の論理が複雑なため入力信号の動作情報を出力信号に確率伝搬することが困難なため、サイクルベースの動作情報と実際の動作の誤差が大きいマクロを含む回路において、確率伝搬手法を改善することだけで動作率の精度を向上させることは難しい。
【０００９】
マクロ自体の消費電力については、動作情報の不確実さを予め考慮した電力モデルを作成することでマクロの消費電力解析の精度を上げることが可能であるが、そのマクロの出力ピンにつながる後段の論理回路については、仮に確率伝搬の手法を用いたとしても伝搬元であるマクロ出力の動作情報が不正確なため、精度を上げることができず、結果として消費電力解析の解析精度の低下につながる。
【００１０】
このようなサイクルベースの動作情報と実際の動作の誤差が大きいマクロとして、たとえば、ＸＯＲ論理や多対一のセレクタ構造などのようにグリッチが発生しやすい構造をもつマクロの出力信号や、ダイナミック回路を使った機能マクロ論理の出力信号などがある。
【００１１】
開示の消費電力解析方法、消費電力解析装置および消費電力解析プログラムは、上述した問題点を解消するものであり、マクロ出力の後段の回路の動作情報を回路単位で補正して回路全体の消費電力解析の精度を向上することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、開示技術は、消費電力解析装置を用いた消費電力解析方法において、前記消費電力解析装置が有する補正処理部が、解析対象の回路のサイクルベース論理シミュレーション実行により得られた回路動作情報と、前記解析対象の回路に含まれる、前記サイクルベース論理シミュレーションによる模擬動作と前記解析対象の回路の出力信号の現実の動作との違いに対応する誤差を含むマクロの動作情報に対する動作補正情報とに基づき、前記解析対象の回路内の前記マクロの動作情報に含まれる前記誤差を補正し、前記消費電力解析装置が有する確定処理部が、前記解析対象の回路内の各信号の動作情報を確定する際に、補正後の動作情報を前記マクロの後段の回路に確率伝搬させて前記マクロの後段の回路の動作情報を確定し、前記消費電力解析装置が有する消費電力計算部が、前記確率伝搬させた前記動作情報を用いて前記マクロの後段の回路の消費電力を求めることを含む。
【発明の効果】
【００１３】
開示の消費電力解析方法、消費電力解析装置および消費電力解析プログラムによれば、マクロ出力の後段の回路の動作情報を回路単位で補正することにより、回路全体の消費電力解析の精度を向上できるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施の形態１にかかる消費電力解析の処理概要を示す図である。
【図２】図２は、実施の形態１にかかる消費電力解析装置を示すブロック図である。
【図３】図３は、消費電力解析処理の手順を示すフローチャートである。
【図４】図４は、グリッチの信号波形を説明する図である。
【図５】図５は、ダイナミック回路の出力信号波形を説明する図である。
【図６】図６は、グリッチを考慮した補正情報を示す図表である。
【図７】図７は、ダイナミック回路の補正情報を示す図表である。
【図８】図８は、動作情報補正処理の詳細な手順の一例を示すフローチャートである。
【図９】図９は、消費電力解析をおこなう回路と動作情報、動作補正情報の例を示す回路図である。
【図１０】図１０は、マクロインスタンスに対する動作情報補正処理、および動作情報伝搬を説明する図である。
【図１１】図１１は、実施の形態１にかかる電力解析による電力算出例を説明する回路図である（その１）。
【図１２】図１２は、実施の形態１にかかる電力解析による電力算出例を説明する回路図である（その２）。
【図１３】図１３は、実施の形態１の電力解析の手法を未適用時の電力算出例を説明する回路図である。
【図１４】図１４は、実施の形態２にかかる動作補正情報とマクロの回路構成を示す図である。
【図１５】図１５は、実施の形態２にかかる動作情報補正処理を説明する図である。
【図１６】図１６は、実施の形態２にかかるマクロを含んだ回路を示す図である。
【図１７】図１７は、動作情報の補正処理を説明する回路図である。
【図１８】図１８は、動作情報を確定した結果を説明する回路図である。
【図１９】図１９は、実施の形態２の電力解析の手法を未適用時の電力算出例を説明する回路図である。
【発明を実施するための形態】
【００１５】
（実施の形態１）
以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。開示技術は、サイクルベース論理シミュレーションで得られた動作情報を元にして回路（ゲート）単位で消費電力を計算することにより、回路単位での消費電力の解析精度を向上させる。特に、動作情報を確率伝搬させて動作情報を精度向上させることが困難なマクロが含まれても、このマクロ出力から先の回路の動作情報の精度を改善することにより、回路全体の電力解析精度を向上させる。
【００１６】
（消費電力解析の処理概要）
図１は、実施の形態１にかかる消費電力解析の処理概要を示す図である。開示技術では、サイクルベース動作情報と実際の出力信号の動作が大きく異なるマクロ（対象マクロ）１０１について、マクロ１０１の補正対象となる出力ピン１０１ａの出力信号ごとの補正情報を別途用意しておく。そして、（１）補正情報に基づいて、回路１００全体の動作情報のうち対象となるマクロ１０１の出力ピン１０１ａの出力信号の動作情報を補正する。これにより、（２）出力ピン１０１ａには、補正後の動作情報が入る。つぎに、（３）電力計算前の回路１００内の各信号の動作情報を確定するフェーズで、この補正後の動作情報を後段のゲート（回路）１０２に確率伝搬する。そして、（４）電力計算処理では、確率伝搬による伝搬後の最終的な動作情報に基づいて消費電力解析を実行することにより、回路１００の消費電力精度を向上させる。
【００１７】
実施形態の消費電力解析で用いる内部ノードの動作情報としては、信号のトグル率（基準クロック１サイクル内にその信号が反転する回数の期待値）と、信号のデューティー比（全解析期間のうちその信号の値が１であった期間の比率）を想定している。消費電力解析に用いる動作情報としては、この他に動作情報の確率伝搬の補助情報としてサイクル内でその信号が変化する可能性がある範囲を示すタイミングウィンドウという情報などを用いることも考えられるが、以下の説明では、トグル率およびデューティー比を用いている。
【００１８】
（消費電力解析装置の構成）
図２は、実施の形態１にかかる消費電力解析装置のブロック図を示す図である。図２に示す消費電力解析装置２００は、汎用のコンピュータやサーバを用いて構成することができる。消費電力解析装置２００は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、Ｉ／Ｆ２０４と、バス２０５と、ＨＤＤ等のストレージ２０６を含む。
【００１９】
ＣＰＵ２０１は、ＲＯＭ２０２に格納された消費電力解析プログラムを実行し、ＲＡＭ２０３をワークエリアとして用いることにより、消費電力解析処理をおこなう制御部として機能する。Ｉ／Ｆ２０４にはキーボード２１０や外部のハードウェアエミュレータ２１１等からサイクルベースの回路動作情報、解析対象ネットリスト、マクロ１０１の動作補正情報等が入力され、ストレージ２０６に格納される。ＣＰＵ２０１は、これら入力された情報に基づきマクロ１０１の動作情報の補正処理、および消費電力計算をおこなう。計算後の消費電力は、ディスプレイやＩ／Ｆ２０４を介して外部出力することができる。
【００２０】
（消費電力解析の全体概要）
図３は、消費電力解析処理の手順を示すフローチャートである。消費電力解析装置２００がおこなう消費電力解析処理全体の概要を説明する。以下の説明では、ネットリスト中に実際に埋め込まれている個々のマクロをマクロの「インスタンス」と呼び、部品の種類としての「マクロ」１０１という文言と使い分ける。
【００２１】
１．準備：ステップＳ３０１
サイクルベース動作との誤差が大きい出力信号をもつマクロ１０１の動作補正情報を予め用意しておく（ステップＳ３０１）。用意しておく情報は、ハードウェアエミュレータ２１１のシミュレーション処理により得たサイクルベースの回路動作情報３１０と、電力の解析対象となる回路のネットリスト３１１と、マクロ１０１の動作補正情報３１２である。サイクルベースの回路動作情報３１０は、回路１００内全ノードまたはマクロインスタンスの出力信号を含む限定的なノードの動作情報のどちらでもよい。動作補正情報３１２は、マクロ名、対象出力信号名、補正用情報等を含む。
【００２２】
２．動作情報補正処理：ステップＳ３０２
つぎに、サイクルベースの回路動作情報３１０、ネットリスト３１１、動作補正情報３１２の入力に基づき回路動作情報３１０を補正する処理をおこなう。この補正処理では、ネットリスト３１１に含まれる全マクロインスタンスのうち、マクロ１０１が動作補正情報３１２に含まれるものに対して、そのマクロインスタンスの出力ピン１０１ａのうち動作補正情報３１２に記述された全ての出力ピン１０１ａについて、出力ピン１０１ａが接続されたネットの動作情報を動作補正情報３１２に基づいて補正する。これにより、補正後のサイクルベースの回路動作情報３１０ａが得られる。この補正処理における動作情報および補正方法の具体的な内容については後述する。
【００２３】
３．回路内動作情報確定処理：ステップＳ３０３
消費電力計算のために回路１００内の全ネットの動作情報を確定する処理では、動作情報補正処理ステップＳ３０２において動作補正をおこなった全てのネットの回路動作情報３１０ａをそのネットの後段の回路に対して確率伝搬させて、順序セル１０３、マクロ１０１、回路出力１０４に到達するまで回路動作情報３１０ａの伝搬をおこなう。この回路内動作情報確定処理では、電力解析に必要なその他のデータ（たとえば、配線容量情報、セル・マクロの電力ライブラリ等）３１３についても入力を受けて処理できる。そして、他の動作情報が未確定のネットがある場合は、確率伝搬処理により回路動作情報３１０ａを確定する。
【００２４】
４．消費電力計算処理：ステップＳ３０４
回路内動作情報確定処理ステップＳ３０３によって伝播された、補正された回路動作情報３１０ａを用いて消費電力計算をおこない、消費電力解析結果３１４の情報を得る。上記の各情報（データ）は、消費電力解析装置２００のストレージ２０６やＲＡＭ２０３等に格納後に外部出力される。
【００２５】
（動作情報補正処理について）
つぎに、回路動作情報３１０の補正処理について説明する。回路動作情報３１０の補正では、ａ．グリッチを考慮した補正、ｂ．ダイナミック回路を考慮した補正をおこなう。
【００２６】
これらグリッチとダイナミック回路について説明しておく。サイクルベースの動作情報と実際の動作の誤差が大きいマクロとしては、たとえば、ＸＯＲ論理や多対一のセレクタ構造などのようにグリッチが発生しやすい構造をもつマクロの出力信号や、ダイナミック回路を使った機能マクロ論理の出力信号などがある。
【００２７】
図４は、グリッチの信号波形を説明する図である。図４（ａ）は、サイクルベースのシミュレーションで取得した信号波形であり、図４（ｂ）は、この信号波形にグリッチが乗った状態を示している。図４（ｂ）に示すようなグリッチが乗ることにより、サイクルベースのシミュレーションで取得した信号波形より動作率が大きくなることが分かる。定常的にグリッチが乗りやすい回路構造（ＸＯＲ論理や多対一のセレクタ等）をもつマクロ１０１については、消費電力計算上の誤差は非常に大きくなる。具体的には、グリッチが乗った信号波形は、クロックサイクルＣＫ内で変化するため、この信号波形のトグル変化（反転率）まで考慮した消費電力計算がおこなえない。
【００２８】
図５は、ダイナミック回路の出力信号波形を説明する図である。ダイナミック回路では毎クロックサイクルＣＫごとに評価動作が実行される。仮に、ダイナミック回路の論理出力値として回路のプリチャージ時の出力値と逆の値が出力され続けていた場合、実際の回路動作としてはプリチャージのフェーズのたびに信号が強制的にプリチャージ値（論理出力値と逆の値）にドライブされることになる。
【００２９】
これにより、図５（ｂ）に示すように、毎クロックサイクルにパルスが乗ったような信号波形になる。サイクルベースのシミュレーションの場合には動作情報として取得されるのは評価フェーズの値のみであるため、図５（ａ）に示す信号波形を動作情報として記録することとなり、回路の実際の動作とかけ離れて動作率が低くなってしまう。なお、プリチャージパルスを隠ぺいするためにマクロ１０１の出力部分にラッチを設けることが多いが、このラッチによる遅延増加の影響を避けるために、ダイナミック回路動作する信号波形をそのままマクロ１０１から出力させることも少なくない。
【００３０】
ａ．グリッチを考慮した補正について
上記グリッチの影響を考慮した補正として、マクロの出力信号にグリッチの乗りやすさに応じた係数値を補正情報とする。そして、回路動作情報３１０に対して、出力信号のトグル率を係数倍して補正する。
【００３１】
図６は、グリッチを考慮した補正情報を示す図表である。図６に示すグリッチに関する動作補正情報３１２の例では、たとえば、マクロ１の出力信号２に対して係数値２．０が設定されている。この「係数」については、たとえば事前にマクロ１０１単体のシミュレーションなどにより得た論理出力のトグル率と、実際の波形から得られたトグル率との関係を調べることにより予め求め用意しておくことができる。この係数は、トグル率に掛け合わせられる。すなわち、補正式は下記となる。
新トグル率＝トグル率×係数値
新デューティー比＝デューティー比
【００３２】
ｂ．ダイナミック回路を考慮した補正について
上記ダイナミック回路を考慮した補正では、出力信号ごとに制御クロックピン名、プリチャージ極性を補正情報とする。制御クロックピンは、出力信号を作っているダイナミック回路のプリチャージ／評価フェーズのタイミングを取っているクロック入力ピンであり、プリチャージ極性は、プリチャージフェーズでその出力信号が０になるか１になるかを示す情報である。
【００３３】
図７は、ダイナミック回路の補正情報を示す図表である。図７に示すダイナミック回路に関する動作補正情報３１２の例では、たとえば、マクロ２の出力信号１に対してプリチャージ極性が１、プリチャージをする制御クロック名がＣＫ２として設定される。これらの補正情報である「制御クロックピン名」、「プリチャージ極性」はマクロ１０１の論理仕様書、もしくはマクロ１０１の開発元から容易に入手でき予め用意できる情報である。ダイナミック回路出力は、論理出力値がプリチャージ極性と同じときには信号変化が起きず、プリチャージ極性と逆のときには制御クロックと同じ周期のパルス信号が出力されることになる。このため、デューティー比が信号が１である期間の割合であることに注意すると、補正式はプリチャージ極性が１の場合と０の場合でそれぞれ以下のようになる。下記では、回路動作情報に含まれるマクロ１０１の出力信号がプリチャージ極性と逆の値である確率と、制御クロックの動作率を元にトグル率を算出する。
【００３４】
プリチャージ極性＝０の場合
新トグル率＝制御クロックトグル率×デューティー比
新デューティー比＝デューティー比−デューティー比／２＝デューティー比／２
【００３５】
プリチャージ極性＝１の場合
新トグル率＝制御クロックトグル率×（１−デューティー比）
新デューティー比＝デューティー比＋（１−デューティー比）／２
【００３６】
さらに、ダイナミック回路の動作を抑止する制御入力信号がある場合は、マクロ１０１の論理仕様書等に基づき、これら「制御入力信号」と、「制御極性」についても情報として補正情報に加えることができる。図７の例では、たとえば、マクロ２の制御入力信号がＥＮ１、制御極性が１である。これにより、制御入力信号のデューティー比をダイナミック回路が動作した割合とみなして上記の新トグル率を下記のようにさらに補正してもよい。この場合、制御入力信号が抑止値である確率を元に補正する。
【００３７】
制御入力信号が１で回路動作の場合
新トグル率’＝新トグル率×（制御入力信号のデューティー比）
制御入力信号が０で回路動作の場合
新トグル率’＝新トグル率×（１−制御入力信号のデューティー比）
【００３８】
制御入力信号がある場合の新デューティー比は、プリチャージパルスによるデューティーの変化が制御入力信号のデューティー比によって補正されるため、以下のようになる。
プリチャージ極性＝０，制御入力信号＝１で回路動作の場合
新デューティー比＝デューティー比−デューティー比／２×（制御入力信号デューティー比）
プリチャージ極性＝０，制御入力信号＝０で回路動作の場合
新デューティー比＝デューティー比−デューティー比／２×（１−制御入力信号デューティー比）
プリチャージ極性＝１，制御入力信号＝１で回路動作の場合
新デューティー比＝デューティー比＋（１−デューティー比）／２×（制御入力信号デューティー比）
プリチャージ極性＝１，制御入力信号＝０で回路動作の場合
新デューティー比＝デューティー比＋（１−デューティー比）／２×（１−制御入力信号デューティー比）
【００３９】
また、マクロ１０１内部でダイナミック回路出力がマクロ出力に至る途中でさらにグリッチが乗る場合などは、一つの出力信号に上記ａ．グリッチと、ｂ．ダイナミック回路の両方の補正情報をもたせ、ｂ．ダイナミック回路の補正後に、ａ．グリッチの補正をおこなえばよい。
【００４０】
（動作情報補正処理の流れについて）
図８は、動作情報補正処理の詳細な手順の一例を示すフローチャートである。消費電力解析装置２００がおこなう、図３のステップＳ３０２に示した動作情報補正処理の詳細について説明する。はじめに、ネットリスト３１１に含まれる全てのマクロインスタンスから動作情報補正処理（ステップＳ３０２）がまだ実行されていないものを一つ選択する（ステップＳ８０１）。たとえば、インスタンスＡ（マクロ種類Ｂ）を選択したとする。
【００４１】
つぎに、動作補正情報３１２の中からマクロＢの情報を取得する（ステップＳ８０２）。そして、動作補正情報３１２にマクロＢの情報が存在するかチェックし（ステップＳ８０３）、存在すれば（ステップＳ８０３：Ｙｅｓ）、ステップＳ８０４に移行し、存在しなければ（ステップＳ８０３：Ｎｏ）、ステップＳ８０１に戻る。
【００４２】
つぎに、ステップＳ８０４では、インスタンスＡの出力ピン１０１ａから、未選択の出力ピン１０１ａを一つ選択する（ステップＳ８０４）。たとえば、出力ピンＳを選択したとする。そして、動作補正情報３１２に選択した出力ピンＳの情報が存在するかチェックし（ステップＳ８０５）、存在すれば（ステップＳ８０５：Ｙｅｓ）、ステップＳ８０６に移行し、存在しなければ（ステップＳ８０５：Ｎｏ）、ステップＳ８０４に戻る。
【００４３】
つぎに、ステップＳ８０６では、回路動作情報３１０からインスタンスＡの出力ピンＳにつながる信号の動作情報（トグル率、デューティー比）を取得し、出力ピンＳの補正情報に基づいて新しいトグル率とデューティー比を求め、回路動作情報３１０を更新する。この際、補正処理をおこなったということを記録しておく（ステップＳ８０６）。
【００４４】
つぎに、インスタンスＡの全ての出力ピン１０１ａを選択したかチェックし（ステップＳ８０７）、全ての出力ピン１０１ａを選択済みであれば（ステップＳ８０７：Ｙｅｓ）、ステップＳ８０８に移行し、未だ未選択の出力ピン１０１ａがあれば（ステップＳ８０７：Ｎｏ）、ステップＳ８０４に戻る。
【００４５】
最後に、ステップＳ８０８では、ネットリスト３１１中の全てのマクロインスタンスを選択したかチェックし（ステップＳ８０８）、未選択のマクロインスタンスがあれば（ステップＳ８０８：Ｎｏ）、ステップＳ８０１に戻り、全てのマクロインスタンスを選択済みであれば（ステップＳ８０８：Ｙｅｓ）、以上説明した動作情報補正処理を終了する。
【００４６】
（消費電力解析処理の具体例）
つぎに、消費電力解析処理について、具体的な回路例を用いて説明する。図９は、消費電力解析をおこなう回路と動作情報、動作補正情報の例を示す回路図である。各ネットに記載されたトグル率Ｔとデューティー比Ｄ、および動作補正情報３１２を入力として処理する場合の例について説明する。
【００４７】
図１０は、マクロインスタンスに対する動作情報補正処理、および動作情報伝搬を説明する図である。図１０には、一つのマクロインスタンスＡ（マクロＸ）に対する処理別に上段、中段、下段にそれぞれ記載してある。はじめに、図１０の上段に示すように、上述した２．動作情報補正処理（ステップＳ３０２）では、マクロインスタンスＡは、マクロＸ（１０１）のインスタンスなので、動作補正情報３１２からマクロＸの情報を検索する。これにより、マクロＸの補正情報として、出力ピンＳ１とＳ２の補正情報が得られる。得られた補正情報から、出力ピンＳ１は、上のａ．グリッチの補正、出力ピンＳ２はｂ．ダイナミック回路の補正をおこなうことになる。
【００４８】
そして、動作情報補正処理（ステップＳ３０２）では、図１０の中段に示すように、上記補正式にしたがって、各出力ピンＳ１，Ｓ２につながるネットの回路動作情報３１０を補正する。たとえば、出力ピンＳ１のトグル率Ｔ（ｔｏｇｇｌｅ＿ｒａｔｅ）は、０．３×２．５＝０．７５に補正され、出力ピンＳ２のデューティー比Ｄ（ｄｕｔｙ）は、０．４＋（１−０．４）／２＝０．７に補正される。
【００４９】
この後、上述した３．回路内動作情報確定処理（ステップＳ３０３）では、図１０の下段に示すように、補正をおこなった２つのネットの回路動作情報３１０ａを後段の回路に伝搬する。この回路例では、後段の回路が単純なバッファ（Ｂｕｆ）１００１のため、入力信号の回路動作情報３１０ａをそのまま出力まで伝搬させるだけでよく、確率計算は必要ない。
【００５０】
つぎに、上述した補正後の回路動作情報３１０ａを元にした消費電力解析について説明する。マクロ１０１後段の各バッファの消費電力について考えると、バッファ（Ｂｕｆ）１００１のスイッチング電力（回路が動作することで消費される電力）は「（トグル率）×（信号変化１回当たりのバッファの消費エネルギー）」で求められる。このため、インスタンスＡ（マクロＸ）１０１の出力ピンＳ１につながるバッファ１００１ａについては、本実施の形態の電力解析の手法を適用しない場合に比べてスイッチング電力が２．５倍（０．７５／０．３）になり、出力ピンＳ２につながるバッファ１００１ｂについては、ダイナミック電力が６倍（１．２／０．２）になる。
【００５１】
これは、本実施の形態の電力解析の手法を未適用としていた、サイクルベース動作率を元に解析した消費電力では過小評価となることを意味する。上記ａ．グリッチを考慮した補正については、係数の算出時動作と実動作の違いなどにより、多少の補正誤差は出るが、ｂ．ダイナミック回路を考慮した補正については、ダイナミック回路動作による信号波形を元にした補正であるため、ほぼ誤差のない補正となる。
【００５２】
また、リーク電力（漏れ電流などによって回路が動作しなくても消費し続ける電力）について、このリーク電力は、一般的に入力信号の値によって変わるため、このような入力信号の値を考慮したリーク電力解析をおこなう場合は、入力信号のデューティー比を用いて計算をおこなう。このことから、ｂ．ダイナミック回路を考慮した補正では、上記の手法によりデューティー比も修正されるため、リーク電力の解析精度についても併せて向上することができる。
【００５３】
（消費電力の算出例）
つぎに、本実施の形態にかかるスイッチング電力の算出例について説明する。例として、図９に示した回路１００について、マクロを除いた部分のスイッチング電力について説明する。回路動作情報３１０は、各回路の入力信号と、マクロ１０１の出力信号に与えられており、その他のネットの動作情報は、確率伝搬によって求める。説明を簡単にするために、図示の回路例では、マクロ１０１の他は、２入力のＡＮＤ、ＯＲ、ＸＯＲと、バッファ（Ｂｕｆ）の回路のみ使用する。また、説明を単純にするためにマクロ１０１以外の各ゲートのスイッチング電力を以下のように計算することにする。
各ゲートのスイッチング電力＝（対象ゲートの出力信号のトグル率）×１００［ｕＷ］
【００５４】
動作情報の確率伝搬の手法としては、単純なモデルを用いる。ＡＮＤ、ＯＲの場合は、片側の入力信号が変化したときにもう片側の入力がＡＮＤなら１、ＯＲなら０のときにその信号変化が出力に伝搬し、ＸＯＲの場合は他方の入力信号の値に関わらず出力に伝搬するとしている。そして、２つの入力信号および出力信号（トグル率Ｔ，デューティー比Ｄ）を（Ｔ１，Ｄ１）（Ｔ２，Ｄ２）（ＴＯ，ＤＯ）としたときに、（Ｔ１，Ｄ１）（Ｔ２，Ｄ２）から（ＴＯ，ＤＯ）を以下のように求めることにする。
【００５５】
ＡＮＤ：ＴＯ＝Ｔ１×Ｄ２＋Ｔ２×Ｄ１，ＤＯ＝Ｄ１×Ｄ２
ＯＲ  ：ＴＯ＝Ｔ１×（１−Ｄ２）＋Ｔ２×（１−Ｄ１），ＤＯ＝１−（１−Ｄ１）×（１−Ｄ２）
ＸＯＲ：ＴＯ＝Ｔ１＋Ｔ２，ＤＯ＝Ｄ１×（１−Ｄ２）＋（１−Ｄ１）×Ｄ２
バッファは入力の（Ｔ，Ｄ）をそのまま出力に用いる。
【００５６】
図１１、図１２は、実施の形態１にかかる電力解析による電力算出例を説明する回路図である。図１１に示すように、上述した２．動作情報補正処理（ステップＳ３０２）では、動作補正情報３１２として、マクロＸの出力ピンＳ１，Ｓ２に対する補正情報が与えられているため、マクロインスタンスＡ，Ｂそれぞれの出力ピンＳ１，Ｓ２の出力信号の動作情報を補正することになる。上述したａ．グリッチ、ｂ．ダイナミック回路を考慮した計算式に基づいて求めた各信号の新しい（補正後の）動作情報を矢印（→）後段に併記している。出力ピンＳ１については、トグル率を係数に基づき２．５倍、出力ピンＳ２については、クロックＣＫのトグル率２．０に（１−デューティー比）を掛けたものが新しいトグル率としている。
【００５７】
上述した３．回路内動作情報確定処理（ステップＳ３０３）では、補正した回路動作情報３１０ａを後段の回路に確率伝搬する。伝搬後の各ネットの動作情報を図１２に示す。この結果に基づいて消費電力計算をおこなったマクロ以外の回路（ａ）〜（ｈ）のダイナミック電力は、（ａ）０．３×１００＋（ｂ）０．９×１００＋（ｃ）０．６×１００＋（ｄ）０．４１×１００＋（ｅ）１．５３×１００＋（ｆ）１．５３×１００＋（ｇ）１．６×１００＋（ｈ）１．６×１００＝８４７ｕＷとなる。
【００５８】
対比のために、本実施の形態の電力解析の手法を適用しなかった場合の電力について説明する。図１３は、実施の形態１の電力解析の手法を未適用時の電力算出例を説明する回路図である。図１３には、入力側から出力側に向かって動作情報を確率伝搬して全ネットの動作情報を確定した状態を示している。確率伝搬で生成した回路動作情報は下線付きで示した。ここで、マクロＸ（１０１）は、入力から出力への動作情報の確率伝搬ができず、出力値に設定された動作情報をそのまま後段に伝搬するものとする。このときのマクロＸ（１０１）以外の部分のダイナミック電力は、（ａ）０．３×１００＋（ｂ）０．９×１００＋（ｃ）０．６×１００＋（ｄ）０．２９×１００＋（ｅ）０．５２×１００＋（ｆ）０．５２×１００＋（ｇ）１．３×１００＋（ｈ）１．３×１００＝５７３ｕＷとなる。このように、本実施の形態１による電力解析の手法を適用しなかった場合には、約３２％過小に消費電力を計算していることが分かる。
【００５９】
以上説明した実施の形態１によれば、動作情報取得のための論理シミュレーションの工数を増大させることなく、電力解析の精度を向上させることができる。動作情報の補正（変換）のための処理が入るだけで、その後の電力解析処理自体に大きな処理の追加はないため、全体の解析時間へのオーバーヘッドも小さく、短時間で解析できる。
【００６０】
（実施の形態２）
つぎに、実施の形態２では、ダイナミック回路動作を考慮した回路動作情報の補正において、実施の形態１の構成に加えて、複数クロックおよび制御入力信号が付いた場合の動作補正の例について説明する。図１４は、実施の形態２にかかる動作補正情報とマクロの回路構成を示す図である。動作補正情報３１２における制御入力信号の極性は、制御入力が１で回路動作の場合に１、０で回路動作の場合に０としている。以下の説明では、この動作補正情報３１２を用いるものとして説明する。
【００６１】
マクロＡ（１０１）は、ダイナミック回路１４０１，１４０２を備え、ダイナミック回路１４０１は、制御信号ＥＮ１および制御クロックＣＫ１で動作し、出力ピンＳ１から信号出力する。ダイナミック回路１４０２は、制御信号ＩＮＨ２および制御クロックＣＫ２で動作し、出力ピンＳ２，Ｓ３から信号出力する。
【００６２】
図１５は、実施の形態２にかかる動作情報補正処理を説明する図である。図１５上段が補正前の動作情報であり、下段が補正後の動作情報となる。図１５の上段に示すように、マクロＡ（１０１）の補正前の動作情報の各信号について、トグル率Ｔ，デューティー比Ｄ（Ｔ，Ｄ）について説明する。制御クロックＣＫ１は（２，０．５）、制御クロックＣＫ２は（０．５，０．５）、制御信号ＥＮ１は（０．３，０．７）、制御信号ＩＮＨ２は（０．２，０．２）、出力ピンＳ１は（０．３，０．３）、出力ピンＳ２は（０．１，０．４）、出力ピンＳ３は（０．１，０．４）であったとする。
【００６３】
動作補正情報３１２を用いた補正により、図１５の下段に示すように、出力ピンＳ１に対する動作補正をおこなうと、トグル率ｔｏｇｇｌｅ＿ｒａｔｅ＝（１−ｄｕｔｙ）×（制御ＣＫ  ｔｏｇｇｌｅ＿ｒａｔｅ）×制御信号ｄｕｔｙ＝（１−０．３）×２．０×０．７＝０．９８となる。また、デューティー比ｄｕｔｙ＝ｄｕｔｙ＋[（１−ｄｕｔｙ）／２｝×制御信号ｄｕｔｙ＝０．３＋｛（１−０．３）／２｝×０．７＝０．５４５となる。
【００６４】
出力ピンＳ２に対する動作補正をおこなうと、トグル率ｔｏｇｇｌｅ＿ｒａｔｅ＝（１−ｄｕｔｙ）×（制御ＣＫ  ｔｏｇｇｌｅ＿ｒａｔｅ）×（１−制御信号ｄｕｔｙ）＝（１−０．４）×０．５×（１−０．２）＝０．２４となる。また、デューティー比ｄｕｔｙ＝ｄｕｔｙ＋｛（１−ｄｕｔｙ）／２｝×（１−制御信号ｄｕｔｙ）＝０．４＋｛（１−０．４）／２｝×（１−０．２）＝０．６４となる。
【００６５】
出力ピンＳ３に対する動作補正をおこなうと、トグル率ｔｏｇｇｌｅ＿ｒａｔｅ＝ｄｕｔｙ×（制御ＣＫ  ｔｏｇｇｌｅ＿ｒａｔｅ）×（１−制御信号ｄｕｔｙ）＝０．４×０．５×（１−０．２）＝０．１６となる。また、デューティー比ｄｕｔｙ＝ｄｕｔｙ−（ｄｕｔｙ／２）×（１−制御信号ｄｕｔｙ）＝０．４−（０．４／２）×（１−０．２）＝０．２４となる。
【００６６】
図１６は、実施の形態２にかかるマクロを含んだ回路を示す図である。図１６の回路は、図１４、図１５に示したマクロＡ（１０１）を含んだ回路の例であり、各回路の入力およびマクロＡ（１０１）の入出力には、図１６に示すサイクルベースの動作情報（トグル率Ｔ，デューティー比Ｄ）がアノーテートされているとする。
【００６７】
図１７は、動作情報の補正処理を説明する回路図である。図１７には、動作補正情報３１２を用いてマクロインスタンス１（マクロＡ）の出力ピンＳ１，Ｓ２，Ｓ３の動作情報を補正した結果を矢印（→）後段に併記している。制御入力信号の動作情報は、最終的には上述した３．回路内動作情報確定処理（ステップＳ３０３）で入力側の回路から伝搬された動作情報で上書きされることになる。
【００６８】
しかし、２．動作情報補正処理（ステップＳ３０２）では、マクロＡ（１０１）の内部クロックＣＫ１，ＣＫ２の制御情報として取り扱うため、３．回路内動作情報確定処理（ステップＳ３０３）後のグリッチ等を含めた動作情報ではなく、初期の動作情報であるサイクルベースの動作情報を用いておこなう必要がある。制御クロックＣＫ１，ＣＫ２の入力は、サイクル単位の波形が規定された信号であるため、３．回路内動作情報確定処理（ステップＳ３０３）によって動作情報が書き変わることはない。
【００６９】
図１８は、動作情報を確定した結果を説明する回路図である。上記の３．回路内動作情報確定処理（ステップＳ３０３）によって動作情報を確定した結果を示す。実施の形態２による電力解析の手法適用時のマクロＡ（１０１）以外の回路（ａ）〜（ｉ）のダイナミック電力は、（（ａ）０．３＋（ｂ）０．５＋（ｃ）０．２＋（ｄ）０．９２０５＋（ｅ）０．９２０５＋（ｆ）０．１６＋（ｇ）０．１６＋（ｈ）０．３６＋（ｉ）０．３６）×１００ｕＷ＝３８８．１ｕＷとなる。
【００７０】
対比のために、本実施の形態の電力解析の手法を適用しなかった場合の電力について説明する。図１９は、実施の形態２の電力解析の手法を未適用時の電力算出例を説明する回路図である。回路（ａ）〜（ｉ）のダイナミック電力を「（対象ゲートの出力信号のトグル率Ｔ）×１００［ｕＷ］」としてマクロ以外の回路のダイナミック電力を求めると、ダイナミック電力は、（（ａ）０．３＋（ｂ）０．５＋（ｃ）０．２＋（ｄ）０．４５＋（ｅ）０．４５＋（ｆ）０．０８＋（ｇ）０．０８＋（ｈ）０．３＋（ｉ）０．３）×１００ｕＷ＝２６６ｕＷとなる。このように、本実施の形態２による電力解析の手法を適用しなかった場合には、約３１％過小に消費電力を計算していることが分かる。
【００７１】
以上説明した実施の形態２によれば、複数の制御信号およびクロック入力があるマクロを含む場合でも、動作情報取得のための論理シミュレーションの工数を増大させることなく、電力解析の精度を向上させることができる。動作情報の補正（変換）のための処理が入るだけで、その後の電力解析処理自体に大きな処理の追加はないため、全体の解析時間へのオーバーヘッドも小さく、短時間で解析できる。
【００７２】
そして、上記各実施の形態による動作情報の補正は、サイクルベース論理シミュレーションにより得られた動作情報に基づき、ゲート単位で動作情報を補正するため、動作情報を確率伝搬させて動作情報を精度向上させることが困難なマクロが含まれても、このマクロ出力から先の回路の動作情報の精度を改善でき、電力解析の処理を高速におこなえる。加えて、クロックサイクル中で変化するグリッチやダイナミック回路の出力を考慮した補正をおこなう。これにより、サイクルベースの動作情報と実際の動作の誤差が大きいマクロに対応できるようになり、これらマクロを含む回路の消費電力解析を精度よく短時間で行えるようになる。
【符号の説明】
【００７３】
１０１  マクロ
１０１ａ（Ｓ１，Ｓ２，Ｓ３）  出力ピン
２００  消費電力解析装置
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  Ｉ／Ｆ
２１１  ハードウェアエミュレータ
３１０  回路動作情報
３１０ａ  補正後の回路動作情報
３１１  ネットリスト
３１２  動作補正情報
３１４  消費電力解析結果
ＣＫ１，ＣＫ２  制御クロック
【図１】
0005831067.tif 000002
【図２】
0005831067.tif 000003
【図３】
0005831067.tif 000004
【図４】
0005831067.tif 000005
【図５】
0005831067.tif 000006
【図６】
0005831067.tif 000007
【図７】
0005831067.tif 000008
【図８】
0005831067.tif 000009
【図９】
0005831067.tif 000010
【図１０】
0005831067.tif 000011
【図１１】
0005831067.tif 000012
【図１２】
0005831067.tif 000013
【図１３】
0005831067.tif 000014
【図１４】
0005831067.tif 000015
【図１５】
0005831067.tif 000016
【図１６】
0005831067.tif 000017
【図１７】
0005831067.tif 000018
【図１８】
0005831067.tif 000019
【図１９】
0005831067.tif 000020