ECE 251 Spring 2026 Weekly Course Notes
<- back to syllabus
Course Schedule
| Week(s) |
Dates |
Topic |
| 1 |
1/22 |
Computer Abstraction & Stored Program Concept |
| 2, 3 |
1/29, 2/5 |
Instructions —The Language & Grammar of Computers |
| 4, 5 |
2/12, 2/19 |
Hardware Modeling with Software (Verilog HDL) |
| 6, 7 |
2/26, 3/5 |
Intro to Assembly Language Programming — MIPS CPU |
| 8 |
3/12 |
Arithmetic and Floating Point Numbers; Midterm Exam |
| 9 |
3/26 |
Intro to Data Path & Control |
| 10, 11, 12 |
4/2, 4/9, 4/16 |
The Processor — Data Path & Control; Interrupts |
| 13 |
4/23 |
Memory Hierarchies (Caching) Part 1 |
| 14 |
4/30 |
Memory Hierarchies (Caching) Part 2 |
| 15 |
5/14, 5/15 |
Cumulative Final Exam & Final Project Submission |
Follow the link above to the respective week’s materials below.
Let’s begin
Have a read of our opening prologue, and then let’s get started with why we are taking this class…
Topics
- Computer Abstraction
- Stored Program Concept
- History of computer architecture and modern advancements
Topic Deep Dive
See notes_week_01
Reading Assignment
Homework Assignment
See hw-01; solution
Topics
- Recap: Stored Program Concept, and the history of computer architecture and modern advancements
- The alphabet, vocabulary, grammar of computers
1s and 0s as the alphabet
- compute and memory instructions as the vocabulary
- implementation of compute and memory instructions as the grammar
- Introducing the instructions of a computer delivered by the architecture
- Operations of the computer hardware
- Operands of the computer hardware
- Signed and unsigned numbers
- Representing instructions in the computer
- Logical operations
Topic Deep Dive
See notes_week_02
Reading Assignment
Homework Assignment
See hw-02; solution
Topics
- Instructions for making decisions
- Supporting procedures (aka functions) in computer hardware
- Begin converting our instructions to control logic for computation and memory storage.
Topic Deep Dive
See notes_week_03
Software Installation
Reading Assignment
NOTE: Check our shared Teams drive for these files too as well as the installation for our software.
Homework Assignment
See hw-03; solution
Topics
- Verilog: Parameterization; Built-in primitives; User-defined primitives; Dataflow modeling
- Intro to logic design using Verilog HDL
- Logic elements
- Expressions
- Modules and ports
Topic Deep Dive
See notes_week_04
Software Installation
- Verilog
- Build files
- Unix (MacOS, Linux)
- Windows
Homework Assignment
See hw-04; solution
Topics
- Built-in primitives
- User-defined primitives
- Dataflow modeling
Topic Deep Dive
See notes_week_05
Homework Assignment
See hw-05.md; solution
Topics
- Programming MIPS assembly language, using MIPS emulator (
spim)
Topic Deep Dive
See notes_week_06
Reading Assignment
Topics
- Programming MIPS assembly language, using MIPS emulator (
spim)
Topic Deep Dive
See notes_week_07
Reading Assignment
Topics
- Reviewing what it means for a computer to perform arithmetic
- Addition and Subtraction
- Multiplication
- Division
- A better system to handle very small and very large numbers — floating point numbers (IEEE 754 standard).
- Arithmetic of floating point numbers.
Topic Deep Dive
See notes_week_08
Reading Assignment
- Read Chapter 3, Sections 3.1 through 3.5 in Computer Organization and Design - MIPS Edition.
Topics
- Introduction to the basic MIPS processor implementation (Section 4.1).
- Logic design conventions and clocking methodology (Section 4.2).
- Building a simple single-cycle datapath and the Control Unit (Section 4.3).
- Retrospective: SystemVerilog behavioral modeling of the datapath logic.
Topic Deep Dive
See notes_week_09
Reading Assignment
- Read Chapter 4, Sections 4.1 through 4.3 in Computer Organization and Design - MIPS Edition.
Topics
- The limitations of single-cycle implementation.
- Transitioning to multicycle implementations.
- Introduction to Pipelining.
Topic Deep Dive
See notes_week_10
Reading Assignment
- Read Chapter 4, Sections 4.4 and 4.5 in Computer Organization and Design - MIPS Edition.
Homework Assignment
See hw-10
High-Level Topics: Pipelined Datapath and Control
- Pipelined Datapath and Control (Section 4.6): Transitioning to a 5-stage concurrent architecture utilizing explicit pipeline registers (
IF/ID, ID/EX, EX/MEM, MEM/WB).
- Data Hazards - Forwarding vs. Stalling (Section 4.7): Resolving Read-After-Write (RAW) logic overlaps via algorithmic operand forwarding pathways versus forced pipeline stalls.
- Control Hazards and Exceptions (Sections 4.8, 4.9): Coping with branch penalties, target predictions (
beq), pipeline flush mechanics, and synchronous hardware exceptions.
See notes_week_11
High-Level Topics: Exceptions, Interrupts, and Architecture Synthesis
- Handling Hardware Faults (Section 4.9): Triggering asynchronous interrupts and exceptions via
Exception_Flag, performing pipeline flushes (flushD/E), and precisely capturing failing logic pointers via the EPC register.
- Comprehensive Assembly Analysis: Executing fully-simulated MIPS physical workloads mapped across linear bounds, nested logic flows, branch dependencies, and OS Vector limits.
- Pipelined Datapath Verification: Generating executable
.vcd structural logs tracking signals across time bounds and inspecting exact exception fault latency tracking using the VS Code *Surfer* waveform extension.
- SystemVerilog Integration: Fortifying processor matrices globally spanning memory depth scaling mapping arrays cleanly to OS mappings (
0x8000 0180), decoupling overlapping arithmetic units globally (MULT, DIV, logic arrays) preventing hardware routing collisions seamlessly natively.
See notes_week_12
Homework Assignment
See hw-12
High-Level Topics: Memory Technologies and Basics of Caches
- Introduction to Memory Hierarchy (Section 5.1): The principle of locality (temporal and spatial).
- Memory Technologies (Section 5.2): SRAM, DRAM, Flash, and Magnetic Disk.
- The Basics of Caches (Section 5.3): Direct-mapped caches, tags, valid bits, block size, and cache misses.
- SystemVerilog Implementation (Section 5.4): Building Direct-Mapped, Set-Associative, and Fully Associative cache arrays in RTL.
- Hardware Simulation (Section 5.5): Proving the Iron Law of Performance via cache bypass testing and temporal locality benchmarks.
See notes_week_13
- Measuring and Improving Cache Performance (Section 5.4): CPU time, miss penalty, average memory access time.
- Dependable Memory Hierarchy (Section 5.5): Reliability, availability, Hamming codes.
- Virtual Memory (Section 5.6): Pages, page faults, TLB, integration of virtual memory and caches.
See notes_week_14
- 5/14: Cumulative Final Exam.
- 5/15: Group Final Project due no later than 5pm ET.
<- back to syllabus