A key principle in the Ptolemy project is the use of multiple
*models of computation* in a hierarchical heterogeneous
design environment.
A premise in this work is that no single general purpose model
of computation is likely to emerge in the near future that will
deliver what designers need. Modeling the diverse implementation
technologies and their interaction is not reasonable within a
homogeneous environment. Consider embedded DSP software controlling
a MEMS device, for example. The MEMS device requires physical modeling
using differential equations, a modeling technique that is entirely
inappropriate for the DSP software. Moreover, the ability to
validate designs and to synthesize high-quality
implementations from high-level abstract models are both
compromised by generality in the modeling framework.

The project aims to develop techniques supporting heterogeneous modeling, including both formal "meta-models" and a software laboratory for experimenting with heterogeneous modeling. In this context, it has explored methods based on dataflow and process networks, discrete-event systems, synchronous/reactive languages, finite-state machines, and communicating sequential processes. It has made contributions ranging from fundamental semantics to synthesis of embedded software and custom hardware.

The Ptolemy software provides the laboratory for the experimental side of the project. It supports the interaction of diverse models of computation by using the object-oriented principles of polymorphism and information hiding. For example, using Ptolemy software, a high-level dataflow model of a signal processing system can be connected to a hardware simulator that in turn may be connected to a discrete-event model of a communication network.

Since the Ptolemy Project began in 1990, numerous advances in semantics, design, simulation, and code generation have occurred. Recent results of the Ptolemy Project have included:

- a modular approach to synchronous/reactive design,
- a bounded execution policy for process networks,
- formalization of computational models for dataflow,
- managing regularity in dataflow graphs using higher-order functions,
- automating the design of multidimensional multirate systems,
- simulating and scheduling multidimensional multirate systems,
- simulating heterogeneous systems,
- modular hierarchical finite state machines with various concurrency models,
- synthesizing embedded software from dataflow graphs,
- parallel scheduling techniques,
- optimizing interprocessor communication in parallel implementations,
- deriving fast algorithms for hardware/software partitioning of dataflow graphs,
- managing tool invocations and data dependencies in design processes, and
- integrated heterogeneous design visualization.

For a summary of current research, see the 1998 Research Summaries.

The Ptolemy software environment has been used for a broad range of applications including signal processing, telecommunications, parallel processing, wireless communications, network design, investment management, modeling of freespace optical communication, real-time systems, and hardware/software co-design. Ptolemy software has also been used as a laboratory for signal processing and communications courses. Currently Ptolemy software has hundreds of active users at various sites worldwide in industry, academia, and government.

Last updated 02/25/99. Send comments to www@ptolemy.eecs.berkeley.edu.