JP2007295128A - Logic integrated circuit and source of circuit for operation thereof, and computer readable recording medium for recording the same - Google Patents

Logic integrated circuit and source of circuit for operation thereof, and computer readable recording medium for recording the same Download PDF

Info

Publication number
JP2007295128A
JP2007295128A JP2006118502A JP2006118502A JP2007295128A JP 2007295128 A JP2007295128 A JP 2007295128A JP 2006118502 A JP2006118502 A JP 2006118502A JP 2006118502 A JP2006118502 A JP 2006118502A JP 2007295128 A JP2007295128 A JP 2007295128A
Authority
JP
Japan
Prior art keywords
data
memory
result storage
integrated circuit
storage dedicated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006118502A
Other languages
Japanese (ja)
Other versions
JP4979975B2 (en
Inventor
Ryohei Tanaka
良平 田中
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.)
Daihen Corp
Original Assignee
Daihen 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 Daihen Corp filed Critical Daihen Corp
Priority to JP2006118502A priority Critical patent/JP4979975B2/en
Publication of JP2007295128A publication Critical patent/JP2007295128A/en
Application granted granted Critical
Publication of JP4979975B2 publication Critical patent/JP4979975B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To save the space of operation logic on a logic integrated circuit by constructing a simple and high-performance circuit for operation on the logic integrated circuit, such as an FPGA. <P>SOLUTION: Data memory in a coprocessor 1 are divided into memories 19, 20 for storing multiplication results and memories 21, 22 for storing addition results. An adder 15 adds two pieces of data stored in the memories 19, 20 for storing multiplication results. A multiplier 16 multiplies two pieces of data in data stored in the memories 21, 22 for storing addition results. As a result, addition processing can be executed in parallel with multiplication processing. In this case, the addition processing and multiplication processing are performed alternately in digital signal processing, thus executing the addition processing in parallel with the multiplication processing for executing processing at high speed as compared with when a CPU core is built in the FPGA. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、FA機器、通信機器、家電製品、医療機器等に組み込まれるフィールド・プログラマブル・ゲート・アレイ(以下、FPGAと略す)、プログラマブル・ロジック・デバイス(以下、PLDと略す)等の再プログラミング可能な論理集積回路に係わり、特に、論理集積回路上にコプロセッサ(co-processor)等の演算用回路を構築する技術に関する。   The present invention relates to reprogramming of a field programmable gate array (hereinafter abbreviated as FPGA), a programmable logic device (hereinafter abbreviated as PLD) and the like incorporated in FA devices, communication devices, home appliances, medical devices, and the like. The present invention relates to a possible logic integrated circuit, and more particularly to a technique for constructing an arithmetic circuit such as a co-processor on a logic integrated circuit.

従来のFPGA、PLD等のユーザが手元で機能を完成させる方式の論理集積回路では、複雑な演算ロジックを構築する場合に、演算ロジックを直接ハードウェア記述言語で記述して、そのロジックに該当するハードウェア回路を作成する方法が採用されていた。これに対して、ASIC(Application Specific IC)の分野では、CPUコアを有するシステムLSIの構成を採るものが多く(例えば、特許文献1参照)、複雑な演算処理については、CPUコア内部のプログラムで処理する方式が採用されている。   In a conventional logic integrated circuit in which a user completes a function by hand, such as a conventional FPGA, PLD, etc., when constructing a complicated arithmetic logic, the arithmetic logic is directly described in a hardware description language and corresponds to the logic. A method of creating a hardware circuit was adopted. On the other hand, in the field of ASIC (Application Specific IC), many systems adopt a configuration of a system LSI having a CPU core (see, for example, Patent Document 1), and complicated arithmetic processing is performed by a program inside the CPU core. A processing method is adopted.

しかしながら、上記のような従来の演算ロジックに相当するハードウェア回路を作成する方式のFPGA又はPLDでは、ディジタル信号処理における浮動小数点方式の演算用のロジック等の複雑な演算ロジックを構築する場合に、回路の規模が大きくなる。また、上記のような従来のASICに用いられているCPUコアをFPGA又はPLDに直接組み込んだ場合には、ゲートの使用率が大きくなり、また、FPGA又はPLD上におけるCPUコアの占有面積が大きくなる。
特開平6−250871号公報
However, in the FPGA or PLD of a method for creating a hardware circuit corresponding to the conventional arithmetic logic as described above, when constructing a complicated arithmetic logic such as a floating-point arithmetic logic in digital signal processing, The scale of the circuit increases. In addition, when the CPU core used in the conventional ASIC as described above is directly incorporated in the FPGA or PLD, the gate usage rate increases, and the area occupied by the CPU core on the FPGA or PLD increases. Become.
JP-A-6-250871

本発明は、上記の問題を解決するためになされたものであり、FPGAやPLD等の論理集積回路上に簡易で高パーフォーマンスの演算用回路を構築することができるようにして、論理集積回路上における演算ロジックの省スペース化を図ることが可能な論理集積回路、その演算用回路のソース、及びそのソースを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。   The present invention has been made in order to solve the above-described problems, and enables a simple and high-performance arithmetic circuit to be constructed on a logic integrated circuit such as an FPGA or a PLD. An object of the present invention is to provide a logic integrated circuit capable of saving the above-described arithmetic logic space, a source of the arithmetic circuit, and a computer-readable recording medium recording the source.

上記目的を達成するために請求項1の発明は、演算用回路を有するフィールド・プログラマブル・ゲート・アレイ等の論理集積回路において、前記演算用回路は、乗算器と、加算器と、前記乗算器による演算結果のデータを複数個格納可能な乗算結果格納専用メモリと、前記加算器による演算結果のデータを複数個格納可能な加算結果格納専用メモリと、これらの回路各部の制御を行うための制御部を備え、前記加算器は、前記乗算結果格納専用メモリに格納された複数個のデータのうちの2つのデータを加算し、前記乗算器は、前記加算結果格納専用メモリに格納された複数個のデータのうちの2つのデータを乗算するものである。   To achieve the above object, the invention of claim 1 is a logic integrated circuit such as a field programmable gate array having an arithmetic circuit, wherein the arithmetic circuit includes a multiplier, an adder, and the multiplier. A multiplication result storage dedicated memory capable of storing a plurality of operation result data by the adder, an addition result storage dedicated memory capable of storing a plurality of operation result data by the adder, and a control for controlling each part of these circuits And the adder adds two data out of a plurality of data stored in the multiplication result storage dedicated memory, and the multiplier stores a plurality of data stored in the addition result storage dedicated memory. Are multiplied by two of the data.

請求項2の発明は、請求項1に記載の論理集積回路において、前記制御部は、前記乗算結果格納専用メモリに格納された複数個のデータの中から、前記加算器に加算対象となるデータを出力するために、前記乗算結果格納専用メモリに前記加算対象となるデータに対応したアドレスを指示し、前記加算結果格納専用メモリに格納された複数個のデータの中から、前記乗算器に乗算対象となるデータを出力するために、前記加算結果格納専用メモリに前記乗算対象となるデータに対応したアドレスを指示するものである。   According to a second aspect of the present invention, in the logic integrated circuit according to the first aspect, the control unit selects data to be added to the adder from a plurality of data stored in the multiplication result storage dedicated memory. To output an address corresponding to the data to be added to the multiplication result storage dedicated memory, and multiply the multiplier from the plurality of data stored in the addition result storage dedicated memory. In order to output target data, an address corresponding to the data to be multiplied is instructed to the addition result storage dedicated memory.

請求項3の発明は、請求項2に記載の論理集積回路において、前記制御部は、水平型マイクロコードを含むマイクロ命令を格納したプログラムメモリを有し、前記制御部は、前記乗算結果格納専用メモリ及び加算結果格納専用メモリに対する、アドレス指示用とライト・イネーブル信号出力用の制御線を有し、前記プログラムメモリから前記マイクロ命令を読み込み、このマイクロ命令に含まれる水平型マイクロコードを構成する各ビットのオン/オフ情報を前記制御線を介して前記乗算結果格納専用メモリ及び加算結果格納専用メモリに伝達することにより、前記乗算結果格納専用メモリ及び加算結果格納専用メモリに対するデータの読み書きを制御するものである。   According to a third aspect of the present invention, in the logic integrated circuit according to the second aspect, the control unit has a program memory storing a microinstruction including a horizontal microcode, and the control unit is dedicated to storing the multiplication result. Control lines for address indication and write enable signal output for the memory and addition result storage dedicated memory, read the microinstruction from the program memory, and configure each horizontal microcode included in the microinstruction By transmitting bit ON / OFF information to the multiplication result storage dedicated memory and the addition result storage dedicated memory via the control line, data reading / writing to the multiplication result storage dedicated memory and the addition result storage dedicated memory is controlled. Is.

請求項4の発明は、請求項1乃至3に記載の論理集積回路において、前記加算器による演算結果のデータを一時的に格納するためのレジスタをさらに備えるものである。   According to a fourth aspect of the present invention, in the logic integrated circuit according to the first to third aspects of the present invention, the logic integrated circuit further includes a register for temporarily storing data of a calculation result by the adder.

請求項5の発明は、請求項1乃至4に記載の論理集積回路において、前記乗算器による演算処理と、前記加算器による演算処理とを同時に実行し得るようにしたものである。   According to a fifth aspect of the present invention, in the logic integrated circuit according to any one of the first to fourth aspects, the arithmetic processing by the multiplier and the arithmetic processing by the adder can be executed simultaneously.

請求項6の発明は、論理集積回路上における演算用回路についてのソースであって、前記ソースは、請求項1乃至請求項5のいずれかに記載の論理集積回路上の演算用回路についてのハードウェア記述言語レベルのソースであるものである。   The invention of claim 6 is a source for an arithmetic circuit on a logic integrated circuit, and the source is a hardware for an arithmetic circuit on the logic integrated circuit according to any one of claims 1 to 5. Hardware description language level source.

請求項7の発明は、論理集積回路上における演算用回路についてのソースを記録したコンピュータ読み取り可能な記録媒体であって、前記ソースは、請求項1乃至請求項5のいずれかに記載の論理集積回路上の演算用回路についてのハードウェア記述言語レベルのソースであるものである。   A seventh aspect of the present invention is a computer-readable recording medium in which a source for an arithmetic circuit on a logical integrated circuit is recorded, wherein the source is the logical integration according to any one of the first to fifth aspects. This is a hardware description language level source for an arithmetic circuit on the circuit.

請求項1及び2の発明によれば、演算用回路を、主に、乗算器と、加算器と、乗算結果格納専用メモリと、加算結果格納専用メモリと、制御部とで構成したことにより、フィールド・プログラマブル・ゲート・アレイ等の論理集積回路上に、簡易な構成の演算用回路を構築することができるので、論理集積回路上における演算ロジックの省スペース化を図ることができる。また、演算用回路内のデータ・メモリを、乗算結果格納専用メモリと加算結果格納専用メモリとに分けて、加算器は、乗算結果格納専用メモリに格納された複数個のデータのうちの2つのデータを加算し、乗算器は、加算結果格納専用メモリに格納された複数個のデータのうちの2つのデータを乗算するようにしたことにより、演算用回路による加算処理と乗算処理とを並行して実行することができる。ここで、適応ディジタルフィルタにおけるフィルタリング等のディジタル信号処理においては、加算処理と乗算処理が交互に行われることが多いので、上記のように加算処理と乗算処理とを並行して実行することができるようにしたことにより、従来のASICに用いられているCPUコアをFPGA又はPLDに直接組み込んだ場合と比べて、クロックの周波数が同程度の場合には、ディジタル信号処理をより高速に実行することができる。   According to the first and second aspects of the invention, the arithmetic circuit is mainly composed of a multiplier, an adder, a multiplication result storage dedicated memory, an addition result storage dedicated memory, and a control unit. Since an arithmetic circuit having a simple configuration can be constructed on a logic integrated circuit such as a field programmable gate array, it is possible to save the arithmetic logic on the logic integrated circuit. Further, the data memory in the arithmetic circuit is divided into a multiplication result storage dedicated memory and an addition result storage dedicated memory, and the adder includes two of the plurality of data stored in the multiplication result storage dedicated memory. The data is added, and the multiplier multiplies two of the plurality of data stored in the addition result storage dedicated memory, so that the addition processing by the arithmetic circuit and the multiplication processing are performed in parallel. Can be executed. Here, in digital signal processing such as filtering in an adaptive digital filter, addition processing and multiplication processing are often performed alternately, so that addition processing and multiplication processing can be executed in parallel as described above. As a result, the digital signal processing can be executed at a higher speed when the clock frequency is similar to the case where the CPU core used in the conventional ASIC is directly incorporated in the FPGA or PLD. Can do.

請求項3の発明によれば、制御部は、乗算結果格納専用メモリ及び加算結果格納専用メモリに対する、アドレス指示用とライト・イネーブル信号出力用の制御線を有し、プログラムメモリからマイクロ命令を読み込み、このマイクロ命令に含まれる水平型マイクロコードを構成する各ビットのオン/オフ情報を制御線を介して乗算結果格納専用メモリ及び加算結果格納専用メモリに伝達することにより、乗算結果格納専用メモリ及び加算結果格納専用メモリに対するデータの読み書きを制御するようにした。これにより、制御部が、命令をデコードしてレジスタやメモリに対する制御信号を生成することなく、乗算結果格納専用メモリ及び加算結果格納専用メモリに対するデータの読み書きを制御することができるので、制御部の行う処理を簡略化することができる。従って、制御部を簡易な構成とすることができると共に、乗算結果格納専用メモリ及び加算結果格納専用メモリに対するデータの読み書きの処理の高速化を図ることができる。   According to the invention of claim 3, the control unit has control lines for address indication and write enable signal output for the multiplication result storage dedicated memory and the addition result storage dedicated memory, and reads the microinstruction from the program memory. By transmitting ON / OFF information of each bit constituting the horizontal microcode included in this microinstruction to the multiplication result storage dedicated memory and the addition result storage dedicated memory via the control line, the multiplication result storage dedicated memory and Controlled reading and writing of data to dedicated memory for storing addition results. As a result, the control unit can control reading and writing of data to and from the multiplication result storage dedicated memory and the addition result storage dedicated memory without decoding the instruction and generating a control signal for the register and the memory. Processing to be performed can be simplified. Therefore, the control unit can have a simple configuration, and the data read / write processing speed for the multiplication result storage dedicated memory and the addition result storage dedicated memory can be increased.

請求項4の発明によれば、加算器による演算結果のデータを一時的に格納するためのレジスタをさらに備えるようにしたことにより、ディジタル信号処理において、加算を連続して実行する場合における処理の高速化を図ることができる。   According to the fourth aspect of the present invention, a register for temporarily storing the data of the operation result by the adder is further provided, so that in the digital signal processing, the processing in the case where the addition is executed continuously is performed. The speed can be increased.

請求項6及び7の発明によれば、コンピュータにソースを読み取らせて、このソースを用いてコンピュータにより論理合成処理を行った結果を、論理集積回路にダウン・ロードすることにより、上記に記載の発明の効果と同等の効果を得ることができる。   According to the sixth and seventh aspects of the present invention, the source is read by a computer, and the result of the logic synthesis process performed by the computer using the source is downloaded to the logic integrated circuit. An effect equivalent to the effect of the invention can be obtained.

本発明を実施するための最良の形態について図面を参照して説明する。なお、以下に記載した実施形態は、本発明を網羅するものではなく、本発明は、下記の形態だけに限定されない。   The best mode for carrying out the present invention will be described with reference to the drawings. In addition, embodiment described below does not cover this invention, and this invention is not limited only to the following form.

以下、本発明の一実施形態による論理集積回路であるフィールド・プログラマブル・ゲート・アレイ(以下、FPGAという)について図面を参照して説明する。図1に本実施形態によるFPGAにおけるコプロセッサ(co-processor)(請求項における演算用回路)周辺の構成を示す。コプロセッサ1は、FPGA(図6参照)上の演算ロジックの規模を小さくするために組み込まれたIPの一種である。このコプロセッサ1は、演算部3と、この演算部3による演算を制御する制御部2と、クロックジェネレータ14とを備えている。演算部3は、乗算器16と、加算器15と、乗算器16による演算結果のデータを複数個格納可能なメモリ19及びメモリ20(請求項における乗算結果格納専用メモリ)と、加算器15による演算結果のデータを複数個格納可能なメモリ21及びメモリ22(請求項における加算結果格納専用メモリ)と、加算器15に入力されるデータのルートの切り替えを行うためのマルチプレクサであるMUX1〜3と、乗算器16に入力されるデータのルートの切り替えを行うためのマルチプレクサであるMUX4〜6と、加算器15による演算結果のデータを一時的に格納するためのレジスタであるA_Reg23とから構成されている。メモリ19は、リード用のポート19aとライト用のポート19bを有するデュアル・ポート・メモリであり、メモリ19からのデータの読み出しとメモリ19へのデータの書き込みを同時に行うことができる。メモリ20〜22も同様である。メモリ19〜22は、それぞれ32ビットのデータを256個格納することができる。MUX2は、加算器15に入力されるデータを、MUX1から出力されたデータと、A_Reg23からのデータとの間で切り替えるためのマルチプレクサである。MUX17は、外部入力データの切り替え用のマルチプレクサである。MUX6は、乗算器16に入力されるデータを、MUX5から出力されたデータと、MUX17から出力された外部データとの間で切り替えるためのマルチプレクサである。   Hereinafter, a field programmable gate array (hereinafter referred to as an FPGA) which is a logic integrated circuit according to an embodiment of the present invention will be described with reference to the drawings. FIG. 1 shows a configuration around a co-processor (arithmetic circuit in claims) in the FPGA according to the present embodiment. The coprocessor 1 is a kind of IP incorporated in order to reduce the scale of arithmetic logic on the FPGA (see FIG. 6). The coprocessor 1 includes a calculation unit 3, a control unit 2 that controls calculation by the calculation unit 3, and a clock generator 14. The calculation unit 3 includes a multiplier 16, an adder 15, a memory 19 and a memory 20 (multiplication result storage dedicated memory in claims) that can store a plurality of data of calculation results obtained by the multiplier 16, and an adder 15. A memory 21 and a memory 22 (memory for storing addition results in the claims) that can store a plurality of calculation result data, and multiplexers MUX1 to MUX3 for switching routes of data input to the adder 15; , MUX 4 to 6 that are multiplexers for switching the route of data input to the multiplier 16, and A_Reg 23 that is a register for temporarily storing the data of the operation result by the adder 15. Yes. The memory 19 is a dual-port memory having a read port 19 a and a write port 19 b, and can read data from the memory 19 and write data to the memory 19 at the same time. The same applies to the memories 20 to 22. Each of the memories 19 to 22 can store 256 pieces of 32-bit data. MUX2 is a multiplexer for switching the data input to the adder 15 between the data output from MUX1 and the data from A_Reg23. The MUX 17 is a multiplexer for switching external input data. The MUX 6 is a multiplexer for switching the data input to the multiplier 16 between the data output from the MUX 5 and the external data output from the MUX 17.

加算器15は、主に、ライン(データ用のバス)L5,L10とMUX1,3を介して、メモリ19及びメモリ20に格納された複数個のデータのうちの2つのデータを読み出して加算する。ただし、乗算器16による直前の乗算結果をそのまま次の加算処理に使用する場合は、加算器15は、ライン(データ用のバス)L4とMUX1を介して入力されたデータ、又はライン(データ用のバス)L9とMUX3を介して入力されたデータを加算処理に使用する。すなわち、ラインL4とラインL9とは、乗算器16による直前の乗算結果をそのままMUX1又はMUX3に送るためのバイパス用のラインである。   The adder 15 mainly reads and adds two data out of a plurality of data stored in the memory 19 and the memory 20 via lines (data buses) L5, L10 and MUX1, 3. . However, when the previous multiplication result by the multiplier 16 is used as it is for the next addition processing, the adder 15 receives the data input via the line (data bus) L4 and MUX1, or the line (data The data input via L9 and MUX3 are used for the addition process. That is, the line L4 and the line L9 are bypass lines for sending the previous multiplication result by the multiplier 16 to the MUX1 or MUX3 as it is.

乗算器16は、主に、ライン(データ用のバス)L15,L20とMUX4,5を介して、メモリ21及びメモリ22に格納された複数個のデータのうちの2つのデータを読み出して乗算する。ただし、加算器15による直前の加算結果をそのまま次の乗算処理に使用する場合は、乗算器16は、ライン(データ用のバス)L14とMUX4を介して入力されたデータ、又はライン(データ用のバス)L19とMUX5を介して入力されたデータを乗算処理に使用する。すなわち、ラインL14とラインL19とは、加算器15による直前の加算結果をそのままMUX4又はMUX5に送るためのバイパス用のラインである。   The multiplier 16 mainly reads and multiplies two data out of a plurality of data stored in the memory 21 and the memory 22 via lines (data buses) L15 and L20 and MUXs 4 and 5. . However, when the previous addition result by the adder 15 is used as it is for the next multiplication process, the multiplier 16 receives the data input via the line (data bus) L14 and MUX4 or the line (data The data input via L19 and MUX5 are used for multiplication processing. That is, the line L14 and the line L19 are bypass lines for sending the immediately previous addition result by the adder 15 to the MUX 4 or MUX 5 as they are.

制御部2は、プログラムカウンタ11と、プログラムメモリ12と、命令レジスタ13とを有している。プログラムカウンタ11は、次に実行すべきマイクロ命令が存在するプログラムメモリ12上のアドレスを指示する。プログラムメモリ12は、レングスが64ビットの水平型マイクロコード形式(マイクロ命令の1ビットを1つの制御信号に割り当てる単純な形式)のマイクロ命令を格納している。命令レジスタ13には、プログラムカウンタ11により指示されたプログラムメモリ12上のアドレスに格納されたマイクロ命令がセットされる。   The control unit 2 includes a program counter 11, a program memory 12, and an instruction register 13. The program counter 11 indicates an address on the program memory 12 where a microinstruction to be executed next exists. The program memory 12 stores microinstructions in a horizontal microcode format (a simple format in which one bit of microinstruction is assigned to one control signal) having a length of 64 bits. The instruction register 13 is set with a microinstruction stored at an address on the program memory 12 designated by the program counter 11.

命令レジスタ13とメモリ19との間には、メモリ19内のデータをMUX1に出力する際に、メモリ19に加算対象となる読み込みデータに対応したアドレスを入力するための制御線L1と、メモリ19に乗算器16から出力された乗算結果を書き込む際に、メモリ19上のデータが格納されるアドレスを入力するための制御線L2と、メモリ19にライト・イネーブル信号を出力するための制御線L21とが配設されている。また、命令レジスタ13とメモリ20との間には、メモリ20内のデータをMUX3に出力する際に、メモリ20に加算対象となる読み込みデータに対応したアドレスを入力するための制御線L6と、メモリ20に乗算器16から出力された乗算結果を書き込む際に、メモリ20上のデータが格納されるアドレスを入力するための制御線L7と、メモリ20にライト・イネーブル信号を出力するための制御線L22とが配設されている。なお、命令レジスタ13とA_Reg23との間には、命令レジスタ13からA_Reg23にライト・イネーブル信号を出力するための不図示の制御線(以下、A_Reg制御線という)が設けられている。このA_Reg制御線とA_Reg23とMUX2とを設けたことにより、加算器15は、前回の加算結果をそのまま用いて、次の加算処理を行うことができる。   Between the instruction register 13 and the memory 19, when outputting the data in the memory 19 to the MUX 1, a control line L 1 for inputting an address corresponding to the read data to be added to the memory 19, and the memory 19 When the multiplication result output from the multiplier 16 is written to the control line L2, a control line L2 for inputting an address where data on the memory 19 is stored and a control line L21 for outputting a write enable signal to the memory 19 are input. Are arranged. Further, between the instruction register 13 and the memory 20, when outputting the data in the memory 20 to the MUX 3, a control line L6 for inputting an address corresponding to the read data to be added to the memory 20; When writing the multiplication result output from the multiplier 16 to the memory 20, a control line L 7 for inputting an address where data on the memory 20 is stored, and a control for outputting a write enable signal to the memory 20. A line L22 is provided. A control line (not shown) for outputting a write enable signal from the instruction register 13 to the A_Reg 23 (hereinafter referred to as an A_Reg control line) is provided between the instruction register 13 and the A_Reg 23. By providing the A_Reg control line, A_Reg 23, and MUX2, the adder 15 can perform the next addition process using the previous addition result as it is.

命令レジスタ13とメモリ21との間には、メモリ21内のデータをMUX4に出力する際に、メモリ21に乗算対象となる読み込みデータに対応したアドレスを入力するための制御線L11と、メモリ21に加算器15から出力された加算結果を書き込む際に、メモリ21上のデータが格納されるアドレスを入力するための制御線L12と、メモリ21にライト・イネーブル信号を出力するための制御線L23とが配設されている。また、命令レジスタ13とメモリ22との間には、メモリ22内のデータをMUX5に出力する際に、メモリ22に乗算対象となる読み込みデータに対応したアドレスを入力するための制御線L16と、メモリ22に加算器15から出力された加算結果を書き込む際に、メモリ22上のデータが格納されるアドレスを入力するための制御線L17と、メモリ22にライト・イネーブル信号を出力するための制御線L24とが配設されている。   Between the instruction register 13 and the memory 21, when outputting the data in the memory 21 to the MUX 4, a control line L 11 for inputting an address corresponding to the read data to be multiplied to the memory 21, and the memory 21 When the addition result output from the adder 15 is written, the control line L12 for inputting the address where the data on the memory 21 is stored and the control line L23 for outputting the write enable signal to the memory 21 Are arranged. Further, between the instruction register 13 and the memory 22, when outputting the data in the memory 22 to the MUX 5, a control line L16 for inputting an address corresponding to the read data to be multiplied to the memory 22; When writing the addition result output from the adder 15 to the memory 22, a control line L 17 for inputting an address where data on the memory 22 is stored, and a control for outputting a write enable signal to the memory 22. A line L24 is provided.

命令レジスタ13と演算部3内のMUX1〜6との間には、不図示の制御線(以下、マルチプレクサ制御線という)が設けられている。   A control line (not shown) (hereinafter referred to as a multiplexer control line) is provided between the instruction register 13 and the MUXs 1 to 6 in the arithmetic unit 3.

乗算器16とメモリ19との間には、データ入力用のバスであるラインL3が設けられており、乗算器16とメモリ20との間には、データ入力用のバスであるラインL8が設けられている。また、加算器15とメモリ21との間には、データ入力用のバスであるラインL13が設けられており、加算器15とメモリ22との間には、データ入力用のバスであるラインL18が設けられている。   A line L3, which is a data input bus, is provided between the multiplier 16 and the memory 19, and a line L8, which is a data input bus, is provided between the multiplier 16 and the memory 20. It has been. A line L13, which is a data input bus, is provided between the adder 15 and the memory 21, and a line L18, which is a data input bus, is provided between the adder 15 and the memory 22. Is provided.

プログラムカウンタ11は、プログラムメモリ12からマイクロ命令を読み込んで命令レジスタ13にセットし、このマイクロ命令に含まれる各ビットのオン/オフ情報を、制御線L1,L2,L6,L7,L11,L12,L16,L17,L21,L22,L23及びL24を介して、メモリ19乃至22に伝達することにより、メモリ19乃至22に対するデータの読み書きを制御する。また、プログラムカウンタ11は、プログラムメモリ12からマイクロ命令を読み込んで命令レジスタ13にセットし、このマイクロ命令に含まれる各ビットのオン/オフ情報を、上記のマルチプレクサ制御線を介して、演算部3内のMUX1〜6に伝達することにより、演算部3内におけるデータの流れを制御する。すなわち、プログラムカウンタ11は、プログラムメモリ12からマイクロ命令を読み込んで命令レジスタ13にセットし、このマイクロ命令に含まれる各ビットのオン/オフ情報を、演算部3内のメモリ19乃至22及びMUX1〜6に伝達することにより、演算部3内における演算処理を制御する。   The program counter 11 reads a microinstruction from the program memory 12 and sets it in the instruction register 13. The program counter 11 sends on / off information of each bit included in the microinstruction to the control lines L1, L2, L6, L7, L11, L12, By transmitting the data to the memories 19 to 22 via L16, L17, L21, L22, L23 and L24, the data reading and writing to the memories 19 to 22 is controlled. The program counter 11 reads a microinstruction from the program memory 12 and sets the microinstruction in the instruction register 13, and sends on / off information of each bit included in the microinstruction to the arithmetic unit 3 through the multiplexer control line. The flow of data in the arithmetic unit 3 is controlled by transmitting the data to the MUXs 1 to 6. That is, the program counter 11 reads a microinstruction from the program memory 12 and sets it in the instruction register 13, and stores on / off information of each bit included in the microinstruction in the memories 19 to 22 and MUX1 to MUX1 in the arithmetic unit 3. 6, the arithmetic processing in the arithmetic unit 3 is controlled.

上記の構成においては、加算器15は、主に、乗算器16による乗算結果を用いて加算処理を行い、乗算器16は、主に、加算器15による加算結果を用いて加算処理を行う。従って、演算部3内のデータフローは、図2(b)に示されるようなイメージになる。従来のプロセッサにおいては、ALUを複数備えたものがある。しかしながら、図2(a)に示されるように、この種のプロセッサにおける各ALU101、102は、それぞれのALU101、102が過去に処理したデータのみを用いて、次の演算処理を行う。これに対して、本実施形態におけるコプロセッサ1の加算器15は、原則として、乗算器16が過去に処理したデータを用いて、次の演算処理を行う。また、本実施形態におけるコプロセッサ1の乗算器16は、原則として、加算器15が過去に処理したデータを用いて、次の演算処理を行う。   In the above configuration, the adder 15 mainly performs addition processing using the multiplication result of the multiplier 16, and the multiplier 16 mainly performs addition processing using the addition result of the adder 15. Therefore, the data flow in the calculation unit 3 is an image as shown in FIG. Some conventional processors include a plurality of ALUs. However, as shown in FIG. 2A, the ALUs 101 and 102 in this type of processor perform the following arithmetic processing using only data processed by the ALUs 101 and 102 in the past. On the other hand, the adder 15 of the coprocessor 1 according to the present embodiment performs the following arithmetic processing using data previously processed by the multiplier 16 in principle. Further, in principle, the multiplier 16 of the coprocessor 1 in the present embodiment performs the following arithmetic processing using data processed in the past by the adder 15.

図3は、プログラムメモリ12に格納されるマイクロ命令の元になるコマンドとマイクロ命令との対応関係を示す表である。図における39の列と40の列は、それぞれマイクロ命令の元になるコマンドの第1オペランドと第2オペランドの内容を示している。また、各マイクロ命令は、全体で64ビットのレングスを持ち、第1コマンド部と第2コマンド部から構成される16ビットのコマンド部31と、第1乃至第6OP部から構成される48ビットのオペランド部32とから構成される。第1乃至第6OP部は、それぞれ8ビットのレングスを持つ。これらの第1乃至第6OP部には、該当するマイクロ命令の元になるコマンドにおける各オペランド39、40に対応した、メモリ19乃至22上のアドレスが格納される。   FIG. 3 is a table showing the correspondence between the commands that are the basis of the microinstructions stored in the program memory 12 and the microinstructions. In the figure, columns 39 and 40 indicate the contents of the first operand and the second operand of the command that is the basis of the microinstruction, respectively. Each microinstruction has a total length of 64 bits, a 16-bit command part 31 composed of a first command part and a second command part, and a 48-bit part composed of first to sixth OP parts. And an operand part 32. Each of the first to sixth OP sections has a length of 8 bits. In these first to sixth OP sections, addresses on the memories 19 to 22 corresponding to the operands 39 and 40 in the command that is the source of the corresponding microinstruction are stored.

図中の”mult”は、乗算命令であり、”w_mult”は、乗算結果のメモリ19及び20への書込命令であり、”add”は、加算命令であり、”w_adds”は、加算結果のメモリ21及び22への書込命令である。”sub_ab”は、「(第1オペランドが指し示すアドレスのデータ) − (第2オペランドが指し示すアドレスのデータ)」を意味する減算命令であり、”sub_ba”は、「(第2オペランドが指し示すアドレスのデータ) − (第1オペランドが指し示すアドレスのデータ)」を意味する減算命令である。また、”lda”は、A_Reg23からのデータの書き込み命令であり、”sta”は、A_Reg23へのデータの読み込み命令である。また、”ld_div”,”ld_alimit”,”ld_din”は、いずれもロード(load)系の命令であり、”st_ua1”,”st_ua2”,”st_ub1”,”st_ub2”,”st_m1”,”st_m2”,”st_n1”,”st_n2”は、いずれもストア(store)系の命令である。   In the figure, “multit” is a multiplication instruction, “w_multit” is a write instruction to the memories 19 and 20 for multiplication results, “add” is an addition instruction, and “w_adds” is an addition result. Is a write instruction to the memories 21 and 22. “Sub_ab” is a subtraction instruction meaning “(data of the address indicated by the first operand) − (data of the address indicated by the second operand)”, and “sub_ba” is “(the address of the address indicated by the second operand). Data)-a subtraction instruction meaning "(data at address indicated by first operand)". “Lda” is a data write command from A_Reg 23, and “sta” is a data read command to A_Reg 23. Further, “ld_div”, “ld_limit”, and “ld_din” are all load instructions, and are “st_ua1”, “st_ua2”, “st_ub1”, “st_ub2”, “st_m1”, “st_m2”. , “St_n1” and “st_n2” are store instructions.

図中において「排他」と記載されたグループ内の2つ以上のコマンドを同時に実行させることはできない。従って、図4に示されるプログラムシート50において、図3中の「排他」と記載されたグループ(以下、排他グループという)内の2つ以上のコマンドを同じ行に記載することはできない。例えば、プログラムシート50において、図3中の最初の排他グループ(”add”と”sub_ab”と”sub_ba”から構成されるグループ)内の2つ以上のコマンド(例えば、”add”と”sub_ab”)を同じ行に記載することはできない。これに対して、図3中の同じ排他グループ内に含まれるコマンドどうしの組み合わせでなければ、図3中に示される2つ以上のコマンドを同時に実行することが可能である。例えば、図3中の”mult”、”w_mult”、”w_adds”、及び”add”を同時に実行させることができる。従って、図4に示されるプログラムシート50において、”mult”、”w_mult”、”w_adds”、及び”add”を同じ行に記載することができる。   In the figure, two or more commands in the group described as “exclusive” cannot be executed simultaneously. Therefore, in the program sheet 50 shown in FIG. 4, two or more commands in the group described as “exclusive” in FIG. 3 (hereinafter referred to as an exclusive group) cannot be described in the same line. For example, in the program sheet 50, two or more commands (for example, “add” and “sub_ab”) in the first exclusive group (a group composed of “add”, “sub_ab”, and “sub_ba”) in FIG. ) Cannot appear on the same line. On the other hand, two or more commands shown in FIG. 3 can be executed at the same time unless the commands are included in the same exclusive group in FIG. For example, “mult”, “w_multit”, “w_adds”, and “add” in FIG. 3 can be executed simultaneously. Therefore, in the program sheet 50 shown in FIG. 4, “mult”, “w_multi”, “w_adds”, and “add” can be described in the same line.

図3において、35は、第2オペランド40内のラベルに対応したアドレスに格納された、メモリ19、20上のデータの正負の符号を反転させるためのビットを表す。36は、第1オペランド39内のラベルに対応したアドレスに格納された、メモリ19、20上のデータの正負の符号を反転させるためのビットを表す。また、34は、メモリ21、22へのライト・イネーブル信号に対応したビットを表し、33は、メモリ19、20へのライト・イネーブル信号に対応したビットを表す。さらにまた、37は、MUX2におけるデータの流れを切り替えるためのビットであり、38は、MUX6におけるデータの流れを切り替えるためのビットである。なお、第2コマンド部における37、38以外のビットは、演算部3内のMUX2、6以外のマルチプレクサにおけるデータの流れを切り替えるためのビットである。   In FIG. 3, 35 represents a bit for inverting the sign of the data on the memories 19 and 20 stored at the address corresponding to the label in the second operand 40. Reference numeral 36 denotes a bit for inverting the sign of the data on the memories 19 and 20 stored at the address corresponding to the label in the first operand 39. Reference numeral 34 denotes a bit corresponding to the write enable signal to the memories 21 and 22, and 33 denotes a bit corresponding to the write enable signal to the memories 19 and 20. Furthermore, 37 is a bit for switching the data flow in MUX2, and 38 is a bit for switching the data flow in MUX6. The bits other than 37 and 38 in the second command part are bits for switching the data flow in the multiplexers other than MUX2 and 6 in the arithmetic part 3.

