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

Ibrahim Hashim Design Notebook

Week 0 (Sep 15-21)

  • Attended the first team meeting
  • Reviewed SystemVerilog, went through my comparch notes
  • Skimmed the official RV32I documentation
  • I prefer to work on core because I want to gain a deeper understanding of processors, and I enjoy reasoning through datapaths, control signals, instruction execution, etc.

Note: Apologies for turning this in a day late, I thought that it was due tonight rather than last night. Noted for the future.

Week 1 (Sep 22-28)

  • Attended the second team meeting
  • Looked through the given textbook Notes:
  • Datapaths are the components that store, move, and operate on values (registers, ALU, etc)
  • Control unit decodes the instruction and tells components what to do
  • Different instructions reuse much of the same hardware
  • Multiplexers make hardware sharing possible
  • The clock separates calculation from stored state
  • Control logic can be designed systematically (with a truth table)
  • One instruction per cycle does not necessarily mean a fast processor

Week 2 (Sep 29-Oct 5)

  • Missed team meeting
  • Read through the email
  • Added an ADDI operand path detail to the Miro schematic and documented the reasoning in Module Abstractions.
  • Added sign extension from the 12 bit immediate to 32 bits and an operand mux that selects the immediate for the ALU.
  • Labeled the immediate, data, register address, and mux select connections with their bus widths.
  • Sign extension preserves negative constants, while the mux lets ADDI reuse the ALU’s ADD operation.

Week 3 (Oct 5-12)

  • Attended team meeting through zoom
  • Ready to work on next stage of schematics
  • Happy (short) fall break!

Week 4 (Oct 12-19)

  • Attended team meeting
  • Reviewed the new project repository and the Git/GitHub workflow for working with my subteam
  • Reviewed the issue tracker and how module implementation and Level 1 verification are tracked separately.
  • Learned that Level 1 verification involves checking compilation and using SystemVerilog testbenches to generate waveforms and check basic correctness.
  • Preparing to work with my assigned sub-team on module implementation and Level 1 verification, due November 1.

Week 5 (Oct 19-26)