JP2010165334A - High-level synthesis apparatus - Google Patents

High-level synthesis apparatus Download PDF

Info

Publication number
JP2010165334A
JP2010165334A JP2009141173A JP2009141173A JP2010165334A JP 2010165334 A JP2010165334 A JP 2010165334A JP 2009141173 A JP2009141173 A JP 2009141173A JP 2009141173 A JP2009141173 A JP 2009141173A JP 2010165334 A JP2010165334 A JP 2010165334A
Authority
JP
Japan
Prior art keywords
latency
path
module
level synthesis
adjustment
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.)
Withdrawn
Application number
JP2009141173A
Other languages
Japanese (ja)
Inventor
Takumi Komori
匠 小守
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009141173A priority Critical patent/JP2010165334A/en
Publication of JP2010165334A publication Critical patent/JP2010165334A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To automatically execute latency adjustment between modules when the latency of a certain module is changed when constituting a plurality of modules. <P>SOLUTION: A high-level synthesis apparatus 1 performs high-level synthesis processing by inputting behavioral description to output HDL description. The high-level synthesis apparatus is provided with: a latency adjustment path specification part 201 which specifies a latency adjustment part in the behavioral description; a latency adjustment path extraction part 202 which extracts a connection relation between an input and an output from the specified latency adjustment part to input and the modules; a behavioral synthesis part 203 which executes the behavior synthesis of the extracted modules; a latency information extraction part 204 which extracts latency information about each module according to results of the behavior synthesis part 203; a latency calculation part 205 which calculates a latency value inserted into the specified latency adjustment part on the basis of the extracted latency information; and a latency insertion part 206 which inserts the calculated latency value into the HDL description. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、高位合成装置、方法及びプログラムに関し、特に、高位合成時に動作記述におけるモジュールのレイテンシを解析し、ツールが自動的にモジュール間のレイテンシ方法を調整し、モジュールのスループットを最適化する技術に関する。   The present invention relates to a high-level synthesis apparatus, method, and program, and in particular, a technique for analyzing module latency in a behavioral description during high-level synthesis and automatically adjusting the latency method between modules and optimizing module throughput. About.

高位合成はC言語ベースによる回路設計技術である。C言語ベース設計は従来の Verilog/VHDLなどのHDL(Hardware Description Language)よりも記述抽象度が高く、設計効率の向上が期待されている。高位合成設計では、ディレクティブ(ソースコード上指定)によるモジュールのレイテンシ(入力から出力までの遅延)設計ができる。周波数upによる再利用の際、手間をかけずに目標スペック(レイテンシ)を満たしたモジュールを自動生成できる。しかし、周波数upによる再利用は、モジュールのゲート規模/タイミングの影響により、目標スペックを満たせない場合もある。目標スペックを満たせない場合は、レイテンシの再設計(ディレクティブ再指定)が必要となる。   High-level synthesis is a C-based circuit design technique. C language-based design has higher description abstraction than conventional HDL (Hardware Description Language) such as Verilog / VHDL, and is expected to improve design efficiency. In high-level synthesis design, module latency (delay from input to output) can be designed by directives (specified in the source code). When reusing with frequency up, a module that satisfies the target specification (latency) can be automatically generated without much effort. However, reuse by frequency up may not meet the target specifications due to the influence of the gate size / timing of the module. If the target specification cannot be met, redesign of the latency (directive redesignation) is required.

特許文献1では、モジュール"内"のスレッド間のレイテンシ調整を行い、スループットの最適化を行うことについて記載されている。しかしながら、モジュール"間"のレイテンシ調整を行い、スループットの最適化を行うことについては、開示されていない。   Japanese Patent Application Laid-Open No. H10-228561 describes that the latency is adjusted between threads in a module “in” and the throughput is optimized. However, it is not disclosed to adjust the latency between modules “between” and optimize the throughput.

レイテンシ再設計は、複数モジュール構成時のモジュール間のレイテンシ調整に影響する。(図48参照)高位合成設計では、モジュールAとB、Cを別々に高位合成した場合、入力X,YからDへの到着時刻(X',Y')は手設計でそろえる必要がある。再利用の際、あるモジュールのレイテンシを変更した場合、モジュール間のレイテンシ調整を人手で調整する必要となり、手間である。   Latency redesign affects the latency adjustment between modules when a plurality of modules are configured. (See FIG. 48) In high-level synthesis design, when modules A, B, and C are separately high-level synthesized, arrival times (X ′, Y ′) from inputs X and Y to D must be aligned by hand design. When the latency of a module is changed at the time of reuse, it is necessary to manually adjust the latency between modules, which is troublesome.

本発明は上記実情に鑑みて、複数モジュール構成時、あるモジュールのレイテンシが変更があった場合等に、自動でモジュール間のレイテンシ調整を実施することが可能な高位合成装置、方法及びプログラムを提供することを目的とする。   In view of the above circumstances, the present invention provides a high-level synthesis apparatus, method, and program capable of automatically performing latency adjustment between modules when the latency of a certain module is changed when a plurality of modules are configured. The purpose is to do.

上記目的を達成するために下記の構成を特徴とする高位合成装置、方法及びプログラムを提供する。   In order to achieve the above object, a high-level synthesis apparatus, method, and program characterized by the following configurations are provided.

本発明に係る高位合成装置は、動作記述を入力して高位合成処理を行いHDL記述を出力する高位合成装置であって、動作記述にレイテンシ調整箇所を指定するレイテンシ調整パス指定手段と、指定されたレイテンシ調整箇所から入力までの入出力の接続関係及びモジュールを抽出するレイテンシ調整パス抽出手段と、抽出されたモジュールの動作合成を実施する動作合成手段と、前記動作合成手段の結果に基づいて各モジュールのレイテンシ情報を抽出するレイテンシ情報抽出手段と、抽出されたレイテンシ情報に基づいて、前記指定されたレイテンシ調整箇所に挿入するレイテンシ値を算出するレイテンシ算出手段と、算出されたレイテンシ値をHDL記述に挿入するレイテンシ挿入手段と、を備えることを特徴とする。   A high-level synthesis apparatus according to the present invention is a high-level synthesis apparatus that inputs a behavioral description, performs high-level synthesis processing, and outputs an HDL description, and is designated with latency adjustment path designation means for designating a latency adjustment location in the behavioral description. Based on the results of the behavioral synthesis means, the latency adjustment path extraction means for extracting the input / output connection relationship from the latency adjustment location to the input and the module, the behavioral synthesis means for performing behavioral synthesis of the extracted module Latency information extraction means for extracting module latency information, latency calculation means for calculating a latency value to be inserted into the designated latency adjustment location based on the extracted latency information, and the calculated latency value in HDL description And a latency insertion means for inserting into the.

本発明に係る高位合成方法は、動作記述を入力して高位合成処理を行いHDL記述を出力する、コンピュータを用いた高位合成方法であって、動作記述にレイテンシ調整箇所を指定するレイテンシ調整パス指定工程と、指定されたレイテンシ調整箇所から入力までの入出力の接続関係及びモジュールを抽出するレイテンシ調整パス抽出工程と、抽出されたモジュールの動作合成を実施する動作合成工程と、前記動作合成工程の結果に基づいて各モジュールのレイテンシ情報を抽出するレイテンシ情報抽出工程と、抽出されたレイテンシ情報に基づいて、前記指定されたレイテンシ調整箇所に挿入するレイテンシ値を算出するレイテンシ算出工程と、算出されたレイテンシ値をHDL記述に挿入するレイテンシ挿入工程と、を含むことを特徴とする。   The high-level synthesis method according to the present invention is a high-level synthesis method using a computer that inputs a behavioral description, performs high-level synthesis processing, and outputs an HDL description, and specifies a latency adjustment path designation that specifies a latency adjustment location in the behavioral description. A latency adjustment path extraction step for extracting a module, a connection relationship of input / output from a specified latency adjustment location to an input, a behavior synthesis step for performing behavior synthesis of the extracted module, and the behavior synthesis step A latency information extracting step for extracting latency information of each module based on the result, a latency calculating step for calculating a latency value to be inserted into the designated latency adjustment location based on the extracted latency information, and a calculated A latency insertion step of inserting a latency value into the HDL description, and That.

本発明に係る高位合成プログラムは、コンピュータを、動作記述にレイテンシ調整箇所を指定するレイテンシ調整パス指定手段と、指定されたレイテンシ調整箇所から入力までの入出力の接続関係及びモジュールを抽出するレイテンシ調整パス抽出手段と、抽出されたモジュールの動作合成を実施する動作合成手段と、前記動作合成手段の結果に基づいて各モジュールのレイテンシ情報を抽出するレイテンシ情報抽出手段と、抽出されたレイテンシ情報に基づいて、前記指定されたレイテンシ調整箇所に挿入するレイテンシ値を算出するレイテンシ算出手段と、算出されたレイテンシ値をHDL記述に挿入するレイテンシ挿入手段として機能させ、動作記述を入力して高位合成処理を行いHDL記述を出力する高位合成装置として機能させることを特徴とする。   The high-level synthesis program according to the present invention is a latency adjustment path that extracts a latency adjustment path designation means for designating a latency adjustment location in a behavioral description, and an input / output connection relationship and module from the designated latency adjustment location to an input. Path extraction means, behavior synthesis means for performing behavioral synthesis of the extracted modules, latency information extraction means for extracting latency information of each module based on the result of the behavioral synthesis means, and based on the extracted latency information The latency calculation means for calculating the latency value to be inserted into the designated latency adjustment location and the latency insertion means for inserting the calculated latency value into the HDL description, and the behavioral description is input to perform high-level synthesis processing. To function as a high-level synthesis device that outputs HDL descriptions And wherein the door.

本発明によれば、複数モジュール構成時、あるモジュールのレイテンシが変更があった場合等に、自動でモジュール間のレイテンシ調整を実施することが可能な高位合成装置、方法及びプログラムを提供することが可能となる。   According to the present invention, it is possible to provide a high-level synthesis apparatus, method, and program capable of automatically performing latency adjustment between modules when the latency of a certain module is changed when a plurality of modules are configured. It becomes possible.

本発明の各実施形態に係る高位合成装置の外観例を示す図である。It is a figure which shows the example of an external appearance of the high level synthesis | combination apparatus which concerns on each embodiment of this invention. 本発明の各実施形態に係る高位合成装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the high level synthesis | combination apparatus which concerns on each embodiment of this invention. 本発明の実施形態1が適用される回路の概念を示す図である。It is a figure which shows the concept of the circuit to which Embodiment 1 of this invention is applied. 本発明の実施形態1の機能構成を示すブロック図である。It is a block diagram which shows the function structure of Embodiment 1 of this invention. 図4のレイテンシ算出部205の機能構成を示すブロック図である。FIG. 5 is a block diagram illustrating a functional configuration of a latency calculation unit 205 in FIG. 4. 図3の回路概念を動作記述した例(図4の動作記述に相当)を示す図(その1)である。FIG. 6 is a diagram (part 1) illustrating an example (corresponding to the behavioral description of FIG. 4) in which the circuit concept of FIG. 図3の回路概念を動作記述した例(図4の動作記述に相当)を示す図(その2)である。FIG. 6 is a diagram (part 2) illustrating an example (corresponding to the behavioral description of FIG. 4) in which the circuit concept of FIG. 本発明の実施形態1による高位合成結果例(図4のHDL記述に相当)を示す図(その1)である。FIG. 6 is a diagram (part 1) illustrating a high-level synthesis result example (corresponding to the HDL description in FIG. 4) according to the first embodiment of the present invention; 本発明の実施形態1による高位合成結果例(図4のHDL記述に相当)を示す図(その2)である。FIG. 6 is a diagram (part 2) illustrating a high-level synthesis result example (corresponding to the HDL description in FIG. 4) according to the first embodiment of the present invention; 本発明の実施形態1の高位合成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the high level synthesis process of Embodiment 1 of this invention. 本発明の実施形態1において遅延調整ポイントを指定する例を示す図である。It is a figure which shows the example which designates a delay adjustment point in Embodiment 1 of this invention. 本発明の実施形態1の動作合成部203が生成したログ結果の例を示す図である。It is a figure which shows the example of the log result which the behavioral synthesis part 203 of Embodiment 1 of this invention produced | generated. 本発明の実施形態1のレイテンシ情報抽出部204が抽出したレイテンシ情報の例を図3の回路概念図と紐付けて示す図である。It is a figure which shows the example of the latency information extracted by the latency information extraction part 204 of Embodiment 1 of this invention linked | related with the circuit conceptual diagram of FIG. 本発明の実施形態1のレイテンシ算出処理の詳細手順(図10のステップS5に相当)を示すフローチャートである。It is a flowchart which shows the detailed procedure (equivalent to step S5 of FIG. 10) of the latency calculation process of Embodiment 1 of this invention. 本発明の実施形態1のレイテンシ算出処理の結果の例を図3の回路概念図と紐付けて示す図である。It is a figure which shows the example of the result of the latency calculation process of Embodiment 1 of this invention linked | related with the circuit conceptual diagram of FIG. 本発明の実施形態1による高位合成処理の結果得られる回路の概念を示す図である。It is a figure which shows the concept of the circuit obtained as a result of the high-level synthesis process by Embodiment 1 of this invention. 本発明の実施形態1の変形実施形態を説明するための図である。It is a figure for demonstrating the deformation | transformation embodiment of Embodiment 1 of this invention. 本発明の実施形態2が適用される回路の概念を示す図である。It is a figure which shows the concept of the circuit to which Embodiment 2 of this invention is applied. 図18の回路概念を動作記述した例(図4の動作記述に相当)を示す図(その1)である。FIG. 19 is a diagram (part 1) illustrating an example (corresponding to the behavioral description of FIG. 4) in which the circuit concept of FIG. 18 is behaviorally described; 図18の回路概念を動作記述した例(図4の動作記述に相当)を示す図(その2)である。FIG. 19 is a diagram (part 2) illustrating an example (corresponding to the behavioral description of FIG. 4) in which the circuit concept of FIG. 18 is behaviorally described. 本発明の実施形態2による高位合成結果例(図4のHDL記述に相当)を示す図である。It is a figure which shows the example of a high level synthesis result (equivalent to the HDL description of FIG. 4) by Embodiment 2 of this invention. 本発明の実施形態2の高位合成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the high level synthetic | combination process of Embodiment 2 of this invention. 本発明の実施形態2において遅延調整ポイントを指定する例を示す図である。It is a figure which shows the example which designates a delay adjustment point in Embodiment 2 of this invention. 本発明の実施形態2のレイテンシ調整パスの抽出処理の詳細手順(図22のステップS2aに相当)を示すフローチャートである。It is a flowchart which shows the detailed procedure (equivalent to step S2a of FIG. 22) of the extraction process of the latency adjustment path of Embodiment 2 of this invention. 本発明の実施形態2のレイテンシ調整パスの抽出処理の抽出結果例を説明するための図である。It is a figure for demonstrating the example of an extraction result of the extraction process of the latency adjustment path | pass of Embodiment 2 of this invention. 本発明の実施形態2の動作合成部203が生成したログ結果の例を示す図である。It is a figure which shows the example of the log result which the behavioral synthesis part 203 of Embodiment 2 of this invention produced | generated. 本発明の実施形態2のレイテンシ情報抽出部204が抽出したレイテンシ情報の例を図18の回路概念図と紐付けて示す図である。It is a figure which shows the example of the latency information extracted by the latency information extraction part 204 of Embodiment 2 of this invention linked | related with the circuit conceptual diagram of FIG. 本発明の実施形態2のレイテンシ算出処理の詳細手順(図22のステップS5aに相当)を示すフローチャートである。It is a flowchart which shows the detailed procedure (equivalent to step S5a of FIG. 22) of the latency calculation process of Embodiment 2 of this invention. 本発明の実施形態2のレイテンシ算出処理の結果の例を図18の回路概念図と紐付けて示す図(その1)である。FIG. 19 is a diagram (part 1) illustrating an example of a result of latency calculation processing according to the second embodiment of the present invention in association with the circuit conceptual diagram of FIG. 18; 本発明の実施形態2のレイテンシ算出処理の結果の例を図18の回路概念図と紐付けて示す図(その2)である。FIG. 19 is a diagram (part 2) illustrating an example of a result of latency calculation processing according to the second embodiment of the present invention in association with the circuit conceptual diagram of FIG. 18; 本発明の実施形態2による高位合成処理の結果得られる回路の概念を示す図である。It is a figure which shows the concept of the circuit obtained as a result of the high-level synthesis process by Embodiment 2 of this invention. 本発明の実施形態3が適用される回路の概念を示す図である。It is a figure which shows the concept of the circuit to which Embodiment 3 of this invention is applied. 図32の回路概念を動作記述した例(図4の動作記述に相当)を示す図(その1)である。FIG. 33 is a diagram (part 1) illustrating an example (corresponding to the behavioral description of FIG. 4) in which the circuit concept of FIG. 32 is behaviorally described; 図32の回路概念を動作記述した例(図4の動作記述に相当)を示す図(その2)である。FIG. 33 is a diagram (part 2) illustrating an example (corresponding to the behavioral description of FIG. 4) in which the circuit concept of FIG. 32 is behaviorally described. 本発明の実施形態3による高位合成結果例(図4のHDL記述に相当)を示す図である。It is a figure which shows the example of a high level synthesis result (equivalent to the HDL description of FIG. 4) by Embodiment 3 of this invention. 本発明の実施形態3の高位合成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the high level synthetic | combination process of Embodiment 3 of this invention. 本発明の実施形態3において遅延調整ポイントを指定する例を示す図である。It is a figure which shows the example which designates a delay adjustment point in Embodiment 3 of this invention. 本発明の実施形態3のレイテンシ調整パスの抽出処理の詳細手順(図36のステップS2bに相当)を示すフローチャートである。It is a flowchart which shows the detailed procedure (equivalent to step S2b of FIG. 36) of the extraction process of the latency adjustment path | pass of Embodiment 3 of this invention. 本発明の実施形態3のレイテンシ調整パスの抽出処理の抽出結果例を説明するための図である。It is a figure for demonstrating the example of an extraction result of the extraction process of the latency adjustment path | pass of Embodiment 3 of this invention. 本発明の実施形態3の動作合成部203が生成したログ結果の例を示す図である。It is a figure which shows the example of the log result which the behavioral synthesis part 203 of Embodiment 3 of this invention produced | generated. 本発明の実施形態3のレイテンシ情報抽出部204が抽出したレイテンシ情報の例を図32の回路概念図と紐付けて示す図である。It is a figure which shows the example of the latency information extracted by the latency information extraction part 204 of Embodiment 3 of this invention linked | related with the circuit conceptual diagram of FIG. 本発明の実施形態3のレイテンシ算出処理の詳細手順(図36のステップS5bに相当)を示すフローチャートである。(図28と等価)It is a flowchart which shows the detailed procedure (equivalent to step S5b of FIG. 36) of the latency calculation process of Embodiment 3 of this invention. (Equivalent to FIG. 28) 本発明の実施形態3のレイテンシ算出処理の結果の一部を図32の回路概念図と紐付けて示す図である。It is a figure which shows a part of result of the latency calculation process of Embodiment 3 of this invention linked | related with the circuit conceptual diagram of FIG. 本発明の実施形態3のレイテンシ挿入処理の詳細手順(図36のステップS6bに相当)を示すフローチャートである。It is a flowchart which shows the detailed procedure (equivalent to step S6b of FIG. 36) of the latency insertion process of Embodiment 3 of this invention. 本発明の実施形態3のレイテンシ算出処理の結果の例を図32の回路概念図と紐付けて示す図である。It is a figure which shows the example of the result of the latency calculation process of Embodiment 3 of this invention linked | related with the circuit conceptual diagram of FIG. 本発明の実施形態3による高位合成処理の結果得られる回路の概念を示す図である。It is a figure which shows the concept of the circuit obtained as a result of the high-level synthesis process by Embodiment 3 of this invention. 本発明の実施形態3を実施しない場合のレイテンシ挿入の結果の例を図32の回路概念図と紐付けて示す図である。It is a figure which shows the example of the result of the latency insertion when not implementing Embodiment 3 of this invention linked with the circuit conceptual diagram of FIG. 従来の高位合成処理について説明するための図である。It is a figure for demonstrating the conventional high level synthetic | combination process.

以下、本発明の好適な実施の形態について図面を参照して説明する。   Preferred embodiments of the present invention will be described below with reference to the drawings.

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

