himbaechel/xilinx: give RAMB36 bels their area in the static placer

RAMB36E1 bels were registered with a zero bel_area while RAMB36E1
cells claim a 1x6 cell_area. With no capacity anywhere in the RAM
density map, the static placer cannot resolve RAMB36 density and
BRAM-heavy designs fail to converge to a legalisable placement.

Register the bel area as 1x6 to match the cell area, consistent with
the RAMB18 entries above.

Observed on a design using >90% of the BRAM on an xc7a100t.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Joris van Zwieten 2026-07-30 15:49:52 +02:00
parent 1c85dee263
commit 840311b5ac
1 changed files with 1 additions and 1 deletions

View File

@ -440,7 +440,7 @@ void XilinxImpl::configurePlacerStatic(PlacerStaticCfg &cfg)
comb.cell_area[id_RAMB18E1_RAMB18E1] = StaticRect(1.0f, 3.0f);
comb.bel_area[id_RAMB18E1_RAMB18E1] = StaticRect(1.0f, 3.0f);
comb.cell_area[id_RAMB36E1_RAMB36E1] = StaticRect(1.0f, 6.0f);
comb.bel_area[id_RAMB36E1_RAMB36E1] = StaticRect(0.0f, 0.0f);
comb.bel_area[id_RAMB36E1_RAMB36E1] = StaticRect(1.0f, 6.0f);
comb.spacer_rect = StaticRect(1.0f, 3.0f);
}
{