Skip to content

Alexander-Evans-Moncloa/FPGA-pong-game-from-scratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FPGA Pong Game and Custom CPU Design

🚀 Overview

This repository chronicles the journey of building a fully functional computer from scratch on an FPGA, programmed in SystemVerilog. The highlight? Running the classic game Pong, rendered in real-time on a VGA monitor. It's a blend of raw digital systems design, precision hardware development, and optimised computational architecture.


🖥️ Project Description

From scratch, a custom CPU was developed with core components such as the Arithmetic Logic Unit (ALU), Program Counter (PC), Register File, and VGA Controller. These modules were implemented on an FPGA platform, seamlessly interfacing with a VGA display for the Pong game.

This project celebrates the fusion of creativity and technical expertise, tackling challenges in synchronising digital circuits, interfacing peripherals, and optimising hardware resources. The result? A bespoke system showcasing hardware-software co-design at its finest.


🎯 Key Features

  • CPU Built From Scratch: A fully custom-designed CPU, including ALU, program counter, registers, and control logic, using SystemVerilog.
  • VGA Integration: A custom VGA controller to render Pong in real-time, synchronised to produce pixel-perfect visuals.
  • Pong Gameplay: A custom implementation of Pong showcasing the CPU's ability to execute real-time instructions.
  • Optimised Hardware: Resource-efficient design to minimise FPGA utilisation without compromising performance.

🛠️ Technologies

  • FPGA: Hardware platform for prototyping.
  • SystemVerilog: Core HDL for designing and testing modules.
  • Test Benches: Extensive test cases to verify every module's functionality and integration.
  • Custom Architecture: Built and optimised a bespoke CPU capable of interfacing with peripherals.

🌟 What Makes This Project Special?

🎨 Pong But Make It FPGA: Taking a nostalgic classic and reinventing it as a testbed for custom hardware, this project breathes new life into Pong with a bespoke CPU at its core.

💡 Innovation in Every Cycle: Every clock cycle was designed, simulated, and tested to prove that creativity and engineering can produce magic—even in digital form.

🎮 Play It Your Way: Pong isn’t just a game here—it’s a statement. Proof that the future of gaming can come from the past, reimagined in 0s and 1s on an FPGA.


📂 Directory Structure

  • ArithmeticLogicUnit: ALU module design files.
  • HighRiscSystem: Main system files integrating the CPU and peripherals.
  • PongGame: Pong logic and rendering modules.
  • ProgramCounter: Logic files for the Program Counter module.
  • RegisterFile: Design files for the Register File module.
  • VGAController: Custom VGA controller for display output.
  • README.md: You're reading it!

🏁 Getting Started

  1. Clone the repository:
    git clone https://github.com/Alexander-Evans-Moncloa/FPGA-pong-game-from-scratch.git  

About

SysVerilog files to create CPU architecture with pong on an FPGA board. Credit to myself and a friend.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors