[Papers
available here]

Unlike
the design of digital circuits, which involves a lot of automation
(using standard cell libraries, placement and routing algorithms,
performance analysis using timing analysis), analog circuit designers
have been very resistant to automation and tend to hand-craft their
circuit layouts. This is partly because automation tools have not been
very good. We have a large DARPA-funded
project on analog layout automation where we are trying to build
new algorithms and open-source tools for this topic. We are using a mix
of traditional algorithmic methods and machine learning techniques.

Today, deep
neural networks and other machine learning algorithms are frequently
implemented on GPUs or FPGAs, but these platforms are quite inefficient
from an energy perspective. We are looking at developing solutions that
build optimized ASICs for implementing neural networks. Our work in this
area is primarily in analysis and architecture design for non-DNN
algorithms, DNNs, and graph neural networks. We are leading a
project where we are collaborating with
other universities on a DARPA project related to this work. We are also working with the Semiconductor Research Corporation
on this topic.

In addition to
our work on analog circuit automation, we are also looking at problems
in the area of building algorithms and techniques to optimize digital
systems. We have worked on these topics for many years now, and most
recently, we have been looking at employing machine learning techniques
for design automation. We are part of OpenROAD,
and have applied some of these techniques on problems in automated
digital system synthesis.

We also have
recent/ongoing work on emerging models of computation - spintronics,
in-memory computing, Ising machines, etc. Please check out our
publications in this area.

Our work has been funded by
several sources, including the National
Science Foundation, DARPA,
the Semiconductor Research Corporation,
as well as a number of industry sources.

The objective of research
during a graduate degree is to help a student to develop the ability to
solve an open-ended engineering problem, and to expose him/her to the
state of the art in research in the chosen field. In order to do so, one
typically needs to spend some time developing a background in the area
of research. For students in our group, this includes a knowledge of
some or all of the following, and can be built up by taking graduate
classes at Minnesota:* *

- Basic VLSI design (essential)
- Algorithms and data structures (essential)
- Machine Learning
- Linear and nonlinear optimization
- Graph theory and combinatorics
*Some background specific to the area of your research*

Students working in our group typically develop algorithms to solve various problems in CAD. This typically involves the following (though this may be different from one problem to another):

- Developing a knowledge of the specifics of the problem and understanding domain knowledge.
- Creating a mathematical abstraction of the problem, usually related to some type of optimization or analysis problem.
- Finding a solution to the problem, e.g., (a) from first principles (b) by mapping the mathematical problem to a known technique, or (c) by adapting a known technique to solve the problem.
*Implementing the approach and illustrating its effectiveness on benchmark examples.*

For a Ph.D. degree, I typically expect a student to work on at least three different problems, each corresponding (roughly) to one journal paper. I usually work very closely with the student on the first problem, less closely on the second, and expect the student to be almost completely independent while working on the third problem. Of course, no two situations are exactly the same, and the above is a guideline rather than a rule!

For a list of current and past
graduate students, please click **here**.

Students from our group have
easily found positions after graduating, often with multiple offers from
industry. A few
of our alumni have joined academia as professors.

Students
typically have at least one industry internship experience during
their PhD.

Back