Skip to content

Commit 1326cc6

Browse files
authored
Merge pull request #4147 from The-OpenROAD-Project-staging/secure-easy-use-negotiation
dpl: easier setting for using negotiation legalizer
2 parents c1e62b4 + 16d674a commit 1326cc6

6 files changed

Lines changed: 21 additions & 5 deletions

File tree

docs/user/FlowVariables.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@ configuration file.
319319
| <a name="TNS_END_PERCENT"></a>TNS_END_PERCENT| Default TNS_END_PERCENT value for post CTS timing repair. Try fixing all violating endpoints by default (reduce to 5% for runtime). Specifies how many percent of violating paths to fix [0-100]. Worst path will always be fixed.| 100|
320320
| <a name="UNSET_ABC9_BOX_CELLS"></a>UNSET_ABC9_BOX_CELLS| List of cells to unset the abc9_box attribute on| |
321321
| <a name="USE_FILL"></a>USE_FILL| Whether to perform metal density filling.| 0|
322+
| <a name="USE_NEGOTIATION"></a>USE_NEGOTIATION| Enable using negotiation legalizer for detailed placement.| 0|
322323
| <a name="VERILOG_DEFINES"></a>VERILOG_DEFINES| Preprocessor defines passed to the language frontend. Example: `-D HPDCACHE_ASSERT_OFF`| |
323324
| <a name="VERILOG_FILES"></a>VERILOG_FILES| The path to the design Verilog/SystemVerilog files providing a description of modules.| |
324325
| <a name="VERILOG_INCLUDE_DIRS"></a>VERILOG_INCLUDE_DIRS| Specifies the include directories for the Verilog input files.| |
@@ -655,4 +656,5 @@ configuration file.
655656
- [TAP_CELL_NAME](#TAP_CELL_NAME)
656657
- [TECH_LEF](#TECH_LEF)
657658
- [USE_FILL](#USE_FILL)
659+
- [USE_NEGOTIATION](#USE_NEGOTIATION)
658660

flow/scripts/cts.tcl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ set_placement_padding -global \
4646
-left $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT) \
4747
-right $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT)
4848

49-
set result [catch { log_cmd detailed_placement } msg]
49+
set dpl_args {}
50+
append_env_var dpl_args USE_NEGOTIATION -use_negotiation 0
51+
set result [catch { log_cmd detailed_placement {*}$dpl_args } msg]
5052
if { $result != 0 } {
5153
save_progress 4_1_error
5254
error "Detailed placement failed in CTS: $msg"
@@ -70,7 +72,7 @@ if { !$::env(SKIP_CTS_REPAIR_TIMING) } {
7072
run_lec_test 4_rsz 4_before_rsz_lec.v 4_after_rsz_lec.v
7173
}
7274

73-
set result [catch { log_cmd detailed_placement } msg]
75+
set result [catch { log_cmd detailed_placement {*}$dpl_args } msg]
7476
if { $result != 0 } {
7577
save_progress 4_1_error
7678
error "Detailed placement failed in CTS: $msg"

flow/scripts/detail_place.tcl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ proc do_dpl { } {
1515
set_placement_padding -global \
1616
-left $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT) \
1717
-right $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT)
18-
log_cmd detailed_placement {*}[env_var_or_empty DETAIL_PLACEMENT_ARGS]
18+
set dpl_args [env_var_or_empty DETAIL_PLACEMENT_ARGS]
19+
append_env_var dpl_args USE_NEGOTIATION -use_negotiation 0
20+
log_cmd detailed_placement {*}$dpl_args
1921

2022
if { $::env(ENABLE_DPO) } {
2123
if { [env_var_exists_and_non_empty DPO_MAX_DISPLACEMENT] } {

flow/scripts/global_route.tcl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,10 @@ proc global_route_helper { } {
6161

6262
# Running DPL to fix overlapped instances
6363
# Run to get modified net by DPL
64+
set dpl_args {}
65+
append_env_var dpl_args USE_NEGOTIATION -use_negotiation 0
6466
log_cmd global_route -start_incremental
65-
log_cmd detailed_placement
67+
log_cmd detailed_placement {*}$dpl_args
6668
# Route only the modified net by DPL
6769
log_cmd global_route -end_incremental {*}$res_aware \
6870
-congestion_report_file $::env(REPORTS_DIR)/congestion_post_repair_design.rpt
@@ -80,7 +82,7 @@ proc global_route_helper { } {
8082
# Running DPL to fix overlapped instances
8183
# Run to get modified net by DPL
8284
log_cmd global_route -start_incremental
83-
log_cmd detailed_placement
85+
log_cmd detailed_placement {*}$dpl_args
8486
check_placement -verbose
8587
# Route only the modified net by DPL
8688
log_cmd global_route -end_incremental {*}$res_aware \

flow/scripts/variables.json

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flow/scripts/variables.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,10 @@ DPO_MAX_DISPLACEMENT:
600600
description: |
601601
Specifies how far an instance can be moved when optimizing.
602602
default: 5 1
603+
USE_NEGOTIATION:
604+
description: |
605+
Enable using negotiation legalizer for detailed placement.
606+
default: 0
603607
GPL_TIMING_DRIVEN:
604608
description: |
605609
Specifies whether the placer should use timing driven placement.

0 commit comments

Comments
 (0)