diff options
author | David Shah <dave@ds0.me> | 2020-10-19 13:31:21 +0100 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2020-11-30 08:45:27 +0000 |
commit | cbf99d5e5390d8439722e0172067b687be5ac060 (patch) | |
tree | 89f2a8095bf7b0c9f578e8d3caceb6201a98b513 /nexus/arch_place.cc | |
parent | dfd6b6e39e56a2c2b10b051b9b54926e120f319e (diff) | |
download | nextpnr-cbf99d5e5390d8439722e0172067b687be5ac060.tar.gz nextpnr-cbf99d5e5390d8439722e0172067b687be5ac060.tar.bz2 nextpnr-cbf99d5e5390d8439722e0172067b687be5ac060.zip |
nexus: LUTRAM support
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'nexus/arch_place.cc')
-rw-r--r-- | nexus/arch_place.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/nexus/arch_place.cc b/nexus/arch_place.cc index 7e50de29..feec75ad 100644 --- a/nexus/arch_place.cc +++ b/nexus/arch_place.cc @@ -33,6 +33,16 @@ bool Arch::nexus_logic_tile_valid(LogicTileStatus <s) const CellInfo *lut1 = lts.cells[(s << 3) | BEL_LUT1]; CellInfo *ff0 = lts.cells[(s << 3) | BEL_FF0]; CellInfo *ff1 = lts.cells[(s << 3) | BEL_FF1]; + + if (s == 2) { + CellInfo *ramw = lts.cells[(s << 3) | BEL_RAMW]; + // Nothing else in SLICEC can be used if the RAMW is used + if (ramw != nullptr) { + if (lut0 != nullptr || lut1 != nullptr || ff0 != nullptr || ff1 != nullptr) + return false; + } + } + if (lut0 != nullptr) { // Check for overuse of M signal if (lut0->lutInfo.mux2_used && ff0 != nullptr && ff0->ffInfo.m != nullptr) |