JP2002108958A - System and method for designing circuit and computer readable recording medium stored with circuit design program - Google Patents

System and method for designing circuit and computer readable recording medium stored with circuit design program

Info

Publication number
JP2002108958A
JP2002108958A JP2000292728A JP2000292728A JP2002108958A JP 2002108958 A JP2002108958 A JP 2002108958A JP 2000292728 A JP2000292728 A JP 2000292728A JP 2000292728 A JP2000292728 A JP 2000292728A JP 2002108958 A JP2002108958 A JP 2002108958A
Authority
JP
Japan
Prior art keywords
combination
architecture
algorithm
database
function
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.)
Pending
Application number
JP2000292728A
Other languages
Japanese (ja)
Inventor
Masayoshi Tachibana
昌良 橘
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2000292728A priority Critical patent/JP2002108958A/en
Publication of JP2002108958A publication Critical patent/JP2002108958A/en
Pending legal-status Critical Current

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To accurately determine the system for mounting a function block in a short time. SOLUTION: This system is provided with: an algorithm/architecture database 132 storing the combination of algorithm and architecture for providing each of function modules and the result of evaluating the performance of the combination; a combination generating part 113 for generating all the possible combination of algorithm and architecture for providing each of function modules while referring to the information stored in the algorithm/architecture database 132; a performance evaluating part 115 for evaluating the performance of the combination generated by the combination generating part 113 on the basis of limit conditions, an evaluation function and an operating scenario; and a candidate database 135 for storing the combination of algorithm and architecture equal to or higher than a prescribed evaluation value while referring to the evaluation result of the performance evaluating part 115.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、設計する回路内に
おける複数の機能ブロックの実装方式を決定する回路設
計システム、回路設計方法および回路設計プログラムを
格納したコンピュータ読取り可能な記録媒体に関し、特
に、機能ブロックの実装方式を短時間且つ精度良く決定
することを可能にする技術に係わる。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a circuit design system, a circuit design method, and a computer-readable recording medium storing a circuit design program for determining a mounting method of a plurality of functional blocks in a circuit to be designed. The present invention relates to a technology that enables a mounting method of a functional block to be determined in a short time and with high accuracy.

【0002】[0002]

【従来の技術】従来、システムLSI等のデジタルシス
テムの回路設計処理においては、各機能ブロックの実装
方式(仕様)は、各実装方式に対して機能レベルのシミ
ュレーションを行い、そのシミュレーション結果に基づ
いて各実装方式の性能を見積もることにより決定されて
いた。
2. Description of the Related Art Conventionally, in a circuit design process of a digital system such as a system LSI, a mounting method (specification) of each functional block is performed at a functional level with respect to each mounting method, and based on a result of the simulation. It was determined by estimating the performance of each implementation method.

【0003】[0003]

【発明が解決しようとする課題】ところが、このような
方法により実装方式を決定する場合、実装方式の候補の
数が多くなった時には、機能レベルシミュレーションが
完了するまでに膨大な時間が必要となる上に、実装方式
の全ての組み合わせを検討することが非常に困難となる
ために、各機能ブロックの実装方式を精度良く決定する
ことが難しくなってしまう。
However, when the mounting method is determined by such a method, an enormous amount of time is required to complete the function level simulation when the number of mounting method candidates increases. In addition, it is very difficult to consider all combinations of the mounting methods, so that it is difficult to accurately determine the mounting method of each functional block.

【0004】本発明は、このような技術的課題を解決す
べくなされたものであり、その目的は、機能ブロックの
実装方式を短時間且つ精度良く決定することを可能にす
る技術を提供することにある。
The present invention has been made to solve such a technical problem, and an object of the present invention is to provide a technique which enables a mounting method of a functional block to be determined in a short time and with high accuracy. It is in.

【0005】[0005]

【課題を解決するための手段】本発明に係る回路設計シ
ステムの特徴は、設計する回路における複数の機能ブロ
ックの実装方式を決定する回路設計システムであって、
各機能モジュールを実現するアルゴリズムとアーキテク
チャの組み合わせおよび組み合わせの性能を評価した結
果を格納したアルゴリズム・アーキテクチャデータベー
スと、アルゴリズム・アーキテクチャデータベース内に
格納された情報を参照して、各機能モジュールを実現す
るアルゴリズムとアーキテクチャの可能な全ての組み合
わせを生成する組み合わせ生成部と、制約条件、評価関
数および動作シナリオに基づいて、組み合わせ生成部が
生成した組み合わせの性能を評価する性能評価部と、性
能評価部の評価結果を参照して、所定の評価値以上のア
ルゴリズムとアーキテクチャの組み合わせを格納する候
補データベースとを具備することにある。
A feature of a circuit design system according to the present invention is a circuit design system for determining a mounting method of a plurality of functional blocks in a circuit to be designed,
An algorithm architecture database that stores combinations of algorithms and architectures that implement each function module and the results of evaluating the performance of the combination, and an algorithm that implements each function module by referring to the information stored in the algorithm architecture database A combination generation unit that generates all possible combinations of software and architecture, a performance evaluation unit that evaluates the performance of the combination generated by the combination generation unit based on constraints, evaluation functions, and operation scenarios, and an evaluation of the performance evaluation unit Referencing the result, a candidate database for storing a combination of an algorithm and an architecture having a predetermined evaluation value or more is provided.

【0006】このシステムによれば、システムを実現す
るアルゴリズムとアーキテクチャの良い組み合わせを機
能レベルのシミュレーションを行うことなく高速に選択
することができる。
According to this system, a good combination of an algorithm and an architecture for realizing the system can be selected at a high speed without performing a functional-level simulation.

【0007】本発明に係る回路設計方法の特徴は、設計
する回路における複数の機能ブロックの実装方式を決定
する回路設計方法であって、各機能モジュールを実現す
るアルゴリズムとアーキテクチャの組み合わせおよび組
み合わせの性能を評価した結果を利用して、各機能モジ
ュールを実現するアルゴリズムとアーキテクチャの可能
な全ての組み合わせを生成するステップと、制約条件、
評価関数および動作シナリオに基づいて、生成された組
み合わせの性能を評価するステップと、性能の評価結果
を利用して、所定の評価値以上のアルゴリズムとアーキ
テクチャの組み合わせを抽出するステップとを有するこ
とにある。
A feature of the circuit design method according to the present invention is a circuit design method for determining a mounting method of a plurality of functional blocks in a circuit to be designed, and a combination of an algorithm and an architecture for realizing each functional module and a performance of the combination. Generating all possible combinations of algorithms and architectures for realizing each functional module using the result of evaluating
Evaluating the performance of the generated combination based on the evaluation function and the operation scenario; and extracting a combination of an algorithm and an architecture having a predetermined evaluation value or more by using the performance evaluation result. is there.

【0008】この方法によれば、システムを実現するア
ルゴリズムとアーキテクチャの良い組み合わせを機能レ
ベルのシミュレーションを行うことなく高速に選択する
ことができる。
According to this method, a good combination of an algorithm and an architecture for realizing a system can be selected at a high speed without performing a functional-level simulation.

【0009】本発明に係る回路設計プログラムを格納し
たコンピュータ読取可能な記録媒体の特徴は、設計する
回路における複数の機能ブロックの実装方式を決定する
回路設計プログラムを格納したコンピュータ読取り可能
な記録媒体であって、各機能モジュールを実現するアル
ゴリズムとアーキテクチャの組み合わせおよび組み合わ
せの性能を評価した結果を利用して、各機能モジュール
を実現するアルゴリズムとアーキテクチャの可能な全て
の組み合わせを生成する処理と、制約条件、評価関数お
よび動作シナリオに基づいて、生成された組み合わせの
性能を評価する処理と、性能の評価結果を利用して、所
定の評価値以上のアルゴリズムとアーキテクチャの組み
合わせを抽出する処理とを含み、これらの処理をコンピ
ュータに実行させることにある。
A feature of a computer-readable recording medium storing a circuit design program according to the present invention is a computer-readable recording medium storing a circuit design program for determining a mounting method of a plurality of functional blocks in a circuit to be designed. A process for generating all possible combinations of algorithms and architectures for realizing each functional module, using the results of evaluating the combinations of algorithms and architectures for realizing each functional module and the performance of the combinations; Based on an evaluation function and an operation scenario, a process of evaluating the performance of the generated combination and a process of extracting a combination of an algorithm and an architecture having a predetermined evaluation value or more by using the performance evaluation result, Let the computer execute these processes Lies in the fact.

【0010】この記録媒体によれば、システムを実現す
るアルゴリズムとアーキテクチャの良い組み合わせを機
能レベルのシミュレーションを行うことなく高速に選択
することができる。
According to this recording medium, a good combination of an algorithm and an architecture for realizing a system can be selected at a high speed without performing a simulation at a functional level.

【0011】ここで、アルゴリズムとアーキテクチャの
組み合わせに関する機能モデルとテストベクタを利用し
て、所定の評価値以上のアルゴリズムとアーキテクチャ
の組み合わせについて機能レベルシミュレーションを実
行することが望ましい。
Here, it is desirable to execute a function level simulation for a combination of an algorithm and an architecture having a predetermined evaluation value or more, using a function model and a test vector relating to the combination of the algorithm and the architecture.

【0012】これにより、候補データベース内に格納さ
れた複数の組み合わせから機能レベルのシミュレーショ
ンにより最良のものを精度良く選択できる。
[0012] Thereby, the best one can be selected with high accuracy by functional level simulation from a plurality of combinations stored in the candidate database.

【0013】また、動作シナリオに対して、機能モジュ
ール間の資源の共有関係を実行の順序として有向枝をル
ープが存在しないように追加して、機能モジュール間に
資源の共有関係が存在しても動作順序を矛盾なく表現で
きるようにすることが望ましい。
In addition, a resource sharing relationship between functional modules is added to the operation scenario by adding a directed branch so that a loop does not exist, with the resource sharing relationship between functional modules as an execution order. It is desirable that the operation order can be expressed without contradiction.

【0014】これにより、システムの動作を表現する動
作シナリオに機能モジュール間の資源の共有関係を反映
させることができる。
This makes it possible to reflect the resource sharing relationship between the functional modules in the operation scenario expressing the operation of the system.

【0015】また、動作シナリオの最短の実行時間は、
動作シナリオに対して、機能モジュールを表現する節点
にある組み合わせにおける実行時間を重みとして加え、
処理の開始をあらわす節点から終了を表す節点までの経
路のうち最長のものを動作シナリオの最短の実行時間と
して求めるようにすると良い。
The shortest execution time of the operation scenario is as follows:
For the operation scenario, the execution time of the combination at the node representing the functional module is added as a weight,
The longest path from the node representing the start of the process to the node representing the end may be obtained as the shortest execution time of the operation scenario.

【0016】これにより、動作シナリオにおいて機能モ
ジュールの実行時間を節点の重みとして負荷し最長経路
を求めることで処理の最短実行時間を求めることができ
る。
Thus, in the operation scenario, the shortest execution time of the processing can be obtained by loading the execution time of the functional module as the weight of the node and obtaining the longest path.

【0017】さらに、任意の並列度の実行順と実行時間
は、動作シナリオを表現する半順序グラフをトポロジカ
ルソートすることで機能モジュール間の実行順序を定
め、あらかじめ定められた並列度で少なくとも一つのス
レッドに機能モジュールを振り分けることで見積もると
良い。
Further, the execution order and the execution time of an arbitrary degree of parallelism are determined by performing a topological sort on a partially ordered graph expressing an operation scenario, and the order of execution among the functional modules is determined. It is better to estimate by assigning function modules to threads.

【0018】これにより、動作シナリオをトポロジカル
ソートし、各機能モジュールをスレッドに振り分けるこ
とで任意の並列度の実行順と実行時間を見積もることが
できる。
Thus, the operation scenario is topologically sorted, and each functional module is assigned to a thread, so that the execution order and execution time of an arbitrary degree of parallelism can be estimated.

【0019】さらにまた、動作シナリオを実行中のシス
テムの消費電力の最大値、最小値、平均値は、機能モジ
ュールの実行順序にしたがって、予め見積もられている
各機能モジュールを実装するハードウェアの実行中の消
費電力を積算し、ハードウェアが実行中でない場合には
あらかじめ見積もられているハードウェアの休止状態で
の消費電力を積算することで求めるようにすることが望
ましい。
Furthermore, the maximum value, the minimum value, and the average value of the power consumption of the system during the execution of the operation scenario are determined in advance according to the execution order of the functional modules by the hardware for mounting the functional modules. It is desirable to accumulate the power consumption during the execution, and when the hardware is not being executed, obtain the power consumption by estimating the power consumption of the hardware in a halt state estimated in advance.

【0020】これにより、動作シナリオを実行中のシス
テムの消費電力の最大値、最小値、平均値を求めること
ができる。
As a result, the maximum value, the minimum value, and the average value of the power consumption of the system executing the operation scenario can be obtained.

【0021】また、動作シナリオを実行中のシステムの
バスアクセスの最大値、最小値、平均値は、決定した機
能モジュールの実行順序にしたがって、あらかじめ見積
もられている各機能モジュールを実装するハードウェア
の実行中のバスアクセスを積算することで求めるように
すると良い。
The maximum value, the minimum value, and the average value of the bus access of the system executing the operation scenario are determined in advance according to the execution order of the function modules. It is good to obtain it by accumulating the bus access during execution of.

【0022】これにより、動作シナリオを実行中のシス
テムのバスアクセスの最大値、最小値、平均値を求める
バスアクセス頻度を見積もることができる。
Thus, it is possible to estimate the bus access frequency for obtaining the maximum value, the minimum value, and the average value of the bus access of the system executing the operation scenario.

【0023】さらに、システムの実現に必要なLSIの
面積は、決定した機能モジュールの実行順序にしたがっ
て、同時に必要とするハードウェア資源の最大値を見積
もることにより求めるようにすると良い。
Further, the area of the LSI necessary for realizing the system may be obtained by estimating the maximum value of the hardware resources required simultaneously according to the determined execution order of the functional modules.

【0024】これにより、システムの実現に必要なLS
Iの面積を見積もることができる。
Thus, the LS required for realizing the system
The area of I can be estimated.

【0025】さらにまた、候補データベースに含まれる
組み合わせについて可能なハードウェア構成であるすべ
てのシステムアーキテクチャを生成し、システムアーキ
テクチャデータベースに格納する手段と、切り分け候補
データベースの組み合わせにしたがって動作シナリオを
資源の共有関係を反映させる動作シナリオ更新手段を具
備し、更新された動作シナリオをシステムアーキテクチ
ャデータベースに含まれるすべてのシステムアーキテク
チャについて評価するこようにしても良い。
Furthermore, means for generating all system architectures, which are possible hardware configurations for combinations included in the candidate database, and storing the generated system architecture in the system architecture database, and sharing operation scenarios in accordance with the combination of the separation candidate database. An operation scenario update unit that reflects the relationship may be provided, and the updated operation scenario may be evaluated for all system architectures included in the system architecture database.

【0026】これにより、システムを実現するアルゴリ
ズムとアーキテクチャの組み合わせに対して可能なすべ
てのシステムアーキテクチャを生成することができ、そ
れらについての性能を見積もることができる。
As a result, all possible system architectures can be generated for combinations of algorithms and architectures for realizing the system, and the performance of them can be estimated.

【0027】[0027]

【発明の実施の形態】以下、図1乃至図30を参照し
て、本発明の実施形態に係る回路設計システムの構成お
よびその動作について詳しく説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The configuration and operation of a circuit design system according to an embodiment of the present invention will be described below in detail with reference to FIGS.

【0028】《回路設計システム》始めに、図1を参照
して、本発明の実施形態に係る回路設計システムの構成
について説明する。
<< Circuit Design System >> First, a configuration of a circuit design system according to an embodiment of the present invention will be described with reference to FIG.

【0029】本発明の第1の実施形態に係る回路設計シ
ステムは、図1に示すように、回路設計装置110を備
え、回路設計装置110は、入出力インタフェイス11
1、フレームワーク作成部112、組み合わせ生成部1
13、機能レベルシミュレーション部114、性能評価
部115、制御部116を具備する。
As shown in FIG. 1, the circuit design system according to the first embodiment of the present invention includes a circuit design device 110, and the circuit design device 110 includes an input / output interface 11
1. Framework creation unit 112, combination creation unit 1
13, a function level simulation unit 114, a performance evaluation unit 115, and a control unit 116.

【0030】入出力インタフェイス111は、ユーザと
システム間における情報の入出力処理を制御する役割を
担い、具体的には例えば、グラフィカルユーザインタフ
ェイス(Graphical User Interface:GUI)等を利用
することにより、インタラクティブな回路設計処理が可
能となる。
The input / output interface 111 has a role of controlling information input / output processing between the user and the system. Specifically, the input / output interface 111 uses, for example, a graphical user interface (GUI) or the like. This enables interactive circuit design processing.

【0031】フレームワーク作成部112は、候補作成
処理および切り分け決定処理のためのフレームワークを
作成する。
The framework creating unit 112 creates a framework for the candidate creation processing and the cut-off determination processing.

【0032】組み合わせ生成部113は、各機能モジュ
ールを実装するアルゴリズムとアーキテクチャの組み合
わせを、アルゴリズム・アーキテクチャデータベース1
32内に格納された組み合わせの中から選択する。
The combination generation unit 113 stores a combination of an algorithm and an architecture for implementing each function module in the algorithm / architecture database 1.
32 is selected from the combinations stored in the table 32.

【0033】機能レベルシミュレーション部114は、
組み合わせ生成部113が選択した組み合わせについて
機能レベルシミュレーションを行う。
The function level simulation unit 114
A function level simulation is performed on the combination selected by the combination generation unit 113.

【0034】性能評価部115は、制約関数/評価関数
および動作シナリオを用いて、機能モジュールを実装す
るアルゴリズムとアーキテクチャの組み合わせおよび機
能レベルシミュレーション結果の評価を行う。
The performance evaluation unit 115 evaluates a combination of an algorithm and an architecture for implementing a function module and a function level simulation result using the constraint function / evaluation function and the operation scenario.

【0035】制御部116は、性能評価処理および装置
内の各構成要素の動作を制御する。
The control unit 116 controls the performance evaluation process and the operation of each component in the apparatus.

【0036】また、回路設計装置110は、入力部12
0、出力部121、機能ブロック図データベース13
0、機能モデルデータベース131、アルゴリズム・ア
ーキテクチャデータベース132、動作シナリオデータ
ベース133、制約条件/評価関数データベース13
4、候補データベース135、テストベクタデータベー
ス136、評価結果データベース137およびハードウ
ェア/ソフトウェア仕様データベース138と電気的に
接続され、各データベース内に格納されたデータを読み
書き可能な構成となっている。
The circuit design device 110 includes the input unit 12
0, output unit 121, functional block diagram database 13
0, function model database 131, algorithm / architecture database 132, operation scenario database 133, constraint / evaluation function database 13
4. It is electrically connected to the candidate database 135, the test vector database 136, the evaluation result database 137, and the hardware / software specification database 138, and is configured to be able to read and write data stored in each database.

【0037】入力部120は、回路設計処理に係る各種
情報および制御パラメータを入力するための役割を担
い、例えば、キーボード、マウス、ライトペン等がこれ
にあたる。
The input section 120 has a role of inputting various information and control parameters relating to the circuit design processing, and includes, for example, a keyboard, a mouse, a light pen, and the like.

【0038】出力部121は、回路設計処理に係る各種
情報およびエラー情報を出力するための役割を担い、例
えば、プリンタやディスプレイ装置がこれにあたる。
The output section 121 has a role of outputting various information and error information relating to the circuit design processing, and corresponds to, for example, a printer or a display device.

【0039】機能ブロック図データベース130は、設
計する回路に係わる複数の機能モジュール情報を格納す
る。
The function block diagram database 130 stores a plurality of pieces of function module information relating to a circuit to be designed.

【0040】機能モデルデータベース131は、各機能
モジュールに割り当てられたアルゴリズムとアーキテク
チャに対応する機能モデルを格納する。
The function model database 131 stores a function model corresponding to an algorithm and an architecture assigned to each function module.

【0041】アルゴリズム・アーキテクチャデータベー
ス132は、機能モジュールを実現するアルゴリズムと
アーキテクチャの組み合わせを格納する。
The algorithm / architecture database 132 stores a combination of an algorithm and an architecture for implementing a functional module.

【0042】動作シナリオデータベース133は、設計
する回路および機能モジュールの動作シナリオを格納す
る。なお、ここでいう「動作シナリオ」とは、設計対象
となる回路の動作を表現したものであり、機能モジュー
ルを節点として、機能モジュール間のデータ/制御の受
け渡しの関係を有向枝として記述した半順序グラフによ
り表される(詳しくは、後述)。
The operation scenario database 133 stores operation scenarios of circuits and functional modules to be designed. Here, the “operation scenario” expresses the operation of a circuit to be designed, and the relationship between data / control transfer between functional modules is described as a directed branch with functional modules as nodes. It is represented by a partial order graph (details are described later).

【0043】制約条件/評価関数データベース134
は、性能評価処理に利用する制約条件/評価関数を格納
する。
Restriction condition / evaluation function database 134
Stores the constraint condition / evaluation function used for the performance evaluation process.

【0044】候補データベース135は、組み合わせ生
成部113が生成した機能モジュールを実現するアルゴ
リズムとアーキテクチャの組み合わせの候補を格納す
る。
The candidate database 135 stores a candidate for a combination of an algorithm and an architecture for realizing the function module generated by the combination generation unit 113.

【0045】テストベクタデータベース136は、機能
レベルシミュレーションの際に使用するテストベクタを
格納する。
The test vector database 136 stores test vectors used in the function level simulation.

【0046】評価結果データベース137は、性能評価
部115による性能評価処理結果を格納する。
The evaluation result database 137 stores the results of the performance evaluation processing by the performance evaluation unit 115.

【0047】ハードウェア/ソフトウェア仕様データベ
ース138は、切り分け決定処理により決定された機能
モジュールを実現するアルゴリズムとアーキテクチャの
組み合わせを格納する。
The hardware / software specification database 138 stores a combination of an algorithm and an architecture for realizing the function module determined by the separation determination processing.

【0048】なお、回路設計装置には、いわゆる汎用
機、ワークステーション、PC、NC(Network Comput
er)等が含まれ、例えば、図7に示す構成のような概観
を有し、フロッピー(登録商標)ディスクドライブ72
および光ディスクドライブ74を備えている。そして、
フロッピーディスクドライブ72に対してはフロッピー
ディスク73、光ディスクドライブ74に対しては光デ
ィスク75を挿入し、所定の読み出し操作を行うことに
より、これらの記録媒体に格納されたプログラムをコン
ピュータシステム内にインストールすることができる。
また、所定のドライブ装置を接続することにより、例え
ば、メモリ装置の役割を担うROM77や、磁気テープ
装置の役割を担うカートリッジ78を用いて、インスト
ールやデータの読み書きを実行することもできる。
The circuit design apparatus includes so-called general-purpose machines, workstations, PCs, NCs (Network Computing).
er) and the like, for example, have an overview like the configuration shown in FIG.
And an optical disk drive 74. And
By inserting a floppy disk 73 into the floppy disk drive 72 and an optical disk 75 into the optical disk drive 74 and performing a predetermined read operation, the programs stored in these recording media are installed in the computer system. be able to.
Further, by connecting a predetermined drive device, for example, installation and reading / writing of data can be executed using a ROM 77 serving as a memory device and a cartridge 78 serving as a magnetic tape device.

【0049】《回路設計システムの動作 〜回路設計方
法〜》次に、図2乃至図6を参照して、本発明の実施形
態に係る回路設計方法について説明する。
<< Operation of Circuit Design System ~ Circuit Design Method ~ >> Next, a circuit design method according to an embodiment of the present invention will be described with reference to FIGS.

【0050】本発明の実施形態に係る回路設計方法は、
図2に示すように、大きく分けて2つの処理により構成
される。
The circuit design method according to the embodiment of the present invention
As shown in FIG. 2, the processing is roughly divided into two processes.

