Professional Documents
Culture Documents
ASIC 2023
1. PROJECT STATEMENT 3
2. FUNCTIONAL SPECIFICATIONS 3
INTRODUCTION 3
BASIC CONCEPT 3
APPROACH 4
SYSTEM DIAGRAM 4
3. WORKING 5
4. SIMULATIONS 6
5. RTL SCHEMATIC 11
6 REFERENCES 14
3 Project Report - UART
<><Project Name>
PROJECT STATEMENT
FUNCTIONAL SPECIFICATIONS
Introduction
Basic Concept
UART works by sending and receiving data in a sequential manner, bit by bit, over a single
communication line. It uses two signal lines, one for transmitting data (TX) and one for receiving data
(RX). The data is transmitted in a series of bits, with each bit being sent one at a time, starting with the
least significant bit.
The UART protocol uses a start bit, a specified number of data bits, an optional parity bit, and one or
more stop bits to define each data frame. The start bit is always a low level signal, and the stop bit or
bits are always high level signals. The number of data bits and the use of a parity bit depend on the
specific application requirements.
UART can be configured for different baud rates, which determine the speed of communication. The
baud rate is the number of bits per second that can be transmitted over the communication line. The
two devices communicating must use the same baud rate to ensure reliable data transmission.
The basic frame structure is shown in the below figure 1.
4 Project Report - UART
<><Project Name>
Approach
To develop a UART protocol, we should be first clear with full understanding of the UART protocol
before coding, so we started with specification reading from specification document and extracted
the different features of UART protocol.
Next we planned a top module design of UART protocol and created a test plan to verify the
design. Best way to create a complex design is using the Finite State Machine(FSM) approach so
we created FSMs for both transmitter and receiver design.
We implemented many testcases which were used to verify the design, and find many bugs in the
design and debugged the design using waveforms.
System Diagram
System for transmitter side is shown in the figure 2 below and receiver side is shown in figure 3.
Working of each module is described in the subsequent topics.
WORKING
Transmitter
Transmitter module will work with the use of finite state machine, FSM state diagram is shown in the
figure 4 below. FSM or transmitter will be in the IDLE state and will start the transmission when the
start control signal is activated. Next state will be LOAD where data from either FIFO memory or data
bus will be loaded based on the mode.
Receiver
Receiver module will also work similar way with the use of finite state machine, FSM state diagram is
shown in the figure 5. Initially FSM will be in the IDLE state and will start to receive the signal as soon
as the start control signal is activated. Next state will be START state, where constantly line will be
checked for start condition generation.
So next state will be DATA_RX state, where data will be sampled at certain time period and will be
stored in the receiver FIFO memory, which can be read by top module using read signals.
Next based on the parity enable conditions, parity will be checked error will be throwed in case if
parity mismatches. And at the end stop conditions will be detected and data received will be stored in
the FIFO.
SIMULATIONS
To verify our RTL design, we created a test bench with different testing scenarios. We instantiated both
transmitter and receiver in the single testbench file, where we gave the output of transmitter to receiver’s
input. There are lots of possible testcases available to test the design, here we have mentioned some of
the testcases.
7 Project Report - UART
<><Project Name>
1. Sanity Test for single later transfer
2. Sanity Test for multiple later transfer with FIFO Mode
3. Sanity Test for multiple later transfer with Non-FIFO Mode
4. Variable data length transfer check
5. Variable stop bit transfer check
6. Parity and error check scenario
7. Noise effect Test
RTL SCHEMATIC
RTL Schematic for both module is shown in below figures, which shows the top level diagram of the
circuit.
REFERENCES
• https://www.realdigital.org/doc/7d93df01f5ae9bcb7a0e6859badee09c
• https://www.circuitbasics.com/basics-uart-communication/