JP2000057180A - High-order synthesizing device, its method, and medium for recording high-order synthesizing program - Google Patents

High-order synthesizing device, its method, and medium for recording high-order synthesizing program

Info

Publication number
JP2000057180A
JP2000057180A JP11130522A JP13052299A JP2000057180A JP 2000057180 A JP2000057180 A JP 2000057180A JP 11130522 A JP11130522 A JP 11130522A JP 13052299 A JP13052299 A JP 13052299A JP 2000057180 A JP2000057180 A JP 2000057180A
Authority
JP
Japan
Prior art keywords
thread
scheduling
synchronous communication
inter
constraint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP11130522A
Other languages
Japanese (ja)
Other versions
JP3763700B2 (en
Inventor
Ryoji Sakurai
涼二 櫻井
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP13052299A priority Critical patent/JP3763700B2/en
Publication of JP2000057180A publication Critical patent/JP2000057180A/en
Application granted granted Critical
Publication of JP3763700B2 publication Critical patent/JP3763700B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a high-order synthesizing device by which a logical circuit capable of executing data communication at a high speed is surely synthesized and the circuit scale is reduced. SOLUTION: The device is provided with an inter-thread synchronous communication operation scheduling part 23 for scheduling an inter-thread synchronous communication operation based on an action description included in a thread which is extracted by a scheduling possible inter-thread synchronous communication operation selecting part 22, an every-thread action synthesizing restriction information generating part 24 for generating action synthesizing restriction information at every thread based on the inter-thread synchronous communication operation which is scheduled by the part 23 and an every-thread action synthesizing part 25 for synthesizing the action at every thread based on action synthesizing restriction information which is generated by the part 24.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、動作記述によって
表現された半導体集積回路の論理回路を論理合成する高
位合成装置に関し、特に、同期データ通信を表す記述を
含んだ動作記述から論理回路を合成する高位合成装置に
関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a high-level synthesis apparatus for logically synthesizing a logic circuit of a semiconductor integrated circuit represented by an operation description, and more particularly to synthesizing a logic circuit from an operation description including a description representing synchronous data communication. To a high-level synthesizer.

【0002】[0002]

【従来の技術】近年、半導体集積回路の高密度化、多機
能化に伴い、その回路規模は増大する傾向にあり、回路
設計に要する時間も増加しつつある。この回路設計に要
する時間を短縮する方法の1つとして、ハードウェア記
述言語(HDL)を使用して回路設計を行なう方法が挙
げられる。
2. Description of the Related Art In recent years, as semiconductor integrated circuits have become denser and more multifunctional, the circuit scale has tended to increase, and the time required for circuit design has also increased. As one of the methods for reducing the time required for the circuit design, there is a method of designing the circuit using a hardware description language (HDL).

【0003】このHDL記述から論理回路を合成する装
置の中で、並列に動作する複数のスレッドと、これら複
数のスレッド間の同期データ通信との表現を許容する装
置に関する技術がいくつか提案されている。その1つと
して、特開平9−249152号公報に開示された発明
がある。
[0003] Among devices for synthesizing a logic circuit from the HDL description, there have been proposed several technologies relating to a device that allows the expression of a plurality of threads operating in parallel and synchronous data communication between the plurality of threads. I have. As one of them, there is an invention disclosed in JP-A-9-249152.

【0004】この特開平9−249152号公報に開示
された発明は、動作記述として2つのプロセス間でデー
タを同期して転送するプロトコルを定義した命令(se
nd,receive)を用意する。そして、動作記述
の中に単にデータを送信する命令(send)、または
データを受信する命令(receive)を記述し、論
理回路を合成する際にこれらの同期データ通信のために
各スレッドに対応する回路に対してハンドシェイクを行
なう回路を生成し、スレッド間での同期データ通信が確
実に行なわれる回路を合成するものである。なお、この
ハンドシェイクを用いた回路を合成した場合、データの
送信側および受信側の両方がデータを転送できる状態に
なって初めて転送が行なわれる。
The invention disclosed in Japanese Patent Application Laid-Open No. 9-249152 discloses an instruction (sequence) defining a protocol for synchronously transferring data between two processes as an operation description.
nd, receive). Then, an instruction (send) for simply transmitting data or an instruction (receive) for receiving data is described in the behavioral description, and when synthesizing a logic circuit, each thread is used for synchronous data communication. A circuit for performing a handshake with respect to a circuit is generated, and a circuit for reliably performing synchronous data communication between threads is synthesized. When a circuit using this handshake is synthesized, the data is transferred only when both the transmitting side and the receiving side of the data can transfer the data.

【0005】また、他の従来技術として、「Optimal Sy
nthesis of Multichip Architecture (ICCAD'92,pp238-
241)」に記載されたものがある。この文献には、スレッ
ド間の同期データ通信を実現するために、ハンドシェイ
ク回路を生成せずにスレッド間同期データ通信が確実に
行なわれる回路を生成する方法が記載されている。
[0005] Another conventional technique is "Optimal Sy".
nthesis of Multichip Architecture (ICCAD'92, pp238-
241) ”. This document describes a method of generating a circuit that reliably performs inter-thread synchronous data communication without generating a handshake circuit in order to realize synchronous data communication between threads.

【0006】[0006]

【発明が解決しようとする課題】しかし、上述した特開
平9−249152号公報に開示された発明は、スレッ
ド間同期データ通信に関する記述に対して、必ずハンド
シェイク回路が合成される。このハンドシェイク回路
は、送信側が1つのデータ線に対してデータの準備がで
きたことを示す信号線と、受信側がデータを受け取った
ことを示す信号線との2本の制御用信号線が必要とな
る。したがって、動作記述から論理回路を合成する際、
ハンドシェイク回路でなくても実現できる場合であって
も必ずハンドシェイク回路が生成されるため、回路規模
が大きくなり、通信速度も遅くなるという問題点があっ
た。
However, in the invention disclosed in the above-mentioned Japanese Patent Application Laid-Open No. 9-249152, a handshake circuit is always synthesized with the description related to the inter-thread synchronous data communication. This handshake circuit requires two control signal lines: a signal line indicating that the transmission side has prepared data for one data line, and a signal line indicating that the reception side has received data. Becomes Therefore, when synthesizing a logic circuit from an operation description,
Even if the handshake circuit can be realized without using the handshake circuit, the handshake circuit is always generated, so that there is a problem that the circuit scale becomes large and the communication speed becomes slow.

【0007】また、「Optimal Synthesis of Multichip
Architecture 」に記載されている技術は、ハンドシェ
イク回路を生成せずにスレッド間同期データ通信を実現
するために、予めスレッド間同期通信オペレーションを
含む全スレッドの全オペレーションについて動作合成の
際実施されるスケジューリングが行なわれる。したがっ
て、動作合成の対象となる動作記述が非常に大きくなっ
た場合、スケジューリング対象も大きくなり、それに伴
いスケジューリングに要する時間も多大になるという問
題点があった。
[0007] Also, "Optimal Synthesis of Multichip
The technology described in "Architecture" is implemented at the time of behavioral synthesis for all operations of all threads including the inter-thread synchronous communication operation in order to realize inter-thread synchronous data communication without generating a handshake circuit. Scheduling is performed. Therefore, when the behavioral description to be subjected to behavioral synthesis becomes very large, there is a problem that the scheduling target becomes large and the time required for the scheduling becomes large accordingly.

【0008】本発明は、上記問題点を解決するためにな
されたものであり、第1の目的は、ハンドシェイクなし
にスレッド間同期通信が可能な動作記述に対して、高速
にデータ通信が可能な論理回路を確実に合成でき、回路
規模の縮小を図ることが可能な高位合成装置を提供する
ことである。
SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and a first object of the present invention is to enable high-speed data communication with respect to an operation description capable of synchronous communication between threads without a handshake. It is an object of the present invention to provide a high-level synthesis device capable of reliably synthesizing a simple logic circuit and reducing the circuit scale.

【0009】本発明の第2の目的は、誤動作が起こらな
いようにパイプライン動作を行なう回路を合成すること
が可能な高位合成装置を提供することである。
A second object of the present invention is to provide a high-level synthesis device capable of synthesizing a circuit that performs a pipeline operation so that a malfunction does not occur.

【0010】本発明の第3の目的は、ハンドシェイクな
しにスレッド間同期通信が可能な動作記述に対して、高
速にデータ通信が可能な論理回路を確実に合成でき、回
路規模の縮小を図ることが可能な高位合成方法を提供す
ることである。
A third object of the present invention is to reliably synthesize a logic circuit capable of high-speed data communication with an operation description capable of inter-thread synchronous communication without a handshake, thereby reducing the circuit scale. It is to provide a possible high-level synthesis method.

【0011】本発明の第4の目的は、ハンドシェイクな
しにスレッド間同期通信が可能な動作記述に対して、高
速にデータ通信が可能な論理回路を確実に合成でき、回
路規模の縮小を図ることが可能な高位合成プログラムを
記録した媒体を提供することである。
A fourth object of the present invention is to reliably synthesize a logic circuit capable of high-speed data communication with an operation description capable of inter-thread synchronous communication without a handshake, thereby reducing the circuit scale. It is an object of the present invention to provide a medium in which a high-level synthesis program capable of performing the above-described processing is recorded.

【0012】[0012]

【課題を解決するための手段】請求項1に記載の高位合
成装置は、入力された動作記述からハンドシェイクなし
にスレッド間同期通信が可能な動作記述を含むスレッド
を抽出するための抽出手段と、抽出手段によって抽出さ
れたスレッドに含まれる動作記述に基づいてスレッド間
同期通信オペレーションのスケジューリングを行なうた
めの同期通信スケジューリング手段と、同期通信スケジ
ューリング手段によってスケジューリングされたスレッ
ド間同期通信オペレーションに基づいてスレッド毎に動
作合成制約情報を生成するための制約情報生成手段と、
制約情報生成手段によって生成された動作合成制約情報
に基づいてスレッド毎の動作合成をおこなうための動作
合成手段とを含む。
According to a first aspect of the present invention, there is provided a high-level synthesizing apparatus for extracting a thread including an operation description capable of performing inter-thread synchronous communication without a handshake from an input operation description. A synchronous communication scheduling means for scheduling an inter-thread synchronous communication operation based on the operation description included in the thread extracted by the extracting means; and a thread based on the inter-thread synchronous communication operation scheduled by the synchronous communication scheduling means. Constraint information generating means for generating behavioral synthesis constraint information for each
A behavioral synthesis unit for performing behavioral synthesis for each thread based on the behavioral synthesis constraint information generated by the constraint information generating unit.

【0013】動作合成手段は、同期通信スケジューリン
グ手段によるスケジューリング結果と、制約情報生成手
段によって生成された動作合成制約情報とに基づいてス
レッド毎に動作合成するので、高速でデータ通信が可能
な論理回路を確実に合成でき、回路規模の縮小を図るこ
とが可能となる。
The behavioral synthesis means synthesizes the behavior of each thread based on the scheduling result by the synchronous communication scheduling means and the behavioral synthesis constraint information generated by the constraint information generating means, so that the logic circuit capable of high-speed data communication. Can be reliably synthesized, and the circuit scale can be reduced.

【0014】請求項2に記載の高位合成装置は、請求項
1記載の高位合成装置であって、同期通信スケジューリ
ング手段は、抽出手段によって抽出されたスレッドに含
まれるスレッド間同期通信オペレーションを抽出するた
めのスレッド間同期通信オペレーション抽出手段と、ス
レッド間同期通信オペレーション抽出手段によって抽出
されたスレッド間同期通信オペレーションのスレッド内
における有向エッジを生成するためのスレッド内同期通
信オペレーション間エッジ生成手段と、スレッド間同期
通信オペレーション抽出手段によって抽出されたスレッ
ド間同期通信オペレーションのスレッド間における有向
エッジを生成するためのスレッド間同期通信オペレーシ
ョン組間エッジ生成手段と、スレッド内同期通信オペレ
ーション間エッジ生成手段およびスレッド間同期通信オ
ペレーション組間エッジ生成手段によって生成された有
向エッジにスケジューリングサイクル制約を付加するた
めのスケジューリングサイクル制約付加手段と、スケジ
ューリングサイクル制約付加手段によって付加されたス
ケジューリングサイクル制約に基づいてスレッド間同期
通信オペレーションのスケジューリングを行なうための
スレッド間同期通信スケジューリング手段とを含む。
According to a second aspect of the present invention, in the high-level synthesis apparatus according to the first aspect, the synchronous communication scheduling means extracts an inter-thread synchronous communication operation included in the thread extracted by the extracting means. An inter-thread synchronous communication operation extracting means for generating a thread-directed edge of the inter-thread synchronous communication operation extracted by the inter-thread synchronous communication operation extracting means; An inter-thread synchronous communication operation group edge generating means for generating a directed edge between threads of the inter-thread synchronous communication operation extracted by the inter-thread synchronous communication operation extracting means; A scheduling cycle constraint adding unit for adding a scheduling cycle constraint to the directed edge generated by the generating unit and the inter-thread synchronous communication operation inter-set edge generating unit; and a scheduling cycle constraint added by the scheduling cycle constraint adding unit. Inter-thread synchronous communication scheduling means for scheduling the inter-thread synchronous communication operation.

【0015】スレッド間同期通信スケジューリング手段
は、スケジューリングサイクル制約付加手段によって付
加されたスケジューリングサイクル制約に基づいてスレ
ッド間同期通信オペレーションのスケジューリングを行
なうので、さらに容易にスレッド間同期通信オペレーシ
ョンのスケジューリングが可能になる。
The inter-thread synchronous communication scheduling means schedules the inter-thread synchronous communication operation based on the scheduling cycle constraint added by the scheduling cycle constraint adding means, so that the inter-thread synchronous communication operation can be scheduled more easily. Become.

【0016】請求項3に記載の高位合成装置は、請求項
2記載の高位合成装置であって、スケジューリングサイ
クル制約付加手段は、スレッド毎に動作記述を動作合成
するためのスレッド毎動作合成手段と、スレッド毎動作
合成手段による動作合成結果に基づいて同期通信オペレ
ーション間のスケジューリングサイクル制約を抽出する
ためのスケジューリングサイクル制約抽出手段とを含
む。
A high-level synthesizing apparatus according to a third aspect is the high-level synthesizing apparatus according to the second aspect, wherein the scheduling cycle constraint adding means includes a thread-by-thread operation synthesizing means for synthesizing an operation description for each thread. A scheduling cycle constraint extracting means for extracting a scheduling cycle constraint between synchronous communication operations based on a behavioral synthesis result by the per-thread behavioral synthesis means.

