public class RouterHelper
extends Object
Modifier and Type | Class and Description |
---|---|
static class |
RouterHelper.NodeWithPrev |
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 List<PIP> |
getConnectionPIPs(Connection connection)
Gets a list of
PIP instances for routing a connection. |
static Collection<Node> |
getNodesOfNet(Net net)
|
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 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 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 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)
Utils.isClocking(TileTypeEnum)
will be ignored.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