E15: Fundamentals of Digital Systems

Fall 2010

M W F 9:30-10:20, Hicks 211
Instructor: Matt Zucker

Lab: M/W 1:15-4:30 Hicks 213
Instructor: Erik Cheever

Course Description

This class is an introduction to the basic concepts of digital systems, including analysis and design of such systems. This consists of both combinational and sequential logic. Lectures and labs will enable students to experience several levels of digital systems, from simple logic circuits to hardware description language and interface programming in C.

Here is the syllabus. Also see the lab web page.

News and Announcements

Textbooks

Useful Links

Class Schedule

Week Dates Topics Readings Labs & HW
1 Aug 30 - Sep 3
  • Basic logic gates
  • Binary number representation
  • Boolean algebra
  • Karnaugh maps
W: 1.1-1.3, 1.9, 2
F: 3.1-3.2

Handout 1
Lab 1
Homework 1
2 Sep 6 - Sep 10
  • More Karnaugh maps
  • Number systems and codes
  • Optimization and minimization
W: 1.4-1.7, 3.3-3.6
F: Worksheet 2A
Worksheet 2B
Homework 2
3 Sep 13 - Sep 17
  • Technology mapping
  • Digital arithmetic
W: 3.7-3.9 Lab 2
Homework 3
4 Sep 20 - Sep 24
  • Useful combinatorial circuits
  • Introduction to Verilog
M: 4.1-4.5
F: 4.7-4.12
Homework 4
5 Sep 27 - Oct 1
  • Exam 1 - Friday 10/1
  • More Verilog
  • Shannon's expansion theorem
M: 3.10, 4.12
Verilog examples
Verilog instructions
Lab 3
Homework 5
6 Oct 4 - Oct 9
  • Intro to state machines
  • Sequential logic elements
  • State machine design
M: 5.1-5.4
F: 5.5-5.8
Handout 6
Worksheet 6
Homework 6
Fall Break
7 Oct 18 - Oct 22
  • More Verilog
  • More state machine design
Rotate bits example
Detect 1's example
Lab 4
Homework 7
8 Oct 25 - Oct 30
  • Alternative state machine design techniques
  • Registers and counters
Detect 232 example
F: 6
Homework 8 (Verilog files)
9 Nov 1 - Oct 6
  • Intro to C programming: Sudoku
UART receiver example
Sudoku example
Exam 2 Practice
10 Nov 8 - Nov 12
  • Exam 2 - Wednesday 11/10
    7:30 PM, Mural Room
  • C programming: integer types, operators, arrays, I/O, floating point
C instructions

M: C Code: Windows Mac/Linux

W: C Code: Windows Mac/Linux

F: C Code: floats.c
Fri: project approval due by 4:30pm

Homework 10 (example inputs & outputs)
11 Nov 15 - Nov 19
  • Memory
  • C programming: functions, recursion, binary file formats
W: C Code: Windows Mac/Linux

F: C Code: Windows Mac/Linux
Mon: project proposal due in class
12 Nov 22 - Nov 24
  • Semiconductors
Thanksgiving Break Nov 25-26
13 Nov 29 - Dec 3
  • Programmable logic
  • C programming: numerical computing
Pi examples: Windows Mac/Linux Homework 13
Files: Windows Mac/Linux

14 Dec 6
  • C programming: floating point arithmetic
Fri 12/10: project report due by 4:30pm
Final Exam - Friday 12/17 - 9:00 AM, Hicks 211

Practice problems C code zipfile