JP2011129020A - Operation synthesizing device and method - Google Patents

Operation synthesizing device and method Download PDF

Info

Publication number
JP2011129020A
JP2011129020A JP2009288871A JP2009288871A JP2011129020A JP 2011129020 A JP2011129020 A JP 2011129020A JP 2009288871 A JP2009288871 A JP 2009288871A JP 2009288871 A JP2009288871 A JP 2009288871A JP 2011129020 A JP2011129020 A JP 2011129020A
Authority
JP
Japan
Prior art keywords
description
concealment
hardware module
unit
behavioral
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009288871A
Other languages
Japanese (ja)
Other versions
JP5471413B2 (en
Inventor
Takeshi Sadakata
毅 貞方
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009288871A priority Critical patent/JP5471413B2/en
Publication of JP2011129020A publication Critical patent/JP2011129020A/en
Application granted granted Critical
Publication of JP5471413B2 publication Critical patent/JP5471413B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an operation synthesizing device and method for synthesizing operations from published operation descriptions without publishing concealed descriptions. <P>SOLUTION: The operation synthesizing device includes an operation description dividing means and a concealed part consideration scheduling/binding means. The operation description dividing means divides an operation description into a concealed part being a description block to which concealing is designated and a published part being a description other than the concealed part, functionalizes the description of the concealed part and also replaces the description with a description for accessing the function. The concealed part consideration scheduling/binding means allocates a hardware module corresponding to the concealed part to replaced processing instead of the functionalized concealed part. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、半導体集積回路の動作を示す動作記述から具体的な機能(回路)を示すRTL(Register Transfer Level)記述を生成する動作合成装置及び方法に関する。   The present invention relates to a behavioral synthesis apparatus and method for generating an RTL (Register Transfer Level) description indicating a specific function (circuit) from an operation description indicating the operation of a semiconductor integrated circuit.

近年、システムLSIの設計には、抽象度の高い動作記述で設計し、動作合成によりRTL回路を生成する設計手法が採用され始めている。この種の設計手法では、まずシステムLSIの所望の動作を実現する動作記述を設計し、動作合成により動作記述をRTL記述に変換する。そして、論理合成によりRTL記述をゲートレベル記述に変換し、最後にゲートレベル記述から回路レイアウトを作成する。このように動作記述に基づいてハードウェアを設計することで、設計情報を抽象化できるために設計効率が向上する。   In recent years, a design technique for designing an RTL circuit by behavioral synthesis and designing with a behavioral description with a high degree of abstraction has begun to be adopted for system LSI design. In this type of design method, first, a behavioral description that realizes a desired behavior of the system LSI is designed, and the behavioral description is converted into an RTL description by behavioral synthesis. Then, the RTL description is converted into a gate level description by logic synthesis, and finally a circuit layout is created from the gate level description. By designing the hardware based on the behavioral description in this way, the design information can be abstracted, thereby improving the design efficiency.

しかしながら、動作記述で用いるハードウェア記述言語は、一般にソフトウェア記述言語と同程度の抽象度である。そのため、動作記述が第三者に見られると、該第三者によって動作記述内のアルゴリズム等が解読され、該アルゴリズムで示される技術情報が漏洩するおそれがある。特に、動作記述の作成者(以下、動作記述作成者と称す)と動作合成ツールを用いて動作記述から動作合成を行う実行者(以下、動作合成実行者)とが異なる場合、動作記述作成者が作成したアルゴリズムが動作合成実行者によって容易に解読されてしまう。   However, the hardware description language used in the behavioral description is generally at the same level of abstraction as the software description language. Therefore, when the behavioral description is seen by a third party, the third party may decrypt the algorithm or the like in the behavioral description and leak technical information indicated by the algorithm. In particular, if the creator of the behavioral description (hereinafter referred to as the behavioral description creator) is different from the performer (hereinafter referred to as the behavioral synthesis performer) who performs behavioral synthesis from the behavioral description using the behavioral synthesis tool, the behavioral description creator The algorithm created by is easily deciphered by the behavioral synthesis performer.

動作記述を部分的に秘匿する方法としては、例えば、動作記述作成者が、作成した動作記述を秘匿する記述と公開する記述とに分割し、秘匿する記述を関数等に変換する方法が知られている。しかしながら、動作記述の作成段階において、秘匿のために動作記述を分割すると、動作記述の再利用性が低下するため、設計効率が低下する問題がある。また、秘匿のために既に設計済みの動作記述の一部を変更すると、新たなバグが混入するおそれがある。   As a method of partially concealing the behavior description, for example, a method in which the behavior description creator divides the created behavior description into a concealed description and a public description and converts the concealed description into a function or the like is known. ing. However, if the behavioral description is divided for concealment in the behavioral description creation stage, the reusability of the behavioral description is lowered, and there is a problem that the design efficiency is lowered. In addition, if a part of the behavior description already designed for concealment is changed, a new bug may be mixed.

なお、動作記述を部分的に秘匿する他の方法としては、特許文献1(特開2002―163312号公報)や特許文献2(特開2005―235848号公報)に記載された技術もある。特許文献1(特開2002―163312号公報)や特許文献2(特開2005―235848号公報)には、動作記述中の変数名等の文字列を元の文字列を推定できない他の文字列に変換することで、該動作記述で示された設計情報の解読を困難にする方法が記載されている。   As another method of partially concealing the behavioral description, there are techniques described in Patent Document 1 (Japanese Patent Laid-Open No. 2002-163712) and Patent Document 2 (Japanese Patent Laid-Open No. 2005-235848). In Patent Document 1 (Japanese Patent Laid-Open No. 2002-163812) and Patent Document 2 (Japanese Patent Laid-Open No. 2005-235848), other character strings that cannot be estimated from character strings such as variable names in action descriptions. A method is described in which it is difficult to decipher the design information shown in the behavioral description by converting into the above.

特開2002―163312号公報JP 2002-163312 A 特開2005―235848号公報JP 2005-235848 A

上述したように、背景技術の動作合成装置では、動作記述作成者が、設計した動作記述を秘匿する記述と公開する記述とに分割し、秘匿する記述を個別に関数等に変換するため、動作記述の再利用性が低下して設計効率が低下する問題がある。また、秘匿のために既に設計済みの動作記述の一部を変更すると、新たなバグが混入するおそれがある。   As described above, in the behavioral synthesis device of the background art, the behavioral description creator divides the designed behavioral description into a confidential description and a public description and converts the confidential description into a function or the like individually. There is a problem that the reusability of the description is lowered and the design efficiency is lowered. In addition, if a part of the behavior description already designed for concealment is changed, a new bug may be mixed.

一方、上述した特許文献1や特許文献2では、動作記述中の変数名等の文字列を変更することで秘匿性を向上させる技術を示しているが、アルゴリズムの記述を変更することについては何も示していないため、アルゴリズムが解読される危険性は依然として存在する。   On the other hand, Patent Document 1 and Patent Document 2 described above show a technique for improving confidentiality by changing a character string such as a variable name in an operation description, but what about changing an algorithm description? There is still a risk that the algorithm will be deciphered.

本発明は上述したような背景技術が有する問題点を解決するためになされたものであり、秘匿する記述を公開することなく、公開された動作記述から動作合成が可能な動作合成装置及び方法を提供することを目的とする。   The present invention has been made to solve the problems of the background art as described above, and provides a behavioral synthesis apparatus and method capable of behavioral synthesis from published behavioral descriptions without disclosing secret descriptions. The purpose is to provide.

上記目的を達成するため本発明の動作合成装置は、動作記述を、秘匿化が指定された記述ブロックである秘匿部と前記秘匿部を除く記述である公開部とに分割し、前記秘匿部の記述を関数化すると共に該関数を呼び出す処理の記述に置き換える動作記述分割手段と、
前記関数化された秘匿部に代わって置き換えられた処理に、前記秘匿部に対応するハードウェアモジュールを割り当てる秘匿部考慮スケジューリング/バインディング手段と、
を有する。
In order to achieve the above object, the behavioral synthesis device of the present invention divides the behavior description into a concealment unit that is a description block in which concealment is specified and a public unit that is a description excluding the concealment unit. A behavior description dividing means for converting the description into a function and replacing it with a description of a process for calling the function;
A concealment unit considering scheduling / binding means for allocating a hardware module corresponding to the concealment unit to the processing replaced in place of the functionalized concealment unit;
Have

または、動作記述を、秘匿化が指定された記述ブロックである秘匿部と前記秘匿部を除く記述である公開部とに分割し、前記秘匿部の記述を関数化すると共に該関数を呼び出す処理の記述に置き換える動作記述分割手段と、
前記公開部に対応するハードウェアモジュールとのデータの送受信に用いる入出力ポートの定義を含む、前記秘匿部に対応するハードウェアモジュールの動作合成結果であるRTL記述を生成する公開部考慮スケジューリング/バインディング手段と、
を有する。
Or, the operation description is divided into a concealment unit which is a description block in which concealment is designated and a public unit which is a description excluding the concealment unit, and the description of the concealment unit is converted into a function and the function is called. A behavior description dividing means for replacing with a description;
Public part-considered scheduling / binding that generates an RTL description that is a result of behavioral synthesis of the hardware module corresponding to the secret part, including definitions of input / output ports used for data transmission / reception with the hardware module corresponding to the public part Means,
Have

一方、本発明の動作合成方法は、動作記述を、秘匿化が指定された記述ブロックである秘匿部と前記秘匿部を除く記述である公開部とに分割し、
前記秘匿部の記述を関数化すると共に該関数を呼び出す処理の記述に置き換え、
前記関数化された秘匿部に代わって置き換えられた処理に、前記秘匿部に対応するハードウェアモジュールを割り当てる方法である。
On the other hand, the behavioral synthesis method of the present invention divides the behavioral description into a secret part that is a description block in which concealment is specified and a public part that is a description excluding the secret part,
Converting the description of the concealment part into a function and replacing it with a description of a process for calling the function;
In this method, a hardware module corresponding to the concealment unit is assigned to a process replaced in place of the functionalized concealment unit.

または、動作記述を、秘匿化が指定された記述ブロックである秘匿部と前記秘匿部を除く記述である公開部とに分割し、
前記秘匿部の記述を関数化すると共に該関数を呼び出す処理の記述に置き換え、
前記公開部に対応するハードウェアモジュールとのデータの送受信に用いる入出力ポートの定義を含む、前記秘匿部に対応するハードウェアモジュールの動作合成結果であるRTL記述を生成する方法である。
Alternatively, the behavioral description is divided into a secret part that is a description block for which concealment is designated and a public part that is a description excluding the secret part,
Converting the description of the concealment part into a function and replacing it with a description of a process for calling the function;
This is a method for generating an RTL description, which is a behavioral synthesis result of the hardware module corresponding to the concealment unit, including definitions of input / output ports used for data transmission / reception with the hardware module corresponding to the disclosure unit.

本発明によれば、秘匿する記述を公開することなく、公開された動作記述から動作合成が可能になる。   According to the present invention, it is possible to perform behavioral synthesis from published behavioral descriptions without disclosing secret descriptions.

第1の実施の形態の動作合成装置の一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the behavioral synthesis apparatus of 1st Embodiment. 第1の実施の形態の動作合成装置の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence of the behavioral synthesis apparatus of 1st Embodiment. 秘匿化ブロックが分割可能か否かを判定するための処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence for determining whether a concealment block can be divided | segmented. 第2の実施の形態の動作合成装置の一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the behavioral synthesis apparatus of 2nd Embodiment. 第2の実施の形態の動作合成装置の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence of the behavioral synthesis apparatus of 2nd Embodiment. 動作記述の一例を示す模式図である。It is a schematic diagram which shows an example of action description. 図6に示した動作記述に対応する、動作記述分割指示の一例を示す模式図である。FIG. 7 is a schematic diagram illustrating an example of a behavior description division instruction corresponding to the behavior description illustrated in FIG. 6. 図6に示した動作記述及び図7に示した動作記述分割指示から生成される秘匿部動作記述の一例を示す模式図である。FIG. 8 is a schematic diagram illustrating an example of a secret part behavior description generated from the behavior description illustrated in FIG. 6 and the behavior description division instruction illustrated in FIG. 7. 図6に示した動作記述及び図7に示した動作記述分割指示から生成される公開部動作記述の一例を示す模式図である。FIG. 8 is a schematic diagram illustrating an example of a public section behavior description generated from the behavior description illustrated in FIG. 6 and the behavior description division instruction illustrated in FIG. 7. 図6に示した動作記述及び図7に示した動作記述分割指示から生成される秘匿部ハードウェアモジュール情報の一例を示す模式図である。FIG. 8 is a schematic diagram illustrating an example of concealment unit hardware module information generated from the behavior description illustrated in FIG. 6 and the behavior description division instruction illustrated in FIG. 7. 図6に示した動作記述及び図7に示した動作記述分割指示から生成されるテンプレートである秘匿部ハードウェアモジュールRTL記述の一例を示す模式図である。FIG. 8 is a schematic diagram illustrating an example of a concealment unit hardware module RTL description that is a template generated from the behavior description illustrated in FIG. 6 and the behavior description division instruction illustrated in FIG. 7. 図6に示した動作記述及び図7に示した動作記述分割指示から生成される公開部ハードウェアモジュールRTL記述の一例を示す模式図である。FIG. 8 is a schematic diagram illustrating an example of a public section hardware module RTL description generated from the behavior description illustrated in FIG. 6 and the behavior description division instruction illustrated in FIG. 7. 図6に示した動作記述及び図7に示した動作記述分割指示から生成されるコントロールフローグラフの一例を示す模式図である。FIG. 8 is a schematic diagram illustrating an example of a control flow graph generated from the behavior description illustrated in FIG. 6 and the behavior description division instruction illustrated in FIG. 7. 図6に示した動作記述及び図7に示した動作記述分割指示から生成されるコールグラフの一例を示す模式図である。FIG. 8 is a schematic diagram showing an example of a call graph generated from the behavior description shown in FIG. 6 and the behavior description division instruction shown in FIG. 7. 第2実施例の動作合成装置で生成される、秘匿部ハードウェアモジュールRTL記述の一例を示す模式図である。It is a schematic diagram which shows an example of the secrecy part hardware module RTL description produced | generated with the behavioral synthesis apparatus of 2nd Example.

次に本発明について図面を用いて説明する。
(第1の実施の形態)
図1は第1の実施の形態の動作合成装置の一構成例を示すブロック図である。
Next, the present invention will be described with reference to the drawings.
(First embodiment)
FIG. 1 is a block diagram illustrating a configuration example of the behavioral synthesis device according to the first embodiment.

図1に示すように、第1の実施の形態の動作合成装置は、動作記述をRTL記述へ変換する処理装置100と、変換対象となる動作記述、変換後のRTL記述及び動作記述からRTL記述への変換処理で用いる各種のデータが格納される記憶装置110とを有する構成である。図1に示す動作合成装置は、例えばプログラムにしたがって所要の処理を実行するCPU、記憶装置、各種の論理回路等を含むコンピュータで実現できる。   As shown in FIG. 1, the behavioral synthesis device according to the first embodiment includes a processing device 100 that converts a behavior description into an RTL description, a behavior description to be converted, an RTL description after conversion, and an RTL description from the behavior description. The storage device 110 stores various data used in the conversion process. The behavioral synthesis device shown in FIG. 1 can be realized by a computer including a CPU that executes required processing according to a program, a storage device, various logic circuits, and the like.

処理装置100は、動作記述分割手段101、テンプレート生成手段102及び秘匿部考慮スケジューリング/バインディング手段103を備えている。   The processing apparatus 100 includes a behavior description dividing unit 101, a template generating unit 102, and a confidential part considering scheduling / binding unit 103.

また、記憶装置110は、動作記述記憶部111、動作記述分割指示記憶部112、秘匿部動作記述記憶部113、公開部動作記述記憶部114、秘匿部ハードウェアモジュール情報記憶部115、秘匿部ハードウェアモジュールRTL記述テンプレート記憶部116、公開部動作合成指示記憶部117及び公開部ハードウェアモジュールRTL記述記憶部118を備えている。   Further, the storage device 110 includes a behavior description storage unit 111, a behavior description division instruction storage unit 112, a concealment unit operation description storage unit 113, a public unit operation description storage unit 114, a concealment unit hardware module information storage unit 115, and a concealment unit hardware. A hardware module RTL description template storage unit 116, a public unit behavioral synthesis instruction storage unit 117, and a public unit hardware module RTL description storage unit 118.

RTL記述への変換対象となる動作記述は、予め動作記述記憶部111に格納されている。動作記述は、Verilog−HDL、VHDL、SystemVerilog等のハードウェア記述言語、あるいはC言語、C++言語、C#言語、SystemC、SpecC、Java(登録商標)、Perl、Scheme、Lisp等のプログラミング言語で表される。また、動作記述には、回路設計用にC言語、C++言語、Java(登録商標)から拡張された言語を用いることもある。動作記述は、動作記述作成者によって準備される。   The behavior description to be converted into the RTL description is stored in the behavior description storage unit 111 in advance. The operation description is expressed in a hardware description language such as Verilog-HDL, VHDL, or SystemVerilog, or in a programming language such as C language, C ++ language, C # language, SystemC, SpecC, Java (registered trademark), Perl, Scheme, or Lisp. Is done. The behavioral description may use C language, C ++ language, or a language extended from Java (registered trademark) for circuit design. The behavioral description is prepared by the behavioral description creator.

作成した動作記述のうち、秘匿化する記述ブロック(以下、秘匿化ブロックと称す)は、動作記述分割指示で指定される。動作記述分割指示は、秘匿化ブロックの範囲を指定する情報を含み、予め動作記述分割指示記憶部112に格納される。動作記述分割指示は、例えば動作記述作成者によって準備される。   Among the created behavior descriptions, a description block to be concealed (hereinafter referred to as a concealment block) is designated by an operation description division instruction. The behavior description division instruction includes information for specifying the range of the concealment block, and is stored in the behavior description division instruction storage unit 112 in advance. The action description division instruction is prepared by, for example, the action description creator.

動作記述分割手段101は、動作記述記憶部111から動作記述を読み出し、動作記述分割指示記憶部112から該動作記述に対応する動作記述分割指示を読み出し、動作記述記憶部111から読み出した動作記述のうち、動作記述分割指示で指定された秘匿化ブロックを関数化する。また、秘匿化ブロックの関数化に用いた関数の定義を秘匿部動作記述として秘匿部動作記述記憶部113に格納する。また、動作記述分割手段101は、動作記述記憶部111から読み出した動作記述のうち、関数化された秘匿化ブロックを、該関数を呼び出すための記述に置き換え、該記述を含む動作記述全体を公開部動作記述として公開部動作記述記憶部114に格納する。さらに、動作記述分割手段101は、秘匿化ブロックの関数化時に解析した該秘匿化ブロックの特徴に基づいて、該秘匿化ブロックの関数内でアクセスする、該関数外で定義される変数、配列、関数の情報を動作記述分割指示に追加し、秘匿部ハードウェアモジュール情報として秘匿部ハードウェアモジュール情報記憶部115に格納する。   The behavior description dividing unit 101 reads the behavior description from the behavior description storage unit 111, reads the behavior description division instruction corresponding to the behavior description from the behavior description division instruction storage unit 112, and reads the behavior description read from the behavior description storage unit 111. Among these, the concealment block designated by the action description division instruction is converted into a function. Further, the definition of the function used for functionalizing the concealment block is stored in the concealment unit operation description storage unit 113 as the concealment unit operation description. Also, the behavior description dividing unit 101 replaces the functionalized concealment block in the behavior description read from the behavior description storage unit 111 with a description for calling the function, and discloses the entire behavior description including the description. It is stored in the public part operation description storage unit 114 as a part operation description. Furthermore, the behavioral description dividing unit 101 accesses variables within the function of the concealment block based on the characteristics of the concealment block analyzed when the concealment block is functionalized, a variable defined outside the function, an array, Information on the function is added to the operation description division instruction, and is stored in the concealment unit hardware module information storage unit 115 as concealment unit hardware module information.

テンプレート生成手段102は、秘匿部ハードウェアモジュール情報記憶部115から秘匿部ハードウェアモジュール情報を読み出し、該秘匿部ハードウェアモジュール情報で指定されたインターフェース生成規則にしたがって秘匿部ハードウェアモジュールと公開部ハードウェアモジュール間のインターフェースを決定する。また、テンプレート生成手段102は、インターフェースとして用いる入出力ポート等を示す秘匿部ハードウェアモジュールのRTL記述をテンプレートとして生成し、秘匿部ハードウェアモジュールRTL記述テンプレート記憶部116に格納する。   The template generation unit 102 reads the secret part hardware module information from the secret part hardware module information storage unit 115, and according to the interface generation rule specified by the secret part hardware module information, the secret part hardware module and the public part hardware Interface between hardware modules. Further, the template generation unit 102 generates the RTL description of the secret part hardware module indicating the input / output port used as an interface as a template, and stores it in the secret part hardware module RTL description template storage unit 116.

公開部ハードウェアモジュールは、公開部動作記述から動作合成により生成された、RTL記述で示されるハードウェアモジュールを指す。また、秘匿部ハードウェアモジュールは、上記秘匿部ハードウェアモジュール情報から動作合成により生成された、RTL記述で示されるハードウェアモジュールを指す。   The public part hardware module indicates a hardware module indicated by the RTL description generated by behavioral synthesis from the public part behavior description. The concealment unit hardware module refers to a hardware module indicated by RTL description generated by behavioral synthesis from the concealment unit hardware module information.

インターフェースは、公開部ハードウェアモジュールと秘匿部ハードウェアモジュール間で制御信号やデータ信号を送受信するのに用いる入出力ポート及びプロトコルを指す。インターフェース生成規則は、動作記述分割指示で指定され、動作合成装置の装置構成に応じて定義される。   The interface refers to an input / output port and protocol used for transmitting and receiving control signals and data signals between the public unit hardware module and the secret unit hardware module. The interface generation rule is specified by the behavior description division instruction and is defined according to the device configuration of the behavioral synthesis device.

インターフェース生成規則としては、公開部ハードウェアモジュールから秘匿部ハードウェアモジュールの実行制御を行うためのインターフェース生成規則、秘匿部ハードウェアモジュールから公開部ハードウェアモジュール内に実現された関数の機能を制御するためのインターフェース生成規則、公開部ハードウェアモジュールと秘匿部ハードウェアモジュール間でデータ転送を行うためのインターフェース生成規則等がある。例えば、公開部ハードウェアモジュールから秘匿部ハードウェアモジュールへ実行制御を移す場合、公開部ハードウェアモジュールが開始制御信号(1ビット)の立ち上げることで通知することを示すプロトコルと、該開始制御信号の送受信に用いる入出力ポートとを定義する。   As an interface generation rule, an interface generation rule for performing execution control of the secret part hardware module from the public part hardware module, and a function of the function realized in the public part hardware module from the secret part hardware module are controlled. Interface generation rules, and interface generation rules for data transfer between the public hardware module and the secret hardware module. For example, when the execution control is transferred from the public unit hardware module to the concealment unit hardware module, a protocol indicating that the public unit hardware module notifies by starting the start control signal (1 bit), and the start control signal Define input / output ports used for sending and receiving.

秘匿部考慮スケジューリング/バインディング手段103は、公開部動作記述記憶部114から公開部動作記述を読み出し、秘匿部ハードウェアモジュール情報記憶部115から秘匿部ハードウェアモジュール情報を読み出し、公開部動作合成指示記憶部117から公開部動作合成指示を読み出し、公開部動作記述に含まれる関数を呼び出すための記述に対して、秘匿部ハードウェアモジュールを内部の論理が定義されないブラックボックス化された外部ハードウェアモジュールとして割り当てるよう、スケジューリング及びバインディングする。また、秘匿部考慮スケジューリング/バインディング手段103は、動作合成結果である、秘匿部ハードウェアモジュールRTL記述テンプレートの入出力ポートとの接続情報を備える公開部ハードウェアモジュールRTL記述を生成し、公開部ハードウェアモジュールRTL記述記憶部118に格納する。   The secret part considering scheduling / binding means 103 reads the public part behavior description from the public part behavior description storage part 114, reads the secret part hardware module information from the secret part hardware module information storage part 115, and stores the public part behavior synthesis instruction storage. The secret part hardware module is read as a black boxed external hardware module in which the internal logic is not defined for the description for reading the public part behavior synthesis instruction from the part 117 and calling the function included in the public part behavior description. Schedule and bind to assign. Further, the concealment unit considering scheduling / binding means 103 generates a public unit hardware module RTL description including connection information with the input / output port of the concealment unit hardware module RTL description template, which is a behavioral synthesis result, and discloses the public unit hardware. Stored in the hardware module RTL description storage unit 118.

公開部動作合成指示は、公開部動作記述からの動作合成時に考慮すべき情報であり、予め公開部動作合成指示記憶部117に格納される。公開部動作合成指示は、例えば動作記述作成者によって準備される。   The public part behavioral synthesis instruction is information that should be taken into account during behavioral synthesis from the public part behavior description, and is stored in advance in the public part behavioral synthesis instruction storage unit 117. The public part behavior synthesis instruction is prepared, for example, by the behavior description creator.

次に、図1〜図3を用いて第1の実施の形態の動作合成装置の処理について説明する。   Next, processing of the behavioral synthesis device according to the first embodiment will be described with reference to FIGS.

まず、処理装置100は、動作記述分割指示手段101により、動作記述記憶部111から変換対象である動作記述を読み出し、動作記述分割指示記憶部112から該動作記述に対応する動作記述分割指示を読み出し、動作記述分割指示で指定された動作記述中の秘匿化ブロックが分割可能か否かを判定する(図2のステップS1)。   First, the processing apparatus 100 reads the behavior description to be converted from the behavior description storage unit 111 by the behavior description division instruction unit 101 and reads the behavior description division instruction corresponding to the behavior description from the behavior description division instruction storage unit 112. Then, it is determined whether or not the concealment block in the behavior description designated by the behavior description division instruction can be divided (step S1 in FIG. 2).

図3に示すように、秘匿化ブロックが分割可能か否かは、動作記述分割指示で定義された秘匿化ブロック毎に以下の3段階の解析を行うことで判定する。   As shown in FIG. 3, whether or not the concealment block can be divided is determined by performing the following three-stage analysis for each concealment block defined by the action description division instruction.

第1段階において、動作記述分割指示手段101は、動作記述の制御フロー解析を行い、秘匿化ブロックの開始点から終了点の間に該秘匿化ブロックの外部を通る実行パスが存在するか否かを確認する(図3のステップS11)。秘匿化ブロックの外部を通る実行パスが存在する場合は、指定された秘匿化ブロックを関数で表現できないため、分割不可と判定する。   In the first stage, the behavior description division instruction unit 101 performs a control flow analysis of the behavior description, and whether or not there is an execution path that passes outside the concealment block between the start point and the end point of the concealment block. Is confirmed (step S11 in FIG. 3). If there is an execution path that passes through the outside of the concealment block, the designated concealment block cannot be expressed by a function, and it is determined that the division is impossible.

第2段階において、動作記述分割指示手段101は、動作記述のポインタ解析及びデータフロー解析を行い、秘匿化ブロック内で参照・代入される該秘匿化ブロック外の変数、配列、外部ポート、並びに該秘匿化ブロック内で呼び出される関数を列挙する(図3のステップS12)。指し先を一意に特定できないポインタが秘匿化ブロック内に存在する場合は秘匿化ブロック内外のインターフェースを決定できないため、分割不可と判定する。   In the second stage, the behavior description division instruction unit 101 performs pointer analysis and data flow analysis of the behavior description, and variables, arrays, external ports outside the concealment block to be referred to / assigned in the concealment block, and the The functions called in the concealment block are listed (step S12 in FIG. 3). If there is a pointer in the concealment block that cannot uniquely identify the pointing destination, the interface inside or outside the concealment block cannot be determined.

第3段階において、動作記述分割指示手段101は、秘匿化ブロックを関数とみなしてプロシージャー間解析を行い、該関数の再帰呼び出しが存在するか否かを確認する(図3のステップS13)。関数の再帰呼び出しが存在する場合はハードウェアモジュールを実現できないため、分割不可と判定する。   In the third stage, the behavioral description division instruction unit 101 regards the concealment block as a function, performs interprocedural analysis, and checks whether there is a recursive call to the function (step S13 in FIG. 3). If there is a recursive function call, the hardware module cannot be realized, so it is determined that the function cannot be divided.

以上の3段階の解析結果でいずれも分割不可と判定されない場合、動作記述分割指示手段101は、解析した秘匿化ブロックが分割可能と判定する。なお、上記制御フロー解析、ポインタ解析、データフロー解析、プロシージャー間解析は、一般的なソフトウェアのコンパイラで用いられるアルゴリズムを用いて実行すればよい。   When none of the above three-stage analysis results determines that the division is impossible, the behavioral description division instruction unit 101 determines that the analyzed concealment block can be divided. The control flow analysis, pointer analysis, data flow analysis, and interprocedural analysis may be executed using an algorithm used by a general software compiler.

動作記述分割指示手段101は、秘匿化ブロックの分割が可能と判定すると、該秘匿化ブロックに対する各段階の解析結果を用いて秘匿化ブロック内で参照・代入される変数、配列、外部ポート、並びに該秘匿化ブロックで呼び出される関数の情報を、該秘匿化ブロックに対応する動作記述分割指示に追加し、秘匿部ハードウェアモジュール情報として秘匿部ハードウェアモジュール情報記憶部115に格納する(図2のステップS2)。   When the behavioral description division instruction unit 101 determines that the concealment block can be divided, the variable, the array, the external port, and the reference / substitution within the concealment block using the analysis result of each stage for the concealment block, and Information of the function called in the concealment block is added to the operation description division instruction corresponding to the concealment block, and is stored in the concealment unit hardware module information storage unit 115 as concealment unit hardware module information (FIG. 2). Step S2).

次に、動作記述分割指示手段101は、秘匿化ブロックの記述を、該秘匿化ブロック内で参照・代入される変数、配列、外部ポートを引数とする関数の定義またはそれらのポインタを引数とする関数の定義に変換し、秘匿部動作記述として秘匿部動作記述記憶部113に格納する。また、元の動作記述内の秘匿化ブロックの記述を、新たに定義された対応する関数を呼び出すための記述に変換し、公開部動作記述として公開部動作記述記憶部114に格納する(図2のステップS3)。   Next, the behavioral description division instructing means 101 uses the description of the concealment block as the argument, the definition of a function that uses a variable, an array, an external port as an argument, or the pointer thereof as an argument. It is converted into a function definition and stored in the secret part behavior description storage unit 113 as a secret part behavior description. Further, the description of the concealment block in the original behavior description is converted into a description for calling a newly defined corresponding function, and is stored in the public portion behavior description storage unit 114 as a public portion behavior description (FIG. 2). Step S3).

なお、秘匿化ブロック内で呼び出される、該秘匿化ブロック外で定義される関数が存在する場合、秘匿化ブロック内から該秘匿化ブロック外の関数を呼び出す記述とするか、秘匿化ブロック外の関数の定義を複製して該秘匿化ブロックの動作記述に含めるか、どちらの分割方法を採用するかは、動作記述分割指示で指定される。秘匿化ブロック外の関数の定義を複製して秘匿化ブロックの動作記述に含める場合、複製する関数は秘匿部ハードウェアモジュール内で実現可能であるものとする。   In addition, when there is a function defined outside the concealment block that is called within the concealment block, the function outside the concealment block is described in the concealment block, or a function outside the concealment block It is specified by the action description division instruction whether to copy the definition and include it in the operation description of the concealment block, or which division method is adopted. When the definition of the function outside the concealment block is duplicated and included in the operation description of the concealment block, the function to be duplicated can be realized in the concealment unit hardware module.

