blob: 59d3b6f28ea32ca927bfdc29dea246a9d5e664b7 [file] [log] [blame]
/*
###############################################################
# Generated by: Cadence Innovus 20.10-p004_1
# OS: Linux x86_64(Host ID merl-HP-Z840)
# Generated on: Wed Jun 1 19:18:07 2022
# Design: azadi_soc_top_caravel
# Command: write_netlist azadi_soc_top_caravel.v -include_pg_ports -exclude_leaf_cells -top_module_first
###############################################################
*/
module azadi_soc_top_caravel (
wb_clk_i,
wb_rst_i,
wbs_stb_i,
wbs_cyc_i,
wbs_we_i,
wbs_sel_i,
wbs_dat_i,
wbs_adr_i,
wbs_ack_o,
wbs_dat_o,
la_data_in,
la_data_out,
la_oenb,
io_in,
io_out,
io_oeb,
analog_io,
user_clock2,
user_irq,
vssd1,
vccd1);
input wb_clk_i;
input wb_rst_i;
input wbs_stb_i;
input wbs_cyc_i;
input wbs_we_i;
input [3:0] wbs_sel_i;
input [31:0] wbs_dat_i;
input [31:0] wbs_adr_i;
output wbs_ack_o;
output [31:0] wbs_dat_o;
input [127:0] la_data_in;
output [127:0] la_data_out;
input [127:0] la_oenb;
input [37:0] io_in;
output [37:0] io_out;
output [37:0] io_oeb;
inout [28:0] analog_io;
input user_clock2;
output [2:0] user_irq;
inout vssd1;
inout vccd1;
// Internal wires
wire FE_RN_171;
wire FE_OFN7_io_oeb_33;
wire FE_OFN6_io_oeb_33;
wire FE_OFN5_io_oeb_34;
wire FE_OFN4_io_oeb_34;
wire FE_OFN3_io_oeb_35;
wire FE_OFN2_io_oeb_35;
wire FE_OFN1_io_oeb_36;
wire FE_OFN0_io_oeb_36;
wire [13:0] gpio_oe;
wire [3:0] qsd_oe;
wire n_0;
wire pwm1_oe;
wire pwm2_oe;
wire sd_oe;
assign io_oeb[0] = FE_RN_171 ;
assign io_oeb[2] = io_oeb[13] ;
assign io_oeb[3] = FE_RN_171 ;
assign io_oeb[4] = FE_RN_171 ;
assign io_oeb[5] = io_oeb[13] ;
assign io_oeb[6] = FE_RN_171 ;
assign io_oeb[7] = io_oeb[13] ;
assign io_oeb[10] = io_oeb[13] ;
assign io_oeb[11] = io_oeb[13] ;
assign io_oeb[12] = io_oeb[13] ;
assign io_oeb[14] = FE_RN_171 ;
assign io_oeb[15] = FE_RN_171 ;
assign io_out[5] = io_out[2] ;
assign io_out[7] = io_out[2] ;
assign io_out[10] = io_out[2] ;
assign io_out[11] = io_out[2] ;
assign io_out[12] = io_out[2] ;
assign io_out[13] = io_out[2] ;
assign user_irq[1] = io_out[2] ;
assign user_irq[2] = io_out[2] ;
assign user_irq[0] = io_out[2] ;
assign la_data_out[127] = io_out[2] ;
assign la_data_out[126] = io_out[2] ;
assign la_data_out[125] = io_out[2] ;
assign la_data_out[124] = io_out[2] ;
assign la_data_out[123] = io_out[2] ;
assign la_data_out[122] = io_out[2] ;
assign la_data_out[121] = io_out[2] ;
assign la_data_out[120] = io_out[2] ;
assign la_data_out[119] = io_out[2] ;
assign la_data_out[118] = io_out[2] ;
assign la_data_out[117] = io_out[2] ;
assign la_data_out[116] = io_out[2] ;
assign la_data_out[115] = io_out[2] ;
assign la_data_out[114] = io_out[2] ;
assign la_data_out[113] = io_out[2] ;
assign la_data_out[112] = io_out[2] ;
assign la_data_out[111] = io_out[2] ;
assign la_data_out[110] = io_out[2] ;
assign la_data_out[109] = io_out[2] ;
assign la_data_out[108] = io_out[2] ;
assign la_data_out[107] = io_out[2] ;
assign la_data_out[106] = io_out[2] ;
assign la_data_out[105] = io_out[2] ;
assign la_data_out[104] = io_out[2] ;
assign la_data_out[103] = io_out[2] ;
assign la_data_out[102] = io_out[2] ;
assign la_data_out[101] = io_out[2] ;
assign la_data_out[100] = io_out[2] ;
assign la_data_out[99] = io_out[2] ;
assign la_data_out[98] = io_out[2] ;
assign la_data_out[97] = io_out[2] ;
assign la_data_out[96] = io_out[2] ;
assign la_data_out[95] = io_out[2] ;
assign la_data_out[94] = io_out[2] ;
assign la_data_out[93] = io_out[2] ;
assign la_data_out[92] = io_out[2] ;
assign la_data_out[91] = io_out[2] ;
assign la_data_out[90] = io_out[2] ;
assign la_data_out[89] = io_out[2] ;
assign la_data_out[88] = io_out[2] ;
assign la_data_out[87] = io_out[2] ;
assign la_data_out[86] = io_out[2] ;
assign la_data_out[85] = io_out[2] ;
assign la_data_out[84] = io_out[2] ;
assign la_data_out[83] = io_out[2] ;
assign la_data_out[82] = io_out[2] ;
assign la_data_out[81] = io_out[2] ;
assign la_data_out[80] = io_out[2] ;
assign la_data_out[79] = io_out[2] ;
assign la_data_out[78] = io_out[2] ;
assign la_data_out[77] = io_out[2] ;
assign la_data_out[76] = io_out[2] ;
assign la_data_out[75] = io_out[2] ;
assign la_data_out[74] = io_out[2] ;
assign la_data_out[73] = io_out[2] ;
assign la_data_out[72] = io_out[2] ;
assign la_data_out[71] = io_out[2] ;
assign la_data_out[70] = io_out[2] ;
assign la_data_out[69] = io_out[2] ;
assign la_data_out[68] = io_out[2] ;
assign la_data_out[67] = io_out[2] ;
assign la_data_out[66] = io_out[2] ;
assign la_data_out[65] = io_out[2] ;
assign la_data_out[64] = io_out[2] ;
assign la_data_out[62] = la_data_out[63] ;
assign la_data_out[61] = la_data_out[63] ;
assign la_data_out[60] = la_data_out[63] ;
assign la_data_out[59] = la_data_out[63] ;
assign la_data_out[58] = la_data_out[63] ;
assign la_data_out[57] = la_data_out[63] ;
assign la_data_out[56] = la_data_out[63] ;
assign la_data_out[55] = la_data_out[63] ;
assign la_data_out[54] = la_data_out[63] ;
assign la_data_out[53] = la_data_out[63] ;
assign la_data_out[52] = la_data_out[63] ;
assign la_data_out[51] = la_data_out[63] ;
assign la_data_out[50] = la_data_out[63] ;
assign la_data_out[49] = la_data_out[63] ;
assign la_data_out[48] = la_data_out[63] ;
assign la_data_out[47] = la_data_out[63] ;
assign la_data_out[46] = la_data_out[63] ;
assign la_data_out[45] = la_data_out[63] ;
assign la_data_out[44] = la_data_out[63] ;
assign la_data_out[43] = la_data_out[63] ;
assign la_data_out[42] = la_data_out[63] ;
assign la_data_out[41] = la_data_out[63] ;
assign la_data_out[40] = la_data_out[63] ;
assign la_data_out[39] = la_data_out[63] ;
assign la_data_out[38] = la_data_out[63] ;
assign la_data_out[37] = la_data_out[63] ;
assign la_data_out[36] = la_data_out[63] ;
assign la_data_out[35] = la_data_out[63] ;
assign la_data_out[34] = la_data_out[63] ;
assign la_data_out[33] = la_data_out[63] ;
assign la_data_out[32] = la_data_out[63] ;
assign la_data_out[31] = la_data_out[63] ;
assign la_data_out[30] = la_data_out[63] ;
assign la_data_out[29] = la_data_out[63] ;
assign la_data_out[28] = la_data_out[63] ;
assign la_data_out[27] = la_data_out[63] ;
assign la_data_out[26] = la_data_out[63] ;
assign la_data_out[25] = la_data_out[63] ;
assign la_data_out[24] = la_data_out[63] ;
assign la_data_out[23] = la_data_out[63] ;
assign la_data_out[22] = la_data_out[63] ;
assign la_data_out[21] = la_data_out[63] ;
assign la_data_out[20] = la_data_out[63] ;
assign la_data_out[19] = la_data_out[63] ;
assign la_data_out[18] = la_data_out[63] ;
assign la_data_out[17] = la_data_out[63] ;
assign la_data_out[16] = la_data_out[63] ;
assign la_data_out[15] = la_data_out[63] ;
assign la_data_out[14] = la_data_out[63] ;
assign la_data_out[13] = la_data_out[63] ;
assign la_data_out[12] = la_data_out[63] ;
assign la_data_out[11] = la_data_out[63] ;
assign la_data_out[10] = la_data_out[63] ;
assign la_data_out[9] = la_data_out[63] ;
assign la_data_out[8] = la_data_out[63] ;
assign la_data_out[7] = la_data_out[63] ;
assign la_data_out[6] = la_data_out[63] ;
assign la_data_out[5] = la_data_out[63] ;
assign la_data_out[4] = la_data_out[63] ;
assign la_data_out[3] = la_data_out[63] ;
assign la_data_out[2] = la_data_out[63] ;
assign la_data_out[1] = la_data_out[63] ;
assign la_data_out[0] = la_data_out[63] ;
assign wbs_dat_o[31] = la_data_out[63] ;
assign wbs_dat_o[30] = la_data_out[63] ;
assign wbs_dat_o[29] = la_data_out[63] ;
assign wbs_dat_o[28] = la_data_out[63] ;
assign wbs_dat_o[27] = la_data_out[63] ;
assign wbs_dat_o[26] = la_data_out[63] ;
assign wbs_dat_o[25] = la_data_out[63] ;
assign wbs_dat_o[24] = la_data_out[63] ;
assign wbs_dat_o[23] = la_data_out[63] ;
assign wbs_dat_o[22] = la_data_out[63] ;
assign wbs_dat_o[20] = wbs_dat_o[21] ;
assign wbs_dat_o[19] = wbs_dat_o[21] ;
assign wbs_dat_o[18] = wbs_dat_o[21] ;
assign wbs_dat_o[17] = wbs_dat_o[21] ;
assign wbs_dat_o[16] = wbs_dat_o[21] ;
assign wbs_dat_o[15] = wbs_dat_o[21] ;
assign wbs_dat_o[14] = wbs_dat_o[21] ;
assign wbs_dat_o[13] = wbs_dat_o[21] ;
assign wbs_dat_o[12] = wbs_dat_o[21] ;
assign wbs_dat_o[11] = wbs_dat_o[21] ;
assign wbs_dat_o[10] = wbs_dat_o[21] ;
assign wbs_dat_o[9] = wbs_dat_o[21] ;
assign wbs_dat_o[8] = wbs_dat_o[21] ;
assign wbs_dat_o[7] = wbs_dat_o[21] ;
assign wbs_dat_o[6] = wbs_dat_o[21] ;
assign wbs_dat_o[5] = wbs_dat_o[21] ;
assign wbs_dat_o[4] = wbs_dat_o[21] ;
assign wbs_dat_o[3] = wbs_dat_o[21] ;
assign wbs_dat_o[2] = wbs_dat_o[21] ;
assign wbs_dat_o[1] = wbs_dat_o[21] ;
assign wbs_dat_o[0] = wbs_dat_o[21] ;
assign wbs_ack_o = wbs_dat_o[21] ;
assign io_oeb[37] = wbs_dat_o[21] ;
assign io_oeb[30] = wbs_dat_o[21] ;
assign io_oeb[31] = wbs_dat_o[21] ;
assign io_oeb[32] = wbs_dat_o[21] ;
assign io_out[37] = wbs_dat_o[21] ;
// Module instantiations
sky130_fd_sc_hd__buf_4 FE_OFC10_io_oeb_0 (
.A(la_data_out[63]),
.X(wbs_dat_o[21]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__clkbuf_2 FE_OFC9_io_oeb_0 (
.A(io_out[2]),
.X(la_data_out[63]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__clkbuf_4 FE_OFC8_io_oeb_0 (
.A(io_oeb[0]),
.X(io_out[2]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_2 FE_OFC7_io_oeb_33 (
.A(FE_OFN7_io_oeb_33),
.Y(io_oeb[33]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_2 FE_OFC6_io_oeb_33 (
.A(FE_OFN6_io_oeb_33),
.Y(FE_OFN7_io_oeb_33),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_4 FE_OFC5_io_oeb_34 (
.A(FE_OFN5_io_oeb_34),
.Y(io_oeb[34]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_2 FE_OFC4_io_oeb_34 (
.A(FE_OFN4_io_oeb_34),
.Y(FE_OFN5_io_oeb_34),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_4 FE_OFC3_io_oeb_35 (
.A(FE_OFN3_io_oeb_35),
.Y(io_oeb[35]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_2 FE_OFC2_io_oeb_35 (
.A(FE_OFN2_io_oeb_35),
.Y(FE_OFN3_io_oeb_35),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_2 FE_OFC1_io_oeb_36 (
.A(FE_OFN1_io_oeb_36),
.Y(io_oeb[36]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_2 FE_OFC0_io_oeb_36 (
.A(FE_OFN0_io_oeb_36),
.Y(FE_OFN1_io_oeb_36),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
azadi_soc_top soc_top (
.uart_tx(io_out[6]),
.uart_rx(io_in[5]),
.ss_o({ io_out[4],
io_out[3] }),
.sd_oe(sd_oe),
.sd_o(io_out[1]),
.sd_i(io_in[2]),
.sclk_o(io_out[0]),
.rst_ni(n_0),
.qsd_oe(qsd_oe),
.qsd_o({ io_out[36],
io_out[35],
io_out[34],
io_out[33] }),
.qsd_i({ io_in[36],
io_in[35],
io_in[34],
io_in[33] }),
.qsclk_o(io_out[32]),
.qcs_o(io_out[31]),
.pwm_o_2(io_out[9]),
.pwm_o(io_out[8]),
.pwm2_oe(pwm2_oe),
.pwm1_oe(pwm1_oe),
.prog(io_in[7]),
.gpio_oe({ FE_UNCONNECTEDZ_0,
FE_UNCONNECTEDZ_1,
FE_UNCONNECTEDZ_2,
FE_UNCONNECTEDZ_3,
FE_UNCONNECTEDZ_4,
FE_UNCONNECTEDZ_5,
gpio_oe }),
.gpio_o({ FE_UNCONNECTEDZ_6,
FE_UNCONNECTEDZ_7,
FE_UNCONNECTEDZ_8,
FE_UNCONNECTEDZ_9,
FE_UNCONNECTEDZ_10,
FE_UNCONNECTEDZ_11,
io_out[29],
io_out[28],
io_out[27],
io_out[26],
io_out[25],
io_out[24],
io_out[23],
io_out[22],
io_out[21],
io_out[20],
io_out[19],
io_out[18],
io_out[17],
io_out[16] }),
.gpio_i({ FE_UNCONNECTEDZ_12,
FE_UNCONNECTEDZ_13,
FE_UNCONNECTEDZ_14,
FE_UNCONNECTEDZ_15,
FE_UNCONNECTEDZ_16,
FE_UNCONNECTEDZ_17,
io_in[29],
io_in[28],
io_in[27],
io_in[26],
io_in[25],
io_in[24],
io_in[23],
io_in[22],
io_in[21],
io_in[20],
io_in[19],
io_in[18],
io_in[17],
io_in[16] }),
.clks_per_bit({ la_data_in[15],
la_data_in[14],
la_data_in[13],
la_data_in[12],
la_data_in[11],
la_data_in[10],
la_data_in[9],
la_data_in[8],
la_data_in[7],
la_data_in[6],
la_data_in[5],
la_data_in[4],
la_data_in[3],
la_data_in[2],
la_data_in[1],
la_data_in[0] }),
.clk_i(wb_clk_i),
.boot_led(io_out[30]),
.TM(io_in[11]),
.SO1(io_out[15]),
.SO0(io_out[14]),
.SI1(io_in[13]),
.SI0(io_in[12]),
.SE(io_in[10]),
.vssd1(vssd1),
.vccd1(vccd1));
sky130_fd_sc_hd__inv_1 g232 (
.A(gpio_oe[10]),
.Y(io_oeb[26]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g233 (
.A(gpio_oe[11]),
.Y(io_oeb[27]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g234 (
.A(gpio_oe[12]),
.Y(io_oeb[28]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g235 (
.A(gpio_oe[13]),
.Y(io_oeb[29]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_2 g236 (
.A(qsd_oe[0]),
.Y(FE_OFN6_io_oeb_33),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_2 g237 (
.A(qsd_oe[1]),
.Y(FE_OFN4_io_oeb_34),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g238 (
.A(qsd_oe[2]),
.Y(FE_OFN2_io_oeb_35),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_2 g239 (
.A(qsd_oe[3]),
.Y(FE_OFN0_io_oeb_36),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g240 (
.A(gpio_oe[0]),
.Y(io_oeb[16]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g241 (
.A(gpio_oe[3]),
.Y(io_oeb[19]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g242 (
.A(pwm2_oe),
.Y(io_oeb[9]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g243 (
.A(sd_oe),
.Y(io_oeb[1]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g244 (
.A(pwm1_oe),
.Y(io_oeb[8]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g245 (
.A(gpio_oe[1]),
.Y(io_oeb[17]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g246 (
.A(gpio_oe[2]),
.Y(io_oeb[18]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g247 (
.A(gpio_oe[4]),
.Y(io_oeb[20]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g248 (
.A(gpio_oe[5]),
.Y(io_oeb[21]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g249 (
.A(gpio_oe[6]),
.Y(io_oeb[22]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g250 (
.A(gpio_oe[7]),
.Y(io_oeb[23]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g251 (
.A(gpio_oe[8]),
.Y(io_oeb[24]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 g252 (
.A(gpio_oe[9]),
.Y(io_oeb[25]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_4 g253 (
.A(wb_rst_i),
.Y(n_0),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__conb_1 tie_0_cell (
.HI(io_oeb[13]),
.LO(FE_RN_171),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
endmodule