図2は、本発明の各実施形態の高位合成装置の構成例を示すブロック図である。図2に示すコンピュータ本体は、CPU(Central Processing Unit )、ROM(Read Only Memory)、RAM(Random Access Memory)およびハードディスクを含む。CPUは、グラフィックディスプレイ装置、キーボード、マウス、CD−ROM装置、ネットワーク装置、ROM、RAMまたはハードディスクとの間でデータを入出力しながら処理を行う。CD−ROMに記録された高位合成プログラムは、CPUによりCD−ROM装置を介して一旦ハードディスクに格納される。CPUは、ハードディスクから適宜高位合成プログラムをRAMにロードして実行することによって高位合成を行う。   FIG. 2 is a block diagram illustrating a configuration example of the high-level synthesis apparatus according to each embodiment of the present invention. The computer main body shown in FIG. 2 includes a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM (Random Access Memory), and a hard disk. The CPU performs processing while inputting / outputting data to / from a graphic display device, keyboard, mouse, CD-ROM device, network device, ROM, RAM, or hard disk. The high-level synthesis program recorded on the CD-ROM is temporarily stored in the hard disk by the CPU via the CD-ROM device. The CPU performs high-level synthesis by appropriately loading a high-level synthesis program from the hard disk into the RAM and executing it.

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

(実施形態1)
実施形態1は、図3に示す回路(概念)を例に、モジュールA,B,C,Dの周波数upによる再利用により各モジュールのレイテンシが変更になることを想定し、モジュール間のレイテンシ調整(outBとoutCの遅延調整)を上述の高位合成装置で実施する例である。
(Embodiment 1)
In the first embodiment, the circuit (concept) shown in FIG. 3 is taken as an example, and it is assumed that the latency of each module is changed by reusing the modules A, B, C, and D by increasing the frequency, and the latency adjustment between modules is adjusted This is an example in which (the delay adjustment of outB and outC) is performed by the above-described high-level synthesis apparatus.

図4は本発明の実施形態1における高位合成装置の概略構成を示す機能ブロック図である。図示のように、高位合成装置1は、レイテンシ調整パス指定部201、レイテンシパス抽出部202、動作合成部203、レイテンシ情報抽出部204、レイテンシ算出部205、レイテンシ挿入部206を備える。以下、各部について説明する。   FIG. 4 is a functional block diagram showing a schematic configuration of the high-level synthesis apparatus according to Embodiment 1 of the present invention. As illustrated, the high-level synthesis apparatus 1 includes a latency adjustment path designation unit 201, a latency path extraction unit 202, a behavior synthesis unit 203, a latency information extraction unit 204, a latency calculation unit 205, and a latency insertion unit 206. Hereinafter, each part will be described.

レイテンシ調整パス指定部201は、動作記述にレイテンシ調整箇所を指定する。
レイテンシ調整パス抽出部202は、レイテンシ調整箇所から入力までの入出力の接続関係及び、モジュールを抽出する。
動作合成部203は、各接続モジュールの動作合成を実施する。
The latency adjustment path designation unit 201 designates a latency adjustment location in the behavioral description.
The latency adjustment path extraction unit 202 extracts input / output connection relationships and modules from the latency adjustment location to the input.
The behavioral synthesis unit 203 performs behavioral synthesis of each connection module.

レイテンシ情報抽出部204は、動作合成部203の結果より各モジュールのレイテンシ情報を抽出する。
レイテンシ算出部205は、レイテンシ情報抽出部204の結果より調整ポイントに挿入するレイテンシを算出する。
The latency information extraction unit 204 extracts the latency information of each module from the result of the behavioral synthesis unit 203.
The latency calculation unit 205 calculates the latency to be inserted into the adjustment point based on the result of the latency information extraction unit 204.

レイテンシ挿入部206は、レイテンシ算出部205により算出されたレイテンシ値をHDL記述に挿入する。なお、挿入の態様としては、次の3つの方法が有効である。第1にモジュール間に遅延調整値分のFFを挿入する方法、第2に前段モジュール出力に遅延調整値分の遅延を挿入する方法、第3に後段モジュールの各入力ポートに遅延調整値分の遅延を挿入する方法である。
次に、レイテンシ算出部205について、図5の詳細機能ブロックを参照してより詳細に説明する。
The latency insertion unit 206 inserts the latency value calculated by the latency calculation unit 205 into the HDL description. Note that the following three methods are effective as an insertion mode. First, a method of inserting an FF corresponding to the delay adjustment value between modules, second, a method of inserting a delay corresponding to the delay adjustment value to the output of the preceding module, and third, an amount corresponding to the delay adjustment value to each input port of the subsequent module This is a method of inserting a delay.
Next, the latency calculation unit 205 will be described in more detail with reference to the detailed functional block of FIG.

図5はレイテンシ算出部205の機能ブロック図である。「各パスのレイテンシの合計算出部」205aは、レイテンシ調整パス抽出部204で抽出した各Pass上にある モジュールのレイテンシを合計する。最大レイテンシ算出部205bは、「各パスのレイテンシの合計算出部」205aで算出した各パスの最大値を算出する。レイテンシ挿入値計算部205cは、最大レイテンシ算出部205bにより算出された最大レイテンシに基づいて、各パスに挿入するレイテンシ値を計算する。   FIG. 5 is a functional block diagram of the latency calculation unit 205. The “latency total calculation unit” 205 a totals the latencies of the modules on each pass extracted by the latency adjustment path extraction unit 204. The maximum latency calculation unit 205b calculates the maximum value of each path calculated by the “total latency calculation unit for each path” 205a. The latency insertion value calculation unit 205c calculates a latency value to be inserted into each path based on the maximum latency calculated by the maximum latency calculation unit 205b.

図6と図7は、図3の回路概念をsystemCで動作記述した例である(図4の"動作記述"に相当する。)。
module_top.h/.ccはモジュールのI/O定義(IN1,IN2,OUT)及び、モジュール間接続を記述したものである。
module_*.h/.cc(*はA,B,C,Dを示す)はモジュールA,B,C,DのI/O定義、及び各モジュールの動作を記述したものである。
動作記述に記載している「META」はデータと複数のI/F制御信号をまとめた宣言である(METAは名称も含めて制御信号をユーザー定義できるSysemCの記述方法)。
なお、本発明と関係ない記述に関する説明は省略する。
FIGS. 6 and 7 are examples in which the circuit concept of FIG. 3 is described by system C (corresponding to “operation description” in FIG. 4).
module_top.h / .cc describes I / O definitions (IN1, IN2, OUT) of modules and connections between modules.
module _ *. h / .cc (* indicates A, B, C, D) describes the I / O definition of modules A, B, C, D and the operation of each module.
“META” described in the operation description is a declaration that summarizes the data and multiple I / F control signals (META is a SysemC description method that allows user-defined control signals including names).
Note that descriptions relating to descriptions not related to the present invention are omitted.

図8と図9は、図6と図7の動作記述を本実施形態の高位合成装置1によって高位合成させた結果例である(図4の"HDL記述"に相当する。)。本実施形態の高位合成装置1ではVerilog-HDLで生成された例である。
module_top.vはモジュールI/O(IN1,IN2,OUT)を記述及び、モジュール間の接続を記述したものである。
module_A〜D.vは各モジュールの動作をHDL記述したものである。
本実施形態によりmodule_top.vに記述している「module_2delay C_delay」を自動挿入することになる。
また、module_2delay.vを自動生成する(従来なら、モジュール間の遅延を解析し、手挿入で実施することになる。)。
なお、本発明と関係ない記述に関する説明は省略する。
FIGS. 8 and 9 are examples of results obtained by high-level synthesis of the behavioral descriptions of FIGS. 6 and 7 by the high-level synthesis apparatus 1 of this embodiment (corresponding to “HDL description” in FIG. 4). In the high-level synthesis apparatus 1 of the present embodiment, the example is generated by Verilog-HDL.
module_top.v describes module I / O (IN1, IN2, OUT) and describes connections between modules.
module_A to Dv describe the operation of each module in HDL.
According to this embodiment, “module_2delay C_delay” described in module_top.v is automatically inserted.
Also, module_2delay.v is automatically generated (conventionally, it is analyzed by analyzing the delay between modules and manually inserting it).
Note that descriptions relating to descriptions not related to the present invention are omitted.

次に、本実施形態の高位合成装置1の処理手順を図10のフローチャートを用いて説明する。   Next, the processing procedure of the high-level synthesis apparatus 1 of this embodiment will be described using the flowchart of FIG.

S1:module_top.hに遅延調整ポイント(ADJUST(...))を指定する(図11に遅延調整ポイントを指定する例を示す。以下、図11に示した例に基づいて説明する。)。本実施形態では遅延調整ポイントは人手で選んだポイントをレイテンシ調整パス指定手段が指定する。引数には、レイテンシ調整したい信号を記載する。いくつでも記載可能だが、本説明例では2個(outB,outC)とする。   S1: A delay adjustment point (ADJUST (...)) is specified in module_top.h (an example in which a delay adjustment point is specified is shown in FIG. 11. The following description is based on the example shown in FIG. 11). In this embodiment, the latency adjustment point is designated by the latency adjustment path designation means as a manually selected point. The argument describes the signal whose latency is to be adjusted. Any number can be described, but in this explanation example, it is assumed to be 2 (outB, outC).

S2:レイテンシ調整パス抽出部202は、ADJUSTの引数に記載している信号outB,outCから入力(IN1,IN2)までの入出力の接続関係及び、モジュールを抽出する。
本説明例の場合、
PassE: outB← (moduleB) ← outA ← (moduleA) ← IN1
PassF: outC← (moduleC) ← IN2
が抽出される。
S2: The latency adjustment path extraction unit 202 extracts the input / output connection relationship from the signals outB, outC to the inputs (IN1, IN2) and modules described in the argument of ADJUST.
In the case of this example,
PassE: outB ← (moduleB) ← outA ← (moduleA) ← IN1
PassF: outC ← (moduleC) ← IN2
Is extracted.

S3:動作合成部203は、moduleA〜Dの動作合成を実施する。Verilog-HDLが生成される。図12に、生成されたVerilog-HDLの例を示す。   S3: The behavioral synthesis unit 203 performs behavioral synthesis of modules A to D. Verilog-HDL is generated. FIG. 12 shows an example of the generated Verilog-HDL.

