KR0154934B1 - 개선된 2의 보수회로 - Google Patents
개선된 2의 보수회로Info
- Publication number
- KR0154934B1 KR0154934B1 KR1019950028122A KR19950028122A KR0154934B1 KR 0154934 B1 KR0154934 B1 KR 0154934B1 KR 1019950028122 A KR1019950028122 A KR 1019950028122A KR 19950028122 A KR19950028122 A KR 19950028122A KR 0154934 B1 KR0154934 B1 KR 0154934B1
- Authority
- KR
- South Korea
- Prior art keywords
- bit value
- bit
- inverted
- input
- gate
- Prior art date
Links
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
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5318—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
-
- 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/49994—Sign extension
-
- 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
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction 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
- G06F7/5336—Reduction 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 overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
- G06F7/5338—Reduction 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 overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (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)
- Logic Circuits (AREA)
Abstract
본 발명은 개선된 2의 보수회로에 관한 것으로, N비트 이진수A의 첫번째 비트값이 복수개의 인버터(1000내지 100N-1)를 통해 반전되고, 복수개의 인버터(1000내지 100N-1)에서 반전된 각 비트값의 최하위 비트값이 제1인버터(210), 복수개의 NAND 게이트(2201내지 220N-2) 및 제2인버터(210)로 각각 입력되고, N비트 이진수 A의 두 번째 비트값이 제1 XNOR 게이트(240)의 일측입력단으로 입력되는 동시에 복수개의 NAND 게이트(2201내지 220N-2)로 각각 입력되며, 이와 마찬가지로 N-1번째 비트값이 복수개의 XNOR 게이트(2601내지 260N-2)의 N-2번째 XNOR 게이트(260N-2)의 일측입력단으로 입력된다.
그 다음, 반전된 N비트 이진수 A의 첫번째 비트값이 제2인버터(210)를 통해 다시 반전되어 2의 보수된 N비트 이진수 S의 첫번째 비트값(S0)으로 출력되고, 반전된 N비트 이진수 A의 첫 번째 비트값(A0)의 다시 반전된 비트값과 반전된 N비트 이진수 A의 두 번째 비트값(A1)이 제1 XNOR 게이트(240)를 통해 배타적 부정논리합된 다음 2의 보수화되는 N비트 이진수S의 두 번째 비트값(S1)으로 출력된다.
동시에, 반전된 N비트 이진수 A의 N-1번째 비트값과 반전된 N비트 이진수 A의 두 번째 비트값부터 N-2번째 비트값까지 부정논리곱된 비트값이 복수개의 XNOR 게이트(2601내지 260N-2)의 N-2번째 XNOR 게이트(260N-2)를 통해 배타적 부정논리합되어 2의 보수화되는 N비트 이진수 S의 N-1번째 비트값 SN-1로 출력되므로서, N비트 이진수에 대한 2의 보수를 세 단계로 수행할 수 있으므로, 전술한 종래기술에 비해 N비트의 2의 보수 수행을 고속으로 처리할 수 있도록 한 것이다.
Description
제1도는 본 발명의 바람직한 실시예에 따른 개선된 2의 보수회로의 블록구성도.
제2도는 종래의 통상적인 2의 보수회로의 블록구성도로서, 4비트 이진수의 보수를 구하기 위한 2의 보수회로를 도시한 도면.
제3도는 제2도에 도시된 종래의 전형적인 가산기의 상세도.
* 도면의 주요부분에 대한 부호의 설명
1000내지 100N-1, 210, 215 : 인버터
2201내지 220N-2: NAND게이트
240, 2601내지 260N-2: XNOR게이트
321, 341, 343 : XOR게이트
322, 342, 344 : AND게이트 345 : OR게이트
320 : 반가산기 340, 360, 380 : 전가산기
본 발명은 2의 보수회로에 관한 것으로, 특히 입력되는 비트값의 2의 보수를 보다 빠르게 수행할수 있도록 한 개선된 2의 보수회로에 관한 것이다.
공지된 바와 같이, 전자분야에서 필수적으로 사용되고 있는 가산기로서는 CARRY-LOOK-AHEAD 가산기, CONDITIONAL SUM가산기, CARRY-SKIP 가산기 등이 있으며, 이러한 가산기를 이용하여 소망하는 비트값을 반전한 다음 1을 가산하므로써 2의 보수를 수행한다.
한편, 제2도는 종래의 통상적인 2의 보수회로의 블록구성도로서, 4비트 이진수의 보수를 구하기 위한 2의 보수회로를 도시한 도면이다.
제2도를 참조하면 알 수 있듯이, 4비트의 이진수 비트값이 인버터로 입력되어 반전된 다음 가산기(300)로 입력되는 1, 즉 1과 가산되므로써, 4비트 이진수의 비트값의 보수값이 가산기(300)로 부터 출력된다.
다른 한편, 제3도(a)에 도시된 바와 같이, 4비트 이진수 A와 B를 가산하기 위한 가산기(300)는 하나의 반가산기(HALF ADDER, 320)와 3개의 전가산기(FULL ADDER, 340, 360, 380)로 구성된다.
여기에서, 이 기술분야에 널리 알려진 바와 같이, 예를 들면 4비트의 이진수 가산을 위한 반가산기(320)는 제3도의 (b)를 참조하면 알 수 있듯이, XOR게이트(321)와 AND 게이트(322)로 구성되며, 4비트의 이진수 A와 B의 첫 번째 자리값인 A0와 B0가 XOR게이트(321)를 통해 배타적 논리합(A0와 B0가 서로 다른 경우에 1, 서로 같은 경우에 0출력, 이하 배타적 논리합이라 칭함)되어 가산된 비트값 S0로 출력되고, A0와 B0의 비트값이 모두 1이면 1이고, 그 이외에는 0이다.
한편, 4비트 이진수 가산을 위한 전가산기(340, 360, 380)는 각각 제3도의 (c)에 도시된 바와같이, XOR게이트(341, 343), AND게이트(342, 344) 및 OR게이트(345)로 구성되며, 이들 전가산기(340, 360, 380)들의 각 동작과정은 실질적으로 모두 동일하므로, 중복된 기재를 피하기 위해 일예로서 제1전가산기(340)의 동작과정에 대하여 주로 설명하기로 한다.
먼저, 4비트의 이진수 A와 B의 두 번째 자리값인 A1와 B1이 제1 XOR 게이트(341)을 통해 배타적 논리합되어 제2 XOR게이트(343)의 일측입력단과 제2 AND 게이트(344)의 일측입력단으로 각각 입력되고, A1와 B1이 제1 AND 게이트(342)를 통해 논리곱되어 OR 게이트(345)의 일측입력단으로 입력된다.
이때, 반가산기(320)로부터의 캐리 C0가 제2 XOR 게이트(343)의 타측입력단과 제2 AND 게이트(344)의 타측입력단으로 각각 입력된다.
따라서, 제1 XOR 게이트(341)로부터 출력되는 비트값과 반가산기(320)로부터의 캐리 C0가 제2 XOR 게이트(343)를 통해 배타적 논리하되어 가산된 비트값 S1로 출력되고, 제1 XOR 게이트(341)로부터 출력되는 비트값과 반가산기(320)로부터의 캐리 C0가 제2 AND 게이트(344)를 통해 논리곱된 다음 OR 게이트(345)의 타측입력단으로 입력되며, 제1 AND 게이트(342)로부터 출력되는 비트값과 제2 AND 게이트(344)로부터 출력되는 비트값이 OR 게이트(345)를 통해 논리합되어 캐리 C1이 출력된다.
그 다음, 상술한 바와같은 제1 전가산기(340)의 동작과정과 실질적으로 동일하게 제2 전가산기(360)과 제3 전가산기(380)에서도 수행되므로써, 4비트의 이진수 A와 B가 가산된다.
상술한 바와 같이, 4비트의 이진수의 2의 보수를 수행하기 위해, 4비트의 이진수를 반전한 다음, 하나의 반가산기(320)와 세 개의 전가산기(340, 360, 380)를 이용하여 반전된 4비트의 이진수와 1을 가산하므로써, 4비트 이진수의 2의 보수를 수행한다.
다시 말하면, N(N은 자연수)비트의 이진수의 2의 보수를 수행하기 위해서는 N개의 인버터와 하나의 반가산기, 그리고 N-1개의 전가산기를 이용해야 N비트 이진수의 2의 보수를 수행한다.
그러나, 종래의 전형적인 방법에 따라 N비트 이진수의 2의 보수를 수행하는데 있어서, 인버터와 반가산기는 한 단계의 처리과정이 필요하고, 전가산기는 세 단계의 처리과정이 필요하므로 N비트 이진수2의 보수를 수행하는데는 3N+2단계의 처리과정이 필요하기 때문에, 2의보수 수행시간이 오래 걸리는 문제점이 있다.
따라서, 본 발명은 상기한 바와 같은 종래기술의 문제점을 감안하여 착안한 것으로, N비트의 이진수 2의 보수 수행을 고속으로 처리할 수 있는 개선된 2의 보수회로를 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명은, N비트의 이진수를 2의 보수하는 회로에 있어서, N비트 이진수의 각 비트값을 반전하기 위한 복수개의 제1 반전수단과, 상기 복수개의 제1반전수단으로부터 출력되는 반전된 상기 N비트 이진수의 최하위 비트값을 입력하여 반전한 다음 출력하는 제2 반전수단과, 상기 복수개의 제1 반전수단으로부터 출력되는 반전된 상기 N비트 이진수의 최하위 비트값을 입력하여 반전한 다음 제1 배타적 부정논리합수단으로 출력하는 제3반전수단과, 상기 복수개의 제1반전수단으로부터 출력되는 반전된 상기 N비트 이진수의 최하위 비트값을 일측입력단으로 각각 입력하고, 상기 복수개의 제1 반전수단으로부터 출력되는 반전된 상기 최하위 비트값 다음의 비트값을 순차적으로 최상위 비트값까지 하나씩 증가되는 비트값을 타측입력단으로 각각 입력한 다음 각각 부정논리곱하는 복수개의 부정논리곱수단과, 상기 제2반전수단으로부터 출력되는 비트값을 일측입력단으로 입력하고 상기 복수개의 제1반전수단으로부터 출력되는 반전된 상기 N비트 이진수의 두 번째 비트값을 타측입력단으로 입력하여 배타적 부정논리합하는 상기 제1 배타적 부정논리합수단, 상기 복수개의 제1반전수단으로부터 출력되는 반전된 상기 N비트 이진수의 세 번째 비트값부터 상기 최상위 비트값까지의 각 자리수의 비트값을 일측입력단으로 입력하고, 이에 대응하는 상기 복수개의 부정논리곱 수단으로부터 출력되는 비트값을 타측입력단으로 각각 입력하여 배타적 부정논리합하는 복수개의 배타적 부정논리합수단으로 이루어진 것을 특징으로 하는 개선된 2의 보수회로를 제공한다.
본 발명의 상기 및 기타 목적과 여러 가지 장점은 이 기술분야에 숙련된 사람들에 의해 첨부된 도면을 참조하여 하기에 기술되는 발명의 바람직한 실시예로부터 더욱 명확하게 될 것이다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세하게 설명한다.
제1도는 본 발명의 바람직한 실시예에 따른 개선된 2의 보수회로의 블록구성도로서, 동도면을 참조하면 알 수 있듯이, 본 발명에 따른 2의 보수회로는 제1 및 제2인버터(210, 215), 그리고 복수개의 인버터(1000내지 100N-1), 복수개의 NAND 게이트(2201내지 220N-2), 제1 및 복수개의 XNOR 게이트(240, 260 내지 260N-2)로 구성된다.
동도면에 있어서, 복수개의 인버터(1000내지 100N-1)는 N비트의 각 비트값을 각각 입력한 다음, 각 비트값을 반전하고, 제1인버터(210)와 제2인버터(210)는 복수개의 인버터(1000내지 100N-1)중에 첫 번째 인버터(1000)로부터 출력되는 비트값(A0)을 각각 반전한다.
그리고, 복수개의 NAND 게이트(2201내지 220N-2)는 복수개의 인버터(1000내지 100N-1)를 통해 반전된 N비트 이진수의 최하위비트를 일측입력단으로 각각 입력하고 그 다음 비트값부터 순차적으로 하나씩 더 입력한 다음, 입력되는 복수개의 비트값이 모두 1인 경우에 0을, 그 이외의 경우에 1을 출력(이하 부정논리곱이라 칭함)하는 것으로서, 첫 번째 NAND 게이트(2201)는 반전된 비트값 A0와 A1을 각각 입력하여 반전된 비트값 A0와 A1을 부정논리곱하고, 두 번째 NAND 게이트(2202)는 반전된 비트값 A1, A2및 A3를 각각 입력하여 반전된 비트값 A0, A1, A2를 부정논리곱한다.
마찬가지로, N-2번째 NAND 게이트(220N-2)는 반전된 비트값 A1, A2, A3내지 AN-2을 각각 입력하여 비트값 A1, A2, A3내지 AN-2을 부정논리곱한다.
그리고, 제1 및 복수개의 XNOR 게이트(240, 2601내지 260N-2)는 입력되는 두 개의 비트값이 서로 같은 경우에 1을, 복수개의 비트값이 서로 다른 경우에 0을 출력(이하 배타적 부정논리합이라 칭함)하는 것으로서, 제1 XNOR 게이트(240)는 복수개의 인버터(1000내지 100N-1)중에 두 번째 인버터(1001)를 통해 반전된 비트값 A1과 제1인버터(210)로부터 출력되는 비트값을 각각 입력하여 두 비트값을 배타적 부정논리합한다.
또한, 복수개의 XNOR 게이트(2601내지 260N-2)는 복수개의 인버터(1000내지 100N-1)중에 두 번째 인버터(1001)에서 반전된 비트값 A2부터 나머지 복수개의 인버터(1002내지 100N-1)에서 반전된 최상위 비트값까지 각 비트값을 일측입력단으로 하나씩 입력하고, 복수개의 NAND 게이트(2201내지 220N-2)로부터 출력되는 비트값을 타측입력단으로 하나씩 각각 입력하여 두 비트값을 배타적 부정논리합하는 것으로서, 첫 번째 XNOR 게이트(2601)는 복수개의 인터버(1000내지 100N-1)중에 세 번째 인버터(1002)에서 반전된 비트값 A2와 복수개의 NAND 게이트(2201내지 220N-2) 중에 첫 번째 NAND 게이트(2201)로부터 출력되는 비트값을 배타적 부정논리합한다.
그리고, 두 번째 XNOR 게이트(2602)는 복수개의 인버터(1000내지 100N-1) 중에 네 번째 인버터(1003)에서 반전된 비트값 A3와 복수개의 NAND 게이트(2201내지 220N-2)중에 두 번째 NAND 게이트(2202)로부터 출력되는 비트값을 배타적 부정논리합하고, N-2번째 XNOR 게이트(260N-2)는 복수개의 인버터(1000내지 100N-1)중에 마지막 인버터(100N-1)에서 반전된 비트값 AN-1과 복수개의 NAND 게이트(2201내지 220N-2)중에 N-2번째 NAND 게이트(220N-2)로부터 출력되는 비트값을 배타적 부정논리합한다.
상기한 바와 같은 구성부재로 이루어진 본 발명에 따른 개선된 2의 보수회로의 동작과정에 대하여 제1도를 참조하여 보다 상세하게 설명하기로 한다.
먼저, N비트 이진수 A의 각 비트값이 복수개의 인버터(1000내지 100N-1)로 각각 입력되어 반전되고, 복수개의 인버터(1000내지100N-1)중에 첫 번째 인버터(1000)에서 반전된 비트값 A0는 제1 인버터(210)와 복수개의 NAND 게이트(2201내지 220N-2)의 일측입력단으로 각각 입력되고, 복수개의 인버터(1000내지 100N-1)중에 두 번째 인버터(1001)에서 반전된 비트값 A1은 제1 XNOR 게이트(240)의 일측입력단과, 복수개의 NAND 게이트(2201, 내지 220N-2)의 타측입력단으로 각각 입력된다.
또한, 복수개의 인버터(1000내지 100N-1) 중에 세 번째 인버터(1002)에서 반전된 비트값 A2는 복수개의 XNOR 게이트(2601내지 260N-2)중에 첫번째 XNOR 게이트(2601)의 일측입력단과, 복수개의 NAND 게이트(2201내지 220N-2)의 다른 타측입력단으로 각각 입력되고, 복수개의 인버터(1000내지 100N-1)중에 세 번째 인버터(1002)에서 반전된 네 번째 비트값 A3는 복수개의 XNOR 게이트(2601내지 260N-2) 중에 두 번째 XNOR 게이트(2602)의 일측입력단과 복수개의 NAND 게이트(2201내지 220N-2)중에 두 번째 NAND 게이트(2202)부터 N-2번째 NAND 게이트(220N-2)까지의 다른 타측입력단으로 각각 입력된다.
마찬가지로, 복수개의 인버터(1000내지 100N-1) 중에 N-2번째 인버터(1002)에서 반전된 비트값 AN-2은 복수개의 XNOR 게이트(2601내지 260N-2)의 N-3번째 XNOR 게이트(260N-3)의 일측입력단과, 복수개의 NAND 게이트(2201내지 220N-2)중에 N-2번째 NAND 게이트(220N-2)의 또다른 타측입력단으로 입력되고, 복수개의 인버터(1000내지 100N-1) 중에 N-1번째 비트값 AN-1은 복수개의 XNOR 게이트(2601내지 260N-2)의 N-2번째 XNOR 게이트(260N-2)의 일측입력단으로 입력된다.
그 다음, 복수개의 인버터(1000내지 100N-1)중에 첫 번째 인버터(1000)에서 반전된 비트값 A0는 제2인버터(210)를 통해 반전된 다음 2의 보수화되는 N비트 이진수 S의 첫 번째 비트값 S0로 출력되고, 복수개의 인버터(1000내지 100N-1) 중에 두 번째 인버터(1001)에서 반전된 비트값 A0가 제1 인버터(210)를 통해 반전된 다음 제1 XNOR 게이트(240)의 타측입력단으로 입력되며, 복수개의 인버터(1000내지 100N-1)중에 두 번째 인버터(1001)에서 반전된 비트값 A1과 제1 인버터(210)를 통해 반전된 비트값이 제1 XNOR 게이트(240)를 통해 배타적 부정논리합되어 2의 보수화되는 N비트 이진수 S의 두 번째 비트값 S1으로 출력된다.
그리고, 복수개의 인버터(1000내지 100N-1)중에 세 번째 인버터(1002)에서 반전된 비트값 A0와 복수개의 인버터(1000내지 100N-1)중에 두 번째 인버터(1001)에서 반전된 비트값 A1이 제1 NAND 게이트(2201)를 통해 부정논리곱된 다음 복수개의 XNOR 게이트(2601내지 260N-2)중에 첫 번째 XNOR 게이트(2601)의 타측입력단으로 입력되며, 복수개의 인버터(1000내지 100N-1)중에 세 번째 인버터(1002)에서 반전된 비트값 A2와 복수개의 NAND 게이트(2201내지 220N-2) 중에 첫 번째 NAND 게이트(2201)에서 부정논리곱된 비트값이 복수개의 XNOR 게이트(2601내지 260N-2)중에 첫 번째 XNOR 게이트(2601)를 통해 배타적 부정논리합되어 2의 보수화되는 N 비트 이진수 S의 세 번째 비트값 S2로 출력된다.
동시에, 복수개의 인버터(1000내지 100N-1)중에 첫 번째 인버터(1000)에서 반전된 비트값 A0와 복수개의 인버터(1000내지 100N-1)중에 두 번째 인버터(1001)에서 반전된 비트값 A1, 그리고 복수개의 인버터(1000내지 100N-1)중에 세 번째 인버터(1002)에서 반전된 비트값 A2가 복수개의 NAND 게이트(2201내지 220N-2)중에 두 번째 NAND 게이트(2202)를 통해 부정논리곱된 다음, 복수개의 XNOR 게이트(2601내지 260N-2)중에 두 번째 XNOR 게이트(2602)의 타측입력단으로 입력되며, 복수개의 인버터(1000내지 100N-1) 중에 네 번째 인버터(1003)에서 반전된 비트값 A3와 복수개의 NAND 게이트(2201내지 220N-2)중에 두 번째 NAND 게이트(2202)에서 부정논리곱된 비트값이 복수개의 XNOR 게이트(2601내지 260N-2)중에 두 번째 XNOR 게이트(2602)를 통해 배타적 부정논리합되어 2의 보수화되는 N비트 이진수 S의 네 번째 비트값 S3로 출력된다.
또한 동시에, 복수개의 인버터(1000내지 100N-1)중에 N-1번째 인버터(100N-1)에서 반전된 N-1번째 비트값 AN-1와 복수개의 인버터(1000내지 100N-1)중에 두 번째 인버터(1001)에서 반전된 비트값 A1부터 복수개의 인버터(1000내지 100N-1) 중에 N-2번째 인버터(100N-2)에서 반전된 N-2번째 비트값 AN-2이, 복수개의 NAND 게이트(2201, 내지 220N-2)중에 N-2번째 NAND 게이트(220N-2)을 통해 부정논리곱되며, 이 비트값과 복수개의 인버터(1000내지 100N-1) 중에 N-1번째 인버터(100N-1)에서 반전된 비트값이, 복수개의 XNOR 게이트(2601내지 260N-2)중에 N-2번째 XNOR 게이트(260N-2)를 통해 배타적 부정논리합되어 2의 보수된 N비트 이진수 S의 N-1번째 비트값 SN-1로 출력된다.
예를 들면, 4비트 이진수 A가 110인 경우, 4비트 이진수 A가 네 개의 인버터(1000내지 1003)를 통해 반전되어 1001로 반전된다. 그리고, 반전된 첫 번째 비트값 1은 제1 인버터(210)와 제2 인버터(210). 복수개의 NAND 게이트(2201내지 220N-2)중에 첫 번째 NAND 게이트(2201)부터 네번째 NAND 게이트(2204)의 일측입력단으로 각각 입력되고, 110의 반전된 두 번째 비트값 0은 제1 XNOR 게이트(240)의 일측입력단과, 복수개의 NAND 게이트(2201내지 220N-2)중에 첫 번째 NAND 게이트(2201)와 두 번째 NAND 게이트(2202)의 타측입력단으로 각각 입력된다.
동시에, 110의 반전된 세 번째 비트값 0은 복수개의 XNOR 게이트(2601내지 260N-2)중에 첫 번째 XNOR 게이트(2601)의 일측입력단과, 복수개의 NAND게이트(2201내지 220N-2)중에 두 번째 NAND 게이트(2202)의 다른 타측입력단으로 각각 입력되고, 110의 반전된 네 번째 비트값 1은 복수개의 XNOR 게이트(2601내지 260N-2)중에 두 번째 XNOR 게이트(2602)의 일측입력단으로 입력된다.
따라서, 110의 반전된 첫 번째 비트값 1은 제2 인버터(210)를 통해 반전되어 2의 보수화되는 4비트 이진수 S의 첫 번째 비트 S0는 0이 되고, 110의반전된 첫 번째 비트값 1이 제1인버터(210)를 통해 반전된 비트값(0)과 110의반전된 두 번째 비트값 0이 제1 XNOR 게이트(240)를 통해 배타적 부정논리합되어 2의 보수된 4비트 이진수 S의 두 번째 비트 S1은 1이 된다.
동시에, 110의 반전된 첫 번째 비트값 1과 두 번째 비트값 0이 복수개의 NAND 게이트(2201내지 220N-2)중에 첫 번째 NAND 게이트(2201)를 통해 부정논리곱되어 1이 출력되고, 이 비트값(1)과 110의 반전된 세 번째 비트값 0이 복수개의 XNOR 게이트(2601내지 260N-2)중에 첫 번째 XNOR 게이트(2601)를 통해 배타적 부정논리합되어 2의 보수화되는 4비트 이진수 S의 세 번째비트 S2는 0이 된다.
또한 동시에, 110의 반전된 첫 번째 비트값 1과 두 번째 비트값 0, 그리고 세 번째 비트값 0이 복수개의 NAND 게이트(2201내지 220N-2)중에 두 번째 NAND 게이트(2202)를 통해 부정논리곱되어 1이 출력되고, 이 비트값(1)과 110의 반전된 네 번째 비트값 1이 복수개의 XNOR 게이트(2601내지 260N-2)중에 두 번째 XNOR 게이트(2602)를 통해 배타적 부정논리합되어 2의 보수된 4비트 이진수 S의 네 번째 비트 S3는 1이 된다.
따라서, 제2인버터(210)와 제1 및 복수개의 XNOR 게이트(2601내지 260N-2) 중에 첫 번째, 두 번째 XNOR 게이트(2601, 2602)로부터 출력되는 2의 보수된 4비트 이진수 S의 각 자리수의 비트값은 1010이 되고, 결과적으로 이 값(1010)은 110에 대한 2의 보수이다.
상술한 바와같이, N비트 이진수 A의 첫 번째 비트값이 복수개의 인버터(1000내지 100N-1)를 통해 반전되고, 복수개의 인버터(1000내지 100N-1)에서 반전된 각 비트값의 최하위 비트값이 제1인버터(210), 복수개의 NAND 게이트(2201내지 220N-2) 및 제2 인버터(210)로 각각 입력되고, N비트 이진수 A의 두 번째 비트값이 제1 XNOR 게이트(240)의 일측입력단으로 입력되는 동시에 복수개의 NAND 게이트(2201내지 220N-2)로 각각 입력되며, 이와 마찬가지로 N-1번째 비트값이 복수개의 XNOR 게이트(2601내지 260N-2)의 N-2번째 XNOR 게이트(260N-2)의 일측입력단으로 입력된다.
그 다음, 반전된 N비트 이진수 A의 첫 번째 비트값이 제2 인버터(210)를 통해 다시 반전되어 2의 보수된 N비트 이진수 S의 첫 번째 비트값(S0)으로 출력되고, 반전된 N비트 이진수 A의 첫 번째 비트값(A0)의 다시 반전된 비트값과 반전된 N비트 이진수 A의 두 번째 비트값(A1)이 제1 XNOR 게이트(240)를 통해 배타적 부정논리합된 다음 2의 보수화되는 N 비트 이진수 S의 두번째 비트값(S1)으로 출력된다.
동시에, 반전된 N비트 이진수 A의 N-1번째 비트값과 반전된 N비트 이진수 A의 두 번째 비트값 부터 N-2번째 비트값까지 부정논리곱된 비트값이 복수개의 XNOR 게이트(2601내지 260N-2)의 N-2번째 XNOR 게이트(260N-2)를 통해 배타적 부정논리합되어 2의 보수화되는 N비트 이진수 S의 N-1번째 비트값 SN-1로 출력된다.
따라서, 본 발명을 이용하면, N비트 이진수에 대한 2의 보수를 세 단계로 수행할 수 있으므로, 전술한 종래기술에 비해 N비트의 2의 보수 수행을 고속으로 처리할 수 있는 잇점이 있다.
Claims (1)
- N비트의 이진수를 2의 보수하는 회로에 있어서, N비트 이진수의 각 비트값을 반전하기 위한 복수개의 제1반전수단(1000내지 100N-1) ; 상기 복수개의 제1 반전수단(1000내지 100N-1)으로부터 출력되는 반전된 상기 N비트 이진수의 최하위 비트값을 입력하여 반전한 다음 출력하는 제2 반전수단(210) ; 상기 복수개의 제1반전수단(1000내지 100N-1)으로부터 출력되는 반전된 상기 N비트 이진수의 최하위 비트값을 입력하여 반전한 다음 제1 배타적 부정논리합수단으로 출력하는 제3반전수단(215) ; 상기 복수개의 제1 반전수단(1000내지 100N-1)으로부터 출력되는 반전된 상기 N비트 이진수의 최하위 비트값을 일측입력단으로 각각 입력하고, 상기 복수개의 제1 반전수단(1000내지 100N-1)으로부터 출력되는 반전된 상기 최하위 비트값 다음의 비트값을 순차적으로 최상위 비트값까지 하나씩 증가되는 비트값을 타측입력단으로 각각 입력한 다음 각각 부정논리곱하는 복수개의 부정논리곱수단(2200내지 220N-2) ; 상기 제2 반전수단(210)으로부터 출력되는 비트값을 일측입력단으로 입력하고 상기 복수개의 제1 반전수단(1000내지 100N-1)으로부터 출력되는 반전된 상기 N비트 이진수의 두 번째 비트값을 타측입력단으로 입력하여 배타적 부정논리합하는 상기 제1 배타적 부정논리합수단(240) ; 상기 복수개의 제1 반전수단(1000내지 100N-1)으로부터 출력되는 반전된 상기 N비트 이진수의 세 번째 비트값부터 상기 최상위 비트값까지의 각 자리수의 비트값을 일측입력단으로 입력하고, 이에 대응하는 상기 복수개의 부정논리곱수단(2200내지 220N-2)으로부터 출력되는 비트값을 타측입력단으로 각각 입력하여 배타적 부정논리합하는 복수개의 배타적 부정논리합수단(2600내지 260N-2)으로 이루어진 것을 특징으로 하는 개선된 2의 보수회로.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950028122A KR0154934B1 (ko) | 1995-08-31 | 1995-08-31 | 개선된 2의 보수회로 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950028122A KR0154934B1 (ko) | 1995-08-31 | 1995-08-31 | 개선된 2의 보수회로 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970012122A KR970012122A (ko) | 1997-03-29 |
KR0154934B1 true KR0154934B1 (ko) | 1998-11-16 |
Family
ID=19425541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950028122A KR0154934B1 (ko) | 1995-08-31 | 1995-08-31 | 개선된 2의 보수회로 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0154934B1 (ko) |
-
1995
- 1995-08-31 KR KR1019950028122A patent/KR0154934B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR970012122A (ko) | 1997-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6820107B1 (en) | Square root extraction circuit and floating-point square root extraction device | |
US4953115A (en) | Absolute value calculating circuit having a single adder | |
US4761760A (en) | Digital adder-subtracter with tentative result correction circuit | |
US4758974A (en) | Most significant digit location | |
EP0209308A2 (en) | Circuitry for complementing binary numbers | |
US4441158A (en) | Arithmetic operation circuit | |
US5471414A (en) | Fast static CMOS adder | |
US4709346A (en) | CMOS subtractor | |
EP0467524B1 (en) | Lookahead adder | |
US3842250A (en) | Circuit for implementing rounding in add/subtract logic networks | |
US4866655A (en) | Arithmetic processor and divider using redundant signed digit | |
US5245563A (en) | Fast control for round unit | |
US5548546A (en) | High-speed carry increment adding device | |
US4827444A (en) | Carry skip-ahead circuit for Manchester-type adder chain | |
US6484193B1 (en) | Fully pipelined parallel multiplier with a fast clock cycle | |
US5140546A (en) | Adder circuit apparatus | |
KR0154934B1 (ko) | 개선된 2의 보수회로 | |
JPH09222991A (ja) | 加算方法および加算器 | |
US6199090B1 (en) | Double incrementing, low overhead, adder | |
US5635858A (en) | Zero-stopping incrementers | |
US5978826A (en) | Adder with even/odd 1-bit adder cells | |
KR0154933B1 (ko) | 개선된 인크리먼트 회로 | |
US6044063A (en) | Unsigned integer comparator | |
US5781465A (en) | Method and apparatus for fast carry generation detection and comparison | |
US4041296A (en) | High-speed digital multiply-by-device |
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: 20010629 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |