5 stage memory game
Simon Electronic Memory Game
The Simon memory game is a classic electronic game that tests players' memory skills. It consists of a round, electronic device with four colored buttons: red, yellow, green, and blue. The device lights up one or more of the buttons in a random sequence, and the player must repeat the sequence by pressing the buttons in the same order. Each time the player successfully repeats the sequence, the sequence becomes longer, and the game becomes more challenging. The game is over when the player makes a mistake or reaches the highest level. The Simon memory game is a great way to improve your memory and have fun at the same time.
What?
The project's purpose was to create functional and interactable states for the classic Simon memory game on the Intel De2-115 board and 4 pushbutton box. The game had 5 different states that the player would cycle through depending on how they played the game.
How?
Leveraging both hardware description language (VHDL) and schematic design entry in Quartus my team created a fully functional FPGA-based game. Multiple digital circuits were implemented and verified for functionality and timing, contributing to the overall system. Key modules included: Audio Synthesizer: Designed to generate audio signals corresponding to specific tones for each step in the game sequence, for auditory feedback and song. Debouncing Circuit: Implemented to ensure stable and accurate input capture from the physical pushbuttons. Pseudo-Random Sequence Generator: Generated the randomized button sequences for the game. State Controller (FSM): Managed the core game logic, controlling state transitions between idle, sequence generation, player input, win/lose, and reset states. The FSM handled communication between all subsystems and ensured proper data flow across the circuit. Simulation and verification were performed using ModelSim, where testbenches were developed to validate the correct operation of each module under various conditions. Timing analysis and signal integrity checks were completed to ensure reliable performance on the FPGA.

Results
The game played just like the Simon game. The game would wait for the player to initiate the start sequence and then create a random order of button depresses for the player to remember up until the sequence is 5 long and then will play the win state if the player is successful and the lose state if they are not.