- This repository contains VHDL implementations of UART (Universal Asynchronous Receiver/Transmitter) modules, designed for FPGA-based communication systems.
- These projects include a UART receiver (UART_Rx) and a UART transmitter (UART_Tx).
- Each module is designed to handle serial communication with high reliability and accuracy.
- Configurable Clock Frequency and Baud Rate: The receiver can be configured with different clock frequencies and baud rates.
- State Machine Implementation: Utilizes a finite state machine (FSM) for reliable data reception.
- Debounced Inputs: Ensures stable operation of the receiver.
- Output Signals: Provides received data and a signal indicating completion of data reception.
- Configurable Clock Frequency and Baud Rate: The transmitter can be configured with different clock frequencies and baud rates.
- State Machine Implementation: Utilizes a finite state machine (FSM) for reliable data transmission.
- Multiple Stop Bits: Supports configuration of the number of stop bits.
- Output Signals: Provides a signal indicating completion of data transmission.
- Xilinx Vivado Design Suite
- FPGA development board (e.g., Xilinx FPGA)
- Knowledge of VHDL and FPGA development
-
Clone the Repository:
git clone https://github.com/yourusername/UART-Interface-Projects.git cd UART-Interface-Projects
-
Open Vivado Design Suite:
- Launch the Xilinx Vivado Design Suite on your computer.
-
Create a New Project:
- Create a new project in Vivado and select your FPGA development board.
-
Add Source Files:
- Add the
UART_Rx.vhd
andUART_Tx.vhd
files to your project.
- Add the
-
Configure Constraints:
- Configure the appropriate constraints for your FPGA board.
-
Synthesize and Implement:
- Synthesize and implement the design in Vivado.
-
Program the FPGA:
- Program the FPGA with the generated bitstream file.
UART-Interface-Projects/
├── UART_Rx.vhd
├── UART_Tx.vhd
├── README.md
- UART_Rx: Connect the
rx_line_i
input to the UART line you want to receive data from. The received data will be available onrx_line_o
andrx_completed_o
will indicate when data reception is complete. - UART_Tx: Connect the
data_i
input to the data you want to transmit. Thestart_i
signal will initiate the transmission, and thetx_line_o
will output the transmitted data. Thetx_completed_o
signal will indicate when data transmission is complete.
- HTerm: HTerm is a terminal program for serial communication. To use it, follow these steps:
- Connect your FPGA to Vivado.
- Start running the transmitter code on the FPGA.
- Send data serially to a Windows or Linux machine.
- Use HTerm to observe the received data from the serial monitor.
This project is licensed under the MIT License - see the LICENSE file for details.