Skip to content

CS 315-01 Lecture/Lab — Meeting Summary (Fall 2025)

  • Date: Oct 28, 2025, 08:21 AM Pacific
  • Meeting ID: 886 4953 2573

Quick Recap

  • The instructor, Greg, emphasized incremental development and testing in both software and hardware, noting that small, testable steps lead to faster debugging and deeper understanding.
  • The class reviewed data representation topics (instruction sets, memory layouts) and clarified instruction set architecture (ISA) vs. microarchitecture.
  • Greg detailed the RISC-V register file design, including a wrapper circuit, read/write behavior, and control via decoders and enables.

Next Steps

  • Students:
  • Meet with Greg if experiencing difficulties with Project 5 to work through mechanics.
  • Start reading the Lab 9 specification and guides.
  • Lab 9 is due next Monday.
  • Project 6 is due the Monday after Lab 10 and includes interactive grading.
  • Create a wrapper circuit around a digital register to add CLEAR functionality for the register file.
  • Build a register file with 31 physical registers (X0 is hardwired to 0).
  • Build the ALU for Lab 9.
  • Build a 64-bit PC register with CLEAR for Lab 9.
  • Build a decoder with enable for register file write control.
  • Greg:
  • Add the missing picture to the Lab 9 guide.

Summary

Incremental Development for Software Projects

  • Greg highlighted the importance of building and testing code in small, verifiable steps rather than attempting large, all-at-once implementations.
  • He noted that while this approach requires upfront planning and deliberate effort, it substantially reduces debugging time and improves comprehension.

Incremental Development in Engineering Projects

  • The same principles apply to hardware and complex systems: break work into manageable parts, test individual components, and validate progressively.
  • Students were encouraged to seek guidance on applying incremental strategies in their projects.

Computer Architecture and Data Representation

  • The course has covered integers, ASCII, instruction words, and memory layouts. Floating-point (IEEE 754) has not yet been addressed.
  • ISA was defined as the hardware–software interface: how instructions are formatted and interpreted by the processor.
  • The class is transitioning from digital design fundamentals to processor design capable of executing machine-word instructions.

ISA vs. Microarchitecture

  • ISA specifies the visible behavior of instructions; microarchitecture is the specific hardware implementation of that ISA.
  • Digital design approaches include schematic entry and HDLs (e.g., Verilog, VHDL).
  • Moore’s Law was discussed in context: more transistors enable added complexity (caches, multi-core, GPUs, neural engines).
  • The immediate focus is implementing a single-cycle subset of RISC-V as a simplifying base.

Processor Design Roadmap

  • Near-term: implement a single-cycle processor including:
  • 64-bit PC register
  • Instruction memory
  • Instruction decoders
  • Register file with 32 logical RISC-V registers (X0 hardwired to 0)
  • ALU
  • RAM
  • Execution flow (single cycle):
  • PC selects an instruction → decode → compute via ALU → update registers/memory on the rising clock edge.
  • After Project 6: progress toward a multi-cycle and pipelined processor to overlap instruction execution and increase throughput.
  • Schedule notes:
  • Lab 9 due next Monday
  • Lab 10 due the following Monday
  • Project 6 follows Lab 10 with interactive grading

Register File Design

  • Logical structure:
  • 32 logical registers; X0 is a constant 0, so only 31 physical registers are implemented.
  • Two read ports per cycle, one write port per cycle.
  • Interfaces:
  • Read selectors (for two sources), write selector, data-in, data-out lines, write enable, and CLEAR for reset.
  • CLEAR/wrapper approach:
  • Wrap a 64-bit register with a MUX to select between input and zero based on a synchronous CLEAR signal.
  • Read path:
  • Two independent MUX trees enable reading two different registers in the same cycle.
  • Wires are preferred over tunnels for clarity in complex circuits, though tunnels can reduce repetition.
  • Write path:
  • A decoder with enable selects the destination register for write-back.
  • Register 0 is implemented as a hardwired constant 0 (not physically writable).
  • Tooling note:
  • Unlike Project 5 (where students built basic components like adders and comparators), future work can rely on existing digital components.