(57)【要約】【課題】消費電力の解析時間を大幅に短縮すること。【解決手段】消費電力解析装置１００は、全体レベル時区間データ作成部３０１と、相関関係データ作成部３０２と、電力算出部３０３と、を備えている。相関関係データ作成部３０２は、ブロックレベル設計データ３１０、ブロックレベルテストベンチ３１１、計測設定ファイル３１２、およびクロック・ＲＡＭ指定ファイル３１３を読み込んで、相関関係データ３２３を中間データとして作成する。全体レベル時区間データ作成部３０１は、ブロックレベル設計データ３１０を読み込んで、全体レベル時区間データ３２０を中間データとして作成する。電力算出部３０３は、中間データである全体レベル時区間データ３２０と相関関係データ３２３を読み込んで、ブロックレベル時区間別消費電力結果３３０を出力する。【選択図】図３
2008234187.tif 000002
【特許請求の範囲】
【請求項１】
解析対象回路内のゲーティッドクロックバッファを有するモジュールに関する設計データおよびテストベンチとの入力を受け付けさせる入力工程と、
前記設計データおよび前記テストベンチに基づいて、前記モジュールにおけるクロック信号の期間別クロック変化率およびデータ信号の期間別データ変化率を算出させる期間別変化率算出工程と、
前記期間別変化率算出工程によって算出された前記クロック信号の期間別クロック変化率と前記データ信号の期間別データ変化率との相関関係をあらわす相関関係データを生成させる生成工程と、
をコンピュータに実行させることを特徴とする消費電力解析支援プログラム。
【請求項２】
前記クロック信号の期間別クロック変化率と前記相関関係データとに基づいて、前記モジュールにおける前記クロック信号の期間別平均クロック変化率を算出させる期間別平均クロック変化率算出工程を前記コンピュータに実行させることを特徴とする請求項１に記載の消費電力解析支援プログラム。
【請求項３】
解析対象回路内のＲＡＭにアクセスするモジュールに関する設計データおよびテストベンチとの入力を受け付けさせる入力工程と、
前記設計データおよび前記テストベンチに基づいて、前記モジュールにおけるデータ信号の期間別データ変化率および前記ＲＡＭのクロックイネーブル端子の期間別アサート率を算出させる期間別変化率算出工程と、
前記前記データ信号の期間別データ変化率と前記クロックイネーブル端子の期間別アサート率との相関関係をあらわす相関関係データを生成させる生成工程と、
をコンピュータに実行させることを特徴とする消費電力解析支援プログラム。
【請求項４】
前記データ信号の別データ変化率と前記相関関係データとに基づいて、前記モジュールにおける前記データ信号の別平均データ変化率を算出させる期間別平均データ変化率算出工程を前記コンピュータに実行させることを特徴とする請求項３に記載の消費電力解析支援プログラム。
【請求項５】
解析対象回路内のＲＡＭにアクセスするモジュールに関する設計データおよびテストベンチとの入力を受け付けさせる入力工程と、
前記設計データおよび前記テストベンチに基づいて、前記モジュールにおけるクロック信号の期間別クロック変化率，データ信号の期間別データ変化率および前記ＲＡＭのクロックイネーブル端子の期間別アサート率を算出させる期間別変化率算出工程と、
前記クロック信号の期間別クロック変化率と前記データ信号の期間別データ変化率との相関関係をあらわす第１相関関係データと、前記データ信号の期間別変化率と前記クロックイネーブル端子の期間別アサート率との相関関係をあらわす第１相関関係データとを生成させる生成工程と、
をコンピュータに実行させることを特徴とする消費電力解析支援プログラム。
【請求項６】
請求項１〜５のいずれか一つに記載の消費電力解析支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【請求項７】
解析対象回路内のゲーティッドクロックバッファを有するモジュールに関する設計データおよびテストベンチとの入力を受け付ける入力部と、
前記設計データおよび前記テストベンチに基づいて、前記モジュールにおけるクロック信号の期間別クロック変化率およびデータ信号の期間別データ変化率を算出する期間別変化率算出部と、
前記期間別変化率算出部によって算出された前記クロック信号の期間別クロック変化率と前記データ信号の期間別データ変化率との相関関係をあらわす相関関係データを生成する生成手段と、
を備えることを特徴とする消費電力解析支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＬＳＩの消費電力を解析（見積もり）する消費電力解析支援プログラム、該プログラムを記録した記録媒体、および消費電力解析支援装置に関する。
【背景技術】
【０００２】
従来、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）の設計時において、製造の前にチップ全体の消費電力が制限値以下であることを確かめる必要があり、高い精度の消費電力解析をおこなう必要がある。消費電力を計算する消費電力解析手法は、今まで多く開発されてきている。
【０００３】
たとえば、論理シミュレーションから組み合わせ回路やレジスタなどの変化回数（信号の変化回数）を計測し、負荷容量や基本回路の電流式より消費電力を計算する手法（たとえば、下記特許文献１、２を参照。）や、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのハードウェアを用いた消費電力解析手法（たとえば、下記特許文献３、４を参照。）が知られている。
【０００４】
また、論理シミュレーションをハードウェアにより高速に実行するためのエミュレータ装置が各種市販されている。たとえば、Ｃａｄｅｎｃｅ社のＰａｌｌａｄｉｕｍシステム、Ａｐｔｉｘ社のＳｙｓｔｅｍ  Ｅｘｐｌｏｒｅｒシステム、Ｍｅｎｔｅｒ社のＣｅｌａｒｏシステムなどがある。
【０００５】
また、消費電力を削減するため、組み合わせ回路やレジスタなどからなる、ある回路ブロックが動作していないときに、その回路ブロック内のレジスタへのクロック入力を停止するゲーテドクロックという手法が知られている（たとえば、下記特許文献５を参照。）。
【０００６】
上記のような従来の消費電力解析手法では、チップ全体の消費電力を評価するために、チップの全ゲート回路の変化率（単位時間当たりの変化回数）を集計する必要があった。      
【０００７】
【特許文献１】特開平２−１３６７５５号公報
【特許文献２】特開平２−１７１８６１号公報
【特許文献３】特開２００２−２８８２５７号公報
【特許文献４】特開２００４−６２２３８号公報
【特許文献５】特開２００２−９２０６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した特許文献１〜５の消費電力解析手法では、解析対象がたとえば数千万ゲート回路から構成されるような大規模回路のときには、変化率集計の際のシミュレーション結果のデータ量が膨大なものとなり、データ収集や処理時間が長くなって消費電力の解析に時間がかかるという問題があった。一方、データ量を低減することにより消費電力を見積もることも可能であるが、そのような場合、得られた消費電力の精度が低下するという問題があった。
【０００９】
この発明は、上述した従来技術による問題点を解消するため、消費電力の解析時間を大幅に短縮することができる消費電力解析支援プログラム、該プログラムを記録した記録媒体、および消費電力解析支援装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、第１の発明にかかる消費電力解析支援プログラム、該プログラムを記録した記録媒体、および消費電力解析支援装置は、解析対象回路内のゲーティッドクロックバッファを有するモジュールに関する設計データおよびテストベンチとの入力を受け付け、入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるクロック信号の期間別クロック変化率およびデータ信号の期間別変化率を算出し、算出された前記クロック信号の期間別クロック変化率と前記データ信号の期間別データ変化率との相関関係をあらわす相関関係データを生成することを特徴とする。
【００１１】
この発明によれば、ゲーティッドクロックバッファを有するモジュールについて、消費電力解析ツールに与える期間別データ平均変化率の算出元となるデータを得ることができる。
【００１２】
また、上記発明において、前記解析対象回路全体におけるクロック信号の期間別クロック変化率と相関関係データとに基づいて、前記モジュールにおける前記クロック信号の期間別平均クロック変化率を算出することとしてもよい。
【００１３】
この発明によれば、ゲーティッドクロックバッファを有するモジュールの消費電力を解析することができる。
【００１４】
また、第２の発明にかかる消費電力解析支援プログラム、該プログラムを記録した記録媒体、消費電力解析支援装置、および消費電力解析支援方法は、解析対象回路内のＲＡＭにアクセスするモジュールに関する設計データおよびテストベンチとの入力を受け付け、入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるデータ信号の期間別データ変化率および前記ＲＡＭのクロックイネーブル端子の期間別アサート率を算出し、算出された前記データ信号の期間別データ変化率と前記クロックイネーブル端子の期間別アサート率との相関関係をあらわす相関関係データを生成することを特徴とする。
【００１５】
この発明によれば、ＲＡＭにアクセスするモジュールについて、消費電力解析ツールに与える期間別データ平均変化率の算出元となるデータを得ることができる。
【００１６】
また、上記発明において、前記解析対象回路全体におけるデータ信号の期間別データ変化率と相関関係データとに基づいて、前記モジュールにおける前記データ信号の期間別データ平均変化率を算出することとしてもよい。
【００１７】
この発明によれば、ＲＡＭにアクセスするモジュールの消費電力を解析することができる。
【００１８】
また、第３の発明にかかる消費電力解析支援プログラム、該プログラムを記録した記録媒体、消費電力解析支援装置、および消費電力解析支援方法は、解析対象回路内のＲＡＭにアクセスするモジュールに関する設計データおよびテストベンチとの入力を受け付け、入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるクロック信号の期間別クロック変化率，データ信号の期間別データ変化率および前記ＲＡＭのクロックイネーブル端子の期間別アサート率を算出し、算出された前記クロック信号の期間別クロック変化率と前記データ信号の期間別データ変化率との相関関係をあらわす相関関係データと、前記データ信号の期間別データ変化率と前記クロックイネーブル端子の期間別アサート率との相関関係をあらわす相関関係データとを生成することを特徴とする。
【００１９】
この発明によれば、ゲーティッドクロックバッファを有し、かつＲＡＭにアクセスするモジュールについて、消費電力解析ツールに与える期間別データ平均変化率の算出元となるデータを得ることができる。
【００２０】
また、上記発明において、前記解析対象回路全体におけるクロック信号の期間別クロック変化率とデータ信号の期間別データ変化率と前記生成工程によって生成された相関関係データとに基づいて、前記モジュールにおける前記クロック信号の期間別平均クロック変化率と前記データ信号の期間別平均データ変化率とを算出することとしてもよい。
【００２１】
この発明によれば、ゲーティッドクロックバッファを有し、かつＲＡＭにアクセスするモジュールの消費電力を解析することができる。
【発明の効果】
【００２２】
本発明にかかる消費電力解析支援プログラム、該プログラムを記録した記録媒体、消費電力解析支援装置、および消費電力解析支援方法によれば、精度の劣化を低く抑えつつ、消費電力の解析時間を大幅に短縮することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照して、この発明にかかる消費電力解析支援プログラム、該プログラムを記録した記録媒体、消費電力解析支援装置、および消費電力解析支援方法の好適な実施の形態を詳細に説明する。なお、消費電力解析装置（方法、プログラム）と称す場合は、消費電力の解析まで実行する装置（方法、プログラム）をいい、消費電力解析支援装置（方法、プログラム）と称す場合は、消費電力を解析するための入力データの生成までを実行する装置（方法、プログラム）をいう。
【００２４】
また、本実施の形態において、ゲーティッドクロックをＧＣＬＫ（またはgclk）と略す。ゲーティッドクロックとはイネーブル信号がネゲートされている期間クロックのスイッチングを停止したクロック信号をいい、ゲーティッドクロックバッファＧＣＢを使って実現される。なお、clk_in，write_clk，read_clk，access_clkもゲーティッドクロックに該当する。また、ＲＡＭの活性とは、ＲＡＭのＣＥ（クロックイネーブル）端子がアサートされている状態で、データのアクセスを可能にした状態を指す。
【００２５】
＜消費電力解析装置のハードウェア構成＞
まず、この発明の実施の形態にかかる消費電力解析装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる消費電力解析装置のハードウェア構成を示すブロック図である。
【００２６】
図１において、消費電力解析装置１００は、コンピュータ本体１１０と、入力装置１２０と、出力装置１３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク１４０に接続可能である。
【００２７】
コンピュータ本体１１０は、ＣＰＵ，メモリ，インターフェースを有する。ＣＰＵは、消費電力解析装置１００の全体の制御を司る。メモリは、ＲＯＭ，ＲＡＭ，ＨＤ，光ディスク１１１，フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００２８】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク１１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク１１１およびフラッシュメモリはコンピュータ本体１１０に対し着脱自在である。インターフェースは、入力装置１２０からの入力、出力装置１３０への出力、ネットワーク１４０に対する送受信の制御をおこなう。
【００２９】
また、入力装置１２０としては、キーボード１２１、マウス１２２、スキャナ１２３などがある。キーボード１２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス１２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ１２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体１１０内のメモリに格納される。なお、スキャナ１２３にＯＣＲ機能を持たせてもよい。
【００３０】
また、出力装置１３０としては、ディスプレイ１３１、プリンタ１３２、スピーカ１３３などがある。ディスプレイ１３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、プリンタ１３２は、画像データや文書データを印刷する。またスピーカ１３３は、効果音や読み上げ音などの音声を出力する。
【００３１】
＜解析対象回路の一例＞
つぎに、この発明の実施の形態で用いる解析対象回路の一例を図２に示す。図２は、この発明の実施の形態で用いる解析対象回路の一例を示す説明図である。図２において、解析対象回路２００は、第１モジュール２０１と第２モジュール２０２とＲＡＭ２０３とを有している。
【００３２】
＜消費電力解析装置の機能的構成＞
つぎに、この発明の実施の形態にかかる消費電力解析装置の機能的構成について説明する。図３は、この発明の実施の形態にかかる消費電力解析装置の機能的構成を示すブロック図である。図３において、消費電力解析装置１００は、全体レベル時区間データ作成部３０１と、相関関係データ作成部３０２と、電力算出部３０３と、を備えている。これら各機能３０１〜３０３は、メモリに格納された当該機能に関するプログラムをＣＰＵに実行させることにより、当該機能を実現することができる。
【００３３】
また、各機能３０１〜３０３からの出力データはメモリに保持される。また、図３中矢印で示した接続先の機能的構成は、接続元の機能的構成からの出力データをメモリから読み込んで、当該機能に関するプログラムをＣＰＵに実行させる。
【００３４】
相関関係データ作成部３０２は、ブロックレベル設計データ３１０、ブロックレベルテストベンチ３１１、計測設定ファイル３１２、およびクロック・ＲＡＭ指定ファイル３１３を読み込んで、相関関係データ３２３を中間データとして作成する。
【００３５】
また、全体レベル時区間データ作成部３０１は、ブロックレベル設計データ３１０を読み込んで、全体レベル時区間データ３２０を中間データとして作成する。時区間とは期間のことである。全体レベル時区間データ３２０とは、全体レベル時区間別変化回数データ３２１と全体レベル時区間別ＲＡＭ活性期間データ３２２である。
【００３６】
また、電力算出部３０３は、中間データである全体レベル時区間データ３２０と相関関係データ３２３を読み込んで、ブロックレベルの時区間別消費電力結果３３０を出力する。
【００３７】
（入力データの具体例）
つぎに、消費電力解析装置１００に与えられる入力データを以下に図示する。まず、ブロックレベル設計データ３１０について説明する。図４−１は、第１モジュール２０１のブロックレベル設計データ４０１の記述例を示す説明図であり、図４−２は、第２モジュール２０２のブロックレベル設計データ４０２の記述例を示す説明図である。図４−３は、ＲＡＭ２０３の動作レベル記述４０３を示す説明図である。
【００３８】
また、図５−１は、第１モジュール２０１および第２モジュール２０２のＧＣＢ（ゲーティッドクロックバッファ）の動作モデル記述５０１を示す説明図であり、図５−２は、第１モジュール２０１および第２モジュール２０２のＤフリップフロップの動作モデル記述５０２を示す説明図である。
【００３９】
また、図６は、第１モジュール２０１のブロックレベルテストベンチ６００を示す説明図である。図６に示したブロックレベルテストベンチ６００は、第１モジュール２０１のブロックレベルシミュレーション環境をあらわしている。図７は、図６に示したブロックレベルテストベンチ６００に対応する波形データを示す波形図である。すなわち、図６に示した第１モジュール２０１の入出力端子に関する波形データが示されている。
【００４０】
図８は、第２モジュール２０２のブロックレベルテストベンチ８００を示す説明図である。図８に示したブロックレベルテストベンチ８００は、第２モジュール２０２のブロックレベルシミュレーション環境をあらわしている。図９は、図８に示したブロックレベルテストベンチ８００に対応する波形データを示す波形図である。すなわち、図８に示した第２モジュール２０２の入出力端子に関する波形データが示されている。
【００４１】
つぎに、計測設定ファイル３１２について説明する。図１０は、第１モジュール２０１に関する計測設定ファイル１０００を示す説明図であり、図１１は、第２モジュール２０２に関する計測設定ファイル１１００を示す説明図である。図１０および図１１において、属性ごとに属性値が設定されている。
【００４２】
計測設定ファイル３１２（１０００，１１００）において、startの属性値はデータ取得開始時点を示しており、intervalの属性値はその属性値の間隔でデータを取得することを意味している。たとえば、図１０の計測設定ファイル１０００の場合、１５［ｎｓ］時点から５０［ｎｓ］間隔でデータをとることを要求している。計測設定ファイル３１２の属性値は、図７に示した波形データの時区間［１］〜［３］、図９に示した波形データの時区間［１］〜［４］に対応している。なお、［１］〜［４］は、図では丸数字で記述している。
【００４３】
図１２は、クロック・ＲＡＭ指定ファイル３１３を示す説明図である。図１２では、各モジュールにおいて、属性ごとに信号名が指定されている。属性が「クロック」の場合、クロック信号の中から指定され、属性が「ＲＡＭ２０３  ＣＥ（クロックイネーブル）」の場合、ＲＡＭ２０３に対するクロックイネーブル信号の中から指定される。
【００４４】
（中間データの具体例）
つぎに、消費電力解析装置１００内で生成される中間データを以下に図示する。図１３は、全体レベル時区間データ３２０を示す図表である。図１３に示した図表では、全体レベルでのブロックレベル時区間別変化回数とブロックレベル時区間別ＲＡＭ活性期間を示している。
【００４５】
図１４は、第１モジュール２０１のゲーティッドクロックに関する相関関係データ３２３を示すグラフであり、図１５は、その線形近似式の算出記述例を示す説明図である。また、図１６は、第２モジュール２０２のゲーティッドクロックに関する相関関係データ３２３を示すグラフであり、図１７は、その線形近似式の算出記述例を示す説明図である。また、図１８は、ＲＡＭ２０３のクロックイネーブルに関する相関関係データ３２３を示すグラフであり、図１９は、その線形近似式の算出記述例を示す説明図である。
【００４６】
（相関関係データ作成部３０２の機能的構成）
つぎに、図３に示した相関関係データ作成部３０２の機能的構成について説明する。図２０は、図３に示した相関関係データ作成部３０２の機能的構成を示すブロック図である。図２０において、相関関係データ作成部３０２は、信号別変化回数算出部２００１と、データ作成処理部２００２とを備えている。
【００４７】
信号別変化回数算出部２００１は、ブロックレベル設計データ３１０、ブロックレベルテストベンチ３１１、計測設定ファイル３１２およびクロック・ＲＡＭ指定ファイル３１３を読み込んで、信号別の変化回数を算出する。そして、中間データとして、ブロックレベル時区間別変化回数データ２０１１とブロックレベル時区間別ＲＡＭ活性期間データ２０１２を出力する。また、データ作成処理部２００２は、ブロックレベル時区間別変化回数データ２０１１とブロックレベル時区間別ＲＡＭ活性期間データ２０１２を読み込んで、相関関係データ３２３を作成する。
【００４８】
（中間データの具体例）
つぎに、相関関係データ作成部３０２内で生成される中間データを以下に図示する。図２１は、第１モジュール２０１のブロックレベル時区間別変化回数データ２０１１を示す図表であり、図２２は、第２モジュール２０２のブロックレベル時区間別変化回数データ２０１１を示す図表であり、図２３は、ブロックレベル時区間別ＲＡＭ活性期間データ２０１２を示す図表である。
【００４９】
（信号別変化回数算出部２００１の機能的構成１）
ここで、信号別変化回数算出部２００１の機能的構成１について説明する。図２４は、信号別変化回数算出部２００１の機能的構成１を示すブロック図である。図２４において、信号別変化回数算出部２００１は、計測回路追加処理部２４０１と、ブロックレベルシミュレーション実行部２４０２と、ブロックレベル時区間別変化回数集計部２４０３と、を備えている。
【００５０】
計測回路追加処理部２４０１は、ブロックレベル設計データ３１０とブロックレベルテストベンチ３１１と計測設定ファイル３１２とクロック・ＲＡＭ指定ファイル３１３とを読み込んで、解析対象回路２００に変化回数を計測する計測回路に関する記述をブロックレベルテストベンチ３１１に追加する。ここでは、第２モジュール２０２を例に挙げて説明する。
【００５１】
図２５−１および図２５−１は、第２モジュール２０２用のテストベンチの記述を示す説明図である。図２５−１および図２５−２において、最初にテストベンチをパーズして、第２モジュール２０２をインスタンスしている記述を見つける。
【００５２】
この場合、module_02とramが見つかる。ramは通例マクロで与えられる。ramマクロ名を与えてこれを処理対象からはずす。したがって、この場合、module_02のみが対象となる。
【００５３】
つぎに、第２モジュール２０２のブロックレベル設計データ３１０の記述の中から第２モジュール２０２（moudule_02）の定義を探し、この定義の中で宣言されている信号を探す。これにより、clk,rst,is_access,is_write,i_addr,i_user_data,i_ram_data,o_addr,o_user_data,o_ram_data,o_ram_we,o_ram_ce,write_clk,read_clk,access_clk,clk_in,is_access_d,is_write_dが見つかる。
【００５４】
さらに、第２モジュール２０２の中のサブモジュールを検査する。すなわち、not,and,or,gcb,dffをみつける。これらはいずれもプリミティブセルでユーザが定義したものではないので、第２モジュール２０２のブロックレベル設計データ３１０の記述の中では定義されていない。したがって、ユーザが定義したモジュールはもう残っていないことがわかる。
【００５５】
第２モジュール２０２名であるmodule_02は、i_m02という名前でインスタンスされているので、絶対パスではi_m02.clk,i_m02.rst,i_m02.is_access,i_m02.is_write,i_m02.i_addr,i_m02.i_user_data,i_m02.i_ram_data,i_m02.o_addr,i_m02.o_user_data,i_m02.o_ram_data,i_m02.o_ram_we,i_m02.o_ram_ce,i_m02.write_clk,i_m02.read_clk,i_m02.access_clk,i_m02.clk_in,i_m02.is_access_d,i_m02.is_write_dとなる。
【００５６】
また、それぞれの信号のビット数を調べる。本例では簡単のため、ポートのみを計測対象とした例になっている。この場合、i_m02.is_access_d,i_m02.is_write_dを除いた信号が計測対象となる。
【００５７】
つぎに、クロック・ＲＡＭ指定ファイル３１３を引き、第２モジュール２０２のクロック信号、ＲＡＭ２０３のＣＥ信号を調べる。これにより、clk,clk_in,write_clk,read_clk,access_clkがクロック、o_ram_ceがＲＡＭのＣＥであることがわかる。これら以外はクロックでもＣＥ（クロックイネーブル）でもない信号ということになる。ここでクロック系以外の信号をデータ系の信号と呼ぶことにする。
【００５８】
つぎに、計測回路データを用いる。図２６−１は、クロック変化回数計測回路記述を示す説明図であり、図２６−２は、ビット変化回数計測回路記述を示す説明図であり、図２６−３は、アサート期間計測回路記述を示す説明図である。クロック変化回数計測回路記述２６０１、ビット変化回数計測回路記述２６０２、およびアサート期間計測回路記述２６０３は、計測回路データである。
【００５９】
また、図２７−１および図２７−２は、計測回路追加処理部２４０１により得られる計測回路付きブロックレベルテストベンチ２４１０の記述例を示す説明図である。図２７−１および図２７−２は第２モジュール２０２に対する記述例である。図２７−１において、７５行−８５行の記述は、データ信号の変化回数をカウントするモジュールをインスタンスした記述であり、計測対象の信号をつないでいる。このモジュールの機能は、図２６−２に示したビット変化回数計測回路記述２６０２のとおりである。
【００６０】
また、８６行−９０行の記述は、クロック信号の変化回数をカウントするモジュールをインスタンスした記述であり、計測対象の信号をつないでいる。このモジュールの機能は、図２６−１に示したクロック変化回数計測回路記述２６０１のとおりである。
【００６１】
また、９１行の記述は、ＲＡＭ２０３のＣＥ信号がアサート（信号値のレベルが１）の期間を計測するモジュールをインスタンスした記述である。このモジュールの機能は、図２６−３に示したアサート期間計測回路記述２６０３のとおりである。
【００６２】
また、９３行−１２８行の記述は、標準出力にデータを印字してカウンタをクリアするタスクを呼ぶタスクの記述であり、１３１行−１３６行の記述は、９２行から定義したタスクを計測設定ファイル３１２に基づき、１５［ｎｓ］後５０［ｎｓ］おきにダンプデータを作成する記述である。
【００６３】
計測回路追加処理部２４０１では、計測回路データを用いることにより、クロック信号にはクロック信号のクロック変化回数計測回路記述２６０１のインスタンス、ＲＡＭ２０３のＣＥにはアサート期間を計測するアサート期間計測回路記述２６０３とデータ変化回数を計測するビット変化回数計測回路記述２６０２のインスタンスをつないだ宣言を生成する。これにより、図２７−１に示した７５行から９１行の記述が生成される。
【００６４】
つぎに、インスタンスされた計測回路データを標準出力するためのタスク文echo_counterを生成する。このタスク文に７５行から９１行で自動生成したインスタンスのref_and_clearのコールを並べる。これにより、内部のカウンタ値をとると同時にカウンタの値をリセットする（図２７−１の９３行目以降、図２７−２の１０８〜１１５行目）。そして、取り出した値を標準出力する記述を生成する（図２７−２の１２１行目〜１２６行目）。
【００６５】
最後に、echo_counterを呼ぶ記述を生成する。計測設定ファイル３１２を参照して、最初が３５［ｎｓ］目、その後５０［ｎｓ］間隔でカウンタ値をダンプすればよいことがわかる。そこで、最初に１［ｎｓ］消費して、３５［ｎｓ］後、５０［ｎｓ］間隔でecho_counterタスクを呼ぶ記述を生成する。最初の＃１はクロックの立ち上がりエッジとタスクのコールを１［ｎｓ］ずらすために入れられている。
【００６６】
そして、図２７−１および図２７−２の記述を第２モジュール２０２のテストベンチの記述のmodule testの中に書き込む。たとえば、(*)の後に入れる。これにより、計測回路付きブロックレベルテストベンチ２４１０を生成することができる。
【００６７】
また、ブロックレベルシミュレーション実行部２４０２は、ブロックレベル設計データ３１０と計測回路付きブロックレベルテストベンチ２４１０を読み込んで、ブロックレベルでのシミュレーションを実行する。そして、その実行結果としてブロックレベルシミュレーションログ２４１２を生成する。このブロックレベルシミュレーションログ２４１２の内容は、図２１および図２２に示したブロックレベル時区間別変化回数データ２０１１のうち変化率を除いた内容である。
【００６８】
また、ブロックレベル時区間別変化回数集計部２４０３は、ブロックレベルシミュレーションログ２４１２とクロック・ＲＡＭ指定ファイル３１３とを読み込んで、ブロックレベル時区間別の変化回数を集計する。具体的には、ブロックレベルシミュレーションログ２４１２をブロックレベル時区間別および信号種別（クロック系とデータ系）に整理する。そして、それぞれ変化率（動作率ともいう）を算出することで、図２１および図２２に示したブロックレベル時区間別変化回数データ２０１１を出力する。
【００６９】
ここで、ブロックレベルシミュレーション実行部２４０２による具体的な集計処理について第２モジュール２０２を例に説明する。まず、計測設定ファイル１１００を用いて区間を区切ることができる。計測設定ファイル１０００を用いた場合、３５［ｎｓ］後から開始し、その後５０［ｎｓ］ごとに区切る。図９では、［１］〜［４］の時区間に区切ることができる。
【００７０】
そして、この時区間［１］〜［４］ごとに信号別の変化回数を計数する。クロック信号については、クロック変化回数計測回路記述２６０１を用いて計測する。たとえば、時区間［１］では、clkは１０回、rstは１回、men_0は２回、men_1は２回、gclk_0は８回、gclk_1は２回となる。
【００７１】
また、データ信号（idata_0，odata_0，idata_1，odata_1，idata_2，odata_2）については、ビット変化回数計測回路記述２６０２を用いて計測する。このビット変化回数計測回路記述２６０２では、クロックclkの立ち上がりごとに信号変化をしたビット数を数えて加算している。たとえば、width=4、前サイクルのsigの値が4’b1010で、現サイクルのsigの値が４’b1100の場合を説明する。
【００７２】
この場合、１ビット目と２ビット目がそれぞれ変化しているので２加算する。３１行目のループでloop_iterには０，１，２，３の値が順次代入され、３５行目でビットごとに値を比較して値が一致していないときに限りcounterを１加算している。先の値では０ビット目はともに０なので加算しない。１ビット目は前サイクルが１、現サイクルが０なのでcounterに１を加算する。同様に、２ビット目は１を加算、３ビット目は加算しない。したがって、counterには合計で２加算されることになる。
【００７３】
Verilogの仕様でモジュールをインスタンスする際にパラメータの値を外部から与えることができる。たとえば、ビット変化回数計測回路記述２６０２のwidthも外から指定することができる。埋め込み記述（前半）の７５行から７７行、８４行、８５行はモジュール名の後に＃（１）がついているので先頭のパラメータ変数に１が与えられる。つまり、width=1になる。７８行から８３行は＃（４）を与えてwidth=4を設定している。
【００７４】
カウンタのリセットとカウンタ値の参照はアサート期間計測回路記述２６０３の６２行目からはじまるタスクで行っている。このタスクでは、カウンタ値をvalueに出力した後、counterを０にしている。このタスクは図２７−１の埋め込み記述の９３行目から定義されているタスクの中で呼ばれている。タスクの後半は図２７−２の埋め込み記述に示されている。図２７−２の埋め込み記述の１２１行目から１２６行目の記述でvalue[0]-value[15]の値を標準出力している。
【００７５】
この例では、クロックの周期は１０[ｎｓ]で、クロックの初期値は０で最初のクロックの立ち上がりは５[ｎｓ]の時点である。図２７−２の埋め込み記述では、１３２行目に１[ｎｓ]待っている。これはecho_counterのコールをクロックの立ち上がりに対して最小時間（この場合は１[ｎｓ]）ずらすために書かれている。
【００７６】
１３３行目で、３５[ｎｓ]においてecho_counterをコールしている。このタスクコールにより３５[ｎｓ]とデルタ遅延後のシミュレーション結果が標準出力されると同時に各カウンタがリセットされる。
【００７７】
１３４行目から１３７行目において５０[ｎｓ]間隔でecho_counterをよんでいる。つまり５０[ｎｓ]間隔でその区間のデータを得ることができる。最初のecho_counterのコールまでの時間、echo_counterをコールする間隔は計測設定ファイル３１２で指定されたものを用いる。本例では、第２モジュール２０２に対しては図１１に示したように計測設定ファイル１１００が設定されているため、最初のコールが３５[ｎｓ]、コールの間隔が５０[ｎｓ]になっている。
【００７８】
このようにして、クロック系（clk,clk_in,write_clk,read_clk）やデータ系（rst,is_access,is_write,i_addr,o_addr,i_user_data,i_ram_data,o_ram_data,o_ram_we,o_ram_ce）の変化回数を計数することができ、ブロックレベルシミュレーションログ２４１２に集計結果を出力することができる。このログにはブロックレベル時区間別変化回数データ２０１１のうち変化率を除いたデータと同等のデータが含まれている。なお、第１モジュール２０１に関しても同様である。
【００７９】
また、ブロックレベル時区間別変化回数集計部２４０３は、ブロックレベルシミュレーションログ２４１２から２０１１のうち変化率を除いたデータに相当する部分を抽出する。２４１０の場合、図２７−１の９９−１０７行、図２７−２の１０８行−１１５行のタスクの出力値は図２７−２の１２１−１２６行の標準出力文で２４１２に集計結果を出力するので、行の先頭が"SwitchingTimes>"から始まる。従って"SwitchingTimes>"から始まる行を抽出する。このようにして２０１１のうち変化率を除いた情報を得る。そして、変化率を算出する。この変化率はクロック１周期あたりの変化回数を表している。具体的には、たとえば、下記式（１）によりデータ系の変化率Ｒｄを算出する。
【００８０】
Ｒｄ＝(変化回数の合計）／（信号ビット総数）／（クロックサイクル）・・・（１）
【００８１】
図２１の時区間［１］の場合、変化回数の合計は、１＋２＋２＋７＋５＋２＋０＝１９回である。また、rst,men_0,men_1が各１ビット、idata_0,odata_0,idata_1,odata_1が各４ビット、idata_2,odata_2が各８ビットなので、図２１の時区間［１］の場合、信号ビット総数は、３×１[bit]＋４×４[bit]＋２×８[bit]＝３５本となる。また、図２１の時区間［１］の場合、clkの変化回数が１０回なので、クロックサイクルは１０／２＝５サイクルになる。したがって、変化率Ｒｄ＝１９／３５／５＝０．１１となる。
【００８２】
また、クロック系の変化率Ｒｃは、具体的には、たとえば、下記式（２）により算出する。
【００８３】
Ｒｃ＝（クロックの変化回数の合計）／（基準クロックの変化回数）／（クロック数）
・・・（２）
【００８４】
図２１の時区間［１］の場合、クロックgclk_0,gclk_1の変化回数の合計は８＋２＝１０回である。また、基準クロックclkの変化回数は１０回である。クロックgclk_0,gclk_1が変化するためクロック数は２である。したがって、図２１の時区間［１］の場合、変化率Ｒｃ＝(８＋２)／１０／２＝０．５となる。
【００８５】
これらを表形式でまとめると、図２１で示した第１モジュール２０１のブロックレベル時区間別変化回数データ２０１１が集計結果として得らえる。第２モジュール２０２に関しても同様の手法により、図２２で示した第２モジュール２０２のブロックレベル時区間別変化回数データ２０１１が集計結果として得られる。
【００８６】
つぎに、ＲＡＭ活性期間データに関する集計処理について説明する。ＲＡＭ活性期間は、すなわち、ＣＥ（クロックイネーブル）アサート期間であり、ＲＡＭ２０３のＣＥとしては、第２モジュール２０２にo_ram_ceがある。
【００８７】
o_ram_ceは、図２７−１の埋め込み記述の９１行目にインスタンスしたassertIntervalCount、すなわち、アサート期間計測回路記述２６０３で計数される。アサート期間計測回路記述２６０３により、信号がハイレベルの期間が計数される。
【００８８】
したがって、ある時間でこのカウンタ値をダンプすれば（ref_and_clearタスクを呼べば）、その時間で何サイクルの間ＣＥがアサートされていたかがわかる。図２３に示したＲＡＭ活性期間データのｃｅ期間には、アサート期間計測回路記述２６０３により得られた値を２倍した値が書き込まれている。また、変化率Ｒｄは、第２モジュール２０２のデータ系の変化率Ｒｄである。
【００８９】
（信号別変化回数算出部２００１の機能的構成２）
つぎに、信号別変化回数算出部２００１の機能的構成２について説明する。図２８は、信号別変化回数算出部２００１の機能的構成２を示すブロック図である。図２８において、信号別変化回数算出部２００１は、ブロックレベルシミュレーション実行部２８０１と、ブロックレベル時区間別変化回数集計部２８０２と、を備えている。
【００９０】
ブロックレベルシミュレーション実行部２８０１は、ブロックレベル設計データ３１０とブロックレベルテストベンチ３１１を読み込んで、ブロックレベルでのシミュレーションを実行する。そして、その実行結果として図７および図９に示した波形データを生成する。
【００９１】
ブロックレベル時区間別変化回数集計部２８０２は、波形データと計測設定ファイル３１２とクロック・ＲＡＭ指定ファイル３１３とを読み込んで、ブロックレベル時区間別の変化回数を集計する。具体的には、波形データからクロック系のクロック信号やデータ系のデータ信号の変化回数を計数し、シミュレーションログをブロックレベル時区間別および信号種別（クロック系とデータ系）に整理する。そして、それぞれ変化率を算出することで、図２１および図２２に示したブロックレベル時区間別変化回数データ２０１１を出力する。
【００９２】
また、ＲＡＭ活性期間データについても同様におこなう。具体的には、たとえば、図９に示したＲＡＭ２０３のＣＥ信号（ram_ce）について、時区間［１］では、基本クロックclkの変化回数１０のうち、ram_ceがアサートされている期間は８である。このように計数することで、図２３に示したＲＡＭ活性期間データを得ることができる。
【００９３】
つぎに、図２０に示したデータ作成処理部２００２について説明する。図２０において、データ作成処理部２００２は、信号別変化回数算出部２００１によって算出されたブロックレベル時区間別変化回数データ２０１１（図２１および図２２を参照）とブロックレベル時区間別ＲＡＭ活性期間データ２０１２（図２３を参照）を読み込んで、相関関係データ３２３を作成する。
【００９４】
図１４に示した相関関係グラフは、第１モジュール２０１のゲーティッドクロックＧＣＬＫ用のグラフであり、クロック変化率Ｒｃとデータ系変化率Ｒｄとの相関をあらわしている。また、図１６に示した相関関係グラフは、第２モジュール２０２のゲーティッドクロックＧＣＬＫ用のグラフであり、クロック変化率Ｒｃとデータ系変化率Ｒｄとの相関をあらわしている。
【００９５】
さらに、図１８に示した相関関係グラフは、ＲＡＭ２０３のクロックイネーブルＣＥ用のグラフであり、ＲＡＭ２０３のＣＥアサート率とデータ系変化率Ｒｄとの相関をあらわしている。なお、ＣＥアサート率は、（ＣＥアサート期間）／（測定期間）で算出される。図２３に示した時区間［１］の場合、ce期間／clk＝８／１０＝０．８となる。
【００９６】
これらの作成手法の一例として、最小２乗法の近似がある。最小２乗法を使って回帰分析すると、図１４、図１６および図１８のように標本との誤差が最小になるような曲線を求めることができる。ここでは１次式を求めているので直線となっている。
【００９７】
（全体レベル時区間データ作成部３０１の機能的構成）
つぎに、図３に示した全体レベル時区間データ作成部３０１の機能的構成について説明する。図２９は、図３に示した全体レベル時区間データ作成部３０１の機能的構成を示すブロック図である。図２９において、全体レベル時区間データ作成部３０１は、ブロックレベル設計データ３１０を読み込んで、全体レベル時区間データ３２０（全体レベル時区間別変化回数データ３２１と全体レベル時区間別ＲＡＭ活性期間データ３２２）を作成する。図１３は、この全体レベル時区間別変化回数データ３２１および全体レベル時区間別ＲＡＭ活性期間データ３２２を図表化したものである。
【００９８】
全体レベル時区間データ作成部３０１は、全体組み上げ部２９０１と、全体レベルテストベンチ作成部２９０２と、電力測定設定ファイル作成部２９０３と、計測回路付全体レベルテストベンチ作成部２９０４と、全体レベルシミュレーション実行部２９０５と、全体レベル時区間別変化回数集計部２９０６と、を備えている。
【００９９】
全体組み上げ部２９０１は、ブロックごとのブロックレベル設計データ３１０を組み上げて、全体レベル設計データ２９１０を出力する。具体的には、図４−１〜図４−３に示したブロックレベル設計データ４０１〜４０３を組み合わせて、図２に示した解析対象回路２００全体の全体レベル設計データ２９１０を生成する。
【０１００】
全体レベルテストベンチ作成部２９０２は、全体レベル設計データ２９１０を読み込んで、全体レベルテストベンチ２９２０を作成する。全体レベルテストベンチ２９２０は、全体レベル設計データ２９１０を動作させるテストベンチである。図３０−１〜３０−３は、全体レベルテストベンチ２９２０の記述例を示す説明図である。
【０１０１】
これ以降、この全体レベルテストベンチ２９２０により全体レベル設計データ２９１０を動作させた時の振る舞いとして、図３１に示す波形のように動いた場合を使って説明する。この波形データはテストベンチの振る舞いを明確にするために示すものであって、これ相当の波形データをダンプすることを意味するものではない。
【０１０２】
電力測定設定ファイル作成部２９０３は、ユーザ操作により電力測定設定ファイル２９３０を作成する。電力測定設定ファイル２９３０は、全体レベル用計測設定ファイル２９３１と全体レベル用クロック・ＲＡＭ指定ファイル２９３２を有する。図３２は、全体レベル用計測設定ファイル２９３１を示す説明図であり、図３３は、全体レベル用クロック・ＲＡＭ指定ファイル２９３２を示す説明図である。
【０１０３】
また、計測回路付全体レベルテストベンチ作成部２９０４は、全体レベルテストベンチ２９２０と電力測定設定ファイル２９３０（全体レベル用計測設定ファイル２９３１と全体レベル用クロック・ＲＡＭ指定ファイル２９３２）を読み込んで、計測回路付全体レベルテストベンチ２９４０を作成する。計測回路付全体レベルテストベンチ作成部２９０４は、具体的には、図２４で示した計測回路追加処理部２４０１と同様の処理を実行する。
【０１０４】
計測回路追加処理部２４０１では、ブロックレベルテストベンチ３１１を計測回路の追加対象としているが、計測回路付全体レベルテストベンチ作成部２９０４では、全体レベルテストベンチ２９２０を追加対象としているだけである。なお、計測回路付全体レベルテストベンチ作成部２９０４では、クロックとＲＡＭ２０３のクロックイネーブルＣＥのアサート期間計測回路記述２６０３のみを埋め込む。
【０１０５】
図３４−１〜図３４−４は、計測回路付全体レベルテストベンチ２９４０の記述例を示す説明図である。計測回路付全体レベルテストベンチ２９４０は、全体レベルテストベンチ２９２０に、クロック・ＲＡＭ計測回路の回路記述（図３４−４の１２９行目〜１８０行目）が挿入された記述である。なお、この計測回路付全体レベルテストベンチ２９４０により全体レベル設計データ２９１０を動作させると、図３１に示した波形データと同じ波形データが得られる。
【０１０６】
図３５は、計測回路付全体レベルテストベンチ２９４０により生成される波形データを示す波形図である。図３５では、図３１と比較すると、信号名を解析対象回路２００のトップChipOrIPのインスタンスi_ChipOrIPからのパスで信号名を記述している。トップChipOrIPのインスタンス記述は、計測回路付全体レベルテストベンチ２９４０の１２行目〜２０行目（図３４−１）に記述されており、１３行目において、i_ChipOrIPというインスタンス名をつけている。
【０１０７】
解析対象回路２００のうち電力測定対象となる箇所は、トップChipOrIP以下の部分だけである。計測回路付全体レベルテストベンチ２９４０に変更されているが、解析対象回路２００自体は変更されない。また電力測定対象もトップChipOrIP配下であり、これを駆動させるテストベンチの部分は含まれない。テストベンチ部分を計測対象外にすることはブロックレベルでも同様である。
【０１０８】
また、図２９において、全体レベルシミュレーション実行部２９０５は、全体レベル設計データ２９１０と計測回路付全体レベルテストベンチ２９４０を読み込んで、全体レベルでのシミュレーションを実行する。このシミュレーションを実行すると、各信号は、図３５に示したような動作をとる。そして、実行結果として、全体レベルシミュレーションログ２９５０を出力する。全体レベルシミュレーション実行部２９０５は、具体的には、図２４で示したブロックレベルシミュレーション実行部２４０２と同様の処理を実行する。
【０１０９】
ブロックレベルシミュレーション実行部２４０２では、ブロックレベル設計データ３１０と計測回路付きブロックレベルテストベンチ２４１０とをシミュレーション対象としているが、全体レベルシミュレーション実行部２９０５は、全体レベル設計データ２９１０と計測回路付全体レベルテストベンチ２９４０とをシミュレーション対象としているだけである。
【０１１０】
また、図２９において、全体レベル時区間別変化回数集計部２９０６は、全体レベルシミュレーションログ２９５０を読み込んで、全体レベルでの時区間別変化回数を集計する。これにより、全体レベル時区間データ３２０（全体レベル時区間別変化回数データ３２１および全体レベル時区間別ＲＡＭ活性期間データ３２２）を出力する。図１３は、この全体レベル時区間別変化回数データ３２１および全体レベル時区間別ＲＡＭ活性期間データ３２２を図表化したものである。
【０１１１】
ここで、図１３に示されているクロック変化率とクロック変化率（ＦＦ加重）とＣＥアサート率の算出手法について説明する。クロック変化率は、上記式（１）で算出する。時区間［１］の場合、第１モジュール２０１（i_m01）のクロック変化率Ｒｃ＝（５＋４）／１０／２＝０．４５となる。
【０１１２】
また、ＦＦ加重とは、そのクロックから先につながっているＦＦ（フリップフロップ）の個数であり、このクロック変化率（ＦＦ加重）とは、この個数を重みとしてかけたクロック変化率の平均値になる。すなわち、クロック変化率（ＦＦ加重）Ｒｃｗは下記式（３）によって算出される。
【０１１３】
Ｒｃｗ＝｛Σ（クロックの変化回数）×（ＦＦの個数）／（基準クロックclkの変化回
数）／Σ（ＦＦの個数）｝・・・・・・・・・・・・・・・・・・・（３）
【０１１４】
時区間［１］の場合、図４−１の第１モジュール２０１のブロックレベル設計データ３１０や、図５−１のＧＣＢの動作モデル記述からわかるように、gclk_0の先には４個、gclk_1の先には１２個のＦＦが接続されている。第１モジュール２０１（i_m01）の時区間［１］の場合、クロック変化率（ＦＦ加重）Ｒｃｗは、
Ｒｃｗ＝（５＊４＋４＊１２）／１０／（４＋１２）＝０．４２５となる。
【０１１５】
なお、Verilogの仕様では、dff #(8) i_dff_2 ( ...)の#(8)は、dff モジュールの中の先頭のparameter宣言の値を８で書き換えることを意味している。dffモジュールでは、図５−１のＧＣＢの動作モデル記述のように、最初のパラメータはＦＦのビット数になっているので、dff #(8) i_dff_2 は８ビット幅のＦＦを宣言していることになる。
【０１１６】
また、クロックイネーブルＣＥのアサート率Ａは、下記式（４）によって算出される。
【０１１７】
Ａ＝Σ（ＣＥのアサート回数）／（ＣＥの本数）・・・・・・・・・・・・・・（４）
【０１１８】
第２モジュール２０２のo_ram_ceの１本がＲＡＭ２０３のＣＥである。図１３の時区間［１］では、クロックの立ち上がりエッジで４回分アサートされたことがわかる。基準クロックclkは立ち上がり・立下りあわせて１０回なので、立ち上がり回数のみをみると１０／２で５回になる。したがって、ＣＥのアサート率Ａは、
Ａ＝４／（１０／２）＝０．８になる。この例では、ＣＥが一本なので、この値が第２モジュール２０２のＣＥのアサート率となる。
【０１１９】
（電力算出部３０３の機能的構成）
つぎに、図３に示した電力算出部３０３の機能的構成について説明する。図３６は、図３に示した電力算出部３０３の機能的構成を示すブロック図である。図３６において、電力算出部３０３は、データ平均変化率算出部３６０１と、消費電力解析部３６０２と、を備えている。
【０１２０】
データ平均変化率算出部３６０１は、相関関係データ３２３と全体レベル時区間データ３２０（全体レベル時区間別変化回数データ３２１および全体レベル時区間別ＲＡＭ活性期間データ３２２）を読み込んで、時区間別データ平均変化率３６００を算出する。
【０１２１】
図３７は、データ平均変化率算出部３６０１の実行記述の一例を示す説明図である。図３７において、２行目〜９行目には、図１４に示した近似直線式の記述（図１５を参照）が埋め込まれており、１１行目〜１８行目には、図１６に示した近似直線式の記述（図１７を参照）が埋め込まれており、２０行目〜２７行目には、図１８に示した近似直線式の記述（図１９を参照）が埋め込まれる。
【０１２２】
データ平均変化率算出部３６０１では、データ平均変化率の算出はインスタンスごとに、すなわち、モジュールごとにおこなう。クロック変化率のみの場合は、クロック変化率からデータ変化率を求める式の結果をそのまま使う。本例では、第１モジュール２０１が該当する。すなわち、３０行目から４２行目に示したように、時区間［１］〜［４］のクロック変化率Ｒｃを、２行目〜９行目の近似直線式（図１５を参照）に与えることにより、第１モジュール２０１のデータ平均変化率を算出する。なお、クロック変化率Ｒｃにかえて、クロック変化率（ＦＦ加重）Ｒｃｗを用いてもよい。
【０１２３】
また、クロック変化率とアサート率の両方がある場合は、各々の式から算出した値を代入してデータ変化率を算出し、その後平均する。本例では、第２モジュール２０２が該当する。すなわち、４４行目から５５行目に示したように、時区間［１］〜［４］のクロック変化率Ｒｃおよびアサート率Ａを、１１行目〜１８行目の近似直線式（図１７を参照）と２０行目〜２７行目の近似直線式（図１９を参照）との平均に与えることにより、第２モジュール２０２のデータ平均変化率を算出する。なお、クロック変化率Ｒｃにかえて、クロック変化率（ＦＦ加重）Ｒｃｗを用いてもよい。図３８は、データ平均変化率算出部３６０１の算出結果を示す説明図である。
【０１２４】
また、消費電力解析部３６０２は、時区間別データ平均変化率３６００と全体レベル時区間データ３２０を読み込んで、時区間別消費電力結果３３０を解析結果として出力する。消費電力解析部３６０２は、既存の消費電力解析ツールにより実現することができる。
【０１２５】
（消費電力解析処理手順）
つぎに、この発明の実施の形態にかかる消費電力解析処理手順について説明する。図３９は、この発明の実施の形態にかかる消費電力解析処理手順を示すフローチャートである。図３９において、まず、ブロックレベル設計データ３１０、ブロックレベルテストベンチ３１１、計測設定ファイル３１２、クロック・ＲＡＭ指定ファイル３１３といった各種入力データの入力処理を実行する（ステップＳ３９０１）。
【０１２６】
つぎに、相関関係データ作成部３０２により、相関関係データ作成処理を実行する（ステップＳ３９０２）。そして、全体レベル時区間データ作成部３０１により、全体レベル時区間データ作成処理を実行する（ステップＳ３９０３）。このあと、データ平均変化率算出部３６０１により、時区間別データ平均変化率算出処理を実行する（ステップＳ３９０４）。このあと、全体レベル時区間データ３２０と時区間別データ平均変化率３６００を、消費電力解析部３６０２に与えて、消費電力解析処理を実行する（ステップＳ３９０５）。これにより、全体シミュレーションで全信号の波形データをとることなく、また、全信号の信号変化回数を計測することなく、クロックおよびRAM CEのみの信号変化回数を計測するだけで、精度の劣化を低く抑えつつ、モジュールごとの消費電力と解析対象回路２００全体の消費電力とを解析することができる。
【０１２７】
本実施の形態によれば、従来手法では全体シミュレーションにおける全信号の波形データまたは全データの計測回路による計測結果が必要であったため、全体シミュレーションに膨大な時間がかかっていた問題が解決される。本実施例の形態によれば、全体レベルシミュレーションにおいて全信号の波形データをとる必要もなく、また、全信号のシミュレーション実行時に信号変化を計測する必要もないので、全体シミュレーション時間が大幅に短縮される。一方、ブロックレベルシミュレーションでは全信号の波形データまたは計測結果を出力しなければならなくなるが、ブロックレベルシミュレーションは通例短時間で終わるものが多く、ブロック数分並列に実行できるので、ブロックレベルシミュレーションで全信号の波形データをとる、または、全信号の計測結果をとるために必要な時間増加量は全体シミュレーションに対する時間増加分に比べるとはるかに小さい。従って、本実施例の形態によれば、従来手法の問題を解決でき、消費電力の解析時間を大幅に短縮することができるという効果を奏する。
【０１２８】
なお、本実施の形態で説明した消費電力解析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１２９】
また、本実施の形態で説明した消費電力解析装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した消費電力解析装置１００の機能的構成（機能ブロックの各符号を入れる）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、消費電力解析装置１００を製造することができる。
【０１３０】
（付記１）解析対象回路内のゲーティッドクロックバッファを有するモジュールに関する設計データおよびテストベンチとの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるクロック信号の期間別クロック変化率およびデータ信号の期間別データ変化率を算出させる期間別変化率算出工程と、
前記期間別変化率算出工程によって算出された前記クロック信号の期間別クロック変化率と前記データ信号の期間別データ変化率との相関関係をあらわす相関関係データを生成させる生成工程と、
をコンピュータに実行させることを特徴とする消費電力解析支援プログラム。
【０１３１】
（付記２）前記解析対象回路全体におけるクロック信号の期間別クロック変化率と前記生成工程によって生成された相関関係データとに基づいて、前記モジュールにおける前記クロック信号の期間別平均クロック変化率を算出させる期間別平均変化率算出工程を前記コンピュータに実行させることを特徴とする付記１に記載の消費電力解析支援プログラム。
【０１３２】
（付記３）解析対象回路内のＲＡＭにアクセスするモジュールに関する設計データおよびテストベンチとの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるデータ信号の期間別データ変化率および前記ＲＡＭのクロックイネーブル端子の期間別アサート率を算出させる期間別変化率算出工程と、
前記期間別変化率算出工程によって算出された前記データ信号の期間別データ変化率と前記クロックイネーブル端子の期間別アサート率との相関関係をあらわす相関関係データを生成させる生成工程と、
をコンピュータに実行させることを特徴とする消費電力解析支援プログラム。
【０１３３】
（付記４）前記解析対象回路全体におけるデータ信号の期間別データ変化率と前記生成工程によって生成された相関関係データとに基づいて、前記モジュールにおける前記データ信号の期間別平均データ変化率を算出させる期間別平均変化率算出工程を前記コンピュータに実行させることを特徴とする付記３に記載の消費電力解析支援プログラム。
【０１３４】
（付記５）解析対象回路内のＲＡＭにアクセスするモジュールに関する設計データおよびテストベンチとの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるクロック信号の期間別クロック変化率，データ信号の期間別データ変化率および前記ＲＡＭのクロックイネーブル端子の期間別アサート率を算出させる期間別変化率算出工程と、
前記期間別変化率算出工程によって算出された前記クロック信号の期間別クロック変化率と前記データ信号の期間別データ変化率との相関関係をあらわす相関関係データと、前記データ信号の期間別データ変化率と前記クロックイネーブル端子の期間別アサート率との相関関係をあらわす相関関係データとを生成させる生成工程と、
をコンピュータに実行させることを特徴とする消費電力解析支援プログラム。
【０１３５】
（付記６）前記解析対象回路全体におけるクロック信号の期間別クロック変化率とデータ信号の期間別データ変化率と前記生成工程によって生成された相関関係データとに基づいて、前記モジュールにおける前記クロック信号の期間別平均クロック変化率と前記データ信号の期間別平均データ変化率とを算出させる期間別平均変化率算出工程を前記コンピュータに実行させることを特徴とする付記５に記載の消費電力解析支援プログラム。
【０１３６】
（付記７）付記１〜６のいずれか一つに記載の消費電力解析支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【０１３７】
（付記８）解析対象回路内のゲーティッドクロックバッファを有するモジュールに関する設計データおよびテストベンチとの入力を受け付ける入力部と、
前記入力部によって入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるクロック信号の期間別クロック変化率およびデータ信号の期間別データ変化率を算出する期間別変化率算出部と、
前記期間別変化率算出部によって算出された前記クロック信号の期間別クロック変化率と前記データ信号の期間別データ変化率との相関関係をあらわす相関関係データを生成する生成部と、
を備えることを特徴とする消費電力解析支援装置。
【０１３８】
（付記９）解析対象回路内のＲＡＭにアクセスするモジュールに関する設計データおよびテストベンチとの入力を受け付ける入力部と、
前記入力部によって入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるデータ信号の期間別データ変化率および前記ＲＡＭのクロックイネーブル端子の期間別アサート率を算出する期間別変化率算出部と、
前記期間別変化率算出部によって算出された前記データ信号の期間別データ変化率と前記クロックイネーブル端子の期間別アサート率との相関関係をあらわす相関関係データを生成する生成部と、
を備えることを特徴とする消費電力解析支援装置。
【０１３９】
（付記１０）解析対象回路内のＲＡＭにアクセスするモジュールに関する設計データおよびテストベンチとの入力を受け付ける入力部と、
前記入力部によって入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるクロック信号の期間別クロック変化率，データ信号の期間別データ変化率および前記ＲＡＭのクロックイネーブル端子の期間別アサート率を算出する期間別変化率算出部と、
前記期間別変化率算出部によって算出された前記クロック信号の期間別クロック変化率と前記データ信号の期間別変化率との相関関係をあらわす相関関係データと、前記データ信号の期間別データ変化率と前記クロックイネーブル端子の期間別アサート率との相関関係をあらわす相関関係データとを生成する生成部と、
を備えることを特徴とする消費電力解析支援装置。
【０１４０】
（付記１１）解析対象回路内のゲーティッドクロックバッファを有するモジュールに関する設計データおよびテストベンチとの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるクロック信号の期間別クロック変化率およびデータ信号の期間別データ変化率を算出する期間別変化率算出工程と、
前記期間別変化率算出工程によって算出された前記クロック信号の期間別クロック変化率と前記データ信号の期間別データ変化率との相関関係をあらわす相関関係データを生成する生成工程と、
を含んだことを特徴とする消費電力解析支援方法。
【０１４１】
（付記１２）解析対象回路内のＲＡＭにアクセスするモジュールに関する設計データおよびテストベンチとの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるデータ信号の期間別データ変化率および前記ＲＡＭのクロックイネーブル端子の期間別アサート率を算出する期間別変化率算出工程と、
前記期間別変化率算出工程によって算出された前記データ信号の期間別データ変化率と前記クロックイネーブル端子の期間別アサート率との相関関係をあらわす相関関係データを生成する生成工程と、
を含んだことを特徴とする消費電力解析支援方法。
【０１４２】
（付記１３）解析対象回路内のＲＡＭにアクセスするモジュールに関する設計データおよびテストベンチとの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データおよびテストベンチに基づいて、前記モジュールにおけるクロック信号の期間別クロック変化率，データ信号の期間別データ変化率および前記ＲＡＭのクロックイネーブル端子の期間別アサート率を算出する期間別変化率算出工程と、
前記期間別変化率算出工程によって算出された前記クロック信号の期間別クロック変化率と前記データ信号の期間別データ変化率との相関関係をあらわす相関関係データと、前記データ信号の期間別データ変化率と前記クロックイネーブル端子の期間別アサート率との相関関係をあらわす相関関係データとを生成する生成工程と、
を含んだことを特徴とする消費電力解析支援方法。
【産業上の利用可能性】
【０１４３】
以上のように、本発明にかかる消費電力解析支援装置、消費電力解析支援方法、および消費電力解析支援プログラムは、ＬＳＩの消費電力の解析に有用である。
【図面の簡単な説明】
【０１４４】
【図１】この発明の実施の形態にかかる消費電力解析装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態で用いる解析対象回路の一例を示す説明図である。
【図３】この発明の実施の形態にかかる消費電力解析装置の機能的構成を示すブロック図である。
【図４−１】第１モジュールのブロックレベル設計データの記述例を示す説明図である。
【図４−２】第２モジュールのブロックレベル設計データの記述例を示す説明図である。
【図４−３】ＲＡＭの動作レベル記述を示す説明図である。
【図５−１】第１モジュールおよび第２モジュールのＧＣＢ（ゲーティッドクロックバッファ）の動作モデル記述を示す説明図である。
【図５−２】第１モジュールおよび第２モジュールのＤフリップフロップの動作モデル記述を示す説明図である。
【図６】第１モジュールのブロックレベルテストベンチを示す説明図である。
【図７】図６に示したブロックレベルテストベンチに対応する波形データを示す波形図である。
【図８】第２モジュールのブロックレベルテストベンチを示す説明図である。
【図９】図８に示したブロックレベルテストベンチに対応する波形データを示す波形図である。
【図１０】第１モジュールに関する計測設定ファイルを示す説明図である。
【図１１】第２モジュールに関する計測設定ファイルを示す説明図である。
【図１２】クロック・ＲＡＭ指定ファイルを示す説明図である。
【図１３】全体レベル時区間データを示す図表である。
【図１４】第１モジュールのゲーティッドクロックに関する相関関係データを示すグラフである。
【図１５】図１４に示した相関関係データの線形近似式の算出記述例を示す説明図である。
【図１６】第２モジュールのゲーティッドクロックに関する相関関係データを示すグラフである。
【図１７】図１５に示した相関関係データの線形近似式の算出記述例を示す説明図である。
【図１８】ＲＡＭのクロックイネーブルに関する相関関係データを示すグラフである。
【図１９】図１８に示した相関関係データの線形近似式の算出記述例を示す説明図である。
【図２０】図３に示した相関関係データ作成部の機能的構成を示すブロック図である。
【図２１】第１モジュールのブロックレベル時区間別変化回数データを示す図表である。
【図２２】第２モジュールのブロックレベル時区間別変化回数データを示す図表である。
【図２３】ブロックレベル時区間別ＲＡＭ活性期間データを示す図表である。
【図２４】信号別変化回数算出部の機能的構成１を示すブロック図である。
【図２５−１】第２モジュール用のテストベンチの記述を示す説明図（その１）である。
【図２５−２】第２モジュール用のテストベンチの記述を示す説明図（その２）である。
【図２６−１】クロック変化回数計測回路記述を示す説明図である。
【図２６−２】ビット変化回数計測回路記述を示す説明図である。
【図２６−３】アサート期間計測回路記述を示す説明図である。
【図２７−１】計測回路追加処理部により得られる計測回路付きブロックレベルテストベンチの記述例を示す説明図（その１）である。
【図２７−２】計測回路追加処理部により得られる計測回路付きブロックレベルテストベンチの記述例を示す説明図（その２）である。
【図２８】信号別変化回数算出部の機能的構成２を示すブロック図である。
【図２９】図３に示した全体レベル時区間データ作成部の機能的構成を示すブロック図である。
【図３０−１】全体レベルテストベンチの記述例を示す説明図（その１）である。
【図３０−２】全体レベルテストベンチの記述例を示す説明図（その２）である。
【図３０−３】全体レベルテストベンチの記述例を示す説明図（その３）である。
【図３１】全体レベルテストベンチにより生成される波形データを示す波形図である。
【図３２】全体レベル用計測設定ファイルを示す説明図である。
【図３３】全体レベル用クロック・ＲＡＭ指定ファイルを示す説明図である。
【図３４−１】計測回路付全体レベルテストベンチの記述例を示す説明図（その１）である。
【図３４−２】計測回路付全体レベルテストベンチの記述例を示す説明図（その２）である。
【図３４−３】計測回路付全体レベルテストベンチの記述例を示す説明図（その３）である。
【図３４−４】計測回路付全体レベルテストベンチの記述例を示す説明図（その４）である。
【図３５】計測回路付全体レベルテストベンチにより生成される波形データを示す波形図である。
【図３６】図３に示した電力算出部の機能的構成を示すブロック図である。
【図３７】データ平均変化率算出部の実行記述の一例を示す説明図である。
【図３８】データ平均変化率算出部の算出結果を示す説明図である。
【図３９】この発明の実施の形態にかかる消費電力解析処理手順を示すフローチャートである。
【符号の説明】
【０１４５】
１００  消費電力解析装置
２００  解析対象回路
３０１  全体レベル時区間データ作成部
３０２  相関関係データ作成部
３０３  電力算出部
２００１  信号別変化回数算出部
２００２  データ作成処理部
２４０１  計測回路追加処理部
２４０２，２８０１  ブロックレベルシミュレーション実行部
２４０３，２８０２  ブロックレベル時区間別変化回数集計部
２９０１  全体組み上げ部
２９０２  全体レベルテストベンチ作成部
２９０３  電力測定設定ファイル作成部
２９０４  計測回路付全体レベルテストベンチ作成部
２９０５  全体レベルシミュレーション実行部
２９０６  全体レベル時区間別変化回数集計部
３６０１  データ平均変化率算出部
３６０２  消費電力解析部
【図１】
2008234187.tif 000003
【図２】
2008234187.tif 000004
【図３】
2008234187.tif 000005
【図４−１】
2008234187.tif 000006
【図４−２】
2008234187.tif 000007
【図４−３】
2008234187.tif 000008
【図５−１】
2008234187.tif 000009
【図５−２】
2008234187.tif 000010
【図６】
2008234187.tif 000011
【図７】
2008234187.tif 000012
【図８】
2008234187.tif 000013
【図９】
2008234187.tif 000014
【図１０】
2008234187.tif 000015
【図１１】
2008234187.tif 000016
【図１２】
2008234187.tif 000017
【図１３】
2008234187.tif 000018
【図１４】
2008234187.tif 000019
【図１５】
2008234187.tif 000020
【図１６】
2008234187.tif 000021
【図１７】
2008234187.tif 000022
【図１８】
2008234187.tif 000023
【図１９】
2008234187.tif 000024
【図２０】
2008234187.tif 000025
【図２１】
2008234187.tif 000026
【図２２】
2008234187.tif 000027
【図２３】
2008234187.tif 000028
【図２４】
2008234187.tif 000029
【図２５−１】
2008234187.tif 000030
【図２５−２】
2008234187.tif 000031
【図２６−１】
2008234187.tif 000032
【図２６−２】
2008234187.tif 000033
【図２６−３】
2008234187.tif 000034
【図２７−１】
2008234187.tif 000035
【図２７−２】
2008234187.tif 000036
【図２８】
2008234187.tif 000037
【図２９】
2008234187.tif 000038
【図３０−１】
2008234187.tif 000039
【図３０−２】
2008234187.tif 000040
【図３０−３】
2008234187.tif 000041
【図３１】
2008234187.tif 000042
【図３２】
2008234187.tif 000043
【図３３】
2008234187.tif 000044
【図３４−１】
2008234187.tif 000045
【図３４−２】
2008234187.tif 000046
【図３４−３】
2008234187.tif 000047
【図３４−４】
2008234187.tif 000048
【図３５】
2008234187.tif 000049
【図３６】
2008234187.tif 000050
【図３７】
2008234187.tif 000051
【図３８】
2008234187.tif 000052
【図３９】
2008234187.tif 000053