Universal Asynchronous Receiver/Transmitter, commonly known as UART, is a configurable single-bit serial transmit and receive communication interface, which supports various baud rates, optional 5–8 bits of data length, parity check and optional 1–2 bits of stop bit. With the rapid development of MCU in the field of automotive electronics, the MCU that meets the requirements of vehicle regulations should have high reliability and efficient fault detection, and the application of the self-test function in UART can effectively improve the reliability and detection efficiency. The design is based on the self-test function and UART protocol design, using finite machine control timing, allowing the self-test controller to complete the self-test without manual configuration after receiving the self-test signal. The RTL of the UART and the self-test function are developed in Verilog, and the simulation verification is done in NCVerilog.