corner_edges()

Generates error segments around corners of specified inside angles.

See also: dve_drc()

Syntax

dve_drc (corner_edges (inLayer, segmentLength, beginningAngle,
endingAngle) [,msgString]);
where:

inLayer A polygon layer
segmentLength A real value in layout units that represents the length of the error segment that will be drawn around the corner
beginningAngle A real value that represents the minimum angle that will be selected
endingAngle A real value that represents the max angle that will be selected
msgString A string value that will be attached to the selected error segments

Example 1

decl lyrCond = dve_import_layer ("cond");
decl lyrError101 = dve_export_layer ("error101");
decl lyrEdgesCvex = NULL;
decl lyrEdgesStub = NULL;
decl lyrStub = NULL;
lyrEdgesCvex = dve_drc (corner_edges (lyrCond, 0.5, 1, 91));
lyrEdgesStub = dve_drc (single_clearance (lyrEdgesCvex) < 3.0,
        DVE_RN_POLARITY, DVE_RV_INSIDE,
        DVE_RN_TEMPLATE, DVE_RV_OPPOSITE,
        DVE_RN_EDGE_ANGLES, DVE_RV_PARALLEL,
        DVE_RN_STRUCTURE, DVE_RV_SAME_POLYGON);
lyrStub = dve_quadout (lyrEdgesStub);
lyrError101 += dve_drc (all_edges (lyrStub), "Stub");

Example 2

Consider some geometry with a chamfer corner and a rule to check the width of 2.0:

drc_error += dve_drc(width(cond) < 2, "Conductor width less than 2.0 um");

This rule fails to detect the error because the default template for width() is DVE_RV_OPPOSITE. The rectangular opposite template from the bottom edge hits the sloping edge, but the template from the sloping edge misses the bottom edge. We can change this by using an arc template with a specified curvature. This does detect the error but also has false errors at the top. The solution is to restrict the test to act between

Edge Selection Based on Grid

Edge Selection Based on Grid selection function includes: off_grid().

 

Privacy Statement  | Terms of Use  | Legal | Contact Us  | © Agilent 2000-2008 

Contents
Additional Resources