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

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

Info

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
Application number
JP2008066533A
Other languages
Japanese (ja)
Other versions
JP2009223558A (en
Inventor
崇 竹中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008066533A priority Critical patent/JP5211776B2/en
Publication of JP2009223558A publication Critical patent/JP2009223558A/en
Application granted granted Critical
Publication of JP5211776B2 publication Critical patent/JP5211776B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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 Patent Document 1, for example.

以下、特許文献1に開示された動作合成の手順について簡単に説明する。   The behavioral synthesis procedure disclosed in Patent Document 1 will be briefly described below.

まず、動作合成ツールは、動作レベル記述言語で書かれた記述の構文解析を行う。続いて、動作合成ツールは、記述中の変数をレジスタ(又はメモリ)で実現する。そして、動作合成ツールは、コントロールデータフローグラフ(以下、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記述言語による記述として出力して、動作合成を終了する。
特開2007−272671号公報
Next, the behavioral synthesis tool performs resource binding and scheduling based on the CDFG. Then, the behavioral synthesis tool synthesizes a circuit by mapping and sharing arithmetic units, registers, multiplexers, and the like based on the circuit frequency and arithmetic unit constraints, which are synthesis constraints. Finally, the behavioral synthesis tool outputs the synthesized circuit configuration as a description in an RTL description language that can be directly input to the logic synthesis tool, and ends the behavioral synthesis.
JP 2007-272671 A

通常、動作記述は、データの入力段階記述、処理の本体記述、データの出力段階記述で構成される。特許文献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 Patent Document 1, it is necessary to prepare as many registers as the number of data input at the input stage and the number of data output at the data output stage. For this reason, when the number of variables increases, it is necessary to prepare as many registers as there are.

本発明は、上記問題に鑑みてなされたものであり、半導体集積回路の動作レベル記述からレジスタ転送レベル記述を生成する際に、レジスタの数を抑制するのに好適な動作合成装置、動作合成方法及びこれらをコンピュータ上で実現するためのプログラムを提供することを目的とする。   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 behavioral synthesis device 100 physically includes a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, a hard disk device 14, An input device 15 and a display device 16 are provided. Each component included in the behavioral synthesis device 100 is connected via a bus.

CPU11は、ハードディスク装置14に記憶されたプログラムに従って動作合成装置100全体の動作を制御する。CPU15は、各構成要素とバスを介して接続され制御信号やデータのやりとりをする。   The CPU 11 controls the overall operation of the behavioral synthesis device 100 in accordance with a program stored in the hard disk device 14. The CPU 15 is connected to each component via a bus and exchanges control signals and data.

ROM12は、電源投入直後に実行されるIPL(Initial Program Loader)を記憶する。IPLが実行された後、CPU11は、ハードディスク装置14に記憶されたプログラムをRAM13に読み出して実行する。   The ROM 12 stores an IPL (Initial Program Loader) that is executed immediately after the power is turned on. After the IPL is executed, the CPU 11 reads the program stored in the hard disk device 14 to the RAM 13 and executes it.

RAM13は、データやプログラムを一時的に記憶する。RAM13は、ハードディスク装置14から読み出されたプログラムや、動作合成処理に必要なデータ等を一時記憶する。   The RAM 13 temporarily stores data and programs. The RAM 13 temporarily stores a program read from the hard disk device 14, data necessary for behavioral synthesis processing, and the like.

ハードディスク装置14は、CPU11により実行されるプログラムを記憶する。   The hard disk device 14 stores a program executed by the CPU 11.

入力装置15は、CPU11による制御のもと、動作合成に必要なパラメータ等の入力をユーザから受け付け、また、動作合成開始要求等の要求をユーザから受け付ける。入力装置15は、例えば、キーボードやマウスから構成される。   The input device 15 receives input of parameters and the like necessary for behavioral synthesis from the user under the control of the CPU 11 and accepts requests such as a behavioral synthesis start request from the user. The input device 15 is composed of a keyboard and a mouse, for example.

表示装置16は、CPU11による制御のもと、ユーザからのパラメータ等の入力や動作合成開始要求等の要求を受け付けるための画面、動作レベル記述を表示するための画面、レジスタ転送レベル記述を表示するための画面等を表示する。表示装置16は、例えば、液晶ディスプレイ装置から構成される。   Under the control of the CPU 11, the display device 16 displays a screen for receiving a request such as input of a parameter or a request from a user, a behavioral synthesis start request, a screen for displaying a behavior level description, and a register transfer level description. Display a screen for the purpose. The display device 16 is composed of, for example, a liquid crystal display device.

次に、本実施形態に係る動作合成装置100の基本構成について説明する。   Next, a basic configuration of the behavioral synthesis device 100 according to the present embodiment will be described.

図2は、本実施形態に係る動作合成装置100の基本構成を示すブロック図である。図2に示すように、動作合成装置100は、機能的には、受付部20と、分割部30と、スケジュール部40と、生成部50と、を備える。   FIG. 2 is a block diagram showing a basic configuration of the behavioral synthesis device 100 according to the present embodiment. As shown in FIG. 2, the behavioral synthesis device 100 functionally includes a receiving unit 20, a dividing unit 30, a scheduling unit 40, and a generating unit 50.

受付部20は、動作レベル記述を受け付ける。受付部20は、CPU11が、ROM12、RAM13及び入力装置15と協働することにより実現される。   The accepting unit 20 accepts a behavior level description. The receiving unit 20 is realized by the CPU 11 cooperating with the ROM 12, the RAM 13, and the input device 15.

分割部30は、動作レベル記述を各処理段階の記述に分割する。具体的には、分割部30は、RAM13に記憶された動作レベル記述を、データの入力段階記述と、処理の本体段階記述と、データの出力段階記述と、に分割する。分割部30は、CPU11が、ROM12及びRAM13と協働することにより実現される。   The dividing unit 30 divides the behavior level description into descriptions for each processing stage. Specifically, the dividing unit 30 divides the behavior level description stored in the RAM 13 into a data input stage description, a process main body stage description, and a data output stage description. The dividing unit 30 is realized by the CPU 11 cooperating with the ROM 12 and the RAM 13.

スケジュール部40は、入力段階記述、本体段階記述、出力段階記述のそれぞれについて入出力並びに演算のタイミングをスケジュールする。スケジュール部40は、CPU11が、ROM12及びRAM13と協働することにより実現される。   The schedule unit 40 schedules input / output and calculation timings for each of the input stage description, the body stage description, and the output stage description. The schedule unit 40 is realized by the CPU 11 cooperating with the ROM 12 and the RAM 13.

生成部50は、入力段階記述、本体段階記述、出力段階記述、及び、タイミングに基づいて、半導体集積回路の構成、配置、配線を記述するRTL(Register Transfer Level(レジスタ転送レベル))記述を生成する。   The generation unit 50 generates an RTL (Register Transfer Level) description that describes the configuration, arrangement, and wiring of the semiconductor integrated circuit based on the input stage description, the body stage description, the output stage description, and the timing. To do.

具体的には、生成部50は、入力段階記述の出力のタイミングと本体段階記述の入力のタイミングとが一致する場合、出力と入力を直接接続し、一致しない場合、出力と入力の間にレジスタ回路を配置する。また、生成部50は、本体段階記述の出力のタイミングと出力段階記述の入力のタイミングとが一致する場合、出力と入力を直接接続し、一致しない場合、出力と入力の間にレジスタ回路を配置する。   Specifically, when the output timing of the input stage description matches the input timing of the main body stage description, the generation unit 50 directly connects the output and the input, and when they do not match, the generation unit 50 registers between the output and the input. Arrange the circuit. The generation unit 50 directly connects the output and the input when the output timing of the main body stage description and the input timing of the output stage description match, and arranges the register circuit between the output and the input when they do not match. To do.

次に、本実施形態に係る動作合成装置100が実行する動作合成処理について、図3と図4を参照して説明する。   Next, the behavioral synthesis process executed by the behavioral synthesis device 100 according to the present embodiment will be described with reference to FIGS. 3 and 4.

なお、図3に示すように、動作合成装置100は、図2に示した基本構成に加え、CDFG(Control Data Flow Graph)生成部35を更に備えるものとする。また、生成部50は、処理段階別RTL記述生成部51と、通信路生成部52と、全RTL記述生成部53と、を備えるものとする。   As shown in FIG. 3, the behavioral synthesis device 100 further includes a CDFG (Control Data Flow Graph) generation unit 35 in addition to the basic configuration shown in FIG. Further, the generation unit 50 includes a processing stage-specific RTL description generation unit 51, a communication path generation unit 52, and an all RTL description generation unit 53.

そして、図3に示すように、動作合成装置100は、記憶装置110が備える動作レベル記述記憶部111に記憶された動作レベル記述を動作合成し、求めたRTL記述を記憶装置110が備えるRTL記述記憶部112に格納するものとする。なお、本実施形態では、動作合成装置100の外部に記憶装置110がある構成として説明するが、動作合成装置100が記憶装置110を備える構成でもよい。動作合成装置100が記憶装置110を備える構成では、例えば、ハードディスク装置14が記憶装置110を構成する。   As illustrated in FIG. 3, the behavioral synthesis device 100 behaviorally synthesizes the behavioral level description stored in the behavioral level description storage unit 111 provided in the storage device 110, and the RTL description provided in the storage device 110 includes the obtained RTL description. The data is stored in the storage unit 112. In this embodiment, the configuration is described in which the storage device 110 is provided outside the behavioral synthesis device 100, but the behavioral synthesis device 100 may include the storage device 110. In the configuration in which the behavioral synthesis device 100 includes the storage device 110, for example, the hard disk device 14 configures the storage device 110.

ここで、動作レベル記述は、設計対象の回路動作を、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 behavioral synthesis device 100 according to the present embodiment.

動作合成装置100は、例えば、所定の動作レベル記述を動作合成する旨の要求を入力装置15を介してユーザから受けると、動作合成処理を開始する。   For example, when the behavioral synthesis apparatus 100 receives a request for behavioral synthesis of a predetermined behavior level description from the user via the input device 15, the behavioral synthesis process starts.

まず、CPU11は、動作合成処理で使用するデータを初期化する(ステップS11)。CPU11は、RAM13に記憶されたデータを初期化する。   First, the CPU 11 initializes data used in the behavioral synthesis process (step S11). The CPU 11 initializes data stored in the RAM 13.

CPU11が初期化を完了すると、受付部20は動作レベル記述を受け付ける(ステップS12)。まず、受付部20は、ユーザから動作合成対象の動作レベル記述の指定とパラメータの指定とを受け付ける。そして、受付部20は、ユーザから指定された動作レベル記述を動作レベル記述記憶部111から読み出してRAM13に記憶するとともに、ユーザから指定されたパラメータをRAM13に記憶する。   When the CPU 11 completes initialization, the receiving unit 20 receives a behavior level description (step S12). First, the accepting unit 20 accepts specification of a behavioral level description to be synthesized and parameter specification from a user. Then, the receiving unit 20 reads out the behavior level description designated by the user from the behavior level description storage unit 111 and stores the behavior level description in the RAM 13 and also stores the parameter designated by the user in the RAM 13.

次に、分割部30は、動作レベル記述を各処理段階の記述に分割する(ステップS13)。具体的には、分割部30は、RAM13に記憶された動作レベル記述を、データの入力段階記述と、処理の本体段階記述と、データの出力段階記述と、に分割する。分割部30は、例えば、動作レベル記述中の入出力ポートの定義部分やプラグマを参照して動作レベル記述を分割する。   Next, the dividing unit 30 divides the behavior level description into descriptions for each processing stage (step S13). Specifically, the dividing unit 30 divides the behavior level description stored in the RAM 13 into a data input stage description, a process main body stage description, and a data output stage description. The dividing unit 30 divides the behavior level description with reference to, for example, an input / output port definition part or pragma in the behavior level description.

次に、CDFG生成部35は、各処理段階のCDFGをそれぞれ生成する(ステップS14)。具体的には、CDFG生成部35は、入力段階記述に基づいて入力処理のCDFGを生成し、本体段階記述に基づいて本体処理のCDFGを生成し、出力段階記述に基づいて出力処理のCDFGを生成する。なお、CDFG生成部35は、CPU11が、ROM12及びRAM13と協働することにより実現される。   Next, the CDFG generation unit 35 generates a CDFG for each processing stage (step S14). Specifically, the CDFG generation unit 35 generates a CDFG for input processing based on the input stage description, generates a CDFG for main body processing based on the main body stage description, and generates a CDFG for output processing based on the output stage description. Generate. The CDFG generation unit 35 is realized by the CPU 11 cooperating with the ROM 12 and the RAM 13.

次に、スケジュール部40は、各処理段階の処理についてそれぞれスケジュールする(ステップS15)。具体的には、スケジュール部40は、入力処理のCDFGに基づいて入力処理に必要な演算器数とステップ数とを求め、本体処理のCDFGに基づいて本体処理に必要な演算器数とステップ数とを求め、出力処理のCDFGに基づいて出力処理に必要な演算器数とステップ数とを求める。なお、スケジュール部40は、例えば、動作レベル記述中にプラグマとして記述されたタイミングの指定に基づいてスケジュールする。   Next, the schedule part 40 schedules each process step (step S15). Specifically, the scheduling unit 40 obtains the number of arithmetic units and the number of steps necessary for the input processing based on the CDFG of the input processing, and the number of arithmetic units and the number of steps necessary for the main body processing based on the CDFG of the main body processing. And the number of computing units and the number of steps necessary for the output process are obtained based on the CDFG of the output process. Note that the schedule unit 40 schedules based on the designation of the timing described as a pragma in the behavior level description, for example.

次に、処理段階別RTL記述生成部51は、各処理段階のRTL記述を生成する(ステップS16)。具体的には、処理段階別RTL記述生成部51は、入力処理段階の処理のスケジュール結果に基づいて入力処理段階の入力回路に相当するRTL記述を生成し、本体処理段階の処理のスケジュール結果に基づいて本体処理段階の本体回路に相当するRTL記述を生成し、出力処理段階の処理のスケジュール結果に基づいて出力処理段階の出力回路に相当するRTL記述を生成する。   Next, the RTL description generating unit 51 for each processing stage generates an RTL description for each processing stage (step S16). Specifically, the RTL description generating unit 51 for each processing stage generates an RTL description corresponding to the input circuit in the input processing stage based on the processing schedule result in the input processing stage, and generates the schedule result in the main body processing stage. Based on this, an RTL description corresponding to the main circuit in the main processing stage is generated, and an RTL description corresponding to the output circuit in the output processing stage is generated based on the schedule result of the processing in the output processing stage.

次に、通信路生成部52は、各処理段階のRTL記述とスケジュール結果とに基づいて各回路間の通信路を生成する(ステップS17)。通信路生成部52が実行する通信路生成処理については、図5に示すフローチャートを用いて詳細に説明する。   Next, the communication path generation unit 52 generates a communication path between the circuits based on the RTL description and schedule result of each processing stage (step S17). The communication path generation process executed by the communication path generation unit 52 will be described in detail with reference to the flowchart shown in FIG.

まず、通信路生成部52は、回路間で転送されるデータからデータを選択する(ステップS21)。ここで、回路間で転送されるデータとは、例えば、入力回路から本体回路に供給されるデータや、本体回路から出力回路に供給されるデータである。   First, the communication path generation unit 52 selects data from data transferred between circuits (step S21). Here, the data transferred between the circuits is, for example, data supplied from the input circuit to the main circuit or data supplied from the main circuit to the output circuit.

次に、通信路生成部52は、選択したデータを転送元の回路が出力するタイミングと選択したデータを転送先の回路が入力するタイミングとが異なるか否かを判別する(ステップS22)。例えば、選択したデータが入力回路から本体回路に供給されるデータである場合、通信路生成部52は、入力回路がこのデータを出力するタイミングと本体回路がこのデータを入力するタイミングとが異なるか否かを判別する。   Next, the communication path generation unit 52 determines whether or not the timing at which the transfer source circuit outputs the selected data is different from the timing at which the transfer destination circuit inputs the selected data (step S22). For example, when the selected data is data supplied from the input circuit to the main circuit, the communication path generation unit 52 determines whether the timing at which the input circuit outputs this data is different from the timing at which the main circuit inputs this data. Determine whether or not.

ここで、各回路は、データを使用するまでは、データを入力する必要はない。このため、スケジュール部40は、データを使用するタイミングをデータを入力するタイミングとしてスケジュールするものとする。以下、データを入力するタイミングはデータを使用するタイミングと同じであるものとして説明する。   Here, each circuit does not need to input data until data is used. For this reason, the schedule part 40 shall schedule the timing which uses data as a timing which inputs data. In the following description, it is assumed that the data input timing is the same as the data use timing.

通信路生成部52は、タイミングが異なると判別した場合(ステップS22:YES)、選択したデータに対応するレジスタを用意する(ステップS23)。一方、通信路生成部52は、タイミングが異ならないと判別した場合(ステップS22:NO)、選択したデータに対応したレジスタを用意しない。   When determining that the timing is different (step S22: YES), the communication path generation unit 52 prepares a register corresponding to the selected data (step S23). On the other hand, when it is determined that the timing is not different (step S22: NO), the communication path generation unit 52 does not prepare a register corresponding to the selected data.

通信路生成部52は、タイミングが異ならないと判別した場合(ステップS22:NO)、若しくは、選択したデータに対応するレジスタの用意(ステップS23)を完了した場合、回路間で転送されるデータを全て選択したか否かを判別する(ステップS24)。   When the communication path generation unit 52 determines that the timing is not different (step S22: NO) or completes the preparation of the register corresponding to the selected data (step S23), the data transferred between the circuits is stored. It is determined whether or not all have been selected (step S24).

通信路生成部52は、データを全ては選択していないと判別した場合(ステップS24:NO)、回路間で転送されるデータのうちまだ選択していないデータを選択して同様の処理を繰り返す(ステップS21〜ステップS23)。一方、通信路生成部52は、データを全て選択したと判別した場合(ステップS24:YES)、レジスタが用意されたデータからデータを選択する(ステップS25)。   If the communication path generation unit 52 determines that not all data has been selected (step S24: NO), it selects data that has not yet been selected from among the data transferred between the circuits, and repeats the same processing. (Steps S21 to S23). On the other hand, if it is determined that all the data has been selected (step S24: YES), the communication path generation unit 52 selects the data from the data for which the register is prepared (step S25).

通信路生成部52は、レジスタが用意されたデータからデータを選択した(ステップS25)後、選択したデータの転送タイミングと転送タイミングが重複しないデータが有るか否かを判別する(ステップS26)。なお、通信路生成部52は、ステップS23で対応するレジスタが用意されたデータのうち、選択したデータを出力する回路から出力されるデータのみを対象とする。すなわち、通信路生成部52は、レジスタが用意されなかったデータや、選択したデータを出力する回路とは別の回路から出力されるデータは対象にしない。   After selecting data from the data for which the register is prepared (step S25), the communication path generation unit 52 determines whether there is data whose transfer timing does not overlap with the transfer timing of the selected data (step S26). Note that the communication path generation unit 52 targets only data output from the circuit that outputs the selected data among the data for which the corresponding register is prepared in step S23. That is, the communication path generation unit 52 does not target data for which no register is prepared or data output from a circuit other than the circuit that outputs the selected data.

通信路生成部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 path generation unit 52 is prepared corresponding to the data whose transfer timing does not overlap with the selected data. The register and the register prepared corresponding to the selected data are shared (step S27).

具体的には、例えば、通信路生成部52は、選択したデータに対応して用意されたレジスタを削除し、選択したデータと転送タイミングが重複しないデータに対応して用意されたレジスタを共有する。   Specifically, for example, the communication path generation unit 52 deletes a register prepared corresponding to the selected data, and shares the register prepared corresponding to the data whose transfer timing does not overlap with the selected data. .

通信路生成部52は、選択したデータの転送タイミングと転送タイミングが重複しないデータがないと判別した場合(ステップS26:NO)、若しくは、レジスタの共有(ステップS27)を完了した場合、レジスタが用意されたデータを全て選択したか否かを判別する(ステップS28)。   If the communication path generation unit 52 determines that there is no data whose transfer timing does not overlap with the transfer timing of the selected data (step S26: NO) or completes register sharing (step S27), a register is prepared. It is determined whether or not all the selected data has been selected (step S28).

通信路生成部52は、データを全ては選択していないと判別した場合(ステップS28:NO)、レジスタが用意されたデータのうちまだ選択していないデータを選択して同様の処理を繰り返す(ステップS25〜ステップS27)。一方、通信路生成部52は、データを全て選択したと判別した場合(ステップS28:YES)、通信路情報を生成する(ステップS29)。   If the communication path generation unit 52 determines that not all the data has been selected (step S28: NO), the communication path generation unit 52 selects data that has not yet been selected from among the data for which the registers are prepared, and repeats the same processing ( Step S25 to Step S27). On the other hand, when it is determined that all the data has been selected (step S28: YES), the communication path generation unit 52 generates communication path information (step S29).

具体的には、通信路生成部52は、回路間で転送されるデータとレジスタとを対応付けた情報を通信路情報として生成する(ステップS29)。   Specifically, the communication path generating unit 52 generates information associating data transferred between circuits and registers as communication path information (step S29).

通信路生成部52は、通信路情報の生成(ステップS29)を終了すると、通信路生成処理を終了する。   When the communication path generation unit 52 ends the generation of the communication path information (step S29), the communication path generation process ends.

通信路生成部52が通信路生成処理(ステップS17)を終了すると、全RTL記述生成部53は、処理段階別RTL記述生成部51が生成した各処理段階のRTL記述と、通信路生成部52が生成した通信路情報とに基づいて、受付部20が受け付けた動作レベル記述の全記述に対応したRTL記述を生成する(ステップS18)。   When the communication path generation unit 52 completes the communication path generation process (step S17), the RTL description generation unit 53 includes the RTL description of each processing stage generated by the RTL description generation part 51 for each processing stage, and the communication path generation unit 52. The RTL description corresponding to all the descriptions of the behavior level description received by the receiving unit 20 is generated based on the communication path information generated by (Step S18).

最後に、全RTL記述生成部53は、RTL記憶部112に全RTL記述を記憶し、動作合成処理を終了する(ステップS19)。   Finally, the all RTL description generation unit 53 stores all the RTL descriptions in the RTL storage unit 112, and ends the behavioral synthesis process (step S19).

次に、本実施形態に係る動作合成装置100が動作レベル記述に基づいてどのようにRTL記述を生成するかを具体例を挙げて説明する。   Next, how the behavioral synthesis device 100 according to the present embodiment generates the RTL description based on the behavior level description will be described with a specific example.

図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. (Line 14 to 17). In the following description, in order to facilitate understanding, local variables dat [0], dat [1], and dat [2] are converted into data dat [0], dat [1], dat [ 2].

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 state 1 to state 4 in accordance with the designation of the pragma burst_interface. In state 1, a value is read from the input terminal start, and state 1 is repeated while the value is “0”. When the value of the input terminal start becomes “1”, state 2 is executed in the next clock cycle. In states 2, 3, and 4, values are read from the input terminal in_dat, and values are stored in local variables dat [0], dat [1], and dat [2], respectively.

また、図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 state 3 to the state 7. In the state 3, the values of the first data dat [0] and the second data dat [1] are stored in x and y, respectively. In states 4-1, 4-2, 4-3-1 and 4-3-2, the process of the function gcd2 () is executed.

状態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 state 7, the return value of the function gcd2 () is stored in the local variable ret.

図8(B)に示すように、状態7から状態8にかけて出力処理がスケジュールされる。状態7において、ローカル変数retに格納された3つの入力の最大公約数が出力端子out_datから出力されるとともに、出力端子doneから「1」が出力される。次の状態8において、出力端子doneから「0」が出力される。   As shown in FIG. 8B, output processing is scheduled from state 7 to state 8. In the state 7, the greatest common divisor of the three inputs stored in the local variable ret is output from the output terminal out_dat, and “1” is output from the output terminal done. In the next state 8, “0” is output from the output terminal done.

なお、このスケジュール結果の例において、図7(A)の状態3と図7(B)の状態3とは同時に実行される。また、図8(A)の状態7と図8(B)の状態7とは同時に実行される。   In the example of the schedule result, the state 3 in FIG. 7A and the state 3 in FIG. 7B are executed simultaneously. Further, the state 7 in FIG. 8A and the state 7 in FIG. 8B are executed simultaneously.

図9に、合成された入力回路121、本体回路122、出力回路123、全体制御回路124及びレジスタ125のブロック図を例示する。動作合成装置100は、スケジュール結果を元に以下のように通信路を作成する。   FIG. 9 illustrates a block diagram of the synthesized input circuit 121, main body circuit 122, output circuit 123, overall control circuit 124, and register 125. The behavioral synthesis device 100 creates a communication path based on the schedule result as follows.

なお、入力回路121、本体回路122及び出力回路123は、処理段階別RTL記述生成部51が生成したそれぞれの処理段階のRTL記述により表現される回路である。また、全体制御回路124は、入力回路121、本体回路122及び出力回路123を制御する回路である。   The input circuit 121, the main body circuit 122, and the output circuit 123 are circuits expressed by RTL descriptions at respective processing stages generated by the processing stage-specific RTL description generating unit 51. The overall control circuit 124 is a circuit that controls the input circuit 121, the main body circuit 122, and the output circuit 123.

まず、入力回路121がデータを出力するタイミングと、本体回路122がデータを使用するタイミングとを比較し、異なる場合に通信路にレジスタを用意する。同じ場合には通信路にレジスタを用意しない。なお、前述のように、データを使用するタイミングとデータを入力するタイミングは同じタイミングであるものとして説明する。   First, the timing at which the input circuit 121 outputs data and the timing at which the main circuit 122 uses data are compared, and if they are different, a register is prepared for the communication path. In the same case, no register is prepared for the communication path. As described above, the description will be made assuming that the timing for using data and the timing for inputting data are the same timing.

具体的には、データdat[0]は、入力回路121がデータを出力するタイミングと、本体回路122がデータを使用するタイミングが異なるため、レジスタ125を用意する。データdat[1]は、入力回路121がデータを出力するタイミングと、本体回路122がデータを使用するタイミングが同じであるため、レジスタを用意しない。データdat[2]は、入力回路121がデータを出力するタイミングと、本体回路122がデータを使用するタイミングが異なるため、レジスタ125を用意する。   Specifically, for data dat [0], a register 125 is prepared because the timing at which the input circuit 121 outputs data and the timing at which the main body circuit 122 uses the data are different. Since the data dat [1] has the same timing when the input circuit 121 outputs data and the timing when the body circuit 122 uses data, no register is prepared. For data dat [2], a register 125 is prepared because the timing at which the input circuit 121 outputs data is different from the timing at which the main body circuit 122 uses data.

次に、入力回路121がデータを出力するタイミングと本体回路122がデータを使用するタイミングまでの期間を信号ごとに比較し、レジスタの共有を決定する。期間が重ならない場合にはレジスタを共有し、期間が重なる場合にはレジスタを共有しない。データdat[0]とデータdat[2]の当該タイミングは重ならないためレジスタ125を共有する。   Next, the period until the timing at which the input circuit 121 outputs data and the timing at which the main body circuit 122 uses data is compared for each signal, and register sharing is determined. If the periods do not overlap, the registers are shared, and if the periods overlap, the registers are not shared. Since the timings of data dat [0] and data dat [2] do not overlap, the register 125 is shared.

次に、入力回路121、出力回路123との間の通信路を生成する。データdat[1]にはレジスタを介さずに接続する通信路を生成する。データdat[0]、dat[2]には共有されたレジスタ125を介して接続される通信路を生成する。   Next, a communication path between the input circuit 121 and the output circuit 123 is generated. A communication path to be connected without using a register is generated for the data dat [1]. A communication path connected through the shared register 125 is generated for the data dat [0] and dat [2].

本体回路122と出力回路123との間の通信路についても同様に生成する。   A communication path between the main circuit 122 and the output circuit 123 is generated in the same manner.

最後に、生成した通信路に対応した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 Patent Document 1, the process of the body stage description cannot be started until the process of the input stage description is completed, and until the process of the body stage description is completed. Could not start processing the data output stage description.

しかしながら、上述したように本実施形態に係る動作合成装置100によれば、入力段階記述の処理の完了を待たずに本体段階記述の処理を開始でき、さらに、本体段階記述の処理の完了を待たずに出力段階記述の処理を開始できる。   However, as described above, according to the behavioral synthesis device 100 according to the present embodiment, the process of the body stage description can be started without waiting for the completion of the process of the input stage description, and further, the process of the body stage description can be waited for completion. Output stage description processing can be started.

具体的には、入力回路121が状態4を実行して全ての入力データの受け取りを完了する前に本体回路122がその処理を開始する。本体回路122と出力回路123との間でも同様である。   Specifically, before the input circuit 121 executes the state 4 and completes reception of all input data, the main body circuit 122 starts its processing. The same applies between the main body circuit 122 and the output circuit 123.

さらに、本実施形態に係る動作合成装置100によれば、半導体集積回路の動作レベル記述からレジスタ転送レベル記述を生成する際に、レジスタ回路の数を抑制できる。   Furthermore, according to the behavioral synthesis device 100 according to the present embodiment, the number of register circuits can be suppressed when generating the register transfer level description from the behavior level description of the semiconductor integrated circuit.

具体的には、入力回路121がデータを出力するタイミングと本体回路122がデータを使用するタイミングとが一致する場合、このデータを転送するための通信路はレジスタを用いずに直接接続される。このため、転送されるデータに対応して全てレジスタを用意する場合に比べ、入力回路121と本体回路122との間の通信路上のレジスタの数を減らすことができる。本体回路122と出力回路123との間の通信路上のレジスタについても同様である。   Specifically, when the timing at which the input circuit 121 outputs data coincides with the timing at which the main body circuit 122 uses data, the communication path for transferring the data is directly connected without using a register. Therefore, the number of registers on the communication path between the input circuit 121 and the main body circuit 122 can be reduced as compared with the case where all registers are prepared corresponding to the transferred data. The same applies to the register on the communication path between the main circuit 122 and the output circuit 123.

また、入力回路121がデータを出力するタイミングと本体回路122がデータを使用するタイミングまでの期間を信号ごとに比較し、期間が重ならない場合にはレジスタを共有する。このため、入力回路121と本体回路122との間の通信路上のレジスタの数をさらに減らすことができる。本体回路122と出力回路123との間の通信路上のレジスタについても同様である。   Further, the period until the timing at which the input circuit 121 outputs data and the timing at which the main circuit 122 uses data is compared for each signal, and if the periods do not overlap, the register is shared. For this reason, the number of registers on the communication path between the input circuit 121 and the main body circuit 122 can be further reduced. The same applies to the register on the communication path between the main circuit 122 and the output circuit 123.

上述の実施形態では、プラグマを用いて入出力タイミングを指定したが、他の指定方法により入出力タイミングを指定することも可能である。   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 (lines 2a, 2b, and 2c), and the eleventh line. The difference is that reading from the input terminal in_dat on the 19th line is reading from the input terminals a, b, c (13th line, 15a, 15b, 15c, 16th line). Also, the input timing is specified as a comment of the input signal, not a pragma.

また、図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 behavioral synthesis device 100 according to the present embodiment, it is possible to start the process of the body stage description without waiting for the completion of the process of the input stage description, and without waiting for the completion of the process of the body stage description. The processing of the output stage description can be started. Furthermore, according to the behavioral synthesis device 100 according to the present embodiment, the number of register circuits can be suppressed when generating the register transfer level description from the behavior level description of the semiconductor integrated circuit.

本発明の実施形態に係る動作合成装置の構成を示すブロック図である。It is a block diagram which shows the structure of the behavioral synthesis apparatus which concerns on embodiment of this invention. 動作合成装置の基本構成を示すブロック図である。It is a block diagram which shows the basic composition of a behavioral synthesis apparatus. 動作合成処理を説明するためのブロック図である。It is a block diagram for demonstrating a behavioral synthesis process. 動作合成処理を示すフローチャートである。It is a flowchart which shows a behavioral synthesis process. 図4のフローチャートに示した通信路生成処理を示すフローチャートである。It is a flowchart which shows the communication-path production | generation process shown in the flowchart of FIG. 動作レベル記述の一例を示す第1の図である。It is a 1st figure which shows an example of a behavior level description. (A)は、入力処理のスケジュール結果の一例を示す図である。(B)は、本体処理のスケジュール結果の一例を示す第1の図である。(A) is a figure showing an example of a schedule result of input processing. (B) is a 1st figure showing an example of a schedule result of main part processing. (A)は、本体処理のスケジュール結果の一例を示す第2の図である。(B)は、出力処理のスケジュール結果の一例を示す図である。(A) is a 2nd figure which shows an example of the schedule result of a main body process. (B) is a figure showing an example of a schedule result of output processing. 通信路生成処理を説明するためのブロック図である。It is a block diagram for demonstrating a communication path | route production | generation process. 動作レベル記述の一例を示す第2の図である。It is a 2nd figure which shows an example of a behavior level description. (A)は、動作レベル記述の一例を示す第3の図である。(B)は、入力信号とタイミングの関係を表した図である。(A) is a 3rd figure which shows an example of a behavior level description. (B) is a diagram showing the relationship between the input signal and the timing.

符号の説明Explanation of symbols

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 hard disk device 15 input device 16 display device 20 receiving unit 30 dividing unit 35 CDFG generating unit 40 scheduling unit 50 generating unit 51 RTL description generating unit by processing stage 52 communication path generating unit 53 all RTL description generating unit 100 behavioral synthesis device 110 storage Device 111 Behavior Level Description Storage Unit 112 RTL Description Storage Unit

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.
請求項1に記載の動作合成装置であって、
前記生成部は、当該配置されたレジスタ回路の入出力のタイミングが重複しないレジスタ回路が共有されるように再配置する、
ことを特徴とする動作合成装置。
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.
請求項1又は2に記載の動作合成装置であって、
前記スケジュール部は、当該動作レベル記述に含まれる所定のプラグマに基づいてスケジュールする、
ことを特徴とする動作合成装置。
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.
請求項1又は2に記載の動作合成装置であって、
前記スケジュール部は、当該動作レベル記述に含まれる所定のコメントに基づいてスケジュールする、
ことを特徴とする動作合成装置。
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.
請求項1又は2に記載の動作合成装置であって、
前記受付部は、当該動作レベル記述に対する付加情報をさらに受け付け、
前記スケジュール部は、当該付加情報に基づいてスケジュールする、
ことを特徴とする動作合成装置。
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.
JP2008066533A 2008-03-14 2008-03-14 Behavioral synthesis apparatus, behavioral synthesis method, and program Active JP5211776B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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