mpl: use only the moveable macros during random cluster resizing in SA #6697
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This should impact the results generated by #6649.
I expect MPL results to change significantly with this bug fix.
Context
The io_constraints2 regression test started to fail with the changes in #6689 which didn't seem to make sense as the changes there should only cause impact on designs with meaningful connections and this regression test is a fit-only test (no nets).
Cause of Failure
The problem is that, inside the cluster placement (Soft) SA, the function responsible for randomly resizing one cluster has a type of move that instead of relying on the location/shape of just the moveable SoftMacros - that is, the SoftMacros from the sequence pair - it uses all the SoftMacros including the fixed terminals, which interferes/messes up the computation of the new width/height for the target cluster.
In the image (just a dummy example), it is as if the fixed terminal position/shape could impact in a possible resizing move of A and B. (Cyan outline is the current level in which SA in working on).

Reminder: the SACore object receives a vector of Soft/Hard Macros and just some of them are the actual sequence pair, the others might be io clusters - for root level - or fixed terminals.
I.e., the position/shape/amount of fixed terminals should not impact on the resizing move.
Changes Here
Ensure that we only use the macros of the sequence pair to generate the new width/height for the target cluster during a cluster resizing move in cluster placement SA.
With the changes here, the regression test result gets consistent.