JP2009075970A - 電力演算装置、方法及びプログラム - Google Patents

電力演算装置、方法及びプログラム Download PDF

Info

Publication number
JP2009075970A
JP2009075970A JP2007246038A JP2007246038A JP2009075970A JP 2009075970 A JP2009075970 A JP 2009075970A JP 2007246038 A JP2007246038 A JP 2007246038A JP 2007246038 A JP2007246038 A JP 2007246038A JP 2009075970 A JP2009075970 A JP 2009075970A
Authority
JP
Japan
Prior art keywords
power
design data
storage unit
cell
netlist
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.)
Granted
Application number
JP2007246038A
Other languages
English (en)
Other versions
JP5029247B2 (ja
Inventor
Takayuki Sasaki
貴行 佐々木
Junichi Niitsuma
潤一 新妻
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 JP2007246038A priority Critical patent/JP5029247B2/ja
Publication of JP2009075970A publication Critical patent/JP2009075970A/ja
Application granted granted Critical
Publication of JP5029247B2 publication Critical patent/JP5029247B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】短時間かつ高精度で電力を見積もることができる電力演算装置、方法及びプログラムを提供することを課題とする。
【解決手段】第1のレジスタ転送レベル設計データに対して論理合成処理を行うことによりネットリスト設計データを生成するネットリスト生成手段と、前記ネットリスト設計データ内のセル種別毎の代表セルを決定する代表セル決定手段と、第2のレジスタ転送レベル設計データに対して前記代表セルを用いた回路の電力を演算する電力演算手段(1150)とを有することを特徴とする電力演算装置が提供される。
【選択図】図4

Description

本発明は、電力演算装置、方法及びプログラムに関する。
電力を見積もる方法として、レイアウト設計後のネットリストで電力を見積もる方法とRTL(レジスタ転送レベル)設計データで電力を見積もる方法がある。レイアウト設計後のネットリストの代わりに、レイアウト設計前のネットリストを利用することもある。
レイアウト設計後のネットリストを使った電力見積もりは、データ量が多いために処理が重い。この方法は長い時間がかかり、短TAT(Turn-Around Time)で工程をこなすためには不向きである。このためRTL設計データを利用した電力見積もりの要求が高い。
一方、RTL設計データの電力見積もりには精度の問題がある。また、クロックツリーの電力値が一致しないという問題がある。すなわち、RTL設計データには使用セルの情報がない。特に、クロックツリーは消費電力が大きいので精査したい要素であるが、クロックツリーが生成されていないため、電力見積もりの精度が低い。
下記の特許文献1には、動作レベルやRTレベルという上位のレベルにおいても、設計に使用する各モジュールの設計品質指標をデータベースを用いて算出し、これを用いてフロアプランを実行し、その実行結果に基づき設計対象の回路規模や遅延時間、消費電力等の設計品質指標を算出し、それに基づき設計の変更が必要か否か(設計仕様を満たすか否か)を判定する集積回路設計方法が記載されている。
また、下記の特許文献2には、レジスタ転送レベル論理記述を入力してLSIハードウェア性能を予測評価する装置において、前記論理記述に基づき、各ブロックの大きさとブロック間の相対位置関係を決定するブロック面積推定手段と、前記ブロック間の相対位置関係情報に基づき、3次元的な容量を考慮したネットディレイを求めるパスディレイ計算手段と、消費電力を計算する消費電力計算手段と、複数のレジスタ転送レベル論理記述に対する上記各手段による評価値のトレードオフを表示する方式間評価手段とを備えたことを特徴とするレジスタ転送レベル論理記述ハードウェア性能評価装置が記載されている。
また、下記の特許文献3には、素子間接続情報を収納するネットリスト・ファイルよりネットリストを読み出し、当該ネットリストに含まれる素子の動作機能を定義する所定の素子動作情報を用いて、レジスタトランスファ情報を生成して出力するレジスタトランスファ情報生成手段と、前記レジスタトランスファ情報を入力して、所定の記述出力テンプレートを用いてハードウェア記述言語ソースを生成して出力し、所定のソースファイルに収納するハードウェア記述出力手段と、を少なくとも備えることを特徴とするネットリスト・ハードウェア記述変換装置が記載されている。
また、下記の特許文献4には、集積回路のレジスタ転送レベル論理記述から集積回路の性能を見積もるレジスタ転送レベル設計支援装置であって、集積回路を構成するための素子モデルを格納したライブラリと、前記論理記述を入力し記述中の各信号に対して代入箇所の対応付けを作成するRTL記述入力手段と、前記論理記述から構文解析木を作成する構文解析手段と、前記構文解析木中の前記RTL記述入力手段で対応付けを作成した信号に対して不変属性を設定する不変属性設定手段と、前記構文解析木から前記不変属性を持つ信号を除いた部分回路を論理最適化し前記ライブラリ内の素子モデルを割り付ける部分回路合成手段と、前記不変属性を持つ信号に対して設計規則を満足するためにバッファを挿入する不変部最適化手段と、前記集積回路の性能を計算する性能計算手段と、前記性能計算の結果と前記論理記述とを表示する表示手段とを備えたことを特徴とするレジスタ転送レベル設計支援装置が記載されている。
特開平10−171857号公報 特開平11−213029号公報 特開平7−306879号公報 特開2004−102703号公報
以上のように、レイアウト設計後のネットリストで電力を見積もると、高精度ではあるが、長時間を要する。また、RTL設計データで電力を見積もると、短時間ではあるが、精度が低くなる。
本発明の目的は、短時間かつ高精度で電力を見積もることができる電力演算装置、方法及びプログラムを提供することである。
本発明の電力演算装置は、第1のレジスタ転送レベル設計データに対して論理合成処理を行うことによりネットリスト設計データを生成するネットリスト生成手段と、前記ネットリスト設計データ内のセル種別毎の代表セルを決定する代表セル決定手段と、第2のレジスタ転送レベル設計データに対して前記代表セルを用いた回路の電力を演算する電力演算手段とを有することを特徴とする。
第2のレジスタ転送レベル設計データを基に電力を演算するので、短時間で電力を見積もることができる。また、代表セルを用いた回路の電力を演算することにより、高精度で電力を見積もることができる。
図16は、本発明の実施形態による電力演算装置を構成するコンピュータのハードウェア構成例を示すブロック図である。このコンピュータは、CAD(computer-aided design)により、レジスタ転送レベル(RTL)設計データ及びネットリスト設計データ(以下、ネットリストという)を生成し、電力を見積もることができる。
バス1601には、中央処理装置(CPU)1602、ROM1603、RAM1604、ネットワークインタフェース1605、入力装置1606、出力装置1607及び外部記憶装置1608が接続されている。
CPU1602は、データの処理及び演算を行うと共に、バス1601を介して接続された上記の構成ユニットを制御するものである。ROM1603には、予めブートプログラムが記憶されており、このブートプログラムをCPU1602が実行することにより、コンピュータが起動する。外部記憶装置1608にコンピュータプログラムが記憶されており、そのコンピュータプログラムがRAM1604にコピーされ、CPU1602により実行される。このコンピュータは、コンピュータプログラムを実行することにより、後述するRTL設計データ及びネットリストを生成し、電力の見積もり処理を行うことができる。
外部記憶装置1608は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置1608は、コンピュータプログラム、RTL設計データ及びネットリスト等を記録媒体に記録したり、記録媒体からコンピュータプログラム等を読み出すことができる。
ネットワークインタフェース1605は、ネットワークに対してコンピュータプログラム及びRTL設計データ等を入出力することができる。入力装置1606は、例えばキーボード及びポインティングデバイス(マウス)等であり、各種指定又は入力等を行うことができる。出力装置1607は、ディスプレイ及びプリンタ等であり、表示又は印刷することができる。
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
図1は、電力演算装置の構成例を示す概念図である。記憶部は図16の外部記憶装置1608に対応し、処理部はCPU1602の処理に対応する。RTLコーディング部1100は、設計者の入力指示に応じて、RTL設計データを生成し、記憶部1001に記録する。
図6は、記憶部1001内のRTL設計データの例を示す図である。ここでは、簡単のため8ビットレジスタ1個で構成され、入力8ビットデータをクロック信号に同期させて1サイクル遅らせて出力する回路を例に示す。
図1において、論理合成部1110は、記憶部1000内のクロックソースデータ、記憶部1002内のテクノロジライブラリ、及び記憶部1020内のカスタムワイヤロードモデルを用いて、記憶部1001内のRTL設計データに対して論理合成処理することによりネットリストを生成し、ネットリストを記憶部1010に記録する。記憶部1002内のテクノロジライブラリは、セルの特性を示すデータである。
図7は、記憶部1010内のネットリストの回路例を示す図である。例えば、8個のD型フリップフロップ(DFF)により1個のレジスタが構成される。8個のD型フリップフロップには、クロックclkが入力される。
クロックツリー合成部1120は、記憶部1010内のネットリストに対してクロックツリー合成処理を行い、クロック信号のツリー構成を生成し、そのクロックツリーにバッファを配置する。レイアウト設計部1121は、設計者の入力指示に応じて、クロックツリー合成されたネットリストに対してレイアウト設計処理を行い、カスタムワイヤロードを生成して記憶部1020に記録し、ネット別キャパシタンスリストを生成して記憶部1021に記録し、ネットリストを生成して記憶部1022に記録する。記憶部1022にはレイアウト設計後のネットリストが記録され、記憶部1010にはレイアウト設計前のネットリストが記録される。
図8は、記憶部1022内のネットリストの回路例を示す図である。図7の記憶部1010内のネットリストでは、クロックclkのピンから高ファンアウトのツリーにD型フリップフロップ(DFF)がつながっていた。これに対して、図8の記憶部1022内のネットリストでは、クロックclkのピンからD型フリップフロップ(DFF)に到達するまでの制約、例えば時間等を満たすように、クロックツリー合成部1120及び/又はレイアウト設計部1121によりバッファL0〜L7が自動挿入される。例えば、クロックツリー合成部1120では2分木のクロックツリーになるように設定したとすると、バッファL0〜L6が挿入される。さらに、クロックツリー合成部1120又はレイアウト設計部1121で制約を充足するために更なるバッファL7が追加されることがある。図では、バッファL2及びL6間にバッファL7が追加された例を示している。
レイアウト設計部(レイアウトツールやレイアウト見積ツール)1121は、制約の充足に関する検査精度を上げるため、配線(ワイヤ)の抵抗値、キャパシタンスを算出し、ファイルとして書き出す。このうちキャパシタンスのみ書き出したものが、ネット別キャパシタンスリストとして記憶部1021に記録される。記憶部1020内のカスタムワイヤロードモデルは、ワイヤ部分のキャパシタンスを示す。
図10は、記憶部1021内のネット別キャパシタンスリストの例を示す図である。信号名毎にファンアウト数及び容量が記憶される。
図1において、動作率入力部1131は、設計者の入力指示により、動作率を入力して記憶部1031に記録する。電力見積もり部1130は、記憶部1021内のキャパシタンスリスト及び記憶部1031内の動作率を用いて、記憶部1022内のネットリストの回路の電力の見積もり演算を行い、電力見積もり結果を記憶部1030に記録する。電力は、C×V2×Fで演算される。Cは容量値、Vは電圧、Fは動作率(信号変化回数/秒)である。
次に、RTL設計データを基に電力見積もり演算を行う処理を説明する。論理シミュレーション部1140は、記憶部1001内のRTL設計データを基に論理シミュレーションを行い、シミュレーション結果である波形データを記憶部1040に記録する。
電力見積もり部1150は、記憶部1040内の波形データ、記憶部1002内のテクノロジライブラリ、記憶部1003内のワイヤロードモデル及び記憶部1000内のクロックソースデータを用いて、記憶部1001内のRTL設計データを基に回路の電力見積もり演算を行い、電力見積もり結果を記憶部1050に記録する。
記憶部1022内のネットリストを基に電力を見積もる場合には、論理合成部1110、クロックツリー合成部1120及びレイアウト設計部1121の処理が重い。また、より精度よく見積もる時には、記憶部1022内のネットリストを使ったゲートレベルのシミュレーションの波形を利用し、電力を見積もってもよい。この方法は時間がかかるため、動作率入力部1131により、動作率を人が入力してもよい。
電力見積もり部1150が、あるブロックのRTL設計データを論理変換するのにかかる時間が7分であるのに対して、同じブロックを論理合成部1110が論理合成して、記憶部1010内のネットリストを生成するだけでも2時間かかる。短TATで工程をこなすためには不向きである。このためRTL設計データを利用した電力見積もりの要求が高い。
一方、RTL設計データに基づく電力見積もりの問題は精度である。クロックツリーの電力値が一致しないという問題がある。また、RTL設計データには、記憶部1010又は1022内のネットリストでは確定している使用セルの情報がない。特に、クロックツリーは消費電力が大きいので精査したい要素であるが、RTL設計データの段階ではクロックツリーが生成されていないため、電力見積もりの精度が低くなる。
以下、短時間かつ高精度で電力見積もり演算を行う電力演算方法を説明する。実際の半導体集積回路の設計においては、設計の早い時期に実験的に仮のレイアウト設計をする場合がある。このような場合では比較的早い時期に物理設計の概要が見えることになる。つまり、レイアウトの概要を把握するために作成される記憶部1022内のレイアウト設計後(post-layout)のネットリストが存在し、データ抽出ができる。また、エンハンスメント設計であればレイアウト設計後のネットリストがある。あるいは同じテクノロジの先行した設計例を類例として採用することも可能である。また、近年では、論理合成のタイミングクロージャや精度向上のため、仮物理設計を並行して実施するツール・設計環境もあり、この場合も現状のRTL設計データに基づく見積もりよりは精度のよいデータがとれる。
最後の方法では、図1に示したように、記憶部1020内のカスタムのワイヤロードモデル(ファンアウトとキャパシタンスのテーブル)を出力することができる。従って、全体のワイヤロードモデルについて、物理設計の情報をアノテーション(注釈付け)することは可能になっている。このため若干の改善ができる。しかし、問題なのは、組み合わせ回路ではなくクロックツリー等下位でしかやらないものである。また、上位ではクロックツリー合成自体も見積もりであり、概算である。従って、クロックツリーの構成も異なっている。従って、図1のワイヤロードモデルだけでは解決できない。
本発明の実施形態は、平均電力が加算して求める性質に着目して回路のモデル化を行う。回路を平均化した特徴量をアノテーションしてRTL設計データに基づく電力見積もりにフィードバックする手段をもつ。クロックツリーの抽象化手段とセルの抽象化手段がある。
クロックツリーの抽象化手段はクロックツリー合成・レイアウト(あるいはレイアウト見積もり)の結果決まるクロックツリーのデータを抽象化するものである。ネットリストの中のセルは、論理合成部1110で一旦決まり、レイアウト設計部1121等でセルの置き換えが行われ、最終的には記憶部1022内のネットリストで確定する。
RTL設計データは、論理合成部1110の処理前なので使用するセルの情報や構成が決まっていない。セルの抽象化手段は、このパラメータを上位に渡す手段で、記憶部1010内のネットリスト又は論理合成部1110を解析して使用セルの統計情報を算出する手段と、代表するセルを決める手段と、すべてのセルが代表したセルであるとして計算した場合と記憶部1010内のネットリスト又は論理合成部1110で使用されているセルを使って計算した場合の誤差を見積もって補正係数を計算する手段があり、代表セル名と補正係数を出力する。
図2は、本実施形態によるクロックツリー代表セルの決定及びその補正係数の演算方法を示すフローチャートである。まず、図1の処理を行うことにより仮のレイアウト設計処理を行い、記憶部1001内のRTL設計データを基に記憶部1020内のカスタムワイヤロードモデル、記憶部1021内のネット別キャパシタンスリスト及び記憶部1022内のネットリストを生成する。その後、電力演算装置が図2の処理を行う。図2の処理は、電力見積もり処理の前処理である。
記憶部1002内のテクノロジライブラリ及び記憶部1000内のクロックソースデータは、図1に示すものと同じである。記憶部1021内のネット別キャパシタンスリスト(図10)及び記憶部1022内のネットリスト(図8)は、図1の処理により生成されたものである。
図5は、記憶部1022内のネットリストのワイヤの名前を説明するための図である。出力ピンA010に接続されるワイヤA011は、出力ピンA010と同じ名前とする。入力ピンA020に接続されるワイヤA021は、入力ピンA020と同じ名前とする。これら以外で、ワイヤA000のようにセルA001がドライブするワイヤはA001の名前+「_wire」とする。例えば、図7のワイヤB000の信号名は「clk」、図9のワイヤB001の信号名は「B0_wire」である。
図12は、ネットリストのセル表を示す図である。ネットリストには、LVth_Buffer_01 B0(clk, B0_wire)のように、セル名のあとにインスタンス名を書くシンタックスでセルのインスタンスを表現する。したがって、記憶部1022内のネットリストには図12に示すデータに対応するものが含まれている。以下の説明では、記憶部1022内のネットリストとして、図12を使って説明する。
図11は、記憶部1000内のクロックソースデータの例を示す図である。クロックソースデータは、例えば、クロックソース名が「clk」である。
ステップ2100では、記憶部1022内のネットリストからクロックソースデータに指定されたクロックを見つける。すなわち、記憶部1000内のクロックソースデータに記載されたクロックソース名を持つワイヤを記憶部1022内のネットリストから探す。図11の記憶部1000内のクロックソースデータによれば、クロックソース名は「clk」であるので、記憶部1022内のネットリスト(図8)からクロックclkを見つける。
次に、ステップ2101では、記憶部1022内のネットリストを基に、見つけたクロックソース毎に、クロックツリーをたどりセル種別毎にセルの個数を数える。クロックclkから、ネットリストの結線関係をたどり、D型フリップフロップ(DFF)のクロック端子に到達するまでの回路を調べる。図8では、バッファL0〜L7のインスタンスが見つかる。記憶部1022内のネットリストよりインスタンスの対応するセル名は図12に示すものなので、セル種別毎のセルの個数をクロックツリーセル分布表として記憶部2001に記録する。
図13は、記憶部2001内のクロックツリーセル分布表を示す図である。セルMVth_Buffer_01が6個、セルMVth_Buffer_02が1個、セルMVth_Buffer_03が1個である。この例ではクロックが1個であるが、複数ある場合にはクロックソース毎に検索する。このような同一のクロックソースからたどれるクロック用の回路をクロックドメインという。
次に、ステップ2102では、記憶部1022内のネットリストを基に、見つけたクロックソース毎に、クロックツリーをたどり、ワイヤの名前をすべて見つける。ワイヤの名前はclk,L0_wire〜L7_wireが見つかり、図10より、ワイヤclk,L7_wireはファンアウトが1、これら以外はファンアウトが2であることがわかる。
次に、ステップ2103では、記憶部1021内のキャパシタンスリストを基に、見つけたワイヤの容量(キャパシタンス)を探して、ファンアウト毎に平均値を求める。ワイヤロードモデルとは、ワイヤの分岐数とその分岐数を持ったワイヤに割り当てる容量(キャパシタンス)の対応関係である。ステップ2103よりファンアウト毎に容量を求める。図10の記憶部1021内のキャパシタンスリストより、1のファンアウトは、clk,L7_wireであり、各々、容量が8[fF],9[fF]であることがわかる。ステップ2103では、(8+9)/2をして、1のファンアウトの容量平均値を8.5とする。同様に、2のファンアウトは、L0_wire 〜 L6_wireなので、(15+21+10+24+22+18+18)/7 を計算して18.3を容量平均値とする。これらのファンアウト毎の容量平均値を記憶部2000にカスタムクロックツリーロードモデルとして記録する。図14に、記憶部2000にカスタムクロックツリーロードモデルの例を示す。
次に、ステップ2110では、図13の記憶部2001内のクロックツリーセル分布表を基に、最も多いセル(以下、代表セルという)を見つける。クロックツリーは、図1のクロックツリー合成部1120及びレイアウト設計部1121のような物理設計と呼ばれる工程で決まるものであり、RTL設計では詳細がわからない。このため、主要なセルで代表させておいたほうが単純化できてよい。そこで、記憶部2001内のクロックツリーセル分布表より最も多いセルを選ぶ。本実施形態ではモジュールは1個しかない。また、クロックドメインも1個しかない。もしモジュール別やクロックドメイン別に見たとき、代表セルが一致しない場合にはモジュール別やクロック別に生成するとしても良い。また、これを考慮してクロックツリーを分けるとしても良い。しかし、基本的な手続きは1個の場合と同じなので1個の場合を説明する。
図13の記憶部2001内のクロックツリーセル分布表の場合、最も多いセルはMVth_Buffer_01である。従ってこれを代表セルとする。これをRuby言語のリスト形式でかくと、list = [["MVth_Buffer_01", 5], ["MVth_Buffer_02",1],["MVth_Buffer_03",1]]のように書ける。これを使って説明する。
記憶部1002内のテクノロジライブラリは、一般に半導体ベンダが提供するものであり、セルの特性が書かれたものである。例えば、スタティック電力やセル内部で消費するダイナミック電力の基礎値(1回当たりの立ち上がり電力量・立ち下がり電力量)等が書いてある。スタティック電力、ダイナミック電力は通例、電力見積もりでは別々に出せるようになっている。従って、それぞれ補正値を算出して後段に渡すとしてもよい。簡単のため、記憶部1002内のテクノロジライブラリに1回のトグルにかかる電力量(立ち上がり1回分の電力と立り下がり1回分の電力の和)をベースにした容量が書かれていたとする。図15に、記憶部1002内のテクノロジライブラリの例を示し、その場合を例に説明する。
次に、ステップ2111では、補正係数を演算する。まず、図13の記憶部2001内のクロックツリーセル分布表及び図15の記憶部1002内のテクノロジライブラリのデータをリストにマージして、list = [["MVth_Buffer_01", 6, 4], ["MVth_Buffer_02" , 1, 6] , ["MVth_Buffer_03" , 1, 8] ] とする。リストの第1項はセル名を示し、第2項が使用個数を示し、第3項が容量を示す。また、Dihyo_Cell= list[0] とし、代表セルをMVth_Buffer_01とする。定数をそれぞれインデックスNUMBER = 1(使用個数)、インデックスCAP=2(容量)として、ステップ2111を処理すると、合計使用個数numは1+1+6で8となり、合計容量sumは6×4+1×6+1×8で38となる。よって補正係数hoseiKeisuは、38/(4×8)より1.19となる。ここで、Daihyo_cell[CAP]は、代表セルの容量(4fF)を示す。後段で代表セルを選択したことによる過少(過大)見積もりの軽減のための補正にこの値を使う。すなわち、すべてのバッファを代表セルに置き換えて、電力を見積もったときの補正係数である。記憶部2010には、クロックツリー代表セル(MVth_Buffer_01)及びその補正係数hoseiKeisuを記録する。同様に、入力端子容量に関しても同様に求めておく。
以上のように、記憶部1002内のテクノロジライブラリ、記憶部1000内のクロックソースデータ、記憶部1021内のキャパシタンスリスト及び記憶部1022内のネットリストのクロックに関する情報を抽象化して、記憶部2000内のカスタムクロックツリーワイヤロードモデル、記憶部2001内のクロックツリーセル分布表、並びに記憶部2010内のクロックツリー代表セル及びその補正係数が生成される。
図3は、本実施形態によるデータ系代表セルの決定及びその補正係数の演算方法を示すフローチャートである。図2の処理の後、図3のデータ系セル(ANDセル等)の処理を行う。この処理工程は、図2の処理工程と同様である。ただし、フリップフロップについては、データのトグルによる電力の基礎となるトグル用容量とクロック端子で消費する電力の指標となるトグル用容量の2種類を求める。これらについては、図1の論理合成部1110の設定や目的によっては、記憶部1010内のネットリストが記憶部1022内のネットリストと同等の信頼性を有する、もしくは、RTLの改版で直近の物理設計との乖離が大きい場合には、記憶部1010内のネットリストの方がより正確なデータとなる。このような場合には、記憶部1022内のネットリストの代わりに記憶部1010内のネットリストを利用するとしても良い。以下、図3の処理が図2の処理と異なる点を説明する。
まず、ステップ3100では、記憶部1022内のネットリストを基に、見つけたセル種別毎にセルの個数を数え、記憶部3000にデータ系セル分布表を記録する。次に、ステップ3101では、記憶部3000内のデータ系セル分布表を基に、セルのカテゴリ(D型フリップフロップ、インバータ、ANDセル、ORセル等)毎に最も多いセル(データ系代表セル)を見つける。次に、ステップ3102では、図2のステップ2111と同様に、図3の演算式により補正係数hoseiKeisuを演算し、記憶部3001にセル種別毎のデータ系代表セル及びその補正係数を記録する。
図4は、電力演算装置による電力見積もり演算処理を示すフローチャートである。図2及び図3の処理の後、図4の処理を行う。上記の処理で、図2の記憶部2000内のカスタムクロックツリーワイヤロードモデル、記憶部2001内のクロックツリーセル分布表、記憶部2010内のクロックツリーセル代表セル及びその補正係数、図3の記憶部3001内のデータ系代表セル及びその補正係数が出力されている。図1では仮のRTL設計を行ったが、図4では図1の設計結果を参照して実のRTL設計を行う。以下、図4の処理が図1の処理と異なる点を説明する。
RTLコーディング部1100は、設計者の入力指示に応じて、RTL設計データを生成し、記憶部1001に記録する。論理シミュレーション部1140は、記憶部1001内のRTL設計データを基に論理シミュレーションを行い、シミュレーション結果である波形データを記憶部1040に記録する。
ステップ4100では、記憶部3001内のデータ系代表セル及び記憶部2010内のクロックツリー代表セルを基に、計算に使うセルを電力見積もり部1150に設定する設定ファイルを生成し、記憶部4000に記録する。すなわち、カテゴリ(クロックツリーのバッファ、D型フリップフロップ、インバータ、ANDセル等)毎の代表セルを設定ファイルに設定する。
電力見積もり部1150は、記憶部1000内のクロックソースデータ、記憶部1002内のテクノロジライブラリ、記憶部1020内のカスタムワイヤロードモデル、記憶部2000内のカスタムワイヤロードモデル、記憶部4000内の設定ファイルを参照し、記憶部1001内のRTL設計データの回路の電力を演算する。
例えば、記憶部4000内の設定ファイルで設定された代表セルをそれぞれNANDセル、ORセル、XORセル等に割り当てる記述を生成し、クロックバッファに使うセルにMVth_Buffer_01を使うように設定し、クロックツリーの2分木を推定する設定をする。
図9は、図4の電力見積もり部1150の内部で生成されるクロックツリーの構成例を示す回路図である。図1の記憶部1022内のネットリストは図8に示すように8個のバッファL0〜L7を有するが、図9のクロックツリーは2分木を推定しているために7個のバッファB0〜B6を有する。また、図9のバッファB0〜B6は、記憶部2010内のクロックツリー代表セルMVth_Buffer_01が割り当てられ、D型フリップフロップ(DFF)にも記憶部3001内のデータ系代表セルが割り当てられる。ワイヤロードモデルは、記憶部1003又は1020内のワイヤロードモデルを使う。
このように設定した後、電力見積もり部(電力見積もりツール)1150は、図1の処理と同様に電力見積もり演算を行い、電力見積もり結果を記憶部1050に記録する。
図1の記憶部1022内のネットリストの説明の通り、クロックツリー合成部1120やレイアウト設計部1121でバッファL7のように単純なツリー構造以外のバッファが挿入される。これらは多くの場合、クロックツリー合成部1120又はレイアウト設計部1121の設計方針や実装方法等に依存し、RTL設計データの段階ではよくわからない要因である。このため、RTL設計データを基に電力を見積もる場合には、クロックツリー構造等のクロックツリー合成部1120の基本処理を模擬して見積もる。例えば、クロックツリー構造で2分木で見積もらせたとしたら、電力見積もり部1150は図7に対して図9のような回路を内部的に構成して計算する。また、クロック系のワイヤロード(ワイヤ部分のキャパシタンス)もはっきりしないので、記憶部1003から適当なワイヤロードモデルを選択してこれを使う。
次に、ステップ4110では、記憶部3001内のD型フリップフロップ(DFF)のクロック端子のトグル用容量から求めた補正係数を見つけて、記憶部1050内のD型フリップフロップ(DFF)の電力値に掛ける。もし、D型フリップフロップ(DFF)の電力がD型フリップフロップ(DFF)のクロック部分の電力のみが入手できる場合にはこの部分にクロック端子のトグル用容量から求めた補正係数で補正をかけて、データ系については、データ端子のトグル用容量からもとめた補正値をかけて最終結果を出す。ANDセル等のセルについても、個別に同様の補正を行う。また、記憶部2010内のクロックツリー代表セルの補正係数を、記憶部1050内のクロックツリーのバッファの電力値に掛ける。なお、電力への影響が多いD型フリップフロップ(DFF)のみを補正してもよい。
次に、ステップ4111では、設計者の入力指示等に応じて、クロックツリーの重みを算出するか否かを選択する。算出する場合にはステップ4112に進み、算出しない場合にはステップ4113に進む。
ステップ4112では、記憶部2001のクロックツリーセル分布表に記載された総セル数(図8のバッファL0〜L7の数)を、電力見積もり部1150が見積もったクロックツリーのセル数(図9のバッファB0〜B6の数)で割り、クロックツリーセル係数を演算し、記憶部4010に記録する。例えば、図9の回路が電力見積もり部1150では推定されているのでバッファ数は7個である。一方、記憶部1022内のネットリストである図8ではバッファ数が8個である。よって、ステップ4112では、8/7より、1.14をクロックツリーセル係数として、記憶部4010に記録する。このクロックツリーセル係数は永続性をもち、次にRTL設計データを基に図1の記憶部1021及び1022のデータを作成する処理が行われるまで使いまわす。つまり、次のクロックツリー合成部1120及びレイアウト設計部1121等の処理がアプライされるまでは、ステップ4111は「NO」が選択される。
次に、ステップ4113では、記憶部1050内のクロックツリー部の電力値に、記憶部4010内のクロックツリーセル係数を掛けて補正する。例えば、クロックツリー部の電力が50μW だったとすると、クロックツリーセル係数が1.14なので、50×1.14 より57μWを最終電力見積もり結果として記憶部4020に記録する。
以上のように、物理設計後の記憶部1021及び1022のデータや論理合成後の記憶部1010のデータを抽象化して、電力見積もり部1150に入力することにより、精度を上げたデータを入手可能とし、更に、ステップ4110〜4113に示した補正処理によって更なる精度向上が図れる。ここでは、補正処理を電力見積もり部1150の外部の機能とするようなフローを示したが、電力見積もり部1150の一機能として含まれていて、記憶部4020内の電力見積結果を、記憶部1050内の電力見積結果とするような装置としてもよい。
本実施形態によれば、RTL設計データにはない要因が不明瞭であったが、物理設計データをアノテーションすることにより、バッファの入り具合や、スキュー調整等によるバッファ追加量が物理設計のプロトタイピングデータから持ってくることができるようになり、精度の向上及び根拠の明示化が可能になる。
ネットリスト生成手段は、図1の論理合成部1110(及びクロックツリー合成部1120及びレイアウト設計部1121)に対応し、第1のレジスタ転送レベル(RTL)設計データに対して論理合成処理(及びレイアウト設計処理)を行うことによりネットリスト設計データを生成する。代表セル決定手段は、図2のステップ2110又は図3のステップ3101に対応し、前記ネットリスト設計データ内のセル種別毎の代表セルを決定する。電力演算手段は、図4の電力見積もり部1150及びステップ4110,4113に対応し、第2のレジスタ転送レベル設計データに対して前記代表セルを用いた回路の電力を演算する。
前記代表セル決定手段は、前記ネットリスト設計データ内のセル種別毎に使用数が最も多いセルを代表セルとして決定する。
また、第1の補正係数演算手段は、図2のステップ2111又は図3のステップ3102に対応し、前記ネットリスト設計データの回路の電力に対する、前記ネットリスト設計データ内のセルを前記代表セルに置き換えた回路の電力の第1の補正係数を演算する。前記電力演算手段は、図4のステップ4110に対応し、前記第1の補正係数を用いて前記演算した電力を補正する。
前記第1の補正係数演算手段は、前記ネットリスト設計データの回路で使用するセルの個数及び前記セル毎の容量を基に前記第1の補正係数を演算する。
また、第2の補正係数演算手段は、図4のステップ4112に対応し、前記ネットリスト設計データの回路内のセル数に対する、前記第2のレジスタ転送レベル設計データに対して前記代表セルを用いた回路内のセル数の第2の補正係数を演算する。前記電力演算手段は、図4のステップ4113に対応し、前記第2の補正係数を用いて前記演算した電力を補正する。
本実施形態によれば、第2のレジスタ転送レベル設計データを基に電力を演算するので、短時間で電力を見積もることができる。また、代表セルを用いた回路の電力を演算することにより、高精度で電力を見積もることができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
電力演算装置の構成例を示す概念図である。 クロックツリー代表セルの決定及びその補正係数の演算方法を示すフローチャートである。 データ系代表セルの決定及びその補正係数の演算方法を示すフローチャートである。 電力演算装置による電力見積もり演算処理を示すフローチャートである。 記憶部1022内のネットリストのワイヤの名前を説明するための図である。 記憶部1001内のRTL設計データの例を示す図である。 記憶部1010内のネットリストの回路例を示す図である。 記憶部1022内のネットリストの回路例を示す図である。 図4の電力見積もり部の内部で生成されるクロックツリーの構成例を示す回路図である。 記憶部1021内のネット別キャパシタンスリストの例を示す図である。 記憶部1000内のクロックソースデータの例を示す図である。 ネットリストのセル表を示す図である。 記憶部2001内のクロックツリーセル分布表を示す図である。 記憶部2000にカスタムクロックツリーロードモデルの例を示す図である。 記憶部1002内のテクノロジライブラリの例を示す図である。 電力演算装置を構成するコンピュータのハードウェア構成例を示すブロック図である。
符号の説明
1100 RTLコーディング部
1140 論理シミュレーション部
1150 電力見積もり部
1601 バス
1602 CPU
1603 ROM
1604 RAM
1605 ネットワークインタフェース
1606 入力装置
1607 出力装置
1608 外部記憶装置

Claims (7)

  1. 第1のレジスタ転送レベル設計データに対して論理合成処理を行うことによりネットリスト設計データを生成するネットリスト生成手段と、
    前記ネットリスト設計データ内のセル種別毎の代表セルを決定する代表セル決定手段と、
    第2のレジスタ転送レベル設計データに対して前記代表セルを用いた回路の電力を演算する電力演算手段と
    を有することを特徴とする電力演算装置。
  2. さらに、前記ネットリスト設計データの回路の電力に対する、前記ネットリスト設計データ内のセルを前記代表セルに置き換えた回路の電力の第1の補正係数を演算する第1の補正係数演算手段を有し、
    前記電力演算手段は、前記第1の補正係数を用いて前記演算した電力を補正することを特徴とする請求項1記載の電力演算装置。
  3. 前記第1の補正係数演算手段は、前記ネットリスト設計データの回路で使用するセルの個数及び前記セル毎の容量を基に前記第1の補正係数を演算することを特徴とする請求項2記載の電力演算装置。
  4. さらに、前記ネットリスト設計データの回路内のセル数に対する、前記第2のレジスタ転送レベル設計データに対して前記代表セルを用いた回路内のセル数の第2の補正係数を演算する第2の補正係数演算手段を有し、
    前記電力演算手段は、前記第2の補正係数を用いて前記演算した電力を補正することを特徴とする請求項1〜3のいずれか1項に記載の電力演算装置。
  5. 前記代表セル決定手段は、前記ネットリスト設計データ内のセル種別毎に使用数が最も多いセルを代表セルとして決定することを特徴とする請求項1〜4のいずれか1項に記載の電力演算装置。
  6. 第1のレジスタ転送レベル設計データに対して論理合成処理を行うことによりネットリスト設計データを生成するネットリスト生成ステップと、
    前記ネットリスト設計データ内のセル種別毎の代表セルを決定する代表セル決定ステップと、
    第2のレジスタ転送レベル設計データに対して前記代表セルを用いた回路の電力を演算する電力演算ステップと
    を有することを特徴とする電力演算方法。
  7. 第1のレジスタ転送レベル設計データに対して論理合成処理を行うことによりネットリスト設計データを生成するネットリスト生成ステップと、
    前記ネットリスト設計データ内のセル種別毎の代表セルを決定する代表セル決定ステップと、
    第2のレジスタ転送レベル設計データに対して前記代表セルを用いた回路の電力を演算する電力演算ステップと
    をコンピュータに実行させるためのプログラム。
JP2007246038A 2007-09-21 2007-09-21 電力演算装置、方法及びプログラム Expired - Fee Related JP5029247B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007246038A JP5029247B2 (ja) 2007-09-21 2007-09-21 電力演算装置、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007246038A JP5029247B2 (ja) 2007-09-21 2007-09-21 電力演算装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2009075970A true JP2009075970A (ja) 2009-04-09
JP5029247B2 JP5029247B2 (ja) 2012-09-19

Family

ID=40610856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007246038A Expired - Fee Related JP5029247B2 (ja) 2007-09-21 2007-09-21 電力演算装置、方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5029247B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013061811A (ja) * 2011-09-13 2013-04-04 Fujitsu Ltd 消費電力解析方法および消費電力解析装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773232A (ja) * 1993-09-03 1995-03-17 Mitsubishi Electric Corp Hdl解析における回路情報抽出装置
JP2005293163A (ja) * 2004-03-31 2005-10-20 Nec Electronics Corp 消費電力計算方法及び装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773232A (ja) * 1993-09-03 1995-03-17 Mitsubishi Electric Corp Hdl解析における回路情報抽出装置
JP2005293163A (ja) * 2004-03-31 2005-10-20 Nec Electronics Corp 消費電力計算方法及び装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013061811A (ja) * 2011-09-13 2013-04-04 Fujitsu Ltd 消費電力解析方法および消費電力解析装置

Also Published As

Publication number Publication date
JP5029247B2 (ja) 2012-09-19

Similar Documents

Publication Publication Date Title
US6845494B2 (en) Method for generating design constraints for modules in a hierarchical integrated circuit design system
US9251300B2 (en) Methods and tools for designing integrated circuits with auto-pipelining capabilities
US20070276645A1 (en) Power modelling in circuit designs
US9785141B2 (en) Method, system, and computer program product for schematic driven, unified thermal and electromagnetic interference compliance analyses for electronic circuit designs
US10586003B1 (en) Circuit design using high level synthesis and linked hardware description language libraries
US8719752B1 (en) Hierarchical crosstalk noise analysis model generation
US8713506B2 (en) System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce dynamic power in an electronic circuit and an apparatus incorporating the same
US10275553B2 (en) Custom circuit power analysis
US20150269302A1 (en) Electromigration-aware layout generation
US9443050B2 (en) Low-voltage swing circuit modifications
CN112069763B (zh) 修正电路的方法
US6895524B2 (en) Circuit reduction technique for improving clock net analysis performance
JP4946573B2 (ja) デカップリングセル配置方法及びデカップリングセル配置装置
US7475367B2 (en) Memory power models related to access information and methods thereof
CN104981805A (zh) 自动时钟树布线规则生成
US20220075920A1 (en) Automated Debug of Falsified Power-Aware Formal Properties using Static Checker Results
US8281269B2 (en) Method of semiconductor integrated circuit device and program
US10437946B1 (en) Using implemented core sources for simulation
US9449127B1 (en) System for verifying timing constraints of IC design
US9021289B2 (en) Method and system for power estimation based on a number of signal changes
JP2012221389A (ja) 回路シミュレーション方法および回路シミュレーション装置
JP5029247B2 (ja) 電力演算装置、方法及びプログラム
US10515174B1 (en) Interface modeling for power analysis of an integrated circuit
US8818784B1 (en) Hardware description language (HDL) incorporating statistically derived data and related methods
US10606979B1 (en) Verifying equivalence of design latency

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120329

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: 20120529

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: 20120611

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees