JP5310312B2 - Integrated circuit power consumption verification method - Google Patents

Integrated circuit power consumption verification method Download PDF

Info

Publication number
JP5310312B2
JP5310312B2 JP2009154612A JP2009154612A JP5310312B2 JP 5310312 B2 JP5310312 B2 JP 5310312B2 JP 2009154612 A JP2009154612 A JP 2009154612A JP 2009154612 A JP2009154612 A JP 2009154612A JP 5310312 B2 JP5310312 B2 JP 5310312B2
Authority
JP
Japan
Prior art keywords
data
power
variable
circuit
rate
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
JP2009154612A
Other languages
Japanese (ja)
Other versions
JP2011013713A (en
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 JP2009154612A priority Critical patent/JP5310312B2/en
Publication of JP2011013713A publication Critical patent/JP2011013713A/en
Application granted granted Critical
Publication of JP5310312B2 publication Critical patent/JP5310312B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、論理回路設計における集積回路の消費電力検証方法に関する。   The present invention relates to an integrated circuit power consumption verification method in logic circuit design.

集積回路(以下、LSIと言う)を論理設計において、消費電力(電流)は重要な設計制約のひとつであり、電源層設計やチップパッケージ種の選定など、LSIの物理設計の初期決定条件を導くものである。そのため、設計早期段階で精度の良い見積もりが求められている。   In logic design of an integrated circuit (hereinafter referred to as LSI), power consumption (current) is one of the important design constraints, leading to initial decision conditions for LSI physical design such as power supply layer design and chip package type selection. Is. Therefore, accurate estimation is required at the early design stage.

例えば、論理シミュレータを実行して得られた信号レベルの変化回数や時間的変化を用いて消費電力を算出すること、トランザクションが集積回路の動作頻度をよく反映していることに着目して、設計対象となる集積回路のトランザクション量を事象として統計分布であらわして格納するデータベースを備えたトランザクション解析用モデルを利用して、高速な消費電力推定を行なう等が提案されている(例えば、特許文献1、2を参照)。   For example, pay attention to the calculation of power consumption using the number of signal level changes and time changes obtained by executing a logic simulator, and the fact that transactions well reflect the frequency of integrated circuit design. It has been proposed to perform high-speed power consumption estimation using a transaction analysis model including a database that stores a transaction amount of a target integrated circuit as an event as a statistical distribution (for example, Patent Document 1). 2).

特開平3−9550号公報Japanese Patent Laid-Open No. 3-9550 特開2001−338010号公報JP 2001-338010 A 特開平10−15472号公報Japanese Patent Laid-Open No. 10-15472

システムLSIのレイアウト設計では、レイアウト本番に入る前に、回路が物理的に製造できるかどうかを検討する。各ブロックの設計がある程度進み、回路規模がほぼ決定する時期に行っている。各ロックの設計や検証シミュレーションが進み、ブロックの論理記述がほぼ決まってきた段階で、ブロックを全て集約することで、チップの回路規模を見積もることができる。設計途中のブロックを不完全ながら結合させて、レイアウトを行い、合成可能性、配線可能性、サイズが実現可能な範囲かを検討すること(レイアウト・プロトタイプ)が行なわれている。 In the layout design of the system LSI, it is examined whether or not the circuit can be physically manufactured before starting the layout. This is done when the design of each block progresses to some extent and the circuit scale is almost determined. Design and verification simulation of each block proceeds, at a stage where the logic descriptions of the blocks have been substantially determined, by aggregating all blocks, it is possible to estimate the circuit scale of the chip. Blocks in the middle of design are combined incompletely, layout is performed, and it is examined whether the possibility of synthesis, wiring possibility, and size can be realized (layout prototype).

従来の技術では、CMOS回路の電力は回路の動作(回路の変化回数)に大きく依存するため、電力見積もりのためには、回路の動作シミュレーション結果が要求されている。しかし、システムLSI全体を動作させるのは論理設計の最終段階であり、動作結果よりシステムLSIの電力が見積もれるのは、さらに数ヶ月後になるため、正確な電力が出るまで待たされた場合、時間的に厳しい工程で電力の見積もりが行なわれることになる。   In the conventional technique, the power of the CMOS circuit greatly depends on the operation of the circuit (the number of changes in the circuit), and therefore, an operation simulation result of the circuit is required for power estimation. However, operating the entire system LSI is the final stage of logic design, and the system LSI power can be estimated from the operation results after several months. Power estimation is performed in a severe process.

上記課題を解決するため、集積回路の消費電力検証方法であって、論理回路モジュールを有する集積回路の動作をプログラムした動作記述プログラムの第一の変数と回路データの第二の変数との対応表を参照することにより、該動作記述プログラムを実行することによって得られた動作結果ログを用いて、該第二の変数が対応する該第一の変数のデータの1クロック当たりの変化回数を変化率として算出し、該算出した変化率に基づいて該回路データで記述される論理回路モジュール毎のデータトグル率を算出する動作率算出手順と、前記動作結果ログを用いた回路データの第二の変数間の依存関係に基づいてデータフローを示すデータパスを解析して、該データパス上の前記論理回路モジュール毎の動作時間を出力するデータパス解析手順と、データ電力を要する素子に対しては前記データトグル率と前記動作時間とを用いて該データ電力を算出して、全素子の電力の総和を算出する電力総和算出手順とを有するように構成される。 In order to solve the above-described problem, a method for verifying power consumption of an integrated circuit, which is a correspondence table between a first variable of an operation description program that programs an operation of an integrated circuit having a logic circuit module and a second variable of circuit data By using the operation result log obtained by executing the operation description program, the change rate per clock of the data of the first variable corresponding to the second variable is changed. calculated as the operation rate calculation procedure for calculating the data toggle rate for each said logic circuit modules described in said circuit data based on the change rate of the calculated, the operation result of the circuit data using log second A data path analysis method for analyzing a data path indicating a data flow based on a dependency relationship between variables and outputting an operation time for each logic circuit module on the data path. If, with respect to the element that requires data power by calculating the data power using said operating time and the data toggle rate, configured to have a total power calculation step of calculating a power sum of all the elements Is done.

開示の集積回路の消費電力検証方法は、回路データで記述される論理回路モジュール毎のデータトグル率を算出する動作率算出手順と、データ電力を要する素子に対しては前記データトグル率を用いて該データ電力を算出して、全素子の電力の総和を算出する電力総和算出手順とをコンピュータが実行する。   The disclosed integrated circuit power consumption verification method uses an operation rate calculation procedure for calculating a data toggle rate for each logic circuit module described by circuit data, and uses the data toggle rate for an element requiring data power. The computer executes a power sum calculation procedure for calculating the data power and calculating the sum of the powers of all elements.

開示の集積回路の消費電力検証方法において、機能仕様書(FS)の段階であっても、構造記述による回路データから、設計中の集積回路の電力を見積もりことができる。   In the disclosed integrated circuit power consumption verification method, the power of the integrated circuit under design can be estimated from the circuit data based on the structure description even at the stage of the functional specification (FS).

消費電力検証装置のハードウェア構成例を示すブロック図である。It is a block diagram which shows the hardware structural example of a power consumption verification apparatus. 消費電力検証処理の全体フローを示す図である。It is a figure which shows the whole flow of a power consumption verification process. 消費電力検証の対象となる回路構成例を示す図である。It is a figure which shows the example of a circuit structure used as the object of power consumption verification. 動作記述プログラムの例を示す図である。It is a figure which shows the example of an action description program. 回路と動作記述の対応表の例を示す図である。It is a figure which shows the example of the correspondence table of a circuit and operation | movement description. プログラム動作結果ログの例を示す図である。It is a figure which shows the example of a program operation result log. 図2の処理1にて行なわれる結果ログ解析について説明するためのフローチャートである。3 is a flowchart for explaining result log analysis performed in process 1 of FIG. 2. 動作記述プログラムの他の例を示す図である。It is a figure which shows the other example of an action description program. 第1の中間テーブルのデータ例を示す図である。It is a figure which shows the example of data of a 1st intermediate table. 第2の中間テーブルのデータ例を示す図である。It is a figure which shows the example of data of a 2nd intermediate table. 動作解析結果の作成方法を示す図である。It is a figure which shows the preparation method of an operation | movement analysis result. 図2の処理2にて行なわれるデータパス解析について説明するためのフローチャートである。3 is a flowchart for explaining data path analysis performed in process 2 of FIG. 2. 図12のステップS23におけるデータパスの処理時間の計算方法を説明するためのフローチャート図である。FIG. 13 is a flowchart for explaining a data path processing time calculation method in step S23 of FIG. 12; 動作時間の算出例を説明するための図である。It is a figure for demonstrating the example of calculation of operation time. 図2の処理3にて行なわれるデータトグル率の算出方法について説明するためのフローチャートである。3 is a flowchart for explaining a data toggle rate calculation method performed in process 3 of FIG. 2. 図2の処理4にて行なわれる電力見積もり方法について説明するためのフローチャートである。5 is a flowchart for explaining a power estimation method performed in process 4 of FIG. 2.

以下、本発明の実施の形態を図面に基づいて説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

論理回路設計においてLSIの消費電力を検証する消費電力検証装置は、例えば、図1に示すようなハードウェア構成を有する。図1において、消費電力検証装置100は、コンピュータによって制御される端末であって、CPU(Central Processing Unit)11と、メモリユニット12と、表示ユニット13と、出力ユニット14と、入力ユニット15と、通信ユニット16と、記憶装置17と、ドライバ18とを有し、システムバスBに接続される。   A power consumption verification apparatus that verifies the power consumption of an LSI in logic circuit design has, for example, a hardware configuration as shown in FIG. In FIG. 1, a power consumption verification apparatus 100 is a terminal controlled by a computer, and includes a CPU (Central Processing Unit) 11, a memory unit 12, a display unit 13, an output unit 14, an input unit 15, The communication unit 16, the storage device 17, and the driver 18 are included, and are connected to the system bus B.

CPU11は、メモリユニット12に格納されたプログラムに従って消費電力検証装置100を制御する。メモリユニット12は、RAM(Random Access Memory)及びROM(Read-Only Memory)等にて構成され、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。   The CPU 11 controls the power consumption verification device 100 according to a program stored in the memory unit 12. The memory unit 12 includes a RAM (Random Access Memory), a ROM (Read-Only Memory), and the like, and is obtained by a program executed by the CPU 11, data necessary for processing by the CPU 11, and processing by the CPU 11. Stored data. A part of the memory unit 12 is allocated as a work area used for processing by the CPU 11.

表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。出力ユニット14は、プリンタ等を有し、ユーザからの指示に応じて各種情報を出力するために用いられる。入力ユニット15は、マウス、キーボード等を有し、ユーザが消費電力検証装置100が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット16は、例えばインターネット、LAN(Local Area Network)等に接続し、外部装置との間の通信制御をするための装置である。記憶装置17は、例えば、ハードディスクユニットにて構成され、各種処理を実行するプログラム等のデータを格納する。   The display unit 13 displays various information required under the control of the CPU 11. The output unit 14 includes a printer or the like, and is used for outputting various types of information according to instructions from the user. The input unit 15 includes a mouse, a keyboard, and the like, and is used by a user to input various information necessary for the power consumption verification apparatus 100 to perform processing. The communication unit 16 is a device that is connected to, for example, the Internet, a LAN (Local Area Network), and the like and controls communication with an external device. The storage device 17 is composed of, for example, a hard disk unit, and stores data such as programs for executing various processes.

消費電力検証装置100よって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によって消費電力検証装置100に提供される。即ち、プログラムが保存された記憶媒体19がドライバ18にセットされると、ドライバ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがシステムバスBを介して記憶装置17にインストールされる。そして、プログラムが起動されると、記憶装置17にインストールされたプログラムに従ってCPU11がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本実施例に係る消費電力検証処理を実現するプログラムは、通信ユニット16によってネットワークを介してダウンロードし、記憶装置17にインストールするようにしても良い。また、USB対応の消費電力検証装置100であれば、USB接続可能な外部記憶装置からインストールするようにしても良い。更に、SDカード等のフラッシュメモリ対応の消費電力検証装置100であれば、そのようなメモリカードからインストールするようにしても良い。   A program that realizes processing performed by the power consumption verification device 100 is provided to the power consumption verification device 100 by a storage medium 19 such as a CD-ROM (Compact Disc Read-Only Memory). That is, when the storage medium 19 storing the program is set in the driver 18, the driver 18 reads the program from the storage medium 19, and the read program is installed in the storage device 17 via the system bus B. . When the program is activated, the CPU 11 starts its processing according to the program installed in the storage device 17. The medium for storing the program is not limited to a CD-ROM, and any medium that can be read by a computer may be used. The program for realizing the power consumption verification process according to the present embodiment may be downloaded via the network by the communication unit 16 and installed in the storage device 17. Further, in the case of the USB-compatible power consumption verification device 100, it may be installed from an external storage device that can be connected by USB. Furthermore, if the power consumption verification device 100 is compatible with a flash memory such as an SD card, it may be installed from such a memory card.

図2は、消費電力検証処理の全体フローを示す図である。図2において、CPU11は、回路データ31と、回路動作記述の対応表32と、動作記述プログラム33と、プログラム動作結果ログ34とを、各々が格納されている記憶装置17内の領域から読み出して、消費電力検証処理20を開始する。   FIG. 2 is a diagram showing an overall flow of the power consumption verification process. In FIG. 2, the CPU 11 reads out circuit data 31, a circuit operation description correspondence table 32, an operation description program 33, and a program operation result log 34 from an area in the storage device 17 in which each is stored. Then, the power consumption verification process 20 is started.

回路データ31は、レイアウトの際にプロトタイプに用いる回路データであり、例えば、RTL(Register Transfer Level)によって記述されたゲート回路、又は、論理合成後のテクノロジマッピングされた論理回路モジュールとしてのゲート回路のデータである。   The circuit data 31 is circuit data used for a prototype at the time of layout. For example, a gate circuit described by RTL (Register Transfer Level) or a gate circuit as a logic circuit module to which technology is mapped after logic synthesis. It is data.

回路動作記述の対応表32は、予めユーザによって対応付けられた回路情報と動作記述との対応を示すテーブルであり、ブロック名と関数名の対応、メモリ名と変数名の対応などを示す。   The circuit behavior description correspondence table 32 is a table showing correspondences between circuit information and behavior descriptions previously associated by the user, and shows correspondences between block names and function names, correspondences between memory names and variable names, and the like.

動作記述プログラム33は、例えば、動作仕様を表したC言語で開発されたソースプログラムであり、実行されるメモリとブロック間、ブロックと他ブロック間のアルゴリズムの実行手順を示す。   The behavioral description program 33 is, for example, a source program developed in C language that represents behavioral specifications, and shows an algorithm execution procedure between a memory to be executed and a block, and between a block and another block.

プログラム動作結果ログ34は、動作記述プログラム33を実行させて取得した実行プロファイルであり、実際に実行された手順がログで示される。   The program operation result log 34 is an execution profile acquired by executing the operation description program 33, and the procedure actually executed is indicated by the log.

消費電力検証処理20の処理1において、CPU11は、プログラム動作結果ログ34を解析して、回路と対応する部分の動作の実行手順に変換して、メモリユニット12の作業領域又は記憶装置11の所定記憶領域(以下、単に記憶領域と言う)に動作解析結果35を出力する(結果ログ解析)。次に、処理2において、CPU11は、回路データ31を用いてデータパスを解析し、実行パスの遅延解析を行ない、記憶領域に遅延解析結果36を出力する(データパス解析)。   In the process 1 of the power consumption verification process 20, the CPU 11 analyzes the program operation result log 34 and converts it into an operation execution procedure of the part corresponding to the circuit, and the predetermined area in the work area of the memory unit 12 or the storage device 11. An operation analysis result 35 is output to a storage area (hereinafter simply referred to as a storage area) (result log analysis). Next, in process 2, the CPU 11 analyzes the data path using the circuit data 31, performs delay analysis of the execution path, and outputs the delay analysis result 36 to the storage area (data path analysis).

更に、処理3において、CPU11は、遅延解析結果36を用いて、プログラムの変数のビットトグル率から回路のネットのトグル率を算出して、動作率見積もり結果37を出力する(データトグル率算出)。そして、処理4において、CPU11は、動作率見積もり結果37を用いて、電力を見積もり、電力結果38を出力する(電力見積もり)。   Further, in the process 3, the CPU 11 calculates the toggle rate of the circuit net from the bit toggle rate of the program variable using the delay analysis result 36, and outputs the operation rate estimation result 37 (data toggle rate calculation). . In process 4, the CPU 11 estimates power using the operation rate estimation result 37 and outputs a power result 38 (power estimation).

消費電力検証処理を行う際に予め作成しておく回路と動作記述の対応表32について図3、図4、及び図5で説明する。図3は、消費電力検証の対象となる回路構成例を示す図である。図3において、消費電力検証の対象となるLSI3は、例えば、メモリAと、ブロックCと、ブロックDと、ブロックEと、メモリBとを有し、夫々に対応させて回路内での動作が、例えばRTLなどで作成される。 The correspondence table 32 between the circuit and the operation description created in advance when performing the power consumption verification process will be described with reference to FIGS. 3, 4, and 5. FIG. 3 is a diagram illustrating a circuit configuration example that is a target of power consumption verification. In FIG. 3, the LSI 3 that is the target of power consumption verification includes, for example, a memory A, a block C, a block D, a block E, and a memory B, and operates in a circuit corresponding to each of them. For example, it is created by RTL.

LSI3において、ブロックCはメモリポートBCpからメモリAのデータを受信し、所定処理の後にブロックDとブロックEへとデータを供給する。ブロックDは、ブロックCからのデータを入力レジスタBDrで受信し、所定処理の後にメモリポートBDpからメモリBへとデータを供給する。ブロックEは、ブロックCからのデータを入力レジスタBErで受信し、所定処理の後にメモリポートBEpからメモリBへとデータを送信する。メモリBは、ブロックDから送られるデータとブロックEから送られるデータとを格納する。   In the LSI 3, the block C receives the data of the memory A from the memory port BCp, and supplies the data to the blocks D and E after a predetermined process. The block D receives the data from the block C by the input register BDr, and supplies the data from the memory port BDp to the memory B after predetermined processing. The block E receives the data from the block C by the input register BEr, and transmits the data from the memory port BEp to the memory B after a predetermined process. The memory B stores data sent from the block D and data sent from the block E.

このような、メモリとブロック間、ブロックとブロック間などの論理回路モジュール間のデータのフローが制御データフローとして、例えばCプログラムで開発され動作記述プログラム33となる。   Such a data flow between logic circuit modules such as a memory and a block and between a block and a block is developed as a control data flow by, for example, a C program and becomes an operation description program 33.

図4は、動作記述プログラム33の例を示す図である。図4に例示される動作記述プログラム33において、main()関数33aがLSI3の全体の制御データフローに対応し、data_in配列33bがメモリAに対応し、stream2content関数33cがブロックCに対応し、temp2変数33dがブロックCメモリポートBCpに対応する。   FIG. 4 is a diagram illustrating an example of the behavior description program 33. In the behavioral description program 33 illustrated in FIG. 4, the main () function 33a corresponds to the entire control data flow of the LSI 3, the data_in array 33b corresponds to the memory A, the stream2content function 33c corresponds to the block C, and temp2 The variable 33d corresponds to the block C memory port BCp.

また、process_a関数33eがブロックDに対応し、temp_a変数33fがブロックDの入力レジスタBDrに対応し、a_out配列33gがブロックDのメモリポートBEpに対応する。更に、process_b関数33hがブロックEに対応し、temp_b変数33iがブロックEの入力レジスタBErに対応し、b_out配列33jがブロックEのメモリポートBEpに対応する。   The process_a function 33e corresponds to the block D, the temp_a variable 33f corresponds to the input register BDr of the block D, and the a_out array 33g corresponds to the memory port BEp of the block D. Further, the process_b function 33h corresponds to the block E, the temp_b variable 33i corresponds to the input register BEr of the block E, and the b_out array 33j corresponds to the memory port BEp of the block E.

このような図3及び図4の例示に対する回路と動作記述の対応は、例えば、図5に例示されるように、ユーザによって作成される。図5は、回路と動作記述の対応表32の例を示す図である。   The correspondence between the circuit and the operation description with respect to the examples of FIGS. 3 and 4 is created by the user as illustrated in FIG. 5, for example. FIG. 5 is a diagram illustrating an example of the correspondence table 32 between the circuit and the operation description.

図5に例示される回路と動作記述の対応表32は、例えばCプログラムによる動作記述プログラム33で定義されている関数名、配列名、変数名等の動作記述名毎に、例えばRTLで記述されたLSI3、及びLSI3に含まれるブロック、メモリ、レジスタ等の回路記述名を対応させたテーブルである。   The correspondence table 32 between the circuit and the operation description illustrated in FIG. 5 is described in, for example, RTL for each operation description name such as a function name, an array name, and a variable name defined in the operation description program 33 by a C program, for example. 3 is a table in which circuit description names such as blocks, memories, and registers included in the LSI 3 are associated.

回路と動作記述の対応表32では、例えば、main()関数33aをLSI3全体に対応させ、data_in配列33bをメモリAに対応させ、stream2content関数33cをブロックCに対応させ、temp2変数33dをブロックCメモリポートBCpに対応させている。   In the circuit / operation description correspondence table 32, for example, the main () function 33a is associated with the entire LSI 3, the data_in array 33b is associated with the memory A, the stream2content function 33c is associated with the block C, and the temp2 variable 33d is associated with the block C. Corresponding to the memory port BCp.

また、process_a関数33eをブロックDに対応させ、temp_a変数33fをブロックDの入力レジスタBDrに対応させ、a_out配列33gへの書き込みをブロックDのメモリポートBEpに対応させる。更に、process_b関数33hをブロックEに対応させ、temp_b変数33iをブロックEの入力レジスタBErに対応させ、b_out配列33jへの書き込みをブロックEのメモリポートBEpに対応させる。   Also, the process_a function 33e is made to correspond to the block D, the temp_a variable 33f is made to correspond to the input register BDr of the block D, and writing to the a_out array 33g is made to correspond to the memory port BEp of the block D. Further, the process_b function 33h is made to correspond to the block E, the temp_b variable 33i is made to correspond to the input register BEr of the block E, and writing to the b_out array 33j is made to correspond to the memory port BEp of the block E.

次に、プログラム動作結果ログ34の例として、図4に例示される動作記述プログラム33の実行ログで説明する。図6は、プログラム動作結果ログ34の例を示す図である。図6に例示されるプログラム動作結果ログ34は、CPU11が動作記述プログラム33を実行した順に、時系列に付与されるログ行番号と、動作記述プログラム33のプログラム行番号を示す実行行番号と、実行内容とを出力した結果を示すログである。   Next, as an example of the program operation result log 34, the execution log of the operation description program 33 illustrated in FIG. 4 will be described. FIG. 6 is a diagram illustrating an example of the program operation result log 34. The program operation result log 34 illustrated in FIG. 6 includes a log line number given in time series, an execution line number indicating the program line number of the operation description program 33, in the order in which the CPU 11 executes the operation description program 33, It is a log showing the result of outputting the execution contents.

実行行番号は、プログラムが実行された順番を示している。実行内容は、この例では、形式「aaa配列(aaa値)からデータが読み出され、bbb変数へ書き込まれる。」で示し、行内で使われた各変数の値を出力している。このような形式とすることで、全ての変数について、書き込みされた行番号、参照された行番号、それらの順番がわかる。変数の依存関係と合わせて、データの流れを追跡することが出来る。   The execution line number indicates the order in which the program is executed. In this example, the execution contents are indicated by the format “data is read from the aaa array (aaa value) and written to the bbb variable”, and the value of each variable used in the line is output. By adopting such a format, it is possible to know the written line numbers, the referenced line numbers, and their order for all variables. Along with variable dependencies, you can track the flow of data.

図7は、図2の処理1にて行なわれる結果ログ解析について説明するためのフローチャートである。図7において、処理1での結果ログ解析を簡潔に説明するために、動作記述プログラム33の他の例と、そのプログラム動作結果ログ34の他の例とを、夫々、動作記述プログラム33sとそのプログラム動作結果ログ34sとして、図8に示す。図8は、動作記述プログラム33の他の例を示す図である。   FIG. 7 is a flowchart for explaining the result log analysis performed in process 1 of FIG. In FIG. 7, in order to briefly explain the result log analysis in the process 1, another example of the operation description program 33 and another example of the program operation result log 34 are respectively represented by the operation description program 33s and its operation description program 33s. The program operation result log 34s is shown in FIG. FIG. 8 is a diagram illustrating another example of the behavior description program 33.

図8に例示される動作記述プログラム33sを実行した際のその実行ログの出力例をプログラム動作結果ログ34sとして示している。この例においても、時系列に付与されるログ行番号と、動作記述プログラム33sのプログラム行番号を示す実行行番号と、実行内容とを出力した結果を示す。この例では、実行内容には、演算処理によって変更される変数を出力変数として、また演算処理によって入力される変数を入力変数とが書き出される。つまり、演算処理によって出力変数は入力変数によって変更される。   An output example of the execution log when the operation description program 33s illustrated in FIG. 8 is executed is shown as a program operation result log 34s. Also in this example, the log line number given in time series, the execution line number indicating the program line number of the operation description program 33s, and the execution contents are shown. In this example, in the execution contents, a variable changed by the arithmetic processing is written as an output variable, and a variable input by the arithmetic processing is written as an input variable. That is, the output variable is changed by the input variable by the arithmetic processing.

例えば、ログ行番号「log−1」としてログ出力された実行行番号「1」では、動作記述プログラム33sを参照すると、「d=regc+regd」が行なわれているため、出力変数を「d」、入力変数を「regc」と「regd」として認識することができる。   For example, in the execution line number “1” output as a log line number “log-1”, “d = regc + regd” is performed when referring to the operation description program 33 s. ”And input variables can be recognized as“ regc ”and“ regd ”.

ログ行番号「log−2」としてログ出力された実行行番号「2」では、動作記述プログラム33sを参照すると、「c=regb−regc」が行なわれているため、出力変数を「c」、入力変数を「regb」と「regc」として認識することができる。   In the execution line number “2” logged as the log line number “log-2”, referring to the operation description program 33s, “c = regb-regc” is performed, so the output variable is “c”, Input variables can be recognized as “regb” and “regc”.

ログ行番号「log−3」としてログ出力された実行行番号「3」では、動作記述プログラム33sを参照すると、「a=c*d」が行なわれているため、出力変数を「a」、入力変数を「c」と「d」として認識することができる。   In the execution line number “3” output as a log line number “log-3”, referring to the operation description program 33s, “a = c * d” is performed, so the output variable is “a”, Input variables can be recognized as “c” and “d”.

ログ行番号「log−4」としてログ出力された実行行番号「4」では、動作記述プログラム33sを参照すると、「b=c+d」が行なわれているため、出力変数を「b」、入力変数を「c」と「d」として認識することができる。   In the execution line number “4” output as a log line number “log-4”, referring to the operation description program 33 s, “b = c + d” is performed, so the output variable is “b”, Input variables can be recognized as “c” and “d”.

ログ行番号「log−5」としてログ出力された実行行番号「5」では、動作記述プログラム33sを参照すると、「rega=min(a,b)」が行なわれているため、出力変数を「rega」、入力変数を「a」と「b」として認識することができる。   In the execution line number “5” output as a log line number “log-5”, referring to the operation description program 33s, “rega = min (a, b)” is performed. rega "and input variables can be recognized as" a "and" b ".

図7に戻り、CPU11は、図8に示すようなプログラム動作結果ログ34sから1行ずつ読み出して、変数の最終変更情報41mが記録されている第1の中間テーブル41(後述)を参照することによって、プログラム動作結果ログ34sに示される入力変数に一致する変数名に対応する変更情報41mを読み出す(ステップS11)。変更情報41mは、ログ行番号とプログラム行番号とで示され、ステップS12での処理によって更新される。   Returning to FIG. 7, the CPU 11 reads out from the program operation result log 34s as shown in FIG. 8 line by line, and refers to a first intermediate table 41 (described later) in which variable final change information 41m is recorded. Thus, the change information 41m corresponding to the variable name matching the input variable shown in the program operation result log 34s is read (step S11). The change information 41m is indicated by a log line number and a program line number, and is updated by the process in step S12.

続けて、CPU11は、プログラム動作結果ログ34sに示されるログ行番号と実行行番号とを、第1の中間テーブル41において出力変数と一致する変数名に対応させて、ログ行番号とプログラム行番号として変更情報41mを書き込む(ステップS12)。   Subsequently, the CPU 11 associates the log line number and the execution line number shown in the program operation result log 34 s with the variable name that matches the output variable in the first intermediate table 41, and the log line number and the program line number. Is written as change information 41m (step S12).

そして、CPU11は、プログラム動作結果ログ34sの処理中のログ行番号と、出力変数と、入力変数と、ステップS11で取得した入力変数の最新の変更情報41mとを、第2の中間テーブル42に格納する(ステップS13)。   Then, the CPU 11 stores the log line number being processed in the program operation result log 34 s, the output variable, the input variable, and the latest change information 41 m of the input variable acquired in step S 11 in the second intermediate table 42. Store (step S13).

CPU11は、プログラム動作結果ログ34sの全ての行を終了したか否かを判断する(ステップS14)。未処理の行がある場合、CPU11は、ステップS11へ戻り、上記した同様の処理を繰り返す。一方、全ての行を終了した場合、CPU11は、図8の動作記述プログラム33sに対応する回路の動作記述の対応表32sを参照して、動作記述名として存在する入力変数と出力変数とを残し、更に、回路データにおける変数の依存関係回路記述名の対応によって示される動作解析結果35を出力する(ステップS15)。   The CPU 11 determines whether or not all lines of the program operation result log 34s have been completed (step S14). If there is an unprocessed row, the CPU 11 returns to step S11 and repeats the same processing as described above. On the other hand, when all the lines are completed, the CPU 11 refers to the behavioral description correspondence table 32s of the circuit corresponding to the behavioral description program 33s in FIG. 8 and leaves the input variables and output variables existing as behavioral description names. Further, the operation analysis result 35 indicated by the correspondence of the circuit description name of the variable dependency relation in the circuit data is output (step S15).

図9は、第1の中間テーブル41のデータ例を示す図である。図9に例示される第1の中間テーブル41は、変数名、ログ行番号、プログラム行番号等の項目を有する。変数名は、動作記述プログラム33sの変数名のうち、プログラム動作結果ログ34sに記録された変数名である。ログ行番号は、その変数が変更された最新のプログラム動作結果ログ34sのログ行番号を示す。プログラム行番号は、その変数が変更された最新の動作記述プログラム33sの行番号を示す。   FIG. 9 is a diagram illustrating an example of data in the first intermediate table 41. The first intermediate table 41 illustrated in FIG. 9 includes items such as variable names, log line numbers, and program line numbers. The variable name is a variable name recorded in the program operation result log 34s among the variable names of the operation description program 33s. The log line number indicates the log line number of the latest program operation result log 34s in which the variable has been changed. The program line number indicates the line number of the latest behavioral description program 33s whose variable has been changed.

第1の中間テーブル41では、変数名「a」、「b」、「c」、「d」、「rega」、「regb」、「regc」、及び「regd」が格納され、そのうち変数名「a」、「b」、「c」、「d」、及び「rega」が、それら値が変更されていることを示している。これら変数名に対応するログ行番号及びプログラム行番号が、変更された最新の変更情報41mとなる。変数名「regb」、「regc」、及び「regd」については、それら値が変更されなかったことを示している。   The first intermediate table 41 stores variable names “a”, “b”, “c”, “d”, “rega”, “regb”, “regc”, and “regd”, of which the variable name “ “a”, “b”, “c”, “d”, and “rega” indicate that the values are changed. The log line number and the program line number corresponding to these variable names become the latest changed change information 41m. The variable names “regb”, “regc”, and “regd” indicate that their values were not changed.

図10は、第2の中間テーブル42のデータ例を示す図である。図10に例示される第2の中間テーブル42は、ログ行番号、出力変数、入力変数1、入力変数2等の項目を有する。入力変数に関して入力変数1、入力変数2の2項目を有する例としているが、項目数は、動作記述プログラム33sにおける入力変数の数に対応した項目数とすればよい。   FIG. 10 is a diagram illustrating an example of data in the second intermediate table 42. The second intermediate table 42 illustrated in FIG. 10 includes items such as a log line number, an output variable, an input variable 1, and an input variable 2. Although the example has two items of the input variable 1 and the input variable 2 for the input variable, the number of items may be the number of items corresponding to the number of input variables in the behavioral description program 33s.

ログ行番号は、出力変数がログ出力された際のプログラム動作結果ログ34sのログ行番号を示す。入力変数1及び入力変数2は、夫々、第1の中間テーブル41から取得した変更情報41mのログ行番号と入力変数との対で示される。ここで、出力変数、入力変数1及び入力変数2は、動作記述プログラム33sの動作記述名(例えばCプログラムの変数名)である。   The log line number indicates the log line number of the program operation result log 34s when the output variable is output as a log. The input variable 1 and the input variable 2 are indicated by a pair of a log line number and an input variable of the change information 41m acquired from the first intermediate table 41, respectively. Here, the output variable, the input variable 1, and the input variable 2 are operation description names (for example, variable names of the C program) of the operation description program 33s.

このデータ例において、動作記述名「rega」、「regb」、「regc」、及び「regd」に対応する回路記述名が回路と動作記述の対応表32sで示されている場合に、図7のステップS15の処理について図11で説明する。図11は、動作解析結果35の作成方法を示す図である。   In this data example, when the circuit description names corresponding to the operation description names “rega”, “regb”, “regc”, and “regd” are shown in the circuit / operation description correspondence table 32s, FIG. The process of step S15 will be described with reference to FIG. FIG. 11 is a diagram illustrating a method for creating the motion analysis result 35.

図11において、図10に示す第2の中間テーブル42のデータ例からプログラム変数によるプログラム変数依存関係51が導かれる。このプログラム変数依存関係51において、図8の動作記述プログラム33sに対応する回路の動作記述の対応表32sを参照して、対応する回路記述名によって依存関係を示す回路記述依存変数関係52が導き出される。 In FIG. 11, the program variable dependency 51 by the program variable is derived from the data example of the second intermediate table 42 shown in FIG. In the program variable dependency relationship 51, a circuit description dependency variable relationship 52 indicating a dependency relationship is derived by referring to the correspondence table 32s of the operation description of the circuit corresponding to the operation description program 33s of FIG. .

ログ作業テーブル45は、図7のステップS15での処理によって、図8の動作記述プログラム33sに対応する回路の動作記述の対応表32sを参照して、図10に示す第2の中間テーブル42から動作記述名として存在する入力変数と出力変数とを残したテーブルである。   The log work table 45 is obtained from the second intermediate table 42 shown in FIG. 10 by referring to the correspondence table 32s of the circuit operation description corresponding to the operation description program 33s shown in FIG. 8 by the processing in step S15 shown in FIG. It is a table in which input variables and output variables existing as operation description names are left.

動作解析結果35では、ログ作業テーブル45の出力変数、入力変数1、入力変数2、入力変数3に対応する回路記述名を設定され。この際、入力変数1、入力変数2、入力変数3には、図7のステップS11で取得した変更情報のログ行番号を併せて設定される。 In operation analysis result 35, the output variable of the log work table 45, the input variable 1, an input variable 2, Ru is set circuit description name corresponding to the input variable 3. At this time, the input variable 1, the input variable 2, and the input variable 3 are set together with the log line number of the change information acquired in step S11 of FIG.

次に、図2における処理2について説明する。図12は、図2の処理2にて行なわれるデータパス解析について説明するためのフローチャートである。図12において、CPU11は、回路記述名で変数が示される動作解析結果35を参照して、依存関係を示すものを活性化データパスとして取得する(ステップS21)。例えば、図3に示すLSI3の回路構成例において、メモリAから、ブロックCを通り、ブロックEを通り、メモリBに至るデータパスが取得される。   Next, process 2 in FIG. 2 will be described. FIG. 12 is a flowchart for explaining the data path analysis performed in process 2 of FIG. In FIG. 12, the CPU 11 refers to the operation analysis result 35 in which the variable is indicated by the circuit description name, and acquires the one indicating the dependency as the activation data path (step S21). For example, in the circuit configuration example of the LSI 3 illustrated in FIG. 3, a data path from the memory A, passing through the block C, passing through the block E, and reaching the memory B is acquired.

次に、CPU11は、データパスにおけるメモリのスループットを算出する(ステップS22)。ステップS22において、CPU11は、動作記述プログラム33と回路データ31とを参照して、メモリのI/Oのスループットを計算する。格納データのサイズとメモリのI/O幅から必要クロックを算出する。   Next, the CPU 11 calculates the memory throughput in the data path (step S22). In step S22, the CPU 11 refers to the operation description program 33 and the circuit data 31 to calculate the I / O throughput of the memory. The necessary clock is calculated from the size of the stored data and the I / O width of the memory.

例えば、図5の回路と動作記述の対応表32により、メモリAとdata_in配列とが対応する場合、Cプログラム言語による動作記述プログラム33を参照することによりdata_in配列の1回のアクセスがAバイトであることを取得し、RTLによる回路データ31を参照することによりメモリI/OのスループットがBバイト/クロックであることを取得することができる。よって、data_in配列の1回のアクセスのクロック数は、A/Bクロックとなる。   For example, when the memory A corresponds to the data_in array according to the correspondence table 32 of the circuit and the operation description in FIG. 5, by referring to the operation description program 33 in the C program language, one access to the data_in array is A bytes. It is possible to acquire that there is a certain thing and that the throughput of the memory I / O is B bytes / clock by referring to the circuit data 31 by RTL. Therefore, the number of clocks for one access in the data_in array is the A / B clock.

そして、CPU11は、データパスの処理時間を計算する(ステップS23)。依存関係の被参照位置から参照位置までのデータパスのスループットが算出される。CPU11は、RTLの回路データ31によって動作する回路範囲(動作モジュール)を推定、動作するデータパスのレジスタ段数を抽出して見積もる。 Then, the CPU 11 calculates the data path processing time (step S23). The throughput of the data path from the referenced position of the dependency relationship to the reference position is calculated. CPU11 estimates the circuit range (operating modules) which operate by the circuit data 31 of RTL, estimated by extracting the register stages of the data path to operate.

更に、CPU11は、ステップS21で選択した活性化データパスにおける依存関係からブロック間の動作時間を算出して、遅延解析結果36として記憶領域に出力する(ステップS24)。各ブロックの動作状況が決定され、動作率が算出される。例えば、動作記述プログラム33に沿って、各ブロックの処理時間の積み上げを行い、全体の処理時間をスケジュールして全体の処理時間を決定する。   Further, the CPU 11 calculates the operation time between the blocks from the dependency relationship in the activation data path selected in step S21, and outputs it as a delay analysis result 36 to the storage area (step S24). The operation status of each block is determined, and the operation rate is calculated. For example, the processing time of each block is accumulated along the operation description program 33, and the overall processing time is determined by scheduling the entire processing time.

図13は、図12のステップS23におけるデータパスの処理時間の計算方法を説明するためのフローチャート図である。図13において、CPU11は、回路データ31を参照して、メモリやレジスタなどの順序回路素子をノードとしてレジスタグラフを作成す(ステップS23−1)。メモリやレジスタなどの順序回路素子をノードとして抽出した後、メモリを含むレジスタ(以下、単にレジスタ)の出力から組み合わせ回路により接続された次のレジスタまでのデータパスを有効アークとして、レジスタグラフ43を作成し記憶領域に出力する。 FIG. 13 is a flowchart for explaining a method of calculating the data path processing time in step S23 of FIG. In Figure 13, CPU 11 refers to the circuit data 31, to create a register graph sequential circuit element such as a memory or register as a node (step S23-1). After extracting a sequential circuit element such as a memory or a register as a node, a data path from the output of a register including the memory (hereinafter simply referred to as a register) to the next register connected by a combinational circuit is used as a valid arc, and a register graph 43 is displayed. Create and output to storage area.

そして、CPU11は、プログラム動作結果ログ34から、回路データ31との間で対応のある入力ポイント(入力変数)と出力ポイント(出力変数)とを読み取って、レジスタグラフ43の対応するレジスタ間の最多パス(同じ段数で到達するパスが多いもの)をレジスタ段数とする(ステップS23−2)。経路が見つからなかった場合、最も近いレジスタ間にパスがあるものと仮定する。   Then, the CPU 11 reads the input point (input variable) and the output point (output variable) that correspond to the circuit data 31 from the program operation result log 34, and the maximum number among the corresponding registers of the register graph 43. Paths (those with many paths that reach the same number of stages) are set as the number of register stages (step S23-2). If no route is found, assume there is a path between the nearest registers.

次に、CPU11は、処理時間を算出する(ステップS23−3)。データパスのレジスタ段数から処理時間を算出する。或いは、動作記述プログラム33を参照することによって、配列で定義されるデータのサイズをデータ量とし、データパスのバンド幅で割る演算によって処理時間を算出してもよい。   Next, the CPU 11 calculates a processing time (step S23-3). The processing time is calculated from the number of register stages in the data path. Alternatively, by referring to the operation description program 33, the processing time may be calculated by calculating the data size defined by the array as the data amount and dividing by the data path bandwidth.

更に、CPU11は、処理のステップ数を算出する(ステップS23−4)。例えば、ループ回数を判定することによってステップ数を算出する。ループ回数で判定する場合には、
(1)ループは2回として計算する。
(2)具体的な回数を集計せず、変数(例えばNloop)として式で出力する。
(3)ログから推定する。
Further, the CPU 11 calculates the number of processing steps (step S23-4). For example, the number of steps is calculated by determining the number of loops. When judging by the number of loops,
(1) The loop is calculated as twice.
(2) A specific number of times is not counted and is output as a variable (for example, Nloop) by an expression.
(3) Estimate from the log.

ログから推定する場合には、データ量から関係する/関係しそうな変数を入力として用いてプログラム動作結果ログ34から得られたログの量(ログ行数)に基づいてステップ数を算出する。   When estimating from the log, the number of steps is calculated based on the amount of logs (number of log lines) obtained from the program operation result log 34 by using as input the variables related / probably related from the data amount.

図12のステップS24では、このステップS23−4で算出されたステップ数を用いて、ブロック間の動作時間を算出する。図14は、動作時間の算出例を説明するための図である。図14では、図3に示すLSI3の構成例に基づいて、回路データ31におけるメモリやブロックの回路記述名(変数名)毎の動作状態を、時間軸に沿って例示している。   In step S24 of FIG. 12, the operation time between blocks is calculated using the number of steps calculated in step S23-4. FIG. 14 is a diagram for explaining an example of calculating the operation time. In FIG. 14, the operation state for each circuit description name (variable name) of the memory or block in the circuit data 31 is illustrated along the time axis based on the configuration example of the LSI 3 shown in FIG.

図14において、時刻Taで、ブロックはメモリAの読み出しを開始する。時刻Taから時刻Tb間で、メモリAの読み出しに6サイクルかかることを示している。ブロックCのメモリポートBCpから出力先のブロックDの入力レジスタBDrまでの処理には、4サイクルかかることを示している。

In FIG. 14, the block C starts reading the memory A at time Ta. It shows that it takes 6 cycles to read the memory A between the time Ta and the time Tb. It shows that the processing from the memory port BCp of the block C to the input register BDr of the output destination block D takes 4 cycles.

従って、時刻Tbから時刻Tc間で、ブロックCがメモリAから読み出しを終了してから4サイクル後に、ブロックCはブロックDへデータを渡す。時刻Tcから時刻Tf間で、ブロックDはメモリBへの書き込みの6サイクルを含めて、10サイクルで処理を行うことを示している。   Therefore, between time Tb and time Tc, block C passes data to block D four cycles after block C finishes reading from memory A. From time Tc to time Tf, the block D indicates that processing is performed in 10 cycles including 6 cycles of writing to the memory B.

また、時刻Tcで、ブロックDは次のメモリAの読み出しを開始する。時刻Tcから時刻Te間で、メモリAの読み出しに6サイクルかかることを示している。ブロックCのメモリポートBCpから出力先のブロックEの入力レジスタBErまでの処理には、4サイクルかかることを示している。   At time Tc, the block D starts reading the next memory A. It shows that it takes 6 cycles to read the memory A between the time Tc and the time Te. It shows that the process from the memory port BCp of the block C to the input register BEr of the output destination block E takes 4 cycles.

従って、時刻Teから時刻Tf間で、ブロックCがメモリAから読み出しを終了してから4サイクル後に、ブロックCはブロックEへデータを渡す。時刻Tfから時刻Th間で、ブロックEはメモリBへの書き込みの6サイクルを含めて、10サイクルで処理を行うことを示している。   Therefore, between the time Te and the time Tf, the block C passes data to the block E four cycles after the block C finishes reading from the memory A. From time Tf to time Th, the block E indicates that processing is performed in 10 cycles including 6 cycles of writing to the memory B.

このように処理にかかったサイクル数が、記憶領域に遅延解析結果36として出力される。   Thus, the number of cycles required for processing is output as a delay analysis result 36 to the storage area.

次に、図2における処理3について説明する。図15は、図2の処理3にて行なわれるデータトグル率の算出方法について説明するためのフローチャートである。トグル率とは、クロック1回当たりの平均変化回数である。図15において、CPU11は、回路と動作記述の対応表で対応付けされている変数の変化率を算出して、回路データ31におけるレジスタの変化率とする(ステップS31)。   Next, process 3 in FIG. 2 will be described. FIG. 15 is a flowchart for explaining a data toggle rate calculation method performed in process 3 of FIG. The toggle rate is the average number of changes per clock. In FIG. 15, the CPU 11 calculates the change rate of the variable associated with the correspondence table between the circuit and the behavioral description and sets it as the change rate of the register in the circuit data 31 (step S <b> 31).

そして、CPU11は、ブロック毎にデータパス間のレジスタの変化率の平均を算出して、そのブロックのデータトグル率とする(ステップS32)。   Then, the CPU 11 calculates the average of the register change rate between the data paths for each block, and sets it as the data toggle rate of the block (step S32).

また、CPU11は、プログラム動作結果ログ34を参照することによって、各メモリの読み出し回数と書き込み回数とをそのメモリのアクセス情報として取得して、ブロック毎のデータトグル率と、データトグル率を算出する際に用いたクロックサイクル数と、メモリ毎のアクセス情報とを動作率見積もり結果37として記憶領域に出力する(ステップS33)。   Further, the CPU 11 refers to the program operation result log 34 to acquire the read count and the write count of each memory as access information of the memory, and calculates the data toggle rate and the data toggle rate for each block. The number of clock cycles used at that time and the access information for each memory are output to the storage area as the operation rate estimation result 37 (step S33).

CPU11は、プログラム動作結果ログ34を参照することによって、回路と動作記述の対応表で対応付けされている変数が変更される回数をカウントすることで変更回数を得ることができる。例えば、レジスタAとレジスタBとが回路と動作記述の対応表32で対応付けされており、また、レジスタAが32ビット幅であると仮定して説明する。   The CPU 11 can obtain the number of changes by referring to the program operation result log 34 and counting the number of times the variable associated with the correspondence table between the circuit and the operation description is changed. For example, description will be made assuming that the register A and the register B are associated with each other in the correspondence table 32 of the circuit and the operation description, and that the register A has a 32-bit width.

例えば、レジスタAが5クロックサイクルで、DA1−>DA2−>DA3−>DA4と3回データが変更されたとすると、一回のデータ変化は、変化ビット数をビット幅で割り算した値で求められるため、
DA1−>DA2でビットの変化が8箇所である場合、8/32変化であり、
DA2−>DA3でビットの変化が6箇所である場合、6/32変化であり、
DA3−>DA4でビットの変化が7箇所である場合、7/32変化である。
For example, if the register A is 5 clock cycles and the data is changed three times such as DA1->DA2->DA3-> DA4, a single data change can be obtained by dividing the number of changed bits by the bit width. For,
If DA1-> DA2 and there are 8 bit changes, then 8/32 change,
If DA2-> DA3 and there are 6 bit changes, then 6/32 changes.
If DA3-> DA4 and there are 7 bit changes, it is a 7/32 change.

レジスタのクロック当たりの平均データトグル率は、
ビット変化総数÷(ビット総数×クロックサイクル数)
=(8+6+7)÷(32×5)=0.13125 となる。
The average data toggle rate per register clock is
Total number of bit changes ÷ (total number of bits × number of clock cycles)
= (8 + 6 + 7) ÷ (32 × 5) = 0.13125

同様にレジスタBでの平均データトグル率を計算した結果、0.3となった場合、レジスタA−B間で示されるブロックのデータトグル率を2つの平均の0.215625とする。このようにして算出されたブロックのデータトグル率は、組み合わせ回路トグル率として参照される。   Similarly, if the average data toggle rate in the register B is 0.3, the data toggle rate of the block indicated between the registers A and B is 0.215625, which is the average of the two. The data toggle rate of the block calculated in this way is referred to as a combinational circuit toggle rate.

次に、図2における処理4について説明する。図16は、図2の処理4にて行なわれる電力見積もり方法について説明するためのフローチャートである。図16において、CPU11は、レイアウト後セル情報51と、各ネットの負荷容量値52と、素子電力情報53と、電源電圧値54と、処理3による動作率見積もり結果37とを参照して、各素子について、素子の分類に応じたステップS61からS64の処理を実行して電力を計算し、それらの総和を求める(ステップS60)。   Next, the process 4 in FIG. 2 is demonstrated. FIG. 16 is a flowchart for explaining the power estimation method performed in process 4 of FIG. In FIG. 16, the CPU 11 refers to the post-layout cell information 51, the load capacity value 52 of each net, the element power information 53, the power supply voltage value 54, and the operation rate estimation result 37 by the process 3. For the elements, the processes of steps S61 to S64 corresponding to the element classification are executed to calculate the power, and the total sum thereof is obtained (step S60).

素子がクロック素子の場合はステップS61を実行して、クロック素子の電力を計算する。素子がFF(フリップフロップ)素子の場合はステップS62を実行して、FF素子の電力を計算する。素子がメモリ素子の場合はステップS63を実行して、メモリ素子の電力を計算する。素子が上記以外の素子の場合はステップS64を実行して、データパス系のゲート電力を計算する。   If the element is a clock element, step S61 is executed to calculate the power of the clock element. If the element is an FF (flip flop) element, step S62 is executed to calculate the power of the FF element. If the element is a memory element, step S63 is executed to calculate the power of the memory element. If the element is an element other than the above, step S64 is executed to calculate the gate power of the data path system.

上述した電力見積もり方法は、例えば、CMOS回路の動的電力は、各素子出力の充放電電力の総和で求められることに基づく。すなわち、
全素子Σ{素子内部電力+出力ネット充放電電力}
で表される。
The power estimation method described above is based on, for example, that the dynamic power of a CMOS circuit is obtained as the sum of charge / discharge power of each element output. That is,
All elements Σ {element internal power + output net charge / discharge power}
It is represented by

データパスのノードとなる素子毎の動作回数は、
時間(クロック)当たりのトグル率(変化回数)×動作時間(クロック数)
で求められる。動作時間は、上述処理2で算出された遅延解析結果36を参照することによって得られる。
The number of operations for each element that is a node of the data path is
Toggle rate per time (clock) (number of changes) x operation time (number of clocks)
Is required. The operation time is obtained by referring to the delay analysis result 36 calculated in the above process 2.

各素子の電力は、
負荷容量×動作回数
となる。
The power of each element is
Load capacity x number of operations.

以下、素子の分類毎の電力見積もり方法について示す。上記動作回数は、クロックトグル回数によって表される。また、処理3で算出されたデータトグル率は、組合せ回路トグル率として表される。クロック素子電力はステップS61、FF電力はステップS62、メモリ電力はステップS63、そして、組合せ回路電力はステップS64にて算出される。   The power estimation method for each element classification will be described below. The number of operations is represented by the number of clock toggles. The data toggle rate calculated in process 3 is expressed as a combinational circuit toggle rate. The clock element power is calculated in step S61, the FF power is calculated in step S62, the memory power is calculated in step S63, and the combinational circuit power is calculated in step S64.

・クロック素子電力=(クロックトグル回数×クロックトグル1回当たりの電力)
・FF電力=クロック電力+データ電力
=(クロックトグル回数×クロック1回当りの電力)+
(クロックトグル回数×組合せ回路トグル率×データトグル1回当たりの電力)
・メモリ電力=メモリ読み出し回数×メモリ読み出し1回当たりの電力
+メモリ書き込み回数×メモリ書き込み1回当たりの電力
・組合せ回路電力=データ電力
=(クロックトグル回数×組合せ回路トグル率×データトグル1回当たりの電力)
-Clock element power = (clock toggle times x power per clock toggle)
-FF power = clock power + data power = (clock toggle times x power per clock) +
(Clock toggle times x combinational circuit toggle rate x power per data toggle)
-Memory power = Memory read count x Power per memory read
+ Number of memory writes x Power per memory write-Combination circuit power = Data power = (Number of clock toggles x Combination circuit toggle rate x Power per data toggle)

メモリ読み出し1回当たりの電力、及びメモリ書き込み1回当たりの電力は、素子電力情報53から入力される。   The power per memory read and the power per memory write are input from the element power information 53.

