This repository contains the VHDL/Verilog source code for a Pong game implementation on FPGA (Basys 3 default). This was a group project for EEL 5934 - System-on-Chip Design at the University of Florida alongside group members Nikodem Gazda and Lucas Mueller. It has been modified to be reproducible using Vivado Tcl scripts and makefiles.
The project is divided into two distinct implementations:
rtl-only: A pure hardware implementation focusing on signal generation and IO interfaces.soc: A System-on-Chip implementation utilizing a MicroBlaze soft processor for game logic and hardware peripherals.
rtl-only/: Source code and build scripts for the pure hardware version.soc/: Source code (HW/SW) and build scripts for the SoC version.
- Xilinx Vivado 2025.2
- Xilinx Vitis 2025.2 (for SoC build)
Located in the rtl-only directory.
To generate the Vivado project and bitstream:
- Navigate to the directory:
cd rtl-only - Generate the project:
make project
- Build the bitstream:
make bitstream
To program the board:
make programLocated in the soc directory. This version requires both hardware (Vivado) and software (Vitis) builds.
To generate the full system:
- Navigate to the directory:
cd soc - Generate the Vivado project:
make project
- Build the hardware (Bitstream & XSA):
make bitstream
- Build the software (ELF):
make sw
To program the FPGA with the bitstream and load the software ELF:
make programTo clean build artifacts in either directory, run:
make clean