I went through lesson 3 today and successfully tested the blinkers. The video on the slides needs access to be viewed
Note 1: there was an error with the commands “wire [5:0] rates;” and “Assign rates[5] = 1’b1;” because: - The “A” in “Assign” should be lowercase. Remember that the code is case-sensitive, so if there is a uppercase where it should be lowercase, it will cause an error. - The quote before the letter b might give us an error if we were to copy and paste the command to our code => should type our own quote (a photo demonstrated this is on a troubleshooting slide)
Note 2: When I started Slide 10, I thought I had to open "clockDivider.v" from "design sources" window on the top left. This is because the first line mentions "clock divider module". But slide 10 still refers to the same module file used from slides 6 to 9 => Should still code in "blinkerTop.v"
I went through lesson 3 today. While I was adding the code to blinkerTop I got an error when I tried to include the code in slide 14. My error was that after adding case({btnU,btnR,btnD,btnL,btnC}) inside the always block, I did not know I had to end the case. In order to end the case I added another line of code after that said endcase. I also added this to the slide 14. I also added a slide with a picture showing where the buttons btnU, btnR, btnD,btnL, and btnC can be found, which is slide 18. When I got to test my program it took me some time to understand that I had to press down and hold the button in order to see the blinks. I added this explanation on slide 19. This took me some time to figure out because when I was doing it, the video at the end of the lesson was not available. The video is now available so it should be easy to understand how to test the program with that, along with the explanation. I think in order for this to work smoothly it is important to understand slide 11 where it explains how we get the amount of hertz wanted.
Today I went back and redid lessons 1 and 2, just to make myself a bit more familiar with what I'm doing. I realized though that I missed the bullets about doing truth tables for both lessons, so I went and did those as well. It took a bit to figure out the first one, but a quick Google search helped show me what it would look like, although I'm still not sure if it's correct, and I'm still having trouble with the second one, so I'm spending some time looking into that as well. I also did lesson 3 up until the video, since it needs access to view. I was a little confused with the copy pasted lines and the different rates, but after reading the slides more in-depth I fixed my errors and got everything working pretty well.
The second lesson's terminology, like the ||, &, and !, is a little different, they all correspond to a gate. I responded to May there saying what each one meant so || = OR gate, && = AND gate, and ! = NOT gate. The two input switches that slide 23 highlights, when you interact with them they change certain LED's turning off and on right? He labeled the left switch to be A and the right switch to be B. Say, for example, the A switch was up but B was down, this would mean that A is a 1, and B is 0. So the LED's that light up, work when there is an A input alone. This could mean that those LED's correspond to an OR gate which works when either or both inputs is a 1. Test each position of the switches and see what LED's light up when you do so, record it, then see if that matches the key Matt created on the right side of the slide. Heres a basic explanation on the gates and their truth tables, http://www.ee.surrey.ac.uk/Projects/CAL/digital-logic/gatesfunc/index.html . This stuff can be confusing at first so don't hesistate to ask if you need help :)
Today I went back and redid Lesson 1 (last time I completed it was last year) and verified the truth tables (also so I could help with questions regarding it). I also created a new tutorial for creating your own Verilog module which explains how the Verilog code works and how you can make your own project from scratch. Check it out here: https://docs.google.com/presentation/d/1OwIa7VYDqFAGg8GcSsApgwXXBefdGu6KVcSHvMAq_-4/edit
Also helped some people answer questions regarding Lesson 3. I sent an email to everyone with the video from the last slide of that presentation. Remember to reach out in the group chat or to me personally if you need any help.
Today (6/3) I went back through Lessons 1 and 2 to keep them fresh in my mind, as well as finishing what I had already started on Lesson 3. After some trial and error and contributions from everyone else, I was able to figure it out. I agree that around slides 11-12 could use some clarifications, and there are definitely more smaller instances like this, and if we are going to make a step-by-step slideshow (instead of this one's hands-off approach) could be added to further guide the user. I also found that when saving Matt's files, if you name the file in double quotation marks and save it as All Files, it won't save as a .txt, saving some time, for example "Basys3.xdc"
Spent some time going through the lessons again to try to really understand them. I did some research on FPGA's and made a post to the blog on some videos that helped me. I edited the some of the slides on Lesson 3 where I got stuck my first go around, giving some hints. Maybe that can be the more detailed version? Maybe the old one can be the more challenging version that Matt intended. I did feel pretty satisfied working through the issues that came up and getting the correct end result, so I think its great to have both. I also spent some time looking up some potential projects to work on in the future. The only thing I didn't attempt is creating troubleshooting slides, but I plan on working on that in the morning.
ReplyDeleteI went through lesson 3 today and successfully tested the blinkers. The video on the slides needs access to be viewed
Note 1: there was an error with the commands “wire [5:0] rates;” and “Assign rates[5] = 1’b1;” because:
- The “A” in “Assign” should be lowercase. Remember that the code is case-sensitive, so if there is
a uppercase where it should be lowercase, it will cause an error.
- The quote before the letter b might give us an error if we were to copy and paste the command
to our code => should type our own quote (a photo demonstrated this is on a troubleshooting
slide)
Note 2: When I started Slide 10, I thought I had to open "clockDivider.v" from "design sources" window on the top left. This is because the first line mentions "clock divider module". But slide 10 still refers to the same module file used from slides 6 to 9 => Should still code in "blinkerTop.v"
I went through lesson 3 today. While I was adding the code to blinkerTop I got an error when I tried to include the code in slide 14. My error was that after adding case({btnU,btnR,btnD,btnL,btnC}) inside the always block, I did not know I had to end the case. In order to end the case I added another line of code after that said endcase. I also added this to the slide 14. I also added a slide with a picture showing where the buttons btnU, btnR, btnD,btnL, and btnC can be found, which is slide 18. When I got to test my program it took me some time to understand that I had to press down and hold the button in order to see the blinks. I added this explanation on slide 19. This took me some time to figure out because when I was doing it, the video at the end of the lesson was not available. The video is now available so it should be easy to understand how to test the program with that, along with the explanation.
ReplyDeleteI think in order for this to work smoothly it is important to understand slide 11 where it explains how we get the amount of hertz wanted.
Today I went back and redid lessons 1 and 2, just to make myself a bit more familiar with what I'm doing. I realized though that I missed the bullets about doing truth tables for both lessons, so I went and did those as well. It took a bit to figure out the first one, but a quick Google search helped show me what it would look like, although I'm still not sure if it's correct, and I'm still having trouble with the second one, so I'm spending some time looking into that as well. I also did lesson 3 up until the video, since it needs access to view. I was a little confused with the copy pasted lines and the different rates, but after reading the slides more in-depth I fixed my errors and got everything working pretty well.
ReplyDeleteThe second lesson's terminology, like the ||, &, and !, is a little different, they all correspond to a gate. I responded to May there saying what each one meant so || = OR gate, && = AND gate, and ! = NOT gate. The two input switches that slide 23 highlights, when you interact with them they change certain LED's turning off and on right? He labeled the left switch to be A and the right switch to be B. Say, for example, the A switch was up but B was down, this would mean that A is a 1, and B is 0. So the LED's that light up, work when there is an A input alone. This could mean that those LED's correspond to an OR gate which works when either or both inputs is a 1. Test each position of the switches and see what LED's light up when you do so, record it, then see if that matches the key Matt created on the right side of the slide. Heres a basic explanation on the gates and their truth tables, http://www.ee.surrey.ac.uk/Projects/CAL/digital-logic/gatesfunc/index.html . This stuff can be confusing at first so don't hesistate to ask if you need help :)
DeleteToday I went back and redid Lesson 1 (last time I completed it was last year) and verified the truth tables (also so I could help with questions regarding it). I also created a new tutorial for creating your own Verilog module which explains how the Verilog code works and how you can make your own project from scratch. Check it out here: https://docs.google.com/presentation/d/1OwIa7VYDqFAGg8GcSsApgwXXBefdGu6KVcSHvMAq_-4/edit
ReplyDeleteAlso helped some people answer questions regarding Lesson 3. I sent an email to everyone with the video from the last slide of that presentation. Remember to reach out in the group chat or to me personally if you need any help.
Also started a blog post for possible Vivado errors, feel free to keep adding to it if you find and/or resolve any errors that come up while using it.
DeleteToday (6/3) I went back through Lessons 1 and 2 to keep them fresh in my mind, as well as finishing what I had already started on Lesson 3. After some trial and error and contributions from everyone else, I was able to figure it out. I agree that around slides 11-12 could use some clarifications, and there are definitely more smaller instances like this, and if we are going to make a step-by-step slideshow (instead of this one's hands-off approach) could be added to further guide the user.
ReplyDeleteI also found that when saving Matt's files, if you name the file in double quotation marks and save it as All Files, it won't save as a .txt, saving some time, for example "Basys3.xdc"
Spent some time going through the lessons again to try to really understand them. I did some research on FPGA's and made a post to the blog on some videos that helped me. I edited the some of the slides on Lesson 3 where I got stuck my first go around, giving some hints. Maybe that can be the more detailed version? Maybe the old one can be the more challenging version that Matt intended. I did feel pretty satisfied working through the issues that came up and getting the correct end result, so I think its great to have both. I also spent some time looking up some potential projects to work on in the future. The only thing I didn't attempt is creating troubleshooting slides, but I plan on working on that in the morning.
ReplyDelete