Add special savecurrents options:

options savecurrents_bsim3, savecurrents_bsim4, and savecurrents_mos1
will save all device currents as listed in chapts 31.6.1, .8 and .9
of the ngspice manual. Pure savecurrents will yield a subset of MOS1
currents, as seen before.
This commit is contained in:
Holger Vogt 2022-09-02 15:06:40 +02:00
parent e9fcb9b332
commit c7fa70d109
1 changed files with 11 additions and 1 deletions

View File

@ -2252,7 +2252,17 @@ inp_savecurrents(struct card *deck, struct card *options, wordlist *wl, wordlist
switch (devline[0]) {
case 'm':
devname = gettok(&devline);
newline = tprintf(".save @%s[id] @%s[is] @%s[ig] @%s[ib]",
if (strstr(options->line, "savecurrents_bsim3"))
newline = tprintf(".save @%s[id] @%s[ibd] @%s[ibs]",
devname, devname, devname);
else if (strstr(options->line, "savecurrents_bsim4"))
newline = tprintf(".save @%s[id] @%s[ibd] @%s[ibs] @%s[isub] @%s[igidl] @%s[igisl] @%s[igs] @%s[igb] @%s[igd] @%s[igcs] @%s[igcd]",
devname, devname, devname, devname, devname, devname, devname, devname, devname, devname, devname);
else if (strstr(options->line, "savecurrents_mos1"))
newline = tprintf(".save @%s[id] @%s[is] @%s[ig] @%s[ib] @%s[ibd] @%s[ibs]",
devname, devname, devname, devname, devname, devname);
else
newline = tprintf(".save @%s[id] @%s[is] @%s[ig] @%s[ib]",
devname, devname, devname, devname);
break;
case 'j':