14
\$\begingroup\$

This may not be the ideal forum for the question; please migrate if a forum is better suited for the question.

I'm looking at a component for which my attempts at locating a SPICE model online were fruitless. There are, however, datasheets of the component available for online reference. The SPICE model for a component probably draws upon the content of the datasheet for it...

So, how does one construct a SPICE model when the data-sheet is available for reference? I'm looking at LTSpice

\$\endgroup\$
  • 1
    \$\begingroup\$ Can you narrow it down a bit? What sort of component are we talking about? \$\endgroup\$ – Dave Tweed Sep 27 '12 at 3:20
  • 2
    \$\begingroup\$ Well, I'm looking at the 2SJ50 at the moment. But I meant this question to address a broader array of components from resistors, condensors, diodes, through BJT/FET atleast. \$\endgroup\$ – Everyone Sep 27 '12 at 9:13
  • 2
    \$\begingroup\$ I have the same problem as you do. These links helped me - h-renrew.de/h/spicelib/doc/index.html github.com/werner2101/spicelib \$\endgroup\$ – Pushpak Dagade Feb 2 '14 at 12:02
7
\$\begingroup\$

Depending on the component the common method is to use a .MODEL card for basic elements (transistors, diodes) or for more complex components (ICs like Opamps, Regulators, etc) you can use either a sub-circuit model (made up of basic elements) or a behavioral model (using formulas to approximate behaviour)

This can get very complicated very quickly, how complex depends on how accurate you need the component to simulate, and requires pretty detailed knowledge of the component type so you know which datasheet parameters are important, how they translate to SPICE parameters, etc.

For an example of the type of parameters you need to know about (at least some of them), in LTSpice help look under LTSpice->Circuit Elements->Bipolar Transistor and look at the Gummel-Poon parameters.
As complex as this looks, you can use the defaults for most and just alter the basics like the Bf (Beta), Vje(b-e voltage), Cje (base emitter capacitance), Cjc, etc. It's helpful to look at the various models that come with LTSpice to get an idea of things.

The help provides a lot of useful information, so read it thoroughly. Also "A guide to Circuit Simulation using PSPICE" is a half decent book with some discussion of the model parameters. Also, google for info on the models, you should find plenty - for instance, here is an excellent document on the Gummel-Poon model and how to use it.

\$\endgroup\$
  • \$\begingroup\$ I fear I may be out of my depth trying to build a model ... but Thank you (+: \$\endgroup\$ – Everyone Sep 28 '12 at 18:12
2
\$\begingroup\$

You need to be clear as to what you mean by component. Spice natively models transistors circuit elements, it is pluggable to put your own "C" models in (not all version can do this) but then you have to understand how SPICE works to make the models correctly. For larger more complex devices you can use macro-models or the more modern trend is to use Verilog-A.

\$\endgroup\$
2
\$\begingroup\$

Here is a very good tutorial on how to build a .model statement for a MOSFET: http://www.simonbramble.co.uk/lt_spice/ltspice_lt_spice_tutorial_6.htm

Just to give a little more information here: there are two paths to create a component model. One uses a .subsckt statement and the other uses a .model statement.

For basic components like a MOSFET, it is better to use a .model statement. A MOSFET can be modeled with the template statement .model XXXX VDMOS(Rg= Rd=5 Rs=1 Vto= Kp= Cgdmax= Cgdmin= Cgs= Cjo= Is= Rb= ), where the parameters Rg, Rd, Rs etc. can be determined from the data sheet and other spice files.

An example is the Fairchild FDS6680A MOSFET with a model defined by the statement .model FDS6680A VDMOS(Rg=3 Rd=5m Rs=1m Vto=2.2 Kp=63 Cgdmax=2n Cgdmin=1n Cgs=1.9n Cjo=1n Is=2.3p Rb=6m mfg=Fairchild Vds=30 Ron=15m Qg=27n).

\$\endgroup\$
  • \$\begingroup\$ Link only answers tend to be frowned upon as the links can break rendering the answer useless. Perhaps you could summarise the link or expand the answer a bit. \$\endgroup\$ – Tom Carpenter Feb 24 '16 at 4:08
  • \$\begingroup\$ @Tom - You are correct and thanks for the feedback. I've added a bit more that hopefully makes the answer more "standalone". \$\endgroup\$ – py_man Mar 23 '16 at 17:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.