




CS250: VLSI Systems Design
Spring 2007
Projects:
The idea of the project is to take a concept from class - lectures or
papers, already covered or coming up - and expand it or go into more
depth. Part of the exercise is to use your imagination and come up
with an idea. (However, your idea doesn't need to be completely
original.)
Projects can be either individual or in small groups - however, the
amount of work and results must be reflective of the extra people.
Ideally, your project will have an element of "analysis" and
maybe, but not necessarily, an element of "synthesis" (design).
To get a general idea, plan your project in such a way that if things
work out you could later turn it into a conference paper.
If already involved in a research project, think about tying your cs250 project
to that. This would give you a head-start on tools, partial designs,
benchmarks, etc. Also, if you are taking
another grad class that requires a project, you might think about
doing one project that satisfies both classes. You may need to do
extra work, or present it in a different way, but this could save you
a lot of time.
If you don't have any ideas for a project, start by looking at the
assigned conference papers (not the "survey" papers). These might
give you some ideas on a variation or extension to one of the projects
described by the authors.
Below as a few project ideas. Most of these are just rough ideas that
you would need to think though more carefully and add details.
As a last resort, you can consider doing a "survey" type project. The
idea of this would be to take some concept related to the class and
find a large number of papers and other information, digest it,
summarize it, and write a lengthy summary report on the topic.
Project Ideas (more might be added later)
- [New from Ivan Sutherland]
I will provide the interested student with two pieces of data:
- The LAYOUT of several dozen ring oscillators where identical inverters
drive different kinds of loads such as several inverters each, a long piece of
wire, and so forth.
- The measured frequency of each ring oscillator.
The layouts will be in Electric (layout program). I think the public version will read the
files I could provide. If not, we can get a version that will read the files.
The frequency numbers are in written form. We have data from several chips.
The schematic diagram is not available. (Student will have to deduce
it from the layout - not a hard task because it's just a set of ring oscillators.
The task is to characterize the technology. The student will need to garner
as much information as possible about the technology parameters as the
rings provide. To get results the student will have to think though what each
ring measures and draw suitable conclusions.
I'm sure I can provide these data for MOSIS 180 nm process.
I may be able to provide them in TSMC 90 nm process. Depends on how
proprietary the TSMC people are. I might also be able to provide a chip.
That depends on whether we can find one and what else is on it.
The educational exercise is figuring out from the layout
what causes the ring to operate at a different frequency.
Turning that into quantitative values requires a little algebra.
- Similar to the Rose paper, do a study on a set of circuits
comparing FPGA implementation to ASIC implementation. Consider Xilinx
FPGAs instead of Altera. Consider a different benchmark set.
-
[Lazzaro] Given the low-power circuit style in the Wang and Anantha
paper, how would you optimize the process for power (choosing the
Vt's, after coming up with a model for how Vt affects the Vgs=0
currents, and then reoptimizing Vdd once you're done). There are a
few other things you could do with that paper, like try to evaluate
the impact of a full-custom vs standard-cell layout, given the
architecture, etc.
-
[Lazzaro] Given the Niagara and Niagara II designs as a starting
point, do analysis to justify their major architecture decisions with
respect to power -- L1 and L2 cache characteristics, number of
pipeline stages, multithreading style, etc.
-
Using a real FPGA (on a development board) do experiments to determine
the range of successful operation for varying Vdd. Measure the
resulting power consumption. Explain the results.
-
Asynchronous circuit study. Use GasP ore some other asynchronous
circuit style and design some familiar function (array multiplier, for
instance). Simulate the results and compare in performance, power,
and area to a synchronous design.
-
Based on GARP, do an analysis of a its size, performance, and power in
a modern IC process. Hand-map new conputational kernels.
-
[Lazzaro] Do a study on how to design an FPGA fabric on existing FPGA
chips, as I brought up in class. How can we trade off designing the
new architecture to be efficiently realized on existing FPGAs, while
also designing the new architecture to be a good target for the sorts
of applications people would want to run on a "virtual FPGA" (like
reconfigurable apps)?
-
[Lazzaro] Using the 200 mV multiplier paper as a starting point,
sketch out the design of a 200 mV microprocessor, whose design point
is 10 years of life on a small battery, and whose application domain
is implantable devices (pacemakers, etc). The big challenge is, how
can we spread out the CPU is space to get the parallelism we will need
to overcome the very slow clock speeds. Both ISA-level parallelism
(i.e. look at options like VLIW) and logic-design innovation (find new
ways to spread out ALUs deeply in space, given this unusual design
point).
-
[Lazzaro] The rebirth of PLAs to replace standard cells for control
logic in a "radically simplified design rule" world. The goal here is
to take some time to study just what kind of layout restrictions
currently exist and will exist in the future to make
resolution-enhanced lithography work, and then revisit PLAs and other
regular structures to see if their layout-friendliness can overcome
their logic depth limitations.
-
[Lazzaro] Revisiting bit-serial in an FPGA world. Start with the body of
work on bit-serial architectures, ask, how can these architectures be
modified to work optimally in an FPGA. Ideally, the "hardwired logic"
in each LUT (carry chains) and the dedicated resources in the FPGA
(multiplier arrays, etc) would be put to use in a clever way.
John Wawrzynek
10 Mar 2007
(johnw@cs.berkeley.edu)