KR950012088B1 - High speed multiplicating circuit - Google Patents

High speed multiplicating circuit Download PDF

Info

Publication number
KR950012088B1
KR950012088B1 KR1019930014868A KR930014868A KR950012088B1 KR 950012088 B1 KR950012088 B1 KR 950012088B1 KR 1019930014868 A KR1019930014868 A KR 1019930014868A KR 930014868 A KR930014868 A KR 930014868A KR 950012088 B1 KR950012088 B1 KR 950012088B1
Authority
KR
South Korea
Prior art keywords
multiplier
bit
register
bits
adder
Prior art date
Application number
KR1019930014868A
Other languages
Korean (ko)
Other versions
KR950003970A (en
Inventor
김성정
Original Assignee
대우전자 주식회사
배순훈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 대우전자 주식회사, 배순훈 filed Critical 대우전자 주식회사
Priority to KR1019930014868A priority Critical patent/KR950012088B1/en
Publication of KR950003970A publication Critical patent/KR950003970A/en
Application granted granted Critical
Publication of KR950012088B1 publication Critical patent/KR950012088B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
    • G06F7/496Multiplying; Dividing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)

Abstract

The device comprises a first register for inputting a multiplicand of M bit; a second register for inputting a multiplier of N bit; a part multiply generating unit for multiplying all bits of the multiplicand and the multiplier inputted to the first and second registers, respectively, and providing the multiplied most significant and least significant bit; a least significant bit multiplying unit for adding and outputting the part values obtained in the least significant bit of the part multiply generating unit depending upon the register and shifters connected to the part multiply generating unit; a most significant bit multiplying unit for adding and outputting the part values obtained in the most significant bit of the part multiply generating unit depending upon the register and shifters connected to the part multiply generating unit; second and third registers for matching the output bit of the multiplier with the output bit of the multiplicand; and an adder for adding the output bits of the multiplier and multiplicand and outputting the multiplied value.

Description

고속 승산 회로Fast multiplication circuit

제1도는 종래의 승산 회로를 간략하게 나타낸 블럭도.1 is a block diagram schematically showing a conventional multiplication circuit.

제2도는 본 발명에 따른 고속 승산 회로를 간략하게 나타낸 블럭도.2 is a block diagram schematically showing a high speed multiplication circuit according to the present invention.

제3도는 제2도의 부분곱 생성부의 상세 블럭도.3 is a detailed block diagram of the partial product generation unit of FIG.

제4도는 제2도의 하위 비트 승산부의 상세 블럭도.4 is a detailed block diagram of a lower bit multiplier of FIG.

제5도는 제2도의 상위 비트 승산부의 상세 블럭도.5 is a detailed block diagram of an upper bit multiplier of FIG.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

201, 202, 207, 208 : 레지스터 203 : 부분곱 생성부201, 202, 207, 208: register 203: partial product generation unit

204 : 비트 승산 회로 205 : 하위비트 승산부204: Bit multiplier circuit 205: Low bit multiplier

206 : 상위비트 승산부 209 : 가산기206: higher bit multiplier 209: adder

본 발명은 고속 승산 회로에 관한 것으로서, 더욱 상세하게는 승수의 최하위 비트와 최상의 비트를 동시에 피승수에 곱함으로써 승산 속도를 높히고 하드웨어 구성을 보다 간략하게 구현하는 고속 승산 회로에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a high speed multiplication circuit, and more particularly, to a high speed multiplication circuit that multiplies the least significant bit and the most significant bit of a multiplier by a multiplier to increase the multiplication speed and to implement a hardware configuration more simply.

제1도에는 종래의 승산 회로의 블럭도가 도시된다. 도시된 바와 같이 제1도에서, M비트의 피승수는 레지스터(101)로 입력되고, N비트의 승수는 레지스터(102)로 입력된 후, 피승수의 모든 비트와 승수의 각 비트를 곱하는 부분곱 생성부(103)에서 각 비트간의 승산이 이루어져 PD1에서 PDM을 출력한다.1 shows a block diagram of a conventional multiplication circuit. As shown in FIG. 1, a multiplicand of M bits is input into the register 101, a multiplier of N bits is input into the register 102, and then a partial product is generated that multiplies all bits of the multiplicand by each bit of the multiplier. In step 103, multiplication of the respective bits is performed to output the PDM from PD1.

여기서 PD1은 피승수에 승수의 최하위 비트(LSB)를 곱한 값이고, PD2는 피승수에 승수의 LSB+1번째의 비트를 곱한 값이고, PD3은 피승수에 승수의 LSB+2번째의 비트를 곱한 값이고, PDM는 피승수에 승수의 최상위 비트(MSB)를 곱한 값이다.Where PD1 is the multiplier times the least significant bit (LSB) of the multiplier, PD2 is the multiplier times the LSB + 1th bit of the multiplier, PD3 is the multiplier times the LSB + 2nd bit of the multiplier, and PDM is the multiplicand Multiplied by the most significant bit (MSB) of the multiplier.

피승수에 승수의 최하위 비트(LSB)를 곱한 값(PD1)은 레지스터(104)를 통해 레지스터(105)에 우측으로 1자리 이동한 후 가산기(117)로 입력된다. 그리고, 피승수와 승수의 (LSB+1)번째 비트를 곱한값(PD2)은 레지스터(106) 및 (107)를 통하여 상기 가산기(117)에 입력되어 우측으로 1자리 이동한 값과 가산된다.The value PD1 obtained by multiplying the multiplicand by the least significant bit LSB of the multiplier is inputted to the adder 117 after shifting one digit to the right through the register 104 to the register 105. Then, the value PD2 obtained by multiplying the multiplicand by the (LSB + 1) th bit of the multiplier is input to the adder 117 through the registers 106 and 107 and added to the value shifted one digit to the right.

그리고, 상기 가산기(117)의 출력은 레지스터(117) 및 (119)에서 또다시 1자리우측으로 이동한 후 가산기(120)에 입력된다.Then, the output of the adder 117 is moved to the right by one digit again in the registers 117 and 119 and input to the adder 120.

또한, 피승수와 승수의 (LSB+2)번째 비트를 곱한 값(PD3)은 레지스터(108) 및 (109), 레지스터(110) 및 (111)를 통하여 상기 가산기(120)로 입력되어 1자리 우측으로 이동한 값과 가산된다.In addition, the value PD3 obtained by multiplying the multiplicand by the (LSB + 2) th bit of the multiplier is inputted to the adder 120 through the registers 108 and 109, the registers 110 and 111, and shifts one digit to the right. It is added with one value.