【0051】1番目の処理である候補作成処理(S20
1)においては、組み合わせ生成部113が、機能ブロ
ック図データベース130内に格納された各機能モジュ
ールを実装するアルゴリズムとアーキテクチャの組み合
わせを、アルゴリズム・アーキテクチャデータベース1
32内に格納された組み合わせの中から選択し、続い
て、性能評価部115が、制約条件/評価関数データベ
ース134内に格納された制約関数/評価関数と動作シ
ナリオデータベース133内に格納された動作シナリオ
を用いて、選択された各組み合わせの評価を行う。な
お、この組み合わせの生成と評価は、アルゴリズム・ア
ーキテクチャデータベース132に予め記述されている
スタティックなデータに基づいて行われるため、ダイナ
ミックなビヘイビアに関しては誤差が含まれる可能性が
ある。そこで、本発明の実施形態に係る回路設計処理に
おいては、この誤差を予め考慮して複数の解を求め、こ
れら複数解を候補データベース135内に書き込むよう
にする。
The first process, the candidate creation process (S20)
In 1), the combination generation unit 113 stores a combination of an algorithm and an architecture for implementing each function module stored in the function block diagram database 130 in the algorithm / architecture database 1.
Then, the performance evaluation unit 115 selects the combination of the constraint function / evaluation function stored in the constraint condition / evaluation function database 134 and the operation stored in the operation scenario database 133. Evaluate each selected combination using a scenario. Since the generation and evaluation of this combination are performed based on static data described in advance in the algorithm architecture database 132, there is a possibility that an error may be included in the dynamic behavior. Therefore, in the circuit design processing according to the embodiment of the present invention, a plurality of solutions are obtained in consideration of the error in advance, and the plurality of solutions are written in the candidate database 135.

【0052】2番目の処理である切り分け決定処理(S
202)においては、機能レベルシミュレーション部1
14が、候補データベース135内に格納された全ての
組み合わせについて機能レベルシミュレーションを実行
し、候補作成処理の際に使用したのと同じ制約関数/評
価関数を用いて機能レベルシミュレーション結果を評価
する。そして、評価結果に基づいて、最良の組み合わせ
をハードウェア/ソフトウェア仕様として出力し、ハー
ドウェア/ソフトウェア仕様データベース138内に格
納する。なお、切り分け決定処理の際は、各機能モジュ
ールに割り当てられたアルゴリズムとアーキテクチャに
対応する機能モデルを機能モデルデータベース131か
ら選択し、シミュレーションモデルを作成するものとす
る。また、シミュレーションの際に必要なテストベクタ
もテストベクトルデータベース136内に予め用意す
る。
[0052] The second process, which is a decision-making process (S
In 202), the function level simulation unit 1
14 performs a function level simulation for all combinations stored in the candidate database 135, and evaluates the function level simulation results using the same constraint function / evaluation function used in the candidate creation processing. Then, based on the evaluation result, the best combination is output as hardware / software specifications and stored in the hardware / software specification database 138. At the time of the decision-making process, a function model corresponding to an algorithm and an architecture assigned to each function module is selected from the function model database 131 to create a simulation model. Also, test vectors required for the simulation are prepared in the test vector database 136 in advance.

【0053】以上の候補作成処理および切り分け決定処
理が完了すると、これら処理によって決定されたハード
ウェア/ソフトウェア仕様を参照して、実際の回路を製
造していくこととなる(S203)。以下では、上記候
補作成処理、切り分け決定処理の各処理についてさらに
詳しく説明する。
When the above-described candidate creation processing and division determination processing are completed, an actual circuit is manufactured with reference to the hardware / software specifications determined by these processing (S203). Hereinafter, each of the above-described candidate creation processing and the cut-off determination processing will be described in more detail.

【0054】〈候補作成処理〉本発明の実施形態に係る
候補作成処理は、図3に示すように、以下の処理ステッ
プにより実行される。
<Candidate Creation Processing> The candidate creation processing according to the embodiment of the present invention is executed by the following processing steps as shown in FIG.

【0055】(1)フレームワーク作成部112が、機
能ブロック図データベース130とアルゴリズム・アー
キテクチャデータベース132を参照して、機能モジュ
ールへのアルゴリズムとアーキテクチャの割り当ての組
み合わせを生成するためのフレームワークを作成する
(S301)。
(1) The framework creation unit 112 refers to the functional block diagram database 130 and the algorithm / architecture database 132 to create a framework for generating a combination of an algorithm and an architecture assigned to a functional module. (S301).

【0056】(2)組み合わせ生成部113が、フレー
ムワーク作成部112が作成したフレームワークに基づ
いて、機能モジュールへのアルゴリズムとアーキテクチ
ャの可能な全ての組み合わせを生成する(S302)。
(2) Based on the framework created by the framework creating unit 112, the combination creating unit 113 creates all possible combinations of algorithms and architectures for functional modules (S302).

【0057】(3)性能評価部115が、動作シナリオ
データベース133内に格納された動作シナリオにした
がって、制約条件/評価関数データベース134内に格
納された制約条件/評価関数を用いて組み合わせ生成部
113が生成した組み合わせの性能評価をスタティック
に行う(S303)。なお、性能評価方法の詳細につい
ては後述する。
(3) The performance evaluation unit 115 uses the constraint / evaluation function stored in the constraint / evaluation function database 134 in accordance with the operation scenario stored in the operation scenario database 133 to generate the combination generation unit 113 Statically evaluates the performance of the combination generated by (3). The details of the performance evaluation method will be described later.

【0058】(4)制御部115が、性能評価部115
の評価結果と候補データベース135内に格納された組
み合わせとを比較し、候補データベース135内に所定
の最良値(評価値)から予め定められた数(例えば、1
0〜100)の良い組み合わせが保持されるように、候
補データベース135内に格納された組み合わせ情報を
更新する(S304)。
(4) The control unit 115 performs the performance evaluation unit 115
Is compared with the combination stored in the candidate database 135, and a predetermined number (e.g., 1) from a predetermined best value (evaluation value) is stored in the candidate database 135.
The combination information stored in the candidate database 135 is updated so that a good combination of (0 to 100) is held (S304).

【0059】この(3)と(4)の処理を、組み合わせ
生成部113が生成した全ての組み合わせについての評
価が完了するまで繰り返すことにより、候補データベー
ス135内には予め定められた数のスタティックな評価
で良いと思われる組み合わせが常に保持されることにな
る。
By repeating the processes (3) and (4) until the evaluation of all the combinations generated by the combination generation unit 113 is completed, a predetermined number of statics are stored in the candidate database 135. Combinations that are deemed good in evaluation will always be retained.

【0060】〈切り分け決定処理〉本発明の実施形態に
係る切り分け決定処理は、図4に示すように、以下の処
理ステップにより実行される。
<Division Determination Processing> The division determination processing according to the embodiment of the present invention is executed by the following processing steps as shown in FIG.

【0061】(1)フレームワーク作成部112が、機
能ブロック図データベース130、機能モデルデータベ
ース131およびアルゴリズム・アーキテクチャデータ
ベース132内に格納された情報を参照して、機能モジ
ュールへの機能モデルの割り当ての組み合わせを生成
し、機能レベルのシミュレーションモデルのためのフレ
ームワークを作成する(S401)。
(1) The framework creation unit 112 refers to information stored in the function block diagram database 130, the function model database 131, and the algorithm / architecture database 132, and combines the assignment of the function model to the function module. Is generated, and a framework for a functional-level simulation model is created (S401).

【0062】(2)組み合わせ生成部113が、フレー
ムワーク作成部112が作成したフレームワークに基づ
いて、候補データベース135に格納されている可能な
全ての組み合わせを生成する(S402)。
(2) The combination generating unit 113 generates all possible combinations stored in the candidate database 135 based on the framework created by the framework creating unit 112 (S402).

【0063】(3)機能レベルシミュレーション部11
4が、組み合わせ生成部113が生成した機能モジュー
ルと機能モデルの組み合わせについて機能レベルシミュ
レーションを実行する(S403)。なお、機能レベル
ミレーションはテストベクタデータベース136内に予
め用意されたテストベクタを用いて行うものとする。
(3) Function level simulation section 11
4 executes a function level simulation for the combination of the function module and the function model generated by the combination generation unit 113 (S403). The function level simulation is performed using a test vector prepared in advance in the test vector database 136.

【0064】(4)性能評価部115が、機能レベルシ
ミュレーション結果を制約条件/評価関数データベース
134内に格納された制約条件/評価関数を用いて評価
し、評価結果を評価結果データベース137内に格納す
る(S404)。
(4) The performance evaluation unit 115 evaluates the function level simulation result using the constraint condition / evaluation function stored in the constraint condition / evaluation function database 134, and stores the evaluation result in the evaluation result database 137. (S404).

【0065】(5)この一連の処理を候補データベース
135内に格納された全ての組み合わせが評価されるま
でS403とS404を繰り返し、候補データベース1
35内に格納された全ての組み合わせに対して機能レベ
ルシミュレーションを行った結果についての評価結果を
評価結果データベース137内に格納する(S40
5)。
(5) This series of processing is repeated until all combinations stored in the candidate database 135 are evaluated, and S403 and S404 are repeated.
The evaluation result of the result of performing the function level simulation for all the combinations stored in 35 is stored in the evaluation result database 137 (S40).
5).

【0066】(6)最後に総合評価処理により評価結果
データベース137内に格納された評価結果を比較する
ことにより、最良の組み合わせを決定した後、最良の組
み合わせをハードウェア/ソフトウェア仕様として出力
し、ハードウェア/ソフトウェア仕様データベース13
8内に格納する(S406)。
(6) Finally, the best combination is determined by comparing the evaluation results stored in the evaluation result database 137 by the comprehensive evaluation process, and then the best combination is output as hardware / software specifications. Hardware / Software Specification Database 13
8 (S406).

【0067】『性能評価処理』以下、図5、6を参照し
て、動作シナリオに基づいた性能評価処理について説明
する。
[Performance Evaluation Processing] The performance evaluation processing based on the operation scenario will be described below with reference to FIGS.

【0068】(1)制御部116が、候補データベース
135内に格納された組み合わせにしたがって、資源の
共有などについての動作シナリオを更新し、更新結果を
動作シナリオデータベース132内に格納する(S50
1)。
(1) The control unit 116 updates the operation scenario for resource sharing and the like according to the combination stored in the candidate database 135, and stores the update result in the operation scenario database 132 (S50).
1).

【0069】(2)制御部116が、評価関数と制約条
件に基づいて更新結果について評価を行い、評価結果を
評価結果データベース137内に格納する(S50
2)。
(2) The control unit 116 evaluates the update result based on the evaluation function and the constraint, and stores the evaluation result in the evaluation result database 137 (S50).
2).

【0070】そして、この(1)、(2)の処理を全て
の動作シナリオについて行った後、評価結果データベー
ス137を用いて総合評価を行う(S504)。これに
より、すべての動作シナリオについてある切り分け候補
での組み合わせが評価される。
After performing the processes (1) and (2) for all operation scenarios, comprehensive evaluation is performed using the evaluation result database 137 (S504). As a result, a combination of a certain candidate for all operation scenarios is evaluated.

【0071】ここで、図5に示す処理においては、複数
の動作シナリオについて評価を行っているが、評価の対
象になるシステムアーキテクチャは1つであった。これ
を複数のシステムアーキテクチャに拡張した場合には、
図6に示すフローチャートにしたがって処理を行う。
In the processing shown in FIG. 5, a plurality of operation scenarios are evaluated, but only one system architecture is evaluated. If you extend this to multiple system architectures,
The processing is performed according to the flowchart shown in FIG.

