A report for Jim Sullivan
by Paul F. Sullivan
July 14, 1999
The graphics front end of the EDFA project must allow the end user to easily sketch a representation of his system that is clearly understood both by humans and by the computer. A palette or palettes of professional looking custom icons is critical to this task, as is a convenient and intuitive way of interconnecting them. Once the system has been sketched, he must be able to clean up his drawing without losing the connectivity that he has already built into it. The information as to what is connected to what must then be handed off to the simulation engine. The results from the simulation engine need to be presented to the user in easily intelligible form, most probably in graphs as well as data tables. It might also be useful to be able to acquire data on the actual system in the same environment for easy comparison with the simulations.
To minimize development time, we should consider only tools that already understand and automatically maintain attachment between icons and the lines that connect them. The tools should allow us to easily develop customized icons and display them on a palette for the customer to use in describing his system. They should also support exporting their understanding of the connectivity, at least in a netlist (which would require further parsing to fill the input data structures of the simulation engine).
Painting programs, such as Photoshop, and most simple drawing packages do not understand connection between drawing elements. If you place object A and object B on your drawing sheet and connect them with a line then move object B, the line will not stretch and the connection will break. More sophisticated drawing packages, such as CorelDRAW, allow durable connections to be made, but only as special cases requiring extra steps beyond simply drawing the interconnection. To fill this need, Corel Corporation released CorelFlow some five years ago. In this package it was possible to develop graphic elements that had predefined attachment points which could be connected to a line simply by clicking them with the line drawing tool. Unfortunately for us, this package was only designed to produce pretty pictures for documentation and had no way of exporting the connectivity that it understood. CorelFlow also occasionally tangled or forgot connections and appears to be no longer available.
A large class of drawing packages intended for the capture of electrical schematics does understand connectivity. They allow connections to be made simply by clicking on the appropriate point with the wiring tool. They also export this understood connectivity in the form of a netlist, a text file in one of a number of different formats. As shown in the table with a couple of representative systems, schematic capture packages range in price from a few tens of dollars for a very limited package, such as DesignWorks Lite, to many thousands of dollars per seat for a sophisticated and integrated package capable of imposing corporate design standards, such as Mentor Graphics.
SimuLink, a graphical front end for MatLab, also understands connectivity and conveys that connectivity directly to MatLab. Its look and feel is very much like that of schematic capture packages. As a graphical front end, it is really a programming tool for MatLab rather than a data input device. A MatLab license would have to be included for SimuLink to function and it is unclear how one would restrict the end user from modifying the simulation engine itself with this tool.
Schematic capture packages typically deal with the wireframe symbols used for electronic diagrams since the thirties. The higher priced versions allow development of customized icons, and some even allow color fills of the wireframe shapes, but the symbols lack the glitz to which we have become accustomed in GUI based computing. The full-fledged drawing packages, such as Photoshop and CorelDRAW, can provide the graphics, but, as mentioned previously, do not understand connectivity.
Visio is a full-fledged drawing package. In fact, it is marketed as a drawing package with brains. Symbols can be infused with intelligence, including the intelligence to understand connectivity. Visio Technical Plus even has a wizard that exports netlist files in a variety of formats.
LabVIEW is a graphical programming language. While its icons are restricted to 32x32 pixels, they certainly allow adequate visual information and pizzazz to be conveyed. In fact, for laying out reasonable systems on reasonable computer screens, larger icons are probably undesirable. Hewlett-Packard's hp-VEE is roughly equivalent to LabVIEW but slightly less general, slower, and more heavily tied to instruments and especially Hewlett-Packard instruments.
A netlist is an adequate description of a system design when coupled with the additional information incorporated in custom icons. Visio would, therefore, convey adequate information to the simulation engine. A parser, in C, C++, Visual Basic, or VBA, all of which are supported by Visio, would recast the data into the specific structures needed by the simulation engine. LabVIEW data handling capabilities would allow the generation of the required structures within LabVIEW.
The data flow paradigm of LabVIEW does not permit an output of one symbol to return to an input of the same symbol even after flowing through others. To handle a feedback loop, special structures are required. Our demonstration program showed that such structures are possible with one practical, but slightly clunky, example. Visio has no such internal restriction, so feedback loops could be represented more naturally.
It is unclear exactly how important graphs will be in the final product. LabVIEW supports a range of practical graphs internally and interfaces directly with HiQ for more sophisticated graphing needs. The LabVIEW picture control kit allows fully custom graphs. Visio supports "chart enhancements" but apparently does not do graphing. Graphs would have to be provided by a separate program or routines in a language such as C++. Visual BASIC plugins (VBX?) are probably the most likely candidate.
LabVIEW was designed as an instrument control language and interfaces readily with a very wide range of measurement instrumentation. If the simulator's front end were LabVIEW, then measurements of the performance of the actual built system could be performed in the same environment and compared directly with the simulations. Visio does not have this capability.
Visio Technical Plus costs $399 in single quantity. OEM pricing ranges from $228 in hundreds to $156 above 2500 copies. The LabVIEW base package at $995 is adequate for the user system. Reseller discounts of up to 40% are available, but only on the $1995 full development system.
There are a number of university packages available for free or a nominal fee. A web search yielded the following:
While the initial cost of systems like these is attractive, the lack of a formal support system and the absence of a significant number of commercial programmers may cost heavily later on. Significantly, three of the sites we found in May have disappeared in the intervening two months.
We have five years heavy experience with LabVIEW and none with Visio, but we have been assured that we will have no trouble coming up to speed with the new package given our experience with VBA.
LabVIEW seems to be the way to go for the prototyping and for exploring what the package should really do and really look like. Visio may be more appropriate for the final product depending on the tastes of the clients. This staged approach would result in a more rapid development cycle.
LabVIEW | Visio | Protel | DesignWorks | CorelFLOW | SimuLink | Photoshop | CorelDRAW | Coloured Petri Nets | |
---|---|---|---|---|---|---|---|---|---|
Icons | 32x32 | color | wire frame | wire frame | color | wire frame | color bitmap | color vector | wire frame |
Cost (for 1) | $995 | $399 | $4,995 | $495 | discontinued | $600 | $400 | ||
Cost (OEM) | $1,400 | $156-$228 | |||||||
Export | structures | netlist | netlist | netlist | none | MatLab | none | none | |
Scripting | ActiveX, OLE, MatLab | OLE, VBA | ? | ? | none | MatLab | unique | unique | |
Programmers | 100,000+ | ? | ? | ? | ? | ? | ? | ? | 500+ |
Appearance | Data flow | Drawing package | Schematic capture | Schematic capture | Drawing package | Schematic capture | Drawing package | Drawing package | Data Flow Diagrams |
Graphing | Yes | No | No | No | No | Yes | No | No | |
Learning | None | Some | Little | Little | None | Considerable | None | None | Considerable |
Measurement | Yes | No | No | No | No | No | No | No | |
Custom Menus | Yes | Yes | ? | ? | ? | ? | No | No | |
Attachment | Yes | Yes | Yes | Yes | Yes | Yes | No | difficult | Yes |
Feedback | No | Yes | Yes | Yes | NA | Yes | NA | NA |