Changed extraction to avoid generating an error message for devices
like resistors where a tile other than space may border the resistor device on its non-terminal sides (which is handled correctly, and should not be considered an error).
This commit is contained in:
parent
d3eb03d19a
commit
3aa09725cb
|
|
@ -1508,13 +1508,18 @@ CIFReadCellCleanup(filetype)
|
||||||
freeMagic((char *)def->cd_client);
|
freeMagic((char *)def->cd_client);
|
||||||
def->cd_client = (ClientData)CLIENTDEFAULT;
|
def->cd_client = (ClientData)CLIENTDEFAULT;
|
||||||
|
|
||||||
|
#if 0
|
||||||
/* If the CDFLATTENED flag was not set, then this geometry */
|
/* If the CDFLATTENED flag was not set, then this geometry */
|
||||||
/* was never instantiated, and should generate a warning. */
|
/* was never instantiated, and should generate a message. */
|
||||||
|
/* However, this is not an error condition as there are a */
|
||||||
|
/* number of useful reasons to copy lots of information up */
|
||||||
|
/* the GDS hierarchy for "just in case" scenarios. */
|
||||||
|
|
||||||
if (!(def->cd_flags & CDFLATTENED))
|
if (!(def->cd_flags & CDFLATTENED))
|
||||||
CIFReadError("%s read error: Unresolved geometry in cell"
|
CIFReadWarning("%s read: Unresolved geometry in cell"
|
||||||
" %s maps to no magic layers\n",
|
" %s maps to no magic layers\n",
|
||||||
(filetype == FILE_CIF) ? "CIF" : "GDS", def->cd_name);
|
(filetype == FILE_CIF) ? "CIF" : "GDS", def->cd_name);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* Remove the cell if it has no parents, no children, and no geometry */
|
/* Remove the cell if it has no parents, no children, and no geometry */
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,10 @@ CIFReadError(char *format, ...)
|
||||||
if (CIFWarningLevel == CIF_WARN_NONE) return;
|
if (CIFWarningLevel == CIF_WARN_NONE) return;
|
||||||
if ((cifTotalErrors < 100) || (CIFWarningLevel != CIF_WARN_LIMIT))
|
if ((cifTotalErrors < 100) || (CIFWarningLevel != CIF_WARN_LIMIT))
|
||||||
{
|
{
|
||||||
|
if (cifLineNumber > 0)
|
||||||
TxError("Error at line %d of CIF file: ", cifLineNumber);
|
TxError("Error at line %d of CIF file: ", cifLineNumber);
|
||||||
|
else
|
||||||
|
TxError("CIF file read error: ", cifLineNumber);
|
||||||
va_start(args, format);
|
va_start(args, format);
|
||||||
Vfprintf(stderr, format, args);
|
Vfprintf(stderr, format, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
@ -141,7 +144,10 @@ CIFReadWarning(char *format, ...)
|
||||||
if (CIFWarningLevel == CIF_WARN_NONE) return;
|
if (CIFWarningLevel == CIF_WARN_NONE) return;
|
||||||
if ((cifTotalWarnings < 100) || (CIFWarningLevel != CIF_WARN_LIMIT))
|
if ((cifTotalWarnings < 100) || (CIFWarningLevel != CIF_WARN_LIMIT))
|
||||||
{
|
{
|
||||||
|
if (cifLineNumber > 0)
|
||||||
TxError("Warning at line %d of CIF file: ", cifLineNumber);
|
TxError("Warning at line %d of CIF file: ", cifLineNumber);
|
||||||
|
else
|
||||||
|
TxError("CIF file read warning: ");
|
||||||
va_start(args, format);
|
va_start(args, format);
|
||||||
Vfprintf(stderr, format, args);
|
Vfprintf(stderr, format, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
|
||||||
|
|
@ -2800,10 +2800,16 @@ extTransPerimFunc(bp)
|
||||||
devptr = extDevFindMatch(devptr, tinside);
|
devptr = extDevFindMatch(devptr, tinside);
|
||||||
if (devptr == deventry) devptr = NULL;
|
if (devptr == deventry) devptr = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (devptr == NULL)
|
if (devptr == NULL)
|
||||||
{
|
{
|
||||||
TxError("Error: Cannot find valid terminals on device %s!\n",
|
/* Outside type is not a terminal, so return to the original */
|
||||||
DBTypeLongNameTbl[tinside]);
|
/* device record. NOTE: Should probably check if this device */
|
||||||
|
/* type is a FET, as being here would indicate an error. */
|
||||||
|
/* However, failure to find all terminals will be flagged as an */
|
||||||
|
/* error elsewhere. */
|
||||||
|
|
||||||
|
extTransRec.tr_devrec = deventry;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue