diff options
Diffstat (limited to 'ecp5/globals.cc')
-rw-r--r-- | ecp5/globals.cc | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/ecp5/globals.cc b/ecp5/globals.cc index 36bec64c..b840ac91 100644 --- a/ecp5/globals.cc +++ b/ecp5/globals.cc @@ -72,7 +72,7 @@ class Ecp5GlobalRouter std::vector<NetInfo *> get_clocks() { - std::unordered_map<IdString, int> clockCount; + dict<IdString, int> clockCount; for (auto &net : ctx->nets) { NetInfo *ni = net.second.get(); if (ni->name == ctx->id("$PACKER_GND_NET") || ni->name == ctx->id("$PACKER_VCC_NET")) @@ -91,8 +91,8 @@ class Ecp5GlobalRouter } // DCCAs must always drive globals std::vector<NetInfo *> clocks; - for (auto &cell : sorted(ctx->cells)) { - CellInfo *ci = cell.second; + for (auto &cell : ctx->cells) { + CellInfo *ci = cell.second.get(); if (ci->type == id_DCCA) { NetInfo *glb = ci->ports.at(id_CLKO).net; if (glb != nullptr) { @@ -147,7 +147,7 @@ class Ecp5GlobalRouter WireId globalWire; IdString global_name = ctx->id(fmt_str("G_HPBX" << std::setw(2) << std::setfill('0') << global_index << "00")); std::queue<WireId> upstream; - std::unordered_map<WireId, PipId> backtrace; + dict<WireId, PipId> backtrace; upstream.push(userWire); bool already_routed = false; WireId next; @@ -230,7 +230,7 @@ class Ecp5GlobalRouter bool simple_router(NetInfo *net, WireId src, WireId dst, bool allow_fail = false) { std::queue<WireId> visit; - std::unordered_map<WireId, PipId> backtrace; + dict<WireId, PipId> backtrace; visit.push(src); WireId cursor; while (true) { @@ -340,7 +340,7 @@ class Ecp5GlobalRouter bool has_short_route(WireId src, WireId dst, int thresh = 7) { std::queue<WireId> visit; - std::unordered_map<WireId, PipId> backtrace; + dict<WireId, PipId> backtrace; visit.push(src); WireId cursor; while (true) { @@ -376,7 +376,7 @@ class Ecp5GlobalRouter return length < thresh; } - std::unordered_set<WireId> used_pclkcib; + pool<WireId> used_pclkcib; std::set<WireId> get_candidate_pclkcibs(BelId dcc) { @@ -535,9 +535,9 @@ class Ecp5GlobalRouter fab_globals.insert(i); } std::vector<std::pair<PortRef *, int>> toroute; - std::unordered_map<int, NetInfo *> clocks; - for (auto cell : sorted(ctx->cells)) { - CellInfo *ci = cell.second; + dict<int, NetInfo *> clocks; + for (auto &cell : ctx->cells) { + CellInfo *ci = cell.second.get(); if (ci->type == id_DCCA) { NetInfo *clock = ci->ports.at(id_CLKO).net; NPNR_ASSERT(clock != nullptr); @@ -577,8 +577,8 @@ class Ecp5GlobalRouter void route_eclk_sources() { // Try and use dedicated paths if possible - for (auto cell : sorted(ctx->cells)) { - CellInfo *ci = cell.second; + for (auto &cell : ctx->cells) { + CellInfo *ci = cell.second.get(); if (ci->type == id_ECLKSYNCB || ci->type == id_TRELLIS_ECLKBUF || ci->type == id_ECLKBRIDGECS) { std::vector<IdString> pins; if (ci->type == id_ECLKSYNCB || ci->type == id_TRELLIS_ECLKBUF) { @@ -595,7 +595,7 @@ class Ecp5GlobalRouter WireId src = ctx->getNetinfoSourceWire(ni); WireId dst = ctx->getBelPinWire(ci->bel, pin); std::queue<WireId> visit; - std::unordered_map<WireId, PipId> backtrace; + dict<WireId, PipId> backtrace; visit.push(dst); int iter = 0; WireId cursor; |