Merge branch 'master' into develop
diff --git a/.travisCI/runPrecheck.sh b/.travisCI/runPrecheck.sh index 099f447..d495481 100644 --- a/.travisCI/runPrecheck.sh +++ b/.travisCI/runPrecheck.sh
@@ -17,7 +17,7 @@ export PDK_ROOT=$(pwd)/pdks cd $TARGET_PATH/open_mpw_precheck/ -docker run -v $(pwd):/usr/local/bin -v $TARGET_PATH:$TARGET_PATH -v $PDK_ROOT:$PDK_ROOT -u $(id -u $USER):$(id -g $USER) open_mpw_prechecker:latest bash -c "python3 open_mpw_prechecker.py -p $PDK_ROOT -t $TARGET_PATH" +docker run -v $(pwd):/usr/local/bin -v $TARGET_PATH:$TARGET_PATH -v $PDK_ROOT:$PDK_ROOT -u $(id -u $USER):$(id -g $USER) efabless/open_mpw_precheck:latest bash -c "python3 open_mpw_prechecker.py -p $PDK_ROOT -t $TARGET_PATH" output=$TARGET_PATH/checks/full_log.log gzipped_file=$TARGET_PATH/checks/full_log.log.gz @@ -26,6 +26,8 @@ gzip -d $gzipped_file fi +grep "Violation Message" $output + cnt=$(grep -c -i "DRC violations" $output) if ! [[ $cnt ]]; then cnt=0; fi if [[ $cnt -eq 2 ]]; then exit 0; fi
diff --git a/.travisCI/travisBuild.sh b/.travisCI/travisBuild.sh index 68d3fb4..907c1e6 100644 --- a/.travisCI/travisBuild.sh +++ b/.travisCI/travisBuild.sh
@@ -15,8 +15,9 @@ export TARGET_PATH=$(pwd) git clone https://github.com/efabless/open_mpw_precheck.git -cd open_mpw_precheck/dependencies -sh build-docker.sh + +docker pull efabless/open_mpw_precheck:latest + cd $TARGET_PATH/.. export PDK_ROOT=$(pwd)/pdks mkdir $PDK_ROOT
diff --git a/gds/advSeal_6um_gen.gds.gz b/gds/advSeal_6um_gen.gds.gz index dc88df8..290be1a 100644 --- a/gds/advSeal_6um_gen.gds.gz +++ b/gds/advSeal_6um_gen.gds.gz Binary files differ
diff --git a/mag/advSeal_6um_gen.mag b/mag/advSeal_6um_gen.mag index 6892cc3..9d77488 100644 --- a/mag/advSeal_6um_gen.mag +++ b/mag/advSeal_6um_gen.mag
@@ -4,22 +4,22 @@ use seal_ring_corner_abstract seal_ring_corner_abstract_0 timestamp 1584566221 transform 1 0 0 0 1 0 -box 0 0 160716 265712 +box 0 0 180000 260000 use seal_ring_corner_abstract seal_ring_corner_abstract_3 timestamp 1584566221 -transform -1 0 321432 0 1 0 -box 0 0 160716 265712 +transform -1 0 360000 0 1 0 +box 0 0 180000 260000 use seal_ring_corner_abstract seal_ring_corner_abstract_1 timestamp 1584566221 -transform 1 0 0 0 -1 531424 -box 0 0 160716 265712 +transform 1 0 0 0 -1 520000 +box 0 0 180000 260000 use seal_ring_corner_abstract seal_ring_corner_abstract_2 timestamp 1584566221 -transform -1 0 321432 0 -1 531424 -box 0 0 160716 265712 +transform -1 0 360000 0 -1 520000 +box 0 0 180000 260000 << properties >> string LEFview no_prefix -string GDS_FILE advSeal_6um_gen.gds +string GDS_FILE ../gds/advSeal_6um_gen.gds string GDS_START 0 -string FIXED_BBOX 0 0 321432 531424 +string FIXED_BBOX 0 0 360000 520000 << end >>
diff --git a/mag/seal_ring_corner_abstract.mag b/mag/seal_ring_corner_abstract.mag index 6c30cd5..3b795bd 100644 --- a/mag/seal_ring_corner_abstract.mag +++ b/mag/seal_ring_corner_abstract.mag
@@ -1,25 +1,33 @@ magic tech sky130A -timestamp 1584566221 -<< psubstratepdiff >> -rect 145 1110 355 265712 -tri 145 900 355 1110 ne -tri 355 900 652 1197 sw -tri 355 652 603 900 ne -rect 603 652 652 900 -tri 652 652 900 900 sw -tri 603 355 900 652 ne -tri 900 355 1197 652 sw -tri 900 145 1110 355 ne -rect 1110 145 160716 355 +timestamp 1605459841 +<< psubdiff >> +rect 145 1334 199 260000 +rect 299 1334 355 260000 +rect 145 1197 355 1334 +rect 145 1037 531 1197 +rect 145 998 652 1037 +rect 253 900 652 998 +rect 355 797 792 900 +rect 453 795 792 797 +rect 453 690 900 795 +rect 565 652 900 690 +rect 565 582 1049 652 +rect 663 523 1049 582 +rect 663 480 1197 523 +rect 775 366 1197 480 +rect 862 355 1197 366 +rect 862 299 180000 355 +rect 862 270 1511 299 +rect 985 199 1511 270 +rect 985 145 180000 199 +<< psubdiffcont >> +rect 199 1334 299 260000 +rect 1511 199 180000 299 << locali >> -tri 100 383 217 500 se -rect 217 383 383 500 -tri 383 383 500 500 sw -rect 100 217 500 383 -tri 100 100 217 217 ne -rect 217 100 383 217 -tri 383 100 500 217 nw +rect 199 1214 299 1334 +rect 100 100 500 500 +rect 1437 199 1511 299 << metal1 >> rect 275 325 325 420 rect 180 275 420 325
diff --git a/verilog/dv/caravel/mgmt_soc/timer/Makefile b/verilog/dv/caravel/mgmt_soc/timer/Makefile index 641a453..a62f01c 100644 --- a/verilog/dv/caravel/mgmt_soc/timer/Makefile +++ b/verilog/dv/caravel/mgmt_soc/timer/Makefile
@@ -1,5 +1,6 @@ FIRMWARE_PATH = ../.. -RTL_PATH = ../../../../rtl +VERILOG_PATH = ../../../.. +RTL_PATH = $(VERILOG_PATH)/rtl IP_PATH = ../../../../ip BEHAVIOURAL_MODELS = ../../ @@ -7,6 +8,8 @@ GCC_PREFIX?=riscv32-unknown-elf PDK_PATH?=/ef/tech/SW/sky130A +SIM?=RTL + .SUFFIXES: PATTERN = timer
diff --git a/verilog/dv/caravel/mgmt_soc/timer/timer.c b/verilog/dv/caravel/mgmt_soc/timer/timer.c index c3a8dc4..0ebd8cb 100644 --- a/verilog/dv/caravel/mgmt_soc/timer/timer.c +++ b/verilog/dv/caravel/mgmt_soc/timer/timer.c
@@ -55,7 +55,7 @@ reg_mprj_io_6 = GPIO_MODE_MGMT_STD_OUTPUT; reg_mprj_io_5 = GPIO_MODE_MGMT_STD_OUTPUT; reg_mprj_io_4 = GPIO_MODE_MGMT_STD_OUTPUT; - reg_mprj_io_3 = GPIO_MODE_MGMT_STD_OUTPUT; + // reg_mprj_io_3 = GPIO_MODE_MGMT_STD_OUTPUT; reg_mprj_io_2 = GPIO_MODE_MGMT_STD_OUTPUT; reg_mprj_io_1 = GPIO_MODE_MGMT_STD_OUTPUT; reg_mprj_io_0 = GPIO_MODE_MGMT_STD_OUTPUT;
diff --git a/verilog/dv/caravel/mgmt_soc/timer/timer_tb.v b/verilog/dv/caravel/mgmt_soc/timer/timer_tb.v index acb6798..64cf850 100644 --- a/verilog/dv/caravel/mgmt_soc/timer/timer_tb.v +++ b/verilog/dv/caravel/mgmt_soc/timer/timer_tb.v
@@ -62,6 +62,8 @@ assign checkbits = mprj_io[37:32]; assign countbits = mprj_io[31:0]; + assign mprj_io[3] = 1'b1; // Force CSB high. + wire flash_csb; wire flash_clk; wire flash_io0; @@ -78,32 +80,32 @@ `endif /* Add checks here */ wait(checkbits == 6'h01); - $display(" countbits = 0x%x (should be 0xdcba7cf3)", countbits); - if(countbits !== 32'hdcba7cf3) begin + $display(" countbits = 0x%x (should be 0xdcba7cfb)", countbits); + if(countbits !== 32'hdcba7cfb) begin $display("Monitor: Test Timer Failed"); $finish; end wait(checkbits == 6'h02); - $display(" countbits = 0x%x (should be 0x11)", countbits); - if(countbits !== 32'h11) begin + $display(" countbits = 0x%x (should be 0x19)", countbits); + if(countbits !== 32'h19) begin $display("Monitor: Test Timer Failed"); $finish; end wait(checkbits == 6'h03); $display(" countbits = %x (should be 0x0f)", countbits); - if(countbits !== 32'h0f) begin + if(countbits !== ((32'h0f) | (3'b100))) begin $display("Monitor: Test Timer Failed"); $finish; end wait(checkbits == 6'h04); $display(" countbits = %x (should be 0x0f)", countbits); - if(countbits !== 32'h0f) begin + if(countbits !== ((32'h0f) | (3'b100))) begin $display("Monitor: Test Timer Failed"); $finish; end wait(checkbits == 6'h05); - $display(" countbits = %x (should be 0x12b4)", countbits); - if(countbits !== 32'h12b4) begin + $display(" countbits = %x (should be 0x12bc)", countbits); + if(countbits !== 32'h12bc) begin $display("Monitor: Test Timer Failed"); $finish; end
diff --git a/verilog/dv/caravel/mgmt_soc/timer2/timer2.c b/verilog/dv/caravel/mgmt_soc/timer2/timer2.c index a8c65e0..aa98cce 100644 --- a/verilog/dv/caravel/mgmt_soc/timer2/timer2.c +++ b/verilog/dv/caravel/mgmt_soc/timer2/timer2.c
@@ -56,7 +56,7 @@ reg_mprj_io_6 = GPIO_MODE_MGMT_STD_OUTPUT; reg_mprj_io_5 = GPIO_MODE_MGMT_STD_OUTPUT; reg_mprj_io_4 = GPIO_MODE_MGMT_STD_OUTPUT; - reg_mprj_io_3 = GPIO_MODE_MGMT_STD_OUTPUT; + // reg_mprj_io_3 = GPIO_MODE_MGMT_STD_OUTPUT; reg_mprj_io_2 = GPIO_MODE_MGMT_STD_OUTPUT; reg_mprj_io_1 = GPIO_MODE_MGMT_STD_OUTPUT; reg_mprj_io_0 = GPIO_MODE_MGMT_STD_OUTPUT;
diff --git a/verilog/dv/caravel/mgmt_soc/timer2/timer2_tb.v b/verilog/dv/caravel/mgmt_soc/timer2/timer2_tb.v index 750635d..96aab4e 100644 --- a/verilog/dv/caravel/mgmt_soc/timer2/timer2_tb.v +++ b/verilog/dv/caravel/mgmt_soc/timer2/timer2_tb.v
@@ -78,14 +78,14 @@ `endif /* Add checks here */ wait(checkbits == 6'h01); - $display(" countbits = 0x%x (should be 0xdcba7cf3)", countbits); - if(countbits !== 32'hdcba7cf3) begin + $display(" countbits = 0x%x (should be 0xdcba7cfb)", countbits); + if(countbits !== 32'hdcba7cfb) begin $display("Monitor: Test Timer2 (RTL) Failed"); $finish; end wait(checkbits == 6'h02); - $display(" countbits = 0x%x (should be 0x11)", countbits); - if(countbits !== 32'h11) begin + $display(" countbits = 0x%x (should be 0x19)", countbits); + if(countbits !== 32'h19) begin $display("Monitor: Test Timer2 (RTL) Failed"); $finish; end @@ -102,22 +102,22 @@ $finish; end wait(checkbits == 6'h05); - $display(" countbits = %x (should be 0x12b4)", countbits); - if(countbits !== 32'h12b4) begin + $display(" countbits = %x (should be 0x12bc)", countbits); + if(countbits !== 32'h12bc) begin $display("Monitor: Test Timer2 (RTL) Failed"); $finish; end wait(checkbits == 6'h06); - $display(" countbits = %x (should be 0x0055)", countbits); - if(countbits !== 32'h0055) begin + $display(" countbits = %x (should be 0x005d)", countbits); + if(countbits !== 32'h005d) begin $display("Monitor: Test Timer2 (RTL) Failed"); $finish; end wait(checkbits == 6'h07); - $display(" countbits = %x (should be 0x0000)", countbits); - if(countbits !== 32'h0000) begin + $display(" countbits = %x (should be 0x0008)", countbits); + if(countbits !== 32'h0008) begin $display("Monitor: Test Timer2 (RTL) Failed"); $finish; end @@ -130,8 +130,8 @@ end wait(checkbits == 6'h10); - $display(" countbits = %x (should be 0x0002)", countbits); - if(countbits !== 32'h0002) begin + $display(" countbits = %x (should be 0x000a)", countbits); + if(countbits !== 32'h000a) begin $display("Monitor: Test Timer2 (RTL) Failed"); $finish; end @@ -170,6 +170,8 @@ assign VDD3V3 = power1; assign VDD1V8 = power2; assign VSS = 1'b0; + + assign mprj_io[3] = 1'b1; // Force CSB high. // These are the mappings of mprj_io GPIO pads that are set to // specific functions on startup:
diff --git a/verilog/gl/chip_io.v b/verilog/gl/chip_io.v index b6b5e70..9fcb5ac 100644 --- a/verilog/gl/chip_io.v +++ b/verilog/gl/chip_io.v
@@ -824,6 +824,8 @@ wire vssio_q; wire xresloop; sky130_ef_io__gpiov2_pad_wrapped clock_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(vssd), .ANALOG_POL(vssd), .ANALOG_SEL(vssd), @@ -841,15 +843,28 @@ .IN_H(), .OE_N(vccd), .OUT(vssd), + .PAD(clock), .PAD_A_ESD_0_H(), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(vssd), .TIE_HI_ESD(), .TIE_LO_ESD(loop_clock), + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(vssd) ); sky130_ef_io__gpiov2_pad_wrapped flash_clk_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(vssd), .ANALOG_POL(vssd), .ANALOG_SEL(vssd), @@ -867,15 +882,28 @@ .IN_H(), .OE_N(flash_clk_oeb_core), .OUT(flash_clk_core), + .PAD(flash_clk), .PAD_A_ESD_0_H(), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(vssd), .TIE_HI_ESD(), .TIE_LO_ESD(loop_flash_clk), + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(vssd) ); sky130_ef_io__gpiov2_pad_wrapped flash_csb_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(vssd), .ANALOG_POL(vssd), .ANALOG_SEL(vssd), @@ -893,15 +921,28 @@ .IN_H(), .OE_N(flash_csb_oeb_core), .OUT(flash_csb_core), + .PAD(flash_csb), .PAD_A_ESD_0_H(), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(vssd), .TIE_HI_ESD(), .TIE_LO_ESD(loop_flash_csb), + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(vssd) ); sky130_ef_io__gpiov2_pad_wrapped flash_io0_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(vssd), .ANALOG_POL(vssd), .ANALOG_SEL(vssd), @@ -919,15 +960,28 @@ .IN_H(), .OE_N(flash_io0_oeb_core), .OUT(flash_io0_do_core), + .PAD(flash_io0), .PAD_A_ESD_0_H(), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(vssd), .TIE_HI_ESD(), .TIE_LO_ESD(loop_flash_io0), + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(vssd) ); sky130_ef_io__gpiov2_pad_wrapped flash_io1_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(vssd), .ANALOG_POL(vssd), .ANALOG_SEL(vssd), @@ -945,15 +999,28 @@ .IN_H(), .OE_N(flash_io1_oeb_core), .OUT(flash_io1_do_core), + .PAD(flash_io1), .PAD_A_ESD_0_H(), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(vssd), .TIE_HI_ESD(), .TIE_LO_ESD(loop_flash_io1), + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(vssd) ); sky130_ef_io__gpiov2_pad_wrapped gpio_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(vssd), .ANALOG_POL(vssd), .ANALOG_SEL(vssd), @@ -971,67 +1038,190 @@ .IN_H(), .OE_N(gpio_outenb_core), .OUT(gpio_out_core), + .PAD(gpio), .PAD_A_ESD_0_H(), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(vssd), .TIE_HI_ESD(), .TIE_LO_ESD(loop_gpio), + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(vssd) ); sky130_ef_io__corner_pad \mgmt_corner[0] ( - .VCCHIB() + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__corner_pad \mgmt_corner[1] ( - .VCCHIB() + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vccd_lvc_pad mgmt_vccd_lvclamp_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .BDY2_B2B(vssa), .DRN_LVC1(vccd), .DRN_LVC2(vccd), .SRC_BDY_LVC1(vssio), .SRC_BDY_LVC2(vssd), - .VCCD(vccd) + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vdda_hvc_pad mgmt_vdda_hvclamp_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vdda), .SRC_BDY_HVC(vssa), - .VDDA(vdda) + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vddio_hvc_pad \mgmt_vddio_hvclamp_pad[0] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vddio), .SRC_BDY_HVC(vssio), - .VDDIO(vddio) + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vddio_hvc_pad \mgmt_vddio_hvclamp_pad[1] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vddio), .SRC_BDY_HVC(vssio), - .VDDIO(vddio) + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vssa_hvc_pad mgmt_vssa_hvclamp_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vdda), .SRC_BDY_HVC(vssa), - .VSSA(vssa) + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vssd_lvc_pad mgmt_vssd_lvclmap_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .BDY2_B2B(vssa), .DRN_LVC1(vccd), .DRN_LVC2(vccd), .SRC_BDY_LVC1(vssio), .SRC_BDY_LVC2(vssd), - .VSSD(vssd) + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vssio_hvc_pad \mgmt_vssio_hvclamp_pad[0] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vddio), .SRC_BDY_HVC(vssio), - .VSSIO(vssio) + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vssio_hvc_pad \mgmt_vssio_hvclamp_pad[1] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vddio), .SRC_BDY_HVC(vssio), - .VSSIO(vssio) + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[0] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[0]), .ANALOG_POL(mprj_io_analog_pol[0]), .ANALOG_SEL(mprj_io_analog_sel[0]), @@ -1049,15 +1239,28 @@ .IN_H(), .OE_N(mprj_io_oeb[0]), .OUT(mprj_io_out[0]), + .PAD(mprj_io[0]), .PAD_A_ESD_0_H(\mprj_pads.no_connect[0] ), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[0]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[0] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[0]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[10] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[10]), .ANALOG_POL(mprj_io_analog_pol[10]), .ANALOG_SEL(mprj_io_analog_sel[10]), @@ -1075,15 +1278,28 @@ .IN_H(), .OE_N(mprj_io_oeb[10]), .OUT(mprj_io_out[10]), + .PAD(mprj_io[10]), .PAD_A_ESD_0_H(mprj_analog_io[3]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[10]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[10] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[10]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[11] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[11]), .ANALOG_POL(mprj_io_analog_pol[11]), .ANALOG_SEL(mprj_io_analog_sel[11]), @@ -1101,15 +1317,28 @@ .IN_H(), .OE_N(mprj_io_oeb[11]), .OUT(mprj_io_out[11]), + .PAD(mprj_io[11]), .PAD_A_ESD_0_H(mprj_analog_io[4]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[11]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[11] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[11]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[12] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[12]), .ANALOG_POL(mprj_io_analog_pol[12]), .ANALOG_SEL(mprj_io_analog_sel[12]), @@ -1127,15 +1356,28 @@ .IN_H(), .OE_N(mprj_io_oeb[12]), .OUT(mprj_io_out[12]), + .PAD(mprj_io[12]), .PAD_A_ESD_0_H(mprj_analog_io[5]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[12]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[12] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[12]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[13] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[13]), .ANALOG_POL(mprj_io_analog_pol[13]), .ANALOG_SEL(mprj_io_analog_sel[13]), @@ -1153,15 +1395,28 @@ .IN_H(), .OE_N(mprj_io_oeb[13]), .OUT(mprj_io_out[13]), + .PAD(mprj_io[13]), .PAD_A_ESD_0_H(mprj_analog_io[6]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[13]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[13] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[13]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[14] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[14]), .ANALOG_POL(mprj_io_analog_pol[14]), .ANALOG_SEL(mprj_io_analog_sel[14]), @@ -1179,15 +1434,28 @@ .IN_H(), .OE_N(mprj_io_oeb[14]), .OUT(mprj_io_out[14]), + .PAD(mprj_io[14]), .PAD_A_ESD_0_H(mprj_analog_io[7]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[14]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[14] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[14]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[15] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[15]), .ANALOG_POL(mprj_io_analog_pol[15]), .ANALOG_SEL(mprj_io_analog_sel[15]), @@ -1205,15 +1473,28 @@ .IN_H(), .OE_N(mprj_io_oeb[15]), .OUT(mprj_io_out[15]), + .PAD(mprj_io[15]), .PAD_A_ESD_0_H(mprj_analog_io[8]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[15]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[15] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[15]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[16] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[16]), .ANALOG_POL(mprj_io_analog_pol[16]), .ANALOG_SEL(mprj_io_analog_sel[16]), @@ -1231,15 +1512,28 @@ .IN_H(), .OE_N(mprj_io_oeb[16]), .OUT(mprj_io_out[16]), + .PAD(mprj_io[16]), .PAD_A_ESD_0_H(mprj_analog_io[9]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[16]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[16] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[16]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[17] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[17]), .ANALOG_POL(mprj_io_analog_pol[17]), .ANALOG_SEL(mprj_io_analog_sel[17]), @@ -1257,15 +1551,28 @@ .IN_H(), .OE_N(mprj_io_oeb[17]), .OUT(mprj_io_out[17]), + .PAD(mprj_io[17]), .PAD_A_ESD_0_H(mprj_analog_io[10]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[17]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[17] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[17]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[1] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[1]), .ANALOG_POL(mprj_io_analog_pol[1]), .ANALOG_SEL(mprj_io_analog_sel[1]), @@ -1283,15 +1590,28 @@ .IN_H(), .OE_N(mprj_io_oeb[1]), .OUT(mprj_io_out[1]), + .PAD(mprj_io[1]), .PAD_A_ESD_0_H(\mprj_pads.no_connect[1] ), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[1]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[1] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[1]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[2] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[2]), .ANALOG_POL(mprj_io_analog_pol[2]), .ANALOG_SEL(mprj_io_analog_sel[2]), @@ -1309,15 +1629,28 @@ .IN_H(), .OE_N(mprj_io_oeb[2]), .OUT(mprj_io_out[2]), + .PAD(mprj_io[2]), .PAD_A_ESD_0_H(\mprj_pads.no_connect[2] ), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[2]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[2] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[2]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[3] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[3]), .ANALOG_POL(mprj_io_analog_pol[3]), .ANALOG_SEL(mprj_io_analog_sel[3]), @@ -1335,15 +1668,28 @@ .IN_H(), .OE_N(mprj_io_oeb[3]), .OUT(mprj_io_out[3]), + .PAD(mprj_io[3]), .PAD_A_ESD_0_H(\mprj_pads.no_connect[3] ), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[3]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[3] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[3]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[4] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[4]), .ANALOG_POL(mprj_io_analog_pol[4]), .ANALOG_SEL(mprj_io_analog_sel[4]), @@ -1361,15 +1707,28 @@ .IN_H(), .OE_N(mprj_io_oeb[4]), .OUT(mprj_io_out[4]), + .PAD(mprj_io[4]), .PAD_A_ESD_0_H(\mprj_pads.no_connect[4] ), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[4]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[4] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[4]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[5] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[5]), .ANALOG_POL(mprj_io_analog_pol[5]), .ANALOG_SEL(mprj_io_analog_sel[5]), @@ -1387,15 +1746,28 @@ .IN_H(), .OE_N(mprj_io_oeb[5]), .OUT(mprj_io_out[5]), + .PAD(mprj_io[5]), .PAD_A_ESD_0_H(\mprj_pads.no_connect[5] ), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[5]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[5] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[5]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[6] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[6]), .ANALOG_POL(mprj_io_analog_pol[6]), .ANALOG_SEL(mprj_io_analog_sel[6]), @@ -1413,15 +1785,28 @@ .IN_H(), .OE_N(mprj_io_oeb[6]), .OUT(mprj_io_out[6]), + .PAD(mprj_io[6]), .PAD_A_ESD_0_H(\mprj_pads.no_connect[6] ), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[6]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[6] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[6]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[7] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[7]), .ANALOG_POL(mprj_io_analog_pol[7]), .ANALOG_SEL(mprj_io_analog_sel[7]), @@ -1439,15 +1824,28 @@ .IN_H(), .OE_N(mprj_io_oeb[7]), .OUT(mprj_io_out[7]), + .PAD(mprj_io[7]), .PAD_A_ESD_0_H(mprj_analog_io[0]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[7]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[7] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[7]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[8] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[8]), .ANALOG_POL(mprj_io_analog_pol[8]), .ANALOG_SEL(mprj_io_analog_sel[8]), @@ -1465,15 +1863,28 @@ .IN_H(), .OE_N(mprj_io_oeb[8]), .OUT(mprj_io_out[8]), + .PAD(mprj_io[8]), .PAD_A_ESD_0_H(mprj_analog_io[1]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[8]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[8] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[8]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[9] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[9]), .ANALOG_POL(mprj_io_analog_pol[9]), .ANALOG_SEL(mprj_io_analog_sel[9]), @@ -1491,15 +1902,28 @@ .IN_H(), .OE_N(mprj_io_oeb[9]), .OUT(mprj_io_out[9]), + .PAD(mprj_io[9]), .PAD_A_ESD_0_H(mprj_analog_io[2]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[9]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[9] ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[9]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[0] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[18]), .ANALOG_POL(mprj_io_analog_pol[18]), .ANALOG_SEL(mprj_io_analog_sel[18]), @@ -1517,15 +1941,28 @@ .IN_H(), .OE_N(mprj_io_oeb[18]), .OUT(mprj_io_out[18]), + .PAD(mprj_io[18]), .PAD_A_ESD_0_H(mprj_analog_io[11]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[18]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[18] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[18]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[10] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[28]), .ANALOG_POL(mprj_io_analog_pol[28]), .ANALOG_SEL(mprj_io_analog_sel[28]), @@ -1543,15 +1980,28 @@ .IN_H(), .OE_N(mprj_io_oeb[28]), .OUT(mprj_io_out[28]), + .PAD(mprj_io[28]), .PAD_A_ESD_0_H(mprj_analog_io[21]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[28]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[28] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[28]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[11] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[29]), .ANALOG_POL(mprj_io_analog_pol[29]), .ANALOG_SEL(mprj_io_analog_sel[29]), @@ -1569,15 +2019,28 @@ .IN_H(), .OE_N(mprj_io_oeb[29]), .OUT(mprj_io_out[29]), + .PAD(mprj_io[29]), .PAD_A_ESD_0_H(mprj_analog_io[22]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[29]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[29] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[29]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[12] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[30]), .ANALOG_POL(mprj_io_analog_pol[30]), .ANALOG_SEL(mprj_io_analog_sel[30]), @@ -1595,15 +2058,28 @@ .IN_H(), .OE_N(mprj_io_oeb[30]), .OUT(mprj_io_out[30]), + .PAD(mprj_io[30]), .PAD_A_ESD_0_H(mprj_analog_io[23]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[30]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[30] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[30]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[13] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[31]), .ANALOG_POL(mprj_io_analog_pol[31]), .ANALOG_SEL(mprj_io_analog_sel[31]), @@ -1621,15 +2097,28 @@ .IN_H(), .OE_N(mprj_io_oeb[31]), .OUT(mprj_io_out[31]), + .PAD(mprj_io[31]), .PAD_A_ESD_0_H(mprj_analog_io[24]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[31]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[31] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[31]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[14] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[32]), .ANALOG_POL(mprj_io_analog_pol[32]), .ANALOG_SEL(mprj_io_analog_sel[32]), @@ -1647,15 +2136,28 @@ .IN_H(), .OE_N(mprj_io_oeb[32]), .OUT(mprj_io_out[32]), + .PAD(mprj_io[32]), .PAD_A_ESD_0_H(mprj_analog_io[25]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[32]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[32] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[32]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[15] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[33]), .ANALOG_POL(mprj_io_analog_pol[33]), .ANALOG_SEL(mprj_io_analog_sel[33]), @@ -1673,15 +2175,28 @@ .IN_H(), .OE_N(mprj_io_oeb[33]), .OUT(mprj_io_out[33]), + .PAD(mprj_io[33]), .PAD_A_ESD_0_H(mprj_analog_io[26]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[33]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[33] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[33]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[16] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[34]), .ANALOG_POL(mprj_io_analog_pol[34]), .ANALOG_SEL(mprj_io_analog_sel[34]), @@ -1699,15 +2214,28 @@ .IN_H(), .OE_N(mprj_io_oeb[34]), .OUT(mprj_io_out[34]), + .PAD(mprj_io[34]), .PAD_A_ESD_0_H(mprj_analog_io[27]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[34]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[34] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[34]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[17] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[35]), .ANALOG_POL(mprj_io_analog_pol[35]), .ANALOG_SEL(mprj_io_analog_sel[35]), @@ -1725,15 +2253,28 @@ .IN_H(), .OE_N(mprj_io_oeb[35]), .OUT(mprj_io_out[35]), + .PAD(mprj_io[35]), .PAD_A_ESD_0_H(mprj_analog_io[28]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[35]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[35] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[35]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[18] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[36]), .ANALOG_POL(mprj_io_analog_pol[36]), .ANALOG_SEL(mprj_io_analog_sel[36]), @@ -1751,15 +2292,28 @@ .IN_H(), .OE_N(mprj_io_oeb[36]), .OUT(mprj_io_out[36]), + .PAD(mprj_io[36]), .PAD_A_ESD_0_H(mprj_analog_io[29]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[36]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[36] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[36]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[19] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[37]), .ANALOG_POL(mprj_io_analog_pol[37]), .ANALOG_SEL(mprj_io_analog_sel[37]), @@ -1777,15 +2331,28 @@ .IN_H(), .OE_N(mprj_io_oeb[37]), .OUT(mprj_io_out[37]), + .PAD(mprj_io[37]), .PAD_A_ESD_0_H(mprj_analog_io[30]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[37]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[37] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[37]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[1] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[19]), .ANALOG_POL(mprj_io_analog_pol[19]), .ANALOG_SEL(mprj_io_analog_sel[19]), @@ -1803,15 +2370,28 @@ .IN_H(), .OE_N(mprj_io_oeb[19]), .OUT(mprj_io_out[19]), + .PAD(mprj_io[19]), .PAD_A_ESD_0_H(mprj_analog_io[12]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[19]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[19] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[19]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[2] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[20]), .ANALOG_POL(mprj_io_analog_pol[20]), .ANALOG_SEL(mprj_io_analog_sel[20]), @@ -1829,15 +2409,28 @@ .IN_H(), .OE_N(mprj_io_oeb[20]), .OUT(mprj_io_out[20]), + .PAD(mprj_io[20]), .PAD_A_ESD_0_H(mprj_analog_io[13]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[20]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[20] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[20]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[3] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[21]), .ANALOG_POL(mprj_io_analog_pol[21]), .ANALOG_SEL(mprj_io_analog_sel[21]), @@ -1855,15 +2448,28 @@ .IN_H(), .OE_N(mprj_io_oeb[21]), .OUT(mprj_io_out[21]), + .PAD(mprj_io[21]), .PAD_A_ESD_0_H(mprj_analog_io[14]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[21]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[21] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[21]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[4] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[22]), .ANALOG_POL(mprj_io_analog_pol[22]), .ANALOG_SEL(mprj_io_analog_sel[22]), @@ -1881,15 +2487,28 @@ .IN_H(), .OE_N(mprj_io_oeb[22]), .OUT(mprj_io_out[22]), + .PAD(mprj_io[22]), .PAD_A_ESD_0_H(mprj_analog_io[15]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[22]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[22] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[22]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[5] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[23]), .ANALOG_POL(mprj_io_analog_pol[23]), .ANALOG_SEL(mprj_io_analog_sel[23]), @@ -1907,15 +2526,28 @@ .IN_H(), .OE_N(mprj_io_oeb[23]), .OUT(mprj_io_out[23]), + .PAD(mprj_io[23]), .PAD_A_ESD_0_H(mprj_analog_io[16]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[23]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[23] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[23]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[6] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[24]), .ANALOG_POL(mprj_io_analog_pol[24]), .ANALOG_SEL(mprj_io_analog_sel[24]), @@ -1933,15 +2565,28 @@ .IN_H(), .OE_N(mprj_io_oeb[24]), .OUT(mprj_io_out[24]), + .PAD(mprj_io[24]), .PAD_A_ESD_0_H(mprj_analog_io[17]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[24]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[24] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[24]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[7] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[25]), .ANALOG_POL(mprj_io_analog_pol[25]), .ANALOG_SEL(mprj_io_analog_sel[25]), @@ -1959,15 +2604,28 @@ .IN_H(), .OE_N(mprj_io_oeb[25]), .OUT(mprj_io_out[25]), + .PAD(mprj_io[25]), .PAD_A_ESD_0_H(mprj_analog_io[18]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[25]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[25] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[25]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[8] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[26]), .ANALOG_POL(mprj_io_analog_pol[26]), .ANALOG_SEL(mprj_io_analog_sel[26]), @@ -1985,15 +2643,28 @@ .IN_H(), .OE_N(mprj_io_oeb[26]), .OUT(mprj_io_out[26]), + .PAD(mprj_io[26]), .PAD_A_ESD_0_H(mprj_analog_io[19]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[26]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[26] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[26]) ); sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[9] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .ANALOG_EN(mprj_io_analog_en[27]), .ANALOG_POL(mprj_io_analog_pol[27]), .ANALOG_SEL(mprj_io_analog_sel[27]), @@ -2011,219 +2682,252 @@ .IN_H(), .OE_N(mprj_io_oeb[27]), .OUT(mprj_io_out[27]), + .PAD(mprj_io[27]), .PAD_A_ESD_0_H(mprj_analog_io[20]), .PAD_A_ESD_1_H(), .PAD_A_NOESD_H(), .SLOW(mprj_io_slow_sel[27]), .TIE_HI_ESD(), .TIE_LO_ESD(\mprj_pads.loop1_io[27] ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .VTRIP_SEL(mprj_io_vtrip_sel[27]) ); sky130_fd_io__top_xres4v2 resetb_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DISABLE_PULLUP_H(vssio), .ENABLE_H(porb_h), .ENABLE_VDDIO(vccd), .EN_VDDIO_SIG_H(vssio), .FILT_IN_H(vssio), .INP_SEL_H(vssio), + .PAD(resetb), .PAD_A_ESD_H(xresloop), .PULLUP_H(vssio), .TIE_HI_ESD(), .TIE_LO_ESD(), .TIE_WEAK_HI_H(xresloop), + .VCCD(vccd), + .VCCHIB(vccd), + .VDDA(vdda), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa), + .VSSD(vssd), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio), .XRES_H_N(resetb_core_h) ); sky130_ef_io__corner_pad user1_corner ( - .VCCHIB() + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vccd_lvc_pad user1_vccd_lvclamp_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .BDY2_B2B(vssio), .DRN_LVC1(vccd1), .DRN_LVC2(vccd1), .SRC_BDY_LVC1(vssd1), .SRC_BDY_LVC2(vssd), - .VCCD(vccd1) + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vdda_hvc_pad \user1_vdda_hvclamp_pad[0] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vdda1), .SRC_BDY_HVC(vssa1), - .VDDA(vdda1) + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vdda_hvc_pad \user1_vdda_hvclamp_pad[1] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vdda1), .SRC_BDY_HVC(vssa1), - .VDDA(vdda1) + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vssa_hvc_pad \user1_vssa_hvclamp_pad[0] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vdda1), .SRC_BDY_HVC(vssa1), - .VSSA(vssa1) + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vssa_hvc_pad \user1_vssa_hvclamp_pad[1] ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vdda1), .SRC_BDY_HVC(vssa1), - .VSSA(vssa1) + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vssd_lvc_pad user1_vssd_lvclmap_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .BDY2_B2B(vssio), .DRN_LVC1(vccd1), .DRN_LVC2(vccd1), .SRC_BDY_LVC1(vssd1), .SRC_BDY_LVC2(vssd), - .VSSD(vssd1) + .VCCD(vccd1), + .VCCHIB(vccd), + .VDDA(vdda1), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa1), + .VSSD(vssd1), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__corner_pad user2_corner ( - .VCCHIB() + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vccd_lvc_pad user2_vccd_lvclamp_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .BDY2_B2B(vssio), .DRN_LVC1(vccd2), .DRN_LVC2(vccd2), .SRC_BDY_LVC1(vssd2), .SRC_BDY_LVC2(vssd), - .VCCD(vccd2) + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vdda_hvc_pad user2_vdda_hvclamp_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vdda2), .SRC_BDY_HVC(vssa2), - .VDDA(vdda2) + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vssa_hvc_pad user2_vssa_hvclamp_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .DRN_HVC(vdda2), .SRC_BDY_HVC(vssa2), - .VSSA(vssa2) + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); sky130_ef_io__vssd_lvc_pad user2_vssd_lvclmap_pad ( + .AMUXBUS_A(\mprj_pads.analog_a ), + .AMUXBUS_B(\mprj_pads.analog_b ), .BDY2_B2B(vssio), .DRN_LVC1(vccd2), .DRN_LVC2(vccd2), .SRC_BDY_LVC1(vssd2), .SRC_BDY_LVC2(vssd), - .VSSD(vssd2) + .VCCD(vccd2), + .VCCHIB(vccd), + .VDDA(vdda2), + .VDDIO(vddio), + .VDDIO_Q(\mprj_pads.vddio_q ), + .VSSA(vssa2), + .VSSD(vssd2), + .VSSIO(vssio), + .VSSIO_Q(\mprj_pads.vssio_q ), + .VSWITCH(vddio) ); - assign \mprj_pads.inp_dis[25] = mprj_io_inp_dis[25]; - assign \mprj_pads.inp_dis[24] = mprj_io_inp_dis[24]; - assign \mprj_pads.inp_dis[23] = mprj_io_inp_dis[23]; - assign \mprj_pads.inp_dis[22] = mprj_io_inp_dis[22]; - assign \mprj_pads.inp_dis[21] = mprj_io_inp_dis[21]; - assign \mprj_pads.inp_dis[20] = mprj_io_inp_dis[20]; - assign \mprj_pads.inp_dis[19] = mprj_io_inp_dis[19]; - assign \mprj_pads.inp_dis[18] = mprj_io_inp_dis[18]; - assign \mprj_pads.inp_dis[17] = mprj_io_inp_dis[17]; - assign \mprj_pads.inp_dis[16] = mprj_io_inp_dis[16]; - assign \mprj_pads.inp_dis[15] = mprj_io_inp_dis[15]; - assign \mprj_pads.inp_dis[14] = mprj_io_inp_dis[14]; - assign \mprj_pads.inp_dis[13] = mprj_io_inp_dis[13]; - assign \mprj_pads.inp_dis[12] = mprj_io_inp_dis[12]; - assign \mprj_pads.inp_dis[11] = mprj_io_inp_dis[11]; - assign \mprj_pads.inp_dis[10] = mprj_io_inp_dis[10]; - assign \mprj_pads.inp_dis[9] = mprj_io_inp_dis[9]; - assign \mprj_pads.inp_dis[8] = mprj_io_inp_dis[8]; - assign \mprj_pads.inp_dis[7] = mprj_io_inp_dis[7]; - assign \mprj_pads.inp_dis[6] = mprj_io_inp_dis[6]; - assign \mprj_pads.inp_dis[5] = mprj_io_inp_dis[5]; - assign \mprj_pads.inp_dis[4] = mprj_io_inp_dis[4]; - assign \mprj_pads.inp_dis[3] = mprj_io_inp_dis[3]; - assign \mprj_pads.inp_dis[2] = mprj_io_inp_dis[2]; - assign \mprj_pads.inp_dis[1] = mprj_io_inp_dis[1]; - assign \mprj_pads.inp_dis[0] = mprj_io_inp_dis[0]; - assign \mprj_pads.analog_sel[37] = mprj_io_analog_sel[37]; - assign \mprj_pads.analog_sel[36] = mprj_io_analog_sel[36]; - assign \mprj_pads.analog_sel[35] = mprj_io_analog_sel[35]; - assign \mprj_pads.analog_sel[34] = mprj_io_analog_sel[34]; - assign \mprj_pads.analog_sel[33] = mprj_io_analog_sel[33]; - assign \mprj_pads.analog_sel[32] = mprj_io_analog_sel[32]; - assign \mprj_pads.analog_sel[31] = mprj_io_analog_sel[31]; - assign \mprj_pads.analog_sel[30] = mprj_io_analog_sel[30]; - assign \mprj_pads.analog_sel[29] = mprj_io_analog_sel[29]; - assign \mprj_pads.analog_sel[28] = mprj_io_analog_sel[28]; - assign \mprj_pads.analog_sel[27] = mprj_io_analog_sel[27]; - assign \mprj_pads.analog_sel[26] = mprj_io_analog_sel[26]; - assign \mprj_pads.analog_sel[25] = mprj_io_analog_sel[25]; - assign \mprj_pads.analog_sel[24] = mprj_io_analog_sel[24]; - assign \mprj_pads.analog_sel[23] = mprj_io_analog_sel[23]; - assign \mprj_pads.analog_sel[22] = mprj_io_analog_sel[22]; - assign \mprj_pads.analog_sel[21] = mprj_io_analog_sel[21]; - assign \mprj_pads.analog_sel[20] = mprj_io_analog_sel[20]; - assign \mprj_pads.analog_sel[19] = mprj_io_analog_sel[19]; - assign \mprj_pads.analog_sel[18] = mprj_io_analog_sel[18]; - assign \mprj_pads.analog_sel[17] = mprj_io_analog_sel[17]; - assign \mprj_pads.analog_sel[16] = mprj_io_analog_sel[16]; - assign \mprj_pads.analog_sel[15] = mprj_io_analog_sel[15]; - assign \mprj_pads.analog_sel[14] = mprj_io_analog_sel[14]; - assign \mprj_pads.analog_sel[13] = mprj_io_analog_sel[13]; - assign \mprj_pads.analog_sel[12] = mprj_io_analog_sel[12]; - assign \mprj_pads.analog_sel[11] = mprj_io_analog_sel[11]; - assign \mprj_pads.analog_sel[10] = mprj_io_analog_sel[10]; - assign \mprj_pads.analog_sel[9] = mprj_io_analog_sel[9]; - assign \mprj_pads.analog_sel[8] = mprj_io_analog_sel[8]; - assign \mprj_pads.analog_sel[7] = mprj_io_analog_sel[7]; - assign \mprj_pads.analog_sel[6] = mprj_io_analog_sel[6]; - assign \mprj_pads.analog_sel[5] = mprj_io_analog_sel[5]; - assign \mprj_pads.analog_sel[4] = mprj_io_analog_sel[4]; - assign \mprj_pads.analog_sel[3] = mprj_io_analog_sel[3]; - assign \mprj_pads.analog_sel[2] = mprj_io_analog_sel[2]; - assign \mprj_pads.analog_sel[1] = mprj_io_analog_sel[1]; - assign \mprj_pads.analog_sel[0] = mprj_io_analog_sel[0]; - assign \mprj_pads.oeb[37] = mprj_io_oeb[37]; - assign \mprj_pads.oeb[36] = mprj_io_oeb[36]; - assign \mprj_pads.oeb[35] = mprj_io_oeb[35]; - assign \mprj_pads.oeb[34] = mprj_io_oeb[34]; - assign \mprj_pads.oeb[33] = mprj_io_oeb[33]; - assign \mprj_pads.oeb[32] = mprj_io_oeb[32]; - assign \mprj_pads.oeb[31] = mprj_io_oeb[31]; - assign \mprj_pads.oeb[30] = mprj_io_oeb[30]; - assign \mprj_pads.oeb[29] = mprj_io_oeb[29]; - assign \mprj_pads.oeb[28] = mprj_io_oeb[28]; - assign \mprj_pads.oeb[27] = mprj_io_oeb[27]; - assign \mprj_pads.oeb[26] = mprj_io_oeb[26]; - assign \mprj_pads.oeb[25] = mprj_io_oeb[25]; - assign \mprj_pads.oeb[24] = mprj_io_oeb[24]; - assign \mprj_pads.oeb[23] = mprj_io_oeb[23]; - assign \mprj_pads.oeb[22] = mprj_io_oeb[22]; - assign \mprj_pads.oeb[21] = mprj_io_oeb[21]; - assign \mprj_pads.oeb[20] = mprj_io_oeb[20]; - assign \mprj_pads.oeb[19] = mprj_io_oeb[19]; - assign \mprj_pads.oeb[18] = mprj_io_oeb[18]; - assign \mprj_pads.oeb[17] = mprj_io_oeb[17]; - assign \mprj_pads.oeb[16] = mprj_io_oeb[16]; - assign \mprj_pads.oeb[15] = mprj_io_oeb[15]; - assign \mprj_pads.oeb[14] = mprj_io_oeb[14]; - assign \mprj_pads.oeb[13] = mprj_io_oeb[13]; - assign \mprj_pads.oeb[12] = mprj_io_oeb[12]; - assign \mprj_pads.oeb[11] = mprj_io_oeb[11]; - assign \mprj_pads.oeb[10] = mprj_io_oeb[10]; - assign \mprj_pads.oeb[9] = mprj_io_oeb[9]; - assign \mprj_pads.oeb[8] = mprj_io_oeb[8]; - assign \mprj_pads.oeb[7] = mprj_io_oeb[7]; - assign \mprj_pads.oeb[6] = mprj_io_oeb[6]; - assign \mprj_pads.oeb[5] = mprj_io_oeb[5]; - assign \mprj_pads.oeb[4] = mprj_io_oeb[4]; - assign \mprj_pads.oeb[3] = mprj_io_oeb[3]; - assign \mprj_pads.oeb[2] = mprj_io_oeb[2]; - assign \mprj_pads.oeb[1] = mprj_io_oeb[1]; - assign \mprj_pads.oeb[0] = mprj_io_oeb[0]; - assign \mprj_pads.dm[113] = mprj_io_dm[113]; - assign \mprj_pads.dm[112] = mprj_io_dm[112]; - assign \mprj_pads.dm[111] = mprj_io_dm[111]; - assign \mprj_pads.dm[110] = mprj_io_dm[110]; - assign \mprj_pads.dm[109] = mprj_io_dm[109]; - assign \mprj_pads.dm[108] = mprj_io_dm[108]; - assign \mprj_pads.dm[107] = mprj_io_dm[107]; - assign \mprj_pads.dm[106] = mprj_io_dm[106]; - assign \mprj_pads.dm[105] = mprj_io_dm[105]; - assign \mprj_pads.dm[104] = mprj_io_dm[104]; - assign \mprj_pads.dm[103] = mprj_io_dm[103]; - assign \mprj_pads.dm[102] = mprj_io_dm[102]; - assign \mprj_pads.dm[101] = mprj_io_dm[101]; - assign \mprj_pads.dm[100] = mprj_io_dm[100]; - assign \mprj_pads.dm[99] = mprj_io_dm[99]; - assign \mprj_pads.dm[98] = mprj_io_dm[98]; - assign \mprj_pads.dm[97] = mprj_io_dm[97]; - assign \mprj_pads.dm[96] = mprj_io_dm[96]; - assign \mprj_pads.dm[95] = mprj_io_dm[95]; - assign \mprj_pads.dm[94] = mprj_io_dm[94]; - assign \mprj_pads.dm[93] = mprj_io_dm[93]; assign \mprj_pads.dm[92] = mprj_io_dm[92]; assign \mprj_pads.dm[91] = mprj_io_dm[91]; assign \mprj_pads.dm[90] = mprj_io_dm[90]; @@ -2317,6 +3021,233 @@ assign \mprj_pads.dm[2] = mprj_io_dm[2]; assign \mprj_pads.dm[1] = mprj_io_dm[1]; assign \mprj_pads.dm[0] = mprj_io_dm[0]; + assign \mprj_pads.analog_pol[37] = mprj_io_analog_pol[37]; + assign \mprj_pads.analog_pol[36] = mprj_io_analog_pol[36]; + assign \mprj_pads.analog_pol[35] = mprj_io_analog_pol[35]; + assign \mprj_pads.analog_pol[34] = mprj_io_analog_pol[34]; + assign \mprj_pads.analog_pol[33] = mprj_io_analog_pol[33]; + assign \mprj_pads.analog_pol[32] = mprj_io_analog_pol[32]; + assign \mprj_pads.analog_pol[31] = mprj_io_analog_pol[31]; + assign \mprj_pads.analog_pol[30] = mprj_io_analog_pol[30]; + assign \mprj_pads.analog_pol[29] = mprj_io_analog_pol[29]; + assign \mprj_pads.analog_pol[28] = mprj_io_analog_pol[28]; + assign \mprj_pads.analog_pol[27] = mprj_io_analog_pol[27]; + assign \mprj_pads.analog_pol[26] = mprj_io_analog_pol[26]; + assign \mprj_pads.analog_pol[25] = mprj_io_analog_pol[25]; + assign \mprj_pads.analog_pol[24] = mprj_io_analog_pol[24]; + assign \mprj_pads.analog_pol[23] = mprj_io_analog_pol[23]; + assign \mprj_pads.analog_pol[22] = mprj_io_analog_pol[22]; + assign \mprj_pads.analog_pol[21] = mprj_io_analog_pol[21]; + assign \mprj_pads.analog_pol[20] = mprj_io_analog_pol[20]; + assign \mprj_pads.analog_pol[19] = mprj_io_analog_pol[19]; + assign \mprj_pads.analog_pol[18] = mprj_io_analog_pol[18]; + assign \mprj_pads.analog_pol[17] = mprj_io_analog_pol[17]; + assign \mprj_pads.analog_pol[16] = mprj_io_analog_pol[16]; + assign \mprj_pads.analog_pol[15] = mprj_io_analog_pol[15]; + assign \mprj_pads.analog_pol[14] = mprj_io_analog_pol[14]; + assign \mprj_pads.analog_pol[13] = mprj_io_analog_pol[13]; + assign \mprj_pads.analog_pol[12] = mprj_io_analog_pol[12]; + assign \mprj_pads.analog_pol[11] = mprj_io_analog_pol[11]; + assign \mprj_pads.analog_pol[10] = mprj_io_analog_pol[10]; + assign \mprj_pads.analog_pol[9] = mprj_io_analog_pol[9]; + assign \mprj_pads.analog_pol[8] = mprj_io_analog_pol[8]; + assign \mprj_pads.analog_pol[7] = mprj_io_analog_pol[7]; + assign \mprj_pads.analog_pol[6] = mprj_io_analog_pol[6]; + assign \mprj_pads.analog_pol[5] = mprj_io_analog_pol[5]; + assign \mprj_pads.analog_pol[4] = mprj_io_analog_pol[4]; + assign \mprj_pads.analog_pol[3] = mprj_io_analog_pol[3]; + assign \mprj_pads.analog_pol[2] = mprj_io_analog_pol[2]; + assign \mprj_pads.analog_pol[1] = mprj_io_analog_pol[1]; + assign \mprj_pads.analog_pol[0] = mprj_io_analog_pol[0]; + assign \flash_io1_mode[2] = flash_io1_ieb_core; + assign \flash_io1_mode[1] = flash_io1_ieb_core; + assign \flash_io1_mode[0] = flash_io1_oeb_core; + assign \mprj_pads.hldh_n[37] = mprj_io_hldh_n[37]; + assign \mprj_pads.hldh_n[36] = mprj_io_hldh_n[36]; + assign \mprj_pads.hldh_n[35] = mprj_io_hldh_n[35]; + assign \mprj_pads.hldh_n[34] = mprj_io_hldh_n[34]; + assign \mprj_pads.hldh_n[33] = mprj_io_hldh_n[33]; + assign \mprj_pads.hldh_n[32] = mprj_io_hldh_n[32]; + assign \mprj_pads.hldh_n[31] = mprj_io_hldh_n[31]; + assign \mprj_pads.hldh_n[30] = mprj_io_hldh_n[30]; + assign \mprj_pads.hldh_n[29] = mprj_io_hldh_n[29]; + assign \mprj_pads.hldh_n[28] = mprj_io_hldh_n[28]; + assign \mprj_pads.hldh_n[27] = mprj_io_hldh_n[27]; + assign \mprj_pads.hldh_n[26] = mprj_io_hldh_n[26]; + assign \mprj_pads.hldh_n[25] = mprj_io_hldh_n[25]; + assign \mprj_pads.hldh_n[24] = mprj_io_hldh_n[24]; + assign \mprj_pads.hldh_n[23] = mprj_io_hldh_n[23]; + assign \mprj_pads.hldh_n[22] = mprj_io_hldh_n[22]; + assign \mprj_pads.hldh_n[21] = mprj_io_hldh_n[21]; + assign \mprj_pads.hldh_n[20] = mprj_io_hldh_n[20]; + assign \mprj_pads.hldh_n[19] = mprj_io_hldh_n[19]; + assign \mprj_pads.hldh_n[18] = mprj_io_hldh_n[18]; + assign \mprj_pads.hldh_n[17] = mprj_io_hldh_n[17]; + assign \mprj_pads.hldh_n[16] = mprj_io_hldh_n[16]; + assign \mprj_pads.hldh_n[15] = mprj_io_hldh_n[15]; + assign \mprj_pads.hldh_n[14] = mprj_io_hldh_n[14]; + assign \mprj_pads.hldh_n[13] = mprj_io_hldh_n[13]; + assign \mprj_pads.hldh_n[12] = mprj_io_hldh_n[12]; + assign \mprj_pads.hldh_n[11] = mprj_io_hldh_n[11]; + assign \mprj_pads.hldh_n[10] = mprj_io_hldh_n[10]; + assign \mprj_pads.hldh_n[9] = mprj_io_hldh_n[9]; + assign \mprj_pads.hldh_n[8] = mprj_io_hldh_n[8]; + assign \mprj_pads.hldh_n[7] = mprj_io_hldh_n[7]; + assign \mprj_pads.hldh_n[6] = mprj_io_hldh_n[6]; + assign \mprj_pads.hldh_n[5] = mprj_io_hldh_n[5]; + assign \mprj_pads.hldh_n[4] = mprj_io_hldh_n[4]; + assign \mprj_pads.hldh_n[3] = mprj_io_hldh_n[3]; + assign \mprj_pads.hldh_n[2] = mprj_io_hldh_n[2]; + assign \mprj_pads.hldh_n[1] = mprj_io_hldh_n[1]; + assign \mprj_pads.hldh_n[0] = mprj_io_hldh_n[0]; + assign \dm_all[2] = gpio_mode1_core; + assign \dm_all[1] = gpio_mode1_core; + assign \dm_all[0] = gpio_mode0_core; + assign \mprj_pads.analog_io[30] = mprj_analog_io[30]; + assign \mprj_pads.analog_io[29] = mprj_analog_io[29]; + assign \mprj_pads.analog_io[28] = mprj_analog_io[28]; + assign \mprj_pads.analog_io[27] = mprj_analog_io[27]; + assign \mprj_pads.analog_io[26] = mprj_analog_io[26]; + assign \mprj_pads.analog_io[25] = mprj_analog_io[25]; + assign \mprj_pads.analog_io[24] = mprj_analog_io[24]; + assign \mprj_pads.analog_io[23] = mprj_analog_io[23]; + assign \mprj_pads.analog_io[22] = mprj_analog_io[22]; + assign \mprj_pads.analog_io[21] = mprj_analog_io[21]; + assign \mprj_pads.analog_io[20] = mprj_analog_io[20]; + assign \mprj_pads.analog_io[19] = mprj_analog_io[19]; + assign \mprj_pads.analog_io[18] = mprj_analog_io[18]; + assign \mprj_pads.analog_io[17] = mprj_analog_io[17]; + assign \mprj_pads.analog_io[16] = mprj_analog_io[16]; + assign \mprj_pads.analog_io[15] = mprj_analog_io[15]; + assign \mprj_pads.analog_io[14] = mprj_analog_io[14]; + assign \mprj_pads.analog_io[13] = mprj_analog_io[13]; + assign \mprj_pads.analog_io[12] = mprj_analog_io[12]; + assign \mprj_pads.analog_io[11] = mprj_analog_io[11]; + assign \mprj_pads.analog_io[10] = mprj_analog_io[10]; + assign \mprj_pads.analog_io[9] = mprj_analog_io[9]; + assign \mprj_pads.analog_io[8] = mprj_analog_io[8]; + assign \mprj_pads.analog_io[7] = mprj_analog_io[7]; + assign \mprj_pads.analog_io[6] = mprj_analog_io[6]; + assign \mprj_pads.analog_io[5] = mprj_analog_io[5]; + assign \mprj_pads.analog_io[4] = mprj_analog_io[4]; + assign \mprj_pads.analog_io[3] = mprj_analog_io[3]; + assign \mprj_pads.analog_io[2] = mprj_analog_io[2]; + assign \mprj_pads.analog_io[1] = mprj_analog_io[1]; + assign \mprj_pads.analog_io[0] = mprj_analog_io[0]; + assign \mprj_pads.holdover[37] = mprj_io_holdover[37]; + assign \mprj_pads.holdover[36] = mprj_io_holdover[36]; + assign \mprj_pads.holdover[35] = mprj_io_holdover[35]; + assign \mprj_pads.holdover[34] = mprj_io_holdover[34]; + assign \mprj_pads.holdover[33] = mprj_io_holdover[33]; + assign \mprj_pads.holdover[32] = mprj_io_holdover[32]; + assign \mprj_pads.holdover[31] = mprj_io_holdover[31]; + assign \mprj_pads.holdover[30] = mprj_io_holdover[30]; + assign \mprj_pads.holdover[29] = mprj_io_holdover[29]; + assign \mprj_pads.holdover[28] = mprj_io_holdover[28]; + assign \mprj_pads.holdover[27] = mprj_io_holdover[27]; + assign \mprj_pads.holdover[26] = mprj_io_holdover[26]; + assign \mprj_pads.holdover[25] = mprj_io_holdover[25]; + assign \mprj_pads.holdover[24] = mprj_io_holdover[24]; + assign \mprj_pads.holdover[23] = mprj_io_holdover[23]; + assign \mprj_pads.holdover[22] = mprj_io_holdover[22]; + assign \mprj_pads.holdover[21] = mprj_io_holdover[21]; + assign \mprj_pads.holdover[20] = mprj_io_holdover[20]; + assign \mprj_pads.holdover[19] = mprj_io_holdover[19]; + assign \mprj_pads.holdover[18] = mprj_io_holdover[18]; + assign \mprj_pads.holdover[17] = mprj_io_holdover[17]; + assign \mprj_pads.holdover[16] = mprj_io_holdover[16]; + assign \mprj_pads.holdover[15] = mprj_io_holdover[15]; + assign \mprj_pads.holdover[14] = mprj_io_holdover[14]; + assign \mprj_pads.holdover[13] = mprj_io_holdover[13]; + assign \mprj_pads.holdover[12] = mprj_io_holdover[12]; + assign \mprj_pads.holdover[11] = mprj_io_holdover[11]; + assign \mprj_pads.holdover[10] = mprj_io_holdover[10]; + assign \mprj_pads.holdover[9] = mprj_io_holdover[9]; + assign \mprj_pads.holdover[8] = mprj_io_holdover[8]; + assign \mprj_pads.holdover[7] = mprj_io_holdover[7]; + assign \mprj_pads.holdover[6] = mprj_io_holdover[6]; + assign \mprj_pads.holdover[5] = mprj_io_holdover[5]; + assign \mprj_pads.holdover[4] = mprj_io_holdover[4]; + assign \mprj_pads.holdover[3] = mprj_io_holdover[3]; + assign \mprj_pads.holdover[2] = mprj_io_holdover[2]; + assign \mprj_pads.holdover[1] = mprj_io_holdover[1]; + assign \mprj_pads.holdover[0] = mprj_io_holdover[0]; + assign \mprj_pads.inp_dis[37] = mprj_io_inp_dis[37]; + assign \mprj_pads.inp_dis[36] = mprj_io_inp_dis[36]; + assign \mprj_pads.inp_dis[35] = mprj_io_inp_dis[35]; + assign \mprj_pads.inp_dis[34] = mprj_io_inp_dis[34]; + assign \mprj_pads.inp_dis[33] = mprj_io_inp_dis[33]; + assign \mprj_pads.inp_dis[32] = mprj_io_inp_dis[32]; + assign \mprj_pads.inp_dis[31] = mprj_io_inp_dis[31]; + assign \mprj_pads.inp_dis[30] = mprj_io_inp_dis[30]; + assign \mprj_pads.inp_dis[29] = mprj_io_inp_dis[29]; + assign \mprj_pads.inp_dis[28] = mprj_io_inp_dis[28]; + assign \mprj_pads.inp_dis[27] = mprj_io_inp_dis[27]; + assign \mprj_pads.inp_dis[26] = mprj_io_inp_dis[26]; + assign \mprj_pads.inp_dis[25] = mprj_io_inp_dis[25]; + assign \mprj_pads.inp_dis[24] = mprj_io_inp_dis[24]; + assign \mprj_pads.inp_dis[23] = mprj_io_inp_dis[23]; + assign \mprj_pads.inp_dis[22] = mprj_io_inp_dis[22]; + assign \mprj_pads.inp_dis[21] = mprj_io_inp_dis[21]; + assign \mprj_pads.inp_dis[20] = mprj_io_inp_dis[20]; + assign \mprj_pads.inp_dis[19] = mprj_io_inp_dis[19]; + assign \mprj_pads.inp_dis[18] = mprj_io_inp_dis[18]; + assign \mprj_pads.inp_dis[17] = mprj_io_inp_dis[17]; + assign \mprj_pads.inp_dis[16] = mprj_io_inp_dis[16]; + assign \mprj_pads.inp_dis[15] = mprj_io_inp_dis[15]; + assign \mprj_pads.inp_dis[14] = mprj_io_inp_dis[14]; + assign \mprj_pads.inp_dis[13] = mprj_io_inp_dis[13]; + assign \mprj_pads.inp_dis[12] = mprj_io_inp_dis[12]; + assign \mprj_pads.inp_dis[11] = mprj_io_inp_dis[11]; + assign \mprj_pads.inp_dis[10] = mprj_io_inp_dis[10]; + assign \mprj_pads.inp_dis[9] = mprj_io_inp_dis[9]; + assign \mprj_pads.inp_dis[8] = mprj_io_inp_dis[8]; + assign \mprj_pads.inp_dis[7] = mprj_io_inp_dis[7]; + assign \mprj_pads.inp_dis[6] = mprj_io_inp_dis[6]; + assign \mprj_pads.inp_dis[5] = mprj_io_inp_dis[5]; + assign \mprj_pads.inp_dis[4] = mprj_io_inp_dis[4]; + assign \mprj_pads.inp_dis[3] = mprj_io_inp_dis[3]; + assign \mprj_pads.inp_dis[2] = mprj_io_inp_dis[2]; + assign \mprj_pads.inp_dis[1] = mprj_io_inp_dis[1]; + assign \mprj_pads.inp_dis[0] = mprj_io_inp_dis[0]; + assign \mprj_pads.io[37] = mprj_io[37]; + assign \mprj_pads.io[36] = mprj_io[36]; + assign \mprj_pads.io[35] = mprj_io[35]; + assign \mprj_pads.io[34] = mprj_io[34]; + assign \mprj_pads.io[33] = mprj_io[33]; + assign \mprj_pads.io[32] = mprj_io[32]; + assign \mprj_pads.io[31] = mprj_io[31]; + assign \mprj_pads.io[30] = mprj_io[30]; + assign \mprj_pads.io[29] = mprj_io[29]; + assign \mprj_pads.io[28] = mprj_io[28]; + assign \mprj_pads.io[27] = mprj_io[27]; + assign \mprj_pads.io[26] = mprj_io[26]; + assign \mprj_pads.io[25] = mprj_io[25]; + assign \mprj_pads.io[24] = mprj_io[24]; + assign \mprj_pads.io[23] = mprj_io[23]; + assign \mprj_pads.io[22] = mprj_io[22]; + assign \mprj_pads.io[21] = mprj_io[21]; + assign \mprj_pads.io[20] = mprj_io[20]; + assign \mprj_pads.io[19] = mprj_io[19]; + assign \mprj_pads.io[18] = mprj_io[18]; + assign \mprj_pads.io[17] = mprj_io[17]; + assign \mprj_pads.io[16] = mprj_io[16]; + assign \mprj_pads.io[15] = mprj_io[15]; + assign \mprj_pads.io[14] = mprj_io[14]; + assign \mprj_pads.io[13] = mprj_io[13]; + assign \mprj_pads.io[12] = mprj_io[12]; + assign \mprj_pads.io[11] = mprj_io[11]; + assign \mprj_pads.io[10] = mprj_io[10]; + assign \mprj_pads.io[9] = mprj_io[9]; + assign \mprj_pads.io[8] = mprj_io[8]; + assign \mprj_pads.io[7] = mprj_io[7]; + assign \mprj_pads.io[6] = mprj_io[6]; + assign \mprj_pads.io[5] = mprj_io[5]; + assign \mprj_pads.io[4] = mprj_io[4]; + assign \mprj_pads.io[3] = mprj_io[3]; + assign \mprj_pads.io[2] = mprj_io[2]; + assign \mprj_pads.io[1] = mprj_io[1]; + assign \mprj_pads.io[0] = mprj_io[0]; assign \mprj_pads.vtrip_sel[37] = mprj_io_vtrip_sel[37]; assign \mprj_pads.vtrip_sel[36] = mprj_io_vtrip_sel[36]; assign \mprj_pads.vtrip_sel[35] = mprj_io_vtrip_sel[35]; @@ -2393,44 +3324,9 @@ assign \mprj_pads.ib_mode_sel[2] = mprj_io_ib_mode_sel[2]; assign \mprj_pads.ib_mode_sel[1] = mprj_io_ib_mode_sel[1]; assign \mprj_pads.ib_mode_sel[0] = mprj_io_ib_mode_sel[0]; - assign \mprj_pads.io_out[37] = mprj_io_out[37]; - assign \mprj_pads.io_out[36] = mprj_io_out[36]; - assign \mprj_pads.io_out[35] = mprj_io_out[35]; - assign \mprj_pads.io_out[34] = mprj_io_out[34]; - assign \mprj_pads.io_out[33] = mprj_io_out[33]; - assign \mprj_pads.io_out[32] = mprj_io_out[32]; - assign \mprj_pads.io_out[31] = mprj_io_out[31]; - assign \mprj_pads.io_out[30] = mprj_io_out[30]; - assign \mprj_pads.io_out[29] = mprj_io_out[29]; - assign \mprj_pads.io_out[28] = mprj_io_out[28]; - assign \mprj_pads.io_out[27] = mprj_io_out[27]; - assign \mprj_pads.io_out[26] = mprj_io_out[26]; - assign \mprj_pads.io_out[25] = mprj_io_out[25]; - assign \mprj_pads.io_out[24] = mprj_io_out[24]; - assign \mprj_pads.io_out[23] = mprj_io_out[23]; - assign \mprj_pads.io_out[22] = mprj_io_out[22]; - assign \mprj_pads.io_out[21] = mprj_io_out[21]; - assign \mprj_pads.io_out[20] = mprj_io_out[20]; - assign \mprj_pads.io_out[19] = mprj_io_out[19]; - assign \mprj_pads.io_out[18] = mprj_io_out[18]; - assign \mprj_pads.io_out[17] = mprj_io_out[17]; - assign \mprj_pads.io_out[16] = mprj_io_out[16]; - assign \mprj_pads.io_out[15] = mprj_io_out[15]; - assign \mprj_pads.io_out[14] = mprj_io_out[14]; - assign \mprj_pads.io_out[13] = mprj_io_out[13]; - assign \mprj_pads.io_out[12] = mprj_io_out[12]; - assign \mprj_pads.io_out[11] = mprj_io_out[11]; - assign \mprj_pads.io_out[10] = mprj_io_out[10]; - assign \mprj_pads.io_out[9] = mprj_io_out[9]; - assign \mprj_pads.io_out[8] = mprj_io_out[8]; - assign \mprj_pads.io_out[7] = mprj_io_out[7]; - assign \mprj_pads.io_out[6] = mprj_io_out[6]; - assign \mprj_pads.io_out[5] = mprj_io_out[5]; - assign \mprj_pads.io_out[4] = mprj_io_out[4]; - assign \mprj_pads.io_out[3] = mprj_io_out[3]; - assign \mprj_pads.io_out[2] = mprj_io_out[2]; - assign \mprj_pads.io_out[1] = mprj_io_out[1]; - assign \mprj_pads.io_out[0] = mprj_io_out[0]; + assign \flash_io0_mode[2] = flash_io0_ieb_core; + assign \flash_io0_mode[1] = flash_io0_ieb_core; + assign \flash_io0_mode[0] = flash_io0_oeb_core; assign \mprj_pads.enh[37] = mprj_io_enh[37]; assign \mprj_pads.enh[36] = mprj_io_enh[36]; assign \mprj_pads.enh[35] = mprj_io_enh[35]; @@ -2469,113 +3365,44 @@ assign \mprj_pads.enh[2] = mprj_io_enh[2]; assign \mprj_pads.enh[1] = mprj_io_enh[1]; assign \mprj_pads.enh[0] = mprj_io_enh[0]; - assign \mprj_pads.hldh_n[37] = mprj_io_hldh_n[37]; - assign \mprj_pads.hldh_n[36] = mprj_io_hldh_n[36]; - assign \mprj_pads.hldh_n[35] = mprj_io_hldh_n[35]; - assign \mprj_pads.hldh_n[34] = mprj_io_hldh_n[34]; - assign \mprj_pads.hldh_n[33] = mprj_io_hldh_n[33]; - assign \mprj_pads.hldh_n[32] = mprj_io_hldh_n[32]; - assign \mprj_pads.hldh_n[31] = mprj_io_hldh_n[31]; - assign \mprj_pads.hldh_n[30] = mprj_io_hldh_n[30]; - assign \mprj_pads.hldh_n[29] = mprj_io_hldh_n[29]; - assign \mprj_pads.hldh_n[28] = mprj_io_hldh_n[28]; - assign \mprj_pads.hldh_n[27] = mprj_io_hldh_n[27]; - assign \mprj_pads.hldh_n[26] = mprj_io_hldh_n[26]; - assign \mprj_pads.hldh_n[25] = mprj_io_hldh_n[25]; - assign \mprj_pads.hldh_n[24] = mprj_io_hldh_n[24]; - assign \mprj_pads.hldh_n[23] = mprj_io_hldh_n[23]; - assign \mprj_pads.hldh_n[22] = mprj_io_hldh_n[22]; - assign \mprj_pads.hldh_n[21] = mprj_io_hldh_n[21]; - assign \mprj_pads.hldh_n[20] = mprj_io_hldh_n[20]; - assign \mprj_pads.hldh_n[19] = mprj_io_hldh_n[19]; - assign \mprj_pads.hldh_n[18] = mprj_io_hldh_n[18]; - assign \mprj_pads.hldh_n[17] = mprj_io_hldh_n[17]; - assign \mprj_pads.hldh_n[16] = mprj_io_hldh_n[16]; - assign \mprj_pads.hldh_n[15] = mprj_io_hldh_n[15]; - assign \mprj_pads.hldh_n[14] = mprj_io_hldh_n[14]; - assign \mprj_pads.hldh_n[13] = mprj_io_hldh_n[13]; - assign \mprj_pads.hldh_n[12] = mprj_io_hldh_n[12]; - assign \mprj_pads.hldh_n[11] = mprj_io_hldh_n[11]; - assign \mprj_pads.hldh_n[10] = mprj_io_hldh_n[10]; - assign \mprj_pads.hldh_n[9] = mprj_io_hldh_n[9]; - assign \mprj_pads.hldh_n[8] = mprj_io_hldh_n[8]; - assign \mprj_pads.hldh_n[7] = mprj_io_hldh_n[7]; - assign \mprj_pads.hldh_n[6] = mprj_io_hldh_n[6]; - assign \mprj_pads.hldh_n[5] = mprj_io_hldh_n[5]; - assign \mprj_pads.hldh_n[4] = mprj_io_hldh_n[4]; - assign \mprj_pads.hldh_n[3] = mprj_io_hldh_n[3]; - assign \mprj_pads.hldh_n[2] = mprj_io_hldh_n[2]; - assign \mprj_pads.hldh_n[1] = mprj_io_hldh_n[1]; - assign \mprj_pads.hldh_n[0] = mprj_io_hldh_n[0]; - assign \mprj_pads.analog_io[30] = mprj_analog_io[30]; - assign \mprj_pads.analog_io[29] = mprj_analog_io[29]; - assign \mprj_pads.analog_io[28] = mprj_analog_io[28]; - assign \mprj_pads.analog_io[27] = mprj_analog_io[27]; - assign \mprj_pads.analog_io[26] = mprj_analog_io[26]; - assign \mprj_pads.analog_io[25] = mprj_analog_io[25]; - assign \mprj_pads.analog_io[24] = mprj_analog_io[24]; - assign \mprj_pads.analog_io[23] = mprj_analog_io[23]; - assign \mprj_pads.analog_io[22] = mprj_analog_io[22]; - assign \mprj_pads.analog_io[21] = mprj_analog_io[21]; - assign \mprj_pads.analog_io[20] = mprj_analog_io[20]; - assign \mprj_pads.analog_io[19] = mprj_analog_io[19]; - assign \mprj_pads.analog_io[18] = mprj_analog_io[18]; - assign \mprj_pads.analog_io[17] = mprj_analog_io[17]; - assign \mprj_pads.analog_io[16] = mprj_analog_io[16]; - assign \mprj_pads.analog_io[15] = mprj_analog_io[15]; - assign \mprj_pads.analog_io[14] = mprj_analog_io[14]; - assign \mprj_pads.analog_io[13] = mprj_analog_io[13]; - assign \mprj_pads.analog_io[12] = mprj_analog_io[12]; - assign \mprj_pads.analog_io[11] = mprj_analog_io[11]; - assign \mprj_pads.analog_io[10] = mprj_analog_io[10]; - assign \mprj_pads.analog_io[9] = mprj_analog_io[9]; - assign \mprj_pads.analog_io[8] = mprj_analog_io[8]; - assign \mprj_pads.analog_io[7] = mprj_analog_io[7]; - assign \mprj_pads.analog_io[6] = mprj_analog_io[6]; - assign \mprj_pads.analog_io[5] = mprj_analog_io[5]; - assign \mprj_pads.analog_io[4] = mprj_analog_io[4]; - assign \mprj_pads.analog_io[3] = mprj_analog_io[3]; - assign \mprj_pads.analog_io[2] = mprj_analog_io[2]; - assign \mprj_pads.analog_io[1] = mprj_analog_io[1]; - assign \mprj_pads.analog_io[0] = mprj_analog_io[0]; - assign \mprj_pads.analog_pol[37] = mprj_io_analog_pol[37]; - assign \mprj_pads.analog_pol[36] = mprj_io_analog_pol[36]; - assign \mprj_pads.analog_pol[35] = mprj_io_analog_pol[35]; - assign \mprj_pads.analog_pol[34] = mprj_io_analog_pol[34]; - assign \mprj_pads.analog_pol[33] = mprj_io_analog_pol[33]; - assign \mprj_pads.analog_pol[32] = mprj_io_analog_pol[32]; - assign \mprj_pads.analog_pol[31] = mprj_io_analog_pol[31]; - assign \mprj_pads.analog_pol[30] = mprj_io_analog_pol[30]; - assign \mprj_pads.analog_pol[29] = mprj_io_analog_pol[29]; - assign \mprj_pads.analog_pol[28] = mprj_io_analog_pol[28]; - assign \mprj_pads.analog_pol[27] = mprj_io_analog_pol[27]; - assign \mprj_pads.analog_pol[26] = mprj_io_analog_pol[26]; - assign \mprj_pads.analog_pol[25] = mprj_io_analog_pol[25]; - assign \mprj_pads.analog_pol[24] = mprj_io_analog_pol[24]; - assign \mprj_pads.analog_pol[23] = mprj_io_analog_pol[23]; - assign \mprj_pads.analog_pol[22] = mprj_io_analog_pol[22]; - assign \mprj_pads.analog_pol[21] = mprj_io_analog_pol[21]; - assign \mprj_pads.analog_pol[20] = mprj_io_analog_pol[20]; - assign \mprj_pads.analog_pol[19] = mprj_io_analog_pol[19]; - assign \mprj_pads.analog_pol[18] = mprj_io_analog_pol[18]; - assign \mprj_pads.analog_pol[17] = mprj_io_analog_pol[17]; - assign \mprj_pads.analog_pol[16] = mprj_io_analog_pol[16]; - assign \mprj_pads.analog_pol[15] = mprj_io_analog_pol[15]; - assign \mprj_pads.analog_pol[14] = mprj_io_analog_pol[14]; - assign \mprj_pads.analog_pol[13] = mprj_io_analog_pol[13]; - assign \mprj_pads.analog_pol[12] = mprj_io_analog_pol[12]; - assign \mprj_pads.analog_pol[11] = mprj_io_analog_pol[11]; - assign \mprj_pads.analog_pol[10] = mprj_io_analog_pol[10]; - assign \mprj_pads.analog_pol[9] = mprj_io_analog_pol[9]; - assign \mprj_pads.analog_pol[8] = mprj_io_analog_pol[8]; - assign \mprj_pads.analog_pol[7] = mprj_io_analog_pol[7]; - assign \mprj_pads.analog_pol[6] = mprj_io_analog_pol[6]; - assign \mprj_pads.analog_pol[5] = mprj_io_analog_pol[5]; - assign \mprj_pads.analog_pol[4] = mprj_io_analog_pol[4]; - assign \mprj_pads.analog_pol[3] = mprj_io_analog_pol[3]; - assign \mprj_pads.analog_pol[2] = mprj_io_analog_pol[2]; - assign \mprj_pads.analog_pol[1] = mprj_io_analog_pol[1]; - assign \mprj_pads.analog_pol[0] = mprj_io_analog_pol[0]; + assign \mprj_pads.oeb[37] = mprj_io_oeb[37]; + assign \mprj_pads.oeb[36] = mprj_io_oeb[36]; + assign \mprj_pads.oeb[35] = mprj_io_oeb[35]; + assign \mprj_pads.oeb[34] = mprj_io_oeb[34]; + assign \mprj_pads.oeb[33] = mprj_io_oeb[33]; + assign \mprj_pads.oeb[32] = mprj_io_oeb[32]; + assign \mprj_pads.oeb[31] = mprj_io_oeb[31]; + assign \mprj_pads.oeb[30] = mprj_io_oeb[30]; + assign \mprj_pads.oeb[29] = mprj_io_oeb[29]; + assign \mprj_pads.oeb[28] = mprj_io_oeb[28]; + assign \mprj_pads.oeb[27] = mprj_io_oeb[27]; + assign \mprj_pads.oeb[26] = mprj_io_oeb[26]; + assign \mprj_pads.oeb[25] = mprj_io_oeb[25]; + assign \mprj_pads.oeb[24] = mprj_io_oeb[24]; + assign \mprj_pads.oeb[23] = mprj_io_oeb[23]; + assign \mprj_pads.oeb[22] = mprj_io_oeb[22]; + assign \mprj_pads.oeb[21] = mprj_io_oeb[21]; + assign \mprj_pads.oeb[20] = mprj_io_oeb[20]; + assign \mprj_pads.oeb[19] = mprj_io_oeb[19]; + assign \mprj_pads.oeb[18] = mprj_io_oeb[18]; + assign \mprj_pads.oeb[17] = mprj_io_oeb[17]; + assign \mprj_pads.oeb[16] = mprj_io_oeb[16]; + assign \mprj_pads.oeb[15] = mprj_io_oeb[15]; + assign \mprj_pads.oeb[14] = mprj_io_oeb[14]; + assign \mprj_pads.oeb[13] = mprj_io_oeb[13]; + assign \mprj_pads.oeb[12] = mprj_io_oeb[12]; + assign \mprj_pads.oeb[11] = mprj_io_oeb[11]; + assign \mprj_pads.oeb[10] = mprj_io_oeb[10]; + assign \mprj_pads.oeb[9] = mprj_io_oeb[9]; + assign \mprj_pads.oeb[8] = mprj_io_oeb[8]; + assign \mprj_pads.oeb[7] = mprj_io_oeb[7]; + assign \mprj_pads.oeb[6] = mprj_io_oeb[6]; + assign \mprj_pads.oeb[5] = mprj_io_oeb[5]; + assign \mprj_pads.oeb[4] = mprj_io_oeb[4]; + assign \mprj_pads.oeb[3] = mprj_io_oeb[3]; + assign \mprj_pads.oeb[2] = mprj_io_oeb[2]; + assign \mprj_pads.oeb[1] = mprj_io_oeb[1]; + assign \mprj_pads.oeb[0] = mprj_io_oeb[0]; assign \mprj_pads.slow_sel[37] = mprj_io_slow_sel[37]; assign \mprj_pads.slow_sel[36] = mprj_io_slow_sel[36]; assign \mprj_pads.slow_sel[35] = mprj_io_slow_sel[35]; @@ -2614,82 +3441,6 @@ assign \mprj_pads.slow_sel[2] = mprj_io_slow_sel[2]; assign \mprj_pads.slow_sel[1] = mprj_io_slow_sel[1]; assign \mprj_pads.slow_sel[0] = mprj_io_slow_sel[0]; - assign \mprj_pads.holdover[37] = mprj_io_holdover[37]; - assign \mprj_pads.holdover[36] = mprj_io_holdover[36]; - assign \mprj_pads.holdover[35] = mprj_io_holdover[35]; - assign \mprj_pads.holdover[34] = mprj_io_holdover[34]; - assign \mprj_pads.holdover[33] = mprj_io_holdover[33]; - assign \mprj_pads.holdover[32] = mprj_io_holdover[32]; - assign \mprj_pads.holdover[31] = mprj_io_holdover[31]; - assign \mprj_pads.holdover[30] = mprj_io_holdover[30]; - assign \mprj_pads.holdover[29] = mprj_io_holdover[29]; - assign \mprj_pads.holdover[28] = mprj_io_holdover[28]; - assign \mprj_pads.holdover[27] = mprj_io_holdover[27]; - assign \mprj_pads.holdover[26] = mprj_io_holdover[26]; - assign \mprj_pads.holdover[25] = mprj_io_holdover[25]; - assign \mprj_pads.holdover[24] = mprj_io_holdover[24]; - assign \mprj_pads.holdover[23] = mprj_io_holdover[23]; - assign \mprj_pads.holdover[22] = mprj_io_holdover[22]; - assign \mprj_pads.holdover[21] = mprj_io_holdover[21]; - assign \mprj_pads.holdover[20] = mprj_io_holdover[20]; - assign \mprj_pads.holdover[19] = mprj_io_holdover[19]; - assign \mprj_pads.holdover[18] = mprj_io_holdover[18]; - assign \mprj_pads.holdover[17] = mprj_io_holdover[17]; - assign \mprj_pads.holdover[16] = mprj_io_holdover[16]; - assign \mprj_pads.holdover[15] = mprj_io_holdover[15]; - assign \mprj_pads.holdover[14] = mprj_io_holdover[14]; - assign \mprj_pads.holdover[13] = mprj_io_holdover[13]; - assign \mprj_pads.holdover[12] = mprj_io_holdover[12]; - assign \mprj_pads.holdover[11] = mprj_io_holdover[11]; - assign \mprj_pads.holdover[10] = mprj_io_holdover[10]; - assign \mprj_pads.holdover[9] = mprj_io_holdover[9]; - assign \mprj_pads.holdover[8] = mprj_io_holdover[8]; - assign \mprj_pads.holdover[7] = mprj_io_holdover[7]; - assign \mprj_pads.holdover[6] = mprj_io_holdover[6]; - assign \mprj_pads.holdover[5] = mprj_io_holdover[5]; - assign \mprj_pads.holdover[4] = mprj_io_holdover[4]; - assign \mprj_pads.holdover[3] = mprj_io_holdover[3]; - assign \mprj_pads.holdover[2] = mprj_io_holdover[2]; - assign \mprj_pads.holdover[1] = mprj_io_holdover[1]; - assign \mprj_pads.holdover[0] = mprj_io_holdover[0]; - assign \mprj_pads.io[37] = mprj_io[37]; - assign \mprj_pads.io[36] = mprj_io[36]; - assign \mprj_pads.io[35] = mprj_io[35]; - assign \mprj_pads.io[34] = mprj_io[34]; - assign \mprj_pads.io[33] = mprj_io[33]; - assign \mprj_pads.io[32] = mprj_io[32]; - assign \mprj_pads.io[31] = mprj_io[31]; - assign \mprj_pads.io[30] = mprj_io[30]; - assign \mprj_pads.io[29] = mprj_io[29]; - assign \mprj_pads.io[28] = mprj_io[28]; - assign \mprj_pads.io[27] = mprj_io[27]; - assign \mprj_pads.io[26] = mprj_io[26]; - assign \mprj_pads.io[25] = mprj_io[25]; - assign \mprj_pads.io[24] = mprj_io[24]; - assign \mprj_pads.io[23] = mprj_io[23]; - assign \mprj_pads.io[22] = mprj_io[22]; - assign \mprj_pads.io[21] = mprj_io[21]; - assign \mprj_pads.io[20] = mprj_io[20]; - assign \mprj_pads.io[19] = mprj_io[19]; - assign \mprj_pads.io[18] = mprj_io[18]; - assign \mprj_pads.io[17] = mprj_io[17]; - assign \mprj_pads.io[16] = mprj_io[16]; - assign \mprj_pads.io[15] = mprj_io[15]; - assign \mprj_pads.io[14] = mprj_io[14]; - assign \mprj_pads.io[13] = mprj_io[13]; - assign \mprj_pads.io[12] = mprj_io[12]; - assign \mprj_pads.io[11] = mprj_io[11]; - assign \mprj_pads.io[10] = mprj_io[10]; - assign \mprj_pads.io[9] = mprj_io[9]; - assign \mprj_pads.io[8] = mprj_io[8]; - assign \mprj_pads.io[7] = mprj_io[7]; - assign \mprj_pads.io[6] = mprj_io[6]; - assign \mprj_pads.io[5] = mprj_io[5]; - assign \mprj_pads.io[4] = mprj_io[4]; - assign \mprj_pads.io[3] = mprj_io[3]; - assign \mprj_pads.io[2] = mprj_io[2]; - assign \mprj_pads.io[1] = mprj_io[1]; - assign \mprj_pads.io[0] = mprj_io[0]; assign \mprj_pads.analog_en[37] = mprj_io_analog_en[37]; assign \mprj_pads.analog_en[36] = mprj_io_analog_en[36]; assign \mprj_pads.analog_en[35] = mprj_io_analog_en[35]; @@ -2728,6 +3479,82 @@ assign \mprj_pads.analog_en[2] = mprj_io_analog_en[2]; assign \mprj_pads.analog_en[1] = mprj_io_analog_en[1]; assign \mprj_pads.analog_en[0] = mprj_io_analog_en[0]; + assign \mprj_pads.io_out[37] = mprj_io_out[37]; + assign \mprj_pads.io_out[36] = mprj_io_out[36]; + assign \mprj_pads.io_out[35] = mprj_io_out[35]; + assign \mprj_pads.io_out[34] = mprj_io_out[34]; + assign \mprj_pads.io_out[33] = mprj_io_out[33]; + assign \mprj_pads.io_out[32] = mprj_io_out[32]; + assign \mprj_pads.io_out[31] = mprj_io_out[31]; + assign \mprj_pads.io_out[30] = mprj_io_out[30]; + assign \mprj_pads.io_out[29] = mprj_io_out[29]; + assign \mprj_pads.io_out[28] = mprj_io_out[28]; + assign \mprj_pads.io_out[27] = mprj_io_out[27]; + assign \mprj_pads.io_out[26] = mprj_io_out[26]; + assign \mprj_pads.io_out[25] = mprj_io_out[25]; + assign \mprj_pads.io_out[24] = mprj_io_out[24]; + assign \mprj_pads.io_out[23] = mprj_io_out[23]; + assign \mprj_pads.io_out[22] = mprj_io_out[22]; + assign \mprj_pads.io_out[21] = mprj_io_out[21]; + assign \mprj_pads.io_out[20] = mprj_io_out[20]; + assign \mprj_pads.io_out[19] = mprj_io_out[19]; + assign \mprj_pads.io_out[18] = mprj_io_out[18]; + assign \mprj_pads.io_out[17] = mprj_io_out[17]; + assign \mprj_pads.io_out[16] = mprj_io_out[16]; + assign \mprj_pads.io_out[15] = mprj_io_out[15]; + assign \mprj_pads.io_out[14] = mprj_io_out[14]; + assign \mprj_pads.io_out[13] = mprj_io_out[13]; + assign \mprj_pads.io_out[12] = mprj_io_out[12]; + assign \mprj_pads.io_out[11] = mprj_io_out[11]; + assign \mprj_pads.io_out[10] = mprj_io_out[10]; + assign \mprj_pads.io_out[9] = mprj_io_out[9]; + assign \mprj_pads.io_out[8] = mprj_io_out[8]; + assign \mprj_pads.io_out[7] = mprj_io_out[7]; + assign \mprj_pads.io_out[6] = mprj_io_out[6]; + assign \mprj_pads.io_out[5] = mprj_io_out[5]; + assign \mprj_pads.io_out[4] = mprj_io_out[4]; + assign \mprj_pads.io_out[3] = mprj_io_out[3]; + assign \mprj_pads.io_out[2] = mprj_io_out[2]; + assign \mprj_pads.io_out[1] = mprj_io_out[1]; + assign \mprj_pads.io_out[0] = mprj_io_out[0]; + assign \mprj_pads.analog_sel[37] = mprj_io_analog_sel[37]; + assign \mprj_pads.analog_sel[36] = mprj_io_analog_sel[36]; + assign \mprj_pads.analog_sel[35] = mprj_io_analog_sel[35]; + assign \mprj_pads.analog_sel[34] = mprj_io_analog_sel[34]; + assign \mprj_pads.analog_sel[33] = mprj_io_analog_sel[33]; + assign \mprj_pads.analog_sel[32] = mprj_io_analog_sel[32]; + assign \mprj_pads.analog_sel[31] = mprj_io_analog_sel[31]; + assign \mprj_pads.analog_sel[30] = mprj_io_analog_sel[30]; + assign \mprj_pads.analog_sel[29] = mprj_io_analog_sel[29]; + assign \mprj_pads.analog_sel[28] = mprj_io_analog_sel[28]; + assign \mprj_pads.analog_sel[27] = mprj_io_analog_sel[27]; + assign \mprj_pads.analog_sel[26] = mprj_io_analog_sel[26]; + assign \mprj_pads.analog_sel[25] = mprj_io_analog_sel[25]; + assign \mprj_pads.analog_sel[24] = mprj_io_analog_sel[24]; + assign \mprj_pads.analog_sel[23] = mprj_io_analog_sel[23]; + assign \mprj_pads.analog_sel[22] = mprj_io_analog_sel[22]; + assign \mprj_pads.analog_sel[21] = mprj_io_analog_sel[21]; + assign \mprj_pads.analog_sel[20] = mprj_io_analog_sel[20]; + assign \mprj_pads.analog_sel[19] = mprj_io_analog_sel[19]; + assign \mprj_pads.analog_sel[18] = mprj_io_analog_sel[18]; + assign \mprj_pads.analog_sel[17] = mprj_io_analog_sel[17]; + assign \mprj_pads.analog_sel[16] = mprj_io_analog_sel[16]; + assign \mprj_pads.analog_sel[15] = mprj_io_analog_sel[15]; + assign \mprj_pads.analog_sel[14] = mprj_io_analog_sel[14]; + assign \mprj_pads.analog_sel[13] = mprj_io_analog_sel[13]; + assign \mprj_pads.analog_sel[12] = mprj_io_analog_sel[12]; + assign \mprj_pads.analog_sel[11] = mprj_io_analog_sel[11]; + assign \mprj_pads.analog_sel[10] = mprj_io_analog_sel[10]; + assign \mprj_pads.analog_sel[9] = mprj_io_analog_sel[9]; + assign \mprj_pads.analog_sel[8] = mprj_io_analog_sel[8]; + assign \mprj_pads.analog_sel[7] = mprj_io_analog_sel[7]; + assign \mprj_pads.analog_sel[6] = mprj_io_analog_sel[6]; + assign \mprj_pads.analog_sel[5] = mprj_io_analog_sel[5]; + assign \mprj_pads.analog_sel[4] = mprj_io_analog_sel[4]; + assign \mprj_pads.analog_sel[3] = mprj_io_analog_sel[3]; + assign \mprj_pads.analog_sel[2] = mprj_io_analog_sel[2]; + assign \mprj_pads.analog_sel[1] = mprj_io_analog_sel[1]; + assign \mprj_pads.analog_sel[0] = mprj_io_analog_sel[0]; assign \mprj_pads.vddio = vddio; assign \mprj_pads.vssio = vssio; assign \mprj_pads.vccd = vccd; @@ -2741,27 +3568,27 @@ assign \mprj_pads.vssd1 = vssd1; assign \mprj_pads.vssd2 = vssd2; assign \mprj_pads.porb_h = porb_h; - assign \mprj_pads.inp_dis[27] = mprj_io_inp_dis[27]; - assign \mprj_pads.inp_dis[35] = mprj_io_inp_dis[35]; - assign \dm_all[2] = gpio_mode1_core; - assign \mprj_pads.inp_dis[33] = mprj_io_inp_dis[33]; - assign \mprj_pads.inp_dis[34] = mprj_io_inp_dis[34]; - assign \flash_io1_mode[2] = flash_io1_ieb_core; - assign \mprj_pads.inp_dis[36] = mprj_io_inp_dis[36]; - assign \mprj_pads.inp_dis[37] = mprj_io_inp_dis[37]; - assign \mprj_pads.inp_dis[29] = mprj_io_inp_dis[29]; - assign \mprj_pads.inp_dis[28] = mprj_io_inp_dis[28]; - assign \mprj_pads.inp_dis[26] = mprj_io_inp_dis[26]; - assign \flash_io1_mode[0] = flash_io1_oeb_core; - assign \mprj_pads.inp_dis[31] = mprj_io_inp_dis[31]; - assign \dm_all[1] = gpio_mode1_core; - assign \mprj_pads.inp_dis[30] = mprj_io_inp_dis[30]; - assign \mprj_pads.inp_dis[32] = mprj_io_inp_dis[32]; - assign \dm_all[0] = gpio_mode0_core; - assign \flash_io1_mode[1] = flash_io1_ieb_core; - assign \flash_io0_mode[1] = flash_io0_ieb_core; - assign \flash_io0_mode[2] = flash_io0_ieb_core; - assign \flash_io0_mode[0] = flash_io0_oeb_core; + assign \mprj_pads.dm[104] = mprj_io_dm[104]; + assign \mprj_pads.dm[94] = mprj_io_dm[94]; + assign \mprj_pads.dm[99] = mprj_io_dm[99]; + assign \mprj_pads.dm[110] = mprj_io_dm[110]; + assign \mprj_pads.dm[100] = mprj_io_dm[100]; + assign \mprj_pads.dm[105] = mprj_io_dm[105]; + assign \mprj_pads.dm[102] = mprj_io_dm[102]; + assign \mprj_pads.dm[103] = mprj_io_dm[103]; + assign \mprj_pads.dm[96] = mprj_io_dm[96]; + assign \mprj_pads.dm[107] = mprj_io_dm[107]; + assign \mprj_pads.dm[95] = mprj_io_dm[95]; + assign \mprj_pads.dm[93] = mprj_io_dm[93]; + assign \mprj_pads.dm[112] = mprj_io_dm[112]; + assign \mprj_pads.dm[113] = mprj_io_dm[113]; + assign \mprj_pads.dm[106] = mprj_io_dm[106]; + assign \mprj_pads.dm[108] = mprj_io_dm[108]; + assign \mprj_pads.dm[98] = mprj_io_dm[98]; + assign \mprj_pads.dm[97] = mprj_io_dm[97]; + assign \mprj_pads.dm[111] = mprj_io_dm[111]; + assign \mprj_pads.dm[101] = mprj_io_dm[101]; + assign \mprj_pads.dm[109] = mprj_io_dm[109]; assign vssio_q = \mprj_pads.vssio_q ; assign vddio_q = \mprj_pads.vddio_q ; assign analog_b = \mprj_pads.analog_b ;
diff --git a/verilog/rtl/caravel.v b/verilog/rtl/caravel.v index 08a6241..2ee50bc 100644 --- a/verilog/rtl/caravel.v +++ b/verilog/rtl/caravel.v
@@ -35,29 +35,34 @@ `ifdef GL `include "gl/mgmt_core.v" + `include "gl/digital_pll.v" + `include "gl/DFFRAM.v" + `include "gl/storage.v" + `include "gl/user_id_programming.v" + `include "gl/chip_io.v" `else `include "mgmt_soc.v" `include "housekeeping_spi.v" `include "caravel_clocking.v" `include "mgmt_core.v" + `include "digital_pll.v" + `include "DFFRAM.v" + `include "DFFRAMBB.v" + `include "storage.v" + `include "user_id_programming.v" + `include "clock_div.v" + `include "storage_bridge_wb.v" + `include "mprj_io.v" + `include "chip_io.v" `endif -`include "digital_pll.v" +`include "sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v" `include "mgmt_protect.v" `include "mgmt_protect_hv.v" -`include "mprj_io.v" -`include "chip_io.v" -`include "user_id_programming.v" `include "user_project_wrapper.v" `include "gpio_control_block.v" -`include "clock_div.v" `include "simple_por.v" -`include "storage_bridge_wb.v" -`include "DFFRAM.v" -`include "DFFRAMBB.v" `include "sram_1rw1r_32_256_8_sky130.v" -`include "storage.v" -`include "sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v" /*------------------------------*/ /* Include user project here */ @@ -638,8 +643,8 @@ .USER_PROJECT_ID(USER_PROJECT_ID) ) user_id_value ( `ifdef USE_POWER_PINS - .vdd1v8(vccd), - .vss(vssd), + .VPWR(vccd), + .VGND(vssd), `endif .mask_rev(mask_rev) );
diff --git a/verilog/rtl/user_id_programming.v b/verilog/rtl/user_id_programming.v index 934f9d7..ce1f42b 100644 --- a/verilog/rtl/user_id_programming.v +++ b/verilog/rtl/user_id_programming.v
@@ -8,8 +8,8 @@ parameter [ 0:0] USER_PROJECT_ID = 32'h0 ) ( `ifdef USE_POWER_PINS - inout vdd1v8, - inout vss, + inout VPWR, + inout VGND, `endif output [31:0] mask_rev ); @@ -21,10 +21,10 @@ sky130_fd_sc_hd__conb_1 mask_rev_value [31:0] ( `ifdef USE_POWER_PINS - .VPWR(vdd1v8), - .VPB(vdd1v8), - .VNB(vss), - .VGND(vss), + .VPWR(VPWR), + .VPB(VPWR), + .VNB(VGND), + .VGND(VGND), `endif .HI(user_proj_id_high), .LO(user_proj_id_low)