Inspiration
We chose Tic‑Tac‑Toe because it’s a simple, familiar game that makes it easy to understand the digital logic behind making decisions, demonstrating how hardware behaves. By having two computers play, we turned it into a "Magic 8-Ball" where an X win means "No" and an O win means "Yes". It is a simple demonstration of real hardware concepts on an FPGA.
What it does
Our design is a computer vs computer game of Tic-Tac-Toe built entirely in hardware logic. It acts as a Magic 8-Ball: an X victory means "No" and an O victory means "Yes." The system checks for wins instantly, evaluating all 8 lines in parallel, and displays the game live on the FPGA board using LEDs and HEX screens.
How we built it
The Hardware (DE1-SoC Board): FPGA - We programmed an FPGA to run the game. Physical Controls - We used physical buttons for the Reset and Start functions, enable buttons on the FPGA. Visual Grid - The 9-square grid is shown on HEX displays and LEDs, so you can see every move
The Verilog Logic: We used Verilog to build a core code that handles the rules and ensures the AIs follow the correct turn sequence The AI isn’t random; the AI always tries to win or block the other player first We adjusted the timing to 1 second per move to slow the game down so the human eye can actually watch it play while running on the FPGA
The Testbenching: We created multiple testbenches to prove the code works before running it on the FPGA hardware Using EDA Playground, we verified that the AI makes legal moves, never picking an occupied square, and that it correctly detects a win We tested edge cases, such as full-board draws, to ensure the hardware doesn't freeze when the game ends. We used a "Parameter Override" to fast-forward the simulation; this let us verify an entire game in just 4 microseconds instead of waiting for the real-world 1-second delays.
The Magic 8-Ball logic: Since its computer vs computer game, we turned Tic-Tac-Toe into a fortune teller where X wins means "No" and O wins means "Yes". The two computers battle it out to decide your fate, similar to a Magic 8-Ball
Accomplishments that we're proud of
We are proud that we are able to build a hardware player that always goes for a win or a draw. Running a successful simulation and learning how to adjust the time it takes the game to run accordingly to run effectively on the FPGA vs digital simulation.
What we learned
How to structure a hardware project from scratch and break it into clean modules that actually work together. Creating testbenches and running them using digital simulators. How to adjust timing to run the whole game through an online checker, such as EDA Playgroud vs timing used to run it through an FPGA.
What's next for Tic-Tac_Yes or No-
We can push Tic‑Tac_Yes or No further, adding human‑vs‑hardware play using the board's buttons, while upgrading the AI moves. We also hope to use the VGA port to display the game on a monitor.
Log in or sign up for Devpost to join the conversation.