Heya, Thanks for visiting!

Pong on a FPGA

  • vhdl
  • fpga
  • vga

Just finished the classic tennis game Pong for my Basys 2 FPGA (built from scratch). The project is written in VHDL and is played on a VGA monitor. You can see a video of it in action at the bottom of this article.

Pong game screenshot


  • Multiplayer: Battle against your friend
  • Play against the AI. Or AI vs AI battles
  • Score Keeping
  • Hidden Mode / Easter Egg (see below)


Just visit the GitHub Repo.


Player Left/1 Paddle movementbtn2 and btn3
Player Right/2 Paddle movementbtn0 and btn1
Player Left/1 AI Enableswitch7
Player Right/2 AI Enableswitch6


A small list of things implemented in this design:

  • Collision Detection and Resolution
  • VGA Output, game video
  • Text display on VGA which includes a ram arbiter (uses my other project FP-V-GA Text)
  • Basic AI for the paddles
  • Button and Switch Input
  • Seven-segment driver (BCD converter)


I entered this project into the Hackaday Fubarino Contest so of course there is an easter egg. Just get the score to read 1337 and you will see an awesome Hackaday mode. This means the player on the left side needs 13 points and player on the right needs 37 points. The mode lasts for as long as you keep the score as 1337 so you will have to work together to volley the ball around. I made two versions of the pixel hackaday logo but ended up using the bigger one as the ball.

Featured on Hackaday.com: Fubarino Contest: FPGA Pong

Update 2013-12-31: I am one of the Fubarino Contest Winners! (article on Hackaday)

Special hackaday ball used during Hackday mode

Watch the video to see this special mode:

Play video