3

So, I am currently looking at the ways transistors change their parameters with temperature according to SPICE for a thorough investigation of synthesizer VCO exponential converter. Particularly, the Is saturation according to this SPICE description varies with temperature like this:

Is temperature dependence in SPICE

What troubles me is the 1/(T1-T0) term in the exponent. Say, the saturation current is measured at 25 degrees celsius, then, when we try to determine the Is at that temperature we get Exp[1/0], which is an obvious singularity. At temperatures slightly lower than 25 degrees this term is zero, at temperatures slightly higher it tends to infinity. What am I understanding wrong here or is the formula just wrong? If so, what's the right one?

sx107
  • 945
  • 5
  • 24
  • 3
    The units of the equation cited don't make sense. The units should cancel in the expression within the exp() function. And they do not in the case you show. However, this is the equation I'm familiar with and the units ***do*** cancel in it:$$I_{\text{SAT}\left(T\right)}=I_{\text{SAT}\left(T_\text{nom}\right)}\cdot\left[\left(\frac{T}{T_\text{nom}}\right)^{3}e^{\frac{E_g}{k}\cdot\left(\frac{1}{T_\text{nom}}-\frac{1}{T}\right)}\right]$$ – jonk Apr 10 '22 at 03:53
  • 3
    What I provided follows from ideas related to entropy. When system 1 gives energy \$\text{d}U\$ to system 2 the loss diminishes the available states in system 1 and increases the available states in system 2. The net change in entropy of system (1 + 2) is \$\text{d}S= \frac{\partial \,S_1}{\partial U}\left(-\text{d}U\right) + \frac{\partial \,S_2}{\partial U}\text{d}U\$. Set \$\frac{\partial \,S}{\partial U} = \frac{1}{T}\$. Now \$\text{d}S= \left(\frac1{T_{_2}} - \frac1{T_{_1}}\right)\text{d}U\$. Search for the Boltzmann Factor in the context of statistical thermodynamics. – jonk Apr 10 '22 at 04:02
  • @jonk Thank you very much as well! Is there, by any chance, a good modern SPICE documentation with models description? Only things I have found are the original SPICE2 paper and this documentation I linked in my post, which is not only sparse, but, apparently, is also wrong. – sx107 Apr 10 '22 at 12:48
  • 2
    What I learned much from is [Ian Getreu's "*Modeling the Bipolar Transistor*."](https://www.lulu.com/en/us/shop/ian-getreu/modeling-the-bipolar-transistor/paperback/product-195g6k2j.html?page=1&pageSize=4). It was originally published via Tektronix. But Ian (and a friend of mine and I who get a little mention in the book) worked to make it available again. (I get nothing from the sales. Ian is the only recipient other than Lulu if you make a purchase.) The book is unique in its coverage, my opinion. There's nothing like it, elsewhere. – jonk Apr 10 '22 at 16:30
  • 1
    Ian's book gets the equation right. It's also chock-full, listing out pretty much all of the relevant papers (about 75 of them) that went into creating the models. It covers the derivations as well as how to develop test procedures to measure various parameters. It does *not* cover statistical thermodynamics, though. For that, there are other references. – jonk Apr 10 '22 at 16:32
  • 1
    I’m impressed by that book. Thank you for mentioning it! Worth every penny it looks like! – Kuba hasn't forgotten Monica Apr 11 '22 at 13:47
  • @jonk Thank you very much! I would take a look as soon as I find a way to order one. – sx107 Apr 14 '22 at 00:06
  • 2
    @Kubahasn'tforgottenMonica It ***is*** worth every penny. That's why I worked so hard to get it re-published. I had a copy from when I worked at Tek. But I wasn't going to give my copy away!!! I wanted some way to allow others to gain access to it. Ian worked with Tektronix and they gave him the rights. And that launched the effort. Once in a while, Ian writes to me to say he "owes me lunch." ;) I went with him to Barrie Gilbert's funeral more than a year ago. – jonk Apr 14 '22 at 00:44
  • @sx107 If you have difficulties (for example, if Rubles are hard to use at Lulu right now) feel free to ask if there's something that can be arranged. I may find a way to try and help. – jonk Apr 14 '22 at 00:46
  • @jonk I really do appreciate your helpfulness, but I already have found the PDF for it. Trying to find one for the book SteKulov mentioned, since I am interested in the actual models SPICE uses - I am trying to make an analytical solution to one schematic and double-check myself with SPICE simulations. And usually I get confused since information on the exact models used in SPICE is rather sparse apart from reading the source code. – sx107 Apr 15 '22 at 00:59

1 Answers1

3

The documentation simply got it wrong. It's old and probably nobody cared enough to fix it, assuming they spotted the mistake. The units don't work out, the possibility of a 0 in the denominator shouldn't be there either. There's no singularity.

According to Berkley SPICE 3f5 source code, the equation should read:

$$ \begin{aligned} V_T(T) &= T \frac{k}{q(1{\rm\,V})} \\ I_S(T) &= I_S(T_0) \left[\frac{T}{T_0}\right]^3 \exp \left[ \frac{E_g}{V_T(T)} \left(\frac{T}{T_0} - 1\right) \right]. \end{aligned} $$

The code involved, edited for readability, taken from src/lib/dev/bjt/bjttemp.c, is:

vt = here->BJTtemp * CONSTKoverQ;
ratlog = log(here->BJTtemp/model->BJTtnom);
ratio1 = here->BJTtemp/model->BJTtnom -1;
factlog = ratio1 * model->BJTenergyGap/vt + model->BJTtempExpIS*ratlog;
factor = exp(factlog);

The 1V factor isn't written explicitly in the source code, but is required to get the units correct. Numerically it makes no difference. Multiplying by 1 is a no-op, not even worth putting in the source code. Back then, compilers might have had trouble optimizing such a multiplication-by-one out.

Reorganizing things a bit:

$$ \begin{aligned} I_S(T) &= I_S(T_0) \left[\frac{T}{T_0}\right]^3 \exp \left[ \frac{E_g q (1{\rm\,V})}{k T} \left(\frac{T}{T_0} - 1\right) \right] \\ &= I_S(T_0) \left[\frac{T}{T_0}\right]^3 \exp \left[ \frac{E_g q (1{\rm\,V})}{k} \left(\frac{1}{T_0} - \frac{1}{T}\right) \right] \\ \end{aligned} $$

Where, from src/include/const.h and src/lib/dev/bjt/bjtsetup.c we get:

$$ \begin{aligned} q &= 1.6021918\cdot{10}^{-19}{\rm\,C} \\ k &= 1.3806226\cdot{10}^{-23}{\rm\,J\cdot K^{-1}} \\ E_g &= 1.11{\rm\,eV} \\ \end{aligned} $$

This explains the "mysterious" \$E_g\cdot q(1{\rm\,V})\$ product in the formula: it converts \$E_g\$ customarily given in electron-Volts to Joules, to match the SI units of the Boltzmann constant value used.

In SI units, the formula becomes, simply:

$$ \begin{aligned} I_S(T) &= I_S(T_0) \left[\frac{T}{T_0}\right]^3 \exp \left[ \frac{E_g}{k} \left(\frac{1}{T_0} - \frac{1}{T}\right) \right], \\ \end{aligned} $$

just as jonk had commented.

  • Thank you very much! Is there, by any chance, a good modern SPICE documentation with models description? Only things I have found are the original SPICE2 paper and this documentation I linked in my post, which is not only sparse, but, apparently, is also wrong. – sx107 Apr 10 '22 at 12:40
  • The only authoritative documentation is the papers where the models were published. There may be books but I doubt they are comprehensive enough. Basically, if you want to implement SPICE that’s practical, there’s no easy all-in-one source. – Kuba hasn't forgotten Monica Apr 10 '22 at 13:10
  • 2
    @sx107 I learned using this book: https://books.google.com/books/about/Semiconductor_Device_Modeling_with_SPICE.html?id=_QZTAAAAMAAJ . Most of the basics are covered in Chapter 2. I had to go through that chapter several times until I got the jist of it. However, that chapter lays the foundation for the rest of the book so after it makes sense then the rest of the book is much easier to digest. – Ste Kulov Apr 11 '22 at 07:40
  • @SteKulov That’s a good text. More practical than paper-scrounging if you’re not at an academic institution with access to papers. – Kuba hasn't forgotten Monica Apr 11 '22 at 13:46
  • @SteKulov Thank you very much! Would definitely take a look. – sx107 Apr 14 '22 at 00:05
  • @sx107 Whoops. Just realized it's actually Chapter 1 I meant. I should've just said "the diode chapter" instead of trying to remember if there's an intro chapter or not. Doh! – Ste Kulov Apr 15 '22 at 20:05