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

DVE_RN_PATH_CODE

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 

Contents
Additional Resources