JP2008065382A - Lsiの消費電力算出方法及びその算出プログラム - Google Patents

Lsiの消費電力算出方法及びその算出プログラム Download PDF

Info

Publication number
JP2008065382A
JP2008065382A JP2006239335A JP2006239335A JP2008065382A JP 2008065382 A JP2008065382 A JP 2008065382A JP 2006239335 A JP2006239335 A JP 2006239335A JP 2006239335 A JP2006239335 A JP 2006239335A JP 2008065382 A JP2008065382 A JP 2008065382A
Authority
JP
Japan
Prior art keywords
netlist
power consumption
gated clock
clock buffer
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2006239335A
Other languages
English (en)
Inventor
Takayuki Sasaki
貴行 佐々木
Junichi Niitsuma
潤一 新妻
Kazuhide Tamaki
和秀 田巻
Takashi Fujita
隆司 藤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006239335A priority Critical patent/JP2008065382A/ja
Priority to US11/849,999 priority patent/US20080059923A1/en
Publication of JP2008065382A publication Critical patent/JP2008065382A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】微修正したネットリストに対して論理シミュレーションを行うことなく消費電力の算出を可能にする。
【解決手段】第1のネットリストに対して論理シミュレーションにより求めた動作率データを,第1,第2のネットリストのゲーティッドクロックバッファの対応関係に基づいて流用し,その動作率データから微修正された第2のネットリストの消費電力を算出する。対応関係は,第1,第2のネットリストを解析し,ゲーティッドクロックバッファとレジスタのクロックツリー構造から探索する。
【選択図】図7

Description

