- 1.
Course Objective: The goal of
this course is to learn the basic principles of digital design.
The course aims at enabling a student to design small digital
systems for different application starting from abstract
executable specifications and referring it to a manufacturable
design for the given library of components.
-
2.
Lecture Format: The lectures are
based on transparencies as well as board work. The lectures will
be mostly based on the material covered in the specified
textbook. However, there may be some additional material covered.
In order to come to grips with the course, it is essential
that you attend the lectures and take notes in the class.
Bring the textbook to the class during lectures. Since most of
the figures in the lecture will be identical to those in the
textbook, no handouts of the lectures will be provided.
It
is the responsibility of the students to note down any additional
material covered on the board and discussed in class. It
is in the best interest of the student to come to class after
reading the relevant chapter(s) of the book. The lecture will be
fast paced.
-
3.
Homework: The student will be
given homeworks for practice at home. These homeworks will not be
graded. Discussion sections will demonstrate procedure and
results for some of the homework problems.
-
4.
Evaluation Strategy: Evaluation
Strategy: The evaluation will be based on the final exam (40%
approximately) and two mid-term tests (each 30% approximately).
No alternative test arrangements can be made.
-
5.
Cheating Policy: If you are not
already familiar with the department's cheating and plagiarism
policies and procedures, read the Cheating Policy document,
available from the ICS Undergraduate Student Affairs Office.
-
6.
Add and Drop Policy: Adding
students will depend on class size and TA availability. No adds
will be signed after the end of the first week of instruction.
Drops may be permitted until the end of the second week of class.
Add/Drop cards will be signed by the instructor in the
class.
-
7.
Tentative Lecture Schedule:
-
Week 1: Introduction to digital
systems and models of computation.
In this week students
will learn relationships between software and hardware and
different levels of abstraction for representing design.
-
Week 2: Boolean algebra, binary
arithmetic, logic gates.
This is a refresher on knowledge
obtained in previous classes with emphasis on implementation of
Boolean functions.
-
Week 3: Simplification and
optimization of functions.
Basic techniques for Boolean
optimization for performance cost and power. Also in this week
students will learn different cost functions for optimization.
-
Week 4: Design of combinatorial
components: ALU, shifters, comparator, etc.
These lectures
teach students how to implement basic programming-language
operations such as addition, multiplication, comparison and
other more complex functions.
-
-
Week 5: Latches and flip flops,
FSM model.
In this week student learn basic concepts and
components of information storage and how to specify systems
using state models.
-
Week 6: Analysis and synthesis
techniques for sequential and storage memory components.
Techniques for design and optimization of components
described by FSM models.
-
Week 7: Design of sequential
components: register, counters and shifters.
This week
students learn how to design component for storing variables and
perform simple sequential operations.
-
Week 8: Storage components;
memories, register files, RAMs, FIFOs, stacks, etc.
These
lectures are geared toward learning organization and design of
storage components intended for storing a variety of data
structures found in programming languages.
-
Week 9: Data path and control
units.
Design techniques for implementation of custom
processors executing fixed code that is specified with FSMD
models.
-
Week 10: Processor organization
and design.
Techniques for design of standard processors
from a given instruction-set (IS). Discussion of IS choice on
performance of processor design.
-
- กก