public class Connection extends Object implements Comparable<Connection>
SitePinInst
instances of a Net
instance.Constructor and Description |
---|
Connection(int id,
SitePinInst source,
SitePinInst sink,
NetWrapper netWrapper) |
Modifier and Type | Method and Description |
---|---|
void |
addAltSinkRnode(RouteNode sinkRnode) |
void |
addRnode(RouteNode rn)
Add the give RouteNode to the list of those used by this Connection.
|
String |
bbRectangleString() |
void |
calculateCriticality(float maxDelay,
float maxCriticality,
float criticalityExponent)
Computes criticality of a connection.
|
int |
compareTo(Connection that) |
void |
computeConnectionBoundingBox(short boundingBoxExtensionX,
short boundingBoxExtensionY,
int[] nextLagunaColumn,
int[] prevLagunaColumn)
Computes the connection bounding box based on the geometric center of the net, source and sink rnodes,
and for cross SLR connections the location of Laguna columns.
|
void |
computeHpwl()
Computes the half-perimeter wirelength of connection based on the source and sink rnodes.
|
void |
enlargeBoundingBox(int horizontalIncrement,
int verticalIncrement) |
List<RouteNode> |
getAltSinkRnodes() |
float |
getCriticality() |
short |
getHpwl() |
NetWrapper |
getNetWrapper() |
List<Node> |
getNodes() |
List<RouteNode> |
getRnodes() |
SitePinInst |
getSink() |
RouteNode |
getSinkRnode() |
SitePinInst |
getSource() |
RouteNode |
getSourceRnode() |
List<TimingEdge> |
getTimingEdges() |
short |
getXMaxBB() |
short |
getXMinBB() |
short |
getYMaxBB() |
short |
getYMinBB() |
int |
hashCode() |
boolean |
isCongested()
Checks if a connection has any overused rnodes to indicate the congestion status.
|
boolean |
isCrossSLR() |
boolean |
isDirect() |
boolean |
isDlyPatched() |
void |
resetCriticality() |
void |
resetRoute() |
void |
setAllTargets(com.xilinx.rapidwright.rwroute.RWRoute.ConnectionState state) |
void |
setCriticality(float criticality) |
void |
setDirect(boolean direct) |
void |
setDlyPatched(boolean dlyPatched) |
void |
setHpwl(short conHpwl) |
void |
setNetWrapper(NetWrapper netWrapper) |
void |
setNodes(List<Node> nodes) |
void |
setRnodes(List<RouteNode> rnodes) |
void |
setSinkRnode(RouteNode sinkRnode) |
void |
setSource(SitePinInst source) |
void |
setSourceRnode(RouteNode sourceNode) |
void |
setTimingEdges(List<TimingEdge> timingEdges) |
void |
setTimingEdgesDelay(float routeDelay) |
void |
setXMaxBB(short xMaxBB) |
void |
setXMinBB(short xMinBB) |
void |
setYMaxBB(short yMaxBB) |
void |
setYMinBB(short yMinBB) |
String |
toString() |
void |
updateRouteDelay() |
boolean |
useRnodesWithMultiDrivers()
Checks if a connection is routed through any rnodes that have multiple drivers.
|
public Connection(int id, SitePinInst source, SitePinInst sink, NetWrapper netWrapper)
public void computeHpwl()
public void computeConnectionBoundingBox(short boundingBoxExtensionX, short boundingBoxExtensionY, int[] nextLagunaColumn, int[] prevLagunaColumn)
boundingBoxExtensionX
- To indicate the extension on top of the minimum bounding box in the horizontal direction.boundingBoxExtensionY
- To indicate the extension on top of the minimum bounding box in the vertical direction.nextLagunaColumn
- Array mapping arbitrary tile columns to the next Laguna columnprevLagunaColumn
- Array mapping arbitrary tile columns to the previous Laguna columnpublic void calculateCriticality(float maxDelay, float maxCriticality, float criticalityExponent)
maxDelay
- The maximum delay to normalize the slack of a connection.maxCriticality
- The maximum criticality.criticalityExponent
- The exponent to separate critical connections and non-critical connections.public boolean isCongested()
public boolean useRnodesWithMultiDrivers()
public void addRnode(RouteNode rn)
rn
- RouteNode to addpublic void updateRouteDelay()
public void setTimingEdgesDelay(float routeDelay)
public void setCriticality(float criticality)
public void resetCriticality()
public float getCriticality()
public void resetRoute()
public RouteNode getSourceRnode()
public void setSourceRnode(RouteNode sourceNode)
public RouteNode getSinkRnode()
public void setSinkRnode(RouteNode sinkRnode)
public List<RouteNode> getAltSinkRnodes()
public void addAltSinkRnode(RouteNode sinkRnode)
public short getXMinBB()
public void setXMinBB(short xMinBB)
public short getXMaxBB()
public void setXMaxBB(short xMaxBB)
public short getYMinBB()
public void setYMinBB(short yMinBB)
public short getYMaxBB()
public void setYMaxBB(short yMaxBB)
public void setNetWrapper(NetWrapper netWrapper)
public NetWrapper getNetWrapper()
public SitePinInst getSource()
public void setSource(SitePinInst source)
public boolean isDirect()
public void setDirect(boolean direct)
public SitePinInst getSink()
public List<TimingEdge> getTimingEdges()
public void setTimingEdges(List<TimingEdge> timingEdges)
public short getHpwl()
public void setHpwl(short conHpwl)
public List<RouteNode> getRnodes()
public void setRnodes(List<RouteNode> rnodes)
public boolean isDlyPatched()
public void setDlyPatched(boolean dlyPatched)
public boolean isCrossSLR()
public List<Node> getNodes()
public void setNodes(List<Node> nodes)
public void enlargeBoundingBox(int horizontalIncrement, int verticalIncrement)
public int hashCode()
hashCode
in class Object
public int compareTo(Connection that)
compareTo
in interface Comparable<Connection>
public String bbRectangleString()
public String toString()
toString
in class Object
public void setAllTargets(com.xilinx.rapidwright.rwroute.RWRoute.ConnectionState state)