• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

examples/H03-May-2022-14,68014,644

icons/H03-May-2022-95

remote/H13-Feb-2009-1,142889

scheme/H13-Feb-2009-2,7621,969

spicefile/H13-Feb-2009-4,3223,151

src/H13-Feb-2009-9,0646,316

utilities/H07-May-2022-750614

AUTHORSH A D22-Jan-200878 31

COPYINGH A D22-Jan-200817.6 KiB340281

ChangeLogH A D22-Jan-2008687 2418

FAQH A D22-Jan-20085.3 KiB138104

INSTALLH A D12-Feb-200911.6 KiB295222

Makefile.amH A D03-May-2022632 2110

Makefile.inH A D13-Feb-200919.5 KiB631545

NEWSH A D13-Feb-20096.5 KiB163132

READMEH A D24-Jan-200912.9 KiB308232

TODOH A D22-Jan-20083.3 KiB10173

acinclude.m4H A D22-Jan-20082 KiB6864

aclocal.m4H A D13-Feb-200951 KiB1,4461,296

autogen.shH A D22-Jan-2008657 215

config.h.inH A D12-Feb-20082 KiB7953

configureH A D13-Feb-2009229.9 KiB8,1726,810

configure.acH A D03-May-20221.3 KiB4330

depcompH A D09-Aug-200717.2 KiB585370

gwave.specH A D13-Feb-20092 KiB7959

gwave.spec.inH A D22-Jan-20082 KiB7961

install-shH A D09-Aug-200712.9 KiB508340

missingH A D09-Aug-200710.9 KiB368275

plotutils-2.4.1.patchH A D22-Jan-20081.8 KiB3936

README

1
2CAUTION: gwave2 is an experimental port of gwave to Gtk-2 using
3the guile-gnome-platform toolkit.   This alpha release may still
4crash or contain other bugs.
5
6
7
8gwave - a  viewer for the output of spice-like simulators and other
9sorts of of analog data.
10
11by:
12
13Steve Tell
14steve@telltronics.org
15
16building and Installation:
17	See the INSTALL file
18
19Usage:
20	gwave [options] [waveform-file ...]
21
22The gwave main window is dominated by one or more "WavePanels" or
23graticules in which waveforms can be displayed.  WavePanels can be
24added and deleted with the menus.
25
26As waveform files are loaded from the command line or File->Read menu
27item, a window containing a scrolling list of variables in the file
28pops up.  Use the left mouse button to drag-and-drop variables into
29the WavePanels.  Double-clicking a variable in the the list adds it to
30the currently selected panel.  If you choose to close the variable
31list to neaten up your desktop, or lose the list under other windows,
32use the View->Variable List menu to open it again or bring it to
33the top.
34
35To the left side of the WavePanels are scrolling lists of buttons
36corresponding to each waveform shown in the panel.  A waveform shown
37in a panel is called a VisibleWave.
38There are two GUI functions overloaded onto the button for a
39VisibleWave:
40- Click with the left mousebutton to "select" one or more VisibleWaves.
41- Press and hold the right mousebutton to pop up a menu of operations
42related to that particular VisibleWave.
43
44To remove waves from the display , select one or more of them and then
45press the "delete" button at the top of the main window.  Alternately, use
46the delete item on the VisibleWave-button popup menu.
47
48Click on the waveform panels with the left and center mouse buttons to
49set two cursors for measuring.  Hold down these mouse buttons to drag
50the cursors.
51
52Pressing and holding the right mouse button while the cursor is in a
53waveform panel brings up a popup menu.  From this menu you can insert
54and delete waveform panels.  Some of the zoom commands are also
55replicated on this menu.
56
57Zooming of the Y axis to magnify a signal verticaly is only available
58on the wavepanel popup-menu because it affects each wavepanel
59seperately.  By default, each wavepanel automaticly scales to enclose
60the minimum and maximum values of the signals displayed in it.  Adding
61or removing signals may change the y-axis extents.  After a Y-zoom or
62XY-zoom operation, the Y axis for that particular wavepanel changes to
63"manual" mode and remains fixed.  To restore the panel to full-size
64with automatic Y zooming, select the "Zoom Y Full + Auto" menu option.
65
66
67Exporting data.
68
69A selected subset of the data from a waveform file may be exported in
70a tabular ascii format for postprocessing by external programs.
71Select "Export Data..." from the File menu of the waveform variable
72list window.
73
74In the current version of gwave, data from multiple files, or from
75multiple independent variables within a single file, cannot be
76combined and exported to a single file.
77
78Plotting.
79
80A view of the displayed waveforms can be plotted to postscript,
81bitmap, and other formats for printing and documenataion.
82All plot rendering is handled by external programs; currently gnu graph
83and gnuplot are supported.
84Choose the "Plot..." item from the main window or from any wavepanel's
85popup menu.
86
87Only a subset of the features of the external plot-rendering tools are
88directly available from the plot dialog box.  To make more advanced
89use of these tools, select "Keep Tempfiles" in the plot dialog box.
90This will preserve all of the temporary files and scripts used to
91drive the external plot-rendering tool.  These files will have names
92generated from the name of the plot output by appending suffixes.  Consult
93the documentation for each plot-rendering tool for information on additional
94options that can be used in the script files.
95
96Additional plot-rendering tools can be supported by writing an
97appropriate scheme module; see export-gnugraph.scm and export-gnuplot.scm
98for examples.
99
100Configuration save/restore
101
102A gwave panel and VisibleWave setup can be saved and restored.  To save
103all settings for all data files, use the "Save Configuration as Script" from
104the man window's File menu.   To save the configuration for one file only,
105use the "Save" option on that file's scrolling variable-list window.
106
107Scripts saved by either method can be run to restore gwave
108configuration in two ways:
109- From the main window of a fresh gwave session, use the "File->Execute
110  Script" menu item.
111- From the unix shell command line.  Either type "gwave -s <script>," or
112simply type the name of the script.  Either way, gwave will start and run the
113named script, producing wave panels set up exactly as they were when saved.
114
115Scripts written by gwave that restore only a single file's
116configuration can also be applied to another file, provided that the
117second data file has variables with the same names as those in the
118first.  Load the new data file, using the main window File->Read menu
119item.  Then, from the variable-list File menu, pick "Apply Script to
120File" and choose the script.  Variables in the new data file will be
121displayed in panels in the same manner as those from the original
122file.  This can be extremely useful, say for comparing the results of
123simulating the same circuit under different temperature or component-value
124conditions.
125
126In addition to the configuration-script-writing facilities described
127here, you are welcome to create your own guile scripts for specialized
128gwave applications.  For general guile information, see
129http://www.gnu.org/software/guile/guile.html
130
131For information on gwave-specfic features available for scripting
132gwave using guile, see the text files gwave-concepts.txt,
133gwave-hooks.txt, gwave-procedures.txt, and gwave-variables.txt All of
134gwave's menus and many of its user-interface features are written in
135guile; the code in the scheme subdirectory may also be useful as an
136example.
137
138
139Remote Control
140
141A running gwave process may be remotely controlled by any process that
142has permission to connect to the same X server.  Use the "xauth" and
143"xhost" utilities carefully to control access to your X server at all
144times.  This is especialy true when running gwave; anyone who can
145connect to your X server can cause your gwave to execute arbitrary
146guile code.
147
148The gwave-exec command sends a single guile expression to gwave to
149be executed, and displays the result and output of that command.
150
151For example
152	gwave-exec '(x-zoom! 10e-6 20e-6)'
153
154will zoom gwave's display so that the region of time from 10 to 20
155nanoseconds is visible.
156
157The gwaverepl program enters an interactive "read-evaluate-print" loop
158in which multiple guile expressions may be entered.  Each expression
159is evaultated, and the results printed.  Gwaverepl uses the GNU
160Readline facility for input line-editing and history scrollback, so
161all of the usual emacs (or vi) editing keys may be used.  Type the
162End-Of-File character (usually Control-D) to exit gwaverepl.
163
164
165Bug: do not use gwave-exec or gwaverepl when running multiple
166instances of gwave at a time on the same X server.
167
168
169Waveform Input files.
170
171Gwave understands CAzM transient output (.N/.B/.W) files, the binary
172and ascii outputs from HSPICE (.tr0, .sw0, and .ac0) files, Ascii
173nanosim "out" format, and tabular ascii files with a header line.
174Gwave tries to guess the type of the file based on filename, and then
175tries all file formats until one succedes.
176
177Details on using Gwave with the output of various simulators:
178
179Berkeley Spice3F5 and ng-spice.  Gwave can read both the the ascii and
180binary forms of the spice "rawfile" output.  If difficulty is
181encountered with the binary format, Try selecting the ascii form by
182setting the environment variable SPICE_ASCIIRAWFILE to "1" before
183running spice3.
184
185Reading of binary rawfiles has only been tested with both ng-spice and
186gwave running on a little-endian machine.  Your mileage may vary (but
187please send bug reports!)
188
189
190GnuCAP (http://www.gnu.org/software/gnucap), and its predecessor
191ACS (Al's Circuit Simulator, http://www.geda.seul.org/tools/acs/index.html)
192Gwave should identify and read ACS/GnuCAP output files, generated with
193the '>' option to a .tran statement.
194
195Synopsys (formerly Avanti, formerly Meta Software) HSPICE.
196Gwave should work with both ascii and binary output in the form of
197.tr0/.sw0/.ac0 files.  If one form doesn't work for you, try the other form.
198I used to have problems with some .ac0 files but I believe this is fixed.
199Try putting ".options probe" in your input file if you have troubles.
200
201Tanner Research T-Spice.
202It has been a while since I tried tspice, but gwave should read the output,
203at least from transient analysis runs.  T-Spice output is in a variant of the
204CAzM format, not surprising since Tanner bought the rights to CAzM from MCNC.
205
206Silvaco SmartSpice
207Gwave works with the variant of berkeley spice rawfile format produced
208by SmartSpice.  Both ascii and binary files should work, although this
209hasn't been tested recently.
210
211Apache Design Automation NSPICE
212Nspice produces yet another variant of the berkeley spice3 rawfile format.
213Both ascii and binary files should work.
214
215Synopsys Nanosim
216GWave can read the ".out" format from nanosim.
217
218Your own custom waveforms:
219
220The easiest of the input formats to generate with simple scripts and
221other tools is the "ascii" format.  See the ACS-simulator output file
222tpwl.acs in the examples directory for an example of this format.  The
223first line lists the variable names, seperated by whitespace.  The
224variable in the first column is assumed to be the independent
225variable, for example "time."  Subsequent lines in the file contain
226the data, one timestep per line.  The independent variable must be
227nondecreasing.  Lines in the file can be arbitrarily long.
228
229Note that the '#' in examples/tpwl.acs is for the benefit of other
230tools (such as gnuplot), that don't expect column titles or variable
231names in the file.  To gwave, the first line is not a comment but
232contains whitespace-seperated fields naming the variables.  The result
233is that gwave thinks the independent variable name is "#Time," but
234don't let that bother you.
235
236
237Bugs:
238
239An oft-reported problem in gwave is that the scrolling variable list
240window is unable to scroll and show more than one screen of variables
241when your simulation has a very large number of them.  This is
242actually a limitation in the Gtk+ toolkit; srolling windows can't be
243taller than the 32,768 pixel limitation of X11 ofscreen pixmaps.
244Workaround: probe fewer variables, or use sp2sp to select only the
245ones you need.
246
247
248
249----------------------------------------------------------------------
250
251The sp2sp utility.
252
253In addition to gwave, I've included a utility program called "sp2sp"
254(for spice-to-spice).  It uses the same spicefile reaer code to
255convert among some of the goofy raw file formats output by spice-like
256simulators.  Its primary output format is the simple "ascii" format,
257consisting of one line per step, with whitespace-seperated columns.
258This format can be read by gwave, but is also ideal for feeding to
259awk, perl, or gnuplot.
260
261A complete manual page for sp2sp is provided and installed, but here are
262a few hints:
263
264Unlike gwave itself, sp2sp does not autodetect the file format.  Use
265the -t option to specify the input file format.
266
267sp2sp can produce arbitrarily long output lines.  This can cause
268trouble with very old versions of some unix utilities.
269
270Example sp2sp usage:
271
272	sp2sp -t hspice aoi.W.tr0
273
274----------------------------------------------------------------------
275This tool is far from complete. Partial contents of the To Do list:
276
277- better handling of datafiles containing complex numbers.  Currently,
278  these files are read, but only the real part can be displayed.
279  Workaround: Sp2sp prints out both the real and imaginary parts; convert
280  the file to generic ascii format using sp2sp.
281
282- Send feedback and error messages from loading of files to a popup window
283  or status line instead of to stdout or stderr.
284- Drag-and-drop to move waveform from one panel to another
285- More guile methods to round out the interface, including:
286	access to selected-VisibleWave list, others.
287- Drawing a labeled graticule in the waveform area
288- Seperate lists for selecting voltage/current/etc. types of variables
289- Documentation, both user's manual and programmer's manual.
290  Autodocs for guile primitives need to be extracted into text files.
291
292----------------------------------------------------------------------
293Acknowledgements
294
295Thanks to my colleagues at work including John Poulton, John Eyles,
296Fred Heaton, Trey Greer, and Teva Stone for giving gwave heavy use
297over the last several years.
298
299Thanks to Greg Badros and Maciej Stachowiak for the SCWM window
300manager, which inspired me to use guile as the extension language for
301gwave.  A number of code fragments and a bit of the general style of
302the Guile/C interaction was borrowed from SCWM.  Any misinterpretation
303and bugs introduced along the way are most certainly my fault.
304
305And last but not least, thanks to the authors of Gtk+, Guile, and
306Guile-gnome-platform for some great building blocks.
307
308