Skip to content

Commit f500509

Browse files
committed
feat: make MIN_PLACE_STEP_COEFF and MAX_PLACE_STEP_COEFF tunable with validation
Signed-off-by: Jack Luar <[email protected]>
1 parent 26b521c commit f500509

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

flow/scripts/global_place.tcl

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,25 @@ if { $::env(GPL_TIMING_DRIVEN) } {
3333
}
3434
}
3535

36+
# Parameters for phi coefficients in global placement
37+
# Validate phi coefficient constraints before using them
38+
if { [info exists ::env(MIN_PLACE_STEP_COEF)] && [info exists ::env(MAX_PLACE_STEP_COEF)] } {
39+
set min_phi $::env(MIN_PLACE_STEP_COEF)
40+
set max_phi $::env(MAX_PLACE_STEP_COEF)
41+
42+
if { $min_phi > $max_phi } {
43+
utl::error GPL 200 "MIN_PLACE_STEP_COEF ($min_phi) cannot be greater than MAX_PLACE_STEP_COEF ($max_phi)"
44+
}
45+
}
46+
47+
if { [info exists ::env(MIN_PLACE_STEP_COEF)] } {
48+
lappend global_placement_args -min_phi_coef $::env(MIN_PLACE_STEP_COEF)
49+
}
50+
51+
if { [info exists ::env(MAX_PLACE_STEP_COEF)] } {
52+
lappend global_placement_args -max_phi_coef $::env(MAX_PLACE_STEP_COEF)
53+
}
54+
3655
proc do_placement { global_placement_args } {
3756
set all_args [concat [list -density [place_density_with_lb_addon] \
3857
-pad_left $::env(CELL_PAD_IN_SITES_GLOBAL_PLACEMENT) \

flow/scripts/variables.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,30 @@ GPL_ROUTABILITY_DRIVEN:
571571
stages:
572572
- place
573573
default: 1
574+
MIN_PLACE_STEP_COEF:
575+
description: >
576+
Sets the minimum phi coefficient (pcof_min / µ_k Lower Bound) for global
577+
placement optimization. This parameter controls the step size lower bound
578+
in the RePlAce Nesterov optimization algorithm. Lower values may improve
579+
convergence but can increase runtime.
580+
Valid range: 0.95-1.05
581+
default: 0.95
582+
stages:
583+
- place
584+
tunable: 1
585+
type: float
586+
MAX_PLACE_STEP_COEF:
587+
description: >
588+
Sets the maximum phi coefficient (pcof_max / µ_k Upper Bound) for global
589+
placement optimization. This parameter controls the step size upper bound
590+
in the RePlAce Nesterov optimization algorithm. Higher values allow more
591+
aggressive optimization but may risk divergence.
592+
Valid range: 1.00-1.20
593+
default: 1.05
594+
stages:
595+
- place
596+
tunable: 1
597+
type: float
574598
CAP_MARGIN:
575599
description: >
576600
Specifies a capacitance margin when fixing max capacitance violations. This

0 commit comments

Comments
 (0)