本発明は,LSIの消費電力算出方法及びその算出プログラムに関し,特に,ハードウエア記述言語(HDL)で記述された設計データを論理合成して生成したネットリストについて消費電力の見積を行った後,微修正した設計データから生成した修正ネットリストについての消費電力の見積を少ない工数で行うことができる方法及びプロセッサエレメントに関する。
近年のLSIの設計は,HDLで記述した設計データを論理合成してネットリストを生成し,そのネットリストから論理検証を経てレイアウトツールによりレイアウトデータを生成する。その場合,ネットリストが生成された時点でLSIの消費電力の見積が行われる。消費電力は,回路動作に依存して発生するダイナミックな消費電力と,リーク電流など回路動作に依存しないスタティックな消費電力とを有し,ダイナミック消費電力が大きな部分を占めている。さらに,ダイナミック消費電力では,データパスでの消費電力よりもクロック配線での消費電力が大きく,特にクロックツリー配線やフリップフロップのクロック部の消費電力が大きい。
そして,データ線やクロック線のダイナミック消費電力Pdは,配線容量C,印加電圧V,動作周波数(クロック周波数)f,動作率αとすると,
Pd=CV2fα
で算出される。ここで,動作率αは,データ線やクロック線がHレベルとLレベルに変化する比率であり,ネットリストの論理回路に所定の入力パターンを与えて行われる論理シミュレーションを実行することで得られる動作波形から算出される。
したがって,ダイナミック消費電力を計算する場合は,ASICライブラリのゲートレベルでマッピングしたネットリストを論理シミュレーションして,信号波形を抽出する。この信号波形とネットリストとライブラリの消費電力データとを電力解析ツールにかける。電力解析ツールは,信号波形から信号の動作率を算出し,ライブラリに登録されている消費電力値と動作率とからシミュレーション期間の消費電力を算出する。
以上の通り,あるネットリストから消費電力を算出するためには多くの工数を要する。かかる消費電力の計算方法については,以下の特許文献1〜5に記載されている。
特開平2−136755号公報 特開平2−171861号公報 特開2001−59856号公報 特開2002−288257号公報 特開2003−256495号公報 特開2004−62238号公報
前述のとおり,消費電力の算出において,ネットリストを論理シミュレーションして信号波形データを得るための実行時間が長く,これが設計コストのアップを招いている。さらに,別の問題として,一旦生成された第1のネットリストに対して,クロックツリー合成やタイミング調整のためのバッファの追加により,修正された第2のネットリストが生成される。また,第1のネットリストから消費電力を算出した後に,設計データに微修正を加えて論理合成して第2のネットリストを生成したり,異なる論理合成ツールにより論理合成して第2のネットリストを生成したりなど,何らかの理由で修正をした第2のネットリストが生成される。その場合,第2のネットリストに対して,消費電力算出のために再度論理シミュレーションを実行しなければならず,これが設計のコストアップを招いている。
また,論理合成ツールの進化に伴って,省電力化のためにゲーティッドクロックバッファを自動挿入する機能が開発されている。この場合は,設計者が認識していないゲーティッドクロックバッファが任意の名前で追加されることになり,かかる機能によってもネットリストが頻繁に修正され,それぞれのネットリストについて論理シミュレーションの実行と消費電力算出が必要になる。
そこで,本発明の目的は,修正された第2のネットリストの消費電力の計算を簡便に行うことができるLSIの消費電力算出方法及びその算出プログラムを提供することにある。
上記の目的を達成するために,本発明の第1の側面によれば,第1のネットリストに対して論理シミュレーションを実行してゲーティッドクロックバッファの動作率データを求めて,当該動作率データから消費電力を算出し,その後,第1のネットリストの少なくとも一部のセルを有する修正された第2のネットリストについて,第1,第2のネットリストのゲーティッドクロックバッファの対応関係を基にして第1のネットリストの動作率データから第2のネットリストの動作率データを求める。そして,求めた動作率データから消費電力を算出する。之により,第2のネットリストに対して再度論理シミュレーションを行うことなく消費電力を見積もることができる。
上記本発明の第1の側面では,LSI内の複数セルの接続を定義したネットリストから消費電力を算出するLSIの消費電力算出方法において,第1のネットリストについて論理シミュレーションを実行して前記セルの動作率を求め,当該動作率と前記セルの消費電力属性パラメータとから前記第1のネットリストの消費電力を算出する工程と,前記第1のネットリストの少なくとも一部のセルを有する第2のネットリストの消費電力を算出する工程とを有し,
前記第2のネットリストの消費電力算出工程は,前記第1及び第2のネットリスト内のセルの対応関係を検出する対応関係検出工程と,当該セルの対応関係に基づいて前記第1のネットリストの動作率から第2のネットリストの各セルの動作率を求める動作率生成工程と,当該第2のネットリストの各セルの動作率と当該セルの消費電力属性パラメータとから消費電力を算出する第2の算出工程とを有することを特徴とする。
上記の第1の側面において,好ましい態様によれば,前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,前記対応関係検出工程では,前記第1,第2のネットリスト内で同じ名前のレジスタに接続される下層ゲーティッドクロックバッファを検出し,前記第1,第2のネットリスト内で当該検出された下層ゲーティッドクロックバッファに接続される上層ゲーティッドクロックバッファを検出し,当該上層ゲーティッドクロックバッファの検出を繰り返し行い,各層で検出されたゲーティッドクロックバッファの対応関係を抽出することを特徴とする。
上記の好ましい態様によれば,第1,第2のネットリストで同じ名前のレジスタを基に,ゲーティッドクロックバッファの対応関係を抽出することができる。その対応関係を利用して第2のネットリストの動作率データを生成する。
上記の第1の側面において,好ましい態様によれば,前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,前記対応関係検出工程では,前記第1,第2のネットリストの前記ゲーティッドクロックバッファについて,同じイネーブル信号で制御されるゲーティッドクロックバッファを対応付け,前記動作率生成工程では,当該ゲーティッドクロックバッファの対応関係に基づいて前記第1のネットリストの動作率から第2のネットリストの各ゲーティッドクロックバッファの動作率を求めることを特徴とする。
すなわち,上記好ましい態様では,第1,第2のネットリストを解析してゲーティッドクロックバッファとそのクロックが供給される別のゲーティッドクロックバッファ及びレジスタとを対応付けたゲーティッドクロックバッファ対応表を作成し,その対応表からネットワーク間のゲーティッドクロックバッファの対応表を生成する。そして,この対応表を基にして,第1のネットリストの動作率を第2のネットリストの動作率として抽出する。
上記の第1の側面において,好ましい態様によれば,前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,前記第1のネットリストの消費電力算出工程は,ハードウエア記述言語で記述された設計データを論理合成して前記第1のネットリストを生成する際に,前記イネーブル信号毎に当該イネーブル信号で制御される生成ゲーティッドクロックバッファを抽出して第1の生成ゲーティッドクロックバッファ表を生成する工程を有し,前記第2のネットリストの消費電力算出工程は,さらに,ハードウエア記述言語で記述された設計データを論理合成して前記第2のネットリストを生成する際に,前記イネーブル信号毎に当該イネーブル信号で制御される生成ゲーティッドクロックバッファを抽出して第2の生成ゲーティッドクロックバッファ表を生成する工程を有し,前記対応関係検出工程では,前記第1及び第2の生成ゲーティッドクロックバッファ表に含まれるゲーティッドクロックバッファを,前記イネーブル信号に基づいて対応付けることを特徴とする。
上記の好ましい態様によれば,論理合成ツールが自動生成したゲーティッドクロックバッファをイネーブル信号と対応付けて対応表を生成する。その対応表を参照して,第1,第2のネットリスト間のゲーティッドクロックバッファの対応を,イネーブル信号を基に探索する。
修正されたネットリストについて,再度論理シミュレーションを繰り返すことなくその動作率を求めることができるので,消費電力の見積工数を大幅に削減することができる。
以下,図面にしたがって本発明の実施の形態について説明する。但し,本発明の技術的範囲はこれらの実施の形態に限定されず,特許請求の範囲に記載された事項とその均等物まで及ぶものである。
図1は,論理合成におけるゲーティッドクロックバッファの自動生成を説明する図である。HDLで記述された設計データRTLは,レジスタ・トランスファ・レベル(RTL)で論理回路が記述されている。図1に示した設計データRTLは,実際の記述例ではないが,イネーブル信号ENが「1」の時に,クロックCKに応答して,入力信号INがレジスタであるフリップフロップFFにラッチされ,イネーブル信号ENが「0」の時はラッチされない論理回路を記述しているとする。したがって,フリップフロップFFのデータ入力端子DにはセレクタSLを介して入力信号INまたはフリップフロップFFの出力信号Qが入力され,セレクタSLの切り替えはイネーブル信号ENに基づいて行われる。
かかる設計データRTLを論理合成ツールにより論理合成すると,一般的には,図1中設計データRTLとして示した論理回路のネットリストが生成される。
ところが,近年において消費電力を削減するために,論理合成ツールは,イネーブル信号ENに応じてクロックCKをレジスタに供給するゲーティッドクロックバッファを自動的に挿入する機能を有している。つまり,図1のネットリストNLに示されるとおり,フリップフロップFFのクロック入力端子の前段にゲーティッドクロックバッファGBを挿入し,クロックCKがイネーブル信号ENに応じてフリップフロップFFに供給され論理回路のネットリストが生成される。
図1の設計データRTLの論理回路によれば,クロックCKは常時HレベルとLレベルに変化し,そのたびにフリップフロップFFがデータ入力Dのラッチ動作を実行する。したがって,イネーブル信号ENが不活性状態(0レベル)であっても,フリップフロップが動作するので,消費電力が大きくなる。それに対して,ゲーティッドクロックバッファGBが挿入されたネットリストNLの論理回路によれば,クロックCKがイネーブル信号ENに応じてフリップフロップFFに供給される。よって,イネーブル信号ENが不活性状態(0レベル)の間は,クロックCKのフリップフロップFFへの供給が停止され,フリップフロップの動作が停止するので,省電力化を図ることができる。このように,論理合成ツールによるゲーティッドクロックバッファの自動挿入は,省電力化に大きく寄与する。
かかるゲーティッドクロックバッファは,イネーブル信号に基づいてフリップフロップの動作を制御するので,セルの一種のレジスタであるフリップフロップの前段に追加されるのが一般的である。
ところが,上記のゲーティッドクロックバッファの自動挿入は,設計者がコントロールできないところで行われるので,どのような名前のゲーティッドクロックバッファがどのような位置に挿入されたかを設計者が逐一認識することはできない。しかも,自動挿入されるゲーティッドクロックバッファの名前は,論理合成ツール毎に異なるし,HDL設計データ毎にも異なる場合がある。
よって,設計データをデバックなどの目的で微修正して新たな設計データを生成した場合,それを論理合成したネットリストは,最初の設計データから論理合成したネットリストとは,ゲーティッドクロックバッファの構成が微妙に異なる。また,同じ設計データであっても,バージョンアップされた論理合成ツールや,異なるベンダーの論理合成ツールによってネットリストを生成した場合も同様である。
このように,修正されたネットリストについて消費電力の計算を行うためには,従来は,そのネットリストに対して消費電力計算ツールによって最初から電力計算を行うしか方法がない。そのため,大部分が同じネットリストであっても,その消費電力の見積のためには多くの工数が必要になり,LSI開発のコストアップを招くことになる。特に,論理シミュレーションは多大な工数を要する。
本実施の形態のLSIの消費電力の計算方法を説明する前に,HDL設計データとネットリストの例を説明する。そのあとで,この具体例を使って本実施の形態の消費電力の計算方法を説明する。
図2は,HDL設計データの例を示す図である。この設計データRTLは,イネーブルAが「1」の時に入力A_INがレジスタAにラッチされ出力A_OUTとして出力され,イネーブルBが「1」の時に入力B_INがレジスタBにラッチされ出力B_OUTとして出力されるモジュールMOである。設計データRTLは,モジュール宣言10と,入出力宣言12と,配線,レジスタA(8ビット),B(3ビット)及びゲーティッドクロックバッファGBUF0の宣言14と,順序回路の記述16,18とを有する。この設計データは,HDLで記述されており,上記宣言の内容については,記述される通りである。
例えば,順序回路の記述16によれば,内部クロックInternal_Clockの立ち上がりエッジに応答して,リセット信号Resetが「1」ならばレジスタAを「0」にし,イネーブル信号Enable_Aが「1」ならばレジスタAに入力A_INをラッチし,イネーブル信号Enable_Aが「0」ならばレジスタAはラッチ状態を維持する。順序回路の記述18もレジスタBについて同様の構成を記述している。このように,レジスタA,Bは,イネーブル信号を条件にしてクロック同期で所定の動作を行うように設計されている。
図3は,図2のHDL設計データRTLを論理合成して得られたネットリストの例を示す図である。論理合成ツールは,セルライブラリを参照して設計データRTLをネットリストNLに変換する。図3に示されたネットリストNL1は,モジュール20,入出力22,ゲーティッドクロックバッファ群24,D−FF群26,及び出力端子28の配線構造を有している。そして,このネットリストNL1には,設計データRTLで宣言したゲーティッドクロックバッファGBUF0に加えて,ゲーティッドクロックバッファG0,G1,G2が自動的に挿入されている。この挿入されたゲーティッドクロックバッファG0,G1は,イネーブル信号Enable_Aに基づいて入力クロックInternal_Clockを出力クロックn_0000,n_0001として出力する。また,ゲーティッドクロックバッファG2は,イネーブル信号Enalbe_Bに基づいて入力クロックInternal_Clockを出力クロックn_0002として出力する。
図4は,図3のネットリストに対する論理回路図である。図4には,データ入出力,データ配線は省略され,ゲーティッドクロックバッファGBとレジスタ(フリップフロップ)FFなどのセルと,クロック入力と,イネーブル入力と,クロック配線とが示されている。
ネットリストは,バッファやフリップフロップなどのセル間のデータ線及びクロック線による接続を定義する。図3のネットリストでは,クロック配線については,モジュールMOに入力されるグローバルクロックGlobal_Clockが,ゲーティッドクロックバッファGBUF_0に入力され,内部クロックInternal_Clockが出力され,それがゲーティッドクロックバッファG0,G1,G3を介して,レジスタA0〜A3,A4〜A7,B0〜B2に供給される。ゲート配線については,入力A_IN_0〜A_IN_7がレジスタA0〜A7のデータ入力端子に接続され,そのデータ出力端子が出力A_OUT_0〜A_OUT_7に接続され,入力B_IN_0〜B_IN_2がレジスタB0〜B2のデータ入力端子に接続され,そのデータ出力端子が出力B_OUT_0〜B_OUT_2に接続される。
さらに,図3のネットリストでは,イネーブル信号Gated_Module_MOがゲーティッドクロックバッファGBUF_0に供給され,イネーブル信号Enable_AがゲーティッドクロックバッファG0,G1に供給され,イネーブル信号Enable_BがゲーティッドクロックバッファG2に供給され,リセット信号ResetがレジスタA0〜A7,B0〜B2にそれぞれ供給される。
上記説明から,図3のネットリストNL1と図4の論理回路との対応が理解される。そして,図4の論理回路において,セルGBUF_0,A0〜A7,B0〜B2がHDL設計データRTLで記述されていたが,論理合成により生成されたネットリストNL1には,ゲーティッドクロックバッファG0,G1,G2が生成されたことが理解される。
図5は,別のネットリストに対する論理回路図である。図5は,図示しないネットリストNL2の論理回路を示している。この例では,図2の設計データRTLを,ゲーティッドクロックバッファのファンアウト数を3個に制限するというコマンドを有する設定ファイルと共に,論理合成ツールに与えた結果,得られたネットリストNL2の論理回路である。図4の場合と同様に,論理合成ツールは,省電力化のためにゲーティッドクロックバッファU0〜U3を自動挿入している。ただし,ファンアウト数が3個に制限されたため,イネーブル信号Enable_Aにより制御されるゲーティッドクロックバッファU0,U1,U2が,レジスタA0〜A2,A3〜A4,A5〜A7にそれぞれクロックを供給している。そして,図4のネットリストNL1と同様に,イネーブル信号Enable_Bにより制御されるバッファU3がレジスタB0〜B2にクロックを供給する。そして,それらの自動挿入されたバッファ名U0〜U3は,ネットリストNL1のバッファ名G0〜G2とは異なっている。
このように,同じ設計データであっても設定ファイルを変更して論理合成すると,異なる論理回路のネットリストが生成される。同様に,異なるベンダーの論理合成ツールで論理合成する場合も,同等の論理回路ではあるが異なるバッファ名のゲーティッドクロックバッファが挿入されて,異なる論理回路のネットリストが生成される。ただし,最初のネットリストと修正されたネットリストとは,大部分のセルは同じで概略的な構成は同じであり,最初のネットリストに対して計算した消費電力計算結果を,修正されたネットリストの消費電力計算結果に生かせれば,設計のコストダウンが可能である。
図6は,リタイミング処理を説明する図である。リタイミング処理もネットリストの修正を伴う。したがって,最初のネットリストの消費電力計算結果を利用するためには,リタイミング処理により変更されるデータについても考慮することが求められる。
リタイミング処理とは,レジスタ間の遅延時間制約を満たすように時間制約を満たさないレジスタを移動させる処理であり,ネットリストの段階で行われる。図6に示されるとおり,ネットリストNL10では,レジスタR0,R1,R2の間に組合せ回路CB1,CB2が存在するとする。そして,レジスタR0,R1間の組合せ回路CB1での遅延時間が14ns,レジスタR1,R2間の組合せ回路CB2での遅延時間が4nsとする。そして,レジスタ間の遅延時間の制約が12nsとすると,組合せ回路CB1の遅延時間はこの時間制約を満たしていない。
そこで,組合せ回路CB1の一部を右側に移動して,時間制約を満たすようにする処理が行われる。これがリタイミング処理である。この場合,ネットリストNL10のレジスタR1を削除し,組合せ回路CB1内に新たなレジスタを挿入する処理が行われる。そして,組合せ回路の構成上の理由などから,2つのレジスタR1_0とR1_1が追加される。このように,リタイミング処理により,2つのネットリストNL10,NL12間では,対応するレジスタの名前が変更され,数が増えている。かかる修正が行われたネットリストNL12についても,消費電力の計算が必要になる。
このように,修正されたネットリストでは,レジスタ名が変更されたり数が変化したりすることがあり,消費電力計算工程では,元のネットリストとの対応を取ることが必要になる。
以上のような論理合成により生成されるネットリストの事情を考慮して,以下に本実施の形態におけるLSIの消費電力の算出方法について説明する。
[消費電力算出方法]
図7は,本実施の形態におけるLSIの消費電力算出方法のフローチャート図である。HDLで記述された設計データRTL#1は,設定ファイル100で設定された論理合成条件に基づいて論理合成されて,ネットリストNL1に変換される(120)。この論理合成は,論理合成ツール(バージョンV1)により行われ,図3,4,5で説明したとおり,イネーブル信号を動作条件とするセルに対しては,イネーブル信号によってクロック信号をセルに入力するゲーティッドクロックバッファが自動的に生成される。
さらに,論理合成120の後に,クロック合成及びレイアウト工程121により,クロック配線の途中にクロックバッファが適宜挿入され,クロック信号の伝搬遅延の改善が行われることもある。このクロックバッファは,単なるバッファでありイネーブル信号により制御されるものではない。よって,かかるクロックバッファは,その上流のゲーティッドクロックバッファの動作率と同じ動作率で動作する。
論理合成により生成された第1のネットリストNL1について,論理シミュレーションが行われる(122)。論理シミュレーションでは,所定の入力パターンに対してネットリストNL1で定義されたLSIをクロックに同期して動作させ,所望の期間におけるデータ線やクロック線やセルの入出力の波形データSW1が抽出される。この論理シミュレーション工程は,ネットリストの規模が大きくなるほど工数が多大になる。
波形データSW1から,前記シミュレーション期間における動作率データOKが算出される(123)。例えば,クロック信号の波形データが常時H,Lレベルへの変化を繰り返していれば動作率は100%であり,一部の期間のみ変化する場合はそれに対応する割合になる。これにより,ネットリストNL1内の複数のゲーティッドクロックバッファの動作率が求められる。
次に,電力算出工程124で,このゲーティッドクロックバッファの動作率データに基づき,ネットリストNL1とセルライブラリ130とを参照して,電力見積値PE1が算出される。前述のとおり,ダイナミック消費電力Pdは,Pd=CV2fα,(配線容量C,印加電圧V,動作周波数(クロック周波数)f,動作率α)で算出される。この配線容量Cはセルライブラリ130から抽出され,印加電圧Vとクロック周波数fは,別途入力される。
図4に示したネットリストNL1によれば,ゲーティッドクロックバッファGBUF_0の動作率に基づいて,クロック線Internal_Clockのダイナミック消費電力が,ゲーティッドクロックバッファ G0, G1, G2の動作率に基づいて,クロック線n_0000〜n_0002と,レジスタA0〜A7,B0〜B2のダイナミック消費電力がそれぞれ算出される。このように,あるゲーティッドクロックバッファに属する信号線やレジスタは,ネットリストNL1をトレースすることで抽出可能である。
以上の処理フローにより,ネットリストNL1の消費電力PE1が算出される。次に,このネットリストNL1に微修正を加えたネットリストNL2の消費電力の算出方法について説明する。図7には,第2のネットリストNL2が生成されるケースが示されている。例えば,HDL設計データRTL#1がデバックされて(110),微修正されたHDL設計データRTL#2が生成され,それが同じ論理合成ツール(バージョンV1)で論理合成されて第2のネットリストNL2が生成される。第2に,HDL設計データRTL#1またはRTL#2が,異なる論理合成ツール(バージョンV2)で論理合成されて第2のネットリストNL2が生成される。第3に,ネットリストNL1に対してリタイミング処理を行って(112),第2のネットリストNL2が生成される。上記以外にも種々の状況下で,第1のネットリストNL1と入出力端子やセルは共通であるが,クロックツリー構造やそれを構成するクロックバッファの名前が異なるなどの微修正が行われた第2のネットリストが生成される。
本実施の形態では,多大な工数を要する論理シミュレーション工程を繰り返すことなく,微修正されたネットリストNL2の消費電力計算が行われる。そのために,動作率データ生成処理127にて,第1,第2のネットリストNL1,NL2と,第1のネットリストを論理シミュレーションして求めた動作率データOR1とから,第2のネットリストの動作率データOR2が生成される(127)。この処理127については後で詳述する。つまり,第1のネットリストを論理シミュレーションして求めた動作率データOR1が,第2のネットリストの電力計算でも利用される。そして,求められた第2のネットリストNL2の動作率データOR2に基づいて,前述と同様の電力計算処理が行われて電力見積値PE2が算出される(128)。
図8は,本実施の形態における消費電力算出装置の構成図である。この装置は,中央処理ユニットCPUが,プログラムである消費電力算出ツールを実行することにより消費電力の算出を行う。図7で説明したとおり,消費電力算出ツール10は,第1のネットリストの動作率データOR1から,第1,第2のネットリストNL1,NL2と,セルライブラリ130を参照して,第2のネットリストの動作率データOR2を生成する。この動作率データOR2を生成するために,第1,第2のネットリストNL1,2のゲーティッドクロックバッファ対応表12,14と,ネットリスト間対応表16とが生成される。さらに,消費電力算出ツール10は,この動作率データOR2に基づき,第2のネットリストNL2とセルライブラリ130を参照して,消費電力PE2を算出する。
[動作率データ生成処理]
図9〜図14は,本実施の形態における動作率データ生成処理127のフローチャート図である。そして,図2〜5の2つのネットリストNL1,NL2を具体例として説明するが,これらのフローチャート図の説明に際して,この具体例に適用したときに生成される各種のデータや表を示した図15〜図23を参照する。
図9は,ネットリストNL2の動作率データを生成するフローチャート図である。動作率データOR2の生成処理は,第1,第2のネットリストNL1,NL2からネットリスト間のセルの対応表を作成する処理200と,第1のネットリストNL1の動作率データOR1と上記対応表とから動作率データOR2を作成する処理201とからなる。また,対応表の作成処理200において,リタイミング処理などでレジスタがリネームされた場合に対応するために,リネームリストRNA1,RNA2が参照される。なお,電力計算に必要な動作率データは,ゲーティッドクロックバッファの動作率であるので,ネットリスト間の対応表もゲーティッドクロックバッファの対応表である。
図15は,第1のネットリストNL1の動作率データOR1を示す図である。図4に示したとおり第1のネットリストNL1はゲーティッドクロックバッファGBUF_0,G0,G1,G2を有し,第1のネットリストへの論理シミュレーションによりそれらに対する動作率が求められている。
図16は,セルライブラリ130のセルデータを示す図である。図16のセルデータには,一例として,セルタイプがフリップフロップセルとゲーティッドクロックバッファとについて,セル名と,クロック入力ポート名と,クロック出力ポート名とが含まれている。
図17は,リネームリストRNA1,2の例を示す図である。リタイミング処理などにより,ネットリスト内のレジスタ名が異なるレジスタ名にリネームされる。その場合に,リネームリストRNA1,2が生成される。リネームリストRNA1は第1のネットリストNL1について,リネームリストRNA2は第2のネットリストNL2についての例である。ただし,図4,5に示したネットリストでは,かかるリネームは行われていない。
[対応表の作成]
図10は,図9の対応表作成処理200のフローチャート図である。まず,ライブラリのセルデータ130(図16)を参照して,ネットリストをパーズ処理してリレーショナルネットリスト202を生成する(210)。このパーズ処理により生成されたリレーショナルネットリストは,後述する対応表を生成するために生成される中間ファイルである。
図18は,第1のネットリストNL1に対応するリレーショナルネットリストを示す図である。このリレーショナルネットリストは,ゲーティッドクロックバッファGBUF_0,G0,G1,G2と,レジスタであるフリップフロップA0〜A7,B0〜B2と,それらを結ぶクロック配線とを含む。このバッファとレジスタは,セルの一種である。そして,ゲーティッドリストポインタで,ゲーティッドクロックバッファが関連付けられている。各バッファの「next」フィールドに次のバッファのポインタが格納されている。同様に,FFリストポインタで,フリップフロップが関連付けられている。同様に各フリップフロップの「next」フィールドに次のフリップフロップのポインタが格納されている。また,「drive」フィールドは出力クロックが駆動する後段のバッファとレジスタのポインタが格納されている。複数の後段セルを駆動する場合はリストL1,L2,L3,L4にポインタが格納される。そして,ゲーティッドクロックバッファには,フィールド「Clock_In」と「Clock_Out」に,実際のクロック配線名が格納されている。
図10に戻り,ポーズ処理により,上記のようなリレーショナルネットリスト202が,第1,第2のネットリストNL1,NL2それぞれについてメモリ空間上に作成される。そして,このリレーショナルネットリストを探索して,ゲーティッドクロックバッファ対応表12,14が作成される(211)。
図19は,ゲーティッドクロックバッファ対応表の例を示す図である。第1のネットリストNL1のゲーティッドクロックバッファ対応表12は,図4のネットリストNL1を参照すれば,容易に理解できる。つまり,ゲーティッドクロックバッファG0,G1,G2は,それぞれレジスタA0〜A3,A4〜A7,B0〜B2にクロックを供給する。また,ゲーティッドクロックバッファGBUF_0は,下層側のゲーティッドクロックバッファG0,G1,G2にクロックを供給する。したがって,対応表12には,その対応関係が示される。
同様に,第2のネットリストNL2のゲーティッドクロックバッファ対応表14も,図5のネットリストNL2を参照すれば,容易に理解できる。ゲーティッドクロックバッファU0,U1,U2,U3は,それぞれレジスタA0〜A2,A3〜A4,A5〜A7,B0〜B2にクロックを供給する。また,ゲーティッドクロックバッファGBUF_0は,下層側のゲーティッドクロックバッファU0,U1,U2,U3にクロックを供給する。したがって,対応表12には,その対応関係が示される。
図11は,ゲーティッドクロックバッファ対応表作成のフローチャート図である。ここでは,図18のリレーショナルネットリスト202のゲーティッドクロックバッファをトレースしながら,各ゲーティッドクロックバッファがクロックを供給する先のセル名とタイプを参照し,タイプ別にセル名を分類して,図19のゲーティッドクロックバッファ対応表12,14を作成する。
具体的には,セルのポインタにゲーティッドリストポインタの値をセットし(220),セルのポインタの参照先が存在しているかをチェックする(221)。最初の参照先は,ゲーティッドクロックバッファGBUF_0である。そこで,その参照先のゲーティッドクロックバッファの名前を対応表12,14に書く(222)。そして,セルへのポインタ2に「drive」フィールドのリストL1の先頭のポインタ値を格納する(223)。このポインタ値の参照先が存在しているかをチェックし(224),参照先の名前とタイプをチェックし(225),タイプがゲーティッド「GATED」の場合は(226),その名前を対応表の接続ゲーティッドクロックバッファの欄に書く(227)。タイプがフリップフロップ「FF」などのレジスタの場合は,その名前を対応表の接続レジスタの欄に書く(228)。上記の処理224〜228を,セルへのポインタ2に格納したリストL1,L2,L3,L4の全てのポインタについて繰り返す。
この結果,図9の対応表12に示されるとおり,ゲーティッドクロックバッファGBUF_0に対応して,接続ゲーティッドクロックバッファの名前G0,G1,G2が書き込まれる。
次に,セルへのポインタ2の参照先が存在しないと(224のNO),セルへのポインタに「next」フィールドの値をセットする(230)。つまり,図18の例では,ゲーティッドクロックバッファG0のセルが選択される。そして,このセルG0の「drive」フィールドのリストL2の参照先のセルの名前とタイプをチェックし,同様に対応表に書き込む。同様のことが,ゲーティッドクロックバッファG1,G2についても繰り返される。そして,ゲーティッドクロックバッファG2では,次のセルへのポインタの参照先が存在しないので(221のNO),処理を終了する。
以上の通り,全てのゲーティッドクロックバッファをトレースしながら,それらがクロックを供給しているセルをゲーティッドクロックバッファかレジスタかに分類して,図19のゲーティッドクロックバッファ対応表12を作成する。ネットリストNL2についても同様にして対応表14を作成する。
図12は,ゲーティッドクロックバッファ対応表作成の第2のフローチャート図である。このフローチャートは,リタイミング処理などによりレジスタ名が変更されている場合に必要な処理である。つまり,ゲーティッドクロックバッファ対応表12に書き込まれたレジスタ名が,リネームリストRNA1に存在する場合は,そのレジスタ名は元のレジスタ名に還元,つまり戻される(240)。つまり,図17のリネームリストRNA1の場合は,リネームされたレジスタ名R1_0,R1_1が,元のレジスタ名R1に戻される。ゲーティッドクロックバッファ対応表14についても同様に,リネームリストRNA2を参照して,変更されたレジスタ名が元のレジスタ名に戻される(241)。その結果,それぞれ元のレジスタ名を有する対応表12R,14Rが生成される。ネットリスト間でゲーティッドクロックバッファの対応を検出するために,レジスタ名を手がかりに探索するので,対応表12R,14Rでは共通の元のレジスタ名にしておく必要があるからである。
以上のように,ネットリストNL1,NL2をそれぞれ構文解析することで,図19のゲーティッドクロックバッファ対応表12,14を作成することができる。リネームレジスタが存在する場合は対応表12R,14Rが作成される。そして,この対応表12,14を利用して,ネットリストNL1,NL2のゲーティッドクロックバッファの対応を示すネットリスト間対応表16が作成される。この対応の探索は,クロックツリーの下流側から上流側にさかのぼりながら行われる。
図13は,ネットリスト間対応表作成処理のフローチャート図である。このフローチャートの説明をするまえに,ゲーティッドクロックバッファの対応の探索方法について説明する。
図20は,ネットリスト間対応表の探索アルゴリズムを説明する図である。この例では,ネットリストNLa,NLb間のゲーティッドクロックバッファの対応を探索する。このネットリストは,図4,5と同様にクロックツリーのみを示している。
論理合成ツールは,省電力化のためにレジスタの前段にゲーティッドクロックバッファを自動挿入する。したがって,論理合成毎に自動挿入されるゲーティッドクロックバッファの構成と名前が変更されることが予想される。しかしながら,HDL設計データでは,入出力とレジスタは設計者により定義されそれらは論理合成されても変更させることはない。そこで,ゲーティッドクロックバッファの対応の探索は,クロックの最下流のレジスタFF1〜FF6を起点にして,同じレジスタにクロックを供給するゲーティッドクロックバッファを探索して,それらの対応を検出し,さらに,対応関係が検出されたゲーティッドクロックバッファを起点にして,同じゲーティッドクロックバッファにクロックを供給するバッファを探索する。そして,より上流側のゲーティッドクロックバッファに移動しながら探索を繰り返す。
図20の例では,対応CR0は同じレジスタ名であるので容易に検出でき,さらに対応CR0に基づいて対応CR1を検出し,その対応CR1に基づいて対応CR2,CR3を検出する。このようにすることで,ゲーティッドクロックバッファの数や名前が異なっても対応関係を見つけることができる。
図21は,ネットリスト間対応表の探索アルゴリズムを説明する別の図である。この例では,ネットリストNLx,NLy間の対応探索を示している。ネットリストNLxでは,レジスタFFの直前にゲーティッドクロックバッファGB2が追加されている。そして,このネットリストNLxのゲーティッドクロックバッファGB1,GB2間にクロックの遅延改善のためにバッファBUFが追加されて,ネットリストNLyが生成されている。この場合,図11,図13で説明したとおり,ネットリストを解析してゲーティッドクロックバッファとそれに接続されるレジスタ及びゲーティッドクロックバッファの対応表12,14を生成しているので,挿入されたバッファBUFは,ネットリスト間対応の探索対象からはずれされている。したがって,図21に示す矢印のように両者の対応関係を検出することができる。
図13は,ネットリスト間対応表作成処理のフローチャート図である。この作成処理は,上記の探索アルゴリズムに基づいて,図19のゲーティッドクロックバッファ対応表12,14から,ネットリスト間対応表を作成する。まず,第2のネットリストNL2の対応表14R内のゲーティッドクロックバッファ名を列挙した対応表16を作成する(250)。この対応表16の一例が図22に示されている。つまり対応表16の左コラムの「名前」には,第2のネットリストNL2のゲーティッドクロックバッファ名が並べられ,右コラムの「対応名」には,第1のネットリストNL1のゲーティッドクロックバッファ名が並べられる。上記工程250の段階では,右コラムは全て空欄である。
次に,対応表14Rの先頭のエントリを取り出し,そのエントリのゲーティッドクロックバッファに対応する接続レジスタ名を取り出す(251,252,253)。図19の対応表14Rを例にすると,最初のエントリのゲーティッドクロックバッファU0のエントリが取り出され,それに対応する接続レジスタ名A0が取り出される。ゲーティッドクロックバッファは,必ずしも図19の例のように並んでいるわけではないので,エントリには接続レジスタ名が存在しないものもある。そして,レジスタ名の要素が見つかった場合は(254のYes),レジスタにクロックを供給するゲーティッドクロックバッファのエントリであることを意味する。そこで,ネットリストNL1の対応表12Rで,同じレジスタ名を持つエントリを探す(256)。図19に破線矢印で示すとおり,接続レジスタA0をもつエントリのゲーティッドクロックバッファG0が取り出され(257),それが対応表16の右コラム「対応名」に書き込まれる(258)。そして,対応表14Rの次のエントリが取り出されて,上記の処理が繰り返される。
以上のように,工程251〜259は,接続レジスタを起点にしてそれにクロックを供給するゲーティッドクロックバッファの対応を探索する処理である。
次に,対応表14Rの接続レジスタ名を有するエントリの処理が完了したあと,再度対応表14Rの最初のエントリから探索を行う(260)。そして,接続ゲーティッドクロックバッファ名が存在するエントリ(261のYes),つまりゲーティッドクロックバッファにクロックを供給するゲーティッドクロックバッファついて,接続ゲーティッドクロックバッファ名を取り出す(266)。図19の例では,ゲーティッドクロックバッファGBUF_0のエントリが取り出され,その接続ゲーティッドクロックバッファ名U0が取り出される。そして,対応表16から,取り出したゲーティッドクロックバッファ名U0を左コラム「名前」の欄にもつエントリを見つける(267)。そして,そのエントリの右コラム「対応名」に書き込まれている場合に(268のYes),対応表12Rにおいて,その対応名G0を接続ゲーティッドクロックバッファ名に有するエントリを見つけて(269),そのエントリのゲーティッドクロックバッファ名GBUF_0を,現在処理中の対応表16のエントリの右コラム「対応名」に書き込む(270)。
さらに,工程268で対応表16の右コラム「対応名」が空欄の場合は,そのエントリをスキップして,対応表14Rの次のエントリを取り出して,工程261,266〜270を繰り返す。つまり,図20で説明したとおり,対応関係CR1が検出されて対応表16に書き込まれたゲーティッドクロックバッファに基づいて,その上流のゲーティッドクロックバッファの対応CR2を探索する。図20を例に説明すれば,ゲーティッドクロックバッファGBUF_0の対応を探索しようとしても,対応関係CR2が検出されていなければ,その探索は不可能である。したがって,対応関係が検出されているバッファより1つ上流のゲーティッドクロックバッファの対応から探索が行われる。ただし,図4,5の例ではバッファの階層が2階層しかないので,処理268でNoになることはない。
上記の探索が繰り返されることで,図20の対応関係がCR1,CR2,CR3の順に検出される。そして,対応表16の右コラム「対応名」の空欄がなくなるまで処理が繰り返されると(264),図13の処理が終了する。その結果,図22に示すネットリスト間対応表16が生成される。
[動作率データの作成]
図14は,動作率データ作成処理201のフローチャート図である。この第2のネットリストNL2の動作率データOR2(図23)は,第1のネットリストNL1の動作率データOR1(図15)と,ネットリスト間対応表16(図22)とから生成される。つまり,ネットリスト間対応表16で対応関係にあるゲーティッドクロックバッファは,名称は異なるが,同じイネーブル信号により制御されるバッファであり,同じ動作率になる。したがって,ネットリスト間対応表16で対応関係にあるバッファ間で,動作率データを共有すればよいことになる。
図15,22,23から明らかなとおり,バッファGBUF_0は動作率0.9,バッファU0,U1はバッファG0と同じ動作率0.9,バッファU2はバッファG1と同じ動作率0.28,バッファU3はバッファG2と同じ動作率0.11になる。このように,ゲーティッドクロックバッファの対応関係を見つければ,第1のネットリストNL1で論理シミュレーションを経て求めた動作率を,第2のネットリストNL2の動作率として利用することができる。
図14のフローチャートについて説明すると,動作率データOR2の表を生成し,その名前の欄にネットリスト間対応表16の名前を全て書き込む(280)。図23の例では,左コラム「名前」にバッファ名GBUF_0,U0,U1,U2,U3が書き込まれる。次に,動作率表OR2の先頭エントリGBUF_0を取り出し(281),対応表16からそれに対する左コラムの「対応名」GBUF_0を取得する(263)。そして,その対応名GBUF_0に対する動作率0.9を,動作率データOR1から検出し(284),その動作率0.9を動作率表OR2の動作率の欄に書き込む(285)。そして,動作率表OR2の次のエントリを取り出して,上記の処理283〜286を繰り返す。そして,全てのエントリが処理されると(282のYes),処理が完了する。
以上の通り,上記の実施の形態では,第1,第2のネットリストを解析して,ゲーティッドクロックバッファとレジスタの対応関係を検出し,それらからネットリスト間のゲーティッドクロックバッファの対応表16を取得する。そして,この対応表16を頼りにして,第1のネットリストNL1の動作率データOR1から第2のネットリストNL2の動作率データOR2を取得する。これにより,第2のネットリストNL2について論理シミュレーションを繰り返す必要はない。
[第2の実施の形態]
第2の実施の形態では,論理合成ツールがイネーブル信号に対応して自動生成したゲーティッドクロックバッファの表を生成することを前提にして,各ネットリストNL1,NL2を論理合成するときに生成された生成ゲーティッドクロックバッファ表を参照し,同じイネーブル信号名を手がかりにして,ゲーティッドクロックバッファの対応関係を探索する。したがって,論理合成ツールに生成したゲーティッドクロックバッファの表を生成する機能が必要になる。
図25は,生成ゲーティッドクロックバッファ表を示す図である。この表GGB1,GGB2では,図4,5のネットリストNL1,NL2それぞれについて自動生成されたゲーティッドクロックバッファが,イネーブル信号名と対応付けられている。ネットリストNL1の表GGB1では,イネーブル信号Enable_Aに対して生成されたゲーティッドクロックバッファ名G0,G1が,イネーブル信号Enable_Bに対して生成されたゲーティッドクロックバッファ名G2がそれぞれ対応付けられている。同様にネットリストNL1の表GGB2では,イネーブル信号Enable_Aに対して生成されたゲーティッドクロックバッファ名U0,U1,U2が,イネーブル信号Enable_Bに対して生成されたゲーティッドクロックバッファ名G3がそれぞれ対応付けられている。
図24は,第2の実施の形態におけるLSIの消費電力算出方法のフローチャート図である。図24において,ネットリストNL1については,論理シミュレーション122と,動作率算出処理123と,電力算出処理124が先に実行される。そして,ネットリストNL2については,生成ゲーティッドクロックバッファ表GGB1,GGB2と,動作率データOR1とから,ネットリストNL2のゲーティッドクロックバッファの動作率データOR2が生成され(127),その動作率データから電力が算出される(128)。
この動作率データ生成処理127では,生成ゲーティッドクロックバッファ表GGB1,GGB2のイネーブル信号を元にして,図26のネットリスト間対応表18が生成される。このネットリスト間対応表18は,図22の対応表16と異なり自動生成されなかったゲーティッドクロックバッファGBUF_0は含まれていない。そして,このネットリスト間対応表18にしたがって,動作率データOR1から対応する動作率が動作率データOR2に取り込まれる。そして,自動生成されなかったゲーティッドクロックバッファGBUF_0については,同じ名前が維持されているので,動作率データOR1からそのバッファの動作率を抽出し,動作率データOR2に取り込まれる。
第2の実施の形態の原理は,同じイネーブル信号で制御されるゲーティッドクロックバッファは同じ動作率になることにある。したがって,論理合成ツールが自動生成したゲーティッドクロックバッファをイネーブル信号に対応付けた表を作成することができれば,それを根拠にして,修正ネットリストの動作率データを修正前ネットリストの動作率データから抽出することができる。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)LSI内の複数セルの接続を定義したネットリストから消費電力を算出するLSIの消費電力算出方法において,
第1のネットリストについて論理シミュレーションを実行して前記セルの動作率を求め,当該動作率と前記セルの消費電力属性パラメータとから前記第1のネットリストの消費電力を算出する工程と,
前記第1のネットリストの少なくとも一部のセルを有する第2のネットリストの消費電力を算出する工程とを有し,
前記第2のネットリストの消費電力算出工程は,
前記第1及び第2のネットリスト内のセルの対応関係を検出する対応関係検出工程と,当該セルの対応関係に基づいて前記第1のネットリストの動作率から第2のネットリストの各セルの動作率を求める動作率生成工程と,当該第2のネットリストの各セルの動作率と当該セルの消費電力属性パラメータとから消費電力を算出する第2の算出工程とを有することを特徴とするLSIの消費電力算出方法。
(付記2)付記1において,
前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,
前記対応関係検出工程では,前記第1,第2のネットリスト内で同じ名前のレジスタに接続される下層ゲーティッドクロックバッファを検出し,前記第1,第2のネットリスト内で当該検出された下層ゲーティッドクロックバッファに接続される上層ゲーティッドクロックバッファを検出し,当該上層ゲーティッドクロックバッファの検出を繰り返し行い,各層で検出されたゲーティッドクロックバッファの対応関係を抽出することを特徴とするLSIの消費電力算出方法。
(付記3)付記2において,
前記対応関係検出工程では,前記第1,第2のネットリストから,前記ゲーティッドクロックバッファとレジスタとの間及びゲーティッドクロックバッファ間を関連付けた第1,第2のリレーショナルネットリストをそれぞれ生成し,当該第1及び第2のリレーショナルネットリストを探索して,前記ゲーティッドクロックバッファの対応関係を抽出することを特徴とするLSIの消費電力算出方法。
(付記4)付記2において,
前記第2の算出工程では,前記ゲーティッドクロックバッファの動作率と,当該ゲーティッドクロックバッファの出力クロックが供給されるセルの前記消費電力属性パラメータと,クロック周波数及び電源電圧とにしたがって,前記第2のネットリストの消費電力を求めることを特徴とするLSIの消費電力算出方法。
(付記5)付記1において,
前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,
前記対応関係検出工程では,前記第1,第2のネットリストの前記ゲーティッドクロックバッファについて,同じイネーブル信号で制御されるゲーティッドクロックバッファを対応付け,
前記動作率生成工程では,当該ゲーティッドクロックバッファの対応関係に基づいて前記第1のネットリストの動作率から第2のネットリストの各ゲーティッドクロックバッファの動作率を求めることを特徴とするLSIの消費電力算出方法。
(付記6)付記5において,
前記第2の算出工程では,前記ゲーティッドクロックバッファの動作率と,当該ゲーティッドクロックバッファの出力クロックが供給されるセルの前記消費電力属性パラメータと,クロック周波数及び電源電圧とにしたがって,前記第2のネットリストの消費電力を求めることを特徴とするLSIの消費電力算出方法。
(付記7)付記1において,
前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,
前記第1のネットリストの消費電力算出工程は,ハードウエア記述言語で記述された設計データを論理合成して前記第1のネットリストを生成する際に,前記イネーブル信号毎に当該イネーブル信号で制御される生成ゲーティッドクロックバッファを抽出して第1の生成ゲーティッドクロックバッファ表を生成する工程を有し,
前記第2のネットリストの消費電力算出工程は,さらに,ハードウエア記述言語で記述された設計データを論理合成して前記第2のネットリストを生成する際に,前記イネーブル信号毎に当該イネーブル信号で制御される生成ゲーティッドクロックバッファを抽出して第2の生成ゲーティッドクロックバッファ表を生成する工程を有し,
前記対応関係検出工程では,前記第1及び第2の生成ゲーティッドクロックバッファ表に含まれるゲーティッドクロックバッファを,前記イネーブル信号に基づいて対応付けることを特徴とするLSIの消費電力算出方法。
(付記8)付記7において,
前記対応関係検出工程では,前記第1,第2のネットリストにおいて,同じイネーブル信号に属する生成ゲーティッドクロックバッファの対応が検出されることを特徴とするLSIの消費電力算出方法。
(付記9)付記7において,
前記第2の算出工程では,前記ゲーティッドクロックバッファの動作率と,当該ゲーティッドクロックバッファの出力クロックが供給されるセルの前記消費電力属性パラメータと,クロック周波数及び電源電圧とにしたがって,前記第2のネットリストの消費電力を求めることを特徴とするLSIの消費電力算出方法。
(付記10)LSI内の複数セルの接続を定義したネットリストから消費電力を算出するLSIの消費電力算出プログラムにおいて,
第1のネットリストについて論理シミュレーションを実行して前記各セルの動作率を求め,当該動作率と前記セルの消費電力属性パラメータとから前記第1のネットリストの消費電力を算出する工程と,
前記第1のネットリストの少なくとも一部のセルを有する第2のネットリストの消費電力を算出する工程とを,コンピュータに実行させ,
前記第2のネットリストの消費電力算出工程は,
前記第1及び第2のネットリスト内のセルの対応関係を検出する対応関係検出工程と,当該セルの対応関係に基づいて前記第1のネットリストの動作率から第2のネットリストの各セルの動作率を求める動作率生成工程と,当該第2のネットリストの各セルの動作率と当該セルの消費電力属性パラメータとから消費電力を算出する第2の算出工程とを有することを特徴とするLSIの消費電力算出プログラム。
(付記11)付記10において,
前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,
前記対応関係検出工程では,前記第1,第2のネットリスト内で同じ名前のレジスタに接続される下層ゲーティッドクロックバッファを検出し,前記第1,第2のネットリスト内で当該検出された下層ゲーティッドクロックバッファに接続される上層ゲーティッドクロックバッファを検出し,当該上層ゲーティッドクロックバッファの検出を繰り返し行い,各層で検出されたゲーティッドクロックバッファの対応関係を抽出することを特徴とするLSIの消費電力算出プログラム。
(付記12)付記10において,
前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,
前記第1のネットリストの消費電力算出工程は,ハードウエア記述言語で記述された設計データを論理合成して前記第1のネットリストを生成する際に,前記イネーブル信号毎に当該イネーブル信号で制御される生成ゲーティッドクロックバッファを抽出して第1の生成ゲーティッドクロックバッファ表を生成する工程を有し,
前記第2のネットリストの消費電力算出工程は,さらに,ハードウエア記述言語で記述された設計データを論理合成して前記第2のネットリストを生成する際に,前記イネーブル信号毎に当該イネーブル信号で制御される生成ゲーティッドクロックバッファを抽出して第2の生成ゲーティッドクロックバッファ表を生成する工程を有し,
前記対応関係検出工程では,前記第1及び第2の生成ゲーティッドクロックバッファ表に含まれるゲーティッドクロックバッファを,前記イネーブル信号に基づいて対応付けることを特徴とするLSIの消費電力算出プログラム。
論理合成におけるゲーティッドクロックバッファの自動生成を説明する図である。 HDL設計データの例を示す図である。 図2のHDL設計データRTLを論理合成して得られたネットリストの例を示す図である。 図3のネットリストに対する論理回路図である。 別のネットリストに対する論理回路図である。 リタイミング処理を説明する図である。 本実施の形態におけるLSIの消費電力算出方法のフローチャート図である。 本実施の形態における消費電力算出装置の構成図である。 ネットリストNL2の動作率データを生成するフローチャート図である。 図9の対応表作成処理200のフローチャート図である。 ゲーティッドクロックバッファ対応表作成のフローチャート図である。 ゲーティッドクロックバッファ対応表作成の第2のフローチャート図である。 ネットリスト間対応表作成処理のフローチャート図である。 動作率データ作成処理のフローチャート図である。 第1のネットリストNL1の動作率データOR1を示す図である。 セルライブラリ130のセルデータを示す図である。 リネームリストRNA1,2の例を示す図である。 第1のネットリストNL1に対応するリレーショナルネットリストを示す図である。 ゲーティッドクロックバッファ対応表の例を示す図である。 ネットリスト間対応表の探索アルゴリズムを説明する図である。 ネットリスト間対応表の探索アルゴリズムを説明する別の図である。 ネットリスト間対応表を示す図である。 ネットリストNL2の動作率データOR2を示す図である。 第2の実施の形態におけるLSIの消費電力算出方法のフローチャート図である。 生成ゲーティッドクロックバッファ表を示す図である。 ネットリスト間対応表を示す図である。
符号の説明
RTL#1,#2:HDL設計データ
NL1:第1のネットリスト NL2:第2のネットリスト
122:論理シミュレーション OR1,OR2:動作率データ
127:動作率データ生成処理 128:電力算出処理

