heap: Fix ripup criterea (#1378)
Signed-off-by: gatecat <gatecat@ds0.me>
This commit is contained in:
parent
65cf6d8da7
commit
75d2ce6a92
@ -890,7 +890,7 @@ class HeAPPlacer
|
|||||||
total_iters_noreset++;
|
total_iters_noreset++;
|
||||||
if (total_iters > int(solve_cells.size())) {
|
if (total_iters > int(solve_cells.size())) {
|
||||||
total_iters = 0;
|
total_iters = 0;
|
||||||
ripup_radius = std::max(std::max(max_x, max_y), ripup_radius * 2);
|
ripup_radius = std::min(std::max(max_x, max_y), ripup_radius * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (total_iters_noreset > std::max(5000, 8 * int(ctx->cells.size()))) {
|
if (total_iters_noreset > std::max(5000, 8 * int(ctx->cells.size()))) {
|
||||||
@ -995,7 +995,7 @@ class HeAPPlacer
|
|||||||
CellInfo *bound = ctx->getBoundBelCell(sz);
|
CellInfo *bound = ctx->getBoundBelCell(sz);
|
||||||
if (bound != nullptr) {
|
if (bound != nullptr) {
|
||||||
// Only rip up cells without constraints
|
// Only rip up cells without constraints
|
||||||
if (bound->cluster != ClusterId())
|
if (bound->cluster != ClusterId() || bound->belStrength > STRENGTH_WEAK)
|
||||||
continue;
|
continue;
|
||||||
ctx->unbindBel(bound->bel);
|
ctx->unbindBel(bound->bel);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user