poly_path_length()
Select polygons based upon path length properties computed during a merge operation. Input layer must be the result of a merge command. Returns: A polygon layer.
See also: dve_drc()
Syntax
dve_drc (poly_path_length (inLayer) operator distance [qualifierName, qualiferValue]);
where:
| inLayer | A polygon layer produced by a merge operation between two layers |
| operator | < Less than <= Less than or equal to == Equal to > Greater than >= Greater than or equal to |
| value | A real value in layout units |
| qualifierName, qualifierValue | A name, value pair that qualifies the rule |
Path Type Qualifier: DVE_RN_PATH_LENGTH
Qualifier Resource Value
| DVE_RV_MIN_PATH | Select based upon minimum path length of top polygon |
| DVE_RV_MAX_PATH | Select based upon maximum path length of top polygon |
| DVE_RV_TOTAL_PATH | Select based upon total path length of top polygon |
| VE_RV_ MIN_ANTI_PATH | Select based upon minimum path length of bottom polygon |
| DVE_RV_MAX_ANTI_PATH | Select based upon maximum path length of bottom polygon |
| DVE_RV_TOTAL_ANTI_PATH | Select based upon total path length of bottom polygon |
Path Code Qualifiers
Example 1
decl lyrCond = dve_import_layer ("cond"); decl lyrCond2 = dve_import_layer ("cond2"); decl lyrError101 = dve_export_layer ("error101"); decl lyrPolyMerge = NULL; decl lyrPoly = NULL; lyrPolyMerge = dve_bool_not (lyrCond, lyrCond2); lyrPoly = dve_drc (poly_path_length (lyrPolyMerge) < 20.0, DVE_RN_PATH_CODE, DVE_RV_TOP, DVE_RN_PATH_LENGTH, DVE_RV_MIN_PATH); lyrError101 += dve_drc (all_edges (lyrPoly), "Polygon path length < 20.0");
Example 2
Consider the rule to extract a transistor channel formed by the overlap of polysilicon and diffusion:
lyrChannel = dve_bool_and(lyrPoly, lyrDiff);

The edge codes can be used to determine the width and the length of the transistor channel. The ends (source and drain) of the channel are formed by TIB edges. The sides of the channels are formed by BIT edges. In order to measure the width of the channel, define which edges of the polygon constitute the path of interest. In this case, specify that the path is made up of TIB edges:
dve_drc(...DVE_RN_PATH_CODE, DVE_RV_TIB,...);
To check the channel width as path length grater than 10:
lyrEnds = dve_drc(poly_path_length(lyrChannel) > 10, DVE_RN_PATH_CODE,
DVE_RV_TIB, DVE_RN_PATH_LENGTH, DVE_RV_MAX_PATH);
lyrError101 += dve_drc(all_edges(lyrSides ), "long channel");
To select 'thin' channels :
lyrSides = dve_drc(poly_path_length(lyrChannel) < 2, DVE_RN_PATH_CODE,
DVE_RV_TIB, DVE_RN_PATH_LENGTH, DVE_RV_MIN_ANTI_PATH);
lyrError101 += dve_drc(all_edges(lyrSides), "thin channel");
Badly formed channels can be rejected using poly_path_count():

lyrGoodChannel = dve_drc(poly_path_count(lyrChannel) == 2, DVE_RN_PATH_CODE, DVE_RV_TIB, DVE_RN_PATH_COUNT, DVE_RV_PATH_COUNT);
This rule means that you can accept only good channels when the number of TIB paths equal 2.
Polygon Selection Based on Edge Relationships
Polygon Selection Based on Edge Relationships (output layer contains polygons) selection function includes: poly_inter_layer().
Privacy
Statement
|
Terms of Use
|
Legal |
Contact Us
|
© Agilent 2000-2008 ![]()