S4:レイテンシ情報抽出部204は、動作合成部203のログ結果よりレイテンシ情報を抽出する(図13参照。なお、図13では説明上分かりやすくするため、図3の回路概念図とログ結果を紐付けしている)。
moduleA_Latency = 1
moduleB_Latency = 3
moduleC_Latency = 2
moduleD_Latency = 1
S4: The latency information extraction unit 204 extracts the latency information from the log result of the behavioral synthesis unit 203 (see FIG. 13). In FIG. 13, the circuit conceptual diagram of FIG. Attached).
moduleA_Latency = 1
moduleB_Latency = 3
moduleC_Latency = 2
moduleD_Latency = 1

S5:S4で抽出したレイテンシ情報を基にPassE、PassFに挿入するレイテンシ値を算出する。図14を用いて説明する。図14はS5の詳細フローである。
S5-1:各Pass上にあるモジュールのレイテンシを合計する
Pass_E Latency = moduleA Latency + moduleB Latency = 1+3 =4
Pass_F Latency = moduleC_Latency = 2
S5-2:各Passの最大レイテンシを算出する
Max_Latency = (Pass_E Latency , Pass_F Latency) = 4
S5-3:最大レイテンシ値より各Passのレイテンシ挿入値を算出する。
Adjust_E_Latency = Max_Latency - Pass_E_Latency = 4-4 = 0
Adjust_F_Latency = Max_Latency - Pass_F_Latency = 4-2 = 2
S5により、Pass_Fに 2CLK Delayを挿入することになる(図15参照)。
S5: The latency value to be inserted into PassE and PassF is calculated based on the latency information extracted in S4. This will be described with reference to FIG. FIG. 14 is a detailed flow of S5.
S5-1: Sum the latency of modules on each pass
Pass_E Latency = moduleA Latency + moduleB Latency = 1 + 3 = 4
Pass_F Latency = moduleC_Latency = 2
S5-2: Calculate the maximum latency for each pass
Max_Latency = (Pass_E Latency, Pass_F Latency) = 4
S5-3: Calculate the latency insertion value of each pass from the maximum latency value.
Adjust_E_Latency = Max_Latency-Pass_E_Latency = 4-4 = 0
Adjust_F_Latency = Max_Latency-Pass_F_Latency = 4-2 = 2
By S5, 2CLK Delay is inserted into Pass_F (see FIG. 15).

S6:S5-3で算出したレイテンシ値を図12のHDLに挿入する(図8と図9参照)。
Pass_Fには2CLK遅延を挿入することになる。
高位合成装置が生成するモジュール「module_2delay」をmodule_top.vのモジュールCの出力(outC)の後段に挿入する。「module_2delay」の出力(outC_2d)はモジュールDの入力に接続される。
本実施形態による処理の結果(図8と図9参照)により生成される回路は図16となる。図16に示す回路がデバイスに実装されることになる。
S6: The latency value calculated in S5-3 is inserted into the HDL of FIG. 12 (see FIGS. 8 and 9).
A 2CLK delay is inserted into Pass_F.
The module “module_2delay” generated by the high-level synthesizer is inserted after the output of module C in module_top.v (outC). The output (outC_2d) of “module_2delay” is connected to the input of module D.
FIG. 16 shows a circuit generated based on the processing result (see FIGS. 8 and 9) according to the present embodiment. The circuit shown in FIG. 16 is mounted on the device.

上記実施形態によれば、モジュールA,B,C,Dの動作合成結果(レイテンシ情報)より人手を介さずにモジュール間のレイテンシ調整値を計算し、それをHDLに挿入することが可能となる。   According to the embodiment, it is possible to calculate a latency adjustment value between modules from the behavioral synthesis results (latency information) of the modules A, B, C, and D and insert them into HDL without human intervention. .

なお、上記実施形態では、レイテンシ情報の抽出を動作合成ログ結果から抽出したが、設計時にソースコード上に指定するディレクティブ情報からレイテンシ情報を抽出することも可能である。図17にモジュールBにディレクティブ(LATENCY(3): レイテンシ3) を挿入した例を示す。   In the above embodiment, the extraction of latency information is extracted from the behavioral synthesis log result, but it is also possible to extract latency information from directive information specified on the source code at the time of design. FIG. 17 shows an example in which a directive (LATENCY (3): latency 3) is inserted into module B.

(実施形態2)
実施形態2では、図18に示す回路(概念)を例に、レイテンシ調整パス間に分岐がある場合のモジュール間のレイテンシ調整(outBとoutEの遅延調整)を、図1,図2で示した高位合成装置1で実施する例である。なお、本実施形態2における高位合成装置1の概略構成は実施形態1(図4,図5)と等価であるため省略する。
(Embodiment 2)
In the second embodiment, the circuit (concept) shown in FIG. 18 is taken as an example, and latency adjustment between modules (delay adjustment of outB and outE) when there is a branch between the latency adjustment paths is shown in FIGS. This is an example implemented in the high-level synthesis apparatus 1. Note that the schematic configuration of the high-level synthesis apparatus 1 according to the second embodiment is the same as that of the first embodiment (FIGS. 4 and 5), and is omitted.

図19と図20は、図18の回路概念をsystemCで動作記述した例である(図4の"動作記述"に相当する。)。
module_top.h/.ccはモジュールのI/O定義(IN1,IN2,OUT)及び、モジュール間接続を記述したものである。
module_*.h/.cc(*はA,B,C,D,E,Fを示す)はモジュールA,B,C,D,EのI/O定義、及び各モジュールの動作を記述したものである。
動作記述に記載している「META」はデータと複数のI/F制御信号をまとめた宣言である(METAは名称も含めて制御信号をユーザー定義できるSysemCの記述方法)。
module_top.hのmodule_Dの出力が2つあるが(outD1,outD2)、SystemCの記述上の制約である。
outD1,outD2は同じタイミングの同じ値の出力である。
なお、本発明と関係ない記述に関する説明は省略する。
FIGS. 19 and 20 are examples in which the circuit concept of FIG. 18 is described in systemC (corresponding to “operation description” in FIG. 4).
module_top.h / .cc describes I / O definitions (IN1, IN2, OUT) of modules and connections between modules.
module _ *. h / .cc (* indicates A, B, C, D, E, F) describes the I / O definition of modules A, B, C, D, E and the operation of each module It is.
“META” described in the operation description is a declaration that summarizes the data and multiple I / F control signals (META is a SysemC description method that allows user-defined control signals including names).
There are two module_D outputs in module_top.h (outD1, outD2), but this is a restriction on SystemC description.
outD1 and outD2 are outputs of the same value at the same timing.
Note that descriptions relating to descriptions not related to the present invention are omitted.

図21は、図19と図20の動作記述を本実施形態の高位合成装置1による高位合成結果例である(図4の"HDL記述"に相当する。)。本実施形態の高位合成装置1ではVerilog-HDLで生成された例である。
module_top.vはモジュールI/O(IN1,IN2,OUT)を記述及び、モジュール間の接続を記述したものである。
module_A〜F.vは各モジュールの動作をHDL記述したものである。
本実施形態によりmodule_top.vに記述している「module_3delay A_delay」、「module_2delay B_delay」を自動挿入することになる。
また、module_2delay.v,module_3delay.vを自動生成する(従来なら、モジュール間の遅延を解析し、手挿入で実施することになる。)
なお、本発明と関係ない記述に関する説明は省略する。
FIG. 21 is an example of the high-level synthesis result by the high-level synthesis apparatus 1 of the present embodiment for the behavioral descriptions of FIGS. 19 and 20 (corresponding to “HDL description” in FIG. 4). In the high-level synthesis apparatus 1 of the present embodiment, the example is generated by Verilog-HDL.
module_top.v describes module I / O (IN1, IN2, OUT) and describes connections between modules.
module_A to Fv describe the operation of each module in HDL.
According to this embodiment, “module_3delay A_delay” and “module_2delay B_delay” described in module_top.v are automatically inserted.
Also, module_2delay.v and module_3delay.v are automatically generated (conventionally, the delay between modules is analyzed and manually inserted)
Note that descriptions relating to descriptions not related to the present invention are omitted.

本発明の高位合成装置の処理手順を図22の機能フローチャートを用いて説明する。なお、図10に示した実施形態1の処理手順とほとんど同じであるが、レイテンシ調整パスの抽出処理と、レイテンシ算出処理とが、異なる。   The processing procedure of the high-level synthesis apparatus of the present invention will be described using the functional flowchart of FIG. Although the processing procedure of the first embodiment shown in FIG. 10 is almost the same, the latency adjustment path extraction processing and the latency calculation processing are different.

S1:module_top.ccに遅延調整ポイント(ADJUST(...))を指定する(図23に遅延調整ポイントを指定する例を示す。以下、図23に示した例に基づいて説明する。)。本実施形態では遅延調整ポイントは人手で選んだポイントをレイテンシ調整パス指定手段が指定する。引数には、レイテンシ調整したい信号を記載する。いくつでも記載可能だが、本実施形態では2個(outB,outE)とする。   S1: A delay adjustment point (ADJUST (...)) is specified in module_top.cc (an example in which a delay adjustment point is specified is shown in FIG. 23. The following description is based on the example shown in FIG. 23). In this embodiment, the latency adjustment point is designated by the latency adjustment path designation means as a manually selected point. The argument describes the signal whose latency is to be adjusted. Any number can be described, but in this embodiment, two (outB, outE).

S2a:レイテンシ調整パス抽出部202の機能フローを図24に示す。パス抽出過程でパス分岐がある場合は、分岐点のレイテンシ調整を実施する。
S2a-1 : ADJUSTの引数に記載している信号outB,outEから入力(IN1,IN2)までの入出力の接続関係及び、モジュールを抽出する。この場合、図25に示すような接続関係及びモジュールが抽出される。
S2a-2 :パス中に分岐パスがあるかいなかを判断する。図23に基づく本説明例においては、PassEのmodule_Bに分岐パスがあるので、S2a-3に進み、module_B分岐パスレイテンシ調整優先フラグをアサートする(module_B_pri_adjust = 1)。
S2a: The functional flow of the latency adjustment path extraction unit 202 is shown in FIG. If there is a path branch in the path extraction process, the latency of the branch point is adjusted.
S2a-1: Extracts input / output connection relations and modules from signals outB and outE to inputs (IN1 and IN2) described in the argument of ADJUST. In this case, connection relationships and modules as shown in FIG. 25 are extracted.
S2a-2: It is determined whether there is a branch path in the path. In this illustrative example based on FIG. 23, since there is a branch path in module_B of PassE, the process proceeds to S2a-3 and the module_B branch path latency adjustment priority flag is asserted (module_B_pri_adjust = 1).

S3:動作合成部203は、moduleA〜Fの動作合成を実施する。Verilog-HDLが生成される。図26に、生成されたVerilog-HDLの例を示す。   S3: The behavioral synthesis unit 203 performs behavioral synthesis of modules A to F. Verilog-HDL is generated. FIG. 26 shows an example of the generated Verilog-HDL.

S4:レイテンシ情報抽出部204は、動作合成部203のログ結果よりレイテンシ情報を抽出する(図27参照。なお、図27では説明上分かりやすくするため、図18の回路概念図とログ結果を紐付けしている)。
moduleA_Latency = 1
moduleB_Latency = 2
moduleC_Latency = 3
moduleD_Latency = 1
moduleE_Latency = 4
moduleF_Latency = 2
S4: The latency information extraction unit 204 extracts the latency information from the log result of the behavioral synthesis unit 203 (see FIG. 27. In FIG. 27, the circuit conceptual diagram of FIG. Attached).
moduleA_Latency = 1
moduleB_Latency = 2
moduleC_Latency = 3
moduleD_Latency = 1
moduleE_Latency = 4
moduleF_Latency = 2

S5a:レイテンシパス算出部205の機能フローを図28に示す。
S5a-1:抽出過程でパス分岐があることを示す分岐パスフラグがアサートしている場合は、分岐点のレイテンシ調整を実施する。図23に基づく本説明例においては、S2a-2 においてPassEのmodule_B分岐パスレイテンシ調整優先フラグがアサートされているので(module_B_pri_adjust = 1)、module_B入力地点のレテンシ調整を実施する。S5a-2へ進む。
S5a: The functional flow of the latency path calculation unit 205 is shown in FIG.
S5a-1: If the branch path flag indicating that there is a path branch in the extraction process is asserted, the latency of the branch point is adjusted. In this illustrative example based on FIG. 23, since the module_B branch path latency adjustment priority flag of PassE is asserted in S2a-2 (module_B_pri_adjust = 1), the latency adjustment of the module_B input point is performed. Proceed to S5a-2.

S5a-2:分岐パス(module_B)から入力までのレイテンシの合計を算出する。
Pass_B_IN1 Latency = moduleA Latency =1
Pass_B_IN2 Latency = moduleD_Latency + moduleC_Latency = 1 + 3 = 4
S5a-2: Calculate the total latency from the branch path (module_B) to the input.
Pass_B_IN1 Latency = moduleA Latency = 1
Pass_B_IN2 Latency = moduleD_Latency + moduleC_Latency = 1 + 3 = 4

S5a-3:分岐Passの最大レイテンシを算出する。
Max_Latency = (Pass_B_IN1 Latency , Pass_B_IN2 Latency) = 4
S5a-3: Calculate the maximum latency of the branch pass.
Max_Latency = (Pass_B_IN1 Latency, Pass_B_IN2 Latency) = 4

S5a-4:分岐Passのレイテンシ値を計算する。
Adjust_B_IN1 Latency = Max_Latency - Pass_B_IN1 Latency = 4-1 = 3
Adjust_B_IN2 Latency = Max_Latency - Pass_B_IN2 Latency = 4-4 = 0
S5a-1へ戻る。
S5a-4より、Pass_B_IN1に3CLK Delayを挿入することになる(図29参照)。
S5a-4: Calculate the latency value of the branch pass.
Adjust_B_IN1 Latency = Max_Latency-Pass_B_IN1 Latency = 4-1 = 3
Adjust_B_IN2 Latency = Max_Latency-Pass_B_IN2 Latency = 4-4 = 0
Return to S5a-1.
From S5a-4, 3CLK Delay is inserted into Pass_B_IN1 (see FIG. 29).

S5a-5:分岐パスフラグをクリアする。(module_B_pri_adjust = 0)
S5a-1へ戻る。
S5a-1:分岐パスフラグはアサートされていないので、S5a-6へ進む。
S5a-5: Clear the branch path flag. (module_B_pri_adjust = 0)
Return to S5a-1.
S5a-1: Since the branch path flag is not asserted, the process proceeds to S5a-6.

S5a-6:各Pass上にあるモジュールのレイテンシを合計する。この際、S5a-3で算出したレイテンシ値(Adjust_B_IN1 Latency)も含む。
Pass_E Latency = moduleA Latency + moduleB Latency + Adjust_B_IN1 Latency = 1+2+3 =6
Pass_F Latency = moduleC_Latency + moduleD_Latency + moduleE_Latency = 3+1+4 = 8
S5a-6: Sum the latency of modules on each pass. At this time, the latency value (Adjust_B_IN1 Latency) calculated in S5a-3 is also included.
Pass_E Latency = moduleA Latency + moduleB Latency + Adjust_B_IN1 Latency = 1 + 2 + 3 = 6
Pass_F Latency = moduleC_Latency + moduleD_Latency + moduleE_Latency = 3 + 1 + 4 = 8

S5a-7:各Passの最大レイテンシを算出する。
Max_Latency = (Pass_E Latency , Pass_F Latency) = 8
S5a-7: Calculate the maximum latency for each pass.
Max_Latency = (Pass_E Latency, Pass_F Latency) = 8

S5a-8:最大レイテンシ値より各Passのレイテンシ挿入値を算出する。
Adjust_E_Latency = Max_Latency - Pass_E_Latency = 8-6 = 2
Adjust_F_Latency = Max_Latency - Pass_F_Latency = 8-8 = 0
S5a-8により、Pass_Eに 2CLK Delayを挿入することになる(図30参照)。
S5a-8: The latency insertion value of each pass is calculated from the maximum latency value.
Adjust_E_Latency = Max_Latency-Pass_E_Latency = 8-6 = 2
Adjust_F_Latency = Max_Latency-Pass_F_Latency = 8-8 = 0
With S5a-8, 2CLK Delay is inserted into Pass_E (see FIG. 30).

S6:S5a-4/S5a-8で算出したレイテンシ値を図26のHDLに挿入する(図21参照)。
高位合成装置1が生成するモジュール「module_3delay」をmodule_top.vのモジュールAの出力(outA)の後段に挿入する。
「module_3delay」の出力(outA_3d)はモジュールBの入力に接続される。
また、「module_2delay」をmodule_top.vのモジュールBの出力(outB)の後段に挿入する。
「module_2delay」の出力(outB_2d)はモジュールFの入力に接続される。
本実施形態による処理の結果(図21参照)により生成される回路は図31となる。図31に示す回路がデバイスに実装されることになる。
S6: The latency value calculated in S5a-4 / S5a-8 is inserted into the HDL in FIG. 26 (see FIG. 21).
The module “module_3delay” generated by the high-level synthesis apparatus 1 is inserted after the module A output (outA) of module_top.v.
The output (outA_3d) of “module_3delay” is connected to the input of module B.
In addition, “module_2delay” is inserted after the output (outB) of module B of module_top.v.
The output (outB_2d) of “module_2delay” is connected to the input of module F.
FIG. 31 shows a circuit generated based on the processing result (see FIG. 21) according to the present embodiment. The circuit shown in FIG. 31 is mounted on the device.

上記実施形態によれば、複数入力のあるモジュールで構成されるモジュール間のレイテンシ調整も自動化可能となる。   According to the above embodiment, latency adjustment between modules constituted by modules having a plurality of inputs can be automated.

なお、上記実施形態では、レイテンシ情報の抽出を動作合成ログ結果から抽出したが、設計時にソースコード上に指定するディレクティブ情報からレイテンシ情報を抽出することが可能である。   In the above-described embodiment, the extraction of latency information is extracted from the behavioral synthesis log result. However, the latency information can be extracted from directive information specified on the source code at the time of design.

(実施形態3)
実施形態3では、図32に示す回路(概念)を例に、レイテンシ調整ポイントの最終モジュール出力に分岐(x)がある場合のモジュール間のレイテンシ調整(outAとoutBの遅延調整)を、図1,図2で示した高位合成装置1で実施する例である。なお、本実施形態3における高位合成装置1の概略構成は実施形態1(図4,図5)と等価であるため省略する。
(Embodiment 3)
In the third embodiment, taking the circuit (concept) shown in FIG. 32 as an example, latency adjustment between modules (delay adjustment of outA and outB) when there is a branch (x) in the final module output of the latency adjustment point is shown in FIG. This is an example implemented by the high-level synthesis apparatus 1 shown in FIG. Note that the schematic configuration of the high-level synthesis apparatus 1 according to the third embodiment is the same as that of the first embodiment (FIGS. 4 and 5), and is omitted.

図33と図34は、図32の回路概念をsystemCで動作記述した例である。(図4の”動作記述”に相当する。)。
module_top.h/.ccはモジュールのI/O定義(IN1,IN2,OUT)及び、モジュール間接続を記述したものである。
module_*.h/.cc(*はA,B,Cを示す)はモジュールA,B,CのI/O定義、及び各モジュールの動作を記述したものである。
動作記述に記載している「META」はデータと複数のI/F制御信号をまとめた宣言である(METAは名称も含めて制御信号をユーザー定義できるSysemCの記述方法)。
module_top.hのmodule_Bの出力が2つあるが(outD1,outD2)、SystemCの記述上の制約である。 outB1,outB2は同じタイミングの同じ値の出力である。
なお、本発明と関係ない記述に関する説明は省略する。
FIGS. 33 and 34 are examples in which the circuit concept of FIG. 32 is described by systemC. (Corresponds to the “behavior description” in FIG. 4).
module_top.h / .cc describes I / O definitions (IN1, IN2, OUT) of modules and connections between modules.
module _ *. h / .cc (* indicates A, B, and C) describes the I / O definitions of modules A, B, and C, and the operation of each module.
“META” described in the operation description is a declaration that summarizes the data and multiple I / F control signals (META is a SysemC description method that allows user-defined control signals including names).
There are two outputs of module_B in module_top.h (outD1, outD2), but this is a restriction on SystemC description. outB1 and outB2 are outputs of the same value at the same timing.
Note that descriptions relating to descriptions not related to the present invention are omitted.

