Winfield said:
Inadequate and incomplete models, of course. And unknown
or unaccounted-for parasitic elements in the circuit.
Happens all the time out there in the real world (i.e.,
the world that's not IC design).
The solution is a painful process to characterize the part,
etc., and create a spice model or subcircuit that matches
over the range of interest. I also find myself making test
PCBs, and taking inductance, capacitance etc. measurements
on that. Lots of bench work, serious bench equipment, lots
of computer work, plenty of knowledge and experience about
what to look for. Given the commonplace absence of this
approach, it's rather easy to throw stones at "spice".
But given the careful, time-consuming approach, I find
spice extremely useful in my push-the-envelope projects.
Spice is a reasonable general-purpose program for solving systems of
nonlinear ordinary differential equations. There are some systems that
no program is going to be able to solve, but they're quite rare in
applications. Thus just about anything that can be modelled accurately
with a set of coupled ODEs can be simulated accurately with Spice.
On the other hand, not everything can be modelled with ODEs, not even
every circuit. Some better known non-ODE things, e.g. transmission
lines, have been put into Spice by hand. (A transmission line's circuit
properties aren't given by an ODE because they're nonlocal, i.e. the
output undergoes a true time delay.)
Other classes of problem that can't be modelled as systems of ODES are
transport equations--e.g. the Boltzmann equation for electron transport,
or any problem that involves convective motion, such as the air in a
heat sink.
It isn't great at multiple scale analysis, either, so for instance it
would be very poor at modelling the turn-on behaviour of a laser diode,
in which time scales from sub-femtosecond (the E & H fields) to hundreds
of milliseconds (the thermal transient) all contribute very
significantly and nonlinearly. There are codes for this kind of
problem, but Spice isn't one of them--it has to follow each cycle
laboriously, because a linearized AC analysis won't get the right answer.
And anyway, Pease's main complaint is that people use (generally poor)
computer analyses as a substitute for thought--and have tried to beat
him up with the results over the years. Most of the rest of his
posturing is for fun, I think. You can't really make a serious critique
of computer simulation by throwing a computer off the roof of the NSC
parking garage. Widlar envy, perhaps.
Cheers,
Phil Hobbs