Tracked down an obscure error that was causing a property

mismatch in the SkyWater sky130_fd_io__top_pwrdetv2 circuit
because a resistor with ends shorted together was being assigned
an incorrect length and width.  This was due to the similarity
in characteristics of the boundary vector between a shorted
resistor and an annular resistor.  The terminals need to be
checked for shorted ends to disambiguate the two cases.
This commit is contained in:
Tim Edwards 2024-11-14 22:22:27 -05:00
parent 22c22228b3
commit 1fdca3a57a
2 changed files with 11 additions and 2 deletions

View File

@ -1 +1 @@
8.3.499 8.3.500

View File

@ -2549,9 +2549,18 @@ extOutputDevices(def, transList, outFile)
/* Mark annular resistors as requiring extra processing */ /* Mark annular resistors as requiring extra processing */
if (extTransRec.tr_termvector[n].p_x == 0 && if (extTransRec.tr_termvector[n].p_x == 0 &&
extTransRec.tr_termvector[n].p_y == 0) extTransRec.tr_termvector[n].p_y == 0)
isAnnular = TRUE; {
/* Update: 11/14/2024: A snake resistor with terminals
* tied together also has a zero termvector and should
* not be treated as annular!
*/
if ((n == 0) || (extTransRec.tr_termnode[n] !=
extTransRec.tr_termnode[n - 1]))
isAnnular = TRUE;
}
} }
if (n == 0) if (n == 0)
width = length = 0; width = length = 0;
else if (ntiles > 1) else if (ntiles > 1)