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
1st tick 0 0000 0100 Initial data is stored in register from inputs
2nd tick 0 0000 0100 Result of adder is stored
2nd tick 0 0000 0010 it is shifted towards right
3rd tick 0 0000 0010 Result of adder is stored
3rd tick 0 0000 0001 shifted right again
4th tick 0 1011 0001 firstly result of adder is stored
4th tick 0 0101 1000 now right shifted
5th tick 0 0101 1000 Result of adder is stored
5th tick 0 0010 1100 Again right shifted
And we get the answer as 001011002