// Generated by CIRCT firtool-1.151.0 module RVCExpander( input [31:0] io_in, output [31:0] io_out_bits, output [4:0] io_out_rd, io_out_rs1, io_out_rs2, io_out_rs3, output io_rvc ); wire [2:0] _io_out_s_funct_T_2 = {io_in[12], io_in[6:5]}; wire [2:0] _io_out_s_funct_T_4 = {_io_out_s_funct_T_2 == 3'h1, 2'h0}; wire [7:0][2:0] _GEN = {{3'h3}, {3'h2}, {3'h0}, {3'h0}, {3'h7}, {3'h6}, {_io_out_s_funct_T_4}, {_io_out_s_funct_T_4}}; wire [3:0] _GEN_0 = {4{io_in[12]}}; wire [6:0] io_out_s_load_opc = (|(io_in[11:7])) ? 7'h3 : 7'h1F; wire _io_out_s_jr_mv_T_1 = |(io_in[6:2]); wire _io_out_s_jalr_add_T_1 = |(io_in[6:2]); wire [4:0] _io_out_T_2 = {io_in[1:0], io_in[15:13]}; wire _io_out_T_3 = _io_out_T_2 == 5'h1; wire _io_out_T_5 = _io_out_T_2 == 5'h2; wire _io_out_T_7 = _io_out_T_2 == 5'h3; wire _io_out_T_9 = _io_out_T_2 == 5'h4; wire _io_out_T_11 = _io_out_T_2 == 5'h5; wire _io_out_T_13 = _io_out_T_2 == 5'h6; wire _io_out_T_15 = _io_out_T_2 == 5'h7; wire _io_out_T_17 = _io_out_T_2 == 5'h8; wire _io_out_T_19 = _io_out_T_2 == 5'h9; wire _GEN_1 = _io_out_T_19 | _io_out_T_17; wire _io_out_T_21 = _io_out_T_2 == 5'hA; wire _io_out_T_23 = _io_out_T_2 == 5'hB; wire _io_out_T_25 = _io_out_T_2 == 5'hC; wire _io_out_T_27 = _io_out_T_2 == 5'hD; wire _io_out_T_29 = _io_out_T_2 == 5'hE; wire _io_out_T_31 = _io_out_T_2 == 5'hF; wire _io_out_T_33 = _io_out_T_2 == 5'h10; wire _io_out_T_35 = _io_out_T_2 == 5'h11; wire _io_out_T_37 = _io_out_T_2 == 5'h12; wire _io_out_T_39 = _io_out_T_2 == 5'h13; wire _GEN_2 = _io_out_T_39 | _io_out_T_37 | _io_out_T_35 | _io_out_T_33; wire _io_out_T_41 = _io_out_T_2 == 5'h14; wire [31:0] _io_out_T_42_bits = _io_out_T_41 ? {7'h0, io_in[12] ? (_io_out_s_jalr_add_T_1 ? {io_in[6:2], io_in[11:7], 3'h0, io_in[11:7], 7'h33} : (|(io_in[11:7])) ? {io_in[6:2], io_in[11:7], 15'hE7} : {io_in[6:3], 1'h1, io_in[11:7], 15'h73}) : {io_in[6:2], _io_out_s_jr_mv_T_1 ? {8'h0, io_in[11:7], 7'h33} : {io_in[11:7], (|(io_in[11:7])) ? 15'h67 : 15'h1F}}} : _io_out_T_39 ? {3'h0, io_in[4:2], io_in[12], io_in[6:5], 11'h13, io_in[11:7], io_out_s_load_opc} : _io_out_T_37 ? {4'h0, io_in[3:2], io_in[12], io_in[6:4], 10'h12, io_in[11:7], io_out_s_load_opc} : _io_out_T_35 ? {3'h0, io_in[4:2], io_in[12], io_in[6:5], 11'h13, io_in[11:7], 7'h7} : _io_out_T_33 ? {6'h0, io_in[12], io_in[6:2], io_in[11:7], 3'h1, io_in[11:7], 7'h13} : _io_out_T_31 ? {_GEN_0, io_in[6:5], io_in[2], 7'h1, io_in[9:7], 3'h1, io_in[11:10], io_in[4:3], io_in[12], 7'h63} : _io_out_T_29 ? {_GEN_0, io_in[6:5], io_in[2], 7'h1, io_in[9:7], 3'h0, io_in[11:10], io_in[4:3], io_in[12], 7'h63} : _io_out_T_27 ? {io_in[12], io_in[8], io_in[10:9], io_in[6], io_in[7], io_in[2], io_in[11], io_in[5:3], {9{io_in[12]}}, 12'h6F} : _io_out_T_25 ? ((&(io_in[11:10])) ? {1'h0, {8'h1, io_in[4:2], 2'h1, io_in[9:7], _GEN[_io_out_s_funct_T_2], 2'h1, io_in[9:7], 3'h3, io_in[12], 3'h3} | {io_in[6:5] == 2'h0, 30'h0}} : {io_in[11:10] == 2'h2 ? {{7{io_in[12]}}, io_in[6:2], 2'h1, io_in[9:7], 5'h1D} : {1'h0, io_in[11:10] == 2'h1, 4'h0, io_in[12], io_in[6:2], 2'h1, io_in[9:7], 5'h15}, io_in[9:7], 7'h13}) : _io_out_T_23 ? {{3{io_in[12]}}, io_in[11:7] == 5'h0 | io_in[11:7] == 5'h2 ? {io_in[4:3], io_in[5], io_in[2], io_in[6], 4'h0, io_in[11:7], 3'h0, io_in[11:7], (|{{7{io_in[12]}}, io_in[6:2]}) ? 7'h13 : 7'h1F} : {{12{io_in[12]}}, io_in[6:2], io_in[11:7], 3'h3, {{7{io_in[12]}}, io_in[6:2]} == 12'h0, 3'h7}} : _io_out_T_21 ? {{7{io_in[12]}}, io_in[6:2], 8'h0, io_in[11:7], 7'h13} : _io_out_T_19 ? {{7{io_in[12]}}, io_in[6:2], io_in[11:7], 3'h0, io_in[11:7], 4'h3, io_in[11:7] == 5'h0, 2'h3} : _io_out_T_17 ? {{7{io_in[12]}}, io_in[6:2], io_in[11:7], 3'h0, io_in[11:7], 7'h13} : _io_out_T_15 ? {4'h0, io_in[6:5], io_in[12], 2'h1, io_in[4:2], 2'h1, io_in[9:7], 3'h3, io_in[11:10], 10'h23} : _io_out_T_13 ? {5'h0, io_in[5], io_in[12], 2'h1, io_in[4:2], 2'h1, io_in[9:7], 3'h2, io_in[11:10], io_in[6], 9'h23} : _io_out_T_11 ? {4'h0, io_in[6:5], io_in[12], 2'h1, io_in[4:2], 2'h1, io_in[9:7], 3'h3, io_in[11:10], 10'h27} : _io_out_T_9 ? {5'h0, io_in[5], io_in[12], 2'h1, io_in[4:2], 2'h1, io_in[9:7], 3'h2, io_in[11:10], io_in[6], 9'h3F} : _io_out_T_7 ? {4'h0, io_in[6:5], io_in[12:10], 5'h1, io_in[9:7], 5'hD, io_in[4:2], 7'h3} : _io_out_T_5 ? {5'h0, io_in[5], io_in[12:10], io_in[6], 4'h1, io_in[9:7], 5'h9, io_in[4:2], 7'h3} : _io_out_T_3 ? {4'h0, io_in[6:5], io_in[12:10], 5'h1, io_in[9:7], 5'hD, io_in[4:2], 7'h7} : {2'h0, io_in[10:7], io_in[12:11], io_in[5], io_in[6], 12'h41, io_in[4:2], (|(io_in[12:5])) ? 7'h13 : 7'h1F}; wire _io_out_T_43 = _io_out_T_2 == 5'h15; wire _io_out_T_45 = _io_out_T_2 == 5'h16; wire _io_out_T_47 = _io_out_T_2 == 5'h17; wire _GEN_3 = _io_out_T_47 | _io_out_T_45 | _io_out_T_43; wire _io_out_T_49 = _io_out_T_2 == 5'h18; wire _io_out_T_51 = _io_out_T_2 == 5'h19; wire _io_out_T_53 = _io_out_T_2 == 5'h1A; wire _io_out_T_55 = _io_out_T_2 == 5'h1B; wire _io_out_T_57 = _io_out_T_2 == 5'h1C; wire _io_out_T_59 = _io_out_T_2 == 5'h1D; wire _io_out_T_61 = _io_out_T_2 == 5'h1E; wire _io_out_T_63 = &_io_out_T_2; wire _GEN_4 = _io_out_T_63 | _io_out_T_61 | _io_out_T_59 | _io_out_T_57 | _io_out_T_55 | _io_out_T_53 | _io_out_T_51 | _io_out_T_49; assign io_out_bits = _GEN_4 ? io_in : _io_out_T_47 ? {3'h0, io_in[9:7], io_in[12], io_in[6:2], 8'h13, io_in[11:10], 10'h23} : _io_out_T_45 ? {4'h0, io_in[8:7], io_in[12], io_in[6:2], 8'h12, io_in[11:9], 9'h23} : _io_out_T_43 ? {3'h0, io_in[9:7], io_in[12], io_in[6:2], 8'h13, io_in[11:10], 10'h27} : _io_out_T_42_bits; assign io_out_rd = _io_out_T_63 | _io_out_T_61 | _io_out_T_59 | _io_out_T_57 | _io_out_T_55 | _io_out_T_53 | _io_out_T_51 | _io_out_T_49 | _GEN_3 ? io_in[11:7] : _io_out_T_41 ? (io_in[12] ? (_io_out_s_jalr_add_T_1 ? io_in[11:7] : 5'h1) : _io_out_s_jr_mv_T_1 ? io_in[11:7] : 5'h0) : _GEN_2 ? io_in[11:7] : _io_out_T_31 ? 5'h0 : _io_out_T_29 ? {2'h1, io_in[9:7]} : _io_out_T_27 ? 5'h0 : _io_out_T_25 ? {2'h1, io_in[9:7]} : _io_out_T_23 | _io_out_T_21 | _GEN_1 ? io_in[11:7] : {2'h1, io_in[4:2]}; assign io_out_rs1 = _GEN_4 ? io_in[19:15] : _GEN_3 ? 5'h2 : _io_out_T_41 ? (io_in[12] | ~_io_out_s_jr_mv_T_1 ? io_in[11:7] : 5'h0) : _io_out_T_39 | _io_out_T_37 | _io_out_T_35 ? 5'h2 : _io_out_T_33 ? io_in[11:7] : _io_out_T_31 ? {2'h1, io_in[9:7]} : _io_out_T_29 ? {2'h1, io_in[9:7]} : _io_out_T_27 ? {2'h1, io_in[9:7]} : _io_out_T_25 ? {2'h1, io_in[9:7]} : _io_out_T_23 ? io_in[11:7] : _io_out_T_21 ? 5'h0 : _GEN_1 ? io_in[11:7] : _io_out_T_15 ? {2'h1, io_in[9:7]} : _io_out_T_13 ? {2'h1, io_in[9:7]} : _io_out_T_11 ? {2'h1, io_in[9:7]} : _io_out_T_9 ? {2'h1, io_in[9:7]} : _io_out_T_7 ? {2'h1, io_in[9:7]} : _io_out_T_5 ? {2'h1, io_in[9:7]} : _io_out_T_3 ? {2'h1, io_in[9:7]} : 5'h2; assign io_out_rs2 = _GEN_4 ? io_in[24:20] : _io_out_T_47 | _io_out_T_45 | _io_out_T_43 | _io_out_T_41 | _GEN_2 ? io_in[6:2] : _io_out_T_31 | _io_out_T_29 ? 5'h0 : {2'h1, io_in[4:2]}; assign io_out_rs3 = io_in[31:27]; assign io_rvc = io_in[1:0] != 2'h3; endmodule