SlackBuilds Repository

15.0 > Academic > ngspice-wave (0.1.0)

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

Source Downloads:
ngspice-wave-0.1.0.tar.gz (9ddbb9db6fe701c208850e733a914237)

Download SlackBuild:
ngspice-wave.tar.gz
ngspice-wave.tar.gz.asc (FAQ)

(the SlackBuild does not include the source)

Validated for Slackware 15.0

See our HOWTO for instructions on how to use the contents of this repository.

Access to the repository is available via:
ftp git cgit http rsync

© 2006-2026 SlackBuilds.org Project. All rights reserved.
Slackware® is a registered trademark of Patrick Volkerding
Linux® is a registered trademark of Linus Torvalds