JP4276911B2 - Arrangement method and arrangement program for circuit elements of integrated circuit - Google Patents

Arrangement method and arrangement program for circuit elements of integrated circuit Download PDF

Info

Publication number
JP4276911B2
JP4276911B2 JP2003320721A JP2003320721A JP4276911B2 JP 4276911 B2 JP4276911 B2 JP 4276911B2 JP 2003320721 A JP2003320721 A JP 2003320721A JP 2003320721 A JP2003320721 A JP 2003320721A JP 4276911 B2 JP4276911 B2 JP 4276911B2
Authority
JP
Japan
Prior art keywords
circuit
elements
circuit element
actual
circuit elements
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.)
Expired - Lifetime
Application number
JP2003320721A
Other languages
Japanese (ja)
Other versions
JP2005092276A (en
Inventor
スワレズ アンソニー
藤田  勉
Original Assignee
アイピーフレックス株式会社
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 アイピーフレックス株式会社 filed Critical アイピーフレックス株式会社
Priority to JP2003320721A priority Critical patent/JP4276911B2/en
Publication of JP2005092276A publication Critical patent/JP2005092276A/en
Application granted granted Critical
Publication of JP4276911B2 publication Critical patent/JP4276911B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

本発明は、並列処理を実現する集積回路の設計に関し、より詳細には、当該集積回路の回路要素の配置および回路要素間の接続に関する。   The present invention relates to the design of an integrated circuit that implements parallel processing, and more particularly to the placement of circuit elements of the integrated circuit and the connection between circuit elements.

LSIやASICなどの集積回路を設計するため、いくつかの言語が用いられている。C言語などの抽象度の高い高級言語と称されるものは、手続的レベルの言語であり、1命令ごとにいかに処理全体が順番に実行されていくかを示すのに適している。このレベルの記述は、一般的にハードウェア依存性がなく、適当なコンピュータで受け入れられるアプリケーションプログラムであり、LSIの仕様、または、LSIにおいて実行する処理全体を一般的に記述するために用いられる。   Several languages are used to design integrated circuits such as LSIs and ASICs. What is called a high-level language with a high degree of abstraction such as C language is a procedural level language, and is suitable for showing how the entire processing is executed in order for each instruction. This level of description is generally an application program that has no hardware dependency and is accepted by an appropriate computer, and is used to generally describe the specifications of the LSI or the entire process executed in the LSI.

また、Verilog−HDLあるいはVHDLなどのハードウェア記述言語(HDL)は、RTLと称されることもありレジスタ−トランジスタレベルで、特定のハードウェアにより特定の命令が実行されているデータパスやパスを駆動するシーケンスを記述するために用いられる。   Also, hardware description language (HDL) such as Verilog-HDL or VHDL is sometimes referred to as RTL, and it is a register-transistor level, and a data path or path in which a specific instruction is executed by specific hardware. Used to describe the driving sequence.

アルゴリズムは、問題を解くために明確に規定され、順序付けられた有限個の規則からなる集合として定義されており、従来、並列処理は、アルゴリズムにより記述された処理全体(アプリケーション)を順番に進める上で、独立して実行可能な部分(処理)を並列に実行し、処理時間を短縮する目的で用いられる。予め並列処理に適したハードウェアリソースを備えたシステムでアプリケーションを実行する場合は、コンパイラなどにより並列処理ができる部分は並列化され、実行速度を向上することがトライされる。   An algorithm is defined as a set of a finite number of rules that are clearly defined and ordered to solve a problem. Conventionally, parallel processing is a process that sequentially advances the entire processing (application) described by the algorithm. Thus, the independently executable portions (processes) are executed in parallel to reduce the processing time. When an application is executed in advance by a system provided with hardware resources suitable for parallel processing, a part that can be processed in parallel by a compiler or the like is parallelized to try to improve the execution speed.

また、特定のアプリケーションの実行を目的としたハードウェアを設計する場合は、独立して実行できる部分を並列に処理するように回路を設計して処理時間の短縮を目指す。特許文献1に記載された技術は、並列処理および同期通信等により実行時間が定数でない処理を記述可能なHDLにより回路を設計する方法である。同期通信では、2つのファンクションを並行に実行する際に、それらに含まれるプロセスを送信側が準備できるまで受信側が待ち、通信が完了した後にプロセスが進行する。したがって、これらのファンクションは並列に記述されても独立して実行されず、実行時間が可変の処理となる。一方、同期通信を行わない処理は並列処理として独立して行われる。これらは、ソース言語で与えられた処理全体の内、ソース上では並列に実行するように記載された処理を、ハードウェア設計において並列に、あるいは同期通信を用いて実行して実行サイクル数を短縮することを目的とした技術である。
特開平10−116302号公報
Also, when designing hardware for the purpose of executing a specific application, the circuit is designed so that parts that can be executed independently are processed in parallel to reduce the processing time. The technique described in Patent Document 1 is a method of designing a circuit by HDL that can describe a process whose execution time is not constant by parallel processing, synchronous communication, or the like. In synchronous communication, when two functions are executed in parallel, the reception side waits until the transmission side can prepare the processes included therein, and the process proceeds after the communication is completed. Therefore, even if these functions are described in parallel, they are not executed independently, and the execution time is variable. On the other hand, processing that does not perform synchronous communication is performed independently as parallel processing. These reduce the number of execution cycles by executing, in the hardware design, parallel processing in the hardware design or using synchronous communication in the entire processing given in the source language. It is a technology that aims to do.
JP-A-10-116302

近年、LSIを構成する回路の一部をソフトウェアにより再構成できるハードウェアが提供されている。さらに、国際公開WO03/007155号には、再構成する基本単位を、ゲートレベルからALUなどのある程度の規模の演算機能を備えた演算ユニットにして、複数種類の演算ユニットをマトリクス状に配置し、再構成に要する時間を短縮することが開示されている。複数の演算ユニットがマトリクス状に配置されたシステムは、それぞれの演算ユニットが並列に処理を実行できるので、膨大な数の並列処理に適したハードウェアリソースを備えたシステムと捉えることが可能である。   In recent years, hardware capable of reconfiguring a part of a circuit constituting an LSI by software has been provided. Furthermore, in International Publication No. WO 03/007155, the basic unit to be reconfigured is an arithmetic unit having an arithmetic function of a certain scale from gate level to ALU, and a plurality of types of arithmetic units are arranged in a matrix, It is disclosed to reduce the time required for reconfiguration. A system in which a plurality of arithmetic units are arranged in a matrix can be regarded as a system having a large number of hardware resources suitable for parallel processing because each arithmetic unit can execute processing in parallel. .

しかしながら、この種の並列処理に適した集積回路を設計するのは容易ではない。C言語などのソフトウェア設計に適した高級言語は、アルゴリズムを、それに含まれる規則を時間的な順番に処理することを前提としている。したがって、プログラムカウンタを進めて命令がシーケンシャルに実行されるように構成されており、シーケンシャルではない並列という概念を導入することは難しい。命令を並列的に記述することが許容されたとしても、それは、時間的な順番に齟齬をきたさない範囲で、独立して実行できる処理を空間的に並列に広げて実行できる程度であり、並列処理に適したハードウェアリソースを積極的に使用することはできない。さらに、高級言語であれば、ハードウェアに依存しない命令が記述されるために、並列に記述した命令がハードウェアで実際に開始されたり、終了したりするタイミングは不明である。したがって、処理できる範囲を空間的に広げても、設計者はハードウェア上で実際にどのように並列処理が実行されるのかは定義できないし、把握することもできない。   However, it is not easy to design an integrated circuit suitable for this kind of parallel processing. A high-level language suitable for software design, such as C language, is premised on processing an algorithm in the order of time. Therefore, the program counter is advanced so that instructions are executed sequentially, and it is difficult to introduce the concept of non-sequential parallelism. Even if it is allowed to describe instructions in parallel, it is only possible to extend the processing that can be executed independently in parallel in a range that does not cause any hesitation in the temporal order. Hardware resources suitable for processing cannot be actively used. Furthermore, since a high-level language describes instructions that do not depend on hardware, the timing at which instructions written in parallel are actually started or ended in hardware is unknown. Therefore, even if the processing range is expanded spatially, the designer cannot define or grasp how parallel processing is actually executed on hardware.

HDLは独立して動作する回路構成を記述するので、本来、並列処理を記述するものである。また、ハードウェアが明確になるので、処理が実行されるタイミングを調べ、或いは、調整できる。しかしながら、HDLは、集積回路やその回路要素の十分な知識が必要であり、かつ、HDLで記述された事項をみて、回路構成を把握することが実質的に不可能であるという問題もある。上記知識には、ハードウェアの設計規則なども含まれる。   Since HDL describes a circuit configuration that operates independently, it essentially describes parallel processing. In addition, since the hardware becomes clear, the timing at which the process is executed can be checked or adjusted. However, HDL requires a sufficient knowledge of the integrated circuit and its circuit elements, and there is a problem that it is substantially impossible to grasp the circuit configuration by looking at the items described in HDL. The knowledge includes hardware design rules and the like.

本発明は、集積回路や回路要素に関する専門知識がない場合であっても、集積回路、特に、国際公開WO03/007155号に開示された集積回路を設計することができる、回路要素の配置方法および配置プログラムを提供することを目的とする。   The present invention provides an arrangement method of circuit elements, which can design an integrated circuit, in particular, an integrated circuit disclosed in International Publication No. WO 03/007155, even if there is no expertise related to the integrated circuit and circuit elements. An object is to provide a placement program.

本発明の目的は、集積回路を構成する回路要素の視覚的シンボルとDDDLとを関連付けて格納した定義ファイルから選択して配置された、視覚的シンボルと、当該視覚的シンボル間に設定された接続とに基づいて、当該回路要素を、集積回路上にあらかじめ配置された、対応する特定の機能を有する実際の回路要素に割り当てるステップと、前記回路要素のレイテンシーにしたがって、割り当てられた回路要素間に、前記集積回路上に配置された遅延機能を有する回路要素を介在させるステップと、前記割り当てられ、或いは、介在された回路要素を記述したDDDLを、前記集積回路の回路要素の配置情報としてメモリに記憶するステップとを備えたことを特徴とする回路要素の配置方法により達成される。   An object of the present invention is to provide a visual symbol and a connection established between the visual symbols, which are arranged by selecting from a definition file in which visual symbols of circuit elements constituting an integrated circuit and DDDL are stored in association with each other. And assigning the circuit element to an actual circuit element that is pre-arranged on the integrated circuit and having a corresponding specific function, and according to the latency of the circuit element, between the assigned circuit elements A step of interposing a circuit element having a delay function arranged on the integrated circuit, and a DDDL describing the assigned or intervening circuit element in a memory as arrangement information of the circuit element of the integrated circuit And the step of storing the circuit element.

好ましい実施態様においては、前記集積回路において、一定の回路要素群を含むセグメント間では、当該回路要素の接続に遅延機能を有する、実際の回路要素を介在させるステップを備えている。   In a preferred embodiment, the integrated circuit includes a step of interposing an actual circuit element having a delay function in the connection of the circuit element between segments including a certain group of circuit elements.

また、好ましい実施態様においては、前記遅延機能を有する、実際の回路要素を介在させる際に、当該遅延機能を有する、実際の回路要素の少なくとも最大レイテンシーにしたがって、少なくとも1以上の、実際の回路要素を割り当てるステップを備えている。
さらに、好ましい実施態様においては、前記遅延機能を有する、実際の回路要素を介在させる際に、当該遅延機能を有する、実際の回路要素の入力ポート数および出力ポート数を参照して、単一の、実際の回路要素に割り当てるステップを備えている。
Further, in a preferred embodiment, when an actual circuit element having the delay function is interposed, at least one or more actual circuit elements having the delay function according to at least the maximum latency of the actual circuit element The step of assigning is provided.
Furthermore, in a preferred embodiment, when an actual circuit element having the delay function is interposed, the number of input ports and the number of output ports of the actual circuit element having the delay function is referred to as a single unit. And assigning to actual circuit elements.

別の好ましい実施態様においては、ユーザにより選択された特定の回路要素間では、レイテンシーにかかわらず、遅延機能を有する、実際の回路要素を介在させないように構成される。   In another preferred embodiment, it is configured not to intervene an actual circuit element having a delay function between specific circuit elements selected by the user regardless of the latency.

さらに、前記回路要素間に、前記回路要素の入力ポートを指定するための、実際のマルチプレクサを介在させるステップを備えていても良い。   Further, a step of interposing an actual multiplexer for designating an input port of the circuit element may be provided between the circuit elements.

また、本発明の目的は、集積回路を構成する回路要素の視覚的シンボルとDDDLとを関連付けて格納した定義ファイルから選択して配置された、視覚的シンボルと、当該視覚的シンボル間に設定された接続とに基づいて、当該回路要素を、集積回路上にあらかじめ配置された、対応する特定の機能を有する実際の回路要素に割り当てるステップと、前記回路要素のレイテンシーにしたがって、割り当てられた回路要素間に、前記集積回路上に配置された遅延機能を有する回路要素を介在させるステップと、前記割り当てられ、或いは、介在された回路要素を記述したDDDLを、前記集積回路の回路要素の配置情報としてメモリに記憶するステップとを、コンピュータに実行させることを特徴とする回路要素の配置プログラムによっても達成される。   An object of the present invention is set between a visual symbol selected from a definition file in which a visual symbol of a circuit element constituting an integrated circuit and a DDDL are stored in association with each other, and the visual symbol. And assigning the circuit element to an actual circuit element having a specific function corresponding to the pre-arranged circuit element on the integrated circuit, and the assigned circuit element according to the latency of the circuit element. Between the step of interposing a circuit element having a delay function arranged on the integrated circuit and the DDDL describing the assigned or intervening circuit element as arrangement information of the circuit element of the integrated circuit The step of storing in the memory is also achieved by a circuit element arrangement program characterized in that the computer executes the step. It is.

本発明によれば、集積回路や回路要素に関する専門知識がない場合であっても、集積回路を設計することができる、回路要素の配置方法および配置プログラムを提供することが可能となる。   According to the present invention, it is possible to provide a circuit element arrangement method and an arrangement program capable of designing an integrated circuit even when there is no specialized knowledge about the integrated circuit and circuit elements.

以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本発明の実施の形態にかかる集積回路の回路要素の配置システムの概略を示すブロックダイヤグラムである。図1に示すように、DDDL(Device Dependent Description Language)により記述された種々の回路要素(エレメント)が記憶されたハードウェアライブラリ10と、ユーザの入力装置の操作にしたがって、ハードウェアライブラリ10から読み出された回路要素を、視覚的なシンボル(本実施の形態では、マッピング構成と称する)として表示する表示制御部12と、ユーザにより配置されたマッピング構成に基づいて、DDDLにより記述されたハードウェア構成14を生成するためのコンパイラ16と、コンパイラ16により生成された、実際の集積回路に対応するDDDLで記述されたデータを記憶する記憶部18とを有している。   Embodiments of the present invention will be described below with reference to the accompanying drawings. FIG. 1 is a block diagram showing an outline of an arrangement system of circuit elements of an integrated circuit according to an embodiment of the present invention. As shown in FIG. 1, a hardware library 10 in which various circuit elements (elements) described in DDDL (Device Dependent Description Language) are stored, and read from the hardware library 10 according to an operation of a user input device. Display control unit 12 that displays the output circuit elements as visual symbols (referred to as a mapping configuration in the present embodiment), and hardware described in DDDL based on the mapping configuration arranged by the user A compiler 16 for generating the configuration 14 and a storage unit 18 that stores data described by the DDDL and generated by the compiler 16 and corresponding to an actual integrated circuit.

表示制御部12およびコンパイラ16は、コンピュータにより実現され、必要なプログラムが起動することにより、当該コンピュータが、上記表示制御部およびコンパイラとして機能する。上記プログラムは、CD−ROMなどの記憶媒体から読み出され、或いは、ネットワークを介してダウンロードされ、コンピュータの記憶装置に記憶される。
本実施の形態にかかる回路要素の配置システムによる処理に先立って、本実施の形態を利用するのに好適な並列処理システムについて説明する。この並列処理システムは、エレメントがそれぞれ同時に別個の処理を実現する集積回路に相当する。
The display control unit 12 and the compiler 16 are realized by a computer, and when the necessary program is started, the computer functions as the display control unit and the compiler. The program is read from a storage medium such as a CD-ROM or downloaded via a network and stored in a storage device of a computer.
Prior to processing by the circuit element arrangement system according to this exemplary embodiment, a parallel processing system suitable for using this exemplary embodiment will be described. This parallel processing system corresponds to an integrated circuit in which each element simultaneously performs separate processing.

図2は、ハードウェアライブラリ10の回路要素を利用した並列処理システムの一例を示す図である。この並列処理システムは、本出願人の国際出願公開公報WO03/007155に開示されている再構成可能なプロセッサ(RP、Reconfigurable Processor)である。このRP20は、プログラムなどによって与えられる命令セットに基づきエラー処理を含めた汎用的な処理を行う汎用な構成の基本プロセッサ21と、マトリクス状に配置された演算あるいは論理エレメントにより特定のデータ処理に適合したデータフローあるいは擬似データフローがバリアブルに形成されるAAP(Adoptive Application Processor)部あるいはAAPユニット(以後、「AAP」と称する)50と、このAAP50からの割り込み処理を制御する割り込み制御部22と、AAP50に作動用のクロック信号を供給するクロック発生部28と、このRP20で提供可能な演算回路のフレキシビリティーをさらに向上するためのFPGA部27と、外部に対するデータの入出力を制御するバス制御部29とを備えている。基本プロセッサ21とAAP50は、これらの間でデータを交換可能なデータバス24aと、基本プロセッサ21からAAP50の構成および動作を制御するための命令バス24bとにより接続されている。また、AAP50から割り込み制御部22に信号線25を介して割り込み信号が供給され、AAP50における処理が終了し、また、処理中にエラーが発生したときはAAP50の状態を基本プロセッサ21にフィードバックできるようになっている。   FIG. 2 is a diagram illustrating an example of a parallel processing system that uses circuit elements of the hardware library 10. This parallel processing system is a reconfigurable processor (RP) disclosed in the applicant's international application publication WO 03/007155. The RP 20 is adapted to specific data processing by a general-purpose basic processor 21 that performs general-purpose processing including error processing based on an instruction set given by a program and the like, and operations or logic elements arranged in a matrix. An AAP (Adoptive Application Processor) unit or AAP unit (hereinafter referred to as “AAP”) 50 in which the data flow or pseudo data flow is formed in a variable manner, an interrupt control unit 22 that controls interrupt processing from the AAP 50, A clock generation unit 28 for supplying an operating clock signal to the AAP 50, an FPGA unit 27 for further improving the flexibility of an arithmetic circuit that can be provided by the RP 20, and a bus control for controlling input / output of data to / from the outside Part 29. The basic processor 21 and the AAP 50 are connected by a data bus 24a capable of exchanging data between them and an instruction bus 24b for controlling the configuration and operation of the AAP 50 from the basic processor 21. Further, when an interrupt signal is supplied from the AAP 50 to the interrupt control unit 22 via the signal line 25, the processing in the AAP 50 is completed, and when an error occurs during the processing, the state of the AAP 50 can be fed back to the basic processor 21. It has become.

AAP50とFPGA27との間もデータバス26により接続されており、AAP50からFPGA27にデータを供給して処理を行い、その結果をAAP50に返せるようになっている。さらに、AAP50は、ロードバス23aおよびストアバス23bによってバス制御ユニット29と接続されており、RP20の外部のデータバスとの間でデータを交換できるようになっている。   The AAP 50 and the FPGA 27 are also connected by the data bus 26, so that data can be supplied from the AAP 50 to the FPGA 27 for processing, and the result can be returned to the AAP 50. Further, the AAP 50 is connected to the bus control unit 29 by a load bus 23a and a store bus 23b, and can exchange data with a data bus outside the RP 20.

図3にAAPユニット50の概要を示してある。AAPユニット50は、複数の算術および/または論理演算を行う論理ブロック、論理ユニットあるいは論理要素(以降ではエレメント)がマトリクス状に配置されたマトリクス部51と、そのマトリクス部51に対してデータを供給する入力バッファ52と、マトリクス部51から出力されるデータを格納する出力バッファ53を備えている。これら入力バッファ52および出力バッファ53は、それぞれ4つの小容量の入力メモリにより構成されており、アクセス調停ユニット54を介して入出力バス23aおよび23bに接続される。   An outline of the AAP unit 50 is shown in FIG. The AAP unit 50 supplies a logical block, a logical unit, or a logical unit or a logical element (hereinafter referred to as an element) that performs a plurality of arithmetic and / or logical operations in a matrix, and supplies data to the matrix unit 51. And an output buffer 53 for storing data output from the matrix section 51. Each of the input buffer 52 and the output buffer 53 is composed of four small-capacity input memories, and is connected to the input / output buses 23a and 23b via the access arbitration unit 54.

マトリクス部51が、データパスあるいはデータフローを再構成可能な並列処理システムの中心となる集積回路区画であり、複数種類の演算ユニットであるエレメント55が縦方向に、たとえば、4つのラインを構成するようにアレイ状あるいはマトリクス状に配置されている。このマトリクス部51は、これらのエレメント55の間に配置された、横方向に延びた行配線群57と、縦方向に延びた列配線群58とを備えている。列配線群58は、列方向に並んだ演算ユニット55の左右に分かれて配置された配線群58xおよび58yが一対になっている。行配線群57および列配線群58との交点にはスイッチングユニット59が配置されており、行配線群57の任意のチャンネルを、列配線群58の任意のチャンネルに切り替えて接続できるようになっている。各々のスイッチングユニット59は、設定を記憶するコンフィグレイションRAMを備えており、プロセッサ部21から供給されるデータによりコンフィグレイションRAMの内容を書き換えることにより、行配線群57と列配線群58の接続を動的に任意に制御できる。このため、このマトリクス部51においては、複数のエレメント55の全部あるいは一部が配線群57および58により接続されて形成されるデータフローの構成を任意に動的に変更することができる。   The matrix unit 51 is an integrated circuit section that is the center of a parallel processing system that can reconfigure a data path or data flow, and elements 55 that are a plurality of types of arithmetic units form, for example, four lines in the vertical direction. Thus, they are arranged in an array or a matrix. The matrix section 51 includes a row wiring group 57 extending between the elements 55 and a column wiring group 58 extending in the vertical direction, which are disposed between the elements 55. The column wiring group 58 includes a pair of wiring groups 58x and 58y arranged separately on the left and right sides of the arithmetic units 55 arranged in the column direction. A switching unit 59 is disposed at the intersection of the row wiring group 57 and the column wiring group 58, and an arbitrary channel of the row wiring group 57 can be switched and connected to an arbitrary channel of the column wiring group 58. Yes. Each switching unit 59 includes a configuration RAM for storing settings, and rewrites the contents of the configuration RAM with data supplied from the processor unit 21 to connect the row wiring group 57 and the column wiring group 58. Can be arbitrarily controlled dynamically. For this reason, in this matrix portion 51, the configuration of the data flow formed by connecting all or a part of the plurality of elements 55 by the wiring groups 57 and 58 can be dynamically changed arbitrarily.

RP20においては、エレメント55が並列に動作する要素であり、各種類のエレメント55の機能、遅延、入出力データの条件などの情報がハードウェアライブラリ3に格納されている。エレメント55は、クロック発生部28から供給されるクロック信号に同期して稼動するので、ハードウェアライブラリ3には各種類のエレメント毎に、入力データを処理して出力するために消費されるサイクル数が遅延情報として格納されている。さらに、各種類のエレメント55の配置と、配線群57および58、スイッチングユニット59の情報もハードウェアライブラリ3に格納されており、コンパイラ2からは、DIDL1に定義されたアルゴリズムを実現するための、エレメント55の接続情報(データフロー構成)がハードウェア構成情報(DDDL)4として出力される。このため、DDDL4に従ってエレメント55が配線群57および58で接続されるようにマトリクス部51を制御することにより、DIDL1に定義されたアルゴリズムをマトリクス部51にエレメント55により空間的に割り付けることが可能となる。   In the RP 20, the element 55 is an element that operates in parallel, and information such as the function, delay, and input / output data conditions of each type of element 55 is stored in the hardware library 3. Since the element 55 operates in synchronization with the clock signal supplied from the clock generator 28, the number of cycles consumed for processing and outputting input data for each type of element in the hardware library 3 Is stored as delay information. Further, the arrangement of each type of element 55, information on the wiring groups 57 and 58, and the switching unit 59 are also stored in the hardware library 3. The compiler 2 implements an algorithm defined in DIDL1. The connection information (data flow configuration) of the element 55 is output as hardware configuration information (DDDL) 4. Therefore, by controlling the matrix unit 51 so that the element 55 is connected by the wiring groups 57 and 58 according to DDDL4, the algorithm defined in DIDL1 can be spatially allocated to the matrix unit 51 by the element 55. Become.

各エレメント55は、1組の列配線群58xおよび58yのそれぞれから入力データを選択するための1組のセレクタ54と、選択された入力データに特定の算術および/または論理演算処理を施し、出力データとして行配線群57に出力する内部データパス部56を備えている。そして、本例のマトリクス部51には、各行毎に異なる処理を行うための内部データパス部56を備えた種類の異なるエレメント55が並んで配置されている。例えば、第1行目に配列されたエレメント55は、入力バッファ52からのデータを受信する処理に適したデータパス部(LD)56iを備えている。第2行目に配置されたエレメント55aは、入力バッファ52に外部デバイスからデータを書き込むためのエレメントであり、ブロックロードするためのアドレスを発生するのに適した内部データパスを具備するデータパス部(BLA)56aを備えている。マトリクス51を構成する全てのエレメント55は、内部データパスの構成あるいは初期値などがある程度変更できるようになっており、その設定は各々のエレメント55のコンフィグレイションRAMに基本プロセッサ21から制御信号24bにより指示される。   Each element 55 outputs a set of selectors 54 for selecting input data from each of a set of column wiring groups 58x and 58y, and performs a specific arithmetic and / or logical operation process on the selected input data, and outputs it. An internal data path unit 56 that outputs data to the row wiring group 57 is provided. In the matrix unit 51 of this example, different types of elements 55 including an internal data path unit 56 for performing different processing for each row are arranged side by side. For example, the elements 55 arranged in the first row include a data path unit (LD) 56 i suitable for processing for receiving data from the input buffer 52. The element 55a arranged in the second row is an element for writing data from an external device to the input buffer 52, and has a data path unit having an internal data path suitable for generating an address for block loading. (BLA) 56a. All elements 55 constituting the matrix 51 can change the configuration or initial value of the internal data path to some extent, and the setting is set in the configuration RAM of each element 55 by the control signal 24b from the basic processor 21. Instructed.

第3行目に配置されたエレメント55bは、入力RAMの各々より所望のデータをマトリクス部51へロードする入力読み出しアドレスを発生するデータパス部(LDA)56bを備えている。第4行目および第5行目に配列されたエレメント55cは、算術演算および論理演算に適したデータパス部(SMA)56cを備えている。このデータパス部56cは、たとえば、シフト回路、マスク回路、論理演算ユニットALUおよびALUで処理する演算をセットするコンフィグレイションRAMを備えている。したがって、プロセッサ21が書き込んだ命令により、マトリクス部51へ入力されたデータを加算あるいは減算したり、比較したり、論理和あるいは論理積を取ったりすることができ、その結果がエレメント55の出力信号として出力される。   The element 55b arranged in the third row includes a data path unit (LDA) 56b that generates an input read address for loading desired data from each of the input RAMs to the matrix unit 51. The elements 55c arranged in the fourth row and the fifth row include a data path unit (SMA) 56c suitable for arithmetic operations and logical operations. The data path unit 56c includes, for example, a configuration RAM for setting operations to be processed by a shift circuit, a mask circuit, logical operation units ALU and ALU. Therefore, the data input to the matrix unit 51 can be added or subtracted, compared, or logical sum or logical product can be obtained by the instruction written by the processor 21, and the result is the output signal of the element 55. Is output as

その下の行に配列されたエレメント55dは、データが伝送されるタイミングを遅延する処理に適したデータパス部(DEL)56dを備えている。その下の行に配列されたエレメント55eは、乗算器などを含む乗算処理に適したデータパス部(MUL)56eを備えている。さらに異なるエレメント55fとしては、マトリクス部51の外部に用意されたFPGA27とのインターフェイス用のデータパス部56fを備えたエレメントも用意されており、データをいったんFPGA27に供給して処理した後、再びマトリクス部51に戻して処理を継続することができる。   The elements 55d arranged in the lower row include a data path unit (DEL) 56d suitable for processing for delaying the timing at which data is transmitted. The elements 55e arranged in the lower row include a data path unit (MUL) 56e suitable for multiplication processing including a multiplier and the like. As another element 55f, an element having a data path unit 56f for interfacing with the FPGA 27 prepared outside the matrix unit 51 is also prepared. After the data is once supplied to the FPGA 27 and processed, the matrix is again processed. The processing can be continued by returning to the unit 51.

これらの再構成可能な集積回路区画51のさらに下方には、ストア用のアドレスを発生するのに適したデータパス部56gおよび56hをそれぞれ備えたエレメント55gおよび55hが配置されている。これらは、出力バッファ53を介して外部デバイスにデータを出力するための制御を行う。そして、最下段には、ストア用にデータを出力するのに適したデータパス部(ST)56sを備えたエレメント55が配列されている。したがって、マトリクス部51を用いて、エレメント55の接続を動的に変更することにより、様々なデータフローをフレキシブルに構成でき、様々な処理を行うことができる。   Further below these reconfigurable integrated circuit sections 51 are arranged elements 55g and 55h respectively having data path portions 56g and 56h suitable for generating an address for storing. These perform control for outputting data to an external device via the output buffer 53. In the lowermost row, an element 55 having a data path unit (ST) 56s suitable for outputting data for storage is arranged. Therefore, by dynamically changing the connection of the elements 55 using the matrix unit 51, various data flows can be configured flexibly and various processes can be performed.

さらに、本実施の形態においては、APP50においては、それぞれが一群のエレメントを含む複数のセグメントを備えた構造となっている。図15〜図17は、本実施の形態にかかるRP中のAAP50の部分を示す。図15〜図17は、それぞれ、AAP50のうち、セグメント番号「0」、「1」および「2」を有するセグメント1501〜1701を示す。また、乗算処理に適したエレメントについて、「MUL」と表示する代わりに「SMAM」と表示している。以下、乗算処理に適したエレメントについては、「SMAMエレメント」と称する。図15〜図17に示すように、セグメント間には、データが伝送されるタイミングを遅延させるのに適したエレメント(以下、「DELエレメント」と称する)が配置され、セグメントを越えたエレメントの接続には、DELエレメントを介在させるようになっている。セグメント間の接続にDELエレメントを介するほか、APP50に実際に回路要素を配置するには一定の設計規則が設けられている。したがって、コンパイラ16は、回路要素の配置および接続において、設計規則にしたがって後述する種々の処理を実行する。   Further, in the present embodiment, the APP 50 has a structure including a plurality of segments each including a group of elements. FIGS. 15-17 shows the part of AAP50 in RP concerning this Embodiment. FIGS. 15 to 17 show segments 1501 to 1701 having segment numbers “0”, “1”, and “2” in the AAP 50, respectively. In addition, instead of displaying “MUL”, “SMAM” is displayed for elements suitable for multiplication processing. Hereinafter, elements suitable for multiplication processing are referred to as “SMAM elements”. As shown in FIGS. 15 to 17, elements suitable for delaying the timing of data transmission (hereinafter referred to as “DEL elements”) are arranged between the segments, and the elements are connected across the segments. In this case, a DEL element is interposed. In addition to using DEL elements for connection between segments, certain design rules are provided for actually arranging circuit elements in the APP 50. Therefore, the compiler 16 executes various processes to be described later according to the design rules in the arrangement and connection of the circuit elements.

ユーザは、DDDLにて記述されたエレメントを視覚的に表したマッピング構成を、入力装置を操作して、ハードウェアライブラリ10から読み出して、表示装置の画面中のレイアウト領域に配置する。ハードウェアライブラリ10には、上述したAAP50を構成するエレメント(図3における、符号56a〜56i、56sに相当する)の視覚的シンボル(マッピング構成)が記憶されている。   The user operates the input device to read the mapping configuration visually representing the elements described in DDDL, and arranges the mapping configuration in the layout area in the screen of the display device. The hardware library 10 stores visual symbols (mapping configurations) of elements (corresponding to reference numerals 56a to 56i and 56s in FIG. 3) constituting the AAP 50 described above.

図18は、本実施の形態にかかるエレメントを記述するDDDLの構造を示す図である。図18(a)に示すように、DDDLにおいては、回路要素の種別などを一意的に特定するPHID、プロセッサID、後述する配置位置とともに回路要素の実際のAPP上の位置を特定するUQID、当該UQIDを有する回路要素の配置位置、回路要素の接続情報、および、デバイスパラメータからなる。   FIG. 18 is a diagram showing a structure of a DDDL describing elements according to the present embodiment. As shown in FIG. 18A, in the DDDL, a PHID that uniquely identifies a type of a circuit element, a processor ID, a UID that identifies an actual position of the circuit element on the APP together with an arrangement position described later, It consists of an arrangement position of a circuit element having UID, connection information of the circuit element, and device parameters.

図18(b)は、接続情報の一例を示す図である。図18(b)の例では、「UQID=100」を有し、配置位置が特定されていない(つまり、(セグメント番号,カラム番号,ロウ番号)=(−1,−1,−1)の)SMAエレメント(算術演算および論理演算に適したエレメント)について、その入力ポート#0に入力を要さないが、第2の入力ポート入力ポート#1には、「UQID=102」のエレメントの出力ポート#0からの入力を得ることが示されている。このように、DDDLにおいては、エレメントの各入力ポートに接続される、UQIDを有するエレメントの出力ポートを規定しておくことで、エレメント間の接続を定義することができる。ハードウェアライブラリ10には、上述した構造のDDDLにより各エレメントが記述されているが、回路の配置位置や接続情報の値は不定となっている。   FIG. 18B is a diagram illustrating an example of connection information. In the example of FIG. 18B, “UQID = 100” is included and the arrangement position is not specified (that is, (segment number, column number, row number) = (− 1, −1, −1). ) For the SMA element (element suitable for arithmetic and logical operations), input is not required for the input port # 0, but the output of the element “UQID = 102” is output to the second input port input port # 1. It shows getting input from port # 0. Thus, in DDDL, the connection between elements can be defined by prescribing the output port of an element having a UCID that is connected to each input port of the element. In the hardware library 10, each element is described by DDDL having the above-described structure, but the circuit arrangement position and the value of connection information are indefinite.

ユーザによる、定義ファイル中のエレメントの選択およびレイアウト領域の配置においては、少なくともエレメントの種別およびエレメント間の接続を定義すればよい。すなわち、所望のエレメントを、レイアウト領域に配置し、かつ、一方のエレメントの出力ポートと他方のエレメントの入力ポートとを接続すればよい。無論、フィードバックの場合、単一のエレメントの出力ポートが入力ポートと接続される場合もある。エレメント間の接続、つまり、一方のエレメントの出力ポートと他方のエレメントの入力ポートがユーザの入力により接続されることにより、コンパイラ16は、DDDLにおける接続情報に、必要な値を与える。   When the user selects an element in the definition file and arranges the layout area, at least the element type and the connection between the elements may be defined. That is, a desired element may be arranged in the layout area, and the output port of one element may be connected to the input port of the other element. Of course, in the case of feedback, the output port of a single element may be connected to the input port. The connection between elements, that is, the output port of one element and the input port of the other element are connected by user input, so that the compiler 16 gives a necessary value to connection information in DDDL.

図4(a)は、もっとも単純なマッピング構成の接続を示す図である。この例では、入力バッファ52からのデータを受信する処理に適したエレメント(以下、「LDエレメント」とも称する)401の出力ポートと、ストア用にデータを出力するのに適したエレメント(以下、「STエレメント」とも称する。)402の入力ポートとが接続されている。図4(b)は、他のマッピング構成の接続を示す図である。この例では、LDエレメント、STエレメントのほか、算術演算および論理演算に適したエレメント(以下、「SMAエレメント」とも称する。)、乗算処理に適したエレメント(以下、「SMAMエレメント」とも称する。)、および、データが伝送されるタイミングを遅延させる処理に適したDELエレメントが使用されている。たとえば、第1のパス410においては、LDエレメント411の出力ポートが、DELエレメント411の入力ポートと接続され、DELエレメント412の出力ポートがSMAMエレメント413の入力ポートと接続され、SMAMエレメント413の出力ポートが、別のDELエレメント414の入力ポートと接続され、かつ、DELエレメント414の出力ポートが、STエレメント415の一方の入力ポートと接続されている。その一方、第2のパス420においては、LDエレメント421の出力ポートが、SMAエレメント422の入力ポートと接続され、SMAエレメント422の出力ポートが、SMAMエレメント423の入力ポートと接続され、SMAMエレメント423の出力ポートが、他のSMAエレメント424の入力ポートと接続され、SMAエレメント424の出力ポートが、STエレメント415の他方の入力ポートと接続されている。   FIG. 4A is a diagram illustrating connection of the simplest mapping configuration. In this example, an output port of an element suitable for processing for receiving data from the input buffer 52 (hereinafter also referred to as “LD element”) 401 and an element suitable for outputting data for storage (hereinafter “ Also referred to as an “ST element”.) 402 is connected to the input port. FIG. 4B is a diagram illustrating connection of another mapping configuration. In this example, in addition to the LD element and ST element, elements suitable for arithmetic and logical operations (hereinafter also referred to as “SMA elements”) and elements suitable for multiplication processing (hereinafter also referred to as “SMAM elements”). DEL elements suitable for processing for delaying the timing at which data is transmitted are used. For example, in the first path 410, the output port of the LD element 411 is connected to the input port of the DEL element 411, the output port of the DEL element 412 is connected to the input port of the SMAM element 413, and the output of the SMAM element 413 The port is connected to the input port of another DEL element 414, and the output port of the DEL element 414 is connected to one input port of the ST element 415. On the other hand, in the second path 420, the output port of the LD element 421 is connected to the input port of the SMA element 422, and the output port of the SMA element 422 is connected to the input port of the SMAM element 423. Are connected to the input port of the other SMA element 424, and the output port of the SMA element 424 is connected to the other input port of the ST element 415.

また、ハードウェアライブラリにおいては、各エレメントのレイテンシーも含まれる。したがって、ユーザは、自己が配置したエレメントのレイテンシーを参照して、DELエレメントのレイテンシーを設定しても良い。図4(b)の例において、SMAエレメントのレイテンシーが「3」であることをユーザは知ることができるため、パス410とパス420との同期を考慮して、DELエレメント412、414のレイテンシーをそれぞれ「3」に設定することができる。   The hardware library also includes the latency of each element. Therefore, the user may set the latency of the DEL element with reference to the latency of the element arranged by the user. In the example of FIG. 4B, since the user can know that the latency of the SMA element is “3”, the latency of the DEL elements 412 and 414 is considered in consideration of the synchronization between the path 410 and the path 420. Each can be set to “3”.

回路仕様に基づくデータフローにしたがった、エレメントの配置およびそれらの間の接続が終了すると、ユーザは、入力装置を操作して、コンパイラ16を起動させる。コンパイラ16は、以下に示すような処理を実行して、各エレメントが実際にAAP50中に配置される配置位置、AAP50中にその配置位置が決定されたエレメント間の接続のルーティング、および、必要なDEL要素の挿入などが実現される。図5は、コンパイラ16において実行される処理の概略を示すフローチャートである。   When the arrangement of the elements and the connection between them according to the data flow based on the circuit specifications are completed, the user operates the input device to activate the compiler 16. The compiler 16 performs the following processing to arrange the positions where the elements are actually arranged in the AAP 50, routing of connections between the elements whose arrangement positions are determined in the AAP 50, and necessary elements. Insertion of a DEL element or the like is realized. FIG. 5 is a flowchart showing an outline of processing executed in the compiler 16.

図5に示すように、コンパイラ16は、レイアウト領域に配置されたエレメントに基づいて、各エレメントのAAP50中の配置位置を決定する(ステップ500)。本実施の形態において、図15〜図17に示すように、AAP50は、構造的に、実際のLDエレメントがデータフロー或いは擬似的データフローにおける最上流側に配置され、実際のSTエレメントが最下流側に配置されている。また、各セグメントにおける演算に適したエレメント(たとえば、SMAエレメントやSMAMエレメント)の数が規定されている。したがって、本実施の形態にかかるコンパイラ16は、まず、レイアウト領域に配置されたLDエレメントおよびSTエレメントの実際の配置位置を決定し、その後、SMAエレメントおよびSMAMエレメントの実際の配置位置を決定する(ステップ501、502)。その後、レイアウト領域に配置された、ユーザ自身が配置したDELエレメントなど他のエレメントの実際の配置位置が決定される(ステップ503)。   As shown in FIG. 5, the compiler 16 determines the arrangement position of each element in the AAP 50 based on the elements arranged in the layout area (step 500). In this embodiment, as shown in FIGS. 15 to 17, the AAP 50 is structurally configured such that the actual LD element is arranged on the most upstream side in the data flow or the pseudo data flow, and the actual ST element is the most downstream. Arranged on the side. In addition, the number of elements (for example, SMA elements and SMAM elements) suitable for calculation in each segment is defined. Therefore, the compiler 16 according to the present embodiment first determines the actual arrangement positions of the LD element and the ST element arranged in the layout area, and then determines the actual arrangement positions of the SMA element and the SMAM element ( Steps 501, 502). Thereafter, the actual arrangement positions of other elements such as DEL elements arranged by the user and arranged in the layout area are determined (step 503).

本実施の形態において、APP50上のエレメントは、(セグメント番号,カラム番号,ロウ番号)により、その位置が特定される。したがって、配置位置の決定は、ユーザがレイアウト領域に配置したエレメントについて、実際のAAP50上での位置、つまり、(セグメント番号,カラム番号,ロウ番号)が割り当てられることにより実現できる。   In the present embodiment, the position of the element on the APP 50 is specified by (segment number, column number, row number). Therefore, the arrangement position can be determined by assigning an actual position on the AAP 50, that is, (segment number, column number, row number) to the element arranged in the layout area by the user.

なお、図15に示す例においては、APP50のセグメント1501には、16個のSMAエレメントが含まれる。したがって、ユーザがレイアウト領域に配置したマップ構成が、それ以上のSMAエレメントや、このセグメントに存在しないSMAMエレメントを要する場合には、他のセグメントのSMAエレメントやSMAMエレメントが使用される可能性がある。同様に、図16や図17に示した他のセグメントについても同様の場合が生じ得る。   In the example shown in FIG. 15, the segment 1501 of the APP 50 includes 16 SMA elements. Therefore, if the map configuration placed in the layout area by the user requires more SMA elements or SMAM elements that do not exist in this segment, the SMA elements and SMAM elements of other segments may be used. . Similarly, similar cases may occur for the other segments shown in FIGS. 16 and 17.

ユーザがレイアウト領域に配置した各エレメントの、実際のAPP50上への配置が終了すると、コンパイラ16は、各エレメントのレイテンシーを参照して、必要に応じてDELエレメントを付加する(ステップ504、505)。
ステップ500による、各エレメントのAPP50中の位置が決定すると、ユーザが設定したエレメント間の接続に基づいて、実際に配置されたAPP中のエレメント間の接続を決定するルーティング処理が実行される(ステップ510)。ここでは、後述するように、マルチプレクサ(MUX)の追加、および、スイッチング処理も実行される。
When the arrangement of each element arranged by the user in the layout area on the actual APP 50 is completed, the compiler 16 refers to the latency of each element and adds a DEL element as necessary (steps 504 and 505). .
When the position of each element in the APP 50 is determined in step 500, a routing process for determining a connection between the elements in the actually arranged APP is executed based on the connection between the elements set by the user (step 500). 510). Here, as will be described later, addition of a multiplexer (MUX) and switching processing are also executed.

以下、実際の例を参照して、ステップ500およびステップ510の処理をより詳細に説明する。図6は、DELエレメントの挿入の一例を説明するための図である。たとえば、LDエレメント601とSTエレメント602とを接続している場合を考える(図6(a))。ここで、LDエレメント601、および、STエレメント602の、実際に配置されるべきAPP50中のセグメントが相互に異なる場合には、設計規則にしたがって、DELエレメントが挿入される。たとえば、LDエレメントが、セグメント番号「0」に配置され、STエレメントがセグメント番号「2」に配置される場合には、セグメント番号「0」とセグメント番号「1」との間に介在するDELエレメント611と、セグメント番号「1」とセグメント番号「2」との間に介在するDELエレメント612とが、コンパイラ16により生成され、LDエレメント601とDELエレメント611とが接続され、DELエレメント611とDELエレメント612とが接続され、かつ、DELエレメント612とSTエレメント602とが接続される。また、この場合には、DELエレメント611、612のそれぞれのレイテンシーは、「1」に設定される。なお、セグメント間に介在するDELエレメントを、「インターセグメントDELエレメント」とも称する。   Hereinafter, the processing of Step 500 and Step 510 will be described in more detail with reference to an actual example. FIG. 6 is a diagram for explaining an example of insertion of a DEL element. For example, consider the case where the LD element 601 and the ST element 602 are connected (FIG. 6A). Here, when the LD element 601 and the ST element 602 have different segments in the APP 50 to be actually arranged, the DEL element is inserted according to the design rule. For example, when the LD element is arranged at the segment number “0” and the ST element is arranged at the segment number “2”, the DEL element interposed between the segment number “0” and the segment number “1” 611 and the DEL element 612 interposed between the segment number “1” and the segment number “2” are generated by the compiler 16, the LD element 601 and the DEL element 611 are connected, and the DEL element 611 and the DEL element 612 is connected, and DEL element 612 and ST element 602 are connected. In this case, the latency of each of the DEL elements 611 and 612 is set to “1”. A DEL element interposed between segments is also referred to as an “intersegment DEL element”.

図7は、他のDELエレメントの挿入の例を説明する図である。ここで、ユーザ入力されたマップ構成(図7(a))は、図4(b)に示すものと同様である。ユーザ入力されたマップ構成においては、一方のパス710に、それぞれ、レイテンシー「3」のDELエレメント712、714が配置されている。   FIG. 7 is a diagram for explaining an example of insertion of another DEL element. Here, the map configuration (FIG. 7A) input by the user is the same as that shown in FIG. 4B. In the map configuration input by the user, DEL elements 712 and 714 having a latency of “3” are arranged in one path 710, respectively.

たとえば、LDエレメント711および721は、それぞれ、セグメント番号「0」に配置され、STエレメント715は、セグメント番号「2」に配置される。また、エレメント数の制約により、SMAMエレメント713、723が、それぞれ、セグメント番号「1」に、SMAエレメント722、724は、それぞれ、セグメント番号「0」、「1」に、配置されるよう、コンパイラ16に決定されたと考える。   For example, LD elements 711 and 721 are each arranged at segment number “0”, and ST element 715 is arranged at segment number “2”. Also, due to the restriction on the number of elements, the compiler is arranged so that the SMAM elements 713 and 723 are arranged in the segment number “1” and the SMA elements 722 and 724 are arranged in the segment numbers “0” and “1”, respectively. I think that it was decided to 16.

