My research is primarily in the
area of computer-aided design (CAD) of VLSI systems. The semiconductor industry
has developed a roadmap, called the ** International
Technology Roadmap for Semiconductors**, which shows that at least until
the year 2014, silicon feature sizes will continue to shrink, the transistor
count in chips will continue to increase, and performance requirements will
become increasingly stringent. Under such a scenario, with new problems that
crop up and new technologies that constantly evolve, CAD techniques will remain
essential for the design of high-performance circuits.

The research in our group is centered around design automation for optimization and analysis, concentrating on timing, power and layout issues. Some specific problems that we have worked on in the recent past are as follows:

- Sequential timing optimization:
*retiming, clock skew optimization* -
**Combinational timing optimization:***transistor and gate sizing* -
**Physical design:***global routing, wire sizing, clock network synthesis, supply network analysis and design* -
**CAD for domino and pass transistor logic:***technology mapping, static-domino partitioning* -
**Other miscellaneous topics:***convex optimization, design centering, power estimation, parallel computing*

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)
- 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 involves the following:

- Developing a knowledge of the specifics of the problem, from the point of view of a VLSI designer.
- Abstracting the problem as a mathematical problem, usually related to some type of optimization or analysis problem.
- Mapping the mathematical problem to a known technique, or adapting a known technique to solve the problem.
*Implementing the algorithm as a computer program 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, click **here**.

(Even though I dangle these numbers in front of you, the prospective student, I hope that the promise of a lucrative salary is only a small consideration, and that a strong interest in academic pursuits is a far stronger motivation that makes you want to work with me.)

Most Ph.D. students in the group round out their education by spending at least one summer as an intern in a company. Over the last few years, we have had students work at places such as Cadence Design Systems (San Jose), IBM Austin Research Labs (Austin), IBM TJ Watson Research Center (NY), Intel (Santa Clara), Intel (Portland) and Motorola (Austin).

Back