上記計算において、データトグル1回当たりの電力は、
データトグル1回当たりの素子内部電力
+データトグル1回当たりの出力ネット放電電力
で求められる。処理3で算出したデータトグル率を組合せ回路トグル率として、データトグル1回当たりの電力と動作回数を示すクロックトグル回数とを乗算することによってデータ電力を求めることができる。
In the above calculation, the power per data toggle is
Device internal power per data toggle
+ Calculated by output net discharge power per data toggle. Data power can be obtained by multiplying the power per data toggle by the number of clock toggles indicating the number of operations by using the data toggle rate calculated in the process 3 as a combinational circuit toggle rate.

ここで、データトグル1回当たりの素子内部電力は、素子電力情報53から入力される。半導体製造テクノロジに依存して決められる情報である。   Here, the element internal power per data toggle is input from the element power information 53. This information is determined depending on the semiconductor manufacturing technology.

また、データトグル1回当たりの出力ネット放電電力は、素子電力情報53から入力される。レイアウト後セル情報51を参照することによって特定した処理中の素子を示すネット駆動セルと、各ネットの負荷容量値52を参照することによって特定されるそのネット駆動セルのネットの負荷容量値との組合せによって、素子電力情報53から出力ネット充放電電力を取得する。   The output net discharge power per data toggle is input from the element power information 53. A net driving cell indicating an element being processed specified by referring to post-layout cell information 51, and a net load capacity value of the net driving cell specified by referring to load capacity value 52 of each net The output net charge / discharge power is acquired from the element power information 53 by the combination.

上述より、RTLによる回路データ31から、LSI3の電力を見積もることができる。つまり、動作プログラムログから得た依存関係においてRTLの変数に置き換えたデータパスを用いて算出した素子の動作時間を用いて、各素子の動作率や電力を算出し、電力の総和で集積回路の電力を見積もることができる。   As described above, the power of the LSI 3 can be estimated from the circuit data 31 by RTL. In other words, the operation rate and power of each element are calculated using the operation time of the element calculated using the data path replaced with the RTL variable in the dependency obtained from the operation program log, and the sum of the power is used to calculate the integrated circuit. The power can be estimated.

従って、LSI3の動作率の見積もりを、チップ全体のレベルで実行可能なネットがない状態である機能仕様書(FS)の段階であっても、早期に行なうことができる。また、電力見積もり結果を電源設計に用いることができるため、設計見直しなどの手戻りの発生を低減することができ、効率的なLSI設計を行なうことができる。   Therefore, the operation rate of the LSI 3 can be estimated at an early stage even at the functional specification (FS) stage where there is no net that can be executed at the level of the entire chip. In addition, since the power estimation result can be used for power supply design, occurrence of rework such as design review can be reduced, and efficient LSI design can be performed.

以上の説明に関し、更に以下の項を開示する。
(付記1)
集積回路の消費電力検証方法であって、
回路データで記述される論理回路モジュール毎のデータトグル率を算出する動作率算出手順と、
データ電力を要する素子に対しては前記データトグル率を用いて該データ電力を算出して、全素子の電力の総和を算出する電力総和算出手順とをコンピュータが実行することを特徴とする集積回路の消費電力検証方法。
(付記2)
電力総和算出手順は、
前記データ電力を要する素子に対しては、前記データトグル率にデータトグル1回当たりの電力と動作回数を示すクロックトグル回数とを乗算することによってデータ電力を算出することを特徴とする付記1記載の集積回路の消費電力検証方法。
(付記3)
動作率算出手順は、
前記論理回路モジュールを有する集積回路の動作をプログラムした動作記述プログラムの第一の変数と前記回路データの第二の変数との対応表を参照することにより、該動作記述プログラムを実行することによって得られた動作結果ログを用いて、該第二の変数が対応する該第一の変数のデータの1クロック当たりの変化回数を変化率として算出する変化回数算出手順と、
データパス間の変数の変化率の平均をデータトグル率として算出するデータトグル率算出手順とを有することを特徴とする付記2記載の集積回路の消費電力検証方法。
(付記4)
データフローを示すデータパスを解析して、該データパス上の前記論理回路モジュール毎の動作時間を出力するデータパス解析手順を前記コンピュータに実行させ、
電力総和算出手順は、クロック当たりの変化回数と前記動作時間とを乗算することによってクロックトグル回数を算出することを特徴とする付記3記載の集積回路の消費電力検証方法。
(付記5)
前記動作結果ログを用いて論理回路モジュール間の依存関係を解析し、前記対応表を用いて依存関係における前記動作記述プログラムの第一の変数を対応する前記回路データの第二の変数で示した動作解析結果を出力するログ解析手順を前記コンピュータに実行させ、
前記データパス解析手順は、前記第二の変数による前記依存関係を示す動作解析結果を用いて前記データパスを解析することを特徴とする付記4記載の集積回路の消費電力検証方法。
(付記6)
集積回路の消費電力検証装置であって、
回路データで記述される論理回路モジュール毎のデータトグル率を算出する動作率算出手段と、
データ電力を要する素子に対しては前記データトグル率を用いて該データ電力を算出して、全素子の電力の総和を算出する電力総和算出手段とを有することを特徴とする集積回路の消費電力検証装置。
(付記7)
集積回路の消費電力検証装置としてコンピュータに機能させるプログラムを格納したコンピュータ読取可能な記憶媒体であって、該コンピュータに、
回路データで記述される論理回路モジュール毎のデータトグル率を算出する動作率算出手段と、
データ電力を要する素子に対しては前記データトグル率を用いて該データ電力を算出して、全素子の電力の総和を算出する電力総和算出手段として機能させることを特徴とするコンピュータ読取可能な記憶媒体。
(付記8)
集積回路の消費電力検証装置としてコンピュータに機能させるコンピュータ実行可能プログラムであって、該コンピュータに、
回路データで記述される論理回路モジュール毎のデータトグル率を算出する動作率算出手順と、
データ電力を要する素子に対しては前記データトグル率を用いて該データ電力を算出して、全素子の電力の総和を算出する電力総和算出手順とを実行させることを特徴とするコンピュータ実行可能プログラム。
Regarding the above description, the following items are further disclosed.
(Appendix 1)
A method for verifying power consumption of an integrated circuit, comprising:
An operation rate calculation procedure for calculating a data toggle rate for each logic circuit module described in the circuit data;
An integrated circuit characterized in that, for an element that requires data power, a computer executes a power sum calculation procedure for calculating the data power using the data toggle rate and calculating the sum of the power of all elements. Power consumption verification method.
(Appendix 2)
The total power calculation procedure is as follows:
The data power is calculated by multiplying the element that requires the data power by multiplying the data toggle rate by the power per data toggle and the number of clock toggles indicating the number of operations. Power consumption verification method for integrated circuits.
(Appendix 3)
The operating rate calculation procedure is as follows:
It is obtained by executing the operation description program by referring to a correspondence table between the first variable of the operation description program that programs the operation of the integrated circuit having the logic circuit module and the second variable of the circuit data. A change count calculation procedure for calculating, as a change rate, the number of changes per clock of the data of the first variable corresponding to the second variable using the obtained operation result log;
The method for verifying power consumption of an integrated circuit according to appendix 2, further comprising: a data toggle rate calculation procedure for calculating an average change rate of variables between data paths as a data toggle rate.
(Appendix 4)
Analyzing a data path indicating a data flow, causing the computer to execute a data path analysis procedure for outputting an operation time for each logic circuit module on the data path,
4. The method of verifying power consumption of an integrated circuit according to appendix 3, wherein the power sum calculation procedure calculates the number of clock toggles by multiplying the number of changes per clock by the operation time.
(Appendix 5)
Using the operation result log, the dependency relationship between the logic circuit modules is analyzed, and using the correspondence table, the first variable of the operation description program in the dependency relationship is indicated by the second variable of the corresponding circuit data. Causing the computer to execute a log analysis procedure for outputting an operation analysis result;
5. The method for verifying power consumption of an integrated circuit according to appendix 4, wherein the data path analysis procedure analyzes the data path using an operation analysis result indicating the dependency relationship by the second variable.
(Appendix 6)
An apparatus for verifying power consumption of an integrated circuit,
An operation rate calculating means for calculating a data toggle rate for each logic circuit module described in the circuit data;
Power consumption of an integrated circuit, characterized in that it has power sum calculation means for calculating the data power using the data toggle rate for an element that requires data power and calculating the sum of the power of all elements Verification device.
(Appendix 7)
A computer-readable storage medium storing a program that causes a computer to function as a power consumption verification device for an integrated circuit,
An operation rate calculating means for calculating a data toggle rate for each logic circuit module described in the circuit data;
A computer-readable storage for an element that requires data power, wherein the data power is calculated using the data toggle rate and functions as a power sum calculating means for calculating a sum of powers of all elements. Medium.
(Appendix 8)
A computer executable program that causes a computer to function as a power consumption verification device for an integrated circuit,
An operation rate calculation procedure for calculating a data toggle rate for each logic circuit module described in the circuit data;
A computer-executable program for executing an electric power sum calculation procedure for calculating an electric power sum of all elements by calculating the data electric power for an element that requires data electric power using the data toggle rate .