このような場合には、第1のパス710において、ユーザ入力により設定されたDELエレメント712は、セグメント番号「0」からセグメント番号「1」へのレイテンシー「3」のインターセグメントDELエレメントとして、また、DELエレメント714は、セグメント番号「1」からセグメント番号「2」へのインターセグメントDELエレメントとして、実際のAPP50上への配置位置が決定される。この例では、実際にインターセグメントDELエレメント732の配置位置は(0,0,7)、インターセグメントDELエレメント734の配置位置は(1,0,7)と決定される。   In such a case, in the first pass 710, the DEL element 712 set by the user input is an inter-segment DEL element having a latency “3” from the segment number “0” to the segment number “1”, and , DEL element 714 is an inter-segment DEL element from segment number “1” to segment number “2”, and the actual arrangement position on APP 50 is determined. In this example, the arrangement position of the inter-segment DEL element 732 is actually determined as (0, 0, 7), and the arrangement position of the inter-segment DEL element 734 is determined as (1, 0, 7).

その一方、第2のパス720においても、セグメント間にはインターセグメントDELエレメントを配置する必要がある。この例では、セグメント番号「0」のSMAエレメント722と、セグメント番号「1」のSMAMエレメント723との間に、インターセグメントDELエレメント745が配置され、かつ、セグメント番号「1」のSMAエレメント724と、セグメント番号「2」のSTエレメント715との間にも、インターセグメントDELエレメント746が配置される。また、インターセグメントDELエレメント745、746のそれぞれの配置位置は、(0,1,7)および(1,1,7)と決定される。   On the other hand, also in the second path 720, it is necessary to arrange inter-segment DEL elements between the segments. In this example, an inter-segment DEL element 745 is arranged between the SMA element 722 having the segment number “0” and the SMAM element 723 having the segment number “1”, and the SMA element 724 having the segment number “1” The inter-segment DEL element 746 is also disposed between the ST element 715 having the segment number “2”. The arrangement positions of the inter-segment DEL elements 745 and 746 are determined as (0, 1, 7) and (1, 1, 7).