図35は、図33と図34の動作記述を本実施形態の高位合成装置1による高位合成結果例である(図4の"HDL記述"に相当する。)。本実施形態の高位合成装置1ではVerilog-HDLで生成された例である。
module_top.vはモジュールI/O(IN1,IN2,OUT)を記述及び、モジュール間の接続を記述したものである。
module_A〜C.vは各モジュールの動作をHDL記述したものである。
本実施形態によりmodule_top.vに記述している「module_2delay IN1_delay」、「module_3delay B_delay」を自動挿入し、module_2delay.v,module_3delay.vを自動生成する(従来なら、モジュール間の遅延を解析し、手挿入で実施することになる。)
さらに、module_B出力の分岐信号「branch_B」を自動生成し(図35中の丸囲み数字1)、「branch_B」をmodule_Aのdin2に自動接続している(図35中の丸囲み数字2)。「module_3delay B_delay」の出力(outB_3d)をmodule_Bに接続せず、module_Bの出力branch_B(=out_B)を接続することで、module_A入力のレイテンシ調整を保証する。
なお、本発明と関係ない記述に関する説明は省略する。
FIG. 35 is an example of the result of high-level synthesis by the high-level synthesis apparatus 1 of the present embodiment for the behavioral descriptions of FIGS. 33 and 34 (corresponding to “HDL description” in FIG. 4). In the high-level synthesis apparatus 1 of the present embodiment, the example is generated by Verilog-HDL.
module_top.v describes module I / O (IN1, IN2, OUT) and describes connections between modules.
module_A to Cv describe the operation of each module in HDL.
According to this embodiment, `` module_2delay IN1_delay '' and `` module_3delay B_delay '' described in module_top.v are automatically inserted and module_2delay.v and module_3delay.v are automatically generated. (It will be implemented by insertion.)
Further, a branch signal “branch_B” of module_B output is automatically generated (circled number 1 in FIG. 35), and “branch_B” is automatically connected to din2 of module_A (circled number 2 in FIG. 35). The module_A input latency adjustment is guaranteed by connecting the module_B output branch_B (= out_B) without connecting the module_3delay B_delay output (outB_3d) to module_B.
Note that descriptions relating to descriptions not related to the present invention are omitted.

本実施形態の高位合成装置の処理手順を図36の機能フローチャートを用いて説明する。なお、図22に示した実施形態2の処理手順とほとんど同じであるが、レイテンシ調整パスの抽出処理(ステップS2b)と、レイテンシ挿入処理(ステップS6b)とが、異なる。   The processing procedure of the high-level synthesis apparatus of this embodiment will be described with reference to the function flowchart of FIG. Although the processing procedure of the second embodiment shown in FIG. 22 is almost the same, the latency adjustment path extraction processing (step S2b) is different from the latency insertion processing (step S6b).

S1:module_top.ccに遅延調整ポイント(ADJUST(...))を指定する(図37に遅延調整ポイントを指定する例を示す。以下、図37に示した例に基づいて説明する。)。本実施形態では遅延調整ポイントは人手で選んだポイントをレイテンシ調整パス指定手段が指定する。引数には、レイテンシ調整したい信号を記載する。いくつでも記載可能だが、本実施形態では2個(outA,outB)とする。   S1: A delay adjustment point (ADJUST (...)) is specified in module_top.cc (an example in which a delay adjustment point is specified is shown in FIG. 37. The following description is based on the example shown in FIG. 37). In this embodiment, the latency adjustment point is designated by the latency adjustment path designation means as a manually selected point. The argument describes the signal whose latency is to be adjusted. Any number can be described, but in this embodiment, two (outA, outB).

S2b:レイテンシ調整パス抽出部202の機能フローを図38に示す。パス抽出過程でパス分岐がある場合は、分岐点のレイテンシ調整を実施する。さらに、レイテンシ調整ポイントの最終出力モジュールに分岐パスの有無を見つける。
S2b-1 : (実施形態2と仕組みは同じ。) ADJUSTの引数に記載している信号outA,outBから入力(IN1,IN2)までの入出力の接続関係及び、モジュールを抽出する。この場合、図39に示すような接続関係及びモジュールが抽出される。
S2b-2 :(実施形態2と仕組みは同じ。) パス中に分岐パスがあるかいなかを判断する。図36に基づく本説明例においては、PassEのmodule_Aに分岐パスがあるので、S2a-3に進み、module_A分岐パスレイテンシ調整優先フラグをアサートする(module_A_pri_adjust = 1)。
S2b-4:レイテンシ調整ポイント(outA,outB)の最終出力モジュールに分岐パスが歩かないかを判断する。図36に基づく本説明例においては、PassFの調整ポイントoutBに分岐パスがあるので、S2a-5に進み、outB分岐パスフラグをアサートする(out_B_branch = 1)。
S2b: The functional flow of the latency adjustment path extraction unit 202 is shown in FIG. If there is a path branch in the path extraction process, the latency of the branch point is adjusted. Furthermore, the presence or absence of a branch path is found in the final output module of the latency adjustment point.
S2b-1: (The mechanism is the same as in the second embodiment.) The input / output connection relationship and the module from the signals outA, outB to the input (IN1, IN2) described in the argument of ADJUST are extracted. In this case, connection relationships and modules as shown in FIG. 39 are extracted.
S2b-2: (The mechanism is the same as in the second embodiment.) It is determined whether there is a branch path in the path. In this illustrative example based on FIG. 36, since there is a branch path in module_A of PassE, the process proceeds to S2a-3 and the module_A branch path latency adjustment priority flag is asserted (module_A_pri_adjust = 1).
S2b-4: It is determined whether the branch path does not walk to the final output module of the latency adjustment point (outA, outB). In the present explanation example based on FIG. 36, since there is a branch path at the adjustment point outB of PassF, the process proceeds to S2a-5 and the outB branch path flag is asserted (out_B_branch = 1).

S3:動作合成部203は、moduleA〜Cの動作合成を実施する。Verilog-HDLが生成される。図40に、生成されたVerilog-HDLの例を示す。   S3: The behavioral synthesis unit 203 performs behavioral synthesis of modules A to C. Verilog-HDL is generated. FIG. 40 shows an example of the generated Verilog-HDL.

S4:レイテンシ情報抽出部204は、動作合成部203のログ結果よりレイテンシ情報を抽出する(図41参照。なお、図41では説明上分かりやすくするため、図32の回路概念図とログ結果を紐付けしている)。
moduleA_Latency = 3
moduleB_Latency = 2
moduleC_Latency = 3
S4: The latency information extraction unit 204 extracts latency information from the log result of the behavioral synthesis unit 203 (see FIG. 41. Note that in FIG. 41, the circuit conceptual diagram of FIG. 32 and the log result are linked for easy understanding. Attached).
moduleA_Latency = 3
moduleB_Latency = 2
moduleC_Latency = 3

S5:レイテンシパス算出部205の機能フローを図42に示す。(実施形態2の図28と同じ)
S5-1:抽出過程でパス分岐があることを示す分岐パスフラグがアサートしている場合は、分岐点のレイテンシ調整を実施する。図32に基づく本説明例においては、S2a-2 においてPassEのmodule_A分岐パスレイテンシ調整優先フラグがアサートされているので(module_A_pri_adjust = 1)、module_A入力地点のレテンシ調整を実施する。S5-2へ進む。
S5: The functional flow of the latency path calculation unit 205 is shown in FIG. (Same as FIG. 28 in the second embodiment)
S5-1: If the branch path flag indicating that there is a path branch in the extraction process is asserted, the branch point latency is adjusted. In this illustrative example based on FIG. 32, since the module_A branch path latency adjustment priority flag of PassE is asserted in S2a-2 (module_A_pri_adjust = 1), the latency adjustment of the module_A input point is performed. Proceed to S5-2.

S5a-2:分岐パス(module_A)から入力までのレイテンシの合計を算出する。
Pass_A_IN1 Latency = 0
Pass_A_IN2 Latency = moduleB_Latency = 2
S5a-2: Calculate the total latency from the branch path (module_A) to the input.
Pass_A_IN1 Latency = 0
Pass_A_IN2 Latency = moduleB_Latency = 2

S5a-3:分岐Passの最大レイテンシを算出する。
Max_Latency = (Pass_A_IN1 Latency , Pass_A_IN2 Latency) = 2
S5a-3: Calculate the maximum latency of the branch pass.
Max_Latency = (Pass_A_IN1 Latency, Pass_A_IN2 Latency) = 2

S5-4:分岐Passのレイテンシ値を計算する。
Adjust_A_IN1 Latency = Max_Latency - Pass_A_IN1 Latency = 2-0 = 2
Adjust_A_IN2 Latency = Max_Latency - Pass_A_IN2 Latency = 2-2 = 0
S5-1へ戻る。
S5-4より、Pass_A_IN1に2CLK Delayを挿入することになる(図43参照)。
S5-4: Calculate the latency value of the branch pass.
Adjust_A_IN1 Latency = Max_Latency-Pass_A_IN1 Latency = 2-0 = 2
Adjust_A_IN2 Latency = Max_Latency-Pass_A_IN2 Latency = 2-2 = 0
Return to S5-1.
From S5-4, 2CLK Delay is inserted into Pass_A_IN1 (see FIG. 43).

S5a-5:分岐パスフラグをクリアする。(module_A_pri_adjust = 0)
S5a-1へ戻る。
S5-1:分岐パスフラグはアサートされていないので、S5-6へ進む。
S5a-5: Clear the branch path flag. (module_A_pri_adjust = 0)
Return to S5a-1.
S5-1: Since the branch path flag is not asserted, the process proceeds to S5-6.

S5a-6:各Pass上にあるモジュールのレイテンシを合計する。この際、S5-3で算出したレイテンシ値(Adjust_A_IN1 Latency)も含む。
Pass_E Latency = moduleA Latency + Adjust_B_IN1 Latency = 3+2 = 5
Pass_F Latency = moduleB_Latency = 2
S5a-6: Sum the latency of modules on each pass. At this time, the latency value (Adjust_A_IN1 Latency) calculated in S5-3 is also included.
Pass_E Latency = moduleA Latency + Adjust_B_IN1 Latency = 3 + 2 = 5
Pass_F Latency = moduleB_Latency = 2

