aboutsummaryrefslogtreecommitdiffstats
path: root/nexus/arch.cc
diff options
context:
space:
mode:
Diffstat (limited to 'nexus/arch.cc')
-rw-r--r--nexus/arch.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/nexus/arch.cc b/nexus/arch.cc
index f222a5ad..dbc12c13 100644
--- a/nexus/arch.cc
+++ b/nexus/arch.cc
@@ -619,6 +619,10 @@ ArcBounds Arch::getRouteBoundingBox(WireId src, WireId dst) const
bb.x0 = std::max<int>(0, bb.x0 - 6);
bb.x1 = std::min<int>(chip_info->width, bb.x1 + 6);
}
+ if (lram_wires.count(src) || lram_wires.count(dst)) {
+ bb.y0 = std::max<int>(0, bb.y0 - 7);
+ bb.y1 = std::min<int>(chip_info->width, bb.y1 + 7);
+ }
return bb;
}
@@ -669,6 +673,13 @@ void Arch::pre_routing()
dsp_wires.insert(wire);
}
}
+ if (ci->type == id_LRAM_CORE) {
+ for (auto port : sorted_ref(ci->ports)) {
+ WireId wire = getBelPinWire(ci->bel, port.first);
+ if (wire != WireId())
+ lram_wires.insert(wire);
+ }
+ }
}
}