Top Up Prev Next Bottom Contents Index Search

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


Top Up Prev Next Bottom Contents Index Search

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