1
New Features
Overview
Multi-Mask Patterning Technology
The multi-mask patterning technology allows you to define multi-mask patterns for layers. You can define multi-mask statements that split a single layer into two or three masks. The syntax enhancements made to LEF/DEF v5.8 support more than three masks, though most applications support two or three masks only.
The subsequent sections describe the new syntax changes that have been made to incorporate this new feature.
New LEF Features
The following sections describe the enhancements that have been made to support multi-mask patterning for LEF.
LEF Layers Support Masks
The MASK statement was added to specify how many masks for double- or triple-patterning will be used for a specified layer. You can use this statement for layers - cut, routing, implant, overlap, and/or masterslice.
Includes the following new syntax (in bold):
LAYER layerName
TYPE ROUTING ; #or TYPE CUT, IMPLANT, MASTERSLICE, OVERLAP
[MASK numMasks ;]
Fixed Masks for Layers and Macros
Some technologies do not allow mask shifting for cells using multi-mask patterning, e.g., pin and routing shapes are all pre-colored and must not be shifted to other masks. The FIXEDMASK statement was added to indicate that mask shifting is not allowed. All the LEF macro pin mask assignments are kept fixed and cannot be shifted to a different mask.
Includes the following new syntax (in bold):
FIXEDMASK ;
LAYER <statement>
MACRO macroName
[CLASSclassName[subclassName] ;]
[FIXEDMASK ;]
...
LEF Via Adds Masks for Fixed Vias
For fixed vias - rectangle or polygon - the masks in the via-master for cut layer are required for multi-cut vias. The VIARULE statement was enhanced to include masks. The MASK statement indicates which mask for double- or triple-patterning lithography is to be applied to the shapes defined using the RECT or POLYGON statements of the via master.
Includes the following new syntax (in bold):
VIA viaName [DEFAULT]
{ VIARULE viaRuleName ;
CUTSIZExSizeySize;
LAYERSbotMetalLayercutLayertopMetalLayer;
CUTSPACINGxCutSpacingyCutSpacing;
ENCLOSURExBotEncyBotEncxTopEncyTopEnc;
[ROWCOLnumCutRowsnumCutCols;]
[ORIGINxOffsetyOffset;]
[OFFSETxBotOffsetyBotOffsetxTopOffsetyTopOffset;]
[PATTERNcutPattern;]
}
| [RESISTANCE resistValue ;]
{LAYER layerName ;
{ RECT [MASK maskNum]ptpt;
| POLYGON [MASK maskNum]ptptpt...; } ...
}...
}
[PROPERTYpropNamepropVal;] ...
END viaName
Macro Layer Geometries Support Masks
Macro layer geometries support multi-mask patterning. Three different masks can be added to the same layer geometries. The MASK statement was added to indicate which mask from double- or triple-patterning is to be used for path, rectangle, polygon, or via geometries.
Includes the following new syntax (in bold):
{ LAYER layerName
[EXCEPTPGNET]
[SPACINGminSpacing| DESIGNRULEWIDTHvalue] ;
[WIDTH width ;]
{ PATH [MASK maskNum] pt ... ;
| PATH [MASK maskNum] ITERATE pt ... stepPattern ;
| RECT [MASK maskNum] pt pt ;
| RECT [MASK maskNum] ITERATE pt pt stepPattern ;
| POLYGON [MASK maskNum] pt pt pt pt ... ;
| POLYGON [MASK maskNum] ITERATE pt pt pt pt ... stepPattern ;
} ...
| VIA [MASK viaMaskNum] pt viaName ;
| VIA ITERATE [MASK viaMaskNum]ptviaNamestepPattern;
} ...
For syntax information, see
New DEF Features
The following sections describe the enhancements that have been made to support multi-mask patterning for DEF.
Routing Blockages Add Mask Information
The BLOCKAGES section was enhanced to include masks. The MASK statement indicates which mask for double- or triple-patterning lithography is to be used for the specified shapes.
Includes the following new syntax (in bold):
[BLOCKAGES numBlockages ;
[- LAYER layerName
[+ COMPONENT compName | + SLOTS | + FILLS | + PUSHDOWN
| + EXCEPTPGNET]
[+ SPACINGminSpacing| + DESIGNRULEWIDTHeffectiveWidth]
[+ MASK maskNum]
{RECTptpt| POLYGONptptpt...} ...
;] ...
END BLOCKAGES]
Component Mask Shift Multi-Patterning Layers
The COMPONENTMASKSHIFT statement defines which layers of a component are allowed to be shifted from the original mask colors in the LEF. This can be useful to shift all the layers of a specific component in order to align the masks with other component or router mask settings to increase routing density. This definition allows a specific component to compactly describe the mask shifting for that component.
Includes the following new syntax:
[COMPONENTMASKSHIFTlayer1[layer2...] ;]
Components Adds Mask Shift Information
Some applications require the ability to “shift” the mask of pins and obstructions on a certain layer for a specific component to better align the pin masks with the routing masks.
The MASKSHIFT statement was added to allow shifting of the cell-master masks used in double- or triple-patterning for specific layers of an instance of the cell-master.
Includes the following new syntax (in bold):
COMPONENTS numComps ;
[-compNamemodelName
[+ EEQMASTER macroName]
[+ SOURCE {NETLIST | DIST | USER | TIMING}]
[+ {FIXED ptorient| COVERptorient| PLACEDptorient
| UNPLACED} ]
[+ MASKSHIFT shiftLayerMasks]
[+ HALO [SOFT]leftbottomrighttop]
[+ ROUTEHALOhaloDistminLayermaxLayer]
[+ WEIGHT weight]
[+ REGION regionName]
[+ PROPERTY {propNamepropVal} ...]...
;] ...
END COMPONENTS
Fills Adds Masks
In order to support multi-patterning technologies up to three different masks for the same layer can be added.
The MASK statement was added to specify which mask for double- or triple-patterning lithography is to be applied to the specified rectangles, polygons, or via shapes on each layer.
Includes the following new syntax (in bold):
[FILLS numFills ;
[- LAYER layerName [+ MASK maskNum] [+ OPC]
{RECTptpt
| POLYGONptptpt...} ... ;] ...
[- VIAviaName[+ MASK viaMaskNum] [+ OPC]pt... ;] ...
END FILLS]
Nets Routing Points Enhancements
Nets Adds Rectangle and/or Virtual Connection
The NETS section was enhanced to provide the ability to create a rectangle or add a virtual connection to maintain the symbolic routing graph.
The RECT statement allows creating a rectangle from the previous routing points. The VIRTUAL statement indicates that there is a virtual connection between the previous point and the new routing point.
Includes the following new syntax (in bold):
{ (xy[extValue] )
{ (xy[extValue] )
|viaName[orient]
| RECT ( deltax1 deltay1 deltax2 deltay2 )
| VIRTUAL ( x y ) } } ...
Nets Adds Masks
The NETS section routing points was enhanced to add masks - up to three different masks for the same layer can be added.
Includes the following new syntax (in bold):
{ (xy[extValue] )
[MASK maskNum] (xy[extValue] )
| [MASK viaMaskNum]viaName[orient]]
| [MASK maskNum] RECT (deltax1deltay1deltax2deltay2)
| VIRTUAL (xy) } } ...
Special Nets Special Wiring Enhancements
To support multi-mask patterning up to three different masks for the same layers can be added to special nets.
A new VIA statement was added to make it more efficient to specify several power-vias.
Additionally, the route status - cover, fixed, routed, shield, and shape - can be applied to polygons, rectangles, and vias.
Includes the following new syntax (in bold):
[ [+ COVER | + FIXED | + ROUTED | + SHIELD shieldNetName]
[+ SHAPE shapeType] [+ MASK maskNum]
+ POLYGON layerName pt pt pt...
| + RECT layerName pt pt
| + VIA viaName [orient] pt ...
| {+ COVER | + FIXED | + ROUTED | + SHIELD shieldNetName}
layerNamerouteWidth
[+ SHAPE shapeType]
[+ STYLE styleNum]
routingPoints
[NEWlayerNamerouteWidth
[+ SHAPE shapeType]
[+ STYLE styleNum]
routingPoints
] ...
] ...
New syntax for routing points:
(xy[extValue] )
{ [MASK maskNum] (xy[extValue] )
| [MASK viaMaskNum]viaName[orient]
[DOnumXBYnumYSTEPstepXstepY]
}...
DEF Via Adds Mask
For fixed vias, rectangle or polygon, the masks in the via-master for cut-layer shapes are required for multi-cut vias. The MASK statement indicates which mask for double- or triple-patterning lithography is to be applied to the defined shapes.
Includes the following new syntax (in bold):
[VIAS numVias ;
[- viaName
{ + VIARULE viaRuleName
+ CUTSIZExSizeySize
+ LAYERSbotmetalLayercutLayertopMetalLayer
+ CUTSPACINGxCutSpacingyCutSpacing
+ ENCLOSURExBotEncyBotEncxTopEncyTopEnc
[+ ROWCOLnumCutRowsNumCutCols]
[+ ORIGINxOffsetyOffset]
[+ OFFSETxBotOffsetyBotOffsetxTopOffsetyTopOffset]
[+ PATTERN cutPattern]
|[ + RECTlayerName[+ MASK maskNum]ptpt
| + POLYGONlayerName[+ MASK maskNum]ptptpt] ...
}
;] ...
END VIAS]
Tracks Adds Mask
The routing tracks can now have mask assignments to aid alignment of routing masks inside a block with the level above. The MASK statement indicates which mask for double- or triple-patterning lithography to use for the first routing track.
Includes the following new syntax (in bold):
[TRACKS
[{X | Y}startDOnumtracksSTEPspace
[MASK maskNum [SAMEMASK]]
[LAYER layerName ...]
;] ...]
Pins Adds Mask
The PINS syntax has been modified in include mask attributes. The MASK statement indicates which mask from double- or triple-patterning to use for pins or via shapes on each layer.
Includes the following new syntax (in bold):
[PINS numPins ;
[ [-pinName+ NETnetName]
...
[[+ PORT]
[+ LAYER layerName
[MASK maskNum]
[SPACINGminSpacing| DESIGNRULEWIDTHeffectiveWidth]
ptpt
|+ POLYGON layerName
[MASK maskNum]
SPACINGminSpacing| DESIGNRULEWIDTHeffectiveWidth]
ptptpt...
|+ VIA viaName
[MASK viaMaskNum]
pt
] ...
[+ COVERptorient| FIXEDptorient| PLACEDptorient]
]...
; ] ...
END PINS]
For syntax information, see
Return to top