Swap instances to improve routing and timing

On IC layout, swapping two instances with the same type can improve routing quality and timing. GOF has an API to support this, swap_inst.

Figure 1: Swap two instances by swap_inst

Put the two instance names as the arguments for swap_inst, the tool will swap the connections of the two instances.

# Swap two instances with the same type
swap_inst("uge/udp/upcs/urx/upcs_sd/p2685A", "uge/udp/upcs/urx/upcs_sd/p2680A");
write_tcl("swapping_inst.tcl");

From the layout view below, with two AND gate being marked by stars, the routing quality has been improved after swapping, hence timing would be improved.

Figure 2: Layout view after swapping

The API can greatly increase the efficiency of logic modification. If using TCL script to swap the instances, it will involve many lines. For comparison, the content of written out TCL file swapping_inst.tcl:

current_instance
current_instance uge/udp/upcs/urx/upcs_sd
disconnect_net [get_nets n_11] [get_pins cnt_reg_2/D]
connect_net [get_nets n_8] [get_pins cnt_reg_2/D]
disconnect_net [get_nets n_10] [get_pins p2680A/B]
connect_net [get_nets n_4] [get_pins p2680A/B]
disconnect_net [get_nets n_8] [get_pins cnt_reg_1/D]
connect_net [get_nets n_11] [get_pins cnt_reg_1/D]
disconnect_net [get_nets n_4] [get_pins p2685A/B]
connect_net [get_nets n_10] [get_pins p2685A/B]

Follow us:
NanDigits.com US | NanDigits.cn China
© 2022 NanDigits Design Automation. All rights reserved.