aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2018-06-16 16:54:57 +0200
committerDavid Shah <davey1576@gmail.com>2018-06-16 16:54:57 +0200
commitc4241db1177b6caf1d5c44d83d434136c16e3dd4 (patch)
treeb800736aab6b5878ca598b2c08fa4f16162d1bde /common
parentad0df6cea898d5d524ea90040e21298a5567b635 (diff)
downloadnextpnr-c4241db1177b6caf1d5c44d83d434136c16e3dd4.tar.gz
nextpnr-c4241db1177b6caf1d5c44d83d434136c16e3dd4.tar.bz2
nextpnr-c4241db1177b6caf1d5c44d83d434136c16e3dd4.zip
Tweaking placer and router
Signed-off-by: David Shah <davey1576@gmail.com>
Diffstat (limited to 'common')
-rw-r--r--common/place.cc7
-rw-r--r--common/route.cc4
2 files changed, 7 insertions, 4 deletions
diff --git a/common/place.cc b/common/place.cc
index 55a4d021..dfca313f 100644
--- a/common/place.cc
+++ b/common/place.cc
@@ -122,6 +122,7 @@ static float get_wirelength(Chip *chip, NetInfo *net)
return 0;
consider_driver =
chip->estimatePosition(driver_cell->bel, driver_x, driver_y);
+ WireId drv_wire = chip->getWireBelPin(driver_cell->bel, portPinFromId(net->driver.port));
if (!consider_driver)
return 0;
for (auto load : net->users) {
@@ -131,8 +132,10 @@ static float get_wirelength(Chip *chip, NetInfo *net)
int load_x = 0, load_y = 0;
if (load_cell->bel == BelId())
continue;
- chip->estimatePosition(load_cell->bel, load_x, load_y);
- wirelength += std::abs(load_x - driver_x) + std::abs(load_y - driver_y);
+ //chip->estimatePosition(load_cell->bel, load_x, load_y);
+ WireId user_wire = chip->getWireBelPin(load_cell->bel, portPinFromId(load.port));
+ //wirelength += std::abs(load_x - driver_x) + std::abs(load_y - driver_y);
+ wirelength += chip->estimateDelay(drv_wire, user_wire);
}
return wirelength;
}
diff --git a/common/route.cc b/common/route.cc
index 247c8840..32212c7d 100644
--- a/common/route.cc
+++ b/common/route.cc
@@ -440,8 +440,8 @@ void route_design(Design *design, bool verbose)
"routing.\n",
int(netsQueue.size()));
- ripup_pip_penalty *= 1.5;
- ripup_wire_penalty *= 1.5;
+ ripup_pip_penalty += 5;
+ ripup_wire_penalty += 5;
}
}