Skip to content

Commit

Permalink
Fixed two issues: (1) Found a backwards-incompatibility with the
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
RTimothyEdwards committed Jun 8, 2022
1 parent 1d570a5 commit d099562
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 2 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8.3.309
8.3.310
3 changes: 3 additions & 0 deletions calma/CalmaRdcl.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand Down
5 changes: 4 additions & 1 deletion cif/CIFrdcl.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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)
Expand Down
2 changes: 2 additions & 0 deletions extract/ExtCouple.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down

0 comments on commit d099562

Please sign in to comment.