Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Bao’s Design Notebook

Week of January 26th

Team Meeting

  • January 28th: I attended the first team meeting on campus.
  • I familiarized myself with the VIP’s syllabus.
  • I examined the RiSC-16’s sequential implementation and instruction-set architecture.
  • I partnered up with Tim to start the RiSC-16 onboarding project.
    • We set weekly meeting time at 2 P.M. every Monday.

Week of February 2nd

RiSC-16 Onboarding Project

  • A Github repo of the RiSC-16 onboarding project was created and shared with Noah.
  • February 7th: Tim and I finished the two modules of Assignment 2 of the onboarding project, collaborating using Live Share extension on Virtual Studio Code.
    • We implemented the instruction memory and program counter.
    • Flu-like viral infection restricted me and Tim from meeting at intended time.

Week of February 9th

RiSC-16 Onboarding Project

  • February 10th and February 11th: Tim and I finished the two modules of Assignment 2 of the onboarding project, collaborating using Live Share extension on Virtual Studio Code.
    • We implemented the arithmetic logic unit (ALU) and data memory.
    • Post-illness fatigue restricted me and [Tim] from finishing the assignment in one meeting, so we splitted into two meetings.

Week of February 16th

RiSC-16 Onboarding Project

  • February 16th and February 18th: Tim and I finished the two modules of Assignment 3 of the onboarding project, collaborating using Live Share extension on Virtual Studio Code.
    • We implemented the register file and control. We also ensured every positive clock edge write to the correct location in memory.
    • We were able to meet at the intended time; however, time constraints and conflicts necessitate to finish this in two separate meetings.

Team Meeting

  • February 18th: I attended the second team meeting on Zoom due to delaying MTA trains.

Week of February 23rd

RiSC-16 Onboarding Project

  • February 23rd: Tim and I finished the module of Assignment 4 of the onboarding project, collaborating using Live Share extension on Virtual Studio Code.
    • We implemented the ALU testbench. We also wondered whether a dedicated folder should be created for testbenches.
    • Another module (Sixth RiSC-16 Module: Control Module) of the onboarding project was included in the assignment slides, ofwhich not much information was shared. We henceforth decided not to accomplish it for now.
    • We were able to meet at the intended time.

Week of March 2nd

RiSC-16 Onboarding Project

  • March 2nd: Tim and I started Assignment 5 of the onboarding project. However, we could not finish due to upcoming midterms so decided to proceed in the following week.

Team Meeting

  • March 4th: I attended the third team meeting in-person and chose to be working with Noah and Ghala in the Core team.

Week of March 9th

RiSC-16 Onboarding Project

  • March 11th: Tim and I started Assignment 5 of the onboarding project. We successfully compiled and ran our RiSC-16 processor with the provided testbench and confirmed all outputs were corrects.

Week of March 16

Spring Break

Week of March 23

Onboarding Labs

Week of March 30

Onboarding Labs

  • March 31: I finished Onboarding Lab 2 and pushed it into a forked GitHub repository.
    • I implemented four SystemVerilog exercises: a 4-operation combinational ALU using a single assign statement, a 16-bit Fibonacci LFSR with XOR taps at bits 15, 13, 12, and 10, a composed module connecting two Mystery1 instances to a Mystery2, and a decoder/mux using an always_comb block.
  • April 2: I finished Onboarding Lab 3 and pushed it into a forked GitHub repository.
    • I wrote C++ testbenches for four exercises: exhaustively verifying an ALU across all input combinations, sampling an LFSR across randomized initial values, randomly verifying a composed Mystery1/Mystery2 module, and testing a mux with don’t-care inputs by asserting output independence.
  • April 5:
    • I finished Onboarding Lab 4 and pushed it into a forked GitHub repository.
      • I added the NYU Processor Design registry and nyu-cmake/catch2 dependencies to the vcpkg configuration, structured the CMake build with an interface library and rtl/dv subdirectories, and converted all testbenches from bare main() functions to Catch2 TEST_CASE/REQUIRE blocks.
    • I finished Onboarding Lab 5 and pushed it into a forked GitHub repository.
      • I read through advanced SystemVerilog material covering the logic/wire distinction, interfaces with modports for bundling inter-module port connections, and parameterized modules using #() syntax; no exercise was completed as the lab repository was incomplete.
    • Having forgotten to build the program for the Onboarding Lab 3, I built the program and pushed the updated lab into a forked GitHub repository.

Team Meeting

  • April 1: I attended the fourth team meeting on Zoom.

Week of April 6

Final Presentation

  • April 8: I learned that I will be working on the final presentation with Tim and Gloria

Week of April 13

Final Presentation

  • April 19: I met with Tim and Gloria to discuss which topic we should work on.
    • We initially proposed either Instruction Decoder or Branch Predictor or both.
    • We decided to go forward with the Instruction Decoder idea.

Week of April 20

Final Presentation

  • April 25: Tim, Gloria, and I initialized our presentation slides.

Week of April 27

Final Presentation

  • April 29: I met with Tim and Gloria to work on the presentation.
  • May 1: I met with Tim and Gloria to work on the presentation.
    • We finished the slides and rehearsed for the presentation.

Team Meeting

  • May 2: I attended the fifth and last team meeting on Zoom and presented the presentation with Tim and Gloria.