(57)【特許請求の範囲】
【請求項１】
対象とする回路のＲＴＬデータとこのＲＴＬデータに対応するネットリストとに基づいて、前記ＲＴＬデータには存在しないが前記ネットリストには存在するクロックゲーティングセルを検出するクロックゲーティングセル検出手段と、
前記クロックゲーティングセル検出手段により検出されたクロックゲーティングセルに関する記述を前記ＲＴＬデータに追加するテストベンチ記述生成手段と、
前記クロックゲーティングセルに関する記述を追加した前記ＲＴＬデータの中から、消費電力解析用のモニター信号を抽出するモニター信号抽出手段と、
前記クロックゲーティングセルに関する記述を追加した前記ＲＴＬデータを用いて、前記対象となる回路の動作シミュレーションを実行するＲＴＬシミュレーション実行手段と、
前記動作シミュレーション中に、前記モニター信号のトグル率およびデューティ比の少なくとも一方を検出するモニター手段と、
前記モニター手段の検出結果に基づいて、前記対象となる回路内に含まれる少なくともフリップフロップのクロック端子のトグルによる消費電力を解析する消費電力解析手段と、
前記ＲＴＬデータに追加される前記クロックゲーティングセルに関する記述に含まれる信号名と、前記ネットリスト中の信号名との対応関係を記録したマッピングファイルを生成するマッピングファイル生成手段と、を備え、
前記消費電力解析手段は、前記マッピングファイルを参照して、前記クロックゲーティングセルが接続された伝搬経路上に配置される前記フリップフロップのクロック端子のトグルによる消費電力を解析することを特徴とする消費電力解析装置。
【請求項２】
前記クロックゲーティングセル検出手段は、前記ネットリストに含まれるフリップフロップおよびクロックバッファのクロック信号の伝搬経路上に接続されて、前記ＲＴＬデータ中に存在しないクロックゲーティングセルを検出し、
前記消費電力解析手段は、前記対象となる回路内に含まれるフリップフロップおよびクロックバッファのクロック端子のトグルによる消費電力を解析することを特徴とする請求項１に記載の消費電力解析装置。
【請求項３】
前記モニター手段は、前記ＲＴＬデータに追加される前記クロックゲーティングセルのクロック信号およびイネーブル信号の少なくとも一方について、トグル率およびデューティ比の少なくとも一方を検出することを特徴とする請求項２に記載の消費電力解析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計段階で半導体集積回路の消費電力解析を行う消費電力解析装置および消費電力解析方法に関する。
【背景技術】
【０００２】
フリップフロップと組合せ論理回路で構成されるデジタル回路の設計を行う場合、ＲＴＬ（Register Transfer Level）を用いて回路を記述するのが一般的になっている。ＲＴＬで記述した回路は、論理合成を行って回路の接続関係を示すネットリストに変換された後、半導体基板上にレイアウト配置される。
【０００３】
ＲＴＬの記述を論理合成して生成されるネットリストは、必ずしも一通りだけではなく、同じＲＴＬから複数種類のネットリストを生成可能である。ネットリストには、フリップフロップやクロックゲーティングセルなどの種々の回路が含まれているが、フリップフロップの消費電力が他のセルよりも格段に大きいため、フリップフロップの消費電力を正確に見積もる必要がある。
【０００４】
フリップフロップの消費電力は、データ入力信号、クロック信号、データ出力信号のトグル率およびデューティ比から計算される。これらのうち、クロック信号とデータ出力信号のトグル率が消費電力に大きな影響を与える。したがって、フリップフロップの消費電力を正確に見積もるには、クロック信号とデータ出力信号のトグル率を正確に求める必要がある。
【０００５】
ＲＴＬで記述されたＲＴＬデータに含まれるフリップフロップ（レジスタ）は、ネットリストにも存在するため、このフリップフロップのデータ出力信号のトグル率とデューティ比は、ＲＴＬデータとネットリストのどちらで動作シミュレーションを行っても、同じ結果が得られる。
【０００６】
一方、フリップフロップのクロック信号については、フリップフロップに入力される前にクロックゲーティングセルを通過したか否かにより、消費電力が変化する。クロックゲーティングセルは、ネットリストには存在してもＲＴＬデータには存在しない場合があり、このような場合には、ＲＴＬを用いて動作シミュレーションを行っても、クロックゲーティングセルの動作を検証できない。
【０００７】
このような事情から、ＲＴＬシミュレーションを行っても、クロックゲーティングされているフリップフロップの消費電力を精度よく見積もれないという問題がある。この問題は、フリップフロップだけでなく、クロック信号が入力されるすべてのセルについて起こりえる。
【０００８】
ＲＴＬデータとネットリストとの対応を取って、ＲＴＬデータを用いて動作シミュレーションを行った結果に基づいて消費電力を解析する技術が提案されている（特許文献１参照）。
【０００９】
しかしながら、特許文献１では、ＲＴＬデータには存在しないがネットリストには存在するクロックゲーティングセルは無視して動作シミュレーションを行っており、消費電力の解析を精度よく行うことは困難である。
【特許文献１】特開２００６−１９０１４９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、ＲＴＬデータの動作シミュレーションにより、ゲートレベルでの消費電力解析を精度よく行うことが可能な消費電力解析装置および消費電力解析方法を提供するものである。
【課題を解決するための手段】
【００１１】
本発明の一態様によれば、対象とする回路のＲＴＬデータとこのＲＴＬデータに対応するネットリストとに基づいて、前記ＲＴＬデータには存在しないが前記ネットリストには存在するクロックゲーティングセルを検出するクロックゲーティングセル検出手段と、
前記クロックゲーティングセル検出手段により検出されたクロックゲーティングセルに関する記述を前記ＲＴＬデータに追加するテストベンチ記述生成手段と、
前記クロックゲーティングセルに関する記述を追加した前記ＲＴＬデータの中から、消費電力解析用のモニター信号を抽出するモニター信号抽出手段と、
前記クロックゲーティングセルに関する記述を追加した前記ＲＴＬデータを用いて、前記対象となる回路の動作シミュレーションを実行するＲＴＬシミュレーション実行手段と、
前記動作シミュレーション中に、前記モニター信号のトグル率およびデューティ比の少なくとも一方を検出するモニター手段と、
前記モニター手段の検出結果に基づいて、前記対象となる回路内に含まれる少なくともフリップフロップのクロック端子のトグルによる消費電力を解析する消費電力解析手段と、
前記ＲＴＬデータに追加される前記クロックゲーティングセルに関する記述に含まれる信号名と、前記ネットリスト中の信号名との対応関係を記録したマッピングファイルを生成するマッピングファイル生成手段と、を備え、
前記消費電力解析手段は、前記マッピングファイルを参照して、前記クロックゲーティングセルが接続された伝搬経路上に配置される前記フリップフロップのクロック端子のトグルによる消費電力を解析することを特徴とする消費電力解析装置が提供される。
【発明の効果】
【００１２】
本発明によれば、ＲＴＬデータの動作シミュレーションにより、ゲートレベルでの消費電力解析を精度よく行うことが可能な消費電力解析装置および消費電力解析方法を提供できる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１４】
図１は本発明の一実施形態による消費電力解析装置の概略構成を示すブロック図である。図１の消費電力解析装置は、ＲＴＬ供給部１と、ＲＴＬ解析部２と、ネットリスト生成部３と、ＲＴＬ／ネットリスト比較部４と、形式検証情報供給部５と、マッピングファイル生成部６と、モニター信号生成部７と、テストベンチ記述生成部８と、テストデータ供給部９と、ＲＴＬシミュレーション部１０と、モニター部１１と、消費電力解析部１２とを備えている。
【００１５】
図１の消費電力解析装置には、ライブラリ１３〜１６が接続されている。これらライブラリ１３〜１６は一つにまとめてもよいし、消費電力解析装置の内部に組み込んでもよい。
【００１６】
ＲＴＬ供給部１は、作業者が記述したＲＴＬデータをＲＴＬ解析部２、ネットリスト生成部３およびＲＴＬ／ネットリスト比較部４に供給する。ＲＴＬ解析部２は、ライブラリ１３を参照して、ＲＴＬデータに含まれるフリップフロップやクロックバッファ等のクロック同期セルと、これらクロック同期セルのクロック伝搬経路上のクロックゲーティングセルとを検出する。
【００１７】
ネットリスト生成部３は、ライブラリ１４を参照して、ＲＴＬデータに基づいてネットリストを生成する。ＲＴＬ／ネットリスト比較部４は、形式検証情報供給部５から供給されたＲＴＬデータの形式検証情報を参照してＲＴＬデータとネットリストを比較して、ＲＴＬデータとネットリストに含まれる各ノードの対応情報を取得するとともに、モニターすべき信号（以下、モニター信号）を特定する。モニター信号は、消費電力に大きな影響を与えるノードに設定される。より具体的には、フリップフロップやクロックバッファ等のクロック同期セルに入力されるクロック信号や、クロック伝搬経路上に挿入されるクロックゲーティングセルの入出力信号などがモニター信号として設定される。
【００１８】
テストベンチ記述生成部８は、ＲＴＬデータに追加するためのクロックゲーティングセルに関する記述を生成する。
【００１９】
テストデータ供給部９は、消費電力解析のためのテストデータを供給する。ＲＴＬシミュレーション部１０は、ライブラリ１５を参照して、テストデータを入力データとして与えて、ＲＴＬデータに基づいて動作シミュレーションを実行する。モニター部１１は、ＲＴＬシミュレーション部１０によるシミュレーション実行中に、モニター信号の論理を検出する。
【００２０】
消費電力解析部１２は、モニター部１１の検出結果とライブラリ１６を参照して、フリップフロップ、クロックバッファおよびクロックゲーティングセル等の消費電力を解析する。
【００２１】
図２は本実施形態による消費電力解析装置の処理動作の一例を示すフローチャートである。以下、このフローチャートに基づいて消費電力解析装置の処理動作を説明する。
【００２２】
まず、ＲＴＬ供給部１から供給されたＲＴＬデータに基づいて、ＲＴＬ解析部２はＲＴＬデータを解析する（ステップＳ１）。
【００２３】
図３はＲＴＬデータの一例を示す図である。図３では、回路モジュールＭＯＤ１を定義している（図３の１行目）。この回路モジュールは、４つの入力信号ＤＡＴ，ＣＬＫ，ｅｎ１，ｅｎ２と、１つの出力信号Ｒ１を有する（２，３行目）。図３の４行目ではレジスタＲ１を定義し、５行目以降にレジスタＲ１の動作が記述されている。
【００２４】
５行目は、クロック信号ＣＬＫの立ち上がりエッジで動作することを示している。６行目は、イネーブル信号ｅｎ１，ｅｎ２がともにイネーブルのとき、データ入力信号ＤＡＴをラッチしてデータ出力信号Ｒ１を出力することを示している。
【００２５】
上記ステップＳ１において、ＲＴＬ解析部２は、ＲＴＬデータ中に記述されたレジスタ、フリップフロップおよびクロックバッファ等のクロック同期セル（以下では、総称してフリップフロップと呼ぶ）を検出するとともに、フリップフロップに入力されるクロック信号のクロック伝搬経路を検出する。
【００２６】
次に、ＲＴＬ／ネットリスト比較部４は、ＲＴＬデータとこのＲＴＬデータを基にネットリスト生成部３が生成したネットリストとを比較し、ＲＴＬデータ中のフリップフロップと、ネットリスト中のフリップフロップとの対応づけを行う（ステップＳ２）。
【００２７】
次に、モニター信号生成部７は、ＲＴＬ／ネットリスト比較部４による比較結果に基づいて、ＲＴＬデータ中でモニターすべきモニター信号を決定する（ステップＳ３）。ここでは、フリップフロップやクロックバッファ等のクロック同期セルのクロック端子や、クロック端子に接続されるクロック伝搬経路上のノードがモニター信号として決定される。
【００２８】
次に、テストベンチ記述生成部８により、ネットリストには存在するがＲＴＬデータには存在しないクロックゲーティングセルに関する記述（以下、テストベンチ記述）をＲＴＬデータに追加する処理を行う（ステップＳ４）。
【００２９】
図４および図５は図３のＲＴＬデータにより生成される回路の一例を示す回路図である。図４と図５からわかるように、同じＲＴＬデータであっても、回路の表現方法は必ずしも一つではない。したがって、図３のＲＴＬデータに基づいてネットリスト生成部３が生成するネットリストは、図４の回路のようになる場合もあれば、図５の回路のようになる場合もあり、あるいはそれ以外の回路になる可能性もある。
【００３０】
図４の回路は、イネーブル信号ｅｎ１，ｅｎ２の論理積を演算するＡＮＤゲート２１と、ＡＮＤゲート２１の論理により、入力データＤＡＴを通過させるか否かを切り替えるバッファ２２と、クロックＣＬＫに同期して、バッファの出力信号を取り込むフリップフロップＦＦとを有する。
【００３１】
一方、図５の回路は、図４と同様のＡＮＤゲート２１と、クロックＣＬＫに同期してＡＮＤゲート２１の出力信号をラッチするクロックゲーティングセルＩＣＧと、クロックゲーティングセルＩＣＧの出力信号に同期して論理を切り替えるフリップフロップＦＦとを有する。図５のクロックゲーティングセルＩＣＧは、ネットリスト生成部３が自動的に生成したクロックゲーティングセルである。
【００３２】
図６はクロックゲーティングセルＩＣＧの内部構成の一例を示す回路図である。図６のクロックゲーティングセルＩＣＧは、ラッチ２３と、ＡＮＤゲート２４とを有する。ラッチ２３は、クロックＣＬＫが論理１のときにイネーブル信号ＥＮをラッチし、クロックＣＬＫが論理０のときにイネーブル信号を通過させる。ＡＮＤゲート２４は、クロックＣＬＫとラッチ２３の出力との論理積を演算する。これにより、ＡＮＤゲート２４は、イネーブル信号ＥＮが論理１のときのみ、クロックＣＬＫを通過させる。
【００３３】
なお、図６の回路は一例であり、クロックゲーティングセルＩＣＧは図６以外の回路で構成されてもよい。
【００３４】
図３のＲＴＬデータにより、例えば図５の回路のネットリストが生成されたとする。図３のＲＴＬデータには、図５の回路中のクロックゲーティングセルＩＣＧに関する記述は存在しないため、図３のＲＴＬデータだけでＲＴＬシミュレーションを行っても、クロックゲーティングセルＩＣＧ自体の消費電力や、クロックゲーティングセルＩＣＧの出力信号、すなわちＦＦのクロック信号のトグル率やデューティ比を解析することはできない。
【００３５】
そこで、上記ステップＳ４において、テストベンチ記述生成部８は、ＲＴＬデータ中にクロックゲーティングセルＩＣＧの記述を追加する。これをテストベンチ記述と呼んでいる。
【００３６】
図７はテストベンチ記述の一例を示す図である。図７の１行目では、回路モジュールＴｅｓｔｂｅｎｃｈを定義する。４行目では、図３の回路モジュールＭＯＤ１を呼び出して、インスタント化している。４行目のＩＮＳＴ１の後の括弧内は、図３のＲＴＬデータにおける入出力信号とと図５の回路の入出力信号との対応関係を表している。
【００３７】
また、図７の９行目のａｌｗａｙｓ以降は、図５のクロックゲーティングセルであるクロックゲーティングセルＩＣＧの記述である。
【００３８】
図７のようなテストベンチ記述により、元のＲＴＬデータ中に存在しなかったクロックゲーティングセルをＲＴＬデータに追加することができる。
【００３９】
次に、マッピングファイル生成部６は、ＲＴＬデータ中の信号名とネットリスト中の信号名との対応関係を示すマッピングファイルを作成する（ステップＳ５）。図８はマッピングファイルの一例を示す図である。図８では、モニターすべき入力信号（クロックＧＣＬＫとイネーブル信号ＥＮ）の対応関係を表している。
【００４０】
次に、ＲＴＬシミュレーション部１０は、図７のテストベンチ記述に基づいてＲＴＬシミュレーションを行う（ステップＳ６）。ＲＴＬシミュレーションの際には、テストデータ供給部９から供給されたテストデータを入力信号として、ＲＴＬシミュレーションを実行する。これにより、ＲＴＬデータにクロックゲーティングセルに関する記述を追加した状態で動作シミュレーションを行うことができる。
【００４１】
モニター部１１は、ＲＴＬシミュレーションの実行中に、上記ステップＳ３で決定したモニター信号の論理を検出する（ステップＳ７）。回路の消費電力を大きく左右するのは、フリップフロップやクロックバッファ等のクロック同期セルである。そこで、クロック同期セルの入出力信号をモニター信号として、その論理を検出する。
【００４２】
次に、消費電力解析部１２は、ステップＳ７で検出した結果に基づいて、フリップフロップやクロックバッファ等のクロック端子のトグル率やデューティ比だけでなく、テストベンチ記述で追加したクロックゲーティングセルの入出力信号のトグル率やデューティ比を検出して、これらにより、フリップフロップやクロックバッファ等の各種クロック同期セルの消費電力を解析する（ステップＳ８）。
【００４３】
このように、本実施形態では、ＲＴＬデータとネットリストを比較して、ＲＴＬデータに存在しないがネットリストには存在するクロックゲーティングセルに関する記述をＲＴＬデータに追加し、追加後のＲＴＬデータに基づいてＲＴＬシミュレーションを行い、各種クロックゲーティングセルの入出力信号のトグル率やデューティ比を検出して、各種クロックゲーティングセルの消費電力を解析するため、クロックゲーティングセルを含む回路の消費電力を簡易かつ精度よく解析できる。
【００４４】
特に、本実施形態によれば、シミュレーションに多大な時間を要するネットリストを用いてシミュレーションを行わなくても、消費電力の解析を精度よく行えるため、消費電力の解析に要する時間を大幅に短縮できる。
【００４５】
上述した実施形態では、フリップフロップやクロックバッファ、クロックゲーティングセル等のクロック同期セルのクロック端子のトグル率やデューティ比をモニターして消費電力の解析を行う例を説明したが、クロック同期セルのイネーブル信号のトグル率やデューティ比をモニターしてもよい。また、トグル率とデューティ比は、少なくとも一方を検出すればよい。
【００４６】
また、クロック同期セルのクロック端子の状態確率や遷移確率をモニターして消費電力の解析を行ってもよい。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施形態による消費電力解析装置の概略構成を示すブロック図。
【図２】本実施形態による消費電力解析装置の処理動作の一例を示すフローチャート。
【図３】ＲＴＬデータの一例を示す図。
【図４】図３のＲＴＬデータにより生成される回路の一例を示す回路図。
【図５】図３のＲＴＬデータにより生成される他の回路の一例を示す回路図。
【図６】クロックゲーティングセルＩＣＧの内部構成の一例を示す回路図。
【図７】テストベンチ記述の一例を示す図。
【図８】マッピングファイルの一例を示す図。
【符号の説明】
【００４８】
１  ＲＴＬ供給部
２  ＲＴＬ解析部
４  ネットリスト生成部
５  ＲＴＬ／ネットリスト比較部
６  形式検証情報供給部
７  マッピングファイル生成部
８  モニター信号生成部
９  テストベンチ記述生成部
１０  テストデータ供給部
１１  ＲＴＬシミュレーション部
１３  モニター部
１４  消費電力解析部
【図１】
0004729007.tif 000002
【図２】
0004729007.tif 000003
【図３】
0004729007.tif 000004
【図４】
0004729007.tif 000005
【図５】
0004729007.tif 000006
【図６】
0004729007.tif 000007
【図７】
0004729007.tif 000008
【図８】
0004729007.tif 000009