Course
Information
Lecture Topics
Homework
Individual Projects
CS220 covers the synthesis and simulation of digital systems. Topics include synthesis at the system, behavioral, register-transfer, and logic levels; application-specific processors; simulation; and emerging system-on-a-chip design methodologies.
| Instructor | Harry Hsieh, (harry@cs.ucr.edu),
SURGE 329 Office hours: Tue Wed 2-3PM, or by appointment |
|---|---|
| Class meeting | Surge 349, TR 12:40PM-2PM |
| Textbooks | Giovanni De Micheli, Synthesis and Optimization of Digital Circuits. McGraw Hill, 1994, ISBN:0-07-016333-2
Additional reading may be distributed throughout the quarter. Recommanded: Hassoun and Sasao editors, Logic Synthesis and Verification, Kluwer Academic Publishers, 2002 . ISBN:0-7923-7606-4 Recommended: Armstrong and Gray, VHDL Design Representation and Synthesis, 2nd edition, Prentice Hall, ISBN: 0130216704 (OR some book covering synthesis from VHDL). |
| Prerequisite | CS/EE120B(Digital systems), CS161, and consent of instructor |
| Call # and units | 16254, 4 units. |
| Grade | In-class examinations 60%, Project 30%, Homework 10%
Project may be done in a team of 1 or 2. A list of proposed projects will be available at the beginning of the quarter. You may also propose your own project, as long as the topic falls within the confine of the course and has comparable depth as the other projects. |
| Date | Topic | Required Reading | Lecture notes |
| Tu 4/2 | Introduction to microelectronics and synthesis | De Micheli, chapter 1 | 6.pdf 2.pdf |
| Th 4/4 | Background: graphs, optimization | De Micheli, chapter 2 |
6.pdf 2.pdf |
| Tu 4/9 |
Background: graphs, optimization
Finalize Project Selection | De Micheli, chapter 2 |
6.pdf 2.pdf |
| Thu 4/11 | Hardware Modeling | De Micheli, chapter 3 | 6.pdf 2.pdf |
| Tu 4/16 | Two Level Combinational Logic Optimization
Homework #1 due | De Micheli, chapter 7 | 6.pdf 2.pdf |
| Th 4/18 | Two Level Combinational Logic Optimization | De Micheli, chapter 7 | 6.pdf 2.pdf |
| Tu 4/23 |
Two Level Combinational Logic Optimization | De Micheli, chapter 7 | 6.pdf 2.pdf |
| Th 4/25 |
Multiple-Level Combinational Logic Optimization Homework #2 due | De Micheli, chapter 8.1-8.3 | 6.pdf 2.pdf |
| Tu 4/30 |
Multiple-Level Combinational Logic Optimization Homework #3 due | De Micheli, chapter 8.1-8.3, 8-4 (pages 380-384), 8-6 | 6.pdf 2.pdf |
| Th 5/2 |
Examination #1 | De Micheli, chapters 1-3, 7, 8.1-8.3 | |
| Tu 5/7 |
No meeting in class. View web presentation on your own time |
Henry Samueli, "Designing in the New Millenium -It's Even Harder
than we Thought", Keynote address at DAC2001. http://videos.dac.com/videos/38th/k1/k1/index.htm
Willem Roelandts, "FPGAs enter the mainstream", Keynote address ad DAC2001. http://videos.dac.com/videos/38th/k3/k3/index.htm | |
| Th 5/9 | Multiple-Level Combinational Logic
Optimization
Project Progress Report Due | De Micheli, chapter 8-4, 8-6 | 6.pdf 2.pdf |
| Tu 5/14 |
Sequential Logic Optimization | De Micheli, chapter 9 | 6.pdf 2.pdf |
| Th 5/16 |
Cell-Library Binding | De Micheli, chapter 10-1, 10-2, 10-3, 10-5 | 6.pdf 2.pdf |
| Tu 5/21 |
Architectural Synthesis Homework #4 due | De Micheli, chapter 4 | 6.pdf 2.pdf |
| Th 5/23 |
Scheduling Algorithm | De Micheli, chapter 5 | 6.pdf 2.pdf |
| Tu 5/28 |
Scheduling Algorithm | De Micheli, chapter 5 | 6.pdf 2.pdf |
| Th 5/30 |
Resource Sharing and Binding Homework #5 due | De Micheli, chapter 6 | 6.pdf 2.pdf |
| Tu 6/4 |
Examination #2 |
De Micheli, chapters 4-6, 8-10 selected material | |
| Th 6/6 |
(tentative)
Advance topic | TBA | |
Project may be done in a team of 1 or 2. A list of proposed projects follows. You may also propose your own project, as long as the topic falls within the confine of the course and it has comparable depth as the other projects. Project request is on a first-come-first-serve basis, though some of the projects may be pre-assigned due to the previous expertise. You are encouraged to send me e-mail frequently about your progress or any question you may have throughout the quarter. There are also four scheduled project group meeting in my office throughout the quarter, as well as a project progress report for checking on your progress. The idea is that the result of the project, possibly with one more quarter of independent study by one student, will have enough technical content for a conference or workshop presentation.
Project deadlines are:
| Tuesday 4/9 | noon | Finalize project selection. |
| Tue 4/9 - Thu 4/11 | to be scheduled | Project Meeting #1 (20 minutes per person) |
| Tue 4/23 - Thu 4/25 | to be scheduled | Project Meeting #2 (20 minutes per person) |
| Thursday 5/9 | noon | Project Progress Report (~4 pages "conference format": 2 column, 11pt, single space, self-sufficient), contains motivation, background, plan of attach, anticipated result, and progress so far. |
| Tue 5/14 - Thu 5/16 | to be scheduled | Project Meeting #3 (20 minutes per person) |
| Tue 5/28 - Thu 5/30 | to be scheduled | Project Meeting #4 (20 minutes per person) |
| Thursday 6/6 | 2PM-6PM | Final Project Presentation (20 minutes per person) |
| Thursday 6/6 | midnight | Final Project Report (~8 pages "conference
format": 2 column, 11pt, single space, self-sufficient)
E-mail (both the report and all relevant files associated with the project) Hand-in (under my office door) a print-out of the report. |
Students: Betul Buyukkurt and Lingling Jin
Goal:
-----
Metropolis heterogeneous system design framework has within it a metamodel language which can be used to
unambiguously model other models of computation. This project studies a variety of semantics of computation and communication
often used in applications of embedded systems, and identifies how they can be modeled with the Metropolis
meta-model (MMM). Metamodel allows one to model different semantics uniformly using a common set of building blocks. This capability is essential in synthesis and verification, where heterogeneous
components must be compared and their interaction needs to be analyzed. The project considers the
Synchronous Data Flow, Process Network, Finite State Machine, Petri-net, YAPI, and
Verilog/VHDL (Discrete Event) models of computations. The project is to
device a methodology/ medium library for each
MOC so design within a model of computation can be represented clearly using the
methodology and the
elements of the library. It is preferred to have the designs represented
in MMM with MOC independent processes and different medium and constraints for different
MOCs. The difference in medium and constraints used should reflect the similarity and difference
between the MOCs.
Procedure:
----------
Expected product:
-----------------
Careful documentation of the metropolis media and constraints libraries and methodologies for the MOCs,
plus reimplementation of many examples from the literatures. There should
also be a preliminary study of a MOC finder and programming for identifying
designs conforming to a particular MOCs.
Reference:
----------
Students: Xi Chen and Fang Chen
Goal:
-----
SPIN is a widely distributed tool for software verification developed at Bell Labs. This project will make it possible to verify designs captured in
Metropolis using SPIN. The challenge is to represent designs captured in Metropolis using SPIN's specification language, PROMELA. In this
project, the semantics of the two languages will be carefully analyzed, and a Metropolis backend tool will be written in order to generate PROMELA from Metropolis.
Procedure:
----------
Expected product:
-----------------
Careful documentation of the translation from MMM to Promela, plus a fully functional translator. You will also need to document a careful
case study of simulation and formal verification. Some preliminary study
on how to deal with LOC and ELOC should also be attempted, or a case study of
abstraction relation verification.
Reference:
----------
Students: Artur Kedzierski
Goal:
-----
LOC (Logic Of Constraints) is used to specified a set of constraints
particularly useful in embedded system design. It is strictly more powerful than
prepositional logics, (or Linear Temporal Logics, for that matter), so it is not
possible to represent constraints in LOC with Finite State Automata.
However, it is possible to generate a monitor to test whether or not a particular constraint
is satisfied during simulation. This project is to define a translation from
constraints in LOC to simulation monitor in Promela. It is mean to work
for any Promela simulation whether they are for embedded system or general
software/protocol design.
Procedure:
----------
1) Study and understand LOC.
2) Study and understand Promela and SPIN.
3) Document carefully and unambiguously how each LOC constraint can be
translated into a simulation monitor written in Promela, and how this simulation
monitor can be used during simulation of Promela codes. If there are
constraints that can not be translated, explain precisely why..
5) Write a program (including a parser) that will take any constraints in LOC
and output a correct Promela simulation monitor.
6) Test out the translator and show through examples that the translation is correct. Simulate
an example in SPIN, and show how the simulation monitor works.
(A+) Identify subset of LOC that is amendable to formal verification within
SPIN. Augment your translator to translate those constraints into LTL or
FSM monitor so they can be formally verified.
Expected product:
-----------------
Careful documentation of the translation from LOC constraints to Promela
simulation monitor, plus a fully functional translator. You will also need to document a careful
case study of simulation with with these monitors.
Reference:
----------
* SPIN website: http://netlib.bell-labs.com/netlib/spin/whatispin.html
* "Metropolis: Design Environment for Heterogeneous Systems", MetropolisProject Team, Cadence Technical Conference 2001.
* "Modeling and Designing Heterogeneous Systems", F. Balarin, L. Lavagno, C.
Passerone, A. Sangiovanni-Vincentelli, M. Sgroi, and Y. Watanabe.
* F. Balarin et. al., "Constraints Specification at Higher
Levels of Abstraction", International High-Level
Design Validation and Test Workshop, Nov 2001.
Students: Dinesh Suresh and Yun Zheng
Goal:
-----
Metropolis heterogeneous system design framework has within it a metamodel language which can be used to
unambiguously model other models of computation. CAL is a language devised
by the Ptolemy group to represent actors, which may correspond roughly to processes
in Metropolis. This project studies the ways CAL actors can be translated into
Metropolis processes. A functioning translator is the goal of this
project, since a "semi-functional" translator already exists from CAL to JAVA and C so that a
translator to Metropolis processes may be achieved by suitable modification of
the existing translators.
Procedure:
----------
Expected product:
-----------------
Careful documentation of CAL2MMM translator, as well as a functioning translator,
plus some case study using the translator.
Reference:
----------
Students:
Goal:
-----
Metropolis heterogeneous system design framework has within it a metamodel language which can be used to
unambiguously model other models of computation. Naturally, different MOCs
(and sometime the same MOC) may be used to represent different levels of design
abstraction. This project deals with verification of the trace containment
of one level (refined) of abstraction against another level (abstracted) level
of abstraction. Clearly, a theoretical backing exists for this problem and
formal verification tools may be used to prove the trace containment. However, automatic formal verification tools suffers greatly from
complexity problem. This project focus on simulation methods to
demonstrate that the lower level is indeed a refinement of the upper level,
with respect to the single simulation trace. The approach to this project
is to use SPIN, or any other framework with both simulation and formal
verification capability, to demonstrate such a single trace containment paradigm
is feasible and meaningful.
Procedure:
----------
Expected product:
-----------------
Careful documentation of a case study of the realistic design, plus simple
methodology and programs that perform this containment check. In addition,
an optimization algorithm to make the decision procedure heuristically more
efficient.
Reference:
----------
Students: Phillip Hoang and Suvidhean Dhirakaosal
Goal:
-----
Routing lookup function is essential in network processing application and
will increasingly become a bottleneck as number of Internet Protocol addresses
continue to increase. Ternary Content Addressable Memory has been utilized
as a mean for fast IP address forwarding lookup by dedicated
hardware. In fact, a single cycle lookup at around 100 Million lookup per
second as achieved by commercial TCAM today. The drawback of TCAM is
that its cost and power usage is directly related to the table size, and a
raw table today range in size between 32K and 64K, and can easily make it beyond
128K in the near future. A simple approach of table compaction using
2-level logic synthesis technique can compact the table in half. This
project seeks to reduce the size of the table further by using more aggressive
logic synthesis technique, while keeping update to the table in a timely manner
feasible. This will most likely involve a new reconfigurable architecture
tailored specific to this problem.
Procedure:
----------
Expected product:
-----------------
Codes and script for utilizing espresso and sis to compact the table, as well
as coded algorithm for updates.
Reference:
----------
Students: Nikhil Aggarwal
Goal:
-----
As complexity of digital design grows, it is becoming more and more attractive to be able to work from a very high level of abstraction. Fundamental mode assumption has made it possible to design hardware circuits from VHDL or Verilog, so that the functional equivalence of the circuits generated from the same high level specification is well defined and relatively easy to verify. The same assumption does not exist (or rather, has not been proposed) for system level design. The functional analysis at the architectural level is therefore often ad hoc, or at best, design dependent. For designs based on Codesign Finite State Machine network, Synchronous Equivalence and system level Synchronous Assumption has been proposed as the equivalence notion and necessary assumption. The assumption make it possible to analyze the equivalence efficiently at the system level, without resorting to general formal verification algorithm. This project looks to established similar notion for designs based on YAPI, a design representation that is a slight extension to Kahn's process network.
Procedure:
-----------
Expected product:
------------------
Careful definition of assumption and equivalence and efficient analysis
method which may be non-exact but must be conservative. Careful case study
with a real-life YAPI design (possibly MPEG decoder), and a tool which perform
such analysis for YAPI implementations
Reference:
----------
Hsieh, H.; Balarin, F.; Lavagno, L.; Sangiovanni-Vincentelli, A. Synchronous approach to the functional equivalence of embedded system implementations. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol.20, (no.8), IEEE, Aug. 2001
Students:
Goal:
-----
The idea of dynamic translated execution has intrigued researchers since the early 90's. HP Dynamo is one such project that allows the OS to dynamically optimize the software base on run time information. Earlier this year, Xilinx delivered their Virtex II Pro chip which, in addition to flexible reconfiguration, has embedded up to for PowerPCs for computation that is not well suited for FPGA implementation. This project seeks to understand the possibility of Dynamo style reconfiguration for FPGA fabrics, where the ultimate goal is to have of of PowerPC chip profile the run time information and based on that information, re-synthesize and reconfiguration Virtex for higher performance and lower power usage.
Procedure:
-----------
Expected product:
------------------
Case study of dynamic reconfiguration on Virtex.
Reference:
----------
Goal:
-----
The semantics of Metropolis metamodel is defined by a set of "action automata" and
associated datapath. For each syntactic construct in the meta-model, an automaton specifying its control semantic is defined. The goal of this
project is to automatically generate these automata and the associated datapath for a given meta-model netlist. The automata and
some aspect of the datapath would be represented in SMV, the entry language for
Symbolic Model Verifier and intermediate format for Formal Check from Cadence
Design systems. In this project, the semantics of the two languages will be carefully analyzed, and a
Metropolis backend tool will be written in order to generate SMV for Metropolis
action automata.
Procedure:
----------
1) Study and understand MMM, especially how action automata are generated from
MMM
2) Study and understand SMV.
3) Document carefully and unambiguously how each Metropolis action automata constructs can be
modeled by SMV. If there are constructs that can not be translated, explain precisely why. You will need to explain especially what you do with
the datapath portion of the design. Some abstract will probably be needed,
write down your abstraction.
5) Write a (probably JAVA) program to interface Metropolis AST, so designs written in
MMM can be translate into SMV.
6) Test out the translator and show through examples that the translation is correct.
Perform a simple verification case study.
(A+) Build a semantic checker on top of your tool. Given a Metropolis
simulation trace, can you verify the trace is semantically correct according to
the action automata? Be careful that you handle your datapath abstraction
conservatively (extra extra) what is the minimum elements required to be
in the simulation trace for you to make that determination? Clearly you
need more than just primary I/O. You will probably need to think about
observability/controllability
Expected product:
-----------------
Careful documentation of the translation from Metropolis action automata to SMV, plus a
fully functional translator. You will also need to document a careful case study of
formal verification.
Reference:
----------
* "Symbolic Model Verifier", Ken McMillen.(www-cad.eecs.berkeley.edu/~kenmcmil/smv)
* "Metropolis: Design Environment for Heterogeneous Systems", MetropolisProject Team, Cadence Technical Conference 2001.
* "Modeling and Designing Heterogeneous Systems", F. Balarin, L. Lavagno, C.
Passerone, A. Sangiovanni-Vincentelli, M. Sgroi, and Y. Watanabe.
* "The Metropolis Meta-Model, version 0.2.7" The Metropolis Project Team.