図4は、図3に示されるコマンドを組み合せたプログラムを入力するためのエディターである、プログラムシートを示す。図中のプログラムシート50に示されるプログラムは、IIR(infinite impulse response:無限長インパルス応答)フィルタにおける処理の一部を記載したものである。なお、このコプロセッサ1においては、パイプライン処理の段数が4段であるので、乗算処理や加算処理の結果を、これらの処理から見て4つ以上後の処理において、メモリ19乃至22に書き込む必要がある。ただし、パイプライン処理の段数を変更すれば、乗算処理や加算処理の結果を、いくつ後の処理で書き込む必要があるかという点を変えることができる。   FIG. 4 shows a program sheet which is an editor for inputting a program combining the commands shown in FIG. The program shown in the program sheet 50 in the figure describes a part of processing in an IIR (infinite impulse response) filter. In this coprocessor 1, since the number of stages of pipeline processing is four, the results of multiplication processing and addition processing are written in the memories 19 to 22 in processing four or more times after these processing. There is a need. However, if the number of stages of pipeline processing is changed, it is possible to change the number of later processes in which the results of multiplication processing and addition processing need to be written.

プログラムシート50における1行目のコマンド”mult const1”は、外部から入力されたデータ(図1中におけるMUX17から入力されたEXT_Data)を、定数”1”と掛けるためのコマンドである。この乗算の結果は、矢印(1)に示されるように、5行目の2つ目のコマンド”w_mult v_vc”により、加算器15側のメモリ19及び20における、ラベルv_vcに対応したアドレスに保存される。このように、外部から入力されたデータに定数”1”を掛けて加算器15側のメモリ19及び20に格納する処理を行った理由は、外部から入力されたデータを直接加算器15側のメモリ19及び20に書き込むルートがないからである。上記のような乗算処理を行うことにより、外部から入力されたデータを加算器15側のメモリ19及び20に書き込むことができる。これは、本実施形態のコプロセッサ1の構造をシンプルにするための工夫の一つである。   The command “multi const1” on the first line in the program sheet 50 is a command for multiplying externally input data (EXT_Data input from the MUX 17 in FIG. 1) by the constant “1”. The result of this multiplication is stored at the address corresponding to the label v_vc in the memories 19 and 20 on the adder 15 side by the second command “w_multiv_vc” on the fifth line as shown by the arrow (1). Is done. As described above, the reason why the data input from the outside is multiplied by the constant “1” and stored in the memories 19 and 20 on the adder 15 side is that the data input from the outside is directly added to the adder 15 side. This is because there is no route for writing to the memories 19 and 20. By performing the multiplication process as described above, externally input data can be written in the memories 19 and 20 on the adder 15 side. This is one of the ideas for simplifying the structure of the coprocessor 1 of the present embodiment.

プログラムシート50における3行目のコマンド”mult v_vb v_aa”は、乗算器16側のメモリ21又は22における、ラベルv_vbに対応したアドレスに保存されたデータと、乗算器16側のメモリ21又は22における、ラベルv_aaに対応したアドレスに保存されたデータとの乗算を行うためのコマンドである。この乗算の結果は、矢印(2)に示されるように、7行目の2つ目のコマンド”w_mult v_ve”により、加算器15側のメモリ19及び20における、ラベルv_veに対応したアドレスに保存される。   The command “multiv v_vb v_aa” on the third line in the program sheet 50 is the data stored at the address corresponding to the label v_vb in the memory 21 or 22 on the multiplier 16 side and the memory 21 or 22 on the multiplier 16 side. , A command for performing multiplication with data stored at an address corresponding to the label v_aa. The result of this multiplication is stored in the address corresponding to the label v_ve in the memories 19 and 20 on the adder 15 side by the second command “w_multiv_ve” on the seventh line, as shown by the arrow (2). Is done.

プログラムシート50における5行目のコマンド”mult v_vi v_bb”は、乗算器16側のメモリ21又は22における、ラベルv_viに対応したアドレスに保存されたデータと、乗算器16側のメモリ21又は22における、ラベルv_bbに対応したアドレスに保存されたデータとの乗算を行うためのコマンドである。この乗算の結果は、矢印(4)に示されるように、9行目の2つ目のコマンド”w_mult v_vf”により、加算器15側のメモリ19及び20における、ラベルv_vfに対応したアドレスに保存される。   The command “multiv v_vi v_bb” on the fifth line in the program sheet 50 is the data stored in the address corresponding to the label v_vi in the memory 21 or 22 on the multiplier 16 side and the memory 21 or 22 on the multiplier 16 side. , A command for performing multiplication with data stored at an address corresponding to the label v_bb. The result of this multiplication is stored at the address corresponding to the label v_vf in the memories 19 and 20 on the adder 15 side by the second command “w_multiv_vf” on the ninth line, as shown by the arrow (4). Is done.

上記7行目の2つ目のコマンド”w_mult v_ve”により、加算器15側のメモリ19及び20における、ラベルv_veに対応したアドレスに保存された乗算結果と、上記9行目の2つ目のコマンド”w_mult v_vf”により、加算器15側のメモリ19及び20における、ラベルv_vfに対応したアドレスに保存された乗算結果は、矢印(3)及び(5)に示されるように、10行目の3つ目のコマンド”add v_vf v_ve”で、加算処理に用いられる。そして、このコマンド”add v_vf v_ve”による加算の結果は、矢印(6)に示されるように、14行目の4つ目のコマンド”w_adds v_vd”により、乗算器16側のメモリ21及び22における、ラベルv_vdに対応したアドレスに保存される。   The multiplication command stored in the address corresponding to the label v_ve in the memories 19 and 20 on the adder 15 side by the second command “w_multiv_ve” on the seventh line and the second command on the ninth line The multiplication result stored at the address corresponding to the label v_vf in the memories 19 and 20 on the adder 15 side by the command “w_multiv_vf” is as shown in arrows (3) and (5). The third command “add v_vf v_ve” is used for addition processing. As a result of the addition by the command “add v_vf v_ve”, the fourth command “w_adds v_vd” on the fourteenth line shows the result of addition in the memories 21 and 22 on the multiplier 16 side, as shown by the arrow (6). , And stored in an address corresponding to the label v_vd.

7行目のコマンド”mult v_vb const1”は、乗算器16側のメモリ21又は22における、ラベルv_vbに対応したアドレスに保存されたデータと、定数”1”とを掛けるためのコマンドである。この乗算の結果は、矢印(7)に示されるように、11行目の2つ目のコマンド”w_mult v_vi”により、加算器15側のメモリ19及び20における、ラベルv_viに対応したアドレスに保存される。この乗算結果は、矢印(8)に示されるように、12行目の3つ目のコマンド”add v_vi const0”で、加算処理に用いられる。このコマンドは、加算器15側のメモリ19又は20における、ラベルv_viに対応したアドレスに保存されたデータと、定数”0”とを加算するためのコマンドである。このコマンドによる加算の結果は、矢印(9)に示されるように、14行目の4つ目のコマンド”w_adds v_vi”により、乗算器16側のメモリ21及び22における、ラベルv_viに対応したアドレスに保存される。   The command “multi v_vb const1” on the seventh line is a command for multiplying the data stored in the address corresponding to the label v_vb in the memory 21 or 22 on the multiplier 16 side by the constant “1”. The result of this multiplication is stored at the address corresponding to the label v_vi in the memories 19 and 20 on the adder 15 side by the second command “w_multiv_vi” on the eleventh line, as shown by the arrow (7). Is done. This multiplication result is used for the addition process by the third command “add v_vi const0” on the 12th line as shown by the arrow (8). This command is a command for adding the data stored in the address corresponding to the label v_vi and the constant “0” in the memory 19 or 20 on the adder 15 side. As a result of the addition by this command, the address corresponding to the label v_vi in the memories 21 and 22 on the multiplier 16 side is obtained by the fourth command “w_adds v_vi” on the 14th line, as shown by the arrow (9). Saved in.

上記のように、乗算器16側のメモリ21又は22における、ラベルv_vbに対応したアドレスに保存されたデータに定数”1”を掛けて加算器15側のメモリ19及び20に格納する処理(7行目のコマンド”mult v_vb const1”)を行った後に、この加算器15側のメモリ19又は20に格納された乗算結果と、定数”0”とを加算して乗算器16側のメモリ21及び22における、ラベルv_viに対応したアドレスに格納する処理を行った理由は、乗算器16側のメモリ21又は22における、所定のアドレスに保存されたデータを、乗算器16側のメモリ21及び22における、他のアドレスに直接書き込むルートがないからである。上記のような処理を行うことにより、乗算器16側のメモリ上の所定のアドレスに保存されたデータを、同じメモリ上の他のアドレスにコピーすることができる。これも、本実施形態のコプロセッサ1の構造をシンプルにするための工夫の一つである。   As described above, the data stored in the address corresponding to the label v_vb in the memory 21 or 22 on the multiplier 16 side is multiplied by the constant “1” and stored in the memories 19 and 20 on the adder 15 side (7 After executing the command “multiv_vb const1”) on the line, the multiplication result stored in the memory 19 or 20 on the adder 15 side and the constant “0” are added to the memory 21 on the multiplier 16 side. The reason for performing the process of storing in the address corresponding to the label v_vi in 22 is that the data stored at a predetermined address in the memory 21 or 22 on the multiplier 16 side is stored in the memories 21 and 22 on the multiplier 16 side. This is because there is no route to write directly to another address. By performing the processing as described above, data stored at a predetermined address on the memory on the multiplier 16 side can be copied to another address on the same memory. This is also one of the ideas for simplifying the structure of the coprocessor 1 of the present embodiment.

また、図4には示していないが、上記の7行目のコマンド”mult v_vb const1”を、1行目のコマンド”mult const1”に置き換えることにより、外部から入力されたデータを乗算器16側のメモリ21及び22に書き込むことができる。これも、本実施形態のコプロセッサ1の構造をシンプルにするための工夫の一つである。   Although not shown in FIG. 4, the command “multi v_vb const1” on the seventh line is replaced with the command “multi const1” on the first line, so that the data input from the outside is on the multiplier 16 side. The memories 21 and 22 can be written. This is also one of the ideas for simplifying the structure of the coprocessor 1 of the present embodiment.

本実施形態のコプロセッサ1は、プログラムシート50における同じ行に記載された各コマンド(例えば、5行目の1つ目のコマンド”mult v_vi v_bb”と、2つ目のコマンド”w_mult v_vc”と)を並列に処理することができる。すなわち、コプロセッサ1は、multコマンドによる乗算処理と、w_multコマンドによる乗算結果の加算器15側のメモリ19及び20への書き込み処理と、addコマンドによる加算処理と、w_addsコマンドによる加算結果の乗算器16側のメモリ21及び22への書き込み処理等を並列に処理することができる。   The coprocessor 1 according to the present embodiment includes each command (for example, the first command “multiv_vi v_bb” in the fifth row and the second command “w_multiv_vc” described in the same row in the program sheet 50. ) Can be processed in parallel. That is, the coprocessor 1 performs multiplication processing by a multi command, writing processing of the multiplication result by the w_multi command to the memories 19 and 20 on the adder 15 side, addition processing by the add command, and multiplication multiplier of the addition result by the w_adds command. Write processing to the 16-side memories 21 and 22 can be performed in parallel.

上記のように、乗算処理と、乗算結果の加算器15側のメモリへの書き込み処理と、加算処理と、加算結果の乗算器16側のメモリへの書き込み処理とを並列に処理することができる理由は、従来のように、演算処理用のALUを用いるのではなく、加算専用の演算器である加算器15と、乗算専用の演算器である乗算器16とで演算を行うようにする共に、データメモリを、加算器15側のメモリ19及び20と、乗算器16側のメモリ21及び22とに分けたことによる。   As described above, the multiplication process, the process of writing the multiplication result into the memory on the adder 15 side, the addition process, and the process of writing the addition result into the memory on the multiplier 16 side can be processed in parallel. The reason is that, instead of using an ALU for arithmetic processing as in the prior art, an operation is performed by an adder 15 that is an arithmetic unit dedicated to addition and a multiplier 16 that is an arithmetic unit dedicated to multiplication. This is because the data memory is divided into memories 19 and 20 on the adder 15 side and memories 21 and 22 on the multiplier 16 side.

次に、図5及び図6を参照して、上記のコプロセッサ1についてのハードウェア記述言語レベルのソースに基づく論理合成結果を、FPGA10にダウンロードする手順について説明する。ユーザは、プログラムメモリ12に格納するプログラムを作成して、パソコン上でこのプログラムのシミュレーション(オフライン・デバッグ)を行う。そして、このシミュレーションによる検証結果がOKになると、パソコンは、ユーザによる指示操作に応じて、コプロセッサ1についてのハードウェア記述言語(例えばVHDL(VHSIC Hardware Description Language))レベルのソースの生成と(S1)、FPGA10上の他のIP76、77についてのハードウェア記述言語レベルのソースの生成(#2)を行った後、これらのソースの論理合成を行い(#3)、その論理合成結果をFPGA10内のROM75にダウン・ロードする(#4)。このROM75が、請求項7における、コンピュータ読み取り可能な記録媒体に相当する。   Next, a procedure for downloading a logic synthesis result based on the hardware description language level source for the coprocessor 1 to the FPGA 10 will be described with reference to FIGS. 5 and 6. The user creates a program to be stored in the program memory 12, and performs simulation (offline debugging) of this program on a personal computer. When the verification result by the simulation is OK, the personal computer generates a hardware description language (for example, VHDL (VHSIC Hardware Description Language)) level source for the coprocessor 1 according to an instruction operation by the user (S1). ) After generating the hardware description language level source for other IPs 76 and 77 on the FPGA 10 (# 2), the logic synthesis of these sources is performed (# 3), and the logic synthesis result is stored in the FPGA 10 Is downloaded to the ROM 75 (# 4). The ROM 75 corresponds to a computer-readable recording medium according to claim 7.

上述したように、本実施形態によるコプロセッサ1によれば、演算用回路を、主に、乗算器16と、加算器15と、乗算結果格納専用メモリ19及び20と、加算結果格納専用メモリ21及び22と、制御部2とで構成したことにより、FPGA10上に、簡易な構成の演算用回路を構築することができるので、FPGA10上における演算ロジックの省スペース化を図ることができる。また、FPGA10内のデータ・メモリを、乗算結果格納専用メモリ19及び20と加算結果格納専用メモリ21及び22とに分けて、加算器15は、乗算結果格納専用メモリ19及び20に格納された複数個のデータのうちの2つのデータを加算し、乗算器16は、加算結果格納専用メモリ21及び22に格納された複数個のデータのうちの2つのデータを乗算するようにしたことにより、コプロセッサ1による加算処理と乗算処理とを並行して実行することができる。   As described above, according to the coprocessor 1 according to the present embodiment, the arithmetic circuit mainly includes the multiplier 16, the adder 15, the multiplication result storage dedicated memories 19 and 20, and the addition result storage dedicated memory 21. And 22 and the control unit 2 make it possible to construct an arithmetic circuit with a simple configuration on the FPGA 10, so that the arithmetic logic on the FPGA 10 can be saved in space. Further, the data memory in the FPGA 10 is divided into multiplication result storage dedicated memories 19 and 20 and addition result storage dedicated memories 21 and 22, and the adder 15 includes a plurality of multiplication result storage dedicated memories 19 and 20. Two of the data are added, and the multiplier 16 multiplies two of the plurality of data stored in the addition result storage dedicated memories 21 and 22 so that the The addition processing and multiplication processing by the processor 1 can be executed in parallel.

ここで、適応ディジタルフィルタにおけるフィルタリング等のディジタル信号処理においては、加算処理と乗算処理が交互に行われることが多いので、上記のように加算処理と乗算処理とを並行して実行することができるようにしたことにより、従来のASICに用いられているCPUコアをFPGA又はプログラマブル・ロジック・デバイス(以下、PLDと略す)に直接組み込んだ場合と比べて、クロックの周波数が同程度の場合には、ディジタル信号処理をより高速に実行することができ、特に、FPGAにおいて浮動小数点演算を実行する場合における処理速度を高速化することができる。具体的には、本実施形態によるコプロセッサ1を浮動小数点演算に用いた場合、コプロセッサ1におけるクロックの周波数が50MB/Sであるとき、クロックの周波数が300MB/Sの通常のDSP(Digital Signal Processor)に比べて、処理速度を10倍の速さにすることができる。   Here, in digital signal processing such as filtering in an adaptive digital filter, addition processing and multiplication processing are often performed alternately, so that addition processing and multiplication processing can be executed in parallel as described above. As a result, when the CPU core used in a conventional ASIC is directly incorporated into an FPGA or programmable logic device (hereinafter abbreviated as PLD), the clock frequency is similar. The digital signal processing can be executed at a higher speed, and in particular, the processing speed can be increased when a floating point operation is executed in the FPGA. Specifically, when the coprocessor 1 according to the present embodiment is used for floating-point arithmetic, when a clock frequency in the coprocessor 1 is 50 MB / S, a normal DSP (Digital Signal) with a clock frequency of 300 MB / S is used. Compared with a processor, the processing speed can be 10 times faster.

上記の制御部2は、乗算結果格納専用メモリ19、20、及び加算結果格納専用メモリ21、22に対する、アドレス指示用の制御線L1,L2,L6,L7,L11,L12,L16,L17とライト・イネーブル信号出力用の制御線L21,L22,L23,L24とを有し、プログラムメモリ12からマイクロ命令を読み込み、このマイクロ命令に含まれる水平型マイクロコードを構成する各ビットのオン/オフ情報を上記の各制御線を介して乗算結果格納専用メモリ19、20及び加算結果格納専用メモリ21、22に伝達することにより、乗算結果格納専用メモリ19、20及び加算結果格納専用メモリ21、22に対するデータの読み書きを制御するようにした。これにより、制御部2が、命令をデコードしてレジスタやメモリに対する制御信号を生成することなく、乗算結果格納専用メモリ19、20及び加算結果格納専用メモリ21、22に対するデータの読み書きを制御することができるので、制御部2の行う処理を簡略化することができる。従って、制御部2を簡易な構成とすることができると共に、乗算結果格納専用メモリ19、20及び加算結果格納専用メモリ21、22に対するデータの読み書きの処理の高速化を図ることができる。   The control unit 2 writes address indication control lines L1, L2, L6, L7, L11, L12, L16, and L17 to the multiplication result storage dedicated memories 19 and 20 and the addition result storage dedicated memories 21 and 22. -Control signal L21, L22, L23, L24 for enabling signal output, reads a microinstruction from the program memory 12, and stores on / off information of each bit constituting a horizontal microcode included in the microinstruction Data for the multiplication result storage dedicated memories 19 and 20 and the addition result storage dedicated memories 21 and 22 are transmitted to the multiplication result storage dedicated memories 19 and 20 and the addition result storage dedicated memories 21 and 22 through the control lines. Controlled reading and writing. Thereby, the control unit 2 controls the reading / writing of the data with respect to the multiplication result storage dedicated memories 19 and 20 and the addition result storage dedicated memories 21 and 22 without decoding the instruction and generating a control signal for the register and the memory. Therefore, the process performed by the control unit 2 can be simplified. Therefore, the control unit 2 can have a simple configuration, and the speed of data read / write processing for the multiplication result storage dedicated memories 19 and 20 and the addition result storage dedicated memories 21 and 22 can be increased.

また、加算器15による加算結果のデータを一時的に格納するためのレジスタであるA_Reg23をさらに備えるようにしたことにより、コプロセッサ1におけるディジタル信号処理において、加算を連続して実行する場合における処理の高速化を図ることができる。   Further, by further providing A_Reg 23 which is a register for temporarily storing data of the addition result by the adder 15, processing in the case where addition is continuously executed in the digital signal processing in the coprocessor 1. Can be speeded up.

なお、本発明は、上記実施形態に限られるものではなく、様々な変形が可能である。例えば、上記の実施形態では、本発明によるコプロセッサ1が構築される論理集積回路が、FPGAである場合の例を示したが、本発明によるコプロセッサ1をFPGA以外の再プログラミング可能な論理集積回路(例えばPLD)に構築してもよい。また、上記の実施形態では、コプロセッサ1におけるパイプライン処理の段数が4段である場合の例を示したが、コプロセッサにおけるパイプライン処理の段数は、これに限られない。   The present invention is not limited to the above embodiment, and various modifications can be made. For example, in the above-described embodiment, an example in which the logic integrated circuit in which the coprocessor 1 according to the present invention is constructed is an FPGA is shown. However, the coprocessor 1 according to the present invention can be reprogrammed with a logic integration other than the FPGA. A circuit (eg, PLD) may be constructed. In the above-described embodiment, an example in which the number of stages of pipeline processing in the coprocessor 1 is four has been described. However, the number of stages of pipeline processing in the coprocessor is not limited thereto.

本発明の一実施形態による論理集積回路上のコプロセッサの構成図。The block diagram of the coprocessor on the logic integrated circuit by one Embodiment of this invention. (a)は、従来のプロセッサにおけるデータフローのイメージを示す図、(b)は、上記本実施形態によるコプロセッサ内の演算部におけるデータフローのイメージを示す図。(A) is a figure which shows the image of the data flow in the conventional processor, (b) is a figure which shows the image of the data flow in the calculating part in the coprocessor by the said this embodiment. 上記図1中のプログラムメモリに格納されるマイクロ命令の元になるコマンドとマイクロ命令との対応関係を示す表。The table | surface which shows the correspondence of the command used as the origin of the microinstruction stored in the program memory in the said FIG. 1, and a microinstruction. 上記図3に示されるコマンドを組み合せたプログラムを入力するためのエディターである、プログラムシートを示す図。The figure which shows the program sheet which is an editor for inputting the program which combined the command shown by the said FIG. 上記コプロセッサについてのハードウェア記述言語レベルのソースに基づく論理合成結果を、FPGAにダウンロードする手順を示すフローチャート。The flowchart which shows the procedure which downloads the logic synthesis result based on the hardware description language level source | sauce about the said coprocessor to FPGA. 上記の論理合成結果のダウン・ロードとダウン・ロード後の実機テストに用いられる機器の構成図。The block diagram of the apparatus used for the down load of said logic synthesis result, and the actual machine test after a down load.

符号の説明Explanation of symbols

1 コプロセッサ(演算用回路)
2 制御部
10 FPGA
12 プログラムメモリ
15 加算器
16 乗算器
19 メモリ(乗算結果格納専用メモリ)
20 メモリ(乗算結果格納専用メモリ)
21 メモリ(加算結果格納専用メモリ)
22 メモリ(加算結果格納専用メモリ)
23 A_Reg(加算器による演算結果のデータを一時的に格納するためのレジスタ)
L1,L2,L6,L7,L11,L12,L16,L17 制御線(アドレス指示用の制御線)
L21,L22,L23,L24 制御線(ライト・イネーブル信号出力用の制御線)
75 ROM(コンピュータ読み取り可能な記録媒体)
1 Coprocessor (arithmetic circuit)
2 Control unit 10 FPGA
12 program memory 15 adder 16 multiplier 19 memory (dedicated memory for storing multiplication results)
20 memories (dedicated memory for storing multiplication results)
21 memory (memory dedicated to storing addition results)
22 Memory (Dedicated result storage memory)
23 A_Reg (register for temporarily storing data of the operation result by the adder)
L1, L2, L6, L7, L11, L12, L16, L17 Control lines (control lines for address indication)
L21, L22, L23, L24 Control line (control line for write enable signal output)
75 ROM (computer-readable recording medium)

Claims (7)

演算用回路を有するフィールド・プログラマブル・ゲート・アレイ等の論理集積回路において、
前記演算用回路は、
乗算器と、
加算器と、
前記乗算器による演算結果のデータを複数個格納可能な乗算結果格納専用メモリと、
前記加算器による演算結果のデータを複数個格納可能な加算結果格納専用メモリと、
これらの回路各部の制御を行うための制御部を備え、
前記加算器は、前記乗算結果格納専用メモリに格納された複数個のデータのうちの2つのデータを加算し、
前記乗算器は、前記加算結果格納専用メモリに格納された複数個のデータのうちの2つのデータを乗算することを特徴とする論理集積回路。
In a logic integrated circuit such as a field programmable gate array having an arithmetic circuit,
The arithmetic circuit is:
A multiplier,
An adder;
A multiplication result storage dedicated memory capable of storing a plurality of data of operation results by the multiplier;
An addition result storage dedicated memory capable of storing a plurality of operation result data by the adder;
A control unit for controlling each part of these circuits is provided.
The adder adds two data out of a plurality of data stored in the multiplication result storage dedicated memory,
2. The logic integrated circuit according to claim 1, wherein the multiplier multiplies two data among a plurality of data stored in the addition result storage dedicated memory.
前記制御部は、
前記乗算結果格納専用メモリに格納された複数個のデータの中から、前記加算器に加算対象となるデータを出力するために、前記乗算結果格納専用メモリに前記加算対象となるデータに対応したアドレスを指示し、
前記加算結果格納専用メモリに格納された複数個のデータの中から、前記乗算器に乗算対象となるデータを出力するために、前記加算結果格納専用メモリに前記乗算対象となるデータに対応したアドレスを指示することを特徴とする請求項1に記載の論理集積回路。
The controller is
An address corresponding to the data to be added to the multiplication result storage dedicated memory for outputting the data to be added to the adder from the plurality of data stored in the multiplication result storage dedicated memory. Instruct
In order to output data to be multiplied to the multiplier from among a plurality of data stored in the addition result storage dedicated memory, an address corresponding to the data to be multiplied is added to the addition result storage dedicated memory. The logic integrated circuit according to claim 1, wherein:
前記制御部は、水平型マイクロコードを含むマイクロ命令を格納したプログラムメモリを有し、
前記制御部は、前記乗算結果格納専用メモリ及び加算結果格納専用メモリに対する、アドレス指示用とライト・イネーブル信号出力用の制御線を有し、前記プログラムメモリから前記マイクロ命令を読み込み、このマイクロ命令に含まれる水平型マイクロコードを構成する各ビットのオン/オフ情報を前記制御線を介して前記乗算結果格納専用メモリ及び加算結果格納専用メモリに伝達することにより、前記乗算結果格納専用メモリ及び加算結果格納専用メモリに対するデータの読み書きを制御するようにしたことを特徴とする請求項2に記載の論理集積回路。
The control unit has a program memory storing microinstructions including horizontal microcode,
The control unit has control lines for address indication and write enable signal output for the multiplication result storage dedicated memory and the addition result storage dedicated memory, and reads the microinstruction from the program memory. By transmitting ON / OFF information of each bit constituting the included horizontal microcode to the multiplication result storage dedicated memory and the addition result storage dedicated memory via the control line, the multiplication result storage dedicated memory and the addition result 3. The logic integrated circuit according to claim 2, wherein reading / writing of data with respect to the storage-only memory is controlled.
前記加算器による演算結果のデータを一時的に格納するためのレジスタをさらに備えることを特徴とする請求項1乃至3のいずれかに記載の論理集積回路。   4. The logic integrated circuit according to claim 1, further comprising a register for temporarily storing data of a calculation result by the adder. 前記乗算器による演算処理と、前記加算器による演算処理とを同時に実行し得るようにしたことを特徴とする請求項1乃至4のいずれかに記載の論理集積回路。   5. The logic integrated circuit according to claim 1, wherein the arithmetic processing by the multiplier and the arithmetic processing by the adder can be executed simultaneously. 論理集積回路上における演算用回路についてのソースであって、
前記ソースは、請求項1乃至請求項5のいずれかに記載の論理集積回路上の演算用回路についてのハードウェア記述言語レベルのソースであることを特徴とする演算用回路のソース。
A source for an arithmetic circuit on a logic integrated circuit,
6. The source of an arithmetic circuit, wherein the source is a hardware description language level source for the arithmetic circuit on the logic integrated circuit according to any one of claims 1 to 5.
論理集積回路上における演算用回路についてのソースを記録したコンピュータ読み取り可能な記録媒体であって、
前記ソースは、請求項1乃至請求項5のいずれかに記載の論理集積回路上の演算用回路についてのハードウェア記述言語レベルのソースであることを特徴とする演算用回路のソースを記録したコンピュータ読み取り可能な記録媒体。
A computer-readable recording medium recording a source for an arithmetic circuit on a logic integrated circuit,
6. The computer in which the source of the arithmetic circuit is recorded, wherein the source is a hardware description language level source for the arithmetic circuit on the logic integrated circuit according to any one of claims 1 to 5. A readable recording medium.
JP2006118502A 2006-04-21 2006-04-21 Logic integrated circuit, source of arithmetic circuit, and computer-readable recording medium recording the source Active JP4979975B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006118502A JP4979975B2 (en) 2006-04-21 2006-04-21 Logic integrated circuit, source of arithmetic circuit, and computer-readable recording medium recording the source

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006118502A JP4979975B2 (en) 2006-04-21 2006-04-21 Logic integrated circuit, source of arithmetic circuit, and computer-readable recording medium recording the source

Publications (2)

Publication Number Publication Date
JP2007295128A true JP2007295128A (en) 2007-11-08
JP4979975B2 JP4979975B2 (en) 2012-07-18

Family

ID=38765322

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006118502A Active JP4979975B2 (en) 2006-04-21 2006-04-21 Logic integrated circuit, source of arithmetic circuit, and computer-readable recording medium recording the source

Country Status (1)

Country Link
JP (1) JP4979975B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8989242B2 (en) 2011-02-10 2015-03-24 Nec Corporation Encoding/decoding processor and wireless communication apparatus

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01169669A (en) * 1987-12-25 1989-07-04 Yokogawa Medical Syst Ltd High-speed numeric value arithmetic device
JPH01170111A (en) * 1987-12-25 1989-07-05 Hitachi Ltd Digital signal processor
JPH01266669A (en) * 1988-04-19 1989-10-24 Mitsubishi Electric Corp Numeric value calculating equipment
JPH025179A (en) * 1988-01-29 1990-01-10 Texas Instr Inc <Ti> Integrated circuit and reception of data
JPH0289540U (en) * 1988-12-23 1990-07-16
JPH0651946A (en) * 1992-06-16 1994-02-25 Hewlett Packard Co <Hp> Verification of register-file writing authorization utilizing self-time type floating- point exception flag

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01169669A (en) * 1987-12-25 1989-07-04 Yokogawa Medical Syst Ltd High-speed numeric value arithmetic device
JPH01170111A (en) * 1987-12-25 1989-07-05 Hitachi Ltd Digital signal processor
JPH025179A (en) * 1988-01-29 1990-01-10 Texas Instr Inc <Ti> Integrated circuit and reception of data
JPH01266669A (en) * 1988-04-19 1989-10-24 Mitsubishi Electric Corp Numeric value calculating equipment
JPH0289540U (en) * 1988-12-23 1990-07-16
JPH0651946A (en) * 1992-06-16 1994-02-25 Hewlett Packard Co <Hp> Verification of register-file writing authorization utilizing self-time type floating- point exception flag

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8989242B2 (en) 2011-02-10 2015-03-24 Nec Corporation Encoding/decoding processor and wireless communication apparatus

Also Published As

Publication number Publication date
JP4979975B2 (en) 2012-07-18

Similar Documents

Publication Publication Date Title
US8612726B2 (en) Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type
GB2464178A (en) SIMD processor with iterative multiply/accumulate instruction for finite impulse response filters
Cheah et al. iDEA: A DSP block based FPGA soft processor
JP2006146953A (en) Processor, system lsi, design method of system lsi, and recording medium with the same recorded thereon
JP3954171B2 (en) How to fill a vector with scalar values on a computer
US6505288B1 (en) Matrix operation apparatus and digital signal processor capable of performing matrix operations
KR102000894B1 (en) Multi-function execution lanes for image processors
JP2001504959A (en) 8-bit microcontroller with RISC architecture
JP3805314B2 (en) Processor
Moorer The lucasfilm audio signal processor
Guccione et al. Design advantages of run-time reconfiguration
JP4979975B2 (en) Logic integrated circuit, source of arithmetic circuit, and computer-readable recording medium recording the source
JP4391053B2 (en) Digital signal processor having multiple independent dedicated processors
US11327761B2 (en) Processing device with vector transformation execution
Enzler et al. Co-Simulation of a Hybrid Multi-Context Architecture.
US6260136B1 (en) Substitute register for use in a high speed data processor
JP2002229970A (en) Simd product sum operation method, sum of product sum arithmetic circuit and semiconductor integrated circuit device
JP2013161484A (en) Reconfigurable computing apparatus, first memory controller and second memory controller therefor, and method of processing trace data for debugging therefor
Rani et al. Novel design of 32-bit asynchronous (RISC) microprocessor & its implementation on FPGA
Kuzmanov et al. Arbitrating Instructions in an ρμ-coded CCM
JPH09305401A (en) Computer and compiler
JP2004303058A (en) Vector processor and its data processing method
JP3532026B2 (en) Arithmetic unit
Kourav et al. Design and Implementation of 64-Bit Arithmetic Logic Unit on FPGA Using VHDL
Tell A domain specific DSP processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111102

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

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

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

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4979975

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250