<SROUTEFOLLOWPIN 
"SROUTE FOLLOWPINS   

Connects the power pins of macro cells placed in the core cell area to a power ring that encloses the core cell area.


Syntax

SR*OUTE FOLL*OWPINS 
{NE*T netID}... 	
L*AYER layerName 
WI*DTH width 	
[F*ILL | NOF*ILL] 	
[MA*XJOGLENGTH value] 	
[DI*RECTION {H*ORIZONTAL | V*ERTICAL}] 	
[CH*ANGELAYER layerName [WI*DTH width]] 	
[P*REROUTESFIXED | NOP*REROUTESFIXED] 	
[AR*EA pt pt][CO*REAREA pt pt] 	
[UN*DO] ;


Arguments

NET netID
Names the net or nets to route.

LAYER layerName
Names the layer on which to route.

WIDTH width
Determines the wire width to use, rounded down to the nearest even width. The actual width might be one database distance unit less than the input value.

FILL
Causes FOLLOWPINS to route across areas that are between two perpendicular wires and that are not filled by cells. Default: value of SRoute.FollowPins.Fill

NOFILL
Prevents FOLLOWPINS from routing across areas that are between two perpendicular wires and that are not filled by cells. Default: value of SRoute.FollowPins.Fill

MAXJOGLENGTH value
Perpendicular distance to extend targets for jog. Limits the length of jogs in and out of the core area. Range: 0 to 1000000. Default: 0

DIRECTION {HORIZONTAL | VERTICAL} 
Forces FOLLOWPINS to route in the HORIZONTAL or VERTICAL direction, even if that is not the preferred direction for the layer.

CHANGELAYER layerName WIDTH width 
Allows FOLLOWPINS to jog on layerName or to place a via and route on layerName to avoid an obstruction. If possible, FOLLOWPINS routes without placing a via, even when you select CHANGELAYER. The wire width is the same as on the original layer, unless you specify a width.

FOLLOWPINS creates vias on intersection points of feedthrough pins and wires that were created by the STRIPE command before the placement.

[PREROUTESFIXED | NOPREROUTESFIXED] 
Controls reentrant function. 

AREA pt pt
Restricts FOLLOWPINS to a specified rectangular area of the design. Usually, you do not need to specify this parameter. If specified, AREA must be large enough to cover the power rings to guarantee the connection of FOLLOWPINS wires to power rings. Default: full chip

COREAREA pt pt
Specifies boundary of the area to avoid when jogging to connect to target wires by the ring pin. If you specify both AREA and COREAREA, COREAREA must lie entirely within AREA and be smaller by an amount sufficient to leave room for routing. To make sure that SROUTE jogs correctly, COREAREA must be inside of the power rings without covering them. Default: COREAREA is the same size as AREA

UNDO
Deletes the special wires routed by a previous FOLLOWPINS command. For best results, respecify the previous parameters and add UNDO at the end of the FOLLOWPINS command line.


Description

SROUTE FOLLOWPINS routes nets connected by aligned sets of pins running through cells. Run SROUTE FOLLOWPINS before global routing, after placement is complete without overlaps. If you use clock tree synthesis, run PROUTE FOLLOWPINS after CROUTE CLUSTER but before CROUTE BALANCE for better results.

With SROUTE FOLLOWPINS, you have the option of specifying nets, layer, direction, and width. SROUTE FOLLOWPINS can route corner cells and I/O power rings. SROUTE FOLLOWPINS assumes that pin positions are established. If SROUTE STRIPE has created violations, eliminate them with SROUTE REPAIR before using SROUTE FOLLOWPINS.

SROUTE FOLLOWPINS routes to special pins on a net. Special pins are defined in the DEF file or with SROUTE ADDCELL SPIN. The shape, specified in the LEF file, must be abutment or feedthrough. For feedthrough pins, the width at the edge of their cells must be consistent with the width you specify in the command.

For SROUTE FOLLOWPINS to work correctly, pins defined in LEF as abutment pins must have regular shapes. Define irregular shapes as feedthrough pins. If you must define an irregular shape as abutment, ensure it doesn't violate LEF checking rules. 

Routing Lanes for SROUTE FOLLOWPINS

The position of routes is determined from abutment and feedthrough pins of the nets on the specified layer with the given width. If the pin shape is abutment in LEF, the route overlays the pin, which can result in long wires through many components. If the pin shape is feedthrough in LEF, the route stops at each edge of the component.

Perpendiculars consist of targets and wires of the nets being routed, in orthogonal directions on the layer being routed or an adjacent layer. SROUTE FOLLOWPINS puts a wire between two adjacent perpendiculars if a routed pin is in the area specified. If no such pin is in this area, a wire is still placed if you select FILL. If you do not specify FILL or NOFILL, the value of SRoute.FollowPins.Fill determines whether these gaps are filled.

SROUTE FOLLOWPINS routes on one layer by default, or possibly two if you select CHANGELAYER.

If a ring model is in the path of a wire, the wire stops at the intersection and inserts a via to the ring pin of its net. If no pin on the model belongs to the net being routed, the routes pass straight through the model and can cause violations. All such violations are marked with infos.

Reentrant FOLLOWPINS

When invoked repeatedly, SROUTE FOLLOWPINS can remove existing wires before creating new wires. For removal, each existing wire must meet these requirements:

- Have the same net, layer, and width as the newly specified wires, or the same layer and width of CHANGELAYER if Swires were created 

- Extend into the designated area


- Have a Modify.Code of FREE AREA and COREAREA

If you specify AREA, SROUTE FOLLOWPINS routes only the given area of the design. If you specify both COREAREA and AREA, COREAREA must lie entirely within AREA.

COREAREA can specify a region in which to search for cell components. Then you can use AREA to specify a region in which to check particular segments of pins - for example, VDD or GND - on the components you selected with COREAREA. Appropriate routing targets, that is the edges of pins in routing lanes, are created from these particular segments if they intersect AREA.

COREAREA must cover or intersect all the cell components with special pins that you want to connect. AREA must cover or intersect all special segments of the COREAREA-selected special pins that you want to connect; in addition, the gap between AREA and COREAREA must be reserved to include all visible obstructions outside the core, if any. If there are rings outside the core, AREA must cover them, too.

Corner Cells and I/O Power Rings

To route corner cells and I/O power rings, specify DIRECTION HORIZONTAL and DIRECTION VERTICAL so that SROUTE FOLLOWPINS can route in both directions on the same layer with the same width in a single iteration.

Jogs in SROUTE FOLLOWPINS

SROUTE FOLLOWPINS routes between targets, which can be ring pins on the cover model, or, if COREAREA is specified, wires outside COREAREA. Target wires can jog as long as they stay between COREAREA and AREA. MAXJOGLENGTH sets the maximum jog length of a jog around a core area, and also jogs outside the core area. There can be breaks in the target.

Special routing outside COREAREA or to ring pins can jog or create vias to avoid design rule violations or blockages. CHANGELAYER allows placing a via to and routing on layerName to avoid an obstruction. Wires are the same width as on the original layer unless you specify a WIDTH.

Jogs prefer lying on grid lines or halfway between them, depending on the width being used. Jogs connecting to the COREAREA use the first track or tracks outside COREAREA or outside the ring pin boundary of the ring macro and do not change layer if such jogs are created to avoid obstructions. 

SRoute.Jog.ExtraSpace determines the amount of extra space to leave between the special routing and the obstacle being avoided. If SRoute.Jog.BlockAdjacentLayers is true, pin obstructions on neighboring layers are treated as obstructions that SROUTE FOLLOWPINS must jog around.


Environmental Variables

SRoute.Check.SameNetRule 
BOOLEAN - Default: true - EXPERT 
If true, SROUTE dissects ring targets into pieces of shorter targets to allow for same-net spacing rules. Spacing violations can occur if set to false.

SRoute.Create.Opens 
BOOLEAN - Default: false - EXPERT 
When true, SROUTE FOLLOWPINS and SROUTE STRIPE create opens instead of shorts or spacing violations whenever simple routing connections are not available. You then can use SROUTE LPR to repair the opens.

SRoute.Via.OnOverlapOnly. 
BOOLEAN - Default: FALSE 
When true, SROUTE adds a via on top of the overlap metals.

SRoute.FollowPins.Fill 
BOOLEAN - Default: false - NOVICE 
If false, SROUTE leaves gaps between two adjacent perpendicular wires where no cells exist.

SRoute.Jog.BlockAdjacentLayers 
BOOLEAN - Default: true - NOVICE 
If true, SROUTE considers pin geometries on neighboring layers as obstructions for jogging, and I/O pins outside of power ring are also considered obstructions.

SRoute.Jog.ExtraSpace 
INTEGER [0, 100000] - Default: 0 - EXPERT 
Amount of extra space (in DRUs) to leave between the obstacle being avoided and the special wire requiring a jog. Used to enlarge jog distance for geometries like via overhang.

SRoute.Jog.MaxDetour 
INTEGER [0, 10000000] - Default: 100000 - EXPERT 
Maximum detour distance to use jog generation.

SRoute.Via.ExtraSpace 
INTEGER [0, 100000] - Default: 0 - EXPERT 
Amount to enlarge via distance for things like via overhang. Determines the amount of extra space (in DRUs) to leave between the via generated by the special router and the obstacle being overpassed.

SROUTE.VIA.SNAPMANUFACTURINGGRID 
BOOLEAN - Default: false - NOVICE 
If set to TRUE, sroute will round down the dimension of the vias to fit the nearest manufacturing grids.


Example

SROUTE FOLLOWPINS 
NET vdd 
NET vss 	
LAYER M1 
WIDTH 400 ;


Related Commands

SROUTE STRIPE routes special nets at approximately uniform intervals across the design.

SROUTE REPAIR rectifies design rule violations that involve stripes and placement.
"

	<Type QHELP>
	<Header "Sroute Follow Pin Command Help">
<beginAutoGen "** Do not edit from here to the endAutoGen tag **" >
<endAutoGen >
>
