E15:  Fundamentals of Digital Systems
Fall 2011

M W F 9:30-10:30, Hicks 211
Lab: M/W 1:15-4:15, Hicks 310

Instructors:
Tali Moreshet
Office: Hicks 218, x8331

Office Hours: Mon. 10:30-11:30am, Thur. 1:00-3:00pm, Open door policy

Matt Zucker
Office: Hicks 219, x8636
Email: mzucker1 at swarthmore dot edu


Course Description:

This course 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 with several levels of digital systems, from simple logic circuits to hardware description language and interface programming in C.

syllabus



Textbooks:

Links:


Tentative Class Schedule

NOTE: Some of the links on this page are not accessible from outside Swarthmore.

Week Dates Topics Readings & Handouts Labs & HW
1 Aug 29-Sep 2
  • Introduction
  • Logic gates
  • Binary numbers
  • Boolean algebra
Chapters 1.2-1.3, 1.9
Chapter 2
Boolean Theorems Handout
Lab 1
Homework 1, Solutions
2 Sep 5-Sep 9
  • Number systems and codes
  • Karnaugh Map
  • Optimization and minimization
Chapters 1.4-1.7
Chapter 3.1-3.6
Homework 2, Solutions
3 Sep 12-Sep 16
  • Technology mapping
  • Verilog introduction
  • Fri. 9/16 - NO CLASS
Chapter 3.7-3.9

Lab 2
Homework 3, Solutions
4 Sep 19-Sep 23
  • Digital arithmetic
  • Useful combinational circuits
Chapter 4.1-4.12
Verilog code Handout

Homework 4, Solutions  
5 Sep 26-Sep 30
  • Useful combinational circuits - cont
  • Shannon's expansion theorem
  • EXAM : Wed. 9/28, in class
  • Intro to state machines
Chapter 5.1-5.4
Verilog State machine Handout

Lab 3
Homework 5, Solutions
6 Oct 3-Oct 7
  • Sequential logic elements
  • State machine design
Chapter 5.5-5.8
Flip-flop State machine Handout

Homework 6, Solutions

 
Fall Break
7 Oct 17-Oct 21
  • State machine design - cont
  • Alternative state machine design techniques
  • Registers and counters
Chapter 5.5-5.8
Chapter 8
Chapter 6
Registers Verilog Code Handout

Lab 4
Homework 7, Solutions
8
Oct 24-Oct 28
  • Registers and counters - cont
  • C programming
Chapter 6
See C programming links above
How to run C on your laptop
hello.c, loops.c
C Programming Handout 1

Homework 8, Solutions
9 Oct 31-Nov 4
  • C programming -cont
See C programming links above
prime.c, char_count.c, multbytwo.c, Fibonacci.c
C Programming Handout 2

Lab 5-part I / Homework 9 Sumbit here
10 Nov 7-Nov 11
  • C programming - cont
  • EXAM: Thur. 11/10 8pm

See C programming links above
swapping.c, my_strlen.c, echo.c
C Programming Handout 3
C Programming Handout 4

Lab 5-part II / Homework 10 Sumbit here
11 Nov 14-Nov 18
  • Memory
Chapter 7
Memory Handout

Final Project
12 Nov 21-Nov 25
  • Memory - cont
  • Programmable logic
  • Thanksgiving
Chapter 7
Programmable Logic Handout

Homework 11, Solutions  
13 Nov 28-Dec 5
  • CMOS
  • Microcontroller architecture
Chapter 10
Microcontroller handouts

Homework 12, Solutions  
  FINAL EXAM 12/16 9am