RE: [ng-spice-devel] Re: snapshot/resimulate


To "'ng-spice-devel@ieee.ing.uniroma1.it'" <ng-spice-devel@ieee.ing.uniroma1.it>
From "Gillespie, Alan" <Alan.Gillespie@analog.com>
Date Wed, 4 Apr 2001 17:12:59 +0100
Delivered-To mailing list ng-spice-devel@ieee.ing.uniroma1.it
Mailing-List contact ng-spice-devel-help@ieee.ing.uniroma1.it; run by ezmlm
Reply-To ng-spice-devel@ieee.ing.uniroma1.it


> Mr. Steve Hamm writes:
> > This would not speed up viewing in general.  Simulations of 
> very large
> > circuits may take minutes per timepoint -- storing the data would be
> > much more efficent.  PLL simulations can be sort of the opposite
> >
>       i don't think this invalidates my arguments.  and i agree,
>       this doesn't speed up viewing in general.  but it may make
>       viewing tractable.
> 
>       in my experience as a chip designer, simulators are used both
>       as initial design creation tools, and later, as 
> verification tools.
>       these two modes place sufficiently distinct demands on 
> the simulation
>       system that many simulators don't perform well in both modes.

It sounds like Ed has to use spice in similar situations to me,
i.e. for full chip simulations of complex clocked "discrete time"
systems. These are the kinds of systems which really tax the
post-processor/simulator combination and strain disk space.

Ed's idea is interesting, but Steve's right that each timepoint
would need to be stored as two (or more) complete snapshots,
to get both the voltage/current state and the dV/dI state, in
order to let spice carry on accurately from where it left off.

Although, I remember thinking about it once before, and coming
to the conclusion that if you know all the voltages at every
node, then you can calculate all the currents in the devices.
From that you can get all the current imbalances at each node,
and from the capacitances between nodes you can work out the
rate of change of voltage on the nodes. Inductor currents need
to be saved as well, since you can't calculate that from the DC
levels. I've a feeling that floating voltages sources might
also need their currents stored, but maybe not, since, like
grounded voltage sources, you know that the rate of change
of voltage across them is zero.

Charge stored in devices, I think, should also depend only
on the DC voltages on the device, not on it's history. Ah,
I think excess phase in PNP's is an example where history
matters.

>       for example, might have 100 active nodes and a million 
> stable nodes...,
>       and, i think that the speed of 'spice' is a function of 
> ckt activity,
>       after initial convergence).

Unfortunately, spice recalculates the whole circuit even if
only one node is changing. It helps a bit if most of the circuit
is stable, but not much.

>       in my experience designing pll's, and other complex 
> analog circuits
>       with calibration state (eg, self calibrating a/d and 
> d/a converters),
>       this store/resimulate paradigm would be exceptionally 
> usefull.

And for debugging purposes, it may not be essential to start
from exactly the same state, although it may be annoying if
you see something go wrong in your big simulation, only to
work perfectly when you "zoom in" on the problem area. I've
had that happen before, when I used to use the voltages
stored in probe files to start a new simulation with the
.IC card.

Cheers,

Alan

Partial thread listing: