ngspice-jit is a fork of ngspice (the mixed-level/mixed-signal circuit
simulator) aimed at running raw foundry analog / mixed-signal top-level
chips without hand-conversion.

Its headline feature, and its name, is that it JIT-compiles the
behavioral R/C value expressions a PDK writes (voltage/temperature-
dependent poly-resistors, MIM capacitors, high-field tanh laws) into
native OSDI devices at parse time, so the solver sees real charge- and
current-conserving devices instead of fragile behavioral sub-circuits.
It also adds Eldo-style topology reduction (dangling-passive removal),
regular-expression selection in show/display/print/plot/write/save, a
new 'devices' command, and assorted fixes.

For post-layout decks with huge extracted RC parasitic networks it adds
two optional parse-time simplifications, both off by default:

    .option minres=<val>   short every resistor below <val> ohm, by
                           merging its two nodes into one
    .option mincap=<val>   drop every capacitor below <val> farad

Sources and supply nets are protected, so a small resistor is never
allowed to short two driven nets together. Shorting resistors removes
nodes, which is what actually shrinks the matrix and the solve cost.
See /usr/doc/ngspice-jit-VERSION/parasitic_reduction/.

The startup banner is tagged "[ngspice-jit fork: ...]" so the binary is
distinguishable from a stock ngspice at a glance.  The internal
simulator name and version stay "ngspice-46" so .raw files remain
compatible.

The OSDI codegen invokes the system compiler (gcc) at run time; gcc is
part of the Slackware base system.  The osdi headers it needs are
installed to /usr/share/ngspice/osdi and spinit is set to find them.

Documentation shipped under /usr/doc/ngspice-jit-VERSION:
  examples/          - the upstream example-circuit tree (from the
                       source)
  reference_manual/  - our HTML/PDF command reference
                       (ngspice_manual.html / .pdf, tested vs
                       ngspice-46), carried by the source tarball.

The documentation above is not the original ngspice manual. The files:

    ngspice_manual.html
    ngspice_manual.pdf

are a compact version of the ngspice manual. The main reason for this
manual was to get all the commands checked against a real example.

In the header of the command you can also see whether the command works
in interactive mode "ui", batch "batch" or both.

Interactive commands like show, plot, device, showmod, display, print
accept POSIX REGEX as argument. This was introduced because with a large
circuit it is impossible to scroll up in the xterm to find the device or
node across many thousand lines of output.

ngspice-jit also re-introduces a mini-help on the command line which is
based on the manual above.

example:

help wrdata
wrdata -  ASCII column data   [ui only]

Synopsis:
  wrdata  file  expr ...

  Writes the scale (time/frequency) and each expression as
  whitespace-separated columns of plain text - the easiest format to
  hand to gnuplot, a spreadsheet, or a script. Control mode only (no
  dot-card form). A double-quoted argument is a regular expression over
  the current plot - wrdata f.txt ".*#branch" writes every branch
  current as columns (same rule as print).

  See also: print, write (binary raw), gnuplot.

Important: Installing ngspice-jit will overwrite the original ngspice
executable and libraries.
