Skip to content

Commit 6bbebeb

Browse files
committed
open: skip CRPR pre-CTS to avoid OOM on high-reconvergence clocks
Pre-CTS there is no clock tree, so CRPR (clock reconvergence pessimism removal) has no real launch/capture common-path delay to remove and its correction is ~0. On designs with high clock reconvergence the CRPR tag set can still grow to tens of GB and OOM the process while contributing nothing to the reported slacks. Disable CRPR for design_stage < 4, mirroring the existing set_propagated_clock gate. At stage >= 4 (CTS onward) CRPR is unchanged. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
1 parent 8abc6a9 commit 6bbebeb

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

flow/scripts/open.tcl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,12 @@ proc read_timing { input_file } {
5353
if { $design_stage >= 4 } {
5454
# CTS has run, so propagate clocks
5555
set_propagated_clock [all_clocks]
56+
} else {
57+
# Pre-CTS there is no clock tree, so CRPR has no real launch/capture
58+
# common-path delay to remove and its correction is ~0. On designs with
59+
# high clock reconvergence the CRPR tag set can still grow to tens of GB
60+
# and OOM the process. Skip it pre-CTS.
61+
sta::set_crpr_enabled 0
5662
}
5763

5864
if { $design_stage >= 6 && [file exist $::env(RESULTS_DIR)/6_final.spef] } {

0 commit comments

Comments
 (0)