COMPLEXITY MANAGEMENT IN SYSTEM-LEVEL DESIGN
Asawaree Kalavade and Edward A. Lee
design space exploration, hardware-software codesign, design
methodology management, design flow management, system-level design.
The system-level design problem spans a large design space.
Typically, the designer needs to explore possible target architectures,
experiment with different tools, and work with a range of constraints
and optimization criteria. This design process is quite complex and
involves considerable bookkeeping and management, in addition to
sophisticated design tools. We believe that managing the design process
is an important (albeit often neglected) part of system-level design.
The contribution of this paper is in two parts. First, we present a
framework for systematically managing the design process. Secondly, we
illustrate how this framework can be used to manage a realistic
system-level design environment that consists of a suite of
sophisticated hardware and software design tools.
We begin by identifying some of the desirable features of system-level design
methodology management. A candidate framework that manifests these
features is presented. Complex design flows with iterative and
conditional behavior can be specified within the framework. The
framework also supports automated scheduling of tools in a well-defined
design flow. It has been implemented as the DMM domain in Ptolemy. In
the second part of the paper, we describe a system-level design
environment case study that we have developed within this framework.
The environment, called the Design Assistant, is a complete
hardware-software codesign environment. It encapsulates various
codesign tools for specifi cation, partitioning, and synthesis; their
interplay can be managed efficiently by the design methodology