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.
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.
- 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.
- 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.
🎨 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.
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!
- Clone the repository:
git clone https://github.com/Alexander-Evans-Moncloa/FPGA-pong-game-from-scratch.git