This project implements a Universal Asynchronous Receiver Transmitter (UART) using Verilog HDL. The design consists of a Baud Rate Generator, UART Transmitter, and UART Receiver implemented using Finite State Machines (FSM).
The design is simulated and synthesized using Xilinx Vivado.
The UART system consists of three main modules:
- Baud Rate Generator
- UART Transmitter
- UART Receiver
Baud generator provides the timing signal (baud_tick) used by both TX and RX modules.
UART transmitter and receiver operate using FSM states:
IDLE → START → DATA → STOP → IDLE
Generates periodic baud tick for UART timing.
Converts 8-bit parallel data to serial stream.
States:
- IDLE
- START
- DATA
- STOP
Receives serial data and reconstructs 8-bit parallel data.
States:
- IDLE
- START
- DATA
- STOP
The testbench connects TX output to RX input and verifies successful data transmission.
UART data transmission verified in Vivado simulator.
RTL schematic generated by Vivado.
Device utilization and implementation view.
Total On-Chip Power
0.448 W
- Verilog HDL
- Xilinx Vivado
- FPGA synthesis tools
UART is widely used in:
- FPGA communication
- Embedded systems
- Microcontroller interfaces
- Serial communication protocols
Gayathri Wagdevi ECE Student KL University





