(57)【要約】【課題】本発明は、消費電力解析方法及びプログラムに関し、回路の開発手順のRTL設計段階での回路のアーキテクチャの最適化を可能とすることを目的とする。【解決手段】コンピュータにより、RTL設計段階で回路の論理設計を行い、その後の論理合成段階で回路のゲーテッドクロック化を行う回路の開発手順における消費電力解析方法において、RTL設計段階で、コンピュータにより論理合成段階でゲーテッドクロックに変換されると判定される信号を抽出し、コンピュータにより抽出された信号の有効時間を論理シミュレーションにより測定し、測定された有効時間、回路を構成する機能単位であるモジュール毎のレジスタ数と回路内のメモリ容量が回路の消費電力に与える影響の度合を示すメモリ容量係数から、コンピュータにより回路の消費電力解析結果を算出して出力するように構成する。【選択図】図６
2008134824.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより、RTL設計段階で回路の論理設計を行い、その後の論理合成段階で回路のゲーテッドクロック化を行う回路の開発手順における消費電力解析方法であって、
該RTL設計段階で、該コンピュータにより該論理合成段階でゲーテッドクロックに変換されると判定される信号を抽出してメモリ部に保存する抽出ステップと、
該コンピュータにより該メモリ部に保存された前記信号の有効時間を論理シミュレーションにより測定して、該メモリ部に保存する測定ステップと、
該メモリ部に保存された前記有効時間、該回路を構成する機能単位であるモジュール毎のレジスタ数、及び該回路内のメモリ容量が該回路の消費電力に与える影響の度合を示すメモリ容量係数から、該コンピュータにより該回路の消費電力解析結果を算出して出力する後処理ステップと
を含むことを特徴とする、消費電力解析方法。
【請求項２】
該後処理ステップは、該回路の消費電力値を算出して該消費電力解析結果として出力することを特徴とする、請求項１記載の消費電力解析方法。
【請求項３】
該後処理ステップは、一定区間毎のシミュレーションを行い、該区間毎の該信号の該有効時間を測定することにより、該回路の消費電力推移を算出して該回路の消費電力解析結果として出力することを特徴とする、請求項１記載の消費電力解析方法。
【請求項４】
該後処理ステップは、該有効時間から単位時間当たりのゲーテッドクロックの変化回数を示す動作率を求め、該動作率、該レジスタ数及び該メモリ容量係数から、ゲーテッドクロックが挿入された該論理合成段階の後の該回路の消費電力推移を算出して該回路の消費電力解析結果として出力することを特徴とする、請求項３記載の消費電力解析方法。
【請求項５】
該抽出ステップは、
該コンピュータにより該メモリ部に格納されたRTLデザイン情報から論理合成後にゲーテッドクロックのイネーブル信号に変換されると判定される信号を抽出し、抽出された信号名及びその信号が存在するモジュールの最上位階層からのパス情報をモジュール毎のレジスタ数と共に該メモリ部に保存するステップと、
該コンピュータにより該メモリ部から読み出した該信号及びパス情報から、該信号の該有効時間を測定するカウンタを備えたテストベンチを生成して該メモリ部に保存するステップとを含むことを特徴とする、請求項１〜４のいずれか1項記載の消費電力解析方法。
【請求項６】
RTL設計段階で回路の論理設計を行い、その後の論理合成段階で回路のゲーテッドクロック化を行う回路の開発手順における消費電力解析をコンピュータに行わせるプログラムであって、
該コンピュータに、該RTL設計段階で、該論理合成段階でゲーテッドクロックに変換されると判定される信号を抽出させてメモリ部に保存させる抽出手順と、
該コンピュータに、該メモリ部に保存された抽出された信号の有効時間を論理シミュレーションにより測定させて該メモリ部に保存させる測定手順と、
該コンピュータに、該メモリ部に保存された前記有効時間、該回路を構成する機能単位であるモジュール毎のレジスタ数、及び該回路内のメモリ容量が該回路の消費電力に与える影響の度合を示すメモリ容量係数から、該回路の消費電力解析結果を算出させて出力させる後処理手順とを含むことを特徴とする、プログラム。
【請求項７】
該後処理手順は、該コンピュータに、該回路の消費電力値を算出させて該消費電力解析結果として出力させることを特徴とする、請求項６記載のプログラム。
【請求項８】
該後処理手順は、該コンピュータに、一定区間毎のシミュレーションを行わせ、該区間毎の該信号の該有効時間を測定させることで、該回路の消費電力推移を算出させて該回路の消費電力解析結果として出力させることを特徴とする、請求項６記載のプログラム。
【請求項９】
該後処理手順は、該コンピュータに、該有効時間から単位時間当たりのゲーテッドクロックの変化回数を示す動作率を求めさせ、該動作率、該レジスタ数及び該メモリ容量係数から、ゲーテッドクロックが挿入された該論理合成段階の後の該回路の消費電力推移を算出させて該回路の消費電力解析結果として出力さえることを特徴とする、請求項８記載のプログラム。
【請求項１０】
該後処理手順は、該コンピュータに、該回路の該消費電力解析結果を表示部に表示させることを特徴とする、請求項６〜９のいずれか1項記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、消費電力解析方法及びプログラムに係り、特に半導体集積回路の開発段階における消費電力の解析や見積もりを行うのに適した消費電力解析方法及びプログラムに関する。
【背景技術】
【０００２】
近年の半導体集積回路は、回路規模の増大、電池で駆動される携帯機器への対応等により、低消費電力化が重要な課題になっている。
【０００３】
半導体集積回路は、その論理動作をHDL（Hardware Description Language）によるRTL（Register Transfer Level）で設計するのが一般的である。RTL設計段階では、回路のアーキテクチャが仕様として決定されている必要があり、回路の消費電力はアーキテクチャの構造によって影響を受ける。従って、RTL設計段階、或いは、RTL設計段階より前の段階で、回路のアーキテクチャが低消費電力という観点で最適であるか否かを検討して評価する必要がある。
【０００４】
近年の半導体集積回路では、低消費電力化のためにフリップフロップへのクロック入力を遮断するゲーテッドクロック（Gated Clock）が用いられる。ゲーテッドクロックの挿入方法としては、RTL記述の段階で設計者が明示的に挿入する方法、論理合成ツール（Logic Synthesis Tool）が合成処理時にフリップフロップのイネーブル信号から自動変換する方法、及び両者を組み合わせた方法がある。今後は、論理合成ツールの性能向上に伴って、論理合成ツールによるゲーテッドクロック化が設計フローの主流になってくると考えられる。
【０００５】
フリップフロップをゲーテッドクロック化する回路設計方法は、例えば特許文献１に記載されている。
【０００６】
図１は、従来の半導体集積回路の開発手順を説明する図である。同図中、左側に示す開発手順は、RTL設計段階１、論理合成（Logic Synthesis）段階２、ネットリスト（Net List）生成段階３、レイアウト生成段階４及びネットリスト（Net List）生成段階５を含む。論理合成段階２は、論理合成ツールにより半導体集積回路をゲーテッドクロック化するものとする。
【０００７】
RTL設計段階１での回路を構成する機能単位であるモジュールm1〜m3について消費電力の解析を行って求めた消費電力解析結果１１を図２に示す。図２において、縦軸は消費電力をmVで示し、横軸はシミュレーションサイクルを任意単位で示す。他方、ネットリスト生成段階５での回路を構成する機能単位であるモジュールm1〜m3について消費電力の解析を行って求めた消費電力解析結果１２を図３に示す。図３において、縦軸は消費電力をmVで示し、横軸はシミュレーションサイクルを任意単位で示す。又、開発手順の後に作成された半導体集積回路、即ち、実デバイスの消費電力を測定した結果は、消費電力解析結果１２と略同様となる。
【０００８】
論理合成段階２において、論理合成ツールにより半導体集積回路をゲーテッドクロック化する場合、図２及び図３に示す消費電力解析結果１１，１２の比較からも分かるように、論理合成段階でのゲーテッドクロック化による影響で、RTL設計段階１での消費電力解析結果１１と、論理合成段階２の後のネットリスト生成段階５での消費電力解析結果１２とでは、消費電力値、電力消費推移、回路を構成するモジュール間の消費電力比等で大きな差異が生じる。
【特許文献１】特開２００２−９２０６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来の半導体集積回路の開発手順では、論理合成段階でのゲーテッドクロック化による影響で、RTL設計段階での消費電力解析結果と論理合成段階の後のネットリスト生成段階での消費電力解析結果とでは大きく異なるため、RTL設計段階で低消費電力化のためにアーキテクチャの変更を行っても、その変更が実デバイスにおいてどの程度の効果があるのかが分かり難く、RTL設計段階でのアーキテクチャの最適化は難しいという問題があった。
【００１０】
そこで、本発明は、回路の開発手順のRTL設計段階での回路のアーキテクチャの最適化を可能とする消費電力解析方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の課題は、コンピュータにより、RTL設計段階で回路の論理設計を行い、その後の論理合成段階で回路のゲーテッドクロック化を行う回路の開発手順における消費電力解析方法であって、該RTL設計段階で、該コンピュータにより該論理合成段階でゲーテッドクロックに変換されると判定される信号を抽出してメモリ部に保存する抽出ステップと、該コンピュータにより該メモリ部に保存された前記信号の有効時間を論理シミュレーションにより測定して該メモリ部に保存する測定ステップと、該メモリ部に保存された前記有効時間、該回路を構成する機能単位であるモジュール毎のレジスタ数、及び回路内のメモリ容量が該回路の消費電力に与える影響の度合を示すメモリ容量係数から、該コンピュータにより該回路の消費電力解析結果を算出して出力する後処理ステップとを含むことを特徴とする消費電力解析方法によって達成できる。
【００１２】
上記の課題は、RTL設計段階で回路の論理設計を行い、その後の論理合成段階で回路のゲーテッドクロック化を行う回路の開発手順における消費電力解析をコンピュータに行わせるプログラムであって、該コンピュータに、該RTL設計段階で、該論理合成段階でゲーテッドクロックに変換されると判定される信号を抽出させてメモリ部に保存させる抽出手順と、該コンピュータに、該メモリ部に保存された前記信号の有効時間を論理シミュレーションにより測定させて該メモリ部に保存させる測定手順と、該コンピュータに、該メモリ部に保存された前記有効時間、該回路を構成する機能単位であるモジュール毎のレジスタ数、及び回路内のメモリ容量が該回路の消費電力に与える影響の度合を示すメモリ容量係数から、該回路の消費電力解析結果を算出させて出力させる後処理手順とを含むことを特徴とするプログラムによって達成できる。
【発明の効果】
【００１３】
本発明によれば、回路の開発手順のRTL設計段階での回路のアーキテクチャの最適化を可能とする消費電力解析方法及びプログラムを実現することができる。
【発明を実施するための最良の形態】
【００１４】
本発明は、回路の開発手順のRTL設計段階で、ゲーテッドクロック化後の消費電力推移を擬似的に算出することで、RTL設計段階での回路のアーキテクチャの最適化を可能とする。
【００１５】
つまり、RTLから、論理合成ツールによってゲーテッドクロックのイネーブル信号に変換されると判定される信号を抽出し、抽出された信号の有効時間（イネーブル期間）を論理シミュレーションによって測定する。測定された有効時間、回路を構成する機能単位であるモジュール毎のレジスタ数、及びメモリ容量係数から、消費電力値、消費電力推移、回路を構成するモジュール間の消費電力比等を算出する。
【００１６】
以下に、本発明の消費電力解析方法及びプログラムの各実施例を、図４以降と共に説明する。
【実施例１】
【００１７】
本発明の消費電力解析方法の第１実施例は、本発明のプログラムの第１実施例を用いる。本実施例では、本発明がコンピュータシステムに適用されている。図４は、本発明が適用されるコンピュータシステムを示す斜視図である。
【００１８】
図４に示すコンピュータシステム１００は、CPUやディスクドライブ等を内蔵した本体部１０１、本体部１０１からの指示により表示画面１０２ａ上に消費電力解析結果等を表示するディスプレイ１０２、コンピュータシステム１００に種々の情報を入力するためのキーボード１０３、ディスプレイ１０２の表示画面１０２ａ上の任意の位置を指定するマウス１０４及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードするモデム１０５を有する。
【００１９】
ディスク１１０等の可搬型記録媒体に格納されるか、モデム１０５等の通信装置を使って他のコンピュータシステムの記録媒体１０６からダウンロードされる、コンピュータシステム１００に少なくとも消費電力解析機能を持たせるプログラム（消費電力解析ソフトウェア又はツール）の本実施例は、コンピュータシステム１００に入力されてコンパイルされる。プログラムの本実施例は、コンピュータシステム１００（即ち、後述するCPU２０１）を消費電力解析機能を有する回路設計支援装置（又は、シミュレーションシステム）として動作させる。プログラムの本実施例は、例えばディスク１１０等のコンピュータ読み取り可能な記録媒体に格納されていても良い。コンピュータ読み取り可能な記録媒体は、ディスク１１０、ＩＣカードメモリ、フロッピー（登録商標）ディスク等の磁気ディスク、光磁気ディスク、CD-ROM等の可搬型記録媒体に限定されるものではなく、モデム１０５やLAN等の通信装置や通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
【００２０】
図５は、コンピュータシステム１００の本体部１０１内の要部の構成を説明するブロック図である。同図中、本体部１０１は、バス２００により接続されたCPU２０１、RAMやROM等からなるメモリ部２０２、ディスク１１０用のディスクドライブ２０３及びハードディスクドライブ（HDD）２０４からなる。本実施例では、ディスプレイ１０２、キーボード１０３及びマウス１０４も、バス２００を介してCPU２０１に接続されているが、これらは直接CPU２０１に接続されていても良い。又、ディスプレイ１０２は、入出力画像データの処理を行う周知のグラフィックインタフェース（図示せず）を介してCPU２０１に接続されていても良い。
【００２１】
コンピュータシステム１００において、キーボード１０３やマウス１０４は回路設計支援装置の入力部（又は手段）を構成する。ディスプレイ１０２は、消費電力解析結果等を画面１０２ａ上に表示する表示部（又は手段）を構成する。CPU２０１は、半導体集積回路の開発手順のRTL設計段階、即ち、論理合成段階が行われる前の段階で回路の消費電力解析を行う解析部（又は手段）として機能する。メモリ部２０２、ディスクドライブ１０２及びHDD２０４は、メモリ部（又は手段）を構成する。
【００２２】
尚、コンピュータシステム１００の構成は図４及び図５に示す構成に限定されるものではなく、代わりに各種周知の構成を使用しても良い。
【００２３】
図６は、本実施例の消費電力解析処理を説明するフローチャートである。図６に示す処理は、例えば図１に示す如き半導体集積回路の開発手順のうち回路の論理設計を行うRTL設計段階、即ち、回路のゲーテッドクロック化を行う論理合成段階が行われる前の段階で、CPU２０１により実行される。図６に示す消費電力解析処理は、ステップS1，S2を含む抽出処理ST1、ステップS3〜S6を含むシミュレーション処理ST2、及びステップS7〜S9を含む後処理ST3からなる。説明の便宜上、解析対象となる半導体集積回路を構成する機能単位であるモジュールは、階層構造を有するものとする。
【００２４】
抽出処理ST1：
図６において、ステップS1は、例えば入力部から入力されて、或いは、他のコンピュータシステムから転送されてメモリ部に格納されたRTLデザイン情報２１から論理合成後にゲーテッドクロックのイネーブル信号に変換されると判定される信号を抽出する。又、ステップS1は、抽出された信号名GCLK及びその信号が存在するモジュールの最上位階層からのパス情報２３をメモリ部に保存する。更に、ステップS1は、モジュール毎のレジスタ数２２もメモリ部に保存する。
【００２５】
ステップS2は、メモリ部から読み出したGCLK信号及びパス情報２３から、抽出された信号の有効時間（イネーブル期間）を測定するカウンタを備えたテストベンチ２４を生成してメモリ部に保存する。
【００２６】
シミュレーション処理ST2：
ステップS３は、メモリ部から読み出したRTLデザイン情報２１及びテストベンチ２４を用いて一定区間毎（即ち、一定シミュレーションサイクル）のシミュレーションを論理シミュレータにより実行する。ステップS4は、一定区間のシミュレーション完了後、テストベンチ２４のカウンタ値、即ち、有効時間カウント値データ２５を読み出してメモリ部に保存する。ステップS５は、テストベンチ２４のカウンタをリセットする。ステップS６は、所定のシミュレーション時間が経過してシミュレーションが終了したか否かを判定し、判定結果がNOであると、処理はステップS3へ戻る。これにより、ステップS３〜S5の処理が所定のシミュレーション時間が経過するまで繰り返される。
【００２７】
後処理ST3：
ステップS7は、有効時間カウント値データ２５をモジュール毎のゲーテッドクロック平均動作率データ２６に変換する。ステップS8は、モジュール毎のゲーテッドクロック平均動作率データ２６、メモリ部から読み出したモジュール毎のレジスタ数２２及びモジュール毎のメモリ容量係数２７から回路の消費電力の推移を求める。モジュール毎のメモリ容量係数２７は、モジュール毎にモジュール内のメモリ容量がモジュールの消費電力に与える影響の度合を示す。モジュール毎のメモリ容量は、回路の仕様が決定された段階でモジュール毎の容量のリストが出来上がるので、RTLデザイン情報２１から抽出する等の処理を行う必要はない。ここでは説明の便宜上、モジュール間の消費電力比データ２８が回路の消費電力の推移として求められてメモリ部に保存されるものとする。ステップS9は、メモリ部から読み出したモジュール間の消費電力比データ２８をグラフ化して表示部に表示することで電力消費の分析を行い、処理は終了する。電力消費の分析自体は、CPU２０１が自動的に行っても、オペレータが手動で行っても、これらの組み合わせであっても良い。
【００２８】
図７は、抽出処理ST1の概要を説明する図である。同図は、Verilog HDLで記述されたRTLの例を示す。この場合、always文の中のif文の条件定義部分が、ゲーテッドクロックのイネーブル信号に変換されると考えられるので、このような部分を抽出する。
【００２９】
又、Verilog HDLでは、モジュール毎にレジスタ定義記述（reg定義記述）があるので、reg定義記述をモジュール毎にカウントしてファイルに出力する。
【００３０】
尚、図７の下部は、その後の論理合成段階で生成される回路を示す。ゲーテッドクロック１００はラッチ回路１０１及びアンド回路１０２からなり、アンド回路１０２の出力がフリップフロップ１０３のクロック入力端子に接続されている。ENはイネーブル信号、CKはクロック信号、RSTはリセット信号、DN1はフリップフロップ１０３へのD入力、Q1はフリップフロップ１０３のQ出力を示す。
【００３１】
図８は、テストベンチ２４を説明する図である。説明の便宜上、図８では回路を構成するモジュールのうち、下位階層モジュールsub1，sub2のみを示す。テストベンチ２４には、抽出したイネーブル信号毎に有効時間（イネーブル期間）を測定するカウンタで構成されるカウンタ群２４１を設ける。後のシミュレーション処理ST2時にカウンタ群２４１を構成する各カウンタの値を読み出す処理の負荷を軽減するため、下位階層モジュール単位にカウンタのカウント値を加算器２４２で加算することで読み出すデータ数を減らすことができる。この場合、下位階層モジュールsub1に対して設けられた加算器２４２からは、下位階層モジュールsub1のトータルイネーブル数（イネーブル期間のカウント値の総和）が得られる。又、下位階層モジュールsub2に対して設けられた加算器２４２からは、下位階層モジュールsub2のトータルイネーブル数（イネーブル期間のカウント値の総和）が得られる。加算器２４２の加算値をイネーブル信号数で除算し、モジュール毎の平均値を求めることで、更にデータを小さくすることも可能である。
【００３２】
マスタカウンタ２４３は、回路が動作するクロック周波数でイネーブル期間をカウントするものであり、このカウント値は後で動作率を求める際に割り算の分母になる。つまり、マスタカウンタ２４３のカウント値は、シミュレーション処理ST2を行う一定区間のサイクル数を示す。シミュレーション区間とクロック周波数が常に固定の場合のように、シミュレーション処理ST2時にイネーブル期間をカウントしなくても分かるような場合には、このようなマスタカウンタ２４３は省略可能である。
【００３３】
回路の動作率とは、本来は単位時間当たりのクロックの変化回数を示すが、ゲーテッドクロックのイネーブル期間を測定することで、イネーブル期間のカウント値を動作率に換算することが可能である。
【００３４】
シミュレーション処理ST2は一定区間毎に行い、上記の如きカウント値を抽出するが、一定区間とは図９に示すような区間SIを表す。図９は、シミュレーション処理ST2の一定区間を説明する図である。図９において、縦軸は回路を構成するモジュールM1〜M3に対する消費電力係数値を任意単位で示し、横軸はシミュレーションサイクルを任意単位で示す。１区間を何サイクルにするかは、必要な測定精度によって変化する。あまり細かい精度で測定するとデータ数が多くなり、シミュレーション処理ST2でのカウント値の読み出す処理及び後処理での計算に時間がかかってしまうので、トータルでのシミュレーション期間をあまり長くすることができない。従って、先ず荒い測定精度で長いシミュレーション期間を測定し、その結果から一部分の期間についてのみ細かい測定精度で再測定する方法を採用することが望ましい。尚、最も細かい測定精度は１サイクル毎の測定である。
【００３５】
後処理ST3では、以下のような計算を、モジュール毎及びシミュレーション処理ST2の一定区間毎に行う。
（平均イネーブル数）＝（トータルイネーブル数）÷（モジュール毎のイネーブル信号数）
（動作率）＝（平均イネーブル数）÷（マスタカウンタ値）
（消費電力係数値）＝（レジスタ数）×（メモリ容量係数）×（動作率）
メモリ容量係数は、モジュールの消費電力にモジュール内のメモリ容量がどの程度影響を及ぼしているかを示す係数であり、レジスタ数（又はASICゲート数）とメモリ容量の関係等から算出する。
【００３６】
消費電力ではなく、消費電力係数値としているのは、この状態では未だ消費電力にはなっていないためである。しかし、電力消費の推移、モジュール間の消費電力比は、図９に示す消費電力解析結果から読み取ることが十分可能であり、RTL設計段階でのアーキテクチャの最適化に使用することができる。又、図９に示す消費電力解析結果に何らかの処理を追加することで、消費電力を求めることが可能になると考えられるので、消費電力を求めるための係数になるという意味で、本明細書では消費電力係数値と呼ぶことにする。
【００３７】
このように、本実施例では、RTLから論理合成ツールによってゲーテッドクロックのイネーブル信号に変換されると判定される信号を抽出し、抽出された信号のイネーブル期間を論理シミュレーションによって測定する。測定されたイネーブル期間及び回路を構成する機能単位であるモジュール毎のレジスタ数とメモリ容量係数から、消費電力値、消費電力推移、回路を構成するモジュール間の消費電力比等を算出する。
【００３８】
従って、回路の開発手順のRTLの段階で、ゲーテッドクロック化後の消費電力推移を擬似的に算出することで、RTL設計段階での回路のアーキテクチャの最適化を可能とする。
【実施例２】
【００３９】
図１０は、第２実施例の消費電力解析処理を説明するフローチャートである。同図中、図６と同一ステップには同一符号を付し、その説明は省略する。図１０に示す処理は、半導体集積回路の開発手順のRTL設計段階、即ち、論理合成段階が行われる前の段階で、CPU２０１により実行される。図１０に示す消費電力解析処理は、ステップS1，S2Aを含む抽出処理ST11、ステップS21，S3A，S4A，S5，S6Aを含むエミュレーション処理ST12、及びステップS7，S8A，S9を含む後処理ST13からなる。説明の便宜上、解析対象となる半導体集積回路を構成する機能単位であるモジュールは、階層構造を有するものとする。
【００４０】
本実施例では、エミュレータを使用する。エミュレータとは、ハードウェアシミュレータであり、FPGA（Field Programmable Gate Array）等で構成したプロトタイピングボードに信号波形取得等のロジックアナライザ機能を付加することにより、上記第１実施例で用いた如き論理シミュレータと同様のデバッグ作業を可能とする。
【００４１】
通常、エミュレータでシミュレーションを行うことをエミュレーションと言う。RTLのエミュレーションを行うためには、一旦、エミュレーション用のデータベースを生成する必要がある。図６と図１０の省電力解析処理の相違点は、上記のシミュレーションとエミュレーションの相違点に起因する。
【００４２】
抽出処理ST11：
図１１は、抽出処理ST11の概要を説明する図である。図１１に示すように、実際のRTLデザイン情報２１では、ゲーテッドクロックのイネーブル信号になり得るif文の条件が中子になっているので、フリップフロップ毎に１本にまとめる処理を行う。図１１のRTLデザイン情報２１で示されるモジュールのイネーブル信号は、階層Ｕ１インスタンスの更に下位階層Ｕ２インスタンスにある信号EN1であることを示す。
【００４３】
図１１では、説明の都合上１本のイネーブル信号しか生成していないが、実際にはRTLデザイン情報２１で示される１モジュールには複数のフリップフロップが存在するので、GCLK信号及びパス情報２３からは複数のイネーブル信号が抽出される。又、何本のイネーブル信号を抽出したかをGCLK信号及びパス情報２３に記述しておく。図１１中、GCLK信号及びパス情報２３のパス情報及びイネーブル信号名は、下線を付けて示す。
【００４４】
図１２は、テストベンチ２４の生成を説明する図である。図１２に示すように、GCLK信号及びパス情報２３のファイルを元に、全てのイネーブル信号ENについてイネーブル期間をカウントするカウンタ（counter）を設けてモジュール毎にカウンタの値を加算することで、テストベンチ２４を生成する。
【００４５】
エミュレータでは、カウンタ値の読み取りをエミュレーション制御用のTclコマンドから行うため、そのカウンタリードコマンド３２のファイル（即ち、カウンタリードコマンドファイル）をテストベンチ２４の生成と同時に出力する。つまり、図１０において、ステップS2Aは、メモリ部から読み出したGCLK信号及びパス情報２３から、抽出信号のイネーブル期間を測定するカウンタを備えたテストベンチ２４を生成すると共に、カウンタリードコマンドファイルを出力し、テストベンチ２４及びカウンタリードコマンドファイル（カウンタリードコマンド３２）をメモリ部に保存する。
【００４６】
エミュレーション処理ST12：
ステップS21は、メモリ部から読み出したRTLデザイン情報２１及びテストベンチ２４を用いてエミュレーション用のデータベース３１を生成してメモリ部に保存する。ステップS3Aは、メモリ部から読み出したエミュレーション用のデータベース３１に含まれるRTLデザイン情報２１及びテストベンチ２４を用いて一定区間毎（即ち、一定エミュレーションサイクル）のエミュレーションを実行する。ステップS4Aは、一定区間のエミュレーション完了後、メモリ部から読み出したカウンタリードコマンドファイルを用いてテストベンチ２４のカウンタ値、即ち、有効時間カウント値データ２５を読み出してメモリ部に保存する。ステップS５は、テストベンチ２４のカウンタをリセットする。ステップS6Aは、所定のエミュレーション時間が経過してエミュレーションが終了したか否かを判定し、判定結果がNOであると、処理はステップS3Aへ戻る。これにより、ステップS3A〜S5の処理が所定のエミュレーション時間が経過するまで繰り返される。
【００４７】
このように、エミュレーション処理ST12を行うことで、イネーブル期間をカウントするカウンタのカウント値が得られる。
【００４８】
図１３は、エミュレーション処理ST12の実行時に使用するカウンタリードコマンド３２のファイルを示す図である。
【００４９】
図１４は、エミュレ−ション処理ST12の結果の出力される有効時間カウント値データ２５のファイルを示す図である。図１４の「xxxxxxxxx」で挟まれた区間が１区間のデータであり、後処理ST13はこの区間毎に行われる。
【００５０】
後処理ST13：
ステップS8Aは、モジュール毎のゲーテッドクロック平均動作率データ２６、メモリ部から読み出したモジュール毎のレジスタ数２２、GCLK信号及びパス情報２３及びモジュール毎のメモリ容量係数２７から回路の消費電力の推移を求める。
【００５１】
本実施例では、総ASICゲート数が４００万ゲート程度、総メモリ（RAM/ROM）容量が６００Kbyte程度の画像処理系のLSI回路を半導体集積回路として想定している。この種の回路では、このゲート数とメモリ（RAM/ROM）容量の比率では、経験値的にメモリ（RAM/ROM）の消費電力が総消費電力に占める割合は1/6程度であることが分かっている。従って、メモリ容量係数を１＋1/6とすると、消費電力係数値は次式から求めることができる。
（消費電力係数値）＝（レジスタ数）×（動作率）×（１＋1/6）
以上の処理によって、図９に示すような論理合成後のゲーテッドクロックによる影響を考慮した消費電力推移のグラフを得ることができる。
【００５２】
このように、本実施例では、RTLから論理合成ツールによってゲーテッドクロックのイネーブル信号に変換されると判定される信号を抽出し、抽出された信号のイネーブル期間をエミュレーションによって測定する。測定されたイネーブル期間及び回路を構成する機能単位であるモジュール毎のレジスタ数とメモリ容量係数から、消費電力値、消費電力推移、回路を構成するモジュール間の消費電力比等を算出する。
【００５３】
従って、回路の開発手順のRTLの段階で、ゲーテッドクロック化後の消費電力推移を擬似的に算出することで、RTL設計段階での回路のアーキテクチャの最適化を可能とする。
【００５４】
次に、回路のアーキテクチャの最適化について、図１５〜図１８と共に説明する。図１５〜図１８は、回路のアーキテクチャの最適化を説明する図である。
【００５５】
図１５は、RTLデザイン情報２１で表されるアーキテクチャが変更される前の回路を示す図であり、図１６は、アーキテクチャが変更される前の回路の消費電力解析結果を示す図である。図１５では、回路を構成するモジュールM1，M3の両方にイネーブル信号EN が入力され、モジュールM1，M3の出力がモジュールM2に入力され、回路の出力がモジュールM2から出力される。図１５に示すRTL設計段階の回路に対して図６又は図１０の消費電力解析処理を行うことで、図１６の消費電力解析結果が得られた。図１６において、縦軸は回路を構成するモジュールM1〜M3に対する消費電力係数値を任意単位で示し、横軸はシミュレーションサイクルを任意単位で示す。
【００５６】
図１７は、RTLデザイン情報２１で表されるアーキテクチャが変更された後の回路を示す図であり、図１８は、アーキテクチャが変更された後の回路の消費電力解析結果を示す図である。図１７では、回路を構成するモジュールM1にイネーブル信号ENが入力され、モジュールM3にはモジュールM1からイネーブル信号ENが入力され、モジュールM1，M3の出力がモジュールM2に入力され、回路の出力がモジュールM2から出力される。図１７に示すRTL設計段階の回路に対して図６又は図１０の消費電力解析処理を行うことで、図１８の消費電力解析結果が得られた。図１８において、縦軸は回路を構成するモジュールM1〜M3に対する消費電力係数値を任意単位で示し、横軸はシミュレーションサイクルを任意単位で示す。
【００５７】
図１５〜図１８に示すように、RTL設計段階で回路のアーキテクチャの最適化が可能であることが確認された。つまり、図１５に示す回路では、モジュールM1とモジュールM3が同時期に活発に動作するために、図１６に示す消費電力解析結果ではグラフの山の部分が非常に高くなっている（即ち、消費電力係数値が大きい）ことが分かった。そこで、図１７に示すように、回路のアーキテクチャを、モジュールM1の動作状態に応じてモジュールM1がモジュールM3を起動するようなアーキテクチャに変更した。その結果、図１８の消費電力解析結果のグラフでは、電力推移の状態が平滑化され、山を低くすることができることが確認された。即ち、RTL設計段階で、回路のアーキテクチャの最適化が可能であることが確認された。この回路のアーキテクチャの最適化自体は、CPU２０１が自動的に行っても、オペレータが手動で行っても、これらの組み合わせであっても良い。
【００５８】
特に電池で動作する機器のような場合には、電池の単位時間当たりの電力の供給量に制限がある。従って、平均消費電力が同じであっても、本例のように消費電力解析結果のグラフの山を図１６に示す状態から図１８に示す状態まで低くすることにより、図１５のアーキテクチャを用いる場合と比べると電力の供給量が小さい電池を採用することが可能になる。
【００５９】
尚、本発明は、以下に付記する発明をも包含するものである。
（付記１）  コンピュータにより、RTL設計段階で回路の論理設計を行い、その後の論理合成段階で回路のゲーテッドクロック化を行う回路の開発手順における消費電力解析方法であって、
該RTL設計段階で、該コンピュータにより該論理合成段階でゲーテッドクロックに変換されると判定される信号を抽出してメモリ部に保存する抽出ステップと、
該コンピュータにより該メモリ部に保存された前記信号の有効時間を論理シミュレーションにより測定して、該メモリ部に保存する測定ステップと、
該メモリ部に保存された前記有効時間、該回路を構成する機能単位であるモジュール毎のレジスタ数、及び該回路内のメモリ容量が該回路の消費電力に与える影響の度合を示すメモリ容量係数から、該コンピュータにより該回路の消費電力解析結果を算出して出力する後処理ステップとを含むことを特徴とする、消費電力解析方法。
（付記２）  該後処理ステップは、該回路の消費電力値を算出して該消費電力解析結果として出力することを特徴とする、付記１記載の消費電力解析方法。
（付記３）  該後処理ステップは、一定区間毎のシミュレーションを行い、該区間毎の該信号の該有効時間を測定することにより該回路の消費電力推移を算出して該回路の消費電力解析結果として出力することを特徴とする、付記１記載の消費電力解析方法。
（付記４）  該後処理ステップは、該有効時間から単位時間当たりのゲーテッドクロックの変化回数を示す動作率を求め、該動作率、該レジスタ数及び該メモリ容量係数から、ゲーテッドクロックが挿入された該論理合成段階の後の該回路の消費電力推移を算出して該回路の消費電力解析結果として出力することを特徴とする、付記３記載の消費電力解析方法。
（付記５）  該後処理ステップは、該コンピュータにより該回路の該消費電力解析結果を表示部に表示することを特徴とする、付記１〜４のいずれか1項記載の消費電力解析方法。
（付記６）  該測定ステップは、該コンピュータにより該抽出された信号の有効時間を測定するテストベンチを生成し、該テストベンチを用いて一定区間毎を単位とするシミュレーションを行うことで該信号の有効時間を測定することを特徴とする、付記１〜５のいずれか1項記載の消費電力解析方法。
（付記７）  該抽出ステップは、
該コンピュータにより該メモリ部に格納されたRTLデザイン情報から論理合成後にゲーテッドクロックのイネーブル信号に変換されると判定される信号を抽出し、抽出された信号名及びその信号が存在するモジュールの最上位階層からのパス情報をモジュール毎のレジスタ数と共に該メモリ部に保存するステップと、
該コンピュータにより該メモリ部から読み出した該信号及びパス情報から、該信号の該有効時間を測定するカウンタを備えたテストベンチを生成して該メモリ部に保存するステップとを含むことを特徴とする、付記１〜６のいずれか1項記載の消費電力解析方法。
（付記８）  付記１〜７のいずれか1項記載の消費電力解析方法を用いる半導体集積回路の開発手順であって、
該消費電力解析結果に基づいて、該コンピュータにより該RTL設計段階で回路のアーキテクチャの最適化を行うステップを含むことを特徴とする、半導体集積回路の開発手順。
（付記９）  RTL設計段階で回路の論理設計を行い、その後の論理合成段階で回路のゲーテッドクロック化を行う回路の開発手順における消費電力解析をコンピュータに行わせるプログラムであって、
該コンピュータに、該RTL設計段階で、該論理合成段階でゲーテッドクロックに変換されると判定される信号を抽出させてメモリ部に保存させる抽出手順と、
該コンピュータに、該メモリ部に保存された前記信号の有効時間を論理シミュレーションにより測定させて該メモリ部に保存させる測定手順と、
該コンピュータに、該メモリ部に保存された前記有効時間、該回路を構成する機能単位であるモジュール毎のレジスタ数、及び該回路内のメモリ容量が該回路の消費電力に与える影響の度合を示すメモリ容量係数から、該回路の消費電力解析結果を算出させて出力させる後処理手順とを含むことを特徴とする、プログラム。
（付記１０）  該後処理手順は、該コンピュータに、該回路の消費電力値を算出させて該消費電力解析結果として出力させることを特徴とする、付記９記載のプログラム。
（付記１１）  該後処理手順は、該コンピュータに、一定区間毎のシミュレーションを行わせ、該区間毎の該信号の該有効時間を測定させることで、該回路の消費電力推移を算出させて該回路の消費電力解析結果として出力させることを特徴とする、付記９記載のプログラム。
（付記１２）  該後処理手順は、該コンピュータに、該有効時間から単位時間当たりのゲーテッドクロックの変化回数を示す動作率を求めさせ、該動作率、該レジスタ数及び該メモリ容量係数から、ゲーテッドクロックが挿入された該論理合成段階の後の該回路の消費電力推移を算出させて該回路の消費電力解析結果として出力さえることを特徴とする、付記１１記載のプログラム。
（付記１３）  該後処理手順は、該コンピュータに、該回路の該消費電力解析結果を表示部に表示させることを特徴とする、付記９〜１２のいずれか1項記載のプログラム。
（付記１４）  該測定手順は、該コンピュータに、該信号の該有効時間を測定するテストベンチを生成させ、該テストベンチを用いて一定区間毎を単位とするシミュレーションを行わせることで該抽出された信号の有効時間を測定させることを特徴とする、付記９〜１３のいずれか1項記載のプログラム。
（付記１５）  該抽出手順は、
該コンピュータに、該メモリ部に格納されたRTLデザイン情報から論理合成後にゲーテッドクロックのイネーブル信号に変換されると判定される信号を抽出させ、抽出された信号名及びその信号が存在するモジュールの最上位階層からのパス情報をモジュール毎のレジスタ数と共に該メモリ部に保存させる手順と、
該コンピュータに、該メモリ部から読み出した該及びパス情報から、該抽出された信号の該有効時間を測定するカウンタを備えたテストベンチを生成させて該メモリ部に保存させる手順とを含むことを特徴とする、付記９〜１４のいずれか1項記載のプログラム。
（付記１６）  付記９〜１５のいずれか1項記載の消費電力解析を用いる半導体集積回路の開発手順を該コンピュータに行わせるプログラムであって、
該消費電力解析結果に基づいて、該コンピュータに、該RTL設計段階で回路のアーキテクチャの最適化を行わせる手順を含むことを特徴とする、プログラム。
【００６０】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図面の簡単な説明】
【００６１】
【図１】従来の半導体集積回路の開発手順を説明する図である。
【図２】RTL設計段階で消費電力の解析を行って求めた消費電力解析結果を示す図である。
【図３】ネットリスト生成段階で消費電力の解析を行って求めた消費電力解析結果を示す図である。
【図４】本発明が適用されるコンピュータシステムを示す斜視図である。
【図５】コンピュータシステムの本体部内の要部の構成を説明するブロック図である。
【図６】第１実施例の消費電力解析処理を説明するフローチャートである。
【図７】抽出処理の概要を説明する図である。
【図８】テストベンチを説明する図である。
【図９】シミュレーション処理の一定区間を説明する図である。
【図１０】第２実施例の消費電力解析処理を説明するフローチャートである。
【図１１】抽出処理の概要を説明する図である。
【図１２】テストベンチの生成を説明する図である。
【図１３】エミュレーション実行時に使用するカウンタリードコマンドファイルを示す図である。
【図１４】エミュレ−ション結果の出力であるカウント値ファイルを示す図である。
【図１５】アーキテクチャが変更される前の回路を示す図である。
【図１６】アーキテクチャが変更される前の回路の消費電力解析結果を示す図である。
【図１７】アーキテクチャが変更された後の回路を示す図である。
【図１８】アーキテクチャが変更された後の回路の消費電力解析結果を示す図である。
【符号の説明】
【００６２】
１００      コンピュータシステム
１０１      本体部
１０２      ディスプレイ
１０２ａ      表示画面
１０３      キーボード
１０４      マウス
１０５      モデム
１０６      記録媒体
１１０      ディスク
２００      バス
２０１      ＣＰＵ
２０２      メモリ部
２０３      ディスクドライブ
２０４      ハードディスクドライブ
M1〜M3      モジュール
【図１】
2008134824.tif 000003
【図２】
2008134824.tif 000004
【図３】
2008134824.tif 000005
【図４】
2008134824.tif 000006
【図５】
2008134824.tif 000007
【図６】
2008134824.tif 000008
【図７】
2008134824.tif 000009
【図８】
2008134824.tif 000010
【図９】
2008134824.tif 000011
【図１０】
2008134824.tif 000012
【図１１】
2008134824.tif 000013
【図１２】
2008134824.tif 000014
【図１３】
2008134824.tif 000015
【図１４】
2008134824.tif 000016
【図１５】
2008134824.tif 000017
【図１６】
2008134824.tif 000018
【図１７】
2008134824.tif 000019
【図１８】
2008134824.tif 000020