Claims (10)

  1. LSI内の複数セルの接続を定義したネットリストから消費電力を算出するLSIの消費電力算出方法において,
    第1のネットリストについて論理シミュレーションを実行して前記セルの動作率を求め,当該動作率と前記セルの消費電力属性パラメータとから前記第1のネットリストの消費電力を算出する工程と,
    前記第1のネットリストの少なくとも一部のセルを有する第2のネットリストの消費電力を算出する工程とを有し,
    前記第2のネットリストの消費電力算出工程は,
    前記第1及び第2のネットリスト内のセルの対応関係を検出する対応関係検出工程と,当該セルの対応関係に基づいて前記第1のネットリストの動作率から第2のネットリストの各セルの動作率を求める動作率生成工程と,当該第2のネットリストの各セルの動作率と当該セルの消費電力属性パラメータとから消費電力を算出する第2の算出工程とを有することを特徴とするLSIの消費電力算出方法。
  2. 請求項1において,
    前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,
    前記対応関係検出工程では,前記第1,第2のネットリスト内で同じ名前のレジスタに接続される下層ゲーティッドクロックバッファを検出し,前記第1,第2のネットリスト内で当該検出された下層ゲーティッドクロックバッファに接続される上層ゲーティッドクロックバッファを検出し,当該上層ゲーティッドクロックバッファの検出を繰り返し行い,各層で検出されたゲーティッドクロックバッファの対応関係を抽出することを特徴とするLSIの消費電力算出方法。
  3. 請求項2において,
    前記第2の算出工程では,前記ゲーティッドクロックバッファの動作率と,当該ゲーティッドクロックバッファの出力クロックが供給されるセルの前記消費電力属性パラメータと,クロック周波数及び電源電圧とにしたがって,前記第2のネットリストの消費電力を求めることを特徴とするLSIの消費電力算出方法。
  4. 請求項1において,
    前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,
    前記対応関係検出工程では,前記第1,第2のネットリストの前記ゲーティッドクロックバッファについて,同じイネーブル信号で制御されるゲーティッドクロックバッファを対応付け,
    前記動作率生成工程では,当該ゲーティッドクロックバッファの対応関係に基づいて前記第1のネットリストの動作率から第2のネットリストの各ゲーティッドクロックバッファの動作率を求めることを特徴とするLSIの消費電力算出方法。
  5. 請求項4において,
    前記第2の算出工程では,前記ゲーティッドクロックバッファの動作率と,当該ゲーティッドクロックバッファの出力クロックが供給されるセルの前記消費電力属性パラメータと,クロック周波数及び電源電圧とにしたがって,前記第2のネットリストの消費電力を求めることを特徴とするLSIの消費電力算出方法。
  6. 請求項1において,
    前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,
    前記第1のネットリストの消費電力算出工程は,ハードウエア記述言語で記述された設計データを論理合成して前記第1のネットリストを生成する際に,前記イネーブル信号毎に当該イネーブル信号で制御される生成ゲーティッドクロックバッファを抽出して第1の生成ゲーティッドクロックバッファ表を生成する工程を有し,
    前記第2のネットリストの消費電力算出工程は,さらに,ハードウエア記述言語で記述された設計データを論理合成して前記第2のネットリストを生成する際に,前記イネーブル信号毎に当該イネーブル信号で制御される生成ゲーティッドクロックバッファを抽出して第2の生成ゲーティッドクロックバッファ表を生成する工程を有し,
    前記対応関係検出工程では,前記第1及び第2の生成ゲーティッドクロックバッファ表に含まれるゲーティッドクロックバッファを,前記イネーブル信号に基づいて対応付けることを特徴とするLSIの消費電力算出方法。
  7. 請求項6において,
    前記第2の算出工程では,前記ゲーティッドクロックバッファの動作率と,当該ゲーティッドクロックバッファの出力クロックが供給されるセルの前記消費電力属性パラメータと,クロック周波数及び電源電圧とにしたがって,前記第2のネットリストの消費電力を求めることを特徴とするLSIの消費電力算出方法。
  8. LSI内の複数セルの接続を定義したネットリストから消費電力を算出するLSIの消費電力算出プログラムにおいて,
    第1のネットリストについて論理シミュレーションを実行して前記各セルの動作率を求め,当該動作率と前記セルの消費電力属性パラメータとから前記第1のネットリストの消費電力を算出する工程と,
    前記第1のネットリストの少なくとも一部のセルを有する第2のネットリストの消費電力を算出する工程とを,コンピュータに実行させ,
    前記第2のネットリストの消費電力算出工程は,
    前記第1及び第2のネットリスト内のセルの対応関係を検出する対応関係検出工程と,当該セルの対応関係に基づいて前記第1のネットリストの動作率から第2のネットリストの各セルの動作率を求める動作率生成工程と,当該第2のネットリストの各セルの動作率と当該セルの消費電力属性パラメータとから消費電力を算出する第2の算出工程とを有することを特徴とするLSIの消費電力算出プログラム。
  9. 請求項8において,
    前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,
    前記対応関係検出工程では,前記第1,第2のネットリスト内で同じ名前のレジスタに接続される下層ゲーティッドクロックバッファを検出し,前記第1,第2のネットリスト内で当該検出された下層ゲーティッドクロックバッファに接続される上層ゲーティッドクロックバッファを検出し,当該上層ゲーティッドクロックバッファの検出を繰り返し行い,各層で検出されたゲーティッドクロックバッファの対応関係を抽出することを特徴とするLSIの消費電力算出プログラム。
  10. 請求項8において,
    前記第1,第2のネットリストには,クロックツリーを構成しイネーブル信号に応答してクロック信号を伝搬する複数のゲーティッドクロックバッファと,当該クロックツリーのクロック信号が供給されるレジスタとが,前記セルとして含まれ,
    前記第1のネットリストの消費電力算出工程は,ハードウエア記述言語で記述された設計データを論理合成して前記第1のネットリストを生成する際に,前記イネーブル信号毎に当該イネーブル信号で制御される生成ゲーティッドクロックバッファを抽出して第1の生成ゲーティッドクロックバッファ表を生成する工程を有し,
    前記第2のネットリストの消費電力算出工程は,さらに,ハードウエア記述言語で記述された設計データを論理合成して前記第2のネットリストを生成する際に,前記イネーブル信号毎に当該イネーブル信号で制御される生成ゲーティッドクロックバッファを抽出して第2の生成ゲーティッドクロックバッファ表を生成する工程を有し,
    前記対応関係検出工程では,前記第1及び第2の生成ゲーティッドクロックバッファ表に含まれるゲーティッドクロックバッファを,前記イネーブル信号に基づいて対応付けることを特徴とするLSIの消費電力算出プログラム。
JP2006239335A 2006-09-04 2006-09-04 Lsiの消費電力算出方法及びその算出プログラム Withdrawn JP2008065382A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006239335A JP2008065382A (ja) 2006-09-04 2006-09-04 Lsiの消費電力算出方法及びその算出プログラム
US11/849,999 US20080059923A1 (en) 2006-09-04 2007-09-04 Lsi power consumption calculation method and calculation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006239335A JP2008065382A (ja) 2006-09-04 2006-09-04 Lsiの消費電力算出方法及びその算出プログラム

Publications (1)

Publication Number Publication Date
JP2008065382A true JP2008065382A (ja) 2008-03-21

Family

ID=39153529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006239335A Withdrawn JP2008065382A (ja) 2006-09-04 2006-09-04 Lsiの消費電力算出方法及びその算出プログラム

Country Status (2)

Country Link
US (1) US20080059923A1 (ja)
JP (1) JP2008065382A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009282808A (ja) * 2008-05-23 2009-12-03 Fujitsu Ltd 半導体回路設計支援プログラム
JP2014010751A (ja) * 2012-07-02 2014-01-20 Fujitsu Ltd 回路設計支援プログラム、回路設計支援装置、及び回路設計支援方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8104012B1 (en) * 2009-01-31 2012-01-24 Xilinx, Inc. System and methods for reducing clock power in integrated circuits
US8058905B1 (en) 2009-01-31 2011-11-15 Xilinx, Inc. Clock distribution to facilitate gated clocks
KR101139603B1 (ko) * 2010-08-24 2012-04-27 광운대학교 산학협력단 클럭 게이팅 집적 회로 장치의 소비 전력 예측 방법
US10768211B2 (en) * 2017-08-25 2020-09-08 Oracle International Corporation System and method for current sense resistor compensation
CN117574808B (zh) * 2024-01-17 2024-04-16 杭州米芯微电子有限公司 一种低能耗mcu电路、芯片及控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4428489B2 (ja) * 1999-08-23 2010-03-10 パナソニック株式会社 集積回路装置及びそのテスト方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009282808A (ja) * 2008-05-23 2009-12-03 Fujitsu Ltd 半導体回路設計支援プログラム
US8386989B2 (en) 2008-05-23 2013-02-26 Fujitsu Limited Semiconductor circuit design support technique
JP2014010751A (ja) * 2012-07-02 2014-01-20 Fujitsu Ltd 回路設計支援プログラム、回路設計支援装置、及び回路設計支援方法

