/*
###############################################################
#  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

