EP0347029A2

Binary carry or borrow look-ahead circuit.

Abstract

A binary operator comprises a plurality of carry select adder (CSA) circuits (101 a) each including a cumulative carry propagate signal generating means (106) and a cumulative carry generate signal generating means (107) and or a plurality of block look ahead carry generator (BLACG) circuits (105a) each including a cumulative block carry propagate signal and cumulative block carry generate signal generating means (116) and a real carry signal generating means (117). The CSA circuit (101a) does not simultaneously generate two presumed sum signals and select and output one of the presumed sum signals, but directly performs operations on the three signals of a carry propagate signal (P;), a cumulative carry propagate signal (BPi-1*) and a cumulative carry generate signal (BGi-1*) necessary for generating the presumed sum signal pair and the real carry signal (CM-1) to calculate the real sum signal (Fi). The BLACG circuit (105a) does not simultaneously generate two presumed carry signals and select and output one of the presumed carry signals, but uses a cumulative block carry propagate signal (CPM-1*), a cumulative block carry generate signal (CGM-1*) and a carry signal (CM'-m') to directly generate the real carry signal (CM-1). The number of circuit elements in such a binary operator is thereby greatly reduced without sacrificing high speed of computation since two presumed sum or carry signals are never generated in parallel.

EP0347029A2, drawing sheet 1
Sheet 1 of 48

Term

Term ended

Projected expiry passed 19 April 2009, 17.4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

50 claims: 4 independent, 46 dependent

  1. 1
    A binary operator, having a carry propagate signal and carry generate signal generating means (100) which receives two pieces of n-bit binary data (A. B) and generates a carry propagate signal (P;) and a carry generate signal (G;) of various digits, said two pieces of n-bit binary data (A, B) are divided into blocks of predetermined number of bits, each data of said divided blocks is processed in parallel by a plurality of block adders based on the corresponding carry propagate signal (P;) and carry generate signal (G;), and a real sum signal (F;) is output by calculating the arithmetic sum of said two n-bit binary data (A, B), wherein said binary operator comprises:a cumulative carry propagate signal generating means (106), connected to said carry propagate signal and carry generate signal generating means (100) and receiving carry propagate signals (PM Pi-1) of the various digits in said block adders, for generating a cumulative carry propagate signal (BPi-1*) by calculating said carry propagate signals (PM~pi-1);a cumulative carry generate signal generating means (107), connected to said carry propagate signal and carry generate signal generating means (100) and receiving the carry propagate signals (PM~Pi-1) and carry generate signals (GM~Gi-1) of the various digits in said block adders, for generating a cumulative carry generate signal (BGi-1*) by calculating said carry propagate signals (PM~Pi-1) and said carry generate signals(GM~Gi-1);a real sum signal generating means (108), connected to said carry propagate signal and carry generate signal generating means(100), said cumulative carry propagate signal generating means (106) and said cumulative carry generate signal generating means (107) and receiving the carry propagate signal (P;) of various digits, the cunulative carry propagate signal (BPi-1*) from said cumulative carry propagate signal generating means (106), the cumulative carry generate signal (BGi-1*) from said cumulative carry generate signal generating means(107) and a real carry signal (CM-1), for generating the real sum signal (F;) by calculating said carry propagate signal (P,), said cumulative carry propagate signal (BPi-1*), said cumulative carry generated signal (BGi-1*) and said real carry signal (CM-1).
  2. 14
    A binary operator, having a borrow propagate signal and borrow generate signal generating means (200) which receives two pieces of n-bit binary data (A, B) and generates a borrow propagate signal (P;) and a borrow generate signal (G;) of various digits, said two pieces of n-bit binary data are divided into blocks of predetermined number of bits, each data (A, B) of said divided blocks is processed in parallel by a plurality of block subtracters based on the corresponding borrow propagate signal (P;) and borrow generate signal (G;), and a real difference signal (F,) is output by calculating the arithmetic difference of said two n-bit binary data (A, B), wherein said binary operator comprises:a cumulative borrow propagate signal generating means (206), connected to said borrow propagate signal and borrow generate signal generating means (200) and receiving borrow propagate signals (PM~Pi-1) of the various digits in said block subtracters, for generating a cumulative borrow propagate signal BPi-1*) by calculating said borrow propagate signals (PM~Pi-1);a cumulative borrow generate signal generating means (207), connected to said borrow propagate signal and borrow generate signal generating means (200) and receiving the borrow propagate signals (PM~Pi-1) and borrow generate signals (GM~Gi-1) of the various digits in said block subtracters, for generating a cumulative borrow generate signal (BG.-1*) by calculating said borrow propagate signals (PM~Pi-1) and said borrow generate signals (GM~Gi-1);a real difference signal generating means (208), connected to said borrow propagate signal and borrow generate signal generating means (200), said cumulative borrow propagate signal generating means (206) and said cumulative borrow generate signal generating means (207) and receiving the borrow propagate signal (P;) of various digits, the cumulative borrow propagate signal (BPi-1*) from said cumulative borrow propagate signal generating means (206), the cumulative borrow generate signal (BGi-1*) from said cumulative borrow generate signal generating means (207) and a real borrow signal (Cm.1), for generating the real difference signal (F,) by calculating said borrow propagate signal (P;), said cumulative borrow propagate signal (BPi-1*), said cumulative borrow generate signal (BGi.I') and said real borrow signal (CM-1).
  3. 27
    A binary operator comprises:a carry propagate signal and carry generate signal generating means (100), receiving two pieces of n-bit binary data (A, B), for generating a carry propagate signal (P;) and a carry generate signal (G;) of various digits;a block addition means (101), connected to said carry propagate signal and carry generate signal generating means (100) and receiving a real carry signal (CM.i) and the carry propagate signal (PM-Pi) and the carry generate signal (GM-G;) from said carry propagate signal and carry generate signal generating means (100), for dividing said two pieces of n-bit binary data (A, B) into block of predetermined number of bits, processing in parallel based on the carry propagate signal (PM-Pi) and the carry generate signal (GM-G;) corresponding to each data of said divided blocks and generating a real sum signal (F,) by calculating the arithmetic sum of said two n-bit binary data (A, B);a block carry propagate signal and block carry generate signal generating means (103), connected to said carry propagate signal and carry generate signal generating means (100) and receiving the carry propagate signal (PM~PM-1) and the carry generate signal (GM~GM-1) from said carry propagate signal and carry generate signal generating means (100), for generating a block carry propagate signal (BPM~BPM-1) and a block carry generate signal (BPM~BPM-1) by the carry propagate signal (PM~PM-1) and the carry generate signal (GM~GM-1) corresponding to each data of said divided blocks;a cumulative block carry propagate signal and cumulative block carry generate signal generating means (116), connected to said block carry propagate signal and block carry generate signal generating means (103) and receiving the block carry propagate signal (BPM'-BPM.i) and the block carry generate signal (BGM~BGM-1) from said block carry propagate signal and block carry generate signal generating means (103), for generating a cumulative block carry propagate signal (CPM-1*) and a cumulative block carry generate signal (CGM-1*) by the block carry propagate signal (BPM~BPM-1) and the block carry generate signal (BGM~BGM-1);anda real carry signal generating means (117), connected to said cumulative block carry propagate signal and cumulative block carry generate signal generating means (116) and said block addition means (101) and receiving a carry signal (CM'-m'), the cumulative block carry propagate signal (CPM-1*) and the cumulative block carry generate signal (CGM-1*) from said cumulative block carry propagate signal and cumulative block carry generate signal generating means (116), for generating a real carry signal (CM.I) by the carry signal (CM-m'), the cumulative block carry propagate signal (CPM-1*) and the cumulative block carry generate signal CGM-1*).
  4. 39
    39,. A binary operator comprises:a borrow propagate signal and borrow generate signal generating means (200), receiving two pieces of n-bit binary data (A, B), for generating a borrow propagate signal (P;) and a borrow generate signal (G,) of various digits;a block subtraction means (201), connected to said borrow propagate signal and borrow generate signal generating means (200) and receiving a real borrow signal (CM-1) and the borrow propagate signal (PM P,) and the borrow generate signal (GM G;) from said borrow propagate signal and borrow generate signal generating means (200), for dividing said two pieces of n-bit binary data (A, B) into blocks of predetermined number of bits, processing in parallel based on the borrow propagate signal (PM Pi) and the borrow generate signal (GM G;) corresponding to each data of said divided blocks and generating a real difference signal (F;) by calculating the arithmetic difference of said two n-bit binary data (A, B);a block borrow propagate signal and block borrow generate signal generating means (203), connected to said borrow propagate signal and borrow generate signal generating means (200) and receiving the borrow propagate signal (PM' PM-1) and the borrow generate signal (GM' GM-1) from said borrow propagate signal and borrow generate signal generating means (200), for generating a block borrow propagate signal (BPM' BPM-1) and a block borrow generate signal (BGM' BGM-1) by the borrow propagate signal (PM' PM-1) and the borrow generate signal (GM' GM-1) corresponding to each data of said divided blocks;a cumulative block borrow propagate signal and cumulative block borrow generate signal generating means (216), connected to said block borrow propagate signal and block borrow generate signal generating means (203) and receiving the block borrow propagate signal (BPM' BPM.i) and the block borrow generate signal, from said block borrow propagate signal (BGM' BGM-1) and block borrow generate signal generating means (203), for generating a cumulative block borrow propagate signal (CPM-1*) and a cumulative block borrow generate signal (CGM-1*) by the block borrow propagate signal (BPM' BPM.i) and the block borrow generate signal (BGM' BGM-1);anda real borrow signal generating means (217), connected to said cumulative block borrow propagate signal and cumulative block borrow generate signal generating means (216) and said block subtraction means (201) and receiving a borrow signal (CM'-m'), the cumulative block borrow propagate signal (CPM-1*) and the cumulative block borrow generate signal (CGM-1*) from said cumulative block borrow propagate signal and cumulative block borrow generate signal generating means (216), for generating a real borrow signal (CM-1) by the borrow signal (CM'-m'), the cumulative block borrow propagate signal (CPM-1*) and the cumulative block borrow generate signal (CGM-1*).