次に、処理装置100は、テンプレート生成手段102により、秘匿部ハードウェアモジュール情報記憶部115から秘匿部ハードウェアモジュール情報を読み込み、秘匿化ブロックに対応する秘匿部ハードウェアモジュールと公開部ハードウェアモジュール間のインターフェースを決定する。   Next, the processing apparatus 100 reads the concealment unit hardware module information from the concealment unit hardware module information storage unit 115 by the template generation unit 102, and the concealment unit hardware module and the disclosure unit hardware module corresponding to the concealment block. Determine the interface between.

また、テンプレート生成手段102は、決定したインターフェースに基づき、秘匿部ハードウェアモジュールの入出力ポートを定義したRTL記述から成る秘匿部ハードウェアモジュールを生成し、該RTL記述をテンプレートとして秘匿部ハードウェアモジュールRTL記述テンプレート記憶部116に格納する(図2のステップS4)。   Further, the template generation unit 102 generates a secret part hardware module including an RTL description that defines the input / output ports of the secret part hardware module based on the determined interface, and uses the RTL description as a template for the secret part hardware module. The data is stored in the RTL description template storage unit 116 (step S4 in FIG. 2).

最後に、処理装置100は、秘匿部考慮スケジューリング/バインディング手段103により、公開部動作記述記憶部114から公開部動作記述を読み出し、秘匿部ハードウェアモジュール情報記憶部115から秘匿部ハードウェアモジュール情報を読み出し、公開部動作合成指示記憶部117から公開部動作合成指示を読み出し、それらの情報を用いてスケジューリング及びバインディングを行う。秘匿部ハードウェアモジュールの性能、面積、消費電力に関する情報は、動作記述分割指示で指定される。スケジューリングは、公開部動作記述に含まれる、秘匿ブロックに対応する関数の呼び出し処理に置き換えた記述に、対応する秘匿部ハードウェアモジュールを割り当てるように実行する。スケジューリング時に考慮すべき秘匿部ハードウェアモジュールの遅延は、公開部動作合成指示で定義された値を用いる。   Finally, the processing device 100 reads the public part behavior description from the public part behavior description storage unit 114 by the secret part consideration scheduling / binding means 103 and stores the secret part hardware module information from the secret part hardware module information storage unit 115. Read, public part behavioral synthesis instruction storage unit 117 reads the public part behavioral synthesis instruction, and performs scheduling and binding using the information. Information related to the performance, area, and power consumption of the concealment unit hardware module is specified by the action description division instruction. Scheduling is executed so that the corresponding secret part hardware module is assigned to the description included in the public part behavior description and replaced with the function call processing corresponding to the secret block. As the delay of the secret part hardware module to be considered at the time of scheduling, the value defined by the public part behavioral synthesis instruction is used.

