Contents
Metropolis Home
Overview
Metamodel
Tools
Design Methodologies
Platform-Based Design
Wiki
Publications
4/07 IEEE Article
4/03 IEEE Article
6/02 GSRC Presentations
People
Polis
Search
Members
src
Private Forum
|
Metropolis: Design Environment for
Heterogeneous Systems
Design Methodology
The infrastructure described here
is the
model underlying our design methodology, which proceeds from the
highest level
of abstraction to the implementation through a series of refinements.
The
goal is to increase the reusability of components that define the
system
functions. This is achieved by separating issues concerned in each
design step
in such a way that independence of decisions taken in the steps can be
maintained as much as possible. While methodologies for different
application
domains require attention to particular issues, they all follow the
same
fundamental steps summarized below.
General Methodology
- 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
combined.
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
considered
as
a single process that describes the desired function. This process is
decomposed into a set of concurrent processes, each of which
establishes a
relation between input and output domains.
- Behavior adaptation.
- When two functions defined above are connected, we insert
a behavioral
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
other.
By explicitly inserting adapters, one can maintain the reusability of
the
system components defined in the first step. The adapters are modeled
as
processes.
- Media and MOC wrapper insertion.
- Each of the links connecting two processes is assigned a
particular
communication semantics, which is specified by defining a medium in the
meta
model. At the same time, each process is wrapped by another process
that
specifies firing conditions of the original process and its interaction
with
the connected media. In this way, changing the media requires changing
only
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
components
that are more easily implemented. In this step, one introduces
processes that
we call channel adapters in the refined model, in order to
preserve
the semantics of the original. For example, channel adapters are used
to
ensure lossless communication realized over a potentially lossy
channel, by
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
steps are
concerned about reusability, they may introduce redundancy due to the
insertion of adapters. Thus, the network structure is rearranged to
increase
optimization opportunities across processes and media. The result is
not
reusable in general, when redesign is needed. However, in that case one
can
return to a higher level of abstraction at which modification can be
kept
local without affecting the rest of the system.
Domain-Specific Methodologies
Automotive
Fault Tolerant Data Flow
Multimedia
Picture in Picture Design
Wireless
Nokia
PicoRadio
SensorNetworks
Other Domains
Microprocessor Modeling
Analog/Mixed Signal
|
Last Edited: $Date: 2004-12-14 14:29:03 -0800 (Tue, 14 Dec 2004) $
|