Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: expose -keep_resize_below_overflow with PL_KEEP_RESIZE_BELOW_OVERFLOW #655

Merged
merged 11 commits into from
Feb 13, 2025
2 changes: 2 additions & 0 deletions .github/test_sets/test_sets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
- io_placer
- test_sram_macro
- manual_macro_placement_test
- name: regs_analog_ctrl_APB
config_file: config.yaml
- name: aes_user_project_wrapper
test_name: aes_upw_new
config_file: config.json
Expand Down
1 change: 1 addition & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
* `OpenROAD.GlobalPlacement`

* Added optional variable `PL_ROUTABILITY_MAX_DENSITY_PCT`
* Added optional variable `PL_KEEP_RESIZE_BELOW_OVERFLOW`

* Corrected `GPL_CELL_PADDING` to be an integer.

Expand Down
1 change: 1 addition & 0 deletions openlane/scripts/openroad/gpl.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ set cell_pad_side [expr $::env(GPL_CELL_PADDING) / 2]
lappend arg_list -pad_right $cell_pad_side
lappend arg_list -pad_left $cell_pad_side
lappend arg_list -init_wirelength_coef $::env(PL_WIRE_LENGTH_COEF)
append_if_exists_argument arg_list PL_KEEP_RESIZE_BELOW_OVERFLOW -keep_resize_below_overflow

log_cmd global_placement {*}$arg_list

Expand Down
5 changes: 5 additions & 0 deletions openlane/steps/openroad.py
Original file line number Diff line number Diff line change
Expand Up @@ -1348,6 +1348,11 @@ class _GlobalPlacement(OpenROADStep):
units="sites",
pdk=True,
),
Variable(
"PL_KEEP_RESIZE_BELOW_OVERFLOW",
Optional[Decimal],
"Only applicable when PL_TIME_DRIVEN is enabled. When the overflow is below the set value, timing-driven iterations will retain the resizer changes instead of reverting them. Allowed values are 0 to 1. If not set, a nonzero default value from OpenROAD will be used",
),
]
)

Expand Down
Loading