JP5077010B2 - システムlsiの電力見積方法及びそれに使用する設計済みブロックの電力ライブラリの生成方法。 - Google Patents

システムlsiの電力見積方法及びそれに使用する設計済みブロックの電力ライブラリの生成方法。 Download PDF

Info

Publication number
JP5077010B2
JP5077010B2 JP2008080360A JP2008080360A JP5077010B2 JP 5077010 B2 JP5077010 B2 JP 5077010B2 JP 2008080360 A JP2008080360 A JP 2008080360A JP 2008080360 A JP2008080360 A JP 2008080360A JP 5077010 B2 JP5077010 B2 JP 5077010B2
Authority
JP
Japan
Prior art keywords
power
data
block
fluctuation range
power fluctuation
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.)
Expired - Fee Related
Application number
JP2008080360A
Other languages
English (en)
Other versions
JP2009237700A (ja
Inventor
潤一 新妻
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 JP2008080360A priority Critical patent/JP5077010B2/ja
Publication of JP2009237700A publication Critical patent/JP2009237700A/ja
Application granted granted Critical
Publication of JP5077010B2 publication Critical patent/JP5077010B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は,システムLSIの電力見積方法,及びそれに使用する設計済み回路マクロの電力ライブラリの生成方法に関する。
システムLSIは,大規模化に伴い電力見積もりを設計段階の早い段階で行うことが要求されている。電力見積もりでは,通常,ランダムな入力パターンに対して回路の各ノードの信号変化とそのノードの配線容量とから各ノードの消費電力を求め,全てのノードの消費電力を合計してLSIの電力見積もりが行われる。
しかしながら,大規模化されたLSIについてゲートレベルの信号波形を求めるためにはゲートレベル回路でのシミュレーションを実行しなければならず,シミュレーションに要する工数が多くなる。したがって,上記の方法による電力見積は,システムLSIの設計の初期段階で利用するものには適していない。そこで,電力見積もりを効率的に行うことが特許文献1,2,3などに提案されている。
特許文献1では,LSIがハードウエア記述言語で機能記述されているメガセルと,基本セルにより構成される回路データとで構成され,そのLSIを論理シミュレーションし,メガセルの命令実行時における消費電力値を記述したテーブルに基づいてメガセルへの命令に対応する消費電力値を求め,メガセル以外の基本セルからなる回路部分の電力見積値を加算して,LSI全体の消費電力を見積もることが記載されている。
特許文献2では,入出力のスイッチング動作率対電力を電力関数として登録しておき,LSIを論理シミュレーションした時のポート及び推測ノードのスイッチング活動から電力を推定することが記載されている。
特許文献3では,回路のRTL記述を生成し,回路の電力モデル拡張RTL記述を生成し,電力モデル拡張RTLをシミュレーションして消費電力を推定することが記載されている。
特開平10−11482号公報 特開平10−254945号公報 特開2004−62902号公報
設計の初期段階では,LSIは,C言語やビヘイビアレベルのハードウエア記述言語など抽象レベルが高い言語で機能記述される。この初期段階では,必ずしもゲートレベルの動作波形から算出される電力のような高い精度は求められない。したがって,LSIをゲートレベルでシミュレーションして消費電力を見積もることは,見積もりの精度は高いが,シミュレーションの工数が多すぎて現実的な選択ではない。
一方で,従来の初期の設計段階での電力見積もりでは,設計済み回路マクロ(IP)の消費電力として,チップに適用された時に実測した電力値を採用することが行われる。しかしながら,チップレベルでの実測電力値は必ずしも精度が高くなく,そのような電力見積もりでは見積もりの精度が低すぎる。また,種々のシナリオに対応して電力値が実測されておらず精度が高くない。
そこで,本発明の目的は,設計済み回路マクロを有するLSIの効率的な電力見積もり方法及びそれに使用する設計済み回路マクロの電力ライブラリの生成方法を提供することにある。
C言語またはハードウエア記述言語で機能記述されたLSIデータの電力見積方法は,LSIデータは複数のブロックを有する設計済み回路マクロのデータを有し,当該LSIデータの論理シミュレーションを実行し,前記LSIデータに含まれる複数の命令の実行に対応する前記回路マクロ内のブロックの動作モード履歴を出力するLSIシミュレーション工程と,前記回路マクロ内の複数のブロックのうち少なくとも一部のブロックについて動作モード毎の第1の電力変動範囲データと残りのブロックについての第2の電力変動範囲データとを有する電力ライブラリを参照し,前記動作モード履歴に対応する電力変動範囲を抽出し当該抽出した電力変動の範囲を累積して前記LSIデータの電力変動の範囲を生成する電力見積工程とを有する。
上記の設計済み回路マクロの電力ライブラリの生成方法は,前記回路マクロを,クロックに同期して動作するレジスタと当該レジスタの出力信号に応答して動作する組み合わせ回路とからなるブロックに分割し,各ブロックの制御信号を抽出する回路マクロの構造分析工程と,前記ブロックについてランダム入力パターンに対する消費電力の第2の電力変動範囲データを求める第1の電力計算工程と,前記回路マクロ内の複数のブロックの前記第2の電力変動範囲データを累積して前記回路マクロの電力変動範囲が許容誤差範囲内か否か確認する電力誤差評価工程と,前記電力変動範囲が許容誤差範囲外の場合に前記電力変動範囲が大きいブロックの順に評価ブロックを選択し,当該選択された評価ブロックについて入力シナリオを実行するシミュレーションにより取得される前記評価ブロック内のノードの波形データから特定の制御信号パターンからなる動作モードデータを抽出するシナリオ解析工程と,前記評価ブロックについて前記動作モードに対応する制御信号パターンの制約の下にランダム入力パターンに対する消費電力の第1の電力変動範囲データを求める第2の電力計算工程とを有し,前記電力誤差評価工程で前記動作モード別の前記第1の電力変動範囲データと前記第2の電力変動範囲データとを累積して前記回路マクロの電力変動範囲が許容誤差範囲内か否かを確認し,前記許容誤差範囲内になるまで次の評価ブロックの前記シナリオ解析工程と前記第2の電力計算工程と電力誤差評価工程とを繰り返す。
上記のLSIデータの電力見積方法によれば,電力ライブラリとして設計済回路マクロ内のブロックの動作モードに対応して電力変動範囲データをあらかじめ作成しておくので,工数が少ないLSIデータに対するLSIシミュレーションにより動作モード履歴を生成し,その動作モードに対応する電力変動範囲データを参照して,より高精度にLSIの電力を見積もることができる。
以下,図面にしたがって本発明の実施の形態について説明する。但し,本発明の技術的範囲はこれらの実施の形態に限定されず,特許請求の範囲に記載された事項とその均等物まで及ぶものである。
[電力見積の概略]
図1は,本実施の形態におけるLSIの電力見積のフローチャート図である。システムLSI10には,1チップ内に複数の回路マクロCPU,BUS,IP1,IP2が埋め込まれている。回路マクロIP1,IP2は,例えばCPUからの命令に応答して対応する機能を実行する周辺マクロである。バスBUSは,CPUと周辺マクロIP1,IP2とを接続するコマンドバスとデータバスとを有する。回路マクロCPU,BUS,IP1,IP2は,過去に設計済であり,少なくともレジスタトランスファレベル(RTL)で記述済のIP資産が形成されている。このようなシステムLSI10の設計の初期段階では,C言語やハードウエア記述言語(例えばビヘイビアレベルのHDL)などの高級言語による記述で実装する機能を規定する。
高級言語で記述されたシステムLSI10をシミュレーションし(S1),シミュレーション結果として動作データ12を生成する。動作データ12については後で詳述するが,例えば,高級言語で記述されたシステムLSI10を,要求されるシナリオ入力について実行したときに,回路マクロ内のブロックがどの動作モードで実行されるかを有するデータである。そして,この動作データ12に基づき,電力ライブラリ14を参照して,システムLSI10の電力見積を行い(S2),電力データ16を生成する。
電力見積工程S2では,動作データ12に含まれる回路マクロ内のブロックがどの動作モードで実行されるかのデータに基づいて,回路マクロの電力変動範囲データを電力ライブラリ14から抽出し,その電力変動範囲データを合計してシステムLSIの電力変動範囲を算出する。したがって,電力ライブラリ14の各回路マクロの電力変動範囲データがある程度高精度であることが要求される。ただし,設計の初期段階でのシステムLSIの電力見積であるので,多大な工数を要するゲートレベルでの電力見積ほど高い精度は求められないが,ある程度の精度で電力を見積もりできることが必要になる。
したがって,図1の高級言語で記述されたLSIの電力見積をある程度高い精度で行うためには,設計済の回路マクロについての電力ライブラリ14の生成が重要になる。
[電力ライブラリの生成方法]
図2は,本実施の形態における設計済回路マクロの電力ライブラリの生成方法を示すフローチャート図である。設計済の回路マクロは,少なくともレジスタトランスファレベル(RTL)で記述済のIP資産が形成されている。このRTL記述データを論理合成することでゲートレベルのネットリストを生成することができる。そして,ゲートレベルのネットリストであれば各ノードの変化とノードの容量に基づいて精度の高い電力変動データを求めることができる。したがって,設計済回路マクロについては,ある程度高い精度で電力変動データを求めておくことができる。
IP回路マクロは,仕様上複数のシナリオ(入力パターン群)での動作検証がされてはいるが,システムLSIに埋め込まれた場合に種々の機能を実現するために種々の動作状態を有することになる。そのため,ランダムな入力パターンについて動作シミュレーションを行って電力変動を求めても,その電力変動範囲は許容される誤差範囲を超えることになる。したがって,設計済回路マクロについてある程度高い精度の電力変動データを電力ライブラリとして生成するためには,回路マクロを複数のブロックに分割し,各ブロックの電力変動範囲を求めると共に,ブロックの動作モードに対応する電力変動範囲を求めておくことが必要になる。
図2のフローチャートでは,最初に,IPの回路データ(例えばRTL記述データ)20の構造分析を行い,複数のブロックに分解し,各ブロックの制御信号を抽出する(S10)。抽出したブロックデータ22は,分解された複数のブロックデータとその制御信号データとを有する。
図3は,回路マクロのブロック化の例を示す図である。回路マクロは,通常,クロックCLKに同期してデータDinを入力するレジスタ,例えばフリップフロップFFと,そのレジスタの出力信号に基づいて所定の論理演算をクロックに依存せずに行う組み合わせ回路CNBとが,パイプライン的に接続されている。図3の例では,3つのブロックB1,B2,B3に分割されている。そして,クロックCLKに応答してデータDin1がフリップフロップFF1に入力され,その出力信号が後段の組み合わせ回路CNB1により論理演算される。さらに,次のクロックCLKに応答してデータDin2がフリップフロップFF2に入力され,その出力信号が後段の組み合わせ回路CNB2により論理演算される。そして,3つ目のクロックCLKに応答してデータDin3がフリップフロップFF3に入力され,その出力信号が後段の組み合わせ回路CNB3により論理演算される。
上記のようにパイプラインに接続されている回路マクロの構造解析をして,クロックに同期して動作するレジスタと当該レジスタの出力信号に応答して動作する組み合わせ回路とからなるブロックに分割することができる。
図4は,回路マクロのブロック化のフローチャート図である。また,図5は,図4のフローチャートを説明するための回路マクロ例を示す図である。図4に示されるとおり,まず回路マクロ内の一つのフリップフロップ(レジスタ)FFを選択する(S30)。図5の例では,フリップフロップFF1が選択されたとする。次に,新しいブロックグループを生成し,選択したフリップフロップFF1をそのブロックグループに割り当てる(S31)。フリップフロップFF1の出力Qに接続されている全てのゲートg1.g2.g3を次のフリップフロップFF4に至るまでリストアップする(S32)。このファンアウトゲート探索の結果,出力接続ゲートリスト30が生成される。
次に,全ての出力接続ゲートg1,g2,g3に対し,その入力をさかのぼり,入力元のフリップフロップをリストアップする(S33)。このファンインFF探索の結果,図5の例では,フリップフロップFF2が入力元フリップフロップFFリスト31としてリストアップされる。そして,入力元フリップフロップFFに現在のブロックグループに属していないものがあるかチェックし(S34),属していないFFがあればそれを現在のブロックグループに割り当て,その割り当てられたフリップフロップFFについて,処理工程S32,S33,S34を繰り返す(S35)。図5の例では,フリップフロップFF2のファンアウトゲート探索S32で,ゲートg6,g7,g8が検出され,ゲートg8のファンインFF探索S33でフリップフロップFF3が検出される。そして,入力元フリップフロップFFリスト31内の入力元フリップフロップFFが全て現在のブロックグループに割り当てられると(S34のNO),回路マクロ内のフリップフロップFFがいずれかのブロックグループに属するまで(S36のNO),1つのフリップフロップFFを選択し工程S31〜S35を繰り返す(S37)。
図5の例では,3つのフリップフロップFF1,2,3と,ゲートg1〜g8からなる組み合わせ回路とからなるブロックB10が抽出される。さらに,フリップフロップFF5とその出力信号の組み合わせ回路(図示せず)からなるブロックB11と,フリップフロップFF4とその出力信号の組み合わせ回路(図示せず)からなるブロックB12とが抽出される。
図6,図7は,回路マクロのRTL記述例を示す図である。説明のために,各行の左端に行番号01〜47を付しているが,実際のVerilogのHDL(RTL)には行番号はない。
さらに,図8は,図6,7のRTL記述の回路マクロの論理回路図である。RTL記述と図8の論理回路との対応関係を説明すると以下のとおりである。行01,02は入力端子,出力端子の宣言文,行03は出力端子Outdataを出力するレジスタ48の宣言文,行04,05は制御信号add_at_0_mult_at_1,クロックCLK,リセット信号rstの宣言文,行06〜10は5つのレジスタ41〜45の宣言文,行11,12は乗算器46,加算器47の宣言文である。
行13〜17は,レジスタ41の機能であり,クロックclkがポジティブエッジposedgeの時に,リセット信号rst=1ならレジスタ41の出力mult_in_aが0になり,制御信号add_at_0_mult_at_1=1ならレジスタ41の出力mult_in_aが入力データdata_aになることを示している。行18〜22は,同様のレジスタ42の機能を記述している。行23〜27は,レジスタ43の機能を記述しており,クロックがポジティブエッジの時に,リセット信号rst=1ならレジスタ43の出力add_in_aが0になり,制御信号add_at_0_mult_at_1=0ならレジスタ43の出力add_in_aが入力データdata_aになることを示している。行28〜32は同様のレジスタ44の機能を記述している。行34〜37は制御信号add_at_0_mult_at_1を入力するレジスタ45の機能を記述している。
行38は乗算器46を,行39は加算器47をそれぞれ記述している。そして,行40〜46はセレクタSELとレジスタ48の機能を記述している。
上記のように,図6,7のRTL記述は,論理合成ツールによりゲートレベルのネットリスト(図8)に変換することができる。そして,図8の論理回路は,図4のブロック化処理により,ブロックB20が抽出される。また,出力レジスタ48とその出力Outdataは別のブロックとして抽出される。さらに,ブロックB20から制御信号として,レジスタ41,42,43,44のイネーブル信号(信号add_at_0_mult_at_1及びその反転信号)と,セレクタSELの制御信号add_at_0_mult_at_1_for_outdataとが抽出される。
図2に戻り,回路マクロを複数のブロックに分割しそれぞれのブロックの制御信号として,レジスタ41,42のイネーブル信号add_at_0_mult_at_1と,レジスタ43,44のイネーブル信号(信号add_at_0_mult_at_1の反転信号)と,セレクタSELの選択信号add_at_0_mult_at_1_for_outdataとが抽出される。これらの制御信号は,RTL記述のif文やcase文の制御信号となっているので,回路マクロの構造分析工程S10で抽出可能である。図6,7の例では,行16,21,26,31,43のif文にこれらの制御信号が記述されている。
再度,図2に戻り,分割された各ブロックの電力計算によりブロックの電力の変動範囲が計算され,ブロック電力変動データ24が生成される(S12)。このブロックの電力計算工程S12は,ブロックの動作モードに依存しない電力変動データを生成する1回目の工程と,ブロックの動作モードに対応した電力変動データを生成する2回目以降の工程とがある。
図9は,1回目のブロックの電力計算工程のフローチャート図である。1回目のブロックの電力計算工程では,各ブロックの入力端子にランダムな入力パターンを入力した時の電力計算を行う(S40)。図8のブロックB20の例の場合,入力端子Data_a,Data_b,信号add_at_0_mult_at_1とその反転信号,リセット信号rstについてランダムな入力パターンを生成し,そのランダム入力パターンに対応してブロックB20の回路を動作シミュレーションし,ブロックB20内のノードの変化を示す信号波形を抽出する。そして,信号波形からレベルが変動したノードとその配線容量とから入力パターンIN1〜INnが変化した時のブロックB1,B2の消費電力Pa1〜Pan-1,Pb1〜Pbn-1をそれぞれ計算する。ブロック電力データ40参照。その結果,ブロック電力データ40が,図示されるとおり,ブロックB1,B2の電力値Pa1〜Pan-1,Pb1〜Pbn-1が入力パターンIN1〜INnの変化に対応して得られる。
通常,CMOS回路の場合,入力信号が変化した時にその変化に応答して各ゲートが電力を消費し出力ノードの信号を変化させる。出力ノードの変化が完了した後の定常状態では電力消費はリーク電流レベルであり極めて小さい。よって,ブロック電力データ40に示されるとおり,入力パターンIN1〜INnが変化した時のブロックB1,B2の消費電力Pa1〜Pan-1,Pb1〜Pbn-1がそれぞれ計算できる。
図8のブロックB20を例にして説明すると,レジスタ41〜45,48は,それぞれイネーブル信号がHの場合にクロックclkが立ち上がったとき,入力データDが変化していれば消費電力は最大になり,入力データDが変化していなければ消費電力は最小になる。乗算器46と加算値47は,クロックclkの立ち上がりエッジの前後で入力データが全て異なれば消費電力は最大値になり入力データが同じであれば消費電力は最小値になる。セレクタSELは,制御信号が変化すれば消費電力が最大になり制御信号が変化しなければ消費電力は最小になる。
次に,ブロックの電力データ40から,各ブロックの電力変動範囲を抽出する(S42)。具体的には,ブロックB1の電力Pa1〜Pan-1の最大値と最小値を検出し,ブロックB1の電力変動範囲Pamin〜Pamaxが抽出され,ブロックB2の電力Pb1〜Pbn-1の最大値と最小値を検出し,ブロックB2の電力変動範囲Pbmin〜Pbmaxが抽出される。回路マクロ内の全てのブロックについて電力変動範囲が抽出され,その結果,ブロック電力変動データ24−1が生成される。
図2に戻り,ブロック電力変動データ24−1に基づいて,回路マクロの電力誤差評価が行われる(S14)。回路マクロの電力誤差評価工程S14では,ブロック電力変動データ24−1から回路マクロ内の全てのブロックの電力変動テーブルを生成し,回路マクロの電力変動範囲が許容誤差範囲内か否かをチェックする。
図11は,ブロック電力変動テーブルの一例を示す図である。図11には,1回目のブロック電力変動データ24−1から生成されたブロック電力変動テーブル24−1Tと,2回目以降のブロック電力変動データ24−2から生成されたブロック電力変動テーブル24−2Tとが示されている。
ブロック電力変動テーブル24−1Tには,ブロック電力変動データ24−1に含まれる各ブロックの電力変動範囲(最小値Pmin〜最大値Pmax)が,変動範囲が大きい順に並べられている。この例では,たまたまブロックB1乃至B6の順に変動範囲が大きいものとする。そして,これらのブロックの電力変動範囲の最小値と最大値をそれぞれ累積して回路マクロIPの電力変動データPipmin−Pipmaxが求められる。回路マクロIPの電力誤差評価工程S14では,この電力変動データPipmin−Pipmaxが,許容される誤差範囲以内にはいるか否かが判断される。電力変動範囲Pipmin−Pipmaxが許容範囲を越える場合は(S16のNO),この電力変動テーブルを参照してLSIの動作データから消費電力を見積もると,各回路マクロの消費電力誤差が許容値を超えてしまう。この場合は,変動範囲の大きいブロックについて,後述するシナリオ分析を行いブロックの動作モードを抽出し,動作モード別に電力変動範囲を計算する2回目以降のブロックの電力計算工程S12を行う。
一方,電力変動範囲Pipmin−Pipmaxが許容範囲以内の場合は(S16のYES),この電力変動テーブルを参照してLSIの動作データから消費電力を見積もると,各回路マクロの消費電力誤差が許容値以内になる。よって,ブロック電力変動テーブル24−1Tが,電力ライブラリ14として出力される。つまり,各IPの回路マクロの消費電力誤差が許容値以内であれば,その電力変動データに基づいてLSIの電力を見積もればある程度高い精度の電力値を見積もることができる。
図2に戻り,ブロック電力変動データから得られたIPの回路マクロの電力変動が許容誤差範囲内でない場合は(S16のNO),ブロック電力変動テーブル24−1Tから電力変動が大きいブロックを評価ブロックとして選択する(S18)。そして,選択した評価ブロックについてシナリオ解析を行う(S20)。シナリオ解析工程S20では,回路マクロに要求されている種々のシナリオ(入力パターン群を有するシミュレーション記述)についてブロックのシミュレーションを実行し,シミュレーション結果からブロックの動作モードデータ26(具体的には制御信号パターン)を抽出する。
図12は,シナリオ解析の詳細なフローチャート図である。IPの回路マクロには,設計段階において複数のシナリオについての動作検証が求められている。ここで,シナリオとは,シミュレーション記述の一種であり,入力パターン群を有するシミュレーション入力記述を有し,後述する例に示されるとおり,たとえば一回だけ実行されるinitial文と繰り返し実行されるalways文とを含む。そこで,シナリオ解析では,まず,シナリオ群50のうち選択ブロック52が関与するシナリオ群54を選択する(S50)。そして,そのシナリオについてブロックを含むIPの回路マクロのシミュレーションを実行する(S52)。このシミュレーションの結果,シミュレーション波形56が生成される。シミュレーション波形56は,クロックCLKに対応してブロック内のノードN1〜N3の動作波形である。このシミュレーション波形56を解析して,ブロック内の制御信号パターン(動作モードデータ)26を抽出する(S54)。
抽出されたブロックの動作モードデータ26は,例えば図12に記載された通りである。動作モードデータ26は,2つのデータ26−1,26−2を有する。データ26−1には,選択されたブロックB1,B2,B3それぞれについて,シナリオS1とS2を実行した時の制御信号パターン(動作モード)が抽出される。ブロックの制御信号は,図2のIP回路マクロの構造分析工程S10でブロック化された時に抽出されている。したがって,シミュレーション波形56を解析すると,各シナリオS1,S2において,制御信号が特定のパターン(H,Lの組み合わせまたは動作率など)になっていることが検出される。
データ26−2には,データ26−1のブロックB1の動作モードM1,M2における制御信号パターンが記述されている。動作モードM1では,制御信号1が常に「1」に制御信号2が常に「0」にそれぞれ固定されていることが検出されている。また,動作モードM2では,制御信号1の動作率が0.1,制御信号2が常に「0」に固定されていることが検出されている。
図13,図14は,シミュレーション入力記述であるシナリオの例を示す図である。説明の都合上,左側に行番号を付している。図13は加算演算のシナリオであり,図14は乗算演算のシナリオである。
図13において,行01〜03はパラメータ宣言であり,行01,02は周期cycle,cycle2のパラメータの宣言,行03はホールドタイム(stable)のパラメータの宣言である。行04〜05はこのシナリオの実行に伴うローカル変数を宣言している。行08〜11は,繰り返し実行されるalways文であり,周期cycle2毎にクロックclkがL(1'b0)とH(1'b1)とに変化することを示している。そして,行12〜15で初期値が設定され,行16〜行22は代入文であり,遅延文#()の括弧内の遅延量に対応する時間における変数の入力値を示している。図13の例は,リセット信号reset=0にしたあと,周期cycle遅延毎にadd_at_0_mult_at_1=0; data_a=2, data_b=3; data_a=3, data_b=5; data_a=7, data_b=8; data_a=9, data_b=10;と変数が変化し,それぞれの変数でIPの回路マクロが動作を行い,各クロックに対応してノードの波形がシミュレーション波形56として出力される。したがって,このシナリオを実行するとブロックB20は,加算演算を実行する。
図14の乗算演算のシナリオでは,行18において制御信号add_at_0_mult_at_1=1になっていることのみ図13と異なる。それ以外の行は図13と同じである。したがって,図14のシナリオでは,ブロックB20は乗算演算を実行する。
図13のシミュレーション記述(加算演算のシナリオ)を実行すると,制御信号add_at_0_mult_at_1=0であるので,図18の回路ブロックB20では,レジスタ41,42のイネーブル信号EN=L,レジスタ43,44のイネーブル信号EN=H,セレクタSELの制御信号add_at_0_mult_at_1_for_outdata=Lに固定される。この制御信号のパターンが,シミュレーション波形56を解析することで抽出することができる。この制御信号パターンが,ブロックB20の図13のシナリオにおける動作モードの制約条件になる。
同様に,図14のシミュレーション記述(乗算演算のシナリオ)を実行すると,制御信号add_at_0_mult_at_1=1であるので,図18の回路ブロックB20では,レジスタ41,42のイネーブル信号EN=H,レジスタ43,44のイネーブル信号EN=L,セレクタSELの制御信号add_at_0_mult_at_1_for_outdata=Hに固定される。この制御信号のパターンが,シミュレーション波形56を解析することで抽出することができ,この制御信号パターンが,ブロックB20の図14のシナリオにおける動作モードの制約条件になる。以上が,図12のブロックの動作モードデータ26の具体例である。
図2に示されるとおり,評価ブロックの動作モードデータ26が抽出されると,その動作モードでのブロックの電力計算が行われる(S12)。つまり,2回目以降のブロックの電力計算工程である。具体的には,同モードデータ26の制御信号パターンを制約条件として,評価ブロックの可変入力パターンをランダムに変化させて評価ブロックの電力変化を計算する。つまり,制御信号を動作モードに対応する制御信号パターンにすることで,そのブロックは動作モードでの動作に制約され,その制約の下で入力パターンをランダムに変更することで,動作モードでの電力変動範囲を求めることができる。
図10は,2回目以降のブロックの電力計算工程のフローチャート図である。評価ブロックのブロックデータ22について,動作モードデータ26の制御信号パターンのもとで,可変入力にランダム入力パターンを与えた時のブロックの電力を計算する(S44)。この電力計算工程S44は,評価ブロックの動作モードの数だけ行われる。その結果,図10に示されるとおり,ブロック電力44は,入力パターンIN1〜INnに対して,動作モードM1,M2それぞれにおいて電力P1〜Pn−1が計算される。この電力計算工程S44は,図9の電力計算工程S40とは,動作モードデータの制御信号パターンに固定されていることを除いて,ランダム入力パターンに対する電力値を求める点では同じである。
そして,ブロック電力データ44から,各動作モードでのブロックの電力変動範囲が抽出され,ブロック電力変動データ24−2が出力される。図10の例によれば,評価ブロックB1について,動作モードM1では電力変動範囲がPm1min−Pm1maxに,動作モードM2では電力変動範囲がPm2min−Pm2maxになっている。
図2に戻り,ブロックの電力計算S12の後に,IP回路マクロの電力誤差評価工程S14で,動作モード毎のブロック電力変動データ24−2から,ブロック電力変動テーブルが修正される。具体的には,図11に示されるとおり,1回目に求めたブロック電力変動テーブル24−1Tのうち,電力変動が大きい評価ブロックB1,B2についての電力変動範囲が,それらの動作モードに対応した電力変動範囲にブレークダウンされている。そして,電力誤差評価工程S14では,ブロックB1,B2については電力変動範囲が広い動作モードの電力変動範囲データが採用され,全ブロックB1〜B6の最小電力と最大電力とを累積してIPの回路マクロの電力変動範囲Pipmax−Pipminが求められる。この電力変動範囲が許容誤差以内か否かが判定される(S16)。許容誤差以内であれば,そのブロック電力変動テーブルがIPの電力ライブラリ14として出力される。すなわち,IPの電力ライブラリ14は,図11に示されたIPの回路マクロ内の複数のブロックの動作モード別のもしくは動作モードの区別がない電力変動範囲データになる。
[LSIデータの電力見積方法]
図15は,図1のシステムLSIのシミュレーション工程S1のフローチャート図である。システムLSI10は,例えばC言語で機能を記述されている。C言語のような高級言語は,所定の条件を満たす場合に実行すべき機能を命令文で記述する。図15の例では,所定の条件としてCOND1,COND2が,命令文としてCOMa,COMb,COMc,COMdがそれぞれ記述されている。
設計者には,設計済のIPである回路マクロについて,どの命令文を実行するときに動作するか否かに加えて,命令文と,その命令文が実行されるときのシナリオ及びそれに対応するブロックの動作モードとの関係も既知である。そこで,システムLSI10から動作モード抽出ツールS60によりブロックの動作モードを出力させるプリント文60を各命令文の直下に挿入したプログラム記述10Aを生成する。そして,このプログラム記述10Aについてシミュレーションを実行し(S62),時間軸に対する回路マクロ内のブロックB1,B2の動作モードの履歴を動作データ12として出力する。
図11で説明したとおり,電力変動範囲が広い一部のブロックB1,B2についてのみ動作モード別の電力範囲を抽出してブロック電力変動テーブル24−2Tを生成した。したがって,それ以外のブロックについては動作モードを区別する必要はない。つまり,図15の動作モード抽出ツールによるプログラム記述10Aの生成工程S60では,動作モードを区別すべきブロックの動作モードのみ出力できるようにプリント文60を挿入すればよい。
図15に示されるとおり,動作データ12は,時間軸に対応してブロックB1,B2の動作モードの履歴(非動作状態を含む)データを有する。また,動作データ12は,時間軸に対応して他のブロックの動作状態と非動作状態の履歴データを有しても良い。
図16は,図1の電力見積工程S2を説明する図である。電力見積工程S2では,回路マクロ内の複数のブロックの電力変動テーブルを有する電力ライブラリ14を参照して,システムLSIのシミュレーション工程S1により生成された動作データ履歴12から,時間軸に対応するシステムLSIの電力の最大値Pmaxと最少値Pminからなる変動範囲を算出する。この計算では,各ブロックの最大電力と最小電力とをそれぞれ累積し,ブロックB1,B2については,動作データに対応する最大電力と最小電力とを採用して累積演算する。この算出結果が見積もられた電力結果データ16である。
上記のとおり,本実施の形態によれば,設計済の回路マクロを埋め込んだLSIの電力見積を設計の初期段階で行うに際し,単に回路マクロの電力変動データに基づく電力見積ではなく,回路マクロを複数のブロックに分割し,各ブロックの電力変動データを求めるとともに,電力変動範囲が大きいブロックについてのみシナリオに対応する動作モードを解析し,その動作モードでの電力変動データを求めて電力ライブラリとして準備する。そして,C言語やビヘイビアレベルのHDLなどで記述されたLSIをシミュレーションし,ブロックの動作モード履歴を有する動作データを生成し,電力ライブラリを参照して電力変動を見積もる。
LSIの設計の初期段階で生成されるLSIの高級言語による記述データをシミュレーションすれば,回路マクロ内の動作モードの履歴を求めることができるので,電力ライブラリを参照して動作モードに対応した電力変動範囲を抽出し,比較的高精度の電力を見積もることができる。高級言語による記述データのシミュレーションは,RTL記述データのシミュレーションやゲートレベルのシミュレーションより工数が少ないので,少ない工数で比較的高精度の電力を見積もることができる。
図1及び図2の電力見積方法と電力ライブラリの生成方法は,両方法の各工程を汎用コンピュータに実行させる電力見積ソフトウエアツールと電力ライブラリ生成ツールとにより実現される。
本実施の形態におけるLSIの電力見積のフローチャート図である。 本実施の形態における設計済回路マクロの電力ライブラリの生成方法を示すフローチャート図である。 回路マクロのブロック化の例を示す図である。 回路マクロのブロック化のフローチャート図である。 図4のフローチャートを説明するための回路マクロ例を示す図である。 回路マクロのRTL記述例を示す図である。 回路マクロのRTL記述例を示す図である。 図6,7のRTL記述の回路マクロの論理回路図である。 1回目のブロックの電力計算工程のフローチャート図である。 2回目のブロックの電力計算工程のフローチャート図である。 ブロック電力変動テーブルの一例を示す図である。 シナリオ解析の詳細なフローチャート図である。 シミュレーション入力記述であるシナリオの例を示す図である。 シミュレーション入力記述であるシナリオの例を示す図である。 図1のシステムシミュレーション工程S1のフローチャート図である。 図1の電力見積工程S2を説明する図である。
符号の説明
10:システムLSI
S1:システムLSIのシミュレーション
12:動作データ
S2:電力見積工程
14:電力ライブラリ
16:電力結果

Claims (2)

  1. C言語またはハードウエア記述言語で機能記述されたLSIデータの電力見積方法において,
    前記LSIデータは複数のブロックを有する設計済み回路マクロのデータを有し,
    コンピュータが,当該LSIデータの論理シミュレーションを実行し,前記LSIデータに含まれる複数の命令の実行に対応する前記回路マクロ内のブロックの動作モード履歴を出力するLSIシミュレーション工程と,
    コンピュータが,前記回路マクロ内の複数のブロックのうち少なくとも一部のブロックについて動作モード毎の第1の電力変動範囲データと残りのブロックについての第2の電力変動範囲データとを有する電力ライブラリを参照し,前記動作モード履歴に対応する電力変動範囲を抽出し当該抽出した電力変動の範囲を累積して前記LSIデータの電力変動の範囲を生成する電力見積工程とを有し,
    さらに,前記設計済み回路マクロの電力ライブラリの生成を,
    コンピュータが,前記回路マクロを,クロックに同期して動作するレジスタと当該レジスタの出力信号に応答して動作する組み合わせ回路とからなるブロックに分割し,各ブロックの制御信号を抽出する回路マクロの構造分析工程と,
    コンピュータが,前記ブロックについてランダム入力パターンに対する消費電力の前記第2の電力変動範囲データを求める第1の電力計算工程と,
    コンピュータが,前記回路マクロ内の複数のブロックの電力変動範囲データを累積して前記回路マクロの電力変動範囲が許容誤差範囲内か否か確認する電力誤差評価工程と,
    コンピュータが,前記電力変動範囲が許容誤差範囲外の場合に前記電力変動範囲が大きいブロックの順に評価ブロックを選択し,当該選択された評価ブロックについて入力シナリオを実行するシミュレーションを行い,シミュレーションにより取得される前記評価ブロック内のノードの波形データから,特定の制御信号パターンからなる動作モードデータを抽出するシナリオ解析工程と,
    コンピュータが,前記評価ブロックについて前記動作モードに対応する制御信号パターンの制約の下にランダム入力パターンに対する消費電力の前記第1の電力変動範囲データを求める第2の電力計算工程とを有し,
    前記電力誤差評価工程で前記動作モード別の前記第1電力変動範囲データと前記第2の電力変動範囲データとを累積して前記回路マクロの電力変動範囲が許容誤差範囲内か否かを確認し,前記許容誤差範囲内になるまで次の評価ブロックの前記シナリオ解析工程と前記第2の電力計算工程と電力誤差評価工程とを繰り返すことで行うLSIデータの電力見積方法。
  2. 設計済み回路マクロの電力ライブラリの生成方法において,
    コンピュータが,前記回路マクロを,クロックに同期して動作するレジスタと当該レジスタの出力信号に応答して動作する組み合わせ回路とからなるブロックに分割し,各ブロックの制御信号を抽出する回路マクロの構造分析工程と,
    コンピュータが,前記ブロックについてランダム入力パターンに対する消費電力の第2の電力変動範囲データを求める第1の電力計算工程と,
    コンピュータが,前記回路マクロ内の複数のブロックの前記第2の電力変動範囲データを累積して前記回路マクロの電力変動範囲が許容誤差範囲内か否か確認する電力誤差評価工程と,
    コンピュータが,前記電力変動範囲が許容誤差範囲外の場合に前記電力変動範囲が大きいブロックの順に評価ブロックを選択し,当該選択された評価ブロックについて入力シナリオを実行するシミュレーションを行い,シミュレーションにより取得される前記評価ブロック内のノードの波形データから,特定の制御信号パターンからなる動作モードデータを抽出するシナリオ解析工程と,
    コンピュータが,前記評価ブロックについて前記動作モードに対応する制御信号パターンの制約の下にランダム入力パターンに対する消費電力の第1の電力変動範囲データを求める第2の電力計算工程とを有し,
    前記電力誤差評価工程で前記動作モード別の前記第1の電力変動範囲データと前記第2の電力変動範囲データとを累積して前記回路マクロの電力変動範囲が許容誤差範囲内か否かを確認し,前記許容誤差範囲内になるまで次の評価ブロックの前記シナリオ解析工程と前記第2の電力計算工程と電力誤差評価工程とを繰り返す電力ライブラリの生成方法。
JP2008080360A 2008-03-26 2008-03-26 システムlsiの電力見積方法及びそれに使用する設計済みブロックの電力ライブラリの生成方法。 Expired - Fee Related JP5077010B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008080360A JP5077010B2 (ja) 2008-03-26 2008-03-26 システムlsiの電力見積方法及びそれに使用する設計済みブロックの電力ライブラリの生成方法。

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008080360A JP5077010B2 (ja) 2008-03-26 2008-03-26 システムlsiの電力見積方法及びそれに使用する設計済みブロックの電力ライブラリの生成方法。

Publications (2)

Publication Number Publication Date
JP2009237700A JP2009237700A (ja) 2009-10-15
JP5077010B2 true JP5077010B2 (ja) 2012-11-21

Family

ID=41251603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008080360A Expired - Fee Related JP5077010B2 (ja) 2008-03-26 2008-03-26 システムlsiの電力見積方法及びそれに使用する設計済みブロックの電力ライブラリの生成方法。

Country Status (1)

Country Link
JP (1) JP5077010B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0682136B2 (ja) * 1988-11-16 1994-10-19 三菱電機株式会社 消費電流見積り方法
JP3913180B2 (ja) * 1994-08-03 2007-05-09 松下電器産業株式会社 半導体集積回路の設計方法
JP3604742B2 (ja) * 1994-09-02 2004-12-22 株式会社ルネサステクノロジ 回路検証用シミュレーション装置
JPH09282341A (ja) * 1996-04-10 1997-10-31 Oki Electric Ind Co Ltd Lsiのレイアウト設計方法および設計装置
JP4077899B2 (ja) * 1997-03-13 2008-04-23 株式会社日立製作所 論理回路の論理動作制御方法と半導体論理回路の消費電力制御方法及び算出方法及び半導体論理回路
JP2002108958A (ja) * 2000-09-26 2002-04-12 Toshiba Corp 回路設計システム、回路設計方法および回路設計プログラムを格納したコンピュータ読取り可能な記録媒体
JP2005346227A (ja) * 2004-06-01 2005-12-15 Ricoh Co Ltd 消費電力見積もりを行う設計支援システムおよびその方法、ならびにそのプログラム
JP2006146345A (ja) * 2004-11-16 2006-06-08 Matsushita Electric Ind Co Ltd 半導体集積回路の設計方法及びその設計装置

Also Published As

Publication number Publication date
JP2009237700A (ja) 2009-10-15

Similar Documents

Publication Publication Date Title
JP4634269B2 (ja) クロストークを考慮したタイミング分析のためのシステム、方法及び論理装置
US8095354B2 (en) Power consumption peak estimation program for LSI and device therefor
US7958470B1 (en) Method and system for false path analysis
Su et al. Performance optimization using variable-latency design style
US20070276645A1 (en) Power modelling in circuit designs
US20030208730A1 (en) Method for verifying properties of a circuit model
US20130091483A1 (en) Automatic flow of megacell generation
CN112818621B (zh) 用于预测软ip部件的性能、功率和面积表现的系统和方法
Peng et al. Crosstalk-and process variations-aware high-quality tests for small-delay defects
EP4018350A1 (en) Glitch power analysis with register transistor level vectors
TW202139049A (zh) 用於設計上下文感知電路的方法
KR102545302B1 (ko) Cmos 기반 디지털 회로의 설계 및 검증 과정 자동화 프레임워크
JP2008299464A (ja) 消費電力計算方法、消費電力計算プログラムおよび消費電力計算装置
Chou et al. Average-case technology mapping of asynchronous burst-mode circuits
JP5077010B2 (ja) システムlsiの電力見積方法及びそれに使用する設計済みブロックの電力ライブラリの生成方法。
US20050278664A1 (en) Predicting power consumption for a chip
US11657198B2 (en) Verification of hardware design for data transformation component
JPWO2011074029A1 (ja) 集積回路消費電力計算装置,処理方法およびプログラム
Herbstritt et al. On SAT-based bounded invariant checking of blackbox designs
Azarpeyvand et al. CIVA: Custom instruction vulnerability analysis framework
CN113688587B (zh) 一种电路布图的生成方法、装置、计算机设备及存储介质
US11624777B2 (en) Slew-load characterization
JP2005129054A (ja) 回路設計方法
Wang et al. A novel criticality computation method in statistical timing analysis
CN118377534A (zh) 一种寄存器传输级模拟加速的方法和相关装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120731

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120813

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees