ECE Course Outline

ECE2020

Fundamentals of Digital System Design (3-0-3)

Prerequisites
CS 1371 [min C] or CS 1171 or CS 1301 [min C]
Corequisites
None
Catalog Description
Computer system and digital design principles. Switch and gate design, Boolean algebra, number systems, arithmetic, storage elements. Datapath, memory organization. Instruction set architecture, assembly language.
Textbook(s)
Wakerly, John, Digital Design: Principles and Practice (4th edition), Prentice Hall, 2005. ISBN 9780131863897 (required) (comment: This text will likely change to the 5th edition for Spring 2018.)

Wills & Wills, Digital Computer Systems, 2011. (required) (comment: See this site for electronic book: http://www.ece.gatech.edu/academic/courses/ece2020/ComputerDesign.pdf)

myDAQ unit, National Instruments. (required) (comment: This item is also required for ECE 2040 and ECE 3084)

Topical Outline
1.	Introduction to Computing Systems
   a.	building complex systems out of simple elements
   b.	examples in today's products
   c.	architecture block diagram

2.	Switch Design
   a.	behavior vs. implementation truth tables
   b.	switch combinations: series and parallel
   c.	semiconductor switches: n-type & p-type
   d.	implementing logical functions
   e.	implementing basic gates
   f.	introduction to VLSI technology

3.	Boolean Algebra
   a.	Boolean expressions & algebra
   b.	DeMorgan's square & DeMorgan's theorem
   c.	standard forms: SOP/POS using min/max terms

4.	Gate Design
   a.	designing with gates vs. switches
   b.	decoupling behavior and implementation using mixed logic
   c.	implementing SOP and POS expressions
   d.	gate delay and energy dissipation
   e.	pass gates and floating outputs

5.	Simplification
   a.	expression simplification
   b.	2, 3 and 4 variable Karnaugh maps
   c.	negative logic and don't cares

6.	Building Blocks
   a.	powers of two, working with binary
   b.	encoders/decoders
   c.	pass gates and tri-state outputs
   d.	multiplexers/demultiplexers
   e.	programmable logic arrays

7.	Number Systems
   a.	notations: decimal, binary, hexadecimal
   b.	representations: unsigned vs. two's complement
   c.	representations: integer, fixed point and floating point
   d.	symbolic representations

8.	Arithmetic
   a.	addition and subtraction
   b.	ranges and resolutions
   c.	error and overflows
   d.	adder/subtractor implementation

9.	Latches and Registers
   a.	combinatorial vs. sequential logic
   b.	bistable element using basic gates
   c.	RS latch and transparent latch
   d.	shift register and register
   e.	two-phase non-overlapping clocking
   f.	edge vs. level triggering; read/write enables
   g.	energy and power in a clocked system

10.	Counters
   a.	basic toggle cell operation
   b.	building binary counters
   c.	building divide-by-N counters
   d.	cascading multi-digit counters

11.	State Machines
   a.	state machine operation
   b.	transition diagrams and tables
   c.	state machine implementation: Moore and Mealy
   d.	state machine operation in behavioral HDL
   e.	in-class mini-lab: state maching

12.	Memory
   a.	memory cell behavior and protocol
   b.	static random access memory (SRAM) cell
   c.	dynamic RAM (DRAM) cell
   d.	memory chip organization
   e.	building memory systems
   f.	bit, byte and word addressing
   g.	alignment, byte order

13.	Datapaths
   a.	operands: register file and immediate values
   b.	three bus architecture
   c.	execution units: arithmetic, logical, shift
   d.	memory interface

14.	Introductory Assembly Programming
   a.	basic computer organization
   b.	instruction formats
   c.	datapath operations: arithmetic, logical, shift, memory
   d.	conditional execution (if-then-else)
   e.	basic loops (while)