Normal
0
false
false
false
EN-US
X-NONE
X-NONE
MicrosoftInternetExplorer4
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
Hi Andrew,
I have problems in performing the “OverUnder” operation
(=first using dbLayerSize with a positive amount, then with a twice the same
negative amount, then with the positive amount again) caused by the fact that
polygons cannot have more than 4000 points in SKILL. The purpose of the
OverUnder operation is to remove acute angles, too small minimum spacings, and
too small features during data preparation. These would create DRC errors.
I am designing photonic components, therefore the typical
size of my cells is 10um x 10um or larger, moreover I have to use orthogonal
polygons, and the curves are snapped to a 1nm grid.
I have a routine that writes such large polygons as a sum of
subpolygons, each having less than 4000 points.
When I apply the dbLayerSize function to all the subpolygons
at the same time, Cadence crashes –I assume because all the subpolygons
together have more than 4000 points.
I ended up therefore by applying the dbLayerSize operation
to single pairs of neighboring subpolygon, one at the time. The problem is that
the result of the OverUnder operation depends on the way the big original shape
is split into subpolygons. This is clearly not a clean solution, and I
discarded it. Also, it is quite slow (taking few minutes for a single layer).
As a second attempt, I tiled the big polygon (=union of the
many subpolygons) using square tiles (I used to this end the dbLayerAndNot) and
applied OverUnder to each of them separately. Once this was done, I repeated
the operation with the dual square lattice obtained by translating the tiles by
half the tile pitch in both x and y directions. The result is predictable (as
far as the tile size is sufficient), but the algorithm is extremely slow
because of the dbLayerAndNot operation.
I wonder if there is a known solution to this problem.
For example, is there a way to get rid of the 4000 vertices
per polygon limitation?
It would be great if I handn’t to go outside the Skill
environment (e.g. by using Calibre), since these pCells see a number of other
post-processing steps in Skill.
Thanks a lot in advance,