Replace 'a' by 'n' for OSDI device

This commit is contained in:
Holger Vogt 2022-11-12 17:19:22 +01:00
parent 5034cf5923
commit dee718108b
3 changed files with 6 additions and 12 deletions

View File

@ -2646,12 +2646,10 @@ static void get_subckts_for_subckt(struct card *start_card, char *subckt_name,
char *inst_subckt_name = get_instance_subckt(line);
nlist_adjoin(used_subckts, inst_subckt_name);
}
#ifndef OSDI
else if (*line == 'a') {
char *model_name = get_adevice_model_name( line, card->level);
nlist_adjoin(used_models, model_name);
}
#endif // !OSDI
else if (has_models) {
int num_terminals = get_number_terminals(line);
if (num_terminals != 0) {
@ -2734,12 +2732,10 @@ void comment_out_unused_subckt_models(struct card *start_card)
char *subckt_name = get_instance_subckt(line);
nlist_adjoin(used_subckts, subckt_name);
}
#ifndef OSDI
else if (*line == 'a') {
char *model_name = get_adevice_model_name(line, card->level);
nlist_adjoin(used_models, model_name);
}
#endif // !OSDI
else if (has_models) {
/* This is a preliminary version, until we have found a
reliable method to detect the model name out of the input
@ -4730,7 +4726,7 @@ int get_number_terminals(char *c)
break;
}
#ifdef OSDI
case 'a': /* Recognize an unknown number of nodes by stopping at tokens with '=' */
case 'n': /* Recognize an unknown number of nodes by stopping at tokens with '=' */
{
i = 0;
char* cc, * ccfree;

View File

@ -1438,10 +1438,8 @@ translate(struct card *deck, char *formal, char *actual, char *scname, const cha
/* FIXME anothet hack: if no models found for m devices, set number of nodes to 4 */
if (!modnames && *(c->line) == 'm')
nnodes = get_number_terminals(c->line);
#ifdef OSDI
else if (*(c->line) == 'a')
else if (*(c->line) == 'n')
nnodes = get_number_terminals(c->line);
#endif
else
nnodes = numnodes(c->line, subs, modnames);
while (--nnodes >= 0) {
@ -1693,7 +1691,7 @@ numnodes(const char *line, struct subs *subs, wordlist const *modnames)
/* If model names equal node names, this code will fail! */
#ifdef OSDI
if ((c == 'a') ||(c == 'm') || (c == 'p') || (c == 'q') || (c == 'd')) { /* IF this is a mos, cpl, bjt or diode */
if ((c == 'n') ||(c == 'm') || (c == 'p') || (c == 'q') || (c == 'd')) { /* IF this is a mos, cpl, bjt or diode */
#else
if ((c == 'm') || (c == 'p') || (c == 'q') || (c == 'd')) { /* IF this is a mos, cpl, bjt or diode */
#endif
@ -2268,7 +2266,7 @@ inp_numnodes(char c)
case 'z':
return (3);
#ifdef OSDI
case 'a':
case 'n':
return (7);
#endif

View File

@ -18,7 +18,7 @@ Xnot1 in vdd vss out not1
.subckt not1 a vdd vss z
*m01 z a vdd vdd pch l=0.1u w=1u as=0.26235 ad=0.26235 ps=2.51 pd=2.51
amp1 z a vdd vdd pch
nmp1 z a vdd vdd pch
+l=0.1u
+w=1u
+sa=0.0e+00
@ -32,7 +32,7 @@ amp1 z a vdd vdd pch
+mult=1.0e+00
*m02 z a vss vss nch l=0.1u w=0.5u as=0.131175 ad=0.131175 ps=1.52 pd=1.52
amn1 z a vss vss nch
nmn1 z a vss vss nch
+l=0.1u
+w=1u
+sa=0.0e+00