Found one additional issue in the extraction that causes incorrect
partitioning of unshielded areas reaching outward from any given edge, caused by using a boundary value in the 2nd recursion call that had been modified for the 1st recursion call and so was no longer valid.
This commit is contained in:
parent
30184cb506
commit
8fb96db14c
|
|
@ -706,6 +706,8 @@ extOutputNodes(nodeList, outFile)
|
|||
{
|
||||
intR = (reg->nreg_resist + rround) / ExtCurStyle->exts_resistScale;
|
||||
finC = reg->nreg_cap/ExtCurStyle->exts_capScale;
|
||||
/* Avoid negative capacitance caused by round-off near zero */
|
||||
if (finC < 0.0) finC = 0.0;
|
||||
fprintf(outFile, "node \"%s\" %d %lg", text, intR, finC);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1403,11 +1403,6 @@ extSideOverlap(tp, esws)
|
|||
subcap = (ExtCurStyle->exts_perimCap[ta][outtype] *
|
||||
MIN(areaAccountedFor, length));
|
||||
rbp->nreg_cap -= subcap;
|
||||
/* XXX WIP XXX */
|
||||
TxPrintf("(4) Subtracting cap value %g in clip area %d %d %d %d\n",
|
||||
subcap,
|
||||
ov.o_clip.r_xbot, ov.o_clip.r_ybot,
|
||||
ov.o_clip.r_xtop, ov.o_clip.r_ytop);
|
||||
/* Ignore residual error at ~zero zeptoFarads. Probably */
|
||||
/* there should be better handling of round-off here. */
|
||||
if ((rbp->nreg_cap > -0.001) && (rbp->nreg_cap < 0.001))
|
||||
|
|
@ -1528,7 +1523,7 @@ extWalkTop(area, mask, func, bp, esws)
|
|||
if (lookRight)
|
||||
{
|
||||
aloc = *area;
|
||||
aloc.r_xbot = bloc.b_segment.r_xtop;
|
||||
aloc.r_xbot = RIGHT(tp);
|
||||
bloc.b_segment.r_xtop = bp->b_segment.r_xtop;
|
||||
bloc.b_segment.r_xbot = aloc.r_xbot;
|
||||
if (extWalkTop(&aloc, mask, func, &bloc, esws) != 0)
|
||||
|
|
@ -1640,7 +1635,7 @@ extWalkBottom(area, mask, func, bp, esws)
|
|||
if (lookRight)
|
||||
{
|
||||
aloc = *area;
|
||||
aloc.r_xbot = bloc.b_segment.r_xtop;
|
||||
aloc.r_xbot = RIGHT(tp);
|
||||
bloc.b_segment.r_xtop = bp->b_segment.r_xtop;
|
||||
bloc.b_segment.r_xbot = aloc.r_xbot;
|
||||
if (extWalkBottom(&aloc, mask, func, &bloc, esws) != 0)
|
||||
|
|
@ -1752,7 +1747,7 @@ extWalkRight(area, mask, func, bp, esws)
|
|||
if (lookUp)
|
||||
{
|
||||
aloc = *area;
|
||||
aloc.r_ybot = bloc.b_segment.r_ytop;
|
||||
aloc.r_ybot = TOP(tp);
|
||||
bloc.b_segment.r_ytop = bp->b_segment.r_ytop;
|
||||
bloc.b_segment.r_ybot = aloc.r_ybot;
|
||||
if (extWalkRight(&aloc, mask, func, &bloc, esws) != 0)
|
||||
|
|
@ -1864,7 +1859,7 @@ extWalkLeft(area, mask, func, bp, esws)
|
|||
if (lookUp)
|
||||
{
|
||||
aloc = *area;
|
||||
aloc.r_ybot = bloc.b_segment.r_ytop;
|
||||
aloc.r_ybot = TOP(tp);
|
||||
bloc.b_segment.r_ytop = bp->b_segment.r_ytop;
|
||||
bloc.b_segment.r_ybot = aloc.r_ybot;
|
||||
if (extWalkLeft(&aloc, mask, func, &bloc, esws) != 0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue