week8_2.doc

CS150
Week 8, lecture 2
Covers:
1)
1)
Adders
Adders
1-bit full adder
P
Ai
Bi
Ci
tAS = 26
tAG = 1
tAP = 1
tCS = 1
tCP = 0
t?? = 0
G
Not connected
A0 B0
@9
Si
A1 B1
Full
Adder
@7
@8
Full
Adder
A0 B0
A2 B2
@5
Full
Adder
@3
Full
Adder
@4
@6
S0
Can you find Cout before sum? Yes.
1010
1000
0010
Generates carry
before sum is
known.
1010
1010
1111
Will
propagate
a carry
1010
0001
1011
Won’t propagate
or generate
C0
A0 B0
A1 B1
A2 B2
C0
C1
C2
S0 P0 G0
S1 P1 G1
C3 = G2 + G1 P2 + P2 P1 G0 + P2 P1 P0 C0
C4 = G3 + G2 P3 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 C0
Now look at G & P properties of a 4-bit adder:
C0
P3-0 G3-0
Will generate a carry if
G3 + G2 P3 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 C0
Will propagate if P3P2P1P0
A B
P G
@1
P
G
@1
P
G
P G
@1
Carry Lookahead Cicuitry
All P & G are generated at 1 delay.
@1
C0
Now, a new circuit (Inputs are 4-bit adders):
4
4
4
P G
@1
A B
4
4
P
G
4
P
@1
4
G
4
P G
@1
C0
@1
Carry Lookahead Cicuitry
Cin
ROM based adder:
A
2
2
B
2
S
A1 A0 B1 B0
0 0 0 0
0 0 0 0
0 0 0 1
0 0 0 1
0 0 1 0

1 1 1 1
Cin
0
1
0
1
0
A
B
1
Cout S1
0 0
0 0
0 0
0 1
0 1
S0
0
1
1
0
0
1
0
1
Cout
Carry select adder:
Compute both answers (carry = 0, carry = 1):
A
B
1
0
SL
SH
CI
CI
CO
A
B
A
ROM
B
A
B
ROM
ROM
ALU
A
B
Control
C0
Flags
ALU
Cin
What to implement: A+B, A-B, B-A
A S1
B S0
A
0
0
1
1
S0
S1
+
If
S0
S1 = S0 = 1
B
B
0
1
0
1
Function
A+B
_
A–B
(B+A+1)
B–A
(A+B+1)
A+B+1
(-A-B-1)
Not very useful
So replace with
-A or A
S0
S1
A S1
A
0
0
1
1
S0
S1
+
A S1
S0 B
M
C0
C0
M
B
0
1
0
1
Function
A+B
A-B
B–A_
-A or A