(57)【要約】【課題】機能検証システムの使用に関する技術を提供する。【解決手段】ＤＵＴの電力消費を解析する方法は、１以上の時間ウィンドウにＤＵＴ状態に関するエミュレーションデータを準備する段階、エミュレーションデータ及び１以上の時間ウィンドウの回路挙動を特徴付ける作動的モードの選択から作動的モード値を判断する段階、少なくとも１つの電力基準に基づいて各時間ウィンドウを１以上のセグメントに分割する段階、１以上のセグメントの電力活動値を判断する段階、電力活動値から１以上のセグメントの電力消費値を判断する段階、電力活動値及び電力消費値を用いて１以上のセグメントにわたる相対電力活動を判断し、１以上の時間ウィンドウの作動的モードにわたる高電力活動をターゲットにして１以上のセグメントを調節する段階、及びＤＵＴの電力活動に関する１以上の値をコンピュータ可読媒体に保存する段階を含む。【選択図】図１
2009266237.tif 000002
【特許請求の範囲】
【請求項１】
集積回路又は電子システムを含むＤＵＴ（被試験体）に対する電力消費を解析する方法であって、
１つ又はそれよりも多くの時間ウィンドウにＤＵＴの状態に関するエミュレーションデータを準備する段階と、
前記エミュレーションデータ、及び前記１つ又はそれよりも多くの時間ウィンドウにおける回路挙動を特徴付ける作動的モードの選択から作動的モード値を判断する段階と、
少なくとも１つの電力基準に基づいて各時間ウィンドウを１つ又はそれよりも多くのセグメントに分割する段階と、
前記１つ又はそれよりも多くのセグメントに対する電力活動値を判断する段階と、
前記電力活動値から前記１つ又はそれよりも多くのセグメントに対する電力消費値を判断する段階と、
前記電力活動値及び前記電力消費値を用いて前記１つ又はそれよりも多くのセグメントにわたる相対電力活動を判断し、前記１つ又はそれよりも多くの時間ウィンドウにおける作動的モードにわたる高電力活動をターゲットにして該１つ又はそれよりも多くのセグメントを調節する段階と、
前記ＤＵＴの電力活動に対する１つ又はそれよりも多くの値をコンピュータ可読媒体に保存する段階と、
を含むことを特徴とする方法。
【請求項２】
前記エミュレーションデータを準備する段階は、エミュレーションシステムを使用して前記１つ又はそれよりも多くの時間ウィンドウにおける前記ＤＵＴの作動を判断する段階を含み、該エミュレーションシステムは、該１つ又はそれよりも多くの時間ウィンドウにおける該ＤＵＴの状態を特徴付けるためのハードウエア及びソフトウエアの組合せを含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記作動的モード値は、前記ＤＵＴに対する電力使用に対応し、
各時間ウィンドウを１つ又はそれよりも多くのセグメントに分割する段階は、前記ＤＵＴの作動的モード移行に基づいて各時間ウィンドウを１つ又はそれよりも多くのセグメントに分割する段階を含む、
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記電力活動値は、前記ＤＵＴの選択されたノードに対する非重み付けトグル計数プロフィール、重み付けトグル計数プロフィール、又は負荷計数プロフィールのうちの少なくとも１つに対する値を含み、
前記重み付けトグル計数プロフィールに対する重みは、前記ＤＵＴのノードに対する電力モデルから計算される、
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記電力消費値を判断する段階は、前記１つ又はそれよりも多くのセグメントの各々に対する電力消費プロフィールの波形又はテーブル表現を発生させる段階を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記１つ又はそれよりも多くのセグメントを調節する段階は、トグル計数又は負荷計数に対する相対的に低い値に基づいて少なくとも１つのセグメントをフィルタ除去する段階を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記１つ又はそれよりも多くのセグメントを調節する段階は、
トグル計数又は負荷計数に対して相対的に低い値を有する前記時間ウィンドウの一部分に対してより粗い解像度を使用する段階、及び
トグル計数又は負荷計数に対して相対的に高い値を有する前記時間ウィンドウの一部分に対してより高い解像度を使用する段階、
の少なくとも一方を含む、
ことを特徴とする請求項１に記載の方法。
【請求項８】
前記１つ又はそれよりも多くのセグメントを調節する段階は、高電力消費値を有する各時間ウィンドウの一部分に対してより細かい解像度を使用する段階を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記調節された１つ又はそれよりも多くのセグメントに対して電力活動値を判断する段階と、
前記調節された１つ又はそれよりも多くのセグメントに対して前記電力活動値から電力消費値を判断する段階と、
前記調節された１つ又はそれよりも多くのセグメントの前記電力活動値及び前記電力消費値に対する１つ又はそれよりも多くの値を前記コンピュータ可読媒体に保存する段階と、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記１つ又はそれよりも多くの時間ウィンドウにわたるピーク電力消費を各々が特徴付ける１つ又はそれよりも多くのピーク電力セグメントを前記調節された１つ又はそれよりも多くのセグメントから識別する段階と、
前記１つ又はそれよりも多くのピーク電力セグメントにおいて高電力消費を有する前記ＤＵＴの１つ又はそれよりも多くのノードを識別する段階と、
前記１つ又はそれよりも多くのピーク電力セグメントに対する１つ又はそれよりも多くの値を前記コンピュータ可読媒体に保存する段階と、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項１１】
集積回路又は電子システムを含むＤＵＴ（被試験体）に対する電力消費を解析するための装置であって、
コンピュータ命令を実行するコンピュータ、
を含み、
前記コンピュータは、
１つ又はそれよりも多くの時間ウィンドウにＤＵＴの状態に関するエミュレーションデータを準備し、
前記エミュレーションデータ、及び前記１つ又はそれよりも多くの時間ウィンドウにおける回路挙動を特徴付ける作動的モードの選択から作動的モード値を判断し、
少なくとも１つの電力基準に基づいて各時間ウィンドウを１つ又はそれよりも多くのセグメントに分割し、
前記１つ又はそれよりも多くのセグメントに対する電力活動値を判断する段階、
前記電力活動値から前記１つ又はそれよりも多くのセグメントに対する電力消費値を判断し、
前記電力活動値及び前記電力消費値を用いて前記１つ又はそれよりも多くのセグメントにわたる相対電力活動を判断し、前記１つ又はそれよりも多くの時間ウィンドウにおける作動的モードにわたる高電力活動をターゲットにして該１つ又はそれよりも多くのセグメントを調節し、かつ
前記ＤＵＴの電力活動に対する１つ又はそれよりも多くの値を保存する、
ためのコンピュータ命令を含む、
ことを特徴とする装置。
【請求項１２】
前記エミュレーションデータを準備する段階は、エミュレーションシステムを使用して前記１つ又はそれよりも多くの時間ウィンドウにおける前記ＤＵＴの作動を判断する段階を含み、該エミュレーションシステムは、該１つ又はそれよりも多くの時間ウィンドウにおける該ＤＵＴの状態を特徴付けるためのハードウエア及びソフトウエアの組合せを含む、
ことを特徴とする請求項１１に記載の装置。
【請求項１３】
前記作動的モード値は、前記ＤＵＴに対する電力使用に対応し、
各時間ウィンドウを１つ又はそれよりも多くのセグメントに分割する段階は、前記ＤＵＴの作動的モード移行に基づいて各時間ウィンドウを１つ又はそれよりも多くのセグメントに分割する段階を含む、
ことを特徴とする請求項１１に記載の装置。
【請求項１４】
前記電力活動値は、前記ＤＵＴの選択されたノードに対する非重み付けトグル計数プロフィール、重み付けトグル計数プロフィール、又は負荷計数プロフィールのうちの少なくとも１つに対する値を含み、
前記重み付けトグル計数プロフィールに対する重みは、前記ＤＵＴのノードに対する電力モデルから計算される、
ことを特徴とする請求項１１に記載の装置。
【請求項１５】
前記電力消費値を判断する段階は、前記１つ又はそれよりも多くのセグメントの各々に対する電力消費プロフィールの波形又はテーブル表現を発生させる段階を含むことを特徴とする請求項１１に記載の装置。
【請求項１６】
前記１つ又はそれよりも多くのセグメントを調節する段階は、トグル計数又は負荷計数に対する相対的に低い値に基づいて少なくとも１つのセグメントをフィルタ除去する段階を含むことを特徴とする請求項１１に記載の装置。
【請求項１７】
前記１つ又はそれよりも多くのセグメントを調節する段階は、
トグル計数又は負荷計数に対して相対的に低い値を有する前記時間ウィンドウの一部分に対してより粗い解像度を使用する段階、及び
トグル計数又は負荷計数に対して相対的に高い値を有する前記時間ウィンドウの一部分に対してより高い解像度を使用する段階、
の少なくとも一方を含む、
ことを特徴とする請求項１１に記載の装置。
【請求項１８】
前記１つ又はそれよりも多くのセグメントを調節する段階は、高電力消費値を有する各時間ウィンドウの一部分に対してより細かい解像度を使用する段階を含むことを特徴とする請求項１１に記載の装置。
【請求項１９】
前記コンピュータは、
前記調節された１つ又はそれよりも多くのセグメントに対して電力活動値を判断し、
前記調節された１つ又はそれよりも多くのセグメントに対して前記電力活動値から電力消費値を判断し、かつ
前記調節された１つ又はそれよりも多くのセグメントの前記電力活動値及び前記電力消費値に対する１つ又はそれよりも多くの値を保存する、
ためのコンピュータ命令を更に含む、
ことを特徴とする請求項１１に記載の装置。
【請求項２０】
前記コンピュータは、
前記１つ又はそれよりも多くの時間ウィンドウにわたるピーク電力消費を各々が特徴付ける１つ又はそれよりも多くのピーク電力セグメントを前記調節された１つ又はそれよりも多くのセグメントから識別し、
前記１つ又はそれよりも多くのピーク電力セグメントにおいて高電力消費を有する前記ＤＵＴの１つ又はそれよりも多くのノードを識別し、かつ
前記１つ又はそれよりも多くのピーク電力セグメントに対する１つ又はそれよりも多くの値を保存する、
ためのコンピュータ命令を更に含む、
ことを特徴とする請求項１１に記載の装置。
【請求項２１】
前記コンピュータは、前記コンピュータ命令の少なくとも一部を実行するためのメモリを有するプロセッサを含むことを特徴とする請求項１１に記載の装置。
【請求項２２】
前記コンピュータは、前記コンピュータ命令の少なくとも一部を実行するための回路を含むことを特徴とする請求項１１に記載の装置。
【請求項２３】
集積回路又は電子システムを含むＤＵＴ（被試験体）に対する電力消費を解析するためのコンピュータプログラムを格納するコンピュータ可読媒体であって、
コンピュータプログラムが、
１つ又はそれよりも多くの時間ウィンドウにＤＵＴの状態に関するエミュレーションデータを準備し、
前記エミュレーションデータ、及び前記１つ又はそれよりも多くの時間ウィンドウにおける回路挙動を特徴付ける作動的モードの選択から作動的モード値を判断し、
少なくとも１つの電力基準に基づいて各時間ウィンドウを１つ又はそれよりも多くのセグメントに分割し、
前記１つ又はそれよりも多くのセグメントに対する電力活動値を判断する段階、
前記電力活動値から前記１つ又はそれよりも多くのセグメントに対する電力消費値を判断し、
前記電力活動値及び前記電力消費値を用いて前記１つ又はそれよりも多くのセグメントにわたる相対電力活動を判断し、前記１つ又はそれよりも多くの時間ウィンドウにおける作動的モードにわたる高電力活動をターゲットにして該１つ又はそれよりも多くのセグメントを調節し、かつ
前記ＤＵＴの電力活動に対する１つ又はそれよりも多くの値を保存する、
ためのコンピュータ命令を含む、
ことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、集積回路（ＩＣ）のための設計検証システムに関し、より詳細には、ピーク電力ウィンドウを検出して解析するためのハードウエア論理エミュレーション又はシミュレーション加速システムのようなハードウエアベースの機能検証システムの使用に関する。
【０００２】
（関連出願への相互参照）
本出願は、２００８年４月２５日に出願され、本明細書においてその全内容が引用により組み込まれている米国特許仮出願第６１／０４８、０００号の恩典を主張するものである。
【背景技術】
【０００３】
設計技師は、複雑な集積回路を開発するために、ＥＤＡ（電子設計自動化）ツールに通常依存する。これらのＥＤＡツールは、論理エミュレーションシステム及びシミュレーションアクセラレータを含むいくつかのハードウエアベースの機能検証システムを含む。簡単のために、これらのツールは、以後の説明においてエミュレーションシステムと総称して参照する。
【０００４】
エミュレーションシステムは、チップ又は電子システムの製造の前に電子論理設計の機能性を検証するために使用することができる。典型的なエミュレーションシステムは、相互接続したＦＰＧＡ（フィールド・プログラマブル・ロジック・アレイ）チップ又は相互接続したプロセッサチップのいずれかを利用する。ＦＰＧＡデバイスを用いる例示的なハードウエア論理エミュレーションシステムは、例えば、米国特許第５、１０９、３５３号、第５、０３６、４７３号、第５、４７５、８３０号、及び第５、９６０、１９１号に説明されており、プロセッサチップを用いる例示的なハードウエア論理エミュレーションシステムは、例えば、米国特許第５、５５１、０１３号、第６、０３５、１１７号、及び第６、０５１、０３０号に説明されている。これらの特許の各々は、本明細書においてその全内容が引用により組み込まれている。
【０００５】
一般的に、ＤＵＴ（被試験体）は、ＩＣ又はより複雑な電子システムを含む場合がある。ＤＵＴがＩＣに対応する場合は、それは、ＲＴＬ（レジスタ転送レベル）記述又はゲートレベルネットリストのいずれかの形態で普通表される。ゲートレベルネットリストは、合成方法を使用してＶｅｒｉｌｏｇ又はＶＨＤＬ（ＶＨＳＩＣ（超高速集積回路）ＨＤＬ）のようなハードウエア記述言語（ＨＤＬ）からを含むＲＴＬソースから誘導されたものと考えられる。ＲＴＬ及びゲートレベルネットリストの両方は、回路の構成要素及び構成要素間の電気的相互接続の記述であり、これらの構成要素は、論理回路を実施するために要する結合論理（例えば、ゲート）及び順序論理（例えば、フリップ−フロップ及びラッチ）のような全ての論理回路要素を含む。
【０００６】
エミュレーションシステムは、ユーザ設計のブロックレベルモデルを検証するために通常使用されるソフトウエアシミュレーションツールを超えるある一定の利点を有する。ソフトウエアシミュレータは、単一又は少数のＣＰＵ（中央演算処理装置）を用いるシリアル作動でコンピュータシステム又はワークステーション上で実行される。対照的に、エミュレーションシステムは、設計された機能を並行して実施することになる専用ハードウエアを有する。この大規模並列処理は、エミュレーションシステムがソフトウエアシミュレータよりも何桁も速い速度で作動することを可能にする。エミュレータは、シミュレータよりもそのように高速で作動させることができるので、エミュレータは、より速く機能検証を行うことができる。例えば、エミュレータは、数ミリ秒の間にＤＵＴの数千クロックサイクルを実行することができる。従って、エミュレータが数百万クロックサイクルを実行するのと同じ時間に、ソフトウエアシミュレータは、数クロックサイクル又はクロックサイクルの一部だけを模擬し終わるのみであるかも知れない。実際に、エミュレータは、意図したアプリケーションソフトウエアをプロトタイプシステム上で実行させるほど十分速い速度で作動させることができ、それは、ソフトウエアシミュレータが決して達成できないものである。
【０００７】
ソフトウエアシミュレータに対するエミュレーションシステムの別の利点は、「回路内」で作動するその機能である。「回路内」で作動するとは、エミュレートされているＤＵＴが、チップが組み立てられた状態で最後に組み込まれることになる実際のハードウエア内で作動するエミュレータの機能をいう。この実際のハードウエアは、時に「ターゲットシステム」と呼ばれる。例えば、マイクロプロセッサの設計者は、マイクロプロセッサ設計をエミュレートするであろう。エミュレータをパーソナルコンピュータのマザーボードに接続するケーブルを用いて、エミュレータは、実際のマイクロプロセッサの代わりに使用することができる。回路内で作動する機能は、多くの利点を提供する。それらのうちの１つは、設計者は、ＤＵＴが最後に組み込まれることになる実際のシステム内で彼らの設計がどのように機能するかを理解することができることである。別の利点は、回路内エミュレーションは、ＩＣチップが製造される前にソフトウエア開発を行うことを可能にすることである。すなわち、エミュレータは、設計チームがファームウエア又は他のアプリケーションソフトウエアを書き込んで試験する間に、ターゲットシステム内のＩＣをエミュレートすることができる。
【０００８】
低電力用途（例えば、ワイヤレス及び携帯型エレクトロニクス）のために設計された集積回路は、電力散逸の最小化、高電力集積回路のための効率的なパッケージ及び冷却システムの設計、及び設計初期での低電力又は無電力状態の機能性の検証を含む設計検証のための付加的な課題を有する。これらのパワーマネージメントの問題は、半導体加工技術の進歩に伴うデバイス寸法の絶え間ない縮小を考慮すると更により重要となってきている。
【０００９】
しかし、従来型のエミュレーションシステムは、これらの課題に対応していなかった。１つの理由は、既存の電力最適化及び実施技術は、典型的には、設計工程の実際の実施段階で(例えば、回路合成の後で)適用されることである。これらのパワーマネージメント設計技術は、設計制約を顕著に変化させることができるが、意図した挙動のどれも設計のＲＴＬに捕捉されない可能性がある。この欠陥は、ＲＴＬから「グラフィックデータシステムＩＩ（ＧＤＳＩＩ）」の実施と、元のＲＴＬが設計の完全な表現として信頼されることがもはやできず、従って、パワーマネージメント実施を含む最終ネットリスト実施を検証するために使用することができない検証の流れとにギャップを生じさせる。
【００１０】
より高レベルの集積化に伴い、電力評価は、チップ設計、特に低電力設計に対して益々重要な問題になっている。例えば、本明細書においてその全内容が引用により組み込まれている２００６年１２月７日公開の特許出願ＵＳ２００６／０２７７５０９Ａ１を参照されたい。全ての高電力消費のシナリオの識別は、電力解析においては挑戦的な課題である。しかし、ＴＣＦ（トグル・カウント・フォーマット）又はＳＡＩＦ（スイッチング・アクティビティ・インターチェンジ・フォーマット）のような共通フォーマットを有する設計活動ファイルに通常それらの電力計算の基礎を置く従来型の電力解析ツールは、典型的には、所定の期間にわたる平均の電力消費を報告するのみである。更に、ピーク電力値の計算のためのＶＣＤ（バリュー・チェンジ・ダンプ）に基づく電力解析ツールは、通常多大な時間を必要とし、大きい複雑な設計に対して、特に、最終シリコンのための条件を反復する比較的長い試験シーケンスに適用される時には多くの場合に実用的ではない。すなわち、従来型の手法は、電力評価及びピーク電力検出のような重要なパワーマネージメント機能のハードウエアベースの検証を適切に有効にすることができていない。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許仮出願第６１／０４８、０００号
【特許文献２】米国特許第５、１０９、３５３号明細書
【特許文献３】米国特許第５、０３６、４７３号明細書
【特許文献４】米国特許第５、４７５、８３０号明細書
【特許文献５】米国特許第５、９６０、１９１号明細書
【特許文献６】米国特許第５、５５１、０１３号明細書
【特許文献７】米国特許第６、０３５、１１７号明細書
【特許文献８】米国特許第６、０５１、０３０号明細書
【特許文献９】米国特許出願公開２００６／０２７７５０９号明細書
【非特許文献】
【００１２】
【非特許文献１】Ｃｈｉ-Ｐｉｎｇ  Ｈｓｕ著「共通パワーフォーマットで電力を前方に押し出すこと−それを正しく行う処理」、ＥＥＴｉｍｅｓ、２００６年１１月５日
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従って、ＩＣ設計のピーク電力ウィンドウを検出して解析するための改良されたエミュレーションシステムに対する必要性が存在する。
【課題を解決するための手段】
【００１４】
本発明の一実施形態では、集積回路又は電子システムを含むＤＵＴ（被試験体）に関する電力消費を解析する方法は、１つ又はそれよりも多くの時間ウィンドウにＤＵＴの状態に関するエミュレーションデータを準備する段階と、エミュレーションデータと、１つ又はそれよりも多くの時間ウィンドウにおける回路挙動を特徴付ける作動的モードの選択とから作動的モード値を判断する段階と、少なくとも１つの電力基準に基づいて各時間ウィンドウを１つ又はそれよりも多くのセグメントに分割する段階と、１つ又はそれよりも多くのセグメントに対する電力活動値を判断する段階と、電力活動値から１つ又はそれよりも多くのセグメントに関する電力消費値を判断する段階と、電力活動値及び電力消費値を用いて１つ又はそれよりも多くのセグメントにわたる相対電力活動を判断し、１つ又はそれよりも多くの時間ウィンドウにおける作動的モードにわたる高電力活動をターゲットにして１つ又はそれよりも多くのセグメントを調節する段階と、ＤＵＴの電力活動に関する１つ又はそれよりも多くの値をコンピュータ可読媒体に保存する段階とを含む。
【００１５】
この実施形態の一態様によれば、エミュレーションデータを準備する段階は、エミュレーションシステムを使用して１つ又はそれよりも多くの時間ウィンドウにおけるＤＵＴの作動を判断する段階を含むことができ、エミュレーションシステムは、１つ又はそれよりも多くの時間ウィンドウにおけるＤＵＴの状態を特徴付けるハードウエアとソフトウエアの組合せを含む。
【００１６】
別の態様によれば、作動的モード値は、ＤＵＴに対する電力使用に対応する場合があり、各時間ウィンドウを１つ又はそれよりも多くのセグメントに分割する段階は、ＤＵＴの作動的モード移行に基づいて各時間ウィンドウを１つ又はそれよりも多くのセグメントに分割する段階を含むことができる。
【００１７】
別の態様によれば、電力活動値は、ＤＵＴの選択されたノードに関する非重み付けトグル計数プロフィール、重み付けトグル計数プロフィール、又は負荷計数プロフィールのうちの少なくとも１つに対する値を含むことができ、重み付けトグル計数プロフィールに対する重みは、ＤＵＴのノードに対する電力モデルから計算される。例えば、選択されたノードは、ＤＵＴの全てのノード、並びにより小さい部分集合を含むことができる。
【００１８】
別の態様によれば、電力消費値を判断する段階は、１つ又はそれよりも多くのセグメントの各々に対して電力消費プロフィールの波形又はテーブル表現を発生させる段階を含むことができる。
【００１９】
別の態様によれば、１つ又はそれよりも多くのセグメントを調節する段階は、トグル計数又は負荷計数に関する相対的に低い値に基づいて少なくとも１つのセグメントをフィルタ除去する段階を含むことができる。トグル計数は、重み付け又は非重み付けのものとすることができる点に注意されたい。
【００２０】
別の態様によれば、１つ又はそれよりも多くのセグメントを調節する段階は、トグル計数又は負荷計数に関する相対的に低い値を有する時間ウィンドウの一部分に関するより粗い解像度を使用する段階、又はトグル計数又は負荷計数に関する相対的に高い値を有するこの時間ウィンドウの一部分に関するより高い解像度を使用する段階のうちの少なくとも一方を含むことができる。トグル計数は、重み付け又は非重み付けのものとすることができる点に注意されたい。
【００２１】
別の態様によれば、１つ又はそれよりも多くのセグメントを調節する段階は、高い電力消費値を有する各時間ウィンドウの一部分に関するより細かい解像度を使用する段階を含むことができる。
【００２２】
別の態様によれば、本方法は、調節された１つ又はそれよりも多くのセグメントに対して電力活動値を判断する段階と、調節された１つ又はそれよりも多くのセグメントに対して電力活動値から電力消費値を判断する段階と、調節された１つ又はそれよりも多くのセグメントの電力活動値及び電力消費値に対する１つ又はそれよりも多くの値をコンピュータ可読媒体に保存する段階とを更に含むことができる。
【００２３】
別の態様によれば、本方法は、調節された１つ又はそれよりも多くのセグメントから、各セグメントが１つ又はそれよりも多くの時間ウィンドウにわたるピーク電力消費を特性付ける１つ又はそれよりも多くのピーク電力セグメントを識別する段階と、１つ又はそれよりも多くのピーク電力セグメントにおける高電力消費を有するＤＵＴの１つ又はそれよりも多くノードを識別する段階と、１つ又はそれよりも多くのピーク電力セグメントに関する１つ又はそれよりも多くの値をコンピュータ可読媒体に保存する段階とを更に含むことができる。
【００２４】
付加的な実施形態は、上述の方法のうちのいずれか１つを達成するための装置に関し、装置は、本方法に関する命令を実行するためのコンピュータを含む。例えば、コンピュータは、命令の少なくとも一部を実行するためのメモリを有するプロセッサを含むことができる。付加的に又は代替的に、コンピュータは、命令の少なくとも一部を実行するための回路又は他の専用ハードウエアを含むことができる。付加的な実施形態はまた、上述の方法のうちのいずれか１つをコンピュータで実施するためのコンピュータプログラムを格納する（例えば、有形的に具現化する）コンピュータ可読媒体に関する。このようにして、本発明は、ＩＣ設計のピーク電力ウィンドウを検出して解析するための改良されたエミュレーションシステムを可能にする。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態によるエミュレーションシステムにおける動的電力解析の方法のための構造的詳細を示す図である。
【図２】図１に示す実施形態におけるオンラインモードに関する更なる詳細を示す図である。
【図３】図１に示す実施形態におけるオフラインモードに関する更なる詳細を示す図である。
【図４Ａ】図１に示す実施形態におけるオフラインモードに関する更なる詳細を示す図である。
【図４Ｂ】図１に示す実施形態におけるオフラインモードに関する更なる詳細を示す図である。
【図４Ｃ】図１に示す実施形態におけるオフラインモードに関する更なる詳細を示す図である。
【図５】図１に示す実施形態におけるオフラインモードに関する更なる詳細を示す図である。
【図６】図１に示す実施形態におけるオフラインモードに関する更なる詳細を示す図である。
【図７】図１に示す実施形態におけるオフラインモードに関する更なる詳細を示す図である。
【図８】図１に示す実施形態におけるオフラインモードに関する更なる詳細を示す図である。
【図９】機能ブロック電力消費テーブルを示す図である。
【図１０】インスタンス電力消費テーブルを示す図である。
【図１１】本発明の実施形態によるピーク電力ウィンドウを検出する方法を示す図である。
【図１２Ａ】図１１に示す実施形態に関する特に好ましい実施形態に関する詳細を示す図である。
【図１２Ｂ】図１１に示す実施形態に関する特に好ましい実施形態に関する詳細を示す図である。
【図１２Ｃ】図１１に示す実施形態に関する特に好ましい実施形態に関する詳細を示す図である。
【図１２Ｄ】図１１に示す実施形態に関する特に好ましい実施形態に関する詳細を示す図である。
【図１２Ｅ】図１１に示す実施形態に関する特に好ましい実施形態に関する詳細を示す図である。
【図１２Ｆ】図１１に示す実施形態に関する特に好ましい実施形態に関する詳細を示す図である。
【図１２Ｇ】図１１に示す実施形態に関する特に好ましい実施形態に関する詳細を示す図である。
【図１２Ｈ】図１１に示す実施形態に関する特に好ましい実施形態に関する詳細を示す図である。
【図１２Ｉ】図１１に示す実施形態に関する特に好ましい実施形態に関する詳細を示す図である。
【図１２Ｊ】図１１に示す実施形態に関する特に好ましい実施形態に関する詳細を示す図である。
【発明を実施するための形態】
【００２６】
図１は、本発明の実施形態によるエミュレーションシステムでの動的電力解析の方法１０２に関する構造的詳細を示している。方法１０２の段階又は態様は、電力計算のためのエミュレーションオンラインモード１０４、エミュレーションオフラインモード１０６、及び外部又は第三者ツール１０８を含む作動の相に分けられる。
【００２７】
第三者ツール１０８は、電力消費用標準モデルに従って作動させることができる。一般的に、全体のチップ電力消費は、全インスタンスに関する内部電力及び漏れ電力と全ネット電力との和である：
【数１】
2009266237.tif 000003
【００２８】
各構成要素の内部電力消費は、モデル（例えば、技術ライブラリから）及びＴＣＦ（トグル・カウント・フォーマット）又はＳＡＩＦ（スイッチイング・アクテビティ・インターチェンジ・フォーマット）データによって捕捉されたスイッチイング活動に基づいて計算される：
【数２】
2009266237.tif 000004
【００２９】
この式において、ＴＲは、アーク又はピンの有効トグルレートである。ａｒｃijの有効トグルレートは、このアークが作動することになる確率及び入力ピンｉ上のトグルレートに依存する。アークが作動することになる確率は、出力ピンｉの関数及び他の入力ピンの確率によって判断される。１つ又はそれよりも多くの電力関数Φは、出力ｊにトグルを生じさせる入力ｉのスルーであるＳj、及び出力ｊの負荷キャパシタンスであるＣjに依存する値を用いて、技術ライブラリ内のエネルギテーブルから取得することができる。
【００３０】
漏れ電力は、以下のように表される：
【数３】
2009266237.tif 000005
【００３１】
この式において、ｋは、セルに関連する状態の数であり、Ｐstate_leakageは、その状態でのセルの漏れであり、ｐｒｏｂstateは、セルが負荷計数状態（例えば、「１」の論理状態）にある確率である。
【００３２】
ネット電力は、以下のように表される：
【数４】
2009266237.tif 000006
【００３３】
この式において、ＣLは、フェムト−ファラッドでのキャパシタンスであり（デフォルトで）、Ｖは、ボルトでの供給電圧である。キャパシタンスは、ネットのキャパシタンスとネットによって駆動される入力ピンのキャパシタンスとの合計である。この情報は、関連する技術ライブラリ内に通常格納されている。ユーザは、このパラメータをオペレーティングコーナを変更することによるか又は第三者計算ツール内部に直接そのパラメータを上書きすることによるかのいずれかによって変更することができる。変数ＴＲは、トグルレートであり、これは、トグル計数をＴＣＦ又はＳＡＩＦファイルにアノテートされたシミュレーション周期で割ることによって計算することができる。一般的に、トグル計数は、所定の持続時間（例えば、クロックサイクルの数）にわたる状態間（例えば、論理「０」と論理「１」の間）のトグルの移動和である。負荷計数は、所定の持続時間（例えば、クロックサイクルの数）にわたる閾値状態又はアクティブ状態（例えば、論理「１」）の移動和である。
【００３４】
オンラインモード１０４において、ＤＵＴは、エミュレータ内で作動し（１１０）、得られた活動データからの値が保存される（１１２）。
【００３５】
オフラインモード１０６において、この活動データからの値が電力モードプロフィールの発生（１１４）及びトグル計数プロフィールの発生（１１６）に使用される。一般的に、電力モードは、各ノードが特定の電力供給で作動する回路の定常状態に対応する作動的モードである。トグル計数プロフィールは、重み付け又は非重み付けのものとすることができる。これらのプロフィールは、時間ウィンドウを配置して各時間ウィンドウにおけるセグメントを判断するために解析される（１１８）。最小トグル計数閾値及び特別の電力モードでのセグメント数のような基準の入力１２０は、時間ウィンドウを配置して各時間ウィンドウにおけるセグメントを判断するのに役立つことになる。ＤＵＴトップのセル又はインスタンス名のような基準入力１２０は、ＴＣＦ／ＳＡＩＦファイルに使用されると考えられるトップのインスタンスを判断するのに役立つことになる。ＴＣＦ／ＳＡＩＦファイルに関する値が各セグメントに対して発生される（１２４）。ＴＣＦ／ＳＡＩＦファイルは、選択かつグループ分けされ（１２６）、これらの値は、電力プロフィールを発生する（１３０）ために電力値を計算する（１２８）第三者１０８に送られる。セグメントは、改良することができ（１３２）、新たなセグメントに関する付加的なＴＣＦ／ＳＡＩＦファイルの発生（１２４）によってこの処理が継続される。
【００３６】
データ格納のフォーマットは、作動環境の要件に従って変わる場合がある。通常、オンラインモード１０４においては、２つの型のファイル：．ｐｈｙ及び．ｔｃが発生されると考えられる。オフラインモード１０６においては、インスタンス又は機能ブロックの所定のセットに関するトグル計数プロフィールは、．ｔｃに基づいて発生させることができ、電力モードプロフィールは、テキストフォーマット又は．ｐｈｙファイルに基づく波形で発生させることができる。トグル計数プロフィール、電力モードプロフィールに基づいて、セグメントログファイルを作成されることができる。
【００３７】
更に、オフラインモード１０６において、セグメントログファイル及びＴＣＦ／ＳＡＩＦトグル計数プロフィールは、テキストフォーマット又は波形フォーマット（例えば、「ＳｉｍＶｉｓｉｏｎ  ＳＳＴ２」又は「Ｄｅｂｕｓｓｙ  ＦＳＤＢ」）で発生させることができる。また、セグメントログファイルは、更新することができる。更新されたログファイルに基づいて、ＴＣＦ／ＳＡＩＦファイルを．ｐｈｙファイルから収集するか又は発生させることができる。次に、ＴＣＦ／ＳＡＩＦファイルは、電力計算のために第三者ツールに移されると考えられる。電力消費プロフィールは、セグメントログファイル及び第三者ツール１０８からの電力報告に基づいて、テキストフォーマット又は波形フォーマットで発生させることができる。
【００３８】
図２は、活動データの収集を含むオンラインモード１０４に関する更なる詳細を示している。一般的に、ある一定のタイムスパンにわたってデータを収集するのには２つの方法があり、１つは、トリガが発生する時に一回記録し、他のものは、非常に長い時間に適用範囲を広げるために複数回記録する。図２に示すように、設計がエミュレータ内にダウンロードされ（２０２）、データ収集のために記録を付加するか否かの判断が行われる（２０４）。判断が記録を付加しないことである時、設計は、次に、トリガが発生するまでエミュレータ内で実行され（２１４）、設計データが電力解析のために記録される（２１６）。代替的に、判断が記録を付加することである時、設計は、次に、トリガが発生するまで又は所定の時点まで実行される（２０６）。次に、設計データが電力解析のために記録される（２１０）。この処理は、記録を継続（２１０）するか否かの連続的な判断及び適切なデータ捕捉深度までのエミュレータの作動（２１２）によって継続される。
【００３９】
図３は、ピーク電力を自動的に検出するための３つのフィルタの使用を含むオフラインモード１０６に関する更なる詳細を示している。最初にトップインスタンスが指定される（３０２）。第１のフィルタは、トグル計数プロフィールを発生する（３０４）段階と電力モードプロフィールを発生する（３０６）段階とを含む。
第２のフィルタは、インスタンス及び電力報告深度を選択する（３０８）段階とウィンドウ及びセグメント分割を指定する（３１０）段階とを含む。ユーザ選択のトグル計数閾値に基づいて、所定の時間ウィンドウ及び各時間ウィンドウでの可能なセグメントを判断することができる。各可能なセグメントに対して、ＴＣＦ／ＳＡＩＦファイル内に出現する可能な全てのピン又はネットの合計のトグル計数及び負荷計数が計算される。ＴＣＦ／ＳＡＩＦトグル計数プロフィールは、各可能なセグメントに関するトグル計数レート（例えば、セグメント毎のセグメント持続期間で割ったＴＣＦ／ＳＡＩＦ内のピン／ネットの全てのトグル計数の合計）と負荷計数レート（例えば、セグメント毎のセグメント持続期間で割ったＴＣＦ／ＳＡＩＦ内のピン／ネットの全ての「１」サイクルカウントの合計）とを含む。ＴＣＦ／ＳＡＩＦトグル計数プロフィールを解析することにより、可能なセグメントから電力計算のためにセグメントを選択することができる。次に、ＴＣＦ／ＳＡＩＦファイルが、各選択されたセグメントに対して発生される（３１２）。
【００４０】
第３のフィルタは、電力プロフィールに基づいて、より高い電力消費セグメントに関する解像度を改良するための作動を含む。これは、所定のインスタンス及び深度に対して電力を報告する（３１４）段階と、波形及びテーブルを含む電力プロフィールを発生する（３１６）段階とを含む。次に、この改良は、インスタンスを変更する（３１８）段階又は時間ウィンドウ及びセグメント分割を変更する（３２０）段階を含むことができる。
【００４１】
図３に示す３つのレベルの時間セグメントフィルタリングは、必須ではない計算をフィルタ除去するために使用することができる。第１のフィルタは、設計トグル計数プロフィール３０４と、電力モードプロフィール３０４のような作動的モードとに基づいている。時間ウィンドウは、それらの時間ウィンドウの期間に有意なトグル活動がない時は除去することができる。重要でない作動的モードを有する時間ウィンドウも除去することができる。第２のフィルタは、ＴＣＦ／ＳＡＩＦトグル計数／負荷計数波形３１２に基づいている。時間ウィンドウにおけるセグメントは、調節されると考えられる。低ＴＣＦ／ＳＡＩＦトグル計数を有するそれらのセグメントには、粗い解像度が適用され、高ＴＣＦ／ＳＡＩＦトグル計数を有するそれらのセグメントには、より細かい解像度が適用されると考えられる。すなわち、ＴＣＦ／ＳＡＩＦファイルの数を制御することができる。電力計算は、ＴＣＦ／ＳＡＩＦファイル発生よりも遥かに長い時間を消費するので、この段階は、全体の処理機能を通常改善することになる。第３のフィルタは、電力消費プロフィール３１６に基づいて、比較的高い電力消費値を有するセグメントのための解像度の改良を含む。全ての３つのフィルタリング処理は、全てのＤＵＴ又はブロックのレベルに適用することができる。
【００４２】
有利な態様においては、これらのフィルタは、エミュレーションを再実行することなく行うことができる。一般的に、エミュレータは、多くのユーザによって普通共有されている高価なリソースである。作動のオフラインモード１０６は、エミュレータリソースを他のタスクに解放しながら、ユーザがトグル計数及び電力プロフィールを解析することを可能にする。作動環境の要求に基づいて、ＧＵＩ（グラフィカルユーザインタフェース）を全体の処理を助けるために設けることができる。
【００４３】
図４Ａは、トグル計数プロフィールを発生する段階を含むオフラインモード１０６のための更なる詳細を示している。インスタンスは、指定することができる（例えば、インスタンス番号又はインスタンス名により）（４０２）。次に、各時間ウィンドウにおいて、エミュレーションクロックサイクル毎のトグル計数をインスタンスに対して計算することができる（４０４）。次に、トグル計数／負荷計数プロフィールを選択されたインスタンスに対して発生させることができる（４０６）。付加的又は代替的に、これらのプロフィールは、ＤＵＴに関する技術ライブラリファイルからの電力モデルに基づいて重み付けすることができる。すなわち、技術ライブラリファイル（例えば、．ｌｉｂファイル）をＤＵＴに対して指定することができる（４０８）。対応する電力情報は、技術ライブラリファイルから判断することができ、重みは、ピン及びピン間のアークに対して計算することができる（４１０）。次に、この重みは、エミュレーションクロックサイクル毎のトグル計数を調節するために使用することができ（４１２）、プロフィールを同様に発生させることができる（４０６）。
【００４４】
図４Ａに示すように、２つのトグル計数プロフィールが存在し、一方は、所定のインスタンスに関する非重み付けトグル計数プロフィール（４０２）であり、他のものは、所定のインスタンスに関する重み付けトグル計数プロフィール（４０８）である。単純なトグル計数プロフィールは、所定のインスタンスに対してクロックサイクル毎の合計のトグル計数及び負荷計数を示している。異なるインスタンスにおけるトグルは、電力消費にそれぞれ異なって影響するので、重みは、技術ライブラリファイル内の電力情報に基づいて、各インスタンスにおけるピン及びピン間のアークに割り当てることができる。
【００４５】
図４Ｂは、重みを計算するための更なる詳細（４１０）を示している。最初に、アーク電力が、技術ライブラリ．ｌｉｂからの電力モデルから誘導される（４１４）。次に、平均アーク電力が計算される（４１６）。次に、重みが計算される（４１８）。図４Ｂは、３つのセル：ＩＮＶＸ１、ＮＡＤＸ２、及びＲＡＭ＿４０９６Ｘ３２を有する場合を説明する。セルＩＮＶＸ１は、入力ピンＡ及び出力ピンＹを有する。Ａのトグルは、Ｙのトグルを生じさせることになり、Ａがトグルする時、ＡからＹへのアークは、１００７．２６ｎＷに等しい電力を消費する。セルＮＡＤＸ２は、入力ピンＡ及びＢと出力ピンＹとを有する。Ａがトグルする時、ＡからＹへのアークでの電力は、３９０６．４５ｎＷである。Ｂがトグルする時、ＢからＹへのアークでの電力は、４２５３．２０５ｎＷである。セルＲＡＭ＿４０９６Ｘ３２は、メモリセルであって、クロック入力がＣＬＫとして与えられ、有効化がＣＥＮとして与えられ、かつ書込み有効化がＷＥＮとして与えられる。条件（！ＣＥＮ＆ＷＥＮ）が真である時、ＣＬＫのトグルは、５００４０００ｎＷに等しい電力消費を生じさせ、条件（！ＣＥＮ＆！ＷＥＮ）が真である時、ＣＬＫのトグルは、４４３００００ｎＷに等しい電力消費を生じさせる。
【００４６】
重みは、出力ピン又はピン間アークに指定することができる。対応する平均値が示され（４１６）、セルＮＡＮＤＸ２に関する値は、２つの別々のアーク（Ｂ／Ｙ、Ａ／Ｙ）の平均として計算される。セルＩＮＶＸ１は、その出力ピンＹに対して１００７．２６に等しいアーク電力を有し、セルＮＡＮＤＸ２は、その出力ピンＹに対して（４２５３＋３９０６）／２＝４０７９ｎＷに等しいアーク電力を有し、メモリセルＲＡＭ４０９６Ｘ３２は、条件（！ＣＥＮ＆ＷＥＮ）でのアーク１に対して５００４００ｎＷに等しいアーク電力を有し、かつ条件（！ＣＥＮ＆！ＷＥＮ）でのアーク２に対して４４３００００ｎＷに等しいアーク電力を有する。この実施形態に対して、重み（４１８）は、この設計でのセルに関する最小の平均アーク電力によって割ったアーク電力として定めることができる。この場合には、最小平均アーク電力は、セルＩＮＶＸ１に対応する。その結果、ＩＮＶＸ１は、１に等しい重みを有し、ＮＡＮＤＸ２は、４に等しい重みを有し、ＲＡＭ４０９６Ｘ３２は、条件（！ＣＥＮ＆ＷＥＮ）に対して４９６９に等しい重みを有し、かつ条件（！ＣＥＮ＆！ＷＥＮ）に対して４３９９に等しい重みを有する。（ここで重みは、整数値に丸められている。）
【００４７】
図４Ｃは、トグル計数を計算する（４０４）ための方式を示している。非重み付けの場合には、トグル計数（４２０）は、０から１に又は１から０にトグルするピンの数の和によって与えられる。重み付けトグル計数（４２２）は、０から１に又は１から０にトグルするピンの重み付け数の和に、アクティブアークの重み付け数の和を加えたものである。アークは、「Ａｒｃ  Ｆｒｏｍ」ピンがトグルし、かつ「Ａｒｃ  Ｔｏ」ピンがトグルし、かつ「ｗｈｅｎ」条件が真である時にアクティブである。ピン重み値及びアーク重み値の両方は、セルの電力モデル又はＩＰユニットの電力モデルに基づいて直接計算することができる。回路が作動される時、ピンは、トグルするか又はしない可能性があり、アークは、アクティブであるか又はアクティブでない場合がある。ＡＳＩＣセルのような単純なセルに対しては、その重みは、その出力ピンの重みによって判断される。メモリセル又はＩＰユニットのような複雑なセルに対しては、その重みは、そのアークの重みによって判断される。回路は、メモリセル及びＩＰユニットの数に比較して巨大な数の単純ゲートを通常有する。アークがアクティブであるか否かを検査することは、典型的にはピンがトグルするか否かを検査することに比べて何倍も高価である。ピン重み及びアーク重みを用いて回路の重み付けトグル計数プロフィールを発生させる混成法は、関連する精度要件を満たし、良好な性能を通常有する。非重み付けの例（４２４）が、トグル計数が２である場合で示され、重み付けの例（４２６）が、重み付けトグル計数が５である場合で示されている。
【００４８】
図５は、トグル計数プロフィールを発生させる（１１６）、（３０４）ための及び時間ウィンドウを配置する（１１８）、（３０６）ためのオフラインモード１０６内の作動に関する更なる詳細を示し、これは、トグル計数プロフィールに基づいて高活動インスタンス及び時間ウィンドウを識別する段階を含む（例えば、インスタンス及び電力報告深度の選択（３０８）とウィンドウ及びセグメント分割の指定（３１０）とに関連する作動におけるような）。時間ウィンドウは、最初にトグル計数プロフィールの全時間範囲であると見なされる（５０２）。次に、ソフトウエアは、最初の時間ウィンドウにおけるトップのＮ個のインスタンス（例えば、対応するネットの数に基づいて記憶された）を選択することができ、選択されたインスタンスに対して波形を発生させることができる（５０４）（例えば、入力に基づいて（５０６））。次に、トグル計数プロフィール波形を、選択されたインスタンスに対して発生させることができる（５０８）。次に、ソフトウエアは、選択されたインスタンス又はユーザ指定の閾値に基づいて（５１２）高活動の時間ウィンドウを識別することができる（５１０）。ユーザは、トグル計数プロフィール波形を観察することにより、手動で時間ウィンドウを選択することもできる。次に、ユーザは、新しい時間ウィンドウにおけるトップのＮ個のインスタンスを任意的に選択することができ、かつこの選択を改良するために従来の段階を再び繰り返すことができる（５１４）。
【００４９】
図６は、マスター／スレーブＴＣＦファイルを発生する段階を含むオフラインモード１０６に関する更なる詳細を示す（例えば、ＴＣＦ／ＳＡＩＦファイル及びＴＣＦ／ＳＡＩＦトグル計数波形の発生（３１２）に関する作動におけるような）。この処理の開始は、インスタンスの指定（６０２）及び時間ウィンドウ及び各時間ウィンドウでのセグメント分割の指定（６０４）を含む。マスターＴＣＦファイルは、所定のインスタンスに対して発生させることができる（６０６）。各時間ウィンドウにおいて、スレーブＴＣＦファイルを各セグメントに対して発生させることができ、このスレーブＴＣＦファイルに関するトグル計数レート及び負荷計数レートを計算することができる（６０８）。ＴＣＦトグル計数レート及び負荷計数レート波形は、所定の時間ウィンドウ内で発生させることができる（６１０）。セグメント解像度は変更することができ（６１４）、それによって一部の時間ウィンドウにおいてセグメント分割を調節することができる（６１４）。最後に、マスター／スレーブＴＣＦファイルは、電力を計算するために並行して使用することができる（６１８）。
【００５０】
図６に示されているマスター／スレーブＴＣＦファイルの作成は、エミュレーションシステムのためのデータ処理を実質的に改善することができる。エミュレーションシステムは、多くのＴＣＦファイルを発生させることになるので、エミュレーションシステム１１０と第三者電力計算ツール１０８の間のインタフェースは、処理機能に対して重要であることになる。マスターＴＣＦファイルは、設計ピン又はネットの階層情報を有し、一方でスレーブＴＣＦファイルは、ピン又はネットのトグル計数及び負荷計数を有する。これに伴って、電力計算ツールが、ピン／ネット階層ロケーションをアノテートすることを要求することは一度のみであり、従って、ＴＣＦファイルのための計算時間及びディスクのスペースが節約される。全体の設計に対して１つのみのマスターＴＣＦが発生される。１つのスレーブファイルが、各時間セグメントに対して発生される。スレーブＴＣＦファイルに対してトグル計数及び負荷計数が計算されると、スレーブＴＣＦファイルに関する合計のトグル計数及び負荷計数も蓄積される。従って、スレーブＴＣＦファイルが発生された状態で、その合計のトグル計数及び負荷計数も利用することができる。全てのスレーブＴＣＦファイルが発生されると、ＴＣＦトグル計数プロフィールも利用することができる。更に、波形フォーマットでのＴＣＦトグル計数プロフィールは、ユーザが、全てのスレーブＴＣＦファイルにおける活動を波形グラフィック上で一目で見ることを可能にすることになる。その間に、ソフトウエアは、ＴＣＦトグル計数プロフィールを使用して閾値によってセグメント解像度を調節する。好ましくは、第三者電力評価ツール１０８は、セグメントの群毎に電力を計算するように並行して起動することができる。
【００５１】
低電力設計のためのパワーマネージメントに対する１つの手法は、「共通パワーフォーマット（ＣＰＦ）」の開発であったが、これは、設計者が、ＲＴＬ（レジスタ転送レベル）からＧＤＳＩＩ（グラフィックデータシステムＩＩ）実施までを通して、全体の設計フロー内の様々な設計ツールによって共有することができる単一ファイルでのパワーマネージメント情報のような設計意図を指定することを可能にするものである。一貫したパワーマネージメント解析は、アーキテクチャ探索、論理設計、検証、合成、実際の実施及び承認解析を含む関連する設計ステージ全体にわたり維持することができる。（Ｃｈｉ-Ｐｉｎｇ  Ｈｓｕ著「共通パワーフォーマットで電力を前方に押し出すこと−それを正しく行う処理」、ＥＥＴｉｍｅｓ、２００６年１１月５日。）
【００５２】
ＣＰＦによれば、設計は、異なる電力ドメインにグループ分けすることができる。各電力ドメインは、同じか又は異なる電圧を有する別々の電源に接続することができる。全ての電力ドメインの状態は、全体の設計の電力モードを判断する。電力モード波形は、時間ウィンドウ内部に発生されると考えられる。ユーザは、各電力モード内のセグメントの数を指定する。セグメントの数は、ゼロ又はいずれかの正の整数とすることができる。デフォルトにより、１つのセグメントが各電力モードに準備されている。
【００５３】
図７は、低電力設計内の電力モードに基づいてセグメント解像度を判断する（例えば、時間ウィンドウ及びセグメント分割の変更（３０２）に関する作動におけるような）段階を含むオフラインモード１０６に関する更なる詳細を示している。ＲＴＬ／ゲート設計７０２及びＣＰＦファイル７０４に基づいて、コンパイルは、ＣＰＦ低電力要素（例えば、「電力遮断（ＰＳＯ）」、「多重供給電圧（ＭＳＶ）」、「動的電圧及び周波数スケーリング（ＤＶＦＳ）」）を含むネットリストを発生する（７０６）。次に、ネットリストは、エミュレータ内で作動させることができ、設計データを複数の時間ウィンドウに対して収集することができる（７１０）（例えば、オンラインモード１０４で）。オフラインモード１０６に関するこの準備に伴い、電力モードプロフィールを各時間ウィンドウにおいて発生させることができる（７１２）（例えば、電力モードプロフィールの発生（３０６）に関するより一般的な作動におけるように）。各電力モードに関するセグメント数の指定に伴い（７１４）、ＴＣＦ／ＳＡＩＦファイルをセグメント毎に発生させることができ、対応するＴＣＦ／ＳＡＩＦトグル計数プロフィールを形成することができる（７１６）（例えば、ＴＣＦ／ＳＡＩＦファイル及びトグル計数波形の発生（３１２）に関するより一般的な作動におけるように）。図１、図３、及び図６に示されているより一般的な作動におけるのと同様に、セグメント解像度を変更することができ（７１８）、セグメントの対応する調節が行われ（７２０）、得られたＴＣＦ／ＳＡＩＦファイルを並列的な電力計算及び報告に使用することができる（７２２）。
【００５４】
図８は、機能ブロック又はインスタンス（及びそれらのサブ−インスタンス）に対して電力プロフィールを発生する段階（３１６）を含むオフラインモード１０６に関する更なる詳細を示している。最初にトップインスタンスが選択され（８０２）、かつセグメント解像度が判断される（例えば、トグル計数プロフィール又は電力モードに基づいて）（８０４）。ＴＣＦ／ＳＡＩＦファイルを各セグメントに対して発生させることができ（８０６）、電力値を各セグメントに対して計算することができる（８０８）。インスタンスの深度を電力報告に対して選択することができ（８１０）、電力テーブルの発生（８１２）がもたらされ、かつ複数セグメントを縫い合わせることにより電力波形が発生される（８１４）。セグメント解像度を変更することができ（８１６）、新しいセグメント値が収集され（８１８）、新しいＴＣＦ／ＳＡＩＦファイルが発生される（８０６）。インスタンス及び深度も変更することができ（８２０）、続いて新しい電力報告が行われる（８１０）。
【００５５】
ＴＣＦ／ＳＡＩＦファイル８０６は、動的電力計算及び静的電力計算の両方に使用することができる。例えば、ＴＣＦファイル内の負荷計数は、静的電力計算、並びに動的電力計算のための１つの因子である。一般的に、電力プロフィールは、合計電力プロフィール、動的電力プロフィール（これは、内部電力プロフィール、ネット電力プロフィールに更に分割することができる）、及び静的電力プロフィールを含むことになる。
【００５６】
電力プロフィールは、セグメント上の所定の機能ブロックに対して又はこの作動的モードの中でのセグメント上のトップインスタンス及びサブ−インスタンスの所定の深度に対して、波形で（８１４）又はテーブルによって（８１２）表することができる。セグメント解像度は、電力消費プロフィールに基づいて調節することができ、すなわち、高電力消費セグメントは、更に狭くすることができる。セグメント解像度が変更された状態で、新たに作成されたセグメントに対してＴＣＦ／ＳＡＩＦを作成することができ、電力波形及び機能ブロック／インスタンス電力テーブルを更新することができる。インスタンス深度が変更された状態で、電力波形及びインスタンス電力テーブルを更新することができる。
【００５７】
図９は、機能ブロックに関する代表的な電力消費テーブル８１２を含むオフラインモード１０６に関する更なる詳細を示している。機能ブロック電力消費テーブルは、作動的モードにわたる各セグメント内の全ての機能ブロックの電力消費値を示している。このテーブルは、全てのセグメントにわたり合計電力（静的電力＋動的電力）に基づいて分類することができ、又は作動的モードにより、又はセグメントによって分類することができ、又は全く分類されなくてもよい。分類されない時、テーブル内の要素は、電力消費数のみであることになる。分類される時、テーブル内の要素は、１対の値であることになる（機能ブロック名、電力消費値）。図に説明されたように、機能ブロックは、電力数を示す群のインスタンスＰijとすることができ（例えば、ｉ＝１、２、３、及びｊ＝１、２、３、４に対して）、作動的モードは、選択された時間ウィンドウに関する電力モード又はイベント／トリガとすることができる。
【００５８】
図１０は、インスタンスに関する代表的な電力消費テーブル８１２を含むオフライン１０６に関する更なる詳細を示している。明らかに、図１０におけるインスタンス電力消費テーブルは、図９における機能ブロック電力消費テーブルに類似した構造を有する。図に説明されたように、ｉ＜ｊである時、インスタンスｉは、インスタンスｊのサブ−インスタンスとすることができ、Ｐijは、電力数を表し（例えば、ｉ＝１、２、３、及びｊ＝１、２、３、４に対して）、作動的モードは、選択された時間ウィンドウに関する電力モード又はイベント／トリガとすることができる。
【００５９】
上述の方法１０２に基づく付加的な実施形態は、ＤＵＴの性質を含む作動環境の要件によって定めることができる。図１１は、オンラインモード１０４、オフラインモード１０６、及び外部電力計算１０８に関する作動の特定のシーケンスに従ったピーク電力ウィンドウを検出する方法１１０２を示している。図１２Ａ−図１２Ｊは、図１１に示す実施形態に関する特に好ましい実施形態に関する詳細を示している。図１２Ａは、目覚まし時計、カレンダ、カメラ、ゲーム、メディアプレーヤ、音楽プレーヤ、電話、ラジオ、及びビデオを含む複数の部分から成る携帯電話設計に関する詳細を示している。
【００６０】
段階１１０４において、エミュレーションシステムが、意図された適用環境内で実行され、ＤＵＴの移行活動がファイルに記録される。それらのデータは、電力解析のためのポストプロセシングに使用されると考えられる。記録されたファイル内の関連の時間ウィンドウは、様々な作動的モードの範囲にわたる場合がある。作動的モードは、電力モード（ＣＰＦ準拠設計に関する）、又はイベント／トリガによってマーク付けされた起点を有する期間とすることができる。
【００６１】
第１の段階１１０４において、設計を操作する方法に関する命令を与える適用環境を有するエミュレーションシステム内で設計が行われる。設計が行われる間、ＤＵＴ活動は、２つのファイルに記録されると考えられる。第１のファイルは、．ｐｈｙファイルであり、これは、ＤＵＴの入力／出力ピンの値、順次要素（フリップフロップのような）出力ピン、各クロックサイクルにおけるメモリ出力値、割り当てられたクロックサイクル内の特別の信号のフォース／リリーズ／セット値を含む。第２のファイルは、．ｔｃファイルであり、これは、１組の所定のインスタントのクロックサイクル毎の重み付けトグル計数、非重み付けトグル計数、及び負荷計数である。
【００６２】
ユーザが、時間０から時間２００００クロックサイクルまで携帯電話設計を実行すると仮定する。その時、２つのファイル「ｐｏｗｅｒ．ｐｈｙ」及び「ｐｏｗｅｒ．ｔｃ」が発生されると考えられる。これらの２つのファイルは、［０−２００００）クロックサイクルに関する活動情報を含むことになる。両方のファイルは、性能を考慮したバイナリファイルである。これらの２００００サイクルの間、この適用環境は、携帯電話を［０、１０００）、［１００００、１４０００）、［１９０００、２００００）の期間の期間待機モードに設定し、［１０００、１００００）、［１４０００、１９０００）の期間の期間アクティブモードに設定する。
【００６３】
第２の段階１１０６において、関連の時間ウィンドウは、電力モード（ＣＰＦ準拠設計に関する）、移行活動レベルの閾値のようなある一定の基準に基づいてセグメントに分割される。移行活動レベルは、ＤＵＴ内の全ての設計ノード又は選択された機能ブロックのトグル計数の測定値である。低移行活動レベルを有するそれらの期間は、所定の時間ウィンドウに関するゼロまでのセグメントの割り当て数によって除去することができる。ユーザは、各々の関連の時間ウィンドウにおけるセグメントの数を任意的に指定することもできる。
第２の段階１１０６において、「ｐｏｗｅｒ．ｐｈｙ」ファイル及び「ｐｏｗｅｒ．ｔｃ」ファイルに基づいて、電力モード及びトグル計数情報が、電力モードプロフィール及びトグル計数プロフィール内に抽出される。このプロフィールは波形に表示することができ、また、テキストファイルとして保存することができる。
【００６４】
与えられた設計において、それが３つの異なる作動的モード（電力モードのような）、ＳｔａｎｄＢｙ、Ｍｅｄｉａ、ＰｈｏｎｅＭｅｄｉａを有すると仮定する。モード「ＳｔａｎｄＢｙ」は、携帯電話が待機状態にあることを意味し、「Ｍｅｄｉａ」は、携帯電話がカメラ／ビデオ／メディアプレーヤ／音楽プレーヤ／ラジオ／目覚まし時計／カレンダ／ゲームのようなアプリケーションに使用されることを意味し、「ＰｈｏｎｅＭｅｄｉａ」は、携帯電話が電話をかける／受けるのに使用されることを意味する。この電話セッションの間、メディアアプリケーションは、作動してもよく作動しなくてもよい。
【００６５】
図１２Ｂは、テキスト形式での電力モードプロフィールを示し、これは、時間と共に連続する電力モード（例えば、インターバル［０  ９９９］の間のＳｔａｎｄＢｙ電力モード）を含む。図１２Ｃは、波形形式での電力モードプロフィールを示している。図１２Ｄは、インスタンスの所定のセット「ｄｕｔ」、「ｄｕｔ．ｐｈｏｎｅＣａｌｌ」、及び「ｄｕｔ．ｍｉｓｉｃＰｌａｙｅｒ」に関する波形形式でのトグル計数プロフィールを示している。波形が、クロックサイクル毎のトグル計数（例えば、「ｄｕｔ＿ｔｏｇｇｌｅ」、「ｄｕｔ．ｐｈｏｎｅＣａｌｌ＿ｔｏｇｇｌｅ」、及び「ｄｕｔ．ｍｉｓｉｃＰｌａｙｅｒ＿ｔｏｇｇｌｅ」）、及び負荷計数（例えば、「ｄｕｔ＿ｈｉｇｈ」、「ｄｕｔ．ｐｈｏｎｅＣａｌｌ＿ｈｉｇｈ」、及び例えば、「ｄｕｔ．ｍｕｓｉｃＰｌａｙｅｒ＿ｈｉｇｈ」）に対して示されている。
【００６６】
電力モードプロフィール及び／又はトグル計数プロフィールに基づいて、時間セグメント解像度が識別される。例えば、電力モードプロフィールに基づいて、「ｓｔａｎｄｂｙ」電力モードは、１又は０セグメントを有し、「ｐｈｏｎｅＭｅｄｉａ」及び「ｍｅｄｉａ」モードは、１又はそれよりも多くのセグメントを有する。トグル計数プロフィールに基づいて、１０未満の「ｄｕｔ」に関する合計のトグル計数は、除去されると考えられる。
【００６７】
トグル計数プロフィールは、ユーザ入力なしにシステムによって発生させることができるのに対して、電力モードプロフィールは、ユーザがＣＰＦ（共通パワーフォーマット）ファイルを提供することを必要とする。ユーザは、トグル計数プロフィールのみを使用することを選択することができる。この例において、電力モードプロフィール及びトグル計数の両方は、関連の時間ウィンドウ：［１０００、９９９９］、［１４０００、１８９９９］を識別することになる。時間ウィンドウ［０  ９９９］、［１００００、１３９９９］、及び［１９０００  １９９９９］は、更に別のピーク検出のために削除される。
【００６８】
第３の段階１１０８において、ＴＣＦ／ＳＡＩＦファイルが、関連の時間ウィンドウに対して、各時間セグメント毎に１つのＴＣＦ／ＳＡＩＦファイルの状態で発生される。その間に、各ＴＣＦ／ＳＡＩＦ内の合計のトグル計数及び負荷計数は、ＴＣＦ／ＳＡＩＦファイルを有する全てのセグメントの範囲におよぶ合計のトグル計数／負荷計数プロフィール内に収集される。例えば、ノードが、３００クロックサイクルの持続期間にわたって１２６クロックサイクルに対して論理「１」にある時、この期間におけるこの特定のノードに対して負荷計数は１２６であり、高値確率は４２％である。次に、負荷計数が漏れ電流計算のために使用される。ユーザは、波形で表されたＴＣＦ／ＳＡＩＦ内のトグル計数レート及び負荷計数レートを観察することができる。ＴＣＦ／ＳＡＩＦトグル計数／負荷計数プロフィールに基づいて、セグメントの一部は、より細かい細分性のために、更に自動的に分割することができる。低トグル計数レートを有する一部のセグメントは、粗い解像度を有する１つのセグメントとして結合することができる。ユーザは、いずれかのセグメントを複数のより狭いセグメントに分割するように選択することができる。
【００６９】
第３の段階１１０８において、１つのＴＣＦ／ＳＡＩＦファイルが、セグメント毎に発生されると考えられる。ＴＣＦ／ＳＡＩＦファイルの数が大きい時、ＴＣＦ／ＳＡＩＦファイルを発生して、第三者にＴＣＦ／ＳＡＩＦを渡して電力消費を計算するタスクは、多大な時間を必要とする場合がある。適切なセグメントに分割する方法は、性能を改善するのに重要であることになる。トグル計数レート及び負荷計数レートは、セグメントを分割するのに使用される。分割されたセグメントに基づいて、完全なＴＣＦ／ＳＡＩＦファイルが発生され、第三者電力評価ツールに渡されると考えられる。
【００７０】
図１２Ｅは、この設計例のための波形でのＴＣＦ／ＳＡＩＦトグル計数プロフィールを示している。図１２Ｅにおいて、第１群の３つのラインは、２０００クロックサイクルとして各々のセグメント長さを有するトグル計数レート及び負荷計数レート波形を示し（ｐｏｗｅｒＣｌｏｃｋ、ｔｏｇｇｌｅＲａｔｅ、及びｈｉｇｈＲａｔｅに対して）、第２群の３つのラインは、４００クロックサイクルとして各々のセグメント長さを有するトグル計数レート及び負荷計数レート波形を示し、第３群の３つのラインは、１００クロックサイクルとして各々のセグメント長さを有するトグル計数レート及び負荷計数レートを示し、第４群の３つのラインは、１０クロックサイクルとして各々のセグメント長さを有するトグル計数レート及び負荷計数レート波形を示している。
【００７１】
図１２Ｆは、選択されたセグメントのログコンテントの一部を示している。例えば、セグメント［０  ９９９］に関する第１のエントリは、持続期間１０００、ＴｏｇｇｌｅＲａｔｅ＝１．００及びＨｉｇｈＲａｔｅ＝７３．５０を有する。図１２Ｇは、マスターＴＣＦファイルコンテントを示している。図１２Ｈは、スレーブＴＣＦファイルコンテントを示している。図１２Ｉは、ＳＡＩＦコンテントを示している。
【００７２】
図１２ＧにおけるマスターＴＣＦファイルは、このＴＣＦ内でピンを定める。各々のピンはＩＤを有する。例えば、ピンｃｅ［２］はＩＤ６６を有する。図１２ＨにおけるスレーブＴＣＦファイルは、各ピンに対してトグル計数及び負荷計数確率を定める。例えば、６６に等しいＩＤを有するピンに対して、２００ｎｓ長の時間セグメント［１８００ｎｓ  １９９９ｎｓ］の期間に、トグル計数は、２５であり、負荷計数確率は０．４８である。
【００７３】
図１２ＩにおけるＳＡＩＦファイルは、ピンを定め、それらのピンが値「０」及び値「１」 を有する時の合計時間、「１」から「０」まで又は「０」から「１」までのトグル計数などを定める。例えば、１０００ｎｓ時間セグメントの期間に、ピンｃｅ［２］は、５０４ｎｓに対して値「０」を有し、４９６ｎｓに対して値「１」を有し、かつ「１」から「０」又は「０」から「１」の１２５の移行を有する。
【００７４】
第４の段階１１１０において、ＴＣＦ／ＳＡＩＦファイルが第三者ツール１０８に送られ、消費された電力が計算される。ユーザは、どのインタンスに彼は関心があるか、かつ所定のインスタンスのどの深度に彼は関心があるか指定することができる。第三者ツールは、それらインスタンスに関する電力及び要求された階層深度におけるそれらのサブ−インスタンスに関する電力を報告する。
第４の段階１１１０において、ＴＣＦ／ＳＡＩＦファイルが第三者ツール１０８に送られ、電力消費が計算される。この例においては、「Ｃａｄｅｎｃｅ（登録商標）」ＲＴＬコンパイラが、電力値を計算するのに使用された。
【００７５】
第５の段階１１１２において、電力消費プロフィールが、この電力報告に基づいて発生される。電力消費プロフィールは、セグメントにわたる電力消費波形、又は各セグメント内の機能ブロック又はインスタンスの電力消費を示す機能ブロック／インスタンスの電力消費テーブルのいずれかとして表することができる。
第５の段階１１１２において、電力消費プロフィールは、波形フォーマット又はテーブルで発生させることができる。図１２Ｊは、「ｄｕｔ」及び「ｄｕｔ．ｐｈｏｎｅＣａｌｌ」に関する電力消費を波形で示している。第１群の３つのラインは、ｐｏｗｅｒＣｌｏｃｋ、ｄｕｔ．Ｄｙｎａｍｉｃ、ｄｕｔ．ｐｈｏｎｅＣａｌｌ．Ｄｙｎａｍｉｃに対して２０００クロックサイクルの最低セグメント長さでの結果を示し、ここで、ｐｏｗｅｒＣｌｏｃｋは、セグメント境界を示している。第２群の３つのラインは、４００クロックサイクルの最低セグメント長さでの結果を示している。第３群の３つのラインは、１００クロックサイクルの最低セグメント長さでの結果を示している。第４群の３つのラインは、１０クロックサイクルの最低セグメント長さでの結果を示している。
【００７６】
第６の段階１１１４において、解像度を調節することによって電力消費プロフィールが調節され、又はより高い電力消費の状態でセグメントの解像度が改良される。電力消費プロフィールに基づいて、システムが、更に狭くすべきである時間セグメントを識別するために電力消費値のための適切な閾値を判断することができる。次に、ユーザは、局所的なピーク電力を有する望ましい電力プロフィールが発生されるまで第３の段階１１０８から第６の段階１１１４を反復することができる。
【００７７】
第７の段階１１１６において、結果に関する少なくとも一部の値は、表示又は付加的な解析のために保存することができ、それには、例えば、機能ブロック及びインスタンスに関する電力消費テーブルが含まれる（例えば、図９−図１０）。代替的に、結果の何らかの誘導又は総括形式を作動環境の要件に従った以後の用途のために保存することができる。ユーザは、様々な適用シナリオの下での電力消費プロフィールを考察するための異なる試験を行うことができる。
【００７８】
この電力解析技術は、全体的なチップに限定されない。この技術は、ブロックレベルでも同様に適用することができる。ＴＣＦ／ＳＡＩＦがブロックレベルでのみ発生される時、電力解析は、このブロックレベルに集中することができ、必要な計算時間はより少ないことになる。例えば、ＤＵＴの特定のブロック（第三者からの保護されたＩＰユニットのような）に対して詳細な設計又は電力情報が利用できない場合、ユーザは、チップの残りに作業するためにこれらのブロックを省略することを選択することができる。
【００７９】
上述の実施形態は、全体の作動的タイムスパンにわたって、ＤＵＴ又はブロックに対して局所的ピーク電力を自動的に配置するための閾値を有するフィルタの使用を可能にする。全体の作動的タイムスパンにわたる全ての作動的モードにおける時間セグメントが配置された状態で、本発明の教示は、電力プロフィールを発生する方法を提供し、このプロフィールは、全ての時間セグメントにわたり、機能ブロック又はインスタンスに関する電力消費波形又は電力消費テーブルとして示すことができる。換言すれば、作動的モードにおける機能ブロック又はインスタンスの電力消費プロフィールを波形又はテーブルとして示すことができる。
【００８０】
機能ブロックは、群のインスタンスから構成することができる。インスタンスは、ＤＵＴ全体と対応する時のそれらの合計のトグル計数又は電力消費に基づいて分類することができる。これは、ユーザがとの機能ブロックがより細かい解像度での付加的な解析を必要とするかを識別するのに役立つ。
回路電力モードプロフィール、トグル計数プロフィール、ＴＣＦ／ＳＡＩＦトグル計数プロフィール、及び電力消費プロフィールは、ＳＳＴ２（「Ｃａｄｅｎｃｅ（登録商標）ＩＵＳ  ＳｉｍＶｉｓｉｏｎ」製品によって見ることができる）、又はＦＳＤＢ（「Ｎｏｖａｓ（登録商標）Ｄｅｂｕｓｓｙ」製品によって見ることができる）のような業界標準波形データベースフォーマットで発生させることができる。それらのデータベースを用いれば、波形が同じ時間基準を用いる回路信号と同じ波形ウィンドウ内で見ることができる。ピーク電力ウィンドウが波形内に配置された状態で、回路信号に関する値は、ピーク電力に対応する時間ウィンドウ内で検査することができる。
【００８１】
図９、図１０、及び図１２Ｊで示すように、様々な電力消費プロフィールをセグメント情報及び電力消費報告に基づいて発生させることができる。電力タイプに対しては、ユーザは、合計電力プロフィール、動的電力プロフィール、及び静的電力プロフィールを有することができる。オブジェクトに対しては、ユーザは機能ブロックに基づく電力プロフィール、又は個別のインスタンス及びそのサブ−インスタンスに基づく電力プロフィールを有することができる。これは、ユーザが、各作動的モード（これは、電力モード又は関連の時間ウィンドウに関するイベント／トリガ）又は電力消費の異なるプロフィールを有する機能ブロック又はインスタンスを検査することができるようにする。
【００８２】
上述のように、本発明の一部の実施形態は、現実的な環境条件の下でピーク電力ウィンドウを検出する高性能な方法を可能にする。第１に、非常に長期の実行中の回路活動は、ソフトウエアベースのシミュレータよりも通常非常に高速のエミュレーションシステムによって記録される。一般的に、回路内で作動するエミュレーションシステムは、例え回路開発の初期段階（例えば、実際の実施の前）においても、現実的な環境でのピーク電力の評価を保証することができる。次に、エミュレーションクロックサイクル毎の回路の全体のトグル計数、重み付けトグル計数、及び負荷計数は、エミュレーションシステムによって計算することができる。次に、実際の電力消費値を計算する代わりにトグル計数レート及び負荷計数を用いることにより、動的電力消費における変化をより高速に計算することができる。更に、電力消費計算は、通常多大の時間を消費するので、時間ウィンドウの全てのセグメントの代わりに、選択されたセグメント内の電力消費値を計算することは、ピーク電力位置を判断するための全体的な計算時間を低減することができる。
【００８３】
一部の実施形態はまた、回路作動的モードに基づく「ｗｈａｔ−ｉｆ」電力解析を行うための高性能の方法を可能にする。一般的に、作動的モードは、回路挙動又は回路状態（例えば、携帯電話が待機モード、アクティブ−呼びモード、又はメディア−再生モードにあるか否か）を判断する。間連する作動モードにわたる電力プロフィールを計算して示すことにより、電力課題に関する対応する回路挙動がより容易に識別される（例えば、待機モードとメディア−再生モードの間の交換における低電力技術の適用妥当性）。また、回路作動的モードに基づくｗｈａｔ−ｉｆ電力解析は、電力関連アーキテクチャ選択に望ましく影響を与える。例えば、「共通パワーフォーマット（ＣＰＦ）」は、回路−電力−供給−関連状態を定める専用作動的モードである電力モードを使用する。ある一定の電力モードは、電力遮断（ＰＳＯ）、多重電圧供給（ＭＳＶ）、及び動的電圧周波数スケーリング（ＤＶＦＳ）を含む適用された低電力技術に対応する。例えば、メディア再生モードは、ＰＳＯ、ＭＳＶ、又はＤＶＦＳを用いて設計することができ、それによって対応する電力モードは、ＰＳＯメディア再生電力モード、ＭＳＶメディア再生電力モード、又はＤＶＦＳメディア再生電力モードとすることができる。次に、メディア再生モードに対応するデバイスにおいて、ＰＳＯ又はＭＳＶ又はＤＶＦＳを用いたアーキテクチャを開発して解析することができ、より優れた性能を提供するアーキテクチャが判断される。
【００８４】
付加的な実施形態は、上述の方法のいずれかを達成するための装置に関し、この装置は、本方法に関するコンピュータ命令を実行するためのコンピュータを含む。この関連において、コンピュータは、例えば、プロセッサ、メモリ、記憶装置、及び入力／出力デバイス（例えば、キーボード、ディスプレイ、ディスクドライブ、インターネット接続など）を含む汎用コンピュータとすることができる。しかし、このコンピュータは、本方法の一部又は全ての態様を達成する回路又は他の専用ハードウエアを含むことができる。一部の作動環境において、装置は、その各々が本方法の一部の態様をソフトウエア、ハードウエア、又はそれらのある組合せのいずれかにおいて達成するように構成された１つ又はそれよりも多くのユニットを含むシステムとして構成することができる。本方法の結果に関する少なくとも一部の値は、メモリ（例えば、ＲＡＭ（ランダムアクセスメモリ））又は永続的記憶装置（例えば、ハードディスクシステム）のいずれかに以後の使用ために保存することができる。
【００８５】
付加的な実施形態は、上述の方法のいずれか１つをコンピュータ手段によって達成するためのコンピュータプログラムを格納する（例えば、有形的に具現化する）コンピュータ可読媒体にも関する。コンピュータプログラムは、例えば、汎用プログラミング言語（例えば、Ｃ、Ｃ＋＋）又は何らかの専用アプリケーション向け言語で作成することができる。コンピュータプログラムは、何らかの有用なフォーマット（例えば、バイナリ、ＡＳＣＩＩ）での符号化ファイルとして格納することができる。
【００８６】
本発明のある一定の例示的な実施形態のみを詳述したが、本発明の新規な教示及び利点から著しく逸脱することなく多くの修正がこの例示的な実施形態において可能であることを当業者は容易に認めるであろう。例えば、上記に開示した実施形態の態様は、他の組合せに結合して付加的な実施形態を形成することができる。従って、全てのこうした修正は、本発明の範囲に含まれるように意図している。
【符号の説明】
【００８７】
１０２  動的電力解析の方法
１０４  エミュレーションオンラインモード
１０６  エミュレーションオフラインモード
１０８  外部又は第三者ツール
【図１】
2009266237.tif 000007
【図２】
2009266237.tif 000008
【図３】
2009266237.tif 000009
【図４Ａ】
2009266237.tif 000010
【図４Ｂ】
2009266237.tif 000011
【図４Ｃ】
2009266237.tif 000012
【図５】
2009266237.tif 000013
【図６】
2009266237.tif 000014
【図７】
2009266237.tif 000015
【図８】
2009266237.tif 000016
【図９】
2009266237.tif 000017
【図１０】
2009266237.tif 000018
【図１１】
2009266237.tif 000019
【図１２Ａ】
2009266237.tif 000020
【図１２Ｂ】
2009266237.tif 000021
【図１２Ｃ】
2009266237.tif 000022
【図１２Ｄ】
2009266237.tif 000023
【図１２Ｅ】
2009266237.tif 000024
【図１２Ｆ】
2009266237.tif 000025
【図１２Ｇ】
2009266237.tif 000026
【図１２Ｈ】
2009266237.tif 000027
【図１２Ｉ】
2009266237.tif 000028
【図１２Ｊ】
2009266237.tif 000029
【外国語明細書】
2009266237.tif 000030
2009266237.tif 000031
2009266237.tif 000032
2009266237.tif 000033
2009266237.tif 000034
2009266237.tif 000035
2009266237.tif 000036
2009266237.tif 000037
2009266237.tif 000038
2009266237.tif 000039
2009266237.tif 000040
2009266237.tif 000041
2009266237.tif 000042
2009266237.tif 000043
2009266237.tif 000044
2009266237.tif 000045
2009266237.tif 000046
2009266237.tif 000047
2009266237.tif 000048
2009266237.tif 000049
2009266237.tif 000050
2009266237.tif 000051
2009266237.tif 000052
2009266237.tif 000053
2009266237.tif 000054
2009266237.tif 000055
2009266237.tif 000056
2009266237.tif 000057
2009266237.tif 000058
2009266237.tif 000059
2009266237.tif 000060
2009266237.tif 000061
2009266237.tif 000062
2009266237.tif 000063
2009266237.tif 000064
2009266237.tif 000065
2009266237.tif 000066
2009266237.tif 000067
2009266237.tif 000068
2009266237.tif 000069
2009266237.tif 000070
2009266237.tif 000071
2009266237.tif 000072
2009266237.tif 000073
2009266237.tif 000074
2009266237.tif 000075
2009266237.tif 000076
2009266237.tif 000077
2009266237.tif 000078
2009266237.tif 000079