place_sa: Set placement strengths

Signed-off-by: David Shah <davey1576@gmail.com>
This commit is contained in:
David Shah 2018-06-20 11:19:25 +02:00
parent a06d2aeb4d
commit 5d1b87b0a4

View File

@ -100,6 +100,7 @@ class SAPlacer
} }
cell->bel = bel; cell->bel = bel;
cell->belStrength = STRENGTH_USER;
ctx->bindBel(bel, cell->name); ctx->bindBel(bel, cell->name);
locked_bels.insert(bel); locked_bels.insert(bel);
placed_cells++; placed_cells++;
@ -214,9 +215,9 @@ class SAPlacer
} }
// Final post-pacement validitiy check // Final post-pacement validitiy check
for (auto bel : ctx->getBels()) { for (auto bel : ctx->getBels()) {
IdString cell = ctx->getBelCell(bel, false);
if (!checker->isBelLocationValid(bel)) { if (!checker->isBelLocationValid(bel)) {
std::string cell_text = "no cell"; std::string cell_text = "no cell";
IdString cell = ctx->getBelCell(bel, false);
if (cell != IdString()) if (cell != IdString())
cell_text = std::string("cell '") + cell.str(ctx) + "'"; cell_text = std::string("cell '") + cell.str(ctx) + "'";
log_error("post-placement validity check failed for Bel '%s' " log_error("post-placement validity check failed for Bel '%s' "
@ -276,6 +277,7 @@ class SAPlacer
all_placed = true; all_placed = true;
} }
cell->bel = best_bel; cell->bel = best_bel;
cell->belStrength = STRENGTH_WEAK;
ctx->bindBel(cell->bel, cell->name); ctx->bindBel(cell->bel, cell->name);
// Back annotate location // Back annotate location