**Monday / Wednesday 2:30 - 4:00 PM
299 Cory Hall**

EECS244 CCN: 25748

Units of Credit: 3

- The course schedule and materials are on bSpace.

Integrated circuits are so complex that they
require a sophisticated battery of algorithms and software design tools to aid
in their design. Because the complexity and performance of integrated circuits
is evolving exponentially the techniques and tools used to aid in their design
are constantly evolving as well. This course reviews the most fundamental
algorithms and techniques underlying today's integrated circuit design
approaches, and also gives some context for new problems.

This course may be of interest to a number
of types of students. The first are graduate students in the area of
computer-aided design. For these students it provides a one-semester
introduction to the area and a review of a significant amount of the material
for preliminary examinations in computer-aided design. A
second type are those students principally interested in the design of
digital integrated-circuits. For students embarking on a lifetime of using
computer-aided design tools to design circuits, some time spent in
understanding the principles underlying these tools will be well invested. A third class of students are those interested in exploring
the frontier between technology CAD areas such as device and process modeling
and mainstream CAD. With the increasing impact of processing effects on
integrated circuits in small process geometries this has been an especially
fruitful area of CAD research. Finally, this course may also be of interest to
computer science students who are interested in seeing a wide variety of
practical applications of algorithms and mathematical programming techniques
such as: shortest/longest path; all-pairs shortest path; union-find; dynamic
programming; string-matching; linear-programming; non-linear programming;
branch and bound; and backtracking.

Course material will be presented in a
series of lectures over the semester. The syllabus is below. Course grade will
depend on:

- Exam 1: 30%
- Exam 2: 30%
- Class project: 40%

The class project may be either a
theoretical or practical investigation of open problems in areas discussed in
the course.

The catalog lists EE140 or EE141 as a
prerequisite, but that is not really necessary. It would be useful to have some
basic understanding of circuits and digital logic at the CS150 level. It would
also be useful to have some background in algorithms at the CS170 level, but
this is not essential. It is expected that students have some background in one
of circuits, algorithms, or software engineering. If you don't have a strength in any one of these the course will be tough.

*
Last updated: August 2008
*

Copyright © 2008
Kurt Keutzer and
Sanjit Seshia