Corrected the GDS write for "boundary" to make sure that the

calculation of the area to check for output and the clip box
does not reduce the size of any layer associated with the
fixed bounding box declared by the FIXED_BBOX property.
This commit is contained in:
Tim Edwards 2022-10-18 14:14:22 -04:00
parent eecdc3c642
commit 94daf986ab
3 changed files with 23 additions and 2 deletions

View File

@ -1 +1 @@
8.3.330
8.3.331

View File

@ -1221,6 +1221,8 @@ calmaOutFunc(def, f, cliprect)
int type;
int dbunits;
calmaOutputStruct cos;
bool propfound;
char *propvalue;
cos.f = f;
cos.area = (cliprect == &TiPlaneRect) ? NULL : cliprect;
@ -1277,6 +1279,19 @@ calmaOutFunc(def, f, cliprect)
/* Output all the tiles associated with this cell; skip temporary layers */
GEO_EXPAND(&def->cd_bbox, CIFCurStyle->cs_radius, &bigArea);
/* Include any fixed bounding box as part of the area to process, */
/* in case the fixed bounding box is larger than the geometry. */
propvalue = (char *)DBPropGet(def, "FIXED_BBOX", &propfound);
if (propfound)
{
Rect bbox;
if (sscanf(propvalue, "%d %d %d %d", &bbox.r_xbot, &bbox.r_ybot,
&bbox.r_xtop, &bbox.r_ytop) == 4)
GeoInclude(&bbox, &bigArea);
}
CIFErrorDef = def;
CIFGen(def, def, &bigArea, CIFPlanes, &DBAllTypeBits, TRUE, TRUE, FALSE,
(ClientData)f);

View File

@ -39,7 +39,7 @@ LEF-format input and output
to annotate existing layouts, and ignore all other macros.
<DT> <B>write</B> [<I>cell</I>] [<B>-tech</B>]
[<B>-hide</B> [<I>distance</I>]] [<B>-toplayer</B>]
[<B>-nomaster</B>]
[<B>-pinonly</B> [<I>distance</I>]] [<B>-nomaster</B>]
<DD> Write LEF for the current or indicated cell.<BR>
Option <B>-tech</B> writes the technology information (layer
mapping and rules) to the same file as the cell macro. <BR>
@ -57,6 +57,12 @@ LEF-format input and output
Option <B>-toplayer</B> outputs pin geometry only for the
topmost layer belonging to the pin; all connected layers
underneath will be output as obstructions. <BR>
Option <B>-pinonly</B> will mark only areas that are port
labels as pins, while marking the rest of each related net
as an obstruction. Value <I>distance</I>, if given, will
extend any pin beyond the marked port label along the length
of the same net, to the specified distance into the interior
of the cell. <BR>
Option <B>-nomaster</B> will prevent the generation of
output geometry on layers defined as MASTERSLICE.
<DT> <B>writeall</B> [<B>-tech</B>] [<B>-hide</B> [<I>distance</I>]]