⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 route_opt_icc.tcl

📁 synopsys icc 使用参考脚本
💻 TCL
字号:
## ICC RM Version: B-2008.09        ############################################## route_opt_icc: Post Route optimization ##############################################source -echo icc_setup.tclopen_mw_lib $MW_DESIGN_LIBRARYredirect /dev/null "remove_mw_cel -version_kept 0 ${ICC_ROUTE_OPT_CEL}" copy_mw_cel -from $ICC_ROUTE_CEL -to $ICC_ROUTE_OPT_CELopen_mw_cel $ICC_ROUTE_OPT_CELlinksource -echo common_optimization_settings_icc.tclsource -echo common_placement_settings_icc.tclsource -echo common_post_cts_timing_settings.tcl## Load the route and si settingssource -echo common_route_si_settings_icc.tcl################################ RP : Relative Placement  ##     ################################ Ensuring that the RP cells are not changed during clock_opt#set_rp_group_options [all_rp_groups] -route_opt_option fixed_placement#set_rp_group_options [all_rp_groups] -route_opt_option "size_only"if { [check_error -verbose] != 0} { echo "SCRIPT-Error, flagging ..." }## start the post route optimizationset_app_var compile_instance_name_prefix icc_routeif {$LEAKAGE_POWER} {  ##Execute post route leakage opto  if {$ICC_STRATEGY == "TTR" } {     route_opt -skip_initial_route -effort low -power   }   if {$ICC_STRATEGY == "QOR" } {     route_opt -skip_initial_route -effort medium -xtalk_reduction -power  }} else {  ##Default route_opt without leakage opto  if {$ICC_STRATEGY == "TTR" } {     route_opt -skip_initial_route -effort low   }  if {$ICC_STRATEGY == "QOR" } {     route_opt -skip_initial_route -effort medium -xtalk_reduction  }}#########################################   ADDITIONAL ROUTE_OPT FEATURES      ########################################### Additional Max_transition fixing :## By default, route_opt will prioritize WNS and TNS over DRC ( e.g. max_tran fixing). If you want to ## change this behavior, and give top priority to the DRC fixing, you need to set the variable below.## Keep in mind : this variable, only works with the -only_design_rule swich in route_opt itself.## violations.#  set_app_var routeopt_drc_over_timing true#  route_opt -effort high -incremental -only_design_rule## Optimizing wirelenght and vias . Add the switch : -optimize_wire_via to the route_opt command :#   route_opt -optimize_wire_via -effort low -xtalk_reduction ## Improving QoR after the default route_opt run : #   route_opt -inc## Limiting route_opt to specific optimization steps :#   route_opt -size_only : do not insert buffers or move cells : limits the disturbance to the design#   route_opt -only_xtalk_reduction : run only the Xtalk reduction engine#   route_opt -only_hold_time : run only the Hold fixing engine#   route_opt -(only_)wire_size : runs the wire size engine, that fixis timing violations by applying #                                 NDR's created by define_routing_rule## Running size_only but still allowing buffers to be inserted for hold fixing :#  set_app_var routeopt_allow_min_buffer_with_size_only trueif { [check_error -verbose] != 0} { echo "SCRIPT-Error, flagging ..." }if {$MV_MODE != "NONE"} {  ## in case new nets are created that go from one VA to another, level shifters need to be inserted on these nets   # insert_level_shifters -all_clock_nets -verbose  ## optionally insert isolation cells   # insert_isolation_cell -reference $lib_cell -enable [find net $enable_net] -object_list [get_net $nets_missing_isolation_cells]}#########################################           CONNECT P/G                ########################################### Connect Power & Ground for non-MV and MV-modeif { $CUSTOM_CONNECT_PG_NETS_SCRIPT != ""} {  if {[file exists [which $CUSTOM_CONNECT_PG_NETS_SCRIPT]]} {    source -echo $CUSTOM_CONNECT_PG_NETS_SCRIPT   }} else { if {$MV_MODE == "NONE"} {  derive_pg_connection -create_net  derive_pg_connection -reconnect } if {$MV_MODE == "NONUPF"} {  source -echo mv_pg_connect.tcl  } if {$MV_MODE == "UPF"} {  derive_pg_connection -create_net -verbose  derive_pg_connection -reconnect -verbose  redirect -file $REPORTS_DIR/route_opt.mv {check_mv_design -power_nets -verbose}  save_upf $RESULTS_DIR/$ICC_ROUTE_OPT_CEL.upf }}redirect -file $REPORTS_DIR/$ICC_ROUTE_OPT_CEL.qor {report_qor}redirect -file $REPORTS_DIR/$ICC_ROUTE_OPT_CEL.con {report_constraints}if {$MCMM_MODE } {  set_active_scenarios [lminus [all_scenarios] $ICC_MCMM_CTS_SCENARIO]   update_timing   redirect -file $REPORTS_DIR/$ICC_ROUTE_OPT_CEL.max.tim {report_timing -crosstalk_delta -scenario [all_scenarios] -capacitance -transition_time -input_pins -nets -delay max}  redirect -file $REPORTS_DIR/$ICC_ROUTE_OPT_CEL.min.tim {report_timing -crosstalk_delta -scenario [all_scenarios] -capacitance -transition_time -input_pins -nets -delay min}} else { redirect -file $REPORTS_DIR/$ICC_ROUTE_OPT_CEL.max.tim {report_timing -crosstalk_delta -capacitance -transition_time -input_pins -nets -delay max} redirect -file $REPORTS_DIR/$ICC_ROUTE_OPT_CEL.min.tim {report_timing -crosstalk_delta -capacitance -transition_time -input_pins -nets -delay min}}## Create Snapshot and Savecreate_qor_snapshot -timing -constraint -congestion -clock_tree -route -name $ICC_ROUTE_OPT_CELsave_mw_cel -as $ICC_ROUTE_OPT_CELredirect -file $REPORTS_DIR/$ICC_ROUTE_OPT_CEL.qor_snapshot.rpt {report_qor_snapshot}exit

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -