Two more changes: (1) Correction to chip_io_alt.v RTL verilog to

match what was done earlier on chip_io.v, and (2) Corrected a
set of four labels in chip_io_alt.mag which had been rotated,
causing an error in LVS.
This commit is contained in:
Tim Edwards 2021-12-07 17:16:44 -05:00
parent 624317bc3f
commit 489bddcf98
2 changed files with 1217 additions and 1259 deletions

File diff suppressed because it is too large Load Diff

View File

@ -159,73 +159,58 @@ module chip_io_alt #(
sky130_ef_io__vddio_hvc_clamped_pad \mgmt_vddio_hvclamp_pad[0] ( sky130_ef_io__vddio_hvc_clamped_pad \mgmt_vddio_hvclamp_pad[0] (
`MGMT_ABUTMENT_PINS `MGMT_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VDDIO(vddio) .VDDIO_PAD(vddio_pad)
`else
,.VDDIO_PAD(vddio_pad)
`endif `endif
); );
// lies in user area 2 // lies in user area 2
sky130_ef_io__vddio_hvc_clamped_pad \mgmt_vddio_hvclamp_pad[1] ( sky130_ef_io__vddio_hvc_clamped_pad \mgmt_vddio_hvclamp_pad[1] (
`USER2_ABUTMENT_PINS `USER2_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VDDIO(vddio) .VDDIO_PAD(vddio_pad2)
`else
,.VDDIO_PAD(vddio_pad2)
`endif `endif
); );
sky130_ef_io__vdda_hvc_clamped_pad mgmt_vdda_hvclamp_pad ( sky130_ef_io__vdda_hvc_clamped_pad mgmt_vdda_hvclamp_pad (
`MGMT_ABUTMENT_PINS `MGMT_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VDDA(vdda) .VDDA_PAD(vdda_pad)
`else `endif
,.VDDA_PAD(vdda_pad) );
`endif );
sky130_ef_io__vccd_lvc_clamped_pad mgmt_vccd_lvclamp_pad ( sky130_ef_io__vccd_lvc_clamped_pad mgmt_vccd_lvclamp_pad (
`MGMT_ABUTMENT_PINS `MGMT_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VCCD(vccd) .VCCD_PAD(vccd_pad)
`else
,.VCCD_PAD(vccd_pad)
`endif `endif
); );
sky130_ef_io__vssio_hvc_clamped_pad \mgmt_vssio_hvclamp_pad[0] ( sky130_ef_io__vssio_hvc_clamped_pad \mgmt_vssio_hvclamp_pad[0] (
`MGMT_ABUTMENT_PINS `MGMT_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VSSIO(vssio) .VSSIO_PAD(vssio_pad)
`else
,.VSSIO_PAD(vssio_pad)
`endif `endif
); );
sky130_ef_io__vssio_hvc_clamped_pad \mgmt_vssio_hvclamp_pad[1] ( sky130_ef_io__vssio_hvc_clamped_pad \mgmt_vssio_hvclamp_pad[1] (
`USER2_ABUTMENT_PINS `USER2_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VSSIO(vssio) .VSSIO_PAD(vssio_pad2)
`else
,.VSSIO_PAD(vssio_pad2)
`endif `endif
); );
sky130_ef_io__vssa_hvc_clamped_pad mgmt_vssa_hvclamp_pad ( sky130_ef_io__vssa_hvc_clamped_pad mgmt_vssa_hvclamp_pad (
`MGMT_ABUTMENT_PINS `MGMT_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VSSA(vssa) .VSSA_PAD(vssa_pad)
`else
,.VSSA_PAD(vssa_pad)
`endif `endif
); );
sky130_ef_io__vssd_lvc_clamped_pad mgmt_vssd_lvclamp_pad ( sky130_ef_io__vssd_lvc_clamped_pad mgmt_vssd_lvclamp_pad (
`MGMT_ABUTMENT_PINS `MGMT_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VSSD(vssd) .VSSD_PAD(vssd_pad)
`else
,.VSSD_PAD(vssd_pad)
`endif `endif
); );
@ -234,57 +219,47 @@ module chip_io_alt #(
sky130_ef_io__vdda_hvc_clamped_pad \user1_vdda_hvclamp_pad[0] ( sky130_ef_io__vdda_hvc_clamped_pad \user1_vdda_hvclamp_pad[0] (
`USER1_ABUTMENT_PINS `USER1_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VDDA(vdda1) .VDDA_PAD(vdda1_pad)
`else
,.VDDA_PAD(vdda1_pad)
`endif `endif
); );
sky130_ef_io__vdda_hvc_clamped_pad \user1_vdda_hvclamp_pad[1] ( sky130_ef_io__vdda_hvc_clamped_pad \user1_vdda_hvclamp_pad[1] (
`USER1_ABUTMENT_PINS `USER1_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VDDA(vdda1) .VDDA_PAD(vdda1_pad2)
`else
,.VDDA_PAD(vdda1_pad2)
`endif `endif
); );
sky130_ef_io__vccd_lvc_clamped3_pad user1_vccd_lvclamp_pad ( sky130_ef_io__vccd_lvc_clamped3_pad user1_vccd_lvclamp_pad (
`USER1_ABUTMENT_PINS `USER1_ABUTMENT_PINS
`ifdef TOP_ROUTING
.VCCD1(vccd1), .VCCD1(vccd1),
.VSSD1(vssd1) .VSSD1(vssd1),
`else `ifndef TOP_ROUTING
,.VCCD_PAD(vccd1_pad) .VCCD_PAD(vccd1_pad)
`endif `endif
); );
sky130_ef_io__vssa_hvc_clamped_pad \user1_vssa_hvclamp_pad[0] ( sky130_ef_io__vssa_hvc_clamped_pad \user1_vssa_hvclamp_pad[0] (
`USER1_ABUTMENT_PINS `USER1_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VSSA(vssa1) .VSSA_PAD(vssa1_pad)
`else
,.VSSA_PAD(vssa1_pad)
`endif `endif
); );
sky130_ef_io__vssa_hvc_clamped_pad \user1_vssa_hvclamp_pad[1] ( sky130_ef_io__vssa_hvc_clamped_pad \user1_vssa_hvclamp_pad[1] (
`USER1_ABUTMENT_PINS `USER1_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VSSA(vssa1) .VSSA_PAD(vssa1_pad2)
`else
,.VSSA_PAD(vssa1_pad2)
`endif `endif
); );
sky130_ef_io__vssd_lvc_clamped3_pad user1_vssd_lvclamp_pad ( sky130_ef_io__vssd_lvc_clamped3_pad user1_vssd_lvclamp_pad (
`USER1_ABUTMENT_PINS `USER1_ABUTMENT_PINS
`ifdef TOP_ROUTING
.VCCD1(vccd1), .VCCD1(vccd1),
.VSSD1(vssd1) .VSSD1(vssd1),
`else `ifndef TOP_ROUTING
,.VSSD_PAD(vssd1_pad) .VSSD_PAD(vssd1_pad)
`endif `endif
); );
@ -293,39 +268,33 @@ module chip_io_alt #(
sky130_ef_io__vdda_hvc_clamped_pad user2_vdda_hvclamp_pad ( sky130_ef_io__vdda_hvc_clamped_pad user2_vdda_hvclamp_pad (
`USER2_ABUTMENT_PINS `USER2_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VDDA(vdda2) .VDDA_PAD(vdda2_pad)
`else
,.VDDA_PAD(vdda2_pad)
`endif `endif
); );
sky130_ef_io__vccd_lvc_clamped3_pad user2_vccd_lvclamp_pad ( sky130_ef_io__vccd_lvc_clamped3_pad user2_vccd_lvclamp_pad (
`USER2_ABUTMENT_PINS `USER2_ABUTMENT_PINS
`ifdef TOP_ROUTING
.VCCD1(vccd2), .VCCD1(vccd2),
.VSSD1(vssd2) .VSSD1(vssd2),
`else `ifndef TOP_ROUTING
,.VCCD_PAD(vccd2_pad) .VCCD_PAD(vccd2_pad)
`endif `endif
); );
sky130_ef_io__vssa_hvc_clamped_pad user2_vssa_hvclamp_pad ( sky130_ef_io__vssa_hvc_clamped_pad user2_vssa_hvclamp_pad (
`USER2_ABUTMENT_PINS `USER2_ABUTMENT_PINS
`ifdef TOP_ROUTING `ifndef TOP_ROUTING
.VSSA(vssa2) .VSSA_PAD(vssa2_pad)
`else
,.VSSA_PAD(vssa2_pad)
`endif `endif
); );
sky130_ef_io__vssd_lvc_clamped3_pad user2_vssd_lvclamp_pad ( sky130_ef_io__vssd_lvc_clamped3_pad user2_vssd_lvclamp_pad (
`USER2_ABUTMENT_PINS `USER2_ABUTMENT_PINS
`ifdef TOP_ROUTING
.VCCD1(vccd2), .VCCD1(vccd2),
.VSSD1(vssd2) .VSSD1(vssd2),
`else `ifndef TOP_ROUTING
,.VSSD_PAD(vssd2_pad) .VSSD_PAD(vssd2_pad)
`endif `endif
); );
@ -333,8 +302,7 @@ module chip_io_alt #(
sky130_ef_io__analog_pad user1_analog_pad [ANALOG_PADS_1-2:0] ( sky130_ef_io__analog_pad user1_analog_pad [ANALOG_PADS_1-2:0] (
`USER1_ABUTMENT_PINS `USER1_ABUTMENT_PINS
`ifndef TOP_ROUTING `ifndef TOP_ROUTING
// .VDDIO(vddio) .P_PAD(mprj_io[`MPRJ_IO_PADS_1-2:`MPRJ_IO_PADS_1-ANALOG_PADS_1]),
,.P_PAD(mprj_io[`MPRJ_IO_PADS_1-2:`MPRJ_IO_PADS_1-ANALOG_PADS_1]),
`endif `endif
.P_CORE(mprj_analog[ANALOG_PADS_1-2:0]) .P_CORE(mprj_analog[ANALOG_PADS_1-2:0])
); );
@ -343,8 +311,7 @@ module chip_io_alt #(
sky130_ef_io__top_power_hvc user1_analog_pad_with_clamp ( sky130_ef_io__top_power_hvc user1_analog_pad_with_clamp (
`USER1_ABUTMENT_PINS `USER1_ABUTMENT_PINS
`ifndef TOP_ROUTING `ifndef TOP_ROUTING
// .VDDIO(vddio) .P_PAD(mprj_io[`MPRJ_IO_PADS_1-1]),
,.P_PAD(mprj_io[`MPRJ_IO_PADS_1-1]),
`endif `endif
`HVCLAMP_PINS(mprj_clamp_high[0], `HVCLAMP_PINS(mprj_clamp_high[0],
mprj_clamp_low[0]), mprj_clamp_low[0]),
@ -355,18 +322,15 @@ module chip_io_alt #(
sky130_ef_io__analog_pad user2_analog_pad [ANALOG_PADS_2-3:0] ( sky130_ef_io__analog_pad user2_analog_pad [ANALOG_PADS_2-3:0] (
`USER2_ABUTMENT_PINS `USER2_ABUTMENT_PINS
`ifndef TOP_ROUTING `ifndef TOP_ROUTING
// .VDDIO(vddio) .P_PAD(mprj_io[`MPRJ_IO_PADS_1+ANALOG_PADS_2-1:`MPRJ_IO_PADS_1+2]),
,.P_PAD(mprj_io[`MPRJ_IO_PADS_1+ANALOG_PADS_2-1:`MPRJ_IO_PADS_1+2]),
`endif `endif
.P_CORE(mprj_analog[ANALOG_PADS_2+ANALOG_PADS_1-1:ANALOG_PADS_1+2]) .P_CORE(mprj_analog[ANALOG_PADS_2+ANALOG_PADS_1-1:ANALOG_PADS_1+2])
); );
// Last two analog pads are power pads, to provide clamp resources. // Last two analog pads are power pads, to provide clamp resources.
sky130_ef_io__top_power_hvc user2_analog_pad_with_clamp [1:0] ( sky130_ef_io__top_power_hvc user2_analog_pad_with_clamp [1:0] (
`USER2_ABUTMENT_PINS
`ifndef TOP_ROUTING `ifndef TOP_ROUTING
// .VDDIO(vddio) .P_PAD(mprj_io[`MPRJ_IO_PADS_1+1:`MPRJ_IO_PADS_1]),
,.P_PAD(mprj_io[`MPRJ_IO_PADS_1+1:`MPRJ_IO_PADS_1]),
`endif `endif
`HVCLAMP_PINS(mprj_clamp_high[2:1], mprj_clamp_low[2:1]), `HVCLAMP_PINS(mprj_clamp_high[2:1], mprj_clamp_low[2:1]),
.P_CORE(mprj_analog[`ANALOG_PADS_1+1:ANALOG_PADS_1]) .P_CORE(mprj_analog[`ANALOG_PADS_1+1:ANALOG_PADS_1])
@ -407,7 +371,7 @@ module chip_io_alt #(
sky130_fd_io__top_xres4v2 resetb_pad ( sky130_fd_io__top_xres4v2 resetb_pad (
`MGMT_ABUTMENT_PINS `MGMT_ABUTMENT_PINS
`ifndef TOP_ROUTING `ifndef TOP_ROUTING
,.PAD(resetb), .PAD(resetb),
`endif `endif
.TIE_WEAK_HI_H(xresloop), // Loop-back connection to pad through pad_a_esd_h .TIE_WEAK_HI_H(xresloop), // Loop-back connection to pad through pad_a_esd_h
.TIE_HI_ESD(), .TIE_HI_ESD(),
@ -440,11 +404,9 @@ module chip_io_alt #(
.VDDA(vdda), .VDDA(vdda),
.VCCD(vccd), .VCCD(vccd),
.VCCHIB(vccd) .VCCHIB(vccd)
`else
.VCCHIB()
`endif `endif
); );
sky130_ef_io__corner_pad user1_corner ( sky130_ef_io__corner_pad user1_corner (
`ifndef TOP_ROUTING `ifndef TOP_ROUTING
.VSSIO(vssio), .VSSIO(vssio),
@ -459,8 +421,6 @@ module chip_io_alt #(
.VDDA(vdda1), .VDDA(vdda1),
.VCCD(vccd), .VCCD(vccd),
.VCCHIB(vccd) .VCCHIB(vccd)
`else
.VCCHIB()
`endif `endif
); );
sky130_ef_io__corner_pad user2_corner ( sky130_ef_io__corner_pad user2_corner (
@ -477,8 +437,6 @@ module chip_io_alt #(
.VDDA(vdda2), .VDDA(vdda2),
.VCCD(vccd), .VCCD(vccd),
.VCCHIB(vccd) .VCCHIB(vccd)
`else
.VCCHIB()
`endif `endif
); );