T-FlipFlop

module t_flip_flop(
	input reset,
	input clock,
	output reg q,
	output not_q
);
	assign not_q = ~q;

	always @(posedge clock or posedge reset) begin
		if (reset) begin
			q <= 0;
		end else begin
			q <= ~q;
		end
	end
endmodule