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

Yuhan Jiang’s Design Notebook

Week 1 — September 21, 2026

Work Completed

This week, I set up the development environment for the VIP project using WSL 2, Ubuntu, and VS Code. I installed Git and Verilator, configured GitHub SSH authentication, joined the NYU Processor Design organization, and forked and cloned the documentation repository. I also became familiar with the basic Git and pull request workflow for submitting weekly design notebook entries.

I briefly reviewed SystemVerilog and basic computer architecture concepts and began reading the RV32I documentation.

Project Interests

I am most interested in the Single-cycle Core team, particularly the Bus/SoC area. Since I am currently taking a SoC Design course, I would like to connect what I learn in class with this project. I am also interested in verification and learning how to test hardware designs.

I am also open to learning about other parts of the processor and helping with UART or SPI.

Week 2 — September 28, 2026

Work Completed

This week, I completed Lab 2 of the Processor Design VIP onboarding. I implemented and verified an 8-bit ALU, a parameterized counter, and a Moore FSM sequence detector using SystemVerilog and Verilator.

I also started reading Chapter 4, “The Processor,” from Patterson and Hennessy’s Computer Organization and Design for Group B.

What I Learned

From the reading, I developed a better understanding of the basic structure of a processor, including the program counter, instruction memory, register file, ALU, data memory, and control logic.

I also learned the difference between combinational logic and sequential logic, and how data moves through the processor during instruction execution.

The reading also helped me connect the concepts from Lab 2 to processor hardware, especially the use of combinational logic for the ALU and sequential logic for registers and state machines.

Week 3

This week, I worked on the Group B processor schema design.

I reviewed the RV32I instruction formats and learned more about how the PC, register file, ALU, immediate values, multiplexers, and control unit work together in a single-cycle processor.

My main contribution was adding support for the U-type instructions LUI and AUIPC. For both instructions, I added a U-type immediate generator: immU = {instr[31:12], 12’b0} For LUI, the generated immediate is written directly back to the destination register rd. For AUIPC, the generated immediate is added to the current PC using a 32-bit adder, and the result is written back to rd. I also added the opcode connection, RegWrite control, writeback selection, rd address connection, and bus-width labels. This helped me better understand how instruction fields are decoded and how different instructions use different datapath paths while sharing the same processor components.

Work