KR100866787B1 - Xor에 기반한 캐리 생성기와 이를 이용한 조건 선택가산 장치 및 그 방법 - Google Patents

Xor에 기반한 캐리 생성기와 이를 이용한 조건 선택가산 장치 및 그 방법 Download PDF

Info

Publication number
KR100866787B1
KR100866787B1 KR1020020002538A KR20020002538A KR100866787B1 KR 100866787 B1 KR100866787 B1 KR 100866787B1 KR 1020020002538 A KR1020020002538 A KR 1020020002538A KR 20020002538 A KR20020002538 A KR 20020002538A KR 100866787 B1 KR100866787 B1 KR 100866787B1
Authority
KR
South Korea
Prior art keywords
input
carry
data
unit
sum
Prior art date
Application number
KR1020020002538A
Other languages
English (en)
Other versions
KR20030062114A (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 KR1020020002538A priority Critical patent/KR100866787B1/ko
Priority to EP02254426A priority patent/EP1329803A3/en
Priority to CNB021407126A priority patent/CN1209702C/zh
Priority to US10/201,265 priority patent/US7386583B2/en
Priority to JP2002294095A priority patent/JP3682965B2/ja
Publication of KR20030062114A publication Critical patent/KR20030062114A/ko
Application granted granted Critical
Publication of KR100866787B1 publication Critical patent/KR100866787B1/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/50Adding; Subtracting
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/507Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values
    • 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/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/503Half or full adders, i.e. basic adder cells for one denomination using carry switching, i.e. the incoming carry being connected directly, or only via an inverter, to the carry output under control of a carry propagate signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4812Multiplexers

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 n 비트로 이루어진 두 입력 데이터 X0 - Xn-1, Y0 - Yn-1 의 캐리를 생성하는 캐리 생성부와 상기 입력 데이터의 합계를 발생하는 합계 발생부를 구비하는 조건 선택 가산기에 관한 것으로서, 상기 캐리 생성부는 초기 캐리를 고려하여 입력 데이터의 캐리를 계산하며, 입력 데이터 Xi 및 Yi에 기초한 데이터를 입력받기 위한 제1 입력부와; 초기 캐리를 입력받기 위한 제2 입력부와; 상기 입력 데이터 Xi 및 Yi의 배타적 논리합을 입력받는 선택부를 구비하고, 상기 선택부에 입력되는 배타적 논리합 값에 따라 상기 제1 입력부에 입력된 입력 데이터 Xi 및 Yi에 기초한 데이터 또는 상기 제2 입력부에 입력된 초기 캐리 중 어느 하나를 출력하는 적어도 하나 이상의 서브-캐리 생성부를 포함하며, 상기 합계 발생부는 상기 캐리 생성부에서 생성된 캐리를 이용하여 합계를 계산하도록 하여, 전력 소모, 칩 면적, 로직 사용, 및 지연 시간을 감소시킬 수 있도록 한다.
캐리 가산 배타적 논리합 논리곱 조건 선택

Description

XOR에 기반한 캐리 생성기와 이를 이용한 조건 선택 가산 장치 및 그 방법 {A carry generator based on XOR and an conditional select adder using the carry generator, and a method therefor}
도 1은 종래 기술에 따른 64-비트 조건 선택 가산기를 개략적으로 도시하는 블록도
도 2는 도 1에 도시된 8-비트 조건 선택 덧셈 모듈에서의 합계 발생 블록을 도시하는 블록도
도 3은 도 1에 도시된 8-비트 조건 선택 덧셈 모듈에서의 캐리 발생 블록을 도시하는 블록도
도 4는 도 1에 도시된 블록 캐리 발생 블록을 도시하는 블록도
도 5는 도 1에 도시된 전치 캐리-합계 발생 블록을 도시하는 블록도
도 6은 본 발명에 따른 64 비트 조건 선택 덧셈 모듈을 도시하는 블록도
도 7은 도 6에 도시된 전치 캐리-합계 발생 블록을 도시하는 블록도
도 8은 도 6에 도시된 8-비트 조건 선택 덧셈 모듈에서의 캐리 발생 블록을 도시하는 블록도
도 9는 도 6에 도시된 8-비트 조건 선택 덧셈 모듈에서의 합계 발생 블록을 도시하는 블록도
도 10은 도 6에 도시된 블록 캐리 발생 블록을 도시하는 블록도
본 발명은 디지털 신호 처리에 관한 것으로서, 보다 구체적으로는 연산 속도를 개선하고 전류 소모와 지연 시간을 줄일 수 있는 디지털 신호 프로세서의 조건 선택 가산기 및 그 방법에 관한 것이다.
최근 고속 DSP 내에서 연산 기능을 수행하는 경우, 고속 멀티-비트(multi-bit) 덧셈이나 곱셈 등을 위한 회로 설계 기술의 중요성이 계속 증가되고 있다. 그 중, 덧셈 연산은 덧셈 연산은 컴퓨터 시스템이나 마이크로 프로세서 등의 데이터 경로(data path) 블록의 필수적 기능 중의 하나이며, 시스템의 속도 성능에 큰 영향을 미치는 중요한 부분이다. 종래의 기술은 연산 시 전류 소모 및 지연 시간에서 만족할 만한 결과를 얻지 못했다. 또한, 최근의 초미세공정의 경우, 셀(cell) 지연시간보다 배선(wire)에 의한 지연 시간이 보다 큰 비중을 차지하므로, 가산기의 내부 배선을 감소시키도록 하는 회로를 설계하는 것이 필요하다.
도 1은 종래 64-비트 조건 선택 가산기(conditional select adder)(100)의 전체 구조를 개략적으로 도시하는 블록도이다. 도 1은 가산될 입력 값들을 분석하여 캐리를 발생하고 상기 캐리의 유무에 따른 합계를 계산하기 위한 다수 개의 조건 선택 덧셈 모듈들(110, 120, 130, 140, 150, 160, 170, 180)과 상기 조건 선택 덧셈 모듈로부터 발생된 상기 캐리들에 응답해서 상기 캐리의 유무를 판별하여 조 건 선택 덧셈 모듈로 피드백 시키기 위한 블록 캐리 발생 블록(190)을 도시한다.
조건 선택 덧셈 모듈들(110, 120, 130, 140, 150, 160, 170, 180)은, 가산된 입력 값들을 분석하여 적절한 값으로 미리 발생하여 주기 위한 캐리-합계 전치 발생 블록(112), 캐리-합계 전치 발생 블록(112)으로부터 발생된 값의 한계를 구하되 캐리의 유무에 따른 각각의 경우에 대한 합계를 구하기 위한 합계 발생 블록(114), 캐리-합계 전치 발생 블록(112)으로부터 발생된 값에 응답해서 캐리를 구하기 위한 캐리 발생 블록(116)을 포함한다.
제1 조건 선택 덧셈 모듈(110)의 캐리-합계 전치 발생 블록(112)은 제1 조건 선택 덧셈 모듈(110)에서 가산되는 입력 값들을 분석하여 적절한 값으로 미리 가산하여 준다. 이때, 합계 발생 블록(114)은 캐리가 있을 경우의 합계와 캐리가 없을 경우의 합계를 각각 발생하고, 캐리 발생 블록(116)은 제1 조건 선택 덧셈 모듈(110)의 캐리를 블록 캐리 발생 블록(190)으로 출력한다.
또한, 나머지 조건 선택 덧셈 모듈들(120, 130, 140, 150, 160, 170, 180)의 캐리-합계 전치 발생 블록들은 조건 선택 덧셈 모듈들(120, 130, 140, 150, 160, 170, 180)에서 가산되는 입력 값들을 분석하여 적절한 값으로 미리 가산하여 준다. 이때, 합계 발생 블록(114)은 캐리가 있을 경우의 합계와 캐리가 없을 경우의 합계를 각각 발생하고, 캐리 발생 블록은 조건 선택 덧셈 모듈의 캐리를 블록 캐리 발생 블록(190)으로 출력한다.
블록 캐리 발생 블록(190)은 각각의 8-비트 조건 선택 덧셈 모듈들(110, 120, 130, 140, 150, 160, 170, 180)로부터 캐리를 받아 들여 다음 단의 조건 선택 덧셈 모듈들로 캐리의 유무를 피드백한다. 그 결과, 각각의 8-비트 조건 선택 덧셈 모듈들(110, 120, 130, 140, 150, 160, 170, 180)의 합계 발생 블록으로부터 미리 계산되어진 합계들 중 캐리의 유무에 따른 적절한 합계가 선택된다.
도 2는 도 1에 도시된 8-비트 조건 선택 덧셈 모듈에서의 합계 발생 블록(114)의 구성을 도시하기 위한 블록도이다. 도 2에 도시된 합계 발생 블록(114)은 NMOS 트랜지스터 기반의 패스 트랜지스터 로직(Pass Transistor Logic: PTL)을 이용한 멀티플렉서(multiplexer)를 기본으로 하여 구성되며, 저 전력과 고속 동작을 위해 멀티플렉서의 구동 능력에 맞도록 레벨 리스토어 블록(level restore block: LRB)을 적절히 사용한다. 여기에서, 각 블록에 표시된 M은 멀티플렉서, S는 싱글(single)을, D는 더블(double)을 그리고, L은 레벨 리스토어 블록을 각각 나타낸다. 예를 들어, MS라 표시된 블록은 싱글 멀티플렉서를 의미하고, M이 레벨 리스토어 블록을 구비한 더블 멀티플렉서를 의미한다.
도 3 및 도 4는 이러한 구조를 바탕으로 설계된 캐리 발생 블록(116) 및 블록 캐리 발생 블록(190)을 도시한다.
도 1 내지 도 3에 도시된 바와 같이, 종래 기술에 따른 가산기는 캐리를 합계 생성 블록(114)과 캐리 생성 블록(116)에서 각각 계산한다. 따라서, 합계 생성 블록(114)에서 별도의 캐리 발생 로직을 추가로 설계하여야 하므로, 배선(wire)이 복잡하고 로직도 많이 사용하게 된다. 또한, 도 5에 도시된 바와 같이 종래의 가산기에서는 캐리 생성 블록(116)에서 캐리를 계산하기 위해서는 "XNOR", "XOR", "AND", "NAND", "OR", "NOR",의 논리 값들이 필요하기 때문에, 캐리-합계 전치 블 록(12)은 "XNOR", "XOR", "AND", "NAND", "OR", "NOR"와 같은 논리 게이트들을 포함하고 있으며, 따라서 입력 신호 'X,Y'의 팬-아웃(fan-out)이 많아지게 되고 배선이 복잡해지는 문제점이 있었다.
또한, 종래의 가산기는 PTL(pass transistor logic)을 기반으로 하였기 때문에, 캐리 및 합계를 계산하기 위한 배선이 복잡해지고 물리적인 배선 지연(physical wire delay) 때문에, 전체 지연 시간이 증가하고 소요 면적이 크게되는 문제점이 있다. 또한, PTL을 사용하고 있기 때문에, 항상 반전 신호를 필요로 하므로, 이로 인한 배선 및 전력 소모가 증가하는 문제점이 있었다. 또한, 도 4에 도시된 블록 캐리 발생 블록(190)에서 생성된 블록 캐리들 (BC0, BC1, BC2, BC3, BC4, BC5, BC6, BC7)은 서로 동기화되지 않은 상태로 출력되기 때문에, 결과적으로 각 모듈에서의 합계의 발생도 전혀 동기되지 않는 문제점이 있었다.
따라서, 본 발명의 목적은 상기와 같은 종래 기술의 문제점을 해결하고, 전력 소모, 칩 면적, 로직 사용, 및 지연 시간을 감소시키는 캐리 생성기 및 그 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 전력 소모, 칩 면적, 로직 사용, 및 지연 시간을 감소시키는 캐리 생성기 및 합계 생성기와 이를 이용한 조건 선택 가산기를 제공하는 것이다.
상기 기술적 과제를 해결하기 위해, 상기 본 발명의 목적을 달성하기 위하 여, 본 발명에 따른 초기 캐리를 고려하여 Xi 및 Yi의 캐리를 발생하기 위한 캐리 발생기는 입력 데이터 Xi 및 Yi에 기초한 소정의 데이터를 입력받기 위한 제1 입력부와; 상기 초기 캐리를 입력받기 위한 제2 입력부와; 상기 입력 데이터 Xi 및 Yi의 배타적 논리합을 입력받는 선택부를 구비하며, 상기 선택부에 입력되는 배타적 논리합 값에 따라 상기 제1 입력부에 입력된 입력 데이터 Xi 및 Yi에 기초한 소정의 데이터 또는 상기 제2 입력부에 입력된 초기 캐리 중 어느 하나를 선택하여 캐리로 출력하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위해, 본 발명에 따른 n 비트로 이루어진 두 입력 데이터 X0 - Xn-1, Y0 - Yn-1의 캐리를 생성하기 위한 캐리 생성기는 입력 데이터 Xi 및 Yi에 기초한 데이터를 입력받기 위한 제 1 입력부와; 초기 캐리 데이터를 입력받기 위한 제2 입력부와; 상기 입력 데이터 Xi 및 Yi의 배타적 논리합을 입력받는 선택부를 구비한 적어도 하나 이상의 제1 서브-캐리 생성부를 포함하며, 상기 제1 서브-캐리 생성부는 상기 선택부에 입력되는 배타적 논리합 값에 따라 상기 제1 입력부에 입력된 입력 데이터 Xi 및 Yi에 기초한 데이터 또는 상기 제2 입력부에 입력된 초기 캐리 데이터 중 어느 하나를 출력하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위해, 본 발명에 따른 n 비트로 이루어진 두 입력 데이터 X0 - Xn-1, Y0 - Yn-1의 캐리를 생성하는 캐리 생성부와 상기 입력 값들의 합계를 발생하는 합계 발생부를 구비하는 복수개의 덧셈 모듈과, 상기 덧셈 모듈들 로부터 발생된 캐리들에 응답해서 상기 덧셈 모듈들의 캐리 유무를 결정하여 다음 단의 덧셈 모듈로 피드백 시키기 위한 블록 캐리 발생부를 포함하는 것을 특징으로 하는 조건 선택 가산기는 입력 데이터 Xi 및 Yi에 기초한 데이터를 입력받기 위한 제 1 입력부와; 초기 캐리 데이터를 입력받기 위한 제2 입력부와; 상기 입력 데이터 Xi 및 Yi의 배타적 논리합을 입력받는 선택부를 구비하고, 상기 선택부에 입력되는 배타적 논리합 값에 따라 상기 제1 입력부에 입력된 입력 데이터 Xi 및 Yi에 기초한 데이터 또는 상기 제2 입력부에 입력된 초기 캐리 데이터 중 어느 하나를 출력하는 적어도 하나 이상의 제1 서브-캐리 생성부와; 초기 캐리 데이터를 입력받기 위한 제1 입력부와; Xi 및 Yi에 기초한 데이터를 입력받기 위한 제2 입력부와; 상기 입력 데이터 Xi 및 Yi의 배타적 부정 논리합을 입력받는 선택부를 구비하고, 상기 선택부에 입력되는 배타적 부정 논리합 값에 따라 상기 제1 입력부에 입력된 초기 캐리 데이터 또는 상기 제2 입력부에 입력된 Xi 및 Yi에 기초한 데이터 중 어느 하나를 출력하는 적어도 하나 이상의 제2 서브-캐리 생성부와; 상기 제1 및 제2 서브-캐리 생성부로부터의 출력이 입력되는 두 개의 입력부와, 소정의 선택 신호가 입력되는 선택부를 구비하고, 상기 선택부에 입력되는 선택 신호 값에 따라서 상기 입력부에 입력된 값 중 어느 하나를 출력하는 적어도 하나 이상의 캐리 선택부를 포함하는 캐리 생성부를 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위해, 본 발명에 따른 가산 장치에 사용되는, 초기 캐리를 고려하여 Xi와 Yi의 캐리를 생성하기 위한 캐리 생성 방법은 (a) 입력 데이터 Xi 및 Yi에 기초한 소정의 데이터를 계산하는 단계와, (b) 입력 데이터 Xi 및 Yi가 동일한 지 여부를 판단하는 단계와, (c) 상기 Xi 및 Yi가 동일 한 지 여부에 따라 상기 초기 캐리 또는 상기 Xi 및 Yi에 기초한 소정의 데이터를 Xi 및 Yi의 캐리로서 선택하여 출력하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위해, 본 발명에 따른 가산 장치에 사용되는, n 비트로 이루어진 두 입력 데이터 X0 ~ Xn-1, Y0 ~ Yn-1의 캐리를 발생하기 위한 캐리 생성 방법은 (a) 입력 데이터 X2i-1 및 Y2i-1에 기초하여 소정의 데이터를 계산하는 단계와, (b) 입력 데이터 X2i-2 및 Y2i-2의 제1 초기 캐리 데이터를 계산하는 단계와, (c) 입력 데이터 X2i-1 및 Y2i-1의 배타적 논리합을 계산하는 단계와, (d) 상기 계산된 입력 데이터 X2i-1 및 Y2i-1의 배타적 논리합 값에 따라 상기 입력 데이터 X 2i-1 및 Y2i-1에 기초한 데이터 또는 상기 제1 초기 캐리 데이터 중 어느 하나를 선택하여 제1 캐리를 발생하는 단계를 포함하는 것을 특징으로 한다.
이하에서는, 도 6 내지 도 3을 참조하여 본 발명에 따른 일 실시예를 설명하기로 한다.
도 6은 본 발명에 따른 64-비트 조건 선택 가산기(600)의 전체 구조를 개략적으로 도시하는 블록도이다. 도 6에 도시된 조건 선택 가산기(600)는 가산될 입 력 값들을 분석하여 캐리를 발생하고 상기 캐리의 유무에 따른 합계를 계산하기 위한 다수 개의 조건 선택 덧셈 모듈들(610, 620, 630, 640, 650, 660, 670, 680)과 상기 조건 선택 덧셈 모듈로부터 발생된 상기 캐리들에 응답해서 상기 캐리의 유무를 판별하여 다음 단의 조건 선택 덧셈 모듈로 피드백 시키기 위한 블록 캐리 발생 블록(690)을 도시한다.
조건 선택 덧셈 모듈들(610, 620, 630, 640, 650, 660, 670, 680)은, 가산된 입력 값들을 분석하여 적절한 값으로 미리 발생하여 주기 위한 캐리-합계 전치 발생 블록(612), 캐리-합계 전치 발생 블록(612)으로부터 발생된 값의 한계를 구하되 캐리의 유무에 따른 각각의 경우에 대한 합계를 구하기 위한 합계 발생 블록(614), 캐리-합계 전치 발생 블록(612)으로부터 발생된 값에 응답해서 캐리를 구하기 위한 캐리 발생 블록(616)을 포함한다.
제1 조건 선택 덧셈 모듈(610)의 캐리-합계 전치 발생 블록(612)은 제1 조건 선택 덧셈 모듈(610)에서 가산되는 입력 값들을 분석하여 적절한 값으로 미리 가산하여 준다. 이때, 합계 발생 블록(614)은 캐리가 있을 경우의 합계와 캐리가 없을 경우의 합계를 각각 발생하고, 캐리 발생 블록(616)은 제1 조건 선택 덧셈 모듈(610)의 캐리를 블록 캐리 발생 블록(690)으로 출력한다.
이때, 캐리 발생 블록(616)의 기본 동작을 살펴보면 아래 진리표와 같다.
표 1
Figure 112002001311462-pat00001
상기 진리표 표 1에 따르면 Coutn과 Cinn간에 다음과 같은 관계가 있음을 알 수 있다.
Coutn = (Xn AND Yn) ㆍ ~Cinn + (Xn OR Yn ) ㆍ Cinn
또한, 캐리 발생 블록(616)의 기본 동작을 살펴보면 아래 진리표와 같다.
표 2
Figure 112002001311462-pat00002
상기 진리표 표 2에 따른 캐리 계산을 XOR을 기준으로 생각해보면 다음과 같은 관계가 있음을 알 수 있다.
즉, XOR이 '1'인 경우, 생성되는 캐리 Coutn는 Cinn 값을 가지게 되고, XOR이 '0'인 경우에는 입력 데이터 Xn 값을 가지게 된다. 또한, XOR이 '0'인 경우에는 Coutn가 입력 데이터 Yn 값 또는 입력 데이터 Xn 및 Yn의 논리합 값을 가지도록 하더라도 결과는 동일하다.
또한, 표 2의 진리표에 따른 캐리 계산을 XNOR를 기준으로 생각해보면 다음과 같은 관계가 있음을 알 수 있다.
즉, XNOR이 '0'인 경우, Coutn는 Cinn 값을 가지게 되고, XNOR이 '1'인 경우에는 입력 데이터 X 값을 가지게 된다. 또한, XNOR이 '1'인 경우에는 Coutn가 입력 데이터 Yn 값 또는 입력 데이터 Xn 및 Yn의 논리합 값을 가지도록 하더라도 결과는 동일하다.
도 8은 상기와 같은 관계를 이용하여 설계된 캐리 발생 블록(616)을 도시한다. 즉, 캐리 발생 블록(616)은 소정 비트의 두 데이터 Xn, Yn으로부터의 배타적 부정 논리합 값 SH, 배타적 논리합 값 SL, 논리합 값 CP, 및 논리곱 값 CG를 입력받아 이로부터 캐리 전파(carry propagation) 값 CP0 및 캐리 생성(carry generation) 값 CG0을 계산하여, 블록 캐리 생성 블록(690)으로 출력한다.
또한, 캐리 발생 블록(616)은 도 8에 도시된 바와 같이 입력 데이터 X0, Y0으로부터의 캐리 전파 값 C0P 및 캐리 생성 값 C0G를 생성하여 다음 입력 데이터 X1, Y1의 캐리 전파 값 C1P 및 캐리 생성 값 C1G를 계산하기 위한 CMOS에 기반을 둔 MUX(multiplexer)들 및 합계 생성 블록(614)으로 출력한다.
본 실시예에 따른 MUX들은 하나의 선택부와 제1 입력부 및 제2 입력부를 가지며, 선택부에 입력된 선택 신호의 값이 '0'인 경우에는 제1 입력부로 입력된 신호를 선택하여 출력하고, 선택 신호의 값이 '1'인 경우에는 제2 입력부로 입력된 신호를 선택하여 출력한다.
상기 단계에서 생성된 캐리 생성 값 C0G는 캐리 생성 값 C1G를 계산하기 위해, 도 8에 도시된 바와 같이 캐리 생성 값을 출력하기 위한 서브-캐리 생성부로 기능하는 MUX(811a)의 제1 입력부로 입력되고, MUX(811a)의 제2 입력부에는 입력 데이터 X1, Y1의 논리합 값이 입력된다. MUX(811a)의 선택부에는 입력 데이터 X1 , Y1의 배타적 부정 논리합 값이 입력되고, 입력된 배타적 부정 논리합 값에 따라 제1 입력부에 입력된 캐리 생성 값 C0G와 제2 입력부에 입력된 입력 데이터 X1, Y1의 논리합 값을 선택적으로 출력한다.
본 실시예에 따르면, 입력 데이터 X1, Y1의 배타적 부정 논리합이 '0'인 경우에는 제1 입력부에 입력된 캐리 생성 값 C0G를 출력하고, 입력 데이터 X1, Y1의 배타적 부정 논리합이 '1'인 경우에는 제2 입력부에 입력된 입력 데이터 X1, Y1의 논리곱 값을 출력한다. 상기 MUX(811a)의 출력값은 입력 데이터 X1, Y1의 캐리 전파 값 C1G 값으로서 합계 발생 블록(614)으로 출력되어, 입력 데이터 X1, Y1의 합계를 계산하기 위해 사용된다.
본 발명의 또 다른 실시예에서 입력 데이터 X1, Y1의 배타적 부정 논리합이 '1'인 경우의 출력은 입력 데이터 X1, Y1, 또는 입력 데이터 X1, Y1 의 논리합 중 어느 하나이다.
또한, 생성된 캐리 전파 값 C0P는 캐리 전파 값 C1P를 계산하기 위해, 도 8에 도시된 바와 같이 캐리 전파 값을 출력하기 위한 서브-캐리 생성부로 기능하는 MUX(811b)의 제2 입력부에 입력되고, 상기 MUX(811b)에는 입력 데이터 X1, Y1의 논리곱 값이 입력된다. MUX(811b)의 선택부에는 입력 데이터 X1, Y1의 배타적 논리합이 입력되어, 입력된 배타적 논리합에 따라 입력된 입력 데이터 X1, Y1의 논리합 값과 캐리 전파 값 C0P 중 하나가 선택적으로 출력된다.
본 실시예에서는 입력 데이터 X1, Y1의 배타적 논리합이 '0'인 경우에는 제1 입력부에 입력된 입력 데이터 X1, Y1의 논리곱 값을 선택하여 출력하고, 입력 데이터 X1, Y1의 배타적 논리합이 '1'인 경우에는 제2 입력부에 입력된 캐리 전파 값 C0P를 선택하여 출력한다. 상기 MUX(811b)의 출력값은 입력 데이터 X1, Y1의 캐리 전파 값 C1P 값으로서 합계 발생 블록(614)으로 출력되어, 입력 데이터 X1, Y1 의 합계를 계산하기 위해 사용된다.
본 발명의 또 다른 실시예에서 입력 데이터 X1, Y1의 배타적 논리합이 '0'인 경우의 출력은 입력 데이터 X1, Y1, 또는 입력 데이터 X1, Y1 의 논리합 중 어느 하나이다.
마찬가지로, 상기에서 생성된 캐리 전파 값 C1P 및 캐리 생성 값 C1G는 입력 데이터 X2, Y2, X3, 및 Y3의 캐리 전파 C3P 및 캐리 생성 C3G를 계산하기 위한 MUX들(813a,813b) 및 합계 생성 블록(614)으로 출력된다.
또한, 전체 캐리-합계 생성 블록(612)에서 생성된 입력 데이터 X2, Y2로부터의 캐리 전파 값 CP 및 캐리 생성 값 CG는 다음 입력 데이터 X3, Y3의 캐리 전파 C3P 및 캐리 생성 C3G를 계산하기 위한 MUX들(812a,812b)로 출력된다.
상기 단계에서 생성된 캐리 생성 값 CG는 MUX(812a)의 제1 입력부로 입력되고, MUX(812a)의 제2 입력부에는 입력 데이터 X3, Y3의 논리합 값이 함께 입력된다. MUX(92b)의 선택부에는 입력 데이터 X1, Y1의 배타적 부정 논리합 값이 입력되고, 입력된 배타적 부정 논리합 값에 따라 제1 입력부에 입력된 캐리 생성 값과 제2 입력부에 입력된 입력 데이터 X3, Y3의 논리곱 값을 선택적으로 출력한다.
본 실시예에서는 입력 데이터 X3, Y3의 배타적 부정 논리합이 '0'인 경우에는 제1 입력부에 입력된 캐리 생성 값을 출력하고, 입력 데이터 X3, Y3의 배타적 부정 논리합이 1인 경우에는 제2 입력부에 입력된 입력 데이터 X3, Y3의 논리곱 값을 출력한다.
또한, 생성된 X2, Y2의 캐리 전파 값 CP는 MUX(812b)의 제2 입력부로 입력되고, 상기 MUX(812b)의 제1 입력부에는 입력 데이터 X1, Y1의 논리곱 값이 함께 입력 된다. MUX(812b)의 선택부에는 입력 데이터 X3, Y3의 배타적 논리합이 입력되어, 입력된 배타적 부정 논리합 값에 따라 제1 입력부에 입력된 입력 데이터 X3, Y3의 논리곱 값과 제2 입력부에 입력된 X2, Y2의 캐리 전파 값 중 하나를 선택적으로 출력한다.
본 실시예에서는 입력 데이터 X3, Y3의 배타적 논리합이 '0'인 경우에는 제1 입력부에 입력된 입력 데이터 X3, Y3의 논리곱 값을 선택하여 출력하고, 입력 데이터 X3, Y3의 배타적 부정 논리합이 '1'인 경우에는 제2 입력부에 입력된 캐리 전파 값을 선택하여 출력한다.
본 발명의 또 다른 실시예에서 입력 데이터 X1, Y1의 배타적 논리합이 '0'인 경우의 출력은 입력 데이터 X3, Y3, 또는 입력 데이터 X3, Y3의 논리합 중 어느 하나이다.
또한, MUX(811a)에서 출력된 캐리 생성값 C1G는 캐리 생성값 C3G를 생성하기 위한 MUX(813b)의 선택부에 선택 신호로서 입력된다. MUX(813b)의 두 입력부에는 상기 MUX(812a)로부터의 출력 및 상기 MUX(812b)로부터의 출력이 각각 입력된다. 본 실시예에서는 MUX(813b)에 입력되는 선택 신호 C1G의 값이 '0'인 경우, MUX(813b)는 제1 입력부에 입력된 MUX(812a)로부터 출력되는 신호를 선택하여 입력 신호 X2, Y2, X3, Y3에 대한 캐리 생성값 C3G로서 출력한다. 또한, MUX(813b)에 입력되는 선택 신호 C1G의 값이 '1'인 경우, MUX(813b)는 제2 입력부에 입력된 MUX(812b)로부터 출력되는 신호를 선택하여 입력 신호 X2, Y2, X3, Y3 에 대한 캐리 생성값 C3G로서 출력한다. 출력된 캐리 생성값 C3G는 합계 생성 블록(614) 및 MUX(815b)로 출력된다.
또한, MUX(811b)에서 출력된 캐리 생성값 C1P는 캐리 전파값 C3P를 생성하기 위한 MUX(813a)의 선택부에 선택 신호로서 입력된다. MUX(813a)의 두 입력부에는 상기 MUX(812a)로부터의 출력 및 상기 MUX(812b)로부터의 출력이 각각 입력된다. 본 실시예에서는 MUX(813a)에 입력되는 선택 신호 C1P의 값이 '0'인 경우, MUX(813a)는 제1 입력부에 입력된 MUX(812a)로부터 출력되는 신호를 선택하여 입력 신호 X2, Y2, X3, Y3에 대한 캐리 전파값 C3G로서 출력한다. 또한, MUX(813a)에 입력되는 선택 신호 C1G의 값이 '1'인 경우, MUX(813b)는 MUX(812b)로부터 출력되는 신호를 선택하여 입력 신호 X2, Y2, X3, Y3에 대한 캐리 생성값 C3G로서 출력한다. 출력된 캐리 생성값 C3G는 합계 생성 블록(614) 및 MUX(915b)로 보내어진다.
상기에서 생성된 캐리 전파 값 C3P 및 캐리 생성 값 C3G는 다음 입력 데이터 X4, Y4, X5, 및 Y5의 캐리 전파 C5P 및 캐리 생성 C5G를 계산하기 위한 MUX들(815a, 815b) 및 합계 생성 블록(614)으로 출력된다. 또한, 계산된 캐리 전파 C3P 및 캐리 생성 C3G는 캐리 발생 블록의 캐리 전파 값 CP 및 캐리 생성 값 CG를 계산하기 위한 MUX(818a, 818b)로 출력되고, 계산된 CP 및 CG는 블록 캐리 발생 블록 (690)으로 출력된다.
여기에서, MUX들 (814a 내지 818b)는 도 8에 도시된 대응하는 MUX들과 동일 한 기능을 수행한다.
이와 같이, 도 8에 따른 캐리 발생 블록(616)은 NAND 및 NOR를 사용하지 않고, XOR 및 XNOR에 기반을 두어 캐리를 계산하도록 함으로써, 종래 기술에 비해 게이트 카운트 및 내부 배선을 줄일 수 있게 되어, 이에 따라 지연 시간, 칩 면적, 및 전력 소모 등을 감소시키는 효과가 있다.
또한, 합계 발생 블록(614)의 기본 동작은 상기 진리표 2와 같이 이루어진다. 합계 발생 블록(614)은 캐리-합계 전치 블록(612)으로부터의 소정 비트의 두 데이터 Xn, Yn으로부터의 배타적 부정 논리합 값 SH, 배타적 논리합 값 SL, 논리합 값 CP, 및 논리곱 값 CG와, 캐리 발생 블록(616)으로부터의 캐리 전파 값들 (C0P, C1P, C2P, C3P) 및 캐리 생성 값들 (C0G, C1G, C 2G, C3G)을 입력받아, 상기 진리표 표 2에 따라 합계를 출력한다.
상기 진리표 표 2에 따르면, 입력 캐리 값과 합계는 다음과 같은 관계가 있다.
Sn = (Xn XOR Yn) ㆍ ~ Cinn + (Xn XNOR Yn ) ㆍ Cinn
즉, 입력 캐리 값이 '0'인 경우에는 합계 Sn은 입력 데이터 Xn 및 Yn의 배타적 논리합이고, 입력 캐리 값이 '1'인 경우에는 합계 Sn은 Xn 및 Yn의 배타적 부정 논리합이라는 관계가 성립한다.
도 9는 상기 관계를 이용하여 설계된 합계 발생 블록(614)을 도시한다. 합 계 발생 블록(614)은 캐리-합계 전치 발생 블록(612)으로부터 입력되는 소정 비트의 두 데이터 Xn, Yn 각각에 대한 배타적 부정 논리합 값 SH, 배타적 논리합 값 SL, 논리합 값 CP, 및 논리곱 값 CG와, 캐리 발생 블록(616)으로부터 입력되는 캐리 전파 값들 (C0P, C1P, C2P, C3P) 및 캐리 생성 값들 (C0 G, C1G, C2G, C3G)에 기초하여 두 데이터 Xn (X0, X1, X2, X3, X4, X5, X6, X7) 및 Yn (Y0, Y1, Y2 , Y3, Y4, Y5, Y6, Y7)의 캐리 유무에 따른 두 가지 경우의 합계를 구하여, 캐리 유무에 따라 도 9에 도시된 합계 생성 블록(614)의 합계 선택부 (1010)내의 MUX에 의해 각 경우의 합계 Sn (S0, S1, S2, S3, S4, S5, S6, S7)을 출력한다.
도 9를 참조하여, 합계 생성 블록(614)의 동작을 보다 구체적으로 살펴보면, 입력 데이터 X0 및 Y0의 배타적 논리합 SL 및 배타적 부정 논리합 SH는 합계 선택 블록(1010)의 MUX에 각각 입력되어 합계 선택 블록(920)에 입력되는 캐리 입력 신호 Cin 값에 따라 선택적으로 출력된다. 본 실시예에서는 캐리 입력 신호 Cin이 '0'인 경우에는 입력 데이터 X0 및 Y0의 배타적 논리합 SL을 선택하고, 캐리 입력 신호 Cin이 '1'인 경우에는 입력 데이터 X0 및 Y0의 배타적 부정 논리합 SH를 선택하여 입력 데이터 X0 및 Y0에 대한 합계 S0로서 출력한다.
또한, 입력 데이터 X1 및 Y1에 대한 합계 S1은 아래와 같은 방식으로 계산된다.
MUX(910a)의 두 개의 입력부에는 입력 데이터 X1 및 Y1의 배타적 논리합 SL 및 배타적 부정 논리합 SH가 각각 입력되고, MUX(910a)의 선택부에는 선택신호로서 기능하는 캐리 생성 블록(616)에서 생성된 캐리 전파 값 C0P가 입력되어, 입력된 캐리 전파 값 C0P 값에 따라 입력된 입력 데이터 X1 및 Y1의 배타적 논리합 SL 및 배타적 부정 논리합 SH 중 하나를 선택적으로 출력한다. 본 실시예에서는 입력된 캐리 전파 값 C0P가 '0'인 경우에는 입력 데이터 X1 및 Y1의 배타적 논리합 SL을 선택하고, 캐리 전파 값 C0P가 '1'인 경우에는 입력 데이터 X1 및 Y1의 배타적 부정 논리합 SH를 선택하여 합계 선택부(1010)로 출력한다.
또한, MUX(910b)의 두 개의 입력부에는 입력 데이터 X1 및 Y1의 배타적 논리합 SL 및 배타적 부정 논리합 SH가 각각 입력되고, MUX(910b)의 선택부에는 선택신호로서 기능하는 캐리 생성 블록(616)에서 생성된 캐리 생성 값 C0G가 입력되어, MUX(910b)에 입력되는 캐리 생성 값 C0G 값에 따라 입력된 입력 데이터 X1 및 Y1의 배타적 논리합 SL 및 배타적 부정 논리합 SH 중 하나를 선택적으로 출력한다.
본 실시예에서는 입력된 캐리 전파 값 C0G가 '0'인 경우에는 입력 데이터 X1 및 Y1의 배타적 논리합 SL을 선택하고, 캐리 전파 값 C0G가 '1'인 경우에는 입력 데이터 X1 및 Y1의 배타적 부정 논리합 SH를 선택하여 합계 선택부(1010)로 출력한다.
합계 선택부(1010)에서는 상기 MUX(910a) 및 MUX(910b)로부터 입력된 출력 값이 각각 입력되고, 상기 입력 데이터 입력 데이터 X0 및 Y0의 합계를 계산하는 것과 동일한 방식으로, 캐리 입력 신호 Cin 값에 따라 MUX(910a)로부터의 입력 값 및 MUX(910b)로부터의 입력 값 중 하나를 선택하여, 입력 데이터 X1 및 Y1의 합계 S1 로서 출력한다. 본 실시예에서는 캐리 입력 신호 Cin이 '0'인 경우에는 MUX(910a)로부터의 입력 값을 선택하고, 캐리 입력 신호 Cin이 '1'인 경우에는 MUX(910b)로부터의 입력 값을 선택하여 입력 데이터 X1 및 Y1에 대한 합계 S1로서 출력한다.
또한, 입력 데이터 X2 및 Y2에 대한 합계 S2는 아래와 같은 방식으로 계산된다.
MUX(911a)의 두 개의 입력부에는 입력 데이터 X2 및 Y2의 배타적 논리합 SL 및 배타적 부정 논리합 SH가 각각 입력되고, MUX(911a)의 선택부에는 선택신호로서 기능하는 캐리 생성 블록(616)에서 생성된 캐리 전파 값 C1P가 입력되어, 입력된 캐리 전파 값 C1P 값에 따라 입력된 입력 데이터 X2 및 Y2의 배타적 논리합 SL 및 배타적 부정 논리합 SH 중 하나를 선택적으로 출력한다. 본 실시예에서는 입력된 캐리 전파 값 C1P가 '0'인 경우에는 입력 데이터 X2 및 Y2의 배타적 논리합 SL을 선택하고, 캐리 전파 값 C1P가 '1'인 경우에는 입력 데이터 X2 및 Y2의 배타적 부정 논리합 SH를 선택하여 합계 선택부(1010)로 출력한다.
또한, MUX(910b)의 두 개의 입력부에는 입력 데이터 X2 및 Y2의 배타적 논리합 SL 및 배타적 부정 논리합 SH가 각각 입력되고, MUX(910b)의 선택부에는 선택신 호로서 기능하는 캐리 생성 블록(616)에서 생성된 캐리 생성 값 C1G가 입력되어, MUX(910b)에 입력되는 캐리 생성 값 C1G 값에 따라 입력된 입력 데이터 X2 및 Y2의 배타적 논리합 SL 및 배타적 부정 논리합 SH 중 하나를 선택적으로 출력한다.
본 실시예에서는 입력된 캐리 전파 값 C1G가 '0'인 경우에는 입력 데이터 X1 및 Y1의 배타적 논리합 SL을 선택하고, 캐리 전파 값 C1G가 '1'인 경우에는 입력 데이터 X1 및 Y1의 배타적 부정 논리합 SH를 선택하여 합계 선택부(1010)로 출력한다.
합계 선택부(1010)에서는 상기 MUX(911a) 및 MUX(911b)로부터 입력된 출력 값이 각각 입력되고, 상기 입력 데이터 입력 데이터 X1 및 Y1의 합계를 계산하는 것과 동일한 방식으로, 캐리 입력 신호 Cin 값에 따라 MUX(910a)로부터의 입력 값 및 MUX(910b)로부터의 입력 값 중 하나를 선택하여, 입력 데이터 X2 및 Y2의 합계 S2 로서 출력한다. 본 실시예에서는 캐리 입력 신호 Cin이 '0'인 경우에는 MUX(911a)로부터의 입력 값을 선택하고, 캐리 입력 신호 Cin이 '1'인 경우에는 MUX(911b)로부터의 입력 값을 선택하여 입력 데이터 X2 및 Y2에 대한 합계 S2로서 출력한다.
또한, 입력 데이터 X3 및 Y3에 대한 합계 S3는 아래와 같은 방식으로 계산된다.
MUX(912a)의 두 개의 입력부에는 입력 데이터 X3 및 Y3의 배타적 논리합 SL 및 배타적 부정 논리합 SH가 각각 입력되고, MUX(912a)의 선택부에는 선택신호로서 기능하는 입력 데이터 X2 및 Y2의 캐리 전파 값 CP가 입력되어, MUX(912a)에 입력되는 캐리 전파 값 CP 값에 따라 제1 입력부에 입력된 입력 데이터 X3 및 Y3의 배타적 논리합 SL 및 제2 입력부에 입력된 배타적 부정 논리합 SH 중 하나가 선택적으로 출력된다.
본 실시예에서는 입력된 캐리 전파 값 CP가 '0'인 경우에는 제1 입력부에 입력된 입력 데이터 X3 및 Y3의 배타적 논리합 SL을 선택하고, 캐리 전파 값 CP가 '1'인 경우에는 제2 입력부에 입력된 입력 데이터 X3 및 Y3의 배타적 부정 논리합 SH를 선택하여 MUX(913a) 및 MUX(913b)의 입력부로 출력한다.
또한, MUX(912b)의 두 개의 입력부에는 입력 데이터 X3 및 Y3의 배타적 논리합 SL 및 배타적 부정 논리합 SH가 각각 입력되고, MUX(912b)의 선택부에는 선택신호로서 기능하는 입력 데이터 X2 및 Y2의 캐리 생성 값 CG가 입력되어, MUX(912b)에 입력되는 캐리 생성 값 CG 값에 따라 제1 입력부에 입력된 입력 데이터 X1 및 Y1의 배타적 논리합 SL 및 제2 입력부에 입력된 배타적 부정 논리합 SH 중 하나가 선택적으로 출력된다. 본 실시예에서는 입력된 캐리 생성 값 CG가 '0'인 경우에는 입력 데이터 X1 및 Y1의 배타적 논리합 SL을 선택하고, 캐리 생성 값 C0G가 '1'인 경우에는 입력 데이터 X1 및 Y1의 배타적 부정 논리합 SH를 선택하여 MUX(913a) 및 MUX(913b)로 출력한다.
MUX(913a)의 두 개의 입력부에는 MUX(912a) 및 MUX(912b)로부터 출력 값이 각각 입력되고, MUX(913a)의 선택부에는 캐리 생성 블록(616)에서 생성된 C1P가 입력되어, 입력된 캐리 전파 값 C1P에 따라, MUX(912a)로부터의 입력 값 및 MUX(912b)로부터 입력 값 중 하나를 선택적으로 출력한다. 본 실시예에서는 MUX(911a)로부터의 입력값이 '0'인 경우에는 MUX(912b)로부터의 입력 값을 선택하고, 입력값이 '1'인 경우에는 MUX(912a)로부터의 입력 값을 선택하여 합계 선택부(1010)로 출력한다.
또한, MUX(913b)의 두 개의 입력부에는 MUX(912a) 및 MUX(912b)로부터 출력 값이 각각 입력되고, MUX(913b)의 선택부에는 캐리 생성 블록(616)에서 생성된 C1G가 입력되어, 입력된 캐리 전파 값 C1G에 따라, MUX(911b)로부터의 입력값에 따라, MUX(912a)로부터의 입력 값 및 MUX(912b)로부터 입력 값 중 하나를 선택적으로 출력한다. 본 실시예에서는 MUX(911b)로부터의 입력값이 '0'인 경우에는 MUX(912b)로부터의 입력 값을 선택하고, 입력된 캐리 전파 값 C1P가 '1'인 경우에는 MUX(912a)로부터의 입력 값을 선택하여 합계 선택부(1010)로 출력한다.
합계 선택부(1010)에서는 상기 입력 데이터 X2 및 Y2의 합계를 계산하는 것과 동일한 방식으로, 캐리 입력 Cin 값에 따라 MUX(913a)로부터의 입력 값 및 MUX(913b)로부터의 입력 값 중 하나를 선택하여, 입력 데이터 X3 및 Y3의 합계 S3 로서 출력한다. 본 실시예에서는 캐리 입력 Cin이 '0'인 경우에는 MUX(913a)로부터의 입력 값을 선택하고, 캐리 입력 Cin이 '1'인 경우에는 MUX(913b)로부터의 입력 값을 선택하여 입력 데이터 X3 및 Y3에 대한 합계 S3로서 출력한다.
입력 데이터 X4, Y4, X5, Y5, X6, Y6, X7, Y7의 합계는 상기에서 설명한 X2, Y2, X3, Y3의 합계를 구하는 것과 동일한 방식으로 계산된다.
이와 같이, 합계 발생 블록(614)은 NAND 및 NOR를 사용하지 않기 때문에, 내부 배선이 감소하게 되며, 이에 따라 지연 시간, 칩 면적, 및 전력 소모 등을 감소시키는 효과가 있다. 또한, 합계 계산 블록(614)은 캐리 발생 블록(616)으로부터의 입력된 캐리 전파 값들 (C0P, C1P, C2P, C3P) 및 캐리 생성 값들 (C0G, C1G, C2G, C3G)을 사용함으로써, 별도의 캐리 발생 로직을 구비할 필요가 없도록 함으로써 배선 및 로직을 간단하게 하는 효과가 있다.
이와 같이, 본 발명에 따른 캐리 발생 블록(616) 및 합계 발생 블록(614)는 캐리-합계 전치 발생 블록(612)으로부터 소정 비트의 두 데이터 Xn, Yn의 배타적 부정 논리합 값 SH, 배타적 논리합 값 SL, 논리합 값 CP, 및 논리곱 값 CG 만을 필요로 하기 때문에, 본 발명에 따른 캐리-합계 전치 발생 블록(612)은 도 7에 도시된 바와 같이, 도 5에 도시된 종래의 캐리-합계 전치 발생 블록(112)과는 달리 "XNOR", "XOR", "OR", 및 "AND" 논리값을 계산하기 위한 로직만을 구비하고 있다. 따라서, 본 발명에 따른 조건 선택 가산기는 종래의 가산기에 비해 팬 아웃을 감소시키는 것이 가능하며, "NAND" 및 "NOR"와 같은 로직이 필요하지 않기 때문에, 내부 배선 감소, 칩 면적 감소, 전력 소모의 감소와 같은 효과를 얻을 수 있다.
이하에서는, 본 발명의 일 실시예에 따라 X0=1 X1=0 X2=1 X3=1인 경우와 Y0=1 Y1=0 Y2=0 Y3=1인 경우의 이들 4비트 이진수의 합계, 즉 '1101' + '1001' = '10110'를 구하는 과정을 도 8에 도시된 캐리 생성 블록과 도 9에 도시된 합계 생성 블록을 참조하여 설명한다.
우선, 도 8의 캐리 생성 블록을 참조하면, 캐리-합계 전치 발생 블록(612)에서는 입력 데이터 X0,YO의 논리합 '1' 및 논리곱'1'이 CP 및 CG 신호로서 출력되어, 도 9에 도시된 합계 발생 블록(614)의 MUX(910a) 및 MUX(910b)에 C0P 및 C0G 신호로서 각각 입력된다.
또한, MUX(811a)의 제1 입력부에는 X0,YO의 논리곱 '1'이 초기 캐리값으로서 입력되고, 제2 입력부에는 X1,Y1의 논리곱 '0'이 입력된다. MUX(811a)의 선택부에는 X1,Y1의 배타적 부정 논리합 '1'이 입력되고, 이에 따라 제2 입력부에 입력된 X1,Y1의 논리곱 '0'이 선택되어 C1G 신호로서 합계 발생 블록(614)으로 출력된다.
또한, MUX(811b)의 제1 입력부에는 X1,Y1의 논리곱 '0'이 입력되고, 제2 입력부에는 X0,YO의 논리합 '1'이 초기 캐리값으로서 입력된다. MUX(811b)의 선택부에는 X1,Y1의 배타적 논리합 '0'이 입력되고, 이에 따라 제1 입력부에 입력된 X1 ,Y1의 논리곱 '0'이 선택되어 C1P 신호로서 합계 발생 블록(614)으로 출력된다.
MUX(812a)의 제1 입력부에는 X2,Y2의 논리곱 '0'이 초기 캐리값으로서 입력되고, 제2 입력부에는 X3,Y3의 논리곱 '1'이 입력된다. MUX(812a)의 선택부에는 X3 ,Y3 의 배타적 부정 논리합 '1'이 입력되고, 이에 따라 제2 입력부에 입력된 X3,Y3의 논리곱 '1'이 선택되어 MUX(813a) 및 MUX(813b)의 제1 입력부로 출력된다.
MUX(812b)의 제1 입력부에는 X3,Y3의 논리곱 '1'이 입력되고, 제2 입력부에는 X2,Y2의 논리합 '1'이 초기 캐리값으로서 입력된다. MUX(812b)의 선택부에는 X3 ,Y3의 배타적 논리합 '0'이 입력되고, 이에 따라 제1 입력부에 입력된 X3,Y3의 논리곱 '1'이 선택되어 MUX(813a) 및 MUX(813b)의 제2 입력부로 출력된다.
MUX(813a)의 선택부에는 MUX(811b)의 출력값 '0'가 입력되고, 이에 따라 제1 입력부에 입력된 값 '1'이 선택되어, C3P 신호로서 합계 발생 블록(614)으로 출력된다.
MUX(813b)의 선택부에는 MUX(811a)의 출력값 '0'가 입력되고, 이에 따라 제1 입력부에 입력된 값 '1'이 선택되고, C3G 신호로서 합계 발생 블록(614)으로 출력된다.
도 9에 도시된 합계 발생 블록(614)을 참조하면, 우선 입력 데이터 X0,YO의 배타적 논리합 '0' 및 배타적 부정 논리합 '1'이 초기 캐리값 Cin에 따른 합계 S0를 결정하기 위한 두 개의 입력 신호, 즉 제1 선택 신호 및 제2 선택 신호로서 합계 발생부(1010)의 MUX의 제1 및 제2 입력부에 각각 입력된다.
또한, MUX(910a)의 제1 입력부에는 X1,Y1의 배타적 논리합 '0'이 입력되고, 제2 입력부에는 X1,Y1의 배타적 부정 논리합 '1'이 입력된다. MUX(910a)의 선택부 에는 캐리 생성 블록(616)에서 입력된 COP 값 '1'이 입력되고, 이에 따라 제2 입력부에 입력된 X1,Y1의 배타적 부정 논리합 '1'이 선택되어 합계 S1을 계산하기 위한 두가지 선택 신호 중 제1 선택 신호로서 합계 선택부(1010)의 해당 MUX의 제1 입력부로 출력된다.
MUX(910b)의 제1 입력부에는 X1,Y1의 배타적 논리합 '0'이 입력되고, 제2 입력부에는 X1,Y1의 배타적 부정 논리합 '1'이 입력된다. MUX(910b)의 선택부에는 캐리 생성 블록(616)에서 입력된 COG 값 '1'이 입력되고, 이에 따라 제2 입력부에 입력된 X1,Y1의 배타적 부정 논리합 '1'이 선택되어 합계 S1을 계산하기 위한 두 가지 선택 신호 중 제2 선택 신호로서 합계 선택부(1010)로 출력된다.
또한, MUX(911a)의 제1 입력부에는 X2,Y2의 배타적 논리합 '1'이 입력되고, 제2 입력부에는 X2,Y2의 배타적 부정 논리합 '0'이 입력된다. MUX(911a)의 선택부에는 캐리 생성 블록(616)에서 입력된 C1P 값 '0'이 입력되고, 이에 따라 제1 입력부에 입력된 X2,Y2의 배타적 논리합 '1'이 선택되어 합계 S2을 계산하기 위한 두가지 선택 신호 중 제1 선택 신호로서 합계 선택부(1010)로 출력된다.
MUX(911b)의 제1 입력부에는 X2,Y2의 배타적 논리합 '1'이 입력되고, 제2 입력부에는 X2,Y2의 배타적 부정 논리합 '0'이 입력된다. MUX(911b)의 선택부에는 캐리 생성 블록(616)에서 입력된 C1G 값 '0'이 입력되고, 이에 따라 제1 입력부에 입 력된 X2,Y2의 배타적 논리합 '1'이 선택되어 합계 S2을 계산하기 위한 두 가지 선택 신호 중 제2 선택 신호로서 합계 선택부(1010)로 출력된다.
또한, MUX(912a)의 제1 입력부에는 X3,Y3의 배타적 논리합 '0'이 입력되고, 제2 입력부에는 X3,Y3의 배타적 부정 논리합 '1'이 입력된다. MUX(912a)의 선택부에는 X2,Y2의 논리합 '1'이 선택 신호로서 입력되고, 이에 따라 제2 입력부에 입력된 X3,Y3의 배타적 부정 논리합 '1'이 선택되어 MUX(913a) 및 MUX(913b)의 제2 입력부로 출력된다.
MUX(912b)의 제1 입력부에는 X3,Y3의 배타적 논리합 '0'이 입력되고, 제2 입력부에는 X3,Y3의 배타적 부정 논리합 '1'이 입력된다. MUX(912b)의 선택부에는 X2,Y2의 논리곱 '0'이 선택 신호로서 입력되고, 이에 따라 제1 입력부에 입력된 X3,Y3의 배타적 논리합 '0'이 선택되어 MUX(913a) 및 MUX(913b)의 제1 입력부로 출력된다.
또한, MUX(913a)의 선택부에는 캐리 생성 블록(616)으로부터의 출력 신호 C1P '0'가 입력되고, 이에 따라 제1 입력부에 입력된 값 '0'이 선택되어 합계 S3을 계산하기 위한 두 가지 선택 신호 중 제1 선택 신호로서 합계 선택부(1010)로 출력된다.
MUX(913b)의 선택부에는 캐리 생성 블록(616)으로부터의 출력 신호 C1G '0' 가 입력되고, 이에 따라 제1 입력부에 입력된 값 '0'이 선택되어 합계 S3을 계산하기 위한 두 가지 선택 신호 중 제2 선택 신호로서 합계 발생부(1010)로 출력된다.
합계 발생부(1010)의 MUX들은 초기 캐리 입력 신호 Cin의 값이 '0'이므로, 제1 선택 신호들을 합계 'S0,S1,S2,S3'의 결과값으로 선택하여 '0110'을 출력한다.
도 10은 블록 캐리 생성 블록을 도시하는 도면이다. 도시된 바와 같이, 블록 캐리 생성 블록(690)은 각 조건 선택 덧셈 모듈들(610, 620, 630, 640, 650, 660, 670, 680)의 캐리 생성 블록으로부터 입력되는 캐리 전파 값들 (CP0, CP1, CP2, CP3, CP4, CP5, CP6, CP7) 및 캐리 생성 값들 (CG0, CG1, CG2, CG3, CG4, CG5 , CG6, CG7)과, 블록 캐리 생성 블록(690)으로의 캐리 입력 Cin에 기초하여 블록 캐리 (C00, C01, C02, C03, C04, C05, C0 6, C07)를 계산한다. 상기 계산된 블록 캐리는 각 조건 선택 덧셈 모듈들(610, 620, 630, 640, 650, 660, 670, 680)의 합계 계산 블록들로 피드백되고, 각 합계 계산 블록들은 상기에서 미리 계산된 합계들 중 블록 캐리의 값, 즉 캐리의 유무에 따라 적절한 합계가 선택되어진다.
따라서, 도 4에 도시된 종래의 블록 캐리 계산 블록(190)은 서로 동기화 되지 않은 상태로 블록 캐리(BC0 ~ BC7)를 출력하는데 반해, 본 발명에 따른 블록 캐리 계산 블록(690)은 계산된 블록 캐리 (C00, C01, C02, C03, C04, C05, C06, C07)를 동기화 하여 출력함으로써, 각 조건 선택 모듈들의 합계가 동기화되어 발생될 수 있도록 하는 장점이 있다.
또한, 종래 기술에 따른 64-비트 조건 선택 가산기와 본 발명에 따른 64-비트 조건 선택 가산기에 의한 게이트 카운트, 크리티컬 패스, 및 내부 배선 구성을 비교해보면, 본 발명에 따른 가산기가 종래 기술에 의한 가산기에 비해 게이트 카운트 및 크리티컬 패스가 많이 감소되었으며, 내부 배선 또한 보다 간단해 졌음을 알 수 있다.
표 3
구분 게이트 카운트 크리티컬 패스 (합계 발생 블록) 내부 배선
종래 기술의 가산기 588 7 스테이지 복잡
본 발명의 가산기 524 3 스테이지 간단
본 발명에 따른 조건 선택 가산 장치 및 방법은 디지털 신호 처리에 관련된 광범위한 분야에 응용될 수 있다.
이상 도면과 명세서에서 최적 실시예들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이, 본 발명에 따른 가산기는 게이트 카운트(gate count), 크리티컬 패스(critical path), 및 내부 배선을 줄일 수 있어 칩 면적, 지연 시간, 전력 소모를 감소시키는 효과가 있다.

Claims (34)

  1. 초기 캐리를 고려하여 Xi 및 Yi의 캐리를 발생하기 위한 캐리 생성기에 있어서,
    입력 데이터 Xi 및 Yi를 계산하여 얻어진 데이터를 입력받기 위한 제1 입력부와;
    상기 초기 캐리를 입력받기 위한 제2 입력부와;
    상기 입력 데이터 Xi 및 Yi의 배타적 논리합을 입력받는 선택부를 구비하며,
    상기 선택부에 입력되는 배타적 논리합에 따라 상기 제1 입력부에 입력된 입력 데이터 Xi 및 Yi를 계산하여 얻어진 데이터 또는 상기 제2 입력부에 입력된 초기 캐리 중 어느 하나를 선택하여 캐리로 출력하는 것을 특징으로 하는 캐리 생성기.
  2. 제1항에 있어서, 상기 캐리 생성기는 상기 선택부로 입력된 배타적 논리합이 '0'인 경우에는 상기 제1 입력부로 입력되는 데이터를 출력하고, 상기 선택부로 입력된 배타적 논리합이 '1'인 경우에는 상기 제2 입력부로 입력되는 상기 초기 캐리 데이터를 출력하는 것을 특징으로 하는 캐리 생성기.
  3. 제1항에 있어서, 상기 초기 캐리는 입력 데이터 Xi-1 및 Yi-1의 논리합인 것을 특징으로 하는 캐리 생성기.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 Xi 및 Yi를 계산하여 얻어진 데이터는 입력 데이터 Xi, 입력 데이터 Yi, 입력 데이터 Xi와 Yi의 논리곱 값, 또는 입력 데이터 Xi와 Yi의 논리합 값 중 어느 하나인 것을 특징으로 하는 캐리 생성기.
  5. n 비트로 이루어진 두 입력 데이터 X0 ~ Xn-1, Y0 ~ Yn-1의 캐리를 생성하기 위한 캐리 생성기에 있어서,
    입력 데이터 X2i-1 및 Y2i-1를 계산하여 얻어진 데이터를 입력받기 위한 제1 입력부와;
    초기 캐리 데이터를 입력받기 위한 제2 입력부와;
    상기 입력 데이터 X2i-1 및 Y2i-1의 배타적 논리합을 입력받는 선택부를 구비한 적어도 하나 이상의 제1 서브-캐리 생성부를 포함하며,
    상기 제1 서브-캐리 생성부는 상기 선택부에 입력되는 배타적 논리합 값에 따라 상기 제1 입력부에 입력된 입력 데이터 X2i-1 및 Y2i-1를 계산하여 얻어진 데이터 또는 상기 제2 입력부에 입력된 초기 캐리 데이터 중 어느 하나를 선택하여 출력하는 것을 특징으로 하는 캐리 생성기.
  6. 제5항에 있어서, 상기 제1 서브 캐리 생성부는 상기 선택부로 입력된 배타적 논리합이 '0'인 경우에는 상기 제1 입력부로 입력되는 데이터를 출력하고, 상기 선택부로 입력된 배타적 논리합이 '1'인 경우에는 상기 제2 입력부로 입력되는 상기 초기 캐리 데이터를 출력하는 것을 특징으로 하는 캐리 생성기.
  7. 제5항에 있어서, 상기 초기 캐리 데이터는 입력 데이터 X2i-2 및 Y2i-2의 논리합인 것을 특징으로 하는 캐리 생성기.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서, 상기 X2i-1 및 Y2i-1를 계산하여 얻어진 데이터는 입력 데이터 X2i-1, 입력 데이터 Y2i-1, 입력 데이터 X2i-1와 Y2i-1의 논리곱 값, 또는 입력 데이터 X2i-1와 Y2i-1의 논리합 값 중 어느 하나인 것을 특징으로 하는 캐리 생성기.
  9. 제5항에 있어서, 상기 캐리 생성기는
    초기 캐리 데이터를 입력받기 위한 제1 입력부와;
    X2i-1 및 Y2i-1를 계산하여 얻어진 데이터를 입력받기 위한 제2 입력부와;
    상기 입력 데이터 X2i-1 및 Y2i-1의 배타적 부정 논리합을 입력받는 선택부를 구비한 적어도 하나 이상의 제2 서브-캐리 생성부를 더 포함하며,
    상기 제2 서브-캐리 생성부는 상기 선택부에 입력되는 배타적 부정 논리합 값에 따라 상기 제1 입력부에 입력된 초기 캐리 데이터 또는 상기 제2 입력부에 입력된 X2i-1 및 Y2i-1를 계산하여 얻어진 데이터 중 어느 하나를 출력하는 것을 특징으로 하는 캐리 생성기.
  10. 제9항에 있어서, 상기 제2 서브 캐리 생성부는 상기 선택부로 입력된 배타적 부정 논리합이 '0'인 경우에는 상기 제1 입력부로 입력되는 상기 초기 캐리 데이터를 출력하고, 상기 선택부로 입력된 배타적 부정 논리합이 '1'인 경우에는 상기 제2 입력부로 입력되는 데이터를 출력하는 것을 특징으로 하는 캐리 생성기.
  11. 제9항에 있어서, 상기 제2 서브-캐리 생성부의 초기 캐리 데이터는 입력 데이터 X2i-2 및 Y2i-2의 논리곱인 것을 특징으로 하는 캐리 생성기.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서, 상기 X2i-1 및 Y2i-1를 계산하여 얻어진 데이터는 입력 데이터 X2i-1, 입력 데이터 Y2i-1, 입력 데이터 X2i-1와 Y2i-1의 논리곱 값, 또는 입력 데이터 X2i-1와 Y2i-1의 논리합 값 중 어느 하나인 것을 특징으로 하는 캐리 생성기.
  13. n 비트로 이루어진 두 입력 데이터 X0 - Xn-1, Y0 - Yn-1의 캐리를 생성하는 캐리 생성부와 상기 입력 값들의 합계를 발생하는 합계 발생부를 구비하는 복수개의 덧셈 모듈과, 상기 덧셈 모듈들로부터 발생된 캐리들에 응답해서 상기 덧셈 모듈들의 캐리 유무를 결정하여 다음 단의 덧셈 모듈로 피드백 시키기 위한 블록 캐리 발생부를 포함하는 것을 특징으로 하는 조건 선택 가산기에 있어서,
    상기 캐리 발생부는
    입력 데이터 X2i-1 및 Y2i-1를 계산하여 얻어진 데이터를 입력받기 위한 제 1 입력부와; 초기 캐리 데이터를 입력받기 위한 제2 입력부와; 상기 입력 데이터 X2i-1 및 Y2i-1의 배타적 논리합을 입력받는 선택부를 구비하고, 상기 선택부에 입력되는 배타적 논리합 값에 따라 상기 제1 입력부에 입력된 입력 데이터 X2i-1 및 Y2i-1를 계산하여 얻어진 데이터 또는 상기 제2 입력부에 입력된 초기 캐리 데이터 중 어느 하나를 출력하는 적어도 하나 이상의 제1 서브-캐리 생성부와;
    초기 캐리 데이터를 입력받기 위한 제1 입력부와; X2i-1 및 Y2i-1를 계산하여 얻어진 데이터를 입력받기 위한 제2 입력부와; 상기 입력 데이터 X2i-1 및 Y2i-1의 배타적 부정 논리합을 입력받는 선택부를 구비하고, 상기 선택부에 입력되는 배타적 부정 논리합 값에 따라 상기 제1 입력부에 입력된 초기 캐리 데이터 또는 상기 제2 입력부에 입력된 X2i-1 및 Y2i-1를 계산하여 얻어진 데이터 중 어느 하나를 출력하는 적어도 하나 이상의 제2 서브-캐리 생성부와;
    상기 제1 및 제2 서브-캐리 생성부로부터의 출력이 입력되는 두 개의 입력부와, 소정의 선택 신호가 입력되는 선택부를 구비하고, 상기 선택부에 입력되는 선택 신호 값에 따라서 상기 입력부에 입력된 값 중 어느 하나를 출력하는 적어도 하나 이상의 캐리 선택부를 포함하는 것을 특징으로 하는 조건 선택 가산기.
  14. 제13항에 있어서, 상기 제1 서브 캐리 생성부는 상기 선택부로 입력된 배타적 논리합이 '0'인 경우에는 상기 제1 입력부로 입력되는 데이터를 출력하고, 상기 선택부로 입력된 배타적 논리합이 '1'인 경우에는 상기 제2 입력부로 입력되는 상기 초기 캐리 데이터를 출력하며, 상기 제2 서브 캐리 생성부는 상기 선택부로 입력된 배타적 부정 논리합이 '0'인 경우에는 상기 제1 입력부로 입력되는 상기 초기 캐리 데이터를 출력하고, 상기 선택부로 입력된 배타적 부정 논리합이 '1'인 경우에는 상기 제2 입력부로 입력되는 데이터를 출력하는 것을 특징으로 하는 조건 선택 가산기.
  15. 제13항에 있어서, 상기 제1 서브 캐리 생성부의 초기 캐리 데이터는 입력 데이터 X2i-2 및 Y2i-2의 논리합이며, 상기 제2 서브 캐리 생성부의 초기 캐리 데이터는 입력 데이터 X2i-2 및 Y2i-2의 논리곱인 것을 특징으로 하는 조건 선택 가산기.
  16. 제13항 내지 제15항 중 어느 한 항에 있어서, 상기 X2i-1 및 Y2i-1를 계산하여 얻어진 데이터는 입력 데이터 X2i-1, 입력 데이터 Y2i-1, 입력 데이터 X2i-1와 Y2i-1의 논리곱 값, 또는 입력 데이터 X2i-1와 Y2i-1의 논리합 값 중 어느 하나인 것을 특징으로 하는 조건 선택 가산기.
  17. 제13항에 있어서, 상기 소정의 선택 신호는 전단의 서브-캐리 생성부 또는 캐리 선택부로부터의 출력 값인 것을 특징으로 하는 조건 선택 가산기.
  18. 제13항에 있어서, 상기 합계 생성부는 상기 캐리 생성부로부터의 출력을 이용하여 합계를 계산하는 것을 특징으로 하는 조건 선택 가산기.
  19. 제13항에 있어서, 상기 가산기는 상기 가산되는 입력 값 Xi 및 Yi을 분석하여, 배타적 논리합, 배타적 부정 논리합, 논리합, 및 논리곱 값 중 적어도 하나 이상을 발생하여 상기 캐리 생성부와 상기 합계 생성부로 출력하는 전치 발생부를 더 포함하는 것을 특징으로 하는 조건 선택 가산기.
  20. 제18항에 있어서, 상기 합계 발생부는 상기 캐리 생성부의 출력이 입력되는 선택부와; 상기 입력 데이터 중 두 개의 피연산자에 기초하여 계산된 데이터가 입력되는 두 개의 입력부를 구비한 적어도 하나 이상의 제1 서브-합계 생성부를 포함하는 것을 특징으로 하는 조건 선택 가산기.
  21. 제20항에 있어서, 상기 제1 서브-합계 생성부는 상기 선택부로의 입력 값에 기초하여 제1 서브-합계 생성부의 두 개의 입력부로 입력되는 데이터 중 하나를 선택적으로 출력하는 것을 특징으로 하는 조건 선택 가산기.
  22. 제20항에 있어서, 상기 합계 발생부는 캐리 데이터가 입력되는 선택부와, 상 기 두 개의 피연산자의 배타적 논리합 및 배타적 부정 논리합이 각각 입력되는 두 개의 입력부를 구비한 적어도 하나 이상의 제2 서브-합계 생성부를 더 포함하는 것을 특징으로 하는 조건 선택 가산기.
  23. 제22항에 있어서, 상기 제2 서브-합계 생성부는 상기 선택부에 입력되는 캐리 값에 기초하여 제2 서브-합계 생성부의 두 개의 입력부로 입력되는 데이터 중 하나를 선택하여, 상기 적어도 하나 이상의 제1 서브-합계 생성부 중 하나의 입력부로 출력하는 것을 특징으로 하는 조건 선택 가산기.
  24. 가산 장치에 사용되는, 초기 캐리를 고려하여 Xi와 Yi의 캐리를 생성하기 위한 캐리 생성 방법에 있어서,
    (a) 입력 데이터 Xi 및 Yi에 기초한 소정의 데이터를 계산하는 단계와,
    (b) 입력 데이터 Xi 및 Yi가 동일한 지 여부를 판단하는 단계와,
    (c) 상기 Xi 및 Yi가 동일 한 지 여부에 따라 상기 초기 캐리 또는 상기 Xi 및 Yi에 기초한 소정의 데이터를 Xi 및 Yi의 캐리로서 선택하여 출력하는 것을 특징으로 하는 캐리 생성 방법.
  25. 제24항에 있어서, 상기 (c) 단계에서 Xi 및 Yi가 동일한 경우, 상기 계산된 Xi 및 Yi에 기초한 소정의 데이터를 선택하고, Xi 및 Yi가 동일하지 않은 경우에는 상기 초기 캐리를 선택하는 것을 특징으로 하는 캐리 생성 방법.
  26. 제24항 또는 제25항에 있어서, 상기 계산된 Xi 및 Yi에 기초한 데이터는 입력 데이터 Xi, 입력 데이터 Yi, 입력 데이터 Xi와 Yi의 논리곱 값, 또는 입력 데이터 Xi와 Yi 의 논리합 값 중 어느 하나인 것을 특징으로 하는 캐리 생성 방법.
  27. 가산 장치에 사용되는, n 비트로 이루어진 두 입력 데이터 X0 ~ Xn-1, Y0 ~ Yn-1의 캐리를 발생하기 위한 캐리 생성 방법에 있어서,
    (a) 입력 데이터 X2i-1 및 Y2i-1에 기초하여 소정의 데이터를 계산하는 단계와,
    (b) 입력 데이터 X2i-2 및 Y2i-2의 제1 초기 캐리 데이터를 계산하는 단계와,
    (c) 입력 데이터 X2i-1 및 Y2i-1의 배타적 논리합을 계산하는 단계와,
    (d) 상기 계산된 입력 데이터 X2i-1 및 Y2i-1의 배타적 논리합 값에 따라 상기 입력 데이터 X2i-1 및 Y2i-1에 기초한 데이터 또는 상기 제1 초기 캐리 데이터 중 어느 하나를 선택하여 제1 캐리를 발생하는 단계를 포함하는 것을 특징으로 하는 캐리 생성 방법.
  28. 제27항에 있어서, 상기 (d) 단계에서의 배타적 논리합이 '0'인 경우에는 상기 계산된 입력 데이터 X2i-1 및 Y2i-1에 기초하여 계산된 소정의 데이터를 출력하고, 상기 배타적 논리합이 '1'인 경우에는 상기 계산된 제1 초기 캐리 데이터를 출력하는 것을 특징으로 하는 캐리 생성 방법.
  29. 제27항에 있어서, 상기 제1 초기 캐리 데이터는 입력 데이터 X2i-2 및 Y2i-2의 논리합인 것을 특징으로 하는 캐리 생성 방법.
  30. 제27항 내지 제29항 중 어느 한 항에 있어서, 상기 계산된 X2i-1 및 Y2i-1에 기초한 소정의 데이터는 입력 데이터 X2i-1, 입력 데이터 Y2i-1, 입력 데이터 X2i-1와 Y2i-1의 논리곱 값, 또는 입력 데이터 X2i-1와 Y2i-1의 논리합 값 중 어느 하나인 것을 특징으로 하는 캐리 생성 방법.
  31. 제27항에 있어서, 상기 캐리 생성 방법은
    (a1) 입력 데이터 X2i-1 및 Y2i-1에 기초하여 소정의 데이터를 계산하는 단계와,
    (b1) 입력 데이터 X2i-2 및 Y2i-2의 제2 초기 캐리 데이터를 계산하는 단계와,
    (c1) 입력 데이터 X2i-1 및 Y2i-1의 배타적 부정 논리합을 계산하는 단계와,
    (d1) 상기 계산된 입력 데이터 X2i-1 및 Y2i-1의 배타적 부정 논리합 값에 따라 상기 입력 데이터 X2i-1 및 Y2i-1에 기초한 데이터 또는 상기 제2 초기 캐리 데이터 중 어느 하나를 출력하여 제2 캐리를 발생하는 단계를 포함하는 것을 특징으로 하는 캐리 생성 방법.
  32. 제31항에 있어서, 상기 (d) 단계에서의 배타적 부정 논리합 값이 '0'인 경우에는 상기 계산된 제2 초기 캐리 데이터를 출력하고, 상기 배타적 부정 논리합 값이 '1'인 경우에는 상기 계산된 입력 데이터 X2i-1 및 Y2i-1에 기초한 데이터를 출력하는 것을 특징으로 하는 캐리 생성 방법.
  33. 제31항에 있어서, 상기 제2 초기 캐리 데이터는 입력 데이터 X2i-2 및 Y2i-2의 논리곱인 것을 특징으로 하는 캐리 생성 방법.
  34. 제31항 내지 제33항 중 어느 한 항에 있어서, 상기 계산된 X2i-1 및 Y2i-1에 기초한 데이터는 입력 데이터 X2i-1, 입력 데이터 Y2i-1, 입력 데이터 X2i-1와 Y2i-1의 논리곱 값, 또는 입력 데이터 X2i-1와 Y2i-1의 논리합 값 중 어느 하나인 것을 특징으로 하는 캐리 생성 방법.
KR1020020002538A 2002-01-16 2002-01-16 Xor에 기반한 캐리 생성기와 이를 이용한 조건 선택가산 장치 및 그 방법 KR100866787B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020020002538A KR100866787B1 (ko) 2002-01-16 2002-01-16 Xor에 기반한 캐리 생성기와 이를 이용한 조건 선택가산 장치 및 그 방법
EP02254426A EP1329803A3 (en) 2002-01-16 2002-06-25 Conditional sum adder
CNB021407126A CN1209702C (zh) 2002-01-16 2002-07-12 异或进位产生器及使用其的条件选择加法器及方法
US10/201,265 US7386583B2 (en) 2002-01-16 2002-07-24 Carry generator based on XOR, and conditional select adder using the carry generator, and method therefor
JP2002294095A JP3682965B2 (ja) 2002-01-16 2002-10-07 Xorによるキャリ生成器とこれを利用した条件選択加算装置及びその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020002538A KR100866787B1 (ko) 2002-01-16 2002-01-16 Xor에 기반한 캐리 생성기와 이를 이용한 조건 선택가산 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20030062114A KR20030062114A (ko) 2003-07-23
KR100866787B1 true KR100866787B1 (ko) 2008-11-04

Family

ID=19718522

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020002538A KR100866787B1 (ko) 2002-01-16 2002-01-16 Xor에 기반한 캐리 생성기와 이를 이용한 조건 선택가산 장치 및 그 방법

Country Status (5)

Country Link
US (1) US7386583B2 (ko)
EP (1) EP1329803A3 (ko)
JP (1) JP3682965B2 (ko)
KR (1) KR100866787B1 (ko)
CN (1) CN1209702C (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653677B1 (en) * 2005-01-26 2010-01-26 Xilinx, Inc. Digital logic circuit for adding three binary words and method of implementing same
CN103488457B (zh) * 2013-09-26 2016-08-31 清华大学 一种可变延时预测方法及基于预测的可变延时加法器
US9864584B2 (en) 2014-11-14 2018-01-09 Cavium, Inc. Code generator for programmable network devices
CN107425846A (zh) * 2017-07-24 2017-12-01 上海交通大学 一种亚阈值抗噪声的全加器电路
CN107967132B (zh) * 2017-11-27 2020-07-31 中国科学院计算技术研究所 一种用于神经网络处理器的加法器和乘法器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH056263A (ja) * 1991-06-27 1993-01-14 Nec Corp 加算器およびその加算器を用いた絶対値演算回路
KR970029012A (ko) * 1995-11-21 1997-06-26 김광호 캐리 선택 덧셈기
KR19980045133A (ko) * 1996-12-09 1998-09-15 김광호 저전력 소모형 가산기
KR19980073858A (ko) * 1997-03-20 1998-11-05 구자홍 캐리-선택 덧셈기(csa) 회로

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991000568A1 (en) * 1989-06-23 1991-01-10 Vlsi Technology, Inc. Conditional-sum carry structure compiler
US5272662A (en) * 1991-01-31 1993-12-21 The United States Of America As Represented By The Secretary Of The Air Force Carry multiplexed adder
US5629886A (en) * 1993-09-02 1997-05-13 Xilinx, Inc. Method and structure for providing fast propagation of a carry signal in a field programmable gate array
JPH08161151A (ja) * 1994-12-01 1996-06-21 Mitsubishi Electric Corp 加算器
KR100224278B1 (ko) * 1996-12-18 1999-10-15 윤종용 패스 트랜지스터 로직을 사용하는 조건 합 가산기 및 그것을 구비한 집적 회로
DE19653565A1 (de) * 1996-12-20 1997-05-15 Bernd Paysan Rekursiv aufgeteilter Addierer mit Übertrag-Auswahl
US5852568A (en) * 1997-01-27 1998-12-22 S3 Incorporated System and method for a fast carry/sum select adder
GB2342193B (en) * 1998-06-19 2003-06-04 Sgs Thomson Microelectronics Addition circuitry
US6466960B1 (en) * 1999-05-13 2002-10-15 Hewlett-Packard Company Method and apparatus for performing a sum-and-compare operation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH056263A (ja) * 1991-06-27 1993-01-14 Nec Corp 加算器およびその加算器を用いた絶対値演算回路
KR970029012A (ko) * 1995-11-21 1997-06-26 김광호 캐리 선택 덧셈기
KR19980045133A (ko) * 1996-12-09 1998-09-15 김광호 저전력 소모형 가산기
KR19980073858A (ko) * 1997-03-20 1998-11-05 구자홍 캐리-선택 덧셈기(csa) 회로

Also Published As

Publication number Publication date
CN1432907A (zh) 2003-07-30
US20030154229A1 (en) 2003-08-14
CN1209702C (zh) 2005-07-06
EP1329803A3 (en) 2006-01-25
JP2003216417A (ja) 2003-07-31
JP3682965B2 (ja) 2005-08-17
US7386583B2 (en) 2008-06-10
KR20030062114A (ko) 2003-07-23
EP1329803A2 (en) 2003-07-23

Similar Documents

Publication Publication Date Title
Liu et al. Design of approximate radix-4 booth multipliers for error-tolerant computing
US7509368B2 (en) Sparse tree adder circuit
Sakthikumaran et al. A very fast and low power carry select adder circuit
US9317478B2 (en) Dual-path fused floating-point add-subtract
US8429213B2 (en) Method of forcing 1's and inverting sum in an adder without incurring timing delay
KR100866787B1 (ko) Xor에 기반한 캐리 생성기와 이를 이용한 조건 선택가산 장치 및 그 방법
US6584485B1 (en) 4 to 2 adder
US7024445B2 (en) Method and apparatus for use in booth-encoded multiplication
US5027311A (en) Carry select multiplexer
Dave et al. Performance evaluation of flagged prefix adders for constant addition
Patil et al. RCA with conditional BEC in CSLA structure for area-power efficiency
US20040073585A1 (en) 3-input arithmetic logic unit
Kokilavani et al. FPGA realization of hybrid carry select-cum-section-carry based carry lookahead adders
US20200136643A1 (en) Data Compressor Logic Circuit
Govindarajulu et al. Design of Energy-Efficient and High-Performance VLSI Adders
Katreepalli et al. A power-delay efficient carry select adder
KR101573695B1 (ko) 표준 셀 기반 디자인을 위한 전력과 면적이 최적화된 캐리 선택 가산기 및 그 구성 방법
US7159004B2 (en) Adder, multiplier and integrated circuit
Balasubramanian et al. A delay improved gate level full adder design
Mudassir et al. New designs of 14-transistor PPM adder
US6954773B2 (en) Providing an adder with a conversion circuit in a slack propagation path
Sasipriya et al. Vedic Multiplier Design Using Modified Carry Select Adder with Parallel Prefix Adder
Thankachan 64 x 64 Bit Multiplier Using Pass Logic
KR20010019861A (ko) 조건 선택 덧셈기의 설계
US6301597B1 (en) Method and apparatus for saturation in an N-NARY adder/subtractor

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: 20120927

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130927

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee