module clkdiv ( input rst_i, input clk, // clk input output o_divclk ); reg [23:0] counter; always @(posedge clk or negedge rst_i) begin if (!rst_i) counter <= 24'd0; // else if (counter < 24'd1349_9999) // 0.5s delay else if (counter < 24'd674_9999) // 0.5s delay counter <= counter + 1'b1; else counter <= 24'd0; end always @(posedge clk or negedge rst_i) begin if (!rst_i) o_divclk <= 1'b0; // else if (counter == 24'd1349_9999) // 0.5s delay else if (counter == 24'd674_9999) // 0.5s delay o_divclk[0] <= o_divclk[0] + 1; else o_divclk <= o_divclk; end endmodule