spice.awk: handle per-instance .model lines of vector instances
This commit is contained in:
parent
531a9c168c
commit
5f4401258f
|
|
@ -2006,19 +2006,20 @@ void get_sch_from_sym(char *filename, xSymbol *sym, int inst, int fallback)
|
||||||
my_strncpy(filename, "", PATH_MAX);
|
my_strncpy(filename, "", PATH_MAX);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!is_gen && filename[0]) file_exists = !stat(filename, &buf);
|
if(has_x && fallback && !is_gen && filename[0]) {
|
||||||
dbg(1, "get_sch_from_sym(): fallback=%d, file_exists=%d\n", fallback, file_exists);
|
file_exists = !stat(filename, &buf);
|
||||||
if(!is_gen && filename[0] && !file_exists && fallback && has_x) {
|
if(!file_exists) {
|
||||||
tclvareval("ask_save {Schematic ", filename, "\ndoes not exist.\nDescend into base schematic?}", NULL);
|
tclvareval("ask_save {Schematic ", filename, "\ndoes not exist.\nDescend into base schematic?}", NULL);
|
||||||
if(strcmp(tclresult(), "yes") ) fallback = 0;
|
if(strcmp(tclresult(), "yes") ) fallback = 0;
|
||||||
if(!strcmp(tclresult(), "") ) {
|
if(!strcmp(tclresult(), "") ) {
|
||||||
my_strncpy(filename, "", PATH_MAX);
|
my_strncpy(filename, "", PATH_MAX);
|
||||||
cancel = 1;
|
cancel = 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* no schematic attr from instance or symbol */
|
/* no schematic attr from instance or symbol */
|
||||||
if(!cancel && (!str_tmp[0] || (!is_gen && filename[0] && !file_exists && fallback))) {
|
if(!cancel && (!str_tmp[0] || (fallback && !is_gen && filename[0] && !file_exists ))) {
|
||||||
const char *symname_tcl = tcl_hook2(sym->name);
|
const char *symname_tcl = tcl_hook2(sym->name);
|
||||||
if(is_generator(symname_tcl)) my_strncpy(filename, symname_tcl, PATH_MAX);
|
if(is_generator(symname_tcl)) my_strncpy(filename, symname_tcl, PATH_MAX);
|
||||||
else if(tclgetboolvar("search_schematic")) {
|
else if(tclgetboolvar("search_schematic")) {
|
||||||
|
|
|
||||||
|
|
@ -27,14 +27,15 @@ BEGIN{
|
||||||
first=1
|
first=1
|
||||||
user_code=0 #20180129
|
user_code=0 #20180129
|
||||||
|
|
||||||
# used to handle strange xyce primitives that have a type word before the instance name
|
# used to handle strange primitives that have a type word before the instance name
|
||||||
xyceydev["ymemristor"] = 1
|
special_devs["ymemristor"] = 1
|
||||||
xyceydev["ylin"] = 1
|
special_devs["ylin"] = 1
|
||||||
xyceydev["ydelay"] = 1
|
special_devs["ydelay"] = 1
|
||||||
xyceydev["ytransline"] = 1
|
special_devs["ytransline"] = 1
|
||||||
xyceydev["ypgbr"] = 1
|
special_devs["ypgbr"] = 1
|
||||||
xyceydev["ypowergridbranch"] = 1
|
special_devs["ypowergridbranch"] = 1
|
||||||
xyceydev["yacc"] = 1
|
special_devs["yacc"] = 1
|
||||||
|
special_devs[".model"] = 1
|
||||||
|
|
||||||
while( (ARGV[1] ~ /^[-]/) || (ARGV[1] ~ /^$/) ) {
|
while( (ARGV[1] ~ /^[-]/) || (ARGV[1] ~ /^$/) ) {
|
||||||
if(ARGV[1] == "-xyce") { xyce = 1}
|
if(ARGV[1] == "-xyce") { xyce = 1}
|
||||||
|
|
@ -279,8 +280,8 @@ function process( i,j, iprefix, saveinstr, savetype, saveanalysis)
|
||||||
gsub(","," ",$0)
|
gsub(","," ",$0)
|
||||||
print $0
|
print $0
|
||||||
} else {
|
} else {
|
||||||
# handle uncommon xyce primitives that have a prefix before the device name
|
# handle uncommon primitives that have a prefix before the device name
|
||||||
if(tolower($1) in xyceydev) {
|
if(tolower($1) in special_devs) {
|
||||||
devprefix = $1
|
devprefix = $1
|
||||||
num = split($3, name, ",")
|
num = split($3, name, ",")
|
||||||
$1 = ""
|
$1 = ""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue