public class SeaOfGatesEngine.NeededRoute
extends java.lang.Object
Constructor and Description |
---|
SeaOfGatesEngine.NeededRoute(java.lang.String routeName,
PortInst aPi,
PortInst bPi,
ArcProto aArc,
ArcProto bArc,
java.util.List<PortInst> spineTaps,
double minWidth) |
Modifier and Type | Method and Description |
---|---|
void |
buildGrids(double aX,
double aY,
double bX,
double bY,
java.awt.geom.Rectangle2D bounds)
Method to construct grids for all layers in the vicinity of this route.
|
boolean |
checkEndSurround() |
void |
checkGridValidity()
Method to check the validity of the endpoints with respect to forced gridding.
|
void |
completeRoute(SeaOfGatesEngine.SearchVertex result) |
PortInst |
getAPort()
Method to return the PortInst on end A of this NeededRoute.
|
SeaOfGatesEngine.PossibleEndpoints |
getAPossibleEndpoints() |
double |
getArcWidth(int metNum,
double fX,
double fY,
double tX,
double tY)
Method to determine the width to use for an arc.
|
double |
getATaperLength() |
double |
getATaperWidth() |
double |
getAX()
Method to return the X coordinate of point A of this NeededRoute.
|
double |
getAY()
Method to return the Y coordinate of point A of this NeededRoute.
|
java.awt.geom.Rectangle2D |
getBounds()
Method to return the bounds of this route.
|
PortInst |
getBPort()
Method to return the PortInst on end B of this NeededRoute.
|
SeaOfGatesEngine.PossibleEndpoints |
getBPossibleEndpoints() |
double |
getBTaperLength() |
double |
getBTaperWidth() |
double |
getBX()
Method to return the X coordinate of point B of this NeededRoute.
|
double |
getBY()
Method to return the Y coordinate of point B of this NeededRoute.
|
SeaOfGates.SeaOfGatesTrack |
getClosestXGrid(int metNum,
double value)
Method to adjust an X value up to the nearest grid value.
|
SeaOfGates.SeaOfGatesTrack |
getClosestYGrid(int metNum,
double value)
Method to adjust an Y value up to the nearest grid value.
|
java.lang.String |
getErrorMessage() |
java.awt.geom.Rectangle2D[] |
getGRBuckets() |
SeaOfGates.SeaOfGatesTrack |
getLowerXGrid(int metNum,
double value)
Method to adjust an X value down to the lower grid value.
|
SeaOfGates.SeaOfGatesTrack |
getLowerYGrid(int metNum,
double value)
Method to adjust an Y value down to the lower grid value.
|
SeaOfGatesEngine.SOGBound |
getMetalBlockage(MutableInteger netID,
int metNo,
int maskColor,
double halfWidth,
double halfHeight,
double[] surround,
double x,
double y)
Method to see if a proposed piece of metal has DRC errors (ignoring notches).
|
java.lang.String |
getName() |
MutableInteger |
getNetID() |
int |
getNumInBatch() |
boolean |
getRoutedSucess() |
int |
getRouteInBatch() |
double[] |
getSpacingRule(int layer,
double width,
double length)
Method to determine the design rule spacing between two pieces of a given layer.
|
double |
getUntaperedArcWidth(int metNum) |
SeaOfGates.SeaOfGatesTrack |
getUpperXGrid(int metNum,
double value)
Method to adjust an X value up to the higher grid value.
|
SeaOfGates.SeaOfGatesTrack |
getUpperYGrid(int metNum,
double value)
Method to adjust an Y value up to the higher grid value.
|
RTNode<SeaOfGatesEngine.SOGBound> |
getViaTree(Layer lay)
Method to return an R-Tree of blockages on a given via Layer.
|
SeaOfGatesEngine.Wavefront |
getWavefront() |
SeaOfGatesEngine.Wavefront |
getWavefrontAtoB() |
SeaOfGatesEngine.Wavefront |
getWavefrontBtoA() |
SeaOfGates.SeaOfGatesTrack[][] |
getXRoutingGrid() |
SeaOfGates.SeaOfGatesTrack[][] |
getYRoutingGrid() |
boolean |
is2X(int metNum,
double fX,
double fY,
double tX,
double tY)
Method to determine whether a given layer of metal runs on 2X width wires or not.
|
boolean |
isAlreadyRouted() |
boolean |
isOnXGrid(int metNum,
double value) |
boolean |
isOnYGrid(int metNum,
double value) |
void |
makeWavefronts() |
boolean |
preventArc(int metNum)
Method to tell whether a given layer of metal can be used in the route.
|
java.util.Iterator<SeaOfGatesEngine.SOGBound> |
searchViaTree(Layer lay,
java.awt.geom.Rectangle2D bound) |
void |
setBatchInfo(com.sun.electric.tool.routing.seaOfGates.SeaOfGatesEngine.RouteBatch batch,
int routeInBatch) |
void |
setDebugging(java.lang.Boolean fromA) |
void |
setNetID(MutableInteger id) |
public boolean getRoutedSucess()
public boolean isAlreadyRouted()
public SeaOfGatesEngine.Wavefront getWavefront()
public SeaOfGatesEngine.Wavefront getWavefrontAtoB()
public SeaOfGatesEngine.Wavefront getWavefrontBtoA()
public double getATaperWidth()
public double getBTaperWidth()
public double getATaperLength()
public double getBTaperLength()
public SeaOfGatesEngine.PossibleEndpoints getAPossibleEndpoints()
public SeaOfGatesEngine.PossibleEndpoints getBPossibleEndpoints()
public java.lang.String getErrorMessage()
public void setDebugging(java.lang.Boolean fromA)
public void checkGridValidity()
public SeaOfGates.SeaOfGatesTrack[][] getXRoutingGrid()
public SeaOfGates.SeaOfGatesTrack[][] getYRoutingGrid()
public void buildGrids(double aX, double aY, double bX, double bY, java.awt.geom.Rectangle2D bounds)
public SeaOfGates.SeaOfGatesTrack getLowerXGrid(int metNum, double value)
metNum
- the metal layer number (0-based).value
- the X value to be adjusted.public SeaOfGates.SeaOfGatesTrack getUpperXGrid(int metNum, double value)
metNum
- the metal layer number (0-based).value
- the X value to be adjusted.public SeaOfGates.SeaOfGatesTrack getClosestXGrid(int metNum, double value)
metNum
- the metal layer number (0-based).value
- the X value to be adjusted.public SeaOfGates.SeaOfGatesTrack getLowerYGrid(int metNum, double value)
metNum
- the metal layer number (0-based).value
- the Y value to be adjusted.public SeaOfGates.SeaOfGatesTrack getUpperYGrid(int metNum, double value)
metNum
- the metal layer number (0-based).value
- the Y value to be adjusted.public SeaOfGates.SeaOfGatesTrack getClosestYGrid(int metNum, double value)
metNum
- the metal layer number (0-based).value
- the Y value to be adjusted.public boolean isOnXGrid(int metNum, double value)
public boolean isOnYGrid(int metNum, double value)
public void makeWavefronts()
public void setBatchInfo(com.sun.electric.tool.routing.seaOfGates.SeaOfGatesEngine.RouteBatch batch, int routeInBatch)
public int getNumInBatch()
public int getRouteInBatch()
public MutableInteger getNetID()
public void setNetID(MutableInteger id)
public boolean is2X(int metNum, double fX, double fY, double tX, double tY)
metNum
- the 0-based layer of metal.public double getArcWidth(int metNum, double fX, double fY, double tX, double tY)
metNum
- the metal number of the arc.fX
- X coordinate of one point on the arc.fY
- Y coordinate of one point on the arc.tX
- X coordinate of another point on the arc.tY
- Y coordinate of another point on the arc.public double getUntaperedArcWidth(int metNum)
public double[] getSpacingRule(int layer, double width, double length)
layer
- the layer index.width
- the width of one of the pieces (-1 to use default).length
- the length of one of the pieces (-1 to use default).public boolean preventArc(int metNum)
metNum
- the metal number (starting at 1).public java.lang.String getName()
public java.awt.geom.Rectangle2D getBounds()
public PortInst getAPort()
public PortInst getBPort()
public double getAX()
public double getAY()
public double getBX()
public double getBY()
public RTNode<SeaOfGatesEngine.SOGBound> getViaTree(Layer lay)
lay
- the via Layer to examine.public java.util.Iterator<SeaOfGatesEngine.SOGBound> searchViaTree(Layer lay, java.awt.geom.Rectangle2D bound)
public java.awt.geom.Rectangle2D[] getGRBuckets()
public boolean checkEndSurround()
public SeaOfGatesEngine.SOGBound getMetalBlockage(MutableInteger netID, int metNo, int maskColor, double halfWidth, double halfHeight, double[] surround, double x, double y)
netID
- the network ID of the desired metal (blockages on this netID are ignored).metNo
- the level of the metal.maskColor
- the mask number of the metal.halfWidth
- half of the width of the metal.halfHeight
- half of the height of the metal.surround
- is the maximum possible DRC surround around the metal (index 0 for X, index 1 for Y).x
- the X coordinate at the center of the metal.y
- the Y coordinate at the center of the metal.public void completeRoute(SeaOfGatesEngine.SearchVertex result)