Hardware Multiplication ALU

484 Views Asked by At

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)

1

There are 1 best solutions below

0
On BEST ANSWER

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.