PS compatibility: MOS level 5 and Bip level 2

will create an error. ngspice then bails out, as no
such models are available. Hint to use OpenVAF, OSDI.
This commit is contained in:
Holger Vogt 2025-03-10 12:55:29 +01:00
parent 16fbe0fb8b
commit c0775705e5
1 changed files with 12 additions and 10 deletions

View File

@ -751,9 +751,9 @@ struct card *pspice_compat(struct card *oldcard)
/* .model xxx NMOS/PMOS level=6 --> level = 8, version=3.2.4 /* .model xxx NMOS/PMOS level=6 --> level = 8, version=3.2.4
.model xxx NMOS/PMOS level=7 --> level = 8, version=3.2.4 .model xxx NMOS/PMOS level=7 --> level = 8, version=3.2.4
.model xxx NMOS/PMOS level=5 --> level = 44 .model xxx NMOS/PMOS level=5 --> only available per Veriloga, OpenVAF and OSDI
.model xxx NMOS/PMOS level=8 --> level = 14, version=4.5.0 .model xxx NMOS/PMOS level=8 --> level = 14, version=4.5.0
.model xxx NPN/PNP level=2 --> level = 6 .model xxx NPN/PNP level=2 --> only available per Veriloga, OpenVAF and OSDI
.model xxx LPNP level=n --> level = 1 subs=-1 .model xxx LPNP level=n --> level = 1 subs=-1
Remove any Monte - Carlo variation parameters from .model cards.*/ Remove any Monte - Carlo variation parameters from .model cards.*/
for (card = newcard; card; card = card->nextcard) { for (card = newcard; card; card = card->nextcard) {
@ -783,10 +783,11 @@ struct card *pspice_compat(struct card *oldcard)
switch (ll) { switch (ll) {
case 5: case 5:
{ {
/* EKV 2.6 in the adms branch */ /* EKV 2.6 only per OSDI and OpenVAF */
char* newline = tprintf(".model %s %s level=44 %s", modname, modtype, lv); fprintf(stderr, "Error: MOS model level 5, EKV 2.6, is not available as an intrinsic model.\n");
tfree(card->line); fprintf(stderr, " Please consider using a Verilog-A model, OpenVAF compilation,\n");
card->line = curr_line = newline; fprintf(stderr, " and the ngspice OSDI interface (see ngspice manual chapter 9).\n");
controlled_exit(EXIT_BAD);
} }
break; break;
case 6: case 6:
@ -822,10 +823,11 @@ struct card *pspice_compat(struct card *oldcard)
switch (ll) { switch (ll) {
case 2: case 2:
{ {
/* MEXTRAM 504.12.1 in the adms branch */ /* MEXTRAM 504.12.1 only per OSDI and OpenVAF */
char* newline = tprintf(".model %s %s level=6 %s", modname, modtype, lv); fprintf(stderr, "Error: Bipolar model level 2, MEXTRAM 504.12.1, is not available as an intrinsic model.\n");
tfree(card->line); fprintf(stderr, " Please consider using a Verilog-A model, OpenVAF compilation,\n");
card->line = curr_line = newline; fprintf(stderr, " and the ngspice OSDI interface (see ngspice manual chapter 9).\n");
controlled_exit(EXIT_BAD);
} }
break; break;
default: default: