Question

In: Computer Science

Q. Compare and contrast Ripple-Carry Adder and Carry-Look ahead Adder 1) In a 4-bit ripple-carry adder...

Q. Compare and contrast Ripple-Carry Adder and Carry-Look ahead Adder

1) In a 4-bit ripple-carry adder as shown in Figure 5.2, assume that each full-adder is implemented using the design as shown in Figure 3.11 (a) and each single logic gate (e.g., AND, OR, XOR, etc.) has a propagation delay of 10 ns. What is the earliest time this 4-bit ripple-carry adder can be sure of having a valid summation output? Explain how you reached your answer and how you did your calculations.

Solutions

Expert Solution

Carry-look ahead adder or fast adder is a type of adder used in digital logic. Carry-look ahead adder enhances speed by reducing the amount of time required to determine carry bits. This can be contrasted with the simpler, but usually slower, ripple carry adder for which the carry bit is calculated alongside the sum bit, and each bit must wait until the previous carry has been calculated to begin calculating its own result and carry bit. The carry-look ahead adder calculates one or more carry bits before the sum, which reduces the wait time to calculate the result of the larger value bits. The Kogge-Stone adder is an example of this type.

Suppose that the propagation delays for the and or gates are 0.1 ns each, while that for the xor’s is 0.2 ns. (XOR requires a more complex circuit). Then the delay from A or B to Count is max(0.1 + 0.1 ns, 0.2 + 0.1 + 0.1 ns) = max (0.2, 0.4 ns) = 0.4 ns.

Suppose a CPU is designed to run at 2 GHz. Then the
worst-case propagetion delay down any path must be less than
1 / (2 GHz) = 1 / (2 x 109 sec-1) = 0.5 x 10-9 sec = 0.5 ns

In 4 bit Carry Look ahead method

In case of binary addition, A + B generate if and only if both A and B are 1. If we wrote G(A,B) to represent the binary predicate that is true if and only if A + B generates, we have:
G(A,B) = A.B
It was based on
the fact that carry signal will be generated in two cases:
(1) when both bits Ai and Bi are 1, or
(2) when one of the two bits is 1 and the carry-in (carry of the previous stage) is 1

We can write the carry-out of this adder using sum of products. However, there is an alternate way of writing the carry out.

Before discussing how to write it, let's define a few terms first. Recall that we are adding 2 n-bit numbers: xn-1...x0 to yn-1...y0 which results in zn-1...z0. In a ripple carry adder, we assign a full adder (call it adder i) to add xi to yi. We'll use the ripple carry adders which only uses full adders.

Adder i also has a carry in. We'll call that ci. It generates a carry out, which we'll call ci + 1. When we add the least significant bits c0 = 0. However, we'll simply leave it as c0.

We can write the Boolean expression for the carry-out in an alternating way:

ci+1 = xiyi + xici + yici
This Boolean expression has the same truth table as above. Even it makes intuitive sense. There's a carry out when any 2 of the 3 bits (i.e., xi, yi, or ci) have a value of 1. Thus, xiyi is 1 only when both xi and yi are 1. And since this is inclusive OR, all 3 bits could be 1.
We use the distributive property to rewrite the carry out as:

ci+1 = xiyi + ci(xi + yi)
Let's define 2 terms:
gi = xiyi
pi = xi + yi
Then, we can rewrite ci + 1 using these two terms, as:
ci+1 = gi + pici
gi is called the generate term. This always generates a carry out. gi = xiyi, which is 1 only when xi and yi are both 1. Clearly, if two bits are 1, there's a carry.
pi is called the propagete term. pi = xi + yi. This could create a carry, but it may not. We know that at least one of xi or yi must be 1 if pi = 1.

This is called propagate for the below reason. If exactly one of xi or yi is 1, then the carry-in determine whether there is a carry-out of 1 or not. Thus, if ci is 1, there is a carry-in of 1, which will cause a carry-out of 1. If ci is 0, then the carry-out is 0.

To propagate, in this case, means to assist. For example, suppose you are standing in a line. Some one say’s to hand something forward, say, a piece of paper. Though you did not bring the piece of paper, you can help move it along (i.e., help propagate it) by forwarding it to the next person. Similarly, propagating a carry means to move the carry from the previous adder to the next adder.

Mostly, we only care about propagating a 1. We are not that concerned about propagating 0's. That's why we AND pi to ci. By itself, pi may not cause a carry. Though, it can propagate a carry-in of 1, by causing a carry-out of 1, if pi is 1.


Related Solutions

What is the depth of a 24-bit ripple carry adder?
What is the depth of a 24-bit ripple carry adder?
What is the depth of a 24-bit ripple carry adder
What is the depth of a 24-bit ripple carry adder
SYSTEM VERILOG: Using your preferred HDL program, design a complete 4-bit Carry Look Ahead (CLA) adder...
SYSTEM VERILOG: Using your preferred HDL program, design a complete 4-bit Carry Look Ahead (CLA) adder module.
Provide the VHDL specification of a hybrid 32-bit adder that cascades 2 12 bit carry look...
Provide the VHDL specification of a hybrid 32-bit adder that cascades 2 12 bit carry look ahead adders and one 10 bit carry look ahead adder. a) Compare your adder with a full 32-bit carry-look ahead in performance and cost. b) Compare your adder with a full combinational adder in performance and cost c) Compare your adder with a ripple-carry adder in performance and cost. d) Compare your adder to a bit serial (sequential) adder in performance and cost. e)...
write gate level 4bit carry look ahead adder in verilog without any assign and always in...
write gate level 4bit carry look ahead adder in verilog without any assign and always in the code.
write gate level 16bit carry look ahead adder in verilog without any assign and always in...
write gate level 16bit carry look ahead adder in verilog without any assign and always in the code.
Design and Test an 8-bit Adder using 4-bit adder. Use 4-bit adder coded in class using...
Design and Test an 8-bit Adder using 4-bit adder. Use 4-bit adder coded in class using full adder that is coded using data flow model. Use test bench to test 8-bit adder and consider at least five different test vectors to test it.
Write the equations for carry-out bits for a 4-bit carry lookahead adder. Draw its diagram and...
Write the equations for carry-out bits for a 4-bit carry lookahead adder. Draw its diagram and label all the inputs and the outputs. Compare the delays of the 4-bit ripple-carry and 4-bit carry lookahead adders.
Problem 3.73 (1-bit full adder using carry lookahead – gate level circuit) 3.73 Design a 4-bit...
Problem 3.73 (1-bit full adder using carry lookahead – gate level circuit) 3.73 Design a 4-bit full adder using carry look-ahead rather than ripple carry.
Design a 32 bit adder using a single 4 bit adder using verilog code
Design a 32 bit adder using a single 4 bit adder using verilog code
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT