Note that because of limitation
in Quadralay's Wpublish program,
some of the links on this page
may not behave correctly.
Contents
-
1. An Overview of Ptolemy
-
1.1 Introduction 1-1
-
1.2 History 1-2
-
1.3 Ptolemy Kernel 1-3
-
1.4 Models of Computation 1-4
-
1.5 Dataflow Models of Computation 1-6
-
1.6 Discrete-Event Models of Computation 1-6
-
1.7 Synchronous Reactive Modeling 1-7
-
1.8 Finite State Machines 1-7
-
1.9 Mixing Models of Computation 1-7
-
1.10 Code Generation 1-8
-
1.11 Conclusion 1-8
-
1.12 Current Directions 1-8
-
1.13 Organization of the documentation 1-9
-
1.14 Acknowledgments 1-9
-
Personnel 1-9
-
Support 1-11
-
Prior software 1-11
-
2. The Interactive Graphical Interface
-
2.1 Introduction 2-1
-
Setup 2-1
-
2.2 Running the Ptolemy demos 2-2
-
Starting Ptolemy 2-2
-
Exploring the menus 2-4
-
Traversing the hierarchy 2-5
-
Running a Ptolemy application 2-6
-
Examining schematics more closely 2-9
-
Invoking on-line documentation for stars 2-10
-
More extensive exploration of the demos 2-11
-
What's new 2-12
-
2.3 Dialog boxes 2-12
-
Tk control panels 2-12
-
Athena widget dialog boxes 2-13
-
2.4 Parameters and states 2-14
-
A note on terminology 2-14
-
Changing or setting parameters 2-15
-
Reading Parameter Values From Files 2-16
-
Inserting Comments in Parameters 2-16
-
Using Tcl Expressions in Parameters 2-17
-
Using Matlab and Mathematica to Compute Parameters 2-18
-
Array parameters 2-19
-
String Parameters 2-19
-
2.5 Particle types 2-20
-
2.6 The oct design database and its editor, vem 2-21
-
2.7 Creating universes 2-22
-
Opening working windows 2-23
-
Some basic vem commands 2-24
-
Building an example 2-26
-
2.8 Using galaxies 2-30
-
Creating a galaxy 2-30
-
Using a galaxy 2-31
-
Galaxy and universe parameters 2-32
-
2.9 Editing Icons 2-34
-
2.10 Sounds 2-38
-
Workstation Audio Internet Resources 2-38
-
Solaris 2-38
-
HPUX 2-39
-
Playing Audio over the Network 2-39
-
Ptolemy Sounds 2-40
-
2.11 Hardcopy 2-40
-
Printing oct facets 2-41
-
Capturing a screen image 2-41
-
2.12 Other useful information 2-44
-
Plotting signals and Fourier transforms 2-44
-
Moving objects 2-44
-
Copying objects 2-44
-
Labeling a design 2-45
-
Icon orientation 2-45
-
Finding the names of terminals 2-45
-
Multiple inputs and outputs 2-46
-
Using delays 2-47
-
Auto-forking 2-48
-
Dealing with errors 2-49
-
Copying and moving designs 2-50
-
Environment variables 2-51
-
Command-line options 2-53
-
2.13 X Resources 2-54
-
2.14 Tk options 2-55
-
2.15 Multi-domain universes 2-55
-
3. ptcl: The Ptolemy Interpreter
-
3.1 Introduction 3-1
-
3.2 Getting started 3-2
-
3.3 Global information 3-2
-
3.4 Commands for defining the simulation 3-2
-
Creating and deleting universes 3-2
-
Setting the domain 3-3
-
Creating instances of stars and galaxies 3-4
-
Connecting stars and galaxies 3-5
-
Netlist-style connections 3-6
-
Bus connections between MultiPortHoles 3-6
-
Connecting internal galaxy stars and galaxies to the outside 3-6
-
Defining parameters and states for a galaxy 3-6
-
Setting the value of states 3-7
-
Setting the number of ports to a star 3-7
-
Defining new galaxies 3-8
-
3.5 Showing the current status 3-9
-
Displaying the known classes 3-9
-
Displaying information on a the current galaxy or other class 3-9
-
3.6 Running the simulation 3-9
-
Creating a schedule 3-10
-
Running the simulation 3-10
-
Continuing a simulation 3-10
-
Wrapping up a simulation 3-10
-
Interrupting a simulation 3-10
-
Obtaining the stop time of the current run 3-10
-
Obtaining time information from the scheduler 3-11
-
Animating a simulation 3-11
-
3.7 Undoing what you have done 3-11
-
Resetting the interpreter 3-11
-
Removing a star 3-11
-
Removing a connection 3-11
-
Removing a node 3-12
-
3.8 Targets 3-12
-
What targets are available? 3-12
-
Changing the target 3-12
-
Changing target parameters 3-12
-
Pragmas 3-12
-
3.9 Miscellaneous commands 3-13
-
Loading commands from a file 3-13
-
Changing the seed of random number generation 3-13
-
Changing the current directory 3-14
-
Dynamically linking new stars 3-14
-
Top-level blocks 3-15
-
Examining states 3-15
-
Giving up 3-15
-
Getting help 3-15
-
Registering actions 3-15
-
The Interface to Matlab and Mathematica 3-16
-
3.10 Limitations of the interpreter 3-18
-
3.11 A wormhole example 3-18
-
3.12 Some hints on advanced uses of ptcl with pigi 3-19
-
Ptcl as a simulation control language for pigi 3-19
-
The pigi log file pigiLog.pt 3-20
-
Using pigiLog.pt to build scripts 3-22
-
oct2ptcl 3-22
-
4. Introduction to Domains, Targets, and Foreign Tool Interfaces
-
4.1 Introduction 4-1
-
4.2 Synchronous dataflow (SDF) 4-3
-
4.3 Higher-Order Functions (HOF) 4-3
-
4.4 Dynamic dataflow (DDF) 4-3
-
4.5 Boolean dataflow (BDF) 4-4
-
4.6 Process Network (PN) 4-4
-
4.7 Synchronous Reactive (SR) 4-5
-
4.8 Finite State Machine (FSM) 4-5
-
4.9 Discrete Event (DE) 4-5
-
4.10 Multidimensional Synchronous Dataflow (MDSDF) 4-6
-
4.11 Code generation (CG) 4-6
-
4.12 Code generation in C (CGC) 4-6
-
4.13 Code generation for the Motorola DSP56000 (CG56) 4-7
-
4.14 Code generation in VHDL (VHDL, VHDLB) 4-7
-
4.15 Domains that have been removed 4-12
-
Circuit simulation (Thor) 4-12
-
Communicating processes (CP) 4-13
-
Message queueing (MQ) 4-13
-
Code generation for the Sproc multiprocessor DSP (Sproc) 4-13
-
Code generation for the Motorola DSP96000 (CG96) 4-14
-
Code generation in Silage (Silage) 4-14
-
Functional Code Generation in VHDL (VHDLF) 4-14
-
4.16 Interfaces to Foreign Tools 4-15
-
Specification and Layout 4-15
-
Parameter Calculation 4-16
-
Algorithm Prototyping and Visualization 4-16
-
Simulation 4-16
-
Synthesis 4-16
-
5. SDF Domain
-
5.1 Introduction 5-1
-
Basic dataflow terminology 5-1
-
Balancing production and consumption of tokens 5-2
-
Iterations in SDF 5-3
-
Inconsistency 5-3
-
Delays 5-4
-
5.2 An overview of SDF stars 5-4
-
Source stars 5-5
-
Sink stars 5-9
-
Arithmetic stars 5-12
-
Nonlinear stars 5-13
-
Logic stars 5-16
-
Control stars 5-17
-
Conversion stars 5-20
-
Matrix stars 5-23
-
Matlab stars 5-26
-
UltraSparc Native DSP 5-28
-
Signal processing stars 5-30
-
Spectral analysis 5-34
-
Communication stars 5-36
-
Telecommunications 5-39
-
Spatial Array Processing 5-42
-
Image processing stars 5-44
-
Neural Networks 5-48
-
Higher Order Function stars 5-50
-
User Contributions 5-50
-
Tcl stars 5-50
-
5.3 An overview of SDF demonstrations 5-51
-
Basic demos 5-51
-
Multirate demos 5-53
-
Communications demos 5-54
-
Digital signal processing demos 5-55
-
Sound-making demos 5-57
-
Image and video processing demos 5-59
-
Fixed-point demos 5-61
-
Tcl/Tk demos 5-61
-
Matrix demos 5-62
-
MATLAB Demos 5-64
-
HOF Demos 5-64
-
Scripted Runs 5-64
-
5.4 Targets 5-65
-
Default SDF target 5-65
-
The loop-SDF target 5-67
-
Compile-SDF target 5-67
-
SDF to PTCL target 5-69
-
5.5 Exercises 5-70
-
Modulation 5-70
-
Sampling and multirate 5-72
-
Exponential sequences, transfer functions, and convolution 5-73
-
Linear phase filtering 5-75
-
Coefficient quantization 5-76
-
FIR filter design 5-78
-
The DFT (discrete Fourier transform) 5-79
-
Whitening filters 5-81
-
Wiener filtering 5-81
-
Adaptive equalization 5-82
-
ADPCM speech coding 5-83
-
Spectral estimation 5-84
-
Lattice filters 5-85
-
6. HOF Domain
-
6.1 Introduction 6-1
-
6.2 Using the HOF domain 6-2
-
The Map star and its variants 6-2
-
Managing multidimensional data 6-9
-
Other higher-order control structures 6-11
-
Statically evaluated recursion 6-12
-
Bus manipulation stars 6-13
-
6.3 An overview of the HOF stars 6-15
-
Bus manipulation stars 6-15
-
Map-like stars 6-16
-
6.4 An overview of HOF demos 6-18
-
HOF demos in the SDF domain 6-18
-
HOF demos in the DE domain 6-20
-
HOF demos in the CGC domain 6-20
-
7. DDF Domain
-
7.1 Introduction 7-1
-
7.2 The DDF Schedulers 7-2
-
The default scheduler 7-4
-
The clustering scheduler 7-5
-
The fast scheduler 7-6
-
7.3 Inconsistency in DDF 7-7
-
7.4 The default-DDF target 7-8
-
7.5 An overview of DDF stars 7-9
-
7.6 An overview of DDF demos 7-10
-
7.7
Mixing DDF with other domains 7-12
-
8. BDF Domain
-
8.1 Introduction 8-1
-
8.2 The default-BDF target 8-2
-
8.3 An overview of BDF stars 8-2
-
8.4 An overview of BDF demos 8-3
-
9. PN domain
-
9.1 Introduction 9-1
-
9.2 Process networks 9-1
-
Dataflow process networks 9-2
-
Scheduling dataflow process networks 9-3
-
Iterations in the PN domain 9-3
-
9.3 Threads 9-3
-
9.4 An overview of PN stars 9-4
-
9.5 An overview of PN demos 9-5
-
Examples from papers by Gilles Kahn and David B. MacQueen 9-5
-
Examples from the Ph.D. thesis of Thomas M. Parks 9-7
-
10. SR domain
-
10.1 Introduction 10-1
-
10.2 SR concepts 10-1
-
10.3 SR compared to other domains 10-1
-
10.4 The semantics of SR 10-1
-
10.5 Overview of SR stars 10-3
-
General stars 10-3
-
Itcl stars 10-4
-
MIDI stars 10-4
-
10.6 An overview of SR demos 10-5
-
Use of the Yamaha CBX-K1XG as a midi keyboard controller 10-5
-
11. Finite State Machine Domain
-
11.1 Introduction 11-1
-
11.2 Graphical User Interface 11-1
-
Edit a new STD file 11-1
-
Edit the Input/Output and Internal Events Names 11-1
-
Draw/Edit a State 11-1
-
Draw/Edit a Transition 11-2
-
Delete a State/Transition 11-2
-
Move/Reshape a State/Transition 11-2
-
Slave Processes of States 11-2
-
11.3 Working within Ptolemy 11-2
-
Make an Icon in Vem 11-2
-
Look Inside an FSM Galaxy 11-3
-
Compile an FSM Galaxy 11-3
-
11.4 An overview of FSM demonstrations 11-3
-
11.5 Current Limitations 11-4
-
12. DE Domain
-
12.1 Introduction 10-1
-
12.2 The DE target and its schedulers 10-1
-
Events and chronology 10-2
-
Event generators 10-2
-
Simultaneous events 10-3
-
Delay-free loops 10-4
-
Wormholes 10-4
-
DE Performance Issues 10-7
-
12.3 An overview of stars in DE 10-7
-
Source stars 10-8
-
Sink stars 10-10
-
Control stars 10-12
-
Conversion stars 10-14
-
Queues, servers, and delays 10-15
-
Timing stars 10-17
-
Logic stars 10-18
-
Networking stars 10-19
-
Miscellaneous stars 10-22
-
HOF Stars 10-24
-
12.4 An overview of DE demos 10-24
-
Basic demos 10-24
-
Queues, servers, and delays 10-26
-
Networking demos 10-27
-
Miscellaneous demos 10-28
-
Wormhole demos 10-29
-
Tcl/Tk Demos 10-30
-
HOF Demos 10-31
-
13. CG Domain
-
13.1 Introduction 11-1
-
13.2 Targets 11-1
-
default-CG 11-2
-
bdf-CG 11-3
-
FullyConnected 11-3
-
SharedBus 11-6
-
13.3 Schedulers 11-6
-
Single-Processor Schedulers 11-6
-
Multiple-Processor Schedulers 11-7
-
13.4 Interfacing Issues 11-10
-
Interface Synthesis between Code Generation Targets 11-10
-
Interface Synthesis between Code Generation and Simulation Domains 11-10
-
13.5 Dynamic constructs in CG domain 11-11
-
Dynamic constructs as a cluster 11-11
-
Quasi-static scheduling of dynamic constructs 11-12
-
DDF-type Stars for dynamic constructs 11-13
-
13.6 Stars 11-14
-
13.7 Demos 11-15
-
14. CGC Domain
-
14.1 Introduction 12-1
-
14.2 CGC Targets 12-1
-
Single-Processor Targets 12-2
-
Multi-Processor Targets 12-3
-
Setting Parameters Using Command-line Arguments 12-4
-
14.3 An Overview of CGC Stars 12-5
-
Source Stars 12-5
-
Sink Stars 12-7
-
Arithmetic Stars 12-8
-
Nonlinear Stars 12-8
-
Control Stars 12-9
-
Logic Stars 12-11
-
Conversion Stars 12-11
-
Signal Processing Stars 12-12
-
Communications Stars 12-12
-
BDF Stars 12-13
-
Tcl/Tk Stars 12-13
-
Higher Order Function Stars 12-14
-
UltraSparc VIS (Visual Instruction Set) Stars 12-14
-
An Overview of CGC Demos 12-18
-
Basic Demos 12-19
-
Multirate Demos 12-20
-
Signal Processing Demos 12-20
-
Multi-Processor Demos 12-21
-
Fixed-Point Demos 12-22
-
Sound-Making Demos 12-22
-
Tcl/Tk Demos 12-24
-
BDF Demos 12-25
-
Higher Order Function Demos 12-25
-
SDF-CGC Wormhole demos 12-25
-
UltraSparc VIS Demos 12-26
-
EECS20 demos 12-26
-
Tycho Demos 12-27
-
15. CG56 Domain
-
15.1 Introduction 13-1
-
15.2 An overview of CG56 stars 13-1
-
Source stars 13-3
-
I/O Stars 13-3
-
Arithmetic stars 13-6
-
Nonlinear stars 13-7
-
Logic stars 13-10
-
Control stars 13-11
-
Conversion stars 13-12
-
Signal processing stars 13-13
-
15.3 An overview of CG56 Demos 13-15
-
Basic/Test demos 13-15
-
Motorola Simulator Demos 13-16
-
S-56X Demos 13-16
-
CGC-S56X Demos 13-17
-
15.4 Targets 13-19
-
Default CG56 (default-CG56) target 13-19
-
CG56 Simulator (sim-CG56) target 13-20
-
Ariel S-56X (S-56X) target 13-21
-
CG56 Subroutine (sub-CG56) target 13-21
-
Multiprocessor 56k Simulator (MultiSim-56000) target 13-21
-
16. VHDL Domain
-
16.1 Introduction 14-1
-
Setting Environment Variables 14-2
-
16.2 VHDL Targets 14-3
-
The
default-VHDL
Target 14-3
-
The
struct-VHDL
Target 14-4
-
The
SimVSS-VHDL
Target 14-4
-
The
SimMT-VHDL
Target 14-5
-
The
Synth-VHDL
Target 14-6
-
Cadence Leapfrog Ptolemy Interface 14-7
-
16.3 An Overview of VHDL Stars 14-7
-
Source Stars 14-8
-
Sink Stars 14-9
-
Arithmetic Stars 14-9
-
Nonlinear Stars 14-10
-
Control Stars 14-10
-
Conversion Stars 14-11
-
Signal Processing Stars 14-11
-
16.4 An Overview of VHDL Demos 14-12
-
Code Generation Demos 14-13
-
Simulation Demos 14-13
-
Synthesis Demos 14-14
-
Cosimulation Demos 14-14
-
17. C50 Domain
-
17.1 Introduction 15-1
-
17.2 An overview of C50 stars 15-1
-
Source stars 15-2
-
I/O Stars 15-3
-
Arithmetic stars 15-4
-
Nonlinear stars 15-5
-
Logic stars 15-7
-
Control stars 15-8
-
Conversion stars 15-9
-
Signal processing stars 15-10
-
17.3 An overview of C50 Demos 15-12
-
Basic/Test demos 15-12
-
DSK 320C5x demos 15-12
-
17.4 Targets 15-13
-
Default C50 (default-C50) target 15-13
-
C50 Subroutine (sub-C50) target 15-14
-
C50 DSP Starter Kit (DSKC50) target 15-14
-
18. Creating Documentation
-
18.1 Introduction 15-1
-
18.2 Printing the manual 15-1
-
18.3 Using FrameMaker 15-2
-
Index Entries 15-2
-
Special fonts and displays 15-4
-
18.4 Using HTML to document stars 15-5
-
19. Vem - The Graphical Editor for Oct
-
19.1 Terminology 16-1
-
19.2 Using Dialog Boxes 16-4
-
19.3 General Commands 16-7
-
19.4 Options 16-11
-
19.5 Selection 16-15
-
19.6 Property and Bag editing 16-17
-
19.7 Physical editing commands 16-17
-
19.8 Symbolic editing commands 16-20
-
19.9 Schematic editing commands 16-20
-
19.10 Remote application commands 16-22
-
19.11 Customizing Vem 16-23
-
19.12 Bugs 16-23
-
20. pxgraph - The Plotting Program
-
20.1 Introduction 17-1
-
20.2 Invoking xgraph 17-1
-
20.3 Detailed description 17-1
-
20.4 Options 17-3
-
20.5 Bugs 17-6
-
Appendix A. Installation and Troubleshooting
-
A.1 Introduction A-1
-
A.2 Obtaining Ptolemy A-1
-
Access via the Internet A-2
-
Access via the World Wide Web A-2
-
Obtaining documentation only A-2
-
A.3 Ptolemy mailing lists and the Ptolemy newsgroup A-2
-
Ptolemy mailing lists A-2
-
Ptolemy Newsgroup A-3
-
A.4 Installation A-3
-
Location of the Ptolemy installation A-4
-
Basic Ptolemy installation A-5
-
The ptolemy user A-5
-
Installation without creating a ptolemy user A-5
-
Obtaining Ptolemy A-6
-
Special considerations for use under OpenWindows A-7
-
Gnu Installation A-7
-
Testing the Installation A-9
-
Rebuilding Ptolemy From Source A-10
-
Freeing up Disk Space A-14
-
Other useful software packages A-14
-
A.5 Troubleshooting A-15
-
Problems with tar files A-15
-
Problems starting pigi A-16
-
Common problems while running pigi A-19
-
Window system problems A-20
-
Problems with the compiler A-23
-
Problems compiling files A-25
-
Generated code in CGC fails to compile A-27
-
Ptolemy will not recompile A-27
-
Dynamic linking fails A-30
-
Dynamic linking and makefiles A-31
-
Path and/or environment variables not set in "debug" pigi A-32
-
DE Performance Issues A-32
-
A.6 Known bugs A-33
-
Bugs in vem A-33
-
Bugs in pigi A-34
-
Bugs in tycho A-35
-
Code generation bugs A-35
-
Bugs in
pxgraph A-35
-
HPPA specific bugs A-36
-
IBM AIX specific bugs A-37
-
Silicon Graphics IRIX5 specific bugs A-37
-
Linux specific bugs A-38
-
Sun Solaris 2.4 specific bugs A-38
-
Sun OS4 specific bugs A-39
-
DEC Alpha specific bugs A-39
-
GNU compiler bugs A-39
-
A.7 Additional resources A-40
-
A.8 Submitting a bug report A-40
-
Appendix B. Introduction to the X Window System
-
B.1 A model user's home directory B-1
-
B.2 Running Pigi using Sun's OpenWindows system B-1
-
B.3 Starting X B-2
-
B.4 Manipulating Windows B-3
-
Appendix C. Filter design programs
-
C.1 Introduction C-1
-
C.2 optfir - equiripple FIR filter design C-1
-
C.3 wfir - window method FIR filter design C-4
-
Appendix D. Shared Libraries
-
D.1 Introduction D-1
-
Static Libraries D-1
-
Shared Libraries D-1
-
Differences between static and shared libraries: Unresolved symbols D-2
-
Differences between static and shared libraries: Pulling in stars D-2
-
D.2 Shared library problems D-3
-
Startup Time D-3
-
D.3 Reasons to use shared libraries D-4
-
D.4 Architectural Dependencies D-4
-
Solaris D-5
-
SunOS D-5
-
HPUX D-5
-
D.5 GateKeeper Error D-6
-
Appendix E. Glossary
-
References
-
Index
Copyright © 1990-1997, University of California. All rights
reserved.