Code Monkey home page Code Monkey logo

fpga-vga-driver-game's Introduction

VGA driver + Space Invaders on Xilinx Spartan III

This repository contains a VGA driver + Space Invaders ๐Ÿ‘พ descripted in VHDL language for FPGA's. Specifically, it has been built on Xilinx ISE for the board Spartan III.

  • In contrast with other electronic boards with built-in video driver, we descripted the driver circuit and it's behaviour in VHDL (VHSIC Hardware Description Language). This means that the code we programmed in Xilinx'ide creates a physical electronic circuit on the Spartan board.
  • VHDL and FPGA are a powerful technology that are commonly used in research ๐Ÿ”ฌ and space applications ๐Ÿš€.
  • The game isn't perfect, but it is nice to test the VGA driver.

๐Ÿ“ Documentation

Here's some basic documentation for the case you need to use some parts of this project. It wasn't made with best programming practices, but it can be helpful.

Blocks


VGA driver components

  • TopDriver_VGA: top block for driver that integrates and connects other components.
  • CompH, compV, contH, contV: comparator and counter components.
  • Div_VGA: frecuency divisor.
  • GenColor_VGA: block that generates the colourish output.

DIBgenerico

This block receives a draw position (dib stands for spanish 'dibujo' wich means draw) and that is where the current position that the driver is painting. The output is the relative position for the sprite (position from the start of the sprite to the current position the driver is painting if it's on the sprite range).

  • Inputs: draw start coordinates (xdib, ydib), driver current painting postion (Pos_x, Pos_y)
  • Outputs: relative vector postion (DIR1, DIR2)

MovNave

This block generates the position of the ship ๐Ÿš€ (player) by receiving the movement buttons signals as input.

  • Inputs: left, right button signals and vel wich comes from a frecuency divisor and is used for slow down the speed of the ship.
  • Outputs: (x_nave, y_nave) position for the ship

MovAlien

This block receives a enable signal and generates the position for a single ๐Ÿ‘พ.

MovBala

These are 2 blocks that generates a shots. One for the shot of the ship and one for the shot of the enemy wich is thrown with some frecuency.

Memory blocks

Block in wich we save the resources for the game.


Top blocks


Ship or alien top blocks

Here's the generic top block sketch for ship or aliens.

Vidas

Top block for life system.

MuereAlien

Top block that handles the logic for the multiple aliens and their death.


Need help?

If you need any other information or documentation contact the author or check the ๐Ÿ“‚ docs folder. It is free to copy and use.

fpga-vga-driver-game's People

Contributors

ismenc avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.