Fixed two issues: (1) Found a backwards-incompatibility with the
fringe capacitance halo where the default halo distance was set to zero instead of one and caused divide-by-zero issues; (2) Found extraction issues where labels picked up from cells flattened during GDS reading cause the flattened/emptied cells to show up in the extraction with extra pins that can mess up LVS. Solved this by removing labels from flattened/emptied cells.
This commit is contained in:
parent
1d570a5b67
commit
d099562e85
|
|
@ -530,6 +530,9 @@ calmaParseStructure(filename)
|
|||
cifReadCellDef->cd_client = (ClientData) calmaExact();
|
||||
cifReadCellDef->cd_flags |= CDFLATGDS;
|
||||
cifReadCellDef->cd_flags &= ~CDFLATTENED;
|
||||
|
||||
/* Remove any labels in this cell */
|
||||
DBEraseLabel(cifReadCellDef, &TiPlaneRect, &DBAllTypeBits, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1689,6 +1689,10 @@ CIFReadCellCleanup(filetype)
|
|||
if (def->cd_flags & CDFLATGDS)
|
||||
{
|
||||
/* These cells have been flattened and are no longer needed. */
|
||||
/* Do not remove the actual CellDef, though, because it is */
|
||||
/* still instanced, and that instance tells the GDS write */
|
||||
/* routine that the subcell needs to be included in the */
|
||||
/* output. But all clientdata and labels should be removed. */
|
||||
|
||||
int pNum;
|
||||
Plane **cifplanes = (Plane **)def->cd_client;
|
||||
|
|
@ -1698,7 +1702,6 @@ CIFReadCellCleanup(filetype)
|
|||
/* cifplanes should be valid, but don't crash magic if not */
|
||||
if (cifplanes != (Plane **)0)
|
||||
{
|
||||
|
||||
for (pNum = 0; pNum < MAXCIFRLAYERS; pNum++)
|
||||
{
|
||||
if (cifplanes[pNum] != NULL)
|
||||
|
|
|
|||
|
|
@ -722,6 +722,8 @@ extAddCouple(bp, ecs)
|
|||
distFringe = (ExtOptions & EXT_DOFRINGEHALO) ?
|
||||
ExtCurStyle->exts_fringeShieldHalo : 1;
|
||||
|
||||
if (distFringe == 0) distFringe = 1;
|
||||
|
||||
switch (bp->b_direction)
|
||||
{
|
||||
case BD_LEFT: /* Along left */
|
||||
|
|
|
|||
Loading…
Reference in New Issue