Corrected an error in ext2spice caused by recent changes, that can

generate an extra node in the extract output that comes out as a
"(none)" node in the SPICE netlist from ext2spice.
This commit is contained in:
Tim Edwards 2019-11-13 13:05:03 -05:00
parent e3624d3e5f
commit 3a6f868efc
2 changed files with 9 additions and 2 deletions

View File

@ -606,7 +606,7 @@ efBuildDevice(def, class, type, r, argc, argv)
Dev *newdev, devtmp;
DevParam *newparm, *devp, *sparm;
char ptype, *pptr, **av;
char devhash[24];
char devhash[64];
int argstart = 1; /* start of terminal list in argv[] */
bool hasModel = strcmp(type, "None") ? TRUE : FALSE;
@ -749,7 +749,7 @@ efBuildDevice(def, class, type, r, argc, argv)
/* Determine if this device has been seen before */
sprintf(devhash, "%dx%d", r->r_xbot, r->r_ybot);
sprintf(devhash, "%dx%d%s", r->r_xbot, r->r_ybot, type);
he = HashFind(&def->def_devs, devhash);
newdev = (Dev *)HashGetValue(he);
if (newdev)

View File

@ -1686,6 +1686,7 @@ extOutputDevices(def, transList, outFile)
while (TRUE)
{
if (devptr == NULL) break; /* Bad device */
nsd = devptr->exts_deviceSDCount;
for (termcount = 0; termcount < nsd; termcount++)
{
@ -1726,6 +1727,7 @@ extOutputDevices(def, transList, outFile)
devptr = extDevFindMatch(devptr, t);
break;
}
if (termcount == nsd) break; /* All terminals accounted for */
}
if (termcount == nsd) break; /* All terminals accounted for */
if (devptr == deventry) break; /* No other device records available */
@ -1771,6 +1773,11 @@ extOutputDevices(def, transList, outFile)
/* It is not an error condition to have more terminals */
/* than the minimum. */
}
if (devptr == NULL) {
TxError("Warning: No matching extraction type for device at (%d %d)\n",
reg->treg_tile->ti_ll.p_x, reg->treg_tile->ti_ll.p_y);
continue;
}
/*
* Output the transistor record.