このように一方のパス(第2のパス)720におけるDELエレメントの挿入により、他方のパス(第1のパス)710におけるレイテンシーを調整する必要が生じる場合がある。このような場合に、コンパイラ16は、再度、DELエレメントのレイテンシーを調整する。この例では、インターセグメントDELエレメント734のレイテンシーを、「3」から「5」に変化させている。   As described above, the insertion of the DEL element in one path (second path) 720 may require adjustment of the latency in the other path (first path) 710. In such a case, the compiler 16 again adjusts the latency of the DEL element. In this example, the latency of the inter-segment DEL element 734 is changed from “3” to “5”.

なお、図7の例では、ユーザ入力された、レイテンシーのみが定義されたDELエレメントから、(セグメント番号、コラム番号、ロウ番号)からなるAPP50中の配置位置が決定されるとともに、他のパス等のレイテンシーを考慮して、レイテンシーも調整される。つまり、本実施の形態において、コンパイラ16は、不完全なDELエレメントを、配置位置およびレイテンシーが決定された最終的なDELエレメントに変換させる機能を有する。   In the example of FIG. 7, the arrangement position in the APP 50 composed of (segment number, column number, row number) is determined from the DEL element in which only the latency is defined by the user, and other paths, etc. The latency is also adjusted in consideration of the latency. That is, in this embodiment, the compiler 16 has a function of converting an incomplete DEL element into a final DEL element whose arrangement position and latency are determined.

また、コンパイラ16は、DELエレメントについて、最大レイテンシーおよび/または最少レイテンシーを、予め決定しておき、ユーザ入力されたDELエレメントを、分割或いは統合した形態の、DELエレメントの配置位置などを決定することもできる。たとえば、図8(a)に示すように、SMAエレメント801とSMAエレメント803との間に、レイテンシー「N(Nはユーザが設定した整数)」のDELエレメント802が、ユーザ入力により配置されたと考える。この例では、コンパイラ16は、ユーザ入力されたDELエレメントのレイテンシーと、実際にその機能を割り当て可能なAPP50中のDELエレメントのレイテンシーとを比較して、ユーザ入力されたDELエレメントの機能を実現するために、3つのDELエレメント812−1〜812−3の配置位置を決定している(図8(b))。それぞれのDELエレメントのレイテンシーは、「A」、「B」および「C」であり、レイテンシーの総和が、基本的には、ユーザ設定にかかる「N」と一致する。   Further, the compiler 16 determines the maximum latency and / or the minimum latency for the DEL element in advance, and determines the arrangement position of the DEL element in a form in which the DEL elements input by the user are divided or integrated. You can also. For example, as shown in FIG. 8A, it is considered that a DEL element 802 having a latency of “N (N is an integer set by the user)” is arranged between the SMA element 801 and the SMA element 803 by user input. . In this example, the compiler 16 compares the latency of the DEL element input by the user with the latency of the DEL element in the APP 50 to which the function can be actually assigned, thereby realizing the function of the DEL element input by the user. Therefore, the arrangement positions of the three DEL elements 812-1 to 812-3 are determined (FIG. 8B). The latency of each DEL element is “A”, “B”, and “C”, and the sum of the latency basically matches “N” applied to the user setting.

たとえば、APP上に実際に配置されているDELエレメントが、4つの入力ポートおよび4つの出力ポートを有する4入力4出力のエレメントである場合を考える。たとえば、図9(a)に示すように、SMAエレメントの間にDELエレメントが介在するようなマップ構造が、ユーザ入力により作成されていた場合に、APP上の単一のDELエレメントに、ユーザ入力されたDELエレメントとしてそれぞれ機能させるべく、図9(b)に示すような構成を採用しても良い。   For example, consider a case where the DEL element actually arranged on the APP is a four-input four-output element having four input ports and four output ports. For example, as shown in FIG. 9A, when a map structure in which a DEL element is interposed between SMA elements is created by user input, the user input is made to a single DEL element on the APP. In order to function as each of the DEL elements, a configuration as shown in FIG. 9B may be employed.

さらに、本実施の形態においては、クリティカルパスを保護するために、ユーザ入力によるエレメント間の接続において、DELエレメントの挿入を禁止するように、ユーザが設定することもできる。たとえば、図10に示す例において、接続線(パス)1001〜1005について、DELエレメントの挿入の禁止が設定されていると考える。このような場合には、コンパイラ16は、これらの間にDELエレメントが挿入されないように、関係するエレメント(図10の例では、SMAエレメント1011〜1014およびDELエレメント1015)を、APP中の単一のセグメントに配置する。   Further, in the present embodiment, in order to protect the critical path, the user can set to prohibit the insertion of the DEL element in the connection between the elements by the user input. For example, in the example shown in FIG. 10, it is considered that prohibition of insertion of DEL elements is set for connection lines (paths) 1001 to 1005. In such a case, the compiler 16 assigns related elements (SMA elements 1011 to 1014 and DEL element 1015 in the example of FIG. 10) to a single in the APP so that no DEL element is inserted between them. Place in the segment.

さらに、ユーザ入力において、ユーザが、エレメントを配置するカラム位置を指定することも可能である。たとえば、図11の例において、LDB(ロードバッファ:Load Buffer)エレメント、LDエレメント、および、LDBエレメントにカウンタ値を与えるカウンタとして機能するエレメント(C16LエレメントおよびC32Lエレメント)は、外部メモリとの適切にアクセスするために、APPにおいて、同一のカラム番号に配置されているという設計規則があると考える。この場合には、ユーザが、上記エレメントのうちのいずれかに、特定のカラム番号を与えていると、コンパイラ16は、他のエレメントにも同一のカラム番号を与える。   Furthermore, in the user input, the user can specify the column position where the element is arranged. For example, in the example of FIG. 11, an LDB (Load Buffer) element, an LD element, and an element that functions as a counter that gives a counter value to the LDB element (C16L element and C32L element) are appropriately connected to an external memory. In order to access, it is considered that there is a design rule that the same column number is arranged in APP. In this case, if the user gives a specific column number to any one of the above elements, the compiler 16 gives the same column number to the other elements.

