在使用 IC Compiler 進行 place and route 時,有些 timing 或 load 比較在意的繞線,可以在進行 route 之前,使用 create_custom_wire 指令進行連接。
start_gui # 開啟 GUI 介面
set_preroute_drc_strategy -no_design_rule -min_layer M1 -max_layer M6 # 暫時關閉 DRC 檢查
create_custom_wire -start_command # 開始進行繞線
create_custom_wire -snap_to_track false # 關閉自動對齊 routing track
create_custom_wire -vertical_layer M6 # 指定垂直連線金屬層
create_custom_wire -vertical_width 0.4 # 指定垂直連線寬度
create_custom_wire -horizontal_layer M5 # 指定水平連線金屬層
create_custom_wire -horizontal_width 0.4 # 指定水平連線寬度
create_custom_wire -nets net_name # 指定 net 名稱,必須是真實存在的一條 net
create_custom_wire -add_point [list $START_X $START_Y] # 起點座標
create_custom_wire -add_point [list $POINT1_X $POINT1_Y] # 中間點座標
create_custom_wire -add_point [list $POINT2_X $POINT2_Y] # 中間點座標
create_custom_wire -add_point [list $END_X $END_Y] # 終點座標
create_custom_wire -end_points # 結束此條 net
create_custom_wire -end_command # 結束繞線
set_preroute_drc_strategy -min_layer M1 -max_layer M6 # 重新開啟 DRC 檢查
由於 create_custom_wire 需要有 GUI 介面才能進行,因此在一開始必須開啟 GUI。在繞線的過程中,ICC 會自動在轉折處打上VIA。