0% found this document useful (0 votes)
487 views1,481 pages

Tweaker™ Variables

Uploaded by

Thai Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
487 views1,481 pages

Tweaker™ Variables

Uploaded by

Thai Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1481

Tweaker™

Variables
Version T-2022.03, March 2022
Tweaker™ Variables Version T-2022.03

Copyright Notice and Proprietary Information


© 2021 Synopsys, Inc. All rights reserved. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be used pursuant
to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, or distribution of the Synopsys software or the associated
documentation is strictly prohibited.
Destination Control Statement
All technical data contained in this publication is subject to the export control laws of the United States of America. Disclosure to nationals of other countries contrary to
United States law is prohibited. It is the reader's responsibility to determine the applicable regulations and to comply with them.
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Trademarks
Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at
http://www.synopsys.com/company/legal/trademarks-brands.html.
All other product or company names may be trademarks of their respective owners.
Free and Open-Source Software Licensing Notices
If applicable, Free and Open-Source Software (FOSS) licensing notices are available in the product installation.
Third-Party Links
Any links to third-party websites included in this document are for your convenience only. Synopsys does not endorse and is not responsible for such websites and their
practices, including privacy practices, availability, and content.
www.synopsys.com

2
Tweaker™ Variables Version T-2022.03

Contents

allow_cell_padding_flipped_with_orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 ...........
allow_cell_padding_overlapped . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 ...........
allow_instance_padding_flipped_with_orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ...........
antenna_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 ..........
apr_eco_tcl_ignore_antenna_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ...........
apr_tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
..........
auto_add_deleted_instances_to_spare_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 ..........
auto_buffer_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ...........
auto_config_cell_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ...........
auto_config_unit_site_by_consecutive_row_coordinate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 ..........
auto_config_verilog_undeclared_module_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41 ..........
auto_create_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 ...........
auto_create_cell_to_module_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 ..........
auto_create_sub_design_by_lef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ...........
auto_create_sub_module_by_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 ..........
auto_detect_symmetry_by_def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 ..........
auto_partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 ..........
auto_partition_auto_submit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 ..........
auto_partition_design_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 ...........
auto_partition_merge_interface_eco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59 ..........
auto_partition_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61 ..........
auto_partition_queue_command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63 ..........
auto_update_ignored_physical_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65 ..........
avoid_space_fragmentation_by_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 ..........
bottom_routing_layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 ..........
build_missing_pin_at_lefin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 ...........
case_analysis_sequential_propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 ..........
cell_pin_avoid_power_strap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ...........
change_netlist_hierarchy_try_using_existing_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 ...........
check_pin_access_point_at_cell_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 ...........
clock_eco_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 ..........
clock_surgery_margin_summarize_common_path_violation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ...........
combo_buffer_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ...........
compare_power_management_cell_equal_by_pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87 ..........
compare_register_cell_equal_by_pin_names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 ..........
congestion_map_grid_size_by_row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ...........
continue_on_tweaker_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93 ..........
convert_empty_modules_to_bbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95 ..........
corner_pruning_enable_slack_scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 ...........
corner_pruning_enable_twf_scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 ...........

Contents 3
Tweaker™ Variables Version T-2022.03

current_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101 ..........


database_resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 ...........
db_Auto_Clear_P2P_Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 ...........
db_Draw_P2P_Graph_Sizing_And_Moving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 ...........
db_align_cell_placement_to_row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 ...........
db_configure_instance_padding_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 ..........
db_keep_connection_of_used_spare_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 ...........
db_max_buffer_insertion_window_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115 ..........
db_max_route_layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 ...........
db_move_unused_cells_to_spare_module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119 ..........
db_placement_check_physical_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121 ..........
db_pop_up_message_manual_moving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123 ..........
db_tie_auto_crx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 ..........
db_tie_cell_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
..........
db_tie_crx_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129...........
db_tie_dist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
..........
db_tie_effort_high . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ...........
db_tie_highlight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135 ..........
db_tie_max_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 ...........
def_physical_cells_to_be_ignored . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 ...........
def_physical_cells_to_be_ignored_except_instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ...........
def_physical_instances_to_be_ignored . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ...........
defin_ignore_row_power_violation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 ...........
defin_missed_instance_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147 ..........
defin_missed_total_instance_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149 ..........
defin_row_power_violation_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151 ..........
defin_total_master_discrepancy_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153 ..........
defin_total_row_power_violation_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 ...........
defin_unplaced_component_percentage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 ...........
design_analysis_collecting_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159 ..........
design_analysis_grid_height_by_row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 ...........
disable_undo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 ..........
disable_via0_rule_on_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168 ..........
drv_derate_at_index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 ...........
dump_agr_Inst_Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173 ..........
dynamic_power_unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 ...........
eco_clock_comp_with_placement_fixed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177 ..........
eco_tcl_catch_apr_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 ...........
eco_tcl_enable_pt_create_port_what_if_flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181 ..........
eco_tcl_olympus_keep_routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 ...........
eco_tcl_out_clock_comp_with_placement_fixed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185 ..........
eco_tcl_pre_check_sizing_conflict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 ...........
eco_tcl_pre_check_target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189 ..........
eco_tcl_sync_instance_net_name_to_apr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 ...........
eco_tcl_use_high_level_insertion_cmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193 ..........

Contents 4
Tweaker™ Variables Version T-2022.03

eco_tcl_use_high_level_insertion_cmd_without_buffer_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 ...........


eco_tcl_use_module_based_high_level_insertion_cmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197 ..........
eco_tcl_user_attr_for_eco_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 ...........
enable_all_color_shift_values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201 ..........
enable_auto_derate_scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 ...........
enable_buffer_assign_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205 ..........
enable_cell_edge_spacing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 ...........
enable_cell_padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209...........
enable_cell_via0_avoid_power_strap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211 ..........
enable_cell_width_spacing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 ...........
enable_color_shifting_tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214 ..........
enable_cover_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216
..........
enable_eco_comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218 ..........
enable_inbound_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221...........
enable_instance_padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 ...........
enable_lvf_extended_moments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225 ..........
enable_m0po . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228
..........
enable_macro_halo_blockages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230 ..........
enable_multi_machine_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232 ..........
enable_no_fill1_spacing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 ...........
enable_no_fill1_spacing_rule_with_placement_blockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236 ..........
enable_no_filler1_spacing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238 ..........
enable_no_filler1_spacing_rule_with_placement_blockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240 ..........
enable_ocv_sigma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242 ..........
enable_od_jog_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244 ..........
enable_partial_blockages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 ...........
enable_physical_vio_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 ...........
enable_preprocess_of_data_out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253 ..........
enable_resource_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 ...........
enable_sdf_condelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257 ..........
enable_single_wire_decl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259 ..........
enable_soft_blockages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 ...........
enable_timing_constraint_variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264 ..........
enable_timing_slew_variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266 ..........
enable_via0_alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268 ..........
enable_via0_alignment_in_specific_design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 ...........
enable_vt_point_touch_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 ...........
error_out_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
...........
flexible_vt_width_rule_extend_core_edge_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275 ..........
flexible_vt_width_rule_geometry_level_filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277 ..........
forbidden_chain_attr_vio_chain_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 ...........
forbidden_chain_attr_vio_nworst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281 ..........
force_keep_physical_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283 ..........
gate_array_filler_prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
...........
gate_array_honor_blockages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 ...........

Contents 5
Tweaker™ Variables Version T-2022.03

gui_title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
...........
high_priority_for_dont_use_attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289 ..........
horizontal_cell_edge_spacing_rule_filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 ...........
ignore_def_placement_blockages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293 ..........
ignore_eco_attr_while_reading_partial_def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296 ..........
ignore_symmetry_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298 ..........
ilm_list_for_eco_tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 ...........
innovus_eco_tcl_half_unit_site_cell_placement_offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302 ..........
innovus_eco_tcl_in_bound_cell_placement_offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304 ..........
ir_eco_rhsc_aggressor_view_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 ...........
ir_eco_rhsc_analysis_view_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307 ..........
ir_eco_rhsc_restore_db_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 ...........
ir_eco_rhsc_timing_corner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 ...........
ir_eco_rhsc_tool_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312 ..........
ir_eco_rhsc_voltage_impact_view_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314 ..........
ir_eco_rhsc_work_dir_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .315 ..........
ir_eco_update_eco_cell_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 ...........
keep_def_cover_physical_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319 ..........
keep_def_fixed_physical_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 ...........
keep_netlist_in_memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324 ..........
keep_used_spare_cells_in_netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326 ..........
leakage_power_unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 ...........
lef_default_symmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 ...........
lef_layers_to_be_ignored . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 ...........
lefin_cell_width_spacing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 ...........
libin_read_internal_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336 ..........
libin_with_voltage_temperature_information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338 ..........
library_cells_to_be_designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 ...........
library_cells_to_be_ignored . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342 ..........
log_file_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 ...........
log_period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346...........
max_file_in_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .347 ..........
max_sdc_error_msg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 ...........
merge_nlcmd_skip_inst_overlap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350 ..........
merge_nlcmd_skip_physical_conflict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 ...........
merge_nlcmd_skip_sizing_conflict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 ...........
metal_eco_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356 ..........
metal_layer_blockage_as_placement_blockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358 ..........
metal_layer_for_std_cell_power_ground . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360 ..........
min_required_def_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361 ..........
multi_machine_client_available_cpu_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363 ..........
multi_machine_client_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365 ..........
multi_machine_client_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .367 ..........
multi_machine_submit_job_postfix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369 ..........
multi_machine_submit_job_prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371 ..........

Contents 6
Tweaker™ Variables Version T-2022.03

multi_machine_time_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 ...........


naming_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .375
..........
naming_rule_ref_for_apr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .377 ..........
netlist_fit_to_last_command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 ...........
netlist_physical_cells_to_be_ignored . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 ...........
nls_enable_translate_off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .383 ..........
nls_flatten_lib_bundle_pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .384 ..........
non_physical_aware_eco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 ...........
overwrite_existed_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 ...........
physical_view_display_all_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 ...........
physical_view_display_net_by . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .391 ..........
physical_view_display_quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .393 ..........
physical_view_max_acceptable_unplaced_cell_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .395 ..........
pin_access_point_for_ndr_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .397 ..........
pin_access_point_min_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 ...........
pin_track_aware_by_layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .401 ..........
pin_track_color_aware_by_layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .403 ..........
power_ground_pin_geometry_to_be_compared . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .405 ..........
power_state_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 ...........
primetime_si_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .408 ..........
prioritize_lef_color_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .410 ..........
query_tie_cell_for_constant_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .413 ..........
recycle_spare_cell_into_original_module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .415 ..........
reduce_routing_of_constant_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .417 ..........
refill_gate_array_into_original_module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 ..........
remap_clk_skew_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .421 ..........
remap_constant_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .423 ..........
remap_constant_reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 ...........
remap_dont_use_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 ...........
remap_dont_use_cell_from_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .428 ..........
remap_eco_net_length_to_be_remapped . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .429 ..........
remap_high_fanout_net_filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 ...........
remap_keep_original_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 ...........
remap_max_transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .434 ..........
remap_max_transition_percentage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .436 ..........
remap_reduction_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .438 ..........
remap_resource_auto_extend_sa_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 ...........
remap_resource_auto_extend_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 ...........
remap_resource_extend_offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .443 ..........
remap_target_slack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .445 ..........
remap_uses_constant_signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 ...........
remap_without_power_domain_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 ...........
report_clear_paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .450 ..........
report_preset_paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 ...........
report_scan_enable_paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 ...........

Contents 7
Tweaker™ Variables Version T-2022.03

sdf_hier_prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .456
..........
sdf_noedge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
...........
sdf_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
...........
search_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460
..........
search_space_cross_placed_blocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .462 ..........
session_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .464 ..........
skip_rtl_verilog_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466...........
skip_vlgin_error_modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 ...........
slack_view_show_dominate_path_drv_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .470 ..........
slackin_honor_hierarchy_pruning_design_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .472 ..........
slk_aggressive_hfi_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 ...........
slk_area_recovery_fix_internal_power_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .476 ..........
slk_area_recovery_keep_one_buffer_for_back_to_back . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 ...........
slk_area_recovery_list_by_design_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479 ..........
slk_area_recovery_list_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .481 ..........
slk_auto_bypass_max_fanout_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .483 ..........
slk_auto_fix_always_dont_overlap_def_fix_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 ...........
slk_auto_fix_fit_to_free_space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 ...........
slk_auto_fix_max_loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 ...........
slk_auto_fix_max_wire_length_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 ...........
slk_auto_insertion_max_fanout_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .493 ..........
slk_auto_learning_buffer_list_by_autofix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 ...........
slk_auto_sizing_adjust_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 ...........
slk_auto_sizing_buf_inv_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 ...........
slk_auto_sizing_cell_delay_impact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .501 ..........
slk_auto_sizing_comb_logic_cell_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 ...........
slk_auto_sizing_disable_si_net_sink_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .505 ..........
slk_auto_sizing_effort_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .507 ..........
slk_auto_sizing_enable_cell_mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 ...........
slk_auto_sizing_ff_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .511 ..........
slk_auto_sizing_high_effort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .513 ..........
slk_auto_sizing_ignore_input_pin_slack_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 ...........
slk_auto_sizing_instance_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 ...........
slk_auto_sizing_keep_long_wire_slew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 ..........
slk_auto_sizing_keep_routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .521 ..........
slk_auto_sizing_keep_si_slew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .523 ..........
slk_auto_sizing_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .525 ..........
slk_auto_sizing_max_fanout_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .527 ..........
slk_auto_sizing_max_shift_distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .529 ..........
slk_auto_sizing_min_improved_slack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .531 ..........
slk_auto_sizing_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 ...........
slk_auto_sizing_setup_twf_impact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 ...........
slk_auto_sizing_use_constant_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .538 ..........
slk_auto_sizing_watch_leakage_cost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .540 ..........
slk_auto_sizing_within_instance_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .542 ..........

Contents 8
Tweaker™ Variables Version T-2022.03

slk_auto_update_path_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .544 ..........


slk_autofix_max_undo_domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .545 ..........
slk_autofix_split_sizing_down_driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .547 ..........
slk_avg_offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
...........
slk_block_report_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 ...........
slk_bypass_buff_cell_delay_impact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 ...........
slk_bypass_buff_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 ...........
slk_bypass_buff_min_improved_slack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556 ...........
slk_bypass_buffer_disable_new_assign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .558 ..........
slk_bypass_buffer_disable_new_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .560 ..........
slk_bypass_instance_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .562 ..........
slk_bypass_preserve_instance_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .564 ..........
slk_bypass_within_instance_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 ...........
slk_cap_unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .568
..........
slk_ceff_derate_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .570 ..........
slk_cell_extended_mapping_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 ...........
slk_cell_extended_mapping_rule_regexp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .574 ..........
slk_cell_mapping_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 ...........
slk_cell_mapping_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .578 ..........
slk_cell_mapping_rule_regexp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 ...........
slk_cell_stealing_hold_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .583 ..........
slk_cell_stealing_setup_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .585 ..........
slk_check_spef_quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .587 ..........
slk_congestion_aware_exhaustive_search_range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 ...........
slk_congestion_aware_hfs_search_range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 ...........
slk_congestion_aware_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .593 ..........
slk_congestion_aware_moving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .595 ..........
slk_congestion_aware_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 ...........
slk_congestion_aware_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 ...........
slk_consistency_check_fail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .604 ..........
slk_consistency_check_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .606 ..........
slk_corner_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
...........
slk_coupling_mul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .610 ..........
slk_dc_all_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
...........
slk_defrag_cell_naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .613 ..........
slk_delay_insertion_buff_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615 ..........
slk_delay_insertion_combo_cell_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .617 ..........
slk_delay_insertion_high_drive_buff_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .619 ..........
slk_delay_insertion_inverter_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 ...........
slk_delay_insertion_keep_long_wire_slew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 ...........
slk_delay_insertion_use_inverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 ...........
slk_delay_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .627 ..........
slk_detail_log_insts_by_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .629 ..........
slk_dont_touch_always_on_conflict_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .631 ..........
slk_dont_touch_broken_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633 ...........

Contents 9
Tweaker™ Variables Version T-2022.03

slk_dont_touch_by_drv_cell_type_mismatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635 ...........


slk_dont_touch_def_fixed_inst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637 ...........
slk_dont_touch_inconsistency_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 ...........
slk_dont_touch_missing_lib_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .641 ..........
slk_dont_touch_missing_lib_cone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .643 ..........
slk_dont_touch_missing_lib_leakage_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .644 ..........
slk_dont_touch_padding_inst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 ...........
slk_dont_touch_path_by_endpoint_pin_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .648 ..........
slk_dont_touch_path_groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650 ...........
slk_dont_touch_power_switch_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .652 ..........
slk_dont_touch_tie_cell_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 ...........
slk_dont_touch_unrecognized_bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .656 ..........
slk_drv_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
...........
slk_drv_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
...........
slk_dummy_load_cell_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661 ...........
slk_dynamic_power_corner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .663 ..........
slk_enable_data_arrival_time_offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .665 ..........
slk_enable_slew_variation_for_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .667 ..........
slk_extract_setup_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .669 ..........
slk_extract_setup_margin_trans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671 ...........
slk_extract_sisdf_by_report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .673 ..........
slk_fast_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .675..........
slk_fix_allow_insertion_in_third_power_domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .677 ..........
slk_fix_area_recovery_by_deletion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .679 ..........
slk_fix_area_recovery_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .681 ..........
slk_fix_bbox_pin_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .683 ..........
slk_fix_beol_hold_robustness_by_delay_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .685 ..........
slk_fix_beol_hold_robustness_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .687 ..........
slk_fix_beol_setup_robustness_by_repeater_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .689 ..........
slk_fix_beol_setup_robustness_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .691 ..........
slk_fix_bottleneck_robustness_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .693 ..........
slk_fix_cell_robustness_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .695 ..........
slk_fix_cons_without_sizing_down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697 ...........
slk_fix_cross_bbox_net_with_low_priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .699 ..........
slk_fix_defrag_grouping_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .701 ..........
slk_fix_dont_touch_clock_comp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702 ...........
slk_fix_dont_touch_cross_bbox_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .705 ..........
slk_fix_drv_by_hfts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707...........
slk_fix_drv_by_lib_for_pin_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .709 ..........
slk_fix_drv_by_sizing_ignore_driving_drv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .711 ..........
slk_fix_drv_dont_touch_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .713 ..........
slk_fix_drv_dont_touch_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .715 ..........
slk_fix_drv_fit_to_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
...........
slk_fix_drv_out_of_lib_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .719 ..........
slk_fix_drv_specified_pin_list_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721 ..........

Contents 10
Tweaker™ Variables Version T-2022.03

slk_fix_drv_watch_hold_timing_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723 ...........


slk_fix_drv_watch_setup_timing_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 ...........
slk_fix_drv_within_pin_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .727
..........
slk_fix_drv_within_pin_list_expand_to_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .729 ..........
slk_fix_dynamic_power_batch_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731 ...........
slk_fix_dynamic_power_batch_mode_post_legalize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .733 ..........
slk_fix_dynamic_power_swap_list_by_design_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .735 ..........
slk_fix_dynamic_power_swap_list_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .737 ..........
slk_fix_dynamic_power_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .739 ..........
slk_fix_dynamic_power_watch_hold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .741 ..........
slk_fix_dynamic_power_watch_internal_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .743 ..........
slk_fix_dynamic_power_watch_leakage_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745 ...........
slk_fix_dynamic_power_watch_peer_setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747 ...........
slk_fix_dynamic_power_watch_switching_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .749 ..........
slk_fix_dynamic_power_without_sizing_down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751 ...........
slk_fix_dynamic_power_without_sizing_up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .753 ..........
slk_fix_enable_defrag_to_different_row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755 ...........
slk_fix_forbidden_chain_by_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757 ...........
slk_fix_forbidden_chain_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759 ...........
slk_fix_forbidden_chain_dont_touch_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .761 ..........
slk_fix_forbidden_chain_insertion_exhaustively . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763 ...........
slk_fix_forbidden_chain_insertion_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765 ...........
slk_fix_forbidden_chain_min_improved_for_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .767 ..........
slk_fix_forbidden_chain_nworst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769 ...........
slk_fix_forbidden_chain_watch_hold_timing_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .771 ..........
slk_fix_forbidden_chain_watch_setup_timing_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .773 ..........
slk_fix_hold_add_dummy_cell_by_bounding_box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775 ...........
slk_fix_hold_allow_impact_next_stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .778 ..........
slk_fix_hold_at_endpoint_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .780 ..........
slk_fix_hold_at_sink_pin_by_distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782 ...........
slk_fix_hold_at_sink_pin_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .784 ..........
slk_fix_hold_at_startpoint_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .786 ..........
slk_fix_hold_bottleneck_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .788 ..........
slk_fix_hold_by_add_dummy_load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .790 ..........
slk_fix_hold_by_delay_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792 ...........
slk_fix_hold_by_delay_insertion_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794 ..........
slk_fix_hold_by_extract_extra_domain_setup_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796 ...........
slk_fix_hold_by_extract_setup_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .798 ..........
slk_fix_hold_by_fix_setup_si . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .800 ..........
slk_fix_hold_by_hack_sdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802...........
slk_fix_hold_by_high_fanout_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804 ..........
slk_fix_hold_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .806
..........
slk_fix_hold_by_sizing_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .808 ..........
slk_fix_hold_by_twf_cost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .810..........
slk_fix_hold_by_virtual_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812 ...........

Contents 11
Tweaker™ Variables Version T-2022.03

slk_fix_hold_dont_touch_clock_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .814 ..........


slk_fix_hold_enable_si_aware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .816 ..........
slk_fix_hold_high_effort_flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818 ...........
slk_fix_hold_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
...........
slk_fix_hold_max_trans_drv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822 ...........
slk_fix_hold_minimize_buffer_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .824 ..........
slk_fix_hold_minimize_setup_impact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826 ...........
slk_fix_hold_minimize_worst_slack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .828 ..........
slk_fix_hold_power_aware_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .830 ..........
slk_fix_hold_use_constant_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .832 ..........
slk_fix_hold_watch_driving_pin_slack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .834 ..........
slk_fix_hold_watch_timing_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .836 ..........
slk_fix_hold_without_sizing_up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .838 ..........
slk_fix_ignore_clock_comp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840 ..........
slk_fix_internal_power_by_deletion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .843 ..........
slk_fix_internal_power_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845 ...........
slk_fix_internal_power_larger_than . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .847 ..........
slk_fix_ir_eco_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848 ...........
slk_fix_ir_eco_conservative_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .849 ..........
slk_fix_ir_eco_dont_touch_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .851 ..........
slk_fix_ir_eco_dont_touch_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853 ...........
slk_fix_ir_eco_hornor_aggressor_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855 ...........
slk_fix_ir_eco_watch_timing_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857 ...........
slk_fix_keep_driving_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859 ...........
slk_fix_keep_obs_geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861 ...........
slk_fix_keep_pin_geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .863 ..........
slk_fix_keep_scaling_long_wire_slew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .865 ..........
slk_fix_leakage_power_by_deletion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867 ...........
slk_fix_leakage_power_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .869 ..........
slk_fix_low_priority_design_for_interface_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .871 ..........
slk_fix_max_cap_by_repeater_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .873 ..........
slk_fix_max_cap_by_repeater_insertion_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .875 ..........
slk_fix_max_cap_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .877 ..........
slk_fix_max_cap_by_sizing_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .879 ..........
slk_fix_max_cap_by_split_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .881 ..........
slk_fix_max_cap_fit_to_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .883 ..........
slk_fix_max_fanout_by_high_fanout_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .885 ..........
slk_fix_max_fanout_by_high_fanout_insertion_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .887 ..........
slk_fix_max_fanout_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .889 ..........
slk_fix_max_fanout_by_sizing_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .891 ..........
slk_fix_max_fanout_by_split_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893 ...........
slk_fix_max_trans_actual_trans_lighter_bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .895 ..........
slk_fix_max_trans_actual_trans_lighter_bound_setup_range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897 ...........
slk_fix_max_trans_by_actual_trans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .899 ..........
slk_fix_max_trans_by_repeater_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .901 ..........

Contents 12
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_by_repeater_insertion_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .903 ..........


slk_fix_max_trans_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .905 ..........
slk_fix_max_trans_by_sizing_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .907 ..........
slk_fix_max_trans_by_split_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909 ...........
slk_fix_max_trans_fit_to_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911...........
slk_fix_max_trans_out_of_lib_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .913 ..........
slk_fix_max_trans_without_dc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .915 ..........
slk_fix_min_pulse_width_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .917 ..........
slk_fix_noise_by_repeater_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .919 ..........
slk_fix_noise_by_repeater_insertion_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .921 ..........
slk_fix_noise_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .923
..........
slk_fix_noise_by_sizing_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .925 ..........
slk_fix_noise_by_split_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
...........
slk_fix_noise_cap_improved_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .928 ..........
slk_fix_noise_trans_improved_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .930 ..........
slk_fix_noise_wire_length_change_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932 ..........
slk_fix_path_watch_timing_window_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934 ...........
slk_fix_setup_better_slew_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .936 ..........
slk_fix_setup_by_bypass_buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .938 ..........
slk_fix_setup_by_bypass_inverter_pair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .940 ..........
slk_fix_setup_by_down_sizing_peer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .942 ..........
slk_fix_setup_by_down_sizing_peer_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .944 ..........
slk_fix_setup_by_fast_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .946 ..........
slk_fix_setup_by_hack_sdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948 ..........
slk_fix_setup_by_hfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .950
..........
slk_fix_setup_by_improve_sink_slew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952 ...........
slk_fix_setup_by_pinswap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .954 ..........
slk_fix_setup_by_repeater_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .956 ..........
slk_fix_setup_by_repeater_insertion_force_fixing_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958 ...........
slk_fix_setup_by_repeater_insertion_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .961 ..........
slk_fix_setup_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .963
..........
slk_fix_setup_by_sizing_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .965 ..........
slk_fix_setup_by_split_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967
...........
slk_fix_setup_by_split_load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .969 ..........
slk_fix_setup_down_sizing_peer_allow_up_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .971 ..........
slk_fix_setup_insert_repeater_at_macro_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973 ...........
slk_fix_setup_max_trans_drv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975 ...........
slk_fix_setup_min_improved_slack_of_repeater_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .977 ..........
slk_fix_setup_min_improved_slack_of_split_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979 ...........
slk_fix_setup_minimize_worst_slack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .981 ..........
slk_fix_setup_repeater_insertion_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983 ...........
slk_fix_setup_split_cell_max_pin_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986 ..........
slk_fix_setup_use_inverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 988...........
slk_fix_setup_watch_hold_timing_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 990 ...........
slk_fix_setup_watch_setup_timing_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992 ...........

Contents 13
Tweaker™ Variables Version T-2022.03

slk_fix_setup_without_sizing_down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .994 ..........


slk_fix_si_double_switching_by_repeater_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996 ..........
slk_fix_si_double_switching_by_repeater_insertion_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .998 ..........
slk_fix_si_double_switching_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1000 ..........
slk_fix_si_double_switching_by_sizing_with_cell_stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1002 ..........
slk_fix_si_double_switching_by_split_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1004 ..........
slk_fix_si_double_switching_cap_improved_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006 ...........
slk_fix_si_double_switching_trans_improved_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1008 ..........
slk_fix_si_first . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
...........
slk_fix_si_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1013
..........
slk_fix_switching_power_by_moving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1016 ..........
slk_fix_switching_power_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1018 ..........
slk_fix_switching_power_larger_than . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020 ...........
slk_fix_trans_min_improved_slack_of_repeater_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021 ...........
slk_fix_trans_min_improved_slack_of_split_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1023 ..........
slk_fix_transition_for_bus_balance_watch_arrival . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025 ...........
slk_fix_vmin_without_sizing_down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 ...........
slk_fix_voltage_robustness_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029 ...........
slk_fix_voltage_robustness_watch_all_timing_edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1031 ..........
slk_fix_watch_clock_as_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033 ...........
slk_fix_watch_forbidden_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035 ...........
slk_fix_watch_max_fanout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037 ...........
slk_fix_watch_twf_clock_drv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1038 ..........
slk_fix_watch_twf_inst_pin_drv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1040 ..........
slk_fix_watch_vt_ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1042 ..........
slk_force_apply_hfi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044 ...........
slk_force_apply_mapping_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046 ...........
slk_force_apply_on_route_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048 ...........
slk_ftc_build_all_clock_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051 ...........
slk_ftc_fix_hold_by_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1053 ..........
slk_ftc_fix_hold_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1055 ..........
slk_ftc_fix_setup_by_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1057 ..........
slk_ftc_fix_setup_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1059 ..........
slk_ftc_hold_eco_target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1061 ..........
slk_ftc_hold_max_fine_tune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063 ...........
slk_ftc_hold_max_trans_drv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065 ...........
slk_ftc_min_improved_slack_of_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1067 ..........
slk_ftc_setup_eco_target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068 ...........
slk_ftc_setup_max_fine_tune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071 ...........
slk_ftc_setup_max_trans_drv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073 ...........
slk_ftc_watch_hold_nfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1075 ..........
slk_ftc_watch_hold_tns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1078 ..........
slk_ftc_watch_hold_wns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081 ...........
slk_ftc_watch_setup_nfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1084 ..........
slk_ftc_watch_setup_tns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1087 ..........

Contents 14
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_setup_wns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 ...........


slk_give_up_insert_buf_distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093 ...........
slk_give_up_insert_if_no_space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1095 ..........
slk_hack_all_timing_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1097 ..........
slk_hack_clock_min_cell_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1099 ..........
slk_hack_comb_logic_cell_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101 ...........
slk_hack_hold_watch_setup_timing_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1103 ...........
slk_hack_setup_min_cell_delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104 ...........
slk_hfi_allow_bundle_grouping_within_distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1106 ..........
slk_hfi_grouping_hold_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1108 ..........
slk_hfi_keep_driver_net_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110 ...........
slk_hfi_keep_driver_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1112 ..........
slk_hfi_peer_hold_twf_impact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1114 ..........
slk_hfi_peer_setup_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1116 ..........
slk_hfi_peer_setup_twf_impact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1118 ..........
slk_hfi_use_combo_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1120 ..........
slk_hfi_use_same_always_on_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1122 ..........
slk_hfs_inverter_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1124..........
slk_hfs_use_inverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126
...........
slk_hfts_auto_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1128 ..........
slk_hide_dorado_latch_report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1130 ..........
slk_high_drive_keep_slew_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131 ..........
slk_hold_insertion_through_path_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133 ...........
slk_hold_target_slk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
...........
slk_hold_worst_slack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1137 ..........
slk_hold_worst_slack_corner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140 ...........
slk_ignore_better_slew_if_wirelength_lesser_than . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1142 ..........
slk_ignore_couple_c_if_wirelength_lesser_than . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1144 ..........
slk_ignore_derate_limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146 ...........
slk_ignore_drv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1148
..........
slk_ignore_hard_macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1150 ..........
slk_ignore_path_delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1152 ..........
slk_ignore_path_derate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1154 ..........
slk_ignore_trans_ceff_offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156 ..........
slk_ignore_twf_generated_clk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1158 ..........
slk_ignore_twf_sdc_session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159 ...........
slk_ignore_vt_rule_checking_for_undefined_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160 ...........
slk_insert_allow_overlap_preferred_region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1162 ..........
slk_insert_allow_touch_assign_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1164 ..........
slk_insert_count_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166
...........
slk_insert_delay_count_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167 ..........
slk_insert_enable_routing_path_congestion_aware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1168 ..........
slk_insert_placement_blockage_min_width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1170 ...........
slk_insert_recognize_macro_power_domain_by_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1172 ..........
slk_insert_recognize_mini_design_power_domain_by_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174 ...........

Contents 15
Tweaker™ Variables Version T-2022.03

slk_insert_third_power_domain_without_logical_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1176 ..........


slk_insertion_dont_touch_complex_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 ...........
slk_ir_drop_aware_defrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1179 ..........
slk_ir_drop_keepout_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1181 ..........
slk_ir_eco_min_improved_ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1183 ..........
slk_ir_eco_target_dropped_ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1185 ..........
slk_keep_clk_comp_for_each_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1186 ...........
slk_keep_slew_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188 ...........
slk_leakage_power_lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1190 ...........
slk_leakage_power_lib_temperature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1192 ..........
slk_leakage_power_lib_voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1194 ..........
slk_libin_inconsistency_count_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1196 ..........
slk_max_cap_target_slk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1197 ...........
slk_max_couple_c_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199 ...........
slk_max_dummy_load_cell_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1201 ..........
slk_max_dummy_load_cell_distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203 ...........
slk_max_fanout_target_slk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205 ...........
slk_max_inst_shift_wo_trial_route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1207 ..........
slk_max_offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1209..........
slk_max_path_per_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1211 ..........
slk_max_time_borrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213 ..........
slk_max_trans_target_slk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214 ...........
slk_merge_twf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1216 ..........
slk_min_pulse_width_target_slk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218 ...........
slk_minimize_si . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1220 ..........
slk_minimize_si_criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1222 ..........
slk_new_delay_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1224 ..........
slk_normalized_derate_ref_corner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1226 ...........
slk_nworst_path_per_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1228 ..........
slk_on_route_buffer_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1230 ..........
slk_on_route_search_range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232 ...........
slk_output_clock_group_comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 ...........
slk_output_pin_count_building_entire_cell_domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236 ...........
slk_page_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238
...........
slk_partition_design_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1239 ..........
slk_partition_if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241
...........
slk_path_base_analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1243 ..........
slk_path_base_analysis_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1245 ..........
slk_path_reduction_with_edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1247 ...........
slk_path_reduction_with_report_path_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1249 ..........
slk_pocv_used_worst_distance_based_derated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1251 ..........
slk_power_eco_dont_touch_complex_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1253 ...........
slk_power_eco_enable_si_aware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1254 ..........
slk_power_eco_enable_vt_ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256 ...........
slk_power_eco_final_stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1258 ..........

Contents 16
Tweaker™ Variables Version T-2022.03

slk_power_eco_fix_dominate_transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1260 ..........


slk_power_eco_ignore_power_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1262 ...........
slk_power_eco_max_trans_drv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1264 ..........
slk_power_eco_post_legalize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1266 ..........
slk_power_eco_priority_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1268 ..........
slk_power_eco_resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1270 ..........
slk_power_eco_sorting_criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1272 ..........
slk_power_eco_swap_list_by_design_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 ...........
slk_power_eco_swap_list_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1276 ...........
slk_power_eco_target_slk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1278 ..........
slk_power_eco_undo_extra_domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1280 ..........
slk_power_eco_watch_hold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 ...........
slk_power_eco_watch_input_drv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1283 ...........
slk_power_eco_watch_peer_setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1285 ..........
slk_preferred_delay_cell_distance_range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1287 ..........
slk_preferred_repeater_distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1289 ..........
slk_range_for_add_dummy_load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1291 ...........
slk_rce_blockage_min_width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1293 ..........
slk_rce_long_wire_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1295 ...........
slk_rce_long_wire_unit_c_derate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298 ...........
slk_rce_long_wire_unit_r_derate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1300 ..........
slk_rce_refer_detail_route_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1302 ...........
slk_read_dominate_path_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1304 ..........
slk_read_trans_from_twf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1306 ..........
slk_read_whole_twf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1308 ..........
slk_refer_spf_unit_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1310..........
slk_repeater_insertion_buff_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1312 ..........
slk_repeater_insertion_clock_buff_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1314 ..........
slk_repeater_insertion_clock_inverter_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1316 ..........
slk_repeater_insertion_inverter_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1318 ..........
slk_report_cap_unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1320 ..........
slk_report_divider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322
...........
slk_report_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1323
...........
slk_report_time_unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324...........
slk_sdf_ignore_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1326 ..........
slk_setup_cost_involve_slew_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1328 ..........
slk_setup_cost_one2one_cell_weight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1330 ..........
slk_setup_margin_tolerance_for_drv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1332 ..........
slk_setup_margin_tolerance_for_drv_sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1334 ..........
slk_setup_splitload_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1336 ..........
slk_setup_target_slk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1338...........
slk_setup_worst_slack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1340 ..........
slk_setup_worst_slack_corner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1343 ..........
slk_si_aware_clock_period_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1345 ..........
slk_si_aware_long_wire_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1347 ..........

Contents 17
Tweaker™ Variables Version T-2022.03

slk_si_aware_long_wire_slew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1349 ..........


slk_si_aware_long_wire_slew_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1351 ...........
slk_si_aware_null_clock_period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1353 ...........
slk_si_aware_short_wire_slew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355 ...........
slk_si_aware_short_wire_slew_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1357 ..........
slk_si_prevention_by_insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1359 ..........
slk_si_prevention_by_insertion1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1361 ..........
slk_si_prevention_by_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1363 ...........
slk_si_prevention_by_swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1365 ..........
slk_si_prevention_check_twf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1367 ..........
slk_sizing_by_same_library_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1369 ..........
slk_slack_adjust_range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1370 ..........
slk_ssta_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1372
..........
slk_time_unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1374
..........
slk_transition_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1376 ..........
slk_twf_clock_drv_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1378 ..........
slk_twf_cost_v2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1379
..........
slk_twf_cost_v2_setup_margin_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1381 ...........
slk_twf_ignore_clock_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1383 ..........
slk_twf_preferred_startpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1385 ...........
slk_twf_read_clock_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1387 ...........
slk_update_cg_cell_timing_check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1389 ..........
slk_update_congestion_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1391 ..........
slk_update_required_cap_by_scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1393 ..........
slk_update_required_fanout_by_scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1395 ..........
slk_update_si . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397
...........
slk_update_si_by_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1399 ..........
slk_update_si_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1401 ..........
slk_update_si_net_change_max_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1403 ..........
slk_update_si_value_max_limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1404 ..........
slk_use_lib_drv_value_if_more_strict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1405 ...........
slk_user_defined_max_cap_drv_factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1407 ..........
slk_view_report_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1408 ..........
slk_vmin_cell_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1410
..........
slk_vt_cell_naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1412...........
slk_vt_ratio_target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1414
..........
slk_vt_ratio_tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1416..........
slk_vt_ratio_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1418
..........
slkfix_naming_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1420..........
soce_eco_tcl_half_unit_site_cell_placement_offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422 ..........
soce_eco_tcl_in_bound_cell_placement_offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1424 ...........
source_nlcmd_always_skip_conflict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426 ...........
spacing_table_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1428 ..........
spare_cell_candidate_keep_input_connection_after_sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1430 ..........
spare_cell_exception_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432 ..........

Contents 18
Tweaker™ Variables Version T-2022.03

spare_cell_exception_instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1434 ...........


sta_tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1436
...........
stop_if_lefin_syntax_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1438 ..........
stop_if_libin_syntax_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1440 ...........
tempus_tcl_enable_duplicate_design_calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1442 ...........
tie_hi_for_unused_eco_cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1444 ..........
timing_aocvm_analysis_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1446 ..........
timing_enable_transition_derate_meanshift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1450 ...........
timing_input_port_default_clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1452 ...........
timing_pocvm_precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1454 ..........
top_routing_layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1456 ..........
transfer_beta_physical_cell_to_regular_physical_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1458 ..........
upfin_extend_power_domain_name_by_scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1460 ...........
user_defined_staple_via_names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1461 ..........
user_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1463 ..........
utilization_threshold_for_check_def_quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1464 ...........
verilog_modules_to_be_ignored . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1466 ..........
verilogout_ignore_module_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1467 ..........
version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1468
..........
vertical_cell_edge_spacing_rule_filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1469 ..........
vertical_pin_avoid_power_strap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1471 ...........
vertical_pin_track_color_aware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1473 ..........
via0_alignment_check_cell_margin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1475 ..........
voltage_slack_target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1477 ...........
watch_cell_geometry_for_vt_width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1480 ..........

Contents 19
Tweaker™ Variables Version T-2022.03

allow_cell_padding_flipped_with_orientation
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
allow_cell_padding_flipped_with_orientation

Enables or disables cell padding to be flipped with orientation during ECO.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
By setting this variable to "true" (the default), the cell padding can

be flipped with the orientation when the target instance got flipped

after ECO. When set to "false", Tweaker will not flip the cell

padding when the instance orientation is changed after ECO.

allow_cell_padding_flipped_with_orientation 20
Tweaker™ Variables Version T-2022.03

EXAMPLES
set allow_cell_padding_flipped_with_orientation true

SEE ALSO
set_cell_padding (cmd)
report_cell_padding (cmd)
set_instance_padding (cmd)
report_instance_padding (cmd)
load_padding_list (cmd)
enable_cell_padding (var)
enable_instance_padding (var)
allow_cell_padding_overlapped (var)
slk_dont_touch_padding_inst (var)
allow_instance_padding_flipped_with_orientation (var)

allow_cell_padding_flipped_with_orientation 21
Tweaker™ Variables Version T-2022.03

allow_cell_padding_overlapped
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
allow_cell_padding_overlapped

Enables or disables padding overlap.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
By default, the overlaps checking considers the cell padding.

(The padding part of two neighborhood cells can be shared when

considering the overlap).

allow_cell_padding_overlapped 22
Tweaker™ Variables Version T-2022.03

EXAMPLES
set allow_cell_padding_overlapped false

SEE ALSO
slk_dont_touch_padding_inst (var)

allow_cell_padding_overlapped 23
Tweaker™ Variables Version T-2022.03

allow_instance_padding_flipped_with_orientation
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
allow_instance_padding_flipped_with_orientation

Enables or disables instance padding to be flipped with

orientation during ECO.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
By setting this variable to "true" (the default), the instance

padding can be flipped with the orientation when the target instance

was flipped after ECO. When set to "false", Tweaker will not flip the

instance padding even when instance orientation is changed after ECO.

allow_instance_padding_flipped_with_orientation 24
Tweaker™ Variables Version T-2022.03

EXAMPLES
set allow_instance_padding_flipped_with_orientation true

SEE ALSO
set_cell_padding (cmd)
report_cell_padding (cmd)
set_instance_padding (cmd)
report_instance_padding (cmd)
load_padding_list (cmd)
enable_cell_padding (var)
enable_instance_padding (var)
allow_cell_padding_overlapped (var)
slk_dont_touch_padding_inst (var)
allow_cell_padding_flipped_with_orientation (var)

allow_instance_padding_flipped_with_orientation 25
Tweaker™ Variables Version T-2022.03

antenna_list
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
antenna_list

Specifies the antenna cell list.

TYPE
String

DEFAULT
empty

DESCRIPTION
Specifies the list of antenna candidate cells which is referenced

by Tweaker during the antenna cells manual attachment through the

Tweaker GUI.

EXAMPLES
antenna_list 26
Tweaker™ Variables Version T-2022.03

set antenna_list { ANTENNA_1 ANTENNA_2 }

antenna_list 27
Tweaker™ Variables Version T-2022.03

apr_eco_tcl_ignore_antenna_cells
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
apr_eco_tcl_ignore_antenna_cells

Ignores anntenna cells during the connectivity pre-check for insertion.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
Usually the antenna cell does not exist in the Tweaker database and causes

a ECO drop since the connectivity is mismatched between Tweaker and APR.

When this variable is set to "true" (the default), it ignores the antenna

cells for the connectivity pre-check in ECO Tcl.

This variable only works when the antenna cell is defined in the

apr_eco_tcl_ignore_antenna_cells 28
Tweaker™ Variables Version T-2022.03

antenna_list variable.

EXAMPLES
[CMD] set apr_eco_tcl_ignore_antenna_cells true

[CMD] set antenna_list ANTENNA

SEE ALSO
antenna_list (var)

apr_eco_tcl_ignore_antenna_cells 29
Tweaker™ Variables Version T-2022.03

apr_tool
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
apr_tool

Defines the APR tool list for generating ECO Tcl.

TYPE
string

DEFAULT
icc icc2 soce innovus

DESCRIPTION
When the APR tool list is defined before ECO, Tweaker generates

the corresponding APR tool ECO Tcl after ECO. If the APR tool

list is not defined, Tweaker only generates IC Compiler,

IC Compiler II, soce, and innovus ECO Tcl by default.

Tweaker support APR tool list:

apr_tool 30
Tweaker™ Variables Version T-2022.03

icc

icc2

soce

innovus

olympus

atop

EXAMPLES
set apr_tool innovus

set sta_tool pt

...

slkdc -check_slack_consistency

...

slkfix -setup -all

...

slkfix -hold -all

...

ecotclout -pt ./ecoout/pt.tcl

ecotclout -innovus ./ecoout/innovus.tcl

SEE ALSO
ecotclout (cmd)

apr_tool 31
Tweaker™ Variables Version T-2022.03

sta_tool (var)

apr_tool 32
Tweaker™ Variables Version T-2022.03

auto_add_deleted_instances_to_spare_cells
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
auto_add_deleted_instances_to_spare_cells

Recycles the manually deleted instance into the space cell pools.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
This is a Metal ECO related variable.

When Metal ECO mode is enabled, by default, Tweaker recycles all

instances that have been deleted manually by you and transfers these

instances to spare cell pools. If spare cell pools are specified by

modules (with the eco -spare_module command), then the recycled cell

auto_add_deleted_instances_to_spare_cells 33
Tweaker™ Variables Version T-2022.03

is inserted into the spare modules list.

EXAMPLE
set auto_add_deleted_instances_to_spare_cells true

set metal_eco_mode true

...

eco -spare_module spare_module_A

SEE ALSO
eco (cmd)
recycle_floating_cones (cmd)

auto_add_deleted_instances_to_spare_cells 34
Tweaker™ Variables Version T-2022.03

auto_buffer_placement
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
auto_buffer_placement

Tests the buffer placement behavior.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
This is an obsolete variable for testing purpose only.

You should keep this variable unchanged.

EXAMPLE
set auto_buffer_placement true

auto_buffer_placement 35
Tweaker™ Variables Version T-2022.03

auto_buffer_placement 36
Tweaker™ Variables Version T-2022.03

auto_config_cell_size
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
auto_config_cell_size

Enables or disables the ability to auto-configure the cell

height and width if its physical data is missing.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
In general, cells physical data such as height and width are derived

from the imported LEF files. By default, Tweaker does not configure

the missing data of the physical cells. However, you can enable Tweaker

to auto-configure the missing data by using its area size information

auto_config_cell_size 37
Tweaker™ Variables Version T-2022.03

that is extracted from LIB files after the slackdb is initiated.

EXAMPLES
set auto_config_cell_size true

auto_config_cell_size 38
Tweaker™ Variables Version T-2022.03

auto_config_unit_site_by_consecutive_row_coordinate
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
auto_config_unit_site_by_consecutive_row_coordinate

Enables or disables the ability to recognize unit site from ROW.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
By default, the SITE name defined in the ROW definition of the DEF file

is used. If the SITE name is not defined in the Tech LEF, Tweaker auto-configures

the unit SITE; the minimum one is used.

In the advanced process, the half SITE is also defined in Tech LEF. When Tweaker

uses half SITE, free space cannot be highlighted and the ECO cell cannot be placed

auto_config_unit_site_by_consecutive_row_coordinate 39
Tweaker™ Variables Version T-2022.03

in the ROW.

When this variable is enabled before importing the DEF file, Tweaker refers

consecutive ROW coordinates to configure the unit SITE.

EXAMPLES
set auto_config_unit_site_by_consecutive_row_coordinate true

defin top.def

auto_config_unit_site_by_consecutive_row_coordinate 40
Tweaker™ Variables Version T-2022.03

auto_config_verilog_undeclared_module_port
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
auto_config_verilog_undeclared_module_port

Enables or disables the auto-creation of the undeclared modules ports.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
When a submodule is instantiated with additional module ports which are not

defined under the submodule itself due to the design modification, it causes

some netlist connection mismatches during the ECO operation in Tweaker.

You can avoid this issue by setting this variable to true which allows

Tweaker to auto-generate the undefined submodule ports. The generated

auto_config_verilog_undeclared_module_port 41
Tweaker™ Variables Version T-2022.03

port will be a floating port under the submodule.

EXAMPLE
set auto_config_verilog_undeclared_module_port true

verilogin ...

auto_config_verilog_undeclared_module_port 42
Tweaker™ Variables Version T-2022.03

auto_create_cell
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
auto_create_cell

Creates a black box for undefined cells.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
While an instance can exist in the netlist but not in the LIB, LEF, or

module information, Tweaker reports an error during the net compiling stage.

By setting this variable to true, you can avoid this error by allowing Tweaker

to create a black box for the undefined instance.

auto_create_cell 43
Tweaker™ Variables Version T-2022.03

EXAMPLES
set auto_create_cell true

verilogin ...

auto_create_cell 44
Tweaker™ Variables Version T-2022.03

auto_create_cell_to_module_type
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
auto_create_cell_to_module_type

Specifies the "module attribute" of the generated black box

due to an undefined instance.

TYPE
String

DEFAULT
empty

DESCRIPTION
By default, when the auto_create_cell variable is set true, the undefined

instance is treated as a black box with the "cell" attribute. However,

you can define the "module" attribute of the newly generated black box by

specifying the attribute name with this variable.

auto_create_cell_to_module_type 45
Tweaker™ Variables Version T-2022.03

EXAMPLES
set auto_create_cell true

set auto_create_cell_to_module_type Blackbox1 Blackbox2

verilogin ...

SEE ALSO
auto_create_cell (var)

auto_create_cell_to_module_type 46
Tweaker™ Variables Version T-2022.03

auto_create_sub_design_by_lef
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
auto_create_sub_design_by_lef

Automaticallt creates subdesigns from LEF/Netlist conflicts.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
By default, if the name of a module in the netlist and the name of a cell in

the lef file coexists, Tweaker directly assigns "module" and auto-creates

the "design" based on the boundary shape defined at the corresponding

LEF information.

When this variable is set false, Tweaker errors out at thhe netlist compile

auto_create_sub_design_by_lef 47
Tweaker™ Variables Version T-2022.03

stage.

EXAMPLES
set auto_create_sub_design_by_lef true

verilogin ...

SEE ALSO
auto_create_sub_module_by_lib (var)

auto_create_sub_design_by_lef 48
Tweaker™ Variables Version T-2022.03

auto_create_sub_module_by_lib
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
auto_create_sub_module_by_lib

Automatically creates submodules from the LIB/Netlist conflicting name.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
By default, if any conflicts in the names between a module in the netlist

and a cell in the LIB file is detected, Tweaker treats the conflicting name

as a module and creates a module automatically.

If this variable is set false, Tweaker will error out at the netlist compile

stage.

auto_create_sub_module_by_lib 49
Tweaker™ Variables Version T-2022.03

EXAMPLES
set auto_create_sub_module_by_lib true

verilogin ...

SEE ALSO
auto_create_sub_design_by_lef (var)

auto_create_sub_module_by_lib 50
Tweaker™ Variables Version T-2022.03

auto_detect_symmetry_by_def
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
auto_detect_symmetry_by_def

Automatically configures SYMMETRY information with the DEF file.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
By default, Tweaker honors the SYMMETRY definition in the LEF file.

If the LEF file is missing the SYMMETRY information, when this variable

is set to true (the default), Tweaker refers instance placement from the

DEF file and automatically configures cell symmetry.

auto_detect_symmetry_by_def 51
Tweaker™ Variables Version T-2022.03

EXAMPLE
set auto_detect_symmetry_by_def true

SEE ALSO
ignore_symmetry_check (var)
lef_default_symmetry (var)

auto_detect_symmetry_by_def 52
Tweaker™ Variables Version T-2022.03

auto_partition
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
auto_partition

Sets the auto-partition algorithm version.

TYPE
String

DEFAULT
empty

DESCRIPTION
When this variable is set to its default value of v1, Tweaker adopts its

first auto-partition version of v1.

For the current Tweaker version, "v1" is the only available algorithm to

be used.

When this variable is set to "v1", Tweaker generated the pre-ECO saved

auto_partition 53
Tweaker™ Variables Version T-2022.03

session and the necessary scripts for either you or Tweaker auto-submit

function.

EXAMPLES
set auto_partition v1

SEE ALSO
auto_partition_auto_submit (var)
auto_partition_design_list (var)
auto_partition_merge_interface_eco (var)
auto_partition_number (var)
auto_partition_queue_command (var)

auto_partition 54
Tweaker™ Variables Version T-2022.03

auto_partition_auto_submit
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
auto_partition_auto_submit

Enables or disables the Tweaker auto-submit function during auto-partition.

TYPE
Boolean

DEFAULT
empty

DESCRIPTION
When this variable is set to true, Tweaker auto-submits Tweaker runs

right after generating Pre-ECO Tweaker saved session and the needed

scripts.

Tweaker honors the queue command if you specify them with the

auto_partition_queue_command variable.

auto_partition_auto_submit 55
Tweaker™ Variables Version T-2022.03

When this variable is set to false, Tweaker does not auto-submit

the job.

This variable is only valid when the auto partition is set to v1:

set auto_partition v1

EXAMPLES
set auto_partition_auto_submit true

SEE ALSO
auto_partition (var)
auto_partition_design_list (var)
auto_partition_merge_interface_eco (var)
auto_partition_number (var)
auto_partition_queue_command (var)

auto_partition_auto_submit 56
Tweaker™ Variables Version T-2022.03

auto_partition_design_list
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
auto_partition_design_list

Specifies the design that can be fixed.

TYPE
String

DEFAULT
empty

DESCRIPTION
You can the design that can be fixed during the ECO operation.

Furthermore, Tweaker takes the given design list and divides the

list into several runs. The number of runs can be specified with

the auto_partition_number variable.

This variable is only valid when the auto partition is set to v1:

auto_partition_design_list 57
Tweaker™ Variables Version T-2022.03

set auto_partition v1

EXAMPLES
set auto_partition_design_list { top dsub_1 dsub_2 }

SEE ALSO
auto_partition (var)
auto_partition_auto_submit (var)
auto_partition_merge_interface_eco (var)
auto_partition_number (var)
auto_partition_queue_command (var)

auto_partition_design_list 58
Tweaker™ Variables Version T-2022.03

auto_partition_merge_interface_eco
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
auto_partition_merge_interface_eco

Enables or disables the interface path fixing during auto-partition.

TYPE
Boolean

DEFAULT
empty

DESCRIPTION
When this variable is set to true, Tweaker fixes the interface path

within the given auto partition design list during auto-partition and

automatically merges the ECO result with those runs which are fixing

non-interface paths.

When this variable is set to false, Tweaker does not fix the interface

auto_partition_merge_interface_eco 59
Tweaker™ Variables Version T-2022.03

paths.

You can set the design that can be touch with the

auto_partition_design_list variable.

This variable is only valid when auto partition" is set to v1:

set auto_partition v1

EXAMPLES
set auto_partition_design_list true

SEE ALSO
auto_partition (var)
auto_partition_design_list (var)
auto_partition_auto_submit (var)
auto_partition_number (var)
auto_partition_queue_command (var)

auto_partition_merge_interface_eco 60
Tweaker™ Variables Version T-2022.03

auto_partition_number
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
auto_partition_number

Specifies the number of partition during auto-partition.

TYPE
[ Integer | auto ]

DEFAULT
empty

DESCRIPTION
You can control the number of the partitions with this variable.

When you set this variable, Tweaker uses the instance count of

the given auto-partition design list and splits it into different

partitions for different machines.

There are two input methodologies for this variable:

auto_partition_number 61
Tweaker™ Variables Version T-2022.03

1. Number: Tweaker generates a number of partition runs based on the

given number.

2. auto : Tweaker generates the partitions based on the number of the

given design list.

This variable is only valid when the auto partition is set to v1:

set auto_partition v1

You can set the auto-partition design list with the

auto_partition_design_list variable.

EXAMPLES
set auto_partition_number 3

set auto_partition_number auto

SEE ALSO
auto_partition (var)
auto_partition_auto_submit (var)
auto_partition_design_list (var)
auto_partition_merge_interface_eco (var)
auto_partition_queue_command (var)

auto_partition_number 62
Tweaker™ Variables Version T-2022.03

auto_partition_queue_command
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
auto_partition_queue_command

Sets the queue command to be auto-submitted during auto-partition.

TYPE
String

DEFAULT
empty

DESCRIPTION
With this variable, you can set the queue command that is

used for your system environment for a submitted Tweaker job.

This variable is only valid with the following settings:

1. Enable auto-partition function:

set auto_partition v1

auto_partition_queue_command 63
Tweaker™ Variables Version T-2022.03

2. Enable auto-submit job:

set auto_partition_auto_submit true

EXAMPLES
set auto_partition_queue_command { bsub -Is -n 4 "mem==40000" }

SEE ALSO
auto_partition (var)
auto_partition_auto_submit (var)
auto_partition_design_list (var)
auto_partition_merge_interface_eco (var)
auto_partition_number (var)

auto_partition_queue_command 64
Tweaker™ Variables Version T-2022.03

auto_update_ignored_physical_cells
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
auto_update_ignored_physical_cells

Enables or disables Tweaker to update the physical cells information

in the Tweaker database.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
Usually physical cells that should be ignored are described before defin.

But if there are extra physical cells available to be released after some

ECO, then Tweaker can still support it to list those extra physical cell

resources as free space, like entering into gate array cell mode.

auto_update_ignored_physical_cells 65
Tweaker™ Variables Version T-2022.03

If those extra physical cells resource are indeed used, by default of this

control variable Tweaker deletes the used ones during data out.

EXAMPLES
set def_physical_cells_to_be_ignored fillerA fillerB

defin ...

...ECO...

set def_physical_cells_to_be_ignored fillerC

...ECO...

ecotclout ...

SEE ALSO
def_physical_cells_to_be_ignored (var)
def_physical_cells_to_be_ignored_except_instance (var)
def_physical_instances_to_be_ignored (var)
keep_def_fixed_physical_cells (var)

auto_update_ignored_physical_cells 66
Tweaker™ Variables Version T-2022.03

avoid_space_fragmentation_by_cell
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
avoid_space_fragmentation_by_cell

Enables or disables the ability to avoid any space fragmentation which is

smaller or equal to the honored cell size during the auto insertion operation.

TYPE
String

DEFAULT
empty

DESCRIPTION
By default, Tweaker inserts the buffer on the ideal location according

to its timing result during the insertion operation. However, this insertion

operation often create a free space fragmentation which decreases the

efficiency of free space usage.

avoid_space_fragmentation_by_cell 67
Tweaker™ Variables Version T-2022.03

By setting this variable to true, it allows Tweaker to honor the size of

specified cell that is defined in this variable. During the insertion

operation, Tweaker moves the inserted buffers toward the boundary of

the continual free space if the fragmentation gap is smaller or equal to

the size of the specified cell defined in this variable.

EXAMPLES
set avoid_space_fragmentation_by_cell { DELHVT05 }

set slk_fix_hold_by_delay_insertion true

...

slkfix -hold -all

SEE ALSO
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold.tcl

avoid_space_fragmentation_by_cell 68
Tweaker™ Variables Version T-2022.03

bottom_routing_layer
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
bottom_routing_layer

Defines the bottom routing layer.

TYPE
Integer

DEFAULT
2

DESCRIPTION
Specifies the bottom routing layer by layer name or layer number. The

layer number is the sequence of LAYER definitions defined in the LEF

files. Tweaker creates routing congestion database from the bottom

routing layer to the top routing layer.

When you specify the congestion top-routing-layer and bottom-routing-layer

bottom_routing_layer 69
Tweaker™ Variables Version T-2022.03

through the create_congestion_db command, Tweaker honors the

create_congestion_db command option over this variable:

create_congestion_db -top_routing_layer 6 -bottom_routing_layer 2

When you do not specify the top-routing-layer and bottom-routing-layer

through the create_congestion_db command, then Tweaker honors the value

in this variable:

set bottom_routing_layer 2

set top_routing_layer 5

create_congestion_db

EXAMPLES
set bottom_routing_layer 2

set top_routing_layer 5

create_congestion_db

SEE ALSO
create_congestion_db (cmd)
top_routing_layer (var)

bottom_routing_layer 70
Tweaker™ Variables Version T-2022.03

build_missing_pin_at_lefin
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
build_missing_pin_at_lefin

Builds up pins found in the LEF file which is undefined at the library file.

TYPE
String

DEFAULT
true

DESCRIPTION
By default, Tweaker builds up every pin described in the LEF file to

the Tweaker db even if it is not defined at library file.

If this variable is set to false, Tweaker only builds up the pins

defined at the library file.

build_missing_pin_at_lefin 71
Tweaker™ Variables Version T-2022.03

EXAMPLES
set build_missing_pin_at_lefin false

libin ..

lefin ..

build_missing_pin_at_lefin 72
Tweaker™ Variables Version T-2022.03

case_analysis_sequential_propagation
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
case_analysis_sequential_propagation

Enables or disables the propagation of SDC-based case analyzed

value throughout the sequential cells.

TYPE
String [ always | never ]

DEFAULT
never

DESCRIPTION
This is a Metal ECO related variable.

When executing Metal ECO remap operation, the SDC constraint file is a

necessary imported file for analyzing the timing properties. During this

internal STA process, Tweaker can honor the case analyzed value and

case_analysis_sequential_propagation 73
Tweaker™ Variables Version T-2022.03

propagate it through sequential cells or not.

By setting this variable to "never" (the default), Tweaker will not

propagate the case analyzed value throughout the sequential cells.

In contrary, the value will be propagated if this variable is set to

"always"

EXAMPLES
set metal_eco_mode true

set case_analysis_sequential_propagation always

...

gen_slack_report ...

case_analysis_sequential_propagation 74
Tweaker™ Variables Version T-2022.03

cell_pin_avoid_power_strap
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
cell_pin_avoid_power_strap

Enables the ability to avoid the overlapping between

the cell's pin with the power straps.

TYPE
string

DEFAULT
empty

DESCRIPTION
For advanced technology nodes, such as 10nm or less, you can

enable the ability to avoid the overlapping between the cell's

pin and the power strap. When this variable is enabled, Tweaker

also avoids the overlapping of the ECO cell with the FIXED/COVER

cell_pin_avoid_power_strap 75
Tweaker™ Variables Version T-2022.03

net.

By default, this variable is empty, which means this rule is not

checked. When you specify the layer_name or all values, the tool

checks the specific layer or all layer cell pins and power strap

overlap violations. If you set the value to 1st_vertical, the

previous vertical_pin_avoid_power_strap variable behavior is followed.

EXAMPLE
libin ...

lefin ...

set cell_pin_avoid_power_strap 1st_vertical ; ## all | 1st_vertical |

## layer_name

verilogin ...

defin ...

slkfix ...

SEE ALSO
vertical_pin_track_color_aware

vertical_pin_avoid_power_strap

report_cell_pin_power_strap_violation

cell_pin_avoid_power_strap 76
Tweaker™ Variables Version T-2022.03

change_netlist_hierarchy_try_using_existing_port
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
change_netlist_hierarchy_try_using_existing_port

Uses the existing port to connect the specified instance when changing

the logical hierarchy.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
When changing the logical hierarchy of the specified instance, a module port is

needed to connect with the specified instance. Tweaker checks if the module

exists. If the module exists, it is connect to the specified instance. If the

does not exist, a new module port is created to connect the specified instance.

change_netlist_hierarchy_try_using_existing_port 77
Tweaker™ Variables Version T-2022.03

EXAMPLES
set change_netlist_hierarchy_try_using_existing_port true

SEE ALSO
change_netlist_hierarchy (cmd)

change_netlist_hierarchy_try_using_existing_port 78
Tweaker™ Variables Version T-2022.03

check_pin_access_point_at_cell_margin
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
check_pin_access_point_at_cell_margin

Checks the pin accessibility in the cell edge.

TYPE
Float

DEFAULT
0.25

DESCRIPTION
For advanced processes of 10nm or 7nm, you should to set a

reasonable value for this variable. By default, Tweaker checks

the pin accessibility in the 0.25um cell edge. Tweaker accepts a

ratio value list for multi-row cells. The unit size of this variable

is um (10^6 m).

check_pin_access_point_at_cell_margin 79
Tweaker™ Variables Version T-2022.03

EXAMPLES
set check_pin_access_point_at_cell_margin 0.5

SEE ALSO
pin_access_point_for_ndr_net (var)

metal1_pin_access_point_min_count

check_pin_access_point_at_cell_margin 80
Tweaker™ Variables Version T-2022.03

clock_eco_mode
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
clock_eco_mode

Enables or disables the Tweaker-C1 Clock ECO.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
This is Tweaker-C1 Clock ECO related variable.

This variable is the main switch to enable Tweaker Clock ECO. During

this mode, Tweaker can summarize clock path setup/hold launch/capture

margin for clock surgery. Then, Tweaker auto-fix can touch the clock

path to fix setup or hold violation by sizing or insertion.

clock_eco_mode 81
Tweaker™ Variables Version T-2022.03

EXAMPLES
set clock_eco_mode true

SEE ALSO
metal_eco_mode (var)

clock_eco_mode 82
Tweaker™ Variables Version T-2022.03

clock_surgery_margin_summarize_common_path_violation
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
clock_surgery_margin_summarize_common_path_violation

Enables or disables to include common clock path violation into the margin summary.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
In clock surgery, the Path View has columns showing margin by collecting

all paths violation. As the common paths influence not only launch clock side

but also capture clock side at the same time. The timing margin summary will

not be referential. Therefore, this variable is by default false value so that

Tweaker will exclude those common paths' timing margin into summary.

clock_surgery_margin_summarize_common_path_violation 83
Tweaker™ Variables Version T-2022.03

EXAMPLE
set clock_surgery_margin_summarize_common_path_violation true

clock_surgery_margin_summarize_common_path_violation 84
Tweaker™ Variables Version T-2022.03

combo_buffer_list
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
combo_buffer_list

Defines the second candidate source for the manual insertion on Tweaker GUI.

TYPE
String

DEFAULT
empty

DESCRIPTION
For manual buffer insertion in GUI mode, beside the candidates specified

with the slk_repeater_insertion_buff_list variable, you can also select

the insertion candidate through this variable if they are specified.

The combination of this "second candidate source" is separated by ":"

which is inserted according to the defined sequence and the cell type.

combo_buffer_list 85
Tweaker™ Variables Version T-2022.03

EXAMPLE
set slk_repeater_insertion_buff_list { BUFX1 BUFX2 BUFX4 BUFX8 }

set combo_buffer_list { BUFX1 BUFX4 BUFX8 : BUFX4 BUFX8 }

combo_buffer_list 86
Tweaker™ Variables Version T-2022.03

compare_power_management_cell_equal_by_pin
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
compare_power_management_cell_equal_by_pin

Compares a PG pin for functional equivalent checking.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
By setting this variable to true, Tweaker compares the PG

pin information for cell functional equivalent checking, not

only signal pin function checking.

1. The number of PG pin

2. The type of PG pin

compare_power_management_cell_equal_by_pin 87
Tweaker™ Variables Version T-2022.03

3. The name of PG pin

EXAMPLES
set compare_power_management_cell_equal_by_pin true

compare_power_management_cell_equal_by_pin 88
Tweaker™ Variables Version T-2022.03

compare_register_cell_equal_by_pin_names
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
compare_register_cell_equal_by_pin_names

Enables or disables the function to compare by pin names only.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
By default, when the mapping rule is specified, Tweaker checks the function

defined in the library file for source cells and target cells to make sure

the function is equal in between. Only when function is matched, Tweaker can

map them correctly.

If the function of either source cells or target cells are missing and cause

compare_register_cell_equal_by_pin_names 89
Tweaker™ Variables Version T-2022.03

the failure of mapping, you can enable this variable to simply compare the

pin names matching to force Tweaker to map the source cells and target cells

successfully.

EXAMPLES
set compare_register_cell_equal_by_pin_names true

set slk_cell_mapping_rule_regexp { @LVT @RVT @HVT }

compare_register_cell_equal_by_pin_names 90
Tweaker™ Variables Version T-2022.03

congestion_map_grid_size_by_row
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
congestion_map_grid_size_by_row

Sets the congestion map's grid size based on row size

TYPE
Integer

DEFAULT
8

DESCRIPTION
You can set the congestion map's grid size to the multiple

of the specified value and the design's row height.

Based on detailed routing information from the DEF files, Tweaker

builds a congestion database to keep track of the routing density

on each layer of the design. To ensure that Tweaker does not consider

congestion_map_grid_size_by_row 91
Tweaker™ Variables Version T-2022.03

every sparse non-congested patch as routable, you can adjust the size

of the congestion map grid. This way, Tweaker can expand each grid

area's assessment of congestion.

EXAMPLES
set congestion_grid_size_by_row 10

SEE ALSO
create_congestion_db (cmd)
slk_congestion_aware_exhaustive_search_range (var)
slk_congestion_aware_hfs_search_range (var)
slk_congestion_aware_insertion (var)
slk_update_congestion_map (var)

congestion_map_grid_size_by_row 92
Tweaker™ Variables Version T-2022.03

continue_on_tweaker_error
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
continue_on_tweaker_error

Enables Tweaker to move forward while encountering a

Tweaker command error.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
By default, Tweaker errors out or stops when there is a compile error.

When this variable is set to true, you can enable Tweaker to move

forward withou stopping when an error is encountered. Detailed error

warning message will appear in the log file.

continue_on_tweaker_error 93
Tweaker™ Variables Version T-2022.03

EXAMPLE
set continue_on_tweaker_error true

....

set script_path ./script

source $script_path/general_setting.tcl

slkdc -check_slack_consistency

continue_on_tweaker_error 94
Tweaker™ Variables Version T-2022.03

convert_empty_modules_to_bbox
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
convert_empty_modules_to_bbox

Converts the empty module into a black box cell.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
By default, Tweaker treats the empty module as a "module" where

the ports are created but contains an empty cell.

When this variable it set to true, Tweaker converts these empty modules

into a black box and treats it as a "cell".

convert_empty_modules_to_bbox 95
Tweaker™ Variables Version T-2022.03

EXAMPLE
set convert_empty_modules_to_bbox true

verilogin ...

convert_empty_modules_to_bbox 96
Tweaker™ Variables Version T-2022.03

corner_pruning_enable_slack_scaling
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
corner_pruning_enable_slack_scaling

Enables or disables slack scaling for corner pruning.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
This variable controls the minor corners' slack reports are

scaled to dominant corners or dropped when creating or loading

the corner pruning database.

When set to true (the default), the minor corners' slack reports

are scaled into the dominant corners. When set to false, the

corner_pruning_enable_slack_scaling 97
Tweaker™ Variables Version T-2022.03

minor corners' slack reports are dropped.

This variable should be set to true or false before using the

create_corner_pruning_db, load_corner_pruning_db, and

evaluate_corner_pruning commands.

EXAMPLES
set corner_pruning_enable_slack_scaling false

...

create_corner_pruning_db -file ./pruner.db -corner_number 10 -weight setup

...

or

set corner_pruning_enable_slack_scaling true

...

load_corner_pruning_db ./pruner.db

...

SEE ALSO
create_corner_pruning_db (cmd)
load_corner_pruning_db (cmd)

corner_pruning_enable_slack_scaling 98
Tweaker™ Variables Version T-2022.03

corner_pruning_enable_twf_scaling
# Enable/disable twf scaling for corner pruning

Type
Boolean

Default
false

Description
This variable controls the minor corners' twf values are to be scaled to

dominant corners or dropped when creating or loading the corner pruning

database.

Set to true, the minor corners' twf values are to be scaled into the

dominant corners.

Set to false, the minor corners' twf values are to be dropped.

This variable should be turned true/false before create_corner_pruning_db,

load_corner_pruning_db, and evaluate_corner_pruning command usage and only

works when the variable "corner_pruning_enable_slack_scaling" is enabled.

corner_pruning_enable_twf_scaling 99
Tweaker™ Variables Version T-2022.03

Example
set corner_pruning_enable_slack_scaling true

set corner_pruning_enable_twf_scaling true

...

create_corner_pruning_db -file ./pruner.db -corner_number 10 -weight setup

...

or

set corner_pruning_enable_slack_scaling true

...

load_corner_pruning_db ./pruner.db

...

See also
create_corner_pruning_db (cmd)
load_corner_pruning_db (cmd)
corner_pruning_enable_slack_scaling (cmd)

corner_pruning_enable_twf_scaling 100
Tweaker™ Variables Version T-2022.03

current_design
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
current_design

Sets the current design for physical power domain definition.

TYPE
String

DEFAULT
empty

DESCRIPTION
To create physical power domain, user can either reference the

DEF content (Encounter flow) or executing the create_voltage_area

command (IC Compiler flow). To be applied later, its created

physical power domain must be attached to a design specified by

this variable to get physical power domain created successfully.

current_design 101
Tweaker™ Variables Version T-2022.03

To import the block-level Tweaker nlcmd file into the top-level

Tweaker database, you can use this variable to switch different

designs.

EXAMPLES
cpfin/upfin cpf_or_upf_file

set current_design SUB1

create_voltage_area -name SUB1_POWER_DOMAIN -polygon {1000 1000} {1500 1500}

create_voltage_area -name SUB1_POWER_DOMAIN \

-coordinate {1000 1000 1200 1200}

set current_design SUB2

create_voltage_area -name SUB2_POWER_DOMAIN -polygon {2000 1000} {2500 1500}

create_voltage_area -name SUB2_POWER_DOMAIN \

-coordinate {2000 1000 2400 1200}

set current_design SUB1

source ./SUB1.nlcmd

set current_design SUB2

source ./SUB2.nlcmd

SEE ALSO
create_voltage_area (cmd)
remove_voltage_area (cmd)

current_design 102
Tweaker™ Variables Version T-2022.03

database_resolution
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
database_resolution

Sets the Tweaker database resolution.

TYPE
Integer

DEFAULT
0

DESCRIPTION
There is some challenge for Tweaker to automatically identify different

files resolution. For example,

---------------------------------------------------

lefin ... file1.lef # DATABASE MICRONS 1000

==> resolution 1000 is used.

database_resolution 103
Tweaker™ Variables Version T-2022.03

lefin ... file2.lef # DATABASE MICRONS 2000

==> error: can't overwrite previously defined resolution.

verilogin ...

defin ... file3.def # UNITS DISTANCE MICRONS 4000

==> error: can't overwrite previously defined resolution.

---------------------------------------------------

In such a case, you can "set database_resolution 4000" in the beginning

of script.

EXAMPLE
set database_resolution 4000

database_resolution 104
Tweaker™ Variables Version T-2022.03

db_Auto_Clear_P2P_Graph
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
db_Auto_Clear_P2P_Graph

Enables or disables this variable to clear the P2P graph.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
When enabling db_Draw_P2P_Graph_Sizing_And_Moving variable, the

Physcial View draws a trajectory graph to record every step of

a cell being moved and sized. If this variable is enabled, the

graph only draws the current step and clears the previous record.

db_Auto_Clear_P2P_Graph 105
Tweaker™ Variables Version T-2022.03

EXAMPLES
set db_Auto_Clear_P2P_Graph true

SEE ALSO
db_Draw_P2P_Graph_Sizing_And_Moving (var)

db_Auto_Clear_P2P_Graph 106
Tweaker™ Variables Version T-2022.03

db_Draw_P2P_Graph_Sizing_And_Moving
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
db_Draw_P2P_Graph_Sizing_And_Moving

Enables or disables this variable to draw a trajectory graph

during sizing and moving.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
When enabling this variable, the Physical View draws a trajectory

graph from original location to a new location whenever a cell is

moved and sized. Then, you can view the process of how this cell

is moved and sized.

db_Draw_P2P_Graph_Sizing_And_Moving 107
Tweaker™ Variables Version T-2022.03

The graph draws every single moving and sizing step.

EXAMPLE
set db_Draw_P2P_Graph_Sizing_And_Moving true

SEE ALSO
db_Auto_Clear_P2P_Graph (var)

db_Draw_P2P_Graph_Sizing_And_Moving 108
Tweaker™ Variables Version T-2022.03

db_align_cell_placement_to_row
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
db_align_cell_placement_to_row

Automatically aligns a cell (aligned to row) during the

manual-ECO placing process.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
By default, Tweaker places the instances at the legalized location

(fit to row) when you perform the ECO process manually.

EXAMPLES
db_align_cell_placement_to_row 109
Tweaker™ Variables Version T-2022.03

set db_align_cell_placement_to_row true

db_align_cell_placement_to_row 110
Tweaker™ Variables Version T-2022.03

db_configure_instance_padding_mode
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
db_configure_instance_padding_mode

Selects the mode of applying instance padding.

TYPE
String

DEFAULT
average

DESCRIPTION
If instance padding is specified with the set_instance_padding

command, by default Tweaker divides the padding width averagely

at the left and right edge equally.

You can have other values applied, such as left or right, which

means the instance padding are applied on either left edge or

db_configure_instance_padding_mode 111
Tweaker™ Variables Version T-2022.03

right edge of the instance.

EXAMPLE
set db_configure_instance_padding_mode left

set_instance_padding -width 0.8 ...

db_configure_instance_padding_mode 112
Tweaker™ Variables Version T-2022.03

db_keep_connection_of_used_spare_cells
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
db_keep_connection_of_used_spare_cells

Enables or disables Tweaker to keep the connection of used

spare cells under the Metal ECO mode.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
This is a Metal ECO related variable.

This variable only works when the keep_used_spare_cells_in_netlist

variable is set to true.

By default, when the keep_used_spare_cells_in_netlist variable is

db_keep_connection_of_used_spare_cells 113
Tweaker™ Variables Version T-2022.03

enabled, Tweaker disconnects and isolates the connection of the used

spare cells.

By setting this variable to true, Tweaker keeps connections of those

cells, which can be useful if the scan chain cells are ECO-ed and

are not allowed to be disconnected.

EXAMPLE
set keep_used_spare_cells_in_netlist true

set db_keep_connection_of_used_spare_cells true

set metal_eco_mode true

...

SEE ALSO
keep_used_spare_cells_in_netlist (var)

db_keep_connection_of_used_spare_cells 114
Tweaker™ Variables Version T-2022.03

db_max_buffer_insertion_window_size
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
db_max_buffer_insertion_window_size

Defines the largest search region radius for

buffer insertion operation.

TYPE
Float

DEFAULT
0.0

DESCRIPTION
By default, Tweaker uses its internal algorithm to determine

the initial searching region for buffer insertion operation.

However, you can define the largest search region radius by

applying it to this variable.

db_max_buffer_insertion_window_size 115
Tweaker™ Variables Version T-2022.03

EXAMPLE
set db_max_buffer_insertion_window_size 500

db_max_buffer_insertion_window_size 116
Tweaker™ Variables Version T-2022.03

db_max_route_layer
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
db_max_route_layer

Defines the maximum database layers inside Tweaker.

TYPE
Integer

DEFAULT
32

DESCRIPTION
This variable defines the maximum database layer that are

allowed to be defined from the imported DEF files.

For general case, users are suggested to set this value larger

or equal to the layer number that is defined in tech LEF file.

db_max_route_layer 117
Tweaker™ Variables Version T-2022.03

EXAMPLE
set db_max_route_layer 8

db_max_route_layer 118
Tweaker™ Variables Version T-2022.03

db_move_unused_cells_to_spare_module
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
db_move_unused_cells_to_spare_module

Enables or disables Tweaker to remap the removed instances.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
This is a Metal ECO mode variable.

By default, Tweaker recycles the removed instances and places

them to the spare modules which are specified with the

eco -spare_module command.

In contrary, if this variable is set to false, the removed

db_move_unused_cells_to_spare_module 119
Tweaker™ Variables Version T-2022.03

instance remains in their original modules.

EXAMPLE
set db_move_unused_cells_to_spare_module false

SEE ALSO
auto_add_deleted_instances_to_spare_cells (var)

db_move_unused_cells_to_spare_module 120
Tweaker™ Variables Version T-2022.03

db_placement_check_physical_rule
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
db_placement_check_physical_rule

Automatically checks placement physical rule.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
In the Tweaker Physical View, when the db_placement_check_physical_rule

is enabled, Tweaker automatically places rule aware on all instances

that you moved.

If you disable the db_placement_check_physical_rule variable, all instances

moved by you, is only physical aware.

db_placement_check_physical_rule 121
Tweaker™ Variables Version T-2022.03

EXAMPLE
set db_placement_check_physical_rule true

db_placement_check_physical_rule 122
Tweaker™ Variables Version T-2022.03

db_pop_up_message_manual_moving
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
db_pop_up_message_manual_moving

Displays a warning message if there a physical rule violation

when moving.

TYPE
string

DEFAULT
false

DESCRIPTION
When turning this variable and moving a instance, Tweaker checks

defined physical rules and shows a warning message if your moving of

an instance violated a physical rule.

db_pop_up_message_manual_moving 123
Tweaker™ Variables Version T-2022.03

EXAMPLE
set db_pop_up_message_manual_moving true

SEE ALSO
db_placement_check_physical_rule (var)

db_pop_up_message_manual_moving 124
Tweaker™ Variables Version T-2022.03

db_tie_auto_crx
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
db_tie_auto_crx

Enables or disables the ability to auto-create tie-cells

due to the lack of tie-cells resources.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
When executing the tie_const_drv_pin command, Tweaker connects

the tie-low and tie-high pin to the pins which is directly

connected to the VDD/GND.

By setting this variable to true, Tweaker inserts extra tie-cells

db_tie_auto_crx 125
Tweaker™ Variables Version T-2022.03

if there is not enough tie-cell resources while executing the

tie_const_drv_pin command.

This variable is not valid on Metal ECO mode.

EXAMPLE
set db_tie_auto_crx true

SEE ALSO
tie_const_drv_pin (cmd)

db_tie_auto_crx 126
Tweaker™ Variables Version T-2022.03

db_tie_cell_list
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
db_tie_cell_list

Specifies the cell types of allowed tie cells.

TYPE
String

DEFAULT
Empty

DESCRIPTION
When executing "tie_const_drv_pin" command, if the types

of tie cell are not specified with the -tiecells option,

the cell types specified in this variable are used as the

candidate tie cells.

db_tie_cell_list 127
Tweaker™ Variables Version T-2022.03

EXAMPLE
set db_tie_cell_list { TIEH TIEH_LVT TIEL TIEL_LVT }

SEE ALSO
tie_const_drv_pin (cmd)

db_tie_cell_list 128
Tweaker™ Variables Version T-2022.03

db_tie_crx_port
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
db_tie_crx_port

Enables or disables the creation of new module ports when

executing the tie_const_drv_pin command.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
By default, Tweaker does not create a new module ports when executing

the tie_const_drv_pin command.

In contrary, by setting this variable to true, Tweaker creates new

module ports.

db_tie_crx_port 129
Tweaker™ Variables Version T-2022.03

EXAMPLE
set db_tie_crx_port true

SEE ALSO
tie_const_drv_pin (cmd)

db_tie_crx_port 130
Tweaker™ Variables Version T-2022.03

db_tie_dist
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
db_tie_dist

Specifies the range within which tie cells are searched

for constant cell usages.

TYPE
Float

DEFAULT
200.0

DESCRIPTION
When spare cells are used as a constant cell, Tweaker also

searches for the tie-cells inside a specified searching range.

The searching range is a circle with the radius of the value

that are defined in this variable and with the constant cell

db_tie_dist 131
Tweaker™ Variables Version T-2022.03

as the center of the searching circle.

This distance limitation applies only when the

query_tie_cell_for_constant_cell variable is set true. If is

not set to true, all available tie cell resources are considered

candidates regardless of their distances from the tied constant

cell.

Constant cell can be acquired by tying one or more input pins of

a cell to high/low value to get the new cell function. For example,

to tie an input pin of a three-input AND gate to high makes the

cell become a two-input AND gate.

EXAMPLE
set query_tie_cell_for_constant_cell true

set db_tie_dist 300.0

SEE ALSO
query_tie_cell_for_constant_cell (var)

db_tie_dist 132
Tweaker™ Variables Version T-2022.03

db_tie_effort_high
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
db_tie_effort_high

Finds the tie cell based on the location of constant cell.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
When tie high/low in the ECO stage, Tweaker connects the tie

cell with the floating input pin of constant cell based on

the specified search range.

When this variable is set to true (the default), Tweaker finds

the available tie cell based on the location of constant cell

db_tie_effort_high 133
Tweaker™ Variables Version T-2022.03

by a given search range. If this variable is set to false,

Tweaker is based on the location of tie cell to find the constant

pins which need to be connected in the search range.

EXAMPLE
set db_tie_effort_high true

SEE ALSO
tie_const_drv_pin (cmd)

db_tie_effort_high 134
Tweaker™ Variables Version T-2022.03

db_tie_highlight
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
db_tie_highlight

Enables or disables the ability to automatically highlight

the tied pins and tie-cells after executing the

tie_const_drv_pin command.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
By setting this variable to true, Tweaker automatically highlights

the tied pins and the tie-cells in the Physical View and Schematic

View after executing the tie_const_drv_pin command.

db_tie_highlight 135
Tweaker™ Variables Version T-2022.03

EXAMPLE
set db_tie_highlight true

SEE ALSO
tie_const_drv_pin (cmd)

db_tie_highlight 136
Tweaker™ Variables Version T-2022.03

db_tie_max_cap
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
db_tie_max_cap

Specifies the maximum loading of each tie cell.

TYPE
Float

DEFAULT
-5120000.000000

DESCRIPTION
By default, the LIB file contains the maximum capacitive

loading that can be driven by a tie-cell.

However, you can overwrite the maximum capacitive value

in Tweaker by defining it into this variable.

db_tie_max_cap 137
Tweaker™ Variables Version T-2022.03

EXAMPLE
set db_tie_max_cap 20

SEE ALSO
tie_const_drv_pin (cmd)

db_tie_max_cap 138
Tweaker™ Variables Version T-2022.03

def_physical_cells_to_be_ignored
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
def_physical_cells_to_be_ignored

Specifies the types list of physical cells that will be ignored

regardless of its DEF-defined attribute.

TYPE
String

DEFAULT
empty

DESCRIPTION
To ignore the DEF-defined attributes of physical cells and use

their spaces as free space during any ECO process, you can

specify the ignored types of cell in this variable.

If this variable is defined before running the defin command,

def_physical_cells_to_be_ignored 139
Tweaker™ Variables Version T-2022.03

then those matched physical cells are filtered away and does

not exist in our database (cannot be seen at in the Physical

View). But if this variable is defined after running the defin

command, then those matched physical cells still remains in your

database (they can be seen in the Physical View) but treated as

free space during ECO.

This variable is for specifying the library cells only and

supports wildcard expressions.

EXAMPLE
# matched cell will be directly filtered away

set def_physical_cells_to_be_ignored *FILL* *DCAP*

defin ...

# matched cell will be kept in our db but treated as free space

defin ...

set def_physical_cells_to_be_ignored *eco_filler*

SEE ALSO
def_physical_instances_to_be_ignored (var)
keep_def_fixed_physical_cells (var)
force_keep_physical_cells (var)

def_physical_cells_to_be_ignored 140
Tweaker™ Variables Version T-2022.03

def_physical_cells_to_be_ignored_except_instance
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
def_physical_cells_to_be_ignored_except_instance

Defines the list of physical instance names that need

to be reserved in Tweaker.

TYPE
String

DEFAULT
empty

DESCRIPTION
This variable defines the list of hierarchical instance

names to be preserved in Tweaker.

Usually, this variable is mostly used in combination with

the def_physical_cells_to_be_ignored variable when you

def_physical_cells_to_be_ignored_except_instance 141
Tweaker™ Variables Version T-2022.03

want to preserve some specific instances while ignoring

the rest of the physical cells.

EXAMPLE
set def_physical_cells_to_be_ignored *DCAP* *FILLER*

set def_physical_cells_to_be_ignored_except_instance *dcap* *filler*

SEE ALSO
def_physical_cells_to_be_ignored (var)
def_physical_instances_to_be_ignored (var)

def_physical_cells_to_be_ignored_except_instance 142
Tweaker™ Variables Version T-2022.03

def_physical_instances_to_be_ignored
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
def_physical_instances_to_be_ignore

Specifies the types list of physical instance that are

ignored regardless of its DEF-defined attribute.

TYPE
String

DEFAULT
Empty

DESCRIPTION
To ignore the DEF-defined attributes of physical cells and

use their spaces as free space during any ECO process, you

can specify the ignored types of cell in this variable.

If this variable is defined before running the defin command,

def_physical_instances_to_be_ignored 143
Tweaker™ Variables Version T-2022.03

then those matched physical instance are filtered out and

does not exist in your database (they cannot be seen in the

Physical View).

Currently, this variable cannot be used after running the

defin command.

This variable supports wildcard expressions.

EXAMPLE
set def_physical_instances_to_be_ignored { *xofiller* *endcap* }

defin ...

SEE ALSO
def_physical_cells_to_be_ignored (var)
keep_def_fixed_physical_cells (var)

def_physical_instances_to_be_ignored 144
Tweaker™ Variables Version T-2022.03

defin_ignore_row_power_violation
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
defin_ignore_row_power_violation

Enables or disables the ability to ignore any PWR/GND

connection violations.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
By default, Tweaker shows error messages and stops the

current process if it detects any PWR/GND connection

violations among the cells (for example, the PWR pin of

the cell are connected to the GND row, or vice versa).

defin_ignore_row_power_violation 145
Tweaker™ Variables Version T-2022.03

In contrast, if this variable is set to true, Tweaker

ignores this violation and continues the process.

You can also use the report_cell_power_ground_violation

commandto report the violated instance list for further

verification.

EXAMPLE
set defin_ignore_row_power_violation true

SEE ALSO
report_cell_power_ground_violation (cmd)
defin_row_power_violation_count (var)
defin_total_row_power_violation_count (var)

defin_ignore_row_power_violation 146
Tweaker™ Variables Version T-2022.03

defin_missed_instance_count
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
defin_missed_instance_count

Stores the sum of instances that are defined in the

databaseb but missed in the single imported DEF file.

TYPE
Integer

DEFAULT
0

DESCRIPTION
When processing one DEF file, Tweaker accumulates the

instances number that are defined in the database but

missed in the single imported DEF file and stores the

sum of violated cell to this variable.

defin_missed_instance_count 147
Tweaker™ Variables Version T-2022.03

EXAMPLE
printvar defin_missed_instance_count

SEE ALSO
defin_missed_total_instance_count (var)

defin_missed_instance_count 148
Tweaker™ Variables Version T-2022.03

defin_missed_total_instance_count
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
defin_missed_total_instance_count

Stores the sum of instance that are defined in the

database but missed from all imported DEF files.

TYPE
Integer

DEFAULT
0

DESCRIPTION
During the defin process, Tweaker accumulates the instances

number that are defined in the database, but missed in all

of the imported DEF files and stores the sum of violated

cells to this variable.

defin_missed_total_instance_count 149
Tweaker™ Variables Version T-2022.03

EXAMPLE
printvar defin_missed_total_instance_count

SEE ALSO
defin_missed_instance_count (var)

defin_missed_total_instance_count 150
Tweaker™ Variables Version T-2022.03

defin_row_power_violation_count
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
defin_row_power_violation_count

Stores the sum instances that contain PWR/GND connection

violations from a single imported DEF file.

TYPE
Integer

DEFAULT
0

DESCRIPTION
When processing one DEF file, Tweaker accumulates the

number of instances that contains PWR/GND connection

violations (for example, the PWR pin of the cell are

connected to the GND row, or vice versa) of the same DEF

defin_row_power_violation_count 151
Tweaker™ Variables Version T-2022.03

file and stores the violated cell sum to this variable.

EXAMPLE
printvar defin_row_power_violation_count

SEE ALSO
defin_total_row_power_violation_count (var)

defin_row_power_violation_count 152
Tweaker™ Variables Version T-2022.03

defin_total_master_discrepancy_count
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
defin_total_master_discrepancy_count

Records the number of master name difference between

netlists and DEF files.

TYPE
integer

DEFAULT
0

DESCRIPTION
After importing the netlist files (with the verilogin

command) and the DEF files (with the defin command) of

the design to Tweaker, the tool performs comparison

between the master name (cell name) of the instances in

defin_total_master_discrepancy_count 153
Tweaker™ Variables Version T-2022.03

the netlists and in the DEF files. Moreover, Tweaker

records the number of differences which can be extracted

by applying the printvar defin_total_master_discrepancy_count

command after running the defin commands.

You should avoid modifying this variable as it can result

in an inaccurate return value from Tweaker.

EXAMPLE
defin ...

printvar defin_total_master_discrepancy_count

SEE ALSO
defin (cmd)

defin_total_master_discrepancy_count 154
Tweaker™ Variables Version T-2022.03

defin_total_row_power_violation_count
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
defin_total_row_power_violation_count

Stores sum of instance count that contains PWR/GND connection

violations from all imported DEF files.

TYPE
Integer

DEFAULT
0

DESCRIPTION
During the defin process, Tweaker accumulates the number of

instances that contains PWR/GND connection violations (for

example, the PWR pin of the cell are connected to the GND row,

or vice versa) and stores the sum of violated cells that existed

defin_total_row_power_violation_count 155
Tweaker™ Variables Version T-2022.03

in all imported DEF files to this variable.

EXAMPLE
printvar defin_total_row_power_violation_count

SEE ALSO
defin_row_power_violation_count (var)

defin_total_row_power_violation_count 156
Tweaker™ Variables Version T-2022.03

defin_unplaced_component_percentage
NAME
TYPE
DEFAULt
DESCRIPTION
EXAMPLE

NAME
defin_unplaced_component_percentage

Specifies the percentage of unplaced components

during defin.

TYPE
double

DEFAULt
100.0

DESCRIPTION
You can define a percentage for unplaced components before

running the defin command. When running the check_def_quality

command, a warning message appears for DEF quality errors

after parsing DEF if the count of unplaced components is

defin_unplaced_component_percentage 157
Tweaker™ Variables Version T-2022.03

beyond the user-defined value.

EXAMPLE
set defin_unplaced_component_percentage 10

defin_unplaced_component_percentage 158
Tweaker™ Variables Version T-2022.03

design_analysis_collecting_mode
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
design_analysis_collecting_mode

Collects instances into the grid by different modes.

TYPE
String (touches|center_point)

DEFAULT
touches

DESCRIPTION
In the "Grid" system, Tweaker collects instances into the

"Grid" with two modes.

The "touches" mode: The instance falls in grids when the

instance is placed between these grids.

The "center_point" mode: The instance falls in a grid when

design_analysis_collecting_mode 159
Tweaker™ Variables Version T-2022.03

the center point of instance in the

grid.

+-------------+-------------+

| ---|---------- |

| | | . Inst | |

| ---|---------- |

|Grid-1 |Grid-2 |

+-------------+-------------+

In the "touches" mode: The "Inst" instance is collected into Grid-1

and Grid-2.

In the "center_point" mode: The "Inst" instance is collected into

Grid-2. Since the center point of the

"Inst" instance in Grid-2.

EXAMPLE
Example 1 creates a congestion database and grid database after

running the slkdc -check_slack_consistency command (recommend).

slkdc -check_slack_consistency

# set up collecting mode

set design_analysis_collecting_mode touched

# set up row number, "design_analysis_grid_height_by_row"

# must be the same as "congestion_map_grid_size_by_row"

design_analysis_collecting_mode 160
Tweaker™ Variables Version T-2022.03

set congestion_map_grid_size_by_row 10

set design_analysis_grid_height_by_row $congestion_map_grid_size_by_row

# create congestion db

create_congestion_db -bottom_routing_layer M2 -top_routing_layer M4

# create grid db

create_design_analysis_grid_db

Example 2 creates a congestion database and grid database before

running the slkdc -check_slack_consistency command. The main purpose

is to query grid information with specified conditions to control the

ECO domain. (such as cell_density, routing_density, and son on). But

ori_vio_xxx are incorrect (since violation reports are loaded with the

slkdc -check_slack_consistency command).

# set up collecting mode

set design_analysis_collecting_mode touched

# set up row number, "design_analysis_grid_height_by_row" must

# be the same as "congestion_map_grid_size_by_row"

set congestion_map_grid_size_by_row 10

set design_analysis_grid_height_by_row $congestion_map_grid_size_by_row

# create congestion db

create_congestion_db -bottom_routing_layer M2 -top_routing_layer M4

# create grid db

create_design_analysis_grid_db

slkdc -check_slack_consistency

design_analysis_collecting_mode 161
Tweaker™ Variables Version T-2022.03

SEE ALSO
design_analysis_grid_height_by_row (var)
congestion_map_grid_size_by_row (var)
slk_update_congestion_map (var)
create_congestion_db (cmd)
free_congestion_db (cmd)
create_design_analysis_grid_db (cmd)
remove_design_analysis_grid_db (cmd)
get_grids (cmd)
slkfix (cmd)
set_resource_window (cmd)
add_blockage (cmd)
delete_blockage (cmd)
draw (cmd)

design_analysis_collecting_mode 162
Tweaker™ Variables Version T-2022.03

design_analysis_grid_height_by_row
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
design_analysis_grid_height_by_row

Partitions a design into grids; the grid size is defined

by the number(#rows).

TYPE
Integer (must be > 3)

DEFAULT
10

DESCRIPTION
In the "Grid" system, Tweaker partitions a design into grids,

the height or width of the grid depends on the

design_analysis_grid_height_by_row variable.

You should not use a large number. The larger the number, the

design_analysis_grid_height_by_row 163
Tweaker™ Variables Version T-2022.03

lower the resolution (i.e., local cell density, local routing

density will be diluted).

In general, you should set the variable to 10 or 15 for advanced

technology nodes.

EXAMPLE
Example 1 creates a congestion databaseb and grid databaseb after

running the slkdc -check_slack_consistency comand (recommend).

slkdc -check_slack_consistency

# set up collecting mode

set design_analysis_collecting_mode touched

# set up row number; design_analysis_grid_height_by_row must

# be the same as congestion_map_grid_size_by_row

set congestion_map_grid_size_by_row 10

set design_analysis_grid_height_by_row $congestion_map_grid_size_by_row

# create congestion db

create_congestion_db -bottom_routing_layer M2 -top_routing_layer M4

# create grid db

create_design_analysis_grid_db

Example 2 creates a congestion databaseb and grid databaseb before

running the slkdc -check_slack_consistency. The main purpose is to

query grid information with the specified conditions to control the

design_analysis_grid_height_by_row 164
Tweaker™ Variables Version T-2022.03

ECO domain. (such as cell_density, routing_density, and so on). But

ori_vio_xxx are incorrect (since violation reports are loaded with

the slkdc -check_slack_consistency command).

# set up collecting mode

set design_analysis_collecting_mode touched

# set up row number, "design_analysis_grid_height_by_row" must

# be thesame as "congestion_map_grid_size_by_row"

set congestion_map_grid_size_by_row 10

set design_analysis_grid_height_by_row $congestion_map_grid_size_by_row

# create congestion db

create_congestion_db -bottom_routing_layer M2 -top_routing_layer M4

# create grid db

create_design_analysis_grid_db

slkdc -check_slack_consistency

SEE ALSO
design_analysis_collecting_mode (var)
congestion_map_grid_size_by_row (var)
slk_update_congestion_map (var)
create_congestion_db (cmd)
free_congestion_db (cmd)
create_design_analysis_grid_db (cmd)
remove_design_analysis_grid_db (cmd)
get_grids (cmd)
slkfix (cmd)
set_resource_window (cmd)
add_blockage (cmd)
delete_blockage (cmd)
draw (cmd)

design_analysis_grid_height_by_row 165
Tweaker™ Variables Version T-2022.03

disable_undo
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE

NAME
disable_undo

Performs an "undo" operation after any ECO process.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
In the GUI mode, Tweaker provides the "undo" button at each

view's tool column for manual editing.

When this variable is set to false (the default), Tweaker can

perform an "undo" operation after any ECO process. The maximum

number of undo steps step is defined by setting the

disable_undo 166
Tweaker™ Variables Version T-2022.03

slk_autofix_max_undo_domain varaible. The higher value means

undo can be performed in a bigger path domain with a larger

memory consumption trade-off.

In contrast, if this variable is set to true, the undo history

is cleared and Tweaker cannot perform the "undo" operation after

an ECO.

EXAMPLE
set disable_undo true

disable_undo 167
Tweaker™ Variables Version T-2022.03

disable_via0_rule_on_cell
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
disable_via0_rule_on_cell

Disables the via0 alignment rule check on specified cells.

TYPE
String

DEFAULT
empty

DESCRIPTION
This variable disables the honoring of via0 alignment rule

on specified cells. Wildcards are supported for specifying

the cell types.

disable_via0_rule_on_cell 168
Tweaker™ Variables Version T-2022.03

EXAMPLE
set disable_via0_rule_on_cell DBFS*

SEE ALSO
report_via0_alignment_rule (cmd)
report_via0_alignment_violation (cmd)
set_via0_alignment_rule (cmd)
enable_via0_alignment (var)
via0_alignment_check_cell_margin (var)

disable_via0_rule_on_cell 169
Tweaker™ Variables Version T-2022.03

drv_derate_at_index
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
drv_derate_at_index

Defines the slk_drv_factor variable as an "index range" or as the

"maximum index" multiplier factor.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
By default, Tweaker uses the value defined in the slk_drv_factor variable

as the "index range" multiplier factor.

In contrast, if this variable is set to false, Tweaker uses the value

defined in the slk_drv_factor variable as the "maximum index" multiplier

drv_derate_at_index 170
Tweaker™ Variables Version T-2022.03

factor. For more details, see the example.

EXAMPLES
A .lib timing table is as follows.

----------------------------------------------

rise_transition(del_tmp_7x7) {

index_1 ("0.1000, 0.3000, 0.5000, 1.2000, 2.0000, 3.5000, 5.1000");

index_2 ("0.0006, 0.0300, 0.0600, 0.1500, 0.2700, 0.3900, 0.5100");

values ("0.1705, 0.6015, 1.0390, 2.3840, 4.2000, 6.0240, 7.8490", ......);

----------------------------------------------

Case-1: Applies the derating factor as the index range multiplier factor.

[CMD] set drv_derate_at_index true

[CMD] set slk_drv_factor 0.5

The DRV constraint is set to 1.2000, which is the center position (0.5) of

the index range.

Case-2: Applies the derating factor as the maximum index multiplier factor.

[CMD] set drv_derate_at_index false

[CMD] set slk_drv_factor 0.5

The DRV constraint is set to 2.55, which is derived from the max index

(5.1000*0.5).

drv_derate_at_index 171
Tweaker™ Variables Version T-2022.03

SEE ALSO
slk_drv_factor (var)

drv_derate_at_index 172
Tweaker™ Variables Version T-2022.03

dump_agr_Inst_Info
# To report specific aggressor impact victim instance list and the corresponding impact IR drop

Type
String

Default
empty

Description
Tweaker IR ECO with RHSC can support aggressor aware IR ECO. User can use this command to

dump out aggressor instance corresponding victim instance list and the corresponding victim IR

drop.

Example
set dump_agr_Inst_Info Inst_A

TotalImpact 0.0139946164

victimsInst Inst_1 0.0015026301

victimsInst Inst_2 0.0015026297

victimsInst Inst_3 0.0014396046

dump_agr_Inst_Info 173
Tweaker™ Variables Version T-2022.03

victimsInst Inst_4 0.0014396044

victimsInst Inst_5 0.0013834346

victimsInst Inst_6 0.0013832134

victimsInst Inst_7 0.0013268223

victimsInst Inst_8 0.0013235051

victimsInst Inst_9 0.0012637969

victimsInst Inst_b 0.0008823274

victimsInst Inst_c 0.0000792248

victimsInst Inst_d 0.0000789415

victimsInst Inst_e 0.0000786910

victimsInst Inst_f 0.0000782175

victimsInst Inst_g 0.0000779498

victimsInst Inst_h 0.0000774006

victimsInst Inst_i 0.0000766226

See also
irdb_read_aggressor_list

dump_agr_Inst_Info 174
Tweaker™ Variables Version T-2022.03

dynamic_power_unit
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
dynamic_power_unit

Changes the internal or switching power unit from the Tweaker

dynamic power report.

TYPE
String [pw|nw|uw|mw]

DEFAULT
mw

DESCRIPTION
This variable holds the dynamic power unit (pw|nw|uw|mw) used inside

the Tweaker GUI, variables, and commands. If the power unit is changed,

each dynamic power variable whose unit is power unit will also need to

be changed accordingly. Hence, it is only recommended to change this VAR

dynamic_power_unit 175
Tweaker™ Variables Version T-2022.03

if it is necessary.

If the power unit of the reports is different from the one defined in

this variable, it is strongly recommended to apply it to this variable.

EXAMPLES
set dynamic_power_unit pw

...

slkdc -check_slack_consistency

SEE ALSO
leakage_power_unit (var)

dynamic_power_unit 176
Tweaker™ Variables Version T-2022.03

eco_clock_comp_with_placement_fixed
# Enables the clock comp of ECO cell with the fixed attribute of placement.

Type
Boolean

Default
true

Description
When you ECO operation touch the clock component, if you enable this

variable, Tweaker output ECO def or tcl will have the fixed attribute of

placement.

Example
...

set eco_clock_comp_with_placement_fixed true

set slk_fix_drv_dont_touch_clock false

slkfix -max_trans -all

set slk_fix_dont_touch_clock_comp false

eco_clock_comp_with_placement_fixed 177
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_dont_touch_clock_net false

slkfix -hold -all

...

See also
slk_fix_drv_dont_touch_clock

slk_fix_dont_touch_clock_comp

slk_fix_hold_dont_touch_clock_net

eco_clock_comp_with_placement_fixed 178
Tweaker™ Variables Version T-2022.03

eco_tcl_catch_apr_error
# Enables or disables the function that eco tcl catch the APR tool(Innovus) error.

Type
Boolean

Default
false

Description
By default, Tweaker will error out when there's insertion error in Innovus

eco tcl.

By setting this variable to true, users can avoid this by having Innovus eco

tcl input again and skip that insertion to continue the script. This

variable can only work when you apply this before the optimization starts.

Example
set eco_tcl_catch_apr_error true

......

slkfix -hold -all

eco_tcl_catch_apr_error 179
Tweaker™ Variables Version T-2022.03

See also
eco_tcl_pre_check_target

eco_tcl_catch_apr_error 180
Tweaker™ Variables Version T-2022.03

eco_tcl_enable_pt_create_port_what_if_flow
# Enable create port eco tcl for PT what if flow.

Type
Boolean

Default
false

Description
By setting this variable to its default value of false, Tweaker will not

output create module port eco tcl for PT what if flow.

In latest R-2020.09 PT version, it can support create module port ECO Tcl

what-if flow. If you want to perform create module port what-if timing result

in PT, please enable this variable.

Example
set eco_tcl_enable_pt_create_port_what_if_flow true

...ECO...

ecotclout -pt pt.tcl

eco_tcl_enable_pt_create_port_what_if_flow 181
Tweaker™ Variables Version T-2022.03

See also
ecotclout -pt

eco_tcl_enable_pt_create_port_what_if_flow 182
Tweaker™ Variables Version T-2022.03

eco_tcl_olympus_keep_routes
# Enables or disables eco tcl to force Olympus to keep original routing patterns when doing ECO route.

Type
Boolean

Default
true

Description
By default, Tweaker will output eco tcl with keep_route option in related

commands, this will force Olympus to keep original routing patterns when

doing ECO route.

On contrary, if this variable is set to false, Tweaker will output eco tcl

without keep_route option and Olympus may not have on-route behavior.

In order to enable/disable this variable, this must be set before executing

"slkfix" command.

Example
set eco_tcl_olympus_keep_routes false

eco_tcl_olympus_keep_routes 183
Tweaker™ Variables Version T-2022.03

slkfix -hold -all

ecotclout -olympus olympus_eco.tcl

See also
ecotclout

eco_tcl_olympus_keep_routes 184
Tweaker™ Variables Version T-2022.03

eco_tcl_out_clock_comp_with_placement_fixed
# Enables the clock comp of ECO cell with the fixed attribute of placement

Type
Boolean

Default
true

Description
When you ECO operation touch the clock component, if you enable this

variable, Tweaker output ECO def or tcl will have the fixed attribute of

placement.

Example
...

set eco_tcl_out_clock_comp_with_placement_fixed true

set slk_fix_drv_dont_touch_clock false

slkfix -max_trans -all

set slk_fix_dont_touch_clock_comp false

eco_tcl_out_clock_comp_with_placement_fixed 185
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_dont_touch_clock_net false

slkfix -hold -all

...

See also
slk_fix_drv_dont_touch_clock

slk_fix_dont_touch_clock_comp

slk_fix_hold_dont_touch_clock_net

eco_tcl_out_clock_comp_with_placement_fixed 186
Tweaker™ Variables Version T-2022.03

eco_tcl_pre_check_sizing_conflict
# Enables to make sure the original cell type of sized cell is matched between Tweaker and APR.

Type
Boolean

Default
false

Description
By default, sizing operation in ECO tcl does not check if the original cell

type is matched with APR or not, the instance will get sized to the target cell

type directly if certain instance exists.

By applying this variable to true, Tweaker will dump the original cell type

information before each sizing operation and do the extra pre-check to make

sure the cell type is the same, and it will skip sizing if it is mismatch.

To enable the sizing pre-check, please turn on this variable before ECO

operation.

Example

eco_tcl_pre_check_sizing_conflict 187
Tweaker™ Variables Version T-2022.03

[CMD] set eco_tcl_pre_check_sizing_conflict true

[CMD] slkfix -setup -all

[CMD] ecotclout -icc2 -high_level icc2_high.tcl

See also
ecotclout (cmd)

eco_tcl_pre_check_sizing_conflict 188
Tweaker™ Variables Version T-2022.03

eco_tcl_pre_check_target
# Enables or disables the pre-check function that will match the

net/pin/connection between Tweaker/APR db for each ECO step.

Type
Boolean

Default
false

Description
By setting this variable to its default value of false, Tweaker will not

output the pre-check procedures in the ECO tcl to match the

net/pin/connection between Tweaker and APR database when applying the ECO.

On the contrary, by setting this variable to true, Tweaker will add

pre-check procedure for each ECO step in ECO TCL. These procedure will make

sure the net/pin/connection of the current db between Tweaker and APR is the

same and then apply the ECO change.

When this variable is turn to true and if objects is missing or mismatch,

related ECOs will be skipped to avoid any error out.

This variable can only work when you apply this before the optimization

eco_tcl_pre_check_target 189
Tweaker™ Variables Version T-2022.03

starts.

Example
set eco_tcl_pre_check_target true

...ECO...

See also
N/A

eco_tcl_pre_check_target 190
Tweaker™ Variables Version T-2022.03

eco_tcl_sync_instance_net_name_to_apr
# Enables or disables eco tcl to force APR tools to synchronize the ECO cell and

net names with Tweaker.

Type
Boolean

Default
false

Description
By setting this variable to true, Tweaker will output eco tcl with

additional control to prevent the issue of missing instance or net names

which are specified by Tweaker in APR tools.

Sometimes APR tools have different naming for ECO cells or nets, this will

cause an issue of missing certain instance or net if try to touch the

instance or net again by using Tweaker's naming.

When this variable is set to true, APR tools will be able to synchronize

the naming with Tweaker.

This variable only works when

"eco_tcl_use_module_based_high_level_insertion_cmd" is enabled and should be

eco_tcl_sync_instance_net_name_to_apr 191
Tweaker™ Variables Version T-2022.03

set before "slkfix" command.

Example
set eco_tcl_sync_instance_net_name_to_apr true

set eco_tcl_use_module_based_high_level_insertion_cmd true

...

slkfix -hold -all

See also
eco_tcl_use_module_based_high_level_insertion_cmd

eco_tcl_sync_instance_net_name_to_apr 192
Tweaker™ Variables Version T-2022.03

eco_tcl_use_high_level_insertion_cmd
# Enables or disables Tweaker to dump out high level insertion ECO TCL.

Type
Boolean

Default
false

Description
By setting this variable to its default value of false, Tweaker will

use basic command of APR tool such as disconnect net and re-connect net

to perform repeater insertion.

For more advanced technology, users may apply the NDR rule on the net,

hence the removal of the net by using APR basic commands may also delete

the original NDR rule on the net itself.

Since users are allowed to keep the NDR rule by using high level ECO

insertion commands for third-party APR tool, therefore Tweaker provide

this solution by generating the high-level ECO TCL by setting this variable

to true.

Currently, Tweaker can only write out either high level or low level ECO TCL

eco_tcl_use_high_level_insertion_cmd 193
Tweaker™ Variables Version T-2022.03

for a fixing stage. To dump high level ECO TCL, this variable must be

enabled before auto fixing.

Example
set eco_tcl_use_high_level_insertion_cmd true

slkfix -hold -all

ecotclout -icc icc.eco.tcl

See also
eco_tcl_use_high_level_insertion_cmd_without_buffer_placement

eco_tcl_use_high_level_insertion_cmd 194
Tweaker™ Variables Version T-2022.03

eco_tcl_use_high_level_insertion_cmd_without_buffer_placement
# Enables or disables APR tools to follow the buffer location provided by

Tweaker.

Type
boolean

Default
false

Description
When the var "eco_tcl_use_high_level_insertion_cmd" is enabled.

By default, Tweaker will provided locations in ECO TCL for new inserted

cells.

On the contrary, by setting this variable to true, Tweaker will not provide

the location of the inserted ECO instance and let APR tools to decide their

placement at their legalize stage.

Example
set eco_tcl_use_high_level_insertion_cmd true

eco_tcl_use_high_level_insertion_cmd_without_buffer_placement 195
Tweaker™ Variables Version T-2022.03

set eco_tcl_use_high_level_insertion_cmd_without_buffer_placement false

See also
eco_tcl_use_high_level_insertion_cmd

eco_tcl_use_high_level_insertion_cmd_without_buffer_placement 196
Tweaker™ Variables Version T-2022.03

eco_tcl_use_module_based_high_level_insertion_cmd
# Enables or disables eco tcl to force APR tools to insert buffer under

specified module correctly.

Type
Boolean

Default
true

Description
By setting this variable to default value of true, the ECO tcl dumped from

Tweaker will force APR tools to do insertion under specified module.

On contrary, if this variable is set to false, APR tools might not insert

buffer at the logic location which is specified by Tweaker correctly when

using high level tcl command.

In order to enable/disable this variable, this must be set before executing

"slkfix" command.

Example

eco_tcl_use_module_based_high_level_insertion_cmd 197
Tweaker™ Variables Version T-2022.03

set eco_tcl_use_module_based_high_level_insertion_cmd true

slkfix -hold -all

ecotclout -icc -high_level icc.eco.tcl

See also

eco_tcl_use_module_based_high_level_insertion_cmd 198
Tweaker™ Variables Version T-2022.03

eco_tcl_user_attr_for_eco_cells
# Tweaker variable allow user's own attribute on eco cells to be applied in the

ECO tcl.

Type
String

Default
empty

Description
If there is extra APR tool attributes needed to be applied on the Tweaker

eco cells, user can collect those attributes here in this variable and

Tweaker will generate the related corresponding APR command

(set_attribute ...) in the ECO tcl when output ECO tcl files.

Example
set eco_tcl_user_attr_for_eco_cells "MY BUFFER ATTR"

See also

eco_tcl_user_attr_for_eco_cells 199
Tweaker™ Variables Version T-2022.03

N/A

eco_tcl_user_attr_for_eco_cells 200
Tweaker™ Variables Version T-2022.03

enable_all_color_shift_values
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_all_color_shift_values

Enables or disables all the functions of color shifting ECO value.

TYPE
string <false | true | auto | disable_all>

DEFAULT
false

DESCRIPTION
By default, Tweaker only applies color mask 1 and 5 on a cell.

By setting this variable to true, all the color mask value from

0-5 are enabled. If setting this variable to auto, the db from

the DEF file are automatically detected. If setting this variable

to disable_all, the tool disables all the color shifting functions

enable_all_color_shift_values 201
Tweaker™ Variables Version T-2022.03

and no changes are allowed.

EXAMPLES
set enable_all_color_shift_values true

SEE ALSO
enable_color_shifting_tcl (var)

color_drc_rule_check_layer

enable_all_color_shift_values 202
Tweaker™ Variables Version T-2022.03

enable_auto_derate_scale
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_auto_derate_scale

Enables auto derate scaling mechanism.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
After enabling this variable, Tweaker can identify a missing derate

library and use the nearest voltage library group derating to perform

linear derate scaling.

enable_auto_derate_scale 203
Tweaker™ Variables Version T-2022.03

EXAMPLES
set enable_auto_derate_scale true

begin_corner test

set_group -lib -name test

set_group -lib -name test -voltage 2.25 -temperature 125 -inst U_dsub/U_mod_1

set_group -lib -name test -voltage 2.75 -temperature 0 -inst U_dsub/U_mod_2

set_group -lib -name test -voltage 2.7 -temperature 50 -ref_group { test_2.25_125 test_2.75_0 } \

-inst U_dsub/U_mod_3

...

set_timing_derate -late 1.5 -lib_group test -voltage 2.25 -temperature 125 [get_lib_cells *]

set_timing_derate -late 1.2 -lib_group test -voltage 2.75 -temperature 0 [get_lib_cells *]

...

end_corner test

SEE ALSO
set_group (cmd)
set_timing_derate (cmd)

enable_auto_derate_scale 204
Tweaker™ Variables Version T-2022.03

enable_buffer_assign_nets
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
enable_buffer_assign_nets

Enables or disables transforming all "assign" statements in

design netlists to buffer insertions statements.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
By setting this variable to true, Tweaker transforms all "assign"

statements on the ECO cells as a buffer insertion statements as

shown as follows.

For example, an "assign" statement in the netlist:

enable_buffer_assign_nets 205
Tweaker™ Variables Version T-2022.03

assign net_2 = net_1 ;

would be transformed into an inserted buffer such as:

DBFS0 inst_buf_000 ( .Y(net_2) , .A(net_1) );

This feature is available since some third party P&R tools cannot

recognize "assign" statements.

By default, this statement transformation is disabled.

EXAMPLES
set enable_buffer_assign_nets true

set enable_buffer_assign_nets false

enable_buffer_assign_nets 206
Tweaker™ Variables Version T-2022.03

enable_cell_edge_spacing_rule
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_cell_edge_spacing_rule

Enables or disables the advanced process abutment rules.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
In advanced process nodes such as 20nm or below, the foundry

might provide some placement rules like minimum VT rules and

abutment rules to fit the process.

This variable is the main switch to enable the "abutment rules"

feature in Tweaker. No matter if the abutment rules are described

enable_cell_edge_spacing_rule 207
Tweaker™ Variables Version T-2022.03

in detail in the LEF file or built up with the

build_spacing_rules_by_spacing_table Tweaker command, it is

recommened this variable be set to true on the first place to

allow Tweaker to accept these rules.

EXAMPLES
set enable_cell_edge_spacing_rule true

lefin ..

...

build_spacing_rules_by_spacing_table

SEE ALSO
build_spacing_rules_by_spacing_table (cmd)

enable_cell_edge_spacing_rule 208
Tweaker™ Variables Version T-2022.03

enable_cell_padding
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_cell_padding

Enables or disables honoring of cell padding rules in physical designs.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
This variable enables or disables honoring of cell padding rules.

EXAMPLES
set enable_cell_padding false

enable_cell_padding 209
Tweaker™ Variables Version T-2022.03

SEE ALSO
load_padding_list (cmd)
report_cell_padding (cmd)
report_instance_padding (cmd)
set_cell_padding (cmd)
set_instance_padding (cmd)
enable_instance_padding (var)

enable_cell_padding 210
Tweaker™ Variables Version T-2022.03

enable_cell_via0_avoid_power_strap
# Enable or disable this variable to make via0 of a cell avoid or overlap with power strap.

Type
Boolean

Default
false

Description
In advanced technology nodes, the DRC physical rule specifies that cell's via0 defined in OBS part

in cell lef cannot overlap with power strap after doing ECO either cell sizing or buffer insertion.

Example
set enable_cell_via0_avoid_power_strap true

See also
enable_via0_alignment

enable_cell_via0_avoid_power_strap 211
Tweaker™ Variables Version T-2022.03

enable_cell_width_spacing_rule
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_cell_width_spacing_rule

Enables the cell width spacing rule, such as like TPO rules,

VT width rules.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
For advanced process nodes such as 20nm or below, there could be some

new physical placement rules like TPO rules, or minimum VT width or

minimum VT spacing rules. These rules can be described in the LEF files

or input by corresponding Tweaker command.

enable_cell_width_spacing_rule 212
Tweaker™ Variables Version T-2022.03

This is the control variable to honor these rules.

EXAMPLES
set enable_cell_width_spacing_rule true

set enable_cell_edge_spacing_rule true

...

slkfix ...

SEE ALSO
enable_cell_edge_spacing_rule (var)

enable_cell_width_spacing_rule 213
Tweaker™ Variables Version T-2022.03

enable_color_shifting_tcl
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_color_shifting_tcl

Enables or disables generating coloring-aware ECO Tcl.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
When this variable is set to true, if the coloring information exists

in the design then Tweaker outputs the ECO Tcl with the appropriate

color shifting information.

This variable should be executed before loading the database into

Tweaker.

enable_color_shifting_tcl 214
Tweaker™ Variables Version T-2022.03

EXAMPLES
set enable_color_shifting_tcl true

SEE ALSO
color_drc_rule_check_layer

enable_color_shifting_tcl 215
Tweaker™ Variables Version T-2022.03

enable_cover_cell
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
enable_cover_cell

Enables or disables for Tweaker to consider cover cell during cell

placement.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
By setting this variable to true, the cover cells are treated as placement

blockage; Tweaker avoids placing ECO cells overlapping with cover cells.

If the ECO cell was overlapping with a cover cell before ECO, Tweaker does

not size or move the cell unless there is a free space for the ECO cell

enable_cover_cell 216
Tweaker™ Variables Version T-2022.03

within the search range and not overlapping with the cover cell.

The cover cell attribute is read from LEF files.

This variable can be changed any time and takes effect immediately.

EXAMPLES
set enable_cover_cell true

slkfix -hold -all

enable_cover_cell 217
Tweaker™ Variables Version T-2022.03

enable_eco_comment
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_eco_comment

Enables Tweaker to print ECO comments in nlcmd when

Tweaker is performing ECO.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
Tweaker prints ECO comments in nlcmd when this variable is set

to true. The default is false.

All combinations for eco_comment:

eco_comment {

enable_eco_comment 218
Tweaker™ Variables Version T-2022.03

-manual | -user | -setup | -hold | -trans | -cap | -noise | -fanout |

-si_double_switching | -power | -area ,

-sizing | -insertion | -delete_buf | -delete_inv | -bypass_buf |

-bypass_inv | -split_cell | -pin_swap | -add_dummy | -change_driver ,

-hier_name instance_name }

EXAMPLES
[CMD] set enable_eco_comment true

[CMD] slkfix -setup -all

[Tweaker.nlcmd]

#sizing: (DBFS0)->(DBFS1HVT) inst(main0/MACMod/mac0/HC_10) power domain(on)

twf -begin_sizing { mac HC_10 -master DBFS1HVT }

rep -master {mac HC_10 -n DBFS1HVT}

place {main0/MACMod/mac0/HC_10} 1936.62 1804.32 0 y PLACED

eco_comment -setup -sizing -hier_name main0/MACMod/mac0/HC_10

twf -end_sizing

...

[CMD] eco_comment -user "Hello World!"

[Tweaker.nlcmd]

eco_comment -user Hello World!

enable_eco_comment 219
Tweaker™ Variables Version T-2022.03

SEE ALSO
eco_comment (cmd)

enable_eco_comment 220
Tweaker™ Variables Version T-2022.03

enable_inbound_cell
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
enable_inbound_cell

Enables or disables the inbound cell mode.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
This variable is to enable or disable the inbound cell mode for the

N12 process design.

The "auto" value is available for this variable. When "auto" is used,

Tweaker enables or disables the inbound cell mode automatically.

Tweaker enables the inbound cell mode if the half-row unit site and

enable_inbound_cell 221
Tweaker™ Variables Version T-2022.03

half-row filler are defined in the LEF files.

This variable only works when specified before running the lefin command.

EXAMPLES
set enable_inbound_cell auto

...

libin $lib_files

lefin $lef_files

enable_inbound_cell 222
Tweaker™ Variables Version T-2022.03

enable_instance_padding
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_instance_padding

Enables or disables the honoring of instance padding rules.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
Enables or disables the honoring of instance padding rules.

EXAMPLES
set enable_instance_padding false

enable_instance_padding 223
Tweaker™ Variables Version T-2022.03

SEE ALSO
set_instance_padding (cmd)
report_instance_padding (cmd)
set_cell_padding (cmd)
load_padding_list (cmd)
report_cell_padding (cmd)
enable_cell_padding (var)

enable_instance_padding 224
Tweaker™ Variables Version T-2022.03

enable_lvf_extended_moments
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_lvf_extended_moments

Enables moment-based non-Gaussian timing variation calculation

in POCV mode.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
When this variable is enabled by setting to true, Tweaker uses the

ocv_mean_shift, ocv_std_dev, and ocv_skewness tables to calculate delay,

slew, and constraint with non-gaussian timing variation. But this

variable only enables the moment-based calculation method. Therefore,

enable_lvf_extended_moments 225
Tweaker™ Variables Version T-2022.03

you still need to enable the following variable to active delay, slew,

and constraint variation calculation.

Delay variation:

set enable_ocv_sigma true

slew variation:

set enable_timing_slew_variation true

constraint variation

set enable_timing_constraint_variable true

EXAMPLES
set _libin_read_lvf_moment true

libin -name ss ss.lib

...

set enable_ocv_sigma true

set enable_timing_constraint_variation true

set enable_timing_slew_variation true

set enable_lvf_extended_moments true

set_timing_ocv_sigma 3.0

...

slkdc -check_slack_consistency

...

report_timing_ocv_sigma

enable_lvf_extended_moments 226
Tweaker™ Variables Version T-2022.03

SEE ALSO
set_timing_ocv_sigma (cmd)
report_timing_ocv_sigma (cmd)
enable_ocv_sigma (var)
enable_timing_constraint_variation (var)
enable_timing_slew_variation (var)

enable_lvf_extended_moments 227
Tweaker™ Variables Version T-2022.03

enable_m0po
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_m0po

Enables the M0PO maximum length rule check during ECO.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
This variable enables or disables the honoring of the M0PO

maximum length rule.

EXAMPLES

enable_m0po 228
Tweaker™ Variables Version T-2022.03

set enable_m0po true

SEE ALSO
report_m0po_rule (cmd)
report_m0po_violation (cmd)

enable_m0po 229
Tweaker™ Variables Version T-2022.03

enable_macro_halo_blockages
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_macro_halo_blockages

Enables or disables treating macro's halo blockage as hard

blockage or free space.

TYPE
Boolean

DEFAULT
true

DESCRIPTION
By default, during any ECO operation, Tweaker treats DEF-defined

HALO blockages around macro cells as hard blockage and avoids any

ECO operation on those regions.

If this variable is set to false, Tweaker does not honor HALO

enable_macro_halo_blockages 230
Tweaker™ Variables Version T-2022.03

blockages around the macro cells and treats them as free spaces.

EXAMPLES
set enable_macro_halo_blockages true

defin ...

SEE ALSO
enable_partial_blockages (var)
enable_soft_blockages (var)

enable_macro_halo_blockages 231
Tweaker™ Variables Version T-2022.03

enable_multi_machine_mode
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
enable_multi_machine_mode

Enables or disables the multi-machine mode for loading a design.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
This variable enables or disables the multi-machine mode for loading

a design stage in Tweaker.

The multi-machine mode is used to reduce the runtime of loading a

design, especially for a chip-level design with a lot of timing

scenarios.

enable_multi_machine_mode 232
Tweaker™ Variables Version T-2022.03

Currently, Tweaker can read some input files , including SDF, SPEF,

and TWF files, in multi-machine mode after enabling this variable.

This variable should be specified before running the

slkdc -check_slack_consistency command.

EXAMPLE
set enable_multi_machine_mode true

set multi_machine_number 10

set multi_machine_client_job_number 2

set multi_machine_submit_job_prefix "bsub -n 8 -R'span[hosts=1]' -Is "

...

slkdc -check_slack_consistency

SEE ALSO
multi_machine_number (var)
multi_machine_client_job_number (var)
multi_machine_submit_job_prefix (var)
multi_machine_submit_job_postfix (var)
multi_machine_time_limit (var)

enable_multi_machine_mode 233
Tweaker™ Variables Version T-2022.03

enable_no_fill1_spacing_rule
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_no_fill1_spacing_rule

Fulfills the "no fillerx1" rule. This is a Tweaker system variable.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
This variable is designed to fulfill the "no fillerx1" rule (for example,

minimum distance between cell boundary is at least fillerx2's width) that

is required by process nodes of 40nm and below.

By default, Tweaker does not follow this rule.

In contrast, by setting this variable to true, Tweaker honors this rule

enable_no_fill1_spacing_rule 234
Tweaker™ Variables Version T-2022.03

during any ECO cell placement.

This variable is equivalent to the enable_no_filler1_spacing_rule variable.

EXAMPLES
set enable_no_fill1_spacing_rule true

defin ...

SEE ALSO
report_filler1_spacing_violation (cmd)
set_gate_array_refill_guide (cmd)
enable_no_filler1_spacing_rule (var)
enable_no_fill1_spacing_rule_with_placement_blockage (var)

enable_no_fill1_spacing_rule 235
Tweaker™ Variables Version T-2022.03

enable_no_fill1_spacing_rule_with_placement_blockage
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_no_fill1_spacing_rule_with_placement_blockage

Enables or disables checking the no-filler1 rule between cells

and hard blockage.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
For process nodes 40nm and below, the no-filler1 spacing rule must be

honored (for example, the minimum distance between cell boundary is at

least fillerx2's width).

By default, Tweaker only checks the no-filler1 rule between cells. You

enable_no_fill1_spacing_rule_with_placement_blockage 236
Tweaker™ Variables Version T-2022.03

need to enable this variable to further check the no-filler1 rule

between cells and hard placement blockage.

This variable only works after enabling the enable_no_fill1_spacing_rule

variable, and equivalent to the

enable_no_filler1_spacing_rule_with_placement_blockage variable.

EXAMPLES
set enable_no_fill1_spacing_rule true

set enable_no_fill1_spacing_rule_with_placement_blockage true

defin ...

SEE ALSO
enable_no_filler1_spacing_rule (var)
set_gate_array_refill_guide (cmd)
report_filler1_spacing_violation (cmd)

enable_no_fill1_spacing_rule_with_placement_blockage 237
Tweaker™ Variables Version T-2022.03

enable_no_filler1_spacing_rule
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_no_filler1_spacing_rule

Fulfills the "no fillerx1" rule. This is a Tweaker system variable.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
This variable is designed to fulfill the "no fillerx1" rule (for example,

minimum distance between cell boundary is at least fillerx2's width) that

is required by process nodes of 40nm and below.

By default, Tweaker does not follow the "no fillerx1" rule.

In contrast, by setting this variable to true, Tweaker honors the rule

enable_no_filler1_spacing_rule 238
Tweaker™ Variables Version T-2022.03

during any ECO cell placement.

EXAMPLES
set enable_no_filler1_spacing_rule true

defin ...

SEE ALSO
report_filler1_spacing_violation (cmd)
set_gate_array_refill_guide (cmd)
enable_no_filler1_spacing_rule_with_placement_blockage (var)

enable_no_filler1_spacing_rule 239
Tweaker™ Variables Version T-2022.03

enable_no_filler1_spacing_rule_with_placement_blockage
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_no_filler1_spacing_rule_with_placement_blockage

Enables or disables checking the no-filler1 rule between

cells and hard blockage.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
For process nodes below 40nm, the no-filler1 spacing rule must be

honored (for example, minimum distance between cell boundary is at

least fillerx2's width).

By default, Tweaker only checks the no-filler1 rule between cells.

enable_no_filler1_spacing_rule_with_placement_blockage 240
Tweaker™ Variables Version T-2022.03

You need to enable this variable to further check the no-filler1 rule

between cells and hard placement blockage.

This variable only works after enabling the enable_no_filler1_spacing_rule

variable.

EXAMPLES
set enable_no_filler1_spacing_rule true

set enable_no_filler1_spacing_rule_with_placement_blockage true

defin ...

SEE ALSO
enable_no_filler1_spacing_rbule (var)
set_gate_array_refill_guide (cmd)
report_filler1_spacing_violation (cmd)

enable_no_filler1_spacing_rule_with_placement_blockage 241
Tweaker™ Variables Version T-2022.03

enable_ocv_sigma
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_ocv_sigma

Enables POCV mode of Tweaker.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
After enabling this variable by setting it to true, Tweaker enters

POCV mode for various types of ECOs. Note that this feature requires

timing information (timing window files, SDF files, and timing report

files(optional) to be fed in Tweaker. POCV mode is enabled after the

consistency check finishes.

enable_ocv_sigma 242
Tweaker™ Variables Version T-2022.03

EXAMPLES
tweaker_shell> set enable_ocv_sigma true

tweaker_shell> set enable_timing_constraint_variation true

tweaker_shell> set enable_timing_slew_variation true

tweaker_shell> set_timing_ocv_sigma 3.0

tweaker_shell> report_timing_ocv_sigma

SEE ALSO
set_timing_ocv_sigma (cmd)
report_timing_ocv_sigma (cmd)
enable_timing_constraint_variation (var)
enable_timing_slew_variation (var)

enable_ocv_sigma 243
Tweaker™ Variables Version T-2022.03

enable_od_jog_rule
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_od_jog_rule

Enables the diffusion layer rules.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
For advanced process nodes such as 4nm, 5nm, 16nm, and 12nm, there

could be physical placement rules like diffusion layer rules. These

rules are described in the LEF files.

This is the control variable to honor the diffusion layer rules.

By default, Tweaker does not follow these rules.

enable_od_jog_rule 244
Tweaker™ Variables Version T-2022.03

In constrast, when this variable is set to true, Tweaker reads in

diffusion layer information and monitors the layer shapes of cells

during any ECO cell placement.

EXAMPLES
lefin ...

...

verilogin ...

defin ...

set enable_od_jog_rule true

slkfix ....

report_od_jog_violation -eco_cell -highlight

SEE ALSO
report_od_jog_violation (cmd)

enable_od_jog_rule 245
Tweaker™ Variables Version T-2022.03

enable_partial_blockages
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLE
SEE ALSO

NAME
enable_partial_blockages

Defines the treatment of DEF-defined partial blockage

during the ECO operations.

TYPE
String [ auto | true | false ]

DEFAULT
auto

DESCRIPTION
This variable defines the treatment of DEF-defined partial blockage

during the ECO operations by Tweaker. Starting with the April 2018

version, Tweaker supports updating the partial blockage dynamically

during ECO. You can right-click on the partial blockage to see its

enable_partial_blockages 246
Tweaker™ Variables Version T-2022.03

current density.

There are three input options for this variable:

1. auto:

Tweaker treats partial blockage as available space if its

density is lower than the value defined in DEF file.

2. true:

Tweaker treats partial blockage as placement blockage space and

no ECO operation is allowed on this blockage.

3. false:

Tweaker treats partial blockage as free space.

When treating a "partial blockage" block as free space, there might

be some overlap cells after the ECO operation. Hence, Tweaker offers

the ability to report the overlapped cells by executing the

"report_overlapped_cells -file filename -eco_cells_only" command.

Notice that the setting on "ignore_def_placement_blockages" variable

is independent and does not overwrite the setting behavior of this

variable. For example:

case 1: set enable_partial_blockages true

set ignore_def_placement_blockages true

=> Tweaker treats "partial blockage" blocks as hard blockage and

Tweaker ignores original "placement blockage" blocks and

treats them as free space.

enable_partial_blockages 247
Tweaker™ Variables Version T-2022.03

case 2: set enable_soft_blockages true

set ignore_def_placement_blockages true

=> Tweaker treats "soft blockage" blocks as hard blockage and

Tweaker ignores original "placement blockage" blocks and

treats them as free space.

EXAMPLE
set enable_partial_blockages true

SEE ALSO
enable_soft_blockages (var)
ignore_def_placement_blockages (var)
report_overlapped_cells (cmd)

enable_partial_blockages 248
Tweaker™ Variables Version T-2022.03

enable_physical_vio_code
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_physical_vio_code

Enables the number and range in Tweaker for the

get_attribute physical_vio_code command usage.

TYPE
[value | range]

DEFAULT
2-21 24

DESCRIPTION
By setting the variable with a number or range of physical violation

code, only specified physical violations are reported when using the

"get_attribute [get_cells xxxx] physical_vio_code" command.

This variable also effects the "legalize_place -all_placement_violation"

enable_physical_vio_code 249
Tweaker™ Variables Version T-2022.03

command. By default, Tweaker legalizes overlapped cells or all

placement rule violated cells. If you only want to legalize some

physical rule violated cells, specify the physical violation codes with

this variable; Tweaker only legalizes those physical violated cells.

value

Specifies the physical violation code by values which are the

number from 2 to 24.

range

Specifies the physical violation code by range between 2 to 24.

Physical_vio_code description:

#-1 : cell is unplaced

# 0 : no physical violation

# 1 : cell is overlapped

# 2 : congestion violation

# 3 : abutment rule violation

# 4 : vertical abutment rule violation

# 5 : VT rule violation (VT width & spacing)

# 6 : TPO rule violation (TPO width & spacing)

# 7 : VT area rule violation

# 8 : constraint rule violation (create bound)

# 9 : gate array alignment violation

# 10 : gate array flip violation

enable_physical_vio_code 250
Tweaker™ Variables Version T-2022.03

# 11 : min space rule violation (filler 1 rule)

# 12 : cell padding rule violation

# 13 : coloring rule violation

# 14 : keep pin geometry violation

# 15 : pin overlap power mesh violation

# 16 : pin on color track violation

# 17 : cell symmetry violation

# 18 : pin access point violation

# 19 : pin access point for NDR net violation

# 20 : OD Jog rule violation

# 21 : VIA0 alignment violation

# 22 : Reserved

# 23 : Reserved

# 24 : M0PO violation

EXAMPLES
set enable_physical_vio_code 2-18 24

get_attribute cell physical_vio_code

set enable_physical_vio_code 3

legalize_place -range 10 -all_placement_violation

SEE ALSO

enable_physical_vio_code 251
Tweaker™ Variables Version T-2022.03

get_attribute (cmd)

enable_physical_vio_code 252
Tweaker™ Variables Version T-2022.03

enable_preprocess_of_data_out
# Tweaker variable to enable the process of spare/filler pool re-organization

during data out stage.

Type
Boolean

Default
true

Description
For certain fixing mode like using spare cells as free space, using filler

resource as free space, or directly using spare pools under METAL ECO mode,

to get those spare/filler pool updated after optimization, Tweaker needs to

do some re-organized them by deleting the used resource or legalize them.

By default Tweaker will automatically execute the above process during data

out stage.

Example
set enable_preprocess_of_data_out true

enable_preprocess_of_data_out 253
Tweaker™ Variables Version T-2022.03

...ECO...

ecotclout ...

See also
N/A

enable_preprocess_of_data_out 254
Tweaker™ Variables Version T-2022.03

enable_resource_window
# Enter/Leave resource window mode; The resource window limits eco cells will be

on/out of the specified regions.

Type
String [ true | false ]

Default
false

Description
To turn on/off the variable which enters/leaves the resource window mode.

In the resource window mode, we can limit the eco cells can be puts on the

specified regions or out of the specified regions.

Example
# ==== Timing ECO Mode Example ===

source $script_path/fix_hold_setting.bi.4.tcl

set enable_resource_window true

set_resource_window -add_window 200 200 300 300

enable_resource_window 255
Tweaker™ Variables Version T-2022.03

# reference "create_design_analysis_grid_db" to create the Grid DB

set_resource_window -add_window -grid [get_grids 1 3 5]

slkfix -hold -all

See also
design_analysis_grid_height_by_row (var)
congestion_map_grid_size_by_row (var)
slk_update_congestion_map (var)
design_analysis_collecting_mode (var)
create_congestion_db (cmd)
free_congestion_db (cmd)
create_design_analysis_grid_db (cmd)
remove_design_analysis_grid_db (cmd)
get_grids (cmd)
slkfix (cmd)
set_resource_window (cmd)
draw (cmd)

enable_resource_window 256
Tweaker™ Variables Version T-2022.03

enable_sdf_condelse
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_sdf_condelse

Enables or disables the CONDELSE timing arc delay information when

generating the SDF file of the ECO domain.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
When this variable is set to true, Tweaker uses "CONDELSE" timing

arc delay information when generating the SDF file of the ECO

domain (sdfout).

enable_sdf_condelse 257
Tweaker™ Variables Version T-2022.03

EXAMPLES
set enable_sdf_condelse true

SEE ALSO
sdfout (cmd)

enable_sdf_condelse 258
Tweaker™ Variables Version T-2022.03

enable_single_wire_decl
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES

NAME
enable_single_wire_decl

Enables or disables the ability to recognize undeclared wire.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
By default, Tweaker can recognize any wire even if it is undeclared

in the module definition.

In contrast, when this variable is set to true, you need to declare

all of the used wires into the module definition.

enable_single_wire_decl 259
Tweaker™ Variables Version T-2022.03

EXAMPLES
set enable_single_wire_decl true

enable_single_wire_decl 260
Tweaker™ Variables Version T-2022.03

enable_soft_blockages
# Enables or disables the ability of Tweaker to threat soft blockage as hard blockage.

Type
Boolean

Default
false

Description
By default, Tweaker will treat DEF-defined soft blockages as free space

during any ECO operation. During this setting, there might be some overlap

cells after the ECO operation. And hence, Tweaker offers the ability to

report the overlapped cells by executing

"report_overlapped_cells -file filename -eco_cells_only".

In contrary, if this variable is set to true, Tweaker will treat the "soft

blockages" blocks as hard blockages and avoid any ECO operation on those

regions.

Notice that although by setting either "enable_partial_blockages" or

"enable_soft_blockages" is set to true will also treat the those type of

blockages as hard blockage (which are not allowed to be modified),

enable_soft_blockages 261
Tweaker™ Variables Version T-2022.03

however setting this variable to true will not ignore the previous setting

of "enable_partial_blockages" and "enable_soft_blockages" variables.

For example:

case 1: set enable_partial_blockages true

set ignore_def_placement_blockages true

=> Tweaker will treat "partial blockage" blocks as hard blockage.

=> Tweaker will ignore original "placement blockage" blocks and

treat them as free space.

case 2: set enable_soft_blockages true

set ignore_def_placement_blockages true

=> Tweaker will treat "soft blockage" blocks as hard blockage and

Tweaker will ignore original "placement blockage" blocks and

treat them as free space.

case 3: set enable_soft_blockages false

set ignore_def_placement_blockages true

=> Tweaker will treat "soft blockage" blocks as free space and

Tweaker will ignore original "placement blockage" blocks and

treat them as free space.

Example
set enable_soft_blockages true

enable_soft_blockages 262
Tweaker™ Variables Version T-2022.03

See also
enable_soft_blockages

enable_partial_blockage

enable_soft_blockages 263
Tweaker™ Variables Version T-2022.03

enable_timing_constraint_variation
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_timing_constraint_variation

Enables POCV mode for library timing constraints.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
After enabling this variable, Tweaker also considera the effect

of the ocv_sigma on library timing constraints, including library

setup time and library hold time.

This variable takes effect only if the enable_ocv_sigma variable

is also enabled.

enable_timing_constraint_variation 264
Tweaker™ Variables Version T-2022.03

EXAMPLES
tweaker_shell> set enable_ocv_sigma true

tweaker_shell> set enable_timing_constraint_variation true

tweaker_shell> set enable_timing_slew_variation true

tweaker_shell> set_timing_ocv_sigma 3.0

tweaker_shell> report_timing_ocv_sigma

SEE ALSO
set_timing_ocv_sigma (cmd)
report_timing_ocv_sigma (cmd)
enable_timing_constraint_variation (var)
enable_timing_slew_variation (var)

enable_timing_constraint_variation 265
Tweaker™ Variables Version T-2022.03

enable_timing_slew_variation
NAME
TYPE
DEFAULT
DESCRIPTION
EXAMPLES
SEE ALSO

NAME
enable_timing_slew_variation

Enables POCV mode for transition calculations.

TYPE
Boolean

DEFAULT
false

DESCRIPTION
After enabling this variable, Tweaker also considers the

effect of ocv_sigma on cell output transition calculations.

This variable takes effect only if the enable_ocv_sigma

variable is enabled.

enable_timing_slew_variation 266
Tweaker™ Variables Version T-2022.03

EXAMPLES
tweaker_shell> set enable_ocv_sigma true

tweaker_shell> set enable_timing_constraint_variation true

tweaker_shell> set enable_timing_slew_variation true

tweaker_shell> set_timing_ocv_sigma 3.0

tweaker_shell> report_timing_ocv_sigma

SEE ALSO
set_timing_ocv_sigma (cmd)
report_timing_ocv_sigma (cmd)
enable_timing_constraint_variation (var)
enable_timing_slew_variation (var)

enable_timing_slew_variation 267
Tweaker™ Variables Version T-2022.03

enable_via0_alignment
# Enables via0 alignment rule check during ECO.

Type
Boolean

Default
true

Description
This is on the fly control variable to enable or disable the honoring

of via0 alignment rule.

Example
set enable_via0_alignment true

See also
report_via0_alignment_rule (cmd)
report_via0_alignment_violation (cmd)
set_via0_alignment_rule (cmd)
disable_via0_rule_on_cell (var)
via0_alignment_check_cell_margin (var)

enable_via0_alignment 268
Tweaker™ Variables Version T-2022.03

enable_via0_alignment_in_specific_design
# Enable via0 alignment rule check only in specific design during ECO

Type
List

Default
auto

Description
When 'enable_via0_alignment' set to true, this variable is to specify which

design should honor the via0 alignment physical rule. By default all design

should honor via0 alignment physical rule.

Example
# Only "dsub" design will honor via0 alignment physical rule

set enable_via0_alignment true

set enable_via0_alignment_in_specific_design dsub

See also

enable_via0_alignment_in_specific_design 269
Tweaker™ Variables Version T-2022.03

[ VAR ] enable_via0_alignment

enable_via0_alignment_in_specific_design 270
Tweaker™ Variables Version T-2022.03

enable_vt_point_touch_rule
# Tweaker variable to enable the VT point touch rule.

Type
Boolean

Default
false

Description
For advanced process like 5nm, there could be a new physical placement rule

like vt point touch rule. Those rules are described at LEF files. Also, the

user can use command "set_vt_point_touch_rule" to create new rules.

This is the control variable to honor this rule or not.

By default, Tweaker will not follow this rule.

In contrary, by setting this variable to true, Tweaker will monitor the VT

Layer shapes during any ECO cell placement.

+------------+

| CELL1 |

| VT_group_1 |

+------------+------------+

enable_vt_point_touch_rule 271
Tweaker™ Variables Version T-2022.03

| CELL2 |

| VT_group_1 |

+------------+

The CELL1 and CELL2 violate the VT point touch rule.

Example
lefin .....

...

set enable_vt_point_touch_rule true

report_vt_point_touch_rule

repoty_vt_point_touch_violatioa

...

slkfix -setup -all

See also
set_vt_point_touch_rule (cmd)
report_vt_point_touch_rule (cmd)
report_vt_point_touch_violation (cmd)
report_physical_violation (cmd)

enable_vt_point_touch_rule 272
Tweaker™ Variables Version T-2022.03

error_out_code
# To specify error code number need to error out.

Type
string list

Default
empty

Description
For some general setting, even if the user defines the wrong variable

setting, Tweaker still support didn't error out and continue ECO process.

But if the user has any concern the error code, Tweaker can use this command

to force interrupt Tweaker ECO by specific error code.

Example
set error_out_code E13001

set slk_delay_insertion_buff_list test*

[ Warning ] E13001 : Buffer list for the delay insertion : no matched cell

[ Error ] Error out with code(E13001)

error_out_code 273
Tweaker™ Variables Version T-2022.03

See also
N/A

error_out_code 274
Tweaker™ Variables Version T-2022.03

flexible_vt_width_rule_extend_core_edge_length
# Enables or disables the ability to auto extend min-VT width rule with multiple

integer of unit sites.

Type
Boolean

Default
false

Description
Tweaker reads the VT-width definitions from LEF file if the variable

"lefin_cell_width_spacing_rule" is set to true.

In Tweaker, VT-width rule can be defined as any floating value. But in some

third party tools, the minimum width is one unit site. Rule must be defined

with multiple integer of unit sites. The rules might be different in Tweaker

and third party tool.

By enabling this variable, Tweaker can auto extend the min-VT rule to

multiple integer of unit sites. This variable can be switched on the fly.

To verify the VT-width, need to use command "report_min_vt_width_rule" and

specify the cell types.

flexible_vt_width_rule_extend_core_edge_length 275
Tweaker™ Variables Version T-2022.03

Example
tweaker_shell> set flexible_vt_width_rule_extend_core_edge_length true

tweaker_shell> report_min_vt_width_rules -cell BUFS0

Report min vt width rules.

Cell pattern: BUFS0

group width space cell

VT3_N_VT3_P 1.8000* 0.2700 BUFS0

Note: Variable flexible_vt_width_rule_extend_core_edge_length is enabled.

Min-VT width length is auto extended with multiple integer of unit

sites

See also
report_min_vt_width_rules (cmd)
lefin_cell_width_spacing_rule (var)

flexible_vt_width_rule_extend_core_edge_length 276
Tweaker™ Variables Version T-2022.03

flexible_vt_width_rule_geometry_level_filter
# Specifies the level for flexible vt width rule check.

Type
Integer

Default
9999

Description
Tweaker reads the vt width rule definitions from LEF file if the variable

"lefin_cell_width_spacing_rule" is set to true.

Since each VT layer has N and P-type definitions and it can be defined as

multiple blocks with the cell height and the ratio of N/P-type can be

different in each block.

By specifying this variable, Tweaker only checks the vt width rule on the

number of blocks counted from the left/right boundary of the cell.

Example
set lefin_cell_width_spacing_rule true

flexible_vt_width_rule_geometry_level_filter 277
Tweaker™ Variables Version T-2022.03

set flexible_vt_width_rule_geometry_level_filter 3

...

lefin $lef_file

See also
lefin_cell_width_spacing_rule (var)

flexible_vt_width_rule_geometry_level_filter 278
Tweaker™ Variables Version T-2022.03

forbidden_chain_attr_vio_chain_count
# Set the maximum chain number to be report in forbidden chain attribute

Type
float

Default
1000

Description
This variable can control the maximum forbidden chain number to be

report in command "get_forbidden_chain"

By default setting of this variable, Tweaker will report at most 1000

forbidden chain for "get_forbidden_chain"

Example
set forbidden_chain_attr_vio_chain_count 10000

set forbidden_chain_attr_vio_nworst 30

get_attribute [get_forbidden_chain *] chain_pin_collection

forbidden_chain_attr_vio_chain_count 279
Tweaker™ Variables Version T-2022.03

See also
get_forbidden_chain (cmd)

forbidden_chain_attr_vio_nworst

forbidden_chain_attr_vio_chain_count 280
Tweaker™ Variables Version T-2022.03

forbidden_chain_attr_vio_nworst
# Set the maximum nworst number to report forbidden chain attribute

Type
float

Default
1.0

Description
This variable can control the maximum nworst number to report the

forbidden chain for forbidden chain attribute command "get_forbidden_chain"

By default setting of this variable, Tweaker will use nworst 1 to trace

the forbidden chain violations for command "get_forbidden_chain"

Example
set forbidden_chain_attr_vio_nworst 30

set forbidden_chain_attr_vio_chain_count 10000

get_attribute [get_forbidden_chain *] chain_pin_collection

forbidden_chain_attr_vio_nworst 281
Tweaker™ Variables Version T-2022.03

See also
get_forbidden_chain (cmd)

forbidden_chain_attr_vio_chain_count

forbidden_chain_attr_vio_nworst 282
Tweaker™ Variables Version T-2022.03

force_keep_physical_cells
# Lists the certain physical cell to be not ignored during ECO operation.

Type
String

Default
Empty

Description
By default, only cell whose attribute "+SOURCE DIST" is clearly defined at

def will be recognized as physical cells. Other even looks like physical

cell but missing "+SOURCE DIST" will still be treated as regular cells and

we will check if its existing at netlist db.

By listing certain on this variable, users can force Tweaker not to keep

them as the physical cell candidates during the ECO synthesis.

Example
set force_keep_physical_cells { *IO_PAD* }

force_keep_physical_cells 283
Tweaker™ Variables Version T-2022.03

See also
def_physical_cells_to_be_ignored

def_physical_instances_to_be_ignored

keep_def_fixed_physical_cells

force_keep_physical_cells 284
Tweaker™ Variables Version T-2022.03

gate_array_filler_prefix
# Defines the gate array filler prefix name.

Type
String

Default
GA_DOD_

Description
This variable defines the prefix name for gate array fillers that are

inserted by Tweaker during metal ECO operations.

Example
set gate_array_filler_prefix GA_DOD_

See also
N/A

gate_array_filler_prefix 285
Tweaker™ Variables Version T-2022.03

gate_array_honor_blockages
# Enable the ability to honor or not-honor the placement blockages during the

gate-array resource searching.

Type
Boolean

Default
false

Description
By default, Tweaker will not honor the placement blockages during the gate-

array resource searching which means that Tweaker will still use the gate-

array-body even if it's originally located under any placement blockages.

Example
set gate_array_honor_blockages true

libin ...

lefin ...

verilogin ...

gate_array_honor_blockages 286
Tweaker™ Variables Version T-2022.03

defin ...

See also
vertical_pin_track_color_aware

vertical_pin_avoid_power_strap

gate_array_honor_blockages 287
Tweaker™ Variables Version T-2022.03

gui_title
# set GUI window title

Type
string

Default
false

Description
User can set the name of GUI title. The title name will be showing on all

the dialog window.

Example
set gui_title cpu_block

See also
N/A

gui_title 288
Tweaker™ Variables Version T-2022.03

high_priority_for_dont_use_attribute
# Enables or disables the higher priority of dont_use command over the priority

of insertion lists.

Type
Boolean

Default
false

Description
By default, the priority of insertion lists (repeater insertion lists, delay

insertion lists, and dummy load insertion list) is set to be higher than

dont_use attribute (by the "set_dont_use_cell" command). During this

setting, if a cell is listed in both dont_use command and insertion lists,

Tweaker can still use this cell during any insertion operations.

In contrary, if this variable is set to true, the dont_use attribute will

have a higher priority over the insertion lists. And hence all of the cells

that are listed in the dont_use command are not allowed be used during the

insertion operations.

high_priority_for_dont_use_attribute 289
Tweaker™ Variables Version T-2022.03

Example
set high_priority_for_dont_use_attribute true

See also
set_dont_use_cell (cmd)

slk_delay_insertion_buff_list

slk_delay_insertion_inverter_list

slk_delay_insertion_high_drive_buff_list

slk_dummy_load_cell_list

slk_repeater_insertion_buff_list

slk_repeater_insertion_inverter_list

slk_repeater_insertion_constant_cell_list

high_priority_for_dont_use_attribute 290
Tweaker™ Variables Version T-2022.03

horizontal_cell_edge_spacing_rule_filter
# Ignore horizontal cell edge spacing rule check if the spacing is lesser than

or equal to specified value.

Type
Float

Default
0.0

Description
This variable is used for ignoring rule check for horizontal abutment rule

if the spacing is lesser than or equal to the given value.

Example
set enable_cell_edge_spacing_rule true

set horizontal_cell_edge_spacing_rule_filter 0.01

See also
set_lib_cell_spacing_label (cmd)
set_spacing_label_rule (cmd)

horizontal_cell_edge_spacing_rule_filter 291
Tweaker™ Variables Version T-2022.03

report_cell_edge_spacing_rules (cmd)
report_cell_edge_spacing_rules (cmd)
enable_cell_edge_spacing_rule (var)
lefin_cell_width_spacing_rule (var)
vertical_cell_edge_spacing_rule_filter (var)

horizontal_cell_edge_spacing_rule_filter 292
Tweaker™ Variables Version T-2022.03

ignore_def_placement_blockages
# Enables or disables the ability to ignore DEF-defined placement blockage.

Type
Boolean

Default
false

Description
By default, Tweaker will honor the DEF-defined placement blockages and avoid

any ECO operation on those block region.

In contrary, by setting this variable to true, users can force Tweaker to

ignore any placement blockage and perform any ECO operation on those block

region. During this setting, there might be some overlap cells after the ECO

operation. And hence, Tweaker offers the ability to report the overlapped

cells by executing "report_overlapped_cells -file filename -eco_cells_only".

Notice that although by setting either "enable_partial_blockages" or

"enable_soft_blockages" is set to true will also treat the those type of

blockages as hard blockage (which are not allowed to be modified),

however setting this variable to true will not ignore the previous setting

ignore_def_placement_blockages 293
Tweaker™ Variables Version T-2022.03

of "enable_partial_blockages" and "enable_soft_blockages" variables.

For example:

case 1: set enable_partial_blockages true

set ignore_def_placement_blockages true

=> Tweaker will treat "partial blockage" blocks as hard blockage.

=> Tweaker will ignore original "placement blockage" blocks and

treat them as free space.

case 2: set enable_soft_blockages true

set ignore_def_placement_blockages true

=> Tweaker will treat "soft blockage" blocks as hard blockage and

Tweaker will ignore original "placement blockage" blocks and

treat them as free space.

case 3: set enable_soft_blockages false

set ignore_def_placement_blockages true

=> Tweaker will treat "soft blockage" blocks as free space and

Tweaker will ignore original "placement blockage" blocks and

treat them as free space.

Example
set ignore_def_placement_blockages true

ignore_def_placement_blockages 294
Tweaker™ Variables Version T-2022.03

See also
report_overlapped_cells

enable_soft_blockages

enable_partial_blockages

ignore_def_placement_blockages 295
Tweaker™ Variables Version T-2022.03

ignore_eco_attr_while_reading_partial_def
# Enables or disables the ability to treat the cells of reloaded Tweaker-

generated partial DEF files as ECO cells.

Type
Boolean

Default
false

Description
By default, if a partial DEF file that are generated from Tweaker is

reloaded into Tweaker, Tweaker will treat those cells as ECO cells.

In contrary, if this variable is set to true, those cell will not be treated

as ECO cells.

Example
set ignore_eco_attr_while_reading_partial_def true

See also

ignore_eco_attr_while_reading_partial_def 296
Tweaker™ Variables Version T-2022.03

N/A

ignore_eco_attr_while_reading_partial_def 297
Tweaker™ Variables Version T-2022.03

ignore_symmetry_check
# Enables or disables the symmetry rule checking.

Type
Boolean

Default
false

Description
By default, Tweaker will check the symmetry rule which are defined by LEF

or automatically configured by cell's placement.

If this variable is set to true, Tweaker will skip any checking symmetry

rules during performing the Eco action.

Example
set ignore_symmetry_check false

See also
auto_detect_symmetry_by_def

ignore_symmetry_check 298
Tweaker™ Variables Version T-2022.03

lef_default_symmetry

ignore_symmetry_check 299
Tweaker™ Variables Version T-2022.03

ilm_list_for_eco_tcl
# Tweaker variable to let user specify the design list for ILM model to be applied in ECO tcl.

Type
String

Default
empty

Description
If ECO tcl is generated within design which may be future turned into

ILM model in STA, then Tweaker allows user to specify those design list

in this variable such that when ECO tcl is generated those design's R2R

logic related TCLs will be phased out.

Example
defin ... SUB1 SUB2 SUB3 TOP

set ilm_list_for_eco_tcl SUB1 SUB2

...ECO...

ecotclout -pt ...

ilm_list_for_eco_tcl 300
Tweaker™ Variables Version T-2022.03

See also
N/A

ilm_list_for_eco_tcl 301
Tweaker™ Variables Version T-2022.03

innovus_eco_tcl_half_unit_site_cell_placement_offset
# Specify an offset of unit site for cell placement in Innovus ecotcl

Type
String

Default
half_site

Description
Generally, a cell's location is described by its bottom-left xy coordinate. However,

inbound cell's bottom-left point is not on the row. If the location is pointed to this

bottom-left point in Innovus ecotcl, it will have an error. Therefore, Tweaker provides

this variable to describe this cell's location by shifting an offset from bottom-left point.

Example
set innovus_eco_tcl_half_unit_site_cell_placement_offset haft_site

See also
N/A

innovus_eco_tcl_half_unit_site_cell_placement_offset 302
Tweaker™ Variables Version T-2022.03

innovus_eco_tcl_half_unit_site_cell_placement_offset 303
Tweaker™ Variables Version T-2022.03

innovus_eco_tcl_in_bound_cell_placement_offset
# To define the Innovus eco tcl out placement offset for inbound cell.

Type
String

Default
half_row

Description
By default, Tweaker will output the left bottom placement location for the

inbound cell.

However, Innovus need to give the original on-row placement location.

Consequently, user can use this attribute to define the cell output

placement location shift half row height for Innovus. If not, you can define

this variable as 0.

Example
...

set innovus_eco_tcl_in_bound_cell_placement_offset

innovus_eco_tcl_in_bound_cell_placement_offset 304
Tweaker™ Variables Version T-2022.03

...

slkfix -hold -all

...

ecotclout -innovus ./ecoout/innovus.tcl

See also
ecotclout -innovus

innovus_eco_tcl_in_bound_cell_placement_offset 305
Tweaker™ Variables Version T-2022.03

ir_eco_rhsc_aggressor_view_name
# To specify RHSC aggressor view name for IR ECO.

Type
String

Default
empty

Description
By setting this variable to get the instance-based IR drop

aggressing value and corresponding aggressor list from RHSC.

Example
set ir_eco_rhsc_aggressor_view_name aggr

See also
ir_eco_rhsc_analysis_view_name

ir_eco_rhsc_voltage_impact_view_name

ir_eco_rhsc_aggressor_view_name 306
Tweaker™ Variables Version T-2022.03

ir_eco_rhsc_analysis_view_name
# To specify RHSC analysis view name for IR ECO.

Type
String

Default
empty

Description
By setting this variable to define basic RHSC IR drop analysis

view for IR drop predicition.

Example
set ir_eco_rhsc_analysis_view_name av

See also
ir_eco_rhsc_voltage_impact_view_name

ir_eco_rhsc_aggressor_view_name

ir_eco_rhsc_analysis_view_name 307
Tweaker™ Variables Version T-2022.03

ir_eco_rhsc_restore_db_path
# To specify RHSC restore db path for IR ECO

Type
String

Default
empty

Description
By setting this variable to define restore RHSC db path for

IR ECO prediction IR drop and corresponding aggressor information.

Example
set ir_eco_rhsc_restore_db_path ./rhsc_db

See also
ir_eco_rhsc_tool_path

ir_eco_rhsc_work_dir_path

ir_eco_rhsc_timing_corner

ir_eco_rhsc_restore_db_path 308
Tweaker™ Variables Version T-2022.03

ir_eco_rhsc_restore_db_path 309
Tweaker™ Variables Version T-2022.03

ir_eco_rhsc_timing_corner
# To specify IR ECO prediction corresponding timing corner.

Type
String

Default
empty

Description
By setting this variable to define launch RHSC corresponding

timing corner for IR drop prediction.

Example
set ir_eco_rhsc_timing_corner ss_cworst

See also
ir_eco_rhsc_restore_db_path

ir_eco_rhsc_tool_path

ir_eco_rhsc_work_dir_path

ir_eco_rhsc_timing_corner 310
Tweaker™ Variables Version T-2022.03

ir_eco_rhsc_timing_corner 311
Tweaker™ Variables Version T-2022.03

ir_eco_rhsc_tool_path
# To specify launch RHSC binary path

Type
String

Default
empty

Description
By setting this variable to define launch RHSC binary file

path for IR ECO prediction.

Example
set ir_eco_rhsc_tool_path /tool/rhsc/2021_R1.1/linux_x86_64_rhel7/bin

See also
ir_eco_rhsc_restore_db_path

ir_eco_rhsc_work_dir_path

ir_eco_rhsc_timing_corner

ir_eco_rhsc_tool_path 312
Tweaker™ Variables Version T-2022.03

ir_eco_rhsc_tool_path 313
Tweaker™ Variables Version T-2022.03

ir_eco_rhsc_voltage_impact_view_name
# To specify RHSC voltage impact view name for IR ECO.

Type
String

Default
empty

Description
By setting this variable to get ECO the instance-based IR drop

difference prediction value from RHSC.

Example
set ir_eco_rhsc_voltage_impact_view_name vim

See also
ir_eco_rhsc_analysis_view_name

ir_eco_rhsc_aggressor_view_name

ir_eco_rhsc_voltage_impact_view_name 314
Tweaker™ Variables Version T-2022.03

ir_eco_rhsc_work_dir_path
# To specify launch RHSC working directory

Type
String

Default
empty

Description
By setting this variable to define launch RHSC working directory

for IR drop prediction communication result.

Example
set ir_eco_rhsc_work_dir_path ./test

See also
ir_eco_rhsc_restore_db_path

ir_eco_rhsc_tool_path

ir_eco_rhsc_timing_corner

ir_eco_rhsc_work_dir_path 315
Tweaker™ Variables Version T-2022.03

ir_eco_rhsc_work_dir_path 316
Tweaker™ Variables Version T-2022.03

ir_eco_update_eco_cell_only
# IR ECO only update ECO cell IR drop difference.

Type
Boolean

Default
true

Description
In general, when Tweaker sizing cell, it will impact ECO cell and

corresponding driver/sink cell IR difference.

If you define this variable false, we will update ECO cell, driver

and sink cell. It will higher performance overhead.

By default, Tweaker recommend to only update ECO cell corresponding

IR drop have best performance and QoR balance to define this variable

false.

Example
set ir_eco_update_eco_cell_only true

ir_eco_update_eco_cell_only 317
Tweaker™ Variables Version T-2022.03

See also

ir_eco_update_eco_cell_only 318
Tweaker™ Variables Version T-2022.03

keep_def_cover_physical_cells
# To keep or drop physical cells of the attribute of "COVER" from DEF.

Type
Boolean

Default
true

Description
An instance's placement status can be described "COVER" to in place of

"PLACED" in DEF. In Tweaker, the cover status' physical cells occupied the

usable spaces if the variable to be set true. Otherwise, the cover status'

physical cells will be dropped and these areas will be treated as free space

(usable space).

In DEF:

COMPONENTS

...

- io0_UIO_GPI1des_h_ttcInst476 DCVR

+ COVER ( 852120 1228320 ) N

+ SOURCE DIST ;

keep_def_cover_physical_cells 319
Tweaker™ Variables Version T-2022.03

...

END COMPONENTS

Example
# Example 1. drop the cover physical cell from DEF

...

set keep_def_cover_physical_cells false

defin

# Example 2. keep the cover physical cell from DEF

...

set keep_def_cover_physical_cells true

defin

# Example 3. keep the cover physical cell from DEF

# and treated as free spaces(usable space)

...

set keep_def_cover_physical_cells true ; # read cover physical cells into

# Tweaker

defin

...

set keep_def_cover_physical_cells false ; # treat cover physical cells as

# free spaces

slkfix ...

keep_def_cover_physical_cells 320
Tweaker™ Variables Version T-2022.03

See also
defin (cmd)
def_physical_cells_to_be_ignored (var)

keep_def_cover_physical_cells 321
Tweaker™ Variables Version T-2022.03

keep_def_fixed_physical_cells
# Preserves physical cells with "FIXED" attribute in DEF.

Type
Boolean

Default
true

Description
If this variable is set to false, Tweaker will honor the user-specified cell

types that are defined on the "def_physical_cells_to_be_ignored" variable

and treat those physical cell as free spaces even if they have "FIXED"

attribute in the DEF file.

In contrary, if this variable is set to default true, Tweaker will not touch

any of physical cell types with "FIXED" attribute regardless of the cell

types listed on the "def_physical_cells_to_be_ignored". During this setting,

only those without the "FIXED" attribute will be ignored and treated as free

spaces.

keep_def_fixed_physical_cells 322
Tweaker™ Variables Version T-2022.03

Example
set def_physical_cells_to_be_ignored { *FILL* *DCAP* }

set keep_def_fixed_physical_cells true

See also
def_physical_cells_to_be_ignored

def_physical_instances_to_be_ignored

keep_def_fixed_physical_cells 323
Tweaker™ Variables Version T-2022.03

keep_netlist_in_memory
# Enables or disables the ability of Tweaker to memorize all verilog modules.

Type
Boolean

Default
true

Description
By default, Tweaker will memorize all of the modules to avoid any

garbage-out during the verilogout if the file is modified during the ECO

operations.

In contrary, if this variable is set to false, Tweaker will memorize the

all modified verilog modules only.

Example
set keep_netlist_in_memory false

See also

keep_netlist_in_memory 324
Tweaker™ Variables Version T-2022.03

N/A

keep_netlist_in_memory 325
Tweaker™ Variables Version T-2022.03

keep_used_spare_cells_in_netlist
# Enables or disables the ability to keep the original name of utilized spare

cells within the netlist.

Type
Boolean

Default
false

Description
This is Tweaker Metal ECO related variable.

By default, Tweaker will rename the original instances name of the utilized

spare cells and remove them from the netlist.

In contrary, if this variable is set to true, Tweaker will keep the original

name within the netlist while removing its connectivity and physical

location in DEF file(unplaced).

Example
set keep_used_spare_cells_in_netlist true

keep_used_spare_cells_in_netlist 326
Tweaker™ Variables Version T-2022.03

See also
N/A

keep_used_spare_cells_in_netlist 327
Tweaker™ Variables Version T-2022.03

leakage_power_unit
# Change power unit from Tweaker leakage power report.

Type
String [pw|nw|uw|mw]

Default
mw

Description
This variable holds the leakage power unit (pw|nw|uw|mw) used inside Tweaker

GUI, variables, and commands. If power unit is changed, each leakage power

variable whose unit is power unit will also need to be changed accordingly.

Hence this variable is recommended to be changed if only necessary.

If the power unit of the reports is different from the one defined in this

variable, users are strongly recommended to apply it to this variable.

Example
set leakage_power_unit pw

...

leakage_power_unit 328
Tweaker™ Variables Version T-2022.03

slkdc-check_slack_consistency

See also
dynamic_power_unit

leakage_power_unit 329
Tweaker™ Variables Version T-2022.03

lef_default_symmetry
# Specify the default SYMMETRY value for cell which is missing those information

from LEF file

Type
String

Default
empty

Description
By default, Tweaker will honor the orientations defined in LEF file.

If LEF file is missing this "SYMMETRY" information, set the default

value by using this variable. The acceptable values are X, Y, and R90.

When LEF is missing SYMMETRY information, and this variable is set to

an empty value, the legal candidate is N (North).

Example
set lef_default_symmetry X Y

lef_default_symmetry 330
Tweaker™ Variables Version T-2022.03

See also
auto_detect_symmetry_by_def

ignore_symmetry_check

lef_default_symmetry 331
Tweaker™ Variables Version T-2022.03

lef_layers_to_be_ignored
# Enables or disables Tweaker to ignore the layers that are defined in the LEF

files.

Type
String

Default
empty

Description
Users are allowed to specified the layers to be ignored during parsing LEF

stage.

This ability is used when there are some special layers defined in LEF but

not used in Tweaker.

By setting them on this variable, Tweaker will ignore them during parsing

LEF.

Example
set lef_layers_to_be_ignored { METALX ...}

lef_layers_to_be_ignored 332
Tweaker™ Variables Version T-2022.03

See also

lef_layers_to_be_ignored 333
Tweaker™ Variables Version T-2022.03

lefin_cell_width_spacing_rule
# Tweaker variable to allow reading TPO rules or vt spacing rules from lef file.

Type
Boolean

Default
false

Description
In advanced process like 20nm or below there are new placement rules like

TPO rules or vt width/spacing rules. To read-in the TPO rules or vt spacing

rules from lef files provided by foundry or library vendors user can enable

this variable to achieve it.

Example
set lefin_cell_width_spacing_rule true

lefin ...

See also

lefin_cell_width_spacing_rule 334
Tweaker™ Variables Version T-2022.03

set_min_vt_width (cmd)

[CMD[ set_tpo_width

lefin_cell_width_spacing_rule 335
Tweaker™ Variables Version T-2022.03

libin_read_internal_power
# Enables the ability of reading internal power information while doing libin cmd.

Type
Boolean

Default
false

Description
By default, Tweaker will skip the internal power table and information

from .lib file. By setting this variable to true, users can now read

in the internal power information from library.

Example
set libin_read_internal_power true ## before libin

libin -cell_type std -timing_type worst -name wc "./tsmc90_core_wc.lib"

libin -cell_type std -timing_type worst -name ml "./tsmc90_core_wcl.lib"

See also

libin_read_internal_power 336
Tweaker™ Variables Version T-2022.03

libin (cmd)

libin_read_internal_power 337
Tweaker™ Variables Version T-2022.03

libin_with_voltage_temperature_information
# To Identify libin group name have voltage and temperature information.

Type
Boolean

Default
false

Description
By default, Tweaker will honor the libin naming option for the library

group name.

However, if you define this variable, Tweaker will auto honor the library

voltage and temperature information in the library group name. Then, you can

use the corresponding voltage option for the "set_group" command.

Example
set libin_with_voltage_temperature_information true

libin -timing_type best worst -name ss ./std_ss_1.0.lib

libin -timing_type best worst -name ss ./std_ss_0.9.lib

libin_with_voltage_temperature_information 338
Tweaker™ Variables Version T-2022.03

....

begin_corner ss_1.0v

set_group -lib -name ss -voltage 1.0

...

end_corner ss_1.0v

....

begin_corner ss_0.9v

set_group -lib -name ss -voltage 0.9

...

end_corner ss_0.9v

...

See also
libin

set_group

libin_with_voltage_temperature_information 339
Tweaker™ Variables Version T-2022.03

library_cells_to_be_designs
# Makes Tweaker treat instances of the specified .lib cells as designs.

Type
String

Default
empty

Description
Tweaker treats all instances of any .lib cells as leaf cells, even if they

are in fact hard-macros' .lib instances. Therefore paths going from / to

these .lib instances are regarded as non-interface paths. If users want

Tweaker to treat these paths as interface paths ( paths that go through

design boundaries ), users can do that by specifying those .lib cells' names

in this variable.

This can help Tweaker in distinguishing between interface paths and non-

interface paths with [CMD] slackin or [CMD] slkfix, along with their options

[OPT] -ff or [OPT] -inv_if .

library_cells_to_be_designs 340
Tweaker™ Variables Version T-2022.03

Example
If HM1 and HM2 are represented in Tweaker by their corresponding .lib files,

paths that go from / to them are regarded as non-interface paths by default.

Therefore this command will discard such paths while parsing the given

violation report :

tweaker_shell> slackin -if setup_to_tweaker.rpt.gz

And this command will not fix such paths either :

tweaker_shell> slkfix -if -setup

To make Tweaker treat such paths as interface paths while parsing the

violation report :

tweaker_shell> set library_cells_to_be_designs { HM1 HM2 }

tweaker_shell> slackin -if setup_to_tweaker.rpt.gz

Or to make Tweaker fix such paths as if they are interface paths :

tweaker_shell> set library_cells_to_be_designs { HM1 HM2 }

tweaker_shell> slkfix -if -setup

See also
slackin (cmd)
slkfix (cmd)

library_cells_to_be_designs 341
Tweaker™ Variables Version T-2022.03

library_cells_to_be_ignored
# Enables or disables Tweaker to ignore the cell's attributes that are listed in the LIB files.

Type
String

Default
empty

Description
Users are allowed to specified the cells (macros) to be ignored even if they

are defined in the library cells (LIB or LEF) by listing them into this

variable.

This ability is mostly used when the modules (normally sub-designs of a

hierarchical design) are defined in both library (usually LEF) and netlist.

By setting them on this variable, Tweaker will read cell's definitions from

the imported netlists instead of the imported LIBs.

Example
set library_cells_to_be_ignored { sub_design1 sub_design2 sub_design3 ...}

library_cells_to_be_ignored 342
Tweaker™ Variables Version T-2022.03

See also
verilog_modules_to_be_ignored

library_cells_to_be_ignored 343
Tweaker™ Variables Version T-2022.03

log_file_name
# Defines a dedicated name for log, nlcmd, cmd, and error files after launching Tweaker.

Type
String

Default
empty

Description
This variable provides the ability to assign a dedicated name for log file

after launching Tweaker. However, not only the log file but also nlcmd, cmd,

error files will be renamed.

Users are strongly recommended to set this variable on the start of the tcl

script.

Example
set log_file_name fix_setup_0430

A message "log file changed : fix_setup_0430.log" will be prompted.

log_file_name 344
Tweaker™ Variables Version T-2022.03

See also
N/A

log_file_name 345
Tweaker™ Variables Version T-2022.03

log_period
# Defines the period of log contents update.

Type
Integer

Default
1000

Description
This variable defines the period for Tweaker to update the log contents.

By default, Tweaker will update the log contents every 1000ms.

Unit type of this variable is ms. (10^-6 milliseconds)

Example
set log_period 2000

See also
log_file_name

log_period 346
Tweaker™ Variables Version T-2022.03

max_file_in_error
# Defines the maximum repeating error during file-in.

Type
Integer

Default
50

Description
This variable defines the maximum repeating error message that are allowed

to be displayed on console and log file during the file-in progress.

Example
set max_file_in_error 100

See also
N/A

max_file_in_error 347
Tweaker™ Variables Version T-2022.03

max_sdc_error_msg
# Defines the maximum repeating error while parsing SDC constraint files.

Type
Integer

Default
10

Description
This variable defines the maximum repeating error message that are allowed

to be displayed on console and log file while parsing the SDC constraint

file (sdcin).

The maximum count for repeating error messages output in log or console for

user reference when reading sdc constraint file (sdcin).

Example
set max_sdc_error_msg 20

See also

max_sdc_error_msg 348
Tweaker™ Variables Version T-2022.03

N/A

max_sdc_error_msg 349
Tweaker™ Variables Version T-2022.03

merge_nlcmd_skip_inst_overlap
# Skips ECOs which would otherwise cause physical overlaps while sourcing nlcmd.

Type
Boolean

Default
false

Description
By default, while sourcing an nlcmd file with "source" command with option

"-skip_conflict" option, Tweaker skips an ECO action if it would otherwise

cause logical connectivity conflicts with any previously sourced ECOs.

Examples of such cases can be :

- Inserting a cell on a previously touched net in the same Tweaker run.

- Deleting/bypassing a cell connected to a previously touched net in the

same Tweaker run.

- Connecting/disconnecting a previously touched net in the same Tweaker run.

By enabling this variable, Tweaker would also take into consideration the

physical conflicts such as ECO cell overlapping with any other cell or with

any placement blockage. If an ECO action would cause such physical

merge_nlcmd_skip_inst_overlap 350
Tweaker™ Variables Version T-2022.03

conflicts, Tweaker skips it as well.

Example
tweaker_shell> set merge_nlcmd_skip_inst_overlap true

tweaker_shell> slackin -nlcmd tweaker.nlcmd

tweaker_shell> source tweaker.nlcmd -skip_conflict

#conflict# overlap

#conflict#place {io0_UIO_SA0des_h_ttcInst208} 845.82 1202.72 0 0 PLACED

[ slkdb ] nlcmd skip conflict (0)

# moving: accept(0) drop(1)

See also
slackin (cmd)
source (cmd)

merge_nlcmd_skip_inst_overlap 351
Tweaker™ Variables Version T-2022.03

merge_nlcmd_skip_physical_conflict
# Enables the ability to ignore physical conflict while merging multiple nlcmds

Type
Boolean

Default
false

Description
By default, while sourcing an nlcmd file with "source" command with

"-skip_conflict" options, Tweaker skips an ECO action if it would otherwise

cause physical conflicts with any previously sourced ECOs. Tweaker will not

take the physical conflicts into consideration, such as ECO cell overlapping

with any other cell or with any placement blockage.

By setting this variable to true, Tweaker will skip such physical conflict

while during the ECO action.

Example
tweaker_shell> set merge_nlcmd_skip_physical_conflict true

merge_nlcmd_skip_physical_conflict 352
Tweaker™ Variables Version T-2022.03

tweaker_shell> slackin -nlcmd tweaker.nlcmd

tweaker_shell> source tweaker.nlcmd -skip_conflict

#conflict# overlap

#conflict#place {io0_UIO_SA0des_h_ttcInst208} 845.82 1202.72 0 0 PLACED

[ slkdb ] nlcmd skip conflict (0) # moving: accept(0) drop(1)

See also
merge_nlcmd_skip_inst_overlap

merge_nlcmd_skip_physical_conflict 353
Tweaker™ Variables Version T-2022.03

merge_nlcmd_skip_sizing_conflict
# Enables the ability to skip sizing conflict while merging multiple nlcmds

Type
Boolean

Default
false

Description
By default, while sourcing a nlcmd file by "source" command with

"-skip_conflict" option, Tweaker follows all the sizing steps in the nlcmd

file without any check. When this variable is set to true, Tweaker skips

sizing action if the original cell type recorded in nlcmd is different with

the current cell type in current Tweaker db.

This variable only works when sourcing nlcmd file with the option

"-skip_conflict".

Example
tweaker_shell> set merge_nlcmd_skip_sizing_conflict true

merge_nlcmd_skip_sizing_conflict 354
Tweaker™ Variables Version T-2022.03

tweaker_shell> source tweaker.nlcmd -skip_conflict

[ slkdb ] nlcmd skip conflict (1)

#conflict# original master mismatch

#conflict#rep -master {rfunsm U223 -n DOR2S0}

#conflict#place {main0/MACMod/mac0/rfun1/rfunsm1/U223} 2367.72 921.12 0 0 PLACED

[ slkdb ] nlcmd skip conflict (0)

# sizing: accept(0) drop(1)

See also
merge_nlcmd_skip_inst_overlap (var)
merge_nlcmd_skip_physical_conflict (var)
source (cmd)

merge_nlcmd_skip_sizing_conflict 355
Tweaker™ Variables Version T-2022.03

metal_eco_mode
# Enables or disables Tweaker Metal ECO.

Type
Boolean

Default
false

Description
This is Tweaker Metal ECO related variable.

This variable is the main switch to enable Tweaker Metal ECO. During this

mode, all netlist update action that are related to relocating action are

forbidden. Moreover, only the existing spare cells are allowed to be

utilized as ECO candidates resources.

Example
set metal_eco_mode true

See also

metal_eco_mode 356
Tweaker™ Variables Version T-2022.03

N/A

metal_eco_mode 357
Tweaker™ Variables Version T-2022.03

metal_layer_blockage_as_placement_blockage
# Enables or disables the ability of Tweaker to threat metal blockage as hard blockage.

Type
Boolean

Default
false

Description
This is on the fly control variable to enable or disable the ability of

treating metal blockage as fee space.

By default, Tweaker will treat metal blockages as free space during any

ECO operation. Tweaker only honors placement blockage and no ECO cell can

be placed on those block region.

In contrary, user can specify metal layer to this variable and Tweaker

will treat metal blockage as hard blockages and avoid any ECO operation

on those regions.

Example

metal_layer_blockage_as_placement_blockage 358
Tweaker™ Variables Version T-2022.03

### Specify metal layer name

set metal_layer_blockage_as_placement_blockage METAL2 METAL3

### Provide metal layer name by using command to get all metal layers

set metal_layer_blockage_as_placement_blockage [get_metal_layer]

See also
enable_soft_blockages (var)
enable_partial_blockage (var)
enable_macro_halo_blockages (var)
enable_no_filler1_spacing_rule_with_placement_blockage (var)
gate_array_honor_blockages (var)

metal_layer_blockage_as_placement_blockage 359
Tweaker™ Variables Version T-2022.03

metal_layer_for_std_cell_power_ground
# Specifies the metal layer name to configure power/ground

Type
[ String | auto ]

Default
empty

Description
If Tweaker can't configure correct metal layer of power/ground, specifies

the metal layer name of power/ground to this variable.

Example
set metal_layer_for_std_cell_power_ground Metal1

set metal_layer_for_std_cell_power_ground [lindex [get_routing_layer] 0]

See also
N/A

metal_layer_for_std_cell_power_ground 360
Tweaker™ Variables Version T-2022.03

min_required_def_version
# Defines the minimum version requirement of the imported DEF files.

Type
Float

Default
empty

Description
This variable defines the minimum version requirement for the imported DEF

files.

Tweaker will output an error message for the DEF files that is older than

the value defined in this variable.

Example
set min_required_def_version 5.6

defin ...

See also

min_required_def_version 361
Tweaker™ Variables Version T-2022.03

N/A

min_required_def_version 362
Tweaker™ Variables Version T-2022.03

multi_machine_client_available_cpu_number
# Specifies the available cpu number executed in client machine for multi-

machine mode.

Type
Integer

Default
4

Description
This variable is to specify the available cpu number which are executed

parallel in each client machine.

This variable should be specified before "slkdc -check_slack_consistency".

Example
set enable_multi_machine_mode true

set multi_machine_client_number 10

set multi_machine_client_available_cpu_number 4

set multi_machine_submit_job_prefix "bsub -n 8 -R'span[hosts=1]' -Is "

multi_machine_client_available_cpu_number 363
Tweaker™ Variables Version T-2022.03

...

slkdc -check_slack_consistency

See also
enable_multi_machine_mode (var)
multi_machine_client_number (var)
multi_machine_submit_job_prefix (var)
multi_machine_submit_job_postfix (var)
multi_machine_time_limit (var)

multi_machine_client_available_cpu_number 364
Tweaker™ Variables Version T-2022.03

multi_machine_client_list
# To Specify the client machine name for multi-machine submit jobs.

Type
string

Default
empty

Description
This variable is to specify the client machine name for multi-machine submit

client jobs. Then, you can add "$machine" keyword to submit client jobs to

different client machine by rsh or anothers submit jobs command. Finally,

the multi_machine_client_number should be exactly same as your client list

count.

set multi_machine_client_number 2

set multi_machine_client_list server1 server2

set multi_machine_submit_job_prefix {rsh $machine;}

This variable should be specified before "slkdc -check_slack_consistency".

multi_machine_client_list 365
Tweaker™ Variables Version T-2022.03

Example
set enable_multi_machine_mode true

set multi_machine_client_available_cpu_number 4

set mulit_machine_client_number 2

set multi_machine_client_list linux102 linux103

set multi_machine_submit_job_prefix {rsh $machine;}

...

slkdc -check_slack_consistency

See also
enable_multi_machine_mode

multi_machine_client_available_cpu_number

multi_machine_client_number

multi_machine_submit_job_prefix

multi_machine_submit_job_postfix

multi_machine_time_limit

multi_machine_client_list 366
Tweaker™ Variables Version T-2022.03

multi_machine_client_number
# Specifies the number of client machine for multi-machine mode.

Type
Integer

Default
10

Description
This variable is to specify the number of client machine when multi-machine

mode is enabled.

This variable should be specified before "slkdc -check_slack_consistency".

Example
set enable_multi_machine_mode true

set multi_machine_client_number 10

set multi_machine_client_available_cpu_number 4

set multi_machine_submit_job_prefix "bsub -n 8 -R'span[hosts=1]' -Is "

...

multi_machine_client_number 367
Tweaker™ Variables Version T-2022.03

slkdc -check_slack_consistency

See also
enable_multi_machine_mode (var)
multi_machine_client_available_cpu_number (var)
multi_machine_submit_job_prefix (var)
multi_machine_submit_job_postfix (var)
multi_machine_time_limit (var)

multi_machine_client_number 368
Tweaker™ Variables Version T-2022.03

multi_machine_submit_job_postfix
# Specifies the postfix when submitting job to client machine.

Type
String

Default
empty

Description
This variable is to specify the postfix when server machine submits job

to client machine.

This variable should be specified before "slkdc -check_slack_consistency".

Example
set enable_multi_machine_mode true

set multi_machine_client_number 10

set multi_machine_client_available_cpu_number 4

set multi_machine_submit_job_prefix "bsub -n 8 -R'span[hosts=1]' -Is "

set multi_machine_submit_job_prefix "-gdb "

multi_machine_submit_job_postfix 369
Tweaker™ Variables Version T-2022.03

...

slkdc -check_slack_consistency

See also
enable_multi_machine_mode (var)
multi_machine_client_number (var)
multi_machine_client_available_cpu_number (var)
multi_machine_submit_job_prefix (var)
multi_machine_time_limit (var)

multi_machine_submit_job_postfix 370
Tweaker™ Variables Version T-2022.03

multi_machine_submit_job_prefix
# Specifies the prefix when submitting job to client machine.

Type
String

Default
empty

Description
This variable is to specify the prefix which is used for specifying the

command of job submition when server machine submits job to client machine.

This variable should be specified before "slkdc -check_slack_consistency".

Example
set enable_multi_machine_mode true

set multi_machine_client_number 10

set multi_machine_client_available_cpu_number 4

set multi_machine_submit_job_prefix "bsub -n 8 -R'span[hosts=1]' -Is "

set multi_machine_submit_job_prefix "-gdb "

multi_machine_submit_job_prefix 371
Tweaker™ Variables Version T-2022.03

...

slkdc -check_slack_consistency

See also
enable_multi_machine_mode (var)
multi_machine_client_number (var)
multi_machine_client_available_cpu_number (var)
multi_machine_submit_job_postfix (var)
multi_machine_time_limit (var)

multi_machine_submit_job_prefix 372
Tweaker™ Variables Version T-2022.03

multi_machine_time_limit
# Specifies the timing limit for client job.

Type
Integer

Default
30

Description
This variable is to specify the maximum time the server machine will be

waited for the client job finished after submitting job.

If the client job is not finished, the main Tweaker will continue the

run and skip reading the timing information which should be read by the

client machine.

The time unit for this variable is minute.

This variable should be specified before "slkdc -check_slack_consistency".

Example
set enable_multi_machine_mode true

multi_machine_time_limit 373
Tweaker™ Variables Version T-2022.03

set multi_machine_client_number 10

set multi_machine_client_available_cpu_number 4

set multi_machine_submit_job_prefix "bsub -n 8 -R'span[hosts=1]' -Is "

set multi_machine_time_limit 60

...

slkdc -check_slack_consistency

See also
enable_multi_machine_mode (var)
multi_machine_client_number (var)
multi_machine_client_available_cpu_number (var)
multi_machine_submit_job_prefix (var)
multi_machine_submit_job_postfix (var)

multi_machine_time_limit 374
Tweaker™ Variables Version T-2022.03

naming_rule
# Defines the naming rule for the newly added ECO cells.

Type
String

Default
@DO_PREFIX_@USER_@DATE_@FIXTYPE_

Description
This variable defines the naming rule for the newly added ECO cells.

This variable is mostly used for easier ECO cell recognition during each

ECO operation.

Example
set naming_rule ECO1_@USER_@DATE_

set naming_rule ECO1_Bug_MTV_Etos_0827_

See also
N/A

naming_rule 375
Tweaker™ Variables Version T-2022.03

naming_rule 376
Tweaker™ Variables Version T-2022.03

naming_rule_ref_for_apr
# Specifies naming convention of ECO cell name for third party tool.

Type
String

Default
TWK_@DATE_@TIME_

Description
When high-level insertion feature is enabled by using

"set eco_tcl_high_level_insertion_cmd true", Tweaker cannot control the cell

name completely in Olympus PNR tool. In order to identify the newly cells

added by Tweaker, users can specify naming pattern to this variable.

The ECO cells would be named based on this variable in Olympus.

Example
set naming_rule_ref_for_apr "TWK_@DATE_@TIME_"

#### Naming rule commands are added in Olympus ECO Tcls.

#### set cnrn [config_name_rules -net_prefix TWK_150213_105902_]

naming_rule_ref_for_apr 377
Tweaker™ Variables Version T-2022.03

#### set cnrc [config_name_rules -cell_prefix TWK_150213_105902_]

See also
eco_tcl_use_high_level_insertion_cmd

naming_rule

naming_rule_ref_for_apr 378
Tweaker™ Variables Version T-2022.03

netlist_fit_to_last_command
# Enables or disables the updated modified Netlist View on Tweaker GUI.

Type
Boolean

Default
true

Description
By default, the Netlist View of from Tweaker GUI will display the part of

netlist where the ECO operation is taken place.

In contrary, if this variable is set to false, the Netlist View will not

be updated and remain to the original display before any ECO action.

Example
set netlist_fit_to_last_command false

See also
N/A

netlist_fit_to_last_command 379
Tweaker™ Variables Version T-2022.03

netlist_fit_to_last_command 380
Tweaker™ Variables Version T-2022.03

netlist_physical_cells_to_be_ignored
# Specifies the type(s) list of physical cell that will be ignored.

Type
String

Default
Empty

Description
To ignore physical cells which instantiated in netlist and use their

spaces as free space during any ECO process, user can specified the

ignored type(s) of cell in this variable.

Set this variable before "verilogin" command, then those matched physical

cells will be filtered away and does not exist in our db (cannot be seen at

physical view and schematic view).

The filtered physical instances will be kept in netlist view. These

instances will also be output by verilogout command.

This variable supports wildcards expression.

netlist_physical_cells_to_be_ignored 381
Tweaker™ Variables Version T-2022.03

Example
# matched cell will be directly filtered away

set netlist_physical_cells_to_be_ignored *FILL* *DCAP*

verilogin ...

# matched cell will be directly filtered away

set def_physical_cells_to_be_ignored *FILL* *DCAP*

defin ...

# matched cell will be kept in our db but treated as free space

defin ...

set def_physical_cells_to_be_ignored *eco_filler*

See also
def_physical_cells_to_be_ignored

def_physical_instances_to_be_ignored

keep_def_fixed_physical_cells

force_keep_physical_cells

set_pseudo_physical_cell

netlist_physical_cells_to_be_ignored 382
Tweaker™ Variables Version T-2022.03

nls_enable_translate_off
# Enables or disables the ability to honor netlist's translate-on and translate-off

Type
Boolean

Default
true

Description
By default, Tweaker will honor the translate-on and translate-off token

that is coming from the provided netlist(s) which will ignore all of

the content in between translate-on and translate-off.

Example
set nls_enable_translate_off true

See also
NA

nls_enable_translate_off 383
Tweaker™ Variables Version T-2022.03

nls_flatten_lib_bundle_pin
# Enables or disables the ability to output the netlist with flatten bundle pins

Type
Boolean

Default
true

Description
By default, Tweaker will dump the output netlist with the flatten bundle pins.

Example
set nls_flatten_lib_bundle_pin true

See also
NA

nls_flatten_lib_bundle_pin 384
Tweaker™ Variables Version T-2022.03

non_physical_aware_eco
# Enables non-physical aware insertion ECO.

Type
Boolean

Default
false

Description
By default, Tweaker will apply insertion ECO for physical aware DB.

If user environment routing data incorrect or use non-physical aware DB,

Tweaker will alwayus B173 blocking code for prevent physical DB.

When you enable this variable, you can bypass B173 blocking code and use

non physical aware insertion.

Example
...

set non_physical_aware_eco true

set slk_auto_fix_fit_to_free_space false

non_physical_aware_eco 385
Tweaker™ Variables Version T-2022.03

....

slkfix -hold -all

See also
N/A

non_physical_aware_eco 386
Tweaker™ Variables Version T-2022.03

overwrite_existed_file
# Enables or disables the ability to overwrite the existing dumped files (by issuing verilogout, defout, sdfout, etc.).

Type
Boolean

Default
true

Description
By default, the "dump_file" commands (verilogout, defout, sdfout, etc) will

overwrite the existing files.

In contrary, if this variable is set to false, Tweaker will not dump-out the

file if a file with the same name is already existed.

Example
set overwrite_existed_file false

verilogout ...

defout ...

sdfout ...

overwrite_existed_file 387
Tweaker™ Variables Version T-2022.03

ecotclout ...

See also
N/A

overwrite_existed_file 388
Tweaker™ Variables Version T-2022.03

physical_view_display_all_text
# Enables or disables text display in Physical View.

Type
Boolean

Default
true

Description
By applying this variable to the default value "true", Tweaker will

show all text in Physical View, including instance name, pin name,

and cell type (master) information.

Users can set this variable to false to hide all text in Physical View.

Example
set physical_view_display_all_text true

See also
N/A

physical_view_display_all_text 389
Tweaker™ Variables Version T-2022.03

physical_view_display_all_text 390
Tweaker™ Variables Version T-2022.03

physical_view_display_net_by
# Specifies the default behavior of net display by fly line or detail route.

Type
String

Default
fly_line

Description
By applying this variable to the default value "fly_line", Tweaker will

show fly line when highlighting net in Physical View.

Users are able to set this variable to "routing" to default display detail

route when highlighting net in Physical View.

Example
set physical_view_display_net_by routing

See also
N/A

physical_view_display_net_by 391
Tweaker™ Variables Version T-2022.03

physical_view_display_net_by 392
Tweaker™ Variables Version T-2022.03

physical_view_display_quality
# The Tweaker variable that can change physical view display quality

Type
string [fast|balanced|best]

Default
balanced

Description
In Tweaker physical view, the quality of the display will affect

the GUI run time at the same time. By default setting, the Tweaker

will balance quality and speed these two factors.

By setting this variable to fast, the display quality will get worse

but the display run time will be fast and vice versa.

Users are recommended to set this variable to "balanced" if there is

no any preference.

Example
set physical_view_display_quality fast

physical_view_display_quality 393
Tweaker™ Variables Version T-2022.03

See also
N/A

physical_view_display_quality 394
Tweaker™ Variables Version T-2022.03

physical_view_max_acceptable_unplaced_cell_count
# Defines the maximum displayed unplaced cells on the physical view.

Type
Integer

Default
10000

Description
In Tweaker physical view, the unplaced cells will be grouped on the

bottom-left corner of chip.

This variable defines the maximum number of unplaced cells to be displayed

on the physical view. If the number of the unplaced cells exceed the value

defined in this variable, Tweaker will not display the rest of unplaced

cells for run-time sake.

Example
set physical_view_max_acceptable_unplaced_cell_count 10000

physical_view_max_acceptable_unplaced_cell_count 395
Tweaker™ Variables Version T-2022.03

See also
N/A

physical_view_max_acceptable_unplaced_cell_count 396
Tweaker™ Variables Version T-2022.03

pin_access_point_for_ndr_net
# Enables the pin access point for ndr net

Type
string ## "layer_name or layer_index"

Default
(empty)

Description
By default, Tweaker will not have pin access point check for next routing

layer's ndr net. In advanced design like 7 nm, users can set this variable

for pins to have these pins access for metal 2 or metal 3.

Example
set pin_access_point_for_ndr_net METAL2

lefin ...

defin ...

See also

pin_access_point_for_ndr_net 397
Tweaker™ Variables Version T-2022.03

metal1_pin_access_point_min_count

check_pin_access_point_at_cell_margin

pin_access_point_for_ndr_net 398
Tweaker™ Variables Version T-2022.03

pin_access_point_min_count
# Enable horizontal cell pin routing access point check on next vertical metal layer

Type
Integer

Default
0

Description
In advanced process like 10nm or below, even without DRC violates, APR

tool may check cell's horizontal pin routing access points on next

vertical metal layer.

The possible chances that next vertical metal wires which can block the

current cell horizontal pin routing access could be three :

1. cell follow pin's vertical metal layer wires affects current cell

horizontal pin.

2. vertical abutment cell's vertical pin in the neighborhood affects

current cell horizontal pin .

3. the required enclosure distance of current cell horizontal pin itself.

#3 the enclosure can be applied by Tweaker command _set_layer_closure.

pin_access_point_min_count 399
Tweaker™ Variables Version T-2022.03

After the deduction of above 3 possible sources, Tweaker will check the

remaining available routing access can match the user specified value or

not. If not then we will try to shift the cell to a new place.

The pin access control can be on the fly to adjust and check.

Usages :

1. set pin_access_point_min_count M1 2

=> Tweaker will use M1 (should be horizontal layer) as the pin access

count reference.

2. set pin_access_point_min_count 2

=> Tweaker will take the first horizontal routing layer to use as pin

access count reference.

Example
_set_layer_closure METAL1 xEnclosure yEnclosure

set pin_access_point_min_count 2

slkfix

See also

pin_access_point_min_count 400
Tweaker™ Variables Version T-2022.03

pin_track_aware_by_layer
# enable pin track awareness on specified layers

Type
String

Default
Empty

Description
In advanced processes, a cell's pin must be aligned with the correct routing

track in order to be placed.

In order to be routing track aware, Tweaker has this variable for users to

control which layers need to be checked for rule.

The track is defined in the DEF file, while metal layers and cell pin are

defined in the LEF files. Hence the user needs both files to match before

enabling the pin track awareness.

Example
libin ...

pin_track_aware_by_layer 401
Tweaker™ Variables Version T-2022.03

lefin ...

verilogin ...

defin ...

set pin_track_aware_by_layer METAL1 METAL2

See also
pin_track_color_aware_by_layer (var)

pin_track_aware_by_layer 402
Tweaker™ Variables Version T-2022.03

pin_track_color_aware_by_layer
# enable color awareness on specified color tracks (horizontal & vertical)

Type
String

Default
Empty

Description
In advanced processes, like 10nm or below, foundries may have the same metal

routing track be distinguished by different colors.

In 7nm technology, a cell's horizontal and vertical pin must be aligned with

the correct routing track color in order to be placed.

In order to be color aware, Tweaker has this variable for users to control

which layers need to be checked for the 7nm coloring rules. The specified

layers will be checked both horizontally and vertically.

The track and available colors are defined in the DEF file, while metal

layers and cell pin colors are defined in the LEF files. Hence the user

needs both files to match before enabling the routing track color awareness

(on both horizontal and vertical pins).

pin_track_color_aware_by_layer 403
Tweaker™ Variables Version T-2022.03

Example
libin ...

lefin ...

verilogin ...

defin ...

set pin_track_color_aware_by_layer METAL2 METAL3

See also
vertical_pin_track_color_aware

vertical_pin_avoid_power_strap

pin_track_color_aware_by_layer 404
Tweaker™ Variables Version T-2022.03

power_ground_pin_geometry_to_be_compared
# Specifies the power or ground pin name to compare pin geometry during auto fixing

Add variable for comparing power/ground pin geometry (for vt swap)

Type
String

Default
empty

Description
By setting variable slk_fix_keep_pin_geometry to true, users can restraint

Tweaker to perform the sizing algorithm within the candidate cells which

contain the same pin geometry as the original cells. Enable this variable

to further compare the pin geometry of power/ground pin during auto fixing.

This variable only works when "slk_fix_keep_pin_geometry" variable is set to

true, and also supports wildcard expression.

Example
set slk_fix_keep_pin_geometry true

power_ground_pin_geometry_to_be_compared 405
Tweaker™ Variables Version T-2022.03

set power_ground_pin_geometry_to_be_compared {*VDD *VSS}

See also
slk_fix_keep_pin_geometry (var)

power_ground_pin_geometry_to_be_compared 406
Tweaker™ Variables Version T-2022.03

power_state_mode
# enable this variable to use command read_power_state

Type
Boolean

Default
false

Description
Use this switch to enable the Tweaker command read_power_state.

Example
set power_state_mode true

read_power_state

...

See also
read_power_state

power_state_mode 407
Tweaker™ Variables Version T-2022.03

primetime_si_mode
# Enables SI calculation mechanism compatible with PrimeTime.

Type
Boolean

Default
true

Description
Tweaker treats SI information from PrimeTime and that from CeltIC

differently so delay calculation mechanisms compatible with them are

different too. Setting this variable true enables the PrimeTime-compatible

mechanism and disables the CeltIC-compatible mechanism. Setting this

variable false does the opposite.

Example
set primetime_si_mode false

See also

primetime_si_mode 408
Tweaker™ Variables Version T-2022.03

N/A

primetime_si_mode 409
Tweaker™ Variables Version T-2022.03

prioritize_lef_color_rule
# Automatically extracts Samsung 10nm coloring rules from LEF5.8 tech file.

Type
Boolean

Default
false

Description
This variable must work with [CMD] set_color_drc_rule_check_layer. If this

variable is set true, then upon the execution of

[CMD] set_color_drc_rule_check_layer after enabling this variable, Tweaker

automatically extracts Samsung 10nm coloring rules from LEF5.8 tech file,

then translates them into Tweaker internal coloring rule commands :

[CMD] set_color_rule_metal_end_spacing

Users may check in the .cmd file generated by their Tweaker runs to see the

translated commands from LEF5.8 tech file, immediately after

[CMD] set_color_drc_rule_check_layer.

If you already have set_color_rule_metal_end_spacing applied but still

enable this var, the LEF contents may overwrite those your manual specified

prioritize_lef_color_rule 410
Tweaker™ Variables Version T-2022.03

values.

Example
#=== To enable automatically extracting Samsung 10nm coloring rule ===

#=== from LEF5.8 tech file ===

set prioritize_lef_color_rule true

set_color_drc_rule_check_layer M1

#=== Then in tweaker.cmd, users shall find such records : ===

...

set prioritize_lef_color_rule true

set_color_drc_rule_check_layer M1

set_color_rule_metal_end_spacing 0.026 -layer M1 -type sc_s_2l \

-endofline ...

set_color_rule_metal_end_spacing 0.090 -layer M1 -type sc_s_3l \

-endofline ...

set_color_rule_metal_end_spacing 0.080 -layer M1 -type sc_s_4l \

-endofline ...

set_color_rule_metal_end_spacing 0.140 -layer M1 -type sc_s_7l -width1 ...

...

See also
set_color_drc_rule_check_layer (cmd)

prioritize_lef_color_rule 411
Tweaker™ Variables Version T-2022.03

set_color_rule_metal_end_spacing (cmd)

prioritize_lef_color_rule 412
Tweaker™ Variables Version T-2022.03

query_tie_cell_for_constant_cell
# Enables or disables the tie cell searching distance limit.

Type
Boolean

Default
false

Description
If this variable is set to true, Tweaker will base on the distance limit

(defined in "db_tie_dist" variable) as its searching range radius when

querying constant cells has corresponding qualified tie cells or not.

For more information, please refer to the man page of "db_tie_dist"

variable.

Example
set query_tie_cell_for_constant_cell true

set db_tie_dist 300.0

query_tie_cell_for_constant_cell 413
Tweaker™ Variables Version T-2022.03

See also
db_tie_dist

query_tie_cell_for_constant_cell 414
Tweaker™ Variables Version T-2022.03

recycle_spare_cell_into_original_module
# Tweaker variable to control the new recycled spare cells collected at original

module or spare modules.

Type
Boolean

Default
false

Description
By default the new recycled spare cells under Metal ECO mode are collected

at spare modules (if spare module are specified) or at the design's top

module.

By enabling this Tweaker will collected those recycled spare cells at its

original module to avoid cross hierarchy issue.

Example
set recycle_spare_cell_into_original_module true

...Metal ECO...

recycle_spare_cell_into_original_module 415
Tweaker™ Variables Version T-2022.03

See also
N/A

recycle_spare_cell_into_original_module 416
Tweaker™ Variables Version T-2022.03

reduce_routing_of_constant_cell
# Enable or disable to reduce routing to connect input pins of constant cell to

TIE cell.

Type
Boolean

Default
true

Description
Normally, input pin(s) of a constant cell is/are connected to TIE cell,

which means it occupies routing resource and even causes high routing

density. Therefore, user can enable this variable before using constant

cells to make input pins connected together with the driving pin.

Example
set reduce_routing_of_constant_cell true

See also

reduce_routing_of_constant_cell 417
Tweaker™ Variables Version T-2022.03

N/A

reduce_routing_of_constant_cell 418
Tweaker™ Variables Version T-2022.03

refill_gate_array_into_original_module
# Assign gate array cell module to its original module while remapping

Type
string

Default
false

Description
By default Tweaker will assign the mapping gate array cell to "Top" module,

Turning on this option will force Tweaker to assign the module to its

original module.

Example
set refill_gate_array_into_original_module true

See also
db_placement_check_physical_rule

set_gate_array

refill_gate_array_into_original_module 419
Tweaker™ Variables Version T-2022.03

update_gate_array_body

refill_gate_array_into_original_module 420
Tweaker™ Variables Version T-2022.03

remap_clk_skew_threshold
# Defines the skew deviation tolerance value during the ECO flip-flop remapping.

Type
Float

Default
0.05

Description
This is Tweaker Metal ECO related variable.

This variable defines the skew deviation tolerance value.

During the ECO flip-flops remapping (ECO synthesis), Tweaker will extract

the flip-flops' skew deviation value, compare them to the value specified

in this variable, and place them on the proper clock trees.

Example
set remap_clk_skew_threshold 0.02

See also

remap_clk_skew_threshold 421
Tweaker™ Variables Version T-2022.03

N/A

remap_clk_skew_threshold 422
Tweaker™ Variables Version T-2022.03

remap_constant_cell
# Specifies the list of constant cells that can be utilized during the ECO synthesis remapping.

Type
String

Default
empty

Description
This is Tweaker Metal ECO related variable

This variables contains the footprint list or cell list of user-defined

constant cell that will be utilized during the ECO synthesis remapping.

Constant cell can be acquired by tying one or more input pins of a cell to

high/low value to get the new cell function. For example, to tie an input

pin of a three-input AND gate to high will make the cell become a two-input

AND gate.

Example
set remap_constant_cell { AND2* AND4* OR2* OR4* }

remap_constant_cell 423
Tweaker™ Variables Version T-2022.03

See also
remap_constant_reduction

remap_constant_cell 424
Tweaker™ Variables Version T-2022.03

remap_constant_reduction
# Enables or disables the ability to perform logic reduction algorithm to the existing constant cells.

Type
String

Default
off

Description
This is Tweaker Metal ECO related variable.

By default, Tweaker will not perform a logic reduction algorithm to the

existing constant cells during any ECO operation.

In contrary, if this variable is set to on, Tweaker will perform the logic

reduction algorithm those constant cell.

Constant cell can be acquired by tying one or more input pins of a cell to

high/low value to get the new cell function. For example, to tie an input

pin of a three-input AND gate to high will make the cell become a two-input

AND gate.

remap_constant_reduction 425
Tweaker™ Variables Version T-2022.03

Example
set remap_constant_reduction on

See also
remap_constant_cell

remap_constant_reduction 426
Tweaker™ Variables Version T-2022.03

remap_dont_use_cell
# Specifies the list of cell(s) to be ignored during the remapping operation.

Type
String

Default
empty

Description
This is Tweaker Metal ECO related variable.

This is an obsolete variable and now it will be replaced by command "set_dont_use_cell".

Example
set remap_dont_use_cell { SPARECKBUF* SPAREFF* }

See also
remap_dont_use_cell_from_lib

remap_dont_use_cell 427
Tweaker™ Variables Version T-2022.03

remap_dont_use_cell_from_lib
# Enables or disables the ability to honor "dont_use" property defined at LIB.

Type
String

Default
empty

Description
This is an obsolete variable and now Tweaker will auto honor dont_use from LIB.

Example
set remap_dont_use_cell_from_lib true

See also
remap_dont_use_cell

remap_dont_use_cell_from_lib 428
Tweaker™ Variables Version T-2022.03

remap_eco_net_length_to_be_remapped
# Defines the minimum net length requirement for the ECO logic cell to be qualified to be remapped.

Type
Integer

Default
500

Description
This is Tweaker Metal ECO related variable.

This variable only works after issuing "remap_eco_logic -eco_nets" command.

This variable defines the minimum net length requirement of the ECO logic

cell to be qualified to be remapped.

Example
set remap_eco_net_length_to_be_remapped 500

See also
remap_eco_logic (cmd)

remap_eco_net_length_to_be_remapped 429
Tweaker™ Variables Version T-2022.03

remap_high_fanout_net_filter
# Tweaker variable to define the threshold of high fanout nets.

Type
Integer

Default
65535

Description
This is Tweaker Metal ECO related variable

During the ECO synthesis remapping, wire length of high fanout nets

dominates total length. To ignore wire length of high fanout nets, we

need to set small cost ratio for high fanout wire.

By default, Tweaker applies the same cost value for all nets.

By specifying a number to this variable, if the fanout number of cell is

larger than the value defined in this variable, Tweaker applies another cost

value which is specified by option "high_fanout_wire" of command

remap_set_cost_function.

remap_high_fanout_net_filter 430
Tweaker™ Variables Version T-2022.03

Example
set remap_high_fanout_net_filter 50

### Higher weight of cost value means higher priority during remapping

remap_set_cost_function -wire_v 80 -wire_h 19.9 -high_fanout_wire 0.1

remap_eco_logic -cpu_limit 30

See also
remap_set_cost_function (cmd)
remap_eco_logic (cmd)

remap_high_fanout_net_filter 431
Tweaker™ Variables Version T-2022.03

remap_keep_original_name
# Enables or disables the ability to keep the original name of spare cells that are utilized during the ECO synthesis.

Type
Boolean

Default
false

Description
This is Tweaker Metal ECO related variable.

By default, Tweaker will generate the new names for the spare cells that are

utilized during ECO synthesis.

However, by setting this variable to true, Tweaker will keep the original

name of the spare cell during the ECO synthesis.

Example
set remap_keep_original_name true

See also

remap_keep_original_name 432
Tweaker™ Variables Version T-2022.03

N/A

remap_keep_original_name 433
Tweaker™ Variables Version T-2022.03

remap_max_transition
# Defines the max transition constraint for ECO synthesis engine.

Type
Float

Default
2.0

Description
This is Tweaker Metal ECO related variable.

This variable works in correlation with "remap_max_transition_percentage"

variable to filter the spare cells to be qualified as ECO cells.

This variable defines the user-defined max transition constraint for ECO

synthesis engine.

However, Tweaker will choose the minimum value between the max transition

defined in this variable and the max transition defined in LIB file.

Example
set remap_max_transition 1.8

remap_max_transition 434
Tweaker™ Variables Version T-2022.03

See also
remap_max_transition_percentage

remap_max_transition 435
Tweaker™ Variables Version T-2022.03

remap_max_transition_percentage
# Defines the max trans value of a cell in the percentage presentation to be qualified as the candidate of ECO cells.

Type
Integer

Default
100

Description
This is Tweaker Metal ECO related variable.

This variable works in correlation with "remap_max_transition" variable to

filter the spare cells to be qualified as the candidate of ECO cells.

The lower value defined in this variable means stricter transition

requirement is given.

Example
set remap_max_transition_percentage 80

See also

remap_max_transition_percentage 436
Tweaker™ Variables Version T-2022.03

remap_max_transition

remap_max_transition_percentage 437
Tweaker™ Variables Version T-2022.03

remap_reduction_mode
# Defines the effort level of logic reduction.

Type
String

Default
low [ none | low | high ]

Description
This is Tweaker Metal ECO related variable.

This variable defines the effort level of Tweaker to perform logic reduction

algorithm during the ECO synthesis.

Example
set remap_reduction_mode high

See also
N/A

remap_reduction_mode 438
Tweaker™ Variables Version T-2022.03

remap_resource_auto_extend_sa_time
# Defines the maximum time for Tweaker to perform a ECO synthesis after the time specified in "remap_eco_logic -cpu_limit".

Type
Integer

Default
10

Description
This is Tweaker Metal ECO related variable.

After using advanced remapping by executing "remap_eco_logic -cpu_limit"

command, Tweaker will extend search area to find more resources and spend

more time for ECO synthesis. This extended time can be specified in this

variable.

Unit type of this variable is minute.

Example
set remap_resource_auto_extend_sa_time 10

remap_resource_auto_extend_sa_time 439
Tweaker™ Variables Version T-2022.03

See also
remap_eco_logic (cmd)

remap_resource_auto_extend_size

remap_resource_auto_extend_sa_time 440
Tweaker™ Variables Version T-2022.03

remap_resource_auto_extend_size
# Defines the remapping windows extending radius.

Type
Integer

Default
50

Description
This is Metal ECO related variable.

During the Metal ECO remapping, if there are more remapping windows required

by the remapping algorithm in order to derive more available spare cell

resources, Tweaker will extend the radius of existing remapping windows in

the increment of a value that are defined in this variable.

This increment will continue as long as more remapping window is needed.

In Tweaker, the priority of "remap_resource_extend_offset" variable is

higher than the priority of "remap_resource_auto_extend_size" variable.

If user defined a value on "remap_resource_extend_offset" variable, Tweaker

will set the remapping window to this value the automatically regardless of

the value defined in "remap_resource_auto_extend_size" variable. During this

remap_resource_auto_extend_size 441
Tweaker™ Variables Version T-2022.03

setting, Tweaker will not extend the remapping windows even if there is no

more available cell in the remapping window.

The unit of this variable is um (micrometer).

Example
set remap_resource_auto_extend_size 100

See also
remap_resource_extend_offset

remap_resource_auto_extend_size 442
Tweaker™ Variables Version T-2022.03

remap_resource_extend_offset
# Defines the absolute value of remapping windows.

Type
Integer

Default
0

Description
This is Metal ECO related variable.

This variable defines the value of remapping windows that will not be

extended even if there is no more available resources.

In Tweaker, the priority of "remap_resource_extend_offset" variable is

higher than the priority of "remap_resource_auto_extend_size" variable.

The unit of this variable is um (micrometer).

Example
set remap_resource_extend_offset 400

remap_resource_extend_offset 443
Tweaker™ Variables Version T-2022.03

See also
remap_resource_auto_extend_size

remap_resource_extend_offset 444
Tweaker™ Variables Version T-2022.03

remap_target_slack
# Defines the target slack during the Metal ECO remapping operation.

Type
Float

Default
0.0

Description
This is Tweaker Metal ECO related variable.

During the remapping operation, Tweaker will use the value defined in this

variable as its target slack.

Example
set remap_target_slack 0.2

See also
N/A

remap_target_slack 445
Tweaker™ Variables Version T-2022.03

remap_uses_constant_signals
# Defines the high and low voltage value presentation of remapping output result.

Type
Boolean

Default
true

Description
This is Tweaker Metal ECO related variable.

By default, Tweaker will use constant value signal (1'b1 or 1'b0) in

expressing its remapping result.

In contrary, if this variable is set to false, Tweaker will use power/

ground net names (VDD or VSS).

Example
set remap_uses_constant_signals false

See also

remap_uses_constant_signals 446
Tweaker™ Variables Version T-2022.03

verilogin

remap_uses_constant_signals 447
Tweaker™ Variables Version T-2022.03

remap_without_power_domain_check
# Ignores power domain checking during remapping.

Type
Boolean

Default
false

Description
This is a Metal Eco related variable.

By default, Tweaker will check logical/physical power domain validity

before remapping eco logic. If there is any mismatch, Tweaker will

abort the remapping process.

In contrast, when this variable is set to true, the remapping process

will continue even if there is any mismatch occurred.

Example
set remap_without_power_domain_check true

remap_eco_logic ..

remap_without_power_domain_check 448
Tweaker™ Variables Version T-2022.03

See also
N/A

remap_without_power_domain_check 449
Tweaker™ Variables Version T-2022.03

report_clear_paths
# Enables or disables the violation paths with "clear pin" endpoints to be dumped on the generated report.

Type
Boolean

Default
true

Description
By default, when user issue "gen_slack_report" command, Tweaker will dump a

report of violation paths including the those with "clear pin" endpoints.

In contrary, if this variable is set to false, those paths with "clear pin"

endpoints will not be dumped to the report.

Example
set report_clear_paths false

See also
report_preset_paths

report_clear_paths 450
Tweaker™ Variables Version T-2022.03

report_scan_enable_paths

gen_slack_report

report_clear_paths 451
Tweaker™ Variables Version T-2022.03

report_preset_paths
# Enables or disables the violation paths with "preset pin" endpoints to be dumped on the generated report.

Type
Boolean

Default
true

Description
By default, when user issue "gen_slack_report" command, Tweaker will dump a

report of violation paths including the those with "preset pin" endpoints.

In contrary, if this variable is set to false, those paths with "preset pin"

endpoints will not be dumped to the report.

Example
set report_preset_paths false

See also
report_scan_enable_paths

report_preset_paths 452
Tweaker™ Variables Version T-2022.03

report_clear_paths

gen_slack_report

report_preset_paths 453
Tweaker™ Variables Version T-2022.03

report_scan_enable_paths
# Enables or disables the violation paths with "scan enable pin" endpoints to be dumped on the generated report.

Type
Boolean

Default
true

Description
By default, when user issue "gen_slack_report" command, Tweaker will dump a

report of violation paths including the those with "scan enable pin"

endpoints.

In contrary, if this variable is set to false, those paths with "scan enable

pin" endpoints will not be dumped to the report.

Example
set report_scan_enable_paths false

See also

report_scan_enable_paths 454
Tweaker™ Variables Version T-2022.03

report_preset_paths

report_clear_paths

gen_slack_report

report_scan_enable_paths 455
Tweaker™ Variables Version T-2022.03

sdf_hier_prefix
# Contains user-defined prefix for full instance name.

Type
String

Default
empty

Description
This variable contains the user-defined prefix for full instance name.

For instances within sub-design, hierarchy prefix must be provided to

match up the whole chip sdf and annotate the corresponding delay value

correctly.

This variable is essential when sub-design is treated as top design during

ECO synthesis.

Example
set sdf_hier_prefix /top/sub_design1/

sdf_hier_prefix 456
Tweaker™ Variables Version T-2022.03

See also
N/A

sdf_hier_prefix 457
Tweaker™ Variables Version T-2022.03

sdf_noedge
# to enable generating an SDF file without edges

Type
Boolean

Default
False

Description
This Tweaker variable allows users to enable outputting SDF file(s) without edges.

Example
set sdf_noedge true

sdfout

...

See also
sdfout

sdf_noedge 458
Tweaker™ Variables Version T-2022.03

sdf_version
# specify which version to output SDF files with

Type
Double

Default
3.0

Description
Use this Tweaker variable to specify which SDF version to output the SDF file in.

Example
set sdf_version 2.1

sdfout

...

See also
sdfout

sdf_version 459
Tweaker™ Variables Version T-2022.03

search_path
# Tweaker system variable

Type
String

Default
./working_directory

Description
Tweaker supports the search path specification and every file can be

referred to it by using local name only.

The usage must be "set search_path {path1 path2 path3 ....}".

Example
set search_path { /proj/lib /proj/lef /proj/def /proj/netlist }

set projectpath /proj

set search_path " $projectpath/lib $projectpath/lef $projectpath/def \

$projectpath/netlist "

search_path 460
Tweaker™ Variables Version T-2022.03

See also
N/A

search_path 461
Tweaker™ Variables Version T-2022.03

search_space_cross_placed_blocked
# Enables or disables the searching space within the channel.

Type
Boolean

Default
false

Description
During auto fixing stage or manually operation, Tweaker will search free

space to place new inserted cells. By setting this variable to false,

Tweaker will not search the channel space within macro cells or blockages.

If this variable is set to true, ECO cells might be placed within macro

cells.

Example
set search_space_cross_placed_blocked false

See also

search_space_cross_placed_blocked 462
Tweaker™ Variables Version T-2022.03

N/A

search_space_cross_placed_blocked 463
Tweaker™ Variables Version T-2022.03

session_version
# Tweaker system variable to record the version of the restored session

Type
String

Default
Tweaker version make date (YYYY/MM/DD).

Description
This variable records the version of the restored session.

User is not recommended to modify this variable at any time.

Example
twk_shell> save_session ./preeco.db

other_twk_shell> restore_session ./preeco.db

other_twk_shell> printvar session_version

See also
version

session_version 464
Tweaker™ Variables Version T-2022.03

session_version 465
Tweaker™ Variables Version T-2022.03

skip_rtl_verilog_files
# Tweaker variable to enable/disable the rtl verilog file input.

Type
Boolean

Default
false

Description
Usually we request to input the synthesized gate level verilog for Tweaker.

For flow control convenience user can use this variable to prevent the input

of RTL style verilog for Tweaker.

Example
set skip_rtl_verilog_files true

verilogin ...

See also
N/A

skip_rtl_verilog_files 466
Tweaker™ Variables Version T-2022.03

skip_rtl_verilog_files 467
Tweaker™ Variables Version T-2022.03

skip_vlgin_error_modules
# Tweaker variable to skip the verilog module which has compiler error.

Type
Boolean

Default
false

Description
By default if there is compiler error for certain input verilog modules

then Tweaker will issue compiler error and error out. But if users are

sure those error modules are redundant and not used, then by enabling

this variable the compiler error can be changed to warnings and will not

error out.

Example
set skip_vlgin_error_modules true

verilogin ...

skip_vlgin_error_modules 468
Tweaker™ Variables Version T-2022.03

See also
N/A

skip_vlgin_error_modules 469
Tweaker™ Variables Version T-2022.03

slack_view_show_dominate_path_drv_only
# Enables to only display dominate paths and drv pins in Slack View.

Type
Boolean

Default
false

Description
When this variable is applied to the default value false, Tweaker displays

all the paths and drv pins read from slack reports in Slack View.

By applying this variable to true, Tweaker only displays the dominate paths

and drv pins.

The dominate paths and drv pins are picked up based on the same criteria

with the command "extract_report".

Example
[CMD] set slack_view_show_dominate_path_drv_only true

slack_view_show_dominate_path_drv_only 470
Tweaker™ Variables Version T-2022.03

See also
extract_report (cmd)

slack_view_show_dominate_path_drv_only 471
Tweaker™ Variables Version T-2022.03

slackin_honor_hierarchy_pruning_design_list
# Variable to honor or not to honor the design list of hierarchy pruning during

executing the command "slackin"

Type

Boolean

Default
false

Description

By default, the command "slackin" has its "-design_list" option and the

user-specified design list is independent to other commands.

When this variable set to true, command "slackin" will automatically add

the option -design_list and get the design list used in the command

"begin_hierarchy_pruning". By ignoring paths not in the design list, the

database will be reduced, faster timing update and decreased memory

consumption.

If users set -design_list option for both "begin_hierarchy_pruning" and

"slackin" commands, Tweaker will take the intersection of the two design

lists.

Set this variable before "begin_hierarchy_pruning" command.

slackin_honor_hierarchy_pruning_design_list 472
Tweaker™ Variables Version T-2022.03

Example
set slackin_honor_hierarchy_pruning_design_list true

begin_hierarchy_pruning -design_list TOP SUB1 SUB3

......

end_hierarchy_pruning

......

slackin ......

See also
slackin (cmd)
begin_hierarchy_pruning (cmd)
slkfix (cmd)

slackin_honor_hierarchy_pruning_design_list 473
Tweaker™ Variables Version T-2022.03

slk_aggressive_hfi_mode
# Enables the aggressive HFI mode.

Type
Boolean

Default
false

Description
This variable determines the grouping behavior of the HFI mode.

In default, Tweaker will take each individual setup/hold slacks of fanout

load into its consideration in deciding if it is qualified to be grouped.

During this setting, Tweaker will create multiple groups of fanout loads

according to their setup/hold slacks condition. After the grouping, Tweaker

will insert multiple buffers which act as driver on each grouped loadout

net. Moreover, the fanout loads which originally do not have any negative

hold slack will not be grouped.

When this variable is set to true, Tweaker performs an aggressive HFI mode

that will group-up all fanout load regardless of their individual setup/hold

slacks status. The hold buffer will be inserted near to the driver on the

slk_aggressive_hfi_mode 474
Tweaker™ Variables Version T-2022.03

net which is located just before these grouped fanout and become their new

driver cell.

Example
set slk_aggressive_hfi_mode false

See also
N/A

slk_aggressive_hfi_mode 475
Tweaker™ Variables Version T-2022.03

slk_area_recovery_fix_internal_power_only
# switch to enable/disable internal power optimization by area recovery

Type
Boolean

Default
False

Description
Use this Tweaker variable to enable or disable internal power optimization

by area recovery methods.

Example
set slk_area_recovery_fix_internal_power_only true

See also
N/A

slk_area_recovery_fix_internal_power_only 476
Tweaker™ Variables Version T-2022.03

slk_area_recovery_keep_one_buffer_for_back_to_back
# Enables the ability to at least keep one existing buffer between two

flip-flops.

Type
Boolean

Default
false

Description
By setting this variable to its default value of false, Tweaker will remove

buffers and connected inverter pairs as long as their setup margin is

enough.

On the contrary, when this variable is set to true, Tweaker will keep at

least one buffer between two flip-flops to avoid the few stages along the

path with potential side effect of very conservative derate could be in AOCV

flow.

Example

slk_area_recovery_keep_one_buffer_for_back_to_back 477
Tweaker™ Variables Version T-2022.03

set slk_area_recovery_keep_one_buffer_for_back_to_back true

See also
N/A

slk_area_recovery_keep_one_buffer_for_back_to_back 478
Tweaker™ Variables Version T-2022.03

slk_area_recovery_list_by_design_filename
# Save Tweaker area recovery list by design

Type
String

Default
empty

Description
During Tweaker area recovery, we can enable this variable to save area

recovery list. Tweaker will automatically save list by different

hierarchical design.

Please note that when this var is applied, the same old matched prefix files

under the specified directory (may come from another area recovery run) will

be deleted and re-generated for the current run eco content.

Example
set slk_area_recovery_list_by_design_filename area_recovery

### will remove previous files like executing "rm area_recovery.* -f'

slk_area_recovery_list_by_design_filename 479
Tweaker™ Variables Version T-2022.03

### output list

### area_recovery.sub_design1

### area_recovery.sub_design2

### area_recovery.top

See also
slk_area_recovery_list_filename

slk_area_recovery_list_by_design_filename 480
Tweaker™ Variables Version T-2022.03

slk_area_recovery_list_filename
# Save Tweaker area recovery list

Type
String

Default
empty

Description
During Tweaker area recovery, we can enable this variable to save area

recovery list.

Please note that when this var is applied, the same matched file under the

specified directory (may come from another irun) will be deleted and

re-generated for the current run eco content.

Example
set slk_area_recovery_list_filename swap_cell_list.txt

# will remove previous file like executing "rm -f swap_cell_list.txt"

slk_area_recovery_list_filename 481
Tweaker™ Variables Version T-2022.03

See also
slk_area_recovery_list_by_design_filename

slk_area_recovery_list_filename 482
Tweaker™ Variables Version T-2022.03

slk_auto_bypass_max_fanout_limit
# Set the limit of max fanout while fixing with bypass buffer

Type
Integer

Default
32

Description
While fixing setup time by bypass buffer/inverter-pair, Tweaker will consi-

der the buffer/inverter-pair itself and its driver's fanout. Tweaker will

bypass the buffer/inverter-pair when the fanout is less than equal to the

specified value on this variable.

Example
# To fix setup by bypass buffer and limit the bypass to 6 fanouts

tweaker_shell> set slk_fix_setup_by_bypass_buffer true

tweaker_shell> set slk_auto_bypass_max_fanout_limit 6

# To fix setup by bypass inverter-pair and limit the bypass to 8 fanouts

slk_auto_bypass_max_fanout_limit 483
Tweaker™ Variables Version T-2022.03

tweaker_shell> set slk_fix_setup_by_bypass_inverter_pair true

tweaker_shell> set slk_auto_bypass_max_fanout_limit 8

See also
[ VAR ] slk_fix_setup_by_bypass_buffer

[ VAR ] slk_fix_setup_by_bypass_inverter_pair

[ VAR ] slk_bypass_buff_min_improved_slack

[ VAR ] slk_bypass_buffer_disable_new_assign

[ VAR ] slk_bypass_buffer_disable_new_port

[ VAR ] slk_bypass_buff_list

[ VAR ] slk_bypass_within_instance_list

[ VAR ] slk_bypass_preserve_instance_list

[ VAR ] slk_bypass_instance_file

slk_auto_bypass_max_fanout_limit 484
Tweaker™ Variables Version T-2022.03

slk_auto_fix_always_dont_overlap_def_fix_cell
# auto fix by not overlapping with DEF-FIXED cells

Type
Boolean

Default
False

Description
When this variable is set to 'true', Tweaker will not place ECO cells such

that they overlap with DEF-FIXED cells, even when the "fit to free space"

switch is false.

Example
set slk_auto_fix_always_dont_overlap_def_fix_cell true

slkfix ...

See also
slk_auto_fix_fit_to_free_space

slk_auto_fix_always_dont_overlap_def_fix_cell 485
Tweaker™ Variables Version T-2022.03

slk_auto_fix_always_dont_overlap_def_fix_cell 486
Tweaker™ Variables Version T-2022.03

slk_auto_fix_fit_to_free_space
# Tweaker variable to allow autofix honoring the free space or not.

Type
Boolean

Default
true

Description
By default, Tweaker will automatically find a free space for the ECO cell if

original place (for sizing operation) or the ideal place (for insertion

operation) cannot fit it after the ECO operation. During this setting,

Tweaker will honor the value of "slk_auto_sizing_max_shift_distance"

variable and use it as the free space searching radius.

If the variable is set to false, Tweaker will allow any overlapping ECO cell

during the sizing and insertion operation.

Example
set slk_auto_fix_fit_to_free_space false

slk_auto_fix_fit_to_free_space 487
Tweaker™ Variables Version T-2022.03

See also
slk_auto_sizing_max_shift_distance

slk_auto_fix_fit_to_free_space 488
Tweaker™ Variables Version T-2022.03

slk_auto_fix_max_loop
# Defines the maximum loop number for each slkfix iteration.

Type
Integer

Default
10

Description
During each ECO operation, Tweaker will perform the exact number of fixing

loops as defined in this variable.

For regular fix timing ECO operation, Tweaker usually will finished the

slkfix before loop 3 or 4.

For power ECO, it is recommended to set by "2" to get reasonable run time.

Example
set slk_auto_fix_max_loop 2

slkfix -power_eco

slk_auto_fix_max_loop 489
Tweaker™ Variables Version T-2022.03

See also
slk_autofix_max_undo_domain

slk_auto_fix_max_loop 490
Tweaker™ Variables Version T-2022.03

slk_auto_fix_max_wire_length_limit
# Defines the maximum wire length threshold of a target cell to be allowed to perform any fixing operation on it.

Type
Integer

Default
450

Description
During any fixing operation, if the total wire length (in Manhattan

distance) of input and output is larger than this variable, Tweaker will

avoid any fixing operation on this cell.

Any sizing operation on this kind of cell will possibly generate a massive

amount of SI affect to the existing routing and timing due to the long wire

length shifting.

Moreover, the length of the net after ECO could be increased during numerous

rounds that will lead to massive SI affect.

Tweaker will honor this variable during "sizing", "bypass buffer", and

"fine-tune clock" operation of slkfix.

slk_auto_fix_max_wire_length_limit 491
Tweaker™ Variables Version T-2022.03

Example
set slk_auto_fix_max_wire_length_limit 600

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.1.tcl

slk_auto_fix_max_wire_length_limit 492
Tweaker™ Variables Version T-2022.03

slk_auto_insertion_max_fanout_limit
# Defines the maximum fanout limit of the violated path to be fixed.

Type
Integer

Default
100

Description
When buffer insertion algorithm is triggered by either transition, hold or

setup autofix, Tweaker will perform the autofix for the nets whose fanout

number is smaller or equal to the value specified in this variable.

The violated nets with fanout number that exceed the this maximum value will

be blocked by autofix.

The main reason is to prevent Tweaker from inserting buffers on tree related

nets such as scan enable tree.

Example
set slk_auto_insertion_max_fanout_limit 128

slk_auto_insertion_max_fanout_limit 493
Tweaker™ Variables Version T-2022.03

See also
slk_auto_sizing_max_fanout_limit

slk_auto_insertion_max_fanout_limit 494
Tweaker™ Variables Version T-2022.03

slk_auto_learning_buffer_list_by_autofix
# Enable or disable to pick buffers into the insertion buffer list by autofix.

Type
Boolean

Default
false

Description
User can enable this variable to let Tweaker automatically choose buffers as

the candidate. It denpends on whether or not user specifies the buffer

insertion list. If no user-defined buffer insertion list, Tweaker chooses

buffers from the entire library.

Example
set slk_auto_learning_buffer_list_by_autofix true

See also
slk_auto_learning_buffer_list_by_design

slk_auto_learning_buffer_list_by_autofix 495
Tweaker™ Variables Version T-2022.03

slk_auto_learning_buffer_list_by_autofix 496
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_adjust_placement
# Enables or disables the ability of Tweaker to auto-adjust the eco cell

physical location while performing the auto-sizing operation for setup

autofix.

Type
Boolean

Default
false

Description
This variable only works when variable "slk_fix_setup_by_sizing" is enabled.

When auto-sizing for setup autofix is adopted, this variable can be enabled

to allow Tweaker to not only perform a sizing operation, but also move the

physical location of the target instance to shorten the critical path of the

net.

# set slk_auto_sizing_adjust_placement false

- - - - - - - - - - - - - - - > SinkB (critical)

DriverA - - - - CELL

slk_auto_sizing_adjust_placement 497
Tweaker™ Variables Version T-2022.03

- - - SinkC

# set slk_auto_sizing_adjust_placement true

- - - - - - - - - > SinkB (critical)

DriverA - - - - - - - - - - - CELL (sizing+move)

SinkC - - -

Example
set slk_fix_setup_by_sizing true

set slk_auto_sizing_adjust_placement true

...

slkfix -setup -all

See also
slk_fix_setup_by_sizing

slk_auto_sizing_adjust_placement 498
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_buf_inv_only
# Enables or disables the ability of Tweaker to perform auto-sizing on buffer and inverter types of cells only.

Type
Boolean

Default
false

Description
By default, all types of cells at violation paths are allowed to be sized

during the auto-sizing.

Tweaker offers more option of constraint that can be used by user to

limit Tweaker to perform the sizing algorithm on the buffer and inverter

types of cells by setting this variable to true.

Example
set slk_fix_setup_by_sizing true

set slk_auto_sizing_buf_inv_only true

...

slk_auto_sizing_buf_inv_only 499
Tweaker™ Variables Version T-2022.03

slkfix -setup -all

See also
slk_auto_sizing_comb_logic_cell_only

slk_auto_sizing_ff_only

slk_auto_sizing_buf_inv_only 500
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_cell_delay_impact
auto_sizing_cell_delay_impact

# Defines the maximum delay impact of each sizing operation stage.

Type
Float

Default
0.05

Description
During the sizing operation, Tweaker will only allow the ECO operation if

the delay variation between before and after ECO does not exceed the value

defined in this variable.

This variable will be ignored when *watch_timing_window variables are set to

true.

In most cases, users are recommended to perform the ECO process by watching

their timing windows due to its reliability compared to setting this

variable.

slk_auto_sizing_cell_delay_impact 501
Tweaker™ Variables Version T-2022.03

Example
set slk_auto_sizing_cell_delay_impact 0.03

See also
slk_fix_hold_watch_timing_window

slk_fix_setup_watch_timing_window

slk_auto_sizing_cell_delay_impact 502
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_comb_logic_cell_only
# Enables or disables the ability of Tweaker to perform auto-sizing on the combinational logic cells only.

Type
Boolean

Default
true

Description
This variable works only when "slk_fix_setup_by_sizing" variable is set to

true.

By default, Tweaker will perform the auto-sizing operation on combinational

logic cells only.

In contrary, when this variable is set to false, Tweaker are able to perform

auto-sizing operation on both combinational logic cells and sequential logic

cells.

Since this variable works in contrary of "slk_auto_sizing_ff_only" variable,

only one of these two variable can be enabled at the same time.

slk_auto_sizing_comb_logic_cell_only 503
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_sizing true

set slk_auto_sizing_comb_logic_cell_only true

set slk_auto_sizing_ff_only false

...

slkfix -setup -all

See also
slk_fix_setup_by_sizing

slk_auto_sizing_ff_only

slk_auto_sizing_buf_inv_only

slk_auto_sizing_comb_logic_cell_only 504
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_disable_si_net_sink_cell
# Controls sizing up on sensitive SI nets' sink cells

Type
Boolean

Default
False

Description
If using report_si_nets to filter sensitive SI nets, the user can enable

this variable to avoid sizing up on the SI nets' sink cells. This variable

is recommended to be used for fixing setup/DRV purposes.

Example
set slk_auto_sizing_disable_si_net_sink_cell true

slkfix ...

See also
report_si_nets

slk_auto_sizing_disable_si_net_sink_cell 505
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_disable_si_net_sink_cell 506
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_effort_threshold
# Set a threshold for Tweaker to automatically enables / disables the high-effort function during sizing ECO.

Type
Integer

Default
empty

Description
Users are able to set a number as the threshold to enable or disable the

high-effort function automatically.

When the number of remaining violation is smaller than the given threshold,

then Tweaker will enable high-effort function during sizing ECO.

In the contrary, when the number of the remaining violation is smaller than

the given threshold, then Tweaker will disable high-effort function during

sizing ECO.

Example
set auto_partition_auto_submit true

slk_auto_sizing_effort_threshold 507
Tweaker™ Variables Version T-2022.03

See also
slk_auto_sizing_high_effort

slk_auto_sizing_effort_threshold 508
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_enable_cell_mapping
# Enables or disables the user-specified cell mapping rule for sizing autofix.

Type
Boolean

Default
false

Description
By setting this variable to true, Tweaker will honor the mapping rule that

will be specified by user after issuing this variable. The mapping rule

that contains the cell candidates for sizing autofix can be specified on

either "slk_cell_mapping_rule", "slk_cell_mapping_rule_regexp"

or "slk_cell_mapping_file".

By default setting (by setting this variable to false), Tweaker will decides

the cell candidates automatically based on the footprints that are defined

in LIB file(s).

Example

slk_auto_sizing_enable_cell_mapping 509
Tweaker™ Variables Version T-2022.03

set slk_auto_sizing_enable_cell_mapping true

See also
slk_cell_mapping_rule

slk_cell_mapping_rule_regexp

slk_cell_mapping_file

slk_auto_sizing_enable_cell_mapping 510
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_ff_only
# Enables or disables the ability of Tweaker to perform auto-sizing only on

flip-flop type of cells.

Type
String

Default
false

Description
By default, all types of cells at violation paths are allowed to be sized

during the auto-sizing.

Tweaker offers more option of constraint that can be used by user to limit

Tweaker to perform the sizing algorithm on the flip-flops only.

Tweaker also offers another similar constraint,

"slk_auto_sizing_comb_logic_cell_only" variable, which limits Tweaker to

perform the sizing algorithm on the combinational logic only.

Since these two variables counter each other, only one of these variables

can be activated at the same time.

If both are set to true, Tweaker will prioritize the

slk_auto_sizing_ff_only 511
Tweaker™ Variables Version T-2022.03

"slk_auto_sizing_ff_only" variable over than the

"slk_auto_sizing_comb_logic_cell_only" variable.

Example
set slk_fix_setup_by_sizing true

set slk_auto_sizing_ff_only true

set slk_auto_sizing_comb_logic_cell_only false

...

slkfix -setup -all

See also
slk_auto_sizing_comb_logic_cell_only

slk_auto_sizing_ff_only 512
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_high_effort
# Enables or disables the usage of Tweaker prediction mechanism during ECO operations.

Type
Boolean

Default
false

Description
By default, Tweaker will use its internal prediction mechanism to calculate

the improvement of each ECO step.

In contrary, if this variable is set to true, Tweaker will ignore the

prediction mechanism and spend efforts trying every available cell type

under the same footprint during sizing operation. This behavior might

increase the fixing rate with longer run time trade-off.

Example
set slk_auto_sizing_high_effort false

slk_auto_sizing_high_effort 513
Tweaker™ Variables Version T-2022.03

See also
N/A

slk_auto_sizing_high_effort 514
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_ignore_input_pin_slack_check
# Disable input pin slack checking during auto sizing stage

Type
Boolean

Default
false

Description
During timing fixing by auto sizing, Tweaker will check each input pin of

target instance will get timing impact based on target slack or not. By

default, if the sub side is improving but one of the input pin side is

impact Tweaker will skip this ECO operation.

If this variable is set to true, Tweaker will skip input pin slack checking

and more cells can be sized.

Example
set slk_auto_sizing_ignore_input_slack_check true

slk_auto_sizing_ignore_input_pin_slack_check 515
Tweaker™ Variables Version T-2022.03

See also
N/A

slk_auto_sizing_ignore_input_pin_slack_check 516
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_instance_file
# Specifies the instance list which will be used during the sizing operation.

Type
String

Default
Empty

Description
This variable only works after "slk_fix_setup_by_sizing" and

"slk_auto_sizing_within_instance_list" variable is set to true.

Before the sizing operation is performed, users can appoint the file which

contains sizing candidates by specified it to this variable.

Tweaker will honor this list and perform the auto-sizing only on the listed

instances.

Format of this list are described as below:

aaa/bbb/c/d cell_x

aaa/bbb/e/f cell_y

aaa/bbb/g/h cell_z

...

slk_auto_sizing_instance_file 517
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_sizing true

set slk_auto_sizing_within_instance_list true

set slk_auto_sizing_instance_file "swapping.list"

...

slkfix -setup -all

See also
slk_fix_setup_by_sizing

slk_auto_sizing_within_instance_list

$Tweaker_Install_DIR/etc/template/tweaker_t1/recovery/*recovery_setting.tcl

slk_auto_sizing_instance_file 518
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_keep_long_wire_slew
# Enables or disables the ability of Tweaker to keep the long wire slew value during auto-sizing operation.

Type
Boolean

Default
true

Description
This variable only works when "slk_fix_setup_by_sizing" variable is set to

true.

If the net of ECO cell is longer than the value defined at

"slk_rce_long_wire_length", the net is considered as a "long net" on Tweaker.

By default, Tweaker will monitor both DRV constraints and the slew variation

of the "long net". During the auto-sizing, Tweaker will only allow the ECO

operation to be executed only if the resulting transition slew is smaller

than the tolerated value which is influenced by "slk_keep_slew_factor"

variable.

slk_auto_sizing_keep_long_wire_slew 519
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_sizing true

set slk_auto_sizing_keep_long_wire_slew true

set slk_rce_long_wire_length 60

set slk_keep_slew_factor 1.2

...

slkfix -setup -all

See also
slk_fix_setup_by_sizing

slk_auto_sizing_keep_long_wire_slew

slk_rce_long_wire_length

slk_keep_slew_factor

slk_auto_sizing_keep_si_slew

slk_auto_sizing_keep_long_wire_slew 520
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_keep_routing
# Enables retain routing topology behavior during autofix operation by sizing algorithm.

Type
Boolean

Default
false

Description
By setting this variable to true, users can restraint Tweaker to perform the

sizing algorithm within the candidate cells which contain the same routing

connection as the original cells. The candidate cells consist of the cells

that have the same footprint as the original one or the cells within the

user-defined mapping rule.

If user want to perform specific VT swap, it will also need to enable the

following two variable and this variable:

set slk_auto_sizing_keep_routing true

set slk_fix_keep_pin_geometry true

set slk_fix_keep_obs_geometry true

slk_auto_sizing_keep_routing 521
Tweaker™ Variables Version T-2022.03

Example
...

set slk_fix_setup_by_sizing true

set slk_auto_sizing_keep_routing true

...

slkfix -setup -all

See also
slk_fix_keep_pin_geometry

slk_fix_keep_obs_geometry

slk_auto_sizing_keep_routing 522
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_keep_si_slew
# Enables or disables the ability of Tweaker to keep the SI slew value in order to maintain or minimize the SI impact of the nets.

Type
Boolean

Default
true

Description
By default, Tweaker would enable keep the slew of "SI nets" when performing

the auto sizing.

The purpose is to minimize, or at least maintain, the SI impact on the nets.

When this feature is enabled, Tweaker will monitor and make a comparison

between the slew value before and after the ECO operation and take the

toleration value which is decided by "slk_keep_slew_factor" into its

consideration.

Tweaker offers two commands to import the SI delay information each for

two different flow:

1. For normal flow, users can use "sisdfin" command. During this operation,

Tweaker will acknowledge the SI delay which is generated by SI analysis

slk_auto_sizing_keep_si_slew 523
Tweaker™ Variables Version T-2022.03

tools while users import the SDF file(s).

2. For simple flow, users can use "set_extract_sisdf" command. During this

operation, Tweaker will self-extract the SI delay from the total delay

while users import the SDF file(s).

Example
set slk_fix_setup_by_sizing true

set slk_auto_sizing_keep_si_slew true

set slk_rce_long_wire_length 60

set slk_keep_slew_factor 1.2

...

slkfix -setup -all

See also
slk_rce_long_wire_length

slk_keep_slew_factor

slk_auto_sizing_keep_long_wire_slew

slk_auto_sizing_keep_si_slew 524
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_level
# Controls the sizing level during autofix.

Type
Integer

Default
empty

Description
Tweaker will do auto sizing among all candidates within the same footprint

or within given the mapping rules if this variable is not issued by user.

If this variable is issued, Tweaker will only size up/down by utilizing

the candidates constrained by the level number. Generally, the level

number of each cell represents its driving strength and it will be

configured automatically before autofix starts.

Example
set slk_auto_sizing_level 3

set slk_fix_setup_by_sizing true

slk_auto_sizing_level 525
Tweaker™ Variables Version T-2022.03

slkfix -setup -all

See also
N/A

slk_auto_sizing_level 526
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_max_fanout_limit
# Defines the maximum fanout threshold of sizing operation target cell.

Type
Integer

Default
32

Description
During the sizing operation, if the fanout number of cell on the violated

path is larger than the value defined in this variable, Tweaker will avoid

the sizing operation on this cell.

Any sizing operation on this kind of cell will possibly generate massive

amount of SI affect on the existing routing an timing due to the number

of shifting fanout nets.

Tweaker will honor this variable during sizing, bypass buffer, and

fine-tune clock operation of slkfix.

Example

slk_auto_sizing_max_fanout_limit 527
Tweaker™ Variables Version T-2022.03

set slk_auto_sizing_max_fanout_limit 64

See also
N/A

slk_auto_sizing_max_fanout_limit 528
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_max_shift_distance
# Specifies the allowed max shift distance during auto-sizing operation.

Type
Integer

Default
10

Description
The variable only works when "slk_auto_fix_fit_to_free_space" is set true.

During the auto-sizing operation, Tweaker will based on the user-defined

range which is specified in this variable and search for available spaces

for those after-ECO overlapping cells.

This specified value will become the radius of searching circle which is

centered with the target cell. If there is no available space within the

searching circle, Tweaker will abort the auto-sizing operation.

The variable will be honored during sizing, bypass buffer, and fine-tune

clock operation of slkfix.

The unit of this variable is um (micron).

slk_auto_sizing_max_shift_distance 529
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_sizing true

set slk_auto_fix_fit_to_free_space true

set slk_auto_sizing_max_shift_distance 15

...

slkfix -setup -all

See also
slk_auto_fix_fit_to_free_space

slk_fix_setup_by_sizing

slk_fix_max_trans_by_sizing

slk_fix_max_cap_by_sizing

slk_fix_setup_by_bypass_buffer

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_setting.*.tcl

slk_auto_sizing_max_shift_distance 530
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_min_improved_slack
# Specifies the minimum improved slack requirement for each auto-sizing

operation to be executed during the auto sizing operation.

Type
Float

Default
0.01

Description
This variable only works when "slk_fix_setup_by_sizing" variable is set to

true.

This variable specifies the minimum improved slack value for each

auto-sizing operation to be performed. If the slack value after the

auto-sizing operation is smaller than the value specified in this variable,

this operation will not be executed.

A smaller the value of this variable increases the possibility of

auto-sizing operation (more aggressive approach) but may results in a

greater risk of timing variation after the ECO routing.

slk_auto_sizing_min_improved_slack 531
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_sizing true

set slk_auto_sizing_min_improved_slack 0.02

...

slkfix -setup -all

See also
slk_fix_setup_by_sizing

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.*.tcl

slk_auto_sizing_min_improved_slack 532
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_rule
# Automatically configures the sizing rules.

Type
String

Default
footprint

Description
Tweaker refers library and automatically configures the mapping rules by

specifying the preference. The acceptable values are footprint, sizing, vt,

vt_sizing, and moving.

footprint

By default, auto sizing behavior will choose sizing candidates among

the same "footprint" defined in the .lib files.

cell_mapping

Directly honor the mapping rules specified by user

"slk_cell_mapping_rule", "slk_cell_mapping_rule_regexp",

"slk_cell_extended_mapping_rule", or

"slk_cell_extended_mapping_rule_regexp".

slk_auto_sizing_rule 533
Tweaker™ Variables Version T-2022.03

sizing

When using this setting, Tweaker will take the same function cells and

also at the same LIB file as its sizing candidates.

vt

Auto configure vt swap rules during auto fix.

When using this setting, the cells with the same pin location and width/area

will be the candidates in the same vt group.

vt_sizing

Auto configure vt+sizing during auto fix.

When using this setting, Tweaker will combine the cells within the vt

and sizing group of target cell as its candidates.

function

Auto configure function group during auto fix.

When using this setting, Tweaker will treat all function the same cells

(pin is the same too) as its candidates.

In this group delay/buffer can be changed to each other.

moving

Only location adjustment, but not sizing, is allowed on each target instance

Example
set slk_auto_sizing_rule footprint

set slk_cell_mapping_rule {*hvt *rvt *lvt}

slk_auto_sizing_rule 534
Tweaker™ Variables Version T-2022.03

set slk_auto_sizing_rule cell_mapping

set slk_auto_sizing_rule sizing

# BUFX1HVT can be sized to BUFX2HVT, BUFX4HVT, ...

set slk_auto_sizing_rule vt

# BUFX1HVT can be swapped to BUFX1SVT, BUFX1LVT, ...

set slk_auto_sizing_rule vt_sizing

# BUFX1HVT can be sized to BUFX1RVT, BUFX2LVT, ...

set slk_auto_sizing_rule moving

See also
slk_auto_sizing_enable_cell_mapping

slk_cell_extended_mapping_rule

slk_cell_extended_mapping_rule_regexp

slk_cell_mapping_rule

slk_cell_mapping_rule_regexp

slk_auto_sizing_rule 535
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_setup_twf_impact
# Enables or disables the ability of Tweaker to allow any TWF setup impact when

"slk_fix_setup_minimize_worst_slack" is not enabled.

Type
Float

Default
0.05

Description
Generally, users are suggested to enable the

"slk_fix_setup_minimize_worst_slack" during auto-sizing for setup autofix to

get an acceptable QoR. However, Tweaker offers the ability to let users to

manually control the level of auto-sizing during the setup autofix

regardless of its local WNS variation.

Users can use both "slk_auto_sizing_min_improved_slack" and this variable to

control the level of autofix aggressiveness.

Example

slk_auto_sizing_setup_twf_impact 536
Tweaker™ Variables Version T-2022.03

set slk_fix_setup_minimize_worst_slack false

set slk_fix_setup_by_sizing true

set slk_auto_sizing_setup_twf_impact 0.03

set slk_auto_sizing_min_improved_slack 0.02

...

slkfix -setup -all

See also
slk_fix_setup_minimize_worst_slack

slk_fix_setup_by_sizing

slk_auto_sizing_min_improved_slack

slk_auto_sizing_setup_twf_impact 537
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_use_constant_cell
# Enables or disables the utilization of constant cell during the auto-sizing operation.

Type
Boolean

Default
false

Description
This is a metal eco related variable.

When this variable is set to true, Tweaker will utilize the constant cells

during auto-sizing operation under metal ECO mode.

Example
set metal_eco_mode true

set slk_auto_sizing_use_constant_cell true

See also
metal_eco_mode

slk_auto_sizing_use_constant_cell 538
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_use_constant_cell 539
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_watch_leakage_cost
# Consider cell leakage as one of the cost functions during timing ECO

Type
Boolean

Default
False

Description
This Tweaker variable controls whether or not cell leakage is considered as

one of the cost functions during timing ECO.

If 'slk_leakage_power_lib' is not given, Tweaker takes the first LIB corner

as the leakage reference. If 'slk_leakage_power_lib' is given, Tweaker takes

this LIB as leakage reference.

Example
source */fix_setup/fix_setup_setting.vtswap.tcl

...

set slk_cell_mapping_rule_regexp $slow_to_fast_mapping_rule

slk_auto_sizing_watch_leakage_cost 540
Tweaker™ Variables Version T-2022.03

set slk_auto_sizing_watch_leakage_cost true

slkfix -hold -ff -slack_range -0.5 0

See also
slk_leakage_power_lib

slk_auto_sizing_watch_leakage_cost 541
Tweaker™ Variables Version T-2022.03

slk_auto_sizing_within_instance_list
# Enables or disables auto-sizing by using the candidates within the user specified instance list.

Type
Boolean

Default
false

Description
By default, all instances within the violation domain are considered as

candidates during the auto-sizing operation.

However, Tweaker offers the ability to target specific instances during

the auto-sizing operation by setting this variable to true. During this

setting , Tweaker are limited to perform the auto-sizing on the instances

within the list specified in "slk_auto_sizing_instance_file" variable.

This variable is commonly used when performing setup, hold, or transition

recovery after power ECO where only those modified(swap-down) instances are

expected to be restored back to its original cell due to its timing result.

slk_auto_sizing_within_instance_list 542
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_sizing true

set slk_auto_sizing_within_instance_list true

set slk_auto_sizing_instance_file "swapping.list"

...

slkfix -setup -all

See also
slk_auto_sizing_instance_file

$Tweaker_Install_DIR/etc/template/tweaker_t1/recovery/*recovery_setting.tcl

slk_auto_sizing_within_instance_list 543
Tweaker™ Variables Version T-2022.03

slk_auto_update_path_delay
# Tweaker variable to enable or disable the auto update path delay feature

Type
Boolean

Default
true

Description
By default when autofix or manual ECO are applied on the input paths,

the delay on the paths should change accordingly.

This variable are always suggested to be set true to get path update correctly.

Example
set slk_auto_update_path_delay true

See also
N/A

slk_auto_update_path_delay 544
Tweaker™ Variables Version T-2022.03

slk_autofix_max_undo_domain
# Specifies the max violation domain can be undo during autofix.

Type
Integer

Default
1000

Description
On the GUI mode, Tweaker has the "undo" button at each view's tool column

for manual editing. This variable defines the maximum path count which is

allowed to be undo after the autofix. Users are allowed to edit this

variable to acceptable memory usage during the undo process.

The higher value assigned to this variable means undo can be performed in a

bigger path domain with a larger memory consumption trade-off.

Example
set slk_autofix_max_undo_domain 5000

...

slk_autofix_max_undo_domain 545
Tweaker™ Variables Version T-2022.03

slkfix -setup|-hold

See also
N/A

slk_autofix_max_undo_domain 546
Tweaker™ Variables Version T-2022.03

slk_autofix_split_sizing_down_driver
# Enable sizing down driver when split load/cell by autofix

Type
Boolean

Default
false

Description
The fanout of the driver when fixing setup or DRC violation by split load/

cell will be lesser than original, there is possibility the driver itself

can be sized down without introducing new DRC violation and saving power.

Tweaker will try to sizing down the driver after split load/cell while fix-

ing setup/DRC violation when this variable is set to "true". Otherwise,

Tweaker will keep the original size of the driver.

Example
tweaker_shell> set slk_fix_setup_by_split_load true

tweaker_shell> set slk_autofix_split_sizing_down_driver true

slk_autofix_split_sizing_down_driver 547
Tweaker™ Variables Version T-2022.03

tweaker_shell> slkfix -setup -all

See also
[ VAR ] slk_fix_setup_by_split_load

[ VAR ] slk_fix_setup_by_split_cell

[ VAR ] slk_fix_max_trans_by_split_cell

[ VAR ] slk_fix_max_cap_by_split_cell

[ VAR ] slk_fix_max_fanout_by_split_cell

[ VAR ] slk_fix_noise_by_split_cell

[ VAR ] slk_fix_si_double_switching_by_split_cell

[ VAR ] slk_setup_splitload_margin

[ VAR ] slk_fix_setup_min_improved_slack_of_split_cell

[ VAR ] slk_fix_trans_min_improved_slack_of_split_cell

slk_autofix_split_sizing_down_driver 548
Tweaker™ Variables Version T-2022.03

slk_avg_offset
# Auto-record the average offset value after issuing "slkdc -check_slack_consistency" command.

Type
Float

Default
Empty

Description
After executing "slkdc -check_slack_consistency" command, Tweaker will save

the average offset value into this variable for the following flow control.

Users can use this variable as a threshold to continue or stop the ECO

proceeding by writing the decision statement on a tcl script.

This variable is commonly used to stop the timing fixing operation if the

value recorded in this variable is larger than expected.

Example
...

slkdc -check_slack_consistency

slk_avg_offset 549
Tweaker™ Variables Version T-2022.03

printvar slk_avg_offset

See also
slk_max_offset

slkdc (cmd)

slk_avg_offset 550
Tweaker™ Variables Version T-2022.03

slk_block_report_limit
# Defines the maximum number of report count during "slkreport -blocking_code_summary".

Type
Integer

Default
100

Description
Specifies the allowed maximum number of paths to be reported in blocking

code when executing "slkreport -blocking_code_summary".

Example
set slk_block_report_limit 200

See also
slkreport (cmd)

slk_block_report_limit 551
Tweaker™ Variables Version T-2022.03

slk_bypass_buff_cell_delay_impact
# Specifies the cell delay impact tolerated at candidate's driver.

Type
Float

Default
0.05

Description
During bypass operation, if both "slk_fix_setup_minimize_worst_slack" and

"slk_fix_setup_watch_timing_window" variables are set to true, Tweaker will

monitor the slack value within TWF and compare it with the value from local

WNS and fix it until it is improved.

If any of above variables is set to false, Tweaker will utilize the value

specified in this variable as the threshold toleration value to decide if

current bypass action is can be proceeded or not.

Example
set slk_bypass_buff_cell_delay_impact 0.02

slk_bypass_buff_cell_delay_impact 552
Tweaker™ Variables Version T-2022.03

See also
slk_fix_hold_watch_timing_window

slk_fix_setup_by_bypass_buffer

slk_fix_setup_minimize_worst_slack

slk_fix_setup_watch_timing_window

slk_bypass_buff_cell_delay_impact 553
Tweaker™ Variables Version T-2022.03

slk_bypass_buff_list
# Specify only the list of buffer cells can be bypassed.

Type
String

Default
Empty

Description
By default, all buffer cells are allowed to be bypassed. However, users are

allowed to restraint Tweaker to only bypass some certain types of buffer by

listing them on this variable.

This variable also supports wildcard expression.

Example
set slk_fix_setup_by_bypass_buffer true

set slk_bypass_buff_list { BUFFD1 DELAY* BUFFOD }

...

slkfix -setup -all

slk_bypass_buff_list 554
Tweaker™ Variables Version T-2022.03

See also
slk_fix_setup_by_bypass_buffer

slk_bypass_buff_list 555
Tweaker™ Variables Version T-2022.03

slk_bypass_buff_min_improved_slack
# Specifies the minimum improved slack value for each bypass action.

Type
Float

Default
0.05

Description
Defines the minimum slack improvement for each bypass action.

By setting a larger value may improve the effectiveness in selecting the

candidate but may also decrease the fixing rate.

In contrary, by setting a smaller value to this variable may increase the

fixing rate due to more ECO action possibility.

Example
set slk_fix_setup_by_bypass_buffer true

set slk_bypass_buff_min_improved_slack 0.02

...

slk_bypass_buff_min_improved_slack 556
Tweaker™ Variables Version T-2022.03

slkfix -setup -all

See also
slk_fix_setup_by_bypass_buffer

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.bypass.tcl

slk_bypass_buff_min_improved_slack 557
Tweaker™ Variables Version T-2022.03

slk_bypass_buffer_disable_new_assign
# Disables or enables the ability of Tweaker to cancel any bypass action on

buffers if it results in generating new net assignment.

Type
Boolean

Default
false

Description
When this variable is set to false, Tweaker have the ability to create and

assign new net when a buffer is by-passed or removed during the setup or

area-recovery autofix.

In the contrary, if this variable is set to true, Tweaker will not perform

the bypass operation which requires any additional new ports.

Since most of the third party tool cannot support the ECO tcl that contains

assign statement, this variable is usually set to true.

Example

slk_bypass_buffer_disable_new_assign 558
Tweaker™ Variables Version T-2022.03

set slk_bypass_buffer_disable_new_assign true

set slk_fix_setup_by_bypass_buffer true

...

slkfix -setup -all

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.bypass.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/area_recovery/fix_area_recovery

_setting.tcl

slk_bypass_buffer_disable_new_assign 559
Tweaker™ Variables Version T-2022.03

slk_bypass_buffer_disable_new_port
# Disables or enables the ability to perform bypass operation if it results in

any additional module port(s).

Type
Boolean

Default
false

Description
When this variable is set to false, Tweaker have the ability to create and

assign new ports when a buffer is by-passed or removed during the setup or

area-recovery autofix.

In the contrary, if this variable is set to true, Tweaker will not perform

the bypass operation which requires any additional new ports.

Since most of the third party tool cannot support the ECO tcl that contains

assign statement, this variable is usually set to true.

Example

slk_bypass_buffer_disable_new_port 560
Tweaker™ Variables Version T-2022.03

set slk_bypass_buffer_disable_new_port true

set slk_fix_setup_by_bypass_buffer true

...

slkfix -setup -all

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.bypass.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/area_recovery/fix_area_recovery

_setting.tcl

slk_bypass_buffer_disable_new_port 561
Tweaker™ Variables Version T-2022.03

slk_bypass_instance_file
# Specifies the instance candidate list for bypass operation.

Type
String

Default
empty

Description
This variable works only when variable "slk_bypass_within_instance_list"

is set to true.

When bypass algorithm is adopted, users can apply the desired bypass

candidates by listing them on a file.

Before the bypass operation is executed, users can appoint this list to

Tweaker by assigning it into this variable.

This list can be either work as bypass candidate list or the candidate list

which is not allowed to be bypassed.

Example

slk_bypass_instance_file 562
Tweaker™ Variables Version T-2022.03

1. Setting this variable as bypass instance list:

set slk_bypass_within_instance_list true

set slk_bypass_preserve_instance_list false

set slk_bypass_instance_file "./bypass.list"

2. Setting this variable as instance list which are not allowed to be

bypassed:

set slk_bypass_within_instance_list true

set slk_bypass_preserve_instance_list true

set slk_bypass_instance_file "./bypass.list"

See also
slk_bypass_within_instance_list

slk_bypass_preserve_instance_list

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.bypass.tcl

slk_bypass_instance_file 563
Tweaker™ Variables Version T-2022.03

slk_bypass_preserve_instance_list
# Decides whether "slk_bypass_instance_file" is treated as bypassed instances

list or preserve instance list during the bypassed operation.

Type
Boolean

Default
false

Description
This variable only valid when "slk_bypass_within_instance_list" is set to

true.

By default, Tweaker will limit the bypass operation only on the instances

within the list that is appointed in "slk_bypass_instance_file" variable.

In the contrary, if this variable is set to true, Tweaker would skip any

bypass operation that will be performed on those instance which is listed in

the list that appointed in "slk_bypass_instance_file" variable.

Example

slk_bypass_preserve_instance_list 564
Tweaker™ Variables Version T-2022.03

1. Setting "slk_bypass_instance_file" as bypass instance list:

set slk_bypass_within_instance_list true

set slk_bypass_preserve_instance_list false

set slk_bypass_instance_file "./bypass.list"

2. Setting "slk_bypass_instance_file" as buffer list which are not allowed

to be bypassed:

set slk_bypass_within_instance_list true

set slk_bypass_preserve_instance_list true

set slk_bypass_instance_file "./bypass.list"

See also
slk_bypass_within_instance_list

slk_bypass_instance_file

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.bypass.tcl

slk_bypass_preserve_instance_list 565
Tweaker™ Variables Version T-2022.03

slk_bypass_within_instance_list
# Disables or enables the bypass operation by honoring the user-specified

instance list.

Type
Boolean

Default
false

Description
By default, Tweaker will perform the bypass operation on all available

buffers inside ECO domain as long as they do not generate any timing impact.

However, by setting this variable to true, users are able to limit Tweaker

to perform the bypass operation only on specific instance(s) or even skip

the bypass operation on some specific instance(s). This specific instance(s)

list can be appoint to Tweaker by specifying it in

"slk_bypass_instance_file" variable.

This variable works with "slk_bypass_preserve_instance_list" in deciding

whether "slk_bypass_instance_file" are treated as instance list which is

expected to be bypassed or as the instance list which is not allowed to be

slk_bypass_within_instance_list 566
Tweaker™ Variables Version T-2022.03

bypassed.

Example
1. Setting "slk_bypass_instance_file" as bypass instance list:

set slk_bypass_within_instance_list true

set slk_bypass_preserve_instance_list false

set slk_bypass_instance_file "./bypass.list"

2. Setting "slk_bypass_instance_file" as buffer list which are not allowed

to be bypassed:

set slk_bypass_within_instance_list true

set slk_bypass_preserve_instance_list true

set slk_bypass_instance_file "./bypass.list"

See also
slk_bypass_preserve_instance_list

slk_bypass_instance_file

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.bypass.tcl

slk_bypass_within_instance_list 567
Tweaker™ Variables Version T-2022.03

slk_cap_unit
# Defines the capacitance unit of Tweaker slack domain.

Type
String [ pf | ff ]

Default
pf

Description
This variable holds the capacitance unit (pf or ff) used inside Tweaker GUI,

variables, and commands.

If capacitance unit is changed, each slk-related variable whose unit is

capacitance unit will also need to be changed accordingly. Hence this

variable is not recommended to be changed.

If the capacitance unit of the reports is different from the one defined

in this variable, users are strongly recommended to apply it to

"slk_report_cap_unit" variable instead of this variable.

The only timing to apply this is before begin_corner/end_corner and

cannot change anymore after it.

slk_cap_unit 568
Tweaker™ Variables Version T-2022.03

Example
set slk_cap_unit pf

set_load -all_outputs 0.0375

set slk_cap_unit ff

set_load -all_outputs 37.5

See also
slk_report_cap_unit

$Tweaker_Install_DIR/etc/template/general_script/general_setting.tcl

slk_cap_unit 569
Tweaker™ Variables Version T-2022.03

slk_ceff_derate_factor
# Specifies the effective C derate factor for min, typical, and max timing

column.

Type
Float

Default
0.9 1.0 1.1

Description
Tweaker will estimate the effective c/total c for ECO nets from the original

net's RC which is extracted from spef file.

For more conservative timing calculation, users can apply this effective C

derate factor to derive a pessimistic timing for min/typ/max timing

respectively.

The format of this variable: "min_timing_type typ_timing_type

max_timing_type".

Example

slk_ceff_derate_factor 570
Tweaker™ Variables Version T-2022.03

set slk_ceff_derate_factor 0.9 1.0 1.1

See also
$Tweaker_Install_DIR/etc/template/general_script/general_setting.tcl

slk_ceff_derate_factor 571
Tweaker™ Variables Version T-2022.03

slk_cell_extended_mapping_rule
# Specifies the smart auto-extending mapping rule.

Type
string

Default
empty

Description
Compared to the variable "slk_cell_mapping_rule" where user are required to

specify multiple mapping pairs manually separated by ":" , Tweaker provides

a convenient alternative variable to smartly auto-extend the a single

mapping rule that is specified by the user.

For example, if there are 4 types of VT cells: HVT, SVT, LVT, and ULVT,

the result of conventional mapping rule variable of:

set slk_cell_mapping_rule { *HVT *SVT *LVT *ULVT : *SVT *LVT *ULVT :

*LVT *ULVT }

can be easily presented by:

set slk_cell_extended_mapping_rule { *HVT *SVT *LVT *ULVT }

This variable is extremely useful especially for a complex cell list.

slk_cell_extended_mapping_rule 572
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_sizing true

set slk_cell_extended_mapping_rule { *HVT *SVT *LVT *ULVT }

...

slkfix -setup -all

See also
slk_cell_mapping_rule

slk_cell_extended_mapping_rule 573
Tweaker™ Variables Version T-2022.03

slk_cell_extended_mapping_rule_regexp
# Tweaker variable to accept the regular expression mapping rule by auto

extending the mapping pair.

Type
String

Default
empty

Description
In the conventional method, users have to specify multiple mapping pairs

by specifying them on the "slk_cell_mapping_rule_regexp" variable and

separated with ":".

However, Tweaker offers a much more convenient way to auto-extend a single

mapping rule by specifying it on this variable.

For example, if there are 4 types of VT cells used in the design (HVT, SVT,

LVT, and ULVT); users can use:

set slk_cell_extended_mapping_rule_regexp { @HVT @SVT @LVT @ULVT }

instead of:

set slk_cell_mapping_rule_regexp { @HVT @SVT @LVT @ULVT :

slk_cell_extended_mapping_rule_regexp 574
Tweaker™ Variables Version T-2022.03

@SVT @LVT @ULVT : @LVT @ULVT }

Notice that Tweaker will honor the order of mapping rule that is specified

in this variable Tweaker will not work in the opposite order.

Example
set slk_fix_setup_by_sizing true

set slk_cell_extended_mapping_rule_regexp { *HVT *SVT *LVT *ULVT }

...

slkfix -setup -all

See also
slk_cell_mapping_rule_regexp

slk_cell_extended_mapping_rule_regexp 575
Tweaker™ Variables Version T-2022.03

slk_cell_mapping_file
# Specifies the mapping rule file.

Type
String

Default
Empty

Description
When sizing algorithm (including vt-swap) is adopted, users can apply the

desired mapping rule by listing them on a file.

Before the desired autofix is performed, users can appoint this list to

Tweaker by assigning it into this variable.

The format arrangement of this file is a source cells name paired with one

or multiple target cells in a each line as shown below.

# Mapping file format

# source target1 target2

BUFFD0HVT BUFFDO BUFFDOLVT

AOI22D0HVT AOI22D0 AOI22D0LVT

...

slk_cell_mapping_file 576
Tweaker™ Variables Version T-2022.03

This variable only works after "slk_auto_sizing_enable_cell_mapping" is

issued and set to true.

Example
set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_file mapping_list.txt

...

set slk_fix_setup_by_sizing true

slkfix -setup -all

See also
slk_auto_sizing_enable_cell_mapping

slk_cell_mapping_rule

slk_cell_mapping_rule_regexp

slk_cell_extended_mapping_rule

slk_cell_mapping_file 577
Tweaker™ Variables Version T-2022.03

slk_cell_mapping_rule
# Assigns the mapping rule.

Type
String

Default
empty

Description
When sizing algorithm (including vt-swap) is adopted, users can apply the

desired mapping rule to this variable and Tweaker will use this mapping rule

as its sizing/swapping reference.

This variable supports "*" symbol as a wild card when describing the mapping

rule pattern

Tweaker also supports the "multiple rules in one command" by following the

arrangement below:

set slk_cell_mapping_rule { pattern1 : pattern2 : ... }

This variable works only when slk_auto_sizing_enable_cell_mapping is set to

true.

slk_cell_mapping_rule 578
Tweaker™ Variables Version T-2022.03

Example
set slk_auto_sizing_enable_cell_mapping true

# The below example allows swapping cells named *hvt to cells named *rvt or

# *lvt.

set slk_cell_mapping_rule {*hvt *rvt *lvt}

# The below example specifies three sets of mapping rules.

set slk_cell_mapping_rule { *HVT * *LVT : *ODHVT * *LVT : * *LVT }

See also
slk_cell_mapping_rule_regexp

slk_auto_sizing_enable_cell_mapping

slk_cell_extended_mapping_rule

slk_cell_extended_mapping_rule_regexp

slk_cell_mapping_file

slk_cell_mapping_rule 579
Tweaker™ Variables Version T-2022.03

slk_cell_mapping_rule_regexp
# Assigns the mapping rule in regular expression style.

Type
String

Default
empty

Description
When sizing algorithm (including vt-swap) is adopted, users can apply the

desired mapping rule to this variable and Tweaker will use this mapping rule

as its sizing/swapping reference.

This variable supports "@" symbol as a wild card when describing the mapping

rule pattern.

Tweaker also supports the "multiple rules in one command" by following the

arrangement below:

set slk_cell_mapping_rule_regexp { pattern1 : pattern2 : ... }

This variable works only when slk_auto_sizing_enable_cell_mapping is set to

true.

slk_cell_mapping_rule_regexp 580
Tweaker™ Variables Version T-2022.03

Example
set slk_cell_mapping_rule_regexp {@LVT@ @LVT@_D[0-9]+}

The cell mapping result is as below:

--------------------------------------------

BUFLVTX1 BUFLVTX1_D2 BUFLVTX1_D4 BUFLVTX1_D8 BUFLVTX1_D16

BUFLVTX2 BUFLVTX2_D2 BUFLVTX2_D4 BUFLVTX2_D8 BUFLVTX2_D16

BUFLVTX4 BUFLVTX4_D2 BUFLVTX4_D4 BUFLVTX4_D8 BUFLVTX4_D16

INVLVTX1 INVLVTX1_D2 INVLVTX1_D4 INVLVTX1_D8 INVLVTX1_D16

INVLVTX2 INVLVTX2_D2 INVLVTX2_D4 INVLVTX2_D8 INVLVTX2_D16

INVLVTX4 INVLVTX4_D2 INVLVTX4_D4 INVLVTX4_D8 INVLVTX4_D16

--------------------------------------------

set slk_cell_mapping_rule_regexp {@LVT@ @HVT@(C|D)_B[0-9][0-9]}

The cell mapping result is as below:

--------------------------------------------

BUFLVTX1 BUFHVTX1C_B02 BUFHVTX1D_B02 BUFHVTX1C_B12 BUFHVTX1D_B12

BUFLVTX2 BUFHVTX2C_B02 BUFHVTX2D_B02 BUFHVTX2C_B12 BUFHVTX2D_B12

slk_cell_mapping_rule_regexp 581
Tweaker™ Variables Version T-2022.03

------------------------------------------

See also
slk_auto_sizing_enable_cell_mapping

slk_cell_mapping_rule

slk_cell_extended_mapping_rule

slk_cell_extended_mapping_rule_regexp

slk_cell_mapping_file

slk_cell_mapping_rule_regexp 582
Tweaker™ Variables Version T-2022.03

slk_cell_stealing_hold_margin
# Hold time margin for stolen cell

Type
Float

Default
0.1

Description
In cell stealing methodology, Tweaker uses variables slk_setup_target_slk

and slk_hold_target_slk as targets for eco cells. The stolen cells use

variables slk_cell_stealing_setup_margin and slk_cell_stealing_hold_margin

as preservative margins. Usually, it's greater than hold target slack to

keep conservative margin for stolen cells and to prevent relative paths of

stolen cells from timing impact.

It also influences the highlight in GUI. The color of stolen cell is

determined by its predicted timing and this variable as the threshold.

Example

slk_cell_stealing_hold_margin 583
Tweaker™ Variables Version T-2022.03

set slk_cell_stealing_hold_margin 0.8

See also
slk_cell_stealing_setup_margin

slk_cell_stealing_hold_margin 584
Tweaker™ Variables Version T-2022.03

slk_cell_stealing_setup_margin
# Setup time margin for stolen cell

Type
Float

Default
0.1

Description
In cell stealing methodology, Tweaker uses variables slk_setup_target_slk

and slk_hold_target_slk as targets for eco cells. The stolen cells use

variables slk_cell_stealing_setup_margin and slk_cell_stealing_hold_margin

as preservative margins. Usually, it's greater than setup target slack to

keep conservative margin for stolen cells and to prevent relative paths of

stolen cells from timing impact.

It also influences the highlight in GUI. The color of stolen cell is

determined by its predicted timing and this variable as the threshold.

Example

slk_cell_stealing_setup_margin 585
Tweaker™ Variables Version T-2022.03

set slk_cell_stealing_setup_margin 0.8

See also
slk_cell_stealing_hold_margin

slk_cell_stealing_setup_margin 586
Tweaker™ Variables Version T-2022.03

slk_check_spef_quality
# Checks the quality of SPEF files after 'spefin'

Type
Boolean

Default
True

Description
This variable, when set to 'true', checks whether or not the basic

requirements for the input SPEF files are met. Users can use this variable

to check the correctness of their SPEF files before proceeding to their next

step.

Examples
spefin .....

.....

set slk_check_spef_quality true

...

slk_check_spef_quality 587
Tweaker™ Variables Version T-2022.03

build_unit_rc_table

...

See also
N/A

slk_check_spef_quality 588
Tweaker™ Variables Version T-2022.03

slk_congestion_aware_exhaustive_search_range
# Tweaker variable to specify the search range when exhaustive congestion aware is enabled.

Type
Float

Default
5.0

Description
When congestion aware insertion is enabled and the congestion threshold

is with two different values which result three congestion intervals,

the middle one will have more complex buffer insertion behavior considering

the free space.

This variable provides Tweaker to know how much distance of free space is

allowed for buffer insertion in the middle interval.

This variable works when congestion aware insertion is enabled by set the

"slk_congestion_aware_insertion" variable to true and together with the

value of the "slk_congestion_aware_threshold" variable is with 2 different

numbers.

slk_congestion_aware_exhaustive_search_range 589
Tweaker™ Variables Version T-2022.03

Example
set slk_congestion_aware_insertion true

set slk_congestion_aware_threshold 0.5 0.7

set slk_congestion_aware_exhaustive_search_range 10

See also
slk_congestion_aware_insertion

slk_congestion_aware_threshold

slk_congestion_aware_exhaustive_search_range 590
Tweaker™ Variables Version T-2022.03

slk_congestion_aware_hfs_search_range
# Enables or disables Tweaker to honor user-specified search range during HFS operation.

Type
Float

Default
empty

Description
When congestion aware feature is enabled during HFS operation, by default,

Tweaker will auto create the search range according the net's bounding box

to search the free space for eco cells.

However, if this variable is specified, use this value as its search range

instead of using the internal search range value.

The unit of the specified value is um.

Example
set slk_congestion_aware_insertion true

set slk_congestion_aware_threshold 0.3 0.7

slk_congestion_aware_hfs_search_range 591
Tweaker™ Variables Version T-2022.03

set slk_congestion_aware_hfs_search_range 20

...

slkfix -max_trans -all

See also
slk_congestion_aware_insertion

slk_congestion_aware_threshold

slk_congestion_aware_hfs_search_range 592
Tweaker™ Variables Version T-2022.03

slk_congestion_aware_insertion
# Routing congestion aware ECO related variable.

Type
Boolean

Default
false

Description
When fixing timing violation by using buffer insertion algorithm, if this

variable is set to true, Tweaker will take the routing congestion

information from congestion_db as the cost reference. Tweaker will use this

information to avoid buffers insertion in the highly routed congestion area

and prevent any congestion aggravation.

Example
source Load_design.tcl

defin -route "def_file"

create_congestion_db -top_routing_layer metal6 -bottom_routing_layer metal1

slk_congestion_aware_insertion 593
Tweaker™ Variables Version T-2022.03

set slk_congestion_aware_insertion true

See also
slk_congestion_aware_search_range (var)
slk_congestion_aware_threshold (var)
slk_insert_enable_routing_path_congestion_aware (var)
slk_update_congestion_map (var)
design_analysis_grid_height_by_row (var)
congestion_map_grid_size_by_row (var)
design_analysis_collecting_mode (var)
create_congestion_db (cmd)
free_congestion_db (cmd)
create_design_analysis_grid_db (cmd)
remove_design_analysis_grid_db (cmd)
get_grids (cmd)
set_resource_window (cmd)
add_blockage (cmd)
delete_blockage (cmd)
draw (cmd)

slk_congestion_aware_insertion 594
Tweaker™ Variables Version T-2022.03

slk_congestion_aware_moving
# Makes cell-moving ECO algorithm routing congestion aware.

Type
Boolean

Default
false

Description
If this variable is set true, the cell-moving algorithm becomes routing

congestion aware. If this variable is false, cell-moving algorithm is only

placement aware.

A congestion cost index will be calculated for both the input net and the

output net of the moved cell. If either the input net congestion cost index

or the output net congestion cost index becomes worse at the estimated new

location of the cell than its original location, Tweaker aborts the cell

movement.

Congestion map needs to be built with [CMD] create_congestion_db for this

feature to work.

The calculation of the congestion cost index refers to

slk_congestion_aware_moving 595
Tweaker™ Variables Version T-2022.03

[VAR] slk_congestion_aware_threshold, with which the routing congested

zones are determined.

Example
#=== To create congestion map and define the congestion thresholds ===

...

defin -route $DESIGN.def

create_congestion_db -top_routing_layer M6 -bottom_routing_layer M3

set slk_congestion_aware_threshold 0.8 0.9

#=== To enable the cell moving algorithm and congestion aware moving ===

...

slkdc -check_slack_consistency

...

slkfix -design_list $DESIGN

...

source $TOOL_INSTALLATION_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/

fix_setup_setting.moving.tcl

set slk_congestion_aware_moving true

slkfix -setup -all

See also
create_congestion_db (cmd)

slk_congestion_aware_moving 596
Tweaker™ Variables Version T-2022.03

slk_congestion_aware_threshold (var)

slk_congestion_aware_moving 597
Tweaker™ Variables Version T-2022.03

slk_congestion_aware_sizing
# Makes cell-sizing ECO algorithm routing congestion aware.

Type
Boolean

Default
false

Description
If this variable is set true, the cell-sizing algorithm becomes routing

congestion aware. If this variable is false, cell-sizing algorithm is only

placement aware.

A congestion cost index will be calculated for both the input net and the

output net of the sized cell. If either the input net congestion cost index

or the output net congestion cost index becomes worse at the estimated new

location of the cell than its original location, Tweaker aborts the cell

sizing.

Congestion map needs to be built with [CMD] create_congestion_db for this

feature to work.

The calculation of the congestion cost index refers to

slk_congestion_aware_sizing 598
Tweaker™ Variables Version T-2022.03

[VAR] slk_congestion_aware_threshold, with which the routing congested

zones are determined.

Example
#=== To create congestion map and define the congestion thresholds ===

...

defin -route $DESIGN.def

create_congestion_db -top_routing_layer M6 -bottom_routing_layer M3

set slk_congestion_aware_threshold 0.8 0.9

#=== To enable the cell sizing algorithm and congestion aware sizing ===

...

slkdc -check_slack_consistency

...

slkfix -design_list $DESIGN

...

source $TOOL_INSTALLATION_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/

fix_setup_setting.vtswap.tcl

set slk_congestion_aware_sizing true

slkfix -setup -all

source $TOOL_INSTALLATION_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/

fix_setup_setting.sz.tcl

set slk_congestion_aware_sizing true

slk_congestion_aware_sizing 599
Tweaker™ Variables Version T-2022.03

slkfix -setup -all

See also
create_congestion_db (cmd)
slk_congestion_aware_threshold (var)

slk_congestion_aware_sizing 600
Tweaker™ Variables Version T-2022.03

slk_congestion_aware_threshold
# Defines the congestion upper-bound and lower-bound threshold values.

Type
Float

Default
0.5 0.7

Description
When congestion aware insertion feature is activated (by setting

"slk_congestion_aware_insertion" to true), Tweaker will define the level of

congestion within the search range which can be defined by using

"slk_congestion_aware_hfs_search_range" variable during transition fixing or

"slk_give_up_insert_buf_distance" during hold fixing as its reference. If

both of these value are not defined, Tweaker will auto-create the level of

congestion.

Below is how the upper-bound and lower-bound of this variable works in

Tweaker:

1. If the available free space has a congestion with value bigger than

upper-bound, Tweaker will search for another free space within the

slk_congestion_aware_threshold 601
Tweaker™ Variables Version T-2022.03

search range which has the congestion value between the upper bound and

the lower bound.

2. If the available free space has a congestion with value between upper and

lower bound, Tweaker will choose a location with the lowest congestion

value for insertion.

3. If the ideal insertion location has a congestion with value smaller than

lower bound, Tweaker will choose the location with the shortest distance

to perform the insertion operation.

Example
source load_design.tcl

defin -route "def_file"

create_congestion_db -top_routing_layer metal6 -bottom_routing_layer metal1

set slk_congestion_aware_insertion true

set slk_congestion_aware_threshold 0.4 0.8

# fix trans search range

set slk_congestion_aware_hfs_search_range 5

# fix hold search range

set slk_give_up_insert_buf_distance 15

...

slk_congestion_aware_threshold 602
Tweaker™ Variables Version T-2022.03

See also
create_congestion_db

slk_congestion_aware_insertion

slk_congestion_aware_hfs_search_range

slk_give_up_insert_buf_distance

slk_congestion_aware_threshold 603
Tweaker™ Variables Version T-2022.03

slk_consistency_check_fail
# Enables or disables the ability to continue the ECO process when the slack

inconsistency failure is detected.

Type
Boolean

Default
false

Description
By default, Tweaker will automatically set this variable to true when

"slkdc -check_slack_consistency" command is executed.

The inconsistency check threshold can be either

"slk_path_base_analysis_threshold" or "slk_consistency_check_threshold"

for the PBA mode and GBA mode respectively.

In an automatic ECO flow, this variable can be used as a check item before

launching timing fix.

Example

slk_consistency_check_fail 604
Tweaker™ Variables Version T-2022.03

source load_design.tcl

slkdc -check_slack_consistency

if { $slk_consistency_check_fail == "false"} {

source timing_fix.tcl

else {

puts "Fail consistency check\n"

exit

See also
slk_path_base_analysis_threshold

slk_consistency_check_threshold

slkdc (cmd)

slk_consistency_check_fail 605
Tweaker™ Variables Version T-2022.03

slk_consistency_check_threshold
# Specifies the threshold of inconsistency check.

Type
Float

Default
20

Description
For non-PBA mode, Tweaker will report inconsistency occurrence based on the

threshold specified in this variable.

A path slack difference between the imported report and TWF Tweaker is

exceeding this threshold Tweaker will report error occurrence on this path

to warn the users.

And for flow control if there is any inconsistency error reported, Tweaker

will auto assign a "true" value for "slk_consistency_check_fail" variable so

users can use this to decide if they want to still continue the ECO process

during this inconsistency or not.

The unit of this variable is ps (picosecond).

slk_consistency_check_threshold 606
Tweaker™ Variables Version T-2022.03

Example
set slk_consistency_check_threshold 30

...

slkdc -check_slack_consistency

See also
slkdc (cmd)

slk_path_base_analysis_threshold

slk_consistency_check_fail

slk_consistency_check_threshold 607
Tweaker™ Variables Version T-2022.03

slk_corner_list
# List the existing corner name.

Type
String

Default
empty

Description
This is read only variable. The default value is empty.

After the command "slkdc -check_slack_consistency" executed, the created

corner names are saved in this variable.

Example
## Query the existing corner name ##

[ CMD ] printvar slk_corner_list

Tweaker Built-in Value Default Value

-------------------------------------------------------------------------

slk_corner_list ss_cworst_norm ff_cbest_norm ### (empty)

slk_corner_list 608
Tweaker™ Variables Version T-2022.03

## Application of variable slk_corner_list ##

foreach cor $slk_corner_list {

puts "## CORNER:$cor"

puts " setup worst slack : $slk_setup_worst_slack($cor)"

puts " hold worst slack : $slk_hold_worst_slack($cor)"

See also
slk_hold_worst_slack_corner

slk_setup_worst_slack_corner

slk_hold_worst_slack

slk_setup_worst_slack

slk_normalized_factor

slk_corner_list 609
Tweaker™ Variables Version T-2022.03

slk_coupling_mul
# Specifies the multiplier to be applied when reading coupling C value from RC file.

Type
Float

Default
1.0

Description
By default, Tweaker will multiply the coupling C values which are extracted

from SPEF files by this multiplier. If there is no derate, users should keep

this variable to "1.0" value.

Example
set slk_coupling_mul 1.0

See also
N/A

slk_coupling_mul 610
Tweaker™ Variables Version T-2022.03

slk_dc_all_path
# Performs delay calculation on all input paths before the consistency check.

Type
Boolean

Default
true

Description
By default, Tweaker will perform a delay calculation before performing

consistency check to perform a matching between the internal delay

and the STA delay combined with offset in the slack domain that built up

by input paths.

Users are strongly suggested to keep this variable to its default value

of true.

Example
set slk_dc_all_path true

...

slk_dc_all_path 611
Tweaker™ Variables Version T-2022.03

slkdc -check_slack_consistency

See also
$Tweaker_Install_DIR/etc/template/general_script/general_setting.tcl

slk_dc_all_path 612
Tweaker™ Variables Version T-2022.03

slk_defrag_cell_naming
# Used in defrag flow for specifying cell groups.

Type
String

Default
*

Description
Tweaker defrags space by moving instances to abut nearby instance or to

place away from other instances with specified distance, and the fragmental

space can be reduced.

In defrag process, Tweaker can also group specified cells in row. This

variable defines the groups by cell names.

Wildcards are supported.

The first group has the highest priority. The priorities are as the pattern

sequence in the variable.

Example

slk_defrag_cell_naming 613
Tweaker™ Variables Version T-2022.03

set avoid_space_fragmentation_by_cell { DELHVT05 }

set slk_defrag_cell_naming { *HVT* *RVT* * }

...

set slk_fix_defrag_grouping_cell true

slkfix -defrag

See also
slk_fix_defrag_grouping_cell

slk_ir_drop_aware_defrag

avoid_space_fragmentation_by_cell

set_avoid_space_fragmentation (cmd)
report_space_fragmentation (cmd)

slk_defrag_cell_naming 614
Tweaker™ Variables Version T-2022.03

slk_delay_insertion_buff_list
# Specifies the buffer candidates list for delay insertion.

Type
String

Default
empty

Description
When delay insertion feature (HFI or non-HFI) is enabled (by setting

"fix_hold_by_delay_insertion" to true) for hold autofix or setup fine-

tuning, users can provide the buffer candidates by listing them on this

variable. This variable will be referenced by Tweaker during the insertion

operation.

If this variable is empty, Tweaker will treat all buffers whose have the

same function as its candidates. Undefined list will increase the operation

runtime.

To reduce the operation runtime, users are strongly recommended to list 3

to 5 different cells. According to the developers experience, it is

suggested to list 1 to 2 delay cells, 1 low-driving buffer, and 1 high-

slk_delay_insertion_buff_list 615
Tweaker™ Variables Version T-2022.03

driving buffer.

For the designs that have several specific preferred high-driving buffers,

it is strongly suggested to be listed on the

"slk_delay_insertion_high_drive_buff_list" variable instead of in this

"slk_delay_insertion_buff_list" variable.

Example
set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_delay_insertion_buff_list { BUFFD1 BUFFD6HVT DELAYD1 }

...

slkfix -hold -all

See also
slk_fix_hold_by_delay_insertion

slk_fix_hold_by_high_fanout_insertion

slk_delay_insertion_high_drive_buff_list

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.*.tcl

slk_delay_insertion_buff_list 616
Tweaker™ Variables Version T-2022.03

slk_delay_insertion_combo_cell_list
# The combo candidate list referenced during autofix hold with HFI enabled.

Type
string

Default
empty

Description
Different from manual combo cell insertion which will reference the variable

"combo_buffer_list", if autofix hold by HFI is enabled and also

"slk_hfi_use_combo_cell" is set true, Tweaker will reference this variable

to pick the combo cell to be inserted during auto fix hold.

When combo cell insertion is enabled, the cells specified in variable

"slk_delay_insertion_buff_list" will not be referred. If user wants to let

Tweaker insert combo cells and normal delay cells within one iteration,

please specify normal cells into combo cell list.

Example

slk_delay_insertion_combo_cell_list 617
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_hfi_use_combo_cell true

set slk_delay_insertion_combo_cell_list { BUFX4 DLY02 BUFX4 :

INVX4 DELY03 INVX4 : DBFS2 }

...

slkfix -hold -all

See also
slk_hfi_use_combo_cell

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_

hold_setting.bi.*.tcl

slk_delay_insertion_combo_cell_list 618
Tweaker™ Variables Version T-2022.03

slk_delay_insertion_high_drive_buff_list
# Specifies the high drive buffer(s) candidate list for delay insertion operation.

Type
String

Default
Empty

Description
When high fanout insertion (HFI) feature is enabled, if the delay cell is

expected to be inserted near to the driver, normally the inserted delay

cell(s) will followed by an extra-insertion of "high drive buffer" to

maintain the driving force of a long wire and prevent some potential SI

effect issues.

During the insertion, Tweaker will honor and select the high drive buffer

from the candidates which is listed in this variable. If this variable is

left empty, Tweaker will select it from the "slk_delay_insertion_buff_list"

variable.

slk_delay_insertion_high_drive_buff_list 619
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_delay_insertion_buff_list { BUFFD1 BUFFD2HVT DELAYD1 }

set slk_delay_insertion_high_drive_buff_list { BUFFD12 }

...

slkfix -hold -all

See also
slk_fix_hold_by_delay_insertion

slk_fix_hold_by_high_fanout_insertion

slk_delay_insertion_buff_list

slk_delay_insertion_high_drive_buff_list 620
Tweaker™ Variables Version T-2022.03

slk_delay_insertion_inverter_list
# Specifies the inverter pair candidates list for delay insertion.

Type
String

Default
empty

Description
During the insertion operation (by setting "fix_hold_by_delay_insertion"

to true), when the "slk_delay_insertion_use_inverter" variable is set

true, Tweaker will only use inverter pair(s) to perform the delay

insertion operation for hold violation autofix.

Users can provide the inverter pair candidates by listing them on this

variable which will be referenced by Tweaker during the insertion operation.

If this variable is empty, Tweaker will treat all inverter pair whose have

the same function as its candidates. Undefined list will increase the

operation runtime.

slk_delay_insertion_inverter_list 621
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_delay_insertion true

set slk_delay_insertion_use_inverter true

set slk_delay_insertion_inverter_list { INVD1 INVD2 INVD3 }

...

slkfix -hold -all

See also
fix_hold_by_delay_insertion

slk_delay_insertion_use_inverter

slk_delay_insertion_inverter_list 622
Tweaker™ Variables Version T-2022.03

slk_delay_insertion_keep_long_wire_slew
# Enables or disables Tweaker to keep slew behavior during the delay insertion operation on long wires.

Type
Boolean

Default
true

Description
By default, when normal delay insertion is adopted for hold violation

autofix, Tweaker will keep the slew of the long wires which is defined

by "slk_rce_long_wire_length" variable during the insertion operation.

The maximum tolerated slew value can be acquired by multiplying the

"slk_keep_slew_factor" to the original slew value.

Tweaker keeps the slew values of those long wire when performing the delay

insertion in order to make sure that the inserted buffer will have enough

driving capability or their placement will not shifting too much. This

behavior will reduce the setup impact possibilities.

slk_delay_insertion_keep_long_wire_slew 623
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_delay_insertion true

set slk_delay_insertion_keep_long_wire_slew true

...

slkfix -hold -all

See also
slk_rce_long_wire_length

slk_keep_slew_factor

slk_delay_insertion_keep_long_wire_slew 624
Tweaker™ Variables Version T-2022.03

slk_delay_insertion_use_inverter
# Enables or disables the utilization of inverter pairs during delay insertion process.

Type
Boolean

Default
false

Description
When this variable is set to true, Tweaker will only use the inverter pairs

during the delay insertion for fixing hold violation. Its candidates should

be specified in "slk_delay_insertion_inverter_list" variable.

Example
set slk_delay_insertion_inverter_list { INV1 INV2 }

set slk_delay_insertion_use_inverter true

See also
slk_fix_hold_by_delay_insertion

slk_delay_insertion_use_inverter 625
Tweaker™ Variables Version T-2022.03

slk_delay_insertion_inverter_list

slk_delay_insertion_use_inverter 626
Tweaker™ Variables Version T-2022.03

slk_delay_threshold
# Defines the input/output logic change threshold for cell delay calculation reference.

Type
Float

Default
0.5

Description
This variable defines the threshold value used in delay calculation of a

cell or a wire.

For general case, it is set to 0.5. However this value always depends on

the imported library.

Example
set slk_delay_threshold 0.5

See also
$Tweaker_Install_DIR/etc/template/general_script/general_setting.tcl

slk_delay_threshold 627
Tweaker™ Variables Version T-2022.03

slk_delay_threshold 628
Tweaker™ Variables Version T-2022.03

slk_detail_log_insts_by_file
# Outputs the detail log by instance listed in this file.

Type
String

Default
Empty

Description
This is an obsolete variable.

Tweaker will generate the autofix detail log of the instance(s) that

listed in this variable.

Users are strongly recommended to use other ways for generating the autofix

detail by either adding "-verbose" option on the "slkfix" command or

checking the "Enable AutoFix Detail" box in Slack View GUI on the Autofix

History tab. The details of autofix can be seen on the Tweaker .log file.

Example
set slk_detail_log_insts_by_file "./abc.list"

slk_detail_log_insts_by_file 629
Tweaker™ Variables Version T-2022.03

See also
slkfix -verbose

slk_detail_log_insts_by_file 630
Tweaker™ Variables Version T-2022.03

slk_dont_touch_always_on_conflict_net
# Tweaker variable to dont touch fixing on always-on conflict nets.

Type
Boolean

Default
true

Description
In fixing low power designs, Tweaker will recognize the "always-on" cell

from the imported CPF/UPF or .lib file or by issuing "set_always_on_cell"

command.

If a net is connected to both "always-on' and "non always-on" components,

it will be defined as an "always-on conflicting net". By default, Tweaker

will lock these kind of nets and prevent them for being fixed.

However, users are allowed to perform any fixing operation by setting this

variable to false.

Example

slk_dont_touch_always_on_conflict_net 631
Tweaker™ Variables Version T-2022.03

set slk_dont_touch_always_on_conflict_net true

...

slkfix ...

See also
set_always_on_cell

slk_dont_touch_always_on_conflict_net 632
Tweaker™ Variables Version T-2022.03

slk_dont_touch_broken_path
# Disables or enables the ability to force Tweaker to avoid touching the broken

path.

Type
Boolean

Default
true

Description
If there is a pin/cell name mismatch between netlist and report in a path,

it will become a broken path. Since the broken path will lead to wrong

path/TWF update, hence the default setting on Tweaker will lock these kind

of paths and prevent them from being fixed.

Users are strongly recommended to keep this variable to its default value of

true.

Example
set slk_dont_touch_broken_path true

slk_dont_touch_broken_path 633
Tweaker™ Variables Version T-2022.03

slkdc -check_slack_consistency

See also
slk_dont_touch_inconsistency_path

slk_dont_touch_broken_path 634
Tweaker™ Variables Version T-2022.03

slk_dont_touch_by_drv_cell_type_mismatch
# Don't touch mismatch cell type when fixing voltage/cell robustness

Type
Boolean

Default
true

Description
Tweaker sizes cells which having robustness violation only. Since, PrimeShi-

eld report describes cell's cell type. Hence, Tweaker will not size violated

cell if the cell type mismatch between Tweaker DB and PrimeShield report wh-

en this variable is set to true (by default).

Tweaker will ignore cell type mismatch between Tweaker DB and PrimeShield

report (sizing allowed) by setting this variable to false.

Example
tweaker_shell> set slk_dont_touch_by_drv_cell_type_mismatch true

tweaker_shell> slkfix -cell_robustness

slk_dont_touch_by_drv_cell_type_mismatch 635
Tweaker™ Variables Version T-2022.03

tweaker_shell> set slk_dont_touch_by_drv_cell_type_mismatch true

tweaker_shell> slkfix -voltage_robustness

See also
N/A

slk_dont_touch_by_drv_cell_type_mismatch 636
Tweaker™ Variables Version T-2022.03

slk_dont_touch_def_fixed_inst
# Disables or enables Tweaker to move/size the instance with "FIXED" attribute

on DEF file.

Type
Boolean

Default
true

Description
By default, Tweaker will automatically lock the DEF FIXED instances from

move/size. Tweaker can still perform the insertion operation at their pins

but not the sizing operation.

On the contrary, by setting this variable to false, users are able to force

Tweaker to perform all of the autofix operation (including sizing and/or

moving).

Example
set slk_dont_touch_def_fixed_inst false

slk_dont_touch_def_fixed_inst 637
Tweaker™ Variables Version T-2022.03

...

slkfix ...

See also
keep_def_fixed_physical_cells

slk_dont_touch_def_fixed_inst 638
Tweaker™ Variables Version T-2022.03

slk_dont_touch_inconsistency_path
# Disables or enables the ability to force Tweaker to avoid touching the paths which are defined as inconsistent paths on Tweaker.

Type
Boolean

Default
false

Description
In current Tweaker flow, users are strongly recommended to perform the

"consistency check" on Tweaker after the timing scenarios are built-up and

ECO domain are loaded completely. If there are mismatch between the timing

properties in SDF and those in the reports, Tweaker (in default) will honor

the timing properties from the reports instead of SDF.

For some cases, these kind of paths are best to be "locked" during the

fixing operations.

Tweaker offers the ability to lock those inconsistency paths and let user

to continue the fixing operations on the remaining paths which have passed

the consistency check by setting this variable to its default value of true.

slk_dont_touch_inconsistency_path 639
Tweaker™ Variables Version T-2022.03

Example
set slk_dont_touch_inconsistency_path true

slkdc -check_slack_consistency

See also
slk_dont_touch_broken_path

slkdc (cmd)

slk_dont_touch_inconsistency_path 640
Tweaker™ Variables Version T-2022.03

slk_dont_touch_missing_lib_cell
# Disables ECO ability if cell doesn't have library timing information

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will not

allow ECO on any of cell without timing library information. However, in

some cases when user want to force Tweaker to do auto ECO without timing

library information, we can set this variable to false and force Tweaker

to do ECO in those points

Example
set slk_fix_hold_by_sizing

set slk_dont_touch_missing_lib_cell false

...

slk_dont_touch_missing_lib_cell 641
Tweaker™ Variables Version T-2022.03

slkfix -hold -all

See also

slk_dont_touch_missing_lib_cell 642
Tweaker™ Variables Version T-2022.03

slk_dont_touch_missing_lib_cone
# During autofix, don’t touch specific cones without LIB information

Type
Boolean

Default
False

Description
For their autofix settings, users can use this variable to enable or disable

the don’t-touch attribute on corners that have missing LIB information.

Example
set slk_dont_touch_missing_lib_cone true

slkfix ...

See also
N/A

slk_dont_touch_missing_lib_cone 643
Tweaker™ Variables Version T-2022.03

slk_dont_touch_missing_lib_leakage_cell
# Disables ECO ability if cell doesn't have library leakage power information

Type
Boolean

Default
false

Description
By setting this variable to true, Tweaker will not allow power ECO on any of

cell without library leakage power information. However, in some cases when

user want to force Tweaker to do auto ECO without library leakage power

information, we can set this variable to false and force Tweaker to do ECO

in those points

Example
set slk_fix_leakage_power_by_sizing true

set slk_dont_touch_missing_lib_leakage_cell false

...

slk_dont_touch_missing_lib_leakage_cell 644
Tweaker™ Variables Version T-2022.03

slkfix -power_eco

See also

slk_dont_touch_missing_lib_leakage_cell 645
Tweaker™ Variables Version T-2022.03

slk_dont_touch_padding_inst
# Disables or enables the ability to force Tweaker to avoid touching the

instances that applied with instance padding rule.

Type
Boolean

Default
false

Description
Tweaker provides the instance padding ability by executing

"set_instance_padding", or "load_padding_list" command.

By default, Tweaker can perform any fixing operation to this kind of

instances. However, users are allowed to force Tweaker to avoid performing

any fixing operation on these padding instances by setting this variable to

true.

Example
set slk_dont_touch_padding_inst true

slk_dont_touch_padding_inst 646
Tweaker™ Variables Version T-2022.03

...

slkfix ...

See also
load_padding_list (cmd)
set_instance_padding (cmd)
set_dont_touch_instance (cmd)

slk_dont_touch_padding_inst 647
Tweaker™ Variables Version T-2022.03

slk_dont_touch_path_by_endpoint_pin_list
# Specifies the pin list which contains the path that users do not allow Tweaker to touch during any fix operation.

Type
String

Default
empty

Description
During any fix operation, users can force Tweaker to avoid any fixing

operation on those path that crossing specific endpoint by listing them

on this variable.

The result of applying this variable is the same as executing

"dont_touch_slk_path" combined with "-endpoint_pin_list" option. Thus

either way can be used to avoid touching the paths under user specified

pin list.

Example
set slk_dont_touch_path_by_endpoint_pin_list {RB CDN SE}

slk_dont_touch_path_by_endpoint_pin_list 648
Tweaker™ Variables Version T-2022.03

See also
dont_touch_slk_path (cmd)

slk_dont_touch_path_by_endpoint_pin_list 649
Tweaker™ Variables Version T-2022.03

slk_dont_touch_path_groups
# Specify the path groups which are forbidden for Tweaker to perform any fix operation on.

Type
String

Default
Empty

Description
During any fix operation, users can force Tweaker to avoid any fixing

operation on some specific path group by listing them on this variable.

The result of applying this variable is exactly the same as executing

"dont_touch_slk_path" combined with option "-path_group". Thus either

way can be used to avoid touching the paths under user specified path

groups.

Example
set slk_dont_touch_path_groups { clock_gating_default asynchronous_default }

slk_dont_touch_path_groups 650
Tweaker™ Variables Version T-2022.03

See also
dont_touch_slk_paths (cmd)

slk_dont_touch_path_groups 651
Tweaker™ Variables Version T-2022.03

slk_dont_touch_power_switch_net
# Enables or disables the ability to force Tweaker to avoid touching power switch nets.

Type
Boolean

Default
false

Description
By default, Tweaker are allowed to fix any violations on the power switch

nets by utilizing the buffer insertion algorithm.

When this variable is set to true, Tweaker will forbid any buffer insertion

operation on violated (particularly consist of max trans/cap violations)

power switch nets

To be noticed, it is essential for the users to define the power switch to

Tweaker before this variable is applied.

The power switch can be defined either through timing libraries or CPF file

or Tweaker "set_power_switch_cell" commands.

slk_dont_touch_power_switch_net 652
Tweaker™ Variables Version T-2022.03

Example
set_power_switch_cell true *SWITCH*

set slk_dont_touch_power_switch_net true

set slk_fix_max_trans_by_repeater_insertion true

set slk_fix_max_trans_hfs_v2 true

...

slkfix -max_trans -all

See also
slk_dont_touch_tie_cell_net

slk_dont_touch_power_switch_net 653
Tweaker™ Variables Version T-2022.03

slk_dont_touch_tie_cell_net
# Enables or disables the ability to force Tweaker to avoid touching tie cell nets.

Type
Boolean

Default
false

Description
By default, Tweaker can perform any fixing operation on any tie cell nets

that have timing violations (most likely max trans/cap violations).

If this variable is set to true, those tie cells nets will be locked and

stay untouchable during the fixing operation.

Example
set slk_dont_touch_tie_cell_net true

set slk_fix_max_trans_by_repeater_insertion true

set slk_fix_max_trans_hfs_v2 true

...

slk_dont_touch_tie_cell_net 654
Tweaker™ Variables Version T-2022.03

slkfix -max_trans

See also
slk_power_eco_ignore_power_net

slk_dont_touch_power_switch_net

slk_dont_touch_tie_cell_net 655
Tweaker™ Variables Version T-2022.03

slk_dont_touch_unrecognized_bus
# Disables any autofix operation on the unrecognized bus pin nets.

Type
Boolean

Default
true

Description
Tweaker can recognize the macro's bus pins order by reading the

corresponding LIB bus definition. If those macro's LIB is missing, Tweaker

will define them as unrecognized bus pin nets.

By setting this variable to its default value of true, Tweaker will not

modify these nets to avoid any inaccurate ECO connection due to the

misinterpretation of bus pin orders.

If this variable is set to false, Tweaker will use a descending order to

interpret those unrecognized bus pin order.

Example

slk_dont_touch_unrecognized_bus 656
Tweaker™ Variables Version T-2022.03

set slk_dont_touch_unrecognized_bus true

See also
N/A

slk_dont_touch_unrecognized_bus 657
Tweaker™ Variables Version T-2022.03

slk_drv_factor
# This variable has been replaced by 'set_drv_factor'

See also
set_drv_factor

slk_drv_factor 658
Tweaker™ Variables Version T-2022.03

slk_drv_mode
# Specifies to determine the way of value selection when both set_drv_factor and set_drv_value are used.

Type
string [replace|worst]

Default
replace

Description
Users are able to apply the drv setting by using the command "set_drv_factor"

or "set_drv_value".

By default, whenever any of above commands is used, Tweaker will

replace the previous setting with the latest one.

When this variable is set to "worst", Tweaker will pick up the worst

value compared with previous setting.

Example
[CMD] set slk_drv_mode worst

[CMD] set_drv_factor 0.8 -corner WCL_CWORST

slk_drv_mode 659
Tweaker™ Variables Version T-2022.03

[CMD] set_drv_value 150 -corner WCL_CWORST

See also
set_drv_factor (cmd)
set_drv_value (cmd)

slk_drv_mode 660
Tweaker™ Variables Version T-2022.03

slk_dummy_load_cell_list
# Specifies the dummy load candidates list.

Type
String

Default
empty

Description
This variable holds the dummy load candidates which is specified by user

and have to be issued before the "add dummy load" algorithm is performed.

Generally, the list of small inverters are suggested due to smaller area

overhead compared to buffers. Some foundries may provide a list of load

cells which can be applied to this variable directly.

If this variable is left empty, Tweaker wouldn't assign any "inverter"

type cells as its candidates during executing add dummy load

for hold violation fixing operation.

Example

slk_dummy_load_cell_list 661
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_by_add_dummy_load true

set slk_dummy_load_cell_list { INVD0 INVDOHVT }

set slk_max_dummy_load_cell_distance 15

set slk_max_dummy_load_cell_count 2

...

slkfix -hold

See also
slk_fix_hold_by_add_dummy_load

slk_max_dummy_load_cell_distance

slk_max_dummy_load_cell_count

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_

hold.tcl

slk_dummy_load_cell_list 662
Tweaker™ Variables Version T-2022.03

slk_dynamic_power_corner
# Specifies the lib corner as the reference dynamic power corner.

Type
String

Default
empty

Description
When user is proceeding the dynamic power calculation, Power ECO or power

report summary (by using slkreport -leakage_power) in particular,

this variable specifies the corner name which contains dynamic power

reference - lib group, rc corner and the pin transition time.

If there are more than one corner when this variable is not specified,

Tweaker will take the first corner as its reference.

Set slk_dynamic_power_corner after the corner is created and before the

power eco domain is built.

Example

slk_dynamic_power_corner 663
Tweaker™ Variables Version T-2022.03

end_corner ......

set slk_dynamic_power_corner tc_RCtypical_norm

slkfix -create_power_eco_domain

......

set slk_dynamic_peco_cost transition

set slk_power_eco_sorting_criteria area

set slk_auto_sizing_rule vt_sizing_within_same_cell_height

slkfix -power_eco

See also
slk_leakage_power_lib

slk_dynamic_power_corner 664
Tweaker™ Variables Version T-2022.03

slk_enable_data_arrival_time_offset
# To sync the arrival time of the path within Tweaker

Type
Boolean

Default
false

Description
By default, Tweaker will use the LIB and SPEF to calculate the cell delay

and calculate its own arrival time, hence the calculated arrival time might

differs with those in STA's violation report.

For the bus-balance function, this difference might cause a large

discrepancy with the arrival time in STA tools, hence user can set this

variable to true to sync the arrival time with the STA's violation report.

It's necessary to modify this variable on the top of the main script if

needed.

Example

slk_enable_data_arrival_time_offset 665
Tweaker™ Variables Version T-2022.03

set slk_enable_data_arrival_time_offset true

See also
N/A

slk_enable_data_arrival_time_offset 666
Tweaker™ Variables Version T-2022.03

slk_enable_slew_variation_for_sizing
# Enables POCV slew variation calculation on existing cells.

Type
Boolean

Default
false

Description
After enabling this variable, Tweaker would also consider the effect of

ocv_sigma on existing cell output transition calculation.

This variable takes effect only if "enable_ocv_sigma" and "enable_timing_slew_variation"

variable is enabled too.

Example
tweaker_shell> set enable_ocv_sigma true

tweaker_shell> set enable_timing_constraint_variation true

tweaker_shell> set enable_timing_slew_variation true

tweaker_shell> set slk_enable_slew_variation_for_sizing true

slk_enable_slew_variation_for_sizing 667
Tweaker™ Variables Version T-2022.03

tweaker_shell> set_timing_ocv_sigma 3.0

tweaker_shell> report_timing_ocv_sigma

See also
set_timing_ocv_sigma (cmd)
report_timing_ocv_sigma (cmd)
enable_timing_constraint_variation (var)
enable_timing_slew_variation (var)

slk_enable_slew_variation_for_sizing 668
Tweaker™ Variables Version T-2022.03

slk_extract_setup_level
# Defines the domain level size while extracting "extra" setup margin.

Type
Integer

Default
3

Description
Before the feature of extract "extra" setup margin is enabled through

"slk_fix_hold_by_extract_extra_domain_setup_margin" variable, users can

assign the expected domain level to this variable. Later on, Tweaker will

build up the domain according to this setting when user issues

"slkfix -create_extract_setup_margin" command.

The number of this variable defines the user-expected fan-in/fan-out cone

level of existing hold time violation domain to be built up by Tweaker.

Example
set slk_extract_setup_level 3

slk_extract_setup_level 669
Tweaker™ Variables Version T-2022.03

slkfix -create_extract_setup_margin

...

set slk_fix_hold_by_sizing true

set slk_fix_hold_by_extract_extra_domain_setup_margin true

...

slkfix -hold -all

See also
slk_fix_hold_by_extract_extra_domain_setup_margin

slkfix (cmd)

slk_extract_setup_level 670
Tweaker™ Variables Version T-2022.03

slk_extract_setup_margin_trans
# Determines the transition threshold for extract setup margin during hold violation fixing.

Type
Float

Default
0.1

Description
For hold/setup toggled paths, Tweaker provides a mechanism to extract more

setup margin on existing hold paths in a slow-to-fast manner by utilizing

the sizing algorithm. Later on, user can utilized this extracted setup

margin to perform more fixing algorithms (such as buffer insertion, add

dummy load, etc) to fix the remaining hold violations conveniently.

This variable defines the transition low bound and becomes one of the two

factors to select candidates of the extraction operation. The other deciding

factor is "slk_setup_target_slk" variable.

Example

slk_extract_setup_margin_trans 671
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_by_sizing true

set slk_fix_hold_by_extract_setup_margin true

set slk_extract_setup_margin_trans 0.1

set slk_setup_target_slk 0.03

slkfix -hold -all

See also
slk_fix_hold_by_extract_setup_margin

slk_setup_target_slk

slk_extract_setup_margin_trans 672
Tweaker™ Variables Version T-2022.03

slk_extract_sisdf_by_report
# To sync the SI effect between Tweaker and STA's violation report

Type
Boolean

Default
false

Description
By default, Tweaker will extract the SI effect by using "extract_si_sdf"

command which is coming from Dorado's provided template of

general_settings.tcl.

When user provided STA reports that contains SI column and set this variable

to true, then Tweaker will sync the SI value of the inconsistent-paths

(the paths that is considered to be failing the inconsistency-check).

Example
set slk_extract_sisdf_by_report true

slk_extract_sisdf_by_report 673
Tweaker™ Variables Version T-2022.03

See also
N/A

slk_extract_sisdf_by_report 674
Tweaker™ Variables Version T-2022.03

slk_fast_mode
# Select the modes of merging to improve the load design performance.

Tweaker variable

Type
Integer

Default
1

Description
There are 3 modes available for selection.

Mode 1 specifies that sdf from different modes can be merged in one corner

so different mode's timing can be built under the single PVT corner.

Mode 2 specifies that RC info (from spef) can be merged under the same LIB

corner. So eventually the internal number of corners built in Tweaker will

be the same as the number of LIB corners.

Mode 3 specifies that LIB/RC can all be merged and eventually the internal

number of corners built in Tweaker will be only 2 corners (best and worst).

Usually mode 1 and mode 2 are more frequently used and mode 3 is under

testing.

slk_fast_mode 675
Tweaker™ Variables Version T-2022.03

For scripts setup users do not require to do anything change, just based on

the tradition rule to build up corners by looping the LIB/RC/MODE in Tweaker

and fast mode will automatically do the job for you.

Example
set slk_fast_mode 2

foreach corner lib $lib {

foreach corner rc $rc {

foreach corner mode $mode {

begin_corner ...

end_corner ...

See also
N/A

slk_fast_mode 676
Tweaker™ Variables Version T-2022.03

slk_fix_allow_insertion_in_third_power_domain
# Enables or disables the HFS and HFI insertion algorithm at the third power domain of a net.

Type
Boolean

Default
false

Description
By default, while adopting the HFS and HFI insertion for fixing drv and hold

violations, Tweaker will insert the buffers at either sink or driver's power

domain. If the violation net is crossing other power domains beside the

sink/driver's power domain (or called "third power domain"), Tweaker will

not insert any instance on it in order to avoid any possibility of certain

low power rules violation due to unrecognized third power domain rules.

However, users can still utilize the third power domain as the insertion

domain if they think it's better than inserting at the sink/driver's power

domain by setting this variable to true. During this situation, Tweaker will

insert the "always-on" cells to let other third party tool to re-connect its

power/ground to suitable power domain.

slk_fix_allow_insertion_in_third_power_domain 677
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_max_trans_by_repeater_insertion true

set slk_fix_max_trans_hfs_v2 true

set slk_repeater_insertion_buff_list { PBUFX4 PBUFX8 BUFX4 BUFX8

BUFX12 ... }

set slk_fix_allow_insertion_in_third_power_domain true

...

slkfix -max_trans -all

set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_delay_insertion_buff_list { PBUFX1 BUFFD1 BUFFD6HVT DELAYD1 }

set slk_fix_allow_insertion_in_third_power_domain true

...

slkfix -hold -all

See also
slk_insert_third_power_domain_without_logical_limit

slk_fix_allow_insertion_in_third_power_domain 678
Tweaker™ Variables Version T-2022.03

slk_fix_area_recovery_by_deletion
# Enables or disables Tweaker to adopt deleting buffers/inv pairs algorithms for

reducing area.

Type
Boolean

Default
true

Description
By default value true of this variable, Tweaker will adopt remove buffers

and inv pairs based on area cost. Suggest to keep either just sizing or

deletion to true at one time.

Example
set slk_fix_area_recovery_by_deletion true

set slk_fix_area_recovery_by_sizing false

...

slkfix -area_eco

slk_fix_area_recovery_by_deletion 679
Tweaker™ Variables Version T-2022.03

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/area_recovery/fix_area_recovery

_setting.deletion.tcl

slk_fix_area_recovery_by_sizing (var)

slk_fix_area_recovery_by_deletion 680
Tweaker™ Variables Version T-2022.03

slk_fix_area_recovery_by_sizing
# Enable or disable sizing down methodology for area recovery autofix

Type
Boolean

Default
false

Description
By default Tweaker adopts removing redundant buffers/inverter-pair based on

area cost. Tweaker will adpots sizing down for area recovery autofix based

on area cost by setting this variable to true and "slk_fix_area_recovery_by_

deletion" to false. It is suggested to enable either sizing or deletion one

at a time.

Example
tweaker_shell> set slk_fix_area_recovery_by_sizing true

tweaker_shell> set slk_fix_area_recovery_by_deletion false

tweaker_shell> slkfix -area_eco

slk_fix_area_recovery_by_sizing 681
Tweaker™ Variables Version T-2022.03

See also
[ VAR ] slk_fix_area_recovery_by_deletion

slk_fix_area_recovery_by_sizing 682
Tweaker™ Variables Version T-2022.03

slk_fix_bbox_pin_count
# Specifies the pin count threshold for a cell to be qualified as a "B-box" cell during Tweaker fixing operations.

Type
Integer

Default
256

Description
The "B-box" in Tweaker stands for a cell which has a big number of pin

count. By default, any cell with a pin number larger than or equal to

256 is classified as a B-box.

For more information about the special function provided by Tweaker for

these "B-box" cells, please refer to the man pages of Tweaker

"slk_fix_cross_bbox_net_with_low_priority" and

"slk_fix_dont_touch_cross_bbox_net" variables.

Example
set slk_fix_bbox_pin_count 128

slk_fix_bbox_pin_count 683
Tweaker™ Variables Version T-2022.03

See also
slk_fix_cross_bbox_net_with_low_priority

slk_fix_dont_touch_cross_bbox_net

slk_fix_bbox_pin_count 684
Tweaker™ Variables Version T-2022.03

slk_fix_beol_hold_robustness_by_delay_insertion
# Adopts the delay insertion algorithm for fixing beol robustness hold violations.

Type
Boolean

Default
true

Description
By setting this variable to true, user can utilized the delay buffer insertion

during the beol hold robustness autofix.

Example
set slk_fix_beol_hold_robustness_by_delay_insertion true

set slk_fast_delay_insertion true

set slk_preferred_delay_cell_distance_range 10 100

set slk_fix_hold_at_endpoint_only true

...

slkfix -beol_robustness -hold

slk_fix_beol_hold_robustness_by_delay_insertion 685
Tweaker™ Variables Version T-2022.03

See also
slk_fix_hold_by_high_fanout_insertion

slk_fix_hold_at_endpoint_only

$Tweaker_Install_DIR/etc/template/tweaker_t1/primeshield_eco/beol_robustness/beol_for_hold/

fix_beol_hold_robustness_setting.bi.*.tcl

slk_fix_beol_hold_robustness_by_delay_insertion 686
Tweaker™ Variables Version T-2022.03

slk_fix_beol_hold_robustness_by_sizing
# Adopts the sizing algorithm for fixing beol violations.

Type
Boolean

Default
false

Description
By setting this variable to its default value of true, Tweaker will adopt

the sizing algorithm for beol violations autofix. By the default setting,

this operation will be limited by the "slk_fix_hold_without_size_up"

variable (default value: true) which will affect Tweaker to only size-down

the violated cell to fix their beol violations while still make sure

that they still meets the requirement of DRV value or other transition/slew

rules.

Example
set slk_fix_beol_hold_robustness_by_sizing true

slk_fix_beol_hold_robustness_by_sizing 687
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_without_sizing_up true

...

slkfix -beol_robustness -hold

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/primeshield_eco/beol_robustness/beol_for_hold/

fix_beol_hold_robustness_setting.sz.tcl

slk_fix_beol_hold_robustness_by_sizing 688
Tweaker™ Variables Version T-2022.03

slk_fix_beol_setup_robustness_by_repeater_insertion
# Tweaker variable to enable repeater insertion for autofix beol setup.

Type
Boolean

Default
false

Description
By setting this variable true it enables "repeater insertion" for autofix beol setup.

It is recommended to use this algorithm after normal sizing and Tweaker will

try to insert repeaters on violation pins whose transition (slew) exceed

user's required value described at "slk_fix_setup_max_trans_drv" or avg

transition value derived from Tweaker by referencing the

"set slk_fix_setup_repeater_insertion_factor" variable.

Under repeater insertion behavior there is an add on called "split load"

feature which can be enabled by "slk_fix_setup_by_split_load" variable

to allow a different strategy of insertion where non-critical pins are

grouped on a net to reduce the driver's net loading and improve the critical

pin's timing.

slk_fix_beol_setup_robustness_by_repeater_insertion 689
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_beol_setup_robustness_by_repeater_insertion true

set slk_fix_setup_by_split_load true

set slk_fix_setup_repeater_insertion_factor 0.2

set slk_fix_setup_splitload_margin 0.5

set slk_repeater_insertion_buff_list { BUFX1 BUFX2 }

...

slkfix -beol_robustness -setup

See also
slk_repeater_insertion_buff_list

slk_fix_setup_by_split_load

slk_fix_setup_repeater_insertion_factor

slk_fix_setup_splitload_margin

$Tweaker_Install_DIR/etc/template/tweaker_t1/primeshield_eco/beol_robustness/beol_for_setup/

fix_beol_setup_robustness_setting.split.tcl

slk_fix_beol_setup_robustness_by_repeater_insertion 690
Tweaker™ Variables Version T-2022.03

slk_fix_beol_setup_robustness_by_sizing
# Adopts the sizing algorithm for fixing beol setup violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

sizing algorithm for beol setup autofix.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_beol_setup_robustness_by_sizing true

set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_rule_regexp { @D[0-9]+@ @D[0-9]+@ }

...

slk_fix_beol_setup_robustness_by_sizing 691
Tweaker™ Variables Version T-2022.03

slkfix -beol_robustness -setup

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/primeshield_eco/beol_robustness/beol_for_setup/

fix_beol_setup_robustness_setting.*.tcl

slk_fix_beol_setup_robustness_by_sizing 692
Tweaker™ Variables Version T-2022.03

slk_fix_bottleneck_robustness_by_sizing
# Adopts the sizing algorithm for fixing setup bottleneck violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

sizing algorithm for setup bottleneck autofix.

Example
set slk_fix_bottleneck_robustness_by_sizing true

set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_rule_regexp { @D[0-9]+@ @D[0-9]+@ }

...

slkfix -bottleneck_robustness

slk_fix_bottleneck_robustness_by_sizing 693
Tweaker™ Variables Version T-2022.03

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/primeshield_eco/bottleneck/fix_bottleneck_robustness_

setting.*.tcl

slk_fix_bottleneck_robustness_by_sizing 694
Tweaker™ Variables Version T-2022.03

slk_fix_cell_robustness_by_sizing
# Adopts the sizing algorithm for fixing cell robutness violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

sizing algorithm for cell robutness autofix.

Example
set slk_fix_cell_robustness_by_sizing true

set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_rule_regexp { @D[0-9]+@ @D[0-9]+@ }

...

slkfix -cell_robustness

slk_fix_cell_robustness_by_sizing 695
Tweaker™ Variables Version T-2022.03

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/primeshield_eco/cell_robustness/

fix_cell_robustness_setting.*.tcl

slk_fix_cell_robustness_by_sizing 696
Tweaker™ Variables Version T-2022.03

slk_fix_cons_without_sizing_down
# Disables the ability to size down the cells during drv autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will not

sizing down any cell during drv fix. However in some special cases where

size down may actually help the drv violation and users can command

Tweaker allow any sizing down operation by setting this variable to false.

The variable controls the sizing operation of following command and options:

slkfix -max_trans | -max_cap | -max_fanout | -noise

Example
set slk_fix_max_trans_by_sizing true

set slk_fix_cons_without_sizing_down true

slk_fix_cons_without_sizing_down 697
Tweaker™ Variables Version T-2022.03

...

slkfix -max_trans -all

See also
slk_fix_setup_without_sizing_down

slk_fix_hold_without_sizing_up

slk_fix_cons_without_sizing_down 698
Tweaker™ Variables Version T-2022.03

slk_fix_cross_bbox_net_with_low_priority
# Decrease the priority of the nets which is crossing the B-boxes when performing delay insertion operation.

Type
Boolean

Default
false

Description
Before performing any fixing operation to the hold time violation paths,

Tweaker will determine the priority of each net and the insertion will

be performed sequentially according to their priorities. During the

insertion process, after performing the insertion on the highest priority

net, if the path still contains a negative slack, the net with the next

highest priority gets inserted. The process will continue until the violated

path is fixed to its best possibility.

By setting this variable to true, it significantly decrease the priority

of the nets which is crossing the B-boxes which will make them as the

least favorable candidates during the delay insertion operation. For the

definition of a "B-box", please refer to the man page of Tweaker

slk_fix_cross_bbox_net_with_low_priority 699
Tweaker™ Variables Version T-2022.03

"slk_fix_bbox_pin_count" variable.

Example
set slk_fix_bbox_pin_count 256

set slk_fix_hold_by_delay_insertion true

set slk_fix_cross_bbox_net_with_low_priority true

...

slkfix -hold -all

See also
slk_fix_bbox_pin_count

slk_fix_dont_touch_cross_bbox_net

slk_fix_cross_bbox_net_with_low_priority 700
Tweaker™ Variables Version T-2022.03

slk_fix_defrag_grouping_cell
# Enable cell grouping during defrag ECO

Type
Boolean

Default
False

Description
Let Tweaker abut specified naming master together as much as possible.

Example
set slk_defrag_cell_naming *_S_* *_D_* *

set slk_fix_defrag_grouping_cell true

See also
$twkInstallDir/etc/template/tweaker_t1/defragmentation/

slk_fix_defrag_grouping_cell 701
Tweaker™ Variables Version T-2022.03

slk_fix_dont_touch_clock_comp
# Enables or disables the ability to touch clock components during auto fixing.

Type
Boolean

Default
true

Description
By default, Tweaker will not touch clock components during fixing setup

and hold violations.

By setting this variable to true, it will allows Tweaker to fix violations

on the clock components.

For hold autofix, this variable will have different behavior when combined

with "slk_fix_hold_dont_touch_clock_net" variable:

Case 1:

set slk_fix_dont_touch_clock_comp true

set slk_fix_hold_dont_touch_clock_net true

=> when the net is connected to both non-clock-component and

clock-component at the same time, then Tweaker cannot the net.

slk_fix_dont_touch_clock_comp 702
Tweaker™ Variables Version T-2022.03

( neither non-clock-component net segment nor clock-component net

segment)

Case 2:

set slk_fix_dont_touch_clock_comp true

set slk_fix_hold_dont_touch_clock_net false

=> when the net is connected to both non-clock-component and

clock-component at the same time, then Tweaker can only touch

the non-clock-component net segment.

Case 3:

set slk_fix_dont_touch_clock_comp false

set slk_fix_hold_dont_touch_clock_net [ true | false ] ( don't care

about this variable input )

=> when the net is connected to both non-clock-component and

clock-component at the same time, then Tweaker touch all clock

segment. ( either non-clock-component net segment or

clock-component net segment )

Example
set slk_fix_dont_touch_clock_comp true

See also
slk_fix_hold_dont_touch_clock_net

slk_fix_dont_touch_clock_comp 703
Tweaker™ Variables Version T-2022.03

set_clock_comp (cmd)

slk_fix_dont_touch_clock_comp 704
Tweaker™ Variables Version T-2022.03

slk_fix_dont_touch_cross_bbox_net
# Disables the delay insertion on the nets which is crossing the B-boxes.

Type
Boolean

Default
false

Description
By setting this variable to true, it will disables any delay insertion

on nets which is crossing the B-boxes. For the definition of a B-box,

please refer to the man page of Tweaker variable "slk_fix_bbox_pin_count".

Tweaker offers this features for the users who might not want Tweaker to

generate ECO nets which is related to the B-box which is most likely has

a SI-sensitive tight routing pattern.

Example
set slk_fix_bbox_pin_count 256

set slk_fix_dont_touch_cross_bbox_net true

slk_fix_dont_touch_cross_bbox_net 705
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_by_delay_insertion true

...

slkfix -hold -all

See also
slk_fix_bbox_pin_count

slk_fix_cross_bbox_net_with_low_priority

slk_fix_dont_touch_cross_bbox_net 706
Tweaker™ Variables Version T-2022.03

slk_fix_drv_by_hfts
# Tweaker variable to enable or disable applying high fanout tree synthesis

algorithm.

Type
Boolean

Default
false

Description
For fixing drv violations by insertion with the net's fanout more than the

one defined at the var "slk_hfts_auto_threshold", user can enable this var

to let Tweaker do the insertion not by grouping but by physical tree

synthesis.

If the violation net's fanout is less than the threshold, then the normal

grouping insertion will take place to fix the violations.

For physical tree synthesis there is possibility to create the new module

ports so when enabled please be noticed of the new created module ports.

slk_fix_drv_by_hfts 707
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_drv_by_hfts true

set slk_hfts_auto_threshold 100

slkfix -max_trans -all

See also
slk_hfts_auto_threshold

slk_fix_drv_by_hfts 708
Tweaker™ Variables Version T-2022.03

slk_fix_drv_by_lib_for_pin_list
# Specifies the pin list which contains the drv violated pin list that Tweaker can fix it to required constrain if the pin violated the lib drv value.

Type
String

Default
Empty

Description
User can provide file which contains drv violated pin list and these

pins are in drv violation reports.

When the value of the pin in the list violates the drv constrain in

cell lib. Tweaker will fix these pins to meet the required constrain,

not only to meet the drv constrain in cell lib.

When the value of the pin in the list violates the user defined required

drv constrain but it's not violate the cell lib required one. Tweaker

will not try to fix it.

Example

slk_fix_drv_by_lib_for_pin_list 709
Tweaker™ Variables Version T-2022.03

set slk_fix_drv_within_pin_list true

set slk_fix_drv_by_lib_for_pin_list "trans_violation_pin.list"

...

slkfix -max_trans -all

See also
slk_fix_drv_within_pin_list

slk_fix_drv_specified_pin_list_file

slk_fix_drv_within_pin_list_expand_to_net

slk_fix_drv_by_lib_for_pin_list 710
Tweaker™ Variables Version T-2022.03

slk_fix_drv_by_sizing_ignore_driving_drv
# Tweaker variable to enable or disable the drv check in eco cell input pins when doing the sizing for fixing output drv violation net.

Type
Boolean

Default
false

Description
By default when Tweaker sizes cell to fix drv violation. Tweaker

checks the drv improvement of the output net, and it also checks

the drv of input pin. If the drv n one of input pins degrades to

violate the drv factor or drv value. The sizing eco will not be

take place.

If set this variable to true, the drv check of eco cell input pins

will be ignore in autofix sizing scheme for drv fixing.

Example
set slk_fix_drv_by_sizing_ignore_driving_drv true

slk_fix_drv_by_sizing_ignore_driving_drv 711
Tweaker™ Variables Version T-2022.03

...

slkfix -max_trans -all

See also
N/A

slk_fix_drv_by_sizing_ignore_driving_drv 712
Tweaker™ Variables Version T-2022.03

slk_fix_drv_dont_touch_clock
# Enables or disables the ability to fix the drv violation by touching the data path only.

Type
Boolean

Default
false

Description
By default, Tweaker will fix all of the drv violation including

those in the clock components.

By setting this variable to true, users can avoid the drv

violations fixing on the clock components.

Example
set slk_fix_max_trans_by_sizing true

set slk_fix_drv_dont_touch_clock true

...

slkfix -max_trans -all

slk_fix_drv_dont_touch_clock 713
Tweaker™ Variables Version T-2022.03

See also
slk_fix_drv_dont_touch_data

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_*/

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_si_glitch/

slk_fix_drv_dont_touch_clock 714
Tweaker™ Variables Version T-2022.03

slk_fix_drv_dont_touch_data
# Enables or disables the ability to fix the drv violation by touching the clock path only.

Type
Boolean

Default
false

Description
By default, Tweaker will fix all of the drv violation including

those in the data paths.

By setting this variable to true, users can avoid the drv

violations fixing on the data paths.

Example
set slk_fix_max_trans_by_sizing true

set slk_fix_drv_dont_touch_data true

...

slkfix -max_trans -all

slk_fix_drv_dont_touch_data 715
Tweaker™ Variables Version T-2022.03

See also
slk_fix_drv_dont_touch_clock

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_*/

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_si_glitch/

slk_fix_drv_dont_touch_data 716
Tweaker™ Variables Version T-2022.03

slk_fix_drv_fit_to_lib
# Tweaker variable to enable or disable the drv fixing with required value

equals the worst constraint from lib.

Type
Boolean

Default
false

Description
By default when drv reports are fed to Tweaker, the required value in the

report are honored directly. If the required value in the report is

unreasonable due to STA issue, user can enable this var to let Tweaker hack

the required value by the worst constraint seen at .lib directly.

Please be noticed that when this feature is enabled the drv slack may change

accordingly because the required value is updated and synced with .lib

already.

Example

slk_fix_drv_fit_to_lib 717
Tweaker™ Variables Version T-2022.03

set slk_fix_drv_fit_to_lib true

...

slkfix -max_trans -all

See also
set_drv_report_required_factor (cmd)
set_drv_report_required_value (cmd)

slk_fix_max_cap_fit_to_lib

slk_fix_max_trans_fit_to_lib

slk_fix_drv_fit_to_lib 718
Tweaker™ Variables Version T-2022.03

slk_fix_drv_out_of_lib_only
# Tweaker variable to filter the unwanted drv violation if its actual drv value

is less than the worst constraint in .lib.

Type
Boolean

Default
false

Description
When this variable is set true, only the drv violation with its actual drv

larger than the worst constraint from .lib will be fixed. Other will be kept

untouched during the optimization.

Example
set slk_fix_drv_out_of_lib_only true

...

slkfix -max_trans -all

slk_fix_drv_out_of_lib_only 719
Tweaker™ Variables Version T-2022.03

See also
slk_fix_max_trans_out_of_lib_only

slk_fix_drv_out_of_lib_only 720
Tweaker™ Variables Version T-2022.03

slk_fix_drv_specified_pin_list_file
# Specifies the pin list which can only be touched during the drv fixing stage.

Type
String

Default
Empty

Description
This variable only works when variable "slk_fix_drv_within_pin_list" is set

to true.

Users are able to fix on some specific violated pin by listing them on a

file and point this pin list to this variable. Pins on the violation nets

but not in the list cannot be touched/grouped during fixing.

If only the driver pin is specified, the violation net can still be sizing

but no insertion.

Format of this pin list are described as below:

aaa/bbb/inst_c/input_pin

aaa/bbb/inst_e/input_pin

aaa/bbb/inst_g/output_pin

slk_fix_drv_specified_pin_list_file 721
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_drv_within_pin_list true

set slk_fix_drv_specified_pin_list_file "trans_violation_pin.list"

...

slkfix -max_trans -all

See also
slk_fix_drv_within_pin_list

slk_fix_drv_within_pin_list_expand_to_net

slk_fix_drv_specified_pin_list_file 722
Tweaker™ Variables Version T-2022.03

slk_fix_drv_watch_hold_timing_window
# Enables or disables Tweaker to monitor the TWF hold margins during DRV

autofix.

Type
Boolean

Default
false

Description
By setting this variable to true, Tweaker will monitor hold time variation

during DRV fixing.

The setting of this variable depends on the performed ECO cycle stage.

For the early ECO cycle stage, user are recommended to set this variable to

false. This setting will allow Tweaker to fix as much DRV violation as

possible.

In the contrary, for the late stage of ECO cycle, users are recommended to

set this variable to true to allow Tweaker to observe the hold time

variation during the DRV fixing and prevent any new generated hold

violation.

slk_fix_drv_watch_hold_timing_window 723
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_drv_watch_hold_timing_window true

See also
slk_fix_drv_watch_setup_timing_window

slk_fix_drv_watch_hold_timing_window 724
Tweaker™ Variables Version T-2022.03

slk_fix_drv_watch_setup_timing_window
# Enables or disables Tweaker to monitor the TWF setup margins during DRV

autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will monitor

the TWF setup margins during DRV violations autofix to avoid any setup

impact.

In contrary, if this variable is set to false, Tweaker will not monitor the

setup margins during the DRV violations autofix.

It is highly recommended to set this value to its default value of true.

Example
set slk_fix_drv_watch_setup_timing_window true

slk_fix_drv_watch_setup_timing_window 725
Tweaker™ Variables Version T-2022.03

...

slkfix -max_trans -all

See also
slk_fix_drv_watch_hold_timing_window

slk_fix_drv_watch_setup_timing_window 726
Tweaker™ Variables Version T-2022.03

slk_fix_drv_within_pin_list
# Enables or disables drv fixing within the user specified pin list.

Type
Boolean

Default
false

Description
By setting this variable to its default value of false, Tweaker will fix all

drv violated pin that is listed in the violation report(s).

On the contrary, by setting this variable to true, users are able to force

Tweaker to fix on some specific violated pin by listing them on a file and

fed it into Tweaker by pointing it to "slk_fix_drv_specified_pin_list_file"

Tweaker variable.

When this variable is set to true, during insertion operation, Tweaker will

only able to insert on the net-segment that is connected to the listed pin.

Even if inserting on the net-segment on peer will improve the slack value,

Tweaker will not perform the insertion.

If only the driver pin is specified, the violation net can still be sizing

slk_fix_drv_within_pin_list 727
Tweaker™ Variables Version T-2022.03

but no insertion.

Example
set slk_fix_drv_within_pin_list true

set slk_fix_drv_specified_pin_list_file "trans_violation_pin.list"

...

slkfix -max_trans -all

See also
slk_fix_drv_specified_pin_list_file

slk_fix_drv_within_pin_list_expand_to_net

slk_fix_drv_within_pin_list 728
Tweaker™ Variables Version T-2022.03

slk_fix_drv_within_pin_list_expand_to_net
# Enable or Disable the fixing across the net when specified pin list feature is used.

Type
Boolean

Default
true

Description
When the feature of fix drv with specified pin list is enabled, Tweaker by

this strategy can only based on the pins in the list to do fixing.

By set this variable to true, Tweaker will not get limited by this strategy

and can expand the fixing across the nets which has appeared in the pin

list.

Example
set slk_fix_drv_within_pin_list true

set slk_fix_drv_specified_pin_list_file ./pin_list_file

set slk_fix_drv_within_pin_list_expand_to_net true

slk_fix_drv_within_pin_list_expand_to_net 729
Tweaker™ Variables Version T-2022.03

...

slkfix -max_trans

See also
slk_fix_drv_within_pin_list

slk_fix_drv_specified_pin_list_file

slk_fix_drv_within_pin_list_expand_to_net 730
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_batch_mode
# Enables or disables dynamic power batch mode.

Type
Boolean

Default
false

Description
During Internal power ECO process, To speed up the entire Internal Power Eco

process, set slk_fix_dynamic_power_batch_mode true Tweaker will ECO multiple

candidates cells at once.

If set slk_fix_dynamic_power_batch_mode false Tweaker will find the

available candidates and swap them one by one with some run time cost to

achieve the maximum dynamic power saving.

It does not affect from slk_fix_dynamic_power_threshold variable.

Example
set slk_fix_dynamic_power_batch_mode true

slk_fix_dynamic_power_batch_mode 731
Tweaker™ Variables Version T-2022.03

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/dynamic_power.tcl

slk_fix_dynamic_power_batch_mode 732
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_batch_mode_post_legalize
# Legalizes location for overlapped eco cells during Internal power ECO.

Type
Boolean

Default
false

Description
During Internal power ECO process, if "slk_auto_fix_fit_to_free_space"

variable is set to true, Tweaker will consume more run time during Internal

power ECO process for each swap. To speed up the entire Internal Power Eco

process, set the variable "slk_auto_fix_fit_to_free_space" to false, while

set this variable true to do the legalization at the end of Internal Power

Eco all at once.

Example
set slk_fix_dynamic_power_batch_mode_post_legalize true

slk_fix_dynamic_power_batch_mode_post_legalize 733
Tweaker™ Variables Version T-2022.03

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/dynamic_power.tcl

slk_fix_dynamic_power_batch_mode_post_legalize 734
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_swap_list_by_design_filename
# Generates dynamic power Eco swap list for each sub design.

Type
String

Default
empty

Description
For hierarchical design, Tweaker can generate dynamic power Eco swap

design-based cell list by using this variable.

Swap cell list which includes swap instances hier names and its original

cell types before dynamic power ECO, is written out during dynamic power

ECO. The list will be used for setup timing recovery after dynamic power

ECO. If this variable is specified, the output filename will be the

specified content plus the design name after it.

Please note that when this var is applied, the same old matched prefix files

under the specified directory (may come from another dynamic power eco run)

will be deleted and re-generated for the current run eco content.

slk_fix_dynamic_power_swap_list_by_design_filename 735
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_dynamic_power_swap_list_by_design_filename \

dynamic_power_eco_swap

### will remove previous files like executing

### "rm dynamic_power_eco_swap.* -f"

### output list

### dynamic_power_eco_swap.sub_design1

### dynamic_power_eco_swap.sub_design2

### dynamic_power_eco_swap.top

See also
slk_fix_dynamic_power_swap_list

$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/dynamic_power.tcl

slk_fix_dynamic_power_swap_list_by_design_filename 736
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_swap_list_filename
# Specifies the dynamic power ECO original cell swap list.

Type
String

Default
empty

Description
By using this variable, user can assign Tweaker to dump the list of cell(s)

which are swapped during the dynamic power ECO operation. This list will

contain the original cell types before the dynamic power ECO operation. This

list is essential for performing setup timing recovery after dynamic power

ECO.

Please note that when this variable is applied, the same old matched file

under the specified directory (may come from another dynamic power eco) run

will be deleted and re-generated for the current run eco content.

Example

slk_fix_dynamic_power_swap_list_filename 737
Tweaker™ Variables Version T-2022.03

set slk_fix_dynamic_power_swap_list_filename swap_cell_list.txt

# will remove previous file like executing "rm -f swap_cell_list.txt"

See also
slkfix -dynamic_power_eco

slk_auto_sizing_instance_file

$Tweaker_Install_DIR/etc/template/tweaker_t1/recovery/timing_recovery.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/dynamic_power.tcl

slk_fix_dynamic_power_swap_list_filename 738
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_threshold
# Specifies the percentage of candidates for dynamic power autofix eco.

Type
Float

Default
1.0

Description
By default, command slkfix -dynamic_power_eco will try to optimize

instances, which have any non-zero dynamic power value. In vectorless flow,

all standard cells in whole chip have toggle rate and also the corresponding

dynamic power value. That will cause long run time issue. The variable

specifies the percentage of candidates for autofix and Tweaker fixes the

candidates having worst dynamic power.

The default value 1.0 means 100%.

You can change the value of the variable arbitrarily before each autofix

eco, including batch mode internal power eco.

It does not affect the eco domain creation and batch mode dynamic power eco.

It also does not affect the dynamic power eco by deletion.

slk_fix_dynamic_power_threshold 739
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_dynamic_power_threshold 0.1

slkfix -dynamic_power_eco

See also
power_report_in (cmd)
slkfix (cmd)
slkfix (cmd)
slkdb (cmd)
slkfix (cmd)

$Tweaker_Install_DIR//etc/template/tweaker_t1/dynamic_power/dynamic_power_

eco_vectorless.tcl

slk_fix_dynamic_power_threshold 740
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_watch_hold
# Enable/Disable watching hold timing window file while fixing dynamic power

Type
Boolean

Default
false

Description
Tweaker will not watch for hold timing window file while recovering dynamic

power as sizing down cell will improve hold time. However, sizing up might

help dynamic power on some special cases. Hence, when the variable "slk_fix_

dynamic_power_without_sizing_down" is enabled and the variable "slk_fix_dyn-

amic_power_without_sizing_up" is disabled to improve those special cases,

enabling this variable is recommended for Tweaker to watch hold timing wind-

ow while sizing up the cells for not introducing hold time impact.

Example
tweaker_shell> set slk_fix_dynamic_power_without_sizing_down true

slk_fix_dynamic_power_watch_hold 741
Tweaker™ Variables Version T-2022.03

tweaker_shell> set slk_fix_dynamic_power_without_sizing_up false

tweaker_shell> set slk_fix_dynamic_power_watch_hold true

tweaker_shell> slkfix -dynamic_power_eco

See also
[ VAR ] slk_fix_dynamic_power_without_sizing_down

[ VAR ] slk_fix_dynamic_power_without_sizing_up

[ VAR ] slk_fix_dynamic_power_watch_peer_setup

slk_fix_dynamic_power_watch_hold 742
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_watch_internal_power
# Enables or disables Tweaker to monitor the internal power during Dynamic Power

ECO.

Type
Boolean

Default
false

Description
By its default value false, Tweaker is able to do as much ECOs as possible.

For Dynamic Power ECO fixing Switching Power, users are recommended to set

this variable to true to avoid internal power impact.

Example
set slk_fix_dynamic_power_watch_internal_power true

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

slk_fix_dynamic_power_watch_internal_power 743
Tweaker™ Variables Version T-2022.03

power_eco_setting.1.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

power_eco_setting.2.tcl

slk_fix_dynamic_power_watch_leakage_power (var)

slk_fix_dynamic_power_watch_internal_power 744
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_watch_leakage_power
# Enables or disables Tweaker to monitor the leakage power during Dynamic Power

ECO.

Type
Boolean

Default
false

Description
By its default value false, Tweaker is able to do as much ECOs as possible

and user can expected the better power improvement with this variable

setting true. For Dynamic Power run, users are recommended to set this

variable to true to avoid leakage power impact.

Example
set slk_fix_dynamic_power_watch_leakage_power true

See also

slk_fix_dynamic_power_watch_leakage_power 745
Tweaker™ Variables Version T-2022.03

$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

power_eco_setting.1.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

power_eco_setting.2.tcl

slk_fix_dynamic_power_watch_internal_power (var)

slk_fix_dynamic_power_watch_leakage_power 746
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_watch_peer_setup
# Enable/Disable watch peer setup timing window file while fixing dynamic power

Type
Boolean

Default
true

Description
Tweaker sizes down cells to improve dynamic power by default. However, it

might impact the setup time for the other fanouts of sized down driver's

(peer). Therefore, Tweaker wil watch for peer setup impact by defaut.

Disabling this variable will ignore any setup impact on peer while recover-

ing dynamic power with sizing down.

Example
tweaker_shell> set slk_fix_dynamic_power_without_sizing_up true

tweaker_shell> set slk_fix_dynamic_power_watch_peer_setup false

tweaker_shell> slkfix -dynamic_power_eco

slk_fix_dynamic_power_watch_peer_setup 747
Tweaker™ Variables Version T-2022.03

See also
[ VAR ] slk_fix_dynamic_power_without_sizing_up

[ VAR ] slk_fix_dynamic_power_without_sizing_down

[ VAR ] slk_fix_dynamic_power_watch_hold

slk_fix_dynamic_power_watch_peer_setup 748
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_watch_switching_power
# Enables or disables Tweaker to monitor the switching power during Dynamic

Power ECO.

Type
Boolean

Default
false

Description
By its default value false, Tweaker is able to do as much ECOs as possible.

For Dynamic Power ECO fixing Switching Power, users are recommended to set

this variable to true to avoid switching power impact.

Example
set slk_fix_dynamic_power_watch_switching_power true

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_switching_

slk_fix_dynamic_power_watch_switching_power 749
Tweaker™ Variables Version T-2022.03

power_eco_setting.sz.1.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_switching_

power_eco_setting.sz.2.tcl

slk_fix_dynamic_power_watch_leakage_power (var)
slk_fix_dynamic_power_watch_internal_power (var)

slk_fix_dynamic_power_watch_switching_power 750
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_without_sizing_down
# Disables the ability to size down the cells during dynamic power autofix.

Type
Boolean

Default
false

Description
Tweaker will not sizing down any cell when this variable set to true when

dynamic power autofix. However in some special cases where sizing up may

actually help the dynamic power. User can enable this variable to do sizing

up only dynamic power eco to improve those special cases.

The internal power batch mode sizing will not reference this variable, it

only can do sizing down only.

Example
set slk_fix_dynamic_power_batch_mode false

set slk_fix_dynamic_power_without_sizing true

slk_fix_dynamic_power_without_sizing_down 751
Tweaker™ Variables Version T-2022.03

...

slkfix -dynamic_power_eco

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/dynamic_power.tcl

slk_fix_dynamic_power_without_sizing_down 752
Tweaker™ Variables Version T-2022.03

slk_fix_dynamic_power_without_sizing_up
# Enables or disables Tweaker to do up-sizing during Dynamic Power ECO.

Type
Boolean

Default
true

Description
By default, Tweaker is not allowed to do up-sizing which are contrary to the

purpose of reducing power during Dynamic Power ECO. However, Tweaker offers

ability for user by enabling this variable to do up-sizing which might

benefit power improvement for some cases.

Example
set slk_fix_dynamic_power_without_sizing_up false

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

slk_fix_dynamic_power_without_sizing_up 753
Tweaker™ Variables Version T-2022.03

power_eco_setting.1.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

power_eco_setting.2.tcl

slk_fix_internal_power_by_sizing (var)
slk_fix_switching_power_by_sizing (var)

slk_fix_dynamic_power_without_sizing_up 754
Tweaker™ Variables Version T-2022.03

slk_fix_enable_defrag_to_different_row
# Enable/Disable moving cell to different row while defragmentation

Type
Boolean

Default
false

Description
Tweaker defragmentation moves cell to left/right direction by default. Howe-

ver, better utilization can be achieved by moving cell to another row (up/d-

own direction). Therefore, Tweaker can move cell which having enough timing

margin to another row by enabling this variable. To control on how far the

cell can be move to another row, "slk_auto_sizing_max_shift_distance" is us-

ed.

Example
tweaker_shell> set slk_fix_enable_defrag_to_different_row true

tweaker_shell> set slk_auto_sizing_max_shift_distance 5

slk_fix_enable_defrag_to_different_row 755
Tweaker™ Variables Version T-2022.03

tweaker_shell> slkfix -defrag

See also
[ VAR ] slk_auto_sizing_max_shift_distance

slk_fix_enable_defrag_to_different_row 756
Tweaker™ Variables Version T-2022.03

slk_fix_forbidden_chain_by_insertion
# Adopts the insertion algorithm for fixing forbidden chain violations.

Type
Boolean

Default
false

Description
By setting this variable to true, Tweaker will adopt sizing algorithm for

forbidden chain autofix.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_forbidden_chain_by_insertion true

set slk_fix_forbidden_chain_by_sizing false

set slk_repeater_insertion_buff_list {DBFS0 DBFS4}

...

slk_fix_forbidden_chain_by_insertion 757
Tweaker™ Variables Version T-2022.03

slkfix -forbidden_chain

See also
slk_fix_forbidden_chain_by_sizing

slk_repeater_insertion_buff_list

slk_fix_forbidden_chain_by_insertion 758
Tweaker™ Variables Version T-2022.03

slk_fix_forbidden_chain_by_sizing
# Adopts the sizing algorithm for fixing forbidden chain violations.

Type
Boolean

Default
false

Description
By setting this variable to true, Tweaker will adopt sizing algorithm for

forbidden chain autofix.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_forbidden_chain_by_sizing true

set slk_fix_forbidden_chain_by_insertion false

set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_rule_regexp { @D[0-9]+@ @D[0-9]+@ }

slk_fix_forbidden_chain_by_sizing 759
Tweaker™ Variables Version T-2022.03

...

slkfix -forbidden_chain

See also
slk_fix_setup_by_sizing

slk_fix_hold_by_sizing

slk_fix_forbidden_chain_by_insertion

slk_fix_forbidden_chain_by_sizing 760
Tweaker™ Variables Version T-2022.03

slk_fix_forbidden_chain_dont_touch_clock
# Enables or disables the ability to fix the forbidden chain violation by

touching the clock components.

Type
Boolean

Default
true

Description
By default, Tweaker will not fix the forbidden chain violation on the

clock components.

By setting this variable to false, users are able to fixing the forbidden

chain violations on the clock components.

Example
set slk_fix_forbidden_chain_by_sizing true

set slk_fix_forbidden_chain_dont_touch_clock true

...

slk_fix_forbidden_chain_dont_touch_clock 761
Tweaker™ Variables Version T-2022.03

slkfix -forbidden_chain

See also
slk_fix_dont_touch_clock_comp

slk_fix_drv_dont_touch_clock

slk_fix_forbidden_chain_dont_touch_clock 762
Tweaker™ Variables Version T-2022.03

slk_fix_forbidden_chain_insertion_exhaustively
# Adopts the exhaustive algorithm to fixing forbidden chain by insertion

Type
Boolean

Default
true

Description
When Tweaker fixing forbidden chain by insertion, Tweaker will try to fix

on common point(the point with most violations) first.

By default setting of this variable, Tweaker will trace all the fan-in and

fan-out cone for each pin to evaluate the common point for insertion.

Example
set slk_fix_forbidden_chain_by_insertion true

set slk_fix_forbidden_chain_insertion_exhaustively true

set slk_repeater_insertion_buff_list {DBFS0 DBFS4}

...

slk_fix_forbidden_chain_insertion_exhaustively 763
Tweaker™ Variables Version T-2022.03

slkfix -forbidden_chain

See also
slk_fix_forbidden_chain_by_insertion

slk_fix_forbidden_chain_insertion_exhaustively 764
Tweaker™ Variables Version T-2022.03

slk_fix_forbidden_chain_insertion_factor
# Controls the scaling factor in deriving the candidate nets of repeater insertion during autofix operation.

Type
float

Default
0.0

Description
This variable is only valid when forbidden chain autofix by insertion

feature is enabled.

By default, Tweaker will calculate the average values of all cell delay

and net transition values from the built ECO domain.

Later during the insertion autofix, Tweaker will compare the cell delay

of every driver and net transition in the violation paths with this

calculated average value.

If either a driver's cell delay or its driven net's transition value are

larger than the calculated average values, Tweaker will take this cell

as the critical point, hence Tweaker will try to insert on this net.

On the contrary, if both the driver cell delay and net transition value

slk_fix_forbidden_chain_insertion_factor 765
Tweaker™ Variables Version T-2022.03

is smaller than the corresponding average value, Tweaker will not even try

to insert on the net that is driven by this driver. Hence, by default,

Tweaker will not try to insert on every net of a violation path.

This variable will acts as the factor that will affect the calculated

average value.

When users set a larger value to this variable, more net candidate will be

listed as the insertion candidate. On the contrary, when user sets a smaller

value to this variable, Tweaker may see less net as its insertion candidate.

User can also set this variable to 0 to disable this feature.

Example
set slk_fix_forbidden_chain_by_insertion true

set slk_fix_forbidden_chain_insertion_factor 0.5

set slk_repeater_insertion_buff_list {DBFS0 DBFS4}

...

slkfix -forbidden_chain

See also
slk_fix_forbidden_chain_by_insertion

slk_fix_forbidden_chain_insertion_factor 766
Tweaker™ Variables Version T-2022.03

slk_fix_forbidden_chain_min_improved_for_insertion
# Set the minimum improve value for forbidden chain insertion fixing

Type
integer

Default
1

Description
Fixing forbidden chain by insertion method, Tweaker can control the

minimum improvement for fixing forbidden chain violations.

This variable can define how many forbidden chain violations should be

fixed in one inserted buffer. If this variable set to 5, it means one

inserted buffer should fix over than 5 violation chains.

Example
set slk_fix_forbidden_chain_by_insertion true

set slk_fix_forbidden_chain_min_improved_for_insertion 5

set slk_repeater_insertion_buff_list {DBFS0 DBFS4}

slk_fix_forbidden_chain_min_improved_for_insertion 767
Tweaker™ Variables Version T-2022.03

...

slkfix -forbidden_chain

See also
slk_fix_forbidden_chain_by_insertion

slk_fix_forbidden_chain_min_improved_for_insertion 768
Tweaker™ Variables Version T-2022.03

slk_fix_forbidden_chain_nworst
# Set the nworst value for forbidden chain autofix

Type
integer

Default
10

Description
This variable can control the maximum nworst number when fixing forbidden

chain. Tweaker will use the nworst value to trace the violation to fix it

and report the post-eco remaining violation.

By default setting of this variable, Tweaker will apply nworst 10 when fixing

forbidden chain violations

Example
set slk_fix_forbidden_chain_by_insertion true

set slk_fix_forbidden_chain_nworst 30

set slk_repeater_insertion_buff_list {DBFS0 DBFS4}

slk_fix_forbidden_chain_nworst 769
Tweaker™ Variables Version T-2022.03

...

slkfix -forbidden_chain

See also
slk_fix_forbidden_chain_by_insertion

slk_fix_forbidden_chain_nworst 770
Tweaker™ Variables Version T-2022.03

slk_fix_forbidden_chain_watch_hold_timing_window
# Enables or disable Tweaker to watch the hold time in Timing Windows File (TWF)

during forbidden chain autofix.

Type
Boolean

Default
true

Description
By setting this variable to true, it enables Tweaker to observe

for any hold time variation during forbidden chain autofix. The

setting of this variable depends on the performed ECO cycle stage.

Example
set slk_fix_forbidden_chain_by_sizing true

set slk_fix_forbidden_chain_watch_hold_timing_window true

set slk_fix_forbidden_chain_watch_setup_timing_window true

...

slk_fix_forbidden_chain_watch_hold_timing_window 771
Tweaker™ Variables Version T-2022.03

slkfix -forbidden_chain

See also
slk_fix_forbidden_chain_watch_setup_timing_window

slk_fix_forbidden_chain_watch_hold_timing_window 772
Tweaker™ Variables Version T-2022.03

slk_fix_forbidden_chain_watch_setup_timing_window
# Enables or disable Tweaker to watch the setup time in Timing Windows File

(TWF) during forbidden chain autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will observe

for any setup time variation for peer side/sub side inside the TWF during

forbidden chain autofix.

Example
set slk_fix_forbidden_chain_by_sizing true

set slk_fix_forbidden_chain_watch_setup_timing_window true

set slk_fix_forbidden_chain_watch_hold_timing_window true

...

slk_fix_forbidden_chain_watch_setup_timing_window 773
Tweaker™ Variables Version T-2022.03

slkfix -forbidden_chain

See also
slk_fix_forbidden_chain_watch_hold_timing_window

slk_fix_forbidden_chain_watch_setup_timing_window 774
Tweaker™ Variables Version T-2022.03

slk_fix_hold_add_dummy_cell_by_bounding_box
# To measure slk_max_dummy_load_cell_distance starting from net bounding box

edge instead of target sink pin.

Type
Boolean

Default
false

Description
By default, [VAR] slk_max_dummy_load_cell_distance controls how far away a

dummy cell can be placed from the target sink pin of the net to be inserted

the dummy load cell. However, more than often P&R would try to retain the

existing routing pattern as much as possible without rerouting too much when

implementing the inserted dummy cells, and sometimes it happens that dummy

cells could be placed too close to existing routing pattern of the target

net, even if a big distance is specified by

[VAR] slk_max_dummy_load_cell_distance.

In such a case, after P&R ECO-routes the new dummy cell to the existing

routing pattern, the length of the additional net segment connecting the new

slk_fix_hold_add_dummy_cell_by_bounding_box 775
Tweaker™ Variables Version T-2022.03

dummy cell and the original routing pattern might not be long enough to

provide good extra loading to produce good extra delay, which makes the

dummy load insertion algorithm less effective.

By enabling this variable, the distance specified by

[VAR] slk_max_dummy_load_cell_distance no longer refers to the distance

between the dummy cell and the target sink pin of the net, but that between

the dummy cell and either edge of the bounding box of the entire net span.

This can ensure the effect of adding the dummy cell when loading is expected

to be provided by the net : to provide additional net segment long enough to

created additional loading.

Example
set slk_fix_hold_by_add_dummy_load true

set slk_dummy_load_cell_list { INVX1 INVX2 }

set slk_range_for_add_dummy_load -0.005 0

set slk_max_dummy_load_cell_distance 25

set slk_max_dummy_load_cell_count 2

set slk_fix_hold_add_dummy_cell_by_bounding_box true

...

slkfix -hold -all

slk_fix_hold_add_dummy_cell_by_bounding_box 776
Tweaker™ Variables Version T-2022.03

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.dmy.tcl

slk_fix_hold_by_add_dummy_load (var)
slk_dummy_load_cell_list (var)
slk_range_for_add_dummy_load (var)
slk_max_dummy_load_cell_distance (var)
slk_max_dummy_load_cell_count (var)

slk_fix_hold_add_dummy_cell_by_bounding_box 777
Tweaker™ Variables Version T-2022.03

slk_fix_hold_allow_impact_next_stage
# Tweaker variable to allow any setup impact on the next stage of the path ( latch-based design )

Type
Boolean

Default
false

Description
For a latch-based design, when this variable is set to true, if the actual-

time-borrow of the latch endpoint is smaller than the max-time-borrow then

Tweaker will utilized the remaining time-borrow even if it cause any setup

impact as long as it can improve the setup margin which Tweaker can further

utilize this setup margin for hold autofix.

Hence by enabling this variable, please expect the possible setup impact

during the ECO operation.

Example
set slk_fix_hold_allow_impact_next_stage true

slk_fix_hold_allow_impact_next_stage 778
Tweaker™ Variables Version T-2022.03

See also
NA

slk_fix_hold_allow_impact_next_stage 779
Tweaker™ Variables Version T-2022.03

slk_fix_hold_at_endpoint_only
# Enables or disables the delay insertion to be done at the endpoint of a path during fixing hold violations.

Type
Boolean

Default
false

Description
If this variable is set to its default value of false, Tweaker will have

its own algorithm to decide the best location of the delay insertion.

On the other side, if this variable is set to true, it will force Tweaker

to do the delay insertion on the endpoint only.

Users are not recommended to turn on this feature for general cases.

This variable only works when either "slk_fix_hold_by_delay_insertion" or

"slk_fix_hold_by_high_fanout_insertion" is enabled.

Example
slk_fix_hold_by_delay_insertion true

slk_fix_hold_at_endpoint_only 780
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_at_endpoint_only true

...

slkfix -hold -all

See also
slk_fix_hold_at_sink_pin_only

slk_fix_hold_at_startpoint_only

slk_fix_hold_at_endpoint_only 781
Tweaker™ Variables Version T-2022.03

slk_fix_hold_at_sink_pin_by_distance
# Enables or disables the delay insertion to insert buffer with fixed distance

from the sink pin during hold violation autofix.

Type
Boolean

Default
false

Description
By default, Tweaker will have its own algorithm to decide the best location

of the delay insertion, which is common point ideally.

On contrary, if this variable is set to true, it will force Tweaker to

insert buffer physically close to sink pin with fixed distance.

The fixed distance is specified by the lower bound of the variable

"slk_preferred_delay_cell_distance_range".

If the buffer chain is needed to insert, each buffer will follow this

setting and be placed to the physical location with the fixed distance.

For the back-to-back hold-path, if the detail-route is smaller than the

lower bound of "slk_preferred_delay_cell_distance_range", then Tweaker will

slk_fix_hold_at_sink_pin_by_distance 782
Tweaker™ Variables Version T-2022.03

not perform the insertion and will give the blocking code instead.

This variable only works when "slk_fix_hold_at_sink_pin_only" is enabled.

Example
set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_fix_hold_at_sink_pin_only true

set slk_fix_hold_at_sink_pin_by_distance true

set slk_preferred_delay_cell_distance_range 5 9999

...

slkfix -hold -all

See also
slk_preferred_delay_cell_distance_range

slk_fix_hold_at_sink_pin_only

slk_fix_hold_at_sink_pin_by_distance 783
Tweaker™ Variables Version T-2022.03

slk_fix_hold_at_sink_pin_only
# Enables or disables the delay insertion to be done at each the cells sink pin of the violated path during hold violation autofix.

Type
Boolean

Default
false

Description
By default, Tweaker will have its own algorithm to decide the best grouping and location

of the delay insertion, which is common point ideally.

On contrary, if this variable is set to true, it will force Tweaker to insert buffer

on each violated sink pin without grouping logically. If you want to insert buffer

physical close to sink pin. Please check "slk_fix_hold_at_sink_pin_by_distance".

The advantage of this feature is reducing ECO route impact. Because only

violated sink pin corresponding eco net need to re-route.

This variable only works when either "slk_fix_hold_by_delay_insertion" or

"slk_fix_hold_by_high_fanout_insertion" is enabled.

slk_fix_hold_at_sink_pin_only 784
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_fix_hold_at_sink_pin_only true

...

slkfix -hold -all

See also
slk_fix_hold_at_endpoint_only

slk_fix_hold_at_startpoint_only

slk_fix_hold_at_sink_pin_by_distance

slk_fix_hold_at_sink_pin_only 785
Tweaker™ Variables Version T-2022.03

slk_fix_hold_at_startpoint_only
# Enables or disables the delay insertion to be done at the startpoint of a path during fixing hold violations.

Type
Boolean

Default
false

Description
If this variable is set to its default value of false, Tweaker will have

its own algorithm to decide the best location of the delay insertion.

On the other side, if this variable is set to true, it will force Tweaker

to do the delay insertion on the startpoint only.

Users are not recommended to turn on this feature for general cases.

This variable only works when either "slk_fix_hold_by_delay_insertion" or

"slk_fix_hold_by_high_fanout_insertion" is enabled.

Example
slk_fix_hold_by_delay_insertion true

slk_fix_hold_at_startpoint_only 786
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_at_startpoint_only true

...

slkfix -hold -all

See also
slk_fix_hold_at_endpoint_only

slk_fix_hold_at_sink_pin_only

slk_fix_hold_at_startpoint_only 787
Tweaker™ Variables Version T-2022.03

slk_fix_hold_bottleneck_factor
# Specifies the ratio of setup and hold margin to determine the bottleneck for

hold paths in slack view.

Type
float

Default
3.0

Description
In Tweaker slack view, there is a column "Bottleneck" for hold paths, and

three kinds of results will be shown by comparing the ratio of setup and

hold margin with this variable.

The ratio is specified by dividing hold margin by setup margin.

1. Green light

If the ratio of any point in certain path is larger than this

variable.

2. Yellow light

If the ratio is larger than zero and less than this variable.

3. Red light

slk_fix_hold_bottleneck_factor 788
Tweaker™ Variables Version T-2022.03

If the setup timing window has no margin, that means the setup slack

of all points in the path are negative.

This variable can be set at any time, but need to refresh slack view to

update Bottleneck result.

Example
set slk_fix_hold_bottleneck_factor 3.0

See also
N/A

slk_fix_hold_bottleneck_factor 789
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_add_dummy_load
# Adopts the add dummy load algorithm for fixing hold violations.

Type
Boolean

Default
false

Description
By setting this variable to its default value of true, Tweaker will adopt

add dummy load algorithm for hold autofix.

The benefit of this algorithm is to fix small hold violations using dummy

cells instead of buffers insertion to save area overhead.

When a dummy cell is inserted, Tweaker will create the extra fanout on the

existing hold violation net and leave the new fanout (dummy cell) output

open (floating output) and use its input cap and extra wire delay to create

small delay.

This algorithm will honor several supplementary settings in performing add

dummy load operation:

1. slk_max_dummy_load_cell_count

slk_fix_hold_by_add_dummy_load 790
Tweaker™ Variables Version T-2022.03

2. slk_max_dummy_load_cell_distance

3. slk_range_for_add_dummy_load

Please to refer to each of man pages of above variables for more details.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_hold_by_add_dummy_load true

set slk_max_dummy_load_cell_distance 15

set slk_max_dummy_load_cell_count 2

set slk_range_for_add_dummy_load -0.01 0

...

slkfix -hold -all

See also
slk_range_for_add_dummy_load

slk_max_dummy_load_cell_distance

slk_max_dummy_load_cell_count

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.dmy.tcl

slk_fix_hold_by_add_dummy_load 791
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_delay_insertion
# Adopts the delay insertion algorithm for fixing hold violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will fix hold

violations by using the delay insertion algorithm. This algorithm will honor

the range value specified at "slk_preferred_delay_cell_distance_range"

variable when placing the delay buffers at a violated pin.

This algorithm is also supported by "slk_fast_delay_insertion" variable in

choosing the delay insertion style, whether one-buffer insertion at a time

or multiple-buffer insertion at a time is more preferred by the user.

The variable could be assisted with other variables such as

"slk_fix_hold_by_high_fanout_insertion" and "slk_fix_hold_at_endpoint_only"

for more advanced fixing process.

slk_fix_hold_by_delay_insertion 792
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_delay_insertion true

set slk_fast_delay_insertion true

set slk_preferred_delay_cell_distance_range 10 100

set slk_fix_hold_at_endpoint_only true

...

slkfix -hold -all

See also
slk_fix_hold_by_high_fanout_insertion

slk_fix_hold_at_endpoint_only

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.*.tcl

slk_fix_hold_by_delay_insertion 793
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_delay_insertion_with_cell_stealing
# Allows Tweaker to utilize the delay insertion with cell stealing strategy for

hold autofix.

Type
Boolean

Default
false

Description
For fixing hold violations, the activation of this variable will allow

Tweaker to use delay insertion with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_hold_by_delay_insertion false

set slk_fix_hold_by_high_fanout_insertion false

slk_fix_hold_by_delay_insertion_with_cell_stealing 794
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_by_delay_insertion_with_cell_stealing true

set slk_give_up_insert_if_no_space true

set slk_give_up_insert_buf_distance 100

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -hold -all

See also
slk_give_up_insert_buf_distance

slk_fix_hold_by_delay_insertion_with_cell_stealing 795
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_extract_extra_domain_setup_margin
# Enables or disables the feature of extract extra setup margin.

Type
Boolean

Default
false

Description
This variable offers the ability to extract more setup margin by increasing

its extracting domain beyond the existing hold paths, while the

"slk_fix_hold_by_extract_setup_margin" variable allows Tweaker to extract

the setup margin only from the existing hold paths.

This variable should be applied after creation of the domain which will take

"slk_extract_setup_level" variable into domain creation consideration by

issuing "slkfix -create_extract_setup_margin" command.

This extraction mechanism will not include any new hold time violation or

aggravate the existing hold paths.

slk_fix_hold_by_extract_extra_domain_setup_margin 796
Tweaker™ Variables Version T-2022.03

Example
set slk_extract_setup_level 3

slkfix -create_extract_setup_margin

...

set slk_fix_hold_by_sizing true

set slk_fix_hold_by_extract_extra_domain_setup_margin true

...

slkfix -hold -all

See also
slk_extract_setup_level

slkfix (cmd)

slk_fix_hold_by_extract_extra_domain_setup_margin 797
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_extract_setup_margin
# Extracts the setup margin on existing hold path.

Type
Boolean

Default
false

Description
For hold/setup toggled paths, Tweaker provides a mechanism to extract more

setup margin on existing hold paths in slow to fast manner by using the

sizing algorithm. Users can utilize the newly acquired setup margin to

perform more fix hold operations.

When this variable is set to true, it will select candidates whose setup

margin is less than the value defined in "slk_setup_target_slk" and

those whose transition value larger than the value defined in

"slk_extract_setup_margin_trans".

The feature of this variable is different from the

"slk_fix_hold_by_fix_setup_si" variable where the later would only focus

on optimizing si nets and focus on fixing setup on si nets only.

slk_fix_hold_by_extract_setup_margin 798
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_sizing true

set slk_fix_hold_by_extract_setup_margin true

set slk_extract_setup_margin_trans 0.1

set slk_setup_target_slk 0.03

slkfix -hold -all

See also
slk_extract_setup_margin_trans

slk_fix_hold_by_extract_setup_margin 799
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_fix_setup_si
# Enables or disables fixing setup SI delay while still fixing hold violations.

Type
Boolean

Default
false

Description
This variable works only when either "slk_fix_si_only" or "slk_fix_si_first"

variable is set to true. By enabling one of above variables, Tweaker will

start to optimize the SI delay components on existing hold paths domain.

As the SI delay component could be a positive delay (setup SI) or

negative delay (hold SI). By setting this variable to its default value of

false, Tweaker optimize the negative delay to fix the hold violations.

On the contrary, when this variable is set to true, Tweaker will

optimize the positive delay for fixing setup violations in order to extract

more setup margin for further fix operations.

slk_fix_hold_by_fix_setup_si 800
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_sizing true

set slk_fix_si_first true

set slk_fix_hold_by_fix_setup_si true

...

slkfix -hold -all

See also
slk_fix_si_first

slk_fix_si_only

slk_fix_hold_by_fix_setup_si 801
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_hack_sdf
# Adopts the Hack SDF as fixing algorithm during hold autofix.

Type
Boolean

Default
false

Description
For early simulation purpose, Tweaker provides the "Hack SDF" operation

which generates violation-free SDF files. Users are recommended to perform

the Hack SDF operation based on the TWF file which is used by Tweaker

"slkfix -create_twf_hack_sdf_domain" command to build up the sdf domain,

then use "slkfix -twf_hack_sdf" to get both setup/hold hacked in the same

Tweaker run.

Besides "TWF domain"-based Hack SDF, Tweaker can also accept the Hack SDF

which is based on input setup/hold violation reports. For this scenario,

users can still use "slkfix -setup -all" command to hack those input hold

violation reports.

slk_fix_hold_by_hack_sdf 802
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_hack_sdf true

set slk_fix_hold_by_sizing false

set slk_fix_hold_by_delay_insertion false

...

set slk_hold_target_slk 0.05

slkfix -hold -all

See also
slk_fix_setup_by_hack_sdf

$Tweaker_Install_DIR/etc/template/tweaker_t1/hacksdf/fix_hold/fix_hold_

setting.hacksdf.tcl

slk_fix_hold_by_hack_sdf 803
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_high_fanout_insertion
# Adopts the HFI algorithm for fixing hold violations.

Type
Boolean

Default
false

Description
If this variable is set to true, Tweaker will fix the hold violations by

using the HFI (high fanout insertion) algorithm.

Advantage of HFI algorithm over the normal delay insertion algorithm is that

it can group-up the violated sink pins of the high fanout net and fix them

together which will save the insertion buffer count and area overhead after

the ECO process.

This variable works only if the "slk_fix_hold_by_delay_insertion" variable

is set to true.

The sink pins grouping system in HFI algorithm depends on several factors

which are defined on below variables:

1. _slk_hfi_setup_margin_threshold

slk_fix_hold_by_high_fanout_insertion 804
Tweaker™ Variables Version T-2022.03

2. slk_setup_target_slk

3. slk_hfi_grouping_hold_margin

4. slk_hfi_peer_setup_margin

Please refer to man pages of each variables or consult our local AE for more

details.

Example
set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

...

slkfix -hold -all

See also
slk_fix_hold_by_delay_insertion

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.*.tcl

slk_fix_hold_by_high_fanout_insertion 805
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_sizing
# Adopts the sizing algorithm for fixing hold violations.

Type
Boolean

Default
false

Description
By setting this variable to its default value of true, Tweaker will adopt

the sizing algorithm for hold violations autofix. By the default setting,

this operation will be limited by the "slk_fix_hold_without_size_up"

variable (default value: true) which will affect Tweaker to only size-down

the violated cell to fix their hold violations while still make sure that

that they still meets the requirement of DRV value or other transition/slew

rules.

Example
set slk_fix_hold_by_sizing true

slk_fix_hold_by_sizing 806
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_without_sizing_up true

...

slkfix -hold -all

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.sz.tcl

slk_fix_hold_by_sizing 807
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_sizing_with_cell_stealing
# Allows Tweaker to utilize the sizing with cell stealing strategy for hold

autofix.

Type
Boolean

Default
false

Description
For fixing hold violations, the activation of this variable will allow

Tweaker to use sizing with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_hold_by_sizing false

set slk_fix_hold_by_delay_insertion_with_cell_stealing false

slk_fix_hold_by_sizing_with_cell_stealing 808
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_by_sizing_with_cell_stealing true

set slk_auto_fix_fit_to_free_space true

set slk_auto_sizing_max_shift_distance 200

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -hold -all

See also
slk_auto_sizing_max_shift_distance

slk_fix_hold_by_sizing_with_cell_stealing 809
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_twf_cost
# Enables or disables the feature of fixing hold by TWF.

Type
Boolean

Default
false

Description
In order to save the run time by reducing the input hold violation report(s)

while expanding the area size of the hold ECO domain, Tweaker offers a

feature of back-tracing that can be enabled by specifying a value onto this

variable. The back-trace operation for fixing the hold violations is using

the TWF (Timing Window File) information/values to track the hold violation

domain which covers the modified (sized-down) input hold violation

(e.g. nworst 1) report(s) and continues to explore (back-trace) the other

hold ECO domain which is not covered by the report(s)

There is a set of other variables that need to be configured together with

this feature to fix the hold violations. This variable is the main switch

which is combined with other variables to utilize this features.

slk_fix_hold_by_twf_cost 810
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_twf_cost true

set slk_fix_hold_level 6

set slk_fix_hold_high_effort_flow true

set slk_twf_cost_v2 true

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold_nworst1_

plus_twf/fix_hold.tcl

slk_fix_hold_level

slk_fix_hold_high_effort_flow

slk_twf_cost_v2

slk_fix_hold_by_twf_cost 811
Tweaker™ Variables Version T-2022.03

slk_fix_hold_by_virtual_route
# Tweaker variable to enable or disable the virtual route behavior when a

sequence of buffer insertion happens at fixing hold by hfi.

Type
Boolean

Default
false

Description
This variable only works when the feature of HFI is enabled during fixing hold.

When fixing hold by HFI is enabled and a sequence of hold buffers

(hard code 5 buffers) are needed to get inserted at once, user can enable

this variable to let hold buffers physically placed in a straightened chain

to avoid the z style placements.

If the sequence of hold buffers is less than the hard code value then the

virtual route will be disabled directly.

Example

slk_fix_hold_by_virtual_route 812
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_fix_hold_by_virtual_route true

slkfix -hold ...

See also
N/A

slk_fix_hold_by_virtual_route 813
Tweaker™ Variables Version T-2022.03

slk_fix_hold_dont_touch_clock_net
# Disables the hold violations fixing on clock pins.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will disable

the fixing on pins which are considered as clock at STA. After Tweaker

classifies the clock and data pins according to the imported timing window

file (TWF), Tweaker will fix any violation on the "data" pins (pins without

"the clock segment" attribute) and the pins with "clock as data" attribute

only. Notice that, the pins with "clock as data" attribute can only be

noticed by Tweaker after users issue Tweaker "check_clock_as_data" command.

For more information on the "clock as data" attribute, please refer to the

man page of the "check_clock_as_data" command.

slk_fix_hold_dont_touch_clock_net 814
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_dont_touch_clock_net false

...

slkfix -hold -all

See also
check_clock_as_data (cmd)

slk_fix_hold_dont_touch_clock_net 815
Tweaker™ Variables Version T-2022.03

slk_fix_hold_enable_si_aware
# Enables or disables the SI aware mechanism during hold autofix.

Type
Boolean

Default
false

Description
This is an obsolete variable.

Tweaker itself has the SI aware mechanism for Power Eco and fix hold

process. The SI aware mechanism involves the identification of "weak nets"

which are potentially prone to SI. A group of variables are needed to be set

properly together with the TWF file and then must be output with "-si_aware"

option.

The qualification of the "weak nets" is not only specified by wire length

and its transition value, but also influenced by the ratio of "coupling

capacitance" to the "total capacitance" which is defined at the

"slk_max_couple_c_factor" variable.

This is the main switch for enabling the SI aware feature for fix hold.

slk_fix_hold_enable_si_aware 816
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_enable_si_aware true

set slk_si_aware_clock_period_factor 0.1

set slk_si_aware_null_clock_period 1

set slk_si_aware_long_wire_length 100

set slk_si_aware_long_wire_slew_factor 0.1

set slk_si_aware_long_wire_slew 0.1

set slk_si_aware_short_wire_slew_factor 0.2

set slk_si_aware_short_wire_slew 0.2

...

slkfix -hold -all

See also
slk_si_aware_clock_period_factor

slk_si_aware_null_clock_period

slk_si_aware_long_wire_length

slk_si_aware_long_wire_slew_factor

slk_si_aware_long_wire_slew

slk_si_aware_short_wire_slew_factor

slk_si_aware_short_wire_slew

slk_fix_hold_enable_si_aware 817
Tweaker™ Variables Version T-2022.03

slk_fix_hold_high_effort_flow
# Enables or disables the high effort TWF cost update of the fixing hold by TWF

feature.

Type
Boolean

Default
false

Description
In order to save the run time by reducing the input hold violation report(s)

while expanding the area size of the hold ECO domain, Tweaker offers a

feature of back-tracing that can be enabled by specifying a value onto this

variable. The back-trace operation for fixing the hold violations is using

the TWF (Timing Window File) information/values to track the hold violation

domain which covers the modified (sized-down) input hold violation

(e.g. nworst 1) report(s) and continues to explore (back-trace) the other

hold ECO domain which is not covered by the report(s).

There is a set of other variables that need to be configured together with

this feature to fix the hold violations. This variable only enables the

slk_fix_hold_high_effort_flow 818
Tweaker™ Variables Version T-2022.03

"high effort" TWF cost update so that each insertion will trigger cost

update. This update will increase the ECO quality at a minor expense of

runtime.

Example
set slk_fix_hold_by_twf_cost true

set slk_fix_hold_level 6

set slk_fix_hold_high_effort_flow true

set slk_twf_cost_v2 true

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold_nworst1_

plus_twf/fix_hold.tcl

slk_fix_hold_by_twf_cost

slk_fix_hold_level

slk_twf_cost_v2

slk_fix_hold_high_effort_flow 819
Tweaker™ Variables Version T-2022.03

slk_fix_hold_level
# Specifies the level of the back trace stages when performing hold fixing by

using TWF feature.

Type
Integer

Default
empty

Description
In order to save the run time by reducing the input hold violation report(s)

while expanding the area size of the hold ECO domain, Tweaker offers a

feature of back-tracing that can be enabled by specifying a value onto this

variable. The back-trace operation for fixing the hold violations is using

the TWF (Timing Window File) information/values to track the hold violation

domain which covers the modified (sized-down) input hold violation

(e.g. nworst 1) report(s) and continues to explore (back-trace) the other

hold ECO domain which is not covered by the report(s).

There is a set of other variables that need to be configured together with

this feature to fix the hold violations. This variable only determines the

slk_fix_hold_level 820
Tweaker™ Variables Version T-2022.03

level of back-trace starts from the hold violation domain covered by the

report(s) are allowed for Tweaker. (The back trace starts from the endpoint

of all hold violation paths in the report(s).)

Example
set slk_fix_hold_by_twf_cost true

set slk_fix_hold_level 6

set slk_fix_hold_high_effort_flow true

set slk_twf_cost_v2 true

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold_nworst1_

plus_twf/fix_hold.tcl

slk_fix_hold_by_twf_cost

slk_fix_hold_high_effort_flow

slk_twf_cost_v2

slk_fix_hold_level 821
Tweaker™ Variables Version T-2022.03

slk_fix_hold_max_trans_drv
# Specifies the absolute maximum transition value to be honored during hold autofix.

Type
Float

Default
empty

Description
By setting this variable to its default value of an empty value, Tweaker

will monitor the transition value and compare it with the value which is

defined in Tweaker "set_drv_factor" command or "slk_drv_factor" variable.

If this variable is specified, Tweaker will also take this absolute value

as consideration instead of comparing it to DRV factor only during the

hold autofix.

Example
set slk_fix_hold_by_delay_insertion true

set_drv_factor 0.8

slk_fix_hold_max_trans_drv 822
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_max_trans_drv 0.3

...

slkfix -hold -all

See also
slk_fix_setup_max_trans_drv

slk_power_eco_max_trans_drv

slk_fix_hold_max_trans_drv 823
Tweaker™ Variables Version T-2022.03

slk_fix_hold_minimize_buffer_count
# Enables or disables the ability of Tweaker to minimize buffer count during

hold violations fixing.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, when HFI algorithm

(high fanout insertion) is used for fixing hold violations, Tweaker will

enable the "minimize buffer count" feature to decide the minimum buffers/

delay cells to be inserted onto a hold violation net.

For example, if a hold violation nets requires 200ps delay to fix its hold

violation, which can be fix either by inserting 1 big delay cell or 4 small

buffers, Tweaker will prefer to insert a single big delay cell due to this

feature.

The purpose of enabling this feature by default is to reduce the inserted

count which may be good for tight routing resource design.

slk_fix_hold_minimize_buffer_count 824
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_high_fanout_insertion true

set slk_fix_hold_minimize_buffer_count true

...

slkfix -hold -all

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.*.tcl

slk_fix_hold_minimize_buffer_count 825
Tweaker™ Variables Version T-2022.03

slk_fix_hold_minimize_setup_impact
# Enables or disables Tweaker to choose "setup-friendly" cells during the hold violations fixing by insertion algorithm.

Type
Boolean

Default
false

Description
By default, Tweaker will minimize the cell insertion count during the hold

violation fixing operation by the insertion algorithm. However, the delay

cells which usually consume more setup margin compared to the buffer cells

are sometimes selected by Tweaker. The insertion of delay cells may easily

produce setup impact on the nets after ECO routing.

By setting this variable to true, Tweaker are forced to select the

"setup-friendly" cells over the delay cells during the hold violation fixing

operation by insertion algorithm regardless of the insertion count. The

insertion by using this selection may decrease the possibility of setup

impact while consuming less setup margin. In Tweaker, "setup-friendly" means

the cells with less variation and delay difference of hold/setup slack for

slk_fix_hold_minimize_setup_impact 826
Tweaker™ Variables Version T-2022.03

every corners.

During this setting, buffer cells would be preferred over delay cells due to

buffer cells consume less setup margin.

Example
set slk_fix_hold_minimize_buffer_count false

set slk_fix_hold_minimize_setup_impact true

set slk_fix_hold_by_delay_insertion true

...

set slk_delay_insertion_buff_list { BUFX1 BUFX2 BUFX4 DEL01 DEL02 }

slkfix -hold -all

See also
slk_fix_hold_minimize_buffer_count

slk_fix_hold_minimize_setup_impact 827
Tweaker™ Variables Version T-2022.03

slk_fix_hold_minimize_worst_slack
# Tweaker variable to enable or disable the fix hold by sizing with minimized

worst slack.

Type
Boolean

Default
false

Description
When fixing hold by sizing is enabled, user can enable this variable to

decide the sizing can only be taken if local hold WNS is improved. Otherwise

if the feature is off, when do sizing the peer impact is not allowed.

Example
set slk_fix_hold_by_sizing true

set slk_fix_hold_minimize_worst_slack true

slkfix -hold ...

slk_fix_hold_minimize_worst_slack 828
Tweaker™ Variables Version T-2022.03

See also
N/A

slk_fix_hold_minimize_worst_slack 829
Tweaker™ Variables Version T-2022.03

slk_fix_hold_power_aware_insertion
# Enable/Disable consider leakage for hold insertion.

Type
Boolean

Default
False

Description
Tweaker inserts buffers without considering the leakage impact by default.

When this variable is enabled, Tweaker will consider lesser leakage impact

candidate from delay insertion list and get the leakage information from the

lib_group set in "slk_leakage_power_lib" variable.

When "slk_leakage_power_lib" variable isn't specified to any lib_group, Twe-

aker will use the default lib_group (the first library read into Tweaker).

Example
tweaker_shell> set slk_delay_insertion_buff_list {DDLAY1S1 DBFS2 \

DBFS3 DBFS8}

slk_fix_hold_power_aware_insertion 830
Tweaker™ Variables Version T-2022.03

tweaker_shell> set slk_leakage_power_lib ss

tweaker_shell> set slk_fix_hold_by_delay_insertion true

tweaker_shell> set slk_fix_hold_power_aware_insertion true

tweaker_shell> slkfix -hold -all

See also
slk_leakage_power_lib (var)
slk_delay_insertion_buff_list (var)
slk_fix_hold_by_delay_insertion (var)
slk_fix_hold_minimize_buffer_count (var)
slk_fix_hold_minimize_setup_impact (var)

slk_fix_hold_power_aware_insertion 831
Tweaker™ Variables Version T-2022.03

slk_fix_hold_use_constant_cell
# Enables or disables auto configuring constant cell for delay insertion.

Type
Boolean

Default
false

Description
This is a Metal Eco related variable.

When this variable is set to true, Tweaker will automatically configure

constant cell in the insertion candidate list if the the given value of

variable "slk_delay_insertion_buff_list" is "*".

If this variable is set to default value false, Tweaker only uses constant

cell which is specified in the variable "slk_delay_insertion_buff_list" but

will not auto configure other constant cells out of the insertion list.

Example
set metal_eco_mode true

slk_fix_hold_use_constant_cell 832
Tweaker™ Variables Version T-2022.03

...

set slk_fix_hold_use_constant_cell true

set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_delay_insertion_buff_list *

...

slkfix -hold -all

See also
N/A

slk_fix_hold_use_constant_cell 833
Tweaker™ Variables Version T-2022.03

slk_fix_hold_watch_driving_pin_slack
# Enables or disables the ability of Tweaker to monitor the driving (peer) side

of setup slack on high fanout hold violation net.

Type
Boolean

Default
true

Description
In default, if Tweaker has decided to place delay buffer(s) to group-up

the violated sink pins while fixing the hold violations which are occurred

on high fanout nets, Tweaker will also make sure that the rest of the sink

pins are still met the required setup target slack which is specified at

"slk_hfi_peer_setup_margin" variable.

Tweaker offers this variable to decrease the driving (peer) side's setup

time impact possibility when fixing the hold time violations. Since this

variable may cause some un-fixed hold violations, users are suggested to set

a smaller value into this variable in order to increase the hold violation

fixing rate.

slk_fix_hold_watch_driving_pin_slack 834
Tweaker™ Variables Version T-2022.03

Example
set slk_give_up_insert_buf_distance 100

set slk_hfi_peer_setup_margin 0.01

set slk_fix_hold_watch_driving_pin_slack true

...

slkfix -hold -all

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.*.tcl

slk_hfi_peer_setup_margin

slk_fix_hold_watch_driving_pin_slack 835
Tweaker™ Variables Version T-2022.03

slk_fix_hold_watch_timing_window
# Allows Tweaker to monitor the timing window setup margins during hold

violation autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will monitor

the TWF setup margins during the hold violation autofix to avoid any setup

impact. Besides, Tweaker will also compare the TWF minimum slack and the

hold path slack. Later on, Tweaker will utilize the worst slack minimum

value and calculate the required delay for ECO process.

Users are not suggested to change the value of this variable under any

circumstances.

Example

slk_fix_hold_watch_timing_window 836
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_by_delay_insertion true

...

set slk_fix_hold_watch_timing_window true

set slk_setup_target_slk 0.1

set slk_hold_target_slk 0.01

slkfix -hold -all

See also
slk_fix_hold_by_sizing

slk_fix_hold_by_add_dummy_load

slk_fix_hold_by_delay_insertion

slk_fix_hold_by_high_fanout_insertion

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.*.tcl

slk_fix_hold_watch_timing_window 837
Tweaker™ Variables Version T-2022.03

slk_fix_hold_without_sizing_up
# Disables the ability to size up the cells during hold autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will not

sizing up any cell during hold autofix. However in some special cases where

size up may actually help the hold time violation and users can command

Tweaker allow any sizing up operation by setting this variable to false.

Example
set slk_fix_hold_by_sizing

set slk_fix_hold_without_sizing_up true

...

slkfix -hold -all

slk_fix_hold_without_sizing_up 838
Tweaker™ Variables Version T-2022.03

See also
slk_fix_setup_without_sizing_down

slk_fix_hold_without_sizing_up 839
Tweaker™ Variables Version T-2022.03

slk_fix_ignore_clock_comp
# Enables or disables the ability to touch clock components during auto fixing.

Type
Boolean

Default
true

Description
By default, Tweaker will not touch clock components during fixing setup and

hold violations. By setting this variable to true, it will allows Tweaker to

fix violations on the clock components.

For hold autofix, this variable will have different behavior when combined

with "slk_fix_hold_dont_touch_clock_net" variable:

Case 1:

set slk_fix_ignore_clock_comp true

set slk_fix_hold_dont_touch_clock_net true

=> when the net is connected to both non-clock-component and

clock-component at the same time, then Tweaker cannot touch the

net.( neither non-clock-component net segment nor clock-component net

slk_fix_ignore_clock_comp 840
Tweaker™ Variables Version T-2022.03

segment)

Case 2:

set slk_fix_ignore_clock_comp true

set slk_fix_hold_dont_touch_clock_net false

=> when the net is connected to both non-clock-component and

clock-component at the same time, then Tweaker can only touch the non-

clock-component net segment.

Case 3:

set slk_fix_ignore_clock_comp false

set slk_fix_hold_dont_touch_clock_net [ true | false ] ( either true or

false )

=> when the net is connected to both non-clock-component and

clock-component at the same time, then Tweaker touch all clock

segment. ( either non-clock-component net segment or clock-component

net segment )

Example
set slk_fix_ignore_clock_comp true

See also
slk_fix_hold_dont_touch_clock_net

set_clock_comp (cmd)

slk_fix_ignore_clock_comp 841
Tweaker™ Variables Version T-2022.03

slk_fix_ignore_clock_comp 842
Tweaker™ Variables Version T-2022.03

slk_fix_internal_power_by_deletion
# Enables or disables Tweaker to adopt deleting buffers/inv pairs algorithms for

reducing internal power.

Type
Boolean

Default
false

Description
By default value false of this variable, Tweaker will adopt sizing algorithm

for fixing internal power during Dynamic Power ECO. When enable this,

Tweaker will also performs delete buffers and inv pairs. Suggest to keep

either sizing or deletion to true at one time.

It does not affect from slk_fix_dynamic_power_threshold variable.

Example
set slk_fix_internal_power_by_sizing false

set slk_fix_internal_power_by_deletion true

slk_fix_internal_power_by_deletion 843
Tweaker™ Variables Version T-2022.03

...

slkfix -dynamic_power_eco

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

power_eco_setting.1.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

power_eco_setting.2.tcl

slk_fix_internal_power_by_deletion 844
Tweaker™ Variables Version T-2022.03

slk_fix_internal_power_by_sizing
# Enables or disables Tweaker to adopt sizing algorithms for reducing internal

power.

Type
Boolean

Default
true

Description
By default value true of this variable, Tweaker will adopt sizing algorithm

for fixing internal power during Dynamic Power ECO. And also by default

behavior, autofix would be limited by another variable

[VAR] slk_fix_dynamic_power_without_sizing_up which only allows Tweaker to

do down-sizing.

Example
set slk_fix_internal_power_by_sizing true

set slk_fix_internal_power_by_deletion false

slk_fix_internal_power_by_sizing 845
Tweaker™ Variables Version T-2022.03

set slk_fix_dynamic_power_without_sizing_up true

...

slkfix -dynamic_power_eco

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

power_eco_setting.1.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

power_eco_setting.2.tcl

slk_fix_internal_power_by_sizing 846
Tweaker™ Variables Version T-2022.03

slk_fix_internal_power_larger_than
# Dynamic power ECO fixing internal power only fixes larger than this value.

Type
Float

Default
0.0

Description
By default is 0.0, Tweaker is able to do as much ECOs as possible.

For Dynamic Power ECO fixing Internal Power, user can use this variable

to avoid fix small internal power candidate.

Example
set slk_fix_internal_power_larger_than 0.001

See also
slk_fix_switching_power_larger_than (var)

slk_fix_internal_power_larger_than 847
Tweaker™ Variables Version T-2022.03

slk_fix_ir_eco_by_sizing
# Adopts the sizing algorithm for fixing IR drop violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

the sizing algorithm for IR drop violations autofix.

Example
set slk_fix_ir_eco_by_sizing true

...

slkfix -ir_eco

See also

slk_fix_ir_eco_by_sizing 848
Tweaker™ Variables Version T-2022.03

slk_fix_ir_eco_conservative_mode
# To enable IR ECO with move conservative way eco candidate sorting.

Type
Boolean

Default
false

Description
By default this variable false, Tweaker will adapt timing aggressive based

ECO candidate sorting to select ECO cell. If user enable this variable,

it will use timing conseravtive based way to sort ECO potential candidate.

Example
set slk_fix_ir_eco_by_sizing true

set slk_fix_ir_eco_conservative_mode true

...

slkfix -ir_eco

slk_fix_ir_eco_conservative_mode 849
Tweaker™ Variables Version T-2022.03

See also

slk_fix_ir_eco_conservative_mode 850
Tweaker™ Variables Version T-2022.03

slk_fix_ir_eco_dont_touch_clock
# Enables or disables the ability to fix the IR drop violation by touching the data path only.

Type
Boolean

Default
true

Description
By default, Tweaker will fix all of the IR drop violation including

those in the clock components.

By setting this variable to true, users can avoid the IR drop

violations fixing on the clock components.

Example
set slk_fix_ir_eco_by_sizing true

set slk_fix_ir_eco_dont_touch_clock true

...

slkfix -ir_eco

slk_fix_ir_eco_dont_touch_clock 851
Tweaker™ Variables Version T-2022.03

See also
slk_fix_ir_eco_dont_touch_data

slk_fix_ir_eco_dont_touch_clock 852
Tweaker™ Variables Version T-2022.03

slk_fix_ir_eco_dont_touch_data
# Enables or disables the ability to fix the IR drop violation by touching the clock path only.

Type
Boolean

Default
false

Description
By default, Tweaker will fix all of the IR drop violation including

those in the data paths.

By setting this variable to true, users can avoid the IR drop

violations fixing on the data paths.

Example
set slk_fix_ir_eco_by_sizing true

set slk_fix_ir_eco_dont_touch_data true

...

slkfix -ir_eco

slk_fix_ir_eco_dont_touch_data 853
Tweaker™ Variables Version T-2022.03

See also
slk_fix_ir_eco_dont_touch_clock

slk_fix_ir_eco_dont_touch_data 854
Tweaker™ Variables Version T-2022.03

slk_fix_ir_eco_hornor_aggressor_list
# To enable aggressor based IR ECO algorithm.

Type
Boolean

Default
true

Description
By default this variable true, if you read aggressor information in Tweaker,

Tweaker IR ECO will perform aggressor based algorithm for fixing IR drop violation

by aggressor.

If user disable this variable, Tweaker will only based on IR drop victim candidate

to fix IR drop violation.

Example
set slk_fix_ir_eco_by_sizing true

set slk_fix_ir_eco_hornor_aggressor_list true

...

slk_fix_ir_eco_hornor_aggressor_list 855
Tweaker™ Variables Version T-2022.03

slkfix -ir_eco

See also

slk_fix_ir_eco_hornor_aggressor_list 856
Tweaker™ Variables Version T-2022.03

slk_fix_ir_eco_watch_timing_window
# Allows Tweaker to monitor the timing window setup/hold margins during IR ECO.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will monitor

the TWF setup/hold margins during the IR ECO to avoid any setup or hold time

impact.

Users are not suggested to change the value of this variable under any

circumstances.

Example
set slk_fix_ir_eco_by_sizing true

set slk_fix_ir_eco_watch_timing_window true

set slk_setup_target_slk 0.1

slk_fix_ir_eco_watch_timing_window 857
Tweaker™ Variables Version T-2022.03

set slk_hold_target_slk 0.01

...

slkfix -ir_eco

See also
slk_setup_target_slk

slk_hold_target_slk

slk_fix_ir_eco_watch_timing_window 858
Tweaker™ Variables Version T-2022.03

slk_fix_keep_driving_cap
# Enables or disables the ability of Tweaker to maintain driving capacitance during autofix.

Type
Boolean

Default
false

Description
By setting this variable to true, Tweaker will control the capacitance of

the net's driving cell so that it will not exceed the original capacitance

value while performing buffer insertion method during autofix operation.

This variable is an obsolete variable. Tweaker provides a new variable,

"slk_fix_keep_scaling_long_wire_slew", to deal with new transition issues.

Example
set slk_fix_hold_by_delay_insertion true

set slK_fix_hold_by_high_fanout_insertion true

set slk_fix_keep_driving_cap true

slk_fix_keep_driving_cap 859
Tweaker™ Variables Version T-2022.03

...

slkfix -hold -all

See also
slk_fix_keep_scaling_long_wire_slew

slk_fix_keep_driving_cap 860
Tweaker™ Variables Version T-2022.03

slk_fix_keep_obs_geometry
# Enables retain obs geometry behavior during autofix operation by sizing algorithm.

Type
Boolean

Default
false

Description
By setting this variable to true, users can restraint Tweaker to perform the

sizing algorithm within the candidate cells which contain the same obs

geometry as the original cells. The candidate cells consist of the cells

that have the same footprint as the original one or the cells within the

user-defined mapping rule.

If user want to perform specific VT swap, it will also need to enable the

following two variable and this variable:

set slk_auto_sizing_keep_routing true

set slk_fix_keep_pin_geometry true

set slk_fix_keep_obs_geometry true

slk_fix_keep_obs_geometry 861
Tweaker™ Variables Version T-2022.03

Example
...

set slk_fix_setup_by_sizing true

set slk_fix_keep_obs_geometry true

...

slkfix -setup -all

See also
slk_auto_sizing_keep_routing

slk_fix_keep_pin_geometry

slk_fix_keep_obs_geometry 862
Tweaker™ Variables Version T-2022.03

slk_fix_keep_pin_geometry
# Enables retain pin geometry behavior during autofix operation by sizing algorithm.

Type
Boolean

Default
false

Description
By setting this variable to true, users can restraint Tweaker to perform the

sizing algorithm within the candidate cells which contain the same pin

geometry as the original cells. The candidate cells consist of the cells

that have the same footprint as the original one or the cells within the

user-defined mapping rule.

If user want to perform specific VT swap, it will also need to enable the

following two variable and this variable:

set slk_auto_sizing_keep_routing true

set slk_fix_keep_pin_geometry true

set slk_fix_keep_obs_geometry true

slk_fix_keep_pin_geometry 863
Tweaker™ Variables Version T-2022.03

Example
...

set slk_fix_setup_by_sizing true

set slk_fix_keep_pin_geometry true

...

slkfix -setup -all

See also
slk_auto_sizing_keep_routing

slk_fix_keep_obs_geometry

slk_fix_keep_pin_geometry 864
Tweaker™ Variables Version T-2022.03

slk_fix_keep_scaling_long_wire_slew
# Enables or disables Tweaker to keep scaling long wire slew after autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will

configure each cell's maximum driving length derived from internal algorithm

based on their max capacitance (driving capability) value defined at .lib

before any autofix process is performed. After the autofix process, if any

ECO cell has been changed due to sizing or buffer insertion operation,

Tweaker will check the maximum driving capability of each ECO cells.

Example
set slk_fix_hold_by_sizing true

set slk_fix_keep_scaling_long_wire_slew true

slk_fix_keep_scaling_long_wire_slew 865
Tweaker™ Variables Version T-2022.03

...

slkfix -hold -all

See also
N/A

slk_fix_keep_scaling_long_wire_slew 866
Tweaker™ Variables Version T-2022.03

slk_fix_leakage_power_by_deletion
# Enables or disables Tweaker to adopt deleting buffers/inv pairs algorithms for

reducing leakage power.

Type
Boolean

Default
false

Description
By default value true of this variable, Tweaker will adopt sizing algorithm

for fixing leakage power during Power ECO. When var is enabled, Tweaker will

remove buffers and inv pairs based on leakage cost. Suggest to keep either

just sizing or deletion to true at one time.

Example
set slk_fix_leakage_power_by_deletion true

set slk_fix_leakage_power_by_sizing false

...

slk_fix_leakage_power_by_deletion 867
Tweaker™ Variables Version T-2022.03

slkfix -power_eco

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/power_eco/fix_leakage_power_eco

_setting.deletion.tcl

slk_fix_leakage_power_by_deletion 868
Tweaker™ Variables Version T-2022.03

slk_fix_leakage_power_by_sizing
# Enables or disables Tweaker to adopt sizing algorithms for reducing leakage

power.

Type
Boolean

Default
true

Description
By default value true of this variable, Tweaker will adopt sizing algorithm

for fixing leakage power during Power ECO.

Example
set slk_fix_leakage_power_by_sizing true

set slk_fix_leakage_power_by_deletion false

...

slkfix -power_eco

slk_fix_leakage_power_by_sizing 869
Tweaker™ Variables Version T-2022.03

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/power_eco/fix_leakage_power_eco

_setting.1.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/power_eco/fix_leakage_power_eco

_setting.2.tcl

slk_fix_leakage_power_by_sizing 870
Tweaker™ Variables Version T-2022.03

slk_fix_low_priority_design_for_interface_net
# Tweaker variable to specify a lower priority design to be fixed when Tweaker is inserting on the interface net

Type
String

Default
empty

Description
Specifies the design which to be treated as a lower priority of design(s)

to be inserted when Tweaker tries to insert on the interface net which means

that Tweaker will try to insert on the design other than the specified one

in the first place. If the violation still can't be fixed, then Tweaker will

try to insert on the specified design with a low-priority.

Example
set slk_fix_low_priority_design_for_interface_net true

See also

slk_fix_low_priority_design_for_interface_net 871
Tweaker™ Variables Version T-2022.03

NA

slk_fix_low_priority_design_for_interface_net 872
Tweaker™ Variables Version T-2022.03

slk_fix_max_cap_by_repeater_insertion
# Adopts the HFS algorithm for fixing maximum capacitance violations.

Type
Boolean

Default
false

Description
By setting this variable to true, user can utilized the repeater buffers to

do a split load algorithm during the maximum capacitance autofix. By

default, Tweaker will use HFS v2 algorithm in applying the repeater

insertion.

The repeater buffers candidates are specified in

"slk_repeater_insertion_buff_list" variable.

Example
set slk_fix_max_cap_by_repeater_insertion true

set slk_fix_max_cap_hfs_v2 true

slk_fix_max_cap_by_repeater_insertion 873
Tweaker™ Variables Version T-2022.03

...

set slk_repeater_insertion_buff_list { BUFX4 BUFX8 BUFX12 }

slkfix -max_cap -all

See also
slk_fix_max_cap_by_sizing

slk_repeater_insertion_buff_list

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_cap/fix_max_

cap_setting.hfs.tcl

slk_fix_max_cap_by_repeater_insertion 874
Tweaker™ Variables Version T-2022.03

slk_fix_max_cap_by_repeater_insertion_with_cell_stealing
# Allows Tweaker to utilize the repeater insertion with cell stealing strategy for max capacitance autofix.

Type
Boolean

Default
false

Description
For fixing max capacitance violations, the activation of this variable will

allow Tweaker to use repeater insertion with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_max_cap_by_repeater_insertion false

set slk_fix_max_cap_by_sizing_with_cell_stealing false

set slk_fix_max_cap_by_repeater_insertion_with_cell_stealing true

slk_fix_max_cap_by_repeater_insertion_with_cell_stealing 875
Tweaker™ Variables Version T-2022.03

set slk_give_up_insert_if_no_space true

set slk_give_up_insert_buf_distance 100

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -max_cap -all

See also
slk_give_up_insert_buf_distance

slk_fix_max_cap_by_repeater_insertion_with_cell_stealing 876
Tweaker™ Variables Version T-2022.03

slk_fix_max_cap_by_sizing
# Adopts the sizing algorithm for fixing max capacitance violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

the sizing algorithm for max capacitance autofix.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true

Example
set slk_fix_max_cap_by_sizing true

set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_rule_regexp { @D[0-9]+@ @D[0-9]+@ }

...

slk_fix_max_cap_by_sizing 877
Tweaker™ Variables Version T-2022.03

slkfix -max_cap -all

See also
slk_fix_max_cap_by_repeater_insertion

slk_fix_max_cap_hfs_v2

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_cap/fix_max_

cap_setting.sz.tcl

slk_fix_max_cap_by_sizing 878
Tweaker™ Variables Version T-2022.03

slk_fix_max_cap_by_sizing_with_cell_stealing
# Allows Tweaker to utilize the sizing with cell stealing strategy for max capacitance autofix.

Type
Boolean

Default
false

Description
For fixing max capacitance violations, the activation of this variable will

allow Tweaker to use sizing with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_max_cap_by_sizing false

set slk_fix_max_cap_by_repeater_insertion_with_cell_stealing false

set slk_fix_max_cap_by_sizing_with_cell_stealing true

slk_fix_max_cap_by_sizing_with_cell_stealing 879
Tweaker™ Variables Version T-2022.03

set slk_auto_fix_fit_to_free_space true

set slk_auto_sizing_max_shift_distance 200

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -max_cap -all

See also
slk_auto_sizing_max_shift_distance

slk_fix_max_cap_by_sizing_with_cell_stealing 880
Tweaker™ Variables Version T-2022.03

slk_fix_max_cap_by_split_cell
# Adopts the split cell algorithm for fixing max capacitance violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

the split cell for max capacitance autofix.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true

Example
set slk_fix_max_cap_by_split_cell true

...

slkfix -max_cap -all

slk_fix_max_cap_by_split_cell 881
Tweaker™ Variables Version T-2022.03

See also
slk_fix_max_cap_by_repeater_insertion (var)
slk_fix_max_cap_by_sizing (var)

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_cap/fix_max_

cap_setting.*.tcl

slk_fix_max_cap_by_split_cell 882
Tweaker™ Variables Version T-2022.03

slk_fix_max_cap_fit_to_lib
# Tweaker variable to enable or disable the max cap fixing with required value equals the worst constraint from lib.

Type
Boolean

Default
false

Description
By default when max trans report are fed to Tweaker, the required value

in the report are honored directly.

If the required value in the report is unreasonable due to STA issue,

user can enable this variable to let Tweaker hack the required value

by the worst constraint seen at .lib directly.

Please be noticed that when this feature is enabled the max cap slack

may change accordingly because the required value is updated and synced

with .lib already.

Example

slk_fix_max_cap_fit_to_lib 883
Tweaker™ Variables Version T-2022.03

set slk_fix_max_cap_fit_to_lib true

...

slkfix -max_cap -all

See also
set_drv_report_required_factor (cmd)
set_drv_report_required_value (cmd)

slk_fix_max_trans_fit_to_lib

slk_fix_max_cap_fit_to_lib 884
Tweaker™ Variables Version T-2022.03

slk_fix_max_fanout_by_high_fanout_insertion
# Adopts the high fanout insertion algorithm for fixing max fanout violations.

Type
Boolean

Default
false

Description
By setting this variable to its default value of true, Tweaker will adopt

high fanout insertion algorithm in fixing max fanout violations.

The repeater candidates are specified in the

"slk_repeater_insertion_buff_list" variable.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_max_fanout_by_sizing false

set slk_fix_max_fanout_by_high_fanout_insertion true

slk_fix_max_fanout_by_high_fanout_insertion 885
Tweaker™ Variables Version T-2022.03

set slk_repeater_insertion_buff_list { BUFX4 BUFX8 BUFX12 }

...

slkfix -max_fanout -all

See also
slk_fix_max_fanout_by_sizing

slk_repeater_insertion_buff_list

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_fanout/fix_

max_fanout_setting.hfs.tcl

slk_fix_max_fanout_by_high_fanout_insertion 886
Tweaker™ Variables Version T-2022.03

slk_fix_max_fanout_by_high_fanout_insertion_with_cell_stealing
# Allows Tweaker to utilize the high fanout insertion with cell stealing strategy for max fanout autofix.

Type
Boolean

Default
false

Description
For fixing max fanout violations, the activation of this variable will

allow Tweaker to use high fanout insertion with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_max_fanout_by_sizing_with_cell_stealing false

set slk_fix_max_fanout_by_high_fanout_insertion false

set slk_fix_max_fanout_by_high_fanout_insertion_with_cell_stealing true

slk_fix_max_fanout_by_high_fanout_insertion_with_cell_stealing 887
Tweaker™ Variables Version T-2022.03

set slk_give_up_insert_if_no_space true

set slk_give_up_insert_buf_distance 100

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -max_fanout -all

See also
slk_give_up_insert_buf_distance

slk_fix_max_fanout_by_high_fanout_insertion_with_cell_stealing 888
Tweaker™ Variables Version T-2022.03

slk_fix_max_fanout_by_sizing
# Adopts the sizing algorithm for fixing max fanout violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

sizing algorithm in fixing max fanout violations.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_max_fanout_by_sizing true

...

slkfix -max_fanout -all

slk_fix_max_fanout_by_sizing 889
Tweaker™ Variables Version T-2022.03

See also
slk_fix_max_fanout_by_high_fanout_insertion

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_fanout/fix_

max_fanout_setting.sz.tcl

slk_fix_max_fanout_by_sizing 890
Tweaker™ Variables Version T-2022.03

slk_fix_max_fanout_by_sizing_with_cell_stealing
# Allows Tweaker to utilize the sizing with cell stealing strategy for max fanout autofix.

Type
Boolean

Default
false

Description
For fixing max fanout violations, the activation of this variable will

allow Tweaker to use sizing with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_max_fanout_by_sizing false

set slk_fix_max_fanout_by_high_fanout_insertion_with_cell_stealing false

set slk_fix_max_fanout_by_sizing_with_cell_stealing true

slk_fix_max_fanout_by_sizing_with_cell_stealing 891
Tweaker™ Variables Version T-2022.03

set slk_auto_fix_fit_to_free_space true

set slk_auto_sizing_max_shift_distance 200

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -max_fanout -all

See also
slk_auto_sizing_max_shift_distance

slk_fix_max_fanout_by_sizing_with_cell_stealing 892
Tweaker™ Variables Version T-2022.03

slk_fix_max_fanout_by_split_cell
# Adopts the split cell algorithm for fixing max fanout violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

split cell algorithm in fixing max fanout violations.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_max_fanout_by_split_cell true

...

slkfix -max_fanout -all

slk_fix_max_fanout_by_split_cell 893
Tweaker™ Variables Version T-2022.03

See also
slk_fix_max_fanout_by_high_fanout_insertion (var)
slk_fix_max_fanout_by_sizing (var)

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_fanout/fix_

max_fanout_setting.*.tcl

slk_fix_max_fanout_by_split_cell 894
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_actual_trans_lighter_bound
# Tweaker variable to filter the unwanted max trans violation using the actual

trans as the index with some tolerance.

Type
Float

Default
empty

Description
This var only works when the var "slk_fix_max_trans_by_actual_trans" is with

a assigned value. When above one is assigned with a value like 0.5 (ns),

then user may have another tolerance, for example 0.1 (ns) specified here

which will be subtracted from the 0.5ns and equals 0.4ns as the latest

actual trans bound.

But this lighter bound is only available when the setup margin range

specified in the var

"slk_fix_max_trans_actual_trans_lighter_bound_setup_range" is qualified.

slk_fix_max_trans_actual_trans_lighter_bound 895
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_max_trans_by_actual_trans 0.5

set slk_fix_max_trans_actual_trans_lighter_bound 0.1

set slk_fix_max_trans_actual_trans_lighter_bound_setup_range 0.2 0.5

...

slkfix -max_trans -all

# max trans violation with actual trans larger than 0.5 ns will be fixed.

# max trans violation with actual trans larger than 0.4 ~ 0.5 ns but with

# setup margin in between 0.2~0.5 ns will be fixed.

See also
slk_fix_max_trans_by_actual_trans

slk_fix_max_trans_actual_trans_lighter_bound_setup_range

slk_fix_max_trans_actual_trans_lighter_bound 896
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_actual_trans_lighter_bound_setup_range
# Tweaker variable to filter the unwanted max trans violation using the actual

trans as the index with some tolerance.

Type
Float

Default
empty

Description
This variable only works when the var "slk_fix_max_trans_by_actual_trans"

is with a assigned value.

When above one is assigned with a value like 0.5 (ns), then user may have

another tolerance, for example 0.1 (ns) specified here which will be

subtracted from the 0.5ns and equals 0.4ns as the latest actual trans bound.

But this lighter bound is only available when the setup margin range

specified in the variable

"slk_fix_max_trans_actual_trans_lighter_bound_setup_range" is qualified.

slk_fix_max_trans_actual_trans_lighter_bound_setup_range 897
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_max_trans_by_actual_trans 0.5

set slk_fix_max_trans_actual_trans_lighter_bound 0.1

set slk_fix_max_trans_actual_trans_lighter_bound_setup_range 0.2 0.5

...

slkfix -max_trans -all

# max trans violation with actual trans larger than 0.5 ns will be fixed.

# max trans violation with actual trans larger than 0.4 ~ 0.5 ns but with

# setup margin in between 0.2~0.5 ns will be fixed.

See also
slk_fix_max_trans_by_actual_trans

slk_fix_max_trans_actual_trans_lighter_bound

slk_fix_max_trans_actual_trans_lighter_bound_setup_range 898
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_by_actual_trans
# Tweaker variable to filter the unwanted max trans violation using the actual than as the index.

Type
String

Default
empty

Description
When this variable is assigned a value like 0.5 (ns), then the max trans

violation with its actual trans larger than the one specified here will get

kept and fixed to its required value. Others will be kept untouched during

the optimization.

Example
set slk_fix_max_trans_by_actual_trans 0.5

...

slkfix -max_trans -all

# (only the actual trans larger than 0.5 ns will be fixed)

slk_fix_max_trans_by_actual_trans 899
Tweaker™ Variables Version T-2022.03

See also
slk_fix_max_trans_actual_trans_lighter_bound

slk_fix_max_trans_actual_trans_lighter_bound_setup_range

slk_fix_max_trans_by_actual_trans 900
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_by_repeater_insertion
# Adopts HFS insertion algorithm for fixing max transition violations.

Type
Boolean

Default
false

Description
By setting this variable to true, Tweaker will utilize the repeater buffer

insertion to do split-load operation during the max transition autofix.

By default, Tweaker will use 'HFS v2" algorithm to apply the repeater

insertion.

The repeater buffers candidates are specified at

"slk_repeater_insertion_buff_list" variable.

Example
set slk_fix_max_trans_by_repeater_insertion true

set slk_fix_max_trans_hfs_v2 true

slk_fix_max_trans_by_repeater_insertion 901
Tweaker™ Variables Version T-2022.03

...

set slk_repeater_insertion_buff_list { BUFX4 BUFX8 BUFX12 }

slkfix -max_trans -all

See also
slk_fix_max_trans_by_sizing

slk_repeater_insertion_buff_list

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_transition/

fix_max_transition_setting.hfs.tcl

slk_fix_max_trans_by_repeater_insertion 902
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_by_repeater_insertion_with_cell_stealing
# Allows Tweaker to utilize the repeater insertion with cell stealing strategy for max transition autofix.

Type
Boolean

Default
false

Description
For fixing max transition violations, the activation of this variable will

allow Tweaker to use repeater insertion with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_max_trans_by_sizing_with_cell_stealing false

set slk_fix_max_trans_by_repeater_insertion false

set slk_fix_max_trans_by_repeater_insertion_with_cell_stealing true

slk_fix_max_trans_by_repeater_insertion_with_cell_stealing 903
Tweaker™ Variables Version T-2022.03

set slk_give_up_insert_if_no_space true

set slk_give_up_insert_buf_distance 100

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -max_trans -all

See also
slk_give_up_insert_buf_distance

slk_fix_max_trans_by_repeater_insertion_with_cell_stealing 904
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_by_sizing
# Adopts the sizing algorithm for max transition autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

sizing algorithm for max transition autofix.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_max_trans_by_sizing true

set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_rule_regexp { @D[0-9]+@ @D[0-9]+@ }

...

slk_fix_max_trans_by_sizing 905
Tweaker™ Variables Version T-2022.03

slkfix -max_trans -all

See also
slk_fix_max_trans_by_repeater_insertion

slk_fix_max_trans_hfs_v2

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_transition/

fix_max_transition_setting.sz.tcl

slk_fix_max_trans_by_sizing 906
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_by_sizing_with_cell_stealing
# Allows Tweaker to utilize the sizing with cell stealing strategy for max transition autofix.

Type
Boolean

Default
false

Description
For fixing max transition violations, the activation of this variable will

allow Tweaker to use sizing with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_max_trans_by_repeater_insertion_with_cell_stealing false

set slk_fix_max_trans_by_sizing false

set slk_fix_max_trans_by_sizing_with_cell_stealing true

slk_fix_max_trans_by_sizing_with_cell_stealing 907
Tweaker™ Variables Version T-2022.03

set slk_auto_fix_fit_to_free_space true

set slk_auto_sizing_max_shift_distance 200

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -max_trans -all

See also
slk_auto_sizing_max_shift_distance

slk_fix_max_trans_by_sizing_with_cell_stealing 908
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_by_split_cell
# Adopts the split cell algorithm for max transition autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

split cell algorithm for max transition autofix.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_max_trans_by_split_cell true

...

slkfix -max_trans -all

slk_fix_max_trans_by_split_cell 909
Tweaker™ Variables Version T-2022.03

See also
slk_fix_max_trans_by_repeater_insertion (var)
slk_fix_max_trans_by_sizing (var)

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_transition/

fix_max_transition_setting.*.tcl

slk_fix_max_trans_by_split_cell 910
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_fit_to_lib
# Tweaker variable to enable or disable the max trans fixing with required value equals the worst constraint from lib.

Type
Boolean

Default
false

Description
By default when max trans report are fed to Tweaker, the required value in

the report are honored directly.

If the required value in the report is unreasonable due to STA issue,

user can enable this variable to let Tweaker hack the required value by

the worst constraint seen at .lib directly.

Please be noticed that when this feature is enabled the max trans slack may

change accordingly because the required value is updated and synced with

.lib already.

Example

slk_fix_max_trans_fit_to_lib 911
Tweaker™ Variables Version T-2022.03

set slk_fix_max_trans_fit_to_lib true

...

slkfix -max_trans -all

See also
set_drv_report_required_factor (cmd)
set_drv_report_required_value (cmd)

slk_fix_max_cap_fit_to_lib

slk_fix_max_trans_fit_to_lib 912
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_out_of_lib_only
# Tweaker variable to filter the unwanted max trans if its actual trans is less than the worst constraint in .lib.

Type
Boolean

Default
false

Description
When this variable is set true, only the max trans violation with its actual

trans larger than the worst constraint from .lib will be fixed. Other will

be kept untouched during the optimization.

Example
set slk_fix_max_trans_out_of_lib_only true

...

slkfix -max_trans -all

See also

slk_fix_max_trans_out_of_lib_only 913
Tweaker™ Variables Version T-2022.03

N/A

slk_fix_max_trans_out_of_lib_only 914
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_without_dc
# Enables or disables the simple repeater insertion.

Type
Boolean

Default
false

Description
For fixing transition, the activation of this variable will allow Tweaker

to use a simpler repeater insertion algorithm instead of HFS insertion

algorithm. This algorithm will not predict any delay/slack variation and

each buffer inserted will directly follow the distance rule specified in

"slk_preferred_repeater_distance" variable as their spacing distance.

Example
set slk_fix_max_trans_without_dc true

set slk_preferred_repeater_distance 150

set slk_fix_max_trans_by_repeater_insertion

slk_fix_max_trans_without_dc 915
Tweaker™ Variables Version T-2022.03

...

slkfix -max_trans -all

See also
slk_preferred_repeater_distance

slk_fix_max_trans_without_dc 916
Tweaker™ Variables Version T-2022.03

slk_fix_min_pulse_width_by_sizing
# Adopts the sizing algorithm for fixing minimum pulse width violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

the sizing algorithm for minimum pulse width autofix.

Example
set slk_fix_min_pulse_width_by_sizing true

set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_rule_regexp { @D[0-9]+@ @D[0-9]+@ }

...

slkfix -min_pulse_width -all

slk_fix_min_pulse_width_by_sizing 917
Tweaker™ Variables Version T-2022.03

See also
slk_min_pulse_width_target_slk (var)

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_min_pulse_width/

fix_min_pulse_width_setting.sz.tcl

slk_fix_min_pulse_width_by_sizing 918
Tweaker™ Variables Version T-2022.03

slk_fix_noise_by_repeater_insertion
# Adopts the repeater insertion algorithm for fixing SI glitch violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

repeater insertion (HFS : High Fanout Synthesis) algorithm in fixing max

fanout violations. The repeater candidates are specified in the

"slk_repeater_insertion_buff_list".

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_noise_by_sizing false

set slk_fix_noise_by_repeater_insertion true

slk_fix_noise_by_repeater_insertion 919
Tweaker™ Variables Version T-2022.03

set slk_repeater_insertion_buff_list { BUFX4 BUFX8 BUFX12 }

...

slkfix -noise -all

See also
slk_fix_noise_by_sizing

slk_repeater_insertion_buff_list

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_si_glitch/fix_si_

glitch_setting.hfs.tcl

slk_fix_noise_by_repeater_insertion 920
Tweaker™ Variables Version T-2022.03

slk_fix_noise_by_repeater_insertion_with_cell_stealing
# Allows Tweaker to utilize the repeater insertion with cell stealing strategy for noise autofix.

Type
Boolean

Default
false

Description
For fixing noise violations, the activation of this variable will

allow Tweaker to use repeater insertion with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_noise_by_sizing_with_cell_stealing false

set slk_fix_noise_by_repeater_insertion false

set slk_fix_noise_by_repeater_insertion_with_cell_stealing true

slk_fix_noise_by_repeater_insertion_with_cell_stealing 921
Tweaker™ Variables Version T-2022.03

set slk_give_up_insert_if_no_space true

set slk_give_up_insert_buf_distance 100

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -noise -all

See also
slk_give_up_insert_buf_distance

slk_fix_noise_by_repeater_insertion_with_cell_stealing 922
Tweaker™ Variables Version T-2022.03

slk_fix_noise_by_sizing
# Adopts the sizing algorithm for fixing SI glitch violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

sizing algorithm in fixing SI noise violations.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_noise_by_sizing true

...

slkfix -noise -all

slk_fix_noise_by_sizing 923
Tweaker™ Variables Version T-2022.03

See also
slk_fix_noise_by_repeater_insertion

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_si_glitch/fix_si

_glitch_setting.sz.tcl

slk_fix_noise_by_sizing 924
Tweaker™ Variables Version T-2022.03

slk_fix_noise_by_sizing_with_cell_stealing
# Allows Tweaker to utilize the sizing with cell stealing strategy for noise autofix.

Type
Boolean

Default
false

Description
For fixing noise violations, the activation of this variable will

allow Tweaker to use sizing with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_noise_by_repeater_insertion_with_cell_stealing false

set slk_fix_noise_by_sizing false

set slk_fix_noise_by_sizing_with_cell_stealing true

slk_fix_noise_by_sizing_with_cell_stealing 925
Tweaker™ Variables Version T-2022.03

set slk_auto_fix_fit_to_free_space true

set slk_auto_sizing_max_shift_distance 200

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -noise -all

See also
slk_auto_sizing_max_shift_distance

slk_fix_noise_by_sizing_with_cell_stealing 926
Tweaker™ Variables Version T-2022.03

slk_fix_noise_by_split_cell
# Enable or disable the split-cell ECO function during noise autofix

Type
Boolean

Default
false

Description
When this variable is set to true, Tweaker will enable the split-cell

insertion function during the noise autofix.

Example
set slk_extract_sisdf_by_report true

See also
slk_fix_noise_by_repeater_insertion

slk_fix_noise_by_sizing

slk_fix_noise_by_split_cell 927
Tweaker™ Variables Version T-2022.03

slk_fix_noise_cap_improved_rate
# Specifies the output capacitance improvement rate target while fixing SI noise

violations.

Type
Float

Default
0.3

Description
By default, during the noise autofix, Tweaker will take either one from

three factors into the consideration:

1. slk_fix_noise_cap_improved_rate,

2. slk_fix_noise_trans_improve_rate, or

3. slk_fix_noise_wire_length_change_rate.

As for this variable, Tweaker fixes the SI glitch violations by improving

the output capacitance of driving cells on the nets which contain SI

violations.

This variable specifies the required improvement percentage rate over the

original output capacitance.

slk_fix_noise_cap_improved_rate 928
Tweaker™ Variables Version T-2022.03

For example, if the original output capacitance of the SI net's driver is

0.5 pf while the value of variable is 0.1, then the target output

capacitance of this net driver is 0.45 pf.

Example
set slk_fix_noise_by_sizing true

set slk_fix_noise_cap_improved_rate 0.3

...

slkfix -noise -all

See also
slk_fix_noise_trans_improve_rate

slk_fix_noise_wire_length_change_rate

slk_fix_noise_by_sizing

slk_fix_noise_by_repeater_insertion

slk_fix_noise_by_split_cell

slk_fix_noise_cap_improved_rate 929
Tweaker™ Variables Version T-2022.03

slk_fix_noise_trans_improved_rate
# Specifies the transition improvement rate target while fixing SI noise

violations.

Type
Float

Default
0.3

Description
By default, during the noise autofix, Tweaker will take either one from

three factors into the consideration:

1. slk_fix_noise_cap_improved_rate,

2. slk_fix_noise_trans_improve_rate, or

3. slk_fix_noise_wire_length_change_rate.

As for this variable, Tweaker fixes the SI glitch violations by improving

the output transition of driving cells on the nets which contain SI

violations.

This variable specifies the required improvement percentage rate over the

original output transition.

slk_fix_noise_trans_improved_rate 930
Tweaker™ Variables Version T-2022.03

For example, if the original output transition of the SI net's driver is

2.0 ns while the value of variable is 0.1, then the target output transition

of this net driver is 1.8 ns.

Example
set slk_fix_noise_by_sizing true

set slk_fix_noise_trans_improved_rate 0.3

...

slkfix -noise -all

See also
slk_fix_noise_cap_improve_rate

slk_fix_noise_wire_length_change_rate

slk_fix_noise_by_sizing

slk_fix_noise_by_repeater_insertion

slk_fix_noise_by_split_cell

slk_fix_noise_trans_improved_rate 931
Tweaker™ Variables Version T-2022.03

slk_fix_noise_wire_length_change_rate
# Specifies the wire length change-ratio on the ECO net to be considered passing

the noise autofix

Type
Float

Default
empty

Description
By default, during the noise autofix, Tweaker will take either one from

three factors into the consideration:

1. slk_fix_noise_cap_improved_rate,

2. slk_fix_noise_trans_improve_rate, or

3. slk_fix_noise_wire_length_change_rate.

When this variable is specified, Tweaker will consider the ECO routing

changing ( global-route ) and check if the routing-changing is bigger or

equal to the specified percentage number.

For example, if the original global route of the SI net is 100um, while the

value of this variable is set to 0.1, then the SI violation net will be

slk_fix_noise_wire_length_change_rate 932
Tweaker™ Variables Version T-2022.03

considered as fixed when the global-route is shorter than 90um or longer

than 110um.

The objective behind this variable is to create new ECO net with different

net length with the expectation that APR tool will do the ECO route to avoid

congested area or original SI-impacted area.

Example
set slk_fix_noise_by_sizing true

set slk_fix_noise_wire_length_change_rate 0.1

...

slkfix -noise -all

See also
slk_fix_noise_cap_improve_rate

slk_fix_noise_trans_improve_rate

slk_fix_noise_by_sizing

slk_fix_noise_by_repeater_insertion

slk_fix_noise_by_split_cell

slk_fix_noise_wire_length_change_rate 933
Tweaker™ Variables Version T-2022.03

slk_fix_path_watch_timing_window_only
# Tweaker variable to decide the build timing graph will based on twf only or by

both twf and paths.

Type
Boolean

Default
false

Description
By default when fixing starts Tweaker will build the target timing graph

first through all available twf and related paths info.

If this variable is enabled then Tweaker will only using target's twf info

to build timing graph to achieve the more aggressive fixing.

Example
set slk_fix_path_watch_timing_window_only true

...

slkfix -hold -all

slk_fix_path_watch_timing_window_only 934
Tweaker™ Variables Version T-2022.03

See also
N/A

slk_fix_path_watch_timing_window_only 935
Tweaker™ Variables Version T-2022.03

slk_fix_setup_better_slew_only
# Forces Tweaker to avoid sizing down during the setup autofix.

Type
Boolean

Default
false

Description
This was the obsolete variable to force Tweaker to avoid sizing down and

allow the sizing operation through the candidates to be applied only when

performing a better result.

Users are strongly recommended to utilize

"slk_fix_setup_without_sizing_down" variable which has the same function as

this obsolete variable.

Example
set slk_fix_setup_by_sizing true

set slk_fix_setup_better_slew_only true

slk_fix_setup_better_slew_only 936
Tweaker™ Variables Version T-2022.03

...

slkfix -setup -all

See also
slk_fix_setup_without_sizing_down

slk_fix_setup_better_slew_only 937
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_bypass_buffer
# Adopts the bypass buffer algorithm for fixing setup violations.

Type
Boolean

Default
false

Description
In the setup violation paths, there are many redundant buffers that can be

possibly skipped. By setting this variable to true, Tweaker will be able to

remove those dummy buffers (single fanout) or by-pass those dummy buffers

(multi-fanouts) to improve the setup timing.

Since the skipping process of the buffers will increase the loading of the

pre-stage drivers, users may need to constraint the trans/cap more

conservatively when this algorithm was selected.

Example
set slk_fix_setup_by_bypass_buffer true

slk_fix_setup_by_bypass_buffer 938
Tweaker™ Variables Version T-2022.03

set slk_fix_setup_by_sizing false

set slk_fix_setup_by_pinswap false

...

# tighter trans/cap constraint

set_drv_factor 0.6

set slk_rce_long_wire_length 60

set slk_rce_long_wire_unit_r_derate 1.2

slkfix -setup -all

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.bypass.tcl

slk_fix_setup_by_bypass_buffer 939
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_bypass_inverter_pair
# Adopts the bypass inverter pairs algorithm for fixing setup violations.

Type
Boolean

Default
false

Description
In the setup violation paths, there are many redundant buffers/inverter-

pairs that can be possibly skipped. By setting this variable to true,

Tweaker will be able to remove those dummy inverter pairs (single fanout) or

by-pass those dummy inverter pairs (multi-fanouts) to improve the setup

timing.

Since the skipping process of the inverter-pairs will increase the loading

of the pre-stage drivers, users may need to constraint the trans/cap more

conservatively when this algorithm was selected.

Example

slk_fix_setup_by_bypass_inverter_pair 940
Tweaker™ Variables Version T-2022.03

set slk_fix_setup_by_bypass_inverter_pair true

set slk_fix_setup_by_sizing false

set slk_fix_setup_by_pinswap false

...

# tighter trans/cap constraint

set_drv_factor 0.6

set slk_rce_long_wire_length 60

set slk_rce_long_wire_unit_r_derate 1.2

slkfix -setup -all

See also
slk_fix_setup_by_bypass_buffer

slk_fix_setup_by_bypass_inverter_pair 941
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_down_sizing_peer
# Enables or disables Tweaker to fix setup by down sizing peer.

Type
Boolean

Default
true

Description
During setup autofix, by setting this variable to true, Tweaker will down-

size the peer-side (where the sink pins are not grouped together) to reduce

the output load to fix setup violations.

Example
set slk_fix_setup_by_down_sizing_peer true

...

slkfix -setup -all

See also

slk_fix_setup_by_down_sizing_peer 942
Tweaker™ Variables Version T-2022.03

N/A

slk_fix_setup_by_down_sizing_peer 943
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_down_sizing_peer_with_cell_stealing
# Enable/Disable setup fixing by down sizing peer with cell stealing.

Type
Boolean

Default
false

Description
Tweaker down-sizes peer (other fanout cells from the same driver) to reduce

the output load of the driver while fixing setup violations by cell stealing

when setting this variable to true.

Example
tweaker_shell> set metal_eco_mode true

tweaker_shell> set slk_fix_setup_by_down_sizing_peer_with_cell_stealing true

tweaker_shell> set slk_auto_sizing_rule footprint

tweaker_shell> slkfix -setup -all

slk_fix_setup_by_down_sizing_peer_with_cell_stealing 944
Tweaker™ Variables Version T-2022.03

See also
[ VAR ] metal_eco_mode

[ VAR ] slk_auto_sizing_rule

[ CMD ] slkfix

slk_fix_setup_by_down_sizing_peer_with_cell_stealing 945
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_fast_sizing
# Adopts the "fast" sizing algorithm during the setup violations fixing by using

TWF.

Type
Boolean

Default
false

Description
By default, if the users adopts the sizing algorithm during the setup

violation fixing by using TWF ("slkfix -twf_setup -all" command), Tweaker

will modify the ECO cells one by one. In order to decrease the run time,

Tweaker offers the ability to adopts the "fast" sizing algorithm which have

similar concept with Power ECO. This function can be activated by setting

this variable to true while performing setup violation fixing by using TWF

("slkfix -twf_setup -all" command).

This fast sizing feature works only for setup fixing by using TWF

("slkfix -twf_setup -all" command) and recommended to be complemented with

"slk_cell_extended_mapping_rule" or "slk_cell_extended_mapping_rule_regexp"

slk_fix_setup_by_fast_sizing 946
Tweaker™ Variables Version T-2022.03

variable as Tweaker mapping rule reference.

Example
slkfix -create_twf_setup_domain

...

set slk_fix_setup_by_sizing false

set slk_fix_setup_by_fast_sizing true

...

set slk_cell_extended_mapping_rule { *HVT *SVT *LVT }

slkfix -twf_setup -all

See also
slk_cell_extended_mapping_rule

slk_cell_extended_mapping_rule_regexp

slkfix -twf_setup -all

slk_fix_setup_by_fast_sizing 947
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_hack_sdf
# Adopts the Hack SDF as fixing algorithm during setup autofix.

Type
Boolean

Default
false

Description
For early simulation purpose, Tweaker provides the "Hack SDF" operation

which generates violation-free SDF files. Users are recommended to perform

the Hack SDF operation based on the TWF file which is used by Tweaker

"slkfix -create_twf_hack_sdf_domain" command to build up the sdf domain,

then use "slkfix -twf_hack_sdf" to get both setup/hold hacked in the same

Tweaker run.

Besides "TWF domain"-based Hack SDF, Tweaker can also accept the Hack SDF

which is based on input setup/hold violation reports. For this scenario,

users can still use "slkfix -setup -all" command to hack those input setup

violation reports.

slk_fix_setup_by_hack_sdf 948
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_hack_sdf true

set slk_fix_setup_by_sizing false

set slk_fix_setup_by_pinswap false

...

set slk_setup_target_slk 0.05

set slk_hack_setup_min_cell_delay 0.005

slkfix -setup -all

See also
slk_fix_hold_by_hack_sdf

$Tweaker_Install_DIR/etc/template/tweaker_t1/hacksdf/fix_setup/fix_setup_

setting.hacksdf.tcl

slk_fix_setup_by_hack_sdf 949
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_hfs
# Tweaker variable to enable or disable the fix setup by hfs insertion.

Type
Boolean

Default
true

Description
This var works when the var "slk_fix_setup_by_repeater_insertion" is set

true. Repeater insertion for setup has 4 strategies, fix by regular repeater

insertion, fix by split load, fix by sink pin and the final one fix by hfs.

By default when the first three strategies are enabled and fail to improve

the path slack then Tweaker will try the fix setup by HFS algorithm to

search for more fixing chances.

Example
set slk_fix_setup_by_repeater_insertion true

set slk_fix_setup_by_split_load true

slk_fix_setup_by_hfs 950
Tweaker™ Variables Version T-2022.03

set slk_fix_setup_by_improve_sink_slew true

set slk_fix_setup_by_hfs true

...

slkfix -setup -all

See also
slk_fix_setup_by_repeater_insertion

slk_fix_setup_by_split_load

slk_fix_setup_by_improve_sink_slew

slk_fix_setup_by_hfs 951
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_improve_sink_slew
# Enables or disables the repeater insertion by abutting to the sink pin during

setup autofix.

Type
Boolean

Default
false

Description
During setup autofix by repeater insertion, Tweaker has 4 methodologies:

1. Regular repeater insertion (HFI),

2. Split load repeater insertion,

3. Insertion abut the sink pin, and

4. Insertion to improve transition value (HFS).

By default, when this variable is set to false, Tweaker will not try to

insert abut to the sink pin. Instead, Tweaker will try to perform the other

insertion methodology(s).

When this variable is set to true, Tweaker will try to insert abut to the

sink pin and compare the insertion result with other insertion

slk_fix_setup_by_improve_sink_slew 952
Tweaker™ Variables Version T-2022.03

methodology(s) and choose the best solution among those solutions.

Example
set slk_fix_setup_by_repeater_insertion true

set slk_fix_setup_by_split_load true

set slk_fix_setup_by_improve_sink_slew true

set slk_fix_setup_by_hfs true

...

slkfix -setup -all

See also
slk_fix_setup_by_repeater_insertion

slk_fix_setup_by_split_load

slk_fix_setup_by_hfs

slk_fix_setup_by_improve_sink_slew 953
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_pinswap
# Adopts the pin swapping algorithm for fixing setup violations.

Type
Boolean

Default
false

Description
When setting this variable to true, Tweaker will swap cell's input pins

while keeping the instance location unchanged when fixing setup time.

For example, for a 2-input AND gate A1->Z timing arc worse than A2->Z timing

arc, it also has a setup violation through A1->Z. If users use this

algorithm, Tweaker will swap both of the input connections to optimize their

slack.

This algorithm is particularly useful in extracting the extra setup margin

for congested design.

Example

slk_fix_setup_by_pinswap 954
Tweaker™ Variables Version T-2022.03

set slk_fix_setup_by_pinswap true

set slk_fix_setup_by_sizing false

...

slkfix -setup -all

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.pinswap.tcl

slk_fix_setup_by_pinswap 955
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_repeater_insertion
# Tweaker variable to enable repeater insertion for autofix setup.

Type
Boolean

Default
false

Description
By setting this variable true it enables "repeater insertion" for autofix setup.

It is recommended to use this algorithm after normal sizing and Tweaker will

try to insert repeaters on violation pins whose transition (slew) exceed

user's required value described at "slk_fix_setup_max_trans_drv" or avg

transition value derived from Tweaker by referencing the

"set slk_fix_setup_repeater_insertion_factor" variable.

Under repeater insertion behavior there is an add on called "split load"

feature which can be enabled by "slk_fix_setup_by_split_load" variable

to allow a different strategy of insertion where non-critical pins are

grouped on a net to reduce the driver's net loading and improve the critical

pin's timing.

slk_fix_setup_by_repeater_insertion 956
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_repeater_insertion true

set slk_fix_setup_by_split_load true

set slk_fix_setup_repeater_insertion_factor 0.2

set slk_fix_setup_splitload_margin 0.5

set slk_repeater_insertion_buff_list { BUFX1 BUFX2 }

...

slkfix -setup -all

See also
slk_repeater_insertion_buff_list

slk_fix_setup_by_split_load

slk_fix_setup_repeater_insertion_factor

slk_fix_setup_splitload_margin

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.split.tcl

slk_fix_setup_by_repeater_insertion 957
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_repeater_insertion_force_fixing_threshold
# Tweaker variable that acts as the percentage threshold that will force Tweaker to do insertion on every net segment of those path between the

Type
Float

Default
empty

Description
This variable is only valid when setup autofix by repeater insertion feature

is enabled.

This variable works as a threshold in percentage perspective.

By default, when this variable is not defined, Tweaker will calculate

the average values of all cell delay and net transition values from the

built ECO domain. Later during the insertion autofix, Tweaker will compare

the cell delay of every driver and net transition in the violation paths

with this calculated average value.

If either a driver's cell delay or its driven net's transition value is

larger than the calculated average values, Tweaker will take this cell

as the critical point, hence Tweaker will try to insert on this net.

slk_fix_setup_by_repeater_insertion_force_fixing_threshold 958
Tweaker™ Variables Version T-2022.03

On the contrary, if both the driver cell delay and net transition value

are smaller than the corresponding average value, Tweaker will not even try

to insert on the net that is driven by this driver. Hence, by default,

Tweaker will not try to insert on every net of a violation path.

When this variable is set with a value, Tweaker will take this value as

a percentage value, and calculates a threshold value with the current WNS.

Later on Tweaker will take all of the violation paths whose slack values

are between the WNS and newly calculated upper bound (threshold)

and try to fix (insert on) every net of them without comparing its

net transition value and its driver's cell delay with the calculated

average values.

Example:

Assume that the WNS of this design is -1 ns, and user is assigning 0.2

into this variable.

The calculated delta value is -0.2 ns. [ -1 ns * 0.2 = -0.2 ns]

The calculated upper bound is -0.8 ns. [ -1 ns - ( -0.2 ns ) = -0.8 ns ]

Hence, Tweaker will try to fix (insert on) all of the net segments for all

violation paths whose slacks are between -1 ns and -0.8 ns.

The calculated average delay value and transition value can be controlled by

"slk_fix_setup_repeater_insertion_factor" variable.

Example

slk_fix_setup_by_repeater_insertion_force_fixing_threshold 959
Tweaker™ Variables Version T-2022.03

set slk_fix_setup_by_repeater_insertion true

set slk_fix_setup_by_repeater_insertion_force_fixing_threshold 0.2

...

slkfix -setup -all

See also
slk_fix_setup_by_repeater_insertion

slk_fix_setup_repeater_insertion_factor

slk_fix_setup_by_repeater_insertion_force_fixing_threshold 960
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_repeater_insertion_with_cell_stealing
# Allows Tweaker to utilize the repeater insertion with cell stealing strategy for setup autofix.

Type
Boolean

Default
false

Description
For fixing setup violations, the activation of this variable will

allow Tweaker to use repeater insertion with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_setup_by_sizing_with_cell_stealing false

set slk_fix_setup_by_repeater_insertion false

set slk_fix_setup_by_repeater_insertion_with_cell_stealing true

slk_fix_setup_by_repeater_insertion_with_cell_stealing 961
Tweaker™ Variables Version T-2022.03

set slk_give_up_insert_if_no_space true

set slk_give_up_insert_buf_distance 100

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -setup -all

See also
slk_give_up_insert_buf_distance

slk_fix_setup_by_repeater_insertion_with_cell_stealing 962
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_sizing
# Adopts the sizing algorithm for fixing setup violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

sizing algorithm for setup autofix.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true.

Example
set slk_fix_setup_by_sizing true

set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_rule_regexp { @D[0-9]+@ @D[0-9]+@ }

...

slk_fix_setup_by_sizing 963
Tweaker™ Variables Version T-2022.03

slkfix -setup -all

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.*.tcl

slk_fix_setup_by_sizing 964
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_sizing_with_cell_stealing
# Allows Tweaker to utilize the sizing with cell stealing strategy for setup autofix.

Type
Boolean

Default
false

Description
For fixing setup violations, the activation of this variable will

allow Tweaker to use sizing with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_setup_by_repeater_insertion_with_cell_stealing false

set slk_fix_setup_by_sizing false

set slk_fix_setup_by_sizing_with_cell_stealing true

slk_fix_setup_by_sizing_with_cell_stealing 965
Tweaker™ Variables Version T-2022.03

set slk_auto_fix_fit_to_free_space true

set slk_auto_sizing_max_shift_distance 200

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -setup -all

See also
slk_auto_sizing_max_shift_distance

slk_fix_setup_by_sizing_with_cell_stealing 966
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_split_cell
# Allows Tweaker to utilize the split cell strategy for setup autofix.

Type
Boolean

Default
false

Description
By setting this variable to true Tweaker will adopt the "split cell"

strategy for setup autofix.

This variable works in cooperate with

"slk_fix_setup_split_cell_max_pin_count" variable.

Example
set slk_fix_setup_by_split_cell true

See also
slk_fix_setup_split_cell_max_pin_count

slk_fix_setup_by_split_cell 967
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_split_cell 968
Tweaker™ Variables Version T-2022.03

slk_fix_setup_by_split_load
# Allows Tweaker to utilize the split load strategy at repeater insertion for setup autofix.

Type
Boolean

Default
false

Description
By setting this variable to true Tweaker will adopt the "split load"

strategy for autofix setup.

This variable works only when "slk_fix_setup_by_repeater_insertion" variable

is set to true.

The way Tweaker fixes setup violation by using "split load" can be described

in three steps:

1. Using "slk_fix_setup_repeater_insertion_factor" variable in defining the

slow pins candidates,

2. Using "slk_setup_splitload_margin" variable in defining the non-critical

pins candidates which will be grouped together later on,

3. Insert the buffers/inverters to the grouped non-critical pins to reduce

slk_fix_setup_by_split_load 969
Tweaker™ Variables Version T-2022.03

the driver net loading and improve its critical pin's timing.

Example
set slk_fix_setup_by_repeater_insertion true

set slk_fix_setup_by_split_load true

set slk_fix_setup_repeater_insertion_factor 0.2

set slk_fix_setup_splitload_margin 0.5

...

slkfix -setup -all

See also
slk_fix_setup_by_repeater_insertion

slk_fix_setup_repeater_insertion_factor

slk_setup_splitload_margin

slk_repeater_insertion_buff_list

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.split.tcl

slk_fix_setup_by_split_load 970
Tweaker™ Variables Version T-2022.03

slk_fix_setup_down_sizing_peer_allow_up_sizing
# Enable/Disable up sizing peer while down sizing peer

Type
Boolean

Default
false

Description
In some cases sizing up peer help improve the setup timing. By setting this

variable to true, Tweaker allowed to size up peer while using down sizing

peer algorithm. Down sizing peer algorithm is enabled by setting following

"slk_fix_setup_by_down_sizing_peer" to true.

Example
tweaker_shell> set slk_fix_setup_by_down_sizing_peer true

tweaker_shell> set slk_fix_setup_down_sizing_peer_allow_up_sizing true

tweaker_shell> set slk_auto_sizing_rule vt_sizing

tweaker_shell> slkfix -setup -all

slk_fix_setup_down_sizing_peer_allow_up_sizing 971
Tweaker™ Variables Version T-2022.03

See also
[ VAR ] slk_fix_setup_by_down_sizing_peer

[ VAR ] slk_fix_setup_down_sizing_peer_allow_up_sizing

[ VAR ] slk_auto_sizing_rule

[ CMD ] slkfix

slk_fix_setup_down_sizing_peer_allow_up_sizing 972
Tweaker™ Variables Version T-2022.03

slk_fix_setup_insert_repeater_at_macro_only
# Enables or disables the limitation of repeater insertion to be done at macro

pins only during setup autofix.

Type
Boolean

Default
false

Description
This variable works only when repeater insertion method is selected as setup

autofix algorithm.

By setting this variable to its default value of false, Tweaker will filter

out the potential bad transition candidates among the std cells, replace

them with repeater buffers or split load, and use them when insertion is

taken place.

When user set this variable to true, Tweaker will insert the repeaters to

the macro pin related nets only.

slk_fix_setup_insert_repeater_at_macro_only 973
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_repeater_insertion true

set slk_fix_setup_insert_repeater_at_macro_only true

set slk_repeater_insertion_buff_list { BUFX4 BUFX8 BUFX12 }

...

slkfix -setup -all

See also
slk_fix_setup_by_repeater_insertion

slk_fix_setup_insert_repeater_at_macro_only 974
Tweaker™ Variables Version T-2022.03

slk_fix_setup_max_trans_drv
# Specifies the absolute maximum transition value to be honored during setup autofix.

Type
Float

Default
empty

Description
By setting this variable to its default value of an empty value, Tweaker

will monitor the transition value and compare it with the value which is

defined in Tweaker "set_drv_factor" command or "slk_drv_factor" variable.

If this variable is specified, Tweaker will also take this absolute value

as consideration instead of comparing it to DRV factor only during the

setup autofix.

Example
set slk_fix_setup_by_repeater_insertion true

set slk_fix_setup_by_split_load true

slk_fix_setup_max_trans_drv 975
Tweaker™ Variables Version T-2022.03

set_drv_factor 0.8

set slk_fix_setup_max_trans_drv 0.3

...

slkfix -setup -all

See also
slk_fix_hold_max_trans_drv

slk_power_eco_max_trans_drv

slk_fix_setup_max_trans_drv 976
Tweaker™ Variables Version T-2022.03

slk_fix_setup_min_improved_slack_of_repeater_insertion
# Specifies the minimum improved slack for a setup path to be inserted with repeaters.

Type
Float

Default
0.01

Description
When fixing setup time by using repeater insertion (or split load) method,

Tweaker will monitor the slack improvement of every violated setup path.

If the slack improvement of the path which is currently fixed is less than

the value defined in this variable, Tweaker will give up the insertion step

to this path and continue to fix and monitor the remaining violated paths.

The variable is normally constrained for avoiding massive amount of repeater

buffers insertion count with only a small improvement result.

Example
set slk_fix_setup_by_repeater_insertion true

slk_fix_setup_min_improved_slack_of_repeater_insertion 977
Tweaker™ Variables Version T-2022.03

set slk_fix_setup_min_improved_slack_of_repeater_insertion 0.01

...

slkfix -setup -all

See also
slk_fix_trans_min_improved_slack_of_repeater_insertion

slk_fix_setup_min_improved_slack_of_repeater_insertion 978
Tweaker™ Variables Version T-2022.03

slk_fix_setup_min_improved_slack_of_split_cell
# Specifies the minimum improved slack requirement for each auto-split cell

operation to be executed when fix setup by split cell.

Type
Float

Default
0.01

Description
This variable only works when "slk_fix_setup_by_split_cell" variable is set

to true.

This variable specifies the minimum improved slack value for each auto

split-cell operation to be performed. If the slack value after the auto

split-cell operation is smaller than the value specified in this variable,

this operation will not be executed.

A smaller the value of this variable increases the possibility of auto

split-cell operation (more aggressive approach) but may results in a greater

risk of timing variation after the ECO routing.

slk_fix_setup_min_improved_slack_of_split_cell 979
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_split_cell true

set slk_fix_setup_min_improved_slack_of_split_cell 0.02

...

slkfix -setup -all

See also
slk_fix_setup_by_split_cell

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.*.tcl

slk_fix_setup_min_improved_slack_of_split_cell 980
Tweaker™ Variables Version T-2022.03

slk_fix_setup_minimize_worst_slack
# Enables or disables the strategy of minimizing local WNS during the sizing

operation for setup autofix.

Type
Boolean

Default
false

Description
During any ECO operation, Tweaker (by default) will honor the value

specified at "slk_auto_sizing_setup_twf_impact" to decide how much setup

impact can be tolerated on the target instance's peer side. This behavior

is important due to some ECO operation may generate some setup impacts

to other neighboring cell/nets. However, it will limit the Tweaker effort

in fixing the local WNS.

If this variable is set to true, Tweaker will adopt another aggressive

strategy of minimizing local WNS during sizing method regardless of the

value at "slk_auto_sizing_setup_twf_impact". During this setting, Tweaker

will perform any ECO operation as long as it will improve the local WNS even

slk_fix_setup_minimize_worst_slack 981
Tweaker™ Variables Version T-2022.03

though it may cause any setup impact or even generate a new setup violation

endpoint.

Users are recommended to set this variable to true during sizing method for

setup autofix.

Example
set slk_fix_setup_by_sizing true

set slk_fix_setup_minimize_worst_slack true

...

slkfix -setup -all

See also
slk_fix_setup_by_sizing

slk_auto_sizing_setup_twf_impact

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup.

tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.sz.*.tcl

slk_fix_setup_minimize_worst_slack 982
Tweaker™ Variables Version T-2022.03

slk_fix_setup_repeater_insertion_factor
# Controls the scaling factor in deriving the candidate nets of repeater insertion during autofix operation.

Type
Float

Default
0.2

Description
This variable is only valid when setup autofix by repeater insertion

feature is enabled.

By default, Tweaker will calculate the average values of all cell delay

and net transition values from the built ECO domain.

Later during the insertion autofix, Tweaker will compare the cell delay

of every driver and net transition in the violation paths with this

calculated average value.

If either a driver's cell delay or its driven net's transition value are

larger than the calculated average values, Tweaker will take this cell

as the critical point, hence Tweaker will try to insert on this net.

On the contrary, if both the driver cell delay and net transition value

slk_fix_setup_repeater_insertion_factor 983
Tweaker™ Variables Version T-2022.03

is smaller than the corresponding average value, Tweaker will not even try

to insert on the net that is driven by this driver. Hence, by default,

Tweaker will not try to insert on every net of a violation path.

This variable will acts as the factor that will affect the calculated

average value.

When users set a larger value to this variable, more net candidate will be

listed as the insertion candidate. On the contrary, when user sets a smaller

value to this variable, Tweaker may see less net as its insertion candidate.

Example
set slk_fix_setup_by_repeater_insertion true

set slk_fix_setup_by_split_load true

set slk_fix_setup_repeater_insertion_factor 0.3

set slk_fix_setup_splitload_margin 0.5

set slk_repeater_insertion_buff_list { BUFX1 BUFX2 }

...

slkfix -setup -all

See also
slk_repeater_insertion_buff_list

slk_fix_setup_by_split_load

slk_fix_setup_repeater_insertion_factor

slk_fix_setup_repeater_insertion_factor 984
Tweaker™ Variables Version T-2022.03

slk_fix_setup_splitload_margin

slk_fix_setup_by_repeater_insertion_force_fixing_threshold

slk_fix_setup_repeater_insertion_factor 985
Tweaker™ Variables Version T-2022.03

slk_fix_setup_split_cell_max_pin_count
# Specify the maximum number of sink pin that can be grouped together during split cell operation

Type
Integer

Default
5

Description
By setting a number into this variable, users are able to specify the

maximum number of sink pins that can be grouped together during

the split cell operation.

This variable is valid only when split-cell operation is enabled by using

below variable:

set slk_fix_setup_by_split_cell true

Example
set slk_fix_setup_split_cell_max_pin_count 10

slk_fix_setup_split_cell_max_pin_count 986
Tweaker™ Variables Version T-2022.03

See also
slk_fix_setup_by_split_cell

slk_fix_setup_split_cell_max_pin_count 987
Tweaker™ Variables Version T-2022.03

slk_fix_setup_use_inverter
# Allows Tweaker to use inverter pair for repeater insertion operation during

setup autofix.

Type
Boolean

Default
false

Description
If "slk_fix_setup_by_repeater_insertion" and "slk_fix_setup_by_split_load"

variable are set to true, Tweaker will allow the repeater insertion

operation during the setup autofix. Under this scenario, user can set this

variable to true to allow Tweaker to use inverter pair for setup autofix.

The inverter candidates are specified in

"slk_repeater_insertion_inverter_list" variable.

Example
set slk_fix_setup_by_repeater_insertion true

slk_fix_setup_use_inverter 988
Tweaker™ Variables Version T-2022.03

set slk_fix_setup_by_split_load true

set slk_fix_setup_repeater_insertion_factor 0.2

set slk_fix_setup_splitload_margin 0.5

set slk_fix_setup_use_inverter true

set slk_repeater_insertion_inverter_list { INVX2 INVX4 }

...

slkfix -setup -all

See also
slk_fix_setup_by_repeater_insertion

slk_repeater_insertion_inverter_list

slk_fix_setup_use_inverter 989
Tweaker™ Variables Version T-2022.03

slk_fix_setup_watch_hold_timing_window
# Enables or disable Tweaker to watch the hold time in Timing Windows File (TWF)

during setup autofix.

Type
Boolean

Default
false

Description
By setting this variable to true, it enables Tweaker to observe

for any hold time variation during setup autofix. The setting of this

variable depends on the performed ECO cycle stage.

For the early ECO cycle stage, user are recommended to set this variable to

false. This setting will allow Tweaker to fix as much setup time as

possible.

In the contrary, for the late stage of ECO cycle, users are recommended to

set this variable to true to allow Tweaker to observe the hold time

variation during the setup autofix and prevent any new generated hold

violation.

slk_fix_setup_watch_hold_timing_window 990
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_sizing true

set slk_fix_setup_watch_setup_timing_window true

set slk_fix_setup_watch_hold_timing_window true

...

slkfix -setup -all

See also
slk_fix_setup_watch_setup_timing_window

slk_fix_setup_watch_hold_timing_window 991
Tweaker™ Variables Version T-2022.03

slk_fix_setup_watch_setup_timing_window
# Enables or disable Tweaker to watch the setup time in Timing Windows File

(TWF) during setup autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will observe

for any setup time variation for peer side/sub side inside the TWF during

setup autofix. Since sizing up the cell for fixing its setup violation may

impact its peer, users are recommended to set this variable to true to allow

Tweaker to consider and prevent any setup impact possibility during the

autofix operation.

Example
set slk_fix_setup_by_sizing true

slk_fix_setup_watch_setup_timing_window 992
Tweaker™ Variables Version T-2022.03

set slk_fix_setup_watch_setup_timing_window true

set slk_fix_setup_minimize_worst_slack true

...

slkfix -setup -all

See also
slk_fix_setup_watch_hold_timing_window

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.*.tcl

slk_fix_setup_watch_setup_timing_window 993
Tweaker™ Variables Version T-2022.03

slk_fix_setup_without_sizing_down
# Disables the ability to size down the cells during setup autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will not

sizing down any cell during setup autofix. However in some special cases

where sizing down may actually help the hold time violation and users

can command Tweaker allow any sizing down operation by setting this variable

to false.

Example
set slk_fix_setup_by_sizing true

set slk_fix_setup_without_sizing_down true

...

slk_fix_setup_without_sizing_down 994
Tweaker™ Variables Version T-2022.03

slkfix -setup -all

See also
slk_fix_hold_without_sizing_up

slk_fix_setup_without_sizing_down 995
Tweaker™ Variables Version T-2022.03

slk_fix_si_double_switching_by_repeater_insertion
# Adopts the HFS algorithm for fixing si double switching violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

the insertion algorithm for si double switching autofix.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true

The repeater buffers candidates are specified in

"slk_repeater_insertion_buff_list" variable.

Example
set slk_fix_si_double_switching_by_repeater_insertion true

...

slk_fix_si_double_switching_by_repeater_insertion 996
Tweaker™ Variables Version T-2022.03

set slk_repeater_insertion_buff_list { BUFX4 BUFX8 BUFX12 }

slkfix -si_double_switching -all

See also
slk_fix_si_double_switching_by_sizing

slk_repeater_insertion_buff_list

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_si_double_

switching/fix_si_double_switching_setting.hfs.tcl

slk_fix_si_double_switching_by_repeater_insertion 997
Tweaker™ Variables Version T-2022.03

slk_fix_si_double_switching_by_repeater_insertion_with_cell_steali
# Allows Tweaker to utilize the repeater insertion with cell stealing strategy

for si double switching autofix.

Type
Boolean

Default
false

Description
For fixing si double switching violations, the activation of this variable

will allow Tweaker to use repeater insertion with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_si_double_switching_by_sizing_with_cell_stealing false

set slk_fix_si_double_switching_by_repeater_insertion false

slk_fix_si_double_switching_by_repeater_insertion_with_cell_stealing 998
Tweaker™ Variables Version T-2022.03

set slk_fix_si_double_switching_by_repeater_insertion_with_cell_stealing \

true

set slk_give_up_insert_if_no_space true

set slk_give_up_insert_buf_distance 100

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -si_double_switching -all

See also
slk_give_up_insert_buf_distance

slk_fix_si_double_switching_by_repeater_insertion_with_cell_stealing 999
Tweaker™ Variables Version T-2022.03

slk_fix_si_double_switching_by_sizing
# Adopts the sizing algorithm for fixing si double switching violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

the sizing algorithm for si double switching autofix.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true

Example
set slk_fix_si_double_switching_by_sizing true

set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_rule_regexp { @D[0-9]+@ @D[0-9]+@ }

...

slk_fix_si_double_switching_by_sizing 1000
Tweaker™ Variables Version T-2022.03

slkfix -si_double_switching -all

See also
slk_fix_si_double_switching_by_repeater_insertion

slk_fix_si_double_switching_hfs_v2

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_si_double_

switching/fix_si_double_switching_setting.sz.tcl

slk_fix_si_double_switching_by_sizing 1001
Tweaker™ Variables Version T-2022.03

slk_fix_si_double_switching_by_sizing_with_cell_stealing
# Allows Tweaker to utilize the sizing with cell stealing strategy for si double

switching autofix.

Type
Boolean

Default
false

Description
For fixing si double switching violations, the activation of this variable

will allow Tweaker to use sizing with cell stealing algorithm.

User need to enable Metal ECO mode(set metal_eco_mode true) and set the

timing margin for stolen cell(slk_cell_stealing_setup_margin/

slk_cell_stealing_hold_margin) before using cell stealing to auto-fix.

Example
set slk_fix_si_double_switching_by_repeater_insertion_with_cell_stealing \

false

slk_fix_si_double_switching_by_sizing_with_cell_stealing 1002
Tweaker™ Variables Version T-2022.03

set slk_fix_si_double_switching_by_sizing false

set slk_fix_si_double_switching_by_sizing_with_cell_stealing true

set slk_auto_fix_fit_to_free_space true

set slk_auto_sizing_max_shift_distance 200

...

set slk_cell_stealing_setup_margin 0.1

set slk_cell_stealing_hold_margin 0.1

...

slkfix -si_double_switching -all

See also
slk_auto_sizing_max_shift_distance

slk_fix_si_double_switching_by_sizing_with_cell_stealing 1003
Tweaker™ Variables Version T-2022.03

slk_fix_si_double_switching_by_split_cell
# Adopts the split cell algorithm for fixing si double switching violations.

Type
Boolean

Default
false

Description
By setting this variable to its default value of true, Tweaker will adopt

the split cell for si double switching autofix.

To switch to other algorithms, this variable must be set to false and user

can utilize the others algorithm by setting their enable variable to true

Example
set slk_fix_si_double_switching_by_split_cell true

...

slkfix -si_double_switching -all

slk_fix_si_double_switching_by_split_cell 1004
Tweaker™ Variables Version T-2022.03

See also
slk_fix_si_double_switching_by_repeater_insertion (var)
slk_fix_si_double_switching_by_sizing (var)

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_si_double_switching/fix_si_double_

switching_setting.*.tcl

slk_fix_si_double_switching_by_split_cell 1005
Tweaker™ Variables Version T-2022.03

slk_fix_si_double_switching_cap_improved_rate
# Specifies the capacitance improvement rate target while fixing si double

switching violations.

Type
Floating

Default
0.3

Description
Tweaker fixes the si double switching violations by improving the output

capacitance of driving cells on the nets which contain si double switching

violations. This variable specifies the required improvement percentage rate

over the original output capacitance.

For example, if the original output capacitance of the net's driver is

2.0 (ns) while the value of variable is 0.1, then the target output

capacitance of this net driver is 1.8 (ns).

Example

slk_fix_si_double_switching_cap_improved_rate 1006
Tweaker™ Variables Version T-2022.03

set slk_fix_si_double_switching_by_sizing true

set slk_fix_si_double_switching_cap_improved_rate 0.3

...

slkfix -si_double_switching -all

See also
slk_fix_si_double_switching_by_sizing

slk_fix_si_double_switching_by_repeater_insertion

slk_fix_si_double_switching_by_split_cell

slk_fix_si_double_switching_trans_improved_rate

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_si_double_

switching/fix_si_double_switching_setting.*.tcl

slk_fix_si_double_switching_cap_improved_rate 1007
Tweaker™ Variables Version T-2022.03

slk_fix_si_double_switching_trans_improved_rate
# Specifies the transition improvement rate target while fixing si double

switching violations.

Type
Floating

Default
0.3

Description
Tweaker fixes the si double switching violations by improving the output

transition of driving cells on the nets which contain si double switching

violations. This variable specifies the required improvement percentage rate

over the original output transition.

For example, if the original output transition of the net's driver is

2.0 (ns) while the value of variable is 0.1, then the target output

transition of this net driver is 1.8 (ns).

Example

slk_fix_si_double_switching_trans_improved_rate 1008
Tweaker™ Variables Version T-2022.03

set slk_fix_si_double_switching_by_sizing true

set slk_fix_si_double_switching_trans_improved_rate 0.3

...

slkfix -si_double_switching -all

See also
slk_fix_si_double_switching_by_sizing

slk_fix_si_double_switching_by_repeater_insertion

slk_fix_si_double_switching_by_split_cell

slk_fix_si_double_switching_cap_improved_rate

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_si_double_

switching/fix_si_double_switching_setting.*.tcl

slk_fix_si_double_switching_trans_improved_rate 1009
Tweaker™ Variables Version T-2022.03

slk_fix_si_first
# Enables or disables Tweaker to fix SI delay components as its first fix

operation.

Type
Boolean

Default
false

Description
By setting this variable to true, it will initiate a pre-processing stage

that allow Tweaker to fix the nets with SI delay components first. The

autofix (slkfix) resumes the fixing process on the other non-SI delay

components after this pre-processing stage finishes.

This feature can be applied at setup and hold violations fixing by sizing

(VT swapping) and insertion method. This feature does not have any effect

on DRV fixing method.

When this feature is applied before any setup violation fixing by sizing

(VT swapping) method, the drivers of SI nets will be modified (swapped)

according to the given cell mapping rule. The other cells on the "non-SI

slk_fix_si_first 1010
Tweaker™ Variables Version T-2022.03

violation paths" will be fixed if the there is any existed violations.

When this feature is applied before setup violation fixing by insertion

(load splitting) method, the SI nets will be inserted according to the given

repeater insertion buffer list. The other cells on the "non-SI violation

paths" will be fixed if the there is any existed violations.

When this feature is applied before hold violation fixing by sizing

(VT swapping) method, the drivers of SI nets will be modified (swapped)

according to the "reversed" of the given cell mapping rule. The other cells

on the "non-SI violation paths" will be fixed if the there is any existed

violations.

When this feature is applied before hold violation fixing by insertion

(delay insertion) method, the SI nets are inserted based on the load

splitting strategy with the given repeater insertion buffer list. The other

cells on the "non-SI violation paths" will be fixed if the there is any

existed violations.

Example
set slk_fix_setup_by_sizing true

set slk_fix_si_first true

slkfix -setup -all

set slk_fix_hold_by_sizing true

set slk_fix_si_first true

slk_fix_si_first 1011
Tweaker™ Variables Version T-2022.03

slkfix -hold -all

See also
slk_fix_si_only

slk_fix_si_first 1012
Tweaker™ Variables Version T-2022.03

slk_fix_si_only
# Enables or disables Tweaker to fix SI delay components only.

Type
Boolean

Default
false

Description
By setting this variable to true, it will initiate a pre-processing stage

that allow Tweaker to fix nets which contain SI delay components only. The

autofix (slkfix) operation will stop after finishing this pre-processing

stage.

This feature can be applied at setup and hold violations fixing by sizing

, VT-swap, and insertion method. This feature does not have any effect on

DRV fixing method.

When this feature is applied before any setup violation fixing by sizing

and/or VT swapping method, the drivers of SI nets will be modified (swapped)

according to the given cell mapping rule. The other cells on the violation

paths will not be fixed even if violations are still existed.

slk_fix_si_only 1013
Tweaker™ Variables Version T-2022.03

When this feature is applied before setup violation fixing by insertion

(load splitting) method, the SI nets will be inserted according to the given

repeater insertion buffer list. The other cells on the violation paths will

not be fixed even if violations are still existed.

When this feature is applied before hold violation fixing by sizing

and/or VT swapping method, the drivers of SI nets will be modified (swapped)

according to the "reversed" of the given cell mapping rule. The other cells

on the violation paths will not be fixed even if violations are still

existed.

When this feature is applied before hold violation fixing by insertion

(delay insertion) method, the SI nets are inserted based on the load

splitting strategy with the given repeater insertion buffer list. The other

cells on the violation paths will not be fixed even if violations are still

existed.

Example
set slk_fix_setup_by_sizing true

set slk_fix_si_only true

slkfix -setup -all

set slk_fix_hold_by_sizing true

set slk_fix_si_only true

slkfix -hold -all

slk_fix_si_only 1014
Tweaker™ Variables Version T-2022.03

See also
slk_fix_si_first

slk_fix_si_only 1015
Tweaker™ Variables Version T-2022.03

slk_fix_switching_power_by_moving
# Do switching power optimization by cell movement.

Type
Boolean

Default
false

Description
For dynamic Power optimization, we can use this variable to do cell

movement. Cell movement can reduce wire cap, which can reduce switching

power.

Example
set slk_fix_switching_power_by_sizing true

...

slkfix -dynamic_power_eco

See also

slk_fix_switching_power_by_moving 1016
Tweaker™ Variables Version T-2022.03

N/A

slk_fix_switching_power_by_moving 1017
Tweaker™ Variables Version T-2022.03

slk_fix_switching_power_by_sizing
# Enables or disables Tweaker to adopt sizing algorithms for reducing switching

power.

Type
Boolean

Default
false

Description
For Dynamic Power ECO, user can enable this variable to fix switching power

instead of internal power (which is default setting). After enabling this

variable, the autofix would be limited by another variable

[VAR] slk_fix_dynamic_power_without_sizing_up which only allows Tweaker to

do down-sizing by default.

Example
set slk_fix_internal_power_by_sizing false

set slk_fix_switching_power_by_sizing true

slk_fix_switching_power_by_sizing 1018
Tweaker™ Variables Version T-2022.03

set slk_fix_dynamic_power_without_sizing_up true

...

slkfix -dynamic_power_eco

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

power_eco_setting.1.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/dynamic_power/fix_internal_

power_eco_setting.2.tcl

slk_fix_internal_power_by_sizing (var)
slk_fix_dynamic_power_without_sizing_up (var)

slk_fix_switching_power_by_sizing 1019
Tweaker™ Variables Version T-2022.03

slk_fix_switching_power_larger_than
# Dynamic power ECO fixing switching power only fixes larger than this switching power value.

Type
Floating

Default
0.0

Description
By default is 0.0, Tweaker is able to do as much ECOs as possible.

For Dynamic Power ECO fixing Switching Power, user can use this variable

to avoid fix small switching power candidate.

Example
set slk_fix_switching_power_larger_than 5.5

See also
slk_fix_internal_power_larger_than (var)

slk_fix_switching_power_larger_than 1020
Tweaker™ Variables Version T-2022.03

slk_fix_trans_min_improved_slack_of_repeater_insertion
# Specifies the minimum improved slack for a violated pin to be inserted with repeaters.

Type
Float

Default
0.1

Description
When fixing max transition/capacitance violation by using HFS repeater

insertion method, Tweaker will monitor the slack improvement of every

violated pin. If the slack improvement of the pin which is currently fixed

is less than the value defined in this variable, Tweaker will give up the

insertion step to this pin and continue to fix and monitor the remaining

violated pins.

This variable is normally constrained for avoiding massive amount of HFS

repeaters insertion count with only a small improvement result.

Example

slk_fix_trans_min_improved_slack_of_repeater_insertion 1021
Tweaker™ Variables Version T-2022.03

set slk_fix_max_trans_by_repeater_insertion true

set slk_fix_max_trans_by_hfs_v2 true

set slk_fix_trans_min_improved_slack_of_repeater_insertion 0.05

...

slkfix -max_trans -all

See also
slk_fix_setup_min_improved_slack_of_repeater_insertion

slk_fix_trans_min_improved_slack_of_repeater_insertion 1022
Tweaker™ Variables Version T-2022.03

slk_fix_trans_min_improved_slack_of_split_cell
# Specifies the minimum improved slack requirement for each auto-split cell

operation to be executed when fix trans by split cell.

Type
Float

Default
0.01

Description
This variable only works when "slk_fix_max_trans_by_split_cell" variable is

set to true.

This variable specifies the minimum improved slack value for each auto

split-cell operation to be performed. If the slack value after the auto

split-cell operation is smaller than the value specified in this variable,

this operation will not be executed.

A smaller the value of this variable increases the possibility of auto

split-cell operation (more aggressive approach) but may results in a greater

risk of timing variation after the ECO routing.

slk_fix_trans_min_improved_slack_of_split_cell 1023
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_max_trans_by_split_cell true

set slk_fix_trans_min_improved_slack_of_split_cell 0.02

...

slkfix -setup -all

See also
slk_fix_max_trans_by_split_cell

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_max_

transition_setting.*.tcl

slk_fix_trans_min_improved_slack_of_split_cell 1024
Tweaker™ Variables Version T-2022.03

slk_fix_transition_for_bus_balance_watch_arrival
# Tweaker variable to prevent degrading bus arrival time while fixing trans.

Type
Boolean

Default
false

Description
During bus balancing stage, Tweaker can improve transition value of bus

reports by repeater insertion. The arrival time of longest path can be

reduced while transition is improved. However, arrival time of shortest

path might get degrading and skew becomes worse.

To avoid skew getting worse, set this variable true to prevent Tweaker

from degrading bus arrival time while fixing trans.

Example
set slk_fix_transition_for_bus_balance_watch_arrival true

slkfix -balance -max_trans 1.0

slk_fix_transition_for_bus_balance_watch_arrival 1025
Tweaker™ Variables Version T-2022.03

See also
slkfix (cmd)

slk_fix_transition_for_bus_balance_watch_arrival 1026
Tweaker™ Variables Version T-2022.03

slk_fix_vmin_without_sizing_down
# Disables the ability to size down the cells during vmin ECO.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will not

sizing down any cell during vmin ECO.

Example
set slk_fix_vmin_without_sizing_down true

...

slkfix -vmin

See also
N/A

slk_fix_vmin_without_sizing_down 1027
Tweaker™ Variables Version T-2022.03

slk_fix_vmin_without_sizing_down 1028
Tweaker™ Variables Version T-2022.03

slk_fix_voltage_robustness_by_sizing
# Adopts the sizing algorithm for fixing voltage robutness violations.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will adopt

sizing algorithm for voltage robustness autofix.

Example
set slk_fix_voltage_robustness_by_sizing true

set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_rule_regexp { @D[0-9]+@ @D[0-9]+@ }

...

slkfix -voltage_robustness

slk_fix_voltage_robustness_by_sizing 1029
Tweaker™ Variables Version T-2022.03

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/primeshield_eco/voltage_robustness/

fix_voltage_robustness_setting.*.tcl

slk_fix_voltage_robustness_by_sizing 1030
Tweaker™ Variables Version T-2022.03

slk_fix_voltage_robustness_watch_all_timing_edge
# Allows Tweaker to monitor the timing window setup margins for both rising and falling edge

during voltage robutness ECO.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will monitor

the TWF setup margins for both rising and falling edge during

the voltage robutness autofix to avoid any timing impact, if the variable set to false

Tweaker will only check one timing edge from voltage robustness report.

Example
set slk_fix_voltage_robustness_by_sizing true

...

set slk_fix_voltage_robustness_watch_all_timing_edge true

slk_fix_voltage_robustness_watch_all_timing_edge 1031
Tweaker™ Variables Version T-2022.03

set slk_setup_target_slk 0.1

set slk_hold_target_slk 0.1

slkfix -voltage_robustness

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/primeshield_eco/voltage_robustness/

fix_voltage_robustness_setting.*.tcl

slk_fix_voltage_robustness_watch_all_timing_edge 1032
Tweaker™ Variables Version T-2022.03

slk_fix_watch_clock_as_data
# Enables or disables the watch clock as data during autofix.

Type
Boolean

Default
false

Description
Sometimes STA may output some certain "clock as data" objects as pure clock

component for Tweaker. In order to recognize these objects and restore it as

"clock as data", users can use the Tweaker "check_clock_as_data -auto"

command to search through the entire design for available candidates.

But when those "clock as data" components are restored successfully, this

variable acts as an "enable pin" which command Tweaker to honor it or not

during autofix operation. Those objects are allowed to be touched by Tweaker

only when this variable is set to true.

Example

slk_fix_watch_clock_as_data 1033
Tweaker™ Variables Version T-2022.03

check_clock_as_data -auto

set slk_fix_watch_clock_as_data true

...

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold.

tcl

slk_fix_watch_clock_as_data 1034
Tweaker™ Variables Version T-2022.03

slk_fix_watch_forbidden_chain
# Enables or disable Tweaker to watch the forbidden chain rule during the autofix.

Type
Boolean

Default
false

Description
By setting this variable to true, it enables Tweaker to observe for any

forbidden chain rule variation during the autofix. The setting of this

variable depends on the performed ECO cycle stage.

Example
set slk_fix_setup_by_sizing true

set slk_fix_setup_watch_setup_timing_window true

set slk_fix_watch_forbidden_chain true

...

slkfix -setup -all

slk_fix_watch_forbidden_chain 1035
Tweaker™ Variables Version T-2022.03

See also
N/A

slk_fix_watch_forbidden_chain 1036
Tweaker™ Variables Version T-2022.03

slk_fix_watch_max_fanout
# Enables or disables Tweaker to honor lib defined max fanout during the autofix.

Type
Boolean

Default
false

Description
If this variable is set to true, Tweaker will honor the max fanout limit

defined at .lib for each cell during the autofix.

Example
set slk_fix_watch_max_fanout true

See also
N/A

slk_fix_watch_max_fanout 1037
Tweaker™ Variables Version T-2022.03

slk_fix_watch_twf_clock_drv
# Enables or disables the ability to recognize the max-trans constraint from STA

setting.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker can recognize

the clock-based maximum transition constraint that is defined in STA.

Under this condition, Tweaker will have three maximum transition reference

constraints and take honor the tightest constraint value:

1. From STA :

(1a) clock-based maximum transition

(1b) design-based maximum transition

2. From Tweaker setting, by adjusting :

(2a) "slk_fix_setup_max_trans_drv" and/or "slk_fix_hold_max_trans_drv"

(2b) "slk_drv_factor" or "slk_drv_value"

slk_fix_watch_twf_clock_drv 1038
Tweaker™ Variables Version T-2022.03

Under this condition, Tweaker will also honor the "slk_twf_clock_drv_factor"

as its drv factor value. (default: 0.95)

Meanwhile, if this variable is set to false, Tweaker will ignore the clock-

based maximum transition constraint.

Example
set slk_fix_watch_twf_clock_drv false

See also
slk_twf_clock_drv_factor

slk_fix_setup_max_trans_drv

slk_fix_hold_max_trans_drv

slk_drv_factor

slk_drv_value

slk_fix_watch_twf_clock_drv 1039
Tweaker™ Variables Version T-2022.03

slk_fix_watch_twf_inst_pin_drv
# Enables or disables the ability to recognize the pin-based transition

constraint from STA setting.

Type
Boolean

Default
false

Description
To let Tweaker recognize the pin-based maximum transition from SDC of TWF,

please set this variable to true. Variable should be applied before first

begin_corner command. Pin-based transition can be modified or overwritten by

command "set_max_transition".

During auto fixing, Tweaker will have different maximum transition reference

constraints and take honor the tightest constraint value when constraints

are applied and enabled :

1. From STA :

(1a) clock-based maximum transition

(1b) design-based maximum transition

slk_fix_watch_twf_inst_pin_drv 1040
Tweaker™ Variables Version T-2022.03

(1c) pin-based maximum transition

2. From Tweaker setting, by adjusting :

(2a) "slk_fix_setup_max_trans_drv" and/or "slk_fix_hold_max_trans_drv"

(2b) "slk_drv_factor" or "slk_drv_value"

Meanwhile, if this variable is set to false, Tweaker will not read in pin-

based transition and ignore the pin-based maximum transition constraint.

Example
set slk_fix_watch_twf_inst_pin_drv false

See also
slk_fix_watch_twf_clock_drv

slk_fix_setup_max_trans_drv

slk_fix_hold_max_trans_drv

slk_drv_factor (cmd)
slk_drv_value (cmd)
set_max_transition (cmd)

slk_fix_watch_twf_inst_pin_drv 1041
Tweaker™ Variables Version T-2022.03

slk_fix_watch_vt_ratio
# Watching vt ratio feature for timing ECO.

Type
Boolean

Default
false

Description
When this variable is enabled, Tweaker's Eco will watch vt ratio influence

where its purpose is to honor the user-specified vt ratio target.

The available vt types are defined at "slk_vt_cell_naming".

The target vt ratio is defined at "slk_vt_ratio_target".

The tolerance of vt ratio difference is defined at "slk_vt_ratio_tolerance".

The type of vt ratio index is defined at "slk_vt_ratio_type",

which can be "count" or "area".

Example
...

slk_fix_watch_vt_ratio 1042
Tweaker™ Variables Version T-2022.03

set slk_fix_watch_vt_ratio true

set slk_vt_cell_naming *LVT* *RVT* *HVT*

set slk_vt_ratio_type count

set slk_vt_ratio_target 0.25 0.4 0.35

set slk_vt_ratio_tolerance 0.02 0.05 0.03

...

slkfix -setup -all

See also
slk_power_eco_enable_vt_ratio

slk_vt_cell_naming

slk_vt_ratio_target

slk_vt_ratio_tolerance

slk_vt_ratio_type

slk_fix_watch_vt_ratio 1043
Tweaker™ Variables Version T-2022.03

slk_force_apply_hfi
# Force Tweaker to only do the HFI algorithm during hold autofix.

Type
Boolean

Default
false

Description
By setting this variable to its default of false, Tweaker will have more

option to choose between the HFI algorithm and normal delay insertion

algorithm or even combine them to achieve the best insertion result during

the hold autofix operation.

On the other side, if this variable is set to true, Tweaker will be forced

to use HFI algorithm to fix all of hold violations.

Users are not suggested to set this variable to true for general cases,

except for some advanced user who have a specific target which can only

obtained by using this setting.

slk_force_apply_hfi 1044
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_force_apply_hfi true

...

slkfix -hold -all

See also
slk_fix_hold_by_high_fanout_insertion

slk_force_apply_hfi 1045
Tweaker™ Variables Version T-2022.03

slk_force_apply_mapping_rule
# Forces Tweaker to honor the order of mapping rule during Power ECO.

Type
Boolean

Default
false

Description
When this variable is set to its default value of false, Tweaker will

take the given mapping rule and re-configure its swapping order based

on the leakage performance.

On the contrary, by setting this variable to true, users are able to force

Tweaker to honor the order of swapping sequence specified in the given

mapping rule.

Example
set slk_force_apply_mapping_rule true

...

slk_force_apply_mapping_rule 1046
Tweaker™ Variables Version T-2022.03

slkfix -power_eco

See also
N/A

slk_force_apply_mapping_rule 1047
Tweaker™ Variables Version T-2022.03

slk_force_apply_on_route_insertion
# To further control the on route insertion behavior depends on different

algorithms

Type
Boolean

Default
false

Description
This variable only works when slk_on_route_buffer_insertion is enabled.

Depends on different algorithms may have different effects.

If repeater insertion is enabled during fix max trans/cap and on route

insertion is enabled, with this variable set to true, Tweaker will only

go through on route insertion solution and skip the global route one if

on route solution is not found. In other words if this variable is not set

true, Tweaker will go through on route solution first and global route

solution second.

If delay insertion is enabled during fix hold and on route insertion is

enabled, with this variable set to true, Tweaker will limit the on route

slk_force_apply_on_route_insertion 1048
Tweaker™ Variables Version T-2022.03

search range to 0 and force the insertion attached to the routing pattern's

only. In other words if this variable is not set true, Tweaker will honor

the slk_on_route_search_range to find more space along with the routing

pattern.

If report_detour_nets command is used and on route insertion is enabled,

with this variable set to true, Tweaker will only adopt the on route buffer

insertion for both detour nets and non-detour nets. In other words if this

var is not set true, Tweaker will go through global route for detour nets

and on route for non-detour nets.

Example
set slk_on_route_buffer_insertion true

set slk_on_route_search_range 5

set slk_fix_hold_by_delay_insertion true

set slk_force_apply_on_route_insertion true

...

slkfix -hold -all

set slk_on_route_buffer_insertion true

set slk_force_apply_on_route_insertion true

...

slkfix -max_trans -all

slk_force_apply_on_route_insertion 1049
Tweaker™ Variables Version T-2022.03

See also
slk_force_apply_on_route_insertion

slk_force_apply_on_route_insertion 1050
Tweaker™ Variables Version T-2022.03

slk_ftc_build_all_clock_path
# Enable or disable the ability to build all clock domain

Type
boolean

Default
false

Description
By default, Tweaker will only build the clock domain partially in order to

reduce the runtime during the ECO domain creation.

When this variable is set to true, Tweaker will create all clock domain

which might lead to more accurate clock ECO autofix which might cause the

longer runtime.

It's necessaries to set this variable at the top of the script.

Example
set slk_ftc_build_all_clock_path true

slk_ftc_build_all_clock_path 1051
Tweaker™ Variables Version T-2022.03

See also
NA

slk_ftc_build_all_clock_path 1052
Tweaker™ Variables Version T-2022.03

slk_ftc_fix_hold_by_insertion
# Adopts the fine tune clock for hold paths algorithm.

Type
Boolean

Default
false

Description
This is the clock ECO related variable.

This variable acts as the main switch to enable the "fine tune clock for

hold" feature inside a Tweaker C1 environment.

There is a package of complementary variables to this feature, such as:

"slk_ftc_fix_hold_by_insertion",

"slk_ftc_hold_eco_target",

"slk_ftc_watch_hold_tns", and many more.

The general purpose of this feature is to reduce the WNS as much as

possible. Later on, by using the slack range that can be found from C1

report, users can adjust the "slk_ftc_hold_max_fine_tune" variable to decide

the allowed skew shifting.

slk_ftc_fix_hold_by_insertion 1053
Tweaker™ Variables Version T-2022.03

Example
set slk_ftc_fix_hold_by_insertion true

set slk_ftc_hold_max_fine_tune 0.1

slkfix -hold -all

See also
slk_ftc_fix_hold_by_sizing

slk_ftc_hold_max_fine_tune

slk_ftc_hold_max_trans_drv

slk_ftc_hold_eco_target

slk_ftc_watch_hold_nfe

slk_ftc_watch_hold_tns

slk_ftc_watch_hold_wns

slk_ftc_watch_setup_nfe

slk_ftc_watch_setup_tns

slk_ftc_watch_setup_wns

$Tweaker_Install_DIR/etc/template/tweaker_t1/ftc/c1/fix_hold_ftc_setting.

insert_delay.tcl

slk_ftc_fix_hold_by_insertion 1054
Tweaker™ Variables Version T-2022.03

slk_ftc_fix_hold_by_sizing
# Adopts the fine tune clock for hold paths algorithm.

Type
Boolean

Default
false

Description
This is the clock ECO related variable.

This variable acts as the main switch to enable the "fine tune clock for

hold" feature inside a Tweaker C1 environment.

There is a package of complementary variables to this feature, such as:

"slk_ftc_fix_hold_by_sizing",

"slk_ftc_hold_eco_target",

"slk_ftc_watch_setup_tns", and many more.

The general purpose of this feature is to reduce the WNS as much as

possible. Later on, by using the slack range that can be found from C1

report, users can adjust the "slk_ftc_hold_max_fine_tune" variable to decide

the allowed skew shifting.

slk_ftc_fix_hold_by_sizing 1055
Tweaker™ Variables Version T-2022.03

Example
set slk_ftc_fix_hold_by_sizing true

set slk_ftc_hold_max_fine_tune 0.1

slkfix -hold -all

See also
slk_ftc_fix_hold_by_insertion

slk_ftc_hold_max_fine_tune

slk_ftc_hold_max_trans_drv

slk_ftc_hold_eco_target

slk_ftc_watch_hold_nfe

slk_ftc_watch_hold_tns

slk_ftc_watch_hold_wns

slk_ftc_watch_setup_nfe

slk_ftc_watch_setup_tns

slk_ftc_watch_setup_wns

$Tweaker_Install_DIR/etc/template/tweaker_t1/ftc/c1/fix_hold_ftc_setting.sz.

tcl

slk_ftc_fix_hold_by_sizing 1056
Tweaker™ Variables Version T-2022.03

slk_ftc_fix_setup_by_insertion
# Adopts the fine tune clock for setup paths algorithm.

Type
Boolean

Default
false

Description
This is the clock ECO related variable.

This variable acts as the main switch to enable the "fine tune clock for

setup" feature inside a Tweaker C1 environment.

There is a package of complementary variables to this feature, such as:

"slk_ftc_fix_setup_by_insertion",

"slk_ftc_setup_eco_target",

"slk_ftc_watch_hold_tns", and many more.

The general purpose of this feature is to reduce the WNS as much as

possible. Later on, by using the slack range that can be found from C1

report, users can adjust the "slk_ftc_setup_max_fine_tune" variable to

decide the allowed skew shifting.

slk_ftc_fix_setup_by_insertion 1057
Tweaker™ Variables Version T-2022.03

Example
set slk_ftc_fix_setup_by_insertion true

set slk_ftc_setup_max_fine_tune 0.1

slkfix -setup -all

See also
slk_ftc_fix_setup_by_sizing

slk_ftc_setup_max_fine_tune

slk_ftc_setup_max_trans_drv

slk_ftc_setup_eco_target

slk_ftc_watch_hold_nfe

slk_ftc_watch_hold_tns

slk_ftc_watch_hold_wns

slk_ftc_watch_setup_nfe

slk_ftc_watch_setup_tns

slk_ftc_watch_setup_wns

$Tweaker_Install_DIR/etc/template/tweaker_t1/ftc/c1/fix_setup_ftc_setting.

insert_delay.tcl

slk_ftc_fix_setup_by_insertion 1058
Tweaker™ Variables Version T-2022.03

slk_ftc_fix_setup_by_sizing
# Adopts the fine tune clock for setup paths algorithm.

Type
Boolean

Default
false

Description
This is the clock ECO related variable.

This variable acts as the main switch to enable the "fine tune clock for

setup" feature inside a Tweaker C1 environment.

There is a package of complementary variables to this feature, such as:

"slk_ftc_fix_setup_by_sizing",

"slk_ftc_setup_eco_target",

"slk_ftc_watch_hold_tns", and many more.

The general purpose of this feature is to reduce the WNS as much as

possible. Later on, by using the slack range that can be found from C1

report, users can adjust the "slk_ftc_setup_max_fine_tune" variable to

decide the allowed skew shifting.

slk_ftc_fix_setup_by_sizing 1059
Tweaker™ Variables Version T-2022.03

Example
set slk_ftc_fix_setup_by_sizing true

set slk_ftc_setup_max_fine_tune 0.1

slkfix -setup -all

See also
slk_ftc_fix_setup_by_insertion

slk_ftc_setup_max_fine_tune

slk_ftc_setup_max_trans_drv

slk_ftc_setup_eco_target

slk_ftc_watch_hold_nfe

slk_ftc_watch_hold_tns

slk_ftc_watch_hold_wns

slk_ftc_watch_setup_nfe

slk_ftc_watch_setup_tns

slk_ftc_watch_setup_wns

$Tweaker_Install_DIR/etc/template/tweaker_t1/ftc/c1/fix_setup_ftc_setting.sz

.tcl

slk_ftc_fix_setup_by_sizing 1060
Tweaker™ Variables Version T-2022.03

slk_ftc_hold_eco_target
# Tweaker variable to select the target of fine tune clock for hold.

Type
String [ wns | tns | nfe ]

Default
tns

Description
This is a clock-ECO related variable.

Tweaker fine tune clock (Tweaker C1) feature allows user to choose the

target or purpose during fine tune process.

The available fine tune hold target includes tns, nfe and wns.

Below is the description one by one:

wns : focus on MMMC WNS improvement.

tns : focus on MMMC total negative slack improvement.

nfe : focus on MMMC number of endpoints improvement.

Usually a common design needs the hold to be clean as much as possible so we

suggest to start with tns or nfe first.

Comparing the tns and nfe, basically they are in the same catalogue but nfe

slk_ftc_hold_eco_target 1061
Tweaker™ Variables Version T-2022.03

focus on endpoint reducing while tns focus on the entire negative slack

reducing.

Example
set slk_ftc_hold_eco_target wns

set slk_ftc_hold_eco_target tns

See also
slk_ftc_watch_setup_wns

slk_ftc_watch_setup_tns

slk_ftc_watch_setup_nfe

slk_ftc_watch_hold_wns

slk_ftc_watch_hold_tns

slk_ftc_watch_hold_nfe

$Tweaker_Install_DIR/etc/template/tweaker_t1/ftc/c1/ftc_hold.tcl

slk_ftc_hold_eco_target 1062
Tweaker™ Variables Version T-2022.03

slk_ftc_hold_max_fine_tune
# Specifies the maximum fine tune value during fine tune clock on hold paths.

Type
Float

Default
0.1

Description
For fine tune clock (Tweaker C1) feature, Tweaker provides this variable to

allow the maximum changing delay on a hold path to avoid the over-tuning.

The larger the value means the more chances for Tweaker to tune skew over

hold paths, but also with higher possibilities to hurt the existing positive

hold paths.

Example
set slk_ftc_fix_hold_by_sizing true

set slk_max_fine_tune_for_hold_path 0.2

slk_ftc_hold_max_fine_tune 1063
Tweaker™ Variables Version T-2022.03

See also
slk_ftc_fix_hold_by_sizing

slk_ftc_fix_hold_by_insertion

slk_ftc_setup_max_fine_tune

slk_ftc_hold_max_fine_tune 1064
Tweaker™ Variables Version T-2022.03

slk_ftc_hold_max_trans_drv
# Specifies the absolute clock max transition value during fine tune clock for fixing hold violations.

Type
Float

Default
empty

Description
This is the clock ECO related variable.

When "finetune clock tree" feature is enabled during hold violation autofix,

Tweaker will honor the max trans/cap which is constrained by DRV factor

and the absolute max trans value which is specified in this variable. This

variable acts as the second assurance.

If the transition value after the autofix is larger than the value defined

in this variable, Tweaker will not perform the previous ECO operation.

Example
set slk_ftc_fix_hold_by_sizing true

slk_ftc_hold_max_trans_drv 1065
Tweaker™ Variables Version T-2022.03

set slk_ftc_hold_max_trans_drv 0.3

...

slkfix -hold -all

See also
slk_ftc_fix_hold_by_sizing

slk_ftc_fix_hold_by_insertion

slk_ftc_setup_max_trans_drv

slk_ftc_hold_max_trans_drv 1066
Tweaker™ Variables Version T-2022.03

slk_ftc_min_improved_slack_of_insertion
# Specify a minimum improved slack after an insertion

Type
Double

Default
0.01

Description
During ftc (fine-tune clock), user can specify a value about minumum improved slack

while insertion. If it cannot achieve this improvement, the clock buffer will not

be inserted.

Example
set slk_ftc_min_improved_slack_of_insertion 0.005

See also
N/A

slk_ftc_min_improved_slack_of_insertion 1067
Tweaker™ Variables Version T-2022.03

slk_ftc_setup_eco_target
# Tweaker variable to select the target of fine tune clock for setup.

Type
String [lnws | wns | tns | nfe]

Default
lwns

Description
This is a clock-ECO related variable.

Tweaker fine tune clock (Tweaker C1) feature allows user to choose the

target or purpose during fine tune process.

The available fine tune setup target includes lwns, wns, tns and nfe.

Below is the description one by one:

lwns : focus on local WNS improvement regarding the current eco

instance.

wns : focus on MMMC WNS improvement.

tns : focus on MMMC total negative slack improvement.

nfe : focus on MMMC number of endpoints improvement.

If your design is CPU based design and the purpose is to boost up the clock

slk_ftc_setup_eco_target 1068
Tweaker™ Variables Version T-2022.03

speed, then usually lwns and wns will be suggested.

Comparing lwns and wns, lwns may have more chances to squeeze the skew from

non-critical paths and lend to the exact WNS paths for further improvement.

In other words, lwns may have more chances of clock speed boost up at

the trade off of doing more sizing clock comp.

If you design is non-CPU based design and the purpose is to clean the setup

time as much as possible, then usually tns and nfe will be suggested.

Comparing the tns and nfe, basically they are in the same catalogue but nfe

focus on endpoint reducing while tns focus on the entire negative slack

reducing.

Example
set slk_ftc_setup_eco_target wns

set slk_ftc_setup_eco_target tns

set slk_ftc_setup_eco_target nfe

See also
slk_ftc_watch_setup_wns

slk_ftc_watch_setup_tns

slk_ftc_watch_setup_nfe

slk_ftc_watch_hold_wns

slk_ftc_watch_hold_tns

slk_ftc_setup_eco_target 1069
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_hold_nfe

$Tweaker_Install_DIR/etc/template/tweaker_t1/ftc/c1/ftc_setup.tcl

slk_ftc_setup_eco_target 1070
Tweaker™ Variables Version T-2022.03

slk_ftc_setup_max_fine_tune
# Specifies the maximum fine tune value during fine tune clock on setup paths.

Type
Float

Default
0.1

Description
For fine tune clock (Tweaker C1) feature, Tweaker provides this variable to

allow the maximum changing delay on a setup path to avoid the over-tuning.

The larger the value means the more chances for Tweaker to tune skew over

setup paths, but also with higher possibilities to hurt the existing

positive setup paths.

Example
set slk_ftc_fix_setup_by_sizing true

set slk_max_fine_tune_for_setup_path 0.2

slk_ftc_setup_max_fine_tune 1071
Tweaker™ Variables Version T-2022.03

See also
slk_ftc_fix_setup_by_sizing

slk_ftc_fix_setup_by_insertion

slk_ftc_hold_max_fine_tune

slk_ftc_setup_max_fine_tune 1072
Tweaker™ Variables Version T-2022.03

slk_ftc_setup_max_trans_drv
# Specifies the absolute clock max transition value during fine tune clock for

fixing setup violations.

Type
Float

Default
empty

Description
This is the clock ECO related variable.

When "finetune clock tree" feature is enabled during setup violation

autofix, Tweaker will honor the max trans/cap which is constrained by DRV

factor and the absolute max trans value which is specified in this variable.

This variable acts as the second assurance.

If the transition value after the autofix is larger than the value defined

in this variable, Tweaker will not perform the previous ECO operation.

Example

slk_ftc_setup_max_trans_drv 1073
Tweaker™ Variables Version T-2022.03

set slk_ftc_fix_setup_by_sizing true

set slk_ftc_setup_max_trans_drv 0.3

...

slkfix -setup -all

See also
slk_ftc_fix_setup_by_sizing

slk_ftc_fix_setup_by_insertion

slk_ftc_hold_max_trans_drv

slk_ftc_setup_max_trans_drv 1074
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_hold_nfe
# Tweaker variable to watch hold nfe during fine tune process.

Type
Boolean

Default
false

Description
This is a clock-ECO related variable.

Tweaker fine tune clock (Tweaker C1) feature allows user to watch particular

timing after your target selection is done.

The available watch timing includes watch_setup_wns, watch_setup_tns,

watch_setup_nfe, watch_hold_wns, watch_hold_nfe, and watch_hold_tns.

All of these watch are default false to give less obstacle for your selected

target unless enabled by user.

watch_setup_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup WNS and not to degrade it.

watch_setup_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup total negative slack.

slk_ftc_watch_hold_nfe 1075
Tweaker™ Variables Version T-2022.03

watch_setup_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup number of endpoints.

watch_hold_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold WNS and not to degrade it.

watch_hold_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold total negative slack.

watch_hold_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold number of endpoints.

Usually during fine tune clock for setup, user can enable watch hold timing

vars to reduce the hold impact. On the other hand during fine tune clock for

hold, user can enable watch setup timing vars to reduce the setup impact.

Example
...

set slk_ftc_hold_eco_target nfe

set slk_ftc_watch_setup_wns true

...

slkfix -hold -all

See also
slk_ftc_watch_setup_nfe

slk_ftc_watch_setup_wns

slk_ftc_watch_hold_nfe 1076
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_setup_tns

slk_ftc_watch_hold_tns

slk_ftc_watch_hold_wns

slk_ftc_watch_hold_nfe 1077
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_hold_tns
# Tweaker variable to watch hold tns during fine tune process.

Type
Boolean

Default
false

Description
This is a clock-ECO related variable.

Tweaker fine tune clock (Tweaker C1) feature allows user to watch particular

timing after your target selection is done.

The available watch timing includes watch_setup_wns, watch_setup_tns,

watch_setup_nfe, watch_hold_wns, watch_hold_nfe, and watch_hold_tns. All of

these watch are default false to give less obstacle for your selected target

unless enabled by user.

watch_setup_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup WNS and not to degrade it.

watch_setup_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup total negative slack.

slk_ftc_watch_hold_tns 1078
Tweaker™ Variables Version T-2022.03

watch_setup_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup number of endpoints.

watch_hold_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold WNS and not to degrade it.

watch_hold_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold total negative slack.

watch_hold_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold number of endpoints.

Usually during fine tune clock for setup, user can enable watch hold timing

vars to reduce the hold impact. On the other hand during fine tune clock for

hold, user can enable watch setup timing vars to reduce the setup impact.

Example
...

set slk_ftc_hold_eco_target nfe

set slk_ftc_watch_hold_tns true

...

slkfix -hold -all

See also
slk_ftc_watch_setup_nfe

slk_ftc_watch_setup_wns

slk_ftc_watch_hold_tns 1079
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_setup_tns

slk_ftc_watch_hold_wns

slk_ftc_watch_hold_nfe

slk_ftc_watch_hold_tns 1080
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_hold_wns
# Tweaker variable to watch hold wns during fine tune process.

Type
Boolean

Default
false

Description
This is a clock-ECO related variable.

Tweaker fine tune clock (Tweaker C1) feature allows user to watch particular

timing after your target selection is done.

The available watch timing includes watch_setup_wns, watch_setup_tns,

watch_setup_nfe, watch_hold_wns, watch_hold_nfe, and watch_hold_tns.

All of these watch are default false to give less obstacle for your selected

target unless enabled by user.

watch_setup_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup WNS and not to degrade it.

watch_setup_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup total negative slack.

slk_ftc_watch_hold_wns 1081
Tweaker™ Variables Version T-2022.03

watch_setup_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup number of endpoints.

watch_hold_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold WNS and not to degrade it.

watch_hold_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold total negative slack.

watch_hold_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold number of endpoints

Usually during fine tune clock for setup, user can enable watch hold timing

vars to reduce the hold impact. On the other hand during fine tune clock for

hold, user can enable watch setup timing vars to reduce the setup impact.

Example
...

set slk_ftc_hold_eco_target wns

set slk_ftc_watch_setup_wns true

...

slkfix -hold -all

See also
slk_ftc_watch_setup_nfe

slk_ftc_watch_setup_wns

slk_ftc_watch_hold_wns 1082
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_setup_tns

slk_ftc_watch_hold_tns

slk_ftc_watch_hold_nfe

slk_ftc_watch_hold_wns 1083
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_setup_nfe
# Tweaker variable to watch setup nfe during fine tune process.

Type
Boolean

Default
false

Description
This is a clock-ECO related variable.

Tweaker fine tune clock (Tweaker C1) feature allows user to watch particular

timing after your target selection is done.

The available watch timing includes watch_setup_wns, watch_setup_tns,

watch_setup_nfe, watch_hold_wns, watch_hold_nfe, and watch_hold_tns.

All of these watch are default false to give less obstacle for your selected

target unless enabled by user.

watch_setup_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup WNS and not to degrade it.

watch_setup_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup total negative slack.

slk_ftc_watch_setup_nfe 1084
Tweaker™ Variables Version T-2022.03

watch_setup_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup number of endpoints.

watch_hold_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold WNS and not to degrade it.

watch_hold_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold total negative slack.

watch_hold_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold number of endpoints.

Usually during fine tune clock for setup, user can enable watch hold timing

vars to reduce the hold impact. On the other hand during fine tune clock for

hold, user can enable watch setup timing vars to reduce the setup impact.

Example
...

set slk_ftc_setup_eco_target lwns

set slk_ftc_watch_setup_nfe true

set slk_ftc_watch_hold_nfe true

...

slkfix -setup -all

See also
slk_ftc_watch_setup_tns

slk_ftc_watch_setup_nfe 1085
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_setup_wns

slk_ftc_watch_hold_wns

slk_ftc_watch_hold_tns

slk_ftc_watch_hold_nfe

slk_ftc_watch_setup_nfe 1086
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_setup_tns
# Tweaker variable to watch setup tns during fine tune process.

Type
Boolean

Default
false

Description
This is a clock-ECO related variable.

Tweaker fine tune clock (Tweaker C1) feature allows user to watch particular

timing after your target selection is done.

The available watch timing includes watch_setup_wns, watch_setup_tns,

watch_setup_nfe, watch_hold_wns, watch_hold_nfe, and watch_hold_tns.

All of these watch are default false to give less obstacle for your selected

target unless enabled by user.

watch_setup_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup WNS and not to degrade it.

watch_setup_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup total negative slack.

slk_ftc_watch_setup_tns 1087
Tweaker™ Variables Version T-2022.03

watch_setup_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup number of endpoints.

watch_hold_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold WNS and not to degrade it.

watch_hold_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold total negative slack.

watch_hold_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold number of endpoints..

Usually during fine tune clock for setup, user can enable watch hold timing

vars to reduce the hold impact. On the other hand during fine tune clock for

hold, user can enable watch setup timing vars to reduce the setup impact.

Example
...

set slk_ftc_setup_eco_target lwns

set slk_ftc_watch_setup_tns true

set slk_ftc_watch_hold_tns true

...

slkfix -setup -all

See also
slk_ftc_watch_setup_nfe

slk_ftc_watch_setup_tns 1088
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_setup_wns

slk_ftc_watch_hold_wns

slk_ftc_watch_hold_tns

slk_ftc_watch_hold_nfe

slk_ftc_watch_setup_tns 1089
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_setup_wns
# Tweaker variable to watch setup wns during fine tune process.

Type
Boolean

Default
false

Description
This is a clock-ECO related variable.

Tweaker fine tune clock (Tweaker C1) feature allows user to watch particular

timing after your target selection is done.

The available watch timing includes watch_setup_wns, watch_setup_tns,

watch_setup_nfe, watch_hold_wns, watch_hold_nfe, and watch_hold_tns.

All of these watch are default false to give less obstacle for your selected

target unless enabled by user.

watch_setup_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup WNS and not to degrade it.

watch_setup_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup total negative slack.

slk_ftc_watch_setup_wns 1090
Tweaker™ Variables Version T-2022.03

watch_setup_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC setup number of endpoints.

watch_hold_wns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold WNS and not to degrade it.

watch_hold_tns : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold total negative slack.

watch_hold_nfe : during fine tune clock setup/hold process, ask Tweaker to

watch the MMMC hold number of endpoints.

Usually during fine tune clock for setup, user can enable watch hold timing

vars to reduce the hold impact. On the other hand during fine tune clock for

hold, user can enable watch setup timing vars to reduce the setup impact.

Example
...

set slk_ftc_setup_eco_target lwns

set slk_ftc_watch_setup_wns true

set slk_ftc_watch_hold_nfe true

...

slkfix -setup -all

See also
slk_ftc_watch_setup_tns

slk_ftc_watch_setup_wns 1091
Tweaker™ Variables Version T-2022.03

slk_ftc_watch_setup_nfe

slk_ftc_watch_hold_wns

slk_ftc_watch_hold_tns

slk_ftc_watch_hold_nfe

slk_ftc_watch_setup_wns 1092
Tweaker™ Variables Version T-2022.03

slk_give_up_insert_buf_distance
# Specifies the maximum distance value of an inserted buffer to be shifted from the

original ideal location.

Type
Integer

Default
50

Description
If "slk_give_up_insert_if_no_space" variable is set to true, Tweaker will

give up any insertion operation during hold violation autofix if the

inserted hold buffer will be placed to the outside of the preferred range.

Before any insertion operation is performed, Tweaker will search for any

available space within the region (circle). This region radius length

is defined in this variable with the ideal buffer insertion location as

the center of the searching area.

For advanced process such as 20nm process or very congested design,

user are recommended to decrease the area of searching by reducing the

radius length of searching defined in this variable to decrease any routing

slk_give_up_insert_buf_distance 1093
Tweaker™ Variables Version T-2022.03

issue possibility.

Example
set slk_give_up_insert_if_no_space true

set slk_give_up_insert_buf_distance 20

...

slkfix -hold -all

See also
slk_give_up_insert_if_no_space

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.*.tcl

slk_give_up_insert_buf_distance 1094
Tweaker™ Variables Version T-2022.03

slk_give_up_insert_if_no_space
# Allowing or not allowing Tweaker to insert any buffer even if it has exceeded

the preferred range.

Type
Boolean

Default
true

Description
By setting his variable to its default of true, Tweaker will give up any

insertion during autofix if the inserted buffer has exceeded preferred

insertion range.

This variable acts as the main switch followed by the searching range radius

specified in "slk_give_up_insert_buf_distance" variable to define the

preferred insertion range in Tweaker.

If this variable is set to false, Tweaker will ignore any value specified at

"slk_give_up_insert_buf_distance" and insert hold buffers even the free

space have exceed the preferred range. This setting may increase the

flexibility of the buffer insertion operation but may increase the

slk_give_up_insert_if_no_space 1095
Tweaker™ Variables Version T-2022.03

congestion issue possibility.

Example
set slk_give_up_insert_if_no_space true

set slk_give_up_insert_buf_distance 20

...

slkfix -hold -all

See also
slk_give_up_insert_buf_distance

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.*.tcl

slk_give_up_insert_if_no_space 1096
Tweaker™ Variables Version T-2022.03

slk_hack_all_timing_type
# Enables or disables the Hack SDF process value to be applied on all timing

type.

Type
Boolean

Default
false

Description
When this variable is set to its default value of false, the "hack hold

time" operation will only change the "sdf_min" values on the SDF triplets,

while the "hack setup time" operation will only change the "sdf_max" values

of the SDF triplets.

By setting this variable is set to true, user can apply one of the SDF

triplet values ("sdf_min", "sdf_typ", and "sdf_max") and apply it for both

setup and hold timing hacking.

This setting extremely useful for users who only care for the value of a

specific type of SDF triplets value.

slk_hack_all_timing_type 1097
Tweaker™ Variables Version T-2022.03

Example
slkfix -create_twf_hack_sdf_domain

set slk_hack_all_timing_type true

...

slkfix -twf_hack_sdf

See also
slk_fix_setup_by_hack_sdf

slk_fix_hold_by_hack_sdf

slk_hack_all_timing_type 1098
Tweaker™ Variables Version T-2022.03

slk_hack_clock_min_cell_delay
# Tweaker variable to set the minimal cell delay for "hack clock cell delay"

analysis

Type
Float

Default
0.02

Description
In the "Hack clock cell delay" analysis operation, Tweaker adjusts the clock

cell delay values of the SDF file in order to fix setup or hold violations.

This variable allows user to specify the minimal value of the minimum cell

delay.

This function only valid for "slkfix -hack_clock_cell_delay ... " command

option.

Example
set slk_slack_adjust_range -0.01 0.01

slk_hack_clock_min_cell_delay 1099
Tweaker™ Variables Version T-2022.03

set slk_hack_clock_min_cell_delay 0.01

slkfix -hack_clock_cell_delay -all

See also
slk_slack_adjust_range (var)
slkfix (cmd)

slk_hack_clock_min_cell_delay 1100
Tweaker™ Variables Version T-2022.03

slk_hack_comb_logic_cell_only
# Enables or disables the ability of Tweaker to hack delay for the combinational logic cells only.

Type
Boolean

Default
false

Description
By default, Tweaker will hack the cell delay for both combinational and

sequential cells during the hack sdf stage.

In contrary, when this variable is set to true, Tweaker only hacks the

cell delay for combinational cells.

Example
[CMD] set slk_hack_comb_logic_cell_only true

[CMD] slkfix -twf_hack_sdf

See also

slk_hack_comb_logic_cell_only 1101
Tweaker™ Variables Version T-2022.03

slk_hack_setup_min_cell_delay (var)

slk_hack_comb_logic_cell_only 1102
Tweaker™ Variables Version T-2022.03

slk_hack_hold_watch_setup_timing_window
# Enables or disable Tweaker to watch the setup time in Timing Windows File (TWF) during hack sdf for hold time.

Type
Boolean

Default
false

Description
By setting this variable to the value of true, Tweaker will keep the setup

twf value to be larger than setup target slack while hacking sdf for hold time.

Example
[CMD] set slk_hack_hold_watch_setup_timing_window true

[CMD] slkfix -twf_hack_sdf

See also
slk_hack_hold_with_extract_setup_margin (var)

slk_hack_hold_watch_setup_timing_window 1103
Tweaker™ Variables Version T-2022.03

slk_hack_setup_min_cell_delay
# Specifies the minimum cell delay value of a cell during Hack SDF operation for setup time.

Type
Float

Default
0.02

Description
In the "Hack SDF" operation, Tweaker adjusts the cell/net delay values in

the original SDF file and generate a violation-free SDF file for simulation

purpose only.

During the setup time hacking process, even though Tweaker reduce the cells

delay values of the SDF file in order to fix its setup violation, but

failures maybe occurs for simulation that contains 0 or negative value of

cell delay. Hence, this variable allows user to define the minimum value of

the minimum cell delay.

The smaller value assigned in this variable increases the flexibility of

Tweaker to hack the setup time.

slk_hack_setup_min_cell_delay 1104
Tweaker™ Variables Version T-2022.03

Example
slkfix -create_twf_hack_sdf_domain

set slk_hack_setup_min_cell_delay 0.01

...

slkfix -twf_hack_sdf

See also
slk_fix_setup_by_hack_sdf

slk_hack_setup_min_cell_delay 1105
Tweaker™ Variables Version T-2022.03

slk_hfi_allow_bundle_grouping_within_distance
# Grouping sink pins within user defined distance

Type
double

Default
0

Description
When hold fixing and turn on high fanout insertion,

Tweaker will insert buffers on common points and grouping those sink pins.

Specifing "slk_hfi_allow_bundle_grouping_within_distance" will force Tweaker

grouping pins within the distance.

Example
set slk_hfi_allow_bundle_grouping_within_distance 10

See also
N/A

slk_hfi_allow_bundle_grouping_within_distance 1106
Tweaker™ Variables Version T-2022.03

slk_hfi_allow_bundle_grouping_within_distance 1107
Tweaker™ Variables Version T-2022.03

slk_hfi_grouping_hold_margin
# Specifies the grouping hold margin for HFI grouping.

Type
Float

Default
0.02

Description
When fixing the hold time violations using HFI algorithm, the grouping

candidates are not only contain of the fanouts with negative slacks

(violation), but also the fanouts that contain hold slacks which are smaller

than the sum of the "hold target slack value" and the "grouping hold margin"

specified in this variable.

The purpose of this aggressive grouping behavior is to avoid any potential

hold impact on the grouping fanouts after the HFI buffer insertion.

A larger value means more grouping will be done as long as setup margin is

satisfied.

slk_hfi_grouping_hold_margin 1108
Tweaker™ Variables Version T-2022.03

Example
set slk_hold_target_slk 0.01

set slk_hfi_grouping_hold_margin 0.03

set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

...

slkfix -hold -all

See also
slk_hfi_peer_setup_margin

slk_hfi_grouping_hold_margin 1109
Tweaker™ Variables Version T-2022.03

slk_hfi_keep_driver_net_name
# Enables or disables the capability to modify the nets name during HFI algorithm.

Type
Boolean

Default
true

Description
By setting this variable to its default of true, Tweaker will keep the

original net name on the driver side during the buffer insertion operation

when HFI algorithm is performed on high fanout nets, and only assign the

new net name with user-recognized prefixes to the eco net on the sink side

after the buffer insertion operation.

This feature will allow Tweaker to maintain the original net routing pattern

for further APR process. Hence user is not recommended to change the setting

of this variable under any circumstances.

Example

slk_hfi_keep_driver_net_name 1110
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_hfi_keep_driver_net_name true

...

slkfix -hold -all

See also
N/A

slk_hfi_keep_driver_net_name 1111
Tweaker™ Variables Version T-2022.03

slk_hfi_keep_driver_size
# Enable or disable the ability to insert the cells that have a higher driving capability during hold autofix

Type
boolean

Default
false

Description
When this variable is set to true, Tweaker will insert the cell that have

equal or bigger cell if compared to the driver cell.

For example, if the driver cell is BUFX4 cell while user is providing

delay list as below:

set slk_delay_insertion_buff_list { BUFX2 BUFX4 }

set slk_delay_insertion_high_drive_buff_list { BUFX8 BUFX12 }

Then Tweaker will consider to use BUFX4, BUFX8, and/or BUFX12 to do the

insertion.

The objective of this variable is avoid inserting weaker cells during

the insertion operation which might lead to unexpected SI-impact.

It's highly recommended to always specify high-drive buffer list into

slk_hfi_keep_driver_size 1112
Tweaker™ Variables Version T-2022.03

"slk_delay_insertion_high_drive_buff_list" Tweaker variable.

Example
source $script_path/fix_hold_setting.bi.3.tcl

set slk_hfi_keep_driver_size true

set slk_delay_insertion_buff_list { BUFX2 BUFX4 }

set slk_delay_insertion_high_drive_buff_list { BUFX8 BUFX12 }

slkfix -hold -all

See also
slk_delay_insertion_buff_list

slk_delay_insertion_high_drive_buff_list

slk_hfi_keep_driver_size 1113
Tweaker™ Variables Version T-2022.03

slk_hfi_peer_hold_twf_impact
# Enables or disables Tweaker to allow TWF hold impact on the hold path's peer

pin.

Type
Float

Default
0.0

Description
Tweaker offers the ability to let users manually control the autofix level

of HFI/HBI hold fixing. Tweaker allows TWF hold impact of the value given in

this variable on the peer pin (where the sink pins are not grouped together)

to increase the fixing rate.

Example
source $Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_

hold_setting.bi.3.tcl

...

slk_hfi_peer_hold_twf_impact 1114
Tweaker™ Variables Version T-2022.03

set slk_hfi_peer_hold_twf_impact 0.005

...

slkfix -hold -ff

See also
slk_auto_sizing_setup_twf_impact (var)

slk_hfi_peer_hold_twf_impact 1115
Tweaker™ Variables Version T-2022.03

slk_hfi_peer_setup_margin
# Specifies the peer setup margin for high fanout nets insertion.

Type
Float

Default
0.01

Description
When fixing hold time violations by using HFI/HBI algorithm on a high fanout

net, Tweaker will monitor the setup margin on both sub-side (where the sink

pins are grouped together and connected after the inserted buffer) and peer-

side (where the sink pins are not grouped together) to make sure their setup

margins is still satisfy the value defined in this variable.

The larger value of this variable means more conservative setup time

checking on peer side.

Example
set slk_fix_hold_by_delay_insertion true

slk_hfi_peer_setup_margin 1116
Tweaker™ Variables Version T-2022.03

set slk_fix_hold_by_high_fanout_insertion true

set slk_hfi_peer_setup_margin 0.02

...

slkfix -hold -all

See also
slk_fix_hold_watch_driving_pin_slack

slk_hfi_grouping_hold_margin

slk_hfi_peer_setup_margin 1117
Tweaker™ Variables Version T-2022.03

slk_hfi_peer_setup_twf_impact
# Enables or disables Tweaker to allow TWF setup impact on the hold path's peer

pin.

Type
Float

Default
0.0

Description
When fixing hold violations by using HFI/HBI algorithm on a high fanout net,

Tweaker will monitor the setup margin on both sub-side (where the sink pins

are grouped together and connected after the inserted buffer) and peer-side

(where the sink pins are not grouped together) to make sure their setup

margins is still satisfy the value defined in variable

slk_hfi_peer_setup_margin.

To increase the fixing rate, Tweaker offers the ability to allow TWF setup

impact of the value given in this variable on the peer pin. If peer TWF

setup is allowed impact, Tweaker will not refer variable

slk_hfi_peer_setup_margin.

slk_hfi_peer_setup_twf_impact 1118
Tweaker™ Variables Version T-2022.03

The positive setup margin is not allowed to get impact to negative value.

Example
...

set slk_hfi_peer_setup_twf_impact 0.005

...

slkfix -hold -ff

See also
slk_hfi_peer_setup_margin

slk_hfi_peer_setup_twf_impact 1119
Tweaker™ Variables Version T-2022.03

slk_hfi_use_combo_cell
# Use combo cell in high fanout insertion algorithm

Type
Boolean

Default
false

Description
If this variable is set to true, Tweaker will reference combo cell

candidates in the variable "slk_delay_insertion_combo_cell_list" to insert

combo cell during HFI algorithm for fixing hold time.

Currently auto combo cell insertion for fixing hold time only is available

under HFI algorithm.

Example
set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_hfi_use_combo_cell true

slk_hfi_use_combo_cell 1120
Tweaker™ Variables Version T-2022.03

set slk_delay_insertion_combo_cell_list { BUFX4 DLY02 BUFX4 : \

INVX4 DELY03 INVX4 }

...

slkfix -hold -all

See also
slk_delay_insertion_combo_cell_list

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.*.tcl

slk_hfi_use_combo_cell 1121
Tweaker™ Variables Version T-2022.03

slk_hfi_use_same_always_on_cell
# Use same always on cell candidate from driver or sink in high fanout insertion

algorithm

Type
Boolean

Default
false

Description
By default, Tweaker will honor the "slk_delay_insertion_buff_list" or

"slk_repeater_insertion_buff_list" always on buffer list for always net in

the high fanout insertion (HFI) mode.

However, If this variable is set to true, Tweaker will reference the driver

or sink always on buffer as the insertion buffer candidate list during the

HFI algorithm.

Currently, use same always on cell candidate only available under HFI

algorithm.

slk_hfi_use_same_always_on_cell 1122
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion true

set slk_hfi_use_same_always_on_cell true

...

slkfix -hold -all

See also
slk_fix_hold_by_delay_insertion

slk_fix_hold_by_high_fanout_insertion

slk_hfi_use_same_always_on_cell 1123
Tweaker™ Variables Version T-2022.03

slk_hfs_inverter_only
# Variable which restrains Tweaker to use only the inverter pairs insertion during HFS algorithm.

Type
Boolean

Default
false

Description
By setting this variable true, user can narrow the candidates for the HFS

algorithm to inverters only. It implies that only inverter pairs insertion

is allowed by the HFS algorithm during max transition/capacitance violations

fixing. Regular repeater buffers are forbidden even if they are specified

in the repeater buffer list.

The inverter candidates shall be specified within the Tweaker variable

"slk_repeater_insertion_inverter_list".

Example
set slk_fix_max_trans_by_repeater_insertion true

slk_hfs_inverter_only 1124
Tweaker™ Variables Version T-2022.03

set slk_fix_max_trans_hfs_v2 true

set slk_hfs_inverter_only true

set slk_repeater_insertion_inverter_list { INVX2 INVX4 }

...

slkfix -max_trans -all

See also
slk_repeater_insertion_inverter_list

slk_hfs_use_inverter

slk_hfs_inverter_only 1125
Tweaker™ Variables Version T-2022.03

slk_hfs_use_inverter
# Enables or disables the insertion of inverter pairs during HFS algorithm.

Type
Boolean

Default
false

Description
By default, Tweaker will only allow the repeater buffers insertion

during the transition/capacitance violations fixing.

By setting this variable to true, user can enable the insertion of inverter

pairs during fixing maximum transition/capacitance violations with HFS

algorithm.

The inverter candidates can be specified in

"slk_repeater_insertion_inverter_list" Tweaker variable.

Example
set slk_fix_max_trans_by_repeater_insertion true

slk_hfs_use_inverter 1126
Tweaker™ Variables Version T-2022.03

set slk_fix_max_trans_hfs_v2 true

set slk_hfs_use_inverter true

set slk_repeater_insertion_inverter_list { INVX2 INVX4 }

set slk_repeater_insertion_buff_list { BUFX2 BUFX4 }

...

slkfix -max_trans -all

See also
slk_repeater_insertion_inverter_list

slk_hfs_inverter_only

slk_hfs_use_inverter 1127
Tweaker™ Variables Version T-2022.03

slk_hfts_auto_threshold
# Tweaker variable to define the threshold of fanout enabling the HFTS.

Type
Integer

Default
32

Description
This variable works only when the feature of HFTS is enabled by setting

the "slk_fix_drv_by_hfts" variable to true.

When HFTS (high fanout tree synthesis) is enabled. Tweaker will consider

the current violation net's fanout to decide either the HFS or HFTS will

take place to fix the current drv violation.

When the current violation net's fanout is larger than the value defined

in this variable, HFTS will take place, otherwise HFS will take place.

Example
set slk_hfts_auto_threshold 64

slk_hfts_auto_threshold 1128
Tweaker™ Variables Version T-2022.03

slkfix -max_trans -all

See also
slk_fix_drv_by_hfts

slk_hfts_auto_threshold 1129
Tweaker™ Variables Version T-2022.03

slk_hide_dorado_latch_report
# Enables or disables Tweaker to show paths from latch report on GUI.

Type
Boolean

Default
true

Description
By enabling this variable to hide paths from latch report on GUI to avoid

distracting users from seeing the real violation paths.

Example
set slk_hide_dorado_latch_report false

See also
N/A

slk_hide_dorado_latch_report 1130
Tweaker™ Variables Version T-2022.03

slk_high_drive_keep_slew_factor
# Specifies the slew factor tolerance for high-driving buffers while keeping slew mode activation.

Type
Float

Default
1.15

Description
When "*keep_long_wire_slew" variables are set to true or SI avoidance is

enabled, each ECO action will trigger the "keep slew" mechanism in Tweaker

to protect the transition from becoming worse.

The regular buffer/delay cells which are inserted near to the sink pins will

honor "slk_keep_slew_factor" variable as transition degradation tolerance

factor. Meanwhile, high-driving buffer will honor the factor specified in

this variable for the same purpose.

A high-driving buffer which is inserted as the last cell member of delay

buffer chain near to the driving pin of a long wire is allowed to have a

"scaled" output transition based on that of the original driver of

the long wire before the insertion. Users can set a number larger than 1.0

slk_high_drive_keep_slew_factor 1131
Tweaker™ Variables Version T-2022.03

to this variable to allow the degradation of the output transition on the

long wire, or a number smaller than 1.0 to constrain the output transition

even more.

A larger value of this variable means a bigger transition degradation

tolerance.

Example
set slk_delay_insertion_keep_long_wire_slew true

set _slk_si_avoidance true

set slk_high_drive_keep_slew_factor 1.25

...

set slk_delay_insertion_high_drive_buff_list { BUFX8 BUFX12 BUFX16 }

...

slkfix -hold -all

See also
slk_delay_insertion_high_drive_buff_list

slk_keep_slew_factor

slk_high_drive_keep_slew_factor 1132
Tweaker™ Variables Version T-2022.03

slk_hold_insertion_through_path_threshold
# To define the minimum through path count threshold of target net for hold

insertion.

Type
Integer

Default
0

Description
By default, Tweaker will have its own algorithm to decide the best net of

the delay insertion, which is the common point ideally.

On the contrary, if this variable is larger than 0, it will force Tweaker to

insert buffer on the through path count larger than this threshold.

The advantage of this feature is that the early stage ECO operation can only

focus on the common point. Then, the last stage ECO operation can fix the

remain non-common hold violation.

This variable only works when either "slk_fix_hold_by_delay_insertion".

slk_hold_insertion_through_path_threshold 1133
Tweaker™ Variables Version T-2022.03

Example
...

set slk_fix_hold_by_delay_insertion true

set slk_hold_insertion_through_path_threshold 100

...

slkfix -hold -all

See also
slk_fix_hold_by_delay_insertion

slk_hold_insertion_through_path_threshold 1134
Tweaker™ Variables Version T-2022.03

slk_hold_target_slk
# Defines the hold target slack during the setup and hold autofix.

Type
Float

Default
0.01

Description
While performing hold autofix, this variable defines the target slack.

Tweaker will honor this variable and fix as much as it can to satisfy this

target slack. The bigger this value means more aggressive hold autofix is

demanded by user.

While performing setup autofix, this variable acts as hold margin constraint

that have to be reserved. The smaller this value means more aggressive setup

autofix is demanded by user.

Example
set slk_hold_target_slk 0.005

slk_hold_target_slk 1135
Tweaker™ Variables Version T-2022.03

See also
slk_setup_target_slk

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.*.tcl

slk_hold_target_slk 1136
Tweaker™ Variables Version T-2022.03

slk_hold_worst_slack
# Indicate hold worst slack in specified corner

Type
Floating

Default
empty

Description
This is not built-in variable.

Array slk_hold_worst_slack is created after command "slkdc

-check_slack_consistency".

It contains the hold worst slack value for each created corner.

Array index is corner name.

Example
[ CMD ] printvar slk_corner_list

Tweaker Built-in Value Default Value

----------------------------------------------------------------------------

slk_hold_worst_slack 1137
Tweaker™ Variables Version T-2022.03

slk_corner_list ss_cbest_norm ff_cbest_norm ### (empty)

[ CMD ] printvar slk_hold_worst_slack_corner

Tweaker Built-in Value Default Value

----------------------------------------------------------------------------

slk_hold_worst_slack_corner ff_cbest_norm ### (empty)

[ CMD ] printvar slk_hold_worst_slack($slk_hold_worst_slack_corner)

User Defined Value

----------------------------------------------------------------------------

slk_hold_worst_slack(ff_cbest_norm) -0.287

[ CMD ] printvar slk_hold_worst_slack*

Tweaker Built-in Value Default Value

----------------------------------------------------------------------------

slk_hold_worst_slack_corner ss_cworst_norm ### (empty)

User Defined Value

----------------------------------------------------------------------------

slk_hold_worst_slack(ff_cbest_norm) -0.287

slk_hold_worst_slack(ss_cbest_norm) -0.070

See also
slk_corner_list

slk_setup_worst_slack_corner

slk_hold_worst_slack_corner

slk_setup_worst_slack

slk_hold_worst_slack 1138
Tweaker™ Variables Version T-2022.03

slk_normalized_factor

slk_hold_worst_slack 1139
Tweaker™ Variables Version T-2022.03

slk_hold_worst_slack_corner
# Indicate the corner name which contains the hold worst slack

Type
String

Default
Empty

Description
This is read only variable. The default value is empty.

After the command "slkdc -check_slack_consistency" executed, slack corners

are built.

This variable indicates the corner which contains the hold worst slack.

The following commands will update the slack database. When the hold worst

slack in TWF is updated, the hold worst slack corner name is also updated in

this variable.

slkfix (for autofix)

slkdb -ignore_......

slkdb -dont_touch_......

slkdb -ignore_if_twf_slack

slk_hold_worst_slack_corner 1140
Tweaker™ Variables Version T-2022.03

slkdb -update_twf_by_path

slkdb -update_twf_by_pba_endpoint

slkdb -update_twf_endpoint

add_slk_uncertainty

Example
[ CMD ] printvar slk_hold_worst_slack_corner

Tweaker Built-in Value Default Value

-------------------------------------------------------------------------

slk_hold_worst_slack_corner ff_cbest_norm ### (empty)

See also
slk_corner_list

slk_setup_worst_slack_corner

slk_hold_worst_slack

slk_setup_worst_slack

slk_normalized_factor

slk_hold_worst_slack_corner 1141
Tweaker™ Variables Version T-2022.03

slk_ignore_better_slew_if_wirelength_lesser_than
# Length threshold which enable Tweaker to skip the slew checking.

Type
Float

Default
50.0

Description
If the violated net is fit to one of the criteria such as wire length or

coupling C factor, the default setting of Tweaker SI avoidance feature will

perform the slew checking during the ECO process.

Tweaker offers the ability to skip the slew checking for those violated nets

with smaller length compared to the length threshold specified in this

variable.

Example
set slk_ignore_better_slew_if_wirelength_lesser_than 50

slk_ignore_better_slew_if_wirelength_lesser_than 1142
Tweaker™ Variables Version T-2022.03

See also
N/A

slk_ignore_better_slew_if_wirelength_lesser_than 1143
Tweaker™ Variables Version T-2022.03

slk_ignore_couple_c_if_wirelength_lesser_than
# Tweaker variable to ignore the keep slew checking.

Type
Float

Default
200.0

Description
If the violated net is fit to one of the criteria such as wire length or

coupling C factor, the default setting of Tweaker SI avoidance feature will

perform the slew checking during the ECO process.

Somehow to fix more violations we are able to force skipping criteria of

coupling c factor constrained by the value of variable

"slk_max_couple_c_factor" if violation net is with its net length less than

the value specified here.

In Tweaker, the criteria of coupling C factor is constrained by

"slk_max_couple_c_factor" Tweaker variable. However Tweaker offers the

ability to skip that criteria for the violated nets if their wire length is

smaller than the length threshold value specified in this variable in order

slk_ignore_couple_c_if_wirelength_lesser_than 1144
Tweaker™ Variables Version T-2022.03

to further increase its fix rate.

Example
set slk_ignore_couple_c_if_wirelength_lesser_than 200

See also
N/A

slk_ignore_couple_c_if_wirelength_lesser_than 1145
Tweaker™ Variables Version T-2022.03

slk_ignore_derate_limitation
# Enables to ignore the limitation of derate defined in path report.

Type
Boolean

Default
false

Description
By default, Tweaker reads the derate value from path report if the variable

"slk_ignore_path_derate" is set to false.

However,

the value defined in report are limited with the lower bound 0.4 and higher

bound 1.6 when reading into Tweaker to avoid unexpectedly incorrect setting.

By setting this variable to true to disable the limitation of reading the

derate which is very large or small from path report.

Example
set slk_ignore_derate_limitation true

slk_ignore_derate_limitation 1146
Tweaker™ Variables Version T-2022.03

set slk_ignore_path_derate false

...

slkdc -check_slack_consistency

See also
slk_ignore_path_derate (var)
set_timing_derate (cmd)

slk_ignore_derate_limitation 1147
Tweaker™ Variables Version T-2022.03

slk_ignore_drv
# Enables or disables the DRV checking.

Type
Boolean

Default
false

Description
By default, Tweaker will check the transition/capacitance constrained by

drv factor, max trans drv values, and keep slew value at each Eco action.

If this variable is set to true, Tweaker will skip any checking mentioned

above during performing the Eco action. This setting may increase the

fixing rate with higher risk of transition/capacitance impact trade-off.

Example
set_drv_factor 0.7

set slk_ignore_drv true

...

slk_ignore_drv 1148
Tweaker™ Variables Version T-2022.03

slkfix -hold -all

See also
slk_drv_factor

slk_fix_hold_max_trans_drv

slk_fix_setup_max_trans_drv

slk_power_eco_max_trans_drv

slk_delay_insertion_keep_long_wire_slew

slk_auto_sizing_keep_long_wire_slew

slk_ignore_drv 1149
Tweaker™ Variables Version T-2022.03

slk_ignore_hard_macro
# Enable or disable the Tweaker's smart update macro related timing arcs

function.

Type
Boolean

Default
true

Description
If this variable is set to its default value of true, Tweaker will do a

smart update hard macro related timing arcs instead of update them

exhaustively. This smart update greatly reduces the run time, so that users

are strongly suggested to keep the default value of this variable as true.

Example
set slk_ignore_hard_macro true

See also

slk_ignore_hard_macro 1150
Tweaker™ Variables Version T-2022.03

N/A

slk_ignore_hard_macro 1151
Tweaker™ Variables Version T-2022.03

slk_ignore_path_delta
# Ignores delta column when reads path reports.

Type
Boolean

Default
false

Description
During violation report generation, user may dump the crosstalk delta value

into the report.

When this variable is set to its default value of false, then Tweaker will

honor the crosstalk delta value.

On the contrary, when this variable is set to true, then Tweaker will not

honor the crosstalk delta value even if it is existed in the violation

report.

Since it's recommended to use simple flow whose SDF will already contain of

the SI value, its strongly recommended to set this variable to true.

This variable should be applied before any "slackin" command.

slk_ignore_path_delta 1152
Tweaker™ Variables Version T-2022.03

Example
set slk_ignore_path_delta true

begin_corner

...

twfin ..

slackin ..

...

end_corner

See also
N/A

slk_ignore_path_delta 1153
Tweaker™ Variables Version T-2022.03

slk_ignore_path_derate
# Tweaker variable to ignore derate info within input slack paths reports.

Type
Boolean

Default
false

Description
Generally there are two kinds of timing Eco flow in Tweaker, one is called

normal flow and the other is called simple flow. The key difference between

these two flows is whether the contents of SDF file is including derate

effect or not. The derate at STA may come from AOCV/POCV/LOCV table or OCV

derate by set STA commands.

If SDF includes the derate effect and fed to Tweaker, it is called "simple

flow", otherwise if SDF itself does not include the derate effect, it is

called "normal flow".

Most of our users will adopt the simple flow to fit their own design flow,

under this circumstance in order not to let Tweaker apply the derate info

(derate column or derate header) in the path report and cause double count,

slk_ignore_path_derate 1154
Tweaker™ Variables Version T-2022.03

this variable must be set true.

When setting this variable to true, set_timing_derate doesn't take effect.

report_timing_derate won’t show the correct net derate values.

set_timing_dertate doesn’t have derating effect on net delay in ECO and

report_delay_calculation command.

If users chooses the normal flow where SDF does not have derate effect, this

variable must be kept false to let Tweaker apply the derate info from the

path report or set_timing_dertate command to calculate final delay correctly.

The report priority will higher than command.

If this variable is not properly set with either simple flow or normal flow,

the correlation and QoR of ECO could be unsatisfied.

Example
set slk_ignore_path_derate true

...

slkdc -check_slack_consistency

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/general_script/general_settings

.tcl

slk_ignore_path_derate 1155
Tweaker™ Variables Version T-2022.03

slk_ignore_trans_ceff_offset
# To ignore any transition/effective capacitance offset value.

Type
Boolean

Default
false

Description
If user realizes there is any miscalculation of "transition offset" or

"effective capacitance offset" inside Tweaker which will cause any

inaccurate timing update, you can ignore the process of obtaining the offset

values and use the transition and capacitance value defined in the input data

directly by setting this variable to true.

For general cases, this variable is not suggested to be set to true.

Normally, user will modify this variable only for some cases under Metal

ECO mode where user expects Tweaker to generate transition/capacitance

report.

slk_ignore_trans_ceff_offset 1156
Tweaker™ Variables Version T-2022.03

Example
set metal_eco_mode true

...

set slk_ignore_trans_ceff_offset true

gen_slack_report -slew_greater_than .. -cap_greater_than ..

See also
N/A

slk_ignore_trans_ceff_offset 1157
Tweaker™ Variables Version T-2022.03

slk_ignore_twf_generated_clk
# Disables the tracing between source/generated clock.

Type
String

Default
false

Description
By default, Tweaker will trace between source/generated clock during TWF

file parsing to identify more clock components. Users may reduce the

tracing run time by setting this variable to true.

Example
set slk_ignore_twf_generated_clk true

See also
N/A

slk_ignore_twf_generated_clk 1158
Tweaker™ Variables Version T-2022.03

slk_ignore_twf_sdc_session
# ignore sdc session while parsing twf.

Type
Boolean

Default
false

Description
To reduce runtime while parsing twf, user can enable this variable to ignore

sdc session.

Example
set slk_ignore_twf_sdc_session true

See also
N/A

slk_ignore_twf_sdc_session 1159
Tweaker™ Variables Version T-2022.03

slk_ignore_vt_rule_checking_for_undefined_cell
# Enables or disables the VT rule checking for undefined cells.

Type
Boolean

Default
false

Description
For the advanced process like 20nm or below, Tweaker have min VT width

rules checking. During the ECO process, if Tweaker find that some cells

didn't define any VT layer, Tweaker will block this ECO by B210.

Consequently, Tweaker provide this variable to relax this constraint to

enable the VT layer cell can be swapped to non-VT layer definition cells.

Example
set enable_cell_width_spacing_rule true

lefin -tech tech.lef

lefin std.lef

slk_ignore_vt_rule_checking_for_undefined_cell 1160
Tweaker™ Variables Version T-2022.03

...

set slk_ignore_vt_rule_checking_for_undefined_cell true

...

slkfix -setup -all

See also
enable_cell_width_spacing_rule

set_min_vt_width

report_min_vt_width_rules

report_min_vt_width_violation

slk_ignore_vt_rule_checking_for_undefined_cell 1161
Tweaker™ Variables Version T-2022.03

slk_insert_allow_overlap_preferred_region
# Tweaker vars to allow overlap on ideal point.

Type
boolean

Default
false

Description
By default, Tweaker will base on give up buffer distance to find the space

for inserted cells. If there is no space around, Tweaker will just overlap

with STD cells. However, if under certain case user allows overlap happens

not only on STD cells but also macro, then this is the var to help.

Example
set slk_insert_allow_overlap_preferred_region true

# start manual eco and allows overlap happens on both std/macro.

See also

slk_insert_allow_overlap_preferred_region 1162
Tweaker™ Variables Version T-2022.03

N/A

slk_insert_allow_overlap_preferred_region 1163
Tweaker™ Variables Version T-2022.03

slk_insert_allow_touch_assign_net
# Enable or disable the ability to perform the insertion ECO on the assign net in Tweaker

Type
boolean

Default
false

Description
By default, Tweaker will not perform the insertion ECO on the assign-net

since some APR tool don't have the corresponding command to support this

kind of ECO.

When this variable is set to true, then Tweaker will be able to insert on

the assign-net.

When this variable is set to true, it's highly recommended to implement

the ECO by using either "high-level ECO TCL" or NETLIST with DEF".

Example
set slk_insert_allow_touch_assign_net true

slk_insert_allow_touch_assign_net 1164
Tweaker™ Variables Version T-2022.03

See also
ecotclout -high_level [-icc|-icc2|-soce|-innovus|-atop|-olympus]

verilogout

defout

slk_insert_allow_touch_assign_net 1165
Tweaker™ Variables Version T-2022.03

slk_insert_count_limit
# Specifies the limitation during the insertion ECO for hold, setup, and DRV autofix

Type
integer

Default
empty

Description
This variable specifies the maximum buffer/delay-cell count that can be

inserted for each eco step.

Example
set slk_insert_count_limit 5

See also
NA

slk_insert_count_limit 1166
Tweaker™ Variables Version T-2022.03

slk_insert_delay_count_limit
# Specifies the insert instance count limitation during the insert delay autofix operation.

Type
integer

Default
10

Description
This variable specifies the maximum buffer/delay-cell count that can be

inserted for each insert delay step.

Example
set slk_insert_delay_count_limit 20

See also
slk_insert_count_limit

slk_insert_delay_count_limit 1167
Tweaker™ Variables Version T-2022.03

slk_insert_enable_routing_path_congestion_aware
# Conservative routing congestion aware insertion related variable.

Type
Boolean

Default
false

Description
When congestion aware feature is enabled by setting

"slk_congestion_aware_insertion" variable to true. Tweaker inserts ECO cell

on the specified lower routing congestion grid. If we turn on this variable,

Tweaker inserts ECO cell along with grids with global route approach which

routing congestion have to lower than the specified. To enable this

variable, we get more controllable ECO routing result in 3rd party tool. But

the fixing rate may not be better than disabling that.

Example
# Conservative routing congestion aware insertion

slk_insert_enable_routing_path_congestion_aware 1168
Tweaker™ Variables Version T-2022.03

defin -route ..

create_congestion_db ..

# we can also create "Grid DB", please reference

# "create_design_analysis_grid_db"

...

set slk_congestion_aware_insertion true

set slk_insert_enable_routing_path_congestion_aware true

set slk_update_congestion_map true

slkfix -hold -all

...

See also
slk_congestion_aware_search_range (var)
slk_congestion_aware_threshold (var)
slk_update_congestion_map (var)
design_analysis_grid_height_by_row (var)
congestion_map_grid_size_by_row (var)
design_analysis_collecting_mode (var)
create_congestion_db (cmd)
free_congestion_db (cmd)
create_design_analysis_grid_db (cmd)
remove_design_analysis_grid_db (cmd)
get_grids (cmd)
set_resource_window (cmd)
add_blockage (cmd)
delete_blockage (cmd)
draw (cmd)

slk_insert_enable_routing_path_congestion_aware 1169
Tweaker™ Variables Version T-2022.03

slk_insert_placement_blockage_min_width
# Tweaker variable to define the thin blockage becoming obstacles during

insertion.

Type
Integer

Default
5

Description
When insertion happens the placement blockage will affect the global route

result. For some very thin placement blockages it is not meant to be there

then user can specify a threshold here to prevent those ones becoming

obstacles during global route estimating rc. Default value is 5 minimum row

height.

Example
set slk_insert_placement_blockage_min_width 10

...

slk_insert_placement_blockage_min_width 1170
Tweaker™ Variables Version T-2022.03

slkfix ...

See also
N/A

slk_insert_placement_blockage_min_width 1171
Tweaker™ Variables Version T-2022.03

slk_insert_recognize_macro_power_domain_by_net
# Enables to extend the usable power domain to the logical nearst domain.

Type
Boolean

Default
false

Description
By default, Tweaker would not reference to Macro/Mini-design's power domain

for autofix insertion unless there is always-on attribute defined on the

related pin.

However, if the power domain of Macro/Mini-design is independently defined

from UPF/CPF, by enabling this variable to look for the usable power domain

of the logical nearest module for autofix insertion.

Example
set slk_fix_hold_by_delay_insertion true

set slk_insert_recognize_macro_power_domain_by_net true

slk_insert_recognize_macro_power_domain_by_net 1172
Tweaker™ Variables Version T-2022.03

...

slkfix -hold -all

See also
slk_insert_recognize_mini_design_power_domain_by_net (var)
set_always_on_pin (cmd)

slk_insert_recognize_macro_power_domain_by_net 1173
Tweaker™ Variables Version T-2022.03

slk_insert_recognize_mini_design_power_domain_by_net
# Enables to extend the usable power domain to the logical nearst domain.

Type
Boolean

Default
false

Description
By default, Tweaker would not reference to Macro/Mini-design's power domain

for autofix insertion unless there is always-on attribute defined on the

related pin.

However, there is still no resource for insertion if the power domain of

Macro/Mini-design is independent defined from UPF/CPF.

In this case, by enabling this variable to look for the usable power domain

of the logical nearest module for autofix insertion.

Example
set slk_fix_hold_by_delay_insertion true

slk_insert_recognize_mini_design_power_domain_by_net 1174
Tweaker™ Variables Version T-2022.03

set slk_insert_recognize_mini_design_power_domain_by_net true

...

slkfix -hold -all

See also
slk_insert_recognize_macro_power_domain_by_net (var)
set_timing_derate (cmd)

slk_insert_recognize_mini_design_power_domain_by_net 1175
Tweaker™ Variables Version T-2022.03

slk_insert_third_power_domain_without_logical_limit
# Enables or disables Tweaker to insert buffer even when logical and physical

power domain are mismatched.

Type
Boolean

Default
false

Description
Enabling this variable allows Tweaker to insert buffer even if the logical

and physical power domain of the inserted buffer would be mismatched.

After insertion, another Tweaker command [CMD] upfout can dump out a partial

UPF which contains those power-domain-mismatched buffers' power definition.

Example
set slk_insert_third_power_domain_without_logical_limit true

...

upfout

slk_insert_third_power_domain_without_logical_limit 1176
Tweaker™ Variables Version T-2022.03

See also
upfout (cmd)

slk_insert_third_power_domain_without_logical_limit 1177
Tweaker™ Variables Version T-2022.03

slk_insertion_dont_touch_complex_cell
# Enable or disable this variable to insert on complex cell

Type
Boolean

Default
false

Description
As complex cells are set dont_touch, Tweaker normally does not do insertion

on this type of cells by default. If user would like to allow eco, please

enable this variable to insert buffers.

Example
set slk_insertion_dont_touch_complex_cell true

See also
slk_power_eco_dont_touch_complex_cell

slk_insertion_dont_touch_complex_cell 1178
Tweaker™ Variables Version T-2022.03

slk_ir_drop_aware_defrag
# IR drop aware defrag autofix ECO related variable.

Type
Boolean

Default
false

Description
When doing defrag autofix ECO, if this variable is set to true,

Tweaker takes the IR drop information as the cost reference, and

adjusts the priority and sequence to move instances in defrag ECO

process. It helps not to worsen the IR drop of the instances.

Licenses for irdrop ECO and defrag ECO are both required.

Example
irdropin irdrop_dvd.rpt

slkfix -create_ir_drop_eco_domain -percentage 12 -guardband 10

slkfix -add_window 100 200 150 450

slk_ir_drop_aware_defrag 1179
Tweaker™ Variables Version T-2022.03

slkfix -create_eco_domain_by_window

slkdc -check_slack_consistency

...

set avoid_space_fragmentation_by_cell { DELHVT05 }

...

set slk_ir_drop_aware_defrag true

slkfix -defrag

See also
avoid_space_fragmentation_by_cell

slk_defrag_cell_naming

slk_fix_defrag_grouping_cell

irdropin (cmd)

slk_ir_drop_aware_defrag 1180
Tweaker™ Variables Version T-2022.03

slk_ir_drop_keepout_factor
# Define keepout width by multiplier factor for ir drop violated instances in

autofix eco.

Type
Float

Default
0.0

Description
If users want to reserve some space next to ir drop violated cells for

further use, the keepout factor is the width multiplier to define the

keepout width.

In ir drop keepout region, Tweaker will try not to place eco cells in

it during autofix eco.

This is soft placement rule during autofix eco.

Example
set slk_ir_drop_keepout_factor 1.0

slk_ir_drop_keepout_factor 1181
Tweaker™ Variables Version T-2022.03

- - - - - - ----------------- - - - - - -

| | original | |

| keepout | BUF | keepout |

| | width | |

- - - - - - ----------------- - - - - - -

<BUF*1.0/2 ><=== 1.2 um ===>< BUF*1.0/2 >

<=============== 2.4 um ================>

See also
slk_ir_drop_aware_defrag

slkfix (cmd)
slkfix (cmd)

[-guardband float]

slk_ir_drop_keepout_factor 1182
Tweaker™ Variables Version T-2022.03

slk_ir_eco_min_improved_ratio
# Specifies the minimum improved IR drop ratio requirement for IR ECO.

Type
Float

Default
0.0

Description
This variable specifies the minimum improved IR drop ratio value for each

IR ECO operation to be performed. If the slack value after the IR ECO operation

is smaller than the value specified in this variable, this operation will

not be executed.

Example
set slk_fix_ir_eco_by_sizing true

set slk_ir_eco_min_improved_ratio 0.0001

...

slkfix -ir_eco

slk_ir_eco_min_improved_ratio 1183
Tweaker™ Variables Version T-2022.03

See also

slk_ir_eco_min_improved_ratio 1184
Tweaker™ Variables Version T-2022.03

slk_ir_eco_target_dropped_ratio
# Defines the IR drop target ratio during IR ECO.

Type
Float

Default
0.0

Description
While performing IR ECO autofix, this variable defines the target IR drop ratio.

Tweaker will honor this variable and fix as much as it can to satisfy this target

ratio. The smaller of this value means more aggressive IR ECO which is demanded

by user.

Example
set slk_ir_eco_target_dropped_ratio 0.15

See also

slk_ir_eco_target_dropped_ratio 1185
Tweaker™ Variables Version T-2022.03

slk_keep_clk_comp_for_each_mode
# To keep mode information for the clock component.

Type
Boolean

Default
false

Description
When this variable is enabled, Tweaker will keep mode information

for the clock component.

Example
...

set slk_keep_clk_comp_for_each_mode true

begin_corner cworst_ss

set_group -lib -name ss

set_group -sdf -name cworst_ss

set_group -spef -name cworst

slk_keep_clk_comp_for_each_mode 1186
Tweaker™ Variables Version T-2022.03

twfin -mode func ./func.twf

twfin -mode scan ./scan.twf

end_corner cworst_ss

...

See also
twfin

slk_keep_clk_comp_for_each_mode 1187
Tweaker™ Variables Version T-2022.03

slk_keep_slew_factor
# Defines the slew factor tolerance during the "keep slew" mechanism.

Type
Float

Default
1.2

Description
When either "*keep_long_wire_slew" variables are set to true or SI avoidance

mechanism is enabled, Tweaker will trigger the "keep slew" mechanism for

each ECO action to prevent any transition aggravation.

This variable gives an extra tolerance of transition becoming worse by a

specified percentage. By default, 20% tolerance is assigned to allow Tweaker

to perform more ECO during the autofix.

A larger value of this variable means a bigger transition degradation

tolerance.

Example

slk_keep_slew_factor 1188
Tweaker™ Variables Version T-2022.03

set slk_delay_insertion_keep_long_wire_slew true

set _slk_si_avoidance true

set slk_keep_slew_factor 1.3

...

slkfix -hold -all

See also
slk_delay_insertion_keep_long_wire_slew

slk_auto_sizing_keep_long_wire_slew

slk_high_drive_keep_slew_factor

slk_keep_slew_factor 1189
Tweaker™ Variables Version T-2022.03

slk_leakage_power_lib
# Specifies the lib corner as the reference leakage corner.

Type
String

Default
empty

Description
When user is proceeding the leakage power calculation, Power ECO or power

report leakage summary (by using slkreport -leakage_power) in particular,

this variable specifies the library group name which contains leakage number

references.

There is a difference between the library referenced for timing calculation

and leakage power calculation.

For the timing calculation, each corner will has their own library group.

So that the timing calculation of each corner will take the corresponding

corner library group as reference. Meanwhile for the leakage power

calculation, only one specific library group will be specified as reference

for every corner.

slk_leakage_power_lib 1190
Tweaker™ Variables Version T-2022.03

If user enable "libin_with_voltage_temperature_information" mode in Tweaker,

User can specify leakage lib by voltage and temperature information.

slk_leakage_power_lib_voltage

slk_leakage_power_lib_temperature

If there are more than one library corner when this variable is not

specified, Tweaker will take the first library corner as its reference.

Example
libin -cell_type std -timing_type worst -name wc "./tsmc90_core_wc.lib"

libin -cell_type std -timing_type worst -name ml "./tsmc90_core_wcl.lib"

set slk_leakage_power_lib ml

See also
libin (cmd)

slk_leakage_power_lib_voltage

slk_leakage_power_lib_temperature

slk_leakage_power_lib 1191
Tweaker™ Variables Version T-2022.03

slk_leakage_power_lib_temperature
# Specifies the lib corner temperature as the reference leakage corner.

Type
String

Default
empty

Description
When user is proceeding the leakage power calculation, Power ECO or power

report leakage summary (by using slkreport -leakage_power) in particular,

this variable specifies the library group name which contains leakage number

references.

There is a difference between the library referenced for timing calculation

and leakage power calculation.

For the timing calculation, each corner will has their own library group.

So that the timing calculation of each corner will take the corresponding

corner library group as reference. Meanwhile for the leakage power

calculation, only one specific library group will be specified as reference

for every corner.

slk_leakage_power_lib_temperature 1192
Tweaker™ Variables Version T-2022.03

If user enable "libin_with_voltage_temperature_information" mode in Tweaker,

User can specify leakage lib by voltage and temperature information.

slk_leakage_power_lib_voltage

slk_leakage_power_lib_temperature

If there are more than one library corner when this variable is not

specified, Tweaker will take the first library corner as its reference.

Example
set libin_with_voltage_temperature_information true

libin -cell_type std -timing_type worst -name wc "./tsmc90_core_wc.lib"

libin -cell_type std -timing_type worst -name ml "./tsmc90_core_wcl.lib"

set slk_leakage_power_lib ml

set slk_leakage_power_lib_voltage 1.0

set slk_leakage_power_lib_temperature 25

See also
libin (cmd)

slk_leakage_power_lib_voltage

slk_leakage_power_lib_temperature

slk_leakage_power_lib_temperature 1193
Tweaker™ Variables Version T-2022.03

slk_leakage_power_lib_voltage
# Specifies the lib corner voltage as the reference leakage corner.

Type
String

Default
empty

Description
When user is proceeding the leakage power calculation, Power ECO or power

report leakage summary (by using slkreport -leakage_power) in particular,

this variable specifies the library group name which contains leakage number

references.

There is a difference between the library referenced for timing calculation

and leakage power calculation.

For the timing calculation, each corner will has their own library group.

So that the timing calculation of each corner will take the corresponding

corner library group as reference. Meanwhile for the leakage power

calculation, only one specific library group will be specified as reference

for every corner.

slk_leakage_power_lib_voltage 1194
Tweaker™ Variables Version T-2022.03

If user enable "libin_with_voltage_temperature_information" mode in Tweaker,

User can specify leakage lib by voltage and temperature information.

slk_leakage_power_lib_voltage

slk_leakage_power_lib_temperature

If there are more than one library corner when this variable is not

specified, Tweaker will take the first library corner as its reference.

Example
set libin_with_voltage_temperature_information true

libin -cell_type std -timing_type worst -name wc "./tsmc90_core_wc.lib"

libin -cell_type std -timing_type worst -name ml "./tsmc90_core_wcl.lib"

set slk_leakage_power_lib ml

set slk_leakage_power_lib_voltage 1.0

set slk_leakage_power_lib_temperature 25

See also
libin (cmd)

slk_leakage_power_lib_voltage

slk_leakage_power_lib_temperature

slk_leakage_power_lib_voltage 1195
Tweaker™ Variables Version T-2022.03

slk_libin_inconsistency_count_limit
# Specifies the count of inconsistency STD cells with respect to libraries.

Type
Integer

Default
20

Description
When some lib cells are inconsistent in libraries, user can specify the

amount of inconsistency lib cells to show in the log.

Example
set slk_libin_inconsistency_count_limit 40

See also
N/A

slk_libin_inconsistency_count_limit 1196
Tweaker™ Variables Version T-2022.03

slk_max_cap_target_slk
# Specify the target slack during fixing max capacitance.

Type
Float

Default
0.01

Description
This is the target slack value for max capacitance when fixing its

violations. Normally, the max capacitance constraint is specified in .lib

files or specifically specified by user at STA.

Example
set slk_max_cap_target_slk 0.1

...

slkfix -max_cap -all

See also

slk_max_cap_target_slk 1197
Tweaker™ Variables Version T-2022.03

slk_max_trans_target_slk

slk_max_fanout_target_slk

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_cap/fix_max_

cap_setting.*.tcl

slk_max_cap_target_slk 1198
Tweaker™ Variables Version T-2022.03

slk_max_couple_c_factor
# Defines the threshold value that will be compared with the ratio result of

"coupling capacitance" to "total capacitance" of a net as one of the aspect of

the net to be specified as weak net.

Type
Float

Default
0.5

Description
This variable only works when SI aware feature is enabled.

In deciding the qualification of the weak nets, Tweaker will take three

aspects into its consideration as below:

1. Wire length

2. Transition value

3. "slk_max_couple_c_factor" variable.

Firstly, Tweaker will calculate the ratio of the "coupling capacitance" to

the "total capacitance" of any net in the design. If the result ratio of the

net is larger than the value specified by this variable, it will be

slk_max_couple_c_factor 1199
Tweaker™ Variables Version T-2022.03

considered a potential SI net and ECO action such as sizing down the driver

of this type of net will not be performed in order to avoid any SI impact

possibility.

The smaller number of this variable result in more SI impact protection.

Example
set slk_fix_hold_enable_si_aware true

set slk_max_couple_c_factor 0.3

...

See also
slk_fix_hold_enable_si_aware

slk_power_eco_enable_si_aware

slk_max_couple_c_factor 1200
Tweaker™ Variables Version T-2022.03

slk_max_dummy_load_cell_count
# Specifies the maximum number of dummy cells which is allowed to be inserted to

a sink pin.

Type
Integer

Default
2

Description
Specifies the maximum number of dummy cells which is allowed to be inserted

on a target sink pins. The larger number may increase the risk of routing

impact possibility.

For the advanced process, user are suggested to specify a smaller number to

this variable to make sure that the fanout of its corresponding net is

limited.

Example
set slk_fix_hold_by_add_dummy_load true

slk_max_dummy_load_cell_count 1201
Tweaker™ Variables Version T-2022.03

set slk_max_dummy_load_cell_count 1

...

slkfix -hold -all

See also
slk_fix_hold_by_add_dummy_load

slk_max_dummy_load_cell_distance

slk_max_dummy_load_cell_count

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.dmy.tcl

slk_max_dummy_load_cell_count 1202
Tweaker™ Variables Version T-2022.03

slk_max_dummy_load_cell_distance
# Specifies the allowed maximum distance of a dummy cell to be shifted from its

sink pin.

Type
Integer

Default
20

Description
Specifies the maximum distance between an inserted dummy load cell and the

location of the target sink pin of the insertion. A dummy load cell is

inserted only if there is enough free space within the range bordered by

this variable. A larger value of this variable may reduce the restriction

border but increases the risk of routing impact issue possibility.

For the advanced process, user are suggested to specify a smaller value to

this variable it to make sure the dummy cell is not deviated too much from

the target sink pin.

slk_max_dummy_load_cell_distance 1203
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_add_dummy_load

set slk_max_dummy_load_cell_distance 10

...

slkfix -hold -all

See also
slk_fix_hold_by_add_dummy_load

slk_max_dummy_load_cell_distance

slk_max_dummy_load_cell_count

add_dummy_cell

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.dmy.tcl

slk_max_dummy_load_cell_distance 1204
Tweaker™ Variables Version T-2022.03

slk_max_fanout_target_slk
# Specifies the target slack during fixing max fanout.

Type
Float

Default
0.01

Description
This is the target slack value for max fanout when fixing its violations.

Normally the max fanout constraint is specified in .lib files.

Example
set slk_max_fanout_target_slk 0.02

...

slkfix -max_fanout -all

See also
slk_max_cap_target_slk

slk_max_fanout_target_slk 1205
Tweaker™ Variables Version T-2022.03

slk_max_trans_target_slk

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_fanout/fix_

max_fanout_setting.*.tcl

slk_max_fanout_target_slk 1206
Tweaker™ Variables Version T-2022.03

slk_max_inst_shift_wo_trial_route
# Controls the level threshold of net changing to decide when net need to be

trial route or not.

Type
Float

Default
6.4

Description
This variable only works when "_slk_keep_rc_for_small_change" is set to

true.

When a net is modified and considered as an ECO net, Tweaker will estimate

the new RC value on this ECO net if the level of net difference (in um) is

larger than the value specified in this variable. In other words, if the

level of net difference is less than the value defined in this variable,

Tweaker will keep using the original net's RC value to save more runtime.

Tweaker also provides "_slk_keep_rc_for_small_change" internal variable to

disable this behavior by setting it to false, so that Tweaker will always

re-estimate the RC value when a net is changed.

slk_max_inst_shift_wo_trial_route 1207
Tweaker™ Variables Version T-2022.03

Example
#1 keep rc if level of net change is less than the value below

set slk_max_inst_shift_wo_trial_route 3

#2 re-estimate rc all the time

set _slk_keep_rc_for_small_change false

See also
_slk_keep_rc_for_small_change

slk_max_inst_shift_wo_trial_route 1208
Tweaker™ Variables Version T-2022.03

slk_max_offset
# Auto-records the maximum offset value after executing "slkdc -check_slack_consistency" command.

Type
Float

Default
empty

Description
After executing "slkdc -check_slack_consistency" command, Tweaker will save

the average offset value into this variable for the following flow control.

Users can use this variable as a threshold to continue or stop the ECO

proceeding by writing the decision statement on a tcl script.

This variable is commonly used to stop the timing fixing operation if the

value recorded in this variable is larger than expected.

Example
...

slkdc -check_slack_consistency

slk_max_offset 1209
Tweaker™ Variables Version T-2022.03

printvar slk_max_offset

See also
slk_avg_offset

slkdc (cmd)

slk_max_offset 1210
Tweaker™ Variables Version T-2022.03

slk_max_path_per_file
# Specifies maximum total number of paths per slack report file during slackin

operation.

Type
Integer

Default
Empty

Description
This variable specifies maximum total number of setup and hold path reports

for each file. Other violation types won't be limited by this variable. If

the user uses the path filter, the ignored path won't be counted also.

The default value is empty and the default maximum total path number is

unlimited.

When this variable is set, the tool only keeps limited total path number in

internal slack db. If paths in the rear part of the report file have worse

slack than paths in the front part of the same file and the path count

reaches the total path limit, the worse ones will be kept.

Users can control the total number of violation count to make sure that

slk_max_path_per_file 1211
Tweaker™ Variables Version T-2022.03

Tweaker Timing ECO can be executed efficiency.

Example
set slk_max_path_per_file 5000

slackin -analysis_type on_chip_variation -ff -slack_range -2.0 0 \

sta_path/setup.rpt.gz

In log file:

......

ignored paths: 17200

ignored paths: 17300

ignored paths: 17400

io time: 00:00:03

Corner Name: func_ss_125_cworsot

Last Modified: 2015/10/30 20:00:20

hier prefix:

path filter: -ff -slack_range -2.0 0

total paths: 5000 (max_path)

ignored paths: 17405

See also
slk_nworst_path_per_file

slk_max_path_per_file 1212
Tweaker™ Variables Version T-2022.03

slk_max_time_borrow
#define max time borrow value

Type
Double

Default
Empty

Description
For latch-based designs, users can use this variable to define the value for

max time borrowed.

Example
set slk_max_time_borrow 1.0

See also
N/A

slk_max_time_borrow 1213
Tweaker™ Variables Version T-2022.03

slk_max_trans_target_slk
# Specifies the target slack during fixing max transition.

Type
Float

Default
0.01

Description
This variable defines the target slack value when fixing the max transition

violations.

Normally, the max transition constraint is specified in .lib files or

specifically specified by user at STA.

The unit of this variable is ns (10^-9).

Example
set slk_max_trans_target_slk 0.01

...

slkfix -max_trans -all

slk_max_trans_target_slk 1214
Tweaker™ Variables Version T-2022.03

See also
slk_max_cap_target_slk

slk_max_fanout_target_slk

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_max_transition/

fix_max_transition_setting.*.tcl

slk_max_trans_target_slk 1215
Tweaker™ Variables Version T-2022.03

slk_merge_twf
# Merges TWF files within the same Tweaker corner.

Type
Boolean

Default
false

Description
If this variable is set to its default value of false, when users input

several TWF files within the same Tweaker corner, Tweaker will update

each TWF file exhaustively which will possibly result in a long run time

issue.

To solve the long run time issue, Tweaker can merge the applied TWF files

which contain the same derate setting (set from "set_timing_derate" command)

into single TWF under the corner and only this merged TWF will get updated.

This variable is suggested to be set to true if multiple TWF files are

imported to the same Tweaker corner.

slk_merge_twf 1216
Tweaker™ Variables Version T-2022.03

Example
set slk_merge_twf true

...

begin_corner

...

twfin ..

slackin ..

twfin ..

slackin ..

twfin ..

slackin ..

...

end_corner

See also
N/A

slk_merge_twf 1217
Tweaker™ Variables Version T-2022.03

slk_min_pulse_width_target_slk
# Specifies the target slack during fixing minimum pulse width.

Type
Float

Default
0.01

Description
This is the target slack value for minimum pulse width when fixing its

violations. Normally, the minimum pulse width constraint is specified

in .lib files or specifically specified by user at STA.

Example
set slk_min_pulse_width_target_slk 0.02

...

slkfix -min_pulse_width -all

See also

slk_min_pulse_width_target_slk 1218
Tweaker™ Variables Version T-2022.03

slk_max_cap_target_slk

slk_max_trans_target_slk

slk_max_fanout_target_slk

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_min_pulse_width/

fix_min_pulse_width_setting.sz.tcl

slk_min_pulse_width_target_slk 1219
Tweaker™ Variables Version T-2022.03

slk_minimize_si
# Tweaker variable to enable or disable the minimize si feature during fix

setup/hold.

Type
Boolean

Default
false

Description
When fix setup/hold with this var enabled, Tweaker will also optimize the

transition on hold/setup paths to see if transition can be improved to help

the paths.

The criteria of which nets to be touched is decided by criteria

"slk_minimize_si_criteria".

Example
set slk_minimize_si true

set slk_minimize_si_criteria 0.2

slk_minimize_si 1220
Tweaker™ Variables Version T-2022.03

slkfix -hold ...

See also
slk_minimize_si

slk_minimize_si 1221
Tweaker™ Variables Version T-2022.03

slk_minimize_si_criteria
# Tweaker variable to decide the criteria of nets to be touched when minimize si

is enabled.

Type
Float

Default
0.050

Description
When fix setup/hold with the var "slk_minimize_si" enabled, Tweaker will

also optimize the transition on hold/setup paths to see if transition can be

improved to help the paths.

The criteria of which nets to be touched is decided by criteria

"slk_minimize_si_criteria".

Example
set slk_minimize_si true

set slk_minimize_si_criteria 0.2

slk_minimize_si_criteria 1222
Tweaker™ Variables Version T-2022.03

slkfix -hold ...

See also
slk_minimize_si

slk_minimize_si_criteria 1223
Tweaker™ Variables Version T-2022.03

slk_new_delay_insertion
# Enable or disables a different approach of normal delay insertion.

Type
Boolean

Default
false

Description
By setting this variable to its default value of false, Tweaker will adopt

normal delay insertion (non-HFI insertion) method which will consider user

specified preferred delay cell distance range to execute the delay buffer

insertion.

When this variable is set to true, Tweaker will enable a different normal

delay insertion method which will give its best effort to follow the

criteria to meet the given delay requirement by using the combination of

delay buffers listed in the delay buffer list without any user specified

preferred delay cell distance restriction.

This feature is for specific usage and not recommended to be set true for

general purpose scenarios.

slk_new_delay_insertion 1224
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_delay_insertion true

set slk_fix_hold_by_high_fanout_insertion false

set slk_new_delay_insertion true

...

slkfix -hold -all

See also
slk_fix_hold_by_delay_insertion

slk_delay_insertion_buff_list

slk_new_delay_insertion 1225
Tweaker™ Variables Version T-2022.03

slk_normalized_derate_ref_corner
# Specify a timing corner as the derating referenced corner.

Type
String

Default
empty

Description
After consistency check stage, Tweaker will pick up a base corner which

has the smallest cell delay compared to other corners, and then define the

normalized factors for corresponding corners based on delay differences.

Users are allowed to specify a timing corner to this variable, Tweaker will

apply the derate setting which is specified by command

"set_normalized_derate" to other corners based on related normalized

factors.

By default, Tweaker will auto apply the worst corner which is the largest

normalized factor corner as the referenced corner after consistency check.

slk_normalized_derate_ref_corner 1226
Tweaker™ Variables Version T-2022.03

Example
set slk_normalized_derate_ref_corner WCL

See also
set_normalized_derate (cmd)

slk_normalized_derate_ref_corner 1227
Tweaker™ Variables Version T-2022.03

slk_nworst_path_per_file
# Specifies number of worst paths per endpoint per slack report file during

slackin operation.

Type
Integer

Default
empty

Description
This variable specifies number of worst paths per endpoint per slack report

file during slackin operation. If the user uses the path filter, the ignored

path won't be counted also.

The default value is empty and the default number is unlimited.

When variables slk_nworst_path_per_file and slk_max_path_per_file are set in

the same time, the tool will keep the nworst path per endpoint and also

limit the total path number per report file.

Users can control the total number of violation count by using nworst value

to make sure that Tweaker Timing ECO can be executed efficiency.

slk_nworst_path_per_file 1228
Tweaker™ Variables Version T-2022.03

Example
set slk_nworst_path_per_file 10

slackin -analysis_type on_chip_variation -ff -slack_range -0.5 0 hold.rpt.gz

In log file:

......

ignored paths: 15200

ignored paths: 15300

ignored paths: 15400

io time: 00:00:03

Corner Name: func_ff_m40_cworsot

Last Modified: 2015/10/30 20:30:00

hier prefix:

path filter: -ff -slack_range -0.5 0

total paths: 1445

ignored paths: 15415

See also
slk_max_path_per_file

slk_nworst_path_per_file 1229
Tweaker™ Variables Version T-2022.03

slk_on_route_buffer_insertion
# Enables or disables the ability of on-route insertion function during DRV,

setup, and/or hold autofix.

Type
Boolean

Default
false

Description
By setting this variable to its default value of false, Tweaker will perform

the insertion operation on the calculated ideal place even if it is not on

the original routing pattern.

On the contrary, when this variable is set to true, Tweaker will perform

the insertion operation along with the original routing pattern of the

violated path.

When this variable is set to true, Tweaker will also reference to

"slk_on_route_search_range" variable as its insertion search range.

slk_on_route_buffer_insertion 1230
Tweaker™ Variables Version T-2022.03

Example
set slk_on_route_buffer_insertion true

set slk_on_route_search_range 5

set slk_fix_hold_by_delay_insertion true

...

slkfix -hold

See also
slk_on_route_search_range

slk_on_route_buffer_insertion 1231
Tweaker™ Variables Version T-2022.03

slk_on_route_search_range
# Specifies the search range during the on-route buffer insertion

Type
Integer

Default
3

Description
This variable defines the search range of insertion operation when on-route

buffer insertion function is activated by setting

"slk_on_route_search_range" variable to true.

A larger search range will increase the possibility of finding a free space,

but with a bigger deviation to the original routing pattern.

For the best (smallest) routing deviation, a smaller search range is

suggested.

Unit site of this variable is "row height".

Example

slk_on_route_search_range 1232
Tweaker™ Variables Version T-2022.03

set slk_on_route_buffer_insertion true

set slk_on_route_search_range 3

...

slkfix -max_trans -all

...

slkfix -hold -all

See also
slk_on_route_buffer_insertion

slk_on_route_search_range 1233
Tweaker™ Variables Version T-2022.03

slk_output_clock_group_comment
# Tweaker dumped ECO TCL with ECO information.

Type
Boolean

Default
false

Description
When this variable is enabled, Tweaker will write clock group and endpoint

information into ECO TCL if the endpoints has violation paths going through.

These information can be further used for post processing such as filtering

out the interested part of ECO result.

Without post processing procedure, users are also able to specify the

filtering options during "ecotclout" command.

Example
set slk_output_clock_group_comment true

...

slk_output_clock_group_comment 1234
Tweaker™ Variables Version T-2022.03

slkfix -setup -all

slkfix -hold -all

...

ecotclout -pt ./ecoout/pt

#===== An example of ECO TCL with clock group and end point info =====

# current_instance

# clk( CLOCK )endpt( U_top/aaa/D )

# current_instance "U_top"

# size_cell U231 BUFX2

# current_instance

### Only dump out ECO operation relative to clock CLK1

ecotclout -pt -clock CLK1

### Filter out ECO operation relative to clock CLK2

ecotclout -pt -ignore_clock CLK2

See also
set slk_output_clock_group_comment true

ecotclout (cmd)

slk_output_clock_group_comment 1235
Tweaker™ Variables Version T-2022.03

slk_output_pin_count_building_entire_cell_domain
# Specify the output pin count threshold for a cell that all pins are monitored during auto fixing.

Type
String

Default
2

Description
During auto fixing, Tweaker will create ECO domain based on specified

target and expand the domain to avoid timing impact.

By default, any cell in the domain with a pin number larger than or

equal to 2, Tweaker will monitor all output pins of the cell to avoid

timing degradation.

Example
set slk_output_pin_count_building_entire_cell_domain 2

See also

slk_output_pin_count_building_entire_cell_domain 1236
Tweaker™ Variables Version T-2022.03

N/A

slk_output_pin_count_building_entire_cell_domain 1237
Tweaker™ Variables Version T-2022.03

slk_page_size
# Specifies the value for allocating memory pool.

Type
Integer

Default
20

Description
Specifies a value to allocate memory pool during auto fixing. The value must

between 10 MB and 100 MB.

This is for internal usage, and user don't need to modify it.

Example
set slk_page_size 30

See also
N/A

slk_page_size 1238
Tweaker™ Variables Version T-2022.03

slk_partition_design_list
# Tweaker auto-generated variable that control the design list of each partition

during auto-partition run

Type
String

Default
empty

Description
When auto-partition is enabled, Tweaker will generate run.tcl for each

partition. This variable is one of the auto-generated variable on the

run.tcl that controls the design list that will be fixed for each partition.

Normally, it's not necessary for user to modify the content of this

variable.

Example
set slk_partition_design_list { sub_1 sub_ 2 }

slk_partition_design_list 1239
Tweaker™ Variables Version T-2022.03

See also
auto_partition

auto_partition_auto_submit

auto_partition_design_list

auto_partition_merge_interface_eco

auto_partition_number

auto_partition_queue_command

slk_partition_if

slk_partition_design_list 1240
Tweaker™ Variables Version T-2022.03

slk_partition_if
# Tweaker auto-generated variable that defines whether the partition is for

interface fixing or not.

Type
Boolean

Default
empty

Description
When auto-partition is enabled, Tweaker will generate run.tcl for each

partition. This variable is one of the auto-generated variable on the

run.tcl that defines whether the partition is for interface fixing or not.

Normally, it's not necessary for user to modify the content of this

variable.

Example
set slk_partition_if true

slk_partition_if 1241
Tweaker™ Variables Version T-2022.03

See also
auto_partition

auto_partition_auto_submit

auto_partition_design_list

auto_partition_merge_interface_eco

auto_partition_number

auto_partition_queue_command

slk_partition_design_list

slk_partition_if 1242
Tweaker™ Variables Version T-2022.03

slk_path_base_analysis
# Enables or disables Tweaker internal PBA mode.

Type
Boolean

Default
false

Description
PBA (Path Base Analysis) mode is based on STA tool environment setting.

Tweaker handles STA data in PBA mode by using "PBA offset" on timing paths

by setting this variable to true.

In normal cell/net delay calculation, SDF is based on the worst transition

time to calculate the timing arc. In PBA mode, the cell/net delay

calculation is based on real path input pin, so the PBA path delay is

different from the path delay reported in the SDF.

When PBA mode is enabled in Tweaker by setting this variable to true, if

PBA offset of slack paths are exceeding default threshold of 250ps, Tweaker

will report the inconsistency error message and continue the run. This PBA

offset threshold can be adjusted through "slk_path_base_analysis_threshold"

slk_path_base_analysis 1243
Tweaker™ Variables Version T-2022.03

variable.

Example
set slk_path_base_analysis true

set slk_path_base_analysis_threshold 200

slkdc -check_slack_consistency

The path slack information show in path view as below:

slack (VIOLATED) -0.3970 PBA Offset (-0.014)

See also
slk_path_base_analysis_threshold

slk_consistency_check_fail

slkdc (cmd)

slk_path_base_analysis 1244
Tweaker™ Variables Version T-2022.03

slk_path_base_analysis_threshold
# Specifies the PBA mode inconsistency threshold.

Type
Integer

Default
250

Description
PBA (Path Base Analysis) mode is based on STA tool environment setting.

Tweaker handles STA data in PBA mode by using "PBA offset" on timing paths.

In normal cell/net delay calculation, SDF is based on the worst transition

time to calculate the timing arc. In PBA mode, the cell/net delay

calculation is based on real path input pin, so the PBA path delay is

different from the path delay reported in the SDF.

Tweaker is able to handle the "PBA offset" inconsistency by using this

variable. When PBA mode is enabled in Tweaker, if "PBA offset" of slack

paths are exceeding the value specified in this variable, Tweaker will

report the inconsistency error.

The unit of this variable is ps (picosecond).

slk_path_base_analysis_threshold 1245
Tweaker™ Variables Version T-2022.03

Example
set slk_path_base_analysis true

set slk_path_base_analysis_threshold 300

slkdc -check_slack_consistency

See also
slk_path_base_analysis

slk_consistency_check_fail

slkdc (cmd)

slk_path_base_analysis_threshold 1246
Tweaker™ Variables Version T-2022.03

slk_path_reduction_with_edge
# Enable or disables the "edge" as a factor during extract report.

Type
Boolean

Default
false

Description
While doing the report extraction, if there are many identical paths,

Tweaker will keep the dominated one. When this variable is set to its

default value of false, the definition of identical paths are simply defined

as paths which is passing through the same instance pins. When this variable

is set to true, the definition of identical paths are not simply the paths

which is passing through the same instance pins but also with same rising

/falling edge on each of it.

In other words, when this variable is set to true, if two paths are passing

through the same instance pins but with different rising/fall edges among

them, these two paths are considered as non-identical paths and both will be

kept in Tweaker during the extract report.

slk_path_reduction_with_edge 1247
Tweaker™ Variables Version T-2022.03

Example
set slk_path_reduction_with_edge true

See also
N/A

slk_path_reduction_with_edge 1248
Tweaker™ Variables Version T-2022.03

slk_path_reduction_with_report_path_count
# Enables the ability to determine the critical corner based on path count

during extracting report.

Type
Boolean

Default
true

Description
During the extract_report operation, Tweaker keeps the worst path only to

reduce the path count. However, sometimes there are more than one path with

the worst slack exist in different corners. By applying this variable to the

default value true, Tweaker will base on the violation count in each corner

to determine the critical corner and keep the corresponding path.

Example
Assume corner A has 200 paths and corner B has 100 paths.

When doing the extract_report, if the path exist in both corner A and B and

slk_path_reduction_with_report_path_count 1249
Tweaker™ Variables Version T-2022.03

has the same slack. The path in corner A will be kept since coner A has more

violation count than corner B.

tweaker_shell> set slk_path_reduction_with_report_path_count true

tweaker_shell> extract_report

See also
extract_report (cmd)

slk_path_reduction_with_report_path_count 1250
Tweaker™ Variables Version T-2022.03

slk_pocv_used_worst_distance_based_derated
# Always use the worst distance derated of every cell for POCV.

Type
Boolean

Default
false

Description
By default, Tweaker will hornor the POCV distance table to calculate the

corresponding distance derated for every cell.

When you enable this variable, Tweaker will always use the worst POCV

distance derated for every cell.

Example
...

read_pocvm -name pocv_ss ./pocv_side_file

...

begin_corner ss

slk_pocv_used_worst_distance_based_derated 1251
Tweaker™ Variables Version T-2022.03

...

set_group -pocv -name pocv_ss

...

end_corner ss

...

...

set slk_pocv_used_worst_distance_based_derated true

...

slkfix -hold -all

See also
read_pocvm

set_group

slk_pocv_used_worst_distance_based_derated 1252
Tweaker™ Variables Version T-2022.03

slk_power_eco_dont_touch_complex_cell
# Don't touch complex cell during Power ECO

Type
Boolean

Default
false

Description
During Tweaker Power ECO, If we don't want Tweaker to touch complex cells

which have two output pins ( Ex. Full_ADDER / Half_ADDER ), we can enable

this variable.

Example
set slk_power_eco_dont_touch_complex_cell true

See also
NA

slk_power_eco_dont_touch_complex_cell 1253
Tweaker™ Variables Version T-2022.03

slk_power_eco_enable_si_aware
# Enables or disables the SI aware mechanism during Power Eco.

Type
Boolean

Default
false

Description
Tweaker itself has the SI aware mechanism for Power Eco and fix hold.

The SI aware mechanism involves the identification of "weak nets" which are

potentially prone to SI. A group of variables with a proper setting combined

with the TWF file is a requirement of the output. The output can be exported

with "-si_aware" option.

This is the main switch for enabling the SI aware feature for Power ECO.

Example
set slk_power_eco_enable_si_aware true

set slk_si_aware_clock_period_factor 0.1

slk_power_eco_enable_si_aware 1254
Tweaker™ Variables Version T-2022.03

set slk_si_aware_null_clock_period 1

set slk_si_aware_long_wire_length 100

set slk_si_aware_long_wire_slew_factor 0.1

set slk_si_aware_long_wire_slew 0.1

set slk_si_aware_short_wire_slew_factor 0.2

set slk_si_aware_short_wire_slew 0.2

...

slkfix -power_eco

See also
slk_si_aware_clock_period_factor

slk_si_aware_null_clock_period

slk_si_aware_long_wire_length

slk_si_aware_long_wire_slew_factor

slk_si_aware_long_wire_slew

slk_si_aware_short_wire_slew_factor

slk_si_aware_short_wire_slew

slk_power_eco_enable_si_aware 1255
Tweaker™ Variables Version T-2022.03

slk_power_eco_enable_vt_ratio
# Tweaker variable to enable or disable the Power Eco vt ratio feature.

Type
Boolean

Default
false

Description
By default Tweaker will do Power Eco for leakage optimization. But when

this variable is enabled, Tweaker's Power Eco will turn into vt ratio

function where its purpose is to honor the user specified vt ratio target

as much as possible without get timing impact.

The available vt types are defined at "slk_vt_cell_naming".

The target vt ratio is defined at "slk_vt_ratio_target".

The tolerance of vt ratio difference is defined at "slk_vt_ratio_tolerance".

The type of vt ratio index is defined at "slk_vt_ratio_type",

which can be "count" or "area".

slk_power_eco_enable_vt_ratio 1256
Tweaker™ Variables Version T-2022.03

Example
set slk_power_eco_enable_vt_ratio true

set slk_vt_cell_naming *LVT* *RVT* *HVT*

set slk_vt_ratio_type count

set slk_vt_ratio_target 0.25 0.4 0.35

set slk_vt_ratio_tolerance 0.02 0.05 0.03

...

slkfix -power_eco

See also
slk_vt_cell_naming

slk_vt_ratio_target

slk_vt_ratio_tolerance

slk_vt_ratio_type

slk_power_eco_enable_vt_ratio 1257
Tweaker™ Variables Version T-2022.03

slk_power_eco_final_stage
# Tweaker variable to enable or disable the final stage of Power ECO

Type
Boolean

Default
false

Description
When Power ECO is executed, usually Tweaker will base on the Power ECO

steps to decide the hurd size to be swapped at once. But there is always

chance that some comp cannot be swapped due to the hurd size is large.

By enabling this variable, after regular Power ECO run Tweaker will

initiate a final stage to find all available candidates and swap them

one by one with some run time cost to achieve the maximum leakage saving.

Example
set slk_power_eco_final_stage

...

slk_power_eco_final_stage 1258
Tweaker™ Variables Version T-2022.03

slkfix -power_eco

See also
N/A

slk_power_eco_final_stage 1259
Tweaker™ Variables Version T-2022.03

slk_power_eco_fix_dominate_transition
# Enables or disables a "extract transition" process during Power Eco.

Type
Boolean

Default
true

Description
By setting this variable to its default variable of true, it will enable

Tweaker to do the bi-direction vt swap. Not only from lower vt cells to

higher vt cells which is to reduce the leakage issue, but also from higher

vt cells to lower vt cells within Power Eco domain to improve transition

for more setup space for further leakage reduction operations.

Example
set slk_power_eco_fix_dominate_transition false

See also

slk_power_eco_fix_dominate_transition 1260
Tweaker™ Variables Version T-2022.03

$Tweaker_Install_DIR/etc/template/tweaker_t1/power_eco/power_eco.tcl

slk_power_eco_fix_dominate_transition 1261
Tweaker™ Variables Version T-2022.03

slk_power_eco_ignore_power_net
# Enables or disables the tie high/low cell related domain.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will "not"

create the tie high/low cell related domain. Hence some special cells such

as spare cells which are connected to tie high/low will not be included

during the creation of Power Eco domain. By setting this variable to false,

Tweaker will be able to swap those cells according to the mapping rule.

Example
set slk_power_eco_ignore_power_net false

See also

slk_power_eco_ignore_power_net 1262
Tweaker™ Variables Version T-2022.03

N/A

slk_power_eco_ignore_power_net 1263
Tweaker™ Variables Version T-2022.03

slk_power_eco_max_trans_drv
# Specifies the honored maximum transition value during Power ECO.

Type
Float

Default
empty

Description
By setting this variable to its default value of an empty value, Tweaker

will monitor the transition value and compare it with the value which is

defined in Tweaker "set_drv_factor" command or "slk_drv_factor" variable.

If this variable is specified, Tweaker will also take this absolute value

as consideration instead of comparing it to DRV factor only during the

Power ECO.

Example
set_drv_factor 0.8

set slk_power_eco_max_trans_drv 0.3

slk_power_eco_max_trans_drv 1264
Tweaker™ Variables Version T-2022.03

...

slkfix -power_eco

See also
slk_fix_hold_max_trans_drv

slk_fix_setup_max_trans_drv

slk_power_eco_max_trans_drv 1265
Tweaker™ Variables Version T-2022.03

slk_power_eco_post_legalize
# Legalizes location for overlapped eco cells during Power Eco.

Type
Boolean

Default
false

Description
During Power ECO process, if "slk_auto_fix_fit_to_free_space" variable is

set to true, Tweaker will consume more run time during Power ECO process for

each swap. To speed up the entire Power Eco process, user are suggested to

set the variable "slk_auto_fix_fit_to_free_space" to false while set this

variable true to do the legalization at the end of Power Eco all at once.

Example
set slk_power_eco_post_legalize true

See also

slk_power_eco_post_legalize 1266
Tweaker™ Variables Version T-2022.03

$Tweaker_Install_DIR/etc/template/tweaker_t1/power_eco/power_eco.tcl

slk_power_eco_post_legalize 1267
Tweaker™ Variables Version T-2022.03

slk_power_eco_priority_list
# Tweaker variable to decide the priority of vt cells to be swapped.

Type
String

Default
empty

Description
By default (Power ECO 2013) Tweaker will base on the leakage number to swap

each vt down.

If Power ECO version 2015_ss or 2015_js is used, then Tweaker may based

on the priority list specified in this variable to decide the setup

resource are fully devoted to which vt and so on.

The benefit of this is to see the much leakage save can be introduced

through the priority concept.

Example
set _slk_power_eco_version 2015_ss

slk_power_eco_priority_list 1268
Tweaker™ Variables Version T-2022.03

set slk_power_eco_priority_list *LVT* *RVT* *HVT*

...

slkfix -power_eco

See also
N/A

slk_power_eco_priority_list 1269
Tweaker™ Variables Version T-2022.03

slk_power_eco_resolution
# Defines the Power Eco resolution.

Type
Integer / String

Default
10

Description
This variable defines number of effort for Tweaker when doing the Power ECO.

The higher resolution (value) defined in this variable, more leakage

instances will be pulled down while consuming more runtime in the process.

The recommended range for this variable is between 5 and 20.

Users are recommended to set this variable to "auto" if there is no any

preferred value.

Example
set slk_power_eco_resolution 20

set slk_power_eco_resolution auto

slk_power_eco_resolution 1270
Tweaker™ Variables Version T-2022.03

set slk_power_eco_resolution auto 5 20

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/power_eco/power_eco.tcl

slk_power_eco_resolution 1271
Tweaker™ Variables Version T-2022.03

slk_power_eco_sorting_criteria
# Set the sorting criteria of sizing candidates in power eco flow.

Type
String

Default
leakage

Description
In power eco flow, Tweaker sizes instance to optimize power. For leakage

power eco, instances could be sized to low leakage lib cell types. The

sizing candidates for each instance are sorted by "leakage".

For dynamic power eco, the sorting criteria could be "area" to reduce the

cell/device area and the corresponding cell internal power.

For mixed power eco, the sorting criteria could be "timing" to reduce the

cell speed and the corresponding cell leakage and internal power.

This variable control the criteria, and the candidates are from the auto

sizing rule.

slk_power_eco_sorting_criteria 1272
Tweaker™ Variables Version T-2022.03

Example
set slk_leakage_power_lib wc

set slk_dynamic_power_corner tc_RCtypical_norm

slkfix -create_power_eco_domain

......

set slk_dynamic_peco_cost transition

set slk_power_eco_sorting_criteria area

set slk_auto_sizing_rule vt_sizing_within_same_cell_height

slkfix -power_eco

See also
slk_dynamic_peco_cost

slk_dynamic_power_corner

slk_leakage_power_lib

slk_auto_sizing_rule

$DORADO_HOME/etc/template/tweaker_t1/power_eco

slk_power_eco_sorting_criteria 1273
Tweaker™ Variables Version T-2022.03

slk_power_eco_swap_list_by_design_filename
# Generates Power Eco swap list for each sub design.

Type
String

Default
empty

Description
For hierarchical design, Tweaker can generate Power Eco swap design-based

cell list by using this variable.

Swap cell list which includes swap instances hier names and its original

cell types before Power ECO, is written out during power ECO. The list will

be used for setup timing recovery after power ECO. If this variable is

specified, the output filename will be the specified content plus the design

name after it.

Please note that when this var is applied, the same old matched prefix files

under the specified directory (may come from another power eco run) will be

deleted and re-generated for the current run eco content.

slk_power_eco_swap_list_by_design_filename 1274
Tweaker™ Variables Version T-2022.03

Example
set slk_power_eco_swap_list_by_design_filename power_eco_swap

### will remove previous files like executing "rm power_eco_swap.* -f'

### output list

### power_eco_swap.sub_design1

### power_eco_swap.sub_design2

### power_eco_swap.top

See also
slk_power_eco_swap_list_filename

$Tweaker_Install_DIR/etc/template/tweaker_t1/power_eco/power_eco.tcl

slk_power_eco_swap_list_by_design_filename 1275
Tweaker™ Variables Version T-2022.03

slk_power_eco_swap_list_filename
# Specifies the Power ECO original cell swap list.

Type
String

Default
empty

Description
By using this variable, users can assign Tweaker to dump the list of cell(s)

which are swapped during the power ECO operation. This list will contain the

original cell types before the power ECO operation. This list is essential

for performing setup timing recovery after power ECO.

If this variable is not specified, the default output filename will be

*.peco.list and located in the same location as its log files.

Please note that when this var is applied, the same old matched file

under the specified directory (may come from another power eco run) will be

deleted and re-generated for the current run eco content.

slk_power_eco_swap_list_filename 1276
Tweaker™ Variables Version T-2022.03

Example
set slk_power_eco_swap_list_filename swap_cell_list.txt

# will remove previous file like executing "rm -f swap_cell_list.txt"

See also
slkfix -power_eco

slk_auto_sizing_instance_file

$Tweaker_Install_DIR/etc/template/tweaker_t1/recovery/timing_recovery.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/power_eco/power_eco.tcl

slk_power_eco_swap_list_filename 1277
Tweaker™ Variables Version T-2022.03

slk_power_eco_target_slk
# Controls the Power Eco domain.

Type
Float

Default
0.5

Description
This variable defines how Tweaker should build up the Power Eco domain by

issuing "slkfix -create_power_eco_domain" command. For Power Eco process, we

normally assign the same value to this variable and "slk_setup_target_slk"

variable.

Example
set slk_power_eco_target_slk 0.1

set slk_setup_target_slk 0.1

See also

slk_power_eco_target_slk 1278
Tweaker™ Variables Version T-2022.03

slk_fix_setup_target_slk

$Tweaker_Install_DIR/etc/template/tweaker_t1/power_eco/power_eco.tcl

slk_power_eco_target_slk 1279
Tweaker™ Variables Version T-2022.03

slk_power_eco_undo_extra_domain
# Enables or disables the "extract margin" process during Power Eco.

Type
Boolean

Default
false

Description
By setting this variable to true, it will enable Tweaker to do bi-direction

vt swap. Not only from lower vt cells to higher vt cells to do the leakage

saving, but also from higher vt cells to lower vt cells on extra Power Eco

domain to do an extract setup margin to create more space to do the leakage

saving. This variable is mostly used for experimental usage and user are not

recommended to set this variable to true for general cases.

Example
set slk_power_eco_undo_extra_domain true

slk_power_eco_undo_extra_domain 1280
Tweaker™ Variables Version T-2022.03

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/power_eco/power_eco.tcl

slk_power_eco_undo_extra_domain 1281
Tweaker™ Variables Version T-2022.03

slk_power_eco_watch_hold
# Enables or disables Tweaker to monitor hold time margin during Power ECO.

Type
Boolean

Default
false

Description
This variable offers the flexibility for users to let Tweaker watch hold

time margin in a conservative Power ECO run or not to watch hold time margin

in an aggressive Power ECO run. By it's default value as false which can

possibly get more cell swapped to increase fixing rate.

Example
set slk_power_eco_watch_hold true

See also
slk_power_eco_watch_peer_setup (var)

slk_power_eco_watch_hold 1282
Tweaker™ Variables Version T-2022.03

slk_power_eco_watch_input_drv
# Enable/Disable watching cell's input drv in leakage recovery.

Type
Boolean

Default
false

Description
Tweaker watches for cell's output drv only in leakage recovery due to sizing

down cell should not impact input drv. However, there are cases where sizing

down cell might impcat its input drv. Therefore, Tweaker can watch for its

cell input drv by setting this variable to true.

Example
tweaker_shell> set slk_leakage_power_lib ss

tweaker_shell> set slk_power_eco_watch_input_drv true

tweaker_shell> slkfix -power_eco

slk_power_eco_watch_input_drv 1283
Tweaker™ Variables Version T-2022.03

See also
[ VAR ] slk_power_eco_watch_hold

[ VAR ] slk_power_eco_watch_peer_setup

[ CMD ] slkfix

slk_power_eco_watch_input_drv 1284
Tweaker™ Variables Version T-2022.03

slk_power_eco_watch_peer_setup
# Enables or disables Tweaker to monitor the TWF setup margins during Power ECO.

Type
Boolean

Default
false

Description
By setting this variable to true, Tweaker monitors setup margin and

avoids peer impact during Power ECO.

In aggressive Power ECO, you should this variable to false (the default)

This setting allows Tweaker to swap as much cell as possible.

For conservative flow, you should set this variable to true. Tweaker

watches peer setup margin and prevents any new generated setup

violations. However, this might decrease the swapping rate.

Example
set slk_power_eco_watch_peer_setup false

slk_power_eco_watch_peer_setup 1285
Tweaker™ Variables Version T-2022.03

See also
N/A

slk_power_eco_watch_peer_setup 1286
Tweaker™ Variables Version T-2022.03

slk_preferred_delay_cell_distance_range
# Specifies the preferred distance of delay insertion algorithm.

Type
Integer

Default
20 200

Description
When a delay buffer or a chain of delay buffers were inserted during autofix

by normal delay insertion, Tweaker will use the value specified in this

variable as the preferred insertion distance for those delay cell.

The rule is that the total eco net global route wire length aside an

inserted buffer should be at least larger than the first value of the

variable and smaller than the second value of the variable.

Normally, we would suggest our user to assign a small number between 5 to 10

for first value and a large such as 9999 for the second value to let Tweaker

to have eco nets with the least appropriate distance.

slk_preferred_delay_cell_distance_range 1287
Tweaker™ Variables Version T-2022.03

Example
set slk_preferred_delay_cell_distance_range 5 9999

See also
slk_fix_hold_by_delay_insertion

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.1.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.2.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.3.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.bi.4.tcl

slk_preferred_delay_cell_distance_range 1288
Tweaker™ Variables Version T-2022.03

slk_preferred_repeater_distance
# Specify the distance for simple repeater insertion method.

Type
Integer

Default
200

Description
When doing transition fixing operation, Tweaker offer is a switch variable

called "slk_fix_max_trans_without_dc" to let user to enable/disable a

simpler repeater insertion algorithm instead of using HFS insertion

algorithm.

When "slk_fix_max_trans_without_dc" is set to true, Tweaker will insert

repeater buffer chains in a simple way without predicting any occurred

delay/slack difference, and each buffer inserted will be separated by the

distance specified in this ("slk_preferred_repeater_distance") variable.

Example

slk_preferred_repeater_distance 1289
Tweaker™ Variables Version T-2022.03

set slk_fix_max_trans_without_dc true

set slk_preferred_repeater_distance 150

set slk_fix_max_trans_by_repeater_insertion

...

slkfix -max_trans -all

See also
slk_fix_max_trans_without_dc

slk_preferred_repeater_distance 1290
Tweaker™ Variables Version T-2022.03

slk_range_for_add_dummy_load
# Specifies the slack range of small hold violations to be fixed by add dummy

method.

Type
Float Float

Default
-0.05 0

Description
Add dummy fixing is a unique strategy for fixing small hold violations.

User can specify the desired range for fixing the small hold violation

by using this variable.

Example
set slk_fix_hold_by_add_dummy_load true

set slk_dummy_load_cell_list { INVX1 INVX2 }

set slk_range_for_add_dummy_load -0.005 0

...

slk_range_for_add_dummy_load 1291
Tweaker™ Variables Version T-2022.03

slkfix -hold -all

See also
slk_fix_hold_by_add_dummy_load, slk_max_dummy_load_cell_distance,

slk_max_dummy_load_cell_count

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.dmy.tcl

slk_range_for_add_dummy_load 1292
Tweaker™ Variables Version T-2022.03

slk_rce_blockage_min_width
# Specify minimum blockage width to be ignored while calculating RC estimation

Type
Integer

Default
5

Description
Tweaker's RC estimation considers blockage while predicting delay. In some

cases there're blockage so thin which is not meant to be there. Hence, this

variable is to specify threshold to ignore these thin blockages during RC

estimation. Default value is 5, and its unit is row height.

Example
tweaker_shell> set slk_rce_blockage_min_width 10

tweaker_shell> slkfix ...

See also

slk_rce_blockage_min_width 1293
Tweaker™ Variables Version T-2022.03

N/A

slk_rce_blockage_min_width 1294
Tweaker™ Variables Version T-2022.03

slk_rce_long_wire_length
# Specifies the threshold length for a net to be qualified as an "RCE long wire".

Type
Integer

Default
60

Description
For new wires (wire with undefined RC in SPEF) whose lengths are longer than

the threshold length specified by this variable, the additional resistive

and capacitive deratings can be applied to the unit R and unit C to be

more pessimistic (derating > 1.0) or more optimistic (derating < 1.0) during

their RC values estimation.

The Tweaker variables as the R and C derating factors are

"slk_rce_long_wire_unit_r_derate" and

"slk_rce_long_wire_unit_c_derate", respectively. For more information on the

RCE (RC estimation) deratings, please refer to the man pages of the above

mentioned variables.

Normally the unit R derate will affect the net transition calculation and

slk_rce_long_wire_length 1295
Tweaker™ Variables Version T-2022.03

unit C will affect the cell delay/interconnect delay calculation.

During the insertion of hold buffers, Tweaker will also take this variable

into its insertion placement consideration. When the length of the inserted

buffer is longer than the value specified in this variable, it will be

defined as a long wire. So that Tweaker will place the buffer much closer

to the driver/sink port to avoid any potential routing which will cause

any timing degradation.

For the advanced process, users are suggested to set a reasonable smaller

value to this variable.

The unit size of this variable is um (10^6 m).

Example
set slk_rce_long_wire_length 50

slk_rce_long_wire_unit_c_derate 1.1

slk_rce_long_wire_unit_r_derate 1.2

set _slk_si_avoidance true

set slk_delay_insertion_keep_long_wire_slew

See also
slk_rce_long_wire_unit_c_derate

slk_rce_long_wire_unit_r_derate

slk_delay_insertion_keep_long_wire_slew

slk_rce_long_wire_length 1296
Tweaker™ Variables Version T-2022.03

slk_rce_long_wire_length 1297
Tweaker™ Variables Version T-2022.03

slk_rce_long_wire_unit_c_derate
# Specifies derating factor for the unit C of RCE long wires.

Type
Float

Default
1.0

Description
During ECO operations such as cell insertion, cell bypassing, and cell

removal, new wires whose RC values are not defined in SPEF files are

usually created.

This variable defines the estimation capacitive loads factor which will be

assigned to these new wires based on the wire lengths and the unit C

value(s) defined in the RC table(s).

A more pessimistic (derating > 1.0) or more optimistic (derating < 1.0)

resistive derating can be applied as long as their lengths are above the

threshold length specified by the variable "slk_rce_long_wire_length".

For more information on the threshold length, please refer to the man page

of the variable.

slk_rce_long_wire_unit_c_derate 1298
Tweaker™ Variables Version T-2022.03

Normally, the unit R derate will affect the net transition calculation and

unit C will affect the cell delay calculation

A larger the value means more conservative on calculating transition of a

net.

Example
set slk_rce_long_wire_length 50

set slk_rce_long_wire_unit_c_derate 1.5

See also
slk_rce_long_wire_length

slk_rce_long_wire_unit_r_derate

slk_rce_long_wire_unit_c_derate 1299
Tweaker™ Variables Version T-2022.03

slk_rce_long_wire_unit_r_derate
# Specifies derating factor for the unit R of RCE long wires.

Type
Float

Default
1.0

Description
During ECO operations such as cell insertion, cell bypassing, and cell

removal, new wires whose RC values are not defined in SPEF files are

usually created.

This variable defines the estimation resistive loads factor which will be

assigned to these new wires based on the wire lengths and the unit R

value(s) defined in the RC table(s).

A more pessimistic (derating > 1.0) or more optimistic (derating < 1.0)

resistive derating can be applied as long as it length are longer the

threshold length specified by the variable "slk_rce_long_wire_length".

For more information on the threshold length, please refer to the man page

of the variable.

slk_rce_long_wire_unit_r_derate 1300
Tweaker™ Variables Version T-2022.03

Normally, the unit R derate will affect the net transition calculation and

unit C will affect the cell delay calculation.

A larger the value means more conservative on calculating transition of a

net.

Example
set slk_rce_long_wire_length 50

set slk_rce_long_wire_unit_r_derate 1.5

See also
slk_rce_long_wire_length

slk_rce_long_wire_unit_c_derate

slk_rce_long_wire_unit_r_derate 1301
Tweaker™ Variables Version T-2022.03

slk_rce_refer_detail_route_factor
# A threshold for the quotient of the detail route length and the global route

length of a net, as a factor of the unit-RC calculation of the net.

Type
Float

Default
1.5

Description
Tweaker calculates the unit-R and unit-C of all nets in the design, as a

reference of the RC estimation of nets altered by ECO.

The unit-R and unit-C values of a net are generally calculated as the

quotients of the R and the C values of the net from SPEF, and the estimated

global route length of the net. However Tweaker estimates the global route

of a net in two different ways : the first kind of global route would avoid

just routing blockages, the second kind would avoid routing and placement

blockages. Tweaker uses these two different kinds of global route estimates

for unit-R and unit-C calculation in different situations.

If the ratio of the detail route length of a net, to the first kind of the

slk_rce_refer_detail_route_factor 1302
Tweaker™ Variables Version T-2022.03

estimated global route length of the net, is lower than the value specified

by this variable, Tweaker uses the first kind of global route length of the

net for the calculation of the unit-R and unit-C values of the net.

Otherwise, the second kind of the estimated global route length of the net

is used for the calculation instead.

This variable must be set prior to loading design DEFs.

Example
set slk_rce_refer_detail_route_factor 2.0

See also
N/A

slk_rce_refer_detail_route_factor 1303
Tweaker™ Variables Version T-2022.03

slk_read_dominate_path_only
# Enables to only read dominate paths and drv pins during slackin stage

Type
Boolean

Default
false

Description
When this variable is applied to the default value false, Tweaker follows

the path filers specified in slackin command to read the paths and drv pins

from slack reports.

By applying this variable to true, Tweaker will do the path extraction during

slackin stage and only the dominate paths and drv pins will be read in.

Besides, the memory usage can be reduaced since those non-dominate paths and

drv pins are dropped during slackin.

The dominate paths and drv pins are picked up based on the same criteria

with the command "extract_report".

This variable must be specified before slackin commands.

slk_read_dominate_path_only 1304
Tweaker™ Variables Version T-2022.03

Example
[CMD] set slk_read_dominate_path_only true

[CMD] begin_corner WCL

...

[CMD] slackin -ff report_setup_to_tweaker.rpt

[CMD] end_corner WCL

See also
extract_report (cmd)

slk_read_dominate_path_only 1305
Tweaker™ Variables Version T-2022.03

slk_read_trans_from_twf
# Reads old format TWF's transition contents.

Type
Boolean

Default
false

Description
This is an obsolete variable.

If this variable is set to true, Tweaker will extract the transition

information from the old format TWF file(s) instead of the SDF file(s).

This variable must be specified before reading TWF files.

In the new format of TWF file, the transition information is removed and

is always concluded from SDF file(s).

Example
set slk_read_trans_from_twf true

twfin ..

slk_read_trans_from_twf 1306
Tweaker™ Variables Version T-2022.03

See also
N/A

slk_read_trans_from_twf 1307
Tweaker™ Variables Version T-2022.03

slk_read_whole_twf
# Enable or disables building up whole design TWF.

Type
Boolean

Default
false

Description
If this variable is set to true, Tweaker will read the TWF information of

the whole design from the timing window file(s) instead of the TWF

information from the ECO domain only.

Users are recommended to set this variable to true if the users need to

perform manual editing operations to the objects located out of the ECO

domain. Under this situation, timing window information such as setup margin

or hold margin are available to users, in the form of a GUI pop-up window

after each manual editing operation.

Example

slk_read_whole_twf 1308
Tweaker™ Variables Version T-2022.03

set slk_read_whole_twf true

See also
N/A

slk_read_whole_twf 1309
Tweaker™ Variables Version T-2022.03

slk_refer_spf_unit_r
# Derives the unit R from spef file.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker derives

unit R value of a net from internal algorithm instead of from RC table.

The derived value could help Tweaker to estimate rc value more accurately

than using the one at RC table.

Tweaker will also choose the internal algorithm to derive unit R value

over RC table itself (by build_unit_rc_table or by rctablein) in the same

Tweaker process.

User are strongly suggested to keep this variable sets to true under any

circumstance.

slk_refer_spf_unit_r 1310
Tweaker™ Variables Version T-2022.03

Example
set slk_refer_spf_unit_r true

build_unit_rc_table -slack_domain

See also
N/A

slk_refer_spf_unit_r 1311
Tweaker™ Variables Version T-2022.03

slk_repeater_insertion_buff_list
# Specifies the repeater buffer candidates list.

Type
String

Default
empty

Description
This variable specifies the list of buffer cell types which are considered

as valid candidates for repeater insertion algorithm which is performed

during constraint violations fixing, or setup violations. If this variable

is left empty, all cell types with the same function as a "buffer" are

considered valid candidates for repeater insertion.

Example
set slk_repeater_insertion_buff_list { BUFFD2 BUFFD4 BUFFD8 }

See also

slk_repeater_insertion_buff_list 1312
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_by_repeater_insertion

slk_fix_max_cap_by_repeater_insertion

slk_fix_max_fanout_by_high_fanout_insertion

slk_fix_noise_by_repeater_insertion

slk_fix_setup_by_repeater_insertion

slk_repeater_insertion_buff_list 1313
Tweaker™ Variables Version T-2022.03

slk_repeater_insertion_clock_buff_list
# Specifies the clock repeater buffer candidates list.

Type
String

Default
empty

Description
This variable specifies the list of clock buffer cell types for repeater

insertion. To fix drv violation on clock tree by repeater insertion, user

needs to provide clock buffer cells. The specified cells will be considered

as valid candidates for repeater insertion algorithm.

If this variable is left empty, cell types specified at variable

"slk_repeater_insertion_buff_list" are considered valid candidates

for repeater insertion.

Example
set slk_repeater_insertion_clock_buff_list { CLKBUFFD2 CLKBUFFD4 CLKBUFFD8 }

slk_repeater_insertion_clock_buff_list 1314
Tweaker™ Variables Version T-2022.03

See also
slk_repeater_insertion_clock_inverter_list

slk_fix_max_cap_dont_touch_clock_tree

slk_fix_max_fanout_dont_touch_clock_tree

slk_fix_max_trans_dont_touch_clock_tree

slk_fix_noise_dont_touch_clock_tree

slk_repeater_insertion_buff_list

slk_repeater_insertion_clock_buff_list 1315
Tweaker™ Variables Version T-2022.03

slk_repeater_insertion_clock_inverter_list
# Specifies the clock inverter candidates list.

Type
String

Default
empty

Description
This variable specifies the list of clock inverter cell types for repeater

insertion. To fix drv violation on clock tree by repeater insertion, user

needs to provide clock inverter cells. The specified cells will be

considered as valid candidates for repeater insertion algorithm.

If this variable is left empty, cell types specified at variable

"slk_repeater_insertion_inverter_list" are considered valid candidates

for repeater insertion.

Example
set slk_repeater_insertion_clock_inverter_list { CLKINVD2 CLKINVD4 \

slk_repeater_insertion_clock_inverter_list 1316
Tweaker™ Variables Version T-2022.03

CLKINVD8 }

See also
slk_repeater_insertion_clock_buff_list

slk_fix_max_cap_dont_touch_clock_tree

slk_fix_max_fanout_dont_touch_clock_tree

slk_fix_max_trans_dont_touch_clock_tree

slk_fix_noise_dont_touch_clock_tree

slk_repeater_insertion_inverter_list

slk_repeater_insertion_clock_inverter_list 1317
Tweaker™ Variables Version T-2022.03

slk_repeater_insertion_inverter_list
# Specifies the repeater inverter candidate list.

Type
String

Default
empty

Description
This variable specifies the list of inverter cell types which are considered

as valid candidates for repeater insertion algorithm which is performed

during constraint violations fixing or setup violations. If this variable is

left empty, all cell types with the same function as an "inverter" are

considered valid candidates for repeater insertion.

Example
set slk_repeater_insertion_inverter_list { INVD2 INVD4 INVD8 }

See also

slk_repeater_insertion_inverter_list 1318
Tweaker™ Variables Version T-2022.03

slk_fix_max_trans_by_repeater_insertion

slk_fix_max_cap_by_repeater_insertion

slk_hfs_use_inverter

slk_fix_setup_by_repeater_insertion

slk_fix_setup_use_inverter

slk_repeater_insertion_inverter_list 1319
Tweaker™ Variables Version T-2022.03

slk_report_cap_unit
# Assigns cap unit in input/output cap report.

Type
String

Default
pf

Description
If there's any cap unit difference between the input cap report for Tweaker

(slackin) or cap report dumped from Tweaker (slkdump) and the one defined at

"slk_cap_unit", users are suggested to define the cap unit of the reports

by using this variable. The variable supports "ff" and "pf".

The default value is "pf".

Example
set slk_report_cap_unit pf

See also

slk_report_cap_unit 1320
Tweaker™ Variables Version T-2022.03

slk_cap_unit

slk_report_cap_unit 1321
Tweaker™ Variables Version T-2022.03

slk_report_divider
# Specifies the hierarchy separator for input slack report(s).

Type
String

Default
/

Description
Specifies the hierarchy separator for input slack report(s).

By default the symbol "/" is applied.

Example
set slk_report_divider /

set slk_report_divider .

See also
$Tweaker_Install_DIR/etc/template/general_script/general_setting.tcl

slk_report_divider 1322
Tweaker™ Variables Version T-2022.03

slk_report_limit
# Defines the maximum number of report count.

Type
Integer

Default
100

Description
Specifies the allowed maximum number of nets to be reported

when executing "report_detour_net".

Example
set slk_report_limit 1000

See also
report_detour_net (cmd)

slk_report_limit 1323
Tweaker™ Variables Version T-2022.03

slk_report_time_unit
# Assigns time unit in input/output report.

Type
String

Default
ns

Description
If there's any time unit difference between the input report for Tweaker

(slackin) or report dumped from Tweaker (slkdump) and the one defined at

"slk_time_unit", users are suggested to define the time unit of the reports

by using this variable. The variable supports "ns" and "ps".

Example
set slk_report_time_unit ps

See also
slk_time_unit

slk_report_time_unit 1324
Tweaker™ Variables Version T-2022.03

slk_report_time_unit 1325
Tweaker™ Variables Version T-2022.03

slk_sdf_ignore_value
# Enables or disables the ability to ignore the specified value seen at SDF

file.

Type
Float

Default
512

Description
Sometimes STA may output SDF file with hacked contents on for a specific

purpose and those hacked contents normally may contains very large negative

values or very large positive values. To avoid the possibility of imprecise

timing update due to these unreal delay, user can instruct Tweaker to ignore

these contents by specifying it in this variable before issuing "sdfin"

command.

Example
set slk_sdf_ignore_value 9999

slk_sdf_ignore_value 1326
Tweaker™ Variables Version T-2022.03

...

sdfin ..

See also
N/A

slk_sdf_ignore_value 1327
Tweaker™ Variables Version T-2022.03

slk_setup_cost_involve_slew_factor
# Tweaker variable to include transition as a factor in the fix setup cost

function.

Type
Boolean

Default
true

Description
By the default value (true), Tweaker takes the output transition of an

instance as a factor of fix setup cost function during the sizing operation

to decide the fixing order. The reason behind that is that transition

sometimes dominates the timing paths in advanced process.

If this variable is set to false, the improvement for TNS is considered as

the main factor at fix setup cost function.

Example
set slk_fix_setup_by_sizing true

slk_setup_cost_involve_slew_factor 1328
Tweaker™ Variables Version T-2022.03

set slk_setup_cost_involve_slew_factor false

...

slkfix -setup -all

See also
slk_setup_cost_one2one_cell_weight

slk_setup_cost_involve_slew_factor 1329
Tweaker™ Variables Version T-2022.03

slk_setup_cost_one2one_cell_weight
# Tweaker variable of weighting factor inside fix setup cost function on

buffer/inverter cells.

Type
Float

Default
1.0

Description
The sizing priority of "one-to-one" cells (buffers or inverters) can be

emphasized/de-emphasized by setting a non-unity number on this variable.

More size variation of buffers and inverters compared to other cells types

are the common reason for emphasizing the sizing priority of one-to-one

cells.

Example
set slk_fix_setup_by_sizing true

set slk_setup_cost_one2one_cell_weight 1.5

slk_setup_cost_one2one_cell_weight 1330
Tweaker™ Variables Version T-2022.03

...

slkfix -setup -all

See also
slk_setup_cost_involve_slew_factor

slk_setup_cost_one2one_cell_weight 1331
Tweaker™ Variables Version T-2022.03

slk_setup_margin_tolerance_for_drv
# Ignores the DRV factor constraint on a peer if its setup margin is larger than

the specified value.

Type
Float

Default
512000000.0 (ns)

Description
During ECO, swapping or insertion activities could be blocked by DRV

factor violations on peer instances. However, in some cases peer instances

could have large setup margins, so that strict DRV factor constraint for

ECO activities on peer instances is not always necessary.

This variable allows a peer instance to ignore the DRV factor constraint

if it has a setup margin larger than the specified value.

The default value is set to a large number to let the peer instance honored

the constraint set by "set_drv_factor" during the DRV check in the first

place.

slk_setup_margin_tolerance_for_drv 1332
Tweaker™ Variables Version T-2022.03

Example
set_drv_factor 0.7

set slk_setup_margin_tolerance_for_drv 0.5

...

slkfix -setup -all

See also
slk_setup_margin_tolerance_for_drv_sub

$Tweaker_Install_DIR/etc/template/general_script/general_setting.tcl

slk_setup_margin_tolerance_for_drv 1333
Tweaker™ Variables Version T-2022.03

slk_setup_margin_tolerance_for_drv_sub
# Ignore the DRV factor constraint on a sub if its setup margin is larger than

the specified value.

Type
Float

Default
512000000.0 (ns)

Description
During ECO, swapping or insertion activities could be blocked by the DRV

factor violations on sub instances. However, in some cases sub instances

could have large setup margins, so that strict DRV factor constraint for

ECO activities on sub instances is not always necessary.

This variable allows a sub instance to ignore the DRV factor constraint

if it has a setup margin larger than the specified value.

The default value is set to a large number to let the sub instance honored

the constraint set by "set_drv_factor" during the DRV check in the first

place.

slk_setup_margin_tolerance_for_drv_sub 1334
Tweaker™ Variables Version T-2022.03

Example
set_drv_factor 0.7

set slk_setup_margin_tolerance_for_drv_sub 1.5

...

slkfix -setup -all

See also
slk_setup_margin_tolerance_for_drv

$Tweaker_Install_DIR/etc/template/general_script/general_setting.tcl

slk_setup_margin_tolerance_for_drv_sub 1335
Tweaker™ Variables Version T-2022.03

slk_setup_splitload_margin
# Setup margin threshold which specifies the sinks categories (critical and non-

critical) during auto split load for setup autofix.

Type
Float

Default
0.2

Description
When performing the split load algorithm for fixing setup violations,

Tweaker uses this variable as the threshold in defining the critical and

non-critical sink pin. The high fanouts net with larger setup margin values

compared to the threshold value defined in this variable will be classified

as non-critical pins and will be packed together, then connected after the

inserted buffer to share the driver's load.

The smaller value of this variable will decrease the margin on defining

the non-critical pins which will increase the possibility of those pins

to be group-up during the split load algorithm.

slk_setup_splitload_margin 1336
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_setup_by_repeater_insertion true

set slk_fix_setup_by_split_load true

set slk_fix_setup_repeater_insertion_factor 0.2

set slk_setup_splitload_margin 0.5

...

slkfix -setup -all

See also
N/A

slk_setup_splitload_margin 1337
Tweaker™ Variables Version T-2022.03

slk_setup_target_slk
# Setup time target slack during autofix.

Type
Float

Default
0.01

Description
This variable contains the target slack value for setup paths when fixing

setup violations. It is also used as a setup margin constraint when fixing

hold time/constraint violations while monitoring setup impact on TWF.

For fixing hold time violation, it is recommended for user to assign a

larger value (e.g. 0.2) for the first fixing round and decrease it gradually

on the following fixing round. This sequence allows Tweaker to fix the hold

paths which contain a larger setup margins prior to the hold paths with

smaller setup margins.

In general, for fixing other constraint violations, user can keep a fixed

value (e.g. 0.1), for the series of corresponding slkfix rounds.

Even thought if the setup targets contain a positive slack values, that

slk_setup_target_slk 1338
Tweaker™ Variables Version T-2022.03

paths or pins will be fixed until they meet the target slack specified in

this variable.

Example
set slk_setup_target_slk 0.05

See also
slk_hold_target_slk

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold/fix_hold_

setting.*.tcl

$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_setup/fix_setup_

setting.*.tcl

slk_setup_target_slk 1339
Tweaker™ Variables Version T-2022.03

slk_setup_worst_slack
# Indicate setup worst slack in specified corner

Type
Float

Default
Empty

Description
This is not built-in variable.

Array slk_setup_worst_slack is created after command "slkdc

-check_slack_consistency". It contains the setup worst slack value for each

created corner.

Array index is corner name.

Example
[ CMD ] printvar slk_corner_list

Tweaker Built-in Value Default Value

----------------------------------------------------------------------------

slk_setup_worst_slack 1340
Tweaker™ Variables Version T-2022.03

slk_corner_list ss_cworst_norm ff_cworst_norm ### (empty)

[ CMD ] printvar slk_setup_worst_slack_corner

Tweaker Built-in Value Default Value

----------------------------------------------------------------------------

slk_setup_worst_slack_corner ss_cworst_norm ### (empty)

[ CMD ] printvar slk_setup_worst_slack($slk_setup_worst_slack_corner)

User Defined Value

----------------------------------------------------------------------------

slk_setup_worst_slack(ss_cworst_norm) -1.388

[ CMD ] printvar slk_setup_worst_slack*

Tweaker Built-in Value Default Value

----------------------------------------------------------------------------

slk_setup_worst_slack_corner ss_cworst_norm ### (empty)

User Defined Value

----------------------------------------------------------------------------

slk_setup_worst_slack(ff_cworst_norm) 3.195

slk_setup_worst_slack(ss_cworst_norm) -1.388

See also
slk_corner_list

slk_setup_worst_slack_corner

slk_hold_worst_slack_corner

slk_hold_worst_slack

slk_setup_worst_slack 1341
Tweaker™ Variables Version T-2022.03

slk_normalized_factor

slk_setup_worst_slack 1342
Tweaker™ Variables Version T-2022.03

slk_setup_worst_slack_corner
# Indicate the corner name which contains the setup worst slack

Type
String

Default
Empty

Description
This is read only variable. The default value is empty.

After the command "slkdc -check_slack_consistency" executed, slack corners

are built. This variable indicates the corner which contains the setup worst

slack.

The following commands will update the slack database. When the setup worst

slack in TWF is updated, the setup worst slack corner name is also updated

in this variable.

slkfix (for autofix)

slkdb -ignore_......

slkdb -dont_touch_......

slkdb -ignore_if_twf_slack

slk_setup_worst_slack_corner 1343
Tweaker™ Variables Version T-2022.03

slkdb -update_twf_by_path

slkdb -update_twf_by_pba_endpoint

slkdb -update_twf_endpoint

add_slk_uncertainty

Example
[ CMD ] printvar slk_setup_worst_slack_corner

Tweaker Built-in Value Default Value

-------------------------------------------------------------------------

slk_setup_worst_slack_corner ss_cworst_norm ### (empty)

See also
slk_corner_list

slk_hold_worst_slack_corner

slk_hold_worst_slack

slk_setup_worst_slack

slk_normalized_factor

slk_setup_worst_slack_corner 1344
Tweaker™ Variables Version T-2022.03

slk_si_aware_clock_period_factor
# Clock period percentage setting for determining weak net candidates.

Type
Float

Default
0.1

Description
The SI aware mechanism involves the identification of "weak nets" which are

potentially prone to SI. If the slack value of a net's sink pin is smaller

to the multiplication result of sink pin's clock period and the specified

factor, this net is categorized as a weak net "candidate", but not a "real"

net yet. For more information on the qualification of a "real" weak net,

please refer to the man page of "slk_si_aware_long_wire_length" variable.

A larger value means less conservative on determining the weak nets on

constraint wires.

Example

slk_si_aware_clock_period_factor 1345
Tweaker™ Variables Version T-2022.03

set slk_si_aware_clock_period_factor 0.05

See also
slk_si_aware_null_clock_period

slk_si_aware_long_wire_length

slk_si_aware_long_wire_slew_factor

slk_si_aware_long_wire_slew

slk_si_aware_short_wire_slew_factor

slk_si_aware_short_wire_slew

slk_si_aware_clock_period_factor 1346
Tweaker™ Variables Version T-2022.03

slk_si_aware_long_wire_length
# A length threshold for differentiating "SI aware long wires" from "SI aware

short wires".

Type
Integer

Default
200

Description
Tweaker is using the threshold length specified in this variable to classify

latent weak nets into two types: long wires and short wires. Wire with

longer lengths compared to the specified value are considered as long wires,

while those with shorter length compared to the specified value are

considered as short wires.

Tweaker has different standards for the long and the short wires when

identifying weak nets. "slk_si_aware_long_wire_slew" and

"slk_si_aware_long_wire_slew_factor" variables are the honored standard of

weak nets for long wires. Meanwhile "slk_si_aware_short_wire_slew" and

"slk_si_aware_short_wire_slew_factor" variables are the honored standard of

slk_si_aware_long_wire_length 1347
Tweaker™ Variables Version T-2022.03

weak nets for short wires.

For more information on the identification of "real" weak nets, please refer

to the man pages of the above mentioned four variables.

Example
set slk_si_aware_long_wire_length 100

See also
slk_si_aware_clock_period_factor

slk_si_aware_null_clock_period

slk_si_aware_long_wire_slew_factor

slk_si_aware_long_wire_slew

slk_si_aware_short_wire_slew_factor

slk_si_aware_short_wire_slew

slk_si_aware_long_wire_length 1348
Tweaker™ Variables Version T-2022.03

slk_si_aware_long_wire_slew
# A standard for qualifying SI sensitive weak nets.

Type
Float

Default
0.4

Description
This variable serves as one of the two elements of the standard for

qualifying the "weak net candidate" to become the "real weak net" for

"long wire" type nets. Another defining element is

"slk_si_aware_long_wire_slew_factor" variable.

If the transition value of a "weak net candidate" sink pin is larger than

specified slew value, or larger than the multiplication result of sink pin's

clock period and the factor specified in

"slk_si_aware_long_wire_slew_factor", then the candidate is qualified as a

"real weak net".

A larger value means less conservative on determining potential weak nets on

long wires.

slk_si_aware_long_wire_slew 1349
Tweaker™ Variables Version T-2022.03

When the real weak nets have been identified, the corresponding SI-aware

mechanism handles weak nets differently from non-weak nets during autofix

operations. The identified real weak nets become the targets of the SI

prevention autofix operations.

Example
set slk_si_aware_long_wire_slew 0.2

See also
slk_si_aware_clock_period_factor

slk_si_aware_null_clock_period

slk_si_aware_long_wire_length

slk_si_aware_long_wire_slew_factor

slk_si_aware_short_wire_slew_factor

slk_si_aware_short_wire_slew

slk_fix_hold_enable_si_aware

slk_power_eco_enable_si_aware

slk_si_aware_long_wire_slew 1350
Tweaker™ Variables Version T-2022.03

slk_si_aware_long_wire_slew_factor
# A standard for qualifying SI sensitive weak nets.

Type
Float

Default
0.04

Description
This variable serves as one of the two elements of the standard for

qualifying the "weak net candidate" to become the "real weak net"

for "long wire" type nets. Another defining element is

"slk_si_aware_long_wire_slew" variable.

If the transition value of a "weak net candidate" is larger than the

multiplication result of sink pin's clock period and the specified factor,

or larger than the value specified in "slk_si_aware_long_wire_slew", then

the candidate is qualified as a "real weak net".

A larger value means less conservative on determining potential weak nets

on long wires.

When the real weak nets have been identified, the corresponding SI-aware

slk_si_aware_long_wire_slew_factor 1351
Tweaker™ Variables Version T-2022.03

mechanism handles weak nets differently from non-weak nets during autofix

operations. The identified real weak nets become the targets of the SI

prevention autofix operations.

Example
set slk_si_aware_long_wire_slew_factor 0.1

See also
slk_si_aware_clock_period_factor

slk_si_aware_null_clock_period

slk_si_aware_long_wire_length

slk_si_aware_long_wire_slew

slk_si_aware_short_wire_slew_factor

slk_si_aware_short_wire_slew

slk_fix_hold_enable_si_aware

slk_power_eco_enable_si_aware

slk_si_aware_long_wire_slew_factor 1352
Tweaker™ Variables Version T-2022.03

slk_si_aware_null_clock_period
# Clock period setting determining weak net candidates.

Type
Float

Default
10.0 (ns)

Description
Users are recommended to read the man page of another Tweaker variable

"slk_si_aware_clock_period_factor" before proceeding to the following

variable.

If a sink pin of a net does not carry clock period information which is

obtained from TWF, the period specified by this variable will be assigned

to the sink pin as its clock period, therefore the weak net identification

mechanism can be applied to the net.

A larger value means less conservative on determining weak nets on

unconstraint wire.

slk_si_aware_null_clock_period 1353
Tweaker™ Variables Version T-2022.03

Example
set slk_si_aware_null_clock_period 2

See also
slk_si_aware_clock_period_factor

slk_si_aware_long_wire_length

slk_si_aware_long_wire_slew_factor

slk_si_aware_long_wire_slew

slk_si_aware_short_wire_slew_factor

slk_si_aware_short_wire_slew

slk_si_aware_null_clock_period 1354
Tweaker™ Variables Version T-2022.03

slk_si_aware_short_wire_slew
# A standard for qualifying SI sensitive weak nets.

Type
Float

Default
0.4

Description
This variable serves as one of the two elements of the standard for

qualifying the "weak net candidates" to become the "real weak net" for

"short wire" type nets. Another element defining element is

"slk_si_aware_short_wire_slew_factor" variable.

If the transition value of a "weak net candidate" sink pin is larger than

specified slew value, or larger than the multiplication result of sink pin's

clock period and the factor specified in

"slk_si_aware_short_wire_slew_factor", then the candidate is qualified as a

"real weak net"

A larger value means less conservative on determining potential weak nets on

short wires.

slk_si_aware_short_wire_slew 1355
Tweaker™ Variables Version T-2022.03

When the real weak nets have been identified, the corresponding SI-aware

mechanism handles weak nets differently from non-weak nets during autofix

operations. The identified real weak nets become the targets of the SI

prevention autofix operations.

Example
set slk_si_aware_short_wire_slew 0.2

See also
slk_si_aware_clock_period_factor

slk_si_aware_null_clock_period

slk_si_aware_long_wire_length

slk_si_aware_short_wire_slew_factor

slk_si_aware_long_wire_slew_factor

slk_si_aware_long_wire_slew

slk_fix_hold_enable_si_aware

slk_power_eco_enable_si_aware

slk_si_aware_short_wire_slew 1356
Tweaker™ Variables Version T-2022.03

slk_si_aware_short_wire_slew_factor
# Tweaker variable serving as a standard for qualifying SI sensitive weak nets.

Type
Float

Default
0.1

Description
This variable serves as one of the two elements of the standard for

qualifying the "weak net candidate" to become the "real weak net"

for "short wire" type nets. Another defining element is

"slk_si_aware_short_wire_slew" variable.

If the transition value of a "weak net candidate" is larger than the

multiplication result of sink pin's clock period and the specified factor,

or larger than the value specified in "slk_si_aware_short_wire_slew", then

the candidate is qualified as a "real weak net"

A larger value means less conservative on determining potential weak nets

on long wires

When the real weak nets have been identified, the corresponding SI-aware

slk_si_aware_short_wire_slew_factor 1357
Tweaker™ Variables Version T-2022.03

mechanism handles weak nets differently from non-weak nets during autofix

operations. The identified real weak nets become the targets of the SI

prevention autofix operations.

Example
set slk_si_aware_short_wire_slew_factor 0.2

See also
slk_si_aware_clock_period_factor

slk_si_aware_null_clock_period

slk_si_aware_long_wire_length

slk_si_aware_short_wire_slew

slk_si_aware_long_wire_slew_factor

slk_si_aware_long_wire_slew

slk_fix_hold_enable_si_aware

slk_power_eco_enable_si_aware

slk_si_aware_short_wire_slew_factor 1358
Tweaker™ Variables Version T-2022.03

slk_si_prevention_by_insertion
# Enable or disables the HFS algorithm for SI prevention autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will enable

the HFS (insertion) algorithm for SI prevention autofix. During this

operation, the "real weak nets" will be inserted with buffers to get a

better SI effect prevention.

There are two versions of the HFS algorithm: HFS-V1 and HFS-V2. The users

can select between the version by setting the

"slk_si_prevention_by_insertion1" variable.

Please refer to the man page of the "slk_si_prevention_by_insertion1"

variable.

The candidate buffer list for this insertion strategy is listed in

"slk_repeater_insertion_buff_list" variable.

slk_si_prevention_by_insertion 1359
Tweaker™ Variables Version T-2022.03

Notice that Tweaker is using the old format in supporting the SI prevention

strategy. Please contact our AE for further assist or information.

Example
...

set slk_si_prevention_by_swap true

set slk_si_prevention_by_sizing true

set slk_si_prevention_by_insertion true

...

set slk_repeater_insertion_buff_list { BUFX4 BUFX6 BUFX8 BUFX16 }

slkfix -si_prevention

See also
slk_si_prevention_by_insertion1

slk_si_prevention_by_insertion 1360
Tweaker™ Variables Version T-2022.03

slk_si_prevention_by_insertion1
# Enables or disables the HFS-V1 algorithm for SI prevention autofix.

Type
Boolean

Default
false

Description
By setting the value for both of this variable and

"slk_si_prevention_by_insertion" variable to true, Tweaker will enable the

HFS-V1 algorithm for SI prevention autofix.

If this variable is set to false while "slk_si_prevention_by_insertion"

set to true, the HFS-V1 algorithm will be disabled while the HFS-V2

will be enabled for SI prevention autofix.

Example
...

set slk_si_prevention_by_swap true

slk_si_prevention_by_insertion1 1361
Tweaker™ Variables Version T-2022.03

set slk_si_prevention_by_sizing true

set slk_si_prevention_by_insertion true

set slk_si_prevention_by_insertion1 true

...

set slk_repeater_insertion_buff_list { BUFX4 BUFX6 BUFX8 BUFX16 }

slkfix -si_prevention

See also
slk_si_prevention_by_insertion

slk_si_prevention_by_insertion1 1362
Tweaker™ Variables Version T-2022.03

slk_si_prevention_by_sizing
# Enable or disables the sizing strategy for SI prevention autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will enable

the sizing strategy for SI prevention autofix. During this operation, the

"real weak nets" drivers will be sized up to get a better SI effect

prevention.

If this variable is set to true, the "slk_auto_sizing_enable_cell_mapping"

variable will be treat as false to disable the mapping rule variables :

"slk_cell_mapping_file", "slk_cell_mapping_rule", and

"slk_cell_mapping_rule_regexp". Tweaker automatically decides the sizing

candidates during sizing autofix according to the footprints defined in LIB.

Notice that Tweaker is using the old format in supporting the SI prevention

strategy. Please contact our AE for further assist or information.

slk_si_prevention_by_sizing 1363
Tweaker™ Variables Version T-2022.03

Example
...

set slk_si_prevention_by_swap true

set slk_si_prevention_by_sizing true

set slk_si_prevention_by_insertion true

...

slkfix -si_prevention

See also
slk_si_prevention_by_swap

slk_si_prevention_by_insertion

slk_si_prevention_by_insertion1

slk_si_prevention_by_sizing 1364
Tweaker™ Variables Version T-2022.03

slk_si_prevention_by_swap
# Enables or disables the VT swapping strategy for SI prevention autofix.

Type
Boolean

Default
true

Description
By setting this variable to its default value of true, Tweaker will enable

the VT swapping strategy for SI prevention autofix. During this operation,

the "real weak nets" drivers will be swapped to lower VT groups to get a

better SI effect prevention.

To apply this VT swapping strategy, the

"slk_auto_sizing_enable_cell_mapping" variable must be set to true, and at

least one of the three corresponding mapping rule variables

("slk_cell_mapping_file", "slk_cell_mapping_rule", and

"slk_cell_mapping_rule_regexp") must be specified too. The mapping rules

specified by these variables will be honored by the VT swapping strategy

during autofix.

slk_si_prevention_by_swap 1365
Tweaker™ Variables Version T-2022.03

Notice that Tweaker is using the old format in supporting the SI prevention

strategy. Please contact our AE for further assist or information.

Example
...

set slk_si_prevention_by_swap true

set slk_si_prevention_by_sizing true

set slk_si_prevention_by_insertion true

...

set slk_auto_sizing_enable_cell_mapping true

set slk_cell_mapping_rule_regexp { @HVT @SVT @LVT : @SVT @LVT }

slkfix -si_prevention

See also
slk_si_prevention_by_sizing

slk_si_prevention_by_insertion

slk_si_prevention_by_insertion1

slk_auto_sizing_enable_cell_mapping

slk_cell_mapping_file

slk_cell_mapping_rule

slk_cell_mapping_rule_regexp

slk_si_prevention_by_swap 1366
Tweaker™ Variables Version T-2022.03

slk_si_prevention_check_twf
# Enables or disables the TWF check during SI prevention autofix.

Type
Boolean

Default
false

Description
Setting this variable to true enables the user to monitor the margins in

the TWF. However if this variable is set to true, Tweaker will skip some

ECO process in effort of SI prevention such as VT swapping, sizing or

insertion which could cause setup impacts.

Example
...

set slk_si_prevention_by_swap true

set slk_si_prevention_by_sizing true

set slk_si_prevention_by_insertion true

slk_si_prevention_check_twf 1367
Tweaker™ Variables Version T-2022.03

set slk_si_prevention_check_twf true

...

slkfix -si_prevention

See also
N/A

slk_si_prevention_check_twf 1368
Tweaker™ Variables Version T-2022.03

slk_sizing_by_same_library_name
# Enables or disables the auto sizing within the same library name.

Type
Boolean

Default
false

Description
When this variable is set true, Tweaker will only do auto sizing among

the candidates within the same library name(library file).

Example
set slk_sizing_by_same_library_name true

See also
N/A

slk_sizing_by_same_library_name 1369
Tweaker™ Variables Version T-2022.03

slk_slack_adjust_range
# Specifies the adjustment slack range for "hack clock cell delay" analysis

Type
Float Float

Default
-0.1 0.1

Description
In the "Hack clock cell delay" analysis operation, Tweaker adjusts the clock

cell delay values for fixing setup or hold violations. Specify the negative

and positive value to this variable for adjustment slack range.

Tweaker will skip the operation if total adjustment value is larger than

specify value.

Example
set slk_slack_adjust_range -0.01 0.01

set slk_hack_clock_min_cell_delay 0.01

slkfix -hack_clock_cell_delay -all

slk_slack_adjust_range 1370
Tweaker™ Variables Version T-2022.03

See also
slk_hack_clock_min_cell_delay (var)
slkfix (cmd)

slk_slack_adjust_range 1371
Tweaker™ Variables Version T-2022.03

slk_ssta_mode
# Enables or disables SSTA mode on Tweaker.

Type
Boolean

Default
false

Description
This variable works as an SSTA mode enable inside Tweaker to synchronize

with the setting of GoldTime STA tool for its timing analysis. This variable

usually works together with the other variable "slk_path_base_analysis".

Example
set slk_ssta_mode true

set slk_path_base_analysis true

See also
slk_path_base_analysis

slk_ssta_mode 1372
Tweaker™ Variables Version T-2022.03

slk_ssta_mode 1373
Tweaker™ Variables Version T-2022.03

slk_time_unit
# Tweaker system variable to specify the time unit.

Type
String [ ps| ns ]

Default
ns

Description
Defines time unit (ps or ns) used inside Tweaker timing db and GUI.

If the value of this variable (time unit) is changed, each slk related

variable with the same time unit will also need to be changed accordingly.

Hence it is not recommended to change this variable. If there is any

difference between the time unit in this variable and the one in the time

report, it is recommended to change the content of the other variable

"slk_report_time_unit".

The only timing to apply this is before begin_corner/end_corner and cannot

change anymore after it.

slk_time_unit 1374
Tweaker™ Variables Version T-2022.03

Example
set slk_time_unit ns

set slk_setup_target_slk 0.1

set slk_time_unit ps

set slk_setup_target_slk 100

See also
slk_report_time_unit

$Tweaker_Install_DIR/etc/template/general_script/general_setting.tcl

slk_time_unit 1375
Tweaker™ Variables Version T-2022.03

slk_transition_threshold
# Specifies the upper and lower threshold of transition changing.

Type
Float

Default
0.1 0.9 (thresholdL thresholdH)

Description
This variable holds the threshold values on transition changing which is

used for cell delay definition.

In general, this variable is set to 0.1 0.9. However, this value depends on

the cell libraries.

thresholdL

Threshold lower bound.

thresholdH

Threshold upper bound.

Example

slk_transition_threshold 1376
Tweaker™ Variables Version T-2022.03

set slk_transition_threshold 0.1 0.9

See also
$Tweaker_Install_DIR/etc/template/general_script/general_setting.tcl

slk_transition_threshold 1377
Tweaker™ Variables Version T-2022.03

slk_twf_clock_drv_factor
# Tweaker variable to specify the factor for twf's sdc max trans/cap constraint.

Type
Float

Default
0.95

Description
When there is max trans info bring in by TWF's SDC. User can be more

conservative and specify a factor here to get those max trans constraint

tighter.

Example
set slk_twf_clock_drv_factor 0.9

twfin ... twf_with_sdc_info

See also
set_drv_factor (cmd)

slk_twf_clock_drv_factor 1378
Tweaker™ Variables Version T-2022.03

slk_twf_cost_v2
# Tweaker variable to enables the Ver.2 TWF cost update algorithm of the fixing

hold by TWF feature.

Type
Boolean

Default
false

Description
In order to save the run time by reducing the input hold violation report(s)

while expanding the area size of the hold ECO domain, Tweaker offers a

feature of back-tracing that can be enabled by specifying a value onto this

variable. The back-trace operation for fixing the hold violations is using

the TWF (Timing Window File) information/values to track the hold violation

domain which covers the modified (sized-down) input hold violation

(e.g. nworst 1) report(s) and continues to explore (back-trace) the other

hold ECO domain which is not covered by the report(s).

There is a set of other variables that need to be configured together with

this feature to fix the hold violations. This variable only enables the

slk_twf_cost_v2 1379
Tweaker™ Variables Version T-2022.03

"TWF cost update version 2" algorithm which not only takes common points

but also the setup margins into consideration during any insertion

operation.

Example
set slk_fix_hold_by_twf_cost true

set slk_fix_hold_level 6

set slk_fix_hold_high_effort_flow true

set slk_twf_cost_v2 true

See also
$Tweaker_Install_DIR/etc/template/tweaker_t1/fix_timing/fix_hold_nworst1_

plus_twf/fix_hold.tcl

slk_fix_hold_by_twf_cost

slk_fix_hold_level

slk_fix_hold_high_effort_flow

slk_twf_cost_v2 1380
Tweaker™ Variables Version T-2022.03

slk_twf_cost_v2_setup_margin_factor
# Controls the priority of the deciding factors (setup margin and common point)

during the hold autofix by TWF while activating the "slk_twf_cost_v2".

Type
Float

Default
0.2

Description
When proceeding hold fixing process by enabling TWF feature and setting the

"slk_twf_cost_v2" variable to true, there are two factors which are taken

into consideration: setup margin and the common point. Tweaker will use

these factors to decide the fixing order of the autofix.

When this variable is set to a smaller value, Tweaker will increase the

priority to fix the violated paths which have bigger setup margins.

Vice versa, when this variable is set to a bigger value, Tweaker will

increase the priority to fix the violated paths which have more common

points.

slk_twf_cost_v2_setup_margin_factor 1381
Tweaker™ Variables Version T-2022.03

Example
set slk_fix_hold_by_twf_cost true

set slk_fix_hold_level 6

set slk_fix_hold_high_effort_flow true

set slk_twf_cost_v2 true

set slk_twf_cost_v2_setup_margin_factor 0.1

See also
slk_twf_cost_v2

slk_twf_cost_v2_setup_margin_factor 1382
Tweaker™ Variables Version T-2022.03

slk_twf_ignore_clock_list
# Tweaker variable to control the input clock domain during SI Prevention

operation.

Type
String

Default
empty

Description
During SI Prevention process, Tweaker can honor this variable to decide the

input clock domain by parsing the TWF file(s) which contains clock group

info at each pin. Pins with its clock group "inside" this list will be

treated as non-constraint clock group and will be taken cared in different

approach.

This variable only matters if the timing window file(s) are generated with

clock group information depicted within.

Example

slk_twf_ignore_clock_list 1383
Tweaker™ Variables Version T-2022.03

set slk_twf_ignore_clock_list clock_list {C_CLK D_CLK}

See also
slk_twf_read_clock_list

slk_twf_ignore_clock_list 1384
Tweaker™ Variables Version T-2022.03

slk_twf_preferred_startpoint
# Controls the priority of fixing pins near startpoint.

Type
Boolean

Default
false

Description
When fixing hold time and watching TWF are both on, Tweaker will based

on the cost function to determine the fixing placement whether it is closer

to startpoint/endpoint or in the middle of a path. By enabling this

variable, Tweaker will insert the buffers near to the startpoint instead of

the endpoint. It works only when TWF is imported to Tweaker and variable

"slk_fix_hold_watch_timing_window" is set true.

Normally this is used in special case and not suggested to turn true in

general case.

Example

slk_twf_preferred_startpoint 1385
Tweaker™ Variables Version T-2022.03

set slk_twf_preferred_startpoint true

set slk_fix_hold_high_fanout_insertion true

set slk_fix_hold_watch_timing_window

...

slkfix -hold -all

See also
slk_fix_hold_watch_timing_window

slk_twf_preferred_startpoint 1386
Tweaker™ Variables Version T-2022.03

slk_twf_read_clock_list
# Controls the input clock domain during SI Prevention operation.

Type
String

Default
empty

Description
During SI Prevention process, Tweaker will honor this variable when

deciding the input clock domain by parsing the TWF file(s) which contains

clock group info of each pin. Meanwhile, the pin with its clock group

excluded from this list will be treated as non-constraint clock group and

will be proceed in different approach.

This variable is only valid if the timing window file(s) are generated with

clock group information depicted within.

Example
set slk_twf_read_clock_list {CPU_CLK A_CLK B_CLK}

slk_twf_read_clock_list 1387
Tweaker™ Variables Version T-2022.03

See also
slk_twf_ignore_clock_list

slk_twf_read_clock_list 1388
Tweaker™ Variables Version T-2022.03

slk_update_cg_cell_timing_check
# Controls whether to update the clock gating cell timing check or not.

Type
Boolean

Default
true

Description
When this variable is set to its default value of true, Tweaker will update

the timing checks on clock gating cells.

In contrary, if this variable is set to false, the timing check on clock

gating cells will be kept unchanged.

Sometimes CG cell timing checks are set fixed in the SDC file.

Example
set slk_update_cg_cell_timing_check false

See also

slk_update_cg_cell_timing_check 1389
Tweaker™ Variables Version T-2022.03

N/A

slk_update_cg_cell_timing_check 1390
Tweaker™ Variables Version T-2022.03

slk_update_congestion_map
# Updates the congestion map at each eco action.

Type
Boolean

Default
false

Description
When congestion aware feature is enabled by setting

"slk_congestion_aware_insertion" variable to true, by default, Tweaker will

use the existing congestion map and keep it unchanged.

By setting this variable to true, Tweaker will update the congestion map

at each eco action to get better congestion correlation which result in

a longer run time as a trade-off.

Example
defin -route ..

create_congestion_db ..

slk_update_congestion_map 1391
Tweaker™ Variables Version T-2022.03

# we can also create "Grid DB", please reference "create_design_analysis_grid_db"

...

set slk_congestion_aware_insertion true

set slk_update_congestion_map true

slkfix -hold -all

...

See also
slk_congestion_aware_insertion (var)
slk_insert_enable_routing_path_congestion_aware (var)
design_analysis_grid_height_by_row (var)
congestion_map_grid_size_by_row (var)
design_analysis_collecting_mode (var)
create_congestion_db (cmd)
free_congestion_db (cmd)
create_design_analysis_grid_db (cmd)
remove_design_analysis_grid_db (cmd)
get_grids (cmd)
set_resource_window (cmd)
add_blockage (cmd)
delete_blockage (cmd)
draw (cmd)

slk_update_congestion_map 1392
Tweaker™ Variables Version T-2022.03

slk_update_required_cap_by_scaling
# Scales the max-cap defined in LIB if it is different from STA constraint.

Type
String

Default
false

Description
When this variable is set true, if the maximum-capacitance value of a

driver cell in the STA constraint is different from the value defined

in the LIB of that cell, Tweaker memorizes the ratio between the two

values and apply the same ratio to scale the input capacitance value

and the maximum-capacitance value defined in the LIB of the cell when

autofix is performed.

Example
set slk_update_required_cap_by_scaling true

slk_update_required_cap_by_scaling 1393
Tweaker™ Variables Version T-2022.03

See also
slk_update_required_fanout_by_scaling

slk_update_required_cap_by_scaling 1394
Tweaker™ Variables Version T-2022.03

slk_update_required_fanout_by_scaling
# Scales the max-fanout defined in LIB if it is different from STA constraint.

Type
Boolean

Default
false

Description
When this variable is set true, if the maximum-fanout value of a driver

cell in the STA constraint is different from the value defined in the

LIB of that cell, Tweaker memorizes the ratio between these two values

and apply the same ratio to scale the fanout load value and the

maximum-fanout value defined in the LIB of the cell when autofix is

performed.

Example
set slk_update_required_fanout_by_scaling true

slk_update_required_fanout_by_scaling 1395
Tweaker™ Variables Version T-2022.03

See also
slk_update_required_cap_by_scaling

slk_update_required_fanout_by_scaling 1396
Tweaker™ Variables Version T-2022.03

slk_update_si
# Enables or disables the SI components update behavior.

Type
Boolean

Default
true

Description
The SI components derived from incremental sisdf file(s) or self-extracted

from Tweaker command "set_extract_sisdf" are updated in reaction to the

modification (sizing or buffer insertion) of the driving cells. The updated

SI components can be output through "sdfout" command.

Example
set slk_update_si false

See also
set_extract_sisdf

slk_update_si 1397
Tweaker™ Variables Version T-2022.03

sisdfin

slackin

sdfout

slk_update_si 1398
Tweaker™ Variables Version T-2022.03

slk_update_si_by_length
# Estimates the SI components based on changes in net lengths.

Type
Boolean

Default
true

Description
When Tweaker sensed any variation of SI net length during ECO process,

Tweaker will recalculate the SI component based on the variation of

transition and net length at both original and new nets.

NEW.SI = (Transition.new/Transition.old) x (Sqrt (Length.new/Length.old)) x

Old.SI

Otherwise Tweaker will recalculate the SI component based on transition

variation only and even more new nets will not have the SI component either.

This variable will be valid only when "slk_update_si" is set true.

Example

slk_update_si_by_length 1399
Tweaker™ Variables Version T-2022.03

set slk_update_si true

set slk_update_si_by_length false

See also
N/A

slk_update_si_by_length 1400
Tweaker™ Variables Version T-2022.03

slk_update_si_margin
# Controls the update of SI component by extra conservative.

Type
Float

Default
1.1

Description
To be more conservative when updating SI component, Tweaker applies this

factor into SI delay calculation. This variable only valid when another

Tweaker variable "slk_update_si" is set to true.

Example
set slk_update_si true

set slk_update_si_margin 1.15

See also
slk_update_si

slk_update_si_margin 1401
Tweaker™ Variables Version T-2022.03

slk_update_si_margin 1402
Tweaker™ Variables Version T-2022.03

slk_update_si_net_change_max_limit
# Controls the update of SI component by extra conservative.

Type
Float

Default
2.0

Description
Tweaker applies this factor to limit the maximum net length for updating

SI component value when the SI net length change.

Example
set slk_update_si_net_change_max_limit 3

See also
slk_update_si_value_max_limit

slk_update_si_net_change_max_limit 1403
Tweaker™ Variables Version T-2022.03

slk_update_si_value_max_limit
# Controls the maximum update limit of SI components.

Type
Float

Default
3.0

Description
To limit the maximum value of updating SI component, Tweaker applies this

factor into SI delay calculation.

Example
set slk_update_si_value_max_limit 5

See also
slk_update_si_net_change_max_limit

slk_update_si_value_max_limit 1404
Tweaker™ Variables Version T-2022.03

slk_use_lib_drv_value_if_more_strict
# Enables or disables to use max trans constrain from cell lib if the value is

more strict.

Type
Boolean

Default
false

Description
Users can use command set_drv_value to set the hard number max trans eco

constraint.

By setting this variable to its default value of true, Tweaker can use the

max trans constrain in cell lib if its value is more strict than

set_drv_value's.

This setting can prevent Tweaker to use relaxed max trans constrain, if

users use set_drv_value for all corner and all libs in the same time, and

the drv value might be greater than constrain in some cell libs.

slk_use_lib_drv_value_if_more_strict 1405
Tweaker™ Variables Version T-2022.03

Example
set slk_use_lib_drv_value_if_more_strict true

See also
slk_twf_clock_drv_factor

slk_fix_setup_max_trans_drv

slk_fix_hold_max_trans_drv

slk_drv_factor

slk_drv_value

slk_use_lib_drv_value_if_more_strict 1406
Tweaker™ Variables Version T-2022.03

slk_user_defined_max_cap_drv_factor
# Tweaker vars to allow tighter drv factor for user defined max cap value.

Type
float

Default
0.95

Description
From twf file SDC paragraph there could be set_max_cap related commands for

Tweaker to honor. Those are so called user defined max cap value. And

Tweaker will be a little bit conservative to digest it with this factor.

Example
set slk_user_defined_max_cap_drv_factor 0.95

See also

slk_user_defined_max_cap_drv_factor 1407
Tweaker™ Variables Version T-2022.03

slk_view_report_only
# Extracts report operation only.

Type
Boolean

Default
false

Description
This variable allow Tweaker to skip delay calculation after the timing

corners have been established. Users are suggested to turn this variable

to true to speed up the extract report process. It is definitely not

suggested to turn this variable to true during other fix timing process.

Example
# at extract report operation

...

set slk_view_report_only true

...

slk_view_report_only 1408
Tweaker™ Variables Version T-2022.03

begin_corner

set_group -lib ...

slackin ...

end_corner

slkdump -path -folder ...

See also
N/A

slk_view_report_only 1409
Tweaker™ Variables Version T-2022.03

slk_vmin_cell_list
# Used in the vmin eco for specifying the vmin cells.

Type
String

Default
empty

Description
This variable defines the cell types, which have worse variation in

different PVT than others do. In vmin eco, Tweaker changes instances from

vmin cell type to others and also extract the setup timing margin.

Wildcards are supported.

Example
set slk_vmin_cell_list { *HVT* *D0 }

See also
slk_setup_target_slk

slk_vmin_cell_list 1410
Tweaker™ Variables Version T-2022.03

slkfix (cmd)
slkfix (cmd)

slk_vmin_cell_list 1411
Tweaker™ Variables Version T-2022.03

slk_vt_cell_naming
# Used in the leakage summary report for specifying the available vt cells.

Type
String

Default
*HVT*

Description
The purpose of this variable is to provide all available vt cells of the

design at user's interests to be referenced at Tweaker leakage summary

report. When the leakage summary is demanded, leakage power information

is listed out in the naming format specified by this variable.

Wildcards are supported, and it is crucial to sort the naming by complexity

in a descending order to get a precise leakage summary report. The contents

of this variable is independent from those in the mapping rules specified

by other variables such as "slk_cell_mapping_rule" or

"slk_cell_mapping_rule_regexp".

slk_vt_cell_naming 1412
Tweaker™ Variables Version T-2022.03

Example
# multiple mapping rules :

#1 set slk_cell_mapping_rule { *LVT *SVT }

#2 set slk_cell_mapping_rule { *SVT *HVT }

#3 set slk_cell_mapping_rule { *D*HVT *M*ODHVT }

set slk_vt_cell_naming { *M*ODHVT *D*HVT *HVT *SVT *LVT }

See also
N/A

slk_vt_cell_naming 1413
Tweaker™ Variables Version T-2022.03

slk_vt_ratio_target
# Tweaker variable to define the vt target ratio in the Power ECO vt ratio

feature.

Type
String

Default
empty

Description
By default Tweaker will do Power ECO for leakage optimization. But when this

"slk_power_eco_enable_vt_ratio" variable is enabled, Tweaker's Power ECO

will turn into vt ratio function where its purpose is to honor the user

specified vt ratio target as much as possible without get timing impact.

The variable is to decide the vt ratio target where the target vt cells are

defined at "slk_vt_cell_naming".

The available vt types are defined at "slk_vt_cell_naming".

The target vt ratio is defined at "slk_vt_ratio_target".

The tolerance of vt ratio difference is defined at "slk_vt_ratio_tolerance".

The type of vt ratio index is defined at "slk_vt_ratio_type", which can be

slk_vt_ratio_target 1414
Tweaker™ Variables Version T-2022.03

"count" or "area".

Example
set slk_power_eco_enable_vt_ratio true

set slk_vt_cell_naming *LVT* *RVT* *HVT*

set slk_vt_ratio_type count

set slk_vt_ratio_target 0.25 0.4 0.35

set slk_vt_ratio_tolerance 0.02 0.05 0.03

...

slkfix -power_eco

See also
slk_power_eco_enable_vt_ratio

slk_vt_cell_naming

slk_vt_ratio_tolerance

slk_vt_ratio_type

slk_vt_ratio_target 1415
Tweaker™ Variables Version T-2022.03

slk_vt_ratio_tolerance
# Tweaker variable to define the tolerance in the Power ECO vt ratio feature.

Type
String

Default
empty

Description
By default Tweaker will do Power ECO for leakage optimization. But when this

"slk_power_eco_enable_vt_ratio" variable is enabled, Tweaker's Power ECO

will turn into vt ratio function where its purpose is to honor the user

specified vt ratio target as much as possible without get timing impact.

The variable is to decide the tolerance of target ratio for more room to

achieve the goal.

The available vt types are defined at "slk_vt_cell_naming".

The target vt ratio is defined at "slk_vt_ratio_target".

The tolerance of vt ratio difference is defined at "slk_vt_ratio_tolerance".

The type of vt ratio index is defined at "slk_vt_ratio_type",

which can be "count" or "area".

slk_vt_ratio_tolerance 1416
Tweaker™ Variables Version T-2022.03

Example
set slk_power_eco_enable_vt_ratio true

set slk_vt_cell_naming *LVT* *RVT* *HVT*

set slk_vt_ratio_type count

set slk_vt_ratio_target 0.25 0.4 0.35

set slk_vt_ratio_tolerance 0.02 0.05 0.03

...

slkfix -power_eco

See also
slk_power_eco_enable_vt_ratio

slk_vt_cell_naming

slk_vt_ratio_target

slk_vt_ratio_type

slk_vt_ratio_tolerance 1417
Tweaker™ Variables Version T-2022.03

slk_vt_ratio_type
# Tweaker variable to define the type of ratio in the Power ECO vt ratio

feature.

Type
String

Default
empty

Description
By default Tweaker will do Power ECO for leakage optimization. But when this

"slk_power_eco_enable_vt_ratio" variable is enabled, Tweaker's Power ECO

will turn into vt ratio function where its purpose is to honor the user

specified vt ratio target as much as possible without get timing impact.

The variable is to decide the type of ratio is count or area.

The available vt types are defined at "slk_vt_cell_naming".

The target vt ratio is defined at "slk_vt_ratio_target".

The tolerance of vt ratio difference is defined at "slk_vt_ratio_tolerance".

slk_vt_ratio_type 1418
Tweaker™ Variables Version T-2022.03

Example
set slk_power_eco_enable_vt_ratio true

set slk_vt_cell_naming *LVT* *RVT* *HVT*

set slk_vt_ratio_type count

set slk_vt_ratio_target 0.25 0.4 0.35

set slk_vt_ratio_tolerance 0.02 0.05 0.03

...

slkfix -power_eco

See also
slk_power_eco_enable_vt_ratio

slk_vt_cell_naming

slk_vt_ratio_target

slk_vt_ratio_tolerance

slk_vt_ratio_type 1419
Tweaker™ Variables Version T-2022.03

slkfix_naming_rule
# Specifies the autofix naming rule reference.

Type
String

Default
empty

Description
In order to identify the ECO cells added by Tweaker during "auto fix"

process, users can assign a specific naming pattern to this variable

for easy recognition of newly added ECO cells when auto fixing.

If this variable is unassigned (empty), the content of another Tweaker

variable, "naming_rule", is directly applied for the added ECO cells

during auto fix process.

In Tweaker, the naming pattern of ECO cells added by auto fix process is

specified by "slkfix_naming_rule", while the naming pattern of ECO cells

which is using the manual addition is specified by "naming_rule".

slkfix_naming_rule 1420
Tweaker™ Variables Version T-2022.03

Example
set slkfix_naming_rule ECO1_@USER_@DATE_

set slkfix_naming_rule ECO1_hold_fix_

slkfix ...

See also
naming_rule

slkfix_naming_rule 1421
Tweaker™ Variables Version T-2022.03

soce_eco_tcl_half_unit_site_cell_placement_offset
# Specify an offset of unit site for cell placement in SOCE ecotcl

Type
String

Default
half_site

Description
Generally, a cell's location is described by its bottom-left xy coordinate. However,

inbound cell's bottom-left point is not on the row. If the location is pointed to this

bottom-left point in SOCE ecotcl, it will have an error. Therefore, Tweaker provides

this variable to describe this cell's location by shifting an offset from bottom-left point.

Example
set soce_eco_tcl_half_unit_site_cell_placement_offset haft_site

See also
N/A

soce_eco_tcl_half_unit_site_cell_placement_offset 1422
Tweaker™ Variables Version T-2022.03

soce_eco_tcl_half_unit_site_cell_placement_offset 1423
Tweaker™ Variables Version T-2022.03

soce_eco_tcl_in_bound_cell_placement_offset
# To define the soce eco tcl out placement offset for inbound cell.

Type
String

Default
half_row

Description
By default, Tweaker will output the left bottom placement location for the

inbound cell.

However, soce need to give the original on-row placement location.

Consequently, user can use this attribute to define the cell output

placement location shift half row height for soce. If not, you can define

this variable as 0.

Example
...

set soce_eco_tcl_in_bound_cell_placement_offset

soce_eco_tcl_in_bound_cell_placement_offset 1424
Tweaker™ Variables Version T-2022.03

...

slkfix -hold -all

...

ecotclout -soce ./ecoout/soce.tcl

See also
ecotclout -soce

soce_eco_tcl_in_bound_cell_placement_offset 1425
Tweaker™ Variables Version T-2022.03

source_nlcmd_always_skip_conflict
# Enables the ability to always skip conflict while merging multiple nlcmds

Type
Boolean

Default
false

Description
While sourcing an nlcmd file with "source" command with "-skip_conflict"

option, Tweaker skips an ECO action if it would cause physical conflicts

with any previously sourced ECOs.

By setting this variable to true, Tweaker will always skip the conflict

while sourcing nlcmd file even if the option "-skip_conflict" is not

specified.

Example
Below two examples have the same behavior:

1.

source_nlcmd_always_skip_conflict 1426
Tweaker™ Variables Version T-2022.03

tweaker_shell> set source_nlcmd_always_skip_conflict true

tweaker_shell> source tweaker.nlcmd

2.

tweaker_shell> source tweaker.nlcmd -skip_conflict

See also
source (cmd)
merge_nlcmd_skip_inst_overlap (var)
merge_nlcmd_skip_physical_conflict (var)

source_nlcmd_always_skip_conflict 1427
Tweaker™ Variables Version T-2022.03

spacing_table_mode
# Controls the abutment rules modes.

Type
Boolean

Default
true

Description
In advanced process like 20nm or below, foundry side may provide some

placement rules like min vt rules and abutment rules to fit the process.

This variable controls the modes of abutment rules applied at Tweaker

internally. By setting the variable to true, Tweaker will select the most

up-to-date mode and utilize space more efficiently, hence it is highly

suggested to always set this variable to true.

This variable valid only when the abutment rule main switch

"enable_cell_edge_spacing_rule" is set to true.

Example

spacing_table_mode 1428
Tweaker™ Variables Version T-2022.03

set enable_cell_edge_spacing_rule true

set spacing_table_mode true

See also
N/A

spacing_table_mode 1429
Tweaker™ Variables Version T-2022.03

spare_cell_candidate_keep_input_connection_after_sizing
# Tweaker variable to enable or disable the recycled spare cells after sizing to

keep input connection.

Type
Boolean

Default
false

Description
By default when the cells are sizing under Metal ECO mode it will be

recycled and keep its input tie high/low in the design such that it can be

used next time.

When this variable is set true, these recycled spare cells will see its

input connection unchanged to reduce the re-route issue.

Example
set spare_cell_candidate_keep_input_connection_after_sizing true

set metal_eco_mode true

spare_cell_candidate_keep_input_connection_after_sizing 1430
Tweaker™ Variables Version T-2022.03

... Metal ECO ...

See also
N/A

spare_cell_candidate_keep_input_connection_after_sizing 1431
Tweaker™ Variables Version T-2022.03

spare_cell_exception_cells
# Creates a list of exceptions cells when collecting matched spare cells.

Type
String

Default
empty

Description
The instance(s) of the cell type(s) specified by this variable will be

excluded from spare cell pools even if they match the pattern specified

by "eco" command to collect spare cells issued by Tweaker.

Wild card is supported.

Example
set metal_eco_mode true

eco -spare_module SPARE_MODULE_A SPARE_MODULE_B ...

set spare_cell_exception_cells { CK* TIE* }

spare_cell_exception_cells 1432
Tweaker™ Variables Version T-2022.03

See also
spare_cell_exception_instances

spare_cell_exception_cells 1433
Tweaker™ Variables Version T-2022.03

spare_cell_exception_instances
# Creates a list of exceptions instances when collecting matched spare cells.

Type
String

Default
empty

Description
The instance(s) specified by this variable will be excluded from spare

cell pools even they match the pattern specified by "eco" command to

collect spare cells issued by Tweaker.

Wildcard is supported.

Example
set metal_eco_mode true

eco -spare_module SPARE_MODULE_A SPARE_MODULE_B ...

set spare_cell_exception_instances { *false_spare* *test_spare* }

spare_cell_exception_instances 1434
Tweaker™ Variables Version T-2022.03

See also
spare_cell_exception_cells

spare_cell_exception_instances 1435
Tweaker™ Variables Version T-2022.03

sta_tool
# To defined the sta tool list for generating eco tcl.

Type
string

Default
pt tempus

Description
When this sta tool list is defined before ECO, Tweaker will generate

the corresponding apr tool eco tcl after ECO. If not, Tweaker will only

generate pt and tempus eco tcl by default.

Tweaker support APR tool list:

pt

ets

tempus

gt

Example

sta_tool 1436
Tweaker™ Variables Version T-2022.03

set apr_tool innovus

set sta_tool pt

...

slkdc -check_slack_consistency

...

slkfix -setup -all

...

slkfix -hold -all

...

ecotclout -pt ./ecoout/pt.tcl

ecotclout -innovus ./ecoout/innovus.tcl

See also
apr_tool

ecotclout

sta_tool 1437
Tweaker™ Variables Version T-2022.03

stop_if_lefin_syntax_error
# Enables or disables the ability to keep proceeding even after syntax error are

detected within the lef file.

Type
Boolean

Default
true

Description
When this variable is set to its default of true, Tweaker stops immediately

and returns with error message when syntax error is found in lef file during

parsing.

Example
set stop_if_lefin_syntax_error false

See also
stop_if_libin_syntax_error

stop_if_lefin_syntax_error 1438
Tweaker™ Variables Version T-2022.03

stop_if_lefin_syntax_error 1439
Tweaker™ Variables Version T-2022.03

stop_if_libin_syntax_error
# Enables or disables Tweaker to continue the ECO process while LIB syntax error is occurred.

Type
Boolean

Default
true

Description
By default, Tweaker will stop immediately and return with the error message

when a syntax error is found during LIB file parsing.

Users can still continue the ECO process even if there are error occurred

during the LIB file parsing by setting this variable to false. There is no

guarantee to the result after skipping this error.

Example
set stop_if_libin_syntax_error false

See also

stop_if_libin_syntax_error 1440
Tweaker™ Variables Version T-2022.03

stop_if_lefin_syntax_error

stop_if_libin_syntax_error 1441
Tweaker™ Variables Version T-2022.03

tempus_tcl_enable_duplicate_design_calculation
# Enables or disables Tempus ECO Tcl support duplicate design ECO.

Type
Boolean

Default
false

Description
In the latest Tempus version, if the user needs to use duplicate design ECO,

Tweaker can enable this variable to enable Tempus ECO Tcl out to active

Tempus duplicate design ECO update. Tweaker will output the following

command in the Tempus ECO tcl.

set_eco_mode -replicated_modules true

Example
set tempus_tcl_enable_duplicate_design_calculation true

set sta_tool tempus

...

tempus_tcl_enable_duplicate_design_calculation 1442
Tweaker™ Variables Version T-2022.03

slkdc -check_slack_consistency

...

ecotclout -tempus tempus.tcl

See also
sta_tool

ecotclout

tempus_tcl_enable_duplicate_design_calculation 1443
Tweaker™ Variables Version T-2022.03

tie_hi_for_unused_eco_cells
# Controls hi or low value of input pins tie of recycled spare cells.

Type
Boolean

Default
false

Description
When this variable is set to its default of false, cells under "metal eco

mode" which are recycled to be the extra spare cells will have their input

pins tied to tie-low cells. When this variable is set to true, their input

pins are tied to tie-hi cells.

Example
set tie_hi_for_unused_eco_cells true

See also
N/A

tie_hi_for_unused_eco_cells 1444
Tweaker™ Variables Version T-2022.03

tie_hi_for_unused_eco_cells 1445
Tweaker™ Variables Version T-2022.03

timing_aocvm_analysis_mode
# Specifies the AOCV analysis mode.

Type
String

Default
"" (empty)

Description
An AOCV table can be one-dimensional (depth) or two-dimensional (depth v.s.

distance). By default :

1. Depth values and distance values are calculated separately for cells and

nets.

2. Depth values and distance values are calculated separately for launch and

capture paths.

3. Both clock and data objects are included in the calculations of depth and

distance.

The depth values of a timing path are defined as the cell delay timing arc

number and the net delay timing arc number in the timing path from the path

launch/capture common point. Objects on the common path of the

timing_aocvm_analysis_mode 1446
Tweaker™ Variables Version T-2022.03

launch/capture paths are not included in the depth calculation.

The distance values of a timing path are defined as the diagonal length of

both of the bounding box enclosing the cell delay timing arcs and the net

delay timing arcs. Timing arcs on the common path of the launch and capture

paths are not included in the bounding box calculation.

Possible AOCV mode options are :

(1) clock_network_only

(2) combined_launch_capture_depth

(3) separate_data_and_clock_metrics

(4) single_path_metrics

Any combination of these four modes are accepted except for (2) and (3)

which are mutually exclusive, and not supposed to be specified at the same

time.

The depth calculation under each mode is described below :

"clock_network_only"

When this option is specified, AOCV derating will be applied to the

clock paths only and will not be applied to the data paths. When this

option is not specified, AOCV derating is to be applied to both data

and clock paths.

"combined_launch_capture_depth"

When this option is specified, launch and capture paths are combined

and only one depth value combination is calculated for each path.

timing_aocvm_analysis_mode 1447
Tweaker™ Variables Version T-2022.03

When this option is not specified, the objects on a launch path are

only included by the calculation of the depth for that launch path;

meanwhile objects on a capture path are only included by the

calculation of the depth for that capture path.

"separate_data_and_clock_metrics"

When this option is specified, depth values for clock paths and those

for data paths are calculated separately based on their respective

timing arc numbers. When this option is not specified, timing arcs

of data paths and clock paths are combined.

"single_path_metrics"

When this option is specified, only the number of cell delay timing

arcs are taken into the calculation of the depth of a timing path.

The calculated depth is applied to the AOCV derating update of both

cells and nets on the path. When this option is not specified, depths

for cells and nets are calculated separately.

The distance calculation under each mode follows the same pattern as the

depth calculation, determining the diagonal lengths of the bounding boxes

enclosing corresponding objects.

Example
set timing_aocvm_analysis_mode { combined_launch_capture_path \

single_path_metrics }

timing_aocvm_analysis_mode 1448
Tweaker™ Variables Version T-2022.03

See also
read_aocvm (cmd)

timing_aocvm_analysis_mode 1449
Tweaker™ Variables Version T-2022.03

timing_enable_transition_derate_meanshift
# Enables transition derate in POCV calculation mode.

Type
Boolean

Default
false

Description
After enabling this variable, Tweaker would also consider the effect of transition

derate on cell output transition calculation.

This variable takes effect only if user specify set_transition_derate command.

Example
set enable_ocv_sigma true

set timing_enable_transition_derate_meanshift true

begin_corner test

...

set_transition_derate -late 1.5 [get_lib_cells BUFX1]

timing_enable_transition_derate_meanshift 1450
Tweaker™ Variables Version T-2022.03

...

end_corner test

See also
enable_ocv_sigma (var)
set_transition_derate (cmd)
report_transition_derate (cmd)

timing_enable_transition_derate_meanshift 1451
Tweaker™ Variables Version T-2022.03

timing_input_port_default_clock
# Enables or disables the ability to automatically assign virtual clock to the

input port with undefined clock.

Type
Boolean

Default
true

Descriptions

This variable affects the behavior of Tweaker's "gen_slack_report" command

when the users set an input delay without assigning any clock on it.

By default, Tweaker will set the input delay on the port with the respect

to a virtual clock as its constraint. This behavior will cause the paths

driven by this input ports become a related paths.

In contrary, if this variable is set to false, Tweaker will not assign

any virtual clock to this kind of input ports.

Users are strongly recommended to keep this variable to its default value.

Example
set timing_input_port_default_clock true

timing_input_port_default_clock 1452
Tweaker™ Variables Version T-2022.03

See also
gen_slack_report (cmd)

timing_input_port_default_clock 1453
Tweaker™ Variables Version T-2022.03

timing_pocvm_precedence
# To control the precedence of POCV talbe from lib or side file.

Type
String

Default
file

Description
If Tweaker read the POCV table from the library and file simultaneously,

user can use this variable to control which input file POCV table have

higher priority.

Then, Tweaker will choose the corresponding precedence table to calculate

the POCV derated.

Example
...

set timing_pocvm_precedence lib_cell_in_file

...

timing_pocvm_precedence 1454
Tweaker™ Variables Version T-2022.03

libin -timing_type best worst -name ss ./std_ss.lib

...

read_pocvm -name pocv_ss ./std_ss.sidefile

...

begin_corner ss

set_group -lib -name ss

set_group -pocv -name pocv_ss

...

end_corner ss

...

See also
read_pocvm

timing_pocvm_precedence 1455
Tweaker™ Variables Version T-2022.03

top_routing_layer
# Defines the top routing layer.

Type
Integer

Default
5

Description
This variable specifies the top routing layer by layer name or layer number.

The layer number is the sequence of LAYER definitions defined at lef files.

Tweaker creates routing congestion database from bottom routing layer to top

routing layer.

When users specify the congestion top-routing-layer and bottom-routing-layer

through the "create_congestion_db" command as below, Tweaker will honor

"create_congestion_db" command option over this variable:

create_congestion_db -top_routing_layer 6 -bottom_routing_layer 2

When users doesn't specified the top-routing-layer and bottom-routing-layer

through the "create_congestion_db" command, then Tweaker will honor

the value in this variable:

top_routing_layer 1456
Tweaker™ Variables Version T-2022.03

set bottom_routing_layer 2

set top_routing_layer 5

create_congestion_db

Example
set bottom_routing_layer 2

set top_routing_layer 5

create_congestion_db

See also
bottom_routing_layer (var)
create_congestion_db (cmd)

top_routing_layer 1457
Tweaker™ Variables Version T-2022.03

transfer_beta_physical_cell_to_regular_physical_cell
# Allows Tweaker to treat the beta physical cells as regular physical cells.

Type
Boolean

Default
false

Description
In DEF standards, a cell must has the "+SOURCE DIST" attribute in its

PLACEMENT definition in order to be considered as a physical cell.

However, if the APR tools cannot generate certain beta physical cell with

this attribute, users can still let Tweaker to treat them as physical cells

which can be ignored or kept by utilizing other setting variables if they

still satisfied below criteria:

1. the cell is not used in the netlist, or/and

2. the cell is only with power/ground pin.

Example

transfer_beta_physical_cell_to_regular_physical_cell 1458
Tweaker™ Variables Version T-2022.03

set transfer_beta_physical_cell_to_regular_physical_cell true

set def_physical_cells_to_be_ignored { BETA_PHYSICAL_CELL_PATTERN ... }

...

defin ...

See also
def_physical_cells_to_be_ignored

force_keep_physical_cells

transfer_beta_physical_cell_to_regular_physical_cell 1459
Tweaker™ Variables Version T-2022.03

upfin_extend_power_domain_name_by_scope
# Enable power domain name including UPF scope name.

Type
Boolean

Default
false

Description
If we enable this variable, tweaker power domain name will honor UPF scope

name. By default, this variable is false.

Example
set upfin_extend_power_domain_name_by_scope true

See also
N/A

upfin_extend_power_domain_name_by_scope 1460
Tweaker™ Variables Version T-2022.03

user_defined_staple_via_names
# Defind staple via names

Type
String

Default

Description
Tweaker have internal methodology to identify staple vias if turning on the

variable "_cell_pin_avoid_staple_vias". On the other hand, user could also

specify staple via names by this variable.

Once the vias defined as staple vias, Tweaker will ignore these vias when

ECO operation.

Example
set user_defined_staple_via_names *staple_via12* *staple_via23*

See also
N/A

user_defined_staple_via_names 1461
Tweaker™ Variables Version T-2022.03

user_defined_staple_via_names 1462
Tweaker™ Variables Version T-2022.03

user_name
# Returns the name of the current user.

Type
String

Default
"whoami"

Description
This variable returns the name of the current user.

User are not suggested to do a manual editing on this variable which cause

Tweaker to return an inaccurate user name.

Example
printvar user_name

See also
N/A

user_name 1463
Tweaker™ Variables Version T-2022.03

utilization_threshold_for_check_def_quality
# Tweaker vars to check def placement densitiy threshold when do reading each

def file.

Type
float

Default
0.9

Description
When Tweaker reads def file, if physical cells to be ignored list are

assigned incorrectly (cause space full without free space) or design itself

is with high density, we can foresee this condition and base on this var's

threshold to provide early warning to user right after defin for the def

file. User can further use GUI physical view to exam and no need to waste

the time to run through entire Tweaker and see a lot of blocking codes of no

free space.

Example

utilization_threshold_for_check_def_quality 1464
Tweaker™ Variables Version T-2022.03

set utilization_threshold_for_check_def_quality 0.8

defin ...

See also

utilization_threshold_for_check_def_quality 1465
Tweaker™ Variables Version T-2022.03

verilog_modules_to_be_ignored
# To let Tweaker to ignore user specified modules when importing verilog(s).

Type
String

Default
empty

Description
Module names specified by this variable will be ignored when "verilogin"

command was executed to import verilog(s) to Tweaker.

By default, "verilogin" reads in whole design netlist(s).

Example
set verilog_modules_to_be_ignored { moduleA moduleB moduleC }

See also
N/A

verilog_modules_to_be_ignored 1466
Tweaker™ Variables Version T-2022.03

verilogout_ignore_module_list
# Specifies the module list which will not be generated by Tweaker.

Type
String

Default
empty

Description
Module names specified by this variable will not be generated when

executing the "verilogout" command in Tweaker.

By default, "verilogout" will generate the all of the netlist(s).

Example
set verilogout_ignore_module_list { module_A module_B module_C }

See also
N/A

verilogout_ignore_module_list 1467
Tweaker™ Variables Version T-2022.03

version
# Tweaker system variable to record the version of the make date.

Type
String

Default
Tweaker version make date (YYYY/MM/DD).

Description
This variable records the current Tweaker version make date.

It is a system variable and not suggested to be overwritten.

Example
printvar version

See also
session_version

version 1468
Tweaker™ Variables Version T-2022.03

vertical_cell_edge_spacing_rule_filter
# Ignore vertical cell edge spacing rule check if the spacing is lesser than or

equal to specified value.

Type
Float

Default
0.0

Description
This variable is used for ignoring rule check for vertical abutment rule if

the spacing is lesser than or equal to the given value.

Example
set enable_cell_edge_spacing_rule true

set vertical_cell_edge_spacing_rule_filter 0.01

See also
set_lib_cell_spacing_label (cmd)
set_spacing_label_rule (cmd)

vertical_cell_edge_spacing_rule_filter 1469
Tweaker™ Variables Version T-2022.03

report_cell_edge_spacing_rules (cmd)
report_cell_edge_spacing_rules (cmd)
enable_cell_edge_spacing_rule (var)
lefin_cell_width_spacing_rule (var)
horizontal_cell_edge_spacing_rule_filter (var)

vertical_cell_edge_spacing_rule_filter 1470
Tweaker™ Variables Version T-2022.03

vertical_pin_avoid_power_strap
# Enable vertical pin not overlap with corresponding power strap feature

Type
Boolean

Default
false

Description
Specifically for 10nm process or below, cell's vertical pin must avoid its

placement overlap with its corresponding power strap/COVER/FIXED nets or

power strap of follow pin on cell's power/ground.

Example
set vertical_pin_track_color_aware true

set vertical_pin_avoid_power_strap true

lefin ...

defin ...

vertical_pin_avoid_power_strap 1471
Tweaker™ Variables Version T-2022.03

See also
vertical_pin_track_color_aware

vertical_pin_avoid_power_strap 1472
Tweaker™ Variables Version T-2022.03

vertical_pin_track_color_aware
# Enable routing track color aware

Type
Boolean

Default
false

Description
In advanced process like 10nm or below, foundry may have the same metal

routing track to be distinguished by different colors.

Cell's vertical pin must be aligned with the correct routing track color to

be placed.

The track and available colors are defined at def file while the metal

layers and cell pin's color are defined at lef files.

Hence we need both file to be matched to enable the routing track color

aware (on vertical pin).

Example

vertical_pin_track_color_aware 1473
Tweaker™ Variables Version T-2022.03

set vertical_pin_track_color_aware true

set vertical_pin_avoid_power_strap true

lefin ...

defin ...

See also
vertical_pin_avoid_power_strap

vertical_pin_track_color_aware 1474
Tweaker™ Variables Version T-2022.03

via0_alignment_check_cell_margin
# Check the via0 layers in cell edge.

Type
Float

Default
Empty

Description
In 12nm process, via0 alignment rule is only honored for those via0 layers

on cell boundary.

Specifies the distance to check the via0 layers in cell edge. By default,

this variable is empty and Tweaker will take the width of METAL1 as the

distance to check the via0 layers in cell edge.

The unit size of this variable is um (10^-6 m).

Example
set via0_alignment_check_cell_margin 0.032

via0_alignment_check_cell_margin 1475
Tweaker™ Variables Version T-2022.03

See also
report_via0_alignment_rule (cmd)
report_via0_alignment_violation (cmd)
set_via0_alignment_rule (cmd)
disable_via0_rule_on_cell (var)
enable_via0_alignment (var)

via0_alignment_check_cell_margin 1476
Tweaker™ Variables Version T-2022.03

voltage_slack_target
# Voltage slack target during autofix and Vmin ECO flow.

Type
Float

Default
0.00

Description
This variable contains the voltage target slack value for Vmin paths when

fixing Vmin violations.

Tweaker converts the voltage target slack to setup target slack for each

Vmin path for Vmin ECO. The converted setup target slack could be different

in each path.Tweaker also shifts the path timing slack to add the offset

for the Vmin ECO use. It affects Vmin paths only. The voltage-to-timing

convertion bases on the path attribute "slack_vdd_sensitivity".

This variable affects the autofix in command slkfix -vmin and the summary

command slkreport -vmin.

In GUI SlackView, the timing Slack values in Path page are updated/shifted

rapidly by changing the value of voltage_slack_target.

voltage_slack_target 1477
Tweaker™ Variables Version T-2022.03

Vmin attributes also refer to this variable.

Example
source libin_ssgnp_0p81v_125c.tcl

source libin_ssgnp_0p75v_125c.tcl

......

scale_lib -voltage 0.800 -temperature 125 -ref_group { lib_ssgnp_0p81v_125c lib_ssgnp_0p75v_125c } -name lib_ssgnp_0p80v_125

......

begin_corner ssgnp_0p81v_125c

set_group -lib lib_ssgnp_0p81v_125c

......

end_corner ssgnp_0p81v_125c

begin_corner ssgnp_0p80v_125c

set_group -lib lib_ssgnp_0p80v_125c

end_corner ssgnp_0p80v_125c

......

set_voltage_sensitivity_corner -base ssgnp_0p81v_125c -ref ssgnp_0p80v_125c

......

slkdc -check_slack_consistency

......

set voltage_slack_target 0.020

......

voltage_slack_target 1478
Tweaker™ Variables Version T-2022.03

slkfix -vmin

......

slkreport -vmin

See also
voltage_sensitivity_corner (var)
set_voltage_sensitivity_corner (cmd)
slkfix (cmd)
slkreport (cmd)

voltage_slack_target 1479
Tweaker™ Variables Version T-2022.03

watch_cell_geometry_for_vt_width
# Enables or disables to define VT width by check VT layer geometry in OBS section of cell lef.

Type
Boolean

Default
false

Description
VT width and spacing rules refer to VT layer geometry. VT layer

geometry of P/N device are defined in OBS section of cell lef file.

In advanced process, VT layer width could be not equal to lib cell

width. Therefore, for checking VT rules, it's necessary to measure

the VT layer geometry inside abutting instances to get the real

continuous VT width of these instance.

Set this variable true before lefin, if users want to enable this

behavior.

Example

watch_cell_geometry_for_vt_width 1480
Tweaker™ Variables Version T-2022.03

# Before lefin

set enable_cell_width_spacing_rule true

set lefin_cell_width_spacing_rule true

set watch_cell_geometry_for_vt_width true

lefin .....

See also
enable_cell_width_spacing_rule

lefin_cell_width_spacing_rule

watch_cell_geometry_for_vt_width 1481

You might also like