【0072】図6に示す処理において、動作シナリオの
更新処理(S601)、性能評価処理(S602)、判
定処理(S604)および総合評価処理(S605)は
それぞれ、図5に示す処理(S501)、(S50
2)、(S503)、(S504)に対応するものであ
る。ただし、性能評価処理(S602)は、図5におけ
る性能評価処理(S502)とは異なりシステムアーキ
テクチャデータベース(図示せず)を参照して処理を行
うために、全てのシステムアーキテクチャを評価したこ
とを判定する処理(S603)が追加されている。な
お、ここでいうシステムアーキテクチャデータベースと
は、候補データベース135内に格納された組み合わせ
を予め解析し、可能なシステムアーキテクチャ構造をデ
ータベース化したものである。
In the processing shown in FIG. 6, the operation scenario update processing (S601), the performance evaluation processing (S602), the judgment processing (S604), and the comprehensive evaluation processing (S605) are respectively the processing (S501) shown in FIG. (S50
2), (S503) and (S504). However, unlike the performance evaluation processing (S502) in FIG. 5, the performance evaluation processing (S602) determines that all system architectures have been evaluated in order to perform processing with reference to a system architecture database (not shown). (S603) is added. Here, the system architecture database is a database in which the combinations stored in the candidate database 135 are analyzed in advance, and possible system architecture structures are converted into a database.

【0073】以上説明したように、図5,6に示す、本
発明の実施形態に係る性能評価処理によれば、動作シナ
リオに基づいたスタティックな性能評価と機能レベルの
シミュレーションに基づいたダイナミックな性能評価を
組み合わせて行うこととなるので、機能レベルシミュレ
ーションに基づいたダイナミックな性能評価のみの性能
評価の場合と比べて、広い解空間の探索を短時間で且つ
同等の精度で行うことができる。
As described above, according to the performance evaluation processing shown in FIGS. 5 and 6 according to the embodiment of the present invention, the static performance evaluation based on the operation scenario and the dynamic performance based on the simulation of the function level are performed. Since the evaluations are performed in combination, it is possible to search for a wide solution space in a short time and with the same accuracy as compared with the case of performance evaluation using only dynamic performance evaluation based on the function level simulation.

【0074】〜動作シナリオに基づいた性能評価手法〜 次に、動作シナリオに基づいた具体的な性能評価手法に
ついて説明する。ここで、システムを実現するあるアル
ゴリズムとアーキテクチャの組み合わせについて、面積
と処理に必要なエネルギーは組み合わせが決定すると自
動的に決定される。このため、以下では、処理時間、消
費電力の最大値およびバスアクセス頻度についての評価
方法について説明する。
-Performance Evaluation Method Based on Operational Scenario- Next, a specific performance evaluation method based on an operation scenario will be described. Here, for a certain combination of an algorithm and an architecture for realizing the system, the area and the energy required for processing are automatically determined when the combination is determined. Therefore, a method for evaluating the processing time, the maximum value of the power consumption, and the bus access frequency will be described below.

【0075】〜動作シナリオおよび処理時間について〜 図8(a)は動作シナリオの一例を示し、動作シナリオ
は半順序グラフにより表現される。ここで、半順序グラ
フとは、接点と接点間を結ぶ有向枝で構成され、ループ
の存在しないものである。また、図8(a)中、SとE
はそれぞれ、半順序グラフの始点と終点を表し、それぞ
れ処理の始めと終わりに対応する。さらに、グラフ中の
接点はシステムの各機能を表現し、有向枝は機能間の因
果関係を表す。例えば、グラフの接点3は4つの枝によ
り4つの接点1,2,9,5と接続している。ここで、
接点3には接点4と接点5から出る枝が接続している。
これにより、接点1と接点2の処理が終了した後、接点
3が表現する処理を実行できることを示している。ま
た、接点3から出る枝が接続している接点9と接点5は
接点3よりも後で実行されなければならない処理を表し
ている。
[Operation Scenario and Processing Time] FIG. 8A shows an example of an operation scenario, and the operation scenario is expressed by a partial order graph. Here, the partially ordered graph is formed of directed branches connecting the contacts and having no loop. Also, in FIG. 8A, S and E
Respectively represent the starting point and the ending point of the partially ordered graph, and correspond to the beginning and the end of the processing, respectively. Furthermore, the contact points in the graph represent each function of the system, and the directed branches represent the causal relationship between the functions. For example, contact 3 in the graph is connected to four contacts 1, 2, 9, and 5 by four branches. here,
The branch coming out of the contacts 4 and 5 is connected to the contact 3.
This indicates that the processing represented by the contact 3 can be executed after the processing of the contact 1 and the contact 2 is completed. Also, the contacts 9 and 5 to which the branches coming out of the contact 3 are connected represent processes that must be executed after the contact 3.

【0076】ここで、接点Dと接点Bの表す処理がある
資源を共有しているため、並行して実行することができ
ない状況を考える。今、この2つの処理の間に直接の因
果関係がないと仮定すると、動作シナリオを表すグラフ
にはこの2つの接点間に枝が存在しない。しかしなが
ら、資源の共有関係があるため、2つの処理に順序をつ
ける必要が生じる。そこで、このような状況の解決方法
を図8(b)に示す。図8(b)に示す半順序グラフに
おいては、接点Dと接点Bの間に枝を追加してある。こ
の枝により2つの接点があらわす処理に順序をつけるこ
とができる。なお、この枝はループができないように付
ける必要がある。
Here, consider a situation in which the processes represented by the contact points D and B share certain resources and cannot be executed in parallel. Now, assuming that there is no direct causal relationship between the two processes, there is no branch between the two points in the graph representing the operating scenario. However, because of the resource sharing relationship, it is necessary to order the two processes. Therefore, a solution to such a situation is shown in FIG. In the partial order graph shown in FIG. 8B, a branch is added between the contact point D and the contact point B. The branches allow the order of the process represented by the two contacts. It is necessary to attach this branch so that a loop cannot be formed.

【0077】次に、図8(a),(b)の動作シナリオ
について全ての処理を逐次実行した場合のシーケンス例
を図9(a)に示す。動作シナリオからこのようなシー
ケンスを求めるためには、例えば、トポロカルソートを
行えば良い。なお、このシーケンスは動作シナリオにつ
いて複数存在することがある。グラフにおいて直接の因
果関係が存在しない接点が表す処理は図8(b)のよう
に資源共有関係がない限り並行処理が可能である。ここ
で、簡単のために、全ての処理に必要な時間が等しいと
仮定した場合の並行処理の例を図9(b)、図10に示
す。
Next, FIG. 9A shows an example of a sequence in which all the processes are sequentially executed for the operation scenarios shown in FIGS. 8A and 8B. In order to obtain such a sequence from the operation scenario, for example, a topological sort may be performed. Note that there may be a plurality of this sequence for the operation scenario. The process represented by a contact point having no direct causal relationship in the graph can be performed in parallel as long as there is no resource sharing relationship as shown in FIG. Here, for the sake of simplicity, FIGS. 9B and 10 show examples of parallel processing when it is assumed that the time required for all the processing is equal.

【0078】図9(b)は図8(a),(b)の動作シ
ナリオを2スレッドの並行処理としたものである。図9
(b)に示す動作シナリオ2においては資源共有を表す
枝により接点Bの処理が接点Dの処理よりも後になって
いる。ある動作シナリオについて、最短の実行時間は、
グラフの接点が処理時間を重みとして持っていると仮定
した場合の最長経路長で求めることができる。このこと
はグラフの定義より明らかである。この時、得られる並
列度が(意味のある)最大の並列度となる。全ての処理
に必要な時間が等しいと仮定した場合、図8(a),
(b)の動作シナリオでは3スレッドが最大の並列度で
あり、その場合のステップ数はそれぞれ6と7である。
この様子を図10に示す。図10に示す動作シナリオ2
においては処理Dと処理Bの資源共有により処理Bの実
行位置が動作シナリオ1と比べて後ろにずれていること
がわかる。
FIG. 9 (b) shows the operation scenario of FIGS. 8 (a) and 8 (b) as two threads of parallel processing. FIG.
In the operation scenario 2 shown in (b), the processing of the contact point B is later than the processing of the contact point D due to the branch indicating the resource sharing. For some operating scenarios, the shortest execution time is
The longest path length can be obtained by assuming that the contact point of the graph has the processing time as a weight. This is clear from the definition of the graph. At this time, the obtained degree of parallelism is the maximum (significant) degree of parallelism. Assuming that the time required for all the processes is equal, FIG.
In the operation scenario of (b), three threads have the maximum degree of parallelism, and the number of steps in that case is 6 and 7, respectively.
This is shown in FIG. Operation scenario 2 shown in FIG.
It can be seen that the execution position of the process B is shifted behind the operation scenario 1 due to the resource sharing of the process D and the process B.

【0079】図9,10に示す例はほとんどの処理をハ
ードウェアにかかわらず実行できるという過程に基づい
たものであったが、現実にはハードウェア毎に実行でき
る処理が決まっている場合が多い。その場合の処理は図
11(a)に示すような逐次実行になるか、図11
(b)のようなパイプライン実行になる。図11(a)
においては処理Aから処理Zまでの処理が逐次実行さ
れ、各処理の時間違いから処理時間合計は図11(a)
に示す長さになる。図11(b)ではこれらの処理をパ
イプライン実行しているが、そのステージの時間間隔は
処理の内最も時間を必要とするものとなる。
The examples shown in FIGS. 9 and 10 are based on the process that almost all processes can be executed irrespective of hardware. However, actually, the processes that can be executed are determined for each hardware in many cases. . In this case, the processing is executed sequentially as shown in FIG.
The pipeline is executed as shown in FIG. FIG. 11 (a)
In FIG. 11A, the processing from processing A to processing Z is sequentially executed, and the total processing time is calculated as shown in FIG.
Length. In FIG. 11B, these processes are executed in a pipeline, but the time interval of the stage requires the most time among the processes.

【0080】ここで、図8(b)と同様に資源を共有し
ているため並行実行できない処理の組み合わせがある場
合には、図12に示すような実行方式となる。図12で
は処理Cと処理Eが資源を共有していると仮定してい
る。これにより、各ステージの時間間隔は少なくとも処
理Cと処理Eの処理時間の和よりも長い必要があること
がわかる。
Here, if there is a combination of processes that cannot be executed in parallel because resources are shared as in FIG. 8B, the execution method is as shown in FIG. In FIG. 12, it is assumed that the process C and the process E share resources. This indicates that the time interval of each stage needs to be longer than at least the sum of the processing times of the processing C and the processing E.

【0081】以上、図8から図12を参照して、動作シ
ナリオとそれを利用した処理時間の予測方法について説
明したが、これらの説明により個々のモジュールの処理
時間が一定であると仮定できるならば、動作シナリオを
利用することで、最大並列度、最小処理時間、パイプラ
インのステージの時間間隔や処理の順番等をモジュール
間で資源の共有のある場合でも求められることは明らか
であろう。
The operation scenario and the method of estimating the processing time using the operation scenario have been described with reference to FIGS. 8 to 12. If it is assumed that the processing time of each module is constant based on these descriptions, For example, it is apparent that the maximum parallelism, the minimum processing time, the time intervals of the stages of the pipeline, the order of processing, and the like can be obtained even when resources are shared between modules by using the operation scenario.

【0082】〜消費電力の最大値について〜 次に、消費電力の平均値を求める方法を説明する。Next, a method of obtaining the average value of the power consumption will be described.

【0083】各機能モジュールを実装するハードウェア
とソフトウェアが決定すると、その消費電力も決定する
ことができる。今、図8(a)の動作シナリオで実行さ
れる13個の機能モジュールの消費電力が図13のよう
に表されるとする。図13において各機能モジュールの
消費電力はY軸方向の長さで表され、処理時間はX軸方
向の長さで表現されている。
When the hardware and software for mounting each functional module are determined, the power consumption can also be determined. Now, it is assumed that the power consumption of the thirteen functional modules executed in the operation scenario of FIG. 8A is represented as shown in FIG. In FIG. 13, the power consumption of each functional module is represented by the length in the Y-axis direction, and the processing time is represented by the length in the X-axis direction.

【0084】ここで、図14(a)のような順序で処理
が進行すると、消費電力は図14(b)のように変化す
ることになる。図14(a)の処理順序において処理
4,6,7,9,Cはその実行タイミングをずらすこと
が可能であり、その範囲はそれぞれ4,6,7,C,9
で表せる。そこで、図14(a)の処理順序を変更して
図15(a)のようにした場合の消費電力を図15
(b)に表す。図15(a)では処理4,6,7,9の
実行開始が遅らせられている。図15(b)に示す消費
電力の最大値bは図14(b)に示す消費電力aよりも
低い値になっている。
Here, when the processing proceeds in the order as shown in FIG. 14A, the power consumption changes as shown in FIG. 14B. In the processing order of FIG. 14A, the execution timings of the processes 4, 6, 7, 9, and C can be shifted, and the ranges thereof are 4, 6, 7, C, and 9 respectively.
Can be represented by Therefore, the power consumption when the processing order of FIG. 14A is changed to that of FIG.
(B). In FIG. 15A, the execution start of the processes 4, 6, 7, and 9 is delayed. The maximum value b of the power consumption shown in FIG. 15B is lower than the power consumption a shown in FIG.

【0085】このように上記の方法によれば、各機能モ
ジュールの実装であるハードウェア、ソフトウェアが決
定し、その実行順序が動作シナリオにより求まれば、消
費電力の最大値を見積もることができ、実行順序に自由
度がある場合には消費電力の最大値を最小化することも
可能である。
As described above, according to the above method, if the hardware and software which are the implementations of the respective function modules are determined and the execution order is determined by the operation scenario, the maximum value of the power consumption can be estimated. If there is a degree of freedom in the execution order, the maximum value of power consumption can be minimized.

【0086】〜バスアクセス頻度について〜 続いて、機能モジュールの実装およびバスの形式が決定
した場合のバスアクセス頻度を見積もる方法を説明す
る。
Next, a description will be given of a method of estimating the bus access frequency when the mounting of the functional module and the type of the bus are determined.

【0087】今、システムアーキテクチャは図16
(a),(b)のような形式となったとする。図16
(a)は1つの大域バスにCPU、メモリ(Mem)、
専用ハードウェア(HW)が接続する形式で、システム
アーキテクチャとしては最もシンプルなものである。図
16(b)は大域バスにCPUとメモリが接続し、これ
とは別に、ローカルバスに専用ハードウェアとメモリが
接続している。また、この2つのバスはDMAコントロ
ーラ(DMAC)を介して接続されている。
Now, the system architecture is shown in FIG.
It is assumed that the format is as shown in (a) and (b). FIG.
(A) shows CPU and memory (Mem) on one global bus,
This is a form in which dedicated hardware (HW) is connected, and is the simplest system architecture. In FIG. 16B, a CPU and a memory are connected to a global bus, and separately from this, dedicated hardware and a memory are connected to a local bus. The two buses are connected via a DMA controller (DMAC).

【0088】図16(a)に示すシステムアーキテクチ
ャについて、各機能モジュールのバスアクセス頻度が図
17(a)のように表現されるとする。図17(a)で
は図8(a)の動作シナリオに基づいて13個の機能モ
ジュールがY軸方向の長さに相当する頻度で大域バスに
アクセスしていると仮定する。これを図14(a),図
15(a)に示される実行順序に従って並べたものを図
17(b),(c)に示す。この図によれば、図17
(c)に示す実行順序の方が、バスアクセス頻度の最大
値が低く、その分、バスのバンド幅が狭くともよいこと
になる。
In the system architecture shown in FIG. 16A, it is assumed that the bus access frequency of each functional module is expressed as shown in FIG. In FIG. 17A, it is assumed that 13 functional modules access the global bus at a frequency corresponding to the length in the Y-axis direction based on the operation scenario of FIG. 8A. FIGS. 17 (b) and 17 (c) show the arrangement in accordance with the execution order shown in FIGS. 14 (a) and 15 (a). According to this figure, FIG.
In the execution order shown in (c), the maximum value of the bus access frequency is lower, and accordingly, the bus bandwidth may be narrower.

【0089】一方、図16(b)のシステムアーキテク
チャについて、各機能モジュールのバスアクセス頻度が
図18(a)のように表現されるとする。図18(a)
では図8(a)の動作シナリオに基づいて13個の機能
モジュールがY軸方向の長さに相当する頻度でバスアク
セスしていると仮定する。このバスアクセスの内、斜線
部分がローカルバスについてのバスアクセスであり、上
の空白部分が大域バスについてのバスアクセスであると
仮定する。これを大域バスとローカルバスに分けて表し
たものをそれぞれ図18(b),(c)に示す。
On the other hand, in the system architecture shown in FIG. 16B, it is assumed that the bus access frequency of each functional module is expressed as shown in FIG. FIG. 18 (a)
Here, it is assumed that thirteen functional modules access the bus at a frequency corresponding to the length in the Y-axis direction based on the operation scenario of FIG. In this bus access, it is assumed that the hatched portion is the bus access for the local bus, and the blank portion above is the bus access for the global bus. FIGS. 18 (b) and 18 (c) show this in a state divided into a global bus and a local bus.

【0090】この2つの図に示されたバスアクセスを図
14(a)に示される実行順序に従って並べたものを図
19に示す。また、図15(a)に従って並べたものを
図20に示す。図19(a),図20(a)は大域バス
のバスアクセスを表し、図19(b),図20(b)は
ローカルバスのバスアクセスを表現している。これらの
図と図17(b),(c)とを比較すると、バスを分割
して大域バスとローカルバスに分割したことによりバス
アクセス頻度の最大値が低下し、さらに図15(a)の
実行順序に従って並べた図20(a)、(b)での値
は、図14(a)に従って並べた図19(a)、(b)
よりも小さいことがわかる。
FIG. 19 shows the bus accesses shown in these two figures arranged in accordance with the execution order shown in FIG. 14 (a). FIG. 20 shows an arrangement according to FIG. 15 (a). 19 (a) and 20 (a) show bus access of the global bus, and FIGS. 19 (b) and 20 (b) show bus access of the local bus. 17B and FIG. 17C, when the bus is divided into the global bus and the local bus, the maximum value of the bus access frequency is reduced. The values in FIGS. 20 (a) and (b) arranged according to the execution order are shown in FIGS. 19 (a) and (b) arranged according to FIG. 14 (a).
It turns out that it is smaller than.

【0091】このように上記の方法によれば、各機能モ
ジュールの実装であるハードウェア、ソフトウェアとシ
ステムアーキテクチャが決定し、その実行順序が動作シ
ナリオにより求まれば、バスアクセス頻度の最大値を見
積もることができ、実行順序に自由度がある場合にはバ
スアクセス頻度の最大値を最小化することも可能であ
る。
As described above, according to the above method, the hardware, software, and system architecture, which are the implementations of the respective functional modules, are determined, and if the execution order is determined by the operation scenario, the maximum value of the bus access frequency is estimated. If the execution order has a degree of freedom, the maximum value of the bus access frequency can be minimized.

【0092】以上説明してきたように、本発明の実施形
態に係る性能評価処理によれば、動作シナリオに基づい
て処理時間、消費電力の最大値、バスアクセス頻度を容
易に求めることができる。
As described above, according to the performance evaluation processing according to the embodiment of the present invention, the processing time, the maximum value of the power consumption, and the bus access frequency can be easily obtained based on the operation scenario.

【0093】《回路設計プログラムを格納したコンピュ
ータ読取り可能な記録媒体》本発明の実施形態に係る回
路設計方法は、プログラム化しコンピュータ読取り可能
な記録媒体に保存しても良い。そして、回路設計処理を
行う際は、この記録媒体をコンピュータシステムに読み
込ませ、コンピュータシステム内のメモリ等の記憶部に
プログラムを格納し、回路設計プログラムを演算装置で
実行することにより、本発明の回路設計装置およびその
方法を実現することができる。ここで、記録媒体とは、
例えば、半導体メモリ、磁気ディスク、光ディスク、光
磁気ディスク、磁気テープなどのプログラムを記録する
ことができるようなコンピュータ読取り可能な記録媒体
等が含まれる。
<< Computer-readable recording medium storing circuit design program >> The circuit design method according to the embodiment of the present invention may be programmed and stored in a computer-readable recording medium. Then, when performing the circuit design processing, the recording medium is read into a computer system, the program is stored in a storage unit such as a memory in the computer system, and the circuit design program is executed by an arithmetic unit, thereby realizing the present invention. A circuit design device and a method thereof can be realized. Here, the recording medium is
For example, a computer-readable recording medium capable of recording a program such as a semiconductor memory, a magnetic disk, an optical disk, a magneto-optical disk, and a magnetic tape is included.

【0094】《実験例》以下、本発明の実施形態に係わ
る回路設計方法、特に性能評価処理についてのさらなる
理解のために、図2に示すMPEGエンコーダについ
て性能評価実験を行った結果について説明する。
[0094] "Experimental Example" below, circuit design method according to an embodiment of the present invention, in particular for further understanding of the performance evaluation process will be described results of performance evaluation tests for the MPEG encoder shown in FIG. 2 1 .

【0095】性能評価の対象となるエンコーダは、図2
1に示すように、画像データを変換し、変換データをフ
レームバッファに保持する前処理モジュール211、現
在処理しているフレームを保持するフレームバッファ2
12、現在処理しているフレームと1つ前のフレームの
間で相関を取り、動きベクタを求める動き推定モジュー
ル213、動きベクタにしたがって1つ前のフレームに
対して動き補償を行う動き補償モジュール214、1つ
前のフレームを保持するフレームバッファ215、現在
のフレームと1つ前のフレームの差分を取るモジュール
(−)、フレームの差分出力に対してDCT演算を行う
DCT演算モジュール216、DCT演算結果に対して
逆演算を行うIDCT演算モジュール217、IDCT
演算結果と1つ前のフレームの和を取り、和をフレーム
バッファに格納するモジュール(+)、DCT演算結果
をエントロピー符号化するエントロピー符号化モジュー
ル218、動きベクタと符号化された画像情報を多重化
する多重化モジュール219、多重化された情報をビッ
ト列に変換するビット列変換モジュール220、ビット
列変換された情報を決められたタイミングで出力する出
力バッファ221から構成される。
The encoder to be evaluated for performance is shown in FIG.
As shown in FIG. 1, a pre-processing module 211 for converting image data and holding the converted data in a frame buffer, a frame buffer 2 for holding a frame currently being processed
12. A motion estimation module 213 that obtains a motion vector by correlating between the currently processed frame and the immediately preceding frame, and a motion compensation module 214 that performs motion compensation on the immediately preceding frame according to the motion vector. A frame buffer 215 for holding the previous frame, a module (−) for taking a difference between the current frame and the previous frame, a DCT operation module 216 for performing a DCT operation on a difference output of the frame, a DCT operation result IDCT operation module 217 that performs inverse operation on IDCT
A module (+) for taking the sum of the calculation result and the immediately preceding frame and storing the sum in a frame buffer, an entropy coding module 218 for entropy coding the DCT calculation result, and multiplexing the motion vector and the coded image information. A multiplexing module 219 for converting the multiplexed information into a bit string, and an output buffer 221 for outputting the bit string converted information at a predetermined timing.

【0096】本実験では、図21に示すエンコーダは図
22に示す動作シナリオにしたがって動作するものとす
る。なお、この動作シナリオにおいては、フレームの差
分、和を取る演算はそれぞれ、DCT演算、IDCT演
算に含まれるものとする。ここで、図22に示す動作シ
ナリオの始点から終点までの経路の内、最長のものに基
づいて各モジュールを並べたものを図23に示す。この
図からわかるように、IDCT処理の実行タイミングに
は自由度があり、エントロピー符号化から多重化が行わ
れるまでに実行されれば良い。そこで、以下では、図2
4に示すように、IDCT処理はDCT演算とエントロ
ピー符号化の間で行うものとして性能評価を行うことに
する。
In this experiment, it is assumed that the encoder shown in FIG. 21 operates according to the operation scenario shown in FIG. In this operation scenario, it is assumed that the operations for taking the difference and the sum of the frames are included in the DCT operation and the IDCT operation, respectively. Here, FIG. 23 shows an arrangement in which the modules are arranged based on the longest path from the start point to the end point of the operation scenario shown in FIG. As can be seen from this figure, there is a certain degree of freedom in the execution timing of the IDCT processing, and the IDCT processing may be performed from the entropy encoding to the multiplexing. Therefore, in the following, FIG.
As shown in FIG. 4, the performance evaluation is performed assuming that the IDCT processing is performed between the DCT operation and the entropy coding.

