FPGA-based system that reads accelerometer data via SPI and renders real-time graphics on a VGA display.
This project implements a complete pipeline from accelerometer sensor input to VGA display output on a DE10-Lite FPGA board. The system uses the onboard ADXL345 accelerometer, communicates via SPI protocol, and drives a VGA monitor with real-time graphics that respond to board tilt.
- HDL: SystemVerilog / Verilog
- FPGA: Intel DE10-Lite (MAX 10)
- Sensor: ADXL345 3-axis accelerometer (SPI)
- Display: VGA 640×480 @ 60Hz
- Tools: Intel Quartus Prime
ADXL345 ──SPI──> SPI Controller ──> Data Processing ──> VGA Controller ──> Monitor
│
LED Driver
7-Seg Display
rtl/ - RTL source modules
spi/ - SPI communication modules
vga/ - VGA display modules
peripherals/ - LED and 7-segment drivers
ip/ - IP cores (PLL)
constraints/ - Timing constraints
quartus/ - Quartus project files
docs/ - Project documentation
| Module | Description |
|---|---|
top_module.v |
Top-level integration connecting all subsystems |
spi_controller.sv |
SPI master for ADXL345 communication |
spi_ee_config.sv |
ADXL345 register configuration via SPI |
spi_pll.sv |
PLL for SPI clock domain |
AdcProject.sv |
ADC interface for accelerometer data |
vga_controller.sv |
VGA timing and sync signal generation |
rectangle_display.sv |
Renders tilt-responsive rectangle on VGA |
led_driver.sv |
Maps accelerometer data to LED indicators |
SEG7_LUT.sv |
7-segment display lookup table |
reset_delay.sv |
Power-on reset delay circuit |
pll.sv |
System PLL IP core |
- Open
quartus/top.qpfin Intel Quartus Prime - Compile the project
- Program the DE10-Lite board via USB-Blaster
- Jaideep Singh
- Shaharyar, Natalie, Chandan, Aadi