Modified I/O references to match the sky130_fd_io release. Mostly confirmed, but waiting on fixes to the library release.
diff --git a/verilog/rtl/caravel.v b/verilog/rtl/caravel.v index a73cf98..b76e869 100644 --- a/verilog/rtl/caravel.v +++ b/verilog/rtl/caravel.v
@@ -25,7 +25,7 @@ /* NOTE: Need to pass the PDK root directory to iverilog with option -I */ `include "libs.ref/sky130_fd_io/verilog/sky130_fd_io.v" -// `include "libs.ref/sky130_fd_io/verilog/power_pads_lib.v" +`include "libs.ref/sky130_fd_io/verilog/sky130_ef_io.v" `include "libs.ref/sky130_fd_sc_hd/verilog/primitives.v" `include "libs.ref/sky130_fd_sc_hd/verilog/sky130_fd_sc_hd.v"
diff --git a/verilog/rtl/chip_io.v b/verilog/rtl/chip_io.v index 5238bef..264cf8e 100644 --- a/verilog/rtl/chip_io.v +++ b/verilog/rtl/chip_io.v
@@ -78,32 +78,32 @@ // rails and grounds, and one back-to-back diode which connects // between the first LV clamp ground and any other ground. - s8iom0_vddio_hvc_pad mgmt_vddio_hvclamp_pad [1:0] ( + sky130_ef_io__vddio_hvc_pad mgmt_vddio_hvclamp_pad [1:0] ( `MGMT_ABUTMENT_PINS `HVCLAMP_PINS(vddio, vssio) ); - s8iom0_vdda_hvc_pad mgmt_vdda_hvclamp_pad ( + sky130_ef_io__vdda_hvc_pad mgmt_vdda_hvclamp_pad ( `MGMT_ABUTMENT_PINS `HVCLAMP_PINS(vdda, vssa) ); - s8iom0_vccd_lvc_pad mgmt_vccd_lvclamp_pad ( + sky130_ef_io__vccd_lvc_pad mgmt_vccd_lvclamp_pad ( `MGMT_ABUTMENT_PINS `LVCLAMP_PINS(vccd, vssio, vccd, vssd, vssa) ); - s8iom0_vssio_hvc_pad mgmt_vssio_hvclamp_pad [1:0] ( + sky130_ef_io__vssio_hvc_pad mgmt_vssio_hvclamp_pad [1:0] ( `MGMT_ABUTMENT_PINS `HVCLAMP_PINS(vddio, vssio) ); - s8iom0_vssa_hvc_pad mgmt_vssa_hvclamp_pad ( + sky130_ef_io__vssa_hvc_pad mgmt_vssa_hvclamp_pad ( `MGMT_ABUTMENT_PINS `HVCLAMP_PINS(vdda, vssa) ); - s8iom0_vssd_lvc_pad mgmt_vssd_lvclmap_pad ( + sky130_ef_io__vssd_lvc_pad mgmt_vssd_lvclmap_pad ( `MGMT_ABUTMENT_PINS `LVCLAMP_PINS(vccd, vssio, vccd, vssd, vssa) ); @@ -111,22 +111,22 @@ // Instantiate power and ground pads for user 1 domain // 8 pads: vdda, vssa, vccd, vssd; One each HV and LV clamp. - s8iom0_vdda_hvc_pad user1_vdda_hvclamp_pad [1:0] ( + sky130_ef_io__vdda_hvc_pad user1_vdda_hvclamp_pad [1:0] ( `USER1_ABUTMENT_PINS `HVCLAMP_PINS(vdda1, vssa1) ); - s8iom0_vccd_lvc_pad user1_vccd_lvclamp_pad ( + sky130_ef_io__vccd_lvc_pad user1_vccd_lvclamp_pad ( `USER1_ABUTMENT_PINS `LVCLAMP_PINS(vccd1, vssd1, vccd1, vssd, vssio) ); - s8iom0_vssa_hvc_pad user1_vssa_hvclamp_pad [1:0] ( + sky130_ef_io__vssa_hvc_pad user1_vssa_hvclamp_pad [1:0] ( `USER1_ABUTMENT_PINS `HVCLAMP_PINS(vdda1, vssa1) ); - s8iom0_vssd_lvc_pad user1_vssd_lvclmap_pad ( + sky130_ef_io__vssd_lvc_pad user1_vssd_lvclmap_pad ( `USER1_ABUTMENT_PINS `LVCLAMP_PINS(vccd1, vssd1, vccd1, vssd, vssio) ); @@ -134,22 +134,22 @@ // Instantiate power and ground pads for user 2 domain // 8 pads: vdda, vssa, vccd, vssd; One each HV and LV clamp. - s8iom0_vdda_hvc_pad user2_vdda_hvclamp_pad ( + sky130_ef_io__vdda_hvc_pad user2_vdda_hvclamp_pad ( `USER2_ABUTMENT_PINS `HVCLAMP_PINS(vdda2, vssa2) ); - s8iom0_vccd_lvc_pad user2_vccd_lvclamp_pad ( + sky130_ef_io__vccd_lvc_pad user2_vccd_lvclamp_pad ( `USER2_ABUTMENT_PINS `LVCLAMP_PINS(vccd2, vssd2, vccd2, vssd, vssio) ); - s8iom0_vssa_hvc_pad user2_vssa_hvclamp_pad ( + sky130_ef_io__vssa_hvc_pad user2_vssa_hvclamp_pad ( `USER2_ABUTMENT_PINS `HVCLAMP_PINS(vdda2, vssa2) ); - s8iom0_vssd_lvc_pad user2_vssd_lvclmap_pad ( + sky130_ef_io__vssd_lvc_pad user2_vssd_lvclmap_pad ( `USER2_ABUTMENT_PINS `LVCLAMP_PINS(vccd2, vssd2, vccd2, vssd, vssio) ); @@ -185,7 +185,7 @@ // power-on-reset circuit. The XRES pad is used for providing a glitch- // free reset. - s8iom0s8_top_xres4v2 resetb_pad ( + sky130_fd_io__top_xres4v2 resetb_pad ( `MGMT_ABUTMENT_PINS `ifndef TOP_ROUTING .pad(resetb), @@ -208,84 +208,84 @@ // supposed to go under them.) `ifndef TOP_ROUTING - s8iom0_corner_pad mgmt_corner [1:0] ( - .vssio(vssio), - .vddio(vddio), - .vddio_q(vddio_q), - .vssio_q(vssio_q), - .amuxbus_a(analog_a), - .amuxbus_b(analog_b), - .vssd(vssio), - .vssa(vssio), - .vswitch(vddio), - .vdda(vdda), - .vccd(vccd), - .vcchib(vccd) + sky130_ef_io__corner_pad mgmt_corner [1:0] ( + .VSSIO(vssio), + .VDDIO(vddio), + .VDDIO_Q(vddio_q), + .VSSIO_Q(vssio_q), + .AMUXBUS_A(analog_a), + .AMUXBUS_B(analog_b), + .VSSD(vssio), + .VSSA(vssio), + .VSWITCH(vddio), + .VDDA(vdda), + .VCCD(vccd), + .VCCHIB(vccd) ); - s8iom0_corner_pad user1_corner ( - .vssio(vssio), - .vddio(vddio), - .vddio_q(vddio_q), - .vssio_q(vssio_q), - .amuxbus_a(analog_a), - .amuxbus_b(analog_b), - .vssd(vssd1), - .vssa(vssa1), - .vswitch(vddio), - .vdda(vdda1), - .vccd(vccd1), - .vcchib(vccd) + sky130_ef_io__corner_pad user1_corner ( + .VSSIO(vssio), + .VDDIO(vddio), + .VDDIO_Q(vddio_q), + .VSSIO_Q(vssio_q), + .AMUXBUS_A(analog_a), + .AMUXBUS_B(analog_b), + .VSSD(vssd1), + .VSSA(vssa1), + .VSWITCH(vddio), + .VDDA(vdda1), + .VCCD(vccd1), + .VCCHIB(vccd) ); - s8iom0_corner_pad user2_corner ( - .vssio(vssio), - .vddio(vddio), - .vddio_q(vddio_q), - .vssio_q(vssio_q), - .amuxbus_a(analog_a), - .amuxbus_b(analog_b), - .vssd(vssd2), - .vssa(vssa2), - .vswitch(vddio), - .vdda(vdda2), - .vccd(vccd2), - .vcchib(vccd) + sky130_ef_io__corner_pad user2_corner ( + .VSSIO(vssio), + .VDDIO(vddio), + .VDDIO_Q(vddio_q), + .VSSIO_Q(vssio_q), + .AMUXBUS_A(analog_a), + .AMUXBUS_B(analog_b), + .VSSD(vssd2), + .VSSA(vssa2), + .VSWITCH(vddio), + .VDDA(vdda2), + .VCCD(vccd2), + .VCCHIB(vccd) ); `endif mprj_io mprj_pads( - .vddio(vddio), - .vssio(vssio), - .vccd(vccd), - .vssd(vssd), - .vdda1(vdda1), - .vdda2(vdda2), - .vssa1(vssa1), - .vssa2(vssa2), - .vccd1(vccd1), - .vccd2(vccd2), - .vssd1(vssd1), - .vssd2(vssd2), - .vddio_q(vddio_q), - .vssio_q(vssio_q), - .analog_a(analog_a), - .analog_b(analog_b), - .porb_h(porb_h), - .por(por), - .io(mprj_io), - .io_out(mprj_io_out), - .oeb(mprj_io_oeb), - .hldh_n(mprj_io_hldh_n), - .enh(mprj_io_enh), - .inp_dis(mprj_io_inp_dis), - .ib_mode_sel(mprj_io_ib_mode_sel), - .vtrip_sel(mprj_io_vtrip_sel), - .holdover(mprj_io_holdover), - .slow_sel(mprj_io_slow_sel), - .analog_en(mprj_io_analog_en), - .analog_sel(mprj_io_analog_sel), - .analog_pol(mprj_io_analog_pol), - .dm(mprj_io_dm), - .io_in(mprj_io_in) + .VDDIO(vddio), + .VSSIO(vssio), + .VCCD(vccd), + .VSSD(vssd), + .VDDA1(vdda1), + .VDDA2(vdda2), + .VSSA1(vssa1), + .VSSA2(vssa2), + .VCCD1(vccd1), + .VCCD2(vccd2), + .VSSD1(vssd1), + .VSSD2(vssd2), + .VDDIO_Q(vddio_q), + .VSSIO_Q(vssio_q), + .ANALOG_A(analog_a), + .ANALOG_B(analog_b), + .PORB_H(porb_h), + .POR(por), + .IO(mprj_io), + .IO_OUT(mprj_io_out), + .OEB(mprj_io_oeb), + .HLDH_N(mprj_io_hldh_n), + .ENH(mprj_io_enh), + .INP_DIS(mprj_io_inp_dis), + .IB_MODE_SEL(mprj_io_ib_mode_sel), + .VTRIP_SEL(mprj_io_vtrip_sel), + .HOLDOVER(mprj_io_holdover), + .SLOW_SEL(mprj_io_slow_sel), + .ANALOG_EN(mprj_io_analog_en), + .ANALOG_SEL(mprj_io_analog_sel), + .ANALOG_POL(mprj_io_analog_pol), + .DM(mprj_io_dm), + .IO_IN(mprj_io_in) ); endmodule
diff --git a/verilog/rtl/mprj_io.v b/verilog/rtl/mprj_io.v index 1c29d96..5bc4483 100644 --- a/verilog/rtl/mprj_io.v +++ b/verilog/rtl/mprj_io.v
@@ -42,66 +42,66 @@ wire [`MPRJ_IO_PADS-1:0] loop1_io; - s8iom0_gpiov2_pad area1_io_pad [AREA1PADS - 1:0] ( + sky130_ef_io__gpiov2_pad area1_io_pad [AREA1PADS - 1:0] ( `USER1_ABUTMENT_PINS `ifndef TOP_ROUTING - .pad(io[AREA1PADS - 1:0]), + .PAD(io[AREA1PADS - 1:0]), `endif - .out(io_out[AREA1PADS - 1:0]), - .oe_n(oeb[AREA1PADS - 1:0]), - .hld_h_n(hldh_n[AREA1PADS - 1:0]), - .enable_h(enh[AREA1PADS - 1:0]), - .enable_inp_h(loop1_io[AREA1PADS - 1:0]), - .enable_vdda_h(porb_h), - .enable_vswitch_h(vssio), - .enable_vddio(vccd), - .inp_dis(inp_dis[AREA1PADS - 1:0]), - .ib_mode_sel(ib_mode_sel[AREA1PADS - 1:0]), - .vtrip_sel(vtrip_sel[AREA1PADS - 1:0]), - .slow(slow_sel[AREA1PADS - 1:0]), - .hld_ovr(holdover[AREA1PADS - 1:0]), - .analog_en(analog_en[AREA1PADS - 1:0]), - .analog_sel(analog_sel[AREA1PADS - 1:0]), - .analog_pol(analog_pol[AREA1PADS - 1:0]), - .dm(dm[AREA1PADS*3 - 1:0]), - .pad_a_noesd_h(), - .pad_a_esd_0_h(), - .pad_a_esd_1_h(), - .in(io_in[AREA1PADS - 1:0]), - .in_h(), - .tie_hi_esd(), - .tie_lo_esd(loop1_io[AREA1PADS - 1:0]) + .OUT(io_out[AREA1PADS - 1:0]), + .OE_N(oeb[AREA1PADS - 1:0]), + .HLD_H_N(hldh_n[AREA1PADS - 1:0]), + .ENABLE_H(enh[AREA1PADS - 1:0]), + .ENABLE_INP_H(loop1_io[AREA1PADS - 1:0]), + .ENABLE_VDDA_H(porb_h), + .ENABLE_VSWITCH_H(vssio), + .ENABLE_VDDIO(vccd), + .INP_DIS(inp_dis[AREA1PADS - 1:0]), + .IB_MODE_SEL(ib_mode_sel[AREA1PADS - 1:0]), + .VTRIP_SEL(vtrip_sel[AREA1PADS - 1:0]), + .SLOW(slow_sel[AREA1PADS - 1:0]), + .HLD_OVR(holdover[AREA1PADS - 1:0]), + .ANALOG_EN(analog_en[AREA1PADS - 1:0]), + .ANALOG_SEL(analog_sel[AREA1PADS - 1:0]), + .ANALOG_POL(analog_pol[AREA1PADS - 1:0]), + .DM(dm[AREA1PADS*3 - 1:0]), + .PAD_A_NOESD_H(), + .PAD_A_ESD_0_H(), + .PAD_A_ESD_1_H(), + .IN(io_in[AREA1PADS - 1:0]), + .IN_H(), + .TIE_HI_ESD(), + .TIE_LO_ESD(loop1_io[AREA1PADS - 1:0]) ); - s8iom0_gpiov2_pad area2_io_pad [`MPRJ_IO_PADS - AREA1PADS - 1:0] ( + sky130_ef_io__gpiov2_pad area2_io_pad [`MPRJ_IO_PADS - AREA1PADS - 1:0] ( `USER2_ABUTMENT_PINS `ifndef TOP_ROUTING - .pad(io[`MPRJ_IO_PADS - 1:AREA1PADS]), + .PAD(io[`MPRJ_IO_PADS - 1:AREA1PADS]), `endif - .out(io_out[`MPRJ_IO_PADS - 1:AREA1PADS]), - .oe_n(oeb[`MPRJ_IO_PADS - 1:AREA1PADS]), - .hld_h_n(hldh_n[`MPRJ_IO_PADS - 1:AREA1PADS]), - .enable_h(enh[`MPRJ_IO_PADS - 1:AREA1PADS]), - .enable_inp_h(loop1_io[`MPRJ_IO_PADS - 1:AREA1PADS]), - .enable_vdda_h(porb_h), - .enable_vswitch_h(vssio), - .enable_vddio(vccd), - .inp_dis(inp_dis[`MPRJ_IO_PADS - 1:AREA1PADS]), - .ib_mode_sel(ib_mode_sel[`MPRJ_IO_PADS - 1:AREA1PADS]), - .vtrip_sel(vtrip_sel[`MPRJ_IO_PADS - 1:AREA1PADS]), - .slow(slow_sel[`MPRJ_IO_PADS - 1:AREA1PADS]), - .hld_ovr(holdover[`MPRJ_IO_PADS - 1:AREA1PADS]), - .analog_en(analog_en[`MPRJ_IO_PADS - 1:AREA1PADS]), - .analog_sel(analog_sel[`MPRJ_IO_PADS - 1:AREA1PADS]), - .analog_pol(analog_pol[`MPRJ_IO_PADS - 1:AREA1PADS]), - .dm(dm[`MPRJ_IO_PADS*3 - 1:AREA1PADS*3]), - .pad_a_noesd_h(), - .pad_a_esd_0_h(), - .pad_a_esd_1_h(), - .in(io_in[`MPRJ_IO_PADS - 1:AREA1PADS]), - .in_h(), - .tie_hi_esd(), - .tie_lo_esd(loop1_io[`MPRJ_IO_PADS - 1:AREA1PADS]) + .OUT(io_out[`MPRJ_IO_PADS - 1:AREA1PADS]), + .OE_N(oeb[`MPRJ_IO_PADS - 1:AREA1PADS]), + .HLD_H_N(hldh_n[`MPRJ_IO_PADS - 1:AREA1PADS]), + .ENABLE_H(enh[`MPRJ_IO_PADS - 1:AREA1PADS]), + .ENABLE_INP_H(loop1_io[`MPRJ_IO_PADS - 1:AREA1PADS]), + .ENABLE_VDDA_H(porb_h), + .ENABLE_VSWITCH_H(vssio), + .ENABLE_VDDIO(vccd), + .INP_DIS(inp_dis[`MPRJ_IO_PADS - 1:AREA1PADS]), + .IB_MODE_SEL(ib_mode_sel[`MPRJ_IO_PADS - 1:AREA1PADS]), + .VTRIP_SEL(vtrip_sel[`MPRJ_IO_PADS - 1:AREA1PADS]), + .SLOW(slow_sel[`MPRJ_IO_PADS - 1:AREA1PADS]), + .HLD_OVR(holdover[`MPRJ_IO_PADS - 1:AREA1PADS]), + .ANALOG_EN(analog_en[`MPRJ_IO_PADS - 1:AREA1PADS]), + .ANALOG_SEL(analog_sel[`MPRJ_IO_PADS - 1:AREA1PADS]), + .ANALOG_POL(analog_pol[`MPRJ_IO_PADS - 1:AREA1PADS]), + .DM(dm[`MPRJ_IO_PADS*3 - 1:AREA1PADS*3]), + .PAD_A_NOESD_H(), + .PAD_A_ESD_0_H(), + .PAD_A_ESD_1_H(), + .IN(io_in[`MPRJ_IO_PADS - 1:AREA1PADS]), + .IN_H(), + .TIE_HI_ESD(), + .TIE_LO_ESD(loop1_io[`MPRJ_IO_PADS - 1:AREA1PADS]) ); endmodule
diff --git a/verilog/rtl/pads.v b/verilog/rtl/pads.v index 1c3a4bf..cba629e 100644 --- a/verilog/rtl/pads.v +++ b/verilog/rtl/pads.v
@@ -1,45 +1,45 @@ `ifndef TOP_ROUTING `define USER1_ABUTMENT_PINS \ - .amuxbus_a(analog_a),\ - .amuxbus_b(analog_b),\ - .vssa(vssa1),\ - .vdda(vdda1),\ - .vswitch(vddio),\ - .vddio_q(vddio_q),\ - .vcchib(vccd),\ - .vddio(vddio),\ - .vccd(vccd1),\ - .vssio(vssio),\ - .vssd(vssd1),\ - .vssio_q(vssio_q), + .AMUXBUS_A(analog_a),\ + .AMUXBUS_B(analog_b),\ + .VSSA(vssa1),\ + .VDDA(vdda1),\ + .VSWITCH(vddio),\ + .VDDIO_Q(vddio_q),\ + .VCCHIB(vccd),\ + .VDDIO(vddio),\ + .VCCD(vccd1),\ + .VSSIO(vssio),\ + .VSSD(vssd1),\ + .VSSIO_Q(vssio_q), `define USER2_ABUTMENT_PINS \ - .amuxbus_a(analog_a),\ - .amuxbus_b(analog_b),\ - .vssa(vssa2),\ - .vdda(vdda2),\ - .vswitch(vddio),\ - .vddio_q(vddio_q),\ - .vcchib(vccd),\ - .vddio(vddio),\ - .vccd(vccd2),\ - .vssio(vssio),\ - .vssd(vssd2),\ - .vssio_q(vssio_q), + .AMUXBUS_A(analog_a),\ + .AMUXBUS_B(analog_b),\ + .VSSA(vssa2),\ + .VDDA(vdda2),\ + .VSWITCH(vddio),\ + .VDDIO_Q(vddio_q),\ + .VCCHIB(vccd),\ + .VDDIO(vddio),\ + .VCCD(vccd2),\ + .VSSIO(vssio),\ + .VSSD(vssd2),\ + .VSSIO_Q(vssio_q), `define MGMT_ABUTMENT_PINS \ - .amuxbus_a(analog_a),\ - .amuxbus_b(analog_b),\ - .vssa(vssa),\ - .vdda(vdda),\ - .vswitch(vddio),\ - .vddio_q(vddio_q),\ - .vcchib(vccd),\ - .vddio(vddio),\ - .vccd(vccd),\ - .vssio(vssio),\ - .vssd(vssa),\ - .vssio_q(vssio_q), + .AMUXBUS_A(analog_a),\ + .AMUXBUS_B(analog_b),\ + .VSSA(vssa),\ + .VDDA(vdda),\ + .VSWITCH(vddio),\ + .VDDIO_Q(vddio_q),\ + .VCCHIB(vccd),\ + .VDDIO(vddio),\ + .VCCD(vccd),\ + .VSSIO(vssio),\ + .VSSD(vssa),\ + .VSSIO_Q(vssio_q), `else `define USER1_ABUTMENT_PINS `define USER2_ABUTMENT_PINS @@ -47,108 +47,108 @@ `endif `define HVCLAMP_PINS(H,L) \ - .drn_hvc(H), \ - .src_bdy_hvc(L) + .DRN_HVC(H), \ + .SRC_BDY_HVC(L) `define LVCLAMP_PINS(H1,L1,H2,L2,L3) \ - .bdy2_b2b(L3), \ - .drn_lvc1(H1), \ - .drn_lvc2(H2), \ - .src_bdy_lvc1(L1), \ - .src_bdy_lvc2(L2) + .BDY2_B2B(L3), \ + .DRN_LVC1(H1), \ + .DRN_LVC2(H2), \ + .SRC_BDY_LVC1(L1), \ + .SRC_BDY_LVC2(L2) `define INPUT_PAD(X,Y) \ wire loop_``X; \ - s8iom0_gpiov2_pad X``_pad ( \ + sky130_ef_io__gpiov2_pad X``_pad ( \ `MGMT_ABUTMENT_PINS \ `ifndef TOP_ROUTING \ - .pad(X), \ + .PAD(X), \ `endif \ - .out(vssa), \ - .oe_n(vccd), \ - .hld_h_n(vddio), \ - .enable_h(porb_h), \ - .enable_inp_h(loop_``X), \ - .enable_vdda_h(porb_h), \ - .enable_vswitch_h(vssa), \ - .enable_vddio(vccd), \ - .inp_dis(por), \ - .ib_mode_sel(vssa), \ - .vtrip_sel(vssa), \ - .slow(vssa), \ - .hld_ovr(vssa), \ - .analog_en(vssa), \ - .analog_sel(vssa), \ - .analog_pol(vssa), \ - .dm({vssa, vssa, vccd}), \ - .pad_a_noesd_h(), \ - .pad_a_esd_0_h(), \ - .pad_a_esd_1_h(), \ - .in(Y), \ - .in_h(), \ - .tie_hi_esd(), \ - .tie_lo_esd(loop_``X) ) + .OUT(vssa), \ + .OE_N(vccd), \ + .HLD_H_N(vddio), \ + .ENABLE_H(porb_h), \ + .ENABLE_INP_H(loop_``X), \ + .ENABLE_VDDA_H(porb_h), \ + .ENABLE_VSWITCH_H(vssa), \ + .ENABLE_VDDIO(vccd), \ + .INP_DIS(por), \ + .IB_MODE_SEL(vssa), \ + .VTRIP_SEL(vssa), \ + .SLOW(vssa), \ + .HLD_OVR(vssa), \ + .ANALOG_EN(vssa), \ + .ANALOG_SEL(vssa), \ + .ANALOG_POL(vssa), \ + .DM({vssa, vssa, vccd}), \ + .PAD_A_NOESD_H(), \ + .PAD_A_ESD_0_H(), \ + .PAD_A_ESD_1_H(), \ + .IN(Y), \ + .IN_H(), \ + .TIE_HI_ESD(), \ + .TIE_LO_ESD(loop_``X) ) `define OUTPUT_PAD(X,Y,INP_DIS,OUT_EN_N) \ wire loop_``X; \ - s8iom0_gpiov2_pad X``_pad ( \ + sky130_ef_io__gpiov2_pad X``_pad ( \ `MGMT_ABUTMENT_PINS \ `ifndef TOP_ROUTING \ - .pad(X), \ + .PAD(X), \ `endif \ - .out(Y), \ - .oe_n(OUT_EN_N), \ - .hld_h_n(vddio), \ - .enable_h(porb_h), \ - .enable_inp_h(loop_``X), \ - .enable_vdda_h(porb_h), \ - .enable_vswitch_h(vssa), \ - .enable_vddio(vccd), \ - .inp_dis(INP_DIS), \ - .ib_mode_sel(vssa), \ - .vtrip_sel(vssa), \ - .slow(vssa), \ - .hld_ovr(vssa), \ - .analog_en(vssa), \ - .analog_sel(vssa), \ - .analog_pol(vssa), \ - .dm({vccd, vccd, vssa}), \ - .pad_a_noesd_h(), \ - .pad_a_esd_0_h(), \ - .pad_a_esd_1_h(), \ - .in(), \ - .in_h(), \ - .tie_hi_esd(), \ - .tie_lo_esd(loop_``X)) + .OUT(Y), \ + .OE_N(OUT_EN_N), \ + .HLD_H_N(vddio), \ + .ENABLE_H(porb_h), \ + .ENABLE_INP_H(loop_``X), \ + .ENABLE_VDDA_H(porb_h), \ + .ENABLE_VSWITCH_H(vssa), \ + .ENABLE_VDDIO(vccd), \ + .INP_DIS(INP_DIS), \ + .IB_MODE_SEL(vssa), \ + .VTRIP_SEL(vssa), \ + .SLOW(vssa), \ + .HLD_OVR(vssa), \ + .ANALOG_EN(vssa), \ + .ANALOG_SEL(vssa), \ + .ANALOG_POL(vssa), \ + .DM({vccd, vccd, vssa}), \ + .PAD_A_NOESD_H(), \ + .PAD_A_ESD_0_H(), \ + .PAD_A_ESD_1_H(), \ + .IN(), \ + .IN_H(), \ + .TIE_HI_ESD(), \ + .TIE_LO_ESD(loop_``X)) `define INOUT_PAD(X,Y,Y_OUT,INP_DIS,OUT_EN_N,MODE) \ - s8iom0_gpiov2_pad X``_pad ( \ + sky130_ef_io__gpiov2_pad X``_pad ( \ `MGMT_ABUTMENT_PINS \ `ifndef TOP_ROUTING \ - .pad(X),\ + .PAD(X),\ `endif \ - .out(Y_OUT), \ - .oe_n(OUT_EN_N), \ - .hld_h_n(vddio), \ - .enable_h(porb_h), \ - .enable_inp_h(loop_``X), \ - .enable_vdda_h(porb_h), \ - .enable_vswitch_h(vssa), \ - .enable_vddio(vccd), \ - .inp_dis(INP_DIS), \ - .ib_mode_sel(vssa), \ - .vtrip_sel(vssa), \ - .slow(vssa), \ - .hld_ovr(vssa), \ - .analog_en(vssa), \ - .analog_sel(vssa), \ - .analog_pol(vssa), \ - .dm(MODE), \ - .pad_a_noesd_h(), \ - .pad_a_esd_0_h(), \ - .pad_a_esd_1_h(), \ - .in(Y), \ - .in_h(), \ - .tie_hi_esd(), \ - .tie_lo_esd(loop_``X) ) + .OUT(Y_OUT), \ + .OE_N(OUT_EN_N), \ + .HLD_H_N(vddio), \ + .ENABLE_H(porb_h), \ + .ENABLE_INP_H(loop_``X), \ + .ENABLE_VDDA_H(porb_h), \ + .ENABLE_VSWITCH_H(vssa), \ + .ENABLE_VDDIO(vccd), \ + .INP_DIS(INP_DIS), \ + .IB_MODE_SEL(vssa), \ + .VTRIP_SEL(vssa), \ + .SLOW(vssa), \ + .HLD_OVR(vssa), \ + .ANALOG_EN(vssa), \ + .ANALOG_SEL(vssa), \ + .ANALOG_POL(vssa), \ + .DM(MODE), \ + .PAD_A_NOESD_H(), \ + .PAD_A_ESD_0_H(), \ + .PAD_A_ESD_1_H(), \ + .IN(Y), \ + .IN_H(), \ + .TIE_HI_ESD(), \ + .TIE_LO_ESD(loop_``X) )
diff --git a/verilog/rtl/user_id_programming.v b/verilog/rtl/user_id_programming.v index 4e80555..30f5eb8 100644 --- a/verilog/rtl/user_id_programming.v +++ b/verilog/rtl/user_id_programming.v
@@ -16,10 +16,10 @@ sky130_fd_sc_hd__conb_1 mask_rev_value [31:0] ( `ifdef LVS - .vpwr(vdd1v8), - .vpb(vdd1v8), - .vnb(vss), - .vgnd(vss), + .VPWR(vdd1v8), + .VPB(vdd1v8), + .VNB(vss), + .VGND(vss), `endif .HI(user_proj_id_high), .LO(user_proj_id_low)