August 31, 1992 | Joseph Buck, Soonhoi Ha, Edward A. Lee, David G. Messerschmitt
Ptolemy is a simulation and prototyping framework for heterogeneous systems. It uses modern object-oriented software technology (C++) to model each subsystem in a natural and efficient manner, and to integrate these subsystems into a whole. Ptolemy encompasses practically all aspects of designing signal processing and communications systems, ranging from algorithms and communication strategies, simulation, hardware and software design, parallel computing, and generating real-time prototypes. To accommodate this breadth, Ptolemy must support a plethora of widely-differing design styles. The core of Ptolemy is a set of object-oriented class definitions that makes few assumptions about the system to be modeled; rather, standard interfaces are provided for generic objects and more specialized, application-specific objects are derived from these. A basic abstraction in Ptolemy is the Domain, which realizes a computational model appropriate for a particular type of subsystem. Current examples of domains include synchronous and dynamic dataflow, discrete-event, and others appropriate for control software and embedded microcontrollers. Domains can be mixed as appropriate to realize an overall system simulation. Some current applications of Ptolemy include networking and transport, call-processing and signaling software, embedded microcontrollers, signal processing (including implementation in real-time), scheduling of parallel digital signal processors, board-level hardware timing simulation, and combinations of these.
Ptolemy is a simulation and rapid prototyping framework for heterogeneous systems. It is ideal for applications in which heterogeneity is a key characteristic. For example, in the design of multimedia networks, we are interested in studying the interaction between transport, compression or compositing signal processing, and control software in voice or video services over cell-relay networks. In telecommunication systems we are interested in studying the interaction between call-processing software and hardware switch elements. To develop new telecommunication services, we must jointly design control software, signal processing, transport, and hardware elements.
In hardware design we are interested in modeling components with varying detail, such as behavioral, logic, timing, and circuit. In system-level design, we may wish to jointly design the communications infrastructure and the processing elements. We may also wish to synthesize (in combination) microcode for specialized processors, C code for generic processors, routing tables for field-programmable gate arrays, and custom VLSI. We may wish to automate mappings onto parallel processors by mixing specialized schedulers, such as those that target systolic arrays or those that address only applications with predictable control flow.
Simulation and system specification environments that support heterogeneity have been developed before. For example, mixed-mode circuit simulation is now the standard way to deal with complex VLSI circuits. At a higher level, the STATEMATE system by i-Logix combines activity charts, which describe dataflow, with statecharts, which describe control. A very different flavor of heterogeneous system is a coordination language, like Granular Lucid, which combines standard procedural languages with an “indexical model” (Ptolemy is a simulation and prototyping framework for heterogeneous systems. It uses modern object-oriented software technology (C++) to model each subsystem in a natural and efficient manner, and to integrate these subsystems into a whole. Ptolemy encompasses practically all aspects of designing signal processing and communications systems, ranging from algorithms and communication strategies, simulation, hardware and software design, parallel computing, and generating real-time prototypes. To accommodate this breadth, Ptolemy must support a plethora of widely-differing design styles. The core of Ptolemy is a set of object-oriented class definitions that makes few assumptions about the system to be modeled; rather, standard interfaces are provided for generic objects and more specialized, application-specific objects are derived from these. A basic abstraction in Ptolemy is the Domain, which realizes a computational model appropriate for a particular type of subsystem. Current examples of domains include synchronous and dynamic dataflow, discrete-event, and others appropriate for control software and embedded microcontrollers. Domains can be mixed as appropriate to realize an overall system simulation. Some current applications of Ptolemy include networking and transport, call-processing and signaling software, embedded microcontrollers, signal processing (including implementation in real-time), scheduling of parallel digital signal processors, board-level hardware timing simulation, and combinations of these.
Ptolemy is a simulation and rapid prototyping framework for heterogeneous systems. It is ideal for applications in which heterogeneity is a key characteristic. For example, in the design of multimedia networks, we are interested in studying the interaction between transport, compression or compositing signal processing, and control software in voice or video services over cell-relay networks. In telecommunication systems we are interested in studying the interaction between call-processing software and hardware switch elements. To develop new telecommunication services, we must jointly design control software, signal processing, transport, and hardware elements.
In hardware design we are interested in modeling components with varying detail, such as behavioral, logic, timing, and circuit. In system-level design, we may wish to jointly design the communications infrastructure and the processing elements. We may also wish to synthesize (in combination) microcode for specialized processors, C code for generic processors, routing tables for field-programmable gate arrays, and custom VLSI. We may wish to automate mappings onto parallel processors by mixing specialized schedulers, such as those that target systolic arrays or those that address only applications with predictable control flow.
Simulation and system specification environments that support heterogeneity have been developed before. For example, mixed-mode circuit simulation is now the standard way to deal with complex VLSI circuits. At a higher level, the STATEMATE system by i-Logix combines activity charts, which describe dataflow, with statecharts, which describe control. A very different flavor of heterogeneous system is a coordination language, like Granular Lucid, which combines standard procedural languages with an “indexical model” (