This project implements a UART (Universal Asynchronous Receiver Transmitter) Transmitter and Receiver using Verilog HDL. The design follows the standard UART communication protocol with 8-bit data transmission, 1 start bit, and 1 stop bit (8N1 format).
The project was simulated and verified using Xilinx Vivado.
- UART Transmitter (TX)
- UART Receiver (RX)
- 8-bit Data Communication
- 1 Start Bit
- 1 Stop Bit
- Configurable Baud Rate
- Configurable Clock Frequency
- FSM-Based Design
- Loopback Verification using Testbench
uart-transceiver-verilog/
├── rtl/
│ ├── uart_tx.v
│ ├── uart_rx.v
│ └── uart_top.v
│
├── tb/
│ └── uart_tb.v
│
├── screenshots/
│ └── waveform.png
│
└── README.md
| Start Bit | Data Bits (8) | Stop Bit |
| 0 | D0 ... D7 | 1 |
Data is transmitted LSB first.
The transmitter performs the following operations:
- Waits for
tx_start - Sends Start Bit (
0) - Sends 8 Data Bits (LSB First)
- Sends Stop Bit (
1) - Returns to Idle State
The receiver performs the following operations:
- Detects Start Bit
- Receives Serial Data Bits
- Stores Data into Shift Register
- Detects Stop Bit
- Generates
rx_donesignal
| Parameter | Value |
|---|---|
| Clock Frequency | 50 MHz |
| Baud Rate | 9600 bps |
| Data Bits | 8 |
| Stop Bits | 1 |
| Parity | None |
Input Data:
10110111
Expected Output:
10110111
Input Data:
00000000
Expected Output:
00000000
Input Data:
11111111
Expected Output:
11111111
The UART transmitter and receiver were successfully verified in Vivado Simulation. All test cases passed successfully, confirming correct serial transmission and reception of data.
Waveform screenshots are available in the screenshots directory.
- Verilog HDL
- Xilinx Vivado Simulator
- Git
- GitHub
- Parity Bit Support
- Multiple Stop Bit Support
- Baud Rate Generator Module
- FIFO Integration
- UART Loopback on FPGA Hardware
Jay Jain
Electronics & Communication Engineering