(57)【特許請求の範囲】
【請求項１】
コンピュータを、
設計対象回路内のモジュールごとの見積もり消費電力と、クロックサイクルごとに、当該クロックサイクルにおいて信号値が遷移した外部出力信号を表わすシミュレーション結果と、前記モジュールごとに、当該モジュールから出力される外部出力信号を定義するインターフェーステーブルと、を取得する取得手段、
前記取得手段によって取得されたシミュレーション結果とインターフェーステーブルとに基づいて、任意のシミュレーション期間内のクロックサイクルごとに、当該クロックサイクルにおいて信号値が遷移した外部出力信号と、前記モジュールから出力される外部出力信号とが一致するか否かを判定し、一致すると判定した場合に、前記モジュールから出力される外部出力信号の遷移回数を計数し、計数した計数結果を用いて前記モジュールから出力される外部出力信号ごとの遷移確率を算出することにより、算出した前記外部出力信号ごとの遷移確率に基づいて、前記モジュールから出力されるデータ量の期待値を表わすエントロピーを前記モジュールごとに算出する第１の算出手段、
前記取得手段によって取得された前記モジュールごとの見積もり消費電力と、前記第１の算出手段によって算出された前記モジュールごとのエントロピーとを用いて、前記モジュールの消費電力の改善可能性をあらわす電力指標を前記モジュールごとに算出する第２の算出手段、
前記第２の算出手段によって算出された算出結果を出力する出力手段、
として機能させることを特徴とする電力指標算出プログラム。
【請求項２】
コンピュータを、
設計対象回路内のモジュールの見積もり消費電力と、クロックサイクルごとに、当該クロックサイクルにおいて信号値が変化した制御信号を表わすシミュレーション結果と、モジュールインターフェースごとに、前記モジュール間のデータ通信が成立する制御条件を定義するインターフェーステーブルと、を取得する取得手段、
前記取得手段によって取得されたシミュレーション結果とインターフェーステーブルとに基づいて、前記モジュールインターフェースごとに、一つまたは複数のクロックサイクルにおいて信号値が変化した制御信号と、前記制御条件に定義されている制御信号とが一致するか否かを判定し、前記制御信号が一致すると判定した場合に、前記制御条件の成立回数を計数し、計数した計数結果と、前記制御条件の成立時に前記モジュール間で送受信される有効データ信号のビット数とを用いて、前記モジュールから送信される信号のうち、当該モジュールの通信先のモジュールによって受信される有効データ信号のデータ量を前記モジュールごとに算出する有効データ量算出手段、
前記取得手段によって取得された前記モジュールごとの見積もり消費電力と、前記有効データ量算出手段によって算出された前記モジュールごとの有効データ信号のデータ量とを用いて、前記モジュールの消費電力の改善可能性をあらわす電力指標を前記モジュールごとに算出する電力指標算出手段、
前記電力指標算出手段によって算出された算出結果を出力する出力手段、
として機能させることを特徴とする電力指標算出プログラム。
【請求項３】
設計対象回路内のモジュールごとの見積もり消費電力と、クロックサイクルごとに、当該クロックサイクルにおいて信号値が遷移した外部出力信号を表わすシミュレーション結果と、前記モジュールごとに、当該モジュールから出力される外部出力信号を定義するインターフェーステーブルと、を取得する取得手段と、
前記取得手段によって取得されたシミュレーション結果とインターフェーステーブルとに基づいて、任意のシミュレーション期間内のクロックサイクルごとに、当該クロックサイクルにおいて信号値が遷移した外部出力信号と、前記モジュールから出力される外部出力信号とが一致するか否かを判定し、一致すると判定した場合に、前記モジュールから出力される外部出力信号の遷移回数を計数し、計数した計数結果を用いて前記モジュールから出力される外部出力信号ごとの遷移確率を算出することにより、算出した前記外部出力信号ごとの遷移確率に基づいて、前記モジュールから出力されるデータ量の期待値を表わすエントロピーを前記モジュールごとに算出する第１の算出手段と、
前記取得手段によって取得された前記モジュールごとの見積もり消費電力と、前記第１の算出手段によって算出された前記モジュールごとのエントロピーとを用いて、前記モジュールの消費電力の改善可能性をあらわす電力指標を前記モジュールごとに算出する第２の算出手段と、
前記第２の算出手段によって算出された算出結果を出力する出力手段と、
を備えることを特徴とする電力指標算出装置。
【請求項４】
制御手段および記憶手段を備えるコンピュータが、
前記制御手段により、設計対象回路内のモジュールごとの見積もり消費電力と、クロックサイクルごとに、当該クロックサイクルにおいて信号値が遷移した外部出力信号を表わすシミュレーション結果と、前記モジュールごとに、当該モジュールから出力される外部出力信号を定義するインターフェーステーブルと、を取得する取得工程と、
前記制御手段により、前記取得工程によって取得されたシミュレーション結果とインターフェーステーブルとに基づいて、任意のシミュレーション期間内のクロックサイクルごとに、当該クロックサイクルにおいて信号値が遷移した外部出力信号と、前記モジュールから出力される外部出力信号とが一致するか否かを判定し、一致すると判定した場合に、前記モジュールから出力される外部出力信号の遷移回数を計数し、計数した計数結果を用いて前記モジュールから出力される外部出力信号ごとの遷移確率を算出することにより、算出した前記外部出力信号ごとの遷移確率に基づいて、前記モジュールから出力されるデータ量の期待値を表わすエントロピーを前記モジュールごとに算出する第１の算出工程と、
前記制御手段により、前記取得工程によって取得された前記モジュールごとの見積もり消費電力と、前記第１の算出工程によって算出された前記モジュールごとのエントロピーとを用いて、前記モジュールの消費電力の改善可能性をあらわす電力指標を前記モジュールごとに算出する第２の算出工程と、
前記制御手段により、前記第２の算出工程によって算出された算出結果を出力する出力工程と、
を実行することを特徴とする電力指標算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路の低電力化を支援する電力指標算出プログラム、該プログラムを記録した記録媒体、電力指標算出装置、および電力指標算出方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路の高集積化、大規模化、および駆動の高速化が進み半導体集積回路の消費電力が増大している。この結果、半導体回路自身が発生する熱が原因となる半導体回路の性能劣化や短寿命化が問題になっている。これらの問題を解決するためには、半導体回路の設計段階において消費電力の正確な見積もり（予測）をおこない、その消費電力を削減するように回路変更などの対策をおこなうことが必要である。
【０００３】
半導体集積回路の消費電力を見積もる手法としては、シミュレーションによる手法が一般的である。シミュレーションでは、半導体集積回路に入力パタンを与えて回路動作をシミュレートするとともに、半導体集積回路中の各信号の遷移回数をカウントする。そして、信号の１回当たりの遷移で消費される電力に遷移回数を乗じて、これを回路中のすべての信号について総和をとることにより、半導体集積回路の消費電力を算出することができる。
【０００４】
また、他の手法として、バスの単位時間当たりのデータ処理量を設定し、データベースから所望の機能を有するコアを抽出してこれを要素として選択する。このあと、バスの接続面やバスから要素への接続部の設定をおこなって、バスと各要素との接続関係を決定する。そして、時間的シミュレーションをおこなって、処理時間や要素の形状を明確にしたあと、性能解析をおこなうことにより、選択した各要素の消費電力を評価する手法が開示されている。
【０００５】
さらに、他の手法として、回路ブロックの動作モードを規定する特徴信号を有する設計回路に対して、消費電力を解析する単位解析区間ごとに特徴信号の動作回数を計測する。このあと、特徴信号の動作回数の計測結果をもとに、特徴信号によって動作モードが規定される回路ブロックの動作回数を計測するか否かを判定する。そして、回路ブロックの動作回数を計測すると判定された場合にのみ、回路ブロックの動作回数を計測する手法が開示されている。
【０００６】
また、半導体集積回路の消費電力を削減する手法として、ネットワークによって通信可能に接続された複数のＣＰＵを備える半導体集積回路であって、第１および第２のＣＰＵの処理状況に応じて、第１および第２のＣＰＵの周波数を変更したり、第１のＣＰＵへのクロックの供給の有無を制御する手法が開示されている。
【０００７】
また、半導体集積回路の低電力化を図る手法として、半導体集積回路内の機能モジュールのデータ量を測定し、その測定結果に基づいて機能モジュールの「性能／消費電力比」が最大となるようにクロック周波数、電源電圧、基板バイアスを制御する手法が開示されている。
【０００８】
【特許文献１】特開２００１−０５６８２７号公報
【特許文献２】国際公開第２００７／０３７０１７号パンフレット
【特許文献３】特開２００６−２７７３３２号公報
【特許文献４】特開２００４−２２８４１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来技術によれば、消費電力の見積もり結果をもとに回路の電力改善をおこなう場合、回路内のどのモジュールが電力的に問題なのかを特定することが難しいという問題があった。なぜなら、一般に電力改善をおこなう作業者は、回路の設計者とは異なるため、回路内の動作を詳細に理解していないことが多い。
【００１０】
このため、消費電力の見積もり結果から、どのモジュールが無駄に多くの電力を消費しているのかを特定することが難しく、どこに電力改善を施すべきかを適切に判断することが困難であった。したがって、従来においては、見積もり消費電力の大きいモジュールから順に電力改善を試みるなどの試行錯誤を繰り返している。
【００１１】
ところが、消費電力の大きいモジュールが必ずしも無駄な電力を多く消費しているモジュールであるとは限らない。この結果、回路修正などの手戻りが発生してしまい、電力改善にかかる作業負担および作業時間が増大化し、ひいては設計期間の長期化を招くという問題があった。
【００１２】
以上のことから、回路動作の詳細を理解していなくとも、無駄に多くの電力を消費しているモジュール候補を客観的に判断することができる技術が望まれていた。
【００１３】
この発明は、上述した従来技術による問題点を解消するため、効率的かつ効果的な電力改善をおこなうことにより、作業負担の軽減化および設計期間の短縮化を図ることを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するため、この開示技術は、設計対象回路内のモジュールごとの見積もり消費電力量を取得し、任意のシミュレーション期間における前記モジュールから出力される外部出力信号ごとの遷移確率に基づいて、前記モジュールから出力されるデータ量の期待値を表わすエントロピーを算出し、取得された見積もり消費電力と、算出されたエントロピーとを用いて、前記見積もり消費電力量のうち、外部出力に費やされる消費電力に関する電力指標を算出し、算出された算出結果を出力する。
【００１５】
この開示技術によれば、モジュールの見積もり消費電力のうち、外部出力に費やされる消費電力以外の無駄電力を推定することができる。
【発明の効果】
【００１６】
この開示技術によれば、効率的かつ効果的な電力改善をおこなうことにより、作業負担の軽減化および設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照して、この電力指標算出プログラム、該プログラムを記録した記録媒体、電力指標算出装置、および電力指標算出方法の好適な実施の形態を詳細に説明する。
【００１８】
（実施の形態１）
まず、実施の形態１の概要について説明する。実施の形態１では、設計対象回路の電力改善作業の効率化を図るため、回路動作を詳細に理解していなくとも、無駄に多くの電力を消費している可能性が高いモジュール候補を客観的に判断することができる電力指標をモジュールごとに算出する。
【００１９】
モジュールで消費される電力には、例えば、他のモジュールとのデータ通信に費やされる消費電力と、クロックゲーティング漏れや不必要な内部通信（ローカルメモリ、下位モジュール間通信など）に費やされる消費電力とがある。消費電力の見積もりシミュレーションから得られる見積もり消費電力には、これら２つの消費電力が含まれている。
【００２０】
図１は、モジュールで消費される電力の概要を示す説明図である。モジュールＭａは、モジュールＭｂとデータ通信する送信モジュールである。ここで、モジュールＭａの見積もり消費電力をＰ［ｍＷ］とする。また、モジュールＭａからモジュールＭｂに送信されるデータ信号（以下、「有効データ信号」という）のデータ量をＤ［ｂｉｔ］とする。
【００２１】
図１に示すように、モジュールＭａで消費される電力には、モジュールＭｂにデータ信号を送信するために費やされる消費電力のほかに、クロックゲーティング漏れや不必要な内部通信に費やされる消費電力がある。モジュールＭａの電力改善をおこなう場合、クロックゲーティング漏れや不必要な内部通信に費やされる無駄な消費電力を削減して低電力化を図ることができる。
【００２２】
したがって、見積もり消費電力Ｐ［ｍＷ］に対する、無駄な消費電力が占める割合が大きいほど、モジュールＭａが電力的に効率の悪いモジュールであると判断することができる。換言すれば、消費電力Ｐ［ｍＷ］に対する、モジュールＭｂとのデータ通信に費やされる消費電力が占める割合が大きいほど、モジュールＭａが電力的に効率の良いモジュールであると判断することができる。
【００２３】
一般に、モジュール間のデータ通信による消費電力は、送信対象となる有効データ信号のデータ量に比例して大きくなる。つまり、モジュールＭａが消費電力Ｐ［ｍＷ］に見合ったデータ量のデータ信号を送信しているか否かにより、電力的に効率の良いモジュールなのか、または、悪いモジュールなのかを判断することができる。
【００２４】
そこで、実施の形態１では、見積もり消費電力Ｐ［ｍＷ］を有効データ信号のデータ量Ｄ［ｂｉｔ］で除算した値を電力指標として算出する。この電力指標が大きいほど電力的な無駄が多いことを意味しており、一方で、この電力指標が小さいほど電力的な無駄が少ないことを意味している。
【００２５】
電力改善作業者は、設計対象回路内のモジュールごとの電力指標を相対的に評価して、低電力化の改善可能性が高いモジュール候補を特定することにより、効率的かつ効果的な電力改善をおこなうことができる。
【００２６】
（電力指標算出装置のハードウェア構成）
まず、電力指標算出装置のハードウェア構成について説明する。図２は、電力指標算出装置のハードウェア構成を示す説明図である。
【００２７】
図２において、電力指標算出装置２００は、コンピュータ本体２１０と、入力装置２２０と、出力装置２３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク２４０に接続可能である。
【００２８】
コンピュータ本体２１０は、ＣＰＵ，メモリ，インターフェースを有する。ＣＰＵは、電力指標算出装置２００の全体の制御を司る。メモリは、ＲＯＭ，ＲＡＭ，ＨＤ，光ディスク２１１，フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００２９】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク２１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク２１１およびフラッシュメモリはコンピュータ本体２１０に対し着脱自在である。インターフェースは、入力装置２２０からの入力、出力装置２３０への出力、ネットワーク２４０に対する送受信の制御をおこなう。
【００３０】
また、入力装置２２０としては、キーボード２２１、マウス２２２、スキャナ２２３などがある。キーボード２２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス２２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ２２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体２１０内のメモリに格納される。なお、スキャナ２２３にＯＣＲ機能を持たせてもよい。
【００３１】
また、出力装置２３０としては、ディスプレイ２３１、プリンタ２３２、スピーカ２３３などがある。ディスプレイ２３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ２３２は、効果音や読み上げ音などの音声を出力する。また、プリンタ２３３は、画像データや文書データを印刷する。
【００３２】
（電力指標算出装置の機能的構成）
つぎに、電力指標算出装置２００の機能的構成について説明する。図３は、電力指標算出装置の機能的構成を示すブロック図である。図３において、電力指標算出装置２００は、取得部３０１と、第１の算出部３０２と、第２の算出部３０３と、出力部３０４と、判定部３０５と、計数部３０６と、を含む構成である。
【００３３】
この制御部となる機能（取得部３０１〜計数部３０６）は、具体的には、例えば、図２に示したＲＯＭ、ＲＡＭ、ＨＤ、光ディスク２１１、フラッシュメモリなどの記憶部に記憶されたプログラムをＣＰＵに実行させることにより、または、入出力Ｉ／Ｆにより、その機能を実現する。また、各機能（取得部３０１〜計数部３０６）からの出力データは上記記憶領域に保持される。
【００３４】
また、各機能３０１〜３０６からの出力データは上記記憶部に保持される。また、図３中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをＣＰＵに実行させるものとする。
【００３５】
まず、取得部３０１は、設計対象回路内の送信モジュールの見積もり消費電力を取得する機能を有する。送信モジュールの見積もり消費電力は、例えば、不図示の外部装置から取得することとしてもよく、また、ユーザの操作入力、不図示のデータベースやライブラリからの抽出によって取得することとしてもよい。
【００３６】
あるいは、既存の見積もり手法を用いて、設計対象回路内のモジュールごとの消費電力をシミュレーションして見積もることにより、その見積もり結果を取得することとしてもよい。ここで、設計対象回路内のモジュールごとの見積もり消費電力を表わす消費電力リストについて説明する。
【００３７】
図４は、消費電力リストの具体例を示す説明図である。図４において、消費電力リスト４００は、設計対象回路内のモジュールＭ１〜Ｍｍごとの見積もり消費電力を表わす消費電力情報４００−１〜４００−ｍを有している。具体的には、消費電力情報４００−１〜４００−ｍは、モジュールＭ１〜Ｍｍごとに、モジュール名と見積もり消費電力とを表わす情報を有している。
【００３８】
ここで、消費電力情報４００−ｉを例に挙げると、モジュールＭｉの見積もり消費電力はＰｉ［ｍＷ］である。上記取得部３０１は、例えば、この消費電力リスト４００（消費電力情報４００−１〜４００−ｍ）を、送信モジュールの見積もり消費電力として取得することとなる。
【００３９】
第１の算出部３０２は、送信モジュールから送信される信号のうち、送信モジュールの通信先の受信モジュールによって受信される有効データ信号のデータ量を算出する機能を有する。有効データ信号のデータ量とは、モジュールインターフェースを介して接続されているモジュール間で送受信されるデータ信号のデータ量である。
【００４０】
この有効データ信号のデータ量が大きいと、送信モジュールの見積もり消費電力のうち受信モジュールとのデータ通信に費やされる消費電力が大きくなる。有効データ信号のデータ量は、例えば、有効データ信号のビット数（データサイズ）によって表現することができる。なお、第１の算出部３０２による算出処理の具体的な説明は後述する。
【００４１】
第２の算出部３０３は、取得部３０１によって取得された見積もり消費電力と、第１の算出部３０２によって算出された有効データ信号のデータ量とを用いて、見積もり消費電力のうち、有効データ信号の送信に費やされる消費電力に関する電力指標を算出する機能を有する。
【００４２】
この電力指標は、送信モジュールの仕事量が、その送信モジュールの見積もり消費電力に見合ったものであるか否かを判断するための指標である。ここでは、送信モジュールが、見積もり消費電力に見合ったデータ量の有効データ信号を受信モジュールに送信しているか否かを判断するための電力指標を算出する。
【００４３】
具体的には、例えば、第２の算出部３０３は、下記式（１）を用いて、送信モジュールごとの電力指標を算出することができる。ただし、送信モジュールＭｉの見積もり消費電力をＰｉ、有効データ量をＤｉ、電力指標をＸｉとする。
【００４４】
Ｘｉ＝Ｐｉ／Ｄｉ              …（１）
【００４５】
この電力指標Ｘｉが大きいほど、見積もり消費電力Ｐｉのうち、有効データ信号の送信に費やされる消費電力が小さくなることを意味している。換言すると、電力指標Ｘｉが大きいほど、送信モジュールＭｉにおける電力的な無駄が多いことを意味している。
【００４６】
一方、この電力指標Ｘｉが小さいほど、見積もり消費電力Ｐｉのうち、有効データ信号の送信に費やされる消費電力が大きくなることを意味している。換言すると、電力指標Ｘｉが小さいほど、送信モジュールＭｉにおける電力的な無駄が少ないことを意味している。
【００４７】
すなわち、電力指標Ｘｉが大きい送信モジュールＭｉを低電力化の改善対象とすることにより、大幅な消費電力の削減が見込まれるため、効率的かつ効果的な電力改善をおこなうことができる。
【００４８】
なお、電力指標の算出手法は、上述したものに限らない。例えば、送信モジュールの有効データ信号のデータ量を見積もり消費電力で除算することにより、送信モジュールの電力指標を算出することとしてもよい。この場合、電力指標が大きいほど、送信モジュールにおける電力的な無駄が少ないことを意味する。一方、電力指標が小さいほど、送信モジュールにおける電力的な無駄が多いことを意味する。
【００４９】
出力部３０４は、第２の算出部３０３によって算出された算出結果を出力する機能を有する。出力部３０４による出力形式は、ディスプレイ２３１での画面表示、プリンタ２３３での印刷出力、メモリへのデータ出力（保存）、外部のコンピュータ装置への送信のいずれであってもよい。なお、出力部３０４によって出力される出力結果の具体例については後述する。
【００５０】
つぎに、第１の算出部３０２による算出処理の処理内容について詳細に説明する。有効データ信号のデータ量は、例えば、クロックサイクルごとに、当該クロックサイクルにおいて信号値が変化した制御信号を表わすシミュレーション結果と、モジュールインターフェースごとに、モジュール間のデータ通信が成立する制御条件を定義するインターフェーステーブルと、から算出することができる。
【００５１】
これらシミュレーション結果およびインターフェーステーブルは、取得部３０１により、例えば、不図示の外部装置から取得することとしてもよく、また、ユーザの操作入力、不図示のデータベースやライブラリからの抽出によって取得することとしてもよい。
【００５２】
シミュレーション結果は、例えば、クロックサイクルと、該クロックサイクルに信号値が変化した制御信号とを関連付けて表わすＶＣＤ（Ｖａｌｕｅ  Ｃｈａｎｇｅ  Ｄｕｍｐ）ファイルなどの電子データであってもよい。インターフェーステーブルは、例えば、モジュールの機能が記述された仕様書や、ＨＤＬ言語（ＶＨＤＬ、Ｖｅｒｉｌｏｇなど）によって記述された設計対象回路の回路情報から抽出することができる。
【００５３】
ここで、シミュレーション結果およびインターフェーステーブルの具体例について説明する。図５は、シミュレーション結果の具体例を示す説明図（その１）である。図５において、シミュレーション結果５００は、アプリケーションの動作時に信号値が変化した信号を表わす信号情報５００−１〜５００−ｎを有している。
【００５４】
具体的には、信号情報５００−１〜５００−ｎは、クロックサイクル１〜ｎごとに、該クロックサイクル１〜ｎにおいて信号値が変化した信号を表わしている。ここで、信号情報５００−ｊを例に挙げると、クロックサイクルｊにおいてデータ信号「ＷＤＡＴＡ」の信号値が３に、制御信号「ＲＥＣＶ」の信号値が０に変化したことを表わしている。
【００５５】
ここでは、シミュレーション結果５００には、各クロックサイクルにおいて信号値が変化した信号のみを表記したが、それ以外の信号については、前のクロックサイクルの信号値をそのまま保持している。つまり、シミュレーション結果５００は、各クロックサイクルにおいて、すべての信号の信号値を保持していることとなる。
【００５６】
図６は、インターフェーステーブルの具体例を示す説明図（その１）である。図６において、インターフェーステーブル６００は、モジュールインターフェースＣ１〜Ｃｔごとに、モジュール間のデータ信号の受け渡しを定義するインターフェース情報６００−１〜６００−ｔを有している。
【００５７】
具体的には、インターフェース情報６００−１〜６００−ｔは、モジュールインターフェースＣ１〜Ｃｔごとに、インターフェース名、送信モジュール名、受信モジュール名、制御条件、データ信号、ビット数、重要度に関する情報を有している。インターフェース名は、モジュール間を接続するモジュールインターフェースＣ１〜Ｃｔの名称である。
【００５８】
送信モジュール名は、送信モジュールの名称である。受信モジュール名は、受信モジュールの名称である。制御条件は、モジュール間のデータ通信が成立する条件である。データ信号は、受け渡し対象となる有効データ信号である。ビット数は、データ信号のデータサイズである。重要度は、データ信号の重要度を表わす指標である。
【００５９】
ここで、インターフェース情報６００−１を例に挙げて、モジュール間のデータ通信について説明する。図７は、モジュール間のデータ通信の概要を示す説明図である。図７において、モジュールインターフェースＣ１を介して送信モジュールＭ１と受信モジュールＭ２とが通信可能に接続されている。
【００６０】
また、インターフェース情報６００−１は、モジュールインターフェースＣ１を介して接続されている送信モジュールＭ１と受信モジュールＭ２とのデータ通信が成立する制御条件「ＳＥＮＤ＆ＲＥＣＶ」を有している。この制御条件は、制御信号「ＳＥＮＤ」および「ＲＥＣＶ」がともに変化したときに、送信モジュールＭ１と受信モジュールＭ２とのデータ通信が成立することを表わしている。
【００６１】
具体的には、送信モジュールＭ１は、制御信号「ＳＥＮＤ」の値が０から１に変化するとデータ信号「ＤＡＴＡ［６３：０］」を送出する。さらに、受信モジュールＭ８は、制御信号「ＲＥＣＶ」が０から１に変化するとデータ信号「ＤＡＴＡ［６３：０］」を取り込むことを意味している。なお、［６３：０］は、ビット数を定義したものである。
【００６２】
なお、送信モジュールＭ１は、制御信号「ＳＥＮＤ」の値が１から０に変化するとデータ信号「ＤＡＴＡ［６３：０］」の送出を止める。さらに、受信モジュールＭ８は、制御信号「ＲＥＣＶ」が１から０に変化するとデータ信号「ＤＡＴＡ［６３：０］」の取り込みを止めることとなる。
【００６３】
また、データ信号「ＤＡＴＡ［６３：０］」の重要度は１である。これは、重要度を表わす数値の最低値である。例えば、インターフェース情報６００−ｋに示す重要度が１０００のデータ信号「ＥＲＲＯＲ」は、データ信号「ＤＡＴＡ［６３：０］」に比べて１０００倍重要であることを意味している。
【００６４】
判定部３０５は、モジュールインターフェースごとに、一つまたは複数のクロックサイクルにおいて信号値が変化した制御信号と、制御条件に定義されている制御信号とが一致するか否かを判定する機能を有する。具体的には、例えば、判定部３０５は、図５に示した信号情報５００−１〜５００−ｎおよびインターフェース情報６００−１〜６００−ｔを用いて、制御信号が一致するか否かを判定する。
【００６５】
ここで、モジュールインターフェースＣ１を例に挙げると、信号情報５００−１〜５００−ｎから特定される制御信号と、制御条件「ＳＥＮＤ＆ＲＥＣＶ」に定義されている制御信号「ＳＥＮＤ」および「ＲＥＣＶ」とが一致するか否かを判定する。より詳細に説明すると、クロックサイクル１〜ｎごとに、制御信号が一致するか否かを順次判定する。
【００６６】
まず、信号情報５００−１によれば、クロックサイクル１において、制御信号「ＳＥＮＤ」が０から１に変化している。このため、判定部３０５は、制御条件「ＳＥＮＤ＆ＲＥＣＶ」に定義されている制御信号「ＳＥＮＤ」および「ＲＥＣＶ」のうち、制御信号「ＳＥＮＤ」のみが一致したと判定する。
【００６７】
つぎに、信号情報５００−２によれば、クロックサイクル２において、制御信号「ＲＥＣＶ」が０から１に変化している。このため、判定部３０５は、クロックサイクル１，２において信号値が変化した制御信号「ＳＥＮＤ」および「ＲＥＣＶ」と、制御条件「ＳＥＮＤ＆ＲＥＣＶ」に定義されている制御信号「ＳＥＮＤ」および「ＲＥＣＶ」とが一致したと判定する。
【００６８】
このように、制御条件に複数の制御信号が定義されている場合には、すべての制御信号が一致するまでの間（または、すべてのクロックサイクルに関する処理が完了するまでの間）は、既に一致すると判定された制御信号を特定する情報をＲＯＭやＲＡＭなどの記憶部に保持することとしてもよい。
【００６９】
計数部３０６は、判定部３０５によって制御信号が一致すると判定された場合、制御条件の成立回数を計数する機能を有する。上述した例では、計数部３０６は、判定部３０５によって制御信号「ＳＥＮＤ」および「ＲＥＣＶ」が一致したと判定された場合に、モジュールインターフェースＣ１の制御条件「ＳＥＮＤ＆ＲＥＣＶ」の成立回数をインクリメントすることとなる。
【００７０】
このように、判定部３０５は、例えば、インターフェース情報６００−１〜６００−ｔに示すモジュールインターフェースＣ１〜Ｃｔごとに、信号情報５００−１〜５００−ｎに示す全クロックサイクル１〜ｎにおける制御信号の一致判定をおこなう。そして、計数部３０６は、判定部３０５によって制御信号が一致すると判定されると、その都度、制御条件の成立回数を計数する。
【００７１】
また、第１の算出部３０２は、計数部３０６によって計数された計数結果と、制御条件の成立時にモジュール間で送受信される有効データ信号のビット数とを用いて、送信モジュールの有効データ信号のデータ量を算出する機能を有する。計数部３０６によって計数された計数結果は、制御条件の成立回数を表わしている。
【００７２】
具体的には、例えば、下記式（２）を用いて、送信モジュールごとの有効データ信号のデータ量を算出することができる。ただし、制御条件の成立回数をＦ、制御条件の成立時にモジュール間で送受信される有効データ信号のビット数をＢとする。
【００７３】
Ｄｉ＝Ｆ×Ｂ                  …（２）
【００７４】
これは、制御条件ごとに計数された計数結果と、その制御条件の成立時にモジュール間で送受信される有効データ信号のビット数とを乗算することにより、送信モジュールごとに、シミュレーションの開始から終了までに受信モジュールに送信された有効データ信号の総データ量を求めている。
【００７５】
例えば、モジュールインターフェースＣ１の制御条件「ＳＥＮＤ＆ＲＥＣＶ」の成立回数が１０回（計数結果が１０）であった場合、上記式（２）に制御条件の成立回数「１０」および有効データ信号のビット数「６４」を代入することにより、送信モジュールＭ１の有効データ信号のデータ量は６４０［ｂｉｔ］となる。
【００７６】
これにより、モジュールインターフェースＣ１〜Ｃｔごとに、各モジュールインターフェースＣ１〜Ｃｔを介して受け渡される有効データ信号のデータ量を求めることができる。具体的には、有効データ信号のデータ量を、その有効データ信号の送信回数（計数結果）とデータサイズ（ビット数）とを用いて求めることができる。
【００７７】
また、第１の算出部３０２は、モジュール間で送受信される有効データ信号の重要度を用いて、送信モジュールごとの有効データ量を算出することとしてもよい。これは、重要度の高い有効データ信号に重み付けをすることを意味している。つまり、有効データ信号のデータ量を、その有効データ信号のデータ量だけでなく、その有効データ信号の重要度を考慮して算出する。
【００７８】
上述したように、有効データ信号のデータ量は、送信モジュールの仕事量に相当する。例えば、インターフェース情報６００−ｋに示すデータ信号「ＥＲＲＯＲ」は、何らかの処理に異常が発生したことを示す信号であり、非常に重要な信号である。このような場合には、単にビット数のみで仕事量を判断するのではなく、送出される有効データ信号の重要度を考慮して仕事量を判断する。
【００７９】
具体的には、例えば、下記式（３）を用いて、送信モジュールごとの有効データ信号のデータ量を算出することができる。ただし、制御条件の成立時にモジュール間で送受信される有効データ信号の重要度をＩとする。
【００８０】
Ｄｉ＝Ｆ×Ｂ×Ｉ              …（３）
【００８１】
これは、制御条件ごとに計数された計数結果と、その制御条件の成立時にモジュール間で送受信される有効データ信号のビット数との乗算値に、その有効データ信号の重要度を乗算することにより、有効データ信号の重要度を考慮したデータ量を求めている。
【００８２】
例えば、モジュールインターフェースＣｋの制御条件「ＥＲＲＯＲ．ｒｉｓｅ」の成立回数が１回であった場合、上記式（３）に制御条件の成立回数「１」と有効データ信号のビット数「１」と重要度「１０００」を代入することにより、送信モジュールＭ１の有効データ信号のデータ量は１０００［ｂｉｔ］となる。
【００８３】
これにより、送信モジュールから受信モジュールに送信される有効データ信号の重要度を考慮して、有効データ信号のデータ量を求めることができる。なお、上記制御信号「ＥＲＲＯＲ．ｒｉｓｅ」は、制御信号「ＥＲＲＯＲ」の値が０から１に変化すると送信モジュールＭ７からデータ信号「ＥＲＲＯＲ」が送出されることを意味している。
【００８４】
ここで、有効データ信号の具体例について説明する。図８は、有効データ信号の具体例を示す説明図（その１）である。図８において、制御条件は「ＣＯＮＴＲＯＬ．ｒｉｓｅ」、データ信号は「ＤＡＴＡ［７：０］」、重要度は「１」である。
【００８５】
これは、制御信号「ＣＯＮＴＲＯＬ」が０から１に変化すると、送信モジュールから重要度１のデータ信号「ＤＡＴＡ［７：０］」が送出されることを意味している。この場合、上記式（３）に制御条件の成立回数「２」とデータ信号のビット数「８」と重要度「１」とを代入することにより、送信モジュールの有効データ信号のデータ量は１６［ｂｉｔ］となる。
【００８６】
また、図９は、有効データ信号の具体例を示す説明図（その２）である。これは、制御信号「ＣＯＮＴＲＯＬ」が１となっている期間中、クロックサイクルごとに、送信モジュールから重要度１のデータ信号「ＤＡＴＡ［７：０］」が送出されることを意味している（いわゆる、バースト転送）。
【００８７】
この場合、上記式（３）に制御条件の成立回数「５」とデータ信号のビット数「８」と重要度「１」とを代入することにより、送信モジュールの有効データ信号のデータ量は４０［ｂｉｔ］となる。
【００８８】
また、判定部３０５は、制御条件に複数の制御信号が定義されている場合、クロックサイクルにおいて信号値が変化した制御信号と、複数の制御信号のうちいずれかの制御信号とが一致するか否かを判定することとしてもよい。
【００８９】
具体的には、例えば、信号値が変化した制御信号と、送信モジュールが有効データ信号を送信する制御信号、または、受信モジュールが有効データ信号を受信する制御信号のいずれか一方とが一致するか否かを判定することとしてもよい。
【００９０】
モジュールインターフェースＣ１を例に挙げると、判定部３０５は、クロックサイクルにおいて信号値が変化した制御信号と、制御条件「ＳＥＮＤ＆ＲＥＣＶ」に定義されている制御信号「ＳＥＮＤ」または「ＲＥＣＶ」のいずれか一方とが一致するか否かを判定する。
【００９１】
この場合、クロックサイクル１において、制御条件「ＳＥＮＤ＆ＲＥＣＶ」に定義されている制御信号「ＳＥＮＤ」が一致したと判定された時点で、信号値が変化した制御信号と、制御条件「ＳＥＮＤ＆ＲＥＣＶ」に定義されている制御信号「ＳＥＮＤ＆ＲＥＣＶ」とが一致したと判定する。
【００９２】
つまり、制御条件に複数の制御信号が定義されている場合であっても、複数の制御信号のうちのいずれかの制御信号が一致した時点で、判定部３０５による判定処理が完了する。これにより、複数のクロックサイクルに渡って制御信号の一致判定をおこなう必要がなく、判定処理の高速化を図ることができる。
【００９３】
また、判定部３０５は、制御条件が連続する第１および第２のクロックサイクルで成立する場合、第１のクロックサイクルに送受信される有効データ信号の信号値と第２のクロックサイクルに送受信される有効データ信号の信号値とが一致するか否かを判定することとしてもよい。このとき、計数部３０６は、判定部３０５によって信号値が一致しないと判定された場合、制御条件の成立回数を計数することとしてもよい。
【００９４】
つまり、制御条件が複数のクロックサイクルに渡って成立している場合であっても、同じ信号値のデータ信号が送信される場合には、制御条件の成立回数を１回とカウントする。これにより、有効データ信号の送信に費やされる消費電力をより正確に推定することができる。
【００９５】
図１０は、有効データ信号の具体例を示す説明図（その３）である。これは、制御信号「ＣＯＮＴＲＯＬ」が１となっている期間中、クロックサイクルごとに、送信モジュールから重要度１のデータ信号「ＤＡＴＡ［７：０］」が送出されることを意味している。図１０中Ａ，Ｂは、データ信号「ＤＡＴＡ［７：０］」の信号値を表わしている。
【００９６】
このとき、同じ信号値のデータ信号が送信される場合には、制御条件の成立回数を１回とカウントするため、上記式（３）に制御条件の成立回数「２」とデータ信号のビット数「８」と重要度「１」を代入することにより、送信モジュールの有効データ量は１６［ｂｉｔ］となる。
【００９７】
ここで、第１の算出部３０２の算出結果について説明する。図１１は、第１の算出部の算出結果の具体例を示す説明図である。図１１において、有効データ量リスト１１００は、送信モジュールごとに、第１の算出部３０２の算出結果１１００−１〜１１００−ｍを有している。ここで、算出結果１１００−ｉを例に挙げると、送信モジュールＭｉの有効データ信号のデータ量はＤｉである。
【００９８】
なお、送信モジュールごとの有効データ信号のデータ量を、制御条件の成立回数と、モジュール間で送受信されるデータ信号のビット数（さらに、データ信号の重要度）とを乗算することにより算出することとしたが、これに限らない。
【００９９】
例えば、各クロックサイクルにおいて制御条件が成立すると、その都度、データ信号のビット数（または、ビット数と重要度との乗算値）を有効データ量の増分として加算していくことにより、送信モジュールごとの有効データ量を算出することとしてもよい。
【０１００】
より詳細に説明すると、設計対象回路内のモジュールＭ１〜Ｍｍの有効データ量を収める配列変数Ｄ［１，２，…，ｍ］を用意する。つまり、Ｄ［ｉ］は、モジュールＭ１の有効データ量を示す（ｉ＝１，２，…，ｍ）。また、初期設定として、各モジュールの有効データ量をＤ［］＝０に初期化する。
【０１０１】
この配列変数Ｄ［］を用いて、送信モジュールごとの有効データ信号のデータ量を算出する。具体的には、各モジュールインターフェースＣ１〜Ｃｔについて、クロックサイクル１〜ｎごとに、その制御条件が成立するか否かを判定する。
【０１０２】
そして、制御条件が成立すると、その都度、有効データ信号のデータ量の増分ｘを加算していくことにより、送信モジュールごとの有効データ信号のデータ量を算出することができる。増分ｘは、例えば、下記式（４）または（５）を用いて算出することができる。
【０１０３】
ｘ＝Ｂ                        …（４）
【０１０４】
ｘ＝Ｂ×Ｉ                    …（５）
【０１０５】
上記式（４）は、有効データ信号のビット数Ｂによって増分ｘを表現したものである。また、上記式（５）は、有効データ信号のビット数Ｂと重要度Ｉとを乗算することによって増分ｘを表現したものである。
【０１０６】
また、取得部３０１は、送信モジュールごとの有効データ信号のデータ量を表わすシミュレーション結果を取得することとしてもよい。つまり、シミュレーション結果に、予め送信モジュールごとの有効データ信号のデータ量を表わす情報が含まれている。これは、シミュレーションの実行ツールに送信モジュールごとの有効データ信号のデータ量をモニタするスクリプトを記述することにより実現することができる。
【０１０７】
また、設計対象回路に送信モジュールごとの有効データ信号のデータ量をモニタする機能を付加することにより実現することができる。具体的には、例えば、設計対象回路に制御条件の成立回数を計数するモニタ回路を付加する。図１２は、モニタ回路の一例を示す説明図である。図１２において、シミュレーション対象となる設計対象回路１２００には、モジュールインターフェースの制御条件の成立回数をモニタするモニタ回路１２１０が付加されている。
【０１０８】
このモニタ回路１２１０は、判定回路１２１１とカウンタ回路１２１２とからなる。判定回路１２１１は、クロックサイクルにおいて信号値が変化した制御信号と、制御条件に定義されている制御信号とが一致するか否かを判定する。カウンタ回路１２１２は、判定回路１２１１において制御信号が一致すると判定された場合、制御条件の成立回数を計数する。このモニタ回路１２１０から出力される制御条件の成立回数を用いて、送信モジュールごとの有効データ信号のデータ量を算出する。
【０１０９】
この場合、第２の算出部３０３は、取得部３０１によって取得された送信モジュールごとの有効データ信号のデータ量を表わすシミュレーション結果を用いて、送信モジュールごとの電力指標を算出することができる。これにより、第１の算出部３０２による算出処理を削減することができ、電力指標算出処理の高速化を図ることができる。
【０１１０】
また、出力部３０４は、設計対象回路内の送信モジュールごとの電力指標を出力することとしてもよい。具体的には、例えば、送信モジュールのモジュール名と電力指標とを対応付けてリスト化されたテーブル表を出力する。設計者は、このテーブル表を確認することで、設計対象回路内の送信モジュールの電力指標を相対的に評価することができる。
【０１１１】
さらに、送信モジュールごとの電力指標のうち、予め設定された閾値以上となる送信モジュールの電力指標を出力することとしてもよい。つまり、ある程度改善可能性が高いモジュール候補に関する電力指標のみを出力する。なお、上記閾値は、例えば、図２に示したキーボード２２１やマウス２２２などの入力装置２２０をユーザが操作することで、任意に設定可能である。
【０１１２】
また、出力部３０４は、送信モジュールの電力指標と、当該送信モジュールの見積もり消費電力とを関連付けて出力することとしてもよい。具体的には、例えば、送信モジュールのモジュール名と電力指標と見積もり消費電力とを対応付けてリスト化されたテーブル表を出力する。設計者は、このテーブル表を確認することで、各送信モジュールの電力指標と見積もり消費電力とを比較評価することができる。
【０１１３】
さらに、出力部３０４は、不図示の並替部により、第２の算出部３０３によって算出された送信モジュールごとの電力指標を昇順または降順に並び替えることにより、送信モジュールごとの電力指標を昇順または降順に出力することとしてもよい。
【０１１４】
ここで、出力部３０４によって出力される出力結果の具体例について説明する。図１３は、出力結果の具体例を示す説明図である。図１３において、出力結果リスト１３００には、設計対象回路内の送信モジュールＭ１〜Ｍ１２に関する出力結果１３００−１〜１３００−１２が示されている。
【０１１５】
具体的には、出力結果１３００−１〜１３００−１２は、送信モジュールＭ１〜Ｍ１２ごとの電力指標、有効データ量および見積もり消費電力を表わしている。ここで、送信モジュールＭ５を例に挙げると、送信モジュールＭ１〜Ｍ１２のうち、消費電力３４．２９［ｍＷ］は最大にもかかわらず、電力指標１．０６［ｍＷ／ｂｉｔ］は５番目になっている。
【０１１６】
これにより、送信モジュールＭ１〜Ｍ１２の電力指標を相対的に評価することができ、低電力化の改善可能性が高いモジュール候補を特定することができる。特に、送信モジュールＭ１０は、電力指標が最大でかつ、見積もり消費電力が２番目に大きいため、無駄に多くの電力を消費している可能性が非常に高いことがわかる。
【０１１７】
（電力指標算出装置の電力指標算出処理手順）
つぎに、実施の形態１にかかる電力指標算出装置２００の電力指標算出処理手順について説明する。図１４は、電力指標算出装置の電力指標算出処理手順を示すフローチャート（その１）である。図１４のフローチャートにおいて、まず、取得部３０１により、設計対象回路内の送信モジュールの見積もり消費電力を取得したか否かを判断する（ステップＳ１４０１）。
【０１１８】
ここで、送信モジュールの見積もり消費電力を取得するのを待って（ステップＳ１４０１：Ｎｏ）、取得した場合（ステップＳ１４０１：Ｙｅｓ）、第１の算出部３０２により、送信モジュールから送信される信号のうち、送信モジュールの通信先の受信モジュールによって受信される有効データ信号のデータ量を算出する有効データ量算出処理を実行する（ステップＳ１４０２）。
【０１１９】
このあと、第２の算出部３０３により、取得部３０１によって取得された見積もり消費電力と、第１の算出部３０２によって算出された有効データ信号のデータ量とを用いて、送信モジュールでの見積もり消費電力のうち、有効データ信号の送信に費やされる消費電力に関する電力指標を算出する（ステップＳ１４０３）。
【０１２０】
最後に、出力部３０４により、第２の算出部３０３によって算出された算出結果を出力して（ステップＳ１４０４）、本フローチャートによる一連の処理を終了する。
【０１２１】
これにより、送信モジュールの見積もり消費電力のうち、有効データ信号の送信に費やされる消費電力以外の無駄電力を推定することができる。
【０１２２】
つぎに、図１４に示したステップＳ１４０２における有効データ量算出処理の具体的な処理手順について説明する。以下、クロックサイクルをクロックサイクルｊ（ｊ＝１，２，…，ｎ）と表記する。
【０１２３】
図１５は、有効データ量算出処理の処理手順の一例を示すフローチャートである。図１５のフローチャートにおいて、まず、取得部３０１により、シミュレーション結果５００と、インターフェーステーブル６００とを取得したか否かを判断する（ステップＳ１５０１）。
【０１２４】
ここで、シミュレーション結果５００とインターフェーステーブル６００とを取得するのを待って（ステップＳ１５０１：Ｎｏ）、取得した場合（ステップＳ１５０１：Ｙｅｓ）、インターフェーステーブル６００の中から、任意のモジュールインターフェースＣ１〜Ｃｔのインターフェース情報６００−１〜６００−ｔを抽出する（ステップＳ１５０２）。
【０１２５】
このあと、ｊ＝１として（ステップＳ１５０３）、つぎに、シミュレーション結果５００の中から、クロックサイクルｊの信号情報５００−１〜５００−ｎを抽出する（ステップＳ１５０４）。
【０１２６】
そして、判定部３０５により、ステップＳ１５０２，１５０４において抽出されたインターフェース情報６００−１〜６００−ｔおよび信号情報５００−１〜５００−ｎを用いて、クロックサイクルｊにおいて信号値が変化した制御信号と、制御条件に定義されている制御信号とが一致するか否かを判定する（ステップＳ１５０５）。
【０１２７】
ここで、制御信号が一致すると判定された場合（ステップＳ１５０５：Ｙｅｓ）、計数部３０６により、ステップＳ１５０２において抽出されたインターフェース情報６００−１〜６００−ｔに定義されている制御条件の成立回数を計数して（ステップＳ１５０６）、ｊをインクリメントする（ステップＳ１５０７）。一方、制御信号が一致しないと判定された場合（ステップＳ１５０５：Ｎｏ）、ステップＳ１５０７に移行する。
【０１２８】
このあと、ｊ＞ｎであるか否かを判断して（ステップＳ１５０８）、ｊ＞ｎでない場合（ステップＳ１５０８：Ｎｏ）、ステップＳ１５０４に戻って一連の処理を繰り返す。一方、ｊ＞ｎである場合（ステップＳ１５０８：Ｙｅｓ）、未抽出のインターフェース情報６００−１〜６００−ｔの有無を判断する（ステップＳ１５０９）。
【０１２９】
ここで、未抽出のインターフェース情報６００−１〜６００−ｔがある場合（ステップＳ１５０９：Ｙｅｓ）、ステップＳ１５０２に戻って一連の処理を繰り返す。
【０１３０】
一方、未抽出のインターフェース情報６００−１〜６００−ｔがない場合（ステップＳ１５０９：Ｎｏ）、第１の算出部３０２により、ステップＳ１５０６において計数された計数結果とインターフェース情報６００−１〜６００−ｔとを用いて、送信モジュールごとの有効データ信号のデータ量を算出して（ステップＳ１５１０）、図１４に示したステップＳ１４０３に移行する。
【０１３１】
なお、制御条件に複数の制御信号が定義されている場合には、ステップＳ１５０５において、すべての制御信号が一致するか否かを判定することとしてもよく、また、複数の制御信号のうちいずれかの制御信号が一致するか否かを判定することとしてもよい。
【０１３２】
つぎに、モジュールＭ１〜Ｍｍの有効データ量を収める配列変数Ｄ［１，２，…，ｍ］を用いて、有効データ信号のデータ量を算出する場合の処理手順について説明する。以下、クロックサイクルをクロックサイクルｊ（ｊ＝１，２，…，ｎ）と表記し、モジュールインターフェースをモジュールインターフェースＣｋ（ｋ＝１，２，…，ｔ）と表記する。
【０１３３】
図１６は、有効データ量算出処理の処理手順の他の一例を示すフローチャートである。図１６のフローチャートにおいて、まず、取得部３０１により、シミュレーション結果５００と、インターフェーステーブル６００とを取得したか否かを判断する（ステップＳ１６０１）。
【０１３４】
ここで、シミュレーション結果５００とインターフェーステーブル６００とを取得するのを待って（ステップＳ１６０１：Ｎｏ）、取得した場合（ステップＳ１６０１：Ｙｅｓ）、ｊ＝１、ｋ＝１とする（ステップＳ１６０２）。
【０１３５】
このあと、インターフェーステーブル６００の中から、モジュールインターフェースＣｋのインターフェース情報６００−１〜６００−ｔを抽出する（ステップＳ１６０３）。さらに、シミュレーション結果５００の中から、クロックサイクルｊの信号情報５００−１〜５００−ｎを抽出する（ステップＳ１６０４）。
【０１３６】
そして、判定部３０５により、ステップＳ１６０３，１６０４において抽出されたインターフェース情報６００−１〜６００−ｔおよび信号情報５００−１〜５００−ｎを用いて、クロックサイクルｊにおいて信号値が変化した制御信号と、制御条件に定義されている制御信号とが一致するか否かを判定する（ステップＳ１６０５）。
【０１３７】
ここで、制御信号が一致すると判定された場合（ステップＳ１６０５：Ｙｅｓ）、第１の算出部３０２により、上記式（４）または（５）を用いて、ステップＳ１６０３において抽出されたインターフェース情報６００−１〜６００−ｔから特定される送信モジュールＤｉの有効データ量の増分ｘを算出して（ステップＳ１６０６）、Ｄ［ｉ］＝Ｄ［ｉ］＋ｘとする（ステップＳ１６０７）。
【０１３８】
このあと、ｊをインクリメントして（ステップＳ１６０８）、ｊ＞ｎであるか否かを判断する（ステップＳ１６０９）。ここで、ｊ＞ｎでない場合（ステップＳ１６０９：Ｎｏ）、ステップＳ１６０４に戻って一連の処理を繰り返す。一方、ｊ＞ｎである場合（ステップＳ１６０９：Ｙｅｓ）、ｋをインクリメントして（ステップＳ１６１０）、ｋ＞ｔであるか否かを判断する（ステップＳ１６１１）。
【０１３９】
ここで、ｋ＞ｔでない場合（ステップＳ１６１１：Ｎｏ）、ステップＳ１６０３に戻って一連の処理を繰り返す。一方、ｋ＞ｔである場合（ステップＳ１６１１：Ｙｅｓ）、図１４に示したステップＳ１４０３に移行する。
【０１４０】
なお、制御条件が連続するクロックサイクルｊ−１，ｊで成立する場合、ステップＳ１６０５のあとに、クロックサイクルｊ−１に送受信される有効データ信号の信号値とクロックサイクルｊに送受信される有効データ信号の信号値とが一致するか否かを判定することとしてもよい。この場合、信号値が一致しないと判定された場合にステップＳ１６０６に移行し、一方、信号値が一致すると判定された場合にはステップＳ１６０８に移行する。
【０１４１】
以上説明したように、実施の形態１によれば、設計対象回路内のモジュールの見積もり消費電力のうち、モジュール間のデータ通信に費やされる消費電力以外の無駄電力を推定可能な電力指標を算出することができる。具体的には、モジュール間でやり取りされる有効データ信号のデータ量を用いて電力指標を表現することができる。
【０１４２】
これにより、回路動作を詳細に理解していなくとも、無駄に多くの電力を消費している可能性が高いモジュール候補を客観的に判断することができる。この結果、低電力化の改善可能性が高いモジュール候補を改善対象とする効率的かつ効果的な電力改善作業を実現し、作業負担の軽減化および設計期間の短縮化を図ることができる。
【０１４３】
（実施の形態２）
つぎに、実施の形態２の概要について説明する。実施の形態１では、各モジュールＭ１〜Ｍｍの有効データ信号のデータ量を用いて電力指標を算出することとしたが、実施の形態２では、各モジュールＭ１〜Ｍｍのエントロピーを用いて電力指標を算出する。なお、実施の形態１において説明した箇所と同一箇所については、同一符号を付して説明を省略する。
【０１４４】
まず、実施の形態２の概要について説明する。図１７は、モジュールの外部入出力信号の一例を示す説明図である。図１７において、モジュールＭは、複数の論理ゲートＧ１〜Ｇ６からなる組み合わせ回路である。図１７中、ＩＰａ〜ＩＰｅはモジュールＭに入力される外部入力信号であり、ＯＰａ〜ＯＰｄはモジュールＭから出力される外部出力信号である。
【０１４５】
実施の形態２では、モジュールＭの電力指標を、任意のシミュレーション期間においてモジュールＭから出力される出力データ量の期待値を表わすエントロピーを用いて表現する。モジュールＭのエントロピーは、シミュレーション期間において外部出力信号ＯＰａ〜ＯＰｄの信号値が遷移（０→１、１→０）する遷移確率から求めることができる。
【０１４６】
ここで、モジュールＭの消費電力と、外部出力信号ＯＰａ〜ＯＰｄの信号値の遷移との関係は、シミュレーション期間中の外部出力信号ＯＰａ〜ＯＰｄの信号値の遷移が多くなるにつれて、モジュールＭの消費電力が大きくなる。また、外部出力信号ＯＰａ〜ＯＰｄの信号値の遷移が多くなるにつれて、エントロピーが高くなる。以上のことから、モジュールＭのエントロピーが高くなるにつれて、モジュールＭの消費電力が大きくなることがいえる。
【０１４７】
そこで、実施の形態２では、モジュールＭの見積もり消費電力をエントロピーで除算した値を電力指標として算出する。この電力指標が大きいほど電力的な無駄が多いことを意味しており、一方、この電力指標が小さいほど電力的な無駄が少ないことを意味している。電力改善作業者は、設計対象回路内のモジュールごとの電力指標を相対的に評価して、低電力化の改善可能性が高いモジュール候補を特定することにより、効率的かつ効果的な電力改善をおこなうことができる。
【０１４８】
以下、実施の形態２にかかる電力指標算出装置２００の制御部（取得部３０１〜計数部３０６）の具体的な処理内容について説明する。まず、第１の算出部３０２は、任意のシミュレーション期間におけるモジュールから出力される外部出力信号ごとの遷移確率に基づいて、モジュールから出力されるデータ量の期待値を表わすエントロピーを算出する。
【０１４９】
外部出力信号の遷移確率とは、任意のシミュレーション期間中に外部出力信号の信号値が「１→０」または「０→１」に遷移する確率である。この遷移確率は、任意の確率密度関数を用いて表現可能である。なお、第１の算出部３０２の具体的な処理内容については後述する。
【０１５０】
また、上記シミュレーション期間は、例えば、図２に示したキーボード２２１やマウス２２２などの入力装置２２０をユーザが操作することで、任意に設定可能である。より具体的には、例えば、シミュレーション期間中の任意のクロックサイクルを指定することで、任意のシミュレーション期間を設定することができる。
【０１５１】
第２の算出部３０３は、取得部３０１によって取得された見積もり消費電力と、第１の算出部３０２によって算出されたエントロピーとを用いて、モジュールの見積もり消費電力のうち、外部出力に費やされる消費電力に関する電力指標を算出する。
【０１５２】
この電力指標は、実施の形態１で説明したように、モジュールの仕事量がそのモジュールの見積もり消費電力に見合ったものであるか否かを判断するための指標である。具体的には、例えば、第２の算出部３０３は、下記式（６）を用いて、モジュールごとの電力指標を算出することができる。ただし、モジュールＭｉの見積もり消費電力をＰｉ、エントロピーをＨｉ、電力指標をＸｉとする。
【０１５３】
Ｘｉ＝Ｐｉ／Ｈｉ            …（６）
【０１５４】
この電力指標Ｘｉが大きいほど（エントロピーＨｉが低い）、見積もり消費電力Ｐｉのうち、外部出力に費やされる消費電力が小さくなることを意味している。換言すると、電力指標Ｘｉが大きいほど、モジュールＭｉにおける電力的な無駄が多いことを意味している。
【０１５５】
一方、この電力指標Ｘｉが小さいほど（エントロピーＨｉが高い）、見積もり消費電力Ｐｉのうち、外部出力に費やされる消費電力が大きくなることを意味している。換言すると、電力指標Ｘｉが小さいほど、モジュールＭｉにおける電力的な無駄が少ないことを意味している。
【０１５６】
これらのことから、電力指標Ｘｉが大きいモジュールＭｉを低電力化の改善対象とすることで、消費電力の大幅な削減効果を期待することができ、効率的かつ効果的な電力改善をおこなうことができる。
【０１５７】
つぎに、実施の形態２にかかる第１の算出部３０２の具体的な処理内容について説明する。ここでは、各クロックサイクルにおいて信号値が変化した外部出力信号を表わすシミュレーション結果と、各モジュールから出力される外部出力信号を定義するインターフェーステーブルとを用いて、モジュールのエントロピーを求める。
【０１５８】
具体的には、まず、判定部３０５は、シミュレーション結果およびインターフェース情報に基づいて、任意のシミュレーション期間内のクロックサイクルごとに、当該クロックサイクルにおいて信号値が遷移した外部出力信号と、モジュールから出力される外部出力信号とが一致するか否かを判定する。
【０１５９】
ここで、実施の形態２にかかるシミュレーション結果およびインターフェース情報について説明する。図１８は、シミュレーション結果の具体例を示す説明図（その２）である。図１８において、シミュレーション結果１８００は、アプリケーションの動作時に信号値が変化した外部出力信号を表わす信号情報１８００−１〜１８００−ｎを有している。
【０１６０】
具体的には、信号情報１８００−１〜１８００−ｎには、クロックサイクル１〜ｎごとに、該クロックサイクル１〜ｎにおいて信号値が遷移（変化）した外部出力信号の信号名が示されている。ここで、信号情報１８００−１を例に挙げると、クロックサイクル１において外部出力信号ＯＰ１，ＯＰ３の信号値が遷移したことを示している。
【０１６１】
図１９は、インターフェーステーブルの具体例を示す説明図（その２）である。図１９において、インターフェーステーブル１９００は、モジュールＭ１〜Ｍｍごとに、該モジュールＭ１〜Ｍｍから出力される外部出力信号ＯＰ１〜ＯＰｘの信号名を定義するインターフェース情報１９００−１〜１９００−ｍを有している。ここで、インターフェース情報１９００−１を例に挙げると、モジュールＭ１から出力される外部出力信号ＯＰ１，ＯＰ２，ＯＰ３が定義されている。
【０１６２】
この場合、判定部３０５は、まず、シミュレーション結果１８００から任意のクロックサイクルｊ（ｊ＝１，２，…，ｎ）の信号情報１８００−ｊを抽出する。そして、信号名を手掛かりに信号情報１８００−ｊを参照して、クロックサイクルｊにおいて信号値が遷移した外部出力信号を特定する。
【０１６３】
このあと、信号名を手掛かりにインターフェーステーブル１９００を参照して、各モジュールＭ１〜Ｍｍの外部出力信号ＯＰ１〜ＯＰｘと、特定された外部出力信号との一致判定をおこなう。これにより、クロックサイクルｊにおいて信号値が遷移した外部出力信号が、どのモジュールＭ１〜Ｍｍから出力された外部出力信号ＯＰ１〜ＯＰｘなのかを認識することができる。
【０１６４】
例えば、信号情報１８００−１とインターフェース情報１９００−１から、クロックサイクル１において、モジュールＭ１から出力された外部出力信号ＯＰ１，ＯＰ３の信号値が遷移したことを認識することができる。なお、上記判定処理は、シミュレーション結果１８００から抽出されていない未抽出の信号情報１８００−１〜１８００−ｎがなくなるまで繰り返し実行される。
【０１６５】
また、計数部３０６は、判定部３０５によって一致すると判定された場合、各モジュールの外部出力信号の遷移回数を計数する機能を有する。ここで、計数部３０６による計数結果を記憶する計数結果テーブルについて説明する。図２０は、計数結果テーブルの具体例を示す説明図である。
【０１６６】
図２０において、計数結果テーブル２０００には、モジュールＭ１〜Ｍｍから出力される外部出力信号ＯＰ１〜Ｏｐｘごとに、シミュレーション期間中（クロックサイクル１〜ｎ）に遷移した遷移回数が記憶されている。ここで、モジュールＭ１の外部出力信号ＯＰ１を例に挙げると、シミュレーション期間中に遷移した遷移回数はＮ１回である。
【０１６７】
つぎに、第１の算出部３０２は、計数部３０６によって計数された計数結果を用いて、モジュールから出力される外部出力信号ごとの遷移確率を算出する。具体的には、例えば、下記式（７）を用いて、外部出力信号の遷移確率を求めることができる。ただし、ｐk（Ｘ）は外部出力信号ＯＰｋの遷移確率（Ｘ：パラメータ、ｋ＝１，２，…，ｘ）、Ｎｋは外部出力信号ＯＰｋの遷移回数、Ｔはシミュレーション時間である。
【０１６８】
ｐk（Ｘ）＝Ｎｋ／Ｔ        …（７）
【０１６９】
ここで、シミュレーション期間をクロックサイクル１からクロックサイクル１０とし、そのシミュレーション時間を「１０」と表現する。この場合、例えば、計数結果テーブル２０００を参照して、外部出力信号ＯＰ１の遷移回数Ｎ１を上記式（７）に代入すると、外部出力信号ＯＰ１の遷移確率『ｐ1（Ｘ）＝Ｎ１／１０』を求めることができる。
【０１７０】
つぎに、第１の算出部３０２は、モジュールから出力される外部出力信号ごとの遷移確率を用いて、そのモジュールのエントロピーを算出する。具体的には、例えば、下記式（８）を用いてモジュールＭｉのエントロピーＨｉを求めることができる（ｉ＝１，２，…，ｍ）。ただし、ＫはモジュールＭｉから出力される外部出力信号を識別する数字を示している。
【０１７１】
【数１】
0005374937.tif 000002
【０１７２】
一例として、上記式（８）を用いてモジュールＭ１のエントロピーＨ１を求めると、外部出力信号ＯＰ１〜ＯＰ３について和をとることにより『Ｈ１＝−ｐ1（Ｘ）・ｌｏｇ2（Ｐ1（Ｘ））−ｐ2（Ｘ）・ｌｏｇ2（ｐ2（Ｘ））−ｐ3（Ｘ）・ｌｏｇ2（ｐ3（Ｘ））』となる。
【０１７３】
ここで、第１の算出部３０２による算出結果を記憶するエントロピーテーブルについて説明する。ここでは、任意のシミュレーション期間をクロックサイクル１〜クロックサイクル１０までの１０サイクル（シミュレーション時間：Ｔ＝１０）として、モジュールＭ２のエントロピーＨ２を求めた場合を例に挙げて説明する。
【０１７４】
図２１〜図２５は、エントロピーテーブルの記憶内容を示す説明図である。図２１〜図２５において、エントロピーテーブル２１００〜２５００には、モジュールＭ２から出力される外部出力信号ＯＰ４〜ＯＰ７ごとの遷移確率『ｐ（Ｘ）』、中間データ『−ｐ（Ｘ）・ｌｏｇ2ｐ（Ｘ）』、およびモジュールＭ２のエントロピーＨ２が記憶されている。
【０１７５】
まず、エントロピーテーブル２１００には、外部出力信号ＯＰ４〜ＯＰ７のうち、外部出力信号ＯＰ７の遷移回数が偏って多い場合のエントロピーＨ２が記憶されている。具体的には、外部出力信号ＯＰ４〜ＯＰ６の遷移回数が１回、外部出力信号ＯＰ７の遷移回数が９回となっている。また、このときのエントロピーＨ２は「１．１０」である。
【０１７６】
つぎに、エントロピーテーブル２２００には、外部出力信号ＯＰ４〜ＯＰ７のうち、外部出力信号ＯＰ５の遷移回数が偏って少ない場合のエントロピーＨ２が記憶されている。具体的には、外部出力信号ＯＰ４，ＯＰ６，ＯＰ７の遷移回数が９回、外部出力信号ＯＰ５の遷移回数が１回となっている。また、このときのエントロピーＨ２は「０．７」である。
【０１７７】
つぎに、エントロピーテーブル２３００には、外部出力信号ＯＰ４〜ＯＰ７の遷移回数がばらついた場合のエントロピーＨ２が記憶されている。具体的には、外部出力信号ＯＰ４〜ＯＰ７の遷移回数がそれぞれ６回、２回、３回、９回となっている。また、このときのエントロピーＨ２は「１．６」である。
【０１７８】
つぎに、エントロピーテーブル２４００には、外部出力信号ＯＰ４〜ＯＰ７の遷移回数が同じ場合のエントロピーＨ２が記憶されている。具体的には、外部出力信号ＯＰ４〜ＯＰ７の遷移回数がすべて５回となっている。また、このときのエントロピーＨ２は「２．０」である。
【０１７９】
最後に、エントロピーテーブル２５００には、外部出力信号ＯＰ４〜ＯＰ７の遷移回数が同じ場合のエントロピーＨ２が記憶されている。具体的には、外部出力信号ＯＰ４〜ＯＰ７の遷移回数がすべて９回となっている。また、このときのエントロピーＨ２は「０．５５」である。
【０１８０】
これらエントロピーテーブル２１００〜２５００によれば、すべての外部出力信号ＯＰ４〜ＯＰ７が平均的に遷移する場合にエントロピーＨ２が最大となっている（エントロピーテーブル２４００参照）。一方で、外部出力信号ＯＰ４〜ＯＰ７の遷移が偏った場合やばらついている場合にはエントロピーＨ２は低くなっている（エントロピーテーブル２１００〜２３００参照）。
【０１８１】
なお、「平均的」とは、同一の遷移をすればよいということではなく、遷移確率に偏りがないことを意味している。すなわち、１０回中５回の遷移があるような平均的な遷移が、すべての外部出力信号ＯＰ４〜ＯＰ７に起こると、遷移確率に偏りがないのでエントロピーＨ２は高くなる。
【０１８２】
一方、１０回中９回の遷移が、すべての外部出力信号ＯＰ４〜ＯＰ７に起こると、遷移する側に遷移確率が偏るため、結果としてエントロピーＨ２は低くなる（エントロピーテーブル２５００参照。）。要するに、「平均的」とは、遷移するときと遷移しないときの遷移確率が偏っていないことを意味しており、すべての外部出力信号ＯＰ４〜ＯＰ７の遷移確率が同じであるという意味ではない。
【０１８３】
また、モジュールＭ２の電力指標Ｘ２は、見積もり消費電力Ｐ２をエントロピーＨ２で除算した値となる。このため、上述した例では、エントロピーＨ２が最大となる外部出力信号ＯＰ４〜ＯＰ７の遷移回数がすべて同じ５回の場合に、電力指標Ｘ２『Ｘ２＝Ｐ２／２．０』が最小となり、電力的な無駄が少なくなる。一方、エントロピーＸ２が最小となる外部出力信号ＯＰ４〜ＯＰ７の遷移回数がすべて同じ９回の場合に、電力指標Ｘ２『Ｘ２＝Ｐ２／０．５５』が最大となり、電力的な無駄が多くなる。
【０１８４】
（電力指標算出装置の電力指標算出処理手順）
つぎに、実施の形態２にかかる電力指標算出装置２００の電力指標算出処理手順について説明する。ここでは、任意のシミュレーション期間として、クロックサイクル１〜クロックサイクルｎが予め設定されていることとする。
【０１８５】
図２６は、電力指標算出装置の電力指標算出処理手順を示すフローチャート（その２）である。図２６のフローチャートにおいて、まず、取得部３０１により、設計対象回路内のモジュールＭ１〜Ｍｍの見積もり消費電力Ｐ１〜Ｐｍ（たとえば、消費電力リスト４００）を取得したか否かを判断する（ステップＳ２６０１）。
【０１８６】
ここで、見積もり消費電力Ｐ１〜Ｐｍを取得するのを待って（ステップＳ２６０１：Ｎｏ）、取得した場合（ステップＳ２６０１：Ｙｅｓ）、第１の算出部３０２により、クロックサイクル１〜クロックサイクルｎにおけるモジュールＭ１〜Ｍｍから出力される外部出力信号ごとの遷移確率に基づいて、モジュールＭ１〜ＭｍのエントロピーＨ１〜Ｈｍを算出するエントロピー算出処理を実行する（ステップＳ２６０２）。
【０１８７】
このあと、第２の算出部３０３により、取得部３０１によって取得された見積もり消費電力Ｐ１〜Ｐｍと、第１の算出部３０２によって算出されたエントロピーＨ１〜Ｈｍとを用いて、各モジュールＭ１〜Ｍｍの見積もり消費電力Ｐ１〜Ｐｍのうち、外部出力に費やされる消費電力に関する電力指標Ｘ１〜Ｘｍを算出する（ステップＳ２６０３）。
【０１８８】
最後に、出力部３０４により、第２の算出部３０３によって算出された各モジュールＭ１〜Ｍｍの電力指標Ｘ１〜Ｘｍを出力して（ステップＳ２６０４）、本フローチャートによる一連の処理を終了する。
【０１８９】
つぎに、図２６に示したステップＳ２６０２におけるエントロピー算出処理の具体的な処理手順について説明する。以下、クロックサイクルをクロックサイクルｊ（ｊ＝１，２，…，ｎ）と表記する。
【０１９０】
図２７は、エントロピー算出処理の処理手順の一例を示すフローチャートである。図２７のフローチャートにおいて、まず、取得部３０１により、シミュレーション結果１８００と、インターフェーステーブル１９００とを取得したか否かを判断する（ステップＳ２７０１）。
【０１９１】
ここで、シミュレーション結果１８００とインターフェーステーブル１９００とを取得するのを待って（ステップＳ２７０１：Ｎｏ）、取得した場合（ステップＳ２７０１：Ｙｅｓ）、各モジュールＭ１〜Ｍｍの外部出力信号ＯＰ１〜ＯＰｘの遷移回数Ｎ１〜Ｎｘを記憶する計数結果テーブル２０００を作成する（ステップＳ２７０２）。なお、この時点では、計数結果テーブル２０００内の各遷移回数Ｎ１〜Ｎｘは０で初期化されている。
【０１９２】
このあと、ｊ＝１として（ステップＳ２７０３）、シミュレーション結果１８００の中からクロックサイクルｊの信号情報５００−ｊを抽出する（ステップＳ２７０４）。そして、判定部３０５により、信号情報５００−ｊおよびインターフェーステーブル１９００に基づいて、クロックサイクルｊにおいて信号値が遷移した外部出力信号と、各モジュールＭ１〜Ｍｍの外部出力信号ＯＰ１〜ＯＰｘとの一致判定をおこなう（ステップＳ２７０５）。
【０１９３】
つぎに、計数部３０６により、ステップＳ２７０２において作成された計数結果テーブル２０００のうち、一致すると判定された外部出力信号の遷移回数をインクリメントする（ステップＳ２７０６）。このあと、ｊをインクリメントして（ステップＳ２７０７）、ｊ＞ｎか否かを判断する（ステップＳ２７０８）。
【０１９４】
ここで、ｊ≦ｎの場合（ステップＳ２７０８：Ｎｏ）、ステップＳ２７０４に戻る。一方、ｊ＞ｎの場合（ステップＳ２７０８：Ｙｅｓ）、第１の算出部３０２により、計数結果テーブル２０００の記憶内容を用いて、各モジュールＭ１〜Ｍｍから出力される外部出力信号ＯＰ１〜ＯＰｘごとの遷移確率を算出することで、エントロピーＨ１〜Ｈｍを算出し（ステップＳ２７０９）、図２６に示したステップＳ２６０３に移行する。
【０１９５】
以上説明したように、実施の形態２によれば、設計対象回路内のモジュールの見積もり消費電力のうち外部出力に費やされる消費電力以外の無駄電力を推定可能な電力指標を算出することができる。具体的には、任意のシミュレーション期間において各モジュールから出力される出力データ量の期待値を表わすエントロピーを用いて電力指標を表現することができる。
【０１９６】
これにより、回路動作を詳細に理解していなくとも、無駄に多くの電力を消費している可能性が高いモジュール候補を客観的に判断することができる。この結果、低電力化の改善可能性が高いモジュール候補を改善対象とする効率的かつ効果的な電力改善作業を実現し、作業負担の軽減化および設計期間の短縮化を図ることができる。
【０１９７】
なお、実施の形態１，２で説明した電力指標算出方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１９８】
また、実施の形態１，２で説明した電力指標算出装置２００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、例えば、上述した電力指標算出装置２００の機能３０１〜３０６をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、電力指標算出装置２００を製造することができる。
【０１９９】
上述した実施の形態１，２に関し、さらに以下の付記を開示する。
【０２００】
（付記１）コンピュータを、
設計対象回路内のモジュールごとの見積もり消費電力量を取得する取得手段、
任意のシミュレーション期間における前記モジュールから出力される外部出力信号ごとの遷移確率に基づいて、前記モジュールから出力されるデータ量の期待値を表わすエントロピーを算出する第１の算出手段、
前記取得手段によって取得された見積もり消費電力と、前記第１の算出手段によって算出されたエントロピーとを用いて、前記見積もり消費電力量のうち、外部出力に費やされる消費電力に関する電力指標を算出する第２の算出手段、
前記第２の算出手段によって算出された算出結果を出力する出力手段、
として機能させることを特徴とする電力指標算出プログラム。
【０２０１】
（付記２）前記取得手段は、
クロックサイクルごとに、当該クロックサイクルにおいて信号値が遷移した外部出力信号を表わすシミュレーション結果と、前記モジュールごとに、当該モジュールから出力される外部出力信号を定義するインターフェーステーブルとを取得し、
前記第１の算出手段は、
前記取得手段によって取得されたシミュレーション結果とインターフェーステーブルとに基づいて、前記エントロピーを算出することを特徴とする付記１に記載の電力指標算出プログラム。
【０２０２】
（付記３）前記コンピュータを、
前記任意のシミュレーション期間内のクロックサイクルごとに、当該クロックサイクルにおいて信号値が遷移した外部出力信号と、前記モジュールから出力される外部出力信号とが一致するか否かを判定する判定手段、
前記判定手段によって一致すると判定された場合、前記外部出力信号の遷移回数を計数する計数手段として機能させ、
前記第１の算出手段は、
前記計数手段によって計数された計数結果を用いて前記モジュールから出力される外部出力信号ごとの遷移確率を算出することにより、前記エントロピーを算出することを特徴とする付記２に記載の電力指標算出プログラム。
【０２０３】
（付記４）前記第１の算出手段は、
前記モジュールから送信される信号のうち、前記モジュールの通信先のモジュールによって受信される有効データ信号のデータ量を算出し、
前記第２の算出手段は、
前記取得手段によって取得された見積もり消費電力と、前記第１の算出手段によって算出された有効データ信号のデータ量とを用いて、前記見積もり消費電力のうち、前記有効データ信号の送信に費やされる消費電力に関する電力指標を算出することを特徴とする付記１〜３のいずれか一つに記載の電力指標算出プログラム。
【０２０４】
（付記５）前記取得手段は、
クロックサイクルごとに、当該クロックサイクルにおいて信号値が変化した制御信号を表わすシミュレーション結果と、モジュールインターフェースごとに、前記モジュール間のデータ通信が成立する制御条件を定義するインターフェーステーブルとを取得し、
前記第１の算出手段は、
前記取得手段によって取得されたシミュレーション結果とインターフェーステーブルとに基づいて、前記有効データ信号のデータ量を算出することを特徴とする付記４に記載の電力指標算出プログラム。
【０２０５】
（付記６）前記判定手段は、
前記モジュールインターフェースごとに、一つまたは複数のクロックサイクルにおいて信号値が変化した制御信号と、前記制御条件に定義されている制御信号とが一致するか否かを判定し、
前記計数手段は、
前記判定手段によって前記制御信号が一致すると判定された場合、前記制御条件の成立回数を計数し、
前記第１の算出手段は、
前記計数手段によって計数された計数結果と、前記制御条件の成立時に前記モジュール間で送受信される有効データ信号のビット数とを用いて、前記有効データ信号のデータ量を算出することを特徴とする付記５に記載の電力指標算出プログラム。
【０２０６】
（付記７）前記第１の算出手段は、
さらに、前記モジュール間で送受信される有効データ信号の重要度を用いて、前記モジュールの有効データ信号のデータ量を算出することを特徴とする付記６に記載の電力指標算出プログラム。
【０２０７】
（付記８）前記判定手段は、
前記制御条件に複数の制御信号が定義されている場合、前記信号値が変化した制御信号と、前記複数の制御信号のうちいずれかの制御信号とが一致するか否かを判定することを特徴とする付記６または７に記載の電力指標算出プログラム。
【０２０８】
（付記９）前記判定手段は、
前記制御条件が連続する第１および第２のクロックサイクルで成立する場合、前記第１のクロックサイクルに送受信される有効データ信号の信号値と前記第２のクロックサイクルに送受信される有効データ信号の信号値とが一致するか否かを判定し、
前記計数手段は、
前記判定手段によって前記信号値が一致しないと判定された場合、前記制御条件の成立回数を計数することを特徴とする付記６〜８のいずれか一つに記載の電力指標算出プログラム。
【０２０９】
（付記１０）前記出力手段は、
前記設計対象回路内のモジュールごとの電力指標を出力することを特徴とする付記１〜９のいずれか一つに記載の電力指標算出プログラム。
【０２１０】
（付記１１）前記出力手段は、
前記モジュールの電力指標と、当該モジュールの見積もり消費電力とを関連付けて出力することを特徴とする付記１〜１０のいずれか一つに記載の電力指標算出プログラム。
【０２１１】
（付記１２）前記第２の算出手段によって算出されたモジュールごとの電力指標を昇順または降順に並び替える並替手段を前記コンピュータに実行させ、
前記出力手段は、
前記並替手段によって並び替えられた結果、前記モジュールごとの電力指標を昇順または降順に出力することを特徴とする付記１０または１１に記載の電力指標算出プログラム。
【０２１２】
（付記１３）付記１〜１２のいずれか一つに記載の電力指標算出プログラムを記録したコンピュータに読み取り可能な記録媒体。
【０２１３】
（付記１４）設計対象回路内のモジュールごとの見積もり消費電力量を取得する取得手段と、
任意のシミュレーション期間における前記モジュールから出力される外部出力信号ごとの遷移確率に基づいて、前記モジュールから出力されるデータ量の期待値を表わすエントロピーを算出する第１の算出手段と、
前記取得手段によって取得された見積もり消費電力と、前記第１の算出手段によって算出されたエントロピーとを用いて、前記見積もり消費電力量のうち、外部出力に費やされる消費電力に関する電力指標を算出する第２の算出手段と、
前記第２の算出手段によって算出された算出結果を出力する出力手段と、
を備えることを特徴とする電力指標算出装置。
【０２１４】
（付記１５）制御手段および記憶手段を備えるコンピュータが、
前記制御手段により、設計対象回路内のモジュールごとの見積もり消費電力量を取得する取得工程と、
前記制御手段により、任意のシミュレーション期間における前記モジュールから出力される外部出力信号ごとの遷移確率に基づいて、前記モジュールから出力されるデータ量の期待値を表わすエントロピーを算出する第１の算出工程と、
前記制御手段により、前記取得工程によって取得された見積もり消費電力と、前記第１の算出工程によって算出されたエントロピーとを用いて、前記見積もり消費電力量のうち、外部出力に費やされる消費電力に関する電力指標を算出する第２の算出工程と、
前記制御手段により、前記第２の算出工程によって算出された算出結果を出力する出力工程と、
を実行することを特徴とする電力指標算出方法。
【図面の簡単な説明】
【０２１５】
【図１】モジュールで消費される電力の概要を示す説明図である。
【図２】電力指標算出装置のハードウェア構成を示す説明図である。
【図３】電力指標算出装置の機能的構成を示すブロック図である。
【図４】消費電力リストの具体例を示す説明図である。
【図５】シミュレーション結果の具体例を示す説明図（その１）である。
【図６】インターフェーステーブルの具体例を示す説明図（その１）である。
【図７】モジュール間のデータ通信の概要を示す説明図である。
【図８】有効データ信号の具体例を示す説明図（その１）である。
【図９】有効データ信号の具体例を示す説明図（その２）である。
【図１０】有効データ信号の具体例を示す説明図（その３）である。
【図１１】第１の算出部の算出結果の具体例を示す説明図である。
【図１２】モニタ回路の一例を示す説明図である。
【図１３】出力結果の具体例を示す説明図である。
【図１４】電力指標算出装置の電力指標算出処理手順を示すフローチャート（その１）である。
【図１５】有効データ量算出処理の処理手順の一例を示すフローチャートである。
【図１６】有効データ量算出処理の処理手順の他の一例を示すフローチャートである。
【図１７】モジュールの外部入出力信号の一例を示す説明図である。
【図１８】シミュレーション結果の具体例を示す説明図（その２）である。
【図１９】インターフェーステーブルの具体例を示す説明図（その２）である。
【図２０】計数結果テーブルの具体例を示す説明図である。
【図２１】エントロピーテーブルの記憶内容を示す説明図（その１）である。
【図２２】エントロピーテーブルの記憶内容を示す説明図（その２）である。
【図２３】エントロピーテーブルの記憶内容を示す説明図（その３）である。
【図２４】エントロピーテーブルの記憶内容を示す説明図（その４）である。
【図２５】エントロピーテーブルの記憶内容を示す説明図（その５）である。
【図２６】電力指標算出装置の電力指標算出処理手順を示すフローチャート（その２）である。
【図２７】エントロピー算出処理の処理手順の一例を示すフローチャートである。
【符号の説明】
【０２１６】
２００  電力指標算出装置
３０１  取得部
３０２  第１の算出部
３０３  第２の算出部
３０４  出力部
３０５  判定部
３０６  計数部
４００  消費電力リスト
４００−１〜４００−ｍ  消費電力情報
５００  シミュレーション結果
５００−１〜５００−ｎ  信号情報
６００  インターフェーステーブル
６００−１〜６００−ｔ  インターフェース情報
１１００  有効データ量リスト
１１００−１〜１１００−ｍ  算出結果
１２００  設計対象回路
１２１０  モニタ回路
１２１１  判定回路
１２１２  カウンタ回路
１３００  出力結果リスト
１３００−１〜１３００−１２  出力結果
【図１】
0005374937.tif 000003
【図２】
0005374937.tif 000004
【図３】
0005374937.tif 000005
【図４】
0005374937.tif 000006
【図５】
0005374937.tif 000007
【図６】
0005374937.tif 000008
【図７】
0005374937.tif 000009
【図８】
0005374937.tif 000010
【図９】
0005374937.tif 000011
【図１０】
0005374937.tif 000012
【図１１】
0005374937.tif 000013
【図１２】
0005374937.tif 000014
【図１３】
0005374937.tif 000015
【図１４】
0005374937.tif 000016
【図１５】
0005374937.tif 000017
【図１６】
0005374937.tif 000018
【図１７】
0005374937.tif 000019
【図１８】
0005374937.tif 000020
【図１９】
0005374937.tif 000021
【図２０】
0005374937.tif 000022
【図２１】
0005374937.tif 000023
【図２２】
0005374937.tif 000024
【図２３】
0005374937.tif 000025
【図２４】
0005374937.tif 000026
【図２５】
0005374937.tif 000027
【図２６】
0005374937.tif 000028
【図２７】
0005374937.tif 000029