¿ªÔÆÌåÓý

LTspice Genealogy - The Heritage of Simulation Ubiquity


 

Please visit this new page at the LTwiki.



It is still "under construction" and I would appreciate your
suggestions for corrections, omissions noted or improvements
needed. -- a.s.


 

--- In LTspice@..., "analogspiceman" <analogspiceman@...> wrote:

Please visit this new page at the LTwiki.



It is still "under construction" and I would appreciate your
suggestions for corrections, omissions noted or improvements
needed. -- a.s.
Hello analogspiceman,

Thanks a lot for collecting all the mile stones.

I always wonder that 1999 was the "birth" of LTspice.
I personally discovered that LTspice is a SPICE program in
the summer 2001. I still believe that I was one of the early
adopters using it as a general SPICE program. Also the
discussions about LTspice started in 2001 in the usenet, sci.electronics.design and sci.electronics.cad.

Best regards,
Helmut


 

Hello, a.s.

I'm impressed by the work you have put in on this.

I would like to add one note, which I have peripherally mentioned in the list before. Newcomers are likely to not remember or never have known what the "state of computing" was when spice began in the early 1970s. I encountered it on machines limited to punch-card input and line printer output, only. You submitted "job decks" (and some still refer to a netlist as a "spice deck"); woe unto you who dropped one of those punch card boxes! And the reams of fanfold paper needed to print out the initial node conditions plus the response of selected nodes. The response was an "ASCII graph" with an even time step. I don't know if it was computed on an even time step or if it was interpolated after the fact.

An important part of this as that as long as the machine ran FORTRAN, accepted punch card input and did line printer output, spice would run. There were no issues of "operating system" or cross-platform behavior. I saw it run on big IBM mainframes and CDC6400s.

I think that it was the graphic user interface that really pushed various implementations into one OS or another. It was simply too hard to do a two-OS implementation (for the most part).

So, maybe one of the important anchor points in your timeline ought to be when GUIs began to be made as an integral part of the various spice versions.

Thans for all your great work.

Jim Wagner
Oregon Research Electronics

On Jul 18, 2013, at 9:08 AM, analogspiceman wrote:

Please visit this new page at the LTwiki.



It is still "under construction" and I would appreciate your
suggestions for corrections, omissions noted or improvements
needed. -- a.s.


 

--- In LTspice@..., "Helmut" <helmutsennewald@...> wrote:

I always wonder that 1999 was the "birth" of LTspice.
I personally discovered that LTspice is a SPICE program in
the summer 2001. I still believe that I was one of the early
adopters using it as a general SPICE program. Also the
discussions about LTspice started in 2001 in the usenet,
sci.electronics.design and sci.electronics.cad.
A trademark information search on "LTspice" yields:

First Use Anywhere: 10/1/1999
First Use In Commerce: 10/1/1999

The Help about box shows a copyright back to 1998.

The earliest messages about SwitcherCAD III, SwitcherCAD3 or LTspice
that I could find were in June of 2001. Some trade magazine articles
about LTspice also came out in June 2001, so LTspice must have been
available in at least May 2001. Perhaps it was quietly available in
2000. I might send Mike a link to the LTwiki page and ask for his
input (or perhaps the question might be received more favorably
coming from you). :)


 

--- In LTspice@..., Jim Wagner <wagnejam99@...> wrote:

So, maybe one of the important anchor points in your timeline
ought to be when GUIs began to be made as an integral part of
the various spice versions.
From high school I remember paper tape and I briefly used punch
cards at university in engineering course work. Output was ascii
graphics on line printers as you mentioned (some students would
generate heavy patterns of text in order to generate specific
frequencies of sound in an attempt to play songs - the waste of
ink and paper irritated the operators).

Terminal graphics were supposedly introduced with SPICE 3, but
ordinary students didn't have access to CRT terminals. I think
PSpice (which used to be called uPspice, if memory serves) was
the first popular SPICE for the IMB PC and, thus, represents
the beginnings of the GUI's mainstream influence (which is one
the reasons I included it on the road to LTspice). -- a.s.


 

--- In LTspice@..., "analogspiceman" <analogspiceman@...> wrote:

--- In LTspice@..., "Helmut" <helmutsennewald@> wrote:

I always wonder that 1999 was the "birth" of LTspice.
I personally discovered that LTspice is a SPICE program in
the summer 2001. I still believe that I was one of the early
adopters using it as a general SPICE program. Also the
discussions about LTspice started in 2001 in the usenet,
sci.electronics.design and sci.electronics.cad.
A trademark information search on "LTspice" yields:

First Use Anywhere: 10/1/1999
First Use In Commerce: 10/1/1999

The Help about box shows a copyright back to 1998.

The earliest messages about SwitcherCAD III, SwitcherCAD3 or LTspice
that I could find were in June of 2001. Some trade magazine articles
about LTspice also came out in June 2001, so LTspice must have been
available in at least May 2001. Perhaps it was quietly available in
2000. I might send Mike a link to the LTwiki page and ask for his
input (or perhaps the question might be received more favorably
coming from you). :)
Hello analogspiceman,

I have sent an email to Mike and asked him about comments and corrections.

Best regards,
Helmut


 

--- In LTspice@..., Helmut <helmutsennewald@...> wrote:
--- In LTspice@..., analogspiceman wrote:
--- In LTspice@..., Helmut <helmutsennewald@> wrote:
I always wonder that 1999 was the "birth" of LTspice.
I personally discovered that LTspice is a SPICE program in
the summer 2001. I still believe that I was one of the early
adopters using it as a general SPICE program. Also the
discussions about LTspice started in 2001 in the usenet,
sci.electronics.design and sci.electronics.cad.
A trademark information search on "LTspice" yields:

First Use Anywhere: . .10/1/1999
First Use In Commerce: 10/1/1999

The Help about box shows a copyright back to 1998.

The earliest messages about SwitcherCAD III, SwitcherCAD3 or
LTspice that I could find were in June of 2001. Some trade
magazine articles about LTspice also came out in June 2001,
so LTspice must have been available in at least May 2001.
Perhaps it was quietly available in 2000. I might send Mike
a link to the LTwiki page and ask for his input (or perhaps
the question might be received more favorably coming from you).
Hello analogspiceman,

I have sent an email to Mike and asked him about comments and
corrections.
Thanks, Helmut. I went ahead and also sent him an email, but
your support is appreciated. ... What? He just now replied,
wrote that he's off to Australia, but answered with some
interesting tidbits (and will give a more complete answer when
he gets back.

"LTspice was released in Oct 1999 at a meeting of Linear
Technology's Field Application Engineers. They were then free
to give it to customers they met on a visit-by-visit basis."


 

--- In LTspice@..., "analogspiceman" <analogspiceman@...> wrote:

--- In LTspice@..., Helmut <helmutsennewald@> wrote:
--- In LTspice@..., analogspiceman wrote:
--- In LTspice@..., Helmut <helmutsennewald@> wrote:
I always wonder that 1999 was the "birth" of LTspice.
I personally discovered that LTspice is a SPICE program in
the summer 2001. I still believe that I was one of the early
adopters using it as a general SPICE program. Also the
discussions about LTspice started in 2001 in the usenet,
sci.electronics.design and sci.electronics.cad.
A trademark information search on "LTspice" yields:

First Use Anywhere: . .10/1/1999
First Use In Commerce: 10/1/1999

The Help about box shows a copyright back to 1998.

The earliest messages about SwitcherCAD III, SwitcherCAD3 or
LTspice that I could find were in June of 2001. Some trade
magazine articles about LTspice also came out in June 2001,
so LTspice must have been available in at least May 2001.
Perhaps it was quietly available in 2000. I might send Mike
a link to the LTwiki page and ask for his input (or perhaps
the question might be received more favorably coming from you).
Hello analogspiceman,

I have sent an email to Mike and asked him about comments and
corrections.
Thanks, Helmut. I went ahead and also sent him an email, but
your support is appreciated. ... What? He just now replied,
wrote that he's off to Australia, but answered with some
interesting tidbits (and will give a more complete answer when
he gets back.

"LTspice was released in Oct 1999 at a meeting of Linear
Technology's Field Application Engineers. They were then free
to give it to customers they met on a visit-by-visit basis."
Hello analogspiceman,

Now I know why I have seen LTspice only later in 2001. Maybe
our FAE overlooked my interest in LTspice. :-)

Best regards,
Helmut


 

--- In LTspice@..., "Helmut" <helmutsennewald@...> wrote:

Now I know why I have seen LTspice only later in 2001.
Maybe our FAE overlooked my interest in LTspice. :-)
Hi Helmut,

I just corrected a major omission (our LTspice group!):


 

--- In LTspice@..., "Helmut" <helmutsennewald@...> wrote:



--- In LTspice@..., "analogspiceman" <analogspiceman@> wrote:

--- In LTspice@..., Helmut <helmutsennewald@> wrote:
(snip)
"LTspice was released in Oct 1999 at a meeting of Linear
Technology's Field Application Engineers. They were then free
to give it to customers they met on a visit-by-visit basis."
Hello analogspiceman,

Now I know why I have seen LTspice only later in 2001. Maybe
our FAE overlooked my interest in LTspice. :-)

Best regards,
Helmut
The old W98 installation on this machine has files in the SWCAD directory, probably copied from an installation CD, that have 'modified' time stamps of Oct'99. This is likely when the CD contents originated.

That would have been probably the only time a CD install was performed - updates being from the web. The V1.001 web installer is in a folder dated Oct 2002.

Mind you, there are spice era files from (likely) elsewhere that predate these - mostly libraries. The same file type from a Basso Pspice CD install is marked Nov98.

RL


John Woodgate
 

In message <kseg1d+mptm@...>, dated Sat, 20 Jul 2013, legg@... writes:

Mind you, there are spice era files from (likely) elsewhere that predate these - mostly libraries. The same file type from a Basso Pspice CD install is marked Nov98.
It's normally completely impossible to know when anything really started. I know that an ex-colleague was doing simulations at Kings College, London of audio circuits using FORTRAN with matrices no later than early 1964 (because that's when the lab caught fire).
--
OOO - Own Opinions Only. See www.jmwa.demon.co.uk
Why is the stapler always empty just when you want it?

John Woodgate, J M Woodgate and Associates, Rayleigh, Essex UK


 

The grandfather of all spice programs was a phd thesis in one of the California universities.
it was even called spice which indicated a ( S? Program for Integrated Circuit Engineering.)
it's primary purpose was mos circuits as I recall. It was mid to late 60's I think.

On 7/20/2013 1:16 PM, John Woodgate wrote:
In message <kseg1d+mptm@...>, dated Sat, 20 Jul 2013,
legg@... writes:

Mind you, there are spice era files from (likely) elsewhere that
predate these - mostly libraries. The same file type from a Basso
Pspice CD install is marked Nov98.
It's normally completely impossible to know when anything really
started. I know that an ex-colleague was doing simulations at Kings
College, London of audio circuits using FORTRAN with matrices no later
than early 1964 (because that's when the lab caught fire).


 



Simulation Program with Integrated Circuit Emphasis

-----Original Message-----
From: LTspice@... [mailto:LTspice@...] On Behalf Of
Henry McCall
Sent: Saturday, July 20, 2013 1:27 PM
To: LTspice@...
Subject: Re: [LTspice] Re: LTspice Genealogy - The Heritage of Simulation
Ubiquity

The grandfather of all spice programs was a phd thesis in one of the
California universities.
it was even called spice which indicated a ( S? Program for Integrated
Circuit Engineering.)
it's primary purpose was mos circuits as I recall. It was mid to late
60's I think.


On 7/20/2013 1:16 PM, John Woodgate wrote:
In message <kseg1d+mptm@...>, dated Sat, 20 Jul 2013,
legg@... writes:

Mind you, there are spice era files from (likely) elsewhere that
predate these - mostly libraries. The same file type from a Basso
Pspice CD install is marked Nov98.
It's normally completely impossible to know when anything really
started. I know that an ex-colleague was doing simulations at Kings
College, London of audio circuits using FORTRAN with matrices no later
than early 1964 (because that's when the lab caught fire).


------------------------------------

Yahoo! Groups Links


 

--- In LTspice@..., "Dick Benson" <w1qg@...> wrote:

The grandfather of all SPICE programs was a PhD thesis in one
of the California universities. It was even called SPICE, which
indicated a (S? Program for Integrated Circuit Engineering).
It's primary purpose was MOS circuits as I recall. It was mid
to late 60's I think.
A sincere thanks for your input, but most of what you write is
only vaguely in the neighborhood of being factual (too bad you
didn't bother to read the LTwiki page originally linked before
posting so much misinformation). Your post may be a good example
of how whisper circles are able to so quickly turn a true story
into complete fantasy as it travels from person to person around
the circle. For a bullet-list summary of the real facts, see:



The *father* of all SPICE programs was called CANCER, Computer
Analysis of Nonlinear Circuits, Excluding Radiation (SPICE was
its immediate progeny).

SPICE is an acronym for "Simulation Program with IC Emphasis."

The first version of SPICE included built-in models for diodes,
bipolar transistors, MOSFETs, and JFETs. MOSFET devices were
not part of the original CANCER/SPICE code, but were only added
to facilitate the teaching of a class. *Bipolar devices* were
the original primary focus of SPICE. However, not too long after
MOS devices were added to the mix, they did indeed take over the
focus of device model development at Berkeley.

SPICE was neither developed nor released in the mid to late 60s.
CANCER began in 1969, but it was at least 1970 before the SPICE
acronym was conceived and work on the code was started. (But
thanks for playing.)

Segueing back to the history of LTspice, I just found a very in-
formative article that appeared in Electronic Design from October
of last year. In the middle, it has a long section in which Mike
Engelhardt recounts in a level of detail that I haven't seen
elsewhere, the technical history of the development of LTspice.



Amazingly, one of the links at the end of this article is to one
of the first widely publicized announcements of LTspice (which was
SwitcherCAD III back then) and which appeared in Electronic Design
in May of 2001. (I'll have to link this from the wiki.)


 

--- In LTspice@..., "analogspiceman" wrote:

Segueing back to the history of LTspice, I just found a very in-
formative article that appeared in Electronic Design from October
of last year. In the middle, it has a long section in which Mike
Engelhardt recounts in a level of detail that I haven't seen
elsewhere, the technical history of the development of LTspice.

Here's the pertinent excerpt:

"Free Downloadable Spice Tools Capture And Simulate Analog Circuits"
by Don Tuite, Electronic Design, Oct. 23, 2012 (web edition).

How Engelhardt Made LTspice

Engelhardt is essentially the godfather of Linear Technology's freeware LTspice, and he has been supporting it and making it faster for 15 years. It all started because Bob Swanson and Bob Dobkin asked for a promotional tool. They got rather more than they bargained for because Engelhardt is the kind of engineer who obsesses about doing the job as thoroughly as possible. In this case, he wanted to make LTspice the world's fastest.

He also wanted to give Linear's chip designers the opportunity to make the best models. He points to Linear's current-mode switching supplies as an example. "A current-mode switch-mode power supply is basically a glorified flip-flop," he begins. "Something sets the flop, turns on a power switch, and a current is monitored, and when a condition is met, the thing is reset." As long as the designer gets that flip-flop working correctly, gets the "reset" condition correctly, and has the right transfer function between the compensation of voltage and peak current, "basically everything else is a detail."

This approach led Engelhardt to conclude that behavioral models are more useful than transistor-level models. "When we make analog models, we can avoid a bunch of numerical difficulties. When we get done setting up the system simultaneous equations that need to be solved, we have many fewer non-zero elements," he says. That makes it possible to solve the equations more rapidly.

Sometimes, this comes down to a black-box approach. Returning to that switching-supply example, Engelhardt says, "The main flip-flop of current-mode switcher is basically about a dozen gates. That's because you have to accommodate a maximum duty cycle and you want to set it with an edge and reset it with an analog condition." In terms of a fine-granularity model, implementation typically takes about a dozen gates. Instead of modeling that, Linear has a native circuit element that does that, and its behavioral model simulates faster.
"World's Fastest Spice"

Engelhardt says his approach to accelerating Spice evolved in an interesting fashion, and it required breaking some rules. "In the '70s when you were writing a numerical solver, and you were being disciplined about it, you would always keep firmly in mind that the fastest way to complete something was to not compute it all but to put it in a lookup table," he says, but that wasn't for him.

"That's the worst thing you can do. The computer CPU is hundreds of times faster than memory. Every time you use a lookup table, you have to fire those transistors in the RAM. You have to keep everything in cache," he says.

Surprisingly for someone who is talking about designing a Spice to run on PCs, Engelhardt turned to Seymour Cray for inspiration. Engelhardt says that matrix solving is a classic application of parallel processing.

"The Cray was about being able to take a row of a matrix, multiplying it all by one number and subtracting it from a number of rows," he says. Initially, in fact, Engelhardt had written a multi-threaded matrix solver and found it hundreds of times slower than a single-threaded matrix solver. So, he analyzed the actual time required to execute all of the instructions.

He found that the timing of the different threads was, in a sense, chaotic. It turns out to be better to use one thread than multiple threads because the timing between threads means it's impossible to get any speed up from using multiple threads. That insight sent him to the literature about multi-threaded sparse-matrix solvers, which confirmed what he was finding out.

"You can implement a multi-threaded solver that runs faster than a single-threaded solver if the matrix is exceedingly this sparse. But to solve the circuit matrix for a big IC, only a few parts out of a thousand are non-zero," he says. One problem was selling that concept in an engineering environment that expects a multi-threaded solver, so he told people that it was a multi-threaded solver, but the matrix itself was single threaded.

That wasn't the end, though. He then thought he could write a faster matrix solver. Engelhardt's next discovery was related to the number of clock cycles it takes to perform a floating-point operation. Benchmarking the kind of 3-GHz processors that were in common use, he figured each clock was 300 ps, and three of them were required to execute one floating-point operation.

"After the operation has been completed, if there's a long pipeline, you've got to wait to give the result to the processor at the end of the pipeline," he says. With Engelhardt's approach, the processor has to sit there and twiddle its thumbs for 900 ps before it can multiply two floating-point numbers to yield a 64-bit accurate result. He reckons that if you're counting floating-point operations, this makes a multithreaded architecture run at probably something like only 10% of its theoretical speed. So, he found a way to fix that¡ªanother technique based on the wise use of memory. The only important thing, he says, is how well you use the cache.

"When you're coding in a high-level language, much of the time when we refer to `X,' it's not X, it's the address of X. And, the programming language doesn't know where X is stored. So you have to ping the transistors on the motherboard a few times to get the actual bit pattern that's your double-position number. And that's unavoidable," he explains.

But here's the trick: "After you know where your data is, if you to look at all your addresses, at that point you could call an assembly language program that would access the data itself, keeping the pipeline full. And that's what LTspice does."

Effectively, after it loads all the data, LTspice finds a strategy for pivoting the matrix and solving it. Then it accesses the assembly language program, assembles it, links it, and just calls each address to solve the matrix. "And that sped up the process by a factor of three," he says.

When experienced circuit designers began to download LTspice and use it, they immediately noticed the difference from PSpice. They didn't see it immediately in terms of efficiency, but it was noticeably faster. However, Engelhardt also notes that LTspice is for circuit design. It's not intended to compete with an IC design tool such as Cadence's HSPICE. On the other hand, it's free, versus $1500.

Of course, the implementation of the modeling is only part of the story. The other part is the models. Engelhardt says that modeling power MOSFETs is tricky. "Power MOSFETs are hard to simulate in most Spice programs because a power MOSFET is a vertical structure. It has a drain on the back of the die. In contrast, in modeling an IC, everything is lateral and on the same side of the silicon," he says.

"We made a vertical MOSFET model where the gate and drain can be different sizes, and the channel is in between them, with the capacitance between the gate and the drain being dependent on whether the channel is enhancement or depletion. That charge model doesn't exist in other Spice programs," he says.

He says it's important to have that capability. The need for it became obvious when it became clear that with other Spice programs, "Switching waveforms from power MOSFETs didn't match what you see on the bench, and that's because this gate-drain capacitance introduces a Miller effect that dominates the switching characteristics," he says.


Tony Casey
 

<snip>
When experienced circuit designers began to download LTspice and use it, they immediately noticed the difference from PSpice. They didn't see it immediately in terms of efficiency, but it was noticeably faster. However, Engelhardt also notes that LTspice is for circuit design. It's not intended to compete with an IC design tool such as Cadence's HSPICE. On the other hand, it's free, versus $1500.
</snip>
Whilst the Electronic Design article was interesting and informative, it was a pity it was also inaccurate, and not sufficiently proof-read, as pointed out by several readers at the time. HSPICE is, of course, sold by Synopsys, not Cadence. I'd also be impressed if anyone could obtain it for $1500.

Regards,
Tony


Steven
 

You might find this interesting.





Some interviews with early SPICE developers and pictures of them. I don't know if it adds anything to your wiki, but the predicessors to SPICE such as ECAP from IBM (~1965) and SCEPTRE led to the developement of more generally useful simulators.

--- In LTspice@..., "analogspiceman" <analogspiceman@...> wrote:

Please visit this new page at the LTwiki.



It is still "under construction" and I would appreciate your
suggestions for corrections, omissions noted or improvements
needed. -- a.s.


 

--- In LTspice@..., "Steven" <swkunkle@...> wrote:

You might find this interesting.

Thanks, but that was one of the first pages I found when I first
started to research the history of SPICE.

Some interviews with early SPICE developers and pictures of them.
Yes, it *is* a good reference and worth a read. I really should
add it and some more of the best such links to the wiki.

I don't know if it adds anything to your wiki, but the
predecessors to SPICE such as ECAP from IBM (~1965) and SCEPTRE
led to the development of more generally useful simulators.
Yeah, and so did a pencil & paper and then the slide rule. :)
(You gotta draw the line somewhere.)

CANCER was really the first true progenitor of SPICE (the others
you mentioned were just distant relatives without a very good
genetic match, in my opinion). CANCER really was the first circuit
simulator to utilize sparse matrix techniques and integrated DC
operating point analysis, small-signal AC analysis and transient
analysis all into one package.


 

dear A.S.
I believe my answer was correct with respect to programs labelled "SPICE".
And you can research too.
Hank McCall

On 7/22/2013 11:45 AM, analogspiceman wrote:
--- In LTspice@..., "analogspiceman" wrote:

Segueing back to the history of LTspice, I just found a very in-
formative article that appeared in Electronic Design from October
of last year. In the middle, it has a long section in which Mike
Engelhardt recounts in a level of detail that I haven't seen
elsewhere, the technical history of the development of LTspice.

Here's the pertinent excerpt:

"Free Downloadable Spice Tools Capture And Simulate Analog Circuits"
by Don Tuite, Electronic Design, Oct. 23, 2012 (web edition).

How Engelhardt Made LTspice

Engelhardt is essentially the godfather of Linear Technology's freeware LTspice, and he has been supporting it and making it faster for 15 years. It all started because Bob Swanson and Bob Dobkin asked for a promotional tool. They got rather more than they bargained for because Engelhardt is the kind of engineer who obsesses about doing the job as thoroughly as possible. In this case, he wanted to make LTspice the world's fastest.

He also wanted to give Linear's chip designers the opportunity to make the best models. He points to Linear's current-mode switching supplies as an example. "A current-mode switch-mode power supply is basically a glorified flip-flop," he begins. "Something sets the flop, turns on a power switch, and a current is monitored, and when a condition is met, the thing is reset." As long as the designer gets that flip-flop working correctly, gets the "reset" condition correctly, and has the right transfer function between the compensation of voltage and peak current, "basically everything else is a detail."

This approach led Engelhardt to conclude that behavioral models are more useful than transistor-level models. "When we make analog models, we can avoid a bunch of numerical difficulties. When we get done setting up the system simultaneous equations that need to be solved, we have many fewer non-zero elements," he says. That makes it possible to solve the equations more rapidly.

Sometimes, this comes down to a black-box approach. Returning to that switching-supply example, Engelhardt says, "The main flip-flop of current-mode switcher is basically about a dozen gates. That's because you have to accommodate a maximum duty cycle and you want to set it with an edge and reset it with an analog condition." In terms of a fine-granularity model, implementation typically takes about a dozen gates. Instead of modeling that, Linear has a native circuit element that does that, and its behavioral model simulates faster.
"World's Fastest Spice"

Engelhardt says his approach to accelerating Spice evolved in an interesting fashion, and it required breaking some rules. "In the '70s when you were writing a numerical solver, and you were being disciplined about it, you would always keep firmly in mind that the fastest way to complete something was to not compute it all but to put it in a lookup table," he says, but that wasn't for him.

"That's the worst thing you can do. The computer CPU is hundreds of times faster than memory. Every time you use a lookup table, you have to fire those transistors in the RAM. You have to keep everything in cache," he says.

Surprisingly for someone who is talking about designing a Spice to run on PCs, Engelhardt turned to Seymour Cray for inspiration. Engelhardt says that matrix solving is a classic application of parallel processing.

"The Cray was about being able to take a row of a matrix, multiplying it all by one number and subtracting it from a number of rows," he says. Initially, in fact, Engelhardt had written a multi-threaded matrix solver and found it hundreds of times slower than a single-threaded matrix solver. So, he analyzed the actual time required to execute all of the instructions.

He found that the timing of the different threads was, in a sense, chaotic. It turns out to be better to use one thread than multiple threads because the timing between threads means it's impossible to get any speed up from using multiple threads. That insight sent him to the literature about multi-threaded sparse-matrix solvers, which confirmed what he was finding out.

"You can implement a multi-threaded solver that runs faster than a single-threaded solver if the matrix is exceedingly this sparse. But to solve the circuit matrix for a big IC, only a few parts out of a thousand are non-zero," he says. One problem was selling that concept in an engineering environment that expects a multi-threaded solver, so he told people that it was a multi-threaded solver, but the matrix itself was single threaded.

That wasn't the end, though. He then thought he could write a faster matrix solver. Engelhardt's next discovery was related to the number of clock cycles it takes to perform a floating-point operation. Benchmarking the kind of 3-GHz processors that were in common use, he figured each clock was 300 ps, and three of them were required to execute one floating-point operation.

"After the operation has been completed, if there's a long pipeline, you've got to wait to give the result to the processor at the end of the pipeline," he says. With Engelhardt's approach, the processor has to sit there and twiddle its thumbs for 900 ps before it can multiply two floating-point numbers to yield a 64-bit accurate result. He reckons that if you're counting floating-point operations, this makes a multithreaded architecture run at probably something like only 10% of its theoretical speed. So, he found a way to fix thatanother technique based on the wise use of memory. The only important thing, he says, is how well you use the cache.

"When you're coding in a high-level language, much of the time when we refer to `X,' it's not X, it's the address of X. And, the programming language doesn't know where X is stored. So you have to ping the transistors on the motherboard a few times to get the actual bit pattern that's your double-position number. And that's unavoidable," he explains.

But here's the trick: "After you know where your data is, if you to look at all your addresses, at that point you could call an assembly language program that would access the data itself, keeping the pipeline full. And that's what LTspice does."

Effectively, after it loads all the data, LTspice finds a strategy for pivoting the matrix and solving it. Then it accesses the assembly language program, assembles it, links it, and just calls each address to solve the matrix. "And that sped up the process by a factor of three," he says.

When experienced circuit designers began to download LTspice and use it, they immediately noticed the difference from PSpice. They didn't see it immediately in terms of efficiency, but it was noticeably faster. However, Engelhardt also notes that LTspice is for circuit design. It's not intended to compete with an IC design tool such as Cadence's HSPICE. On the other hand, it's free, versus $1500.

Of course, the implementation of the modeling is only part of the story. The other part is the models. Engelhardt says that modeling power MOSFETs is tricky. "Power MOSFETs are hard to simulate in most Spice programs because a power MOSFET is a vertical structure. It has a drain on the back of the die. In contrast, in modeling an IC, everything is lateral and on the same side of the silicon," he says.

"We made a vertical MOSFET model where the gate and drain can be different sizes, and the channel is in between them, with the capacitance between the gate and the drain being dependent on whether the channel is enhancement or depletion. That charge model doesn't exist in other Spice programs," he says.

He says it's important to have that capability. The need for it became obvious when it became clear that with other Spice programs, "Switching waveforms from power MOSFETs didn't match what you see on the bench, and that's because this gate-drain capacitance introduces a Miller effect that dominates the switching characteristics," he says.




------------------------------------

Yahoo! Groups Links




 

--- In LTspice@..., Henry McCall <hank@...> wrote:

I believe my answer was correct with respect to programs
labelled "SPICE".
Nah, as far as I know, most of what you wrote was largely bogus
and not really based on historical fact. I stand by the history
of SPICE as presented on the LTwiki. However, if you can cite and
link credible sources that indicate a different or earlier use of
the term SPICE with regard to electronic circuit simulation, then
I will be happy to modify the LTwiki page accordingly (and issue
my humble apologies as well).

If you have more accurate information, please present it and you
will have my thanks as I truly am very interested in getting
LTspice's heritage right.