이와 같이 피승수에 승수의 1비트씩 곱한 후 그 부분곱을 쉬프트 레지스터를 이용하여 자리 이동을 한 후 그 값과, 피승수에 승수의 다음 1비트를 곱하여 얻은 부분곱을 가산하여 자리 이동하는 과정을 피승수에 승수의 최상위 비트(MSB)를 곱하여 그 전값과 더한 값이 최종값이 될때 까지 계속 반복하여 수행한다.In this way, multiply the multiplicants by one bit of the multiplier, and then shift the partial product using the shift register, and then shift the position by adding the value and the partial product obtained by multiplying the multiplicand by the next 1 bit of the multiplier. It multiplies the most significant bit of MSB and repeats it until the previous value plus the final value becomes the final value.

따라서, 전술한 바와 같은 방법은, 피승수의 M비트와 승수의 N비트를 승산할 경우, N번의 단계가 필요하게 되어, 매우 고속 동작을 요하는 필터(Filter)나 색 공간 변환기(Color Space Converter; CSC)에는 이용할 수 없는 문제점이 있다.Therefore, the above-described method requires N steps when multiplying the M bits of the multiplier and the N bits of the multiplier, and thus requires a filter or a color space converter that requires very high speed operation. CSC) has a problem that cannot be used.

또한, 전술한 바와 같이 가산기에서의 출력값을 레지스터로 전달한 후 다음 클럭 신호에서 자리 이동을 할 경우, 클럭 신호가 1주기만큼 더 필요하기 때문에 그 만큼 지연되어 결국 동작 속도가 느려지는 문제점이 있다.In addition, as described above, when shifting the next clock signal after transferring the output value from the adder to the register, there is a problem that the clock signal is delayed by one cycle and thus the operation speed is slowed down.

따라서, 본 발명은 전술한 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 피승수와 승수의 부분곱을 생성하는 앤드 게이트 배열과 가산기, 쉬프트 레지스터로 구성하여 승수의 최하위 비트와 최상위 비트를 동시에 피승수에 곱하여 병렬 처리함으로써, 승산 처리 단계를 줄이고, 승산 속도를 높이며, 하드웨어 구성을 간략용이하게 하는 고속 승산 회로를 제공하는데 있다.Accordingly, an object of the present invention is to solve the above problems, and an object of the present invention is to construct an AND gate array, an adder, and a shift register that generate a partial product of a multiplier and a multiplier, thereby simultaneously multiplying the least significant bit and most significant bit of the multiplier by the multiplicand. By parallel processing, there is provided a high speed multiplication circuit that reduces the multiplication processing step, increases the multiplication speed, and simplifies the hardware configuration.

본 발명의 다른 목적 및 장점들은 첨부한 도면을 참조한 다음의 실시예의 설명을 통하여 명백하게 설명될 것이다.Other objects and advantages of the present invention will be apparent from the following description of the embodiments with reference to the accompanying drawings.

상기한 목적을 달성하기 위한 본 발명에 따른 고속 승산회로의 특징은, 승수의 최하위 비트(LSB)와 최상 비트(MSB)를 동시에 병렬로 피승수에 승산하는 회로에 있어서, M비트(M은 0이 아닌 정수) 피승수가 입력되는 제1레지스터(201)와; N비트(N은 0이 아닌 정수) 승수가 입력되는 제2레지스터(202)와; 상기 제1레지스터(201)에 입력되는 피승수의 모든 비트와 상기 제2레지스터(202)에 입력되는 승수의 각 비트를 승산하며, 이로부터 승산된 복수의 하위 및 상위비트의 부분곱(PD1-PDM)을 제공하는 부분곱 생성부(203)와; 상기 부분곱 생성부(203)에 연결된 복수의 레지스터 및 쉬프트 레지스터를 근거로 하여 상기 부분곱 생성부(203)로부터 제공되는 하위비트간의 부분곱(PD1-PD(N/2))들을 가산하여 출력하는 하위비트 승산부(205)와; 상기 부분곱 생성부(203)에 연결된 복수의 레지스터 및 쉬프트 레지스터를 근거로 하여 상기 부분곱 생성부(203)로부터 제공되는 상위비트간의 부분곱(PD(N/2)-PDM)들을 가산하여 출력하는 상위비트 승산부(205)와; 상기 하위비트 승산부(205)의 출력 비트와 상위비트 승산부(206)의 출력 비트간의 자리수를 일치시키는 레지스터(207) 및 (208)와; 상기 레지스터(207) 및 (208)에 의해 자리수가 맞춰진 하위비트 승산부(205)의 출력 비트와, 상위비트 승산부(206)의 출력 비트를 가산하여 상기 입력된 피승수 및 승수간의 승산된 값을 출력하는 가산기(209)를 구성됨을 특징으로 하는 고속 승산 회로를 제공한다.A feature of the fast multiplication circuit according to the present invention for achieving the above object is a circuit for multiplying the least significant bit (LSB) and the most significant bit (MSB) of a multiplier in parallel by a multiplicand, where M bit (M is 0). Non-integer) a first register 201 to which a multiplicand is input; A second register 202 to which an N-bit (N is a non-zero integer) multiplier is input; Multiplies all bits of the multiplier input to the first register 201 and each bit of the multiplier input to the second register 202, and a partial product PD1-PDM of a plurality of lower and upper bits multiplied therefrom. A partial product generation unit 203 for providing; Based on the plurality of registers and the shift registers connected to the partial product generator 203, the partial products PD1-PD (N / 2) between lower bits provided from the partial product generator 203 are added and output. A lower bit multiplier 205; On the basis of a plurality of registers and shift registers connected to the partial product generation unit 203, the partial product (PD (N / 2) -PDM) between upper bits provided from the partial product generation unit 203 is added and output. An upper bit multiplier 205; Registers (207) and (208) for matching the number of digits between the output bits of the lower bit multiplier (205) and the output bits of the upper bit multiplier (206); The multiplied value between the input multiplier and the multiplier is added by adding the output bits of the lower bit multiplier 205 and the output bits of the upper bit multiplier 206 that are aligned by the registers 207 and 208. An adder 209 for outputting is provided.

이하, 본 발명에 따른 고속 승산 회로의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.Hereinafter, a preferred embodiment of the high speed multiplication circuit according to the present invention will be described in detail with reference to the accompanying drawings.

