Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/contrib/EndpointSlackTracking.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ Every step then writes `$(REPORTS_DIR)/<step>_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,
Expand Down
2 changes: 0 additions & 2 deletions docs/user/FlowVariables.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@ configuration file.
| <a name="CTS_CLUSTER_DIAMETER"></a>CTS_CLUSTER_DIAMETER| Maximum diameter (in microns) of sink cluster.| |
| <a name="CTS_CLUSTER_SIZE"></a>CTS_CLUSTER_SIZE| Maximum number of sinks per cluster.| |
| <a name="CTS_LIB_NAME"></a>CTS_LIB_NAME| Name of the Liberty library to use in selecting the clock buffers.| |
| <a name="CTS_SNAPSHOTS"></a>CTS_SNAPSHOTS| Create ODB/SDC files at different stages of CTS.| 0|
| <a name="DESIGN_NAME"></a>DESIGN_NAME| The name of the top-level module of the design.| |
| <a name="DESIGN_NICKNAME"></a>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.| |
| <a name="DETAILED_METRICS"></a>DETAILED_METRICS| If set, then calls report_metrics prior to repair operations in the CTS and global route stages| 0|
Expand Down Expand Up @@ -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)
Expand Down
20 changes: 5 additions & 15 deletions flow/scripts/cts.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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)
}
Expand All @@ -34,29 +28,25 @@ 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) \
-right $::env(CELL_PAD_IN_SITES_DETAIL_PLACEMENT)

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 } {
Expand All @@ -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"
}

Expand Down
6 changes: 0 additions & 6 deletions flow/scripts/variables.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down