CE433 Lecture 2022 Spring
Lecture 1
Name:
Braden Morrow
Email: bdmorrow@fortlewis.edu

1. Course Project - FPGA Based Video Games

2. Introduction
The purpose of this project was to use the lessons we learned from previous projects to edit a video game called Yoshi's Nightmare to use the pushbuttons on the Basys 3 for control and display a banner that had the games title and FLC logo's at the beginning of the game.

3. Results
Task 1:
This task asked us to implement the push-buttons on the Basys 3 to control the game. This task was really stright forward, so all we did was add the buttons to the contraint file and then pass them through a debounce module to make sure we didn't get any bugs with the start button. Figure 1 shows the code used to implement the buttons and Figure 3 shows the results.

Figure 1. Basys 3 Pushbutton Code

Task 2:
This task asked us to implement a banner at the start of the game which would display an FLC logo and a skyhawk logo before the game was started. We did this by editing the ROM file that was used for the original banner and adding both logo's, as well as adding an 'edited by' line to show mine and Nick's names. The rest of the code was used to center this banner and write it out to the screen. The code is shown in Figure 2 and the results in Figure 3.

Figure 2. Basys 3 Opening Banner Code


Figure 3. Yoshi's Nightmare Game with Openeing Banner and Push-button Control

4. Discussion
This assignment allowed us to manipulate some previous lessons in an easy way to get some awesome results for our course project. While the button's section wasn't too hard, it showed me that writing a much smaller test script before implementing new logic in a module that takes an hour to synthesize can be a good way to rapidly check for errors in code. This lesson also gave me a better insight into the actual synthesis times large projects can have, and why there exists a need to ingrain the basics. As working through errors in code with that long of a synthesis would take a very long time.