(57)【特許請求の範囲】
【請求項１】
半導体集積回路の消費電力を解析する消費電力解析方法において、
設計情報記憶手段に記憶される前記半導体集積回路に関する設計回路情報を解析して、クロックと前記クロックの出力を制御する信号を入力して回路ブロックへの前記クロックの入力を制御する測定対象回路を複数抽出するとともに、それぞれの前記測定対象回路を特徴付ける特徴情報を抽出する手順と、
複数の前記測定対象回路を、前記特徴情報に基づいて複数の前記測定対象回路を含む測定グループにグループ分けする手順と、
前記測定グループごとに動作回数を測定し、測定結果に基づいて前記測定グループに属する前記測定対象回路の動作率を算出する手順と、
を有することを特徴とする消費電力解析方法。
【請求項２】
前記測定対象回路の前記特徴情報を抽出する手順は、
前記設計回路情報を解析して前記測定対象回路に接続する所定の回路の数を算出し、前記所定の回路の数によって前記測定対象回路を特徴付ける、
ことを特徴とする請求項１記載の消費電力解析方法。
【請求項３】
前記測定対象回路の前記特徴情報を抽出する手順は、算出された前記所定の回路の数に基づいて、前記測定対象回路あたりの前記所定の回路の数と、対応する前記測定対象回路の数との関係を解析して、前記測定対象回路のグループを分ける前記所定の回路の数の閾値を設定し、
前記グループ分けする手順は、前記所定の回路の数の閾値と、前記測定対象回路ごとに算出された前記所定の回路の数とを比較して、前記測定対象回路をグループ分けする、
ことを特徴とする請求項２記載の消費電力解析方法。
【請求項４】
前記測定対象回路の動作率を算出する手順は、
前記半導体集積回路の設計回路に、前記測定グループごとに１の測定回路を埋め込み、エミュレータ装置を用いて論理エミュレーションを行って、前記測定回路に前記測定グループに属するすべての前記測定対象回路の動作回数を計数させ、前記測定回路が計数した前記動作回数に基づいて、前記測定グループに属する前記測定対象回路個々の動作率を算出する、
ことを特徴とする請求項１記載の消費電力解析方法。
【請求項５】
半導体集積回路の消費電力を解析する消費電力解析装置において、
前記半導体集積回路に関する設計回路情報を記憶する設計情報記憶手段と、
前記設計情報記憶手段に記憶される解析対象の半導体集積回路の設計回路情報を解析して、クロックと前記クロックの出力を制御する信号を入力して回路ブロックへの前記クロックの入力を制御する測定対象回路を複数抽出するとともに、それぞれの前記測定対象回路を特徴付ける特徴情報を抽出する測定対象回路解析手段と、
複数の前記測定対象回路を、前記特徴情報に基づいて複数の前記測定対象回路を含む測定グループにグループ分けするグルーピング手段と、
前記測定グループごとに動作回数を測定し、測定結果に基づいて前記測定グループに属する前記測定対象回路の動作率を算出する動作率測定手段と、
を有することを特徴とする消費電力解析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は消費電力解析方法及び消費電力解析装置に関し、特に半導体集積回路の消費電力を解析する消費電力解析方法及び消費電力解析装置に関する。
【背景技術】
【０００２】
システムＬＳＩ（Large Scale Integrated circuit）チップの開発では、設計段階においてチップの消費電力の見積りを高い精度で算出しておく必要がある。
ＬＳＩチップの消費電力を見積もるためには、内部論理回路を構成する各ゲートの動作回数の計測が必要になる。そこで、論理シミュレーションから組み合わせ回路やレジスタなどの動作回数を計測し、負荷容量や基本回路の電流式より消費電力を計算する（たとえば、特許文献１参照）。
【０００３】
システムＬＳＩを構成する特徴部分について、高精度かつ高速に消費電力を解析する手法もある。たとえば、論理回路中のレジスタ毎の０／１確率データと、レジスタ毎の動作率データからゲートの動作率算出用テストパターンを作成し、作成されたテストパターンと、動作率算出用に編集されたネットリストとを用いたシミュレーションによってゲートの動作率を算出する手法がある（たとえば、特許文献２参照）。また、内部に大容量または多ポートのメモリを搭載するＳｏＣ（System on Chip）のような大規模ＬＳＩの消費電力の計算であれば、シミュレーションによってメモリアクセス回数と、メモリアクセス時の消費電流とを計測し、計測結果を用いてメモリ平均消費電力計算を実行することでメモリ平均消費電力を算出する手法もある（たとえば、特許文献３参照）。
【０００４】
また、近年では、消費電力の削減に効果的なゲーテッドクロックバッファ（Gated Clock Buffer；以下、ＧＣＢとする）が、ＬＳＩに組み込まれるようになってきている。ＧＣＢは、ある回路ブロックが動作していないときは、その回路ブロック内のレジスタへのクロック入力を停止する機能を有する。このようなＧＣＢの動作率は、個々のＧＣＢに対して測定回路を手入力で設定し、シミュレーションを行って測定されていた。
【特許文献１】特開平２−１３６７５５号公報
【特許文献２】特開２００１−３５０８１５号公報
【特許文献３】特開２００３−２５６４９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来の消費電力解析方法では、測定対象回路の動作回数を測定するためにカウンタを測定信号ごとに埋め込む必要があった。
ＦＰＧＡ（Field Programmable Gate Array）や、エミュレータ装置を用いて消費電力解析を行う場合には動作率測定用のカウンタも対象回路に合成されるため、合成された回路量が増大してしまうという問題点があった。また、消費電力の予測には、カウンタの計測データをダンプする必要がある。カウンタ数が増加することによってダンプ出力も大きくなるため、消費電力解析の速度が低下するという問題も生じる。また、シミュレーションによる消費電力解析においても、ダンプデータの増加によるシミュレーション速度の低下が問題となっている。
【０００６】
ところで、従来設計者が手入力で挿入していたＧＣＢは、動作率の測定に際してもＧＣＢの挿入位置を把握している設計者が手入力で測定用カウンタを埋め込んでいた。しかし、近年では、論理合成ツールによって自動的に生成されるようになってきており、設計者が手入力で測定用カウンタを埋め込むことが困難になってきている。また、高い精度で動作率を測定するためには、ＧＣＢごとに測定用カウンタを設け、測定用カウンタのデータをダンプする必要がある。しかしながら、大規模なＬＳＩとなると、大量のＧＣＢが存在するため、手入力で測定用のカウンタを挿入することは難しい。加えて、ＧＣＢごとに設けられる測定用カウンタによってエミュレーションのリソース不足や、エミュレーション速度遅延が問題となる。
【０００７】
本発明はこのような点に鑑みてなされたものであり、消費電力の見積り精度を低下させることなく、解析時間を短縮することが可能な消費電力解析方法及び消費電力解析装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明では上記課題を解決するために、図１に示すような半導体集積回路の消費電力解析方法が提供される。本発明にかかる消費電力解析方法によれば、設計情報記憶手段１ａに記憶される解析対象の半導体集積回路に関する設計回路情報を解析する。そして、共通の動作モードで動作する回路ブロックにおいて、その動作モードを規定する測定対象回路を抽出するとともに、この測定対象回路を特徴付ける特徴情報を抽出する。次に、測定対象回路を、測定対象回路が有する特徴によってグループ分けするために指定されたグループ分けポリシーと、測定対象回路の特徴情報と、に基づいて、グループ分けする。そして、グルーピング手段１ｄによって分けられたグループごとに動作回数を測定し、測定結果に基づいて測定グループに属する測定対象回路の動作率を算出する。
【０００９】
このような消費電力解析方法によれば、設計回路情報が解析され、動作モードが共通の回路ブロックにおいて動作モードを規定する測定対象回路と、その特徴情報とが抽出される。次に、測定対象回路を特徴によってグループ分けするグループ分けポリシーに基づいて、抽出された測定対象回路をグループ分けする。そして、グループ分けされた測定グループごとに動作回数を測定し、測定結果に基づいて各測定対象回路の動作率を算出する。
【００１０】
また、上記課題を解決するために、半導体集積回路の消費電力を解析する消費電力解析装置において、半導体集積回路に関する設計回路情報を記憶する設計情報記憶手段と、設計情報記憶手段に記憶される解析対象の半導体集積回路の設計回路情報を解析して、共通の動作モードで動作する回路ブロックにおいて動作モードを規定する測定対象回路を抽出するとともに、測定対象回路を特徴付ける特徴情報を抽出する測定対象回路解析手段と、測定対象回路を、測定対象回路が有する特徴によってグループ分けするために指定されたグループ分けポリシーと、測定対象回路の特徴情報と、に基づいて測定対象回路を測定グループにグループ分けするグルーピング手段と、測定グループごとに動作回数を測定し、測定結果に基づいて測定グループに属する測定対象回路の動作率を算出する動作率測定手段と、を有することを特徴とする消費電力解析装置、が提供される。
【００１１】
このような消費電力解析装置では、解析対象の半導体集積回路の設計回路情報を解析し、測定対象回路とその特徴情報とを抽出する。特徴情報に基づいて測定対象回路をグループ分けして、その測定グループごとに動作回数を測定し、各測定対象回路の動作率を算出する。
【発明の効果】
【００１２】
本発明では、消費電力解析のための動作率測定にあたって、設計回路情報に基づいて抽出される測定対象回路を、測定対象回路の有する特徴に基づいてグループ分けする。そして、グループ分けされた測定グループごとに動作回数を測定し、測定結果に基づいて各測定対象回路の動作率を算出する。このように、測定グループごとに動作回数を測定することにより、測定のために埋め込まれる測定回路の数を削減してエミュレーションすることが可能となる。この結果、測定回路の埋め込みにより発生するエミュレーションのリソース不足や、エミュレーション速度遅延を軽減することが可能となり、消費電力の見積り精度を低下させることなく、解析時間を短縮することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、実施の形態に適用される発明の概念図である。本発明にかかる消費電力解析装置１は、設計情報記憶手段１ａ、解析情報記憶手段１ｂ、測定対象回路解析手段１ｃ、グルーピング手段１ｄ、動作率測定手段１ｅ、及び消費電力算出手段１ｆを有する。
【００１４】
設計情報記憶手段１ａは、消費電力解析の対象である半導体集積回路の設計情報を記憶する記憶手段である。設計情報は、回路設計のために生成される情報であり、回路に関する設計回路情報や、論理シミュレーションに用いられるテスト情報などが含まれる。設計回路情報には、たとえば回路の接続状態を表現したチップのネットリスト、回路をフリップフロップ（Flip-Flop；以下、ＦＦとする）や組み合わせ論理回路レベルで表現したＲＴＬ（Register Transfer Level）などがある。テスト情報には、たとえば、論理シミュレーションに用いられるテストベンチなどがある。
【００１５】
解析情報記憶手段１ｂは、消費電力解析処理で参照される情報と、解析結果情報とを記憶する記憶手段である。解析のために参照される情報として、グルーピングのためのグループ分けポリシーなどがある。解析結果情報として、測定対象回路解析手段１ｃによる解析結果、グルーピング手段１ｄによるグルーピングの結果などの情報がある。
【００１６】
測定対象回路解析手段１ｃは、設計情報記憶手段１ａに格納される設計回路情報を読み出し、これを解析して測定対象回路を抽出する。ここでは、共通の動作モードで動作する回路ブロックにおいて動作モードを規定する回路を測定対象回路とする。さらに、抽出された測定対象回路を特徴付ける特徴情報も抽出する。解析結果は、解析情報記憶手段１ｂに格納する。
【００１７】
グルーピング手段１ｄは、測定対象回路解析手段１ｃが抽出した測定対象回路を所定のグループ分けポリシーに基づいてグループ分けする。グループ分けポリシーには、グループ分けのための規則が、測定対象回路の特徴に基づいて指定されている。たとえば、回路ブロックを構成する所定の回路素子の数、クロック周波数、回路ブロックのモジュール構成などが指定される。グループ分けポリシーは、予めユーザが設定しておくこともできるし、測定対象回路解析手段１ｃの解析結果に基づいてユーザが任意に設定するとしてもよい。また、解析結果に基づいて、消費電力解析装置１がグループ分けポリシーを設定するとしてもよい。グルーピング手段１ｄでは、解析情報記憶手段１ｂに格納されるグループ分けポリシーと、測定対象回路の特徴情報と、に基づいて測定対象回路を複数の測定グループにグループ分けする。なお、グループ分け処理で参照される特徴情報は、測定対象回路解析手段１ｃによって抽出された特徴情報に限定されない。設定されるグループ分けポリシーに対応して設計情報から適宜抽出される。グループ分けの結果は、解析情報記憶手段１ｂに格納する。
【００１８】
動作率測定手段１ｅは、測定グループごとに動作回数を測定し、測定結果に基づいて測定グループに属する測定対象回路の動作率を算出する。たとえば、設計回路情報に記述される設計回路に測定グループに対応する１つの測定回路を埋め込み、測定回路が埋め込まれた設計回路の回路情報に基づいて、エミュレータ装置でエミュレーションを実行させる。測定回路は、測定グループに属する測定対象回路の動作回数を計測する回路であり、エミュレーションによって測定グループ全体の動作回数が得られる。この測定グループ全体の動作回数に基づいて、グループ内の測定対象回路の動作率を算出する。
【００１９】
消費電力算出手段１ｆは、算出された動作率に基づいて、消費電力の見積りを算出する。
このような構成の消費電力解析装置１により実行される消費電力解析方法について説明する。処理開始前に、消費電力解析の対象となる半導体集積回路の設計情報が設計情報記憶手段１ａに格納される。処理が開始されると、測定対象回路解析手段１ｃが、設計回路情報を解析して動作モードが共通の回路ブロックの動作モードを規定する測定対象回路を抽出する。さらに、測定対象回路の特徴情報も抽出しておく。次に、グルーピング手段１ｄが、抽出された測定対象回路を、グループ分けポリシーと、測定対象回路の特徴情報とに基づいてグループ分けする。動作率測定手段１ｅは、グループ分けされた測定グループごとに測定回路を用意してエミュレーションを行って動作回数を測定し、得られた測定結果に基づいて各測定対象回路の動作率を算出する。そして、消費電力算出手段１ｆが、算出された動作率に基づいて、消費電力の見積りを算出する。
【００２０】
以上のように、測定グループを単位として測定回路を配置して動作回数を測定することにより、動作回数の測定のために設計回路に埋め込まれる測定回路の数を削減して、エミュレーションを実行させることができる。この結果、エミュレーションのリソース不足や、エミュレーション速度遅延を軽減することが可能となり、消費電力の見積り精度を低下させることなく、解析時間を短縮することができる。また、従来、手入力で挿入されることの多かった測定回路を、適切な場所に自動配置することができるため、消費電力解析に要する手間と時間も大幅に削減することができる。
【００２１】
以下、実施の形態を、ＧＣＢが組み込まれたＬＳＩの消費電力を解析する場合を例に図面を参照して詳細に説明する。ＧＣＢは、ＧＣＢに接続する回路ブロックの動作モードを規定する回路であって、ＧＣＢがクロック入力を停止させているときは回路ブロックの動作モードはオフ、クロック入力を行っているときの動作モードはオンになる。消費電力の解析のため、ＧＣＢの動作回数を測定し、動作率を算出する。
【００２２】
図２は、本発明の実施の形態の消費電力解析装置のハードウェア構成の一例を示した図である。ここでは、消費電力解析装置をホスト計算機で構成している。
消費電力解析装置（ホスト計算機）１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、通信インタフェース１０６が接続されている。
【００２３】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。なお、半導体集積回路の設計情報及び解析情報は、ＨＤＤ１０３、または、図示しないＨＤＤインタフェースを介して接続する外部ＨＤＤに格納される。グラフィック処理装置１０４には、モニタ１０８が接続されており、ＣＰＵ１０１からの命令に従って画像をモニタ１０８の画面に表示させる。入力インタフェース１０５には、キーボード１０９ａやマウス１０９ｂが接続されており、キーボード１０９ａやマウス１０９ｂから送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、エミュレータ装置２００に接続されている。
【００２４】
消費電力解析装置１００が、対象の半導体集積回路の設計データ及び全体テストベンチをエミュレータ装置２００に送信することで、エミュレータ装置２００に論理エミュレーションを実行させる。そして、エミュレータ装置２００が実行したエミュレーション結果は、通信インタフェース１０６を介してＣＰＵ１０１に送られる。
【００２５】
次に、消費電力解析処理の手順を説明する。以下に説明する各処理は、上記の消費電力解析装置１００、または、消費電力解析装置１００からの指示を受けたエミュレータ装置２００が実行する。また、実施の形態では、消費電力解析装置１００及びエミュレータ装置２００は、ユーザからの開始指示によって各処理を実行し、処理が終了すると、処理結果をモニタ１０８画面に表示することとする。もちろん、各処理を自動的に実行させることもできる。なお、エミュレーション結果は、エミュレータ装置２００から結果を取得した消費電力解析装置１００がモニタ１０８に表示させるとする。
【００２６】
図３は、実施の形態の消費電力解析処理の手順を示したフローチャートである。
まず、消費電力解析処理で参照されるデータについて説明する。設計情報記憶手段１ａには、解析対象のチップの設計情報であるチップネットリスト３０１、ＲＴＬ３０２、及び全体テストベンチ３０３が記憶される。チップネットリスト３０１は、消費電力の解析を行う対象チップのネットリストである。ＲＴＬ３０２は、ＲＴＬレベルで記述された対象チップの回路情報である。全体テストベンチ３０３は、論理エミュレーションに用いられるテストベンチである。解析情報記憶手段１ｂには、解析に関する情報として、解析結果情報３１０、グルーピング制約３２０、グルーピング情報３３０、ＧＣＢ動作率３４０、波形データ３５０、及び平均動作率３６０が記憶される。解析結果情報３１０には、解析結果として抽出されたＧＣＢ、ＧＣＢの特徴情報、及び特徴情報から導出されるグループ分けのための閾値などがある。グルーピング制約３２０は、グループ分けポリシーなど、グルーピング処理で参照される制約情報である。グルーピング情報３３０は、グループ分けされたＧＣＢに関する情報である。ＧＣＢ動作率３４０は、算出された各ＧＣＢの動作率に関する情報である。波形データ３５０は、エミュレータ装置２００がエミュレーションを実行することによって生成された信号の波形データである。平均動作率３６０は、消費電力の見積りに用いるため、算出された時刻別データ平均動作率である。
【００２７】
続いて、処理の流れを説明する。利用者からの開始指示により、消費電力解析処理が開始される。
［ステップＳ０１］  対象チップに関するチップネットリスト３０１を読み出し、ネットリスト解析を行う。解析では、ＧＣＢを抽出し、続いて抽出したＧＣＢの特徴情報を抽出する。ここでは、特徴情報として、ＧＣＢごとに接続するＦＦ数及びクロックバッファ（ＣＬＫＢＵＦ）数を算出する。以下、ＧＣＢに接続するＦＦ数及びＣＬＫＢＵＦ数を、接続ＦＦ数と表記する。さらに、ＧＣＢの数と、接続ＦＦ数とを対応付け、接続ＦＦ数ごとのＧＣＢの数の分布状況が解析され、ＧＣＢのグループ化のための閾値が決定される。得られた情報は、解析結果情報３１０として管理される。詳細は後述する。
【００２８】
［ステップＳ０２］  グルーピングが指示されると、ステップＳ０１で取得したＧＣＢを、その特徴情報である接続ＦＦ数と、決定されたグループ化のための閾値と、に基づいてグループ分けする。詳細は後述する。
【００２９】
［ステップＳ０３］  グループ化されたＧＣＢグループ単位に、動作回数測定用のカウンタの埋め込みを行う。カウンタは、グループ化されたすべてのＧＣＢのゲートイネーブル数をカウントする。詳細は後述する。
【００３０】
［ステップＳ０４］  エミュレータ装置に対し、ステップＳ０３においてカウンタが埋め込まれたエミュレーション用の設計回路のデータを送信し、１回目の全体エミュレーションを実行させる。全体エミュレーション終了後、エミュレーション結果として、埋め込まれたカウンタから、測定されたカウント値をダンプする。そして、ダンプされたデータから時刻別のチップ全体のＧＣＢ動作率を算出し、算出されたＧＣＢ動作率から、時刻別データ平均動作率予測を行う。
【００３１】
［ステップＳ０５］  ステップＳ０４で算出された時刻別データ平均動作率予測に基づいて、波形取得を行うポイントを選択する。時刻別データ平均動作率予測に基づき、動作率予測が変化しない期間については波形取得を行わず、前の期間のデータを使用する。これにより、波形データを取得する波形取得ポイントを少なくすることができる。このようにして、エミュレーション時間を短縮する。
【００３２】
［ステップＳ０６］  波形取得ポイントを少なくしたモードで全体エミュレーション（２回目）を実行し、ステップＳ０５で指定された期間のみの波形データを取得する。
［ステップＳ０７］  全体エミュレーション（２回目）によって取得された波形データから平均動作率を算出し、算出された時刻別データ平均動作率から消費電力見積りを行う。
【００３３】
以上の処理手順が実行されることにより、解析対象のチップの消費電力見積りが算出される。消費電力の見積りに使用される動作回数の計測のための測定カウンタは、動作が類似する複数のＧＣＢで構成されるＧＣＢグループごとに設けられるので、測定カウンタの総数を削減することができる。
【００３４】
次に、測定対象回路解析処理（ステップＳ０１）、グルーピング処理（ステップＳ０２）、及びカウンタ埋め込み処理（ステップＳ０３）を詳細に説明する。
まず、測定対象回路解析処理について説明する。図４は、測定対象回路解析処理の手順を示したフローチャートである。
【００３５】
［ステップＳ１１］  チップネットリスト３０１を入力して解析し、ＧＣＢの抽出を行う。
［ステップＳ１２］  さらに、チップネットリスト３０１に基づき、ステップＳ１１で抽出されたＧＣＢの接続ＦＦ数を算出する。回路ブロック内のクロックバッファで消費される電力は、接続ＦＦ数と相関関係がある。共通のカウンタで動作回数を高精度で計測するには、同じような特徴を持つＧＣＢをグループ化することが望ましい。そこで、接続ＦＦ数を算出し、グループ分けのための特徴情報とする。
【００３６】
［ステップＳ１３］  ステップＳ１２で算出された接続ＦＦ数と、ＧＣＢ数との関係をグラフ化する。すなわち、１個当たりのＧＣＢに接続されているＦＦ数と、そのような構成のＧＣＢが解析対象のチップにいくつあるかというＧＣＢ数の分布をグラフ化し、利用者に提供する。なお、自動でグループ化のための閾値を決定するときは、分布状況を把握できればよく、必ずしもグラフを作成する必要はない。
【００３７】
［ステップＳ１４］  グラフ（ＧＣＢに接続されているＦＦ数と、ＧＣＢ数の分布とを表した図）に基づいて、人あるいは自動設定で、グループ分けのための接続ＦＦ数の閾値（グループ化方針）を決定し、グルーピング制約３２０に登録する。もちろん、接続ＦＦ数ごとに動作回数測定用のカウンタを設けることもできるが、ＧＣＢごとの接続ＦＦ数の分布状況によっては、効率的でない場合がある。そこで、接続ＦＦ数を所定の閾値で区切り、グループ化を図る。接続ＦＦ数の閾値を分布状況に応じて人が決定するときは、消費電力解析装置１００は、モニタ１０８に作成したグラフを表示して、利用者の入力を待つ。キーボード１０９ａまたはマウス１０９ｂを介してグループ化方針が入力されると、これをグルーピング制約３２０に登録する。自動設定のときは、予め閾値設定のポリシーを決めておく。消費電力解析装置１００は、接続ＦＦ数ごとのＧＣＢの分布状況と、閾値設定のポリシーとに基づいてグループ化方針を決定する。たとえば、「ＧＣＢ数の変化の大きいところ」という基準があれば、そのような値を検索し、閾値にする。
【００３８】
以上の処理が実行されることにより、チップネットリスト３０１が解析され、解析結果として、解析対象チップのＧＣＢ及びＧＣＢの接続ＦＦ数とともに、グループ化方針が決定される。
【００３９】
グループ化方針の決定を具体例を挙げて説明する。図５は、測定対象回路分析結果をグラフ化した一例を示した図である。
測定対象回路分析結果のグラフは、横軸が１個あたりのＧＣＢに接続されているＦＦ数であり、縦軸がＧＣＢの数である。図の例では、ＧＣＢに接続されているＦＦ数が、８→９、及び１６→１７と変化するときに、ＧＣＢの数が大きく変化している。したがって、ここでは、接続ＦＦ数が９と１７を閾値としてグループ化を行うというグループ化方針が決定される。具体的には、ＧＣＢの接続ＦＦ数が０から８のグループＡ４０１、接続ＦＦ数が９から１６のグループＢ４０２にグループ分けされる。接続ＦＦ数が１７以上のＧＣＢは、グループ化範囲を超えたＧＣＢであり、それぞれ個別にカウンタを埋め込み動作率が測定される。
【００４０】
次に、グルーピング処理について説明する。
上記の説明では、測定対象回路分析結果に基づいて、グルーピングのための閾値をグループ化方針として設定するとしたが、測定精度を向上させるために、さらにグループを分割することもできる。たとえば、ＧＣＢには、論理合成で自動的に設定されるものと、設計者が手入力で挿入するものとがある。手入力で挿入されたＧＣＢの動作率は電力見積りにて重要である可能性が高いことから、手入力されたＧＣＢであれば、個別に測定を行うというグループ分けポリシーを設定することができる。なお、手入力であるかどうかは、ＲＴＬ記述時にＧＣＢが設定されているかどうかでわかる。
【００４１】
また、精度向上のためには、なるべく同じように動作するＧＣＢをグループ化した方がよいことから、動作周波数やモジュール構成情報などに基づき、ＧＣＢグループをさらにサブグループに分割することもできる。このようなグループ分けポリシーは、接続ＦＦ数によってグループ化されたＧＣＢグループを、さらにサブＧＣＢグループに分割するときに利用される。
【００４２】
図６は、グルーピング処理の手順を示したフローチャートである。図４と同じものには同じ番号を付し、説明は省略する。
ここで、図４で説明したデータを除く、消費電力解析処理で参照されるデータについて説明する。個別計測ＧＣＢ情報３３１、グルーピングＧＣＢ情報３３２、グループａ情報３３３、及びグループｂ情報３３４は、グルーピングされたＧＣＢに関するグルーピング情報３３０に含まれる。個別計測ＧＣＢ情報３３１は、個別にカウンタを設けて測定を行うＧＣＢに関する情報である。グルーピングＧＣＢ情報３３２は、接続ＦＦ数に基づいてグループ分けされたＧＣＢに関する情報である。グループａ情報３３３及びグループｂ情報３３４は、グルーピングＧＣＢ情報３３２にグループ分けされたＧＣＢグループをさらに分割したサブＧＣＢグループに属するＧＣＢに関する情報である。グルーピングパラメータ３２１は、グルーピング制約３２０に含まれ、グループ分けするときに参照されるパラメータが登録されている。
【００４３】
［ステップＳ２１］  解析結果情報３１０に設定されているＧＣＢ、ＧＣＢの接続ＦＦ数、及びグループ化方針（グループ化のための接続ＦＦ数の閾値）を読み出し、グループ化方針に基づいてＧＣＢをグループ分けする。このとき、さらに、グループ分けポリシーが設定されていれば、設定されているポリシーも参照してグループ分けが行われる。接続ＦＦ数によるグループ化が行われ、個別に測定カウンタを設けて動作回数を計測するＧＣＢと、共通の測定カウンタで動作回数を計測するＧＣＢグループとに分けられる。個別に測定カウンタを設けるＧＣＢは、個別計測ＧＣＢ情報３３１に登録される。生成されたＧＣＢグループと、そのＧＣＢグループに属するＧＣＢに関する情報は、グルーピングＧＣＢ情報３３２に登録される。
【００４４】
［ステップＳ２２］  接続ＦＦ数によるグループ化が行われた後、生成された各ＧＣＢグループは、グルーピングパラメータ３２１に基づいてさらに分割される。ここでは、接続ＦＦ数によりグループ分けされたＧＣＢグループが、さらに、グループａとグループｂとのサブＧＣＢグループに分割される。分割されたグループａに属するＧＣＢに関する情報はグループａ情報３３３、グループｂに属するＧＣＢに関する情報はグループｂ情報３３４に登録される。
【００４５】
以上の処理手順が実行されることにより、接続ＦＦ数に基づいてグループ分けされたＧＣＢグループが、さらに、グルーピングパラメータに基づいてグループ分割される。このようにして、電力的な影響が類似するＧＣＢによりＧＣＢグループを構成することにより、測定の精度を向上させることができる。
【００４６】
ここで、各処理をさらに詳細に説明する。なお、図３に示した消費電力解析処理の全体の手順では、グルーピング処理が全て終了した後、各グループに動作率算出用カウンタを埋め込む処理を行うとしたが、動作率算出用カウンタの埋め込みは、所属するグループが決定（グループには属さず単独測定を行うことが決定された場合も含む）したときに、随時行うとすることもできる。以下では、動作率算出用カウンタの埋め込みをグループ決定ごとに行うとして説明する。
【００４７】
まず、接続ＦＦ数によるグループ化処理について説明する。図７は、グルーピング処理におけるグループ化の処理手順を示したフローチャートである。
ここでは、グループ分けポリシーとして、「手入力のＧＣＢは個別に測定」、「接続ＦＦ数に基づいて閾値でグループ化」が設定されているとする。
【００４８】
解析結果情報３１０の先頭に設定されるＧＣＢから、グループ化処理が開始される。
［ステップＳ２１１］  当該ＧＣＢは、手入力ＧＣＢであるかどうかが判定される。手入力ＧＣＢであるか否かは、ＲＴＬ３０２に記述されているか否かで判定する。手入力されたＧＣＢであるときには、処理をステップＳ２１４に進める。手入力されたＧＣＢでないときは、処理をステップＳ２１２へ進める。
【００４９】
［ステップＳ２１２］  当該ＧＣＢが手入力ＧＣＢでないときは、解析結果情報３１０に基づき、接続ＦＦ数を調査する。
［ステップＳ２１３］  ステップＳ２１２で読み出された当該ＧＣＢの接続ＦＦ数の数と閾値を比較する。接続ＦＦ数が閾値を超えているときは、処理をステップＳ２１４へ進める。接続ＦＦ数が閾値より小さいときは、処理をステップＳ２１５へ進める。
【００５０】
［ステップＳ２１４］  当該ＧＣＢが手入力である場合、あるいは、接続ＦＦ数が閾値より大きい場合は、単独で動作回数を計測するとし、単独で動作率算出用カウンタを挿入する。また、このＧＣＢを個別計測ＧＣＢ情報３３１に登録し、処理をステップＳ２１６へ進める。
【００５１】
［ステップＳ２１５］  当該ＧＣＢが手入力でなく、かつ、接続ＦＦ数が閾値より少ないときは、接続ＦＦ数に基づくグループ化を行う。すなわち、当該ＧＣＢをグルーピングＧＣＢ情報３３２に登録する。なお、図の例では、閾値は１つであるが、複数の閾値が設定されているときは、閾値によって分けられるグループのどれに所属するのかが判定され、対応するグループに登録される。
【００５２】
［ステップＳ２１６］  すべてのＧＣＢに関し、グループ分け処理が行われたかどうかを判定する。全ＧＣＢが終了していないときは、次のＧＣＢを指定し、ステップＳ２１１に戻る。全ＧＣＢが終了しているときは、処理を終了する。
【００５３】
以上の処理手順が実行されることにより、接続ＦＦ数によるグルーピング処理が行われ、ＧＣＢは、個別計測対象のＧＣＢと、接続ＦＦ数に応じたＧＣＢグループとに分けられる。個別計測対象のＧＣＢについては、単独で動作率算出用カウンタが挿入される。
【００５４】
接続ＦＦ数に応じたＧＣＢグループについては、さらに、グループ分割処理が行われる。図８は、グルーピング処理におけるグループ分割の処理手順を示したフローチャートである。図では、フローチャートとともに、処理ごとに生成されるグループの一例を示している。
【００５５】
接続ＦＦ数によるグループ化が終了し、接続ＦＦ数に基づいて、グループＩＤ＝１と、グループＩＤ＝２の２つのＧＣＢグループが生成されたとする。また、グループ分割のためのグループパラメータとして、動作周波数と、回路構成とが指定されていたとする。
【００５６】
［ステップＳ２２１］  処理が開始されると、接続ＦＦ数に基づいてグループ分けされたＧＣＢグループを、ＧＣＢの動作周波数に基づいてグループ分割する。これにより、グループＩＤ＝１のグループは、グループＩＤ＝１＿１と、グループＩＤ＝１＿２の２つのグループに分割される。同様に、グループＩＤ＝２のグループは、グループＩＤ＝２＿１と、グループＩＤ＝２＿２の２つのグループに分割される。
【００５７】
［ステップＳ２２２］  続いて、動作周波数に基づいてグループ分割されたグループを、回路構成（モジュール単位）に基づいてさらにグループ分割する。これにより、グループＩＤ＝１＿１のグループは、グループＩＤ＝１＿１＿１と、グループＩＤ＝１＿１＿２の２つのグループに分割される。他のグループも同様である。
【００５８】
［ステップＳ２２３］  グループ分割されたグループごとに動作率算出用カウンタを挿入する。ここでは、グループＩＤ＝１＿１＿１、グループＩＤ＝１＿１＿２、グループＩＤ＝１＿２＿１、・・・、それぞれに動作率算出用カウンタが設定される。
【００５９】
以上の処理手順が実行されることにより、接続ＦＦ数によってグループ分けされたグループは、さらに、グルーピングパラメータに基づいてグループ分割される。これにより、同じように動作するＧＣＢがグループとしてまとめられるため、測定精度を向上させることが可能となる。
【００６０】
次に、グループごとに埋め込まれた動作率算出用カウンタの一例を説明する。図９は、グループＧＣＢごとにカウンタを埋め込んだエミュレーション用設計回路の一例を示した図である。
【００６１】
エミュレーション用設計回路５００には、ＧＣＢ（ＧＣＢ−１，ＧＣＢ−２，ＧＣＢ−３、ＧＣＢ−４，ＧＣＢ−５）の動作率を測定するための測定回路５１０，５２０が挿入されている。
【００６２】
図の例では、測定対象のＧＣＢは、そのクロック周波数に基づいて２種類のＧＣＢグループにグループ分けされている。第１のグループは、ｃｌｏｃｋ−Ａ（最速のｆｃｌｏｃｋの周波数に対し、ｆｃｌｏｃｋ／２の周波数のクロック信号）が入力されるＧＣＢ−１、ＧＣＢ−２、及びＧＣＢ−３から成るグループである。対応する測定回路５１０は、ＧＣＢ−１の出力するＧＣＬＫ−１の変化を検出するレジスタ（図では、ｒｅｇ）５１１及びＥＸＯＲ５１２と、ＧＣＢ−２の出力するＧＣＬＫ−２の変化を検出するレジスタ５１３及びＥＸＯＲ５１４と、ＧＣＢ−３の出力するＧＣＬＫ−３の変化を検出するレジスタ５１５及びＥＸＯＲ５１６と、ＥＸＯＲ５１２，５１４，５１６の出力を加算するＡｄｄ−Ａ５１７と、カウンタＡ５１８と、を有する。第２のグループは、ｃｌｏｃｋ−Ｂ（最速のｆｃｌｏｃｋの周波数に対し、ｆｃｌｏｃｋ／４の周波数のクロック信号）が入力されるＧＣＢ−４及びＧＣＢ−５のグループである。対応する測定回路５２０は、ＧＣＢ−４の出力するＧＣＬＫ−４の変化を検出するレジスタ５２１及びＥＸＯＲ５２２と、ＧＣＢ−５の出力するＧＣＬＫ−５の変化を検出するレジスタ５２３及びＥＸＯＲ５２４と、ＥＸＯＲ５２２，５２４の出力を加算するＡｄｄ−Ｂ５２５と、カウンタＢ５２６と、を有する。
【００６３】
測定回路５１０，５２０の動作を、測定回路５１０の場合で説明する。レジスタ５１１には、ＧＣＢ−１の出力信号である前回のＧＣＬＫ＿１の出力が保持されており、ＥＸＯＲ５１２は、今回のＧＣＬＫ＿１とレジスタ５１１との値を比較して、その変化を監視する。そして、ＧＣＬＫ＿１の信号変化を捉えると、ＥＸＯＲ５１２は、１処理周期の間、１を出力する。ＥＸＯＲ５１４及びＥＸＯＲ５１６も同様に動作する。ＥＸＯＲ５１２，５１４，５１６の出力信号は、Ａｄｄ＿Ａ５１７に出力される。Ａｄｄ−Ａ５１７は、入力信号を加算して、カウンタＡ５１８へ出力する。したがって、ＥＸＯＲ５１２，５１４，５１６のうち、１つの出力が１になれば１が出力され、２つの出力が１になれば２が出力される。同様に、すべて１であれば３が出力される。カウンタＡ５１８は、Ａｄｄ−Ａ５１７の出力を加算するので、結果として、グループ化されたＧＣＢ−１、ＧＣＢ−２、及びＧＣＢ−３の動作回数がまとめてカウントされる。このような回路によれば、各ＧＣＢにカウンタを配置しなくても、グループに属するＧＣＢのトータルの動作回数を高い精度で測定することができる。
【００６４】
こうして得られた測定結果に基づいて、グループごとの平均ＧＣＢ動作率を算出する。平均ＧＣＢ動作率は、動作回数（各グループのカウンタのカウント値）と、グループに属するＧＣＢの数（ＧＣＢ数）と、計測時間とから、
平均ＧＣＢ動作率＝（カウンタのカウント値÷ＧＣＢ数）／計測時間
によって算出することができる。
【００６５】
上記のようにして、グループ化されたＧＣＢごとに動作率を算出し、算出された動作率に基づいてチップ全体の消費電力予測を行う。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、消費電力解析装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００６６】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００６７】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００６８】
（付記１）  半導体集積回路の消費電力を解析する消費電力解析方法において、
設計情報記憶手段に記憶される前記半導体集積回路に関する設計回路情報を解析して、共通の動作モードで動作する回路ブロックにおいて前記動作モードを規定する測定対象回路を抽出するとともに、前記測定対象回路を特徴付ける特徴情報を抽出する手順と、
前記測定対象回路を、前記測定対象回路が有する特徴によってグループ分けするために指定されたグループ分けポリシーと、前記測定対象回路の前記特徴情報と、に基づいて前記測定対象回路を測定グループにグループ分けする手順と、
前記測定グループごとに動作回数を測定し、測定結果に基づいて前記測定グループに属する前記測定対象回路の動作率を算出する手順と、
を有することを特徴とする消費電力解析方法。
【００６９】
（付記２）  前記測定対象回路の前記特徴情報を抽出する手順は、
前記設計回路情報を解析して前記測定対象回路に接続する所定の回路の数を算出し、前記所定の回路の数によって前記測定対象回路を特徴付ける、
ことを特徴とする付記１記載の消費電力解析方法。
【００７０】
（付記３）  前記測定対象回路は、ゲーテッドクロックバッファであり、前記所定の回路は、前記ゲーテッドクロックバッファに接続するフリップフロップ回路及びクロックバッファである、
ことを特徴とする付記２記載の消費電力解析方法。
【００７１】
（付記４）  前記測定対象回路の前記特徴情報を抽出する手順は、算出された前記所定の回路の数に基づいて、前記測定対象回路あたりの前記所定の回路の数と、対応する前記測定対象回路の数との関係を解析して、前記測定対象回路のグループを分ける前記所定の回路の数の閾値を設定し、
前記グループ分けする手順は、前記所定の回路の数の閾値と、前記測定対象回路ごとに算出された前記所定の回路の数とを比較して、前記測定対象回路をグループ分けする、
ことを特徴とする付記２記載の消費電力解析方法。
【００７２】
（付記５）  前記測定対象回路の前記特徴情報を抽出する手順は、さらに、前記測定対象回路あたりの前記所定の回路の数と、対応する前記測定対象回路の数との関係をグラフ化し、生成されたグラフを表示装置に表示する、
ことを特徴とする付記４記載の消費電力解析方法。
【００７３】
（付記６）  前記測定対象回路の前記特徴情報を抽出する手順は、前記表示装置に表示された前記グラフを参照して入力された指定値を前記所定の回路の数の閾値に設定する、
ことを特徴とする付記５記載の消費電力解析方法。
【００７４】
（付記７）  前記測定対象回路の前記特徴情報を抽出する手順は、前記所定の回路の数に対する前記測定対象回路の数が大きく変化する値を前記所定の回路の数の閾値に設定する、
ことを特徴とする付記４記載の消費電力解析方法。
【００７５】
（付記８）  前記グループ分けする手順は、
前記所定の回路の数に設定される閾値によって規定されるグループ化範囲を超える測定対象回路があったときには、前記測定対象回路をグループ化しない、
ことを特徴とする付記４記載の消費電力解析方法。
【００７６】
（付記９）  前記グループ分けする手順は、
前記測定対象回路が設計者の意図によって設定された回路に該当するかどうかを前記設計回路情報に基づいて判定し、該当すると判定されたときは、当該測定対象回路をグループ化しない、
ことを特徴とする付記４記載の消費電力解析方法。
【００７７】
（付記１０）  前記グループ分けする手順は、
前記グループ分けポリシーとして、前記所定の回路の数の閾値に基づいてグループ化された測定グループを、さらに分割する分割ポリシーが設定されているときは、前記分割ポリシーと、前記測定対象回路の設計回路情報とに基づいて、前記測定グループに分割された前記測定対象回路を、サブ測定グループに分割する、
ことを特徴とする付記４記載の消費電力解析方法。
【００７８】
（付記１１）  前記分割ポリシーには、前記サブ測定グループに分割する基準となる動作周波数または前記回路ブロックの構成、あるいは、前記動作周波数及び前記回路ブロック構成、が指定される、
ことを特徴とする付記１０記載の消費電力解析方法。
【００７９】
（付記１２）  前記測定対象回路の動作率を算出する手順は、
前記半導体集積回路の設計回路に、前記測定グループごとに１の測定回路を埋め込み、エミュレータ装置を用いて論理エミュレーションを行って、前記測定回路に前記測定グループに属するすべての前記測定対象回路の動作回数を計数させ、前記測定回路が計数した前記動作回数に基づいて、前記測定グループに属する前記測定対象回路個々の動作回数を算出する、
ことを特徴とする付記１記載の消費電力解析方法。
【００８０】
（付記１３）  半導体集積回路の消費電力を解析する消費電力解析装置において、
前記半導体集積回路に関する設計回路情報を記憶する設計情報記憶手段と、
前記設計情報記憶手段に記憶される解析対象の半導体集積回路の設計回路情報を解析して、共通の動作モードで動作する回路ブロックにおいて前記動作モードを規定する測定対象回路を抽出するとともに、前記測定対象回路を特徴付ける特徴情報を抽出する測定対象回路解析手段と、
前記測定対象回路を、前記測定対象回路が有する特徴によってグループ分けするために指定されたグループ分けポリシーと、前記測定対象回路の前記特徴情報と、に基づいて前記測定対象回路を測定グループにグループ分けするグルーピング手段と、
前記測定グループごとに動作回数を測定し、測定結果に基づいて前記測定グループに属する前記測定対象回路の動作率を算出する動作率測定手段と、
を有することを特徴とする消費電力解析装置。
【図面の簡単な説明】
【００８１】
【図１】実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態の消費電力解析装置のハードウェア構成の一例を示した図である。
【図３】実施の形態の消費電力解析処理の手順を示したフローチャートである。
【図４】測定対象回路解析処理の手順を示したフローチャートである。
【図５】測定対象回路分析結果をグラフ化した一例を示した図である。
【図６】グルーピング処理の手順を示したフローチャートである。
【図７】グルーピング処理におけるグループ化の処理手順を示したフローチャートである。
【図８】グルーピング処理におけるグループ分割の処理手順を示したフローチャートである。
【図９】グループＧＣＢごとにカウンタを埋め込んだエミュレーション用設計回路の一例を示した図である。
【符号の説明】
【００８２】
１  消費電力解析装置
１ａ  設計情報記憶手段
１ｂ  解析情報記憶手段
１ｃ  測定対象回路解析手段
１ｄ  グルーピング手段
１ｅ  動作率測定手段
１ｆ  消費電力算出手段
【図１】
0005098517.tif 000002
【図２】
0005098517.tif 000003
【図３】
0005098517.tif 000004
【図４】
0005098517.tif 000005
【図５】
0005098517.tif 000006
【図６】
0005098517.tif 000007
【図７】
0005098517.tif 000008
【図８】
0005098517.tif 000009
【図９】
0005098517.tif 000010