public class RouterHelper
extends Object
Constructor and Description |
---|
RouterHelper() |
Modifier and Type | Method and Description |
---|---|
static void |
addNodeTypeLengthToMap(Node node,
long wlNode,
Map<IntentCode,Long> typeUsage,
Map<IntentCode,Long> typeLength)
Adds the
IntentCode and wirelength of an used node to the map. |
static short |
computeNodeDelay(DelayEstimatorBase estimator,
Node node)
Computes the delay of a node.
|
static List<Node> |
findPathBetweenNodes(Node source,
Node sink)
Find a path from a source node to a sink node.
|
static PIP |
findPIPbetweenNodes(Node driver,
Node load)
|
static List<PIP> |
getConnectionPIPs(Connection connection)
Gets a list of
PIP instances for routing a connection. |
static Collection<Node> |
getNodesOfNet(Net net)
|
static PIP |
getPIP(Node driver,
Node load)
|
static PIP |
getPIP(Tile loadTile,
Wire[] driverWires,
int loadWire)
|
static List<PIP> |
getPIPsFromNodes(List<Node> connectionNodes)
|
static List<PIP> |
getPIPsFromNodes(List<Node> connectionNodes,
boolean srcToSinkOrder)
|
static void |
getSamplePathDelay(String filePath,
TimingManager timingManager,
Map<TimingEdge,Connection> timingEdgeConnectionMap,
RouteNodeGraph routingGraph)
Gets the delay of a given path, using output pin only.
|
static Map<SitePinInst,Pair<Node,Short>> |
getSourceToSinkINTNodeDelays(Net net,
DelayEstimatorBase estimator)
Gets a map containing net delay for each sink pin paired with an INT tile node of a routed net.
|
static Tile |
getUpstreamINTTileOfClkIn(SitePinInst clkIn) |
static Set<SitePinInst> |
invertPossibleGndPinsToVccPins(Design design,
List<SitePinInst> pins)
Inverts all possible GND sink pins to VCC pins.
|
static Set<SitePinInst> |
invertPossibleGndPinsToVccPins(Design design,
List<SitePinInst> pins,
boolean invertLutInputs)
Inverts all possible GND sink pins to VCC pins.
|
static boolean |
isDriverLessNet(Net net)
Checks if a
Net instance is driver-less. |
static boolean |
isDriverLessOrLoadLessNet(Net net)
Checks if a
Net instance is driver-less or load-less. |
static boolean |
isExternalConnectionToCout(SitePinInst source,
SitePinInst sink)
Checks if the source-sink connection is an external connection driven by COUT.
|
static boolean |
isInternallyRoutedNet(Net net)
Checks if a
Net instance is internally routed net. |
static boolean |
isLoadLessNet(Net net)
Checks if a
Net instance is load-less. |
static boolean |
isRoutableNetWithSourceSinks(Net net)
Checks if a
Net instance has source and sink SitePinInst instances to be routable. |
static List<String> |
parseVivadoPathToStringList(File file)
Parses the data path from an input file indicating data path of a Vivado timing report.
|
static List<Node> |
projectInputPinToINTNode(SitePinInst input)
|
static Node |
projectOutputPinToINTNode(SitePinInst output)
|
static boolean |
routeDirectConnection(Connection directConnection)
Routes and assigns nodes to a direct connection, e.g.
|
public static boolean isRoutableNetWithSourceSinks(Net net)
Net
instance has source and sink SitePinInst
instances to be routable.net
- The net to be checked.public static boolean isDriverLessOrLoadLessNet(Net net)
Net
instance is driver-less or load-less.net
- The net to be checked.public static boolean isDriverLessNet(Net net)
Net
instance is driver-less.net
- The net to be checked.public static boolean isLoadLessNet(Net net)
Net
instance is load-less.net
- The net to be checked.public static boolean isInternallyRoutedNet(Net net)
Net
instance is internally routed net.net
- The net to be checked.public static boolean isExternalConnectionToCout(SitePinInst source, SitePinInst sink)
Net
instance.
Because COUT only connects to CIN.source
- The source SitePinInst of this connection.sink
- The sink SitePinInst of this connection.public static Node projectOutputPinToINTNode(SitePinInst output)
output
- The output pin.public static List<Node> projectInputPinToINTNode(SitePinInst input)
input
- The input pin.public static Tile getUpstreamINTTileOfClkIn(SitePinInst clkIn)
public static List<PIP> getConnectionPIPs(Connection connection)
PIP
instances for routing a connection.connection
- The Connection
instance that has been routed with a list of Node
instances.public static List<PIP> getPIPsFromNodes(List<Node> connectionNodes)
connectionNodes
- The list of nodes of a routed Connection
instance.public static List<PIP> getPIPsFromNodes(List<Node> connectionNodes, boolean srcToSinkOrder)
connectionNodes
- The list of nodes of a routed Connection
instance.srcToSinkOrder
- Specifies the order of the connection nodes. True
indicates the first node is the source and the last
is the sink. False indicates the opposite.public static PIP findPIPbetweenNodes(Node driver, Node load)
driver
- The driver node.load
- The load node.public static PIP getPIP(Tile loadTile, Wire[] driverWires, int loadWire)
PIP
instance based on the Tile
instance of a node, its driver node wires and its base Wire
instance.loadTile
- The base tile of the load node.driverWires
- All wires in the driver node.loadWire
- The wire of the load node.public static PIP getPIP(Node driver, Node load)
driver
- The driver node.load
- The load node.public static Collection<Node> getNodesOfNet(Net net)
Node
instances used by a Net
instance.
Nodes associated with unrouted sink pins on this net will be excluded.net
- The target net.public static Set<SitePinInst> invertPossibleGndPinsToVccPins(Design design, List<SitePinInst> pins)
design
- The target design.pins
- The GND net pins.public static Set<SitePinInst> invertPossibleGndPinsToVccPins(Design design, List<SitePinInst> pins, boolean invertLutInputs)
design
- The target design.pins
- The GND net pins.invertLutInputs
- True to invert LUT inputs.public static void addNodeTypeLengthToMap(Node node, long wlNode, Map<IntentCode,Long> typeUsage, Map<IntentCode,Long> typeLength)
IntentCode
and wirelength of an used node to the map.node
- The target node.wlNode
- The wirelength of the node.typeUsage
- The map between each node type and the number of used nodes for the node type.typeLength
- The map between each node type and the total wirelength of used nodes for the node type.public static Map<SitePinInst,Pair<Node,Short>> getSourceToSinkINTNodeDelays(Net net, DelayEstimatorBase estimator)
net
- The target routed net.estimator
- An instantiation of DelayEstimatorBase.public static short computeNodeDelay(DelayEstimatorBase estimator, Node node)
estimator
- An instantiation of the DelayEstimatorBase.node
- The node in question.public static boolean routeDirectConnection(Connection directConnection)
directConnection
- The target direct connection.public static List<Node> findPathBetweenNodes(Node source, Node sink)
source
- The source node.sink
- The sink node.public static void getSamplePathDelay(String filePath, TimingManager timingManager, Map<TimingEdge,Connection> timingEdgeConnectionMap, RouteNodeGraph routingGraph)
superSource -> Q -> O -> --- -> D.
public static List<String> parseVivadoPathToStringList(File file) throws IOException
file
- The file contains a data path of a Vivado timing report.IOException