Title: Lecture%208%20Arithmetic%20Logic%20Circuits
1Lecture 8Arithmetic Logic Circuits
- Prith Banerjee
- ECE C03
- Advanced Digital Design
- Spring 1998
2Outline
- Review of Number Systems
- Adders
- Ripple carry
- Carry Lookahead
- Carry Select
- Combinational Multipliers
- Arithmetic and Logic Unit (ALU)
- General Logic Function Units
- READING Katz 5.2.1, 5.2.2, 5.2.4, 5.3, 5.5, 4.6
3Review of Number Systems
- Representation of positive numbers same in most
systems - Differences in negative numbers
- Three major schemes
- sign and magnitude
- ones complement
- twos complement
- Assumptions
- we'll assume a 4 bit machine word
- 16 different values can be represented
- roughly half are positive, half are negative
4Sign Magnitude Number System
High order bit is sign 0 positive (or zero), 1
negative Three low order bits is the
magnitude 0 (000) thru 7 (111) Number range for
n bits /-2 -1 Representations for
0 Cumbersome addition/subtraction Must compare
magnitudes to determine sign of result
n-1
5Twos Complement Representation
like 1's comp except shifted one
position clockwise
- Only one representation for 0
- One more negative number than positive number
6Twos Complement Number System
n
N 2 - N
4
2 10000 7 0111 1001
repr. of -7
sub
Example Twos complement of 7
4
2 10000 -7 1001 0111
repr. of 7
Example Twos complement of -7
sub
Shortcut method
Twos complement bitwise complement 1 0111 -gt
1000 1 -gt 1001 (representation of -7) 1001 -gt
0110 1 -gt 0111 (representation of 7)
7Addition and Subtraction of Numbers
Sign and Magnitude
4 3 7
0100 0011 0111
-4 (-3) -7
1100 1011 1111
result sign bit is the same as the operands' sign
when signs differ, operation is subtract, sign of
result depends on sign of number with the larger
magnitude
4 - 3 1
0100 1011 0001
-4 3 -1
1100 0011 1001
8Twos Complement Addition and Subtraction
Twos Complement Calculations
4 3 7
0100 0011 0111
-4 (-3) -7
1100 1101 11001
If carry-in to sign carry-out then
ignore carry if carry-in differs from carry-out
then overflow
4 - 3 1
0100 1101 10001
-4 3 -1
1100 0011 1111
Simpler addition scheme makes twos complement the
most common choice for integer number systems
within digital systems
9Twos Complement Addition and Subtraction
Why can the carry-out be ignored?
-M N when N gt M
n
n
M N (2 - M) N 2 (N - M)
n
Ignoring carry-out is just like subtracting 2
n-1
-M -N where N M lt or 2
n
n
-M (-N) M N (2 - M) (2 - N)
2 - (M N) 2
n
n
After ignoring the carry, this is just the right
twos compl. representation for -(M N)!
10Circuits for Binary Addition
Half Adder
With twos complement numbers, addition is
sufficient
Half-adder Schematic
11Full Adder
Cascaded Multi-bit Adder
usually interested in adding more than two bits
this motivates the need for the full adder
12Full Adder
S CI xor A xor B CO B CI A CI A B
CI (A B) A B
13Full Adder Circuit
Standard Approach 6 Gates
A
A
B
B
CI
CO
S
CI
A
B
Alternative Implementation 5 Gates
A B
A B CI
A
S
S
S
Half
Half
CI (A B)
Adder
Adder
A B
B
CO
CO
CI
CO
A B CI (A xor B) A B B CI A CI
14Adder/Subtractor
Sel
0
1
0
1
0
1
0
1
Sel
Sel
Sel
A
B
A
B
A
B
A
B
Add/Subtract
CO
CI
CO
CI
CO
CI
CO
CI
S
S
S
S
Overflow
A - B A (-B) A B 1
15Delay Analysis of Ripple Adder
- Carry out of a single stage can be implemented in
2 gate delays - For a 16 bit adder, the 16th bit carry is
generated after 16 2 32 gate delays. - The sum bit takes one additional gate delay to
generate the sum of the 16th bit after 15th bit
carry - 15 2 1 31 gate delays
- Takes too long - need to investigate FASTER
adders!
16Carry Lookahead Adder
Critical delay the propagation of carry from low
to high order stages
A
_at_0
_at_1
_at_N1
late arriving signal
B
_at_0
CI
CO
_at_N
_at_N2
two gate delays to compute CO
A
_at_0
B
_at_0
_at_1
0
4 stage adder
1
2
3
final sum and carry
17Carry Lookahead Circuit
Critical delay the propagation of carry from low
to high order stages
S0, C1 Valid
S1, C2 Valid
S2, C3 Valid
S3, C4 Valid
1111 0001 worst case addition
T0
T2
T4
T6
T8
T0 Inputs to the adder are valid T2 Stage 0
carry out (C1) T4 Stage 1 carry out (C2) T6
Stage 2 carry out (C3) T8 Stage 3 carry out (C4)
2 delays to compute sum but last carry not
ready until 6 delays later
18Carry Lookahead Logic
Carry Generate Gi Ai Bi must
generate carry when A B 1 Carry Propagate Pi
Ai xor Bi carry in will equal carry out
here
Sum and Carry can be reexpressed in terms of
generate/propagate
Si Ai xor Bi xor Ci Pi xor Ci Ci1 Ai Bi
Ai Ci Bi Ci Ai Bi Ci (Ai Bi)
Ai Bi Ci (Ai xor Bi) Gi Ci
Pi
19Carry Lookahead Logic
Reexpress the carry logic as follows
C1 G0 P0 C0 C2 G1 P1 C1 G1 P1 G0
P1 P0 C0 C3 G2 P2 C2 G2 P2 G1 P2 P1 G0
P2 P1 P0 C0 C4 G3 P3 C3 G3 P3 G2 P3
P2 G1 P3 P2 P1 G0 P3 P2 P1 P0 C0
Each of the carry equations can be implemented in
a two-level logic network Variables are
the adder inputs and carry in to stage 0!
20Carry Lookahead Implementation
Ai
Pi _at_ 1 gate delay
Bi
Adder with Propagate and Generate Outputs
Si _at_ 2 gate delays
Ci
Gi _at_ 1 gate delay
Increasingly complex logic
P3
P3
P3
C4
G3
21Cascaded Carry Lookahead Logic
Carry lookahead logic generates individual carries
sums computed much faster
22Delay Analysis in Carry Lookahead
- Assume a 4-stage adder with CLA
- Propagate and generate signals available after 1
gate delays - Carry signals for slices 1 to 4 available after 3
gate delays - Sum signal for slices 1 to 4 after 4 gate delays
23Carry Lookahead Logic
Cascaded Carry Lookahead
4
4
4
4
4
4
4
4
_at_0
G
G
G
P
G
P
P
P
4
4
4
4
_at_7
_at_8
_at_4
_at_8
_at_3
_at_2
_at_4
_at_3
_at_2
_at_5
_at_3
_at_2
_at_5
_at_3
_at_2
Lookahead Carry Unit
_at_5
_at_0
_at_5
_at_3
4 bit adders with internal carry
lookahead second level carry lookahead unit,
extends lookahead to 16 bits
24Delay Analysis of Carry Lookahead
- Consider a 16-bit adder
- Implemented with four stages of 4-bit adders
using carry lookahead - Carry in to the highest stage is available after
5 gate delays - Sum from highest stage available at 8 gate delays
- COMPARE WITH 32 gate delays for a ripple carry
adder - NOTE HOWEVER THIS ASSUMES ALL GATE DELAYS ARE
SAME - Not true, delays depand on fan-ins and fan-out
25Carry Select Adder
- Carry Select adder trades of more hardware for
faster carry propagation - Basic idea is to break up 8 bit adder into two
4-bit adder chunks - While the lowest significant 4bit adder computes
carry out - In parallel have TWO high-order 4bit adders
compute result with two possible cases - carry in of 0
- carry in of 1
- Depending on final result use a multiplexer to
choose correct result
26Carry Select Adder
Redundant hardware to make carry calculation go
faster
0
1
0
1
0
1
0
1
0
1
compute the high order sums in parallel
one addition assumes carry in 0 the
other assumes carry in 1
27Delay Analysis in Carry Select Adders
- Consider an 8 bit adder using two 4 bit chunks
- Assume each internal 4-bit adder uses carry
lookahead - needs 4 gate delays to compute sums and 3 gate
delays to compute the stage carry-out - The 21 multiplexers add 2 more gate delays
- Hence 8-bit sum is valid after 6 gate delays
- COMPARED with 7 gate delays in a carry lookahead
unit and 16 gate delays of a ripple carry adder - AGAIN ASSUME that all gate delays are equal, not
true in practice
28Theory of Multiplication
Basic Concept
multiplicand multiplier
1101 (13) 1011 (11) 1101
product of 2 4-bit numbers is an 8-bit number
1101
Partial products
0000
1101
10001111
(143)
29Combinational Multiplier
Partial Product Accumulation
A0 B0 A0 B0
A1 B1 A1 B0 A0 B1
A2 B2 A2 B0 A1 B1 A0 B2
A3 B3 A2 B0 A2 B1 A1 B2 A0 B3
A3 B1 A2 B2 A1 B3
A3 B3
A3 B2 A2 B3
S6
S4
S7
S5
S3
S2
S1
S0
30Partial Product Accumulation
Note use of parallel carry-outs to form higher
order sums 12 Adders, if full adders, this is 6
gates each 72 gates 16 gates form the partial
products total 88 gates!
31Combinational Multiplier
Another Representation of the Circuit
Building block full adder and
4 x 4 array of building blocks
32Arithmetic Logic Unit Design
Sample ALU
Logical and Arithmetic Operations Not all
operations appear useful, but "fall out" of
internal logic
33Arithmetic Logic Unit Design
Sample ALU
Fi
Ci1
Traditional Design Approach
0
X
1
X
1
X
0
X
Truth Table Espresso
0
X
1
X
1
X
.i 6 .o 2 .ilb m s1 s0 ci ai bi .ob fi co .p
23 111101 10 110111 10 1-0100 10 1-1110 10 10010-
10 10111- 10 -10001 10 010-01 10 -11011 10 011-11
10 --1000 10 0-1-00 10 --0010 10 0-0-10 10 -0100-
10 001-0- 10 -0001- 10 000-1- 10 -1-1-1 01 --1-01
01 --0-11 01 --110- 01 --011- 01 .e
0
X
1
X
23 product terms!
0
X
0
X
1
X
0
X
1
X
Equivalent to 25 gates
1
X
0
X
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
34Arithmetic Logic Unit Design
Sample ALU
Multilevel Implementation
.model alu.espresso .inputs m s1 s0 ci ai
bi .outputs fi co .names m ci co 30 33 35
fi 110--- 1 -1-11- 1 --01-1 1 --00-0 1 .names m
ci 30 33 co -1-1 1 --11 1 111- 1 .names s0 ai
30 01 1 10 1 .names m s1 bi 33 111 1 .names
s1 bi 35 0- 1 -0 1 .end
\S1
M
35
Ci
Ci
\Bi
33
\Co
Ci
30
M
30
Co
33
S1
33
33
Fi
Bi
\Co
M
30
Ci
35
30
S0
\Co
30
Ai
\30
\35
12 Gates
35Arithmetic Logic Unit Design
Sample ALU
Clever Multi-level Logic Implementation
S1 0 blocks Bi Happens when operations involve
Ai only Same is true for Ci when M
0 Addition happens when M 1 Bi, Ci to Xor
gates X2, X3 S0 0, X1 passes A S0
1, X1 passes A
Bi
S1
Ai
S0
M
Ci
X1
A1
A2
X2
A3
A4
Arithmetic Mode
Or gate inputs are Ai Ci and Bi (Ai xor Ci)
X3
O1
Logic Mode
Ci1
Fi
Cascaded XORs form output from Ai and Bi
8 Gates (but 3 are XOR)
36Arithmetic Logic Unit Design
74181 TTL ALU
37Arithmetic Logic Unit Design
74181 TTL ALU
Note that the sense of the carry in and out are
OPPOSITE from the input bits
19
182
A3
13
21
6
A2
F3
181
P3
11
23
A1
F2
15
P2
2
10
7
A0
F1
P
2
9
18
P1
B3
F0
10
G
20
4
B2
P0
14
AB
22
B1
5
16
G3
Cn4
9
1
Cnz
B0
14
G2
17
G
11
Cny
7
Cn
1
15
G1
P
12
8
M
Cnx
3
G0
S3
S2
S1
S0
13
Cn
3
4
5
6
Fortunately, carry lookahead generator maintains
the correct sense of the signals
38Arithmetic Logic Unit Design
16-bit ALU with Carry Lookahead
C16
19
13
21
F3
11
23
F2
2
10
F1
9
18
F0
20
14
AB
22
16
Cn4
1
C0
17
G
7
15
P
8
S0
3
4
5
6
39General Logical Function Unit
Statement of the Problem
3 control inputs C0, C1, C2 2 data inputs A,
B 1 output F
Similar to the main computation unit in a
Microprocessor
40Logical Function Unit
Formulate as a truth table Choose
implementation technology
4 TTL packages 4 x 2-input NAND 4 x 2-input
NOR 2 x 2-input XOR 81 MUX
A
B
A
B
A
B
81 Mux
F
41Logical Function Unit
Follow implementation procedure
A B
00
01
11
10
00
1
1
F C2' A' B' C0' A B' C0' A' B
C1' A B
01
1
1
1
1
5 gates, 5 inverters Also four packages 4 x
3-input NAND 1 x 4-input NAND Alternative
PAL/PLA single package
11
1
1
10
1
1
1
1
A B
00
01
11
10
1
1
00
01
11
1
1
10
42Summary
- Review of Arithmetic Number Representation
- Adders - Ripple carry, Carry Lookahead, Carry
Select Adders - Combinational multipliers
- Arithmetic and Logic Unit (ALU)
- General function circuits
- NEXT LECTURE Memory Elements and Clocking
- READING Katz 6.1, 6.2, 6.3, Dewey 8.1, 8.2