15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

k + 1, etc. Extending to a third stage:<br />

© 2002 by CRC Press LLC<br />

c k+3 = g k+2 + p k+2c k+2<br />

= gk+2 + pk+2 ( gk+1 + pk+1g k + pk+1p kck) = g k+2 + p k+2 g k+1 + p k+2 p k+1 g k + p k+2 p k+1p kc k<br />

(9.8)<br />

Although it would be possible to continue this process indefinitely, each additional stage increases the<br />

fan-in (i.e., the number of inputs) of the logic gates. Four inputs (as required to implement Eq. (9.8))<br />

is frequently the maximum number of inputs per gate for current technologies. To continue the process,<br />

block generate and block propagate signals are defined over four bit blocks (stages k to k + 3), g k:k+3 and<br />

p k:k+3, respectively:<br />

and<br />

g k:k+3 = g k+3 + p k+3 g k+2 + p k+3 p k+2 g k+1 + p k+3 p k+2 p k+1 g k<br />

p k:k+3 = p k+3 p k+2 p k+1 p k<br />

Equation (9.6) can be expressed in terms of the 4-bit block generate and propagate signals:<br />

c k+4 = g k:k+3 + p k:k+3 c k<br />

(9.9)<br />

(9.10)<br />

(9.11)<br />

Thus, the carry out from a 4-bit wide block can be computed in only four gate delays (the first to compute<br />

pi and gi for i = k through k + 3, the second to evaluate pk:k+3, the second and third to evaluate gk:k+3, and<br />

the third and fourth to evaluate ck+4 using Eq. (9.11)).<br />

An n-bit carry lookahead adder requires ( n – 1)/<br />

( r – 1)<br />

lookahead blocks, where r is the width<br />

of the block. A 4-bit lookahead block is a direct implementation of Eqs. (9.6)–(9.10), with 14 logic gates.<br />

In general, an r-bit lookahead block requires (3r + r 2 1<br />

-- ) logic gates. The Manchester carry chain [3] is an<br />

2<br />

alternative switch-based technique for the implementation of the lookahead block.<br />

Figure 9.5 shows the interconnection of 16 adders and five lookahead logic blocks to realize a 16-bit<br />

carry lookahead adder. The sequence of events, which occur during an add operation, is as follows: (1)<br />

apply A, B, and carry in signals, (2) each adder computes P and G, (3) first level lookahead logic computes<br />

the 4-bit propagate and generate signals, (4) second level lookahead logic computes c4, c8, and c12, (5)<br />

first level lookahead logic computes the individual carries, and (6) each adder computes the sum outputs.<br />

This process may be extended to larger adders by subdividing the large adder into 16-bit blocks and<br />

using additional levels of carry lookahead (a 64-bit adder requires three levels).<br />

The delay of carry lookahead adders is evaluated by recognizing that an adder with a single level of<br />

carry lookahead (for 4-bit words) has six gate delays, and that each additional level of lookahead increases<br />

the maximum word size by a factor of four and adds four gate delays. More generally [4, pp. 83–88], the<br />

number of lookahead levels for an n-bit adder is logrn where r is the maximum number of inputs<br />

per gate. Since an r-bit carry lookahead adder has six gate delays and there are four additional gate delays<br />

per carry lookahead level after the first,<br />

DELAYCLA = 2 + 4 logrn (9.12)<br />

The complexity of an n-bit carry lookahead adder implemented with r-bit lookahead blocks is n<br />

modified full adders (each of which requires eight gates) and ( n – 1)/<br />

( r – 1)<br />

lookahead logic blocks<br />

[each of which requires (3r + r 2 1<br />

-- ) gates].<br />

2<br />

GATESCLA = 8n + (3r + r 2 1<br />

-- ) n – 1<br />

(9.13)<br />

2<br />

----------r<br />

– 1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!