diff --git a/docs/contrib/EndpointSlackTracking.md b/docs/contrib/EndpointSlackTracking.md index 1bab138900..6af5736e43 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 -`save_progress`) also get a snapshot; `*-failed` ones don't. +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. 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/docs/user/FlowVariables.md b/docs/user/FlowVariables.md index 0df148d71d..6e415790b8 100644 --- a/docs/user/FlowVariables.md +++ b/docs/user/FlowVariables.md @@ -130,7 +130,6 @@ configuration file. | CTS_CLUSTER_DIAMETER| Maximum diameter (in microns) of sink cluster.| | | CTS_CLUSTER_SIZE| Maximum number of sinks per cluster.| | | CTS_LIB_NAME| Name of the Liberty library to use in selecting the clock buffers.| | -| CTS_SNAPSHOTS| Create ODB/SDC files at different stages of CTS.| 0| | DESIGN_NAME| The name of the top-level module of the design.| | | DESIGN_NICKNAME| DESIGN_NICKNAME just changes the directory name that ORFS outputs to be DESIGN_NICKNAME instead of DESIGN_NAME in case DESIGN_NAME is unwieldy or conflicts with a different design.| | | DETAILED_METRICS| If set, then calls report_metrics prior to repair operations in the CTS and global route stages| 0| @@ -542,7 +541,6 @@ configuration file. - [CTS_CLUSTER_DIAMETER](#CTS_CLUSTER_DIAMETER) - [CTS_CLUSTER_SIZE](#CTS_CLUSTER_SIZE) - [CTS_LIB_NAME](#CTS_LIB_NAME) -- [CTS_SNAPSHOTS](#CTS_SNAPSHOTS) - [DETAILED_METRICS](#DETAILED_METRICS) - [DETAIL_PLACEMENT_ARGS](#DETAIL_PLACEMENT_ARGS) - [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN) diff --git a/flow/scripts/cts.tcl b/flow/scripts/cts.tcl index fdb9d54ada..1010cedeed 100644 --- a/flow/scripts/cts.tcl +++ b/flow/scripts/cts.tcl @@ -9,11 +9,6 @@ source_step_tcl PRE CTS # so cts does not try to buffer the inverted clocks. repair_clock_inverters -proc save_progress { stage } { - puts "Run 'make gui_$stage.odb' to load progress snapshot" - orfs_write_db $::env(RESULTS_DIR)/$stage.odb -} - # Run CTS set cts_args [list \ -sink_clustering_enable \ @@ -25,7 +20,6 @@ append_env_var cts_args CTS_CLUSTER_DIAMETER -sink_clustering_max_diameter 1 append_env_var cts_args CTS_BUF_LIST -buf_list 1 append_env_var cts_args CTS_LIB_NAME -library 1 - if { [env_var_exists_and_non_empty CTS_ARGS] } { set cts_args $::env(CTS_ARGS) } @@ -34,12 +28,12 @@ set_dont_use $::env(DONT_USE_CELLS) log_cmd clock_tree_synthesis {*}$cts_args -utl::push_metrics_stage "cts__{}__pre_repair_timing" -log_cmd estimate_parasitics if { $::env(DETAILED_METRICS) } { + utl::push_metrics_stage "cts__{}__pre_repair_timing" + log_cmd estimate_parasitics report_metrics 4 "cts pre-repair-timing" + utl::pop_metrics_stage } -utl::pop_metrics_stage set_placement_padding -global \ -left $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT) \ @@ -47,16 +41,12 @@ set_placement_padding -global \ set result [catch { detailed_placement_helper -quiet } msg] if { $result != 0 } { - save_progress 4_1_error + orfs_write_db $::env(RESULTS_DIR)/4_1_error.odb error "Detailed placement failed in CTS: $msg" } log_cmd estimate_parasitics -if { $::env(CTS_SNAPSHOTS) } { - save_progress 4_1_pre_repair_setup_hold -} - if { !$::env(SKIP_CTS_REPAIR_TIMING) } { set lec_enabled [lec_check_enabled] if { $lec_enabled } { @@ -72,7 +62,7 @@ if { !$::env(SKIP_CTS_REPAIR_TIMING) } { set result [catch { detailed_placement_helper -quiet } msg] if { $result != 0 } { - save_progress 4_1_error + orfs_write_db $::env(RESULTS_DIR)/4_1_error.odb error "Detailed placement failed in CTS: $msg" } diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml index ac9d582494..8c1fb94727 100644 --- a/flow/scripts/variables.yaml +++ b/flow/scripts/variables.yaml @@ -822,12 +822,6 @@ CTS_ARGS: Override `clock_tree_synthesis` arguments. stages: - cts -CTS_SNAPSHOTS: - description: | - Create ODB/SDC files at different stages of CTS. - stages: - - cts - default: 0 HOLD_SLACK_MARGIN: description: > Specifies a time margin for the slack when fixing hold violations.