Github Repo: https://github.com/k3rimz/CPE_487
All lab files can be found in our google drive folder:
https://drive.google.com/drive/folders/1zOeRHU4xXbS36lg4-ityjhYfPLnseL1M?usp=sharing
2021-02-09
-Created and published a Google Site with a link to my GitHub repository and a section for weekly reports
-downloaded the the textbook Free Range VHDL and read over chapters 1-3
- studied the IEEE Editorial Style Manual
2021-02-16
read through and took notes of the chapters covered in class Covered up to chapter 6 in the textbook with plans on covering the rest of the chapters in the following weeks
2021-02-23
-installed Vivado, GTKWave, and GHDL using the nerdy dave tutorial, and attempted to get familiar with the software
-covered chapters 7 & 8 in the Freerange VHDL textbook
2021-03-02
-Created group with Justin Young
-Covered remaining chapters in VHDL textbook
-completed Lab 1 with partner
2021-03-09
-Completed Lab 2
-created google drive link that contains all files associated with this class
-link: https://drive.google.com/drive/folders/1NJ0mbMqLrJf4ZKakhl5KC9nikmuA6-K-?usp=sharing
2021-03-16
-Completed Lab 3
-color, size, shape and motion changed -- main goals achieved
-extra goals :
Attempted to change background color by creating second much larger unmoving ball, however had trouble implementing two balls at once.
We did manage to turn the ball into a donut however
2021-03-23
-Completed Lab 4
-Made major updates to the website
-Collaborated with partner on project timeline
2021-03-30
-Completed lab 5
discoveries:
-When first implementing modifications, the Siren did not produce a sound until switches R13-J15 were turned on/off, which was realized to control the frequency/volume
-siren_1.xdc
On the FPGA the "M18" button refers to the BTNU button "PACKAGE_PIN M18" in the siren_1.xdc
"get_ports { BTN0 }" just refers to the name that the BTNU button has in the files.
This shows how the constraint file serves to link physical pins to abstract variables in code.
Ex. "PACKAGE_PIN" is the pin on the FPGA and "get_ports" is the name of the variable in the files
-tone_1.vhd
In the Tone_1.vhd file, we found that a square and triangle wave were defined as:
(square) => data_sq <= to_signed(16383,16) when "00",
(triangle) => data_tri <= index when "00",
-wail_1.vhd
Realized wspeed controlled the frequency of the wail, hence changing the pitch as well
2021-04-06
Completed Lab 6 and attempted to add extra features
Changes:
Initial Bat width 10
Initial Speed modifiers +- 2
Bat size decreases by 2 every hit
Ball size increases by 1 every hit
Increase speed every hit
-On implementation we forgot to reset ball size so the ball kept growing continuously even between games, but we kept it due to it being fun to play around with
-Partner achieved a high score of 26 and having the ball growing surely helped
Discoveries:
-bat_n_ball_1.vhd
The Line, "hitcount <= CONV_STD_LOGIC_VECTOR(0, 16);" sets the score counter to count from 0 to 16 which explains why the score resets after 16 points,
16 was chosen as final value as hex digits go up to "F" = 16
btn0 button set the variable "serve" to 1 which initiates that start of the game.
"IF serve = '1' AND game_on = '0' THEN" (line controlling game starting state)
"stop_dbl_hit" prevents double hits by the paddle by only resetting after the ball hits the ceiling
"random" ball spawning is actually fairly deterministic. Once the game ends the ball continues moving but gets turned invisible and starting again starts it at the same X location every time but the Y location of where the ball was just previously
this was proven when a new game was started right after the old game ended
2021-04-13
Started initial research on final project
2021-04-20
Continued research on final
updated our google doc project file with new research
discoveries:
We found the Master Constraint file for the Nexys A7 board and attempted to use it to implement the accelerometer
however, did not have much success
2021-04-27
-OTB Demo has been successfully implemented :)
-it uses all sensors, displays etc, such as the accelerometer, microphone, 7 segment display, and onboard LED's and displays it using the VGA source. it even takes in mouse input
-added demo video to google drive
-link to get the demo: https://github.com/Digilent/Nexys-4-DDR-OOB
-link for tutorial and more info on demo: https://reference.digilentinc.com/learn/programmable-logic/tutorials/nexys-4-ddr-user-demo/start
2021-05-04
Updated and completed final project report with all documentation
Added final report to website
Here are the notes I have taken from the Free Range VHDL textbook from chapters 1-7
I Hope that any future students of CPE 487 finds these notes useful in navigating the VDHL language
past chapter 8 I have very messy and incomplete notes that I do not believe is high enough quality to share on here