diff options
Diffstat (limited to 'nexus/arch.cc')
-rw-r--r-- | nexus/arch.cc | 11 |
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); + } + } } } |