Skip to content

A Simple Game Console built from the Ground Up, from its CPU design to game design using FPGA

Notifications You must be signed in to change notification settings

voidash/fpga-console

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FPGA-Console

A Simple Game Console built from the Ground Up, from its CPU design to game design using FPGA

  • Using Tang Nano 9k FPGA, custom CPU is created
  • ESP8266 and SSD1306 acts as a Screen controller. ESP8266 and SSD1306 communicate with I2C protocol
  • Uses OSS-CAD tools
  • CPU and screen controller talks with each other through UART.
  • FPGA and flash memory communicates using SPI protocol
  • FPGA and display module communicates using UART

Tools and Stuff

  • FPGA used : Tang Nano 9k
  • Screen : SSD1306
  • Synthesis : Yosys,synth_gowin
  • place and Route: nextpnr-gowin
  • Bitstream generator: gowin_pack
  • load: openFPGALoader
  • Assembler: Written In Rust

CPU

You need OSS-CAD-SUITE

  • load CPU into FPGA cd cpu; make all

  • flash your game to FPGA openFPGALoader -b tangnano9k --external-flash ./cpu/games/pong.bin

  • To verify specific module iverilog ./cpu/uart.v; vvp a.out; gtkwave new_created.vcd

Fig: FPGA in Action

Architecture of CPU

Fig: Architecture of CPU


Table: ISA Table


Timing Diagram for CPU

Schematic Diagram

About

A Simple Game Console built from the Ground Up, from its CPU design to game design using FPGA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published