blob: b7503cfc025afba8dc2a2b5cc3df1c6262d5c70f [file] [log] [blame]
/*
###############################################################
# Generated by: Cadence Innovus 20.10-p004_1
# OS: Linux x86_64(Host ID merl-HP-Z840)
# Generated on: Fri Jun 3 13:52:32 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,
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_RN_123;
wire FE_OFN0_io_oeb_0;
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_123 ;
assign io_oeb[2] = io_oeb[13] ;
assign io_oeb[3] = FE_RN_123 ;
assign io_oeb[4] = FE_RN_123 ;
assign io_oeb[5] = io_oeb[13] ;
assign io_oeb[6] = FE_RN_123 ;
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[37] = FE_RN_123 ;
assign io_out[2] = FE_RN_123 ;
assign io_out[5] = FE_RN_123 ;
assign io_out[7] = FE_RN_123 ;
assign io_out[10] = FE_RN_123 ;
assign io_out[11] = FE_RN_123 ;
assign io_out[12] = FE_RN_123 ;
assign io_out[13] = FE_RN_123 ;
assign la_data_out[0] = FE_RN_123 ;
assign la_data_out[1] = FE_RN_123 ;
assign la_data_out[2] = FE_RN_123 ;
assign la_data_out[3] = FE_RN_123 ;
assign la_data_out[4] = FE_RN_123 ;
assign la_data_out[5] = FE_RN_123 ;
assign la_data_out[6] = FE_RN_123 ;
assign la_data_out[7] = FE_RN_123 ;
assign la_data_out[8] = FE_RN_123 ;
assign la_data_out[9] = FE_RN_123 ;
assign la_data_out[10] = FE_RN_123 ;
assign la_data_out[11] = FE_RN_123 ;
assign la_data_out[12] = FE_RN_123 ;
assign la_data_out[13] = FE_RN_123 ;
assign la_data_out[14] = FE_RN_123 ;
assign la_data_out[16] = la_data_out[15] ;
assign la_data_out[17] = la_data_out[15] ;
assign la_data_out[18] = la_data_out[15] ;
assign la_data_out[19] = la_data_out[15] ;
assign la_data_out[20] = la_data_out[15] ;
assign la_data_out[21] = la_data_out[15] ;
assign la_data_out[22] = la_data_out[15] ;
assign la_data_out[23] = la_data_out[15] ;
assign la_data_out[24] = la_data_out[15] ;
assign la_data_out[25] = la_data_out[15] ;
assign la_data_out[26] = la_data_out[15] ;
assign la_data_out[27] = la_data_out[15] ;
assign la_data_out[28] = la_data_out[15] ;
assign la_data_out[29] = la_data_out[15] ;
assign la_data_out[30] = la_data_out[15] ;
assign la_data_out[31] = la_data_out[15] ;
assign la_data_out[32] = la_data_out[15] ;
assign la_data_out[33] = la_data_out[15] ;
assign la_data_out[34] = la_data_out[15] ;
assign la_data_out[35] = la_data_out[15] ;
assign la_data_out[36] = la_data_out[15] ;
assign la_data_out[37] = la_data_out[15] ;
assign la_data_out[38] = la_data_out[15] ;
assign la_data_out[39] = la_data_out[15] ;
assign la_data_out[40] = la_data_out[15] ;
assign la_data_out[41] = la_data_out[15] ;
assign la_data_out[42] = la_data_out[15] ;
assign la_data_out[43] = la_data_out[15] ;
assign la_data_out[44] = la_data_out[15] ;
assign la_data_out[45] = la_data_out[15] ;
assign la_data_out[46] = la_data_out[15] ;
assign la_data_out[47] = la_data_out[15] ;
assign la_data_out[48] = la_data_out[15] ;
assign la_data_out[49] = la_data_out[15] ;
assign la_data_out[50] = la_data_out[15] ;
assign la_data_out[51] = la_data_out[15] ;
assign la_data_out[52] = la_data_out[15] ;
assign la_data_out[53] = la_data_out[15] ;
assign la_data_out[54] = la_data_out[15] ;
assign la_data_out[55] = la_data_out[15] ;
assign la_data_out[56] = la_data_out[15] ;
assign la_data_out[57] = la_data_out[15] ;
assign la_data_out[58] = la_data_out[15] ;
assign la_data_out[59] = la_data_out[15] ;
assign la_data_out[60] = la_data_out[15] ;
assign la_data_out[61] = la_data_out[15] ;
assign la_data_out[62] = la_data_out[15] ;
assign la_data_out[63] = la_data_out[15] ;
assign la_data_out[64] = la_data_out[15] ;
assign la_data_out[65] = la_data_out[15] ;
assign la_data_out[66] = la_data_out[15] ;
assign la_data_out[67] = la_data_out[15] ;
assign la_data_out[68] = la_data_out[15] ;
assign la_data_out[69] = la_data_out[15] ;
assign la_data_out[70] = la_data_out[15] ;
assign la_data_out[71] = la_data_out[15] ;
assign la_data_out[72] = la_data_out[15] ;
assign la_data_out[73] = la_data_out[15] ;
assign la_data_out[74] = la_data_out[15] ;
assign la_data_out[75] = la_data_out[15] ;
assign la_data_out[76] = la_data_out[15] ;
assign la_data_out[77] = la_data_out[15] ;
assign la_data_out[78] = la_data_out[15] ;
assign la_data_out[79] = la_data_out[15] ;
assign la_data_out[80] = la_data_out[15] ;
assign la_data_out[81] = la_data_out[15] ;
assign la_data_out[82] = la_data_out[15] ;
assign la_data_out[83] = la_data_out[15] ;
assign la_data_out[84] = la_data_out[15] ;
assign la_data_out[85] = la_data_out[15] ;
assign la_data_out[86] = la_data_out[15] ;
assign la_data_out[87] = la_data_out[15] ;
assign la_data_out[88] = la_data_out[15] ;
assign io_oeb[14] = io_oeb[15] ;
assign io_out[37] = io_oeb[15] ;
assign io_oeb[32] = io_oeb[15] ;
assign io_oeb[31] = io_oeb[15] ;
assign io_oeb[30] = io_oeb[15] ;
assign la_data_out[90] = la_data_out[89] ;
assign la_data_out[91] = la_data_out[89] ;
assign la_data_out[92] = la_data_out[89] ;
assign la_data_out[93] = la_data_out[89] ;
assign la_data_out[94] = la_data_out[89] ;
assign la_data_out[95] = la_data_out[89] ;
assign la_data_out[96] = la_data_out[89] ;
assign la_data_out[97] = la_data_out[89] ;
assign la_data_out[98] = la_data_out[89] ;
assign la_data_out[99] = la_data_out[89] ;
assign la_data_out[100] = la_data_out[89] ;
assign la_data_out[101] = la_data_out[89] ;
assign la_data_out[102] = la_data_out[89] ;
assign la_data_out[103] = la_data_out[89] ;
assign la_data_out[104] = la_data_out[89] ;
assign la_data_out[105] = la_data_out[89] ;
assign la_data_out[106] = la_data_out[89] ;
assign la_data_out[107] = la_data_out[89] ;
assign la_data_out[108] = la_data_out[89] ;
assign la_data_out[109] = la_data_out[89] ;
assign la_data_out[110] = la_data_out[89] ;
assign la_data_out[111] = la_data_out[89] ;
assign la_data_out[112] = la_data_out[89] ;
assign la_data_out[113] = la_data_out[89] ;
assign la_data_out[114] = la_data_out[89] ;
assign la_data_out[115] = la_data_out[89] ;
assign la_data_out[116] = la_data_out[89] ;
assign la_data_out[117] = la_data_out[89] ;
assign la_data_out[118] = la_data_out[89] ;
assign la_data_out[119] = la_data_out[89] ;
assign la_data_out[120] = la_data_out[89] ;
assign la_data_out[121] = la_data_out[89] ;
assign la_data_out[122] = la_data_out[89] ;
assign la_data_out[123] = la_data_out[89] ;
assign la_data_out[124] = la_data_out[89] ;
assign la_data_out[125] = la_data_out[89] ;
assign la_data_out[126] = la_data_out[89] ;
assign la_data_out[127] = la_data_out[89] ;
assign user_irq[0] = la_data_out[89] ;
assign user_irq[1] = la_data_out[89] ;
assign user_irq[2] = la_data_out[89] ;
assign wbs_ack_o = la_data_out[89] ;
assign wbs_dat_o[0] = la_data_out[89] ;
assign wbs_dat_o[1] = la_data_out[89] ;
assign wbs_dat_o[2] = la_data_out[89] ;
assign wbs_dat_o[3] = la_data_out[89] ;
assign wbs_dat_o[4] = la_data_out[89] ;
assign wbs_dat_o[5] = la_data_out[89] ;
assign wbs_dat_o[6] = la_data_out[89] ;
assign wbs_dat_o[7] = la_data_out[89] ;
assign wbs_dat_o[8] = la_data_out[89] ;
assign wbs_dat_o[9] = la_data_out[89] ;
assign wbs_dat_o[10] = la_data_out[89] ;
assign wbs_dat_o[11] = la_data_out[89] ;
assign wbs_dat_o[12] = la_data_out[89] ;
assign wbs_dat_o[13] = la_data_out[89] ;
assign wbs_dat_o[14] = la_data_out[89] ;
assign wbs_dat_o[15] = la_data_out[89] ;
assign wbs_dat_o[16] = la_data_out[89] ;
assign wbs_dat_o[17] = la_data_out[89] ;
assign wbs_dat_o[18] = la_data_out[89] ;
assign wbs_dat_o[19] = la_data_out[89] ;
assign wbs_dat_o[20] = la_data_out[89] ;
assign wbs_dat_o[21] = la_data_out[89] ;
assign wbs_dat_o[22] = la_data_out[89] ;
assign wbs_dat_o[23] = la_data_out[89] ;
assign wbs_dat_o[24] = la_data_out[89] ;
assign wbs_dat_o[25] = la_data_out[89] ;
assign wbs_dat_o[26] = la_data_out[89] ;
assign wbs_dat_o[27] = la_data_out[89] ;
assign wbs_dat_o[28] = la_data_out[89] ;
assign wbs_dat_o[29] = la_data_out[89] ;
assign wbs_dat_o[30] = la_data_out[89] ;
assign wbs_dat_o[31] = la_data_out[89] ;
// Module instantiations
sky130_fd_sc_hd__diode_2 DIODE_4 (
.DIODE(io_oeb[0]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__diode_2 DIODE_3 (
.DIODE(qsd_oe[3]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__diode_2 DIODE_2 (
.DIODE(pwm1_oe),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__diode_2 DIODE_1 (
.DIODE(gpio_oe[11]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__clkbuf_4 FE_OFC3_io_oeb_0 (
.A(la_data_out[15]),
.X(la_data_out[89]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_6 FE_OFC2_io_oeb_0 (
.A(FE_OFN0_io_oeb_0),
.Y(io_oeb[15]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__clkbuf_1 FE_OFC1_io_oeb_0 (
.A(io_oeb[0]),
.X(la_data_out[15]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_2 FE_OFC0_io_oeb_0 (
.A(io_oeb[0]),
.Y(FE_OFN0_io_oeb_0),
.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_1 g236 (
.A(qsd_oe[0]),
.Y(io_oeb[33]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_1 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_1 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_2 g250 (
.A(gpio_oe[7]),
.Y(io_oeb[23]),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
sky130_fd_sc_hd__inv_2 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_123),
.VPWR(vccd1),
.VPB(vccd1),
.VNB(vssd1),
.VGND(vssd1));
endmodule