Skip to content

Commit 5477395

Browse files
Corrected an issue with annotating a layout from a LEF file; if
new port labels are created for an existing port, then they must take the existing port number. The code was previously causing collisions between port numbers on different pins.
1 parent cb73ebf commit 5477395

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8.3.464
1+
8.3.465

lef/lefRead.c

+16
Original file line numberDiff line numberDiff line change
@@ -1432,8 +1432,24 @@ LefReadPort(lefMacro, f, pinName, pinNum, pinDir, pinUse, pinShape, oscale,
14321432
}
14331433
}
14341434
else
1435+
{
1436+
/* If any other label is a port and has the same name, */
1437+
/* then use its port number. */
1438+
1439+
Label *sl;
1440+
for (sl = lefMacro->cd_labels; sl != NULL; sl = sl->lab_next)
1441+
{
1442+
if (sl->lab_flags & PORT_DIR_MASK)
1443+
if (!strcmp(sl->lab_text, pinName))
1444+
{
1445+
pinNum = sl->lab_port;
1446+
break;
1447+
}
1448+
}
1449+
14351450
/* Create a new label (non-rendered) */
14361451
DBPutLabel(lefMacro, &rectList->r_r, -1, pinName, rectList->r_type, 0, 0);
1452+
}
14371453

14381454
/* Set this label to be a port */
14391455

0 commit comments

Comments
 (0)