This repository contains a Verilog implementation of a UART (Universal Asynchronous Receiver Transmitter).
- 8-bit data
- 1 stop bit
- No parity
- Flag + 1-word buffer interface
- Separate RX and TX modules
- Designed following Pong P. Chu's architecture
uart_rx.v: UART receiver (oversampling-based)uart_tx.v: UART transmitterflag_buf.v: Flag + 1-word buffer interfaceuart_top.v: Top-level UART moduleuart_tb.v: Testbench
This design uses a flag-based interface (no FIFO).
The system must check rx_empty before reading
and tx_full before writing.
The UART uses a flag + one-word buffer interface scheme. The receiver and transmitter are FSM-based, while buffering and handshaking are handled using flag logic.
- Verilog HDL
- Xilinx Vivado
- XSim (for simulation)
- Receiver uses 16x oversampling
- FSM-based RX and TX
- Flag-based interface (no FIFO)
- Blocking data overwrite avoided using flag logic
- Open Vivado
- Add files from
rtl/andtb/ - Run behavioral simulation
Aman Sharma