【0017】スケジューリングサイクル制約抽出手段
は、スレッド毎動作合成手段による動作合成結果に基づ
いて同期通信オペレーション間のスケジューリングサイ
クル制約を抽出するので、さらに容易にスレッド間同期
通信オペレーションのスケジューリングが可能になる。
The scheduling cycle constraint extracting means extracts the scheduling cycle constraint between the synchronous communication operations based on the behavioral synthesis result by the thread-by-thread behavioral synthesizing means, so that the scheduling of the inter-thread synchronous communication operation can be more easily performed.

【0018】請求項4に記載の高位合成装置は、請求項
3記載の高位合成装置であって、スケジューリングサイ
クル制約抽出手段は、スレッド毎動作合成手段によって
生成されたスレッド内におけるノードのスケジューリン
グサイクルの差からスレッド内同期通信間スケジューリ
ング制約を抽出するためのスレッド内同期通信間スケジ
ューリング制約抽出手段と、スレッド間における同期通
信オペレーションに対して所定値をスレッド間同期通信
間スケジューリング制約として抽出するスレッド間同期
通信スケジューリング制約抽出手段とを含む。
A high-level synthesis apparatus according to a fourth aspect is the high-level synthesis apparatus according to the third aspect, wherein the scheduling cycle constraint extracting means determines a scheduling cycle of a node in a thread generated by the per-thread operation synthesizing means. An intra-thread synchronous communication scheduling constraint extracting means for extracting an intra-thread synchronous communication scheduling constraint from the difference, and an inter-thread synchronization extracting a predetermined value for the synchronous communication operation between threads as the inter-thread synchronous communication scheduling constraint Communication scheduling constraint extraction means.

【0019】スレッド内同期通信間スケジューリング制
約抽出手段は、スレッド毎動作合成手段によって生成さ
れたスレッド内におけるノードのスケジューリングサイ
クルの差からスレッド内同期通信間スケジューリング制
約を抽出するので、さらに容易にスレッド間同期通信オ
ペレーションのスケジューリングが可能になる。
The intra-thread synchronous communication scheduling constraint extracting means extracts the intra-thread synchronous communication scheduling constraint from the difference in the scheduling cycles of the nodes in the threads generated by the per-thread operation synthesizing means, so that the inter-thread synchronous communication scheduling constraint can be more easily set. Scheduling of synchronous communication operations becomes possible.

【0020】請求項5に記載の高位合成装置は、請求項
2〜4のいずれかに記載の高位合成装置であって、スレ
ッド間同期通信スケジューリング手段は、同じスケジュ
ーリングサイクル内で同じ種類のノードによるオペレー
ション数を制限してスレッド間同期通信オペレーション
のスケジューリングを行なう。
A high-level synthesis device according to a fifth aspect is the high-level synthesis device according to any of the second to fourth aspects, wherein the inter-thread synchronous communication scheduling means uses the same type of node in the same scheduling cycle. Scheduling of the inter-thread synchronous communication operation is performed by limiting the number of operations.

【0021】スレッド間同期通信スケジューリング手段
は、同じスケジューリングサイクル内で同じ種類のノー
ドによるオペレーション数を制限してスレッド間同期通
信オペレーションのスケジューリングを行なうので、ス
レッド間のバス幅等を小さくすることが可能となり、合
成される論理回路の回路規模を小さくすることが可能と
なる。
Since the inter-thread synchronous communication scheduling means schedules the inter-thread synchronous communication operation by limiting the number of operations by the same type of node in the same scheduling cycle, the bus width between threads can be reduced. Thus, the circuit scale of the logic circuit to be synthesized can be reduced.

【0022】請求項6に記載の高位合成装置は、請求項
1記載の高位合成装置であって、同期通信スケジューリ
ング手段は、抽出手段によって抽出されたスレッドに含
まれるスレッド間同期通信オペレーションを抽出するた
めのスレッド間同期通信オペレーション抽出手段と、ス
レッド間同期通信オペレーション抽出手段によって抽出
されたスレッド間同期通信オペレーションのスレッド内
における有向エッジを生成するためのスレッド内同期通
信オペレーション間エッジ生成手段と、スレッド間同期
通信オペレーション抽出手段によって抽出されたスレッ
ド間同期通信オペレーションのスレッド間における有向
エッジを生成するためのスレッド間同期通信オペレーシ
ョン組間エッジ生成手段と、スレッド内同期通信オペレ
ーション間エッジ生成手段およびスレッド間同期通信オ
ペレーション組間エッジ生成手段によって生成された有
向エッジにパイプラインスループットサイクルを考慮し
てスケジューリングサイクル制約を付加するためのパイ
プライン化スケジューリングサイクル制約付加手段と、
パイプライン化スケジューリングサイクル制約付加手段
によって付加されたスケジューリングサイクル制約に基
づいてスレッド間同期通信オペレーションのスケジュー
リングを行い、パイプラインスループットサイクルを考
慮してスケジューリング結果のスケジューリングサイク
ルを調整するためのパイプライン化同期通信スケジュー
リング手段とを含む。
According to a sixth aspect of the present invention, in the high-level synthesizer according to the first aspect, the synchronous communication scheduling means extracts an inter-thread synchronous communication operation included in the thread extracted by the extracting means. An inter-thread synchronous communication operation extracting means for generating a thread-directed edge of the inter-thread synchronous communication operation extracted by the inter-thread synchronous communication operation extracting means; An inter-thread synchronous communication operation group edge generating means for generating a directed edge between threads of the inter-thread synchronous communication operation extracted by the inter-thread synchronous communication operation extracting means; A pipelined scheduling cycle constraint addition means for adding the scheduling cycle constraints by considering the pipeline throughput cycle directed edges produced by forming means and inter-thread synchronization communication operation set between the edge generation means,
Pipelined synchronization for scheduling an inter-thread synchronous communication operation based on a scheduling cycle constraint added by a pipelined scheduling cycle constraint adding means, and adjusting a scheduling cycle of a scheduling result in consideration of a pipeline throughput cycle. Communication scheduling means.

【0023】パイプライン化同期通信スケジューリング
手段は、パイプラインスループットサイクルを考慮して
スケジューリング結果のスケジューリングサイクルを調
整するので、動作合成手段は誤動作が起こらないように
パイプライン動作を行なう回路を合成することが可能と
なる。
Since the pipelined synchronous communication scheduling means adjusts the scheduling cycle of the scheduling result in consideration of the pipeline throughput cycle, the operation synthesizing means synthesizes a circuit for performing a pipeline operation so that a malfunction does not occur. Becomes possible.

【0024】請求項7に記載の高位合成装置は、請求項
6記載の高位合成装置であって、パイプライン化同期通
信スケジューリング手段は、スケジューリング結果内の
送信を示すノードと受信を示すノードとのスケジューリ
ングサイクルの差がパイプラインスループットサイクル
となるようにスケジューリングサイクルを調整する。
A high-level synthesis apparatus according to a seventh aspect is the high-level synthesis apparatus according to the sixth aspect, wherein the pipelined synchronous communication scheduling means includes a node indicating transmission and a node indicating reception in the scheduling result. The scheduling cycle is adjusted so that the difference between the scheduling cycles becomes the pipeline throughput cycle.

【0025】パイプライン化同期通信スケジューリング
手段は、スケジューリング結果内の送信を示すノードと
受信を示すノードとのスケジューリングサイクルの差が
パイプラインスループットサイクルとなるようにスケジ
ューリングサイクルを調整するので、動作合成手段は誤
動作が起こらないようにパイプライン動作を行なう回路
を合成することが可能となる。
The pipelined synchronous communication scheduling means adjusts the scheduling cycle so that the difference between the scheduling cycle of the node indicating transmission and the node indicating reception in the scheduling result becomes the pipeline throughput cycle. It is possible to synthesize a circuit that performs a pipeline operation so that a malfunction does not occur.

【0026】請求項8に記載の高位合成装置は、請求項
6または7記載の高位合成装置であって、パイプライン
化同期通信スケジューリング手段は同じスケジューリン
グサイクル内で同じ種類のノードによるオペレーション
数を制限してスレッド間同期通信オペレーションのスケ
ジューリングを行なう。
The high-level synthesizer according to claim 8 is the high-level synthesizer according to claim 6 or 7, wherein the pipelined synchronous communication scheduling means limits the number of operations by the same type of node within the same scheduling cycle. Then, scheduling of the synchronous communication operation between threads is performed.

【0027】パイプライン化同期通信スケジューリング
手段は、同じスケジューリングサイクル内で同じ種類の
ノードによるオペレーション数を制限してスレッド間同
期通信オペレーションのスケジューリングを行なうの
で、スレッド間のバス幅等を小さくすることが可能とな
り、合成される論理回路の回路規模を小さくすることが
可能となる。
Since the pipelined synchronous communication scheduling means schedules the inter-thread synchronous communication operation by limiting the number of operations by the same type of node within the same scheduling cycle, the bus width between threads can be reduced. This makes it possible to reduce the circuit scale of the logic circuit to be synthesized.

【0028】請求項9に記載の高位合成方法は、入力さ
れた動作記述からハンドシェイクなしにスレッド間同期
通信が可能な動作記述を含むスレッドを抽出するステッ
プと、抽出されたスレッドに含まれる動作記述に基づい
てスレッド間同期通信オペレーションのスケジューリン
グを行なうステップと、スケジューリングされたスレッ
ド間同期通信オペレーションに基づいて前記スレッド毎
に動作合成制約情報を生成するステップと、生成された
動作合成制約情報に基づいてスレッド毎の動作合成を行
なうステップとを含む。
According to a ninth aspect of the present invention, there is provided a high-level synthesis method comprising the steps of: extracting, from an input operation description, a thread including an operation description capable of performing inter-thread synchronous communication without a handshake; Scheduling inter-thread synchronous communication operation based on the description; generating behavioral synthesis constraint information for each thread based on the scheduled inter-thread synchronous communication operation; and based on the generated behavioral synthesis constraint information. Performing a behavioral synthesis for each thread.

【0029】スレッド間同期通信オペレーションのスケ
ジューリング結果と、生成された動作合成制約情報とに
基づいてスレッド毎に動作合成するので、高速でデータ
通信が可能な論理回路を確実に合成でき、回路規模の縮
小を図ることが可能となる。
Since the behavioral synthesis is performed for each thread based on the scheduling result of the inter-thread synchronous communication operation and the generated behavioral synthesis constraint information, a logic circuit capable of high-speed data communication can be reliably synthesized. It is possible to reduce the size.

【0030】請求項10に記載の媒体に記録された高位
合成プログラムは、入力された動作記述からハンドシェ
イクなしにスレッド間同期通信が可能な動作記述を含む
スレッドを抽出するステップと、抽出されたスレッドに
含まれる動作記述に基づいてスレッド間同期通信オペレ
ーションのスケジューリングを行なうステップと、スケ
ジューリングされたスレッド間同期通信オペレーション
に基づいてスレッド毎に動作合成制約情報を生成するス
テップと、生成された動作合成制約情報に基づいて前記
スレッド毎の動作合成を行なうステップとを含む。
The high-level synthesis program recorded on the medium according to claim 10 is a step of extracting a thread including an operation description capable of performing inter-thread synchronous communication without a handshake from the input operation description. Scheduling an inter-thread synchronous communication operation based on the behavioral description included in the thread; generating behavioral synthesis constraint information for each thread based on the scheduled inter-thread synchronous communication operation; and generating the generated behavioral synthesis. Performing behavioral synthesis for each thread based on constraint information.

【0031】スレッド間同期通信オペレーションのスケ
ジューリング結果と、生成された動作合成制約情報とに
基づいてスレッド毎に動作合成するので、高速でデータ
通信が可能な論理回路を確実に合成でき、回路規模の縮
小を図ることが可能となる。
Since the behavioral synthesis is performed for each thread based on the scheduling result of the inter-thread synchronous communication operation and the generated behavioral synthesis constraint information, a logic circuit capable of high-speed data communication can be reliably synthesized, and the circuit scale is reduced. It is possible to reduce the size.

【0032】[0032]

【発明の実施の形態】図1は、本発明の高位合成装置の
外観例を示す図である。高位合成装置は、コンピュータ
本体1、グラフィックディスプレイ装置2、磁気テープ
4が装着される磁気テープ装置3、キーボード5、マウ
ス6、CD−ROM(Compact Disc-Read Only Memory
)8が装着されるCD−ROM装置7、および通信モ
デム9を含む。高位合成プログラムは、磁気テープ4ま
たはCD―ROM8等の記憶媒体によって供給される。
高位合成プログラムはコンピュータ本体1によって実行
され、操作者はグラフィックディスプレイ装置2を見な
がらキーボード5またはマウス6を操作することによっ
て高位合成を行う。また、高位合成プログラムは他のコ
ンピュータより通信回線を経由し、通信モデム9を介し
てコンピュータ本体1に供給されてもよい。
FIG. 1 is a diagram showing an example of the appearance of a high-level synthesis apparatus according to the present invention. The high-level synthesizer includes a computer body 1, a graphic display device 2, a magnetic tape device 3 on which a magnetic tape 4 is mounted, a keyboard 5, a mouse 6, a CD-ROM (Compact Disc-Read Only Memory).
) 8 includes a CD-ROM device 7 to be mounted, and a communication modem 9. The high-level synthesis program is supplied by a storage medium such as the magnetic tape 4 or the CD-ROM 8.
The high-level synthesis program is executed by the computer main body 1, and the operator performs high-level synthesis by operating the keyboard 5 or the mouse 6 while watching the graphic display device 2. The high-level synthesis program may be supplied from another computer to the computer main unit 1 via a communication line and a communication modem 9.

【0033】図2は、本発明の高位合成装置の構成例を
示すブロック図である。図1に示すコンピュータ本体1
は、CPU(Central Processing Unit )10、ROM
(Read Only Memory)11、RAM(Random Access Memo
ry)12およびハードディスク13を含む。CPU10
は、グラフィックディスプレイ装置2、磁気テープ装置
3、キーボード5、マウス6、CD−ROM装置7、通
信モデム9、ROM11、RAM12またはハードディ
スク13との間でデータを入出力しながら処理を行う。
磁気テープ4またはCD−ROM8に記録された高位合
成プログラムは、CPU10により磁気テープ装置3ま
たはCD−ROM装置7を介して一旦ハードディスク1
3に格納される。CPU10は、ハードディスク13か
ら適宜高位合成プログラムをRAM12にロードして実
行することによって高位合成を行う。
FIG. 2 is a block diagram showing a configuration example of the high-level synthesis apparatus of the present invention. Computer body 1 shown in FIG.
Is a CPU (Central Processing Unit) 10 and ROM
(Read Only Memory) 11, RAM (Random Access Memo)
ry) 12 and the hard disk 13. CPU10
Performs processing while inputting and outputting data to and from the graphic display device 2, magnetic tape device 3, keyboard 5, mouse 6, CD-ROM device 7, communication modem 9, ROM 11, RAM 12, or hard disk 13.
The high-level synthesis program recorded on the magnetic tape 4 or the CD-ROM 8 is temporarily transferred to the hard disk 1 by the CPU 10 via the magnetic tape device 3 or the CD-ROM device 7.
3 is stored. The CPU 10 performs high-level synthesis by appropriately loading a high-level synthesis program from the hard disk 13 into the RAM 12 and executing the program.

【0034】以下に各実施の形態における高位合成装置
について説明するが、図1に示す高位合成装置の外観お
よび図2に示す高位合成装置の構成は各実施の形態にお
いて共通である。
The high-level synthesis device in each embodiment will be described below. The appearance of the high-level synthesis device shown in FIG. 1 and the configuration of the high-level synthesis device shown in FIG. 2 are common to each embodiment.

【0035】(実施の形態1)図3は、本発明の実施の
形態1における高位合成装置の概略構成を示すブロック
図である。この高位合成装置は、動作記述21からハン
ドシェイクなしで同期通信が可能なスレッド間同期通信
オペレーションを選択するためのスケジューリング可能
スレッド間同期通信オペレーション選択部22、スケジ
ューリング可能スレッド間同期通信オペレーション選択
部22によって選択された同期通信可能なスレッド間同
期通信オペレーションのスケジューリングを行なうため
のスレッド間同期通信オペレーションスケジューリング
部23、スレッド間同期通信オペレーションスケジュー
リング部23によって生成された同期通信オペレーショ
ンのスケジューリング結果に基づいてスレッド毎の動作
合成制約情報を生成するためのスレッド毎動作合成制約
情報生成部24、およびスレッド毎動作合成制約情報生
成部24によって生成された動作合成制約情報に基づい
て各スレッド毎に動作合成を行なうためのスレッド毎動
作合成部25を含む。
(Embodiment 1) FIG. 3 is a block diagram showing a schematic configuration of a high-level synthesis apparatus according to Embodiment 1 of the present invention. The high-level synthesizing device includes a schedulable inter-thread synchronous communication operation selecting unit 22 and a schedulable inter-thread synchronous communication operation selecting unit 22 for selecting an inter-thread synchronous communication operation capable of performing synchronous communication without handshaking from the operation description 21 An inter-thread synchronous communication operation scheduling unit 23 for performing scheduling of an inter-thread synchronous communication operation capable of performing synchronous communication selected by a thread, based on a scheduling result of the synchronous communication operation generated by the inter-thread synchronous communication operation scheduling unit 23 The behavioral synthesis constraint information generation unit 24 for generating thread-based behavioral synthesis constraint information for each thread and the behavioral synthesis constraint information generation unit 24 for each thread. Containing threads each operation combining unit 25 for performing an operation combining for each thread based on the work synthesis constraint information.

【0036】図4は、本実施の形態における高位合成装
置の処理手順を説明するためのフローチャートである。
まず、スケジューリング可能スレッド間同期通信オペレ
ーション選択部22は、ハンドシェイクなしでスケジュ
ーリング可能なスレッド間の同期通信オペレーションを
選択する(S10)。本実施の形態における高位合成装
置においては、この選択は人手によって行なわれる。た
とえば、図5に示す動作記述がスケジューリング可能ス
レッド間同期通信オペレーション選択部22に入力され
た場合、人手によってスレッド111、112および1
13が選択されたものとする。
FIG. 4 is a flowchart for explaining the processing procedure of the high-level synthesis device according to the present embodiment.
First, the schedulable inter-thread synchronous communication operation selecting unit 22 selects a schedulable synchronous communication operation between threads without a handshake (S10). In the high-level synthesis device according to the present embodiment, this selection is manually performed. For example, when the operation description shown in FIG. 5 is input to the schedulable inter-thread synchronous communication operation selecting unit 22, the threads 111, 112 and 1 are manually input.
It is assumed that 13 has been selected.

【0037】ここで、図5に示す動作記述について簡単
に説明する。図5に示す動作記述101において、RE
CV(IN)は通信路(以下、チャネルと呼ぶ)INを
介してデータを受信する記述であり、その受信データを
INDに代入することを示している。次の動作記述10
2において、PAR文によって複数のプロセスを並列に
動作させることを定義している。動作記述102の中の
動作記述111〜113は、それぞれスレッド(PAR
文によって定義された各々のプロセス上で動作する記
述)を示している。この各スレッド内の記述についてさ
らに詳細に説明する。
Here, the operation description shown in FIG. 5 will be briefly described. In the operation description 101 shown in FIG.
CV (IN) is a description for receiving data via a communication channel (hereinafter, referred to as a channel) IN, and indicates that the received data is substituted for IND. Next operation description 10
2 defines that a plurality of processes are operated in parallel by a PAR statement. The behavior descriptions 111 to 113 in the behavior description 102 are each a thread (PAR
Statement that operates on each process defined by the statement). The description in each thread will be described in more detail.

【0038】スレッド111において、最初の1〜2行
目の記述はそれぞれ、INDに“5”を加算してD1に
代入すること、およびD1からINDを除算してD2に
代入することを示している。また、3〜4行目の記述は
それぞれ、データD1をチャネルCH1を介して送信す
ること、およびデータD2をチャネルCH2を介して送
信することを示している。さらに5行目において、チャ
ネルCH3を介して受信したデータをOUTDに代入す
ることを示している。
In the thread 111, the first and second lines describe that "5" is added to IND and assigned to D1, and that IND is divided from D1 and assigned to D2. I have. The descriptions in the third and fourth lines indicate that the data D1 is transmitted via the channel CH1 and that the data D2 is transmitted via the channel CH2. Further, the fifth line shows that the data received via the channel CH3 is assigned to OUTD.

【0039】スレッド112において、最初の1行目の
記述は、チャネルCH2から受信したデータをD3に代
入することを示している。また、2行目において、D3
に“4”を加算してD4に代入することを示している。
さらに3行目において、データD4をチャネルCH4を
介して送信することを示している。
In the thread 112, the description on the first line indicates that the data received from the channel CH2 is assigned to D3. In the second line, D3
Is added to "4" and assigned to D4.
Further, the third line shows that the data D4 is transmitted via the channel CH4.

【0040】スレッド113において、最初の1〜2行
目はそれぞれ、チャネルCH1からデータを受信してD
5に代入すること、およびチャネルCH4からデータを
受信してD6に代入することを示している。また、3行
目において、D5にD6を乗算してD7に代入すること
を示している。さらに4行目において、データD7をチ
ャネルCH3を介して送信することを示している。
In the thread 113, the first and second lines respectively receive data from the channel CH1 and
5 and receiving data from channel CH4 and substituting it into D6. In addition, the third line shows that D5 is multiplied by D6 and substituted for D7. Further, the fourth line indicates that the data D7 is transmitted via the channel CH3.

【0041】最後の記述103は、データOUTDをチ
ャネルOUTを介して送信することを示している。
The last description 103 indicates that the data OUTD is transmitted via the channel OUT.

【0042】再び図4に戻り、本実施の形態における高
位合成装置の処理手順の説明を続ける。スレッド間同期
通信オペレーションスケジューリング部23は、ステッ
プS10において選択されたスレッド間の同期通信オペ
レーションのスケジューリングを行なう(S11)。
Returning to FIG. 4 again, the description of the processing procedure of the high-level synthesis device in the present embodiment will be continued. The inter-thread synchronous communication operation scheduling unit 23 schedules the synchronous communication operation between the threads selected in step S10 (S11).

【0043】このスレッド間同期通信オペレーションス
ケジューリング部23をさらに詳細に説明するための概
略構成図を図6に示す。スレッド間同期通信オペレーシ
ョンスケジューリング部23は、スケジューリング可能
スレッド間同期通信オペレーション選択部22から出力
された動作記述27(図5のスレッド111〜113が
これに相当する)の中からスレッド間の同期通信オペレ
ーションを抽出するためのスレッド間同期通信オペレー
ション抽出部28、スレッド間同期通信オペレーション
抽出部28によって抽出されたスレッド間同期通信オペ
レーションに基づいてスレッド内の同期通信オペレーシ
ョン間のエッジを生成するためのスレッド内同期通信オ
ペレーション間エッジ生成部29、スレッド間同期通信
オペレーション抽出部28によって抽出されたスレッド
間同期通信オペレーションに基づいてスレッド間の同期
通信オペレーション組(各スレッド内における同期通信
オペレーションを1組とする)間のエッジを生成するた
めのスレッド間同期通信オペレーション組間エッジ生成
部30、スレッド間同期通信オペレーション抽出部28
とスレッド内同期通信オペレーション間エッジ生成部2
9とスレッド間同期通信オペレーション組間エッジ生成
部30とによって生成された同期通信オペレーショング
ラフの各有向エッジに対して、スケジューリングサイク
ル制約を生成するためのスケジューリングサイクル制約
付加部31、およびスケジューリングサイクル制約付加
部31によって生成された制約条件に基づいて同期通信
オペレーションのスケジューリングを行なうための同期
通信スケジューリング部32を含む。
FIG. 6 is a schematic block diagram for explaining the inter-thread synchronous communication operation scheduling unit 23 in further detail. The inter-thread synchronous communication operation scheduling unit 23 performs a synchronous communication operation between threads from the operation description 27 (corresponding to the threads 111 to 113 in FIG. 5) output from the schedulable inter-thread synchronous communication operation selection unit 22. An inter-thread synchronous communication operation extracting unit 28 for extracting the inter-thread synchronous communication operation extracted by the inter-thread synchronous communication operation extracting unit 28; Based on the inter-thread synchronous communication operation extracted by the inter-synchronous communication operation edge generation unit 29 and the inter-thread synchronous communication operation extraction unit 28, a synchronous communication operation set between threads (in each thread, That the set synchronous communication operation) inter-thread synchronization communication operation set between the edge generation section 30 for generating an edge between, inter-thread synchronization communication operation extraction unit 28
And inter-thread synchronous communication operation edge generation unit 2
9 and a scheduling cycle constraint adding unit 31 for generating a scheduling cycle constraint for each directed edge of the synchronous communication operation graph generated by the inter-thread synchronous communication operation inter-group edge generating unit 30, and a scheduling cycle constraint A synchronous communication scheduling unit for scheduling a synchronous communication operation based on the constraint condition generated by the adding unit;

【0044】図7は、スレッド間同期通信オペレーショ
ンスケジューリング部23の処理手順を説明するための
フローチャートである。まず、スレッド間同期通信オペ
レーション抽出部28は、スケジューリング可能スレッ
ド間同期通信オペレーション間選択部22によって選択
された同期通信オペレーションの中から、スレッド間同
期通信オペレーションを抽出する(S20)。図5に示
す動作記述の場合、スレッド111内のSEND(CH
1,D1)、SEND(CH2,D2)およびRECV
(CH3)が抽出される。同様にして、スレッド112
内のRECV(CH2)およびSEND(CH4,D
4)が抽出され、スレッド113内のRECV(CH
1)、RECV(CH4)およびSEND(CH3,D
7)が抽出される。
FIG. 7 is a flowchart for explaining the processing procedure of the inter-thread synchronous communication operation scheduling unit 23. First, the inter-thread synchronous communication operation extracting unit 28 extracts an inter-thread synchronous communication operation from the synchronous communication operations selected by the schedulable inter-thread synchronous communication operation selecting unit 22 (S20). In the case of the behavioral description shown in FIG. 5, SEND (CH
1, D1), SEND (CH2, D2) and RECV
(CH3) is extracted. Similarly, the thread 112
(CH2) and SEND (CH4, D
4) is extracted, and RECV (CH
1), RECV (CH4) and SEND (CH3, D
7) is extracted.

【0045】図8は、スレッド間同期通信オペレーショ
ン抽出部28によって抽出された動作記述から生成され
た同期通信オペレーショングラフを示している。図8に
示すグラフの中で、Sn(n=1〜4)はSEND(C
Hn,Dx)に対応するノードを示している。また、R
n(n=1〜4)はRECV(CHn)に対応するノー
ドを示している。
FIG. 8 shows a synchronous communication operation graph generated from the operation description extracted by the inter-thread synchronous communication operation extracting unit 28. In the graph shown in FIG. 8, Sn (n = 1 to 4) represents SEND (C
Hn, Dx). Also, R
n (n = 1 to 4) indicates a node corresponding to RECV (CHn).

【0046】次に、スレッド内同期通信オペレーション
間エッジ生成部29は、スレッド間同期通信オペレーシ
ョン抽出部28によって生成されたスレッド間同期通信
オペレーショングラフに対して、スレッド内における同
期通信オペレーションの順序関係に基づいてノード間に
有向エッジを加える(S21)。図9は、図8に示す同
期通信オペレーショングラフに、このスレッド内同期通
信オペレーション間エッジ生成部29によって有向エッ
ジが加えられた後のグラフを示している。図9からわか
るように、各スレッド内のスレッド間同期通信オペレー
ションの順序関係のみが有向エッジ(実線)によって示
されている。
Next, the intra-thread synchronous communication operation edge generation unit 29 compares the inter-thread synchronous communication operation graph generated by the inter-thread synchronous communication operation extraction unit 28 with the order relation of the synchronous communication operation in the thread. Based on this, a directed edge is added between nodes (S21). FIG. 9 shows a graph after a directed edge is added to the synchronous communication operation graph shown in FIG. 8 by the intra-thread synchronous communication operation edge generation unit 29. As can be seen from FIG. 9, only the order relationship of the inter-thread synchronous communication operation in each thread is indicated by a directed edge (solid line).

【0047】次に、スレッド間同期通信オペレーション
組間エッジ生成部30は、スレッド内同期通信オペレー
ション間エッジ生成部29によって有向エッジが加えら
れた後の同期通信オペレーショングラフに対して、スレ
ッド間における同期通信オペレーションの送信と受信と
の関係に基づいてノード間に有向エッジを加える(S2
2)。図10は、このスレッド間同期通信オペレーショ
ン組間エッジ生成部30によって有向エッジが加えられ
た後の同期通信オペレーショングラフを示している。た
とえば、図5のスレッド111内の動作記述SEND
(CH1,D1)によって送信されるデータは、スレッ
ド113内の動作記述RECV(CH1)によって受信
されることがわかるので、図10に示すようにノードS
1からノードR1へ有向エッジ(破線)が加えられる。
同様にして、ノードS2とノードR2との間、ノードS
3とノードR3との間、およびノードS4とノードR4
との間に有向エッジが加えられる。
Next, the inter-thread synchronous communication operation inter-set edge generation unit 30 generates an inter-thread synchronous communication operation graph after a directed edge has been added by the intra-thread synchronous communication operation inter-edge generation unit 29. Add a directed edge between nodes based on the relationship between transmission and reception of the synchronous communication operation (S2
2). FIG. 10 shows a synchronous communication operation graph after a directed edge has been added by the inter-thread synchronous communication operation inter-set edge generation unit 30. For example, the operation description SEND in the thread 111 of FIG.
Since it is understood that the data transmitted by (CH1, D1) is received by the operation description RECV (CH1) in the thread 113, as shown in FIG.
A directed edge (dashed line) is added from 1 to the node R1.
Similarly, between the node S2 and the node R2, the node S2
3 and node R3, and between node S4 and node R4
And a directed edge is added.

【0048】次に、スケジューリングサイクル制約付加
部31は、スレッド内同期通信オペレーション間エッジ
生成部29、およびスレッド間同期通信オペレーション
組間エッジ生成部30によって加えられた同期通信オペ
レーショングラフの有向エッジに対して、スケジューリ
ング時の制約条件を付加する(S23)。図11は、こ
のスケジューリングサイクル制約付加部31をさらに詳
細に説明するためのブロック図である。スケジューリン
グサイクル制約付加部31は、スケジューリング可能ス
レッド間同期通信オペレーション選択部22によって選
択されたスレッドの動作記述に基づいてスレッド毎の動
作合成を行なうためのスレッド毎動作合成部35、およ
びスレッド毎動作合成部35によって行なわれた動作合
成結果(スケジューリング結果)に基づいてスケジュー
リングサイクルにおける制約条件を抽出するための同期
通信オペレーション間スケジューリングサイクル制約抽
出部36を含む。
Next, the scheduling cycle constraint adding unit 31 adds a directed edge of the synchronous communication operation graph added by the intra-thread synchronous communication operation inter-edge generation unit 29 and the inter-thread synchronous communication operation inter-group edge generation unit 30. On the other hand, constraints at the time of scheduling are added (S23). FIG. 11 is a block diagram for explaining the scheduling cycle constraint adding unit 31 in more detail. The scheduling cycle constraint adding unit 31 includes a per-thread behavior synthesizing unit 35 for performing a per-thread behavioral synthesis based on the behavioral description of the thread selected by the schedulable inter-thread synchronous communication operation selecting unit 22, and a per-thread behavioral synthesis. A synchronous cycle operation scheduling cycle constraint extracting unit for extracting constraints in a scheduling cycle based on a behavioral synthesis result (scheduling result) performed by the unit;

【0049】図12は、スケジューリングサイクル制約
付加部31の処理手順を説明するためのフローチャート
である。スレッド毎動作合成部35は、各スレッド毎に
動作合成を行ない、スレッド内の同期通信オペレーショ
ンのスケジューリングを行なう(S30)。この動作合
成には、一般に高位合成と呼ばれる手法が用いられる。
この高位合成に関する手法の一例として、文献「High-L
evel Synthesis,Kluwer Academic Publishers 」に紹介
されている手法を簡単に説明する。
FIG. 12 is a flowchart for explaining the processing procedure of the scheduling cycle constraint adding unit 31. The per-thread behavioral synthesis unit 35 performs behavioral synthesis for each thread, and schedules a synchronous communication operation in the thread (S30). For this behavioral synthesis, a technique generally called high-level synthesis is used.
As an example of a technique relating to this high-level synthesis, a document "High-L
evel Synthesis, Kluwer Academic Publishers ".

【0050】図13は、スレッド毎動作合成部35の概
略構成を示すブロック図であり、上述した高位合成と呼
ばれる手法により動作合成を行なう。このスレッド毎動
作合成装置35は、動作記述40からコントロールデー
タフローグラフ(CDFG)を生成するためのCDFG
生成部41、CDFG生成部41によって生成されたグ
ラフの依存関係に基づいてスケジューリングを行なうた
めのスケジューリング部41、およびスケジューリング
部42によるスケジューリング結果に基づいて、回路を
構成する回路要素の選択、制御回路の生成を行なうこと
で、論理回路44を合成するためのアロケーション部4
3を含む。
FIG. 13 is a block diagram showing a schematic configuration of the per-thread operation synthesizing unit 35, which performs operation synthesis by the above-mentioned method called high-level synthesis. The per-thread behavior synthesizing device 35 generates a control data flow graph (CDFG) from the behavior description 40 by using a CDFG.
A generation unit 41, a scheduling unit 41 for performing scheduling based on a graph dependency generated by the CDFG generation unit 41, and a selection of a circuit element configuring a circuit and a control circuit based on a scheduling result by the scheduling unit 42 Is generated, an allocation unit 4 for synthesizing the logic circuit 44 is generated.
3 inclusive.

【0051】CDFG生成部41は、入力された動作記
述40を実行の制御の流れ(コントロールフロー)とデ
ータの流れ(データフロー)とを表すCDFGと呼ばれ
るグラフに変換する。このグラフにおいては、データの
入出力と演算や制御の分岐とが節点で表され、この節点
間のデータの流れや制御の流れ(依存関係)が枝で表さ
れる。高位合成において、動作記述をこのCDFGに変
換する理由は、動作記述に記述された動作が保証される
上に、合成される論理回路に並列化の余地を残すことが
可能な動作表現だからである。
The CDFG generation unit 41 converts the input operation description 40 into a graph called CDFG representing a control flow of execution (control flow) and a data flow (data flow). In this graph, the input / output of data and the branch of operation and control are represented by nodes, and the flow of data and the flow of control (dependency) between the nodes are represented by branches. The reason why the behavioral description is converted to the CDFG in the high-level synthesis is that the behavior described in the behavioral description is guaranteed, and the behavioral expression can leave room for parallelization in the synthesized logic circuit. .

【0052】次に、スケジューリング部42は、CDF
G生成部41によって生成されたCDFGによって表さ
れる依存関係に基づき、節点に対応するデータの入出力
と演算や制御の分岐とが実行される相対的な時間を決定
する。この処理は一般にスケジューリングと呼ばれてい
る。
Next, the scheduling unit 42 outputs the CDF
Based on the dependency represented by the CDFG generated by the G generation unit 41, the relative time at which the input / output of data corresponding to the node and the branch of operation or control are determined. This process is generally called scheduling.

【0053】そして、アロケーション部43は、節点に
対応する論理回路を合成する。すなわち、演算に割り当
てられる演算器、データ選択のためのセレクタ、データ
を記憶するためのレジスタ等の回路要素(回路素子)が
選択され、これらの回路要素を制御するための制御回路
が生成され、これらの回路要素および制御回路間を接続
することにより論理回路が合成される。この処理は一般
にアロケーションと呼ばれている。なお、このアロケー
ションは、上述したスケジューリング処理と同時に行な
われる場合もある。
Then, the allocation unit 43 synthesizes a logic circuit corresponding to the node. That is, circuit elements (circuit elements) such as an arithmetic unit assigned to the operation, a selector for selecting data, and a register for storing data are selected, and a control circuit for controlling these circuit elements is generated. A logic circuit is synthesized by connecting these circuit elements and the control circuit. This process is generally called allocation. This allocation may be performed simultaneously with the above-described scheduling process.

【0054】図14は、図5に示すスレッド毎の動作記
述のスケジューリング結果を示す図である。図14のス
ケジューリング結果111’、112’および113’
はそれぞれ、図5に示すスレッド111,112および
113のスケジューリング結果を示している。たとえ
ば、スケジューリング結果111’に示されるように、
変数INDと“5”とがノード“+”に入力され、その
加算結果D1がノード“CH1W”およびノード“−”
に入力されている。また、加算結果D1と変数INDと
がノード“−”に入力され、その減算結果D2がノード
“CH2W”に入力されている。また、ノード“CH1
W”および“CH2W”は、それぞれ変数D1をCH1
に書き込み、変数D2をCH2に書き込むことを示して
いる。さらには、ノード“CH3R”はCH3からデー
タを読み込むことを示しており、このデータが変数OU
TDに書き込まれる。なお、これらの一連の動作が1サ
イクルで実行されるように動作合成されている。
FIG. 14 is a diagram showing a scheduling result of the behavioral description for each thread shown in FIG. The scheduling results 111 ', 112' and 113 'of FIG.
Shows the scheduling results of the threads 111, 112 and 113 shown in FIG. 5, respectively. For example, as shown in the scheduling result 111 ′,
Variables IND and "5" are input to node "+", and the addition result D1 is output to nodes "CH1W" and "-".
Has been entered. The addition result D1 and the variable IND are input to the node “−”, and the subtraction result D2 is input to the node “CH2W”. Also, the node “CH1”
W "and" CH2W "respectively set the variable D1 to CH1
, And the variable D2 is written to CH2. Further, the node "CH3R" indicates that data is read from CH3, and this data is stored in the variable OU.
Written to TD. The operation is synthesized such that a series of these operations are executed in one cycle.

【0055】また、スケジューリング結果112’に示
されるように、ノード“CH2R”によってCH2から
データが読み込まれ、変数D3に代入される。また、変
数D3と“4”とがノード“+”に入力され、その加算
結果D4がノード“CH4W”に入力され、その加算結
果D4がCH4に書き込まれる。これらの一連の動作も
1サイクルで実行されるように動作合成されている。
Further, as shown in the scheduling result 112 ', data is read from CH2 by the node "CH2R" and assigned to the variable D3. The variables D3 and "4" are input to the node "+", the addition result D4 is input to the node "CH4W", and the addition result D4 is written to CH4. These series of operations are also synthesized so as to be executed in one cycle.

【0056】また、スケジューリング結果113’に示
すように、ノード“CH1R”によってCH1からデー
タが読み込まれて変数D5に代入され、ノード“CH4
R”によってCH4からデータが読み込まれて変数D6
に代入される。そして、変数D5とD6とがノード
“×”に入力され、その乗算結果D7がノード“CH3
W”に入力される。そして、ノード“CH3W”は乗算
結果D7をCH3に書き込む。なお、図14に示すよう
に、スレッド113の乗算に2サイクル要すると判断さ
れて動作合成されている。
As shown in the scheduling result 113 ', data is read from CH1 by the node "CH1R" and substituted into the variable D5.
The data is read from CH4 by R "and the variable D6
Is assigned to Then, the variables D5 and D6 are input to the node “x”, and the multiplication result D7 is output to the node “CH3”.
W ". Then, the node" CH3W "writes the multiplication result D7 into CH3, and it is determined that two cycles are required for the multiplication by the thread 113 as shown in FIG.

【0057】再び図12に示すフローチャートに戻り、
スケジューリングサイクル制約付加部31の処理手順の
説明を続ける。同期通信オペレーション間スケジューリ
ングサイクル制約抽出部36は、スレッド毎動作合成部
35によるスケジューリング結果に基づいて同期通信オ
ペレーション間のスケジューリングサイクル制約を抽出
し、図10に示す同期通信オペレーショングラフの各エ
ッジに当該スケジューリングサイクル制約を制約条件と
して付加する(S31)。
Returning again to the flowchart shown in FIG.
The description of the processing procedure of the scheduling cycle constraint adding unit 31 will be continued. The synchronous cycle operation scheduling cycle constraint extraction unit 36 extracts a scheduling cycle constraint between synchronous communication operations based on the scheduling result of the per-thread operation synthesizing unit 35, and assigns the scheduling cycle constraint to each edge of the synchronous communication operation graph shown in FIG. A cycle constraint is added as a constraint (S31).

【0058】同期通信オペレーション間のスケジューリ
ングサイクル制約は、スレッド内同期通信間スケジュー
リング制約と、スレッド間同期通信間スケジューリング
制約との2種類に大別され、それぞれ以下の式で算出さ
れる。なお、図10に示すグラフにおいて、実線で示す
有向エッジはスレッド内同期通信間スケジューリング制
約を表しており、破線で示す有向エッジはスレッド間同
期通信間スケジューリング制約を表している。
Scheduling cycle constraints between synchronous communication operations are roughly classified into two types, intra-thread synchronous communication scheduling constraints and inter-thread synchronous communication scheduling constraints, which are calculated by the following equations. In the graph shown in FIG. 10, a directional edge shown by a solid line represents a scheduling constraint between intra-thread synchronous communications, and a directional edge shown by a broken line represents a scheduling constraint between synchronous threads.

【0059】 スレッド内同期通信間スケジューリング制約= |先行実行される同期通信オペレーションのスケジューリングサイクル− 後続実行される同期通信オペレーションのスケジューリングサイクル| ‥‥ (1) スレッド間同期通信間スケジューリング制約=1 ‥‥ (2) たとえば、ノードS1とS2との間の有向エッジは、ス
レッド内同期通信間スケジューリング制約であるので、
式(1)を用いて計算する。すなわち、図14に示すよ
うに、ノードS1とS2とに対応するノード“CH1
W”と“CH2W”とは、共に1サイクル目にスケジュ
ーリングされているため、スレッド内同期通信間スケジ
ューリング制約=|1−1|=0となる。
Intra-thread synchronous communication scheduling constraint = | Scheduling cycle of synchronous communication operation executed first-Scheduling cycle of synchronous communication operation executed next || (1) Scheduling constraint between synchronous communication between threads = 1} (2) For example, since the directed edge between the nodes S1 and S2 is an intra-thread synchronous communication scheduling constraint,
It is calculated using equation (1). That is, as shown in FIG. 14, the node “CH1” corresponding to the nodes S1 and S2
Since “W” and “CH2W” are both scheduled in the first cycle, the scheduling constraint between intra-thread synchronous communication = | 1-1 | = 0.

【0060】また、ノードR4とS3との間の有向エッ
ジも、スレッド内同期通信間スケジューリング制約であ
るので、式(1)を用いて計算する。すなわち、図14
に示すように、ノードR4とS3とに対応するノード
“CH4R”と“CH3W”とは、それぞれ1サイクル
目と2サイクル目にスケジューリングされているため、
スレッド内同期通信間スケジューリング制約=|2−1
|=1となる。
The directional edge between the nodes R4 and S3 is also calculated by using the equation (1) because it is a scheduling constraint between intra-thread synchronous communication. That is, FIG.
As shown in, the nodes “CH4R” and “CH3W” corresponding to the nodes R4 and S3 are scheduled in the first cycle and the second cycle, respectively.
Scheduling constraint between intra-thread synchronous communication = | 2-1
| = 1.

【0061】一方、ノードS1とR1との間の有向エッ
ジは、スレッド間同期通信間スケジューリング制約であ
るので、式(2)を用いて計算する。すなわち、スレッ
ド間同期通信間スケジューリング制約=1となる。この
ようにして、図14に示すスケジューリング結果を用い
てスレッド内同期通信間スケジューリング制約およびス
レッド間同期通信間スケジューリング制約を算出し、こ
れらの制約条件を付加したグラフを図15に示す。
On the other hand, the directional edge between the nodes S1 and R1 is calculated by using the equation (2) because it is a scheduling constraint between threads for synchronous communication. That is, the scheduling constraint between the synchronous communication between threads = 1. In this way, the scheduling constraint between intra-thread synchronous communication and the scheduling constraint between synchronous communication between threads is calculated using the scheduling result shown in FIG. 14, and a graph to which these constraints are added is shown in FIG.

【0062】次に、図7に示すスレッド間同期通信オペ
レーションスケジューリング部23のフローチャートに
戻り、ステップS24の処理について説明する。同期通
信スケジューリング部32は、スケジューリングサイク
ル制約付加部31によって制約条件が付加された同期通
信オペレーショングラフを用いて同期通信のスケジュー
リングを行なう。このスケジューリングには、ASAP
スケジューリング方法が用いられ、有向エッジに付加さ
れたスケジューリング制約を満たすように同期通信オペ
レーションノードがスケジューリングされる。
Next, returning to the flowchart of the inter-thread synchronous communication operation scheduling section 23 shown in FIG. 7, the processing of step S24 will be described. The synchronous communication scheduling unit 32 schedules synchronous communication using the synchronous communication operation graph to which the constraint condition has been added by the scheduling cycle constraint adding unit 31. This scheduling includes ASAP
A scheduling method is used, and the synchronous communication operation node is scheduled to satisfy the scheduling constraint added to the directed edge.

【0063】図16は、この同期通信スケジューリング
部32の処理手順を説明するためのフローチャートであ
る。まず、同期通信スケジューリング部32に図15に
示す制約が付加されたグラフが入力されると、このグラ
フのノードの中から次にスケジューリングするノード
(以下、スケジュールノードと呼ぶ)が選択される(S
40)。同期通信スケジューリング部32は、先行する
ノードを持たないノード、または先行するノードが全て
スケジューリングされているノードを選択する。この先
行するノードとは、注目するノードに有向エッジの終端
を持つノードのことを意味する。図15に示すグラフの
場合、同期通信スケジューリング部32は、まずノード
S1をスケジュールノードとして選択する。
FIG. 16 is a flowchart for explaining the processing procedure of the synchronous communication scheduling unit 32. First, when a graph to which the constraint shown in FIG. 15 is added is input to the synchronous communication scheduling unit 32, a node to be scheduled next (hereinafter, referred to as a schedule node) is selected from the nodes of the graph (S).
40). The synchronous communication scheduling unit 32 selects a node having no preceding node or a node to which all preceding nodes are scheduled. The preceding node means a node having a directed edge end at the node of interest. In the case of the graph shown in FIG. 15, the synchronous communication scheduling unit 32 first selects the node S1 as a schedule node.

【0064】次に、ステップS40において選択された
スケジュールノードがあるか否かを判定する(S4
1)。選択されたスケジュールノードがなければ(S4
1,No)、処理を終了する。また、選択されたスケジ
ュールノードがあれば(S41,Yes)、ステップS
42へ進む。
Next, it is determined whether or not there is a schedule node selected in step S40 (S4).
1). If there is no selected schedule node (S4
1, No), and terminate the process. If there is a selected schedule node (S41, Yes), step S
Proceed to 42.

【0065】ステップS42において、同期通信スケジ
ューリング部32は、選択されたスケジュールノードの
スケジューリングサイクルを計算する(S42)。この
後、ステップS40においてさらにスケジュールノード
の選択を繰り返すが、ここで、同じスケジューリングサ
イクル内で同じ種類のノードによるオペレーション数を
制限する方法と、制限しない方法とが挙げられる。
In step S42, the synchronous communication scheduling unit 32 calculates a scheduling cycle of the selected schedule node (S42). Thereafter, in step S40, the selection of the schedule node is further repeated. Here, there are a method of limiting the number of operations by the same type of node in the same scheduling cycle, and a method of not limiting.

【0066】同じスケジューリングサイクル内で同じ種
類のノードによるオペレーション数を制限しない方法の
場合、同期通信スケジューリング部32はノードS1の
スケジューリングの後、同じ種類のノードであるS2を
選択する。このノードS2をスケジューリングする際ノ
ードS1とS2との間の制約が“0”であるので、図1
7に示すように、同じスケジューリングサイクル“1”
にスケジューリングする。また、ノードR1をスケジュ
ーリングする際ノードS1とR1との間の制約が“1”
であるので、ノードR1をスケジューリングサイクル
“2”にスケジューリングする。このようにして、先行
するノードが全てスケジューリングされているノードを
順次スケジューリングすると、図15に示す制約が付加
されたグラフから図17に示すスケジューリング結果が
得られる。
In the case where the number of operations by the same type of node is not limited in the same scheduling cycle, the synchronous communication scheduling unit 32 selects the same type of node S2 after scheduling the node S1. When scheduling the node S2, the constraint between the nodes S1 and S2 is "0".
As shown in FIG. 7, the same scheduling cycle "1"
Schedule. When scheduling the node R1, the constraint between the nodes S1 and R1 is "1".
Therefore, the node R1 is scheduled in the scheduling cycle “2”. In this manner, when the nodes in which all the preceding nodes are all scheduled are sequentially scheduled, the scheduling result shown in FIG. 17 is obtained from the graph to which the constraint shown in FIG. 15 is added.

【0067】なお、注目するノードが複数の先行ノード
を有する場合には、スケジュールサイクルを次式により
算出する。
When the node of interest has a plurality of preceding nodes, the schedule cycle is calculated by the following equation.

【0068】 スケジューリングサイクル=Max{先行ノードiのスケジューリングサイク ル+先行ノードiとスケジュールノードとの間のスケジューリングサイク ル制約(ただし、i=1〜n)} ‥‥ (3) なお、nは先行ノードの総数を、iは1〜nの任意の整
数を表している。
Scheduling cycle = Max {scheduling cycle of preceding node i + scheduling cycle constraint between preceding node i and schedule node (where i = 1 to n)} (3) where n is the leading cycle The total number of nodes, i represents any integer from 1 to n.

【0069】たとえば、図15のノードR3のスケジュ
ーリングサイクルは以下のようにして求められる。
For example, the scheduling cycle of node R3 in FIG. 15 is obtained as follows.

【0070】スケジューリングサイクル=Max{(先
行ノードS2のスケジューリングサイクル+先行ノード
S2とスケジュールノードR3との間のスケジューリン
グサイクル制約),(先行ノードS3のスケジューリン
グサイクル+先行ノードS3とスケジュールノードR3
との間のスケジューリングサイクル制約)}=Max
{(1+0),(4+1)}=5 このようにして、同じスケジューリングサイクル内で同
じ種類のノードによるオペレーション数を制限せずにス
ケジューリングすることにより、スレッド間のバス幅等
が大きくなるが、処理速度に優れた論理回路を合成する
ことが可能になる。
Scheduling cycle = Max {(scheduling cycle of preceding node S2 + scheduling cycle constraint between preceding node S2 and schedule node R3), (scheduling cycle of preceding node S3 + preceding node S3 and scheduling node R3
ス ケ ジ ュ ー リ ン グ = Max
{(1 + 0), (4 + 1)} = 5 In this way, by scheduling without limiting the number of operations by the same type of node in the same scheduling cycle, the bus width between threads and the like becomes large. It becomes possible to synthesize a logic circuit having excellent speed.

【0071】また、同じスケジューリングサイクル内で
同じ種類のノードによるオペレーション数を制限する方
法の場合(たとえば、同じ種類のノードによるオペレー
ション数を1に制限する場合)、同期通信スケジューリ
ング部32はノードS1のスケジューリングの後、同じ
種類のノードであるS2を選択せずに、異なる種類のノ
ードR1を選択する。そして、同じ種類のノードS2は
次のスケジュールサイクル以降にスケジューリングされ
るように選択される。すなわち、図18に示すように、
スケジューリングサイクル“2”でこのノードS2のス
ケジューリングが行なわれる。このようにして、先行す
るノードが全てスケジューリングされているノードを順
次スケジューリングすると、図15に示す制約が付加さ
れたグラフから図18に示すスケジューリング結果が得
られる。
In the case of a method of limiting the number of operations by the same type of node within the same scheduling cycle (for example, when the number of operations by the same type of node is limited to 1), the synchronous communication scheduling unit 32 sets the After scheduling, a different type of node R1 is selected without selecting the same type of node S2. Then, the nodes S2 of the same type are selected to be scheduled after the next schedule cycle. That is, as shown in FIG.
The scheduling of this node S2 is performed in the scheduling cycle "2". In this manner, when the nodes in which all preceding nodes are all scheduled are sequentially scheduled, the scheduling result shown in FIG. 18 is obtained from the graph to which the constraint shown in FIG. 15 is added.

【0072】このように、同じスケジューリングサイク
ル内で同じ種類のノードによるオペレーション数を制限
してスケジューリングすることにより、スレッド間のバ
ス幅等を小さくすることができ、合成される論理回路の
回路規模を小さくすることが可能になる。
As described above, by limiting the number of operations by the same type of nodes in the same scheduling cycle and performing scheduling, the bus width between threads can be reduced, and the circuit scale of the synthesized logic circuit can be reduced. It becomes possible to make it smaller.

【0073】再び図4に示す高位合成装置のフローチャ
ートに戻り、ステップS12以降の処理手順の説明を続
ける。ステップS11において作成されたスケジューリ
ング結果に基づいてスレッド毎の動作合成制約情報を生
成する(S12)。たとえば、図19は図17に示すス
ケジューリング結果に基づいて生成されたスレッド毎の
動作制約情報を示している。図19の中の情報11
1”、112”および113”は、それぞれ図5に示す
スレッド111,112および113の動作合成制約情
報を示している。
Returning to the flowchart of the high-level synthesis apparatus shown in FIG. 4 again, the description of the processing procedure after step S12 will be continued. Based on the scheduling result created in step S11, behavioral synthesis constraint information for each thread is generated (S12). For example, FIG. 19 shows the operation constraint information for each thread generated based on the scheduling result shown in FIG. Information 11 in FIG.
1 ″, 112 ″ and 113 ″ indicate behavioral synthesis constraint information of the threads 111, 112 and 113 shown in FIG. 5, respectively.

【0074】スレッド毎動作合成部25は、このように
して生成された動作合成制約情報に基づいてスレッド毎
に動作合成を行ない、論理回路26を生成する(S1
3)。この動作合成は、図13を用いて説明した高位合
成の処理手順と同じであるので、詳細な説明は繰り返さ
ない。
The per-thread behavioral synthesis unit 25 performs behavioral synthesis for each thread based on the behavioral synthesis constraint information generated in this way, and generates a logic circuit 26 (S1).
3). This behavioral synthesis is the same as the processing procedure of the high-level synthesis described with reference to FIG. 13, and therefore, detailed description will not be repeated.

【0075】以上説明したように、本実施の形態におけ
る高位合成装置によれば、ハンドシェイクなしにスレッ
ド間同期通信が可能な動作記述に対して、高速にデータ
通信が可能な論理回路を確実に合成でき、回路規模の縮
小を図ることが可能となった。
As described above, according to the high-level synthesizing apparatus of the present embodiment, a logic circuit capable of high-speed data communication is reliably provided for an operation description capable of inter-thread synchronous communication without handshake. Synthesis was possible, and the circuit scale could be reduced.

【0076】また、スレッド毎に動作合成制約情報を生
成し、各スレッド毎に動作合成を行なうため、スケジュ
ーリング対象を小さくすることが可能となり、スケジュ
ーリングに要する時間を縮小することが可能となった。
Further, since behavioral synthesis constraint information is generated for each thread and behavioral synthesis is performed for each thread, the scheduling target can be reduced, and the time required for scheduling can be reduced.

【0077】また、同じスケジューリングサイクル内で
同じ種類のノードによるオペレーション数を制限せずに
スケジューリングすることにより、スレッド間のバス幅
等が大きくなるが、処理速度に優れた論理回路を合成す
ることが可能になった。
Further, by scheduling without limiting the number of operations by the same type of nodes in the same scheduling cycle, the bus width between threads becomes large, but a logic circuit having an excellent processing speed can be synthesized. It is now possible.

【0078】さらには、同じスケジューリングサイクル
内で同じ種類のノードによるオペレーション数を制限し
てスケジューリングすることにより、スレッド間のバス
幅等を小さくすることができ、合成される論理回路の回
路規模を小さくすることが可能になった。
Furthermore, by limiting the number of operations by the same type of node in the same scheduling cycle and scheduling, the bus width between threads can be reduced, and the circuit size of the synthesized logic circuit can be reduced. It became possible to do.

【0079】(実施の形態2)以下に本発明の実施の形
態2における高位合成装置について説明するが、まず、
実施の形態1における高位合成装置によってパイプライ
ン動作を実行する回路を合成した場合における問題点に
ついて説明する。
(Embodiment 2) A high-level synthesis apparatus according to Embodiment 2 of the present invention will be described below.
A problem in a case where a circuit that executes a pipeline operation is synthesized by the high-level synthesis device according to the first embodiment will be described.

【0080】図20は、動作記述の他の一例を示してい
る。図20に示す動作記述201において、RECV
(IN)はチャネルINを介してデータを受信する記述
であり、その受信データをINDに代入することを示し
ている。次の動作記述202において、PAR文によっ
て複数のプロセスを並列に動作させることを定義してい
る。動作記述202の中の動作記述211〜213は、
それぞれスレッドを示している。
FIG. 20 shows another example of the operation description. In the operation description 201 shown in FIG.
(IN) is a description for receiving data via the channel IN, and indicates that the received data is substituted for IND. The following operation description 202 defines that a plurality of processes are operated in parallel by a PAR statement. The behavior descriptions 211 to 213 in the behavior description 202 are
Each shows a thread.

【0081】スレッド211において、最初の1〜2行
目の記述はそれぞれ、INDに“5”を加算してD1に
代入すること、およびD1からINDを減算してD2に
代入することを示している。また、3〜4行目の記述は
それぞれ、データD1をチャネルCH1を介して送信す
ること、およびデータD2をチャネルCH2を介して送
信することを示している。さらに5行目において、チャ
ネルCH3を介して受信したデータからチャネルCH4
を介して受信したデータを減算し、その減算結果をOU
TDに代入することを示している。
In the thread 211, the first and second lines describe that "5" is added to IND and assigned to D1, and that IND is subtracted from D1 and assigned to D2. I have. The descriptions in the third and fourth lines indicate that the data D1 is transmitted via the channel CH1 and that the data D2 is transmitted via the channel CH2. Further, in the fifth line, the data received through the channel CH3 is converted to the channel CH4.
, And subtracts the result of the subtraction from OU.
This indicates that the value is substituted for TD.

【0082】スレッド212において、最初の1行目の
記述は、チャネルCH1から受信したデータをD3に代
入することを示している。また、2行目において、D3
に“4”を乗算してD4に代入することを示している。
さらに3行目において、データD4をチャネルCH3を
介して送信することを示している。
In the thread 212, the description on the first line indicates that the data received from the channel CH1 is substituted for D3. In the second line, D3
Is multiplied by “4” and assigned to D4.
Further, the third line indicates that the data D4 is transmitted via the channel CH3.

【0083】スレッド213において、最初の1行目の
記述は、チャネルCH2から受信したデータをD5に代
入することを示している。また、2行目において、D5
に“9”を加算してD6に代入することを示している。
さらに3行目において、データD6をチャネルCH4を
介して送信することを示している。
In the thread 213, the description on the first line indicates that the data received from the channel CH2 is substituted for D5. In the second line, D5
Is added to “9” and assigned to D6.
Further, the third line indicates that the data D6 is transmitted via the channel CH4.

【0084】最後の記述203は、データOUTDをチ
ャネルOUTを介して送信することを示している。
The last description 203 indicates that the data OUTD is transmitted via the channel OUT.

【0085】図21および図22は、図20に示す動作
記述から生成された制約条件が付加されたグラフおよび
スケジューリング結果を示しており、スレッド間同期通
信オペレーションスケジューリング部23によって生成
されたものである。図22に示すように、スレッド21
3’内のノードS4がスケジューリングサイクル“2”
にスケジューリングされており、スレッド211’内の
ノードR4がスケジューリングサイクル“4”にスケジ
ューリングされている。そのため、このスケジューリン
グ結果からパイプラインスループットサイクル“1”サ
イクルでパイプライン動作する回路を合成すると、ノー
ドS4が含まれるスレッド213’は毎サイクルノード
S4にあたる動作を行なうようになる。その結果、スレ
ッド211’のノードR4は、スケジューリングサイク
ル“2”で実行されたノードS4の値ではなく、スレッ
ド213’の次のパイプライン動作で実行されるノード
S4(スケジューリングサイクル“3”)の値を受け取
ることになり、誤った値を受信することになる。
FIGS. 21 and 22 show a graph to which the constraints generated from the behavioral description shown in FIG. 20 are added and the scheduling result, and are generated by the inter-thread synchronous communication operation scheduling unit 23. . As shown in FIG.
The node S4 in 3 ′ has the scheduling cycle “2”
, And the node R4 in the thread 211 ′ is scheduled in the scheduling cycle “4”. Therefore, when a circuit that performs a pipeline operation in the pipeline throughput cycle “1” cycle is synthesized based on the scheduling result, the thread 213 ′ including the node S4 performs an operation corresponding to the node S4 every cycle. As a result, the node R4 of the thread 211 ′ is not the value of the node S4 executed in the scheduling cycle “2”, but the node S4 (scheduling cycle “3”) executed in the next pipeline operation of the thread 213 ′. You will receive a value and you will receive an incorrect value.

【0086】本実施の形態における高位合成装置は、パ
イプライン動作を実行する回路の合成に適用されるもの
であり、図3に示すスレッド間同期通信オペレーション
スケジューリング部23の構成および機能のみが異な
る。したがって、重複する構成および機能についての詳
細な説明は繰り返さない。なお、本実施の形態において
スレッド間同期通信オペレーションスケジューリング部
の参照符号を23’として説明する。
The high-level synthesis device according to the present embodiment is applied to synthesis of a circuit that executes a pipeline operation, and differs only in the configuration and function of the inter-thread synchronous communication operation scheduling unit 23 shown in FIG. Therefore, detailed description of the same components and functions will not be repeated. In the present embodiment, the description will be made assuming that the reference numeral of the inter-thread synchronous communication operation scheduling unit is 23 '.

【0087】図23は、本実施の形態における高位合成
装置のスレッド間同期通信オペレーションスケジューリ
ング部23’の概略構成を示す図である。このスレッド
間同期通信オペレーションスケジューリング部23’
は、スケジューリング可能スレッド間同期通信オペレー
ション選択部22から出力された動作記述27の中から
スレッド間の同期通信オペレーションを抽出するための
スレッド間同期通信オペレーション抽出部28、スレッ
ド間同期通信オペレーション抽出部28によって抽出さ
れたスレッド間同期通信オペレーションに基づいてスレ
ッド内の同期通信オペレーション間のエッジを生成する
ためのスレッド内同期通信オペレーション間エッジ生成
部29、スレッド間同期通信オペレーション抽出部28
によって抽出されたスレッド間同期通信オペレーション
に基づいてスレッド間の同期通信オペレーション組間の
エッジを生成するためのスレッド間同期通信オペレーシ
ョン組間エッジ生成部30、スレッド間同期通信オペレ
ーション抽出部28とスレッド内同期通信オペレーショ
ン間エッジ生成部29とスレッド間同期通信オペレーシ
ョン組間エッジ生成部30とによって生成された同期通
信オペレーショングラフの各有向エッジに対して、パイ
プライン化に必要となるスケジューリングサイクル制約
を付加するためのパイプライン化スケジューリングサイ
クル制約付加部51、パイプライン化スケジューリング
サイクル制約付加部51によって付加された制約条件に
基づいて同期通信オペレーションのスケジューリングを
行なうためのパイプライン化同期通信スケジューリング
部52およびパイプライン化同期通信スケジューリング
部52によるスケジューリング結果内のノードのスケジ
ューリングサイクルを調整するためのスケジューリング
サイクル調整部53を含む。
FIG. 23 is a diagram showing a schematic configuration of the inter-thread synchronous communication operation scheduling unit 23 'of the high-level synthesis apparatus according to the present embodiment. This inter-thread synchronous communication operation scheduling unit 23 '
Are an inter-thread synchronous communication operation extracting unit 28 for extracting an inter-thread synchronous communication operation from the operation description 27 output from the schedulable inter-thread synchronous communication operation selecting unit 22, and an inter-thread synchronous communication operation extracting unit 28. Intra-thread synchronous communication operation edge generation unit 29 for generating an edge between synchronous communication operations in a thread based on the inter-thread synchronous communication operation extracted by
An inter-thread synchronous communication operation pair edge generating unit 30, an inter-thread synchronous communication operation extracting unit 28, and an intra-thread synchronous communication operation pair generating unit 30 for generating an edge between the synchronous communication operation pairs between threads based on the extracted inter-thread synchronous communication operation. A scheduling cycle constraint required for pipelining is added to each directed edge of the synchronous communication operation graph generated by the inter-synchronous communication operation edge generation unit 29 and the inter-thread synchronous communication operation inter-group edge generation unit 30. Pipeline scheduling cycle constraint adding unit 51 for performing scheduling of synchronous communication operations based on the constraints added by the pipelined scheduling cycle constraint adding unit 51. Including scheduling cycle adjusting section 53 for adjusting the scheduling cycle of the nodes in the scheduling result by the line of the synchronous communication scheduling unit 52 and the pipelined synchronous communication scheduling unit 52.

【0088】パイプライン化スケジューリングサイクル
制約付加部51は、同期通信オペレーション間のスケジ
ューリングサイクル制約を次式によって算出する。
The pipelined scheduling cycle constraint adding unit 51 calculates a scheduling cycle constraint between synchronous communication operations by the following equation.

【0089】 スレッド内同期通信間スケジューリング制約= |先行実行される同期通信オペレーションのスケジューリングサイクル− 後続実行される同期通信オペレーションのスケジューリングサイクル| ‥‥ (4) スレッド間同期通信スケジューリング制約= パイプラインスループットサイクル ‥‥ (5) パイプラインスループットサイクルとは、何サイクルの
間隔で回路をパイプライン化合成するかを示す値であ
り、設計者によって与えられる。以下の説明において
は、設計者によりパイプラインサイクル“1”が与えら
れたものとする。
Scheduling constraint between intra-thread synchronous communication = | Scheduling cycle of synchronous communication operation to be executed first-Scheduling cycle of synchronous communication operation to be executed || (4) Synchronous communication scheduling constraint between threads = Pipeline throughput cycle ‥‥ (5) The pipeline throughput cycle is a value indicating how many cycles the circuit is pipelined and synthesized, and is given by the designer. In the following description, it is assumed that a pipeline cycle “1” has been given by a designer.

【0090】パイプライン化スケジューリングサイクル
制約付加部51によってスケジューリングサイクル制約
が付加された同期通信オペレーショングラフは、図21
に示す通りとなる。
The synchronous communication operation graph to which the scheduling cycle constraint is added by the pipelined scheduling cycle constraint adding unit 51 is shown in FIG.
It is as shown in.

【0091】パイプライン化同期通信スケジューリング
部52は、パイプライン化スケジューリングサイクル制
約付加部51によって制約条件が付加された同期通信オ
ペレーショングラフを用いて同期通信のスケジューリン
グを行なう。このスケジューリングには、図16を用い
て説明したASAPスケジューリング方法が用いられ、
有効エッジに付加されたスケジューリング制約を満たす
ように同期通信オペレーションノードがスケジューリン
グされる。図22は、このスケジューリングによって生
成されたスケジューリング結果を示している。なお、こ
のスケジューリングの際、上述したように同じスケジュ
ーリングサイクル内で同じ種類のノードによるオペレー
ション数を制限する方法と、制限しない方法とを選択し
て行なうことができる。
The pipelined synchronous communication scheduling section 52 schedules synchronous communication using the synchronous communication operation graph to which the constraint conditions have been added by the pipelined scheduling cycle constraint adding section 51. The ASAP scheduling method described with reference to FIG. 16 is used for this scheduling.
The synchronous communication operation node is scheduled to satisfy the scheduling constraint added to the valid edge. FIG. 22 shows a scheduling result generated by this scheduling. At the time of this scheduling, a method of limiting the number of operations by the same type of nodes in the same scheduling cycle as described above and a method of not limiting can be performed.

【0092】図24は、パイプライン化同期通信スケジ
ューリング部52がスケジューリング結果内のノードの
スケジューリングサイクルを調整する手順を示すフロー
チャートである。まず、パイプライン化同期通信スケジ
ューリング部52は、同期通信オペレーショングラフ内
のスレッド間同期通信間スケジューリング制約が付加さ
れたエッジについて、チェックされていないエッジがあ
るか否かを判定する(S50)。
FIG. 24 is a flowchart showing a procedure in which the pipelined synchronous communication scheduling unit 52 adjusts the scheduling cycle of the node in the scheduling result. First, the pipelined synchronous communication scheduling unit 52 determines whether there is any unchecked edge in the synchronous communication operation graph for the edge to which the inter-thread synchronous communication scheduling constraint is added (S50).

【0093】パイプライン化同期通信スケジューリング
部52は、チェックされていないエッジがないと判定し
た場合(S50,No)、処理を終了する。また、パイ
プライン化同期通信スケジューリング部52は、チェッ
クされていないエッジがあると判定した場合(S50、
Yes)、そのエッジ両端のスケジューリングサイクル
差を計算する(S51)。そして、そのスケジューリン
グサイクル差がパイプラインスループットサイクルと同
じであるか否かを判定する(S52)。
If it is determined that there is no unchecked edge (S50, No), the pipelined synchronous communication scheduling unit 52 ends the processing. When the pipelined synchronous communication scheduling unit 52 determines that there is an edge that has not been checked (S50,
Yes), the scheduling cycle difference between both ends of the edge is calculated (S51). Then, it is determined whether or not the scheduling cycle difference is the same as the pipeline throughput cycle (S52).

【0094】スケジューリングサイクル差がパイプライ
ンスループットサイクルと同じであれば(S52,Ye
s)、ステップS50へ戻り処理を繰り返す。また、ス
ケジューリングサイクル差がパイプラインスループット
サイクルと異なれば(S52,No)、パイプライン化
同期通信スケジューリング部52は、SENDノードの
スケジューリングサイクルを調整し(S53)、ステッ
プS50へ戻って処理を繰り返す。
If the scheduling cycle difference is the same as the pipeline throughput cycle (S52, Ye
s), returning to step S50 and repeating the process. If the scheduling cycle difference is different from the pipeline throughput cycle (S52, No), the pipelined synchronous communication scheduling unit 52 adjusts the scheduling cycle of the SEND node (S53), returns to step S50, and repeats the processing.

【0095】図25は、パイプライン化同期通信スケジ
ューリング部52によってスケジューリングサイクルが
調整された後の同期通信オペレーショングラフを示して
いる。図22においてノードS1とR1との間、ノード
S2とR2との間、ノードS3とR3との間のスケジュ
ーリングサイクルの差はそれぞれ“1”であるので、図
25に示すようにスケジューリングサイクルの調整は行
なわれない。しかし、図22においてノードS4とR4
との間のスケジューリングサイクルの差は“2”である
ので、スケジューリングサイクルの調整が行なわれ、ノ
ードS4がスケジューリングサイクル“3”に移動され
る。
FIG. 25 shows a synchronous communication operation graph after the scheduling cycle is adjusted by the pipelined synchronous communication scheduling unit 52. In FIG. 22, the difference between the scheduling cycles between the nodes S1 and R1, between the nodes S2 and R2, and between the nodes S3 and R3 is "1". Therefore, as shown in FIG. Is not performed. However, in FIG. 22, nodes S4 and R4
Since the difference between the scheduling cycle and the scheduling cycle is “2”, the scheduling cycle is adjusted, and the node S4 is moved to the scheduling cycle “3”.

【0096】図26は、スケジューリングサイクル調整
部53の処理手順を説明するためのフローチャートであ
る。スケジューリングサイクル調整部53は、パイプラ
イン化同期通信スケジューリング部52によってスケジ
ューリングサイクルが調整された後の同期通信オペレー
ショングラフに対して、さらに各スレッド毎にスケジュ
ーリングサイクルの調整を行なって、パイプライン処理
が可能な回路に変更する。
FIG. 26 is a flowchart for explaining the processing procedure of the scheduling cycle adjusting unit 53. The scheduling cycle adjusting unit 53 adjusts the scheduling cycle for each thread with respect to the synchronous communication operation graph after the scheduling cycle is adjusted by the pipelined synchronous communication scheduling unit 52, thereby enabling pipeline processing. Change to a proper circuit.

【0097】まず、スケジューリングサイクル調整部5
3は、スケジューリングサイクル“1”にノードがスケ
ジューリングされているか否かを判定する(S60)。
スケジューリングサイクル“1”にノードがスケジュー
リングされていれば(S60,Yes)、スケジューリ
ングサイクル調整部53は処理を終了する。また、スケ
ジューリングサイクル“1”にノードがスケジューリン
グされていなければ(S60,No)、スケジューリン
グサイクル調整部53は当該スレッド内のノードのスケ
ジューリングサイクルから“1”を減算する(S6
1)。すなわち、当該スレッド内の各ノードを1つ上の
スケジューリングサイクルにスケジューリングし直す。
そして、ステップS60へ戻り処理を繰り返す。
First, the scheduling cycle adjusting unit 5
No. 3 determines whether or not the node is scheduled in the scheduling cycle “1” (S60).
If the node has been scheduled in the scheduling cycle “1” (S60, Yes), the scheduling cycle adjusting unit 53 ends the processing. If the node is not scheduled in the scheduling cycle “1” (S60, No), the scheduling cycle adjusting unit 53 subtracts “1” from the scheduling cycle of the node in the thread (S6).
1). That is, each node in the thread is rescheduled to the next higher scheduling cycle.
Then, the process returns to step S60 to repeat the processing.

【0098】図27は、スケジューリングサイクル調整
部53によって、図25に示す同期通信オペレーション
グラフのスケジューリングサイクルが調整された後のグ
ラフを示している。図25においてノードR1およびS
3がそれぞれスケジューリングサイクル“2”および
“3”にスケジューリングされていたが、図27におい
てはそれぞれスケジューリングサイクル“1”および
“2”にスケジューリングされている。同様に、図25
においてノードR2およびS4がそれぞれスケジューリ
ングサイクル“2”および“3”にスケジューリングさ
れていたが、図27においてはそれぞれスケジューリン
グサイクル“1”および“2”にスケジューリングされ
ている。
FIG. 27 shows a graph after the scheduling cycle of the synchronous communication operation graph shown in FIG. 25 has been adjusted by the scheduling cycle adjusting unit 53. In FIG. 25, nodes R1 and S
27 has been scheduled in scheduling cycles "2" and "3", respectively, but in FIG. 27, it has been scheduled in scheduling cycles "1" and "2", respectively. Similarly, FIG.
, The nodes R2 and S4 are scheduled in the scheduling cycles "2" and "3", respectively. However, in FIG. 27, the nodes R2 and S4 are scheduled in the scheduling cycles "1" and "2", respectively.

【0099】図3に示すスレッド毎動作合成制約情報生
成部24は、以上の処理によって求めれられたスケジュ
ーリング結果から動作合成制約情報を生成する。そし
て、図3に示すスレッド毎動作合成部25は、スレッド
毎に動作合成を行なう。この動作合成の際、スレッド毎
動作合成部25はパイプラインスループットサイクルも
考慮して動作合成を行ない、指定されたパイプラインス
ループットで動作を行なうように回路を合成する。
The per-thread behavioral synthesis constraint information generator 24 shown in FIG. 3 generates behavioral synthesis constraint information from the scheduling result obtained by the above processing. Then, the per-thread behavioral synthesis unit 25 shown in FIG. 3 performs behavioral synthesis for each thread. In this behavioral synthesis, the per-thread behavioral synthesis unit 25 performs behavioral synthesis in consideration of the pipeline throughput cycle, and synthesizes a circuit so as to perform the operation at the designated pipeline throughput.

【0100】以上説明したように、本実施の形態におけ
る高位合成装置によれば、パイプラインスループットサ
イクルに基づいて同期通信オペレーショングラフのスケ
ジューリングサイクルを調整するようにしたので、誤動
作を起こさないようにパイプライン動作を行なう回路を
合成することが可能になった。
As described above, according to the high-level synthesis device of the present embodiment, the scheduling cycle of the synchronous communication operation graph is adjusted based on the pipeline throughput cycle. It has become possible to synthesize circuits that perform line operations.

【0101】今回開示された実施の形態は、すべての点
で例示であって制限的なものではないと考えられるべき
である。本発明の範囲は上記した説明ではなくて特許請
求の範囲によって示され、特許請求の範囲と均等の意味
および範囲内でのすべての変更が含まれることが意図さ
れる。
The embodiments disclosed this time are to be considered in all respects as illustrative and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

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

【図1】本発明の高位合成装置の外観例を示す図であ
る。
FIG. 1 is a diagram showing an example of the appearance of a high-level synthesis device according to the present invention.

【図2】本発明の高位合成装置の構成を示すブロック図
である。
FIG. 2 is a block diagram illustrating a configuration of a high-level synthesis device according to the present invention.

【図3】本発明の実施の形態1における高位合成装置の
概略構成を説明するためのブロック図である。
FIG. 3 is a block diagram illustrating a schematic configuration of a high-level synthesis device according to the first embodiment of the present invention.

【図4】本発明の実施の形態1における高位合成装置の
処理手順を説明するためのフローチャートである。
FIG. 4 is a flowchart illustrating a processing procedure of the high-level synthesis device according to the first embodiment of the present invention.

【図5】本発明の実施の形態1における高位合成装置が
処理する動作記述の一例を示す図である。
FIG. 5 is a diagram illustrating an example of an operation description processed by the high-level synthesis device according to the first embodiment of the present invention.

【図6】図3に示すスレッド間同期通信オペレーション
スケジューリング部23をさらに詳細に説明するための
ブロック図である。
FIG. 6 is a block diagram for explaining the inter-thread synchronous communication operation scheduling unit 23 shown in FIG. 3 in further detail;

【図7】図3に示すスレッド間同期通信オペレーション
スケジューリング部23の処理手順をさらに詳細に説明
するためのフローチャートである。
7 is a flowchart for explaining the processing procedure of the inter-thread synchronous communication operation scheduling unit 23 shown in FIG. 3 in further detail;

【図8】図6に示すスレッド間同期通信オペレーション
抽出部28によって生成された同期通信オペレーション
グラフを示す図である。
8 is a diagram showing a synchronous communication operation graph generated by the inter-thread synchronous communication operation extraction unit 28 shown in FIG.

【図9】図6に示すスレッド内同期通信オペレーション
間エッジ生成部29によって有向エッジが付加された同
期通信オペレーショングラフを示す図である。
9 is a diagram showing a synchronous communication operation graph to which a directed edge has been added by the intra-thread synchronous communication operation inter-edge generating unit 29 shown in FIG. 6;

【図10】図6に示すスレッド間同期通信オペレーショ
ン組間エッジ生成部30によって有向エッジが付加され
た同期通信オペレーショングラフを示す図である。
10 is a diagram illustrating a synchronous communication operation graph to which a directed edge is added by the inter-thread synchronous communication operation inter-set edge generation unit 30 illustrated in FIG. 6;

【図11】図6に示すスケジューリングサイクル制約付
加部31をさらに詳細に説明するためのブロック図であ
る。
11 is a block diagram for explaining the scheduling cycle constraint adding unit 31 shown in FIG. 6 in further detail.

【図12】図6に示すスケジューリングサイクル制約付
加部31の処理手順をさらに詳細に説明するためのフロ
ーチャートである。
12 is a flowchart for explaining the processing procedure of the scheduling cycle constraint adding unit 31 shown in FIG. 6 in further detail.

【図13】図11に示すスレッド毎動作合成部35をさ
らに詳細に説明するためのブロック図である。
13 is a block diagram for explaining the thread-by-thread behavioral synthesis unit 35 shown in FIG. 11 in further detail;

【図14】図11に示すスレッド毎動作合成部35によ
るスレッド毎のスケジューリング結果を示す図である。
14 is a diagram illustrating a result of scheduling for each thread by the per-thread operation synthesizing unit 35 illustrated in FIG. 11;

【図15】図11に示す同期通信オペレーション間スケ
ジューリングサイクル制約抽出部36によって制約が付
加された同期通信オペレーショングラフを示す図であ
る。
FIG. 15 is a diagram showing a synchronous communication operation graph to which a constraint has been added by the synchronous cycle between synchronous communication operation scheduling extractor shown in FIG. 11;

【図16】図6に示す同期通信スケジューリング部32
の処理手順を説明するためのフローチャートである。
FIG. 16 shows a synchronous communication scheduling unit 32 shown in FIG.
6 is a flowchart for explaining the processing procedure of FIG.

【図17】同じ種類のノードによるオペレーション数を
制限せずにスケジューリングした場合のスケジューリン
グ結果を示す図である。
FIG. 17 is a diagram illustrating a scheduling result when scheduling is performed without limiting the number of operations by the same type of nodes.

【図18】同じ種類のノードによるオペレーション数を
制限してスケジューリングした場合のスケジューリング
結果を示す図である。
FIG. 18 is a diagram illustrating a scheduling result when scheduling is performed with the number of operations performed by nodes of the same type limited.

【図19】図3に示すスレッド毎動作合成制約情報生成
部24によって生成された動作合成制約情報を示す図で
ある。
FIG. 19 is a diagram illustrating behavioral synthesis constraint information generated by a per-thread behavioral synthesis constraint information generation unit 24 shown in FIG. 3;

【図20】本発明の実施の形態2における高位合成装置
が処理する動作記述の一例を示す図である。
FIG. 20 is a diagram illustrating an example of an operation description processed by the high-level synthesis device according to the second embodiment of the present invention.

【図21】パイプライン化スケジューリングサイクル制
約付加部51によって制約が付加された同期通信オペレ
ーショングラフを示す図である。
FIG. 21 is a diagram showing a synchronous communication operation graph to which constraints are added by a pipelined scheduling cycle constraint adding unit 51.

【図22】パイプライン化同期通信スケジューリング部
52によってスケジューリングサイクルの調整が行なわ
れる前のスケジューリング結果を示す図である。
FIG. 22 is a diagram illustrating a scheduling result before a scheduling cycle is adjusted by a pipelined synchronous communication scheduling unit 52;

【図23】本発明の実施の形態2におけるスレッド間同
期通信オペレーションスケジューリング部23’を詳細
に説明するためのブロック図である。
FIG. 23 is a block diagram for describing in detail an inter-thread synchronous communication operation scheduling unit 23 ′ according to the second embodiment of the present invention.

【図24】パイプライン化同期通信スケジューリング部
52の処理手順を説明するためのフローチャートであ
る。
24 is a flowchart illustrating a processing procedure of a pipelined synchronous communication scheduling unit 52. FIG.

【図25】パイプライン化同期通信スケジューリング部
52によってスケジューリングサイクルの調整が行なわ
れた後のスケジューリング結果を示す図である。
FIG. 25 is a diagram showing a scheduling result after the scheduling cycle is adjusted by the pipelined synchronous communication scheduling unit 52.

【図26】スケジューリングサイクル調整部53の処理
手順を説明するためのフローチャートである。
FIG. 26 is a flowchart illustrating a processing procedure of a scheduling cycle adjusting unit 53.

【図27】スケジュルーリングサイクル調整部53によ
ってスケジューリングサイクルが調整された後のスケジ
ューリング結果を示す図である。
FIG. 27 is a diagram showing a scheduling result after a scheduling cycle is adjusted by a scheduling rule adjusting unit 53;

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

1 コンピュータ本体 2 グラフィックディスプレイ装置 3 磁気テープ装置 4 磁気テープ 5 キーボード 6 マウス 7 CD−ROM装置 8 CD−ROM 9 通信モデム 10 CPU 11 ROM 12 RAM 13 ハードディスク 22 スケジューリング可能スレッド間同期通信オペレ
ーション選択部 23,23’ スレッド間同期通信オペレーションスケ
ジューリング部 24 スレッド毎動作合成制約情報生成部 25 スレッド毎動作合成部 28 スレッド間同期通信オペレーション抽出部 29 スレッド内同期通信オペレーション間エッジ生成
部 30 スレッド間同期通信オペレーション組間エッジ生
成部 31 スケジューリングサイクル制約付加部 32 同期通信スケジューリング部 35 スレッド毎動作合成部 36 同期通信オペレーション間スケジューリングサイ
クル制約抽出部 41 CDFG生成部 42 スケジューリング部 43 アロケーション部 51 パイプライン化スケジューリングサイクル制約付
加部 52 パイプライン化同期通信スケジューリング部 53 スケジューリングサイクル調整部
Reference Signs List 1 computer main body 2 graphic display device 3 magnetic tape device 4 magnetic tape 5 keyboard 6 mouse 7 CD-ROM device 8 CD-ROM 9 communication modem 10 CPU 11 ROM 12 RAM 13 hard disk 22 schedulable inter-thread synchronous communication operation selecting unit 23, 23 'Synchronous communication operation scheduling unit between threads 24 Behavioral synthesis constraint information generation unit for each thread 25 Operational synthesis unit for each thread 28 Synchronous communication operation extraction unit between threads 29 Intra-thread synchronous communication operation edge generation unit 30 Inter-thread synchronous communication operation group Edge generating unit 31 Scheduling cycle constraint adding unit 32 Synchronous communication scheduling unit 35 Thread-based operation synthesizing unit 36 Between synchronous communication operations Scheduling cycle constraint extracting unit 41 CDFG generation unit 42 scheduling unit 43 allocator 51 pipelined scheduling cycle constraint addition section 52 pipelined synchronous communication scheduling unit 53 scheduling cycle adjustment unit

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】 入力された動作記述からハンドシェイク
なしにスレッド間同期通信が可能な動作記述を含むスレ
ッドを抽出するための抽出手段と、 前記抽出手段によって抽出されたスレッドに含まれる動
作記述に基づいてスレッド間同期通信オペレーションの
スケジューリングを行なうための同期通信スケジューリ
ング手段と、 前記同期通信スケジューリング手段によってスケジュー
リングされたスレッド間同期通信オペレーションに基づ
いて前記スレッド毎に動作合成制約情報を生成するため
の制約情報生成手段と、 前記制約情報生成手段によって生成された動作合成制約
情報に基づいて前記スレッド毎の動作合成をおこなうた
めの動作合成手段とを含む高位合成装置。
An extraction unit for extracting a thread including an operation description capable of performing inter-thread synchronous communication without handshake from an input operation description, and an operation description included in the thread extracted by the extraction unit Synchronous communication scheduling means for scheduling an inter-thread synchronous communication operation on the basis of: a constraint for generating behavioral synthesis constraint information for each thread based on the inter-thread synchronous communication operation scheduled by the synchronous communication scheduling means A high-level synthesis apparatus including: an information generation unit; and a behavior synthesis unit for performing behavior synthesis for each thread based on the behavior synthesis constraint information generated by the constraint information generation unit.
【請求項2】 前記同期通信スケジューリング手段は、
前記抽出手段によって抽出されたスレッドに含まれるス
レッド間同期通信オペレーションを抽出するためのスレ
ッド間同期通信オペレーション抽出手段と、 前記スレッド間同期通信オペレーション抽出手段によっ
て抽出されたスレッド間同期通信オペレーションのスレ
ッド内における有向エッジを生成するためのスレッド内
同期通信オペレーション間エッジ生成手段と、 前記スレッド間同期通信オペレーション抽出手段によっ
て抽出されたスレッド間同期通信オペレーションのスレ
ッド間における有向エッジを生成するためのスレッド間
同期通信オペレーション組間エッジ生成手段と、 前記スレッド内同期通信オペレーション間エッジ生成手
段および前記スレッド間同期通信オペレーション組間エ
ッジ生成手段によって生成された有向エッジにスケジュ
ーリングサイクル制約を付加するためのスケジューリン
グサイクル制約付加手段と、 前記スケジューリングサイクル制約付加手段によって付
加されたスケジューリングサイクル制約に基づいてスレ
ッド間同期通信オペレーションのスケジューリングを行
なうためのスレッド間同期通信スケジューリング手段と
を含む、請求項1記載の高位合成装置。
2. The synchronous communication scheduling means,
An inter-thread synchronous communication operation extracting means for extracting an inter-thread synchronous communication operation included in the thread extracted by the extracting means; and a thread of the inter-thread synchronous communication operation extracted by the inter-thread synchronous communication operation extracting means. And a thread for generating a directed edge between threads of the inter-thread synchronous communication operation extracted by the inter-thread synchronous communication operation extracting means. Inter-synchronous communication operation inter-set edge generation means; and a directed edge generated by the intra-thread synchronous communication operation inter-edge generation means and the inter-thread synchronous communication operation inter-set edge generation means. Scheduling cycle constraint adding means for adding a scheduling cycle constraint to; and inter-thread synchronous communication scheduling means for scheduling an inter-thread synchronous communication operation based on the scheduling cycle constraint added by the scheduling cycle constraint adding means. The high-level synthesis device according to claim 1, comprising:
【請求項3】 前記スケジューリングサイクル制約付加
手段は、スレッド毎に動作記述を動作合成するためのス
レッド毎動作合成手段と、 前記スレッド毎動作合成手段による動作合成結果に基づ
いて同期通信オペレーション間のスケジューリングサイ
クル制約を抽出するためのスケジューリングサイクル制
約抽出手段とを含む、請求項2記載の高位合成装置。
3. The scheduling cycle constraint adding means includes: a per-thread behavior synthesizing means for behaviorally synthesizing a behavior description for each thread; and scheduling between synchronous communication operations based on a behavioral synthesis result by the per-thread behavior synthesis means. 3. The high-level synthesis device according to claim 2, further comprising: a scheduling cycle constraint extracting unit for extracting a cycle constraint.
【請求項4】 前記スケジューリングサイクル制約抽出
手段は、前記スレッド毎動作合成手段によって生成され
たスレッド内におけるノードのスケジューリングサイク
ルの差からスレッド内同期通信間スケジューリング制約
を抽出するためのスレッド内同期通信間スケジューリン
グ制約抽出手段と、 スレッド間における同期通信オペレーションに対して所
定値をスレッド間同期通信間スケジューリング制約とし
て抽出するスレッド間同期通信スケジューリング制約抽
出手段とを含む、請求項3記載の高位合成装置。
4. The method according to claim 1, wherein said scheduling cycle constraint extracting means extracts an intra-thread synchronous communication scheduling constraint from a difference in a scheduling cycle of a node in a thread generated by said per-thread operation synthesizing means. 4. The high-level synthesis apparatus according to claim 3, further comprising: scheduling constraint extracting means; and inter-thread synchronous communication scheduling constraint extracting means for extracting a predetermined value for synchronous communication operation between threads as an inter-thread synchronous communication scheduling constraint.
【請求項5】 前記スレッド間同期通信スケジューリン
グ手段は、同じスケジューリングサイクル内で同じ種類
のノードによるオペレーション数を制限して前記スレッ
ド間同期通信オペレーションのスケジューリングを行な
う、請求項2〜4のいずれかに記載の高位合成装置。
5. The inter-thread synchronous communication scheduling means according to claim 2, wherein said inter-thread synchronous communication scheduling means performs scheduling of said inter-thread synchronous communication operation by limiting the number of operations by the same type of node within the same scheduling cycle. A high-level synthesizer as described.
【請求項6】 前記同期通信スケジューリング手段は、
前記抽出手段によって抽出されたスレッドに含まれるス
レッド間同期通信オペレーションを抽出するためのスレ
ッド間同期通信オペレーション抽出手段と、 前記スレッド間同期通信オペレーション抽出手段によっ
て抽出されたスレッド間同期通信オペレーションのスレ
ッド内における有向エッジを生成するためのスレッド内
同期通信オペレーション間エッジ生成手段と、 前記スレッド間同期通信オペレーション抽出手段によっ
て抽出されたスレッド間同期通信オペレーションのスレ
ッド間における有向エッジを生成するためのスレッド間
同期通信オペレーション組間エッジ生成手段と、 前記スレッド内同期通信オペレーション間エッジ生成手
段および前記スレッド間同期通信オペレーション組間エ
ッジ生成手段によって生成された有向エッジにパイプラ
インスループットサイクルを考慮してスケジューリング
サイクル制約を付加するためのパイプライン化スケジュ
ーリングサイクル制約付加手段と、 前記パイプライン化スケジューリングサイクル制約付加
手段によって付加されたスケジューリングサイクル制約
に基づいてスレッド間同期通信オペレーションのスケジ
ューリングを行い、前記パイプラインスループットサイ
クルを考慮してスケジューリング結果のスケジューリン
グサイクルを調整するためのパイプライン化同期通信ス
ケジューリング手段とを含む、請求項1記載の高位合成
装置。
6. The synchronous communication scheduling means,
An inter-thread synchronous communication operation extracting means for extracting an inter-thread synchronous communication operation included in the thread extracted by the extracting means; and a thread of the inter-thread synchronous communication operation extracted by the inter-thread synchronous communication operation extracting means. And a thread for generating a directed edge between threads of the inter-thread synchronous communication operation extracted by the inter-thread synchronous communication operation extracting means. Inter-synchronous communication operation inter-set edge generation means; and a directed edge generated by the intra-thread synchronous communication operation inter-edge generation means and the inter-thread synchronous communication operation inter-set edge generation means. Pipeline scheduling cycle constraint adding means for adding a scheduling cycle constraint in consideration of a pipeline throughput cycle to a thread, and inter-thread synchronous communication based on the scheduling cycle constraint added by the pipelined scheduling cycle constraint adding means. 2. The high-level synthesis apparatus according to claim 1, further comprising: a pipelined synchronous communication scheduling unit for performing operation scheduling and adjusting a scheduling cycle of a scheduling result in consideration of the pipeline throughput cycle.
【請求項7】 前記パイプライン化同期通信スケジュー
リング手段は、前記スケジューリング結果内の送信を示
すノードと受信を示すノードとのスケジューリングサイ
クルの差が前記パイプラインスループットサイクルとな
るようにスケジューリングサイクルを調整する、請求項
6記載の高位合成装置。
7. The pipelined synchronous communication scheduling means adjusts a scheduling cycle so that a difference in a scheduling cycle between a node indicating transmission and a node indicating reception in the scheduling result becomes the pipeline throughput cycle. The high-level synthesis apparatus according to claim 6, wherein
【請求項8】 前記パイプライン化同期通信スケジュー
リング手段は、同じスケジューリングサイクル内で同じ
種類のノードによるオペレーション数を制限して前記ス
レッド間同期通信オペレーションのスケジューリングを
行なう、請求項6または7記載の高位合成装置。
8. The high-level scheduling method according to claim 6, wherein said pipelined synchronous communication scheduling means performs scheduling of said inter-thread synchronous communication operation by limiting the number of operations by the same type of node within the same scheduling cycle. Synthesizer.
【請求項9】 入力された動作記述からハンドシェイク
なしにスレッド間同期通信が可能な動作記述を含むスレ
ッドを抽出するステップと、 前記抽出されたスレッドに含まれる動作記述に基づいて
スレッド間同期通信オペレーションのスケジューリング
を行なうステップと、 前記スケジューリングされたスレッド間同期通信オペレ
ーションに基づいて前記スレッド毎に動作合成制約情報
を生成するステップと、 前記生成された動作合成制約情報に基づいて前記スレッ
ド毎の動作合成を行なうステップとを含む高位合成方
法。
9. A step of extracting a thread including an operation description capable of performing inter-thread synchronous communication without handshaking from an input operation description, and an inter-thread synchronous communication based on the operation description included in the extracted thread. Performing operation scheduling; generating behavioral synthesis constraint information for each thread based on the scheduled inter-thread synchronous communication operation; and operating each thread based on the generated behavioral synthesis constraint information. Performing the synthesis.
【請求項10】 入力された動作記述からハンドシェイ
クなしにスレッド間同期通信が可能な動作記述を含むス
レッドを抽出するステップと、 前記抽出されたスレッドに含まれる動作記述に基づいて
スレッド間同期通信オペレーションのスケジューリング
を行なうステップと、 前記スケジューリングされたスレッド間同期通信オペレ
ーションに基づいて前記スレッド毎に動作合成制約情報
を生成するステップと、 前記生成された動作合成制約情報に基づいて前記スレッ
ド毎の動作合成を行なうステップとを含む高位合成プロ
グラムを記録した媒体。
10. A step of extracting, from an input operation description, a thread including an operation description capable of performing inter-thread synchronous communication without handshake, and an inter-thread synchronous communication based on the operation description included in the extracted thread. Performing operation scheduling; generating behavioral synthesis constraint information for each thread based on the scheduled inter-thread synchronous communication operation; and operating each thread based on the generated behavioral synthesis constraint information. Recording a high-level synthesis program including a step of performing synthesis.
JP13052299A 1998-06-04 1999-05-11 High level synthesis equipment Expired - Fee Related JP3763700B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13052299A JP3763700B2 (en) 1998-06-04 1999-05-11 High level synthesis equipment

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP15601098 1998-06-04
JP10-156010 1998-06-04
JP13052299A JP3763700B2 (en) 1998-06-04 1999-05-11 High level synthesis equipment

Publications (2)

Publication Number Publication Date
JP2000057180A true JP2000057180A (en) 2000-02-25
JP3763700B2 JP3763700B2 (en) 2006-04-05

Family

ID=26465634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13052299A Expired - Fee Related JP3763700B2 (en) 1998-06-04 1999-05-11 High level synthesis equipment

Country Status (1)

Country Link
JP (1) JP3763700B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129367A (en) * 2007-11-27 2009-06-11 Nec Corp Behavioral synthesis system, behavioral synthesis method, and program for behavioral synthesis
JP2009223558A (en) * 2008-03-14 2009-10-01 Nec Corp Motion composition device, motion composition method and program
JP2010237858A (en) * 2009-03-30 2010-10-21 Sharp Corp High-level synthesis apparatus, high-level synthesis method, method for manufacturing semiconductor integrated circuit, control program, and readable storage medium
US8601413B2 (en) 2012-01-25 2013-12-03 Fujitsu Semiconductor Limited High-level synthesis device, high-level synthesis method, high-level synthesis program, and integrated circuit design method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011180841A (en) 2010-03-01 2011-09-15 Ricoh Co Ltd Semiconductor design support apparatus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129367A (en) * 2007-11-27 2009-06-11 Nec Corp Behavioral synthesis system, behavioral synthesis method, and program for behavioral synthesis
JP2009223558A (en) * 2008-03-14 2009-10-01 Nec Corp Motion composition device, motion composition method and program
JP2010237858A (en) * 2009-03-30 2010-10-21 Sharp Corp High-level synthesis apparatus, high-level synthesis method, method for manufacturing semiconductor integrated circuit, control program, and readable storage medium
US8601413B2 (en) 2012-01-25 2013-12-03 Fujitsu Semiconductor Limited High-level synthesis device, high-level synthesis method, high-level synthesis program, and integrated circuit design method

Also Published As

Publication number Publication date
JP3763700B2 (en) 2006-04-05

Similar Documents

Publication Publication Date Title
US5764951A (en) Methods for automatically pipelining loops
JP3835754B2 (en) Integrated circuit design method and integrated circuit designed thereby
US8302041B1 (en) Implementation flow for electronic circuit designs using choice networks
JP4492803B2 (en) Behavioral synthesis apparatus and program
US7152218B2 (en) Behavioral synthesis system, behavioral synthesis method, control program, readable recording medium, logic circuit production method, and logic circuit
JP2003150657A (en) High order synthesis method and high order synthesizer
US8117603B2 (en) Operation synthesis system
JP2000057180A (en) High-order synthesizing device, its method, and medium for recording high-order synthesizing program
US6449763B1 (en) High-level synthesis apparatus, high level synthesis method, and recording medium carrying a program for implementing the same
JP2008204341A (en) Interface composite device
US20040143813A1 (en) System development supporting apparatus, system development supporting method, and computer-readable recorded medium
Ku et al. Synthesis of asics with hercules and hebe
JP2002222228A (en) High order synthesizing system and high order synthesizing method
JP4891807B2 (en) High level synthesis apparatus and high level synthesis method
JP5229716B2 (en) Behavioral synthesis system, behavioral synthesis method, and behavioral synthesis program
JP2004013227A (en) Simulation device and simulation model generation program
JP2006155448A (en) Data processor and method for designing data processor
JP2953431B2 (en) High-level synthesis device and recording medium thereof
US8136061B2 (en) Method of logic circuit synthesis and design using a dynamic circuit library
JP5444784B2 (en) Context creation program, compiler apparatus, and context creation method
JP2006011840A (en) Integrated system
US6237125B1 (en) High-level synthesis method including processing for optimizing arithmetic sequence of an operation string
JP2009122812A (en) System, method, and program for behavioral synthesis
JP2000322458A (en) Optimizing processing method for logic circuit and logic design system using the same
JP2000187681A (en) High-order synthesizing method, its device and medium for recording high-order synthesizing program

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050331

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051006

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060117

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100127

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110127

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120127

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees