I have a code like this
module tff (q, clk, reset);
output reg q;
input clk, reset;
always @(posedge reset or negedge clk) begin
if (reset) begin
q <= 1'b0;
end else if (clk) begin
if (q == 5) begin
q <= 1'b0;
end
end else begin
q <= ~q;
end
end
endmodule
module ripple_counter(q, clk, reset);
output [2:0] q;
input clk, reset;
tff tff0 (q[0], clk, reset);
tff tff1 (q[1], q[0], reset);
tff tff2 (q[2], q[1], reset);
endmodule
I would like the register "q" to count to 5 and then reset, but currently it is resetting at 7 instead.