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.
This commit is contained in:
Tim Edwards 2024-03-18 16:25:49 -04:00
parent cb73ebfab0
commit 54773957c9
2 changed files with 17 additions and 1 deletions

View File

@ -1 +1 @@
8.3.464
8.3.465

View File

@ -1432,8 +1432,24 @@ LefReadPort(lefMacro, f, pinName, pinNum, pinDir, pinUse, pinShape, oscale,
}
}
else
{
/* If any other label is a port and has the same name, */
/* then use its port number. */
Label *sl;
for (sl = lefMacro->cd_labels; sl != NULL; sl = sl->lab_next)
{
if (sl->lab_flags & PORT_DIR_MASK)
if (!strcmp(sl->lab_text, pinName))
{
pinNum = sl->lab_port;
break;
}
}
/* Create a new label (non-rendered) */
DBPutLabel(lefMacro, &rectList->r_r, -1, pinName, rectList->r_type, 0, 0);
}
/* Set this label to be a port */