lazuardinfl / Tic-tac-toe-FPGA

Tic-Tac-Toe with SoC FPGA

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tic-Tac-Toe with SoC FPGA

The project is made to apply the classic game which is often known as Tic Tac Toe. This game is a type of board game with a size of 3×3 which is played by two players. As in board games in general, players place pieces on the board. The symbol of this pawn differs in shape for both players. Generally, the symbols X and O are used to distinguish the pieces of the first player and the second player. Both players take turns marking the spaces on the grid board with their pawn symbols. They also compete with each other in placing their pieces to form a horizontal, vertical, or diagonal line to win the match.

Specifications

Here are the specs:

  • Breadboard, RGB LED x9, push-button x9, resistors, cables and jumpers
  • Zybo Zynq-7000 SoC with the use of the following peripherals:
    • USB UART/JTAG for communication with laptop
    • Pmod Standard JE as input from push-button
    • Pmod High-Speed JB and JC as output to RGB LED
    • Pmod XADC JA as residual input and output
  • Vivado HLx is used to design IP blocks and other required hardware environments. PMod and custom IPs are used
  • Xilinx Software Development Kit (SDK) is used as an IDE to create program source code and target programs to Zybo

Tutorial

  1. You need to design the game board with breadboard as shown in img folder.
  2. Each LED paired with push-button.
  3. Jumper or cable start from Pmod Standard JE -> push-button -> LED -> Pmod High-Speed JB/JC.
  4. Design IP like show in img folder with Vivado HLx. Or you can use directly synthesized IP I created using TicTacToe.xpr file.
  5. Programmed software using Xilinx SDK. You can use source code from TicTacToe.sdk.
  6. Target program to Zybo to run it.

About

Tic-Tac-Toe with SoC FPGA


Languages

Language:VHDL 53.4%Language:C 18.0%Language:HTML 12.9%Language:Verilog 12.6%Language:V 1.4%Language:Tcl 0.7%Language:JavaScript 0.3%Language:SuperCollider 0.3%Language:Assembly 0.2%Language:Makefile 0.1%Language:Shell 0.1%Language:CartoCSS 0.0%Language:SystemVerilog 0.0%Language:Batchfile 0.0%Language:Pascal 0.0%Language:Python 0.0%Language:C++ 0.0%