99999999999 0 Newbie Poster

this is my code for 16 - bit multiplier with booth algorithm .what is the problem ??

 module booth (prod , busy , mc , mp ,clk  );
   output [15:0] prod ;

   input [7:0] mc , mp ;
   input clk  ;
   reg [7:0] A , Q , M ;
   reg Q_1 ;


    integer i ;

 always @(posedge clk)
 begin

   A <= 8'b0;
     M <= mc;
     Q <= mp ;

     Q_1<=1'b0;





for ( i = 0 ; i  < 8 ; i= i+1)
begin




   if(Q[0] == 0 && Q_1 == 1)
   A <= A+~M+1;
   Q_1 <= Q[0];
   Q <= Q >>> 1;
   A <= A >>>1 ; 

    if(Q[0] == 1 && Q_1 == 0)

  A <= A+M;
   Q_1 <= Q[0];
   Q <= Q >>> 1;
   A <= A >>>1 ; 

  if(Q[0] == Q_1 )
     Q_1 <= Q[0];
   Q <= Q >>> 1;
   A <= A >>>1 ; 




   end

 end


assign   prod = {A , Q};



   endmodule