Tentative schedule for CIS 351

Week Date Topics Notes Reading Milestones
1 Mon. 31 Aug. Introduction
Truth Tables
Circuit Overview
How to build logic gates
Use of Binary
 
Hexadecimal and Base Conversions
Sections 1.1 - 1.5
Video 1
 
Video 2
Video 3
Video 4
Video 5
Assign First Day Survey
Assign Homework 1: Introduction to Digital Logic
Assign In-Class 1: Conversions
Assign In-Class 2: Truth Tables and PLAs
Tue. 1 Sep. Lab: Tools Assign Lab 1: Tools
Due First Day Survey
Wed. 2 Sep. Course Overview / Logistics Video 0
Fri. 4 Sep. Transistors
Building logic gates with transistors
Power Consumption
Building Transistors
Section 1.7
Section 1.8
Due Lab 1: Tools
2 Mon. 7 Sep. Labor Day
Tue. 8 Sep. Lab: Conversions Assign Lab 2: Number Conversions
Wed. 9 Sep. Failure of Big Hammer to Scale
Combinatorial Circuits
Other Gates
Boolean Expressions
Functional Completeness
Video 6 Section 2.4
Video 7 Sections 2.1, 2.4, and 2.5
Video 8 Sections 1.5.5 and 1.5.6
Video 9 Section 2.2
Video 10
Assign In-Class 3: Combinatorial Circuits
3 Mon. 14 Sep. Adders
Propagation Delay
Time of Circuits
Circuit Size
Carry Lookahead Adder
Carry Select Adder
Test 1: Conversions
Video 11 Section 5.2
Video 12 Section 1.6
Video 13 Section 2.9
Video 14
Video 15 Section 5.2
Video 16
Due Lab 2: Number Conversions
Assign In-Class 4: Propagation Delay
Tue. 15 Sep. Lab: Unsigned Adder Assign Lab 3: Unsigned Adder
Assign Project 1: Build an Adder
Wed. 16 Sep. Ripple Carry Adder in-class exercise Assign Introduction to JLS
Due Homework 1: Introduction to Digital Logic
Assign Project 1: Build an Adder
4 Mon. 21 Sep. Carry Lookahead Adder^
Carry Select Adder^
Signed Integers / Twos Complement
Signed Addition
Mulitiplexors
Boolean Algebra
ALUs
Test 2: Combinatorial Circuits
Video 15 Section 5.2
Video 16
Video 18 Section 1.4.6
Video 19
 
Section 2.3
Due Lab 3: Unsigned Adder
Assign Homework 2: Boolean Algebra
Tue. 22 Sep. Combinatorial Circuits Lab Assign Lab 4: Introduction to Digital Logic
Wed. 23 Sep. Assign Project 2: Build a Subtractor and SLT
Assign Project 3: Build an ALU
5 Mon. 28 Sep. Signed Integers / Twos Complement^
Signed Addition^
Mulitiplexors^
Boolean Algebra^
ALUs
Video 18 Section 1.4.6
Video 19
Video 22
Section 2.3
Due Lab 4: Introduction to Digital Logic
Assign in-Class 5: Circuit with Choices
Tue. 29 Sep. Subtraction and Comparison Assign Lab 5: Subtraction and Comparison
Wed. 30 Sep. Due Project 1: Build an Adder
Fri. 2 Oct.
6 Mon. 5 Oct. Latches
Clocks and Clocked Latches
Flip-Flops
Sequential Circuits
Finite state Machines
Video 23 Sections 3.1, 3.2, 3.3
Video 24
Video 25 Section 3.2.3
Video 26 Sections 3.4, 3.5, and 3.6
Video 27
Assign In-Class 6: Flip Flop Timing
Assign Homework 3: Sequential Circuits
Due Homework 2: Boolean Algebra
Tue. 6 Oct. ALUs Assign Lab 6: ALUs
Wed. 7 Oct. Flip Flops and Sequential Circuits Due Project 2: Build a Subtractor and SLT
Fri. 9 Oct. Finite State Machines
7 Mon. 12 Oct. Intro to CPU Design, Words, and Register Files
Intro to Assembly
Machine languge and MIPS R-type
Fetch/Execute cycle
Generating and Loading Machine Code
I-Type instructions
Design principles
Test 3:
Video 28 Sections 7.1 and 7.3.1
Sections 6.1, 6.2, 6.3, and 6.4.1
Video 29 Section 6.3
Video 30 Sections 7.1.3 and 7.3.1
Video 31
Sections 6.5 and 6.7.1
Sections 6.3.2, 7.3.2 and 7.3.3
Tue. 13 Oct. Assembly Intro Lab
Sequential Circuits Lab
Assign Lab 7: Introduction to Assembly
Assign Lab 7: Sequential Circuits
Wed. 14 Oct.
Fri. 16 Oct. Due Homework 3: Sequential Circuits
Due Project 3: Build an ALU
8 Mon. 19 Oct. "Second Chance" Test
^ Machine Language and MIPS R-type
^ Fectch/Execute cycle
^ Generating and Loading Machine Code
^ I-Type instructions
^ Design principles
Branch and Jump
Video 29 Section 6.3
Video 30 Sections 7.1.3 and 7.3.1
Video 31
(in person only) Sections 6.5 and 6.7.1
Sections 6.3.2, 7.3.2 and 7.3.3
Sections 6.3.3, 6.4.2, 6.4.3
Due Lab 7: Introduction to Assembly
Due Lab 7: Sequential Circuits
Tue. 20 Oct. Assembly Branches Lab Assign Lab 8: Assembly Branches
Wed. 21 Oct.
Fri. 23 Oct.
9 Mon. 26 Oct. Jump
Branch
Load and Store
using .data in Assembly
Load Store implementation
Video 34 Sections 6.3.3, 6.4.2, and 7.3
Video 35 Sections 6.4.2, 6.4.3, and 6.4.4
(in person only) Section 6.4.5
Due Lab 8: Assembly Branches
Tue. 27 Oct. Assign Lab 9: Computer Instruction Types
Wed. 28 Oct. Assign Homework 4: Single Cycle CPU
Assign Sequential Circuits Review
Fri. 30 Oct.
10 Mon. 2 Nov. Function calls
Clobbered Registers
Using "s" registers
Heap and Stack
System calls
Single Cycle Performance
Interrupts
Test 4: Sequential Circuits
Video 39 Section 6.4.6
Video 40
Video 41
Section 6.4.6
Sections 7.2 and 7.3.4
Section 6.7.2
Due Lab 9: Computer Instruction Types
Due Sequential Circuits Review
Assign Assembly Review
Tue. 3 Nov. Loops and Memory Assign Lab 10: Loops and Memory
Wed. 4 Nov. Assign In-Class 7: Control Wires
Fri. 6 Nov. Due Homework 4: Single Cycle CPU
10 Mon. 9 Nov. RAM
SRAM Implementation
DRAM Implementation
SRAM vs. DRAM
Memory layout
Memory Heirarchy
(Motivation for caches)
Direct Mapped Cache
Cache Block Size
Test 5: Assembly Branches
Section 8.1
Section 8.3
Video 45 Section 8.1
Video 46 Section 8.3
Video 47
Due Assembly Review
Assign Homework 5: Cache
Tue. 10 Nov. CPU Project Assign Lab 11: Build Single Cycle CPU
Wed. 11 Nov. Due Homework 4: Single Cycle CPU
Due Lab 10: Loops and Memory
Fri. 13 Nov.
11 Mon. 16 Nov. Set Associative caches
Cache replacement policy
LRU and Pseudo-LRU
Split/Unified cache
Test 6: Memory and Loops
Video 49 Section 8.3
Video 50
Video 51
Tue. 17 Nov. Cache 1 and 2 Assign Lab 12: Cache (part 1)
Assign Lab 12: Cache (part 2)
Wed. 18 Nov.
Fri. 20 Nov. Due Project 4 (Phase 1)
12 Mon. 23 Nov. Test 7: Final Exam (part 1)
Tue. 24 Nov. Cache 2 (continued) Due Lab 12: Cache (part 1)
Wed. 25 Nov. No class Due Homework 5: Cache
Fri. 27 Nov. No class Assign Homework 6: Pipeline Implementation
13 Mon. 30 Nov. Pipelining
Data Hazards
Control Hazards
Karnaugh Maps
Intro to Pipelining
K-Map Introduction
4-variable K-map
Due Lab 12: Cache (part 2)
Tue. 1 Dec. Pipeline Lab Assign Lab 13: Pipeline
Wed. 2 Dec. Pipeline speedup / Limitations
Split / Unified cache
Fri. 4 Dec.
14 Mon. 7 Dec. More Pipelining
MIPS Calling Conventions
Video 39 Section 6.4.6
Video 40
Video 41
Due Lab 11: Build Single Cycle CPU
Due Lab 13: Pipeline
Assign Homework 7: Pipeline Performance
Tue. 8 Dec. Recursion Lab Assign Lab 14: Recursion
Wed. 9 Dec.
Fri. 11 Dec.
15 Mon. 14 Dec. Final Exam Due Homework 6: Pipeline Implementation
Due Homework 7: Pipeline Performance
Due Practice Final
Tue. 15 Dec. Due Lab 14: Recursion
Wed. 16 Dec.
Fri. 18 Dec.

Assignment List

Due Name Details
Tue. 1 Sep. First Day Survey
Wed. 16 Sep. Homework 1: Introduction to Digital Logic Due at 5:15 p.m. Please submit hard-copy
Wed. 30 Sep. Project 1: Build an Adder
Mon. 5 Oct. Homework 2: Boolean Algebra
Wed. 7 Oct. Project 2: Build a Subtractor and SLT
Fri. 16 Oct. Homework 3: Sequential Circuits
Fri. 16 Oct. Project 3: Build an ALU
Mon. 2 Nov. Sequential Circuits Review Not due for credit
Mon. 9 Nov. Assembly Review Not due for credit
Wed. 11 Nov. Homework 4: Single Cycle CPU Please work in pairs.
Fri. 20 Nov. Project 4 (Phase 1)
Wed. 25 Nov. Homework 5: Cache Problems 1 - 6 only.
Mon. 14 Dec. Homework 7: Pipeline Performance Not due for credit
Mon. 14 Dec. Homework 6: Pipeline Implementation
Mon. 14 Dec. Practice Final Not due for credit

Labs

Date Name Details
Tue. 1 Sep. Lab 1: Tools
Tue. 8 Sep. Lab 2: Number Conversions
Tue. 15 Sep. Lab 3: Unsigned Adder
Tue. 22 Sep. Lab 4: Introduction to Digital Logic
Tue. 29 Sep. Lab 5: Subtraction and Comparison Get started on Project 2
Tue. 6 Oct. Lab 6: ALUs Get started on Project 3
Tue. 13 Oct. Lab 7: Sequential Circuits
Tue. 13 Oct. Lab 7: Introduction to Assembly
Tue. 20 Oct. Lab 8: Assembly Branches
Tue. 27 Oct. Lab 9: Computer Instruction Types
Tue. 3 Nov. Lab 10: Loops and Memory
Tue. 10 Nov. Lab 11: Build Single Cycle CPU Please work in pairs
Tue. 17 Nov. Lab 12: Cache (part 1)
Tue. 17 Nov. Lab 12: Cache (part 2)
Tue. 1 Dec. Lab 13: Pipeline
Tue. 8 Dec. Lab 14: Recursion

Updated Wednesday, 2 December 2020, 5:48 PM

W3c Validation