WO2010110194A1 - Motion synthesis device, motion synthesis method, and program - Google Patents
Motion synthesis device, motion synthesis method, and program Download PDFInfo
- Publication number
- WO2010110194A1 WO2010110194A1 PCT/JP2010/054761 JP2010054761W WO2010110194A1 WO 2010110194 A1 WO2010110194 A1 WO 2010110194A1 JP 2010054761 W JP2010054761 W JP 2010054761W WO 2010110194 A1 WO2010110194 A1 WO 2010110194A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- parameter
- processing
- value
- description
- behavioral synthesis
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
Definitions
- the present invention relates to a behavioral synthesis device, a behavioral synthesis method, and a program.
- 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).
- 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.
- 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.
- Patent Document 1 Japanese Patent Application Laid-Open No. 2001-350809
- Patent Document 2 Japanese Patent Application Laid-Open Publication No. 2006-079226
- 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:
- 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.
- 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.
- 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;
- an output device for outputting the RT description.
- 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.
- 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.
- the parameter is converted to the maximum constant value by the parameter constant processing, and the original parameter name is set to be recorded.
- 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, A 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.
- 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.
- FIG. 1 is a block diagram showing an embodiment of a behavioral synthesis device according to the present invention.
- 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.
- the language analysis unit 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.
- 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.
- 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. )
- 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.
- FIG. 2 is an example of a flowchart for explaining the operation of the behavioral synthesis device shown in FIG.
- 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.
- 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).
- 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.
- 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.
- the parameter specializing unit 2d performs a parameter specialization process (block A5 in FIG.
- 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.
- 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.
- the CDFG generation unit 2f converts the normalized internal structure into CDFG by a CDFG generation process (block A7 in FIG. 2).
- 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.
- 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.
- 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).
- 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.
- 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.
- the process related to the parameter is realized by placing the process before the normalization of the internal structure and after the binding process.
- 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.
- 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.
- 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
- the behavioral synthesis apparatus can be realized anywhere as long as there is a computer environment capable of executing the program.
- a program may be stored in a computer-readable storage medium.
- 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.
- 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.
- 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.
- 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.
- 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 with reference to FIGS. (A)
- 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.
- #pragma PARAMETER 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 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.
- the parameter constant converting unit 2c sets the description example 1 as in the description example 3, and finally the parameter variable converting unit 2j is Verilog HDL (8) and returns 8 to N.
- the RT description generation unit 2k generates description example 4.
- Description example 3 Description example 4
- 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.
- 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 The description example 5 is one example of conversion in progress by the behavioral synthesis device shown in FIG.
- the RT description generation unit 2k 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 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 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.
- 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.
- N is a parameter as in the description example 8.
- 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.
- the parameter constantizing unit 2c treats the description example 7 as the description example 9.
- the parameter variableizing unit 2i is Verilog HDL
- 8 is returned to N
- the RT description generating unit 2k generates the description example 10.
- Description example 9 Description example 10
- 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.
- 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 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 The description example 12 is one example of the conversion result by the behavioral synthesis device shown in FIG.
- 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 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.
- 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
- 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.
- 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 Description example 17
- 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.
- 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.
- 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.
- 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.
- Patent Document 1 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 abstraction level from a circuit description with a high abstraction level.
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)
Abstract
Provided are a motion synthesis device, a motion synthesis method, and a program capable of leaving a parameter as it is in the RT description, and capable for appropriate optimization. An input device to input motion level description in which circuit specification with a high level of abstraction is described; a data processing device which performs conversion to the internal expression for the motion synthesis, classifies the parameters contained in the motion level description into a plurality of classifications, and treats the parameter as a variable or a constant in accordance with the classification; a storage device to store the motion level description and the respective parameters; and an output device to output the RT description, are provided.
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 inPatent 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 inPatent 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 inPatent 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 inPatent 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.
関連する動作合成システムは、言語解析手段(装置)と、内部構造正規化手段(装置)と、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
According to the invention described in
The invention described in
According to the invention described in
しかしながら、上述した、本発明に関連する技術では、動作合成で入力装置がパラメータを動作合成システムに与えたとき、このパラメータをすべて定数として扱うか、またはすべて変数として扱う、以外に選択肢はない。したがって、両方の扱いを必要とする場合には、上述の関連技術は、最適化を促進することができなかった、という問題がある。
その理由は、上述した動作合成では、内部で扱う値は定数または変数のみに限定されていたため、パラメータだけを特別に扱う手法が発明されていなかったためである。
そこで、本発明の目的は、パラメータをパラメータのまま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記述に残すことができ、かつ適切な最適化が可能な動作合成装置、動作合成方法、及びプログラムを提供することにある。 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, A 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記述を出力する出力装置と、を備えたことを特徴とする。
ここで、内部表現とは、動作レベルの回路記述を解析した結果を抽象構文木(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, A 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 apparatus, a behavioral synthesis method, and a program that can leave parameters in the RT description as parameters and can perform appropriate optimization.
<構 成>
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
図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
データ処理装置2が、記述例1に示したパラメータを変数として扱って合成した場合、RT記述生成部2kは、最終的なVerilog HDLとして、記述例2のように、Nをparameter(パラメータ)とした合成結果を発生する。
記述例2
記述例2は、記述例1に示した動作合成装置による変換結果例の一つである。
また、データ処理装置2が記述例1に示したパラメータを、パラメータの範囲での最大値としてみなして合成した場合、N=8として扱う。したがって、パラメータ定数化部2cは記述例1を記述例3のように設定し、最終的にパラメータ変数化部2jはVerilog HDLで(は)、8をNに戻す。この結果、RT記述生成部2kは記述例4を発生する。
記述例3
記述例4
記述例3は、図1に示した動作合成装置による変換途中例の一つであり、記述例4は、図1に示した動作合成装置による変換結果例の一つである。
パラメータの取り得る値で特化した場合、パラメータ特化部2dは、記述例1を記述例5のような3種類のパターンとみなし、データ処理装置2がこの3種類のパターンのそれぞれを合成することになる。
記述例5
記述例5は、図1に示した動作合成装置による変換途中例の一つである。
パラメータマージ部2iが、パラメータをマージした後、RT記述生成部2kが最終的なVerilog HDLとして、記述例6に示すようなRT記述を発生する。
記述例6
記述例6では、Nの値に応じて、parameterではなく‘defineする値を変えることになる。記述例6は、図1に示した動作合成装置による変換結果例の一つである。
記述例7は、本発明の実施の形態の動作合成装置の入力装置1に入力される、変数のビット幅にパラメータを用いた場合の動作記述の一例である。
記述例7
すなわち、記述例7は、図1に示した動作合成装置の入力となる動作記述の一例である。データ処理装置2が、記述例7に示したパラメータを変数として扱って合成した場合、RT記述生成部2kは、最終的なVerilogHDLとして、記述例8のように、Nをparameterとした合成結果となる。
記述例8
記述例8は、図1に示した動作合成装置による変換結果例の一つである。
また、記述例7の加算器INST_ADDは、Nの値を書き換えることによってビット幅BITWがこの値で置き換えられる。このように、parameterでビット幅を調整可能な加算器とすることにより、パラメータごとに効率的な回路を生成可能となる。
また、データ処理装置2が記述例7に示したパラメータを、パラメータの範囲での最大値としてみなして合成した場合、N=8として扱うため、パラメータ定数化部2cが記述例7を記述例9のようにみなし、最終的にパラメータ変数化部2iがVerilog HDLで、8をNに戻して、RT記述生成部2kは記述例10を発生する。
記述例9
記述例10
記述例9は、図1に示した動作合成装置による変換途中例の一つであり、
記述例10は、図1に示した動作合成装置による変換結果例の一つである。
この場合、8がパラメータであったという情報を合成中にどこまで伝播させるかにより、Nの影響を受ける範囲が変わることになる。
記述例10では、変数のビット幅そのものだけをNでの制御可能範囲とした例であるため、加算器のビット幅はNの最大値8に依存したものになっている。
また、パラメータの取り得る値で特化した場合、パラメータ特化部2dは、記述例7を記述例11のように3種類のパターンとみなし、データ処理装置がこの3種類のパターンのそれぞれを合成することになる。
記述例11
記述例11は、図1に示した動作合成装置による変換途中例の一つである。
パラメータマージ部2iが、パラメータをマージした後、RT記述生成部2kが最終的なVerilog HDLとして(では)、記述例12のようなRT記述を発生する。
記述例12
記述例12は、図1に示した動作合成装置による変換結果例の一つである。記述例12において、Nの値に応じて特化して合成した結果のうち、同じ部分を一共有化して出力しているが、共有化は必須ではないため、全文をばらばらに出して、‘ifdefで切り替えることも可能である。
記述例13は、本発明の動作合成装置の入力装置に入力される、ループの実行回数にパラメータを用いた場合の動作記述の一例である。
記述例13
データ処理装置2が、記述例13に示したパラメータを変数として扱って合成した場合、記述例14のように、ループの実行回数の取り得る値ごとに条件を付加してループを展開することができ、RT記述生成部2kは、最終的なVerilog HDLとして、記述例15のように、Nをparameterとした合成結果を発生する。
記述例14
記述例13は、図1に示した動作合成装置の入力となる動作記述の一例であり、記述例14は、図1に示した動作合成装置による変換途中例の一つである。記述例15は、図1に示した動作合成装置による変換結果例の一つである。
記述例15
一方、パラメータの範囲での最大値とした合成は、ループの実行回数など制御論理にパラメータが関わるときは不可能であるためこの手法を選択することはできない。パラメータの取り得る値で特化した場合、データ処理装置2は、記述例13を記述例16のように3種類のパターンとみなし、パラメータ特化部2dがこの3種類のパターンのそれぞれを合成することになる。そして、パラメータマージ部2iが、パラメータをマージした後、RT記述生成部2kが最終的なVerilogHDLとして、記述例17に示すようなRT記述を発生する。
記述例16
記述例17
記述例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 adata processing device 2 that operates under program control, an input device 1, a storage device 3, and an output device 4.
Examples of theinput device 1 include a keyboard, a mouse, and a pointing device.
Thedata 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 thestorage device 3 include an HDD (Hard Disc Drive: hard disk) and a flash memory.
Examples of theoutput device 4 include a liquid crystal display device, a plasma display, a printer, and a plotter.
Thelanguage analysis unit 2a to RT description generation unit 2k are configured by software, and operate as follows.
Thelanguage 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.
Theparameter 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 parameterconstant 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 theparameter 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 internalstructure 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.
TheCDFG generation unit 2f converts each normalized internal representation into a CDFG (control data flow graph).
Thescheduling unit 2g schedules resources and input / output on each CDFG generated by the CDFG generation unit 2f.
Thebinding unit 2h allocates resources such as computing units based on the scheduling result realized by repeating the scheduling unit 2g.
Theparameter 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 parametervariable 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 internalrepresentation 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, thelanguage 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, theparameter 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 internalstructure 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, theCDFG 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, theparameter 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.
Theparameter 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 RTdescription 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 in 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 with reference to 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 theinput device 1 of the behavioral synthesis device according to the embodiment of the present invention.
Description example 1
When thedata 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
Description example 2 is one example of a conversion result by the behavioral synthesis device shown in description example 1.
Further, when thedata 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 converting unit 2c sets the description example 1 as in the description example 3, and finally the parameter variable converting 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
Description example 4
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, theparameter 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
The description example 5 is one example of conversion in progress by the behavioral synthesis device shown in FIG.
After theparameter 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
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 theinput device 1 of the behavioral synthesis device according to the embodiment of the present invention.
Description example 7
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 thedata 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
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 thedata 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
Description example 10
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, theparameter 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
The description example 11 is one example of conversion in progress by the behavioral synthesis device shown in FIG.
After theparameter 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
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
When thedata 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
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
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, thedata 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
Description example 17
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 inPatent 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.
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
図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
データ処理装置2が、記述例1に示したパラメータを変数として扱って合成した場合、RT記述生成部2kは、最終的なVerilog HDLとして、記述例2のように、Nをparameter(パラメータ)とした合成結果を発生する。
記述例2
記述例2は、記述例1に示した動作合成装置による変換結果例の一つである。
また、データ処理装置2が記述例1に示したパラメータを、パラメータの範囲での最大値としてみなして合成した場合、N=8として扱う。したがって、パラメータ定数化部2cは記述例1を記述例3のように設定し、最終的にパラメータ変数化部2jはVerilog HDLで(は)、8をNに戻す。この結果、RT記述生成部2kは記述例4を発生する。
記述例3
記述例4
記述例3は、図1に示した動作合成装置による変換途中例の一つであり、記述例4は、図1に示した動作合成装置による変換結果例の一つである。
パラメータの取り得る値で特化した場合、パラメータ特化部2dは、記述例1を記述例5のような3種類のパターンとみなし、データ処理装置2がこの3種類のパターンのそれぞれを合成することになる。
記述例5
記述例5は、図1に示した動作合成装置による変換途中例の一つである。
パラメータマージ部2iが、パラメータをマージした後、RT記述生成部2kが最終的なVerilog HDLとして、記述例6に示すようなRT記述を発生する。
記述例6
記述例6では、Nの値に応じて、parameterではなく‘defineする値を変えることになる。記述例6は、図1に示した動作合成装置による変換結果例の一つである。
記述例7は、本発明の実施の形態の動作合成装置の入力装置1に入力される、変数のビット幅にパラメータを用いた場合の動作記述の一例である。
記述例7
すなわち、記述例7は、図1に示した動作合成装置の入力となる動作記述の一例である。データ処理装置2が、記述例7に示したパラメータを変数として扱って合成した場合、RT記述生成部2kは、最終的なVerilogHDLとして、記述例8のように、Nをparameterとした合成結果となる。
記述例8
記述例8は、図1に示した動作合成装置による変換結果例の一つである。
また、記述例7の加算器INST_ADDは、Nの値を書き換えることによってビット幅BITWがこの値で置き換えられる。このように、parameterでビット幅を調整可能な加算器とすることにより、パラメータごとに効率的な回路を生成可能となる。
また、データ処理装置2が記述例7に示したパラメータを、パラメータの範囲での最大値としてみなして合成した場合、N=8として扱うため、パラメータ定数化部2cが記述例7を記述例9のようにみなし、最終的にパラメータ変数化部2iがVerilog HDLで、8をNに戻して、RT記述生成部2kは記述例10を発生する。
記述例9
記述例10
記述例9は、図1に示した動作合成装置による変換途中例の一つであり、
記述例10は、図1に示した動作合成装置による変換結果例の一つである。
この場合、8がパラメータであったという情報を合成中にどこまで伝播させるかにより、Nの影響を受ける範囲が変わることになる。
記述例10では、変数のビット幅そのものだけをNでの制御可能範囲とした例であるため、加算器のビット幅はNの最大値8に依存したものになっている。
また、パラメータの取り得る値で特化した場合、パラメータ特化部2dは、記述例7を記述例11のように3種類のパターンとみなし、データ処理装置がこの3種類のパターンのそれぞれを合成することになる。
記述例11
記述例11は、図1に示した動作合成装置による変換途中例の一つである。
パラメータマージ部2iが、パラメータをマージした後、RT記述生成部2kが最終的なVerilog HDLとして(では)、記述例12のようなRT記述を発生する。
記述例12
記述例12は、図1に示した動作合成装置による変換結果例の一つである。記述例12において、Nの値に応じて特化して合成した結果のうち、同じ部分を一共有化して出力しているが、共有化は必須ではないため、全文をばらばらに出して、‘ifdefで切り替えることも可能である。
記述例13は、本発明の動作合成装置の入力装置に入力される、ループの実行回数にパラメータを用いた場合の動作記述の一例である。
記述例13
データ処理装置2が、記述例13に示したパラメータを変数として扱って合成した場合、記述例14のように、ループの実行回数の取り得る値ごとに条件を付加してループを展開することができ、RT記述生成部2kは、最終的なVerilog HDLとして、記述例15のように、Nをparameterとした合成結果を発生する。
記述例14
記述例13は、図1に示した動作合成装置の入力となる動作記述の一例であり、記述例14は、図1に示した動作合成装置による変換途中例の一つである。記述例15は、図1に示した動作合成装置による変換結果例の一つである。
記述例15
一方、パラメータの範囲での最大値とした合成は、ループの実行回数など制御論理にパラメータが関わるときは不可能であるためこの手法を選択することはできない。パラメータの取り得る値で特化した場合、データ処理装置2は、記述例13を記述例16のように3種類のパターンとみなし、パラメータ特化部2dがこの3種類のパターンのそれぞれを合成することになる。そして、パラメータマージ部2iが、パラメータをマージした後、RT記述生成部2kが最終的なVerilogHDLとして、記述例17に示すようなRT記述を発生する。
記述例16
記述例17
記述例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
Examples of the
The
Examples of the
Examples of the
The
The
The
The parameter
In the
The internal
The
The
The
The
The parameter
Each processing means writes and reads the conversion result to the system internal
<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
Next, the
The internal
Next, the
Subsequently, the
The
Finally, the RT
<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 in 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 with reference to 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
Description example 1
When the
Description example 2
Description example 2 is one example of a conversion result by the behavioral synthesis device shown in description example 1.
Further, when the
Description example 3
Description example 4
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
Description example 5
The description example 5 is one example of conversion in progress by the behavioral synthesis device shown in FIG.
After the
Description example 6
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
Description example 7
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
Description example 8
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
Description example 9
Description example 10
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
Description example 11
The description example 11 is one example of conversion in progress by the behavioral synthesis device shown in FIG.
After the
Description example 12
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
When the
Description example 14
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
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
Description Example 16
Description example 17
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
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 abstraction level from a circuit description with a high abstraction level.
1 入力装置
2 データ処理装置
2a 言語解析部
2b パラメータ分類部
2c パラメータ定数化部
2d パラメータ特化部
2e 内部構造正規化部
2f CDFG生成部
2g スケジューリング部
2h バインディング部
2i パラメータマージ部
2j パラメータ変数化部
2k RT記述生成部
3 記憶装置
3a システム内部表現記憶部
4 出力装置 DESCRIPTION OFSYMBOLS 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
2 データ処理装置
2a 言語解析部
2b パラメータ分類部
2c パラメータ定数化部
2d パラメータ特化部
2e 内部構造正規化部
2f CDFG生成部
2g スケジューリング部
2h バインディング部
2i パラメータマージ部
2j パラメータ変数化部
2k RT記述生成部
3 記憶装置
3a システム内部表現記憶部
4 出力装置 DESCRIPTION OF
Claims (9)
- 抽象度の高い回路仕様が記述された動作レベル記述を入力する入力装置と、
前記動作レベル記述を動作合成用の内部表現に変換し、前記動作レベル記述に含まれるパラメータを複数に分類し、該分類の結果に応じ、前記パラメータの値を定数または変数として扱うデータ処理装置と、
前記動作レベル記述及び各パラメータを記憶する記憶装置と、
前記RT記述を出力する出力装置と、
を備えたことを特徴とする動作合成装置。 An input device for inputting a behavior level description in which a circuit specification having a high level of abstraction is described;
A data processing device that converts the behavior level description into an internal representation for behavioral synthesis, classifies the parameters included in the behavior level description into a plurality, 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;
An output device for outputting the RT description;
A behavioral synthesis device comprising: - 前記データ処理装置は、分類されたパラメータごとに個別に内部構造の正規化処理を行い、内部構造のループ及び関数を正規化し、CDFGに変換し、生成されたCDFGに対して、スケジューリング手段を適用し、バインディング処理を行い、RTレベル記述を生成すると共に、前記分類により、パラメータの取り得る値の最大値とみなして合成することになったパラメータ使用箇所について、パラメータを最大値の定数値に定数化し、前記RTレベル記述の前に定数化したパラメータを変数に戻すパラメータ変数化処理を行うことを特徴とする請求項1記載の動作合成装置。 The data processing device individually performs normalization processing of the internal structure for each classified parameter, normalizes internal structure loops and functions, converts them into CDFG, and applies scheduling means to the generated CDFG. Then, the binding process is performed to generate the RT level description, and the parameter is set to the constant value of the maximum value for the part where the parameter is to be synthesized by regarding the maximum value of the parameter that can be taken by the classification. 2. The behavioral synthesis apparatus according to claim 1, wherein parameter variableization processing is performed to return a parameter that has been converted to a constant before the RT level description to a variable.
- 前記データ処理装置は、分類されたパラメータごとに個別に内部構造の正規化処理を行い、内部構造のループ及び関数を正規化し、CDFGに変換し、生成されたCDFGに対して、スケジューリング手段を適用し、バインディング処理を行い、RTレベル記述を生成すると共に、元々のパラメータ名を記録するように設定し、パラメータの取り得る値で特化するものとして合成することになったパラメータ使用箇所について、パラメータを各々の値に特化し、パラメータの値ごとに特化して実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行うことを特徴とする請求項1記載の動作合成装置。 The data processing device individually performs normalization processing of the internal structure for each classified parameter, normalizes internal structure loops and functions, converts them into CDFG, and applies scheduling means to the generated CDFG. Then, the binding process is performed, the RT level description is generated, the original parameter name is set to be recorded, and the parameter use point that is to be synthesized to be specialized with the value that the parameter can take The behavioral synthesis apparatus according to claim 1, wherein parameter merging processing is performed to specialize each value and branch the processing result of the binding processing specialized for each parameter value.
- 前記データ処理装置は、パラメータごとに個別に内部構造の正規化処理を行い、内部構造のループ及び関数を正規化し、CDFGに変換し、生成されたCDFGに対して、スケジューリング手段を適用し、バインディング処理を行い、RTレベル記述を生成すると共に、分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータ使用箇所について、パラメータを最大値の定数値に定数化すると共に、元々のパラメータ名を記録するように設定し、パラメータの取り得る値で特化するものとして合成することになったパラメータ使用箇所について、パラメータを各々の値に特化し、パラメータの値ごとに特化して実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行い、定数化したパラメータを変数に戻すパラメータ変数化処理を行うことを特徴とする請求項1記載の動作合成装置。 The data processing apparatus performs normalization processing of the internal structure individually for each parameter, normalizes loops and functions of the internal structure, converts them to CDFG, applies scheduling means to the generated CDFG, Performs processing, generates an RT level description, and sets the parameter to the 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. The parameter name is set to record the original parameter name, and the parameter used for the parameter use location that is to be synthesized as a specialization with the possible value of the parameter Parameter merge processing that branches the binding processing results that have been specialized for each Was carried out, the operation synthesizing apparatus according to claim 1, characterized in that the parameter variable process that returns the parameter constants into variables.
- 抽象度の高い回路仕様が記述された動作レベル記述を言語解析手段が、言語解析処理により、動作合成用の内部表現に変換し、前記動作レベル記述に含まれるパラメータを複数に分類し、
パラメータ定数化手段が、分類されたパラメータのうち、パラメータの取り得る値の最大値とみなして合成することになったパラメータ使用箇所について、パラメータ定数化処理により、パラメータを最大値の定数値に置き換えると共に、元々のパラメータ名を記録するように設定し、
パラメータ特化手段が、パラメータの取り得る値で特化するものとして合成することになったパラメータ使用箇所について、パラメータ特化処理により、パラメータを各々の値に特化し、
内部構造正規化手段が、特化したパラメータごとに個別に内部構造の正規化処理を行い、内部構造のループ及び関数を正規化し、
CDFG生成手段が、CDFG生成処理によりCDFGに変換し、
バインディング手段が、生成されたCDFGに対して、スケジューリング手段を適用し、バインディング処理を行ない、
パラメータマージ手段が、パラメータの値ごとに特化して実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行ない、
パラメータ変数化手段が、定数化したパラメータを変数に戻すパラメータ変数化を行ない、
RT記述生成手段が、RTレベル記述生成処理により、RTレベル記述を生成することを特徴とする動作合成方法。 The language analysis means converts the behavior level description in which the circuit specification having a high degree of abstraction is described into an internal representation for behavioral synthesis by language analysis processing, classifies the parameters included in the behavior level description into a plurality of parameters,
The parameter constant conversion means replaces the parameter with the constant value of the maximum value by the parameter constant conversion processing for the parameter use portion that is supposed to be synthesized as the maximum value that can be taken by the parameter among the classified parameters. And set it to record the original parameter name,
The parameter specialization means specializes the parameter to each value by the parameter specialization process for the parameter usage part that was to be synthesized as the specialization by the value that the parameter can take.
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,
CDFG generation means converts to CDFG by the CDFG generation process,
The binding means applies the scheduling means to the generated CDFG, performs the binding process,
The parameter merging means performs a parameter merging process that branches the binding process results specially executed for each parameter value.
The parameter variableization means performs parameter variable conversion that returns the parameter converted to a constant to the variable,
A behavioral synthesis method, wherein the RT description generation means generates an RT level description by RT level description generation processing. - 前記複数に分類するに際して、パラメータ分類処理により、パラメータは、変数のまま扱うもの、パラメータの取り得る値の最大値とみなしてパラメータの値を合成するもの、パラメータの取り得る値で特化するもの、の3種類に分類することを特徴とする請求項5記載の動作合成方法。 When classifying into a plurality of parameters, the parameters are treated as variables by the parameter classification process, the parameters are considered to be the maximum value that can be taken by the parameter, the parameter values are synthesized, and the parameters can be specialized The behavioral synthesis method according to claim 5, wherein the behavioral synthesis method is classified into three types.
- 前記パラメータ分類処理は複数のプロセッサで時間的に並列に実行するか、または、単一のプロセッサで順次実行することを特徴とする請求項6記載の動作合成方法。 7. The behavioral synthesis method according to claim 6, wherein the parameter classification processing is executed in parallel in time by a plurality of processors or sequentially executed by a single processor.
- 前記取り得る値の最大値とみなしてパラメータの値を合成したパラメータについては、もとのパラメータに復帰させるパラメータ変数化処理を行うことを特徴とする請求項6記載の動作合成方法。 7. The behavioral synthesis method according to claim 6, wherein a parameter variable process for returning to the original parameter is performed on the parameter obtained by synthesizing the parameter value as the maximum value that can be taken.
- コンピュータを、抽象度の高い回路仕様が記述された動作レベル記述を言語解析処理により、動作合成用の内部表現に変換し、前記動作レベル記述に含まれるパラメータを複数に分類する手段、分類されたパラメータのうち、パラメータの取り得る値の最大値とみなしてパラメータの値を合成することになったパラメータ使用箇所について、パラメータ定数化処理により、パラメータを最大値の定数値に置き換えると共に、元々のパラメータ名を記録するように設定する手段、パラメータの取り得る値で特化するものとしてパラメータの値を合成することになったパラメータ使用箇所について、パラメータ特化処理により、パラメータを各々の値に特化する手段、特化したパラメータごとに個別に内部構造の正規化処理を行い、内部構造のループ及び関数を正規化する手段、CDFG生成処理によりCDFGに変換し、生成されたCDFGに対して、スケジューリング手段を適用し、バインディング処理を行う手段、パラメータの値ごとに特化して実行されたバインディング処理結果をまとめて分岐させるパラメータマージ処理を行う手段、定数化したパラメータを変数に戻すパラメータ変数化を行う手段、RTレベル記述生成処理により、RTレベル記述を生成する手段、として機能させるためのプログラム。 A means for converting a behavior level description in which a circuit specification having a high level of abstraction is described into an internal representation for behavioral synthesis by language analysis processing, and classifying parameters included in the behavior level description into a plurality Of the parameters, the parameter use point that is considered to be the maximum value of the parameter that can be synthesized is replaced with the constant value of the maximum value by the parameter constant processing, and the original parameter A means to set the name to be recorded, parameter use processing where the parameter value is to be synthesized as a specialization by the value that the parameter can take, specialize the parameter to each value by parameter specialization processing The internal structure normalization process is performed individually for each specialized parameter. Means for normalizing loops and functions, converting to CDFG by CDFG generation processing, applying scheduling processing to the generated CDFG, performing binding processing, specially executed for each parameter value A function for performing a parameter merge process for branching the binding process results together, a means for performing a parameter variable to return a constant parameter to a variable, and a means for generating an RT level description by an RT level description generation process. program.
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 (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009072301 | 2009-03-24 | ||
JP2009-072301 | 2009-03-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010110194A1 true WO2010110194A1 (en) | 2010-09-30 |
Family
ID=42780888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/054761 WO2010110194A1 (en) | 2009-03-24 | 2010-03-15 | Motion synthesis device, motion synthesis method, and program |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5692063B2 (en) |
WO (1) | WO2010110194A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230148646A (en) * | 2022-04-18 | 2023-10-25 | 인하대학교 산학협력단 | HDEVS based RTL design tool with co-simulator for reducing semiconductor design and verification process cost |
Citations (4)
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 design method using it for integrated circuit |
JP2006171913A (en) * | 2004-12-13 | 2006-06-29 | Canon Inc | Information processor, information processing method, program and storage medium |
-
2010
- 2010-03-15 JP JP2011506022A patent/JP5692063B2/en active Active
- 2010-03-15 WO PCT/JP2010/054761 patent/WO2010110194A1/en active Application Filing
Patent Citations (4)
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 design method using it for integrated circuit |
JP2006171913A (en) * | 2004-12-13 | 2006-06-29 | Canon Inc | Information processor, information processing method, program and storage medium |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230148646A (en) * | 2022-04-18 | 2023-10-25 | 인하대학교 산학협력단 | HDEVS based RTL design tool with co-simulator for reducing semiconductor design and verification process cost |
KR102716753B1 (en) * | 2022-04-18 | 2024-10-15 | 인하대학교 산학협력단 | Rtl-devs simulator in hdevs that can be simulated with open source rtl design tools |
Also Published As
Publication number | Publication date |
---|---|
JPWO2010110194A1 (en) | 2012-09-27 |
JP5692063B2 (en) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhao et al. | Performance modeling and directives optimization for high-level synthesis on FPGA | |
Canis et al. | Modulo SDC scheduling with recurrence minimization in high-level synthesis | |
Cong et al. | Bandwidth optimization through on-chip memory restructuring for HLS | |
Guo et al. | Input data reuse in compiling window operations onto reconfigurable hardware | |
US7096438B2 (en) | Method of using clock cycle-time in determining loop schedules during circuit design | |
Wang et al. | A comprehensive framework for synthesizing stencil algorithms on FPGAs using OpenCL model | |
Liu et al. | Unified buffer: Compiling image processing and machine learning applications to push-memory accelerators | |
US20090228859A1 (en) | Synthesis constraint creating device, behavioral synthesis device, synthesis constraint creating method and recording medium | |
Raghunathan et al. | Integrating variable-latency components into high-level synthesis | |
JP5692063B2 (en) | Behavioral synthesis apparatus, behavioral synthesis method, and program | |
Bezati et al. | High-level synthesis of dynamic dataflow programs on heterogeneous MPSoC platforms | |
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 | |
Virginia et al. | An empirical comparison of ANSI-C to VHDL compilers: SPARK, ROCCC and DWARV | |
Matai et al. | Trimmed VLIW: Moving application specific processors towards high level synthesis | |
JP2018041301A (en) | RTL optimization system and RTL optimization program | |
Rashid et al. | Fast parallel high-level synthesis design space explorer: Targeting fpgas to accelerate asic exploration | |
Nawaz et al. | Recursive variable expansion: A loop transformation for reconfigurable systems | |
Shahsavani et al. | Efficient compilation and mapping of fixed function combinational logic onto digital signal processors targeting neural network inference and utilizing high-level synthesis | |
Molina et al. | Frequent-pattern-guided multilevel decomposition of behavioral specifications | |
Häublein et al. | Hybrid code description for developing fast and resource efficient image processing architectures | |
Hannig et al. | Parallelization approaches for hardware accelerators–loop unrolling versus loop partitioning | |
Chung | Optimization of compiler-generated OpenCL CNN kernels and runtime for FPGAs | |
JP5626724B2 (en) | Accelerator and data processing method | |
Nazar Shahsavani et al. | Efficient Compilation and Mapping of Fixed Function Combinational Logic onto Digital Signal Processors Targeting Neural Network Inference and Utilizing High-level Synthesis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10755991 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011506022 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10755991 Country of ref document: EP Kind code of ref document: A1 |