KR100248977B1 - 승산기 - Google Patents

승산기 Download PDF

Info

Publication number
KR100248977B1
KR100248977B1 KR1019970003412A KR19970003412A KR100248977B1 KR 100248977 B1 KR100248977 B1 KR 100248977B1 KR 1019970003412 A KR1019970003412 A KR 1019970003412A KR 19970003412 A KR19970003412 A KR 19970003412A KR 100248977 B1 KR100248977 B1 KR 100248977B1
Authority
KR
South Korea
Prior art keywords
output
multiplier
bit
booth
complement
Prior art date
Application number
KR1019970003412A
Other languages
English (en)
Other versions
KR19980067402A (ko
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 KR1019970003412A priority Critical patent/KR100248977B1/ko
Publication of KR19980067402A publication Critical patent/KR19980067402A/ko
Application granted granted Critical
Publication of KR100248977B1 publication Critical patent/KR100248977B1/ko

Links

Images

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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/527Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel
    • G06F7/5272Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel with row wise addition of partial products

Landscapes

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

Abstract

본 발명은 가산되는 부분곱의 행의 수를 줄인 컴퓨터의 승산기에 관한 것이다.
본 발명의 승산기는 연속하는 승수의 2진수 비트열이 입력되어 부스코드를 출력하는 복수의 부스인코더(11)와, 피승수의 비트열과 상기 부스인코더(11)로부터 출력되는 부스코드가 각기 입력되어 부분곱을 발생시키는 복수의 부분곱 발생기(21)와, 피승수의 2의 보수를 출력하는 2의 보수 연산회로(31)와, 상기 부스인코더의 출력중 최상위의 3자리의 승수에 대한 부스코드가 입력되어 5개의 선택신호를 발생하는 선택 코드생성기(41)와, 상기 선택 코드생성기로부터 출력되는 5개의 신호에 의해 피승수, 2×피승수, 상기 2의 보수 연산회로(31)에서 출력되는 피승수의 2의 보수, 2×피승수의 2의 보수, 또는 0의 값 중 어느 하나의 값을 선택하는 멀티플렉서(51)를 포함하여 이루어진다.
이러한 구성의 승산기에 의해 팬 아웃을 줄이고 상호접속을 간단히 할 수 있을 뿐 만 아니라 고속의 곱셈을 수행할 수 있게 된다.

Description

승산기
본 발명은 컴퓨터의 승산기에 관한 것으로서, 특히 2의 보수 연산회로를 사용하여 가산되어야 할 부분곱의 행의 수를 줄인 컴퓨터의 승산기에 관한 것이다.
종래의 이진수의 곱셈은 다음과 같은 방법에 의해 행해진다.
Figure kpo00001
이러한 방법은 종이에 기록하면서 계산하는 방법과 동일한 것으로서, 그 결과는 두 입력이 n bit×n bit 일때 최대 2n bit로 된다. 이때 2n번째 비트보다 상위의 오버플로우(Overflow)는 2의 보수의 특성에 의해 무시된다. 이러한 종래의 방법은 중간에 생성되는 부분곱의 단위 수가 n개이고, 따라서 부분곱들을 구하기 위한 시간이 많이 소요되는 문제점이 있엇다.
이러한 종래의 방법을 개량한 2의 보수의 곱셈방법으로서 부스 알고(Booth's Algorithm)이 제안되었는 바, 부스는 2i+(k-1)+2i+(k-2)+......+2i=2i+k-2i의 식에서 나타나는 바와 같이 연속하는 비트 스트링의 속성을 이용하여 승수비트에 의한 부분곱의 수를 줄이는 방법을 제안하였다.
이러한 부스 알고리즘을 이용하여 두 개의 비트쌍(bit-pair)으로부터 한 개의 부분곱을 얻을 수 있도록 코딩하는 수정형 Booth 부호화 기법을 얻을 수 있다. 즉, 1의 스트링이 시작될 때 그 상위 비트에 1을 더하고, 1의 스트링이 끝날 때에는 끝나는 위치에서 1을 빼는 방법으로 부호화하는 방법이다. 표 1은 두 개의 비트와 그 오른쪽에 위치하는 비트를 가지고 전술한 Booth 알고리즘을 적용해 얻은 기준표이다.
[표 1]
Figure kpo00002
수정형 Booth 알고리즘의 장점은 표 1과 같은 부호화에 의해 어떠한 n비트 승수에 대해서도 일정한 n/2개의 부분곱단을 얻을 수 있다는 점이다. 따라서 곱셈과정에서 더해 줄 부분곱들의 수가 줄어 들어 처리 속도가 빨라진다.
이러한 수정형 부스 알고리즘에 의한 곱셈은 다음과 같이 수행된다.
Figure kpo00003
여기에서 pp00~pp83은 부분곱을 의미한다.
그러나 수정형 부스 알고리즘에 의한 연산도 역시 부호연장(Sign extension)이 필요하다. (위에 식에서 ▒ 표시된 pp80 , pp81 등의 연장) 이러한 부호연장은 승산기에서의 많은 팬 아웃(fan-outs)과 복잡한 상호접속(Complex interconnection)을 유발한다. 그리고 모든 부분곱단들에는 NEG시그널(위에 식에서 neg0~neg3)이 더해져야 하는 바, 이는 부스코드(Booth Code)가 발생했을 때 이를 음수로 전환하여야 하는 경우 1을 더해야 하기 때문이다.
이러한 부호연장의 문제점을 해결하기 위해 루어다(Roorda)는 다음과 같은 곱셈방법을 제안하였다.
[수학식 1]
Figure kpo00004
상기한 루어다의 곱셈식은 수정형 부스 알고리즘에 의한 곱셈식과 동일한 것으로서, 이에 대한 증명은 다음과 같다.
수정형 부스 알고리즘의 곱셈식의 첫번째 행은 다음의 수학식 2이다.
[수학식 2]
pp80 pp80 pp80 pp80 pp80 pp80 pp80 pp80 pp70 pp60 pp50 pp40 pp30 pp20 pp10 pp00
만약 pp80이 1이라면, 수학식 2는 다음과 같은 수학식 3으로 바뀐다.
[수학식 3]
1 1 1 1 1 1 1 1 pp70 pp60 pp50 pp40 pp30 pp20 pp10 pp00
여기에서 pp80'=0이므로 수학식 3은 다음과 같은 수학식 4로 된다.
[수학식 4]
Figure kpo00005
다음으로 pp80=0이라고 가정하면 수학식 2는 다음의 수학식 5로 된다.
[수학식 5]
0 0 0 0 0 0 0 0 pp70 pp60 pp50 pp40 pp30 pp20 pp10 pp00
수학식 5는 다음의 수학식 6과 동일하다.
[수학식 6]
Figure kpo00006
왜냐하면 pp80'=1이고 pp80'보다 상위의 비트에는 2의 보수특성상 올림수 1이 전파되며 오버플로우는 무시되기 때문이다.
따라서, 수정형 부스알고리즘의 곱셈식의 첫번째 행과, 루어다의 곱셈식의 첫번째 행 및 두번째 행은 동일하다.
수정형 부스알고리즘의 곱셈식의 제2행, 제3행, 제4행에 대해서도 이상과 같이 동일하게 증명함으로써 수정형 부스 알고리즘의 곱셈식과 루어다의 곱셈식이 동일함이 증명되는 바, 본 명세서에서는 더 이상의 증명은 생략한다.
이와 같은 루어다의 방법에 의해 부호연장의 문제점이 해결되었다. 그러나 Roorda의 방법에서는 수정형 부스 알고리즘에 비해 pp80' 위에 1의 행(수학식 1에서 *로 표시)이 하나 더 있게 되고, 따라서 수정형 부스 알고리즘은 전술한 예에서는 4행(row)을 더해야 하지만 Roorda의 방법에서는 수학식 1에 나타난 바와 같이 5행을 더해야 하며 이에 의해 승산기의 성능이 나빠지는 문제점이 있다.
또한, 수정형 부스 알고리즘과 루어다의 알고리즘 모두 pp03의 아래에 Neg3을 더해주어야 하며 이는 곧 5개의 행을 더하여 하는 구조를 갖게 됨을 의미하고 이에 의해 Neg3와 1*를 위해 CSA(Carry Save Adder)단이 하나 더 필요해지는 문제점이 있었다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위해 안출된 것으로서, 본 고안의 목적은 가산되어야 할 행의 수를 줄임으로써 보다 빠른 속도로 곱셈값을 얻을 수 있는 승산기를 제공하는 것이다.
본 발명의 다른 목적은 종래의 회로에 비해 연산속도가 빠른 2의 보수 연산회로를 이용하여 보다 빠른 속도로 곱셈값을 얻을 수 있는 승산기를 제공하는 것이다.
도 1은 본 발명에 따른 승산기의 블록도,
도 2a는 본 발명에 따른 승산기의 부스인코더에서 ONEi 신호를 출력하는 회로의 논리도,
도 2b는 본 발명에 따른 승산기의 부스인코더에서 TWOi 신호를 출력하는 회로의 논리도,
도 2c는 본 발명에 따른 승산기의 부스인코더에서 NEGi 신호를 출력하는 회로의 논리도,
도 3은 본 발명에 따른 승산기의 부분곱생성기의 논리도,
도 4는 본 발명에 따른 승산기의 2의 보수연산회로의 논리도,
도 5는 본 발명에 따른 승산기에서 선택코드발생기와 이에 접속되는 멀티플렉서의 논리도,
도 6은 본 발명에 따른 승산기에서 가산되어야 할 요소를 도식적으로 설명한 도이다.
상기한 목적을 달성하기 위하여 본 발명에 따른 승산기는 연속하는 승수의 2진수 비트열이 입력되어 부스코드를 출력하는 복수의 부스인코더와, 피승수의 비트열과 상기 부스인코더로부터 출력되는 부스코드가 각기 입력되어 부분곱을 발생시키는 복수의 부분곱 발생기와, 피승수의 2의 보수를 출력하는 2의 보수 연산회로와, 상기 부스인코더의 출력중 최상위의 3자리의 승수에 대한 부스코드가 입력되어 5개의 선택신호를 발생하는 선택 코드생성기와, 상기 선택 코드생성기로부터 출력되는 5개의 신호에 의해 피승수, 2×피승수, 상기 2의 보수 연산회로에서 출력되는 피승수의 2의 보수, 2×피승수의 2의 보수, 또는 0의 값 중 어느 하나의 선택하는 멀티플렉서를 포함하여 이루어진다.
또한 상기한 목적을 달성하기 위하여 본 발명에 따른 승산방법은, 연속하는 승수의 비트열을 부스인코더에 입력시켜 부호화하는 부스코드생성단계와; 피승수의 비트열과 상기 부스인코더에서 출력된 부스코드를 부분곱생성기에 입력시켜 부분곱을 생성하는 단계와; 피승수를 2의 보수화 하는 단계와; 상기 부스코드생성단계에서 생성된 부스코드 중 최상위를 시그니피컨트의 3자리 승수에 대한 부스코드가 선택코드생성기에 입력되어 5개의 신호를 생성하는 선택코드생성단계와; 상기 선택코드생성단계에서 생성된 선택코드에 따라 멀티플렉서에 의해 피승수, 2×피승수, 피승수의 2의 보수, 2×피승수의 2의 보수, 또는 0의 값 중 어느 하나를 선택하여 출력하는 단계와; 상기 복수의 부분곱발생기에서 출력된 복수의 부분곱과, 상기 멀티플렉서에서 출력된 값을 합산하는 단계를 포함하여 이루어진다.
이하, 첨부되면을 참조하여 본 발명에 따른 승산방법 및 승산기의 구조를 상세히 설명한다.
본 발명에 따른 승산 알고리즘은 다음의 수학식 7에 나타난 바와 같다.
[수학식 7]
Figure kpo00007
본 발명의 상기 승산 알고리즘은 루어다의 알고리즘에서 첫번째와 두번째의 행인
[수학식 8]
Figure kpo00008
[수학식 9]
pp80' pp80 pp80 pp70 pp60 pp50 pp40 pp30 pp20 pp10 pp00으로 바꿈으로써 행의 수를 하나 줄인다.
또한 루어다의 알고리즘에서 네 번째 행과 다섯 번째 행인
[수학식 10]
Figure kpo00009
[수학식 11]
1 s8' s7 s6 s5 s4 s3 s2 s1 s0 neg2로 바꿈으로써 더해져야 할 행의 수를 줄인다.
따라서 본 발명의 승산 알고리즘에서는 어느 열에서나 4개 이하의 요소만을 더해주는 구성이다.
이하에서 먼저 루어다의 알고리즘의 첫 번째 행과 두 번째 행이 본 발명의 승산 알고리즘의 부분곱의 첫 번째 행으로 바뀌는 과정을 설명한다.
[수학식 12]
Figure kpo00010
상기한 수학식 12는 루어다의 곱셈 알고리즘에서 첫 번째 행만 부호연장방법을 사용하여 표시한 식이다.
이 수학식 12에 의한 곱셈결과는 루어다의 곱셈식과 완전 동일하며 이에 대한 증명은 전술한 바 있으므로 여기에서는 생략한다.
수학식 12에서 1의 스트링은 2의 보수의 특성에 의해 소거되어 다음의 수학식 13로 된다.
[수학식 13]
Figure kpo00011
이 수학식 13에서는 여전히 5개의 원소를 더해야 하는 하나의 열(p10의 결과가 얻어지는 열)을 포함하고 있으므로 4개의 원소를 더해야 하는 구성으로 만들어주기 위해서는 유일하게 1만을 가진 행을 없애야 한다.
수학식 13의 첫 번째 행과 두 번째 행은 다음과 같다.
[수학식 14]
Figure kpo00012
수학식 14에서 pp80=1이라면 다음의 수학식 15가 구해진다.
[수학식 15]
Figure kpo00013
pp80'=0이므로 수학식 15는 다음과 같은 수학식 16으로 바뀔 수 있다.
0 0 0 0 0 pp80' pp80 pp80 pp70 pp60 pp50 pp40 pp30 pp20 pp10 pp00
만약 pp80=0이면 수학식 14는 다음의 수학식 17로 변환된다.
[수학식 17]
Figure kpo00014
pp80'=1이므로 수학식 17은 다음의 수학식 18로 바뀐다.
[수학식 18]
0 0 0 0 0 pp80' pp80 pp80 pp70 pp60 pp50 pp40 pp30 pp20 pp10 pp00
그러므로, 루어다의 곱셈방법에서 첫 번째 행과 두 번째 행은 수학식 7에 나타난 바와 같이 본 발명의 승산 알고리즘의 첫 번째 행과 동일하다.
다음으로 루어다의 알고리즘의 제4행과 제5행인 수학식 10이 본 발명의 곱셈 방법의 제4행인 수학식 11로 되는 과정을 설명한다.
루어다의 알고리즘에 의한 곱셈에서는 부분곱을 2의 보수화하기 위하여 모든 부분곱에 Neg 시그널을 더해야 한다. 그러나, 만약에 맨 마지막행의 부분곱이 양수인가 또는 음수인가에 관계없이 이를 미리 2의 보수로 바꾸어 놓는다면 마지막 행에 Neg시그널을 더할 필요가 없게 된다.
따라서 수학식 10에서의 부분곱 pp03~pp83'을 각각 2의 보수화한 S0~S8'로 바꿈으로써 수학식 10의 마지막 행인 Neg3을 생략할 수 있게 된다.
이상에서 설명한 본 발명의 승산 알고리즘에 의한 본 발명에 따른 승산기의 구성을 첨부도면을 참조하여 이하에서 상세히 설명한다.
도 1은 본 발명에 따른 승산기의 블록도로서, 도시된 바와 같이 본 발명의 승산기는 입력 2진수가 입력되는 복수의 부스인코더(11)와, 부스인코더(11)의 출력과 피승수가 입력되어 부분곱을 발생시키는 복수의 부분곱 발생기(21)와, 2의 보수연산회로(31)와, 부스인코더(11)의 출력에 따라 선택신호를 생성하는 선택코드생성기(41)와, 선택신호에 의해 2의 보수 연산회로의 출력을 선택하는 멀티플렉서(51)를 포함하여 이루어진다.
부스인코더(11)는 승수의 비트열이 입력되어 부스코드를 발생시키는 회로로서, 본 발명의 승산기는 복수의 부스인코더(11)를 포함하여, 각각의 부스인코더(11)에는 승수의 비트열 중 최하위 시그니피컨스의 비트(LSB:least significant bit)로부터 상위로 연속 3비트씩 입력된다. 즉, 전술한 표 1에 도시된 바와 같이 연속하는 3자리 비트 yi+1yiyi-1가 부스인코더(11)에 입력된다. 이때 승수의 LSB가 입력되는 부스인코더(13)에는 y-1의 비트가 항상 0이라고 가정하여 부스인코더(13)의 입력단자(13)에는 0이 입력되며, 다음의 부스인코더(15)에는 부스인코더(13)에 입력되는 3자리의 승수중 최상위의 비트인 y1을 포함한 3비트 즉 y3y2y1이 입력된다. 동일하게 부스인코더(17)에는 y5y4y3의 승수가 입력된다.
부스인코더(11)는 입력된 세자리의 승수비트에 따라 부스코드를 생성한다. 부스코드는 전술한 표 1에 나타난 바와 같이 2, 1, 0, -1, -2의 5개의 값을 갖는다.
도 2a, b, c는 부스인코더(11)에서 5개의 부스코드를 생성하기 위하여 3개의 신호 ONEi, TWOi, NEGi를 출력하는 회로의 논리도로서, 도 2a는 ONEi를 도 2b는 TWOi, 도2c는 NEGi를 출력하는 회로의 논리도이다. ONEi의 신호는 승수입력비트 y2i와 y2i-1을 exclusive-OR시켜서 얻는다.
TWOi신호는 (y2i+1)', y2i, y2i-1을 AND게이트(61)에 입력시키고, y2i+1, (y2i)', (y2i-1)'을 AND게이트(63)에 입력시켜 각각의 AND게이트(61),(63)의 출력을 OR게이트(65)에 입력시킴으로써 얻을 수 있다.
NEGi신호는 y2i와 y2i-1을 NAND게이트(67)에 입력시키고 그 출력값과 y2i+1을 AND게이트(69)에 입력시킴으로써 구할 수 있다. 즉 ONEi=y2i
Figure kpo00015
y2i-1, TWOi=(y2i+1)' y2iy2i-1+y2i+1(y2i)' (y2i-1)', NEGi=y2i+1·((y2i)'+(y2i-1)')로서, 도 2a, b, c는 이를 구현한 회로이다.
예를 들면, 부스인코더(11)에서 출력하여야 할 값이 -2인 경우 ONEi=0, TWOi=1, NEGi=1의 신호가 출력된다.
도 3은 본 발명에 따른 승산기의 부분곱발생기(21)의 논리도이다.
부분곱발생기(21)에는 피승수와 부스코드가 입력되어 부분곱을 생성하는 회로로서 각각의 부스인코더(11)에 대응하여 복수개로 이루어진다.
부분곱은 Pij=(ONEi·xj+TWOi·xj-1)
Figure kpo00016
NEGi(단 0≤i≤n/2-1, 0≤j≤n, x-1=0, xn=xn-1)의 식에 의해 구해지며 도 3은 부분곱 Pij를 구하기 위해 이 식을 회로로 구성한 것이다.
이를 상술하면 부스인코더(11)의 출력 ONEi와 피승수의 비트 xj는 AND게이트(71)에 입력되고, TWOi와 xj-1은 AND게이트(73)에 입력되어 각각의 AND게이트(71),(73)의 출력은 OR게이트(75)에 입력된다. OR게이트(75)의 출력과 NEGi가 XOR게이트(77)에 입력됨으로써 부분곱 Pij를 구할 수 있다.
부분곱발생기(23)에 입력되는 피승수는 xn-1, xn-2 ......., x0이며, 부분곱발생기(23)에서 출력된 부분곱은 (PPn·o)' (PPn-1·o) ... PP20PP10PP0이다. 이때 발생되는 부분곱을 2의 보수화하기 위하여 NEG신호가 부분곱발생기(23)의 최하위의 시그니피컨스의 셀에 인가되어 PP0에 NEG신호가 더해져서 상위의 비트로 전파된다.
본 발명의 승산기의 최하단의 부분곱발생기는 2의 보수 연산회로(31)로 대체된다. 전술한 바와 같이 종래의 루어다의 방법에서는 최하단의 부분곱을 2의 보수화하기 위하여 NEG신호를 인가하였으나 본 발명에서는 이를 개선하기 위해 최하단의 부분곱을 미리 2의 보수화하기 위한 2의 보수연산회로(31)를 설치하는 바, 2의 보수연산회로로서는 루어다의 방법에서는 최하단의 부분곱에 NEG신호를 더한 값과 동일한 모든 2의 보수연산회로가 채택될 수 있지만 바람직하게는 다음과 같은 구성의 연산회로가 채택된다.
도 4는 본 발명에 따른 승산기의 2의 보수 연산회로의 개략논리도로서, 본 실시예에서는 16비트의 입력을 2의 보수로 만들어서 종래의 방법에서의 최하단의 부분곱과 동일한 값을 갖는 2의 보스를 출력하는 회로를 도시한다.
본 발명의 2의 보수 연산회로는 제1조합회로(131), 제2조합회로(133), 제2멀티플렉서(135), 제3조립회로(140)를 포함한다.
제1조합회로(131)는 16비트로 이루어진 2진수가 입력되는 16개의 입력터미널(a0~a15)과 복수의 논리게이트로 구성된다. 16개의 입력터미널에는 16비트의 피승수(x0~x15)가 입력된다. 4개의 입력터미날(a0~a3)로 이루어지는 A0그룹의 제1조합회로(131)를 예로 들면, 입력터미날(a0)은 인버터(141)로 연결되고 동시에 2-입력 NOR게이트(143)에 연결된다. 입력터미날(a1)은 상기한 2-입력 NOR게이트(143)의 또다른 입력에 연결된다. 입력터미날(a2)은 인버터(145)에 연결되고 인버터(145)의 출력은 NAND게이트(147)의 한 입력에 접속된다. NAND게이트(147)의 다른 입력은 상기한 NOR게이트(143)의 출력에 연결된다. NAND게이트(147)의 출력은 또 다른 인버터(149)에 접속되고 동시에 NOR게이트(151)의 한 입력에 연결된다. NOR게이트(151)의 다른 입력은 입력터미날(a3)에 연결된다. 본 실시예에서는 16개의 입력터미날을 4개씩 1그룹으로 구분하여 4개의 그룹으로 만들었으며, 따라서 A0, A1, A2, A3의 4개의 그룹으로 구분되는 입력 이진수를 처리하는 4개의 동일한 구조의 제1조합회로(131)가 설치된다.
4개의 그룹(A0~A3)의 제1조합회로(131)의 출력중 최상위의 4개의 NOR게이트(151, 153, 155, 157)의 출력은 제2조합회로(133)의 게이트에 각각 연결된다. 상술하면, A0그룹의 제1조합회로(131)의 NOR게이트(151)의 출력은 제2조합회로(133)의 인버터(161)에 연결되며 동시에 NAND게이트(163)의 한 입력에 연결된다. A1그룹의 제1조합회로의 NOR게이트(153)의 출력은 제2조합회로의 NAND게이트(163)의 다른 입력에 연결된다. A2그룹의 제1조합회로의 NOR게이트(155)의 출력은 제2조합회로(133)의 인버터(165)에 접속되고, 이 인버터의 출력은 NOR게이트(167)의 한 입력에 연결된다. NOR게이트(167)의 다른 입력은 NAND게이트(163)의 출력이 접속된다. NOR게이트(167)의 출력은 인버터(169)에 입력된다. A3그룹의 제1조합회로의 NAND게이트(157)의 출력은 제2조합회로의 NAND게이트(171)의 한 입력에 연결되고, NAND게이트(171)의 다른 입력에는 제2조합회로(133)의 NOR게이트(167)의 출력이 접속된다.
제2조합회로(133)의 네 출력(C0~C3) 중 세 출력(C0~C2)은 제2멀티플렉서(135)에 연결된다. 제2멀티플렉서(135)는 8개의 N-트랜지스터와 1개의 인버터(177)로 구성된다. 8개의 N-트랜지스터는 4개씩 짝을 이루어서 2개의 트랜지스터 군을 형성하며 각 군에서의 트랜지스터는 순차로 접속된다. 트랜지스터(173)의 한 입력은 제2조합회로(133)의 인버터(161)의 출력(C0)에 연결되고 다른 입력에는 로직 0이 인가된다. 다른 트랜지스터 군의 트랜지스터(175)에는, 제2조합회로(133)의 인버터(161)의 출력(C0)이 접속된 인버터(177)가 접속되며, 또한 트랜지스터(175)의 다른 입력에는 A1그룹의 제1조합회로(131)의 인버터(152)의 출력이 접속된다. 트랜지스터군을 이루는 4개의 트랜지스터(175) 모두에 상기한 방식과 동일하게 인버터(177)의 출력과 A1그룹의 제1조합회로(131)의 출력에 각각 접속되므로, 이에 대한 설명은 생략한다. 제2조합회로(133)의 각각의 게이트에서의 출력(C0, C1, C2, C3)중 세 개의 출력(C0, C1, C2)만이 제2멀티플렉서에 입력되는 바, 출력 C0는 A1그룹의 제1조합회로(131)에 접속된 제2멀티플렉서(135)에, 출력 C1은 A2그룹의 제1조합회로(131)에 접속된 제2멀티플렉서(136)에, 출력 C2는 A3그룹의 제1조합회로(131)에 접속된 제2멀티플렉서(137)에 각각 접속되며, 출력 C3는 본 실시예의 제2멀티플렉서에는 접속되지 않으며, 후술하는 바와 같이 입력2진수가 64비트 또는 128비트 등으로 확장되어 본 실시예의 회로 2개를 접속하여 처리할 경우, 본 실시예의 출력인 C3는 본 실시예의 회로와 동일한 회로로 구성된 다음 단계의 연산회로의 입력으로 사용된다.
제2멀티플렉서(135)의 트랜지스터출력은 제3조합회로(140)의 exclusive-NOR게이트(179)에 연결된다. 제3조합회로는 복수개의 2입력 exclusive-NOR게이트로 구성된다. 이러한 exclusive-NOR게이트는 연결되는 입력에 따라 2개의 군으로 구별될 수 있으며, 첫번째 exclusive-NOR게이트군(139)은 5개의 exclusive-NOR게이트로 구성된다. 여기에서, 최하위의 exclusive-NOR게이트(181)에는 로직 1과 제1조합회로(131)의 입력터미날(a0)이 연결되고, 다음 exclusive-NOR게이트(183)에는 인버터(141)의 출력과 입력터미날(a1)이 연결되고, 게이트(185)는 제1조합회로 NOR게이트(143)의 출력과 입력터미날(a2)이, 게이트(187)에는 제1조합회로(131)의 인버터(149)와 입력터미날(a3)이, 게이트(181)에는 제1조합회로(131)의 NOR게이트(151)과 입력터미날(a4)이 각각 접속된다.
한편, 다른 하나의 exclusive-NOR게이트군(140)의 4개의 exclusive-NOR 게이트(179)로 구성되며, 여기에는 제2멀티플렉서(135)의 트랜지스터(173) 또는 트랜지스터(175)의 출력이 연결되고 또한 제1조합회로의 입력터미날(a5)이 연결된다. 동일하게 exclusive-NOR게이트(179)보다 상위의 exclusive-NOR게이트에는 각각 상위의 입력터미날과 멀티플렉서의 상위의 트랜지스터의 출력이 접속된다.
도 5는 본 발명에 따른 승산기에서 선택코드생성기와 이에 접속되는 멀티플렉서의 논리도로서 본 발명의 선택코드생성기(41)는 승수의 비트중 최상위의 시그니피컨트 비트(MSB:Most Significant Bit)인 yn-1yn-2yn-3가 입력되는 부스인코더(19)에 접속된다. 선택코드생성기(41)는 4개의 AND게이트와 하나의 NOR게이트로 구성되며, AND게이트(81)에는 부스인코더(19)로부터 출력되는 NEG와 TWO의 신호가, AND게이트(83)에는 NEG와 ONE신호가, AND게이트(87)에는 NEG'과 ONE신호가, AND게이트(85)에는 NEG'과 TWO신호가, NOR게이트(89)에는 ONE과 TWO신호가 각기 접속된다.
멀티플렉서(51)는 2의 보수연산회로(31)와 선택코드생성기(41)의 각 출력 및 최초 입력 피승수에 접속되어 선택코드에 따라 2의 보수연산회로(31)의 출력중 하나를 선택한다.
도 1 및 도 5를 참조하여 2의 보수연산회로(31)의 출력과 선택코드생성기(41)의 출력이 멀티플렉서(51)에 접속되는 상태를 설명한다.
멀티플렉서(51)는 5개의 N-트랜지스터로 구성된다. 트랜지스터(52)에는 로직 0이 인가되고, 선택코드생성기(41)의 출력중 0의 시그널이 접속된다. 트랜지스터(53)에는 피승수의 비트중 xn-2번째 비트의 입력단자(57)가 접속되며, 선택코드생성기(41)의 +2의 시그널이 접속된다. 트랜지스터(54)에는 피승수의 xn-1번째의 비트의 입력단자(58)가 연결되며, 선택코드생성기(41)의 +1의 시그널이 접속된다. 트랜지스터(55)에는 피승수의 xn-2번째의 비트에 대응한 2의 보수연산회로(31)의 출력단자(59)가 연결되며, 선택코드생성기(41)의 -2의 시그널이 인가된다. 트랜지스터(56)에는 피승수의 xn-1번째의 비트에 대응한 2의 보수연산회로(31)의 출력단자(60)가 연결되고, 선택코드생성기(41)의 -1의 출력시그널이 인가된다.
다음으로, 이상과 같은 구조의 본 발명의 승산기의 작동상태를 설명한다.
도 1에서, n비트의 피승수의 비트열 x0~xn-1이 부분곱생성기(23)에 입력된다. n비트의 승수의 비트열중 최하위의 두 비트 y0, y1과 로직 0이 부스인코더(13)에 입력된다. 부스인코더(13)는 입력된 승수의 비트 y1y00의 세자리에 따라 표 1에 설명된 5개의 부스코드값 -2, -1, 0, 1, 2 중 어느 하나를 나타내는 부스신호 ONE, TWO, NEG 값을 출력한다. 가령 y0y10의 값이 100이면 표 1에서 부스코드값은 -2이고 따라서 부스인코더의 출력신호는 NEG=1, ONE=0, TWO=1로 된다. 부스인코더(13)의 출력신호 NEG, ONE, TWO는 부분곱생성기(23)에 입력되며, 이 세 개의 신호값에 따라 부분곱생성기(23)는 입력된 n비트의 피승수에 대응하여 부분곱을 출력한다. 이때 부분곱 생성기(21)의 출력을 2의 보수화하기 위하여 NEG신호가 부분곱의 LSB인 pp0에 더해진다. 다음의 부스인코드(15)에는 부스인코더(13)의 입력중 최상위의 입력승수비트(y1)를 포함하여 연속하는 세자리의 승수비트 y3y2y1이 입력되며, 동일하게 부분곱생성기(25)는 부분곱 pp1~pp'n1을 출력한다.
한편, 2의 보수연산회로(31)에서는 n비트의 피승수의 비트열 x0~xn-1이 입력되어 피승수의 2의 보수를 출력한다. 2의 보수의 연산과정을 상세히 설명하면 다음과 같다.
도 4에 도시된 실시예에서, 16비트의 2진수가 16개의 입력터미날(a0~a15)에 각각 입력된다. 입력2진수의 최하위의 시그니피컨스의 비트는 a0에, 최상위의 시그니피컨스의 비트는 a15에 입력되어 하위 시그니피컨스부터 4개의 비트가 각각 묶어져서 4개의 그룹(A0~A3)을 형성한다. 4개의 입력그룹중 A0그룹을 예로 들어 제1조합회로(131)의 작동관계를 설명하면, 제1조합회로(131)는 4개의 입력터미날(a0~a3)로부터 입력된 4비트의 2진수에서 LSB로부터 최초로 나타나는 로직1인 트랜지스션비트와, 트랜지션비트보다 상위의 모든 비트를 웨이트 0으로 변환시켜 출력하고, 트랜지션비트보다 하위의 비트는 인버팅, 즉 1로 출력한다. 가령, 입력 2진수의 값이 0100이라하면 제1조합회로(131)의 웨이트 출력값(이하, 이를 '최초웨이트'라 함)은 0011이 된다. 이러한 최초웨이트가 나머지 3개의 상위의 제1조합회로(131)에서도 동시에 출력된다. 제1조합회로(131)는 이와같이 트랜지션비트와 유무와 트랜지션비트의 위치를 검출한다. 즉, 가장 낮은 시그니피컨스를 갖는 최초웨이트값 0에 대응하는 입력 2진수의 비트가 트랜지션비트이며, 그 상위의 최초웨이트값이 모두 0으로 출력됨으로써 그 그룹내에 트랜지션비트가 존재함을 나타낸다. 제1조합회로(131)는 이러한 트랜지션비트의 유무와 트랜지션비트의 위치를 검출한다.
제1조합회로(131)에서 출력된 최초웨이트중 각각의 그룹의 최상위의 시그니피컨스를 갖는 최초웨이트가 제2조합회로(133)에 입력된다. 즉 제1조합회로중에서 각각의 그룹의 NOR게이트(151),(153),(155),(157)의 출력만이 제2조합회로(133)의 각각의 게이트(161),(163),(165),(171)에 입력된다. 제2조합회로(133)는 입력된 최초웨이트중에서 최하위의 시그니피컨스를 갖는 로직 0과 그 상위비트를 모두 비트를 1로 출력(이하, 이를 변환웨이트'라 함)시킨다. 제2조합회로에서 출력된 변환웨이트는 제1조합회로(131)의 특정 그룹에 트랜지션비트가 있는지의 여부, 특히 입력 2진수중 최하위의 트랜지션비트가 위치하는 그룹을 표시한다. 즉 A0그룹에 입력되는 2진수가 0100일 경우 A0그룹의 제1조합회로(131)의 출력(최초웨이트)은 0*011이 되고, 따라서 제2조합회로(133)의 인버터(161)에는 최상위의 최초웨이트값(상기 0*011중 *표시부분)인 0이 입력됨으로써 제2조합회로(135)에서는 변환웨이트 1이 C0에 출력된다. 따라서, 이보다 상위의 변환웨이트는 입력된 최초웨이트값이 0인가 또는 1인가의 여부에 관계없이 모두 1로 출력된다. 이 변환웨이트(C0~C3) 1의 의미는 A0그룹의 입력에 트랜지션비트가 있음을 표시한다.
제2조합회로(133)의 출력인 변환웨이트(C0~C3) 중 최상위 시그니피컨스의 변환웨이트(C3)를 제외한 세개의 변환웨이트(C0~C2)가 제2멀티플렉서(135)에 입력된다. 제2멀티플렉서(135)에 로직 0이 입력되면 트랜지스터(175)가 개방됨으로써 입력터미날에 입력된 2진수가 멀티플렉서(175)에 입력되어 그대로 출력되며, 제2멀티플렉서(135)에 로직 1이 입력되면 트랜지스터(173)가 개방되어 그라운드 즉, 로직 0의 값이 제2멀티플렉서(135)로부터 출력된다. 이하, 멀티플렉서의 출력값을 최종웨이트라 한다. 가령 A0그룹의 입력값이 0100인 경우 변환웨이트 C0는 1이 되고, 따라서 트랜지스터(173)가 개방되어 제2멀티플렉서(135)의 최하위의 트랜지스터(173)의 출력값은 로직 0이 된다. 제2멀티플렉서(135)는 입력 2진수중 트랜지션비트보다 상위의 모든 비트를 인버팅시키기 위한 최종웨이트를 출력한다.
이어서, 제2멀티플렉서(135)의 최종웨이트가 exclusive-NOR게이트(179)에 입력되고 동시에 A1그룹의 a5입력터미날의 입력값이 exclusive-NOR게이트(179)에 입력됨으로써 목적하는 2의 보수를 구할 수 있게 된다. 이때, A0그룹의 제1조합회로(131)의 최초웨이트값은 제1조합회로(131)에 의해, 이미 트랜지션비트의 위치부터 그 상위 입력 2진수에 대해 최종웨이트값인 0을 출력하고 있으므로, 별도의 멀티플렉서를 거치지 않고 바로 exclusive-NOR게이트(183),(185),(187),(89)에 입력된다. 그리고 최하위 exclusive-NOR게이트(81)에는 항상 1이 연결된다. 여기에서 2의 보수 연산회로는 루어다의 방법에서의 최하단의 부분곱단의 값과 동일한 값의 2의 보수를 출력한다.
한편 승수의 최상위의 연속3비트 yn-1yn-2yn-3는 부스인코더(19)에 입력되며, 부스인코더(19)의 출력신호 ONE, TWO, NEG는 선택코드생성기(41)에 입력된다. 선택코드생성기(41)는 입력된 부스코드값에 따라 5개의 신호 -2, -1, 0, 1, 2를 생성한다. 도 6에 도시된 바와 같이 선택코드생성기의 5개의 출력은 멀티플렉서(51)의 5개의 트랜지스터에 각각 입력된다. 또한 2의 보수연산회로(31)에서 구해진 피승수의 2의 보수와 로직 0, 피승수가 멀티플렉서(51)에 입력된다. 멀티플렉서(51)는 선택코드생성기(41)의 5개의 신호에 따라 각각 로직 0, 피승수, 피승수×2, 피승수의 2의 보수, 피승수의 2의 보수×2의 5개의 값중 하나를 선택한다. 피승수×2, 피승수의 2의 보수×2의 값은 피승수, 피승수의 2의 보수를 각각 왼쪽으로 1비트씩 시프트함으로써 구해진다. 이는 마지막 행의 부분곱을 미리 2의 보수화하여 줌으로써 부스인코더의 출력에 따라 NEG신호를 인가하여 NEG값을 더하는 종래의 문제점을 해결하기 위한 것이다. 따라서 최하단의 부분곱은 미리 2의 보수화되어 있으므로 NEG시그널을 더할 필요가 없게 된다.
목적하는 곱셈값은 모든 부분곱발생기(21)의 출력과 멀티플렉서의 출력을 가산함으로써 얻을 수 있다.
도 6은 목적하는 곱셈값을 구하기 위하여 본 발명에 따른 승산기의 모든 부분곱발생기(21)의 출력인 부분곱과 멀티플렉서(51)의 출력인 2의 보수를 모두 더하는 과정을 도식적으로 설명하고 있다.
이러한 가산방법은 공지의 전 가산기 또는 Wallace트리구조 등 다양한 방법에 의해 구행될 수 있으며, 본 명세서에서는 이에 대한 설명을 생략한다.
다음으로 본 발명에 따른 승산방법은 설명한다.
본 발명에 따른 승산방법은 부스코드생성단계, 부분곱생성단계, 피승수의 2의 보수화단계, 선택코드생성단계, 멀티플렉서에서의 선택단계, 합산단계로 이루어진다.
부스코드생성단계는 승수에 대하여 부스인코더(11)에서 부스코드를 생성하는 단계로서, 연속하는 3자리의 승수 비트열이 부스인코더(11)에 입력되면 표 1에 나타난 수정형 부스코드화 기준에 따라 부스코드를 발생한다.
부분곱생성단게는 부분곱생성기(21)에 입력된 피승수의 비트열을 부스코드에 따라 부분곱으로 변환시키는 단계로서, 생성된 부분곱의 최하위의 시그니피컨트의 값 PP00에는 부스코드중 NEG신호가 더해지며, 캐리는 상위비트로 전송된다.
2의 보수화단계는 피승수를 2의 보수연산회로(31)에서 2의 보수화하는 단계이다. 피승수의 2의 보수화는 다양한 방법으로 수행될 수 있으나, 바람직하게는 다음과 같은 2의 보수연산방법이 채택된다.
본 실시예의 2의 보수 연산방법은 4단계로 구성되는 바, 이는 입력 2진수에 대하여 최초웨이트를 출력하는 단계, 최초웨이트를 변환하는 단계, 최종웨이트를 구하는 단계, 최종웨이트와 입력2진수를 exclusive-OR시켜 목적하는 2의 보수를 구하는 단계로 구성된다.
먼저, 최초웨이트를 구하는 단계를 상술하면 다음과 같다. 복수의 비트로 표현되며 가장 낮은 시그니피컨스를 갖는 로직 1의 비트가 트랜지션비트의 2진수에서, 2진수의 비트열을 An, An-1, --Ao의 복수의 그룹으로 구분한다. 복수의 그룹(A0~A3)은 제1도에서 복수의 입력터미날(a0~a15)이 각각 그룹으로 조합회로(131)의 입력을 형성하는 회로의 구성에 의해 구분된다. 제1조합회로(131)에 의해 복수의 그룹으로 구분되어 입력된 입력2진수는 제1조합회로(131)내의 단계적인 게이트를 거치면서 각각의 그룹내의 트랜지션비트가 검색되고 이에 따라 트랜지션비트와 그 상위비트에 대응하여 최초웨이트값이 0으로 출력되고, 트랜지션비트보다 하위의 비트는 1로 출력된다.
최초웨이트값이 제1조합회로(131)에 구해지면, 이 최초웨이트값을 변환하는 단계가 수행된다. 최초웨이트가 제2조합회로(133)에 입력되면, 제2조합회로(133)의 논리게이트군에 의해 최하위의 시그니피컨스를 갖는 로직 0과 그 상위비트를 모두 1로 변환시키고, 로직 0의 비트보다 하위의 비트를 모두 0으로 변환시킴으로써 최초웨이트값이 변환되는 단계가 수행된다. 이 웨이트 변환단계는 제4도에 도시된 바와 같이 입력 2진수의 비트열이 많을 경우 2 이상의 조합회로(133)(107)에 의해 동시에 수행될 수 있으며, 2 이상의 제2조합회로(133)(107)의 출력중 최상위의 시그니피컨스의 변환웨이트 만을 다시 모아서 제4조합회로(105)에 의해 다시 웨이트를 변환시킨다.
다음으로, 변환웨이트를 제2멀티플렉서(135)에 입력시켜 최종웨이트를 구한다. 최종웨이트는 제2멀티플렉서(135)에서 제2조합회로(133)에서 출력된 변환웨이트 중 최하위 변환웨이트 C0이 A1그룹의 제1조합회로에서 출력된 최초웨이트와 로직 0중에서 하나를 선택하며, 동일하게 변환웨이트중 다음 상위출력 C1이 A2그룹에서 출력된 최초웨이트와 로직 0 중에서 하나를 선택하는 방식에 의해, 최초 입력 2진수중 트랜지션비트와 그 하위비트가 인버팅되고 트랜지션비트보다 상위의 모든 입력값이 0으로 출력되어 최종웨이트가 구해진다.
최종웨이트가 구해지면 A0그룹의 제1조합회로(131)의 출력이 최초의 A0그룹의 입력(a0~a3)과 각각 exclusive-NOR되고, 제2멀티플렉서(135)의 출력이 A1내지 A3그룹의 입력(a4~a15)가 각각 exclusive-NOR되는 단계를 거쳐 입력 피승수의 2의 보수가 구해진다.
이러한 2의 보수화 단계는 상기한 부분곱생성단계와 병렬적으로 수행될 수 있다.
선택코드생성단계는 승수의 비트중 최상위의 세자리 비트 yn-1yn-2yn-3가 부스인코더(19)에 입력되어 부스코드가 발생되고 이 부스코드가 선택코드생성기(41)에 입력되어 2의 보수연산회로(31)의 출력중 어느하나를 선택하기 위한 선택코드를 생성하는 단계이다. 선택코드생성단계에서는 -2, -1, 0, +1, +2의 다섯 개의 신호를 출력한다.
멀티플렉서에서는 선택단계는 선택코드생성기(41)에서 출력된 선택코드에 따라 피승수, 2×피승수, 피승수의 2의 보수, 2×피승수의 2의 보수, 또는 0의 값 중 어느 하나를 멀티플렉서(51)에서 선택하게 된다.
합산단계는 이상에서 출력된 값, 즉 복수의 부분곱발생기(21)에서 출력된 복수의 부분곱과, 멀티플렉서(51)에서 선택된 값을 전가산기에 의해 더하는 단계로서, 더하는 방법은 다양한 공지의 방법이 채택될 수 있다. 가산기의 출력이 목적하는 곱셈의 결과값이다.
이상과 같은 구성의 본 발명의 승산기에 의하면, 승수의 최하위 비트열인 y1y0y-1에 대한 부분곱을 PP'n·0, PPn·0, ... PP0으로 출력함으로써 종래의 부분곱에서 1의 행이 추가로 더해지는 문제점을 해결하여 행의 수를 하나 줄일 수 있게 된다.
또한, 승수의 최상위의 비트열인 yn-1yn-2yn-3에 대하여는 부분곱을 구하지 않고 yn-1yn-2yn-3의 값에 따라 피승수, 피승수×2, 피승수의 2의 보수, 피승수의 2의 보수×2, 0의 값중 어느 하나를 선택하여 출력함으로써 종래의 승수의 yn-1yn-2yn-3비트에 대한 부분곱이 음수일 경우 부분곱의 최하위 비트에 NEG값을 더해주는 문제점을 해결하였다. 이에 따라 승산기에서 더해 주어야 하는 NEG의 행을 하나 줄임으로써 승산기의 속도를 향상시킬 수 있다.
더욱이, 본 발명의 승산기에서 2의 보수를 만들기 위해서 채택된, 입력 2진수를 소정의 그룹으로 구분하고 각 그룹내의 1을 동시에 검출하여 2의 보수를 구하는 방법에 의하면, 2의 보수를 구하는 시간을 단축할 수 있다. 이 방법에 의해 32비트의 2진수를 2의 보수화 하는데 필요한 시간은 Kai Hwang의 계산방법에 따르면 9게이트지연(9 gate delay)이 필요하게 된다. 따라서 부스인코더에서 부스코드를 생성하는 데 소요되는 7게이트지연시간과 부분곱생성기에서 부분곱을 생성하는데 소요되는 7게이트지연시간내, 즉 14게이트지연시간내에 2의 보수를 구할 수 있게 되므로 승산시간에 전혀 지장을 주지 않게 되어 승산시간을 훨씬 단출할 수 있게 된다.

Claims (2)

  1. 연속하는 승수의 2진수 비트열이 입력되어 부스코드를 출력하는 복수의 부스인코더(11)와;
    피승수의 비트열과 상기 부스인코더로부터 출력되는 부스코드가 각기 입력되어 부분곱을 발생시키는 복수의 부분곱발생기(21)와;
    피승수의 2의 보수를 출력하는 2의 보수연산회로(31)와;
    상기 부스인코더의 출력중 최상위의 3자리의 승수에 대한 부스코드가 입력되어 5개의 선택신호를 발생하는 선택코드생성기(41)와;
    상기 선택코드생성기로부터 출력되는 5개의 신호에 의해 피승수, 2×피승수, 상기 2의 보수연산회로에서 출력되는 피승수의 2의 보수, 2×피승수의 2의 보수, 또는 0의 값 중 어느 하나의 값을 선택하는 멀티플렉서(51)를 포함하여 이루어지는 것을 특징으로 하는 승산기.
  2. 청구항 1에 있어서, 상기 2의 보수 연산회로는, 복수의 비트로 표현되며 가장 낮은 시그니피컨스를 갖는 로직 1의 비트가 트랜지션비트인 2진수의 각각의 비트가 복수의 그룹으로 입력되어져서, 각각의 그룹내의 비트중에서 상기 트랜지션비트와 상기 트랜지션비트보다 상위의 모든 비트열을 0으로 출력하고 상기 트랜지션비트보다 하위의 모든 비트열을 1로 출력하는 복수의 제1조합회로(131)와;
    상기 복수의 제1조합회로(131)의 출력중 각각의 그룹의 최상위의 시그니피컨스를 갖는 출력만이 복수의 그룹으로 입력되어져서, 각각의 그룹의 입력중 가장 낮은 시그니피컨스를 갖는 로직 0의 비트와 그 상위의 모든 비트를 1로 변환시키고, 상기 로직 0의 비트보다 하위의 모든 비트를 0으로 변환시키는 복수의 제2조합회로(133)와; 상기 복수의 제2조합회로(133)의 출력에 의해 상기 복수의 제1조합회로(131) 출력 또는 로직 0을 선택하는 복수의 제2멀티플렉서(135)와;
    로직1 또는 상기 제1조합회로(131)의 출력 또는 상기 제2멀티플렉터(135)의 출력중에서 선택된 어느 하나의 값과, 입력 2진수의 어느 한 비트가 동일하면 1을 출력하고, 다르면 0을 출력하는 논리게이트군으로 구성되는 복수의 제3조합회로를 포함하여 이루어지는 것을 특징으로 하는 승산기.
KR1019970003412A 1997-02-04 1997-02-04 승산기 KR100248977B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970003412A KR100248977B1 (ko) 1997-02-04 1997-02-04 승산기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970003412A KR100248977B1 (ko) 1997-02-04 1997-02-04 승산기

Publications (2)

Publication Number Publication Date
KR19980067402A KR19980067402A (ko) 1998-10-15
KR100248977B1 true KR100248977B1 (ko) 2000-03-15

Family

ID=19496382

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970003412A KR100248977B1 (ko) 1997-02-04 1997-02-04 승산기

Country Status (1)

Country Link
KR (1) KR100248977B1 (ko)

Also Published As

Publication number Publication date
KR19980067402A (ko) 1998-10-15

Similar Documents

Publication Publication Date Title
US6938061B1 (en) Parallel counter and a multiplication logic circuit
US7139788B2 (en) Multiplication logic circuit
US5278783A (en) Fast area-efficient multi-bit binary adder with low fan-out signals
US5426598A (en) Adder and multiplier circuit employing the same
US4831577A (en) Digital multiplier architecture with triple array summation of partial products
US4868777A (en) High speed multiplier utilizing signed-digit and carry-save operands
US4441158A (en) Arithmetic operation circuit
US6883011B2 (en) Parallel counter and a multiplication logic circuit
US6018758A (en) Squarer with diagonal row merged into folded partial product array
US5122982A (en) Carry generation method and apparatus
US6298368B1 (en) Method and apparatus for efficient calculation of an approximate square of a fixed-precision number
US5586071A (en) Enhanced fast multiplier
US4823300A (en) Performing binary multiplication using minimal path algorithm
KR100248977B1 (ko) 승산기
KR100329914B1 (ko) 제산장치
JPH0448255B2 (ko)
US5206825A (en) Arithmetic processor using signed-digit representation of external operands
US5883825A (en) Reduction of partial product arrays using pre-propagate set-up
KR100663679B1 (ko) 고속 가산기
JPH0418336B2 (ko)
Abraham et al. An ASIC design of an optimized multiplication using twin precision
GB2337621A (en) Determining a scaling factor
JP3231298B2 (ja) 乗算装置
JPH1115641A (ja) 冗長2進加算器を用いた乗算装置
KR950001480A (ko) 고속 소형 디지탈 곱셈기

Legal Events

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

Payment date: 20041222

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee