public class PartialDFXRouter extends PartialRouter
PartialRouter
for partial routing of DFX designs.
Similar to PartialRouter, in partial routing mode, nets that are already fully- or partially- routed
will be preserved and only the unrouted connections (as specified by the
pinsToRoute parameter in the constructor) are tackled.
Enabling soft preserve allows preserved routing that may be the cause of any
unroutable connections to be ripped up and re-routed.
Nets that route from the static region into the dynamic region must be locked and have a PartitionPin
attached to indicate the branch point to be used to connect unrouted sinks.SUPPORTED_SERIES
Constructor and Description |
---|
PartialDFXRouter(Design design,
RWRouteConfig config,
Collection<SitePinInst> pinsToRoute) |
PartialDFXRouter(Design design,
RWRouteConfig config,
Collection<SitePinInst> pinsToRoute,
boolean softPreserve) |
Modifier and Type | Method and Description |
---|---|
static void |
main(String[] args)
The main interface of
PartialDFXRouter that reads in a Design checkpoint,
and parses the arguments for the RWRouteConfig object of the router. |
static Design |
routeDesignPartialNonTimingDriven(Design design,
Collection<SitePinInst> pinsToRoute)
Routes a design in the partial non-timing-driven routing mode.
|
static Design |
routeDesignPartialNonTimingDriven(Design design,
Collection<SitePinInst> pinsToRoute,
boolean softPreserve)
Routes a design in the partial non-timing-driven routing mode.
|
static Design |
routeDesignPartialTimingDriven(Design design,
Collection<SitePinInst> pinsToRoute,
boolean softPreserve)
Routes a design in the partial timing-driven routing mode.
|
static Design |
routeDesignWithUserDefinedArguments(Design design,
String[] args)
Partially routes all unrouted sinks in a
Design instance; fully-routed sinks will have their routing preserved. |
static Design |
routeDesignWithUserDefinedArguments(Design design,
String[] args,
Collection<SitePinInst> pinsToRoute,
boolean softPreserve)
Partially routes all given sinks in a
Design instance; fully-routed sinks will have their routing preserved
if "softPreserve" is false, otherwise such sinks may be lazily-rerouted when attempting to route other congested sinks. |
getUnroutedPins, preprocess
addClkNet, createClkTimingData, getDesign, printNodeTypeUsageAndWirelength, route, routeDesignFullNonTimingDriven, routeDesignFullTimingDriven, routeIndirectConnectionsIteratively
public PartialDFXRouter(Design design, RWRouteConfig config, Collection<SitePinInst> pinsToRoute, boolean softPreserve)
public PartialDFXRouter(Design design, RWRouteConfig config, Collection<SitePinInst> pinsToRoute)
public static Design routeDesignWithUserDefinedArguments(Design design, String[] args)
Design
instance; fully-routed sinks will have their routing preserved.design
- The Design
instance to be routed.args
- An array of string arguments, can be null.
If null, the design will be routed in the full timing-driven routing mode with default a RWRouteConfig
instance.
For more options of the configuration, please refer to the RWRouteConfig
class.public static Design routeDesignWithUserDefinedArguments(Design design, String[] args, Collection<SitePinInst> pinsToRoute, boolean softPreserve)
Design
instance; fully-routed sinks will have their routing preserved
if "softPreserve" is false, otherwise such sinks may be lazily-rerouted when attempting to route other congested sinks.design
- The Design
instance to be routed.args
- An array of string arguments, can be null.
If null, the design will be routed in the full timing-driven routing mode with default a RWRouteConfig
instance.
For more options of the configuration, please refer to the RWRouteConfig
class.pinsToRoute
- Collection of SitePinInst
-s to be routed. If null, route all unrouted pins in the design.softPreserve
- Allow routed nets to be unrouted and subsequently rerouted in order to improve routability.public static Design routeDesignPartialNonTimingDriven(Design design, Collection<SitePinInst> pinsToRoute)
design
- The Design
instance to be routed.pinsToRoute
- Collection of SitePinInst
-s to be routed. If null, route all unrouted pins in the design.public static Design routeDesignPartialNonTimingDriven(Design design, Collection<SitePinInst> pinsToRoute, boolean softPreserve)
design
- The Design
instance to be routed.pinsToRoute
- Collection of SitePinInst
-s to be routed. If null, route all unrouted pins in the design.softPreserve
- Allow routed nets to be unrouted and subsequently rerouted in order to improve routability.public static Design routeDesignPartialTimingDriven(Design design, Collection<SitePinInst> pinsToRoute, boolean softPreserve)
design
- The Design
instance to be routed.pinsToRoute
- Collection of SitePinInst
-s to be routed. If null, route all unrouted pins in the design.softPreserve
- Allow routed nets to be unrouted and subsequently rerouted in order to improve routability.public static void main(String[] args)
PartialDFXRouter
that reads in a Design
checkpoint,
and parses the arguments for the RWRouteConfig
object of the router.
Similar to PartialRouter
, only unrouted sinks will be tackled; all routed sinks will have their routing
preserved and not be re-routed.
Nets that route from the static region into the dynamic region must be locked and have a PartitionPin
attached to indicate the branch point to be used to connect unrouted sinks.args
- An array of strings that are used to create a RWRouteConfig
object for the router.