GitHub Repository: https://github.com/glimped/CPE487
5/3 - Wrapped up coding, ended up with only one level and the ability to move the ball through it to the hole; Uploaded functional code to GitHub; Added working code section at the bottom of the project page
4/26 - Continued working on VHDL code, caught up on how to get the ball to move a specified distance; Attempting to implement numpad PMOD to handle directional input; Uploaded in-progress code to GitHub with comments for Professor Lu
4/19 - Continued work on project code, figured out how to draw walls and working on drawing ball; Discussed method to implement multiple levels with a "course/hole counter"; Reviewed past websites/projects to find similarities and code to work off of; Uploaded current project files to GitHub as progress report
4/12 - Changed CodeGolf page to reflect upper-camel case; Updated project tab with goals of the VHDL code & future ideas; Added research section to project tab; Researched drawing shapes with FPGA: https://projectf.io/posts/fpga-shapes/
4/5 - Completed Lab 6, updated Deliverables; Reviewed project websites from all semesters to find similar projects and understand their research/outcomes; Tweaked the codeGolf tab and previous Lab deliverables
3/29 - Decided on project name codeGolf; Created codeGolf tab of website; Added Abstract, Workflow, Project Materials, and Finite State Machine Model to codeGolf tab
3/22 - Completed Lab 4 & Lab 5; Updated Deliverables section
3/15 - Completed Lab 3; Began Lab 4
3/8 - Discussed idea of mini-golf game with team; Completed Lab 2
3/1 - Finished textbook; Completed Lab 1, though could not program FPGA
2/15 - Read chapters 5-10 of the textbook; Reviewed the websites of my classmates; Updated GitHub repo readme to reflect CPE 487
2/8 - Read chapters 1-4 of the textbook; Viewed different possible FPGA boards to purchase
2/4 - Attended class; Installed Vivado; Installed GHDL and GTKWave; Followed Nerdy Dave tutorial to ensure GHDL installed properly, updated Deliverables;
Lab 6 will be helpful in understanding how to code ball physics and have them bounce off walls. For codeGolf, we'll need to start with no movement and have our own "bat" of sorts hit the ball in a specific direction and with specific power. The ball will need to bounce off the walls of the mini-golf course, so there's a lot to go over here. Will updated deliverables when I go through the code in more depth.
This lab had more theory surrounding it so I was able to feel more engrossed in it. The way the modules produced sound was interesting to read about, and could have some use in all FPGA games for music and sound effect purposes.
The biggest thing to note with these labs is that without the FPGA board, it is challenging to connect with the material and understand what results I should be expecting and how to get there. That being said, they are useful in learning the layout of Vivado and learning to troubleshoot and read VHDL code.
Lab 3 was the first lab to give me some issues. I was able to successfully run the synthesis, but I was unable to generate a bitstream due to port errors. It tells me that 11 out of 11 logical ports use I/O standard and that the logical ports are unconstrained. See error report in images.
Completed Lab 2 with no issues, definitely starting to feel better about navigating and creating projects in Vivado. It's a bit challenging to fully understand how the code functions without the board, but working on doing Labs with my group so I can understand how it functions better.
I was able to maneuver through Vivado and follow the instructions to complete lab 1, though I do not have a FPGA board to program. One thing I noted was that there was no board listed as "Nexys A7-100T," as per the instructions of the lab. However, there is an "Arty A7 100" which I believed to be the same. I had to install the support for that board before being able to select in during the Create Project sequence.
I followed the Nerdy Dave tutorial to install and test GHDL and GTKWave. The tutorial was easy to follow and felt like a good introduction to the language.