Top Up Prev Next Bottom Contents Index Search

4.15 Domains that have been removed


4.15.1 Circuit simulation (Thor)

Like DE, the Thor domain was event-driven. However, it was specialized to register-transfer level simulation of digital circuits. It was based on the Thor simulator developed at Stanford, which in turn was based on a simulation kernel developed at the University of Colorado. The domain was written by Suengjun Lee. Its capabilities were similar to a variety of commercial circuit simulators. The Thor domain was based on very old circuit simulation technology. Contemporary equivalents include VHDL and Verilog simulators. The VHDL domains thus replace Thor, at least in part, although currently the star library is not as rich.

4.15.2 Communicating processes (CP)

The CP domain, developed by Suengjun Lee and based on thread classes developed by Thomas M. Parks, modeled multiple simultaneous processes with independent flow of control. It was based on the Sun lightweight process library. Because of this dependence on proprietary code, it was only available on Sun workstations. CP was a timed domain. Processes communicated by exchanging particles with time stamps. The particles are processed in chronological order, in that the process with the oldest time stamps at its inputs is activated. From the perspective of the star writer, the star is always running, presumably in an infinite loop, responding to input events and producing output events. Because of this model, the domain was well suited to high-level modeling of distributed systems. Each component in the system would be represented as a program that appears to run as an autonomous agent, concurrently with other components of the system.

The CP domain is probably the most useful of the domains that have been removed. The problem is that it is based on the Sun lightweight process library, which Sun Microsystems is no longer supporting. The Lightweight Processes library does not run on recent releases of the Solaris operating systems. We took a stab at porting the domain to use Posix threads, the modern replacement, but this task overwhelmed the resources we had available. We would be very interested in volunteers interested in pursuing this.

4.15.3 Message queueing (MQ)

The MQ domain was based on an object-oriented approach for software development developed by E. C. Arnold and D. W. Brown at AT&T Bell Laboratories. The run-time environment viewed components as addressable objects capable of receiving messages, sending messages, and maintaining an individual state managed solely by the component's methods. Each message contained sufficient information for its destination object to perform appropriate updating of internal data structures and to produce other messages.

By applying this model in Ptolemy, stars would pass message particles to one another. Connections between pairs of stars are bidirectional so that client-server relationships can be established over these links. From the name of this domain, it can be understood that messages sent from a particular star to another were always processed in sequence. However, the execution order of stars in the system is arbitrary, and a star, when fired, steps through its portholes in an arbitrary fashion as well, processing the first incoming message arriving at each port, should one exist.

The MQ domain was well-suited to the development of call-processing software. Its use in the modeling of system control was illustrated in a sophisticated cell-relay network simulation. This large-scale, heterogeneous demo used the SDF domain to specify space-division packet switching fabrics, the DE domain to model "timed" network subsystems, and the MQ domain to describe a centralized network controller.

Although it introduced a number of interesting features, this domain did not find wide usage, so it has been removed.

4.15.4 Code generation for the Sproc multiprocessor DSP (Sproc)

The Sproc multiprocessor DSP used to be made by Star Semiconductor [Mur93], however, neither the processor nor the company now exist, so this domain has been removed.

4.15.5 Code generation for the Motorola DSP96000 (CG96)

This domain is similar to CG56, except that the synthesized language is assembly code for the Motorola DSP96000 (floating-point) family. This processor is no longer being developed or improved by Motorola, so we have removed this domain.

4.15.6 Code generation in Silage (Silage)

This was a code generation domain for the Silage language. Silage is an applicative functional textual language that was developed to describe fixed-point digital signal processing (DSP) algorithms, which are well-suited for hardware implementation. Silage descriptions serve as the input specification for some high-level synthesis tools (e.g. Hyper from U.C. Berkeley, Cathedral from IMEC, and the DSP Station from Mentor Graphics). Asawaree Kalavade used the Ptolemy interface to Hyper to estimate costs of hardware implementations in hardware/software codesign experiments [Kal93,Kal94,Kal96]. Berkeley, however, is moving away from Silage, and there appears to be little future for it, so we have removed this domain.

4.15.7 Functional Code Generation in VHDL (VHDLF)

The VHDLF domain was originally intended to contrast with the VHDLB domain. It supported structural code generation using VHDL blocks with no execution delay or timing behavior, just functionality. The semantics for the VHDLF domain were not strictly defined, and the scheduling depended on how the underlying VHDL code blocks associated with each VHDLF star were written. The VHDLF domain has been replaced by the VHDL domain. The VHDL domain is not meant to be used in the same way as the VHDLF domain, however. The VHDL domain is for generating code from functional block diagrams with SDF semantics.



Top Up Prev Next Bottom Contents Index Search

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