Вам нужно сделать синхронизацию по фронту, тогда все будет работать: always @(posedge clk) begin
module m1(clk, d0, d1, d2, d3, out, counter);
input wire clk;
input wire d0, d1, d2, d3;
output reg out = 0;
output reg [3:0] counter = 0;
always @(posedge clk) begin
counter <= counter + 1;
end
endmodule