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 LightweightRouteNode |
createRoutingNode(Node node,
Map<Node,LightweightRouteNode> createdRoutingNodes)
Creates a
LightweightRouteNode Object based on a Node Object, avoiding duplicates. |
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 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<Pair<SitePinInst,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 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 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 static net pins.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<Pair<SitePinInst,Node>,Short> getSourceToSinkINTNodeDelays(Net net, DelayEstimatorBase estimator)
net
- The target routed net.estimator
- An instantiation of DelayEstimatorBase.public static LightweightRouteNode createRoutingNode(Node node, Map<Node,LightweightRouteNode> createdRoutingNodes)
LightweightRouteNode
Object based on a Node
Object, avoiding duplicates.node
- The Node
instance that is used to create a RoutingNode object.createdRoutingNodes
- A map storing created LightweightRouteNode
instances and corresponding Node
instances.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