aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/arch.cc
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-10-25 09:37:13 +0100
committerDavid Shah <dave@ds0.me>2019-10-25 09:37:13 +0100
commit36c07a0f45b13e4cf34e6db3b73ccf864af522f0 (patch)
tree45733cdbac1f0045cea5f57a44e4ed8229a8d7d7 /ecp5/arch.cc
parentb582ba810cc54282d4c574bee80a7339c8da17f9 (diff)
downloadnextpnr-36c07a0f45b13e4cf34e6db3b73ccf864af522f0.tar.gz
nextpnr-36c07a0f45b13e4cf34e6db3b73ccf864af522f0.tar.bz2
nextpnr-36c07a0f45b13e4cf34e6db3b73ccf864af522f0.zip
ecp5: Fix routing to shared DSP control inputs
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ecp5/arch.cc')
-rw-r--r--ecp5/arch.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/ecp5/arch.cc b/ecp5/arch.cc
index 8ce0653c..5f62d5ae 100644
--- a/ecp5/arch.cc
+++ b/ecp5/arch.cc
@@ -477,7 +477,13 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const
}
};
- auto src_loc = est_location(src), dst_loc = est_location(dst);
+ auto src_loc = est_location(src);
+ std::pair<int, int> dst_loc;
+ if (wire_loc_overrides.count(dst)) {
+ dst_loc = wire_loc_overrides.at(dst);
+ } else {
+ dst_loc = est_location(dst);
+ }
int dx = abs(src_loc.first - dst_loc.first), dy = abs(src_loc.second - dst_loc.second);
@@ -562,6 +568,7 @@ bool Arch::place()
bool Arch::route()
{
+ setupWireLocations();
route_ecp5_globals(getCtx());
assignArchInfo();
assign_budget(getCtx(), true);