OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

Discussion: allow different placement margin per instance also in global placement

Open joennlae opened this issue 2 years ago • 4 comments

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 :-).

joennlae avatar Jul 21 '23 14:07 joennlae

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 avatar Jul 21 '23 21:07 maliberty

@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.

joennlae avatar Jul 24 '23 07:07 joennlae

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?

maliberty avatar Aug 09 '23 20:08 maliberty

clang-tidy review says "All clean, LGTM! :+1:"

github-actions[bot] avatar Aug 09 '23 20:08 github-actions[bot]