mpl: pin-aware macro halos - #10558
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces a new -use_full_halo option to the RTL macro placer, allowing users to disable pin-awareness during halo assignment and restore uniform halo behavior. The implementation adds pin-aware halo construction logic, cluster-based macro orientation correction, and updates corresponding tests. The review feedback identifies a high-severity risk of null pointer dereferences and undefined behavior when querying pin geometries in buildMacroHalo. Additionally, it suggests performance optimizations, such as caching the macro halo object and using a set to track visited masters in getMinimumSpacing to avoid redundant scans on large designs.
|
🥳 |
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
5a484c2 to
c20d7e2
Compare
This reverts commit 970948f. Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
|
@joaomai What's the status of this PR? |
|
About commit c20c4cc. This change is required to avoid a fatal on ng45/bp_fe_top, where the smallest tiling of the design is tall and thin due to the removed halos on some sides of macros. Since the original intention of using tiling dimensions was to avoid failures in tight designs, I think the current approach (only using the tiling sizes if both are smaller than proportional) still serves its original purpose. Maybe it should be its own PR, but since it only happens on this branch, I think it is also fine to merge it along the halo changes. |
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
|
Paired with #4351 on ORFS. |
09a62d8
into
The-OpenROAD-Project:master
|
🥳 |


Summary
-use_full_haloflag.Type of Change
Impact
MPL now assigns proper halos only on sides with signal pins, those without are assigned a smaller halo size based on minimum spacing rules. Old behavior can be restored using the
-use_full_haloflag.Verification
./etc/Build.sh).Misc
MPL will undergo nomenclature changes (using channel instead of halo and others) and some commands related to halos will be removed/revamped. Since this PR was deep in development when the changes were proposed, it was decided to finish this work first and then follow it up with necessary changes along with any other changes required in MPL.