/*
###############################################################
#  Generated by:      Cadence Innovus 20.10-p004_1
#  OS:                Linux x86_64(Host ID merl-HP-Z840)
#  Generated on:      Sat May 28 19:33:56 2022
#  Design:            azadi_soc_top_caravel
#  Command:           write_netlist azadi_soc_top_caravel.v -include_pg_ports -exclude_leaf_cells -top_module_first
###############################################################
*/
// Generated by Cadence Genus(TM) Synthesis Solution 20.11-s111_1
// Generated on: May 28 2022 03:42:37 PKT (May 27 2022 22:42:37 UTC)
// Verification Directory fv/azadi_soc_top_caravel 
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, 
	vccd1, 
	vssd1);
   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 vccd1;
   inout vssd1;

   // Internal wires
   wire FE_OFN3_n_0;
   wire FE_OFN2_n_0;
   wire FE_RN_106;
   wire [13:0] gpio_oe;
   wire [3:0] qsd_oe;
   wire n_0;
   wire pwm1_oe;
   wire pwm2_oe;
   wire sd_oe;

   assign user_irq[0] = FE_RN_106 ;
   assign user_irq[1] = FE_RN_106 ;
   assign user_irq[2] = FE_RN_106 ;
   assign io_oeb[0] = FE_RN_106 ;
   assign io_oeb[2] = io_oeb[13] ;
   assign io_oeb[3] = FE_RN_106 ;
   assign io_oeb[4] = FE_RN_106 ;
   assign io_oeb[5] = io_oeb[13] ;
   assign io_oeb[6] = FE_RN_106 ;
   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_106 ;
   assign io_oeb[15] = FE_RN_106 ;
   assign io_out[2] = FE_RN_106 ;
   assign io_out[5] = FE_RN_106 ;
   assign io_out[7] = FE_RN_106 ;
   assign io_out[10] = FE_RN_106 ;
   assign io_out[11] = FE_RN_106 ;
   assign io_out[12] = FE_RN_106 ;
   assign io_out[13] = FE_RN_106 ;
   assign la_data_out[73] = FE_RN_106 ;
   assign la_data_out[74] = FE_RN_106 ;
   assign la_data_out[75] = FE_RN_106 ;
   assign la_data_out[76] = FE_RN_106 ;
   assign la_data_out[77] = FE_RN_106 ;
   assign la_data_out[78] = FE_RN_106 ;
   assign la_data_out[79] = FE_RN_106 ;
   assign la_data_out[80] = FE_RN_106 ;
   assign la_data_out[81] = FE_RN_106 ;
   assign la_data_out[82] = FE_RN_106 ;
   assign la_data_out[83] = FE_RN_106 ;
   assign la_data_out[84] = FE_RN_106 ;
   assign la_data_out[85] = FE_RN_106 ;
   assign la_data_out[86] = FE_RN_106 ;
   assign la_data_out[87] = FE_RN_106 ;
   assign la_data_out[88] = FE_RN_106 ;
   assign la_data_out[89] = FE_RN_106 ;
   assign la_data_out[90] = FE_RN_106 ;
   assign la_data_out[91] = FE_RN_106 ;
   assign la_data_out[92] = FE_RN_106 ;
   assign la_data_out[93] = FE_RN_106 ;
   assign la_data_out[94] = FE_RN_106 ;
   assign la_data_out[95] = FE_RN_106 ;
   assign la_data_out[96] = FE_RN_106 ;
   assign la_data_out[97] = FE_RN_106 ;
   assign la_data_out[98] = FE_RN_106 ;
   assign la_data_out[99] = FE_RN_106 ;
   assign la_data_out[100] = FE_RN_106 ;
   assign la_data_out[101] = FE_RN_106 ;
   assign la_data_out[102] = FE_RN_106 ;
   assign la_data_out[103] = FE_RN_106 ;
   assign la_data_out[104] = FE_RN_106 ;
   assign la_data_out[105] = FE_RN_106 ;
   assign la_data_out[106] = FE_RN_106 ;
   assign la_data_out[107] = FE_RN_106 ;
   assign la_data_out[108] = FE_RN_106 ;
   assign la_data_out[109] = FE_RN_106 ;
   assign la_data_out[110] = FE_RN_106 ;
   assign la_data_out[111] = FE_RN_106 ;
   assign la_data_out[112] = FE_RN_106 ;
   assign la_data_out[113] = FE_RN_106 ;
   assign la_data_out[114] = FE_RN_106 ;
   assign la_data_out[115] = FE_RN_106 ;
   assign la_data_out[116] = FE_RN_106 ;
   assign la_data_out[117] = FE_RN_106 ;
   assign la_data_out[118] = FE_RN_106 ;
   assign la_data_out[119] = FE_RN_106 ;
   assign la_data_out[120] = FE_RN_106 ;
   assign la_data_out[121] = FE_RN_106 ;
   assign la_data_out[122] = FE_RN_106 ;
   assign la_data_out[123] = FE_RN_106 ;
   assign la_data_out[124] = FE_RN_106 ;
   assign la_data_out[125] = FE_RN_106 ;
   assign la_data_out[126] = FE_RN_106 ;
   assign la_data_out[127] = FE_RN_106 ;
   assign la_data_out[72] = la_data_out[71] ;
   assign la_data_out[70] = la_data_out[71] ;
   assign la_data_out[69] = la_data_out[71] ;
   assign la_data_out[68] = la_data_out[71] ;
   assign la_data_out[67] = la_data_out[71] ;
   assign la_data_out[66] = la_data_out[71] ;
   assign la_data_out[65] = la_data_out[71] ;
   assign la_data_out[64] = la_data_out[71] ;
   assign la_data_out[63] = la_data_out[71] ;
   assign la_data_out[62] = la_data_out[71] ;
   assign la_data_out[61] = la_data_out[71] ;
   assign la_data_out[60] = la_data_out[71] ;
   assign la_data_out[59] = la_data_out[71] ;
   assign la_data_out[58] = la_data_out[71] ;
   assign la_data_out[57] = la_data_out[71] ;
   assign la_data_out[56] = la_data_out[71] ;
   assign la_data_out[55] = la_data_out[71] ;
   assign la_data_out[54] = la_data_out[71] ;
   assign la_data_out[53] = la_data_out[71] ;
   assign la_data_out[52] = la_data_out[71] ;
   assign la_data_out[51] = la_data_out[71] ;
   assign la_data_out[50] = la_data_out[71] ;
   assign la_data_out[49] = la_data_out[71] ;
   assign la_data_out[48] = la_data_out[71] ;
   assign la_data_out[47] = la_data_out[71] ;
   assign la_data_out[46] = la_data_out[71] ;
   assign la_data_out[45] = la_data_out[71] ;
   assign la_data_out[44] = la_data_out[71] ;
   assign la_data_out[43] = la_data_out[71] ;
   assign la_data_out[42] = la_data_out[71] ;
   assign la_data_out[41] = la_data_out[71] ;
   assign la_data_out[40] = la_data_out[71] ;
   assign la_data_out[39] = la_data_out[71] ;
   assign la_data_out[38] = la_data_out[71] ;
   assign la_data_out[37] = la_data_out[71] ;
   assign la_data_out[36] = la_data_out[71] ;
   assign la_data_out[35] = la_data_out[71] ;
   assign la_data_out[34] = la_data_out[71] ;
   assign la_data_out[33] = la_data_out[71] ;
   assign la_data_out[32] = la_data_out[71] ;
   assign la_data_out[31] = la_data_out[71] ;
   assign la_data_out[30] = la_data_out[71] ;
   assign la_data_out[29] = la_data_out[71] ;
   assign la_data_out[28] = la_data_out[71] ;
   assign la_data_out[27] = la_data_out[71] ;
   assign la_data_out[26] = la_data_out[71] ;
   assign la_data_out[25] = la_data_out[71] ;
   assign la_data_out[24] = la_data_out[71] ;
   assign la_data_out[23] = la_data_out[71] ;
   assign la_data_out[22] = la_data_out[71] ;
   assign la_data_out[21] = la_data_out[71] ;
   assign la_data_out[20] = la_data_out[71] ;
   assign la_data_out[19] = la_data_out[71] ;
   assign la_data_out[18] = la_data_out[71] ;
   assign la_data_out[17] = la_data_out[71] ;
   assign la_data_out[16] = la_data_out[71] ;
   assign la_data_out[15] = la_data_out[71] ;
   assign la_data_out[14] = la_data_out[71] ;
   assign la_data_out[13] = la_data_out[71] ;
   assign la_data_out[12] = la_data_out[71] ;
   assign la_data_out[11] = la_data_out[71] ;
   assign la_data_out[10] = la_data_out[71] ;
   assign la_data_out[9] = la_data_out[71] ;
   assign la_data_out[8] = la_data_out[71] ;
   assign la_data_out[7] = la_data_out[71] ;
   assign la_data_out[6] = la_data_out[71] ;
   assign la_data_out[5] = la_data_out[71] ;
   assign la_data_out[4] = la_data_out[71] ;
   assign la_data_out[3] = la_data_out[71] ;
   assign la_data_out[2] = la_data_out[71] ;
   assign la_data_out[1] = la_data_out[71] ;
   assign la_data_out[0] = la_data_out[71] ;
   assign wbs_dat_o[30] = wbs_dat_o[31] ;
   assign wbs_dat_o[29] = wbs_dat_o[31] ;
   assign wbs_dat_o[28] = wbs_dat_o[31] ;
   assign wbs_dat_o[27] = wbs_dat_o[31] ;
   assign wbs_dat_o[26] = wbs_dat_o[31] ;
   assign wbs_dat_o[25] = wbs_dat_o[31] ;
   assign wbs_dat_o[24] = wbs_dat_o[31] ;
   assign wbs_dat_o[23] = wbs_dat_o[31] ;
   assign wbs_dat_o[22] = wbs_dat_o[31] ;
   assign wbs_dat_o[21] = wbs_dat_o[31] ;
   assign wbs_dat_o[20] = wbs_dat_o[31] ;
   assign wbs_dat_o[19] = wbs_dat_o[31] ;
   assign wbs_dat_o[18] = wbs_dat_o[31] ;
   assign wbs_dat_o[17] = wbs_dat_o[31] ;
   assign wbs_dat_o[16] = wbs_dat_o[31] ;
   assign wbs_dat_o[15] = wbs_dat_o[31] ;
   assign wbs_dat_o[14] = wbs_dat_o[31] ;
   assign wbs_dat_o[13] = wbs_dat_o[31] ;
   assign wbs_dat_o[12] = wbs_dat_o[31] ;
   assign wbs_dat_o[11] = wbs_dat_o[31] ;
   assign wbs_dat_o[10] = wbs_dat_o[31] ;
   assign wbs_dat_o[9] = wbs_dat_o[31] ;
   assign wbs_dat_o[8] = wbs_dat_o[31] ;
   assign wbs_dat_o[7] = wbs_dat_o[31] ;
   assign wbs_dat_o[6] = wbs_dat_o[31] ;
   assign wbs_dat_o[5] = wbs_dat_o[31] ;
   assign wbs_dat_o[4] = wbs_dat_o[31] ;
   assign wbs_dat_o[3] = wbs_dat_o[31] ;
   assign wbs_dat_o[2] = wbs_dat_o[31] ;
   assign wbs_dat_o[1] = wbs_dat_o[31] ;
   assign wbs_dat_o[0] = wbs_dat_o[31] ;
   assign wbs_ack_o = wbs_dat_o[31] ;
   assign io_out[37] = wbs_dat_o[31] ;
   assign io_oeb[37] = wbs_dat_o[31] ;
   assign io_oeb[32] = wbs_dat_o[31] ;
   assign io_oeb[31] = wbs_dat_o[31] ;
   assign io_oeb[30] = wbs_dat_o[31] ;

   // Module instantiations
   sky130_fd_sc_hd__diode_2 DIODE_2 (
	.DIODE(io_oeb[0]), 
	.VPWR(vccd1), 
	.VPB(vccd1), 
	.VNB(vssd1), 
	.VGND(vssd1));
   sky130_fd_sc_hd__diode_2 DIODE_1 (
	.DIODE(gpio_oe[10]), 
	.VPWR(vccd1), 
	.VPB(vccd1), 
	.VNB(vssd1), 
	.VGND(vssd1));
   sky130_fd_sc_hd__inv_2 FE_OFC3_n_0 (
	.A(FE_OFN2_n_0),
	.Y(FE_OFN3_n_0), 
	.VPWR(vccd1), 
	.VPB(vccd1), 
	.VNB(vssd1), 
	.VGND(vssd1));
   sky130_fd_sc_hd__inv_2 FE_OFC2_n_0 (
	.A(n_0),
	.Y(FE_OFN2_n_0), 
	.VPWR(vccd1), 
	.VPB(vccd1), 
	.VNB(vssd1), 
	.VGND(vssd1));
   sky130_fd_sc_hd__buf_4 FE_OFC1_io_oeb_0 (
	.A(la_data_out[71]),
	.X(wbs_dat_o[31]), 
	.VPWR(vccd1), 
	.VPB(vccd1), 
	.VNB(vssd1), 
	.VGND(vssd1));
   sky130_fd_sc_hd__clkbuf_1 FE_OFC0_io_oeb_0 (
	.A(io_oeb[0]),
	.X(la_data_out[71]), 
	.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(FE_OFN3_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_1 g236 (
	.A(qsd_oe[0]),
	.Y(io_oeb[33]), 
	.VPWR(vccd1), 
	.VPB(vccd1), 
	.VNB(vssd1), 
	.VGND(vssd1));
   sky130_fd_sc_hd__inv_4 g237 (
	.A(qsd_oe[1]),
	.Y(io_oeb[34]), 
	.VPWR(vccd1), 
	.VPB(vccd1), 
	.VNB(vssd1), 
	.VGND(vssd1));
   sky130_fd_sc_hd__inv_1 g238 (
	.A(qsd_oe[2]),
	.Y(io_oeb[35]), 
	.VPWR(vccd1), 
	.VPB(vccd1), 
	.VNB(vssd1), 
	.VGND(vssd1));
   sky130_fd_sc_hd__inv_2 g239 (
	.A(qsd_oe[3]),
	.Y(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_2 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_106), 
	.VPWR(vccd1), 
	.VPB(vccd1), 
	.VNB(vssd1), 
	.VGND(vssd1));
endmodule

