Modified "lef write -hide" behavior to fix problems that occur

when a label has no area and magic has to go searching for the
label area.  The resulting behavior is better but is not really
a substitute for adding ports on the proper layers in the proper
locations for routing connections.
This commit is contained in:
Tim Edwards 2023-09-11 14:34:42 -04:00
parent d624b76712
commit a8cc403e4b
2 changed files with 24 additions and 3 deletions

View File

@ -1 +1 @@
8.3.427
8.3.428

View File

@ -1501,9 +1501,30 @@ lefWriteMacro(def, f, scale, setback, pinonly, toplayer, domaster)
carea = labr;
else
{
scx.scx_area = labr;
SelectChunk(&scx, lab->lab_type, 0, &carea, FALSE);
if (GEO_RECTNULL(&carea)) carea = labr;
else if (pinonly > 0)
if (GEO_RECTNULL(&carea))
{
/* In the flattened cell, any connected layer
* could be underneath the label.
*/
TileType tt;
for (tt = TT_TECHDEPBASE; tt < DBNumTypes; tt++)
{
if (tt == lab->lab_type) continue;
if (DBConnectsTo(tt, lab->lab_type))
{
scx.scx_area = labr;
SelectChunk(&scx, tt, 0, &carea, FALSE);
if (!GEO_RECTNULL(&carea))
break;
}
}
if (tt == DBNumTypes)
carea = labr;
}
if ((pinonly > 0) && (!GEO_RECTNULL(&carea)))
{
Rect psetback;
GEO_EXPAND(&boundary, -pinonly, &psetback);