Some arithmetic logic units implement a count leading zeros


E15: Fundamentals of Digital Systems - Fall 2015 - HOMEWORK 4

1. Consider this 4-bit ripple carry adder/subtractor circuit, which is comprised by four full adders along with four XOR gates.

2239_Figure.png

The inputs are as follows: A3:0 and B3:0 are the two 4-bit operands, in two's complement binary. When the Op input is equal to zero, the circuit performs addition (as we showed in class); however, we will now show that the circuit performs subtraction when Op is equal to one.

a. What happens to each Bi when Op = 1? Use the XOR truth table to help you determine this.

b. Imagine that each of the bits of A are equal to zero, and imagine that B3 = 0 (that is, the two's complement number B is non-negative). In this case, what is the relationship between the number B and the number S?

c. Use your answer above to explain how the overall effect of the circuit is to subtract B from A when Op = 1.

2. Download the binary arithmetic and delay.zip file from the course website. Then modify the four_bit_rca_nodelay.v file to create a new file named four_bit_adder_subtractor.v which implements the circuit depicted above. Verify that your circuit works by compiling the adder_subtractor_test.v test-bench, running the simulation, and comparing the output of your circuit to the expected output in a waveform viewer.

Note: you should select the "signed" radix/format in your waveform viewer to make sure the numbers are displayed correctly.

3. Construct a 16 x 1 multiplexer using two 8 x 1 multiplexers and one 2 x 1 multiplexer.

4. Some arithmetic logic unit's implement a count leading zeros (CLZ) function that takes an unsigned 2n-bit number as input, and outputs the number of consecutive 0's from the MSB until the first 1.

a. Draw a truth table for a 4-bit CLZ circuit. You can use X's in the input rows to cover multiple values.

b. Which of the combinational logic modules we have discussed in class would be best to implement the CLZ function? Draw a block diagram labeling the module you used (you may also need a few extra gates outside the module, depending how you solve this).

c. Why is the output of the CLZ function said to be undefined when the input is all zero bits?

5. Construct a combinational circuit to rotate bits. Your circuit should have six inputs (x3, x2, x1, x0, s1, s0), and four outputs (y3, y2, y1, y0). The purpose of the circuit is to output the bits of x rotated to the right s times, as shown in this truth table:

s1

s0

y3

y2

y1

y0

0

0

x3

x2

x1

x0

0

1

x0

x3

x2

x1

1

0

x1

x0

x3

x2

1

1

x2

x1

x0

x3

Rather than using individual gates, you should use only the combinational logic modules we discussed in class this week.

Attachment:- binary arithmetic and delay.zip

Request for Solution File

Ask an Expert for Answer!!
Other Engineering: Some arithmetic logic units implement a count leading zeros
Reference No:- TGS01478566

Expected delivery within 24 Hours