**Q-Implement binary multiplication using shifter:**

**Eg. **If we are multiply 11 * 4

Then 11 = 1011 4 = 0100

**Algorithm:** For multiplication we first multiply the LSB of 4 (multiplier) with multiplicand and then shift it towards right. Then we multiply the next bit and then add it to the shifted result. Again we MULTIPLY, ADD & Shift or if bit of multiplier is 1 then ADD multiplicand and SHIFT and if bit of multiplier is 0 then ADD zero (or don’t perform ADD but just) SHIFT. We store multiplier in register Q & multiplicand in A and use adder as:

Now I’ll show the contents of shifter at every clock tick if we have to find A* B = 1011 * 0100

Clock tick contents of register Function

1^{st} tick 0 0000 0100 Initial data is stored in register from inputs

2^{nd} tick 0 0000 0100 Result of adder is stored

2^{nd} tick 0 0000 0010 it is shifted towards right

3^{rd} tick 0 0000 0010 Result of adder is stored

3^{rd} tick 0 0000 0001 shifted right again

4^{th} tick 0 1011 0001 firstly result of adder is stored

4^{th} tick 0 0101 1000 now right shifted

5^{th} tick 0 0101 1000 Result of adder is stored

5^{th} tick 0 0010 1100 Again right shifted

And we get the answer as 00101100_{2}