Finaluart
Finaluart
SYNOPSIS ON
“DESIGN AND VERIFICATION OF UART USING
SYSTEM VERILOG”
Submitted in partial fulfilment for the award of the degree of
BACHELOR OF ENGINEERING
in
ELECTRONICS AND COMMUNICATION ENGINEERING
Submitted by
SAVITHA S 4PS22EC146
SHREEVARSHINI S 4PS22EC149
SNEHA JENIFER B 4PS22EC154
VIDYADHARE C 4PS22EC176
Introduction
1. Problem statement
03-06
Objective of the project
2. Literature Survey 07
3. Proposed Methodology
08-09
5. Expected Outcome 12
6. References 13
DESIGN AND DEVELOPMENT OF UART USING SYSTEM VERILOG
ABSTRACT
The UART protocol is a widely used communication standard for serial data transmission in embedded
systems and System-on-Chip (SoC) designs. It facilitates asynchronous communication between
devices by converting parallel data from a processor into serial form and vice versa. The Design Under
Test (DUT) in this case ensures seamless communication between the transmitter (testbench) and
receiver (design), adhering to the UART protocol's specifications for data integrity and reliability.
UART operates without a clock signal, relying on pre-determined baud rates for synchronization
between the transmitter and receiver. It supports features such as configurable baud rates, parity checks
for error detection, and stop bits, making it highly suitable for low-cost and low-speed communication
applications. The verification process focuses on designing test cases to evaluate functionality under
various conditions, such as single-byte and multi-byte transmissions, with and without error scenarios,
including mismatched baud rates and parity errors. The design is implemented using Verilog HDL and
verified using a SystemVerilog-based testbench. The simulation tool (e.g.,QuestaSim) ensures
functional compliance with UART specifications. Test cases cover scenarios like data transmission,
reception, and error handling to validate protocol behavior. Simulation results demonstrate correctness,
performance, and efficiency, ensuring reliable communication for applications ranging from industrial
devices to microcontroller-based systems.
INTRODUCTION
Universal Asynchronous Receiver/Transmitter (UART) is a simple yet widely used protocol for
asynchronous serial communication in embedded systems. It enables reliable data exchange by
converting parallel data into serial format for transmission and then back to parallel at the receiving
end. UART eliminates the need for a shared clock signal by relying on pre-configured parameters such
as baud rate, parity, and stop bits for synchronization. It also supports error detection through
mechanisms like parity checks, ensuring data integrity during communication. This makes UART
suitable for a variety of applications, including microcontroller communication, industrial automation,
and debugging systems. Despite its simplicity and cost-effectiveness, UART is best suited for low-
speed, short-distance communication due to its limited data rates and lack of advanced error correction.
However, its ease of implementation and flexibility have established it as a fundamental
communication standard in modern systems. By facilitating efficient point-to-point communication,
UART continues to play a significant role in both basic and advanced embedded applications.
PROBLEM STATEMENT
The UART protocol is a basic standard for sending data between devices in embedded systems. While
it's simple and flexible, it comes with challenges like mismatched speeds (baud rates), detecting and
fixing errors during transmission, and limits in working well over long distances or high speeds. The
task is to create a reliable and reusable UART design using Verilog HDL (a hardware description
language) and to build a SystemVerilog-based testbench. This testbench will help check if the design
works correctly and performs well under different conditions, ensuring smooth communication for
modern uses.
1. Develop a robust UART module in System Verilog, including core functionalities for serial
data transmission and reception.
2. Implement a parity check mechanism for error detection, ensuring support for both even and
odd parity.
3. Create a comprehensive testbench in System Verilog to verify the UART module’s
functionality and validate the parity check.
4. Incorporate features to detect and report parity errors during data transmission and
reception.
LITERATURE SURVEY
3. Analysis of UART Communication Protocol; Pranjal Sharma; Anup Kumar; Naresh Kumar.
This paper provides a detailed study of the UART protocol, its architecture, and its role in
asynchronous serial communication. The authors analyze key parameters like baud rate, data framing,
and error detection mechanisms. The paper aims to highlight UART’s simplicity, reliability, and
suitability for low-cost, low-speed data transfer applications, while also discussing limitations and
potential improvements in modern embedded systems.
PROPOSED METHODOLOGY
The methodology for designing and verifying the UART communication model will include
the following key steps:
1. System Design and Specification:
Define the UART protocol specifications, including data format (start bit, data bits,
parity bit, stop bits), baud rate, and synchronization requirements.
Create a block-level architecture for the UART, including modules for the baud rate
generator, transmitter, receiver, and error-checking mechanisms.
2. Design Implementation:
Develop the baud rate generator for timing control, ensuring proper synchronization
between the transmitter and receiver.
3. Testbench Development:
Use simulation tools (e.g., QuestaSim or ModelSim) to verify the design under different
operating conditions.
Validate the UART protocol’s compliance with specifications by analysing simulation results
for data integrity, synchronization, and error handling.
Document the design methodology, simulation results, and key performance metrics. Analyse
the system’s reliability, scalability, and suitability for modern embedded applications.
State Diagram:
Rx (Receive) Input Serial data input received by the UART from the transmitting device.
Baud Rate Clock input used to set the baud rate for synchronization between
Input
Clock
transmitter and receiver.
Indicates the start of a data frame and signals the receiver to prepare for
Start Bit Output
incoming data.
Signals the end of a data frame, allowing the receiver to reset for the
Stop Bit Output
next frame.
Enable Input Activates the UART module to begin transmitting or receiving data.
EXPECTED OUTCOMES
o Reliable reception of serial data by the receiver and reconstruction into parallel format.
2. Synchronization:
o Proper alignment between transmitter and receiver based on pre-configured baud rate.
3. Error Handling:
o Effective detection and indication of errors such as parity errors, framing errors, or
mismatched baud rates.
4. Simulation Results:
REFERENCES
3. Analysis of UART Communication Protocol; Pranjal Sharma; Anup Kumar; Naresh Kumar.
Signature of Guide
Janardhana S Y
Assistant Professor
Department of ECE
PESCE, Mandya