CE433 2022 Spring
Final Project
John Hitti

jdhitti@fortlewis.edu

Final Project

Introduction
In this final project we will be based on implementing a video game on the Basys 3 FPGA board. For this we will be using the game "Yoshis-Nightmare" created by Github user jconenna. In this project we will be implementing this game onto our FPGA as well editing the code to use the onboard buttons as a controller as well as adding a introduction screen that displays the FLC logos.
Task 1

In this task we will start by adding button functionality to the game using our onboard FPGA buttons. This can be done very simply by adding the few lines of code below and commenting out the "nes_controller" module. We also have to make sure the hardware buttons are set as parameters in our top module. Once this is done the buttons will have full functionality over the game.


Task 2
In this task we will now add our introductory screen. We need to convert our logo images into a ROM file. Fortunately, user jconenna has a blog post describing an easy way to conduct this process. Once ran through the converter we have our rom file.



Then we need to create a display module that will let us place the logo where we want on the screen and pass the RGB values to the display module when they are called.



Once this is done, we can add these to our pain module. We do this by adding a simple counter that starts at the beginning of the game and counts up 6 seconds. During these 6 seconds the module will only display the two FLC logos onto the display and not the game. We also need to make sure the hard reset switch will also reset our logo display.



Once this is done, we can upload this program to the FPGA and test it for functionality!



Discussion
This project was an excellent culmination of our skills with learned in this class with FPGA devices and Verilog and required a good amount of comfortability in the platform. This project also helped familiarize with collaborative design and coding with Verilog on a project.