(57)【要約】【課題】集積回路の開発時に好適な、論理回路の消費電力を算出する技術を提供する。【解決手段】集積回路中の消費電力を算出すべき対象論理回路に、ゲートの信号変化数を計測する計測回路を付加してデバイスを構成する。計測された信号変化数を積算することで、論理回路の消費電力を算出する。このデバイスは、再構成可能なＦＰＧＡを用いることが望ましい。これにより、実際の稼働時に近い条件で論理回路の消費電力を求めることができる。また、シミュレーション計算によらないため、消費電力を高速に算出することができる。【選択図】　図２
2004062238.tif 000002
【特許請求の範囲】
【請求項１】
消費電力を算出すべき対象論理回路に、前記対象論理回路を構成するゲートの信号変化数を計測する計測回路を付加した回路を構成し、
計測された信号変化数に基づいて前記対象論理回路の消費電力を算出することを特徴とする消費電力算出方法。
【請求項２】
消費電力を算出すべき集積回路に含まれる論理回路のそれぞれに、前記対象論理回路を構成するゲートの信号変化数を計測する計測回路を付加した回路を構成し、
計測されたそれぞれの信号変化数の積算値に基づいて前記集積回路の消費電力を算出することを特徴とする消費電力算出方法。
【請求項３】
請求項１または２に記載の消費電力算出方法において、
前記計測回路を付加した回路は、
再構成可能なデバイスの中に構成することを特徴とする消費電力算出方法。
【請求項４】
請求項３に記載の消費電力算出方法において、
前記再構成可能なデバイスは、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）であることを特徴とする消費電力算出方法。
【請求項５】
請求項１〜４のいずれか一項に記載の消費電力算出方法において、
前記信号変化数を、ゲートの負荷容量に基づく重み付けを行なうことにより、前記対象論理回路の消費電力を算出することを特徴とした消費電力算出方法。
【請求項６】
請求項１〜５のいずれか一項に記載の消費電力算出方法において、
前記対象理論回路で実行されるプログラムコードの参照アドレスを示すプログラムカウンタを監視し、プログラムカウンタが所定の範囲内にある場合に、前記対象論理回路の消費電力を算出することを特徴とする消費電力算出方法。
【請求項７】
請求項１〜５のいずれか一項に記載の消費電力算出方法において、
前記対象理論回路でプログラム実行中に参照されるメモリのアドレスを監視し、メモリアドレスが所定の範囲内にある場合に、前記対象論理回路の消費電力を算出することを特徴とする消費電力算出方法。
【請求項８】
請求項１〜５のいずれか一項に記載の消費電力算出方法において、
前記対象理論回路でプログラム実行中に参照されるメモリのアドレスを監視し、メモリアドレスが所定の値である場合に、前記対象論理回路の消費電力を算出することを特徴とする消費電力算出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は回路の消費電力算出するための技術に関する。
【０００２】
【従来の技術】
近年、集積回路、特に、ＬＳＩ（Ｌａｒｇｅ　Ｓｃａｌｅ　Ｉｎｔｅｇｒａｔｉｏｎ）の動作周波数が向上し消費電力が増大する反面、ＬＳＩを備えた情報機器の携帯化が進んでいるため、ＬＳＩの低消費電力化が求められている。ＬＳＩの低消費電力化を実現するためには、特に、ＬＳＩの開発時において、実際の稼働時のＬＳＩあるいはＬＳＩを構成する論理回路の消費電力を正確に算出することが重要である。
【０００３】
従来、消費電力を算出する方法には、大きく分けて以下の３つが提案されている。
（１）過去の経験から平均的な信号変化率を仮定し、机上計算で消費電力を求める方法。
（２）具体的なハードウェアを用いて、電圧・電流を計測し、消費電力を算出する方法。これに分類される従来例には、特開２００１−３４４９９、特開２００１−２２２５６１などがある。
（３）ソフトウェアを用いたシミュレータで消費電力を算出する方法。これに分類される従来例には、特開平５−１２６８７２、特開平８−３１４９９２、特開平１０−１８６００１、特開２０００−２４２６７６、特開２００１−２６５８４７、特開２００１−３５０８１５など、多くの例がある。
【０００４】
【発明が解決しようとする課題】
上記従来技術のうち、（１）の机上計算で消費電力を求める方法は、平均的な信号変化率を仮定するため、実際の稼働時とは異なる条件で算出され、誤差が大きいという問題がある。
【０００５】
（２）のハードウェアを用いて消費電力を求める方法は、実際の稼働時に近い条件で消費電力を求めることができるが、電圧・電流を計測を行なうため実際のハードウェアを作成しなければならず、省電力削減のための設計変更に手間がかかるという問題がある。また、電圧・電流を計測する必要から、ハードウェア内における論理回路の消費電力の内訳を把握しにくいという問題もある。
【０００６】
（３）のソフトウェアを用いたシミュレータで消費電力を算出する方法は、精度は高くなるが、一般に、消費電力の算出に時間がかかってしまい、非常に短時間稼動した際の消費電力しか求められないという問題があった。この場合、典型的な場合の消費電力を求めたとしても、動作条件が異なる場合に消費電力がどう変化するか十分に見極めができない。このため、実際に製造されたＬＳＩを用いて消費電力を測ると、期待通りの値が得られず、設計し直しが必要となる場合が起こり得る。
【０００７】
本発明の目的は、集積回路の開発時に好適な、消費電力を算出する技術を提供することにある。
【０００８】
【課題を解決するための手段】
上記課題を解決するため、本発明によれば、
消費電力を算出すべき対象論理回路に、前記対象論理回路を構成するゲートの信号変化数を計測する計測回路を付加した回路を構成し、
計測された信号変化数に基づいて前記対象論理回路の消費電力を算出することを特徴とする消費電力算出方法が提供される。
【０００９】
ここで、前記計測回路を付加した回路は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）等の再構成可能なデバイスの中に構成することができる。
【００１０】
【発明の実施の形態】
まず、消費電力算出の理論について簡単に説明する。論理回路の基本構成となっているＣＭＯＳのゲート当たりの消費電力は、一般に、「数１」のように表せることが知られている。（出典：桜井貴康編、「低消費電力、高速ＬＳＩ技術」、株式会社リアライズ社、１９９８年）
【００１１】
【数１】
2004062238.tif 000003
【００１２】
ここで、ｐｔはスイッチング確率、ｆＣＬＫはクロック周波数、ＣＬは負荷容量、Ｖｓは信号振幅、ＶＤＤは電源電圧、ＩＳＣは貫通電流平均値、ΔｔＳＣは貫通電流が流れる時間、ＩＤＣは直流電流、ＩＬＥＡＫはリーク電流をそれぞれ表している。また、ゲートは、ＡＮＤ回路、ＯＲ回路、フリップフロップ等の基本素子を意味するものとする。これらのゲートが複数組み合わされることにより、論理回路を構成する。そして、１または複数の論理回路によりＬＳＩ等の集積回路が構成されるものとする。
【００１３】
「数１」で、第１項は負荷の充放電に要する消費電力、第２項はゲートがスイッチングするときに流れる貫通電流による消費電力、第３項は直流電流による消費電力、第４項はリーク電流による消費電力である。
【００１４】
これらのパラメータのうち、スイッチング確率ｐｔは、集積回路を制御するプログラムにしたがって実際に集積回路を動作させてみないとわからない性質を持つ。他のパラメータは、集積回路を動作させなくても、静的に算出可能である。したがって、回路の消費電力を算出する際には、ゲートごとのスイッチング確率をいかに精度よく求めるかが重要となる。
【００１５】
「数１」をスイッチング確率ｐｔでまとめると、
【００１６】
【数２】
2004062238.tif 000004
となる。
【００１７】
ここで、
【００１８】
【数３】
2004062238.tif 000005
【００１９】
【数４】
2004062238.tif 000006
【００２０】
とおくことにより、
【００２１】
【数５】
2004062238.tif 000007
となる。
【００２２】
ここで、ある特定の計測サイクル数Ｔにおける、ゲートの信号変化数をｔとすると、
【００２３】
【数６】
2004062238.tif 000008
したがって、
【００２４】
【数７】
2004062238.tif 000009
となる。
【００２５】
対象論理回路にｎ個のゲートが含まれるとき、各ゲートの出力信号の信号変化数をｔｉ　（ｉ＝１，２，…，ｎ）とし、ａ、ｂはゲートにより変わらないとすれば、
【００２６】
【数８】
2004062238.tif 000010
【００２７】
となる。「数８」は、すべてのゲートで平均的な負荷容量を仮定することになるので、厳密なものではないが、一般的によく使われている。
【００２８】
また、ａもゲートにより変わるとし、ａｉ（ｉ＝１，２，…，ｎ）とすれば、
【００２９】
【数９】
2004062238.tif 000011
【００３０】
となる。「数９」は、信号変化数ｔｉを、ゲートごとに異なる負荷容量を含むａｉで重み付けして集計していることになる。
【００３１】
上記の理論に基づいた本発明の実施形態について図面を参照して説明する。
【００３２】
本発明の第１の実施形態は、ａ、ｂを定数とみなし、「数８」を用いるものである。
【００３３】
図１は、本発明の第１の実施形態の全体構成を示すブロック図である。
【００３４】
本図に示すように、本実施形態は、ＦＰＧＡ（Ｆｉｅｌｄ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｇａｔｅ　Ａｒｒａｙ）１００と、ＦＰＧＡ１００と、インタフェース変換部１１０と、計算機１２０と、表示画面１３０とで構成することができる。ＦＰＧＡ１００とインタフェース変換部１１０とは、インタフェース１００ａおよび１１０ａを介して接続され、インタフェース変換部１１０と計算機１２０とは、インタフェース１１０ｂおよび１２０ａを介して接続される。
【００３５】
ＦＰＧＡ１００は、利用者がプログラミングすることのできるＬＳＩであり、機能を自由に再設定できるようになっているので、リセットすることで何度も回路を定義し直せる再構成可能なデバイスである。
【００３６】
本実施形態では、計算機１２０上で、ＦＰＧＡ１００に構成すべきネットリスト（ゲートレベルの論理回路）を作成し、インタフェース１２０ａ、インタフェース変換部１１０、インタフェース１１０ａを介して、ＦＰＧＡ１００上にダウンロードする。そして、ＦＰＧＡ１００の論理を動作させるのに必要なプログラムなどのデータをインタフェース１２０ａ、インタフェース変換部１１０、インタフェース１１０ａを介して、ＦＰＧＡ１００上に書き込み、ＦＰＧＡ１００を動作させる。ＦＰＧＡ１００の動作中または動作後に、データをインタフェース１００ａ、インタフェース変換部１１０、インタフェース１１０ｂを介して、計算機１２０上に読み出し、必要に応じて表示画面１３０にデータを表示させる。
【００３７】
なお、ネットリストの作成、ネットリストのＦＰＧＡ１００上へのダウンロード等の計算機１２０上における処理は、ＦＰＧＡ向けに開発された汎用のツール等を用いて行なうことができる。
【００３８】
図２は、ＦＰＧＡ１００の中に構成する論理回路の例を示すブロック図である。ＦＰＧＡ１００で動作させる論理回路は、消費電力算出の対象となる対象論理回路２００と、消費電力算出論理回路２０１とを備えて構成される。ここで、対象論理回路２００は、消費電力の算出を希望するゲートの集まりとすることができる。
【００３９】
対象論理回路２００は、例えば、論理回路２００を構成するゲートの一つとしてフリップフロップ２１０を含むとする。このフリップフロップ２１０の動作は、クロックイネーブルＣＥが１のとき、クロック２００ｋの変化のタイミングで、入力データ２００ｄを出力データ２００ｑに出力する。クロックイネーブル２００ｅが０のとき、出力データ２００ｑは変化せず、現在の値を保持する。
【００４０】
消費電力算出論理回路２０１は、信号変化計測回路２２０、加算回路２３０、信号変化数レジスタ２４０、電力換算回路２５０、加算器２６０、計測サイクル数レジスタ２７０、算出制御回路２８０を備えて構成される。
【００４１】
信号変化計測回路２２０は、フリップフロップ２１０の入出力信号２００ｄ、２００ｅ、２００ｋ、２００ｑを入力し、「数８」のｔｉに対応する信号変化数２２０ａを出力する。信号変化計測回路２２０は、対象論理回路２００に含まれるゲート対応に設けられる。
【００４２】
加算回路２３０は、それぞれの信号変化計測回路２２０から出力される信号変化数を加算し、信号変化数レジスタ２４０に合計数を積算する。したがって、信号変化数レジスタ２４０の出力２４０ａは「数８」の
【００４３】
【数１０】
2004062238.tif 000012
【００４４】
に対応する。
【００４５】
算出制御回路２８０は、操作者の設定等に基づいて消費電力算出期間中は１を出力し、それ以外は０を出力するように構成する。したがって、加算器２６０の結果を入力する計測サイクル数レジスタ２７０には、消費電力算出期間中はカウントアップした値が入り、それ以外はカウントアップしない値が入るので、計測サイクル数レジスタ２７０の出力２７０ａは、「数８」のＴに対応する計測サイクル数となる。
【００４６】
電力換算回路２５０は、「数８」の
【００４７】
【数１１】
2004062238.tif 000013
に対応する信号変化数２４０ａと、「数８」のＴに対応する計測サイクル数２７０ａを入力し、「数８」にしたがって、Ｐを計算する。
【００４８】
このようにして、消費電力算出論理回路２０１は、「数８」に基づいて、ハードウェア的に消費電力を算出する。
【００４９】
図３は、信号変化計測回路２２０の構成例を示すブロック図である。
【００５０】
本図において、信号変化計測回路２２０は、排他的論理和３００と、論理積３１０とを備えて構成される。この回路が表す論理を式で示すと、
【００５１】
【数１２】
2004062238.tif 000014
となる。
【００５２】
つまり、クロックイネーブル２００ｅが１で、かつ信号２００ｄ（フリップフロップ２１０の入力信号）が、信号２００ｑ（フリップフロップ２１０の出力信号）と異なっているとき、信号２００ｑの値が反転して、信号変化計測回路２２０の出力信号の変化が発生する。すなわち、フリップフロップ２１０で信号変化が発生したとき、出力２２０ａは１となり、信号変化が発生しないとき、出力２２０ａは０となる。
【００５３】
本発明の第１の実施形態における消費電力算出処理の工程について図４のフロー図を参照して説明する。以下では、製造対象としてＬＳＩを例に説明する。
【００５４】
本図に示すように、本実施形態における消費電力算出処理は、従来のＬＳＩ製造工程４０１と、消費電力算出工程４００とからなる。
【００５５】
従来のＬＳＩ製造工程４０１は、まず、図２における対象論理回路２００をレジスターおよびレジスター間の組み合わせで表現した記述レベルであるＲＴＬ（ｒｅｇｉｓｔｅｒ　ｔｒａｎｓｆｅｒ　ｌｅｖｅｌ）データ４０５と合成制約データ４０６とから、論理合成ツールを用いて論理合成処理４０７を行ない、ゲートの接続関係を示すネットリスト４０８を生成する。
【００５６】
つぎに、生成されたネットリスト４０８と配置配線制約データ４０９とから、配置配線ツールを用いて配置配線処理４１０を行ない、ゲートの配置、ゲート間の配線等を表す配置配線後ネットリスト４１１を生成する。
【００５７】
そして、この配置配線後ネットリスト４１１に基づいて実際のＬＳＩ４１２を製造する。
【００５８】
消費電力算出工程４００は、従来のＬＳＩ製造工程４０１で、ネットリスト４０８が生成された段階で、「数８」におけるａおよびｂの情報を含むセルライブラリ４４０を参照しながら、算出論理追加処理４３０を行い、算出論理付ネットリスト４５０を生成する。ここで、算出論理追加処理４３０は、ネットリスト４０８に、図２における算出論理回路２０１を表す算出論理ネットリスト４２０を追加する処理である。
【００５９】
この算出論理付ネットリスト４５０から、ＦＰＧＡ合成ツールを用いて、ＦＰＧＡ合成処理４６０を行ない、ＦＰＧＡネットリスト４７０を生成する。そして、このＦＰＧＡネットリスト４７０を、ＦＰＧＡ４８０にダウンロードして書き込む。
【００６０】
このＦＰＧＡ４８０を動作させることで、消費電力算出処理４９０を行うことができる。求められた消費電力は、図１のインタフェース１１０ａ、インタフェース変換部１１０、インタフェース１１０ｂを介して計算機１２０に入力し、表示画面１３０に表示する。
【００６１】
その後、消費電力を削減する必要がある場合には、ＲＴＬ４０５、合成制約データ４０６を、消費電力が削減するように修正する。そして、修正したＲＴＬ４０５、合成制約データ４０６を用いた論理合成処理４０７によるネットリスト４０８生成までの工程および算出論理追加処理４３０から消費電力算出処理４９０までの工程を再度行なうことで、ＲＴＬ４０５、合成制約データ４０６の修正により消費電力が削減したかを確認することができる。もちろん、これらの工程は、何度も繰り返すことができる。
【００６２】
一方、消費電力を削減する必要がない場合には、配置配線処理４１０で生成された配置配線後ネットリスト４１１に基づいて、実際にＬＳＩ４１２を製造する。このようにして、本実施形態によれば、ＬＳＩの製造前に、ＦＰＧＡ４８０を用いて消費電力を確認することが可能となる。
【００６３】
このとき、消費電力の削減を確認する工程を繰り返すことにより、消費電力を削減した論理回路を合成することができる。
【００６４】
なお、本発明の第１の実施形態において、図３に示した信号変化計測回路２２０は、図５に示すような構成とすることもできる。本図において、信号変化計測回路２２０’は、レジスタ５００と、排他的論理和５１０とを備えて構成される。
【００６５】
レジスタ５００は、出力信号２００ｑを１サイクル保持する。排他的論理和５１０は、１サイクル保持した信号と、もともとの出力信号２００ｑとが異なっているとき１を出力するようになっている。このため、出力２２０ａは、出力信号２００ｑの信号変化が発生したときのみ１となる。
【００６６】
このように、信号変化計測回路２２０は、２００ｄおよび２００ｅを用いない構成とすることもできる。また、その他にもいろいろな実現方法が可能である。
【００６７】
なお、本実施形態では、再構成可能なデバイスとしてＦＰＧＡを用いたが、本発明は、ＦＰＧＡに限らず適用することができる。さらには、理論上は、ＬＳＩに置き換えることもできる。この場合は、ネットリスト４７０をＬＳＩ上に実現する。
【００６８】
つぎに、本発明の第２の実施形態について説明する。
【００６９】
本発明の第２の実施形態は、負荷容量を含むａがゲートごとに異なると考えた場合の例で、「数９」を用いるものである。
【００７０】
第２の実施形態の全体構成は、図１のブロック図に示したように第１の実施形態と同様とすることができる。
【００７１】
図６は、第２の実施形態におけるＦＰＧＡ１００の中に構成する論理回路の例を示すブロック図である。図２に示した第１の実施形態と同様に、消費電力算出の対象となる対象論理回路２００と、消費電力算出論理回路６０１とを備えて構成される。
【００７２】
対象論理回路２００は、第１の実施形態と同様に、論理回路２００を構成するゲートの一つとしてフリップフロップ２１０を含むとする。
【００７３】
消費電力算出論理回路６０１は、消費電力計測回路６２０、加算回路６３０、消費電力レジスタ６４０、電力換算回路６５０、加算器２６０、計測サイクル数レジスタ２７０、算出制御回路２８０を備えて構成される。
【００７４】
消費電力計測回路６２０は、フリップフロップ２１０の入出力信号２００ｄ、２００ｅ、２００ｋ、２００ｑを入力し、消費電力を算出して、出力信号６２０ａとして出力する。この消費電力は、「数９」のａｉ・ｔｉに対応する。なお、消費電力計測回路６２０は、対象論理回路２００に含まれるゲート対応に設けられる。
【００７５】
加算回路６３０は、消費電力計測回路６２０が出力するそれぞれのゲートの消費電力を加算し、消費電力レジスタ６４０に合計を積算する。したがって、消費電力レジスタ６４０の出力６４０ａは、「数９」の
【００７６】
【数１３】
2004062238.tif 000015
に対応する。
【００７７】
算出制御回路２８０は、操作者の設定等に基づいて消費電力算出期間中は１を出力し、それ以外は０を出力するように構成する。したがって、加算器２６０、計測サイクル数レジスタ２７０は、消費電力算出期間中はカウントアップし、それ以外はカウントアップしない。このため、計測サイクル数レジスタ２７０は、「数９」のＴに対応する計測サイクル数を出力する。
【００７８】
電力換算回路２５０は、「数９」の
【００７９】
【数１４】
2004062238.tif 000016
に対応する消費電力６４０ａと、「数９」のＴに対応する２７０ａとを入力し、「数９」にしたがって、Ｐを計算する。
【００８０】
このようにして、消費電力算出論理回路６０１は、「数９」に基づいて、ハードウェア的に消費電力を算出する。
【００８１】
図７は、消費電力計測回路６２０の構成例を示すブロック図である。
【００８２】
本図において、消費電力計測回路６２０は、信号変化計測回路２２０と、単位サイクルあたりの消費電力レジスタ７００と、セレクタ７１０とを備えて構成される。
【００８３】
信号変化計測回路２２０は、図３（符号２２０）または図５（符号２２０’）に示した例と同様に構成することができる。
【００８４】
単位サイクルあたりの消費電力レジスタ７００には、「数９」のａｉに対応する数値が保持されている。これは、あらかじめ計算、実測等で求めておき、個々のゲートごとに値を設定しておく。
【００８５】
そして、信号変化計測回路２２０の出力である信号変化数２２０ａが１のときは、単位サイクルあたりの消費電力レジスタ７００が、消費電力計測回路６２０の出力６２０ａとして選択される。一方、信号変化計測回路２２０の出力である信号変化数２２０ａが０のときは、０の値が消費電力計測回路６２０の出力６２０ａとして選択される。
【００８６】
このようにして、消費電力計測回路６２０は、ａｉ・ｔｉに対応する消費電力６２０ａを出力することになる。
【００８７】
本発明の第２の実施形態における消費電力算出処理の工程について図８のフロー図を参照して説明する。
【００８８】
本図に示すように、本実施形態における消費電力算出処理は、従来のＬＳＩ製造工程４０１と、消費電力算出工程８００とからなる。
【００８９】
従来のＬＳＩ製造工程４０１は、図４に示した第１の実施形態と同様である。
【００９０】
消費電力算出工程８００は、従来のＬＳＩ製造工程４０１で、配置配線後ネットリスト４１１が生成された段階で、「数９」におけるａｉおよびｂの情報を含むセルライブラリ８４０を参照しながら、算出論理追加処理８３０を行い、算出論理付ネットリスト８５０を生成する。ここで、算出論理追加処理８３０は、配置配線後ネットリスト４１１に、図６における算出論理回路６０１を表す算出論理ネットリスト８２０を追加する処理である。
【００９１】
この算出論理付ネットリスト８５０から、ＦＰＧＡ合成ツールを用いて、ＦＰＧＡ合成処理８６０を行ない、ＦＰＧＡネットリスト８７０を生成する。そして、このＦＰＧＡネットリスト８７０を、ＦＰＧＡ８８０にダウンロードして書き込む。
【００９２】
このＦＰＧＡ８８０を動作させることで、消費電力算出８９０を行なうことができる。求められた消費電力は、図１のインタフェース１１０ａ、インタフェース変換部１１０、インタフェース１１０ｂを介して計算機１２０に入力し、表示画面１３０に表示する。
【００９３】
その後、消費電力を削減する必要がある場合には、ＲＴＬ４０５、合成制約データ４０６、配置配線制約４０９を、消費電力を削減するように修正する。そして、修正後のＲＴＬ４０５等を用いた配置配線後ネットリスト４１１生成までの工程および算出論理追加８３０から消費電力算出８９０の工程を再度行なうことで、ＲＴＬ４０５、合成制約データ４０６、配置配線制約４０９の修正により消費電力が削減したかを確認することができる。もちろん、これらの工程は、何度も繰り返すことができる。
【００９４】
一方、消費電力を削減する必要がない場合には、配置配線処理４１０で生成された配置配線後ネットリスト４１１に基づいて実際にＬＳＩ４１２を製造する。
【００９５】
このようにして、本実施形態によれば、ＬＳＩの製造前に、ＦＰＧＡ８８０を用いて消費電力を確認することが可能となる。このとき、消費電力の削減を確認する工程を繰り返すことにより、消費電力を削減した論理回路を合成することができる。
【００９６】
また、本実施形態によれば、前記信号変化数を、負荷容量に基づいて重み付けして集計することができ、より厳密に対象論理回路２００の消費電力を算出することが可能となる。
【００９７】
つぎに、本発明の第３の実施形態について説明する。
【００９８】
第３の実施形態の全体構成は、図１のブロック図に示したように第１の実施形態と同様とすることができる。
【００９９】
図９は、第３の実施形態におけるＦＰＧＡ１００の中に構成する論理回路の例を示すブロック図である。図２に示した第１の実施形態と同様に、消費電力算出の対象となる対象論理回路２００と、消費電力算出論理回路９０１とを備えて構成される。
【０１００】
本実施形態において、対象論理回路２００は、フリップフロップ２１０、２１１を含むとする。
【０１０１】
消費電力算出論理回路９０１は、信号変化計測回路２２０、２２１、セレクタ９１０、９３０、信号変化数レジスタ９２０、９４０、算出制御回路２８０、選択情報レジスタ９５０を備えて構成される。
【０１０２】
選択情報レジスタ９５０は、消費電力算出するときには、セレクタ９１０、９３０が、本図において上側の入力信号を選択するように制御し、信号変化数レジスタ９２０、９４０に信号変化数が保持されるようにする。その後、選択情報レジスタ９５０を、セレクタ９１０、９３０が本図において下側の入力信号を選択するように制御することで、信号変化数レジスタ９２０、９４０に保持される情報を順にシフトして読み出すようになっている。これにより読み出す信号変化数レジスタ９２０、９４０を選択することができる。この制御は、例えば、計算機１２０から行なうことができる。
【０１０３】
読み出された信号変化数は、図１のインタフェース１００ａ、インタフェース変換部１１０、インタフェース１１０ａを介して、計算機１２０に入力する。計算機１２０では、第１の実施形態で示したような加算積算および電力換算の処理を施すことで、消費電力に換算する。
【０１０４】
つまり、本実施形態によれば、図２における加算回路２３０、信号変化数レジスタ２４０、電力換算回路２５０の部分を計算機１２０上のソフトウェアで実現するものである。このとき、選択情報レジスタ９５０を制御することにより、読み出す信号変化数レジスタを特定することができるため、対象論理回路２００に含まれるゲートごとの消費電力も容易に取得することができる。
【０１０５】
つぎに、本発明の第４の実施形態について説明する。
【０１０６】
第４の実施例は、全体構成は図１と同様、信号変化計測回路２２０の構成例は図２と同様である。
【０１０７】
第４の実施形態の全体構成は、図１のブロック図に示したように第１の実施形態と同様とすることができる。また、信号変化計測回路２２０の構成も図２のブロック図に示したように第１の実施形態と同様とすることができる。
【０１０８】
本発明の第４の実施形態における消費電力算出処理の工程について図１０のフロー図を参照して説明する。
【０１０９】
本図に示すように、本実施形態における消費電力算出処理は、従来のＬＳＩ製造工程４１３と、消費電力算出工程１０００とからなる。
【０１１０】
従来のＬＳＩ製造工程４１３は、仕様データ４０２、高位合成制約データ４０３から高位合成ツールを用いて高位合成処理４０４を行って、ＲＴＬ４０５を出力する。ＲＴＬ４０５および合成制約データ４０６から、論理合成ツールを用いて論理合成処理４０７を行ない、ゲートの接続関係を示すネットリスト４０８を生成する。
【０１１１】
つぎに、生成されたネットリスト４０８と配置配線制約データ４０９とから、配置配線ツールを用いて配置配線処理４１０を行ない、ゲートの配置、ゲート間の配線等を表す配置配線後ネットリスト４１１を生成する。
【０１１２】
そして、この配置配線後ネットリスト４１１に基づいて実際のＬＳＩ４１２を製造する。
【０１１３】
消費電力算出工程１０００は、従来のＬＳＩ製造工程４１３で、ＲＴＬ４０５が生成された段階で、「数８」におけるａおよびｂの情報を含むセルライブラリ１０４０を参照しながら、算出論理追加処理１０３０を行ない、算出論理付ＲＴＬ１０５０を生成する。ここで、算出論理追加処理１０３０は、ＲＴＬ４０５に、算出論理のＲＴＬを表す算出論理ＲＴＬ１０２０を追加する処理である。
【０１１４】
この算出論理付ＲＴＬ１０５０から、ＦＰＧＡ合成ツールを用いて、ＦＰＧＡ合成処理１０６０を行ない、ＦＰＧＡネットリスト１０７０を生成する。そして、このＦＰＧＡネットリスト１０７０を、ＦＰＧＡ１０８０にダウンロードして書き込む。
【０１１５】
このＦＰＧＡ１０８０を動作させることで、消費電力算出１０９０を行なうことができる。求められた消費電力は、図１のインタフェース１００ａ、インタフェース変換部１１０、インタフェース１１０ｂを介して計算機１２０に入力し、表示画面１３０に表示する。
【０１１６】
その後、消費電力を削減する必要がある場合には、仕様データ４０２、高位合成制約データ４０３、ＲＴＬ４０５を、消費電力を削減するように修正する。そして、算出論理追加処理１０３０から消費電力算出処理１０９０までの工程を再度行なうことで、仕様データ４０２、高位合成制約データ４０３、ＲＴＬ４０５の修正により消費電力が削減したかを確認することができる。もちろん、これらの工程は何度も繰り返すことができる。
【０１１７】
一方、消費電力を削減する必要が生じない場合には、論理合成処理４０７以降の処理を行ない、配置配線処理４１０で生成された配置配線後ネットリスト４１１に基づいて、実際にＬＳＩ４１２を製造する。このようにして、本実施形態によれば、ＬＳＩの製造前に、ＲＴＬ記述上で算出論理を追加し、ＦＰＧＡ１０８０を用いて消費電力を算出することができる。
【０１１８】
このとき、消費電力の削減を確認する工程を繰り返すことにより、消費電力を削減したＲＴＬを合成する高位合成処理を行なうことができる。
【０１１９】
つぎに、本発明の第５の実施形態について説明する。
【０１２０】
図１１は、本発明の第５の実施形態の構成を示すブロック図である。本実施形態は、第１の実施形態における対象論理回路２００をＣＰＵとしたときの算出制御回路２８０の構成を示したものである。
【０１２１】
ＣＰＵを構成する技術はよく知られており、例えば、パターソン＆ヘネシー著、成田光彰訳、「コンピュータの構成と設計」、日経ＢＰ社、ｐ．２４５に記載されている。
【０１２２】
対象論理回路２００Ａは、プログラムカウンタ１１００、命令メモリ１１０１、レジスタ１１０２、ＡＬＵ１１０３、データメモリ１１０４を備えて構成される。
【０１２３】
プログラムカウンタ１１００からはプログラムアドレス１１０１ａが出力される。プログラムアドレス１１０１ａが示すアドレスの内容を命令メモリ１１０１から読み出すことで、命令コード１１０１ａが出力される。
【０１２４】
命令コード１１０１ａに含まれるレジスタ番号によりレジスタ１２０２のデータがＡＬＵ１２０３で演算され、データアドレス１１０３ａとなる。
【０１２５】
データアドレス１１０３ａが示すアドレスの内容をデータメモリ１２０４から読み出すことで、データが出力され、レジスタ１２０２に格納される。
【０１２６】
算出制御回路２８０Ａは、データ領域検出手段１１１０、プログラム領域検出手段１１２０、データアドレス検出手段１１３０、命令検出手段１１４０の４つのイベント検出手段と、選択情報レジスタ１１５０、セレクタ１１６０とを備えて構成される。
【０１２７】
データ領域検出手段１１１０は、スタートレジスタ１１１５、比較器１１１１、エンドレジスタ１１１２、比較器１１１３、論理積１１１４を備えており、信号１１１０ａを出力する。
【０１２８】
信号１１１０ａは、データアドレス１１０３ａがスタートレジスタ１１１０のスタートアドレスからエンドレジスタ１１１２のエンドアドレスまでの間に含まれるときに１となる。これにより、データアドレス１１０３ａが、スタートアドレスからエンドアドレスまでの特定の範囲にあるときの消費電力算出することができる。
【０１２９】
プログラム領域検出手段１１２０は、スタートレジスタ１１２５、比較器１１２１、エンドレジスタ１１２２、比較器１１２３、論理積１１２４を備えており、信号１１２０ａを出力する。
【０１３０】
信号１１２０ａは、プログラムアドレス１１００ａがスタートレジスタ１１３０のスタートアドレスからエンドレジスタ１１３２のエンドアドレスまでの間に含まれるときに１となる。これにより、プログラムアドレス１１００ａがスタートアドレスからエンドアドレスまでの特定の範囲にあるとき、つまり特定の関数についての消費電力を算出することができる。
【０１３１】
データアドレス検出手段１１３０は、アドレスレジスタ１１３２、比較器１１３１を備えており、信号１１３０ａを出力する。
【０１３２】
信号１１３０ａは、データアドレス１１０３ａがアドレスレジスタ１１３２のアドレスに一致するときに１となる。これにより、データアドレス１１０３ａが特定の番地にあるとき、つまり特定の変数をアクセスしているときの消費電力を算出することができる。
【０１３３】
命令検出手段１１４０は、命令レジスタ１１４２、比較器１１４１を備えており、信号１１４０ａを出力する。
【０１３４】
信号１１４０ａは、命令コード１１０１ａが命令レジスタ１１４２の命令コードに一致するときに１となる。これにより、ある特定の命令における消費電力を算出することができる。
【０１３５】
算出制御回路２８０Ａの出力２８０ａは、上述のように、消費電力算出期間中は１を出力し、それ以外は０を出力する信号であるが、選択情報レジスタ１１５０の情報により、４種類の制御信号１１１０ａ、１１２０ａ、１１３０ａ、１１４０ａから、対象とする制御信号を選択する。
【０１３６】
選択情報レジスタ１１５０は、例えば、計算機１２０から制御することができる。これにより、種々の算出条件下で、消費電力の算出を行なうことができる。
【０１３７】
以上のように、本発明による消費電力算出方法は、消費電力算出対象の論理回路にゲートの信号変化数を計測する回路を付加してデバイスを構成し、計測された信号変化数に基づいて消費電力を算出するため、実際の稼働時に近い条件で論理回路の消費電力を求めることができる。また、シミュレーション計算によらず、ハードウェアを用いて算出するために、消費電力を高速に算出することができる。さらに、ＦＰＧＡ等の再構成可能なデバイスを用いることで、開発時における設計変更の負担を削減することができる。また、論理回路ごとに信号変化数を取得可能なため、集積回路内における消費電力の内訳を把握することができる。
【０１３８】
【発明の効果】
本発明によれば、集積回路の開発時に好適な、論理回路の消費電力を算出する技術が提供される。
【図面の簡単な説明】
【図１】は、第１の実施形態の全体構成を示すブロック図である。
【図２】は、第１の実施形態におけるＦＰＧＡ１００の中に構成する論理回路の例を示すブロック図である。
【図３】は、第１の実施形態における信号変化計測回路２２０の構成例を示すブロック図である。
【図４】は、第１の実施形態における消費電力算出処理の工程について説明するためのフロー図である。
【図５】は、信号変化計測回路２２０の別構成例を示すブロック図である。
【図６】は、第２の実施形態におけるＦＰＧＡ１００の中に構成する論理回路の例を示すブロック図である。
【図７】は、第２の実施形態における消費電力計測回路６２０の構成例を示すブロック図である。
【図８】は、第２の実施形態における消費電力算出処理の工程について説明するためのフロー図である。
【図９】は、第３の実施形態におけるＦＰＧＡ１００の中に構成する論理回路の例を示すブロック図である。
【図１０】は、第４の実施形態における消費電力算出処理の工程について説明するためのフロー図である。
【図１１】は、第５の実施形態における算出制御回路２８０の構成を示すブロック図である。
【符号の説明】
１１０…インタフェース変換部
１２０…計算機
１３０…表示画面
２００…対象論理回路
２０１…消費電力算出論理回路
２１０…フリップフロップ
２２０…信号変化計測回路
２３０…加算回路
２４０…信号変化数レジスタ
２５０…電力換算回路
２６０…加算器
２７０…計測サイクル数レジスタ
２８０…算出制御回路
６２０…消費電力計測回路
６３０…加算回路
６４０…消費電力レジスタ
６５０…電力換算回路
７００…消費電力レジスタ
９０１…消費電力算出論理回路
９２０…信号変化数レジスタ
９５０…選択情報レジスタ
【図１】
2004062238.tif 000017
【図２】
2004062238.tif 000018
【図３】
2004062238.tif 000019
【図４】
2004062238.tif 000020
【図５】
2004062238.tif 000021
【図６】
2004062238.tif 000022
【図７】
2004062238.tif 000023
【図８】
2004062238.tif 000024
【図９】
2004062238.tif 000025
【図１０】
2004062238.tif 000026
【図１１】
2004062238.tif 000027