From 36c07a0f45b13e4cf34e6db3b73ccf864af522f0 Mon Sep 17 00:00:00 2001 From: David Shah Date: Fri, 25 Oct 2019 09:37:13 +0100 Subject: ecp5: Fix routing to shared DSP control inputs Signed-off-by: David Shah --- ecp5/arch.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'ecp5/arch.cc') 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 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); -- cgit v1.2.3 From 475fcd442520a1464ce6c3b1aecbea03aa158007 Mon Sep 17 00:00:00 2001 From: David Shah Date: Sat, 26 Oct 2019 20:38:28 +0100 Subject: ecp5: Add an error for out-of-sync constids and bba Signed-off-by: David Shah --- ecp5/arch.cc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'ecp5/arch.cc') diff --git a/ecp5/arch.cc b/ecp5/arch.cc index 5f62d5ae..d931c5b2 100644 --- a/ecp5/arch.cc +++ b/ecp5/arch.cc @@ -117,6 +117,9 @@ Arch::Arch(ArchArgs args) : args(args) log_error("Unsupported ECP5 chip type.\n"); } #endif + if (chip_info->const_id_count != DB_CONST_ID_COUNT) + log_error("Chip database 'bba' and nextpnr code are out of sync; please rebuild (or contact distribution " + "maintainer)!\n"); package_info = nullptr; for (int i = 0; i < chip_info->num_packages; i++) { if (args.package == chip_info->package_info[i].name.get()) { -- cgit v1.2.3