秘匿部考慮スケジューリング/バインディング手段103は、動作合成装置の装置構成に応じて定義されるインターフェース生成規則と秘匿部ハードウェアモジュール情報から決定されるインターフェースのプロトコルにしたがってスケジューリング行う。例えば、公開部動作合成指示で秘匿部ハードウェアモジュールの実行レイテンシが固定のクロックサイクル数で定義されている場合、固定のクロックサイクル数で動作する演算器と同様と見なしてスケジューリング行う。また、例えば、秘匿部ハードウェアモジュールの実行レイテンシが固定のクロックサイクル数で定義されておらず、不定である場合は、不定のクロックサイクル数で動作する外部ハードウェアモジュールとみなしてスケジューリングを行う。   The concealment unit considering scheduling / binding means 103 performs scheduling according to an interface generation rule defined according to the device configuration of the behavioral synthesis device and an interface protocol determined from the concealment unit hardware module information. For example, when the execution latency of the concealment unit hardware module is defined by a fixed number of clock cycles in the public unit behavioral synthesis instruction, scheduling is performed with the same assumption as that of an arithmetic unit operating at a fixed number of clock cycles. Also, for example, if the execution latency of the concealment hardware module is not defined with a fixed number of clock cycles and is indefinite, scheduling is performed assuming that it is an external hardware module that operates with an indefinite number of clock cycles.

また、秘匿部考慮スケジューリング/バインディング手段103は、ブラックボックス化された関数を呼び出すための記述に対して、対応する秘匿部ハードウェアモジュールを割り当てるバインディングを行う。   Further, the concealment unit considering scheduling / binding unit 103 performs binding for assigning a corresponding concealment unit hardware module to a description for calling a black box function.

秘匿部考慮スケジューリング/バインディング手段103は、動作合成装置の装置構成に応じて定義されるインターフェース生成規則と秘匿部ハードウェアモジュール情報から決定されるインターフェースとして用いる入出力ポートに基づき、動作合成結果から秘匿部ハードウェアモジュールRTL回路記述テンプレートの入出力ポートと接続可能な構造を持つ公開部ハードウェアモジュールRTL記述を生成し、公開部ハードウェアモジュールRTL記述記憶部118に格納する。   The concealment unit considering scheduling / binding means 103 conceals concealment from the behavioral synthesis result based on the interface generation rule defined according to the device configuration of the behavioral synthesis device and the input / output port used as the interface determined from the concealment unit hardware module information. The public part hardware module RTL description having a structure connectable to the input / output port of the part hardware module RTL circuit description template is generated and stored in the public part hardware module RTL description storage unit 118.

次に、本実施形態の動作合成装置の効果について説明する。   Next, the effect of the behavioral synthesis device of this embodiment will be described.

本実施形態の動作合成装置は、動作記述分割指示手段101により秘匿化が指定された動作記述中の処理ブロック(秘匿化ブロック)を秘匿部動作記述とし、該秘匿化ブロックを除く動作記述を公開部動作記述とし、秘匿部動作記述に対応する秘匿部ハードウェアモジュールのインターフェースを示す秘匿部ハードウェアモジュール情報を生成し、テンプレート生成手段102により秘匿部ハードウェアモジュールのRTL記述のテンプレートを生成し、秘匿部考慮スケジューリング/バインディング手段103により秘匿部ハードウェアモジュール情報を用いて秘匿部ハードウェアモジュールを考慮した動作合成を行い、秘匿部ハードウェアモジュールRTL記述テンプレートと接続可能な公開部ハードウェアモジュールRTL記述を生成する。   The behavioral synthesis device according to the present embodiment uses the processing block (the concealment block) in the behavior description for which concealment is designated by the behavior description division instruction unit 101 as the concealment unit behavior description, and discloses the behavior description excluding the concealment block. A secret part hardware module information indicating an interface of the secret part hardware module corresponding to the secret part behavior description, and generating a template of the RTL description of the secret part hardware module by the template generation unit 102; The public part hardware module RTL description connectable with the secret part hardware module RTL description template by performing behavioral synthesis considering the secret part hardware module using the secret part hardware module information by the secret part consideration scheduling / binding means 103 Generate a That.

したがって、動作記述作成者は、動作記述の一部を元の動作記述から分離して秘匿化することが可能であり、動作合成実行者は、秘匿部動作記述を外部ハードウェアモジュールとみなすことで公開部動作記述を動作合成できる。   Therefore, the behavioral description creator can separate a part of the behavioral description from the original behavioral description and conceal it, and the behavioral synthesis executor can consider the confidential part behavioral description as an external hardware module. The behavioral description of the public part can be synthesized.

また、秘匿する記述の範囲を指定するだけで、指定された動作記述中の処理ブロック(秘匿化ブロック)が関数化され、秘匿化ブロックが対応する関数の呼び出し処理に変換されると共に、該呼び出し処理で呼び出される外部ハードウェアモジュール(秘匿部ハードウェアモジュール)が生成されるため、動作記述作成者は、所望する記述を容易に秘匿化することが可能であり、動作記述を手作業で秘匿する記述と公開する記述とに分割し、秘匿のために記述を変更する必要がない。したがって、作成済みの動作記述に新たなバグ等が混入するおそれがない。
(第2の実施の形態)
次に本発明の第2の実施の形態について説明する。
In addition, simply by specifying the range of the description to be concealed, the processing block (the concealment block) in the specified operation description is converted into a function, and the concealment block is converted into a calling process of the corresponding function. Since an external hardware module (confidential part hardware module) that is called in the process is generated, the behavior description creator can easily conceal the desired description, and the behavioral description is concealed manually. There is no need to change the description for secrecy by dividing it into a description and a public description. Therefore, there is no possibility that a new bug or the like is mixed into the created behavioral description.
(Second Embodiment)
Next, a second embodiment of the present invention will be described.

図4は、第2の実施の形態の動作合成装置の一構成例を示すブロック図である。図5は、第2の実施の形態の動作合成装置の処理手順の一例を示すフローチャートである。   FIG. 4 is a block diagram illustrating a configuration example of the behavioral synthesis device according to the second embodiment. FIG. 5 is a flowchart illustrating an example of a processing procedure of the behavioral synthesis device according to the second embodiment.

第2の実施の形態の動作合成装置では、公開部動作記述から動作合成した公開部ハードウェアモジュールを外部ハードウェアモジュールとみなして秘匿部動作記述を動作合成し、その後、第1の実施の形態と同様に秘匿部動作記述から動作合成した秘匿部ハードウェアモジュールを外部ハードウェアモジュールとみなして公開部動作記述を動作合成する。   In the behavioral synthesis device of the second embodiment, the public part hardware module behaviorally synthesized from the public part behavior description is regarded as an external hardware module, and the secret part behavior description is behaviorally synthesized, and then the first embodiment. In the same manner as described above, the secret part hardware module that is behaviorally synthesized from the secret part behavior description is regarded as an external hardware module, and the public part behavior description is behaviorally synthesized.

図4に示すように、第2の実施の形態の動作合成装置では、処理装置100に、図1に示したテンプレート生成手段102に代わって、公開部考慮スケジューリング/バインディング手段104を備えている。また、記憶装置110に、秘匿部ハードウェアモジュールRTL記述テンプレート記憶部116に代わって、秘匿部動作合成指示記憶部119及び秘匿部ハードウェアモジュールRTL記述記憶部120を備えている。   As shown in FIG. 4, in the behavioral synthesis device according to the second embodiment, the processing device 100 includes a public part considering scheduling / binding unit 104 in place of the template generation unit 102 shown in FIG. Further, the storage device 110 includes a concealment unit behavioral synthesis instruction storage unit 119 and a concealment unit hardware module RTL description storage unit 120 in place of the concealment unit hardware module RTL description template storage unit 116.

秘匿部動作合成指示は、秘匿部動作記述からの動作合成時に考慮すべき情報であり、予め秘匿部動作合成指示記憶部117に格納される。秘匿部動作合成指示は、例えば動作記述作成者によって準備される。   The secret part behavioral synthesis instruction is information that should be taken into account during behavioral synthesis from the secret part behavioral description, and is stored in the secret part behavioral synthesis instruction storage unit 117 in advance. The secret part behavior synthesis instruction is prepared, for example, by the behavior description creator.

さらに、図5に示すように、第2の実施の形態の動作合成装置は、図2に示したステップS4の処理に代わってステップS6の処理を実行する。   Further, as shown in FIG. 5, the behavioral synthesis device according to the second embodiment executes the process of step S6 instead of the process of step S4 shown in FIG.

すなわち、ステップS6において、公開部考慮スケジューリング/バインディング手段104は、秘匿部動作記述記憶部113から秘匿部動作記述を読み出し、秘匿部ハードウェアモジュール情報記憶部115から秘匿部ハードウェアモジュール情報を読み出し、秘匿部動作合成指示記憶部119から秘匿部動作合成指示を読み出す。また、公開部考慮スケジューリング/バインディング手段104は、公開部ハードウェアモジュールを外部モジュールとして取り扱い、秘匿部ハードウェアモジュール情報で示されるインターフェース及び秘匿部動作合成指示を満たすようにスケジューリング及びバインディングを行う。さらに、公開部考慮スケジューリング/バインディング手段104は、秘匿部動作記述から動作合成した結果である秘匿部ハードウェアモジュールRTL記述を秘匿部ハードウェアモジュールRTL記述記憶部120に格納する。その他の構成及び処理は第1の実施の形態の動作合成装置と同様であるため、その説明は省略する。   That is, in step S6, the public part consideration scheduling / binding means 104 reads the secret part operation description from the secret part operation description storage unit 113, reads the secret part hardware module information from the secret part hardware module information storage part 115, and The secret part behavior synthesis instruction is read from the secret part behavior synthesis instruction storage unit 119. The public part considering scheduling / binding unit 104 handles the public part hardware module as an external module, and performs scheduling and binding so as to satisfy the interface and the secret part operation synthesis instruction indicated by the secret part hardware module information. Further, the public part considering scheduling / binding means 104 stores the secret part hardware module RTL description, which is the result of behavioral synthesis from the secret part behavior description, in the secret part hardware module RTL description storage unit 120. Other configurations and processes are the same as those of the behavioral synthesis apparatus according to the first embodiment, and thus description thereof is omitted.

第2の実施の形態の動作合成装置では、公開部考慮スケジューリング/バインディング手段104により、第1の実施の形態で示した秘匿部ハードウェアモジュールRTL記述のテンプレートに含まれる入出力ポートの定義と共に、動作合成された秘匿部ハードウェアモジュールのRTL記述も生成される。   In the behavioral synthesis device of the second embodiment, the public part consideration scheduling / binding means 104 uses the definition of the input / output ports included in the template of the secret part hardware module RTL description shown in the first embodiment, An RTL description of the behaviorally synthesized secret part hardware module is also generated.

また、第1の実施の形態と同様に、秘匿部考慮スケジューリング/バインディング手段103により、秘匿部ハードウェアモジュール情報を用いて秘匿部ハードウェアモジュールを考慮した動作合成を行い、入出力ポートの定義を含む秘匿部ハードウェアモジュールRTL記述と接続可能な公開部ハードウェアモジュールRTL記述を生成する。   Similarly to the first embodiment, the concealment unit considering scheduling / binding unit 103 performs behavioral synthesis considering the concealment unit hardware module using the concealment unit hardware module information, and defines the input / output ports. A public part hardware module RTL description that can be connected to the included secret part hardware module RTL description is generated.

したがって、第2の実施の形態の動作合成装置においても、第1の実施の形態の動作合成装置と同様の効果を得ることができる。   Therefore, the behavioral synthesis device according to the second embodiment can achieve the same effects as those of the behavioral synthesis device according to the first embodiment.

以下、本発明の動作合成装置の実施例について図面を用いて説明する。
(第1実施例)
まず、本発明の動作合成装置の第1実施例について図面を用いて説明する。第1実施例は、上述した第1の実施の形態の動作合成装置に対応している。
Embodiments of the behavioral synthesis apparatus of the present invention will be described below with reference to the drawings.
(First embodiment)
First, a first embodiment of the behavioral synthesis device of the present invention will be described with reference to the drawings. The first example corresponds to the behavioral synthesis device of the first embodiment described above.

図6は動作記述の一例を示す模式図である。   FIG. 6 is a schematic diagram showing an example of behavioral description.

図6に示す動作記述は、C言語で表現され、予め記憶装置110の動作記述記憶部111に格納されている。図6に示す関数func()は、設計対象のハードウェアモジュールのトップモジュールに対応し、図6に示すグローバル変数aは外部入力ポートに対応し、図6に示すグローバル変数xは外部出力ポートに対応する。また、図6では、関数func()のローカルスコープで配列r、変数s、tが宣言されている。   The behavioral description shown in FIG. 6 is expressed in C language and stored in advance in the behavioral description storage unit 111 of the storage device 110. The function func () shown in FIG. 6 corresponds to the top module of the hardware module to be designed, the global variable a shown in FIG. 6 corresponds to the external input port, and the global variable x shown in FIG. 6 corresponds to the external output port. Correspond. In FIG. 6, an array r and variables s and t are declared in the local scope of the function func ().

また、図6には、動作合成装置の装置構成に応じて定義される外部ポートを用いて、入力関数inputにより外部からデータを入力し、動作記述にしたがってデータ処理を実行し、出力関数outputにより外部へ処理後のデータを出力することが記載されている。   Also, in FIG. 6, using an external port defined according to the device configuration of the behavioral synthesis device, data is input from the outside by an input function input, data processing is executed according to the behavior description, and an output function output is used. It describes that the processed data is output to the outside.

図7は動作記述分割指示の一例を示す模式図である。   FIG. 7 is a schematic diagram showing an example of a behavior description division instruction.

図7に示す動作記述分割指示では、図6に示した動作記述のうち、秘匿化する処理ブロックを定義している。具体的には、図7の3行目に、図6に示した動作記述の7行目から13行目までの処理を秘匿化することが記述されている。   In the behavioral description division instruction shown in FIG. 7, a processing block to be concealed is defined in the behavioral description shown in FIG. Specifically, it is described in the third line of FIG. 7 that the processes from the seventh line to the thirteenth line of the behavior description shown in FIG. 6 are concealed.

また、図7の4行目から10行目の記述は、秘匿化ブロックに対応するハードウェアモジュールの特徴を定義している。具体的には、図7の4行目は対応するハードウェアモジュールが順序回路であることを示し、図7の5行目は対応するハードウェアモジュールが秘匿化ブロックの処理を固定の2クロックサイクルで実行することを示している。   Further, the descriptions in the 4th to 10th lines in FIG. 7 define the characteristics of the hardware module corresponding to the concealment block. Specifically, the fourth line in FIG. 7 indicates that the corresponding hardware module is a sequential circuit, and the fifth line in FIG. 7 indicates two clock cycles in which the corresponding hardware module fixes the processing of the concealment block. It shows that it is executed with.

また、図7の6行目は、対応するハードウェアモジュールの入力ポートから出力ポートまでの内部レジスタを経由しないパスが存在せず、遅延時間が定義されないことを示し、図7の7行目は、対応するハードウェアモジュールの入力ポートから内部レジスタまでの最大遅延時間が5nsであることを示している。   The sixth line in FIG. 7 indicates that there is no path that does not pass through the internal register from the input port to the output port of the corresponding hardware module, and the delay time is not defined. The seventh line in FIG. The maximum delay time from the input port of the corresponding hardware module to the internal register is 5 ns.

また、図7の8行目は、対応するハードウェアモジュールの内部レジスタから出力ポートまでの最大遅延時間が7nsであることを示し、図7の9行目は、対応するハードウェアモジュールの面積が2,000平方マイクロメートルであることを示している。さらに、図7の10行目は、対応するハードウェアモジュールの消費電力が50μWであることを示している。   The eighth line in FIG. 7 indicates that the maximum delay time from the internal register of the corresponding hardware module to the output port is 7 ns, and the ninth line in FIG. 7 indicates that the area of the corresponding hardware module is It shows that it is 2,000 square micrometers. Furthermore, the 10th line in FIG. 7 indicates that the power consumption of the corresponding hardware module is 50 μW.

図7の11行目から22行目は、秘匿化ブロックの内外でデータの送受信が必要となる、変数、配列、外部ポート、関数に対するインターフェース規則を定義している。   The 11th to 22nd lines in FIG. 7 define interface rules for variables, arrays, external ports, and functions that require data transmission and reception inside and outside the concealment block.

図7の11行目から14行目は、外部入力ポート及び変数に対して直接接続することを指定しており、データ転送に要するレイテンシが0クロックサイクルであることを示している。   The 11th to 14th lines in FIG. 7 specify that the external input port and the variable are directly connected, and indicate that the latency required for data transfer is 0 clock cycle.

図7の15行目から18行目は、配列に対しては、読み込みと書き込み兼用のポートを1系統持ち、データ転送に要するレイテンシが0クロックサイクルであることを示している。   The 15th to 18th lines in FIG. 7 indicate that the array has one system for both reading and writing, and the latency required for data transfer is 0 clock cycle.

図7の19行目から22行目は、公開部ハードウェアモジュールで実現される関数に対して、秘匿部のハードウェアモジュールからは、1ビットの開始要求信号startと1ビットの終了通知信号endで実行制御を行い、関数subの引数及び戻り値に対応するデータ転送は、直接接続によりレイテンシが0クロックサイクルで実行することを示している。   Lines 19 to 22 in FIG. 7 correspond to functions implemented by the public part hardware module, and from the hardware module of the concealment part, a 1-bit start request signal start and a 1-bit end notification signal end. The data transfer corresponding to the argument and the return value of the function sub indicates that the latency is executed in 0 clock cycles by direct connection.

動作記述分割指示手段101は、図6に示した動作合成記述を動作記述記憶部111から読み出し、図7に示した動作合成分割指示を動作記述分割指示記憶部112から読み出し、図8に示す秘匿部動作記述、図9に示す公開部動作記述及び図10に示す秘匿部ハードウェアモジュール情報を作成する。   The behavioral description division instruction unit 101 reads out the behavioral synthesis description shown in FIG. 6 from the behavioral description storage unit 111, reads out the behavioral synthesis division instruction shown in FIG. 7 from the behavioral description division instruction storage unit 112, and displays the confidentiality as shown in FIG. A part operation description, a public part operation description shown in FIG. 9, and a secret part hardware module information shown in FIG. 10 are created.

テンプレート生成手段102は、図11に示す秘匿部ハードウェアモジュールRTL記述のテンプレートを生成して秘匿部ハードウェアモジュールRTL回路記述テンプレート記憶部116に格納する。   The template generation means 102 generates a template of the secret part hardware module RTL description shown in FIG. 11 and stores it in the secret part hardware module RTL circuit description template storage unit 116.

秘匿部考慮スケジューリング/バインディング手段103は、図12に示す公開部ハードウェアモジュールRTL記述を生成し、公開部ハードウェアモジュールRTL回路記述記憶部118に格納する。   The secret part considering scheduling / binding means 103 generates the public part hardware module RTL description shown in FIG. 12 and stores it in the public part hardware module RTL circuit description storage part 118.

動作記述分割指示手段101は、動作記述分割指示で秘匿化が指定された秘匿化ブロックが分割可能か否かを判定する(図2のステップS1)。   The behavioral description division instruction unit 101 determines whether or not the concealment block for which concealment is designated by the behavioral description division instruction can be divided (step S1 in FIG. 2).

動作記述分割指示手段101は、第1段階で、図7に示す動作記述から図13に示すコントロールフローグラフを作成して制御フロー解析を行う(図3のステップS11)。図13に示すコントロールフローグラフでは、破線で囲まれた処理が秘匿化ブロックに相当する。図13に示す例では、破線で囲まれた秘匿化ブロック(black box1)内から該秘匿化ブロックの外部を通って該秘匿化ブロック内に至る実行パスが存在しないため、動作記述分割指示手段101は、第1段階では秘匿化ブロックが分割可能と判定する。   In the first stage, the behavior description division instruction unit 101 creates the control flow graph shown in FIG. 13 from the behavior description shown in FIG. 7 and performs control flow analysis (step S11 in FIG. 3). In the control flow graph shown in FIG. 13, the process surrounded by a broken line corresponds to a concealment block. In the example shown in FIG. 13, there is no execution path from the concealment block (black box 1) surrounded by a broken line to the concealment block through the concealment block. Determines that the concealment block can be divided in the first stage.

動作記述分割指示手段101は、第2段階で、ポインタ解析及びデータフロー解析を行う(図3のステップS12)。図7に示した動作記述ではポインタが存在しないため、動作記述分割指示手段101は、第2段階では秘匿化ブロックが分割可能と判定する。   The behavior description division instruction unit 101 performs pointer analysis and data flow analysis in the second stage (step S12 in FIG. 3). Since there is no pointer in the behavioral description shown in FIG. 7, the behavioral description division instruction unit 101 determines that the concealment block can be divided in the second stage.

動作記述分割指示手段101は、第3段階で、図14に示すコールグラフを作成してプロシージャー間解析を行う(図3のステップS13)。秘匿化ブロックは独立した関数とみなせるため、図14に示す例では、関数func1がブロックblack_box1を呼び出すことを示し、関数subがブロックblack_box1から呼び出されることを示している。図14に示すコールグラフでは閉路が存在しないため、動作記述分割指示手段101は、第3段階では秘匿化ブロックが分割可能と判定する。   In the third stage, the behavioral description division instruction unit 101 creates a call graph shown in FIG. 14 and performs interprocedural analysis (step S13 in FIG. 3). Since the concealment block can be regarded as an independent function, the example shown in FIG. 14 indicates that the function func1 calls the block black_box1, and the function sub is called from the block black_box1. Since there is no cycle in the call graph shown in FIG. 14, the behavioral description division instruction unit 101 determines that the concealment block can be divided in the third stage.

次に、動作記述分割指示手段101は、上記第1段階〜第3段階の解析結果に基づいて、秘匿化ブロック内で利用され、該秘匿化ブロック外で定義される変数、配列、外部ポート、関数の情報を動作記述分割指示に追加し、秘匿部ハードウェアモジュール情報として秘匿部ハードウェアモジュール情報記憶部115に格納する(図2のステップS2)。   Next, the behavior description division instruction unit 101 is used in the concealment block based on the analysis results of the first stage to the third stage, and is defined outside the concealment block, variable, array, external port, The function information is added to the behavior description division instruction, and is stored in the concealment unit hardware module information storage unit 115 as concealment unit hardware module information (step S2 in FIG. 2).

図10は、図7に示した動作記述と図8に示した動作記述分割指示から生成された秘匿部ハードウェアモジュール情報の一例を示している。   FIG. 10 shows an example of the secret part hardware module information generated from the behavior description shown in FIG. 7 and the behavior description division instruction shown in FIG.

図10では、秘匿化ブロック内で読み込まれる対象として外部ポートaが示され、秘匿化ブロックで書き込みが行われる対象として変数tが示され、秘匿化ブロックで読み書きが行われる対象として配列rが示され、秘匿化ブロックで呼び出しが行われる対象として関数subが示されている。変数sは、秘匿化ブロック内で読み書きされる変数であるが、データフロー解析により変数のライフタイムが秘匿化ブロックの範囲に収まることが分かるため、秘匿化ブロック内の変数とみなして列挙されない。   In FIG. 10, the external port a is shown as a target to be read in the concealment block, a variable t is shown as a target to be written in the concealment block, and an array r is shown as a target to be read and written in the concealment block. The function sub is shown as a target to be called in the concealment block. The variable s is a variable that is read and written in the concealment block. However, since it is understood from the data flow analysis that the lifetime of the variable falls within the range of the concealment block, the variable s is not regarded as a variable in the concealment block.

次に、動作記述分割指示手段101は、秘匿化ブロックの記述を、該秘匿化ブロック内で参照・代入される変数、配列、外部ポートを引数とする関数の定義に変換し、秘匿部動作記述として秘匿部動作記述記憶部113に格納する。また、元の動作記述のうち、秘匿化ブロックを新たに定義された対応する関数の呼び出し記述に変換し、公開部動作記述として公開部動作記述記憶部114に格納する(図2のステップS3)。   Next, the behavior description division instruction unit 101 converts the description of the concealment block into the definition of a function that uses variables, arrays, and external ports as arguments in the concealment block. Is stored in the concealment unit operation description storage unit 113. Also, in the original behavioral description, the concealment block is converted into a newly defined call description of the corresponding function, and is stored in the public part behavior description storage unit 114 as a public part behavior description (step S3 in FIG. 2). .

図8は、秘匿部動作記述の一例を示す模式図である。   FIG. 8 is a schematic diagram illustrating an example of the secret part operation description.

動作記述分割指示手段101は、秘匿化ブロックを内部処理とする関数black_box1を定義する記述を生成する。また、秘匿化ブロックで公開部の外部ポートa、配列r、変数tにアクセスするために、対応する関数の引数が定義される。   The behavior description division instruction unit 101 generates a description that defines a function black_box1 that uses the concealment block as an internal process. Further, in order to access the external port a, the array r, and the variable t of the public part in the concealment block, corresponding function arguments are defined.

図9は、公開部動作記述の一例を示す模式図である。   FIG. 9 is a schematic diagram illustrating an example of the public part operation description.

図9に示す公開部動作記述では、元の動作記述のうち、秘匿化ブロックが関数black_box1の呼び出し記述に変換されている。   In the public part behavior description shown in FIG. 9, the concealment block is converted into the call description of the function black_box 1 in the original behavior description.

次に、処理装置100は、テンプレート生成手段102により、秘匿部ハードウェアモジュールで用いる入出力ポートを定義したRTL記述のテンプレートを生成する(図2のステップS5)。   Next, the processing apparatus 100 uses the template generation unit 102 to generate an RTL description template that defines input / output ports used by the concealment unit hardware module (step S5 in FIG. 2).

図11は、図10に示す秘匿部ハードウェアモジュール情報から生成されたVerilog−HDLによるRTL記述のテンプレートの一例を示している。   FIG. 11 shows an example of a template of RTL description by Verilog-HDL generated from the secret part hardware module information shown in FIG.

RTL記述のテンプレートでは、動作合成装置の装置構成に依存して定義されるインターフェース生成規則に基づいて、必要な入出力ポートが定義される。   In the RTL description template, necessary input / output ports are defined based on the interface generation rules defined depending on the device configuration of the behavioral synthesis device.

図11に示すclockはクロックを入力するポートに対応し、resetはリセット信号を入力するポートに対応する。また、図11に示すstartは公開部ハードウェアモジュールから秘匿部ハードウェアモジュールに対して実行を要求する制御信号に対応し、readyは秘匿部ハードウェアモジュールが公開部ハードウェアモジュールに対して状態を通知する制御信号に対応する。   The clock shown in FIG. 11 corresponds to a port for inputting a clock, and reset corresponds to a port for inputting a reset signal. Further, start shown in FIG. 11 corresponds to a control signal for requesting execution from the public unit hardware module to the secret unit hardware module, and ready is a status of the secret unit hardware module to the public unit hardware module. Corresponds to the control signal to be notified.

また、図11に示すaは、公開部ハードウェアモジュールに接続される外部ポートaのデータ転送に対応し、r_rd及びr_wdは秘匿部ハードウェアモジュール内で保持される配列rに対応するリソースに対して読み込み及び書き込みのデータ転送に対応する。   Further, a shown in FIG. 11 corresponds to data transfer of the external port a connected to the public unit hardware module, and r_rd and r_wd correspond to the resource corresponding to the array r held in the secret unit hardware module. To support read and write data transfers.

また、図11に示すr_addrは、配列rに対応するリソースに対してアクセスするインデックスのデータ転送に対応し、r_oe及びr_weは、同様に配列rに対応するリソースに対するアクセスにおいて、読み出し要求及び書き込み要求を通知する制御信号に対応する。   Also, r_addr shown in FIG. 11 corresponds to data transfer of an index for accessing a resource corresponding to the array r, and r_oe and r_we are read requests and write requests in the same way for accessing the resource corresponding to the array r. It corresponds to the control signal to notify.

また、図11に示すtは、公開部ハードウェアモジュール内で保持される変数tに対応するデータを出力するデータ転送に対応し、sub_start及びsub_endは、公開部ハードウェアモジュール内で実現される関数subの実行制御信号に対応する。   Further, t shown in FIG. 11 corresponds to data transfer for outputting data corresponding to the variable t held in the public unit hardware module, and sub_start and sub_end are functions realized in the public unit hardware module. This corresponds to a sub execution control signal.

また、図11に示すsub_n及びsub_regは、関数subの実行時の引数及び戻り値に対応するデータ転送に対応する。   Further, sub_n and sub_reg shown in FIG. 11 correspond to data transfer corresponding to an argument and a return value at the time of executing the function sub.

動作記述作成者は、生成したテンプレート及び動作合成装置の装置構成に応じて定義されるプロトコルに合わせて秘匿部ハードウェアモジュールを設計する。   The behavior description creator designs the concealment unit hardware module in accordance with the protocol defined according to the generated template and the device configuration of the behavioral synthesis device.

最後に、秘匿部考慮スケジューリング/バインディング手段103は、公開部の動作合成結果をRTL回路記述として生成する(図2のステップS5)。図12は、生成されたVerilog−HDLによる公開部ハードウェアモジュールRTL記述の一部を例示している。公開部ハードウェアモジュールRTL記述は、秘匿部ハードウェアモジュールRTL記述と接続可能な構造を備えており、図12に示す例では、秘匿部ハードウェアモジュールRTL回述が下位階層のサブモジュールとしてインスタンス化されて接続されている。
(第2実施例)
次に第2実施例について図面を用いて説明する。
Finally, the confidential part considering scheduling / binding means 103 generates the behavioral synthesis result of the public part as the RTL circuit description (step S5 in FIG. 2). FIG. 12 exemplifies a part of the public part hardware module RTL description by the generated Verilog-HDL. The public part hardware module RTL description has a structure connectable to the secret part hardware module RTL description. In the example shown in FIG. 12, the secret part hardware module RTL description is instantiated as a submodule of a lower layer. Being connected.
(Second embodiment)
Next, a second embodiment will be described with reference to the drawings.

第2実施例は、第2の実施の形態の動作合成装置に対応する。第2実施例の動作合成装置では、動作記述分割指示手段101は、図6に示した動作合成記述を動作記述記憶部111から読み出し、図7に示した動作記述分割指示を動作記述記憶部112から読み出し、動作記述分割指示に基づいて図8に示した秘匿部動作記述、図9に示した公開部動作記述及び図10に示した秘匿部ハードウェアモジュール情報を作成する。   The second example corresponds to the behavioral synthesis device of the second embodiment. In the behavioral synthesis device of the second embodiment, the behavioral description division instruction means 101 reads the behavioral synthesis description shown in FIG. 6 from the behavioral description storage unit 111 and the behavioral description division instruction shown in FIG. 8 is created, based on the behavior description division instruction, the secret part behavior description shown in FIG. 8, the public part behavior description shown in FIG. 9, and the secret part hardware module information shown in FIG. 10 are created.

公開部考慮スケジューリング/バインディング手段104は、秘匿部動作記述、秘匿部ハードウェアモジュール情報及び秘匿部動作合成指示に基づいて、図15に示す秘匿部ハードウェアモジュールRTL記述を生成し、秘匿部ハードウェアモジュールRTL記述記憶部120に格納する(図5のステップS6)。   The public part consideration scheduling / binding means 104 generates the concealment part hardware module RTL description shown in FIG. 15 based on the concealment part operation description, the concealment part hardware module information, and the concealment part operation synthesis instruction, and the concealment part hardware The data is stored in the module RTL description storage unit 120 (step S6 in FIG. 5).

図15に示すように、公開部考慮スケジューリング/バインディング手段104で生成する秘匿部ハードウェアモジュールRTL記述には、第1実施例で示した秘匿部ハードウェアモジュールRTL記述のテンプレートと同様に入出力ポートの定義(図11参照)が含まれ、さらに動作合成された秘匿部ハードウェアモジュールのRTL記述が含まれる。   As shown in FIG. 15, the secret part hardware module RTL description generated by the public part consideration scheduling / binding means 104 includes an input / output port in the same manner as the template of the secret part hardware module RTL description shown in the first embodiment. (See FIG. 11), and further includes an RTL description of the concealed hardware module that has been behaviorally synthesized.

100 処理装置
101 動作記述分割手段
102 テンプレート生成手段
103 秘匿部考慮スケジューリング/バインディング手段
104 公開部考慮スケジューリング/バインディング手段
110 記憶装置
111 動作記述記憶部
112 動作記述分割指示記憶部
113 秘匿部動作記述記憶部
114 公開部動作記述記憶部
115 秘匿部ハードウェアモジュール情報記憶部
116 秘匿部ハードウェアモジュールRTL記述テンプレート記憶部
117 公開部動作合成指示記憶部
118 公開部ハードウェアモジュールRTL記述記憶部
119 秘匿部動作合成指示記憶部
120 秘匿部ハードウェアモジュールRTL記述記憶部
DESCRIPTION OF SYMBOLS 100 Processing apparatus 101 Behavior description division means 102 Template generation means 103 Secret part consideration scheduling / binding means 104 Public part consideration scheduling / binding means 110 Storage device 111 Action description storage part 112 Action description division instruction storage part 113 Secret part action description storage part 114 public part operation description storage unit 115 secret part hardware module information storage part 116 secret part hardware module RTL description template storage part 117 public part behavior synthesis instruction storage part 118 public part hardware module RTL description storage part 119 secret part behavior synthesis Instruction storage unit 120 Secret unit Hardware module RTL description storage unit

Claims (8)