제2도는 본 발명에 따른 고속 승산 회로를 간략하게 나타낸 블럭도로서, 고속 승산 회로(200)는 피승수가 입력되는 레지스터(201)와, 승수가 입력되는 레지스터(202)와, 상기 피승수의 모든 비트와 승수의 각 비트를 곱하여 부분곱을 생성하는 부분곱 생성부(203)와, 상기 부분곱 생성부(203)의 하위비트에 대해 승산을 수행하는 하위비트 승산부(205)와, 상기 부분곱 생성부(203)의 상위비트에 대해 승산을 수행하는 상위비트 승산부(206)와, 상기 하위비트 승산부(205)의 출력을 자리 이동시켜 자리수를 맞추는 레지스터(207)와, 상기 상위비트는 승산부(206)의 출력을 자리 이동시켜 자리수를 맞추는 레지스터(208)와, 상기 레지스터(107) 및 (208)의 출력을 가산하는 가산기(209)와, 상기 가산기(209)의 출력을 일시적으로 래치시키는 레지스터(210)로 구성된다.2 is a block diagram schematically illustrating a fast multiplication circuit according to the present invention. The fast multiplication circuit 200 includes a register 201 to which a multiplier is input, a register 202 to which a multiplier is input, and all bits of the multiplier. And a partial product generator 203 for multiplying each bit of a multiplier to generate a partial product, a lower bit multiplier 205 for multiplying the lower bits of the partial product generator 203, and generating the partial product. An upper bit multiplier 206 for multiplying the upper bits of the unit 203, a register 207 for shifting the output of the lower bit multiplier 205 to adjust the number of digits, and the higher bits Temporarily latches the register 208 for shifting the output of the unit 206 to adjust the digit, the adder 209 for adding the outputs of the registers 107 and 208, and the output of the adder 209. It is composed of a register (210).

또한, 비트 승산 회로(204)는 상기 하위비트 승산부(205)와 상위비트 승산부(206)로 구성된다.In addition, the bit multiplication circuit 204 includes the lower bit multiplier 205 and the higher bit multiplier 206.

제3도는 상기 제2도의 부분곱 생성부(203)의 상세블럭도로서, 도시된 바와 같이 AND 게이트의 배열로 되어 있다.FIG. 3 is a detailed block diagram of the partial product generation unit 203 shown in FIG. 2, and is arranged in an AND gate as shown.

제3도 (a)는 피승수의 모든 비트와 승수의 최하위 비트(LSB)가 AND 게이트(2031)에서 승산되어 출력(PD1)되는 예를 보인 것이고, 제3도 (b)는 피승수의 모든 비트와 승수의 LSB+1번째 비트가 AND 게이트(2032)에서 승산되어 출력(PD2)되는 예를 보인 것이고, 제3도 (c)는 피승수의 모든 비트와 승수의 LSB+N/2번째 비트가 AND 게이트(2033)에서 승산되어 출력(PD(N/2))되는 예를 보인 것이다.FIG. 3A illustrates an example in which all bits of the multiplicand and the least significant bit LSB of the multiplier are multiplied at the AND gate 2031 to output PD1. FIG. The LSB + 1th bit of the multiplier is multiplied by the AND gate 2032 to output PD2. FIG. 3 (c) shows that all bits of the multiplier and LSB + N / 2th bits of the multiplier are multiplied by the AND gate 2033. The following example shows multiplication and output (PD (N / 2)).

또한 제3도 (d)는 피승수의 모든 비트와 승수의 LSB+N/2+1번째 비트가 AND 게이트(2034)에서 승산되어 출력(PD(N/2+1))되는 예를 보인 것이고, 제3도 (e)는 피승수의 모든 비트와 승수의 최상위 전비트가 AND 게이트(2035)에서 승산되어 출력(PD(M-1))되는 예를 보인 것이고, 제3도 (f)는 피승수의 모든 비트와 승수의 최상위 비트(MSB)가 AND 게이트(2036)에서 승산되어 출력(PDM)되는 예를 보인 것이다.FIG. 3 (d) shows an example in which all bits of the multiplier and LSB + N / 2 + 1th bits of the multiplier are multiplied by the AND gate 2034 to output (PD (N / 2 + 1)), and FIG. 3 (e) Shows an example in which all the bits of the multiplicand and all the most significant bits of the multiplier are multiplied by the AND gate 2035 and output (PD (M-1)), and FIG. 3 (f) shows all the bits of the multiplicand and the most significant of the multiplier. The bit MSB is multiplied by the AND gate 2036 to output PDM.

제4도는 상기 제2도의 하위비트 승산부(205)의 상세블럭도로서, 상기 부분곱 생성부(203)에서 출력되는 PD(1)에서 PD(N/2)까지의 일련의 데이타를 처리하는 과정을 나타내고 있다.FIG. 4 is a detailed block diagram of the lower bit multiplier 205 of FIG. 2, which processes a series of data from PD (1) to PD (N / 2) output from the partial product generation unit 203. FIG. The process is shown.

제5도는 상기 제2도의 상위비트 승산부(206)의 상세 블럭도로서, 상기 부분곱 생성부(203)에서 출력되는 PD(N/2+1)에서 PD(M)까지의 일련의 데이타를 처리하는 과정을 나타내고 있다.FIG. 5 is a detailed block diagram of the higher bit multiplier 206 of FIG. 2, which processes a series of data from PD (N / 2 + 1) to PD (M) output from the partial product generation unit 203. FIG. The process is shown.

전술한 바와 같이 구성된 본 발명에서, 다시 제2도를 참조하면, M비트의 피승수와 N비트의 승수가 레지스터(201) 및 (202)에 각각 입력된 후, 피승수의 모든 비트와 승수의 각 비트를 곱하는 부분곱 생성부(203)의 AND 게이트에 의해서 각 비트간의 승산이 이루어지고, 제3a도 내지 3f도와 같이 PD(1)에서 PD(M)을 출력한다.In the present invention configured as described above, referring back to FIG. 2, after the multiplicand of M bits and the multiplier of N bits are respectively input to the registers 201 and 202, all the bits of the multiplicand and each bit of the multiplier The multiplication of the bits is performed by the AND gate of the partial product generation unit 203 that multiplies by. The PD 1 outputs PD (M) as shown in FIGS. 3A through 3F.

비트 승산회로의 하위비트 승산부(205)는 제4도와 같이 PD(1)에서 PD(N/2)까지, 상위비트 승산부(206)는 제5도와 같이 PD(N/2+1)에서 PD(M)까지의 일련의 데이타를 처리하게 된다.The lower bit multiplier 205 of the bit multiplication circuit is from PD (1) to PD (N / 2) as shown in FIG. 4, and the upper bit multiplier 206 is PD (N / 2 + 1) to PD ( A series of data up to M) will be processed.

이때, 피승수와 승수의 최하위 비트(LSB)를 곱한 값(PD1)은 제4도의 쉬프트 레지스터(251)에 의해 우측으로 1자리 이동한후 가산기(252)로 입력된다.At this time, the value PD1 obtained by multiplying the multiplicand by the least significant bit LSB of the multiplier is shifted by one shift to the right by the shift register 251 of FIG. 4 and then input to the adder 252.

