B
Optimizing LEF Technology for Place and Route
This appendix contains the following information.
- Overview
- Guidelines for Routing Pitch
- Guidelines for Wide Metal Spacing
- Guidelines for Wire Extension at Vias
- Guidelines for Default Vias
- Guidelines for Stack Vias (MAR Vias) and Samenet Spacing
- Example of an Optimized LEF Technology File
Overview
This appendix provides guidelines for defining the optimized technology section in the LEF file to get the best performance using Cadence® place-and-route tools.
For the following guidelines, the preferred routing direction for metal1 and all other odd metal layers is horizontal. The preferred routing direction for metal2 and all other even metal layers is vertical. Standard cells are arranged in horizontal rows.
This appendix discusses the following LEF statements.
LAYERlayerNameTYPE ROUTING;PITCHdistance;WIDTHdefWidth;SPACINGminSpacing[RANGEminwidthmaxwidth] ;WIREEXTENSIONvalue;
ENDlayerName
VIAviaNameDEFAULT[TOPSTACKONLY]LAYERlayerNameRECTptpt; ...
ENDviaName
SPACINGSAMENETlayerNamelayerNameminSpace[STACK] ;
ENDSPACING
Guidelines for Routing Pitch
The following is a summary for choosing the right pitch for an existing design library. For detailed information on determining routing pitch, refer to the Cadence Abstract Generator User Guide.

DESIGN RULE No. 1

Although the minimum metal1 routing pitch is 0.485um from the design rule, you should use 0.56um instead, to match the metal3 routing pitch in the same preferred direction.
LEF Construct No. 1
LAYERmetal1TYPEROUTING ; WIDTH 0.23 ; SPACING 0.23 ; PITCH 0.56 ; DIRECTION HORIZONTAL ;
END metal1
LAYER metal3 TYPE ROUTING ; WIDTH 0.28 ; SPACING 0.28 ; PITCH 0.56 ; DIRECTION HORIZONTAL ;
END metal3
Recommendations
- Use line-to-via spacing for both the horizontal and vertical direction.
- Allow diagonal vias with the routing pitch.
-
Align the routing pitch for
metal1andmetal2, with the pins inside the standard cells. -
Have uniform routing pitch in the same preferred direction. The pitch ratio should be 2 - 3 or 1 - 2. It is better to define the
metal1pitch larger than necessary in order to achieve a 1 - 1 ratio because themetal1width is usually smaller themetal2andmetal3widths.
Pitch Recommendations for Library Development
- All pins should be on the grid, and only those portions of the pins that are accessible to the router should be modeled as pins. For example, 45 degree pin geometry.
-
The height of the cell should be the even multiple of the
metal1pitch, and the width of the cell should be the even multiple of themetal2pitch. -
The blockage modeling, especially for
metal1, should be simplified as much as possible. For example, it is very common for the entire area within the cell boundary to be obstructed inmetal1, so use a single rectangular blockage instead of many small blockages.
Guidelines for Wide Metal Spacing
The SPACING statement in the LEF LAYER section is applied to both regular and special wires. You can use the Cadence® ultra router option frouteUseRangeRule to determine which objects to check against the SPACING RANGE statement. The default checks both pin and obstruction.
DESIGN RULE No. 2
|
Minimum space between metal lines with one or both metal line width and length are greater than 10um = 0.6 μm |

LEF CONSTRUCT No. 2
LAYER metal1 WIDTH 0.23 ; SPACING 0.23 ; SPACING 0.6 RANGE 10.002 1000 ;
END metal1
Guidelines for Wire Extension at Vias
The following guidelines are for wire extension at vias.
DESIGN RULE No. 3
|
Minimum extension of |

LEF CONSTRUCT No. 3
LAYER metal2 TYPE ROUTING ; WIDTH 0.28 ; SPACING 0.28 ; PITCH 0.56 ; WIREEXTENSION 0.19 ; DIRECTION VERTICAL ;
END metal2
VIA via23 DEFAULT LAYER metal2 ; RECT -0.14 -0.14 0.14 0.14 ; # Use square via LAYER cut2 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal3 ; RECT -0.14 -0.14 0.14 0.14 ; # Use square via
END via23
Recommendations
-
Use the
WIREEXTENSIONstatement instead of defining multiple vias because the width of themetal2incut1is the same as the default routing width of themetal2layer. -
The
WIREEXTENSIONstatement only extends wires and not vias. For 65nm and below,WIREEXTENSIONis no longer recommended because it may generate some advance rule violations if wires and vias have different widths. -
Define the
DEFAULTVIAas a square via.
Guidelines for Default Vias
The following guidelines are for default vias.
DESIGN RULE No. 4
|
Minimum extension of |

LEF CONSTRUCT No. 4 (Case B)
LAYER metal1 TYPE ROUTING ; WIDTH 0.23 ; SPACING 0.23 ; PITCH 0.56 ; DIRECTION HORIZONTAL ;
END metal1
VIA via12_H DEFAULT
LAYER metal1 ;
RECT -0.19 -0.14 0.19 0.14 ; # metal1 end-of-line
extension 0.6 in both directions
LAYER cut1 ;
RECT -0.13 -0.13 0.13 0.13 ;
LAYER metal2 ;
RECT -0.14 -0.14 0.14 0.14 ;
END via12_H
VIA via12_V DEFAULT
LAYER metal1 ;
RECT -0.14 -0.19 0.14 0.19 ; # metal1 end-of-line
extension 0.6 in both directions
LAYER cut1 ;
RECT -0.13 -0.13 0.13 0.13 ;
LAYER metal2 ;
RECT -0.14 -0.14 0.14 0.14 ;
END via12_V
Recommendations
-
If the width of the end-of-line metal extension is the same as the default metal routing width, as in Case A, use the
WIREEXTENSIONstatement in the LEFLAYERsection, and define a square via in theDEFAULTVIAsection. -
If the width of the end-of-line metal extension is the same as the width of the via metal, as in Case B, define one horizontal
DEFAULTVIAand one verticalDEFAULTVIAto cover the required metal extension area in both pregerred and non-preferred routing directions. Do not use theWIREEXTENSIONstatement in the LEFLAYERsection.
Guidelines for Stack Vias (MAR Vias) and Samenet Spacing
The following guidelines are for stack vias (minimum area rule) and SAMENET SPACING.
DESIGN RULE No. 5
|
|
|
|
|

LEF CONSTRUCT No. 5
VIA via23_stack_north DEFAULT LAYER metal2 ; RECT -0.14 -0.14 0.14 0.6 ; # MAR = 0.28 x 0.74 LAYER cut2 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal3 ; RECT -0.14 -0.14 0.14 0.14 ;
END via23_stack_north
VIA via23_stack_south DEFAULT LAYER metal2 ; RECT -0.14 -0.6 0.14 0.14 ; # MAR = 0.28 x 0.74 LAYER cut2 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal3 ; RECT -0.14 -0.14 0.14 0.14 ;
END via23_stack_south
VIA via34_stack_east DEFAULT LAYER metal3 ; RECT -0.14 -0.14 0.6 0.14 ; # MAR = 0.28 x 0.74 LAYER cut3 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal4 ; RECT -0.14 -0.14 0.14 0.14 ;
END via34_stack_east
VIA via34_stack_west DEFAULT LAYER metal3 ; RECT -0.6 -0.14 0.14 0.14 ; # MAR = 0.28 x 0.74 LAYER cut3 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal4 ; RECT -0.14 -0.14 0.14 0.14 ;
END via34_stack_west
Recommendations
- The minimum metal routing segment (two vias between one pitch grid) with or without end-of-line metal extension should automatically satisfy the minimum area rule.
-
If vias are stackable, create the
TOPSTACKONLYvias with a rectangular shape blocking only one neighboring grid for both sides of the preferred routing direction. In other words, one north oriented and one south oriented for vertical-preferred routing layers, and one east oriented and one west oriented for horizontal-preferred routing layers. - Use slightly larger dimensions for the via size to make them an even number, so they snap to the manufacturing grids.
-
The
STACKkeyword in theSAMENETSPACINGstatements only allows vias to be fully overlapped (stacked) by SROUTE commands. To allow vias to be partially overlapped, set the environment variableSROUTE.ALLOWOVERLAPINSTACKVIAtoTRUE. -
The
metal1layer does not require a MAR via because all metal1 pins should satisfy the minimum area rules.
Example of an Optimized LEF Technology File
VERSION 5.8 ;
BUSBITCHARS "[]" ;
UNITS DATABASE MICRONS 100 ;
END UNITS
LAYER metal1 TYPE ROUTING ; WIDTH 0.23 ; SPACING 0.23 ; SPACING 0.6 RANGE 10.02 1000 ; PITCH 0.56 ; DIRECTION HORIZONTAL ;
END metal1
LAYER cut1 TYPE CUT ;
END cut1
LAYER metal2 TYPE ROUTING ; WIDTH 0.28 ; SPACING 0.28 ; SPACING 0.6 RANGE 10.02 1000 ; PITCH 0.56 ; WIREEXTENSION 0.19 ; DIRECTION VERTICAL ;
END metal2
LAYER cut2 TYPE CUT ;
END cut2
LAYER metal3 TYPE ROUTING ; WIDTH 0.28 ; SPACING 0.28 ; SPACING 0.6 RANGE 10.02 1000 ; PITCH 0.56 ; WIREEXTENSION 0.19 ; DIRECTION HORIZONTAL ;
END metal3
LAYER cut3 TYPE CUT ;
END cut3
LAYER metal4 TYPE ROUTING ; WIDTH 0.28 ; SPACING 0.28 ; SPACING 0.6 RANGE 10.02 1000 ; PITCH 0.56 ; WIREEXTENSION 0.19 ; DIRECTION VERTICAL ;
END metal4
LAYER cut4 TYPE CUT ;
END cut4
LAYER metal5 TYPE ROUTING ; WIDTH 0.28 ; SPACING 0.28 ; SPACING 0.6 RANGE 10.02 1000 ; PITCH 0.56 ; WIREEXTENSION 0.19 ; DIRECTION HORIZONTAL ;
END metal5
LAYER cut5 TYPE CUT ;
END cut5
LAYER metal6 TYPE ROUTING ; WIDTH 0.44 ; SPACING 0.46 ; SPACING 0.6 RANGE 10.02 1000 ; PITCH 1.12 ; DIRECTION VERTICAL ;
END metal6
VIA via12_H DEFAULT LAYER metal1 ; RECT -0.19 -0.14 0.19 0.14 ; # metal1 end-of-line ext 0.6 LAYER cut1 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal2 ; RECT -0.14 -0.14 0.14 0.14 ;
END via12_H
VIA via12_V DEFAULT LAYER metal1 ; RECT -0.14 -0.19 0.14 0.19 ; # metal1 end-of-line ext 0.6 LAYER cut1 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal2 ; RECT -0.14 -0.14 0.14 0.14 ;
END via12_V
VIA via23 DEFAULT LAYER metal2 ; RECT -0.14 -0.14 0.14 0.14 ; LAYER cut2 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal3 ; RECT -0.14 -0.14 0.14 0.14 ;
END via23
VIA via34 DEFAULT LAYER metal3 ; RECT -0.14 -0.14 0.14 0.14 ; LAYER cut3 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal4 ; RECT -0.14 -0.14 0.14 0.14 ;
END via34
VIA via45 DEFAULT LAYER metal4 ; RECT -0.14 -0.14 0.14 0.14 ; LAYER cut4 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal5 ; RECT -0.14 -0.14 0.14 0.14 ;
END via45
VIA via56_H DEFAULT LAYER metal5 ; RECT -0.24 -0.19 0.24 0.19 ; LAYER cut5 ; RECT -0.18 -0.18 0.18 0.18 ; LAYER metal6 ; RECT -0.27 -0.27 0.27 0.27 ;
END via56_H
VIA via56_V DEFAULT LAYER metal5 ; RECT -0.19 -0.24 0.19 0.24 ; LAYER cut5 ; RECT -0.18 -0.18 0.18 0.18 ; LAYER metal6 ; RECT -0.27 -0.27 0.27 0.27 ;
END via56_V
VIA via23_stack_north DEFAULT LAYER metal2 ; RECT -0.14 -0.14 0.14 0.6 ; # MAR = 0.28 x 0.74 LAYER cut2 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal3 ; RECT -0.14 -0.14 0.14 0.14 ;
END via23_stack_north
VIA via23_stack_south DEFAULT LAYER metal2 ; RECT -0.14 -0.6 0.14 0.14 ; # MAR = 0.28 x 0.74 LAYER cut2 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal3 ; RECT -0.14 -0.14 0.14 0.14 ;
END via23_stack_south
VIA via34_stack_east DEFAULT LAYER metal3 ; RECT -0.14 -0.14 0.6 0.14 ; # MAR = 0.28 x 0.74 LAYER cut3 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal4 ; RECT -0.14 -0.14 0.14 0.14 ;
END via34_stack_east
VIA via34_stack_west DEFAULT LAYER metal3 ; RECT -0.6 -0.14 0.14 0.14 ; # MAR = 0.28 x 0.74 LAYER cut3 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal4 ; RECT -0.14 -0.14 0.14 0.14 ;
END via34_stack_west
VIA via45_stack_north DEFAULT LAYER metal4 ; RECT -0.14 -0.14 0.14 0.6 ; # MAR = 0.28 x 0.74 LAYER cut4 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal5 ; RECT -0.14 -0.14 0.14 0.14 ;
END via45_stack_north
VIA via45_stack_south DEFAULT LAYER metal4 ; RECT -0.14 -0.6 0.14 0.14 ; # MAR = 0.28 x 0.74 LAYER cut4 ; RECT -0.13 -0.13 0.13 0.13 ; LAYER metal5 ; RECT -0.14 -0.14 0.14 0.14 ;
END via45_stack_south
VIA via56_stack_east DEFAULT LAYER metal5 ; RECT -0.19 -0.19 0.35 0.19 ; # MAR = 0.38 x 0.54 LAYER cut5 ; RECT -0.18 -0.18 0.18 0.18 ; LAYER metal6 ; RECT -0.27 -0.27 0.27 0.27 ;
END via56_stack_east
VIA via56_stack_west DEFAULT LAYER metal5 ; RECT -0.35 -0.19 0.19 0.19 ; # MAR = 0.38 x 0.54 LAYER cut5 ; RECT -0.18 -0.18 0.18 0.18 ; LAYER metal6 ; RECT -0.27 -0.27 0.27 0.27 ;
END via56_stack_west
Return to top