JP5211776B2 - Behavioral synthesis apparatus, behavioral synthesis method, and program - Google Patents
Behavioral synthesis apparatus, behavioral synthesis method, and program Download PDFInfo
- Publication number
- JP5211776B2 JP5211776B2 JP2008066533A JP2008066533A JP5211776B2 JP 5211776 B2 JP5211776 B2 JP 5211776B2 JP 2008066533 A JP2008066533 A JP 2008066533A JP 2008066533 A JP2008066533 A JP 2008066533A JP 5211776 B2 JP5211776 B2 JP 5211776B2
- Authority
- JP
- Japan
- Prior art keywords
- description
- input
- output
- timing
- stage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
本発明は、半導体集積回路の動作レベル記述からレジスタ転送レベル記述を生成する際に、レジスタの数を抑制するのに好適な動作合成装置、動作合成方法及びこれらをコンピュータ上で実現するためのプログラムに関する。 The present invention relates to a behavioral synthesis apparatus, a behavioral synthesis method, and a program for realizing these on a computer suitable for suppressing the number of registers when generating a register transfer level description from the behavioral level description of a semiconductor integrated circuit. About.
コンピュータ技術の進歩により、CAD(Computer−Aided Design)システムを使用して論理回路の設計、解析および評価等を行うのが一般的になっている。このCADシステムは、例えば、動作合成ツールや論理合成ツールを備える。 Due to advances in computer technology, it has become common to design, analyze, and evaluate logic circuits using a CAD (Computer-Aided Design) system. This CAD system includes, for example, a behavioral synthesis tool and a logic synthesis tool.
動作合成ツールを使用して動作合成を行う際には、入力ポートや変数のビット幅等のH/W化に必要な情報を含んだ、動作レベル記述言語で書かれた記述を用意する必要がある。動作合成ツールは、動作レベル記述言語で書かれた記述に基づいて動作合成することにより、RTL(Register Transfer Level(レジスタ転送レベル))記述言語による記述を出力する。動作合成ツールによる動作合成技術は、例えば、特許文献1に開示されている。
When performing behavioral synthesis using a behavioral synthesis tool, it is necessary to prepare a description written in a behavioral level description language that includes information necessary for H / W conversion such as the input port and bit width of variables. is there. The behavioral synthesis tool outputs a description in an RTL (Register Transfer Level) description language by performing behavioral synthesis based on the description written in the behavioral level description language. A behavioral synthesis technique using a behavioral synthesis tool is disclosed in
以下、特許文献1に開示された動作合成の手順について簡単に説明する。
The behavioral synthesis procedure disclosed in
まず、動作合成ツールは、動作レベル記述言語で書かれた記述の構文解析を行う。続いて、動作合成ツールは、記述中の変数をレジスタ(又はメモリ)で実現する。そして、動作合成ツールは、コントロールデータフローグラフ(以下、CDFGとする。)を生成する。 First, the behavioral synthesis tool parses a description written in a behavioral level description language. Subsequently, the behavioral synthesis tool realizes the variable being described by a register (or memory). Then, the behavioral synthesis tool generates a control data flow graph (hereinafter referred to as CDFG).
次に、動作合成ツールは、CDFGに基づいてリソースバインディングおよびスケジュールを実行する。そして、動作合成ツールは、合成制約である回路周波数や演算器制約に基づいて、演算器、レジスタおよびマルチプレクサ等のマッピングおよびシェアリングを行うことにより回路を合成する。最後に、動作合成ツールは、合成された回路構成を、論理合成ツールに直接入力可能なRTL記述言語による記述として出力して、動作合成を終了する。
通常、動作記述は、データの入力段階記述、処理の本体記述、データの出力段階記述で構成される。特許文献1に開示された動作合成の手順によって合成された回路では、入力段階で入力されるデータの数、データの出力段階で出力されるデータの数だけのレジスタを用意する必要があった。このため、変数の数が増大すると、その分だけ多くのレジスタを用意する必要があった。
Usually, the behavior description is composed of a data input stage description, a process body description, and a data output stage description. In the circuit synthesized by the behavioral synthesis procedure disclosed in
本発明は、上記問題に鑑みてなされたものであり、半導体集積回路の動作レベル記述からレジスタ転送レベル記述を生成する際に、レジスタの数を抑制するのに好適な動作合成装置、動作合成方法及びこれらをコンピュータ上で実現するためのプログラムを提供することを目的とする。 The present invention has been made in view of the above problem, and a behavioral synthesis apparatus and behavioral synthesis method suitable for suppressing the number of registers when generating a register transfer level description from a behavioral level description of a semiconductor integrated circuit. Another object of the present invention is to provide a program for realizing these on a computer.
上記目的を達成するために、本発明の第1の観点に係る動作合成装置は、受付部、分割部、スケジュール部、生成部を備え、以下のように構成する。
まず、受付部は、半導体集積回路の動作を単一のプロセスとして記述する動作レベル記述を受け付ける。
次に、分割部は、当該受け付けられた動作レベル記述を、当該動作レベル記述に含まれる所定のプラグマに基づいて、複数のプロセスのそれぞれとしての、データの入力段階記述、処理の本体段階記述、データの出力段階記述に分割する。
さらに、スケジュール部は、当該入力段階記述、当該本体段階記述、当該出力段階記述のそれぞれについて入出力並びに演算のタイミングをスケジュールする。
そして、生成部は、当該入力段階記述、当該本体段階記述、当該出力段階記述、及び、当該タイミングに基づいて、半導体集積回路の構成、配置、配線を記述するレジスタ転送レベル記述を生成する。
また、生成部は、
(a)当該入力段階記述の出力のタイミングと当該本体段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置し、
(b)当該本体段階記述の出力のタイミングと当該出力段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置する。
In order to achieve the above object, a behavioral synthesis device according to a first aspect of the present invention includes a reception unit, a division unit, a schedule unit, and a generation unit, and is configured as follows.
First, the accepting unit accepts an operation level description that describes the operation of the semiconductor integrated circuit as a single process .
Next, the dividing unit converts the received behavior level description into a data input stage description, a process body stage description as each of a plurality of processes based on a predetermined pragma included in the behavior level description, Divide into data output stage descriptions.
Furthermore, the schedule unit schedules input / output and calculation timings for each of the input stage description, the main body stage description, and the output stage description.
Then, the generation unit generates a register transfer level description that describes the configuration, arrangement, and wiring of the semiconductor integrated circuit based on the input stage description, the main body stage description, the output stage description, and the timing.
In addition, the generation unit
(A) When the output timing of the input stage description and the input timing of the main body stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. And place
(B) When the output timing of the main body stage description and the input timing of the output stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. Place.
上記目的を達成するために、その他の観点に係る動作合成方法は、受付部、分割部、スケジュール部、生成部を備える動作合成装置が実行する動作合成方法であって、受付ステップ、分割ステップ、スケジュールステップ、生成ステップを備え、以下のように構成する。
すなわち、受付ステップでは、受付部が、半導体集積回路の動作を単一のプロセスとして記述する動作レベル記述を受け付ける。
そして、分割ステップでは、分割部が、当該受け付けられた動作レベル記述を、当該動作レベル記述に含まれる所定のプラグマに基づいて、複数のプロセスのそれぞれとしての、データの入力段階記述、処理の本体段階記述、データの出力段階記述に分割する。
さらに、スケジュールステップでは、スケジュール部が、当該入力段階記述、当該本体段階記述、当該出力段階記述のそれぞれについて入出力並びに演算のタイミングをスケジュールする。
また、生成ステップでは、生成部が、当該入力段階記述、当該本体段階記述、当該出力段階記述、及び、当該タイミングに基づいて、半導体集積回路の構成、配置、配線を記述するレジスタ転送レベル記述を生成する。
さらに、生成ステップでは、生成部が、
(a)当該入力段階記述の出力のタイミングと当該本体段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置し、
(b)当該本体段階記述の出力のタイミングと当該出力段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置する。
In order to achieve the above object, a behavioral synthesis method according to another aspect is a behavioral synthesis method executed by a behavioral synthesis device including a reception unit, a division unit, a schedule unit, and a generation unit, and includes a reception step, a division step, A schedule step and a generation step are provided and configured as follows.
That is, in the accepting step, the accepting unit accepts an operation level description that describes the operation of the semiconductor integrated circuit as a single process .
In the dividing step, the dividing unit converts the received behavior level description into a data input stage description and a processing body as each of a plurality of processes based on a predetermined pragma included in the behavior level description. Divide into stage description and data output stage description.
Further, in the scheduling step, the scheduling unit schedules input / output and operation timing for each of the input stage description, the main body stage description, and the output stage description.
In the generation step, the generation unit generates a register transfer level description that describes the configuration, arrangement, and wiring of the semiconductor integrated circuit based on the input stage description, the main body stage description, the output stage description, and the timing. Generate.
Furthermore, in the generation step, the generation unit
(A) When the output timing of the input stage description and the input timing of the main body stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. And place
(B) When the output timing of the main body stage description and the input timing of the output stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. Place.
上記目的を達成するために、その他の観点に係るプログラムは、コンピュータを、受付部、分割部、スケジュール部、生成部として、以下のように機能させる。
まず、受付部は、半導体集積回路の動作を単一のプロセスとして記述する動作レベル記述を受け付ける。
次に、分割部は、当該受け付けられた動作レベル記述を、当該動作レベル記述に含まれる所定のプラグマに基づいて、複数のプロセスのそれぞれとしての、データの入力段階記述、処理の本体段階記述、データの出力段階記述に分割する。
さらに、スケジュール部は、当該入力段階記述、当該本体段階記述、当該出力段階記述のそれぞれについて入出力並びに演算のタイミングをスケジュールする。
そして、生成部は、当該入力段階記述、当該本体段階記述、当該出力段階記述、及び、当該タイミングに基づいて、半導体集積回路の構成、配置、配線を記述するレジスタ転送レベル記述を生成する。
また、生成部は、
(a)当該入力段階記述の出力のタイミングと当該本体段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置し、
(b)当該本体段階記述の出力のタイミングと当該出力段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置する。
In order to achieve the above object, a program according to another aspect causes a computer to function as a reception unit, a division unit, a schedule unit, and a generation unit as follows.
First, the accepting unit accepts an operation level description that describes the operation of the semiconductor integrated circuit as a single process .
Next, the dividing unit converts the received behavior level description into a data input stage description, a process body stage description as each of a plurality of processes based on a predetermined pragma included in the behavior level description, Divide into data output stage descriptions.
Furthermore, the schedule unit schedules input / output and calculation timings for each of the input stage description, the main body stage description, and the output stage description.
Then, the generation unit generates a register transfer level description that describes the configuration, arrangement, and wiring of the semiconductor integrated circuit based on the input stage description, the main body stage description, the output stage description, and the timing.
In addition, the generation unit
(A) When the output timing of the input stage description and the input timing of the main body stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. And place
(B) When the output timing of the main body stage description and the input timing of the output stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. Place.
本発明によれば、半導体集積回路の動作レベル記述からレジスタ転送レベル記述を生成する際に、レジスタ回路の数を抑制するのに好適な動作合成装置、動作合成方法及びこれらをコンピュータ上で実現するためのプログラムを提供することができる。 According to the present invention, when generating a register transfer level description from a behavior level description of a semiconductor integrated circuit, a behavioral synthesis apparatus, a behavioral synthesis method, and the like suitable for suppressing the number of register circuits are realized on a computer. A program can be provided.
以下、図面を参照して、本実施形態に係る動作合成装置について説明する。 The behavioral synthesis device according to the present embodiment will be described below with reference to the drawings.
まず、図1を参照して、本実施形態に係る動作合成装置の構成について説明する。 First, the configuration of the behavioral synthesis device according to the present embodiment will be described with reference to FIG.
図1に示すように、動作合成装置100は、物理的には、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、ハードディスク装置14と、入力装置15と、表示装置16と、を備える。動作合成装置100が備える各構成要素はバスを介して接続される。
As shown in FIG. 1, the
CPU11は、ハードディスク装置14に記憶されたプログラムに従って動作合成装置100全体の動作を制御する。CPU15は、各構成要素とバスを介して接続され制御信号やデータのやりとりをする。
The
ROM12は、電源投入直後に実行されるIPL(Initial Program Loader)を記憶する。IPLが実行された後、CPU11は、ハードディスク装置14に記憶されたプログラムをRAM13に読み出して実行する。
The
RAM13は、データやプログラムを一時的に記憶する。RAM13は、ハードディスク装置14から読み出されたプログラムや、動作合成処理に必要なデータ等を一時記憶する。
The
ハードディスク装置14は、CPU11により実行されるプログラムを記憶する。
The
入力装置15は、CPU11による制御のもと、動作合成に必要なパラメータ等の入力をユーザから受け付け、また、動作合成開始要求等の要求をユーザから受け付ける。入力装置15は、例えば、キーボードやマウスから構成される。
The
表示装置16は、CPU11による制御のもと、ユーザからのパラメータ等の入力や動作合成開始要求等の要求を受け付けるための画面、動作レベル記述を表示するための画面、レジスタ転送レベル記述を表示するための画面等を表示する。表示装置16は、例えば、液晶ディスプレイ装置から構成される。
Under the control of the
次に、本実施形態に係る動作合成装置100の基本構成について説明する。
Next, a basic configuration of the
図2は、本実施形態に係る動作合成装置100の基本構成を示すブロック図である。図2に示すように、動作合成装置100は、機能的には、受付部20と、分割部30と、スケジュール部40と、生成部50と、を備える。
FIG. 2 is a block diagram showing a basic configuration of the
受付部20は、動作レベル記述を受け付ける。受付部20は、CPU11が、ROM12、RAM13及び入力装置15と協働することにより実現される。
The accepting
分割部30は、動作レベル記述を各処理段階の記述に分割する。具体的には、分割部30は、RAM13に記憶された動作レベル記述を、データの入力段階記述と、処理の本体段階記述と、データの出力段階記述と、に分割する。分割部30は、CPU11が、ROM12及びRAM13と協働することにより実現される。
The dividing
スケジュール部40は、入力段階記述、本体段階記述、出力段階記述のそれぞれについて入出力並びに演算のタイミングをスケジュールする。スケジュール部40は、CPU11が、ROM12及びRAM13と協働することにより実現される。
The
生成部50は、入力段階記述、本体段階記述、出力段階記述、及び、タイミングに基づいて、半導体集積回路の構成、配置、配線を記述するRTL(Register Transfer Level(レジスタ転送レベル))記述を生成する。
The
具体的には、生成部50は、入力段階記述の出力のタイミングと本体段階記述の入力のタイミングとが一致する場合、出力と入力を直接接続し、一致しない場合、出力と入力の間にレジスタ回路を配置する。また、生成部50は、本体段階記述の出力のタイミングと出力段階記述の入力のタイミングとが一致する場合、出力と入力を直接接続し、一致しない場合、出力と入力の間にレジスタ回路を配置する。
Specifically, when the output timing of the input stage description matches the input timing of the main body stage description, the
次に、本実施形態に係る動作合成装置100が実行する動作合成処理について、図3と図4を参照して説明する。
Next, the behavioral synthesis process executed by the
なお、図3に示すように、動作合成装置100は、図2に示した基本構成に加え、CDFG(Control Data Flow Graph)生成部35を更に備えるものとする。また、生成部50は、処理段階別RTL記述生成部51と、通信路生成部52と、全RTL記述生成部53と、を備えるものとする。
As shown in FIG. 3, the
そして、図3に示すように、動作合成装置100は、記憶装置110が備える動作レベル記述記憶部111に記憶された動作レベル記述を動作合成し、求めたRTL記述を記憶装置110が備えるRTL記述記憶部112に格納するものとする。なお、本実施形態では、動作合成装置100の外部に記憶装置110がある構成として説明するが、動作合成装置100が記憶装置110を備える構成でもよい。動作合成装置100が記憶装置110を備える構成では、例えば、ハードディスク装置14が記憶装置110を構成する。
As illustrated in FIG. 3, the
ここで、動作レベル記述は、設計対象の回路動作を、C言語、C++言語、あるいはJAVA(登録商標)言語等を用いて表現した記述である。なお、動作レベル記述には、各入出力に、基準点からのタイミングがプラグマを用いて指定されているものとする。また、RTL記述は、生成された、設計対象の回路をクロック毎の動作にまで具体化した記述である。 Here, the behavior level description is a description in which the circuit operation to be designed is expressed using C language, C ++ language, JAVA (registered trademark) language, or the like. In the behavior level description, the timing from the reference point is specified for each input / output using a pragma. The RTL description is a description that embodies the generated circuit to be designed to the operation for each clock.
図4は、本実施形態に係る動作合成装置100が実行する動作合成処理を示すフローチャートである。
FIG. 4 is a flowchart showing the behavioral synthesis process executed by the
動作合成装置100は、例えば、所定の動作レベル記述を動作合成する旨の要求を入力装置15を介してユーザから受けると、動作合成処理を開始する。
For example, when the
まず、CPU11は、動作合成処理で使用するデータを初期化する(ステップS11)。CPU11は、RAM13に記憶されたデータを初期化する。
First, the
CPU11が初期化を完了すると、受付部20は動作レベル記述を受け付ける(ステップS12)。まず、受付部20は、ユーザから動作合成対象の動作レベル記述の指定とパラメータの指定とを受け付ける。そして、受付部20は、ユーザから指定された動作レベル記述を動作レベル記述記憶部111から読み出してRAM13に記憶するとともに、ユーザから指定されたパラメータをRAM13に記憶する。
When the
次に、分割部30は、動作レベル記述を各処理段階の記述に分割する(ステップS13)。具体的には、分割部30は、RAM13に記憶された動作レベル記述を、データの入力段階記述と、処理の本体段階記述と、データの出力段階記述と、に分割する。分割部30は、例えば、動作レベル記述中の入出力ポートの定義部分やプラグマを参照して動作レベル記述を分割する。
Next, the dividing
次に、CDFG生成部35は、各処理段階のCDFGをそれぞれ生成する(ステップS14)。具体的には、CDFG生成部35は、入力段階記述に基づいて入力処理のCDFGを生成し、本体段階記述に基づいて本体処理のCDFGを生成し、出力段階記述に基づいて出力処理のCDFGを生成する。なお、CDFG生成部35は、CPU11が、ROM12及びRAM13と協働することにより実現される。
Next, the
次に、スケジュール部40は、各処理段階の処理についてそれぞれスケジュールする(ステップS15)。具体的には、スケジュール部40は、入力処理のCDFGに基づいて入力処理に必要な演算器数とステップ数とを求め、本体処理のCDFGに基づいて本体処理に必要な演算器数とステップ数とを求め、出力処理のCDFGに基づいて出力処理に必要な演算器数とステップ数とを求める。なお、スケジュール部40は、例えば、動作レベル記述中にプラグマとして記述されたタイミングの指定に基づいてスケジュールする。
Next, the
次に、処理段階別RTL記述生成部51は、各処理段階のRTL記述を生成する(ステップS16)。具体的には、処理段階別RTL記述生成部51は、入力処理段階の処理のスケジュール結果に基づいて入力処理段階の入力回路に相当するRTL記述を生成し、本体処理段階の処理のスケジュール結果に基づいて本体処理段階の本体回路に相当するRTL記述を生成し、出力処理段階の処理のスケジュール結果に基づいて出力処理段階の出力回路に相当するRTL記述を生成する。
Next, the RTL
次に、通信路生成部52は、各処理段階のRTL記述とスケジュール結果とに基づいて各回路間の通信路を生成する(ステップS17)。通信路生成部52が実行する通信路生成処理については、図5に示すフローチャートを用いて詳細に説明する。
Next, the communication
まず、通信路生成部52は、回路間で転送されるデータからデータを選択する(ステップS21)。ここで、回路間で転送されるデータとは、例えば、入力回路から本体回路に供給されるデータや、本体回路から出力回路に供給されるデータである。
First, the communication
次に、通信路生成部52は、選択したデータを転送元の回路が出力するタイミングと選択したデータを転送先の回路が入力するタイミングとが異なるか否かを判別する(ステップS22)。例えば、選択したデータが入力回路から本体回路に供給されるデータである場合、通信路生成部52は、入力回路がこのデータを出力するタイミングと本体回路がこのデータを入力するタイミングとが異なるか否かを判別する。
Next, the communication
ここで、各回路は、データを使用するまでは、データを入力する必要はない。このため、スケジュール部40は、データを使用するタイミングをデータを入力するタイミングとしてスケジュールするものとする。以下、データを入力するタイミングはデータを使用するタイミングと同じであるものとして説明する。
Here, each circuit does not need to input data until data is used. For this reason, the
通信路生成部52は、タイミングが異なると判別した場合(ステップS22:YES)、選択したデータに対応するレジスタを用意する(ステップS23)。一方、通信路生成部52は、タイミングが異ならないと判別した場合(ステップS22:NO)、選択したデータに対応したレジスタを用意しない。
When determining that the timing is different (step S22: YES), the communication
通信路生成部52は、タイミングが異ならないと判別した場合(ステップS22:NO)、若しくは、選択したデータに対応するレジスタの用意(ステップS23)を完了した場合、回路間で転送されるデータを全て選択したか否かを判別する(ステップS24)。
When the communication
通信路生成部52は、データを全ては選択していないと判別した場合(ステップS24:NO)、回路間で転送されるデータのうちまだ選択していないデータを選択して同様の処理を繰り返す(ステップS21〜ステップS23)。一方、通信路生成部52は、データを全て選択したと判別した場合(ステップS24:YES)、レジスタが用意されたデータからデータを選択する(ステップS25)。
If the communication
通信路生成部52は、レジスタが用意されたデータからデータを選択した(ステップS25)後、選択したデータの転送タイミングと転送タイミングが重複しないデータが有るか否かを判別する(ステップS26)。なお、通信路生成部52は、ステップS23で対応するレジスタが用意されたデータのうち、選択したデータを出力する回路から出力されるデータのみを対象とする。すなわち、通信路生成部52は、レジスタが用意されなかったデータや、選択したデータを出力する回路とは別の回路から出力されるデータは対象にしない。
After selecting data from the data for which the register is prepared (step S25), the communication
通信路生成部52は、選択したデータの転送タイミングと転送タイミングが重複しないデータが有ると判別した場合(ステップS26:YES)、選択したデータと転送タイミングが重複しないデータに対応して用意されたレジスタと選択したデータに対応して用意されたレジスタとを共有する(ステップS27)。
If it is determined that there is data whose transfer timing does not overlap with the transfer timing of the selected data (step S26: YES), the communication
具体的には、例えば、通信路生成部52は、選択したデータに対応して用意されたレジスタを削除し、選択したデータと転送タイミングが重複しないデータに対応して用意されたレジスタを共有する。
Specifically, for example, the communication
通信路生成部52は、選択したデータの転送タイミングと転送タイミングが重複しないデータがないと判別した場合(ステップS26:NO)、若しくは、レジスタの共有(ステップS27)を完了した場合、レジスタが用意されたデータを全て選択したか否かを判別する(ステップS28)。
If the communication
通信路生成部52は、データを全ては選択していないと判別した場合(ステップS28:NO)、レジスタが用意されたデータのうちまだ選択していないデータを選択して同様の処理を繰り返す(ステップS25〜ステップS27)。一方、通信路生成部52は、データを全て選択したと判別した場合(ステップS28:YES)、通信路情報を生成する(ステップS29)。
If the communication
具体的には、通信路生成部52は、回路間で転送されるデータとレジスタとを対応付けた情報を通信路情報として生成する(ステップS29)。
Specifically, the communication
通信路生成部52は、通信路情報の生成(ステップS29)を終了すると、通信路生成処理を終了する。
When the communication
通信路生成部52が通信路生成処理(ステップS17)を終了すると、全RTL記述生成部53は、処理段階別RTL記述生成部51が生成した各処理段階のRTL記述と、通信路生成部52が生成した通信路情報とに基づいて、受付部20が受け付けた動作レベル記述の全記述に対応したRTL記述を生成する(ステップS18)。
When the communication
最後に、全RTL記述生成部53は、RTL記憶部112に全RTL記述を記憶し、動作合成処理を終了する(ステップS19)。
Finally, the all RTL
次に、本実施形態に係る動作合成装置100が動作レベル記述に基づいてどのようにRTL記述を生成するかを具体例を挙げて説明する。
Next, how the
図6に、SystemC言語で表現された動作レベル記述の一例を示す。図6に示した動作レベル記述は、供給された3つの入力データの最大公約数を計算して出力するモジュールgcd3の動作を表現した記述の一例である。なお、図6には、本発明の説明に必要な部分のみを示している。 FIG. 6 shows an example of behavior level description expressed in the SystemC language. The behavior level description shown in FIG. 6 is an example of a description expressing the behavior of the module gcd3 that calculates and outputs the greatest common divisor of three supplied input data. FIG. 6 shows only the portions necessary for explaining the present invention.
2行目から5行目に示すように、モジュールgcd3は、2つの入力端子start、in_datと、2つの出力端子out_dat、doneと、を有する。ここで、入力端子startは、データの入力の開始を指示する信号(start信号)が供給される端子であり、入力端子in_datは、入力データが供給される端子である。また、出力端子out_datは、データを出力する端子であり、出力端子doneは、出力データが有効であることを示す信号(done信号)を出力する端子である。 As shown in the second to fifth lines, the module gcd3 has two input terminals start and in_dat and two output terminals out_dat and done. Here, the input terminal start is a terminal to which a signal (start signal) for instructing start of data input is supplied, and the input terminal in_dat is a terminal to which input data is supplied. The output terminal out_dat is a terminal that outputs data, and the output terminal done is a terminal that outputs a signal (done signal) indicating that the output data is valid.
モジュールgcd3は、入力端子startにstart信号が供給されたと判別すると、入力端子in_datからデータを3つ取り込む。モジュールgcd3は、取り込んだ3つのデータの最大公約数を求め、求めた結果を出力端子out_datから出力した後、出力端子doneからdone信号を出力する。 When the module gcd3 determines that the start signal is supplied to the input terminal start, the module gcd3 takes in three pieces of data from the input terminal in_dat. The module gcd3 obtains the greatest common divisor of the fetched three data, outputs the obtained result from the output terminal out_dat, and then outputs a done signal from the output terminal done.
モジュールgcd3の動作記述は、2つの関数entry()、gcd2()を有する。関数entry()は、外部から入力データを取り込み、関数gcd2()を呼び出して最大公約数を計算し、計算結果を外部に出力する動作を表現した関数である。関数gcd2()は、与えられた2つの数の最大公約数をユークリッドの互除法を用いて計算する動作を表現した関数である。 The operation description of the module gcd3 has two functions entry () and gcd2 (). The function entry () is a function that expresses an operation of taking input data from the outside, calling the function gcd2 () to calculate the greatest common divisor, and outputting the calculation result to the outside. The function gcd2 () is a function that expresses the operation of calculating the greatest common divisor of two given numbers using the Euclidean algorithm.
関数entry()には、入力処理、本体処理、出力処理の3つの処理が記載されている。 The function entry () describes three processes: an input process, a main body process, and an output process.
入力処理では、まず、入力端子startから読み込まれる値が「1」になるまで待つ(13行目)。入力端子startから読み込まれる値が「1」になると、入力端子in_datから入力データを取り込み、ローカル変数dat[]に値を格納する。入力端子in_datからの入力データの取り込みは、3回連続で実行され、1回目、2回目、3回目の入力データがそれぞれローカル変数dat[0]、dat[1]、dat[2]に格納される(14行目から17行目)。なお、以下の説明では、理解を容易にするため、必要に応じて、ローカル変数dat[0]、dat[1]、dat[2]を、データdat[0]、dat[1]、dat[2]とする。
In the input processing, first, the process waits until the value read from the input terminal start becomes “1” (line 13). When the value read from the input terminal start becomes “1”, the input data is fetched from the input terminal in_dat, and the value is stored in the local variable dat []. The fetching of input data from the input terminal in_dat is executed three times in succession, and the first, second and third input data are stored in local variables dat [0], dat [1] and dat [2], respectively. (
12行目には、この入力処理が、データ毎のハンドシェイクなしに、バースト的に実行されるべき処理であることを指示するプラグマburst_interfaceが指定されている。なお、このプラグマburst_interfaceは、SystemCの仕様で定められているものではない。 In the twelfth line, a pragma burst_interface is designated that indicates that this input process is a process to be executed in a burst manner without handshaking for each data. Note that the pragma burst_interface is not defined in the specification of SystemC.
プラグマburst_interfaceにより、以下の(1)及び(2)の指定がされる。
(1)入力端子startからのデータの取り込みを毎クロックサイクル実行すること。
(2)入力端子startに供給されたデータが「1」になると、次のクロックサイクルで入力端子in_datからデータを取り込み、このクロックサイクルを起点(1クロックサイクル目)として、次のクロックサイクル(2クロックサイクル目)及び次の次のクロックサイクル(3クロックサイクル目)に連続して入力端子in_datからデータを取り込むこと。
The following (1) and (2) are specified by the pragma burst_interface.
(1) Data fetch from the input terminal start is executed every clock cycle.
(2) When the data supplied to the input terminal “start” becomes “1”, the data is fetched from the input terminal in_dat in the next clock cycle, and the next clock cycle (2 Data is taken in from the input terminal in_dat continuously in the clock cycle) and the next clock cycle (third clock cycle).
本体処理では、関数gcd2()を呼び出し、3つの数の最大公約数を計算する(20行目から21行目)。まず、1回目に入力したデータdat[0]と2回目に入力したデータdat[1]とを引数として関数gcd2()を呼び出すことで、これらのデータの最大公約数を計算する(20行目)。次に、その結果と3回目に入力したデータdat[2]を引数として関数gcd2()を呼び出すことで、結果として3つのデータの最大公約数を計算し、ローカル変数retに格納する(21行目)。 In the main process, the function gcd2 () is called to calculate the greatest common divisor of the three numbers (from the 20th line to the 21st line). First, the function gcd2 () is called with the data dat [0] input first time and the data dat [1] input second time as arguments, and the greatest common divisor of these data is calculated (line 20). ). Next, by calling the function gcd2 () with the result and the data dat [2] inputted for the third time as an argument, the greatest common divisor of the three data is calculated and stored in the local variable ret (line 21). Eye).
出力処理では、ローカル変数retに格納された最大公約数を出力端子out_datに出力するとともに、done信号の信号レベルを「1」として出力端子doneから出力する(22行目から24行目)。そして、次のクロックサイクルでdone信号の信号レベルを「0」に戻して出力端子doneから出力する(25行目から26行目)。 In the output process, the greatest common divisor stored in the local variable ret is output to the output terminal out_dat, and the signal level of the done signal is set to “1” and output from the output terminal done (from the 22nd line to the 24th line). Then, in the next clock cycle, the signal level of the done signal is returned to “0” and output from the output terminal done (from the 25th line to the 26th line).
関数gcd2()は、2つの数を引数x、yとして与えられ、ユークリッドの互除法をもちいて当該2数の最大公約数を計算し、戻り値として返す。具体的には以下の手順を実行する。まず、xとyを比較し、もしその値が異なっていればxとyのうち大きい方をその差分で更新する(32行目から35行目)。xとyの値が同じになった時点で繰り返しを終了し、最大公約数としてxの値を戻り値として返す。 The function gcd2 () is given two numbers as arguments x and y, calculates the greatest common divisor of the two numbers using the Euclidean algorithm, and returns it as a return value. Specifically, the following procedure is executed. First, x and y are compared, and if the values are different, the larger of x and y is updated with the difference (from the 32nd line to the 35th line). When the values of x and y become the same, the repetition is terminated, and the value of x is returned as the return value as the greatest common divisor.
図6に示す動作記述のスケジュール結果の一例を、図7(A)、図7(B)、図8(A)及び図8(B)に示す。図7(A)は、入力処理のスケジュール結果の一例を示した図である。図7(B)と図8(A)は、本体処理のスケジュール結果の一例を示した図である。図8(B)は、出力処理のスケジュール結果の一例を示した図である。 An example of the schedule result of the behavioral description shown in FIG. 6 is shown in FIGS. 7A, 7B, 8A, and 8B. FIG. 7A is a diagram illustrating an example of a schedule result of input processing. FIG. 7B and FIG. 8A are diagrams showing an example of a schedule result of the main body process. FIG. 8B is a diagram illustrating an example of a schedule result of output processing.
図7(A)に示すように、プラグマburst_interfaceの指定に従い、状態1から状態4にかけて、入力処理がスケジュールされる。状態1では入力端子startから値を読み込み、その値が「0」の間は状態1を繰り返す。入力端子startの値が「1」になると、次のクロックサイクルで状態2を実行する。状態2、3、4では入力端子in_datから値を読み込み、それぞれローカル変数dat[0]、dat[1]、dat[2]に値を格納する。
As shown in FIG. 7A, input processing is scheduled from
また、図7(B)および図8(A)に示すように、状態3から状態7にかけて本体処理がスケジュールされる。状態3では1番目のデータdat[0]と2番目のデータdat[1]の値が、それぞれx、yに格納される。状態4−1、4−2、4−3−1、4−3−2では、関数gcd2()の処理が実行される。
Further, as shown in FIGS. 7B and 8A, the main body process is scheduled from the
状態4−1では、xとyの値を比較し、その値が同じ場合に、xの値を最大公約数としてtに格納して状態5に遷移する。状態4−2では、xとyの値を比較し、xの値が大きい場合は状態4−3−1へ、yの値が大きい場合は状態4−3−2へ遷移する。状態4−3−1では、yとxの差分をyに格納している。状態4−3−2では、xとyの差分をxに格納する。そして、それぞれ状態4−1へ戻る。xとyの値が異なる間は、これらを繰り返す。状態5では、データdat[0]とデータdat[1]の最大公約数tと3番目のデータdat[2]を、それぞれx、yに格納する。状態6−1、6−2、6−3−1、6−3−2では、再び関数gcd2()の処理が実行される。その動作は状態4−1から4−3−2と同様である。最後に状態7においてローカル変数retに関数gcd2()の戻り値を格納する。
In state 4-1, the values of x and y are compared, and if the values are the same, the value of x is stored in t as the greatest common divisor and the state transitions to state 5. In state 4-2, the values of x and y are compared, and if the value of x is large, the state transitions to state 4-3-1, and if the value of y is large, the state transitions to state 4-3-2. In the state 4-3-1, the difference between y and x is stored in y. In the state 4-3-2, the difference between x and y is stored in x. And each returns to the state 4-1. These are repeated while the values of x and y are different. In state 5, the greatest common divisor t of data dat [0] and data dat [1] and the third data dat [2] are stored in x and y, respectively. In the states 6-1, 6-2, 6-3-1 and 6-3-2, the process of the function gcd2 () is executed again. The operation is the same as in states 4-1 to 4-3-2. Finally, in
図8(B)に示すように、状態7から状態8にかけて出力処理がスケジュールされる。状態7において、ローカル変数retに格納された3つの入力の最大公約数が出力端子out_datから出力されるとともに、出力端子doneから「1」が出力される。次の状態8において、出力端子doneから「0」が出力される。
As shown in FIG. 8B, output processing is scheduled from
なお、このスケジュール結果の例において、図7(A)の状態3と図7(B)の状態3とは同時に実行される。また、図8(A)の状態7と図8(B)の状態7とは同時に実行される。
In the example of the schedule result, the
図9に、合成された入力回路121、本体回路122、出力回路123、全体制御回路124及びレジスタ125のブロック図を例示する。動作合成装置100は、スケジュール結果を元に以下のように通信路を作成する。
FIG. 9 illustrates a block diagram of the synthesized
なお、入力回路121、本体回路122及び出力回路123は、処理段階別RTL記述生成部51が生成したそれぞれの処理段階のRTL記述により表現される回路である。また、全体制御回路124は、入力回路121、本体回路122及び出力回路123を制御する回路である。
The
まず、入力回路121がデータを出力するタイミングと、本体回路122がデータを使用するタイミングとを比較し、異なる場合に通信路にレジスタを用意する。同じ場合には通信路にレジスタを用意しない。なお、前述のように、データを使用するタイミングとデータを入力するタイミングは同じタイミングであるものとして説明する。
First, the timing at which the
具体的には、データdat[0]は、入力回路121がデータを出力するタイミングと、本体回路122がデータを使用するタイミングが異なるため、レジスタ125を用意する。データdat[1]は、入力回路121がデータを出力するタイミングと、本体回路122がデータを使用するタイミングが同じであるため、レジスタを用意しない。データdat[2]は、入力回路121がデータを出力するタイミングと、本体回路122がデータを使用するタイミングが異なるため、レジスタ125を用意する。
Specifically, for data dat [0], a
次に、入力回路121がデータを出力するタイミングと本体回路122がデータを使用するタイミングまでの期間を信号ごとに比較し、レジスタの共有を決定する。期間が重ならない場合にはレジスタを共有し、期間が重なる場合にはレジスタを共有しない。データdat[0]とデータdat[2]の当該タイミングは重ならないためレジスタ125を共有する。
Next, the period until the timing at which the
次に、入力回路121、出力回路123との間の通信路を生成する。データdat[1]にはレジスタを介さずに接続する通信路を生成する。データdat[0]、dat[2]には共有されたレジスタ125を介して接続される通信路を生成する。
Next, a communication path between the
本体回路122と出力回路123との間の通信路についても同様に生成する。
A communication path between the
最後に、生成した通信路に対応したRTL記述を作成し記憶装置に格納する。 Finally, an RTL description corresponding to the generated communication path is created and stored in the storage device.
特許文献1に開示された動作合成の手順によって合成された回路では、入力段階記述の処理が全て完了するまで本体段階記述の処理を開始できず、また、本体段階記述の処理が全て完了するまではデータの出力段階記述の処理を開始できなかった。
In the circuit synthesized by the behavioral synthesis procedure disclosed in
しかしながら、上述したように本実施形態に係る動作合成装置100によれば、入力段階記述の処理の完了を待たずに本体段階記述の処理を開始でき、さらに、本体段階記述の処理の完了を待たずに出力段階記述の処理を開始できる。
However, as described above, according to the
具体的には、入力回路121が状態4を実行して全ての入力データの受け取りを完了する前に本体回路122がその処理を開始する。本体回路122と出力回路123との間でも同様である。
Specifically, before the
さらに、本実施形態に係る動作合成装置100によれば、半導体集積回路の動作レベル記述からレジスタ転送レベル記述を生成する際に、レジスタ回路の数を抑制できる。
Furthermore, according to the
具体的には、入力回路121がデータを出力するタイミングと本体回路122がデータを使用するタイミングとが一致する場合、このデータを転送するための通信路はレジスタを用いずに直接接続される。このため、転送されるデータに対応して全てレジスタを用意する場合に比べ、入力回路121と本体回路122との間の通信路上のレジスタの数を減らすことができる。本体回路122と出力回路123との間の通信路上のレジスタについても同様である。
Specifically, when the timing at which the
また、入力回路121がデータを出力するタイミングと本体回路122がデータを使用するタイミングまでの期間を信号ごとに比較し、期間が重ならない場合にはレジスタを共有する。このため、入力回路121と本体回路122との間の通信路上のレジスタの数をさらに減らすことができる。本体回路122と出力回路123との間の通信路上のレジスタについても同様である。
Further, the period until the timing at which the
上述の実施形態では、プラグマを用いて入出力タイミングを指定したが、他の指定方法により入出力タイミングを指定することも可能である。 In the above-described embodiment, the input / output timing is specified using the pragma, but the input / output timing can also be specified by other specification methods.
図10に、入出力タイミングをコメントにより指定する場合の、動作記述の一例を示す。図10の動作記述は、図6と比較すると、2行目の入力信号in_datの宣言が、入力信号a、b、cの宣言であることが異なり(2a、2b、2c行目)、11行目から19行目の入力端子in_datからの読み込みが、入力端子a、b、cからの読み込み(13行目、15a、15b、15c、16行目)となっていることが異なる。また、入力のタイミングが、プラグマではなく、入力信号のコメントとして指定していることが異なる。
FIG. 10 shows an example of behavioral description when the input / output timing is designated by a comment. The behavioral description of FIG. 10 differs from FIG. 6 in that the declaration of the input signal in_dat on the second line is the declaration of the input signals a, b, and c (
また、図11(A)に、入出力タイミングを動作記述とは別に指定する場合の動作記述の一例を示す。図11(A)の動作記述は、図10と比較すると、入力のタイミングをコメントとして指定していない。代わりに、図11(B)に示すように、入力信号とタイミングのペアを表形式で指定している。このように、入出力タイミングを指定する方法は、任意である。 FIG. 11A shows an example of an operation description when the input / output timing is specified separately from the operation description. In the behavioral description in FIG. 11A, the input timing is not designated as a comment as compared with FIG. Instead, as shown in FIG. 11B, input signal and timing pairs are specified in a table format. As described above, the method for designating the input / output timing is arbitrary.
また、上記実施形態では、プログラムが、記憶装置に予め記憶されているものとして説明した。しかし、動作合成装置を、装置の全部又は一部として動作させ、あるいは、上述の処理を実行させるためのプログラムを、フレキシブルディスク、CD−ROM(Compact Disk Read−Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。 In the above-described embodiment, the program has been described as being stored in the storage device in advance. However, a program for causing the behavioral synthesis device to operate as the whole or a part of the device, or to execute the above-described processing is stored on a flexible disk, a CD-ROM (Compact Disk Read-Only Memory), a DVD (Digital Versatile Disk). ), Stored in a computer-readable recording medium such as MO (Magneto Optical Disk), distributed, installed on another computer, operated as the above-mentioned means, or may be executed the above-mentioned steps .
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等してプログラムを実行してもよい。 Furthermore, the program may be stored in a disk device or the like of a server device on the Internet, and may be executed by being superimposed on a carrier wave and downloaded to a computer.
上述したように、本実施形態に係る動作合成装置100によれば、入力段階記述の処理の完了を待たずに本体段階記述の処理を開始でき、また、本体段階記述の処理の完了を待たずに出力段階記述の処理を開始できる。さらに、本実施形態に係る動作合成装置100によれば、半導体集積回路の動作レベル記述からレジスタ転送レベル記述を生成する際に、レジスタ回路の数を抑制できる。
As described above, according to the
11 CPU
12 ROM
13 RAM
14 ハードディスク装置
15 入力装置
16 表示装置
20 受付部
30 分割部
35 CDFG生成部
40 スケジュール部
50 生成部
51 処理段階別RTL記述生成部
52 通信路生成部
53 全RTL記述生成部
100 動作合成装置
110 記憶装置
111 動作レベル記述記憶部
112 RTL記述記憶部
11 CPU
12 ROM
13 RAM
14
Claims (7)
当該受け付けられた動作レベル記述を、当該動作レベル記述に含まれる所定のプラグマに基づいて、複数のプロセスのそれぞれとしての、データの入力段階記述、処理の本体段階記述、データの出力段階記述に分割する分割部、
当該入力段階記述、当該本体段階記述、当該出力段階記述のそれぞれについて入出力並びに演算のタイミングをスケジュールするスケジュール部、
当該入力段階記述、当該本体段階記述、当該出力段階記述、及び、当該タイミングに基づいて、半導体集積回路の構成、配置、配線を記述するレジスタ転送レベル記述を生成する生成部、
を備え、
前記生成部は、
(a)当該入力段階記述の出力のタイミングと当該本体段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置し、
(b)当該本体段階記述の出力のタイミングと当該出力段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置する、
ことを特徴とする動作合成装置。 A reception unit for receiving an operation level description describing the operation of the semiconductor integrated circuit as a single process ;
The received behavior level description is divided into a data input stage description, a processing body stage description, and a data output stage description as each of a plurality of processes based on a predetermined pragma included in the behavior level description. Splitting part,
A schedule unit that schedules input / output and operation timing for each of the input stage description, the main body stage description, and the output stage description;
A generation unit that generates a register transfer level description that describes the configuration, arrangement, and wiring of the semiconductor integrated circuit based on the input stage description, the main body stage description, the output stage description, and the timing;
With
The generator is
(A) When the output timing of the input stage description and the input timing of the main body stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. And place
(B) When the output timing of the main body stage description and the input timing of the output stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. To place,
A behavioral synthesis device characterized by that.
前記生成部は、当該配置されたレジスタ回路の入出力のタイミングが重複しないレジスタ回路が共有されるように再配置する、
ことを特徴とする動作合成装置。 The behavioral synthesis device according to claim 1,
The generating unit rearranges so that register circuits that do not overlap the input / output timing of the arranged register circuits are shared.
A behavioral synthesis device characterized by that.
前記スケジュール部は、当該動作レベル記述に含まれる所定のプラグマに基づいてスケジュールする、
ことを特徴とする動作合成装置。 The behavioral synthesis device according to claim 1 or 2,
The scheduling unit schedules based on a predetermined pragma included in the behavior level description.
A behavioral synthesis device characterized by that.
前記スケジュール部は、当該動作レベル記述に含まれる所定のコメントに基づいてスケジュールする、
ことを特徴とする動作合成装置。 The behavioral synthesis device according to claim 1 or 2,
The scheduling unit schedules based on a predetermined comment included in the behavior level description.
A behavioral synthesis device characterized by that.
前記受付部は、当該動作レベル記述に対する付加情報をさらに受け付け、
前記スケジュール部は、当該付加情報に基づいてスケジュールする、
ことを特徴とする動作合成装置。 The behavioral synthesis device according to claim 1 or 2,
The reception unit further receives additional information for the behavior level description,
The scheduling unit schedules based on the additional information.
A behavioral synthesis device characterized by that.
前記受付部が、半導体集積回路の動作を単一のプロセスとして記述する動作レベル記述を受け付ける受付ステップ、
前記分割部が、当該受け付けられた動作レベル記述を、当該動作レベル記述に含まれる所定のプラグマに基づいて、複数のプロセスのそれぞれとしての、データの入力段階記述、処理の本体段階記述、データの出力段階記述に分割する分割ステップ、
前記スケジュール部が、当該入力段階記述、当該本体段階記述、当該出力段階記述のそれぞれについて入出力並びに演算のタイミングをスケジュールするスケジュールステップ、
前記生成部が、当該入力段階記述、当該本体段階記述、当該出力段階記述、及び、当該タイミングに基づいて、半導体集積回路の構成、配置、配線を記述するレジスタ転送レベル記述を生成する生成ステップ、
を備え、
前記生成ステップでは、前記生成部が、
(a)当該入力段階記述の出力のタイミングと当該本体段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置し、
(b)当該本体段階記述の出力のタイミングと当該出力段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置する、
ことを特徴とする動作合成方法。 A behavioral synthesis method executed by a behavioral synthesis device including a reception unit, a division unit, a schedule unit, and a generation unit,
An accepting step for accepting an operation level description in which the accepting unit describes the operation of the semiconductor integrated circuit as a single process ;
The dividing unit converts the received behavior level description into a data input stage description, a process body stage description, and a data description as each of a plurality of processes based on a predetermined pragma included in the behavior level description . A split step to split into output stage descriptions,
A scheduling step in which the scheduling unit schedules input / output and operation timing for each of the input stage description, the main body stage description, and the output stage description;
A generating step for generating a register transfer level description that describes a configuration, arrangement, and wiring of a semiconductor integrated circuit based on the input stage description, the main body stage description, the output stage description, and the timing;
With
In the generation step, the generation unit includes:
(A) When the output timing of the input stage description and the input timing of the main body stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. And place
(B) When the output timing of the main body stage description and the input timing of the output stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. To place,
A behavioral synthesis method characterized by the above.
半導体集積回路の動作を単一のプロセスとして記述する動作レベル記述を受け付ける受付部、
当該受け付けられた動作レベル記述を、当該動作レベル記述に含まれる所定のプラグマに基づいて、複数のプロセスのそれぞれとしての、データの入力段階記述、処理の本体段階記述、データの出力段階記述に分割する分割部、
当該入力段階記述、当該本体段階記述、当該出力段階記述のそれぞれについて入出力並びに演算のタイミングをスケジュールするスケジュール部、
当該入力段階記述、当該本体段階記述、当該出力段階記述、及び、当該タイミングに基づいて、半導体集積回路の構成、配置、配線を記述するレジスタ転送レベル記述を生成する生成部、
として機能させるプログラムであって、
前記生成部は、
(a)当該入力段階記述の出力のタイミングと当該本体段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置し、
(b)当該本体段階記述の出力のタイミングと当該出力段階記述の入力のタイミングとが一致する場合、当該出力と当該入力を直接接続し、一致しない場合、当該出力と当該入力の間にレジスタ回路を配置する、
ことを特徴とするプログラム。 Computer
A reception unit for receiving an operation level description describing the operation of the semiconductor integrated circuit as a single process ;
The received behavior level description is divided into a data input stage description, a processing body stage description, and a data output stage description as each of a plurality of processes based on a predetermined pragma included in the behavior level description. Splitting part,
A schedule unit that schedules input / output and operation timing for each of the input stage description, the main body stage description, and the output stage description;
A generation unit that generates a register transfer level description that describes the configuration, arrangement, and wiring of the semiconductor integrated circuit based on the input stage description, the main body stage description, the output stage description, and the timing;
A program that functions as
The generator is
(A) When the output timing of the input stage description and the input timing of the main body stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. And place
(B) When the output timing of the main body stage description and the input timing of the output stage description match, the output and the input are directly connected. When they do not match, a register circuit is connected between the output and the input. To place,
A program characterized by that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008066533A JP5211776B2 (en) | 2008-03-14 | 2008-03-14 | Behavioral synthesis apparatus, behavioral synthesis method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008066533A JP5211776B2 (en) | 2008-03-14 | 2008-03-14 | Behavioral synthesis apparatus, behavioral synthesis method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009223558A JP2009223558A (en) | 2009-10-01 |
JP5211776B2 true JP5211776B2 (en) | 2013-06-12 |
Family
ID=41240275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008066533A Active JP5211776B2 (en) | 2008-03-14 | 2008-03-14 | Behavioral synthesis apparatus, behavioral synthesis method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5211776B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3763700B2 (en) * | 1998-06-04 | 2006-04-05 | シャープ株式会社 | High level synthesis equipment |
JP3489673B2 (en) * | 2000-02-01 | 2004-01-26 | 日本電気株式会社 | Integrated process RTL description generation method |
JP4492803B2 (en) * | 2005-03-31 | 2010-06-30 | 日本電気株式会社 | Behavioral synthesis apparatus and program |
JP2007164596A (en) * | 2005-12-15 | 2007-06-28 | Toshiba Corp | Design system and design method |
JP4177851B2 (en) * | 2006-02-15 | 2008-11-05 | 松下電器産業株式会社 | Logic circuit design method |
-
2008
- 2008-03-14 JP JP2008066533A patent/JP5211776B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2009223558A (en) | 2009-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9135387B2 (en) | Data processing apparatus including reconfiguarable logic circuit | |
KR101035646B1 (en) | Pipeline coprocessor | |
US8516414B2 (en) | Behavioral synthesis device, behavioral synthesis method, and computer program product | |
JP2006285333A (en) | Operation composition device and method | |
Vannoy | Enabling rapid prototyping of audio signal processing systems using system-on-chip field programmable gate arrays | |
JP5211776B2 (en) | Behavioral synthesis apparatus, behavioral synthesis method, and program | |
JP2004303022A (en) | Preprocessor, design system of integrated circuit, and design method of integrated circuit | |
JP5228546B2 (en) | Behavioral synthesis apparatus and program | |
JP5668404B2 (en) | Configuration information management apparatus, method and program thereof, and behavioral synthesis apparatus | |
US20070250803A1 (en) | High-level synthesis method and high-level synthesis system | |
JP2861994B1 (en) | Circuit synthesis method, circuit synthesis device, and recording medium | |
EP2336883A1 (en) | Programming system in multi-core, and method and program of the same | |
JP2018041301A (en) | RTL optimization system and RTL optimization program | |
JP5169697B2 (en) | Behavioral synthesis apparatus, behavioral synthesis method, and program | |
JP5229716B2 (en) | Behavioral synthesis system, behavioral synthesis method, and behavioral synthesis program | |
JP2008204341A (en) | Interface composite device | |
JP2006155533A (en) | Circuit information generation device and circuit information generation method | |
JP4891807B2 (en) | High level synthesis apparatus and high level synthesis method | |
JP2018206195A (en) | Calculation system, and control method and program of calculation system | |
JP2011090518A (en) | High order synthesis device, high order synthesis method, and high order synthesis program | |
JP2009239344A (en) | Description processing apparatus, description processing method and program | |
WO2017056427A1 (en) | Program rewrite device, method, and storage medium | |
JP2003216669A (en) | Processor synthesizer, system lsi synthesizer, processor synthesizing method, system lsi synthesizing method, and recording medium | |
Fan et al. | Usage-based characterization of complex functional blocks for reuse in behavioral synthesis | |
JP2004362446A (en) | Computer and computing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120417 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120424 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120625 |
|
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: 20130129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130211 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5211776 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160308 Year of fee payment: 3 |