
I am involved in teaching at all levels of instruction. Graduate
level classes tend to be more close to my areas of research.
I am very interested in undergraduate education and keeping
students motivated towards contemporary engineering design
techniques.
Digital Circuits
The primary goal of this course is
to understand basic digital circuits. Digital circuits form
the basis for most of the electronic devices ranging from
small electronic toys to large scale computers. The material
covered in this course will deal with fundamental concepts
that are used to design and implement digital circuits. All
digital circuits operate based on fundamental circuits covered
in this class. After completing this course, students will
be able to design digital circuits of low complexity. Topics
covered include: Boolean logic. Design and analysis of combinational
logic circuits using SSI and MSI. Design and analysis of synchronous
state machines. Use of programmable logic devices and simple
CAD tools.
[Course
Website]
Design Automation of
VLSI Systems
This course is designed to introduce
students with Physical Design Automation (DA) of VLSI systems.
DA related issues for the current state of the art will familiarize
students with existing techniques in VLSI design. Data structures
and algorithms related to DA will provide insight into design
of CAD tools. Students will understand the relationships between
DA algorithms and various constraints posed by VLSI fabrication
and design technology. Critical performance related parameters
and their importance in DA tools will be introduced. The material
will be presented in technology independent style and will
prepare students for design and development of DA tools. One
of the key goals is to prepare students for research in physical
design automation of VLSI systems.
[Course
Website]
Reconfigurable Computing Systems
Reconfigurable and adaptive computing
systems is the focus of discussion. Special emphasis is given
to the
high density programmable devices and their impact on (general
purpose) computing. CAD/CAE issues for reconfigurable
computers is discussed during early parts of the course.
The role of reconfigurability in co-design, co-execution,
verification, and yield enhancement is also addressed. Given
that it is possible to change the configuration of execution
units as well as the interconnection networks, a reconfigurable
computer can achieve performances that are orders of
magnitude better than those of general purpose computing platforms.
The course also addresses the impact of
programmable logic on computer architecture. Software environments
for interacting with such computing platforms are
also investigated.