그리고, 피승수와 승수의 (LSB+1)번째 비트를 곱한 값(PD2)은 레지스터(256)를 통하여 상기 가산기(252)에 입력되어 우측으로 1자리 이동한 값과 가산하게 된다.Then, the value PD2 obtained by multiplying the multiplicand by the (LSB + 1) th bit of the multiplier is input to the adder 252 through the register 256 and added to the value shifted one digit to the right.

또한, 상기 가산기(252)의 출력은 쉬프트 레지스터(253)에서 다시 1자리 우측으로 이동한 후 가산기(254)에 입력되고, 피승수와 승수의 (LSB+2)번째 비트를 곱한 값(PD3)은 레지스터(257) 및 (258)를 통하여 상기 가산기(254)로 입력되어 가산된 후 쉬프트 레지스터(261)에 의해 1자리 우측으로 이동한다.In addition, the output of the adder 252 is moved to the right by one digit again in the shift register 253 and input to the adder 254. The value PD3 obtained by multiplying the multiplicand and the (LSB + 2) th bit of the multiplier is a register ( 257) and 258 are inputted to the adder 254, added, and moved to the right by one shift register 261.

이와 같이 피승수에 승수를 1비트씩 곱한 후, 그 부분곱을 쉬프트 레지스터를 이용하여 우측으로 1자리 이동한 후 그 값과, 피승수에 승수의 다음 1비트를 곱하여 얻은 부분곱을 가산하여 우측으로 1자리 이동하는 과정을 상기 부분곱 생성부(203)의 PD(N/2) 출력이 가산기(253)에 들어올 때까지 반복 수행하게 된다.After multiplying the multiplier by 1 bit as described above, the partial product is shifted 1 digit to the right using the shift register, and then the value is multiplied by the next 1 bit of the multiplier to add the multiply and 1 digit to the right. The process is repeated until the PD (N / 2) output of the partial product generation unit 203 enters the adder 253.

한편, 피승수에 승수의 최상위 비트(MSB)를 곱한 값(PDM)은 제5도의 쉬프트 레지스터(2061)에 의해 좌측으로 1자리 이동한 후, 가산기(2063)로 제공되며, 레지스터(2055)를 통하여 입력되는 피승수와 승수의 (MSB-1)번째 비트를 곱한 값(PD(M-S)) 또한, 가산기(2062)로 제공된다. 따라서, 가산기(2062)에서는 이 두 데이타를 가산하게 된다.On the other hand, the value PDM obtained by multiplying the multiplicand by the most significant bit (MSB) of the multiplier is shifted one digit to the left by the shift register 2061 of FIG. 5, and then provided to the adder 2063, and through the register 2055. The value PD (MS) obtained by multiplying the input multiplier by the (MSB-1) th bit of the multiplier is also provided to the adder 2062. Therefore, the adder 2062 adds these two data.

그리고, 상기 가산기(2062)의 출력은 쉬프트 레지스터(2063)에서 다시 1자리 좌측으로 이동한 후, 가산기(2064)로 제공되며, 레지스터(2066) 및 (2067)를 통하여 입력되는 피승수와 승수의 (MSB-2)번째 비트를 곱한 값(PD(M-2)) 또한, 가산기(2064)로 제공된다. 따라서, 가산기(2064)에서는 이 두 데이타를 가산하고, 이 결과를 쉬프트 레지스터(2071)에 의해 1자리 좌측으로 이동한다.Then, the output of the adder 2062 is moved to the left by one digit again in the shift register 2063, and then provided to the adder 2064, and the output of the multiplier and the multiplier input through the registers 2066 and 2067. The value PD (M-2) multiplied by the MSB-2) th bit is also provided to the adder 2064. Therefore, the adder 2064 adds these two data, and shifts the result to the left by one shift by the shift register 2071.

이와 같이 피승수에 승수의 1비트씩 곱한 후 그 부분곱을 쉬프트 레지스터를 이용하여 좌측으로 1자리 이동을 한 후 그 값과, 피승수에 승수의 다음 1비트를 곱하여 얻은 부분곱을 가산하여 좌측으로 1자리 이동하는 과정을 상기 부분곱 생성부(203)의 PD(N/2+1) 출력이 가산기(2072)로 입력될 때까지 반복하게 된다.After multiplying the multiplicand by one bit of the multiplier, the partial product is shifted one digit to the left using the shift register, and then the value and the partial product obtained by multiplying the multiply by the next one bit of the multiplier are moved one digit to the left. The process is repeated until the PD (N / 2 + 1) output of the partial product generation unit 203 is input to the adder 2082.

이 때, 상기 하위비트 승산부(205)의 최종 출력과 상위비트 승산부(206)의 최종 출력을 각각 L1과 H1이라 한다.At this time, the final output of the lower bit multiplier 205 and the final output of the higher bit multiplier 206 are referred to as L1 and H1, respectively.

제2도를 참조하면, 레지스터(207)와 레지스터(208)의 출력을 각각 L2와 H2라 하면, 가산기(209)에서 바람직한 가산을 하기 위해서는, 상기 하위 및 상위비트 승산부(205) 및 (206)의 출력인 L1과 H1의 자리수를 맞춰줄 필요가 있다.Referring to FIG. 2, when the outputs of the registers 207 and 208 are L2 and H2, respectively, the lower and upper bit multipliers 205 and 206 are used to add a desirable addition in the adder 209. You need to match the digits of L1 and H1.

한편, L1과 H1의 최하위 비트(LSB)를 비교해보면, N/2비트만큼의 자리수 차이가 발생된다. 그러므로, 레지스터(207)와 레지스터(208)는 N/2비트만큼의 차이를 자리 이동하여 자리수를 맞추어 L2와 H2로 출력한다.On the other hand, when comparing the least significant bits (LSB) of L1 and H1, a digit difference of N / 2 bits is generated. Therefore, the register 207 and the register 208 shift the difference by N / 2 bits, adjust the number of digits, and output the L2 and H2.

그리고, 상기 레지스터(207) 및 (208)의 출력인 L2와 H2은 가산기(209)에서 가산된 후 클럭 신호에 맞추어 레지스터(210)를 통하여 출력된다.The outputs of the registers 207 and 208, L2 and H2, are added by the adder 209 and then output through the register 210 in accordance with a clock signal.

