UART_RX
UART_RX
Verilog Code
//UART MODULE
module uart_rx #(
parameter DBIT = 8, // # data bits
SB_TICK = 16 // # stop bit ticks
)
(reset, clk, rx, count, rx_dout, rx_done_tick);
input reset; //reset
input clk; //clock
input rx; //receiver line
input [4:0] count; //count value for baud rate gen
output [7:0] rx_dout; //receiver output
output rx_done_tick; //receiving done status signal
wire tick; //connect tick signal of baud rate generator and receiver
//receiver instance
uart_rx_module #(.DBIT(DBIT), .SB_TICK(SB_TICK))receiver(
.clk(clk),
.reset_n(reset),
.tick_signal(tick),
.rx(rx),
.rx_done_tick(rx_done_tick),
.rx_dout(rx_dout)
);
endmodule
endmodule
//receiver module
module uart_rx_module
#(parameter DBIT = 8, // # data bits
SB_TICK = 16 // # stop bit ticks
)
(
input clk, //clock
input reset_n, //reset
input rx, //receiver line
input tick_signal, //tick_signal
output reg rx_done_tick, //status signal
output [DBIT-1:0] rx_dout //data output
);
// output logic
assign rx_dout = b_reg;
endmodule
Testbench
module uart_rx_fifo_tb_v;
// Inputs
reg reset;
reg clk;
reg rx;
reg [4:0] count;
// Outputs
wire [7:0] rx_dout;
wire rx_done_tick;
integer i=0; //integer for loop
reg [7:0] TxData; //register for data transmission
// Instantiate the Unit Under Test (UUT)
uart_rx uut (
.reset(reset),
.clk(clk),
.rx(rx),
.count(count),
.rx_dout(rx_dout),
.rx_done_tick(rx_done_tick)
);
always begin
clk = 1'b0;
#5;
clk =1'b1;
#5;
end
Problem
Unable to read out data from receiver.