KR100239631B1 - 디지틀 승산기 - Google Patents
디지틀 승산기 Download PDFInfo
- Publication number
- KR100239631B1 KR100239631B1 KR1019970031267A KR19970031267A KR100239631B1 KR 100239631 B1 KR100239631 B1 KR 100239631B1 KR 1019970031267 A KR1019970031267 A KR 1019970031267A KR 19970031267 A KR19970031267 A KR 19970031267A KR 100239631 B1 KR100239631 B1 KR 100239631B1
- Authority
- KR
- South Korea
- Prior art keywords
- eleventh
- complement
- data
- value
- multiplier
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49973—Rounding towards negative infinity, e.g. truncation of two's complement numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/544—Indexing scheme relating to group G06F7/544
- G06F2207/5442—Absolute difference
Abstract
본 발명은 디지틀 승산기에 관한 것으로, 일반적으로 컴퓨터 내부의 정보처리 단위로 쓰이는 2진 코드에 있어서, 임의의 n 비트에 대한 2의 보수 코드의 절대치를 구할 때 승수와 피승수 양쪽의 최소값을 생략함으로써 그 결과 값이 2비트 줄어들 수 있도록 하여 곱셈기의 비트 수를 n-1 개로 줄여 회로가 간단해지도록 한 것이다.
Description
본 발명은 디지틀 승산기에 관한 것으로, 특히 임의의 비트로 이루어진 2의 보수 코드를 연산하는 디지틀 승산기에 있어서 임의의 비트로 표현되는 값들 중에 최소값을 생략시키므로써 승산기의 내부에서 곱셈을 수행할 때 임의의 비트 수 보다 한 비트 작은 크기의 승산기로도 곱셈을 할 수 있도록 한 디지틀 승산기에 관한 것이다.
일반적으로 컴퓨터 내부의 정보처리 단위로 쓰이는 2진 코드에 있어서, 4비트에 대한 순차 코드와 순차 코드에 대한 2의 보수 코드는 다음의 표 1 과 같이 나타낼 수 있다.
여기서 2의 보수 코드는 연산을 쉽게 하기 위한 수단으로 컴퓨터 내부의 정보를 처리할때 많이 쓰이는 코드로써 표 1 에서 2의 보수 코드와 순차 코드를 비교하여 나타난 것과 같이 순차 코드 3의 자리인 최상위 비트(MSB)를 반전 시킴으로써 쉽게 생성할 수 있다.
4비트 순차 코드3 2 1 0 (←자리수를 나타냄) | 2의 보수 코드3 2 1 0(←자리수를 나타냄) |
0 0 0 0 0 | 1 0 0 0 -8 |
0 0 0 1 1 | 1 0 0 1 -7 |
0 0 1 0 2 | 1 0 1 0 -6 |
0 0 1 1 3 | 1 0 1 1 -5 |
0 1 0 0 4 | 1 1 0 0 -4 |
0 1 0 1 5 | 1 1 0 1 -3 |
0 1 1 0 6 | 1 1 1 0 -2 |
0 1 1 1 7 | 1 1 1 1 -1 |
1 0 0 0 8 | 0 0 0 0 0 |
1 0 0 1 9 | 0 0 0 1 1 |
1 0 1 0 10 | 0 0 1 0 2 |
1 0 1 1 11 | 0 0 1 1 3 |
1 1 0 0 12 | 0 1 0 0 4 |
1 1 0 1 13 | 0 1 0 1 5 |
1 1 1 0 14 | 0 1 1 0 6 |
1 1 1 1 15 | 0 1 1 1 7 |
순차코드와 2의 보수코드의 비교 |
도 1a는 2의 보수 데이타를 곱하기 위한 종래의 4비트 디지틀 승산기의 구성을 나타낸 것으로서,
4 비트로 구성된 두 개의 2의 보수 데이타 a[3 .. 0], b[3 .. 0]의 곱셈을 위해 각각의 데이타에 대해 절대치를 구하는 제 1 및 제 2 변환기(abs10)(abs11)와,
상기 제 1 및 제 2 변환기(abs10)(abs11)의 출력 신호인 절대치를 곱하는 제 1 곱셈기(M10)와,
상기 두 2의 보수 데이타 a[3 .. 0], b[3 .. 0]의 부호 비트인 최상위 비트a[3], b[3]를 비교하여 부호를 판별하는 제 1 배타적 논리합 게이트(EXOR10)와,
상기 제 1 배타적 논리합 게이트(EXOR10)의 출력 신호인 부호 비트 신호(S10)에 의해 제 1 곱셈기(M10)의 출력 신호를 2의 보수로 변환 시키는 제 3 변환기(abs12)들로 구성하였다.
한편, 도 1(b)는 2의 보수의 절대치 변환기인 상기의 제 1 내지 제 3 변환기의 상세한 구성을 나타낸 회로도로서,
2의 보수 데이타 a[3 ..0], b[3 .. 0] 및 절대치 c'[7 .. 0]들을 입력받아 반전시키는 제 2 배타적 논리합 게이트(EXOR11)와,
상기 제 2 배타적 논리합 게이트(EXOR11)의 출력과 부호 비트 신호 a[3], b[3] 및 S10를 입력받아 더하는 제 1 가산기(add10)들로 구성하였다.
그러므로 상기의 도 1(a)에 의한 디지틀 승산기와 도 1(b)에 의한 변환기의 동작은, 2의 보수 데이타 a[3 .. 0]와 b[3 .. 0]가 4 비트 승산기로 입력되면 제 1 변환기(abs10)에서 2의 보수 데이타 a[3 .. 0]의 부호 비트인 최상위 비트 a[3]가 '1'이면 상기 2의 보수 데이타 a[3 .. 0]의 4개 비트 모두를 반전 시킨 후 1을 더하면서 최상위 비트 a[3]가 '0'이면 상기 2의 보수 데이타 a[3 .. 0]를 그대로 출력시켜 이 출력값이 상기에서 입력된 2의 보수 코드에 대한 절대치 a'[3 .. 0]가 되도록 한다.
또한 제 2 변환기(abs11)에서도 2의 보수 데이타 b[3 .. 0]의 부호 비트인 최상위 비트 b[3]가 '1'이면 데이타 b[3 .. 0]의 4 개의 비트 모두를 반전 시킨 후 '1'을 더하면서 최상위 비트 b[3]가 '0'이면 상기 데이타 b[3 .. 0]를 그대로 출력시켜 이 출력값이 상기에서 입력된 2의 보수 코드에 대한 절대치 b'[3 .. 0]가 되도록 한다.
상기의 2의 보수 코드에 대한 절대치 a'[3 .. 0]와 b'[3 .. 0]는 제 1 곱셈기(M10)로 입력된 후 곱해져서 8비트의 자리를 가진 2의 보수 절대치 값인 데이타 c'[7 .. 0]로 출력된다.
상기 4비트 승산기의 입력 데이타인 2의 보수 코드에 대한 절대치 a'[3 .. 0]와 b'[3 .. 0]의 부호 비트인 최상위 비트 a[3]과 b[3]를 제 1 배타적 논리합 게이트(EXOR10)에서 비교하여 출력되는 부호 비트 신호(S10)는 두 최상위 비트 a[3]와 b[3]가 서로 동일하지 않으면 '1'로 출력되면서 동일하면 '0'으로 출력된다.
상기의 부호 비트 신호(S10)는 2의 보수 절대치 값인 데이타 c'[7 .. 0]와 함께 제 3 변환기(abs12)로 입력되어 진다.
이때 제 3 변환기(abs12)에서는 부호 비트 신호(S10)가 '1' 이 되면 2의 보수 절대치 값인 데이타 c'[7 .. 0]의 8개의 비트 모두를 반전 시킨 후 1을 더해 2의 보수 코드 c[7 .. 0]로 출력하는 한편, 부호 비트 신호(S10)가 '0' 이 되면 2의 보수 절대치 값인 데이타 c'[7 .. 0]의 8개의 비트를 그대로 2의 보수 코드 c[7 .. 0]로 출력시킨다.
상기의 과정을 4 비트의 데이타가 입력되는 경우를 예를 들어 설명하면 다음과 같다.
우선 입력 데이타의 최상위 비트가 같은 경우 즉, 상기 표 1 에서 2의 보수 코드 값중에서 2의 보수 데이타 a[3 .. 0] = 1001(-7), b[3 .. 0] = 1010(-6)가 제 1 변환기(abs10)와 제 2 변환기(abs11)로 각각 입력되면, 제 1 변환기(abs10)에서 최상위 비트 a[3]가 '1'이므로 각각의 자리의 비트값을 반전시켜 이 반전된 값(0110)에 가산기(add10)에서 1을 더하여 2의 보수 코드의 절대치 a'[3 .. 0] = 0111를 출력하고,
제 2 변환기(abs11)에서 최상위 비트 b[3]이 '1'이므로 각각의 자리의 비트값을 반전시켜 이 반전된 값(0101)에 가산기(add10)에서 1을 더하여 2의 보수 코드의 절대치 b'[3 .. 0] = 0110를 출력하고,
상기의 최상위 비트 a[3]와 b[3]가 배타적 논리합 게이트(EXOR10)을 거치면서 같은 값을 갖고 있으므로 출력인 부호 비트 신호 S10의 값은 '0'이 된다.
상기 곱셈기(M10)는 두 2의 보수 코드의 절대치 a'[3 .. 0] = 0111 와 b'[3 .. 0] = 0110를 입력받아 곱한 후 2의 보수 절대치 값인 데이타 c'[7 .. 0] = 00101010을 출력한다.
제 3 변환기(abs12)는 2의 보수 절대치 값인 데이타 c'[7 .. 0] = 00101010을 입력 받아 부호 비트 신호(S10)의 값이 '0'이기 때문에 반전없이 그대로 출력하여 2의 보수 c[7 .. 0] = 00101010의 결과 값을 얻는다.
또한 입력 데이타의 최상위 비트가 다른경우 경우 즉, 상기 표 1 에서 2의 보수 코드 값중에서 2의 보수 데이타 a[3 .. 0] = 1011(-5)과 b[3 .. 0] = 0010(2)가 제 1 변환기(abs10)와 제 2 변환기(abs11)로 각각 입력되면,
제 1 변환기(abs10)에서 최상위 비트 a[3]가 '1'이므로 각각의 자리의 비트값을 반전시켜 이 값(0100)에 가산기(add10)에서 1을 더한 2의 보수 코드의 절대치 a'[3 .. 0] = 0101를 출력하고,
제 2 변환기(abs11)에서 최상위 비트 b[3]가 '0'이므로 각각의 자리의 비트의 반전없이 그대로 2의 보수 코드의 절대치 b'[3 .. 0] = 0010를 출력하고, 두 최상위 비트 a[3]와 b[3]를 배타적 논리합 게이트(EXOR10)에서 비교하여 같은 다른 값을 갖고 있기 때문에 그 출력인 부호 비트 신호(S10)의 값은 '1'이 된다.
그리고, 곱셈기(M1)는 두 2의 보수 코드의 절대치 a'[3 .. 0] = 0101와 b'[3 .. 0] = 0010를 입력받아 곱한 후 2의 보수의 절대치 값인 데이타 c'[7 .. 0] = 00001010을 출력한다.
제 3 변환기는 2의 보수 절대치 값인 데이타 c'[7 .. 0] = 00001010를 입력받고 부호 비트 신호(S10)의 값이 '1'이기 때문에 상기 2의 보수 절대치 값인 데이타 c'[7 .. 0] = 00001010를 반전시킨 후 가산기(add10)에서 1을 더하여 2의 보수 코드 c[7 .. 0] = 11110110의 결과값을 얻도록 하였다.
그러나 상기와 같은 종래의 디지틀 승산기에 의하여서는, 4비트에 대한 2의 보수 코드는 1000(-8) ∼ 0111(7)의 값이 있는데 따라서 상기의 코드에 대한 절대치의 최대값은 8이 되며, 8을 표현하고 계산하기 위해서는 4비트의 곱셈기를 필요로 한다.
컴퓨터 내부에서 영상신호 및 음성신호 등의 데이타를 처리할 때, 데이타의 크기는 임의의 값이 될 수 있지만 상기 임의의 값이 커짐에 따라 2진 표현을 위한 비트의 수가 증가하게 되면 데이타의 최소값은 중요하지 않게 된다.
예를 들어 영상 신호 데이타를 8비트의 2의 보수로 나타내면 -128 ∼ 127의 값이 되지만 -128을 -127로 대체하여도 화질에 주는 영향은 무시할 수 있고 또한 -128의 값을 갖는 경우도 거의 없다.
따라서 본 발명은 임의의 비트를 갖는 2의 보수 코드의 최소값을 버림으로써 n-1비트의 곱셈기로 데이타를 처리할 수 있도록 하는 승산기를 제공함으로써 승산기의 회로를 간단히 하는 데 그 목적이 있다.
또한 본 발명의 또 다른 목적은 영상 신호와 음성 신호 데이타를 처리하는데 적합한 승산기를 제공하는 것에 목적이 있다.
따라서 상기와 같은 목적을 달성하기 위하여 본 발명의 디지틀 승산기는 2의 보수 코드의 절대치를 구할때 입력 데이타의 부호 비트인 최상위 비트가 '1'일 때 부호 비트를 제외한 나머지 비트를 반전 시킨 후 가산기에서 1을 더하고,
상기 가산기의 올림수는 항상 입력 신호가 최소값일 때에만 발생되게 되므로 가산기의 올림 신호는 최소값을 검출하는 신호로 선택하도록 하여 상기의 올림 신호가 발생할 때 가산기의 출력값을 반전시켜 주어 디지틀 승산기로 입력되는 데이타 -8이 -7로 대체 되는 것과 같은 결과를 갖도록 함으로써 승수와 피승수 양쪽의 최소값을 생략 하여 곱셈기에서 곱셈을 수행할 때 결과 값이 2비트 줄어들 수 있도록 한 것으로, 4비트 뿐만 아니라 임의의 비트에서도 처리가 가능하도록 한 것이다.
도 1a와 도 1b은 일반적인 디지틀 승산기의 구성을 나타낸 회로도.
도 2a 내지 도 2c는 본 발명의 디지틀 승산기의 구성을 나타낸 회로도.
< 도면의 주요부분에 대한 부호의 설명 >
abs20, abs21, abs22 : 제 11 내지 제 13 변환기
EXOR20, EXOR21, EXOR22 : 제 11 내지 제 13 배타적 논리합 게이트
OR20 : 오아 게이트
add20, add21 : 제 11 내지 제 12 가산기
이하 본 발명을 첨부도면에 의하여 상세히 기술하면 다음과 같다.
디지틀 승산기는 도 2(a)에 도시된것과 같이 2의 보수 데이타 x[n .. 0]을 입력받아 이에 대해 절대치 x'[n-1 .. 0]를 구하는 제 11 변환기(abs20)와,
2의 보수 데이타 y[n .. 0]을 입력받아 이에 대해 절대치 y'[n-1 .. 0]를 구하는 제 12 변환기(abs21)와,
상기 제 11 변환기(abs20)과 제 12 변환기(abs21)의 출력인 절대치 x'[n-1 .. 0], y'[n-1 .. 0]를 입력받아 곱하는 제 11 곱셈기(M20)와,
상기의 두 2의 보수 데이타의 부호 비트인 최상위 비트 x[n]과 y[n]를 비교하여 부호를 판별하는 제 11 배타적 논리합 게이트(EXOR20)와,
상기 제 11 배타적 논리합 게이트(EXOR20)의 출력 신호인 부호 비트 신호(S20)의 출력에 따라서 제 11 곱셈기(M20)의 출력인 2의 보수의 절대치 값인 데이타 z'[2n-1 .. 0]를 변환시켜 2의 보수 z[2n+1 .. 0]로 출력시키는 제 13 변환기(abs22)들로 구성한 것이다.
도 2b는 상기의 2의 보수의 절대치 변환기인 상기의 제 11 변환기 및 12 변환기의 구성을 도시한 것으로서,
2의 보수 데이타 x[n .. 0], y[n .. 0]를 각각 입력받으면서 최상위 비트 x[n], y[n]가 '1' 인 경우에만 반전시키는 제 12 배타적 논리합 게이트(EXOR21)와,
상기 제 12 배타적 논리합 게이트(EXOR21)의 출력과 최상위 비트인 부호 비트 x[n], y[n]를 각각 입력받아 더하는 제 11 가산기(add20)와,
상기 제 11 가산기(add20)에서 올림수가 발생하였을때 출력되는 올림 신호(ca) 및 상기 제 11 가산기(add20)의 출력을 각각 입력받아 반전시켜 절대치 x'[n-1 .. 0], y'[n-1 .. 0]를 출력하는 오아 게이트(OR20)들로 구성한 것이다.
상기의 오아 게이트는 배타적 논리합 게이트를 사용하는 것이 바람직하지만 본 실시예의 경우에는 올림수가 '1'자리이므로 오아 게이트를 사용하여도 무방하다.
도 2c는 제 3 변환기의 내부 구성을 도시한 것으로,
제 11 및 제 12 변환기(abs20),(abs21)로 부터의 출력인 절대치 x'[n-1 .. 0], y'[n-1 .. 0]를 제 11 곱셈기(M20)에 곱한 결과이며 2의 보수의 절대치 값인 데이타 z'[2n-1 .. 0]를 입력받아 부호 비트 신호(S20)가 '1'일 때 반전시켜 출력하는 제 13 반전기(EXOR22)와,
상기 제 13 반전기(EXOR22)에서 반전된 값에 '1'을 더하여 2의 보수 z[2n+1 .. 0]를 출력하는 제 12 가산기(add21)들로 구성한 것이다.
이와 같이 구성한 본 발명의 작용을 상세히 기술하면 다음과 같다.
2의 보수 데이타 x[n .. 0] 및 y[n .. 0]가 본 발명의 디지틀 승산기로 입력되면, 제 11 변환기(abs20)에서 2의 보수 데이타 x[n .. 0] 의 부호 비트인 최상위 비트 x[n]가 '1'일 때, 최상위 비트 x[n]를 제외한 2의 보수 데이타 x[n-1 .. 0]인 3개의 비트가 제 12 배타적 논리합 게이트(EXOR21)를 거치면서 반전되고, 제 11 가산기(add20)에서는 상기의 반전된 결과값에 '1'을 더한다.
제 12 변환기(abs21)에서 2의 보수 데이타 y[n .. 0]의 부호 비트인 최상위 비트 y[n]가 '1'일때, 최상위 비트 y[n]를 제외한 2의 보수 데이타 y[n-1 .. 0]인 3개의 비트가 제 12 배타적 논리합 게이트(EXOR21)를 거치면서 반전되고, 제 11 가산기(add20)에서는 상기의 반전된 결과값에 '1'을 더한다.
이때 제 11 가산기(add20)에서 올림수가 발생하게 되면(1000 = -8이 입력된 경우), 이 올림 비트 신호(ca)로 인하여 오아 게이트(OR20)의해 다시 반전되어 제 1 변환기(abs20)의 결과값으로 2의 보수의 절대치 x'[n-1 .. 0]를 얻고, 제 12 변환기(abs21)의 결과값으로 2의 보수의 절대치 y'[n-1 .. 0]를 얻는다.
또한 올림 비트 신호(ca)가 없으면 오아 게이트(OR20)는 제 11 가산기(add20)의 결과값을 반전없이 통과시켜 제 1 변환기(abs20)의 결과값으로 2의 보수의 절대치 x'[n-1 .. 0]를 얻고, 제 2 변환기(abs21)의 결과값으로 2의 보수의 절대치 y'[n-1 .. 0] 을 얻는다.
그리고, 부호 비트 x[n] 및 y[n]가 '0'이면 최상위 비트 x[n] 및 y[n]를 제외한 2의 보수 데이타 x[n-1 .. 0] 및 y[n-1 .. 0]가 그대로 제 11 반전기(EXOR21)과 오아 게이트(OR20)를 통과하여 변함없이 출력되며, 이 출력 값은 상기에서 입력된 제 1 변환기(abs20)의 결과값으로 2의 보수의 절대치 x'[n-1 .. 0]가 되고 , 제 2 변환기(abs21)의 결과값으로 2의 보수의 절대치 y'[n-1 .. 0]가 된다.
상기의 2의 보수의 절대치 x'[n-1 .. 0]와 y'[n-1 .. 0]는 제 11 곱셈기(M20)로 입력되어 곱해져 6비트의 자리를 가진 2의 보수 절대치 값인 데이타 z'[2n-1 .. 0]로 출력되고,
상기 입력 데이타의 부호 비트인 최상위 비트 x[n]과 y[n]을 제 11 비교기(EXOR20)에서 비교하여 출력된 부호 비트 신호(S20는 2의 보수 데이타 x[n]와 y[n]가 서로 같지 않으면 '1'로 되며, 같으면 '0'이 된다.) 2의 보수 절대치 값인 데이타 z'[2n-1 .. 0]와 함께 제 13 변환기(abs22)로 입력되어 진다.
이때 제 13 변환기(abs22)에서는 부호 비트 신호(S20)가 '1' 이 되면 2의 보수 절대치 값인 데이타 z'[2n-1 .. 0]의 모든 비트를 제 13 배타적 논리합 게이트(EXOR22)에서 반전 시켜 제 12 가산기(add21)에서 1을 더해 2의 보수 코드 z[2n+1 .. 0]을 출력하고, 부호 비트S20가 '0' 이 되면 2의 보수 절대치 값인 데이타 z'[2n-1 .. 0]를 제 13 반전기(EXOR22)와 제 12 가산기(add21)를 변함없이 통과 시켜 2의 보수 코드 z[2n+1 .. 0]값으로 출력시킨다.
상기의 작용을 4비트의 크기를 가진 데이타의 예를 들어 설명하면 우선 입력 데이타의 최상위 비트가 같은경우 즉, 상기 표 1 에서 2의 보수 코드 값중에서 x[3 .. 0] = 1 0 0 1 ( -7)값과 y[3 .. 0] = 1 0 1 0 (-6)값이 제 11 변환기(abs20)및 제 12 변환기(abs21)로 각각 입력되면,
제 11 변환기(abs20)에서 부호 비트인 최상위 비트 x[3]가 '1'이므로 최상위 비트 x[3]를 제외한 3자리의 비트값을 제 11 배타적 논리합 게이트(EXOR21)에서 반전시켜, 이 값(1 1 0)에 제 11 가산기(add20)에서 1을 더하고, 이때에는 가산기의 올림 신호(ca)가 발생하지 않은 상태이므로 오아 게이트(OR20)에서 그냥 통과 시켜 2의 보수 코드 절대치 x'[2 .. 0] = 1 1 1 를 출력하며,
제 12 변환기(abs21)에서 부호 비트인 최상위 비트 y[3]가 '1'이므로 최상위 비트 y[3]를 제외한 3자리의 비트값을 제 11 반전기(EXOR21)에서 반전시켜 이 값(1 0 1)에 제 11 가산기(add20)에서 1을 더하고, 이때 제 11 가산기(add20)의 올림 신호(ca)가 발생하지 않으므로 오아 게이트(OR20)를 그냥 통과 시켜 2의 보수 코드 절대치 값 y'[2 .. 0] = 1 1 0 을 출력한다.
그리고, 2의 보수 데이타 x[3], y[3]를 제 11 배타적 논리합 게이트(EXOR20)에서 비교하여 같은 값을 갖고 있으므로 부호 비트 신호(S20)의 값은 '0'이 되며, 제 11 곱셈기(M10)는 2의 보수 코드 절대치 x'[2 .. 0] = 1 1 1, y'[2 .. 0] = 1 1 0 를 입력받아 곱한후 절대치 값의 데이타 z'[5 .. 0] = 1 0 1 0 1 0를 출력한다.
제 13 변환기(abs22)는 절대값의 데이타 z'[5 .. 0] = 1 0 1 0 1 0를 입력 받아 부호 비트 신호(S20)의 값이 '0'이기 때문에 반전없이 그대로 출력하여 2의 보수 z[7 .. 0] = 0 0 1 0 1 0 1 0 의 결과 값을 얻는다.
또한 입력 데이타의 최상위 비트가 다른 예로서 즉, 상기 표 1 에서 2의 보수 코드 값중에서 2의 보수 데이타 x[3 .. 0] = 1 0 1 1(-5), y[3 .. 0] = 0 0 1 0(2)가 제 11 변환기(abs20)와 제 12 변환기(abs21)로 각각 입력되면,
제 11 변환기(abs20)에서 최상위 비트 x[3]가 '1'이므로 최상위 비트 x[3]를 제외한 3자리의 비트값을 제 12 배타적 논리합 게이트(EXOR21)에서 반전시켜(1 0 0) 이 값에 제 11 가산기(add20)에서 1을 더하고, 이때 가산기의 올림 신호(ca)가 발생하지 않았기 때문에 오아 게이트(OR20)에서 그냥 통과 시켜 2의 보수 코드 절대치 x'[2 .. 0] = 1 0 1 을 출력하며,
제 12 변환기(abs21)에서 최상위 비트 y[3]가 '0'이므로 최상위 비트 y[3]를 제외한 3자리의 비트는 제 11 배타적 논리합 게이트(EXOR21)와 오아 게이트(OR20)를 그냥 통과 시켜 반전없이 그대로 2의 보수 코드 절대치 데이타 y'[2 .. 0] = 0 1 0 을 출력한다.
그리고, 두 최상위 비트 x[3], y[3]를 제 11 배타적 논리합 게이트(EXOR20)에서 비교하여 같은 다른 값을 갖고 있기 때문에 부호 비트 신호(S20)의 값은 '1'이 되며, 제 11 곱셈기(M20)는 두 절대치 x'[2 .. 0] = 1 0 1, y'[2 .. 0] = 0 1 0 를 입력받아 곱한후 2의 보수의 절대치 값의 데이타 z'[5 .. 0] = 0 0 1 0 1 0을 출력한다.
제 13 변환기(abs22)는 2의 보수의 절대치 값의 데이타 z'[5 .. 0] = 0 0 1 0 1 0를 입력 받아 부호 비트 신호(S20)의 값이 '1'이기 때문에 2의 보수의 절대치 값의 데이타 z'[5 .. 0] = 0 0 1 0 1 0 를 제 13 배타적 논리합 게이트(EXOR22)에서 반전시켜 제 12 가산기(add21)에서 1을 더하여 8비트인 2의 보수 z[7 .. 0] = 1 1 1 1 0 1 1 0 의 결과 값을 얻는다.
본발명의 또 다른 실시 예로써 입력 데이타가 최소값( -8)인 경우로서 즉, 상기 표 1 에서 2의 보수 코드 값중에서 2의 보수 데이타 x[3 .. 0] = 1 0 0 0 ( -8), y[3 .. 0] = 1 0 1 0 ( -6)가 제 11 변환기(abs20)와 제 12 변환기(abs21)로 각각 입력되면,
제 11 변환기(abs20)에서 부호 비트인 최상위 비트 x[3]가 '1'이므로 최상위 비트 x[3]를 제외한 3자리의 비트값을 제 11 배타적 논리합 게이트(EXOR21)에서 반전시켜 이 값(1 1 1)에 제 11 가산기(add20)에서 1을 더하고, 이때 가산기의 올림신호(ca)가 발생하였기 때문에 오아 게이트(OR20)에서 다시 반전시켜 2의 보수 코드 절대치 x'[2 .. 0] = 1 1 1 을 얻게 되며, 이 값은 1 0 0 1 (-7)을 입력 했을때 와 같은 결과를 같게 된다.
제 12 변환기(abs21)에서 부호 비트인 최상의 비트 y[3]가 '1'이므로 최상위 비트 y[3]를 제외한 3자리의 비트값을 제 12 배타적 논리합 게이트(EXOR21)에서 반전시켜 이 값(1 0 1)에 제 11 가산기(add20)에서 1을 더하고, 이때 제 11 가산기(add20)의 올림 신호(ca)가 발생하지 않으므로 오아 게이트(OR20)를 그냥 통과하여 2의 보수 코드 절대치 값인 데이타 y'[2 .. 0] = 1 1 0 을 출력한다.
그리고, 두 최상위 비트 x[3], y[3]를 제 11 배타적 논리합 게이트(EXOR20)에서 비교하여 같은 값을 갖고 있으므로 부호 비트 신호(S20)의 값은 '0'이 되고, 제 11 곱셈기(M10)는 2의 보수의 절대치 x'[2 .. 0] = 1 1 1, y'[2 .. 0] = 1 1 0를 입력받아 곱한후 2의 보수의 절대치 값인 데이타 z'[5 .. 0] = 1 0 1 0 1 0를 출력한다.
제 13 변환기(abs22)는 2의 보수의 절대치 값인 데이타 z'[5 .. 0] = 1 0 1 0 1 0를 입력 받아 부호 비트 신호(S20)의 값이 '0'이기 때문에 반전없이 그대로 출력하여 2의 보수 z[7 .. 0] = 0 0 1 0 1 0 1 0 의 결과 값을 얻는다.
본 발명의 효과는 임의의 2의 보수코드 n비트를 곱셈할때 승수와 피승수 양쪽의 2의 보수 코드의 최소값을 버림으로써 한 비트가 줄어든 n-1비트의 곱셈기로 데이타의 처리를 할 수 있도록 하는 승산기를 제공함으로써 승산기의 회로를 간단히 하는 효과와, 영상신호와 음성 신호 데이타를 처리하는데 적합한 승산기를 제공하는 효과를 가진다.
Claims (3)
- 컴퓨터 내부의 정보처리단위로 쓰이는 2진 코드에 의 임의의 비트 승산기에 있어서,두개의 2의 보수 데이타의 곱셈을 위해 각각의 데이타에 대해 절대치를 구하는 제 11 및 제 12 변환기(abs20)(abs21)와,상기 제 11 및 제 12 변환기(abs20)(abs21)의 한개의 비트가 줄어든 출력 신호를 입력받아 곱하는 제 11 곱셈기(M20)와,두 입력 데이타의 부호 비트인 최상위 비트를 비교하여 부호판별 하는 제 11 배타적 논리합 게이트(EXOR20)와,상기 제 11 배타적 논리합 게이트(EXOR20)의 출력 신호인 부호 비트 신호(S20)의 출력에 따라서 제 11 곱셈기(M20)의 출력 신호를 2의 보수로 변환 시켜 출력시키는 제 13 변환기(abs22)로 구성됨을 특징으로 하는 디지틀 승산기.
- 제 1항에 있어서, 상기 제 11 및 12 변환기는 2의 보수 데이타를 입력받아 반전 시키는 제 12 배타적 논리합 게이트(EXOR21)와,제 21 배타적 논리합 게이트(EXOR21)의 출력과 상기의 2의 보수 데이타의 부호 비트를 입력받아 더하는 제 11 가산기(add20)와,제 11 가산기(add20)에서 올림수에 의한 올림 신호(ca)가 발생하면 입력값을 반전시키는 오아 게이트(OR20)로 구성하여 입력된 2의 보수 데이타의 비트보다 한개의 비트가 줄어든 2의 보수의 절대치값을 출력함을 특징으로 하는 디지틀 승산기.
- 제 1 항에 있어서, 제 13 변환기(abs22)는 상기의 제 11 곱셈기(M20)로 부터 2의 보수의 절대값의 데이타를 두 비트 줄어든값으로 입력받으면서 부호 비트 신호(S20)가 '1'일 때 반전 시키는 제 13 배타적 논리합 게이트(EXOR22)와,상기의 반전된 값에 부호 비트 신호(S20)을 더하여 최종의 2의 보수를 출력하는 제 12 가산기(add21)로 구성됨을 특징으로 하는 디지틀 승산기.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970031267A KR100239631B1 (ko) | 1997-07-07 | 1997-07-07 | 디지틀 승산기 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970031267A KR100239631B1 (ko) | 1997-07-07 | 1997-07-07 | 디지틀 승산기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990009012A KR19990009012A (ko) | 1999-02-05 |
KR100239631B1 true KR100239631B1 (ko) | 2000-01-15 |
Family
ID=19513542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970031267A KR100239631B1 (ko) | 1997-07-07 | 1997-07-07 | 디지틀 승산기 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100239631B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1291205C (zh) | 2002-08-24 | 2006-12-20 | 三星电子株式会社 | 冷柜 |
-
1997
- 1997-07-07 KR KR1019970031267A patent/KR100239631B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19990009012A (ko) | 1999-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4953115A (en) | Absolute value calculating circuit having a single adder | |
US5506799A (en) | Booth array multiplying circuit having carry correction | |
US4916531A (en) | Color video processing circuitry | |
US5272654A (en) | System for converting a floating point signed magnitude binary number to a two's complement binary number | |
US5216628A (en) | Absolute value arithmetic circuit | |
JPH10161850A (ja) | 絶対値比較回路 | |
US4660165A (en) | Pyramid carry adder circuit | |
EP0238300A2 (en) | Serial digital signal processing circuitry | |
KR100239631B1 (ko) | 디지틀 승산기 | |
KR19980082906A (ko) | 부동 소수점 숫자의 정수형으로의 변환 방법 | |
JPH1091397A (ja) | 演算回路 | |
EP0470793B1 (en) | Digital signal orthogonal transformer apparatus | |
US3975624A (en) | Two's complement subtracting system | |
JP2991788B2 (ja) | 復号器 | |
KR0182169B1 (ko) | 로그값 계산회로 | |
JP2513021B2 (ja) | 符号付きディジット数正負判定回路 | |
KR100196520B1 (ko) | 면적 개선을 위한 2의보수 변환 장치 | |
JP2907276B2 (ja) | 演算処理装置 | |
KR100223752B1 (ko) | 병렬 곱셈기 | |
SU1441395A1 (ru) | Сумматор-умножитель по модулю три | |
JPH07120964B2 (ja) | 伸張回路 | |
SU1559344A1 (ru) | Устройство дл вычислени модул вектора | |
KR200232068Y1 (ko) | 고속 동작을 위한 2의 보수 변환 장치 | |
KR100206119B1 (ko) | 가산기 | |
KR0185437B1 (ko) | 더블 에지 클럭구조를 가지는 곱셈기 및 그를 이용한 디지털 칼라 스페이스 변환 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20070928 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |