Solution - Homework Combinatorial Logic
Question 1: Here is the truth table:
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Question 2:
Question 3:

Question 4:

Question 5: The propagation time of the carry chain is easy to determine. Since the and inputs are valid at , the -th carry depends only on the incoming () carry. Therefore the -th carry is valid at , and the propagation time for the last (outgoing) carry is .
For the sum ouput, each sum bit needs to wait for the incoming carry . Adding the computation time, the propagation time for is , and the last sum bit arrives at .
Question 6: The basic idea of the CSA is to break the long carry chains of the carry-ripple adder. As we have seen in the previous exercise, in order to compute the sum and carry output bits, we need to wait for the incoming carry bit. In order to speed up the computation, we cut the operands in half, obtaining two parts of four bits each. For the lower part, we use a simple carry-ripple adder. For the upper part, instead of waiting for the incoming carry bit, we perform two computations in advance, for the two possible cases of and , respectively. Then, once the actual value of is known, we select the correct response using a multiplexer. While this is potentially faster, we have duplicated the logic for the addition of the higher half of the operands.
Question 7: Based on the result from Question 5, the carry bits of the three adders are available at , and the last sum bits at . Adding the propagation time of the multiplexers, we obtain the overall time of 6 ns, or in the general case.