Chess Arcade Game


Demo


Demonstration of arcade game, camera centered monitor screen showing gameplay. Mouse controlled with a usb mouse which is connected to FPGA board shown in bottom left of video. Demo shows all 3 modes of operation player white into bot black; player black into bot white; and player versus player.

Overview

The AI Chess Arcade Game was developed as the final project for ECE 385: Digital Systems Laboratory at the University of Illinois. The goal was to design a hardware-based chess system integrating FPGA logic, embedded software, and an AI opponent into a single interactive arcade-style platform.

The project demonstrates skills across hardware design, System Verilog programming, low-level (C) embedded programming and application of AI ontop of a SoC platform. The player interacts using a physical USB mouse, while the FPGA renders the board (Custom Graphics Driver) and manages gameplay logic (Custom C Chess Engine, minimal memory usage) in real time.

Hardware

The design was implemented on a prebuilt FPGA development board used in ECE 385. Peripherals including VGA output, USB mouse input, and on-board switches were connected via jumper wiring. The system’s hardware architecture is shown below.

System Block Diagram
  • Designed System Verilog modules for Graphics driver with frame buffering using AXI BRAM storage.
  • Integrated USB mouse input through a custom SPI interface driver.

Software

  • Software runs on a microblaze SoC with BRAM and a custom AXI driver for SPI, Graphics control and custom GPIO
  • Game logic optimized to be querried by minimax
  • Implements a minimax algorithm with alpha-beta pruning for efficient search.
  • USB host and graphics rendering synchronized through shared memory-mapped registers connecting to System Verilog code on the FPGA.

Results

System was able to emulate entire chess game with a interface enabling minimax algorithm to quickly evaluate board states. Custom graphics driver with python graphics encoding script enabled me to download images off the internet and use them for graphics. Custom graphics with frame buffer enabled smooth mouse movement. SPI interface with USB-HID driver using public library (lw_usb) enabled quick mouse control. The final demonstration successfully allowed bug free game play for all game modes.

Project Code/Report

The complete documentation for this project, including design methodology, test results, and code structure, can be viewed below:

Future Work

  • Make work on different FPGA board with proper hardware setup
  • Add DDR3 memory interface to board for better AI performance
  • Train heuristic model to get a better AI perfomance
  • Add sound output and score tracking through peripheral expansion