@@ -4,33 +4,37 @@ load_design 3_4_place_resized.odb 2_floorplan.sdc
44
55source $::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]
1633if {$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-
3438report_metrics 3 " detailed place" true false
3539
3640write_db $::env(RESULTS_DIR) /3_5_place_dp.odb
0 commit comments