Skip to content

Commit a864359

Browse files
authored
Merge pull request #2023 from The-OpenROAD-Project-staging/dpl-fail-odb
Write a failure odb for any command in detail_place.tcl
2 parents a5072f4 + 8538a12 commit a864359

File tree

1 file changed

+24
-20
lines changed

1 file changed

+24
-20
lines changed

flow/scripts/detail_place.tcl

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,37 @@ load_design 3_4_place_resized.odb 2_floorplan.sdc
44

55
source $::env(PLATFORM_DIR)/setRC.tcl
66

7-
# Only for use with hybrid rows
8-
if {[info exists ::env(BALANCE_ROWS)] && $::env(BALANCE_ROWS)} {
9-
balance_row_usage
7+
proc do_dpl {} {
8+
# Only for use with hybrid rows
9+
if {[info exists ::env(BALANCE_ROWS)] && $::env(BALANCE_ROWS)} {
10+
balance_row_usage
11+
}
12+
13+
set_placement_padding -global \
14+
-left $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT) \
15+
-right $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT)
16+
detailed_placement
17+
18+
if {[info exists ::env(ENABLE_DPO)] && $::env(ENABLE_DPO)} {
19+
if {[info exist ::env(DPO_MAX_DISPLACEMENT)]} {
20+
improve_placement -max_displacement $::env(DPO_MAX_DISPLACEMENT)
21+
} else {
22+
improve_placement
23+
}
24+
}
25+
optimize_mirroring
26+
27+
utl::info FLW 12 "Placement violations [check_placement -verbose]."
28+
29+
estimate_parasitics -placement
1030
}
1131

12-
set_placement_padding -global \
13-
-left $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT) \
14-
-right $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT)
15-
set result [catch {detailed_placement} errMsg]
32+
set result [catch {do_dpl} errMsg]
1633
if {$result != 0} {
1734
write_db $::env(RESULTS_DIR)/3_5_place_dp-failed.odb
1835
error $errMsg
1936
}
2037

21-
if {[info exists ::env(ENABLE_DPO)] && $::env(ENABLE_DPO)} {
22-
if {[info exist ::env(DPO_MAX_DISPLACEMENT)]} {
23-
improve_placement -max_displacement $::env(DPO_MAX_DISPLACEMENT)
24-
} else {
25-
improve_placement
26-
}
27-
}
28-
optimize_mirroring
29-
30-
utl::info FLW 12 "Placement violations [check_placement -verbose]."
31-
32-
estimate_parasitics -placement
33-
3438
report_metrics 3 "detailed place" true false
3539

3640
write_db $::env(RESULTS_DIR)/3_5_place_dp.odb

0 commit comments

Comments
 (0)