また、図12に示すように、カウンタエレメントC16L或いはC32Lについて、カラム番号を指定するように、これらエレメントに直接、IDを付与することができる場合を考える。この場合にも、たとえば、「EID_C16L=0」つまり、カウンタエレメントC16Lのカラム番号を「0」とユーザが設定していれば、コンパイラ16により、他のエレメントのカラム番号も「0」に設定される。   Further, as shown in FIG. 12, a case is considered in which an ID can be directly given to these elements so as to designate column numbers for the counter elements C16L or C32L. Also in this case, for example, if “EID_C16L = 0”, that is, if the user sets the column number of the counter element C16L as “0”, the compiler 16 also sets the column numbers of other elements to “0”. The

次に、ルーティング処理(ステップ510)における、マルチプレクサの追加およびスイッチング処理について説明する。マルチプレクサは、エレメント間を接続する際に、データ入力側の入力ポートを特定する機能を有する。このマルチプレクサは、配置位置(セグメント番号,カラム番号,ロウ番号)のほか、少なくとも、入力ポートを特定する番号を含む。コンパイラ16は、ユーザ入力にかかるエレメント間の接続に基づいて、APP50上に実際に配置されるべきマルチプレクサの配置位置を特定し、かつ、その入力ポートを特定する(図13参照)。   Next, multiplexer addition and switching processing in the routing processing (step 510) will be described. The multiplexer has a function of specifying an input port on the data input side when connecting elements. This multiplexer includes at least a number for identifying an input port in addition to the arrangement position (segment number, column number, row number). The compiler 16 specifies the arrangement position of the multiplexer to be actually arranged on the APP 50 based on the connection between the elements concerning the user input, and specifies the input port (see FIG. 13).

さらに、ルーティング処理(ステップ510)においては、有限のエレメントを有効に利用するために、以下のようなスイッチング処理を実行することもできる。たとえば、SMAエレメントの間では、特定の場合に、演算結果に影響を与えないように、ポートをスイッチングさせることも可能である。図14(a)において、ユーザ入力されたSMAエレメントの間では、一方のSMAエレメント1401のデータ出力ポート「do」と、他方のSMAエレメント1402の一方のデータ入力ポート「dix」とが接続されている。しかしながら、コンパイラ16により、実際のAPP50上では、一方のSMAエレメント1401のデータ出力ポート「do」と、他方のSMAエレメント1402の他方のデータ入力ポート「diy」とが接続されても良い(図14(b)参照)。   Further, in the routing process (step 510), the following switching process can also be executed in order to effectively use a finite element. For example, between SMA elements, it is also possible to switch ports so as not to affect the calculation result in a specific case. 14A, between the SMA elements input by the user, the data output port “do” of one SMA element 1401 and one data input port “dix” of the other SMA element 1402 are connected. Yes. However, the compiler 16 may connect the data output port “do” of one SMA element 1401 and the other data input port “diy” of the other SMA element 1402 on the actual APP 50 (FIG. 14). (See (b)).

さらに、本実施の形態では、ルーティング処理において、複数入力ポートおよび複数出力ポートを有するDELエレメントにおいて、入力ポートと出力ポートとをスイッチングさせることもできる。図14(c)に示す例においては、ユーザ入力により、DELエレメントは、通常とおり、第1の入力ポート「dix」で入力したデータを遅延させて、第1の出力ポート「dox」から出力させるように設定されているが、コンパイラ16により、実際のAPP50上のDELエレメントにおいて、第1の入力ポート「dix」で入力したデータを遅延させて、第2の出力ポート「doy」から出力させるようにしても良い(図14(d)参照)。なお、この場合でもユーザ入力による論理には変更はなく演算結果に影響は与えないことは言うまでも無い。   Furthermore, in the present embodiment, in the DEL element having a plurality of input ports and a plurality of output ports, the input port and the output port can be switched in the routing process. In the example illustrated in FIG. 14C, the DEL element delays the data input through the first input port “dix” and outputs the data from the first output port “dox”, as usual, by user input. However, the compiler 16 causes the DEL element on the actual APP 50 to delay the data input at the first input port “dix” and output it from the second output port “doy”. Alternatively, it may be used (see FIG. 14D). Even in this case, it goes without saying that the logic by the user input is not changed and does not affect the operation result.

このように、本実施の形態によれば、DDDLで記述されたエレメントを視覚的に表示したマッピング構成を、ユーザが入力装置を操作して、レイアウト領域に配置し、かつ、エレメントの間を接続しておけば、コンパイラにより、設計規則にしたがって、実際のAPP上への各エレメントの配置、および、エレメント間の接続を実現することができる。したがって、ユーザは、所望の回路設計仕様に基づくデータフローにしたがって、エレメントを視覚的に表したマッピング構成を配置していけばよい。   As described above, according to the present embodiment, the mapping configuration in which the elements described in DDDL are visually displayed is arranged in the layout area by the user operating the input device, and the elements are connected to each other. Then, the arrangement of each element on the actual APP and the connection between the elements can be realized by the compiler according to the design rule. Therefore, the user may arrange a mapping configuration that visually represents an element in accordance with a data flow based on a desired circuit design specification.

本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。   The present invention is not limited to the above embodiments, and various modifications can be made within the scope of the invention described in the claims, and these are also included in the scope of the present invention. Needless to say.

図1は、本発明の実施の形態にかかる集積回路の回路要素の配置システムの概略を示すブロックダイヤグラムである。FIG. 1 is a block diagram showing an outline of an arrangement system of circuit elements of an integrated circuit according to an embodiment of the present invention. 図2は、ハードウェアライブラリの回路要素を利用した並列処理システムの一例を示す図である。FIG. 2 is a diagram illustrating an example of a parallel processing system using circuit elements of a hardware library. 図3は、AAPユニットの概略を示す図である。FIG. 3 is a diagram showing an outline of the AAP unit. 図4は、マッピング構成の例を示す図である。FIG. 4 is a diagram illustrating an example of a mapping configuration. 図5は、コンパイラにおいて実行される処理の概略を示すフローチャートである。FIG. 5 is a flowchart showing an outline of processing executed in the compiler. 図6は、DELエレメントの挿入の一例を説明するための図である。FIG. 6 is a diagram for explaining an example of insertion of a DEL element. 図7は、他のDELエレメントの挿入の例を説明する図である。FIG. 7 is a diagram for explaining an example of insertion of another DEL element. 図8は、他のDELエレメントの挿入の例を説明する図である。FIG. 8 is a diagram for explaining an example of insertion of another DEL element. 図9は、他のDELエレメントの挿入の例を説明する図である。FIG. 9 is a diagram for explaining an example of insertion of another DEL element. 図10は、接続の保護を説明するための図である。FIG. 10 is a diagram for explaining connection protection. 図11は、カラム番号の決定の例を説明する図である。FIG. 11 is a diagram for explaining an example of determining a column number. 図12は、カラム番号の決定の他の例を説明する図である。FIG. 12 is a diagram for explaining another example of determining the column number. 図13は、マルチプレクサの挿入の例を説明する図である。FIG. 13 is a diagram for explaining an example of inserting a multiplexer. 図14は、スイッチングの例を説明する図である。FIG. 14 is a diagram illustrating an example of switching. 図15は、本実施の形態にかかるRP中のAAPの部分を示す図である。FIG. 15 is a diagram showing a portion of AAP in the RP according to the present embodiment. 図16は、本実施の形態にかかるRP中のAAPの部分を示す図である。FIG. 16 is a diagram showing an AAP part in the RP according to the present embodiment. 図17は、本実施の形態にかかるRP中のAAPの部分を示す図である。FIG. 17 is a diagram showing a portion of AAP in the RP according to the present embodiment. 図18は、本実施の形態にかかるエレメントを記述するDDDLの構造を示す図である。FIG. 18 is a diagram showing a structure of a DDDL describing elements according to the present embodiment.

符号の説明Explanation of symbols

10 ハードウェアライブラリ
12 表示制御部
14 ハードウェア構成
16 コンパイラ
18 記憶部
DESCRIPTION OF SYMBOLS 10 Hardware library 12 Display control part 14 Hardware structure 16 Compiler 18 Memory | storage part

Claims (12)

集積回路を構成する回路要素の視覚的シンボルと、前記回路要素の接続情報を含むハードウェア構成情報とを関連付けて格納した定義ファイルから選択して配置された、視覚的シンボルと、当該視覚的シンボル間に設定された接続とに基づいて、当該回路要素を、集積回路上にあらかじめ配置された、対応する特定の機能を有する実際の回路要素に割り当てるステップと、
前記回路要素のレイテンシーにしたがって、割り当てられた回路要素間に、前記集積回路上に配置された遅延機能を有する回路要素を介在させるステップと、
前記割り当てられ、或いは、介在された回路要素を記述した回路要素の接続情報を含むハードウェア構成情報を、前記集積回路の回路要素の配置情報としてメモリに記憶するステップとを備えたことを特徴とする回路要素の配置方法。
A visual symbol selected from a definition file in which a visual symbol of a circuit element constituting an integrated circuit and hardware configuration information including connection information of the circuit element are stored in association with each other, and the visual symbol Assigning the circuit element to an actual circuit element having a corresponding specific function pre-arranged on the integrated circuit, based on the connection established between
Interposing a circuit element having a delay function arranged on the integrated circuit between the assigned circuit elements according to the latency of the circuit element;
Storing hardware configuration information including connection information of the circuit elements describing the assigned or intervening circuit elements in a memory as arrangement information of the circuit elements of the integrated circuit. To arrange circuit elements.
前記集積回路において、一定の回路要素群を含むセグメント間では、当該回路要素の接続に遅延機能を有する、実際の回路要素を介在させるステップを備えたことを特徴とする請求項1に記載の方法。   2. The method according to claim 1, further comprising the step of interposing an actual circuit element having a delay function in connection of the circuit elements between segments including a certain group of circuit elements in the integrated circuit. . 前記遅延機能を有する、実際の回路要素を介在させる際に、当該遅延機能を有する、実際の回路要素の少なくとも最大レイテンシーにしたがって、少なくとも1以上の、実際の回路要素を割り当てるステップを備えたことを特徴とする請求項1または2に記載の方法。   Allocating at least one or more actual circuit elements according to at least the maximum latency of the actual circuit elements having the delay function when the actual circuit elements having the delay function are interposed. 3. A method according to claim 1 or 2, characterized in that 前記遅延機能を有する、実際の回路要素を介在させる際に、当該遅延機能を有する、実際の回路要素の入力ポート数および出力ポート数を参照して、単一の、実際の回路要素に割り当てるステップを備えたことを特徴とする請求項1ないし3の何れか一項に記載の方法。   When interposing an actual circuit element having the delay function, a step of referring to the number of input ports and the number of output ports of the actual circuit element having the delay function and assigning the actual circuit element to a single actual circuit element The method according to claim 1, further comprising: ユーザにより選択された特定の回路要素間では、レイテンシーにかかわらず、遅延機能を有する、実際の回路要素を介在させないことを特徴とする請求項1ないし4の何れか一項に記載の方法。   5. The method according to claim 1, wherein an actual circuit element having a delay function is not interposed between specific circuit elements selected by a user regardless of latency. 6. さらに、前記回路要素間に、前記回路要素の入力ポートを指定するための、実際のマルチプレクサを介在させるステップを備えたことを特徴とする請求項1ないし5の何れか一項に記載の方法。   6. The method according to claim 1, further comprising the step of interposing an actual multiplexer for designating an input port of the circuit element between the circuit elements. 集積回路を構成する回路要素の視覚的シンボルと、前記回路要素の接続情報を含むハードウェア構成情報とを関連付けて格納した定義ファイルから選択して配置された、視覚的シンボルと、当該視覚的シンボル間に設定された接続とに基づいて、当該回路要素を、集積回路上にあらかじめ配置された、対応する特定の機能を有する実際の回路要素に割り当てるステップと、
前記回路要素のレイテンシーにしたがって、割り当てられた回路要素間に、前記集積回路上に配置された遅延機能を有する回路要素を介在させるステップと、
前記割り当てられ、或いは、介在された回路要素を記述した回路要素の接続情報を含むハードウェア構成情報を、前記集積回路の回路要素の配置情報としてメモリに記憶するステップとを、コンピュータに実行させることを特徴とする回路要素の配置プログラム。
A visual symbol selected from a definition file in which a visual symbol of a circuit element constituting an integrated circuit and hardware configuration information including connection information of the circuit element are stored in association with each other, and the visual symbol Assigning the circuit element to an actual circuit element having a corresponding specific function pre-arranged on the integrated circuit, based on the connection established between
Interposing a circuit element having a delay function arranged on the integrated circuit between the assigned circuit elements according to the latency of the circuit element;
Causing the computer to execute a step of storing hardware configuration information including connection information of the circuit elements describing the assigned or intervening circuit elements in a memory as arrangement information of the circuit elements of the integrated circuit. A circuit element arrangement program characterized by the above.
前記集積回路において、一定の回路要素群を含むセグメント間では、当該回路要素の接続に遅延機能を有する、実際の回路要素を介在させるステップを、前記コンピュータに実行させることを特徴とする請求項7に記載のプログラム。   8. The computer according to claim 7, further comprising a step of interposing an actual circuit element having a delay function in connection of the circuit elements between segments including a certain circuit element group in the integrated circuit. The program described in. 前記遅延機能を有する、実際の回路要素を介在させる際に、当該遅延機能を有する、実際の回路要素の少なくとも最大レイテンシーにしたがって、少なくとも1以上の、実際の回路要素を割り当てるステップを、前記コンピュータに実行させることを特徴とする請求項7または8に記載のプログラム。   Assigning at least one or more actual circuit elements to the computer according to at least the maximum latency of the actual circuit elements having the delay function when interposing the actual circuit elements having the delay function. The program according to claim 7 or 8, wherein the program is executed. 前記遅延機能を有する、実際の回路要素を介在させる際に、当該遅延機能を有する、実際の回路要素の入力ポート数および出力ポート数を参照して、単一の、実際の回路要素に割り当てるステップを、前記コンピュータに実行させることを特徴とする請求項7ないし9の何れか一項に記載のプログラム。   When interposing an actual circuit element having the delay function, a step of referring to the number of input ports and the number of output ports of the actual circuit element having the delay function and assigning the actual circuit element to a single actual circuit element The program according to claim 7, wherein the program is executed by the computer. ユーザにより選択された特定の回路要素間では、レイテンシーにかかわらず、遅延機能を有する、実際の回路要素を介在させないように、前記コンピュータを動作させることを特徴とする請求項7ないし10の何れか一項に記載のプログラム。   11. The computer according to claim 7, wherein the computer is operated such that an actual circuit element having a delay function is not interposed between specific circuit elements selected by a user regardless of latency. The program according to one item. さらに、前記回路要素間に、前記回路要素の入力ポートを指定するための、実際のマルチプレクサを介在させるステップを、前記コンピュータに実行させることを特徴とする請求項7ないし11の何れか一項に記載のプログラム。
12. The method according to claim 7, further comprising the step of interposing an actual multiplexer for designating an input port of the circuit element between the circuit elements. The listed program.
JP2003320721A 2003-09-12 2003-09-12 Arrangement method and arrangement program for circuit elements of integrated circuit Expired - Lifetime JP4276911B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003320721A JP4276911B2 (en) 2003-09-12 2003-09-12 Arrangement method and arrangement program for circuit elements of integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003320721A JP4276911B2 (en) 2003-09-12 2003-09-12 Arrangement method and arrangement program for circuit elements of integrated circuit

Publications (2)

Publication Number Publication Date
JP2005092276A JP2005092276A (en) 2005-04-07
JP4276911B2 true JP4276911B2 (en) 2009-06-10

Family

ID=34452592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003320721A Expired - Lifetime JP4276911B2 (en) 2003-09-12 2003-09-12 Arrangement method and arrangement program for circuit elements of integrated circuit

Country Status (1)

Country Link
JP (1) JP4276911B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7611572B2 (en) 2005-03-28 2009-11-03 Dainichiseika Color & Chemicals Mfg. Co., Ltd. Pixel-forming colorant compositions and their use
CN117641880B (en) * 2024-01-23 2024-03-29 合肥安迅精密技术有限公司 Chip mounter flying head arrangement optimization method and system and storage medium

Also Published As

Publication number Publication date
JP2005092276A (en) 2005-04-07

Similar Documents

Publication Publication Date Title
US8527972B2 (en) Method for forming a parallel processing system
US6044211A (en) Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description
JP4208577B2 (en) Integrated circuit device
US9069920B2 (en) Automated circuit design
US9135387B2 (en) Data processing apparatus including reconfiguarable logic circuit
Fletcher FPGA embedded processors
US8671371B1 (en) Systems and methods for configuration of control logic in parallel pipelined hardware
US8701069B1 (en) Systems and methods for optimizing allocation of hardware resources to control logic in parallel pipelined hardware
US6915410B2 (en) Compiler synchronized multi-processor programmable logic device with direct transfer of computation results among processors
US8739101B1 (en) Systems and methods for reducing logic switching noise in parallel pipelined hardware
US9026967B1 (en) Method and apparatus for designing a system on multiple field programmable gate array device types
US8788985B1 (en) Method and apparatus for implementing a processor interface block with an electronic design automation tool
US8793629B1 (en) Method and apparatus for implementing carry chains on FPGA devices
JP4276911B2 (en) Arrangement method and arrangement program for circuit elements of integrated circuit
US7730438B2 (en) Methods and apparatuses for designing multiplexers
Thomas et al. HoneyComb: an application-driven online adaptive reconfigurable hardware architecture
JP4208919B2 (en) Activation code generation method
Cesário et al. Overlap and frontiers between behavioral and RTL synthesis
Obeid et al. A proposed methodology for designing reconfigurable solutions
GB2585839A (en) Generating digital circuits
Tai Xilinx Virtex Devices: Variable Input LUT Architecture
Grant CAD algorithms and performance of Malibu: an FPGA with time-multiplexed coarse-grained elements
Gokhale et al. An Introduction to Reconfigurable Computing

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20031003

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090127

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090309

R150 Certificate of patent or registration of utility model

Ref document number: 4276911

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

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130313

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130313

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140313

Year of fee payment: 5

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term