module tick_div4(
input wire clk,
input wire rst,
output reg tick
);
reg [1:0] cnt;
always @(posedge clk) begin
tick <= rst ? 1'b0 : (cnt == 2'd3);
cnt <= rst ? 2'd0 : (cnt + 2'd1);
end
endmodule
0→1→2→3→0…; that’s all you need to make a /4 divider.cnt for the whole clock edge.tick <= (cnt == 3); and cnt <= cnt + 1; both see the old cnt, so tick is high only when the old value was 3, while cnt wraps to 0. That guarantees a one-cycle pulse.rst on a rising edge, the first tick appears on the fourth subsequent rising edge (three low cycles between pulses).