JP3413940B2 - Arithmetic circuit - Google Patents
Arithmetic circuitInfo
- Publication number
- JP3413940B2 JP3413940B2 JP05937994A JP5937994A JP3413940B2 JP 3413940 B2 JP3413940 B2 JP 3413940B2 JP 05937994 A JP05937994 A JP 05937994A JP 5937994 A JP5937994 A JP 5937994A JP 3413940 B2 JP3413940 B2 JP 3413940B2
- Authority
- JP
- Japan
- Prior art keywords
- product
- carry
- partial
- arithmetic
- circuit
- 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 - Fee Related
Links
Landscapes
- Complex Calculations (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、DSP(Digital Signa
l Processor)などに用いられ、積和演算を繰り返すMA
C構造(Multiply-Accumulate architecture) をとる演
算回路に関するものである。The present invention relates to a DSP (Digital Signa).
MA, which is used for a processor
The present invention relates to an arithmetic circuit having a C structure (Multiply-Accumulate architecture).
【0002】[0002]
【従来の技術】DSPに用いられるMAC構造の演算回
路は、通常、次の方程式の解を求めるために用いられ
る。
A=M1 ・N1 +M2 ・M2 +…+Mn ・Nn …(1)
そして、この方程式は、いわゆるMACオペレーション
という次式に示す基本ステップに分割することができ
る。
Ai =Ai-1 +Mi ・Ni …(2)
近年のDSPにおいては、このMACオペレーション
が、1命令サイクルで実行される。2. Description of the Related Art An arithmetic circuit having a MAC structure used in a DSP is usually used to find a solution of the following equation. A = M 1 · N 1 + M 2 · M 2 + ... + M n · N n (1) Then, this equation can be divided into so-called MAC operations, which are basic steps shown in the following equation. A i = A i-1 + M i · N i (2) In recent DSPs, this MAC operation is executed in one instruction cycle.
【0003】図4は一般的なMAC構造を有する演算回
路の構成例を示すブロック図、図5は図4の回路による
MACオペレーションを示すフローチャートである。図
4において、1は乗数格納レジスタ、2は被乗数格納レ
ジスタ、3は乗算器、4は積レジスタ、5は算術論理演
算器(ALU/adder) 、6はアキュムレータをそれぞれ示し
ている。FIG. 4 is a block diagram showing a configuration example of an arithmetic circuit having a general MAC structure, and FIG. 5 is a flow chart showing a MAC operation by the circuit of FIG. In FIG. 4, 1 is a multiplier storage register, 2 is a multiplicand storage register, 3 is a multiplier, 4 is a product register, 5 is an arithmetic logic unit (ALU / adder), and 6 is an accumulator.
【0004】このような構成においては、イニシャライ
ズされた状態では積レジスタ4の値Pおよびアキュムレ
ータ6の値Aは「0」である。MACオペレーションが
開始されると、乗数Mi が乗数格納レジスタ1に格納さ
れ、被乗数Ni が被乗数格納レジスタ2に格納される。
ただし、パラメータiは1≦i≦nなる関係を満足する
自然数である。そして、乗算器3において乗数格納レジ
スタ1に格納された乗数Mi と被乗数格納レジスタ2に
格納された被乗数Ni とが乗算され、乗算結果(Mi ・
Ni )が積レジスタ4に格納される。その結果、積レジ
スタ4の値Pi は(Mi ・Ni)となり、この積レジス
タの値Pi は算術論理演算器5に入力される。算術論理
演算器5においては、入力された積レジスタ4の値Pi
(=Mi ・N i )と、1サイクル前のMACオペレーシ
ョンにおいて算術論理演算器5で得られ、アキュムレー
タ6に保持されている値Ai-1 (=Ai-2 +Pi-1 )と
を用いて上述した(2)式に基づく算術論理演算が行わ
れる。そして、演算結果〔Ai-1 +Pi (=Mi ・
Ni )〕がアキュムレータ6に格納される。その結果、
アキュムレータ6の値Ai は(Ai-1 +Pi )となり、
このアキュムレータ6の値Ai は算術論理演算器5に入
力され、次サイクルのMACオペレーションの算術論理
演算に用いられる。以上の処理が、通常、1クロックサ
イクル毎に順次行われる。In such a configuration, the initialization
The value P of the product register 4 and the accumulation
The value A of the data 6 is “0”. MAC operation
Once started, the multiplier MiIs stored in the multiplier storage register 1
Multiplicand NiIs stored in the multiplicand storage register 2.
However, the parameter i satisfies the relationship of 1 ≦ i ≦ n.
It is a natural number. Then, in the multiplier 3, the multiplier storage register
Multiplier M stored in star 1iAnd the multiplicand storage register 2
Stored multiplicand NiAnd are multiplied, and the multiplication result (Mi・
Ni) Is stored in the product register 4. As a result, the product cash register
Value P of star 4iIs (Mi・ Ni), And this product Regis
Value PiIs input to the arithmetic and logic unit 5. Arithmetic logic
In the arithmetic unit 5, the value P of the input product register 4 is input.i
(= Mi・ N i) And MAC operation one cycle before
Accumulated by arithmetic logic unit 5
Value A held in data 6i-1(= Ai-2+ Pi-1)When
Arithmetic logic operation based on the above equation (2) is performed using
Be done. Then, the calculation result [Ai-1+ Pi(= Mi・
Ni)] Is stored in the accumulator 6. as a result,
Accumulator 6 value AiIs (Ai-1+ Pi),
Value A of this accumulator 6iEnters the arithmetic logic unit 5
And the arithmetic logic of the next cycle MAC operation
Used for calculation. The above process is usually performed in one clock
It will be done sequentially for each cycle.
【0005】また、図6は、図4の回路における乗算器
3の具体的な構成例を示すブロック図である。図6に示
すように、乗算器3は一般的に、部分積生成器31、部
分積換算器32、および2入力1出力のキャリープロパ
ゲート形加算器33により構成されている。この乗算器
3においては、まず部分積生成器31により乗数Mと被
乗数Nとの部分積が、たとえばブースアルゴリズムに基
づいて求められる(たとえば、「Joseph J.F.Cavanagh.
Digital Computer Arithmetic.McGraw-Hill,New York,
1985) 。部分積生成器31で求められた複数の部分積は
部分積換算器32に入力され、ここで減算あるいは加算
されて2つの部分積にまとめられて、キャリープロパゲ
ート形加算器33に出力される。キャリープロパゲート
形加算器33では、入力した部分積に対する加算処理が
なされ、その結果が積レジスタ4に格納される。FIG. 6 is a block diagram showing a concrete configuration example of the multiplier 3 in the circuit of FIG. As shown in FIG. 6, the multiplier 3 is generally composed of a partial product generator 31, a partial product converter 32, and a carry-propagate adder 33 having two inputs and one output. In the multiplier 3, the partial product generator 31 first obtains the partial product of the multiplier M and the multiplicand N based on, for example, the Booth algorithm (for example, “Joseph JFCavanagh.
Digital Computer Arithmetic.McGraw-Hill, New York,
1985). The plurality of partial products obtained by the partial product generator 31 are input to the partial product converter 32, where they are subtracted or added to be combined into two partial products and output to the carry propagate type adder 33. . In carry propagate adder 33, addition processing is performed on the input partial product, and the result is stored in product register 4.
【0006】図7は、このキャリープロパゲート形加算
器の構成例を示す図である。キャリープロパゲート形加
算器は、図7に示すように、複数の全加算器33−1〜
33−n(FA1〜FAn)を有し、全加算器33−i
で得られたキャリーは次段上位の全加算器33−i+1 に
順次伝搬され、最終段の全加算器33−nから総和sn
とキャリー出力carry out が得られる。FIG. 7 is a diagram showing a configuration example of this carry propagate type adder. The carry propagate adder includes a plurality of full adders 33-1 to 33-3 as shown in FIG.
33-n (FA1 to FAn) and full adder 33-i
The carry obtained in step S1 is sequentially propagated to the full adder 33-i + 1 in the next stage, and the sum sn from the full adder 33-n in the final stage.
And carry out carry out is obtained.
【0007】[0007]
【発明が解決しようとする課題】しかしながら、上述し
た従来の演算回路では、乗算器3にキャリー出力を次段
上位の全加算器に伝搬させるキャリープロパゲート形加
算器33を用いていることから、動作速度が遅いという
問題がある。However, in the above-described conventional arithmetic circuit, since the carry propagator type adder 33 for propagating the carry output to the next higher order full adder is used in the multiplier 3, There is a problem that the operation speed is slow.
【0008】この問題を解決するために、キャリープロ
パゲート形加算器33より動作速度の速いキャリールッ
クアヘッド形加算器、あるいはキャリーセレクト形加算
器を適用することも考えられるが、これらの加算器は、
回路規模が大きく、また充分に満足のいく動作速度を得
ることはできない。In order to solve this problem, it is conceivable to apply a carry look-ahead type adder or a carry select type adder, which operates faster than the carry propagate type adder 33, but these adders are used. ,
The circuit scale is large and it is not possible to obtain a sufficiently satisfactory operating speed.
【0009】本発明は、かかる事情に鑑みてなされたも
のであり、その目的は、動作速度の向上を図れ、回路規
模の増大を防止できる演算回路を提供することにある。The present invention has been made in view of the above circumstances, and an object thereof is to provide an arithmetic circuit capable of improving the operating speed and preventing an increase in circuit scale.
【0010】[0010]
【課題を解決するための手段】上記目的を達成するた
め、本発明の演算回路は、アキュムレータと、与えられ
た乗数と被乗数との部分積を求め、当該部分積の和を求
めて第1および第2の部分積を生成する部分積生成器
と、上記第1の部分積を保持する第1の積レジスタと、
上記第2の部分積を保持する第2の積レジスタと、上記
第1の積レジスタ、上記第2の積レジスタおよび上記ア
キュムレータに保持されたデータを加算し、第1および
第2の部分和を求めるキャリーセイブ形加算器と、上記
キャリーセイブ形加算器による第1および第2の部分和
に基づく算術論理演算を行い、その算術演算結果を上記
アキュムレータに保持させる算術論理演算器とを有す
る。In order to achieve the above object, the arithmetic circuit of the present invention obtains a partial product of an accumulator and a given multiplier and multiplicand, and obtains a sum of the partial products to obtain a first and a second product. A partial product generator that generates a second partial product; a first product register that holds the first partial product;
The second product register that holds the second partial product and the data held in the first product register, the second product register, and the accumulator are added to obtain the first and second partial sums. It has a carry-save adder to be obtained and an arithmetic-logical operation unit for performing an arithmetic-logical operation based on the first and second partial sums by the carry-save adder and holding the arithmetic operation result in the accumulator.
【0011】また、本発明の演算回路は、上記キャリー
セイブ形演算器の入力前段に、選択信号の入力に応じ
て、積和演算処理を行うか算術論理演算処理を行うかを
選択する機能選択回路を有する。Further, the arithmetic circuit of the present invention has a function selection for selecting whether to perform the product-sum operation processing or the arithmetic logic operation processing according to the input of the selection signal in the input stage of the carry save type operation unit. It has a circuit.
【0012】[0012]
【作用】本発明の演算回路によれば、部分積生成器にお
いて、与えられた乗数と被乗数との部分積が求められ、
次いで求めた部分積の和が求められて第1および第2の
部分積が生成され、これら第1および第2の部分積は第
1の積レジスタおよび第2の積レジスタに格納される。
第1および第2の積レジスタに格納された部分積はキャ
リーセイブ形加算器で読み出される。キャリーセイブ形
加算器では、読み出した部分積およびアキュムレータに
保持されたデータに対してキャリーセイブ形の加算処理
が行われ、第1および第2の部分和が求められる。これ
ら第1および第2の部分和は、算術論理演算器に入力さ
れ、ここで所定の算術論理演算が行われ、その算術演算
結果はアキュムレータに格納される。アキュムレータに
格納されたデータは、キャリーセイブ形加算器に入力さ
れ、次サイクルの演算処理に用いられる。According to the arithmetic circuit of the present invention, the partial product generator obtains the partial product of the given multiplier and multiplicand,
Then, the obtained partial products are summed to generate first and second partial products, and the first and second partial products are stored in the first product register and the second product register.
The partial products stored in the first and second product registers are read by the carry-save adder. The carry-save adder performs a carry-save addition process on the read partial product and the data held in the accumulator to obtain the first and second partial sums. The first and second partial sums are input to an arithmetic logic operation unit, where a predetermined arithmetic logic operation is performed, and the arithmetic operation result is stored in an accumulator. The data stored in the accumulator is input to the carry-save adder and used for the arithmetic processing in the next cycle.
【0013】また、本発明によれば、機能選択回路に入
力される選択信号の入力レベルに応じて、積和演算処理
を行うか算術論理演算処理を行うかが選択される。この
機能選択に応じた演算処理がキャリーセイブ形加算器あ
るいは算術論理演算器で行われる。Further, according to the present invention, whether to perform the product-sum operation processing or the arithmetic logic operation processing is selected according to the input level of the selection signal input to the function selection circuit. The carry-save adder or the arithmetic logic operation unit performs the operation processing according to the function selection.
【0014】[0014]
【実施例】図1は、本発明に係る演算回路の一実施例を
示すブロック構成図であって、従来例を示す図4および
図6と同一構成部分と同一符号をもって表す。すなわ
ち、1は乗数格納レジスタ、2は被乗数格納レジスタ、
3aは乗算器、31は部分積生成器、32は部分積換算
器、34Lは第1の積レジスタ、34Rは第2の積レジ
スタ、35は3入力2出力のキャリーセイブ形加算器、
5は2入力1出力の算術論理演算器(ALU/adder) 、6は
アキュムレータをそれぞれ示している。DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 1 is a block diagram showing an embodiment of an arithmetic circuit according to the present invention, and the same components as those in FIGS. That is, 1 is a multiplier storage register, 2 is a multiplicand storage register,
3a is a multiplier, 31 is a partial product generator, 32 is a partial product converter, 34L is a first product register, 34R is a second product register, 35 is a carry-save adder with three inputs and two outputs,
Reference numeral 5 is a 2-input 1-output arithmetic logic unit (ALU / adder), and 6 is an accumulator.
【0015】乗算器3aは、図6の乗算器3のキャリー
プロパゲート形加算器33の代わりに3入力2出力のキ
ャリーセイブ形加算器35を適用し、2つの部分積PP
1 ,PP2 を出力する部分積換算器32とキャリーセイ
ブ形加算器35の2入力との間にそれぞれ第1の積レジ
スタ34Lおよび第2の積レジスタ34Rが設けられて
いる。そして、キャリーセイブ形加算器35の残りの1
入力にはアキュムレータ6の出力が接続され、キャリー
セイブ形加算器35の2出力は算術論理演算器5の2入
力にそれぞれ接続されている。The multiplier 3a uses a carry-save adder 35 with three inputs and two outputs instead of the carry propagate adder 33 of the multiplier 3 shown in FIG.
1, the first product register 34L and a second product register 34R are respectively provided between the two inputs of the partial product terms 32 and carry save type adder 35 which outputs the PP 2. The remaining 1 of the carry save adder 35
The output of the accumulator 6 is connected to the input, and the two outputs of the carry-save adder 35 are connected to the two inputs of the arithmetic and logic unit 5, respectively.
【0016】第1の積レジスタ34Lは、部分積換算器
32で得られた値PLの部分積PP 1 を保持する。第2
の積レジスタ34Rは、部分積換算器32で得られた値
PRの部分積PP2 を保持する。The first product register 34L is a partial product converter.
The partial product PP of the value PL obtained in 32 1Hold. Second
The product register 34R of is the value obtained by the partial product converter 32.
Partial product of PR PP2Hold.
【0017】キャリーセイブ形加算器35は、第1の積
レジスタ34L、第2の積レジスタ34Rおよびアキュ
ムレータ6に保持されたデータを、キャリーを保存した
形で加算し、第1および第2の部分和PS1 ,PS2 を
求め、算術論理演算器5に出力する。The carry-save adder 35 adds the data held in the first product register 34L, the second product register 34R, and the accumulator 6 in a carry-preserved form, and adds the data to the first and second parts. The sums PS 1 and PS 2 are obtained and output to the arithmetic and logic unit 5.
【0018】図2は、キャリーセイブ形加算器35の構
成例を示す図で、図中、35−1〜35−n(FA1〜
FAn)は全加算器を示している。キャリーセイブ形加
算器35は、図2に示すように、3入力xn,yn,z
nの総和を求め、図7に示すキャリープロパゲート形加
算器と異なり、キャリーを上位側に伝搬させるのではな
く、キャリーを上位側に送らずに保存(SAVE) して加算
の際に加え、各全加算器35−1〜35−nから和出力
S1 〜Sn、およびキャリー出力C1 〜Cnを出力す
る。FIG. 2 is a diagram showing a configuration example of the carry-save adder 35, in which 35-1 to 35-n (FA1 to 35-n are shown.
FAn) indicates a full adder. The carry-save adder 35 has three inputs xn, yn, z as shown in FIG.
Unlike the carry propagate type adder shown in FIG. 7, the carry is not propagated to the upper side, but the carry is saved (SAVE) without being sent to the upper side and added when adding. The full adders 35-1 to 35-n output sum outputs S 1 to Sn and carry outputs C 1 to Cn.
【0019】次に、上記構成による動作を説明する。M
ACオペレーションが開始されると、乗数Mi が乗数格
納レジスタ1に格納され、被乗数Ni が被乗数格納レジ
スタ2に格納される。そして、乗算器3aの部分積生成
器31において乗数格納レジスタ1に格納された乗数M
i と被乗数格納レジスタ2に格納された被乗数Ni との
部分積が、たとえばブースアルゴリズムに基づいて求め
られる。部分積生成器31で求められた複数の部分積は
部分積換算器32に入力され、ここで減算あるいは加算
されて2つの部分積PP1 ,PP2 にまとめられ、部分
積PP1 は第1の積レジスタ34Lに格納され、部分積
PP2 は第2の積レジスタ34Rに格納される。Next, the operation of the above configuration will be described. M
When the AC operation is started, the multiplier M i is stored in the multiplier storage register 1 and the multiplicand N i is stored in the multiplicand storage register 2. The multiplier M stored in the multiplier storage register 1 in the partial product generator 31 of the multiplier 3a
i and the partial product of the multiplicand N i stored in the multiplicand storage register 2, for example determined based on the Booth algorithm. The plurality of partial products obtained by the partial product generator 31 are input to the partial product converter 32, where they are subtracted or added to be combined into two partial products PP 1 and PP 2 , and the partial product PP 1 is the first partial product PP 1 . , And the partial product PP 2 is stored in the second product register 34R.
【0020】第1および第2の積レジスタ34R,34
Lに保持された値PLi ,PRi の部分積は、キャリー
セイブ形加算器35により読み出される。また、キャリ
ーセイブ形加算器35には、1サイクル前のMACオペ
レーションにおいて算術論理演算器5で得られ、アキュ
ムレータ6に保持されている値Ai-1 が入力される。キ
ャリーセイブ形加算器35では、3つの入力に対する加
算処理が行われて、第1および第2の部分和PS1 ,P
S2 が算出され、算術論理演算器5に出力される。First and second product registers 34R, 34
The partial product of the values PL i and PR i held in L is read by the carry-save adder 35. Further, the carry-save adder 35 receives the value A i-1 obtained by the arithmetic and logic unit 5 in the MAC operation one cycle before and held in the accumulator 6. The carry-save adder 35 performs addition processing on the three inputs to generate the first and second partial sums PS 1 , P 2.
S 2 is calculated and output to the arithmetic and logic unit 5.
【0021】算術論理演算器5においては、入力された
第1および第2の部分和PS1 ,PS2 に基づく算術論
理演算が行われ、その演算結果がアキュムレータ6に格
納される。その結果、アキュムレータ6の値Ai は(A
i-1 +Pi )となり、このアキュムレータ6の値Ai は
キャリーセイブ形加算器35に入力され、次サイクルの
MACオペレーションに用いられる。以上の処理が、通
常、1クロックサイクル毎に順次行われる。In the arithmetic logic operation unit 5, an arithmetic logic operation is performed based on the input first and second partial sums PS 1 and PS 2 , and the operation result is stored in the accumulator 6. As a result, the value A i of the accumulator 6 becomes (A
i-1 + P i ), and the value A i of the accumulator 6 is input to the carry-save adder 35 and used for the MAC operation of the next cycle. The above processing is normally sequentially performed every clock cycle.
【0022】以上説明したように、本実施例によれば、
アキュムレータ6と、与えられた乗数と被乗数との部分
積を求め、部分積の総和を求めて第1および第2の部分
積PP1 ,PP2 を生成する部分積生成器31および部
分積換算器32と、第1の部分積PP1 を保持する第1
の積レジスタ34Lと、第2の部分積PP2 を保持する
第2の積レジスタ34Rと、第1の積レジスタ34L、
第2の積レジスタ34Rおよびアキュムレータ6に保持
されたデータを加算し、第1および第2の部分和P
S1 ,PS2 を求めるキャリーセイブ形加算器35と、
キャリーセイブ形加算器35による第1および第2の部
分和PS1 ,PS2 に基づく算術演算を行い、その算術
演算結果をアキュムレータ6に保持させる算術論理演算
器5とを設けたので、ディジタル信号処理に必須の積和
演算に高速化を図れ、またデバイスにおけるシリコン面
積を小さくでき回路規模の増大を防止できる。また、従
来の回路と同様の命令をそのまま用いることができ、高
速のクロックに動作可能なDSPを容易に実現すること
ができる。As described above, according to this embodiment,
Accumulator 6, partial product generator 31 and partial product converter for calculating partial products of given multipliers and multiplicands, and for summing partial products to generate first and second partial products PP 1 and PP 2 . 32, and a first holding a first partial product PP 1
Product register 34L, a second product register 34R that holds the second partial product PP 2 , and a first product register 34L,
The data held in the second product register 34R and the accumulator 6 are added, and the first and second partial sums P are added.
A carry-save adder 35 for obtaining S 1 and PS 2 ,
Since the carry-save adder 35 performs the arithmetic operation based on the first and second partial sums PS 1 and PS 2 and the arithmetic logic operation unit 5 for holding the arithmetic operation result in the accumulator 6, the digital signal is provided. The product-sum operation, which is essential for processing, can be speeded up, and the silicon area in the device can be reduced, thus preventing an increase in circuit scale. Further, the same instruction as that of the conventional circuit can be used as it is, and a DSP operable with a high speed clock can be easily realized.
【0023】図3は、本発明に係る演算回路の要部の他
の構成例を示す回路図である。なお、この構成は、iビ
ットに対応する構成を示している。この回路では、キャ
リーセイブ形加算器の全加算器35−iの入力前段に機
能選択回路36iが設けられ、機能選択回路36iへの
選択回路selの入力レベルに応じて通常の算術論理演
算処理とキャリーセイブ形加算処理とを切り換えるよう
に構成されいる。FIG. 3 is a circuit diagram showing another configuration example of the main part of the arithmetic circuit according to the present invention. It should be noted that this configuration shows a configuration corresponding to i bits. In this circuit, a function selection circuit 36i is provided in front of the input of the full adder 35-i of the carry save type adder, and a normal arithmetic logic operation process is performed according to the input level of the selection circuit sel to the function selection circuit 36i. It is configured to switch between carry-save type addition processing.
【0024】全加算器35−iは、和生成回路351
(sum)とキャリー生成回路352(carry)と
から構成されている。和生成回路351は、3入力x
i’,yi’,zi’の排他的論理和をとり、その結果
を和出力siとして出力する。キャリー生成回路352
は、(xi’・yi’)+(xi’・zi’)+(y
i’・zi’)を求め、キャリー出力ciとして出力す
る。The full adder 35-i is a sum generation circuit 351.
(Sum) and carry generation circuit 352 (carry). The sum generation circuit 351 has 3 inputs x
The exclusive OR of i ′, yi ′, and zi ′ is calculated, and the result is output as the sum output si. Carry generation circuit 352
Is (xi ′ · yi ′) + (xi ′ · zi ′) + (y
i ′ · zi ′) is obtained and output as a carry output ci.
【0025】機能選択回路36iは、2入力オア回路3
61、2入力アンド回路362,363、およびインバ
ータ364により構成されている。オア回路361の一
方の入力はデータxiの入力ラインに接続され、他方の
入力はインバータ364の出力に接続されている。オア
回路361の出力は全加算器35−iのキャリー生成回
路352の入力xi’に接続されている。アンド回路3
62,363の一方の入力およびインバータ364の入
力は選択信号selの入力ラインに接続されている。ア
ンド回路362の他方の入力はデータyiの入力ライン
に接続され、その接続中点は全加算器35−iのキャリ
ー生成回路352の入力yi’に接続されている。ま
た、アンド回路362の出力は和生成回路351の入力
yi’に接続されている。アンド回路363の他方の入
力はデータziの入力ラインに接続され、その出力はキ
ャリー生成回路352の入力zi’および和生成回路3
51の入力zi’に接続されている。The function selection circuit 36i is a 2-input OR circuit 3
61, two-input AND circuits 362 and 363, and an inverter 364. One input of the OR circuit 361 is connected to the input line of the data xi, and the other input is connected to the output of the inverter 364. The output of the OR circuit 361 is connected to the input xi ′ of the carry generation circuit 352 of the full adder 35-i. AND circuit 3
One input of 62 and 363 and the input of the inverter 364 are connected to the input line of the selection signal sel. The other input of the AND circuit 362 is connected to the input line of the data yi, and the midpoint of the connection is connected to the input yi ′ of the carry generation circuit 352 of the full adder 35-i. The output of the AND circuit 362 is connected to the input yi ′ of the sum generation circuit 351. The other input of the AND circuit 363 is connected to the input line of the data zi, and its output is the input zi ′ of the carry generation circuit 352 and the sum generation circuit 3
It is connected to the input zi 'of 51.
【0026】このような回路構成において、選択信号s
elがローレベル「0」で機能選択回路36iに入力さ
れると、全加算器の和出力si=xiとなり、キャリー
出力ci=yiとなる。すなわち、選択信号selがロ
ーレベル「0」の場合、本回路では算術論理演算器(A
LU/adder)と同等のオペレーションが行われ
る。これに対して、選択信号selがハイレベル「1」
の場合、上述した本来のキャリーセイブ形加算器と同等
のオペレーションが行われる。In such a circuit configuration, the selection signal s
When el is input to the function selection circuit 36i at low level "0", the sum output si of the full adder becomes si = xi and the carry output ci = yi. That is, when the selection signal sel is low level "0", the arithmetic logic unit (A
An operation equivalent to LU / adder) is performed. On the other hand, the selection signal sel is at the high level “1”.
In this case, an operation equivalent to that of the original carry-save adder described above is performed.
【0027】このような構成にすることにより、少ない
回路素子で、より多機能で効率の良い回路を実現できる
利点がある。With such a structure, there is an advantage that a more multifunctional and efficient circuit can be realized with a small number of circuit elements.
【0028】[0028]
【発明の効果】以上説明したように、本発明の演算回路
によれば、ディジタル信号処理に必須の積和演算の高速
化を図れ、またデバイスにおけるシリコン面積を小さく
でき回路規模の増大を防止できる。また、従来の回路と
同様の命令をそのまま用いることができ、高速のクロッ
クに動作可能なDSPを容易に実現することができる。As described above, according to the arithmetic circuit of the present invention, it is possible to speed up the product-sum operation which is indispensable for digital signal processing, and to reduce the silicon area in the device and prevent an increase in the circuit scale. . Further, the same instruction as that of the conventional circuit can be used as it is, and a DSP operable with a high speed clock can be easily realized.
【0029】また、キャリーセイブ形演算器の入力前段
に、選択信号の入力に応じて、積和演算処理を行うか算
術論理演算処理を行うかを選択する機能選択回路を設け
たので、少ない回路素子で、より多機能で効率の良い回
路を実現できる利点がある。Further, since a function selection circuit for selecting whether to perform product-sum operation processing or arithmetic logic operation processing in accordance with the input of the selection signal is provided in the input stage of the carry-save type operation unit, a small number of circuits are provided. The element has an advantage that a multi-functional and efficient circuit can be realized.
【図1】本発明に係る演算回路の一実施例を示すブロッ
ク図である。FIG. 1 is a block diagram showing an embodiment of an arithmetic circuit according to the present invention.
【図2】図1の演算回路に用いられるキャリーセイブ形
加算器の構成例を示す図である。FIG. 2 is a diagram showing a configuration example of a carry-save adder used in the arithmetic circuit of FIG.
【図3】本発明に係る演算回路の要部の他の構成例を示
す回路図である。FIG. 3 is a circuit diagram showing another configuration example of the main part of the arithmetic circuit according to the present invention.
【図4】一般的なMAC構造を有する演算回路の構成例
を示すブロック図である。FIG. 4 is a block diagram showing a configuration example of an arithmetic circuit having a general MAC structure.
【図5】図4の回路に基づくMACオペレーションを示
すフローチャートである。5 is a flow chart illustrating MAC operation based on the circuit of FIG.
【図6】図4の演算回路に用いられる乗算器の従来の構
成例を示すブロック図である。6 is a block diagram showing a conventional configuration example of a multiplier used in the arithmetic circuit of FIG.
【図7】キャリープロバゲート形加算器の構成例を示す
ブロック図である。FIG. 7 is a block diagram showing a configuration example of a carry-provgate adder.
1…乗数格納レジスタ 2…被乗数格納レジスタ 3a…乗算器 31…部分積生成器 32…部分積換算器 34L…第1の積レジスタ 34R…第2の積レジスタ 35…キャリーセイブ形加算器 351…和生成回路 352…キャリー生成回路 36i…機能選択回路 361…オア回路 362,363…アンド回路 364…インバータ 5…算術論理演算器(ALU/adder) 6…アキュムレータ 1 ... Multiplier storage register 2 ... Multiplicand storage register 3a ... Multiplier 31 ... Partial product generator 32 ... Partial product converter 34L ... First product register 34R ... second product register 35 ... Carry-save adder 351 ... Sum generation circuit 352 ... Carry generation circuit 36i ... Function selection circuit 361 ... OR circuit 362, 363 ... AND circuit 364 ... Inverter 5 ... Arithmetic logic operation unit (ALU / adder) 6 ... Accumulator
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/52 G06F 17/10 Front page continuation (58) Fields surveyed (Int.Cl. 7 , DB name) G06F 7/52 G06F 17/10
Claims (2)
の和を求めて第1および第2の部分積を生成する部分積
生成器と、 上記第1の部分積を保持する第1の積レジスタと、 上記第2の部分積を保持する第2の積レジスタと、 上記第1の積レジスタ、上記第2の積レジスタおよび上
記アキュムレータに保持されたデータを加算し、第1お
よび第2の部分和を求めるキャリーセイブ形加算器と、 上記キャリーセイブ形加算器による第1および第2の部
分和に基づく算術論理演算を行い、その算術演算結果を
上記アキュムレータに保持させる算術論理演算器とを有
する演算回路。1. An accumulator, a partial product generator for obtaining a partial product of a given multiplier and multiplicand, and obtaining a sum of the partial products to generate first and second partial products; A first product register that holds a partial product; a second product register that holds the second partial product; a data stored in the first product register, the second product register, and the accumulator; A carry-save adder for adding and obtaining first and second partial sums, and an arithmetic logic operation based on the first and second partial sums by the carry-save adder, and the arithmetic operation result is the accumulator. An arithmetic circuit having an arithmetic and logic unit to be held by the.
に、選択信号の入力に応じて、積和演算処理を行うか算
術論理演算処理を行うかを選択する機能選択回路を有す
る請求項1記載の演算回路。2. A function selection circuit for selecting whether to perform product-sum operation processing or arithmetic logic operation processing in accordance with an input of a selection signal, in the input stage of the carry-save operation unit. Arithmetic circuit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05937994A JP3413940B2 (en) | 1994-03-29 | 1994-03-29 | Arithmetic circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05937994A JP3413940B2 (en) | 1994-03-29 | 1994-03-29 | Arithmetic circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07271555A JPH07271555A (en) | 1995-10-20 |
JP3413940B2 true JP3413940B2 (en) | 2003-06-09 |
Family
ID=13111597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05937994A Expired - Fee Related JP3413940B2 (en) | 1994-03-29 | 1994-03-29 | Arithmetic circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3413940B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181484B2 (en) * | 2001-02-21 | 2007-02-20 | Mips Technologies, Inc. | Extended-precision accumulation of multiplier output |
AU2003270874A1 (en) | 2002-09-24 | 2004-04-19 | Interdigital Technology Corporation | Computationally efficient mathematical engine |
-
1994
- 1994-03-29 JP JP05937994A patent/JP3413940B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07271555A (en) | 1995-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3689183B2 (en) | Accurate and effective sticky bit calculation for accurate floating-point division / square root operations | |
US5790446A (en) | Floating point multiplier with reduced critical paths using delay matching techniques | |
JP4955182B2 (en) | Integer calculation field range extension | |
US7395304B2 (en) | Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic | |
JP2002108606A (en) | Sticky bit generating circuit and multiplier | |
JP3139466B2 (en) | Multiplier and product-sum operator | |
JPH0454633A (en) | High radix divider | |
JPH0368416B2 (en) | ||
US5889689A (en) | Hierarchical carry-select, three-input saturation | |
US5910910A (en) | Circuit and method for rapid calculation of quotients and square roots | |
US6912559B1 (en) | System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit | |
Lang et al. | Very-high radix combined division and square root with prescaling and selection by rounding | |
JP3537378B2 (en) | Adders and integrated circuits | |
JP3413940B2 (en) | Arithmetic circuit | |
JP3803438B2 (en) | Floating point multiplication and accumulator | |
US7167885B2 (en) | Emod a fast modulus calculation for computer systems | |
US5351207A (en) | Methods and apparatus for subtraction with 3:2 carry-save adders | |
Raghunath et al. | A compact carry-save multiplier architecture and its applications | |
JPH04172526A (en) | Floating point divider | |
JPS6259828B2 (en) | ||
JP3793505B2 (en) | Arithmetic unit and electronic circuit device using the same | |
US5208769A (en) | Unsigned integer multiply/divide circuit | |
JPH0578049B2 (en) | ||
JP3517162B2 (en) | Division and square root arithmetic unit | |
JP3122622B2 (en) | Division device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080404 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090404 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090404 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100404 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |