how to do a shift/add multiplier in verilog?
If there is a
posedge clk

in the sensitivity list of an always block, the condition
if(clk)

will be always true. And
else begin
  Q&lt;=Q&lt;&lt;1;
end

will never be deployed.