Merge branch 'master' into magic-8.2
This commit is contained in:
commit
c17a546a75
|
|
@ -606,7 +606,7 @@ efBuildDevice(def, class, type, r, argc, argv)
|
|||
Dev *newdev, devtmp;
|
||||
DevParam *newparm, *devp, *sparm;
|
||||
char ptype, *pptr, **av;
|
||||
char devhash[24];
|
||||
char devhash[64];
|
||||
int argstart = 1; /* start of terminal list in argv[] */
|
||||
bool hasModel = strcmp(type, "None") ? TRUE : FALSE;
|
||||
|
||||
|
|
@ -749,7 +749,7 @@ efBuildDevice(def, class, type, r, argc, argv)
|
|||
|
||||
/* Determine if this device has been seen before */
|
||||
|
||||
sprintf(devhash, "%dx%d", r->r_xbot, r->r_ybot);
|
||||
sprintf(devhash, "%dx%d%s", r->r_xbot, r->r_ybot, type);
|
||||
he = HashFind(&def->def_devs, devhash);
|
||||
newdev = (Dev *)HashGetValue(he);
|
||||
if (newdev)
|
||||
|
|
|
|||
|
|
@ -1686,6 +1686,7 @@ extOutputDevices(def, transList, outFile)
|
|||
|
||||
while (TRUE)
|
||||
{
|
||||
if (devptr == NULL) break; /* Bad device */
|
||||
nsd = devptr->exts_deviceSDCount;
|
||||
for (termcount = 0; termcount < nsd; termcount++)
|
||||
{
|
||||
|
|
@ -1726,6 +1727,7 @@ extOutputDevices(def, transList, outFile)
|
|||
devptr = extDevFindMatch(devptr, t);
|
||||
break;
|
||||
}
|
||||
if (termcount == nsd) break; /* All terminals accounted for */
|
||||
}
|
||||
if (termcount == nsd) break; /* All terminals accounted for */
|
||||
if (devptr == deventry) break; /* No other device records available */
|
||||
|
|
@ -1771,6 +1773,11 @@ extOutputDevices(def, transList, outFile)
|
|||
/* It is not an error condition to have more terminals */
|
||||
/* than the minimum. */
|
||||
}
|
||||
if (devptr == NULL) {
|
||||
TxError("Warning: No matching extraction type for device at (%d %d)\n",
|
||||
reg->treg_tile->ti_ll.p_x, reg->treg_tile->ti_ll.p_y);
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
* Output the transistor record.
|
||||
|
|
@ -2912,7 +2919,8 @@ extResistorTileFunc(tile, pNum)
|
|||
|
||||
extEnumTilePerim(tile, mask, pNum, extSpecialPerimFunc, (ClientData)FALSE);
|
||||
|
||||
if (extSpecialBounds[0] == NULL) devptr = devptr->exts_next;
|
||||
if (extSpecialBounds[0] != NULL) break;
|
||||
devptr = devptr->exts_next;
|
||||
}
|
||||
if (devptr != NULL) extTransRec.tr_devrec = devptr;
|
||||
|
||||
|
|
|
|||
|
|
@ -778,6 +778,20 @@ lefWriteMacro(def, f, scale, hide)
|
|||
else
|
||||
boundary = def->cd_bbox;
|
||||
|
||||
/* If a bounding box has been declared with the FIXED_BBOX property */
|
||||
/* then it takes precedence over def->cd_bbox. */
|
||||
|
||||
if (def->cd_flags & CDFIXEDBBOX)
|
||||
{
|
||||
char *propvalue;
|
||||
bool found;
|
||||
|
||||
propvalue = (char *)DBPropGet(def, "FIXED_BBOX", &found);
|
||||
if (found)
|
||||
sscanf(propvalue, "%d %d %d %d", &boundary.r_xbot,
|
||||
&boundary.r_ybot, &boundary.r_xtop, &boundary.r_ytop);
|
||||
}
|
||||
|
||||
/* Write position and size information */
|
||||
|
||||
fprintf(f, " ORIGIN %.4f %.4f ;\n",
|
||||
|
|
|
|||
Loading…
Reference in New Issue