Kevin’s Design Notebook


Week of 11 September 2023

  • Refreshed my knowledge on the AHB and APB
  • Discussed plans for AHB and APB issue ordering with Rishyak, Krzysztof, and Vito
  • Created some APB issues that need to have more descriptions eventually

This week was spent getting reacquainted with the AHB and APB specifications and discussing the roadmap for AMBA in general with the leadership. We have decided that the APB should be pushed back a little but until more work is done with the AHB since the APB is very similar to the AHB. Next week will be spent looking over code that we have already and maybe adding more unit tests to the subordinate module.

Week of 18 September 2023

This week I spent creating the basic files and figuring out which signals are necessary for the APB and how they are different from the AHB. Both protocols are very similar but the APB lacks a lot of the fancy features of the AHB. This behavior also changes how the subordinate works (also called the Completer in the documentation ) so I decided it might be better to start from scratch while loosely referencing the AHB subordinate.

Week of 25 September 2023

I parameterized as much of the GPIO modules as I could and set up the CMake files to do some tests but I realized that the issue of nyu-util failing when I try to build it was still causing problems. I spoke a bit with Rishyak and ended up resetting my WSL installation to see if it would help but that didn’t help. I plan on working on my laptop from here on out since we were unable to figure out why my desktop can’t seem to build nyu-util.

Week of 2 October 2023

My development environment continues to cause issues for me. Upon talking with Rishyak some more I attempted to build using my laptop which ended up having the same problem as my desktop with being unable to build nyu-util. I attempted resetting my wsl setup on my laptop but it also had no affect. I’m going to see about creating a dual boot on my desktop to see if its just an issue with Ubuntu or something.

Week of 9 October 2023

I ended up asking Vito to look at my environment issue and we found out that the Verilator version was a major update behind and no longer worked. To fix this we had to upgrade my Ubuntu version to the latest one. Once that was done I was able to start creating some tests.

Week of 16 October 2023

  • APB GPIO Subordinate: Created read and write tests
  • WSL Install Documentation: Updated WSL documentation on how to update to lunar.

I added some more tests to the GPIO module and fixed an assortment of issues with reading and writing. I also updated the WSL installation documentation to include updating to lunar from the LTS since nyu-util requires a more up to date verilator than what the LTS provides.

Week of 23 October 2023

  • APB GPIO Subordinate: Fixed error with read and write and switcheed to inout pins.
  • Started work on increasing coverage on SubDummy tests

I modified the GPIO module to use inout pins which means that the input and output functionality only use one wire which is more like what it would be in real life. I also started working on increasing the code coverage of the subDummy module.

Week of 6 November 2023

I wasn’t able to do much work last week but this week I worked on increasing the code coverage of the tests for the dummy subordinate module. After looking through the module code I wanted to experiment with redoing it based on what I learned from the GPIO subordinate.

Week of 27 November 2023

Forgot to update my design notebook for the last two weeks. Since the last time I worked more on re-doing the SubDummy but scrapped the idea because it was less readable and I don’t think it was any better than the original. I also added several tests for the SubDummy that should improve the code coverage. The tests included busy cycles, error handling, and idle states.