Schematics

Overall System Level Diagram

sys

Game Timing Diagram

game

System Schematic

schem

Source Code Overview

The source code for the project is located in the Github repository here.

The MCU code is organized by having multiple sequential while loops. Because gameplay is rather streamlined with few places of variability, it is easier to design using this structure. The first step is to press the button which exits the first loop. Then once the timer is up or the button is pressed again, you exit the second loop. Finally, once the system attempts to return home, the final two loops are exited.

As noted in the design section, the MCU interfaces with the FGPA via a 1 bit enable line that is asserted upon the first button push and deasserted after the second button push or time runs out. This line directly controls each stage of the FGPA’s display sequence by either starting or ending it.

The FGPA code is organized into a top level module that controls all of the functionality as well as performs boolean operations to set the display output. These are determined based on the timer submodule which increments after each slow clock cycle. More details are provided in the FGPA section.

Test change x2

Bill of Materials

Item Part Number Quantity Unit Price Link
5 stepper motors B094F4CH71 1 $26.99 link
Joy Stick B01N2G0H1T 1 $11.99 link
Button 0654913663700 1 $6.99 link
Wood 796758 1 $44.89 link
Extra Materials Stock Room x x Thank you Sam

Total cost: $90.87