FPGA Pinball

Designed and implemented an FPGA-based pinball game on a Nexys A7 development board featuring VGA graphics, PS/2 keyboard input, score tracking, and game-state management. The project integrated custom Verilog modules with a pipelined MIPS processor, providing hands-on experience in digital design, computer architecture, and FPGA development.

PROJECTS

FPGA Pinball Machine

As part of Duke University's Digital Systems course, I designed and implemented a complete FPGA-based pinball game on a Nexys A7 development board. The project combined custom digital hardware, VGA graphics generation, keyboard input processing, and a custom MIPS-style processor into a fully interactive system.

The game featured real-time score tracking, life management, bumper detection, and graphical output rendered directly to a VGA display. User input was handled through a PS/2 keyboard interface, while game state and scoring logic were managed through custom hardware modules and processor-controlled registers.

A significant portion of the project focused on designing and debugging a pipelined processor architecture in Verilog, including instruction execution, control flow handling, register management, and hardware-software integration. Additional work involved clock domain management, FPGA timing constraints, and development of custom peripherals for game interaction.

Through this project, I gained hands-on experience with digital design, FPGA development, computer architecture, hardware debugging, and real-time embedded systems. The result was a fully functional hardware-implemented game that demonstrated the integration of processor design, digital logic, and graphical systems on a single FPGA platform.

Technologies: Verilog, FPGA Design, Vivado, Nexys A7, VGA Graphics, PS/2 Interface, Digital Systems, Computer Architecture