You are on page 1of 10

COEN 312

Fall 2009; Section: X


Lecture – 11

Carry Look-Ahead Adder and


Binary Sub-tractor

Dr Shah Jahinuzzaman
Dr.
Soft copies of lectures are available at
www.ece.concordia.ca/~shah/teaching_link.html
Ripple Carry Adder (RCA)

• Simple to construct, but has a long circuit delay


• If carry generation time per stage is tcarry and sum
generation time per stage is tsum, the addition time in an
n-bit
n bit RCA:
tadder = (n-1) tcarry + tsum
• With increasingg n ((16, 32, etc.),
) RCA becomes very y slow

COEN 312 © Shah Jahinuzzaman; Concordia University, Canada 2
Carry Look Ahead Adder
• “Carry look-ahead” logic removes the rippling effect of
carry and generates carry signals directly from the
addend bits
• For a full adder: S=Cin⊕x⊕y; Cout=xy+Cin(x ⊕ y)
We define two intermediate signals, which
Truth table: full adder
x y C
in outC S are only functions of x and y:
x P
0 0 0 0 0 G = generate = xy y
0 0 1 0 1
0 1 0 0 1
P = propagate = x⊕y G

0 1 1 1 0 If G
G=11 in a stage
stage, a carry is generated in
1 0 0 0 1
that stage; if P=1, an incoming carry is
1 0 1 1 0
propagated through that stage to the next
1 1 0 1 0
1 1 1 1 1
stage
COEN 312 © Shah Jahinuzzaman; Concordia University, Canada 3
Carry Look-ahead Logic
• The sum and carry out signals can be expressed in
terms of P and G
S=Cin⊕P and Cout=G+PCin
In a generic way: Si=Ci⊕Pi and Cii+11=Gi+PiCi where i
represents a bit position such that i=0, 1, 2, 3, .....
xi yi

Si

Gi Pi Ci

For carry logic


COEN 312 © Shah Jahinuzzaman; Concordia University, Canada 4
4-bit Carry Look-ahead Logic
• For a 4-bit adder the carry generation circuit would be:
C1=G0+P0C0

C2=G1+P1C1= G1+P1(G0+P0C0)= G1+P1G0+P1P0C0

C3=G2+P2C2= G2+P2(G1+P1G0+P1P0C0)
= G2+P
P2G1+P
P2P1G0+P
P2P1P0C0

C4=G3+P3C3= G3+P3(G2+P2G1+P2P1G0+P2P1P0C0)
= G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0

COEN 312 © Shah Jahinuzzaman; Concordia University, Canada 5
4-bit Carry Look-ahead Tree

C4
Only two
gate delays
for the carry
signals

COEN 312 © Shah Jahinuzzaman; Concordia University, Canada 6
Binary Subtractor
• Subtracts one binary number from another:
1 1 Minuend 1100 Borrow
1 0 Subtrahend 101 Minuend
----- 111 Subtrahend
0 1 Difference --------
1110 Difference
Borrow out

• Called a half subtractor if performs subtraction of


only two bits
• Called a full subtractor if performs subtraction of
three bits (two significant bits and a previous
borrow)
COEN 312 © Shah Jahinuzzaman; Concordia University, Canada 7
Half Subtractor
• Two operands (x,y); two outputs: difference (D) & borrow
(B)
– D= x-y; if x<y, B=1 and the difference is in 2’s complement form
Truth table: half subtractor D = x’y + xy’ = x ⊕ y
x y B D B = x’y
0 0 0 0
0 1 1 1
Two implementations:
1 0 0 1
1 1 0 0
D

COEN 312 © Shah Jahinuzzaman; Concordia University, Canada 8
Full Subtractor
• Three inputs: minuend (x), subtrahend (y), and one input
borrow (Bin)
• Two outputs: difference (D) and output borrow (Bout)
– Difference, D = x-y-Bin

Truth table: full adder


x y Bin Bout D
0 0 0 0 0 K-map for D K-map for Bout
0 0 1 1 1 yBin yBin
x 00 01 11 10 x 00 01 11 10
0 1 0 1 1
0 1 1 0 1 1 1
0 1 1 1 0
1 1 1 1 1
1 0 0 0 1
1 0 1 0 0 D = x ⊕ y ⊕ Bin Bout = yBin+x’Bin+x’y
1 1 0 0 0
1 1 1 1 1

COEN 312 © Shah Jahinuzzaman; Concordia University, Canada 9
Bout Using 2-level NOR
• Method-1: implement Bout = yBin+x’Bin+x’y using AND-OR
gates then replace the gates using equivalent NOR
gates,
gates
• Method-2: find Bout in terms of POS, then implement
using NOR gates
– Grouping 0’s in the K-map: Bout’ = y’Bin’+xBin’+xy’
yBin Using g DeMorgan’s
g theorem,,
x 00 01 11 10
0 0 1 1 1 Bout = (y+Bin)(x’+Bin)(x’+y)
1 0 0 1 0
y
Bin
x’
Bout = yBin+x’Bin+x’y Bout
Bin
xx’
y
COEN 312 © Shah Jahinuzzaman; Concordia University, Canada 10

You might also like