이 레지스터(210)의 출력이 바로 최종 결과치가 된다. 이와 같이 이러한 일련의 동작 과정을 실행하는 동안 레지스터는 클럭에 따라 저장된 값을 출력하게 되는데 이러한 클럭 신호를 이용하는 것은 불필요한 데이타를 출력하지 않고, 각각의 입/출력이 동시에 이루어지도록 하기 위해서이다.The output of this register 210 is the final result. As described above, the register outputs the stored value according to the clock during the execution of the series of operations. The purpose of using the clock signal is to output each input / output simultaneously without outputting unnecessary data.

또한, 레지스터(201)와 레지스터(202)에 데이타가 연속적으로 입력될 경우, 최종 출력값들은 N/2(여기서 N은 승수의 비트수)개의 클럭 신호가 지난 후 연속적으로 출력하게 된다.In addition, when data is continuously input into the register 201 and the register 202, the final output values are continuously output after N / 2 (where N is a multiplier bit) clock signal.

본 발명에 따른 고속 승산 회로의 동작에 대한 일실시예를 상세하게 설명하면 다음과 같다.An embodiment of the operation of the fast multiplication circuit according to the present invention will be described in detail as follows.

먼저, 입력되는 피승수를 100001010001(2)(→ 2129(10))라 하고, 승수를 100001010001(2)(→ 557(10))로 가정하여 고속 승산 회로의 동작을 설명한다.First, the operation of the high-speed multiplication circuit will be described assuming that the input multiplier is 100001010001 ( 2 ) (→ 2129 ( 10 )) and the multiplier is 100001010001 ( 2 ) (→ 557 ( 10 )).

상기 입력되는 2129(10)에 대한 피승수 100001010001(2)가 레지스터(201)로 일시 저장되고, 상기 557(10)에 대한 승수 1000101101(2)가 레지스터(202)에 저장된다.The multiplier 100001010001 ( 2 ) for the input 2129 ( 10 ) is temporarily stored in the register 201, and the multiplier 1000101101 ( 2 ) for the 557 ( 10 ) is stored in the register 202.

여기서, 일시 저장되었던 피승수 100001010001(2) 및 승수 1000101101(2)는 복원되어 부분곱 생성부(203)로 각각 제공되는 바, 상기 승수 1000101101(2)에 대한 최하위 비트(LSB) 내지 최상위 비트(MSB)의 비트자리는 다음과 같다.Here, the stored multiplicand 100 001 010 001 (2) and multiplier 1000101101 (2) is a bar which is to restore each provided in partial product generator 203, the least significant bit (LSB) to the multiplier 1000101101 (2) to the most significant bit that was temporarily (MSB The bit positions of) are as follows.

즉, 승수 100010110①(2)That is, multiplier 100010110① ( 2 )

↑는 승수의 첫번째 자리.↑ is the first digit of the multiplier.

승수 10001011 01(2)Multiplier 10001011 01 ( 2 )

↑는 승수의 두번째 자리,↑ is the second digit of the multiplier,

승수 1000101①01(2)Multiplier 1000101①01 ( 2 )

↑는 승수의 세번째 자리,,,↑ is the third digit of the multiplier,

승수의 네번째 ~ 승수의 일곱번째,The fourth of the multiplier to the seventh of the multiplier,

승수 1000101101(2)Multiplier 1000101101 ( 2 )

↑는 승수의 여덟번째 자리,↑ is the eighth digit of the multiplier,

승수 1000101101(2)Multiplier 1000101101 ( 2 )

↑는 승수의 아홉번째 자리,↑ is the 9th digit of the multiplier,

승수 ①000101101(2)Multiplier ①000101101 ( 2 )

↑는 승수의 열번째 자리를 나타낸다.↑ represents the tenth digit of the multiplier.

이어서, 부분곱 생성부(203)에서는 레지스터(201)로부터 제공되는 피승수 100001010001(2)와 레지스터(202)로부터 제공되는 승수 1000101101(2)를 다음과 같이 부분곱 연산하게 된다.Then, it is in the partial product generator 203, a multiplier 1000101101 (2) provided from the multiplicand 100 001 010 001 (2) and the register 202 is provided from register 201 as partial products calculated as follows.

즉,In other words,

<1> 100001010001 X 1 (피승수 X 승수 첫번째 자리) = 100001010001<1> 100001010001 X 1 (multiplicand X multiplier first digit) = 100001010001

<2> 100001010001 X 0 (피승수 X 승수 두번째 자리) = 000000000000<2> 100001010001 X 0 (multiplicand X multiplier second) = 000000000000

<3> 100001010001 X 1 (피승수 X 승수 세번째 자리) = 100001010001<3> 100001010001 X 1 (multiplicand X multiplier third digit) = 100001010001

<4> 100001010001 X 1 (피승수 X 승수 네번째 자리) = 100001010001<4> 100001010001 X 1 (4th multiplier by multiplicand) = 100001010001

<5> 100001010001 X 0 (피승수 X 승수 다섯번째 자리)= 000000000000<5> 100001010001 X 0 (multiplicand X multiplier fifth) = 000000000000

<6> 100001010001 X 1 (피승수 X 승수 여섯번째 자리)= 100001010001<6> 100001010001 X 1 (multiplicand X multiplier sixth digit) = 100001010001

<7> 100001010001 X 0 (피승수 X 승수 일곱번째 자리)= 000000000000<7> 100001010001 X 0 (multiplicand X multiplier seventh digit) = 000000000000

<8> 100001010001 X 0 (피승수 X 승수 여덟번째 자리)= 000000000000<8> 100001010001 X 0 (multiplicand X multiplier eighth digit) = 000000000000

<9> 100001010001 X 0 (피승수 X 승수 아홉번째 자리)= 000000000000<9> 100001010001 X 0 (multiplicand X multiplier ninth digit) = 000000000000

<10>100001010001 X 1 (피승수 X 승수 열번째 자리) = 100001010001<10> 100001010001 X 1 (multiplicand X multiplier tenth digit) = 100001010001

상기한 바와 같은 부분곱이 생성되면 하위비트 승산부(205)와 상위비트 승산부(206)에서 하위비트 <예 : 1-5>와 상위비트 <예 : 6-10>에 대해 다음과 같이 연산된다.When the partial product as described above is generated, the lower bit multiplier 205 and the higher bit multiplier 206 calculate the lower bits <Example: 1-5> and the upper bits <Example: 6-10> as follows. .

제4도를 참조하면, 부분곱 생성부(203)에 의해 부분 연산된 <1>의 결과값 100001010001은 쉬프트 레지스터(251)로 입력되며, 이로부터 우측으로 1비트 이동 후, 가산기(252)로 제공된다.Referring to FIG. 4, the result value 100001010001 of <1> partially calculated by the partial product generation unit 203 is input to the shift register 251, and after shifting 1 bit to the right from this, to the adder 252. Is provided.

또한, 부분곱 생성부(203)에 의해 부분 연산된 <2>의 결과값 000000000000은 레지스터(256)를 통해 가산기(252)로 제공된다.Further, the result value 000000000000 of <2> partially calculated by the partial product generation unit 203 is provided to the adder 252 via the register 256.

따라서, 가산기(252)에서는 쉬프트레지스터(251)와 레지스터(256)로부터 각각 제공되는 결과값 <1,2>을 다음과 같이 가산한다.Therefore, the adder 252 adds the result values <1, 2> provided from the shift register 251 and the register 256 as follows.

여기서, 얻어진 부분합의 결과값(0100001010001 (부분합 1))은 쉬프트레지스터(253)로 제공되며, 쉬프트레지스터(253)에서는 부분합의 결과값(0100001010001 (부분합 1))을 우측으로 1비트씩 이동한 후, 다시 가산기(254)로 제공된다.Here, the obtained result of the subtotal (0100001010001 (subtotal 1)) is provided to the shift register 253, and in the shift register 253, the result of the subtotal (0100001010001 (subtotal 1)) is moved to the right by one bit. To the adder 254.

이와 더불어, 부분곱 생성부(203)에 의해 부분 연산된 <3>의 결과값 100001010001은 레지스터(257)와 레지스터(258)를 통해 가산기(254)로 제공된다.In addition, the result value 100001010001 of <3> partially calculated by the partial product generation unit 203 is provided to the adder 254 through the registers 257 and 258.

이에 따라, 가산기(254)에서는 쉬프트레지스터(253)와 레지스터(258)로부터 각각 제공되는 결과값을 가산한다.Accordingly, the adder 254 adds result values provided from the shift register 253 and the register 258, respectively.

여기서, 얻어진 부분합의 결과값 10100110010101 (부분합 2)은 쉬프트레지스터(미도시 됨)로 제공되며, 쉬프트레지스터(미도시 됨)에서는 부분합의 결과값 10100110010101 (부분합 2)을 우측으로 1비트씩 이동한 후, 가산기(미도시 됨)로 제공된다.Here, the resultant subtotal 10100110010101 (subtotal 2) is provided as a shift register (not shown), and in the shift register (not shown), the resultant subtotal 10100110010101 (subtotal 2) is moved to the right by one bit. , An adder (not shown).

그리고, 부분곱 생성부(203)에 의해 부분 연산된 <4>의 결과값 100001010001 복수의 레지스터(미도시 됨)을 통해 가산기(미도시 됨)로 제공된다.The resultant part 100001010001 partially calculated by the partial product generation unit 203 is provided to an adder (not shown) through a plurality of registers (not shown).

이에 따라, 가산기(미도시 됨)에서는 쉬프트레지스터(미도시 됨)와 레지스터(미도시 됨)로부터 각각 제공되는 결과값(부분합 2,4)을 가산한다.Accordingly, the adder (not shown) adds result values (subtotals 2 and 4) respectively provided from the shift register (not shown) and the register (not shown).

여기서, 얻어진 부분합의 결과값 110110000011101 (부분합 3)은 쉬프트레지스터(261)로 제공되며, 쉬프트레지스터(261)에서는 부분합의 결과값 110110000011101 (부분합 3)을 우측으로 1비트씩 이동한 후, 가산기(263)로 제공된다.Here, the obtained result of the subtotal 110110000011101 (subtotal 3) is provided to the shift register 261. In the shift register 261, the result of the subtotal 110110000011101 (subtotal 3) is moved by one bit to the right, and then the adder 263 Is provided.

그리고, 부분곱 생성부(203)에 의해 부분 연산된 <5>의 결과값 000000000000은 레지스터(259),,(262)를 통해 가산기(263)로 제공된다.The result value 000000000000 of <5> partially calculated by the partial product generation unit 203 is provided to the adder 263 through the registers 259 and 262.

따라서, 가산기(263)에서는 쉬프트레지스터(261)와, 레지스터(259),,(262)를 통해 제공되는 값을 가산한다.Therefore, the adder 263 adds the values provided through the shift register 261, the registers 259, and 262.

가산기(263)에서는 쉬프트레지스터(261)와 레지스터(259),,(262)로부터 각각 제공되는 결과값(부분합 3,5)을 가산한다.The adder 263 adds the result values (subtotals 3 and 5) provided from the shift registers 261, the registers 259, and 262, respectively.

여기서, 얻어진 부분합의 결과값 011011000011101 (부분합 4)은 제2도에 도시된 레지스터(207)를 통해 자리수를 맞춘 다음 가산기(209)로 제공되는 데, 이는 하위비트 연산 결과값이 되는 것이다.Here, the obtained result of the subtotal 011011000011101 (subtotal 4) is provided to the adder 209 after fitting the digits through the register 207 shown in FIG. 2, which becomes a result of the lower bit operation.

이와 동시에, 제5도를 참조하여 상위비트 연산 과정을 설명하면 다음과 같다.At the same time, referring to FIG. 5, a higher bit computation process will be described.

상기 부분곱 생성부(203)에 의해 부분 연산된 <10>의 결과값 100001010001은 쉬프트레지스터(2061)로 입력되며, 이로부터 좌측으로 1비트 이동 후, 가산기(2062)로 제공된다.The result value 100001010001, which is partially calculated by the partial product generation unit 203, is input to the shift register 2061, and is provided to the adder 2062 after shifting one bit to the left.

이어서, 부분곱 생성부(203)에 의해 부분 연산된 <9>의 결과값 000000000000은 레지스터(2065)를 통해 가산기(2062)로 제공된다.Subsequently, the result value 000000000000 of <9> partially calculated by the partial product generation unit 203 is provided to the adder 2062 through the register 2065.

따라서, 가산기(2062)에서는 쉬프트레지스터(2061)와 레지스터(2065)로부터 각각 제공되는 결과값<10,9>을 다음과 같이 가산한다.Therefore, the adder 2062 adds the result values <10, 9> provided from the shift register 2061 and the register 2065 as follows.

여기서, 얻어진 부분합은 (1000010100010 (부분합 1)은 쉬프트레지스터(2063)로 제공된다. 쉬프트레지스터(2063)에서는 부분합 1의 결과값 (1000010100010)을 좌측으로 1비트 이동 후, 가산기(2064)로 제공된다.Here, the obtained subtotal is (1000010100010 (subtotal 1) is provided to the shift register 2063. In the shift register 2063, the result value (1000010100010) of the subtotal 1 is shifted one bit to the left, and then provided to the adder 2064. .

이와 더불어, 부분곱 생성부(203)에 의해 부분 연산된 <8>의 결과값 000000000000은 레지스터(2066)와 레지스터(2067)를 통해 가산기(2064)로 제공된다.In addition, the result value 000000000000 of <8> partially calculated by the partial product generation unit 203 is provided to the adder 2064 through the register 2066 and the register 2067.

따라서, 가산기(2064)에서는 쉬프트레지스터(2063)와 레지스터(2067)로부터 각각 제공되는 결과값 (부분합 1,8)을 다음과 같이 가산한다.Therefore, the adder 2064 adds the result values (subtotals 1 and 8) provided from the shift register 2063 and the register 2067 as follows.

여기서, 얻어진 부분합의 결과값 10000101000100 (예 : 부분합 2)은 쉬프트레지스터(미도시 됨)로 제공되며, 쉬프트레지스터(미도시 됨)에서는 좌측으로 1비트 이동 후, 가산기(미도시 됨)로 제공된다.Here, the result value of the obtained subtotal 10000101000100 (e.g., subtotal 2) is provided to the shift register (not shown), and in the shift register (not shown), it is provided to the adder (not shown) after moving 1 bit to the left. .

그리고, 부분곱 생성부(203)에 의해 부분 연산된 <7>의 결과값 000000000000은 복수의 레지스터(미도시 됨)를 통해 가산기(미도시 됨)로 제공된다.The result value 000000000000 of <7> partially calculated by the partial product generation unit 203 is provided to an adder (not shown) through a plurality of registers (not shown).

이에 따라, 가산기(미도시 됨)에서는 쉬프트레지스터(미도시 됨)와 레지스터(미도시 됨)로부터 각각 제공되는 결과값(부분합 2,7)을 가산한다.Accordingly, the adder (not shown) adds result values (subtotals 2 and 7) respectively provided from the shift register (not shown) and the register (not shown).

여기서, 얻어진 부분합의 결과값 100001010001000 (예 : 부분합 3)은 쉬프트레지스터(2071)로 제공되며, 쉬프트레지스터(2071)에서는 부분합의 결과값 100001010001000 (예 : 부분합 3)을 좌측으로 1비트씩 이동한 후, 가산기(2072)로 제공된다.Here, the obtained result of the subtotals 100001010001000 (e.g., subtotal 3) is provided to the shift register 2071. In the shift register 2071, the result of the subtotals 100001010001000 (e.g. subtotal 3) is moved one bit to the left. , Adder 2072 is provided.

이와 더불어, 부분곱 생성부(203)에 의해 부분 연산된 <6>의 결과값 100001010001은 레지스터(2068),,(2070)를 통해 가산기(2072)로 제공된다.In addition, the result value 100001010001 of <6> partially calculated by the partial product generation unit 203 is provided to the adder 2082 through the registers 2068 and 2070.

따라서, 가산기(2072)에서는 쉬프트레지스터(2071)와 레지스터(2068),,(2070)로부터 각각 제공되는 결과값(부분합 3,6)을 가산한다.Therefore, the adder 2072 adds the result values (subtotals 3 and 6) provided from the shift registers 2071, the registers 2068 and 2070, respectively.

여기서, 얻어진 부분합의 결과값 1000110101100001 (부분합 4)은 제2도에 도시된 레지스터(208)를 통해 가산기(209)로 제공되는데, 이는 상위비트 연산 결과값이 되는 것이다.Here, the obtained result of the subtotal 1000110101100001 (subtotal 4) is provided to the adder 209 through the register 208 shown in FIG. 2, which is the result of the higher bit operation.

제2도를 참조하면, 레지스터(208)로부터 제공되는 상위비트 부분합 1000110101100001(부분합 4)과 레지스터(207)로부터 각각 제공되는 하위비트 부분합 0110110000011101 (부분합 4)을 가산기(209)로 제공하게 된다.Referring to FIG. 2, the adder 209 provides the upper bit subtotal 1000110101100001 (subtotal 4) provided from the register 208 and the lower bit subtotal 0110110000011101 (subtotal 4) provided from the register 207, respectively.

따라서, 가산기(209)에서는,Therefore, in the adder 209,

이와 같이 상/하위 비트를 동시에 승산함으로써, 승산하는 단계가 선행하는 일반적인 승산회로에 비해 1/2로 줄어들게 된다.By multiplying the upper / lower bits in this manner, the multiplying step is reduced by 1/2 compared to the conventional multiplication circuit.

한편, 상/하위 비트를 동시에 승산하지 않고 이를 더욱 세부할 경우에는, 보다 처리 단계가 줄어드는 효과는 있겠지만, 그 효과는 그리 크지 않으며 하드웨어 구현시 이를 일일이 파악하여 설계를 하여야 하므로 재연성이 줄어드는 단점이 있다.On the other hand, in the case of more detail without multiplying the upper and lower bits at the same time, the processing step may be reduced, but the effect is not so great, and the reproducibility is reduced because the hardware must be understood and designed. .

그러나 전술한 바와 같이 쉬프트 레지스터를 사용함에 있어서, 일반 레지스터와 쉬프트레지스터를 이어서 사용하지 않고, 일반 레지스터에 자리 이동 수만큼의 그라운드(GND) 처리를 함으로써, 쉬프트 레지스터의 효과를 내면서 소자의 수를 줄일 수가 있다.However, when using the shift register as described above, by performing the ground (GND) processing of the shift register in the general register without using the general register and the shift register in succession, the number of elements can be reduced while making the shift register effective. There is a number.

전술한 바와 같이, 본 발명에 따른 고속 승산 회로에 의하면, 피승수와 승수의 곱인 AND 게이트의 배열과, 가산기 및 쉬프트 레지스터로 구성시켜, M비트의 피승수에 N비트의 승수를 승산할 경우, 피승수에 승수의 최하위 비트(LSB)부터 (N/2)비트 까지와, 최상위 비트(MSB)부터 (N/2+1)비트까지의 승산을 병렬처리함으로써 승산 단계를 1/2로 줄일 수 있다.As described above, according to the high-speed multiplication circuit according to the present invention, when the multiplication of the multiplier and the multiplier is made up of an AND gate array, an adder and a shift register, and the multiplier of the M-bit multiplier is multiplied by the N-bit multiplier, The multiplication step can be reduced to half by parallel processing the multiplication from the least significant bit (LSB) to (N / 2) bits of the multiplier and the most significant bit (MSB) to (N / 2 + 1) bits.

또한, 각 가산기로 입력되는 데이타의 타이밍을 맞추기 위해서 처리 단계(Stage)마다 레지스터를 사용하므로 처리 단계가 줄어드는 만큼 레지스터의 갯수가 줄어들기 때문에 소자의 수가 줄어든다는 이점도 있다.In addition, since the registers are used for each processing stage to match the timing of data input to each adder, the number of registers is reduced as the processing stage is reduced, thereby reducing the number of devices.

그리고, 자리수를 맞추기 위하여 자리 이동을 할 때 레지스터를 하나 더 사용하는 대신에 자리수만큼을 그라운드 처리함으로써 처리 단계마다 레지스터를 하나씩만 사용하면 되므로 소자의 수를 줄일 수 있으며, 자리수만큼 그라운드 처리 할 경우 레지스터 두개를 연결하여 사용할 때 보다 처리 단계마다 1주기씩의 클럭 신호가 감소하기 때문에, 고속으로 승산을 할 수 있는 커다란 효과가 있다.In addition, instead of using one more register when shifting the digit to match the digit, instead of using one more digit, the number of devices can be reduced because only one register is used per processing step, and the number of digits can be grounded. Since the clock signal is reduced by one cycle per processing step than when the two are connected, there is a great effect of multiplying at high speed.

Claims (1)

승수의 최하위 비트(LSB)와 최상 비트(MSB)를 동시에 병렬로 피승수에 승산하는 회로에 있어서, M비트(M은 0이 아닌 정수) 피승수가 입력되는 제1레지스터(201)와; N비트(N은 0이 아닌 정수) 승수가 입력되는 제2레지스터(202)와; 상기 제1레지스터(201)에 입력되는 피승수의 모든 비트와 상기 제2레지스터(202)에 입력되는 승수의 각 비트를 승산하며, 이로부터 승산된 복수의 하위 및 상위비트의 부분곱(PD1-PDM)을 제공하는 부분곱 생성부(203)와; 상기 부분곱 생성부(203)에 연결된 복수의 레지스터 및 쉬프트 레지스터를 근거로 하여 상기 부분곱 생성부(203)로부터 제공되는 하위비트간의 부분곱(PD1-PD(N/2))들을 가산하여 출력하는 하위비트 승산부(205)와; 상기 부분곱 생성부(203)에 연결된 복수의 레지스터 및 쉬프트 레지스터를 근거로 하여 상기 부분곱 생성부(203)로부터 제공되는 상위비트간의 부분곱(PD(N/2)-PDM)들을 가산하여 출력하는 상위비트 승산부(205)와; 상기 하위비트 승산부(205)의 출력 비트와 상위비트 승산부(206)의 출력 비트간의 자리수를 일치시키는 레지스터(207) 및 (208)와; 상기 레지스터(207) 및 (208)에 의해 자리수가 맞춰진 하위비트 승산부(205)의 출력 비트와, 상위비트 승산부(206)의 출력 비트를 가산하여 상기 입력된 피승수 및 승수간의 승산된 값을 출력하는 가산기(209)로 구성됨을 특징으로 하는 고속 승산 회로.A circuit for multiplying the least significant bit (LSB) and the most significant bit (MSB) of a multiplier at the same time in parallel with a multiplier, comprising: a first register 201 to which an M bit (M is a nonzero integer) multiplier is input; A second register 202 to which an N-bit (N is a non-zero integer) multiplier is input; Multiplies all bits of the multiplier input to the first register 201 and each bit of the multiplier input to the second register 202, and a partial product PD1-PDM of a plurality of lower and upper bits multiplied therefrom. A partial product generation unit 203 for providing; Based on the plurality of registers and the shift registers connected to the partial product generator 203, the partial products PD1-PD (N / 2) between lower bits provided from the partial product generator 203 are added and output. A lower bit multiplier 205; On the basis of a plurality of registers and shift registers connected to the partial product generation unit 203, the partial product (PD (N / 2) -PDM) between upper bits provided from the partial product generation unit 203 is added and output. An upper bit multiplier 205; Registers (207) and (208) for matching the number of digits between the output bits of the lower bit multiplier (205) and the output bits of the upper bit multiplier (206); The multiplied value between the input multiplier and the multiplier is added by adding the output bits of the lower bit multiplier 205 and the output bits of the upper bit multiplier 206 that are aligned by the registers 207 and 208. A high speed multiplication circuit, comprising: an adder (209) for outputting.
KR1019930014868A 1993-07-31 1993-07-31 High speed multiplicating circuit KR950012088B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019930014868A KR950012088B1 (en) 1993-07-31 1993-07-31 High speed multiplicating circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019930014868A KR950012088B1 (en) 1993-07-31 1993-07-31 High speed multiplicating circuit

Publications (2)

Publication Number Publication Date
KR950003970A KR950003970A (en) 1995-02-17
KR950012088B1 true KR950012088B1 (en) 1995-10-13

Family

ID=19360582

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930014868A KR950012088B1 (en) 1993-07-31 1993-07-31 High speed multiplicating circuit

Country Status (1)

Country Link
KR (1) KR950012088B1 (en)

Also Published As

Publication number Publication date
KR950003970A (en) 1995-02-17

Similar Documents

Publication Publication Date Title
US6609143B1 (en) Method and apparatus for arithmetic operation
US4797848A (en) Pipelined bit-serial Galois Field multiplier
US4611305A (en) Digital signal processing circuit
US4706211A (en) Digital multiplying circuit
US5177703A (en) Division circuit using higher radices
US6127863A (en) Efficient fractional divider
KR950012088B1 (en) High speed multiplicating circuit
US5870322A (en) Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication
US5493522A (en) Fast arithmetic modulo divider
JP3660075B2 (en) Dividing device
KR0147942B1 (en) Booths recording circuit in a multiplier
RU2012137C1 (en) Device for forming remainder on arbitrary modulus
RU2791440C1 (en) Pipeline generator of remainders by an arbitrary modulus
RU2797164C1 (en) Pipeline module multiplier
KR100247925B1 (en) Multiflier and operating method thereof
KR100386979B1 (en) Method of paralleling bit serial multiplier for Galois field and a bit serial-parallel multipiler using thereof
JP3123060B2 (en) Digital arithmetic circuit
KR0161485B1 (en) A multiplier of booth algorithm using arithmetic unit
US5615141A (en) Multiplying apparatus
JP2864598B2 (en) Digital arithmetic circuit
JP3230349B2 (en) Decimal multiplier
Jiang et al. Residue-Weighted Number Conversion with Moduli Set {2^ p-1, 2^ p+ 1, 2^{2p}+ 1, 2^ p} Using Signed-Digit Number Arithmetic
KR0141870B1 (en) High speed pipeline multiplication circuit
KR19990003926A (en) How to implement partial product generation and partial product addition tree for reduced area and high speed operation of multiplier
KR0153759B1 (en) Circuit of high speed multiplication and involution

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121002

Year of fee payment: 18

EXPY Expiration of term