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.
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.
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.
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)
This block generates the position of the ship 🚀 (player) by receiving the movement buttons signals as input.
- Inputs:
left
,right
button signals andvel
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
This block receives a enable signal and generates the position for a single 👾.
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.
Block in wich we save the resources for the game.
Here's the generic top block sketch for ship or aliens.
Top block for life system.
Top block that handles the logic for the multiple aliens and their death.
If you need any other information or documentation contact the author or check the 📂 docs folder. It is free to copy and use.