UART implementation with test bench