Quantcast
Channel: Cadence Technology Forums
Viewing all articles
Browse latest Browse all 63212

Forum Post: RE: Detected Layer-to-Layer Polygons that overlap

$
0
0
You can use a script in OrCAD/Allegro Skill (SKILL) to detect overlapping polygons layer by layer. The general approach is: Iterate through all layers and extract voltage polygons. Compare each polygon with others on the same layer using dbGetOverlap or similar functions. Calculate the percentage of overlap using area formulas. Output a report listing overlapping polygons and their percentage of overlap. Here is the Script procedure(checkPolygonOverlap() let((layers polys layerPairs overlapResults) ;; Get all layers in the design layers = axlDBGetStackupLayers() layerPairs = nil ;; Create layer pairs (1-2, 2-3, etc.) for(i 1 (length(layers) - 1) layerPairs = cons(list(nth(i layers) nth(i+1 layers)) layerPairs) ) overlapResults = nil ;; Loop through each layer pair foreach(layerPair layerPairs let((layer1 layer2 poly1 poly2 overlapArea poly1Area poly2Area overlapPercentage) layer1 = car(layerPair) layer2 = cadr(layerPair) ;; Get all polygons from both layers polys = axlDBGetShapesByLayer(list(layer1 layer2) 'dynamic_shape) foreach(poly1 polys foreach(poly2 polys if(poly1 != poly2 && axlDBOverlap(poly1 poly2) overlapArea = axlDBGetOverlap(poly1 poly2) poly1Area = axlDBGetArea(poly1) poly2Area = axlDBGetArea(poly2) overlapPercentage = 100.0 * overlapArea / max(poly1Area poly2Area) overlapResults = cons( list("Layer:" layer1 "&" layer2 "Overlap:" overlapPercentage "%") overlapResults ) ) ) ) ) ) ;; Print results foreach(result overlapResults printf("%s\n" result) ) ) ) checkPolygonOverlap()

Viewing all articles
Browse latest Browse all 63212

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>