動作記述を、秘匿化が指定された記述ブロックである秘匿部と前記秘匿部を除く記述である公開部とに分割し、前記秘匿部の記述を関数化すると共に該関数を呼び出す処理の記述に置き換える動作記述分割手段と、
前記関数化された秘匿部に代わって置き換えられた処理に、前記秘匿部に対応するハードウェアモジュールを割り当てる秘匿部考慮スケジューリング/バインディング手段と、
を有する動作合成装置。
The behavioral description is divided into a concealment part that is a description block for which concealment is specified and a public part that is a description excluding the concealment part, and the description of the concealment part is converted into a function and a description of a process that calls the function A behavior description dividing means to be replaced;
A concealment unit considering scheduling / binding means for allocating a hardware module corresponding to the concealment unit to the processing replaced in place of the functionalized concealment unit;
A behavioral synthesis device.
前記秘匿部に対応するハードウェアモジュールで用いる入出力ポートを定義したRTL記述を、前記秘匿部のテンプレートとして生成するテンプレート生成手段を有する請求項1記載の動作合成装置。   The behavioral synthesis device according to claim 1, further comprising a template generation unit configured to generate, as a template of the concealment unit, an RTL description that defines an input / output port used in a hardware module corresponding to the concealment unit. 動作記述を、秘匿化が指定された記述ブロックである秘匿部と前記秘匿部を除く記述である公開部とに分割し、前記秘匿部の記述を関数化すると共に該関数を呼び出す処理の記述に置き換える動作記述分割手段と、
前記公開部に対応するハードウェアモジュールとのデータの送受信に用いる入出力ポートの定義を含む、前記秘匿部に対応するハードウェアモジュールの動作合成結果であるRTL記述を生成する公開部考慮スケジューリング/バインディング手段と、
を有する動作合成装置。
The behavioral description is divided into a concealment part that is a description block for which concealment is specified and a public part that is a description excluding the concealment part, and the description of the concealment part is converted into a function and a description of a process that calls the function A behavior description dividing means to be replaced;
Public part-considered scheduling / binding that generates an RTL description that is a result of behavioral synthesis of the hardware module corresponding to the secret part, including definitions of input / output ports used for data transmission / reception with the hardware module corresponding to the public part Means,
A behavioral synthesis device.
前記関数化された秘匿部に代わって置き換えられた処理に、前記秘匿部に対応するハードウェアモジュールを割り当てる秘匿部考慮スケジューリング/バインディング手段を有する請求項3記載の動作合成装置。   The behavioral synthesis device according to claim 3, further comprising a concealment unit considering scheduling / binding unit that assigns a hardware module corresponding to the concealment unit to a process replaced in place of the functionalized concealment unit. 動作記述を、秘匿化が指定された記述ブロックである秘匿部と前記秘匿部を除く記述である公開部とに分割し、
前記秘匿部の記述を関数化すると共に該関数を呼び出す処理の記述に置き換え、
前記関数化された秘匿部に代わって置き換えられた処理に、前記秘匿部に対応するハードウェアモジュールを割り当てる動作合成方法。
The behavioral description is divided into a secret part that is a description block for which concealment is designated and a public part that is a description excluding the secret part,
Converting the description of the concealment part into a function and replacing it with a description of a process for calling the function;
A behavioral synthesis method for assigning a hardware module corresponding to the concealment unit to a process replaced in place of the functionalized concealment unit.
前記秘匿部に対応するハードウェアモジュールで用いる入出力ポートを定義したRTL記述を、前記秘匿部のテンプレートとして生成する請求項5記載の動作合成方法。   6. The behavioral synthesis method according to claim 5, wherein an RTL description defining an input / output port used in a hardware module corresponding to the secret part is generated as a template of the secret part. 動作記述を、秘匿化が指定された記述ブロックである秘匿部と前記秘匿部を除く記述である公開部とに分割し、
前記秘匿部の記述を関数化すると共に該関数を呼び出す処理の記述に置き換え、
前記公開部に対応するハードウェアモジュールとのデータの送受信に用いる入出力ポートの定義を含む、前記秘匿部に対応するハードウェアモジュールの動作合成結果であるRTL記述を生成する動作合成方法。
The behavioral description is divided into a secret part that is a description block in which concealment is designated and a public part that is a description excluding the secret part,
Converting the description of the concealment part into a function and replacing it with a description of a process for calling the function;
A behavioral synthesis method for generating an RTL description that is a behavioral synthesis result of a hardware module corresponding to the concealment unit, including a definition of an input / output port used for data transmission / reception with the hardware module corresponding to the disclosure unit.
前記関数化された秘匿部に代わって置き換えられた処理に、前記秘匿部に対応するハードウェアモジュールを割り当てる請求項7記載の動作合成方法。   The behavioral synthesis method according to claim 7, wherein a hardware module corresponding to the concealment unit is assigned to a process replaced in place of the functionalized concealment unit.
JP2009288871A 2009-12-21 2009-12-21 Behavioral synthesis apparatus and method Active JP5471413B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009288871A JP5471413B2 (en) 2009-12-21 2009-12-21 Behavioral synthesis apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009288871A JP5471413B2 (en) 2009-12-21 2009-12-21 Behavioral synthesis apparatus and method

Publications (2)

Publication Number Publication Date
JP2011129020A true JP2011129020A (en) 2011-06-30
JP5471413B2 JP5471413B2 (en) 2014-04-16

Family

ID=44291522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009288871A Active JP5471413B2 (en) 2009-12-21 2009-12-21 Behavioral synthesis apparatus and method

Country Status (1)

Country Link
JP (1) JP5471413B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084036A (en) * 2011-10-06 2013-05-09 Dainippon Printing Co Ltd Data processing system and microstructure manufacturing system, and data processing method and microstructure manufacturing method
JP2015076013A (en) * 2013-10-10 2015-04-20 富士通セミコンダクター株式会社 High-level synthesis data generation apparatus, high-level synthesizer, high-level synthesis data generation method, and program
JP2016177454A (en) * 2015-03-19 2016-10-06 富士通株式会社 Operation synthesis method, operation synthesis program and operation synthesis device

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198726A (en) * 1996-09-25 1998-07-31 Vlsi Technol Inc Method and device for efficiently mounting compound function block in design of integrated circuit
JP2001222567A (en) * 2000-02-10 2001-08-17 Nec Corp System and method for supplying ip macro using www and recording medium
JP2001344298A (en) * 2000-06-01 2001-12-14 Toshiba Corp Method and device for system design, and computer- readable recording medium with system design program stored therein
JP2002163312A (en) * 2000-11-27 2002-06-07 Sony Corp Device and method for converting hardware design information
JP2002304429A (en) * 2001-01-26 2002-10-18 Arm Ltd Method and device for validating integrated circuit
JP2005063136A (en) * 2003-08-12 2005-03-10 Toshiba Corp Design system, design method, and design program of semiconductor integrated circuit
JP2005063121A (en) * 2003-08-11 2005-03-10 Ricoh Co Ltd Device, method and program for converting source code and storage medium
JP2006190119A (en) * 2005-01-07 2006-07-20 Hitachi Industrial Equipment Systems Co Ltd Programmable controller
JP2007164596A (en) * 2005-12-15 2007-06-28 Toshiba Corp Design system and design method

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198726A (en) * 1996-09-25 1998-07-31 Vlsi Technol Inc Method and device for efficiently mounting compound function block in design of integrated circuit
JP2001222567A (en) * 2000-02-10 2001-08-17 Nec Corp System and method for supplying ip macro using www and recording medium
JP2001344298A (en) * 2000-06-01 2001-12-14 Toshiba Corp Method and device for system design, and computer- readable recording medium with system design program stored therein
JP2002163312A (en) * 2000-11-27 2002-06-07 Sony Corp Device and method for converting hardware design information
JP2002304429A (en) * 2001-01-26 2002-10-18 Arm Ltd Method and device for validating integrated circuit
JP2005063121A (en) * 2003-08-11 2005-03-10 Ricoh Co Ltd Device, method and program for converting source code and storage medium
JP2005063136A (en) * 2003-08-12 2005-03-10 Toshiba Corp Design system, design method, and design program of semiconductor integrated circuit
JP2006190119A (en) * 2005-01-07 2006-07-20 Hitachi Industrial Equipment Systems Co Ltd Programmable controller
JP2007164596A (en) * 2005-12-15 2007-06-28 Toshiba Corp Design system and design method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084036A (en) * 2011-10-06 2013-05-09 Dainippon Printing Co Ltd Data processing system and microstructure manufacturing system, and data processing method and microstructure manufacturing method
JP2015076013A (en) * 2013-10-10 2015-04-20 富士通セミコンダクター株式会社 High-level synthesis data generation apparatus, high-level synthesizer, high-level synthesis data generation method, and program
JP2016177454A (en) * 2015-03-19 2016-10-06 富士通株式会社 Operation synthesis method, operation synthesis program and operation synthesis device

Also Published As

Publication number Publication date
JP5471413B2 (en) 2014-04-16

Similar Documents

Publication Publication Date Title
Mantovani et al. Agile SoC development with open ESP
US10866842B2 (en) Synthesis path for transforming concurrent programs into hardware deployable on FPGA-based cloud infrastructures
JP2007193529A (en) High-level synthesis method for semiconductor integrated circuit
JP5225003B2 (en) MEMORY PROTECTION METHOD, INFORMATION PROCESSING DEVICE, MEMORY PROTECTION PROGRAM, AND RECORDING MEDIUM CONTAINING MEMORY PROTECTION PROGRAM
KR100499720B1 (en) Method for designing a system lsi
JP2007034887A (en) Method and apparatus for automatically creating shift register file for high-level synthesis compiler
JP2006048525A (en) Simulation method
JP2006285333A (en) Operation composition device and method
JP5471413B2 (en) Behavioral synthesis apparatus and method
US8516414B2 (en) Behavioral synthesis device, behavioral synthesis method, and computer program product
Koul et al. Aha: An agile approach to the design of coarse-grained reconfigurable accelerators and compilers
JP5233355B2 (en) Property generation system and property verification system
Balarin et al. Processes, interfaces and platforms. Embedded software modeling in Metropolis
JP2009211614A (en) Behavioral synthesis device, behavioral synthesis method, and program
US7113901B1 (en) Reuse of hardware components
Rodrigues et al. A data-driven approach for pipelining sequences of data-dependent loops
JP2007011957A (en) Circuit design device and program
Bucaioni et al. From low-level programming to full-fledged industrial model-based development: the story of the Rubus Component Model
JP5577619B2 (en) Logic circuit design device
Ranga ParrotPiton and ZynqParrot: FPGA Enablements for the BlackParrot RISC-V Processor
JP2006202330A (en) Method for designing system lsi and recording medium storing the same
JP2008204341A (en) Interface composite device
Piccolboni Multi-Functional Interfaces for Accelerators
JP5233354B2 (en) Property verification system, property verification method, and program
JP5071189B2 (en) Processor synthesis device, compilation device, development system, processor synthesis method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130611

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140120

R150 Certificate of patent or registration of utility model

Ref document number: 5471413

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150