Svcet: 1. Explain Carry Look Ahead Adders in Detail
Svcet: 1. Explain Carry Look Ahead Adders in Detail
Idea
Try to “predict” Ck earlier than Tc*k
Instead of passing through k stages, compute Ck separately using additional logic
Operation Mechanism
1. Calculating, for each digit position, whether that position is going to propagate a carry
if one comes in from the right.
2. Combining these calculated values to be able to deduce quickly whether, for each group
of digits, that group is going to propagate a carry that comes in from the right.
CLA – Concept
ET
To reduce the computation time, there are faster ways to add two binary numbers by
using carry lookahead adders.
C
They work by creating two signals P and G known to be Carry Propagator and Carry
SV
Generator.
The carry propagator is propagated to the next level whereas the carry generator is used
to generate the output carry regardless of input carry.
The block diagram of a 4-bit Carry Lookahead Adder is shown here below
The number of gate levels for the carry propagation can be found from the circuit of full adder.
The signal from input carry Cin to output carry Cout requires an AND gate and an OR gate,
which constitutes two gate levels. So if there are four full adders in the parallel adder, the output
carry C5would have 2 X 4 = 8 gate levels from C1 to C5. For an n-bit parallel adder, there are
2n gate levels to propagate through.
CS 6303 - Computer Architecture Unit 2 – Q & A
Design Issues
The corresponding boolean expressions are given here to construct a carry lookahead
adder. In the carry-lookahead circuit we ned to generate the two signals carry propagator(P)
and carry generator(G),
Pi = Ai ⊕ Bi
Gi = Ai · Bi
Sumi = Pi ⊕ Ci
Ci+1 = Gi + ( Pi · Ci)
Having these we could design the circuit. We can now write the Boolean function for
the carry output of each stage and substitute for each Ci its value from the previous equations:
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
ET
A B C-out
0 0 0 “kill”
C
0 1 C-in “propagate”
1 0 C-in “propagate”
SV
1 1 1 “generate”
c2 = g1 + p1c1
= g1 + p1(g0 + p0c0)
= g1 + p1g0 + p1p0c0
c3 = g2 + p2c2
c4 = g3 + p3c3
Example,
A number in scientific notation that has a single digit to the left of the decimal point
has no leading 0s is called a normalized number.
Example, 1.010 x 10-9 is in normalized scientific notation, but 0.110 x 10-8 & 10.010 x
10-10 are not.
Binary numbers in scientific notation: 1.02 X 2-1, here decimal point is called as
binary point for clarity.
The representation has 2 parts that has fraction part and exponent part. The fraction part
C
size is used to increase or decrease precision. The exponent part size is used to increase or
decrease the range of the number.
SV
The representation has 1 sign bit where bit -0 represents +ve value and bit -0 represents
negative value.
(-1)S x F x 2E
Overflow here means that the exponent is too large to be represented in the exponent
field.
The smallest non zero fraction that can be represented in the fraction field, when it is
too small to store in faction field then we call it as underflow.
CS 6303 - Computer Architecture Unit 2 – Q & A
Hence, the number is actually 24 bits long in single precision (implied 1 and a 23-bit
fraction), and 53 bits long in double precision (1 + 52).
The IEEE format uses NaN, for Not a Number to represent undefined values like
ET
infinity, calculation of 0/0 values etc.
IEEE 754 uses a bias of 127 for single precision, so an exponent of -1 is represented by
the bit pattern of the value -1+ 127ten, or 126ten and +1 is represented by 1 + 127ten, or 128ten
Step 1 : Align the decimal point of the number that has the smaller exponent. here 1.610ten X
10-1 is number that has small exponent value among the given two number. So moving the
decimal place to left we achieve the same exponent value as the larger number.
1.610ten X 10-1 = 0.1610ten X 100 = 0.01610ten X 101
1
only 4 digits are used so the now becomes 0.016ten X 10
Step 3. This sum is not in normalized scientific notation, so we need to adjust it:
10.015ten X 101 = 1.0015ten X 102
The exponent is increased or decreased, we must check for overflow or underflow—
ET
that is, we must make sure that the exponent still fits in its field.
Step 4. Since we assumed that the significand can be only four digits long (excluding the sign),
C
we must round the number. The number 1.0015ten X 102 is rounded to four digits in the
significand to
SV
1.002ten X 102
CS 6303 - Computer Architecture Unit 2 – Q & A
Step 2: Add the significand: 1.000 two + (-0.111 two ) = 0.001two x 2-1
Step 1 : Unlike addition, we calculate the exponent of the product by simply adding the
exponents of the operands together:
Step 4 : We assumed that the significand is only four digits long (excluding the sign), so we
must round the number. The number 1.0212ten X 106 is rounded to four digits in the significand
to 1.021ten X 106.
Step 5 : The sign of the product depends on the signs of the original operands. If they are both
the same, the sign is positive; otherwise, it’s negative. Hence, the product is +1.021ten X 106
CS 6303 - Computer Architecture Unit 2 – Q & A
ET
C
SV
Step 5. Since the sign of the operands are different so the show product as negative.
-1.110 two x 2-3
converting to decimal, -1.110 two x 2-3 = -0.001110two , After conversion we get -7
x 2-5ten
= - 7/25ten = -7/32 ten = -0.21875 ten
ET
C
SV