Discussion: allow different placement margin per instance also in global placement
There are better solutions than this here... But it is the fastest fix we saw atm.
We had the issue that we could not place our design when using set_placement_density -instances in detailed placement.
We used the way shown in this PR to get the information from the detailed placement command to the global placer, as the global placer supports per-instance padding.
Examples of our hotspots:
set_placement_padding -global -left 2 -right 2
set_placement_padding -instances [get_cells *i_bootrom*] -right 5 -left 5
set_placement_padding -instances [get_cells *gen_asic_regfile_i_ariane_regfile*] -right 7 -left 7
set_placement_padding -instances [get_cells *gen_asic_fp_regfile_i_ariane_fp_regfile*] -right 7 -left 7
set_placement_padding -instances [get_cells *i_scoreboard*] -right 5 -left 5
set_placement_padding -instances [get_cells *i_multiplier*] -right 5 -left 5
As mentioned above, this is not a nice solution as it mixes global placer and detailed placer. But we believe that having the per instance placement information in the global placer should help with the overall backend flow.
We are happy to discuss any other ideas or also if we have missed something :-).
I'm curious about the background of this solution. What problem were you seeing that required such large per instance paddings? Is it something you can share?
@maliberty The instances need a lower placement density, and this is the solution we could come up with. There may be a better solution that we could not find.
We are very close to the open-source release. (Some cleanup to be NDA conform still ongoing). I will post here when it's finished.
We are very close to the open-source release. (Some cleanup to be NDA conform still ongoing). I will post here when it's finished.
any update?
clang-tidy review says "All clean, LGTM! :+1:"