JP5692063B2 - Behavioral synthesis apparatus, behavioral synthesis method, and program - Google Patents

Behavioral synthesis apparatus, behavioral synthesis method, and program Download PDF

Info

Publication number
JP5692063B2
JP5692063B2 JP2011506022A JP2011506022A JP5692063B2 JP 5692063 B2 JP5692063 B2 JP 5692063B2 JP 2011506022 A JP2011506022 A JP 2011506022A JP 2011506022 A JP2011506022 A JP 2011506022A JP 5692063 B2 JP5692063 B2 JP 5692063B2
Authority
JP
Japan
Prior art keywords
parameter
processing
level description
internal representation
value
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.)
Active
Application number
JP2011506022A
Other languages
Japanese (ja)
Other versions
JPWO2010110194A1 (en
Inventor
野田 真一
真一 野田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2011506022A priority Critical patent/JP5692063B2/en
Publication of JPWO2010110194A1 publication Critical patent/JPWO2010110194A1/en
Application granted granted Critical
Publication of JP5692063B2 publication Critical patent/JP5692063B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、動作合成装置、動作合成方法、及びプログラムに関する。 The present invention relates to a behavioral synthesis device, a behavioral synthesis method, and a program.

動作合成システムは、集積回路の設計に使用される。
関連する動作合成システムは、言語解析手段(装置)と、内部構造正規化手段(装置)と、CDFG生成手段(装置)と、スケジューリング手段(装置)と、バインディング手段(装置)と、RT記述生成手段(装置)と、で構成されている。
ここで、CDFGは、Control Data Flow Graphの略であり、データ構造の一種である。また、RTは、Register Transferの略で回路記述の一種である。また、スケジューリングとは、各処理を行うサイクルを決めることである。また、バインディングとは、各処理の演算やメモリアクセスに関し、実際にどの演算器やメモリを使用するかを決めることである。
このような構成を有する動作合成システムは次のように動作する。
この動作合成システムは、このシステムの入力装置から与えられた動作記述を解析し、関数・ループなどの構造をCDFG生成のために正規化する。さらに、その動作合成システムは、正規化後にCDFGを生成してから、スケジューリング、バインディングと進み、必要に応じてこれらの工程を複数回繰り返した上で、RT記述を生成する。
この種の動作合成システムでは、最終的なLSI回路上で定数として扱われるようなパラメータに関しては、入力装置から動作合成システムの入力段階で定数パラメータとみなし、動作合成システム側はそのパラメータの値を定数として最適化するのが通常であった。逆に、ユーザが動作合成完了後まで、パラメータのまま残したい所望するパラメータがその中に含まれる場合には、すべてのパラメータを変数として扱うほかはなく、その結果、最適化が著しく抑制されていた。尚、LSIは、Large Scale Integrationの略であり、大規模集積回路を意味する。
この種の動作合成システムに関連する技術が特開2001−350809号公報(以下、特許公報1という)、特開2006−079226号公報(以下、特許文献2という)に開示されている。特許文献1に記載の発明は、自己同期型のパイプライン制御を採用したデータ駆動型情報処理装置の設計方法に関する発明である。具体的に説明するとこの発明は、設計上のパラメータを一般的に記述した、ライブラリファイルを準備するステップと、設計上のパラメータの各々についてパラメータ値を設定するステップと、レジスタトランスファレベル設計記述を作成するステップとを含む方法に関する発明である。
特許文献1に記載の発明によれば、設計者は、設計仕様に適合したレジスタトランスファレベル設計記述を自動的に作成でき、設計期間を短縮することができるのに加え、多種多様な仕様にも容易に対処して設計を行なうことができるとしている。
特許文献2に記載の発明は、ハードウェア記述言語合成ツール及びそれを利用した集積回路の設計方法に関する発明である。具体的に説明するとこの発明は、プログラムを解析する手順と、命令コードを、プロセッサソフトウエアファイルに変換する手順と、プロセッサハードウエアファイルとプロセッサソフトウエアファイルとを出力する手順とをコンピュータに実行させるというコンピュータプログラムに関する発明である。
特許文献2に記載の発明によれば、アセンブリレベル言語プログラムの命令コードはハードウエアコンポーネントに対応しているので、アセンブリレベル言語プログラムであれば、1対1で、ハードウェア記述言語で記述したハードウェア設計ファイルに置き換えることができるので、利用者にとって実用的であるとしている。
Behavioral synthesis systems are used in the design of integrated circuits.
The related behavioral synthesis system includes language analysis means (apparatus), internal structure normalization means (apparatus), CDFG generation means (apparatus), scheduling means (apparatus), binding means (apparatus), and RT description generation. And means (apparatus).
Here, CDFG is an abbreviation for Control Data Flow Graph, and is a kind of data structure. RT is an abbreviation for Register Transfer and is a kind of circuit description. Scheduling refers to determining a cycle for performing each process. Binding is to determine which computing unit or memory is actually used for each processing operation or memory access.
The behavioral synthesis system having such a configuration operates as follows.
This behavioral synthesis system analyzes behavioral descriptions given from the input device of this system, and normalizes structures such as functions and loops for generating CDFG. Further, the behavioral synthesis system generates a CDFG after normalization, then proceeds with scheduling and binding, and repeats these steps a plurality of times as necessary to generate an RT description.
In this type of behavioral synthesis system, parameters that are treated as constants in the final LSI circuit are regarded as constant parameters at the input stage from the input device to the behavioral synthesis system , and the behavioral synthesis system side sets the values of the parameters It was usual to optimize as a constant. Conversely, if the user wants to keep the parameters until after the behavioral synthesis is completed, there is no choice but to treat all parameters as variables, and as a result, optimization is significantly suppressed. It was. LSI is an abbreviation for Large Scale Integration, and means a large-scale integrated circuit.
Techniques related to this type of behavioral synthesis system are disclosed in Japanese Patent Application Laid-Open No. 2001-350809 (hereinafter referred to as Patent Document 1) and Japanese Patent Application Laid-Open Publication No. 2006-079226 (hereinafter referred to as Patent Document 2). The invention described in Patent Document 1 is an invention relating to a method for designing a data driven information processing apparatus employing self-synchronous pipeline control. Specifically, the present invention creates a library file that generally describes design parameters, sets parameter values for each design parameter, and creates a register transfer level design description. And a step including the step of:
According to the invention described in Patent Document 1, a designer can automatically create a register transfer level design description that conforms to a design specification, thereby shortening the design period, and also for various specifications. It is said that it can be easily handled and designed.
The invention described in Patent Document 2 is an invention related to a hardware description language synthesis tool and an integrated circuit design method using the same. More specifically, the present invention causes a computer to execute a procedure for analyzing a program, a procedure for converting an instruction code into a processor software file, and a procedure for outputting a processor hardware file and a processor software file. It is invention regarding the computer program.
According to the invention described in Patent Document 2, since the instruction code of the assembly level language program corresponds to a hardware component, if the assembly level language program is used, the hardware described in the hardware description language is 1: 1. It can be replaced with a hardware design file, which is practical for users.

しかしながら、上述した、本発明に関連する技術では、動作合成で入力装置がパラメータを動作合成システムに与えたとき、このパラメータをすべて定数として扱うか、またはすべて変数として扱う、以外に選択肢はない。したがって、両方の扱いを必要とする場合には、上述の関連技術は、最適化を促進することができなかった、という問題がある。
その理由は、上述した動作合成では、内部で扱う値は定数または変数のみに限定されていたため、パラメータだけを特別に扱う手法が発明されていなかったためである。
そこで、本発明の目的は、パラメータをパラメータのままRT記述に残すことができ、かつ適切な最適化が可能な動作合成装置、動作合成方法、及びプログラムを提供することにある。
However, in the technique related to the present invention described above, when the input device gives a parameter to the behavioral synthesis system in the behavioral synthesis, there is no option other than treating all the parameters as constants or treating them as variables. Therefore, when both the treatments are required, there is a problem that the related technology described above cannot promote the optimization.
The reason is that, in the above-described behavioral synthesis, values handled internally are limited to only constants or variables, and thus a method for specially handling only parameters has not been invented.
Accordingly, an object of the present invention is to provide a behavioral synthesis device, behavioral synthesis method, and program that can leave parameters in the RT description as parameters and can perform appropriate optimization.

本発明の装置は、抽象度の高い回路仕様が記述された動作レベル記述を入力する入力装置と、この動作レベル記述を動作合成用の内部表現に変換し、この動作レベル記述に含まれているパラメータを複数に分類し、該分類の結果に応じ、前記パラメータの値を定数または変数として扱うデータ処理装置と、
前記動作レベル記述及び各パラメータを記憶する記憶装置と、
前記RT記述を出力する出力装置と、を備えたことを特徴とする。
ここで、内部表現とは、動作レベルの回路記述を解析した結果を抽象構文木(abstract syntax tree:AST)やCDFGと呼ばれるデータ構造で保存する際の表現を示している。
本発明の方法は、利用者が準備した抽象度の高い回路仕様が記述された動作レベル記述を、言語解析手段が、前記動作レベル記述を言語解析処理により、動作合成用の内部表現に変換し、パラメータ分類手段が、この動作レベル記述に含まれているパラメータを複数に分類し、パラメータ定数化手段が、分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータ使用箇所について、パラメータ定数化処理により、パラメータを最大値の定数値に置き換えると共に、元々のパラメータ名が記録されるように設定し、パラメータ特化手段が、パラメータの取り得る値で特化するものとして合成することになったパラメータ使用箇所について、パラメータ特化処理により、パラメータを各々の値に特化し、内部構造正規化手段が、特化したパラメータごとに個別に内部構造の正規化処理を行い、内部構造のループ及び関数を正規化し、CDFG生成手段が、CDFG生成処理によりCDFGに変換し、バインディング手段が生成されたCDFGに対して、スケジューリング手段を適用し、バインディング処理を行ない、パラメータマージ手段が、パラメータの値ごとに特化して実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行ない、パラメータ変数化手段が、定数化したパラメータを変数に戻すパラメータ変数化を行ない、RT記述生成手段が、RTレベル記述生成処理により、RTレベル記述を生成することを特徴とする。
本発明のプログラムは、コンピュータを、利用者が準備した抽象度の高い回路仕様が記述された動作レベル記述を言語解析処理により、動作合成用の内部表現に変換し、この動作レベル記述に含まれているパラメータを複数に分類する手段、分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータ使用箇所について、パラメータ定数化処理により、パラメータを最大値の定数値に置き換えると共に、元々のパラメータ名が記録されるように設定する手段、パラメータの取り得る値で特化するものとして合成することになったパラメータ使用箇所について、パラメータ特化処理により、パラメータを各々の値に特化する手段、特化したパラメータごとに個別に内部構造の正規化処理を行い、内部構造のループ及び関数を正規化する手段、CDFG生成処理によりCDFGに変換し、生成されたCDFGに対して、スケジューリング手段を適用し、バインディング処理を行う手段、パラメータの値ごとに特化して実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行う手段、定数化したパラメータを変数に戻すパラメータ変数化を行う手段、RTレベル記述生成処理により、RTレベル記述を生成する手段、として機能させることを特徴とする。
The apparatus of the present invention includes an input device for inputting a behavior level description in which a circuit specification having a high level of abstraction is described, and converts the behavior level description into an internal representation for behavioral synthesis, and is included in the behavior level description. A data processing device that classifies the parameter into a plurality of parameters and treats the value of the parameter as a constant or a variable according to a result of the classification;
A storage device for storing the behavior level description and each parameter;
And an output device for outputting the RT description.
Here, the internal expression indicates an expression when the result of analyzing the behavioral level circuit description is saved in an abstract syntax tree (AST) or a data structure called CDFG.
According to the method of the present invention, a language analysis unit converts a behavior level description in which a circuit specification having a high degree of abstraction prepared by a user is described into an internal representation for behavioral synthesis by language analysis processing. The parameter classification means classifies the parameters included in the behavior level description into a plurality of parameters, and the parameter constant conversion means regards the combined parameters as the maximum value that the parameters can take among the classified parameters. For the changed parameter use location, the parameter is converted to the maximum constant value by the parameter constant processing, and the original parameter name is set to be recorded. For parameter use points that are supposed to be synthesized as parameters, parameters are set to their respective values by parameter specialization processing. The internal structure normalization means performs normalization processing of the internal structure individually for each specialized parameter, normalizes the loops and functions of the internal structure, and the CDFG generation means converts to CDFG by the CDFG generation processing, The scheduling means is applied to the CDFG generated by the binding means, the binding process is performed, and the parameter merge means performs a parameter merge process for branching together the binding process results that have been executed specialized for each parameter value. The parameter variableizing means performs parameter variableization to return the converted parameter to a variable, and the RT description generating means generates an RT level description by RT level description generating processing.
The program of the present invention includes a computer that converts a behavior level description in which a circuit specification with a high degree of abstraction prepared by a user is described into an internal representation for behavioral synthesis by language analysis processing, and is included in the behavior level description. The parameter is converted to the maximum value by the parameter constantization process for the parameter use part that is considered to be the maximum value of the possible values of the parameter among the classified parameters. In addition to replacing with a constant value, the parameter setting process is performed for the parameter use location that is to be synthesized as a means for setting the original parameter name to be recorded and the value that can be taken by the parameter. A means to specialize each value, normalize the internal structure for each specialized parameter, Means for normalizing loops and functions of substructures, converting into CDFG by CDFG generation processing, applying scheduling processing to the generated CDFG, performing binding processing, and executing for each parameter value A means for performing a parameter merge process for branching the binding processing results collectively, a means for performing a parameter variable for returning a constant parameter to a variable, and a means for generating an RT level description by an RT level description generation process It is characterized by that.

本発明によれば、パラメータをパラメータのままRT記述に残すことができ、かつ適切な最適化が可能な動作合成装置、動作合成方法、及びプログラムの提供を実現することができる。   According to the present invention, it is possible to provide a behavioral synthesis device, a behavioral synthesis method, and a program that can leave parameters in the RT description as parameters and can perform appropriate optimization.

本発明に係る動作合成装置の一実施の形態を示すブロック図である。It is a block diagram which shows one Embodiment of the behavioral synthesis apparatus which concerns on this invention. 図1に示した動作合成装置の動作を説明するためのフローチャートの一例である。It is an example of the flowchart for demonstrating operation | movement of the behavioral synthesis apparatus shown in FIG. 本発明に係る動作合成装置の他の実施の形態を示すブロック図である。It is a block diagram which shows other embodiment of the behavioral synthesis apparatus which concerns on this invention. 本発明に係る動作合成装置の他の実施の形態を示すブロック図である。It is a block diagram which shows other embodiment of the behavioral synthesis apparatus which concerns on this invention. 本発明に係る動作合成装置の他の実施の形態を示すブロック図である。It is a block diagram which shows other embodiment of the behavioral synthesis apparatus which concerns on this invention. 図3に示した動作合成装置の動作を説明するためのフローチャートの一例である。It is an example of the flowchart for demonstrating operation | movement of the behavioral synthesis apparatus shown in FIG. 図4に示した動作合成装置の動作を説明するためのフローチャートの一例である。It is an example of the flowchart for demonstrating operation | movement of the behavioral synthesis apparatus shown in FIG. 図5に示した動作合成装置の動作を説明するためのフローチャートの一例である。It is an example of the flowchart for demonstrating operation | movement of the behavioral synthesis apparatus shown in FIG.

<構 成>
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
図1は、本発明に係る動作合成装置の一実施の形態を示すブロック図である。
図1を参照すると、本動作合成装置は、プログラム制御により動作するデータ処理装置2と、入力装置1と、記憶装置3と、出力装置4と、を備えている。
入力装置1としては、例えば、キーボード、マウス、ポインティングデバイスが挙げられる。
データ処理装置2は、言語解析部2a、パラメータ分類部2b、内部構造正規化部2e、パラメータ定数化部2c、パラメータ特化部2d、CDFG生成部2f、スケジューリング部2g、バインディング部2h、パラメータマージ部2i、パラメータ変数化部2j、及びRT記述生成部2kを含む。
記憶装置3としては、例えば、HDD(Hard Disc Drive:ハードディスク)やフラッシュメモリが挙げられる。
出力装置4としては、例えば、液晶表示装置、プラズマディスプレイ、プリンタ、プロッタ等が挙げられる。
これら言語解析部2a〜RT記述生成部2kは、ソフトウェアで構成されており、それぞれつぎのように動作する。
言語解析部2aは、入力装置1により与えられたパラメータを含んだ動作レベル記述を解析し、内部表現に変換する。ここで言語とは、たとえば、設計パラメータの動作レベルを記述したソフトウェア言語(動作レベル記述とも言う)である。パラメータは、たとえば、定数または変数として扱われる、LSI設計上のパラメータである。
パラメータ分類部2bは、言語解析部2aにより与えられた動作記述の内部表現、パラメータ、およびユーザによるパラメータの処理方法指定を考慮して、パラメータを、変数のまま扱うもの、パラメータの取り得る値の最大値とみなして合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類する。
パラメータ定数化部2cは、パラメータ分類部2bにより、パラメータの取り得る値の最大値とみなして合成することになったパラメータ使用箇所を、最大値の定数値に置き換えると共に、元々のパラメータ名が記録されるように設定する。
パラメータ特化部2dでは、パラメータ分類部2bにより、パラメータの取り得る値で特化すると決められたパラメータ使用箇所について、実際に、複数の取り得る値で特化した内部表現(または内部構造とも言う)を各々作成する。
内部構造正規化部2eは、パラメータ特化部2dでパラメータを特化した各々の内部表現のそれぞれに対し、関数やループなどに相当する部分を適宜展開する処理などによって、正規化する。
CDFG生成部2fは、正規化された各々の内部表現をCDFG(コントロールデータフローグラフ)に変換する。
スケジューリング部2gは、CDFG生成部2fにより生成された各々のCDFG上で、リソースや入出力をスケジューリングする。
バインディング部2hは、スケジューリング部2gを繰り返して実現されたスケジューリング結果に基づいて、演算器などのリソースを割り当てる。
パラメータマージ部2iは、パラメータ特化部2dでパラメータの取り得る値ごとに特化して、それぞれのパラメータ値に基づいてバインディング部2hでバインディングまで実施されたものをパラメータの値で分岐するようにマージする。
パラメータ変数化部2jは,パラメータ定数化部2cで最大値の定数に変換したパラメータを元のパラメータに復元する。さらにパラメータ変数化部2jは、その結果に基づき、RT記述生成部2kでRT記述を生成し、出力装置4に出力する。
各々の処理手段は、必要に応じてシステムの記憶装置3に属するシステム内部表現記憶部3aに対して、変換結果の書き出しおよび読み込みを行う。
<動 作>
次に、図2を参照して本実施形態の全体の動作について詳細に説明する。
図2は、図1に示した動作合成装置の動作を説明するためのフローチャートの一例である。
まず、利用者はC言語などの抽象度の高い回路仕様が記述されている動作レベル記述を用意する(図2のブロックA1)。この動作記述は、本発明の実施の形態の対象となる、パラメータを含む記述であるものとする。
次に言語解析部2aはA1の動作レベル記述を言語解析処理(図2のブロックA2)により、動作合成用の内部表現に変換する。変換された内部表現はAST(抽象構文木)などのデータ構造で表現される。
次に、パラメータ分類部2bはパラメータ分類処理(図2のブロックA3)により、動作レベル記述におけるパラメータを、変数のまま扱うもの、パラメータの取り得る値の最大値とみなして合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類する。分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータ使用箇所について、パラメータ定数化部2cはパラメータ定数化処理(図2のブロックA4)を実行する。すなわち、パラメータ定数化部2cは、パラメータを最大値の定数値に置き換えると共に、元々のパラメータ名を記録するように設定する。さらに、パラメータの取り得る値で特化するものとして合成することになったパラメータの使用箇所について、パラメータ特化部2dは、パラメータ特化処理(図2のブロックA5)を行う。すなわち、パラメータ特化部2dは、それぞれのパラメータの使用箇所に対し、パラメータを実際に複数の取り得る値で特化した、内部表現(内部構造)を生成する。以降は、特化したパラメータごとに、個別に、内部構造正規化部2e、CDFG生成部2f、スケジューリング部2g、バインディング部2hが、それぞれの処理を実行する。この処理の実行は、複数のプロセッサで時間的に並列に実行することも、単一のプロセッサで順次実行することも可能である。これら内部構造正規化部2e、CDFG生成部2f、スケジューリング部2g、バインディング部2hにおける処理をこの順番に説明する。
内部構造正規化部2eは、パラメータ特化部2dで生成された内部構造に対し正規化処理(図2のブロックA6)を行い、内部構造のループや関数などを正規化する。
次に、CDFG生成部2fは、CDFG生成処理(図2のブロックA7)により、正規化された内部構造をCDFGに変換する。次に、生成されたCDFGに対して、スケジューリング部2gがスケジューリング(図2のブロックA8)し、バインディング部2hが、バインディング処理(図2のブロックA9)を行う。すなわち、バインディング部2hは、スケジューリング部2gでのスケジューリング結果に基づいて、それぞれ正規化された内部構造に対して演算器などのリソースを割り当てる。
ひきつづいて、パラメータマージ部2iが、パラメータの値ごとに特化して実行されたバインディング処理結果をまとめて、パラメータの値で分岐させるパラメータマージ処理(図2のブロックA10)を行う。
パラメータ定数化部2cでのパラメータ定数化処理により、パラメータを最大値により定数化したものについて、パラメータ変数化部2jは、もとのパラメータに復帰させるパラメータ変数化処理(図2のブロックA11)を行う。
最後に、RT記述生成部2kはRTレベル記述生成処理(図2のブロックA12)により、RTレベル記述を生成する(図2のブロックA13)。
<実施の形態の効果>
次に、本実施の形態の効果について説明する。
本実施の形態では、パラメータを変数、最大値による定数、特化した定数に分類し、変換することにより、動作合成システムにおける主処理である、スケジューリング・バインディングなどへのパラメータの処理の違いによる影響を最小限に抑えつつ、本発明の目的である、回路性能の低下を抑制しながら、動作記述におけるパラメータをRTレベル記述に反映する、という目的を達成できる効果がある。その理由は、パラメータ分類部が動作レベル記述に含まれるパラメータを複数に分類し、この分類の結果に応じて、データ処理装置がRT記述を出力するからである。
なお、本発明の実施の形態では、パラメータに関する処理を、内部構造の正規化の前段と、バインディング処理の後段に置くことで実現している。しかし、本発明の実施の形態は、動作合成の実現方法に応じて、言語解析手段、内部構造正規化手段、CDFG生成手段、スケジューリング手段など別の手段の一部としてパラメータに関する処理を実現することも可能である。また、本発明の実施の形態は、上記の複数の手段の一部として、複数の処理位置でパラメータに関する処理を実現することも可能である。
<プログラム及び記憶媒体>
以上で説明した本発明にかかる動作合成装置は、コンピュータで処理を実行させるプログラムによって実現されている。コンピュータとしては、例えばパーソナルコンピュータやワークステーションなどの汎用的なものが挙げられるが、本発明はこれに限定されるものではない。一例として、上述した実施形態に係る動作合成装置を、ソフトウェアプログラムをコンピュータにおいて実行することによって実現する場合について以下に説明する。
コンピュータを、
(1)利用者が準備した、抽象度の高い回路仕様が記述された、動作レベル記述を言語解析処理により、動作合成用の内部表現に変換し、複数に分類する手段、
(2)分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータ使用箇所について、パラメータ定数化処理により、パラメータを最大値の定数値に置き換えると共に、元々のパラメータ名を記録するように設定する手段、
(3)パラメータの取り得る値で特化するものとして合成することになったパラメータ使用箇所について、パラメータ特化処理により、パラメータを各々の値に特化する手段、
(4)特化したパラメータごとに個別に内部構の正規化処理を行い、内部構造のループ及び関数を正規化する手段、
(5)CDFG生成処理によりCDFGに変換し、生成されたCDFGに対して、スケジューリング手段を適用し、バインディング処理を行う手段、
(6)パラメータの値ごとに特化して実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行う手段、
(7)定数化したパラメータを変数に戻すパラメータ変数化を行う手段、
(8)RTレベル記述生成処理により、RTレベル記述を生成する手段、
として機能させるためのプログラムが挙げられる。
これにより、プログラムが実行可能なコンピュータ環境さえあれば、どこにおいても本発明にかかる動作合成装置を実現することができる。
このようなプログラムは、コンピュータに読み取り可能な記憶媒体に記憶されていてもよい。
ここで、記憶媒体としては、例えば、CD−ROM(Compact Disc Read Only Memory)、フレキシブルディスク(FD)、CD−R(CD−Recordable)などのコンピュータで読み取り可能な記憶媒体、フラッシュメモリ、RAM(Random Access Memory)、ROM(Read Only Memory)、FeRAM(強誘電体メモリ)等の半導体メモリやHDDが挙げられる。
上述した実施の形態では、パラメータが、最大値とみなして合成するものと、パラメータの取り得る値ごとに特化して実行するものとに分類される場合について説明した。具体的には、データ処理装置は、分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータ使用箇所について、パラメータを最大値の定数値に定数化している。 この時、データ処理装置は元々のパラメータ名を記録するように設定している。 データ処理装置は、パラメータの取り得る値で特化するものとして合成することになったパラメータ使用箇所について、パラメータを各々の値に特化し、パラメータの値ごとに特化して実行している。データ処理装置は、これらの、特化して実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行なっている。最後に、データ処理装置は、定数化したパラメータを変数に戻すパラメータ変数化処理を行なっている。
上述した実施の形態は、本発明の好適な実施の形態の一例を示すものであり、本発明はそれに限定されることなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。以下に他の実施形態について説明する。
図3は、本発明に係る動作合成装置の他の実施の形態を示すブロック図である。
図4は、本発明に係る動作合成装置の他の実施の形態を示すブロック図である。
図5は、本発明に係る動作合成装置の他の実施の形態を示すブロック図である。
図6は、図3に示した動作合成装置の動作を説明するためのフローチャートの一例である。
図7は、図4示した動作合成装置の動作を説明するためのフローチャートの一例である。
図8は、図5に示した動作合成装置の動作を説明するためのフローチャートの一例である。
本発明は、これらの図3〜8にて説明される以下の(a)〜(c)の実施形態のいずれであってもよい。
(a)分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータ使用箇所について、パラメータを最大値の定数値に定数化し、定数化したパラメータを変数に戻すパラメータ変数化処理を行う(図4、図7)、
(b)元々のパラメータ名を記録するように設定し、パラメータの取り得る値で特化するものとして合成することになったパラメータ使用箇所について、パラメータを各々の値に特化し、パラメータの値ごとに特化して実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行う(図3、図6)、
(c)(a)及び(b)のいずれも行わない(図5、図8)。
次に、具体的な例を用いて本発明を実施するための最良の形態の動作を説明する。
以下の記述例1〜17では、動作記述はSystemC言語による記法に準じ、RT記述はVerilog HDLの記法に準ずるものとする。
ここで、設計者は、#pragma PARAMETER(N)
により、PARAMETERの引数(この場合N)がパラメータであることを指定できるものとし、#pragma PARAMETER(N;0−3,5,7−8,10)などのように値の取り得る範囲および離散値を指定できるものとする。この場合、0,1,2,3,5,7,8,10が取り得るパラメータの値となる。 パラメータで指定した値は、設計対象の回路において、比較や代入、演算で使われる他、主に配列のワード長(要素数)や変数のビット幅、ループの実行回数などに使われる。
記述例1は、本発明の実施の形態の動作合成装置の入力装置1に入力される、配列のワード長にパラメータを用いた場合の動作記述の一例である。
記述例1

Figure 0005692063
データ処理装置2が、記述例1に示したパラメータを変数として扱って合成した場合、RT記述生成部2kは、最終的なVerilog HDLとして、記述例2のように、Nをparameter(パラメータ)とした合成結果を発生する。
記述例2
Figure 0005692063
Figure 0005692063
記述例2は、記述例1に示した動作合成装置による変換結果例の一つである。
また、データ処理装置2が記述例1に示したパラメータを、パラメータの範囲での最大値としてみなして合成した場合、N=8として扱う。したがって、パラメータ定数化部2cは記述例1を記述例3のように設定し、最終的にパラメータ変数化部2jはVerilog HDLで(は)、8をNに戻す。この結果、RT記述生成部2kは記述例4を発生する。
記述例3
Figure 0005692063
記述例4
Figure 0005692063
記述例3は、図1に示した動作合成装置による変換途中例の一つであり、記述例4は、図1に示した動作合成装置による変換結果例の一つである。
パラメータの取り得る値で特化した場合、パラメータ特化部2dは、記述例1を記述例5のような3種類のパターンとみなし、データ処理装置2がこの3種類のパターンのそれぞれを合成することになる。
記述例5
Figure 0005692063
記述例5は、図1に示した動作合成装置による変換途中例の一つである。
パラメータマージ部2iが、パラメータをマージした後、RT記述生成部2kが最終的なVerilog HDLとして、記述例6に示すようなRT記述を発生する。
記述例6
Figure 0005692063
記述例6では、Nの値に応じて、parameterではなく‘defineする値を変えることになる。記述例6は、図1に示した動作合成装置による変換結果例の一つである。
記述例7は、本発明の実施の形態の動作合成装置の入力装置1に入力される、変数のビット幅にパラメータを用いた場合の動作記述の一例である。
記述例7
Figure 0005692063
すなわち、記述例7は、図1に示した動作合成装置の入力となる動作記述の一例である。データ処理装置2が、記述例7に示したパラメータを変数として扱って合成した場合、RT記述生成部2kは、最終的なVerilogHDLとして、記述例8のように、Nをparameterとした合成結果となる。
記述例8
Figure 0005692063
Figure 0005692063
記述例8は、図1に示した動作合成装置による変換結果例の一つである。
また、記述例7の加算器INST_ADDは、Nの値を書き換えることによってビット幅BITWがこの値で置き換えられる。このように、parameterでビット幅を調整可能な加算器とすることにより、パラメータごとに効率的な回路を生成可能となる。
また、データ処理装置2が記述例7に示したパラメータを、パラメータの範囲での最大値としてみなして合成した場合、N=8として扱うため、パラメータ定数化部2cが記述例7を記述例9のようにみなし、最終的にパラメータ変数化部2iがVerilog HDLで、8をNに戻して、RT記述生成部2kは記述例10を発生する。
記述例9
Figure 0005692063
記述例10
Figure 0005692063
Figure 0005692063
記述例9は、図1に示した動作合成装置による変換途中例の一つであり、
記述例10は、図1に示した動作合成装置による変換結果例の一つである。
この場合、8がパラメータであったという情報を合成中にどこまで伝播させるかにより、Nの影響を受ける範囲が変わることになる。
記述例10では、変数のビット幅そのものだけをNでの制御可能範囲とした例であるため、加算器のビット幅はNの最大値8に依存したものになっている。
また、パラメータの取り得る値で特化した場合、パラメータ特化部2dは、記述例7を記述例11のように3種類のパターンとみなし、データ処理装置がこの3種類のパターンのそれぞれを合成することになる。
記述例11
Figure 0005692063
Figure 0005692063
記述例11は、図1に示した動作合成装置による変換途中例の一つである。
パラメータマージ部2iが、パラメータをマージした後、RT記述生成部2kが最終的なVerilog HDLとして(では)、記述例12のようなRT記述を発生する。
記述例12
Figure 0005692063
Figure 0005692063
Figure 0005692063
記述例12は、図1に示した動作合成装置による変換結果例の一つである。記述例12において、Nの値に応じて特化して合成した結果のうち、同じ部分を一共有化して出力しているが、共有化は必須ではないため、全文をばらばらに出して、‘ifdefで切り替えることも可能である。
記述例13は、本発明の動作合成装置の入力装置に入力される、ループの実行回数にパラメータを用いた場合の動作記述の一例である。
記述例13
Figure 0005692063
データ処理装置2が、記述例13に示したパラメータを変数として扱って合成した場合、記述例14のように、ループの実行回数の取り得る値ごとに条件を付加してループを展開することができ、RT記述生成部2kは、最終的なVerilog HDLとして、記述例15のように、Nをparameterとした合成結果を発生する。
記述例14
Figure 0005692063
記述例13は、図1に示した動作合成装置の入力となる動作記述の一例であり、記述例14は、図1に示した動作合成装置による変換途中例の一つである。記述例15は、図1に示した動作合成装置による変換結果例の一つである。
記述例15
Figure 0005692063
一方、パラメータの範囲での最大値とした合成は、ループの実行回数など制御論理にパラメータが関わるときは不可能であるためこの手法を選択することはできない。パラメータの取り得る値で特化した場合、データ処理装置2は、記述例13を記述例16のように3種類のパターンとみなし、パラメータ特化部2dがこの3種類のパターンのそれぞれを合成することになる。そして、パラメータマージ部2iが、パラメータをマージした後、RT記述生成部2kが最終的なVerilogHDLとして、記述例17に示すようなRT記述を発生する。
記述例16
Figure 0005692063
記述例17
Figure 0005692063
Figure 0005692063
記述例16は、図1に示した動作合成装置による変換途中例の一つである。記述例17は、図1に示した動作合成装置による変換結果例の一つである。
このように、本実施形態の動作合成システムは、言語解析部と、内部構造正規化部と、CDFG生成部と、スケジューリング部と、バインディング部と、RT記述生成部とを備える。このような構成を採用し、パラメータを使用箇所に応じて、1)変数として扱い、同じパラメータを用いている変数同士などで適宜共有する、2)パラメータの範囲の最大値とみなして合成し、合成後にパラメータに戻す、3)パラメータの取り得る値に特化した回路を別個に合成して、その部分をVerilog HDLの‘ifdefディレクティブなどで切り替える、などの合成方法を選択することにより、本発明の目的を達成することができる。
本実施形態によれば、合成された回路の再利用性が高まる。
その理由は、一般的な動作合成装置は、動作合成後の回路で、ビット幅などのパラメータを変更した場合、パラメータを合成されたRT記述にも変数として保持することで回路の品質を犠牲にするか、パラメータを変更して、再度、動作合成を実施することが求められていたのに対し、本実施形態では、RT記述上で、パラメータを変更するだけで、回路品質の犠牲を抑えつつ、再度、動作合成を実施することを避けられるためである。
ここで、上述した実施形態に係る動作合成システムと、特許文献との相違点について述べる。特許文献1に記載の発明は、パケットデータ幅、メモリタイプ、メモリ容量、並列データパス数など、予め決められた範囲の対象しかパラメタライズできない。これに対し、本実施形態は、図1のパラメータ分類部2b、パラメータ定数化部2c、パラメータ特化部2d、パラメータマージ部2i、及びパラメータ変数化部2jの後処理により、パラメータを動作合成で利用して最適化した上で、さらに最終出力であるRT記述でもパラメータを変更する余地がある機構となっている点で特許文献1に記載の発明と相違する。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2009年3月24日に出願された日本出願特願2009−072301を基礎とする優先権を主張し、その開示の全てをここに取り込む。<Configuration>
Next, the best mode for carrying out the present invention will be described in detail with reference to the drawings.
FIG. 1 is a block diagram showing an embodiment of a behavioral synthesis device according to the present invention.
Referring to FIG. 1, the behavioral synthesis device includes a data processing device 2 that operates under program control, an input device 1, a storage device 3, and an output device 4.
Examples of the input device 1 include a keyboard, a mouse, and a pointing device.
The data processing device 2 includes a language analysis unit 2a, a parameter classification unit 2b, an internal structure normalization unit 2e, a parameter constant conversion unit 2c, a parameter specialization unit 2d, a CDFG generation unit 2f, a scheduling unit 2g, a binding unit 2h, a parameter merge A unit 2i, a parameter variable unit 2j, and an RT description generation unit 2k.
Examples of the storage device 3 include an HDD (Hard Disc Drive: hard disk) and a flash memory.
Examples of the output device 4 include a liquid crystal display device, a plasma display, a printer, and a plotter.
These language analysis units 2a to RT description generation unit 2k are configured by software and operate as follows.
The language analysis unit 2a analyzes the behavior level description including the parameter given by the input device 1 and converts it into an internal representation. Here, the language is, for example, a software language (also referred to as behavior level description) describing the behavior level of the design parameter. The parameter is, for example, an LSI design parameter that is handled as a constant or a variable.
The parameter classification unit 2b considers the internal description of the behavioral description given by the language analysis unit 2a, the parameters, and the parameter processing method designation by the user, and treats the parameters as variables, and the values that the parameters can take. They are classified into three types: those that are considered to be the maximum value, and those that are synthesized by values that can be taken by the parameter.
The parameter constant conversion unit 2c replaces the parameter use location, which the parameter classification unit 2b considers as the maximum value of the parameter, and synthesizes it with the constant value of the maximum value, and records the original parameter name. Set to be.
In the parameter specialization unit 2d, an internal representation (or internal structure) that is actually specialized with a plurality of possible values for the parameter use location determined by the parameter classification unit 2b to be specialized with the possible values of the parameters. ) Each.
The internal structure normalization unit 2e normalizes each internal representation specialized for the parameter by the parameter specialization unit 2d, for example, by appropriately expanding a part corresponding to a function or a loop.
The CDFG generation unit 2f converts each normalized internal representation into a CDFG (control data flow graph).
The scheduling unit 2g schedules resources and input / output on each CDFG generated by the CDFG generation unit 2f.
The binding unit 2h allocates resources such as computing units based on the scheduling result realized by repeating the scheduling unit 2g.
The parameter merging unit 2i specializes each possible value of the parameter by the parameter specializing unit 2d, and merges the ones that have been implemented up to the binding by the binding unit 2h based on the respective parameter values so as to branch by the parameter value. To do.
The parameter variable conversion unit 2j restores the parameter converted to the maximum constant by the parameter constant conversion unit 2c to the original parameter. Further, the parameter variable conversion unit 2j generates an RT description by the RT description generation unit 2k based on the result, and outputs the RT description to the output device 4.
Each processing means writes and reads the conversion result to the system internal representation storage unit 3a belonging to the storage device 3 of the system as necessary.
<Operation>
Next, the overall operation of this embodiment will be described in detail with reference to FIG.
FIG. 2 is an example of a flowchart for explaining the operation of the behavioral synthesis device shown in FIG.
First, the user prepares a behavior level description in which a circuit specification having a high degree of abstraction such as C language is described (block A1 in FIG. 2). This behavioral description is a description including parameters, which is a target of the embodiment of the present invention.
Next, the language analysis unit 2a converts the behavior level description of A1 into an internal expression for behavioral synthesis by language analysis processing (block A2 in FIG. 2). The converted internal representation is represented by a data structure such as AST (abstract syntax tree).
Next, the parameter classification unit 2b uses parameter classification processing (block A3 in FIG. 2) to treat the parameter in the behavior level description as a variable, to synthesize the parameter as the maximum value that the parameter can take, It is classified into three types, specializing in possible values. Of the classified parameters, the parameter constant conversion unit 2c executes the parameter constant conversion process (block A4 in FIG. 2) for the parameter use location that is to be combined as the maximum value that the parameter can take. That is, the parameter constant conversion unit 2c replaces the parameter with the maximum constant value and sets the original parameter name to be recorded. Further, the parameter specializing unit 2d performs a parameter specialization process (block A5 in FIG. 2) on the used part of the parameter that is to be synthesized as a specialization with a possible value of the parameter. That is, the parameter specialization unit 2d generates an internal representation (internal structure) that specializes a parameter with a plurality of possible values for each parameter usage location. Thereafter, the internal structure normalization unit 2e, the CDFG generation unit 2f, the scheduling unit 2g, and the binding unit 2h individually execute the respective processes for each specialized parameter. This process can be executed in parallel in time by a plurality of processors or sequentially by a single processor. The processes in the internal structure normalization unit 2e, the CDFG generation unit 2f, the scheduling unit 2g, and the binding unit 2h will be described in this order.
The internal structure normalization unit 2e performs normalization processing (block A6 in FIG. 2) on the internal structure generated by the parameter specialization unit 2d to normalize loops and functions of the internal structure.
Next, the CDFG generation unit 2f converts the normalized internal structure into CDFG by a CDFG generation process (block A7 in FIG. 2). Next, the scheduling unit 2g performs scheduling (block A8 in FIG. 2) on the generated CDFG, and the binding unit 2h performs binding processing (block A9 in FIG. 2). That is, the binding unit 2h allocates a resource such as an arithmetic unit to each normalized internal structure based on the scheduling result in the scheduling unit 2g.
Subsequently, the parameter merging unit 2i performs a parameter merging process (block A10 in FIG. 2) for collecting the binding process results specialized for each parameter value and branching by the parameter value.
The parameter variableizing unit 2j performs the parameter variableizing process (block A11 in FIG. 2) for returning the parameter to the original parameter for the parameter constantized by the parameter constantizing unit 2c. Do.
Finally, the RT description generation unit 2k generates an RT level description (block A13 in FIG. 2) by RT level description generation processing (block A12 in FIG. 2).
<Effect of Embodiment>
Next, the effect of this embodiment will be described.
In this embodiment, the parameters are classified into variables, constants based on maximum values, and specialized constants, and then converted, so that the effect of differences in parameter processing on scheduling and binding, which is the main processing in the behavioral synthesis system, is achieved. As a result, it is possible to achieve the object of the present invention to reflect the parameters in the operation description in the RT level description while suppressing the deterioration of the circuit performance. This is because the parameter classification unit classifies the parameters included in the behavior level description into a plurality of parameters, and the data processing apparatus outputs the RT description according to the result of the classification.
In the embodiment of the present invention, the process related to the parameter is realized by placing the process before the normalization of the internal structure and after the binding process. However, the embodiment of the present invention realizes processing related to parameters as a part of another means such as language analysis means, internal structure normalization means, CDFG generation means, and scheduling means, depending on the behavioral synthesis realization method. Is also possible. In the embodiment of the present invention, it is also possible to realize processing relating to parameters at a plurality of processing positions as a part of the plurality of means described above.
<Program and storage medium>
The behavioral synthesis apparatus according to the present invention described above is realized by a program that causes a computer to execute processing. Examples of the computer include general-purpose computers such as personal computers and workstations, but the present invention is not limited to this. As an example, a case where the behavioral synthesis device according to the above-described embodiment is realized by executing a software program on a computer will be described below.
Computer
(1) Means for converting a behavior level description prepared by a user describing a high-level circuit specification into an internal representation for behavioral synthesis by language analysis processing and classifying it into a plurality of
(2) Of the classified parameters, the parameter use point that is supposed to be synthesized as the maximum value that can be taken by the parameter is replaced with the constant value of the maximum value by the parameter constant processing, and originally Means to record the parameter name of
(3) Means for specializing a parameter to each value by a parameter specialization process for a parameter use location that is to be synthesized as a specialization with a possible value of the parameter;
(4) perform specialized normalization process of the internal structure individually for each parameter, it means for normalizing the loop and a function of an internal structure,
(5) means for converting into CDFG by CDFG generation processing, applying scheduling processing to the generated CDFG, and performing binding processing;
(6) Means for performing a parameter merge process for branching together the binding process results that are specialized for each parameter value;
(7) Means for parameterization to return a constant parameter to a variable,
(8) means for generating an RT level description by RT level description generation processing;
As a program for making it function.
Thus, the behavioral synthesis apparatus according to the present invention can be realized anywhere as long as there is a computer environment capable of executing the program.
Such a program may be stored in a computer-readable storage medium.
Here, examples of the storage medium include a computer-readable storage medium such as a CD-ROM (Compact Disc Read Only Memory), a flexible disk (FD), and a CD-R (CD-Recordable), a flash memory, and a RAM (RAM). Examples thereof include a semiconductor memory such as a random access memory (ROM), a read only memory (ROM), and a FeRAM (ferroelectric memory) and an HDD.
In the above-described embodiment, the case has been described in which the parameters are classified into those to be synthesized by regarding them as the maximum value, and those to be specifically executed for each possible value of the parameter. Specifically, the data processing device converts the parameter into a constant value of the maximum value for the parameter use location that is considered to be the maximum value that can be taken by the parameter among the classified parameters. Yes. At this time, the data processing apparatus is set to record the original parameter name. The data processing apparatus specializes the parameter for each value and executes the parameter for each parameter value at a parameter use location that is to be synthesized as a special value that can be taken by the parameter. The data processing apparatus performs parameter merge processing for branching these specialized binding processing results collectively. Finally, the data processing apparatus performs a parameter variable process for returning the constant parameter to a variable.
The embodiment described above shows an example of a preferred embodiment of the present invention, and the present invention is not limited thereto, and various modifications can be made without departing from the scope of the invention. Other embodiments will be described below.
FIG. 3 is a block diagram showing another embodiment of the behavioral synthesis device according to the present invention.
FIG. 4 is a block diagram showing another embodiment of the behavioral synthesis device according to the present invention.
FIG. 5 is a block diagram showing another embodiment of the behavioral synthesis device according to the present invention.
FIG. 6 is an example of a flowchart for explaining the operation of the behavioral synthesis device shown in FIG.
FIG. 7 is an example of a flowchart for explaining the operation of the behavioral synthesis device shown in FIG.
FIG. 8 is an example of a flowchart for explaining the operation of the behavioral synthesis device shown in FIG.
The present invention may be any of the following embodiments (a) to (c) described in FIGS.
(A) Among the classified parameters, regarding the parameter use location that is supposed to be synthesized as the maximum value that the parameter can take, the parameter is converted into a constant value of the maximum value, and the converted parameter is used as a variable. Perform parameter variableization processing to return (FIGS. 4 and 7),
(B) The parameter name is set so that the original parameter name is recorded, and the parameter is used for each parameter value for the parameter use location that is to be synthesized as a special value that can be taken by the parameter. A parameter merging process for branching together the results of the binding process executed in a specialized manner (FIGS. 3 and 6),
(C) Neither (a) nor (b) is performed (FIGS. 5 and 8).
Next, the operation of the best mode for carrying out the present invention will be described using a specific example.
In the following description examples 1 to 17, the operation description conforms to the notation in the SystemC language, and the RT description conforms to the Verilog HDL notation.
Here, the designer uses #pragma PARAMETER (N)
Can specify that the argument of PARAMETER (N in this case) is a parameter, and the range of values and discrete values such as #pragma PARAMETER (N; 0-3, 5, 7-8, 10) A value can be specified. In this case, 0, 1, 2, 3, 5, 7, 8, and 10 are possible parameter values. The value specified by the parameter is used for comparison, substitution, and calculation in the circuit to be designed, and is mainly used for the word length (number of elements) of the array, the bit width of the variable, the number of loop executions, and the like.
The description example 1 is an example of a behavior description when a parameter is used for the word length of the array, which is input to the input device 1 of the behavioral synthesis device according to the embodiment of the present invention.
Description example 1
Figure 0005692063
When the data processing device 2 synthesizes the parameters shown in the description example 1 as variables, the RT description generation unit 2k sets N as a parameter (parameter) as the final Verilog HDL as in the description example 2. The synthesized result is generated.
Description example 2
Figure 0005692063
Figure 0005692063
Description example 2 is one example of a conversion result by the behavioral synthesis device shown in description example 1.
Further, when the data processing apparatus 2 regards the parameter shown in the description example 1 as a maximum value in the parameter range and combines them, it is handled as N = 8. Therefore, the parameter constant conversion unit 2c sets the description example 1 as in the description example 3, and finally the parameter variable conversion unit 2j is Verilog HDL (8) and returns 8 to N. As a result, the RT description generation unit 2k generates description example 4.
Description example 3
Figure 0005692063
Description example 4
Figure 0005692063
The description example 3 is one of conversion examples by the behavioral synthesis device shown in FIG. 1, and the description example 4 is one of conversion results by the behavioral synthesis device shown in FIG.
When specializing with possible values of parameters, the parameter specializing unit 2d regards the description example 1 as three types of patterns like the description example 5, and the data processing device 2 synthesizes each of these three types of patterns. It will be.
Description example 5
Figure 0005692063
The description example 5 is one example of conversion in progress by the behavioral synthesis device shown in FIG.
After the parameter merge unit 2i merges the parameters, the RT description generation unit 2k generates an RT description as shown in the description example 6 as the final Verilog HDL.
Description example 6
Figure 0005692063
In the description example 6, according to the value of N, the value to be defined is changed instead of the parameter. Description example 6 is one example of a conversion result by the behavioral synthesis device shown in FIG.
The description example 7 is an example of a behavior description when a parameter is used for the bit width of a variable that is input to the input device 1 of the behavioral synthesis device according to the embodiment of the present invention.
Description example 7
Figure 0005692063
That is, the description example 7 is an example of a behavior description that becomes an input of the behavioral synthesis device illustrated in FIG. When the data processing apparatus 2 treats the parameter shown in the description example 7 as a variable and synthesizes it, the RT description generation unit 2k sets the final Verilog HDL as a description result in which N is a parameter as in the description example 8. Become.
Description example 8
Figure 0005692063
Figure 0005692063
The description example 8 is one example of a conversion result by the behavioral synthesis device shown in FIG.
Further, the adder INST_ADD of the description example 7 replaces the bit width BITW with this value by rewriting the value of N. In this way, an efficient circuit can be generated for each parameter by using an adder in which the bit width can be adjusted by a parameter.
In addition, when the data processing apparatus 2 regards the parameter shown in the description example 7 as a maximum value in the parameter range and synthesizes the parameter, the parameter constantizing unit 2c treats the description example 7 as the description example 9. Finally, the parameter variableizing unit 2i is Verilog HDL, 8 is returned to N, and the RT description generating unit 2k generates the description example 10.
Description example 9
Figure 0005692063
Description example 10
Figure 0005692063
Figure 0005692063
Description example 9 is one example of conversion in progress by the behavioral synthesis device shown in FIG.
The description example 10 is one example of the conversion result by the behavioral synthesis device shown in FIG.
In this case, the range affected by N varies depending on how far the information that 8 is a parameter is propagated during synthesis.
In the description example 10, only the bit width of the variable itself is an N controllable range, so the bit width of the adder depends on the maximum value 8 of N.
Also, when specializing with possible values of parameters, the parameter specializing unit 2d regards the description example 7 as three types of patterns like the description example 11, and the data processing apparatus synthesizes each of these three types of patterns. Will do.
Description example 11
Figure 0005692063
Figure 0005692063
The description example 11 is one example of conversion in progress by the behavioral synthesis device shown in FIG.
After the parameter merging unit 2i merges the parameters, the RT description generating unit 2k generates (in) the RT description as in the description example 12 as the final Verilog HDL.
Description example 12
Figure 0005692063
Figure 0005692063
Figure 0005692063
The description example 12 is one example of the conversion result by the behavioral synthesis device shown in FIG. In the description example 12, the same part of the result synthesized according to the value of N is shared and output. However, since sharing is not essential, the whole sentence is output separately, and 'ifdef It is also possible to switch with.
The description example 13 is an example of a behavior description in the case where a parameter is used for the number of loop executions, which is input to the input device of the behavioral synthesis device of the present invention.
Description example 13
Figure 0005692063
When the data processing device 2 treats the parameters shown in the description example 13 as variables and synthesizes them, the loop may be expanded by adding a condition for each possible value of the loop execution number as in the description example 14. The RT description generation unit 2k generates a synthesis result with N as a parameter as described in the description example 15 as the final Verilog HDL.
Description example 14
Figure 0005692063
The description example 13 is an example of a behavior description that is input to the behavioral synthesis device illustrated in FIG. 1, and the description example 14 is one example of an intermediate conversion by the behavioral synthesis device illustrated in FIG. 1. The description example 15 is one of conversion result examples by the behavioral synthesis device shown in FIG.
Description example 15
Figure 0005692063
On the other hand, since the synthesis with the maximum value in the parameter range is impossible when parameters are involved in the control logic such as the number of loop executions, this method cannot be selected. When specializing with possible values of parameters, the data processing apparatus 2 regards the description example 13 as three types of patterns as in the description example 16, and the parameter specialization unit 2d synthesizes each of these three types of patterns. It will be. Then, after the parameter merge unit 2i merges the parameters, the RT description generation unit 2k generates an RT description as shown in the description example 17 as the final Verilog HDL.
Description Example 16
Figure 0005692063
Description example 17
Figure 0005692063
Figure 0005692063
The description example 16 is one example of conversion in progress by the behavioral synthesis device shown in FIG. The description example 17 is one example of the conversion result by the behavioral synthesis device shown in FIG.
As described above, the behavioral synthesis system of this embodiment includes a language analysis unit, an internal structure normalization unit, a CDFG generation unit, a scheduling unit, a binding unit, and an RT description generation unit. Adopting such a configuration, depending on the location of use, 1) treat it as a variable, and share it appropriately among variables using the same parameter, etc. 2) Combining it as the maximum value of the parameter range, By selecting a synthesis method, such as returning to a parameter after synthesis, 3) separately synthesizing a circuit specialized for a possible value of the parameter, and switching the portion with a 'ifdef directive of Verilog HDL, etc. Can achieve the purpose.
According to this embodiment, the reusability of the synthesized circuit is enhanced.
The reason is that when a behavioral synthesis device changes parameters such as bit width in a circuit after behavioral synthesis, the quality of the circuit is sacrificed by retaining the parameter as a variable in the synthesized RT description. On the other hand, while it was required to change the parameters and perform behavioral synthesis again, in the present embodiment, while changing the parameters on the RT description, the sacrifice of circuit quality is suppressed. This is because it is possible to avoid performing behavioral synthesis again.
Here, the difference between the behavioral synthesis system according to the above-described embodiment and the patent document will be described. The invention described in Patent Document 1 can parameterize only objects in a predetermined range such as packet data width, memory type, memory capacity, and number of parallel data paths. On the other hand, in the present embodiment, the parameters are synthesized by the post-processing of the parameter classification unit 2b, the parameter constant conversion unit 2c, the parameter specialization unit 2d, the parameter merge unit 2i, and the parameter variable conversion unit 2j in FIG. It differs from the invention described in Patent Document 1 in that the mechanism has room for changing parameters even in the RT description, which is the final output, after being optimized.
While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2009-073021 for which it applied on March 24, 2009, and takes in those the indications of all here.

