# Tool: IC Compiler II
# Script: clock_opt_opto.tcl
##########################################################################################
if {$CLOCK_OPT_OPTO_USER_INSTANCE_NAME_PREFIX != ""} {
# If CCD is enabled, set both opt and cts user prefix as CCD can work on both clock and data paths
####################################
## Pre-opto customizations
####################################
if {$pd_config(run,icc2,clock_aware_scan_in_clock_opto) ne ""} {
set_app_option -name opt.dft.clock_aware_scan -value $pd_config(run,icc2,clock_aware_scan_in_clock_opto)
compute_clock_latency -verbose
source $TCL_USER_CLOCK_OPT_OPTO_PRE_SCRIPT
if {$current_active_hold_scenarios ne "" } {
report_scenarios
if {$pd_config(run,icc2,clock_wide_wire_effort_level) ne ""} {
}
####################################
####################################
#pd_set_dont_use_on_variant_groups
pd_rm -f ${REPORTS_DIR}/$${REPORT_PREFIX}.report_app_options.start
pd_rm -f ${REPORTS_DIR}/$${REPORT_PREFIX}.report_lib_cell_purpose
pd_trace_cmd_end "${CURRENT_STEP}_setup"
####################################
## Post-CTS optimization
####################################
if {$pd_config(hier,abstraction,design_list) ne ""} {
set_timing_paths_disabled_blocks -all_sub_blocks
source $TCL_USER_CLOCK_OPT_OPTO_SCRIPT
} elseif {$TCL_USER_CLOCK_OPT_OPTO_SCRIPT != ""} {
} else {
####################################
####################################
if {$CLOCK_OPT_OPTO_CTO_USER_INSTANCE_NAME_PREFIX != ""} {
if {$pd_config(run,icc2,clock_wide_wire_effort_level) ne ""} {
report_scenarios
####################################
## Post-opto customizations
####################################
source $TCL_USER_CLOCK_OPT_OPTO_POST_SCRIPT
####################################
####################################
exit