Heterogeneous Modeling and Design Tasks

This project is organized along the following two phases and six tasks:

Phase 1 (18 months)

Task 1: Modular deployable design tools

System-level design tools such as our Ptolemy environment tend to be large monolithic software systems, following the VLSI CAD tradition. This makes them difficult to use, maintain, and support, Moreover, increasingly, design tools are expected to perform in an environment where design and evolution of a larger system is ongoing, persisting well beyond initial system deployment. We are exploiting software technologies such as abstract machines, web-based design, migrating processes, client-server architectures, and object-request brokers to break apart the design tools into modular building blocks. One consequence is that certain elements of a design tool (such as schedulers, user-interfaces, displays, controls, and even models) can be deployed as part of system, facilitating maintenance, adaptation, evolution, and documentation. An underlying object-oriented software architecture will provide the modular heterogeneity amenable to such partitioning.

Task 2: Domain-specific design tools

High-level design tools tend to be domain-specific, supporting a narrow range of design problems. Successful examples include Spice for circuit modeling, digital hardware design tools, and visual dataflow environments for signal processing. Many of these tools share common principles. Most can be viewed in fact as languages in that they have a syntax (either ASCII or pictorial) and a semantics. For electronic systems, the semantics is often concurrent, in that modules conceptually (or physically) operate at the same time, interacting through signals. For MEMS systems, the semantics is always concurrent, reflecting an underlying physical modeling problem, and interaction is through physical effects. We are studying and developing various domain-specific approaches appropriate to composite CAD. These include Spice-level modeling of circuits and mechanical systems, discrete-event modeling of synchronous and asynchronous digital hardware, dataflow modeling of discrete-time systems and embedded software, state-machine modeling of sequential controllers, and various higher-level models that focus on resource allocation and system-level design, applicable for example to hardware/software codesign.

Task 3: Heterogeneous interaction semantics

Frequently, domain-specific design tools and languages need to be combined to design and model heterogeneous systems. One example of great commercial interest is in wireless communication, where Spice-level modeling of RF circuits needs to be combined with functional modeling of signal processing that is often implemented in embedded software. MEMS systems are similar, if a bit more complex, in that they may combine physical models at the level of differential equations, Spice-level circuit models for analog driving and sensing circuitry, functional models of sequential control logic, and functional models of signal processing that deal with sensor data or actuator control signals. Each of these is best supported by a distinct modeling paradigm, language, and tool. These tools tend to grow and evolve in isolation, making it difficult to combine them to achieve system-level design. We are studying and developing theory and techniques for heterogenous combinations of such tools and languages.

Phase 2 (18 months)

Task 4: Process level type system

Strongly typed programming languages are more robust than weakly typed languages. Static type systems can prevent many common software faults and facilitate compiler optimizations. We will extend this concept to composite system-level design to facilitate heterogeneous modeling and design. We will develop a type system for concurrent processes that regulates the interaction between heterogeneous system components. The notion of types will be adapted beyond that of numerics and data structures to encompass such notions as a continuous-time signal, a discrete-time signal, a set of discrete-events in time, a rendezvous, or a sequence of messages. Instead of defining variables, our types define signals. The forms that signals can take determine the types of the processes that interact with these signals. A type hierarchy will determine how processes can be combined and type resolution and translation will be developed to support heterogeneous modeling.

Task 5: System-level validation

Formal analysis can play a major role in validating designs of embedded systems. Models of computation based on a formal mathematical framework, such as differential equations, synchronous/reactive models, communicating finite-state machines, and dataflow models, have been used to design systems that provably have some desirable property such as safety, stability, or liveness. Such techniques have been applied in hybrid systems, which combine continuous-time differential equation models with discrete finite automata. However, the methods used today mostly do not scale well to practical systems. Key questions frequently become undecidable, and many of those that remain decidable become intractably complex. We will develop systematic techniques that can applied to practical systems. The keys are information hiding and hierarchy. Simple, mathematical models of computation can be used to define the interaction between modules at a large grain level. We will show that by hiding the internal implementation of modules, they can become large and complex without adversely affecting the ability to answer key validation questions at the system level.

Task 6: System-level visualization

We will construct an object-oriented design visualization environment for complex, evolving, distributed systems. Initially (at least) this will be based on the Tycho syntax manager that we have begun under the Ptolemy project. Tycho supports syntax-directed editing and domain-specific graphical visualization by using a modular, object-oriented software architecture. This architecture will support deployable design tools; visualization modules will be separable from the design environment. We will devise visual representations to illustrate the concurrent and real-time behavior of composite systems. We expect that different visual syntaxes will be required for different models of computation (physical modeling of MEMS components will likely require significantly different representations than the automata that control them). We will devise live, direct-manipulation interfaces for design and modeling composite systems.