Also Published As

Publication number Publication date
US20080059923A1 (en) 2008-03-06

Similar Documents

Publication Publication Date Title
Bhatnagar Advanced ASIC chip synthesis
US7162706B2 (en) Method for analyzing and validating clock integration properties in circuit systems
US6530073B2 (en) RTL annotation tool for layout induced netlist changes
US20140165022A1 (en) Relative timing architecture
US7665059B2 (en) System and method for designing multiple clock domain circuits
US9953120B2 (en) Relative timing characterization
JP2008065382A (ja) Lsiの消費電力算出方法及びその算出プログラム
US20080201671A1 (en) Method for generating timing exceptions
US7882483B2 (en) Method for checking constraints equivalence of an integrated circuit design
US8037443B1 (en) System, method, and computer program product for optimizing an altered hardware design utilizing power reports
US20220075920A1 (en) Automated Debug of Falsified Power-Aware Formal Properties using Static Checker Results
JP4147842B2 (ja) 論理検証システム及び方法、論理コーン抽出装置及び方法、論理検証及び論理コーン抽出プログラム
JP4261502B2 (ja) 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
Ataei et al. An open-source eda flow for asynchronous logic
JP4200465B2 (ja) 半導体集積回路の設計方法及び設計システム
US11347917B2 (en) Determining and verifying metastability in clock domain crossings
US6834379B2 (en) Timing path detailer
US9449127B1 (en) System for verifying timing constraints of IC design
US9633151B1 (en) Methods, systems, and computer program product for verifying electronic designs with clock domain crossing paths
US7624363B2 (en) Method and apparatus for performing equivalence checking on circuit designs having differing clocking and latching schemes
US20080127026A1 (en) Logic synthesis method and device
US11550979B2 (en) Implementing and verifying safety measures in a system design based on safety specification generated from safety requirements
US20220327269A1 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
Plassan et al. Improving the efficiency of formal verification: the case of clock-domain crossings
US20240086602A1 (en) Clock relationship based re-convergence analysis

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20091110