Serial data communication is used to efficiently send data over long distances where channel costs are reduced. This project involves developing a Universal Asynchronous Receiver/Transmitter (UART) controller which transmits/receives data stored in a FIFO. The FIFO can store up to 16 characters. The design consists different transmit and receive FIFOs. Different baud rates are supported by using a configurable baud counter. FIFO Full & FIFO Empty conditions are generated and checked by the interface that writes and reads the data from UART.