public class TimingManager
extends Object
Modifier and Type | Field and Description |
---|---|
static int |
BUILD_GRAPH_PATHS_DEFAULT_PARAM |
RuntimeTrackerTree |
routerTimer |
Constructor and Description |
---|
TimingManager(Design design)
Default constructor: creates the TimingManager object, which the user needs to create for
using our TimingModel, and then it builds the model.
|
TimingManager(Design design,
boolean doBuild)
Alternate constructor for creating the objects for the TimingModel, but with the choice to
not build the model yet.
|
TimingManager(Design design,
RuntimeTrackerTree timer,
RWRouteConfig config,
ClkRouteTiming clkTiming,
Collection<Net> targetNets,
boolean isPartialRouting) |
Modifier and Type | Method and Description |
---|---|
Pair<Float,TimingVertex> |
calculateArrivalRequiredTimes()
Calculates and returns the maximum arrival time and the associated TimingVertex
|
void |
calculateCriticality(List<Connection> connections,
float maxCriticality,
float criticalityExponent)
Calculates criticality for each connection.
|
void |
getCriticalPathInfo(Pair<Float,TimingVertex> maxDelayTimingVertex,
boolean useRoutable,
RouteNodeGraph routingGraph) |
Design |
getDesign()
Gets the corresponding design used in creating this TimingManager.
|
static float |
getDesignTimingRequirement(Design design) |
Device |
getDevice()
Gets the corresponding device used in creating this TimingManager.
|
void |
getSamplePathDelayInfo(List<String> verticesOfVivadoPath,
Map<TimingEdge,Connection> timingEdgeConnctionMap,
boolean routableBased,
RouteNodeGraph routingGraph)
Gets and prints the given path from the TimingGraph
|
TimingGraph |
getTimingGraph()
Gets the TimingGraph object.
|
TimingModel |
getTimingModel()
Gets the TimingModel object.
|
float |
getTimingRequirementPs() |
void |
patchUpDelayOfConnections(List<Connection> connections)
Patches up the delay of consecutive Long nodes for connections.
|
void |
setTimingEdgesOfConnections(List<Connection> connections) |
void |
setTimingRequirement()
Set the timing requirement of the design
|
void |
setTimingRequirementPs(float ps) |
void |
updateIllegalNetsDelays(Set<NetWrapper> illegalNets,
Map<Node,Float> nodesDelays)
Updates the delay of nets after the cycle removal and delay-aware path merging.
|
public static final int BUILD_GRAPH_PATHS_DEFAULT_PARAM
public RuntimeTrackerTree routerTimer
public TimingManager(Design design)
design
- RapidWright Design object.public TimingManager(Design design, boolean doBuild)
design
- RapidWright Design object.doBuild
- Whether to go ahead and build the model now. For example, a user might not
want to build the TimingGraph yet.public TimingManager(Design design, RuntimeTrackerTree timer, RWRouteConfig config, ClkRouteTiming clkTiming, Collection<Net> targetNets, boolean isPartialRouting)
public void updateIllegalNetsDelays(Set<NetWrapper> illegalNets, Map<Node,Float> nodesDelays)
illegalNets
- NetWrapper
instances in question.nodesDelays
- Stored nodes and their delay values.public void patchUpDelayOfConnections(List<Connection> connections)
connections
- Connections in question.public Pair<Float,TimingVertex> calculateArrivalRequiredTimes()
public void getCriticalPathInfo(Pair<Float,TimingVertex> maxDelayTimingVertex, boolean useRoutable, RouteNodeGraph routingGraph)
public void getSamplePathDelayInfo(List<String> verticesOfVivadoPath, Map<TimingEdge,Connection> timingEdgeConnctionMap, boolean routableBased, RouteNodeGraph routingGraph)
public void setTimingRequirement()
public void setTimingRequirementPs(float ps)
public float getTimingRequirementPs()
public static float getDesignTimingRequirement(Design design)
public void calculateCriticality(List<Connection> connections, float maxCriticality, float criticalityExponent)
connections
- Connections in question.maxCriticality
- The maximum criticality value.criticalityExponent
- The criticality exponent to use. For more information, please refer to the RWRouteConfig
class file.public TimingGraph getTimingGraph()
public TimingModel getTimingModel()
public Design getDesign()
public Device getDevice()
public void setTimingEdgesOfConnections(List<Connection> connections)