JP2014016830A - 電力見積支援プログラム、電力見積支援装置および電力見積支援方法 - Google Patents

電力見積支援プログラム、電力見積支援装置および電力見積支援方法 Download PDF

Info

Publication number
JP2014016830A
JP2014016830A JP2012154068A JP2012154068A JP2014016830A JP 2014016830 A JP2014016830 A JP 2014016830A JP 2012154068 A JP2012154068 A JP 2012154068A JP 2012154068 A JP2012154068 A JP 2012154068A JP 2014016830 A JP2014016830 A JP 2014016830A
Authority
JP
Japan
Prior art keywords
signal
cell
information
data
circuit
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
JP2012154068A
Other languages
English (en)
Other versions
JP6051629B2 (ja
Inventor
Takayuki Sasaki
貴行 佐々木
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 JP2012154068A priority Critical patent/JP6051629B2/ja
Publication of JP2014016830A publication Critical patent/JP2014016830A/ja
Application granted granted Critical
Publication of JP6051629B2 publication Critical patent/JP6051629B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】レジスタ転送レベルの検証環境における電力パラメータの抽出を可能にすることにより、回路の消費電力の見積もりを支援すること。
【解決手段】電力見積支援装置100は、マッピング情報101を参照して、ネットリストNL上の観測信号を出力する第1のセルを起点として前段のセルを順次辿ることにより、RTL設計データRDの信号と対応関係を有するネットリストNLの信号が入力される第2のセルを検出する。電力見積支援装置100は、検出した第2のセルから第1のセルまでの部分回路をネットリストNLの中から抽出することにより、RTL設計データRDとネットリストNLとの差分を表す差分回路情報を作成する。電力見積支援装置100は、第2のセルに入力されるネットリストNLの信号と対応関係を有するRTL設計データRDの信号の信号名と、第2のセルとを対応付けて表す信号情報を作成する。
【選択図】図1

Description

本発明は、電力見積支援プログラム、電力見積支援装置および電力見積支援方法に関する。
従来、ゲートレベルを対象として被評価回路の消費電力を見積もる場合、例えば、消費電力の見積りに必要となる電力パラメータを抽出するために、論理合成後のネットリストやレイアウト後のネットリストを用いた機能検証が行われる。
関連する先行技術としては、例えば、エミュレータやFPGA(Field Programmable Gate Array)ボードを用いて、電力用の観測ポイントのデータを抽出するものがある。また、対象回路内の観測対象の信号をグルーピングして、複数の観測対象の動作回数を算出する計測回路を採用する技術がある。
特開2007−102337号公報 特開2009−53747号公報
しかしながら、従来技術では、消費電力の見積りに必要となる電力パラメータを抽出するために、被評価回路のネットリストを用いた機能検証を行う場合、RTL(Register Transfer Level)の検証環境では正常に動作しない場合がある。また、被評価回路のゲートレベルでの機能検証を行うための検証環境を新たに構築する場合は検証者の作業負荷が増大するという問題がある。
本発明は、上述した従来技術による問題点を解消するため、レジスタ転送レベルの検証環境における電力パラメータの抽出を可能にすることにより、回路の消費電力の見積もりを支援することができる電力見積支援プログラム、電力見積支援装置および電力見積支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得し、前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択し、取得した前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第1のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第2のセルを検出し、検出した前記第2のセルから前記第1のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成し、前記第2のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第2のセルとを対応付けて表す信号情報を作成し、作成した前記差分回路情報と前記信号情報とを関連付けて出力する電力見積支援プログラム、電力見積支援装置および電力見積支援方法が提案される。
本発明の一側面によれば、レジスタ転送レベルの検証環境における電力パラメータの抽出を可能にすることにより、回路の消費電力の見積もりを支援することができるという効果を奏する。
図1は、実施の形態にかかる電力見積支援方法の一実施例を示す説明図である。 図2は、電力見積装置200のハードウェア構成例を示すブロック図である。 図3は、電力見積装置200の機能的構成例を示すブロック図である。 図4は、マッピングデータMDの具体例を示す説明図である。 図5は、電力見積設定データSTの具体例を示す説明図である。 図6は、クロック起点データCKDの具体例を示す説明図である。 図7は、クロック起点親子関係データFDの具体例を示す説明図である。 図8は、計算範囲IDマップデータEDの具体例を示す説明図である。 図9は、計算範囲IDと部分クロックツリーIDの付与例を示す説明図である。 図10は、メモリ端子データMDの具体例を示す説明図である。 図11は、非クロックツリー観測ポイントデータODの具体例を示す説明図である。 図12は、電力係数(ユニットセル)データPUの具体例を示す説明図である。 図13は、電力係数(メモリ)データPMの具体例を示す説明図である。 図14は、差分回路データDFの作成例を示す説明図(その1)である。 図15は、差分回路データDFの作成例を示す説明図(その2)である。 図16は、差分回路データDFの作成例を示す説明図(その3)である。 図17は、差分回路の回路記述の具体例を示す説明図である。 図18は、差分回路のインスタンス記述の具体例を示す説明図である。 図19は、RTLのテストベンチの記述例を示す説明図である。 図20は、RTL参照信号/ポート番号関係表RPの具体例を示す説明図である。 図21は、観測信号/ポート番号関係表SPの具体例を示す説明図である。 図22は、計測回路計画MPの具体例を示す説明図である。 図23は、計測回路データKDのデータ構造例を示す説明図である。 図24は、計測回路インスタンスデータMIの具体例を示す説明図である。 図25は、最上位記述MHの具体例を示す説明図である。 図26は、計測回路計画MPの更新例を示す説明図である。 図27は、計測回路の回路構成例を示す説明図(その1)である。 図28は、計測回路の回路構成例を示す説明図(その2)である。 図29は、動的統計データERの具体例を示す説明図である。 図30は、動的統計データERに基づく対象回路の消費電力の見積例を示す説明図である。 図31は、電力見積データPEの出力例を示す説明図(その1)である。 図32は、電力見積データPEの出力例を示す説明図(その2)である。 図33は、電力見積データPEの出力例を示す説明図(その3)である。 図34は、電力見積装置200の電力見積処理手順の一例を示すフローチャートである。 図35は、基礎データ作成処理の具体的処理手順の一例を示すフローチャートである。
以下に添付図面を参照して、この発明にかかる電力見積支援プログラム、電力見積支援装置および電力見積支援方法の実施の形態を詳細に説明する。
(電力見積支援方法の一実施例)
図1は、実施の形態にかかる電力見積支援方法の一実施例を示す説明図である。図1において、電力見積支援装置100は、対象回路の消費電力の見積もりを支援するコンピュータである。
対象回路は、消費電力の見積もり対象となる回路であり、例えば、LSI(Large Scale Integrated circuit)である。対象回路の回路情報は、RTL設計データ、論理合成後のネットリスト、レイアウト後のネットリストと設計が進むにつれて詳細度が上がる傾向にある。また、対象回路の回路情報は、対象回路に新たな機能が追加されるなどして変化する場合がある。
ここで、RTL設計データ(以下、「RTL設計データRD」という)は、RTLで記述された対象回路の回路情報である。エミュレーションやHDL(Hardware Description Language)ソフトウェアシミュレータでは、例えば、論理合成可能なデータの集合を用いてシミュレーションする。すなわち、RTL設計データRDは、エミュレーションまたはHDLシミュレーションが可能かつ論理合成が可能な回路情報である。
また、ネットリストは、対象回路内のセル間の接続関係を表す情報である。セルは、例えば、NOTゲート、ANDゲート、配線、バッファ、INV(インバータ)、FF(フリップフロップ)などの回路素子である。具体的には、例えば、ネットリストは、RTL設計データRDを論理合成して変換した変換後の設計データ、あるいは、変換後の設計データをレイアウト工程において加工した設計データである。以下の説明では、「ネットリストNL」と表記した場合、対象回路のレイアウト後のネットリストを表すものとする。
RTL設計データRDの信号の波形データは、エミュレーションでの被検証データとなる。一方、対象回路の消費電力の見積もりを高精度に行う場合、消費電力の見積りに用いる波形データは、論理合成後のネットリストやレイアウト後のネットリストの信号の波形データであることが望ましい。
また、シミュレーションまたはエミュレーションのいずれであっても、検証環境を作成するのはRTLに限られることが多い。このため、電力見積もりのためのゲートレベルのシミュレーションを行う場合、ゲートレベルの検証環境の構築が電力見積もりのための追加工数となってしまう。
そこで、本実施の形態では、電力見積支援装置100は、RTL設計データRD上の信号に対応するネットリストNL上の信号が入力されるセルから、観測対象となる信号を出力するセルまでのパスをRTLとの差分回路として抽出する。これにより、RTL用の検証環境での電力見積に必要な電力パラメータの抽出を可能にする。以下、電力見積支援装置100の電力見積支援処理の処理手順の一例について説明する。
(1)電力見積支援装置100は、対象回路のRTL設計データRDとネットリストNLとを取得する。具体的には、例えば、電力見積支援装置100は、ユーザの操作入力により、対象回路のRTL設計データRDとネットリストNLとを取得することにしてもよい。
(2)電力見積支援装置100は、取得したRTL設計データRDとネットリストNLとに基づいて、マッピング情報101を作成する。マッピング情報101は、ネットリストNLの信号名とRTL設計データRDの信号名との対応関係を表す情報である。具体的には、例えば、マッピング情報101は、RTL設計データRDとネットリストNLとの間で同一の信号線を指す信号の対応関係を表すものである。
図1の例では、マッピング情報101には、ネットリストNLの信号名「A」とRTL設計データRDの信号名「a」との対応関係が表されている。また、ネットリストNLの信号名「B」とRTL設計データRDの信号名「b」との対応関係が表されている。ネットリストNLの信号名「C」とRTL設計データRDの信号名「c」との対応関係が表されている。
(3)電力見積支援装置100は、ネットリストNLの中から信号値の変化の観測対象となる観測信号を選択する。観測信号は、例えば、対象回路の消費電力の要因となるセルから出力されるクロック信号やデータ信号である。具体的には、例えば、観測信号は、CGIC(クロックゲーティングインテグレイティッドセル)から出力される信号やトグルレートが変化するセルから出力される信号などである。
CGICは、供給先へのクロック信号の供給を一時的に停止するセルである。CGICによれば、例えば、クロック信号の供給先となるFFの入力が変化しない場合に、そのFFへのクロック信号の供給を一時的に停止することにより、対象回路の消費電力を削減することができる。また、トグルレートは、信号の信号値が変化した単位時間当たりの回数を表すものである。
すなわち、CGICから出力される信号やトグルレートが変化するセルから出力される信号の波形データは、対象回路の消費電力を見積もる際の重要な指標となる。このため、電力見積支援装置100は、CGICから出力される信号やトグルレートが変化するセルから出力される信号を観測信号として選択することにしてもよい。
図1の例では、ネットリストNLに基づく対象回路に含まれるセルC1〜C6が表示されている。そして、対象回路内のセルC6から出力される信号sigが観測信号として選択されている。ただし、図面では、対象回路の一部を抜粋して表示している。
(4)電力見積支援装置100は、作成したマッピング情報101を参照して、ネットリストNL上の選択した観測信号を出力する第1のセルを起点として前段のセルを順次辿る。これにより、電力見積支援装置100は、RTL設計データRDの信号と対応関係を有するネットリストNLの信号が入力される第2のセルを検出する。
図1の例では、ネットリストNLのセルC1に入力される信号の信号名「A」とRTL設計データRDの信号名「a」とが対応している。また、ネットリストNLのセルC2に入力される信号の信号名「B」とRTL設計データRDの信号名「b」とが対応している。ネットリストNLのセルC3に入力される信号の信号名「C」とRTL設計データRDの信号名「c」とが対応している。また、セルC6から出力される信号sigが観測信号として選択されているため、セルC6が第1のセルとなる。このため、セルC6を起点として前段のセルを順次辿ることにより、セルC1、セルC2およびセルC3が第2のセルとして検出される。
(5)電力見積支援装置100は、検出した第2のセルから第1のセルまでの部分回路をネットリストNLの中から抽出することにより、RTL設計データRDとネットリストNLとの差分を表す差分回路情報を作成する。図1の例では、セルC1〜C6を含む部分回路102を表す差分回路情報103が作成される。
(6)電力見積支援装置100は、第2のセルに入力されるネットリストNLの信号と対応関係を有するRTL設計データRDの信号の信号名と、第2のセルとを対応付けて表す信号情報を作成する。具体的には、例えば、信号情報は、RTL設計データRDとネットリストNLとの差分を表す部分回路の入力端子と、該入力端子に入力される信号と対応関係を有するRTL設計データRDの信号の信号名とを対応付けて表す情報である。図1の例では、信号情報104が作成されている。
ここで、セルC1に入力されるネットリストNLの信号(信号名「A」)と対応関係を有するRTL設計データRDの信号の信号名は「a」である。また、セルC2に入力されるネットリストNLの信号(信号名「B」)と対応関係を有するRTL設計データRDの信号の信号名は「b」である。また、セルC3に入力されるネットリストNLの信号(信号名「C」)と対応関係を有するRTL設計データRDの信号の信号名は「c」である。
このため、信号情報104は、RTL設計データRDの信号の信号名「a」とセルC1とを対応付けて表す信号情報を含む。また、信号情報104は、RTL設計データRDの信号の信号名「b」とセルC2とを対応付けて表す信号情報を含む。また、信号情報104は、RTL設計データRDの信号の信号名「c」とセルC3とを対応付けて表す信号情報を含む。
(7)電力見積支援装置100は、作成した差分回路情報と信号情報とを関連付けて出力する。図1の例では、差分回路情報103と信号情報104とが関連付けて出力されることになる。
以上説明した、本実施の形態にかかる電力見積支援装置100によれば、RTL設計データRDとネットリストNLとの差分を表す差分回路情報を作成することができる。また、電力見積支援装置100によれば、第2のセルに入力されるネットリストNLの信号と対応関係を有するRTL設計データRDの信号の信号名と、第2のセルとを対応付けて表す信号情報を作成することができる。
これにより、例えば、部分回路102の各入力端子に入力される信号と対応関係を有するRTL設計データRDの信号の信号名「a,b,c」を特定することができる。このため、RTL用のテストベンチにおいて、RTL設計データRDと部分回路102とを適切に接続することができるようになる。
すなわち、RTL設計データRDと差分回路情報103とをRTL用のテストベンチに与えることにより、対象回路の論理シミュレーションの実行が可能となる。この結果、対象回路の消費電力を見積もる際の重要な指標となる信号、例えば、RTL設計データRDからは推測が難しい信号の波形データを取得可能となり、対象回路の電力見積もりを支援することができる。
以下の説明では、図1に示した電力見積支援装置100を、対象回路の消費電力を見積もる電力見積装置200に適用した場合について説明する。
(電力見積装置200のハードウェア構成例)
図2は、電力見積装置200のハードウェア構成例を示すブロック図である。図2において、電力見積装置200は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を有している。また、各構成部はバス200によってそれぞれ接続されている。
ここで、CPU201は、電力見積装置200の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、例えば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、例えば、モデムやLANアダプタなどを採用することができる。
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ212は、画像を光学的に読み取り、電力見積装置200内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、例えば、レーザプリンタやインクジェットプリンタを採用することができる。
なお、電力見積装置200は、上述した構成部のうち、例えば、光ディスクドライブ206、光ディスク207、スキャナ212、プリンタ213等を有していなくてもよい。
(電力見積装置200の機能的構成例)
つぎに、電力見積装置200の機能的構成例について説明する。図3は、電力見積装置200の機能的構成例を示すブロック図である。図3において、電力見積装置200は、取得部301と、マッピングデータ作成部302と、差分回路作成部303と、計測回路作成部304と、実行部305と、電力算出部306と、出力部307と、を含む構成である。取得部301〜出力部307は制御部となる機能であり、具体的には、例えば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F209により、その機能を実現する。また、各機能部の処理結果は、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。
取得部301は、対象回路のRTL設計データRDを取得する機能を有する。また、取得部301は、対象回路のネットリストNLを取得する機能を有する。具体的には、例えば、取得部301は、図2に示したキーボード210やマウス211を用いたユーザの操作入力により、RTL設計データRDおよびネットリストNLを取得する。
また、取得部301は、例えば、ネットワーク214を介して、外部のコンピュータからRTL設計データRDおよびネットリストNLを取得することにしてもよい。なお、取得部301は、例えば、取得したRTL設計データRDを論理合成することにより、ネットリストNLを取得することにしてもよい。ただし、この場合、ネットリストNLは、レイアウト前のネットリストとなる。
マッピングデータ作成部302は、対象回路のRTL設計データRDとネットリストNLとの間で同一の信号線を指す信号の対応関係を表すマッピングデータMDを作成する機能を有する。具体的には、例えば、マッピングデータ作成部302は、RTL設計データRDとネットリストNTを等価性検証ツールに与えて、ネットリストNLの信号名に一致するRTL設計データRDの信号名を検出することによりマッピングデータMDを作成する。なお、マッピングデータMDは、図1に示したマッピング情報101に相当する。
また、マッピングデータ作成部302は、論理合成ツールおよびユーザ定義による設計ルールにより、マッピングデータMDを作成することにしてもよい。例えば、RTL設計データRDのFFになる信号線名とネットリストNLの中の信号線名「+_reg」というFFの出力端子が対応するというルールがあれば、この対応関係を表す情報が作成される。ここで、マッピングデータMDの具体例について説明する。
図4は、マッピングデータMDの具体例を示す説明図である。図4において、マッピングデータMDは、対象回路のRTL設計データRDとネットリストNLとの間で同一の信号線を指す信号の対応関係を表す対応情報(例えば、対応情報400−1〜400−3)を有している。各対応情報には、CSV(Comma Separated Values)形式により、ネットリストNLの信号名に対応するRTL設計データRDの信号名が記述されている。
例えば、対応情報400−1によれば、対象回路のネットリストNLの信号名「MBAAA.a_register_req_0_.Q」とRTL設計データRDの信号名「MBAAA.a_register[0]」との対応関係を特定することができる。
図3の説明に戻り、差分回路作成部303は、ネットリストNLとマッピングデータMDとに基づいて、差分回路を作成する機能を有する。ここで、差分回路とは、RTL設計データRDとネットリストNLとの差分を表す部分回路である。
具体的には、例えば、差分回路作成部303は、対象回路の基礎データを作成する。ここで、基礎データとは、対象回路の論理シミュレーションや電力見積もりに用いられる情報である。基礎データは、例えば、後述するコンフィギュレーションデータCGと差分回路データDFとを含む。
コンフィギュレーションデータCGは、クロック起点データCKDと、計算範囲IDマップデータEDと、クロック起点親子関係データFDと、メモリ端子データMDと、非クロックツリー観測ポイントデータODと、電力係数(ユニットセル)データPUと、電力係数(メモリ)データPMと、差分回路コンフィギュレーションデータDCGと、を含むファイル群である。基礎データの作成例については、図5〜図21を用いて後述する。
計測回路作成部304は、観測信号の信号値の変化を計測する計測回路を作成する機能を有する。ここで、観測信号は、上述したように、対象回路の消費電力の要因となるセルから出力される信号である。計測回路は、例えば、観測信号の信号値が変化した回数を計測する回路である。すなわち、計測回路は、観測信号のトグルレートを計測するための回路である。
具体的には、例えば、計測回路作成部304は、計測回路計画MPに基づいて、計測回路を作成する。計測回路計画MPは、どのような計測回路を作成するのかを決める情報である。計測回路の作成例については、図22〜図28を用いて後述する。
実行部305は、RTL設計データRDに基づいて、対象回路の論理シミュレーションを実行する機能を有する。具体的には、例えば、実行部305は、後述の図19に示すようなRTL用のテストベンチに差分回路と計測回路とが実装された結果、RTL設計データRDに基づく対象回路の論理シミュレーションを実行する。
論理シミュレーションの実行結果には、観測信号の波形データに関する情報が含まれている。具体的には、例えば、論理シミュレーションの実行結果には、観測信号の信号値が変化した単位時間当たりの回数を表すトグルレートが含まれている。論理シミュレーションの実行結果を表す動的統計データERについては、図29を用いて後述する。
なお、論理シミュレーションは、エミュレータを用いて実行することにしてもよく、また、ソフトウェアの論理シミュレータを用いて実行することにしてもよい。エミュレータとは、FPGAやプロセッサなどを使ったシミュレーション専用のハードウェアである。
電力算出部306は、対象回路の消費電力を算出する機能を有する。具体的には、例えば、電力算出部306は、論理シミュレーションの実行結果を表す動的統計データERに基づいて、対象回路の消費電力を見積もる。動的統計データERに基づく対象回路の消費電力の見積例については、図30を用いて後述する。
出力部307は、算出された対象回路の消費電力を出力する機能を有する。具体的には、例えば、出力部307は、図31〜図33に示すような電力見積データPEを出力することにしてもよい。出力形式としては、例えば、ディスプレイ208への表示、プリンタ213への印刷出力、I/F209による外部装置への送信、RAM203、磁気ディスク205、光ディスク207などの記憶装置への記憶がある。
また、出力部307は、作成された差分回路(例えば、差分回路データDF、差分回路コンフィギュレーションデータDCG等)を出力することにしてもよい。また、出力部307は、作成された計測回路(例えば、計測回路計画MP、計測回路インスタンスデータMI、計測回路データKD等)を出力することにしてもよい。これにより、RTL設計データRDと差分回路データDFとに基づく論理シミュレーションを任意のタイミングで行うことができる。
(基礎データの作成例)
つぎに、図5〜図21を用いて基礎データの作成例について説明する。まず、電力見積用の設定を行うためのスクリプトについて説明する。
図5は、電力見積設定データSTの具体例を示す説明図である。図5において、電力見積設定データSTは、対象回路の消費電力を見積もる電力見積用の設定を行うスクリプトである。電力見積設定データSTは、例えば、ROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
まず、電力見積装置200は、例えば、電力見積設定データSTの処理スクリプト(2行目)を読み込む。つぎに、電力見積装置200は、電力見積もり対象となる対象回路のトップモジュール名を設定して、ネットリストNLと対応したテクノロジーライブラリTLBを読み込む。
ここで、テクノロジーライブラリTLBは、例えば、セルごとの電力特性に関する情報やワイヤロードモデルなどを有する情報である。セルの電力特性に関する情報には、例えば、セルの内部で1回のトグルで消費する電力量などが含まれている。テクノロジーライブラリTLBは、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
そして、電力見積装置200は、ネットリストNLを読み込み、クロックソース起点データCSを読み込み、配線容量データWDを読み込んで信号線に容量値を書きこむ。ここで、クロックソース起点データCSは、対象回路内のクロックソースの起点を示すSDC(Synopsys Design Constraint)ファイルである。
また、配線容量データWDは、レイアウト後の対象回路内の各セル間の配線の容量値を示す情報である。これにより、対象回路の消費電力を見積もる電力見積処理に必要なデータがメモリ(例えば、RAM203)上に展開され、電力見積処理を実行できる状態になる。電力見積装置200は、例えば、ユーザの操作入力により、クロックソース起点データCSおよび配線容量データWDを取得する。
なお、各配線の容量値は、例えば、ワイヤロードモデルと呼ばれる面積とファンアウトから算出されてもよく、また、PLE(Physical Layout Estimator)技術を用いて算出されることにしてもよい。ワイヤロードモデルは、例えば、テクノロジーライブラリTLBに記述されている。
つぎに、電力見積装置200は、インスタンス名および深さを指定する(fpa2::calc_inst::setup)。これは、指定したインスタンス名から指定した深さまでにあるインスタンスで指定値以上の面積があるインスタンスを計算範囲とする処理である。これにより、消費電力を見積もる粒度を指定することができる。インスタンスは、例えば、対象回路内のセルやマクロである。
また、電力見積装置200は、差分回路の作成が必要な場合は「setup_mapping_data」をコールしてマッピングデータMDを読み込む。そして、電力見積装置200は、「fpa2::std::run」を実行する。これにより、基礎データを作成する基礎データ作成処理が実行されて基礎データが作成されることになる。
以下、基礎データ作成処理の具体的な処理内容について説明する。
まず、電力見積装置200は、対象回路のDBにデータフィールドを追加する。これにより、対象回路のセルや入出力端子等に各種情報を設定することができる。また、セルや入出力端子等に数値を設定する場合、予めデフォルト値(例えば、「−1」)を設定することができる。
つぎに、電力見積装置200は、ネットリストNLおよびクロックソース起点データCSに基づいて、対象回路のクロックツリー解析を行うことにより、クロック起点データCKDを作成する。ここで、クロックツリーとは、対象回路のクロックソースから辿ることができる出力端子を有するセルの集合である。クロックツリー解析により、対象回路内の出力端子群を、クロックソースから辿ることができる出力端子群と、該出力端子群とは異なる残余の出力端子群とに分類することができる。
また、クロック起点データCKDとは、部分クロックツリーと信号名とを対応付けて表す情報である。部分クロックツリーは、クロックツリーのうちトグルレートが同じであることが保証されているセル群を含む部分である。クロック起点親子関係データFDは、対象回路内の部分クロックツリーの親子関係に関するファイルである。
具体的には、例えば、電力見積装置200は、クロックソース起点データCSで指定されるクロックソースの起点からセルを順次辿っていき、セルの端子にID番号を付与する。より具体的には、例えば、電力見積装置200は、クロックソースの起点から順にセルを辿っていき、インバータとバッファ以外のセルを検出したらID番号を変更して、変更後のID番号をセルの出力端子に付与する。
また、電力見積装置200は、セルがFF、CGIC、RAM/ROMの場合は、セルの入力端子にも同じID番号を付与する。なお、電力見積装置200は、セルがCGICか否かの判断は、例えば、セルにCGIC特有のデータフィールドがあるか否かによって判断することができる。
これにより、トグルレートが同じになるクロックツリー上のセルの出力端子と、FF、CGIC、RAM/ROMの入力端子に同じID番号を付与することができる。なお、クロックツリーとは異なる部分、すなわち、非クロックツリーのセルの端子には、例えば、ID番号「−1」が付与される。
以下の説明では、部分クロックツリーの識別子を「部分クロックツリーID」または「クロックエリアID」と表記する場合がある。
つぎに、電力見積装置200は、インスタンスのクロックエリアIDを、セルの各端子に付与したID番号を参照して設定する。具体的には、例えば、電力見積装置200は、出力端子にID番号が付与されている端子の一覧を取り出して、インスタンスに付与し、更に入力端子にID番号が付与されている場合にはその番号をインスタンスに付与する。ここで、クロック起点データCKDおよびクロック起点親子関係データFDの具体例について説明する。
図6は、クロック起点データCKDの具体例を示す説明図である。図6において、クロック起点データCKDは、CSV形式により、部分クロックツリーIDと信号名とをカンマ区切りで対応付けて表すクロック起点情報(例えば、クロック起点情報600−1〜600−10)を有している。
ここで、信号名は、部分クロックツリーに含まれる信号のうちの代表信号の信号名である。代表信号は、例えば、ID番号が変更されるセルの出力端子から出力される信号、すなわち、トグルレートが変わるセルの出力端子名である。例えば、クロック起点情報600−1によれば、部分クロックツリーID「0」と信号名「MB8AC0120QU8L・・・」との対応関係を特定することができる。
図7は、クロック起点親子関係データFDの具体例を示す説明図である。図7において、クロック起点親子関係データFDは、CSV形式により、親となる部分クロックツリーIDと、子となる部分クロックツリーIDとを対応付けて表す親子関係情報(例えば、親子関係情報700−1)を有している。
図7の例では、子となる部分クロックツリーIDの区切り文字は空白である。例えば、親子関係情報700−1によれば、部分クロックツリーID「0」の子となる部分クロックツリーID「1,2,3,…,81」を特定することができる。
基礎データ作成処理の説明に戻り、電力見積装置200は、対象回路上の計算範囲を指定する。計算範囲は、対象回路上の領域のうち電力見積もり対象となる領域である。具体的には、例えば、電力見積装置200は、キーボード210やマウス211を用いたユーザの操作入力により、対象回路上の計算範囲を指定して計算範囲IDを付与する。
より具体的には、例えば、電力見積装置200は、ユーザの操作入力により、電力見積もり対象となるインスタンスへのパスを指定する。そして、電力見積装置200は、深さが「0」より大きい場合には指定されたインスタンスからみて、その深さまでで所定値よりも面積が大きいインスタンスを計算範囲として指定して計算範囲IDを付与する。
これにより、計算範囲IDとインスタンス名とを対応付けて表す計算範囲IDマップデータEDが作成される。ここで、計算範囲IDマップデータの具体例について説明する。
図8は、計算範囲IDマップデータEDの具体例を示す説明図である。図8において、計算範囲IDマップデータEDは、CSV形式により、計算範囲IDとインスタンス名とデバッグ用データ(2個)とをカンマ区切りで対応付けて表す計算範囲情報(例えば、計算範囲情報800−1〜800−8)を有している。
インスタンス名は、例えば、セルやマクロのインスタンス名や階層インスタンスのインスタンス名である。例えば、計算範囲情報800−1によれば、計算範囲ID「0」とインスタンス名「MB8AC0120QU8L」とデバッグ用データ「726159993.0」および「482320392.0」との対応関係を特定することができる。ここで、計算範囲IDと部分クロックツリーIDの付与例について説明する。
図9は、計算範囲IDと部分クロックツリーIDの付与例を示す説明図である。図9において、太線の四角の囲み枠は、計算範囲に対応するインスタンスを表している。図9の例では、0番から3番の計算範囲が指定されている。細線の四角の囲み枠は、FFを表している。
丸は、クロック起点を表している。図9の例では、1番から4番のクロック起点が示されている。丸からつながる三角は、部分クロックツリーを表している。図9中、(N,M)という表記は、(計算範囲ID,部分クロックツリーID)を表している。
基礎データ作成処理の説明に戻り、電力見積装置200は、対象回路からのRAM/ROMの抽出を行う。そして、電力見積装置200は、RAM/ROMへのアクセス回数がわかる信号のセットを指定する。この結果、メモリ端子データMDが作成される。メモリ端子データMDは、対象回路内のメモリのインスタンス名と各ポートのアクセス回数をカウントする式が記述されたファイルである。ここで、メモリ端子データMDの具体例について説明する。
図10は、メモリ端子データMDの具体例を示す説明図である。図10において、メモリ端子データMDは、XML(Extensible Markup Language)形式により、対象回路内の各メモリのメモリ情報(例えば、メモリ情報1000−1,1000−2)を有している。
また、各メモリ情報は、一つのインスタンスに関する情報の集まりを示している。ここで、memIDは、メモリのIDである。calcInstIdは、インスタンスが属する計算範囲IDである。nameは、インスタンスの名称である。
また、各メモリ情報は、各メモリのポート情報(例えば、ポート情報1000−1−1,1000−1−2)を有している。ここで、memIDは、メモリのIDである。calcInstIdは、インスタンスが属する計算範囲IDである。signalは、ポートへのアクセス回数がわかる信号である。メモリ端子データMDによれば、対象回路内のメモリの各ポートのアクセス回数をカウントする式を特定することができる。
基礎データ作成処理の説明に戻り、電力見積装置200は、対象回路から非クロックツリーの観測信号を抽出する。具体的には、例えば、電力見積装置200は、ネットリストNLを参照して、非クロックツリーの信号のうち比率rの信号をランダムに選択することにより、非クロックツリーの観測信号を抽出する。
具体的には、例えば、電力見積装置200は、非クロックツリーの中からいずれかの出力端子をランダムに選択する。この出力端子は、クロックソースから辿ることができない出力端子である。そして、電力見積装置200は、非クロックツリーの中から選択した出力端子の個数が閾値未満か否かを判断する。
閾値は、例えば、非クロックツリーに含まれる出力端子の総数、すなわち、クロックソースから辿ることができない出力端子の総数に比率rを掛けることにより得られる値である。ここで、選択した出力端子の個数が閾値未満の場合、電力見積装置200は、非クロックツリーの中から未選択の出力端子をランダムに選択する。これにより、非クロックツリーに含まれる信号のうちの比率rの信号をランダムに選択することができ、非クロックツリーの信号を間引くことができる。
比率rは、予め設定されてROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。比率rは、例えば、2[%]である。なお、電力見積装置200は、対象回路内の指定された計算範囲ごとに、非クロックツリーの信号のうち比率rの信号をランダムに選択することにしてもよい。
この結果、非クロックツリー観測ポイントデータODが作成される。非クロックツリー観測ポイントデータODは、各々の計算範囲で観測すべき信号をリスト化したファイルである。ここで、非クロックツリー観測ポイントデータODの具体例について説明する。
図11は、非クロックツリー観測ポイントデータODの具体例を示す説明図である。図11において、非クロックツリー観測ポイントデータODは、CSV形式により、計算範囲IDと観測すべき信号名とを対応付けて表す観測ポイント情報(例えば、観測ポイント情報1100−1〜1100−10)を有している。
例えば、観測ポイント情報1100−1によれば、計算範囲ID「0」の計算範囲において観測すべき観測信号の信号名「MB8AC0120QU8L・・・」を特定することができる。
基礎データ作成処理の説明に戻り、電力見積装置200は、対象回路内のユニットセルおよびメモリの電力係数を算出する。ここで、ユニットセルとは、ANDゲート、FFなどのセルである。具体的には、例えば、電力見積装置200は、クロックツリー系のトグルレートと非クロックツリー系のトグルレートにそれぞれ固定値を与えて電力値を求めることにより、ユニットセルおよびメモリの電力係数を算出することにしてもよい。例えば、クロックツリー系のトグルレートの固定値は、「0.2」であり、非クロックツリー系のトグルレートの固定値は「0.1」である。
この結果、電力係数(ユニットセル)データPUおよび電力係数(メモリ)データPMが作成される。電力係数(ユニットセル)データPUは、対象回路内のユニットセルの電力係数の値が記述されたファイルである。電力係数(メモリ)データPMは、対象回路内のメモリの電力係数の値が記述されたファイルである。ここで、電力係数(ユニットセル)データPUおよび電力係数(メモリ)データPMの具体例について説明する。
図12は、電力係数(ユニットセル)データPUの具体例を示す説明図である。図12において、電力係数(ユニットセル)データPUは、CSV形式により、回路範囲と電力係数値と補足情報とを対応付けて表す電力係数情報(例えば、電力係数情報1200−1〜1200−10)を有している。
電力係数情報のうち、カンマで区切られた1番目と2番目の情報が回路範囲を表している。具体的には、1番目の情報が計算範囲IDを表し、2番目の情報が部分クロックツリーIDを表している。また、電力係数情報のうち、カンマで区切られた3番目〜6番目の情報が電力係数値である。
具体的には、3番目の情報がクロックツリーに含まれるセル群のうちのFFではないセルの電力係数値である。4番目の情報が非クロックツリーに含まれるセル群のうちのFFではないセルの電力係数値である。5番目の情報が非クロックツリーに含まれるセル群のうちのFFの電力係数値である。6番目の情報が非クロックツリーに含まれるセル群のうちのFFの電力係数値である。また、電力係数情報のうち、カンマで区切られた7番目〜11番目の情報がデバッグ用の補足情報である。
例えば、電力係数情報1200−1によれば、計算範囲ID「0」および部分クロックツリーID「−1」から特定される回路範囲の各種セルの電力係数値を特定することができる。なお、部分クロックツリーID「−1」は、非クロックツリー系を表している。
図13は、電力係数(メモリ)データPMの具体例を示す説明図である。図13において、電力係数(メモリ)データPMは、CSV形式により、メモリ名(例えば、RAM名)と電力係数値とを対応付けて表す電力係数情報(例えば、電力係数情報1300−1〜1300−10)を有している。
電力係数値は、例えば、1ポート当たりの電力値であり、リードとライトの平均値である。例えば、電力係数情報1300−1によれば、RAM名「MB8AC0120QU8L/・・・」の電力係数値「2294333.000000」を特定することができる。
基礎データ作成処理の説明に戻り、電力見積装置200は、RTL設計データRDとネットリストNLとの差分回路を表す差分回路データDFを作成する。ここで、図14〜図18を用いて、差分回路データDFの作成例について説明する。
図14〜図16は、差分回路データDFの作成例を示す説明図である。図14の(i)において、ネットリストNLに基づく、対象回路内のセルC1〜C11と、セル間の接続関係を表す配線w1〜w10と、各セルC1〜C11の出力端子p1〜p11とが示されている。なお、図面では、対象回路の一部を抜粋して表示している。
図14の(ii)において、電力見積装置200は、各セルC1〜C11の出力端子p1〜p11にワイヤID(図中、「wire_id」)を付与する。ワイヤIDは、セル間の配線を識別する識別子である。図14の(ii)の例では、各セルC1〜C11の出力端子p1〜p11にワイヤIDのデフォルト値「−1」が付与されている。
図15の(iii)において、電力見積装置200は、マッピングデータMDを参照して、ネットリストNL上の信号の信号名うち、RTL設計データRD上の信号の信号名に対応する信号の信号名を特定する。そして、電力見積装置200は、特定した信号名の信号を出力する出力端子を端点とするネットリストNL上の配線に、対応するRTL設計データRDの信号名を付与する。
図15の(iii)の例では、配線w1にRTL設計データRDの信号名「A[0]」が付与され、配線w2にRTL設計データRDの信号名「A[1]」が付与されている。また、配線w3にRTL設計データRDの信号名「B[0]」が付与され、配線w4にRTL設計データRDの信号名「B[1]」が付与され、配線w5にRTL設計データRDの信号名「B[2]」が付与されている。
図15の(iv)において、電力見積装置200は、クロック起点データCKDおよび非クロックツリー観測ポイントデータODを参照して、観測対象となる観測信号を選択する。観測信号は、例えば、部分クロックツリーに含まれる信号のうちの代表信号および非クロックツリーの中からランダムに選択された信号である。
図15の(iv)の例では、セルC9の出力端子p9から出力される観測信号s1が選択されている(図15(iv)中、太線)。この場合、電力見積装置200は、例えば、観測信号s1を出力する出力端子p9(または、配線w9)をドライブして、出力端子p9のワイヤIDにID番号を付与する。図15の(iv)の例では、出力端子p9のワイヤIDにID番号「0」が付与されている。
図16の(v)において、電力見積装置200は、ネットリストNL上の観測信号を出力するセルから後段のセルを順次辿ることにより、RTL設計データRD上の信号の信号名に対応する信号名の信号を出力するセルを検出する。
具体的には、例えば、電力見積装置200は、ネットリストNLを参照して、ドライブした出力端子p9(または、配線w9)から深さ「1」のファンインの端子一覧を特定する。つぎに、電力見積装置200は、特定した端子一覧の中から出力端子を選択して、選択した出力端子のワイヤIDにID番号を付与する。
そして、電力見積装置200は、選択した出力端子を端点とする配線にRTL設計データRDの信号名が付与されているか否かを判断する。電力見積装置200は、例えば、RTL設計データRDの信号名が付与された配線が検出されるまで、選択した出力端子を起点とする深さ「1」のファンインの端子一覧の特定および出力端子のワイヤIDへのID番号の付与を繰り返す。
図16の(v)の例では、出力端子p6のワイヤIDにID番号「1」が付与されている。また、出力端子p7のワイヤIDにID番号「2」が付与されている。この時点では、RTL設計データRDの信号名が付与された配線は未検出である。
図16の(vi)の例では、出力端子p1のワイヤIDにID番号「3」が付与されている。また、出力端子p2のワイヤIDにID番号「4」が付与されている。また、出力端子p3のワイヤIDにID番号「5」が付与されている。また、RTL設計データRDの信号名が付与された配線w1,w2,w3が検出されている。
そして、電力見積装置200は、選択した観測信号に対応する、RTL設計データRDとネットリストNLとの差分回路を表す差分回路データDFを作成する。具体的には、例えば、まず、電力見積装置200は、対象回路の中からワイヤIDにID番号(デフォルト値以外のID番号)が付与された出力端子を抽出する。より具体的には、例えば、電力見積装置200は、対象回路の中からワイヤIDが非負数の出力端子を抽出する。図16の(iv)の例では、出力端子p1,p2,p3,p6,p7,p9が抽出される。
ここで、観測信号s1は、RTL設計データRDに含まれていない信号名の信号である。また、出力端子p1,p2,p3は、RTL設計データRDの信号名が付与された配線w1,w2,w3の端点である。このため、観測信号s1に対応する差分回路は、出力端子p6,p7,p9を有するセルC6,C7,C9を含む部分回路となる。
ここで、差分回路データDFの具体例について説明する。差分回路データDFは、差分回路の回路記述とインスタンス記述とを含む。
図17は、差分回路の回路記述の具体例を示す説明図である。図17において、回路記述1700は、RTL設計データRDとネットリストNLとの差分回路を表すロジックコーンを含む。ロジックコーンは、例えば、図16の(vi)に示した観測信号s1が選択された場合の例では、セルC6,C7,C9を含む部分回路となる。
具体的には、例えば、回路記述1700は、差分回路の出力端子に接続されている配線のワイヤIDを表す記述を含む。図16の(vi)に示した例では、差分回路の出力端子p9に接続されている配線のワイヤID「0」を表す記述が含まれる。また、回路記述1700は、差分回路の各々の入力端子に接続されている各々の配線のワイヤIDを表す記述を含む。図16の(vi)に示した例では、差分回路の各々の入力端子に接続されている各々の配線のワイヤID「3」、「4」および「5」を表す記述が含まれる。
また、回路記述1700は、差分回路に含まれる各セルに接続されている配線のワイヤIDを表す記述を含む。図16の(vi)に示した例では、差分回路に含まれるセルC9に接続されている配線のワイヤID「0」、「1」および「2」を表す記述が含まれる。また、差分回路に含まれるセルC6に接続されている配線のワイヤID「1」および「3」を表す記述が含まれる。また、差分回路に含まれるセルC7に接続されている配線のワイヤID「2」、「4」および「5」を表す記述が含まれる。
例えば、図16の場合、差分回路の入力ポート数は3、出力ポート数は1なので、入出力の端子はinput[2:0]in_data,output[0:0]out_dataとなる。また、wire_idは0〜5までの合計6個あるので、これらに対応するワイヤを宣言する。例えば、wire[0:5] internal_wire;とする。in_dataのインデックス0,1,2に対応するポートp1,p2,p3とした場合、assign internal_wire[3]=in_data[0];assign internal_wire[4]=in_data[1];assign internal_wire[5]=in_data[2];という記述を記載する。同様に、出力についてはassign out_data[0]=internal_wire[0];という記述を記載する。
セルのインスタンスはもとの記述において、例えば、C3についてはBUF U3(.A(w1),.Y(w6))というように記載されている。従って、インスタンス名の一意名を生成して、C3に対応する記述として、BUF inst_0000(.A(.internal_wire[3]),.Y(internal_wire_[1]))と生成する。他のインスタンスについても同様である。このようにすることで、平坦化した回路を生成でき、ロジックコーン部分の切り出しが行えて、切り出した記述が1700の切り出したロジックコーンの記述の生成が行える。
図18は、差分回路のインスタンス記述の具体例を示す説明図である。図18において、インスタンス記述1800は、差分回路がインスタンスされているコードを表している。具体的には、例えば、インスタンス記述1800には、差分回路をインスタンスしたモジュールに与えるインスタンス名が絶対パスで与えられる。
例えば、RTLのテストベンチに「diff_circuit」という名前で差分回路を置く場合、シミュレーション環境における被評価回路(対象回路)のトップのモジュールへの絶対パス(例えば、testbench.target)が指定される。この際、シミュレーション環境で階層参照可能な信号に書き換えることにより、インスタンス記述1800が作成される。
回路記述1700およびインスタンス記述1800によれば、差分回路の出力(例えば、out_data)に差分回路の出力信号が出力されることになる。ここで、RTLのテストベンチの記述例について説明する。なお、RTLのテストベンチは、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
図19は、RTLのテストベンチの記述例を示す説明図である。図19において、記述1900は、RTLのテストベンチに含まれる記述であり、RTLのテストベンチ中に、後述する計測回路および差分回路をインスタンスするためのものである。図面では、RTLのテストベンチの一部を抜粋して表示している。なお、差分回路がない場合は計測回路のみに関する記述があればよい。
電力見積装置200は、例えば、クロック起点データCKDおよび非クロックツリー観測ポイントデータODの中から選択されていない未選択の観測信号がなくなるまで、観測信号を選択して差分回路を作成する処理を繰り返し行う。この際、電力見積装置200は、観測信号ごとの差分回路データDFを作成してもよい。ただし、選択された観測信号の信号名に対応する信号名がRTL設計データRDに含まれる場合、差分回路データDFの作成は行われない。
また、電力見積装置200は、クロック起点データCKDおよび非クロックツリー観測ポイントデータODの中から選択されていない未選択の観測信号がなくなるまで、図15および図16に示したような処理を行った後、差分回路データDFを作成してもよい。この場合、対象回路に対して一つの差分回路データDFが作成される。これにより、観測信号ごとの差分回路データDFを作成する場合に比べて、差分回路間の重複部分を排除することができ、差分回路の回路量を削減することができる。
また、電力見積装置200は、作成した差分回路データDFに対応する差分回路コンフィギュレーションデータDCGを作成する。ここで、差分回路コンフィギュレーションデータDCGは、クロックツリー観測信号/ポート番号関係表CPと、非クロックツリー観測信号/ポート番号関係表NCPと、RTL参照信号/ポート番号関係表RPとを含む。
ここでは、差分回路を1モジュールとし、クロックツリー観測信号/ポート番号関係表CPと、非クロックツリー観測信号/ポート番号関係表NCPとを区別しない場合を例に挙げて説明する。具体的には、クロックツリーまたは非クロックツリーのいずれかの観測信号とポート番号とが関係付けられた関係表を「観測信号/ポート番号関係表SP」とする。なお、クロックツリーの観測信号は、上述したように、部分クロックツリーに含まれる信号のうちの代表信号である。
具体的には、例えば、電力見積装置200は、RTL設計データRDの信号名が付与されている配線の端点となる入力端子と、RTL設計データRDの信号名と対応付けて表すRTL参照信号/ポート番号関係表RPを作成する。ここで、RTL参照信号/ポート番号関係表RPの具体例について説明する。
図20は、RTL参照信号/ポート番号関係表RPの具体例を示す説明図である。図20において、RTL参照信号/ポート番号関係表RPは、差分回路の入力端子のポート番号と、RTL設計データRD上の信号の信号名との関係を示す情報である。なお、RTL参照信号/ポート番号関係表RPは、図1に示した信号情報104に相当する。
RTL参照信号/ポート番号関係表RPによれば、差分回路の入力端子のポート番号「0」と、RTL設計データRD上の信号の信号名「TOP.A.B.C[0]」との関係を特定することができる。また、差分回路の入力端子のポート番号「1」と、RTL設計データRD上の信号の信号名「TOP.A.B.EN_A」との関係を特定することができる。
また、電力見積装置200は、選択した観測信号と、観測信号を出力する出力端子とを対応付けて表す観測信号/ポート番号関係表SPを作成する。ここで、観測信号/ポート番号関係表SPの具体例について説明する。
図21は、観測信号/ポート番号関係表SPの具体例を示す説明図である。図21において、観測信号/ポート番号関係表SPは、差分回路の出力端子のポート番号と、ネットリストNL上の観測信号の信号名との関係を示す情報である。
観測信号/ポート番号関係表SPによれば、差分回路の出力端子のポート番号「0」と、観測信号の信号名「TOP.A.B.s0」との関係を特定することができる。また、差分回路の出力端子のポート番号「1」と、観測信号の信号名「TOP.A.B.s10」との関係を特定することができる。
すなわち、観測信号/ポート番号関係表SPおよびRTL参照信号/ポート番号関係表RPによれば、差分回路のどのポート番号と、どの信号がつながれるべきかを特定することができる。
(計測回路の作成例)
つぎに、計測回路の作成例について説明する。まず、計測回路作成部304は、計測回路の計測回路計画MPを作成する。具体的には、例えば、計測回路作成部304は、計算範囲IDマップデータEDとクロック起点データCKDと非クロックツリー観測ポイントデータODとメモリ端子データMDと電力係数(ユニットセル)データPUとに基づいて、計測回路計画MPを作成する。
図22は、計測回路計画MPの具体例を示す説明図である。図22において、計測回路計画MPは、どのような計測回路を作成するのかを決める情報である。計測回路計画MPには、例えば、コアエレメント1個当たりに接続してよい信号数の上限やコアにいれてよいコアエレメントの上限値やグルーピングの条件が記述されている。
グルーピングの条件は、例えば、クロックツリーに含まれる観測信号をグルーピング対象とする条件である。また、グルーピング対象となる信号が代表信号となる部分クロックツリーが1つの計算範囲IDを持ち、全クロックツリーの電力係数の合計値に対して、その部分クロックツリーの電力係数がbound_ratio以下となる条件である。また、同一のコアに含まれるセルには宣言された順にアドレスが振られるものとし、先頭を0とする条件である。これにより、アドレスマップも同時に決めることができる。
つぎに、計測回路作成部304は、計測回路の計測回路データKDを作成する。ここで、計測回路データKDのデータ構造について説明する。
図23は、計測回路データKDのデータ構造例を示す説明図である。図23において、計測回路データKDは、計測回路インスタンスデータMIと、コア記述CAと、最上位記述MHと、を含む。最上位記述MHは、例えば、シミュレーション環境に計測回路をインスタンスするための記述である。
計測回路インスタンスデータMIは、例えば、シミュレーション環境に計測回路に含まれるコアをインスタンスするための記述である。計測回路インスタンスデータMIでは、階層参照する信号の解決を行う。コア記述CAは、計測回路に含まれるコアに関する記述である。ここで、計測回路インスタンスデータMIおよび最上位記述MHの具体例について説明する。
図24は、計測回路インスタンスデータMIの具体例を示す説明図である。図24において、計測回路インスタンスデータMIには、例えば、サンプリングする区間の最大値やサンプリング期間の指定で許容すべきサイクル数が記述されている。また、計測回路計画MPで決まった計測ポイントの信号名の先頭のモジュール名をトップモジュールへのパスに置き換え、設定値にあった値を計測部品にアサインする記述が含まれている。
図25は、最上位記述MHの具体例を示す説明図である。図25において、最上位記述MHは、RTLのテストベンチによってインスタンスされ、計測回路をインスタンスするための記述である。
このように、計測回路計画MPに基づいて、セルのインスタンスと階層参照との結線を行い、設定値でbundle_posedge_counter,RAM,BUS,コントローラのパラメータ値を決めている。
また、計測回路作成部304は、差分回路が作成された場合、クロックツリー観測信号/ポート番号関係表CPと非クロックツリー観測信号/ポート番号関係表NCPとに基づいて、作成された差分回路に合わせて計測回路データKDを修正する。
例えば、計測回路データKDの参照先は、電力見積用のネットリストNLの信号になっている。このため、計測回路作成部304は、例えば、「TOP.A.B.s0」を「testbench.target.A.B.s0」に変換して、計測回路データKD中の「testbench.target.A.B.s0」の記述を「testbench.diff_circuit.inst.out_data[0]」に置き換える。
同様に、計測回路作成部304は、「TOP.A.B.s10」から置換文字列である「testbench.target.A.B.s10」を得て、計測回路データKD中の「testbench.target.A.B.s10」の記述を「testbench.diff_circuit.inst.out_data[1]」に置き換える。これにより、差分回路に合わせて計測回路データKDを修正することができる。
最後に、計測回路作成部304は、計測回路計画MPに計測回路の情報を付加することにより、計測回路計画MPを更新する。ここで、計測回路計画MPの更新例について説明する。
図26は、計測回路計画MPの更新例を示す説明図である。図26において、計測回路計画MPは、計測回路の情報(図26中、下線部分)が付加された更新後の計測回路計画MPである。図面では、計測回路計画MPの一部を抜粋して表示している。
なお、計測回路の作成については、例えば、特開2007−102337号公報を参照することができる。また、論理シミュレーションをソフトウェアシミュレータで実行する場合には、計測回路中のバスやRAMは不要である。また、計測回路作成部304は、グルーピング回路を用いることにより、計測回路の回路量を削減することにしてもよい。なお、グルーピング回路を用いた計測回路量の削減については、例えば、特開2009−053747号公報を参照することができる。ここで、計測回路の具体例について説明する。
図27および図28は、計測回路の回路構成例を示す説明図である。図27において、計測回路2701は、RTL設計データRDとネットリストNLとの差分回路が作成されなかった場合の観測信号の信号値が変化した回数を計測する回路である。被評価回路2702は、消費電力の見積もり対象となる対象回路を表している。
計測回路2701には、各コアを制御する共通のコントローラがあり、各コアにはデータを保持するためのRAMと、RAMにデータを書き込むためのバスが1つずつある。Counterは、0からバスに接続可能な計測数のMax値−1のアドレスとその時を送る。これにより、bundle_posedge_counterの中でバスに書き込むべきデータを保持するレジスタの値の転送が行われる。
なお、計測回路計画MPにおけるコア、コアエレメントは、計測回路2701中のbundle_posedge_counterにつながれる信号の集まりを指している。
また、図28において、計測回路2801は、RTL設計データRDとネットリストNLとの差分回路が作成された場合の観測信号の信号値が変化した回数を計測する回路である。差分回路インスタンス回路2802は、差分回路がインスタンスされた回路である。被評価回路2803は、消費電力の見積もり対象となる対象回路を表している。
(動的統計データERの具体例)
図29は、動的統計データERの具体例を示す説明図である。図29において、動的統計データERは、論理シミュレーションの実行結果を表す、あるコアのダンプデータである。コアエレメント(CE)の最大数を「1024」にした場合、メモリアドレスは、0x400(=1024)ずつ統計データが格納される。
addressには、(address>>10)回目の(address&(1024−1))番目のCEの結果が格納される。また、0x0〜0x399は、CEが計算中に初期値が書き込まれるため無効データである。このようにして、任意のサンプリングの任意のCEの出力値を取り出すことができる。
(消費電力の見積例)
図30は、動的統計データERに基づく対象回路の消費電力の見積例を示す説明図である。電力算出部306は、電力係数(ユニットセル)データPUと、メモリ端子データMDと、電力係数(メモリ)データPMとを読み込んでコンピュータ処理可能なデータ構造に変換する。
つぎに、電力算出部306は、電力係数(ユニットセル)データPUと、メモリ端子データMDと、電力係数(メモリ)データPMとに基づいて、電力係数を縮退する。ここで、縮退とは、計測回路内の各セルの電力係数の合計値を用いて、計測回路の計測範囲に応じた電力を算出するための電力係数を求める処理である。具体的には、例えば、電力算出部306は、クロックツリー向けの電力係数、非クロックツリー向けの電力係数およびメモリ向けの電力係数を縮退する。
つぎに、電力算出部306は、計算範囲IDマップデータEDと、計測回路計画MPと、現計算における電力係数と、動的統計データERとに基づいて、対象回路の消費電力を算出する。現計算における電力係数とは、縮退後の電力係数、例えば、クロックツリー向けの電力係数、非クロックツリー向けの電力係数およびメモリ向けの電力係数である。
そして、電力算出部306は、電力計算結果出力I/Fを介してデータをダンプする。この際、電力算出部306は、計算範囲で排他的に集計した結果と計算範囲で積算的に集計した結果の2種類を計算範囲IDごとにファイルに落とす。これにより、計測対象の削減に合わせた電力計算が可能となるとともに計算回数を削減することができる。
(電力見積データPEの出力例)
つぎに、図31〜図33を用いて、電力見積データPEの出力例について説明する。
図31は、電力見積データPEの出力例を示す説明図(その1)である。図31において、電力見積データPEは、対象回路内の各計算範囲について、各計算範囲の電力値と、各計算範囲の電力値および該計算範囲の子孫となる計算範囲の電力値を合算した合算電力値とを示す情報である。
具体的には、電力見積データPEにおいてカンマで区切られた数値のうち、1番目の数値は、クロックツリーを構成する組み合わせセルやCGICなどの電力値を表している。2番目の数値は、組み合わせセルなどの非フリップフロップの電力値を表している。3番目の数値は、クロック端子にクロックツリーがつながっているフリップフロップのクロック端子成分の電力値を表している。
4番目の数値は、クロック端子にクロックツリーがつながっているフリップフロップの非クロック端子成分の電力値を表している。5番目の数値は、クロック端子にクロックツリーがつながっていないフリップフロップの電力値を表している。6番目の数値は、RAM/ROMの電力値を表している。
図32は、電力見積データPEの出力例を示す説明図(その2)である。図32において、波形グラフWGは、図31に示した電力見積データPEをグラフ化したものである。図32中、縦軸は電力値、横軸はサンプルIDを表している。サンプルIDは、例えば、所定間隔(例えば、10[μs])ごとの結果の識別子である。波形グラフWGは、下から上に向かって電力見積データPEの1番目〜6番目の数値が順にスタックされたグラフである。
図33は、電力見積データPEの出力例を示す説明図(その3)である。図33において、見積結果リストLTは、ゲートレベルの消費電力を見積もる市販のツールA,B,C,Dの電力見積結果を示す表である。また、図33において、波形グラフWGは、図32に示した波形グラフWGのうち見積結果リストLTの波形データによる電力見積(9.26[μs])に近いと思われる付近を拡大したものである。
波形グラフWGによれば、クロックツリー電力、フリップフロップ電力のクロックツリー部分電力は、他のツールの電力見積結果と比較的よくあっていることが分かる。また、RAM/ROMについては、計算を端折るため精度が落ちるような計算をしているものの他のツールと5[%]程度の誤差しかないことがわかる。また、非クロックツリー部分については、平均が、非フリップフロップが68[mW]、フリップフロップの非クロックツリー部分が23.5[mW]であり、合計92[mW]程度になり、他のツールと近い値となっている。
(電力見積装置200の電力見積処理手順)
つぎに、電力見積装置200の電力見積処理手順について説明する。
図34は、電力見積装置200の電力見積処理手順の一例を示すフローチャートである。図34のフローチャートにおいて、まず、電力見積装置200は、対象回路のRTL設計データRDおよびネットリストNLを取得したか否かを判断する(ステップS3401)。
ここで、電力見積装置200は、RTL設計データRDおよびネットリストNLを取得するのを待つ(ステップS3401:No)。そして、電力見積装置200は、RTL設計データRDおよびネットリストNLを取得した場合(ステップS3401:Yes)、RTL設計データRDとネットリストNLとの間で同一の信号線を指す信号の対応関係を表すマッピングデータMDを作成する(ステップS3402)。
つぎに、電力見積装置200は、マッピングデータMDと電力見積設定データSTとテクノロジーライブラリTLBとクロックソース起点データCSと配線容量データWDとに基づいて、基礎データを作成する基礎データ作成処理を実行する(ステップS3403)。基礎データ作成処理の具体的な処理手順については、図35を用いて後述する。
そして、電力見積装置200は、計測回路計画MPに基づいて、観測信号の信号値が変化した回数を計測する計測回路を作成する(ステップS3404)。つぎに、電力見積装置200は、作成した差分回路と計測回路とをRTL用のテストベンチに実装して、RTL設計データRDに基づく対象回路の論理シミュレーションを実行する(ステップS3405)。これにより、対象回路の消費電力の見積もりに必要となる電力パラメータを抽出することができる。
つぎに、電力見積装置200は、観測信号の信号値の変化を計測した計測結果を含む論理シミュレーションの実行結果を表す動的統計データERに基づいて、対象回路の消費電力を算出する(ステップS3406)。そして、電力見積装置200は、算出した対象回路の消費電力の算出結果を表す電力見積データPEを出力して(ステップS3407)、本フローチャートによる一連の処理を終了する。これにより、対象回路の消費電力を見積もることができる。
つぎに、図34に示したステップS3403の基礎データ作成処理の具体的な処理手順について説明する。
図35は、基礎データ作成処理の具体的処理手順の一例を示すフローチャートである。図35のフローチャートにおいて、まず、電力見積装置200は、ネットリストNLおよびクロックソース起点データCSに基づいてクロックツリー解析を行うことにより、クロック起点データCKDおよびクロック起点親子関係データFDを作成する(ステップS3501)。
つぎに、電力見積装置200は、対象回路上の計算範囲を指定することにより、計算範囲IDマップデータEDを作成する(ステップS3502)。そして、電力見積装置200は、ネットリストNLの中からRAM/ROMを抽出することにより、メモリ端子データMDを作成する(ステップS3503)。
つぎに、電力見積装置200は、ネットリストNLの中から非クロックツリーの信号のうちの比率rの信号をランダムに選択することにより、非クロックツリー観測ポイントデータODを作成する(ステップS3504)。そして、電力見積装置200は、対象回路内のユニットセルおよびメモリの電力係数を算出することにより、電力係数(ユニットセル)データPUおよび電力係数(メモリ)データPMを作成する(ステップS3505)。
つぎに、電力見積装置200は、マッピングデータMDを参照して、ネットリストNL上の信号の信号名のうち、RTL設計データRD上の信号の信号名に対応する信号の信号名を特定する(ステップS3506)。そして、電力見積装置200は、クロック起点データCKDまたは非クロックツリー観測ポイントデータODの中から観測信号となる信号を選択する(ステップS3507)。
つぎに、電力見積装置200は、ネットリストNL上の観測信号を出力するセルから後段のセルを順次辿ることにより、RTL設計データRD上の信号の信号名に対応する信号名の信号を出力するセルを検出する(ステップS3508)。そして、電力見積装置200は、クロック起点データCKDまたは非クロックツリー観測ポイントデータODの中から選択されていない未選択の信号があるか否かを判断する(ステップS3509)。
ここで、未選択の信号がある場合(ステップS3509:Yes)、電力見積装置200は、ステップS3507に戻って、クロック起点データCKDまたは非クロックツリー観測ポイントデータODの中から観測信号となる未選択の信号を選択する(ステップS3507)。
一方、未選択の信号がない場合(ステップS3509:No)、電力見積装置200は、RTL設計データRDとネットリストNLとの差分回路を表す差分回路データDFを作成する(ステップS3510)。そして、電力見積装置200は、作成した差分回路データDFに対応する差分回路コンフィギュレーションデータDCGを作成して(ステップS3511)、図34に示したステップS3404に移行する。
これにより、対象回路の消費電力の見積もりに必要となる電力パラメータを抽出するための差分回路を作成することができる。
なお、上述した説明では、クロック起点データCKDまたは非クロックツリー観測ポイントデータODの中から観測信号となる信号を選択することにしたが、これに限らない。例えば、電力見積装置200は、ユーザの操作入力により指定された信号を観測信号として選択することにしてもよい。
以上説明したように、実施の形態にかかる電力見積装置200によれば、ネットリストNL上の観測信号を出力する第1のセルから前段のセルを順次辿ることにより、RTL設計データRDの信号と対応関係を有する信号が入力される第2のセルを検出できる。また、電力見積装置200によれば、第2のセルから第1のセルまでの部分回路をネットリストNLの中から抽出することにより、RTL設計データRDとネットリストNLとの差分回路を表す差分回路データDFを作成できる。
これにより、論理合成やレイアウト工程を経て詳細化された対象回路内のセルから出力される観測信号の波形データ、すなわち、対象回路の消費電力の見積もりに必要となる電力パラメータを抽出するための差分回路を作成することができる。
また、電力見積装置200によれば、第2のセルに入力されるネットリストNLの信号と対応関係を有するRTL設計データRDの信号の信号名と、第2のセルとを対応付けて表すRTL参照信号/ポート番号関係表RPを作成することができる。これにより、差分回路の入力端子のポート番号と、RTL設計データRD上の信号の信号名との対応関係を特定することができる。
また、電力見積装置200によれば、選択された観測信号の信号名と、観測信号を出力する第1のセルとを対応付けて表す観測信号/ポート番号関係表SPを作成することができる。これにより、差分回路の出力端子のポート番号と、ネットリストNL上の観測信号の信号名との対応関係を特定することができる。
また、電力見積装置200によれば、ネットリストNLの中から、供給先へのクロック信号の供給を一時的に停止するセルから出力される信号を観測信号として選択することができる。これにより、論理合成時などに自動挿入されるCGICから出力される信号の波形データを抽出するための差分回路を作成することができる。
また、電力見積装置200によれば、対象回路のクロックソースから辿ることができる出力端子群のうち、出力される信号の信号値が変化する単位時間当たりの回数が互いに異なる値となる出力端子から出力される信号を観測信号として選択することができる。これにより、消費電力の見積もりに必要となるトグルレートの変化点の信号の波形データを抽出するための差分回路を作成することができる。
また、電力見積装置200によれば、対象回路のクロックソースから辿ることができない出力端子群のうちのいずれかの出力端子から出力される信号を観測信号として選択することができる。具体的には、例えば、電力見積装置200によれば、非クロックツリーの信号のうち比率rの信号をランダムに選択することができる。これにより、非クロックツリーの信号を間引くことができ、差分回路の回路量を抑えることができる。
また、電力見積装置200によれば、RTL設計データRDと差分回路データDFと計測回路データKDとを、RTL用のテストベンチに与えて対象回路の論理シミュレーションを実行することができる。例えば、電力見積装置200は、RTL参照信号/ポート番号関係表RPと観測信号/ポート番号関係表SPとに基づいて、RTL設計データRDと差分回路データDFと計測回路データKDとをテストベンチに実装して論理シミュレーションを実行する。そして、電力見積装置200は、観測信号の信号値の変化を計測した計測結果を含む論理シミュレーションの実行結果を取得することができる。
これにより、RTL設計データRDとネットリストNLとの差分回路から出力される観測信号の波形データ、すなわち、対象回路の消費電力の見積もりに必要となる電力パラメータを抽出することができる。
また、電力見積装置200によれば、観測信号の信号値の変化を計測した計測結果を含む論理シミュレーションの実行結果に基づいて、対象回路の消費電力を見積もることができる。これにより、従来のRTL設計データからは推測が難しかった論理合成やレイアウト工程において追加されたセルから出力される信号の波形データを用いて対象回路の消費電力の見積もることができ見積精度を向上させることができる。
このように、電力見積装置200によれば、RTLの検証環境を使ってゲートレベルと同等の精度で消費電力を見積もることができる。また、電力見積装置200によれば、対象回路の機能検証を行うためのゲートレベルの検証環境の構築が不要となり、検証者の作業負荷を軽減することができるとともに検証期間の短縮化を図ることができる。
なお、本実施の形態で説明した電力見積支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本電力見積支援方法プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本電力見積支援方法プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得し、
前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択し、
取得した前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第1のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第2のセルを検出し、
検出した前記第2のセルから前記第1のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成し、
前記第2のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第2のセルとを対応付けて表す信号情報を作成し、
作成した前記差分回路情報と前記信号情報とを関連付けて出力する、
処理を実行させることを特徴とする電力見積支援プログラム。
(付記2)前記コンピュータに、
前記観測信号の信号名と、前記観測信号を出力する前記第1のセルとを対応付けて表す観測信号情報を作成する処理を実行させ、
前記出力する処理は、
作成した前記観測信号情報と前記差分回路情報と前記信号情報とを関連付けて出力することを特徴とする付記1に記載の電力見積支援プログラム。
(付記3)前記選択する処理は、
前記ネットリストの中から、供給先へのクロック信号の供給を一時的に停止するセルから出力される信号を前記観測信号として選択することを特徴とする付記2に記載の電力見積支援プログラム。
(付記4)前記コンピュータに、
前記ネットリスト内の出力端子群の中から、前記対象回路のクロックソースから辿ることができる出力端子群を抽出する処理を実行させ、
前記選択する処理は、
抽出した前記出力端子群のうち、出力される信号の信号値が変化する単位時間当たりの回数が互いに異なる値となる出力端子から出力される信号を前記観測信号として選択することを特徴とする付記2または3に記載の電力見積支援プログラム。
(付記5)前記選択する処理は、
前記ネットリスト内の出力端子群のうち、抽出した前記出力端子群を除く残余の出力端子群のいずれかの出力端子から出力される信号を前記観測信号として選択することを特徴とする付記4に記載の電力見積支援プログラム。
(付記6)前記コンピュータに、
前記観測信号として選択した前記残余の出力端子群のいずれかの出力端子から出力される信号の信号数が閾値未満か否かを判定し、
前記信号数が前記閾値未満と判定した場合に、前記残余の出力端子群のいずれかの出力端子から出力される信号を前記観測信号として選択する、
処理を実行させることを特徴とする付記5に記載の電力見積支援プログラム。
(付記7)前記コンピュータに、
前記信号情報と前記観測信号情報とに基づいて、前記設計情報と、前記差分回路情報とを、テストベンチに与えて前記対象回路の論理シミュレーションを実行することにより、前記観測信号の信号値の変化を計測した計測結果を含む前記論理シミュレーションの実行結果を取得し、
取得した前記実行結果を出力する、
処理を実行させることを特徴とする付記2〜6のいずれか一つに記載の電力見積支援プログラム。
(付記8)消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得する取得部と、
前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択する選択部と、
前記取得部によって取得された前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第1のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第2のセルを検出する検出部と、
前記検出部によって検出された前記第2のセルから前記第1のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成する第1の作成部と、
前記第2のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第2のセルとを対応付けて表す信号情報を作成する第2の作成部と、
前記第1の作成部によって作成された前記差分回路情報と前記第2の作成部によって作成された前記信号情報とを関連付けて出力する出力部と、
を有することを特徴とする電力見積支援装置。
(付記9)コンピュータが、
消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得し、
前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択し、
取得した前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第1のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第2のセルを検出し、
検出した前記第2のセルから前記第1のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成し、
前記第2のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第2のセルとを対応付けて表す信号情報を作成し、
作成した前記差分回路情報と前記信号情報とを関連付けて出力する、
処理を実行することを特徴とする電力見積支援方法。
100 電力見積支援装置
200 電力見積装置
301 取得部
302 マッピングデータ作成部
303 差分回路作成部
304 計測回路作成部
305 実行部
306 電力算出部
307 出力部

Claims (8)

  1. コンピュータに、
    消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得し、
    前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択し、
    取得した前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第1のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第2のセルを検出し、
    検出した前記第2のセルから前記第1のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成し、
    前記第2のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第2のセルとを対応付けて表す信号情報を作成し、
    作成した前記差分回路情報と前記信号情報とを関連付けて出力する、
    処理を実行させることを特徴とする電力見積支援プログラム。
  2. 前記コンピュータに、
    前記観測信号の信号名と、前記観測信号を出力する前記第1のセルとを対応付けて表す観測信号情報を作成する処理を実行させ、
    前記出力する処理は、
    作成した前記観測信号情報と前記差分回路情報と前記信号情報とを関連付けて出力することを特徴とする請求項1に記載の電力見積支援プログラム。
  3. 前記選択する処理は、
    前記ネットリストの中から、供給先へのクロック信号の供給を一時的に停止するセルから出力される信号を前記観測信号として選択することを特徴とする請求項2に記載の電力見積支援プログラム。
  4. 前記コンピュータに、
    前記ネットリスト内の出力端子群の中から、前記対象回路のクロックソースから辿ることができる出力端子群を抽出する処理を実行させ、
    前記選択する処理は、
    抽出した前記出力端子群のうち、出力される信号の信号値が変化する単位時間当たりの回数が互いに異なる値となる出力端子から出力される信号を前記観測信号として選択することを特徴とする請求項2または3に記載の電力見積支援プログラム。
  5. 前記選択する処理は、
    前記ネットリスト内の出力端子群のうち、抽出した前記出力端子群を除く残余の出力端子群のいずれかの出力端子から出力される信号を前記観測信号として選択することを特徴とする請求項4に記載の電力見積支援プログラム。
  6. 前記コンピュータに、
    前記信号情報と前記観測信号情報とに基づいて、前記設計情報と、前記差分回路情報とを、テストベンチに与えて前記対象回路の論理シミュレーションを実行することにより、前記観測信号の信号値の変化を計測した計測結果を含む前記論理シミュレーションの実行結果を取得し、
    取得した前記実行結果を出力する、
    処理を実行させることを特徴とする請求項2〜5のいずれか一つに記載の電力見積支援プログラム。
  7. 消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得する取得部と、
    前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択する選択部と、
    前記取得部によって取得された前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第1のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第2のセルを検出する検出部と、
    前記検出部によって検出された前記第2のセルから前記第1のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成する第1の作成部と、
    前記第2のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第2のセルとを対応付けて表す信号情報を作成する第2の作成部と、
    前記第1の作成部によって作成された前記差分回路情報と前記第2の作成部によって作成された前記信号情報とを関連付けて出力する出力部と、
    を有することを特徴とする電力見積支援装置。
  8. コンピュータが、
    消費電力の見積対象となる対象回路のネットリストの信号名とレジスタ転送レベルで記述された前記対象回路の設計情報の信号名との対応関係を表すマッピング情報を取得し、
    前記ネットリストの中から信号値の変化の観測対象となる観測信号を選択し、
    取得した前記マッピング情報を参照して、前記ネットリスト上の選択した前記観測信号を出力する第1のセルを起点として前段のセルを順次辿ることにより、前記設計情報の信号と対応関係を有する前記ネットリストの信号が入力される第2のセルを検出し、
    検出した前記第2のセルから前記第1のセルまでの部分回路を前記ネットリストの中から抽出することにより、前記設計情報と前記ネットリストとの差分を表す差分回路情報を作成し、
    前記第2のセルに入力される前記ネットリストの信号と対応関係を有する前記設計情報の信号の信号名と、前記第2のセルとを対応付けて表す信号情報を作成し、
    作成した前記差分回路情報と前記信号情報とを関連付けて出力する、
    処理を実行することを特徴とする電力見積支援方法。
JP2012154068A 2012-07-09 2012-07-09 電力見積支援プログラム、電力見積支援装置および電力見積支援方法 Expired - Fee Related JP6051629B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012154068A JP6051629B2 (ja) 2012-07-09 2012-07-09 電力見積支援プログラム、電力見積支援装置および電力見積支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012154068A JP6051629B2 (ja) 2012-07-09 2012-07-09 電力見積支援プログラム、電力見積支援装置および電力見積支援方法

Publications (2)

Publication Number Publication Date
JP2014016830A true JP2014016830A (ja) 2014-01-30
JP6051629B2 JP6051629B2 (ja) 2016-12-27

Family

ID=50111442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012154068A Expired - Fee Related JP6051629B2 (ja) 2012-07-09 2012-07-09 電力見積支援プログラム、電力見積支援装置および電力見積支援方法

Country Status (1)

Country Link
JP (1) JP6051629B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017537374A (ja) * 2014-10-06 2017-12-14 シノプシス, インコーポレイテッドSyn0Psys, Inc. 効率的な電力解析
CN111832737A (zh) * 2019-04-18 2020-10-27 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US11847554B2 (en) 2019-04-18 2023-12-19 Cambricon Technologies Corporation Limited Data processing method and related products
CN118313337A (zh) * 2024-06-11 2024-07-09 沐曦科技(成都)有限公司 差分电路版图生成方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234080A (ja) * 2007-03-16 2008-10-02 Ricoh Co Ltd 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム、半導体集積回路、半導体集積回路の製造方法
JP2009003618A (ja) * 2007-06-20 2009-01-08 Toshiba Corp 消費電力解析装置および消費電力解析方法
JP2009140222A (ja) * 2007-12-06 2009-06-25 Fujitsu Ltd Lsiの電力見積方法及びその装置
JP2009271653A (ja) * 2008-05-02 2009-11-19 Fujitsu Ltd 消費電力見積方法、回路設計支援装置及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234080A (ja) * 2007-03-16 2008-10-02 Ricoh Co Ltd 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム、半導体集積回路、半導体集積回路の製造方法
JP2009003618A (ja) * 2007-06-20 2009-01-08 Toshiba Corp 消費電力解析装置および消費電力解析方法
JP2009140222A (ja) * 2007-12-06 2009-06-25 Fujitsu Ltd Lsiの電力見積方法及びその装置
JP2009271653A (ja) * 2008-05-02 2009-11-19 Fujitsu Ltd 消費電力見積方法、回路設計支援装置及びプログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017537374A (ja) * 2014-10-06 2017-12-14 シノプシス, インコーポレイテッドSyn0Psys, Inc. 効率的な電力解析
US10599794B2 (en) 2014-10-06 2020-03-24 Synopsys, Inc. Efficient power analysis
CN111832737A (zh) * 2019-04-18 2020-10-27 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
JP2021182176A (ja) * 2019-04-18 2021-11-25 カンブリコン テクノロジーズ コーポレーション リミテッドCambricon Technologies Corporation Limited データ処理方法および関連製品
JP7045357B2 (ja) 2019-04-18 2022-03-31 カンブリコン テクノロジーズ コーポレーション リミテッド データ処理方法および関連製品
US11762690B2 (en) 2019-04-18 2023-09-19 Cambricon Technologies Corporation Limited Data processing method and related products
US11847554B2 (en) 2019-04-18 2023-12-19 Cambricon Technologies Corporation Limited Data processing method and related products
CN111832737B (zh) * 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US11934940B2 (en) 2019-04-18 2024-03-19 Cambricon Technologies Corporation Limited AI processor simulation
CN118313337A (zh) * 2024-06-11 2024-07-09 沐曦科技(成都)有限公司 差分电路版图生成方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
JP6051629B2 (ja) 2016-12-27

Similar Documents

Publication Publication Date Title
US6470482B1 (en) Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
CN115315702B (zh) 早期阶段电路设计中基于机器学习的度量的预测
CN103853863B (zh) Pdk自动测试界面实现方法
US5880971A (en) Methodology for deriving executable low-level structural descriptions and valid physical implementations of circuits and systems from semantic specifications and descriptions thereof
US5555201A (en) Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
US8234617B2 (en) Method and system for re-using digital assertions in a mixed signal design
US20110035203A1 (en) system level power evaluation method
US10997332B1 (en) System and method for computing electrical over-stress of devices associated with an electronic design
US6895524B2 (en) Circuit reduction technique for improving clock net analysis performance
US8938703B1 (en) Method and apparatus for comprehension of common path pessimism during timing model extraction
JP4994393B2 (ja) 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法
JP6051629B2 (ja) 電力見積支援プログラム、電力見積支援装置および電力見積支援方法
JP2012104091A (ja) 電力見積装置、電力見積方法及びプログラム
JP2011238137A (ja) 性能推定装置
US7984398B1 (en) Automated multiple voltage/power state design process and chip description system
CN120832858A (zh) 芯片后仿真验证加速方法、系统、设备以及存储介质
US11200127B2 (en) Automated self-check of a closed loop emulation replay
JP4924130B2 (ja) 消費電力解析支援プログラム、該プログラムを記録した記録媒体、および消費電力解析支援装置
CN118261110A (zh) Pdk中cdf参数的处理方法、pdk中cdf参数的差异确定方法、pdk版本迭代方法及电子设备
CN101183400A (zh) 图形硬件设计中调试与验证的方法与系统
JP6146224B2 (ja) 判定方法、判定プログラム、および判定装置
CN106650138A (zh) 一种自动实现静态和动态时序分析对比的方法
US20210333320A1 (en) Slew-Load Characterization
US12307179B2 (en) Detecting simulation, emulation and prototyping issues using static analysis tools
CN100452062C (zh) 测试硬件描述语言所撰写的硬件电路方块的方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160419

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160620

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161114

R150 Certificate of patent or registration of utility model

Ref document number: 6051629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees