Complexity Management in System-level Design

Asawaree Kalavade and Edward A. Lee
Prepublished version
Published version


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 management framework.