JP2015035033A - Design support method, design support program, and design support apparatus - Google Patents
Design support method, design support program, and design support apparatus Download PDFInfo
- Publication number
- JP2015035033A JP2015035033A JP2013164627A JP2013164627A JP2015035033A JP 2015035033 A JP2015035033 A JP 2015035033A JP 2013164627 A JP2013164627 A JP 2013164627A JP 2013164627 A JP2013164627 A JP 2013164627A JP 2015035033 A JP2015035033 A JP 2015035033A
- Authority
- JP
- Japan
- Prior art keywords
- program
- design support
- command statement
- executed
- statement
- 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
Links
Images
Abstract
Description
本発明は、設計支援方法、設計支援プログラム、および設計支援装置に関する。 The present invention relates to a design support method, a design support program, and a design support apparatus.
従来、プログラムの構文解析または命令セットシミュレータによるプログラムに定義された各関数の処理量や消費電力量の見積もり結果に基づいて各関数をハードウェアとソフトウェアのうちいずれで実現させるかを判断する技術が公知である(例えば、下記特許文献1参照。)。
Conventionally, there is a technology for determining whether to implement each function in hardware or software based on the result of estimating the amount of processing and power consumption of each function defined in the program by the program parsing or instruction set simulator It is publicly known (for example, refer to
また、従来、システムの動作が記述されたプログラム内の各命令の出現頻度に基づいて、FPGA(Field Programmable Gate Array)に実装する演算器に実行させる命令を決定する技術が公知である(例えば、下記特許文献2参照。)。
Conventionally, a technique for determining an instruction to be executed by an arithmetic unit mounted in an FPGA (Field Programmable Gate Array) based on the appearance frequency of each instruction in a program in which the operation of the system is described (for example, (See
また、プログラムにより生成したデータフローグラフに基づくレジスタに割り当てられるポイントの変数データ代入回数と保持データ遷移回数のいずれかを含む動的解析データに基づいて、プログラムに対して回路素子を割り付ける技術が公知である(例えば、下記特許文献3参照。)。
Also, a technique for allocating circuit elements to a program based on dynamic analysis data including either the number of variable data assignments of points assigned to registers based on a data flow graph generated by the program or the number of times of holding data transition (For example, refer to
しかしながら、高位設計においては、設計対象回路の使用時の各演算部の消費電力量が不明であるため、設計効率が低いという問題点がある。 However, in the high-level design, there is a problem that the design efficiency is low because the power consumption of each arithmetic unit when using the design target circuit is unknown.
1つの側面では、本発明は、設計効率の向上を図ることができる設計支援方法、設計支援プログラム、および設計支援装置を提供することを目的とする。 In one aspect, an object of the present invention is to provide a design support method, a design support program, and a design support apparatus that can improve design efficiency.
本発明の一側面によれば、設計対象の演算回路の動作を模擬するプログラムのうち特定種類の演算を指示する命令文の各々について、前記演算回路に入力可能な入力データによって前記プログラムを実行した場合に前記命令文が実行される回数を導出し、前記命令文の各々について、導出した前記回数と、前記特定種類の演算に要する電力量に応じた値と、を乗算した値を算出する設計支援方法、設計支援プログラム、および設計支援装置が提案される。 According to one aspect of the present invention, the program is executed with input data that can be input to the arithmetic circuit for each of the command statements that specify a specific type of arithmetic among the programs that simulate the operation of the arithmetic circuit to be designed. A design that derives the number of times the statement is executed and calculates a value obtained by multiplying the number of times derived for each of the statements by a value corresponding to the amount of power required for the specific type of operation A support method, a design support program, and a design support apparatus are proposed.
本発明の一態様によれば、設計効率の向上を図ることができる。 According to one embodiment of the present invention, design efficiency can be improved.
以下に添付図面を参照して、本発明にかかる設計支援方法、設計支援プログラム、および設計支援装置の実施の形態を詳細に説明する。 Exemplary embodiments of a design support method, a design support program, and a design support apparatus according to the present invention will be described below in detail with reference to the accompanying drawings.
図1は、本発明の一動作例を示す説明図である。設計支援装置100は、設計対象の演算回路の設計を支援するコンピュータである。ここでの設計対象の演算回路とは、演算機能を有する回路を含む。以降、設計対象の演算回路は、対象回路と称する。
FIG. 1 is an explanatory diagram showing an operation example of the present invention. The
設計支援装置100は、設計対象の演算回路の動作を模擬するプログラム101のうち特定種類の演算を指示する命令文の各々について、演算回路に入力可能な入力データ102によってプログラム101を実行した場合に命令文が実行される回数を導出する。特定種類の演算は、例えば、四則演算や論理演算などが挙げられる。図1の例では、特定種類の演算は、除算“/”と乗算“*”とである。
When the design support
つぎに、設計支援装置100は、命令文の各々について、導出した回数と、特定種類の演算に要する電力量に応じた値と、を乗算した値を算出する。ここで、乗算した値を消費電力量の指標値と称する。これにより、対象回路の使用時の消費電力量を見積もることができる。
Next, the
図2は、半導体集積回路の設計手順例を示すフローチャートである。まず、半導体集積回路の設計では、設計対象回路の機能を表すアルゴリズムを開発する(ステップS201)。これにより、アルゴリズムがC言語やC++言語などによりコーディングされたプログラムが得られる。つぎに、半導体集積回路の設計では、プログラム内の命令文を置き換える(ステップS202)。実装される演算器には制限があり、この制約を遵守させるためにプログラムの置き換えが行われる。 FIG. 2 is a flowchart illustrating an example of a design procedure for a semiconductor integrated circuit. First, in designing a semiconductor integrated circuit, an algorithm representing the function of the circuit to be designed is developed (step S201). As a result, a program in which the algorithm is coded in the C language, the C ++ language, or the like can be obtained. Next, in the design of the semiconductor integrated circuit, the command statement in the program is replaced (step S202). There are restrictions on the arithmetic units to be implemented, and programs are replaced to comply with this restriction.
そして、半導体集積回路の設計では、合成ツールを用いて高位合成を行う(ステップS203)。これにより、ハードウェア記述言語などによるRTL(Register Transfer Level)で記述されたプログラムが得られる。 In designing a semiconductor integrated circuit, high-level synthesis is performed using a synthesis tool (step S203). Thereby, a program described in RTL (Register Transfer Level) using a hardware description language or the like is obtained.
つぎに、半導体集積回路の設計では、RTL記述の構文チェックを行い(ステップS204)、RTLのシミュレーションを行う(ステップS205)。半導体集積回路の設計では、論理合成を行う(ステップS206)。これにより、ネットリストが得られる。そして、半導体集積回路の設計では、ネットリストに基づいて配置配線が行われる(ステップS207)。 Next, in designing the semiconductor integrated circuit, the syntax of the RTL description is checked (step S204), and the RTL simulation is performed (step S205). In designing a semiconductor integrated circuit, logic synthesis is performed (step S206). Thereby, a net list is obtained. In designing the semiconductor integrated circuit, placement and routing are performed based on the net list (step S207).
論理合成後のネットリストを用いたシミュレーションによって電力見積もりが行われる。そのため、設計変更が生じる場合に、RTL設計や高位設計を再度行うには時間がかかる。これに対して、本実施の形態にかかる設計支援装置100は、ステップS201やステップS202において電力見積もりを行うことができるため、設計効率を向上させることができる。
Power estimation is performed by simulation using a netlist after logic synthesis. Therefore, when a design change occurs, it takes time to perform RTL design and high-level design again. On the other hand, since the design support
(設計支援装置100のハードウェア構成例)
図3は、設計支援装置のハードウェア構成例を示すブロック図である。図3において、設計支援装置100は、CPU(Central Processing Unit)301と、ROM(Read Only Memory)302と、RAM(Random Access Memory)303と、ディスクドライブ304と、ディスク305と、を有している。設計支援装置100は、I/F306と、入力装置307と、出力装置308と、を有している。また、各部はバス300によってそれぞれ接続されている。
(Example of hardware configuration of design support apparatus 100)
FIG. 3 is a block diagram illustrating a hardware configuration example of the design support apparatus. In FIG. 3, the
ここで、CPU301は、設計支援装置100の全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。ディスクドライブ304は、CPU301の制御にしたがってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、磁気ディスク、光ディスクなどが挙げられる。
Here, the
I/F306は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークNETに接続され、このネットワークNETを介して他の装置に接続される。そして、I/F306は、ネットワークNETと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F306には、例えばモデムやLANアダプタなどを採用することができる。
The I /
入力装置307は、キーボード、マウス、タッチパネルなど利用者の操作により、各種データの入力を行うインターフェースである。また、入力装置307は、カメラから画像や動画を取り込むこともできる。また、入力装置307は、マイクから音声を取り込むこともできる。出力装置308は、CPU301の指示により、データを出力するインターフェースである。出力装置308には、ディスプレイやプリンタが挙げられる。
The
図4は、プログラム例を示す説明図である。第1プログラム400は、対象回路の動作を模擬可能であり、C言語やC++言語などによって記述される。
FIG. 4 is an explanatory diagram showing a program example. The
(設計支援装置100の機能的構成例)
図5は、設計支援装置の機能的構成例を示すブロック図である。設計支援装置100は、第1特定部501と、CDFG生成部502と、第1生成部503と、導出部504と、算出部505と、第1判断部506と、第2特定部507と、第2判断部508と、第2生成部509と、を含む。各部の処理は、例えば、CPU301がアクセス可能な記憶装置に記憶された設計支援プログラムにコーディングされている。そして、CPU301が記憶装置から設計支援プログラムを読み出して、設計支援プログラムにコーディングされている処理を実行する。これにより、各部の処理が実現される。また、各部の処理結果は、例えば、RAM303、ディスク305などの記憶装置に記憶される。
(Functional configuration example of the design support apparatus 100)
FIG. 5 is a block diagram illustrating a functional configuration example of the design support apparatus. The
まず、第1特定部501は、対象回路の動作を模擬する第1プログラム400から複数種類の演算の少なくともいずれかを行うことを指示する命令文を特定する。複数種類の演算とは、四則演算、論理演算、論理演算や四則演算の組み合わせなどが挙げられる。具体的には、第1特定部501は、第1プログラム400を一行ずつスキャンし、演算記述がある命令文を特定する。
First, the first specifying
図6は、命令文の特定例を示す説明図である。第1特定部501は、第1プログラム400から、8行目の比較演算“<”が記述された命令文を特定する。第1特定部501は、第1プログラム400から、8行目に加算“++”が記述された命令文を特定する。第1特定部501は、第1プログラム400から、11行目の加算“+”が記述された命令文を特定する。第1特定部501は、第1プログラム400から、13行目の乗算“*”記述された命令文を特定する。
FIG. 6 is an explanatory diagram showing a specific example of a command statement. The first specifying
また、第1特定部501は、特定した命令文のうち、For−Loop文やWhile文を除外する。これにより、11行目の加算“+”と13行目の乗算“*”とが特定される。For−Loop文やWhile文については、高位合成ツールによって最適化されるため、本発明においては、処理の対象から除外される。
In addition, the first specifying
CDFG生成部502は、第1プログラム400に基づいてCDFG(Control Data Flow Graph)を生成する。CDFGは、対象回路の実装時における制御の流れと、データの流れと、が記述された情報である。ここでは、CDFGは、理解の容易化のためにディスプレイなどの出力装置308を介して出力させる情報である。
The
図7は、CDFGの生成例を示す説明図である。CDFG生成部502は、例えば、第1プログラム400に応じたCDFGを生成する。ここで、CDFGによると、特定された命令文は、それぞれCDFGにおいてパスを構成する。そこで、特定された命令文を示す識別情報と、命令文が指示する演算と、演算の引数とは、関連付けられ、以降パスと称する。ここでは、パスに含まれる識別情報が示す命令文をパスの命令文と称する。
FIG. 7 is an explanatory diagram illustrating a generation example of a CDFG. The
第1特定部501は、パスごとに、見積もり電力テーブルから重み付け係数を取得する。重み付け係数は、演算の種類に応じて演算の消費電力値に応じた値である。
The first specifying
図8は、見積もり電力テーブル例を示す説明図である。見積もり電力テーブル800は、演算ごとに重み付け係数が記憶される。見積もり電力テーブル800は、演算、重み付け係数のフィールドを有する。各フィールドに情報が設定されることにより、レコード(801−1〜801−2など)として記憶される。見積もり電力テーブル800は、例えば、RAM303やディスク305などの記憶装置に記憶される。
FIG. 8 is an explanatory diagram illustrating an example of an estimated power table. The estimated power table 800 stores a weighting coefficient for each calculation. The estimated power table 800 has calculation and weighting coefficient fields. By setting information in each field, it is stored as a record (801-1 to 801-2, etc.). The estimated power table 800 is stored in a storage device such as the
演算のフィールドには、各演算を示す識別情報が設定される。重み付け係数のフィールドには、各演算に要する電力量に応じた値が設定される。ここでは、例えば、電力量に応じた値を単位実行サイクルごとの消費電力量[W/Cycle]とするが、これに限らず、演算に要する電力量を相対的に特定可能な値であってもよい。 Identification information indicating each calculation is set in the calculation field. In the weighting coefficient field, a value corresponding to the amount of power required for each calculation is set. Here, for example, the value corresponding to the power amount is set to the power consumption amount [W / Cycle] for each unit execution cycle. However, the value is not limited to this, and the power amount required for the calculation can be relatively specified. Also good.
第1生成部503は、第1プログラム400に基づいて、対象回路の動作を模擬する第2プログラム900であって、パスの各々についての回数のカウントを指示する命令文を含む第2プログラム900を生成する処理を実行する。ここでの回数とは、入力データによって第1プログラム400を実行した場合に特定した命令文が実行される回数である。ここでの入力データは、対象回路の設計仕様に基づいて利用者によって作成された情報である。入力データは、例えば、対象回路の入力端子に入力可能な信号値である。ここでは、入力データによって第2プログラム900を実行させることにより、対象回路の動作のシミュレーションが行われる。入力データを含み、各プログラムを実行させるための情報をテストベンチと称する。
The
図9は、回数をカウント可能なAPI記述が追加された第2プログラム例を示す説明図である。第2プログラム900には、回数をカウント可能なAPI(Application Program Interface)記述であるcountpath(行数、計算式、被演算子)が記述される。
FIG. 9 is an explanatory diagram showing a second program example to which an API description capable of counting the number of times is added. The
つぎに、導出部504は、入力データによって第1プログラム400を実行した場合に特定した命令文が指示する演算が行われる回数を導出する。具体的には、導出部504は、APIが挿入された第2プログラム900と、テストベンチと、によってシミュレーションを実行することにより、特定した命令文が実行される回数をカウントする。
Next, the deriving
算出部505は、導出した回数と、特定した命令文が指示する演算に応じた重み付け係数と、に基づいて、対象回路へ入力データを入力させた場合に特定した命令文が指示する演算に要する電力量の指標値を算出する。
The
図10は、実行結果例を示す説明図である。実行結果1000では、理解の容易化のために、“i”の値と“op1”の値とを併せて示す。例えば、パスPath[0]の命令文が実行された回数は3回であり、Path[1]の命令文が実行された回数は2である。
FIG. 10 is an explanatory diagram illustrating an example of the execution result. In the
算出部505は、導出された回数と命令文が指示する演算に要する電力量に応じた値とを乗算した指標値を算出する。上述したように、演算に要する電力量に応じた値は重み付け係数である。例えば、各パスの指標値は以下のようになる。
The calculating
パスPath[0]の指標値=2×3=6
パスPath[1]の指標値=6×2=12
Index value of path Path [0] = 2 × 3 = 6
Index value of path Path [1] = 6 × 2 = 12
図11は、静的電力解析の他の例を示す説明図である。第1特定部501は、パスの各々について取得された重み付け係数の合計値に対するパスごとの重み付け係数の比率を特定してもよい。図11に示すプログラム例は、上述した第1プログラム400と異なる。理解の容易化のために、図11中のCDFGにおける四角はFF(Flip Flop)を示す。図11の例では、重み付け係数の合計を100[%]とした場合の相対比RP(Relative Power)が特定される。このように、パスPAの相対比RPは10であり、パスPBの相対比RPは50であり、パスPCの相対比RPは40である。これにより、図の例では、パスPBが最も高い相対比RPであることが特定される。
FIG. 11 is an explanatory diagram illustrating another example of static power analysis. The first specifying
図12は、動的電力解析の他の例を示す説明図である。図12の例は、算出部505は、導出した回数に応じた値と、演算に要する電力量に応じた値と、を乗算した指標値を算出する。図12の例では、導出した回数に応じた値は、動作率である。そのため、動作率の合計は100[%]となる。パスPAの動作率は、10[%]であり、パスPBの動作率は、30[%]であり、パスPCの動作率は60[%]である。
FIG. 12 is an explanatory diagram illustrating another example of dynamic power analysis. In the example of FIG. 12, the
例えば、パスPAの指標値は100であり、パスPBの指標値は1500であり、パスPCの指標値は2400である。このように、相対比PRについては、パスPBが最も大きいが、パスPCは実行された回数が多いため、指標値はパスPCが最も大きくなる。 For example, the index value of the path PA is 100, the index value of the path PB is 1500, and the index value of the path PC is 2400. As described above, regarding the relative ratio PR, the path PB is the largest, but since the pass PC is executed many times, the index value is the largest for the path PC.
つぎに、第1判断部506は、特定されたパスの各々について算出された指標値が第1所定条件を満たすか否かを判断する。ここでは、第1所定条件は、予め利用者によって定められ、ディスク305やRAM303などの記憶装置に記憶される。第1所定条件は、例えば、指標値が閾値以上であるか否かである。例えば、第1判断部506は、指標値が閾値以上であるか否かを判断する。閾値については例えば、利用者によって定められ、ディスク305やRAM303などの記憶装置に記憶される。また、ここでは、閾値は、PJと表す。
Next, the
第2生成部509は、第1判断部506によって指標値が閾値PJ以上であると判断されたパスの命令文を置き換えた第3プログラムを生成する。また、第1判断部506によって指標値が所定条件を満たすと判断されたパスについては、最適化の対象パスとして出力される。ここでは、例えば、閾値PJを10とし、パスPath[1]が最適化の対象パスOpt_Pathとして出力される。算出された指標値と、演算式と、命令文の識別情報と、演算式に与える引数と、が関連付けられて最適化の対象パスとして記憶される。命令文の識別情報は、例えば、第1プログラム400内の先頭から数えた場合の行数である。
The
例えば、第2生成部509は、第1プログラム400に基づいて第3プログラムを生成する。第3プログラムは、例えば、命令文のうち算出した指標値が第1所定条件を満たす第1命令文を、特定種類の演算と等価な演算を指示する命令文に置き換えたプログラムである。また、第3プログラムは、第1命令文を、第1命令文と、第1命令文が指示する演算と等価な演算を指示する第2命令文と、のうちのいずれかを第2所定条件に応じて実行することを指示する命令文に置き換えたプログラムである。
For example, the
また、第3プログラムについては、命令文の置き換えを行うか否かを判断した後に、生成してもよい。そのため、等価な演算がシフト演算である場合に、第2特定部507は、入力データによって第1プログラム400を実行した場合に行われる特定種類の演算のうち被演算子となる値が2のべき乗である特定種類の演算の割合を特定する。そして、第2判断部508は、特定した割合が第3所定条件を満たすか否かを判断する。
The third program may be generated after determining whether or not to replace the command statement. Therefore, when the equivalent operation is a shift operation, the second specifying
具体的には、第2特定部507は、入力データによって第2プログラム900を実行することによるシミュレーションにおいてパスの命令文の被演算子となる値の組み合わせである被演算子の入力データを取得する。そして、第2特定部507は、被演算子となる値のうち2のべき乗である数をカウントする。
Specifically, the second specifying
図13は、2のべき乗の特定例を示す説明図である。被演算子の入力データ1300は、第1プログラム400内の11行目に記述された命令文の被演算子であるaとbとのそれぞれについて入力される値の組み合わせである。
FIG. 13 is an explanatory diagram showing a specific example of a power of 2. The
表1301は、被演算子aの2のべき乗と、被演算子bの2のべき乗と、被演算子aと被演算子bのいずれも2のべき乗でない回数Mと、被演算子aまたは被演算子bのいずれかが2のべき乗である回数Sと、を示す。回数Mは最終的に3であり、回数Sは最終的に7である。 Table 1301 shows the power of 2 of the operand a, the power of 2 of the operand b, the number M of times that neither the operand a nor the operand b is a power of 2, and the operand a or operand. The number S of times when any of the operators b is a power of 2. The number of times M is finally 3 and the number of times S is finally 7.
つぎに、第2特定部507は、論理変更パターン用ライブラリから、最適化の対象パスについての演算に対応する論理変更の候補を引く。そして、第2特定部507は、論理変更の候補についての判定式を取得する。
Next, the second specifying
図14は、論理変更パターン用ライブラリ例を示す説明図である。論理変更パターン用ライブラリ1400は、論理変更の候補、判定式のフィールドを有する。各フィールドに情報が設定されることにより、レコード(1401−1〜1401−3など)として記憶される。論理変更パターン用ライブラリ1400はディスク305などの記憶装置に記憶される。
FIG. 14 is an explanatory diagram of an example of a logical change pattern library. The logic
論理変更パターン用ライブラリ1400によれば、例えば、乗算“*”は加算“+”やシフト演算“<<”に置き換えられ、除算“/”はシフト演算“>>”置き換えられる。また、図示していないが加算“+”は排他的論理和“xor”に置き換えられる。“−”は“xor”に置き換えられる。
According to the logic
ここでは、第2特定部507は、パスPath[1]の演算は乗算“*”であるため、例えば、変換候補[*→<<]と対応付けられた判定式を取得する。例えば、第2判断部508は、判定式の各引数に値を代入することにより、判定式が成り立つか否かを判断する。判定式の各引数は以下に示す通りである。dは、2のべき乗である割合であり、(1−d)は、2のべき乗でない割合である。変換候補[*→<<]の例では、dはシフト演算“<<”が実行される割合であり、(1−d)は乗算“×”が実行される割合である。W[ ]は[ ]内の演算の重み付け係数である。上述したように、例えばW[ ]の単位は[W/Cycle]である。cyc[ ]は[ ]内の乗算の実行サイクル数である。各演算の種類ごとに実行サイクル数は、予め定められてあり、ディスク305などの記憶装置に記憶されてある。または、実行サイクル数は、予め判定式に代入してあってもよい。除算の実行サイクル数は16であるが、それ以外の演算の実行サイクル数は1である。condは2のべき乗である条件であり、後述する第2所定条件である。W[cond]は2のべき乗である条件判定のための論理回路(以下、「条件判定回路」と称する。)の重み付け係数である。ここでは、条件判定回路がビット演算回路または減算回路である場合、重み付け係数は2とする。cyc[cond]は条件判定回路の実行サイクル数である。条件判定回路がビット演算回路である場合、1とする。条件判定回路が減算回路の場合、見積もり電力テーブル800に記憶された減算“−”の重み付け係数が利用される。以下に本実施の形態における具体例を示す。
Here, since the calculation of the path Path [1] is multiplication “*”, the second specifying
d=S/(S+M)=7/(7+3)=0.7
1−d=0.3
W[*]=6
cyc[*]=1
W[<<]=1
cyc[<<]=1
W[cond]=2
cyc[cond]=1
d = S / (S + M) = 7 / (7 + 3) = 0.7
1-d = 0.3
W [*] = 6
cyc [*] = 1
W [<<] = 1
cyc [<<] = 1
W [cond] = 2
cyc [cond] = 1
第2判断部508は、各引数の値が判定式に代入されると、左辺が6となり、右辺が2.5となるため、判定式が成り立つ。そこで、判定式が成り立つ場合に、第2生成部509は、上述したように第3プログラムを生成する。また、第3プログラムは、指標値が第1所定条件を満たす第1命令文を、第1命令文と、第1命令文が指示する演算と等価な演算を指示する第2命令文と、のうちのいずれかを第2所定条件に応じて実行することを指示する命令文に置き換えたプログラムである。
When the value of each argument is substituted into the determination formula, the
例えば、第1所定条件を満たす命令文が指示する演算が乗算であり、等価な演算がシフト演算である場合において、第2所定条件は、乗算において被演算子となる値が2のべき乗であるか否かである。第2所定条件に応じて実行することを指示する命令文は、被演算子となる値が2のべき乗である場合に等価な演算を指示する命令文を実行することを指示し、被演算子となる値が2のべき乗でない場合に第1所定条件を満たす命令文を実行することを指示する。 For example, when the operation indicated by the statement that satisfies the first predetermined condition is multiplication and the equivalent operation is a shift operation, the second predetermined condition is that the value that becomes the operand in the multiplication is a power of 2 Whether or not. The instruction statement instructing execution according to the second predetermined condition indicates that the instruction statement instructing an equivalent operation is executed when the value to be the operand is a power of 2, and the operand When the value to be is not a power of 2, it is instructed to execute a statement that satisfies the first predetermined condition.
図15は、置換前後のプログラム例1を示す説明図である。左側が置換前の第1プログラム400であり、右側が置換後の第3プログラム1500である。例えば、第3プログラム1500には、シフト数を被演算子aとするシフト演算“<<”を指示する命令文と、シフト数を被演算子bとしてシフト演算“<<”を指示する命令と、乗算“*”を指示する命令文と、が記述されてある。また第3プログラム1500には、if文の条件に応じていずれかの命令文が実行される。if文の条件は、cond()関数の結果によって定まる。
FIG. 15 is an explanatory diagram of Program Example 1 before and after replacement. The left side is the
cond()関数によれば、被演算子aの値2のべき乗であれば、シフト数を被演算子aの値とするシフト演算“<<”を指示する命令が実行される。cond()関数によれば、被演算子bの値が2のべき乗であれば、シフト数を被演算子bの値とするシフト演算“<<”を指示する命令が実行される。cond()関数によれば、被演算子aと被演算子bのいずれの値も2のべき乗でなければ、乗算“*”を指示する命令が実行される。
According to the cond () function, if it is a power of the
また、例えば、第1所定条件を満たす命令文が指示する演算が除算であり、等価な演算がシフト演算である場合において、第2所定条件は、除算において除数となる値が2のべき乗であるか否かである。例えば、第2所定条件に応じて実行することを指示する命令文は、除数となる値が2のべき乗である場合に等価な演算を指示する命令文を実行することを指示し、除数となる値が2のべき乗でない場合に第1所定条件を満たす命令文を実行することを指示する。 Also, for example, when the operation indicated by the statement that satisfies the first predetermined condition is division and the equivalent operation is a shift operation, the second predetermined condition is that the value that is a divisor in the division is a power of 2 Whether or not. For example, a command statement instructing execution in accordance with the second predetermined condition instructs to execute a command statement instructing an equivalent operation when the value to be a divisor is a power of 2 and becomes a divisor. When the value is not a power of 2, it instructs to execute a statement that satisfies the first predetermined condition.
図16は、置換前後のプログラム例2を示す説明図である。左側が置換前の第1プログラム1600であり、右側が置換後の第3プログラム1601である。第3プログラム1601では、シフト数を被演算子Yとしてシフト演算“<<”を指示する命令と、除算“/”を指示する命令と、が記述されてあり、cond()関数によっていずれが実行されるかが定まる。図の下側には、第1プログラム1600と第3プログラム1601との関係を示す。
FIG. 16 is an explanatory diagram showing a program example 2 before and after replacement. The left side is the
cond()関数によれば、被除数である被演算子Yの値が2のべき乗であれば、シフト数を被演算子Yの値とするシフト演算“>>”を指示する命令が実行される。cond()関数によれば、bが2のべき乗であれば、シフト数を被演算子bの値とするシフト演算“>>”を指示する命令が実行される。cond()関数によれば、被除数である被演算子Yの値が2のべき乗でなければ、除算“/”を指示する命令が実行される。 According to the cond () function, if the value of the operand Y that is the dividend is a power of 2, an instruction that instructs a shift operation “>>” that uses the shift number as the value of the operand Y is executed. . According to the cond () function, if b is a power of 2, an instruction that instructs a shift operation “>>” with the shift number as the value of the operand b is executed. According to the cond () function, if the value of the operand Y, which is the dividend, is not a power of 2, an instruction for instructing division “/” is executed.
図17は、置換前後のプログラム例2についてのCDFG例を示す説明図である。図18は、置換前後のプログラム例2についてのRTL例を示す説明図である。例えば、置換前の第1プログラム1600では、除算“/”の重み付け係数が8であり、回数がn回であると、消費電力量の指標値は8nである。置換後の第3プログラム1601では、例えば、cond()関数において、除算“/”の重み付け係数が8であり、シフト演算“>>”の重み付け係数が1であるため、除算“/”が選択される確率が30[%]であると、指標値は3.1n(=0.7×n×1+0.3×n×8)である。このような場合、2倍近く消費電力量を低減可能となる。
FIG. 17 is an explanatory diagram showing a CDFG example for the program example 2 before and after replacement. FIG. 18 is an explanatory diagram showing an example of RTL for program example 2 before and after replacement. For example, in the
(設計支援装置100が行う最適化処理手順)
図19は、設計支援装置が行う全体の処理手順例を示すフローチャートである。本実施の形態では、設計支援装置100が行う処理手順を第1フェーズから第3フェーズの3つに分けて説明する。
(Optimization processing procedure performed by the design support apparatus 100)
FIG. 19 is a flowchart illustrating an example of an overall processing procedure performed by the design support apparatus. In the present embodiment, the processing procedure performed by the
設計支援装置100は、繰り返し回数=0とする(ステップS1901)。設計支援装置100は、繰り返し回数=繰り返し回数+1とする(ステップS1902)。設計支援装置100は、第1プログラム400に基づいて、静的電力解析を行う(ステップS1903)。つぎに、設計支援装置100は、テストベンチ1900により第1プログラム400を実行することにより、動的電力解析を行う(ステップS1904)。テストベンチ1900は、上述したように、対象回路に入力可能な入力データ102を含む。設計支援装置100は、シミュレーション結果に基づいて、最適化箇所を特定する(ステップS1905)。
The
設計支援装置100は、特定した最適化箇所について最適化を行う(ステップS1906)。設計支援装置100は、すべて最適化済みであるか否かを判断する(ステップS1907)。最適化済みでないと判断された場合(ステップS1907:No)、設計支援装置100は、ステップS1906へ戻る。すべて最適化済みであると判断された場合(ステップS1907:Yes)、設計支援装置100は、繰り返し回数が所定数Xより大きいか否かを判断する(ステップS1908)。所定数Xについては、予めディスク305やRAM303などに記憶されてある。
The
繰り返し回数が所定数X以下である場合(ステップS1908:No)、設計支援装置100は、ステップS1902へ戻る。これにより、最適化されたプログラムについて再度最適化を行うことができる。繰り返し回数が所定数Xより多い場合(ステップS1908:Yes)、設計支援装置100は、一連の処理を終了する。このように、所定数Xとなるまで、最適化されたプログラムを再度最適化の対象とすることができる。
If the number of repetitions is equal to or less than the predetermined number X (step S1908: No), the
図20は、静的および動的電力解析処理手順例を示すフローチャートである。設計支援装置100は、プログラムを取得する(ステップS2001)。つぎに、設計支援装置100は、n=0とする(ステップS2002)。設計支援装置100は、未選択の命令文があるか否かを判断する(ステップS2003)。未選択の命令文がある場合(ステップS2003:Yes)、設計支援装置100は、未選択の命令文から先頭の命令文を選択する(ステップS2004)。つぎに、設計支援装置100は、選択した命令文が特定種類の演算を指示する命令文であるか否かを判断する(ステップS2005)。選択した命令文が特定種類の演算を指示する命令文でない場合(ステップS2005:No)、設計支援装置100は、ステップS2003へ戻る。
FIG. 20 is a flowchart showing an example of a static and dynamic power analysis processing procedure. The
選択した命令文が特定種類の演算を指示する命令文である場合(ステップS2005:Yes)、設計支援装置100は、選択した命令文がFor−Loop文またはWhile文であるか否かを判断する(ステップS2006)。選択した命令文がFor−Loop文またはWhile文のいずれかである場合(ステップS2006:Yes)、設計支援装置100は、ステップS2003へ戻る。
If the selected command statement is a command statement that instructs a specific type of operation (step S2005: Yes), the
選択した命令文がFor−Loop文およびWhile文のいずれでもない場合(ステップS2006:No)、設計支援装置100は、選択した命令文の識別情報と演算内容と被演算子とを関連付けてパスPath[n]とする(ステップS2007)。設計支援装置100は、n=n+1とする(ステップS2008)。そして、設計支援装置100は、プログラムにカウント用API記述を追加し(ステップS2009)、ステップS2003へ戻る。ステップS2009によって上述した第2プログラム900が得られる。
When the selected command statement is neither a For-Loop statement nor a While statement (step S2006: No), the
未選択の命令文がない場合(ステップS2003:No)、設計支援装置100は、テストベンチによりプログラムを実行する(ステップS2010)。設計支援装置100は、パスPath[0〜n]ごとに、回数と、パスPathの演算についての重み付け係数と、により指標値を算出する(ステップS2011)。設計支援装置100は、算出結果を出力し(ステップS2012)、一連の処理を終了する。
If there is no unselected command statement (step S2003: No), the
図21は、最適化箇所特定処理手順例を示すフローチャートである。設計支援装置100は、利用者の操作により、閾値PJを設定する(ステップS2101)。つぎに、設計支援装置100は、n=0とする(ステップS2102)。設計支援装置100は、パスPath[n]の指標値を取得する(ステップS2103)。設計支援装置100は、パスPath[n]の指標値>閾値PJであるか否かを判断する(ステップS2104)。
FIG. 21 is a flowchart illustrating an example of an optimization location specifying process procedure. The
パスPath[n]の指標値>閾値PJでない場合(ステップS2104:No)、ステップS2106へ移行する。パスPath[n]の指標値>閾値PJである場合(ステップS2104:Yes)、設計支援装置100は、パスPath[n]を最適化対象のパスOpt_Pathとする(ステップS2105)。設計支援装置100は、n<パスの数mであるか否かを判断する(ステップS2106)。n<パスの数mである場合(ステップS2106:Yes)、設計支援装置100は、n+=1とし(ステップS2107)、ステップS2103へ戻る。n<パスの数mでない場合(ステップS2106:No)、設計支援装置100は、一連の処理を終了する。
When the index value of the path Path [n] is not greater than the threshold value PJ (step S2104: No), the process proceeds to step S2106. When the index value of the path Path [n]> the threshold value PJ (step S2104: Yes), the
図22は、最適化処理手順例を示すフローチャートである。まず、設計支援装置100は、n=0とする(ステップS2201)。つぎに、設計支援装置100は、最適化対象のパスOpt_Path[n]を取得する(ステップS2202)。そして、設計支援装置100は、パスOpt_Path[n]の被演算子の値である入力データを取得する(ステップS2203)。
FIG. 22 is a flowchart illustrating an exemplary optimization processing procedure. First, the
設計支援装置100は、入力データの2のべき乗の割合を特定する(ステップS2204)。設計支援装置100は、論理変更パターン用ライブラリ1400から判定式に特定した割合を代入する(ステップS2205)。設計支援装置100は、判定式が成立したか否かを判断する(ステップS2206)。判定式が成立しない場合(ステップS2206:No)、設計支援装置100は、ステップS2208へ移行する。
The
判定式が成立する場合(ステップS2206:Yes)、設計支援装置100は、パスOpt_Path[n]の命令文を変換候補に置き換える(ステップS2207)。設計支援装置100は、n<最適化対象のパスの数kであるか否かを判断する(ステップS2208)。n<最適化対象のパスの数kである場合(ステップS2208:Yes)、設計支援装置100は、n+=1とし(ステップS2209)、ステップS2202へ戻る。
When the determination formula is satisfied (step S2206: Yes), the
n<最適化対象のパスの数kでない場合(ステップS2208:No)、設計支援装置100は、一連の処理を終了する。
If n <the number of paths to be optimized is not k (step S2208: No), the
以上説明したように、本実施の形態にかかる設計支援装置100は、対象回路の動作を模擬するプログラム内の特定種類の演算を指示する命令文ごとに、該対象回路の入力データにおける該命令文の実行回数に応じた消費電力量の指標値を算出する。これにより、高位設計において対象回路の使用時の消費電力量を見積もることができる。したがって、設計効率を向上させることができる。
As described above, the
また、設計支援装置100は、命令文のうち算出した指標値が第1所定条件を満たす命令文を、所定条件を満たす命令文が指示する演算と等価な演算を指示する命令文に置き換えたプログラムを生成する。これにより、アルゴリズムを変更することにより、低消費電力化を図ることができる。
In addition, the
また、設計支援装置100は、命令文のうち算出した指標値が第1所定条件を満たす第1命令文を特定する。そして、設計支援装置100は、第1命令文と、第1命令文が指示する演算と等価な演算を指示する第2命令文と、のうちのいずれかを第2所定条件に応じて実行することを指示する命令文に置き換えた第2プログラムを生成する。これにより、複数の命令のいずれかを実行可能なようにアルゴリズムを変更することにより、低消費電力化を図ることができる。
In addition, the
また、演算が除算であり、等価な演算がシフト演算である場合、設計支援装置100は、被除数の値が2のべき乗である場合に第2命令文を実行し、2のべき乗でない場合に第1命令文を実行することを指示する命令文に置き換えた第2プログラムを生成する。これにより、被除数が2のべき乗であれば、除算よりも消費電力量が少ないシフト演算が可能となるため、低消費電力化を図ることができる。
Further, when the operation is division and the equivalent operation is a shift operation, the
また、演算が乗算であり、等価な演算がシフト演算である場合、設計支援装置100は、被演算子の値が2のべき乗である場合に第2命令文を実行し、2のべき乗でない場合に第1命令文を実行することを指示する命令文に置き換えた第2プログラムを生成する。これにより、被演算子が2のべき乗であれば、乗算よりも消費電力量が少ないシフト演算が可能となるため、低消費電力化を図ることができる。
When the operation is multiplication and the equivalent operation is shift operation, the
また、設計支援装置100は、入力データによってプログラムを実行した場合に行われる特定種類の演算のうち被演算子の値が2のべき乗である特定種類の演算の割合により命令文を置き換えたプログラムを生成するか否かを判定する。これにより、命令文を置き換えて低消費電力となるか否かを判断することができる。
In addition, the
また、設計支援装置100は、特定種類の演算を指示する命令文の各々について、実行される回数のカウントを指示する命令文を含むプログラムを生成する。これにより、プログラムを実行するだけで、特定種類の演算を指示する命令文が実行される回数を導出可能となる。
In addition, the
なお、本実施の形態で説明した設計支援方法は、予め用意された設計支援プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。 The design support method described in this embodiment can be realized by executing a design support program prepared in advance on a computer such as a personal computer or a workstation. The design support program is recorded on a computer-readable recording medium such as a magnetic disk, an optical disk, or a USB (Universal Serial Bus) flash memory, and is executed by being read from the recording medium by the computer. The design support program may be distributed through a network such as the Internet.
上述した実施の形態に関し、さらに以下の付記を開示する。 The following additional notes are disclosed with respect to the embodiment described above.
(付記1)コンピュータが、
設計対象の演算回路の動作を模擬するプログラムのうち特定種類の演算を指示する命令文の各々について、前記演算回路に入力可能な入力データによって前記プログラムを実行した場合に前記命令文が実行される回数を導出し、
前記命令文の各々について、導出した前記回数と、前記特定種類の演算に要する電力量に応じた値と、を乗算した値を算出する、
処理を実行することを特徴とする設計支援方法。
(Supplementary note 1)
For each command statement that designates a specific type of operation in a program that simulates the operation of the design target arithmetic circuit, the command statement is executed when the program is executed with input data that can be input to the arithmetic circuit. Derived the number of times
For each of the statements, calculate a value obtained by multiplying the derived number of times by a value corresponding to the amount of power required for the specific type of operation.
A design support method characterized by executing processing.
(付記2)前記コンピュータが、
前記命令文のうち算出した前記値が所定条件を満たす命令文を、前記所定条件を満たす命令文が指示する演算と等価な演算を指示する命令文に置き換えたプログラムを生成する処理を実行することを特徴とする付記1に記載の設計支援方法。
(Appendix 2) The computer
Executing a process of generating a program in which a command statement in which the calculated value satisfies a predetermined condition in the command statement is replaced with a command statement instructing an operation equivalent to an operation instructed by the command statement satisfying the predetermined condition The design support method according to
(付記3)前記コンピュータが、
前記プログラム(以下、「第1プログラム」と称する)に基づいて、前記命令文のうち算出した前記値が第1所定条件を満たす命令文を、前記第1所定条件を満たす命令文と、前記第1所定条件を満たす命令文が指示する演算と等価な演算を指示する命令文と、のうちのいずれかを第2所定条件に応じて実行することを指示する命令文に置き換えた第2プログラムを生成する処理を実行することを特徴とする付記1に記載の設計支援方法。
(Supplementary note 3)
Based on the program (hereinafter, referred to as “first program”), a statement that satisfies the first predetermined condition in which the calculated value among the statements satisfies the first predetermined condition, and the first statement that satisfies the first predetermined condition, A second program in which any one of a command statement instructing an operation equivalent to a calculation instructed by a command statement satisfying a predetermined condition is replaced with a command statement instructing execution according to a second predetermined condition The design support method according to
(付記4)前記第1所定条件を満たす命令文が指示する演算が除算であり、前記等価な演算がシフト演算である場合において、
前記第2所定条件は、前記除算において除数となる値が2のべき乗であるか否かであって、
前記第2所定条件に応じて実行することを指示する命令文は、前記除数となる値が2のべき乗である場合に前記等価な演算を指示する命令文を実行することを指示し、前記除数となる値が2のべき乗でない場合に前記第1所定条件を満たす命令文を実行することを指示することを特徴とする付記3に記載の設計支援方法。
(Supplementary Note 4) In the case where the operation indicated by the statement that satisfies the first predetermined condition is division and the equivalent operation is a shift operation,
The second predetermined condition is whether or not a value to be a divisor in the division is a power of 2,
The command statement instructing execution according to the second predetermined condition indicates that the command statement instructing the equivalent operation is executed when the value to be the divisor is a power of 2, and the
(付記5)前記第1所定条件を満たす命令文が指示する演算が乗算であり、前記等価な演算がシフト演算である場合において、
前記第2所定条件は、前記乗算において被演算子となる値が2のべき乗であるか否かであって、
前記第2所定条件に応じて実行することを指示する命令文は、前記被演算子となる値が2のべき乗である場合に前記等価な演算を指示する命令文を実行することを指示し、前記被演算子となる値が2のべき乗でない場合に前記第1所定条件を満たす命令文を実行することを指示することを特徴とする付記3に記載の設計支援方法。
(Supplementary Note 5) In the case where the operation indicated by the statement that satisfies the first predetermined condition is multiplication and the equivalent operation is a shift operation,
The second predetermined condition is whether or not a value to be an operand in the multiplication is a power of 2,
The command statement instructing execution according to the second predetermined condition instructs to execute the command statement instructing the equivalent operation when the value to be the operand is a power of two, The design support method according to
(付記6)前記等価な演算がシフト演算である場合において、
前記コンピュータが、
前記入力データによって前記第1プログラムを実行した場合に行われる前記特定種類の演算のうち被演算子となる値が2のべき乗である前記特定種類の演算の割合を特定する処理を実行し、
前記第2プログラムを生成する処理では、特定した前記割合が第3所定条件を満たさない場合に前記第2プログラムを生成しないことを特徴とする付記3〜5のいずれか一つに記載の設計支援方法。
(Supplementary Note 6) In the case where the equivalent operation is a shift operation,
The computer is
Executing a process of specifying a ratio of the specific type of operation whose value to be an operand is a power of 2 among the specific type of operation performed when the first program is executed by the input data;
In the process of generating the second program, the second program is not generated when the specified ratio does not satisfy the third predetermined condition. The design support according to any one of
(付記7)前記コンピュータが、
前記プログラム(以下「第1プログラム」と称する)から、前記特定種類の演算を指示する命令文を特定し、
前記第1プログラムに基づいて、前記演算回路の動作を模擬する第2プログラムであって、特定した前記命令文の各々についての前記回数のカウントを指示する命令文を含む第2プログラムを生成する処理を実行し、
前記回数を導出する処理では、前記入力データによって前記第2プログラムを実行することにより、特定した前記命令文の各々について前記回数を導出することを特徴とする付記1〜6のいずれか一つに記載の設計支援方法。
(Supplementary note 7)
From the program (hereinafter referred to as the “first program”), a command statement for instructing the specific type of operation is specified,
A process of generating a second program that simulates the operation of the arithmetic circuit based on the first program and includes a command statement that instructs the counting of the number of times for each of the specified command statements Run
In the process of deriving the number of times, the number of times is derived for each of the specified statements by executing the second program with the input data. The design support method described.
(付記8)コンピュータに、
設計対象の演算回路の動作を模擬するプログラムのうち特定種類の演算を指示する命令文の各々について、前記演算回路に入力可能な入力データによって前記プログラムを実行した場合に前記命令文が実行される回数を導出し、
前記命令文の各々について、導出した前記回数と、前記特定種類の演算に要する電力量に応じた値と、を乗算した値を算出する、
処理を実行させることを特徴とする設計支援プログラム。
(Appendix 8)
For each command statement that designates a specific type of operation in a program that simulates the operation of the design target arithmetic circuit, the command statement is executed when the program is executed with input data that can be input to the arithmetic circuit. Derived the number of times
For each of the statements, calculate a value obtained by multiplying the derived number of times by a value corresponding to the amount of power required for the specific type of operation.
A design support program characterized by causing processing to be executed.
(付記9)設計対象の演算回路の動作を模擬するプログラムのうち特定種類の演算を指示する命令文の各々について、前記演算回路に入力可能な入力データによって前記プログラムを実行した場合に前記命令文が実行される回数を導出する導出部と、
前記命令文の各々について、導出した前記回数と、前記特定種類の演算に要する電力量に応じた値と、を乗算した値を算出する算出部と、
を有することを特徴とする設計支援装置。
(Supplementary note 9) When each of the command statements for designating a specific type of calculation among the programs simulating the operation of the arithmetic circuit to be designed is executed by executing the program with input data that can be input to the calculation circuit, A derivation unit for deriving the number of times
For each of the statements, a calculation unit that calculates a value obtained by multiplying the derived number of times by a value corresponding to the amount of power required for the specific type of operation;
A design support apparatus comprising:
(付記10)設計対象の演算回路の動作を模擬するプログラムのうち特定種類の演算を指示する命令文の各々について、前記演算回路に入力可能な入力データによって前記プログラムを実行した場合に前記命令文が実行される回数を導出し、
前記命令文の各々について、導出した前記回数と、前記特定種類の演算に要する電力量に応じた値と、を乗算した値を算出する、
処理をコンピュータに実行させる設計支援プログラムを記録したことを特徴とする記録媒体。
(Supplementary Note 10) For each command statement that instructs a specific type of calculation among programs that simulate the operation of the arithmetic circuit to be designed, the command statement is executed when the program is executed with input data that can be input to the calculation circuit. Deriving the number of times
For each of the statements, calculate a value obtained by multiplying the derived number of times by a value corresponding to the amount of power required for the specific type of operation.
A recording medium on which a design support program for causing a computer to execute processing is recorded.
100 設計支援装置
400,1600 第1プログラム
501 第1特定部
503 第1生成部
504 導出部
505 算出部
506 第1判断部
507 第2特定部
508 第2判断部
509 第2生成部
800 見積もり電力テーブル
900 第2プログラム
1000 実行結果
1500,1601 第3プログラム
DESCRIPTION OF
Claims (5)
設計対象の演算回路の動作を模擬するプログラムのうち特定種類の演算を指示する命令文の各々について、前記演算回路に入力可能な入力データによって前記プログラムを実行した場合に前記命令文が実行される回数を導出し、
前記命令文の各々について、導出した前記回数と、前記特定種類の演算に要する電力量に応じた値と、を乗算した値を算出する、
処理を実行することを特徴とする設計支援方法。 Computer
For each command statement that designates a specific type of operation in a program that simulates the operation of the design target arithmetic circuit, the command statement is executed when the program is executed with input data that can be input to the arithmetic circuit. Derived the number of times
For each of the statements, calculate a value obtained by multiplying the derived number of times by a value corresponding to the amount of power required for the specific type of operation.
A design support method characterized by executing processing.
前記プログラム(以下、「第1プログラム」と称する)に基づいて、前記命令文のうち算出した前記値が第1所定条件を満たす命令文を、前記第1所定条件を満たす命令文と、前記第1所定条件を満たす命令文が指示する演算と等価な演算を指示する命令文と、のうちのいずれかを第2所定条件に応じて実行することを指示する命令文に置き換えた第2プログラムを生成する処理を実行することを特徴とする請求項1に記載の設計支援方法。 The computer is
Based on the program (hereinafter, referred to as “first program”), a statement that satisfies the first predetermined condition in which the calculated value among the statements satisfies the first predetermined condition, and the first statement that satisfies the first predetermined condition, A second program in which any one of a command statement instructing an operation equivalent to a calculation instructed by a command statement satisfying a predetermined condition is replaced with a command statement instructing execution according to a second predetermined condition The design support method according to claim 1, wherein the generation process is executed.
前記コンピュータが、
前記入力データによって前記第1プログラムを実行した場合に行われる前記特定種類の演算のうち被演算子となる値が2のべき乗である前記特定種類の演算の割合を特定する処理を実行し、
前記第2プログラムを生成する処理では、特定した前記割合が第3所定条件を満たさない場合に前記第2プログラムを生成しないことを特徴とする請求項2に記載の設計支援方法。 In the case where the equivalent operation is a shift operation,
The computer is
Executing a process of specifying a ratio of the specific type of operation whose value to be an operand is a power of 2 among the specific type of operation performed when the first program is executed by the input data;
The design support method according to claim 2, wherein in the process of generating the second program, the second program is not generated when the specified ratio does not satisfy a third predetermined condition.
設計対象の演算回路の動作を模擬するプログラムのうち特定種類の演算を指示する命令文の各々について、前記演算回路に入力可能な入力データによって前記プログラムを実行した場合に前記命令文が実行される回数を導出し、
前記命令文の各々について、導出した前記回数と、前記特定種類の演算に要する電力量に応じた値と、を乗算した値を算出する、
処理を実行させることを特徴とする設計支援プログラム。 On the computer,
For each command statement that designates a specific type of operation in a program that simulates the operation of the design target arithmetic circuit, the command statement is executed when the program is executed with input data that can be input to the arithmetic circuit. Derived the number of times
For each of the statements, calculate a value obtained by multiplying the derived number of times by a value corresponding to the amount of power required for the specific type of operation.
A design support program characterized by causing processing to be executed.
前記命令文の各々について、導出した前記回数と、前記特定種類の演算に要する電力量に応じた値と、を乗算した値を算出する算出部と、
を有することを特徴とする設計支援装置。 For each command statement that designates a specific type of operation in a program that simulates the operation of the design target arithmetic circuit, the command statement is executed when the program is executed with input data that can be input to the arithmetic circuit. A derivation unit for deriving the number of times;
For each of the statements, a calculation unit that calculates a value obtained by multiplying the derived number of times by a value corresponding to the amount of power required for the specific type of operation;
A design support apparatus comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013164627A JP6146197B2 (en) | 2013-08-07 | 2013-08-07 | Design support method, design support program, and design support apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013164627A JP6146197B2 (en) | 2013-08-07 | 2013-08-07 | Design support method, design support program, and design support apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015035033A true JP2015035033A (en) | 2015-02-19 |
JP6146197B2 JP6146197B2 (en) | 2017-06-14 |
Family
ID=52543538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013164627A Expired - Fee Related JP6146197B2 (en) | 2013-08-07 | 2013-08-07 | Design support method, design support program, and design support apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6146197B2 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09218731A (en) * | 1996-02-08 | 1997-08-19 | Toshiba Corp | Power estimator for micro processor |
JPH10254944A (en) * | 1997-01-08 | 1998-09-25 | Toshiba Corp | Device, method for power simulation and mechanically readable recording medium recording power simulation program |
JPH11232147A (en) * | 1998-02-16 | 1999-08-27 | Toshiba Corp | Method and device for power estimation, and machine-redable recording medium having recorded power estmation program |
JP2005216177A (en) * | 2004-01-30 | 2005-08-11 | Toshiba Corp | Configurable processor design apparatus and method, library optimizing method, processor, and method of manufacturing semiconductor device comprising processor |
WO2012001779A1 (en) * | 2010-06-30 | 2012-01-05 | 富士通株式会社 | Usage amount analysis method for information processing device, information processing system, and program therefor |
JP2013084178A (en) * | 2011-10-12 | 2013-05-09 | Fujitsu Ltd | Simulation device, method and program |
-
2013
- 2013-08-07 JP JP2013164627A patent/JP6146197B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09218731A (en) * | 1996-02-08 | 1997-08-19 | Toshiba Corp | Power estimator for micro processor |
JPH10254944A (en) * | 1997-01-08 | 1998-09-25 | Toshiba Corp | Device, method for power simulation and mechanically readable recording medium recording power simulation program |
JPH11232147A (en) * | 1998-02-16 | 1999-08-27 | Toshiba Corp | Method and device for power estimation, and machine-redable recording medium having recorded power estmation program |
JP2005216177A (en) * | 2004-01-30 | 2005-08-11 | Toshiba Corp | Configurable processor design apparatus and method, library optimizing method, processor, and method of manufacturing semiconductor device comprising processor |
WO2012001779A1 (en) * | 2010-06-30 | 2012-01-05 | 富士通株式会社 | Usage amount analysis method for information processing device, information processing system, and program therefor |
JP2013084178A (en) * | 2011-10-12 | 2013-05-09 | Fujitsu Ltd | Simulation device, method and program |
Also Published As
Publication number | Publication date |
---|---|
JP6146197B2 (en) | 2017-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104573169B (en) | With the Method and kit for of automatic production line operational capacity integrated design circuit | |
Castro-Godínez et al. | Compiler-driven error analysis for designing approximate accelerators | |
US10078717B1 (en) | Systems and methods for estimating performance characteristics of hardware implementations of executable models | |
Park et al. | A multi-granularity power modeling methodology for embedded processors | |
Ghiasi et al. | A unified theory of timing budget management | |
Choi et al. | HLS-based optimization and design space exploration for applications with variable loop bounds | |
KR20130107344A (en) | Tool generator | |
Van Ertvelde et al. | Benchmark synthesis for architecture and compiler exploration | |
Stammermann et al. | System level optimization and design space exploration for low power | |
Gao et al. | Automatically optimizing the latency, area, and accuracy of c programs for high-level synthesis | |
Yu et al. | TILA: Timing-driven incremental layer assignment | |
Leipnitz et al. | High-level synthesis of resource-oriented approximate designs for FPGAs | |
Richa et al. | High-level power estimation techniques in embedded systems hardware: an overview | |
Lu et al. | Performance modeling for mpi applications with low overhead fine-grained profiling | |
Tariq et al. | High-level annotation of routing congestion for xilinx vivado hls designs | |
JP6146197B2 (en) | Design support method, design support program, and design support apparatus | |
Liang et al. | AMF-Placer 2.0: Open source timing-driven analytical mixed-size placer for large-scale heterogeneous FPGA | |
Canon et al. | Correlation-aware heuristics for evaluating the distribution of the longest path length of a DAG with random weights | |
Chou et al. | Average-case technology mapping of asynchronous burst-mode circuits | |
Ahmadi et al. | Symbolic noise analysis approach to computational hardware optimization | |
Anuradha et al. | Efficient workload characterization technique for heterogeneous processors | |
Balaskas et al. | Variability-aware approximate circuit synthesis via genetic optimization | |
Plaza et al. | Optimizing non-monotonic interconnect using functional simulation and logic restructuring | |
Li et al. | Machine Learning Based Framework for Fast Resource Estimation of RTL Designs Targeting FPGAs | |
Zhang et al. | Dimplementing first-order optimization methods: Algorithmic considerations and bespoke microcontrollers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20150611 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160329 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170303 |
|
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: 20170418 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170501 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6146197 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |