(57)【要約】【課題】レジスタ転送レベルの検証環境における電力パラメータの抽出を可能にすることにより、回路の消費電力の見積もりを支援すること。【解決手段】電力見積支援装置１００は、マッピング情報１０１を参照して、ネットリストＮＬ上の観測信号を出力する第１のセルを起点として前段のセルを順次辿ることにより、ＲＴＬ設計データＲＤの信号と対応関係を有するネットリストＮＬの信号が入力される第２のセルを検出する。電力見積支援装置１００は、検出した第２のセルから第１のセルまでの部分回路をネットリストＮＬの中から抽出することにより、ＲＴＬ設計データＲＤとネットリストＮＬとの差分を表す差分回路情報を作成する。電力見積支援装置１００は、第２のセルに入力されるネットリストＮＬの信号と対応関係を有するＲＴＬ設計データＲＤの信号の信号名と、第２のセルとを対応付けて表す信号情報を作成する。【選択図】図１
2014016830.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得し、
前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択し、
取得した前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第１のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第２のセルを検出し、
検出した前記第２のセルから前記第１のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成し、
前記第２のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第２のセルとを対応付けて表す信号情報を作成し、
作成した前記差分回路情報と前記信号情報とを関連付けて出力する、
処理を実行させることを特徴とする電力見積支援プログラム。
【請求項２】
前記コンピュータに、
前記観測信号の信号名と、前記観測信号を出力する前記第１のセルとを対応付けて表す観測信号情報を作成する処理を実行させ、
前記出力する処理は、
作成した前記観測信号情報と前記差分回路情報と前記信号情報とを関連付けて出力することを特徴とする請求項１に記載の電力見積支援プログラム。
【請求項３】
前記選択する処理は、
前記ネットリストの中から、供給先へのクロック信号の供給を一時的に停止するセルから出力される信号を前記観測信号として選択することを特徴とする請求項２に記載の電力見積支援プログラム。
【請求項４】
前記コンピュータに、
前記ネットリスト内の出力端子群の中から、前記対象回路のクロックソースから辿ることができる出力端子群を抽出する処理を実行させ、
前記選択する処理は、
抽出した前記出力端子群のうち、出力される信号の信号値が変化する単位時間当たりの回数が互いに異なる値となる出力端子から出力される信号を前記観測信号として選択することを特徴とする請求項２または３に記載の電力見積支援プログラム。
【請求項５】
前記選択する処理は、
前記ネットリスト内の出力端子群のうち、抽出した前記出力端子群を除く残余の出力端子群のいずれかの出力端子から出力される信号を前記観測信号として選択することを特徴とする請求項４に記載の電力見積支援プログラム。
【請求項６】
前記コンピュータに、
前記信号情報と前記観測信号情報とに基づいて、前記設計情報と、前記差分回路情報とを、テストベンチに与えて前記対象回路の論理シミュレーションを実行することにより、前記観測信号の信号値の変化を計測した計測結果を含む前記論理シミュレーションの実行結果を取得し、
取得した前記実行結果を出力する、
処理を実行させることを特徴とする請求項２〜５のいずれか一つに記載の電力見積支援プログラム。
【請求項７】
消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得する取得部と、
前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択する選択部と、
前記取得部によって取得された前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第１のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第２のセルを検出する検出部と、
前記検出部によって検出された前記第２のセルから前記第１のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成する第１の作成部と、
前記第２のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第２のセルとを対応付けて表す信号情報を作成する第２の作成部と、
前記第１の作成部によって作成された前記差分回路情報と前記第２の作成部によって作成された前記信号情報とを関連付けて出力する出力部と、
を有することを特徴とする電力見積支援装置。
【請求項８】
コンピュータが、
消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得し、
前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択し、
取得した前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第１のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第２のセルを検出し、
検出した前記第２のセルから前記第１のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成し、
前記第２のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第２のセルとを対応付けて表す信号情報を作成し、
作成した前記差分回路情報と前記信号情報とを関連付けて出力する、
処理を実行することを特徴とする電力見積支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電力見積支援プログラム、電力見積支援装置および電力見積支援方法に関する。
【背景技術】
【０００２】
従来、ゲートレベルを対象として被評価回路の消費電力を見積もる場合、例えば、消費電力の見積りに必要となる電力パラメータを抽出するために、論理合成後のネットリストやレイアウト後のネットリストを用いた機能検証が行われる。
【０００３】
関連する先行技術としては、例えば、エミュレータやＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）ボードを用いて、電力用の観測ポイントのデータを抽出するものがある。また、対象回路内の観測対象の信号をグルーピングして、複数の観測対象の動作回数を算出する計測回路を採用する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１０２３３７号公報
【特許文献２】特開２００９−５３７４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、消費電力の見積りに必要となる電力パラメータを抽出するために、被評価回路のネットリストを用いた機能検証を行う場合、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）の検証環境では正常に動作しない場合がある。また、被評価回路のゲートレベルでの機能検証を行うための検証環境を新たに構築する場合は検証者の作業負荷が増大するという問題がある。
【０００６】
本発明は、上述した従来技術による問題点を解消するため、レジスタ転送レベルの検証環境における電力パラメータの抽出を可能にすることにより、回路の消費電力の見積もりを支援することができる電力見積支援プログラム、電力見積支援装置および電力見積支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得し、前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択し、取得した前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第１のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第２のセルを検出し、検出した前記第２のセルから前記第１のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成し、前記第２のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第２のセルとを対応付けて表す信号情報を作成し、作成した前記差分回路情報と前記信号情報とを関連付けて出力する電力見積支援プログラム、電力見積支援装置および電力見積支援方法が提案される。
【発明の効果】
【０００８】
本発明の一側面によれば、レジスタ転送レベルの検証環境における電力パラメータの抽出を可能にすることにより、回路の消費電力の見積もりを支援することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる電力見積支援方法の一実施例を示す説明図である。
【図２】図２は、電力見積装置２００のハードウェア構成例を示すブロック図である。
【図３】図３は、電力見積装置２００の機能的構成例を示すブロック図である。
【図４】図４は、マッピングデータＭＤの具体例を示す説明図である。
【図５】図５は、電力見積設定データＳＴの具体例を示す説明図である。
【図６】図６は、クロック起点データＣＫＤの具体例を示す説明図である。
【図７】図７は、クロック起点親子関係データＦＤの具体例を示す説明図である。
【図８】図８は、計算範囲ＩＤマップデータＥＤの具体例を示す説明図である。
【図９】図９は、計算範囲ＩＤと部分クロックツリーＩＤの付与例を示す説明図である。
【図１０】図１０は、メモリ端子データＭＤの具体例を示す説明図である。
【図１１】図１１は、非クロックツリー観測ポイントデータＯＤの具体例を示す説明図である。
【図１２】図１２は、電力係数（ユニットセル）データＰＵの具体例を示す説明図である。
【図１３】図１３は、電力係数（メモリ）データＰＭの具体例を示す説明図である。
【図１４】図１４は、差分回路データＤＦの作成例を示す説明図（その１）である。
【図１５】図１５は、差分回路データＤＦの作成例を示す説明図（その２）である。
【図１６】図１６は、差分回路データＤＦの作成例を示す説明図（その３）である。
【図１７】図１７は、差分回路の回路記述の具体例を示す説明図である。
【図１８】図１８は、差分回路のインスタンス記述の具体例を示す説明図である。
【図１９】図１９は、ＲＴＬのテストベンチの記述例を示す説明図である。
【図２０】図２０は、ＲＴＬ参照信号／ポート番号関係表ＲＰの具体例を示す説明図である。
【図２１】図２１は、観測信号／ポート番号関係表ＳＰの具体例を示す説明図である。
【図２２】図２２は、計測回路計画ＭＰの具体例を示す説明図である。
【図２３】図２３は、計測回路データＫＤのデータ構造例を示す説明図である。
【図２４】図２４は、計測回路インスタンスデータＭＩの具体例を示す説明図である。
【図２５】図２５は、最上位記述ＭＨの具体例を示す説明図である。
【図２６】図２６は、計測回路計画ＭＰの更新例を示す説明図である。
【図２７】図２７は、計測回路の回路構成例を示す説明図（その１）である。
【図２８】図２８は、計測回路の回路構成例を示す説明図（その２）である。
【図２９】図２９は、動的統計データＥＲの具体例を示す説明図である。
【図３０】図３０は、動的統計データＥＲに基づく対象回路の消費電力の見積例を示す説明図である。
【図３１】図３１は、電力見積データＰＥの出力例を示す説明図（その１）である。
【図３２】図３２は、電力見積データＰＥの出力例を示す説明図（その２）である。
【図３３】図３３は、電力見積データＰＥの出力例を示す説明図（その３）である。
【図３４】図３４は、電力見積装置２００の電力見積処理手順の一例を示すフローチャートである。
【図３５】図３５は、基礎データ作成処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、この発明にかかる電力見積支援プログラム、電力見積支援装置および電力見積支援方法の実施の形態を詳細に説明する。
【００１１】
（電力見積支援方法の一実施例）
図１は、実施の形態にかかる電力見積支援方法の一実施例を示す説明図である。図１において、電力見積支援装置１００は、対象回路の消費電力の見積もりを支援するコンピュータである。
【００１２】
対象回路は、消費電力の見積もり対象となる回路であり、例えば、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）である。対象回路の回路情報は、ＲＴＬ設計データ、論理合成後のネットリスト、レイアウト後のネットリストと設計が進むにつれて詳細度が上がる傾向にある。また、対象回路の回路情報は、対象回路に新たな機能が追加されるなどして変化する場合がある。
【００１３】
ここで、ＲＴＬ設計データ（以下、「ＲＴＬ設計データＲＤ」という）は、ＲＴＬで記述された対象回路の回路情報である。エミュレーションやＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）ソフトウェアシミュレータでは、例えば、論理合成可能なデータの集合を用いてシミュレーションする。すなわち、ＲＴＬ設計データＲＤは、エミュレーションまたはＨＤＬシミュレーションが可能かつ論理合成が可能な回路情報である。
【００１４】
また、ネットリストは、対象回路内のセル間の接続関係を表す情報である。セルは、例えば、ＮＯＴゲート、ＡＮＤゲート、配線、バッファ、ＩＮＶ（インバータ）、ＦＦ（フリップフロップ）などの回路素子である。具体的には、例えば、ネットリストは、ＲＴＬ設計データＲＤを論理合成して変換した変換後の設計データ、あるいは、変換後の設計データをレイアウト工程において加工した設計データである。以下の説明では、「ネットリストＮＬ」と表記した場合、対象回路のレイアウト後のネットリストを表すものとする。
【００１５】
ＲＴＬ設計データＲＤの信号の波形データは、エミュレーションでの被検証データとなる。一方、対象回路の消費電力の見積もりを高精度に行う場合、消費電力の見積りに用いる波形データは、論理合成後のネットリストやレイアウト後のネットリストの信号の波形データであることが望ましい。
【００１６】
また、シミュレーションまたはエミュレーションのいずれであっても、検証環境を作成するのはＲＴＬに限られることが多い。このため、電力見積もりのためのゲートレベルのシミュレーションを行う場合、ゲートレベルの検証環境の構築が電力見積もりのための追加工数となってしまう。
【００１７】
そこで、本実施の形態では、電力見積支援装置１００は、ＲＴＬ設計データＲＤ上の信号に対応するネットリストＮＬ上の信号が入力されるセルから、観測対象となる信号を出力するセルまでのパスをＲＴＬとの差分回路として抽出する。これにより、ＲＴＬ用の検証環境での電力見積に必要な電力パラメータの抽出を可能にする。以下、電力見積支援装置１００の電力見積支援処理の処理手順の一例について説明する。
【００１８】
（１）電力見積支援装置１００は、対象回路のＲＴＬ設計データＲＤとネットリストＮＬとを取得する。具体的には、例えば、電力見積支援装置１００は、ユーザの操作入力により、対象回路のＲＴＬ設計データＲＤとネットリストＮＬとを取得することにしてもよい。
【００１９】
（２）電力見積支援装置１００は、取得したＲＴＬ設計データＲＤとネットリストＮＬとに基づいて、マッピング情報１０１を作成する。マッピング情報１０１は、ネットリストＮＬの信号名とＲＴＬ設計データＲＤの信号名との対応関係を表す情報である。具体的には、例えば、マッピング情報１０１は、ＲＴＬ設計データＲＤとネットリストＮＬとの間で同一の信号線を指す信号の対応関係を表すものである。
【００２０】
図１の例では、マッピング情報１０１には、ネットリストＮＬの信号名「Ａ」とＲＴＬ設計データＲＤの信号名「ａ」との対応関係が表されている。また、ネットリストＮＬの信号名「Ｂ」とＲＴＬ設計データＲＤの信号名「ｂ」との対応関係が表されている。ネットリストＮＬの信号名「Ｃ」とＲＴＬ設計データＲＤの信号名「ｃ」との対応関係が表されている。
【００２１】
（３）電力見積支援装置１００は、ネットリストＮＬの中から信号値の変化の観測対象となる観測信号を選択する。観測信号は、例えば、対象回路の消費電力の要因となるセルから出力されるクロック信号やデータ信号である。具体的には、例えば、観測信号は、ＣＧＩＣ（クロックゲーティングインテグレイティッドセル）から出力される信号やトグルレートが変化するセルから出力される信号などである。
【００２２】
ＣＧＩＣは、供給先へのクロック信号の供給を一時的に停止するセルである。ＣＧＩＣによれば、例えば、クロック信号の供給先となるＦＦの入力が変化しない場合に、そのＦＦへのクロック信号の供給を一時的に停止することにより、対象回路の消費電力を削減することができる。また、トグルレートは、信号の信号値が変化した単位時間当たりの回数を表すものである。
【００２３】
すなわち、ＣＧＩＣから出力される信号やトグルレートが変化するセルから出力される信号の波形データは、対象回路の消費電力を見積もる際の重要な指標となる。このため、電力見積支援装置１００は、ＣＧＩＣから出力される信号やトグルレートが変化するセルから出力される信号を観測信号として選択することにしてもよい。
【００２４】
図１の例では、ネットリストＮＬに基づく対象回路に含まれるセルＣ１〜Ｃ６が表示されている。そして、対象回路内のセルＣ６から出力される信号ｓｉｇが観測信号として選択されている。ただし、図面では、対象回路の一部を抜粋して表示している。
【００２５】
（４）電力見積支援装置１００は、作成したマッピング情報１０１を参照して、ネットリストＮＬ上の選択した観測信号を出力する第１のセルを起点として前段のセルを順次辿る。これにより、電力見積支援装置１００は、ＲＴＬ設計データＲＤの信号と対応関係を有するネットリストＮＬの信号が入力される第２のセルを検出する。
【００２６】
図１の例では、ネットリストＮＬのセルＣ１に入力される信号の信号名「Ａ」とＲＴＬ設計データＲＤの信号名「ａ」とが対応している。また、ネットリストＮＬのセルＣ２に入力される信号の信号名「Ｂ」とＲＴＬ設計データＲＤの信号名「ｂ」とが対応している。ネットリストＮＬのセルＣ３に入力される信号の信号名「Ｃ」とＲＴＬ設計データＲＤの信号名「ｃ」とが対応している。また、セルＣ６から出力される信号ｓｉｇが観測信号として選択されているため、セルＣ６が第１のセルとなる。このため、セルＣ６を起点として前段のセルを順次辿ることにより、セルＣ１、セルＣ２およびセルＣ３が第２のセルとして検出される。
【００２７】
（５）電力見積支援装置１００は、検出した第２のセルから第１のセルまでの部分回路をネットリストＮＬの中から抽出することにより、ＲＴＬ設計データＲＤとネットリストＮＬとの差分を表す差分回路情報を作成する。図１の例では、セルＣ１〜Ｃ６を含む部分回路１０２を表す差分回路情報１０３が作成される。
【００２８】
（６）電力見積支援装置１００は、第２のセルに入力されるネットリストＮＬの信号と対応関係を有するＲＴＬ設計データＲＤの信号の信号名と、第２のセルとを対応付けて表す信号情報を作成する。具体的には、例えば、信号情報は、ＲＴＬ設計データＲＤとネットリストＮＬとの差分を表す部分回路の入力端子と、該入力端子に入力される信号と対応関係を有するＲＴＬ設計データＲＤの信号の信号名とを対応付けて表す情報である。図１の例では、信号情報１０４が作成されている。
【００２９】
ここで、セルＣ１に入力されるネットリストＮＬの信号（信号名「Ａ」）と対応関係を有するＲＴＬ設計データＲＤの信号の信号名は「ａ」である。また、セルＣ２に入力されるネットリストＮＬの信号（信号名「Ｂ」）と対応関係を有するＲＴＬ設計データＲＤの信号の信号名は「ｂ」である。また、セルＣ３に入力されるネットリストＮＬの信号（信号名「Ｃ」）と対応関係を有するＲＴＬ設計データＲＤの信号の信号名は「ｃ」である。
【００３０】
このため、信号情報１０４は、ＲＴＬ設計データＲＤの信号の信号名「ａ」とセルＣ１とを対応付けて表す信号情報を含む。また、信号情報１０４は、ＲＴＬ設計データＲＤの信号の信号名「ｂ」とセルＣ２とを対応付けて表す信号情報を含む。また、信号情報１０４は、ＲＴＬ設計データＲＤの信号の信号名「ｃ」とセルＣ３とを対応付けて表す信号情報を含む。
【００３１】
（７）電力見積支援装置１００は、作成した差分回路情報と信号情報とを関連付けて出力する。図１の例では、差分回路情報１０３と信号情報１０４とが関連付けて出力されることになる。
【００３２】
以上説明した、本実施の形態にかかる電力見積支援装置１００によれば、ＲＴＬ設計データＲＤとネットリストＮＬとの差分を表す差分回路情報を作成することができる。また、電力見積支援装置１００によれば、第２のセルに入力されるネットリストＮＬの信号と対応関係を有するＲＴＬ設計データＲＤの信号の信号名と、第２のセルとを対応付けて表す信号情報を作成することができる。
【００３３】
これにより、例えば、部分回路１０２の各入力端子に入力される信号と対応関係を有するＲＴＬ設計データＲＤの信号の信号名「ａ，ｂ，ｃ」を特定することができる。このため、ＲＴＬ用のテストベンチにおいて、ＲＴＬ設計データＲＤと部分回路１０２とを適切に接続することができるようになる。
【００３４】
すなわち、ＲＴＬ設計データＲＤと差分回路情報１０３とをＲＴＬ用のテストベンチに与えることにより、対象回路の論理シミュレーションの実行が可能となる。この結果、対象回路の消費電力を見積もる際の重要な指標となる信号、例えば、ＲＴＬ設計データＲＤからは推測が難しい信号の波形データを取得可能となり、対象回路の電力見積もりを支援することができる。
【００３５】
以下の説明では、図１に示した電力見積支援装置１００を、対象回路の消費電力を見積もる電力見積装置２００に適用した場合について説明する。
【００３６】
（電力見積装置２００のハードウェア構成例）
図２は、電力見積装置２００のハードウェア構成例を示すブロック図である。図２において、電力見積装置２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ２０６と、光ディスク２０７と、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を有している。また、各構成部はバス２００によってそれぞれ接続されている。
【００３７】
ここで、ＣＰＵ２０１は、電力見積装置２００の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００３８】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００３９】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、例えば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４０】
Ｉ／Ｆ２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１４に接続され、このネットワーク２１４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４１】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００４２】
スキャナ２１２は、画像を光学的に読み取り、電力見積装置２００内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、例えば、レーザプリンタやインクジェットプリンタを採用することができる。
【００４３】
なお、電力見積装置２００は、上述した構成部のうち、例えば、光ディスクドライブ２０６、光ディスク２０７、スキャナ２１２、プリンタ２１３等を有していなくてもよい。
【００４４】
（電力見積装置２００の機能的構成例）
つぎに、電力見積装置２００の機能的構成例について説明する。図３は、電力見積装置２００の機能的構成例を示すブロック図である。図３において、電力見積装置２００は、取得部３０１と、マッピングデータ作成部３０２と、差分回路作成部３０３と、計測回路作成部３０４と、実行部３０５と、電力算出部３０６と、出力部３０７と、を含む構成である。取得部３０１〜出力部３０７は制御部となる機能であり、具体的には、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０９により、その機能を実現する。また、各機能部の処理結果は、例えば、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶される。
【００４５】
取得部３０１は、対象回路のＲＴＬ設計データＲＤを取得する機能を有する。また、取得部３０１は、対象回路のネットリストＮＬを取得する機能を有する。具体的には、例えば、取得部３０１は、図２に示したキーボード２１０やマウス２１１を用いたユーザの操作入力により、ＲＴＬ設計データＲＤおよびネットリストＮＬを取得する。
【００４６】
また、取得部３０１は、例えば、ネットワーク２１４を介して、外部のコンピュータからＲＴＬ設計データＲＤおよびネットリストＮＬを取得することにしてもよい。なお、取得部３０１は、例えば、取得したＲＴＬ設計データＲＤを論理合成することにより、ネットリストＮＬを取得することにしてもよい。ただし、この場合、ネットリストＮＬは、レイアウト前のネットリストとなる。
【００４７】
マッピングデータ作成部３０２は、対象回路のＲＴＬ設計データＲＤとネットリストＮＬとの間で同一の信号線を指す信号の対応関係を表すマッピングデータＭＤを作成する機能を有する。具体的には、例えば、マッピングデータ作成部３０２は、ＲＴＬ設計データＲＤとネットリストＮＴを等価性検証ツールに与えて、ネットリストＮＬの信号名に一致するＲＴＬ設計データＲＤの信号名を検出することによりマッピングデータＭＤを作成する。なお、マッピングデータＭＤは、図１に示したマッピング情報１０１に相当する。
【００４８】
また、マッピングデータ作成部３０２は、論理合成ツールおよびユーザ定義による設計ルールにより、マッピングデータＭＤを作成することにしてもよい。例えば、ＲＴＬ設計データＲＤのＦＦになる信号線名とネットリストＮＬの中の信号線名「＋＿ｒｅｇ」というＦＦの出力端子が対応するというルールがあれば、この対応関係を表す情報が作成される。ここで、マッピングデータＭＤの具体例について説明する。
【００４９】
図４は、マッピングデータＭＤの具体例を示す説明図である。図４において、マッピングデータＭＤは、対象回路のＲＴＬ設計データＲＤとネットリストＮＬとの間で同一の信号線を指す信号の対応関係を表す対応情報（例えば、対応情報４００−１〜４００−３）を有している。各対応情報には、ＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅｓ）形式により、ネットリストＮＬの信号名に対応するＲＴＬ設計データＲＤの信号名が記述されている。
【００５０】
例えば、対応情報４００−１によれば、対象回路のネットリストＮＬの信号名「ＭＢＡＡＡ．ａ＿ｒｅｇｉｓｔｅｒ＿ｒｅｑ＿０＿．Ｑ」とＲＴＬ設計データＲＤの信号名「ＭＢＡＡＡ．ａ＿ｒｅｇｉｓｔｅｒ［０］」との対応関係を特定することができる。
【００５１】
図３の説明に戻り、差分回路作成部３０３は、ネットリストＮＬとマッピングデータＭＤとに基づいて、差分回路を作成する機能を有する。ここで、差分回路とは、ＲＴＬ設計データＲＤとネットリストＮＬとの差分を表す部分回路である。
【００５２】
具体的には、例えば、差分回路作成部３０３は、対象回路の基礎データを作成する。ここで、基礎データとは、対象回路の論理シミュレーションや電力見積もりに用いられる情報である。基礎データは、例えば、後述するコンフィギュレーションデータＣＧと差分回路データＤＦとを含む。
【００５３】
コンフィギュレーションデータＣＧは、クロック起点データＣＫＤと、計算範囲ＩＤマップデータＥＤと、クロック起点親子関係データＦＤと、メモリ端子データＭＤと、非クロックツリー観測ポイントデータＯＤと、電力係数（ユニットセル）データＰＵと、電力係数（メモリ）データＰＭと、差分回路コンフィギュレーションデータＤＣＧと、を含むファイル群である。基礎データの作成例については、図５〜図２１を用いて後述する。
【００５４】
計測回路作成部３０４は、観測信号の信号値の変化を計測する計測回路を作成する機能を有する。ここで、観測信号は、上述したように、対象回路の消費電力の要因となるセルから出力される信号である。計測回路は、例えば、観測信号の信号値が変化した回数を計測する回路である。すなわち、計測回路は、観測信号のトグルレートを計測するための回路である。
【００５５】
具体的には、例えば、計測回路作成部３０４は、計測回路計画ＭＰに基づいて、計測回路を作成する。計測回路計画ＭＰは、どのような計測回路を作成するのかを決める情報である。計測回路の作成例については、図２２〜図２８を用いて後述する。
【００５６】
実行部３０５は、ＲＴＬ設計データＲＤに基づいて、対象回路の論理シミュレーションを実行する機能を有する。具体的には、例えば、実行部３０５は、後述の図１９に示すようなＲＴＬ用のテストベンチに差分回路と計測回路とが実装された結果、ＲＴＬ設計データＲＤに基づく対象回路の論理シミュレーションを実行する。
【００５７】
論理シミュレーションの実行結果には、観測信号の波形データに関する情報が含まれている。具体的には、例えば、論理シミュレーションの実行結果には、観測信号の信号値が変化した単位時間当たりの回数を表すトグルレートが含まれている。論理シミュレーションの実行結果を表す動的統計データＥＲについては、図２９を用いて後述する。
【００５８】
なお、論理シミュレーションは、エミュレータを用いて実行することにしてもよく、また、ソフトウェアの論理シミュレータを用いて実行することにしてもよい。エミュレータとは、ＦＰＧＡやプロセッサなどを使ったシミュレーション専用のハードウェアである。
【００５９】
電力算出部３０６は、対象回路の消費電力を算出する機能を有する。具体的には、例えば、電力算出部３０６は、論理シミュレーションの実行結果を表す動的統計データＥＲに基づいて、対象回路の消費電力を見積もる。動的統計データＥＲに基づく対象回路の消費電力の見積例については、図３０を用いて後述する。
【００６０】
出力部３０７は、算出された対象回路の消費電力を出力する機能を有する。具体的には、例えば、出力部３０７は、図３１〜図３３に示すような電力見積データＰＥを出力することにしてもよい。出力形式としては、例えば、ディスプレイ２０８への表示、プリンタ２１３への印刷出力、Ｉ／Ｆ２０９による外部装置への送信、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置への記憶がある。
【００６１】
また、出力部３０７は、作成された差分回路（例えば、差分回路データＤＦ、差分回路コンフィギュレーションデータＤＣＧ等）を出力することにしてもよい。また、出力部３０７は、作成された計測回路（例えば、計測回路計画ＭＰ、計測回路インスタンスデータＭＩ、計測回路データＫＤ等）を出力することにしてもよい。これにより、ＲＴＬ設計データＲＤと差分回路データＤＦとに基づく論理シミュレーションを任意のタイミングで行うことができる。
【００６２】
（基礎データの作成例）
つぎに、図５〜図２１を用いて基礎データの作成例について説明する。まず、電力見積用の設定を行うためのスクリプトについて説明する。
【００６３】
図５は、電力見積設定データＳＴの具体例を示す説明図である。図５において、電力見積設定データＳＴは、対象回路の消費電力を見積もる電力見積用の設定を行うスクリプトである。電力見積設定データＳＴは、例えば、ＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。
【００６４】
まず、電力見積装置２００は、例えば、電力見積設定データＳＴの処理スクリプト（２行目）を読み込む。つぎに、電力見積装置２００は、電力見積もり対象となる対象回路のトップモジュール名を設定して、ネットリストＮＬと対応したテクノロジーライブラリＴＬＢを読み込む。
【００６５】
ここで、テクノロジーライブラリＴＬＢは、例えば、セルごとの電力特性に関する情報やワイヤロードモデルなどを有する情報である。セルの電力特性に関する情報には、例えば、セルの内部で１回のトグルで消費する電力量などが含まれている。テクノロジーライブラリＴＬＢは、例えば、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。
【００６６】
そして、電力見積装置２００は、ネットリストＮＬを読み込み、クロックソース起点データＣＳを読み込み、配線容量データＷＤを読み込んで信号線に容量値を書きこむ。ここで、クロックソース起点データＣＳは、対象回路内のクロックソースの起点を示すＳＤＣ（Ｓｙｎｏｐｓｙｓ  Ｄｅｓｉｇｎ  Ｃｏｎｓｔｒａｉｎｔ）ファイルである。
【００６７】
また、配線容量データＷＤは、レイアウト後の対象回路内の各セル間の配線の容量値を示す情報である。これにより、対象回路の消費電力を見積もる電力見積処理に必要なデータがメモリ（例えば、ＲＡＭ２０３）上に展開され、電力見積処理を実行できる状態になる。電力見積装置２００は、例えば、ユーザの操作入力により、クロックソース起点データＣＳおよび配線容量データＷＤを取得する。
【００６８】
なお、各配線の容量値は、例えば、ワイヤロードモデルと呼ばれる面積とファンアウトから算出されてもよく、また、ＰＬＥ（Ｐｈｙｓｉｃａｌ  Ｌａｙｏｕｔ  Ｅｓｔｉｍａｔｏｒ）技術を用いて算出されることにしてもよい。ワイヤロードモデルは、例えば、テクノロジーライブラリＴＬＢに記述されている。
【００６９】
つぎに、電力見積装置２００は、インスタンス名および深さを指定する（ｆｐａ２：：ｃａｌｃ＿ｉｎｓｔ：：ｓｅｔｕｐ）。これは、指定したインスタンス名から指定した深さまでにあるインスタンスで指定値以上の面積があるインスタンスを計算範囲とする処理である。これにより、消費電力を見積もる粒度を指定することができる。インスタンスは、例えば、対象回路内のセルやマクロである。
【００７０】
また、電力見積装置２００は、差分回路の作成が必要な場合は「ｓｅｔｕｐ＿ｍａｐｐｉｎｇ＿ｄａｔａ」をコールしてマッピングデータＭＤを読み込む。そして、電力見積装置２００は、「ｆｐａ２：：ｓｔｄ：：ｒｕｎ」を実行する。これにより、基礎データを作成する基礎データ作成処理が実行されて基礎データが作成されることになる。
【００７１】
以下、基礎データ作成処理の具体的な処理内容について説明する。
【００７２】
まず、電力見積装置２００は、対象回路のＤＢにデータフィールドを追加する。これにより、対象回路のセルや入出力端子等に各種情報を設定することができる。また、セルや入出力端子等に数値を設定する場合、予めデフォルト値（例えば、「−１」）を設定することができる。
【００７３】
つぎに、電力見積装置２００は、ネットリストＮＬおよびクロックソース起点データＣＳに基づいて、対象回路のクロックツリー解析を行うことにより、クロック起点データＣＫＤを作成する。ここで、クロックツリーとは、対象回路のクロックソースから辿ることができる出力端子を有するセルの集合である。クロックツリー解析により、対象回路内の出力端子群を、クロックソースから辿ることができる出力端子群と、該出力端子群とは異なる残余の出力端子群とに分類することができる。
【００７４】
また、クロック起点データＣＫＤとは、部分クロックツリーと信号名とを対応付けて表す情報である。部分クロックツリーは、クロックツリーのうちトグルレートが同じであることが保証されているセル群を含む部分である。クロック起点親子関係データＦＤは、対象回路内の部分クロックツリーの親子関係に関するファイルである。
【００７５】
具体的には、例えば、電力見積装置２００は、クロックソース起点データＣＳで指定されるクロックソースの起点からセルを順次辿っていき、セルの端子にＩＤ番号を付与する。より具体的には、例えば、電力見積装置２００は、クロックソースの起点から順にセルを辿っていき、インバータとバッファ以外のセルを検出したらＩＤ番号を変更して、変更後のＩＤ番号をセルの出力端子に付与する。
【００７６】
また、電力見積装置２００は、セルがＦＦ、ＣＧＩＣ、ＲＡＭ／ＲＯＭの場合は、セルの入力端子にも同じＩＤ番号を付与する。なお、電力見積装置２００は、セルがＣＧＩＣか否かの判断は、例えば、セルにＣＧＩＣ特有のデータフィールドがあるか否かによって判断することができる。
【００７７】
これにより、トグルレートが同じになるクロックツリー上のセルの出力端子と、ＦＦ、ＣＧＩＣ、ＲＡＭ／ＲＯＭの入力端子に同じＩＤ番号を付与することができる。なお、クロックツリーとは異なる部分、すなわち、非クロックツリーのセルの端子には、例えば、ＩＤ番号「−１」が付与される。
【００７８】
以下の説明では、部分クロックツリーの識別子を「部分クロックツリーＩＤ」または「クロックエリアＩＤ」と表記する場合がある。
【００７９】
つぎに、電力見積装置２００は、インスタンスのクロックエリアＩＤを、セルの各端子に付与したＩＤ番号を参照して設定する。具体的には、例えば、電力見積装置２００は、出力端子にＩＤ番号が付与されている端子の一覧を取り出して、インスタンスに付与し、更に入力端子にＩＤ番号が付与されている場合にはその番号をインスタンスに付与する。ここで、クロック起点データＣＫＤおよびクロック起点親子関係データＦＤの具体例について説明する。
【００８０】
図６は、クロック起点データＣＫＤの具体例を示す説明図である。図６において、クロック起点データＣＫＤは、ＣＳＶ形式により、部分クロックツリーＩＤと信号名とをカンマ区切りで対応付けて表すクロック起点情報（例えば、クロック起点情報６００−１〜６００−１０）を有している。
【００８１】
ここで、信号名は、部分クロックツリーに含まれる信号のうちの代表信号の信号名である。代表信号は、例えば、ＩＤ番号が変更されるセルの出力端子から出力される信号、すなわち、トグルレートが変わるセルの出力端子名である。例えば、クロック起点情報６００−１によれば、部分クロックツリーＩＤ「０」と信号名「ＭＢ８ＡＣ０１２０ＱＵ８Ｌ・・・」との対応関係を特定することができる。
【００８２】
図７は、クロック起点親子関係データＦＤの具体例を示す説明図である。図７において、クロック起点親子関係データＦＤは、ＣＳＶ形式により、親となる部分クロックツリーＩＤと、子となる部分クロックツリーＩＤとを対応付けて表す親子関係情報（例えば、親子関係情報７００−１）を有している。
【００８３】
図７の例では、子となる部分クロックツリーＩＤの区切り文字は空白である。例えば、親子関係情報７００−１によれば、部分クロックツリーＩＤ「０」の子となる部分クロックツリーＩＤ「１，２，３，…，８１」を特定することができる。
【００８４】
基礎データ作成処理の説明に戻り、電力見積装置２００は、対象回路上の計算範囲を指定する。計算範囲は、対象回路上の領域のうち電力見積もり対象となる領域である。具体的には、例えば、電力見積装置２００は、キーボード２１０やマウス２１１を用いたユーザの操作入力により、対象回路上の計算範囲を指定して計算範囲ＩＤを付与する。
【００８５】
より具体的には、例えば、電力見積装置２００は、ユーザの操作入力により、電力見積もり対象となるインスタンスへのパスを指定する。そして、電力見積装置２００は、深さが「０」より大きい場合には指定されたインスタンスからみて、その深さまでで所定値よりも面積が大きいインスタンスを計算範囲として指定して計算範囲ＩＤを付与する。
【００８６】
これにより、計算範囲ＩＤとインスタンス名とを対応付けて表す計算範囲ＩＤマップデータＥＤが作成される。ここで、計算範囲ＩＤマップデータの具体例について説明する。
【００８７】
図８は、計算範囲ＩＤマップデータＥＤの具体例を示す説明図である。図８において、計算範囲ＩＤマップデータＥＤは、ＣＳＶ形式により、計算範囲ＩＤとインスタンス名とデバッグ用データ（２個）とをカンマ区切りで対応付けて表す計算範囲情報（例えば、計算範囲情報８００−１〜８００−８）を有している。
【００８８】
インスタンス名は、例えば、セルやマクロのインスタンス名や階層インスタンスのインスタンス名である。例えば、計算範囲情報８００−１によれば、計算範囲ＩＤ「０」とインスタンス名「ＭＢ８ＡＣ０１２０ＱＵ８Ｌ」とデバッグ用データ「７２６１５９９９３．０」および「４８２３２０３９２．０」との対応関係を特定することができる。ここで、計算範囲ＩＤと部分クロックツリーＩＤの付与例について説明する。
【００８９】
図９は、計算範囲ＩＤと部分クロックツリーＩＤの付与例を示す説明図である。図９において、太線の四角の囲み枠は、計算範囲に対応するインスタンスを表している。図９の例では、０番から３番の計算範囲が指定されている。細線の四角の囲み枠は、ＦＦを表している。
【００９０】
丸は、クロック起点を表している。図９の例では、１番から４番のクロック起点が示されている。丸からつながる三角は、部分クロックツリーを表している。図９中、（Ｎ，Ｍ）という表記は、（計算範囲ＩＤ，部分クロックツリーＩＤ）を表している。
【００９１】
基礎データ作成処理の説明に戻り、電力見積装置２００は、対象回路からのＲＡＭ／ＲＯＭの抽出を行う。そして、電力見積装置２００は、ＲＡＭ／ＲＯＭへのアクセス回数がわかる信号のセットを指定する。この結果、メモリ端子データＭＤが作成される。メモリ端子データＭＤは、対象回路内のメモリのインスタンス名と各ポートのアクセス回数をカウントする式が記述されたファイルである。ここで、メモリ端子データＭＤの具体例について説明する。
【００９２】
図１０は、メモリ端子データＭＤの具体例を示す説明図である。図１０において、メモリ端子データＭＤは、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式により、対象回路内の各メモリのメモリ情報（例えば、メモリ情報１０００−１，１０００−２）を有している。
【００９３】
また、各メモリ情報は、一つのインスタンスに関する情報の集まりを示している。ここで、ｍｅｍＩＤは、メモリのＩＤである。ｃａｌｃＩｎｓｔＩｄは、インスタンスが属する計算範囲ＩＤである。ｎａｍｅは、インスタンスの名称である。
【００９４】
また、各メモリ情報は、各メモリのポート情報（例えば、ポート情報１０００−１−１，１０００−１−２）を有している。ここで、ｍｅｍＩＤは、メモリのＩＤである。ｃａｌｃＩｎｓｔＩｄは、インスタンスが属する計算範囲ＩＤである。ｓｉｇｎａｌは、ポートへのアクセス回数がわかる信号である。メモリ端子データＭＤによれば、対象回路内のメモリの各ポートのアクセス回数をカウントする式を特定することができる。
【００９５】
基礎データ作成処理の説明に戻り、電力見積装置２００は、対象回路から非クロックツリーの観測信号を抽出する。具体的には、例えば、電力見積装置２００は、ネットリストＮＬを参照して、非クロックツリーの信号のうち比率ｒの信号をランダムに選択することにより、非クロックツリーの観測信号を抽出する。
【００９６】
具体的には、例えば、電力見積装置２００は、非クロックツリーの中からいずれかの出力端子をランダムに選択する。この出力端子は、クロックソースから辿ることができない出力端子である。そして、電力見積装置２００は、非クロックツリーの中から選択した出力端子の個数が閾値未満か否かを判断する。
【００９７】
閾値は、例えば、非クロックツリーに含まれる出力端子の総数、すなわち、クロックソースから辿ることができない出力端子の総数に比率ｒを掛けることにより得られる値である。ここで、選択した出力端子の個数が閾値未満の場合、電力見積装置２００は、非クロックツリーの中から未選択の出力端子をランダムに選択する。これにより、非クロックツリーに含まれる信号のうちの比率ｒの信号をランダムに選択することができ、非クロックツリーの信号を間引くことができる。
【００９８】
比率ｒは、予め設定されてＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。比率ｒは、例えば、２［％］である。なお、電力見積装置２００は、対象回路内の指定された計算範囲ごとに、非クロックツリーの信号のうち比率ｒの信号をランダムに選択することにしてもよい。
【００９９】
この結果、非クロックツリー観測ポイントデータＯＤが作成される。非クロックツリー観測ポイントデータＯＤは、各々の計算範囲で観測すべき信号をリスト化したファイルである。ここで、非クロックツリー観測ポイントデータＯＤの具体例について説明する。
【０１００】
図１１は、非クロックツリー観測ポイントデータＯＤの具体例を示す説明図である。図１１において、非クロックツリー観測ポイントデータＯＤは、ＣＳＶ形式により、計算範囲ＩＤと観測すべき信号名とを対応付けて表す観測ポイント情報（例えば、観測ポイント情報１１００−１〜１１００−１０）を有している。
【０１０１】
例えば、観測ポイント情報１１００−１によれば、計算範囲ＩＤ「０」の計算範囲において観測すべき観測信号の信号名「ＭＢ８ＡＣ０１２０ＱＵ８Ｌ・・・」を特定することができる。
【０１０２】
基礎データ作成処理の説明に戻り、電力見積装置２００は、対象回路内のユニットセルおよびメモリの電力係数を算出する。ここで、ユニットセルとは、ＡＮＤゲート、ＦＦなどのセルである。具体的には、例えば、電力見積装置２００は、クロックツリー系のトグルレートと非クロックツリー系のトグルレートにそれぞれ固定値を与えて電力値を求めることにより、ユニットセルおよびメモリの電力係数を算出することにしてもよい。例えば、クロックツリー系のトグルレートの固定値は、「０．２」であり、非クロックツリー系のトグルレートの固定値は「０．１」である。
【０１０３】
この結果、電力係数（ユニットセル）データＰＵおよび電力係数（メモリ）データＰＭが作成される。電力係数（ユニットセル）データＰＵは、対象回路内のユニットセルの電力係数の値が記述されたファイルである。電力係数（メモリ）データＰＭは、対象回路内のメモリの電力係数の値が記述されたファイルである。ここで、電力係数（ユニットセル）データＰＵおよび電力係数（メモリ）データＰＭの具体例について説明する。
【０１０４】
図１２は、電力係数（ユニットセル）データＰＵの具体例を示す説明図である。図１２において、電力係数（ユニットセル）データＰＵは、ＣＳＶ形式により、回路範囲と電力係数値と補足情報とを対応付けて表す電力係数情報（例えば、電力係数情報１２００−１〜１２００−１０）を有している。
【０１０５】
電力係数情報のうち、カンマで区切られた１番目と２番目の情報が回路範囲を表している。具体的には、１番目の情報が計算範囲ＩＤを表し、２番目の情報が部分クロックツリーＩＤを表している。また、電力係数情報のうち、カンマで区切られた３番目〜６番目の情報が電力係数値である。
【０１０６】
具体的には、３番目の情報がクロックツリーに含まれるセル群のうちのＦＦではないセルの電力係数値である。４番目の情報が非クロックツリーに含まれるセル群のうちのＦＦではないセルの電力係数値である。５番目の情報が非クロックツリーに含まれるセル群のうちのＦＦの電力係数値である。６番目の情報が非クロックツリーに含まれるセル群のうちのＦＦの電力係数値である。また、電力係数情報のうち、カンマで区切られた７番目〜１１番目の情報がデバッグ用の補足情報である。
【０１０７】
例えば、電力係数情報１２００−１によれば、計算範囲ＩＤ「０」および部分クロックツリーＩＤ「−１」から特定される回路範囲の各種セルの電力係数値を特定することができる。なお、部分クロックツリーＩＤ「−１」は、非クロックツリー系を表している。
【０１０８】
図１３は、電力係数（メモリ）データＰＭの具体例を示す説明図である。図１３において、電力係数（メモリ）データＰＭは、ＣＳＶ形式により、メモリ名（例えば、ＲＡＭ名）と電力係数値とを対応付けて表す電力係数情報（例えば、電力係数情報１３００−１〜１３００−１０）を有している。
【０１０９】
電力係数値は、例えば、１ポート当たりの電力値であり、リードとライトの平均値である。例えば、電力係数情報１３００−１によれば、ＲＡＭ名「ＭＢ８ＡＣ０１２０ＱＵ８Ｌ／・・・」の電力係数値「２２９４３３３．００００００」を特定することができる。
【０１１０】
基礎データ作成処理の説明に戻り、電力見積装置２００は、ＲＴＬ設計データＲＤとネットリストＮＬとの差分回路を表す差分回路データＤＦを作成する。ここで、図１４〜図１８を用いて、差分回路データＤＦの作成例について説明する。
【０１１１】
図１４〜図１６は、差分回路データＤＦの作成例を示す説明図である。図１４の（ｉ）において、ネットリストＮＬに基づく、対象回路内のセルＣ１〜Ｃ１１と、セル間の接続関係を表す配線ｗ１〜ｗ１０と、各セルＣ１〜Ｃ１１の出力端子ｐ１〜ｐ１１とが示されている。なお、図面では、対象回路の一部を抜粋して表示している。
【０１１２】
図１４の（ｉｉ）において、電力見積装置２００は、各セルＣ１〜Ｃ１１の出力端子ｐ１〜ｐ１１にワイヤＩＤ（図中、「ｗｉｒｅ＿ｉｄ」）を付与する。ワイヤＩＤは、セル間の配線を識別する識別子である。図１４の（ｉｉ）の例では、各セルＣ１〜Ｃ１１の出力端子ｐ１〜ｐ１１にワイヤＩＤのデフォルト値「−１」が付与されている。
【０１１３】
図１５の（ｉｉｉ）において、電力見積装置２００は、マッピングデータＭＤを参照して、ネットリストＮＬ上の信号の信号名うち、ＲＴＬ設計データＲＤ上の信号の信号名に対応する信号の信号名を特定する。そして、電力見積装置２００は、特定した信号名の信号を出力する出力端子を端点とするネットリストＮＬ上の配線に、対応するＲＴＬ設計データＲＤの信号名を付与する。
【０１１４】
図１５の（ｉｉｉ）の例では、配線ｗ１にＲＴＬ設計データＲＤの信号名「Ａ［０］」が付与され、配線ｗ２にＲＴＬ設計データＲＤの信号名「Ａ［１］」が付与されている。また、配線ｗ３にＲＴＬ設計データＲＤの信号名「Ｂ［０］」が付与され、配線ｗ４にＲＴＬ設計データＲＤの信号名「Ｂ［１］」が付与され、配線ｗ５にＲＴＬ設計データＲＤの信号名「Ｂ［２］」が付与されている。
【０１１５】
図１５の（ｉｖ）において、電力見積装置２００は、クロック起点データＣＫＤおよび非クロックツリー観測ポイントデータＯＤを参照して、観測対象となる観測信号を選択する。観測信号は、例えば、部分クロックツリーに含まれる信号のうちの代表信号および非クロックツリーの中からランダムに選択された信号である。
【０１１６】
図１５の（ｉｖ）の例では、セルＣ９の出力端子ｐ９から出力される観測信号ｓ１が選択されている（図１５（ｉｖ）中、太線）。この場合、電力見積装置２００は、例えば、観測信号ｓ１を出力する出力端子ｐ９（または、配線ｗ９）をドライブして、出力端子ｐ９のワイヤＩＤにＩＤ番号を付与する。図１５の（ｉｖ）の例では、出力端子ｐ９のワイヤＩＤにＩＤ番号「０」が付与されている。
【０１１７】
図１６の（ｖ）において、電力見積装置２００は、ネットリストＮＬ上の観測信号を出力するセルから後段のセルを順次辿ることにより、ＲＴＬ設計データＲＤ上の信号の信号名に対応する信号名の信号を出力するセルを検出する。
【０１１８】
具体的には、例えば、電力見積装置２００は、ネットリストＮＬを参照して、ドライブした出力端子ｐ９（または、配線ｗ９）から深さ「１」のファンインの端子一覧を特定する。つぎに、電力見積装置２００は、特定した端子一覧の中から出力端子を選択して、選択した出力端子のワイヤＩＤにＩＤ番号を付与する。
【０１１９】
そして、電力見積装置２００は、選択した出力端子を端点とする配線にＲＴＬ設計データＲＤの信号名が付与されているか否かを判断する。電力見積装置２００は、例えば、ＲＴＬ設計データＲＤの信号名が付与された配線が検出されるまで、選択した出力端子を起点とする深さ「１」のファンインの端子一覧の特定および出力端子のワイヤＩＤへのＩＤ番号の付与を繰り返す。
【０１２０】
図１６の（ｖ）の例では、出力端子ｐ６のワイヤＩＤにＩＤ番号「１」が付与されている。また、出力端子ｐ７のワイヤＩＤにＩＤ番号「２」が付与されている。この時点では、ＲＴＬ設計データＲＤの信号名が付与された配線は未検出である。
【０１２１】
図１６の（ｖｉ）の例では、出力端子ｐ１のワイヤＩＤにＩＤ番号「３」が付与されている。また、出力端子ｐ２のワイヤＩＤにＩＤ番号「４」が付与されている。また、出力端子ｐ３のワイヤＩＤにＩＤ番号「５」が付与されている。また、ＲＴＬ設計データＲＤの信号名が付与された配線ｗ１，ｗ２，ｗ３が検出されている。
【０１２２】
そして、電力見積装置２００は、選択した観測信号に対応する、ＲＴＬ設計データＲＤとネットリストＮＬとの差分回路を表す差分回路データＤＦを作成する。具体的には、例えば、まず、電力見積装置２００は、対象回路の中からワイヤＩＤにＩＤ番号（デフォルト値以外のＩＤ番号）が付与された出力端子を抽出する。より具体的には、例えば、電力見積装置２００は、対象回路の中からワイヤＩＤが非負数の出力端子を抽出する。図１６の（ｉｖ）の例では、出力端子ｐ１，ｐ２，ｐ３，ｐ６，ｐ７，ｐ９が抽出される。
【０１２３】
ここで、観測信号ｓ１は、ＲＴＬ設計データＲＤに含まれていない信号名の信号である。また、出力端子ｐ１，ｐ２，ｐ３は、ＲＴＬ設計データＲＤの信号名が付与された配線ｗ１，ｗ２，ｗ３の端点である。このため、観測信号ｓ１に対応する差分回路は、出力端子ｐ６，ｐ７，ｐ９を有するセルＣ６，Ｃ７，Ｃ９を含む部分回路となる。
【０１２４】
ここで、差分回路データＤＦの具体例について説明する。差分回路データＤＦは、差分回路の回路記述とインスタンス記述とを含む。
【０１２５】
図１７は、差分回路の回路記述の具体例を示す説明図である。図１７において、回路記述１７００は、ＲＴＬ設計データＲＤとネットリストＮＬとの差分回路を表すロジックコーンを含む。ロジックコーンは、例えば、図１６の（ｖｉ）に示した観測信号ｓ１が選択された場合の例では、セルＣ６，Ｃ７，Ｃ９を含む部分回路となる。
【０１２６】
具体的には、例えば、回路記述１７００は、差分回路の出力端子に接続されている配線のワイヤＩＤを表す記述を含む。図１６の（ｖｉ）に示した例では、差分回路の出力端子ｐ９に接続されている配線のワイヤＩＤ「０」を表す記述が含まれる。また、回路記述１７００は、差分回路の各々の入力端子に接続されている各々の配線のワイヤＩＤを表す記述を含む。図１６の（ｖｉ）に示した例では、差分回路の各々の入力端子に接続されている各々の配線のワイヤＩＤ「３」、「４」および「５」を表す記述が含まれる。
【０１２７】
また、回路記述１７００は、差分回路に含まれる各セルに接続されている配線のワイヤＩＤを表す記述を含む。図１６の（ｖｉ）に示した例では、差分回路に含まれるセルＣ９に接続されている配線のワイヤＩＤ「０」、「１」および「２」を表す記述が含まれる。また、差分回路に含まれるセルＣ６に接続されている配線のワイヤＩＤ「１」および「３」を表す記述が含まれる。また、差分回路に含まれるセルＣ７に接続されている配線のワイヤＩＤ「２」、「４」および「５」を表す記述が含まれる。
【０１２８】
例えば、図１６の場合、差分回路の入力ポート数は３、出力ポート数は１なので、入出力の端子はｉｎｐｕｔ［２：０］ｉｎ＿ｄａｔａ，ｏｕｔｐｕｔ［０：０］ｏｕｔ＿ｄａｔａとなる。また、ｗｉｒｅ＿ｉｄは０〜５までの合計６個あるので、これらに対応するワイヤを宣言する。例えば、ｗｉｒｅ［０：５］  ｉｎｔｅｒｎａｌ＿ｗｉｒｅ；とする。ｉｎ＿ｄａｔａのインデックス０，１，２に対応するポートｐ１，ｐ２，ｐ３とした場合、ａｓｓｉｇｎ  ｉｎｔｅｒｎａｌ＿ｗｉｒｅ［３］＝ｉｎ＿ｄａｔａ［０］；ａｓｓｉｇｎ  ｉｎｔｅｒｎａｌ＿ｗｉｒｅ［４］＝ｉｎ＿ｄａｔａ［１］；ａｓｓｉｇｎ  ｉｎｔｅｒｎａｌ＿ｗｉｒｅ［５］＝ｉｎ＿ｄａｔａ［２］；という記述を記載する。同様に、出力についてはａｓｓｉｇｎ  ｏｕｔ＿ｄａｔａ［０］＝ｉｎｔｅｒｎａｌ＿ｗｉｒｅ［０］；という記述を記載する。
【０１２９】
セルのインスタンスはもとの記述において、例えば、Ｃ３についてはＢＵＦ  Ｕ３（．Ａ（ｗ１），．Ｙ（ｗ６））というように記載されている。従って、インスタンス名の一意名を生成して、Ｃ３に対応する記述として、ＢＵＦ  ｉｎｓｔ＿００００（．Ａ（．ｉｎｔｅｒｎａｌ＿ｗｉｒｅ［３］），．Ｙ（ｉｎｔｅｒｎａｌ＿ｗｉｒｅ＿［１］））と生成する。他のインスタンスについても同様である。このようにすることで、平坦化した回路を生成でき、ロジックコーン部分の切り出しが行えて、切り出した記述が１７００の切り出したロジックコーンの記述の生成が行える。
【０１３０】
図１８は、差分回路のインスタンス記述の具体例を示す説明図である。図１８において、インスタンス記述１８００は、差分回路がインスタンスされているコードを表している。具体的には、例えば、インスタンス記述１８００には、差分回路をインスタンスしたモジュールに与えるインスタンス名が絶対パスで与えられる。
【０１３１】
例えば、ＲＴＬのテストベンチに「ｄｉｆｆ＿ｃｉｒｃｕｉｔ」という名前で差分回路を置く場合、シミュレーション環境における被評価回路（対象回路）のトップのモジュールへの絶対パス（例えば、ｔｅｓｔｂｅｎｃｈ．ｔａｒｇｅｔ）が指定される。この際、シミュレーション環境で階層参照可能な信号に書き換えることにより、インスタンス記述１８００が作成される。
【０１３２】
回路記述１７００およびインスタンス記述１８００によれば、差分回路の出力（例えば、ｏｕｔ＿ｄａｔａ）に差分回路の出力信号が出力されることになる。ここで、ＲＴＬのテストベンチの記述例について説明する。なお、ＲＴＬのテストベンチは、例えば、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。
【０１３３】
図１９は、ＲＴＬのテストベンチの記述例を示す説明図である。図１９において、記述１９００は、ＲＴＬのテストベンチに含まれる記述であり、ＲＴＬのテストベンチ中に、後述する計測回路および差分回路をインスタンスするためのものである。図面では、ＲＴＬのテストベンチの一部を抜粋して表示している。なお、差分回路がない場合は計測回路のみに関する記述があればよい。
【０１３４】
電力見積装置２００は、例えば、クロック起点データＣＫＤおよび非クロックツリー観測ポイントデータＯＤの中から選択されていない未選択の観測信号がなくなるまで、観測信号を選択して差分回路を作成する処理を繰り返し行う。この際、電力見積装置２００は、観測信号ごとの差分回路データＤＦを作成してもよい。ただし、選択された観測信号の信号名に対応する信号名がＲＴＬ設計データＲＤに含まれる場合、差分回路データＤＦの作成は行われない。
【０１３５】
また、電力見積装置２００は、クロック起点データＣＫＤおよび非クロックツリー観測ポイントデータＯＤの中から選択されていない未選択の観測信号がなくなるまで、図１５および図１６に示したような処理を行った後、差分回路データＤＦを作成してもよい。この場合、対象回路に対して一つの差分回路データＤＦが作成される。これにより、観測信号ごとの差分回路データＤＦを作成する場合に比べて、差分回路間の重複部分を排除することができ、差分回路の回路量を削減することができる。
【０１３６】
また、電力見積装置２００は、作成した差分回路データＤＦに対応する差分回路コンフィギュレーションデータＤＣＧを作成する。ここで、差分回路コンフィギュレーションデータＤＣＧは、クロックツリー観測信号／ポート番号関係表ＣＰと、非クロックツリー観測信号／ポート番号関係表ＮＣＰと、ＲＴＬ参照信号／ポート番号関係表ＲＰとを含む。
【０１３７】
ここでは、差分回路を１モジュールとし、クロックツリー観測信号／ポート番号関係表ＣＰと、非クロックツリー観測信号／ポート番号関係表ＮＣＰとを区別しない場合を例に挙げて説明する。具体的には、クロックツリーまたは非クロックツリーのいずれかの観測信号とポート番号とが関係付けられた関係表を「観測信号／ポート番号関係表ＳＰ」とする。なお、クロックツリーの観測信号は、上述したように、部分クロックツリーに含まれる信号のうちの代表信号である。
【０１３８】
具体的には、例えば、電力見積装置２００は、ＲＴＬ設計データＲＤの信号名が付与されている配線の端点となる入力端子と、ＲＴＬ設計データＲＤの信号名と対応付けて表すＲＴＬ参照信号／ポート番号関係表ＲＰを作成する。ここで、ＲＴＬ参照信号／ポート番号関係表ＲＰの具体例について説明する。
【０１３９】
図２０は、ＲＴＬ参照信号／ポート番号関係表ＲＰの具体例を示す説明図である。図２０において、ＲＴＬ参照信号／ポート番号関係表ＲＰは、差分回路の入力端子のポート番号と、ＲＴＬ設計データＲＤ上の信号の信号名との関係を示す情報である。なお、ＲＴＬ参照信号／ポート番号関係表ＲＰは、図１に示した信号情報１０４に相当する。
【０１４０】
ＲＴＬ参照信号／ポート番号関係表ＲＰによれば、差分回路の入力端子のポート番号「０」と、ＲＴＬ設計データＲＤ上の信号の信号名「ＴＯＰ．Ａ．Ｂ．Ｃ［０］」との関係を特定することができる。また、差分回路の入力端子のポート番号「１」と、ＲＴＬ設計データＲＤ上の信号の信号名「ＴＯＰ．Ａ．Ｂ．ＥＮ＿Ａ」との関係を特定することができる。
【０１４１】
また、電力見積装置２００は、選択した観測信号と、観測信号を出力する出力端子とを対応付けて表す観測信号／ポート番号関係表ＳＰを作成する。ここで、観測信号／ポート番号関係表ＳＰの具体例について説明する。
【０１４２】
図２１は、観測信号／ポート番号関係表ＳＰの具体例を示す説明図である。図２１において、観測信号／ポート番号関係表ＳＰは、差分回路の出力端子のポート番号と、ネットリストＮＬ上の観測信号の信号名との関係を示す情報である。
【０１４３】
観測信号／ポート番号関係表ＳＰによれば、差分回路の出力端子のポート番号「０」と、観測信号の信号名「ＴＯＰ．Ａ．Ｂ．ｓ０」との関係を特定することができる。また、差分回路の出力端子のポート番号「１」と、観測信号の信号名「ＴＯＰ．Ａ．Ｂ．ｓ１０」との関係を特定することができる。
【０１４４】
すなわち、観測信号／ポート番号関係表ＳＰおよびＲＴＬ参照信号／ポート番号関係表ＲＰによれば、差分回路のどのポート番号と、どの信号がつながれるべきかを特定することができる。
【０１４５】
（計測回路の作成例）
つぎに、計測回路の作成例について説明する。まず、計測回路作成部３０４は、計測回路の計測回路計画ＭＰを作成する。具体的には、例えば、計測回路作成部３０４は、計算範囲ＩＤマップデータＥＤとクロック起点データＣＫＤと非クロックツリー観測ポイントデータＯＤとメモリ端子データＭＤと電力係数（ユニットセル）データＰＵとに基づいて、計測回路計画ＭＰを作成する。
【０１４６】
図２２は、計測回路計画ＭＰの具体例を示す説明図である。図２２において、計測回路計画ＭＰは、どのような計測回路を作成するのかを決める情報である。計測回路計画ＭＰには、例えば、コアエレメント１個当たりに接続してよい信号数の上限やコアにいれてよいコアエレメントの上限値やグルーピングの条件が記述されている。
【０１４７】
グルーピングの条件は、例えば、クロックツリーに含まれる観測信号をグルーピング対象とする条件である。また、グルーピング対象となる信号が代表信号となる部分クロックツリーが１つの計算範囲ＩＤを持ち、全クロックツリーの電力係数の合計値に対して、その部分クロックツリーの電力係数がｂｏｕｎｄ＿ｒａｔｉｏ以下となる条件である。また、同一のコアに含まれるセルには宣言された順にアドレスが振られるものとし、先頭を０とする条件である。これにより、アドレスマップも同時に決めることができる。
【０１４８】
つぎに、計測回路作成部３０４は、計測回路の計測回路データＫＤを作成する。ここで、計測回路データＫＤのデータ構造について説明する。
【０１４９】
図２３は、計測回路データＫＤのデータ構造例を示す説明図である。図２３において、計測回路データＫＤは、計測回路インスタンスデータＭＩと、コア記述ＣＡと、最上位記述ＭＨと、を含む。最上位記述ＭＨは、例えば、シミュレーション環境に計測回路をインスタンスするための記述である。
【０１５０】
計測回路インスタンスデータＭＩは、例えば、シミュレーション環境に計測回路に含まれるコアをインスタンスするための記述である。計測回路インスタンスデータＭＩでは、階層参照する信号の解決を行う。コア記述ＣＡは、計測回路に含まれるコアに関する記述である。ここで、計測回路インスタンスデータＭＩおよび最上位記述ＭＨの具体例について説明する。
【０１５１】
図２４は、計測回路インスタンスデータＭＩの具体例を示す説明図である。図２４において、計測回路インスタンスデータＭＩには、例えば、サンプリングする区間の最大値やサンプリング期間の指定で許容すべきサイクル数が記述されている。また、計測回路計画ＭＰで決まった計測ポイントの信号名の先頭のモジュール名をトップモジュールへのパスに置き換え、設定値にあった値を計測部品にアサインする記述が含まれている。
【０１５２】
図２５は、最上位記述ＭＨの具体例を示す説明図である。図２５において、最上位記述ＭＨは、ＲＴＬのテストベンチによってインスタンスされ、計測回路をインスタンスするための記述である。
【０１５３】
このように、計測回路計画ＭＰに基づいて、セルのインスタンスと階層参照との結線を行い、設定値でｂｕｎｄｌｅ＿ｐｏｓｅｄｇｅ＿ｃｏｕｎｔｅｒ，ＲＡＭ，ＢＵＳ，コントローラのパラメータ値を決めている。
【０１５４】
また、計測回路作成部３０４は、差分回路が作成された場合、クロックツリー観測信号／ポート番号関係表ＣＰと非クロックツリー観測信号／ポート番号関係表ＮＣＰとに基づいて、作成された差分回路に合わせて計測回路データＫＤを修正する。
【０１５５】
例えば、計測回路データＫＤの参照先は、電力見積用のネットリストＮＬの信号になっている。このため、計測回路作成部３０４は、例えば、「ＴＯＰ．Ａ．Ｂ．ｓ０」を「ｔｅｓｔｂｅｎｃｈ．ｔａｒｇｅｔ．Ａ．Ｂ．ｓ０」に変換して、計測回路データＫＤ中の「ｔｅｓｔｂｅｎｃｈ．ｔａｒｇｅｔ．Ａ．Ｂ．ｓ０」の記述を「ｔｅｓｔｂｅｎｃｈ．ｄｉｆｆ＿ｃｉｒｃｕｉｔ．ｉｎｓｔ．ｏｕｔ＿ｄａｔａ［０］」に置き換える。
【０１５６】
同様に、計測回路作成部３０４は、「ＴＯＰ．Ａ．Ｂ．ｓ１０」から置換文字列である「ｔｅｓｔｂｅｎｃｈ．ｔａｒｇｅｔ．Ａ．Ｂ．ｓ１０」を得て、計測回路データＫＤ中の「ｔｅｓｔｂｅｎｃｈ．ｔａｒｇｅｔ．Ａ．Ｂ．ｓ１０」の記述を「ｔｅｓｔｂｅｎｃｈ．ｄｉｆｆ＿ｃｉｒｃｕｉｔ．ｉｎｓｔ．ｏｕｔ＿ｄａｔａ［１］」に置き換える。これにより、差分回路に合わせて計測回路データＫＤを修正することができる。
【０１５７】
最後に、計測回路作成部３０４は、計測回路計画ＭＰに計測回路の情報を付加することにより、計測回路計画ＭＰを更新する。ここで、計測回路計画ＭＰの更新例について説明する。
【０１５８】
図２６は、計測回路計画ＭＰの更新例を示す説明図である。図２６において、計測回路計画ＭＰは、計測回路の情報（図２６中、下線部分）が付加された更新後の計測回路計画ＭＰである。図面では、計測回路計画ＭＰの一部を抜粋して表示している。
【０１５９】
なお、計測回路の作成については、例えば、特開２００７−１０２３３７号公報を参照することができる。また、論理シミュレーションをソフトウェアシミュレータで実行する場合には、計測回路中のバスやＲＡＭは不要である。また、計測回路作成部３０４は、グルーピング回路を用いることにより、計測回路の回路量を削減することにしてもよい。なお、グルーピング回路を用いた計測回路量の削減については、例えば、特開２００９−０５３７４７号公報を参照することができる。ここで、計測回路の具体例について説明する。
【０１６０】
図２７および図２８は、計測回路の回路構成例を示す説明図である。図２７において、計測回路２７０１は、ＲＴＬ設計データＲＤとネットリストＮＬとの差分回路が作成されなかった場合の観測信号の信号値が変化した回数を計測する回路である。被評価回路２７０２は、消費電力の見積もり対象となる対象回路を表している。
【０１６１】
計測回路２７０１には、各コアを制御する共通のコントローラがあり、各コアにはデータを保持するためのＲＡＭと、ＲＡＭにデータを書き込むためのバスが１つずつある。Ｃｏｕｎｔｅｒは、０からバスに接続可能な計測数のＭａｘ値−１のアドレスとその時を送る。これにより、ｂｕｎｄｌｅ＿ｐｏｓｅｄｇｅ＿ｃｏｕｎｔｅｒの中でバスに書き込むべきデータを保持するレジスタの値の転送が行われる。
【０１６２】
なお、計測回路計画ＭＰにおけるコア、コアエレメントは、計測回路２７０１中のｂｕｎｄｌｅ＿ｐｏｓｅｄｇｅ＿ｃｏｕｎｔｅｒにつながれる信号の集まりを指している。
【０１６３】
また、図２８において、計測回路２８０１は、ＲＴＬ設計データＲＤとネットリストＮＬとの差分回路が作成された場合の観測信号の信号値が変化した回数を計測する回路である。差分回路インスタンス回路２８０２は、差分回路がインスタンスされた回路である。被評価回路２８０３は、消費電力の見積もり対象となる対象回路を表している。
【０１６４】
（動的統計データＥＲの具体例）
図２９は、動的統計データＥＲの具体例を示す説明図である。図２９において、動的統計データＥＲは、論理シミュレーションの実行結果を表す、あるコアのダンプデータである。コアエレメント（ＣＥ）の最大数を「１０２４」にした場合、メモリアドレスは、０ｘ４００（＝１０２４）ずつ統計データが格納される。
【０１６５】
ａｄｄｒｅｓｓには、（ａｄｄｒｅｓｓ＞＞１０）回目の（ａｄｄｒｅｓｓ＆（１０２４−１））番目のＣＥの結果が格納される。また、０ｘ０〜０ｘ３９９は、ＣＥが計算中に初期値が書き込まれるため無効データである。このようにして、任意のサンプリングの任意のＣＥの出力値を取り出すことができる。
【０１６６】
（消費電力の見積例）
図３０は、動的統計データＥＲに基づく対象回路の消費電力の見積例を示す説明図である。電力算出部３０６は、電力係数（ユニットセル）データＰＵと、メモリ端子データＭＤと、電力係数（メモリ）データＰＭとを読み込んでコンピュータ処理可能なデータ構造に変換する。
【０１６７】
つぎに、電力算出部３０６は、電力係数（ユニットセル）データＰＵと、メモリ端子データＭＤと、電力係数（メモリ）データＰＭとに基づいて、電力係数を縮退する。ここで、縮退とは、計測回路内の各セルの電力係数の合計値を用いて、計測回路の計測範囲に応じた電力を算出するための電力係数を求める処理である。具体的には、例えば、電力算出部３０６は、クロックツリー向けの電力係数、非クロックツリー向けの電力係数およびメモリ向けの電力係数を縮退する。
【０１６８】
つぎに、電力算出部３０６は、計算範囲ＩＤマップデータＥＤと、計測回路計画ＭＰと、現計算における電力係数と、動的統計データＥＲとに基づいて、対象回路の消費電力を算出する。現計算における電力係数とは、縮退後の電力係数、例えば、クロックツリー向けの電力係数、非クロックツリー向けの電力係数およびメモリ向けの電力係数である。
【０１６９】
そして、電力算出部３０６は、電力計算結果出力Ｉ／Ｆを介してデータをダンプする。この際、電力算出部３０６は、計算範囲で排他的に集計した結果と計算範囲で積算的に集計した結果の２種類を計算範囲ＩＤごとにファイルに落とす。これにより、計測対象の削減に合わせた電力計算が可能となるとともに計算回数を削減することができる。
【０１７０】
（電力見積データＰＥの出力例）
つぎに、図３１〜図３３を用いて、電力見積データＰＥの出力例について説明する。
【０１７１】
図３１は、電力見積データＰＥの出力例を示す説明図（その１）である。図３１において、電力見積データＰＥは、対象回路内の各計算範囲について、各計算範囲の電力値と、各計算範囲の電力値および該計算範囲の子孫となる計算範囲の電力値を合算した合算電力値とを示す情報である。
【０１７２】
具体的には、電力見積データＰＥにおいてカンマで区切られた数値のうち、１番目の数値は、クロックツリーを構成する組み合わせセルやＣＧＩＣなどの電力値を表している。２番目の数値は、組み合わせセルなどの非フリップフロップの電力値を表している。３番目の数値は、クロック端子にクロックツリーがつながっているフリップフロップのクロック端子成分の電力値を表している。
【０１７３】
４番目の数値は、クロック端子にクロックツリーがつながっているフリップフロップの非クロック端子成分の電力値を表している。５番目の数値は、クロック端子にクロックツリーがつながっていないフリップフロップの電力値を表している。６番目の数値は、ＲＡＭ／ＲＯＭの電力値を表している。
【０１７４】
図３２は、電力見積データＰＥの出力例を示す説明図（その２）である。図３２において、波形グラフＷＧは、図３１に示した電力見積データＰＥをグラフ化したものである。図３２中、縦軸は電力値、横軸はサンプルＩＤを表している。サンプルＩＤは、例えば、所定間隔（例えば、１０［μｓ］）ごとの結果の識別子である。波形グラフＷＧは、下から上に向かって電力見積データＰＥの１番目〜６番目の数値が順にスタックされたグラフである。
【０１７５】
図３３は、電力見積データＰＥの出力例を示す説明図（その３）である。図３３において、見積結果リストＬＴは、ゲートレベルの消費電力を見積もる市販のツールＡ，Ｂ，Ｃ，Ｄの電力見積結果を示す表である。また、図３３において、波形グラフＷＧは、図３２に示した波形グラフＷＧのうち見積結果リストＬＴの波形データによる電力見積（９．２６［μｓ］）に近いと思われる付近を拡大したものである。
【０１７６】
波形グラフＷＧによれば、クロックツリー電力、フリップフロップ電力のクロックツリー部分電力は、他のツールの電力見積結果と比較的よくあっていることが分かる。また、ＲＡＭ／ＲＯＭについては、計算を端折るため精度が落ちるような計算をしているものの他のツールと５［％］程度の誤差しかないことがわかる。また、非クロックツリー部分については、平均が、非フリップフロップが６８［ｍＷ］、フリップフロップの非クロックツリー部分が２３．５［ｍＷ］であり、合計９２［ｍＷ］程度になり、他のツールと近い値となっている。
【０１７７】
（電力見積装置２００の電力見積処理手順）
つぎに、電力見積装置２００の電力見積処理手順について説明する。
【０１７８】
図３４は、電力見積装置２００の電力見積処理手順の一例を示すフローチャートである。図３４のフローチャートにおいて、まず、電力見積装置２００は、対象回路のＲＴＬ設計データＲＤおよびネットリストＮＬを取得したか否かを判断する（ステップＳ３４０１）。
【０１７９】
ここで、電力見積装置２００は、ＲＴＬ設計データＲＤおよびネットリストＮＬを取得するのを待つ（ステップＳ３４０１：Ｎｏ）。そして、電力見積装置２００は、ＲＴＬ設計データＲＤおよびネットリストＮＬを取得した場合（ステップＳ３４０１：Ｙｅｓ）、ＲＴＬ設計データＲＤとネットリストＮＬとの間で同一の信号線を指す信号の対応関係を表すマッピングデータＭＤを作成する（ステップＳ３４０２）。
【０１８０】
つぎに、電力見積装置２００は、マッピングデータＭＤと電力見積設定データＳＴとテクノロジーライブラリＴＬＢとクロックソース起点データＣＳと配線容量データＷＤとに基づいて、基礎データを作成する基礎データ作成処理を実行する（ステップＳ３４０３）。基礎データ作成処理の具体的な処理手順については、図３５を用いて後述する。
【０１８１】
そして、電力見積装置２００は、計測回路計画ＭＰに基づいて、観測信号の信号値が変化した回数を計測する計測回路を作成する（ステップＳ３４０４）。つぎに、電力見積装置２００は、作成した差分回路と計測回路とをＲＴＬ用のテストベンチに実装して、ＲＴＬ設計データＲＤに基づく対象回路の論理シミュレーションを実行する（ステップＳ３４０５）。これにより、対象回路の消費電力の見積もりに必要となる電力パラメータを抽出することができる。
【０１８２】
つぎに、電力見積装置２００は、観測信号の信号値の変化を計測した計測結果を含む論理シミュレーションの実行結果を表す動的統計データＥＲに基づいて、対象回路の消費電力を算出する（ステップＳ３４０６）。そして、電力見積装置２００は、算出した対象回路の消費電力の算出結果を表す電力見積データＰＥを出力して（ステップＳ３４０７）、本フローチャートによる一連の処理を終了する。これにより、対象回路の消費電力を見積もることができる。
【０１８３】
つぎに、図３４に示したステップＳ３４０３の基礎データ作成処理の具体的な処理手順について説明する。
【０１８４】
図３５は、基礎データ作成処理の具体的処理手順の一例を示すフローチャートである。図３５のフローチャートにおいて、まず、電力見積装置２００は、ネットリストＮＬおよびクロックソース起点データＣＳに基づいてクロックツリー解析を行うことにより、クロック起点データＣＫＤおよびクロック起点親子関係データＦＤを作成する（ステップＳ３５０１）。
【０１８５】
つぎに、電力見積装置２００は、対象回路上の計算範囲を指定することにより、計算範囲ＩＤマップデータＥＤを作成する（ステップＳ３５０２）。そして、電力見積装置２００は、ネットリストＮＬの中からＲＡＭ／ＲＯＭを抽出することにより、メモリ端子データＭＤを作成する（ステップＳ３５０３）。
【０１８６】
つぎに、電力見積装置２００は、ネットリストＮＬの中から非クロックツリーの信号のうちの比率ｒの信号をランダムに選択することにより、非クロックツリー観測ポイントデータＯＤを作成する（ステップＳ３５０４）。そして、電力見積装置２００は、対象回路内のユニットセルおよびメモリの電力係数を算出することにより、電力係数（ユニットセル）データＰＵおよび電力係数（メモリ）データＰＭを作成する（ステップＳ３５０５）。
【０１８７】
つぎに、電力見積装置２００は、マッピングデータＭＤを参照して、ネットリストＮＬ上の信号の信号名のうち、ＲＴＬ設計データＲＤ上の信号の信号名に対応する信号の信号名を特定する（ステップＳ３５０６）。そして、電力見積装置２００は、クロック起点データＣＫＤまたは非クロックツリー観測ポイントデータＯＤの中から観測信号となる信号を選択する（ステップＳ３５０７）。
【０１８８】
つぎに、電力見積装置２００は、ネットリストＮＬ上の観測信号を出力するセルから後段のセルを順次辿ることにより、ＲＴＬ設計データＲＤ上の信号の信号名に対応する信号名の信号を出力するセルを検出する（ステップＳ３５０８）。そして、電力見積装置２００は、クロック起点データＣＫＤまたは非クロックツリー観測ポイントデータＯＤの中から選択されていない未選択の信号があるか否かを判断する（ステップＳ３５０９）。
【０１８９】
ここで、未選択の信号がある場合（ステップＳ３５０９：Ｙｅｓ）、電力見積装置２００は、ステップＳ３５０７に戻って、クロック起点データＣＫＤまたは非クロックツリー観測ポイントデータＯＤの中から観測信号となる未選択の信号を選択する（ステップＳ３５０７）。
【０１９０】
一方、未選択の信号がない場合（ステップＳ３５０９：Ｎｏ）、電力見積装置２００は、ＲＴＬ設計データＲＤとネットリストＮＬとの差分回路を表す差分回路データＤＦを作成する（ステップＳ３５１０）。そして、電力見積装置２００は、作成した差分回路データＤＦに対応する差分回路コンフィギュレーションデータＤＣＧを作成して（ステップＳ３５１１）、図３４に示したステップＳ３４０４に移行する。
【０１９１】
これにより、対象回路の消費電力の見積もりに必要となる電力パラメータを抽出するための差分回路を作成することができる。
【０１９２】
なお、上述した説明では、クロック起点データＣＫＤまたは非クロックツリー観測ポイントデータＯＤの中から観測信号となる信号を選択することにしたが、これに限らない。例えば、電力見積装置２００は、ユーザの操作入力により指定された信号を観測信号として選択することにしてもよい。
【０１９３】
以上説明したように、実施の形態にかかる電力見積装置２００によれば、ネットリストＮＬ上の観測信号を出力する第１のセルから前段のセルを順次辿ることにより、ＲＴＬ設計データＲＤの信号と対応関係を有する信号が入力される第２のセルを検出できる。また、電力見積装置２００によれば、第２のセルから第１のセルまでの部分回路をネットリストＮＬの中から抽出することにより、ＲＴＬ設計データＲＤとネットリストＮＬとの差分回路を表す差分回路データＤＦを作成できる。
【０１９４】
これにより、論理合成やレイアウト工程を経て詳細化された対象回路内のセルから出力される観測信号の波形データ、すなわち、対象回路の消費電力の見積もりに必要となる電力パラメータを抽出するための差分回路を作成することができる。
【０１９５】
また、電力見積装置２００によれば、第２のセルに入力されるネットリストＮＬの信号と対応関係を有するＲＴＬ設計データＲＤの信号の信号名と、第２のセルとを対応付けて表すＲＴＬ参照信号／ポート番号関係表ＲＰを作成することができる。これにより、差分回路の入力端子のポート番号と、ＲＴＬ設計データＲＤ上の信号の信号名との対応関係を特定することができる。
【０１９６】
また、電力見積装置２００によれば、選択された観測信号の信号名と、観測信号を出力する第１のセルとを対応付けて表す観測信号／ポート番号関係表ＳＰを作成することができる。これにより、差分回路の出力端子のポート番号と、ネットリストＮＬ上の観測信号の信号名との対応関係を特定することができる。
【０１９７】
また、電力見積装置２００によれば、ネットリストＮＬの中から、供給先へのクロック信号の供給を一時的に停止するセルから出力される信号を観測信号として選択することができる。これにより、論理合成時などに自動挿入されるＣＧＩＣから出力される信号の波形データを抽出するための差分回路を作成することができる。
【０１９８】
また、電力見積装置２００によれば、対象回路のクロックソースから辿ることができる出力端子群のうち、出力される信号の信号値が変化する単位時間当たりの回数が互いに異なる値となる出力端子から出力される信号を観測信号として選択することができる。これにより、消費電力の見積もりに必要となるトグルレートの変化点の信号の波形データを抽出するための差分回路を作成することができる。
【０１９９】
また、電力見積装置２００によれば、対象回路のクロックソースから辿ることができない出力端子群のうちのいずれかの出力端子から出力される信号を観測信号として選択することができる。具体的には、例えば、電力見積装置２００によれば、非クロックツリーの信号のうち比率ｒの信号をランダムに選択することができる。これにより、非クロックツリーの信号を間引くことができ、差分回路の回路量を抑えることができる。
【０２００】
また、電力見積装置２００によれば、ＲＴＬ設計データＲＤと差分回路データＤＦと計測回路データＫＤとを、ＲＴＬ用のテストベンチに与えて対象回路の論理シミュレーションを実行することができる。例えば、電力見積装置２００は、ＲＴＬ参照信号／ポート番号関係表ＲＰと観測信号／ポート番号関係表ＳＰとに基づいて、ＲＴＬ設計データＲＤと差分回路データＤＦと計測回路データＫＤとをテストベンチに実装して論理シミュレーションを実行する。そして、電力見積装置２００は、観測信号の信号値の変化を計測した計測結果を含む論理シミュレーションの実行結果を取得することができる。
【０２０１】
これにより、ＲＴＬ設計データＲＤとネットリストＮＬとの差分回路から出力される観測信号の波形データ、すなわち、対象回路の消費電力の見積もりに必要となる電力パラメータを抽出することができる。
【０２０２】
また、電力見積装置２００によれば、観測信号の信号値の変化を計測した計測結果を含む論理シミュレーションの実行結果に基づいて、対象回路の消費電力を見積もることができる。これにより、従来のＲＴＬ設計データからは推測が難しかった論理合成やレイアウト工程において追加されたセルから出力される信号の波形データを用いて対象回路の消費電力の見積もることができ見積精度を向上させることができる。
【０２０３】
このように、電力見積装置２００によれば、ＲＴＬの検証環境を使ってゲートレベルと同等の精度で消費電力を見積もることができる。また、電力見積装置２００によれば、対象回路の機能検証を行うためのゲートレベルの検証環境の構築が不要となり、検証者の作業負荷を軽減することができるとともに検証期間の短縮化を図ることができる。
【０２０４】
なお、本実施の形態で説明した電力見積支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本電力見積支援方法プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本電力見積支援方法プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２０５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２０６】
（付記１）コンピュータに、
消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得し、
前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択し、
取得した前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第１のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第２のセルを検出し、
検出した前記第２のセルから前記第１のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成し、
前記第２のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第２のセルとを対応付けて表す信号情報を作成し、
作成した前記差分回路情報と前記信号情報とを関連付けて出力する、
処理を実行させることを特徴とする電力見積支援プログラム。
【０２０７】
（付記２）前記コンピュータに、
前記観測信号の信号名と、前記観測信号を出力する前記第１のセルとを対応付けて表す観測信号情報を作成する処理を実行させ、
前記出力する処理は、
作成した前記観測信号情報と前記差分回路情報と前記信号情報とを関連付けて出力することを特徴とする付記１に記載の電力見積支援プログラム。
【０２０８】
（付記３）前記選択する処理は、
前記ネットリストの中から、供給先へのクロック信号の供給を一時的に停止するセルから出力される信号を前記観測信号として選択することを特徴とする付記２に記載の電力見積支援プログラム。
【０２０９】
（付記４）前記コンピュータに、
前記ネットリスト内の出力端子群の中から、前記対象回路のクロックソースから辿ることができる出力端子群を抽出する処理を実行させ、
前記選択する処理は、
抽出した前記出力端子群のうち、出力される信号の信号値が変化する単位時間当たりの回数が互いに異なる値となる出力端子から出力される信号を前記観測信号として選択することを特徴とする付記２または３に記載の電力見積支援プログラム。
【０２１０】
（付記５）前記選択する処理は、
前記ネットリスト内の出力端子群のうち、抽出した前記出力端子群を除く残余の出力端子群のいずれかの出力端子から出力される信号を前記観測信号として選択することを特徴とする付記４に記載の電力見積支援プログラム。
【０２１１】
（付記６）前記コンピュータに、
前記観測信号として選択した前記残余の出力端子群のいずれかの出力端子から出力される信号の信号数が閾値未満か否かを判定し、
前記信号数が前記閾値未満と判定した場合に、前記残余の出力端子群のいずれかの出力端子から出力される信号を前記観測信号として選択する、
処理を実行させることを特徴とする付記５に記載の電力見積支援プログラム。
【０２１２】
（付記７）前記コンピュータに、
前記信号情報と前記観測信号情報とに基づいて、前記設計情報と、前記差分回路情報とを、テストベンチに与えて前記対象回路の論理シミュレーションを実行することにより、前記観測信号の信号値の変化を計測した計測結果を含む前記論理シミュレーションの実行結果を取得し、
取得した前記実行結果を出力する、
処理を実行させることを特徴とする付記２〜６のいずれか一つに記載の電力見積支援プログラム。
【０２１３】
（付記８）消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得する取得部と、
前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択する選択部と、
前記取得部によって取得された前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第１のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第２のセルを検出する検出部と、
前記検出部によって検出された前記第２のセルから前記第１のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成する第１の作成部と、
前記第２のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第２のセルとを対応付けて表す信号情報を作成する第２の作成部と、
前記第１の作成部によって作成された前記差分回路情報と前記第２の作成部によって作成された前記信号情報とを関連付けて出力する出力部と、
を有することを特徴とする電力見積支援装置。
【０２１４】
（付記９）コンピュータが、
消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得し、
前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択し、
取得した前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第１のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第２のセルを検出し、
検出した前記第２のセルから前記第１のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成し、
前記第２のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第２のセルとを対応付けて表す信号情報を作成し、
作成した前記差分回路情報と前記信号情報とを関連付けて出力する、
処理を実行することを特徴とする電力見積支援方法。
【符号の説明】
【０２１５】
１００  電力見積支援装置
２００  電力見積装置
３０１  取得部
３０２  マッピングデータ作成部
３０３  差分回路作成部
３０４  計測回路作成部
３０５  実行部
３０６  電力算出部
３０７  出力部
【図１】
2014016830.tif 000003
【図２】
2014016830.tif 000004
【図３】
2014016830.tif 000005
【図４】
2014016830.tif 000006
【図５】
2014016830.tif 000007
【図６】
2014016830.tif 000008
【図７】
2014016830.tif 000009
【図８】
2014016830.tif 000010
【図９】
2014016830.tif 000011
【図１０】
2014016830.tif 000012
【図１１】
2014016830.tif 000013
【図１２】
2014016830.tif 000014
【図１３】
2014016830.tif 000015
【図１４】
2014016830.tif 000016
【図１５】
2014016830.tif 000017
【図１６】
2014016830.tif 000018
【図１７】
2014016830.tif 000019
【図１８】
2014016830.tif 000020
【図１９】
2014016830.tif 000021
【図２０】
2014016830.tif 000022
【図２１】
2014016830.tif 000023
【図２２】
2014016830.tif 000024
【図２３】
2014016830.tif 000025
【図２４】
2014016830.tif 000026
【図２５】
2014016830.tif 000027
【図２６】
2014016830.tif 000028
【図２７】
2014016830.tif 000029
【図２８】
2014016830.tif 000030
【図２９】
2014016830.tif 000031
【図３０】
2014016830.tif 000032
【図３１】
2014016830.tif 000033
【図３２】
2014016830.tif 000034
【図３３】
2014016830.tif 000035
【図３４】
2014016830.tif 000036
【図３５】
2014016830.tif 000037