module booths( a,b,clk,z);
input[7:0] a,b;
input clk;
//output [15:0] c;
output [24:0] z;
reg [24:0] z;
reg [7:0] y;
reg[15:0] c;
integer i=0;
initial
begin
y=b;
z[24:9]=16'b0;
z[8:1]=a;
z[0]=0;
y=~y;
y=y+1'b1;
end
always@(posedge clk )
begin
if(i<8)
begin
case (z[1:0])
2'b00:
begin
z[8:0]=z[8:0]>>1;
z[8]=z[0];
z[24:9]=z[24:9]>>1;
z[24]=z[23];
end
2'b11 :
begin
z[8:0]=z[8:0]>>1;
z[8]=z[0];
z[24:9]=z[24:9]>>1;
z[24]=z[23];
end
2'b01 :
begin
z[24:17]=z[24:17]+ b;
z[8:0]=z[8:0]>>1;
z[8]=z[0];
z[24:9]=z[24:9]>>1;
z[24]=z[23];
end
2'b10 :
begin
z[24:17]=z[24:17] + y;
z[24:0]=z[24:0]>>1;
z[24]=z[23];
z[8]=z[0];
end
endcase
end
i=i+1;
c[15:0]=z[24:9];
end
endmodule