aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/arch.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ecp5/arch.cc')
-rw-r--r--ecp5/arch.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/ecp5/arch.cc b/ecp5/arch.cc
index 9da8abdf..b5ffa5dc 100644
--- a/ecp5/arch.cc
+++ b/ecp5/arch.cc
@@ -524,6 +524,7 @@ bool Arch::place()
}
permute_luts();
+ archInfoToAttributes();
return true;
}
@@ -558,6 +559,7 @@ bool Arch::route()
log_info(" base %d adder %d\n", speed_grade->pip_classes[locInfo(slowest_pip)->pip_data[slowest_pip.index].timing_class].max_base_delay,
speed_grade->pip_classes[locInfo(slowest_pip)->pip_data[slowest_pip.index].timing_class].max_fanout_adder);
#endif
+ archInfoToAttributes();
return result;
}
@@ -986,6 +988,21 @@ WireId Arch::getBankECLK(int bank, int eclk)
return getWireByLocAndBasename(Location(0, 0), "G_BANK" + std::to_string(bank) + "ECLK" + std::to_string(eclk));
}
+void Arch::archInfoToAttributes()
+{
+ commonInfoToAttributes();
+ for (auto &net : getCtx()->nets) {
+ auto ni = net.second.get();
+ ni->attrs[id("IS_GLOBAL")] = ni->is_global ? "1" : "0";
+ }
+}
+
+void Arch::attributesToArchInfo()
+{
+ attributesToCommonInfo();
+ assignArchInfo();
+}
+
#ifdef WITH_HEAP
const std::string Arch::defaultPlacer = "heap";
#else