JP2870018B2 - Product-sum operation circuit - Google Patents
Product-sum operation circuitInfo
- Publication number
- JP2870018B2 JP2870018B2 JP14566089A JP14566089A JP2870018B2 JP 2870018 B2 JP2870018 B2 JP 2870018B2 JP 14566089 A JP14566089 A JP 14566089A JP 14566089 A JP14566089 A JP 14566089A JP 2870018 B2 JP2870018 B2 JP 2870018B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- input
- data
- rom
- calculation
- 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
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、画像・音声のディジタル処理等に使用され
る積和演算回路に関し、特にLSI化に好適な方式を提供
するものである。DETAILED DESCRIPTION OF THE INVENTION [Industrial Application Field] The present invention relates to a product-sum operation circuit used for digital processing of images and sounds, and more particularly, to a method suitable for LSI implementation.
〔発明の概要〕 本発明は積和演算回路に関し、各桁の値xnmに対し
て、(xnm−1/2)を用いて演算を行うことにより、構
成を簡単にして良好な演算結果が得られるようにしたも
のである。[Summary of the Invention] The present invention relates to a multiply-accumulate operation circuit, by performing an operation using (x nm −1/2) for a value x nm of each digit, thereby simplifying the configuration and achieving a good operation result. Is obtained.
例えばN項の積和演算 Cnは係数 Xnはデータ を行う場合に、XnをMビットの2進数 Xn=(xnM,xnM-1‥‥xn1) ‥‥(2) xは0または1 xnM:MSB xn1:LSB としたとき、Xnが2′sコンプリメントで表されていた
場合には、Yの値は もしくは と表すことができる。For example, N-sum product operation When Cn is a coefficient and Xn is data, Xn is an M-bit binary number Xn = ( xnM , xnM-1 ‥‥ xn1 ) ‥‥ (2) x is 0 or 1 xnM : MSB xn1 : Assuming LSB, if Xn is represented by 2's complement, the value of Y is Or It can be expressed as.
ここでCnが固定係数とした場合に、(3′)式は第3
図に示すようにハードウェア化することができる。すな
わち図においてN個のデータ(X1,X2‥‥XN)がそれ
ぞれがMビットの入力端子(11)〜(1N)に供給され
る。これらの入力端子(11)〜(1N)に供給されたデ
ータがそれぞれ並直列変換回路(21)〜(2N)に供給
され、それぞれ直列に変換されたデータが各桁ごとに取
出される。Here, when Cn is a fixed coefficient, the equation (3 ′) is
As shown in the figure, hardware can be used. That is, in the figure, N pieces of data (X 1 , X 2 ‥‥ X N ) are respectively supplied to M-bit input terminals (1 1 ) to (1 N ). The data supplied to these input terminals (1 1 ) to (1 N ) are supplied to parallel-to-serial conversion circuits (2 1 ) to (2 N ), respectively, and the serially converted data is extracted for each digit. Is done.
この取出されたデータ(Nビット)がNビットの入力
(アドレス)を有するリードオンリーメモリ(ROM)
(3)に供給される。このROM(3)には入力されるN
ビットの各桁のデータに対して、 の値が書込まれている。すなわちこの値は、N項の内の
その桁のビットのデータ(xnm)が“1"になっている項
の係数(Cn)のみを加算した値である。なおこの値のビ
ット数は計算精度等に応じた任意のビット数(N′)と
される。The fetched data (N bits) is a read-only memory (ROM) having an N-bit input (address).
It is supplied to (3). N input to this ROM (3)
For each digit of data, Is written. That is, this value is a value obtained by adding only the coefficient (Cn) of the term whose bit data (x nm ) of the N term is “1”. The number of bits of this value is an arbitrary number of bits (N ') according to the calculation accuracy and the like.
このROM(3)の出力(N′ビット)がN′ビットの
例えば2′sコンプリメントの加減算器(4)に供給さ
れる。この加減算器(4)の出力が(÷2:1桁繰り下
げ)のデータシフト回路(5),1クロックの遅延回路
(6)及びアンド回路(7)を介して加減算器(4)に
供給されることにより、順次桁をシフトした累加算が行
われる。The output (N 'bit) of the ROM (3) is supplied to an adder / subtracter (4) of N' bits, for example, a 2's complement. The output of the adder / subtractor (4) is supplied to the adder / subtractor (4) via a data shift circuit (5) (÷ 2: one digit down), a one-clock delay circuit (6) and an AND circuit (7). Thus, the cumulative addition in which the digits are sequentially shifted is performed.
そしてこの回路において、アンド回路(7)の他方の
信号S1はROM(3)の入力がLSB(m=1)のときのみ
全て“0"とされる。また加減算器(4)の演算制御信号
S2はROM(3)の入力がMSB(m=M)のときのみ減算
となるようにされる。And in this circuit, the other signals S 1 of the AND circuit (7) is the input of ROM (3) is the only all "0" when the LSB (m = 1). The operation control signal S 2 of the adder-subtracter (4) is adapted input of ROM (3) is subtracted only when the MSB (m = M).
これによってこの回路において上述の(3′)式が実
行され、ROM(3)の入力データがMSB(m=M)のとき
にその演算結果(Y)が出力端子(8)に取出される。As a result, the above equation (3 ') is executed in this circuit, and when the input data of the ROM (3) is MSB (m = M), the operation result (Y) is taken out to the output terminal (8).
なお計算の1例として、例えば4項の積和演算を行う
場合に、 C1=0.25 C2=0.125 C3=−0.375 C4=−0.5 とすると、ROM(3)の内容は次の表に示すようにな
る。Note as an example of calculations, when performing product-sum operation, for example, four paragraphs, when C 1 = 0.25 C 2 = 0.125 C 3 = -0.375 C 4 = -0.5, the following table contents of ROM (3) It becomes as shown in.
とすると、実際の演算は次に示すように行われる。 Then, the actual calculation is performed as follows.
なお、xは2′sコンプリメントの計算における符号
拡張で、計算結果の符号ビットと同じものを上位につけ
たものである。 Here, x is a sign extension in the calculation of the 2's complement, and the same as the sign bit of the calculation result is added to the higher order.
従ってこの回路によれば、係数が固定の場合に特に有
効である。データ語長がハードウェア規模に及ぼす影響
が少なく、長語長データ入力にも容易に対応できる。係
数語長を大きくとって高精度の計算を行うことも容易に
できる。クリティカルパス内にROMと加減算器が各1個
あるだけなので、高速動作が可能である。等の利点があ
り、Nが比較的小さい(4〜12程度)応用、特に画像デ
ータ圧縮用のコサイン変換や、入力を分割して計算でき
る高速フーリエ変換における行列計算等に極めて有効で
ある。Therefore, this circuit is particularly effective when the coefficient is fixed. The influence of the data word length on the hardware scale is small, and the input of long word length data can be easily handled. It is also easy to perform a highly accurate calculation by increasing the coefficient word length. Since there is only one ROM and one adder / subtractor in the critical path, high-speed operation is possible. This is extremely effective for applications where N is relatively small (approximately 4 to 12), in particular, cosine transform for compressing image data, matrix calculation in fast Fourier transform that can calculate by dividing input, and the like.
ところが上述の回路において、M回の累加算の内でた
だ1回だけ減算を必要とするため、データ語長が大きい
とき即ちMが大きいとき、M回に1回しか有効でない回
路が存在するというハードウェア上の非効率な面があ
る。この非効率は係数語長を大きくとったときさらに増
大する。またクリティカルパスの面でも若干の不利益と
なる。等の問題点があり、特に極めて高い計算精度が要
求される場合の専用LSI設計等においてハードウェアサ
イズ,動作速度の両面で障害となるおそれがあった。However, in the above-described circuit, since only one subtraction is required in M cumulative additions, there is a circuit that is effective only once in M when the data word length is large, that is, when M is large. There are hardware inefficiencies. This inefficiency is further increased when the coefficient word length is increased. There is also a slight disadvantage in the critical path. In particular, in the case of a special LSI design or the like where extremely high calculation accuracy is required, there is a possibility that both the hardware size and the operation speed may become obstacles.
この出願はこのような点に鑑みてなされたものであ
る。The present application has been made in view of such points.
本発明は、 Nは項数 Cnは係数 Xnはデータ を求める積和演算回路において、上記Xnをオフセットバ
イナリで2進化したコード Xn=〔Xnm〕 が入力される入力手段(入力端子(11)〜(1N)と、
上記コードを各桁ごとに に変換する順次コード変換手段(ROM(3))と、上記
変換されたコードを を初期値(スイッチ(7X))として順次桁をシフトして
演算を行う累加算器(4X)と、上記累加算結果を出力す
る出力手段(出力端子(8))とを有する積和演算回路
である。The present invention N is the number of terms. Cn is a coefficient. Xn is a product-sum operation circuit for obtaining data. In an input means (input terminals (1 1 ) to (1 1 ) to (1 1 ) to (X 1 ) to which a code Xn = [X nm ] obtained by binarizing the above Xn by offset binary is input. N ) and
The above code for each digit Code conversion means (ROM (3)) for converting the converted code into Accumulator (4X) for sequentially shifting the digit and performing the operation with the initial value (switch (7X)) and output means (output terminal (8)) for outputting the result of the accumulation. It is.
これによれば、入力データがオフセットバイナリーコ
ードとされ、その各桁の値xnmに対して(xnm−1/2)
を用いて演算が行われることによって、演算中の例外的
な処理が除かれ、回路構成を簡単にして良好な演算結果
を得ることができる。According to this, the input data is set as an offset binary code, and for each digit value x nm (x nm −1/2)
, The exceptional processing during the calculation is eliminated, and the circuit configuration can be simplified to obtain a good calculation result.
第1図において、この場合にはN個のデータ(X1,X2
‥‥XN)がそれぞれMビットのオフセットバイナリで
2進化されたコード Xn=〔xnm〕m=1〜M が入力端子(11)〜(1N))に供給される。In FIG. 1, in this case, N data (X 1 , X 2
{X N ) is a code X n = [x nm ] m = 1 to M binarized by M-bit offset binary, and supplied to the input terminals (1 1 ) to (1 N) .
またROM(3)の内容は、入力されるNビットの各桁
のデータに対して、 とされる。すなわちこの値は、N項の内のその桁のビッ
トのデータ(xnm)が“1"になっている項の係数(Cn)
に1/2を乗算し、データ(xnm)が“0"になっている項
の係数(Cn)に−1/2を乗算した値を合計した値であ
る。なおこの値のビット数は計算精度等に応じた任意の
ビット数(N′)とされる。The contents of the ROM (3) correspond to the input N-bit data of each digit. It is said. That is, this value is the coefficient (Cn) of the term in which the bit data (x nm ) of the digit in the N term is “1”.
Is multiplied by 、, and the value obtained by multiplying the coefficient (Cn) of the term whose data (x nm ) is “0” by −1/2 is summed. The number of bits of this value is an arbitrary number of bits (N ') according to the calculation accuracy and the like.
さらに従来の加減算器(4)に代えて加算器(4X)が
設けられると共に、アンド回路(7)に代えて信号S1
にてROM(3)の入力がLSB(m=1)のときのみ切換ら
れるスイッチ(7X)が設けられ、このスイッチ(7X)を
通じて初期値 が供給される。他は従来の技術で述べた回路と同様にさ
れる。Further, an adder (4X) is provided instead of the conventional adder / subtractor (4), and a signal S 1 is provided instead of the AND circuit (7).
Is provided with a switch (7X) that is switched only when the input of the ROM (3) is LSB (m = 1), and the initial value is set through this switch (7X). Is supplied. Others are the same as the circuits described in the prior art.
すなわちこの回路において、上述の従来の技術で述べ
た(2)式の2進数がオフセットバイナリーコードとす
ると、(3′)式は と表される。そこでこの(4)式を変形すると、 となる。That is, in this circuit, if the binary number of the equation (2) described in the above-mentioned conventional technique is an offset binary code, the equation (3 ') is It is expressed as Therefore, when this equation (4) is transformed, Becomes
従って上述の回路においてこの(5)式が実現され、 (1)式に示したN項の積和演算 が実行される。Therefore, in the above-described circuit, the expression (5) is realized, and the product-sum operation of the N term shown in the expression (1) Is executed.
なおこの回路において、上述の従来例で述べたと同じ
計算を行う場合には、まずROM(3)の内容は次の表に
示すようになる。In this circuit, when performing the same calculation as described in the above conventional example, first, the contents of the ROM (3) are as shown in the following table.
そして実際の演算は次に示すように行われる。 The actual calculation is performed as follows.
すなわちこの回路において、従来の技術で述べたのと
同様の正確な演算結果を得ることができる。 That is, in this circuit, it is possible to obtain the same accurate operation result as described in the conventional art.
従って上述の回路において、従来と同様の正確な演算
結果が得られると共に、従来の加減算器が加算器におき
かえられることからこの部分のハートウェアサイズが計
算精度を等しいものとして従来の約1/2となる。また動
作速度の点でも有利になる。さらに上述の回路におい例
外的な処理が初期値のセットだけとなり、演算を行う際
の制御回路等も簡略化できる。Therefore, in the above-mentioned circuit, the same accurate calculation result as the conventional one is obtained, and the conventional adder / subtracter is replaced with an adder. Becomes It is also advantageous in terms of operating speed. Further, the exceptional processing in the above-described circuit is only the setting of the initial value, and the control circuit and the like when performing the operation can be simplified.
なおここで初期値のセットは、具体的には例えば第2
図に示すようにROM(3)の入力がLSB(m=1)のとき
のみ“1"となる信号▲▼を用いて、初期値の値が
“1"のビットには同図Aに示すように信号▲▼をオ
ア回路を介してフィードバック信号に供給し、また初期
値の値が“0"のビットには同図Bに示すように信号▲
▼をインバータで反転した信号をアンド回路を介して
フィードバック信号に供給する。これによってROM
(3)の入力がLSBのときに任意の初期値が加算器(4
X)に供給される。Here, the set of initial values is specifically, for example, the second
As shown in the figure, a signal "1" which becomes "1" only when the input of the ROM (3) is LSB (m = 1) is used, and the bit whose initial value is "1" is shown in FIG. The signal ▼ is supplied to the feedback signal via the OR circuit as described above, and the bit having the initial value “0” is added to the signal よ う as shown in FIG.
The signal obtained by inverting ▼ by the inverter is supplied to the feedback signal via the AND circuit. This allows ROM
When the input of (3) is LSB, an arbitrary initial value is added to the adder (4
X).
あるいは初期値のセットは従来と同様にアンド回路に
用いて全て“0"とすると共に、ROM(3)にLSBの入力が
供給される前に入力に全て“0"のデータを供給し、この
ROM(3)の出力を加算器(4X)に供給してもよい。Alternatively, the initial value set is set to all "0" by using the AND circuit as in the past, and all "0" data is supplied to the input before the LSB input is supplied to the ROM (3).
The output of the ROM (3) may be supplied to the adder (4X).
こうして上述の回路によれば、入力データがオフセッ
トバイナリーコードとされ、その各桁の値xnmに対して
(xnm−1/2)用いて演算が行われることによって、演
算中の例外的な処理が除かれ、回路構成を簡単にして良
好な演算結果を得ることができるものである。Thus, according to the above-described circuit, the input data is set as the offset binary code, and the operation is performed using (x nm −1/2) for the value x nm of each digit, so that the exceptional value during the operation is obtained. The processing is eliminated, and the circuit configuration can be simplified to obtain a good calculation result.
従って上述の回路において、高速高精度の計算を行う
上で効果が発揮され、特に画像データ圧縮等においてコ
サイン変換/逆変換を行列計算で実行する場合等に有効
である。Therefore, the above-described circuit is effective in performing high-speed and high-accuracy calculations, and is particularly effective when performing cosine transform / inverse transform by matrix calculation in image data compression or the like.
なお上述の回路において、オフセットバイナリーコー
ドとすると共に各桁の値xnmに対して(xnm−1/2)を
用いることによって、例えば2進数は で表され、ここでxmを反転したものをxmとすると となる。これはすなわち上述の計算において2進数の全
ビットを反転することによりその値の正負を反転できる
ことを意味している。In the above circuit, by using (x nm − − ) for the value x nm of each digit as an offset binary code, for example, a binary number Where x m is the inverse of x m Becomes This means that the value can be inverted by inverting all the bits of the binary number in the above calculation.
ここで一般にコサイン変換等の行列計算を行う場合
に、計数行列の内容には正負が反転しているだけで絶対
値は等しい行の組が存在し、その場合に積和演算では入
力データの正負を反転することで計数の正負を反転した
のと等価となる。そこで入力データを反転する機能を設
けることによってROMの共用が可能となり、ROMの規模を
小さくすることができる。なお入力データの反転はROM
の入力にイクスクルーシブオア回路等を設けることによ
って容易に行うことができる。Here, in general, when performing a matrix calculation such as cosine transform, there is a set of rows in which the absolute value is equal but the sign is inverted only in the contents of the counting matrix, and in that case, the sign of the input data is calculated in the product-sum operation. Is equivalent to inverting the sign of the count. Therefore, by providing a function of inverting input data, the ROM can be shared, and the size of the ROM can be reduced. The input data is inverted by ROM
This can be easily performed by providing an exclusive OR circuit or the like at the input of.
また上述の回路において、従来のオフセットバイナリ
ーコードとの差は、 となり、語長によらず常に1/2という一定値になる。In the above circuit, the difference from the conventional offset binary code is , And is always a constant value of 1/2 regardless of the word length.
従ってこの回路において語長の長いデータの乗算等で
途中結果にいわゆるまるめ操作を行う場合に、単純に下
位を切り捨てることによって良好なまるめを行うことが
でき、例えば2次元コサイン変換のように演算出力を再
度同じ演算回路に入力するような応用で、高精度計算を
要求される場合に特に有効である。Therefore, when a so-called rounding operation is performed on an intermediate result by multiplication of data having a long word length or the like in this circuit, good rounding can be performed by simply truncating the lower order. This is particularly effective when high precision calculation is required in an application in which is input to the same arithmetic circuit again.
この発明によれば、入力データがオフセットバイナリ
ーコードとされ、その各桁の値xnmに対して(xnm−1/
2)を用いて演算が行われることによって、演算中の例
外的な処理が除かれ、回路構成を簡単にして良好な演算
結果を得ることができるようになった。According to the present invention, the input data is set to the offset binary code, and the value of each digit x nm is (x nm −1 /
By performing the calculation using 2), exceptional processing during the calculation is eliminated, and the circuit configuration can be simplified, and a good calculation result can be obtained.
第1図は本発明の一例の構成図、第2図はその説明のた
めの図、第3図は従来の技術の説明のための図である。 (11)〜(1N)は入力端子、(3)はROM、(4X)は
加算器、(7X)はスイッチ、(8)は出力端子である。FIG. 1 is a diagram showing an example of the present invention, FIG. 2 is a diagram for explaining the same, and FIG. 3 is a diagram for explaining a conventional technique. (1 1 ) to (1 N ) are input terminals, (3) is a ROM, (4X) is an adder, (7X) is a switch, and (8) is an output terminal.
Claims (1)
と、 上記累加算結果を出力する出力手段とを有する積和演算
回路。(1) N is a term. Cn is a coefficient. Xn is a product-sum operation circuit for obtaining data. Xn = [X nm ], a code obtained by binarizing the above Xn into an offset binary. A sequential code converting means for converting the converted code into A product-sum operation circuit comprising: a cumulative adder that sequentially performs a calculation by shifting digits by using the initial value as an initial value; and an output unit that outputs the result of the cumulative addition.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14566089A JP2870018B2 (en) | 1989-06-08 | 1989-06-08 | Product-sum operation circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14566089A JP2870018B2 (en) | 1989-06-08 | 1989-06-08 | Product-sum operation circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0311465A JPH0311465A (en) | 1991-01-18 |
JP2870018B2 true JP2870018B2 (en) | 1999-03-10 |
Family
ID=15390146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14566089A Expired - Fee Related JP2870018B2 (en) | 1989-06-08 | 1989-06-08 | Product-sum operation circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2870018B2 (en) |
-
1989
- 1989-06-08 JP JP14566089A patent/JP2870018B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0311465A (en) | 1991-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4823301A (en) | Method and circuit for computing reciprocals | |
US7188133B2 (en) | Floating point number storage method and floating point arithmetic device | |
JPH0776916B2 (en) | Trigonometric function calculation device using pseudo division method | |
KR970006408B1 (en) | Method and apparatus for automatically designing logic circuitand multiplier | |
US5825681A (en) | Divider/multiplier circuit having high precision mode | |
JP2870018B2 (en) | Product-sum operation circuit | |
JPS6027024A (en) | Arithmetic device | |
JPH076024A (en) | Decimal number multiplier | |
JP2621535B2 (en) | Code conversion circuit | |
JP2645422B2 (en) | Floating point processor | |
JPH0981541A (en) | Accumulator | |
JP4163967B2 (en) | Floating point arithmetic unit | |
JP3190826B2 (en) | Product-sum operation unit | |
JP2606326B2 (en) | Multiplier | |
JP2813513B2 (en) | Data conversion circuit | |
JP2705162B2 (en) | Arithmetic processing unit | |
KR0182169B1 (en) | Log arithmathic value calculator | |
KR940007925B1 (en) | Accumulating arithmetic circuit with sign processing function | |
JP2753922B2 (en) | Fixed-point division method | |
JP2000010763A (en) | Division circuit | |
JP2907276B2 (en) | Arithmetic processing unit | |
US5751623A (en) | Digital computer for adding and subtracting | |
JP2508286B2 (en) | Square root calculator | |
JPH0683852A (en) | Alpha synthesization computing element | |
JP2000081968A (en) | Arithmetic unit for reciprocal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |