Metropolis Home
  Design Methodologies
  Platform-Based Design
  4/07 IEEE Article
  4/03 IEEE Article
  6/02 GSRC Presentations
  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


Fault Tolerant Data Flow


Picture in Picture Design



Other Domains

Microprocessor Modeling
Analog/Mixed Signal

Last Edited: $Date: 2004-12-14 14:29:03 -0800 (Tue, 14 Dec 2004) $
©2002-2018 U.C. Regents