This project is a real-time embedded system designed to process data from a physical sensor using a microcontroller (Arduino Uno) and an FPGA board (Basys3). The system focuses on integrating software and hardware components to enable continuous data monitoring and processing.
The aim of this project is to demonstrate how an FPGA can be used to offload and accelerate data processing tasks normally performed in software. By using VHDL and the AXI Stream protocol, a custom hardware pipeline was created to efficiently handle incoming data and generate useful output.
The architecture is split into two main components. The Arduino acts as a data acquisition module, reading, formatting and sending the data. The Basys3 FPGA serves as the processing unit. The two communicate through the PMod port of the FPGA. The value is then passed through a series of processing modules, including filters, converters, and aggregators. Finally, the processed value is converted and displayed on the board’s 7-segment displays. This update cycle repeats every 30 seconds, in sync with the sensor reading schedule from the Arduino.

