Electronic Design Automation
Course: ESE535
Units: 1.0 CU
Terms: Spring 2008
When: MW 12--1:30pm
Where: Towne 307
Instructor: DeHon (office hours T4pm)
Required Prerequisite:
- digital logic (e.g. at least CIS240 or ESE200);
- programming (at least CIS121 or ESE116); will need to
be comfortable writing ~1-3K lines of code and working with a large,
existing code base
Helpful background:
- algorithms and computational theory (e.g. CIS320)
- experience with modest software projects (e.g. CIS350)
- further experience with digital logic designs (e.g. CIS371)
- exposure to VLSI (e.g. ESE570)
Offered: roughly in alternate years with ESE534 (last offered as
ESE680)
URL: <http://www.seas.upenn.edu/~ese535/>
Quick Links: [Motivation]
[Grading]
[Syllabus]
[Collaboration Policy]
[Reading]
[Previous Offerings]
Catalog Level Description:
Formulation, automation, and analysis of design mapping problems
with emphasis on VLSI and computational realizations.
Major themes include: formulating and abstracting problems,
figures of merit (e.g. Energy, Delay, Throughput, Area,
Mapping Time), representation, traditional decomposition of
flow (logic optimization, covering, scheduling, retiming, assignment,
partitioning, placement, routing), and techniques for solving problems
(e.g. greedy, dynamic programming, search,
(integer) linear programming, graph algorithms, randomization,
satisfiability).
Motivation
Our ability to design interesting and powerful systems is limited by
size and complexity---often not from substrate costs, but from human
design and management costs. A powerful technique to tackle this
limitation is to abstract away details and use higher level building
blocks to describe computations and systems. However, when we
increase the abstraction it is ultimately necessary to fill in those
details---preferably, automatically, without further human
intervention. This is a key role of automation and mapping tools:
they produce the low-level details, sparing the human designer's time
and attention to solve bigger problems.
While this ideal is attractive, the state-of-the-art falls short
of giving us the ideal solution for at least two key reasons:
- Hard problems---Most of the problems associated with
elaborating the details are NP-complete (or worse) and
the problem size is increasing over time.
Consequently, solving the problems ``optimally'' is seldom tenable.
We have a tension of exploiting
automation at some cost or expanding precious human time to, perhaps,
find a better solution. My observation is that as problems get
larger and algorithms refined, we find less and less cases where
it is viable to have the human involved in solving the problem even
if he/she can find a better solution.
- New problems---As our underlying costs, needs, and problems
change, it takes time and effort to develop automated solutions
to the problems. To date, our problems have evolved more rapidly
than they can be solved. Globally, this leaves many problems open
or poorly handled. Locally, it means any particular problem you
may encounter or create may well be new and unsupported.
As a consequence, novel system designers and researchers exploiting
novel media must be prepared to tackle their own automation
problems---that is, build their own tools---to advance rapidly into
new areas.
Contents
This course is intended to expose students to the key themes, ideas,
and techniques in producing correct/efficient/(optimal) mappings of
some semantic computation onto a physical computational substrate; in
practice, many of the fundamental problems are more widely applicable
in engineering than simply mapping computations, but that will be our
intellectual focus for this course. The course will not cover the area
exhaustively, it but will convey key ideas so the student will know where
to look for further details and is aware of the major intellectual
tools and analysis developed in this area.
Major themes include:
- Mapping problem for computation to substrate
- Formulating and abstracting mapping problems
- Figures of Merit (Energy, Delay, Throughput, Area, Mapping Time, ...)
- Canonical Representations
- Traditional decomposition pieces (e.g.
logic optimization, covering, scheduling, retiming,
assignment, partitioning, placement, routing)
- Techniques for attacking problems
(e.g.
Dynamic Programming, Search, LP/ILP formulation,
Graph algorithms (network flow, shortest path, ...),
Randomized (incl. SA, Genetic Prog., ),
Greedy, Satisfiability)
Rough Lecture Outline
(Actual Spring 2008 Syllabus)
- Introduction, Motivation, Overview
- Covering
- Clustering
- Two-level logic
- Multi-level logic
- Static Timing Analysis
- FSM Encoding (Sequential logic)
- Concurrent Error Detection
- Satisfiability (SAT) solvers
- Statistical Static Timing Analysis
- Retiming
- Simultaneous Retiming and Covering
- Partitioning I (formulation and KLFM)
- Partitioning II (spectral, maxflow, replication)
- Partitioning III (optimal: SAT, pruning search)
- Placement I (formulation and constructive)
- Placement II (simulated annealing)
- Multi-objective covering (area and delay; also simultaneous covering
and placement)
- High-level Synthesis (C-to-dataflow graph)
- Scheduling I (formulation, List Scheduling/Johnson's approximation algorithm)
- Scheduling II (force-directed, SAT/ILP, Branch-and-Bound)
- Routing I (variants, formulation, channel routing, over-the-cell)
- Routing II (Pathfinder [congestion negotiation, FPGA routing])
- FSM Equivalence Checking
- Processor Verification
- Highly parallel algorithms: spatial routing
- Highly parallel algorithms: cellular placement
Projects
Course includes one small (2 week) and one larger (4 week) programming project.
These are usual new challenges motivated by emerging optimization metrics
(e.g. power, fault tolerance) or advancing technologies. Past project
themes have included:
- power optimization
- spatial/parallel implementation of optimizations
- concurrent error detection (in logic, in FSMs)
Variation-aware or variation-tolerant optimizations is a promising
consideration for the next offering.
Grading
Rough outline of grading:
- Participation (reading, class discussion) [10%]
- Weekly Assignments [30%]
- Small Project [20%]
- Large Project [40%]
Writeups must be done in electronic form. Use CAD or drawing
tools where appropriate. Electronic submission will be preferred
(and may be required for some assignments).
Handwritten assignments and hand-drawn figures are not
acceptable.
Collaboration Policy
Each student is expected to do his/her own
work -- including developing the details and writing the solutions.
For the homeworks, you are free to discuss basic strategies and
approaches with your fellow classmates or others, but detail designs,
implementations, analysis, and writeups should always be the work of
the individual. If you get advice or insights from others that
significantly influenced your work, please acknowledge this in your
writeups. More specific policy for projects will be included with the
project assignments.
Reading, Text, and Lectures
Roughly one paper per lecture is expected reading. Most of the papers
will be electronically available through links from the syllabus page (not up, yet).
You will
be reponsible for acquiring those copies for yourself.
Citations for additional reading material will be
posted on the web along with the detailed syllabus (most of those also come
with links to the papers themsleves). There is no
required text as I will be pulling together material form many places.
Since this course is not based upon any particular text, following
lecture will be essential to keep up with the course material.
For those that want integrated references to backup the reading, consider
the following:
@Book{gerez_vlsida99,
author = {Sabih H. Gerez},
title = {Alagorithms for VLSI Design Automation},
publisher = {John Wiley \& Son Ltd},
year = {1999},
note = {general reference}
amazon.com link
@Book{reconfigurable_computing_mk2008,
editor = {Scott Hauck and Andr\'e DeHon},
title = {Reconfigurable Computing: The Theory and Practice of FPGA-Based Computation},
publisher = {Elsevier},
year = 2008,
series = {Systems-on-Silicon}
note = {has a section on major components of tool flow for FPGA-like devices}
amazon.com linnk
@book{clrs_algorithms_mitpress2001,
author={Thomas Cormen and Charles Leiserson and Ronald Rivest and
Clifford Stein},
title={Introduction to Algorithms},
year=2001,
edition={2nd},
publisher={MIT Press},
note = {general algorithms reference}
}
amazon.com link
Previous Offering
Past Offerings
At Caltech, Prof. DeHon taught this as a two quarter sequence, with the bulk of the
instructional material in the first term.
The second term was focused on a large, student-selected project, but did
include additional topics.
André DeHon