diff --git a/Makefile b/Makefile index b237555..1dc0962 100644 --- a/Makefile +++ b/Makefile @@ -89,7 +89,7 @@ fpga-interchange-schema/interchange/capnp/java.capnp: .PHONY: score-$(ROUTER) score-$(ROUTER): $(addsuffix _$(ROUTER).wirelength, $(BENCHMARKS)) $(addsuffix _$(ROUTER).check, $(BENCHMARKS)) - python ./compute-score.py $(addsuffix _$(ROUTER), $(BENCHMARKS)) + python3 ./compute-score.py $(addsuffix _$(ROUTER), $(BENCHMARKS)) .PRECIOUS: %.device %.device: | compile-java diff --git a/RapidWright b/RapidWright index 366e742..a86ef8e 160000 --- a/RapidWright +++ b/RapidWright @@ -1 +1 @@ -Subproject commit 366e742285a1f279c0e07766b2f50dd6cd4761ab +Subproject commit a86ef8e68f89e90d0794f756dbd99f01f941ac37 diff --git a/src/com/xilinx/fpga24_routing_contest/PartialRouterPhysNetlist.java b/src/com/xilinx/fpga24_routing_contest/PartialRouterPhysNetlist.java index f0176a3..510c706 100644 --- a/src/com/xilinx/fpga24_routing_contest/PartialRouterPhysNetlist.java +++ b/src/com/xilinx/fpga24_routing_contest/PartialRouterPhysNetlist.java @@ -44,11 +44,27 @@ public static void main(String[] args) throws IOException { continue; } if (!net.hasPIPs()) { + // Route only nets with no PIPs pinsToRoute.addAll(net.getSinkPins()); } } + boolean softPreserve = false; - PartialRouter.routeDesignPartialNonTimingDriven(design, pinsToRoute, softPreserve); + PartialRouter.routeDesignWithUserDefinedArguments(design, new String[] { + // Same options as PartialRouter.routeDesignPartialTimingDriven() + "--fixBoundingBox", + "--useUTurnNodes", + "--nonTimingDriven", + "--verbose", + // These options are set to their default value, a subset of which are duplicated here + // to ease modification; full documentation is available in RWRouteConfig.java + "--maxIterations", "100", + "--wirelengthWeight", "0.8", + "--initialPresentCongestionFactor", "0.5", + "--presentCongestionMultiplier", "2", + "--historicalCongestionFactor", "1", + }, + pinsToRoute, softPreserve); // Write routed result to new Physical Netlist PhysNetlistWriter.writePhysNetlist(design, args[1]);