MONTHLY PROGRESS REPORT CONTRACTOR: University of California at Berkeley AGREEMENT NUMBER: DAAB07-97-C-J007 CONTRACT PERIOD: 11/18/96 - 11/31/99 DATE: June 30, 1998 TITLE: Heterogeneous Modeling And Design REPORT PERIOD: 4/15/98 - 5/15/98 SPONSOR: Air Force Research Laboratory (AFRL) TECHNICAL POC: James P. Hanna REPORT PREPARED BY: Edward A. Lee 0. Executive Summary In a major milestone for Ptolemy 0.x, Christopher Hylands has successfully ported the entire environment, including the user interface, to Windows NT. We have also made significant progress on Ptolemy II and on the embedded software synthesis infrastructure in Ptolemy 0.7.1. 1. Research Status Task 1: Modular deployable design tools ======================================= Reduced-Order Models -------------------- Dr. Per Ljung of Coyote Systems provided us with two Simulink models that are a manually-modified automatically generated model of a MEMS accelerometer. The first is a simple 2nd order system of the proof mass (no damping), and the second is a comb finger with sensing of position. Applying a square wave excitation results in deflection of the proof mass and a capacitance change in the comb finger sensor. This is graphically shown in the output of the simulink simulation. Jie Liu successfully converted these models to Ptolemy II under the CT domain. Ptolemy II ---------- Jie Liu developed a set of classes for the actor package that support message passing, and has applied these classes in the CT (continuous time) domain. That domain uses a particular style of message passing called a mailbox. A mailbox is capable of holding a single item of data (a token). Neil Smyth developed an expression parser for the data package that uses JavaCC (informally called Jack), a "compiler-compiler" from Sun Microsystems. The expression parser is designed to support interrelated parameters (via a publish-and-subscribe model) and dynamically evaluated expressions in actors. This represents a major improvement over the expression parser in Ptolemy 0. Albert Chen has completed a first prototype of the math package for Ptolemy II, using reflection Java to achieve polymorphic higher-order functions. The net impact of this is that a large library of matrix and vector functions can be created with a very small amount of code. User Interface -------------- John Reekie was able to start up Tycho under Tcl++, a fully interpreted alternative to Itcl. Unfortunately, Tcl++ is not completely compatible with Itcl, so it appears to not be a complete solution. John has also written a preliminary specification for what is essentially a Java version of the Slate widget in Tycho. This new version would be based on the 2-D graphics package that is part of JDK 1.2. The specification is at: http://ptolemy.eecs.berkeley.edu/~johnr/research/diva/canvas/ Design Flow Management ---------------------- William Wu has begun to outline a strategy for supporting sophisticated design-flow management under Ptolemy II. The intent is to manage the integration and invocation of multiple tools for heterogeneous design. For example, a CORBA server somewhere on the network might provide parameterized reduced-order models that are then used in Ptolemy II models. The design flow management tool would control the updating of this reduced-order model, as well as tracking versions and supported iterative design. The design flow would be represented visually, as a block diagram. PtPlot ------ Christopher Hylands has modified ptplot so that the -binary flag now reads in binary data in the native endian format. He also added two new command line arguments -bigendian and -littleendian. These force ptplot to read the data as big endian or little endian respectively. These are necessary to ensure that Ptplot applets will work no matter what type of machine the browser is running under. Christopher also fixed a bug that was plotting extraneous points before all the data was read in from a file. The fix turns out to also yield a 13% performance improvement. He released a new version, ptplot 1.3. The release notes are included as an appendix. The release is available at: http://ptolemy.eecs.berkeley.edu/java/ptplot/index.html Task 2: Domain-specific design tools ==================================== Ptolemy 0.7.1 Release --------------------- We froze the code of Ptolemy 0.7.1 on April 27, split the development tree from the release tree on April 29, and released the Alpha version on May 15. The complete description of this release (or a more recent version) is at: http://ptolemy.eecs.berkeley.edu/pt0.7.1/index.html The alpha period will be two weeks long, Ptolemy0.7.1beta is due out on Friday, May 29, and Ptolemy0.7.1 final is due out on June 12, 1998. The purpose of the 0.7.1 alpha is to find bugs in the release. The prerelease yielded significant contributions from: - Tom Lane (Structured Software Systems): HPUX 9.x - Peter Dufault (HD Associates, Inc.): FreeBSD - Guy Maor (University of Texas, Austin): Debian GNU/Linux 2.0. - Jens Voigt (Dresden University of Technology Communications Laboratory): Solaris 2.6 - Wolfgang Reimer (Technical University of Ilmenau, Germany): RedHat 5.0 Linux - Frederic Boulanger (Supelec, France: Digital Unix 4.0 - Wan-Teh Chang (Netscape): Irix2.6 NT port of Ptolemy ------------------ In a major milestone for Ptolemy 0.x, Christopher Hylands has successfully ported the entire environment, including the user interface, to Windows NT. Notes about the NT port can be found at http://ptolemy.eecs.berkeley.edu/~cxh/nt-ptolemy.html This port is not yet suitable for release, but we expect it to be soon. Synthesis of Embedded Software ------------------------------ The team led by Brian Evans at UT Austin has modified the C50 domain in Ptolemy 0.7.1, which synthesizes embedded software for the Texas Instruments TMS320C50, to enable the generated code to work for the C50 DSK board, the C50 TI simulator, and the C50 EVM board. The C50 domain previously only generated code for the DSK board which is incompatible with the C50 simulator and the EVM board. The changes are grouped into three steps: 1. Remove DSK-specific code in the C50 stars and use states to define variables and let the target generate the right code 2. Create an C50Sim target to generate code for the standard C50 simulator from Texas Instruments 3. Create an C50EVM target to generate and download code for the C50 EVM board. They have finished steps 1 and 2, and expect to finish step 3 during the summer. Task 3: Heterogeneous interaction semantics =========================================== Nothing to report on this task. 2. Equipment/Infrastructure Status: Christopher Hylands continues to improve our distributed, multi-platform development environment. He has installed patches to ssh (secure shell) on Windows NT, and installed sshd (a deamon) on an NT box so that we can log in remotely and securely, much as we do using Kerberos on the Unix machines. Christopher has also installed X11R6 with forwarding, so that we can run X applications under NT and display them under NT remotely and securely. 3. Interactions and Technology Transfer -- Technologies Lyre Inc., of Quebec, Canada, demonstrated in their booth at DSP World Spring, Santa Clara CA, April 21-23, a rapid-prototyping platform called SignalMaster, based on Motorola's DSP56301 as well as a newer SHARC-based model. They are offering Ptolemy as one of the main interfaces bundled with their DSP boards. They use the code generation capability to produce downloadable code. On May 6, we met with two representatives of Lyre at Berkeley to discuss whether we would participate in a beta test of their hardware. This is still undecided. -- Cary Ussery , from Improv Systems Inc., visited our group on April 24, and discussed their software and hardware design methodology. Quoting Cary: "Improv Systems is a startup company (started this past August) which has developed a new processing platform for embedded systems. This "platform" is a modular architecture of multiple, heterogeneous, VLIW-programmable engines with a specific communication and control structure connecting them. In addition to the IC design, we are developing an advanced compilation system to partition, allocate and optimize applications for the processing platform. We use techniques from behavioral synthesis (partitioning, allocation, and binding onto fixed datapath resources), advanced compilers (software pipelining, loop unrolling, static instruction scheduling), etc. To "feed" this compiler, we have developed a system-level semantic framework for describing applications as a collection of concurrent, communicating tasks. Each task is encapsulated into an object/component with an explicitly defined interface. In addition, we encapsulate the data shared between tasks into "data managers". The framework distinguished between a dynamic construction/elaboration phase and a statically-analyzable initialization/execution phase. It borrows many concepts of instantiation, interface definition and hierarchical, structural connectivity from HDLs. A particularly unique aspect of it is the way the data flow and control flow are explicitly separated and described. This characteristic is extremely effective as input into partitioning, allocation, and analysis schemes such as those used in our compilation system. However, we believe that the utility of this approach extends far beyond our specific processing platform." 4. Personnel Status Xiaojun Liu has joined the group as a PhD student. He is an expert in computer-aided design. Albert Chen concluded his undergraduate project and has left the group. 5. Talks/Presentations/Publications: -- Edward A. Lee, "Block Diagrams for Modeling and Design," Plenary talk at DSP World Spring, Santa Clara, CA, April 22, 1998. An EE Times article about this talk can be found at: http://techweb.cmp.com/eet/news/98/1004news/mixed.html The slides from the talk are available at: http://ptolemy.eecs.berkeley.edu/~eal/talks/dspspring.pdf Below is a press release concerning the talk: Award-Winning Researcher Will Present New Approach to Design Visualization At DSP World Spring Design Conference (PR Newswire; 02/10/98) SAN FRANCISCO, Feb. 10 /PRNewswire/ Visual depictions of electronic systems can be extremely effective in communicating design ideas, but they are not always successful, according to Dr. Edward Lee of the University of California at Berkeley. Professor Lee will present an innovative approach to developing block diagrams for digital signal processing (DSP) design in a keynote speech at the DSP World Spring Design Conference, running April 21-23, 1998 at the Santa Clara Convention Center in Santa Clara, Calif. "In working with concurrency models, I have found that different approaches can be complimentary rather than competitive," said Lee. "Because of this, no single type of block diagram is likely to emerge as 'the best.' In signal processing, block-diagram design environments will have to grow beyond their highly static, dataflow-oriented semantics to continue to be useful." Lee is a professor in the Electrical Engineering and Computer Science Department at U.C. Berkeley, and directs the Ptolemy Project, a research project on design methodology for reactive systems. The project is based on the principle of multiple computational models in a hierarchical heterogeneous design environment. Lee has two patents, has co-authored four books, and has published numerous technical papers. He was a member of the Advanced Data Communications Laboratory technical staff at Bell Laboratories from 1979 to 1982, and was one of the original founders of Berkeley Design Technology, Inc. A fellow of the IEEE, Lee was named an NSF Presidential Young Investigator in 1987, and was awarded the Terman prize in 1997. He earned a Bachelor of Science degree at Yale University, a Master's degree from Massachusetts Institute of Technology, and a Ph.D. from University of California at Berkeley. Lee's talk, at 5:15 p.m. on Wednesday, April 22, highlights three days of workshops and tutorials on topics ranging from the use of DSPs in consumer applications, to software development issues and system-on-chip DSP solutions. In addition to the extensive program of classes and panel discussions, the conference includes an exhibition of products and services for electronics professionals involved in DSP design. DSP World Spring Design Conference is produced by Miller Freeman, Inc., publisher of COMMUNICATION SYSTEMS DESIGN, EMBEDDED SYSTEMS PROGRAMMING, and MULTIMEDIA SYSTEMS DESIGN magazines, and the world's largest producer of conferences and trade exhibitions. Other events produced by Miller Freeman include ICSPAT & DSP World Expo and the Embedded Systems Conferences. For updates and further information on this year's conference, visit the DSP World Spring Design Conference World Wide Web site at http://www.dspworld.com. SOURCE Miller Freeman, Inc. -0- 02/10/98 /CONTACT: media, Wendy Lewis or Matthew Schmidt, 650-691-1488, or press registration, Julie Donnellan, 650-691-1488, or juliesfcomm.com, all of FS Communications; or exhibitor, Ann Harris, 781-235-8589, or attendee, Liz Austin, 415-538-3848, or 888-239-5563, or dspworldmfi.com, both of Miller Freeman, Inc./ /Web site: http://www.dspworld.com/ Publications ------------ [1] Shuvra S. Bhattacharyya, Praveen K. Murthy, and Edward A. Lee, "Synthesis of Embedded Software from Synchronous Dataflow Specifications," accepted to the Journal of VLSI Signal Processing. 6. Difficulties/Problems None to report. 7. Next Quarter Plans We plan to continue design and implementation of the actors, graph, math, pn, and ct packages in Ptolemy II. In addition, we will be working on polishing the kernel package with the objective of getting it to the "green" level in our software development hierarchy. 8. Financial Data Provided separately on a quarterly basis by the university. APPENDIX ======== Release notes for ptplot 1.3. Ptplot is the Java two dimensional plotter that is a replacement for the X11 xgraph and pxgraph programs. The changes between ptplot1.2p1 and ptplot1.3: * pxgraph =500x500-0-0 was throwing a numeric exception. * Added ReuseDataSets: on file directive, which causes datasets with the same name to be merged into one dataset when plotted. This is useful for combining multiple files that plot the same datasets. * Fixed compatibility problem with X11 version of pxgraph. The old version of pxgraph allowed blank lines to denote the start of a new dataset. The problem is that we want to ignore blank lines in the new format, but still provide compatibility with the old behavior. The fix was to assume that the file is an old format file until we see a new style directive. * Fixed a bug that was plotting extraneous points before all the data was read in from a file. * The Pxgraph class and the pxgraphscript now take two new command line arguments: -bigendian Data files are in big-endian, or network binary format. If you are on a little-endian machine, such as a machine with an Intel x86 chip, and you would like to read a binary format file, created on a big-endian machine, such as a Sun SPARC, use the -bigendian flag. -littleendian Data files are in little-endian, or x86 binary format. If you are on a big-endian machine, such as a Sun Sparc, and you would like to read a binary format file created on a little-endian machine, such as Intel x86 machine, then use the -littleendian flag. -binary now reads pxgraph style binary data in the format native to the machine where the Java Ptplot process is running. The other binary format read by the -binary option, known as the raw binary format is always reads data as big-endian. The [1]Endian Examples page illustrates use of the three options. * The Pxgraph class and the pxgraphscript now take two new command line arguments: -o output filename The name of the file to place the print output in. Currently defaults to /tmp/t.ps. -print Bring up the print dialog immediately upon startup. Unfortunately, there is no way to automatically print in JDK1.1, the user must hit the Ok button. The new command line arguments are used to make it easier to create PostScript output. * ptplot2mif.tcl script can be used to convert the PostScript output of Ptplot to Framemaker MIF format. This script requires Tcl, and probably won't work under Windows. This script does not do a perfect job converting, but it is a start. * URLS with & characters in them were being parsed incorrectly. This bug was reported by Marion Schroeder . * A new jar file called ptplotapplet.jar is now created. This jar file is similar to ptplot.jar, except it does not include the classes used by the Pxgraph class. As a result, ptplotapplet.jar is smaller than ptplot.jar. The Pxgraph and Message classes are not used in applets, so there is no need to download them for applet only usage. * The _graphics field in PlotBox is now transient so that PlotBox can be serialized. This bug was reported by Patrick Barrett .