Introduction
I could have done so much more with the Ultra96v2 board, I stuck with the theme of LED blinking through different ways and although it is not too fancy, one thing that I have noticed is that I spend too much time when it comes to creating something new. For example, rather than testing an already verified design in a new environment, what I have found myself doing is that I create new designs and start playing with those and when they don’t work (even if they are fun, that’s bad practice), I spend too much time debugging only to find out that I set something in an incorrect way. That was why I wanted to take this opportunity to actually create a set of tested designs that I can run and verify that new environments that I am working with are actually set correctly.
We have seen four (3 actually) ways we can blink LEDs in Ultra96v2 board, and I find this board to be really interesting and the only (for a board of this kind) complain that I have is the lack of accessibility of the clock directly from the PL (or maybe it’s just me who could not figure out how). I have to admit though that for a board of this size, too much complexity would have driven the cost much higher, so designers had to make some adjustments.
This final blog is more of a thought process and reflection on last four LED blinking blogs. The original plan was a bit different as I had planned to do one custom petalinux based LED blinking but because I did not have enough time to fix the errors that I was getting while building the petalinux based design, I had to leave it at that. But that is okay because if not for that, I would not have thought of actually doing a reflection-based blog post.
If you have followed what I did, then let’s do a bit of reflection on each topic.
-
4-bit ARM
This was supposed to be the second blog but while I was doing the PYNQ numbers blog, I realized that the natural progression would be to initialize the design and then to add an AXI IP and then extend that AXI IP to PYNQ. Therefore, I changed the order just while I was finishing up. I wanted to do something more interesting with this one though: I wanted to create a LED blinking with all the cores in parallel. Because of the limited time, I could only do so much but that is something that I look forward to doing sometimes soon.
Blog: (+) 1. LED Blinking Part 1: 4-bit ARM - element14 Community
-
FPGA flashes Police Lights
This was supposed to be the first blog and I only came up with the title after I was done with this project. While I was just doing some of my other works, it just came to me that the LED blinking pattern was somewhat similar to that of a Police car light. Initially, I just wanted to use the FPGA and no PS for this task, but I just could not make it work. I also thought of adding an external LED, but I decided against it for the time being (I might do it in the future).
Blog: (+) 2. LED Blinking Part 2: FPGA flashes Police Lights - element14 Community
-
256 PYNQ Numbers
Now, this was a very interesting project. PYNQ offers a lot of flexibility when it comes to doing AI related stuffs, unlike C/C++, Python has a much wider community support. And, being able to instantiate the FPGA IP is something that is precious to save prototyping timing. Although we have to move to C++ for production design, it still has great benefits. Now, back to the project. I had initially created another LED board, spending more time than I thought I would, and it had different colored LEDs (RED, BLUE, GREEN, WHITE, YELLOW). But after finishing it up, I tested it and I only could get the YELLOW and RED to light up. The 1.8V obtained from the low-speed expansion header in the Ultra96v2 is nowhere enough to light those others up. Therefore, I just created a simple RED LED breadboard circuit and then tested the design.
Blog: (+) 3. LED Blink Part-3: 256 PYNQ Numbers - element14 Community
-
Counting using AI
This was another exciting project. The tutorial was easy enough but fixing those issues while doing it in another custom board is another topic. I wanted to continue this and do a LED blinking at the end, but I did not have enough time. I will see if I can continue this sometime soon (hopefully).
Blog: (+) 4. LED Blink Part-4: Counting using AI - element14 Community
Conclusion
This concludes all my blogs for the training. Although I had thought of doing so many things, I was only able to finish this much. Hopefully, the big project is still up, and I will enjoy creating and writing about that. See you in the final blog!