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:
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.