S5-7:各Passの最大レイテンシを算出する。
Max_Latency = (Pass_E Latency , Pass_F Latency) = 5
S5-7: Calculate the maximum latency for each pass.
Max_Latency = (Pass_E Latency, Pass_F Latency) = 5

S5-8:最大レイテンシ値より各Passのレイテンシ挿入値を算出する。
Adjust_E_Latency = Max_Latency - Pass_E_Latency = 5-5 = 0
Adjust_F_Latency = Max_Latency - Pass_F_Latency = 5-2 = 3
S5-8により、Pass_Fに 3CLK Delayを挿入することになる(挿入位置は後述)。
S5-8: The latency insertion value of each pass is calculated from the maximum latency value.
Adjust_E_Latency = Max_Latency-Pass_E_Latency = 5-5 = 0
Adjust_F_Latency = Max_Latency-Pass_F_Latency = 5-2 = 3
With S5-8, 3CLK Delay is inserted into Pass_F (the insertion position will be described later).

S6b:レイテンシ挿入部206の機能フローを図44に示す。
本実施形態では、S5-4/S5-8で算出したレイテンシ値を図40のHDLに挿入する。
最終出力分岐パスフラグがアサートしている場合は、最終モジュール出力経路から分岐経路パスを生成し、分岐経路パスを分岐先のモジュールに接続する。S5-4で算出したレイテンシ値は最終出力分岐パスフラグがアサートしている。なお、図32に示す回路(概念)におけるS5-4,S5-8で算出したレイテンシを挿入した様子は図45となる。
S5-4で算出したレイテンシの挿入フローを下記に示す。
S6b: The functional flow of the latency insertion unit 206 is shown in FIG.
In this embodiment, the latency value calculated in S5-4 / S5-8 is inserted into the HDL in FIG.
If the final output branch path flag is asserted, a branch path path is generated from the final module output path, and the branch path path is connected to the branch destination module. The latency value calculated in S5-4 is asserted by the final output branch path flag. FIG. 45 shows a state in which the latency calculated in S5-4 and S5-8 in the circuit (concept) shown in FIG. 32 is inserted.
The latency insertion flow calculated in S5-4 is shown below.

S6b-1:S5-8で算出したレイテンシ最終出力分岐パスフラグがアサートしているのでS6b-2へ遷移する。
S6b-3:S5-8で挿入すべきレイテンシ挿入箇所の最終モジュール(module_B)出力(outB)経路から分岐経路パス(branch_B)を生成する。(生成された様子は図35中の丸囲み数字1を参照)
S6b-4:分岐経路パス(branch_B)を分岐先のモジュール(module_A)に接続に接続する。(接続の様子は図35中の丸囲み数字2を参照)
S6b-5:最終モジュール(module_B)出力(outB)の後段にレイテンシ「module_3delay B_delay」挿入する(図35中の丸囲み数字3を参照)。
「module_3delay B_delay」の出力(outB_3d)はmodule_Cの入力に接続される。
S6b-1: Since the latency final output branch path flag calculated in S5-8 is asserted, the process proceeds to S6b-2.
S6b-3: A branch path path (branch_B) is generated from the last module (module_B) output (outB) path at the latency insertion position to be inserted in S5-8. (Refer to the circled number 1 in Fig. 35 for the generated state)
S6b-4: Connect the branch path (branch_B) to the branch destination module (module_A) for connection. (Refer to circled number 2 in Fig. 35 for connection)
S6b-5: Latency “module_3delay B_delay” is inserted after the final module (module_B) output (outB) (see circled numeral 3 in FIG. 35).
The output (outB_3d) of “module_3delay B_delay” is connected to the input of module_C.

なお、S5-8で算出したレイテンシは最終出力分岐パスフラグがアサートしていないので挿入経路にレイテンシを挿入することになる(S6b-1においてS6b-2へ遷移)。(図35のmodule_2delay IN1_delay参照)   Note that the latency calculated in S5-8 is inserted into the insertion path because the final output branch path flag is not asserted (transition to S6b-2 in S6b-1). (See module_2delay IN1_delay in Figure 35)

本実施形態による処理の結果(図35参照)により生成される回路は図46となる。図46に示す回路がデバイスに実装されることになる。   FIG. 46 shows a circuit generated based on the result of the processing according to this embodiment (see FIG. 35). The circuit shown in FIG. 46 is mounted on the device.

上記実施形態によれば、調整パスの調整ポイント(モジュールBのoutB)に他モジュール(モジュールA)への分岐パスのある場合でも、適切な位置にレイテンシを自動挿入が可能となる。(適切ではないレイテンシ挿入例:図47を参照)   According to the above embodiment, even when there is a branch path to another module (module A) at the adjustment point (outB of module B) of the adjustment path, the latency can be automatically inserted at an appropriate position. (Inappropriate latency insertion example: see Figure 47)

なお、上記実施形態では、レイテンシ情報の抽出を動作合成ログ結果から抽出したが、設計時にソースコード上に指定するディレクティブ情報からレイテンシ情報を抽出することが可能である。   In the above-described embodiment, the extraction of latency information is extracted from the behavioral synthesis log result. However, the latency information can be extracted from directive information specified on the source code at the time of design.

以上に説明した各実施形態によれば、高位合成設計において、特に周波数upによる再利用時に、レイテンシの再設計を自動化できる。すなわち、モジュール間のレイテンシ調整を行い、スループットの最適化を行うことが可能になる。   According to each embodiment described above, it is possible to automate the redesign of the latency in the high-level synthesis design, particularly when the frequency is reused. That is, it becomes possible to adjust the latency between modules and optimize the throughput.

また、上記各実施形態によれば、レイテンシ調整パス抽出部202がレイテンシ調整ポイントから入力ポイントまでのパスを抽出するため、任意のポイントのレイテンシ調整が可能となる。   Further, according to each of the above embodiments, the latency adjustment path extraction unit 202 extracts a path from the latency adjustment point to the input point, so that it is possible to adjust the latency of an arbitrary point.

また、上記各実施形態によれば、レイテンシ情報抽出の際、高位合成ログ結果及びディレクティブ情報(設計時にソースコード上に指定)の少なくともいずれか一方に基づいてレイテンシ算出情報を抽出する。そのため、ユーザーの理解しやすい情報からレイテンシ情報を得ることができる効果を有する。   Further, according to each of the above embodiments, latency extraction information is extracted based on at least one of high-level synthesis log results and directive information (specified on the source code at the time of design) when extracting latency information. Therefore, there is an effect that latency information can be obtained from information that can be easily understood by the user.

また、上記各実施形態によれば、レイテンシ算出アルゴリズムが容易となり、PC負荷が軽くなる効果がある。   Further, according to each of the above embodiments, the latency calculation algorithm becomes easy and the PC load is reduced.

また、上記各実施形態によれば、人手を介さず、レイテンシを挿入することが可能となる。人的な接続ミスもなくなる。   In addition, according to each of the above embodiments, it is possible to insert latency without human intervention. There is no human connection error.

また、上記実施形態2によれば、複数入力のあるモジュールで構成されるモジュール間のレイテンシ調整も自動化可能となる。また、複数入力のあるモジュールで構成されるモジュール間のレイテンシ調整も自動化可能となる。   Further, according to the second embodiment, it is possible to automate latency adjustment between modules configured by modules having a plurality of inputs. In addition, it is possible to automate latency adjustment between modules configured by modules having a plurality of inputs.

また、上記実施形態3によれば、調整パスの調整ポイントに他モジュールへの分岐パスのある場合でも、分岐パスに接続しているモジュールの入力タイミングも保持しながらレイテンシ調整が可能となる。   Further, according to the third embodiment, even when there is a branch path to another module at the adjustment point of the adjustment path, the latency adjustment can be performed while maintaining the input timing of the module connected to the branch path.

1 高位合成装置
110 コンピュータ本体
120 ネットワーク
201 レイテンシ調整パス指定部
202 レイテンシ調整パス抽出部
203 動作合成部
204 レイテンシ情報抽出部
205 レイテンシ算出部
205a 各パスのレイテンシの合計算出部
205b 最大レイテンシ算出部
205c レイテンシ挿入値計算部
206 レイテンシ挿入部
DESCRIPTION OF SYMBOLS 1 High level synthetic | combination apparatus 110 Computer main body 120 Network 201 Latency adjustment path designation | designated part 202 Latency adjustment path extraction part 203 Behavior synthesis part 204 Latency information extraction part 205 Latency calculation part 205a Latency total calculation part 205b Maximum latency calculation part 205c Latency Insertion value calculation unit 206 Latency insertion unit

特許第3763700号公報Japanese Patent No. 3763700

Claims (12)

動作記述を入力して高位合成処理を行いHDL記述を出力する高位合成装置であって、
動作記述にレイテンシ調整箇所を指定するレイテンシ調整パス指定手段と、
指定されたレイテンシ調整箇所から入力までの入出力の接続関係及びモジュールを抽出するレイテンシ調整パス抽出手段と、
抽出されたモジュールの動作合成を実施する動作合成手段と、
前記動作合成手段の結果に基づいて各モジュールのレイテンシ情報を抽出するレイテンシ情報抽出手段と、
抽出されたレイテンシ情報に基づいて、前記指定されたレイテンシ調整箇所に挿入するレイテンシ値を算出するレイテンシ算出手段と、
算出されたレイテンシ値をHDL記述に挿入するレイテンシ挿入手段と、
を備えることを特徴とする、高位合成装置。
A high-level synthesis device that inputs a behavior description, performs high-level synthesis processing, and outputs an HDL description,
A latency adjustment path designating means for designating a latency adjustment location in the behavioral description;
Latency adjustment path extraction means for extracting input / output connection relationships and modules from the specified latency adjustment location to the input;
Behavioral synthesis means for performing behavioral synthesis of the extracted modules;
Latency information extraction means for extracting latency information of each module based on the result of the behavioral synthesis means;
Latency calculating means for calculating a latency value to be inserted into the designated latency adjustment location based on the extracted latency information;
Latency insertion means for inserting the calculated latency value into the HDL description;
A high-level synthesis apparatus comprising:
前記レイテンシ情報抽出手段は、高位合成ログ結果及びディレクティブ情報の少なくともいずれか一方に基づいて、レイテンシ情報を抽出することを特徴とする、請求項1記載の高位合成装置。   The high-level synthesis apparatus according to claim 1, wherein the latency information extraction unit extracts latency information based on at least one of a high-level synthesis log result and directive information. 前記レイテンシ算出手段は、
各パスのレイテンシの合計算出手段と、
最大レイテンシ算出手段と、
レイテンシ挿入値計算手段と、
を含むことを特徴とする、請求項1又は2記載の高位合成装置。
The latency calculation means includes:
Means for calculating the total latency of each path;
Maximum latency calculation means,
Latency insertion value calculation means,
The high-level synthesis apparatus according to claim 1, wherein the high-level synthesis apparatus includes:
前記各パスのレイテンシの合計算出手段は、
前記レイテンシ調整パス抽出手段が抽出した各パス上のモジュールレイテンシの合計を算出することを特徴とする、請求項3記載の高位合成装置。
The means for calculating the total latency of each path is:
4. The high-level synthesis apparatus according to claim 3, wherein a total of module latencies on each path extracted by the latency adjustment path extraction unit is calculated.
前記各パスのレイテンシの合計算出手段は、
算出の際、パス上に既に挿入すべきレイテンシ挿入値がある場合は、当該レイテンシ挿入値も含めて合計して算出することを特徴とする、請求項4記載の高位合成装置。
The means for calculating the total latency of each path is:
5. The high-level synthesis apparatus according to claim 4, wherein, when there is a latency insertion value to be inserted on the path, the total including the latency insertion value is calculated for calculation.
前記最大レイテンシ算出手段は、
前記各パスのレイテンシの合計算出手段が算出したレイテンシの最大値を算出することを特徴とする、請求項3から5のいずれか1項記載の高位合成装置。
The maximum latency calculating means includes:
6. The high-level synthesis apparatus according to claim 3, wherein a maximum value of the latency calculated by the latency total calculation unit of each path is calculated. 7.
前記レイテンシ挿入値計算手段は、
前記最大レイテンシ算出手段が算出した最大値から、各レイテンシ値を引いて、挿入するべきレイテンシ挿入値を計算することを特徴とする、請求項3から6のいずれか1項記載の高位合成装置。
The latency insertion value calculation means includes:
7. The high level synthesis apparatus according to claim 3, wherein a latency insertion value to be inserted is calculated by subtracting each latency value from the maximum value calculated by the maximum latency calculating means.
前記レイテンシ調整パス抽出手段による抽出過程で多入力モジュールがあると判断される場合は、多入力ポイントのレイテンシ調整を優先的に実施することを特徴とする、請求項1から7のいずれか1項記載の高位合成装置。   8. The multi-input point latency adjustment is preferentially performed when it is determined that there is a multi-input module in the extraction process by the latency adjustment path extracting unit. 9. The high-level synthesizer described. 前記レイテンシ算出手段は、
前記レイテンシ調整パス抽出手段による抽出過程でレイテンシ調整ポイントの最終モジュールの出力に分岐経路があると判断される場合は、分岐経路毎にレイテンシ値を算出することを特徴とする、請求項1から8のいずれか1項記載の高位合成装置。
The latency calculation means includes:
9. The latency value is calculated for each branch path when it is determined in the extraction process by the latency adjustment path extraction means that there is a branch path in the output of the last module of the latency adjustment point. The high level synthesis apparatus according to any one of the above.
前記レイテンシ挿入手段は、
前記レイテンシ調整パス抽出手段による抽出過程でレイテンシ調整ポイントの最終モジュールの出力に分岐経路を有すると判断した場合は、最終モジュール出力経路から分岐経路パスを生成し、分岐経路パスを分岐先のモジュールに接続することを特徴とする、請求項9記載の高位合成装置。
The latency insertion means includes:
If it is determined in the extraction process by the latency adjustment path extraction means that there is a branch path in the output of the final module of the latency adjustment point, a branch path path is generated from the final module output path, and the branch path path is changed to the branch destination module. The high-level synthesis apparatus according to claim 9, wherein the high-level synthesis apparatus is connected.
動作記述を入力して高位合成処理を行いHDL記述を出力する、コンピュータを用いた高位合成方法であって、
動作記述にレイテンシ調整箇所を指定するレイテンシ調整パス指定工程と、
指定されたレイテンシ調整箇所から入力までの入出力の接続関係及びモジュールを抽出するレイテンシ調整パス抽出工程と、
抽出されたモジュールの動作合成を実施する動作合成工程と、
前記動作合成工程の結果に基づいて各モジュールのレイテンシ情報を抽出するレイテンシ情報抽出工程と、
抽出されたレイテンシ情報に基づいて、前記指定されたレイテンシ調整箇所に挿入するレイテンシ値を算出するレイテンシ算出工程と、
算出されたレイテンシ値をHDL記述に挿入するレイテンシ挿入工程と、
を含むことを特徴とする、高位合成方法。
A high-level synthesis method using a computer that inputs a behavior description, performs high-level synthesis processing, and outputs an HDL description.
A latency adjustment pass designating process for designating a latency adjustment location in the behavior description;
Latency adjustment path extraction process for extracting input / output connection relationship and module from specified latency adjustment location to input,
A behavioral synthesis process for performing behavioral synthesis of the extracted modules;
Latency information extraction step of extracting latency information of each module based on the result of the behavioral synthesis step;
A latency calculating step of calculating a latency value to be inserted into the designated latency adjustment location based on the extracted latency information;
A latency insertion step of inserting the calculated latency value into the HDL description;
A high-level synthesis method comprising:
コンピュータを、
動作記述にレイテンシ調整箇所を指定するレイテンシ調整パス指定手段と、
指定されたレイテンシ調整箇所から入力までの入出力の接続関係及びモジュールを抽出するレイテンシ調整パス抽出手段と、
抽出されたモジュールの動作合成を実施する動作合成手段と、
前記動作合成手段の結果に基づいて各モジュールのレイテンシ情報を抽出するレイテンシ情報抽出手段と、
抽出されたレイテンシ情報に基づいて、前記指定されたレイテンシ調整箇所に挿入するレイテンシ値を算出するレイテンシ算出手段と、
算出されたレイテンシ値をHDL記述に挿入するレイテンシ挿入手段として機能させ、
動作記述を入力して高位合成処理を行いHDL記述を出力する高位合成装置として機能させることを特徴とする、高位合成プログラム。
Computer
A latency adjustment path designating means for designating a latency adjustment location in the behavioral description;
Latency adjustment path extraction means for extracting input / output connection relationships and modules from the specified latency adjustment location to the input;
Behavioral synthesis means for performing behavioral synthesis of the extracted modules;
Latency information extraction means for extracting latency information of each module based on the result of the behavioral synthesis means;
Latency calculating means for calculating a latency value to be inserted into the designated latency adjustment location based on the extracted latency information;
Function as a latency insertion means for inserting the calculated latency value into the HDL description;
A high-level synthesis program that functions as a high-level synthesis device that inputs an operation description, performs high-level synthesis processing, and outputs an HDL description.
JP2009141173A 2008-12-16 2009-06-12 High-level synthesis apparatus Withdrawn JP2010165334A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009141173A JP2010165334A (en) 2008-12-16 2009-06-12 High-level synthesis apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008319850 2008-12-16
JP2009141173A JP2010165334A (en) 2008-12-16 2009-06-12 High-level synthesis apparatus

Publications (1)

Publication Number Publication Date
JP2010165334A true JP2010165334A (en) 2010-07-29

Family

ID=42581410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009141173A Withdrawn JP2010165334A (en) 2008-12-16 2009-06-12 High-level synthesis apparatus

Country Status (1)

Country Link
JP (1) JP2010165334A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2014142918A (en) * 2012-12-28 2014-08-07 Mitsubishi Electric Corp Semiconductor integrated circuit design aiding device, method and program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2014142918A (en) * 2012-12-28 2014-08-07 Mitsubishi Electric Corp Semiconductor integrated circuit design aiding device, method and program
US9003352B2 (en) 2012-12-28 2015-04-07 Mitsubishi Electric Corporation Semiconductor integrated circuit design supporting apparatus, method, and program

Similar Documents

Publication Publication Date Title
US6389586B1 (en) Method and apparatus for invalid state detection
US8095900B2 (en) Achieving clock timing closure in designing an integrated circuit
US10331836B1 (en) Loop optimization for implementing circuit designs in hardware
US7926011B1 (en) System and method of generating hierarchical block-level timing constraints from chip-level timing constraints
US9483597B1 (en) Opportunistic candidate path selection during physical optimization of a circuit design for an IC
US11599700B2 (en) Structural matching for fast re-synthesis of electronic circuits
Krishnaswamy et al. DeltaSyn: An efficient logic difference optimizer for ECO synthesis
JP2015524589A (en) Relative timing characterization
Ren A brief introduction on contemporary high-level synthesis
US20230342531A1 (en) Methods and apparatus for profile-guided optimization of integrated circuits
Mishchenko et al. Global delay optimization using structural choices
US8151229B1 (en) System and method of computing pin criticalities under process variations for timing analysis and optimization
US9047434B2 (en) Clustering for processing of circuit design data
Jamieson et al. A verilog RTL synthesis tool for heterogeneous FPGAs
US6192508B1 (en) Method for logic optimization for improving timing and congestion during placement in integrated circuit design
JP2010165334A (en) High-level synthesis apparatus
US9639644B1 (en) Method and apparatus for master-clone optimization during circuit analysis
Cheng et al. DDBDD: Delay-driven BDD synthesis for FPGAs
US9418192B1 (en) Pass eco flow based on reduced timing scope timer
US10339244B1 (en) Method and apparatus for implementing user-guided speculative register retiming in a compilation flow
Possignolo et al. SMatch: Structural matching for fast resynthesis in FPGAS
US7941679B2 (en) Method for computing power savings and determining the preferred clock gating circuit of an integrated circuit design
Kim et al. Concurrent transistor sizing and buffer insertion by considering cost-delay tradeoffs
JP6173571B2 (en) Circuit design apparatus and circuit design program
US8689161B2 (en) Methods for designing integrated circuits employing pre-determined timing-realizable clock-insertion delays and integrated circuit design tools

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120904