Installing and using ngspice - an opensource simulator

So, a good reason to convert them might be so they can be used in ngspice. But I have no observed a 1:1 conversion of the quasi-saturation parameters with this script. They need to be re-fitted. I will see if there is a simple relationship that can be included in the script.

EDIT: The quasi-saturation parameters all transfer in VBIC except for Vo. There is no value of Vo that matches the effect of Vo in LTspice's modified SGP.

I am surprised if the Ibc parameter is not in the ngspice SGP model. It's role in the model is very straightforward. Ibc and Ibe are the saturation current for the emitter and collector, where normally Is is used for both.
 
Last edited:
I figured something out about HRCF. HRCF only has an effect if Vo<1. I don't have any references that mention it.

It doesn't seem to be a parameter switch, but HRCF has no detectable effect when Vo>>1. Schematic attached.
 

Attachments

  • HCRF-vs-Vo.asc
    1.6 KB · Views: 42
Last edited:
Because we are in ngspice thread - the following mjl21194 model I converted with the script and made some parameter tweaking for Q-S:
Code:
.model mjl21194 npn (level=4 rcx=0.05 rbx=1.0e-01
+ rci=0.08 gamm=2.0e-06 vo=20 Hrcf=1.0 qco=1e-12
+ rbi=1.09204e+01 re=6.75706e-04 is=1e-10 nf=8.58602e-01 nr=9.25054e-01 fc=8.0e-01
+ cje=1.70807e-08 pe=4.0e-01 me=5.20397e-01 cjc=4.003635e-10 cjep=9.96365e-11 pc=9.5e-01
+ mc=2.38884e-01 cjcp=0 ps=7.5e-01 ms=5.0e-01 ibei=1e-12 nei=8.58602e-01
+ iben=7.00007e-12 nen=3.43749 ibci=1.926442e-11 nci=9.25054e-01 ibcn=3.25e-13 ncn=4
+ vef=4e+01 ver=4.18283393 ikf=7.6 nkf=5.0e-01 ikr=4.0 tf=1.0e-08
+ xtf=4.73046e+01 vtf=1.88154 itf=5.60261e-01 tr=1.0e-07 td=0 ea=1.11955
+ eaie=1.11955 eaic=1.11955 eane=1.11955 eanc=1.11955 xis=1.00001 xii=8.49187e-01
+ xin=8.49187e-01 kfn=0 afn=1)
Only to show Q-S capability. It is to see that beta decrease is not correct and I am sure lots of others too.

BTW: HRCF and VO are redundant. Let HRCF on Default as above to see.
 

Attachments

  • MJL21194_output.gif
    MJL21194_output.gif
    15.6 KB · Views: 173
  • ScreenHunter_21 Feb. 26 10.00.gif
    ScreenHunter_21 Feb. 26 10.00.gif
    17.7 KB · Views: 90
Default value for HRCF is infinite. If HRCF=0 is used, that is interpreted as infinite.

EDIT: The LTspice manual says the default value is infinite but I suspect it is wrong...

If I use HRCF << 1 (say hrcf=1m), then the lower quasi-saturation corners match in modified SGP and VBIC. But I can't do anything to get the regions above that to match.

I don't know about HRCF and Vo being redundant. I had to find the correct combination in order to model deep quasi-saturation in the converted 2SC3264 model.

If Vo>>1, HRCF has no effect.
If HRCF<<1, Vo has no effect.

In between both extremes you get complex behavior that is useful for modeling deep QS. But as far as I can tell nothing that is equivalent to the modified SGP Vo implementation.
 
Last edited:
Member
Joined 2011
Paid Member
There are no plans right now.
The LTSPICE device equations using these parameters are not publicly available. Maybe that they can be collected and assembled from several different sources, or one can use some guesswork.


Holger

Thx! At least one SGP parameter may be recycled converting "nk" to "nkf". Could you please verify if reading a sgp model, ngspice could allow "nk" or "nkf" as parameter name?

From ngspice-30 manual

  • NKF High current Beta rolloff exponent default: 0.5
From ltspice-XVII manual:

  • nk High current roll-off coefficient default: 0.5
Many thx, Toni
 
Member
Joined 2011
Paid Member
New script version 2.0.1-1615

Changes:


  • fix wrong silicon 'eg' parameters (eg < 1 or eg > 1.3 will be set to 1.12)
  • add version information
  • add sgp normalization for ngspice
  • better debug
  • add e.g. 3k3 conversion to 3.3k
  • write vbic level=9 per default
BR, Toni
 

Attachments

  • convert_sgp_modelfile_to_vbic_2.0.1-1615.zip
    5.6 KB · Views: 47
ASTX, I just realized that if the thermal model for VBIC is enabled, you need to disable it in order to sanity check the models for match to the SGP versions. I was quite puzzled why many transistors appeared to be in voltage breakdown in your batch process output. Thermal modeling would explain this.


BTW, the default value for Eg in LTspice is 1.1, not 1.12. I guess if the model doesn't already specify Eg then we want to give the most reasonable value.
 
Last edited:
Member
Joined 2011
Paid Member
ASTX, I just realized that if the thermal model for VBIC is enabled, you need to disable it in order to sanity check the models for match to the SGP versions...
...
Hmm how to disable thermal modeling when vbic models used?

...
BTW, the default value for Eg in LTspice is 1.1, not 1.12.
...
You are right. In ngspice the 'EG' default is 1.11 and in SGP parameterlist on page 88 of "Joerg Berkner / Kompaktmodelle fuer Bipolartransistoren" it is also 1.11.
Here it is defined as 1.166 at 300 degree Kelvin I think: 2.2.5 Temperature dependence of the energy bandgap
A bit confusing, but will change this to 1.11 default for next release. :D


current changelog:
Code:
------------------------------------------------------------------------
r1619 | astx | 2019-02-28 16:29:24 +0100 (Don, 28. Feb 2019) | 1 Zeile

fix EG parameter default to 1.11
------------------------------------------------------------------------
r1618 | astx | 2019-02-27 12:10:33 +0100 (Mit, 27. Feb 2019) | 1 Zeile

update license / copyright
------------------------------------------------------------------------
r1617 | astx | 2019-02-27 12:09:38 +0100 (Mit, 27. Feb 2019) | 1 Zeile

update license / copyright
------------------------------------------------------------------------
r1616 | astx | 2019-02-26 16:08:35 +0100 (Die, 26. Feb 2019) | 1 Zeile

keep comments
BR, Toni
 
Last edited:
1.16 is what I used in my 6145 model, so maybe 1.166 is a more accurate value overall?

What kind of transistor does 1.1 correspond to?

BTW, my emails keep failing to send.

EDIT:

I notice Linear Systems models are generally good, and provided with model fit data. They use Eg=1.17. So I think it might be a good idea to default Eg to 1.166.
 
Last edited:
Member
Joined 2011
Paid Member
Very interesting - some bjt types may be really a bit different.

I have set parameter EG to 1.12 using Bob Cordell's models to get best thermal simulations for SA20xx series - the results in thermal simulations are fixed by this parameter change.

Maybe some transistor types use different substrat/dotation whatever and this changes the EG effect. Also possible they have incorporated some self heating feature in the EG parameters. I would leave it 1.11 as well known default from literature and from the original sgp2vbic converter. In the converter code I emit a warning if EG is less as 1.0 or higher as 1.3 and set it hard to the default.

BR, Toni


P.S.: email sending should work now.
 
Member
Joined 2011
Paid Member
... just finished a ngspice test setup to compare capacitance measurements of real world with the vbic converted model of keantoken's newest 2SC6145 model.
Hopefully the setup is OK so ...

BR, Toni
 

Attachments

  • sgp_vbic_cbc_measurements.png
    sgp_vbic_cbc_measurements.png
    188.4 KB · Views: 98
Actually I'm confused, I'm not sure exactly what's going on.

One suggestion I would make is to measure capacitive reactance using only the imaginary part of the collector current, this way you can exclude leakage resistance from the measurement. So it would be something like

Xc=Vbc/Ic -> Xc=Vbc/im(Ic)

This way you may get more meaningful data in the forward biased region where the junction becomes significantly resistive.