【0097】それでは、始めに、性能評価を行うための
アルゴリズム・アーキテクチャデータベースについて説
明する。なお、このデータベースで想定しているアーキ
テクチャは、図25(a)に示すような、1つのバスに
CPU、メモリ、ハードウェアモジュールが接続したも
の、若しくは、図25(b)に示すような、ローカルバ
スとグローバルバスにそれぞれCPUやハードウェアモ
ジュールが接続したものである。以下の説明において
は、図25(a)に示すアーキテクチャについて性能評
価を行うこととするが、図25(b)に示すアーキテク
チャについても同様の方法で性能評価を行うことができ
ることは言うまでもない。また、以下の性能評価の説明
では前処理を除く部分についての性能評価を行い、フレ
ームバッファについては、どのような構成となっても同
じ量のハードウェアが必要であると仮定して、評価対象
から外していることに注意されたい。
First, an algorithm architecture database for performing performance evaluation will be described. The architecture assumed in this database is one in which a CPU, a memory, and a hardware module are connected to one bus as shown in FIG. 25A, or one as shown in FIG. CPU and hardware modules are connected to a local bus and a global bus, respectively. In the following description, performance evaluation is performed on the architecture shown in FIG. 25A, but it is needless to say that performance evaluation can be performed on the architecture shown in FIG. 25B by the same method. In the following description of performance evaluation, performance evaluation is performed for the parts except for the preprocessing, and the frame buffer is assumed to require the same amount of hardware regardless of the configuration. Note that it has been removed from

【0098】図26,27はアルゴリズム・アーキテク
チャデータベースの内容を示し、図26から図27
(b)は、MPEGエンコーダの各モジュールについ
て、それを実現するハードウェア、ソフトウェア毎に必
要とする面積、クロック数で表した処理時間、クロック
当たりの消費電力、必要とするメモリ容量、バスアクセ
ス回数をまとめたものであり、図27(c)はハードウ
ェア毎に面積、最大クロック周波数、アイドル時のクロ
ック当たりの消費電力、アクティブ時のクロック当たり
の消費電力をまとめたものである。
FIGS. 26 and 27 show the contents of the algorithm architecture database.
(B) shows, for each module of the MPEG encoder, the hardware for realizing it, the area required for each software, the processing time represented by the number of clocks, the power consumption per clock, the required memory capacity, and the number of bus accesses FIG. 27 (c) summarizes the area, the maximum clock frequency, the power consumption per clock in idle mode, and the power consumption per clock in active mode for each hardware.

【0099】図26(a)に示す動き推定モジュールに
ついては、Me1、Me2、Me3の3つのハードウェ
アモジュールが使用でき、それらのモジュールについて
の評価値が表の各項目となっている。ここで、モジュー
ルが必要とするメモリはROMとRAMに分けて値が求
められていて、さらにROMについては命令部分とデー
タ部分に分けられ、RAMについては大域データとロー
カルデータに分けられている。また、バスアクセス回数
に関しても大域アクセスが必要となる場合、ローカルア
クセスで充分な場合に分けられている。
For the motion estimation module shown in FIG. 26A, three hardware modules Me1, Me2, and Me3 can be used, and the evaluation values of those modules are listed in the table. Here, values required for the memory required by the module are divided into a ROM and a RAM. The ROM is further divided into an instruction portion and a data portion, and the RAM is divided into global data and local data. Also, the number of bus accesses is divided into cases where global access is required and cases where local access is sufficient.

【0100】図26(b)に示す補償モジュールについ
ては、Mc1、Mc2の2つのハードウェアモジュール
とCPU1またはCPU2上で実行されるアルゴリズ
ム、Mc3による実装が可能であることが示されてい
る。ここで、CPU上で実行されるアルゴリズムの場
合、面積にCPUの目積は含まないものとする。
It is shown that the compensation module shown in FIG. 26B can be implemented by two hardware modules Mc1 and Mc2, an algorithm executed on the CPU1 or CPU2, and Mc3. Here, in the case of the algorithm executed on the CPU, the area does not include the size of the CPU.

【0101】図26(c)はDCTとIDCT処理を行
うモジュールについての表を示す。3種類のハードウェ
アモジュールDCT1からDCT3または3種類のアル
ゴリズムをCPU1またはCPU2上で実行することで
実装することができることがわかる。
FIG. 26C shows a table for modules for performing DCT and IDCT processing. It can be seen that three types of hardware modules DCT1 to DCT3 or three types of algorithms can be implemented by executing them on the CPU1 or CPU2.

【0102】図26(d)はエントロピー符号化処理を
行うモジュールについての表を示す。2種類のハードウ
ェアモジュールCode1、Code2またはアルゴリ
ズムCode3をCPU1またはCPU2上で実行する
ことで実装できることがわかる。
FIG. 26D shows a table of modules for performing the entropy encoding process. It can be seen that two types of hardware modules Code1, Code2 or algorithm Code3 can be implemented by executing them on CPU1 or CPU2.

【0103】図27(a)は多重化処理を行うモジュー
ルについての表を示す。2種類のハードウェアモジュー
ルMux1、Mux2またはアルゴリズムMux3をC
PU1またはCPU2上で実行することで実装できるこ
とがわかる。
FIG. 27A shows a table for modules for performing multiplexing processing. Two types of hardware modules Mux1, Mux2 or algorithm Mux3
It can be seen that the implementation can be performed by executing on the PU1 or the CPU2.

【0104】図27(b)はビット列変換処理を行うモ
ジュールについての表を示す。2種類のハードウェアモ
ジュールBit1、Bit2またはアルゴリズムBit
3をCPU1またはCPU2上で実行することで実装で
きることがわかる。
FIG. 27B shows a table for modules for performing bit string conversion processing. Two types of hardware modules Bit1, Bit2 or algorithm Bit
3 can be implemented by executing it on the CPU 1 or the CPU 2.

【0105】図27(c)は図26から図27(b)の
表に現れたハードウェアメモリについての性能をまとめ
た表を示す。この表では図26から図27(b)に現れ
ないCPUモジュールの面積や各ハードウェアのアイド
ル時の消費電力、メモリについての面積、消費電力がま
とめてある。なお、メモリの面積は1バイト当たりの値
であり、消費電力は、アイドル時は1バイト当たり、ア
クティブ時は1バイトを1回アクセスした場合の値であ
る。また、図26,27においてはバス幅は16ビット
であり2バイトを一度にアクセスすると仮定している。
FIG. 27 (c) shows a table summarizing the performances of the hardware memories appearing in the tables of FIGS. 26 to 27 (b). This table summarizes the area of the CPU module that does not appear in FIG. 26 to FIG. 27B, the power consumption of each hardware at idle, the area of the memory, and the power consumption. Note that the area of the memory is a value per byte, and the power consumption is a value per byte when idle, and a value when one byte is accessed once when active. 26 and 27, it is assumed that the bus width is 16 bits and two bytes are accessed at a time.

【0106】図24に示す動作シナリオについて、図2
5(b)に示すアーキテクチャの場合の面積、処理クロ
ック数、消費電力、バスアクセス回数を図26,27に
示されるアルゴリズム、アーキテクチャデータベースに
基づいて評価する手順を以下に示す。
Referring to the operation scenario shown in FIG. 24, FIG.
The procedure for evaluating the area, the number of processing clocks, the power consumption, and the number of bus accesses in the case of the architecture shown in FIG. 5B based on the algorithms and the architecture database shown in FIGS.

【0107】まず、各モジュールを実装するアルゴリズ
ム、アーキテクチャを決定する。本発明の実施形態に係
る処理フローにおいては、モジュール、アルゴリズムお
よびアーキテクチャの組み合わせは、組み合わせ生成処
理で決められるが、その結果図28に示すような組み合
わせが決まったと仮定する。図28には図26から図2
7(b)のデータの内、実装に用いると決定したものを
集めたものである。
First, an algorithm and an architecture for mounting each module are determined. In the processing flow according to the embodiment of the present invention, the combination of the module, the algorithm, and the architecture is determined by the combination generation processing, and as a result, it is assumed that the combination shown in FIG. 28 is determined. FIG. 28 shows FIG.
7 (b) is a collection of data determined to be used for mounting.

【0108】図28に示す表によれば、動き推定はMe
3、動き補償はMc2、DCT処理とIDCT処理はD
CT、エントロピー符号化はCode2、多重化はMu
x3をCPU1上で実行、Bビット列変換はBit3を
CPU1で実行することがわかる。また、CPU上で実
行するアルゴリズムの項目では含まれていないCPU1
の面積などは全体のシーケンスをコントロールするプロ
グラムの項目を設けて加えてある。この表は図24に示
す動作シナリオにしたがったものであるため、DCT演
算とIDCT演算はシーケンシャルに行うことができ
る。したがって、この2つのモジュールに関するスタテ
ィックな資源は共有可能であるので、面積およびバスア
クセスに関してはIDCTについては0としている。
According to the table shown in FIG. 28, the motion estimation
3. Mc2 for motion compensation, D for DCT processing and IDCT processing
CT, entropy coding is Code2, multiplexing is Mu
It can be seen that x3 is executed on the CPU1 and B3 bit string conversion is executed on the CPU1. Also, the CPU 1 which is not included in the item of the algorithm executed on the CPU
The area etc. is added by providing a program item for controlling the entire sequence. Since this table follows the operation scenario shown in FIG. 24, the DCT operation and the IDCT operation can be performed sequentially. Therefore, since static resources for these two modules can be shared, IDCT is set to 0 for area and bus access.

【0109】図28で使用されいるハードウェアについ
て図27(c)から抜き出したものを図29(a)に示
す。ここで、RAMはmem2、ROMはrom2を使
用すると仮定している。このMPEGエンコーダの最大
クロック周波数は、DCT1により律速され90MHz
であることがわかる。
FIG. 29 (a) shows the hardware used in FIG. 28 extracted from FIG. 27 (c). Here, it is assumed that the RAM uses mem2 and the ROM uses rom2. The maximum clock frequency of this MPEG encoder is controlled by DCT1 and is 90 MHz.
It can be seen that it is.

【0110】図28における面積の合計にはメモリにか
かわる分が含まれていないので、メモリに必要な面積を
求めたものを図29(b)に示す。図29(a)ではま
ずROMとRAMの容量をそれぞれ820と256、5
760と2312の和としてもとめ、図29(a)にお
ける1バイトあたりの面積を基にして総面積を求めてい
る。
Since the sum of the areas in FIG. 28 does not include the amount related to the memory, FIG. 29B shows the calculated area required for the memory. In FIG. 29A, first, the capacities of the ROM and the RAM are 820, 256, and 5, respectively.
The total area is obtained based on the area per byte in FIG. 29A, as the sum of 760 and 2312.

【0111】次に消費電力を求める方法を示す。Next, a method for obtaining power consumption will be described.

【0112】消費電力はモジュールがアイドル状態にあ
る場合とアクティブ状態である場合とで異なる値となる
ため、それぞれに別々に求める。まず、メモリについて
求めた例を図30(a)に示す。図30(a)は命令、
データの各メモリについてその容量、アクセス回数をま
とめ、アイドル時の消費電力とアクティブ時の消費電力
を求めて和を取ったものである。ここで、メモリがアイ
ドル状態であるのはアクセスが行われない時であり、1
アクセス当たり1クロックが必要であると仮定すると、
全実行クロック数からアクセス回数を引いた値に容量と
1アクセス、1バイトあたりのアイドル時の消費電力を
掛けたものがその消費電力となる。また、アクティブ時
の消費電力はアクセス回数に容量と1アクセス、1バイ
トあたりのアクティブ時の消費電力を掛けたものとな
る。図30(a)においてはROMとRAMのアイドル
時とアクティブ時の消費電力の合計となっている。な
お、図30(a)においてはROMとRAMについての
アクセス、データと命令のアクセスが区別されている
が、命令アクセスについてはすべてROMについてのア
クセス、データアクセスについては容量でROMとRA
Mに按分してある。
Since the power consumption is different between the case where the module is in the idle state and the case where the module is in the active state, it is determined separately for each. First, an example obtained for the memory is shown in FIG. FIG. 30A shows an instruction,
For each memory of data, the capacity and the number of accesses are summarized, and the power consumption at the time of idle and the power consumption at the time of active are obtained and summed. Here, the memory is in an idle state when no access is made, and 1
Assuming one clock is needed per access,
The power consumption is obtained by multiplying the value obtained by subtracting the number of accesses from the total number of execution clocks by the capacity and the power consumption at idle per one access and one byte. The power consumption in the active state is obtained by multiplying the number of accesses by the power consumption in the active state per capacity, one access, and one byte. FIG. 30A shows the sum of the power consumption of the ROM and the RAM when they are idle and when they are active. In FIG. 30 (a), access for ROM and RAM, and access for data and instruction are distinguished. For instruction access, all access is for ROM, and for data access, ROM and RA are based on capacity.
M is apportioned.

