ngspice-wave is an analog waveform viewer for the .raw files ngspice and
ngspice-jit write. It reads the Berkeley raw format in both encodings,
binary and ASCII, and both flavours -- real (.tran, .dc) and complex
(.ac).
The package installs two programs that share one renderer:
waveview <file.raw> interactive window (X11)
wave-plot <file.raw> -o out.png the same plot as a PNG, no display
waveview opens with an empty pane and the signal list on the left; click
a signal to plot it. Hierarchical names -- v(xio.xser.rxp_a) -- become
a collapsible tree, so a top-level chip is navigable instead of being
one flat list of thousands of nodes. Wheel zooms, right-drag zooms to a
region, 'a' and 'b' place cursors, 'm' measures, 'p' opens another pane,
'f' fits, 'q' quits. Press 'h' inside the viewer for the full key and
mouse reference; the same table is installed as keys.txt in the
documentation directory.
Storage is a min/max pyramid reduced to the resolution of the output
device, which is what lets multi-gigabyte files open in well under a
second: the viewer only ever touches as many samples as the window has
pixels. Exact samples are used for measurements, so a cursor reading is
the value in the file, not the value of a reduced band.
On .ac files ngspice stores the complex node voltage, and vdb() is a
display function rather than something the simulator can be asked to
save. So each .ac signal expands in the tree into its projections --
db, phase, phase unwrapped, mag, real, imag -- all exact, all checked
against ngspice's own db/ph/cph/mag/real/imag to the last digit. In
wave-plot they are written as -s 'db(v(out))', -s 'cph(v(out))' and so
on.
wave-plot is the same renderer without a window, for pictures out of a
regression run or over an ssh session with no X display.
Build notes: this is a Rust cargo workspace with no crates.io
dependencies at all -- every crate is a path dependency inside the
workspace -- so the build does not touch the network and needs no
vendored-crate tarball. The X11 client is written against the wire
protocol, so the binaries link libc and nothing else: no libX11, no
toolkit. The rust in Slackware 15.0 (1.58) is new enough for edition
2021, so nothing outside a stock install is needed.
Not installed: wave-bench, the upstream benchmark and correctness
harness. Its "gen" mode writes multi-gigabyte test files, which does
not belong in /usr/bin; build it from the source tree with "cargo build
--release" if you want to run the suite.
ngspice-wave is a viewer only -- it never runs a simulation and does not
conflict with, or depend on, any ngspice package. It is the companion
to ngspice-jit, but reads raw files from stock ngspice just as well.
Documentation installed under /usr/doc/ngspice-wave-VERSION:
USAGE.md - how to use both programs
README.md - upstream design notes and the measurements behind them
keys.txt - key and mouse reference, generated by the binary itself
Homepage: https://codeberg.org/alto555/ngspice_wave
Maintained by: A. Tomasini
Keywords: ngspice-wave waveform
ChangeLog: ngspice-wave
Homepage:
https://codeberg.org/alto555/ngspice_wave
Download SlackBuild:
ngspice-wave.tar.gz
ngspice-wave.tar.gz.asc (FAQ)
(the SlackBuild does not include the source)
| Individual Files: |
| README |
| doinst.sh |
| ngspice-wave.SlackBuild |
| ngspice-wave.info |
| slack-desc |
© 2006-2026 SlackBuilds.org Project. All rights reserved.
Slackware® is a registered trademark of
Patrick Volkerding
Linux® is a registered trademark of
Linus Torvalds