blob: 6ecc9950bb3496c2237c61b03ea6c09a12c7a8ff [file] [log] [blame]
// This rule is created at Fri Aug 18 13:52:42 2017
//////////////////////////////////////////////////////////////////////////////////////////////////////
// ----------------------------------------------------------------------------------------------- //
// | GLOBALFOUNDRIES | //
// | COMPANY CONFIDENTIAL | //
// ------------------------------------------------------------------------------------------------ //
// | N O T I C E | //
// | This Document contains information of a proprietary nature and is delivered on the express | //
// | condition that it is not to be disclosed or reproduced in whole or in part without the | //
// | written consent of GLOBALFOUNDRIES | //
// | | //
// | This restriction does not limit the right to disclose information obtained from other | //
// | sources. | //
// ------------------------------------------------------------------------------------------------ //
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////
// This files contains all the macro used by this deck
//////////////////////////////////////////////////////////
dmacro checkMinWidth_requiredLyr_1 inLyr minWidth reqInLyr {
// inLyr = Input layer
// minWidth = Min. Width
// reqInLyr = Input layer to be inside the Referenced (Required) Layer
inte inLyr inLyr -lt minWidth -abut lt 90 -single_point -output region;
select -outside reqInLyr inLyr;
}
dmacro checkMinWidth_requiredLyr_ifLyrExist_1 inLyr minWidth reqInLyr existLyr {
// inLyr = Input Layer
// minWidth = Min. Width
// reqInLyr = Input layer to be inside the Referenced (Required) Layer
// existLyr = Lyr that must exist for this check to be valid
select -outside bulk existLyr -not -outputlayer a:1;
and inLyr a:1 -outputlayer a;
and reqInLyr a:1 -outputlayer b;
inte a a -lt minWidth -abut lt 90 -single_point -output region;
select -outside b a;
}
dmacro checkEncl_inOutAlso_1 inLyr outLyr minEnc {
// inLyr = Enclosed layer (smaller polygon)
// outLyr = Enclosing layer (bigger polygon)
// minEnc = Min. enclose value
enc inLyr outLyr -lt minEnc -abut lt 90 -single_point -output region -inside_also -outside_also;
}
dmacro checkSpaceL1_requiredLyr_1 inLyr minSpace reqInLyr {
// inLyr = Input layer
// minSpace = Min. spacing
// reqInLyr = Input layer to be inside the Referenced (Required) Layer
exte inLyr inLyr -lt minSpace -abut lt 90 -single_point -output region;
select -outside reqInLyr inLyr;
edge_boolean -inside reqInLyr inLyr;
}
dmacro checkSpaceL1_requiredLyr_ifLyrExist_1 inLyr minSpace reqInLyr existLyr {
// inLyr = Input layer
// minSpace = Min. spacing
// reqInLyr = Input layer to be inside the Referenced (Required) Layer
// existLyr = Lyr that must exist for this check to be valid
select -outside bulk existLyr -not -outputlayer a:1;
and inLyr a:1 -outputlayer a;
and reqInLyr a:1 -outputlayer b;
exte a a -lt minSpace -abut lt 90 -single_point -output region;
select -outside b inLyr;
edge_boolean -inside b inLyr;
}
dmacro checkBrokenRing inLyr {
// inLyr = Input layer
holes inLyr -inner -outputlayer inLyr_hole;
select -touch inLyr inLyr_hole -not;
}