I thought taking few days off the week would leave me regretting for my work productivity as the time spent would not be enough. However, this week went alright. Well time is never enough of course, but this week was slightly better than some of the weeks before.
I paused my work on the passive buzzer and start designing few simple modules of LED. I started with the 2 colour LED, emitting red and green colour. There were two of them, one had a 3mm diameter and the other 5mm diameter. They only needed outputs so the design was simple. I tested with test bench and managed to make both of them to work on the FPGA board. I proceeded with the 3 colour LED called RGB LED, having red, green and blue colour. I was stuck with the design for a few hours since it had compilation errors that I could not identify. The error message was general so I could not know in which line I was writing the code wrong. After going through every line of the codes one by one, I made modifications to possible lines that might be causing errors. Finally, I managed to make the design to compile. It was a mistake of the way I was assigning bits to the registers. The design required 3 bits of inputs and outputs since there are three colours.
The test bench was working as it should but when I tried to generate the programming file of the design in Xilinx, it failed. Again, my mistake was about assigning bits but this time it was in the UCF file. I referred the UCF file of Digilent Atlys board and corrected mine for the design. The 3 colour LED was then working as well. There was another module of the same characteristics, only that it was SMD RGB LED. SMD stands for Surface-Mount Device, this LED module was made with Surface-Mount Technology (SMT) on the PCB. However, the design I made did not work on this module. Dr. Shawn said that it might have burnt out and I should test just to see whether it can work or not first.
I resumed my work on the passive buzzer and asked Dr. Shawn on the overflow I was having problems with. I do not know which feels worse, the disappointment of being stucked for too long not being able to design on my own, or the frustration of not realizing the mistakes I did when they were pointed out by Dr. Shawn. Now the test bench showed I managed to create an overflow for the buzzer thus I must test on the FPGA board later. I just need to get it over with and design more modules besides creating a PWM module. A PWM module would be interesting to implement on the LED’s as their brightness could then be controlled thus variety of colours can be produced instead of just definite red, blue and green.