Search code examples
assemblymipsmultiplicationalu

Hardware Multiplication ALU


I have multiplicand 5 , multiplier 7 which they are binary representation :

5 = 0101 , 7 = 0111 (4-bit)

Register A to save the data to be multiplied(Multiplicand).

Register B to save the multiplier data (Multiplier).

Register P to save multiplication results.

Here is what I've tried enter image description here

Here is my reference on a journal:

enter image description here

Can someone please point out what I am doing wrong? the binary result should be 00100011 (decimal : 35)


Solution

  • During addition, you failed to propagate the carry to left and have erroneously labelled it "carry out". It should be added to bit to left, this will also generate a carry so repeat the process.