4/07 IEEE Article
4/03 IEEE Article
6/02 GSRC Presentations
Metropolis: Design Environment for
The infrastructure described here
model underlying our design methodology, which proceeds from the
of abstraction to the implementation through a series of refinements.
goal is to increase the reusability of components that define the
functions. This is achieved by separating issues concerned in each
in such a way that independence of decisions taken in the steps can be
maintained as much as possible. While methodologies for different
domains require attention to particular issues, they all follow the
fundamental steps summarized below.
- Below are the general steps we advocate for system design
using metropolis. These are to go from moving to a functional
specification to a mapped and optimized implementation. The order isn't
strictly necessary and often some steps will be skipped or
We are now in the process of applying the methodology to system design
projects for multi-media applications, automotive electronic controls,
and wireless communication.
- Functional decomposition.
- At the highest level of abstraction a system is
a single process that describes the desired function. This process is
decomposed into a set of concurrent processes, each of which
relation between input and output domains.
- Behavior adaptation.
- When two functions defined above are connected, we insert
adapter between them, if needed, to transform the domains of the
functions so the outputs from one function can be taken as input to the
By explicitly inserting adapters, one can maintain the reusability of
system components defined in the first step. The adapters are modeled
- Media and MOC wrapper insertion.
- Each of the links connecting two processes is assigned a
communication semantics, which is specified by defining a medium in the
model. At the same time, each process is wrapped by another process
specifies firing conditions of the original process and its interaction
the connected media. In this way, changing the media requires changing
the wrapper (if at all needed), without affecting the main process.
- Communication refinement.
- Each medium is further replaced by a network of processes
and media. This
refines an abstract communication mechanism into an interaction of
that are more easily implemented. In this step, one introduces
we call channel adapters in the refined model, in order to
the semantics of the original. For example, channel adapters are used
ensure lossless communication realized over a potentially lossy
introducing actions such as retransmission and error correction.
- Mapping and Optimization.
- The refined system is mapped onto an architecture of
components. This may
be followed by further refinement of communication. An optimization is
carried out when an implementation is generated. While the previous
concerned about reusability, they may introduce redundancy due to the
insertion of adapters. Thus, the network structure is rearranged to
optimization opportunities across processes and media. The result is
reusable in general, when redesign is needed. However, in that case one
return to a higher level of abstraction at which modification can be
local without affecting the rest of the system.
Fault Tolerant Data Flow
Picture in Picture Design
Last Edited: $Date: 2004-12-14 14:29:03 -0800 (Tue, 14 Dec 2004) $