Meeting Summary: CS 631-01 Systems Foundations
Date: Apr 09, 2026
Time: 08:14 AM Pacific Time (US and Canada)
Meeting ID: 870 0988 0761
Quick Recap
Greg taught a digital design session on processor implementation, focusing on the fundamentals of a single-cycle CPU.
Key components covered: program counter (PC), instruction memory (ROM), register file, and ALU.
The class built a 4-bit counter, then discussed how counters, registers, and the ALU integrate within a processor architecture.
Differences between single-cycle and multi-cycle processors were emphasized, along with an overview of modern techniques such as pipelining and speculative execution.
The session concluded with plans to complete the register file and cover the ALU and instruction decoding in the next class on Tuesday.
Next Steps
Greg:
Release the lab assignment by Monday or Tuesday.
Post class recordings and notes.
Finish single-cycle CPU design content for Tuesday.
Release the CPU project the week after the lab is due.
Class:
Complete the register file implementation on Tuesday.
Students:
Build an 8-bit register for the upcoming lab.
Complete the CPU project due the week after the lab.
Summary
Processor Implementation and 4-Bit Counter
The lab assignment was delayed to next week.
The session built on combinational and sequential logic concepts to construct a 4-bit counter using:
A register to hold the current count
An adder to compute the next count
Control signals: clock, enable, and clear
Clarification: the register outputs the current count, not the next value.
Students were encouraged to ask questions about the circuit design.
4-Bit Register Design
The design and behavior of a 4-bit register were reviewed, focusing on:
D flip-flops with enable and clear functionality
The behavior of D latches and SR latches
A one-bit adder was introduced, leading to the concept of a 4-bit ripple-carry adder.
4-Bit Ripple-Carry Adder Demonstration
A 4-bit ripple-carry adder was demonstrated in a digital design tool, including:
Customizing labels and layout
Aligning inputs/outputs and managing visual settings
Copying components to speed up design
Using splitters to break a 4-bit bus into individual bits (syntax details to be finalized)
Digital Circuit Design Demonstration
Implementation of a 4-bit ripple-carry adder and a 4-bit register was shown.
Emphasis was placed on:
Correctly wiring inputs/outputs, including ripple-carry connections
Providing clock and clear signals
Ensuring all inputs are connected to avoid tool errors
Note: the register component starts with a pseudo-random initial value.
Digital Processor Architecture Demonstration
A digital counter circuit was used to illustrate rising/falling edge behavior.
The discussion generalized to a processor model:
Core elements: state registers, combinational logic, and a clock
Representative state: general-purpose registers (X0–X31), PC, and data memory
Example instruction behaviors: arithmetic (e.g., addition), branching, and memory access
Processor System Design
A high-level processor diagram was refined into concrete components:
Instruction memory implemented as ROM with 32-bit instruction words
Use of library components rather than building every primitive from scratch
An instruction decoder to process fields from instruction words, echoing prior emulator work
Single-Cycle Processor Overview
Architecture highlights:
Key blocks: register file, ALU, memory access
Each instruction completes in one clock cycle
Clock period is constrained by the longest combinational path
Historical context:
Multi-cycle designs were common in the 1970s
Modern CPUs use parallelism techniques such as pipelining and speculative execution
Teaching Plans and Logistics
Upcoming topics: program counter, instruction memory, register file, ALU, and decoding.
Scheduling/details:
Two course sections are running
A student (Anderson) may assist as a TA for one session
Tooling plans:
Instruction in Rust
Containerized environments (Docker Desktop with WSL integration on Windows)
Program Counter and Instruction Memory
Program counter:
A 64-bit register with clear functionality was configured using a digital register component
Instruction memory (ROM):
Configured for 32-bit instruction words
8-bit address input, supporting 256 instructions
Addressing:
A splitter converts the 64-bit byte address to a word address by extracting the relevant bits
RISC-V Program Demonstration
A simple RISC-V program was implemented using a spreadsheet-like workflow:
Instruction words were populated into ROM
A PC register and adder advanced through instructions
The next planned topic was the register file (discussion to continue next session).
Register File Design and Next Session
Register file specification:
32 registers, each 64 bits wide
Read ports selected via 5-bit indices using multiplexers
Register X0 is hard-wired to zero and is not writable
Next class (Tuesday):
Complete the register file implementation
Cover the ALU and instruction decoding
Deliverables:
Lab assignment to be released by Monday or Tuesday
CPU project due the week after the lab is due
Back to top