Corrected an error in reworking verilog instances to add pins that
were implicit in the first instances but made explicit in a later one. If more than one such implicit pin was handled for the same cell, then the pin count would become wrong and rather unpredictable behavior results.
This commit is contained in:
parent
a795981eff
commit
7550ef9258
|
|
@ -875,7 +875,11 @@ struct FormattedList *FormatBadNodeFragment(struct Node *N)
|
|||
for (n = pins[i]->subelement->element->nodelist; n != NULL; n = n->next){
|
||||
if (n->pin_magic == pins[i]->subelement->pin_magic) {
|
||||
if ((permute == 0) && (ob->instance.name != NULL)) {
|
||||
pinname = ob->name + strlen(ob->instance.name) + 1;
|
||||
/* Handle "port_match_error" */
|
||||
if ((ob->name[0] == 'p') && !strcmp(ob->name, "port_match_error"))
|
||||
pinname = ob->name;
|
||||
else
|
||||
pinname = ob->name + strlen(ob->instance.name) + 1;
|
||||
}
|
||||
else if (ob->instance.name != NULL) {
|
||||
char *pinsave = pinname;
|
||||
|
|
|
|||
|
|
@ -2232,6 +2232,7 @@ nextinst:
|
|||
Node(scan->net);
|
||||
join(scan->net, nobj->name);
|
||||
scan->flags |= PORT_FOUND;
|
||||
obptr = nobj;
|
||||
|
||||
/* Now any previous instance of the same cell must */
|
||||
/* insert the same additional pin as a no-connect. */
|
||||
|
|
|
|||
Loading…
Reference in New Issue