diff options
author | David Shah <dave@ds0.me> | 2020-12-08 09:26:09 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-08 09:26:09 +0000 |
commit | ca08add9c90b14e4fb8d63ccb4f475dccd598d66 (patch) | |
tree | 46672f7f931f5e005891d1d4d96b2978f9036add /nexus/arch.cc | |
parent | 92ef01830c9f92d1374b4d02965865f11fab0ccc (diff) | |
parent | 588042dc997080830e73c10b71c15444756dbeab (diff) | |
download | nextpnr-ca08add9c90b14e4fb8d63ccb4f475dccd598d66.tar.gz nextpnr-ca08add9c90b14e4fb8d63ccb4f475dccd598d66.tar.bz2 nextpnr-ca08add9c90b14e4fb8d63ccb4f475dccd598d66.zip |
Merge pull request #528 from YosysHQ/dave/nexus-lram
nexus: Add basic LRAM support
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); + } + } } } |