diff --git a/docs/contrib/EndpointSlackTracking.md b/docs/contrib/EndpointSlackTracking.md index 6af5736e43..41b2e198e7 100644 --- a/docs/contrib/EndpointSlackTracking.md +++ b/docs/contrib/EndpointSlackTracking.md @@ -24,8 +24,8 @@ Every step then writes `$(REPORTS_DIR)/_endpoint_slack.json`, e.g. It works in the single-process `flow/scripts/flow.tcl` flow as well. Steps that just copy their input (`orfs_copy_db`, e.g. `5_3_fillcell` without fill cells) re-time the design if it is loaded, or else copy the previous step's -snapshot. Intermediate `.odb` files written through `orfs_write_db` (e.g. CTS's -`4_1_error.odb`) also get a snapshot; `*-failed` ones don't. +snapshot. Any other `.odb` written through `orfs_write_db`, such as an +ad-hoc checkpoint, also gets a snapshot; `*-failed` ones don't. A placed step is timed with the parasitics OpenROAD has for it: a bare `estimate_parasitics` estimates from the global routes when there are any, diff --git a/flow/scripts/cts.tcl b/flow/scripts/cts.tcl index 1010cedeed..c012f2d2d5 100644 --- a/flow/scripts/cts.tcl +++ b/flow/scripts/cts.tcl @@ -39,11 +39,7 @@ set_placement_padding -global \ -left $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT) \ -right $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT) -set result [catch { detailed_placement_helper -quiet } msg] -if { $result != 0 } { - orfs_write_db $::env(RESULTS_DIR)/4_1_error.odb - error "Detailed placement failed in CTS: $msg" -} +detailed_placement_helper -quiet log_cmd estimate_parasitics @@ -60,11 +56,7 @@ if { !$::env(SKIP_CTS_REPAIR_TIMING) } { run_lec_test 4_rsz 4_before_rsz_lec.v 4_after_rsz_lec.v } - set result [catch { detailed_placement_helper -quiet } msg] - if { $result != 0 } { - orfs_write_db $::env(RESULTS_DIR)/4_1_error.odb - error "Detailed placement failed in CTS: $msg" - } + detailed_placement_helper -quiet log_cmd check_placement -placeable -verbose