[sci.electronics] Information on the implementation of "Spice"

cgs@umd5.UUCP (02/18/87)

Can anyone steer me to references, or can explain the general principles
used in the "Spice" program to calculate solutions of arbitrary circuits?
That is, what sort of abstract models/algorithms are used so the program
can analyze circuits? I'm not asking how a person goes about analyzing
a circuit, I'm asking how does one program a computer to do it for such
wide varieties and levels of complication that Spice calculates? Programming
a computer to analyze specific, predetermined topologies is not the same
thing as Spice, either.
I'm asking you folks on behalf of my immediate employer for the purposes
of his continued education (and my own as well), in case anyone wants to know.
ad-thanks-vance!
-- 
--==---==---==--
.. The jaws that bite, the claws that catch! ..
   ARPA: cgs@umd5.UMD.EDU     BITNET: cgs%umd5@umd2
   UUCP: ..!seismo!umd5.umd.edu!cgs

ken@rochester.UUCP (02/19/87)

I'm trying hard to remember what they taught me as an EE.

Any EE worth his salt can tell you that the analysis of circuits can
done by replacing the circuit components with the equivalent mesh of
resistances, impedances, generators, etc. For DC you must use the DC
equivalent. For AC you must use the appropriate model for the
frequencies you are working at. Then you formulate the mesh as a system
of linear equations, and solve. The linearity assumption is important.
If this doesn't hold well, you must use better models.

I'm not saying this is the way it is done in Spice, but it is one
general approach. I leave advanced comments for those who know better.

Check your local engineering library for books on Computer Analysis of
Circuits. I remember books on ECAP and other venerable programs.  I'm
sure the literature has been updated since then.

	Ken

keithl@vice.UUCP (02/20/87)

In article <1450@umd5>, cgs@umd5 (Chris Sylvain) writes:
> Can anyone steer me to references, or can explain the general principles
> used in the "Spice" program to calculate solutions of arbitrary circuits?
> That is, what sort of abstract models/algorithms are used so the program
> can analyze circuits?

Call the publications office of the Electronics Research Lab at UC Berkeley,
where Spice was developed under Dr. Don Pederson.  They probably still have
some copies of the reports that describe how Spice works.  They can probably
also point you at some of the early thesis work that went into Spice.  

-- 
Keith Lofstrom
MS 59-316, Tektronix, PO 500, Beaverton OR 97077  (503)-627-4052

klein@gravity.UUCP (02/20/87)

In article <1450@umd5>, cgs@umd5 (Chris Sylvain) writes:
> Can anyone steer me to references, or can explain the general principles
> used in the "Spice" program to calculate solutions of arbitrary circuits?

Possibly the best reference on SPICE and its algorithms is Larry Nagel's
PhD thesis, available from UC Berkeley's Electronics Research Lab:

SPICE2: A Computer Program to SImulate Semiconductor Circuits
Lawrence W. Nagel
Memorandom No. ERL-M520
May 9, 1975.
--
	Mike Klein		klein@sun.{arpa,com}
	Sun Microsystems, Inc.	{ucbvax,hplabs,ihnp4,seismo}!sun!klein
	Mountain View, CA