gogogaga
This commit is contained in:
61
RTL/UartTx.sv
Normal file
61
RTL/UartTx.sv
Normal file
@ -0,0 +1,61 @@
|
||||
// Generated by CIRCT firtool-1.139.0
|
||||
module UartTx(
|
||||
input clock,
|
||||
reset,
|
||||
output io_data_ready,
|
||||
input io_data_valid,
|
||||
input [7:0] io_data_bits,
|
||||
output io_signal,
|
||||
input io_clock_enable
|
||||
);
|
||||
|
||||
reg [1:0] state;
|
||||
reg [7:0] data;
|
||||
reg data_waiting;
|
||||
reg [2:0] bit_counter;
|
||||
reg [7:0] stop_bit_wait;
|
||||
wire _GEN = state == 2'h0;
|
||||
wire _GEN_0 = state == 2'h1;
|
||||
wire _GEN_1 = state == 2'h2;
|
||||
wire [7:0] _io_signal_T = data >> bit_counter;
|
||||
always @(posedge clock) begin
|
||||
automatic logic _GEN_2;
|
||||
_GEN_2 = ~data_waiting & io_data_valid;
|
||||
if (reset) begin
|
||||
state <= 2'h0;
|
||||
data_waiting <= 1'h0;
|
||||
stop_bit_wait <= 8'h0;
|
||||
end
|
||||
else begin
|
||||
automatic logic _GEN_3;
|
||||
automatic logic _GEN_4;
|
||||
automatic logic _GEN_5 = _GEN | _GEN_0 | _GEN_1;
|
||||
_GEN_3 = stop_bit_wait == 8'h14;
|
||||
_GEN_4 = (&state) & _GEN_3;
|
||||
if (io_clock_enable) begin
|
||||
automatic logic [3:0][1:0] _GEN_6;
|
||||
_GEN_6 =
|
||||
{{_GEN_4 ? 2'h0 : state},
|
||||
{{1'h1, &bit_counter}},
|
||||
{2'h2},
|
||||
{{1'h0, data_waiting}}};
|
||||
state <= _GEN_6[state];
|
||||
end
|
||||
data_waiting <= (~io_clock_enable | _GEN_5 | ~_GEN_4) & (_GEN_2 | data_waiting);
|
||||
if (~io_clock_enable | _GEN_5 | ~(&state)) begin
|
||||
end
|
||||
else
|
||||
stop_bit_wait <= _GEN_3 ? 8'h0 : stop_bit_wait + 8'h1;
|
||||
end
|
||||
if (_GEN_2)
|
||||
data <= io_data_bits;
|
||||
if (io_clock_enable) begin
|
||||
automatic logic [3:0][2:0] _GEN_7 =
|
||||
{{bit_counter}, {bit_counter + 3'h1}, {3'h0}, {bit_counter}};
|
||||
bit_counter <= _GEN_7[state];
|
||||
end
|
||||
end // always @(posedge)
|
||||
assign io_data_ready = ~data_waiting;
|
||||
assign io_signal = _GEN | ~_GEN_0 & (~_GEN_1 | _io_signal_T[0]);
|
||||
endmodule
|
||||
|
||||
Reference in New Issue
Block a user