From a0357b3432bd42fcd60628da9e393a3f08b84d81 Mon Sep 17 00:00:00 2001 From: Giles Atkinson <“gatk555@gmail.com”> Date: Mon, 8 Aug 2022 16:31:46 +0100 Subject: [PATCH] Remove search for "family" parameters on subcircuits in XSPICE automatic bridging support as string-valued parameter support is not yet intgrated. --- src/xspice/evt/evtcheck_nodes.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/src/xspice/evt/evtcheck_nodes.c b/src/xspice/evt/evtcheck_nodes.c index 9963c3dcc..92ed22a8b 100644 --- a/src/xspice/evt/evtcheck_nodes.c +++ b/src/xspice/evt/evtcheck_nodes.c @@ -96,15 +96,14 @@ for device libraries whose devices are defined by subcircuits. If found, set vcc from the parameter. 3: If a command interpreter variable "no_auto_bridge_family": exists, go to - step 5. Search the connected device instances for a parameter, "family" - with a string value. The first one found will be used. If no such - instance exists, search for a string-valued parameter, "family", - in enclosing subcircuits, as in step 2. If the first character of the - value is not '*', the setup card will be ".include bridge_FFFFF_DDD.cir" - where FFFFF is the family and DDD is the signal direction for - the XSPICE device: "in", "out" or "inout". The device card will be - "Xauto_bridge%d %s %s bridge_FFFFF_DDD vcc=%g", so a suitably - parameterised subcircuit must be defined in the included file. + step 5. Search the connected device instances for a parameter, + "family" with a string value. The first one found will be used. + If the first character of the value is not '*', the setup card will + be ".include bridge_FFFFF_DDD.cir" where FFFFF is the family and + DDD is the signal direction for the XSPICE device: "in", "out" or + "inout". The device card will be "Xauto_bridge%d %s %s + bridge_FFFFF_DDD vcc=%g", so a suitably parameterised subcircuit + must be defined in the included file. 4: If the first character of "family" was '*', look for a variable "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; deep = scan_devices(event_node, ckt, &family); - /* Look for a real parameter (.param type) and perhaps a string-valued - * "family" parameter in the device's subcircuit and those enclosing it. + /* Look for a real parameter (.param type) in the device's subcircuit + * and those enclosing it. */ 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); vcc = nupa_get_param(buff, &ok); } - if (!family) { - snprintf(dot + 1, sizeof buff - (size_t)(dot - buff), "family"); - family = nupa_get_string_param(buff); - } - if (ok && family) + if (ok) break; *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)) family = NULL;