15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

a 12:15 b 12:15<br />

4-Bit RCA<br />

s 12:15<br />

FIGURE 9.6 16-bit carry skip adder.<br />

Carry Skip Adder<br />

The carry skip adder divides the words to be added into blocks (like the carry lookahead adder). The<br />

basic structure of a 16-bit carry skip adder is shown on Fig. 9.6. Within each block, a ripple carry adder<br />

produces the sum bits and the carry (which is used as a block generate). In addition, an AND gate is<br />

used to form the block propagate signal. These signals are combined using Eq. (9.11) to produce the<br />

carry signal for the next block.<br />

For example, with k = 3, Eq. (9.11) yields c 6 = g 3:5 + p 3:5c 3. The carry out of the second ripple carry<br />

adder is a block generate signal if it is evaluated when carries generated by the data inputs (i.e., a 3:5 and<br />

b 3:5 on Fig. 9.6) are valid, but before the carry that results from the c 3. Normally, these two types of carries<br />

coincide in time, but in the carry skip adder, the c 3 signal is produced by a 3-bit ripple carry adder, so<br />

the carry output is a block generate from nine gate delays after application of A and B until it becomes<br />

c 6 at 15 gate delays after application of A and B.<br />

In the carry skip adder, the first and last blocks are simple ripple carry adders while the ⎡n/k⎤ − 2<br />

intermediate blocks are ripple carry adders augmented with three gates. The delay of a carry skip adder<br />

is the sum of 2k + 3 gate delays to produce the carry in the first block, two gate delays through each of<br />

the intermediate blocks, and 2k + 1 gate delays to produce the most significant sum bit in the last block.<br />

To simplify the analysis, the ceiling function in the count of intermediate blocks is ignored. If the block<br />

width is k:<br />

© 2002 by CRC Press LLC<br />

a 9:11<br />

b 9:11<br />

c<br />

g9:11 12 c<br />

g6:8 9<br />

c<br />

g3:5 6 c3 3-Bit RCA<br />

3-Bit RCA<br />

3-Bit RCA 3-Bit RCA<br />

p11p10p9 p8 p7 p6 p5 p4 p3 s 9:11<br />

a 6:8<br />

DELAYSKIP = 2k + 3 + 2 ⎛n -- – 2⎞<br />

+ 2k + 1<br />

⎝k⎠ n<br />

= 4k + 2 --<br />

(9.15)<br />

k<br />

where DELAY SKIP is the total delay of the carry skip adder with a single level of k-bit wide blocks. The<br />

optimum block size is determined by taking the derivative of DELAY SKIP with respect to k, setting it to<br />

zero and solving for k. The resulting optimum values for k and DELAY SKIP are<br />

n<br />

k = --<br />

(9.16)<br />

2<br />

DELAYSKIP = 4 2n<br />

(9.17)<br />

Better results can be obtained by varying the block width so that the first and last blocks are smaller and<br />

the intermediate blocks are larger, and by using multiple levels of carry skip [5,6].<br />

The complexity of the carry skip adder is only slightly greater than that of a ripple carry adder because<br />

the first and last blocks are ripple carry adders and the intermediate stages are ripple carry adders with<br />

three gates added for carry skipping.<br />

b 6:8<br />

s 6:8<br />

GATESSKIP = 9n + 3 ⎛ n<br />

-- – 2⎞<br />

(9.18)<br />

⎝ k ⎠<br />

a 3:5<br />

b 3:5<br />

s 3:5<br />

a 0:2<br />

s 0:2<br />

b0:2 c0

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

Saved successfully!

Ooh no, something went wrong!