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)