module BaudRateGenerator2 #( parameter CLOCK_RATE = 27000000, parameter BAUD_RATE = 9600 )( input wire clk, output reg tx_rx_Clk = 0 ); localparam integer BAUD_DIV = CLOCK_RATE / (BAUD_RATE * 2); // Divide by 2 for half-period reg [15:0] counter = 0; always @(posedge clk) begin if (counter >= (BAUD_DIV - 1)) begin counter <= 0; tx_rx_Clk <= ~tx_rx_Clk; end else begin counter <= counter + 1; end end endmodule