本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。   The present invention is not limited to the specifically disclosed embodiments, and various modifications and changes can be made without departing from the scope of the claims.

3 LSI
11 CPU
12 メモリユニット
13 表示ユニット
14 出力ユニット
15 入力ユニット
16 通信ユニット
17 記憶装置
18 ドライバ
19 記憶媒体
31 回路データ
32、32s 回路と動作記述の対応表
33、33s 動作記述プログラム
34、34s プログラム動作結果ログ
35 動作解析結果
36 遅延解析結果
37 動作率見積もり結果
38 電力結果
41 第1の中間テーブル
42 第2の中間テーブル
43 レジスタグラフ
45 ログ作業テーブル
100 消費電力検証装置
3 LSI
11 CPU
DESCRIPTION OF SYMBOLS 12 Memory unit 13 Display unit 14 Output unit 15 Input unit 16 Communication unit 17 Memory | storage device 18 Driver 19 Storage medium 31 Circuit data 32, 32s Correspondence table 33, 33s Operation description program 34, 34s Program operation result log 35 Operation analysis result 36 Delay analysis result 37 Operation rate estimation result 38 Power result 41 First intermediate table 42 Second intermediate table 43 Register graph 45 Log work table 100 Power consumption verification device

Claims (5)

集積回路の消費電力検証方法であって、
論理回路モジュールを有する集積回路の動作をプログラムした動作記述プログラムの第一の変数と回路データの第二の変数との対応表を参照することにより、該動作記述プログラムを実行することによって得られた動作結果ログを用いて、該第二の変数が対応する該第一の変数のデータの1クロック当たりの変化回数を変化率として算出し、該算出した変化率に基づいて該回路データで記述される論理回路モジュール毎のデータトグル率を算出する動作率算出手順と、
前記動作結果ログを用いた回路データの第二の変数間の依存関係に基づいてデータフローを示すデータパスを解析して、該データパス上の前記論理回路モジュール毎の動作時間を出力するデータパス解析手順と、
データ電力を要する素子に対しては前記データトグル率と前記動作時間とを用いて該データ電力を算出して、全素子の電力の総和を算出する電力総和算出手順とをコンピュータが実行することを特徴とする集積回路の消費電力検証方法。
A method for verifying power consumption of an integrated circuit, comprising:
Obtained by executing the operation description program by referring to the correspondence table between the first variable of the operation description program that programmed the operation of the integrated circuit having the logic circuit module and the second variable of the circuit data. with reference to an operation result log, said second variable is calculated the number of changes per clock data of the corresponding of the first variable as the rate of change is written in the circuit data based on the change rate of the calculated the operation rate calculating procedure for calculating the data toggle rate for each said logic circuit module that,
A data path that analyzes the data path indicating the data flow based on the dependency relationship between the second variables of the circuit data using the operation result log and outputs the operation time for each logic circuit module on the data path Analysis procedure and
For an element requiring data power, the computer executes a power sum calculation procedure for calculating the data power using the data toggle rate and the operation time and calculating the sum of the power of all elements. A method for verifying power consumption of an integrated circuit.
前記電力総和算出手順は、
前記データ電力を要する素子に対しては、前記データトグル率にデータトグル1回当たりの電力と動作回数を示すクロックトグル回数とを乗算することによってデータ電力を算出することを特徴とする請求項1記載の集積回路の消費電力検証方法。
The total power calculation procedure is as follows:
The data power is calculated by multiplying the data toggle rate by the data toggle rate by the power per data toggle and the number of clock toggles indicating the number of operations. The power consumption verification method of the described integrated circuit.
前記動作率算出手順は、
データパス間の変数の変化率の平均をデータトグル率として算出するデータトグル率算出手順有することを特徴とする請求項2記載の集積回路の消費電力検証方法。
The operating rate calculation procedure is as follows:
Power verification method for an integrated circuit according to claim 2, characterized in that it has a data toggle rate calculation procedure for calculating the average of the rate of change of variables between data path as the data toggle rate.
前記電力総和算出手順は、クロック当たりの変化回数と前記動作時間とを乗算することによってクロックトグル回数を算出することを特徴とする請求項3記載の集積回路の消費電力検証方法。 4. The method for verifying power consumption of an integrated circuit according to claim 3, wherein the total power calculation procedure calculates the number of clock toggles by multiplying the number of changes per clock by the operation time. 前記動作結果ログを用いて論理回路モジュール間の依存関係を解析し、前記対応表を用いて依存関係における前記動作記述プログラムの第一の変数を対応する前記回路データの第二の変数で示した動作解析結果を出力するログ解析手順を前記コンピュータに実行させ、
前記データパス解析手順は、前記第二の変数による前記依存関係を示す動作解析結果を用いて前記データパスを解析することを特徴とする請求項4記載の集積回路の消費電力検証方法。
Using the operation result log, the dependency relationship between the logic circuit modules is analyzed, and using the correspondence table, the first variable of the operation description program in the dependency relationship is indicated by the second variable of the corresponding circuit data. Causing the computer to execute a log analysis procedure for outputting an operation analysis result;
5. The integrated circuit power consumption verification method according to claim 4, wherein the data path analysis procedure analyzes the data path by using an operation analysis result indicating the dependence relationship by the second variable.
JP2009154612A 2009-06-30 2009-06-30 Integrated circuit power consumption verification method Expired - Fee Related JP5310312B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009154612A JP5310312B2 (en) 2009-06-30 2009-06-30 Integrated circuit power consumption verification method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009154612A JP5310312B2 (en) 2009-06-30 2009-06-30 Integrated circuit power consumption verification method

Publications (2)

Publication Number Publication Date
JP2011013713A JP2011013713A (en) 2011-01-20
JP5310312B2 true JP5310312B2 (en) 2013-10-09

Family

ID=43592585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009154612A Expired - Fee Related JP5310312B2 (en) 2009-06-30 2009-06-30 Integrated circuit power consumption verification method

Country Status (1)

Country Link
JP (1) JP5310312B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458501B2 (en) * 2010-07-27 2013-06-04 International Business Machines Corporation Measuring data switching activity in a microprocessor

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142927A (en) * 1999-11-16 2001-05-25 Matsushita Electric Ind Co Ltd Design method for semiconductor integrated circuit device, power consumption analyzing method for circuit and power consumption analyzing device
JP2004054756A (en) * 2002-07-23 2004-02-19 Nec Electronics Corp Power consumption estimation device and method
JP2005293163A (en) * 2004-03-31 2005-10-20 Nec Electronics Corp Power consumption calculation method and apparatus
WO2008041280A1 (en) * 2006-09-29 2008-04-10 Fujitsu Limited Method for calculating power consumption of semiconductor integrated circuit and apparatus for designing semiconductor integrated circuit
JP2008299464A (en) * 2007-05-30 2008-12-11 Nec Electronics Corp Power consumption calculation method, power consumption calculation program, and power consumption calculation device

Also Published As

Publication number Publication date
JP2011013713A (en) 2011-01-20

Similar Documents

Publication Publication Date Title
US8122398B2 (en) Conversion of circuit description to an abstract model of the circuit
US7331024B2 (en) Power-consumption calculation method and apparatus
US6363515B1 (en) Early power estimation tool for high performance electronic system design
Bona et al. System level power modeling and simulation of high-end industrial network-on-chip
US8199910B2 (en) Signature generation apparatus and signature verification apparatus
US20130047128A1 (en) Method and Apparatus for Using Entropy in An Colony Optimization Circuit Design from High Level Synthesis
CN112818621B (en) System and method for predicting performance, power and area performance of soft IP components
JP4853312B2 (en) Behavioral synthesis apparatus, method, and program having test bench generation function
Chan et al. NoCEE: energy macro-model extraction methodology for network on chip routers
JP2005352787A (en) Method and apparatus for timing analysis
JP2996214B2 (en) Semiconductor integrated circuit reliability verification device, verification method, and storage medium storing verification program
JP5310312B2 (en) Integrated circuit power consumption verification method
US8756540B1 (en) Method and apparatus for extracted synthesis gate characteristics model
JP2008299464A (en) Power consumption calculation method, power consumption calculation program, and power consumption calculation device
US20110276929A1 (en) Designing apparatus, designing method, and computer readable medium storing designing program
Sivaswamy et al. Statistical analysis and process variation-aware routing and skew assignment for FPGAs
JP2013524302A (en) Method and apparatus for macro model power analysis with adjustable accuracy
JP5338919B2 (en) Integrated circuit power consumption calculation method, power consumption calculation program, and power consumption calculation device
JP5467512B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, and behavioral synthesis program
Wang et al. Variation-aware resource sharing and binding in behavioral synthesis
JP2010277436A (en) Memory structure determination support device, memory structure determination program and recording medium
Stammermann et al. Interconnect driven low power high-level synthesis
Bona et al. Low effort, high accuracy network-on-chip power macro modeling
Hung et al. Delay-bounded routing for shadow registers
Dutta et al. Impact of loop tiling on the controller logic of acceleration engines

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130617

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