homeworks
exams


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.
กก

Daniel Gajski