Cornell University
School of Electrical and Computer Engineering
ECE 2300 / ENGRD 2300
Digital Logic and Computer Organization
Fall 2024
Prof. Christopher Batten
Tue/Thu @ 11:40–12:55pm • 155 Olin Hall
home | syllabus | staff | schedule | handouts | readings | resources
Reading Assignments
The required textbook for the course is "Digital Design and Computer Architecture, RISC-V Edition," by D. M. Harris and S. L. Harris (Morgan Kaufmann, 2021). There are three different editions of this book for three different instruction set architectures: MIPS, ARM, RISC-V. It is critical that students use the RISC-V edition. All students will have access to the textbook online through Canvas via the Cornell Academic Materials Program.
Students are expected to complete all of the assigned reading according to the schedule below, although there is some flexibility. Some students may prefer to complete the readings before the corresponding lecture, while others may prefer to complete the readings after the corresponding lecture. Either strategy is acceptable.
If a section of the book is on this list, then students are expected to understand the material in that section. If a section of the book is NOT on this list, then students are NOT expected to understand the material in that section. Students are always expected to understand the material presented in lecture.
Course Overview
- Chapter 1. From Zero to One
- 1.1. The Game Plan
- 1.2. The Art of Managing Complexity
Topic 1: Digital Circuits
- Chapter 1. From Zero to One
- 1.7. CMOS Transistors
- include semiconductors, diodes, capacitors, transistors
- include CMOS NOT gate, other CMOS logic gates
- exclude transmission gates, pseudo-nMOS logic
- exclude power consumption
- 1.9. Summary and a Look Ahead
- 1.7. CMOS Transistors
Topic 2: Combinational Logic Gates
- Chapter 1. From Zero to One
- 1.3. The Digital Abstraction
- 1.5. Logic Gates
- 1.6. Beneath the Digital Abstraction
- Chapter 2. Combinational Logic Design
- 2.1. Introduction
- 2.9. Timing
Topic 3: Boolean Algebra
- Chapter 2. Combinational Logic Design
- 2.2. Boolean Equations
- 2.3. Boolean Algebra
- 2.4. From Logic to Gates
- 2.5. Multilevel Combinational Logic
- 2.6. X's and Z's
- 2.7. Karnaugh Maps
Topic 4: Combinational Building Blocks
- Chapter 2. Combinational Logic Design
- 2.8. Combinational Building Blocks
- 2.10. Summary
- Chapter 5. Digital Building Blocks
- 5.1. Introduction
- 5.2. Arithmetic Circuits
- exclude prefix adders, division
- exclude subtractor, ALU for now
Topic 5: Number Systems
- Chapter 1. From Zero to One
- 1.4. Number Systems
- Chapter 5. Digital Building Blocks
- 5.2. Arithmetic Circuits
- include subtractor, ALU
- 5.3. Number Systems
Topic 6: Sequential Logic Gates
- Chapter 3. Sequential Logic Design
- 3.1. Introduction
- 3.2. Latches and Flip-Flops
- exclude transistor-level latch and flip-flop designs
- 3.3. Synchronous Logic Design
- 3.5. Timing of Sequential Logic
- include clock skew
- exclude derivation of resolution time
Topic 7: Finite State Machines
- Chapter 3. Sequential Logic Design
- 3.4. Finite State Machines
Topic 8: Sequential Building Blocks
- Chapter 3. Sequential Logic Design
- 3.6. Parallelism
- Chapter 5. Digital Building Blocks
- 5.4. Sequential Building Blocks
- exclude scan chains
- 5.5. Memory Arrays
- 5.6. Logic Arrays
- exclude array implementations
- 5.7. Summary
- 5.4. Sequential Building Blocks
Topic 9: Instruction Set Architecture
- Chapter 6. Architecture
- 6.1. Introduction
- 6.2. Assembly Language
- 6.3. Programming
- exclude switch/case statements
- exclude function calls for now
- exclude additional arguments and local variables for now
- 6.4. Machine Language
- 6.7. Evolution of the RISC-V Architecture
- 6.8. Another Perspective: x86 Architecture
- 6.9. Summary
- Chapter 7. Microarchitecture
- 7.2. Performance Analysis
Topic 10: Single-Cycle Processor
- Chapter 7. Microarchitecture
- 7.1. Introduction
- 7.3. Single-Cycle Processor
- microarchitecture presented in lecture is different from textbook
Topic 11: Multi-Cycle Processor
- Chapter 7. Microarchitecture
- 7.4. Multi-Cycle Processor
- microarchitecture presented in lecture is different from textbook
- 7.4. Multi-Cycle Processor
Topic 12: Pipelined Processor
- Chapter 7. Microarchitecture
- 7.5. Pipelined Processor
- microarchitecture presented in lecture is different from textbook
- 7.9. Summary
- 7.5. Pipelined Processor
Topic 13: Assembly Programming
- Chapter 6. Architecture
- 6.3. Programming
- include function calls
- include additional arguments and local variables
- 6.5. Compiling, Assembling, and Loading
- 6.3. Programming
Topic 14: Caches
- Chapter 8. Memory Systems
- 8.1. Introduction
- 8.2. Memory System Performance Analysis
- 8.3. Caches