Skip to content

Commit 9bf5cd7

Browse files
committed
cts.tcl: add make do-cts CTS_SNAPSHOT=1 option
It is useful to go into the GUI to look at pre-repair timing reports. Run: make do-cts CTS_SNAPSHOT=1 Then copy and paste the make statement from the log for the snapshot you are interested in: make gui_4_1_pre_repair.odb Signed-off-by: Øyvind Harboe <[email protected]>
1 parent 38a61e4 commit 9bf5cd7

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

flow/scripts/cts.tcl

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ if {[info exist ::env(CTS_CLUSTER_DIAMETER)]} {
1818
set cluster_diameter 100
1919
}
2020

21+
proc save_progress {stage} {
22+
puts "Run 'make gui_$stage.odb' to load progress snapshot"
23+
write_db $::env(RESULTS_DIR)/$stage.odb
24+
write_sdc $::env(RESULTS_DIR)/$stage.sdc
25+
}
26+
2127
if {[info exist ::env(CTS_BUF_DISTANCE)]} {
2228
clock_tree_synthesis -root_buf "$::env(CTS_BUF_CELL)" -buf_list "$::env(CTS_BUF_CELL)" \
2329
-sink_clustering_enable \
@@ -33,6 +39,9 @@ if {[info exist ::env(CTS_BUF_DISTANCE)]} {
3339
-balance_levels
3440
}
3541

42+
if {[info exist ::env(CTS_SNAPSHOTS)]} {
43+
save_progress 4_1_pre_repair_clock_nets
44+
}
3645

3746
set_propagated_clock [all_clocks]
3847

@@ -59,6 +68,10 @@ detailed_placement
5968

6069
estimate_parasitics -placement
6170

71+
if {[info exist ::env(CTS_SNAPSHOTS)]} {
72+
save_progress 4_1_pre_repair_hold_setup
73+
}
74+
6275
puts "Repair setup and hold violations..."
6376

6477
# process user settings
@@ -89,10 +102,8 @@ repair_timing {*}$additional_args
89102

90103
set result [catch {detailed_placement} msg]
91104
if {$result != 0} {
105+
save_progress 4_1_error
92106
puts "Detailed placement failed in CTS: $msg"
93-
puts "Run 'make gui_4_1_error.odb' to load failed snapshot"
94-
write_db $::env(RESULTS_DIR)/4_1_error.odb
95-
write_sdc $::env(RESULTS_DIR)/4_1_error.sdc
96107
return -code $result
97108
}
98109

0 commit comments

Comments
 (0)