本発明によれば、抽象度の高い動作レベルの回路記述から抽象度の低い回路記述を合成する動作合成装置に適用できる。   The present invention can be applied to a behavioral synthesis device that synthesizes a circuit description with a low level of abstraction from a circuit description with a high level of abstraction.

1 入力装置
2 データ処理装置
2a 言語解析部
2b パラメータ分類部
2c パラメータ定数化部
2d パラメータ特化部
2e 内部構造正規化部
2f CDFG生成部
2g スケジューリング部
2h バインディング部
2i パラメータマージ部
2j パラメータ変数化部
2k RT記述生成部
3 記憶装置
3a システム内部表現記憶部
4 出力装置
DESCRIPTION OF SYMBOLS 1 Input device 2 Data processor 2a Language analysis part 2b Parameter classification part 2c Parameter constantization part 2d Parameter specialization part 2e Internal structure normalization part 2f CDFG generation part 2g Scheduling part 2h Binding part 2i Parameter merge part 2j Parameter variable part 2k RT description generation unit 3 storage device 3a system internal representation storage unit 4 output device

Claims (12)

抽象度の高い回路仕様が記述された動作レベル記述を入力する入力手段と、
前記動作レベル記述を言語解析処理により動作合成用の内部表現に変換し、前記内部表現、前記動作レベル記述に含まれるパラメータ、及びユーザによる前記パラメータの処理方法指定に基づき、前記パラメータを、変数のまま扱うもの、パラメータの取り得る値の最大値とみなして合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類する言語解析手段と、
分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータの前記内部表現における使用箇所について、パラメータ定数化処理により、正規化前のパラメータを最大値の定数値に置き換えると共に、元々のパラメータ名を記録するパラメータ定数化手段と、
前記最大値の定数値に置き換えられたパラメータについては各パラメータごとに、個別に前記内部表現の正規化処理を行い、前記内部表現のループ及び関数を正規化する内部構造正規化手段と、
CDFG生成処理により前記各正規化処理された内部表現をCDFGに変換するCDFG生成手段と、
前記各生成されたCDFGに対して、スケジューリング手段を適用してバインディング処理を行なうバインディング手段と、
前記各バインディング処理結果における前記定数化したパラメータを変数に戻すパラメータ変数化処理を行なうパラメータ変数化手段と、
RTレベル記述生成処理により、前記パラメータ変数化処理された前記各バインディング処理結果をもとにRTレベル記述を生成するRT記述生成手段と、
前記動作レベル記述及び各パラメータを記憶する記憶手段と、
前記RTレベル記述を出力する出力手段と、
を備える動作合成装置。
An input means for inputting a behavior level description in which a circuit specification having a high level of abstraction is described;
The behavior level description is converted into an internal representation for behavioral synthesis by language analysis processing, and the parameter is converted into a variable based on the internal representation, the parameter included in the behavior level description, and the parameter processing method specification by the user. Language analysis means for classifying into three types, those that are handled as they are, those that are considered as the maximum value that can be taken by the parameter, those that are synthesized, and those that are specialized by the value that can be taken by the parameter,
Among the classified parameters, the parameter values before normalization are determined by the parameter constant processing for the use points in the internal representation of the parameters that are considered to be the maximum values that can be taken by the parameters. A parameter constant means for replacing the numerical value and recording the original parameter name,
For the parameter replaced with the constant value of the maximum value, for each parameter, the internal representation normalization processing is performed individually, and the internal structure normalizing means for normalizing the loop and function of the internal representation,
CDFG generation means for converting each of the normalized internal representations into CDFG by CDFG generation processing;
Binding means for applying a binding process to each generated CDFG by applying a scheduling means;
Parameter variableizing means for performing parameter variable processing for returning the constant parameter in each binding processing result to a variable;
RT description generation means for generating an RT level description based on each binding processing result subjected to the parameter variable processing by RT level description generation processing;
Storage means for storing the behavior level description and each parameter;
Output means for outputting the RT level description;
A behavioral synthesis device comprising:
抽象度の高い回路仕様が記述された動作レベル記述を入力する入力手段と、
前記動作レベル記述を言語解析処理により動作合成用の内部表現に変換し、前記内部表現、前記動作レベル記述に含まれるパラメータ、及びユーザによる前記パラメータの処理方法指定に基づき、前記パラメータを、変数のまま扱うもの、パラメータの取り得る値の最大値とみなして合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類する言語解析手段と、
分類されたパラメータのうち、パラメータの取り得る値で特化するものとして合成することになったパラメータの前記内部表現における使用箇所について、パラメータ特化処理により、パラメータを各々の値に特化するパラメータ特化手段と、
前記特化したパラメータについては前記特化した値ごとに、個別に前記内部表現の正規化処理を行い、前記内部表現のループ及び関数を正規化する内部構造正規化手段と、
CDFG生成処理により前記各正規化処理された内部表現をCDFGに変換するCDFG生成手段と、
前記各生成されたCDFGに対して、スケジューリング手段を適用してバインディング処理を行なうバインディング手段と、
前記パラメータの特化した値について実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行なうパラメータマージ手段と、
RTレベル記述生成処理により、前記パラメータマージ処理された前記各バインディング処理結果をもとにRTレベル記述を生成するRT記述生成手段と、
前記動作レベル記述及び各パラメータを記憶する記憶手段と、
前記RTレベル記述を出力する出力手段と
を備える動作合成装置。
An input means for inputting a behavior level description in which a circuit specification having a high level of abstraction is described;
The behavior level description is converted into an internal representation for behavioral synthesis by language analysis processing, and the parameter is converted into a variable based on the internal representation, the parameter included in the behavior level description, and the parameter processing method specification by the user. Language analysis means for classifying into three types, those that are handled as they are, those that are considered as the maximum value that can be taken by the parameter, those that are synthesized, and those that are specialized by the value that can be taken by the parameter,
Among the classified parameters, parameters that specialize the parameter to each value by the parameter specialization process for the use location in the internal representation of the parameter that is to be synthesized as a specialization by the value that the parameter can take Specialized means,
For the specialized parameter, for each specialized value, the internal representation normalization processing is performed individually, and the internal structure normalizing means for normalizing the loop and function of the internal representation;
CDFG generation means for converting each of the normalized internal representations into CDFG by CDFG generation processing;
Binding means for applying a binding process to each generated CDFG by applying a scheduling means;
Parameter merging means for performing parameter merging processing for branching together the binding processing results executed for the specialized values of the parameters;
RT description generation means for generating an RT level description based on the result of each binding process subjected to the parameter merge process by an RT level description generation process;
Storage means for storing the behavior level description and each parameter;
A behavioral synthesis device comprising: output means for outputting the RT level description.
抽象度の高い回路仕様が記述された動作レベル記述を入力する入力手段と、
前記動作レベル記述を言語解析処理により動作合成用の内部表現に変換し、前記内部表現、前記動作レベル記述に含まれるパラメータ、及びユーザによる前記パラメータの処理方法指定に基づき、前記パラメータを、変数のまま扱うもの、パラメータの取り得る値の最大値とみなして合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類する言語解析手段と、
分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータの前記内部表現における使用箇所について、パラメータ定数化処理により、正規化前のパラメータを最大値の定数値に置き換えると共に、元々のパラメータ名を記録するパラメータ定数化手段と、
分類されたパラメータのうち、パラメータの取り得る値で特化するものとして合成することになったパラメータの前記内部表現における使用箇所について、パラメータ特化処理により、パラメータを各々の値に特化するパラメータ特化手段と、
前記最大値の定数値に置き換えられたパラメータについては各パラメータごとに、個別に前記内部表現の正規化処理を行い、前記内部表現のループ及び関数を正規化し、前記特化したパラメータについては前記特化した値ごとに、個別に前記内部表現の正規化処理を行い、前記内部表現のループ及び関数を正規化する内部構造正規化手段と、
CDFG生成処理により前記各正規化処理された内部表現をCDFGに変換する CDFG生成手段と、
前記各生成されたCDFGに対して、スケジューリング手段を適用してバインディング処理を行なうバインディング手段と、
前記各バインディング処理結果における前記定数化したパラメータを変数に戻すパラメータ変数化処理を行なうパラメータ変数化手段と、
前記パラメータの特化した値について実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行なうパラメータマージ手段と、
RTレベル記述生成処理により、前記パラメータ変数化処理された前記各バインディング処理結果及び前記パラメータの特化した値について実行された各バインディング処理結果をもとに、RTレベル記述を生成するRT記述生成手段と、
前記動作レベル記述及び各パラメータを記憶する記憶手段と、
前記RTレベル記述を出力する出力手段と
を備える動作合成装置。
An input means for inputting a behavior level description in which a circuit specification having a high level of abstraction is described;
The behavior level description is converted into an internal representation for behavioral synthesis by language analysis processing, and the parameter is converted into a variable based on the internal representation, the parameter included in the behavior level description, and the parameter processing method specification by the user. Language analysis means for classifying into three types, those that are handled as they are, those that are considered as the maximum value that can be taken by the parameter, those that are synthesized, and those that are specialized by the value that can be taken by the parameter,
Among the classified parameters, the parameter values before normalization are determined by the parameter constant processing for the use points in the internal representation of the parameters that are considered to be the maximum values that can be taken by the parameters. A parameter constant means for replacing the numerical value and recording the original parameter name,
Among the classified parameters, parameters that specialize the parameter to each value by the parameter specialization process for the use location in the internal representation of the parameter that is to be synthesized as a specialization by the value that the parameter can take Specialized means,
For the parameter replaced with the constant value of the maximum value, the internal expression is normalized individually for each parameter, the loop and function of the internal expression are normalized, and the specialized parameter is Internal structure normalization means for performing normalization processing of the internal representation individually for each of the converted values and normalizing loops and functions of the internal representation;
A CDFG generating means for converting each normalized internal expression into a CDFG by a CDFG generating process;
Binding means for applying a binding process to each generated CDFG by applying a scheduling means;
Parameter variableizing means for performing parameter variable processing for returning the constant parameter in each binding processing result to a variable;
Parameter merging means for performing parameter merging processing for branching together the binding processing results executed for the specialized values of the parameters;
RT description generation means for generating an RT level description based on each binding processing result subjected to the parameter variable processing and each binding processing result executed for a specific value of the parameter by RT level description generating processing When,
Storage means for storing the behavior level description and each parameter;
A behavioral synthesis device comprising: output means for outputting the RT level description.
前記言語解析手段は、前記パラメータの分類を複数のプロセッサで時間的に並列に実行するか、または、単一のプロセッサで順次実行する請求項1乃至請求項3のいずれか一項に記載の動作合成装置。   4. The operation according to claim 1, wherein the language analysis unit executes the classification of the parameters in parallel in time by a plurality of processors, or sequentially by a single processor. Synthesizer. コンピュータが、
抽象度の高い回路仕様が記述された動作レベル記述を入力し、
前記動作レベル記述を言語解析処理により動作合成用の内部表現に変換し、前記内部表現、前記動作レベル記述に含まれるパラメータ、及びユーザによる前記パラメータの処理方法指定に基づき、前記パラメータを、変数のまま扱うもの、パラメータの取り得る値の最大値とみなして合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類し、
分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータの前記内部表現における使用箇所について、パラメータ定数化処理により、正規化前のパラメータを最大値の定数値に置き換えると共に、元々のパラメータ名を記録し、
前記最大値の定数値に置き換えられたパラメータについては各パラメータごとに、個別に前記内部表現の正規化処理を行い、前記内部表現のループ及び関数を正規化し、
CDFG生成処理により前記各正規化処理された内部表現をCDFGに変換し、
前記各生成されたCDFGに対して、スケジューリング手段を適用してバインディング処理を行ない、
前記各バインディング処理結果における前記定数化したパラメータを変数に戻すパラメータ変数化処理を行ない、
RTレベル記述生成処理により、前記パラメータ変数化処理された前記各バインディング処理結果をもとにRTレベル記述を生成し、
前記動作レベル記述及び各パラメータを記憶し、
前記RTレベル記述を出力する、動作合成方法。
Computer
Enter the behavior level description that describes the circuit specification with a high level of abstraction.
The behavior level description is converted into an internal representation for behavioral synthesis by language analysis processing, and the parameter is converted into a variable based on the internal representation, the parameter included in the behavior level description, and the parameter processing method specification by the user. It is classified into three types: those that are handled as they are, those that are synthesized as the maximum value that can be taken by the parameter, and those that are specialized by the value that can be taken by the parameter.
Among the classified parameters, the parameter values before normalization are determined by the parameter constant processing for the use points in the internal representation of the parameters that are considered to be the maximum values that can be taken by the parameters. Replace it with a numerical value and record the original parameter name.
For each parameter that has been replaced with the constant value of the maximum value, for each parameter, perform the normalization processing of the internal representation individually, normalize the loop and function of the internal representation,
Converting each normalized internal representation into CDFG by CDFG generation processing,
A binding process is performed on each generated CDFG by applying a scheduling means,
Perform parameter variable processing to return the constant parameter in each binding processing result to a variable,
RT level description generation processing generates an RT level description based on each binding processing result subjected to the parameter variable processing,
Storing the behavior level description and each parameter;
A behavioral synthesis method for outputting the RT level description.
コンピュータが、
抽象度の高い回路仕様が記述された動作レベル記述を入力し、
前記動作レベル記述を言語解析処理により動作合成用の内部表現に変換し、前記内部表現、前記動作レベル記述に含まれるパラメータ、及びユーザによる前記パラメータの処理方法指定に基づき、前記パラメータを、変数のまま扱うもの、パラメータの取り得る値の最大値とみなして合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類し、
分類されたパラメータのうち、パラメータの取り得る値で特化するものとして合成することになったパラメータの前記内部表現における使用箇所について、パラメータ特化処理により、パラメータを各々の値に特化し、
前記特化したパラメータについては前記特化した値ごとに、個別に前記内部表現の正規化処理を行い、前記内部表現のループ及び関数を正規化し、
CDFG生成処理により前記各正規化処理された内部表現をCDFGに変換し、
前記各生成されたCDFGに対して、スケジューリング手段を適用してバインディング処理を行ない、
前記パラメータの特化した値について実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行ない、
RTレベル記述生成処理により、前記パラメータマージ処理された前記各バインディング処理結果をもとにRTレベル記述を生成し、
前記動作レベル記述及び各パラメータを記憶し、
前記RTレベル記述を出力する動作合成方法。
Computer
Enter the behavior level description that describes the circuit specification with a high level of abstraction.
The behavior level description is converted into an internal representation for behavioral synthesis by language analysis processing, and the parameter is converted into a variable based on the internal representation, the parameter included in the behavior level description, and the parameter processing method specification by the user. It is classified into three types: those that are handled as they are, those that are synthesized as the maximum value that can be taken by the parameter, and those that are specialized by the value that can be taken by the parameter.
Among the categorized parameters, the parameter specialization process is used to specialize the parameter to each value for the use location in the internal representation of the parameter that is supposed to be synthesized as a value that can be taken by the parameter,
For the specialized parameter, for each specialized value, the internal representation is individually normalized, the internal representation loop and function are normalized,
Converting each normalized internal representation into CDFG by CDFG generation processing,
A binding process is performed on each generated CDFG by applying a scheduling means,
Perform a parameter merge process to branch together the binding process results executed for the specialized values of the parameters,
The RT level description generation process generates an RT level description based on the result of each binding process subjected to the parameter merge process,
Storing the behavior level description and each parameter;
A behavioral synthesis method for outputting the RT level description.
コンピュータが、
抽象度の高い回路仕様が記述された動作レベル記述を入力し、
前記動作レベル記述を言語解析処理により動作合成用の内部表現に変換し、前記内部表現、前記動作レベル記述に含まれるパラメータ、及びユーザによる前記パラメータの処理方法指定に基づき、前記パラメータを、変数のまま扱うもの、パラメータの取り得る値の最大値とみなして合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類し、
分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータの前記内部表現における使用箇所について、パラメータ定数化処理により、正規化前のパラメータを最大値の定数値に置き換えると共に、元々のパラメータ名を記録し、
分類されたパラメータのうち、パラメータの取り得る値で特化するものとして合成することになったパラメータの前記内部表現における使用箇所について、パラメータ特化処理により、パラメータを各々の値に特化し、
前記最大値の定数値に置き換えられたパラメータについては各パラメータごとに、個別に前記内部表現の正規化処理を行い、前記内部表現のループ及び関数を正規化し、前記特化したパラメータについては前記特化した値ごとに、個別に前記内部表現の正規化処理を行い、前記内部表現のループ及び関数を正規化し、
CDFG生成処理により前記各正規化処理された内部表現をCDFGに変換し、
前記各生成されたCDFGに対して、スケジューリング手段を適用してバインディング処理を行ない、
前記各バインディング処理結果における前記定数化したパラメータを変数に戻すパラメータ変数化処理を行ない、
前記パラメータの特化した値について実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行ない、
RTレベル記述生成処理により、前記パラメータ変数化処理された前記各バインディング処理結果及び前記パラメータの特化した値について実行された各バインディング処理結果をもとに、RTレベル記述を生成し、
前記動作レベル記述及び各パラメータを記憶し、
前記RTレベル記述を出力する動作合成方法。
Computer
Enter the behavior level description that describes the circuit specification with a high level of abstraction.
The behavior level description is converted into an internal representation for behavioral synthesis by language analysis processing, and the parameter is converted into a variable based on the internal representation, the parameter included in the behavior level description, and the parameter processing method specification by the user. It is classified into three types: those that are handled as they are, those that are synthesized as the maximum value that can be taken by the parameter, and those that are specialized by the value that can be taken by the parameter.
Among the classified parameters, the parameter values before normalization are determined by the parameter constant processing for the use points in the internal representation of the parameters that are considered to be the maximum values that can be taken by the parameters. Replace it with a numerical value and record the original parameter name.
Among the categorized parameters, the parameter specialization process is used to specialize the parameter to each value for the use location in the internal representation of the parameter that is supposed to be synthesized as a value that can be taken by the parameter,
For the parameter replaced with the constant value of the maximum value, the internal expression is normalized individually for each parameter, the loop and function of the internal expression are normalized, and the specialized parameter is For each value, the normalization of the internal representation is performed individually, and the loop and function of the internal representation are normalized,
Converting each normalized internal representation into CDFG by CDFG generation processing,
A binding process is performed on each generated CDFG by applying a scheduling means,
Perform parameter variable processing to return the constant parameter in each binding processing result to a variable,
Perform a parameter merge process to branch together the binding process results executed for the specialized values of the parameters,
RT level description generation processing generates an RT level description based on each binding processing result subjected to the parameter variable processing and each binding processing result executed for a specialized value of the parameter,
Storing the behavior level description and each parameter;
A behavioral synthesis method for outputting the RT level description.
前記パラメータの分類を複数のプロセッサで時間的に並列に実行するか、または、単一のプロセッサで順次実行する請求項5乃至請求項7のいずれか一項に記載の動作合成方法。   The behavioral synthesis method according to any one of claims 5 to 7, wherein the parameter classification is executed in parallel in time by a plurality of processors or sequentially by a single processor. 抽象度の高い回路仕様が記述された動作レベル記述を入力する入力処理と、
前記動作レベル記述を動作合成用の内部表現に変換し、前記内部表現、前記動作レベル記述に含まれるパラメータ、及びユーザによる前記パラメータの処理方法指定に基づき、前記パラメータを、変数のまま扱うもの、パラメータの取り得る値の最大値とみなして合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類する言語解析処理と、
分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータの前記内部表現における使用箇所について、パラメータ定数化処理により、正規化前のパラメータを最大値の定数値に置き換えると共に、元々のパラメータ名を記録するパラメータ定数化処理と、
前記最大値の定数値に置き換えられたパラメータについては各パラメータごとに、個別に前記内部表現の正規化処理を行い、前記内部表現のループ及び関数を正規化する内部構造正規化処理と、
前記各正規化処理された内部表現をCDFGに変換するCDFG生成処理と、
前記各生成されたCDFGに対して、スケジューリング手段を適用してバインディング処理を行なうバインディング処理と、
前記各バインディング処理結果における前記定数化したパラメータを変数に戻すパラメータ変数化処理を行なうパラメータ変数化処理と、
前記パラメータ変数化処理された前記各バインディング処理結果をもとにRTレベル記述を生成するRT記述生成処理と
前記動作レベル記述及び各パラメータを記憶装置に記憶する記憶処理と、
前記RTレベル記述を出力する出力処理と、をコンピュータに実行させる動作合成プログラム。
Input processing for inputting a behavior level description in which a circuit specification having a high level of abstraction is described;
Converting the behavior level description into an internal representation for behavioral synthesis, and treating the parameter as a variable based on the internal representation, the parameter included in the behavior level description, and the parameter processing method designation by the user; Language analysis processing classified into three types, one that is considered as the maximum value that can be taken by the parameter, and one that is synthesized by the value that can be taken by the parameter,
Among the classified parameters, the parameter values before normalization are determined by the parameter constant processing for the use points in the internal representation of the parameters that are considered to be the maximum values that can be taken by the parameters. Parameter constant processing that replaces with numerical values and records the original parameter name,
For the parameter replaced with the constant value of the maximum value, for each parameter, the internal representation normalization process is performed individually, and the internal structure normalization process for normalizing the loop and function of the internal representation;
CDFG generation processing for converting each normalized internal representation into CDFG;
A binding process for applying a scheduling process to each generated CDFG by applying a scheduling means;
A parameter variableizing process for performing a parameter variable process for returning the constant parameter in each binding process result to a variable;
RT description generation processing for generating an RT level description based on each binding processing result subjected to the parameter variable processing, and storage processing for storing the behavior level description and each parameter in a storage device;
A behavioral synthesis program for causing a computer to execute output processing for outputting the RT level description.
抽象度の高い回路仕様が記述された動作レベル記述を入力する入力処理と、
前記動作レベル記述を動作合成用の内部表現に変換し、前記内部表現、前記動作レベル記述に含まれるパラメータ、及びユーザによる前記パラメータの処理方法指定に基づき、前記パラメータを、変数のまま扱うもの、パラメータの取り得る値の最大値とみなして合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類する言語解析処理と、
分類されたパラメータのうち、パラメータの取り得る値で特化するものとして合成することになったパラメータの前記内部表現における使用箇所について、パラメータ特化処理により、パラメータを各々の値に特化するパラメータ特化処理と、
前記特化したパラメータについては前記特化した値ごとに、個別に前記内部表現の正規化処理を行い、前記内部表現のループ及び関数を正規化する内部構造正規化処理と、
前記各正規化処理された内部表現をCDFGに変換するCDFG生成処理と、
前記各生成されたCDFGに対して、スケジューリング手段を適用してバインディング処理を行なうバインディング処理と、
前記パラメータの特化した値について実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理と、
RTレベル記述生成処理により、前記パラメータマージ処理された前記各バインディング処理結果をもとにRTレベル記述を生成するRT記述生成処理と、
前記動作レベル記述及び各パラメータを記憶装置に記憶する記憶処理と、
前記RTレベル記述を出力する出力処理と、をコンピュータに実行させる動作合成プログラム。
Input processing for inputting a behavior level description in which a circuit specification having a high level of abstraction is described;
Converting the behavior level description into an internal representation for behavioral synthesis, and treating the parameter as a variable based on the internal representation, the parameter included in the behavior level description, and the parameter processing method designation by the user; Language analysis processing classified into three types, one that is considered as the maximum value that can be taken by the parameter, and one that is synthesized by the value that can be taken by the parameter,
Among the classified parameters, parameters that specialize the parameter to each value by the parameter specialization process for the use location in the internal representation of the parameter that is to be synthesized as a specialization by the value that the parameter can take Specialized processing,
For the specialized parameter, for each specialized value, the internal representation normalization processing is performed individually, and the internal structure normalization processing for normalizing the loop and function of the internal representation;
CDFG generation processing for converting each normalized internal representation into CDFG;
A binding process for applying a scheduling process to each generated CDFG by applying a scheduling means;
A parameter merge process for branching together the binding process results executed for the specialized values of the parameters;
RT description generation processing for generating an RT level description based on each binding processing result subjected to the parameter merge processing by RT level description generation processing;
A storage process for storing the behavior level description and each parameter in a storage device;
A behavioral synthesis program for causing a computer to execute output processing for outputting the RT level description.
抽象度の高い回路仕様が記述された動作レベル記述を入力する入力処理と、
前記動作レベル記述を動作合成用の内部表現に変換し、前記内部表現、前記動作レベル記述に含まれるパラメータ、及びユーザによる前記パラメータの処理方法指定に基づき、前記パラメータを、変数のまま扱うもの、パラメータの取り得る値の最大値とみなして合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類する言語解析処理と、
分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータの前記内部表現における使用箇所について、正規化前のパラメータを最大値の定数値に置き換えると共に、元々のパラメータ名を記録するパラメータ定数化処理と、
分類されたパラメータのうち、パラメータの取り得る値で特化するものとして合成することになったパラメータの前記内部表現における使用箇所について、パラメータを各々の値に特化するパラメータ特化処理と、
前記最大値の定数値に置き換えられたパラメータについては各パラメータごとに、個別に前記内部表現の正規化処理を行い、前記特化したパラメータについては前記特化した値ごとに、個別に前記内部表現の正規化処理を行ない、前記内部表現のループ及び関数を正規化する内部構造正規化処理と、
前記各正規化処理された内部表現をCDFGに変換するCDFG生成処理と、
前記各生成されたCDFGに対して、スケジューリング手段を適用してバインディング処理を行なうバインディング処理と、
前記各バインディング処理結果における前記定数化したパラメータを変数に戻すパラメータ変数化処理と、
前記パラメータの特化した値について実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理と、
前記パラメータ変数化処理された前記各バインディング処理結果及び前記パラメータマージ処理された前記各バインディング処理結果をもとにRTレベル記述を生成するRT記述生成処理と
前記動作レベル記述及び各パラメータを記憶装置に記憶する記憶処理と、
前記RTレベル記述を出力する出力処理と、
をコンピュータに実行させる動作合成プログラム。
Input processing for inputting a behavior level description in which a circuit specification having a high level of abstraction is described;
Converting the behavior level description into an internal representation for behavioral synthesis, and treating the parameter as a variable based on the internal representation, the parameter included in the behavior level description, and the parameter processing method designation by the user; Language analysis processing classified into three types, one that is considered as the maximum value that can be taken by the parameter, and one that is synthesized by the value that can be taken by the parameter,
Among the classified parameters, regarding the use location in the internal representation of the parameter that is considered to be the maximum value of the parameter, the parameter before normalization is replaced with the constant value of the maximum value, and originally A parameter constant process that records the parameter name of
Among the classified parameters, the parameter specialization process that specializes the parameter to each value for the use location in the internal representation of the parameter that is supposed to be synthesized as a value that can be taken by the parameter,
For the parameter replaced with the constant value of the maximum value, normalization processing of the internal representation is performed for each parameter individually, and for the specialized parameter, the internal representation is individually performed for each specialized value. An internal structure normalization process for normalizing the internal expression loop and function,
CDFG generation processing for converting each normalized internal representation into CDFG;
A binding process for applying a scheduling process to each generated CDFG by applying a scheduling means;
A parameter variable process for returning the constant parameter in each binding process result to a variable;
A parameter merge process for branching together the binding process results executed for the specialized values of the parameters;
RT description generation processing for generating an RT level description based on each binding processing result subjected to the parameter variable processing and each binding processing result subjected to the parameter merge processing; and the behavior level description and each parameter in a storage device A storage process to store;
An output process for outputting the RT level description;
Is a behavioral synthesis program that runs a computer.
前記言語解析処理を、前記パラメータの分類を複数のプロセッサで時間的に並列に実行するか、または、単一のプロセッサで順次実行する請求項乃至請求項11のいずれか一項に記載の動作合成プログラム。 The operation according to any one of claims 9 to 11 , wherein the language analysis processing is performed by executing the parameter classification in parallel in time by a plurality of processors or sequentially by a single processor. Synthesis program.
JP2011506022A 2009-03-24 2010-03-15 Behavioral synthesis apparatus, behavioral synthesis method, and program Active JP5692063B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011506022A JP5692063B2 (en) 2009-03-24 2010-03-15 Behavioral synthesis apparatus, behavioral synthesis method, and program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009072301 2009-03-24
JP2009072301 2009-03-24
PCT/JP2010/054761 WO2010110194A1 (en) 2009-03-24 2010-03-15 Motion synthesis device, motion synthesis method, and program
JP2011506022A JP5692063B2 (en) 2009-03-24 2010-03-15 Behavioral synthesis apparatus, behavioral synthesis method, and program

Publications (2)

Publication Number Publication Date
JPWO2010110194A1 JPWO2010110194A1 (en) 2012-09-27
JP5692063B2 true JP5692063B2 (en) 2015-04-01

Family

ID=42780888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011506022A Active JP5692063B2 (en) 2009-03-24 2010-03-15 Behavioral synthesis apparatus, behavioral synthesis method, and program

Country Status (2)

Country Link
JP (1) JP5692063B2 (en)
WO (1) WO2010110194A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102716753B1 (en) * 2022-04-18 2024-10-15 인하대학교 산학협력단 Rtl-devs simulator in hdevs that can be simulated with open source rtl design tools

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265832A (en) * 2000-03-23 2001-09-28 Toshiba Corp Device and method for designing hardware and computer- readable recording medium stored with hardware designing program
JP2001350809A (en) * 2000-06-08 2001-12-21 Sharp Corp Method for designing data driving type information processor adopting self-synchronous type pipe line control
JP2006079226A (en) * 2004-09-08 2006-03-23 Kanazawa Univ Hardware description language synthesis tool and integrated circuit design method using the same
JP2006171913A (en) * 2004-12-13 2006-06-29 Canon Inc Information processor, information processing method, program and storage medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265832A (en) * 2000-03-23 2001-09-28 Toshiba Corp Device and method for designing hardware and computer- readable recording medium stored with hardware designing program
JP2001350809A (en) * 2000-06-08 2001-12-21 Sharp Corp Method for designing data driving type information processor adopting self-synchronous type pipe line control
JP2006079226A (en) * 2004-09-08 2006-03-23 Kanazawa Univ Hardware description language synthesis tool and integrated circuit design method using the same
JP2006171913A (en) * 2004-12-13 2006-06-29 Canon Inc Information processor, information processing method, program and storage medium

Also Published As

Publication number Publication date
JPWO2010110194A1 (en) 2012-09-27
WO2010110194A1 (en) 2010-09-30

Similar Documents

Publication Publication Date Title
Xu et al. AutoDNNchip: An automated DNN chip predictor and builder for both FPGAs and ASICs
Canis et al. Modulo SDC scheduling with recurrence minimization in high-level synthesis
Piccolboni et al. COSMOS: Coordination of high-level synthesis and memory optimization for hardware accelerators
Guo et al. Input data reuse in compiling window operations onto reconfigurable hardware
Fried et al. BDD-based Boolean functional synthesis
US7096438B2 (en) Method of using clock cycle-time in determining loop schedules during circuit design
Kapre et al. Survey of domain-specific languages for FPGA computing
Rosvall et al. Throughput propagation in constraint-based design space exploration for mixed-criticality systems
JP5157534B2 (en) Behavioral synthesis apparatus and program
JP2007034887A (en) Method and apparatus for automatically creating shift register file for high-level synthesis compiler
JP4492803B2 (en) Behavioral synthesis apparatus and program
JP5692063B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, and program
Raghunathan et al. Integrating variable-latency components into high-level synthesis
JP2009025973A (en) Behavioral synthesis device, manufacturing method of semiconductor integrated circuit, behavioral synthesis method, behavioral synthesis control program, and readable storage medium
Bezati et al. High-level synthesis of dynamic dataflow programs on heterogeneous MPSoC platforms
Liu et al. Compiling halide programs to push-memory accelerators
Lanneer et al. An object-oriented framework supporting the full high-level synthesis trajectory
US11656857B2 (en) Method and apparatus for optimizing code for field programmable gate arrays
Gilbert LoopTree: Enabling Systematic and Flexible Exploration of Fused-layer Dataflow Accelerators
Matai et al. Trimmed VLIW: Moving application specific processors towards high level synthesis
JP2009169694A (en) High level synthesis method, high level synthesis apparatus and program
Rashid et al. Fast parallel high-level synthesis design space explorer: Targeting fpgas to accelerate asic exploration
JP6761182B2 (en) Information processing equipment, information processing methods and programs
JP2006202330A (en) Method for designing system lsi and recording medium storing the same
Giesen Accelerating HLS Autotuning of Large, Highly-Parameterized Reconfigurable SoC Mappings

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140822

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150119

R150 Certificate of patent or registration of utility model

Ref document number: 5692063

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150