Top Up Prev Next Bottom Contents Index Search

1.3 Ptolemy Kernel

The overall organization of the latest release of the Ptolemy system is shown in figure 1-1.
A typical use of Ptolemy involves starting two UnixTM processes, as shown in figure 1-1(a), by running pigi (Ptolemy interactive graphical interface). The first process contains the vem user interface and the oct design database [Har86], and the other process contains the Ptolemy kernel. An alternative is to run Ptolemy without the graphical user interface, as a single process, as shown in figure 1-1(b). In this case, the textual interpreter is based on the Tool Command Language, Tcl [Ous90][Ous94], and is called call ptcl for Ptolemy Tcl. It is possible to design other user interfaces for the system. We are releasing a preliminary version of a third interface called Tycho. In its current form, Tycho is best suited for language-sensitive editing and consoles for tools such as Matlab and Mathematica.

The executable programs pigiRpc or ptcl can be configured to include any subset of the available domains. The most recent picture of the domains that Berkeley has developed is shown in figure 1-2.

Many different styles of design are represented by these domains. More are constantly being developed both at U.C. Berkeley and elsewhere, to experiment with or support alternative styles.

The Ptolemy kernel provides the most extensive support for domains where a design is represented as a network of blocks, as shown in figure 1-3

. A base class in the kernel, called Block, represents an object in this network. Base classes are also provided for interconnecting blocks (PortHole) as well as for carrying data between blocks (Geodesic) and managing garbage collection efficiently (Plasma). Not all domains use these classes, but most current ones do, and hence can very effectively use this infrastructure.

Figure 1-3 shows some of the representative methods defined in these base classes. For example, note the initialize, run, and wrapup methods in the class Block. These provide an interface to whatever functionality the block provides, representing for example functions performed before, during, and after (respectively) the execution of the system.

Blocks can be hierarchical, as shown in figure 1-4.

The lowest level of the hierarchy, as far as Ptolemy is concerned, is derived from a kernel base class called Star. A hierarchical block is a Galaxy, and a top-level system representation is a Universe.

Top Up Prev Next Bottom Contents Index Search

Copyright © 1990-1997, University of California. All rights reserved.