diff options
author | David Shah <davey1576@gmail.com> | 2018-06-16 16:54:57 +0200 |
---|---|---|
committer | David Shah <davey1576@gmail.com> | 2018-06-16 16:54:57 +0200 |
commit | c4241db1177b6caf1d5c44d83d434136c16e3dd4 (patch) | |
tree | b800736aab6b5878ca598b2c08fa4f16162d1bde /common | |
parent | ad0df6cea898d5d524ea90040e21298a5567b635 (diff) | |
download | nextpnr-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.cc | 7 | ||||
-rw-r--r-- | common/route.cc | 4 |
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; } } |