Remove search for "family" parameters on subcircuits in XSPICE
automatic bridging support as string-valued parameter support is not yet intgrated.
This commit is contained in:
parent
4115064fd5
commit
a0357b3432
|
|
@ -96,15 +96,14 @@ for device libraries whose devices are defined by subcircuits.
|
||||||
If found, set vcc from the parameter.
|
If found, set vcc from the parameter.
|
||||||
|
|
||||||
3: If a command interpreter variable "no_auto_bridge_family": exists, go to
|
3: If a command interpreter variable "no_auto_bridge_family": exists, go to
|
||||||
step 5. Search the connected device instances for a parameter, "family"
|
step 5. Search the connected device instances for a parameter,
|
||||||
with a string value. The first one found will be used. If no such
|
"family" with a string value. The first one found will be used.
|
||||||
instance exists, search for a string-valued parameter, "family",
|
If the first character of the value is not '*', the setup card will
|
||||||
in enclosing subcircuits, as in step 2. If the first character of the
|
be ".include bridge_FFFFF_DDD.cir" where FFFFF is the family and
|
||||||
value is not '*', the setup card will be ".include bridge_FFFFF_DDD.cir"
|
DDD is the signal direction for the XSPICE device: "in", "out" or
|
||||||
where FFFFF is the family and DDD is the signal direction for
|
"inout". The device card will be "Xauto_bridge%d %s %s
|
||||||
the XSPICE device: "in", "out" or "inout". The device card will be
|
bridge_FFFFF_DDD vcc=%g", so a suitably parameterised subcircuit
|
||||||
"Xauto_bridge%d %s %s bridge_FFFFF_DDD vcc=%g", so a suitably
|
must be defined in the included file.
|
||||||
parameterised subcircuit must be defined in the included file.
|
|
||||||
|
|
||||||
4: If the first character of "family" was '*', look for a variable
|
4: If the first character of "family" was '*', look for a variable
|
||||||
"auto_bridge_FFFFF_TTTT_DDD" where FFFFF is the family without '*',
|
"auto_bridge_FFFFF_TTTT_DDD" where FFFFF is the family without '*',
|
||||||
|
|
@ -469,8 +468,8 @@ static struct bridge *find_bridge(Evt_Node_Info_t *event_node,
|
||||||
family = NULL;
|
family = NULL;
|
||||||
deep = scan_devices(event_node, ckt, &family);
|
deep = scan_devices(event_node, ckt, &family);
|
||||||
|
|
||||||
/* Look for a real parameter (.param type) and perhaps a string-valued
|
/* Look for a real parameter (.param type) in the device's subcircuit
|
||||||
* "family" parameter in the device's subcircuit and those enclosing it.
|
* and those enclosing it.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
snprintf(buff, sizeof buff, "%s", deep);
|
snprintf(buff, sizeof buff, "%s", deep);
|
||||||
|
|
@ -479,11 +478,7 @@ static struct bridge *find_bridge(Evt_Node_Info_t *event_node,
|
||||||
snprintf(dot + 1, sizeof buff - (size_t)(dot - buff), vcc_parm);
|
snprintf(dot + 1, sizeof buff - (size_t)(dot - buff), vcc_parm);
|
||||||
vcc = nupa_get_param(buff, &ok);
|
vcc = nupa_get_param(buff, &ok);
|
||||||
}
|
}
|
||||||
if (!family) {
|
if (ok)
|
||||||
snprintf(dot + 1, sizeof buff - (size_t)(dot - buff), "family");
|
|
||||||
family = nupa_get_string_param(buff);
|
|
||||||
}
|
|
||||||
if (ok && family)
|
|
||||||
break;
|
break;
|
||||||
*dot = '\0';
|
*dot = '\0';
|
||||||
}
|
}
|
||||||
|
|
@ -498,8 +493,6 @@ static struct bridge *find_bridge(Evt_Node_Info_t *event_node,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!family)
|
|
||||||
family = nupa_get_string_param("family");
|
|
||||||
if (family && cp_getvar("no_auto_bridge_family", CP_BOOL, NULL, 0))
|
if (family && cp_getvar("no_auto_bridge_family", CP_BOOL, NULL, 0))
|
||||||
family = NULL;
|
family = NULL;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue