KR20050081407A - 부스 알고리즘을 이용한 곱셈기의 인코더 - Google Patents

부스 알고리즘을 이용한 곱셈기의 인코더 Download PDF

Info

Publication number
KR20050081407A
KR20050081407A KR1020040009628A KR20040009628A KR20050081407A KR 20050081407 A KR20050081407 A KR 20050081407A KR 1020040009628 A KR1020040009628 A KR 1020040009628A KR 20040009628 A KR20040009628 A KR 20040009628A KR 20050081407 A KR20050081407 A KR 20050081407A
Authority
KR
South Korea
Prior art keywords
data
output
operator
multiplier
response
Prior art date
Application number
KR1020040009628A
Other languages
English (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 KR1020040009628A priority Critical patent/KR20050081407A/ko
Priority to US11/054,954 priority patent/US7519648B2/en
Priority to JP2005036845A priority patent/JP4638253B2/ja
Publication of KR20050081407A publication Critical patent/KR20050081407A/ko

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/52Multiplying; 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/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
    • G06F7/5336Reduction 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)
  • Error Detection And Correction (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

부스 알고리즘을 이용한 곱셈기의 인코더가 개시된다. 본 발명의 실시예에 따른 인코더는, 복수 비트의 승수(multiplier) 데이터와 복수 비트의 피승수(multiplicand) 데이터를 곱하는 곱셈기의 인코더에 있어서, 연산자 발생부 및 부분적 데이터 발생부를 구비한다. 연산자 발생부는 상기 승수 데이터를 인코딩 하여 복수개의 연산자들을 출력한다. 부분적 데이터 발생부는 상기 피승수 데이터를 수신하고 상기 승수 데이터 중 1비트 데이터와 상기 복수개의 연산자들에 응답하여 복수 비트의 부분적(partial product) 데이터를 출력한다. 상기 연산자 발생부는 복수개의 인코딩 셀들을 구비하고 상기 각각의 인코딩 셀은 상기 복수 비트의 승수 데이터 중 인접한 두 비트의 데이터를 인코딩 하여 상기 복수개의 연산자들을 출력한다. 본 발명에 따른 인코더는 부호를 선택하는 연산자를 다른 연산자들 보다 먼저 발생하도록 하여 인코더의 동작 속도를 빠르게 하는 장점이 잇다.

Description

부스 알고리즘을 이용한 곱셈기의 인코더{Encoder of multiplier using booth algorithm}
본 발명은 곱셈기에 관한 것으로서 특히 부스 알고리즘(Booth Algorithm)을 이용한 곱셈기의 인코더에 관한 것이다.
일반적인 곱셈기는 인코더와 압축기 및 가산기를 구비한다. 이중 인코더는 승수(multiplier)와 피승수(multiplicand)를 부호화하고 승수와 피승수의 곱에 의한 부분 합(partial sum)들을 생성하는 블록으로서, 부분 합들의 수를 줄이기 위해 수정된 부스(Booth) 알고리즘이 이용되고 있다.
부스 알고리즘이란 복수 비트의 승수와 피승수의 곱셈 연산의 횟수를 줄여 부호화함으로써 곱셈 연산 속도를 향상시키는 곱셈 연산 방법이다. 부스 알고리즘을 이용하는 인코더는 승수를 이용하여 연산자들을 생성하는 인코더 셀(Encoder Cell)과 연산자들에 의해 피승수를 부호화시키는 부분적 셀(Partial-product Cell)들을 구비한다.
도 1(a)는 부스 알고리즘을 이용한 종래의 곱셈기의 인코더 셀을 나타내는 도면이다.
도 1(b)는 부스 알고리즘을 이용한 종래의 곱셈기의 부분적 셀을 나타내는 도면이다.
도 1(a) 및 도 1(b)를 참조하면, 인코더 셀(100)은 배타적 논리합 수단(XOR11), 논리곱 수단들(AND11, AND12), 멀티플렉서(MUX11) 및 버퍼들(B11, B12, B13)을 구비한다.
이러한 구조의 곱셈기의 인코더는 N.Ohkubo 등에 의하여 "A 4.4ns CMOS 54 X54 Multiplier using pass-transistor Multiplier" 라는 제목으로 IEEE J. of Solid State Circuit, Vol.30, no 3, pp.251 ~ 257, Ma.,1995에 게재되어 있다.
인코더 셀(100)은 복수 비트의 승수 데이터 중 제 1 내지 제 3 승수 데이터(Y2j-1, Y2j, Y2j+1)를 인코딩하여 연산자들(1X, 2X, NEG)을 선택적으로 출력한다. 제 1 내지 제 3 승수 데이터(Y2j-1, Y2j, Y2j+1)와 연산자들(1X, 2X, NEG)은 표1과 같은 관계를 가진다.
표 1의 연산자들(1X, 2X)의 부호는 연산자(NEG)에 의하여 결정된다.
도 1(b)의 부분 적 셀(110)은 반전 논리곱 수단들(NAND11, NAND12, NAND13) 및 배타적 논리합 수단(XOR12)을 구비한다. 부분적 셀(110)은 인코더 셀(100)에서 출력되는 연산자들(1X, 2X, NEG)에 응답하여 수신되는 피승수 데이터(Xi, Xi-1)의 출력 경로를 선택하고 그 결과를 부분적(partial product) 데이터(Pi,2j)로서 출력한다.
그런데, 기존의 곱셈기의 인코더는 도 1(a) 및도 1(b)에서 알 수 있듯이 인코더 셀(100)에서 버퍼를 포함하여 최대 3게이트의 지연을 갖고 부분적 셀(110)에서 도 3게이트의 지연을 가지며 따라서 전체 6게이트의 지연을 갖는다.
즉, 부분적 데이터(Pi,2j)는 승수 데이터(Y2j-1, Y2j, Y2j+1) 및 피승수 데이터(Xi, Xi-1)가 6개의 게이트들(예를 들어, AND11, MUX11, B12, NAND12, NAND13, XOR12)을 거친 후에 출력된다. 이러한 지연시간은 곱셈기의 동작 속도의 저하를 발생시킨다.
그리고, 1게이트 지연을 갖는 연산자(NEG)가 3게이트 지연을 갖는 다른 연산자들(X, 2X)보다 먼저 부분적 셀(100)의 출력 단인 배타적 논리합 수단(XOR12)에 도달함으로써 배타적 논리합 수단(XOR12)이 턴 온 되어 부분적 데이터(Pi,2j)의 발생과 무관하게 누설 전류(leakage current)가 발생되는 문제가 있다.
또한, 인코더가 많은 트랜지스터를 구비하여 면적이 증가되고 배타적 논리합 수단(XOR12)을 출력 단에 사용하여 피승수의 2진 보수처리 여부를 결정하므로 인코더의 성능저하를 가져오게 된다.
도 2(a)는 부스 알고리즘을 이용한 종래의 다른 곱셈기의 인코더 셀을 나타내는 도면이다.
도 2(b)는 부스 알고리즘을 이용한 종래의 다른 곱셈기의 부분적 셀을 나타내는 도면이다.
도 2(a) 및 도 2(b)를 참조하면, 인코더 셀(200)은 배타적 논리합 수단(XOR21), 논리곱 수단(AND21), 논리합 수단(OR21), 반전 논리곱 수단(NAND21), 반전 논리합 수단(NOR21) 및 인버터들(I21 ~ I27)을 구비한다.
이러한 구조의 곱셈기의 인코더는 G. Goto 등에 의하여 "A 4.1ns Compact 54 X 54-b Multiplier utilizing Sign-Select Booth Encoder" 라는 제목으로 IEEE J. of Solid State Circuit, Vol.32, no 11, pp.1676 ~ 1681, Nov.,1997에 게재되어 있다.
인코더 셀(200)은 복수 비트의 승수 데이터 중 제 1 내지 제 3 승수 데이터(Y2j-1, Y2j, Y2j+1)를 인코딩하여 연산자들(1X, 2X, PL, M)을 선택적으로 출력한다. 제 1 내지 제 3 승수 데이터(Y2j-1, Y2j, Y2j+1)와 연산자들(1X, 2X, PL, M)은 표2와 같은 관계를 가진다.
표 2의 연산자들(1X, 2X)의 부호는 연산자(PL, M : 여기서 PL은 positive, M은 negative를 의미한다.)의 논리 레벨에 의하여 결정된다.
도 2(b)의 부분 적 셀(210)은 인버터들(I28, I29) 및 멀티플렉서들(MUX21, MUX22, MUX23, MUX24)을 구비한다. 부분적 셀(210)은 인코더 셀(200)에서 출력되는 연산자들(1X, 2X, PL, M)에 응답하여 수신되는 피승수 데이터(Xi, Xi-1)의 출력 경로를 선택하고 그 결과를 부분적(partial product) 데이터(Pi,2j, Pi-1,2j)로서 출력한다.
도 2(a) 및 도 2(b)의 인코더는 도 1의 인코더의 지연시간 문제를 개선시킨 인코더이다.
도 2의 인코더는 연산자(PL, M)를 사용하여 적은 수의 트랜지스터로 부분적 셀(210)의 부호화 과정을 향상시킨다. 도 2(a) 및 도 2(b)에 나타냈듯이, 인코더 셀(200)이 인버터를 포함해 3게이트의 지연을 갖고 부분적 셀(210)이 2게이트의 지연을 갖는다. 따라서 도2의 인코더는 전체 5게이트의 지연을 갖는다.
도 2의 인코더는 도 1의 인코더에 비하여 게이트 지연 시간을 1게이트만큼 단축시켰으며 부분적 셀(210)의 집적도를 높였다.
그러나, 연산자들(PL, M)을 위해 인코더 셀(200)의 회로 구성이 상대적으로 복잡해 졌고 연산자들(PL,M)의 지연이 다른 연산자들(1X, 2X)에 비해 1게이트만큼 더 지연되므로 결과적으로 곱셈기 인코더의 동작 속도가 지연되는 문제가 있다.
본 발명이 이루고자하는 기술적 과제는 부호를 선택하는 연산자를 다른 연산자들 보다 먼저 발생하도록 하여 동작 속도를 빠르게 한 곱셈기의 인코더를 제공하는 데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 인코더는, 복수 비트의 승수(multiplier) 데이터와 복수 비트의 피승수(multiplicand) 데이터를 곱하는 곱셈기의 인코더에 있어서, 연산자 발생부 및 부분적 데이터 발생부를 구비한다.
연산자 발생부는 상기 승수 데이터를 인코딩 하여 복수개의 연산자들을 출력한다. 부분적 데이터 발생부는 상기 피승수 데이터를 수신하고 상기 승수 데이터 중 1비트 데이터와 상기 복수개의 연산자들에 응답하여 복수 비트의 부분적(partial product) 데이터를 출력한다.
상기 연산자 발생부는 복수개의 인코딩 셀들을 구비하고 상기 각각의 인코딩 셀은 상기 복수 비트의 승수 데이터 중 인접한 두 비트의 데이터를 인코딩 하여 상기 복수개의 연산자들을 출력한다.
상기 인코딩 셀은 배타적 논리합 수단, 반전 논리곱 수단 및 반전 논리합 수단을 구비한다.
배타적 논리합 수단은 상기 복수 비트의 승수 데이터 중 제 1 승수 데이터와 상기 제 1 승수 데이터에 인접한 상위 비트인 제 2 승수 데이터를 배타적 논리합 하여 제 1 연산자를 출력한다.
반전 논리곱 수단은 상기 제 1 승수 데이터와 상기 제 2 승수 데이터를 반전 논리곱 하여 제 2 연산자를 출력한다.
반전 논리합 수단은 상기 제 1 승수 데이터와 상기 제 2 승수 데이터를 반전 논리합 하여 제 3 연산자를 출력한다.
상기 인코딩 셀의 상기 반전 논리합 수단은 제 1 및 제 2 피모스 트랜지스터와 제 1 및 제 2 엔모스 트랜지스터를 구비한다.
제 1 피모스 트랜지스터는 전원 전압에 제 1단이 연결되고 게이트에 상기 제 1 승수 데이터가 인가된다. 제 2 피모스 트랜지스터는 상기 제 1 피모스 트랜지스터의 제 2단에 제 1단이 연결되고 게이트에 상기 제 2 승수 데이터가 인가되며 제 1 출력 노드에 제 2단이 연결된다.
제 1 엔모스 트랜지스터는 상기 제 1 출력노드에 제 1단이 연결되고 접지 전압에 제 2 단이 연결되며 게이트에 상기 제 1 승수 데이터가 인가된다. 제 2 엔모스 트랜지스터는 상기 제 1 출력노드에 제 1단이 연결되고 상기 접지 전압에 제 2 단이 연결되며 게이트에 상기 제 2 승수 데이터가 인가된다.
상기 제 1 출력 노드로부터 상기 제 3 연산자가 출력된다.
상기 배타적 논리합 수단 및 상기 반전 논리곱 수단은 제 3 내지 제 5 피모스 트랜지스터와 제 3 내지 제 6 엔모스 트랜지스터를 구비한다.
제 3 피모스 트랜지스터는 상기 전원 전압에 제 1 단이 연결되고 게이트에 상기 제 1 승수 데이터가 인가되며 제 2 출력 노드에 제 2단이 연결된다. 제 4 피모스 트랜지스터는 상기 전원 전압에 제 1 단이 연결되고 게이트에 상기 제 2 승수 데이터가 인가되며 상기 제 2 출력 노드에 제 2단이 연결된다.
제 5 피모스 트랜지스터는 상기 제 2 출력 노드에 제 1단이 연결되고 게이트에 상기 제 1 출력 노드가 연결되며 제 2단이 제 3 출력 노드에 연결된다.
제 3 엔모스 트랜지스터는 상기 접지 전압에 제 1단이 연결되고 게이트에 상기 제 1 출력 노드가 연결되며 제 2단이 상기 제 3 출력 노드에 연결된다. 제 4 엔모스 트랜지스터는 상기 제 3 출력 노드에 제 1 단이 연결되고 게이트에 상기 제 1 승수 데이터가 인가된다.
제 5 엔모스 트랜지스터는 상기 제 2 출력 노드에 제 1 단이 연결되고 게이트에 상기 제 1 승수 데이터가 인가된다. 제 6 엔모스 트랜지스터는 상기 제 4 및 제 5 엔모스 트랜지스터의 제 2단에 제 1단이 연결되고 게이트에 상기 제 2 승수 데이터가 인가되며 상기 접지 전압에 제 2단이 연결된다.
상기 제 2 출력 노드로부터 상기 제 2 연산자가 출력되고 상기 제 3 출력 노드로부터 상기 제 1 연산자가 출력된다.
상기 제 1 연산자는 상기 피승수 데이터를 그대로 상기 부분적 데이터로서 나타내고, 상기 제 2 연산자는 상기 피승수 데이터를 상위 비트 방향으로 1 비트씩 쉬프트 시킨 데이터를 상기 부분적 데이터로서 나타내고, 상기 제 3 연산자는 상기 제 2 연산자에 대응되는 상기 부분적 데이터의 2의 보수를 상기 부분적 데이터로서 나타낸다.
상기 부분적 데이터 발생부는 상기 제 2 승수 데이터에 인접한 상위 비트인 제 3 승수 데이터를 상기 복수개의 연산자들의 부호를 결정하는 부호 선택 연산자로서 수신하고 복수개의 선택 회로들을 구비한다.
상기 각각의 선택 회로는 제 1 선택부 및 제 2 선택부를 구비한다. 제 1 선택부는 상기 부호 선택 연산자에 응답하여 상기 피승수 데이터 중 두 비트의 피승수 데이터와 영(0) 데이터의 출력 경로를 선택한다.
제 2 선택부는 상기 제 1, 제 2 및 제 3 연산자에 응답하여 상기 제 1 선택부에서 출력되는 상기 피승수 데이터 및 이전 선택 회로에서 출력되는 피승수 데이터의 출력 경로를 선택하여 상기 부분적 데이터를 출력한다.
상기 제 1 선택부는 제 1 멀티플렉서 및 제 2 멀티플렉서를 구비한다.
제 1 멀티플렉서는 상기 부호 선택 연산자에 응답하여 상기 피승수 데이터 중 제 1 피승수 데이터, 상기 제 1 피승수 데이터의 2의 보수인 제 1 반전 피승수 데이터 및 영(0) 데이터의 출력 경로를 선택하여 제 1 내지 제 3 출력으로서 발생한다.
제 2 멀티플렉서는 상기 부호 선택 연산자에 응답하여 상기 제 1 피승수 데이터와 인접한 상위 비트인 제 2 피승수 데이터, 상기 제 2 피승수 데이터의 2의 보수인 제 2 반전 피승수 데이터 및 영(0) 데이터의 출력 경로를 선택하여 제 4 내지 제 6 출력으로서 발생한다.
상기 제 2 멀티플렉서는 제 1 인버터 및 제 1 내지 제 6 스위치를 구비한다.
제 1 인버터는 상기 부호 선택 연산자를 반전시켜 반전 부호 선택 연산자를 발생g나다. 제 1 스위치는 상기 반전 부호 선택 연산자에 응답하여 상기 제 2 피승수 데이터를 상기 제 4 출력으로서 발생하거나 차단시킨다.
제 2 스위치는 상기 반전 부호 선택 연산자에 응답하여 상기 제 2 피승수 데이터를 상기 제 5 출력으로서 발생하거나 차단시킨다. 제 3 스위치는 상기 반전 부호 선택 연산자에 응답하여 상기 영(0) 데이터를 상기 제 6 출력으로서 발생하거나 차단시킨다.
제 4 스위치는 상기 부호 선택 연산자에 응답하여 상기 제 2 반전 피승수 데이터를 상기 제 4 출력으로서 발생하거나 차단시킨다. 제 5 스위치는 상기 부호 선택 연산자에 응답하여 상기 영(0) 데이터를 상기 제 5 출력으로서 발생하거나 차단시킨다.
제 6 스위치는 상기 부호 선택 연산자에 응답하여 상기 제 2 반전 피승수 데이터를 상기 제 6 출력으로서 발생하거나 차단시킨다. 상기 제 1 멀티플렉서는 상기 제 2 멀티플렉서와 동일한 구조를 가진다.
상기 제 2 선택부는 제 3 멀티플렉서 및 제 4 멀티플렉서를 구비한다.
제 3 멀티플렉서는 상기 제 1 내지 제 3 연산자에 응답하여 상기 제 1 멀티플렉서의 제 1 출력 및 이전 선택 회로에서 출력되는 피승수 데이터의 출력 경로를 선택하여 제 1 부분적 데이터로서 출력한다.
제 4 멀티플렉서는 상기 제 1 내지 제 3 연산자에 응답하여 상기 제 2 멀티플렉서의 제 4 출력, 상기 제 1 멀티플렉서의 제 2 및 제 3 출력의 출력 경로를 선택하여 제 2 부분적 데이터로서 출력한다.
상기 제 4 멀티플렉서는 제 2 인버터 및 제 7 내지 제 9 스위치를 구비한다.
제 2 인버터는 상기 제 2 연산자를 반전시켜 제 2 반전 연산자를 발생한다. 제 7 스위치는 상기 제 1 연산자에 응답하여 상기 제 4 출력을 상기 제 2 부분적 데이터로서 발생하거나 차단시킨다.
제 8 스위치는 상기 제 2 반전 연산자에 응답하여 상기 제 2 출력을 상기 제 2 부분적 데이터로서 발생하거나 차단시킨다. 제 9 스위치는 상기 제 3 연산자에 응답하여 상기 제 3 출력을 상기 제 2 부분적 데이터로서 발생하거나 차단시킨다.
상기 제 4 멀티플렉서는 상기 제 3 멀티플렉서와 동일한 구조를 가진다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 3은 본 발명의 실시예에 따른 인코더를 나타내는 회로도이다.
도 4는 도 3의 인코더의 복수개의 연산자들을 설명하는 표이다.
본 발명의 실시예에 따른 곱셈기의 인코더(300)는 연산자 발생부와 부분적 데이터 발생부를 구비한다. 연산자 발생부는 승수 데이터를 인코딩 하여 복수개의 연산자들을 출력한다.
부분적 데이터 발생부는 피승수 데이터를 수신하고 승수 데이터 중 1비트 데이터와 복수개의 연산자들에 응답하여 복수 비트의 부분적(partial product) 데이터를 출력한다.
부분적 데이터 발생부에서 출력되는 부분적 데이터를 합산하면 곱셈 연산이 완성된다.
곱셈기의 인코더의 연산자 발생부는 복수개의 인코딩 셀들을 구비한다. 일반적인 인코딩 셀들은 3비트의 승수 데이터를 인코딩 하여 연산자를 출력하며 연산자 발생부는 이와 같은 인코딩 셀들을 복수 개 구비한다.
그러나, 본 발명의 실시예에 따른 인코더의 연산자 발생부의 인코딩 셀은 복수 비트의 승수 데이터 중 인접한 두 비트의 데이터를 인코딩 하여 상기 복수개의 연산자들을 출력한다.
도 3에는 복수개의 인코딩 셀들 중 하나가 도시되어 있다.
곱셈기의 인코더의 부분적 데이터 발생부는 복수개의 선택 회로들을 구비한다. 선택 회로들은 인코딩 셀에서 출력되는 연산자들에 응답하여 부분적 데이터를 발생한다.
도 3에는 복수개의 선택회로들 중 하나가 도시되어 있다.
이하에서는 도 3에 도시된 하나의 인코딩 셀(310)과 하나의 선택 회로(320)를 이용하여 본 발명의 실시예에 따른 인코더(300)의 동작을 설명한다.
도 3의 인코딩 셀(310)은 복수 비트의 승수 데이터 중 인접한 두 비트의 데이터(Y2j-1, Y2j)를 인코딩 하여 상기 복수개의 연산자들(1x, p2x, n2x)을 출력한다.
인코딩 셀(310)은 배타적 논리합 수단(XOR31), 반전 논리곱 수단(NAND31) 및 반전 논리합 수단(NOR31)을 구비한다.
배타적 논리합 수단(XOR31)은 복수 비트의 승수 데이터 중 제 1 승수 데이터(Y2j-1)와 제 1 승수 데이터(Y2j-1)에 인접한 상위 비트인 제 2 승수 데이터(Y2j)를 배타적 논리합 하여 제 1 연산자(1x)를 출력한다.
반전 논리곱 수단(NAND31)은 제 1 승수 데이터(Y2j-1)와 제 2 승수 데이터(Y2j)를 반전 논리곱 하여 제 2 연산자(p2x)를 출력한다. 반전 논리합 수단(NOR31)은 제 1 승수 데이터(Y2j-1)와 제 2 승수 데이터(Y2j)를 반전 논리합 하여 제 3 연산자(n2x)를 출력한다.
인코딩 셀(310)은 제 1 내지 제 3 연산자(1x, p2x, n2x)를 출력하기 위하여 버퍼들(B31, B32, B33)을 더 구비할 수 있다.
제 1 연산자(1x)는 피승수 데이터를 그대로 부분적 데이터(PPi-1, PPi)로서 나타내고, 제 2 연산자(p2x)는 피승수 데이터를 상위 비트 방향으로 1 비트씩 쉬프트 시킨 데이터를 부분적 데이터(PPi-1, PPi)로서 나타낸다.
제 3 연산자(n2x)는 제 2 연산자(p2x)에 대응되는 부분적 데이터의 2의 보수를 부분적 데이터(PPi-1, PPi)로서 나타낸다.
도 4에 나타난 연산자(0x)는 "0" 을 부분적 데이터(PPi-1, PPi)로서 발생하고 연산자(SIGN)는 연산자들(0x, 1x, p2x, n2x)의 부호를 선택한다. 연산자(I_p2x)는 연산자(p2x)의 논리 레벨과 반대의 논리 레벨을 가지는 연산자이다.
도 3의 인코딩 셀(310)에서 알 수 있듯이, 연산자들(1x, p2x, n2x)은 모두 1게이트 지연만을 갖는다. 그리고 부호를 결정하는 부호 선택 연산자(SIGN)는 버퍼 지연만을 가지며 다른 연산자들(1x, p2x, n2x)이 부분적 데이터 발생부의 선택 회로(320)에 도달하기 전에 피승수 데이터의 부호 및 출력 경로를 미리 결정한다.
따라서 피승수 데이터의 부호 및 출력 경로가 결정 난 다음에 나머지 연산자(1x, p2x, n2x)에 의해 피승수 데이터가 부분적 데이터(PPi, PPi-1)로서 출력되므로 부호 선택 연산자(SIGN)에 의한 지연은 없는 것과 같다.
즉, 본 발명의 실시예에 따른 인코더(300)의 전체 지연은 버퍼를 포함하여 4게이트 지연인 것 같지만, 실질적으로는 3게이트 지연만에 부분적 데이터(PPi, PPi-1)를 발생시킬 수 있다.
도 5는 도 3의 인코딩 셀의 구조를 설명하는 회로도이다.
도 6은 도 3의 인코딩 셀의 반전 논리합 수단, 반전 논리곱 수단 및 배타적 논리합 수단의 진리표를 설명하는 도면이다.
도 5 및 도 6을 참조하면, 인코딩 셀(310)의 반전 논리합 수단(NOR31)은 제 1 및 제 2 피모스 트랜지스터(MP1, MP2)와 제 1 및 제 2 엔모스 트랜지스터(MN1, MN2)를 구비한다.
제 1 피모스 트랜지스터(MP1)는 전원 전압(VDD)에 제 1단이 연결되고 게이트에 제 1 승수 데이터(Y2j-1)가 인가된다. 제 2 피모스 트랜지스터(MP2)는 제 1 피모스 트랜지스터(MP1)의 제 2단에 제 1단이 연결되고 게이트에 제 2 승수 데이터(Y2j)가 인가되며 제 1 출력 노드(N1)에 제 2단이 연결된다.
제 1 엔모스 트랜지스터(MN1)는 제 1 출력 노드(N1)에 제 1단이 연결되고 접지 전압(VSS)에 제 2 단이 연결되며 게이트에 제 1 승수 데이터(Y2j-1)가 인가된다. 제 2 엔모스 트랜지스터(MN2)는 제 1 출력 노드(N1)에 제 1단이 연결되고 접지 전압(VSS)에 제 2 단이 연결되며 게이트에 제 2 승수 데이터(Y2j)가 인가된다.
제 1 출력 노드(N1)로부터 제 3 연산자(n2x)가 출력된다. 도 5의 505로 표시된 부분이 도 3의 인코딩 셀(310)의 반전 논리합 수단(NOR31)이다.
인코딩 셀(310)의 배타적 논리합 수단(XOR31) 및 반전 논리곱 수단(NAND31)은 제 3 내지 제 5 피모스 트랜지스터(MP3 ~ MP5)와 제 3 내지 제 6 엔모스 트랜지스터(MN3 ~ MN6)를 구비한다.
제 3 피모스 트랜지스터(MP3)는 전원 전압(VDD)에 제 1 단이 연결되고 게이트에 제 1 승수 데이터(Y2j-1)가 인가되며 제 2 출력 노드(N2)에 제 2단이 연결된다. 제 4 피모스 트랜지스터(MP4)는 전원 전압(VDD)에 제 1 단이 연결되고 게이트에 제 2 승수 데이터(Y2j)가 인가되며 제 2 출력 노드(N2)에 제 2단이 연결된다.
제 5 피모스 트랜지스터(MP5)는 제 2 출력 노드(N2)에 제 1단이 연결되고 게이트에 제 1 출력 노드(N1)가 연결되며 제 2단이 제 3 출력 노드(N3)에 연결된다.
제 3 엔모스 트랜지스터(MN3)는 접지 전압(VSS)에 제 1단이 연결되고 게이트에 제 1 출력 노드(N1)가 연결되며 제 2단이 제 3 출력 노드(N3)에 연결된다. 제 4 엔모스 트랜지스터(MN4)는 제 3 출력 노드(N3)에 제 1 단이 연결되고 게이트에 제 1 승수 데이터(Y2j-1)가 인가된다.
제 5 엔모스 트랜지스터(MN5)는 제 2 출력 노드(N2)에 제 1 단이 연결되고 게이트에 제 1 승수 데이터(Y2j-1)가 인가된다. 제 6 엔모스 트랜지스터(MN6)는 제 4 및 제 5 엔모스 트랜지스터(MN4, MN5)의 제 2단에 제 1단이 연결되고 게이트에 제 2 승수 데이터(Y2j)가 인가되며 접지 전압(VSS)에 제 2단이 연결된다.
제 2 출력 노드(N2)로부터 제 2 연산자(p2x)가 출력되고 제 3 출력 노드(N3)로부터 제 1 연산자(1x)가 출력된다.
인코딩 셀(310)은 도 5에서 알 수 있듯이 모스 트랜지스터들로 구성되어 있다. 도 6의 진리표로부터 알 수 있듯이, 제 1 승수 데이터(Y2j-1)와 제 2 승수 데이터(Y2j)가 모두 0 일 경우 배타적 논리합 수단(XOR31)의 출력은 반전 논리곱 수단(NAND31)의 출력과 반대의 논리 레벨을 가지며 그 외의 경우에는 배타적 논리합 수단(XOR31)의 출력은 반전 논리곱 수단(NAND31)의 출력과 동일하다.
따라서, 본 발명의 실시예에서는 인코더(300)의 고속 동작을 위해 배타적 논리합 수단(XOR31)을 별도로 구성하지 아니하고 반전 논리곱 수단(NAND31)과 반전 논리합 수단(NOR31)을 이용하여 배타적 논리합 수단(XOR31)을 구현한다.
즉, 도 5의 510 으로 표시된 부분의 제 5 피모스 트랜지스터(MP5)와 제 3 엔모스 트랜지스터(MN3)를 이용하여 제 3 출력 노드(N3)의 출력이 배타적 논리합 수단(XOR31)의 출력이 되도록 한다.
제 1 승수 데이터(Y2j-1)와 제 2 승수 데이터(Y2j)가 로우 레벨(즉, 0)인 경우, 제 1 출력 노드(N1)와 제 2 출력 노드(N2)는 하이 레벨(즉, 1) 신호들을 발생한다. 이때, 제 5 피모스 트랜지스터(MP5)와 제 3 엔모스 트랜지스터(MN3)에 의해서 제 3 출력 노드(N3)는 로우 레벨 신호를 발생한다.
그리고 제 1 출력 노드(N1)의 출력이 0인 경우는 제 2 출력 노드(N2)의 출력과 제 3 출력 노드(N3)의 출력이 동일하다. 즉, 반전 논리곱 수단(NAND31)의 출력이 그대로 배타적 논리합 수단(XOR31)의 출력으로서 발생된다.
따라서, 반전 논리곱 수단(NAND31)의 출력인 제 2 출력 노드(N2)의 출력으로부터 2개의 트랜지스터를 이용하여 배타적 논리합 수단(XOR31)의 출력을 생성할 수 있다.
본 발명의 실시예에 따른 인코더(300)의 부분적 데이터 발생부는 제 2 승수 데이터(Y2j)에 인접한 상위 비트인 제 3 승수 데이터(Y2j+1)를 복수개의 연산자들(1x, p2x, n2x)의 부호를 결정하는 부호 선택 연산자(SIGN)로서 수신한다.
부호 선택 연산자(SIGN)는 버퍼(B34)로부터 출력될 수 있다. 그리고, 부분적 데이터 발생부는 복수개의 선택 회로들을 구비한다.
도 3에는 복수개의 선택 회로들 중 하나의 선택 회로(320)만 도시된다. 이하에서는 인코더(300)의 부분적 데이터 발생부의 동작을 선택 회로(320)를 이용하여 설명한다.
선택 회로(320)는 제 1 선택부(330) 및 제 2 선택부(340)를 구비한다. 제 1 선택부(330)는 부호 선택 연산자(SIGN)에 응답하여 피승수 데이터 중 두 비트의 피승수 데이터(Xi, Xi-1)와 영(0) 데이터(ZERO_D)의 출력 경로를 선택한다.
제 2 선택부(340)는 제 1, 제 2 및 제 3 연산자(1x, p2x, n2x)에 응답하여 제 1 선택부(330)에서 출력되는 피승수 데이터 및 이전 선택 회로(미도시)에서 출력되는 피승수 데이터의 출력 경로를 선택하여 부분적 데이터(PPi, PPi-1)를 출력한다.
제 1 선택부(330)는 제 1 멀티플렉서(MUX1) 및 제 2 멀티플렉서(MUX2)를 구비한다. 제 1 멀티플렉서(MUX1)는 부호 선택 연산자(SIGN)에 응답하여 피승수 데이터 중 제 1 피승수 데이터(Xi-1), 제 1 피승수 데이터(Xi-1)의 2의 보수인 제 1 반전 피승수 데이터(Xi-1b) 및 영(0) 데이터(ZERO_D)의 출력 경로를 선택하여 제 1 내지 제 3 출력(1x1, p2x2, n2x3)으로서 발생한다.
제 2 멀티플렉서(MUX2)는 부호 선택 연산자(SIGN)에 응답하여 제 1 피승수 데이터(Xi-1)와 인접한 상위 비트인 제 2 피승수 데이터(Xi), 제 2 피승수 데이터(Xi)의 2의 보수인 제 2 반전 피승수 데이터(Xib) 및 영(0) 데이터(ZERO_D)의 출력 경로를 선택하여 제 4 내지 제 6 출력(1x4, p2x5, n2x6)으로서 발생한다.
도 7(a)는 도 3의 제 2 멀티플렉서를 나타내는 도면이다.
도 7(b)는 도 7(a)의 제 2 멀티플렉서의 구조를 설명하는 도면이다.
제 2 멀티플렉서(MUX2)는 제 1 인버터(I71) 및 제 1 내지 제 6 스위치(SW1~ SW6)를 구비한다.
제 1 인버터(I71)는 부호 선택 연산자(SIGN)를 반전시켜 반전 부호 선택 연산자(I_SIGN)를 발생한다. 제 1 스위치(SW1)는 반전 부호 선택 연산자(I_SIGN)에 응답하여 제 2 피승수 데이터(Xi)를 제 4 출력(1x4)으로서 발생하거나 차단시킨다.
제 2 스위치(SW2)는 상기 반전 부호 선택 연산자(I_SIGN)에 응답하여 제 2 피승수 데이터(Xi)를 제 5 출력(p2x5)으로서 발생하거나 차단시킨다. 제 3 스위치(SW3)는 반전 부호 선택 연산자(I_SIGN)에 응답하여 상기 영(0) 데이터(ZERO_D)를 제 6 출력(n2x6)으로서 발생하거나 차단시킨다.
제 4 스위치(SW4)는 부호 선택 연산자(SIGN)에 응답하여 제 2 반전 피승수 데이터(Xib)를 제 4 출력(1x4)으로서 발생하거나 차단시킨다. 제 5 스위치(SW5)는 부호 선택 연산자(SIGN)에 응답하여 영(0) 데이터(ZERO_D)를 제 5 출력(p2x5)으로서 발생하거나 차단시킨다.
제 6 스위치(SW6)는 부호 선택 연산자(SIGN)에 응답하여 제 2 반전 피승수 데이터(Xib)를 제 6 출력(n2x6)으로서 발생하거나 차단시킨다.
도 7(b)를 참조하면, 부호 선택 연산자(SIGN)가 "0"인 경우 반전 부호 선택 연산자(I_SIGN)는 "1"이 된다. 그러면 제 1 스위치(SW1)와 제 2 스위치(SW2) 및 제 3 스위치(SW3)가 연결되고 제 4 내지 제 6 스위치(SW4, SW5, S7)는 차단된다.
따라서, 제 4 출력(1x4)의 값은 제 2 피승수 데이터(Xi)가 되고 제 5 출력(p2x5)의 값도 제 2 피승수 데이터(Xi)가 되며 제 6 출력(n2x6)의 값은 영 데이터(ZERO_D)가 된다.
반대로, 부호 선택 연산자(SIGN)가 "1"인 경우 반전 부호 선택 연산자(I_SIGN)는 "0"이 된다. 그러면 제 1 스위치(SW1)와 제 2 스위치(SW2) 및 제 3 스위치(SW3)는 차단되고 제 4 내지 제 6 스위치(SW4, SW5, S7)는 연결된다.
따라서, 제 4 출력(1x4)의 값은 제 2 반전 피승수 데이터(Xib)가 되고 제 5 출력(p2x5)의 값은 영 데이터(ZERO_D)가 되며 제 6 출력(n2x6)의 값은 제 2 반전 피승수 데이터(Xib)가 된다.
제 1 멀티플렉서(MUX1)는 제 2 멀티플렉서(MUX2)와 동일한 구조를 가진다.
즉, 부호 선택 연산자(SIGN)가 "0"인 경우 제 1 멀티플렉서(MUX1)의 제 1 스위치(SW1)와 제 2 스위치(SW2) 및 제 3 스위치(SW3)가 연결되고 제 4 내지 제 6 스위치(SW4, SW5, S7)는 차단된다.
따라서, 제 1 출력(1x1)의 값은 제 1 피승수 데이터(Xi-1)가 되고 제 2 출력(p2x2)의 값도 제 1 피승수 데이터(Xi-1)가 되며 제 3 출력(n2x3)의 값은 영 데이터(ZERO_D)가 된다.
반대로, 부호 선택 연산자(SIGN)가 "1"인 경우 제 1 스위치(SW1)와 제 2 스위치(SW2) 및 제 3 스위치(SW3)는 차단되고 제 4 내지 제 6 스위치(SW4, SW5, S7)는 연결된다.
따라서, 제 1 출력(1x1)의 값은 제 1 반전 피승수 데이터(Xi-1b)가 되고 제 2 출력(p2x2)의 값은 영 데이터(ZERO_D)가 되며 제 3 출력(n2x3)의 값은 제 1 반전 피승수 데이터(Xi-1b)가 된다.
이와 같이 본 발명의 실시예에 따른 인코더(300)는 부호 선택 연산자(SIGN)에 의하여 피승수 데이터의 경로를 선택하여 제 1 내지 제 6 출력(1x1, p2x2, n2x3, 1x4, p2x5, n2x6)을 발생하는 연산과정이 하나의 멀티플렉서의 지연 시간동안 수행된다.
그리고 제 1 내지 제 6 출력(1x1, p2x2, n2x3, 1x4, p2x5, n2x6)이 발생되는 시점이 연산자들(1x, p2x, n2x)이 출력되는 시점과 동일하다. 즉, 부호 선택 연산자(SIGN)가 연산자들(1x, p2x, n2x)을 구하는 연산 과정에 의한 지연 시간에 영향을 주지 않는다.
제 2 선택부(340)의 제 3 멀티플렉서(MUX3)는 제 1 내지 제 3 연산자(1x, p2x, n2x)에 응답하여 제 1 멀티플렉서(MUX1)의 제 1 출력(1x1) 및 이전 선택 회로(미도시)에서 출력되는 피승수 데이터의 출력 경로를 선택하여 제 1 부분적 데이터(PPi-1)로서 출력한다.
제 4 멀티플렉서(MUX4)는 제 1 내지 제 3 연산자(1x, p2x, n2x)에 응답하여 제 2 멀티플렉서(MUX2)의 제 4 출력(1x4), 제 1 멀티플렉서(MUX1)의 제 2 및 제 3 출력(p2x2, n2x3)의 출력 경로를 선택하여 제 2 부분적 데이터(PPi)로서 출력한다.
도 8(a)는 도 3의 제 4 멀티플렉서를 나타내는 도면이다.
도 8(b)는 도 8(a)의 제 4 멀티플렉서의 구조를 설명하는 도면이다.
도 8(b)를 참조하면, 제 4 멀티플렉서(MUX4)는 제 2 인버터(I81) 및 제 7 내지 제 9 스위치(SW7, SW8, SW9)를 구비한다.
제 2 인버터(I81)는 제 2 연산자(p2x)를 반전시켜 제 2 반전 연산자를(I_p2x) 발생한다. 제 7 스위치(SW7)는 제 1 연산자(1x)에 응답하여 제 4 출력(1x4)을 제 2 부분적 데이터(PPi)로서 발생하거나 차단시킨다.
제 8 스위치(SW8)는 제 2 반전 연산자(I_p2x)에 응답하여 제 2 출력(p2x)을 제 2 부분적 데이터(PPi0로서 발생하거나 차단시킨다. 제 9 스위치(SW9)는 제 3 연산자(n2x)에 응답하여 제 3 출력(n2x3)을 제 2 부분적 데이터(PPi)로서 발생하거나 차단시킨다.
제 2 선택부(340)는 부호 선택 연산자(SIGN)에 의해 제 1 선택부(330)에서 선택되어진 피승수 데이터들을 연산자들(1x, p2x, n2x)에 응답하여 부분적 데이터(PPi-1, PPi)로서 출력한다.
제 7 내지 제 9 스위치(SW7, SW8, SW9) 중 하나의 스위치만 연결되도록 하기 위하여 제 1 연산자(1x), 제 2 반전 연산자(I_p2x) 및 제 3 연산자(n2x) 중 하나의 연산자만 하이 레벨로 발생된다.
제 1 연산자(1x)는 제 4 출력(1x4)의 값을 선택하고 제 2 반전 연산자(I_p2x)는 제 2 출력(p2x2)의 값을 선택하며 제 3 연산자는(n2x)는 제 3 출력(n2x3)의 값을 선택하여 제 2 부분적 데이터(PPi)로서 출력한다.
도 8(a) 및 도 8(b)에 도시된 제 4 멀티플렉서(MUX4)의 구조는 제 3 멀티플렉서(MUX3)와 동일한 구조를 가지므로 제 3 멀티플렉서(MUX3)에 의해서 제 1 부분적 데이터(PPi-1)가 출력되는 동작의 상세한 설명은 생략한다.
본 발명의 실시예에 따른 인코더(300)는 부호 선택 연산자(SIGN)를 다른 연산자들(1x, p2x, n2x) 보다 먼저 발생시켜 피승수 데이터의 부호가 미리 결정 난 상태에서 부분적 데이터 발생부의 선택 회로(320)로부터 부분적 데이터(PPi-1, PPi)가 생성되도록 함으로써 인코더(300)의 동작 속도를 향상시킬 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다.
그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 인코더는 부호를 선택하는 연산자를 다른 연산자들 보다 먼저 발생하도록 하여 인코더의 동작 속도를 빠르게 하는 장점이 잇다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1(a)는 부스 알고리즘을 이용한 종래의 곱셈기의 인코더 셀을 나타내는 도면이다.
도 1(b)는 부스 알고리즘을 이용한 종래의 곱셈기의 부분적 셀을 나타내는 도면이다.
도 2(a)는 부스 알고리즘을 이용한 종래의 다른 곱셈기의 인코더 셀을 나타내는 도면이다.
도 2(b)는 부스 알고리즘을 이용한 종래의 다른 곱셈기의 부분적 셀을 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 인코더를 나타내는 회로도이다.
도 4는 도 3의 인코더의 복수개의 연산자들을 설명하는 표이다.
도 5는 도 3의 인코딩 셀의 구조를 설명하는 회로도이다.
도 6은 도 3의 인코딩 셀의 반전 논리합 수단, 반전 논리곱 수단 및 배타적 논리합 수단의 진리표를 설명하는 도면이다.
도 7(a)는 도 3의 제 2 멀티플렉서를 나타내는 도면이다.
도 7(b)는 도 7(a)의 제 2 멀티플렉서의 구조를 설명하는 도면이다.
도 8(a)는 도 3의 제 4 멀티플렉서를 나타내는 도면이다.
도 8(b)는 도 8(a)의 제 4 멀티플렉서의 구조를 설명하는 도면이다.

Claims (10)

  1. 복수 비트의 승수(multiplier) 데이터와 복수 비트의 피승수(multiplicand) 데이터를 곱하는 곱셈기의 인코더에 있어서,
    상기 승수 데이터를 인코딩 하여 복수개의 연산자들을 출력하는 연산자 발생부 ; 및
    상기 피승수 데이터를 수신하고 상기 승수 데이터 중 1비트 데이터와 상기 복수개의 연산자들에 응답하여 복수 비트의 부분적(partial product) 데이터를 출력하는 부분적 데이터 발생부를 구비하고,
    상기 연산자 발생부는,
    복수개의 인코딩 셀들을 구비하고,
    상기 각각의 인코딩 셀은,
    상기 복수 비트의 승수 데이터 중 인접한 두 비트의 데이터를 인코딩 하여 상기 복수개의 연산자들을 출력하는 것을 특징으로 하는 인코더.
  2. 제 1항에 있어서, 상기 인코딩 셀은,
    상기 복수 비트의 승수 데이터 중 제 1 승수 데이터와 상기 제 1 승수 데이터에 인접한 상위 비트인 제 2 승수 데이터를 배타적 논리합 하여 제 1 연산자를 출력하는 배타적 논리합 수단 ;
    상기 제 1 승수 데이터와 상기 제 2 승수 데이터를 반전 논리곱 하여 제 2 연산자를 출력하는 반전 논리곱 수단 ; 및
    상기 제 1 승수 데이터와 상기 제 2 승수 데이터를 반전 논리합 하여 제 3 연산자를 출력하는 반전 논리합 수단을 구비하는 것을 특징으로 하는 인코더.
  3. 제 2항에 있어서, 상기 인코딩 셀의 상기 반전 논리합 수단은,
    전원 전압에 제 1단이 연결되고 게이트에 상기 제 1 승수 데이터가 인가되는 제 1 피모스 트랜지스터 ;
    상기 제 1 피모스 트랜지스터의 제 2단에 제 1단이 연결되고 게이트에 상기 제 2 승수 데이터가 인가되며 제 1 출력 노드에 제 2단이 연결되는 제 2 피모스 트랜지스터 ;
    상기 제 1 출력노드에 제 1단이 연결되고 접지 전압에 제 2 단이 연결되며 게이트에 상기 제 1 승수 데이터가 인가되는 제 1 엔모스 트랜지스터 ; 및
    상기 제 1 출력노드에 제 1단이 연결되고 상기 접지 전압에 제 2 단이 연결되며 게이트에 상기 제 2 승수 데이터가 인가되는 제 2 엔모스 트랜지스터를 구비하며,
    상기 제 1 출력 노드로부터 상기 제 3 연산자가 출력되는 것을 특징으로 하는 인코더.
  4. 제 3항에 있어서, 상기 배타적 논리합 수단 및 상기 반전 논리곱 수단은,
    상기 전원 전압에 제 1 단이 연결되고 게이트에 상기 제 1 승수 데이터가 인가되며 제 2 출력 노드에 제 2단이 연결되는 제 3 피모스 트랜지스터 ;
    상기 전원 전압에 제 1 단이 연결되고 게이트에 상기 제 2 승수 데이터가 인가되며 상기 제 2 출력 노드에 제 2단이 연결되는 제 4 피모스 트랜지스터 ;
    상기 제 2 출력 노드에 제 1단이 연결되고 게이트에 상기 제 1 출력 노드가 연결되며 제 2단이 제 3 출력 노드에 연결되는 제 5 피모스 트랜지스터 ;
    상기 접지 전압에 제 1단이 연결되고 게이트에 상기 제 1 출력 노드가 연결되며 제 2단이 상기 제 3 출력 노드에 연결되는 제 3 엔모스 트랜지스터 ;
    상기 제 3 출력 노드에 제 1 단이 연결되고 게이트에 상기 제 1 승수 데이터가 인가되는 제 4 엔모스 트랜지스터 ;
    상기 제 2 출력 노드에 제 1 단이 연결되고 게이트에 상기 제 1 승수 데이터가 인가되는 제 5 엔모스 트랜지스터 ; 및
    상기 제 4 및 제 5 엔모스 트랜지스터의 제 2단에 제 1단이 연결되고 게이트에 상기 제 2 승수 데이터가 인가되며 상기 접지 전압에 제 2단이 연결되는 제 6 엔모스 트랜지스터를 구비하고,
    상기 제 2 출력 노드로부터 상기 제 2 연산자가 출력되고 상기 제 3 출력 노드로부터 상기 제 1 연산자가 출력되는 것을 특징으로 하는 인코더.
  5. 제 2항에 있어서, 상기 제 1 연산자는,
    상기 피승수 데이터를 그대로 상기 부분적 데이터로서 나타내고, 상기 제 2 연산자는 상기 피승수 데이터를 상위 비트 방향으로 1 비트씩 쉬프트 시킨 데이터를 상기 부분적 데이터로서 나타내고,
    상기 제 3 연산자는 상기 제 2 연산자에 대응되는 상기 부분적 데이터의 2의 보수를 상기 부분적 데이터로서 나타내는 것을 특징으로 하는 인코더.
  6. 제 2항에 있어서, 상기 부분적 데이터 발생부는,
    상기 제 2 승수 데이터에 인접한 상위 비트인 제 3 승수 데이터를 상기 복수개의 연산자들의 부호를 결정하는 부호 선택 연산자로서 수신하고,
    복수개의 선택 회로들을 구비하며,
    상기 각각의 선택 회로는,
    상기 부호 선택 연산자에 응답하여 상기 피승수 데이터 중 두 비트의 피승수 데이터와 영(0) 데이터의 출력 경로를 선택하는 제 1 선택부 ; 및
    상기 제 1, 제 2 및 제 3 연산자에 응답하여 상기 제 1 선택부에서 출력되는 상기 피승수 데이터 및 이전 선택 회로에서 출력되는 피승수 데이터의 출력 경로를 선택하여 상기 부분적 데이터를 출력하는 제 2 선택부를 구비하는 것을 특징으로 하는 인코더.
  7. 제 6항에 있어서, 상기 제 1 선택부는,
    상기 부호 선택 연산자에 응답하여 상기 피승수 데이터 중 제 1 피승수 데이터, 상기 제 1 피승수 데이터의 2의 보수인 제 1 반전 피승수 데이터 및 영(0) 데이터의 출력 경로를 선택하여 제 1 내지 제 3 출력으로서 발생하는 제 1 멀티플렉서 ; 및
    상기 부호 선택 연산자에 응답하여 상기 제 1 피승수 데이터와 인접한 상위 비트인 제 2 피승수 데이터, 상기 제 2 피승수 데이터의 2의 보수인 제 2 반전 피승수 데이터 및 영(0) 데이터의 출력 경로를 선택하여 제 4 내지 제 6 출력으로서 발생하는 제 2 멀티플렉서를 구비하는 것을 특징으로 하는 인코더.
  8. 제 7항에 있어서, 상기 제 2 멀티플렉서는,
    상기 부호 선택 연산자를 반전시켜 반전 부호 선택 연산자를 발생하는 제 1 인버터 ;
    상기 반전 부호 선택 연산자에 응답하여 상기 제 2 피승수 데이터를 상기 제 4 출력으로서 발생하거나 차단시키는 제 1 스위치 ;
    상기 반전 부호 선택 연산자에 응답하여 상기 제 2 피승수 데이터를 상기 제 5 출력으로서 발생하거나 차단시키는 제 2 스위치 ;
    상기 반전 부호 선택 연산자에 응답하여 상기 영(0) 데이터를 상기 제 6 출력으로서 발생하거나 차단시키는 제 3 스위치 ;
    상기 부호 선택 연산자에 응답하여 상기 제 2 반전 피승수 데이터를 상기 제 4 출력으로서 발생하거나 차단시키는 제 4 스위치 ;
    상기 부호 선택 연산자에 응답하여 상기 영(0) 데이터를 상기 제 5 출력으로서 발생하거나 차단시키는 제 5 스위치 ; 및
    상기 부호 선택 연산자에 응답하여 상기 제 2 반전 피승수 데이터를 상기 제 6 출력으로서 발생하거나 차단시키는 제 6 스위치를 구비하고,
    상기 제 1 멀티플렉서는,
    상기 제 2 멀티플렉서와 동일한 구조를 가지는 것을 특징으로 하는 인코더.
  9. 제 7항에 있어서, 상기 제 2 선택부는,
    상기 제 1 내지 제 3 연산자에 응답하여 상기 제 1 멀티플렉서의 제 1 출력 및 이전 선택 회로에서 출력되는 피승수 데이터의 출력 경로를 선택하여 제 1 부분적 데이터로서 출력하는 제 3 멀티플렉서 ; 및
    상기 제 1 내지 제 3 연산자에 응답하여 상기 제 2 멀티플렉서의 제 4 출력, 상기 제 1 멀티플렉서의 제 2 및 제 3 출력의 출력 경로를 선택하여 제 2 부분적 데이터로서 출력하는 제 4 멀티플렉서를 구비하는 것을 특징으로 하는 인코더.
  10. 제 9항에 있어서, 상기 제 4 멀티플렉서는,
    상기 제 2 연산자를 반전시켜 제 2 반전 연산자를 발생하는 제 2 인버터 ;
    상기 제 1 연산자에 응답하여 상기 제 4 출력을 상기 제 2 부분적 데이터로서 발생하거나 차단시키는 제 7 스위치 ;
    상기 제 2 반전 연산자에 응답하여 상기 제 2 출력을 상기 제 2 부분적 데이터로서 발생하거나 차단시키는 제 8 스위치 ; 및
    상기 제 3 연산자에 응답하여 상기 제 3 출력을 상기 제 2 부분적 데이터로서 발생하거나 차단시키는 제 9 스위치를 구비하고,
    상기 제 4 멀티플렉서는,
    상기 제 3 멀티플렉서와 동일한 구조를 가지는 것을 특징으로 하는 인코더.
KR1020040009628A 2004-02-13 2004-02-13 부스 알고리즘을 이용한 곱셈기의 인코더 KR20050081407A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040009628A KR20050081407A (ko) 2004-02-13 2004-02-13 부스 알고리즘을 이용한 곱셈기의 인코더
US11/054,954 US7519648B2 (en) 2004-02-13 2005-02-11 Encoder for a multiplier
JP2005036845A JP4638253B2 (ja) 2004-02-13 2005-02-14 ブースアルゴリズムを利用した乗算器のエンコーダ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040009628A KR20050081407A (ko) 2004-02-13 2004-02-13 부스 알고리즘을 이용한 곱셈기의 인코더

Publications (1)

Publication Number Publication Date
KR20050081407A true KR20050081407A (ko) 2005-08-19

Family

ID=34836737

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040009628A KR20050081407A (ko) 2004-02-13 2004-02-13 부스 알고리즘을 이용한 곱셈기의 인코더

Country Status (3)

Country Link
US (1) US7519648B2 (ko)
JP (1) JP4638253B2 (ko)
KR (1) KR20050081407A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100953342B1 (ko) * 2007-12-27 2010-04-20 주식회사 동부하이텍 곱셈기의 인코더
KR100958965B1 (ko) * 2006-09-29 2010-05-20 인텔 코오퍼레이션 어드레스 가능 위치로부터의 인코딩된 데이터에 기반한승수 곱 생성
KR101861550B1 (ko) * 2012-02-29 2018-05-29 삼성전자주식회사 다항식 연산을 위한 부분적 발생 장치 및 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797365B2 (en) * 2006-06-27 2010-09-14 International Business Machines Corporation Design structure for a booth decoder
US7797364B2 (en) * 2006-06-27 2010-09-14 International Business Machines Corporation Booth decoder apparatus and method
US10756753B2 (en) * 2018-10-25 2020-08-25 Arm Limited Data compressor logic circuit

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6225326A (ja) * 1985-07-25 1987-02-03 Toshiba Corp 半加算器
JPH07160476A (ja) * 1993-12-09 1995-06-23 Hitachi Ltd 部分積生成回路
KR970071248A (ko) 1996-04-10 1997-11-07 문정환 병렬곱셈기
US6065032A (en) 1998-02-19 2000-05-16 Lucent Technologies Inc. Low power multiplier for CPU and DSP
US6301599B1 (en) * 1999-03-29 2001-10-09 Sony Corporation Of Japan Multiplier circuit having an optimized booth encoder/selector
US6622154B1 (en) * 1999-12-21 2003-09-16 Lsi Logic Corporation Alternate booth partial product generation for a hardware multiplier
JP2002323346A (ja) 2001-04-25 2002-11-08 Yaskawa Electric Corp エンコーダ
US7024445B2 (en) * 2001-12-20 2006-04-04 Analog Devices, Inc. Method and apparatus for use in booth-encoded multiplication
US20030158880A1 (en) * 2002-02-13 2003-08-21 Ng Kenneth Y. Booth encoder and partial products circuit
US6978426B2 (en) * 2002-04-10 2005-12-20 Broadcom Corporation Low-error fixed-width modified booth multiplier
JP3663186B2 (ja) * 2002-06-10 2005-06-22 日本テキサス・インスツルメンツ株式会社 部分積生成回路および乗算器
US7308471B2 (en) * 2003-03-28 2007-12-11 Arithmatica Limited Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding
US7308470B2 (en) * 2003-12-05 2007-12-11 Intel Corporation Smaller and lower power static mux circuitry in generating multiplier partial product signals

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100958965B1 (ko) * 2006-09-29 2010-05-20 인텔 코오퍼레이션 어드레스 가능 위치로부터의 인코딩된 데이터에 기반한승수 곱 생성
US8078662B2 (en) 2006-09-29 2011-12-13 Intel Corporation Multiplier product generation based on encoded data from addressable location
KR100953342B1 (ko) * 2007-12-27 2010-04-20 주식회사 동부하이텍 곱셈기의 인코더
KR101861550B1 (ko) * 2012-02-29 2018-05-29 삼성전자주식회사 다항식 연산을 위한 부분적 발생 장치 및 방법

Also Published As

Publication number Publication date
JP4638253B2 (ja) 2011-02-23
JP2005228349A (ja) 2005-08-25
US20050182814A1 (en) 2005-08-18
US7519648B2 (en) 2009-04-14

Similar Documents

Publication Publication Date Title
EP0827069B1 (en) Arithmetic circuit and method
Kim et al. A carry-free 54b/spl times/54b multiplier using equivalent bit conversion algorithm
US7308470B2 (en) Smaller and lower power static mux circuitry in generating multiplier partial product signals
US8495116B2 (en) Circuit and method converting boolean and arithmetic masks
US20040215686A1 (en) Montgomery modular multiplier and method thereof using carry save addition
US6904447B2 (en) High speed low power 4-2 compressor
US5487025A (en) Carry chain adder using regenerative push-pull differential logic
JP4638253B2 (ja) ブースアルゴリズムを利用した乗算器のエンコーダ
US4858168A (en) Carry look-ahead technique having a reduced number of logic levels
US3970833A (en) High-speed adder
US7620677B2 (en) 4:2 Carry save adder and 4:2 carry save adding method
US6362645B2 (en) Logic circuits and carry-lookahead circuits
US7024445B2 (en) Method and apparatus for use in booth-encoded multiplication
US20080256165A1 (en) Full-Adder Modules and Multiplier Devices Using the Same
US6003059A (en) Carry select adder using two level selectors
US7111033B2 (en) Carry save adders
KR100953342B1 (ko) 곱셈기의 인코더
US6255856B1 (en) Comparator
US7277909B2 (en) High speed adder
Chen et al. Parallel Prefix Ling Structures for Modulo 2^ n-1 Addition
US6981013B1 (en) Low power, minimal area tap multiplier
KR950009684B1 (ko) 전가산기
KR100256103B1 (ko) Cout 신호 발생용 방법 및 장치
Yellu et al. VLSI Implementation of Accuracy Configurable Radix-4 Adder for Digital Image Processing Applications
KR100265619B1 (ko) 저전력 가산기

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid