Skip to content

Commit

Permalink
PartialRouter to behave as master
Browse files Browse the repository at this point in the history
  • Loading branch information
eddieh-xlnx committed Nov 23, 2022
1 parent 4c3d027 commit dc01d54
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 9 deletions.
25 changes: 17 additions & 8 deletions src/com/xilinx/rapidwright/rwroute/PartialRouter.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import java.util.stream.Collectors;

import com.xilinx.rapidwright.design.Design;
import com.xilinx.rapidwright.design.DesignTools;
import com.xilinx.rapidwright.design.Net;
import com.xilinx.rapidwright.design.SitePinInst;
import com.xilinx.rapidwright.device.Node;
Expand Down Expand Up @@ -96,6 +97,15 @@ public PartialRouter(Design design, RWRouteConfig config, Collection<SitePinInst
this(design, config, pinsToRoute, false);
}

@Override
protected void preprocess() {
// Pre-processing of the design regarding physical net names pins
DesignTools.makePhysNetNamesConsistent(design);
// FIXME: Enable for PartialRouter
// DesignTools.createPossiblePinsToStaticNets(design);
DesignTools.createMissingSitePinInsts(design);
}

/**
* Checks whether this arc is part of an existing route.
* For Nets containing at least one Connection to be routed, all fully routed
Expand Down Expand Up @@ -268,18 +278,17 @@ protected void addGlobalClkRoutingTargets(Net clk) {
protected void addStaticNetRoutingTargets(Net staticNet) {
preserveNet(staticNet);

List<SitePinInst> sinks = staticNet.getSinkPins();
if (sinks.size() > 0) {
sinks.removeIf(SitePinInst::isRouted);
if (sinks.isEmpty()) {
List<SitePinInst> staticPins = netToPins.get(staticNet);
if (staticPins == null || staticPins.isEmpty()) {
if (staticNet.hasPIPs()) {
increaseNumPreservedStaticNets();
} else {
addStaticNetRoutingTargets(staticNet, sinks);
increaseNumNotNeedingRouting();
}

} else {// internally routed (sinks.size = 0)
increaseNumNotNeedingRouting();
return;
}

addStaticNetRoutingTargets(staticNet, staticPins);
}

@Override
Expand Down
3 changes: 2 additions & 1 deletion test/src/com/xilinx/rapidwright/rwroute/TestRWRoute.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,8 @@ public void testNonTimingDrivenPartialRouting() {
String dcpPath = RapidWrightDCP.getString("picoblaze_partial.dcp");
Design design = Design.readCheckpoint(dcpPath);
DesignTools.createMissingSitePinInsts(design);
DesignTools.createPossiblePinsToStaticNets(design);
// FIXME:
// DesignTools.createPossiblePinsToStaticNets(design);

List<SitePinInst> pinsToRoute = new ArrayList<>();
for (Net net : design.getNets()) {
Expand Down

0 comments on commit dc01d54

Please sign in to comment.