【0113】次に、メモリ以外のハードウェアについて
の消費電力を求める方法を図30(b)に示す。
Next, FIG. 30B shows a method for obtaining the power consumption of hardware other than the memory.

【0114】メモリの場合と同様に各ハードウェアにつ
いてアクティブなクロック数を求め、全実行クロック数
からその値を引いたものにアイドル時の1クロック当た
りの消費電力を掛けたものがアイドル時の消費電力であ
り、アクティブなクロック数にアクティブ時の1クロッ
ク当たりの消費電力を掛けたものがアクティブ時の消費
電力となる。この二つの合計が各ハードウェアモジュー
ルについての消費電力であり、それらの合計がメモリ以
外のハードウェアモジュールの消費電力となる。
As in the case of the memory, the number of active clocks for each hardware is obtained, and the value obtained by subtracting the value from the total number of execution clocks and the power consumption per clock at the time of idling is calculated as the consumption at the time of idling. This is power, and the active power consumption is obtained by multiplying the number of active clocks by the power consumption per clock in active mode. The sum of these two is the power consumption for each hardware module, and the sum of them is the power consumption of the hardware modules other than the memory.

【0115】図30(a)で求めたメモリの消費電力と
図30(b)で求めたメモリ以外のハードウェアモジュ
ールの消費電力の合計が総消費電力となる。
The sum of the power consumption of the memory obtained in FIG. 30A and the power consumption of hardware modules other than the memory obtained in FIG. 30B is the total power consumption.

【0116】以上述べてきたように、図22から図30
を用いた図21のMPEGエンコーダの性能評価処理に
よれば、対象とするシステム(図21)、動作シナリオ
(図22)、システムアーキテクチャ(図25)アルゴ
リズム、アーキテクチャデータベース(図26,27)
が異なっても同様な方法により、面積、処理時間、消費
電力の最大値、バスアクセス頻度などのシステムの評価
に必要な項目がしミレーションなしに求められる。
As described above, FIG. 22 to FIG.
According to the performance evaluation processing of the MPEG encoder of FIG. 21 using the system, the target system (FIG. 21), the operation scenario (FIG. 22), the system architecture (FIG. 25), the algorithm, and the architecture database (FIGS. 26 and 27)
However, items necessary for system evaluation, such as area, processing time, maximum value of power consumption, and bus access frequency, can be obtained without a simulation by the same method even if the numbers are different.

【0117】《本発明の実施形態に係る回路設計システ
ムおよびその方法から得られる効果》本発明の実施形態
に係る回路設計方法によれば、各機能モジュールとアル
ゴリズムアーキテクチャの組み合わせを予めスタティッ
クな見積もりにより絞り込むので、機能レベルシミュレ
ーションのみでは膨大の時間が必要となる機能モジュー
ルへのアルゴリズムアーキテクチャ割り当てを高速に行
うことが可能となる。
<< Effects Obtained from the Circuit Design System and the Method According to the Embodiment of the Present Invention >> According to the circuit design method according to the embodiment of the present invention, the combination of each functional module and the algorithm architecture is determined in advance by static estimation. Because of the narrowing down, the algorithm architecture can be allocated to the functional modules that require an enormous amount of time only by the function level simulation.

【0118】また、従来までは、機能ブロック図と機能
モデルから全ての組み合わせを生成することによりシミ
ュレーションモデルを作成し、シミュレーションを行っ
ていたために、組み合わせの数が膨大なものとなり、実
用的な時間内ですべての組み合わせについての評価を行
うことは事実上不可能であったが、本発明の実施形態に
係る回路設計方法によれば、始めに動作シナリオを用い
たスタティックな評価により組み合わせの数を限定して
いるので、従来例よりも解の探索範囲が広くなり、組み
合わせの決定には機能レベルのシミュレーションを行う
ので、従来例と同等の評価精度が得ることができる。
In the past, a simulation model was created by generating all combinations from a functional block diagram and a functional model, and a simulation was performed. Therefore, the number of combinations became enormous, and practical time was reduced. Although it was practically impossible to evaluate all combinations within the above, according to the circuit design method according to the embodiment of the present invention, first, the number of combinations was statically evaluated using an operation scenario. Because of the limitation, the search range of the solution is wider than that of the conventional example, and the simulation of the function level is performed for determining the combination, so that the same evaluation accuracy as that of the conventional example can be obtained.

【0119】[0119]

【発明の効果】本発明の回路設計システム、回路設計方
法および回路設計プログラムを格納したコンピュータ読
取り可能な記録媒体によれば、機能ブロックの実装方式
を短時間且つ精度良く決定することができる。
According to the circuit design system, the circuit design method, and the computer-readable recording medium storing the circuit design program of the present invention, the mounting method of the functional blocks can be determined in a short time and with high accuracy.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の実施形態に係る回路設計システムの構
成を示す模式図である。
FIG. 1 is a schematic diagram illustrating a configuration of a circuit design system according to an embodiment of the present invention.

【図2】本発明の実施形態に係る回路設計方法を示すフ
ローチャート図である。
FIG. 2 is a flowchart illustrating a circuit design method according to an embodiment of the present invention.

【図3】本発明の実施形態に係る候補作成方法を示すフ
ローチャート図である。
FIG. 3 is a flowchart illustrating a candidate creation method according to an embodiment of the present invention.

【図4】本発明の実施形態に係る切り分け決定方法を示
すフローチャート図である。
FIG. 4 is a flowchart illustrating a separation determination method according to the embodiment of the present invention.

【図5】本発明の実施形態に係る性能評価方法を示すフ
ローチャート図である。
FIG. 5 is a flowchart illustrating a performance evaluation method according to the embodiment of the present invention.

【図6】本発明の実施形態に係る性能評価方法の変形例
を示すフローチャート図である。
FIG. 6 is a flowchart illustrating a modified example of the performance evaluation method according to the embodiment of the present invention.

【図7】本発明の実施形態に係る回路設計システムの概
観を示す模式図である。
FIG. 7 is a schematic diagram showing an overview of a circuit design system according to an embodiment of the present invention.

【図8】動作シナリオを示す模式図である。FIG. 8 is a schematic diagram showing an operation scenario.

【図9】動作シナリオを実行動作を説明するための模式
図である。
FIG. 9 is a schematic diagram for explaining an operation of executing an operation scenario.

【図10】動作シナリオを実行動作を説明するための模
式図である。
FIG. 10 is a schematic diagram for explaining an operation of executing an operation scenario.

【図11】動作シナリオを逐次実行およびパイプライン
実行した時の時間経過を示す模式図である。
FIG. 11 is a schematic diagram showing a lapse of time when an operation scenario is sequentially executed and a pipeline is executed.

【図12】資源の共有がある場合に動作シナリオをパイ
プライン実行した時の時間経過を示す模式図である。
FIG. 12 is a schematic diagram showing a lapse of time when an operation scenario is pipeline-executed when resources are shared.

【図13】プロセスの実行時間と消費電力を示す模式図
である。
FIG. 13 is a schematic diagram showing a process execution time and power consumption.

【図14】3並列の実行タイミングおよび消費電力の推
移の一例を示す模式図である。
FIG. 14 is a schematic diagram showing an example of transition of three parallel execution timings and power consumption.

【図15】3並列の実行タイミングおよび消費電力の推
移の一例を示す模式図である。
FIG. 15 is a schematic diagram showing an example of transition of three parallel execution timings and power consumption.

【図16】システムアーキテクチャの構成を示す模式図
である。
FIG. 16 is a schematic diagram showing a configuration of a system architecture.

【図17】バスアクセス頻度およびバスアクセスの推移
を示す模式図である。
FIG. 17 is a schematic diagram showing bus access frequency and transition of bus access.

【図18】バスアクセス頻度を示す模式図である。FIG. 18 is a schematic diagram showing a bus access frequency.

【図19】バスアクセスの推移を示す模式図である。FIG. 19 is a schematic diagram showing transition of bus access.

【図20】バスアクセスの推移を示す模式図である。FIG. 20 is a schematic diagram showing transition of bus access.

【図21】MPEGエンコーダの構成を示すブロック図
である。
FIG. 21 is a block diagram illustrating a configuration of an MPEG encoder.

【図22】MPEGエンコードの動作シナリオを示す図
である。
FIG. 22 is a diagram illustrating an operation scenario of MPEG encoding.

【図23】MPEGエンコードの実行タイミングを示す
図である。
FIG. 23 is a diagram illustrating execution timing of MPEG encoding.

【図24】MPEGエンコードの実行タイミングを示す
図である。
FIG. 24 is a diagram illustrating execution timing of MPEG encoding.

【図25】MPEGエンコーダのシステムアーキテクチ
ャを示す模式図である。
FIG. 25 is a schematic diagram showing a system architecture of an MPEG encoder.

【図26】モジュールを実現するアルゴリズムとその性
能を示す図である。
FIG. 26 is a diagram showing an algorithm for realizing a module and its performance.

【図27】モジュールを実現するアルゴリズムとその性
能を示す図である。
FIG. 27 is a diagram showing an algorithm for realizing a module and its performance.

【図28】各モジュールへのハードウェア、アルゴリズ
ムの割り当てを表す図である。
FIG. 28 is a diagram illustrating assignment of hardware and algorithms to each module.

【図29】割り当てられたハードウェアの性能および必
要なメモリの面積を表す図である。
FIG. 29 is a diagram illustrating allocated hardware performance and required memory area.

【図30】メモリの消費電力および各ハードウェアの消
費電力を表す図である。
FIG. 30 is a diagram illustrating power consumption of a memory and power consumption of each hardware.

【符号の説明】[Explanation of symbols]

70 コンピュータシステム 71 ディスプレイ 72 フロッピーディスクドライブ 73 フロッピーディスク 74 光ディスクドライブ 75 光ディスク 76 キーボード 77 ROM 78 カートリッジ 100 回路設計システム 110 回路設計装置 111 入出力インタフェイス 112 フレームワーク作成部 113 組み合わせ生成部 114 機能レベルシミュレーション部 115 性能評価部 116 制御部 120 入力部 121 出力部 130 機能ブロック図データベース 131 機能モデルデータベース 132 アルゴリズム・アーキテクチャデータベース 133 動作シナリオデータベース 134 制約条件/評価関数データベース 135 候補データベース 136 テストベクタデータベース 137 評価結果データベース 138 ハードウェア/ソフトウェア仕様データベース 70 Computer System 71 Display 72 Floppy Disk Drive 73 Floppy Disk 74 Optical Disk Drive 75 Optical Disk 76 Keyboard 77 ROM 78 Cartridge 100 Circuit Design System 110 Circuit Design Device 111 Input / Output Interface 112 Framework Creation Unit 113 Combination Generation Unit 114 Function Level Simulation Unit 115 Performance Evaluation Unit 116 Control Unit 120 Input Unit 121 Output Unit 130 Function Block Diagram Database 131 Function Model Database 132 Algorithm Architecture Database 133 Operation Scenario Database 134 Constraint Condition / Evaluation Function Database 135 Candidate Database 136 Test Vector Database 137 Evaluation Result Database 138 hard Ware / Software Specification Database

フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) H01L 21/82 T Continued on the front page (51) Int.Cl. 7 Identification symbol FI Theme coat II (Reference) H01L 21/82 T

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 設計する回路における複数の機能ブロッ
クの実装方式を決定する回路設計システムであって、 各機能モジュールを実現するアルゴリズムとアーキテク
チャの組み合わせおよび当該組み合わせの性能を評価し
た結果を格納したアルゴリズム・アーキテクチャデータ
ベースと、 前記アルゴリズム・アーキテクチャデータベース内に格
納された情報を参照して、各機能モジュールを実現する
アルゴリズムとアーキテクチャの可能な全ての組み合わ
せを生成する組み合わせ生成部と、 制約条件、評価関数および動作シナリオに基づいて、前
記組み合わせ生成部が生成した組み合わせの性能を評価
する性能評価部と、 前記性能評価部の評価結果を参照して、所定の評価値以
上のアルゴリズムとアーキテクチャの組み合わせを格納
する候補データベースとを具備することを特徴とする回
路設計システム。
1. A circuit design system for determining a mounting method of a plurality of functional blocks in a circuit to be designed, comprising: a combination of an algorithm and an architecture for realizing each function module; and an algorithm storing results of evaluating the performance of the combination. An architecture database, a combination generation unit that generates all possible combinations of an algorithm and an architecture that realizes each functional module with reference to information stored in the algorithm / architecture database, a constraint condition, an evaluation function, A performance evaluation unit that evaluates the performance of the combination generated by the combination generation unit based on the operation scenario; and stores a combination of an algorithm and an architecture having a predetermined evaluation value or more with reference to the evaluation result of the performance evaluation unit. Weather Circuit design system, characterized by comprising a database.
【請求項2】 前記候補データベース内に格納されたア
ルゴリズムとアーキテクチャの組み合わせに関する機能
モデルを格納した機能モデルデータベースと、 機能レベルシミュレーションに使用するテストベクタを
格納したテストベクタデータベースと、 前記機能モデルデータベースおよびテストベクタデータ
ベース内に格納された情報を参照して、前記候補データ
ベース内に格納されたアルゴリズムとアーキテクチャの
組み合わせについて機能レベルシミュレーションを実行
する機能レベルシミュレーション部とを具備することを
特徴とする請求項1に記載の回路設計システム。
2. A function model database storing function models related to a combination of an algorithm and an architecture stored in the candidate database; a test vector database storing test vectors used for function level simulation; 2. A function level simulation unit for executing a function level simulation for a combination of an algorithm and an architecture stored in the candidate database with reference to information stored in a test vector database. The circuit design system according to 1.
【請求項3】 設計する回路における複数の機能ブロッ
クの実装方式を決定する回路設計方法であって、 各機能モジュールを実現するアルゴリズムとアーキテク
チャの組み合わせおよび当該組み合わせの性能を評価し
た結果を利用して、各機能モジュールを実現するアルゴ
リズムとアーキテクチャの可能な全ての組み合わせを生
成するステップと、 制約条件、評価関数および動作シナリオに基づいて、生
成された組み合わせの性能を評価するステップと、 性能の評価結果を利用して、所定の評価値以上のアルゴ
リズムとアーキテクチャの組み合わせを抽出するステッ
プとを有することを特徴とする回路設計方法。
3. A circuit design method for determining a mounting method of a plurality of function blocks in a circuit to be designed, the method being a combination of an algorithm and an architecture for realizing each function module and a result of evaluating the performance of the combination. Generating all possible combinations of algorithms and architectures for realizing each functional module; evaluating the performance of the generated combinations based on constraints, evaluation functions and operation scenarios; and performance evaluation results. And extracting a combination of an algorithm and an architecture having a predetermined evaluation value or more using a predetermined evaluation value.
【請求項4】 アルゴリズムとアーキテクチャの組み合
わせに関する機能モデルとテストベクタを利用して、前
記所定の評価値以上のアルゴリズムとアーキテクチャの
組み合わせについて機能レベルシミュレーションを実行
するステップとを有することを特徴とする請求項3に記
載の回路設計方法。
4. The method according to claim 1, further comprising the step of executing a function level simulation for a combination of the algorithm and the architecture having a predetermined evaluation value or more by using a function model and a test vector relating to the combination of the algorithm and the architecture. Item 3. The circuit design method according to Item 3.
【請求項5】 設計する回路における複数の機能ブロッ
クの実装方式を決定する回路設計プログラムを格納した
コンピュータ読取り可能な記録媒体であって、 各機能モジュールを実現するアルゴリズムとアーキテク
チャの組み合わせおよび当該組み合わせの性能を評価し
た結果を利用して、各機能モジュールを実現するアルゴ
リズムとアーキテクチャの可能な全ての組み合わせを生
成する処理と、 制約条件、評価関数および動作シナリオに基づいて、生
成された組み合わせの性能を評価する処理と、 性能の評価結果を利用して、所定の評価値以上のアルゴ
リズムとアーキテクチャの組み合わせを抽出する処理と
を含み、これらの処理をコンピュータに実行させること
を特徴とする回路設計プログラムを格納したコンピュー
タ読取り可能な記録媒体。
5. A computer-readable recording medium storing a circuit design program for determining a mounting method of a plurality of functional blocks in a circuit to be designed, comprising: a combination of an algorithm and an architecture for realizing each functional module; The process of generating all possible combinations of algorithms and architectures that realize each functional module using the results of performance evaluation, and the performance of the generated combinations based on constraints, evaluation functions, and operation scenarios A circuit design program characterized by including a process of evaluating, and a process of extracting a combination of an algorithm and an architecture having a predetermined evaluation value or more using a performance evaluation result, and causing a computer to execute these processes. Stored computer-readable records Medium.
【請求項6】 アルゴリズムとアーキテクチャの組み合
わせに関する機能モデルとテストベクタを利用して、前
記所定の評価値以上のアルゴリズムとアーキテクチャの
組み合わせについて機能レベルシミュレーションを実行
する処理を含み、この処理をコンピュータに実行させる
ことを特徴とする請求項5に記載の回路設計プログラム
を格納したコンピュータ読取り可能な記録媒体。
6. A process for executing a function level simulation for a combination of an algorithm and an architecture having a predetermined evaluation value or more using a functional model and a test vector relating to a combination of an algorithm and an architecture, and executing this process on a computer. A computer-readable recording medium storing the circuit design program according to claim 5.
JP2000292728A 2000-09-26 2000-09-26 System and method for designing circuit and computer readable recording medium stored with circuit design program Pending JP2002108958A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000292728A JP2002108958A (en) 2000-09-26 2000-09-26 System and method for designing circuit and computer readable recording medium stored with circuit design program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000292728A JP2002108958A (en) 2000-09-26 2000-09-26 System and method for designing circuit and computer readable recording medium stored with circuit design program

Publications (1)

Publication Number Publication Date
JP2002108958A true JP2002108958A (en) 2002-04-12

Family

ID=18775626

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000292728A Pending JP2002108958A (en) 2000-09-26 2000-09-26 System and method for designing circuit and computer readable recording medium stored with circuit design program

Country Status (1)

Country Link
JP (1) JP2002108958A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008513912A (en) * 2004-09-28 2008-05-01 インテル・コーポレーション Method and apparatus for varying energy per instruction according to the amount of parallelism available
JP2009157909A (en) * 2007-12-05 2009-07-16 Fujitsu Ltd Power consumption estimation program, computer readable recording medium with the program recorded thereon, power consumption estimation device, and power consumption estimation method
JP2009237700A (en) * 2008-03-26 2009-10-15 Fujitsu Ltd Method for estimating electric power of system lsi and method for generating electric power library of designed block used for the same
JP2010286885A (en) * 2009-06-09 2010-12-24 Toshiba Corp Architecture verifying apparatus
JP2011164860A (en) * 2010-02-08 2011-08-25 Fujitsu Ltd Device and program for verification
JP2011242825A (en) * 2010-05-14 2011-12-01 Fujitsu Ltd Program, method and apparatus for calculating power consumption information
US8108863B2 (en) 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
JP2012083804A (en) * 2010-10-06 2012-04-26 Fujitsu Ltd Simulation device
JP2012234346A (en) * 2011-04-28 2012-11-29 Fujitsu Frontech Ltd Maximum power consumption reduction device
JP2014106591A (en) * 2012-11-26 2014-06-09 Ricoh Co Ltd Power consumption estimation device and power consumption estimated method

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011210275A (en) * 2004-09-28 2011-10-20 Intel Corp Method and apparatus for varying energy per instruction according to amount of available parallelism
JP2013218721A (en) * 2004-09-28 2013-10-24 Intel Corp Method and apparatus for varying energy per instruction according to amount of available parallelism
JP2010092483A (en) * 2004-09-28 2010-04-22 Intel Corp Method and apparatus for varying energy per instruction according to amount of available parallelism
JP2015028810A (en) * 2004-09-28 2015-02-12 インテル・コーポレーション System for varying energy per instruction according to amount of available parallelism
JP2008513912A (en) * 2004-09-28 2008-05-01 インテル・コーポレーション Method and apparatus for varying energy per instruction according to the amount of parallelism available
US8839258B2 (en) 2005-12-30 2014-09-16 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
US8108863B2 (en) 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
JP2009157909A (en) * 2007-12-05 2009-07-16 Fujitsu Ltd Power consumption estimation program, computer readable recording medium with the program recorded thereon, power consumption estimation device, and power consumption estimation method
JP2009237700A (en) * 2008-03-26 2009-10-15 Fujitsu Ltd Method for estimating electric power of system lsi and method for generating electric power library of designed block used for the same
JP2010286885A (en) * 2009-06-09 2010-12-24 Toshiba Corp Architecture verifying apparatus
JP2011164860A (en) * 2010-02-08 2011-08-25 Fujitsu Ltd Device and program for verification
JP2011242825A (en) * 2010-05-14 2011-12-01 Fujitsu Ltd Program, method and apparatus for calculating power consumption information
JP2012083804A (en) * 2010-10-06 2012-04-26 Fujitsu Ltd Simulation device
JP2012234346A (en) * 2011-04-28 2012-11-29 Fujitsu Frontech Ltd Maximum power consumption reduction device
JP2014106591A (en) * 2012-11-26 2014-06-09 Ricoh Co Ltd Power consumption estimation device and power consumption estimated method

Similar Documents

Publication Publication Date Title
US7822591B2 (en) Logic circuit model conversion apparatus and method thereof; and logic circuit model conversion program
US20050192787A1 (en) Simulation apparatus and method of designing semiconductor integrated circuit
JP2009522652A (en) System and method for generating multiple models at different levels of abstraction from a single master model
JP2001202397A (en) Architecture design supporting system for system-on-chip and architecture generating method
JP2005293163A (en) Power consumption calculation method and apparatus
JP5014920B2 (en) Circuit design method and integrated circuit manufactured by the method
JP2004054756A (en) Power consumption estimation device and method
JP2002108958A (en) System and method for designing circuit and computer readable recording medium stored with circuit design program
US10437949B1 (en) Scheduling events in hardware design language simulation
US9116751B2 (en) Reconfigurable device, processing assignment method, processing arrangement method, information processing apparatus, and control method therefor
CN114186519A (en) Time sequence bottleneck probing method and device, terminal equipment and storage medium
US6625799B2 (en) Technology mapping method and storage medium
JP2007004563A (en) Library creating device, library creation program and library creating method
CN111383704B (en) Built-in self-test circuit of memory and test method for memory
JPH05101141A (en) High-level composition device
CN113743040B (en) Test method, test device, electronic equipment and readable storage medium
JP5454349B2 (en) Performance estimation device
JP2016018469A (en) Simulation method and simulation program
US11068632B2 (en) Simulation apparatus, description conversion method and simulation method
US9600613B1 (en) Block-level code coverage in simulation of circuit designs
JP6961950B2 (en) Storage method, storage device and storage program
JP2000057203A (en) Simulation method for leveling compiled code by net list conversion use
US20120226890A1 (en) Accelerator and data processing method
US7743244B2 (en) Computer system model generation with tracking of actual computer system configuration
US7181720B2 (en) Process and device for circuit design by means of high-level synthesis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080401