Update chip_io configs of the LVS clean padframe
diff --git a/openlane/chip_io/config.tcl b/openlane/chip_io/config.tcl old mode 100644 new mode 100755 index 9a2145a..dba3bbc --- a/openlane/chip_io/config.tcl +++ b/openlane/chip_io/config.tcl
@@ -15,13 +15,18 @@ set ::env(SYNTH_FLAT_TOP) 1 set ::env(USE_GPIO_PADS) 1 + set ::env(FP_SIZING) absolute -set ::env(DIE_AREA) "0 0 3588 5188" + +set fd [open "$script_dir/../chip_dimensions.txt" "r"] +set ::env(DIE_AREA) [read $fd] +close $fd set ::env(MAGIC_WRITE_FULL_LEF) 1 set ::env(DIODE_INSERTION_STRATEGY) 0 -set ::env(GLB_RT_TILES) 20 +set ::env(GLB_RT_TILES) 12 set ::env(GLB_RT_UNIDIRECTIONAL) 0 # set ::env(GLB_RT_ALLOW_CONGESTION) 1 +# set ::env(GLB_RT_OVERFLOW_ITERS) 150
diff --git a/openlane/chip_io/interactive.tcl b/openlane/chip_io/interactive.tcl old mode 100644 new mode 100755 index 2529819..8e5de2e --- a/openlane/chip_io/interactive.tcl +++ b/openlane/chip_io/interactive.tcl
@@ -1,19 +1,31 @@ package require openlane set script_dir [file dirname [file normalize [info script]]] - -prep -design $script_dir -tag chip_io -overwrite set save_path $script_dir/../.. -# set ::env(SYNTH_DEFINES) "" -# verilog_elaborate -# init_floorplan -# file copy $::env(CURRENT_DEF) $::env(TMP_DIR)/lvs.def +# FOR LVS AND CREATING PORT LABELS +set ::env(USE_GPIO_ROUTING_LEF) 0 +prep -design $script_dir -tag chip_io_lvs -overwrite + +set ::env(SYNTH_DEFINES) "" +verilog_elaborate +init_floorplan +file copy -force $::env(CURRENT_DEF) $::env(TMP_DIR)/lvs.def +file copy -force $::env(CURRENT_NETLIST) $::env(TMP_DIR)/lvs.v + +# ACTUAL CHIP INTEGRATION +set ::env(USE_GPIO_ROUTING_LEF) 1 +prep -design $script_dir -tag chip_io -overwrite + +file copy $script_dir/runs/chip_io_lvs/tmp/merged_unpadded.lef $::env(TMP_DIR)/lvs.lef +file copy $script_dir/runs/chip_io_lvs/tmp/lvs.def $::env(TMP_DIR)/lvs.def +file copy $script_dir/runs/chip_io_lvs/tmp/lvs.v $::env(TMP_DIR)/lvs.v set ::env(SYNTH_DEFINES) "TOP_ROUTING" verilog_elaborate init_floorplan +puts_info "Generating pad frame" exec -ignorestderr python3 $::env(SCRIPTS_DIR)/padringer.py\ --def-netlist $::env(CURRENT_DEF)\ --design $::env(DESIGN_NAME)\ @@ -21,50 +33,49 @@ -cfg $script_dir/padframe.cfg\ --working-dir $::env(TMP_DIR)\ -o $::env(RESULTS_DIR)/floorplan/padframe.def +puts_info "Generated pad frame" set_def $::env(RESULTS_DIR)/floorplan/padframe.def # modify to a different file remove_pins -input $::env(CURRENT_DEF) - remove_empty_nets -input $::env(CURRENT_DEF) add_macro_obs \ -defFile $::env(CURRENT_DEF) \ -lefFile $::env(MERGED_LEF_UNPADDED) \ -obstruction core_obs \ - -placementX 500 \ - -placementY 500 \ - -sizeWidth 2200 \ - -sizeHeight 4300 \ + -placementX 230 \ + -placementY 240 \ + -sizeWidth 3132 \ + -sizeHeight 4710 \ -fixed 1 \ -layerNames "met1 met2 met3 met4 met5" - li1_hack_start global_routing detailed_routing li1_hack_end -# label_macro_pins\ -# -lef $::env(MERGED_LEF_UNPADDED)\ -# -netlist_def $::env(CURRENT_DEF)\ -# -pad_pin_name "PAD"\ -# -extra_args {-v\ -# --map mgmt_vdda_hvclamp_pad VDDA vdda INOUT\ -# --map user1_vdda_hvclamp_pad\\\[0\\] VDDA vdda1 INOUT\ -# --map user2_vdda_hvclamp_pad VDDA vdda2 INOUT\ -# --map mgmt_vssa_hvclamp_pad VSSA vssa INOUT\ -# --map user1_vssa_hvclamp_pad\\\[0\\] VSSA vssa1 INOUT\ -# --map user2_vssa_hvclamp_pad VSSA vssa2 INOUT\ -# --map mgmt_vccd_lvclamp_pad VCCD vccd INOUT\ -# --map user1_vccd_lvclamp_pad VCCD vccd1 INOUT\ -# --map user2_vccd_lvclamp_pad VCCD vccd2 INOUT\ -# --map mgmt_vssd_lvclmap_pad VSSD vssd INOUT\ -# --map user1_vssd_lvclmap_pad VSSD vssd1 INOUT\ -# --map user2_vssd_lvclmap_pad VSSD vssd2 INOUT\ -# --map mgmt_vddio_hvclamp_pad\\\[0\\] VDDIO vddio INOUT\ -# --map mgmt_vssio_hvclamp_pad\\\[0\\] VSSIO vssio INOUT} +label_macro_pins\ + -lef $::env(TMP_DIR)/lvs.lef\ + -netlist_def $::env(TMP_DIR)/lvs.def\ + -pad_pin_name "PAD"\ + -extra_args {-v\ + --map mgmt_vdda_hvclamp_pad VDDA vdda INOUT\ + --map user1_vdda_hvclamp_pad\\\[0\\] VDDA vdda1 INOUT\ + --map user2_vdda_hvclamp_pad VDDA vdda2 INOUT\ + --map mgmt_vssa_hvclamp_pad VSSA vssa INOUT\ + --map user1_vssa_hvclamp_pad\\\[0\\] VSSA vssa1 INOUT\ + --map user2_vssa_hvclamp_pad VSSA vssa2 INOUT\ + --map mgmt_vccd_lvclamp_pad VCCD vccd INOUT\ + --map user1_vccd_lvclamp_pad VCCD vccd1 INOUT\ + --map user2_vccd_lvclamp_pad VCCD vccd2 INOUT\ + --map mgmt_vssd_lvclmap_pad VSSD vssd INOUT\ + --map user1_vssd_lvclmap_pad VSSD vssd1 INOUT\ + --map user2_vssd_lvclmap_pad VSSD vssd2 INOUT\ + --map mgmt_vddio_hvclamp_pad\\\[0\\] VDDIO vddio INOUT\ + --map mgmt_vssio_hvclamp_pad\\\[0\\] VSSIO vssio INOUT} run_magic @@ -79,5 +90,5 @@ -tag $::env(RUN_TAG) -# run_magic_spice_export -# run_lvs +run_magic_spice_export +run_lvs $::env(magic_result_file_tag).spice $::env(TMP_DIR)/lvs.v
diff --git a/openlane/chip_io/padframe.cfg b/openlane/chip_io/padframe.cfg index d73bd0b..fde59c2 100644 --- a/openlane/chip_io/padframe.cfg +++ b/openlane/chip_io/padframe.cfg
@@ -1,73 +1,237 @@ -AREA 3200 5300 ; +AREA 3588 5188 ; CORNER mgmt_corner\[0\] SW sky130_ef_io__corner_pad ; -CORNER mgmt_corner\[1\] NW sky130_ef_io__corner_pad ; +CORNER mgmt_corner\[1\] SE sky130_ef_io__corner_pad ; CORNER user1_corner NE sky130_ef_io__corner_pad ; -CORNER user2_corner SE sky130_ef_io__corner_pad ; +CORNER user2_corner NW sky130_ef_io__corner_pad ; -PAD mprj_pads.area2_io_pad\[5\] N sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[4\] N sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[3\] N sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[2\] N sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[1\] N sky130_ef_io__gpiov2_pad ; +PAD mprj_pads.area2_io_pad\[5\] N sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[4\] N sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[3\] N sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[2\] N sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[1\] N sky130_ef_io__gpiov2_pad_wrapped ; PAD mgmt_vssio_hvclamp_pad\[0\] N sky130_ef_io__vssio_hvc_pad ; -PAD mprj_pads.area2_io_pad\[0\] N sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[17\] N sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[16\] N sky130_ef_io__gpiov2_pad ; +PAD mprj_pads.area2_io_pad\[0\] N sky130_ef_io__gpiov2_pad_wrapped ; +PAD disconnect_vdda_0 N sky130_ef_io__disconnect_vdda_slice_5um ; +SPACE 0 ; +PAD disconnect_vccd_0 N sky130_ef_io__disconnect_vccd_slice_5um ; +PAD mprj_pads.area1_io_pad\[17\] N sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[16\] N sky130_ef_io__gpiov2_pad_wrapped ; PAD user1_vssa_hvclamp_pad\[0\] N sky130_ef_io__vssa_hvc_pad ; -PAD mprj_pads.area1_io_pad\[15\] N sky130_ef_io__gpiov2_pad ; +PAD mprj_pads.area1_io_pad\[15\] N sky130_ef_io__gpiov2_pad_wrapped ; -PAD mprj_pads.area1_io_pad\[0\] E sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[1\] E sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[2\] E sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[3\] E sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[4\] E sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[5\] E sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[6\] E sky130_ef_io__gpiov2_pad ; +PAD disconnect_vdda_1 E sky130_ef_io__disconnect_vdda_slice_5um ; +SPACE 0 ; +PAD disconnect_vccd_1 E sky130_ef_io__disconnect_vccd_slice_5um ; +PAD mprj_pads.area1_io_pad\[0\] E sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[1\] E sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[2\] E sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[3\] E sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[4\] E sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[5\] E sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[6\] E sky130_ef_io__gpiov2_pad_wrapped ; PAD user1_vssa_hvclamp_pad\[1\] E sky130_ef_io__vssa_hvc_pad ; PAD user1_vssd_lvclmap_pad E sky130_ef_io__vssd_lvc_pad ; PAD user1_vdda_hvclamp_pad\[1\] E sky130_ef_io__vdda_hvc_pad ; -PAD mprj_pads.area1_io_pad\[7\] E sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[8\] E sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[9\] E sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[10\] E sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[11\] E sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area1_io_pad\[12\] E sky130_ef_io__gpiov2_pad ; +PAD mprj_pads.area1_io_pad\[7\] E sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[8\] E sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[9\] E sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[10\] E sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[11\] E sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area1_io_pad\[12\] E sky130_ef_io__gpiov2_pad_wrapped ; PAD user1_vdda_hvclamp_pad\[0\] E sky130_ef_io__vdda_hvc_pad ; -PAD mprj_pads.area1_io_pad\[13\] E sky130_ef_io__gpiov2_pad ; +PAD mprj_pads.area1_io_pad\[13\] E sky130_ef_io__gpiov2_pad_wrapped ; PAD user1_vccd_lvclamp_pad E sky130_ef_io__vccd_lvc_pad ; -PAD mprj_pads.area1_io_pad\[14\] E sky130_ef_io__gpiov2_pad ; +PAD mprj_pads.area1_io_pad\[14\] E sky130_ef_io__gpiov2_pad_wrapped ; + +PAD bus_tie_1 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_2 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_3 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_4 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_5 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_6 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; PAD mgmt_vssa_hvclamp_pad S sky130_ef_io__vssa_hvc_pad ; + +PAD bus_tie_7 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_8 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_9 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_10 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_11 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_12 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; + + PAD resetb_pad S sky130_fd_io__top_xres4v2 ; -PAD clock_pad S sky130_ef_io__gpiov2_pad ; + +PAD bus_tie_13 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_14 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_15 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_16 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_17 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_18 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; + +PAD clock_pad S sky130_ef_io__gpiov2_pad_wrapped ; + +PAD bus_tie_19 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_20 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_21 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_22 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_23 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_24 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; + PAD mgmt_vssd_lvclmap_pad S sky130_ef_io__vssd_lvc_pad ; -PAD flash_csb_pad S sky130_ef_io__gpiov2_pad ; -PAD flash_clk_pad S sky130_ef_io__gpiov2_pad ; -PAD flash_io0_pad S sky130_ef_io__gpiov2_pad ; -PAD flash_io1_pad S sky130_ef_io__gpiov2_pad ; -PAD gpio_pad S sky130_ef_io__gpiov2_pad ; + +PAD bus_tie_25 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_26 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_27 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_28 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_29 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_30 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; + +PAD flash_csb_pad S sky130_ef_io__gpiov2_pad_wrapped ; + +PAD bus_tie_31 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_32 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_33 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_34 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_35 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_36 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; + +PAD flash_clk_pad S sky130_ef_io__gpiov2_pad_wrapped ; + +PAD bus_tie_37 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_38 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_39 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_40 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_41 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_42 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; + +PAD flash_io0_pad S sky130_ef_io__gpiov2_pad_wrapped ; + +PAD bus_tie_43 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_44 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_45 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_46 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_47 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_48 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; + +PAD flash_io1_pad S sky130_ef_io__gpiov2_pad_wrapped ; + +PAD bus_tie_49 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_50 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_51 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_52 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_53 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_54 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; + +PAD gpio_pad S sky130_ef_io__gpiov2_pad_wrapped ; + +PAD bus_tie_55 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_56 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_57 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_58 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_59 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_60 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; + PAD mgmt_vssio_hvclamp_pad\[1\] S sky130_ef_io__vssio_hvc_pad ; + +PAD bus_tie_61 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_62 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_63 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_64 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_65 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_66 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; + PAD mgmt_vdda_hvclamp_pad S sky130_ef_io__vdda_hvc_pad ; +PAD bus_tie_67 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_68 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_69 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_70 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_71 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; +SPACE 0 ; +PAD bus_tie_72 S sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um ; + PAD mgmt_vccd_lvclamp_pad W sky130_ef_io__vccd_lvc_pad ; PAD mgmt_vddio_hvclamp_pad\[0\] W sky130_ef_io__vddio_hvc_pad ; -PAD mprj_pads.area2_io_pad\[19\] W sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[18\] W sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[17\] W sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[16\] W sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[15\] W sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[14\] W sky130_ef_io__gpiov2_pad ; +PAD disconnect_vdda_2 W sky130_ef_io__disconnect_vdda_slice_5um ; +SPACE 0 ; +PAD disconnect_vccd_2 W sky130_ef_io__disconnect_vccd_slice_5um ; +PAD mprj_pads.area2_io_pad\[19\] W sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[18\] W sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[17\] W sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[16\] W sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[15\] W sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[14\] W sky130_ef_io__gpiov2_pad_wrapped ; PAD user2_vssd_lvclmap_pad W sky130_ef_io__vssd_lvc_pad ; PAD user2_vdda_hvclamp_pad W sky130_ef_io__vdda_hvc_pad ; -PAD mprj_pads.area2_io_pad\[13\] W sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[12\] W sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[11\] W sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[10\] W sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[9\] W sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[8\] W sky130_ef_io__gpiov2_pad ; -PAD mprj_pads.area2_io_pad\[7\] W sky130_ef_io__gpiov2_pad ; +PAD mprj_pads.area2_io_pad\[13\] W sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[12\] W sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[11\] W sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[10\] W sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[9\] W sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[8\] W sky130_ef_io__gpiov2_pad_wrapped ; +PAD mprj_pads.area2_io_pad\[7\] W sky130_ef_io__gpiov2_pad_wrapped ; PAD user2_vssa_hvclamp_pad W sky130_ef_io__vssa_hvc_pad ; PAD mgmt_vddio_hvclamp_pad\[1\] W sky130_ef_io__vddio_hvc_pad ; PAD user2_vccd_lvclamp_pad W sky130_ef_io__vccd_lvc_pad ; -PAD mprj_pads.area2_io_pad\[6\] W sky130_ef_io__gpiov2_pad ; +PAD mprj_pads.area2_io_pad\[6\] W sky130_ef_io__gpiov2_pad_wrapped ;