module PTcommands( input clk, input enable, input [2:0] code, output reg PTsequence, output reg reset, output reg PTsending); reg enable_save; reg [6:0] PTsequence_reg; reg [3:0] counter; initial begin enable_save <= 0; PTsequence_reg <= 0; PTsequence <= 0; reset <= 0; counter <= 4'b1111; PTsending <= 0; end always @(posedge clk) begin enable_save <= enable; reset <= 0; PTsequence <= 0; PTsending <= 0; if (counter < 4'b0111) begin PTsequence <= PTsequence_reg[6]; PTsequence_reg <= PTsequence_reg << 1; counter <= counter + 1'b1; PTsending <= 1; end if (counter == 4'b0111) begin reset <= 1; counter <= counter + 1'b1; end if (enable_save < enable) begin case (code) 3'b000: PTsequence_reg <= 0; 3'b001: PTsequence_reg <= 7'b100_0000; 3'b010: PTsequence_reg <= 7'b110_0000; 3'b011: PTsequence_reg <= 7'b111_0000; 3'b100: PTsequence_reg <= 7'b111_1000; 3'b101: PTsequence_reg <= 7'b111_1001; 3'b110: PTsequence_reg <= 7'b111_1010; 3'b111: PTsequence_reg <= 7'b111_1011; endcase counter <= 0; reset <= 1; PTsending <= 1; end end endmodule