Port of VHDL Space Invaders (https://github.com/David-Estevez/spaceinvaders) to Verilog for the iCE40 H1K
- Tone generator
- Two players
- Different Levels
- Keeping score of how many invaders you have destroyed
- Read the sprite info from a plain text file. Research how to make 32x32 pixel map from picture
- Create extensive testbenches for all modules
- Use SystemVerilog asserts to verify model
- Trunk modules should only have instantiations of other modules. Leaf modules should implement the logic
- Use Mealy FSM for sequential logic (All modules but sprite_drawer). More specifically, use two process design method (Gaisler)
- Use homogenous naming and coding convention
- Simulate top module
$ make sim
- Sinthesize top module:
$ make bin
- Upload to FPGA
$ make upload
- Simulate sub-module
Give your submodule is called file.v, and the corresponding testbench is called file_tb.v, you can simulate the sub-module using:
$ make MODULE=module sim