Is there any difference between nonblocking and blocking assignment for the following counters?
module nonblocking_counter ( input clk, input rstn, output reg[3:0] out ); always @ (posedge clk) begin if (! rstn) out <= 0; else out <= out + 1; end endmodule module blocking_counter ( input clk, input rstn, output reg[3:0] out ); always @ (posedge clk) begin if (! rstn) out = 0; else out = out + 1; end endmodule