diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index 987aeddbf..710b2c1f0 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -7860,6 +7860,9 @@ static void inp_quote_params(struct card *c, struct card *end_c, { bool in_control = FALSE; + if (ft_skywaterpdk) + return; + for (; c && c != end_c; c = c->nextcard) { int i, j, num_terminals; diff --git a/src/frontend/options.c b/src/frontend/options.c index d246ad318..ac12dc0b3 100644 --- a/src/frontend/options.c +++ b/src/frontend/options.c @@ -23,7 +23,7 @@ Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group bool ft_acctprint = FALSE, ft_noacctprint = FALSE, ft_listprint = FALSE; bool ft_nodesprint = FALSE, ft_optsprint = FALSE, ft_noinitprint = FALSE; -bool ft_norefprint = FALSE; +bool ft_norefprint = FALSE, ft_skywaterpdk = FALSE; bool ft_ngdebug = FALSE, ft_nginfo = FALSE, ft_stricterror = FALSE; static void setdb(char *str); @@ -307,6 +307,8 @@ cp_usrset(struct variable *var, bool isset) ft_ngdebug = isset; } else if (eq(var->va_name, "nginfo")) { ft_nginfo = isset; + } else if (eq(var->va_name, "skywaterpdk")) { + ft_skywaterpdk = isset; } else if (eq(var->va_name, "noinit")) { ft_noinitprint = isset; } else if (eq(var->va_name, "norefvalue")) { diff --git a/src/frontend/subckt.c b/src/frontend/subckt.c index 3bc81c46f..d72a4ef90 100644 --- a/src/frontend/subckt.c +++ b/src/frontend/subckt.c @@ -1695,6 +1695,9 @@ numnodes(const char *line, struct subs *subs, wordlist const *modnames) return (nodes); } } + /* if we use option skywaterpdk, MOS has four nodes. Required if number of devices is large */ + if (ft_skywaterpdk && c == 'm') + return 4; n = inp_numnodes(c); diff --git a/src/include/ngspice/fteext.h b/src/include/ngspice/fteext.h index 9f6848503..589c62564 100644 --- a/src/include/ngspice/fteext.h +++ b/src/include/ngspice/fteext.h @@ -268,6 +268,7 @@ extern struct card *inp_getoptsc(char *line, struct card *options); extern bool ft_ngdebug; extern bool ft_nginfo; extern bool ft_stricterror; +extern bool ft_skywaterpdk; /* parse.c */