diff --git a/.gitignore b/.gitignore index 9b0e9ca2..b6f33998 100644 --- a/.gitignore +++ b/.gitignore @@ -132,7 +132,8 @@ local.properties # Chisel Outputs *.anno.json *.fir -*.v +# outputs only SystemVerilog +# *.v *.sv # Debug files diff --git a/fpga/Core.sv b/fpga/Core.sv new file mode 100644 index 00000000..1ef7b1ae --- /dev/null +++ b/fpga/Core.sv @@ -0,0 +1,11656 @@ +// Generated by CIRCT firtool-1.38.0 +// Standard header to adapt well known macros to our needs. + +// Users can define 'PRINTF_COND' to add an extra gate to prints. +`ifndef PRINTF_COND_ + `ifdef PRINTF_COND + `define PRINTF_COND_ (`PRINTF_COND) + `else // PRINTF_COND + `define PRINTF_COND_ 1 + `endif // PRINTF_COND +`endif // not def PRINTF_COND_ + +// Users can define 'ASSERT_VERBOSE_COND' to add an extra gate to assert error printing. +`ifndef ASSERT_VERBOSE_COND_ + `ifdef ASSERT_VERBOSE_COND + `define ASSERT_VERBOSE_COND_ (`ASSERT_VERBOSE_COND) + `else // ASSERT_VERBOSE_COND + `define ASSERT_VERBOSE_COND_ 1 + `endif // ASSERT_VERBOSE_COND +`endif // not def ASSERT_VERBOSE_COND_ + +// Users can define 'STOP_COND' to add an extra gate to stop conditions. +`ifndef STOP_COND_ + `ifdef STOP_COND + `define STOP_COND_ (`STOP_COND) + `else // STOP_COND + `define STOP_COND_ 1 + `endif // STOP_COND +`endif // not def STOP_COND_ + +// VCS coverage exclude_file +module vrf_combMem( + input [4:0] R0_addr, + input R0_en, + R0_clk, + input [4:0] R1_addr, + input R1_en, + R1_clk, + input [4:0] R2_addr, + input R2_en, + R2_clk, + input [4:0] R3_addr, + input R3_en, + R3_clk, + input [4:0] R4_addr, + input R4_en, + R4_clk, + input [4:0] R5_addr, + input R5_en, + R5_clk, + input [4:0] R6_addr, + input R6_en, + R6_clk, + input [4:0] R7_addr, + input R7_en, + R7_clk, + input [4:0] R8_addr, + input R8_en, + R8_clk, + input [4:0] R9_addr, + input R9_en, + R9_clk, + input [4:0] R10_addr, + input R10_en, + R10_clk, + input [4:0] R11_addr, + input R11_en, + R11_clk, + input [4:0] W0_addr, + input W0_en, + W0_clk, + input [255:0] W0_data, + input [31:0] W0_mask, + input [4:0] W1_addr, + input W1_en, + W1_clk, + input [255:0] W1_data, + input [31:0] W1_mask, + input [4:0] W2_addr, + input W2_en, + W2_clk, + input [255:0] W2_data, + input [31:0] W2_mask, + output [255:0] R0_data, + R1_data, + R2_data, + R3_data, + R4_data, + R5_data, + R6_data, + R7_data, + R8_data, + R9_data, + R10_data, + R11_data +); + + (* ram_style = "distributed" *) + reg [255:0] Memory[0:31]; + always @(posedge W0_clk) begin + if (W0_en & W0_mask[0]) + Memory[W0_addr][32'h0 +: 8] <= W0_data[7:0]; + if (W0_en & W0_mask[1]) + Memory[W0_addr][32'h8 +: 8] <= W0_data[15:8]; + if (W0_en & W0_mask[2]) + Memory[W0_addr][32'h10 +: 8] <= W0_data[23:16]; + if (W0_en & W0_mask[3]) + Memory[W0_addr][32'h18 +: 8] <= W0_data[31:24]; + if (W0_en & W0_mask[4]) + Memory[W0_addr][32'h20 +: 8] <= W0_data[39:32]; + if (W0_en & W0_mask[5]) + Memory[W0_addr][32'h28 +: 8] <= W0_data[47:40]; + if (W0_en & W0_mask[6]) + Memory[W0_addr][32'h30 +: 8] <= W0_data[55:48]; + if (W0_en & W0_mask[7]) + Memory[W0_addr][32'h38 +: 8] <= W0_data[63:56]; + if (W0_en & W0_mask[8]) + Memory[W0_addr][32'h40 +: 8] <= W0_data[71:64]; + if (W0_en & W0_mask[9]) + Memory[W0_addr][32'h48 +: 8] <= W0_data[79:72]; + if (W0_en & W0_mask[10]) + Memory[W0_addr][32'h50 +: 8] <= W0_data[87:80]; + if (W0_en & W0_mask[11]) + Memory[W0_addr][32'h58 +: 8] <= W0_data[95:88]; + if (W0_en & W0_mask[12]) + Memory[W0_addr][32'h60 +: 8] <= W0_data[103:96]; + if (W0_en & W0_mask[13]) + Memory[W0_addr][32'h68 +: 8] <= W0_data[111:104]; + if (W0_en & W0_mask[14]) + Memory[W0_addr][32'h70 +: 8] <= W0_data[119:112]; + if (W0_en & W0_mask[15]) + Memory[W0_addr][32'h78 +: 8] <= W0_data[127:120]; + if (W0_en & W0_mask[16]) + Memory[W0_addr][32'h80 +: 8] <= W0_data[135:128]; + if (W0_en & W0_mask[17]) + Memory[W0_addr][32'h88 +: 8] <= W0_data[143:136]; + if (W0_en & W0_mask[18]) + Memory[W0_addr][32'h90 +: 8] <= W0_data[151:144]; + if (W0_en & W0_mask[19]) + Memory[W0_addr][32'h98 +: 8] <= W0_data[159:152]; + if (W0_en & W0_mask[20]) + Memory[W0_addr][32'hA0 +: 8] <= W0_data[167:160]; + if (W0_en & W0_mask[21]) + Memory[W0_addr][32'hA8 +: 8] <= W0_data[175:168]; + if (W0_en & W0_mask[22]) + Memory[W0_addr][32'hB0 +: 8] <= W0_data[183:176]; + if (W0_en & W0_mask[23]) + Memory[W0_addr][32'hB8 +: 8] <= W0_data[191:184]; + if (W0_en & W0_mask[24]) + Memory[W0_addr][32'hC0 +: 8] <= W0_data[199:192]; + if (W0_en & W0_mask[25]) + Memory[W0_addr][32'hC8 +: 8] <= W0_data[207:200]; + if (W0_en & W0_mask[26]) + Memory[W0_addr][32'hD0 +: 8] <= W0_data[215:208]; + if (W0_en & W0_mask[27]) + Memory[W0_addr][32'hD8 +: 8] <= W0_data[223:216]; + if (W0_en & W0_mask[28]) + Memory[W0_addr][32'hE0 +: 8] <= W0_data[231:224]; + if (W0_en & W0_mask[29]) + Memory[W0_addr][32'hE8 +: 8] <= W0_data[239:232]; + if (W0_en & W0_mask[30]) + Memory[W0_addr][32'hF0 +: 8] <= W0_data[247:240]; + if (W0_en & W0_mask[31]) + Memory[W0_addr][32'hF8 +: 8] <= W0_data[255:248]; + if (W1_en & W1_mask[0]) + Memory[W1_addr][32'h0 +: 8] <= W1_data[7:0]; + if (W1_en & W1_mask[1]) + Memory[W1_addr][32'h8 +: 8] <= W1_data[15:8]; + if (W1_en & W1_mask[2]) + Memory[W1_addr][32'h10 +: 8] <= W1_data[23:16]; + if (W1_en & W1_mask[3]) + Memory[W1_addr][32'h18 +: 8] <= W1_data[31:24]; + if (W1_en & W1_mask[4]) + Memory[W1_addr][32'h20 +: 8] <= W1_data[39:32]; + if (W1_en & W1_mask[5]) + Memory[W1_addr][32'h28 +: 8] <= W1_data[47:40]; + if (W1_en & W1_mask[6]) + Memory[W1_addr][32'h30 +: 8] <= W1_data[55:48]; + if (W1_en & W1_mask[7]) + Memory[W1_addr][32'h38 +: 8] <= W1_data[63:56]; + if (W1_en & W1_mask[8]) + Memory[W1_addr][32'h40 +: 8] <= W1_data[71:64]; + if (W1_en & W1_mask[9]) + Memory[W1_addr][32'h48 +: 8] <= W1_data[79:72]; + if (W1_en & W1_mask[10]) + Memory[W1_addr][32'h50 +: 8] <= W1_data[87:80]; + if (W1_en & W1_mask[11]) + Memory[W1_addr][32'h58 +: 8] <= W1_data[95:88]; + if (W1_en & W1_mask[12]) + Memory[W1_addr][32'h60 +: 8] <= W1_data[103:96]; + if (W1_en & W1_mask[13]) + Memory[W1_addr][32'h68 +: 8] <= W1_data[111:104]; + if (W1_en & W1_mask[14]) + Memory[W1_addr][32'h70 +: 8] <= W1_data[119:112]; + if (W1_en & W1_mask[15]) + Memory[W1_addr][32'h78 +: 8] <= W1_data[127:120]; + if (W1_en & W1_mask[16]) + Memory[W1_addr][32'h80 +: 8] <= W1_data[135:128]; + if (W1_en & W1_mask[17]) + Memory[W1_addr][32'h88 +: 8] <= W1_data[143:136]; + if (W1_en & W1_mask[18]) + Memory[W1_addr][32'h90 +: 8] <= W1_data[151:144]; + if (W1_en & W1_mask[19]) + Memory[W1_addr][32'h98 +: 8] <= W1_data[159:152]; + if (W1_en & W1_mask[20]) + Memory[W1_addr][32'hA0 +: 8] <= W1_data[167:160]; + if (W1_en & W1_mask[21]) + Memory[W1_addr][32'hA8 +: 8] <= W1_data[175:168]; + if (W1_en & W1_mask[22]) + Memory[W1_addr][32'hB0 +: 8] <= W1_data[183:176]; + if (W1_en & W1_mask[23]) + Memory[W1_addr][32'hB8 +: 8] <= W1_data[191:184]; + if (W1_en & W1_mask[24]) + Memory[W1_addr][32'hC0 +: 8] <= W1_data[199:192]; + if (W1_en & W1_mask[25]) + Memory[W1_addr][32'hC8 +: 8] <= W1_data[207:200]; + if (W1_en & W1_mask[26]) + Memory[W1_addr][32'hD0 +: 8] <= W1_data[215:208]; + if (W1_en & W1_mask[27]) + Memory[W1_addr][32'hD8 +: 8] <= W1_data[223:216]; + if (W1_en & W1_mask[28]) + Memory[W1_addr][32'hE0 +: 8] <= W1_data[231:224]; + if (W1_en & W1_mask[29]) + Memory[W1_addr][32'hE8 +: 8] <= W1_data[239:232]; + if (W1_en & W1_mask[30]) + Memory[W1_addr][32'hF0 +: 8] <= W1_data[247:240]; + if (W1_en & W1_mask[31]) + Memory[W1_addr][32'hF8 +: 8] <= W1_data[255:248]; + if (W2_en & W2_mask[0]) + Memory[W2_addr][32'h0 +: 8] <= W2_data[7:0]; + if (W2_en & W2_mask[1]) + Memory[W2_addr][32'h8 +: 8] <= W2_data[15:8]; + if (W2_en & W2_mask[2]) + Memory[W2_addr][32'h10 +: 8] <= W2_data[23:16]; + if (W2_en & W2_mask[3]) + Memory[W2_addr][32'h18 +: 8] <= W2_data[31:24]; + if (W2_en & W2_mask[4]) + Memory[W2_addr][32'h20 +: 8] <= W2_data[39:32]; + if (W2_en & W2_mask[5]) + Memory[W2_addr][32'h28 +: 8] <= W2_data[47:40]; + if (W2_en & W2_mask[6]) + Memory[W2_addr][32'h30 +: 8] <= W2_data[55:48]; + if (W2_en & W2_mask[7]) + Memory[W2_addr][32'h38 +: 8] <= W2_data[63:56]; + if (W2_en & W2_mask[8]) + Memory[W2_addr][32'h40 +: 8] <= W2_data[71:64]; + if (W2_en & W2_mask[9]) + Memory[W2_addr][32'h48 +: 8] <= W2_data[79:72]; + if (W2_en & W2_mask[10]) + Memory[W2_addr][32'h50 +: 8] <= W2_data[87:80]; + if (W2_en & W2_mask[11]) + Memory[W2_addr][32'h58 +: 8] <= W2_data[95:88]; + if (W2_en & W2_mask[12]) + Memory[W2_addr][32'h60 +: 8] <= W2_data[103:96]; + if (W2_en & W2_mask[13]) + Memory[W2_addr][32'h68 +: 8] <= W2_data[111:104]; + if (W2_en & W2_mask[14]) + Memory[W2_addr][32'h70 +: 8] <= W2_data[119:112]; + if (W2_en & W2_mask[15]) + Memory[W2_addr][32'h78 +: 8] <= W2_data[127:120]; + if (W2_en & W2_mask[16]) + Memory[W2_addr][32'h80 +: 8] <= W2_data[135:128]; + if (W2_en & W2_mask[17]) + Memory[W2_addr][32'h88 +: 8] <= W2_data[143:136]; + if (W2_en & W2_mask[18]) + Memory[W2_addr][32'h90 +: 8] <= W2_data[151:144]; + if (W2_en & W2_mask[19]) + Memory[W2_addr][32'h98 +: 8] <= W2_data[159:152]; + if (W2_en & W2_mask[20]) + Memory[W2_addr][32'hA0 +: 8] <= W2_data[167:160]; + if (W2_en & W2_mask[21]) + Memory[W2_addr][32'hA8 +: 8] <= W2_data[175:168]; + if (W2_en & W2_mask[22]) + Memory[W2_addr][32'hB0 +: 8] <= W2_data[183:176]; + if (W2_en & W2_mask[23]) + Memory[W2_addr][32'hB8 +: 8] <= W2_data[191:184]; + if (W2_en & W2_mask[24]) + Memory[W2_addr][32'hC0 +: 8] <= W2_data[199:192]; + if (W2_en & W2_mask[25]) + Memory[W2_addr][32'hC8 +: 8] <= W2_data[207:200]; + if (W2_en & W2_mask[26]) + Memory[W2_addr][32'hD0 +: 8] <= W2_data[215:208]; + if (W2_en & W2_mask[27]) + Memory[W2_addr][32'hD8 +: 8] <= W2_data[223:216]; + if (W2_en & W2_mask[28]) + Memory[W2_addr][32'hE0 +: 8] <= W2_data[231:224]; + if (W2_en & W2_mask[29]) + Memory[W2_addr][32'hE8 +: 8] <= W2_data[239:232]; + if (W2_en & W2_mask[30]) + Memory[W2_addr][32'hF0 +: 8] <= W2_data[247:240]; + if (W2_en & W2_mask[31]) + Memory[W2_addr][32'hF8 +: 8] <= W2_data[255:248]; + end // always @(posedge) + assign R0_data = R0_en ? Memory[R0_addr] : 256'bx; + assign R1_data = R1_en ? Memory[R1_addr] : 256'bx; + assign R2_data = R2_en ? Memory[R2_addr] : 256'bx; + assign R3_data = R3_en ? Memory[R3_addr] : 256'bx; + assign R4_data = R4_en ? Memory[R4_addr] : 256'bx; + assign R5_data = R5_en ? Memory[R5_addr] : 256'bx; + assign R6_data = R6_en ? Memory[R6_addr] : 256'bx; + assign R7_data = R7_en ? Memory[R7_addr] : 256'bx; + assign R8_data = R8_en ? Memory[R8_addr] : 256'bx; + assign R9_data = R9_en ? Memory[R9_addr] : 256'bx; + assign R10_data = R10_en ? Memory[R10_addr] : 256'bx; + assign R11_data = R11_en ? Memory[R11_addr] : 256'bx; +endmodule + +module Frontend( + input clock, + reset, + io_cpu_req_valid, + input [63:0] io_cpu_req_bits_pc, + input io_cpu_resp_ready, + io_icache_axi4lite_ar_ready, + io_icache_axi4lite_r_valid, + input [31:0] io_icache_axi4lite_r_bits_data, + input [63:0] io_reset_vector, + output io_cpu_resp_valid, + output [63:0] io_cpu_resp_bits_pc_addr, + output [31:0] io_cpu_resp_bits_inst_bits, + output io_cpu_resp_bits_exceptionSignals_valid, + output [63:0] io_cpu_resp_bits_exceptionSignals_bits, + output io_icache_axi4lite_ar_valid, + output [63:0] io_icache_axi4lite_ar_bits_addr, + output io_icache_axi4lite_r_ready +); + + reg [63:0] pc_reg_addr; + wire [63:0] _addr_req_to_axi_ar_T_1 = pc_reg_addr + 64'h4; + wire _GEN = + io_icache_axi4lite_ar_ready & io_icache_axi4lite_r_valid & io_cpu_resp_ready; + wire instAccessFault = pc_reg_addr > 64'h1FFC; + always @(posedge clock) begin + if (reset) + pc_reg_addr <= io_reset_vector; + else if (io_icache_axi4lite_r_valid | io_cpu_resp_ready) begin + if (io_cpu_req_valid) + pc_reg_addr <= io_cpu_req_bits_pc; + else if (_GEN) + pc_reg_addr <= _addr_req_to_axi_ar_T_1; + end + end // always @(posedge) + assign io_cpu_resp_valid = io_icache_axi4lite_r_valid; + assign io_cpu_resp_bits_pc_addr = pc_reg_addr; + assign io_cpu_resp_bits_inst_bits = io_icache_axi4lite_r_bits_data; + assign io_cpu_resp_bits_exceptionSignals_valid = + instAccessFault | (|(pc_reg_addr[1:0])); + assign io_cpu_resp_bits_exceptionSignals_bits = {63'h0, instAccessFault}; + assign io_icache_axi4lite_ar_valid = io_cpu_resp_ready; + assign io_icache_axi4lite_ar_bits_addr = + io_cpu_req_valid ? io_cpu_req_bits_pc : _GEN ? _addr_req_to_axi_ar_T_1 : pc_reg_addr; + assign io_icache_axi4lite_r_ready = io_cpu_resp_ready; +endmodule + +module Decoder( + input [31:0] io_inst_bits, + output io_out_valid, + output [3:0] io_out_bits_branch, + output [1:0] io_out_bits_value1, + output [2:0] io_out_bits_value2, + output [3:0] io_out_bits_arithmetic_funct, + output io_out_bits_alu_flag, + io_out_bits_op32, + output [2:0] io_out_bits_writeback_selector, + output [1:0] io_out_bits_memory_function, + io_out_bits_memory_length, + output io_out_bits_mem_sext, + output [2:0] io_out_bits_csr_funct, + output io_out_bits_fence, + io_out_bits_vector +); + + wire [16:0] _GEN = {io_inst_bits[31:25], io_inst_bits[14:12], io_inst_bits[6:0]}; + wire _csignals_T_15 = _GEN == 17'h33; + wire _csignals_T_17 = _GEN == 17'h8033; + wire _csignals_T_19 = _GEN == 17'hB3; + wire _csignals_T_21 = _GEN == 17'h133; + wire _csignals_T_23 = _GEN == 17'h1B3; + wire _csignals_T_25 = _GEN == 17'h233; + wire _csignals_T_27 = _GEN == 17'h2B3; + wire _csignals_T_29 = _GEN == 17'h82B3; + wire _csignals_T_31 = _GEN == 17'h333; + wire _csignals_T_33 = _GEN == 17'h3B3; + wire [9:0] _GEN_0 = {io_inst_bits[14:12], io_inst_bits[6:0]}; + wire _csignals_T_35 = _GEN_0 == 10'h13; + wire _csignals_T_37 = _GEN_0 == 10'h113; + wire _csignals_T_39 = _GEN_0 == 10'h193; + wire _csignals_T_41 = _GEN_0 == 10'h213; + wire _csignals_T_43 = _GEN_0 == 10'h313; + wire _csignals_T_45 = _GEN_0 == 10'h393; + wire [15:0] _GEN_1 = {io_inst_bits[31:26], io_inst_bits[14:12], io_inst_bits[6:0]}; + wire _csignals_T_47 = _GEN_1 == 16'h93; + wire _csignals_T_49 = _GEN_1 == 16'h293; + wire _csignals_T_51 = _GEN_1 == 16'h4293; + wire _csignals_T_53 = _GEN_0 == 10'h3; + wire _csignals_T_55 = _GEN_0 == 10'h83; + wire _csignals_T_57 = _GEN_0 == 10'h103; + wire _csignals_T_59 = _GEN_0 == 10'h203; + wire _csignals_T_61 = _GEN_0 == 10'h283; + wire _csignals_T_63 = _GEN_0 == 10'h67; + wire _csignals_T_65 = _GEN_0 == 10'h23; + wire _csignals_T_67 = _GEN_0 == 10'hA3; + wire _csignals_T_69 = _GEN_0 == 10'h123; + wire _csignals_T_71 = _GEN_0 == 10'h63; + wire _csignals_T_73 = _GEN_0 == 10'hE3; + wire _csignals_T_75 = _GEN_0 == 10'h263; + wire _csignals_T_77 = _GEN_0 == 10'h2E3; + wire _csignals_T_79 = _GEN_0 == 10'h363; + wire _csignals_T_81 = _GEN_0 == 10'h3E3; + wire _csignals_T_83 = io_inst_bits[6:0] == 7'h37; + wire _csignals_T_85 = io_inst_bits[6:0] == 7'h17; + wire _csignals_T_87 = io_inst_bits[6:0] == 7'h6F; + wire _csignals_T_2589 = _GEN_0 == 10'hF; + wire _csignals_T_91 = io_inst_bits == 32'h73; + wire _csignals_T_93 = io_inst_bits == 32'h30200073; + wire _csignals_T_95 = io_inst_bits == 32'h100073; + wire _csignals_T_97 = _GEN == 17'h3B; + wire _csignals_T_99 = _GEN == 17'h803B; + wire _csignals_T_101 = _GEN == 17'hBB; + wire _csignals_T_103 = _GEN == 17'h2BB; + wire _csignals_T_105 = _GEN == 17'h82BB; + wire _csignals_T_107 = _GEN_0 == 10'h1B; + wire _csignals_T_109 = _GEN == 17'h9B; + wire _csignals_T_111 = _GEN == 17'h29B; + wire _csignals_T_1359 = _GEN == 17'h829B; + wire _csignals_T_2228 = _GEN_0 == 10'h183; + wire _csignals_T_117 = _GEN_0 == 10'h303; + wire _csignals_T_119 = _GEN_0 == 10'h1A3; + wire _csignals_T_121 = _GEN_0 == 10'hF3; + wire _csignals_T_123 = _GEN_0 == 10'h173; + wire _csignals_T_125 = _GEN_0 == 10'h1F3; + wire _csignals_T_127 = _GEN_0 == 10'h2F3; + wire _csignals_T_129 = _GEN_0 == 10'h373; + wire _csignals_T_2394 = _GEN_0 == 10'h3F3; + wire _csignals_T_133 = _GEN == 17'h433; + wire _csignals_T_135 = _GEN == 17'h4B3; + wire _csignals_T_137 = _GEN == 17'h533; + wire _csignals_T_139 = _GEN == 17'h5B3; + wire _csignals_T_1519 = _GEN == 17'h43B; + wire _csignals_T_143 = + {io_inst_bits[31], io_inst_bits[14:12], io_inst_bits[6:0]} == 11'h3D7; + wire _csignals_T_145 = + {io_inst_bits[31:30], io_inst_bits[14:12], io_inst_bits[6:0]} == 12'hFD7; + wire _csignals_T_147 = _GEN == 17'h103D7; + wire [20:0] _GEN_2 = + {io_inst_bits[31:26], io_inst_bits[24:20], io_inst_bits[14:12], io_inst_bits[6:0]}; + wire _csignals_T_149 = _GEN_2 == 21'h7; + wire _csignals_T_151 = _GEN_2 == 21'h287; + wire _csignals_T_153 = _GEN_2 == 21'h307; + wire _csignals_T_155 = _GEN_2 == 21'h387; + wire _csignals_T_157 = _GEN_2 == 21'h27; + wire _csignals_T_159 = _GEN_2 == 21'h2A7; + wire _csignals_T_161 = _GEN_2 == 21'h327; + wire _csignals_T_163 = _GEN_2 == 21'h3A7; + wire _csignals_T_165 = _GEN_1 == 16'h807; + wire _csignals_T_167 = _GEN_1 == 16'hA87; + wire _csignals_T_169 = _GEN_1 == 16'hB07; + wire _csignals_T_171 = _GEN_1 == 16'hB87; + wire _csignals_T_173 = _GEN_1 == 16'h827; + wire _csignals_T_175 = _GEN_1 == 16'hAA7; + wire _csignals_T_177 = _GEN_1 == 16'hB27; + wire _csignals_T_978 = _GEN_1 == 16'hBA7; + wire _csignals_T_181 = _GEN_1 == 16'hC07; + wire _csignals_T_183 = _GEN_1 == 16'hE87; + wire _csignals_T_185 = _GEN_1 == 16'hF07; + wire _csignals_T_187 = _GEN_1 == 16'hF87; + wire _csignals_T_189 = _GEN_1 == 16'hC27; + wire _csignals_T_191 = _GEN_1 == 16'hEA7; + wire _csignals_T_193 = _GEN_1 == 16'hF27; + wire _csignals_T_1144 = _GEN_1 == 16'hFA7; + wire _csignals_T_197 = _GEN_1 == 16'h57; + wire _csignals_T_199 = _GEN_1 == 16'h257; + wire _csignals_T_201 = _GEN_1 == 16'h1D7; + wire _csignals_T_203 = _GEN_1 == 16'h857; + wire _csignals_T_205 = _GEN_1 == 16'hA57; + wire _csignals_T_207 = _GEN_1 == 16'hE57; + wire _csignals_T_209 = _GEN_1 == 16'hDD7; + wire _csignals_T_211 = _GEN_1 == 16'h2457; + wire _csignals_T_213 = _GEN_1 == 16'h2657; + wire _csignals_T_215 = _GEN_1 == 16'h25D7; + wire _csignals_T_217 = _GEN_1 == 16'h2857; + wire _csignals_T_219 = _GEN_1 == 16'h2A57; + wire _csignals_T_221 = _GEN_1 == 16'h29D7; + wire _csignals_T_223 = _GEN_1 == 16'h2C57; + wire _csignals_T_225 = _GEN_1 == 16'h2E57; + wire _csignals_T_227 = _GEN_1 == 16'h2DD7; + wire _csignals_T_229 = _GEN_1 == 16'h6057; + wire _csignals_T_231 = _GEN_1 == 16'h6257; + wire _csignals_T_233 = _GEN_1 == 16'h61D7; + wire _csignals_T_235 = _GEN_1 == 16'h6457; + wire _csignals_T_237 = _GEN_1 == 16'h6657; + wire _csignals_T_239 = _GEN_1 == 16'h65D7; + wire _csignals_T_241 = _GEN_1 == 16'h6857; + wire _csignals_T_243 = _GEN_1 == 16'h6A57; + wire _csignals_T_245 = _GEN_1 == 16'h6C57; + wire _csignals_T_247 = _GEN_1 == 16'h6E57; + wire _csignals_T_249 = _GEN_1 == 16'h7057; + wire _csignals_T_251 = _GEN_1 == 16'h7257; + wire _csignals_T_253 = _GEN_1 == 16'h71D7; + wire _csignals_T_255 = _GEN_1 == 16'h7457; + wire _csignals_T_257 = _GEN_1 == 16'h7657; + wire _csignals_T_259 = _GEN_1 == 16'h75D7; + wire _csignals_T_261 = _GEN_1 == 16'h7A57; + wire _csignals_T_263 = _GEN_1 == 16'h79D7; + wire _csignals_T_265 = _GEN_1 == 16'h7E57; + wire _csignals_T_267 = _GEN_1 == 16'h7DD7; + wire _csignals_T_269 = _GEN_1 == 16'h1057; + wire _csignals_T_271 = _GEN_1 == 16'h1257; + wire _csignals_T_273 = _GEN_1 == 16'h1457; + wire _csignals_T_275 = _GEN_1 == 16'h1657; + wire _csignals_T_277 = _GEN_1 == 16'h1857; + wire _csignals_T_279 = _GEN_1 == 16'h1A57; + wire _csignals_T_281 = _GEN_1 == 16'h1C57; + wire _csignals_T_283 = _GEN_1 == 16'h1E57; + wire _csignals_T_285 = _GEN == 17'hB857; + wire _csignals_T_287 = _GEN == 17'hBA57; + wire _csignals_T_289 = _GEN == 17'hB9D7; + wire [21:0] _GEN_3 = {io_inst_bits[31:20], io_inst_bits[14:12], io_inst_bits[6:0]}; + wire _csignals_T_291 = _GEN_3 == 22'h178057; + wire _csignals_T_293 = _GEN_3 == 22'h178257; + wire _csignals_T_295 = _GEN_3 == 22'h1781D7; + wire _csignals_T_297 = _GEN == 17'hCD57; + wire _csignals_T_299 = _GEN == 17'hED57; + wire _csignals_T_301 = _GEN == 17'hC557; + wire _csignals_T_303 = _GEN == 17'hDD57; + wire _csignals_T_305 = _GEN == 17'hD557; + wire _csignals_T_307 = _GEN == 17'hF557; + wire _csignals_T_309 = _GEN == 17'hE557; + wire _csignals_T_311 = _GEN == 17'hFD57; + wire _csignals_T_313 = _GEN_1 == 16'h9557; + wire _csignals_T_315 = _GEN_1 == 16'h9757; + wire _csignals_T_317 = _GEN_1 == 16'h9D57; + wire _csignals_T_319 = _GEN_1 == 16'h9F57; + wire _csignals_T_321 = _GEN_1 == 16'h9157; + wire _csignals_T_323 = _GEN_1 == 16'h9357; + wire _csignals_T_325 = _GEN_1 == 16'h9957; + wire _csignals_T_327 = _GEN_1 == 16'h9B57; + wire _csignals_T_329 = _GEN_1 == 16'hB557; + wire _csignals_T_331 = _GEN_1 == 16'hB757; + wire _csignals_T_333 = _GEN_1 == 16'hBD57; + wire _csignals_T_335 = _GEN_1 == 16'hBF57; + wire _csignals_T_337 = _GEN_1 == 16'hA557; + wire _csignals_T_339 = _GEN_1 == 16'hA757; + wire _csignals_T_341 = _GEN_1 == 16'hAD57; + wire _csignals_T_343 = _GEN_1 == 16'hAF57; + wire _csignals_T_345 = _GEN_1 == 16'h157; + wire _csignals_T_347 = _GEN_1 == 16'h1957; + wire _csignals_T_349 = _GEN_1 == 16'h1D57; + wire _csignals_T_351 = _GEN_1 == 16'h1157; + wire _csignals_T_353 = _GEN_1 == 16'h1557; + wire _csignals_T_355 = _GEN_1 == 16'h557; + wire _csignals_T_357 = _GEN_1 == 16'h957; + wire _csignals_T_359 = _GEN_1 == 16'hD57; + wire _csignals_T_361 = + {io_inst_bits[31:25], io_inst_bits[19:12], io_inst_bits[6:0]} == 22'h108157; + wire _csignals_T_2626 = _GEN_3 == 22'h108357; + wire _GEN_4 = + _csignals_T_345 | _csignals_T_347 | _csignals_T_349 | _csignals_T_351 + | _csignals_T_353 | _csignals_T_355 | _csignals_T_357 | _csignals_T_359 + | _csignals_T_361; + wire _GEN_5 = + _csignals_T_143 | _csignals_T_145 | _csignals_T_147 | _csignals_T_149 + | _csignals_T_151 | _csignals_T_153 | _csignals_T_155 | _csignals_T_157 + | _csignals_T_159 | _csignals_T_161 | _csignals_T_163 | _csignals_T_165 + | _csignals_T_167 | _csignals_T_169 | _csignals_T_171 | _csignals_T_173 + | _csignals_T_175 | _csignals_T_177 | _csignals_T_978 | _csignals_T_181 + | _csignals_T_183 | _csignals_T_185 | _csignals_T_187 | _csignals_T_189 + | _csignals_T_191 | _csignals_T_193 | _csignals_T_1144 | _csignals_T_197 + | _csignals_T_199 | _csignals_T_201 | _csignals_T_203 | _csignals_T_205 + | _csignals_T_207 | _csignals_T_209 | _csignals_T_211 | _csignals_T_213 + | _csignals_T_215 | _csignals_T_217 | _csignals_T_219 | _csignals_T_221 + | _csignals_T_223 | _csignals_T_225 | _csignals_T_227 | _csignals_T_229 + | _csignals_T_231 | _csignals_T_233 | _csignals_T_235 | _csignals_T_237 + | _csignals_T_239 | _csignals_T_241 | _csignals_T_243 | _csignals_T_245 + | _csignals_T_247 | _csignals_T_249 | _csignals_T_251 | _csignals_T_253 + | _csignals_T_255 | _csignals_T_257 | _csignals_T_259 | _csignals_T_261 + | _csignals_T_263 | _csignals_T_265 | _csignals_T_267 | _csignals_T_269 + | _csignals_T_271 | _csignals_T_273 | _csignals_T_275 | _csignals_T_277 + | _csignals_T_279 | _csignals_T_281 | _csignals_T_283 | _csignals_T_285 + | _csignals_T_287 | _csignals_T_289 | _csignals_T_291 | _csignals_T_293 + | _csignals_T_295 | _csignals_T_297 | _csignals_T_299 | _csignals_T_301 + | _csignals_T_303 | _csignals_T_305 | _csignals_T_307 | _csignals_T_309 + | _csignals_T_311 | _csignals_T_313 | _csignals_T_315 | _csignals_T_317 + | _csignals_T_319 | _csignals_T_321 | _csignals_T_323 | _csignals_T_325 + | _csignals_T_327 | _csignals_T_329 | _csignals_T_331 | _csignals_T_333 + | _csignals_T_335 | _csignals_T_337 | _csignals_T_339 | _csignals_T_341 + | _csignals_T_343 | _GEN_4; + wire _GEN_6 = _csignals_T_83 | _csignals_T_85; + wire _GEN_7 = _csignals_T_65 | _csignals_T_67 | _csignals_T_69; + wire _GEN_8 = + _csignals_T_53 | _csignals_T_55 | _csignals_T_57 | _csignals_T_59 | _csignals_T_61; + wire _GEN_9 = + _csignals_T_189 | _csignals_T_191 | _csignals_T_193 | _csignals_T_1144; + wire _GEN_10 = _csignals_T_127 | _csignals_T_129 | _csignals_T_2394; + wire _GEN_11 = + _csignals_T_2589 | _csignals_T_91 | _csignals_T_93 | _csignals_T_95; + wire _GEN_12 = _csignals_T_87 | _GEN_11; + wire _GEN_13 = _csignals_T_79 | _csignals_T_81; + wire _GEN_14 = + _csignals_T_71 | _csignals_T_73 | _csignals_T_75 | _csignals_T_77 | _GEN_13; + wire _GEN_15 = _csignals_T_65 | _csignals_T_67 | _csignals_T_69 | _GEN_14; + wire _GEN_16 = + _csignals_T_157 | _csignals_T_159 | _csignals_T_161 | _csignals_T_163; + wire _GEN_17 = + _csignals_T_133 | _csignals_T_135 | _csignals_T_137 | _csignals_T_139 + | _csignals_T_1519; + wire _GEN_18 = _csignals_T_121 | _csignals_T_123 | _csignals_T_125 | _GEN_10; + wire _GEN_19 = _csignals_T_2228 | _csignals_T_117; + wire _GEN_20 = _csignals_T_103 | _csignals_T_105; + wire _GEN_21 = _csignals_T_143 | _csignals_T_145 | _csignals_T_147; + wire _GEN_22 = _csignals_T_2228 | _csignals_T_117 | _csignals_T_119; + wire _GEN_23 = _csignals_T_111 | _csignals_T_1359; + wire _GEN_24 = _csignals_T_49 | _csignals_T_51; + wire _GEN_25 = + _csignals_T_97 | _csignals_T_99 | _csignals_T_101 | _csignals_T_103 | _csignals_T_105 + | _csignals_T_107 | _csignals_T_109 | _GEN_23; + wire _GEN_26 = + _csignals_T_15 | _csignals_T_17 | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 + | _csignals_T_25 | _csignals_T_27 | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 + | _csignals_T_35 | _csignals_T_37 | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 + | _csignals_T_45 | _csignals_T_47 | _GEN_24; + wire _GEN_27 = + _csignals_T_71 | _csignals_T_73 | _csignals_T_75 | _csignals_T_77 | _csignals_T_79 + | _csignals_T_81 | _csignals_T_83 | _csignals_T_85 | _csignals_T_87 | _csignals_T_2589 + | _csignals_T_91 | _csignals_T_93 | _csignals_T_95 | _GEN_25; + assign io_out_valid = + _csignals_T_15 | _csignals_T_17 | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 + | _csignals_T_25 | _csignals_T_27 | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 + | _csignals_T_35 | _csignals_T_37 | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 + | _csignals_T_45 | _csignals_T_47 | _csignals_T_49 | _csignals_T_51 | _csignals_T_53 + | _csignals_T_55 | _csignals_T_57 | _csignals_T_59 | _csignals_T_61 | _csignals_T_63 + | _csignals_T_65 | _csignals_T_67 | _csignals_T_69 | _csignals_T_71 | _csignals_T_73 + | _csignals_T_75 | _csignals_T_77 | _csignals_T_79 | _csignals_T_81 | _csignals_T_83 + | _csignals_T_85 | _csignals_T_87 | _csignals_T_2589 | _csignals_T_91 | _csignals_T_93 + | _csignals_T_95 | _csignals_T_97 | _csignals_T_99 | _csignals_T_101 | _csignals_T_103 + | _csignals_T_105 | _csignals_T_107 | _csignals_T_109 | _csignals_T_111 + | _csignals_T_1359 | _csignals_T_2228 | _csignals_T_117 | _csignals_T_119 + | _csignals_T_121 | _csignals_T_123 | _csignals_T_125 | _csignals_T_127 + | _csignals_T_129 | _csignals_T_2394 | _csignals_T_133 | _csignals_T_135 + | _csignals_T_137 | _csignals_T_139 | _csignals_T_1519 | _GEN_5 | _csignals_T_2626; + assign io_out_bits_branch = + _csignals_T_15 | _csignals_T_17 | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 + | _csignals_T_25 | _csignals_T_27 | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 + | _csignals_T_35 | _csignals_T_37 | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 + | _csignals_T_45 | _csignals_T_47 | _csignals_T_49 | _csignals_T_51 | _GEN_8 + ? 4'h0 + : _csignals_T_63 + ? 4'h8 + : _GEN_7 + ? 4'h0 + : _csignals_T_71 + ? 4'h1 + : _csignals_T_73 + ? 4'h2 + : _csignals_T_75 + ? 4'h3 + : _csignals_T_77 + ? 4'h4 + : _csignals_T_79 + ? 4'h5 + : _csignals_T_81 + ? 4'h6 + : _GEN_6 + ? 4'h0 + : _csignals_T_87 + ? 4'h7 + : _csignals_T_2589 + ? 4'h0 + : _csignals_T_91 + ? 4'h9 + : _csignals_T_93 ? 4'hA : 4'h0; + assign io_out_bits_value1 = + _csignals_T_15 | _csignals_T_17 | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 + | _csignals_T_25 | _csignals_T_27 | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 + | _csignals_T_35 | _csignals_T_37 | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 + | _csignals_T_45 | _csignals_T_47 | _csignals_T_49 | _csignals_T_51 | _csignals_T_53 + | _csignals_T_55 | _csignals_T_57 | _csignals_T_59 | _csignals_T_61 | _csignals_T_63 + | _GEN_15 + ? 2'h1 + : _GEN_6 + ? 2'h2 + : _GEN_12 + ? 2'h0 + : _csignals_T_97 | _csignals_T_99 | _csignals_T_101 | _csignals_T_103 + | _csignals_T_105 | _csignals_T_107 | _csignals_T_109 | _csignals_T_111 + | _csignals_T_1359 | _csignals_T_2228 | _csignals_T_117 | _csignals_T_119 + | _csignals_T_121 | _csignals_T_123 | _csignals_T_125 + ? 2'h1 + : _GEN_10 + ? 2'h3 + : _csignals_T_133 | _csignals_T_135 | _csignals_T_137 + | _csignals_T_139 | _csignals_T_1519 | _csignals_T_143 + ? 2'h1 + : _csignals_T_145 + ? 2'h3 + : _csignals_T_147 | _csignals_T_149 | _csignals_T_151 + | _csignals_T_153 | _csignals_T_155 | _csignals_T_157 + | _csignals_T_159 | _csignals_T_161 | _csignals_T_163 + | _csignals_T_165 | _csignals_T_167 | _csignals_T_169 + | _csignals_T_171 | _csignals_T_173 | _csignals_T_175 + | _csignals_T_177 | _csignals_T_978 | _csignals_T_181 + | _csignals_T_183 | _csignals_T_185 | _csignals_T_187 + | _GEN_9 + ? 2'h1 + : _csignals_T_197 + ? 2'h0 + : _csignals_T_199 + ? 2'h1 + : _csignals_T_201 + ? 2'h3 + : _csignals_T_203 + ? 2'h0 + : _csignals_T_205 | _csignals_T_207 + ? 2'h1 + : _csignals_T_209 + ? 2'h3 + : _csignals_T_211 + ? 2'h0 + : _csignals_T_213 + ? 2'h1 + : _csignals_T_215 + ? 2'h3 + : _csignals_T_217 + ? 2'h0 + : _csignals_T_219 + ? 2'h1 + : _csignals_T_221 + ? 2'h3 + : _csignals_T_223 + ? 2'h0 + : _csignals_T_225 + ? 2'h1 + : _csignals_T_227 + ? 2'h3 + : _csignals_T_229 + ? 2'h0 + : _csignals_T_231 + ? 2'h1 + : _csignals_T_233 + ? 2'h3 + : _csignals_T_235 + ? 2'h0 + : _csignals_T_237 + ? 2'h1 + : _csignals_T_239 + ? 2'h3 + : _csignals_T_241 + ? 2'h0 + : _csignals_T_243 + ? 2'h1 + : _csignals_T_245 + ? 2'h0 + : _csignals_T_247 + ? 2'h1 + : _csignals_T_249 + ? 2'h0 + : _csignals_T_251 + ? 2'h1 + : _csignals_T_253 + ? 2'h3 + : _csignals_T_255 + ? 2'h0 + : _csignals_T_257 + ? 2'h1 + : _csignals_T_259 + ? 2'h3 + : _csignals_T_261 + ? 2'h1 + : _csignals_T_263 + ? 2'h3 + : _csignals_T_265 + ? 2'h1 + : _csignals_T_267 + ? 2'h3 + : _csignals_T_269 + ? 2'h0 + : _csignals_T_271 + ? 2'h1 + : _csignals_T_273 + ? 2'h0 + : _csignals_T_275 + ? 2'h1 + : _csignals_T_277 + ? 2'h0 + : _csignals_T_279 + ? 2'h1 + : _csignals_T_281 + ? 2'h0 + : _csignals_T_283 + ? 2'h1 + : _csignals_T_285 + ? 2'h0 + : _csignals_T_287 + ? 2'h1 + : _csignals_T_289 + ? 2'h3 + : _csignals_T_291 + ? 2'h0 + : _csignals_T_293 + ? 2'h1 + : _csignals_T_295 + ? 2'h3 + : {1'h0, + ~(_csignals_T_297 + | _csignals_T_299 + | _csignals_T_301 + | _csignals_T_303 + | _csignals_T_305 + | _csignals_T_307 + | _csignals_T_309 + | _csignals_T_311 + | _csignals_T_313) + & (_csignals_T_315 + | ~_csignals_T_317 + & (_csignals_T_319 + | ~_csignals_T_321 + & (_csignals_T_323 + | ~_csignals_T_325 + & (_csignals_T_327 + | ~_csignals_T_329 + & (_csignals_T_331 + | ~_csignals_T_333 + & (_csignals_T_335 + | ~_csignals_T_337 + & (_csignals_T_339 + | ~_csignals_T_341 + & (_csignals_T_343 + | ~_GEN_4 + & _csignals_T_2626))))))))}; + assign io_out_bits_value2 = + _csignals_T_15 | _csignals_T_17 | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 + | _csignals_T_25 | _csignals_T_27 | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 + ? 3'h1 + : _csignals_T_35 | _csignals_T_37 | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 + | _csignals_T_45 | _csignals_T_47 | _csignals_T_49 | _csignals_T_51 + | _csignals_T_53 | _csignals_T_55 | _csignals_T_57 | _csignals_T_59 + | _csignals_T_61 | _csignals_T_63 + ? 3'h2 + : _GEN_7 + ? 3'h3 + : _GEN_14 + ? 3'h1 + : _csignals_T_83 + ? 3'h0 + : _csignals_T_85 + ? 3'h4 + : {1'h0, + _GEN_12 + ? 2'h0 + : _csignals_T_97 | _csignals_T_99 | _csignals_T_101 + | _GEN_20 + ? 2'h1 + : _csignals_T_107 | _csignals_T_109 | _csignals_T_111 + | _csignals_T_1359 | _GEN_19 + ? 2'h2 + : _csignals_T_119 + ? 2'h3 + : _GEN_18 + ? 2'h0 + : _GEN_17 + ? 2'h1 + : _csignals_T_143 | _csignals_T_145 + ? 2'h0 + : _csignals_T_147 + ? 2'h1 + : _csignals_T_149 + | _csignals_T_151 + | _csignals_T_153 + | _csignals_T_155 | _GEN_16 + ? 2'h2 + : {1'h0, + _csignals_T_165 + | _csignals_T_167 + | _csignals_T_169 + | _csignals_T_171 + | _csignals_T_173 + | _csignals_T_175 + | _csignals_T_177 + | _csignals_T_978}}; + assign io_out_bits_arithmetic_funct = + _csignals_T_15 | _csignals_T_17 + ? 4'h1 + : _csignals_T_19 + ? 4'h2 + : _csignals_T_21 + ? 4'h3 + : _csignals_T_23 + ? 4'h4 + : _csignals_T_25 + ? 4'h5 + : _csignals_T_27 | _csignals_T_29 + ? 4'h6 + : _csignals_T_31 + ? 4'h7 + : _csignals_T_33 + ? 4'h8 + : _csignals_T_35 + ? 4'h1 + : _csignals_T_37 + ? 4'h3 + : _csignals_T_39 + ? 4'h4 + : _csignals_T_41 + ? 4'h5 + : _csignals_T_43 + ? 4'h7 + : _csignals_T_45 + ? 4'h8 + : _csignals_T_47 + ? 4'h2 + : _GEN_24 + ? 4'h6 + : _csignals_T_53 + | _csignals_T_55 + | _csignals_T_57 + | _csignals_T_59 + | _csignals_T_61 + | _csignals_T_63 + | _GEN_7 + ? 4'h1 + : _csignals_T_71 + | _csignals_T_73 + ? 4'h5 + : _csignals_T_75 + | _csignals_T_77 + ? 4'h3 + : _GEN_13 + ? 4'h4 + : _GEN_6 + ? 4'h1 + : _GEN_12 + ? 4'h0 + : _csignals_T_97 + | _csignals_T_99 + ? 4'h1 + : _csignals_T_101 + ? 4'h2 + : _GEN_20 + ? 4'h6 + : _csignals_T_107 + ? 4'h1 + : _csignals_T_109 + ? 4'h2 + : _GEN_23 + ? 4'h6 + : _GEN_22 + ? 4'h1 + : _GEN_18 + ? 4'h0 + : _csignals_T_133 + ? 4'h9 + : _csignals_T_135 + ? 4'hA + : _csignals_T_137 + ? 4'hB + : _csignals_T_139 + ? 4'hC + : _csignals_T_1519 + ? 4'h9 + : {3'h0, + ~_GEN_21 + & (_csignals_T_149 + | _csignals_T_151 + | _csignals_T_153 + | _csignals_T_155 + | _csignals_T_157 + | _csignals_T_159 + | _csignals_T_161 + | _csignals_T_163 + | _csignals_T_165 + | _csignals_T_167 + | _csignals_T_169 + | _csignals_T_171 + | _csignals_T_173 + | _csignals_T_175 + | _csignals_T_177 + | _csignals_T_978 + | _csignals_T_181 + | _csignals_T_183 + | _csignals_T_185 + | _csignals_T_187 + | _csignals_T_189 + | _csignals_T_191 + | _csignals_T_193 + | _csignals_T_1144)}; + assign io_out_bits_alu_flag = + ~_csignals_T_15 + & (_csignals_T_17 + | ~(_csignals_T_19 | _csignals_T_21 | _csignals_T_23 | _csignals_T_25 + | _csignals_T_27) + & (_csignals_T_29 + | ~(_csignals_T_31 | _csignals_T_33 | _csignals_T_35 | _csignals_T_37 + | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 | _csignals_T_45 + | _csignals_T_47 | _csignals_T_49) + & (_csignals_T_51 + | ~(_csignals_T_53 | _csignals_T_55 | _csignals_T_57 | _csignals_T_59 + | _csignals_T_61 | _csignals_T_63 | _csignals_T_65 | _csignals_T_67 + | _csignals_T_69 | _csignals_T_71 | _csignals_T_73 | _csignals_T_75 + | _csignals_T_77 | _csignals_T_79 | _csignals_T_81 | _csignals_T_83 + | _csignals_T_85 | _csignals_T_87 | _csignals_T_2589 | _csignals_T_91 + | _csignals_T_93 | _csignals_T_95 | _csignals_T_97) + & (_csignals_T_99 | ~(_csignals_T_101 | _csignals_T_103) + & (_csignals_T_105 + | ~(_csignals_T_107 | _csignals_T_109 | _csignals_T_111) + & _csignals_T_1359))))); + assign io_out_bits_op32 = + ~(_csignals_T_15 | _csignals_T_17 | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 + | _csignals_T_25 | _csignals_T_27 | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 + | _csignals_T_35 | _csignals_T_37 | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 + | _csignals_T_45 | _csignals_T_47 | _csignals_T_49 | _csignals_T_51 | _csignals_T_53 + | _csignals_T_55 | _csignals_T_57 | _csignals_T_59 | _csignals_T_61 | _csignals_T_63 + | _csignals_T_65 | _csignals_T_67 | _csignals_T_69 | _csignals_T_71 | _csignals_T_73 + | _csignals_T_75 | _csignals_T_77 | _csignals_T_79 | _csignals_T_81 | _csignals_T_83 + | _csignals_T_85 | _GEN_12) + & (_GEN_25 + | ~(_csignals_T_2228 | _csignals_T_117 | _csignals_T_119 | _csignals_T_121 + | _csignals_T_123 | _csignals_T_125 | _csignals_T_127 | _csignals_T_129 + | _csignals_T_2394 | _csignals_T_133 | _csignals_T_135 | _csignals_T_137 + | _csignals_T_139) & _csignals_T_1519); + assign io_out_bits_writeback_selector = + _GEN_26 + ? 3'h2 + : _GEN_8 + ? 3'h4 + : _csignals_T_63 + ? 3'h1 + : _GEN_15 + ? 3'h0 + : _GEN_6 + ? 3'h2 + : _csignals_T_87 + ? 3'h1 + : _GEN_11 + ? 3'h0 + : _GEN_25 + ? 3'h2 + : _GEN_19 + ? 3'h4 + : _csignals_T_119 + ? 3'h0 + : _GEN_18 + ? 3'h3 + : _GEN_17 + ? 3'h2 + : _GEN_21 + | ~(_csignals_T_149 | _csignals_T_151 + | _csignals_T_153 + | _csignals_T_155 + | _csignals_T_157 + | _csignals_T_159 + | _csignals_T_161 + | _csignals_T_163 + | _csignals_T_165 + | _csignals_T_167 + | _csignals_T_169 + | _csignals_T_171 + | _csignals_T_173 + | _csignals_T_175 + | _csignals_T_177 + | _csignals_T_978 + | _csignals_T_181 + | _csignals_T_183 + | _csignals_T_185 + | _csignals_T_187 + | _csignals_T_189 + | _csignals_T_191 + | _csignals_T_193 + | _csignals_T_1144 + | _csignals_T_197 + | _csignals_T_199 + | _csignals_T_201 + | _csignals_T_203 + | _csignals_T_205 + | _csignals_T_207 + | _csignals_T_209 + | _csignals_T_211 + | _csignals_T_213 + | _csignals_T_215 + | _csignals_T_217 + | _csignals_T_219 + | _csignals_T_221 + | _csignals_T_223 + | _csignals_T_225 + | _csignals_T_227 + | _csignals_T_229 + | _csignals_T_231 + | _csignals_T_233 + | _csignals_T_235 + | _csignals_T_237 + | _csignals_T_239 + | _csignals_T_241 + | _csignals_T_243 + | _csignals_T_245 + | _csignals_T_247 + | _csignals_T_249 + | _csignals_T_251 + | _csignals_T_253 + | _csignals_T_255 + | _csignals_T_257 + | _csignals_T_259 + | _csignals_T_261 + | _csignals_T_263 + | _csignals_T_265 + | _csignals_T_267 + | _csignals_T_269 + | _csignals_T_271 + | _csignals_T_273 + | _csignals_T_275 + | _csignals_T_277 + | _csignals_T_279 + | _csignals_T_281 + | _csignals_T_283 + | _csignals_T_285 + | _csignals_T_287 + | _csignals_T_289 + | _csignals_T_291 + | _csignals_T_293 + | _csignals_T_295 + | _csignals_T_297 + | _csignals_T_299 + | _csignals_T_301 + | _csignals_T_303 + | _csignals_T_305 + | _csignals_T_307 + | _csignals_T_309 + | _csignals_T_311 + | _csignals_T_313 + | _csignals_T_315 + | _csignals_T_317 + | _csignals_T_319 + | _csignals_T_321 + | _csignals_T_323 + | _csignals_T_325 + | _csignals_T_327 + | _csignals_T_329 + | _csignals_T_331 + | _csignals_T_333 + | _csignals_T_335 + | _csignals_T_337 + | _csignals_T_339 + | _csignals_T_341 + | _csignals_T_343 + | _csignals_T_345 + | _csignals_T_347 + | _csignals_T_349 + | _csignals_T_351 + | _csignals_T_353 + | _csignals_T_355 + | _csignals_T_357 + | _csignals_T_359 + | ~_csignals_T_361) + ? 3'h5 + : 3'h0; + assign io_out_bits_memory_function = + _GEN_26 + ? 2'h0 + : _GEN_8 + ? 2'h1 + : _csignals_T_63 + ? 2'h0 + : _GEN_7 + ? 2'h2 + : _GEN_27 + ? 2'h0 + : _GEN_19 + ? 2'h1 + : _csignals_T_119 + ? 2'h2 + : _csignals_T_121 | _csignals_T_123 | _csignals_T_125 + | _csignals_T_127 | _csignals_T_129 | _csignals_T_2394 + | _csignals_T_133 | _csignals_T_135 | _csignals_T_137 + | _csignals_T_139 | _csignals_T_1519 | _GEN_21 + ? 2'h0 + : _csignals_T_149 | _csignals_T_151 | _csignals_T_153 + | _csignals_T_155 + ? 2'h1 + : _GEN_16 + ? 2'h2 + : _csignals_T_165 | _csignals_T_167 + | _csignals_T_169 | _csignals_T_171 + ? 2'h1 + : _csignals_T_173 | _csignals_T_175 + | _csignals_T_177 | _csignals_T_978 + ? 2'h2 + : _csignals_T_181 | _csignals_T_183 + | _csignals_T_185 | _csignals_T_187 + ? 2'h1 + : {_GEN_9, 1'h0}; + assign io_out_bits_memory_length = + _csignals_T_15 | _csignals_T_17 | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 + | _csignals_T_25 | _csignals_T_27 | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 + | _csignals_T_35 | _csignals_T_37 | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 + | _csignals_T_45 | _csignals_T_47 | _csignals_T_49 | _csignals_T_51 | _csignals_T_53 + ? 2'h0 + : _csignals_T_55 + ? 2'h1 + : _csignals_T_57 + ? 2'h2 + : _csignals_T_59 + ? 2'h0 + : _csignals_T_61 + ? 2'h1 + : _csignals_T_63 | _csignals_T_65 + ? 2'h0 + : _csignals_T_67 + ? 2'h1 + : _csignals_T_69 + ? 2'h2 + : _GEN_27 + ? 2'h0 + : _csignals_T_2228 + ? 2'h3 + : _csignals_T_117 + ? 2'h2 + : _csignals_T_119 + ? 2'h3 + : _csignals_T_121 | _csignals_T_123 + | _csignals_T_125 | _csignals_T_127 + | _csignals_T_129 | _csignals_T_2394 + | _csignals_T_133 | _csignals_T_135 + | _csignals_T_137 | _csignals_T_139 + | _csignals_T_1519 | _csignals_T_143 + | _csignals_T_145 | _csignals_T_147 + | _csignals_T_149 + ? 2'h0 + : _csignals_T_151 + ? 2'h1 + : _csignals_T_153 + ? 2'h2 + : _csignals_T_155 + ? 2'h3 + : _csignals_T_157 + ? 2'h0 + : _csignals_T_159 + ? 2'h1 + : _csignals_T_161 + ? 2'h2 + : _csignals_T_163 + ? 2'h3 + : _csignals_T_165 + ? 2'h0 + : _csignals_T_167 + ? 2'h1 + : _csignals_T_169 + ? 2'h2 + : _csignals_T_171 + ? 2'h3 + : _csignals_T_173 + ? 2'h0 + : _csignals_T_175 + ? 2'h1 + : _csignals_T_177 + ? 2'h2 + : _csignals_T_978 + ? 2'h3 + : _csignals_T_181 + ? 2'h0 + : _csignals_T_183 + ? 2'h1 + : _csignals_T_185 + ? 2'h2 + : _csignals_T_187 + ? 2'h3 + : _csignals_T_189 + ? 2'h0 + : _csignals_T_191 + ? 2'h1 + : _csignals_T_193 + ? 2'h2 + : {2{_csignals_T_1144}}; + assign io_out_bits_mem_sext = + ~_GEN_26 + & (_csignals_T_53 | _csignals_T_55 | _csignals_T_57 + | ~(_csignals_T_59 | _csignals_T_61 | _csignals_T_63 | _csignals_T_65 + | _csignals_T_67 | _csignals_T_69 | _GEN_27) & _csignals_T_2228); + assign io_out_bits_csr_funct = + _csignals_T_15 | _csignals_T_17 | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 + | _csignals_T_25 | _csignals_T_27 | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 + | _csignals_T_35 | _csignals_T_37 | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 + | _csignals_T_45 | _csignals_T_47 | _csignals_T_49 | _csignals_T_51 | _csignals_T_53 + | _csignals_T_55 | _csignals_T_57 | _csignals_T_59 | _csignals_T_61 | _csignals_T_63 + | _csignals_T_65 | _csignals_T_67 | _csignals_T_69 | _csignals_T_71 | _csignals_T_73 + | _csignals_T_75 | _csignals_T_77 | _csignals_T_79 | _csignals_T_81 | _csignals_T_83 + | _csignals_T_85 | _csignals_T_87 | _csignals_T_2589 + ? 3'h0 + : _csignals_T_91 + ? 3'h5 + : _csignals_T_93 + ? 3'h4 + : {1'h0, + _csignals_T_95 | _csignals_T_97 | _csignals_T_99 | _csignals_T_101 + | _csignals_T_103 | _csignals_T_105 | _csignals_T_107 | _csignals_T_109 + | _csignals_T_111 | _csignals_T_1359 | _GEN_22 + ? 2'h0 + : _csignals_T_121 + ? 2'h3 + : _csignals_T_123 + ? 2'h2 + : _csignals_T_125 + ? 2'h1 + : _csignals_T_127 + ? 2'h3 + : _csignals_T_129 ? 2'h2 : {1'h0, _csignals_T_2394}}; + assign io_out_bits_fence = + ~(_csignals_T_15 | _csignals_T_17 | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 + | _csignals_T_25 | _csignals_T_27 | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 + | _csignals_T_35 | _csignals_T_37 | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 + | _csignals_T_45 | _csignals_T_47 | _csignals_T_49 | _csignals_T_51 | _csignals_T_53 + | _csignals_T_55 | _csignals_T_57 | _csignals_T_59 | _csignals_T_61 | _csignals_T_63 + | _csignals_T_65 | _csignals_T_67 | _csignals_T_69 | _csignals_T_71 | _csignals_T_73 + | _csignals_T_75 | _csignals_T_77 | _csignals_T_79 | _csignals_T_81 | _csignals_T_83 + | _csignals_T_85 | _csignals_T_87) & _csignals_T_2589; + assign io_out_bits_vector = + ~(_csignals_T_15 | _csignals_T_17 | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 + | _csignals_T_25 | _csignals_T_27 | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 + | _csignals_T_35 | _csignals_T_37 | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 + | _csignals_T_45 | _csignals_T_47 | _csignals_T_49 | _csignals_T_51 | _csignals_T_53 + | _csignals_T_55 | _csignals_T_57 | _csignals_T_59 | _csignals_T_61 | _csignals_T_63 + | _csignals_T_65 | _csignals_T_67 | _csignals_T_69 | _csignals_T_71 | _csignals_T_73 + | _csignals_T_75 | _csignals_T_77 | _csignals_T_79 | _csignals_T_81 | _csignals_T_83 + | _csignals_T_85 | _csignals_T_87 | _csignals_T_2589 | _csignals_T_91 + | _csignals_T_93 | _csignals_T_95 | _csignals_T_97 | _csignals_T_99 + | _csignals_T_101 | _csignals_T_103 | _csignals_T_105 | _csignals_T_107 + | _csignals_T_109 | _csignals_T_111 | _csignals_T_1359 | _csignals_T_2228 + | _csignals_T_117 | _csignals_T_119 | _csignals_T_121 | _csignals_T_123 + | _csignals_T_125 | _csignals_T_127 | _csignals_T_129 | _csignals_T_2394 | _GEN_17) + & (_GEN_5 | _csignals_T_2626); +endmodule + +module BranchPredictor( + input clock, + reset, + input [63:0] io_pc_addr, + io_imm, + input [3:0] io_BranchType, + output io_out_valid, + output [63:0] io_out_bits_pc +); + + reg [63:0] RAS_0; + reg [63:0] RAS_1; + reg [63:0] RAS_2; + reg [63:0] RAS_3; + reg [63:0] RAS_4; + reg [63:0] RAS_5; + reg [63:0] RAS_6; + reg [63:0] RAS_7; + reg [2:0] RAS_ptr; + wire [7:0][63:0] _GEN = + {{RAS_7}, {RAS_6}, {RAS_5}, {RAS_4}, {RAS_3}, {RAS_2}, {RAS_1}, {RAS_0}}; + always @(posedge clock) begin + if (reset) begin + RAS_0 <= 64'h0; + RAS_1 <= 64'h0; + RAS_2 <= 64'h0; + RAS_3 <= 64'h0; + RAS_4 <= 64'h0; + RAS_5 <= 64'h0; + RAS_6 <= 64'h0; + RAS_7 <= 64'h0; + RAS_ptr <= 3'h0; + end + else begin + automatic logic _T_1 = io_BranchType == 4'h7; + automatic logic [63:0] _T_3; + _T_3 = io_pc_addr + 64'h4; + if (_T_1 & ~(|RAS_ptr)) + RAS_0 <= _T_3; + if (_T_1 & RAS_ptr == 3'h1) + RAS_1 <= _T_3; + if (_T_1 & RAS_ptr == 3'h2) + RAS_2 <= _T_3; + if (_T_1 & RAS_ptr == 3'h3) + RAS_3 <= _T_3; + if (_T_1 & RAS_ptr == 3'h4) + RAS_4 <= _T_3; + if (_T_1 & RAS_ptr == 3'h5) + RAS_5 <= _T_3; + if (_T_1 & RAS_ptr == 3'h6) + RAS_6 <= _T_3; + if (_T_1 & (&RAS_ptr)) + RAS_7 <= _T_3; + if (|RAS_ptr) + RAS_ptr <= RAS_ptr - 3'h1; + else + RAS_ptr <= 3'h0; + end + end // always @(posedge) + assign io_out_valid = + io_BranchType == 4'h8 | io_BranchType == 4'h7 + | (io_BranchType == 4'h6 + ? $signed(io_imm) < 64'sh0 + : io_BranchType == 4'h5 + ? $signed(io_imm) < 64'sh0 + : io_BranchType == 4'h4 + ? $signed(io_imm) < 64'sh0 + : io_BranchType == 4'h3 + ? $signed(io_imm) < 64'sh0 + : io_BranchType == 4'h2 + ? $signed(io_imm) < 64'sh0 + : io_BranchType == 4'h1 & $signed(io_imm) < 64'sh0); + assign io_out_bits_pc = io_BranchType == 4'h8 ? _GEN[RAS_ptr] : io_pc_addr + io_imm; +endmodule + +module RegFile( + input clock, + input [4:0] io_rs1, + io_rs2, + input io_req_valid, + input [4:0] io_req_bits_rd, + input [63:0] io_req_bits_data, + output [63:0] io_rs1_out, + io_rs2_out +); + + reg [63:0] regfile_0; + reg [63:0] regfile_1; + reg [63:0] regfile_2; + reg [63:0] regfile_3; + reg [63:0] regfile_4; + reg [63:0] regfile_5; + reg [63:0] regfile_6; + reg [63:0] regfile_7; + reg [63:0] regfile_8; + reg [63:0] regfile_9; + reg [63:0] regfile_10; + reg [63:0] regfile_11; + reg [63:0] regfile_12; + reg [63:0] regfile_13; + reg [63:0] regfile_14; + reg [63:0] regfile_15; + reg [63:0] regfile_16; + reg [63:0] regfile_17; + reg [63:0] regfile_18; + reg [63:0] regfile_19; + reg [63:0] regfile_20; + reg [63:0] regfile_21; + reg [63:0] regfile_22; + reg [63:0] regfile_23; + reg [63:0] regfile_24; + reg [63:0] regfile_25; + reg [63:0] regfile_26; + reg [63:0] regfile_27; + reg [63:0] regfile_28; + reg [63:0] regfile_29; + reg [63:0] regfile_30; + wire [31:0][63:0] _GEN = + {{regfile_30}, + {regfile_29}, + {regfile_28}, + {regfile_27}, + {regfile_26}, + {regfile_25}, + {regfile_24}, + {regfile_23}, + {regfile_22}, + {regfile_21}, + {regfile_20}, + {regfile_19}, + {regfile_18}, + {regfile_17}, + {regfile_16}, + {regfile_15}, + {regfile_14}, + {regfile_13}, + {regfile_12}, + {regfile_11}, + {regfile_10}, + {regfile_9}, + {regfile_8}, + {regfile_7}, + {regfile_6}, + {regfile_5}, + {regfile_4}, + {regfile_3}, + {regfile_2}, + {regfile_1}, + {regfile_0}, + {64'h0}}; + always @(posedge clock) begin + if (io_req_valid & io_req_bits_rd == 5'h1) + regfile_0 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h2) + regfile_1 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h3) + regfile_2 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h4) + regfile_3 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h5) + regfile_4 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h6) + regfile_5 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h7) + regfile_6 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h8) + regfile_7 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h9) + regfile_8 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'hA) + regfile_9 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'hB) + regfile_10 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'hC) + regfile_11 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'hD) + regfile_12 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'hE) + regfile_13 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'hF) + regfile_14 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h10) + regfile_15 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h11) + regfile_16 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h12) + regfile_17 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h13) + regfile_18 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h14) + regfile_19 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h15) + regfile_20 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h16) + regfile_21 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h17) + regfile_22 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h18) + regfile_23 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h19) + regfile_24 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h1A) + regfile_25 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h1B) + regfile_26 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h1C) + regfile_27 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h1D) + regfile_28 <= io_req_bits_data; + if (io_req_valid & io_req_bits_rd == 5'h1E) + regfile_29 <= io_req_bits_data; + if (io_req_valid & (&io_req_bits_rd)) + regfile_30 <= io_req_bits_data; + end // always @(posedge) + assign io_rs1_out = _GEN[io_rs1]; + assign io_rs2_out = _GEN[io_rs2]; +endmodule + +module BarrelShifter( + input [64:0] io_in, + input [5:0] io_shamt, + output [64:0] io_out +); + + wire [64:0] ans_seq_5 = io_shamt[5] ? {{32{io_in[64]}}, io_in[64:32]} : io_in; + wire [64:0] ans_seq_4 = + io_shamt[4] ? {{16{ans_seq_5[64]}}, ans_seq_5[64:16]} : ans_seq_5; + wire [64:0] ans_seq_3 = io_shamt[3] ? {{8{ans_seq_4[64]}}, ans_seq_4[64:8]} : ans_seq_4; + wire [64:0] ans_seq_2 = io_shamt[2] ? {{4{ans_seq_3[64]}}, ans_seq_3[64:4]} : ans_seq_3; + wire [64:0] ans_seq_1 = io_shamt[1] ? {{2{ans_seq_2[64]}}, ans_seq_2[64:2]} : ans_seq_2; + assign io_out = io_shamt[0] ? {ans_seq_1[64], ans_seq_1[64:1]} : ans_seq_1; +endmodule + +module ALU( + input [3:0] io_funct_arithmetic_funct, + input io_funct_alu_flag, + io_funct_op32, + input [63:0] io_in1, + io_in2, + output [63:0] io_out +); + + wire [64:0] _right_barrel_shifter_io_out; + wire [63:0] in1_record = + io_funct_op32 + ? {io_funct_arithmetic_funct == 4'h6 & ~io_funct_alu_flag + ? 32'h0 + : {32{io_in1[31]}}, + io_in1[31:0]} + : io_in1; + wire [63:0] in2_record = io_funct_op32 ? {{32{io_in2[31]}}, io_in2[31:0]} : io_in2; + wire [15:0] _GEN = + {{in1_record[23:16], in1_record[31:28]} & 12'hF0F, 4'h0} + | {in1_record[31:24], in1_record[39:32]} & 16'hF0F; + wire [37:0] _GEN_0 = + {in1_record[11:8], + in1_record[15:12], + in1_record[19:16], + _GEN, + in1_record[39:36], + in1_record[43:40], + in1_record[47:46]} & 38'h3333333333; + wire [7:0] _GEN_1 = _GEN_0[37:30] | {in1_record[15:12], in1_record[19:16]} & 8'h33; + wire [15:0] _GEN_2 = _GEN_0[29:14] | _GEN & 16'h3333; + wire [1:0] _GEN_3 = _GEN_0[11:10] | in1_record[37:36]; + wire [7:0] _GEN_4 = + {_GEN_0[5:0], 2'h0} | {in1_record[47:44], in1_record[51:48]} & 8'h33; + wire [50:0] _GEN_5 = + {in1_record[5:4], + in1_record[7:6], + in1_record[9:8], + _GEN_1, + _GEN_2, + _GEN[3:2], + _GEN_3, + in1_record[39:38], + in1_record[41:40], + _GEN_4, + in1_record[51:50], + in1_record[53:52], + in1_record[55]} & 51'h5555555555555; + wire [63:0] shin = + io_funct_arithmetic_funct == 4'h6 + ? in1_record + : {in1_record[0], + in1_record[1], + in1_record[2], + in1_record[3], + in1_record[4], + _GEN_5[50:47] | {in1_record[7:6], in1_record[9:8]} & 4'h5, + _GEN_5[46:39] | _GEN_1 & 8'h55, + _GEN_5[38:23] | _GEN_2 & 16'h5555, + _GEN_2[1], + _GEN_5[21] | _GEN[2], + {_GEN[3], 1'h0} | _GEN_3 & 2'h1, + _GEN_5[18:15] | {in1_record[39:38], in1_record[41:40]} & 4'h5, + _GEN_5[14:7] | _GEN_4 & 8'h55, + _GEN_4[1], + _GEN_5[5] | in1_record[50], + in1_record[51], + in1_record[52], + {_GEN_5[2:0], 1'h0} | {in1_record[55:54], in1_record[57:56]} & 4'h5, + in1_record[57], + in1_record[58], + in1_record[59], + in1_record[60], + in1_record[61], + in1_record[62], + in1_record[63]}; + wire [15:0] _GEN_6 = + {{_right_barrel_shifter_io_out[23:16], _right_barrel_shifter_io_out[31:28]} & 12'hF0F, + 4'h0} | {_right_barrel_shifter_io_out[31:24], _right_barrel_shifter_io_out[39:32]} + & 16'hF0F; + wire [37:0] _GEN_7 = + {_right_barrel_shifter_io_out[11:8], + _right_barrel_shifter_io_out[15:12], + _right_barrel_shifter_io_out[19:16], + _GEN_6, + _right_barrel_shifter_io_out[39:36], + _right_barrel_shifter_io_out[43:40], + _right_barrel_shifter_io_out[47:46]} & 38'h3333333333; + wire [7:0] _GEN_8 = + _GEN_7[37:30] + | {_right_barrel_shifter_io_out[15:12], _right_barrel_shifter_io_out[19:16]} & 8'h33; + wire [15:0] _GEN_9 = _GEN_7[29:14] | _GEN_6 & 16'h3333; + wire [1:0] _GEN_10 = _GEN_7[11:10] | _right_barrel_shifter_io_out[37:36]; + wire [7:0] _GEN_11 = + {_GEN_7[5:0], 2'h0} + | {_right_barrel_shifter_io_out[47:44], _right_barrel_shifter_io_out[51:48]} & 8'h33; + wire [50:0] _GEN_12 = + {_right_barrel_shifter_io_out[5:4], + _right_barrel_shifter_io_out[7:6], + _right_barrel_shifter_io_out[9:8], + _GEN_8, + _GEN_9, + _GEN_6[3:2], + _GEN_10, + _right_barrel_shifter_io_out[39:38], + _right_barrel_shifter_io_out[41:40], + _GEN_11, + _right_barrel_shifter_io_out[51:50], + _right_barrel_shifter_io_out[53:52], + _right_barrel_shifter_io_out[55]} & 51'h5555555555555; + wire [15:0] _GEN_13 = _GEN_12[38:23] | _GEN_9 & 16'h5555; + wire [63:0] addsub_record = + io_funct_alu_flag ? in1_record - in2_record : in1_record + in2_record; + BarrelShifter right_barrel_shifter ( + .io_in ({io_funct_alu_flag & shin[63], shin}), + .io_shamt (io_funct_op32 ? {1'h0, in2_record[4:0]} : in2_record[5:0]), + .io_out (_right_barrel_shifter_io_out) + ); + assign io_out = + io_funct_arithmetic_funct == 4'h8 + ? io_in1 & io_in2 + : io_funct_arithmetic_funct == 4'h7 + ? io_in1 | io_in2 + : io_funct_arithmetic_funct == 4'h6 + ? (io_funct_op32 + ? {{32{_right_barrel_shifter_io_out[31]}}, + _right_barrel_shifter_io_out[31:0]} + : _right_barrel_shifter_io_out[63:0]) + : io_funct_arithmetic_funct == 4'h5 + ? io_in1 ^ io_in2 + : io_funct_arithmetic_funct == 4'h4 + ? {63'h0, io_in1 < io_in2} + : io_funct_arithmetic_funct == 4'h3 + ? {63'h0, $signed(io_in1) < $signed(io_in2)} + : io_funct_arithmetic_funct == 4'h2 + ? {io_funct_op32 + ? {{32{_GEN_13[0]}}, _GEN_13[0]} + : {_right_barrel_shifter_io_out[0], + _right_barrel_shifter_io_out[1], + _right_barrel_shifter_io_out[2], + _right_barrel_shifter_io_out[3], + _right_barrel_shifter_io_out[4], + _GEN_12[50:47] + | {_right_barrel_shifter_io_out[7:6], + _right_barrel_shifter_io_out[9:8]} & 4'h5, + _GEN_12[46:39] | _GEN_8 & 8'h55, + _GEN_13}, + _GEN_9[1], + _GEN_12[21] | _GEN_6[2], + {_GEN_6[3], 1'h0} | _GEN_10 & 2'h1, + _GEN_12[18:15] + | {_right_barrel_shifter_io_out[39:38], + _right_barrel_shifter_io_out[41:40]} & 4'h5, + _GEN_12[14:7] | _GEN_11 & 8'h55, + _GEN_11[1], + _GEN_12[5] | _right_barrel_shifter_io_out[50], + _right_barrel_shifter_io_out[51], + _right_barrel_shifter_io_out[52], + {_GEN_12[2:0], 1'h0} + | {_right_barrel_shifter_io_out[55:54], + _right_barrel_shifter_io_out[57:56]} & 4'h5, + _right_barrel_shifter_io_out[57], + _right_barrel_shifter_io_out[58], + _right_barrel_shifter_io_out[59], + _right_barrel_shifter_io_out[60], + _right_barrel_shifter_io_out[61], + _right_barrel_shifter_io_out[62], + _right_barrel_shifter_io_out[63]} + : io_funct_arithmetic_funct == 4'h1 + ? (io_funct_op32 + ? {{32{addsub_record[31]}}, addsub_record[31:0]} + : addsub_record) + : 64'h0; +endmodule + +module BranchEvaluator( + input io_req_valid, + input [63:0] io_req_bits_ALU_Result, + input [3:0] io_req_bits_BranchType, + input [63:0] io_req_bits_destPC, + io_req_bits_pc_addr, + input io_req_bits_bp_taken, + output io_out_valid, + output [63:0] io_out_bits_pc +); + + wire branch_taken = + io_req_bits_BranchType == 4'h6 + ? ~(io_req_bits_ALU_Result[0]) + : io_req_bits_BranchType == 4'h4 + ? ~(io_req_bits_ALU_Result[0]) + : io_req_bits_BranchType == 4'h5 | io_req_bits_BranchType == 4'h3 + ? io_req_bits_ALU_Result[0] + : io_req_bits_BranchType == 4'h2 + ? (|io_req_bits_ALU_Result) + : io_req_bits_BranchType == 4'h1 & ~(|io_req_bits_ALU_Result); + assign io_out_valid = + io_req_valid + & (io_req_bits_BranchType == 4'h6 | io_req_bits_BranchType == 4'h5 + | io_req_bits_BranchType == 4'h4 | io_req_bits_BranchType == 4'h3 + | io_req_bits_BranchType == 4'h2 | io_req_bits_BranchType == 4'h1 + ? io_req_bits_bp_taken != branch_taken + : io_req_bits_BranchType == 4'h8 & io_req_bits_destPC != io_req_bits_ALU_Result); + assign io_out_bits_pc = + io_req_bits_BranchType == 4'h8 + ? {io_req_bits_ALU_Result[63:1], 1'h0} + : branch_taken ? io_req_bits_destPC : io_req_bits_pc_addr + 64'h4; +endmodule + +module BypassingUnit( + input io_ID_in_rs1_index_valid, + input [4:0] io_ID_in_rs1_index_bits, + input io_ID_in_rs2_index_valid, + input [4:0] io_ID_in_rs2_index_bits, + input io_EX_in_valid, + io_EX_in_bits_rd_valid, + input [4:0] io_EX_in_bits_rd_bits_index, + input [63:0] io_EX_in_bits_rd_bits_value, + input io_WB_in_valid, + io_WB_in_bits_rd_valid, + input [4:0] io_WB_in_bits_rd_bits_index, + input [63:0] io_WB_in_bits_rd_bits_value, + output io_ID_out_rs1_value_valid, + output [63:0] io_ID_out_rs1_value_bits, + output io_ID_out_rs1_bypassMatchAtEX, + io_ID_out_rs1_bypassMatchAtWB, + io_ID_out_rs2_value_valid, + output [63:0] io_ID_out_rs2_value_bits, + output io_ID_out_rs2_bypassMatchAtEX, + io_ID_out_rs2_bypassMatchAtWB +); + + wire WB_rd_and_ID_rs1_matches_not_zero = + (|io_ID_in_rs1_index_bits) & io_ID_in_rs1_index_bits == io_WB_in_bits_rd_bits_index + & io_ID_in_rs1_index_valid & io_WB_in_valid; + wire EX_rd_and_ID_rs1_matches_not_zero = + (|io_ID_in_rs1_index_bits) & io_ID_in_rs1_index_bits == io_EX_in_bits_rd_bits_index + & io_ID_in_rs1_index_valid & io_EX_in_valid; + wire WB_rd_and_ID_rs2_matches_not_zero = + (|io_ID_in_rs2_index_bits) & io_ID_in_rs2_index_bits == io_WB_in_bits_rd_bits_index + & io_ID_in_rs2_index_valid & io_WB_in_valid; + wire EX_rd_and_ID_rs2_matches_not_zero = + (|io_ID_in_rs2_index_bits) & io_ID_in_rs2_index_bits == io_EX_in_bits_rd_bits_index + & io_ID_in_rs2_index_valid & io_EX_in_valid; + assign io_ID_out_rs1_value_valid = + EX_rd_and_ID_rs1_matches_not_zero + ? io_EX_in_bits_rd_valid + : WB_rd_and_ID_rs1_matches_not_zero & io_WB_in_bits_rd_valid; + assign io_ID_out_rs1_value_bits = + EX_rd_and_ID_rs1_matches_not_zero + ? io_EX_in_bits_rd_bits_value + : io_WB_in_bits_rd_bits_value; + assign io_ID_out_rs1_bypassMatchAtEX = EX_rd_and_ID_rs1_matches_not_zero; + assign io_ID_out_rs1_bypassMatchAtWB = WB_rd_and_ID_rs1_matches_not_zero; + assign io_ID_out_rs2_value_valid = + EX_rd_and_ID_rs2_matches_not_zero + ? io_EX_in_bits_rd_valid + : WB_rd_and_ID_rs2_matches_not_zero & io_WB_in_bits_rd_valid; + assign io_ID_out_rs2_value_bits = + EX_rd_and_ID_rs2_matches_not_zero + ? io_EX_in_bits_rd_bits_value + : io_WB_in_bits_rd_bits_value; + assign io_ID_out_rs2_bypassMatchAtEX = EX_rd_and_ID_rs2_matches_not_zero; + assign io_ID_out_rs2_bypassMatchAtWB = WB_rd_and_ID_rs2_matches_not_zero; +endmodule + +module VectorLdstUnit( + input clock, + reset, + io_signalIn_valid, + input [63:0] io_signalIn_bits_scalar_rs2Value, + io_signalIn_bits_scalar_immediate, + input [4:0] io_signalIn_bits_scalar_rdIndex, + io_signalIn_bits_vector_vs2, + io_signalIn_bits_vector_vd, + input [63:0] io_signalIn_bits_vector_scalarVal, + input [2:0] io_signalIn_bits_vector_vectorDecode_mop, + input io_signalIn_bits_vector_vectorDecode_vm, + input [3:0] io_signalIn_bits_vector_scalarDecode_branch, + input [2:0] io_signalIn_bits_vector_scalarDecode_writeback_selector, + input [1:0] io_signalIn_bits_vector_scalarDecode_memory_function, + io_signalIn_bits_vector_scalarDecode_memory_length, + input io_signalIn_bits_vector_scalarDecode_mem_sext, + input [2:0] io_signalIn_bits_vector_scalarDecode_csr_funct, + input io_signalIn_bits_vector_scalarDecode_fence, + io_signalIn_bits_vector_scalarDecode_vector, + input [2:0] io_signalIn_bits_vector_vecConf_vtype_vsew, + input [5:0] io_signalIn_bits_vector_vecConf_vl, + input [63:0] io_signalIn_bits_vector_pc_addr, + io_readVrf_resp_vs2Out, + io_readVrf_resp_vdOut, + input io_readVrf_resp_vm, + io_dcache_ar_ready, + io_dcache_aw_ready, + io_dcache_b_valid, + io_dcache_r_valid, + input [63:0] io_dcache_r_bits_data, + input io_dcache_w_ready, + output io_signalIn_ready, + output [2:0] io_readVrf_req_sew, + output [4:0] io_readVrf_req_idx, + io_readVrf_req_vs2, + io_readVrf_req_vd, + output io_scalarResp_valid, + output [63:0] io_scalarResp_bits_data, + output io_vectorResp_toVRF_valid, + output [4:0] io_vectorResp_toVRF_bits_vd, + output [2:0] io_vectorResp_toVRF_bits_vtype_vsew, + output [4:0] io_vectorResp_toVRF_bits_index, + output io_vectorResp_toVRF_bits_last, + output [63:0] io_vectorResp_toVRF_bits_data, + output io_vectorResp_toVRF_bits_writeReq, + io_dcache_ar_valid, + output [63:0] io_dcache_ar_bits_addr, + output io_dcache_aw_valid, + output [63:0] io_dcache_aw_bits_addr, + output io_dcache_w_valid, + output [63:0] io_dcache_w_bits_data, + output [7:0] io_dcache_w_bits_strb, + output io_toExWbReg_valid, + output [63:0] io_toExWbReg_bits_dataSignals_pc_addr, + output [3:0] io_toExWbReg_bits_ctrlSignals_decode_branch, + output [2:0] io_toExWbReg_bits_ctrlSignals_decode_writeback_selector, + output [1:0] io_toExWbReg_bits_ctrlSignals_decode_memory_function, + output [2:0] io_toExWbReg_bits_ctrlSignals_decode_csr_funct, + output io_toExWbReg_bits_ctrlSignals_decode_fence, + output [4:0] io_toExWbReg_bits_ctrlSignals_rd_index, + output io_toExWbReg_bits_vectorExecNum_valid, + output [4:0] io_toExWbReg_bits_vectorExecNum_bits +); + + reg scalarReqReg_valid; + reg [63:0] scalarReqReg_bits_rs2Value; + reg [63:0] scalarReqReg_bits_immediate; + reg [4:0] scalarReqReg_bits_rdIndex; + reg scalarReqRegNext_valid; + reg [4:0] vectorReqReg_vs2; + reg [4:0] vectorReqReg_vd; + reg [63:0] vectorReqReg_scalarVal; + reg [2:0] vectorReqReg_vectorDecode_mop; + reg vectorReqReg_vectorDecode_vm; + reg [3:0] vectorReqReg_scalarDecode_branch; + reg [2:0] vectorReqReg_scalarDecode_writeback_selector; + reg [1:0] vectorReqReg_scalarDecode_memory_function; + reg [1:0] vectorReqReg_scalarDecode_memory_length; + reg vectorReqReg_scalarDecode_mem_sext; + reg [2:0] vectorReqReg_scalarDecode_csr_funct; + reg vectorReqReg_scalarDecode_fence; + reg vectorReqReg_scalarDecode_vector; + reg [2:0] vectorReqReg_vecConf_vtype_vsew; + reg [5:0] vectorReqReg_vecConf_vl; + reg [63:0] vectorReqReg_pc_addr; + reg hasVectorInst; + reg [4:0] vectorReqRegNext_vd; + reg [1:0] vectorReqRegNext_scalarDecode_memory_function; + reg [1:0] vectorReqRegNext_scalarDecode_memory_length; + reg vectorReqRegNext_scalarDecode_mem_sext; + reg [2:0] vectorReqRegNext_vecConf_vtype_vsew; + reg hasVectorInstNext; + reg [4:0] vecIdx; + reg [4:0] executedNum; + reg [4:0] vecIdxToVrfWrite; + reg [63:0] accumulator; + wire vecMemAccessLast = + hasVectorInst & {1'h0, vecIdx} == vectorReqReg_vecConf_vl - 6'h1; + `ifndef SYNTHESIS + always @(posedge clock) begin + if (~reset & ~(scalarReqReg_valid | ~hasVectorInst)) begin + if (`ASSERT_VERBOSE_COND_) + $error("Assertion failed: scalarReq false and vectorReq true\n at VectorLdstUnit.scala:76 assert(scalarReqReg.valid || !hasVectorInst, \"scalarReq false and vectorReq true\")\n"); + if (`STOP_COND_) + $fatal; + end + end // always @(posedge) + `endif // not def SYNTHESIS + wire _io_toExWbReg_valid_T_4 = io_dcache_aw_ready & io_dcache_w_ready; + wire _io_signalIn_ready_output = + ~scalarReqReg_valid + | (vectorReqReg_scalarDecode_memory_function == 2'h1 + ? io_dcache_ar_ready + : vectorReqReg_scalarDecode_memory_function == 2'h2 & _io_toExWbReg_valid_T_4) + & (~hasVectorInst | vecMemAccessLast); + wire [3:0][63:0] _GEN = + {{{io_readVrf_resp_vs2Out[60:0], 3'h0}}, + {{io_readVrf_resp_vs2Out[61:0], 2'h0}}, + {{io_readVrf_resp_vs2Out[62:0], 1'h0}}, + {io_readVrf_resp_vs2Out}}; + wire [63:0] _GEN_0 = _GEN[vectorReqReg_scalarDecode_memory_length]; + wire [7:0][63:0] _GEN_1 = + {{vectorReqReg_scalarVal}, + {vectorReqReg_scalarVal}, + {vectorReqReg_scalarVal}, + {_GEN_0}, + {accumulator}, + {_GEN_0}, + {accumulator}, + {scalarReqReg_bits_immediate}}; + wire [63:0] _GEN_2 = + vectorReqReg_scalarVal + _GEN_1[vectorReqReg_vectorDecode_mop]; + wire [3:0][7:0] _GEN_3 = + {{8'hFF}, {8'hF}, {8'h3}, {{7'h0, vectorReqReg_scalarDecode_memory_length == 2'h0}}}; + wire [3:0][63:0] _GEN_4 = + {{io_dcache_r_bits_data}, + {{vectorReqRegNext_scalarDecode_mem_sext ? {32{io_dcache_r_bits_data[31]}} : 32'h0, + io_dcache_r_bits_data[31:0]}}, + {{vectorReqRegNext_scalarDecode_mem_sext ? {48{io_dcache_r_bits_data[15]}} : 48'h0, + io_dcache_r_bits_data[15:0]}}, + {(|vectorReqRegNext_scalarDecode_memory_length) + ? io_dcache_r_bits_data + : {vectorReqRegNext_scalarDecode_mem_sext + ? {56{io_dcache_r_bits_data[7]}} + : 56'h0, + io_dcache_r_bits_data[7:0]}}}; + reg io_scalarResp_valid_REG; + wire _io_vectorResp_toVRF_valid_output = + scalarReqRegNext_valid & hasVectorInstNext; + reg io_vectorResp_toVRF_bits_last_REG; + wire [3:0][63:0] _GEN_5 = + {{io_dcache_r_bits_data}, + {{32'h0, io_dcache_r_bits_data[31:0]}}, + {{48'h0, io_dcache_r_bits_data[15:0]}}, + {(|vectorReqRegNext_scalarDecode_memory_length) + ? io_dcache_r_bits_data + : {56'h0, io_dcache_r_bits_data[7:0]}}}; + wire _io_toExWbReg_bits_vectorExecNum_bits_T = + vectorReqReg_vectorDecode_vm | io_readVrf_resp_vm; + reg io_vectorResp_toVRF_bits_writeReq_REG; + wire _io_toExWbReg_valid_output = + scalarReqReg_valid + & (vectorReqReg_scalarDecode_memory_function == 2'h1 + ? io_dcache_ar_ready + : vectorReqReg_scalarDecode_memory_function != 2'h2 | _io_toExWbReg_valid_T_4) + & (~vectorReqReg_scalarDecode_vector | vecMemAccessLast); + always @(posedge clock) begin + automatic logic _T_9; + _T_9 = io_signalIn_valid & _io_signalIn_ready_output; + if (reset) begin + scalarReqReg_valid <= 1'h0; + hasVectorInst <= 1'h0; + vecIdx <= 5'h0; + executedNum <= 5'h0; + accumulator <= 64'h0; + end + else begin + automatic logic _T_3; + _T_3 = scalarReqReg_valid & (~hasVectorInst | vecMemAccessLast); + scalarReqReg_valid <= _T_9 | ~_T_3 & scalarReqReg_valid; + if (_T_9) + hasVectorInst <= + io_signalIn_bits_vector_scalarDecode_vector + & (|io_signalIn_bits_vector_vectorDecode_mop); + else + hasVectorInst <= ~(_T_3 & hasVectorInst) & hasVectorInst; + if (_T_9 | vecMemAccessLast | ~hasVectorInst) begin + vecIdx <= 5'h0; + executedNum <= 5'h0; + accumulator <= 64'h0; + end + else begin + vecIdx <= vecIdx + 5'h1; + executedNum <= + executedNum + {4'h0, vectorReqReg_vectorDecode_vm | io_readVrf_resp_vm}; + accumulator <= + accumulator + + (vectorReqReg_vectorDecode_mop == 3'h1 + ? {60'h0, + vectorReqReg_vecConf_vtype_vsew == 3'h3 + ? 4'h8 + : {1'h0, + vectorReqReg_vecConf_vtype_vsew == 3'h2 + ? 3'h4 + : {1'h0, vectorReqReg_vecConf_vtype_vsew == 3'h1 ? 2'h2 : 2'h1}}} + : scalarReqReg_bits_rs2Value); + end + end + if (_T_9) begin + scalarReqReg_bits_rs2Value <= io_signalIn_bits_scalar_rs2Value; + scalarReqReg_bits_immediate <= io_signalIn_bits_scalar_immediate; + scalarReqReg_bits_rdIndex <= io_signalIn_bits_scalar_rdIndex; + vectorReqReg_vs2 <= io_signalIn_bits_vector_vs2; + vectorReqReg_vd <= io_signalIn_bits_vector_vd; + vectorReqReg_scalarVal <= io_signalIn_bits_vector_scalarVal; + vectorReqReg_vectorDecode_mop <= io_signalIn_bits_vector_vectorDecode_mop; + vectorReqReg_vectorDecode_vm <= io_signalIn_bits_vector_vectorDecode_vm; + vectorReqReg_scalarDecode_branch <= io_signalIn_bits_vector_scalarDecode_branch; + vectorReqReg_scalarDecode_writeback_selector <= + io_signalIn_bits_vector_scalarDecode_writeback_selector; + vectorReqReg_scalarDecode_memory_function <= + io_signalIn_bits_vector_scalarDecode_memory_function; + vectorReqReg_scalarDecode_memory_length <= + io_signalIn_bits_vector_scalarDecode_memory_length; + vectorReqReg_scalarDecode_mem_sext <= io_signalIn_bits_vector_scalarDecode_mem_sext; + vectorReqReg_scalarDecode_csr_funct <= + io_signalIn_bits_vector_scalarDecode_csr_funct; + vectorReqReg_scalarDecode_fence <= io_signalIn_bits_vector_scalarDecode_fence; + vectorReqReg_scalarDecode_vector <= io_signalIn_bits_vector_scalarDecode_vector; + vectorReqReg_vecConf_vtype_vsew <= io_signalIn_bits_vector_vecConf_vtype_vsew; + vectorReqReg_vecConf_vl <= io_signalIn_bits_vector_vecConf_vl; + vectorReqReg_pc_addr <= io_signalIn_bits_vector_pc_addr; + end + scalarReqRegNext_valid <= scalarReqReg_valid; + vectorReqRegNext_vd <= vectorReqReg_vd; + vectorReqRegNext_scalarDecode_memory_function <= + vectorReqReg_scalarDecode_memory_function; + vectorReqRegNext_scalarDecode_memory_length <= + vectorReqReg_scalarDecode_memory_length; + vectorReqRegNext_scalarDecode_mem_sext <= vectorReqReg_scalarDecode_mem_sext; + vectorReqRegNext_vecConf_vtype_vsew <= vectorReqReg_vecConf_vtype_vsew; + hasVectorInstNext <= hasVectorInst; + vecIdxToVrfWrite <= vecIdx; + io_scalarResp_valid_REG <= vecMemAccessLast; + io_vectorResp_toVRF_bits_last_REG <= vecMemAccessLast; + io_vectorResp_toVRF_bits_writeReq_REG <= _io_toExWbReg_bits_vectorExecNum_bits_T; + end // always @(posedge) + assign io_signalIn_ready = _io_signalIn_ready_output; + assign io_readVrf_req_sew = vectorReqReg_vecConf_vtype_vsew; + assign io_readVrf_req_idx = vecIdx; + assign io_readVrf_req_vs2 = vectorReqReg_vs2; + assign io_readVrf_req_vd = vectorReqReg_vd; + assign io_scalarResp_valid = + (vectorReqRegNext_scalarDecode_memory_function == 2'h1 + ? io_dcache_r_valid + : vectorReqRegNext_scalarDecode_memory_function == 2'h2 & io_dcache_b_valid) + & scalarReqRegNext_valid & (~hasVectorInstNext | io_scalarResp_valid_REG); + assign io_scalarResp_bits_data = _GEN_4[vectorReqRegNext_scalarDecode_memory_length]; + assign io_vectorResp_toVRF_valid = _io_vectorResp_toVRF_valid_output; + assign io_vectorResp_toVRF_bits_vd = vectorReqRegNext_vd; + assign io_vectorResp_toVRF_bits_vtype_vsew = vectorReqRegNext_vecConf_vtype_vsew; + assign io_vectorResp_toVRF_bits_index = vecIdxToVrfWrite; + assign io_vectorResp_toVRF_bits_last = io_vectorResp_toVRF_bits_last_REG; + assign io_vectorResp_toVRF_bits_data = + _GEN_5[vectorReqRegNext_scalarDecode_memory_length]; + assign io_vectorResp_toVRF_bits_writeReq = + _io_vectorResp_toVRF_valid_output & io_vectorResp_toVRF_bits_writeReq_REG + & vectorReqRegNext_scalarDecode_memory_function == 2'h1; + assign io_dcache_ar_valid = + scalarReqReg_valid & vectorReqReg_scalarDecode_memory_function == 2'h1; + assign io_dcache_ar_bits_addr = _GEN_2; + assign io_dcache_aw_valid = + scalarReqReg_valid & vectorReqReg_scalarDecode_memory_function == 2'h2 + & (~hasVectorInst | vectorReqReg_vectorDecode_vm | io_readVrf_resp_vm); + assign io_dcache_aw_bits_addr = _GEN_2; + assign io_dcache_w_valid = + scalarReqReg_valid & vectorReqReg_scalarDecode_memory_function == 2'h2 + & (~hasVectorInst | vectorReqReg_vectorDecode_vm | io_readVrf_resp_vm); + assign io_dcache_w_bits_data = + hasVectorInst ? io_readVrf_resp_vdOut : scalarReqReg_bits_rs2Value; + assign io_dcache_w_bits_strb = _GEN_3[vectorReqReg_scalarDecode_memory_length]; + assign io_toExWbReg_valid = _io_toExWbReg_valid_output; + assign io_toExWbReg_bits_dataSignals_pc_addr = vectorReqReg_pc_addr; + assign io_toExWbReg_bits_ctrlSignals_decode_branch = vectorReqReg_scalarDecode_branch; + assign io_toExWbReg_bits_ctrlSignals_decode_writeback_selector = + vectorReqReg_scalarDecode_writeback_selector; + assign io_toExWbReg_bits_ctrlSignals_decode_memory_function = + vectorReqReg_scalarDecode_memory_function; + assign io_toExWbReg_bits_ctrlSignals_decode_csr_funct = + vectorReqReg_scalarDecode_csr_funct; + assign io_toExWbReg_bits_ctrlSignals_decode_fence = vectorReqReg_scalarDecode_fence; + assign io_toExWbReg_bits_ctrlSignals_rd_index = scalarReqReg_bits_rdIndex; + assign io_toExWbReg_bits_vectorExecNum_valid = + _io_toExWbReg_valid_output & vectorReqReg_scalarDecode_vector + & (vectorReqReg_scalarDecode_memory_function == 2'h1 + | vectorReqReg_scalarDecode_memory_function == 2'h2); + assign io_toExWbReg_bits_vectorExecNum_bits = + executedNum + {4'h0, _io_toExWbReg_bits_vectorExecNum_bits_T}; +endmodule + +module CSRFile( + input clock, + reset, + input [11:0] io_csr_addr, + input io_writeReq_valid, + input [63:0] io_writeReq_bits_data, + input io_fromCPU_cpu_operating, + io_fromCPU_inst_retire, + input [63:0] io_fromCPU_hartid, + input io_fromCPU_vectorExecNum_valid, + input [4:0] io_fromCPU_vectorExecNum_bits, + input io_exception_valid, + input [63:0] io_exception_bits_mepc_write, + io_exception_bits_mcause_write, + input io_vectorCsrPorts_vtype_vill, + io_vectorCsrPorts_vtype_vma, + io_vectorCsrPorts_vtype_vta, + input [2:0] io_vectorCsrPorts_vtype_vsew, + io_vectorCsrPorts_vtype_vlmul, + input [5:0] io_vectorCsrPorts_vl, + output [63:0] io_readResp_data +); + + reg [63:0] cycle; + reg [25:0] counterWrap_c_value; + reg [63:0] time_0; + reg [63:0] instret; + reg [63:0] mhpmcounter3; + reg [63:0] mstatus; + reg [63:0] misa; + reg [63:0] medeleg; + reg [63:0] mideleg; + reg [63:0] mie; + reg [63:0] mtvec; + reg [63:0] mcounteren; + reg [63:0] mscratch; + reg [63:0] mepc; + reg [63:0] mcause; + reg [63:0] mtval; + reg [63:0] mip; + reg [63:0] mtinst; + reg [63:0] mtval2; + wire _T_5 = io_csr_addr == 12'h300; + wire _T_6 = io_csr_addr == 12'h301; + wire _T_7 = io_csr_addr == 12'h302; + wire _T_8 = io_csr_addr == 12'h303; + wire _T_9 = io_csr_addr == 12'h304; + wire _T_10 = io_csr_addr == 12'h305; + wire _T_11 = io_csr_addr == 12'h306; + wire _T_12 = io_csr_addr == 12'h340; + wire _T_13 = io_csr_addr == 12'h341; + wire _T_14 = io_csr_addr == 12'h342; + wire _T_15 = io_csr_addr == 12'h343; + wire _T_16 = io_csr_addr == 12'h344; + wire _T_17 = io_csr_addr == 12'h34A; + wire _T_18 = io_csr_addr == 12'h34B; + wire _T_19 = io_csr_addr == 12'hB00; + wire _T_20 = io_csr_addr == 12'hB02; + wire _T_21 = io_csr_addr == 12'hB03; + always @(posedge clock) begin + if (reset) begin + cycle <= 64'h0; + counterWrap_c_value <= 26'h0; + time_0 <= 64'h0; + instret <= 64'h0; + mhpmcounter3 <= 64'h0; + mstatus <= 64'h0; + misa <= 64'h8000000000201100; + medeleg <= 64'h0; + mideleg <= 64'h0; + mie <= 64'h0; + mtvec <= 64'h0; + mcounteren <= 64'h0; + mscratch <= 64'h0; + mepc <= 64'h0; + mcause <= 64'h0; + mtval <= 64'h0; + mip <= 64'h0; + mtinst <= 64'h0; + mtval2 <= 64'h0; + end + else begin + automatic logic _T_4; + _T_4 = io_writeReq_valid & ~io_exception_valid; + if (_T_4 & _T_19) + cycle <= io_writeReq_bits_data; + else if (io_fromCPU_cpu_operating) + cycle <= cycle + 64'h1; + if (counterWrap_c_value == 26'h2FAF07F) begin + counterWrap_c_value <= 26'h0; + time_0 <= time_0 + 64'h1; + end + else + counterWrap_c_value <= counterWrap_c_value + 26'h1; + if (_T_4 & _T_20) + instret <= io_writeReq_bits_data; + else if (io_fromCPU_inst_retire) + instret <= instret + 64'h1; + if (_T_4 & _T_21) + mhpmcounter3 <= io_writeReq_bits_data; + else if (io_fromCPU_inst_retire) + mhpmcounter3 <= + mhpmcounter3 + + {59'h0, + io_fromCPU_vectorExecNum_valid ? io_fromCPU_vectorExecNum_bits : 5'h1}; + if (_T_4 & _T_5) + mstatus <= io_writeReq_bits_data; + if (_T_4 & _T_6) + misa <= io_writeReq_bits_data; + if (_T_4 & _T_7) + medeleg <= io_writeReq_bits_data; + if (_T_4 & _T_8) + mideleg <= io_writeReq_bits_data; + if (_T_4 & _T_9) + mie <= io_writeReq_bits_data; + if (_T_4 & _T_10) + mtvec <= io_writeReq_bits_data; + if (_T_4 & _T_11) + mcounteren <= io_writeReq_bits_data; + if (_T_4 & _T_12) + mscratch <= io_writeReq_bits_data; + if (io_exception_valid) begin + mepc <= io_exception_bits_mepc_write; + mcause <= io_exception_bits_mcause_write; + end + else begin + if (_T_4 & _T_13) + mepc <= {io_writeReq_bits_data[63:2], 2'h0}; + if (_T_4 & _T_14) + mcause <= io_writeReq_bits_data; + end + if (_T_4 & _T_15) + mtval <= io_writeReq_bits_data; + if (_T_4 & _T_16) + mip <= io_writeReq_bits_data; + if (_T_4 & _T_17) + mtinst <= io_writeReq_bits_data; + if (_T_4 & _T_18) + mtval2 <= io_writeReq_bits_data; + end + end // always @(posedge) + assign io_readResp_data = + io_exception_valid + ? {mtvec[63:2], 2'h0} + : _T_21 + ? mhpmcounter3 + : _T_20 + ? instret + : _T_19 + ? cycle + : _T_18 + ? mtval2 + : _T_17 + ? mtinst + : _T_16 + ? mip + : _T_15 + ? mtval + : _T_14 + ? mcause + : _T_13 + ? mepc + : _T_12 + ? mscratch + : _T_11 + ? mcounteren + : _T_10 + ? mtvec + : _T_9 + ? mie + : _T_8 + ? mideleg + : _T_7 + ? medeleg + : _T_6 + ? misa + : _T_5 + ? mstatus + : io_csr_addr == 12'hC22 + ? 64'h20 + : io_csr_addr == 12'hC21 + ? (io_vectorCsrPorts_vtype_vill + ? 64'h8000000000000000 + : {56'h0, + io_vectorCsrPorts_vtype_vma, + io_vectorCsrPorts_vtype_vta, + io_vectorCsrPorts_vtype_vsew, + io_vectorCsrPorts_vtype_vlmul}) + : io_csr_addr == 12'hC20 + ? {58'h0, + io_vectorCsrPorts_vl} + : io_csr_addr == 12'hF15 + ? 64'h0 + : io_csr_addr == 12'hF14 + ? io_fromCPU_hartid + : io_csr_addr == 12'hF13 + ? 64'h1145141919810 + : io_csr_addr == 12'hF12 + ? 64'h53686F7461636F6E + : io_csr_addr == 12'hF11 + ? 64'h426F79734C6F7665 + : io_csr_addr == 12'hC02 + ? instret + : io_csr_addr == 12'hC01 + ? time_0 + : io_csr_addr == 12'hC00 + ? cycle + : 64'h0; +endmodule + +module CSRUnit( + input clock, + reset, + input [3:0] io_req_bits_funct_branch, + input [2:0] io_req_bits_funct_csr_funct, + input [63:0] io_req_bits_data, + input [11:0] io_req_bits_csr_addr, + input io_fromCPU_cpu_operating, + io_fromCPU_inst_retire, + input [63:0] io_fromCPU_hartid, + input io_fromCPU_vectorExecNum_valid, + input [4:0] io_fromCPU_vectorExecNum_bits, + input io_exception_valid, + input [63:0] io_exception_bits_mepc_write, + io_exception_bits_mcause_write, + input io_vectorCsrPorts_vtype_vill, + io_vectorCsrPorts_vtype_vma, + io_vectorCsrPorts_vtype_vta, + input [2:0] io_vectorCsrPorts_vtype_vsew, + io_vectorCsrPorts_vtype_vlmul, + input [5:0] io_vectorCsrPorts_vl, + output [63:0] io_resp_data +); + + wire [63:0] _csrFile_io_readResp_data; + CSRFile csrFile ( + .clock (clock), + .reset (reset), + .io_csr_addr + (io_req_bits_funct_branch == 4'hA ? 12'h341 : io_req_bits_csr_addr), + .io_writeReq_valid + (~(io_req_bits_funct_csr_funct == 3'h5 | io_req_bits_funct_csr_funct == 3'h4) + & (io_req_bits_funct_csr_funct == 3'h3 | io_req_bits_funct_csr_funct == 3'h2 + | io_req_bits_funct_csr_funct == 3'h1)), + .io_writeReq_bits_data + (io_req_bits_funct_csr_funct == 3'h3 + ? io_req_bits_data + : io_req_bits_funct_csr_funct == 3'h2 + ? _csrFile_io_readResp_data | io_req_bits_data + : io_req_bits_funct_csr_funct == 3'h1 + ? _csrFile_io_readResp_data & ~io_req_bits_data + : io_req_bits_data), + .io_fromCPU_cpu_operating (io_fromCPU_cpu_operating), + .io_fromCPU_inst_retire (io_fromCPU_inst_retire), + .io_fromCPU_hartid (io_fromCPU_hartid), + .io_fromCPU_vectorExecNum_valid (io_fromCPU_vectorExecNum_valid), + .io_fromCPU_vectorExecNum_bits (io_fromCPU_vectorExecNum_bits), + .io_exception_valid (io_exception_valid), + .io_exception_bits_mepc_write (io_exception_bits_mepc_write), + .io_exception_bits_mcause_write (io_exception_bits_mcause_write), + .io_vectorCsrPorts_vtype_vill (io_vectorCsrPorts_vtype_vill), + .io_vectorCsrPorts_vtype_vma (io_vectorCsrPorts_vtype_vma), + .io_vectorCsrPorts_vtype_vta (io_vectorCsrPorts_vtype_vta), + .io_vectorCsrPorts_vtype_vsew (io_vectorCsrPorts_vtype_vsew), + .io_vectorCsrPorts_vtype_vlmul (io_vectorCsrPorts_vtype_vlmul), + .io_vectorCsrPorts_vl (io_vectorCsrPorts_vl), + .io_readResp_data (_csrFile_io_readResp_data) + ); + assign io_resp_data = _csrFile_io_readResp_data; +endmodule + +module Multiplier_nxn( + input [7:0] io_multiplicand, + io_multiplier, + output [15:0] io_out +); + + assign io_out = + {8'h0, {8{io_multiplier[0]}} & io_multiplicand} + + {7'h0, {8{io_multiplier[1]}} & io_multiplicand, 1'h0} + + {6'h0, {8{io_multiplier[2]}} & io_multiplicand, 2'h0} + + {5'h0, {8{io_multiplier[3]}} & io_multiplicand, 3'h0} + + {4'h0, {8{io_multiplier[4]}} & io_multiplicand, 4'h0} + + {3'h0, {8{io_multiplier[5]}} & io_multiplicand, 5'h0} + + {2'h0, {8{io_multiplier[6]}} & io_multiplicand, 6'h0} + + {1'h0, {8{io_multiplier[7]}} & io_multiplicand, 7'h0}; +endmodule + +module Multiplier_64x8( + input [63:0] io_multiplicand, + input [7:0] io_multiplier, + output [71:0] io_out +); + + wire [15:0] _subMultipliers_7_io_out; + wire [15:0] _subMultipliers_6_io_out; + wire [15:0] _subMultipliers_5_io_out; + wire [15:0] _subMultipliers_4_io_out; + wire [15:0] _subMultipliers_3_io_out; + wire [15:0] _subMultipliers_2_io_out; + wire [15:0] _subMultipliers_1_io_out; + wire [15:0] _subMultipliers_0_io_out; + Multiplier_nxn subMultipliers_0 ( + .io_multiplicand (io_multiplicand[7:0]), + .io_multiplier (io_multiplier), + .io_out (_subMultipliers_0_io_out) + ); + Multiplier_nxn subMultipliers_1 ( + .io_multiplicand (io_multiplicand[15:8]), + .io_multiplier (io_multiplier), + .io_out (_subMultipliers_1_io_out) + ); + Multiplier_nxn subMultipliers_2 ( + .io_multiplicand (io_multiplicand[23:16]), + .io_multiplier (io_multiplier), + .io_out (_subMultipliers_2_io_out) + ); + Multiplier_nxn subMultipliers_3 ( + .io_multiplicand (io_multiplicand[31:24]), + .io_multiplier (io_multiplier), + .io_out (_subMultipliers_3_io_out) + ); + Multiplier_nxn subMultipliers_4 ( + .io_multiplicand (io_multiplicand[39:32]), + .io_multiplier (io_multiplier), + .io_out (_subMultipliers_4_io_out) + ); + Multiplier_nxn subMultipliers_5 ( + .io_multiplicand (io_multiplicand[47:40]), + .io_multiplier (io_multiplier), + .io_out (_subMultipliers_5_io_out) + ); + Multiplier_nxn subMultipliers_6 ( + .io_multiplicand (io_multiplicand[55:48]), + .io_multiplier (io_multiplier), + .io_out (_subMultipliers_6_io_out) + ); + Multiplier_nxn subMultipliers_7 ( + .io_multiplicand (io_multiplicand[63:56]), + .io_multiplier (io_multiplier), + .io_out (_subMultipliers_7_io_out) + ); + assign io_out = + {56'h0, _subMultipliers_0_io_out} + {48'h0, _subMultipliers_1_io_out, 8'h0} + + {40'h0, _subMultipliers_2_io_out, 16'h0} + {32'h0, _subMultipliers_3_io_out, 24'h0} + + {24'h0, _subMultipliers_4_io_out, 32'h0} + {16'h0, _subMultipliers_5_io_out, 40'h0} + + {8'h0, _subMultipliers_6_io_out, 48'h0} + {_subMultipliers_7_io_out, 56'h0}; +endmodule + +module NonPipelinedMultiplier( + input clock, + reset, + io_req_valid, + input [63:0] io_req_bits_multiplicand_bits, + io_req_bits_multiplier_bits, + input io_req_bits_sign, + input [3:0] io_req_bits_decode_arithmetic_funct, + input io_req_bits_decode_op32, + output io_resp_valid, + output [127:0] io_resp_bits_result, + output io_resp_bits_sign, + output [3:0] io_resp_bits_decode_arithmetic_funct, + output io_resp_bits_decode_op32 +); + + wire _io_req_ready_T; + wire [71:0] _multiplier_64x8_io_out; + reg internalReg_valid; + reg internalReg_bits_sign; + reg [127:0] internalReg_bits_result; + reg [63:0] internalReg_bits_multiplicand; + reg [63:0] internalReg_bits_multiplier; + reg [2:0] internalReg_bits_stage; + reg [3:0] internalReg_bits_decode_arithmetic_funct; + reg internalReg_bits_decode_op32; + wire multiplicand_greater_than_multiplier = + io_req_bits_multiplicand_bits > io_req_bits_multiplier_bits; + wire accept_current_request = io_req_valid & _io_req_ready_T; + wire [63:0] executor_multiplier = + accept_current_request + ? (multiplicand_greater_than_multiplier + ? io_req_bits_multiplier_bits + : io_req_bits_multiplicand_bits) + : internalReg_bits_multiplier; + wire [2:0] _executor_stage_T_1 = internalReg_bits_stage + 3'h1; + wire [2:0] executor_stage = accept_current_request ? 3'h0 : _executor_stage_T_1; + wire executor_valid = accept_current_request | internalReg_valid; + assign _io_req_ready_T = ~internalReg_valid; + wire _io_resp_valid_output = + executor_valid & (executor_multiplier[63:8] == 56'h0 | (&executor_stage)); + wire [127:0] _io_resp_bits_result_output = + (accept_current_request ? 128'h0 : internalReg_bits_result) + + ((&executor_stage) + ? {_multiplier_64x8_io_out, 56'h0} + : {8'h0, + executor_stage == 3'h6 + ? {_multiplier_64x8_io_out, 48'h0} + : {8'h0, + executor_stage == 3'h5 + ? {_multiplier_64x8_io_out, 40'h0} + : {8'h0, + executor_stage == 3'h4 + ? {_multiplier_64x8_io_out, 32'h0} + : {8'h0, + executor_stage == 3'h3 + ? {_multiplier_64x8_io_out, 24'h0} + : {8'h0, + executor_stage == 3'h2 + ? {_multiplier_64x8_io_out, 16'h0} + : {8'h0, + executor_stage == 3'h1 + ? {_multiplier_64x8_io_out, 8'h0} + : {8'h0, _multiplier_64x8_io_out}}}}}}}); + always @(posedge clock) begin + if (reset) begin + internalReg_valid <= 1'h0; + internalReg_bits_sign <= 1'h0; + internalReg_bits_result <= 128'h0; + internalReg_bits_multiplicand <= 64'h0; + internalReg_bits_multiplier <= 64'h0; + internalReg_bits_stage <= 3'h0; + internalReg_bits_decode_arithmetic_funct <= 4'h0; + internalReg_bits_decode_op32 <= 1'h0; + end + else begin + automatic logic _T_8 = accept_current_request | internalReg_valid; + internalReg_valid <= _T_8 & ~_io_resp_valid_output & executor_valid; + if (_T_8 & accept_current_request) begin + internalReg_bits_sign <= io_req_bits_sign; + if (multiplicand_greater_than_multiplier) + internalReg_bits_multiplicand <= io_req_bits_multiplicand_bits; + else + internalReg_bits_multiplicand <= io_req_bits_multiplier_bits; + internalReg_bits_decode_arithmetic_funct <= io_req_bits_decode_arithmetic_funct; + internalReg_bits_decode_op32 <= io_req_bits_decode_op32; + end + if (_T_8) begin + internalReg_bits_result <= _io_resp_bits_result_output; + internalReg_bits_multiplier <= {8'h0, executor_multiplier[63:8]}; + if (accept_current_request) + internalReg_bits_stage <= 3'h0; + else + internalReg_bits_stage <= _executor_stage_T_1; + end + end + end // always @(posedge) + Multiplier_64x8 multiplier_64x8 ( + .io_multiplicand + (accept_current_request + ? (multiplicand_greater_than_multiplier + ? io_req_bits_multiplicand_bits + : io_req_bits_multiplier_bits) + : internalReg_bits_multiplicand), + .io_multiplier (executor_multiplier[7:0]), + .io_out (_multiplier_64x8_io_out) + ); + assign io_resp_valid = _io_resp_valid_output; + assign io_resp_bits_result = _io_resp_bits_result_output; + assign io_resp_bits_sign = + accept_current_request ? io_req_bits_sign : internalReg_bits_sign; + assign io_resp_bits_decode_arithmetic_funct = + accept_current_request + ? io_req_bits_decode_arithmetic_funct + : internalReg_bits_decode_arithmetic_funct; + assign io_resp_bits_decode_op32 = + accept_current_request ? io_req_bits_decode_op32 : internalReg_bits_decode_op32; +endmodule + +module NonPipelinedMultiplierWrap( + input clock, + reset, + io_req_valid, + input [63:0] io_req_bits_rs1, + io_req_bits_rs2, + input [3:0] io_req_bits_funct_arithmetic_funct, + input io_req_bits_funct_op32, + output io_resp_valid, + output [63:0] io_resp_bits +); + + wire [127:0] _nonPipelinedMultiplier_io_resp_bits_result; + wire _nonPipelinedMultiplier_io_resp_bits_sign; + wire [3:0] _nonPipelinedMultiplier_io_resp_bits_decode_arithmetic_funct; + wire _nonPipelinedMultiplier_io_resp_bits_decode_op32; + wire rs1_inverted = + io_req_bits_rs1[63] + & (io_req_bits_funct_arithmetic_funct == 4'hA + | io_req_bits_funct_arithmetic_funct == 4'hB); + wire rs2_inverted = + io_req_bits_rs2[63] & io_req_bits_funct_arithmetic_funct == 4'hA; + wire [127:0] result128 = + _nonPipelinedMultiplier_io_resp_bits_sign + ? 128'h0 - _nonPipelinedMultiplier_io_resp_bits_result + : _nonPipelinedMultiplier_io_resp_bits_result; + NonPipelinedMultiplier nonPipelinedMultiplier ( + .clock (clock), + .reset (reset), + .io_req_valid (io_req_valid), + .io_req_bits_multiplicand_bits + (rs1_inverted + ? 64'h0 - io_req_bits_rs1 + : io_req_bits_funct_op32 ? {32'h0, io_req_bits_rs1[31:0]} : io_req_bits_rs1), + .io_req_bits_multiplier_bits + (rs2_inverted + ? 64'h0 - io_req_bits_rs2 + : io_req_bits_funct_op32 ? {32'h0, io_req_bits_rs2[31:0]} : io_req_bits_rs2), + .io_req_bits_sign (rs1_inverted ^ rs2_inverted), + .io_req_bits_decode_arithmetic_funct (io_req_bits_funct_arithmetic_funct), + .io_req_bits_decode_op32 (io_req_bits_funct_op32), + .io_resp_valid (io_resp_valid), + .io_resp_bits_result (_nonPipelinedMultiplier_io_resp_bits_result), + .io_resp_bits_sign (_nonPipelinedMultiplier_io_resp_bits_sign), + .io_resp_bits_decode_arithmetic_funct + (_nonPipelinedMultiplier_io_resp_bits_decode_arithmetic_funct), + .io_resp_bits_decode_op32 + (_nonPipelinedMultiplier_io_resp_bits_decode_op32) + ); + assign io_resp_bits = + _nonPipelinedMultiplier_io_resp_bits_decode_op32 + ? {{32{result128[31]}}, result128[31:0]} + : _nonPipelinedMultiplier_io_resp_bits_decode_arithmetic_funct == 4'h9 + ? result128[63:0] + : result128[127:64]; +endmodule + +module VectorDecoder( + input [31:0] io_inst_bits, + output io_out_isConfsetInst, + output [1:0] io_out_avl_sel, + io_out_vtype_sel, + output [2:0] io_out_mop, + output [5:0] io_out_veuFun, + output [2:0] io_out_vSource, + output io_out_vm +); + + wire _csignals_T_9 = + {io_inst_bits[31], io_inst_bits[14:12], io_inst_bits[6:0]} == 11'h3D7; + wire _csignals_T_11 = + {io_inst_bits[31:30], io_inst_bits[14:12], io_inst_bits[6:0]} == 12'hFD7; + wire [16:0] _GEN = {io_inst_bits[31:25], io_inst_bits[14:12], io_inst_bits[6:0]}; + wire _csignals_T_448 = _GEN == 17'h103D7; + wire [20:0] _GEN_0 = + {io_inst_bits[31:26], io_inst_bits[24:20], io_inst_bits[14:12], io_inst_bits[6:0]}; + wire _csignals_T_15 = _GEN_0 == 21'h7; + wire _csignals_T_17 = _GEN_0 == 21'h287; + wire _csignals_T_19 = _GEN_0 == 21'h307; + wire _csignals_T_21 = _GEN_0 == 21'h387; + wire _csignals_T_23 = _GEN_0 == 21'h27; + wire _csignals_T_25 = _GEN_0 == 21'h2A7; + wire _csignals_T_27 = _GEN_0 == 21'h327; + wire _csignals_T_29 = _GEN_0 == 21'h3A7; + wire [15:0] _GEN_1 = {io_inst_bits[31:26], io_inst_bits[14:12], io_inst_bits[6:0]}; + wire _csignals_T_31 = _GEN_1 == 16'h807; + wire _csignals_T_33 = _GEN_1 == 16'hA87; + wire _csignals_T_35 = _GEN_1 == 16'hB07; + wire _csignals_T_37 = _GEN_1 == 16'hB87; + wire _csignals_T_39 = _GEN_1 == 16'h827; + wire _csignals_T_41 = _GEN_1 == 16'hAA7; + wire _csignals_T_43 = _GEN_1 == 16'hB27; + wire _csignals_T_45 = _GEN_1 == 16'hBA7; + wire _csignals_T_47 = _GEN_1 == 16'hC07; + wire _csignals_T_49 = _GEN_1 == 16'hE87; + wire _csignals_T_51 = _GEN_1 == 16'hF07; + wire _csignals_T_53 = _GEN_1 == 16'hF87; + wire _csignals_T_55 = _GEN_1 == 16'hC27; + wire _csignals_T_57 = _GEN_1 == 16'hEA7; + wire _csignals_T_59 = _GEN_1 == 16'hF27; + wire _csignals_T_61 = _GEN_1 == 16'hFA7; + wire _csignals_T_63 = _GEN_1 == 16'h57; + wire _csignals_T_65 = _GEN_1 == 16'h257; + wire _csignals_T_67 = _GEN_1 == 16'h1D7; + wire _csignals_T_69 = _GEN_1 == 16'h857; + wire _csignals_T_71 = _GEN_1 == 16'hA57; + wire _csignals_T_73 = _GEN_1 == 16'hE57; + wire _csignals_T_75 = _GEN_1 == 16'hDD7; + wire _csignals_T_77 = _GEN_1 == 16'h2457; + wire _csignals_T_79 = _GEN_1 == 16'h2657; + wire _csignals_T_81 = _GEN_1 == 16'h25D7; + wire _csignals_T_83 = _GEN_1 == 16'h2857; + wire _csignals_T_85 = _GEN_1 == 16'h2A57; + wire _csignals_T_87 = _GEN_1 == 16'h29D7; + wire _csignals_T_89 = _GEN_1 == 16'h2C57; + wire _csignals_T_91 = _GEN_1 == 16'h2E57; + wire _csignals_T_93 = _GEN_1 == 16'h2DD7; + wire _csignals_T_95 = _GEN_1 == 16'h6057; + wire _csignals_T_97 = _GEN_1 == 16'h6257; + wire _csignals_T_99 = _GEN_1 == 16'h61D7; + wire _csignals_T_101 = _GEN_1 == 16'h6457; + wire _csignals_T_103 = _GEN_1 == 16'h6657; + wire _csignals_T_105 = _GEN_1 == 16'h65D7; + wire _csignals_T_107 = _GEN_1 == 16'h6857; + wire _csignals_T_109 = _GEN_1 == 16'h6A57; + wire _csignals_T_111 = _GEN_1 == 16'h6C57; + wire _csignals_T_113 = _GEN_1 == 16'h6E57; + wire _csignals_T_115 = _GEN_1 == 16'h7057; + wire _csignals_T_117 = _GEN_1 == 16'h7257; + wire _csignals_T_119 = _GEN_1 == 16'h71D7; + wire _csignals_T_121 = _GEN_1 == 16'h7457; + wire _csignals_T_123 = _GEN_1 == 16'h7657; + wire _csignals_T_125 = _GEN_1 == 16'h75D7; + wire _csignals_T_127 = _GEN_1 == 16'h7A57; + wire _csignals_T_129 = _GEN_1 == 16'h79D7; + wire _csignals_T_131 = _GEN_1 == 16'h7E57; + wire _csignals_T_133 = _GEN_1 == 16'h7DD7; + wire _csignals_T_135 = _GEN_1 == 16'h1057; + wire _csignals_T_137 = _GEN_1 == 16'h1257; + wire _csignals_T_139 = _GEN_1 == 16'h1457; + wire _csignals_T_141 = _GEN_1 == 16'h1657; + wire _csignals_T_143 = _GEN_1 == 16'h1857; + wire _csignals_T_145 = _GEN_1 == 16'h1A57; + wire _csignals_T_147 = _GEN_1 == 16'h1C57; + wire _csignals_T_149 = _GEN_1 == 16'h1E57; + wire _csignals_T_151 = _GEN == 17'hB857; + wire _csignals_T_153 = _GEN == 17'hBA57; + wire _csignals_T_155 = _GEN == 17'hB9D7; + wire [21:0] _GEN_2 = {io_inst_bits[31:20], io_inst_bits[14:12], io_inst_bits[6:0]}; + wire _csignals_T_157 = _GEN_2 == 22'h178057; + wire _csignals_T_159 = _GEN_2 == 22'h178257; + wire _csignals_T_161 = _GEN_2 == 22'h1781D7; + wire _csignals_T_163 = _GEN == 17'hCD57; + wire _csignals_T_165 = _GEN == 17'hED57; + wire _csignals_T_167 = _GEN == 17'hC557; + wire _csignals_T_169 = _GEN == 17'hDD57; + wire _csignals_T_171 = _GEN == 17'hD557; + wire _csignals_T_173 = _GEN == 17'hF557; + wire _csignals_T_175 = _GEN == 17'hE557; + wire _csignals_T_177 = _GEN == 17'hFD57; + wire _csignals_T_179 = _GEN_1 == 16'h9557; + wire _csignals_T_181 = _GEN_1 == 16'h9757; + wire _csignals_T_183 = _GEN_1 == 16'h9D57; + wire _csignals_T_185 = _GEN_1 == 16'h9F57; + wire _csignals_T_187 = _GEN_1 == 16'h9157; + wire _csignals_T_189 = _GEN_1 == 16'h9357; + wire _csignals_T_191 = _GEN_1 == 16'h9957; + wire _csignals_T_193 = _GEN_1 == 16'h9B57; + wire _csignals_T_195 = _GEN_1 == 16'hB557; + wire _csignals_T_197 = _GEN_1 == 16'hB757; + wire _csignals_T_199 = _GEN_1 == 16'hBD57; + wire _csignals_T_201 = _GEN_1 == 16'hBF57; + wire _csignals_T_203 = _GEN_1 == 16'hA557; + wire _csignals_T_205 = _GEN_1 == 16'hA757; + wire _csignals_T_207 = _GEN_1 == 16'hAD57; + wire _csignals_T_209 = _GEN_1 == 16'hAF57; + wire _csignals_T_211 = _GEN_1 == 16'h157; + wire _csignals_T_213 = _GEN_1 == 16'h1957; + wire _csignals_T_215 = _GEN_1 == 16'h1D57; + wire _csignals_T_217 = _GEN_1 == 16'h1157; + wire _csignals_T_219 = _GEN_1 == 16'h1557; + wire _csignals_T_221 = _GEN_1 == 16'h557; + wire _csignals_T_223 = _GEN_1 == 16'h957; + wire _csignals_T_225 = _GEN_1 == 16'hD57; + wire _csignals_T_227 = + {io_inst_bits[31:25], io_inst_bits[19:12], io_inst_bits[6:0]} == 22'h108157; + wire _csignals_T_1000 = _GEN_2 == 22'h108357; + assign io_out_isConfsetInst = _csignals_T_9 | _csignals_T_11 | _csignals_T_448; + assign io_out_avl_sel = + _csignals_T_9 ? 2'h1 : _csignals_T_11 ? 2'h2 : {1'h0, _csignals_T_448}; + assign io_out_vtype_sel = + _csignals_T_9 ? 2'h1 : _csignals_T_11 ? 2'h2 : {2{_csignals_T_448}}; + assign io_out_mop = + _csignals_T_9 | _csignals_T_11 | _csignals_T_448 + ? 3'h0 + : _csignals_T_15 | _csignals_T_17 | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 + | _csignals_T_25 | _csignals_T_27 | _csignals_T_29 + ? 3'h1 + : _csignals_T_31 | _csignals_T_33 | _csignals_T_35 | _csignals_T_37 + | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 | _csignals_T_45 + ? 3'h3 + : {_csignals_T_47 | _csignals_T_49 | _csignals_T_51 | _csignals_T_53 + | _csignals_T_55 | _csignals_T_57 | _csignals_T_59 | _csignals_T_61, + 2'h0}; + assign io_out_veuFun = + _csignals_T_9 | _csignals_T_11 | _csignals_T_448 | _csignals_T_15 | _csignals_T_17 + | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 | _csignals_T_25 | _csignals_T_27 + | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 | _csignals_T_35 | _csignals_T_37 + | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 | _csignals_T_45 | _csignals_T_47 + | _csignals_T_49 | _csignals_T_51 | _csignals_T_53 | _csignals_T_55 | _csignals_T_57 + | _csignals_T_59 | _csignals_T_61 | _csignals_T_63 | _csignals_T_65 | _csignals_T_67 + ? 6'h1 + : _csignals_T_69 | _csignals_T_71 + ? 6'h2 + : _csignals_T_73 | _csignals_T_75 + ? 6'h3 + : _csignals_T_77 | _csignals_T_79 | _csignals_T_81 + ? 6'h16 + : _csignals_T_83 | _csignals_T_85 | _csignals_T_87 + ? 6'h17 + : _csignals_T_89 | _csignals_T_91 | _csignals_T_93 + ? 6'h18 + : _csignals_T_95 | _csignals_T_97 | _csignals_T_99 + ? 6'h8 + : _csignals_T_101 | _csignals_T_103 | _csignals_T_105 + ? 6'h9 + : _csignals_T_107 | _csignals_T_109 + ? 6'hA + : _csignals_T_111 | _csignals_T_113 + ? 6'hB + : _csignals_T_115 | _csignals_T_117 + | _csignals_T_119 + ? 6'hC + : _csignals_T_121 | _csignals_T_123 + | _csignals_T_125 + ? 6'hD + : _csignals_T_127 | _csignals_T_129 + ? 6'hE + : _csignals_T_131 | _csignals_T_133 + ? 6'hF + : _csignals_T_135 + | _csignals_T_137 + ? 6'h10 + : _csignals_T_139 + | _csignals_T_141 + ? 6'h11 + : _csignals_T_143 + | _csignals_T_145 + ? 6'h12 + : _csignals_T_147 + | _csignals_T_149 + ? 6'h13 + : _csignals_T_151 + | _csignals_T_153 + | _csignals_T_155 + ? 6'h14 + : _csignals_T_157 + | _csignals_T_159 + | _csignals_T_161 + ? 6'h15 + : _csignals_T_163 + ? 6'h19 + : _csignals_T_165 + ? 6'h1A + : _csignals_T_167 + ? 6'h1B + : _csignals_T_169 + ? 6'h1C + : _csignals_T_171 + ? 6'h1D + : _csignals_T_173 + ? 6'h1E + : _csignals_T_175 + ? 6'h1F + : _csignals_T_177 + ? 6'h20 + : _csignals_T_179 + | _csignals_T_181 + ? 6'h21 + : _csignals_T_183 + | _csignals_T_185 + ? 6'h22 + : _csignals_T_187 + | _csignals_T_189 + ? 6'h23 + : _csignals_T_191 + | _csignals_T_193 + ? 6'h24 + : _csignals_T_195 + | _csignals_T_197 + ? 6'h25 + : _csignals_T_199 + | _csignals_T_201 + ? 6'h26 + : _csignals_T_203 + | _csignals_T_205 + ? 6'h27 + : _csignals_T_207 + | _csignals_T_209 + ? 6'h28 + : _csignals_T_211 + ? 6'h29 + : _csignals_T_213 + ? 6'h2A + : _csignals_T_215 + ? 6'h2B + : _csignals_T_217 + ? 6'h2C + : _csignals_T_219 + ? 6'h2D + : _csignals_T_221 + ? 6'h2E + : _csignals_T_223 + ? 6'h2F + : _csignals_T_225 + ? 6'h30 + : _csignals_T_227 + ? 6'h31 + : _csignals_T_1000 + ? 6'h32 + : 6'h1; + assign io_out_vSource = + {1'h0, + _csignals_T_9 | _csignals_T_11 | _csignals_T_448 | _csignals_T_15 | _csignals_T_17 + | _csignals_T_19 | _csignals_T_21 | _csignals_T_23 | _csignals_T_25 | _csignals_T_27 + | _csignals_T_29 | _csignals_T_31 | _csignals_T_33 | _csignals_T_35 | _csignals_T_37 + | _csignals_T_39 | _csignals_T_41 | _csignals_T_43 | _csignals_T_45 | _csignals_T_47 + | _csignals_T_49 | _csignals_T_51 | _csignals_T_53 | _csignals_T_55 | _csignals_T_57 + | _csignals_T_59 | _csignals_T_61 | _csignals_T_63 + ? 2'h0 + : _csignals_T_65 + ? 2'h1 + : _csignals_T_67 + ? 2'h2 + : _csignals_T_69 + ? 2'h0 + : _csignals_T_71 | _csignals_T_73 + ? 2'h1 + : _csignals_T_75 + ? 2'h2 + : _csignals_T_77 + ? 2'h0 + : _csignals_T_79 + ? 2'h1 + : _csignals_T_81 + ? 2'h2 + : _csignals_T_83 + ? 2'h0 + : _csignals_T_85 + ? 2'h1 + : _csignals_T_87 + ? 2'h2 + : _csignals_T_89 + ? 2'h0 + : _csignals_T_91 + ? 2'h1 + : _csignals_T_93 + ? 2'h2 + : _csignals_T_95 + ? 2'h0 + : _csignals_T_97 + ? 2'h1 + : _csignals_T_99 + ? 2'h2 + : _csignals_T_101 + ? 2'h0 + : _csignals_T_103 + ? 2'h1 + : _csignals_T_105 + ? 2'h2 + : _csignals_T_107 + ? 2'h0 + : _csignals_T_109 + ? 2'h1 + : _csignals_T_111 + ? 2'h0 + : _csignals_T_113 + ? 2'h1 + : _csignals_T_115 + ? 2'h0 + : _csignals_T_117 + ? 2'h1 + : _csignals_T_119 + ? 2'h2 + : _csignals_T_121 + ? 2'h0 + : _csignals_T_123 + ? 2'h1 + : _csignals_T_125 + ? 2'h2 + : _csignals_T_127 + ? 2'h1 + : _csignals_T_129 + ? 2'h2 + : _csignals_T_131 + ? 2'h1 + : _csignals_T_133 + ? 2'h2 + : _csignals_T_135 + ? 2'h0 + : _csignals_T_137 + ? 2'h1 + : _csignals_T_139 + ? 2'h0 + : _csignals_T_141 + ? 2'h1 + : _csignals_T_143 + ? 2'h0 + : _csignals_T_145 + ? 2'h1 + : _csignals_T_147 + ? 2'h0 + : _csignals_T_149 + ? 2'h1 + : _csignals_T_151 + ? 2'h0 + : _csignals_T_153 + ? 2'h1 + : _csignals_T_155 + ? 2'h2 + : _csignals_T_157 + ? 2'h0 + : _csignals_T_159 + ? 2'h1 + : _csignals_T_161 + ? 2'h2 + : _csignals_T_163 + | _csignals_T_165 + | _csignals_T_167 + | _csignals_T_169 + | _csignals_T_171 + | _csignals_T_173 + | _csignals_T_175 + | _csignals_T_177 + ? 2'h3 + : {1'h0, + ~_csignals_T_179 + & (_csignals_T_181 + | ~_csignals_T_183 + & (_csignals_T_185 + | ~_csignals_T_187 + & (_csignals_T_189 + | ~_csignals_T_191 + & (_csignals_T_193 + | ~_csignals_T_195 + & (_csignals_T_197 + | ~_csignals_T_199 + & (_csignals_T_201 + | ~_csignals_T_203 + & (_csignals_T_205 + | ~_csignals_T_207 + & (_csignals_T_209 + | ~(_csignals_T_211 + | _csignals_T_213 + | _csignals_T_215 + | _csignals_T_217 + | _csignals_T_219 + | _csignals_T_221 + | _csignals_T_223 + | _csignals_T_225 + | _csignals_T_227) + & _csignals_T_1000))))))))}}; + assign io_out_vm = io_inst_bits[25]; +endmodule + +module VecCtrlUnit( + input io_req_valid, + input [1:0] io_req_bits_vDecode_avl_sel, + io_req_bits_vDecode_vtype_sel, + input [63:0] io_req_bits_rs1_value, + io_req_bits_rs2_value, + io_req_bits_zimm, + io_req_bits_uimm, + output io_resp_valid, + io_resp_bits_vtype_vill, + io_resp_bits_vtype_vma, + io_resp_bits_vtype_vta, + output [2:0] io_resp_bits_vtype_vsew, + io_resp_bits_vtype_vlmul, + output [5:0] io_resp_bits_vl +); + + wire [63:0] avl = + io_req_bits_vDecode_avl_sel == 2'h1 ? io_req_bits_rs1_value : io_req_bits_uimm; + wire [63:0] _T_12 = + (&io_req_bits_vDecode_vtype_sel) + ? io_req_bits_rs2_value + : {52'h0, + io_req_bits_vDecode_vtype_sel == 2'h2 + ? {2'h0, io_req_bits_zimm[9:0]} + : io_req_bits_vDecode_vtype_sel == 2'h1 + ? {1'h0, io_req_bits_zimm[10:0]} + : 12'h0}; + wire [5:0] maxVl = + _T_12[5:3] == 3'h3 + ? 6'h4 + : _T_12[5:3] == 3'h2 + ? 6'h8 + : _T_12[5:3] == 3'h1 ? 6'h10 : {_T_12[5:3] == 3'h0, 5'h0}; + assign io_resp_valid = io_req_valid; + assign io_resp_bits_vtype_vill = + _T_12[63] | (|(_T_12[62:8])) | _T_12[5] | (|(_T_12[2:0])); + assign io_resp_bits_vtype_vma = _T_12[7]; + assign io_resp_bits_vtype_vta = _T_12[6]; + assign io_resp_bits_vtype_vsew = _T_12[5:3]; + assign io_resp_bits_vtype_vlmul = _T_12[2:0]; + assign io_resp_bits_vl = avl >= {58'h0, maxVl} ? maxVl : avl[5:0]; +endmodule + +module VecRegFile( + input clock, + input [2:0] io_readReq_0_req_sew, + input [4:0] io_readReq_0_req_idx, + io_readReq_0_req_vs2, + io_readReq_0_req_vd, + input [2:0] io_readReq_1_req_sew, + input io_readReq_1_req_readVdAsMaskSource, + input [4:0] io_readReq_1_req_idx, + io_readReq_1_req_vs1, + io_readReq_1_req_vs2, + io_readReq_1_req_vd, + input [2:0] io_readReq_2_req_sew, + input io_readReq_2_req_readVdAsMaskSource, + input [4:0] io_readReq_2_req_idx, + io_readReq_2_req_vs1, + io_readReq_2_req_vs2, + io_readReq_2_req_vd, + input io_writeReq_0_valid, + input [4:0] io_writeReq_0_bits_vd, + input [2:0] io_writeReq_0_bits_vtype_vsew, + input [4:0] io_writeReq_0_bits_index, + input [63:0] io_writeReq_0_bits_data, + input io_writeReq_0_bits_writeReq, + io_writeReq_1_valid, + input [4:0] io_writeReq_1_bits_vd, + input [2:0] io_writeReq_1_bits_vtype_vsew, + input [4:0] io_writeReq_1_bits_index, + input [63:0] io_writeReq_1_bits_data, + input io_writeReq_1_bits_writeReq, + io_writeReq_2_valid, + input [4:0] io_writeReq_2_bits_vd, + input [2:0] io_writeReq_2_bits_vtype_vsew, + input [4:0] io_writeReq_2_bits_index, + input [63:0] io_writeReq_2_bits_data, + input io_writeReq_2_bits_writeReq, + output [63:0] io_readReq_0_resp_vs2Out, + io_readReq_0_resp_vdOut, + output io_readReq_0_resp_vm, + output [63:0] io_readReq_1_resp_vs1Out, + io_readReq_1_resp_vs2Out, + io_readReq_1_resp_vdOut, + output io_readReq_1_resp_vm, + output [63:0] io_readReq_2_resp_vs1Out, + io_readReq_2_resp_vs2Out, + io_readReq_2_resp_vdOut, + output io_readReq_2_resp_vm +); + + wire internalWriteMask_2_31; + wire internalWriteMask_2_30; + wire internalWriteMask_2_29; + wire internalWriteMask_2_28; + wire internalWriteMask_2_27; + wire internalWriteMask_2_26; + wire internalWriteMask_2_25; + wire internalWriteMask_2_24; + wire internalWriteMask_2_23; + wire internalWriteMask_2_22; + wire internalWriteMask_2_21; + wire internalWriteMask_2_20; + wire internalWriteMask_2_19; + wire internalWriteMask_2_18; + wire internalWriteMask_2_17; + wire internalWriteMask_2_16; + wire internalWriteMask_2_15; + wire internalWriteMask_2_14; + wire internalWriteMask_2_13; + wire internalWriteMask_2_12; + wire internalWriteMask_2_11; + wire internalWriteMask_2_10; + wire internalWriteMask_2_9; + wire internalWriteMask_2_8; + wire internalWriteMask_2_7; + wire internalWriteMask_2_6; + wire internalWriteMask_2_5; + wire internalWriteMask_2_4; + wire internalWriteMask_2_3; + wire internalWriteMask_2_2; + wire internalWriteMask_2_1; + wire internalWriteMask_2_0; + wire [7:0] internalWriteData_2_31; + wire [7:0] internalWriteData_2_30; + wire [7:0] internalWriteData_2_29; + wire [7:0] internalWriteData_2_28; + wire [7:0] internalWriteData_2_27; + wire [7:0] internalWriteData_2_26; + wire [7:0] internalWriteData_2_25; + wire [7:0] internalWriteData_2_24; + wire [7:0] internalWriteData_2_23; + wire [7:0] internalWriteData_2_22; + wire [7:0] internalWriteData_2_21; + wire [7:0] internalWriteData_2_20; + wire [7:0] internalWriteData_2_19; + wire [7:0] internalWriteData_2_18; + wire [7:0] internalWriteData_2_17; + wire [7:0] internalWriteData_2_16; + wire [7:0] internalWriteData_2_15; + wire [7:0] internalWriteData_2_14; + wire [7:0] internalWriteData_2_13; + wire [7:0] internalWriteData_2_12; + wire [7:0] internalWriteData_2_11; + wire [7:0] internalWriteData_2_10; + wire [7:0] internalWriteData_2_9; + wire [7:0] internalWriteData_2_8; + wire [7:0] internalWriteData_2_7; + wire [7:0] internalWriteData_2_6; + wire [7:0] internalWriteData_2_5; + wire [7:0] internalWriteData_2_4; + wire [7:0] internalWriteData_2_3; + wire [7:0] internalWriteData_2_2; + wire [7:0] internalWriteData_2_1; + wire [7:0] internalWriteData_2_0; + wire internalWriteMask_1_31; + wire internalWriteMask_1_30; + wire internalWriteMask_1_29; + wire internalWriteMask_1_28; + wire internalWriteMask_1_27; + wire internalWriteMask_1_26; + wire internalWriteMask_1_25; + wire internalWriteMask_1_24; + wire internalWriteMask_1_23; + wire internalWriteMask_1_22; + wire internalWriteMask_1_21; + wire internalWriteMask_1_20; + wire internalWriteMask_1_19; + wire internalWriteMask_1_18; + wire internalWriteMask_1_17; + wire internalWriteMask_1_16; + wire internalWriteMask_1_15; + wire internalWriteMask_1_14; + wire internalWriteMask_1_13; + wire internalWriteMask_1_12; + wire internalWriteMask_1_11; + wire internalWriteMask_1_10; + wire internalWriteMask_1_9; + wire internalWriteMask_1_8; + wire internalWriteMask_1_7; + wire internalWriteMask_1_6; + wire internalWriteMask_1_5; + wire internalWriteMask_1_4; + wire internalWriteMask_1_3; + wire internalWriteMask_1_2; + wire internalWriteMask_1_1; + wire internalWriteMask_1_0; + wire [7:0] internalWriteData_1_31; + wire [7:0] internalWriteData_1_30; + wire [7:0] internalWriteData_1_29; + wire [7:0] internalWriteData_1_28; + wire [7:0] internalWriteData_1_27; + wire [7:0] internalWriteData_1_26; + wire [7:0] internalWriteData_1_25; + wire [7:0] internalWriteData_1_24; + wire [7:0] internalWriteData_1_23; + wire [7:0] internalWriteData_1_22; + wire [7:0] internalWriteData_1_21; + wire [7:0] internalWriteData_1_20; + wire [7:0] internalWriteData_1_19; + wire [7:0] internalWriteData_1_18; + wire [7:0] internalWriteData_1_17; + wire [7:0] internalWriteData_1_16; + wire [7:0] internalWriteData_1_15; + wire [7:0] internalWriteData_1_14; + wire [7:0] internalWriteData_1_13; + wire [7:0] internalWriteData_1_12; + wire [7:0] internalWriteData_1_11; + wire [7:0] internalWriteData_1_10; + wire [7:0] internalWriteData_1_9; + wire [7:0] internalWriteData_1_8; + wire [7:0] internalWriteData_1_7; + wire [7:0] internalWriteData_1_6; + wire [7:0] internalWriteData_1_5; + wire [7:0] internalWriteData_1_4; + wire [7:0] internalWriteData_1_3; + wire [7:0] internalWriteData_1_2; + wire [7:0] internalWriteData_1_1; + wire [7:0] internalWriteData_1_0; + wire internalWriteMask_31; + wire internalWriteMask_30; + wire internalWriteMask_29; + wire internalWriteMask_28; + wire internalWriteMask_27; + wire internalWriteMask_26; + wire internalWriteMask_25; + wire internalWriteMask_24; + wire internalWriteMask_23; + wire internalWriteMask_22; + wire internalWriteMask_21; + wire internalWriteMask_20; + wire internalWriteMask_19; + wire internalWriteMask_18; + wire internalWriteMask_17; + wire internalWriteMask_16; + wire internalWriteMask_15; + wire internalWriteMask_14; + wire internalWriteMask_13; + wire internalWriteMask_12; + wire internalWriteMask_11; + wire internalWriteMask_10; + wire internalWriteMask_9; + wire internalWriteMask_8; + wire internalWriteMask_7; + wire internalWriteMask_6; + wire internalWriteMask_5; + wire internalWriteMask_4; + wire internalWriteMask_3; + wire internalWriteMask_2; + wire internalWriteMask_1; + wire internalWriteMask_0; + wire [7:0] internalWriteData_31; + wire [7:0] internalWriteData_30; + wire [7:0] internalWriteData_29; + wire [7:0] internalWriteData_28; + wire [7:0] internalWriteData_27; + wire [7:0] internalWriteData_26; + wire [7:0] internalWriteData_25; + wire [7:0] internalWriteData_24; + wire [7:0] internalWriteData_23; + wire [7:0] internalWriteData_22; + wire [7:0] internalWriteData_21; + wire [7:0] internalWriteData_20; + wire [7:0] internalWriteData_19; + wire [7:0] internalWriteData_18; + wire [7:0] internalWriteData_17; + wire [7:0] internalWriteData_16; + wire [7:0] internalWriteData_15; + wire [7:0] internalWriteData_14; + wire [7:0] internalWriteData_13; + wire [7:0] internalWriteData_12; + wire [7:0] internalWriteData_11; + wire [7:0] internalWriteData_10; + wire [7:0] internalWriteData_9; + wire [7:0] internalWriteData_8; + wire [7:0] internalWriteData_7; + wire [7:0] internalWriteData_6; + wire [7:0] internalWriteData_5; + wire [7:0] internalWriteData_4; + wire [7:0] internalWriteData_3; + wire [7:0] internalWriteData_2; + wire [7:0] internalWriteData_1; + wire [7:0] internalWriteData_0; + wire [255:0] _vrf_ext_R0_data; + wire [255:0] _vrf_ext_R1_data; + wire [255:0] _vrf_ext_R3_data; + wire [255:0] _vrf_ext_R4_data; + wire [255:0] _vrf_ext_R5_data; + wire [255:0] _vrf_ext_R6_data; + wire [255:0] _vrf_ext_R7_data; + wire [255:0] _vrf_ext_R8_data; + wire [255:0] _vrf_ext_R9_data; + wire [255:0] _vrf_ext_R10_data; + wire [255:0] _vrf_ext_R11_data; + wire _io_readReq_0_resp_res_vdOut_nonVmRes_T_74 = + io_readReq_0_req_sew == 3'h0; + wire _io_readReq_0_resp_res_vdOut_nonVmRes_T_76 = + io_readReq_0_req_sew == 3'h1; + wire _io_readReq_0_resp_res_vdOut_nonVmRes_T_78 = + io_readReq_0_req_sew == 3'h2; + wire _io_readReq_0_resp_res_vdOut_nonVmRes_T_80 = + io_readReq_0_req_sew == 3'h3; + wire [31:0][7:0] _GEN = + {{_vrf_ext_R3_data[255:248]}, + {_vrf_ext_R3_data[247:240]}, + {_vrf_ext_R3_data[239:232]}, + {_vrf_ext_R3_data[231:224]}, + {_vrf_ext_R3_data[223:216]}, + {_vrf_ext_R3_data[215:208]}, + {_vrf_ext_R3_data[207:200]}, + {_vrf_ext_R3_data[199:192]}, + {_vrf_ext_R3_data[191:184]}, + {_vrf_ext_R3_data[183:176]}, + {_vrf_ext_R3_data[175:168]}, + {_vrf_ext_R3_data[167:160]}, + {_vrf_ext_R3_data[159:152]}, + {_vrf_ext_R3_data[151:144]}, + {_vrf_ext_R3_data[143:136]}, + {_vrf_ext_R3_data[135:128]}, + {_vrf_ext_R3_data[127:120]}, + {_vrf_ext_R3_data[119:112]}, + {_vrf_ext_R3_data[111:104]}, + {_vrf_ext_R3_data[103:96]}, + {_vrf_ext_R3_data[95:88]}, + {_vrf_ext_R3_data[87:80]}, + {_vrf_ext_R3_data[79:72]}, + {_vrf_ext_R3_data[71:64]}, + {_vrf_ext_R3_data[63:56]}, + {_vrf_ext_R3_data[55:48]}, + {_vrf_ext_R3_data[47:40]}, + {_vrf_ext_R3_data[39:32]}, + {_vrf_ext_R3_data[31:24]}, + {_vrf_ext_R3_data[23:16]}, + {_vrf_ext_R3_data[15:8]}, + {_vrf_ext_R3_data[7:0]}}; + wire [4:0] _GEN_0 = {io_readReq_0_req_idx[3:0], 1'h0}; + wire [7:0] _GEN_1 = _GEN[_GEN_0 + 5'h1]; + wire [4:0] _GEN_2 = {io_readReq_0_req_idx[2:0], 2'h0}; + wire [7:0] _GEN_3 = _GEN[_GEN_2 + 5'h3]; + wire [4:0] _GEN_4 = {io_readReq_0_req_idx[1:0], 3'h0}; + wire [31:0][7:0] _GEN_5 = + {{_vrf_ext_R1_data[255:248]}, + {_vrf_ext_R1_data[247:240]}, + {_vrf_ext_R1_data[239:232]}, + {_vrf_ext_R1_data[231:224]}, + {_vrf_ext_R1_data[223:216]}, + {_vrf_ext_R1_data[215:208]}, + {_vrf_ext_R1_data[207:200]}, + {_vrf_ext_R1_data[199:192]}, + {_vrf_ext_R1_data[191:184]}, + {_vrf_ext_R1_data[183:176]}, + {_vrf_ext_R1_data[175:168]}, + {_vrf_ext_R1_data[167:160]}, + {_vrf_ext_R1_data[159:152]}, + {_vrf_ext_R1_data[151:144]}, + {_vrf_ext_R1_data[143:136]}, + {_vrf_ext_R1_data[135:128]}, + {_vrf_ext_R1_data[127:120]}, + {_vrf_ext_R1_data[119:112]}, + {_vrf_ext_R1_data[111:104]}, + {_vrf_ext_R1_data[103:96]}, + {_vrf_ext_R1_data[95:88]}, + {_vrf_ext_R1_data[87:80]}, + {_vrf_ext_R1_data[79:72]}, + {_vrf_ext_R1_data[71:64]}, + {_vrf_ext_R1_data[63:56]}, + {_vrf_ext_R1_data[55:48]}, + {_vrf_ext_R1_data[47:40]}, + {_vrf_ext_R1_data[39:32]}, + {_vrf_ext_R1_data[31:24]}, + {_vrf_ext_R1_data[23:16]}, + {_vrf_ext_R1_data[15:8]}, + {_vrf_ext_R1_data[7:0]}}; + wire [7:0] _GEN_6 = _GEN_5[_GEN_0 + 5'h1]; + wire [7:0] _GEN_7 = _GEN_5[_GEN_2 + 5'h3]; + wire [31:0][7:0] _GEN_8 = + {{_vrf_ext_R0_data[255:248]}, + {_vrf_ext_R0_data[247:240]}, + {_vrf_ext_R0_data[239:232]}, + {_vrf_ext_R0_data[231:224]}, + {_vrf_ext_R0_data[223:216]}, + {_vrf_ext_R0_data[215:208]}, + {_vrf_ext_R0_data[207:200]}, + {_vrf_ext_R0_data[199:192]}, + {_vrf_ext_R0_data[191:184]}, + {_vrf_ext_R0_data[183:176]}, + {_vrf_ext_R0_data[175:168]}, + {_vrf_ext_R0_data[167:160]}, + {_vrf_ext_R0_data[159:152]}, + {_vrf_ext_R0_data[151:144]}, + {_vrf_ext_R0_data[143:136]}, + {_vrf_ext_R0_data[135:128]}, + {_vrf_ext_R0_data[127:120]}, + {_vrf_ext_R0_data[119:112]}, + {_vrf_ext_R0_data[111:104]}, + {_vrf_ext_R0_data[103:96]}, + {_vrf_ext_R0_data[95:88]}, + {_vrf_ext_R0_data[87:80]}, + {_vrf_ext_R0_data[79:72]}, + {_vrf_ext_R0_data[71:64]}, + {_vrf_ext_R0_data[63:56]}, + {_vrf_ext_R0_data[55:48]}, + {_vrf_ext_R0_data[47:40]}, + {_vrf_ext_R0_data[39:32]}, + {_vrf_ext_R0_data[31:24]}, + {_vrf_ext_R0_data[23:16]}, + {_vrf_ext_R0_data[15:8]}, + {_vrf_ext_R0_data[7:0]}}; + wire [7:0] _io_readReq_0_resp_res_vm_T_2 = + _GEN_8[{3'h0, io_readReq_0_req_idx[4:3]}] >> io_readReq_0_req_idx[2:0]; + wire [31:0][7:0] _GEN_9 = + {{_vrf_ext_R6_data[255:248]}, + {_vrf_ext_R6_data[247:240]}, + {_vrf_ext_R6_data[239:232]}, + {_vrf_ext_R6_data[231:224]}, + {_vrf_ext_R6_data[223:216]}, + {_vrf_ext_R6_data[215:208]}, + {_vrf_ext_R6_data[207:200]}, + {_vrf_ext_R6_data[199:192]}, + {_vrf_ext_R6_data[191:184]}, + {_vrf_ext_R6_data[183:176]}, + {_vrf_ext_R6_data[175:168]}, + {_vrf_ext_R6_data[167:160]}, + {_vrf_ext_R6_data[159:152]}, + {_vrf_ext_R6_data[151:144]}, + {_vrf_ext_R6_data[143:136]}, + {_vrf_ext_R6_data[135:128]}, + {_vrf_ext_R6_data[127:120]}, + {_vrf_ext_R6_data[119:112]}, + {_vrf_ext_R6_data[111:104]}, + {_vrf_ext_R6_data[103:96]}, + {_vrf_ext_R6_data[95:88]}, + {_vrf_ext_R6_data[87:80]}, + {_vrf_ext_R6_data[79:72]}, + {_vrf_ext_R6_data[71:64]}, + {_vrf_ext_R6_data[63:56]}, + {_vrf_ext_R6_data[55:48]}, + {_vrf_ext_R6_data[47:40]}, + {_vrf_ext_R6_data[39:32]}, + {_vrf_ext_R6_data[31:24]}, + {_vrf_ext_R6_data[23:16]}, + {_vrf_ext_R6_data[15:8]}, + {_vrf_ext_R6_data[7:0]}}; + wire [4:0] _GEN_10 = {io_readReq_1_req_idx[3:0], 1'h0}; + wire [7:0] _GEN_11 = _GEN_9[_GEN_10 + 5'h1]; + wire [4:0] _GEN_12 = {io_readReq_1_req_idx[2:0], 2'h0}; + wire [7:0] _GEN_13 = _GEN_9[_GEN_12 + 5'h3]; + wire [4:0] _GEN_14 = {io_readReq_1_req_idx[1:0], 3'h0}; + wire _io_readReq_1_resp_res_vdOut_nonVmRes_T_74 = + io_readReq_1_req_sew == 3'h0; + wire _io_readReq_1_resp_res_vdOut_nonVmRes_T_76 = + io_readReq_1_req_sew == 3'h1; + wire _io_readReq_1_resp_res_vdOut_nonVmRes_T_78 = + io_readReq_1_req_sew == 3'h2; + wire _io_readReq_1_resp_res_vdOut_nonVmRes_T_80 = + io_readReq_1_req_sew == 3'h3; + wire [31:0][7:0] _GEN_15 = + {{_vrf_ext_R7_data[255:248]}, + {_vrf_ext_R7_data[247:240]}, + {_vrf_ext_R7_data[239:232]}, + {_vrf_ext_R7_data[231:224]}, + {_vrf_ext_R7_data[223:216]}, + {_vrf_ext_R7_data[215:208]}, + {_vrf_ext_R7_data[207:200]}, + {_vrf_ext_R7_data[199:192]}, + {_vrf_ext_R7_data[191:184]}, + {_vrf_ext_R7_data[183:176]}, + {_vrf_ext_R7_data[175:168]}, + {_vrf_ext_R7_data[167:160]}, + {_vrf_ext_R7_data[159:152]}, + {_vrf_ext_R7_data[151:144]}, + {_vrf_ext_R7_data[143:136]}, + {_vrf_ext_R7_data[135:128]}, + {_vrf_ext_R7_data[127:120]}, + {_vrf_ext_R7_data[119:112]}, + {_vrf_ext_R7_data[111:104]}, + {_vrf_ext_R7_data[103:96]}, + {_vrf_ext_R7_data[95:88]}, + {_vrf_ext_R7_data[87:80]}, + {_vrf_ext_R7_data[79:72]}, + {_vrf_ext_R7_data[71:64]}, + {_vrf_ext_R7_data[63:56]}, + {_vrf_ext_R7_data[55:48]}, + {_vrf_ext_R7_data[47:40]}, + {_vrf_ext_R7_data[39:32]}, + {_vrf_ext_R7_data[31:24]}, + {_vrf_ext_R7_data[23:16]}, + {_vrf_ext_R7_data[15:8]}, + {_vrf_ext_R7_data[7:0]}}; + wire [7:0] _GEN_16 = _GEN_15[_GEN_10 + 5'h1]; + wire [7:0] _GEN_17 = _GEN_15[_GEN_12 + 5'h3]; + wire [31:0][7:0] _GEN_18 = + {{_vrf_ext_R5_data[255:248]}, + {_vrf_ext_R5_data[247:240]}, + {_vrf_ext_R5_data[239:232]}, + {_vrf_ext_R5_data[231:224]}, + {_vrf_ext_R5_data[223:216]}, + {_vrf_ext_R5_data[215:208]}, + {_vrf_ext_R5_data[207:200]}, + {_vrf_ext_R5_data[199:192]}, + {_vrf_ext_R5_data[191:184]}, + {_vrf_ext_R5_data[183:176]}, + {_vrf_ext_R5_data[175:168]}, + {_vrf_ext_R5_data[167:160]}, + {_vrf_ext_R5_data[159:152]}, + {_vrf_ext_R5_data[151:144]}, + {_vrf_ext_R5_data[143:136]}, + {_vrf_ext_R5_data[135:128]}, + {_vrf_ext_R5_data[127:120]}, + {_vrf_ext_R5_data[119:112]}, + {_vrf_ext_R5_data[111:104]}, + {_vrf_ext_R5_data[103:96]}, + {_vrf_ext_R5_data[95:88]}, + {_vrf_ext_R5_data[87:80]}, + {_vrf_ext_R5_data[79:72]}, + {_vrf_ext_R5_data[71:64]}, + {_vrf_ext_R5_data[63:56]}, + {_vrf_ext_R5_data[55:48]}, + {_vrf_ext_R5_data[47:40]}, + {_vrf_ext_R5_data[39:32]}, + {_vrf_ext_R5_data[31:24]}, + {_vrf_ext_R5_data[23:16]}, + {_vrf_ext_R5_data[15:8]}, + {_vrf_ext_R5_data[7:0]}}; + wire [7:0] _GEN_19 = _GEN_18[_GEN_10 + 5'h1]; + wire [7:0] _GEN_20 = _GEN_18[_GEN_12 + 5'h3]; + wire [4:0] _GEN_21 = {3'h0, io_readReq_1_req_idx[4:3]}; + wire [31:0][7:0] _GEN_22 = + {{_vrf_ext_R4_data[255:248]}, + {_vrf_ext_R4_data[247:240]}, + {_vrf_ext_R4_data[239:232]}, + {_vrf_ext_R4_data[231:224]}, + {_vrf_ext_R4_data[223:216]}, + {_vrf_ext_R4_data[215:208]}, + {_vrf_ext_R4_data[207:200]}, + {_vrf_ext_R4_data[199:192]}, + {_vrf_ext_R4_data[191:184]}, + {_vrf_ext_R4_data[183:176]}, + {_vrf_ext_R4_data[175:168]}, + {_vrf_ext_R4_data[167:160]}, + {_vrf_ext_R4_data[159:152]}, + {_vrf_ext_R4_data[151:144]}, + {_vrf_ext_R4_data[143:136]}, + {_vrf_ext_R4_data[135:128]}, + {_vrf_ext_R4_data[127:120]}, + {_vrf_ext_R4_data[119:112]}, + {_vrf_ext_R4_data[111:104]}, + {_vrf_ext_R4_data[103:96]}, + {_vrf_ext_R4_data[95:88]}, + {_vrf_ext_R4_data[87:80]}, + {_vrf_ext_R4_data[79:72]}, + {_vrf_ext_R4_data[71:64]}, + {_vrf_ext_R4_data[63:56]}, + {_vrf_ext_R4_data[55:48]}, + {_vrf_ext_R4_data[47:40]}, + {_vrf_ext_R4_data[39:32]}, + {_vrf_ext_R4_data[31:24]}, + {_vrf_ext_R4_data[23:16]}, + {_vrf_ext_R4_data[15:8]}, + {_vrf_ext_R4_data[7:0]}}; + wire [7:0] _io_readReq_1_resp_res_vm_T_2 = + _GEN_22[_GEN_21] >> io_readReq_1_req_idx[2:0]; + wire [31:0][7:0] _GEN_23 = + {{_vrf_ext_R10_data[255:248]}, + {_vrf_ext_R10_data[247:240]}, + {_vrf_ext_R10_data[239:232]}, + {_vrf_ext_R10_data[231:224]}, + {_vrf_ext_R10_data[223:216]}, + {_vrf_ext_R10_data[215:208]}, + {_vrf_ext_R10_data[207:200]}, + {_vrf_ext_R10_data[199:192]}, + {_vrf_ext_R10_data[191:184]}, + {_vrf_ext_R10_data[183:176]}, + {_vrf_ext_R10_data[175:168]}, + {_vrf_ext_R10_data[167:160]}, + {_vrf_ext_R10_data[159:152]}, + {_vrf_ext_R10_data[151:144]}, + {_vrf_ext_R10_data[143:136]}, + {_vrf_ext_R10_data[135:128]}, + {_vrf_ext_R10_data[127:120]}, + {_vrf_ext_R10_data[119:112]}, + {_vrf_ext_R10_data[111:104]}, + {_vrf_ext_R10_data[103:96]}, + {_vrf_ext_R10_data[95:88]}, + {_vrf_ext_R10_data[87:80]}, + {_vrf_ext_R10_data[79:72]}, + {_vrf_ext_R10_data[71:64]}, + {_vrf_ext_R10_data[63:56]}, + {_vrf_ext_R10_data[55:48]}, + {_vrf_ext_R10_data[47:40]}, + {_vrf_ext_R10_data[39:32]}, + {_vrf_ext_R10_data[31:24]}, + {_vrf_ext_R10_data[23:16]}, + {_vrf_ext_R10_data[15:8]}, + {_vrf_ext_R10_data[7:0]}}; + wire [4:0] _GEN_24 = {io_readReq_2_req_idx[3:0], 1'h0}; + wire [7:0] _GEN_25 = _GEN_23[_GEN_24 + 5'h1]; + wire [4:0] _GEN_26 = {io_readReq_2_req_idx[2:0], 2'h0}; + wire [7:0] _GEN_27 = _GEN_23[_GEN_26 + 5'h3]; + wire [4:0] _GEN_28 = {io_readReq_2_req_idx[1:0], 3'h0}; + wire _io_readReq_2_resp_res_vdOut_nonVmRes_T_74 = + io_readReq_2_req_sew == 3'h0; + wire _io_readReq_2_resp_res_vdOut_nonVmRes_T_76 = + io_readReq_2_req_sew == 3'h1; + wire _io_readReq_2_resp_res_vdOut_nonVmRes_T_78 = + io_readReq_2_req_sew == 3'h2; + wire _io_readReq_2_resp_res_vdOut_nonVmRes_T_80 = + io_readReq_2_req_sew == 3'h3; + wire [31:0][7:0] _GEN_29 = + {{_vrf_ext_R11_data[255:248]}, + {_vrf_ext_R11_data[247:240]}, + {_vrf_ext_R11_data[239:232]}, + {_vrf_ext_R11_data[231:224]}, + {_vrf_ext_R11_data[223:216]}, + {_vrf_ext_R11_data[215:208]}, + {_vrf_ext_R11_data[207:200]}, + {_vrf_ext_R11_data[199:192]}, + {_vrf_ext_R11_data[191:184]}, + {_vrf_ext_R11_data[183:176]}, + {_vrf_ext_R11_data[175:168]}, + {_vrf_ext_R11_data[167:160]}, + {_vrf_ext_R11_data[159:152]}, + {_vrf_ext_R11_data[151:144]}, + {_vrf_ext_R11_data[143:136]}, + {_vrf_ext_R11_data[135:128]}, + {_vrf_ext_R11_data[127:120]}, + {_vrf_ext_R11_data[119:112]}, + {_vrf_ext_R11_data[111:104]}, + {_vrf_ext_R11_data[103:96]}, + {_vrf_ext_R11_data[95:88]}, + {_vrf_ext_R11_data[87:80]}, + {_vrf_ext_R11_data[79:72]}, + {_vrf_ext_R11_data[71:64]}, + {_vrf_ext_R11_data[63:56]}, + {_vrf_ext_R11_data[55:48]}, + {_vrf_ext_R11_data[47:40]}, + {_vrf_ext_R11_data[39:32]}, + {_vrf_ext_R11_data[31:24]}, + {_vrf_ext_R11_data[23:16]}, + {_vrf_ext_R11_data[15:8]}, + {_vrf_ext_R11_data[7:0]}}; + wire [7:0] _GEN_30 = _GEN_29[_GEN_24 + 5'h1]; + wire [7:0] _GEN_31 = _GEN_29[_GEN_26 + 5'h3]; + wire [31:0][7:0] _GEN_32 = + {{_vrf_ext_R9_data[255:248]}, + {_vrf_ext_R9_data[247:240]}, + {_vrf_ext_R9_data[239:232]}, + {_vrf_ext_R9_data[231:224]}, + {_vrf_ext_R9_data[223:216]}, + {_vrf_ext_R9_data[215:208]}, + {_vrf_ext_R9_data[207:200]}, + {_vrf_ext_R9_data[199:192]}, + {_vrf_ext_R9_data[191:184]}, + {_vrf_ext_R9_data[183:176]}, + {_vrf_ext_R9_data[175:168]}, + {_vrf_ext_R9_data[167:160]}, + {_vrf_ext_R9_data[159:152]}, + {_vrf_ext_R9_data[151:144]}, + {_vrf_ext_R9_data[143:136]}, + {_vrf_ext_R9_data[135:128]}, + {_vrf_ext_R9_data[127:120]}, + {_vrf_ext_R9_data[119:112]}, + {_vrf_ext_R9_data[111:104]}, + {_vrf_ext_R9_data[103:96]}, + {_vrf_ext_R9_data[95:88]}, + {_vrf_ext_R9_data[87:80]}, + {_vrf_ext_R9_data[79:72]}, + {_vrf_ext_R9_data[71:64]}, + {_vrf_ext_R9_data[63:56]}, + {_vrf_ext_R9_data[55:48]}, + {_vrf_ext_R9_data[47:40]}, + {_vrf_ext_R9_data[39:32]}, + {_vrf_ext_R9_data[31:24]}, + {_vrf_ext_R9_data[23:16]}, + {_vrf_ext_R9_data[15:8]}, + {_vrf_ext_R9_data[7:0]}}; + wire [7:0] _GEN_33 = _GEN_32[_GEN_24 + 5'h1]; + wire [7:0] _GEN_34 = _GEN_32[_GEN_26 + 5'h3]; + wire [4:0] _GEN_35 = {3'h0, io_readReq_2_req_idx[4:3]}; + wire [31:0][7:0] _GEN_36 = + {{_vrf_ext_R8_data[255:248]}, + {_vrf_ext_R8_data[247:240]}, + {_vrf_ext_R8_data[239:232]}, + {_vrf_ext_R8_data[231:224]}, + {_vrf_ext_R8_data[223:216]}, + {_vrf_ext_R8_data[215:208]}, + {_vrf_ext_R8_data[207:200]}, + {_vrf_ext_R8_data[199:192]}, + {_vrf_ext_R8_data[191:184]}, + {_vrf_ext_R8_data[183:176]}, + {_vrf_ext_R8_data[175:168]}, + {_vrf_ext_R8_data[167:160]}, + {_vrf_ext_R8_data[159:152]}, + {_vrf_ext_R8_data[151:144]}, + {_vrf_ext_R8_data[143:136]}, + {_vrf_ext_R8_data[135:128]}, + {_vrf_ext_R8_data[127:120]}, + {_vrf_ext_R8_data[119:112]}, + {_vrf_ext_R8_data[111:104]}, + {_vrf_ext_R8_data[103:96]}, + {_vrf_ext_R8_data[95:88]}, + {_vrf_ext_R8_data[87:80]}, + {_vrf_ext_R8_data[79:72]}, + {_vrf_ext_R8_data[71:64]}, + {_vrf_ext_R8_data[63:56]}, + {_vrf_ext_R8_data[55:48]}, + {_vrf_ext_R8_data[47:40]}, + {_vrf_ext_R8_data[39:32]}, + {_vrf_ext_R8_data[31:24]}, + {_vrf_ext_R8_data[23:16]}, + {_vrf_ext_R8_data[15:8]}, + {_vrf_ext_R8_data[7:0]}}; + wire [7:0] _io_readReq_2_resp_res_vm_T_2 = + _GEN_36[_GEN_35] >> io_readReq_2_req_idx[2:0]; + wire _T_1 = io_writeReq_0_bits_vtype_vsew == 3'h0; + wire _GEN_37 = io_writeReq_0_bits_index == 5'h0; + wire [7:0] _GEN_38 = _T_1 & _GEN_37 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_39 = io_writeReq_0_bits_index == 5'h1; + wire _GEN_40 = io_writeReq_0_bits_index == 5'h2; + wire [7:0] _GEN_41 = _T_1 & _GEN_40 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_42 = io_writeReq_0_bits_index == 5'h3; + wire _GEN_43 = io_writeReq_0_bits_index == 5'h4; + wire [7:0] _GEN_44 = _T_1 & _GEN_43 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_45 = io_writeReq_0_bits_index == 5'h5; + wire _GEN_46 = io_writeReq_0_bits_index == 5'h6; + wire [7:0] _GEN_47 = _T_1 & _GEN_46 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_48 = io_writeReq_0_bits_index == 5'h7; + wire _GEN_49 = io_writeReq_0_bits_index == 5'h8; + wire [7:0] _GEN_50 = _T_1 & _GEN_49 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_51 = io_writeReq_0_bits_index == 5'h9; + wire _GEN_52 = io_writeReq_0_bits_index == 5'hA; + wire [7:0] _GEN_53 = _T_1 & _GEN_52 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_54 = io_writeReq_0_bits_index == 5'hB; + wire _GEN_55 = io_writeReq_0_bits_index == 5'hC; + wire [7:0] _GEN_56 = _T_1 & _GEN_55 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_57 = io_writeReq_0_bits_index == 5'hD; + wire _GEN_58 = io_writeReq_0_bits_index == 5'hE; + wire [7:0] _GEN_59 = _T_1 & _GEN_58 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_60 = io_writeReq_0_bits_index == 5'hF; + wire _GEN_61 = io_writeReq_0_bits_index == 5'h10; + wire [7:0] _GEN_62 = _T_1 & _GEN_61 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_63 = io_writeReq_0_bits_index == 5'h11; + wire _GEN_64 = io_writeReq_0_bits_index == 5'h12; + wire [7:0] _GEN_65 = _T_1 & _GEN_64 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_66 = io_writeReq_0_bits_index == 5'h13; + wire _GEN_67 = io_writeReq_0_bits_index == 5'h14; + wire [7:0] _GEN_68 = _T_1 & _GEN_67 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_69 = io_writeReq_0_bits_index == 5'h15; + wire _GEN_70 = io_writeReq_0_bits_index == 5'h16; + wire [7:0] _GEN_71 = _T_1 & _GEN_70 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_72 = io_writeReq_0_bits_index == 5'h17; + wire _GEN_73 = io_writeReq_0_bits_index == 5'h18; + wire [7:0] _GEN_74 = _T_1 & _GEN_73 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_75 = io_writeReq_0_bits_index == 5'h19; + wire _GEN_76 = io_writeReq_0_bits_index == 5'h1A; + wire [7:0] _GEN_77 = _T_1 & _GEN_76 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_78 = io_writeReq_0_bits_index == 5'h1B; + wire _GEN_79 = io_writeReq_0_bits_index == 5'h1C; + wire [7:0] _GEN_80 = _T_1 & _GEN_79 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_81 = io_writeReq_0_bits_index == 5'h1D; + wire _GEN_82 = io_writeReq_0_bits_index == 5'h1E; + wire [7:0] _GEN_83 = _T_1 & _GEN_82 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire _GEN_84 = _T_1 & _GEN_37; + wire _GEN_85 = _T_1 & _GEN_39; + wire _GEN_86 = _T_1 & _GEN_40; + wire _GEN_87 = _T_1 & _GEN_42; + wire _GEN_88 = _T_1 & _GEN_43; + wire _GEN_89 = _T_1 & _GEN_45; + wire _GEN_90 = _T_1 & _GEN_46; + wire _GEN_91 = _T_1 & _GEN_48; + wire _GEN_92 = _T_1 & _GEN_49; + wire _GEN_93 = _T_1 & _GEN_51; + wire _GEN_94 = _T_1 & _GEN_52; + wire _GEN_95 = _T_1 & _GEN_54; + wire _GEN_96 = _T_1 & _GEN_55; + wire _GEN_97 = _T_1 & _GEN_57; + wire _GEN_98 = _T_1 & _GEN_58; + wire _GEN_99 = _T_1 & _GEN_60; + wire _GEN_100 = _T_1 & _GEN_61; + wire _GEN_101 = _T_1 & _GEN_63; + wire _GEN_102 = _T_1 & _GEN_64; + wire _GEN_103 = _T_1 & _GEN_66; + wire _GEN_104 = _T_1 & _GEN_67; + wire _GEN_105 = _T_1 & _GEN_69; + wire _GEN_106 = _T_1 & _GEN_70; + wire _GEN_107 = _T_1 & _GEN_72; + wire _GEN_108 = _T_1 & _GEN_73; + wire _GEN_109 = _T_1 & _GEN_75; + wire _GEN_110 = _T_1 & _GEN_76; + wire _GEN_111 = _T_1 & _GEN_78; + wire _GEN_112 = _T_1 & _GEN_79; + wire _GEN_113 = _T_1 & _GEN_81; + wire _GEN_114 = _T_1 & _GEN_82; + wire _GEN_115 = _T_1 & (&io_writeReq_0_bits_index); + wire _T_8 = io_writeReq_0_bits_vtype_vsew == 3'h1; + wire _GEN_116 = io_writeReq_0_bits_index[3:0] == 4'h0; + wire _GEN_117 = io_writeReq_0_bits_index[3:0] == 4'h1; + wire _GEN_118 = io_writeReq_0_bits_index[3:0] == 4'h2; + wire _GEN_119 = io_writeReq_0_bits_index[3:0] == 4'h3; + wire _GEN_120 = io_writeReq_0_bits_index[3:0] == 4'h4; + wire _GEN_121 = io_writeReq_0_bits_index[3:0] == 4'h5; + wire _GEN_122 = io_writeReq_0_bits_index[3:0] == 4'h6; + wire _GEN_123 = io_writeReq_0_bits_index[3:0] == 4'h7; + wire _GEN_124 = io_writeReq_0_bits_index[3:0] == 4'h8; + wire _GEN_125 = io_writeReq_0_bits_index[3:0] == 4'h9; + wire _GEN_126 = io_writeReq_0_bits_index[3:0] == 4'hA; + wire _GEN_127 = io_writeReq_0_bits_index[3:0] == 4'hB; + wire _GEN_128 = io_writeReq_0_bits_index[3:0] == 4'hC; + wire _GEN_129 = io_writeReq_0_bits_index[3:0] == 4'hD; + wire _GEN_130 = io_writeReq_0_bits_index[3:0] == 4'hE; + wire [4:0] _GEN_131 = {io_writeReq_0_bits_index[3:0], 1'h0}; + wire [4:0] _T_20 = _GEN_131 + 5'h1; + wire [7:0] _GEN_132 = + _T_8 + ? (_T_20 == 5'h0 + ? io_writeReq_0_bits_data[15:8] + : _GEN_116 ? io_writeReq_0_bits_data[7:0] : _GEN_38) + : _GEN_38; + wire [7:0] _GEN_133 = + _T_8 & _T_20 == 5'h1 + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_39 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_134 = + _T_8 + ? (_T_20 == 5'h2 + ? io_writeReq_0_bits_data[15:8] + : _GEN_117 ? io_writeReq_0_bits_data[7:0] : _GEN_41) + : _GEN_41; + wire [7:0] _GEN_135 = + _T_8 & _T_20 == 5'h3 + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_42 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_136 = + _T_8 + ? (_T_20 == 5'h4 + ? io_writeReq_0_bits_data[15:8] + : _GEN_118 ? io_writeReq_0_bits_data[7:0] : _GEN_44) + : _GEN_44; + wire [7:0] _GEN_137 = + _T_8 & _T_20 == 5'h5 + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_45 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_138 = + _T_8 + ? (_T_20 == 5'h6 + ? io_writeReq_0_bits_data[15:8] + : _GEN_119 ? io_writeReq_0_bits_data[7:0] : _GEN_47) + : _GEN_47; + wire [7:0] _GEN_139 = + _T_8 & _T_20 == 5'h7 + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_48 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_140 = + _T_8 + ? (_T_20 == 5'h8 + ? io_writeReq_0_bits_data[15:8] + : _GEN_120 ? io_writeReq_0_bits_data[7:0] : _GEN_50) + : _GEN_50; + wire [7:0] _GEN_141 = + _T_8 & _T_20 == 5'h9 + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_51 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_142 = + _T_8 + ? (_T_20 == 5'hA + ? io_writeReq_0_bits_data[15:8] + : _GEN_121 ? io_writeReq_0_bits_data[7:0] : _GEN_53) + : _GEN_53; + wire [7:0] _GEN_143 = + _T_8 & _T_20 == 5'hB + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_54 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_144 = + _T_8 + ? (_T_20 == 5'hC + ? io_writeReq_0_bits_data[15:8] + : _GEN_122 ? io_writeReq_0_bits_data[7:0] : _GEN_56) + : _GEN_56; + wire [7:0] _GEN_145 = + _T_8 & _T_20 == 5'hD + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_57 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_146 = + _T_8 + ? (_T_20 == 5'hE + ? io_writeReq_0_bits_data[15:8] + : _GEN_123 ? io_writeReq_0_bits_data[7:0] : _GEN_59) + : _GEN_59; + wire [7:0] _GEN_147 = + _T_8 & _T_20 == 5'hF + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_60 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_148 = + _T_8 + ? (_T_20 == 5'h10 + ? io_writeReq_0_bits_data[15:8] + : _GEN_124 ? io_writeReq_0_bits_data[7:0] : _GEN_62) + : _GEN_62; + wire [7:0] _GEN_149 = + _T_8 & _T_20 == 5'h11 + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_63 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_150 = + _T_8 + ? (_T_20 == 5'h12 + ? io_writeReq_0_bits_data[15:8] + : _GEN_125 ? io_writeReq_0_bits_data[7:0] : _GEN_65) + : _GEN_65; + wire [7:0] _GEN_151 = + _T_8 & _T_20 == 5'h13 + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_66 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_152 = + _T_8 + ? (_T_20 == 5'h14 + ? io_writeReq_0_bits_data[15:8] + : _GEN_126 ? io_writeReq_0_bits_data[7:0] : _GEN_68) + : _GEN_68; + wire [7:0] _GEN_153 = + _T_8 & _T_20 == 5'h15 + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_69 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_154 = + _T_8 + ? (_T_20 == 5'h16 + ? io_writeReq_0_bits_data[15:8] + : _GEN_127 ? io_writeReq_0_bits_data[7:0] : _GEN_71) + : _GEN_71; + wire [7:0] _GEN_155 = + _T_8 & _T_20 == 5'h17 + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_72 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_156 = + _T_8 + ? (_T_20 == 5'h18 + ? io_writeReq_0_bits_data[15:8] + : _GEN_128 ? io_writeReq_0_bits_data[7:0] : _GEN_74) + : _GEN_74; + wire [7:0] _GEN_157 = + _T_8 & _T_20 == 5'h19 + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_75 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_158 = + _T_8 + ? (_T_20 == 5'h1A + ? io_writeReq_0_bits_data[15:8] + : _GEN_129 ? io_writeReq_0_bits_data[7:0] : _GEN_77) + : _GEN_77; + wire [7:0] _GEN_159 = + _T_8 & _T_20 == 5'h1B + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_78 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_160 = + _T_8 + ? (_T_20 == 5'h1C + ? io_writeReq_0_bits_data[15:8] + : _GEN_130 ? io_writeReq_0_bits_data[7:0] : _GEN_80) + : _GEN_80; + wire [7:0] _GEN_161 = + _T_8 & _T_20 == 5'h1D + ? io_writeReq_0_bits_data[15:8] + : _T_1 & _GEN_81 ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_162 = + _T_8 + ? (_T_20 == 5'h1E + ? io_writeReq_0_bits_data[15:8] + : (&(io_writeReq_0_bits_index[3:0])) ? io_writeReq_0_bits_data[7:0] : _GEN_83) + : _GEN_83; + wire [7:0] _GEN_163 = + _T_8 & (&_T_20) + ? io_writeReq_0_bits_data[15:8] + : _T_1 & (&io_writeReq_0_bits_index) ? io_writeReq_0_bits_data[7:0] : 8'h0; + wire [4:0] _T_24 = _GEN_131 + 5'h1; + wire _GEN_164 = _T_8 & (_T_24 == 5'h0 | _GEN_116); + wire _GEN_165 = _T_8 & _T_24 == 5'h1; + wire _GEN_166 = _T_8 & (_T_24 == 5'h2 | _GEN_117); + wire _GEN_167 = _T_8 & _T_24 == 5'h3; + wire _GEN_168 = _T_8 & (_T_24 == 5'h4 | _GEN_118); + wire _GEN_169 = _T_8 & _T_24 == 5'h5; + wire _GEN_170 = _T_8 & (_T_24 == 5'h6 | _GEN_119); + wire _GEN_171 = _T_8 & _T_24 == 5'h7; + wire _GEN_172 = _T_8 & (_T_24 == 5'h8 | _GEN_120); + wire _GEN_173 = _T_8 & _T_24 == 5'h9; + wire _GEN_174 = _T_8 & (_T_24 == 5'hA | _GEN_121); + wire _GEN_175 = _T_8 & _T_24 == 5'hB; + wire _GEN_176 = _T_8 & (_T_24 == 5'hC | _GEN_122); + wire _GEN_177 = _T_8 & _T_24 == 5'hD; + wire _GEN_178 = _T_8 & (_T_24 == 5'hE | _GEN_123); + wire _GEN_179 = _T_8 & _T_24 == 5'hF; + wire _GEN_180 = _T_8 & (_T_24 == 5'h10 | _GEN_124); + wire _GEN_181 = _T_8 & _T_24 == 5'h11; + wire _GEN_182 = _T_8 & (_T_24 == 5'h12 | _GEN_125); + wire _GEN_183 = _T_8 & _T_24 == 5'h13; + wire _GEN_184 = _T_8 & (_T_24 == 5'h14 | _GEN_126); + wire _GEN_185 = _T_8 & _T_24 == 5'h15; + wire _GEN_186 = _T_8 & (_T_24 == 5'h16 | _GEN_127); + wire _GEN_187 = _T_8 & _T_24 == 5'h17; + wire _GEN_188 = _T_8 & (_T_24 == 5'h18 | _GEN_128); + wire _GEN_189 = _T_8 & _T_24 == 5'h19; + wire _GEN_190 = _T_8 & (_T_24 == 5'h1A | _GEN_129); + wire _GEN_191 = _T_8 & _T_24 == 5'h1B; + wire _GEN_192 = _T_8 & (_T_24 == 5'h1C | _GEN_130); + wire _GEN_193 = _T_8 & _T_24 == 5'h1D; + wire _GEN_194 = + _T_8 & (_T_24 == 5'h1E | (&(io_writeReq_0_bits_index[3:0]))); + wire _GEN_195 = _T_8 & (&_T_24); + wire _T_25 = io_writeReq_0_bits_vtype_vsew == 3'h2; + wire _GEN_196 = io_writeReq_0_bits_index[2:0] == 3'h0; + wire _GEN_197 = io_writeReq_0_bits_index[2:0] == 3'h1; + wire _GEN_198 = io_writeReq_0_bits_index[2:0] == 3'h2; + wire _GEN_199 = io_writeReq_0_bits_index[2:0] == 3'h3; + wire _GEN_200 = io_writeReq_0_bits_index[2:0] == 3'h4; + wire _GEN_201 = io_writeReq_0_bits_index[2:0] == 3'h5; + wire _GEN_202 = io_writeReq_0_bits_index[2:0] == 3'h6; + wire [4:0] _GEN_203 = {io_writeReq_0_bits_index[2:0], 2'h0}; + wire [4:0] _T_37 = _GEN_203 + 5'h1; + wire [4:0] _T_41 = _GEN_203 + 5'h1; + wire [4:0] _T_45 = _GEN_203 + 5'h2; + wire [4:0] _T_49 = _GEN_203 + 5'h2; + wire [4:0] _T_53 = _GEN_203 + 5'h3; + wire [7:0] _GEN_204 = + _T_25 + ? (_T_53 == 5'h0 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h0 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h0 + ? io_writeReq_0_bits_data[15:8] + : _GEN_196 ? io_writeReq_0_bits_data[7:0] : _GEN_132) + : _GEN_132; + wire [7:0] _GEN_205 = + _T_25 + ? (_T_53 == 5'h1 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h1 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h1 ? io_writeReq_0_bits_data[15:8] : _GEN_133) + : _GEN_133; + wire [7:0] _GEN_206 = + _T_25 + ? (_T_53 == 5'h2 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h2 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h2 ? io_writeReq_0_bits_data[15:8] : _GEN_134) + : _GEN_134; + wire [7:0] _GEN_207 = + _T_25 + ? (_T_53 == 5'h3 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h3 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h3 ? io_writeReq_0_bits_data[15:8] : _GEN_135) + : _GEN_135; + wire [7:0] _GEN_208 = + _T_25 + ? (_T_53 == 5'h4 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h4 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h4 + ? io_writeReq_0_bits_data[15:8] + : _GEN_197 ? io_writeReq_0_bits_data[7:0] : _GEN_136) + : _GEN_136; + wire [7:0] _GEN_209 = + _T_25 + ? (_T_53 == 5'h5 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h5 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h5 ? io_writeReq_0_bits_data[15:8] : _GEN_137) + : _GEN_137; + wire [7:0] _GEN_210 = + _T_25 + ? (_T_53 == 5'h6 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h6 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h6 ? io_writeReq_0_bits_data[15:8] : _GEN_138) + : _GEN_138; + wire [7:0] _GEN_211 = + _T_25 + ? (_T_53 == 5'h7 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h7 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h7 ? io_writeReq_0_bits_data[15:8] : _GEN_139) + : _GEN_139; + wire [7:0] _GEN_212 = + _T_25 + ? (_T_53 == 5'h8 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h8 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h8 + ? io_writeReq_0_bits_data[15:8] + : _GEN_198 ? io_writeReq_0_bits_data[7:0] : _GEN_140) + : _GEN_140; + wire [7:0] _GEN_213 = + _T_25 + ? (_T_53 == 5'h9 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h9 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h9 ? io_writeReq_0_bits_data[15:8] : _GEN_141) + : _GEN_141; + wire [7:0] _GEN_214 = + _T_25 + ? (_T_53 == 5'hA + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'hA + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'hA ? io_writeReq_0_bits_data[15:8] : _GEN_142) + : _GEN_142; + wire [7:0] _GEN_215 = + _T_25 + ? (_T_53 == 5'hB + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'hB + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'hB ? io_writeReq_0_bits_data[15:8] : _GEN_143) + : _GEN_143; + wire [7:0] _GEN_216 = + _T_25 + ? (_T_53 == 5'hC + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'hC + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'hC + ? io_writeReq_0_bits_data[15:8] + : _GEN_199 ? io_writeReq_0_bits_data[7:0] : _GEN_144) + : _GEN_144; + wire [7:0] _GEN_217 = + _T_25 + ? (_T_53 == 5'hD + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'hD + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'hD ? io_writeReq_0_bits_data[15:8] : _GEN_145) + : _GEN_145; + wire [7:0] _GEN_218 = + _T_25 + ? (_T_53 == 5'hE + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'hE + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'hE ? io_writeReq_0_bits_data[15:8] : _GEN_146) + : _GEN_146; + wire [7:0] _GEN_219 = + _T_25 + ? (_T_53 == 5'hF + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'hF + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'hF ? io_writeReq_0_bits_data[15:8] : _GEN_147) + : _GEN_147; + wire [7:0] _GEN_220 = + _T_25 + ? (_T_53 == 5'h10 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h10 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h10 + ? io_writeReq_0_bits_data[15:8] + : _GEN_200 ? io_writeReq_0_bits_data[7:0] : _GEN_148) + : _GEN_148; + wire [7:0] _GEN_221 = + _T_25 + ? (_T_53 == 5'h11 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h11 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h11 ? io_writeReq_0_bits_data[15:8] : _GEN_149) + : _GEN_149; + wire [7:0] _GEN_222 = + _T_25 + ? (_T_53 == 5'h12 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h12 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h12 ? io_writeReq_0_bits_data[15:8] : _GEN_150) + : _GEN_150; + wire [7:0] _GEN_223 = + _T_25 + ? (_T_53 == 5'h13 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h13 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h13 ? io_writeReq_0_bits_data[15:8] : _GEN_151) + : _GEN_151; + wire [7:0] _GEN_224 = + _T_25 + ? (_T_53 == 5'h14 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h14 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h14 + ? io_writeReq_0_bits_data[15:8] + : _GEN_201 ? io_writeReq_0_bits_data[7:0] : _GEN_152) + : _GEN_152; + wire [7:0] _GEN_225 = + _T_25 + ? (_T_53 == 5'h15 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h15 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h15 ? io_writeReq_0_bits_data[15:8] : _GEN_153) + : _GEN_153; + wire [7:0] _GEN_226 = + _T_25 + ? (_T_53 == 5'h16 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h16 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h16 ? io_writeReq_0_bits_data[15:8] : _GEN_154) + : _GEN_154; + wire [7:0] _GEN_227 = + _T_25 + ? (_T_53 == 5'h17 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h17 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h17 ? io_writeReq_0_bits_data[15:8] : _GEN_155) + : _GEN_155; + wire [7:0] _GEN_228 = + _T_25 + ? (_T_53 == 5'h18 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h18 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h18 + ? io_writeReq_0_bits_data[15:8] + : _GEN_202 ? io_writeReq_0_bits_data[7:0] : _GEN_156) + : _GEN_156; + wire [7:0] _GEN_229 = + _T_25 + ? (_T_53 == 5'h19 + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h19 + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h19 ? io_writeReq_0_bits_data[15:8] : _GEN_157) + : _GEN_157; + wire [7:0] _GEN_230 = + _T_25 + ? (_T_53 == 5'h1A + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h1A + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h1A ? io_writeReq_0_bits_data[15:8] : _GEN_158) + : _GEN_158; + wire [7:0] _GEN_231 = + _T_25 + ? (_T_53 == 5'h1B + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h1B + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h1B ? io_writeReq_0_bits_data[15:8] : _GEN_159) + : _GEN_159; + wire [7:0] _GEN_232 = + _T_25 + ? (_T_53 == 5'h1C + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h1C + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h1C + ? io_writeReq_0_bits_data[15:8] + : (&(io_writeReq_0_bits_index[2:0])) + ? io_writeReq_0_bits_data[7:0] + : _GEN_160) + : _GEN_160; + wire [7:0] _GEN_233 = + _T_25 + ? (_T_53 == 5'h1D + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h1D + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h1D ? io_writeReq_0_bits_data[15:8] : _GEN_161) + : _GEN_161; + wire [7:0] _GEN_234 = + _T_25 + ? (_T_53 == 5'h1E + ? io_writeReq_0_bits_data[31:24] + : _T_45 == 5'h1E + ? io_writeReq_0_bits_data[23:16] + : _T_37 == 5'h1E ? io_writeReq_0_bits_data[15:8] : _GEN_162) + : _GEN_162; + wire [7:0] _GEN_235 = + _T_25 + ? ((&_T_53) + ? io_writeReq_0_bits_data[31:24] + : (&_T_45) + ? io_writeReq_0_bits_data[23:16] + : (&_T_37) ? io_writeReq_0_bits_data[15:8] : _GEN_163) + : _GEN_163; + wire [4:0] _T_57 = _GEN_203 + 5'h3; + wire _T_58 = io_writeReq_0_bits_vtype_vsew == 3'h3; + wire _GEN_236 = io_writeReq_0_bits_index[1:0] == 2'h0; + wire _GEN_237 = io_writeReq_0_bits_index[1:0] == 2'h1; + wire _GEN_238 = io_writeReq_0_bits_index[1:0] == 2'h2; + wire [4:0] _GEN_239 = {io_writeReq_0_bits_index[1:0], 3'h0}; + wire [4:0] _T_70 = _GEN_239 + 5'h1; + wire [4:0] _T_74 = _GEN_239 + 5'h1; + wire [4:0] _T_78 = _GEN_239 + 5'h2; + wire [4:0] _T_82 = _GEN_239 + 5'h2; + wire [4:0] _T_86 = _GEN_239 + 5'h3; + wire [4:0] _T_90 = _GEN_239 + 5'h3; + wire [4:0] _T_94 = _GEN_239 + 5'h4; + wire [4:0] _T_98 = _GEN_239 + 5'h4; + wire [4:0] _T_102 = _GEN_239 + 5'h5; + wire [4:0] _T_106 = _GEN_239 + 5'h5; + wire [4:0] _T_110 = _GEN_239 + 5'h6; + wire [4:0] _T_114 = _GEN_239 + 5'h6; + wire [4:0] _T_118 = _GEN_239 + 5'h7; + assign internalWriteData_0 = + _T_58 + ? (_T_118 == 5'h0 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h0 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h0 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h0 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h0 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h0 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h0 + ? io_writeReq_0_bits_data[15:8] + : _GEN_236 ? io_writeReq_0_bits_data[7:0] : _GEN_204) + : _GEN_204; + assign internalWriteData_1 = + _T_58 + ? (_T_118 == 5'h1 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h1 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h1 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h1 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h1 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h1 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h1 ? io_writeReq_0_bits_data[15:8] : _GEN_205) + : _GEN_205; + assign internalWriteData_2 = + _T_58 + ? (_T_118 == 5'h2 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h2 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h2 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h2 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h2 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h2 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h2 ? io_writeReq_0_bits_data[15:8] : _GEN_206) + : _GEN_206; + assign internalWriteData_3 = + _T_58 + ? (_T_118 == 5'h3 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h3 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h3 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h3 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h3 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h3 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h3 ? io_writeReq_0_bits_data[15:8] : _GEN_207) + : _GEN_207; + assign internalWriteData_4 = + _T_58 + ? (_T_118 == 5'h4 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h4 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h4 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h4 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h4 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h4 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h4 ? io_writeReq_0_bits_data[15:8] : _GEN_208) + : _GEN_208; + assign internalWriteData_5 = + _T_58 + ? (_T_118 == 5'h5 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h5 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h5 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h5 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h5 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h5 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h5 ? io_writeReq_0_bits_data[15:8] : _GEN_209) + : _GEN_209; + assign internalWriteData_6 = + _T_58 + ? (_T_118 == 5'h6 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h6 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h6 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h6 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h6 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h6 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h6 ? io_writeReq_0_bits_data[15:8] : _GEN_210) + : _GEN_210; + assign internalWriteData_7 = + _T_58 + ? (_T_118 == 5'h7 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h7 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h7 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h7 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h7 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h7 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h7 ? io_writeReq_0_bits_data[15:8] : _GEN_211) + : _GEN_211; + assign internalWriteData_8 = + _T_58 + ? (_T_118 == 5'h8 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h8 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h8 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h8 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h8 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h8 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h8 + ? io_writeReq_0_bits_data[15:8] + : _GEN_237 ? io_writeReq_0_bits_data[7:0] : _GEN_212) + : _GEN_212; + assign internalWriteData_9 = + _T_58 + ? (_T_118 == 5'h9 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h9 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h9 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h9 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h9 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h9 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h9 ? io_writeReq_0_bits_data[15:8] : _GEN_213) + : _GEN_213; + assign internalWriteData_10 = + _T_58 + ? (_T_118 == 5'hA + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'hA + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'hA + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'hA + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'hA + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'hA + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'hA ? io_writeReq_0_bits_data[15:8] : _GEN_214) + : _GEN_214; + assign internalWriteData_11 = + _T_58 + ? (_T_118 == 5'hB + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'hB + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'hB + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'hB + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'hB + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'hB + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'hB ? io_writeReq_0_bits_data[15:8] : _GEN_215) + : _GEN_215; + assign internalWriteData_12 = + _T_58 + ? (_T_118 == 5'hC + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'hC + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'hC + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'hC + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'hC + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'hC + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'hC ? io_writeReq_0_bits_data[15:8] : _GEN_216) + : _GEN_216; + assign internalWriteData_13 = + _T_58 + ? (_T_118 == 5'hD + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'hD + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'hD + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'hD + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'hD + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'hD + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'hD ? io_writeReq_0_bits_data[15:8] : _GEN_217) + : _GEN_217; + assign internalWriteData_14 = + _T_58 + ? (_T_118 == 5'hE + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'hE + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'hE + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'hE + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'hE + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'hE + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'hE ? io_writeReq_0_bits_data[15:8] : _GEN_218) + : _GEN_218; + assign internalWriteData_15 = + _T_58 + ? (_T_118 == 5'hF + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'hF + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'hF + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'hF + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'hF + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'hF + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'hF ? io_writeReq_0_bits_data[15:8] : _GEN_219) + : _GEN_219; + assign internalWriteData_16 = + _T_58 + ? (_T_118 == 5'h10 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h10 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h10 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h10 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h10 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h10 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h10 + ? io_writeReq_0_bits_data[15:8] + : _GEN_238 ? io_writeReq_0_bits_data[7:0] : _GEN_220) + : _GEN_220; + assign internalWriteData_17 = + _T_58 + ? (_T_118 == 5'h11 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h11 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h11 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h11 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h11 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h11 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h11 + ? io_writeReq_0_bits_data[15:8] + : _GEN_221) + : _GEN_221; + assign internalWriteData_18 = + _T_58 + ? (_T_118 == 5'h12 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h12 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h12 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h12 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h12 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h12 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h12 + ? io_writeReq_0_bits_data[15:8] + : _GEN_222) + : _GEN_222; + assign internalWriteData_19 = + _T_58 + ? (_T_118 == 5'h13 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h13 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h13 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h13 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h13 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h13 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h13 + ? io_writeReq_0_bits_data[15:8] + : _GEN_223) + : _GEN_223; + assign internalWriteData_20 = + _T_58 + ? (_T_118 == 5'h14 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h14 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h14 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h14 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h14 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h14 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h14 + ? io_writeReq_0_bits_data[15:8] + : _GEN_224) + : _GEN_224; + assign internalWriteData_21 = + _T_58 + ? (_T_118 == 5'h15 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h15 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h15 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h15 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h15 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h15 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h15 + ? io_writeReq_0_bits_data[15:8] + : _GEN_225) + : _GEN_225; + assign internalWriteData_22 = + _T_58 + ? (_T_118 == 5'h16 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h16 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h16 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h16 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h16 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h16 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h16 + ? io_writeReq_0_bits_data[15:8] + : _GEN_226) + : _GEN_226; + assign internalWriteData_23 = + _T_58 + ? (_T_118 == 5'h17 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h17 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h17 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h17 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h17 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h17 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h17 + ? io_writeReq_0_bits_data[15:8] + : _GEN_227) + : _GEN_227; + assign internalWriteData_24 = + _T_58 + ? (_T_118 == 5'h18 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h18 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h18 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h18 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h18 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h18 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h18 + ? io_writeReq_0_bits_data[15:8] + : (&(io_writeReq_0_bits_index[1:0])) + ? io_writeReq_0_bits_data[7:0] + : _GEN_228) + : _GEN_228; + assign internalWriteData_25 = + _T_58 + ? (_T_118 == 5'h19 + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h19 + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h19 + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h19 + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h19 + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h19 + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h19 + ? io_writeReq_0_bits_data[15:8] + : _GEN_229) + : _GEN_229; + assign internalWriteData_26 = + _T_58 + ? (_T_118 == 5'h1A + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h1A + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h1A + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h1A + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h1A + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h1A + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h1A + ? io_writeReq_0_bits_data[15:8] + : _GEN_230) + : _GEN_230; + assign internalWriteData_27 = + _T_58 + ? (_T_118 == 5'h1B + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h1B + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h1B + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h1B + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h1B + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h1B + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h1B + ? io_writeReq_0_bits_data[15:8] + : _GEN_231) + : _GEN_231; + assign internalWriteData_28 = + _T_58 + ? (_T_118 == 5'h1C + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h1C + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h1C + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h1C + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h1C + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h1C + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h1C + ? io_writeReq_0_bits_data[15:8] + : _GEN_232) + : _GEN_232; + assign internalWriteData_29 = + _T_58 + ? (_T_118 == 5'h1D + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h1D + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h1D + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h1D + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h1D + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h1D + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h1D + ? io_writeReq_0_bits_data[15:8] + : _GEN_233) + : _GEN_233; + assign internalWriteData_30 = + _T_58 + ? (_T_118 == 5'h1E + ? io_writeReq_0_bits_data[63:56] + : _T_110 == 5'h1E + ? io_writeReq_0_bits_data[55:48] + : _T_102 == 5'h1E + ? io_writeReq_0_bits_data[47:40] + : _T_94 == 5'h1E + ? io_writeReq_0_bits_data[39:32] + : _T_86 == 5'h1E + ? io_writeReq_0_bits_data[31:24] + : _T_78 == 5'h1E + ? io_writeReq_0_bits_data[23:16] + : _T_70 == 5'h1E + ? io_writeReq_0_bits_data[15:8] + : _GEN_234) + : _GEN_234; + assign internalWriteData_31 = + _T_58 + ? ((&_T_118) + ? io_writeReq_0_bits_data[63:56] + : (&_T_110) + ? io_writeReq_0_bits_data[55:48] + : (&_T_102) + ? io_writeReq_0_bits_data[47:40] + : (&_T_94) + ? io_writeReq_0_bits_data[39:32] + : (&_T_86) + ? io_writeReq_0_bits_data[31:24] + : (&_T_78) + ? io_writeReq_0_bits_data[23:16] + : (&_T_70) ? io_writeReq_0_bits_data[15:8] : _GEN_235) + : _GEN_235; + wire [4:0] _T_122 = _GEN_239 + 5'h7; + assign internalWriteMask_0 = + _T_58 + & (_T_122 == 5'h0 | _T_114 == 5'h0 | _T_106 == 5'h0 | _T_98 == 5'h0 | _T_90 == 5'h0 + | _T_82 == 5'h0 | _T_74 == 5'h0 | _GEN_236) + | (_T_25 + ? _T_57 == 5'h0 | _T_49 == 5'h0 | _T_41 == 5'h0 | _GEN_196 | _GEN_164 | _GEN_84 + : _GEN_164 | _GEN_84); + assign internalWriteMask_1 = + _T_58 + & (_T_122 == 5'h1 | _T_114 == 5'h1 | _T_106 == 5'h1 | _T_98 == 5'h1 | _T_90 == 5'h1 + | _T_82 == 5'h1 | _T_74 == 5'h1) + | (_T_25 + ? _T_57 == 5'h1 | _T_49 == 5'h1 | _T_41 == 5'h1 | _GEN_165 | _GEN_85 + : _GEN_165 | _GEN_85); + assign internalWriteMask_2 = + _T_58 + & (_T_122 == 5'h2 | _T_114 == 5'h2 | _T_106 == 5'h2 | _T_98 == 5'h2 | _T_90 == 5'h2 + | _T_82 == 5'h2 | _T_74 == 5'h2) + | (_T_25 + ? _T_57 == 5'h2 | _T_49 == 5'h2 | _T_41 == 5'h2 | _GEN_166 | _GEN_86 + : _GEN_166 | _GEN_86); + assign internalWriteMask_3 = + _T_58 + & (_T_122 == 5'h3 | _T_114 == 5'h3 | _T_106 == 5'h3 | _T_98 == 5'h3 | _T_90 == 5'h3 + | _T_82 == 5'h3 | _T_74 == 5'h3) + | (_T_25 + ? _T_57 == 5'h3 | _T_49 == 5'h3 | _T_41 == 5'h3 | _GEN_167 | _GEN_87 + : _GEN_167 | _GEN_87); + assign internalWriteMask_4 = + _T_58 + & (_T_122 == 5'h4 | _T_114 == 5'h4 | _T_106 == 5'h4 | _T_98 == 5'h4 | _T_90 == 5'h4 + | _T_82 == 5'h4 | _T_74 == 5'h4) + | (_T_25 + ? _T_57 == 5'h4 | _T_49 == 5'h4 | _T_41 == 5'h4 | _GEN_197 | _GEN_168 | _GEN_88 + : _GEN_168 | _GEN_88); + assign internalWriteMask_5 = + _T_58 + & (_T_122 == 5'h5 | _T_114 == 5'h5 | _T_106 == 5'h5 | _T_98 == 5'h5 | _T_90 == 5'h5 + | _T_82 == 5'h5 | _T_74 == 5'h5) + | (_T_25 + ? _T_57 == 5'h5 | _T_49 == 5'h5 | _T_41 == 5'h5 | _GEN_169 | _GEN_89 + : _GEN_169 | _GEN_89); + assign internalWriteMask_6 = + _T_58 + & (_T_122 == 5'h6 | _T_114 == 5'h6 | _T_106 == 5'h6 | _T_98 == 5'h6 | _T_90 == 5'h6 + | _T_82 == 5'h6 | _T_74 == 5'h6) + | (_T_25 + ? _T_57 == 5'h6 | _T_49 == 5'h6 | _T_41 == 5'h6 | _GEN_170 | _GEN_90 + : _GEN_170 | _GEN_90); + assign internalWriteMask_7 = + _T_58 + & (_T_122 == 5'h7 | _T_114 == 5'h7 | _T_106 == 5'h7 | _T_98 == 5'h7 | _T_90 == 5'h7 + | _T_82 == 5'h7 | _T_74 == 5'h7) + | (_T_25 + ? _T_57 == 5'h7 | _T_49 == 5'h7 | _T_41 == 5'h7 | _GEN_171 | _GEN_91 + : _GEN_171 | _GEN_91); + assign internalWriteMask_8 = + _T_58 + & (_T_122 == 5'h8 | _T_114 == 5'h8 | _T_106 == 5'h8 | _T_98 == 5'h8 | _T_90 == 5'h8 + | _T_82 == 5'h8 | _T_74 == 5'h8 | _GEN_237) + | (_T_25 + ? _T_57 == 5'h8 | _T_49 == 5'h8 | _T_41 == 5'h8 | _GEN_198 | _GEN_172 | _GEN_92 + : _GEN_172 | _GEN_92); + assign internalWriteMask_9 = + _T_58 + & (_T_122 == 5'h9 | _T_114 == 5'h9 | _T_106 == 5'h9 | _T_98 == 5'h9 | _T_90 == 5'h9 + | _T_82 == 5'h9 | _T_74 == 5'h9) + | (_T_25 + ? _T_57 == 5'h9 | _T_49 == 5'h9 | _T_41 == 5'h9 | _GEN_173 | _GEN_93 + : _GEN_173 | _GEN_93); + assign internalWriteMask_10 = + _T_58 + & (_T_122 == 5'hA | _T_114 == 5'hA | _T_106 == 5'hA | _T_98 == 5'hA | _T_90 == 5'hA + | _T_82 == 5'hA | _T_74 == 5'hA) + | (_T_25 + ? _T_57 == 5'hA | _T_49 == 5'hA | _T_41 == 5'hA | _GEN_174 | _GEN_94 + : _GEN_174 | _GEN_94); + assign internalWriteMask_11 = + _T_58 + & (_T_122 == 5'hB | _T_114 == 5'hB | _T_106 == 5'hB | _T_98 == 5'hB | _T_90 == 5'hB + | _T_82 == 5'hB | _T_74 == 5'hB) + | (_T_25 + ? _T_57 == 5'hB | _T_49 == 5'hB | _T_41 == 5'hB | _GEN_175 | _GEN_95 + : _GEN_175 | _GEN_95); + assign internalWriteMask_12 = + _T_58 + & (_T_122 == 5'hC | _T_114 == 5'hC | _T_106 == 5'hC | _T_98 == 5'hC | _T_90 == 5'hC + | _T_82 == 5'hC | _T_74 == 5'hC) + | (_T_25 + ? _T_57 == 5'hC | _T_49 == 5'hC | _T_41 == 5'hC | _GEN_199 | _GEN_176 | _GEN_96 + : _GEN_176 | _GEN_96); + assign internalWriteMask_13 = + _T_58 + & (_T_122 == 5'hD | _T_114 == 5'hD | _T_106 == 5'hD | _T_98 == 5'hD | _T_90 == 5'hD + | _T_82 == 5'hD | _T_74 == 5'hD) + | (_T_25 + ? _T_57 == 5'hD | _T_49 == 5'hD | _T_41 == 5'hD | _GEN_177 | _GEN_97 + : _GEN_177 | _GEN_97); + assign internalWriteMask_14 = + _T_58 + & (_T_122 == 5'hE | _T_114 == 5'hE | _T_106 == 5'hE | _T_98 == 5'hE | _T_90 == 5'hE + | _T_82 == 5'hE | _T_74 == 5'hE) + | (_T_25 + ? _T_57 == 5'hE | _T_49 == 5'hE | _T_41 == 5'hE | _GEN_178 | _GEN_98 + : _GEN_178 | _GEN_98); + assign internalWriteMask_15 = + _T_58 + & (_T_122 == 5'hF | _T_114 == 5'hF | _T_106 == 5'hF | _T_98 == 5'hF | _T_90 == 5'hF + | _T_82 == 5'hF | _T_74 == 5'hF) + | (_T_25 + ? _T_57 == 5'hF | _T_49 == 5'hF | _T_41 == 5'hF | _GEN_179 | _GEN_99 + : _GEN_179 | _GEN_99); + assign internalWriteMask_16 = + _T_58 + & (_T_122 == 5'h10 | _T_114 == 5'h10 | _T_106 == 5'h10 | _T_98 == 5'h10 + | _T_90 == 5'h10 | _T_82 == 5'h10 | _T_74 == 5'h10 | _GEN_238) + | (_T_25 + ? _T_57 == 5'h10 | _T_49 == 5'h10 | _T_41 == 5'h10 | _GEN_200 | _GEN_180 + | _GEN_100 + : _GEN_180 | _GEN_100); + assign internalWriteMask_17 = + _T_58 + & (_T_122 == 5'h11 | _T_114 == 5'h11 | _T_106 == 5'h11 | _T_98 == 5'h11 + | _T_90 == 5'h11 | _T_82 == 5'h11 | _T_74 == 5'h11) + | (_T_25 + ? _T_57 == 5'h11 | _T_49 == 5'h11 | _T_41 == 5'h11 | _GEN_181 | _GEN_101 + : _GEN_181 | _GEN_101); + assign internalWriteMask_18 = + _T_58 + & (_T_122 == 5'h12 | _T_114 == 5'h12 | _T_106 == 5'h12 | _T_98 == 5'h12 + | _T_90 == 5'h12 | _T_82 == 5'h12 | _T_74 == 5'h12) + | (_T_25 + ? _T_57 == 5'h12 | _T_49 == 5'h12 | _T_41 == 5'h12 | _GEN_182 | _GEN_102 + : _GEN_182 | _GEN_102); + assign internalWriteMask_19 = + _T_58 + & (_T_122 == 5'h13 | _T_114 == 5'h13 | _T_106 == 5'h13 | _T_98 == 5'h13 + | _T_90 == 5'h13 | _T_82 == 5'h13 | _T_74 == 5'h13) + | (_T_25 + ? _T_57 == 5'h13 | _T_49 == 5'h13 | _T_41 == 5'h13 | _GEN_183 | _GEN_103 + : _GEN_183 | _GEN_103); + assign internalWriteMask_20 = + _T_58 + & (_T_122 == 5'h14 | _T_114 == 5'h14 | _T_106 == 5'h14 | _T_98 == 5'h14 + | _T_90 == 5'h14 | _T_82 == 5'h14 | _T_74 == 5'h14) + | (_T_25 + ? _T_57 == 5'h14 | _T_49 == 5'h14 | _T_41 == 5'h14 | _GEN_201 | _GEN_184 + | _GEN_104 + : _GEN_184 | _GEN_104); + assign internalWriteMask_21 = + _T_58 + & (_T_122 == 5'h15 | _T_114 == 5'h15 | _T_106 == 5'h15 | _T_98 == 5'h15 + | _T_90 == 5'h15 | _T_82 == 5'h15 | _T_74 == 5'h15) + | (_T_25 + ? _T_57 == 5'h15 | _T_49 == 5'h15 | _T_41 == 5'h15 | _GEN_185 | _GEN_105 + : _GEN_185 | _GEN_105); + assign internalWriteMask_22 = + _T_58 + & (_T_122 == 5'h16 | _T_114 == 5'h16 | _T_106 == 5'h16 | _T_98 == 5'h16 + | _T_90 == 5'h16 | _T_82 == 5'h16 | _T_74 == 5'h16) + | (_T_25 + ? _T_57 == 5'h16 | _T_49 == 5'h16 | _T_41 == 5'h16 | _GEN_186 | _GEN_106 + : _GEN_186 | _GEN_106); + assign internalWriteMask_23 = + _T_58 + & (_T_122 == 5'h17 | _T_114 == 5'h17 | _T_106 == 5'h17 | _T_98 == 5'h17 + | _T_90 == 5'h17 | _T_82 == 5'h17 | _T_74 == 5'h17) + | (_T_25 + ? _T_57 == 5'h17 | _T_49 == 5'h17 | _T_41 == 5'h17 | _GEN_187 | _GEN_107 + : _GEN_187 | _GEN_107); + assign internalWriteMask_24 = + _T_58 + & (_T_122 == 5'h18 | _T_114 == 5'h18 | _T_106 == 5'h18 | _T_98 == 5'h18 + | _T_90 == 5'h18 | _T_82 == 5'h18 | _T_74 == 5'h18 + | (&(io_writeReq_0_bits_index[1:0]))) + | (_T_25 + ? _T_57 == 5'h18 | _T_49 == 5'h18 | _T_41 == 5'h18 | _GEN_202 | _GEN_188 + | _GEN_108 + : _GEN_188 | _GEN_108); + assign internalWriteMask_25 = + _T_58 + & (_T_122 == 5'h19 | _T_114 == 5'h19 | _T_106 == 5'h19 | _T_98 == 5'h19 + | _T_90 == 5'h19 | _T_82 == 5'h19 | _T_74 == 5'h19) + | (_T_25 + ? _T_57 == 5'h19 | _T_49 == 5'h19 | _T_41 == 5'h19 | _GEN_189 | _GEN_109 + : _GEN_189 | _GEN_109); + assign internalWriteMask_26 = + _T_58 + & (_T_122 == 5'h1A | _T_114 == 5'h1A | _T_106 == 5'h1A | _T_98 == 5'h1A + | _T_90 == 5'h1A | _T_82 == 5'h1A | _T_74 == 5'h1A) + | (_T_25 + ? _T_57 == 5'h1A | _T_49 == 5'h1A | _T_41 == 5'h1A | _GEN_190 | _GEN_110 + : _GEN_190 | _GEN_110); + assign internalWriteMask_27 = + _T_58 + & (_T_122 == 5'h1B | _T_114 == 5'h1B | _T_106 == 5'h1B | _T_98 == 5'h1B + | _T_90 == 5'h1B | _T_82 == 5'h1B | _T_74 == 5'h1B) + | (_T_25 + ? _T_57 == 5'h1B | _T_49 == 5'h1B | _T_41 == 5'h1B | _GEN_191 | _GEN_111 + : _GEN_191 | _GEN_111); + assign internalWriteMask_28 = + _T_58 + & (_T_122 == 5'h1C | _T_114 == 5'h1C | _T_106 == 5'h1C | _T_98 == 5'h1C + | _T_90 == 5'h1C | _T_82 == 5'h1C | _T_74 == 5'h1C) + | (_T_25 + ? _T_57 == 5'h1C | _T_49 == 5'h1C | _T_41 == 5'h1C + | (&(io_writeReq_0_bits_index[2:0])) | _GEN_192 | _GEN_112 + : _GEN_192 | _GEN_112); + assign internalWriteMask_29 = + _T_58 + & (_T_122 == 5'h1D | _T_114 == 5'h1D | _T_106 == 5'h1D | _T_98 == 5'h1D + | _T_90 == 5'h1D | _T_82 == 5'h1D | _T_74 == 5'h1D) + | (_T_25 + ? _T_57 == 5'h1D | _T_49 == 5'h1D | _T_41 == 5'h1D | _GEN_193 | _GEN_113 + : _GEN_193 | _GEN_113); + assign internalWriteMask_30 = + _T_58 + & (_T_122 == 5'h1E | _T_114 == 5'h1E | _T_106 == 5'h1E | _T_98 == 5'h1E + | _T_90 == 5'h1E | _T_82 == 5'h1E | _T_74 == 5'h1E) + | (_T_25 + ? _T_57 == 5'h1E | _T_49 == 5'h1E | _T_41 == 5'h1E | _GEN_194 | _GEN_114 + : _GEN_194 | _GEN_114); + assign internalWriteMask_31 = + _T_58 + & ((&_T_122) | (&_T_114) | (&_T_106) | (&_T_98) | (&_T_90) | (&_T_82) | (&_T_74)) + | (_T_25 + ? (&_T_57) | (&_T_49) | (&_T_41) | _GEN_195 | _GEN_115 + : _GEN_195 | _GEN_115); + wire _T_124 = io_writeReq_1_bits_vtype_vsew == 3'h0; + wire _GEN_240 = io_writeReq_1_bits_index == 5'h0; + wire [7:0] _GEN_241 = _T_124 & _GEN_240 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_242 = io_writeReq_1_bits_index == 5'h1; + wire _GEN_243 = io_writeReq_1_bits_index == 5'h2; + wire [7:0] _GEN_244 = _T_124 & _GEN_243 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_245 = io_writeReq_1_bits_index == 5'h3; + wire _GEN_246 = io_writeReq_1_bits_index == 5'h4; + wire [7:0] _GEN_247 = _T_124 & _GEN_246 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_248 = io_writeReq_1_bits_index == 5'h5; + wire _GEN_249 = io_writeReq_1_bits_index == 5'h6; + wire [7:0] _GEN_250 = _T_124 & _GEN_249 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_251 = io_writeReq_1_bits_index == 5'h7; + wire _GEN_252 = io_writeReq_1_bits_index == 5'h8; + wire [7:0] _GEN_253 = _T_124 & _GEN_252 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_254 = io_writeReq_1_bits_index == 5'h9; + wire _GEN_255 = io_writeReq_1_bits_index == 5'hA; + wire [7:0] _GEN_256 = _T_124 & _GEN_255 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_257 = io_writeReq_1_bits_index == 5'hB; + wire _GEN_258 = io_writeReq_1_bits_index == 5'hC; + wire [7:0] _GEN_259 = _T_124 & _GEN_258 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_260 = io_writeReq_1_bits_index == 5'hD; + wire _GEN_261 = io_writeReq_1_bits_index == 5'hE; + wire [7:0] _GEN_262 = _T_124 & _GEN_261 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_263 = io_writeReq_1_bits_index == 5'hF; + wire _GEN_264 = io_writeReq_1_bits_index == 5'h10; + wire [7:0] _GEN_265 = _T_124 & _GEN_264 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_266 = io_writeReq_1_bits_index == 5'h11; + wire _GEN_267 = io_writeReq_1_bits_index == 5'h12; + wire [7:0] _GEN_268 = _T_124 & _GEN_267 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_269 = io_writeReq_1_bits_index == 5'h13; + wire _GEN_270 = io_writeReq_1_bits_index == 5'h14; + wire [7:0] _GEN_271 = _T_124 & _GEN_270 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_272 = io_writeReq_1_bits_index == 5'h15; + wire _GEN_273 = io_writeReq_1_bits_index == 5'h16; + wire [7:0] _GEN_274 = _T_124 & _GEN_273 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_275 = io_writeReq_1_bits_index == 5'h17; + wire _GEN_276 = io_writeReq_1_bits_index == 5'h18; + wire [7:0] _GEN_277 = _T_124 & _GEN_276 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_278 = io_writeReq_1_bits_index == 5'h19; + wire _GEN_279 = io_writeReq_1_bits_index == 5'h1A; + wire [7:0] _GEN_280 = _T_124 & _GEN_279 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_281 = io_writeReq_1_bits_index == 5'h1B; + wire _GEN_282 = io_writeReq_1_bits_index == 5'h1C; + wire [7:0] _GEN_283 = _T_124 & _GEN_282 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_284 = io_writeReq_1_bits_index == 5'h1D; + wire _GEN_285 = io_writeReq_1_bits_index == 5'h1E; + wire [7:0] _GEN_286 = _T_124 & _GEN_285 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire _GEN_287 = _T_124 & _GEN_240; + wire _GEN_288 = _T_124 & _GEN_242; + wire _GEN_289 = _T_124 & _GEN_243; + wire _GEN_290 = _T_124 & _GEN_245; + wire _GEN_291 = _T_124 & _GEN_246; + wire _GEN_292 = _T_124 & _GEN_248; + wire _GEN_293 = _T_124 & _GEN_249; + wire _GEN_294 = _T_124 & _GEN_251; + wire _GEN_295 = _T_124 & _GEN_252; + wire _GEN_296 = _T_124 & _GEN_254; + wire _GEN_297 = _T_124 & _GEN_255; + wire _GEN_298 = _T_124 & _GEN_257; + wire _GEN_299 = _T_124 & _GEN_258; + wire _GEN_300 = _T_124 & _GEN_260; + wire _GEN_301 = _T_124 & _GEN_261; + wire _GEN_302 = _T_124 & _GEN_263; + wire _GEN_303 = _T_124 & _GEN_264; + wire _GEN_304 = _T_124 & _GEN_266; + wire _GEN_305 = _T_124 & _GEN_267; + wire _GEN_306 = _T_124 & _GEN_269; + wire _GEN_307 = _T_124 & _GEN_270; + wire _GEN_308 = _T_124 & _GEN_272; + wire _GEN_309 = _T_124 & _GEN_273; + wire _GEN_310 = _T_124 & _GEN_275; + wire _GEN_311 = _T_124 & _GEN_276; + wire _GEN_312 = _T_124 & _GEN_278; + wire _GEN_313 = _T_124 & _GEN_279; + wire _GEN_314 = _T_124 & _GEN_281; + wire _GEN_315 = _T_124 & _GEN_282; + wire _GEN_316 = _T_124 & _GEN_284; + wire _GEN_317 = _T_124 & _GEN_285; + wire _GEN_318 = _T_124 & (&io_writeReq_1_bits_index); + wire _T_131 = io_writeReq_1_bits_vtype_vsew == 3'h1; + wire _GEN_319 = io_writeReq_1_bits_index[3:0] == 4'h0; + wire _GEN_320 = io_writeReq_1_bits_index[3:0] == 4'h1; + wire _GEN_321 = io_writeReq_1_bits_index[3:0] == 4'h2; + wire _GEN_322 = io_writeReq_1_bits_index[3:0] == 4'h3; + wire _GEN_323 = io_writeReq_1_bits_index[3:0] == 4'h4; + wire _GEN_324 = io_writeReq_1_bits_index[3:0] == 4'h5; + wire _GEN_325 = io_writeReq_1_bits_index[3:0] == 4'h6; + wire _GEN_326 = io_writeReq_1_bits_index[3:0] == 4'h7; + wire _GEN_327 = io_writeReq_1_bits_index[3:0] == 4'h8; + wire _GEN_328 = io_writeReq_1_bits_index[3:0] == 4'h9; + wire _GEN_329 = io_writeReq_1_bits_index[3:0] == 4'hA; + wire _GEN_330 = io_writeReq_1_bits_index[3:0] == 4'hB; + wire _GEN_331 = io_writeReq_1_bits_index[3:0] == 4'hC; + wire _GEN_332 = io_writeReq_1_bits_index[3:0] == 4'hD; + wire _GEN_333 = io_writeReq_1_bits_index[3:0] == 4'hE; + wire [4:0] _GEN_334 = {io_writeReq_1_bits_index[3:0], 1'h0}; + wire [4:0] _T_143 = _GEN_334 + 5'h1; + wire [7:0] _GEN_335 = + _T_131 + ? (_T_143 == 5'h0 + ? io_writeReq_1_bits_data[15:8] + : _GEN_319 ? io_writeReq_1_bits_data[7:0] : _GEN_241) + : _GEN_241; + wire [7:0] _GEN_336 = + _T_131 & _T_143 == 5'h1 + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_242 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_337 = + _T_131 + ? (_T_143 == 5'h2 + ? io_writeReq_1_bits_data[15:8] + : _GEN_320 ? io_writeReq_1_bits_data[7:0] : _GEN_244) + : _GEN_244; + wire [7:0] _GEN_338 = + _T_131 & _T_143 == 5'h3 + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_245 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_339 = + _T_131 + ? (_T_143 == 5'h4 + ? io_writeReq_1_bits_data[15:8] + : _GEN_321 ? io_writeReq_1_bits_data[7:0] : _GEN_247) + : _GEN_247; + wire [7:0] _GEN_340 = + _T_131 & _T_143 == 5'h5 + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_248 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_341 = + _T_131 + ? (_T_143 == 5'h6 + ? io_writeReq_1_bits_data[15:8] + : _GEN_322 ? io_writeReq_1_bits_data[7:0] : _GEN_250) + : _GEN_250; + wire [7:0] _GEN_342 = + _T_131 & _T_143 == 5'h7 + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_251 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_343 = + _T_131 + ? (_T_143 == 5'h8 + ? io_writeReq_1_bits_data[15:8] + : _GEN_323 ? io_writeReq_1_bits_data[7:0] : _GEN_253) + : _GEN_253; + wire [7:0] _GEN_344 = + _T_131 & _T_143 == 5'h9 + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_254 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_345 = + _T_131 + ? (_T_143 == 5'hA + ? io_writeReq_1_bits_data[15:8] + : _GEN_324 ? io_writeReq_1_bits_data[7:0] : _GEN_256) + : _GEN_256; + wire [7:0] _GEN_346 = + _T_131 & _T_143 == 5'hB + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_257 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_347 = + _T_131 + ? (_T_143 == 5'hC + ? io_writeReq_1_bits_data[15:8] + : _GEN_325 ? io_writeReq_1_bits_data[7:0] : _GEN_259) + : _GEN_259; + wire [7:0] _GEN_348 = + _T_131 & _T_143 == 5'hD + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_260 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_349 = + _T_131 + ? (_T_143 == 5'hE + ? io_writeReq_1_bits_data[15:8] + : _GEN_326 ? io_writeReq_1_bits_data[7:0] : _GEN_262) + : _GEN_262; + wire [7:0] _GEN_350 = + _T_131 & _T_143 == 5'hF + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_263 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_351 = + _T_131 + ? (_T_143 == 5'h10 + ? io_writeReq_1_bits_data[15:8] + : _GEN_327 ? io_writeReq_1_bits_data[7:0] : _GEN_265) + : _GEN_265; + wire [7:0] _GEN_352 = + _T_131 & _T_143 == 5'h11 + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_266 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_353 = + _T_131 + ? (_T_143 == 5'h12 + ? io_writeReq_1_bits_data[15:8] + : _GEN_328 ? io_writeReq_1_bits_data[7:0] : _GEN_268) + : _GEN_268; + wire [7:0] _GEN_354 = + _T_131 & _T_143 == 5'h13 + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_269 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_355 = + _T_131 + ? (_T_143 == 5'h14 + ? io_writeReq_1_bits_data[15:8] + : _GEN_329 ? io_writeReq_1_bits_data[7:0] : _GEN_271) + : _GEN_271; + wire [7:0] _GEN_356 = + _T_131 & _T_143 == 5'h15 + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_272 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_357 = + _T_131 + ? (_T_143 == 5'h16 + ? io_writeReq_1_bits_data[15:8] + : _GEN_330 ? io_writeReq_1_bits_data[7:0] : _GEN_274) + : _GEN_274; + wire [7:0] _GEN_358 = + _T_131 & _T_143 == 5'h17 + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_275 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_359 = + _T_131 + ? (_T_143 == 5'h18 + ? io_writeReq_1_bits_data[15:8] + : _GEN_331 ? io_writeReq_1_bits_data[7:0] : _GEN_277) + : _GEN_277; + wire [7:0] _GEN_360 = + _T_131 & _T_143 == 5'h19 + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_278 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_361 = + _T_131 + ? (_T_143 == 5'h1A + ? io_writeReq_1_bits_data[15:8] + : _GEN_332 ? io_writeReq_1_bits_data[7:0] : _GEN_280) + : _GEN_280; + wire [7:0] _GEN_362 = + _T_131 & _T_143 == 5'h1B + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_281 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_363 = + _T_131 + ? (_T_143 == 5'h1C + ? io_writeReq_1_bits_data[15:8] + : _GEN_333 ? io_writeReq_1_bits_data[7:0] : _GEN_283) + : _GEN_283; + wire [7:0] _GEN_364 = + _T_131 & _T_143 == 5'h1D + ? io_writeReq_1_bits_data[15:8] + : _T_124 & _GEN_284 ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_365 = + _T_131 + ? (_T_143 == 5'h1E + ? io_writeReq_1_bits_data[15:8] + : (&(io_writeReq_1_bits_index[3:0])) ? io_writeReq_1_bits_data[7:0] : _GEN_286) + : _GEN_286; + wire [7:0] _GEN_366 = + _T_131 & (&_T_143) + ? io_writeReq_1_bits_data[15:8] + : _T_124 & (&io_writeReq_1_bits_index) ? io_writeReq_1_bits_data[7:0] : 8'h0; + wire [4:0] _T_147 = _GEN_334 + 5'h1; + wire _GEN_367 = _T_131 & (_T_147 == 5'h0 | _GEN_319); + wire _GEN_368 = _T_131 & _T_147 == 5'h1; + wire _GEN_369 = _T_131 & (_T_147 == 5'h2 | _GEN_320); + wire _GEN_370 = _T_131 & _T_147 == 5'h3; + wire _GEN_371 = _T_131 & (_T_147 == 5'h4 | _GEN_321); + wire _GEN_372 = _T_131 & _T_147 == 5'h5; + wire _GEN_373 = _T_131 & (_T_147 == 5'h6 | _GEN_322); + wire _GEN_374 = _T_131 & _T_147 == 5'h7; + wire _GEN_375 = _T_131 & (_T_147 == 5'h8 | _GEN_323); + wire _GEN_376 = _T_131 & _T_147 == 5'h9; + wire _GEN_377 = _T_131 & (_T_147 == 5'hA | _GEN_324); + wire _GEN_378 = _T_131 & _T_147 == 5'hB; + wire _GEN_379 = _T_131 & (_T_147 == 5'hC | _GEN_325); + wire _GEN_380 = _T_131 & _T_147 == 5'hD; + wire _GEN_381 = _T_131 & (_T_147 == 5'hE | _GEN_326); + wire _GEN_382 = _T_131 & _T_147 == 5'hF; + wire _GEN_383 = _T_131 & (_T_147 == 5'h10 | _GEN_327); + wire _GEN_384 = _T_131 & _T_147 == 5'h11; + wire _GEN_385 = _T_131 & (_T_147 == 5'h12 | _GEN_328); + wire _GEN_386 = _T_131 & _T_147 == 5'h13; + wire _GEN_387 = _T_131 & (_T_147 == 5'h14 | _GEN_329); + wire _GEN_388 = _T_131 & _T_147 == 5'h15; + wire _GEN_389 = _T_131 & (_T_147 == 5'h16 | _GEN_330); + wire _GEN_390 = _T_131 & _T_147 == 5'h17; + wire _GEN_391 = _T_131 & (_T_147 == 5'h18 | _GEN_331); + wire _GEN_392 = _T_131 & _T_147 == 5'h19; + wire _GEN_393 = _T_131 & (_T_147 == 5'h1A | _GEN_332); + wire _GEN_394 = _T_131 & _T_147 == 5'h1B; + wire _GEN_395 = _T_131 & (_T_147 == 5'h1C | _GEN_333); + wire _GEN_396 = _T_131 & _T_147 == 5'h1D; + wire _GEN_397 = + _T_131 & (_T_147 == 5'h1E | (&(io_writeReq_1_bits_index[3:0]))); + wire _GEN_398 = _T_131 & (&_T_147); + wire _T_148 = io_writeReq_1_bits_vtype_vsew == 3'h2; + wire _GEN_399 = io_writeReq_1_bits_index[2:0] == 3'h0; + wire _GEN_400 = io_writeReq_1_bits_index[2:0] == 3'h1; + wire _GEN_401 = io_writeReq_1_bits_index[2:0] == 3'h2; + wire _GEN_402 = io_writeReq_1_bits_index[2:0] == 3'h3; + wire _GEN_403 = io_writeReq_1_bits_index[2:0] == 3'h4; + wire _GEN_404 = io_writeReq_1_bits_index[2:0] == 3'h5; + wire _GEN_405 = io_writeReq_1_bits_index[2:0] == 3'h6; + wire [4:0] _GEN_406 = {io_writeReq_1_bits_index[2:0], 2'h0}; + wire [4:0] _T_160 = _GEN_406 + 5'h1; + wire [4:0] _T_164 = _GEN_406 + 5'h1; + wire [4:0] _T_168 = _GEN_406 + 5'h2; + wire [4:0] _T_172 = _GEN_406 + 5'h2; + wire [4:0] _T_176 = _GEN_406 + 5'h3; + wire [7:0] _GEN_407 = + _T_148 + ? (_T_176 == 5'h0 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h0 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h0 + ? io_writeReq_1_bits_data[15:8] + : _GEN_399 ? io_writeReq_1_bits_data[7:0] : _GEN_335) + : _GEN_335; + wire [7:0] _GEN_408 = + _T_148 + ? (_T_176 == 5'h1 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h1 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h1 ? io_writeReq_1_bits_data[15:8] : _GEN_336) + : _GEN_336; + wire [7:0] _GEN_409 = + _T_148 + ? (_T_176 == 5'h2 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h2 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h2 ? io_writeReq_1_bits_data[15:8] : _GEN_337) + : _GEN_337; + wire [7:0] _GEN_410 = + _T_148 + ? (_T_176 == 5'h3 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h3 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h3 ? io_writeReq_1_bits_data[15:8] : _GEN_338) + : _GEN_338; + wire [7:0] _GEN_411 = + _T_148 + ? (_T_176 == 5'h4 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h4 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h4 + ? io_writeReq_1_bits_data[15:8] + : _GEN_400 ? io_writeReq_1_bits_data[7:0] : _GEN_339) + : _GEN_339; + wire [7:0] _GEN_412 = + _T_148 + ? (_T_176 == 5'h5 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h5 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h5 ? io_writeReq_1_bits_data[15:8] : _GEN_340) + : _GEN_340; + wire [7:0] _GEN_413 = + _T_148 + ? (_T_176 == 5'h6 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h6 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h6 ? io_writeReq_1_bits_data[15:8] : _GEN_341) + : _GEN_341; + wire [7:0] _GEN_414 = + _T_148 + ? (_T_176 == 5'h7 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h7 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h7 ? io_writeReq_1_bits_data[15:8] : _GEN_342) + : _GEN_342; + wire [7:0] _GEN_415 = + _T_148 + ? (_T_176 == 5'h8 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h8 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h8 + ? io_writeReq_1_bits_data[15:8] + : _GEN_401 ? io_writeReq_1_bits_data[7:0] : _GEN_343) + : _GEN_343; + wire [7:0] _GEN_416 = + _T_148 + ? (_T_176 == 5'h9 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h9 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h9 ? io_writeReq_1_bits_data[15:8] : _GEN_344) + : _GEN_344; + wire [7:0] _GEN_417 = + _T_148 + ? (_T_176 == 5'hA + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'hA + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'hA ? io_writeReq_1_bits_data[15:8] : _GEN_345) + : _GEN_345; + wire [7:0] _GEN_418 = + _T_148 + ? (_T_176 == 5'hB + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'hB + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'hB ? io_writeReq_1_bits_data[15:8] : _GEN_346) + : _GEN_346; + wire [7:0] _GEN_419 = + _T_148 + ? (_T_176 == 5'hC + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'hC + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'hC + ? io_writeReq_1_bits_data[15:8] + : _GEN_402 ? io_writeReq_1_bits_data[7:0] : _GEN_347) + : _GEN_347; + wire [7:0] _GEN_420 = + _T_148 + ? (_T_176 == 5'hD + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'hD + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'hD ? io_writeReq_1_bits_data[15:8] : _GEN_348) + : _GEN_348; + wire [7:0] _GEN_421 = + _T_148 + ? (_T_176 == 5'hE + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'hE + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'hE ? io_writeReq_1_bits_data[15:8] : _GEN_349) + : _GEN_349; + wire [7:0] _GEN_422 = + _T_148 + ? (_T_176 == 5'hF + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'hF + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'hF ? io_writeReq_1_bits_data[15:8] : _GEN_350) + : _GEN_350; + wire [7:0] _GEN_423 = + _T_148 + ? (_T_176 == 5'h10 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h10 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h10 + ? io_writeReq_1_bits_data[15:8] + : _GEN_403 ? io_writeReq_1_bits_data[7:0] : _GEN_351) + : _GEN_351; + wire [7:0] _GEN_424 = + _T_148 + ? (_T_176 == 5'h11 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h11 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h11 ? io_writeReq_1_bits_data[15:8] : _GEN_352) + : _GEN_352; + wire [7:0] _GEN_425 = + _T_148 + ? (_T_176 == 5'h12 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h12 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h12 ? io_writeReq_1_bits_data[15:8] : _GEN_353) + : _GEN_353; + wire [7:0] _GEN_426 = + _T_148 + ? (_T_176 == 5'h13 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h13 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h13 ? io_writeReq_1_bits_data[15:8] : _GEN_354) + : _GEN_354; + wire [7:0] _GEN_427 = + _T_148 + ? (_T_176 == 5'h14 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h14 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h14 + ? io_writeReq_1_bits_data[15:8] + : _GEN_404 ? io_writeReq_1_bits_data[7:0] : _GEN_355) + : _GEN_355; + wire [7:0] _GEN_428 = + _T_148 + ? (_T_176 == 5'h15 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h15 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h15 ? io_writeReq_1_bits_data[15:8] : _GEN_356) + : _GEN_356; + wire [7:0] _GEN_429 = + _T_148 + ? (_T_176 == 5'h16 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h16 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h16 ? io_writeReq_1_bits_data[15:8] : _GEN_357) + : _GEN_357; + wire [7:0] _GEN_430 = + _T_148 + ? (_T_176 == 5'h17 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h17 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h17 ? io_writeReq_1_bits_data[15:8] : _GEN_358) + : _GEN_358; + wire [7:0] _GEN_431 = + _T_148 + ? (_T_176 == 5'h18 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h18 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h18 + ? io_writeReq_1_bits_data[15:8] + : _GEN_405 ? io_writeReq_1_bits_data[7:0] : _GEN_359) + : _GEN_359; + wire [7:0] _GEN_432 = + _T_148 + ? (_T_176 == 5'h19 + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h19 + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h19 ? io_writeReq_1_bits_data[15:8] : _GEN_360) + : _GEN_360; + wire [7:0] _GEN_433 = + _T_148 + ? (_T_176 == 5'h1A + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h1A + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h1A ? io_writeReq_1_bits_data[15:8] : _GEN_361) + : _GEN_361; + wire [7:0] _GEN_434 = + _T_148 + ? (_T_176 == 5'h1B + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h1B + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h1B ? io_writeReq_1_bits_data[15:8] : _GEN_362) + : _GEN_362; + wire [7:0] _GEN_435 = + _T_148 + ? (_T_176 == 5'h1C + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h1C + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h1C + ? io_writeReq_1_bits_data[15:8] + : (&(io_writeReq_1_bits_index[2:0])) + ? io_writeReq_1_bits_data[7:0] + : _GEN_363) + : _GEN_363; + wire [7:0] _GEN_436 = + _T_148 + ? (_T_176 == 5'h1D + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h1D + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h1D ? io_writeReq_1_bits_data[15:8] : _GEN_364) + : _GEN_364; + wire [7:0] _GEN_437 = + _T_148 + ? (_T_176 == 5'h1E + ? io_writeReq_1_bits_data[31:24] + : _T_168 == 5'h1E + ? io_writeReq_1_bits_data[23:16] + : _T_160 == 5'h1E ? io_writeReq_1_bits_data[15:8] : _GEN_365) + : _GEN_365; + wire [7:0] _GEN_438 = + _T_148 + ? ((&_T_176) + ? io_writeReq_1_bits_data[31:24] + : (&_T_168) + ? io_writeReq_1_bits_data[23:16] + : (&_T_160) ? io_writeReq_1_bits_data[15:8] : _GEN_366) + : _GEN_366; + wire [4:0] _T_180 = _GEN_406 + 5'h3; + wire _T_181 = io_writeReq_1_bits_vtype_vsew == 3'h3; + wire _GEN_439 = io_writeReq_1_bits_index[1:0] == 2'h0; + wire _GEN_440 = io_writeReq_1_bits_index[1:0] == 2'h1; + wire _GEN_441 = io_writeReq_1_bits_index[1:0] == 2'h2; + wire [4:0] _GEN_442 = {io_writeReq_1_bits_index[1:0], 3'h0}; + wire [4:0] _T_193 = _GEN_442 + 5'h1; + wire [4:0] _T_197 = _GEN_442 + 5'h1; + wire [4:0] _T_201 = _GEN_442 + 5'h2; + wire [4:0] _T_205 = _GEN_442 + 5'h2; + wire [4:0] _T_209 = _GEN_442 + 5'h3; + wire [4:0] _T_213 = _GEN_442 + 5'h3; + wire [4:0] _T_217 = _GEN_442 + 5'h4; + wire [4:0] _T_221 = _GEN_442 + 5'h4; + wire [4:0] _T_225 = _GEN_442 + 5'h5; + wire [4:0] _T_229 = _GEN_442 + 5'h5; + wire [4:0] _T_233 = _GEN_442 + 5'h6; + wire [4:0] _T_237 = _GEN_442 + 5'h6; + wire [4:0] _T_241 = _GEN_442 + 5'h7; + assign internalWriteData_1_0 = + _T_181 + ? (_T_241 == 5'h0 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h0 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h0 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h0 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h0 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h0 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h0 + ? io_writeReq_1_bits_data[15:8] + : _GEN_439 ? io_writeReq_1_bits_data[7:0] : _GEN_407) + : _GEN_407; + assign internalWriteData_1_1 = + _T_181 + ? (_T_241 == 5'h1 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h1 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h1 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h1 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h1 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h1 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h1 + ? io_writeReq_1_bits_data[15:8] + : _GEN_408) + : _GEN_408; + assign internalWriteData_1_2 = + _T_181 + ? (_T_241 == 5'h2 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h2 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h2 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h2 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h2 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h2 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h2 + ? io_writeReq_1_bits_data[15:8] + : _GEN_409) + : _GEN_409; + assign internalWriteData_1_3 = + _T_181 + ? (_T_241 == 5'h3 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h3 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h3 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h3 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h3 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h3 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h3 + ? io_writeReq_1_bits_data[15:8] + : _GEN_410) + : _GEN_410; + assign internalWriteData_1_4 = + _T_181 + ? (_T_241 == 5'h4 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h4 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h4 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h4 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h4 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h4 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h4 + ? io_writeReq_1_bits_data[15:8] + : _GEN_411) + : _GEN_411; + assign internalWriteData_1_5 = + _T_181 + ? (_T_241 == 5'h5 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h5 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h5 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h5 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h5 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h5 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h5 + ? io_writeReq_1_bits_data[15:8] + : _GEN_412) + : _GEN_412; + assign internalWriteData_1_6 = + _T_181 + ? (_T_241 == 5'h6 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h6 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h6 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h6 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h6 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h6 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h6 + ? io_writeReq_1_bits_data[15:8] + : _GEN_413) + : _GEN_413; + assign internalWriteData_1_7 = + _T_181 + ? (_T_241 == 5'h7 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h7 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h7 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h7 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h7 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h7 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h7 + ? io_writeReq_1_bits_data[15:8] + : _GEN_414) + : _GEN_414; + assign internalWriteData_1_8 = + _T_181 + ? (_T_241 == 5'h8 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h8 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h8 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h8 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h8 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h8 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h8 + ? io_writeReq_1_bits_data[15:8] + : _GEN_440 ? io_writeReq_1_bits_data[7:0] : _GEN_415) + : _GEN_415; + assign internalWriteData_1_9 = + _T_181 + ? (_T_241 == 5'h9 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h9 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h9 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h9 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h9 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h9 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h9 + ? io_writeReq_1_bits_data[15:8] + : _GEN_416) + : _GEN_416; + assign internalWriteData_1_10 = + _T_181 + ? (_T_241 == 5'hA + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'hA + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'hA + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'hA + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'hA + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'hA + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'hA + ? io_writeReq_1_bits_data[15:8] + : _GEN_417) + : _GEN_417; + assign internalWriteData_1_11 = + _T_181 + ? (_T_241 == 5'hB + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'hB + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'hB + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'hB + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'hB + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'hB + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'hB + ? io_writeReq_1_bits_data[15:8] + : _GEN_418) + : _GEN_418; + assign internalWriteData_1_12 = + _T_181 + ? (_T_241 == 5'hC + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'hC + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'hC + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'hC + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'hC + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'hC + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'hC + ? io_writeReq_1_bits_data[15:8] + : _GEN_419) + : _GEN_419; + assign internalWriteData_1_13 = + _T_181 + ? (_T_241 == 5'hD + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'hD + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'hD + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'hD + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'hD + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'hD + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'hD + ? io_writeReq_1_bits_data[15:8] + : _GEN_420) + : _GEN_420; + assign internalWriteData_1_14 = + _T_181 + ? (_T_241 == 5'hE + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'hE + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'hE + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'hE + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'hE + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'hE + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'hE + ? io_writeReq_1_bits_data[15:8] + : _GEN_421) + : _GEN_421; + assign internalWriteData_1_15 = + _T_181 + ? (_T_241 == 5'hF + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'hF + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'hF + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'hF + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'hF + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'hF + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'hF + ? io_writeReq_1_bits_data[15:8] + : _GEN_422) + : _GEN_422; + assign internalWriteData_1_16 = + _T_181 + ? (_T_241 == 5'h10 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h10 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h10 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h10 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h10 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h10 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h10 + ? io_writeReq_1_bits_data[15:8] + : _GEN_441 ? io_writeReq_1_bits_data[7:0] : _GEN_423) + : _GEN_423; + assign internalWriteData_1_17 = + _T_181 + ? (_T_241 == 5'h11 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h11 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h11 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h11 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h11 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h11 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h11 + ? io_writeReq_1_bits_data[15:8] + : _GEN_424) + : _GEN_424; + assign internalWriteData_1_18 = + _T_181 + ? (_T_241 == 5'h12 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h12 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h12 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h12 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h12 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h12 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h12 + ? io_writeReq_1_bits_data[15:8] + : _GEN_425) + : _GEN_425; + assign internalWriteData_1_19 = + _T_181 + ? (_T_241 == 5'h13 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h13 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h13 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h13 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h13 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h13 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h13 + ? io_writeReq_1_bits_data[15:8] + : _GEN_426) + : _GEN_426; + assign internalWriteData_1_20 = + _T_181 + ? (_T_241 == 5'h14 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h14 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h14 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h14 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h14 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h14 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h14 + ? io_writeReq_1_bits_data[15:8] + : _GEN_427) + : _GEN_427; + assign internalWriteData_1_21 = + _T_181 + ? (_T_241 == 5'h15 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h15 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h15 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h15 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h15 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h15 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h15 + ? io_writeReq_1_bits_data[15:8] + : _GEN_428) + : _GEN_428; + assign internalWriteData_1_22 = + _T_181 + ? (_T_241 == 5'h16 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h16 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h16 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h16 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h16 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h16 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h16 + ? io_writeReq_1_bits_data[15:8] + : _GEN_429) + : _GEN_429; + assign internalWriteData_1_23 = + _T_181 + ? (_T_241 == 5'h17 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h17 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h17 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h17 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h17 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h17 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h17 + ? io_writeReq_1_bits_data[15:8] + : _GEN_430) + : _GEN_430; + assign internalWriteData_1_24 = + _T_181 + ? (_T_241 == 5'h18 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h18 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h18 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h18 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h18 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h18 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h18 + ? io_writeReq_1_bits_data[15:8] + : (&(io_writeReq_1_bits_index[1:0])) + ? io_writeReq_1_bits_data[7:0] + : _GEN_431) + : _GEN_431; + assign internalWriteData_1_25 = + _T_181 + ? (_T_241 == 5'h19 + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h19 + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h19 + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h19 + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h19 + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h19 + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h19 + ? io_writeReq_1_bits_data[15:8] + : _GEN_432) + : _GEN_432; + assign internalWriteData_1_26 = + _T_181 + ? (_T_241 == 5'h1A + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h1A + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h1A + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h1A + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h1A + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h1A + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h1A + ? io_writeReq_1_bits_data[15:8] + : _GEN_433) + : _GEN_433; + assign internalWriteData_1_27 = + _T_181 + ? (_T_241 == 5'h1B + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h1B + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h1B + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h1B + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h1B + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h1B + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h1B + ? io_writeReq_1_bits_data[15:8] + : _GEN_434) + : _GEN_434; + assign internalWriteData_1_28 = + _T_181 + ? (_T_241 == 5'h1C + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h1C + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h1C + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h1C + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h1C + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h1C + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h1C + ? io_writeReq_1_bits_data[15:8] + : _GEN_435) + : _GEN_435; + assign internalWriteData_1_29 = + _T_181 + ? (_T_241 == 5'h1D + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h1D + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h1D + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h1D + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h1D + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h1D + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h1D + ? io_writeReq_1_bits_data[15:8] + : _GEN_436) + : _GEN_436; + assign internalWriteData_1_30 = + _T_181 + ? (_T_241 == 5'h1E + ? io_writeReq_1_bits_data[63:56] + : _T_233 == 5'h1E + ? io_writeReq_1_bits_data[55:48] + : _T_225 == 5'h1E + ? io_writeReq_1_bits_data[47:40] + : _T_217 == 5'h1E + ? io_writeReq_1_bits_data[39:32] + : _T_209 == 5'h1E + ? io_writeReq_1_bits_data[31:24] + : _T_201 == 5'h1E + ? io_writeReq_1_bits_data[23:16] + : _T_193 == 5'h1E + ? io_writeReq_1_bits_data[15:8] + : _GEN_437) + : _GEN_437; + assign internalWriteData_1_31 = + _T_181 + ? ((&_T_241) + ? io_writeReq_1_bits_data[63:56] + : (&_T_233) + ? io_writeReq_1_bits_data[55:48] + : (&_T_225) + ? io_writeReq_1_bits_data[47:40] + : (&_T_217) + ? io_writeReq_1_bits_data[39:32] + : (&_T_209) + ? io_writeReq_1_bits_data[31:24] + : (&_T_201) + ? io_writeReq_1_bits_data[23:16] + : (&_T_193) ? io_writeReq_1_bits_data[15:8] : _GEN_438) + : _GEN_438; + wire [4:0] _T_245 = _GEN_442 + 5'h7; + assign internalWriteMask_1_0 = + _T_181 + & (_T_245 == 5'h0 | _T_237 == 5'h0 | _T_229 == 5'h0 | _T_221 == 5'h0 | _T_213 == 5'h0 + | _T_205 == 5'h0 | _T_197 == 5'h0 | _GEN_439) + | (_T_148 + ? _T_180 == 5'h0 | _T_172 == 5'h0 | _T_164 == 5'h0 | _GEN_399 | _GEN_367 + | _GEN_287 + : _GEN_367 | _GEN_287); + assign internalWriteMask_1_1 = + _T_181 + & (_T_245 == 5'h1 | _T_237 == 5'h1 | _T_229 == 5'h1 | _T_221 == 5'h1 | _T_213 == 5'h1 + | _T_205 == 5'h1 | _T_197 == 5'h1) + | (_T_148 + ? _T_180 == 5'h1 | _T_172 == 5'h1 | _T_164 == 5'h1 | _GEN_368 | _GEN_288 + : _GEN_368 | _GEN_288); + assign internalWriteMask_1_2 = + _T_181 + & (_T_245 == 5'h2 | _T_237 == 5'h2 | _T_229 == 5'h2 | _T_221 == 5'h2 | _T_213 == 5'h2 + | _T_205 == 5'h2 | _T_197 == 5'h2) + | (_T_148 + ? _T_180 == 5'h2 | _T_172 == 5'h2 | _T_164 == 5'h2 | _GEN_369 | _GEN_289 + : _GEN_369 | _GEN_289); + assign internalWriteMask_1_3 = + _T_181 + & (_T_245 == 5'h3 | _T_237 == 5'h3 | _T_229 == 5'h3 | _T_221 == 5'h3 | _T_213 == 5'h3 + | _T_205 == 5'h3 | _T_197 == 5'h3) + | (_T_148 + ? _T_180 == 5'h3 | _T_172 == 5'h3 | _T_164 == 5'h3 | _GEN_370 | _GEN_290 + : _GEN_370 | _GEN_290); + assign internalWriteMask_1_4 = + _T_181 + & (_T_245 == 5'h4 | _T_237 == 5'h4 | _T_229 == 5'h4 | _T_221 == 5'h4 | _T_213 == 5'h4 + | _T_205 == 5'h4 | _T_197 == 5'h4) + | (_T_148 + ? _T_180 == 5'h4 | _T_172 == 5'h4 | _T_164 == 5'h4 | _GEN_400 | _GEN_371 + | _GEN_291 + : _GEN_371 | _GEN_291); + assign internalWriteMask_1_5 = + _T_181 + & (_T_245 == 5'h5 | _T_237 == 5'h5 | _T_229 == 5'h5 | _T_221 == 5'h5 | _T_213 == 5'h5 + | _T_205 == 5'h5 | _T_197 == 5'h5) + | (_T_148 + ? _T_180 == 5'h5 | _T_172 == 5'h5 | _T_164 == 5'h5 | _GEN_372 | _GEN_292 + : _GEN_372 | _GEN_292); + assign internalWriteMask_1_6 = + _T_181 + & (_T_245 == 5'h6 | _T_237 == 5'h6 | _T_229 == 5'h6 | _T_221 == 5'h6 | _T_213 == 5'h6 + | _T_205 == 5'h6 | _T_197 == 5'h6) + | (_T_148 + ? _T_180 == 5'h6 | _T_172 == 5'h6 | _T_164 == 5'h6 | _GEN_373 | _GEN_293 + : _GEN_373 | _GEN_293); + assign internalWriteMask_1_7 = + _T_181 + & (_T_245 == 5'h7 | _T_237 == 5'h7 | _T_229 == 5'h7 | _T_221 == 5'h7 | _T_213 == 5'h7 + | _T_205 == 5'h7 | _T_197 == 5'h7) + | (_T_148 + ? _T_180 == 5'h7 | _T_172 == 5'h7 | _T_164 == 5'h7 | _GEN_374 | _GEN_294 + : _GEN_374 | _GEN_294); + assign internalWriteMask_1_8 = + _T_181 + & (_T_245 == 5'h8 | _T_237 == 5'h8 | _T_229 == 5'h8 | _T_221 == 5'h8 | _T_213 == 5'h8 + | _T_205 == 5'h8 | _T_197 == 5'h8 | _GEN_440) + | (_T_148 + ? _T_180 == 5'h8 | _T_172 == 5'h8 | _T_164 == 5'h8 | _GEN_401 | _GEN_375 + | _GEN_295 + : _GEN_375 | _GEN_295); + assign internalWriteMask_1_9 = + _T_181 + & (_T_245 == 5'h9 | _T_237 == 5'h9 | _T_229 == 5'h9 | _T_221 == 5'h9 | _T_213 == 5'h9 + | _T_205 == 5'h9 | _T_197 == 5'h9) + | (_T_148 + ? _T_180 == 5'h9 | _T_172 == 5'h9 | _T_164 == 5'h9 | _GEN_376 | _GEN_296 + : _GEN_376 | _GEN_296); + assign internalWriteMask_1_10 = + _T_181 + & (_T_245 == 5'hA | _T_237 == 5'hA | _T_229 == 5'hA | _T_221 == 5'hA | _T_213 == 5'hA + | _T_205 == 5'hA | _T_197 == 5'hA) + | (_T_148 + ? _T_180 == 5'hA | _T_172 == 5'hA | _T_164 == 5'hA | _GEN_377 | _GEN_297 + : _GEN_377 | _GEN_297); + assign internalWriteMask_1_11 = + _T_181 + & (_T_245 == 5'hB | _T_237 == 5'hB | _T_229 == 5'hB | _T_221 == 5'hB | _T_213 == 5'hB + | _T_205 == 5'hB | _T_197 == 5'hB) + | (_T_148 + ? _T_180 == 5'hB | _T_172 == 5'hB | _T_164 == 5'hB | _GEN_378 | _GEN_298 + : _GEN_378 | _GEN_298); + assign internalWriteMask_1_12 = + _T_181 + & (_T_245 == 5'hC | _T_237 == 5'hC | _T_229 == 5'hC | _T_221 == 5'hC | _T_213 == 5'hC + | _T_205 == 5'hC | _T_197 == 5'hC) + | (_T_148 + ? _T_180 == 5'hC | _T_172 == 5'hC | _T_164 == 5'hC | _GEN_402 | _GEN_379 + | _GEN_299 + : _GEN_379 | _GEN_299); + assign internalWriteMask_1_13 = + _T_181 + & (_T_245 == 5'hD | _T_237 == 5'hD | _T_229 == 5'hD | _T_221 == 5'hD | _T_213 == 5'hD + | _T_205 == 5'hD | _T_197 == 5'hD) + | (_T_148 + ? _T_180 == 5'hD | _T_172 == 5'hD | _T_164 == 5'hD | _GEN_380 | _GEN_300 + : _GEN_380 | _GEN_300); + assign internalWriteMask_1_14 = + _T_181 + & (_T_245 == 5'hE | _T_237 == 5'hE | _T_229 == 5'hE | _T_221 == 5'hE | _T_213 == 5'hE + | _T_205 == 5'hE | _T_197 == 5'hE) + | (_T_148 + ? _T_180 == 5'hE | _T_172 == 5'hE | _T_164 == 5'hE | _GEN_381 | _GEN_301 + : _GEN_381 | _GEN_301); + assign internalWriteMask_1_15 = + _T_181 + & (_T_245 == 5'hF | _T_237 == 5'hF | _T_229 == 5'hF | _T_221 == 5'hF | _T_213 == 5'hF + | _T_205 == 5'hF | _T_197 == 5'hF) + | (_T_148 + ? _T_180 == 5'hF | _T_172 == 5'hF | _T_164 == 5'hF | _GEN_382 | _GEN_302 + : _GEN_382 | _GEN_302); + assign internalWriteMask_1_16 = + _T_181 + & (_T_245 == 5'h10 | _T_237 == 5'h10 | _T_229 == 5'h10 | _T_221 == 5'h10 + | _T_213 == 5'h10 | _T_205 == 5'h10 | _T_197 == 5'h10 | _GEN_441) + | (_T_148 + ? _T_180 == 5'h10 | _T_172 == 5'h10 | _T_164 == 5'h10 | _GEN_403 | _GEN_383 + | _GEN_303 + : _GEN_383 | _GEN_303); + assign internalWriteMask_1_17 = + _T_181 + & (_T_245 == 5'h11 | _T_237 == 5'h11 | _T_229 == 5'h11 | _T_221 == 5'h11 + | _T_213 == 5'h11 | _T_205 == 5'h11 | _T_197 == 5'h11) + | (_T_148 + ? _T_180 == 5'h11 | _T_172 == 5'h11 | _T_164 == 5'h11 | _GEN_384 | _GEN_304 + : _GEN_384 | _GEN_304); + assign internalWriteMask_1_18 = + _T_181 + & (_T_245 == 5'h12 | _T_237 == 5'h12 | _T_229 == 5'h12 | _T_221 == 5'h12 + | _T_213 == 5'h12 | _T_205 == 5'h12 | _T_197 == 5'h12) + | (_T_148 + ? _T_180 == 5'h12 | _T_172 == 5'h12 | _T_164 == 5'h12 | _GEN_385 | _GEN_305 + : _GEN_385 | _GEN_305); + assign internalWriteMask_1_19 = + _T_181 + & (_T_245 == 5'h13 | _T_237 == 5'h13 | _T_229 == 5'h13 | _T_221 == 5'h13 + | _T_213 == 5'h13 | _T_205 == 5'h13 | _T_197 == 5'h13) + | (_T_148 + ? _T_180 == 5'h13 | _T_172 == 5'h13 | _T_164 == 5'h13 | _GEN_386 | _GEN_306 + : _GEN_386 | _GEN_306); + assign internalWriteMask_1_20 = + _T_181 + & (_T_245 == 5'h14 | _T_237 == 5'h14 | _T_229 == 5'h14 | _T_221 == 5'h14 + | _T_213 == 5'h14 | _T_205 == 5'h14 | _T_197 == 5'h14) + | (_T_148 + ? _T_180 == 5'h14 | _T_172 == 5'h14 | _T_164 == 5'h14 | _GEN_404 | _GEN_387 + | _GEN_307 + : _GEN_387 | _GEN_307); + assign internalWriteMask_1_21 = + _T_181 + & (_T_245 == 5'h15 | _T_237 == 5'h15 | _T_229 == 5'h15 | _T_221 == 5'h15 + | _T_213 == 5'h15 | _T_205 == 5'h15 | _T_197 == 5'h15) + | (_T_148 + ? _T_180 == 5'h15 | _T_172 == 5'h15 | _T_164 == 5'h15 | _GEN_388 | _GEN_308 + : _GEN_388 | _GEN_308); + assign internalWriteMask_1_22 = + _T_181 + & (_T_245 == 5'h16 | _T_237 == 5'h16 | _T_229 == 5'h16 | _T_221 == 5'h16 + | _T_213 == 5'h16 | _T_205 == 5'h16 | _T_197 == 5'h16) + | (_T_148 + ? _T_180 == 5'h16 | _T_172 == 5'h16 | _T_164 == 5'h16 | _GEN_389 | _GEN_309 + : _GEN_389 | _GEN_309); + assign internalWriteMask_1_23 = + _T_181 + & (_T_245 == 5'h17 | _T_237 == 5'h17 | _T_229 == 5'h17 | _T_221 == 5'h17 + | _T_213 == 5'h17 | _T_205 == 5'h17 | _T_197 == 5'h17) + | (_T_148 + ? _T_180 == 5'h17 | _T_172 == 5'h17 | _T_164 == 5'h17 | _GEN_390 | _GEN_310 + : _GEN_390 | _GEN_310); + assign internalWriteMask_1_24 = + _T_181 + & (_T_245 == 5'h18 | _T_237 == 5'h18 | _T_229 == 5'h18 | _T_221 == 5'h18 + | _T_213 == 5'h18 | _T_205 == 5'h18 | _T_197 == 5'h18 + | (&(io_writeReq_1_bits_index[1:0]))) + | (_T_148 + ? _T_180 == 5'h18 | _T_172 == 5'h18 | _T_164 == 5'h18 | _GEN_405 | _GEN_391 + | _GEN_311 + : _GEN_391 | _GEN_311); + assign internalWriteMask_1_25 = + _T_181 + & (_T_245 == 5'h19 | _T_237 == 5'h19 | _T_229 == 5'h19 | _T_221 == 5'h19 + | _T_213 == 5'h19 | _T_205 == 5'h19 | _T_197 == 5'h19) + | (_T_148 + ? _T_180 == 5'h19 | _T_172 == 5'h19 | _T_164 == 5'h19 | _GEN_392 | _GEN_312 + : _GEN_392 | _GEN_312); + assign internalWriteMask_1_26 = + _T_181 + & (_T_245 == 5'h1A | _T_237 == 5'h1A | _T_229 == 5'h1A | _T_221 == 5'h1A + | _T_213 == 5'h1A | _T_205 == 5'h1A | _T_197 == 5'h1A) + | (_T_148 + ? _T_180 == 5'h1A | _T_172 == 5'h1A | _T_164 == 5'h1A | _GEN_393 | _GEN_313 + : _GEN_393 | _GEN_313); + assign internalWriteMask_1_27 = + _T_181 + & (_T_245 == 5'h1B | _T_237 == 5'h1B | _T_229 == 5'h1B | _T_221 == 5'h1B + | _T_213 == 5'h1B | _T_205 == 5'h1B | _T_197 == 5'h1B) + | (_T_148 + ? _T_180 == 5'h1B | _T_172 == 5'h1B | _T_164 == 5'h1B | _GEN_394 | _GEN_314 + : _GEN_394 | _GEN_314); + assign internalWriteMask_1_28 = + _T_181 + & (_T_245 == 5'h1C | _T_237 == 5'h1C | _T_229 == 5'h1C | _T_221 == 5'h1C + | _T_213 == 5'h1C | _T_205 == 5'h1C | _T_197 == 5'h1C) + | (_T_148 + ? _T_180 == 5'h1C | _T_172 == 5'h1C | _T_164 == 5'h1C + | (&(io_writeReq_1_bits_index[2:0])) | _GEN_395 | _GEN_315 + : _GEN_395 | _GEN_315); + assign internalWriteMask_1_29 = + _T_181 + & (_T_245 == 5'h1D | _T_237 == 5'h1D | _T_229 == 5'h1D | _T_221 == 5'h1D + | _T_213 == 5'h1D | _T_205 == 5'h1D | _T_197 == 5'h1D) + | (_T_148 + ? _T_180 == 5'h1D | _T_172 == 5'h1D | _T_164 == 5'h1D | _GEN_396 | _GEN_316 + : _GEN_396 | _GEN_316); + assign internalWriteMask_1_30 = + _T_181 + & (_T_245 == 5'h1E | _T_237 == 5'h1E | _T_229 == 5'h1E | _T_221 == 5'h1E + | _T_213 == 5'h1E | _T_205 == 5'h1E | _T_197 == 5'h1E) + | (_T_148 + ? _T_180 == 5'h1E | _T_172 == 5'h1E | _T_164 == 5'h1E | _GEN_397 | _GEN_317 + : _GEN_397 | _GEN_317); + assign internalWriteMask_1_31 = + _T_181 + & ((&_T_245) | (&_T_237) | (&_T_229) | (&_T_221) | (&_T_213) | (&_T_205) | (&_T_197)) + | (_T_148 + ? (&_T_180) | (&_T_172) | (&_T_164) | _GEN_398 | _GEN_318 + : _GEN_398 | _GEN_318); + wire _T_247 = io_writeReq_2_bits_vtype_vsew == 3'h0; + wire _GEN_443 = io_writeReq_2_bits_index == 5'h0; + wire [7:0] _GEN_444 = _T_247 & _GEN_443 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_445 = io_writeReq_2_bits_index == 5'h1; + wire _GEN_446 = io_writeReq_2_bits_index == 5'h2; + wire [7:0] _GEN_447 = _T_247 & _GEN_446 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_448 = io_writeReq_2_bits_index == 5'h3; + wire _GEN_449 = io_writeReq_2_bits_index == 5'h4; + wire [7:0] _GEN_450 = _T_247 & _GEN_449 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_451 = io_writeReq_2_bits_index == 5'h5; + wire _GEN_452 = io_writeReq_2_bits_index == 5'h6; + wire [7:0] _GEN_453 = _T_247 & _GEN_452 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_454 = io_writeReq_2_bits_index == 5'h7; + wire _GEN_455 = io_writeReq_2_bits_index == 5'h8; + wire [7:0] _GEN_456 = _T_247 & _GEN_455 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_457 = io_writeReq_2_bits_index == 5'h9; + wire _GEN_458 = io_writeReq_2_bits_index == 5'hA; + wire [7:0] _GEN_459 = _T_247 & _GEN_458 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_460 = io_writeReq_2_bits_index == 5'hB; + wire _GEN_461 = io_writeReq_2_bits_index == 5'hC; + wire [7:0] _GEN_462 = _T_247 & _GEN_461 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_463 = io_writeReq_2_bits_index == 5'hD; + wire _GEN_464 = io_writeReq_2_bits_index == 5'hE; + wire [7:0] _GEN_465 = _T_247 & _GEN_464 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_466 = io_writeReq_2_bits_index == 5'hF; + wire _GEN_467 = io_writeReq_2_bits_index == 5'h10; + wire [7:0] _GEN_468 = _T_247 & _GEN_467 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_469 = io_writeReq_2_bits_index == 5'h11; + wire _GEN_470 = io_writeReq_2_bits_index == 5'h12; + wire [7:0] _GEN_471 = _T_247 & _GEN_470 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_472 = io_writeReq_2_bits_index == 5'h13; + wire _GEN_473 = io_writeReq_2_bits_index == 5'h14; + wire [7:0] _GEN_474 = _T_247 & _GEN_473 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_475 = io_writeReq_2_bits_index == 5'h15; + wire _GEN_476 = io_writeReq_2_bits_index == 5'h16; + wire [7:0] _GEN_477 = _T_247 & _GEN_476 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_478 = io_writeReq_2_bits_index == 5'h17; + wire _GEN_479 = io_writeReq_2_bits_index == 5'h18; + wire [7:0] _GEN_480 = _T_247 & _GEN_479 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_481 = io_writeReq_2_bits_index == 5'h19; + wire _GEN_482 = io_writeReq_2_bits_index == 5'h1A; + wire [7:0] _GEN_483 = _T_247 & _GEN_482 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_484 = io_writeReq_2_bits_index == 5'h1B; + wire _GEN_485 = io_writeReq_2_bits_index == 5'h1C; + wire [7:0] _GEN_486 = _T_247 & _GEN_485 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_487 = io_writeReq_2_bits_index == 5'h1D; + wire _GEN_488 = io_writeReq_2_bits_index == 5'h1E; + wire [7:0] _GEN_489 = _T_247 & _GEN_488 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire _GEN_490 = _T_247 & _GEN_443; + wire _GEN_491 = _T_247 & _GEN_445; + wire _GEN_492 = _T_247 & _GEN_446; + wire _GEN_493 = _T_247 & _GEN_448; + wire _GEN_494 = _T_247 & _GEN_449; + wire _GEN_495 = _T_247 & _GEN_451; + wire _GEN_496 = _T_247 & _GEN_452; + wire _GEN_497 = _T_247 & _GEN_454; + wire _GEN_498 = _T_247 & _GEN_455; + wire _GEN_499 = _T_247 & _GEN_457; + wire _GEN_500 = _T_247 & _GEN_458; + wire _GEN_501 = _T_247 & _GEN_460; + wire _GEN_502 = _T_247 & _GEN_461; + wire _GEN_503 = _T_247 & _GEN_463; + wire _GEN_504 = _T_247 & _GEN_464; + wire _GEN_505 = _T_247 & _GEN_466; + wire _GEN_506 = _T_247 & _GEN_467; + wire _GEN_507 = _T_247 & _GEN_469; + wire _GEN_508 = _T_247 & _GEN_470; + wire _GEN_509 = _T_247 & _GEN_472; + wire _GEN_510 = _T_247 & _GEN_473; + wire _GEN_511 = _T_247 & _GEN_475; + wire _GEN_512 = _T_247 & _GEN_476; + wire _GEN_513 = _T_247 & _GEN_478; + wire _GEN_514 = _T_247 & _GEN_479; + wire _GEN_515 = _T_247 & _GEN_481; + wire _GEN_516 = _T_247 & _GEN_482; + wire _GEN_517 = _T_247 & _GEN_484; + wire _GEN_518 = _T_247 & _GEN_485; + wire _GEN_519 = _T_247 & _GEN_487; + wire _GEN_520 = _T_247 & _GEN_488; + wire _GEN_521 = _T_247 & (&io_writeReq_2_bits_index); + wire _T_254 = io_writeReq_2_bits_vtype_vsew == 3'h1; + wire _GEN_522 = io_writeReq_2_bits_index[3:0] == 4'h0; + wire _GEN_523 = io_writeReq_2_bits_index[3:0] == 4'h1; + wire _GEN_524 = io_writeReq_2_bits_index[3:0] == 4'h2; + wire _GEN_525 = io_writeReq_2_bits_index[3:0] == 4'h3; + wire _GEN_526 = io_writeReq_2_bits_index[3:0] == 4'h4; + wire _GEN_527 = io_writeReq_2_bits_index[3:0] == 4'h5; + wire _GEN_528 = io_writeReq_2_bits_index[3:0] == 4'h6; + wire _GEN_529 = io_writeReq_2_bits_index[3:0] == 4'h7; + wire _GEN_530 = io_writeReq_2_bits_index[3:0] == 4'h8; + wire _GEN_531 = io_writeReq_2_bits_index[3:0] == 4'h9; + wire _GEN_532 = io_writeReq_2_bits_index[3:0] == 4'hA; + wire _GEN_533 = io_writeReq_2_bits_index[3:0] == 4'hB; + wire _GEN_534 = io_writeReq_2_bits_index[3:0] == 4'hC; + wire _GEN_535 = io_writeReq_2_bits_index[3:0] == 4'hD; + wire _GEN_536 = io_writeReq_2_bits_index[3:0] == 4'hE; + wire [4:0] _GEN_537 = {io_writeReq_2_bits_index[3:0], 1'h0}; + wire [4:0] _T_266 = _GEN_537 + 5'h1; + wire [7:0] _GEN_538 = + _T_254 + ? (_T_266 == 5'h0 + ? io_writeReq_2_bits_data[15:8] + : _GEN_522 ? io_writeReq_2_bits_data[7:0] : _GEN_444) + : _GEN_444; + wire [7:0] _GEN_539 = + _T_254 & _T_266 == 5'h1 + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_445 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_540 = + _T_254 + ? (_T_266 == 5'h2 + ? io_writeReq_2_bits_data[15:8] + : _GEN_523 ? io_writeReq_2_bits_data[7:0] : _GEN_447) + : _GEN_447; + wire [7:0] _GEN_541 = + _T_254 & _T_266 == 5'h3 + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_448 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_542 = + _T_254 + ? (_T_266 == 5'h4 + ? io_writeReq_2_bits_data[15:8] + : _GEN_524 ? io_writeReq_2_bits_data[7:0] : _GEN_450) + : _GEN_450; + wire [7:0] _GEN_543 = + _T_254 & _T_266 == 5'h5 + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_451 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_544 = + _T_254 + ? (_T_266 == 5'h6 + ? io_writeReq_2_bits_data[15:8] + : _GEN_525 ? io_writeReq_2_bits_data[7:0] : _GEN_453) + : _GEN_453; + wire [7:0] _GEN_545 = + _T_254 & _T_266 == 5'h7 + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_454 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_546 = + _T_254 + ? (_T_266 == 5'h8 + ? io_writeReq_2_bits_data[15:8] + : _GEN_526 ? io_writeReq_2_bits_data[7:0] : _GEN_456) + : _GEN_456; + wire [7:0] _GEN_547 = + _T_254 & _T_266 == 5'h9 + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_457 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_548 = + _T_254 + ? (_T_266 == 5'hA + ? io_writeReq_2_bits_data[15:8] + : _GEN_527 ? io_writeReq_2_bits_data[7:0] : _GEN_459) + : _GEN_459; + wire [7:0] _GEN_549 = + _T_254 & _T_266 == 5'hB + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_460 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_550 = + _T_254 + ? (_T_266 == 5'hC + ? io_writeReq_2_bits_data[15:8] + : _GEN_528 ? io_writeReq_2_bits_data[7:0] : _GEN_462) + : _GEN_462; + wire [7:0] _GEN_551 = + _T_254 & _T_266 == 5'hD + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_463 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_552 = + _T_254 + ? (_T_266 == 5'hE + ? io_writeReq_2_bits_data[15:8] + : _GEN_529 ? io_writeReq_2_bits_data[7:0] : _GEN_465) + : _GEN_465; + wire [7:0] _GEN_553 = + _T_254 & _T_266 == 5'hF + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_466 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_554 = + _T_254 + ? (_T_266 == 5'h10 + ? io_writeReq_2_bits_data[15:8] + : _GEN_530 ? io_writeReq_2_bits_data[7:0] : _GEN_468) + : _GEN_468; + wire [7:0] _GEN_555 = + _T_254 & _T_266 == 5'h11 + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_469 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_556 = + _T_254 + ? (_T_266 == 5'h12 + ? io_writeReq_2_bits_data[15:8] + : _GEN_531 ? io_writeReq_2_bits_data[7:0] : _GEN_471) + : _GEN_471; + wire [7:0] _GEN_557 = + _T_254 & _T_266 == 5'h13 + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_472 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_558 = + _T_254 + ? (_T_266 == 5'h14 + ? io_writeReq_2_bits_data[15:8] + : _GEN_532 ? io_writeReq_2_bits_data[7:0] : _GEN_474) + : _GEN_474; + wire [7:0] _GEN_559 = + _T_254 & _T_266 == 5'h15 + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_475 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_560 = + _T_254 + ? (_T_266 == 5'h16 + ? io_writeReq_2_bits_data[15:8] + : _GEN_533 ? io_writeReq_2_bits_data[7:0] : _GEN_477) + : _GEN_477; + wire [7:0] _GEN_561 = + _T_254 & _T_266 == 5'h17 + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_478 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_562 = + _T_254 + ? (_T_266 == 5'h18 + ? io_writeReq_2_bits_data[15:8] + : _GEN_534 ? io_writeReq_2_bits_data[7:0] : _GEN_480) + : _GEN_480; + wire [7:0] _GEN_563 = + _T_254 & _T_266 == 5'h19 + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_481 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_564 = + _T_254 + ? (_T_266 == 5'h1A + ? io_writeReq_2_bits_data[15:8] + : _GEN_535 ? io_writeReq_2_bits_data[7:0] : _GEN_483) + : _GEN_483; + wire [7:0] _GEN_565 = + _T_254 & _T_266 == 5'h1B + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_484 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_566 = + _T_254 + ? (_T_266 == 5'h1C + ? io_writeReq_2_bits_data[15:8] + : _GEN_536 ? io_writeReq_2_bits_data[7:0] : _GEN_486) + : _GEN_486; + wire [7:0] _GEN_567 = + _T_254 & _T_266 == 5'h1D + ? io_writeReq_2_bits_data[15:8] + : _T_247 & _GEN_487 ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [7:0] _GEN_568 = + _T_254 + ? (_T_266 == 5'h1E + ? io_writeReq_2_bits_data[15:8] + : (&(io_writeReq_2_bits_index[3:0])) ? io_writeReq_2_bits_data[7:0] : _GEN_489) + : _GEN_489; + wire [7:0] _GEN_569 = + _T_254 & (&_T_266) + ? io_writeReq_2_bits_data[15:8] + : _T_247 & (&io_writeReq_2_bits_index) ? io_writeReq_2_bits_data[7:0] : 8'h0; + wire [4:0] _T_270 = _GEN_537 + 5'h1; + wire _GEN_570 = _T_254 & (_T_270 == 5'h0 | _GEN_522); + wire _GEN_571 = _T_254 & _T_270 == 5'h1; + wire _GEN_572 = _T_254 & (_T_270 == 5'h2 | _GEN_523); + wire _GEN_573 = _T_254 & _T_270 == 5'h3; + wire _GEN_574 = _T_254 & (_T_270 == 5'h4 | _GEN_524); + wire _GEN_575 = _T_254 & _T_270 == 5'h5; + wire _GEN_576 = _T_254 & (_T_270 == 5'h6 | _GEN_525); + wire _GEN_577 = _T_254 & _T_270 == 5'h7; + wire _GEN_578 = _T_254 & (_T_270 == 5'h8 | _GEN_526); + wire _GEN_579 = _T_254 & _T_270 == 5'h9; + wire _GEN_580 = _T_254 & (_T_270 == 5'hA | _GEN_527); + wire _GEN_581 = _T_254 & _T_270 == 5'hB; + wire _GEN_582 = _T_254 & (_T_270 == 5'hC | _GEN_528); + wire _GEN_583 = _T_254 & _T_270 == 5'hD; + wire _GEN_584 = _T_254 & (_T_270 == 5'hE | _GEN_529); + wire _GEN_585 = _T_254 & _T_270 == 5'hF; + wire _GEN_586 = _T_254 & (_T_270 == 5'h10 | _GEN_530); + wire _GEN_587 = _T_254 & _T_270 == 5'h11; + wire _GEN_588 = _T_254 & (_T_270 == 5'h12 | _GEN_531); + wire _GEN_589 = _T_254 & _T_270 == 5'h13; + wire _GEN_590 = _T_254 & (_T_270 == 5'h14 | _GEN_532); + wire _GEN_591 = _T_254 & _T_270 == 5'h15; + wire _GEN_592 = _T_254 & (_T_270 == 5'h16 | _GEN_533); + wire _GEN_593 = _T_254 & _T_270 == 5'h17; + wire _GEN_594 = _T_254 & (_T_270 == 5'h18 | _GEN_534); + wire _GEN_595 = _T_254 & _T_270 == 5'h19; + wire _GEN_596 = _T_254 & (_T_270 == 5'h1A | _GEN_535); + wire _GEN_597 = _T_254 & _T_270 == 5'h1B; + wire _GEN_598 = _T_254 & (_T_270 == 5'h1C | _GEN_536); + wire _GEN_599 = _T_254 & _T_270 == 5'h1D; + wire _GEN_600 = + _T_254 & (_T_270 == 5'h1E | (&(io_writeReq_2_bits_index[3:0]))); + wire _GEN_601 = _T_254 & (&_T_270); + wire _T_271 = io_writeReq_2_bits_vtype_vsew == 3'h2; + wire _GEN_602 = io_writeReq_2_bits_index[2:0] == 3'h0; + wire _GEN_603 = io_writeReq_2_bits_index[2:0] == 3'h1; + wire _GEN_604 = io_writeReq_2_bits_index[2:0] == 3'h2; + wire _GEN_605 = io_writeReq_2_bits_index[2:0] == 3'h3; + wire _GEN_606 = io_writeReq_2_bits_index[2:0] == 3'h4; + wire _GEN_607 = io_writeReq_2_bits_index[2:0] == 3'h5; + wire _GEN_608 = io_writeReq_2_bits_index[2:0] == 3'h6; + wire [4:0] _GEN_609 = {io_writeReq_2_bits_index[2:0], 2'h0}; + wire [4:0] _T_283 = _GEN_609 + 5'h1; + wire [4:0] _T_287 = _GEN_609 + 5'h1; + wire [4:0] _T_291 = _GEN_609 + 5'h2; + wire [4:0] _T_295 = _GEN_609 + 5'h2; + wire [4:0] _T_299 = _GEN_609 + 5'h3; + wire [7:0] _GEN_610 = + _T_271 + ? (_T_299 == 5'h0 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h0 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h0 + ? io_writeReq_2_bits_data[15:8] + : _GEN_602 ? io_writeReq_2_bits_data[7:0] : _GEN_538) + : _GEN_538; + wire [7:0] _GEN_611 = + _T_271 + ? (_T_299 == 5'h1 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h1 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h1 ? io_writeReq_2_bits_data[15:8] : _GEN_539) + : _GEN_539; + wire [7:0] _GEN_612 = + _T_271 + ? (_T_299 == 5'h2 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h2 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h2 ? io_writeReq_2_bits_data[15:8] : _GEN_540) + : _GEN_540; + wire [7:0] _GEN_613 = + _T_271 + ? (_T_299 == 5'h3 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h3 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h3 ? io_writeReq_2_bits_data[15:8] : _GEN_541) + : _GEN_541; + wire [7:0] _GEN_614 = + _T_271 + ? (_T_299 == 5'h4 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h4 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h4 + ? io_writeReq_2_bits_data[15:8] + : _GEN_603 ? io_writeReq_2_bits_data[7:0] : _GEN_542) + : _GEN_542; + wire [7:0] _GEN_615 = + _T_271 + ? (_T_299 == 5'h5 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h5 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h5 ? io_writeReq_2_bits_data[15:8] : _GEN_543) + : _GEN_543; + wire [7:0] _GEN_616 = + _T_271 + ? (_T_299 == 5'h6 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h6 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h6 ? io_writeReq_2_bits_data[15:8] : _GEN_544) + : _GEN_544; + wire [7:0] _GEN_617 = + _T_271 + ? (_T_299 == 5'h7 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h7 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h7 ? io_writeReq_2_bits_data[15:8] : _GEN_545) + : _GEN_545; + wire [7:0] _GEN_618 = + _T_271 + ? (_T_299 == 5'h8 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h8 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h8 + ? io_writeReq_2_bits_data[15:8] + : _GEN_604 ? io_writeReq_2_bits_data[7:0] : _GEN_546) + : _GEN_546; + wire [7:0] _GEN_619 = + _T_271 + ? (_T_299 == 5'h9 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h9 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h9 ? io_writeReq_2_bits_data[15:8] : _GEN_547) + : _GEN_547; + wire [7:0] _GEN_620 = + _T_271 + ? (_T_299 == 5'hA + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'hA + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'hA ? io_writeReq_2_bits_data[15:8] : _GEN_548) + : _GEN_548; + wire [7:0] _GEN_621 = + _T_271 + ? (_T_299 == 5'hB + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'hB + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'hB ? io_writeReq_2_bits_data[15:8] : _GEN_549) + : _GEN_549; + wire [7:0] _GEN_622 = + _T_271 + ? (_T_299 == 5'hC + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'hC + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'hC + ? io_writeReq_2_bits_data[15:8] + : _GEN_605 ? io_writeReq_2_bits_data[7:0] : _GEN_550) + : _GEN_550; + wire [7:0] _GEN_623 = + _T_271 + ? (_T_299 == 5'hD + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'hD + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'hD ? io_writeReq_2_bits_data[15:8] : _GEN_551) + : _GEN_551; + wire [7:0] _GEN_624 = + _T_271 + ? (_T_299 == 5'hE + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'hE + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'hE ? io_writeReq_2_bits_data[15:8] : _GEN_552) + : _GEN_552; + wire [7:0] _GEN_625 = + _T_271 + ? (_T_299 == 5'hF + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'hF + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'hF ? io_writeReq_2_bits_data[15:8] : _GEN_553) + : _GEN_553; + wire [7:0] _GEN_626 = + _T_271 + ? (_T_299 == 5'h10 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h10 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h10 + ? io_writeReq_2_bits_data[15:8] + : _GEN_606 ? io_writeReq_2_bits_data[7:0] : _GEN_554) + : _GEN_554; + wire [7:0] _GEN_627 = + _T_271 + ? (_T_299 == 5'h11 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h11 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h11 ? io_writeReq_2_bits_data[15:8] : _GEN_555) + : _GEN_555; + wire [7:0] _GEN_628 = + _T_271 + ? (_T_299 == 5'h12 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h12 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h12 ? io_writeReq_2_bits_data[15:8] : _GEN_556) + : _GEN_556; + wire [7:0] _GEN_629 = + _T_271 + ? (_T_299 == 5'h13 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h13 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h13 ? io_writeReq_2_bits_data[15:8] : _GEN_557) + : _GEN_557; + wire [7:0] _GEN_630 = + _T_271 + ? (_T_299 == 5'h14 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h14 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h14 + ? io_writeReq_2_bits_data[15:8] + : _GEN_607 ? io_writeReq_2_bits_data[7:0] : _GEN_558) + : _GEN_558; + wire [7:0] _GEN_631 = + _T_271 + ? (_T_299 == 5'h15 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h15 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h15 ? io_writeReq_2_bits_data[15:8] : _GEN_559) + : _GEN_559; + wire [7:0] _GEN_632 = + _T_271 + ? (_T_299 == 5'h16 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h16 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h16 ? io_writeReq_2_bits_data[15:8] : _GEN_560) + : _GEN_560; + wire [7:0] _GEN_633 = + _T_271 + ? (_T_299 == 5'h17 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h17 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h17 ? io_writeReq_2_bits_data[15:8] : _GEN_561) + : _GEN_561; + wire [7:0] _GEN_634 = + _T_271 + ? (_T_299 == 5'h18 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h18 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h18 + ? io_writeReq_2_bits_data[15:8] + : _GEN_608 ? io_writeReq_2_bits_data[7:0] : _GEN_562) + : _GEN_562; + wire [7:0] _GEN_635 = + _T_271 + ? (_T_299 == 5'h19 + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h19 + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h19 ? io_writeReq_2_bits_data[15:8] : _GEN_563) + : _GEN_563; + wire [7:0] _GEN_636 = + _T_271 + ? (_T_299 == 5'h1A + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h1A + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h1A ? io_writeReq_2_bits_data[15:8] : _GEN_564) + : _GEN_564; + wire [7:0] _GEN_637 = + _T_271 + ? (_T_299 == 5'h1B + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h1B + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h1B ? io_writeReq_2_bits_data[15:8] : _GEN_565) + : _GEN_565; + wire [7:0] _GEN_638 = + _T_271 + ? (_T_299 == 5'h1C + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h1C + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h1C + ? io_writeReq_2_bits_data[15:8] + : (&(io_writeReq_2_bits_index[2:0])) + ? io_writeReq_2_bits_data[7:0] + : _GEN_566) + : _GEN_566; + wire [7:0] _GEN_639 = + _T_271 + ? (_T_299 == 5'h1D + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h1D + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h1D ? io_writeReq_2_bits_data[15:8] : _GEN_567) + : _GEN_567; + wire [7:0] _GEN_640 = + _T_271 + ? (_T_299 == 5'h1E + ? io_writeReq_2_bits_data[31:24] + : _T_291 == 5'h1E + ? io_writeReq_2_bits_data[23:16] + : _T_283 == 5'h1E ? io_writeReq_2_bits_data[15:8] : _GEN_568) + : _GEN_568; + wire [7:0] _GEN_641 = + _T_271 + ? ((&_T_299) + ? io_writeReq_2_bits_data[31:24] + : (&_T_291) + ? io_writeReq_2_bits_data[23:16] + : (&_T_283) ? io_writeReq_2_bits_data[15:8] : _GEN_569) + : _GEN_569; + wire [4:0] _T_303 = _GEN_609 + 5'h3; + wire _T_304 = io_writeReq_2_bits_vtype_vsew == 3'h3; + wire _GEN_642 = io_writeReq_2_bits_index[1:0] == 2'h0; + wire _GEN_643 = io_writeReq_2_bits_index[1:0] == 2'h1; + wire _GEN_644 = io_writeReq_2_bits_index[1:0] == 2'h2; + wire [4:0] _GEN_645 = {io_writeReq_2_bits_index[1:0], 3'h0}; + wire [4:0] _T_316 = _GEN_645 + 5'h1; + wire [4:0] _T_320 = _GEN_645 + 5'h1; + wire [4:0] _T_324 = _GEN_645 + 5'h2; + wire [4:0] _T_328 = _GEN_645 + 5'h2; + wire [4:0] _T_332 = _GEN_645 + 5'h3; + wire [4:0] _T_336 = _GEN_645 + 5'h3; + wire [4:0] _T_340 = _GEN_645 + 5'h4; + wire [4:0] _T_344 = _GEN_645 + 5'h4; + wire [4:0] _T_348 = _GEN_645 + 5'h5; + wire [4:0] _T_352 = _GEN_645 + 5'h5; + wire [4:0] _T_356 = _GEN_645 + 5'h6; + wire [4:0] _T_360 = _GEN_645 + 5'h6; + wire [4:0] _T_364 = _GEN_645 + 5'h7; + assign internalWriteData_2_0 = + _T_304 + ? (_T_364 == 5'h0 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h0 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h0 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h0 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h0 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h0 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h0 + ? io_writeReq_2_bits_data[15:8] + : _GEN_642 ? io_writeReq_2_bits_data[7:0] : _GEN_610) + : _GEN_610; + assign internalWriteData_2_1 = + _T_304 + ? (_T_364 == 5'h1 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h1 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h1 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h1 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h1 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h1 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h1 + ? io_writeReq_2_bits_data[15:8] + : _GEN_611) + : _GEN_611; + assign internalWriteData_2_2 = + _T_304 + ? (_T_364 == 5'h2 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h2 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h2 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h2 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h2 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h2 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h2 + ? io_writeReq_2_bits_data[15:8] + : _GEN_612) + : _GEN_612; + assign internalWriteData_2_3 = + _T_304 + ? (_T_364 == 5'h3 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h3 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h3 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h3 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h3 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h3 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h3 + ? io_writeReq_2_bits_data[15:8] + : _GEN_613) + : _GEN_613; + assign internalWriteData_2_4 = + _T_304 + ? (_T_364 == 5'h4 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h4 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h4 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h4 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h4 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h4 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h4 + ? io_writeReq_2_bits_data[15:8] + : _GEN_614) + : _GEN_614; + assign internalWriteData_2_5 = + _T_304 + ? (_T_364 == 5'h5 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h5 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h5 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h5 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h5 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h5 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h5 + ? io_writeReq_2_bits_data[15:8] + : _GEN_615) + : _GEN_615; + assign internalWriteData_2_6 = + _T_304 + ? (_T_364 == 5'h6 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h6 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h6 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h6 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h6 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h6 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h6 + ? io_writeReq_2_bits_data[15:8] + : _GEN_616) + : _GEN_616; + assign internalWriteData_2_7 = + _T_304 + ? (_T_364 == 5'h7 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h7 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h7 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h7 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h7 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h7 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h7 + ? io_writeReq_2_bits_data[15:8] + : _GEN_617) + : _GEN_617; + assign internalWriteData_2_8 = + _T_304 + ? (_T_364 == 5'h8 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h8 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h8 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h8 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h8 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h8 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h8 + ? io_writeReq_2_bits_data[15:8] + : _GEN_643 ? io_writeReq_2_bits_data[7:0] : _GEN_618) + : _GEN_618; + assign internalWriteData_2_9 = + _T_304 + ? (_T_364 == 5'h9 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h9 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h9 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h9 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h9 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h9 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h9 + ? io_writeReq_2_bits_data[15:8] + : _GEN_619) + : _GEN_619; + assign internalWriteData_2_10 = + _T_304 + ? (_T_364 == 5'hA + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'hA + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'hA + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'hA + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'hA + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'hA + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'hA + ? io_writeReq_2_bits_data[15:8] + : _GEN_620) + : _GEN_620; + assign internalWriteData_2_11 = + _T_304 + ? (_T_364 == 5'hB + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'hB + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'hB + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'hB + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'hB + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'hB + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'hB + ? io_writeReq_2_bits_data[15:8] + : _GEN_621) + : _GEN_621; + assign internalWriteData_2_12 = + _T_304 + ? (_T_364 == 5'hC + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'hC + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'hC + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'hC + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'hC + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'hC + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'hC + ? io_writeReq_2_bits_data[15:8] + : _GEN_622) + : _GEN_622; + assign internalWriteData_2_13 = + _T_304 + ? (_T_364 == 5'hD + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'hD + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'hD + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'hD + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'hD + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'hD + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'hD + ? io_writeReq_2_bits_data[15:8] + : _GEN_623) + : _GEN_623; + assign internalWriteData_2_14 = + _T_304 + ? (_T_364 == 5'hE + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'hE + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'hE + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'hE + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'hE + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'hE + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'hE + ? io_writeReq_2_bits_data[15:8] + : _GEN_624) + : _GEN_624; + assign internalWriteData_2_15 = + _T_304 + ? (_T_364 == 5'hF + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'hF + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'hF + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'hF + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'hF + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'hF + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'hF + ? io_writeReq_2_bits_data[15:8] + : _GEN_625) + : _GEN_625; + assign internalWriteData_2_16 = + _T_304 + ? (_T_364 == 5'h10 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h10 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h10 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h10 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h10 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h10 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h10 + ? io_writeReq_2_bits_data[15:8] + : _GEN_644 ? io_writeReq_2_bits_data[7:0] : _GEN_626) + : _GEN_626; + assign internalWriteData_2_17 = + _T_304 + ? (_T_364 == 5'h11 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h11 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h11 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h11 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h11 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h11 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h11 + ? io_writeReq_2_bits_data[15:8] + : _GEN_627) + : _GEN_627; + assign internalWriteData_2_18 = + _T_304 + ? (_T_364 == 5'h12 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h12 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h12 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h12 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h12 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h12 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h12 + ? io_writeReq_2_bits_data[15:8] + : _GEN_628) + : _GEN_628; + assign internalWriteData_2_19 = + _T_304 + ? (_T_364 == 5'h13 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h13 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h13 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h13 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h13 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h13 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h13 + ? io_writeReq_2_bits_data[15:8] + : _GEN_629) + : _GEN_629; + assign internalWriteData_2_20 = + _T_304 + ? (_T_364 == 5'h14 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h14 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h14 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h14 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h14 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h14 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h14 + ? io_writeReq_2_bits_data[15:8] + : _GEN_630) + : _GEN_630; + assign internalWriteData_2_21 = + _T_304 + ? (_T_364 == 5'h15 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h15 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h15 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h15 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h15 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h15 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h15 + ? io_writeReq_2_bits_data[15:8] + : _GEN_631) + : _GEN_631; + assign internalWriteData_2_22 = + _T_304 + ? (_T_364 == 5'h16 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h16 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h16 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h16 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h16 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h16 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h16 + ? io_writeReq_2_bits_data[15:8] + : _GEN_632) + : _GEN_632; + assign internalWriteData_2_23 = + _T_304 + ? (_T_364 == 5'h17 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h17 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h17 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h17 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h17 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h17 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h17 + ? io_writeReq_2_bits_data[15:8] + : _GEN_633) + : _GEN_633; + assign internalWriteData_2_24 = + _T_304 + ? (_T_364 == 5'h18 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h18 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h18 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h18 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h18 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h18 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h18 + ? io_writeReq_2_bits_data[15:8] + : (&(io_writeReq_2_bits_index[1:0])) + ? io_writeReq_2_bits_data[7:0] + : _GEN_634) + : _GEN_634; + assign internalWriteData_2_25 = + _T_304 + ? (_T_364 == 5'h19 + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h19 + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h19 + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h19 + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h19 + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h19 + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h19 + ? io_writeReq_2_bits_data[15:8] + : _GEN_635) + : _GEN_635; + assign internalWriteData_2_26 = + _T_304 + ? (_T_364 == 5'h1A + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h1A + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h1A + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h1A + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h1A + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h1A + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h1A + ? io_writeReq_2_bits_data[15:8] + : _GEN_636) + : _GEN_636; + assign internalWriteData_2_27 = + _T_304 + ? (_T_364 == 5'h1B + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h1B + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h1B + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h1B + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h1B + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h1B + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h1B + ? io_writeReq_2_bits_data[15:8] + : _GEN_637) + : _GEN_637; + assign internalWriteData_2_28 = + _T_304 + ? (_T_364 == 5'h1C + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h1C + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h1C + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h1C + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h1C + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h1C + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h1C + ? io_writeReq_2_bits_data[15:8] + : _GEN_638) + : _GEN_638; + assign internalWriteData_2_29 = + _T_304 + ? (_T_364 == 5'h1D + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h1D + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h1D + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h1D + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h1D + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h1D + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h1D + ? io_writeReq_2_bits_data[15:8] + : _GEN_639) + : _GEN_639; + assign internalWriteData_2_30 = + _T_304 + ? (_T_364 == 5'h1E + ? io_writeReq_2_bits_data[63:56] + : _T_356 == 5'h1E + ? io_writeReq_2_bits_data[55:48] + : _T_348 == 5'h1E + ? io_writeReq_2_bits_data[47:40] + : _T_340 == 5'h1E + ? io_writeReq_2_bits_data[39:32] + : _T_332 == 5'h1E + ? io_writeReq_2_bits_data[31:24] + : _T_324 == 5'h1E + ? io_writeReq_2_bits_data[23:16] + : _T_316 == 5'h1E + ? io_writeReq_2_bits_data[15:8] + : _GEN_640) + : _GEN_640; + assign internalWriteData_2_31 = + _T_304 + ? ((&_T_364) + ? io_writeReq_2_bits_data[63:56] + : (&_T_356) + ? io_writeReq_2_bits_data[55:48] + : (&_T_348) + ? io_writeReq_2_bits_data[47:40] + : (&_T_340) + ? io_writeReq_2_bits_data[39:32] + : (&_T_332) + ? io_writeReq_2_bits_data[31:24] + : (&_T_324) + ? io_writeReq_2_bits_data[23:16] + : (&_T_316) ? io_writeReq_2_bits_data[15:8] : _GEN_641) + : _GEN_641; + wire [4:0] _T_368 = _GEN_645 + 5'h7; + assign internalWriteMask_2_0 = + _T_304 + & (_T_368 == 5'h0 | _T_360 == 5'h0 | _T_352 == 5'h0 | _T_344 == 5'h0 | _T_336 == 5'h0 + | _T_328 == 5'h0 | _T_320 == 5'h0 | _GEN_642) + | (_T_271 + ? _T_303 == 5'h0 | _T_295 == 5'h0 | _T_287 == 5'h0 | _GEN_602 | _GEN_570 + | _GEN_490 + : _GEN_570 | _GEN_490); + assign internalWriteMask_2_1 = + _T_304 + & (_T_368 == 5'h1 | _T_360 == 5'h1 | _T_352 == 5'h1 | _T_344 == 5'h1 | _T_336 == 5'h1 + | _T_328 == 5'h1 | _T_320 == 5'h1) + | (_T_271 + ? _T_303 == 5'h1 | _T_295 == 5'h1 | _T_287 == 5'h1 | _GEN_571 | _GEN_491 + : _GEN_571 | _GEN_491); + assign internalWriteMask_2_2 = + _T_304 + & (_T_368 == 5'h2 | _T_360 == 5'h2 | _T_352 == 5'h2 | _T_344 == 5'h2 | _T_336 == 5'h2 + | _T_328 == 5'h2 | _T_320 == 5'h2) + | (_T_271 + ? _T_303 == 5'h2 | _T_295 == 5'h2 | _T_287 == 5'h2 | _GEN_572 | _GEN_492 + : _GEN_572 | _GEN_492); + assign internalWriteMask_2_3 = + _T_304 + & (_T_368 == 5'h3 | _T_360 == 5'h3 | _T_352 == 5'h3 | _T_344 == 5'h3 | _T_336 == 5'h3 + | _T_328 == 5'h3 | _T_320 == 5'h3) + | (_T_271 + ? _T_303 == 5'h3 | _T_295 == 5'h3 | _T_287 == 5'h3 | _GEN_573 | _GEN_493 + : _GEN_573 | _GEN_493); + assign internalWriteMask_2_4 = + _T_304 + & (_T_368 == 5'h4 | _T_360 == 5'h4 | _T_352 == 5'h4 | _T_344 == 5'h4 | _T_336 == 5'h4 + | _T_328 == 5'h4 | _T_320 == 5'h4) + | (_T_271 + ? _T_303 == 5'h4 | _T_295 == 5'h4 | _T_287 == 5'h4 | _GEN_603 | _GEN_574 + | _GEN_494 + : _GEN_574 | _GEN_494); + assign internalWriteMask_2_5 = + _T_304 + & (_T_368 == 5'h5 | _T_360 == 5'h5 | _T_352 == 5'h5 | _T_344 == 5'h5 | _T_336 == 5'h5 + | _T_328 == 5'h5 | _T_320 == 5'h5) + | (_T_271 + ? _T_303 == 5'h5 | _T_295 == 5'h5 | _T_287 == 5'h5 | _GEN_575 | _GEN_495 + : _GEN_575 | _GEN_495); + assign internalWriteMask_2_6 = + _T_304 + & (_T_368 == 5'h6 | _T_360 == 5'h6 | _T_352 == 5'h6 | _T_344 == 5'h6 | _T_336 == 5'h6 + | _T_328 == 5'h6 | _T_320 == 5'h6) + | (_T_271 + ? _T_303 == 5'h6 | _T_295 == 5'h6 | _T_287 == 5'h6 | _GEN_576 | _GEN_496 + : _GEN_576 | _GEN_496); + assign internalWriteMask_2_7 = + _T_304 + & (_T_368 == 5'h7 | _T_360 == 5'h7 | _T_352 == 5'h7 | _T_344 == 5'h7 | _T_336 == 5'h7 + | _T_328 == 5'h7 | _T_320 == 5'h7) + | (_T_271 + ? _T_303 == 5'h7 | _T_295 == 5'h7 | _T_287 == 5'h7 | _GEN_577 | _GEN_497 + : _GEN_577 | _GEN_497); + assign internalWriteMask_2_8 = + _T_304 + & (_T_368 == 5'h8 | _T_360 == 5'h8 | _T_352 == 5'h8 | _T_344 == 5'h8 | _T_336 == 5'h8 + | _T_328 == 5'h8 | _T_320 == 5'h8 | _GEN_643) + | (_T_271 + ? _T_303 == 5'h8 | _T_295 == 5'h8 | _T_287 == 5'h8 | _GEN_604 | _GEN_578 + | _GEN_498 + : _GEN_578 | _GEN_498); + assign internalWriteMask_2_9 = + _T_304 + & (_T_368 == 5'h9 | _T_360 == 5'h9 | _T_352 == 5'h9 | _T_344 == 5'h9 | _T_336 == 5'h9 + | _T_328 == 5'h9 | _T_320 == 5'h9) + | (_T_271 + ? _T_303 == 5'h9 | _T_295 == 5'h9 | _T_287 == 5'h9 | _GEN_579 | _GEN_499 + : _GEN_579 | _GEN_499); + assign internalWriteMask_2_10 = + _T_304 + & (_T_368 == 5'hA | _T_360 == 5'hA | _T_352 == 5'hA | _T_344 == 5'hA | _T_336 == 5'hA + | _T_328 == 5'hA | _T_320 == 5'hA) + | (_T_271 + ? _T_303 == 5'hA | _T_295 == 5'hA | _T_287 == 5'hA | _GEN_580 | _GEN_500 + : _GEN_580 | _GEN_500); + assign internalWriteMask_2_11 = + _T_304 + & (_T_368 == 5'hB | _T_360 == 5'hB | _T_352 == 5'hB | _T_344 == 5'hB | _T_336 == 5'hB + | _T_328 == 5'hB | _T_320 == 5'hB) + | (_T_271 + ? _T_303 == 5'hB | _T_295 == 5'hB | _T_287 == 5'hB | _GEN_581 | _GEN_501 + : _GEN_581 | _GEN_501); + assign internalWriteMask_2_12 = + _T_304 + & (_T_368 == 5'hC | _T_360 == 5'hC | _T_352 == 5'hC | _T_344 == 5'hC | _T_336 == 5'hC + | _T_328 == 5'hC | _T_320 == 5'hC) + | (_T_271 + ? _T_303 == 5'hC | _T_295 == 5'hC | _T_287 == 5'hC | _GEN_605 | _GEN_582 + | _GEN_502 + : _GEN_582 | _GEN_502); + assign internalWriteMask_2_13 = + _T_304 + & (_T_368 == 5'hD | _T_360 == 5'hD | _T_352 == 5'hD | _T_344 == 5'hD | _T_336 == 5'hD + | _T_328 == 5'hD | _T_320 == 5'hD) + | (_T_271 + ? _T_303 == 5'hD | _T_295 == 5'hD | _T_287 == 5'hD | _GEN_583 | _GEN_503 + : _GEN_583 | _GEN_503); + assign internalWriteMask_2_14 = + _T_304 + & (_T_368 == 5'hE | _T_360 == 5'hE | _T_352 == 5'hE | _T_344 == 5'hE | _T_336 == 5'hE + | _T_328 == 5'hE | _T_320 == 5'hE) + | (_T_271 + ? _T_303 == 5'hE | _T_295 == 5'hE | _T_287 == 5'hE | _GEN_584 | _GEN_504 + : _GEN_584 | _GEN_504); + assign internalWriteMask_2_15 = + _T_304 + & (_T_368 == 5'hF | _T_360 == 5'hF | _T_352 == 5'hF | _T_344 == 5'hF | _T_336 == 5'hF + | _T_328 == 5'hF | _T_320 == 5'hF) + | (_T_271 + ? _T_303 == 5'hF | _T_295 == 5'hF | _T_287 == 5'hF | _GEN_585 | _GEN_505 + : _GEN_585 | _GEN_505); + assign internalWriteMask_2_16 = + _T_304 + & (_T_368 == 5'h10 | _T_360 == 5'h10 | _T_352 == 5'h10 | _T_344 == 5'h10 + | _T_336 == 5'h10 | _T_328 == 5'h10 | _T_320 == 5'h10 | _GEN_644) + | (_T_271 + ? _T_303 == 5'h10 | _T_295 == 5'h10 | _T_287 == 5'h10 | _GEN_606 | _GEN_586 + | _GEN_506 + : _GEN_586 | _GEN_506); + assign internalWriteMask_2_17 = + _T_304 + & (_T_368 == 5'h11 | _T_360 == 5'h11 | _T_352 == 5'h11 | _T_344 == 5'h11 + | _T_336 == 5'h11 | _T_328 == 5'h11 | _T_320 == 5'h11) + | (_T_271 + ? _T_303 == 5'h11 | _T_295 == 5'h11 | _T_287 == 5'h11 | _GEN_587 | _GEN_507 + : _GEN_587 | _GEN_507); + assign internalWriteMask_2_18 = + _T_304 + & (_T_368 == 5'h12 | _T_360 == 5'h12 | _T_352 == 5'h12 | _T_344 == 5'h12 + | _T_336 == 5'h12 | _T_328 == 5'h12 | _T_320 == 5'h12) + | (_T_271 + ? _T_303 == 5'h12 | _T_295 == 5'h12 | _T_287 == 5'h12 | _GEN_588 | _GEN_508 + : _GEN_588 | _GEN_508); + assign internalWriteMask_2_19 = + _T_304 + & (_T_368 == 5'h13 | _T_360 == 5'h13 | _T_352 == 5'h13 | _T_344 == 5'h13 + | _T_336 == 5'h13 | _T_328 == 5'h13 | _T_320 == 5'h13) + | (_T_271 + ? _T_303 == 5'h13 | _T_295 == 5'h13 | _T_287 == 5'h13 | _GEN_589 | _GEN_509 + : _GEN_589 | _GEN_509); + assign internalWriteMask_2_20 = + _T_304 + & (_T_368 == 5'h14 | _T_360 == 5'h14 | _T_352 == 5'h14 | _T_344 == 5'h14 + | _T_336 == 5'h14 | _T_328 == 5'h14 | _T_320 == 5'h14) + | (_T_271 + ? _T_303 == 5'h14 | _T_295 == 5'h14 | _T_287 == 5'h14 | _GEN_607 | _GEN_590 + | _GEN_510 + : _GEN_590 | _GEN_510); + assign internalWriteMask_2_21 = + _T_304 + & (_T_368 == 5'h15 | _T_360 == 5'h15 | _T_352 == 5'h15 | _T_344 == 5'h15 + | _T_336 == 5'h15 | _T_328 == 5'h15 | _T_320 == 5'h15) + | (_T_271 + ? _T_303 == 5'h15 | _T_295 == 5'h15 | _T_287 == 5'h15 | _GEN_591 | _GEN_511 + : _GEN_591 | _GEN_511); + assign internalWriteMask_2_22 = + _T_304 + & (_T_368 == 5'h16 | _T_360 == 5'h16 | _T_352 == 5'h16 | _T_344 == 5'h16 + | _T_336 == 5'h16 | _T_328 == 5'h16 | _T_320 == 5'h16) + | (_T_271 + ? _T_303 == 5'h16 | _T_295 == 5'h16 | _T_287 == 5'h16 | _GEN_592 | _GEN_512 + : _GEN_592 | _GEN_512); + assign internalWriteMask_2_23 = + _T_304 + & (_T_368 == 5'h17 | _T_360 == 5'h17 | _T_352 == 5'h17 | _T_344 == 5'h17 + | _T_336 == 5'h17 | _T_328 == 5'h17 | _T_320 == 5'h17) + | (_T_271 + ? _T_303 == 5'h17 | _T_295 == 5'h17 | _T_287 == 5'h17 | _GEN_593 | _GEN_513 + : _GEN_593 | _GEN_513); + assign internalWriteMask_2_24 = + _T_304 + & (_T_368 == 5'h18 | _T_360 == 5'h18 | _T_352 == 5'h18 | _T_344 == 5'h18 + | _T_336 == 5'h18 | _T_328 == 5'h18 | _T_320 == 5'h18 + | (&(io_writeReq_2_bits_index[1:0]))) + | (_T_271 + ? _T_303 == 5'h18 | _T_295 == 5'h18 | _T_287 == 5'h18 | _GEN_608 | _GEN_594 + | _GEN_514 + : _GEN_594 | _GEN_514); + assign internalWriteMask_2_25 = + _T_304 + & (_T_368 == 5'h19 | _T_360 == 5'h19 | _T_352 == 5'h19 | _T_344 == 5'h19 + | _T_336 == 5'h19 | _T_328 == 5'h19 | _T_320 == 5'h19) + | (_T_271 + ? _T_303 == 5'h19 | _T_295 == 5'h19 | _T_287 == 5'h19 | _GEN_595 | _GEN_515 + : _GEN_595 | _GEN_515); + assign internalWriteMask_2_26 = + _T_304 + & (_T_368 == 5'h1A | _T_360 == 5'h1A | _T_352 == 5'h1A | _T_344 == 5'h1A + | _T_336 == 5'h1A | _T_328 == 5'h1A | _T_320 == 5'h1A) + | (_T_271 + ? _T_303 == 5'h1A | _T_295 == 5'h1A | _T_287 == 5'h1A | _GEN_596 | _GEN_516 + : _GEN_596 | _GEN_516); + assign internalWriteMask_2_27 = + _T_304 + & (_T_368 == 5'h1B | _T_360 == 5'h1B | _T_352 == 5'h1B | _T_344 == 5'h1B + | _T_336 == 5'h1B | _T_328 == 5'h1B | _T_320 == 5'h1B) + | (_T_271 + ? _T_303 == 5'h1B | _T_295 == 5'h1B | _T_287 == 5'h1B | _GEN_597 | _GEN_517 + : _GEN_597 | _GEN_517); + assign internalWriteMask_2_28 = + _T_304 + & (_T_368 == 5'h1C | _T_360 == 5'h1C | _T_352 == 5'h1C | _T_344 == 5'h1C + | _T_336 == 5'h1C | _T_328 == 5'h1C | _T_320 == 5'h1C) + | (_T_271 + ? _T_303 == 5'h1C | _T_295 == 5'h1C | _T_287 == 5'h1C + | (&(io_writeReq_2_bits_index[2:0])) | _GEN_598 | _GEN_518 + : _GEN_598 | _GEN_518); + assign internalWriteMask_2_29 = + _T_304 + & (_T_368 == 5'h1D | _T_360 == 5'h1D | _T_352 == 5'h1D | _T_344 == 5'h1D + | _T_336 == 5'h1D | _T_328 == 5'h1D | _T_320 == 5'h1D) + | (_T_271 + ? _T_303 == 5'h1D | _T_295 == 5'h1D | _T_287 == 5'h1D | _GEN_599 | _GEN_519 + : _GEN_599 | _GEN_519); + assign internalWriteMask_2_30 = + _T_304 + & (_T_368 == 5'h1E | _T_360 == 5'h1E | _T_352 == 5'h1E | _T_344 == 5'h1E + | _T_336 == 5'h1E | _T_328 == 5'h1E | _T_320 == 5'h1E) + | (_T_271 + ? _T_303 == 5'h1E | _T_295 == 5'h1E | _T_287 == 5'h1E | _GEN_600 | _GEN_520 + : _GEN_600 | _GEN_520); + assign internalWriteMask_2_31 = + _T_304 + & ((&_T_368) | (&_T_360) | (&_T_352) | (&_T_344) | (&_T_336) | (&_T_328) | (&_T_320)) + | (_T_271 + ? (&_T_303) | (&_T_295) | (&_T_287) | _GEN_601 | _GEN_521 + : _GEN_601 | _GEN_521); + vrf_combMem vrf_ext ( + .R0_addr (5'h0), + .R0_en (1'h1), + .R0_clk (clock), + .R1_addr (io_readReq_0_req_vd), + .R1_en (1'h1), + .R1_clk (clock), + .R2_addr (5'h0), + .R2_en (1'h1), + .R2_clk (clock), + .R3_addr (io_readReq_0_req_vs2), + .R3_en (1'h1), + .R3_clk (clock), + .R4_addr (5'h0), + .R4_en (1'h1), + .R4_clk (clock), + .R5_addr (io_readReq_1_req_vd), + .R5_en (1'h1), + .R5_clk (clock), + .R6_addr (io_readReq_1_req_vs1), + .R6_en (1'h1), + .R6_clk (clock), + .R7_addr (io_readReq_1_req_vs2), + .R7_en (1'h1), + .R7_clk (clock), + .R8_addr (5'h0), + .R8_en (1'h1), + .R8_clk (clock), + .R9_addr (io_readReq_2_req_vd), + .R9_en (1'h1), + .R9_clk (clock), + .R10_addr (io_readReq_2_req_vs1), + .R10_en (1'h1), + .R10_clk (clock), + .R11_addr (io_readReq_2_req_vs2), + .R11_en (1'h1), + .R11_clk (clock), + .W0_addr (io_writeReq_0_bits_vd), + .W0_en (io_writeReq_0_valid & io_writeReq_0_bits_writeReq), + .W0_clk (clock), + .W0_data + ({internalWriteData_31, + internalWriteData_30, + internalWriteData_29, + internalWriteData_28, + internalWriteData_27, + internalWriteData_26, + internalWriteData_25, + internalWriteData_24, + internalWriteData_23, + internalWriteData_22, + internalWriteData_21, + internalWriteData_20, + internalWriteData_19, + internalWriteData_18, + internalWriteData_17, + internalWriteData_16, + internalWriteData_15, + internalWriteData_14, + internalWriteData_13, + internalWriteData_12, + internalWriteData_11, + internalWriteData_10, + internalWriteData_9, + internalWriteData_8, + internalWriteData_7, + internalWriteData_6, + internalWriteData_5, + internalWriteData_4, + internalWriteData_3, + internalWriteData_2, + internalWriteData_1, + internalWriteData_0}), + .W0_mask + ({internalWriteMask_31, + internalWriteMask_30, + internalWriteMask_29, + internalWriteMask_28, + internalWriteMask_27, + internalWriteMask_26, + internalWriteMask_25, + internalWriteMask_24, + internalWriteMask_23, + internalWriteMask_22, + internalWriteMask_21, + internalWriteMask_20, + internalWriteMask_19, + internalWriteMask_18, + internalWriteMask_17, + internalWriteMask_16, + internalWriteMask_15, + internalWriteMask_14, + internalWriteMask_13, + internalWriteMask_12, + internalWriteMask_11, + internalWriteMask_10, + internalWriteMask_9, + internalWriteMask_8, + internalWriteMask_7, + internalWriteMask_6, + internalWriteMask_5, + internalWriteMask_4, + internalWriteMask_3, + internalWriteMask_2, + internalWriteMask_1, + internalWriteMask_0}), + .W1_addr (io_writeReq_1_bits_vd), + .W1_en (io_writeReq_1_valid & io_writeReq_1_bits_writeReq), + .W1_clk (clock), + .W1_data + ({internalWriteData_1_31, + internalWriteData_1_30, + internalWriteData_1_29, + internalWriteData_1_28, + internalWriteData_1_27, + internalWriteData_1_26, + internalWriteData_1_25, + internalWriteData_1_24, + internalWriteData_1_23, + internalWriteData_1_22, + internalWriteData_1_21, + internalWriteData_1_20, + internalWriteData_1_19, + internalWriteData_1_18, + internalWriteData_1_17, + internalWriteData_1_16, + internalWriteData_1_15, + internalWriteData_1_14, + internalWriteData_1_13, + internalWriteData_1_12, + internalWriteData_1_11, + internalWriteData_1_10, + internalWriteData_1_9, + internalWriteData_1_8, + internalWriteData_1_7, + internalWriteData_1_6, + internalWriteData_1_5, + internalWriteData_1_4, + internalWriteData_1_3, + internalWriteData_1_2, + internalWriteData_1_1, + internalWriteData_1_0}), + .W1_mask + ({internalWriteMask_1_31, + internalWriteMask_1_30, + internalWriteMask_1_29, + internalWriteMask_1_28, + internalWriteMask_1_27, + internalWriteMask_1_26, + internalWriteMask_1_25, + internalWriteMask_1_24, + internalWriteMask_1_23, + internalWriteMask_1_22, + internalWriteMask_1_21, + internalWriteMask_1_20, + internalWriteMask_1_19, + internalWriteMask_1_18, + internalWriteMask_1_17, + internalWriteMask_1_16, + internalWriteMask_1_15, + internalWriteMask_1_14, + internalWriteMask_1_13, + internalWriteMask_1_12, + internalWriteMask_1_11, + internalWriteMask_1_10, + internalWriteMask_1_9, + internalWriteMask_1_8, + internalWriteMask_1_7, + internalWriteMask_1_6, + internalWriteMask_1_5, + internalWriteMask_1_4, + internalWriteMask_1_3, + internalWriteMask_1_2, + internalWriteMask_1_1, + internalWriteMask_1_0}), + .W2_addr (io_writeReq_2_bits_vd), + .W2_en (io_writeReq_2_valid & io_writeReq_2_bits_writeReq), + .W2_clk (clock), + .W2_data + ({internalWriteData_2_31, + internalWriteData_2_30, + internalWriteData_2_29, + internalWriteData_2_28, + internalWriteData_2_27, + internalWriteData_2_26, + internalWriteData_2_25, + internalWriteData_2_24, + internalWriteData_2_23, + internalWriteData_2_22, + internalWriteData_2_21, + internalWriteData_2_20, + internalWriteData_2_19, + internalWriteData_2_18, + internalWriteData_2_17, + internalWriteData_2_16, + internalWriteData_2_15, + internalWriteData_2_14, + internalWriteData_2_13, + internalWriteData_2_12, + internalWriteData_2_11, + internalWriteData_2_10, + internalWriteData_2_9, + internalWriteData_2_8, + internalWriteData_2_7, + internalWriteData_2_6, + internalWriteData_2_5, + internalWriteData_2_4, + internalWriteData_2_3, + internalWriteData_2_2, + internalWriteData_2_1, + internalWriteData_2_0}), + .W2_mask + ({internalWriteMask_2_31, + internalWriteMask_2_30, + internalWriteMask_2_29, + internalWriteMask_2_28, + internalWriteMask_2_27, + internalWriteMask_2_26, + internalWriteMask_2_25, + internalWriteMask_2_24, + internalWriteMask_2_23, + internalWriteMask_2_22, + internalWriteMask_2_21, + internalWriteMask_2_20, + internalWriteMask_2_19, + internalWriteMask_2_18, + internalWriteMask_2_17, + internalWriteMask_2_16, + internalWriteMask_2_15, + internalWriteMask_2_14, + internalWriteMask_2_13, + internalWriteMask_2_12, + internalWriteMask_2_11, + internalWriteMask_2_10, + internalWriteMask_2_9, + internalWriteMask_2_8, + internalWriteMask_2_7, + internalWriteMask_2_6, + internalWriteMask_2_5, + internalWriteMask_2_4, + internalWriteMask_2_3, + internalWriteMask_2_2, + internalWriteMask_2_1, + internalWriteMask_2_0}), + .R0_data (_vrf_ext_R0_data), + .R1_data (_vrf_ext_R1_data), + .R2_data (/* unused */), + .R3_data (_vrf_ext_R3_data), + .R4_data (_vrf_ext_R4_data), + .R5_data (_vrf_ext_R5_data), + .R6_data (_vrf_ext_R6_data), + .R7_data (_vrf_ext_R7_data), + .R8_data (_vrf_ext_R8_data), + .R9_data (_vrf_ext_R9_data), + .R10_data (_vrf_ext_R10_data), + .R11_data (_vrf_ext_R11_data) + ); + assign io_readReq_0_resp_vs2Out = + _io_readReq_0_resp_res_vdOut_nonVmRes_T_80 + ? {_GEN[_GEN_4 + 5'h7], + _GEN[_GEN_4 + 5'h6], + _GEN[_GEN_4 + 5'h5], + _GEN[_GEN_4 + 5'h4], + _GEN[_GEN_4 + 5'h3], + _GEN[_GEN_4 + 5'h2], + _GEN[_GEN_4 + 5'h1], + _GEN[{io_readReq_0_req_idx[1:0], 3'h0}]} + : _io_readReq_0_resp_res_vdOut_nonVmRes_T_78 + ? {{32{_GEN_3[7]}}, + _GEN_3, + _GEN[_GEN_2 + 5'h2], + _GEN[_GEN_2 + 5'h1], + _GEN[{io_readReq_0_req_idx[2:0], 2'h0}]} + : _io_readReq_0_resp_res_vdOut_nonVmRes_T_76 + ? {{48{_GEN_1[7]}}, _GEN_1, _GEN[{io_readReq_0_req_idx[3:0], 1'h0}]} + : _io_readReq_0_resp_res_vdOut_nonVmRes_T_74 + ? {{56{_GEN[io_readReq_0_req_idx][7]}}, _GEN[io_readReq_0_req_idx]} + : 64'h0; + assign io_readReq_0_resp_vdOut = + _io_readReq_0_resp_res_vdOut_nonVmRes_T_80 + ? {_GEN_5[_GEN_4 + 5'h7], + _GEN_5[_GEN_4 + 5'h6], + _GEN_5[_GEN_4 + 5'h5], + _GEN_5[_GEN_4 + 5'h4], + _GEN_5[_GEN_4 + 5'h3], + _GEN_5[_GEN_4 + 5'h2], + _GEN_5[_GEN_4 + 5'h1], + _GEN_5[{io_readReq_0_req_idx[1:0], 3'h0}]} + : _io_readReq_0_resp_res_vdOut_nonVmRes_T_78 + ? {{32{_GEN_7[7]}}, + _GEN_7, + _GEN_5[_GEN_2 + 5'h2], + _GEN_5[_GEN_2 + 5'h1], + _GEN_5[{io_readReq_0_req_idx[2:0], 2'h0}]} + : _io_readReq_0_resp_res_vdOut_nonVmRes_T_76 + ? {{48{_GEN_6[7]}}, _GEN_6, _GEN_5[{io_readReq_0_req_idx[3:0], 1'h0}]} + : _io_readReq_0_resp_res_vdOut_nonVmRes_T_74 + ? {{56{_GEN_5[io_readReq_0_req_idx][7]}}, _GEN_5[io_readReq_0_req_idx]} + : 64'h0; + assign io_readReq_0_resp_vm = _io_readReq_0_resp_res_vm_T_2[0]; + assign io_readReq_1_resp_vs1Out = + _io_readReq_1_resp_res_vdOut_nonVmRes_T_80 + ? {_GEN_9[_GEN_14 + 5'h7], + _GEN_9[_GEN_14 + 5'h6], + _GEN_9[_GEN_14 + 5'h5], + _GEN_9[_GEN_14 + 5'h4], + _GEN_9[_GEN_14 + 5'h3], + _GEN_9[_GEN_14 + 5'h2], + _GEN_9[_GEN_14 + 5'h1], + _GEN_9[{io_readReq_1_req_idx[1:0], 3'h0}]} + : _io_readReq_1_resp_res_vdOut_nonVmRes_T_78 + ? {{32{_GEN_13[7]}}, + _GEN_13, + _GEN_9[_GEN_12 + 5'h2], + _GEN_9[_GEN_12 + 5'h1], + _GEN_9[{io_readReq_1_req_idx[2:0], 2'h0}]} + : _io_readReq_1_resp_res_vdOut_nonVmRes_T_76 + ? {{48{_GEN_11[7]}}, _GEN_11, _GEN_9[{io_readReq_1_req_idx[3:0], 1'h0}]} + : _io_readReq_1_resp_res_vdOut_nonVmRes_T_74 + ? {{56{_GEN_9[io_readReq_1_req_idx][7]}}, _GEN_9[io_readReq_1_req_idx]} + : 64'h0; + assign io_readReq_1_resp_vs2Out = + _io_readReq_1_resp_res_vdOut_nonVmRes_T_80 + ? {_GEN_15[_GEN_14 + 5'h7], + _GEN_15[_GEN_14 + 5'h6], + _GEN_15[_GEN_14 + 5'h5], + _GEN_15[_GEN_14 + 5'h4], + _GEN_15[_GEN_14 + 5'h3], + _GEN_15[_GEN_14 + 5'h2], + _GEN_15[_GEN_14 + 5'h1], + _GEN_15[{io_readReq_1_req_idx[1:0], 3'h0}]} + : _io_readReq_1_resp_res_vdOut_nonVmRes_T_78 + ? {{32{_GEN_17[7]}}, + _GEN_17, + _GEN_15[_GEN_12 + 5'h2], + _GEN_15[_GEN_12 + 5'h1], + _GEN_15[{io_readReq_1_req_idx[2:0], 2'h0}]} + : _io_readReq_1_resp_res_vdOut_nonVmRes_T_76 + ? {{48{_GEN_16[7]}}, _GEN_16, _GEN_15[{io_readReq_1_req_idx[3:0], 1'h0}]} + : _io_readReq_1_resp_res_vdOut_nonVmRes_T_74 + ? {{56{_GEN_15[io_readReq_1_req_idx][7]}}, + _GEN_15[io_readReq_1_req_idx]} + : 64'h0; + assign io_readReq_1_resp_vdOut = + io_readReq_1_req_readVdAsMaskSource + ? {56'h0, _GEN_18[_GEN_21]} + : _io_readReq_1_resp_res_vdOut_nonVmRes_T_80 + ? {_GEN_18[_GEN_14 + 5'h7], + _GEN_18[_GEN_14 + 5'h6], + _GEN_18[_GEN_14 + 5'h5], + _GEN_18[_GEN_14 + 5'h4], + _GEN_18[_GEN_14 + 5'h3], + _GEN_18[_GEN_14 + 5'h2], + _GEN_18[_GEN_14 + 5'h1], + _GEN_18[{io_readReq_1_req_idx[1:0], 3'h0}]} + : _io_readReq_1_resp_res_vdOut_nonVmRes_T_78 + ? {{32{_GEN_20[7]}}, + _GEN_20, + _GEN_18[_GEN_12 + 5'h2], + _GEN_18[_GEN_12 + 5'h1], + _GEN_18[{io_readReq_1_req_idx[2:0], 2'h0}]} + : _io_readReq_1_resp_res_vdOut_nonVmRes_T_76 + ? {{48{_GEN_19[7]}}, + _GEN_19, + _GEN_18[{io_readReq_1_req_idx[3:0], 1'h0}]} + : _io_readReq_1_resp_res_vdOut_nonVmRes_T_74 + ? {{56{_GEN_18[io_readReq_1_req_idx][7]}}, + _GEN_18[io_readReq_1_req_idx]} + : 64'h0; + assign io_readReq_1_resp_vm = _io_readReq_1_resp_res_vm_T_2[0]; + assign io_readReq_2_resp_vs1Out = + _io_readReq_2_resp_res_vdOut_nonVmRes_T_80 + ? {_GEN_23[_GEN_28 + 5'h7], + _GEN_23[_GEN_28 + 5'h6], + _GEN_23[_GEN_28 + 5'h5], + _GEN_23[_GEN_28 + 5'h4], + _GEN_23[_GEN_28 + 5'h3], + _GEN_23[_GEN_28 + 5'h2], + _GEN_23[_GEN_28 + 5'h1], + _GEN_23[{io_readReq_2_req_idx[1:0], 3'h0}]} + : _io_readReq_2_resp_res_vdOut_nonVmRes_T_78 + ? {{32{_GEN_27[7]}}, + _GEN_27, + _GEN_23[_GEN_26 + 5'h2], + _GEN_23[_GEN_26 + 5'h1], + _GEN_23[{io_readReq_2_req_idx[2:0], 2'h0}]} + : _io_readReq_2_resp_res_vdOut_nonVmRes_T_76 + ? {{48{_GEN_25[7]}}, _GEN_25, _GEN_23[{io_readReq_2_req_idx[3:0], 1'h0}]} + : _io_readReq_2_resp_res_vdOut_nonVmRes_T_74 + ? {{56{_GEN_23[io_readReq_2_req_idx][7]}}, + _GEN_23[io_readReq_2_req_idx]} + : 64'h0; + assign io_readReq_2_resp_vs2Out = + _io_readReq_2_resp_res_vdOut_nonVmRes_T_80 + ? {_GEN_29[_GEN_28 + 5'h7], + _GEN_29[_GEN_28 + 5'h6], + _GEN_29[_GEN_28 + 5'h5], + _GEN_29[_GEN_28 + 5'h4], + _GEN_29[_GEN_28 + 5'h3], + _GEN_29[_GEN_28 + 5'h2], + _GEN_29[_GEN_28 + 5'h1], + _GEN_29[{io_readReq_2_req_idx[1:0], 3'h0}]} + : _io_readReq_2_resp_res_vdOut_nonVmRes_T_78 + ? {{32{_GEN_31[7]}}, + _GEN_31, + _GEN_29[_GEN_26 + 5'h2], + _GEN_29[_GEN_26 + 5'h1], + _GEN_29[{io_readReq_2_req_idx[2:0], 2'h0}]} + : _io_readReq_2_resp_res_vdOut_nonVmRes_T_76 + ? {{48{_GEN_30[7]}}, _GEN_30, _GEN_29[{io_readReq_2_req_idx[3:0], 1'h0}]} + : _io_readReq_2_resp_res_vdOut_nonVmRes_T_74 + ? {{56{_GEN_29[io_readReq_2_req_idx][7]}}, + _GEN_29[io_readReq_2_req_idx]} + : 64'h0; + assign io_readReq_2_resp_vdOut = + io_readReq_2_req_readVdAsMaskSource + ? {56'h0, _GEN_32[_GEN_35]} + : _io_readReq_2_resp_res_vdOut_nonVmRes_T_80 + ? {_GEN_32[_GEN_28 + 5'h7], + _GEN_32[_GEN_28 + 5'h6], + _GEN_32[_GEN_28 + 5'h5], + _GEN_32[_GEN_28 + 5'h4], + _GEN_32[_GEN_28 + 5'h3], + _GEN_32[_GEN_28 + 5'h2], + _GEN_32[_GEN_28 + 5'h1], + _GEN_32[{io_readReq_2_req_idx[1:0], 3'h0}]} + : _io_readReq_2_resp_res_vdOut_nonVmRes_T_78 + ? {{32{_GEN_34[7]}}, + _GEN_34, + _GEN_32[_GEN_26 + 5'h2], + _GEN_32[_GEN_26 + 5'h1], + _GEN_32[{io_readReq_2_req_idx[2:0], 2'h0}]} + : _io_readReq_2_resp_res_vdOut_nonVmRes_T_76 + ? {{48{_GEN_33[7]}}, + _GEN_33, + _GEN_32[{io_readReq_2_req_idx[3:0], 1'h0}]} + : _io_readReq_2_resp_res_vdOut_nonVmRes_T_74 + ? {{56{_GEN_32[io_readReq_2_req_idx][7]}}, + _GEN_32[io_readReq_2_req_idx]} + : 64'h0; + assign io_readReq_2_resp_vm = _io_readReq_2_resp_res_vm_T_2[0]; +endmodule + +module VrfReadyTable( + input clock, + reset, + io_fromVecExecUnit_0_valid, + input [4:0] io_fromVecExecUnit_0_bits_vd, + input [2:0] io_fromVecExecUnit_0_bits_vtype_vsew, + input [4:0] io_fromVecExecUnit_0_bits_index, + input io_fromVecExecUnit_0_bits_last, + io_fromVecExecUnit_0_bits_writeReq, + io_fromVecExecUnit_1_valid, + input [4:0] io_fromVecExecUnit_1_bits_vd, + input [2:0] io_fromVecExecUnit_1_bits_vtype_vsew, + input [4:0] io_fromVecExecUnit_1_bits_index, + input io_fromVecExecUnit_1_bits_last, + io_fromVecExecUnit_1_bits_vm, + io_fromVecExecUnit_1_bits_writeReq, + io_fromVecExecUnit_2_valid, + input [4:0] io_fromVecExecUnit_2_bits_vd, + input [2:0] io_fromVecExecUnit_2_bits_vtype_vsew, + input [4:0] io_fromVecExecUnit_2_bits_index, + input io_fromVecExecUnit_2_bits_last, + io_fromVecExecUnit_2_bits_vm, + io_fromVecExecUnit_2_bits_writeReq, + io_invalidateVd, + io_vs1Check_valid, + input [4:0] io_vs1Check_bits_idx, + input [2:0] io_vs1Check_bits_vtype_vsew, + input io_vs1Check_bits_vm, + io_vs2Check_valid, + input [4:0] io_vs2Check_bits_idx, + input [2:0] io_vs2Check_bits_vtype_vsew, + input io_vs2Check_bits_vm, + io_vdCheck_valid, + input [4:0] io_vdCheck_bits_idx, + input [2:0] io_vdCheck_bits_vtype_vsew, + input io_vdCheck_bits_vm, + io_vmCheck_valid, + output io_vs1Check_ready, + io_vs2Check_ready, + io_vdCheck_ready, + io_vmCheck_ready +); + + reg vrfZeroIdxReadyTable_0; + reg vrfZeroIdxReadyTable_1; + reg vrfZeroIdxReadyTable_2; + reg vrfZeroIdxReadyTable_3; + reg vrfZeroIdxReadyTable_4; + reg vrfZeroIdxReadyTable_5; + reg vrfZeroIdxReadyTable_6; + reg vrfZeroIdxReadyTable_7; + reg vrfZeroIdxReadyTable_8; + reg vrfZeroIdxReadyTable_9; + reg vrfZeroIdxReadyTable_10; + reg vrfZeroIdxReadyTable_11; + reg vrfZeroIdxReadyTable_12; + reg vrfZeroIdxReadyTable_13; + reg vrfZeroIdxReadyTable_14; + reg vrfZeroIdxReadyTable_15; + reg vrfZeroIdxReadyTable_16; + reg vrfZeroIdxReadyTable_17; + reg vrfZeroIdxReadyTable_18; + reg vrfZeroIdxReadyTable_19; + reg vrfZeroIdxReadyTable_20; + reg vrfZeroIdxReadyTable_21; + reg vrfZeroIdxReadyTable_22; + reg vrfZeroIdxReadyTable_23; + reg vrfZeroIdxReadyTable_24; + reg vrfZeroIdxReadyTable_25; + reg vrfZeroIdxReadyTable_26; + reg vrfZeroIdxReadyTable_27; + reg vrfZeroIdxReadyTable_28; + reg vrfZeroIdxReadyTable_29; + reg vrfZeroIdxReadyTable_30; + reg vrfZeroIdxReadyTable_31; + reg vrfWholeIdxReadyTable_0; + reg vrfWholeIdxReadyTable_1; + reg vrfWholeIdxReadyTable_2; + reg vrfWholeIdxReadyTable_3; + reg vrfWholeIdxReadyTable_4; + reg vrfWholeIdxReadyTable_5; + reg vrfWholeIdxReadyTable_6; + reg vrfWholeIdxReadyTable_7; + reg vrfWholeIdxReadyTable_8; + reg vrfWholeIdxReadyTable_9; + reg vrfWholeIdxReadyTable_10; + reg vrfWholeIdxReadyTable_11; + reg vrfWholeIdxReadyTable_12; + reg vrfWholeIdxReadyTable_13; + reg vrfWholeIdxReadyTable_14; + reg vrfWholeIdxReadyTable_15; + reg vrfWholeIdxReadyTable_16; + reg vrfWholeIdxReadyTable_17; + reg vrfWholeIdxReadyTable_18; + reg vrfWholeIdxReadyTable_19; + reg vrfWholeIdxReadyTable_20; + reg vrfWholeIdxReadyTable_21; + reg vrfWholeIdxReadyTable_22; + reg vrfWholeIdxReadyTable_23; + reg vrfWholeIdxReadyTable_24; + reg vrfWholeIdxReadyTable_25; + reg vrfWholeIdxReadyTable_26; + reg vrfWholeIdxReadyTable_27; + reg vrfWholeIdxReadyTable_28; + reg vrfWholeIdxReadyTable_29; + reg vrfWholeIdxReadyTable_30; + reg vrfWholeIdxReadyTable_31; + reg [2:0] vrfWriteSewTable_0_sew; + reg [2:0] vrfWriteSewTable_1_sew; + reg [2:0] vrfWriteSewTable_2_sew; + reg [2:0] vrfWriteSewTable_3_sew; + reg [2:0] vrfWriteSewTable_4_sew; + reg [2:0] vrfWriteSewTable_5_sew; + reg [2:0] vrfWriteSewTable_6_sew; + reg [2:0] vrfWriteSewTable_7_sew; + reg [2:0] vrfWriteSewTable_8_sew; + reg [2:0] vrfWriteSewTable_9_sew; + reg [2:0] vrfWriteSewTable_10_sew; + reg [2:0] vrfWriteSewTable_11_sew; + reg [2:0] vrfWriteSewTable_12_sew; + reg [2:0] vrfWriteSewTable_13_sew; + reg [2:0] vrfWriteSewTable_14_sew; + reg [2:0] vrfWriteSewTable_15_sew; + reg [2:0] vrfWriteSewTable_16_sew; + reg [2:0] vrfWriteSewTable_17_sew; + reg [2:0] vrfWriteSewTable_18_sew; + reg [2:0] vrfWriteSewTable_19_sew; + reg [2:0] vrfWriteSewTable_20_sew; + reg [2:0] vrfWriteSewTable_21_sew; + reg [2:0] vrfWriteSewTable_22_sew; + reg [2:0] vrfWriteSewTable_23_sew; + reg [2:0] vrfWriteSewTable_24_sew; + reg [2:0] vrfWriteSewTable_25_sew; + reg [2:0] vrfWriteSewTable_26_sew; + reg [2:0] vrfWriteSewTable_27_sew; + reg [2:0] vrfWriteSewTable_28_sew; + reg [2:0] vrfWriteSewTable_29_sew; + reg [2:0] vrfWriteSewTable_30_sew; + reg [2:0] vrfWriteSewTable_31_sew; + wire _vdSameWriteList_T = + io_fromVecExecUnit_0_valid & io_fromVecExecUnit_0_bits_writeReq; + wire vs1SameWriteList_0 = + _vdSameWriteList_T & io_fromVecExecUnit_0_bits_vd == io_vs1Check_bits_idx; + wire _vdSameWriteList_T_2 = + io_fromVecExecUnit_1_valid & io_fromVecExecUnit_1_bits_writeReq; + wire vs1SameWriteList_1 = + _vdSameWriteList_T_2 & io_fromVecExecUnit_1_bits_vd == io_vs1Check_bits_idx; + wire _vdSameWriteList_T_4 = + io_fromVecExecUnit_2_valid & io_fromVecExecUnit_2_bits_writeReq; + wire vs1SameWriteList_2 = + _vdSameWriteList_T_4 & io_fromVecExecUnit_2_bits_vd == io_vs1Check_bits_idx; + wire [31:0][2:0] _GEN = + {{vrfWriteSewTable_31_sew}, + {vrfWriteSewTable_30_sew}, + {vrfWriteSewTable_29_sew}, + {vrfWriteSewTable_28_sew}, + {vrfWriteSewTable_27_sew}, + {vrfWriteSewTable_26_sew}, + {vrfWriteSewTable_25_sew}, + {vrfWriteSewTable_24_sew}, + {vrfWriteSewTable_23_sew}, + {vrfWriteSewTable_22_sew}, + {vrfWriteSewTable_21_sew}, + {vrfWriteSewTable_20_sew}, + {vrfWriteSewTable_19_sew}, + {vrfWriteSewTable_18_sew}, + {vrfWriteSewTable_17_sew}, + {vrfWriteSewTable_16_sew}, + {vrfWriteSewTable_15_sew}, + {vrfWriteSewTable_14_sew}, + {vrfWriteSewTable_13_sew}, + {vrfWriteSewTable_12_sew}, + {vrfWriteSewTable_11_sew}, + {vrfWriteSewTable_10_sew}, + {vrfWriteSewTable_9_sew}, + {vrfWriteSewTable_8_sew}, + {vrfWriteSewTable_7_sew}, + {vrfWriteSewTable_6_sew}, + {vrfWriteSewTable_5_sew}, + {vrfWriteSewTable_4_sew}, + {vrfWriteSewTable_3_sew}, + {vrfWriteSewTable_2_sew}, + {vrfWriteSewTable_1_sew}, + {vrfWriteSewTable_0_sew}}; + wire [31:0] _GEN_0 = + {{vrfZeroIdxReadyTable_31}, + {vrfZeroIdxReadyTable_30}, + {vrfZeroIdxReadyTable_29}, + {vrfZeroIdxReadyTable_28}, + {vrfZeroIdxReadyTable_27}, + {vrfZeroIdxReadyTable_26}, + {vrfZeroIdxReadyTable_25}, + {vrfZeroIdxReadyTable_24}, + {vrfZeroIdxReadyTable_23}, + {vrfZeroIdxReadyTable_22}, + {vrfZeroIdxReadyTable_21}, + {vrfZeroIdxReadyTable_20}, + {vrfZeroIdxReadyTable_19}, + {vrfZeroIdxReadyTable_18}, + {vrfZeroIdxReadyTable_17}, + {vrfZeroIdxReadyTable_16}, + {vrfZeroIdxReadyTable_15}, + {vrfZeroIdxReadyTable_14}, + {vrfZeroIdxReadyTable_13}, + {vrfZeroIdxReadyTable_12}, + {vrfZeroIdxReadyTable_11}, + {vrfZeroIdxReadyTable_10}, + {vrfZeroIdxReadyTable_9}, + {vrfZeroIdxReadyTable_8}, + {vrfZeroIdxReadyTable_7}, + {vrfZeroIdxReadyTable_6}, + {vrfZeroIdxReadyTable_5}, + {vrfZeroIdxReadyTable_4}, + {vrfZeroIdxReadyTable_3}, + {vrfZeroIdxReadyTable_2}, + {vrfZeroIdxReadyTable_1}, + {vrfZeroIdxReadyTable_0}}; + wire [31:0] _GEN_1 = + {{vrfWholeIdxReadyTable_31}, + {vrfWholeIdxReadyTable_30}, + {vrfWholeIdxReadyTable_29}, + {vrfWholeIdxReadyTable_28}, + {vrfWholeIdxReadyTable_27}, + {vrfWholeIdxReadyTable_26}, + {vrfWholeIdxReadyTable_25}, + {vrfWholeIdxReadyTable_24}, + {vrfWholeIdxReadyTable_23}, + {vrfWholeIdxReadyTable_22}, + {vrfWholeIdxReadyTable_21}, + {vrfWholeIdxReadyTable_20}, + {vrfWholeIdxReadyTable_19}, + {vrfWholeIdxReadyTable_18}, + {vrfWholeIdxReadyTable_17}, + {vrfWholeIdxReadyTable_16}, + {vrfWholeIdxReadyTable_15}, + {vrfWholeIdxReadyTable_14}, + {vrfWholeIdxReadyTable_13}, + {vrfWholeIdxReadyTable_12}, + {vrfWholeIdxReadyTable_11}, + {vrfWholeIdxReadyTable_10}, + {vrfWholeIdxReadyTable_9}, + {vrfWholeIdxReadyTable_8}, + {vrfWholeIdxReadyTable_7}, + {vrfWholeIdxReadyTable_6}, + {vrfWholeIdxReadyTable_5}, + {vrfWholeIdxReadyTable_4}, + {vrfWholeIdxReadyTable_3}, + {vrfWholeIdxReadyTable_2}, + {vrfWholeIdxReadyTable_1}, + {vrfWholeIdxReadyTable_0}}; + wire vs2SameWriteList_0 = + _vdSameWriteList_T & io_fromVecExecUnit_0_bits_vd == io_vs2Check_bits_idx; + wire vs2SameWriteList_1 = + _vdSameWriteList_T_2 & io_fromVecExecUnit_1_bits_vd == io_vs2Check_bits_idx; + wire vs2SameWriteList_2 = + _vdSameWriteList_T_4 & io_fromVecExecUnit_2_bits_vd == io_vs2Check_bits_idx; + wire vdSameWriteList_0 = + _vdSameWriteList_T & io_fromVecExecUnit_0_bits_vd == io_vdCheck_bits_idx; + wire vdSameWriteList_1 = + _vdSameWriteList_T_2 & io_fromVecExecUnit_1_bits_vd == io_vdCheck_bits_idx; + wire vdSameWriteList_2 = + _vdSameWriteList_T_4 & io_fromVecExecUnit_2_bits_vd == io_vdCheck_bits_idx; + always @(posedge clock) begin + if (reset) begin + vrfZeroIdxReadyTable_0 <= 1'h1; + vrfZeroIdxReadyTable_1 <= 1'h1; + vrfZeroIdxReadyTable_2 <= 1'h1; + vrfZeroIdxReadyTable_3 <= 1'h1; + vrfZeroIdxReadyTable_4 <= 1'h1; + vrfZeroIdxReadyTable_5 <= 1'h1; + vrfZeroIdxReadyTable_6 <= 1'h1; + vrfZeroIdxReadyTable_7 <= 1'h1; + vrfZeroIdxReadyTable_8 <= 1'h1; + vrfZeroIdxReadyTable_9 <= 1'h1; + vrfZeroIdxReadyTable_10 <= 1'h1; + vrfZeroIdxReadyTable_11 <= 1'h1; + vrfZeroIdxReadyTable_12 <= 1'h1; + vrfZeroIdxReadyTable_13 <= 1'h1; + vrfZeroIdxReadyTable_14 <= 1'h1; + vrfZeroIdxReadyTable_15 <= 1'h1; + vrfZeroIdxReadyTable_16 <= 1'h1; + vrfZeroIdxReadyTable_17 <= 1'h1; + vrfZeroIdxReadyTable_18 <= 1'h1; + vrfZeroIdxReadyTable_19 <= 1'h1; + vrfZeroIdxReadyTable_20 <= 1'h1; + vrfZeroIdxReadyTable_21 <= 1'h1; + vrfZeroIdxReadyTable_22 <= 1'h1; + vrfZeroIdxReadyTable_23 <= 1'h1; + vrfZeroIdxReadyTable_24 <= 1'h1; + vrfZeroIdxReadyTable_25 <= 1'h1; + vrfZeroIdxReadyTable_26 <= 1'h1; + vrfZeroIdxReadyTable_27 <= 1'h1; + vrfZeroIdxReadyTable_28 <= 1'h1; + vrfZeroIdxReadyTable_29 <= 1'h1; + vrfZeroIdxReadyTable_30 <= 1'h1; + vrfZeroIdxReadyTable_31 <= 1'h1; + vrfWholeIdxReadyTable_0 <= 1'h1; + vrfWholeIdxReadyTable_1 <= 1'h1; + vrfWholeIdxReadyTable_2 <= 1'h1; + vrfWholeIdxReadyTable_3 <= 1'h1; + vrfWholeIdxReadyTable_4 <= 1'h1; + vrfWholeIdxReadyTable_5 <= 1'h1; + vrfWholeIdxReadyTable_6 <= 1'h1; + vrfWholeIdxReadyTable_7 <= 1'h1; + vrfWholeIdxReadyTable_8 <= 1'h1; + vrfWholeIdxReadyTable_9 <= 1'h1; + vrfWholeIdxReadyTable_10 <= 1'h1; + vrfWholeIdxReadyTable_11 <= 1'h1; + vrfWholeIdxReadyTable_12 <= 1'h1; + vrfWholeIdxReadyTable_13 <= 1'h1; + vrfWholeIdxReadyTable_14 <= 1'h1; + vrfWholeIdxReadyTable_15 <= 1'h1; + vrfWholeIdxReadyTable_16 <= 1'h1; + vrfWholeIdxReadyTable_17 <= 1'h1; + vrfWholeIdxReadyTable_18 <= 1'h1; + vrfWholeIdxReadyTable_19 <= 1'h1; + vrfWholeIdxReadyTable_20 <= 1'h1; + vrfWholeIdxReadyTable_21 <= 1'h1; + vrfWholeIdxReadyTable_22 <= 1'h1; + vrfWholeIdxReadyTable_23 <= 1'h1; + vrfWholeIdxReadyTable_24 <= 1'h1; + vrfWholeIdxReadyTable_25 <= 1'h1; + vrfWholeIdxReadyTable_26 <= 1'h1; + vrfWholeIdxReadyTable_27 <= 1'h1; + vrfWholeIdxReadyTable_28 <= 1'h1; + vrfWholeIdxReadyTable_29 <= 1'h1; + vrfWholeIdxReadyTable_30 <= 1'h1; + vrfWholeIdxReadyTable_31 <= 1'h1; + vrfWriteSewTable_0_sew <= 3'h3; + vrfWriteSewTable_1_sew <= 3'h3; + vrfWriteSewTable_2_sew <= 3'h3; + vrfWriteSewTable_3_sew <= 3'h3; + vrfWriteSewTable_4_sew <= 3'h3; + vrfWriteSewTable_5_sew <= 3'h3; + vrfWriteSewTable_6_sew <= 3'h3; + vrfWriteSewTable_7_sew <= 3'h3; + vrfWriteSewTable_8_sew <= 3'h3; + vrfWriteSewTable_9_sew <= 3'h3; + vrfWriteSewTable_10_sew <= 3'h3; + vrfWriteSewTable_11_sew <= 3'h3; + vrfWriteSewTable_12_sew <= 3'h3; + vrfWriteSewTable_13_sew <= 3'h3; + vrfWriteSewTable_14_sew <= 3'h3; + vrfWriteSewTable_15_sew <= 3'h3; + vrfWriteSewTable_16_sew <= 3'h3; + vrfWriteSewTable_17_sew <= 3'h3; + vrfWriteSewTable_18_sew <= 3'h3; + vrfWriteSewTable_19_sew <= 3'h3; + vrfWriteSewTable_20_sew <= 3'h3; + vrfWriteSewTable_21_sew <= 3'h3; + vrfWriteSewTable_22_sew <= 3'h3; + vrfWriteSewTable_23_sew <= 3'h3; + vrfWriteSewTable_24_sew <= 3'h3; + vrfWriteSewTable_25_sew <= 3'h3; + vrfWriteSewTable_26_sew <= 3'h3; + vrfWriteSewTable_27_sew <= 3'h3; + vrfWriteSewTable_28_sew <= 3'h3; + vrfWriteSewTable_29_sew <= 3'h3; + vrfWriteSewTable_30_sew <= 3'h3; + vrfWriteSewTable_31_sew <= 3'h3; + end + else begin + automatic logic _T_1 = + io_fromVecExecUnit_0_valid & io_fromVecExecUnit_0_bits_index == 5'h0; + automatic logic _GEN_2; + automatic logic _GEN_3 = io_fromVecExecUnit_0_bits_vd == 5'h1; + automatic logic _GEN_4; + automatic logic _GEN_5 = io_fromVecExecUnit_0_bits_vd == 5'h2; + automatic logic _GEN_6; + automatic logic _GEN_7 = io_fromVecExecUnit_0_bits_vd == 5'h3; + automatic logic _GEN_8; + automatic logic _GEN_9 = io_fromVecExecUnit_0_bits_vd == 5'h4; + automatic logic _GEN_10; + automatic logic _GEN_11 = io_fromVecExecUnit_0_bits_vd == 5'h5; + automatic logic _GEN_12; + automatic logic _GEN_13 = io_fromVecExecUnit_0_bits_vd == 5'h6; + automatic logic _GEN_14; + automatic logic _GEN_15 = io_fromVecExecUnit_0_bits_vd == 5'h7; + automatic logic _GEN_16; + automatic logic _GEN_17 = io_fromVecExecUnit_0_bits_vd == 5'h8; + automatic logic _GEN_18; + automatic logic _GEN_19 = io_fromVecExecUnit_0_bits_vd == 5'h9; + automatic logic _GEN_20; + automatic logic _GEN_21 = io_fromVecExecUnit_0_bits_vd == 5'hA; + automatic logic _GEN_22; + automatic logic _GEN_23 = io_fromVecExecUnit_0_bits_vd == 5'hB; + automatic logic _GEN_24; + automatic logic _GEN_25 = io_fromVecExecUnit_0_bits_vd == 5'hC; + automatic logic _GEN_26; + automatic logic _GEN_27 = io_fromVecExecUnit_0_bits_vd == 5'hD; + automatic logic _GEN_28; + automatic logic _GEN_29 = io_fromVecExecUnit_0_bits_vd == 5'hE; + automatic logic _GEN_30; + automatic logic _GEN_31 = io_fromVecExecUnit_0_bits_vd == 5'hF; + automatic logic _GEN_32; + automatic logic _GEN_33 = io_fromVecExecUnit_0_bits_vd == 5'h10; + automatic logic _GEN_34; + automatic logic _GEN_35 = io_fromVecExecUnit_0_bits_vd == 5'h11; + automatic logic _GEN_36; + automatic logic _GEN_37 = io_fromVecExecUnit_0_bits_vd == 5'h12; + automatic logic _GEN_38; + automatic logic _GEN_39 = io_fromVecExecUnit_0_bits_vd == 5'h13; + automatic logic _GEN_40; + automatic logic _GEN_41 = io_fromVecExecUnit_0_bits_vd == 5'h14; + automatic logic _GEN_42; + automatic logic _GEN_43 = io_fromVecExecUnit_0_bits_vd == 5'h15; + automatic logic _GEN_44; + automatic logic _GEN_45 = io_fromVecExecUnit_0_bits_vd == 5'h16; + automatic logic _GEN_46; + automatic logic _GEN_47 = io_fromVecExecUnit_0_bits_vd == 5'h17; + automatic logic _GEN_48; + automatic logic _GEN_49 = io_fromVecExecUnit_0_bits_vd == 5'h18; + automatic logic _GEN_50; + automatic logic _GEN_51 = io_fromVecExecUnit_0_bits_vd == 5'h19; + automatic logic _GEN_52; + automatic logic _GEN_53 = io_fromVecExecUnit_0_bits_vd == 5'h1A; + automatic logic _GEN_54; + automatic logic _GEN_55 = io_fromVecExecUnit_0_bits_vd == 5'h1B; + automatic logic _GEN_56; + automatic logic _GEN_57 = io_fromVecExecUnit_0_bits_vd == 5'h1C; + automatic logic _GEN_58; + automatic logic _GEN_59 = io_fromVecExecUnit_0_bits_vd == 5'h1D; + automatic logic _GEN_60; + automatic logic _GEN_61 = io_fromVecExecUnit_0_bits_vd == 5'h1E; + automatic logic _GEN_62; + automatic logic _GEN_63; + automatic logic _T_3; + automatic logic _GEN_64; + automatic logic _GEN_65; + automatic logic _GEN_66; + automatic logic _GEN_67; + automatic logic _GEN_68; + automatic logic _GEN_69; + automatic logic _GEN_70; + automatic logic _GEN_71; + automatic logic _GEN_72; + automatic logic _GEN_73; + automatic logic _GEN_74; + automatic logic _GEN_75; + automatic logic _GEN_76; + automatic logic _GEN_77; + automatic logic _GEN_78; + automatic logic _GEN_79; + automatic logic _GEN_80; + automatic logic _GEN_81; + automatic logic _GEN_82; + automatic logic _GEN_83; + automatic logic _GEN_84; + automatic logic _GEN_85; + automatic logic _GEN_86; + automatic logic _GEN_87; + automatic logic _GEN_88; + automatic logic _GEN_89; + automatic logic _GEN_90; + automatic logic _GEN_91; + automatic logic _GEN_92; + automatic logic _GEN_93; + automatic logic _GEN_94; + automatic logic _T_5 = + io_fromVecExecUnit_2_valid & io_fromVecExecUnit_2_bits_index == 5'h0; + automatic logic _GEN_95 = + io_fromVecExecUnit_2_valid & _T_5 & ~(|io_fromVecExecUnit_2_bits_vd); + automatic logic _GEN_96 = io_fromVecExecUnit_2_bits_vd == 5'h1; + automatic logic _GEN_97 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_96; + automatic logic _GEN_98 = io_fromVecExecUnit_2_bits_vd == 5'h2; + automatic logic _GEN_99 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_98; + automatic logic _GEN_100 = io_fromVecExecUnit_2_bits_vd == 5'h3; + automatic logic _GEN_101 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_100; + automatic logic _GEN_102 = io_fromVecExecUnit_2_bits_vd == 5'h4; + automatic logic _GEN_103 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_102; + automatic logic _GEN_104 = io_fromVecExecUnit_2_bits_vd == 5'h5; + automatic logic _GEN_105 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_104; + automatic logic _GEN_106 = io_fromVecExecUnit_2_bits_vd == 5'h6; + automatic logic _GEN_107 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_106; + automatic logic _GEN_108 = io_fromVecExecUnit_2_bits_vd == 5'h7; + automatic logic _GEN_109 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_108; + automatic logic _GEN_110 = io_fromVecExecUnit_2_bits_vd == 5'h8; + automatic logic _GEN_111 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_110; + automatic logic _GEN_112 = io_fromVecExecUnit_2_bits_vd == 5'h9; + automatic logic _GEN_113 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_112; + automatic logic _GEN_114 = io_fromVecExecUnit_2_bits_vd == 5'hA; + automatic logic _GEN_115 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_114; + automatic logic _GEN_116 = io_fromVecExecUnit_2_bits_vd == 5'hB; + automatic logic _GEN_117 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_116; + automatic logic _GEN_118 = io_fromVecExecUnit_2_bits_vd == 5'hC; + automatic logic _GEN_119 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_118; + automatic logic _GEN_120 = io_fromVecExecUnit_2_bits_vd == 5'hD; + automatic logic _GEN_121 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_120; + automatic logic _GEN_122 = io_fromVecExecUnit_2_bits_vd == 5'hE; + automatic logic _GEN_123 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_122; + automatic logic _GEN_124 = io_fromVecExecUnit_2_bits_vd == 5'hF; + automatic logic _GEN_125 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_124; + automatic logic _GEN_126 = io_fromVecExecUnit_2_bits_vd == 5'h10; + automatic logic _GEN_127 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_126; + automatic logic _GEN_128 = io_fromVecExecUnit_2_bits_vd == 5'h11; + automatic logic _GEN_129 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_128; + automatic logic _GEN_130 = io_fromVecExecUnit_2_bits_vd == 5'h12; + automatic logic _GEN_131 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_130; + automatic logic _GEN_132 = io_fromVecExecUnit_2_bits_vd == 5'h13; + automatic logic _GEN_133 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_132; + automatic logic _GEN_134 = io_fromVecExecUnit_2_bits_vd == 5'h14; + automatic logic _GEN_135 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_134; + automatic logic _GEN_136 = io_fromVecExecUnit_2_bits_vd == 5'h15; + automatic logic _GEN_137 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_136; + automatic logic _GEN_138 = io_fromVecExecUnit_2_bits_vd == 5'h16; + automatic logic _GEN_139 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_138; + automatic logic _GEN_140 = io_fromVecExecUnit_2_bits_vd == 5'h17; + automatic logic _GEN_141 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_140; + automatic logic _GEN_142 = io_fromVecExecUnit_2_bits_vd == 5'h18; + automatic logic _GEN_143 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_142; + automatic logic _GEN_144 = io_fromVecExecUnit_2_bits_vd == 5'h19; + automatic logic _GEN_145 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_144; + automatic logic _GEN_146 = io_fromVecExecUnit_2_bits_vd == 5'h1A; + automatic logic _GEN_147 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_146; + automatic logic _GEN_148 = io_fromVecExecUnit_2_bits_vd == 5'h1B; + automatic logic _GEN_149 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_148; + automatic logic _GEN_150 = io_fromVecExecUnit_2_bits_vd == 5'h1C; + automatic logic _GEN_151 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_150; + automatic logic _GEN_152 = io_fromVecExecUnit_2_bits_vd == 5'h1D; + automatic logic _GEN_153 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_152; + automatic logic _GEN_154 = io_fromVecExecUnit_2_bits_vd == 5'h1E; + automatic logic _GEN_155 = io_fromVecExecUnit_2_valid & _T_5 & _GEN_154; + automatic logic _GEN_156 = + io_fromVecExecUnit_2_valid & _T_5 & (&io_fromVecExecUnit_2_bits_vd); + automatic logic _T_6 = io_fromVecExecUnit_0_valid & io_fromVecExecUnit_0_bits_last; + automatic logic otherWritesSameVd = + io_fromVecExecUnit_1_valid + & io_fromVecExecUnit_1_bits_vd == io_fromVecExecUnit_0_bits_vd + | io_fromVecExecUnit_2_valid + & io_fromVecExecUnit_2_bits_vd == io_fromVecExecUnit_0_bits_vd; + automatic logic _GEN_157 = + _T_6 & ~otherWritesSameVd & ~(|io_fromVecExecUnit_0_bits_vd); + automatic logic _GEN_158 = _T_6 & ~otherWritesSameVd & _GEN_3; + automatic logic _GEN_159 = _T_6 & ~otherWritesSameVd & _GEN_5; + automatic logic _GEN_160 = _T_6 & ~otherWritesSameVd & _GEN_7; + automatic logic _GEN_161 = _T_6 & ~otherWritesSameVd & _GEN_9; + automatic logic _GEN_162 = _T_6 & ~otherWritesSameVd & _GEN_11; + automatic logic _GEN_163 = _T_6 & ~otherWritesSameVd & _GEN_13; + automatic logic _GEN_164 = _T_6 & ~otherWritesSameVd & _GEN_15; + automatic logic _GEN_165 = _T_6 & ~otherWritesSameVd & _GEN_17; + automatic logic _GEN_166 = _T_6 & ~otherWritesSameVd & _GEN_19; + automatic logic _GEN_167 = _T_6 & ~otherWritesSameVd & _GEN_21; + automatic logic _GEN_168 = _T_6 & ~otherWritesSameVd & _GEN_23; + automatic logic _GEN_169 = _T_6 & ~otherWritesSameVd & _GEN_25; + automatic logic _GEN_170 = _T_6 & ~otherWritesSameVd & _GEN_27; + automatic logic _GEN_171 = _T_6 & ~otherWritesSameVd & _GEN_29; + automatic logic _GEN_172 = _T_6 & ~otherWritesSameVd & _GEN_31; + automatic logic _GEN_173 = _T_6 & ~otherWritesSameVd & _GEN_33; + automatic logic _GEN_174 = _T_6 & ~otherWritesSameVd & _GEN_35; + automatic logic _GEN_175 = _T_6 & ~otherWritesSameVd & _GEN_37; + automatic logic _GEN_176 = _T_6 & ~otherWritesSameVd & _GEN_39; + automatic logic _GEN_177 = _T_6 & ~otherWritesSameVd & _GEN_41; + automatic logic _GEN_178 = _T_6 & ~otherWritesSameVd & _GEN_43; + automatic logic _GEN_179 = _T_6 & ~otherWritesSameVd & _GEN_45; + automatic logic _GEN_180 = _T_6 & ~otherWritesSameVd & _GEN_47; + automatic logic _GEN_181 = _T_6 & ~otherWritesSameVd & _GEN_49; + automatic logic _GEN_182 = _T_6 & ~otherWritesSameVd & _GEN_51; + automatic logic _GEN_183 = _T_6 & ~otherWritesSameVd & _GEN_53; + automatic logic _GEN_184 = _T_6 & ~otherWritesSameVd & _GEN_55; + automatic logic _GEN_185 = _T_6 & ~otherWritesSameVd & _GEN_57; + automatic logic _GEN_186 = _T_6 & ~otherWritesSameVd & _GEN_59; + automatic logic _GEN_187 = _T_6 & ~otherWritesSameVd & _GEN_61; + automatic logic _GEN_188 = + _T_6 & ~otherWritesSameVd & (&io_fromVecExecUnit_0_bits_vd); + automatic logic _GEN_189 = + io_fromVecExecUnit_1_valid & io_fromVecExecUnit_1_bits_last + & ~(io_fromVecExecUnit_0_valid + & io_fromVecExecUnit_0_bits_vd == io_fromVecExecUnit_1_bits_vd + | io_fromVecExecUnit_2_valid + & io_fromVecExecUnit_2_bits_vd == io_fromVecExecUnit_1_bits_vd); + automatic logic _T_10 = io_fromVecExecUnit_2_valid & io_fromVecExecUnit_2_bits_last; + automatic logic otherWritesSameVd_2 = + io_fromVecExecUnit_0_valid + & io_fromVecExecUnit_0_bits_vd == io_fromVecExecUnit_2_bits_vd + | io_fromVecExecUnit_1_valid + & io_fromVecExecUnit_1_bits_vd == io_fromVecExecUnit_2_bits_vd; + automatic logic _GEN_190 = io_invalidateVd & io_vdCheck_bits_idx == 5'h0; + automatic logic _GEN_191 = io_invalidateVd & io_vdCheck_bits_idx == 5'h1; + automatic logic _GEN_192 = io_invalidateVd & io_vdCheck_bits_idx == 5'h2; + automatic logic _GEN_193 = io_invalidateVd & io_vdCheck_bits_idx == 5'h3; + automatic logic _GEN_194 = io_invalidateVd & io_vdCheck_bits_idx == 5'h4; + automatic logic _GEN_195 = io_invalidateVd & io_vdCheck_bits_idx == 5'h5; + automatic logic _GEN_196 = io_invalidateVd & io_vdCheck_bits_idx == 5'h6; + automatic logic _GEN_197 = io_invalidateVd & io_vdCheck_bits_idx == 5'h7; + automatic logic _GEN_198 = io_invalidateVd & io_vdCheck_bits_idx == 5'h8; + automatic logic _GEN_199 = io_invalidateVd & io_vdCheck_bits_idx == 5'h9; + automatic logic _GEN_200 = io_invalidateVd & io_vdCheck_bits_idx == 5'hA; + automatic logic _GEN_201 = io_invalidateVd & io_vdCheck_bits_idx == 5'hB; + automatic logic _GEN_202 = io_invalidateVd & io_vdCheck_bits_idx == 5'hC; + automatic logic _GEN_203 = io_invalidateVd & io_vdCheck_bits_idx == 5'hD; + automatic logic _GEN_204 = io_invalidateVd & io_vdCheck_bits_idx == 5'hE; + automatic logic _GEN_205 = io_invalidateVd & io_vdCheck_bits_idx == 5'hF; + automatic logic _GEN_206 = io_invalidateVd & io_vdCheck_bits_idx == 5'h10; + automatic logic _GEN_207 = io_invalidateVd & io_vdCheck_bits_idx == 5'h11; + automatic logic _GEN_208 = io_invalidateVd & io_vdCheck_bits_idx == 5'h12; + automatic logic _GEN_209 = io_invalidateVd & io_vdCheck_bits_idx == 5'h13; + automatic logic _GEN_210 = io_invalidateVd & io_vdCheck_bits_idx == 5'h14; + automatic logic _GEN_211 = io_invalidateVd & io_vdCheck_bits_idx == 5'h15; + automatic logic _GEN_212 = io_invalidateVd & io_vdCheck_bits_idx == 5'h16; + automatic logic _GEN_213 = io_invalidateVd & io_vdCheck_bits_idx == 5'h17; + automatic logic _GEN_214 = io_invalidateVd & io_vdCheck_bits_idx == 5'h18; + automatic logic _GEN_215 = io_invalidateVd & io_vdCheck_bits_idx == 5'h19; + automatic logic _GEN_216 = io_invalidateVd & io_vdCheck_bits_idx == 5'h1A; + automatic logic _GEN_217 = io_invalidateVd & io_vdCheck_bits_idx == 5'h1B; + automatic logic _GEN_218 = io_invalidateVd & io_vdCheck_bits_idx == 5'h1C; + automatic logic _GEN_219 = io_invalidateVd & io_vdCheck_bits_idx == 5'h1D; + automatic logic _GEN_220 = io_invalidateVd & io_vdCheck_bits_idx == 5'h1E; + automatic logic _GEN_221 = io_invalidateVd & (&io_vdCheck_bits_idx); + _GEN_2 = io_fromVecExecUnit_0_valid & _T_1 & ~(|io_fromVecExecUnit_0_bits_vd); + _GEN_4 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_3; + _GEN_6 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_5; + _GEN_8 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_7; + _GEN_10 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_9; + _GEN_12 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_11; + _GEN_14 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_13; + _GEN_16 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_15; + _GEN_18 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_17; + _GEN_20 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_19; + _GEN_22 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_21; + _GEN_24 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_23; + _GEN_26 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_25; + _GEN_28 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_27; + _GEN_30 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_29; + _GEN_32 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_31; + _GEN_34 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_33; + _GEN_36 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_35; + _GEN_38 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_37; + _GEN_40 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_39; + _GEN_42 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_41; + _GEN_44 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_43; + _GEN_46 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_45; + _GEN_48 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_47; + _GEN_50 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_49; + _GEN_52 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_51; + _GEN_54 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_53; + _GEN_56 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_55; + _GEN_58 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_57; + _GEN_60 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_59; + _GEN_62 = io_fromVecExecUnit_0_valid & _T_1 & _GEN_61; + _GEN_63 = io_fromVecExecUnit_0_valid & _T_1 & (&io_fromVecExecUnit_0_bits_vd); + _T_3 = io_fromVecExecUnit_1_valid & io_fromVecExecUnit_1_bits_index == 5'h0; + _GEN_64 = io_fromVecExecUnit_1_valid & _T_3; + _GEN_65 = io_fromVecExecUnit_1_bits_vd == 5'h1; + _GEN_66 = io_fromVecExecUnit_1_bits_vd == 5'h2; + _GEN_67 = io_fromVecExecUnit_1_bits_vd == 5'h3; + _GEN_68 = io_fromVecExecUnit_1_bits_vd == 5'h4; + _GEN_69 = io_fromVecExecUnit_1_bits_vd == 5'h5; + _GEN_70 = io_fromVecExecUnit_1_bits_vd == 5'h6; + _GEN_71 = io_fromVecExecUnit_1_bits_vd == 5'h7; + _GEN_72 = io_fromVecExecUnit_1_bits_vd == 5'h8; + _GEN_73 = io_fromVecExecUnit_1_bits_vd == 5'h9; + _GEN_74 = io_fromVecExecUnit_1_bits_vd == 5'hA; + _GEN_75 = io_fromVecExecUnit_1_bits_vd == 5'hB; + _GEN_76 = io_fromVecExecUnit_1_bits_vd == 5'hC; + _GEN_77 = io_fromVecExecUnit_1_bits_vd == 5'hD; + _GEN_78 = io_fromVecExecUnit_1_bits_vd == 5'hE; + _GEN_79 = io_fromVecExecUnit_1_bits_vd == 5'hF; + _GEN_80 = io_fromVecExecUnit_1_bits_vd == 5'h10; + _GEN_81 = io_fromVecExecUnit_1_bits_vd == 5'h11; + _GEN_82 = io_fromVecExecUnit_1_bits_vd == 5'h12; + _GEN_83 = io_fromVecExecUnit_1_bits_vd == 5'h13; + _GEN_84 = io_fromVecExecUnit_1_bits_vd == 5'h14; + _GEN_85 = io_fromVecExecUnit_1_bits_vd == 5'h15; + _GEN_86 = io_fromVecExecUnit_1_bits_vd == 5'h16; + _GEN_87 = io_fromVecExecUnit_1_bits_vd == 5'h17; + _GEN_88 = io_fromVecExecUnit_1_bits_vd == 5'h18; + _GEN_89 = io_fromVecExecUnit_1_bits_vd == 5'h19; + _GEN_90 = io_fromVecExecUnit_1_bits_vd == 5'h1A; + _GEN_91 = io_fromVecExecUnit_1_bits_vd == 5'h1B; + _GEN_92 = io_fromVecExecUnit_1_bits_vd == 5'h1C; + _GEN_93 = io_fromVecExecUnit_1_bits_vd == 5'h1D; + _GEN_94 = io_fromVecExecUnit_1_bits_vd == 5'h1E; + vrfZeroIdxReadyTable_0 <= + ~_GEN_190 + & (_GEN_95 + | (_GEN_64 + ? ~(|io_fromVecExecUnit_1_bits_vd) | _GEN_2 | vrfZeroIdxReadyTable_0 + : _GEN_2 | vrfZeroIdxReadyTable_0)); + vrfZeroIdxReadyTable_1 <= + ~_GEN_191 + & (_GEN_97 + | (_GEN_64 + ? _GEN_65 | _GEN_4 | vrfZeroIdxReadyTable_1 + : _GEN_4 | vrfZeroIdxReadyTable_1)); + vrfZeroIdxReadyTable_2 <= + ~_GEN_192 + & (_GEN_99 + | (_GEN_64 + ? _GEN_66 | _GEN_6 | vrfZeroIdxReadyTable_2 + : _GEN_6 | vrfZeroIdxReadyTable_2)); + vrfZeroIdxReadyTable_3 <= + ~_GEN_193 + & (_GEN_101 + | (_GEN_64 + ? _GEN_67 | _GEN_8 | vrfZeroIdxReadyTable_3 + : _GEN_8 | vrfZeroIdxReadyTable_3)); + vrfZeroIdxReadyTable_4 <= + ~_GEN_194 + & (_GEN_103 + | (_GEN_64 + ? _GEN_68 | _GEN_10 | vrfZeroIdxReadyTable_4 + : _GEN_10 | vrfZeroIdxReadyTable_4)); + vrfZeroIdxReadyTable_5 <= + ~_GEN_195 + & (_GEN_105 + | (_GEN_64 + ? _GEN_69 | _GEN_12 | vrfZeroIdxReadyTable_5 + : _GEN_12 | vrfZeroIdxReadyTable_5)); + vrfZeroIdxReadyTable_6 <= + ~_GEN_196 + & (_GEN_107 + | (_GEN_64 + ? _GEN_70 | _GEN_14 | vrfZeroIdxReadyTable_6 + : _GEN_14 | vrfZeroIdxReadyTable_6)); + vrfZeroIdxReadyTable_7 <= + ~_GEN_197 + & (_GEN_109 + | (_GEN_64 + ? _GEN_71 | _GEN_16 | vrfZeroIdxReadyTable_7 + : _GEN_16 | vrfZeroIdxReadyTable_7)); + vrfZeroIdxReadyTable_8 <= + ~_GEN_198 + & (_GEN_111 + | (_GEN_64 + ? _GEN_72 | _GEN_18 | vrfZeroIdxReadyTable_8 + : _GEN_18 | vrfZeroIdxReadyTable_8)); + vrfZeroIdxReadyTable_9 <= + ~_GEN_199 + & (_GEN_113 + | (_GEN_64 + ? _GEN_73 | _GEN_20 | vrfZeroIdxReadyTable_9 + : _GEN_20 | vrfZeroIdxReadyTable_9)); + vrfZeroIdxReadyTable_10 <= + ~_GEN_200 + & (_GEN_115 + | (_GEN_64 + ? _GEN_74 | _GEN_22 | vrfZeroIdxReadyTable_10 + : _GEN_22 | vrfZeroIdxReadyTable_10)); + vrfZeroIdxReadyTable_11 <= + ~_GEN_201 + & (_GEN_117 + | (_GEN_64 + ? _GEN_75 | _GEN_24 | vrfZeroIdxReadyTable_11 + : _GEN_24 | vrfZeroIdxReadyTable_11)); + vrfZeroIdxReadyTable_12 <= + ~_GEN_202 + & (_GEN_119 + | (_GEN_64 + ? _GEN_76 | _GEN_26 | vrfZeroIdxReadyTable_12 + : _GEN_26 | vrfZeroIdxReadyTable_12)); + vrfZeroIdxReadyTable_13 <= + ~_GEN_203 + & (_GEN_121 + | (_GEN_64 + ? _GEN_77 | _GEN_28 | vrfZeroIdxReadyTable_13 + : _GEN_28 | vrfZeroIdxReadyTable_13)); + vrfZeroIdxReadyTable_14 <= + ~_GEN_204 + & (_GEN_123 + | (_GEN_64 + ? _GEN_78 | _GEN_30 | vrfZeroIdxReadyTable_14 + : _GEN_30 | vrfZeroIdxReadyTable_14)); + vrfZeroIdxReadyTable_15 <= + ~_GEN_205 + & (_GEN_125 + | (_GEN_64 + ? _GEN_79 | _GEN_32 | vrfZeroIdxReadyTable_15 + : _GEN_32 | vrfZeroIdxReadyTable_15)); + vrfZeroIdxReadyTable_16 <= + ~_GEN_206 + & (_GEN_127 + | (_GEN_64 + ? _GEN_80 | _GEN_34 | vrfZeroIdxReadyTable_16 + : _GEN_34 | vrfZeroIdxReadyTable_16)); + vrfZeroIdxReadyTable_17 <= + ~_GEN_207 + & (_GEN_129 + | (_GEN_64 + ? _GEN_81 | _GEN_36 | vrfZeroIdxReadyTable_17 + : _GEN_36 | vrfZeroIdxReadyTable_17)); + vrfZeroIdxReadyTable_18 <= + ~_GEN_208 + & (_GEN_131 + | (_GEN_64 + ? _GEN_82 | _GEN_38 | vrfZeroIdxReadyTable_18 + : _GEN_38 | vrfZeroIdxReadyTable_18)); + vrfZeroIdxReadyTable_19 <= + ~_GEN_209 + & (_GEN_133 + | (_GEN_64 + ? _GEN_83 | _GEN_40 | vrfZeroIdxReadyTable_19 + : _GEN_40 | vrfZeroIdxReadyTable_19)); + vrfZeroIdxReadyTable_20 <= + ~_GEN_210 + & (_GEN_135 + | (_GEN_64 + ? _GEN_84 | _GEN_42 | vrfZeroIdxReadyTable_20 + : _GEN_42 | vrfZeroIdxReadyTable_20)); + vrfZeroIdxReadyTable_21 <= + ~_GEN_211 + & (_GEN_137 + | (_GEN_64 + ? _GEN_85 | _GEN_44 | vrfZeroIdxReadyTable_21 + : _GEN_44 | vrfZeroIdxReadyTable_21)); + vrfZeroIdxReadyTable_22 <= + ~_GEN_212 + & (_GEN_139 + | (_GEN_64 + ? _GEN_86 | _GEN_46 | vrfZeroIdxReadyTable_22 + : _GEN_46 | vrfZeroIdxReadyTable_22)); + vrfZeroIdxReadyTable_23 <= + ~_GEN_213 + & (_GEN_141 + | (_GEN_64 + ? _GEN_87 | _GEN_48 | vrfZeroIdxReadyTable_23 + : _GEN_48 | vrfZeroIdxReadyTable_23)); + vrfZeroIdxReadyTable_24 <= + ~_GEN_214 + & (_GEN_143 + | (_GEN_64 + ? _GEN_88 | _GEN_50 | vrfZeroIdxReadyTable_24 + : _GEN_50 | vrfZeroIdxReadyTable_24)); + vrfZeroIdxReadyTable_25 <= + ~_GEN_215 + & (_GEN_145 + | (_GEN_64 + ? _GEN_89 | _GEN_52 | vrfZeroIdxReadyTable_25 + : _GEN_52 | vrfZeroIdxReadyTable_25)); + vrfZeroIdxReadyTable_26 <= + ~_GEN_216 + & (_GEN_147 + | (_GEN_64 + ? _GEN_90 | _GEN_54 | vrfZeroIdxReadyTable_26 + : _GEN_54 | vrfZeroIdxReadyTable_26)); + vrfZeroIdxReadyTable_27 <= + ~_GEN_217 + & (_GEN_149 + | (_GEN_64 + ? _GEN_91 | _GEN_56 | vrfZeroIdxReadyTable_27 + : _GEN_56 | vrfZeroIdxReadyTable_27)); + vrfZeroIdxReadyTable_28 <= + ~_GEN_218 + & (_GEN_151 + | (_GEN_64 + ? _GEN_92 | _GEN_58 | vrfZeroIdxReadyTable_28 + : _GEN_58 | vrfZeroIdxReadyTable_28)); + vrfZeroIdxReadyTable_29 <= + ~_GEN_219 + & (_GEN_153 + | (_GEN_64 + ? _GEN_93 | _GEN_60 | vrfZeroIdxReadyTable_29 + : _GEN_60 | vrfZeroIdxReadyTable_29)); + vrfZeroIdxReadyTable_30 <= + ~_GEN_220 + & (_GEN_155 + | (_GEN_64 + ? _GEN_94 | _GEN_62 | vrfZeroIdxReadyTable_30 + : _GEN_62 | vrfZeroIdxReadyTable_30)); + vrfZeroIdxReadyTable_31 <= + ~_GEN_221 + & (_GEN_156 + | (_GEN_64 + ? (&io_fromVecExecUnit_1_bits_vd) | _GEN_63 | vrfZeroIdxReadyTable_31 + : _GEN_63 | vrfZeroIdxReadyTable_31)); + vrfWholeIdxReadyTable_0 <= + ~_GEN_190 + & (_T_10 & ~otherWritesSameVd_2 & ~(|io_fromVecExecUnit_2_bits_vd) + | (_GEN_189 + ? ~(|io_fromVecExecUnit_1_bits_vd) | _GEN_157 | vrfWholeIdxReadyTable_0 + : _GEN_157 | vrfWholeIdxReadyTable_0)); + vrfWholeIdxReadyTable_1 <= + ~_GEN_191 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_96 + | (_GEN_189 + ? _GEN_65 | _GEN_158 | vrfWholeIdxReadyTable_1 + : _GEN_158 | vrfWholeIdxReadyTable_1)); + vrfWholeIdxReadyTable_2 <= + ~_GEN_192 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_98 + | (_GEN_189 + ? _GEN_66 | _GEN_159 | vrfWholeIdxReadyTable_2 + : _GEN_159 | vrfWholeIdxReadyTable_2)); + vrfWholeIdxReadyTable_3 <= + ~_GEN_193 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_100 + | (_GEN_189 + ? _GEN_67 | _GEN_160 | vrfWholeIdxReadyTable_3 + : _GEN_160 | vrfWholeIdxReadyTable_3)); + vrfWholeIdxReadyTable_4 <= + ~_GEN_194 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_102 + | (_GEN_189 + ? _GEN_68 | _GEN_161 | vrfWholeIdxReadyTable_4 + : _GEN_161 | vrfWholeIdxReadyTable_4)); + vrfWholeIdxReadyTable_5 <= + ~_GEN_195 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_104 + | (_GEN_189 + ? _GEN_69 | _GEN_162 | vrfWholeIdxReadyTable_5 + : _GEN_162 | vrfWholeIdxReadyTable_5)); + vrfWholeIdxReadyTable_6 <= + ~_GEN_196 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_106 + | (_GEN_189 + ? _GEN_70 | _GEN_163 | vrfWholeIdxReadyTable_6 + : _GEN_163 | vrfWholeIdxReadyTable_6)); + vrfWholeIdxReadyTable_7 <= + ~_GEN_197 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_108 + | (_GEN_189 + ? _GEN_71 | _GEN_164 | vrfWholeIdxReadyTable_7 + : _GEN_164 | vrfWholeIdxReadyTable_7)); + vrfWholeIdxReadyTable_8 <= + ~_GEN_198 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_110 + | (_GEN_189 + ? _GEN_72 | _GEN_165 | vrfWholeIdxReadyTable_8 + : _GEN_165 | vrfWholeIdxReadyTable_8)); + vrfWholeIdxReadyTable_9 <= + ~_GEN_199 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_112 + | (_GEN_189 + ? _GEN_73 | _GEN_166 | vrfWholeIdxReadyTable_9 + : _GEN_166 | vrfWholeIdxReadyTable_9)); + vrfWholeIdxReadyTable_10 <= + ~_GEN_200 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_114 + | (_GEN_189 + ? _GEN_74 | _GEN_167 | vrfWholeIdxReadyTable_10 + : _GEN_167 | vrfWholeIdxReadyTable_10)); + vrfWholeIdxReadyTable_11 <= + ~_GEN_201 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_116 + | (_GEN_189 + ? _GEN_75 | _GEN_168 | vrfWholeIdxReadyTable_11 + : _GEN_168 | vrfWholeIdxReadyTable_11)); + vrfWholeIdxReadyTable_12 <= + ~_GEN_202 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_118 + | (_GEN_189 + ? _GEN_76 | _GEN_169 | vrfWholeIdxReadyTable_12 + : _GEN_169 | vrfWholeIdxReadyTable_12)); + vrfWholeIdxReadyTable_13 <= + ~_GEN_203 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_120 + | (_GEN_189 + ? _GEN_77 | _GEN_170 | vrfWholeIdxReadyTable_13 + : _GEN_170 | vrfWholeIdxReadyTable_13)); + vrfWholeIdxReadyTable_14 <= + ~_GEN_204 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_122 + | (_GEN_189 + ? _GEN_78 | _GEN_171 | vrfWholeIdxReadyTable_14 + : _GEN_171 | vrfWholeIdxReadyTable_14)); + vrfWholeIdxReadyTable_15 <= + ~_GEN_205 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_124 + | (_GEN_189 + ? _GEN_79 | _GEN_172 | vrfWholeIdxReadyTable_15 + : _GEN_172 | vrfWholeIdxReadyTable_15)); + vrfWholeIdxReadyTable_16 <= + ~_GEN_206 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_126 + | (_GEN_189 + ? _GEN_80 | _GEN_173 | vrfWholeIdxReadyTable_16 + : _GEN_173 | vrfWholeIdxReadyTable_16)); + vrfWholeIdxReadyTable_17 <= + ~_GEN_207 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_128 + | (_GEN_189 + ? _GEN_81 | _GEN_174 | vrfWholeIdxReadyTable_17 + : _GEN_174 | vrfWholeIdxReadyTable_17)); + vrfWholeIdxReadyTable_18 <= + ~_GEN_208 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_130 + | (_GEN_189 + ? _GEN_82 | _GEN_175 | vrfWholeIdxReadyTable_18 + : _GEN_175 | vrfWholeIdxReadyTable_18)); + vrfWholeIdxReadyTable_19 <= + ~_GEN_209 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_132 + | (_GEN_189 + ? _GEN_83 | _GEN_176 | vrfWholeIdxReadyTable_19 + : _GEN_176 | vrfWholeIdxReadyTable_19)); + vrfWholeIdxReadyTable_20 <= + ~_GEN_210 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_134 + | (_GEN_189 + ? _GEN_84 | _GEN_177 | vrfWholeIdxReadyTable_20 + : _GEN_177 | vrfWholeIdxReadyTable_20)); + vrfWholeIdxReadyTable_21 <= + ~_GEN_211 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_136 + | (_GEN_189 + ? _GEN_85 | _GEN_178 | vrfWholeIdxReadyTable_21 + : _GEN_178 | vrfWholeIdxReadyTable_21)); + vrfWholeIdxReadyTable_22 <= + ~_GEN_212 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_138 + | (_GEN_189 + ? _GEN_86 | _GEN_179 | vrfWholeIdxReadyTable_22 + : _GEN_179 | vrfWholeIdxReadyTable_22)); + vrfWholeIdxReadyTable_23 <= + ~_GEN_213 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_140 + | (_GEN_189 + ? _GEN_87 | _GEN_180 | vrfWholeIdxReadyTable_23 + : _GEN_180 | vrfWholeIdxReadyTable_23)); + vrfWholeIdxReadyTable_24 <= + ~_GEN_214 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_142 + | (_GEN_189 + ? _GEN_88 | _GEN_181 | vrfWholeIdxReadyTable_24 + : _GEN_181 | vrfWholeIdxReadyTable_24)); + vrfWholeIdxReadyTable_25 <= + ~_GEN_215 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_144 + | (_GEN_189 + ? _GEN_89 | _GEN_182 | vrfWholeIdxReadyTable_25 + : _GEN_182 | vrfWholeIdxReadyTable_25)); + vrfWholeIdxReadyTable_26 <= + ~_GEN_216 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_146 + | (_GEN_189 + ? _GEN_90 | _GEN_183 | vrfWholeIdxReadyTable_26 + : _GEN_183 | vrfWholeIdxReadyTable_26)); + vrfWholeIdxReadyTable_27 <= + ~_GEN_217 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_148 + | (_GEN_189 + ? _GEN_91 | _GEN_184 | vrfWholeIdxReadyTable_27 + : _GEN_184 | vrfWholeIdxReadyTable_27)); + vrfWholeIdxReadyTable_28 <= + ~_GEN_218 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_150 + | (_GEN_189 + ? _GEN_92 | _GEN_185 | vrfWholeIdxReadyTable_28 + : _GEN_185 | vrfWholeIdxReadyTable_28)); + vrfWholeIdxReadyTable_29 <= + ~_GEN_219 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_152 + | (_GEN_189 + ? _GEN_93 | _GEN_186 | vrfWholeIdxReadyTable_29 + : _GEN_186 | vrfWholeIdxReadyTable_29)); + vrfWholeIdxReadyTable_30 <= + ~_GEN_220 + & (_T_10 & ~otherWritesSameVd_2 & _GEN_154 + | (_GEN_189 + ? _GEN_94 | _GEN_187 | vrfWholeIdxReadyTable_30 + : _GEN_187 | vrfWholeIdxReadyTable_30)); + vrfWholeIdxReadyTable_31 <= + ~_GEN_221 + & (_T_10 & ~otherWritesSameVd_2 & (&io_fromVecExecUnit_2_bits_vd) + | (_GEN_189 + ? (&io_fromVecExecUnit_1_bits_vd) | _GEN_188 | vrfWholeIdxReadyTable_31 + : _GEN_188 | vrfWholeIdxReadyTable_31)); + if (_GEN_95) + vrfWriteSewTable_0_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & ~(|io_fromVecExecUnit_1_bits_vd)) + vrfWriteSewTable_0_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_2) + vrfWriteSewTable_0_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_97) + vrfWriteSewTable_1_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_65) + vrfWriteSewTable_1_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_4) + vrfWriteSewTable_1_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_99) + vrfWriteSewTable_2_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_66) + vrfWriteSewTable_2_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_6) + vrfWriteSewTable_2_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_101) + vrfWriteSewTable_3_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_67) + vrfWriteSewTable_3_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_8) + vrfWriteSewTable_3_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_103) + vrfWriteSewTable_4_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_68) + vrfWriteSewTable_4_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_10) + vrfWriteSewTable_4_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_105) + vrfWriteSewTable_5_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_69) + vrfWriteSewTable_5_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_12) + vrfWriteSewTable_5_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_107) + vrfWriteSewTable_6_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_70) + vrfWriteSewTable_6_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_14) + vrfWriteSewTable_6_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_109) + vrfWriteSewTable_7_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_71) + vrfWriteSewTable_7_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_16) + vrfWriteSewTable_7_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_111) + vrfWriteSewTable_8_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_72) + vrfWriteSewTable_8_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_18) + vrfWriteSewTable_8_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_113) + vrfWriteSewTable_9_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_73) + vrfWriteSewTable_9_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_20) + vrfWriteSewTable_9_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_115) + vrfWriteSewTable_10_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_74) + vrfWriteSewTable_10_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_22) + vrfWriteSewTable_10_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_117) + vrfWriteSewTable_11_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_75) + vrfWriteSewTable_11_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_24) + vrfWriteSewTable_11_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_119) + vrfWriteSewTable_12_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_76) + vrfWriteSewTable_12_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_26) + vrfWriteSewTable_12_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_121) + vrfWriteSewTable_13_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_77) + vrfWriteSewTable_13_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_28) + vrfWriteSewTable_13_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_123) + vrfWriteSewTable_14_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_78) + vrfWriteSewTable_14_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_30) + vrfWriteSewTable_14_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_125) + vrfWriteSewTable_15_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_79) + vrfWriteSewTable_15_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_32) + vrfWriteSewTable_15_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_127) + vrfWriteSewTable_16_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_80) + vrfWriteSewTable_16_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_34) + vrfWriteSewTable_16_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_129) + vrfWriteSewTable_17_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_81) + vrfWriteSewTable_17_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_36) + vrfWriteSewTable_17_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_131) + vrfWriteSewTable_18_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_82) + vrfWriteSewTable_18_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_38) + vrfWriteSewTable_18_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_133) + vrfWriteSewTable_19_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_83) + vrfWriteSewTable_19_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_40) + vrfWriteSewTable_19_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_135) + vrfWriteSewTable_20_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_84) + vrfWriteSewTable_20_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_42) + vrfWriteSewTable_20_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_137) + vrfWriteSewTable_21_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_85) + vrfWriteSewTable_21_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_44) + vrfWriteSewTable_21_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_139) + vrfWriteSewTable_22_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_86) + vrfWriteSewTable_22_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_46) + vrfWriteSewTable_22_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_141) + vrfWriteSewTable_23_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_87) + vrfWriteSewTable_23_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_48) + vrfWriteSewTable_23_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_143) + vrfWriteSewTable_24_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_88) + vrfWriteSewTable_24_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_50) + vrfWriteSewTable_24_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_145) + vrfWriteSewTable_25_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_89) + vrfWriteSewTable_25_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_52) + vrfWriteSewTable_25_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_147) + vrfWriteSewTable_26_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_90) + vrfWriteSewTable_26_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_54) + vrfWriteSewTable_26_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_149) + vrfWriteSewTable_27_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_91) + vrfWriteSewTable_27_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_56) + vrfWriteSewTable_27_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_151) + vrfWriteSewTable_28_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_92) + vrfWriteSewTable_28_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_58) + vrfWriteSewTable_28_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_153) + vrfWriteSewTable_29_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_93) + vrfWriteSewTable_29_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_60) + vrfWriteSewTable_29_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_155) + vrfWriteSewTable_30_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & _GEN_94) + vrfWriteSewTable_30_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_62) + vrfWriteSewTable_30_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + if (_GEN_156) + vrfWriteSewTable_31_sew <= io_fromVecExecUnit_2_bits_vtype_vsew; + else if (io_fromVecExecUnit_1_valid & _T_3 & (&io_fromVecExecUnit_1_bits_vd)) + vrfWriteSewTable_31_sew <= io_fromVecExecUnit_1_bits_vtype_vsew; + else if (_GEN_63) + vrfWriteSewTable_31_sew <= io_fromVecExecUnit_0_bits_vtype_vsew; + end + end // always @(posedge) + assign io_vs1Check_ready = + io_vs1Check_valid + & (_GEN_0[io_vs1Check_bits_idx] + & (io_vs1Check_bits_vm | io_vs1Check_bits_vtype_vsew <= _GEN[io_vs1Check_bits_idx]) + | {1'h0, {1'h0, vs1SameWriteList_0} + {1'h0, vs1SameWriteList_1}} + + {2'h0, vs1SameWriteList_2} == 3'h1 + & {1'h0, + {1'h0, + vs1SameWriteList_0 + & (io_vs1Check_bits_vm + | io_vs1Check_bits_vtype_vsew <= io_fromVecExecUnit_0_bits_vtype_vsew)} + + {1'h0, + vs1SameWriteList_1 + & (io_vs1Check_bits_vm | ~io_fromVecExecUnit_1_bits_vm + & io_vs1Check_bits_vtype_vsew <= io_fromVecExecUnit_1_bits_vtype_vsew)}} + + {2'h0, + vs1SameWriteList_2 + & (io_vs1Check_bits_vm | ~io_fromVecExecUnit_2_bits_vm + & io_vs1Check_bits_vtype_vsew <= io_fromVecExecUnit_2_bits_vtype_vsew)} == 3'h1 + | _GEN_1[io_vs1Check_bits_idx]); + assign io_vs2Check_ready = + io_vs2Check_valid + & (_GEN_0[io_vs2Check_bits_idx] + & (io_vs2Check_bits_vm | io_vs2Check_bits_vtype_vsew <= _GEN[io_vs2Check_bits_idx]) + | {1'h0, {1'h0, vs2SameWriteList_0} + {1'h0, vs2SameWriteList_1}} + + {2'h0, vs2SameWriteList_2} == 3'h1 + & {1'h0, + {1'h0, + vs2SameWriteList_0 + & (io_vs2Check_bits_vm + | io_vs2Check_bits_vtype_vsew <= io_fromVecExecUnit_0_bits_vtype_vsew)} + + {1'h0, + vs2SameWriteList_1 + & (io_vs2Check_bits_vm | ~io_fromVecExecUnit_1_bits_vm + & io_vs2Check_bits_vtype_vsew <= io_fromVecExecUnit_1_bits_vtype_vsew)}} + + {2'h0, + vs2SameWriteList_2 + & (io_vs2Check_bits_vm | ~io_fromVecExecUnit_2_bits_vm + & io_vs2Check_bits_vtype_vsew <= io_fromVecExecUnit_2_bits_vtype_vsew)} == 3'h1 + | _GEN_1[io_vs2Check_bits_idx]); + assign io_vdCheck_ready = + io_vdCheck_valid + & (_GEN_0[io_vdCheck_bits_idx] + & (io_vdCheck_bits_vm | io_vdCheck_bits_vtype_vsew <= _GEN[io_vdCheck_bits_idx]) + | {1'h0, {1'h0, vdSameWriteList_0} + {1'h0, vdSameWriteList_1}} + + {2'h0, vdSameWriteList_2} == 3'h1 + & {1'h0, + {1'h0, + vdSameWriteList_0 + & (io_vdCheck_bits_vm + | io_vdCheck_bits_vtype_vsew <= io_fromVecExecUnit_0_bits_vtype_vsew)} + + {1'h0, + vdSameWriteList_1 + & (io_vdCheck_bits_vm | ~io_fromVecExecUnit_1_bits_vm + & io_vdCheck_bits_vtype_vsew <= io_fromVecExecUnit_1_bits_vtype_vsew)}} + + {2'h0, + vdSameWriteList_2 + & (io_vdCheck_bits_vm | ~io_fromVecExecUnit_2_bits_vm + & io_vdCheck_bits_vtype_vsew <= io_fromVecExecUnit_2_bits_vtype_vsew)} == 3'h1 + | _GEN_1[io_vdCheck_bits_idx]); + assign io_vmCheck_ready = + io_vmCheck_valid + & (vrfZeroIdxReadyTable_0 + | {1'h0, + {1'h0, _vdSameWriteList_T & ~(|io_fromVecExecUnit_0_bits_vd)} + + {1'h0, _vdSameWriteList_T_2 & ~(|io_fromVecExecUnit_1_bits_vd)}} + + {2'h0, _vdSameWriteList_T_4 & ~(|io_fromVecExecUnit_2_bits_vd)} == 3'h1 + | vrfWholeIdxReadyTable_0); +endmodule + +module IntegerAluExecUnit( + input clock, + reset, + io_signalIn_valid, + input [4:0] io_signalIn_bits_vs1, + io_signalIn_bits_vs2, + io_signalIn_bits_vd, + input [63:0] io_signalIn_bits_scalarVal, + input [5:0] io_signalIn_bits_vectorDecode_veuFun, + input [2:0] io_signalIn_bits_vectorDecode_vSource, + input io_signalIn_bits_vectorDecode_vm, + input [3:0] io_signalIn_bits_scalarDecode_branch, + input [2:0] io_signalIn_bits_scalarDecode_writeback_selector, + input [1:0] io_signalIn_bits_scalarDecode_memory_function, + input [2:0] io_signalIn_bits_scalarDecode_csr_funct, + input io_signalIn_bits_scalarDecode_fence, + input [2:0] io_signalIn_bits_vecConf_vtype_vsew, + input [5:0] io_signalIn_bits_vecConf_vl, + input [63:0] io_signalIn_bits_pc_addr, + io_readVrf_resp_vs1Out, + io_readVrf_resp_vs2Out, + io_readVrf_resp_vdOut, + input io_readVrf_resp_vm, + output io_signalIn_ready, + output [2:0] io_readVrf_req_sew, + output io_readVrf_req_readVdAsMaskSource, + output [4:0] io_readVrf_req_idx, + io_readVrf_req_vs1, + io_readVrf_req_vs2, + io_readVrf_req_vd, + output io_dataOut_toVRF_valid, + output [4:0] io_dataOut_toVRF_bits_vd, + output [2:0] io_dataOut_toVRF_bits_vtype_vsew, + output [4:0] io_dataOut_toVRF_bits_index, + output io_dataOut_toVRF_bits_last, + output [63:0] io_dataOut_toVRF_bits_data, + output io_dataOut_toVRF_bits_vm, + io_dataOut_toVRF_bits_writeReq, + io_toExWbReg_valid, + output [63:0] io_toExWbReg_bits_dataSignals_pc_addr, + io_toExWbReg_bits_dataSignals_exResult, + output [3:0] io_toExWbReg_bits_ctrlSignals_decode_branch, + output [2:0] io_toExWbReg_bits_ctrlSignals_decode_writeback_selector, + output [1:0] io_toExWbReg_bits_ctrlSignals_decode_memory_function, + output [2:0] io_toExWbReg_bits_ctrlSignals_decode_csr_funct, + output io_toExWbReg_bits_ctrlSignals_decode_fence, + output [4:0] io_toExWbReg_bits_ctrlSignals_rd_index, + output io_toExWbReg_bits_vectorExecNum_valid, + output [4:0] io_toExWbReg_bits_vectorExecNum_bits +); + + wire _io_dataOut_toVRF_bits_writeReq_output; + wire _io_dataOut_toVRF_bits_last_output; + wire _io_dataOut_toVRF_valid_output; + wire valueToExec_vm; + wire [63:0] valueToExec_vs2Out; + wire [63:0] valueToExec_vs1Out; + reg instInfoReg_valid; + reg [4:0] instInfoReg_bits_vs1; + reg [4:0] instInfoReg_bits_vs2; + reg [4:0] instInfoReg_bits_vd; + reg [63:0] instInfoReg_bits_scalarVal; + reg [5:0] instInfoReg_bits_vectorDecode_veuFun; + reg [2:0] instInfoReg_bits_vectorDecode_vSource; + reg instInfoReg_bits_vectorDecode_vm; + reg [3:0] instInfoReg_bits_scalarDecode_branch; + reg [2:0] instInfoReg_bits_scalarDecode_writeback_selector; + reg [1:0] instInfoReg_bits_scalarDecode_memory_function; + reg [2:0] instInfoReg_bits_scalarDecode_csr_funct; + reg instInfoReg_bits_scalarDecode_fence; + reg [2:0] instInfoReg_bits_vecConf_vtype_vsew; + reg [5:0] instInfoReg_bits_vecConf_vl; + reg [63:0] instInfoReg_bits_pc_addr; + reg [4:0] idx; + reg [63:0] reductionAccumulator; + reg [4:0] executedNum; + `ifndef SYNTHESIS + always @(posedge clock) begin + if (~reset & instInfoReg_valid & instInfoReg_bits_vecConf_vl == 6'h0) begin + if (`ASSERT_VERBOSE_COND_) + $error("Assertion failed: Zero vl instruction in VectorExecUnit\n at VectorExecUnit.scala:74 assert(!(instInfoReg.valid && instInfoReg.bits.vecConf.vl === 0.U), \"Zero vl instruction in VectorExecUnit\")\n"); + if (`STOP_COND_) + $fatal; + end + end // always @(posedge) + `endif // not def SYNTHESIS + wire [4:0] _GEN = {3'h0, idx[4:3]}; + wire [63:0] execValue1 = + instInfoReg_bits_vectorDecode_vSource == 3'h0 + | instInfoReg_bits_vectorDecode_vSource == 3'h3 + ? io_readVrf_resp_vs1Out + : instInfoReg_bits_scalarVal; + wire _io_signalIn_ready_output = + ~instInfoReg_valid | _io_dataOut_toVRF_bits_last_output; + wire [64:0] _GEN_0 = {1'h0, valueToExec_vs2Out}; + wire [64:0] _GEN_1 = {1'h0, valueToExec_vs1Out}; + wire [64:0] _execResult_T_25 = _GEN_0 + _GEN_1; + wire [64:0] _GEN_2 = {64'h0, valueToExec_vm}; + wire [64:0] _GEN_3 = _execResult_T_25 + _GEN_2; + wire [64:0] _execResult_T_1 = _GEN_0 - _GEN_1; + wire [64:0] _GEN_4 = _execResult_T_1 - _GEN_2; + wire _execResult_multiplyResHighBits_T_5 = + instInfoReg_bits_vecConf_vtype_vsew == 3'h0; + wire _execResult_multiplyResHighBits_T_7 = + instInfoReg_bits_vecConf_vtype_vsew == 3'h1; + wire _execResult_multiplyResHighBits_T_9 = + instInfoReg_bits_vecConf_vtype_vsew == 3'h2; + wire _execResult_multiplyResHighBits_T_11 = + instInfoReg_bits_vecConf_vtype_vsew == 3'h3; + wire [64:0] _execResult_vs1ForMult_T_49 = + _execResult_multiplyResHighBits_T_11 + ? {~(instInfoReg_bits_vectorDecode_veuFun == 6'h23 + | instInfoReg_bits_vectorDecode_veuFun == 6'h24) & valueToExec_vs1Out[63], + valueToExec_vs1Out} + : _execResult_multiplyResHighBits_T_9 + ? {instInfoReg_bits_vectorDecode_veuFun == 6'h23 + | instInfoReg_bits_vectorDecode_veuFun == 6'h24 + ? 33'h0 + : {33{valueToExec_vs1Out[31]}}, + valueToExec_vs1Out[31:0]} + : _execResult_multiplyResHighBits_T_7 + ? {instInfoReg_bits_vectorDecode_veuFun == 6'h23 + | instInfoReg_bits_vectorDecode_veuFun == 6'h24 + ? 49'h0 + : {49{valueToExec_vs1Out[15]}}, + valueToExec_vs1Out[15:0]} + : _execResult_multiplyResHighBits_T_5 + ? {instInfoReg_bits_vectorDecode_veuFun == 6'h23 + | instInfoReg_bits_vectorDecode_veuFun == 6'h24 + ? 57'h0 + : {57{valueToExec_vs1Out[7]}}, + valueToExec_vs1Out[7:0]} + : _GEN_1; + wire [64:0] _execResult_multiplyRes_T_5 = + instInfoReg_bits_vectorDecode_veuFun == 6'h27 + | instInfoReg_bits_vectorDecode_veuFun == 6'h28 + ? (_execResult_multiplyResHighBits_T_11 + ? {io_readVrf_resp_vdOut[63], io_readVrf_resp_vdOut} + : _execResult_multiplyResHighBits_T_9 + ? {{33{io_readVrf_resp_vdOut[31]}}, io_readVrf_resp_vdOut[31:0]} + : _execResult_multiplyResHighBits_T_7 + ? {{49{io_readVrf_resp_vdOut[15]}}, io_readVrf_resp_vdOut[15:0]} + : _execResult_multiplyResHighBits_T_5 + ? {{57{io_readVrf_resp_vdOut[7]}}, io_readVrf_resp_vdOut[7:0]} + : {1'h0, io_readVrf_resp_vdOut}) + : _execResult_multiplyResHighBits_T_11 + ? {instInfoReg_bits_vectorDecode_veuFun != 6'h23 & valueToExec_vs2Out[63], + valueToExec_vs2Out} + : _execResult_multiplyResHighBits_T_9 + ? {instInfoReg_bits_vectorDecode_veuFun == 6'h23 + ? 33'h0 + : {33{valueToExec_vs2Out[31]}}, + valueToExec_vs2Out[31:0]} + : _execResult_multiplyResHighBits_T_7 + ? {instInfoReg_bits_vectorDecode_veuFun == 6'h23 + ? 49'h0 + : {49{valueToExec_vs2Out[15]}}, + valueToExec_vs2Out[15:0]} + : _execResult_multiplyResHighBits_T_5 + ? {instInfoReg_bits_vectorDecode_veuFun == 6'h23 + ? 57'h0 + : {57{valueToExec_vs2Out[7]}}, + valueToExec_vs2Out[7:0]} + : _GEN_0; + wire [127:0] _GEN_5 = + {{63{_execResult_multiplyRes_T_5[64]}}, _execResult_multiplyRes_T_5} + * {{63{_execResult_vs1ForMult_T_49[64]}}, _execResult_vs1ForMult_T_49}; + wire [63:0] execResult_32 = + _execResult_multiplyResHighBits_T_11 + ? _GEN_5[63:0] + : {32'h0, + _execResult_multiplyResHighBits_T_9 + ? _GEN_5[31:0] + : {16'h0, + _execResult_multiplyResHighBits_T_7 ? _GEN_5[15:0] : {8'h0, _GEN_5[7:0]}}}; + wire [63:0] execResult_35 = + _execResult_multiplyResHighBits_T_11 + ? _GEN_5[127:64] + : {32'h0, + _execResult_multiplyResHighBits_T_9 + ? _GEN_5[63:32] + : {16'h0, + _execResult_multiplyResHighBits_T_7 + ? _GEN_5[31:16] + : {8'h0, _GEN_5[15:8]}}}; + wire [63:0] _GEN_6 = 64'h0 - _GEN_5[63:0]; + wire [63:0] _GEN_7 = + instInfoReg_bits_vectorDecode_veuFun == 6'h28 + ? _GEN_6 + valueToExec_vs2Out + : instInfoReg_bits_vectorDecode_veuFun == 6'h27 + ? _GEN_5[63:0] + valueToExec_vs2Out + : instInfoReg_bits_vectorDecode_veuFun == 6'h26 + ? _GEN_6 + io_readVrf_resp_vdOut + : instInfoReg_bits_vectorDecode_veuFun == 6'h25 + ? _GEN_5[63:0] + io_readVrf_resp_vdOut + : execResult_32 + io_readVrf_resp_vdOut; + wire execResult_7 = valueToExec_vs2Out == valueToExec_vs1Out; + wire execResult_9 = valueToExec_vs2Out < valueToExec_vs1Out; + wire execResult_13 = valueToExec_vs2Out > valueToExec_vs1Out; + wire [63:0] execResult_21 = valueToExec_vs2Out & valueToExec_vs1Out; + wire [63:0] execResult_22 = valueToExec_vs2Out | valueToExec_vs1Out; + wire [63:0] execResult_23 = valueToExec_vs2Out ^ valueToExec_vs1Out; + wire execResult_24 = valueToExec_vs2Out[0] & valueToExec_vs1Out[0]; + wire execResult_27 = valueToExec_vs2Out[0] ^ valueToExec_vs1Out[0]; + wire execResult_28 = valueToExec_vs2Out[0] | valueToExec_vs1Out[0]; + wire [7:0] _GEN_8 = {5'h0, idx[2:0]}; + wire [7:0] _valueToExec_vs1Out_T_4 = execValue1[7:0] >> _GEN_8; + assign valueToExec_vs1Out = + instInfoReg_bits_vectorDecode_vSource == 3'h3 + ? {63'h0, _valueToExec_vs1Out_T_4[0]} + : ~(instInfoReg_bits_vectorDecode_veuFun == 6'h29 + | instInfoReg_bits_vectorDecode_veuFun == 6'h2A + | instInfoReg_bits_vectorDecode_veuFun == 6'h2B + | instInfoReg_bits_vectorDecode_veuFun == 6'h2C + | instInfoReg_bits_vectorDecode_veuFun == 6'h2D + | instInfoReg_bits_vectorDecode_veuFun == 6'h2E + | instInfoReg_bits_vectorDecode_veuFun == 6'h2F + | instInfoReg_bits_vectorDecode_veuFun == 6'h30) | idx == 5'h0 + ? execValue1 + : reductionAccumulator; + wire [7:0] _valueToExec_vs2Out_T_4 = io_readVrf_resp_vs2Out[7:0] >> _GEN_8; + assign valueToExec_vs2Out = + instInfoReg_bits_vectorDecode_vSource == 3'h3 + ? {63'h0, _valueToExec_vs2Out_T_4[0]} + : io_readVrf_resp_vs2Out; + assign valueToExec_vm = + ~((instInfoReg_bits_vectorDecode_veuFun == 6'h5 + | instInfoReg_bits_vectorDecode_veuFun == 6'h7) & instInfoReg_bits_vectorDecode_vm) + & io_readVrf_resp_vm; + wire [63:0][63:0] _GEN_9 = + {{64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {64'h0}, + {execResult_23}, + {execResult_22}, + {execResult_21}, + {$signed(valueToExec_vs2Out) < $signed(valueToExec_vs1Out) + ? valueToExec_vs2Out + : valueToExec_vs1Out}, + {execResult_9 ? valueToExec_vs2Out : valueToExec_vs1Out}, + {$signed(valueToExec_vs2Out) > $signed(valueToExec_vs1Out) + ? valueToExec_vs2Out + : valueToExec_vs1Out}, + {execResult_13 ? valueToExec_vs2Out : valueToExec_vs1Out}, + {_execResult_T_25[63:0]}, + {_GEN_7}, + {_GEN_7}, + {_GEN_7}, + {_GEN_7}, + {execResult_35}, + {execResult_35}, + {execResult_35}, + {execResult_32}, + {{63'h0, ~execResult_27}}, + {{63'h0, valueToExec_vs2Out[0] | ~(valueToExec_vs1Out[0])}}, + {{63'h0, ~execResult_28}}, + {{63'h0, execResult_28}}, + {{63'h0, execResult_27}}, + {{63'h0, valueToExec_vs2Out[0] & ~(valueToExec_vs1Out[0])}}, + {{63'h0, ~execResult_24}}, + {{63'h0, execResult_24}}, + {execResult_23}, + {execResult_22}, + {execResult_21}, + {valueToExec_vs1Out}, + {valueToExec_vm ? valueToExec_vs1Out : valueToExec_vs2Out}, + {$signed(valueToExec_vs2Out) > $signed(valueToExec_vs1Out) + ? valueToExec_vs2Out + : valueToExec_vs1Out}, + {execResult_13 ? valueToExec_vs2Out : valueToExec_vs1Out}, + {$signed(valueToExec_vs2Out) < $signed(valueToExec_vs1Out) + ? valueToExec_vs2Out + : valueToExec_vs1Out}, + {execResult_9 ? valueToExec_vs2Out : valueToExec_vs1Out}, + {{63'h0, $signed(valueToExec_vs2Out) > $signed(valueToExec_vs1Out)}}, + {{63'h0, execResult_13}}, + {{63'h0, $signed(valueToExec_vs2Out) <= $signed(valueToExec_vs1Out)}}, + {{63'h0, ~execResult_13}}, + {{63'h0, $signed(valueToExec_vs2Out) < $signed(valueToExec_vs1Out)}}, + {{63'h0, execResult_9}}, + {{63'h0, ~execResult_7}}, + {{63'h0, execResult_7}}, + {{63'h0, _GEN_4[64]}}, + {_GEN_4[63:0]}, + {{63'h0, _GEN_3[64]}}, + {_GEN_3[63:0]}, + {valueToExec_vs1Out - valueToExec_vs2Out}, + {_execResult_T_1[63:0]}, + {_execResult_T_25[63:0]}, + {64'h0}}; + wire [63:0] _GEN_10 = + (instInfoReg_bits_vectorDecode_veuFun == 6'h29 + | instInfoReg_bits_vectorDecode_veuFun == 6'h2A + | instInfoReg_bits_vectorDecode_veuFun == 6'h2B + | instInfoReg_bits_vectorDecode_veuFun == 6'h2C + | instInfoReg_bits_vectorDecode_veuFun == 6'h2D + | instInfoReg_bits_vectorDecode_veuFun == 6'h2E + | instInfoReg_bits_vectorDecode_veuFun == 6'h2F + | instInfoReg_bits_vectorDecode_veuFun == 6'h30) & ~instInfoReg_bits_vectorDecode_vm + & ~io_readVrf_resp_vm + ? reductionAccumulator + : _GEN_9[instInfoReg_bits_vectorDecode_veuFun]; + wire [7:0][7:0] _GEN_11 = + {{{_GEN_10[0], io_readVrf_resp_vdOut[6:0]}}, + {{io_readVrf_resp_vdOut[7], _GEN_10[0], io_readVrf_resp_vdOut[5:0]}}, + {{io_readVrf_resp_vdOut[7:6], _GEN_10[0], io_readVrf_resp_vdOut[4:0]}}, + {{io_readVrf_resp_vdOut[7:5], _GEN_10[0], io_readVrf_resp_vdOut[3:0]}}, + {{io_readVrf_resp_vdOut[7:4], _GEN_10[0], io_readVrf_resp_vdOut[2:0]}}, + {{io_readVrf_resp_vdOut[7:3], _GEN_10[0], io_readVrf_resp_vdOut[1:0]}}, + {{io_readVrf_resp_vdOut[7:2], _GEN_10[0], io_readVrf_resp_vdOut[0]}}, + {{io_readVrf_resp_vdOut[7:1], _GEN_10[0]}}}; + wire _io_dataOut_toVRF_bits_writeReq_T_63 = + instInfoReg_bits_vectorDecode_veuFun == 6'h29 + | instInfoReg_bits_vectorDecode_veuFun == 6'h2A + | instInfoReg_bits_vectorDecode_veuFun == 6'h2B + | instInfoReg_bits_vectorDecode_veuFun == 6'h2C + | instInfoReg_bits_vectorDecode_veuFun == 6'h2D + | instInfoReg_bits_vectorDecode_veuFun == 6'h2E + | instInfoReg_bits_vectorDecode_veuFun == 6'h2F + | instInfoReg_bits_vectorDecode_veuFun == 6'h30 + ? _io_dataOut_toVRF_bits_last_output + : instInfoReg_bits_vectorDecode_vm | io_readVrf_resp_vm + | instInfoReg_bits_vectorDecode_veuFun == 6'h4 + | instInfoReg_bits_vectorDecode_veuFun == 6'h5 + | instInfoReg_bits_vectorDecode_veuFun == 6'h6 + | instInfoReg_bits_vectorDecode_veuFun == 6'h7 + | instInfoReg_bits_vectorDecode_veuFun == 6'h14 + | instInfoReg_bits_vectorDecode_veuFun == 6'h19 + | instInfoReg_bits_vectorDecode_veuFun == 6'h1A + | instInfoReg_bits_vectorDecode_veuFun == 6'h1B + | instInfoReg_bits_vectorDecode_veuFun == 6'h1C + | instInfoReg_bits_vectorDecode_veuFun == 6'h1D + | instInfoReg_bits_vectorDecode_veuFun == 6'h1E + | instInfoReg_bits_vectorDecode_veuFun == 6'h1F + | instInfoReg_bits_vectorDecode_veuFun == 6'h20; + wire _T_33 = instInfoReg_bits_vectorDecode_veuFun == 6'h31; + wire _T_35 = instInfoReg_bits_vectorDecode_veuFun == 6'h32; + wire _GEN_12 = instInfoReg_valid & (_T_33 | _T_35); + assign _io_dataOut_toVRF_valid_output = _GEN_12 | instInfoReg_valid; + assign _io_dataOut_toVRF_bits_last_output = + _GEN_12 | {1'h0, idx} == instInfoReg_bits_vecConf_vl - 6'h1 & instInfoReg_valid; + assign _io_dataOut_toVRF_bits_writeReq_output = + instInfoReg_valid + ? ~_T_33 & (_T_35 | _io_dataOut_toVRF_bits_writeReq_T_63) + : _io_dataOut_toVRF_bits_writeReq_T_63; + wire _GEN_13 = _GEN_12 | _io_dataOut_toVRF_bits_last_output; + always @(posedge clock) begin + automatic logic _T_2; + _T_2 = io_signalIn_valid & _io_signalIn_ready_output; + if (reset) begin + instInfoReg_valid <= 1'h0; + idx <= 5'h0; + reductionAccumulator <= 64'h0; + executedNum <= 5'h0; + end + else begin + instInfoReg_valid <= _T_2 | ~_io_dataOut_toVRF_bits_last_output & instInfoReg_valid; + if (_T_2 | _io_dataOut_toVRF_bits_last_output | ~instInfoReg_valid) begin + idx <= 5'h0; + executedNum <= 5'h0; + end + else begin + idx <= idx + 5'h1; + executedNum <= + executedNum + + {4'h0, + _io_dataOut_toVRF_valid_output & _io_dataOut_toVRF_bits_writeReq_output}; + end + reductionAccumulator <= _GEN_10; + end + if (_T_2) begin + instInfoReg_bits_vs1 <= io_signalIn_bits_vs1; + instInfoReg_bits_vs2 <= io_signalIn_bits_vs2; + instInfoReg_bits_vd <= io_signalIn_bits_vd; + instInfoReg_bits_scalarVal <= io_signalIn_bits_scalarVal; + instInfoReg_bits_vectorDecode_veuFun <= io_signalIn_bits_vectorDecode_veuFun; + instInfoReg_bits_vectorDecode_vSource <= io_signalIn_bits_vectorDecode_vSource; + instInfoReg_bits_vectorDecode_vm <= io_signalIn_bits_vectorDecode_vm; + instInfoReg_bits_scalarDecode_branch <= io_signalIn_bits_scalarDecode_branch; + instInfoReg_bits_scalarDecode_writeback_selector <= + io_signalIn_bits_scalarDecode_writeback_selector; + instInfoReg_bits_scalarDecode_memory_function <= + io_signalIn_bits_scalarDecode_memory_function; + instInfoReg_bits_scalarDecode_csr_funct <= io_signalIn_bits_scalarDecode_csr_funct; + instInfoReg_bits_scalarDecode_fence <= io_signalIn_bits_scalarDecode_fence; + instInfoReg_bits_vecConf_vtype_vsew <= io_signalIn_bits_vecConf_vtype_vsew; + instInfoReg_bits_vecConf_vl <= io_signalIn_bits_vecConf_vl; + instInfoReg_bits_pc_addr <= io_signalIn_bits_pc_addr; + end + end // always @(posedge) + assign io_signalIn_ready = _io_signalIn_ready_output; + assign io_readVrf_req_sew = + instInfoReg_bits_vectorDecode_vSource == 3'h3 + ? 3'h0 + : instInfoReg_bits_vecConf_vtype_vsew; + assign io_readVrf_req_readVdAsMaskSource = + (instInfoReg_bits_vectorDecode_veuFun == 6'h8 + | instInfoReg_bits_vectorDecode_veuFun == 6'h9 + | instInfoReg_bits_vectorDecode_veuFun == 6'hA + | instInfoReg_bits_vectorDecode_veuFun == 6'hB + | instInfoReg_bits_vectorDecode_veuFun == 6'hC + | instInfoReg_bits_vectorDecode_veuFun == 6'hD + | instInfoReg_bits_vectorDecode_veuFun == 6'hE + | instInfoReg_bits_vectorDecode_veuFun == 6'hF + | instInfoReg_bits_vectorDecode_veuFun == 6'h5 + | instInfoReg_bits_vectorDecode_veuFun == 6'h7 + | instInfoReg_bits_vectorDecode_veuFun == 6'h19 + | instInfoReg_bits_vectorDecode_veuFun == 6'h1A + | instInfoReg_bits_vectorDecode_veuFun == 6'h1B + | instInfoReg_bits_vectorDecode_veuFun == 6'h1C + | instInfoReg_bits_vectorDecode_veuFun == 6'h1D + | instInfoReg_bits_vectorDecode_veuFun == 6'h1E + | instInfoReg_bits_vectorDecode_veuFun == 6'h1F + | instInfoReg_bits_vectorDecode_veuFun == 6'h20) + & instInfoReg_bits_vectorDecode_vSource != 3'h3; + assign io_readVrf_req_idx = instInfoReg_bits_vectorDecode_vSource == 3'h3 ? _GEN : idx; + assign io_readVrf_req_vs1 = instInfoReg_bits_vs1; + assign io_readVrf_req_vs2 = instInfoReg_bits_vs2; + assign io_readVrf_req_vd = instInfoReg_bits_vd; + assign io_dataOut_toVRF_valid = _io_dataOut_toVRF_valid_output; + assign io_dataOut_toVRF_bits_vd = instInfoReg_bits_vd; + assign io_dataOut_toVRF_bits_vtype_vsew = + instInfoReg_bits_vectorDecode_veuFun == 6'h8 + | instInfoReg_bits_vectorDecode_veuFun == 6'h9 + | instInfoReg_bits_vectorDecode_veuFun == 6'hA + | instInfoReg_bits_vectorDecode_veuFun == 6'hB + | instInfoReg_bits_vectorDecode_veuFun == 6'hC + | instInfoReg_bits_vectorDecode_veuFun == 6'hD + | instInfoReg_bits_vectorDecode_veuFun == 6'hE + | instInfoReg_bits_vectorDecode_veuFun == 6'hF + | instInfoReg_bits_vectorDecode_veuFun == 6'h5 + | instInfoReg_bits_vectorDecode_veuFun == 6'h7 + | instInfoReg_bits_vectorDecode_veuFun == 6'h19 + | instInfoReg_bits_vectorDecode_veuFun == 6'h1A + | instInfoReg_bits_vectorDecode_veuFun == 6'h1B + | instInfoReg_bits_vectorDecode_veuFun == 6'h1C + | instInfoReg_bits_vectorDecode_veuFun == 6'h1D + | instInfoReg_bits_vectorDecode_veuFun == 6'h1E + | instInfoReg_bits_vectorDecode_veuFun == 6'h1F + | instInfoReg_bits_vectorDecode_veuFun == 6'h20 + ? 3'h0 + : instInfoReg_bits_vecConf_vtype_vsew; + assign io_dataOut_toVRF_bits_index = + instInfoReg_bits_vectorDecode_veuFun == 6'h29 + | instInfoReg_bits_vectorDecode_veuFun == 6'h2A + | instInfoReg_bits_vectorDecode_veuFun == 6'h2B + | instInfoReg_bits_vectorDecode_veuFun == 6'h2C + | instInfoReg_bits_vectorDecode_veuFun == 6'h2D + | instInfoReg_bits_vectorDecode_veuFun == 6'h2E + | instInfoReg_bits_vectorDecode_veuFun == 6'h2F + | instInfoReg_bits_vectorDecode_veuFun == 6'h30 + ? 5'h0 + : instInfoReg_bits_vectorDecode_veuFun == 6'h8 + | instInfoReg_bits_vectorDecode_veuFun == 6'h9 + | instInfoReg_bits_vectorDecode_veuFun == 6'hA + | instInfoReg_bits_vectorDecode_veuFun == 6'hB + | instInfoReg_bits_vectorDecode_veuFun == 6'hC + | instInfoReg_bits_vectorDecode_veuFun == 6'hD + | instInfoReg_bits_vectorDecode_veuFun == 6'hE + | instInfoReg_bits_vectorDecode_veuFun == 6'hF + | instInfoReg_bits_vectorDecode_veuFun == 6'h5 + | instInfoReg_bits_vectorDecode_veuFun == 6'h7 + | instInfoReg_bits_vectorDecode_veuFun == 6'h19 + | instInfoReg_bits_vectorDecode_veuFun == 6'h1A + | instInfoReg_bits_vectorDecode_veuFun == 6'h1B + | instInfoReg_bits_vectorDecode_veuFun == 6'h1C + | instInfoReg_bits_vectorDecode_veuFun == 6'h1D + | instInfoReg_bits_vectorDecode_veuFun == 6'h1E + | instInfoReg_bits_vectorDecode_veuFun == 6'h1F + | instInfoReg_bits_vectorDecode_veuFun == 6'h20 + ? _GEN + : idx; + assign io_dataOut_toVRF_bits_last = _io_dataOut_toVRF_bits_last_output; + assign io_dataOut_toVRF_bits_data = + ~instInfoReg_valid | _T_33 | ~_T_35 + ? (instInfoReg_bits_vectorDecode_veuFun == 6'h8 + | instInfoReg_bits_vectorDecode_veuFun == 6'h9 + | instInfoReg_bits_vectorDecode_veuFun == 6'hA + | instInfoReg_bits_vectorDecode_veuFun == 6'hB + | instInfoReg_bits_vectorDecode_veuFun == 6'hC + | instInfoReg_bits_vectorDecode_veuFun == 6'hD + | instInfoReg_bits_vectorDecode_veuFun == 6'hE + | instInfoReg_bits_vectorDecode_veuFun == 6'hF + | instInfoReg_bits_vectorDecode_veuFun == 6'h5 + | instInfoReg_bits_vectorDecode_veuFun == 6'h7 + | instInfoReg_bits_vectorDecode_veuFun == 6'h19 + | instInfoReg_bits_vectorDecode_veuFun == 6'h1A + | instInfoReg_bits_vectorDecode_veuFun == 6'h1B + | instInfoReg_bits_vectorDecode_veuFun == 6'h1C + | instInfoReg_bits_vectorDecode_veuFun == 6'h1D + | instInfoReg_bits_vectorDecode_veuFun == 6'h1E + | instInfoReg_bits_vectorDecode_veuFun == 6'h1F + | instInfoReg_bits_vectorDecode_veuFun == 6'h20 + ? {56'h0, _GEN_11[idx[2:0]]} + : _GEN_10) + : instInfoReg_bits_scalarVal; + assign io_dataOut_toVRF_bits_vm = + instInfoReg_bits_vectorDecode_veuFun == 6'h8 + | instInfoReg_bits_vectorDecode_veuFun == 6'h9 + | instInfoReg_bits_vectorDecode_veuFun == 6'hA + | instInfoReg_bits_vectorDecode_veuFun == 6'hB + | instInfoReg_bits_vectorDecode_veuFun == 6'hC + | instInfoReg_bits_vectorDecode_veuFun == 6'hD + | instInfoReg_bits_vectorDecode_veuFun == 6'hE + | instInfoReg_bits_vectorDecode_veuFun == 6'hF + | instInfoReg_bits_vectorDecode_veuFun == 6'h5 + | instInfoReg_bits_vectorDecode_veuFun == 6'h7 + | instInfoReg_bits_vectorDecode_veuFun == 6'h19 + | instInfoReg_bits_vectorDecode_veuFun == 6'h1A + | instInfoReg_bits_vectorDecode_veuFun == 6'h1B + | instInfoReg_bits_vectorDecode_veuFun == 6'h1C + | instInfoReg_bits_vectorDecode_veuFun == 6'h1D + | instInfoReg_bits_vectorDecode_veuFun == 6'h1E + | instInfoReg_bits_vectorDecode_veuFun == 6'h1F + | instInfoReg_bits_vectorDecode_veuFun == 6'h20; + assign io_dataOut_toVRF_bits_writeReq = _io_dataOut_toVRF_bits_writeReq_output; + assign io_toExWbReg_valid = _GEN_13; + assign io_toExWbReg_bits_dataSignals_pc_addr = instInfoReg_bits_pc_addr; + assign io_toExWbReg_bits_dataSignals_exResult = io_readVrf_resp_vs2Out; + assign io_toExWbReg_bits_ctrlSignals_decode_branch = + instInfoReg_bits_scalarDecode_branch; + assign io_toExWbReg_bits_ctrlSignals_decode_writeback_selector = + instInfoReg_bits_scalarDecode_writeback_selector; + assign io_toExWbReg_bits_ctrlSignals_decode_memory_function = + instInfoReg_bits_scalarDecode_memory_function; + assign io_toExWbReg_bits_ctrlSignals_decode_csr_funct = + instInfoReg_bits_scalarDecode_csr_funct; + assign io_toExWbReg_bits_ctrlSignals_decode_fence = instInfoReg_bits_scalarDecode_fence; + assign io_toExWbReg_bits_ctrlSignals_rd_index = + instInfoReg_valid & _T_33 ? instInfoReg_bits_vd : 5'h0; + assign io_toExWbReg_bits_vectorExecNum_valid = _GEN_13; + assign io_toExWbReg_bits_vectorExecNum_bits = + _GEN_12 + ? 5'h1 + : executedNum + + {4'h0, _io_dataOut_toVRF_valid_output & _io_dataOut_toVRF_bits_writeReq_output}; +endmodule + +module VectorCpu( + input clock, + reset, + io_frontend_resp_valid, + input [63:0] io_frontend_resp_bits_pc_addr, + input [31:0] io_frontend_resp_bits_inst_bits, + input io_frontend_resp_bits_exceptionSignals_valid, + input [63:0] io_frontend_resp_bits_exceptionSignals_bits, + input io_dcache_axi4lite_ar_ready, + io_dcache_axi4lite_aw_ready, + io_dcache_axi4lite_b_valid, + io_dcache_axi4lite_r_valid, + input [63:0] io_dcache_axi4lite_r_bits_data, + input io_dcache_axi4lite_w_ready, + input [63:0] io_hartid, + output io_frontend_req_valid, + output [63:0] io_frontend_req_bits_pc, + output io_frontend_resp_ready, + io_dcache_axi4lite_ar_valid, + output [63:0] io_dcache_axi4lite_ar_bits_addr, + output io_dcache_axi4lite_aw_valid, + output [63:0] io_dcache_axi4lite_aw_bits_addr, + output io_dcache_axi4lite_w_valid, + output [63:0] io_dcache_axi4lite_w_bits_data, + output [7:0] io_dcache_axi4lite_w_bits_strb +); + + wire _sysInst_in_pipeline_T_13; + wire _sysInst_in_pipeline_T_6; + wire _bypassingUnit_io_WB_in_valid_T_2; + wire _bypassingUnit_io_WB_in_bits_rd_valid_T_4; + wire WB_pc_redirect; + wire EX_stall; + wire _bypassingUnit_io_EX_in_bits_rd_valid_T_31; + wire ID_flush; + wire _vrfReadyTable_io_vmCheck_valid_T_4; + wire _vrfReadyTable_io_vdCheck_valid_T_2; + wire _vrfReadyTable_io_vs2Check_valid_T_8; + wire _vrfReadyTable_io_vs1Check_valid_T_8; + wire rs2_required_but_not_valid; + wire rs1_required_but_not_valid; + wire _vecAluExecUnit_1_io_signalIn_ready; + wire [2:0] _vecAluExecUnit_1_io_readVrf_req_sew; + wire _vecAluExecUnit_1_io_readVrf_req_readVdAsMaskSource; + wire [4:0] _vecAluExecUnit_1_io_readVrf_req_idx; + wire [4:0] _vecAluExecUnit_1_io_readVrf_req_vs1; + wire [4:0] _vecAluExecUnit_1_io_readVrf_req_vs2; + wire [4:0] _vecAluExecUnit_1_io_readVrf_req_vd; + wire _vecAluExecUnit_1_io_dataOut_toVRF_valid; + wire [4:0] _vecAluExecUnit_1_io_dataOut_toVRF_bits_vd; + wire [2:0] _vecAluExecUnit_1_io_dataOut_toVRF_bits_vtype_vsew; + wire [4:0] _vecAluExecUnit_1_io_dataOut_toVRF_bits_index; + wire _vecAluExecUnit_1_io_dataOut_toVRF_bits_last; + wire [63:0] _vecAluExecUnit_1_io_dataOut_toVRF_bits_data; + wire _vecAluExecUnit_1_io_dataOut_toVRF_bits_vm; + wire _vecAluExecUnit_1_io_dataOut_toVRF_bits_writeReq; + wire _vecAluExecUnit_1_io_toExWbReg_valid; + wire [63:0] _vecAluExecUnit_1_io_toExWbReg_bits_dataSignals_pc_addr; + wire [63:0] _vecAluExecUnit_1_io_toExWbReg_bits_dataSignals_exResult; + wire [3:0] _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_branch; + wire [2:0] + _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_writeback_selector; + wire [1:0] _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_memory_function; + wire [2:0] _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_csr_funct; + wire _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_fence; + wire [4:0] _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_rd_index; + wire _vecAluExecUnit_1_io_toExWbReg_bits_vectorExecNum_valid; + wire [4:0] _vecAluExecUnit_1_io_toExWbReg_bits_vectorExecNum_bits; + wire _vecAluExecUnit_0_io_signalIn_ready; + wire [2:0] _vecAluExecUnit_0_io_readVrf_req_sew; + wire _vecAluExecUnit_0_io_readVrf_req_readVdAsMaskSource; + wire [4:0] _vecAluExecUnit_0_io_readVrf_req_idx; + wire [4:0] _vecAluExecUnit_0_io_readVrf_req_vs1; + wire [4:0] _vecAluExecUnit_0_io_readVrf_req_vs2; + wire [4:0] _vecAluExecUnit_0_io_readVrf_req_vd; + wire _vecAluExecUnit_0_io_dataOut_toVRF_valid; + wire [4:0] _vecAluExecUnit_0_io_dataOut_toVRF_bits_vd; + wire [2:0] _vecAluExecUnit_0_io_dataOut_toVRF_bits_vtype_vsew; + wire [4:0] _vecAluExecUnit_0_io_dataOut_toVRF_bits_index; + wire _vecAluExecUnit_0_io_dataOut_toVRF_bits_last; + wire [63:0] _vecAluExecUnit_0_io_dataOut_toVRF_bits_data; + wire _vecAluExecUnit_0_io_dataOut_toVRF_bits_vm; + wire _vecAluExecUnit_0_io_dataOut_toVRF_bits_writeReq; + wire _vecAluExecUnit_0_io_toExWbReg_valid; + wire [63:0] _vecAluExecUnit_0_io_toExWbReg_bits_dataSignals_pc_addr; + wire [63:0] _vecAluExecUnit_0_io_toExWbReg_bits_dataSignals_exResult; + wire [3:0] _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_branch; + wire [2:0] + _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_writeback_selector; + wire [1:0] _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_memory_function; + wire [2:0] _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_csr_funct; + wire _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_fence; + wire [4:0] _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_rd_index; + wire _vecAluExecUnit_0_io_toExWbReg_bits_vectorExecNum_valid; + wire [4:0] _vecAluExecUnit_0_io_toExWbReg_bits_vectorExecNum_bits; + wire _vrfReadyTable_io_vs1Check_ready; + wire _vrfReadyTable_io_vs2Check_ready; + wire _vrfReadyTable_io_vdCheck_ready; + wire _vrfReadyTable_io_vmCheck_ready; + wire [63:0] _vecRegFile_io_readReq_0_resp_vs2Out; + wire [63:0] _vecRegFile_io_readReq_0_resp_vdOut; + wire _vecRegFile_io_readReq_0_resp_vm; + wire [63:0] _vecRegFile_io_readReq_1_resp_vs1Out; + wire [63:0] _vecRegFile_io_readReq_1_resp_vs2Out; + wire [63:0] _vecRegFile_io_readReq_1_resp_vdOut; + wire _vecRegFile_io_readReq_1_resp_vm; + wire [63:0] _vecRegFile_io_readReq_2_resp_vs1Out; + wire [63:0] _vecRegFile_io_readReq_2_resp_vs2Out; + wire [63:0] _vecRegFile_io_readReq_2_resp_vdOut; + wire _vecRegFile_io_readReq_2_resp_vm; + wire _vecCtrlUnit_io_resp_valid; + wire _vecCtrlUnit_io_resp_bits_vtype_vill; + wire _vecCtrlUnit_io_resp_bits_vtype_vma; + wire _vecCtrlUnit_io_resp_bits_vtype_vta; + wire [2:0] _vecCtrlUnit_io_resp_bits_vtype_vsew; + wire [2:0] _vecCtrlUnit_io_resp_bits_vtype_vlmul; + wire [5:0] _vecCtrlUnit_io_resp_bits_vl; + wire _vectorDecoder_io_out_isConfsetInst; + wire [1:0] _vectorDecoder_io_out_avl_sel; + wire [1:0] _vectorDecoder_io_out_vtype_sel; + wire [2:0] _vectorDecoder_io_out_mop; + wire [5:0] _vectorDecoder_io_out_veuFun; + wire [2:0] _vectorDecoder_io_out_vSource; + wire _vectorDecoder_io_out_vm; + wire _multiplier_io_resp_valid; + wire [63:0] _multiplier_io_resp_bits; + wire [63:0] _csrUnit_io_resp_data; + wire _vectorLdstUnit_io_signalIn_ready; + wire [2:0] _vectorLdstUnit_io_readVrf_req_sew; + wire [4:0] _vectorLdstUnit_io_readVrf_req_idx; + wire [4:0] _vectorLdstUnit_io_readVrf_req_vs2; + wire [4:0] _vectorLdstUnit_io_readVrf_req_vd; + wire _vectorLdstUnit_io_scalarResp_valid; + wire [63:0] _vectorLdstUnit_io_scalarResp_bits_data; + wire _vectorLdstUnit_io_vectorResp_toVRF_valid; + wire [4:0] _vectorLdstUnit_io_vectorResp_toVRF_bits_vd; + wire [2:0] _vectorLdstUnit_io_vectorResp_toVRF_bits_vtype_vsew; + wire [4:0] _vectorLdstUnit_io_vectorResp_toVRF_bits_index; + wire _vectorLdstUnit_io_vectorResp_toVRF_bits_last; + wire [63:0] _vectorLdstUnit_io_vectorResp_toVRF_bits_data; + wire _vectorLdstUnit_io_vectorResp_toVRF_bits_writeReq; + wire _vectorLdstUnit_io_toExWbReg_valid; + wire [63:0] _vectorLdstUnit_io_toExWbReg_bits_dataSignals_pc_addr; + wire [3:0] _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_branch; + wire [2:0] + _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_writeback_selector; + wire [1:0] _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_memory_function; + wire [2:0] _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_csr_funct; + wire _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_fence; + wire [4:0] _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_rd_index; + wire _vectorLdstUnit_io_toExWbReg_bits_vectorExecNum_valid; + wire [4:0] _vectorLdstUnit_io_toExWbReg_bits_vectorExecNum_bits; + wire _bypassingUnit_io_ID_out_rs1_value_valid; + wire [63:0] _bypassingUnit_io_ID_out_rs1_value_bits; + wire _bypassingUnit_io_ID_out_rs1_bypassMatchAtEX; + wire _bypassingUnit_io_ID_out_rs1_bypassMatchAtWB; + wire _bypassingUnit_io_ID_out_rs2_value_valid; + wire [63:0] _bypassingUnit_io_ID_out_rs2_value_bits; + wire _bypassingUnit_io_ID_out_rs2_bypassMatchAtEX; + wire _bypassingUnit_io_ID_out_rs2_bypassMatchAtWB; + wire _branch_evaluator_io_out_valid; + wire [63:0] _branch_evaluator_io_out_bits_pc; + wire [63:0] _alu_io_out; + wire [63:0] _rf_io_rs1_out; + wire [63:0] _rf_io_rs2_out; + wire _branch_predictor_io_out_valid; + wire [63:0] _branch_predictor_io_out_bits_pc; + wire _decoder_io_out_valid; + wire [3:0] _decoder_io_out_bits_branch; + wire [1:0] _decoder_io_out_bits_value1; + wire [2:0] _decoder_io_out_bits_value2; + wire [3:0] _decoder_io_out_bits_arithmetic_funct; + wire _decoder_io_out_bits_alu_flag; + wire _decoder_io_out_bits_op32; + wire [2:0] _decoder_io_out_bits_writeback_selector; + wire [1:0] _decoder_io_out_bits_memory_function; + wire [1:0] _decoder_io_out_bits_memory_length; + wire _decoder_io_out_bits_mem_sext; + wire [2:0] _decoder_io_out_bits_csr_funct; + wire _decoder_io_out_bits_fence; + wire _decoder_io_out_bits_vector; + reg cpu_operating; + reg ID_EX_REG_valid; + reg [63:0] ID_EX_REG_bits_dataSignals_pc_addr; + reg [63:0] ID_EX_REG_bits_dataSignals_bp_destPC; + reg ID_EX_REG_bits_dataSignals_bp_taken; + reg [63:0] ID_EX_REG_bits_dataSignals_imm; + reg [63:0] ID_EX_REG_bits_dataSignals_rs1; + reg [63:0] ID_EX_REG_bits_dataSignals_rs2; + reg [11:0] ID_EX_REG_bits_dataSignals_zimm; + reg [3:0] ID_EX_REG_bits_ctrlSignals_decode_branch; + reg [1:0] ID_EX_REG_bits_ctrlSignals_decode_value1; + reg [2:0] ID_EX_REG_bits_ctrlSignals_decode_value2; + reg [3:0] ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct; + reg ID_EX_REG_bits_ctrlSignals_decode_alu_flag; + reg ID_EX_REG_bits_ctrlSignals_decode_op32; + reg [2:0] ID_EX_REG_bits_ctrlSignals_decode_writeback_selector; + reg [1:0] ID_EX_REG_bits_ctrlSignals_decode_memory_function; + reg [2:0] ID_EX_REG_bits_ctrlSignals_decode_csr_funct; + reg ID_EX_REG_bits_ctrlSignals_decode_fence; + reg ID_EX_REG_bits_ctrlSignals_decode_vector; + reg [4:0] ID_EX_REG_bits_ctrlSignals_rd_index; + reg ID_EX_REG_bits_exceptionSignals_valid; + reg [63:0] ID_EX_REG_bits_exceptionSignals_bits; + reg ID_EX_REG_bits_vectorCtrlSignals_isConfsetInst; + reg [1:0] ID_EX_REG_bits_vectorCtrlSignals_avl_sel; + reg [1:0] ID_EX_REG_bits_vectorCtrlSignals_vtype_sel; + reg [5:0] ID_EX_REG_bits_vectorCtrlSignals_veuFun; + reg EX_WB_REG_valid; + reg [63:0] EX_WB_REG_bits_dataSignals_pc_addr; + reg [63:0] EX_WB_REG_bits_dataSignals_exResult; + reg [63:0] EX_WB_REG_bits_dataSignals_datatoCSR; + reg [11:0] EX_WB_REG_bits_dataSignals_csr_addr; + reg [3:0] EX_WB_REG_bits_ctrlSignals_decode_branch; + reg [2:0] EX_WB_REG_bits_ctrlSignals_decode_writeback_selector; + reg [1:0] EX_WB_REG_bits_ctrlSignals_decode_memory_function; + reg [2:0] EX_WB_REG_bits_ctrlSignals_decode_csr_funct; + reg EX_WB_REG_bits_ctrlSignals_decode_fence; + reg [4:0] EX_WB_REG_bits_ctrlSignals_rd_index; + reg EX_WB_REG_bits_exceptionSignals_valid; + reg [63:0] EX_WB_REG_bits_exceptionSignals_bits; + reg EX_WB_REG_bits_vectorCsrPorts_vtype_vill; + reg EX_WB_REG_bits_vectorCsrPorts_vtype_vma; + reg EX_WB_REG_bits_vectorCsrPorts_vtype_vta; + reg [2:0] EX_WB_REG_bits_vectorCsrPorts_vtype_vsew; + reg [2:0] EX_WB_REG_bits_vectorCsrPorts_vtype_vlmul; + reg [5:0] EX_WB_REG_bits_vectorCsrPorts_vl; + reg EX_WB_REG_bits_vectorExecNum_valid; + reg [4:0] EX_WB_REG_bits_vectorExecNum_bits; + wire _T_34 = _decoder_io_out_valid & _decoder_io_out_bits_vector; + wire ID_stall = + ~ID_flush + & (ID_EX_REG_valid & EX_stall | rs1_required_but_not_valid + | rs2_required_but_not_valid | _sysInst_in_pipeline_T_6 | _sysInst_in_pipeline_T_13 + | ~((~_vrfReadyTable_io_vs1Check_valid_T_8 | _vrfReadyTable_io_vs1Check_ready) + & (~_vrfReadyTable_io_vs2Check_valid_T_8 | _vrfReadyTable_io_vs2Check_ready) + & (~_vrfReadyTable_io_vdCheck_valid_T_2 | _vrfReadyTable_io_vdCheck_ready) + & (~_vrfReadyTable_io_vmCheck_valid_T_4 | _vrfReadyTable_io_vmCheck_ready) + & (~(_T_34 & ~_vectorDecoder_io_out_isConfsetInst + & (|_vectorDecoder_io_out_mop)) | _vectorLdstUnit_io_signalIn_ready) + & (~(_T_34 & ~_vectorDecoder_io_out_isConfsetInst + & ~(|_vectorDecoder_io_out_mop)) | _vecAluExecUnit_0_io_signalIn_ready + | _vecAluExecUnit_1_io_signalIn_ready)) + | ~(_vectorLdstUnit_io_signalIn_ready & _vecAluExecUnit_0_io_signalIn_ready + & _vecAluExecUnit_1_io_signalIn_ready) & _decoder_io_out_valid + & (~_decoder_io_out_bits_vector | _vectorDecoder_io_out_isConfsetInst + | _vectorDecoder_io_out_veuFun == 6'h31 + | _vectorDecoder_io_out_veuFun == 6'h32)); + wire _io_frontend_resp_ready_output = cpu_operating & ~ID_stall; + wire _io_frontend_req_valid_T = + _branch_evaluator_io_out_valid & ID_EX_REG_valid; + wire ID_inst_valid = + io_frontend_resp_valid & _io_frontend_resp_ready_output; + wire [63:0] rs1ValueToEX = + _bypassingUnit_io_ID_out_rs1_value_valid + ? _bypassingUnit_io_ID_out_rs1_value_bits + : _rf_io_rs1_out; + assign rs1_required_but_not_valid = + _bypassingUnit_io_ID_out_rs1_bypassMatchAtEX + ? ~_bypassingUnit_io_EX_in_bits_rd_valid_T_31 + : _bypassingUnit_io_ID_out_rs1_bypassMatchAtWB + & ~_bypassingUnit_io_WB_in_bits_rd_valid_T_4; + assign rs2_required_but_not_valid = + _bypassingUnit_io_ID_out_rs2_bypassMatchAtEX + ? ~_bypassingUnit_io_EX_in_bits_rd_valid_T_31 + : _bypassingUnit_io_ID_out_rs2_bypassMatchAtWB + & ~_bypassingUnit_io_WB_in_bits_rd_valid_T_4; + wire [2:0] vecConfBypass_vtype_vsew = + _vecCtrlUnit_io_resp_valid + ? _vecCtrlUnit_io_resp_bits_vtype_vsew + : EX_WB_REG_bits_vectorCsrPorts_vtype_vsew; + wire [5:0] vecConfBypass_vl = + _vecCtrlUnit_io_resp_valid + ? _vecCtrlUnit_io_resp_bits_vl + : EX_WB_REG_bits_vectorCsrPorts_vl; + assign _vrfReadyTable_io_vs1Check_valid_T_8 = + _T_34 & ~_vectorDecoder_io_out_isConfsetInst & ~(|_vectorDecoder_io_out_mop) + & _vectorDecoder_io_out_vSource == 3'h0; + assign _vrfReadyTable_io_vs2Check_valid_T_8 = + _T_34 & ~_vectorDecoder_io_out_isConfsetInst + & (~(|_vectorDecoder_io_out_mop) | _vectorDecoder_io_out_mop == 3'h4); + assign _vrfReadyTable_io_vdCheck_valid_T_2 = + _T_34 & ~_vectorDecoder_io_out_isConfsetInst; + assign _vrfReadyTable_io_vmCheck_valid_T_4 = + _T_34 & ~_vectorDecoder_io_out_isConfsetInst & ~_vectorDecoder_io_out_vm; + wire _T_17 = ID_flush | ID_stall; + wire _T_9 = + io_frontend_resp_valid & _decoder_io_out_valid & _decoder_io_out_bits_vector + & ~_vectorDecoder_io_out_isConfsetInst & ~(|_vectorDecoder_io_out_mop); + wire _T_14 = + _vecAluExecUnit_1_io_signalIn_ready & ~_vecAluExecUnit_0_io_signalIn_ready; + `ifndef SYNTHESIS + always @(posedge clock) begin + automatic logic _GEN = ~_T_17 & _T_9; + if ((`PRINTF_COND_) & _GEN & _vecAluExecUnit_0_io_signalIn_ready & ~reset) + $fwrite(32'h80000002, "vecAluExecUnit%d valid\n", 1'h0); + if ((`PRINTF_COND_) & _GEN & _T_14 & ~reset) + $fwrite(32'h80000002, "vecAluExecUnit%d valid\n", 1'h1); + end // always @(posedge) + `endif // not def SYNTHESIS + wire _T_26 = io_frontend_resp_valid & _decoder_io_out_valid; + wire _T_25 = + _T_26 & _decoder_io_out_bits_vector & ~_vectorDecoder_io_out_isConfsetInst + & (|_vectorDecoder_io_out_mop) & _vectorLdstUnit_io_signalIn_ready; + assign ID_flush = WB_pc_redirect | _branch_evaluator_io_out_valid; + reg multiplier_hasValue; + wire _exScalarRes_T_10 = + ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'h9 + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hA + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hB + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hC; + wire _exVectorRes_T_4 = + ID_EX_REG_bits_vectorCtrlSignals_veuFun == 6'h31 + | ID_EX_REG_bits_vectorCtrlSignals_veuFun == 6'h32; + wire [63:0] _GEN_0 = {58'h0, _vecCtrlUnit_io_resp_bits_vl}; + assign _bypassingUnit_io_EX_in_bits_rd_valid_T_31 = + (ID_EX_REG_bits_ctrlSignals_decode_writeback_selector == 3'h5 + | ~(ID_EX_REG_bits_ctrlSignals_decode_writeback_selector == 3'h0 + | ID_EX_REG_bits_ctrlSignals_decode_writeback_selector == 3'h4 + | ID_EX_REG_bits_ctrlSignals_decode_writeback_selector == 3'h3) + & (ID_EX_REG_bits_ctrlSignals_decode_writeback_selector == 3'h2 + ? ~(ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'h9 + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hA + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hB + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hC) + | _multiplier_io_resp_valid + : ID_EX_REG_bits_ctrlSignals_decode_writeback_selector == 3'h1)) + & ID_EX_REG_valid; + assign EX_stall = + ID_EX_REG_valid + & (ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'h9 + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hA + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hB + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hC) + & ~_multiplier_io_resp_valid; + assign WB_pc_redirect = + EX_WB_REG_valid + & (EX_WB_REG_bits_ctrlSignals_decode_branch == 4'hA + | EX_WB_REG_bits_ctrlSignals_decode_branch == 4'h9); + wire WB_inst_can_retire = + EX_WB_REG_valid & ~EX_WB_REG_bits_exceptionSignals_valid; + wire [7:0][63:0] _GEN_1 = + {{64'h0}, + {64'h0}, + {EX_WB_REG_bits_dataSignals_exResult}, + {_vectorLdstUnit_io_scalarResp_bits_data}, + {_csrUnit_io_resp_data}, + {EX_WB_REG_bits_dataSignals_exResult}, + {EX_WB_REG_bits_dataSignals_pc_addr + 64'h4}, + {64'h0}}; + wire [63:0] _rf_io_req_bits_data_T_16 = + _GEN_1[EX_WB_REG_bits_ctrlSignals_decode_writeback_selector]; + assign _bypassingUnit_io_WB_in_bits_rd_valid_T_4 = + _bypassingUnit_io_WB_in_valid_T_2 + & (EX_WB_REG_bits_ctrlSignals_decode_memory_function != 2'h1 + | _vectorLdstUnit_io_scalarResp_valid); + assign _bypassingUnit_io_WB_in_valid_T_2 = + (|EX_WB_REG_bits_ctrlSignals_decode_writeback_selector) & WB_inst_can_retire; + assign _sysInst_in_pipeline_T_6 = + ID_EX_REG_valid + & (ID_EX_REG_bits_ctrlSignals_decode_fence + | ID_EX_REG_bits_ctrlSignals_decode_branch == 4'h9 + | ID_EX_REG_bits_ctrlSignals_decode_branch == 4'hA); + assign _sysInst_in_pipeline_T_13 = + EX_WB_REG_valid + & (EX_WB_REG_bits_ctrlSignals_decode_fence + | EX_WB_REG_bits_ctrlSignals_decode_branch == 4'h9 + | EX_WB_REG_bits_ctrlSignals_decode_branch == 4'hA); + always @(posedge clock) begin + automatic logic _GEN_2 = + _vectorLdstUnit_io_toExWbReg_valid | _vecAluExecUnit_1_io_toExWbReg_valid + | _vecAluExecUnit_0_io_toExWbReg_valid; + if (reset) begin + cpu_operating <= 1'h0; + ID_EX_REG_valid <= 1'h0; + EX_WB_REG_valid <= 1'h0; + multiplier_hasValue <= 1'h0; + end + else begin + cpu_operating <= ~reset | cpu_operating; + ID_EX_REG_valid <= ~ID_flush & (EX_stall ? ID_EX_REG_valid : ID_inst_valid); + EX_WB_REG_valid <= + ~WB_pc_redirect + & (_vectorLdstUnit_io_toExWbReg_valid + ? _vectorLdstUnit_io_toExWbReg_valid + : _vecAluExecUnit_1_io_toExWbReg_valid + ? _vecAluExecUnit_1_io_toExWbReg_valid + : _vecAluExecUnit_0_io_toExWbReg_valid + ? _vecAluExecUnit_0_io_toExWbReg_valid + : ID_EX_REG_valid + & (~(ID_EX_REG_bits_ctrlSignals_decode_memory_function == 2'h1 + | ID_EX_REG_bits_ctrlSignals_decode_memory_function == 2'h2) + | _vectorLdstUnit_io_signalIn_ready) + & (~(ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'h9 + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hA + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hB + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hC) + | _multiplier_io_resp_valid) + & (~ID_EX_REG_bits_ctrlSignals_decode_vector + | ID_EX_REG_bits_vectorCtrlSignals_isConfsetInst + | _vectorLdstUnit_io_toExWbReg_valid + | _vecAluExecUnit_0_io_toExWbReg_valid + | _vecAluExecUnit_1_io_toExWbReg_valid)); + multiplier_hasValue <= + (ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'h9 + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hA + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hB + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hC) & ID_EX_REG_valid + & ~_multiplier_io_resp_valid; + end + if (~EX_stall) begin + automatic logic ID_fetchException = + io_frontend_resp_bits_exceptionSignals_valid & ID_inst_valid; + automatic logic ID_illegal_instruction; + automatic logic ID_ecall; + ID_illegal_instruction = ~_decoder_io_out_valid & ID_inst_valid; + ID_ecall = + _decoder_io_out_valid & _decoder_io_out_bits_branch == 4'h9 & ID_inst_valid; + ID_EX_REG_bits_dataSignals_pc_addr <= io_frontend_resp_bits_pc_addr; + ID_EX_REG_bits_dataSignals_bp_destPC <= _branch_predictor_io_out_bits_pc; + ID_EX_REG_bits_dataSignals_bp_taken <= _branch_predictor_io_out_valid; + if (_decoder_io_out_bits_value1 == 2'h2) + ID_EX_REG_bits_dataSignals_imm <= + {{32{io_frontend_resp_bits_inst_bits[31]}}, + io_frontend_resp_bits_inst_bits[31:12], + 12'h0}; + else if (&_decoder_io_out_bits_value1) + ID_EX_REG_bits_dataSignals_imm <= {59'h0, io_frontend_resp_bits_inst_bits[19:15]}; + else if (_decoder_io_out_bits_value2 == 3'h2) + ID_EX_REG_bits_dataSignals_imm <= + {{52{io_frontend_resp_bits_inst_bits[31]}}, + io_frontend_resp_bits_inst_bits[31:20]}; + else if (_decoder_io_out_bits_value2 == 3'h3) + ID_EX_REG_bits_dataSignals_imm <= + {{52{io_frontend_resp_bits_inst_bits[31]}}, + io_frontend_resp_bits_inst_bits[31:25], + io_frontend_resp_bits_inst_bits[11:7]}; + else + ID_EX_REG_bits_dataSignals_imm <= 64'h0; + if (_bypassingUnit_io_ID_out_rs1_value_valid) + ID_EX_REG_bits_dataSignals_rs1 <= _bypassingUnit_io_ID_out_rs1_value_bits; + else + ID_EX_REG_bits_dataSignals_rs1 <= _rf_io_rs1_out; + if (_bypassingUnit_io_ID_out_rs2_value_valid) + ID_EX_REG_bits_dataSignals_rs2 <= _bypassingUnit_io_ID_out_rs2_value_bits; + else + ID_EX_REG_bits_dataSignals_rs2 <= _rf_io_rs2_out; + ID_EX_REG_bits_dataSignals_zimm <= io_frontend_resp_bits_inst_bits[31:20]; + ID_EX_REG_bits_ctrlSignals_decode_branch <= _decoder_io_out_bits_branch; + ID_EX_REG_bits_ctrlSignals_decode_value1 <= _decoder_io_out_bits_value1; + ID_EX_REG_bits_ctrlSignals_decode_value2 <= _decoder_io_out_bits_value2; + ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct <= + _decoder_io_out_bits_arithmetic_funct; + ID_EX_REG_bits_ctrlSignals_decode_alu_flag <= _decoder_io_out_bits_alu_flag; + ID_EX_REG_bits_ctrlSignals_decode_op32 <= _decoder_io_out_bits_op32; + ID_EX_REG_bits_ctrlSignals_decode_writeback_selector <= + _decoder_io_out_bits_writeback_selector; + ID_EX_REG_bits_ctrlSignals_decode_memory_function <= + _decoder_io_out_bits_memory_function; + ID_EX_REG_bits_ctrlSignals_decode_csr_funct <= _decoder_io_out_bits_csr_funct; + ID_EX_REG_bits_ctrlSignals_decode_fence <= _decoder_io_out_bits_fence; + ID_EX_REG_bits_ctrlSignals_decode_vector <= _decoder_io_out_bits_vector; + ID_EX_REG_bits_ctrlSignals_rd_index <= io_frontend_resp_bits_inst_bits[11:7]; + ID_EX_REG_bits_exceptionSignals_valid <= + ID_fetchException | ID_illegal_instruction | ID_ecall; + if (ID_fetchException) + ID_EX_REG_bits_exceptionSignals_bits <= + io_frontend_resp_bits_exceptionSignals_bits; + else + ID_EX_REG_bits_exceptionSignals_bits <= + {60'h0, ID_illegal_instruction ? 4'h2 : ID_ecall ? 4'hB : 4'h0}; + end + if (EX_stall | ~_T_34) begin + end + else begin + ID_EX_REG_bits_vectorCtrlSignals_isConfsetInst <= + _vectorDecoder_io_out_isConfsetInst; + ID_EX_REG_bits_vectorCtrlSignals_avl_sel <= _vectorDecoder_io_out_avl_sel; + ID_EX_REG_bits_vectorCtrlSignals_vtype_sel <= _vectorDecoder_io_out_vtype_sel; + ID_EX_REG_bits_vectorCtrlSignals_veuFun <= _vectorDecoder_io_out_veuFun; + end + if (_vectorLdstUnit_io_toExWbReg_valid) begin + EX_WB_REG_bits_dataSignals_pc_addr <= + _vectorLdstUnit_io_toExWbReg_bits_dataSignals_pc_addr; + EX_WB_REG_bits_dataSignals_exResult <= 64'h0; + EX_WB_REG_bits_ctrlSignals_decode_branch <= + _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_branch; + EX_WB_REG_bits_ctrlSignals_decode_writeback_selector <= + _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_writeback_selector; + EX_WB_REG_bits_ctrlSignals_decode_memory_function <= + _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_memory_function; + EX_WB_REG_bits_ctrlSignals_decode_csr_funct <= + _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_csr_funct; + EX_WB_REG_bits_ctrlSignals_decode_fence <= + _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_fence; + EX_WB_REG_bits_ctrlSignals_rd_index <= + _vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_rd_index; + EX_WB_REG_bits_vectorExecNum_valid <= + _vectorLdstUnit_io_toExWbReg_bits_vectorExecNum_valid; + EX_WB_REG_bits_vectorExecNum_bits <= + _vectorLdstUnit_io_toExWbReg_bits_vectorExecNum_bits; + end + else if (_vecAluExecUnit_1_io_toExWbReg_valid) begin + EX_WB_REG_bits_dataSignals_pc_addr <= + _vecAluExecUnit_1_io_toExWbReg_bits_dataSignals_pc_addr; + EX_WB_REG_bits_dataSignals_exResult <= + _vecAluExecUnit_1_io_toExWbReg_bits_dataSignals_exResult; + EX_WB_REG_bits_ctrlSignals_decode_branch <= + _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_branch; + EX_WB_REG_bits_ctrlSignals_decode_writeback_selector <= + _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_writeback_selector; + EX_WB_REG_bits_ctrlSignals_decode_memory_function <= + _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_memory_function; + EX_WB_REG_bits_ctrlSignals_decode_csr_funct <= + _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_csr_funct; + EX_WB_REG_bits_ctrlSignals_decode_fence <= + _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_fence; + EX_WB_REG_bits_ctrlSignals_rd_index <= + _vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_rd_index; + EX_WB_REG_bits_vectorExecNum_valid <= + _vecAluExecUnit_1_io_toExWbReg_bits_vectorExecNum_valid; + EX_WB_REG_bits_vectorExecNum_bits <= + _vecAluExecUnit_1_io_toExWbReg_bits_vectorExecNum_bits; + end + else begin + if (_vecAluExecUnit_0_io_toExWbReg_valid) begin + EX_WB_REG_bits_dataSignals_pc_addr <= + _vecAluExecUnit_0_io_toExWbReg_bits_dataSignals_pc_addr; + EX_WB_REG_bits_dataSignals_exResult <= + _vecAluExecUnit_0_io_toExWbReg_bits_dataSignals_exResult; + EX_WB_REG_bits_ctrlSignals_decode_branch <= + _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_branch; + EX_WB_REG_bits_ctrlSignals_decode_writeback_selector <= + _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_writeback_selector; + EX_WB_REG_bits_ctrlSignals_decode_memory_function <= + _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_memory_function; + EX_WB_REG_bits_ctrlSignals_decode_csr_funct <= + _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_csr_funct; + EX_WB_REG_bits_ctrlSignals_decode_fence <= + _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_fence; + EX_WB_REG_bits_ctrlSignals_rd_index <= + _vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_rd_index; + EX_WB_REG_bits_vectorExecNum_bits <= + _vecAluExecUnit_0_io_toExWbReg_bits_vectorExecNum_bits; + end + else begin + EX_WB_REG_bits_dataSignals_pc_addr <= ID_EX_REG_bits_dataSignals_pc_addr; + if (ID_EX_REG_bits_ctrlSignals_decode_writeback_selector == 3'h5) begin + if (_exVectorRes_T_4) + EX_WB_REG_bits_dataSignals_exResult <= + _vecAluExecUnit_0_io_toExWbReg_bits_dataSignals_exResult; + else + EX_WB_REG_bits_dataSignals_exResult <= _GEN_0; + end + else if (ID_EX_REG_bits_ctrlSignals_decode_writeback_selector == 3'h2) begin + if (_exScalarRes_T_10) + EX_WB_REG_bits_dataSignals_exResult <= _multiplier_io_resp_bits; + else + EX_WB_REG_bits_dataSignals_exResult <= _alu_io_out; + end + else + EX_WB_REG_bits_dataSignals_exResult <= 64'h0; + EX_WB_REG_bits_ctrlSignals_decode_branch <= + ID_EX_REG_bits_ctrlSignals_decode_branch; + EX_WB_REG_bits_ctrlSignals_decode_writeback_selector <= + ID_EX_REG_bits_ctrlSignals_decode_writeback_selector; + EX_WB_REG_bits_ctrlSignals_decode_memory_function <= + ID_EX_REG_bits_ctrlSignals_decode_memory_function; + EX_WB_REG_bits_ctrlSignals_decode_csr_funct <= + ID_EX_REG_bits_ctrlSignals_decode_csr_funct; + EX_WB_REG_bits_ctrlSignals_decode_fence <= + ID_EX_REG_bits_ctrlSignals_decode_fence; + EX_WB_REG_bits_ctrlSignals_rd_index <= ID_EX_REG_bits_ctrlSignals_rd_index; + EX_WB_REG_bits_vectorExecNum_bits <= 5'h0; + end + EX_WB_REG_bits_vectorExecNum_valid <= + _vecAluExecUnit_0_io_toExWbReg_valid + & _vecAluExecUnit_0_io_toExWbReg_bits_vectorExecNum_valid; + end + if (_GEN_2) begin + EX_WB_REG_bits_dataSignals_datatoCSR <= 64'h0; + EX_WB_REG_bits_dataSignals_csr_addr <= 12'h0; + end + else begin + if (ID_EX_REG_bits_ctrlSignals_decode_value1 == 2'h1) + EX_WB_REG_bits_dataSignals_datatoCSR <= ID_EX_REG_bits_dataSignals_rs1; + else + EX_WB_REG_bits_dataSignals_datatoCSR <= ID_EX_REG_bits_dataSignals_imm; + EX_WB_REG_bits_dataSignals_csr_addr <= ID_EX_REG_bits_dataSignals_zimm; + end + EX_WB_REG_bits_exceptionSignals_valid <= + ~_GEN_2 + & (ID_EX_REG_valid & ID_EX_REG_bits_exceptionSignals_valid + | ID_EX_REG_bits_ctrlSignals_decode_branch == 4'h9 & ID_EX_REG_valid); + if (_GEN_2 | ~ID_EX_REG_bits_exceptionSignals_valid) + EX_WB_REG_bits_exceptionSignals_bits <= 64'h0; + else + EX_WB_REG_bits_exceptionSignals_bits <= ID_EX_REG_bits_exceptionSignals_bits; + if (_GEN_2 | ~_vecCtrlUnit_io_resp_valid) begin + end + else begin + EX_WB_REG_bits_vectorCsrPorts_vtype_vill <= _vecCtrlUnit_io_resp_bits_vtype_vill; + EX_WB_REG_bits_vectorCsrPorts_vtype_vma <= _vecCtrlUnit_io_resp_bits_vtype_vma; + EX_WB_REG_bits_vectorCsrPorts_vtype_vta <= _vecCtrlUnit_io_resp_bits_vtype_vta; + EX_WB_REG_bits_vectorCsrPorts_vtype_vsew <= _vecCtrlUnit_io_resp_bits_vtype_vsew; + EX_WB_REG_bits_vectorCsrPorts_vtype_vlmul <= _vecCtrlUnit_io_resp_bits_vtype_vlmul; + EX_WB_REG_bits_vectorCsrPorts_vl <= _vecCtrlUnit_io_resp_bits_vl; + end + end // always @(posedge) + Decoder decoder ( + .io_inst_bits (io_frontend_resp_bits_inst_bits), + .io_out_valid (_decoder_io_out_valid), + .io_out_bits_branch (_decoder_io_out_bits_branch), + .io_out_bits_value1 (_decoder_io_out_bits_value1), + .io_out_bits_value2 (_decoder_io_out_bits_value2), + .io_out_bits_arithmetic_funct (_decoder_io_out_bits_arithmetic_funct), + .io_out_bits_alu_flag (_decoder_io_out_bits_alu_flag), + .io_out_bits_op32 (_decoder_io_out_bits_op32), + .io_out_bits_writeback_selector (_decoder_io_out_bits_writeback_selector), + .io_out_bits_memory_function (_decoder_io_out_bits_memory_function), + .io_out_bits_memory_length (_decoder_io_out_bits_memory_length), + .io_out_bits_mem_sext (_decoder_io_out_bits_mem_sext), + .io_out_bits_csr_funct (_decoder_io_out_bits_csr_funct), + .io_out_bits_fence (_decoder_io_out_bits_fence), + .io_out_bits_vector (_decoder_io_out_bits_vector) + ); + BranchPredictor branch_predictor ( + .clock (clock), + .reset (reset), + .io_pc_addr (io_frontend_resp_bits_pc_addr), + .io_imm + ({{44{io_frontend_resp_bits_inst_bits[31]}}, + _decoder_io_out_bits_branch == 4'h1 | _decoder_io_out_bits_branch == 4'h2 + | _decoder_io_out_bits_branch == 4'h3 | _decoder_io_out_bits_branch == 4'h4 + | _decoder_io_out_bits_branch == 4'h5 | _decoder_io_out_bits_branch == 4'h6 + ? {{8{io_frontend_resp_bits_inst_bits[31]}}, + io_frontend_resp_bits_inst_bits[7], + io_frontend_resp_bits_inst_bits[30:25], + io_frontend_resp_bits_inst_bits[11:8]} + : {io_frontend_resp_bits_inst_bits[19:12], + io_frontend_resp_bits_inst_bits[20], + io_frontend_resp_bits_inst_bits[30:21]}, + 1'h0}), + .io_BranchType (_decoder_io_out_bits_branch), + .io_out_valid (_branch_predictor_io_out_valid), + .io_out_bits_pc (_branch_predictor_io_out_bits_pc) + ); + RegFile rf ( + .clock (clock), + .io_rs1 (io_frontend_resp_bits_inst_bits[19:15]), + .io_rs2 (io_frontend_resp_bits_inst_bits[24:20]), + .io_req_valid + (WB_inst_can_retire & (|EX_WB_REG_bits_ctrlSignals_decode_writeback_selector)), + .io_req_bits_rd (EX_WB_REG_bits_ctrlSignals_rd_index), + .io_req_bits_data (_rf_io_req_bits_data_T_16), + .io_rs1_out (_rf_io_rs1_out), + .io_rs2_out (_rf_io_rs2_out) + ); + ALU alu ( + .io_funct_arithmetic_funct (ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct), + .io_funct_alu_flag (ID_EX_REG_bits_ctrlSignals_decode_alu_flag), + .io_funct_op32 (ID_EX_REG_bits_ctrlSignals_decode_op32), + .io_in1 + (ID_EX_REG_bits_ctrlSignals_decode_value1 == 2'h2 + ? ID_EX_REG_bits_dataSignals_imm + : ID_EX_REG_bits_ctrlSignals_decode_value1 == 2'h1 + ? ID_EX_REG_bits_dataSignals_rs1 + : 64'h0), + .io_in2 + (ID_EX_REG_bits_ctrlSignals_decode_value2 == 3'h4 + ? ID_EX_REG_bits_dataSignals_pc_addr + : ID_EX_REG_bits_ctrlSignals_decode_value2 == 3'h3 + | ID_EX_REG_bits_ctrlSignals_decode_value2 == 3'h2 + ? ID_EX_REG_bits_dataSignals_imm + : ID_EX_REG_bits_ctrlSignals_decode_value2 == 3'h1 + ? ID_EX_REG_bits_dataSignals_rs2 + : 64'h0), + .io_out (_alu_io_out) + ); + BranchEvaluator branch_evaluator ( + .io_req_valid (ID_EX_REG_valid), + .io_req_bits_ALU_Result (_alu_io_out), + .io_req_bits_BranchType (ID_EX_REG_bits_ctrlSignals_decode_branch), + .io_req_bits_destPC (ID_EX_REG_bits_dataSignals_bp_destPC), + .io_req_bits_pc_addr (ID_EX_REG_bits_dataSignals_pc_addr), + .io_req_bits_bp_taken (ID_EX_REG_bits_dataSignals_bp_taken), + .io_out_valid (_branch_evaluator_io_out_valid), + .io_out_bits_pc (_branch_evaluator_io_out_bits_pc) + ); + BypassingUnit bypassingUnit ( + .io_ID_in_rs1_index_valid + (_decoder_io_out_bits_value1 == 2'h1 & _decoder_io_out_valid + & io_frontend_resp_valid), + .io_ID_in_rs1_index_bits (io_frontend_resp_bits_inst_bits[19:15]), + .io_ID_in_rs2_index_valid + ((_decoder_io_out_bits_value2 == 3'h1 + | _decoder_io_out_bits_memory_function == 2'h2) & _decoder_io_out_valid + & io_frontend_resp_valid), + .io_ID_in_rs2_index_bits (io_frontend_resp_bits_inst_bits[24:20]), + .io_EX_in_valid + ((|ID_EX_REG_bits_ctrlSignals_decode_writeback_selector) & ID_EX_REG_valid), + .io_EX_in_bits_rd_valid (_bypassingUnit_io_EX_in_bits_rd_valid_T_31), + .io_EX_in_bits_rd_bits_index (ID_EX_REG_bits_ctrlSignals_rd_index), + .io_EX_in_bits_rd_bits_value + (ID_EX_REG_bits_ctrlSignals_decode_writeback_selector == 3'h5 + ? (_exVectorRes_T_4 + ? _vecAluExecUnit_0_io_toExWbReg_bits_dataSignals_exResult + : _GEN_0) + : ID_EX_REG_bits_ctrlSignals_decode_writeback_selector == 3'h2 + ? (_exScalarRes_T_10 ? _multiplier_io_resp_bits : _alu_io_out) + : ID_EX_REG_bits_ctrlSignals_decode_writeback_selector == 3'h1 + ? ID_EX_REG_bits_dataSignals_pc_addr + 64'h4 + : 64'h0), + .io_WB_in_valid (_bypassingUnit_io_WB_in_valid_T_2), + .io_WB_in_bits_rd_valid (_bypassingUnit_io_WB_in_bits_rd_valid_T_4), + .io_WB_in_bits_rd_bits_index (EX_WB_REG_bits_ctrlSignals_rd_index), + .io_WB_in_bits_rd_bits_value (_rf_io_req_bits_data_T_16), + .io_ID_out_rs1_value_valid (_bypassingUnit_io_ID_out_rs1_value_valid), + .io_ID_out_rs1_value_bits (_bypassingUnit_io_ID_out_rs1_value_bits), + .io_ID_out_rs1_bypassMatchAtEX (_bypassingUnit_io_ID_out_rs1_bypassMatchAtEX), + .io_ID_out_rs1_bypassMatchAtWB (_bypassingUnit_io_ID_out_rs1_bypassMatchAtWB), + .io_ID_out_rs2_value_valid (_bypassingUnit_io_ID_out_rs2_value_valid), + .io_ID_out_rs2_value_bits (_bypassingUnit_io_ID_out_rs2_value_bits), + .io_ID_out_rs2_bypassMatchAtEX (_bypassingUnit_io_ID_out_rs2_bypassMatchAtEX), + .io_ID_out_rs2_bypassMatchAtWB (_bypassingUnit_io_ID_out_rs2_bypassMatchAtWB) + ); + VectorLdstUnit vectorLdstUnit ( + .clock (clock), + .reset (reset), + .io_signalIn_valid + (~_T_17 + & (_T_25 | _T_26 + & (_decoder_io_out_bits_memory_function == 2'h1 + | _decoder_io_out_bits_memory_function == 2'h2) + & _vectorLdstUnit_io_signalIn_ready)), + .io_signalIn_bits_scalar_rs2Value + (_bypassingUnit_io_ID_out_rs2_value_valid + ? _bypassingUnit_io_ID_out_rs2_value_bits + : _rf_io_rs2_out), + .io_signalIn_bits_scalar_immediate + (_T_25 + ? (_decoder_io_out_bits_memory_function == 2'h1 + ? {{52{io_frontend_resp_bits_inst_bits[31]}}, + io_frontend_resp_bits_inst_bits[31:20]} + : {{52{io_frontend_resp_bits_inst_bits[31]}}, + io_frontend_resp_bits_inst_bits[31:25], + io_frontend_resp_bits_inst_bits[11:7]}) + : _decoder_io_out_bits_memory_function == 2'h1 + ? {{52{io_frontend_resp_bits_inst_bits[31]}}, + io_frontend_resp_bits_inst_bits[31:20]} + : {{52{io_frontend_resp_bits_inst_bits[31]}}, + io_frontend_resp_bits_inst_bits[31:25], + io_frontend_resp_bits_inst_bits[11:7]}), + .io_signalIn_bits_scalar_rdIndex + (io_frontend_resp_bits_inst_bits[11:7]), + .io_signalIn_bits_vector_vs2 + (_T_25 ? io_frontend_resp_bits_inst_bits[24:20] : 5'h0), + .io_signalIn_bits_vector_vd + (_T_25 ? io_frontend_resp_bits_inst_bits[11:7] : 5'h0), + .io_signalIn_bits_vector_scalarVal (rs1ValueToEX), + .io_signalIn_bits_vector_vectorDecode_mop + (_T_25 ? _vectorDecoder_io_out_mop : 3'h0), + .io_signalIn_bits_vector_vectorDecode_vm + (_T_25 & _vectorDecoder_io_out_vm), + .io_signalIn_bits_vector_scalarDecode_branch + (_decoder_io_out_bits_branch), + .io_signalIn_bits_vector_scalarDecode_writeback_selector + (_decoder_io_out_bits_writeback_selector), + .io_signalIn_bits_vector_scalarDecode_memory_function + (_decoder_io_out_bits_memory_function), + .io_signalIn_bits_vector_scalarDecode_memory_length + (_decoder_io_out_bits_memory_length), + .io_signalIn_bits_vector_scalarDecode_mem_sext + (_decoder_io_out_bits_mem_sext), + .io_signalIn_bits_vector_scalarDecode_csr_funct + (_decoder_io_out_bits_csr_funct), + .io_signalIn_bits_vector_scalarDecode_fence (_decoder_io_out_bits_fence), + .io_signalIn_bits_vector_scalarDecode_vector + (_decoder_io_out_bits_vector), + .io_signalIn_bits_vector_vecConf_vtype_vsew (vecConfBypass_vtype_vsew), + .io_signalIn_bits_vector_vecConf_vl (vecConfBypass_vl), + .io_signalIn_bits_vector_pc_addr + (io_frontend_resp_bits_pc_addr), + .io_readVrf_resp_vs2Out + (_vecRegFile_io_readReq_0_resp_vs2Out), + .io_readVrf_resp_vdOut + (_vecRegFile_io_readReq_0_resp_vdOut), + .io_readVrf_resp_vm + (_vecRegFile_io_readReq_0_resp_vm), + .io_dcache_ar_ready + (io_dcache_axi4lite_ar_ready), + .io_dcache_aw_ready + (io_dcache_axi4lite_aw_ready), + .io_dcache_b_valid (io_dcache_axi4lite_b_valid), + .io_dcache_r_valid (io_dcache_axi4lite_r_valid), + .io_dcache_r_bits_data + (io_dcache_axi4lite_r_bits_data), + .io_dcache_w_ready (io_dcache_axi4lite_w_ready), + .io_signalIn_ready + (_vectorLdstUnit_io_signalIn_ready), + .io_readVrf_req_sew + (_vectorLdstUnit_io_readVrf_req_sew), + .io_readVrf_req_idx + (_vectorLdstUnit_io_readVrf_req_idx), + .io_readVrf_req_vs2 + (_vectorLdstUnit_io_readVrf_req_vs2), + .io_readVrf_req_vd + (_vectorLdstUnit_io_readVrf_req_vd), + .io_scalarResp_valid + (_vectorLdstUnit_io_scalarResp_valid), + .io_scalarResp_bits_data + (_vectorLdstUnit_io_scalarResp_bits_data), + .io_vectorResp_toVRF_valid + (_vectorLdstUnit_io_vectorResp_toVRF_valid), + .io_vectorResp_toVRF_bits_vd + (_vectorLdstUnit_io_vectorResp_toVRF_bits_vd), + .io_vectorResp_toVRF_bits_vtype_vsew + (_vectorLdstUnit_io_vectorResp_toVRF_bits_vtype_vsew), + .io_vectorResp_toVRF_bits_index + (_vectorLdstUnit_io_vectorResp_toVRF_bits_index), + .io_vectorResp_toVRF_bits_last + (_vectorLdstUnit_io_vectorResp_toVRF_bits_last), + .io_vectorResp_toVRF_bits_data + (_vectorLdstUnit_io_vectorResp_toVRF_bits_data), + .io_vectorResp_toVRF_bits_writeReq + (_vectorLdstUnit_io_vectorResp_toVRF_bits_writeReq), + .io_dcache_ar_valid + (io_dcache_axi4lite_ar_valid), + .io_dcache_ar_bits_addr + (io_dcache_axi4lite_ar_bits_addr), + .io_dcache_aw_valid + (io_dcache_axi4lite_aw_valid), + .io_dcache_aw_bits_addr + (io_dcache_axi4lite_aw_bits_addr), + .io_dcache_w_valid (io_dcache_axi4lite_w_valid), + .io_dcache_w_bits_data + (io_dcache_axi4lite_w_bits_data), + .io_dcache_w_bits_strb + (io_dcache_axi4lite_w_bits_strb), + .io_toExWbReg_valid + (_vectorLdstUnit_io_toExWbReg_valid), + .io_toExWbReg_bits_dataSignals_pc_addr + (_vectorLdstUnit_io_toExWbReg_bits_dataSignals_pc_addr), + .io_toExWbReg_bits_ctrlSignals_decode_branch + (_vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_branch), + .io_toExWbReg_bits_ctrlSignals_decode_writeback_selector + (_vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_writeback_selector), + .io_toExWbReg_bits_ctrlSignals_decode_memory_function + (_vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_memory_function), + .io_toExWbReg_bits_ctrlSignals_decode_csr_funct + (_vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_csr_funct), + .io_toExWbReg_bits_ctrlSignals_decode_fence + (_vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_decode_fence), + .io_toExWbReg_bits_ctrlSignals_rd_index + (_vectorLdstUnit_io_toExWbReg_bits_ctrlSignals_rd_index), + .io_toExWbReg_bits_vectorExecNum_valid + (_vectorLdstUnit_io_toExWbReg_bits_vectorExecNum_valid), + .io_toExWbReg_bits_vectorExecNum_bits + (_vectorLdstUnit_io_toExWbReg_bits_vectorExecNum_bits) + ); + CSRUnit csrUnit ( + .clock (clock), + .reset (reset), + .io_req_bits_funct_branch (EX_WB_REG_bits_ctrlSignals_decode_branch), + .io_req_bits_funct_csr_funct (EX_WB_REG_bits_ctrlSignals_decode_csr_funct), + .io_req_bits_data (EX_WB_REG_bits_dataSignals_datatoCSR), + .io_req_bits_csr_addr (EX_WB_REG_bits_dataSignals_csr_addr), + .io_fromCPU_cpu_operating (cpu_operating), + .io_fromCPU_inst_retire (WB_inst_can_retire), + .io_fromCPU_hartid (io_hartid), + .io_fromCPU_vectorExecNum_valid (EX_WB_REG_bits_vectorExecNum_valid), + .io_fromCPU_vectorExecNum_bits (EX_WB_REG_bits_vectorExecNum_bits), + .io_exception_valid + (EX_WB_REG_bits_exceptionSignals_valid & EX_WB_REG_valid), + .io_exception_bits_mepc_write (EX_WB_REG_bits_dataSignals_pc_addr), + .io_exception_bits_mcause_write (EX_WB_REG_bits_exceptionSignals_bits), + .io_vectorCsrPorts_vtype_vill (EX_WB_REG_bits_vectorCsrPorts_vtype_vill), + .io_vectorCsrPorts_vtype_vma (EX_WB_REG_bits_vectorCsrPorts_vtype_vma), + .io_vectorCsrPorts_vtype_vta (EX_WB_REG_bits_vectorCsrPorts_vtype_vta), + .io_vectorCsrPorts_vtype_vsew (EX_WB_REG_bits_vectorCsrPorts_vtype_vsew), + .io_vectorCsrPorts_vtype_vlmul (EX_WB_REG_bits_vectorCsrPorts_vtype_vlmul), + .io_vectorCsrPorts_vl (EX_WB_REG_bits_vectorCsrPorts_vl), + .io_resp_data (_csrUnit_io_resp_data) + ); + NonPipelinedMultiplierWrap multiplier ( + .clock (clock), + .reset (reset), + .io_req_valid + ((ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'h9 + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hA + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hB + | ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct == 4'hC) + & ~multiplier_hasValue & ID_EX_REG_valid & ~WB_pc_redirect), + .io_req_bits_rs1 (ID_EX_REG_bits_dataSignals_rs1), + .io_req_bits_rs2 (ID_EX_REG_bits_dataSignals_rs2), + .io_req_bits_funct_arithmetic_funct + (ID_EX_REG_bits_ctrlSignals_decode_arithmetic_funct), + .io_req_bits_funct_op32 (ID_EX_REG_bits_ctrlSignals_decode_op32), + .io_resp_valid (_multiplier_io_resp_valid), + .io_resp_bits (_multiplier_io_resp_bits) + ); + VectorDecoder vectorDecoder ( + .io_inst_bits (io_frontend_resp_bits_inst_bits), + .io_out_isConfsetInst (_vectorDecoder_io_out_isConfsetInst), + .io_out_avl_sel (_vectorDecoder_io_out_avl_sel), + .io_out_vtype_sel (_vectorDecoder_io_out_vtype_sel), + .io_out_mop (_vectorDecoder_io_out_mop), + .io_out_veuFun (_vectorDecoder_io_out_veuFun), + .io_out_vSource (_vectorDecoder_io_out_vSource), + .io_out_vm (_vectorDecoder_io_out_vm) + ); + VecCtrlUnit vecCtrlUnit ( + .io_req_valid + (ID_EX_REG_valid & ID_EX_REG_bits_ctrlSignals_decode_vector + & ID_EX_REG_bits_vectorCtrlSignals_isConfsetInst), + .io_req_bits_vDecode_avl_sel (ID_EX_REG_bits_vectorCtrlSignals_avl_sel), + .io_req_bits_vDecode_vtype_sel (ID_EX_REG_bits_vectorCtrlSignals_vtype_sel), + .io_req_bits_rs1_value (ID_EX_REG_bits_dataSignals_rs1), + .io_req_bits_rs2_value (ID_EX_REG_bits_dataSignals_rs2), + .io_req_bits_zimm ({52'h0, ID_EX_REG_bits_dataSignals_zimm}), + .io_req_bits_uimm (ID_EX_REG_bits_dataSignals_imm), + .io_resp_valid (_vecCtrlUnit_io_resp_valid), + .io_resp_bits_vtype_vill (_vecCtrlUnit_io_resp_bits_vtype_vill), + .io_resp_bits_vtype_vma (_vecCtrlUnit_io_resp_bits_vtype_vma), + .io_resp_bits_vtype_vta (_vecCtrlUnit_io_resp_bits_vtype_vta), + .io_resp_bits_vtype_vsew (_vecCtrlUnit_io_resp_bits_vtype_vsew), + .io_resp_bits_vtype_vlmul (_vecCtrlUnit_io_resp_bits_vtype_vlmul), + .io_resp_bits_vl (_vecCtrlUnit_io_resp_bits_vl) + ); + VecRegFile vecRegFile ( + .clock (clock), + .io_readReq_0_req_sew (_vectorLdstUnit_io_readVrf_req_sew), + .io_readReq_0_req_idx (_vectorLdstUnit_io_readVrf_req_idx), + .io_readReq_0_req_vs2 (_vectorLdstUnit_io_readVrf_req_vs2), + .io_readReq_0_req_vd (_vectorLdstUnit_io_readVrf_req_vd), + .io_readReq_1_req_sew (_vecAluExecUnit_0_io_readVrf_req_sew), + .io_readReq_1_req_readVdAsMaskSource + (_vecAluExecUnit_0_io_readVrf_req_readVdAsMaskSource), + .io_readReq_1_req_idx (_vecAluExecUnit_0_io_readVrf_req_idx), + .io_readReq_1_req_vs1 (_vecAluExecUnit_0_io_readVrf_req_vs1), + .io_readReq_1_req_vs2 (_vecAluExecUnit_0_io_readVrf_req_vs2), + .io_readReq_1_req_vd (_vecAluExecUnit_0_io_readVrf_req_vd), + .io_readReq_2_req_sew (_vecAluExecUnit_1_io_readVrf_req_sew), + .io_readReq_2_req_readVdAsMaskSource + (_vecAluExecUnit_1_io_readVrf_req_readVdAsMaskSource), + .io_readReq_2_req_idx (_vecAluExecUnit_1_io_readVrf_req_idx), + .io_readReq_2_req_vs1 (_vecAluExecUnit_1_io_readVrf_req_vs1), + .io_readReq_2_req_vs2 (_vecAluExecUnit_1_io_readVrf_req_vs2), + .io_readReq_2_req_vd (_vecAluExecUnit_1_io_readVrf_req_vd), + .io_writeReq_0_valid (_vectorLdstUnit_io_vectorResp_toVRF_valid), + .io_writeReq_0_bits_vd (_vectorLdstUnit_io_vectorResp_toVRF_bits_vd), + .io_writeReq_0_bits_vtype_vsew + (_vectorLdstUnit_io_vectorResp_toVRF_bits_vtype_vsew), + .io_writeReq_0_bits_index (_vectorLdstUnit_io_vectorResp_toVRF_bits_index), + .io_writeReq_0_bits_data (_vectorLdstUnit_io_vectorResp_toVRF_bits_data), + .io_writeReq_0_bits_writeReq + (_vectorLdstUnit_io_vectorResp_toVRF_bits_writeReq), + .io_writeReq_1_valid (_vecAluExecUnit_0_io_dataOut_toVRF_valid), + .io_writeReq_1_bits_vd (_vecAluExecUnit_0_io_dataOut_toVRF_bits_vd), + .io_writeReq_1_bits_vtype_vsew + (_vecAluExecUnit_0_io_dataOut_toVRF_bits_vtype_vsew), + .io_writeReq_1_bits_index (_vecAluExecUnit_0_io_dataOut_toVRF_bits_index), + .io_writeReq_1_bits_data (_vecAluExecUnit_0_io_dataOut_toVRF_bits_data), + .io_writeReq_1_bits_writeReq + (_vecAluExecUnit_0_io_dataOut_toVRF_bits_writeReq), + .io_writeReq_2_valid (_vecAluExecUnit_1_io_dataOut_toVRF_valid), + .io_writeReq_2_bits_vd (_vecAluExecUnit_1_io_dataOut_toVRF_bits_vd), + .io_writeReq_2_bits_vtype_vsew + (_vecAluExecUnit_1_io_dataOut_toVRF_bits_vtype_vsew), + .io_writeReq_2_bits_index (_vecAluExecUnit_1_io_dataOut_toVRF_bits_index), + .io_writeReq_2_bits_data (_vecAluExecUnit_1_io_dataOut_toVRF_bits_data), + .io_writeReq_2_bits_writeReq + (_vecAluExecUnit_1_io_dataOut_toVRF_bits_writeReq), + .io_readReq_0_resp_vs2Out (_vecRegFile_io_readReq_0_resp_vs2Out), + .io_readReq_0_resp_vdOut (_vecRegFile_io_readReq_0_resp_vdOut), + .io_readReq_0_resp_vm (_vecRegFile_io_readReq_0_resp_vm), + .io_readReq_1_resp_vs1Out (_vecRegFile_io_readReq_1_resp_vs1Out), + .io_readReq_1_resp_vs2Out (_vecRegFile_io_readReq_1_resp_vs2Out), + .io_readReq_1_resp_vdOut (_vecRegFile_io_readReq_1_resp_vdOut), + .io_readReq_1_resp_vm (_vecRegFile_io_readReq_1_resp_vm), + .io_readReq_2_resp_vs1Out (_vecRegFile_io_readReq_2_resp_vs1Out), + .io_readReq_2_resp_vs2Out (_vecRegFile_io_readReq_2_resp_vs2Out), + .io_readReq_2_resp_vdOut (_vecRegFile_io_readReq_2_resp_vdOut), + .io_readReq_2_resp_vm (_vecRegFile_io_readReq_2_resp_vm) + ); + VrfReadyTable vrfReadyTable ( + .clock (clock), + .reset (reset), + .io_fromVecExecUnit_0_valid (_vectorLdstUnit_io_vectorResp_toVRF_valid), + .io_fromVecExecUnit_0_bits_vd (_vectorLdstUnit_io_vectorResp_toVRF_bits_vd), + .io_fromVecExecUnit_0_bits_vtype_vsew + (_vectorLdstUnit_io_vectorResp_toVRF_bits_vtype_vsew), + .io_fromVecExecUnit_0_bits_index + (_vectorLdstUnit_io_vectorResp_toVRF_bits_index), + .io_fromVecExecUnit_0_bits_last (_vectorLdstUnit_io_vectorResp_toVRF_bits_last), + .io_fromVecExecUnit_0_bits_writeReq + (_vectorLdstUnit_io_vectorResp_toVRF_bits_writeReq), + .io_fromVecExecUnit_1_valid (_vecAluExecUnit_0_io_dataOut_toVRF_valid), + .io_fromVecExecUnit_1_bits_vd (_vecAluExecUnit_0_io_dataOut_toVRF_bits_vd), + .io_fromVecExecUnit_1_bits_vtype_vsew + (_vecAluExecUnit_0_io_dataOut_toVRF_bits_vtype_vsew), + .io_fromVecExecUnit_1_bits_index (_vecAluExecUnit_0_io_dataOut_toVRF_bits_index), + .io_fromVecExecUnit_1_bits_last (_vecAluExecUnit_0_io_dataOut_toVRF_bits_last), + .io_fromVecExecUnit_1_bits_vm (_vecAluExecUnit_0_io_dataOut_toVRF_bits_vm), + .io_fromVecExecUnit_1_bits_writeReq + (_vecAluExecUnit_0_io_dataOut_toVRF_bits_writeReq), + .io_fromVecExecUnit_2_valid (_vecAluExecUnit_1_io_dataOut_toVRF_valid), + .io_fromVecExecUnit_2_bits_vd (_vecAluExecUnit_1_io_dataOut_toVRF_bits_vd), + .io_fromVecExecUnit_2_bits_vtype_vsew + (_vecAluExecUnit_1_io_dataOut_toVRF_bits_vtype_vsew), + .io_fromVecExecUnit_2_bits_index (_vecAluExecUnit_1_io_dataOut_toVRF_bits_index), + .io_fromVecExecUnit_2_bits_last (_vecAluExecUnit_1_io_dataOut_toVRF_bits_last), + .io_fromVecExecUnit_2_bits_vm (_vecAluExecUnit_1_io_dataOut_toVRF_bits_vm), + .io_fromVecExecUnit_2_bits_writeReq + (_vecAluExecUnit_1_io_dataOut_toVRF_bits_writeReq), + .io_invalidateVd + (ID_inst_valid & _decoder_io_out_valid & _decoder_io_out_bits_vector + & ~_vectorDecoder_io_out_isConfsetInst + & _decoder_io_out_bits_memory_function != 2'h2 + & ~(_vectorDecoder_io_out_veuFun == 6'h31 + | _vectorDecoder_io_out_veuFun == 6'h32)), + .io_vs1Check_valid (_vrfReadyTable_io_vs1Check_valid_T_8), + .io_vs1Check_bits_idx (io_frontend_resp_bits_inst_bits[19:15]), + .io_vs1Check_bits_vtype_vsew (vecConfBypass_vtype_vsew), + .io_vs1Check_bits_vm + (_vectorDecoder_io_out_veuFun == 6'h19 | _vectorDecoder_io_out_veuFun == 6'h1A + | _vectorDecoder_io_out_veuFun == 6'h1B | _vectorDecoder_io_out_veuFun == 6'h1C + | _vectorDecoder_io_out_veuFun == 6'h1D | _vectorDecoder_io_out_veuFun == 6'h1E + | _vectorDecoder_io_out_veuFun == 6'h1F | _vectorDecoder_io_out_veuFun == 6'h20), + .io_vs2Check_valid (_vrfReadyTable_io_vs2Check_valid_T_8), + .io_vs2Check_bits_idx (io_frontend_resp_bits_inst_bits[24:20]), + .io_vs2Check_bits_vtype_vsew (vecConfBypass_vtype_vsew), + .io_vs2Check_bits_vm + (_vectorDecoder_io_out_veuFun == 6'h19 | _vectorDecoder_io_out_veuFun == 6'h1A + | _vectorDecoder_io_out_veuFun == 6'h1B | _vectorDecoder_io_out_veuFun == 6'h1C + | _vectorDecoder_io_out_veuFun == 6'h1D | _vectorDecoder_io_out_veuFun == 6'h1E + | _vectorDecoder_io_out_veuFun == 6'h1F | _vectorDecoder_io_out_veuFun == 6'h20), + .io_vdCheck_valid (_vrfReadyTable_io_vdCheck_valid_T_2), + .io_vdCheck_bits_idx (io_frontend_resp_bits_inst_bits[11:7]), + .io_vdCheck_bits_vtype_vsew (vecConfBypass_vtype_vsew), + .io_vdCheck_bits_vm + (_vectorDecoder_io_out_veuFun == 6'h8 | _vectorDecoder_io_out_veuFun == 6'h9 + | _vectorDecoder_io_out_veuFun == 6'hA | _vectorDecoder_io_out_veuFun == 6'hB + | _vectorDecoder_io_out_veuFun == 6'hC | _vectorDecoder_io_out_veuFun == 6'hD + | _vectorDecoder_io_out_veuFun == 6'hE | _vectorDecoder_io_out_veuFun == 6'hF + | _vectorDecoder_io_out_veuFun == 6'h5 | _vectorDecoder_io_out_veuFun == 6'h7 + | _vectorDecoder_io_out_veuFun == 6'h19 | _vectorDecoder_io_out_veuFun == 6'h1A + | _vectorDecoder_io_out_veuFun == 6'h1B | _vectorDecoder_io_out_veuFun == 6'h1C + | _vectorDecoder_io_out_veuFun == 6'h1D | _vectorDecoder_io_out_veuFun == 6'h1E + | _vectorDecoder_io_out_veuFun == 6'h1F | _vectorDecoder_io_out_veuFun == 6'h20), + .io_vmCheck_valid (_vrfReadyTable_io_vmCheck_valid_T_4), + .io_vs1Check_ready (_vrfReadyTable_io_vs1Check_ready), + .io_vs2Check_ready (_vrfReadyTable_io_vs2Check_ready), + .io_vdCheck_ready (_vrfReadyTable_io_vdCheck_ready), + .io_vmCheck_ready (_vrfReadyTable_io_vmCheck_ready) + ); + IntegerAluExecUnit vecAluExecUnit_0 ( + .clock (clock), + .reset (reset), + .io_signalIn_valid + (~_T_17 & _T_9 & _vecAluExecUnit_0_io_signalIn_ready), + .io_signalIn_bits_vs1 + (io_frontend_resp_bits_inst_bits[19:15]), + .io_signalIn_bits_vs2 + (io_frontend_resp_bits_inst_bits[24:20]), + .io_signalIn_bits_vd + (io_frontend_resp_bits_inst_bits[11:7]), + .io_signalIn_bits_scalarVal + (_vectorDecoder_io_out_vSource == 3'h1 + ? rs1ValueToEX + : {{59{io_frontend_resp_bits_inst_bits[19]}}, + io_frontend_resp_bits_inst_bits[19:15]}), + .io_signalIn_bits_vectorDecode_veuFun + (_vectorDecoder_io_out_veuFun), + .io_signalIn_bits_vectorDecode_vSource + (_vectorDecoder_io_out_vSource), + .io_signalIn_bits_vectorDecode_vm (_vectorDecoder_io_out_vm), + .io_signalIn_bits_scalarDecode_branch + (_decoder_io_out_bits_branch), + .io_signalIn_bits_scalarDecode_writeback_selector + (_decoder_io_out_bits_writeback_selector), + .io_signalIn_bits_scalarDecode_memory_function + (_decoder_io_out_bits_memory_function), + .io_signalIn_bits_scalarDecode_csr_funct + (_decoder_io_out_bits_csr_funct), + .io_signalIn_bits_scalarDecode_fence (_decoder_io_out_bits_fence), + .io_signalIn_bits_vecConf_vtype_vsew (vecConfBypass_vtype_vsew), + .io_signalIn_bits_vecConf_vl (vecConfBypass_vl), + .io_signalIn_bits_pc_addr + (io_frontend_resp_bits_pc_addr), + .io_readVrf_resp_vs1Out + (_vecRegFile_io_readReq_1_resp_vs1Out), + .io_readVrf_resp_vs2Out + (_vecRegFile_io_readReq_1_resp_vs2Out), + .io_readVrf_resp_vdOut + (_vecRegFile_io_readReq_1_resp_vdOut), + .io_readVrf_resp_vm + (_vecRegFile_io_readReq_1_resp_vm), + .io_signalIn_ready + (_vecAluExecUnit_0_io_signalIn_ready), + .io_readVrf_req_sew + (_vecAluExecUnit_0_io_readVrf_req_sew), + .io_readVrf_req_readVdAsMaskSource + (_vecAluExecUnit_0_io_readVrf_req_readVdAsMaskSource), + .io_readVrf_req_idx + (_vecAluExecUnit_0_io_readVrf_req_idx), + .io_readVrf_req_vs1 + (_vecAluExecUnit_0_io_readVrf_req_vs1), + .io_readVrf_req_vs2 + (_vecAluExecUnit_0_io_readVrf_req_vs2), + .io_readVrf_req_vd + (_vecAluExecUnit_0_io_readVrf_req_vd), + .io_dataOut_toVRF_valid + (_vecAluExecUnit_0_io_dataOut_toVRF_valid), + .io_dataOut_toVRF_bits_vd + (_vecAluExecUnit_0_io_dataOut_toVRF_bits_vd), + .io_dataOut_toVRF_bits_vtype_vsew + (_vecAluExecUnit_0_io_dataOut_toVRF_bits_vtype_vsew), + .io_dataOut_toVRF_bits_index + (_vecAluExecUnit_0_io_dataOut_toVRF_bits_index), + .io_dataOut_toVRF_bits_last + (_vecAluExecUnit_0_io_dataOut_toVRF_bits_last), + .io_dataOut_toVRF_bits_data + (_vecAluExecUnit_0_io_dataOut_toVRF_bits_data), + .io_dataOut_toVRF_bits_vm + (_vecAluExecUnit_0_io_dataOut_toVRF_bits_vm), + .io_dataOut_toVRF_bits_writeReq + (_vecAluExecUnit_0_io_dataOut_toVRF_bits_writeReq), + .io_toExWbReg_valid + (_vecAluExecUnit_0_io_toExWbReg_valid), + .io_toExWbReg_bits_dataSignals_pc_addr + (_vecAluExecUnit_0_io_toExWbReg_bits_dataSignals_pc_addr), + .io_toExWbReg_bits_dataSignals_exResult + (_vecAluExecUnit_0_io_toExWbReg_bits_dataSignals_exResult), + .io_toExWbReg_bits_ctrlSignals_decode_branch + (_vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_branch), + .io_toExWbReg_bits_ctrlSignals_decode_writeback_selector + (_vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_writeback_selector), + .io_toExWbReg_bits_ctrlSignals_decode_memory_function + (_vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_memory_function), + .io_toExWbReg_bits_ctrlSignals_decode_csr_funct + (_vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_csr_funct), + .io_toExWbReg_bits_ctrlSignals_decode_fence + (_vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_decode_fence), + .io_toExWbReg_bits_ctrlSignals_rd_index + (_vecAluExecUnit_0_io_toExWbReg_bits_ctrlSignals_rd_index), + .io_toExWbReg_bits_vectorExecNum_valid + (_vecAluExecUnit_0_io_toExWbReg_bits_vectorExecNum_valid), + .io_toExWbReg_bits_vectorExecNum_bits + (_vecAluExecUnit_0_io_toExWbReg_bits_vectorExecNum_bits) + ); + IntegerAluExecUnit vecAluExecUnit_1 ( + .clock (clock), + .reset (reset), + .io_signalIn_valid (~_T_17 & _T_9 & _T_14), + .io_signalIn_bits_vs1 + (io_frontend_resp_bits_inst_bits[19:15]), + .io_signalIn_bits_vs2 + (io_frontend_resp_bits_inst_bits[24:20]), + .io_signalIn_bits_vd + (io_frontend_resp_bits_inst_bits[11:7]), + .io_signalIn_bits_scalarVal + (_vectorDecoder_io_out_vSource == 3'h1 + ? rs1ValueToEX + : {{59{io_frontend_resp_bits_inst_bits[19]}}, + io_frontend_resp_bits_inst_bits[19:15]}), + .io_signalIn_bits_vectorDecode_veuFun + (_vectorDecoder_io_out_veuFun), + .io_signalIn_bits_vectorDecode_vSource + (_vectorDecoder_io_out_vSource), + .io_signalIn_bits_vectorDecode_vm (_vectorDecoder_io_out_vm), + .io_signalIn_bits_scalarDecode_branch + (_decoder_io_out_bits_branch), + .io_signalIn_bits_scalarDecode_writeback_selector + (_decoder_io_out_bits_writeback_selector), + .io_signalIn_bits_scalarDecode_memory_function + (_decoder_io_out_bits_memory_function), + .io_signalIn_bits_scalarDecode_csr_funct + (_decoder_io_out_bits_csr_funct), + .io_signalIn_bits_scalarDecode_fence (_decoder_io_out_bits_fence), + .io_signalIn_bits_vecConf_vtype_vsew (vecConfBypass_vtype_vsew), + .io_signalIn_bits_vecConf_vl (vecConfBypass_vl), + .io_signalIn_bits_pc_addr + (io_frontend_resp_bits_pc_addr), + .io_readVrf_resp_vs1Out + (_vecRegFile_io_readReq_2_resp_vs1Out), + .io_readVrf_resp_vs2Out + (_vecRegFile_io_readReq_2_resp_vs2Out), + .io_readVrf_resp_vdOut + (_vecRegFile_io_readReq_2_resp_vdOut), + .io_readVrf_resp_vm + (_vecRegFile_io_readReq_2_resp_vm), + .io_signalIn_ready + (_vecAluExecUnit_1_io_signalIn_ready), + .io_readVrf_req_sew + (_vecAluExecUnit_1_io_readVrf_req_sew), + .io_readVrf_req_readVdAsMaskSource + (_vecAluExecUnit_1_io_readVrf_req_readVdAsMaskSource), + .io_readVrf_req_idx + (_vecAluExecUnit_1_io_readVrf_req_idx), + .io_readVrf_req_vs1 + (_vecAluExecUnit_1_io_readVrf_req_vs1), + .io_readVrf_req_vs2 + (_vecAluExecUnit_1_io_readVrf_req_vs2), + .io_readVrf_req_vd + (_vecAluExecUnit_1_io_readVrf_req_vd), + .io_dataOut_toVRF_valid + (_vecAluExecUnit_1_io_dataOut_toVRF_valid), + .io_dataOut_toVRF_bits_vd + (_vecAluExecUnit_1_io_dataOut_toVRF_bits_vd), + .io_dataOut_toVRF_bits_vtype_vsew + (_vecAluExecUnit_1_io_dataOut_toVRF_bits_vtype_vsew), + .io_dataOut_toVRF_bits_index + (_vecAluExecUnit_1_io_dataOut_toVRF_bits_index), + .io_dataOut_toVRF_bits_last + (_vecAluExecUnit_1_io_dataOut_toVRF_bits_last), + .io_dataOut_toVRF_bits_data + (_vecAluExecUnit_1_io_dataOut_toVRF_bits_data), + .io_dataOut_toVRF_bits_vm + (_vecAluExecUnit_1_io_dataOut_toVRF_bits_vm), + .io_dataOut_toVRF_bits_writeReq + (_vecAluExecUnit_1_io_dataOut_toVRF_bits_writeReq), + .io_toExWbReg_valid + (_vecAluExecUnit_1_io_toExWbReg_valid), + .io_toExWbReg_bits_dataSignals_pc_addr + (_vecAluExecUnit_1_io_toExWbReg_bits_dataSignals_pc_addr), + .io_toExWbReg_bits_dataSignals_exResult + (_vecAluExecUnit_1_io_toExWbReg_bits_dataSignals_exResult), + .io_toExWbReg_bits_ctrlSignals_decode_branch + (_vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_branch), + .io_toExWbReg_bits_ctrlSignals_decode_writeback_selector + (_vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_writeback_selector), + .io_toExWbReg_bits_ctrlSignals_decode_memory_function + (_vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_memory_function), + .io_toExWbReg_bits_ctrlSignals_decode_csr_funct + (_vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_csr_funct), + .io_toExWbReg_bits_ctrlSignals_decode_fence + (_vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_decode_fence), + .io_toExWbReg_bits_ctrlSignals_rd_index + (_vecAluExecUnit_1_io_toExWbReg_bits_ctrlSignals_rd_index), + .io_toExWbReg_bits_vectorExecNum_valid + (_vecAluExecUnit_1_io_toExWbReg_bits_vectorExecNum_valid), + .io_toExWbReg_bits_vectorExecNum_bits + (_vecAluExecUnit_1_io_toExWbReg_bits_vectorExecNum_bits) + ); + assign io_frontend_req_valid = + WB_pc_redirect | _io_frontend_req_valid_T | _branch_predictor_io_out_valid + & io_frontend_resp_valid & _io_frontend_resp_ready_output; + assign io_frontend_req_bits_pc = + WB_pc_redirect + ? _csrUnit_io_resp_data + : _io_frontend_req_valid_T + ? _branch_evaluator_io_out_bits_pc + : _branch_predictor_io_out_bits_pc; + assign io_frontend_resp_ready = _io_frontend_resp_ready_output; +endmodule + +module Core( + input clock, + reset, + io_icache_axi4lite_ar_ready, + io_icache_axi4lite_aw_ready, + io_icache_axi4lite_b_valid, + input [2:0] io_icache_axi4lite_b_bits_resp, + input io_icache_axi4lite_r_valid, + input [31:0] io_icache_axi4lite_r_bits_data, + input [2:0] io_icache_axi4lite_r_bits_resp, + input io_icache_axi4lite_w_ready, + io_dcache_axi4lite_ar_ready, + io_dcache_axi4lite_aw_ready, + io_dcache_axi4lite_b_valid, + input [2:0] io_dcache_axi4lite_b_bits_resp, + input io_dcache_axi4lite_r_valid, + input [63:0] io_dcache_axi4lite_r_bits_data, + input [2:0] io_dcache_axi4lite_r_bits_resp, + input io_dcache_axi4lite_w_ready, + input [63:0] io_reset_vector, + io_hartid, + output io_icache_axi4lite_ar_valid, + output [63:0] io_icache_axi4lite_ar_bits_addr, + output [2:0] io_icache_axi4lite_ar_bits_prot, + output io_icache_axi4lite_aw_valid, + output [63:0] io_icache_axi4lite_aw_bits_addr, + output [2:0] io_icache_axi4lite_aw_bits_prot, + output io_icache_axi4lite_b_ready, + io_icache_axi4lite_r_ready, + io_icache_axi4lite_w_valid, + output [31:0] io_icache_axi4lite_w_bits_data, + output [3:0] io_icache_axi4lite_w_bits_strb, + output io_dcache_axi4lite_ar_valid, + output [63:0] io_dcache_axi4lite_ar_bits_addr, + output [2:0] io_dcache_axi4lite_ar_bits_prot, + output io_dcache_axi4lite_aw_valid, + output [63:0] io_dcache_axi4lite_aw_bits_addr, + output [2:0] io_dcache_axi4lite_aw_bits_prot, + output io_dcache_axi4lite_b_ready, + io_dcache_axi4lite_r_ready, + io_dcache_axi4lite_w_valid, + output [63:0] io_dcache_axi4lite_w_bits_data, + output [7:0] io_dcache_axi4lite_w_bits_strb +); + + wire _internalCpu_io_frontend_req_valid; + wire [63:0] _internalCpu_io_frontend_req_bits_pc; + wire _internalCpu_io_frontend_resp_ready; + wire _frontend_io_cpu_resp_valid; + wire [63:0] _frontend_io_cpu_resp_bits_pc_addr; + wire [31:0] _frontend_io_cpu_resp_bits_inst_bits; + wire _frontend_io_cpu_resp_bits_exceptionSignals_valid; + wire [63:0] _frontend_io_cpu_resp_bits_exceptionSignals_bits; + Frontend frontend ( + .clock (clock), + .reset (reset), + .io_cpu_req_valid (_internalCpu_io_frontend_req_valid), + .io_cpu_req_bits_pc (_internalCpu_io_frontend_req_bits_pc), + .io_cpu_resp_ready (_internalCpu_io_frontend_resp_ready), + .io_icache_axi4lite_ar_ready (io_icache_axi4lite_ar_ready), + .io_icache_axi4lite_r_valid (io_icache_axi4lite_r_valid), + .io_icache_axi4lite_r_bits_data (io_icache_axi4lite_r_bits_data), + .io_reset_vector (io_reset_vector), + .io_cpu_resp_valid (_frontend_io_cpu_resp_valid), + .io_cpu_resp_bits_pc_addr (_frontend_io_cpu_resp_bits_pc_addr), + .io_cpu_resp_bits_inst_bits (_frontend_io_cpu_resp_bits_inst_bits), + .io_cpu_resp_bits_exceptionSignals_valid + (_frontend_io_cpu_resp_bits_exceptionSignals_valid), + .io_cpu_resp_bits_exceptionSignals_bits + (_frontend_io_cpu_resp_bits_exceptionSignals_bits), + .io_icache_axi4lite_ar_valid (io_icache_axi4lite_ar_valid), + .io_icache_axi4lite_ar_bits_addr (io_icache_axi4lite_ar_bits_addr), + .io_icache_axi4lite_r_ready (io_icache_axi4lite_r_ready) + ); + VectorCpu internalCpu ( + .clock (clock), + .reset (reset), + .io_frontend_resp_valid (_frontend_io_cpu_resp_valid), + .io_frontend_resp_bits_pc_addr (_frontend_io_cpu_resp_bits_pc_addr), + .io_frontend_resp_bits_inst_bits (_frontend_io_cpu_resp_bits_inst_bits), + .io_frontend_resp_bits_exceptionSignals_valid + (_frontend_io_cpu_resp_bits_exceptionSignals_valid), + .io_frontend_resp_bits_exceptionSignals_bits + (_frontend_io_cpu_resp_bits_exceptionSignals_bits), + .io_dcache_axi4lite_ar_ready (io_dcache_axi4lite_ar_ready), + .io_dcache_axi4lite_aw_ready (io_dcache_axi4lite_aw_ready), + .io_dcache_axi4lite_b_valid (io_dcache_axi4lite_b_valid), + .io_dcache_axi4lite_r_valid (io_dcache_axi4lite_r_valid), + .io_dcache_axi4lite_r_bits_data (io_dcache_axi4lite_r_bits_data), + .io_dcache_axi4lite_w_ready (io_dcache_axi4lite_w_ready), + .io_hartid (io_hartid), + .io_frontend_req_valid (_internalCpu_io_frontend_req_valid), + .io_frontend_req_bits_pc (_internalCpu_io_frontend_req_bits_pc), + .io_frontend_resp_ready (_internalCpu_io_frontend_resp_ready), + .io_dcache_axi4lite_ar_valid (io_dcache_axi4lite_ar_valid), + .io_dcache_axi4lite_ar_bits_addr (io_dcache_axi4lite_ar_bits_addr), + .io_dcache_axi4lite_aw_valid (io_dcache_axi4lite_aw_valid), + .io_dcache_axi4lite_aw_bits_addr (io_dcache_axi4lite_aw_bits_addr), + .io_dcache_axi4lite_w_valid (io_dcache_axi4lite_w_valid), + .io_dcache_axi4lite_w_bits_data (io_dcache_axi4lite_w_bits_data), + .io_dcache_axi4lite_w_bits_strb (io_dcache_axi4lite_w_bits_strb) + ); + assign io_icache_axi4lite_ar_bits_prot = 3'h0; + assign io_icache_axi4lite_aw_valid = 1'h0; + assign io_icache_axi4lite_aw_bits_addr = 64'h0; + assign io_icache_axi4lite_aw_bits_prot = 3'h0; + assign io_icache_axi4lite_b_ready = 1'h0; + assign io_icache_axi4lite_w_valid = 1'h0; + assign io_icache_axi4lite_w_bits_data = 32'h0; + assign io_icache_axi4lite_w_bits_strb = 4'h0; + assign io_dcache_axi4lite_ar_bits_prot = 3'h0; + assign io_dcache_axi4lite_aw_bits_prot = 3'h0; + assign io_dcache_axi4lite_b_ready = 1'h1; + assign io_dcache_axi4lite_r_ready = 1'h1; +endmodule + diff --git a/fpga/Dcache_for_Verilator.sv b/fpga/Dcache_for_Verilator.sv new file mode 100644 index 00000000..a93e8370 --- /dev/null +++ b/fpga/Dcache_for_Verilator.sv @@ -0,0 +1,155 @@ +// Generated by CIRCT firtool-1.38.0 +// VCS coverage exclude_file +module mem_combMem_Data( + input [11:0] R0_addr, + input R0_en, + R0_clk, + input [11:0] W0_addr, + input W0_en, + W0_clk, + input [63:0] W0_data, + input [7:0] W0_mask, + output [63:0] R0_data +); + + (* rw_addr_collision = "yes" *) + reg [63:0] Memory[0:4095]; + + initial begin + $readmemh("vector_matmul_data.mem", Memory); + end + + reg _GEN; + reg [11:0] _GEN_0; + always @(posedge R0_clk) begin + _GEN <= R0_en; + _GEN_0 <= R0_addr; + end // always @(posedge) + always @(posedge W0_clk) begin + if (W0_en & W0_mask[0]) + Memory[W0_addr][32'h0 +: 8] <= W0_data[7:0]; + if (W0_en & W0_mask[1]) + Memory[W0_addr][32'h8 +: 8] <= W0_data[15:8]; + if (W0_en & W0_mask[2]) + Memory[W0_addr][32'h10 +: 8] <= W0_data[23:16]; + if (W0_en & W0_mask[3]) + Memory[W0_addr][32'h18 +: 8] <= W0_data[31:24]; + if (W0_en & W0_mask[4]) + Memory[W0_addr][32'h20 +: 8] <= W0_data[39:32]; + if (W0_en & W0_mask[5]) + Memory[W0_addr][32'h28 +: 8] <= W0_data[47:40]; + if (W0_en & W0_mask[6]) + Memory[W0_addr][32'h30 +: 8] <= W0_data[55:48]; + if (W0_en & W0_mask[7]) + Memory[W0_addr][32'h38 +: 8] <= W0_data[63:56]; + end // always @(posedge) + assign R0_data = _GEN ? Memory[_GEN_0] : 64'bx; +endmodule + +module Dcache_for_Verilator( + input clock, + reset, + io_ar_valid, + input [63:0] io_ar_bits_addr, + input [2:0] io_ar_bits_prot, + input io_aw_valid, + input [63:0] io_aw_bits_addr, + input [2:0] io_aw_bits_prot, + input io_b_ready, + io_r_ready, + io_w_valid, + input [63:0] io_w_bits_data, + input [7:0] io_w_bits_strb, + output io_ar_ready, + io_aw_ready, + io_b_valid, + output [2:0] io_b_bits_resp, + output io_r_valid, + output [63:0] io_r_bits_data, + output [2:0] io_r_bits_resp, + output io_w_ready, + debug_valid, + output [31:0] debug_bits +); + + wire [63:0] _mem_ext_R0_data; + reg debugToHost_valid; + reg [31:0] debugToHost_bits; + wire [14:0] _GEN = io_ar_bits_addr[14:0] - 15'h4000; + wire [63:0] internalWriteAddr = io_aw_bits_addr - 64'h4000; + reg [2:0] io_r_bits_data_REG; + wire [7:0][63:0] _GEN_0 = + {{{56'h0, _mem_ext_R0_data[63:56]}}, + {{48'h0, _mem_ext_R0_data[63:48]}}, + {{40'h0, _mem_ext_R0_data[63:40]}}, + {{32'h0, _mem_ext_R0_data[63:32]}}, + {{24'h0, _mem_ext_R0_data[63:24]}}, + {{16'h0, _mem_ext_R0_data[63:16]}}, + {{8'h0, _mem_ext_R0_data[63:8]}}, + {_mem_ext_R0_data}}; + reg io_r_valid_REG; + wire [63:0] _GEN_1 = + internalWriteAddr[2:0] == 3'h2 + ? {io_w_bits_data[47:0], 16'h0} + : internalWriteAddr[2:0] == 3'h1 ? {io_w_bits_data[55:0], 8'h0} : io_w_bits_data; + wire [7:0][63:0] _GEN_2 = + {{{io_w_bits_data[7:0], 56'h0}}, + {{io_w_bits_data[15:0], 48'h0}}, + {{io_w_bits_data[23:0], 40'h0}}, + {{io_w_bits_data[31:0], 32'h0}}, + {{io_w_bits_data[39:0], 24'h0}}, + {_GEN_1}, + {_GEN_1}, + {_GEN_1}}; + wire _io_b_valid_T = io_aw_valid & io_w_valid; + wire mem_MPORT_en = _io_b_valid_T & internalWriteAddr < 64'h1FFF; + wire [7:0][7:0] _GEN_3 = + {{{io_w_bits_strb[0], 7'h0}}, + {{io_w_bits_strb[1:0], 6'h0}}, + {{io_w_bits_strb[2:0], 5'h0}}, + {{io_w_bits_strb[3:0], 4'h0}}, + {{io_w_bits_strb[4:0], 3'h0}}, + {{io_w_bits_strb[5:0], 2'h0}}, + {{io_w_bits_strb[6:0], 1'h0}}, + {io_w_bits_strb}}; + reg io_b_valid_REG; + always @(posedge clock) begin + if (reset) begin + debugToHost_valid <= 1'h0; + debugToHost_bits <= 32'h0; + end + else begin + automatic logic _T_46 = _io_b_valid_T & io_aw_bits_addr == 64'h10000000; + debugToHost_valid <= ~mem_MPORT_en & _T_46; + if (mem_MPORT_en | ~_T_46) begin + end + else + debugToHost_bits <= io_w_bits_data[31:0]; + end + io_r_bits_data_REG <= _GEN[2:0]; + io_r_valid_REG <= io_ar_valid; + io_b_valid_REG <= _io_b_valid_T; + end // always @(posedge) + mem_combMem_Data mem_ext ( + .R0_addr (_GEN[14:3]), + .R0_en (1'h1), + .R0_clk (clock), + .W0_addr (internalWriteAddr[14:3]), + .W0_en (mem_MPORT_en), + .W0_clk (clock), + .W0_data (_GEN_2[internalWriteAddr[2:0]]), + .W0_mask (_GEN_3[internalWriteAddr[2:0]]), + .R0_data (_mem_ext_R0_data) + ); + assign io_ar_ready = 1'h1; + assign io_aw_ready = 1'h1; + assign io_b_valid = io_b_valid_REG; + assign io_b_bits_resp = 3'h0; + assign io_r_valid = io_r_valid_REG; + assign io_r_bits_data = _GEN_0[io_r_bits_data_REG]; + assign io_r_bits_resp = 3'h0; + assign io_w_ready = 1'h1; + assign debug_valid = debugToHost_valid; + assign debug_bits = debugToHost_bits; +endmodule + diff --git a/fpga/Icache_for_Verilator.sv b/fpga/Icache_for_Verilator.sv new file mode 100644 index 00000000..839b0d69 --- /dev/null +++ b/fpga/Icache_for_Verilator.sv @@ -0,0 +1,120 @@ +// Generated by CIRCT firtool-1.38.0 +// VCS coverage exclude_file +module mem_combMem( + input [12:0] R0_addr, + input R0_en, + R0_clk, + input [12:0] W0_addr, + input W0_en, + W0_clk, + input [31:0] W0_data, + input [3:0] W0_mask, + output [31:0] R0_data +); + + (* rw_addr_collision = "yes" *) + reg [31:0] Memory[0:8191]; + + initial begin + $readmemh("vector_matmul_inst.mem", Memory); + end + + reg _GEN; + reg [12:0] _GEN_0; + always @(posedge R0_clk) begin + _GEN <= R0_en; + _GEN_0 <= R0_addr; + end // always @(posedge) + always @(posedge W0_clk) begin + if (W0_en & W0_mask[0]) + Memory[W0_addr][32'h0 +: 8] <= W0_data[7:0]; + if (W0_en & W0_mask[1]) + Memory[W0_addr][32'h8 +: 8] <= W0_data[15:8]; + if (W0_en & W0_mask[2]) + Memory[W0_addr][32'h10 +: 8] <= W0_data[23:16]; + if (W0_en & W0_mask[3]) + Memory[W0_addr][32'h18 +: 8] <= W0_data[31:24]; + end // always @(posedge) + assign R0_data = _GEN ? Memory[_GEN_0] : 32'bx; +endmodule + +module Icache_for_Verilator( + input clock, + reset, + io_ar_valid, + input [63:0] io_ar_bits_addr, + input [2:0] io_ar_bits_prot, + input io_aw_valid, + input [63:0] io_aw_bits_addr, + input [2:0] io_aw_bits_prot, + input io_b_ready, + io_r_ready, + io_w_valid, + input [31:0] io_w_bits_data, + input [3:0] io_w_bits_strb, + output io_ar_ready, + io_aw_ready, + io_b_valid, + output [2:0] io_b_bits_resp, + output io_r_valid, + output [31:0] io_r_bits_data, + output [2:0] io_r_bits_resp, + output io_w_ready +); + + wire _io_r_valid_output; + wire [31:0] _mem_ext_R0_data; + reg [31:0] r_channel_bits_reg_data; + reg [2:0] r_channel_bits_reg_resp; + reg r_channel_valid_reg; + wire r_stall = _io_r_valid_output & ~io_r_ready; + reg retain_r_channel; + reg r_channel_valid_reg_REG; + reg io_r_valid_REG; + assign _io_r_valid_output = retain_r_channel ? r_channel_valid_reg : io_r_valid_REG; + reg b_valid; + wire mem_MPORT_en = io_aw_valid & io_w_valid; + always @(posedge clock) begin + if (r_stall & retain_r_channel) begin + end + else begin + r_channel_bits_reg_data <= _mem_ext_R0_data; + r_channel_bits_reg_resp <= 3'h0; + end + if (r_stall) begin + if (retain_r_channel) begin + end + else + r_channel_valid_reg <= io_r_valid_REG; + end + else + r_channel_valid_reg <= r_channel_valid_reg_REG; + retain_r_channel <= r_stall; + r_channel_valid_reg_REG <= io_ar_valid & ~r_stall; + io_r_valid_REG <= io_ar_valid & ~r_stall; + if (reset) + b_valid <= 1'h0; + else + b_valid <= mem_MPORT_en; + end // always @(posedge) + mem_combMem mem_ext ( + .R0_addr (io_ar_bits_addr[14:2]), + .R0_en (1'h1), + .R0_clk (clock), + .W0_addr (io_aw_bits_addr[14:2]), + .W0_en (mem_MPORT_en), + .W0_clk (clock), + .W0_data (io_w_bits_data), + .W0_mask (io_w_bits_strb), + .R0_data (_mem_ext_R0_data) + ); + assign io_ar_ready = ~r_stall; + assign io_aw_ready = 1'h1; + assign io_b_valid = b_valid; + assign io_b_bits_resp = 3'h0; + assign io_r_valid = _io_r_valid_output; + assign io_r_bits_data = retain_r_channel ? r_channel_bits_reg_data : _mem_ext_R0_data; + assign io_r_bits_resp = retain_r_channel ? r_channel_bits_reg_resp : 3'h0; + assign io_w_ready = 1'h1; +endmodule + diff --git a/fpga/SEG_PUT.v b/fpga/SEG_PUT.v new file mode 100644 index 00000000..d3263773 --- /dev/null +++ b/fpga/SEG_PUT.v @@ -0,0 +1,109 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: Nakajo lab. +// Engineer: Hironari Yoshiuchi +// +// Create Date: 16:56:03 05/12/2014 +// Design Name: +// Module Name: SEG_PUT +// Project Name: +// Target Devices: Nexys4 +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// +module SEG_PUT(CLK, reset, check, SEG, AN + ); + input CLK, reset; + input [31:0] check; + output [6:0] SEG; + output [7:0] AN; + + reg [2:0] SEG_state; + + wire SEG_CLK; + + SEG_CLK_GEN SEG_CLK_GEN(.CLK(CLK), .reset(reset), .SEG_CLK(SEG_CLK)); + + assign AN = (SEG_state == 0) ? 8'b11111110: + (SEG_state == 1) ? 8'b11111101: + (SEG_state == 2) ? 8'b11111011: + (SEG_state == 3) ? 8'b11110111: + (SEG_state == 4) ? 8'b11101111: + (SEG_state == 5) ? 8'b11011111: + (SEG_state == 6) ? 8'b10111111: + (SEG_state == 7) ? 8'b01111111: + /*�����Ȓl*/ 8'b11111111; + + assign SEG = (SEG_state == 0) ? hex7seg(check[3:0]): + (SEG_state == 1) ? hex7seg(check[7:4]): + (SEG_state == 2) ? hex7seg(check[11:8]): + (SEG_state == 3) ? hex7seg(check[15:12]): + (SEG_state == 4) ? hex7seg(check[19:16]): + (SEG_state == 5) ? hex7seg(check[23:20]): + (SEG_state == 6) ? hex7seg(check[27:24]): + (SEG_state == 7) ? hex7seg(check[31:28]): + /*�����Ȓl*/ 7'b0000000; + + + always@(posedge SEG_CLK or negedge reset) begin + if(!reset) begin + SEG_state <= 0; + end else begin + if(SEG_state == 7) SEG_state <= 0; + else SEG_state <= SEG_state + 1; + end + end + + + function [6:0] hex7seg; + input [3:0] hex; + begin + case (hex) + 0: hex7seg = 7'b1000000; + 1: hex7seg = 7'b1111001; + 2: hex7seg = 7'b0100100; + 3: hex7seg = 7'b0110000; + 4: hex7seg = 7'b0011001; + 5: hex7seg = 7'b0010010; + 6: hex7seg = 7'b0000010; + 7: hex7seg = 7'b1111000; + 8: hex7seg = 7'b0000000; + 9: hex7seg = 7'b0010000; + 10: hex7seg = 7'b0001000; + 11: hex7seg = 7'b0000011; + 12: hex7seg = 7'b1000110; + 13: hex7seg = 7'b0100001; + 14: hex7seg = 7'b0000110; + 15: hex7seg = 7'b0001110; + endcase + end + endfunction +endmodule + +module SEG_CLK_GEN(CLK, reset, SEG_CLK + ); + input CLK, reset; + output reg SEG_CLK; + + reg [16:0] cnt; + + always@(posedge CLK or negedge reset) begin + if(!reset) begin + cnt <= 0; + SEG_CLK <= 0; + end else if(cnt == 100000) begin + cnt <= 0; + SEG_CLK <= 1; + end else begin + cnt <= cnt + 1; + SEG_CLK <= 0; + end + end +endmodule \ No newline at end of file diff --git a/fpga/fpga.v b/fpga/fpga.v new file mode 100644 index 00000000..7d81d024 --- /dev/null +++ b/fpga/fpga.v @@ -0,0 +1,97 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 12/01/2023 04:05:10 PM +// Design Name: +// Module Name: fpga +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module fpga( + input clk_in1_0, + input RST_0, + output [6:0] SEG_0, + output [7:0] AN_0 + ); + wire CLKFBOUT; + + wire [31:0] check; + wire CLK_top, CLK_25MHz; + + BUFG iBUFG(.I(CLK_top), .O(CLK_25MHz)); + MMCME2_BASE #( + .CLKFBOUT_MULT_F(50.0), + .CLKFBOUT_PHASE(0.0), + .CLKIN1_PERIOD(10.0), // 100Hz -> 10ns + .CLKOUT0_DIVIDE_F(40.0), + .CLKOUT1_DIVIDE(1), + .CLKOUT2_DIVIDE(1), + .CLKOUT3_DIVIDE(1), + .CLKOUT4_DIVIDE(1), + .CLKOUT5_DIVIDE(1), + .CLKOUT6_DIVIDE(1), + .CLKOUT0_DUTY_CYCLE(0.5), + .CLKOUT1_DUTY_CYCLE(0.5), + .CLKOUT2_DUTY_CYCLE(0.5), + .CLKOUT3_DUTY_CYCLE(0.5), + .CLKOUT4_DUTY_CYCLE(0.5), + .CLKOUT5_DUTY_CYCLE(0.5), + .CLKOUT6_DUTY_CYCLE(0.5), + .CLKOUT0_PHASE(0.0), + .CLKOUT1_PHASE(0.0), + .CLKOUT2_PHASE(0.0), + .CLKOUT3_PHASE(0.0), + .CLKOUT4_PHASE(0.0), + .CLKOUT5_PHASE(0.0), + .CLKOUT6_PHASE(0.0), + .CLKOUT4_CASCADE("FALSE"), + .DIVCLK_DIVIDE(5), + .REF_JITTER1(0.0), + .STARTUP_WAIT("FALSE") + ) MMCME2_BASE_inst ( + .CLKOUT0(CLK_top), + .CLKOUT0B(), // 1-bit output: Inverted CLKOUT0 + .CLKOUT1(), // 1-bit output: CLKOUT1 + .CLKOUT1B(), // 1-bit output: Inverted CLKOUT1 + .CLKOUT2(), // 1-bit output: CLKOUT2 + .CLKOUT2B(), // 1-bit output: Inverted CLKOUT2 + .CLKOUT3(), // 1-bit output: CLKOUT3 + .CLKOUT3B(), // 1-bit output: Inverted CLKOUT3 + .CLKOUT4(), // 1-bit output: CLKOUT4 + .CLKOUT5(), // 1-bit output: CLKOUT5 + .CLKOUT6(), // 1-bit output: CLKOUT6 + .CLKFBOUT(CLKFBOUT), + .CLKFBOUTB(), // 1-bit output: Inverted CLKFBOUT + .LOCKED(), + .CLKIN1(clk_in1_0), + .PWRDWN(1'b0), // 1-bit input: Power-down + .RST(1'b0), // 1-bit input: Reset + .CLKFBIN(CLKFBOUT) + ); + + top top( + .CLK(CLK_25MHz), + .RST(RST_0), + .tohost(check) + ); + SEG_PUT seg_put( + .CLK(clk_in1_0), + .reset(RST_0), + .check(check), + .SEG(SEG_0), + .AN(AN_0) + ); +endmodule diff --git a/fpga/nexys4.xdc b/fpga/nexys4.xdc new file mode 100644 index 00000000..1e83669b --- /dev/null +++ b/fpga/nexys4.xdc @@ -0,0 +1,28 @@ +set_property PACKAGE_PIN E3 [get_ports clk_in1_0] +set_property IOSTANDARD LVCMOS33 [get_ports clk_in1_0] +create_clock -period 10.0 [get_ports clk_in1_0] + +set_property IOSTANDARD LVCMOS33 [get_ports RST_0] +set_property PACKAGE_PIN C12 [get_ports RST_0] + +# number of 7seg +set_property IOSTANDARD LVCMOS33 [get_ports {SEG_0[*]}] +set_property PACKAGE_PIN L3 [get_ports {SEG_0[0]}] +set_property PACKAGE_PIN N1 [get_ports {SEG_0[1]}] +set_property PACKAGE_PIN L5 [get_ports {SEG_0[2]}] +set_property PACKAGE_PIN L4 [get_ports {SEG_0[3]}] +set_property PACKAGE_PIN K3 [get_ports {SEG_0[4]}] +set_property PACKAGE_PIN M2 [get_ports {SEG_0[5]}] +set_property PACKAGE_PIN L6 [get_ports {SEG_0[6]}] + +# location of 7seg +set_property IOSTANDARD LVCMOS33 [get_ports {AN_0[*]}] +set_property PACKAGE_PIN N6 [get_ports {AN_0[0]}] +set_property PACKAGE_PIN M6 [get_ports {AN_0[1]}] +set_property PACKAGE_PIN M3 [get_ports {AN_0[2]}] +set_property PACKAGE_PIN N5 [get_ports {AN_0[3]}] +set_property PACKAGE_PIN N2 [get_ports {AN_0[4]}] +set_property PACKAGE_PIN N4 [get_ports {AN_0[5]}] +set_property PACKAGE_PIN L1 [get_ports {AN_0[6]}] +set_property PACKAGE_PIN M1 [get_ports {AN_0[7]}] + diff --git a/fpga/sim.v b/fpga/sim.v new file mode 100644 index 00000000..d16766da --- /dev/null +++ b/fpga/sim.v @@ -0,0 +1,46 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 11/28/2023 07:11:11 PM +// Design Name: +// Module Name: sim +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module sim(); + wire [31:0] tohost; + reg CLK, RST; + + top top( + .CLK(CLK), + .RST(RST), + .tohost(tohost) + ); + + initial begin + RST = 1; + CLK = 0; + + #256 RST = 0; + #256 RST = 1; + #1048576 $finish; + end + + always begin + #2 CLK = ~CLK; + end + +endmodule diff --git a/fpga/top.v b/fpga/top.v new file mode 100644 index 00000000..5da13859 --- /dev/null +++ b/fpga/top.v @@ -0,0 +1,165 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 11/28/2023 03:04:21 PM +// Design Name: +// Module Name: top +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module top( + input CLK, + input RST, + output [31:0] tohost + ); + wire io_icache_axi4lite_ar_ready; + wire io_icache_axi4lite_aw_ready; + wire io_icache_axi4lite_b_valid; + wire [2:0] io_icache_axi4lite_b_bits_resp; + wire io_icache_axi4lite_r_valid; + wire [31:0] io_icache_axi4lite_r_bits_data; + wire [2:0] io_icache_axi4lite_r_bits_resp; + // wire io_icache_axi4lite_w_ready; + wire io_dcache_axi4lite_ar_ready; + wire io_dcache_axi4lite_aw_ready; + wire io_dcache_axi4lite_b_valid; + wire [2:0] io_dcache_axi4lite_b_bits_resp; + wire io_dcache_axi4lite_r_valid; + wire [63:0] io_dcache_axi4lite_r_bits_data; + wire [2:0] io_dcache_axi4lite_r_bits_resp; + wire io_dcache_axi4lite_w_ready; + // wire [63:0] io_reset_vector; + // wire io_hartid; + wire io_icache_axi4lite_ar_valid; + wire [63:0] io_icache_axi4lite_ar_bits_addr; + wire [2:0] io_icache_axi4lite_ar_bits_prot; + wire io_icache_axi4lite_aw_valid; + wire [63:0] io_icache_axi4lite_aw_bits_addr; + wire [2:0] io_icache_axi4lite_aw_bits_prot; + wire io_icache_axi4lite_b_ready; + wire io_icache_axi4lite_r_ready; + wire io_icache_axi4lite_w_valid; + wire [31:0] io_icache_axi4lite_w_bits_data; + wire [3:0] io_icache_axi4lite_w_bits_strb; + wire io_dcache_axi4lite_ar_valid; + wire [63:0] io_dcache_axi4lite_ar_bits_addr; + wire [2:0] io_dcache_axi4lite_ar_bits_prot; + wire io_dcache_axi4lite_aw_valid; + wire [63:0] io_dcache_axi4lite_aw_bits_addr; + wire [2:0] io_dcache_axi4lite_aw_bits_prot; + wire io_dcache_axi4lite_b_ready; + wire io_dcache_axi4lite_r_ready; + wire io_dcache_axi4lite_w_valid; + wire [63:0] io_dcache_axi4lite_w_bits_data; + wire [7:0] io_dcache_axi4lite_w_bits_strb; + // wire tohost_valid; + wire [31:0] tohost_bits; + + Core core( + .clock(CLK), + .reset(!RST), + .io_icache_axi4lite_ar_ready(io_icache_axi4lite_ar_ready), + .io_icache_axi4lite_aw_ready(io_icache_axi4lite_aw_ready), + .io_icache_axi4lite_b_valid(io_icache_axi4lite_b_valid), + .io_icache_axi4lite_b_bits_resp(io_icache_axi4lite_b_bits_resp), + .io_icache_axi4lite_r_valid(io_icache_axi4lite_r_valid), + .io_icache_axi4lite_r_bits_data(io_icache_axi4lite_r_bits_data), + .io_icache_axi4lite_r_bits_resp(io_icache_axi4lite_r_bits_resp), + .io_icache_axi4lite_w_ready(), + .io_dcache_axi4lite_ar_ready(io_dcache_axi4lite_ar_ready), + .io_dcache_axi4lite_aw_ready(io_dcache_axi4lite_aw_ready), + .io_dcache_axi4lite_b_valid(io_dcache_axi4lite_b_valid), + .io_dcache_axi4lite_b_bits_resp(io_dcache_axi4lite_b_bits_resp), + .io_dcache_axi4lite_r_valid(io_dcache_axi4lite_r_valid), + .io_dcache_axi4lite_r_bits_data(io_dcache_axi4lite_r_bits_data), + .io_dcache_axi4lite_r_bits_resp(io_dcache_axi4lite_r_bits_resp), + .io_dcache_axi4lite_w_ready(io_dcache_axi4lite_w_ready), + .io_reset_vector(64'h0), + .io_hartid(64'h0), + .io_icache_axi4lite_ar_valid(io_icache_axi4lite_ar_valid), + .io_icache_axi4lite_ar_bits_addr(io_icache_axi4lite_ar_bits_addr), + .io_icache_axi4lite_ar_bits_prot(io_icache_axi4lite_ar_bits_prot), + .io_icache_axi4lite_aw_valid(io_icache_axi4lite_aw_valid), + .io_icache_axi4lite_aw_bits_addr(io_icache_axi4lite_aw_bits_addr), + .io_icache_axi4lite_aw_bits_prot(io_icache_axi4lite_aw_bits_prot), + .io_icache_axi4lite_b_ready(io_icache_axi4lite_b_ready), + .io_icache_axi4lite_r_ready(io_icache_axi4lite_r_ready), + .io_icache_axi4lite_w_valid(io_icache_axi4lite_w_valid), + .io_icache_axi4lite_w_bits_data(io_icache_axi4lite_w_bits_data), + .io_icache_axi4lite_w_bits_strb(io_icache_axi4lite_w_bits_strb), + .io_dcache_axi4lite_ar_valid(io_dcache_axi4lite_ar_valid), + .io_dcache_axi4lite_ar_bits_addr(io_dcache_axi4lite_ar_bits_addr), + .io_dcache_axi4lite_ar_bits_prot(io_dcache_axi4lite_ar_bits_prot), + .io_dcache_axi4lite_aw_valid(io_dcache_axi4lite_aw_valid), + .io_dcache_axi4lite_aw_bits_addr(io_dcache_axi4lite_aw_bits_addr), + .io_dcache_axi4lite_aw_bits_prot(io_dcache_axi4lite_aw_bits_prot), + .io_dcache_axi4lite_b_ready(io_dcache_axi4lite_b_ready), + .io_dcache_axi4lite_r_ready(io_dcache_axi4lite_r_ready), + .io_dcache_axi4lite_w_valid(io_dcache_axi4lite_w_valid), + .io_dcache_axi4lite_w_bits_data(io_dcache_axi4lite_w_bits_data), + .io_dcache_axi4lite_w_bits_strb(io_dcache_axi4lite_w_bits_strb) + ); + Icache_for_Verilator icache( + .clock(CLK), + .reset(!RST), + .io_ar_valid(io_icache_axi4lite_ar_valid), + .io_ar_bits_addr(io_icache_axi4lite_ar_bits_addr), + .io_ar_bits_prot(io_icache_axi4lite_ar_bits_prot), + .io_aw_valid(io_icache_axi4lite_aw_valid), + .io_aw_bits_addr(io_icache_axi4lite_aw_bits_addr), + .io_aw_bits_prot(io_icache_axi4lite_aw_bits_prot), + .io_b_ready(io_icache_axi4lite_b_ready), + .io_r_ready(io_icache_axi4lite_r_ready), + .io_w_valid(io_icache_axi4lite_w_valid), + .io_w_bits_data(io_icache_axi4lite_w_bits_data), + .io_w_bits_strb(io_icache_axi4lite_w_bits_strb), + .io_ar_ready(io_icache_axi4lite_ar_ready), + .io_aw_ready(io_icache_axi4lite_aw_ready), + .io_b_valid(io_icache_axi4lite_b_valid), + .io_b_bits_resp(io_icache_axi4lite_b_bits_resp), + .io_r_valid(io_icache_axi4lite_r_valid), + .io_r_bits_data(io_icache_axi4lite_r_bits_data), + .io_r_bits_resp(io_icache_axi4lite_r_bits_resp), + .io_w_ready() + ); + Dcache_for_Verilator dcache( + .clock(CLK), + .reset(!RST), + .io_ar_valid(io_dcache_axi4lite_ar_valid), + .io_ar_bits_addr(io_dcache_axi4lite_ar_bits_addr), + .io_ar_bits_prot(io_dcache_axi4lite_ar_bits_prot), + .io_aw_valid(io_dcache_axi4lite_aw_valid), + .io_aw_bits_addr(io_dcache_axi4lite_aw_bits_addr), + .io_aw_bits_prot(io_dcache_axi4lite_aw_bits_prot), + .io_b_ready(io_dcache_axi4lite_b_ready), + .io_r_ready(io_dcache_axi4lite_r_ready), + .io_w_valid(io_dcache_axi4lite_w_valid), + .io_w_bits_data(io_dcache_axi4lite_w_bits_data), + .io_w_bits_strb(io_dcache_axi4lite_w_bits_strb), + .io_ar_ready(io_dcache_axi4lite_ar_ready), + .io_aw_ready(io_dcache_axi4lite_aw_ready), + .io_b_valid(io_dcache_axi4lite_b_valid), + .io_b_bits_resp(io_dcache_axi4lite_b_bits_resp), + .io_r_valid(io_dcache_axi4lite_r_valid), + .io_r_bits_data(io_dcache_axi4lite_r_bits_data), + .io_r_bits_resp(io_dcache_axi4lite_r_bits_resp), + .io_w_ready(io_dcache_axi4lite_w_ready), + .debug_valid(), + .debug_bits(tohost_bits) + ); + + assign tohost = tohost_bits; +endmodule diff --git a/fpga/vector_matmul_data.mem b/fpga/vector_matmul_data.mem new file mode 100644 index 00000000..7ca5dae9 --- /dev/null +++ b/fpga/vector_matmul_data.mem @@ -0,0 +1,257 @@ +fcfe0501fd04fdff +0305fffafd0406fa +fafdfefc02f80600 +0206fa02fb0304f8 +00fe0302ff02fdfc +05f9fa03fe0401fe +03fdfefc060106f8 +fb01fc04ff050101 +04fe00050505fcff +fa06f902fcfc0406 +05fd06fdf9fbfdf8 +fd0505fc04030105 +fb0204050605f905 +fbf9fafcf8030000 +05fbfef8020403fd +fbfa06fefff8f902 +04040106fafdfa06 +01fcfa00f8fb05fc +0304fdfc03fafc00 +0202f8f800faf802 +fbfffc01fb02f803 +020503020506f9fe +fefa030402f9ff01 +01fb01fc0405fd05 +f9fb0200fdff0300 +ff06ff02fbfa0602 +03fbf8fa04000405 +fbfa030203ff01fc +faf803f8fff9fffd +fbfcf9030104ffff +fc000204f903fffc +fc0204fa06fffb01 +01fefafef8050106 +fe05f8ff04fd0302 +fffd03fffbfcfefb +fb01fbfc02fd01fd +0203fbfdfcff0500 +04ff00f905fe04fb +06fbff060203fbfc +f901fdfe01f8f804 +fe0404000505f801 +fe00fcf9fbfbfc05 +020501fefafc0500 +0604fe0503050602 +0604f9fa03010600 +fc0603f80506faf9 +03f8fcfcfb040203 +06fd04fefcfa04fc +00fa00f8fafdf805 +06fdf804fb0503fc +fa00fc030302fa06 +01fb00fc0406fdfd +fdfaf801ffff05f8 +fcf902fcfafd00fb +fafdfbfc06020305 +fa04fa05020205fb +06fe040403fdfb03 +f9f8f8fffa01fc04 +fcfffd01f8fdfdfb +fc020606fc0300fa +fe010205fdf800fa +00010300f90106f8 +0101fe030503f8ff +0402fcfa05fefb00 +fd01f8f8fe0504ff +fa01060102fa0501 +f8fdfe0503f805ff +0402fa04fffdf800 +06060504fdfef903 +06fcf8faf9fb0003 +0304f9fafa0502fa +02fefefb0601fc01 +05f90602fcfe0301 +03fffbf8faf8fe01 +05f9fe02fd03fbf8 +04fb02fc00fd05ff +0206fa05fa050102 +01fbff01fa06f804 +f90205fc0206fffb +0301fc01ff060101 +faf8f9fffe06fb01 +fb05fb00fafb06f9 +f8020202fe02fbfa +020505ff0401fcfc +0401fb0606030103 +020104fa03f8fa06 +00f804fefa05fdfb +06fafc00fafc0405 +00fa05fcfff80404 +f806fdfb04fdff01 +02f801f905f80004 +050103fffbf804fe +fc03f903fffcf900 +fcf9fc0106f8ffff +020603fcff03fafd +f9fcfefc05050205 +fe0104fcfdfc0506 +02ff0103fa0203fa +f800fafef9f803f9 +f906fd03fbfa0405 +0502fbfe010205fc +0003f80403050604 +050406fa00f90205 +00fc01010500fb06 +0402fefc0003fffe +fa05fffdfc01f9fc +f806020201f9fd00 +fffcfafbfe000400 +f903fffefdfdfb02 +fd0400f8050102fb +f804fdf8f8fbfdfe +feff0303f80206ff +00fe00fff9fe02fb +fbfbf806fcfe0505 +06fcff06fd0100fd +feffff04f9fa0106 +0000030004030103 +01faff06fffff9fa +0102f9fa0201fafb +fffdfd0003fcf906 +02fdfff8fe06fef8 +f901f905f8fafffc +f8fe06fafdf9f906 +05fafe02fdfffafc +ffff01fc060401fd +fdfe0203fcfd06fa +f901fb06fe05fefa +0605fd0301fffefd +04f8fffafefe00fe +0000fe0002f806fb +fbfc00020505fbf8 +fefa010100f9f904 +fafbfc03fd02f9f9 +05fefdfefc00f9fe +fcfff9f9040400fe +ff01f9fffef8fbfb +0200fbfcf9060204 +fef901fb01030300 +fbf806fffef9faf9 +0505000100040106 +03fa0404fa01f806 +f900f9fff9fffbfa +fbfefffafafc0005 +0403060004f90405 +0302f80205f9f803 +010606f90606fe03 +fffff90102fdf903 +fc04fbfffd02f8fe +fe0301fc06fa02ff +f8fafaff03fc0505 +030101ffff010201 +fe01fef9fb000306 +f80504f8f8f8fdfc +06fc05fdfc03f9fc +00fbf9f8fdfd0302 +f804fdf903050604 +fdf9fc0003fb0403 +020402fd01fd00ff +fa04fb0104f9f9fc +f9f9fcff00060303 +fd05f8f80506fc03 +fafbfe0203fd04fd +f8f8fa0003fefdfb +fdfdf906fd02fdfc +000305f8fb010502 +f9fbfffe00fbfe02 +03fe0205fffffd03 +f906fbff01030305 +fafffb0003060204 +fff9f8fcf8fffdff +020604f9fc0406fa +0500fcfcf902fbfa +0004fd05000004fc +f9fafb00fcfa06fe +04030101fdfdfaff +000505fefb06fbfc +05fb03ff06f8fdf8 +fa03f9f9f8fafcfb +ff02fbf80201f9fc +fa0505fa05faff01 +fcf8fffdfafafd05 +f8fc05fb05fbfd02 +ff020601fd0001f9 +0301fe0404020501 +06f904fbfbff02fe +fff90602f80101fc +01fc01f905fcfb03 +04fd060501fc03fd +04f80604020300fa +0103fefcfdfcf9ff +06f903fbf802ff00 +fbfcfff8ff02f905 +fbff0302fd00fb06 +fbf9f9f903fd00ff +fefe06fd01fef800 +0205050101faf8ff +01f806fffafcfd00 +fcfbfbfff9f9f803 +05ff01fbfc03fc02 +01fbf8fe03f800fe +f9fdff060501fffa +fefaf8f806060106 +f80306ff0103fe01 +fcf800ff0601fe02 +06f8020404ff05fb +05f9fbfffbfdf800 +0301fafd0505fc04 +fafc020306f8fbfc +06fc0102f8000203 +04fefd06ff010306 +04f8fcfaf8f8f9fa +f900fd02fa000100 +04fc000101fc03fa +00faf8fef804f806 +fc00030106f803fa +ff06f9040002fafc +fdfb05f9f8fc01f9 +fbfa060200f903f9 +04fbfb020300fafc +fe02f90106fe0105 +fa06fc03fffbfb04 +06f805fdfdfffc06 +040404f803fd03fc +0405fffa0203fc00 +0504020305f9fd04 +fcfa0105fefb0300 +faf9040601fe0603 +fcfcfcfdf900f9fe +01fafef901fef801 +ff0200f902030104 +06fa00010501f803 +0200fc03fdf8fef9 +fc01fa0402fdfd01 +fd00f904ff00f9f9 +05fc0305f8fbfe03 +fd01fbfd0004fb03 +03fafb01fbf80406 +05f803fc0100fef9 +fe06fbfe0100fe02 +f9fc0104fffc01fb +fe06f9fb00fef804 +0400fef90402fa00 +0400f9030005ff01 +fdf90300f90004f9 +f9fb060303030103 +050301ff05f8faf9 +ffff01fbfe030201 +05fefd05fc06fc04 +fffffff90000fbfe +fefafd05fb00fc01 +fbfef801f80005ff +01ff04fef802faf9 +fc01fbfffb0300f8 +fa00fdf903fdfe06 +06fefef9fd02fb03 +04030205fcf801f8 +0101010101010101 diff --git a/fpga/vector_matmul_inst.mem b/fpga/vector_matmul_inst.mem new file mode 100644 index 00000000..630ca45f --- /dev/null +++ b/fpga/vector_matmul_inst.mem @@ -0,0 +1,352 @@ +00000093 +00000113 +00000193 +00000213 +00000293 +00000313 +00000393 +00000413 +00000493 +00000513 +00000593 +00000613 +00000693 +00000713 +00000793 +00000813 +00000893 +00000913 +00000993 +00000a13 +00000a93 +00000b13 +00000b93 +00000c13 +00000c93 +00000d13 +00000d93 +00000e13 +00000e93 +00000f13 +00000f93 +00000297 +03828293 +30529073 +00005197 +f7818193 +10000217 +ff720213 +fc027213 +f1402573 +00100593 +00b57063 +00006137 +ff01011b +1d00006f +ef010113 +00113423 +00213823 +00313c23 +02413023 +02513423 +02613823 +02713c23 +04813023 +04913423 +04a13823 +04b13c23 +06c13023 +06d13423 +06e13823 +06f13c23 +09013023 +09113423 +09213823 +09313c23 +0b413023 +0b513423 +0b613823 +0b713c23 +0d813023 +0d913423 +0da13823 +0db13c23 +0fc13023 +0fd13423 +0fe13823 +0ff13c23 +34202573 +341025f3 +00010613 +120000ef +34151073 +000022b7 +8002829b +3002a073 +00813083 +01013103 +01813183 +02013203 +02813283 +03013303 +03813383 +04013403 +04813483 +05013503 +05813583 +06013603 +06813683 +07013703 +07813783 +08013803 +08813883 +09013903 +09813983 +0a013a03 +0a813a83 +0b013b03 +0b813b83 +0c013c03 +0c813c83 +0d013d03 +0d813d83 +0e013e03 +0e813e83 +0f013f03 +0f813f83 +11010113 +30200073 +02000793 +0c07f057 +02000813 +00050893 +40050313 +02000513 +02088087 +42006257 +00000793 +00f58733 +0b070107 +961121d7 +023221d7 +423026d7 +0007871b +00e60733 +00d70023 +00178793 +fca79ee3 +02088893 +02060613 +fc6892e3 +00008067 +b0201073 +b0001073 +00008067 +c02027f3 +00f53023 +c00027f3 +00f5b023 +00008067 +100007b7 +00a7a023 +0000006f +0105959b +00b567b3 +0007879b +10000737 +00f72023 +0000006f +00051063 +00008067 +ff010113 +00000593 +00000513 +00113423 +1e0000ef +100007b7 +00a7a023 +0000006f +00b567b3 +00c7e7b3 +0077f793 +00c50833 +02078463 +00c58633 +00050793 +0b057663 +0005c703 +00158593 +00178793 +fee78fa3 +fec598e3 +00008067 +04050693 +0906f863 +00058713 +00068793 +00073383 +00873283 +01073f83 +01873f03 +02073e83 +02873e03 +03073303 +03873883 +04078793 +f877b023 +f857b423 +f9f7b823 +f9e7bc23 +fbd7b023 +fbc7b423 +fa67b823 +fb17bc23 +04070713 +fb07ece3 +fbf60613 +fc067793 +04078793 +fc067613 +00f585b3 +00c687b3 +f907f4e3 +0005b703 +00878793 +00858593 +fee7bc23 +ff07e8e3 +00008067 +00008067 +00050793 +fddff06f +00c567b3 +0077f793 +00c50633 +0ff5f713 +00078e63 +00050793 +02c57c63 +00178793 +fee78fa3 +fef61ce3 +00008067 +00004797 +4607b783 +02f70733 +fec578e3 +00050793 +00878793 +fee7bc23 +fec7ece3 +00008067 +00008067 +00054783 +00078e63 +00050793 +0017c703 +00178793 +fe071ce3 +40a78533 +00008067 +00000513 +00008067 +00b506b3 +00050793 +00059863 +0240006f +00178793 +00f68a63 +0007c703 +fe071ae3 +40a78533 +00008067 +40a68533 +00008067 +00000513 +00008067 +00054783 +00158593 +00150513 +fff5c703 +00078a63 +fee786e3 +0007851b +40e5053b +00008067 +00000513 +ff5ff06f +00050793 +0005c703 +00178793 +00158593 +fee78fa3 +fe0718e3 +00008067 +ff010113 +00004617 +39460613 +00004597 +b8458593 +00004517 +f7c50513 +00113423 +d49ff0ef +c0818e13 +000e0f13 +00000e93 +00004f97 +f60f8f93 +00004317 +f7830313 +02000293 +005e9893 +000f8513 +01f888b3 +000f0813 +c0050713 +00088693 +00000613 +0006c783 +00074583 +02b787bb +00f607bb +0187961b +02070713 +4186561b +00168693 +fea710e3 +00f80023 +00170513 +00180813 +fca312e3 +001e8e93 +020f0f13 +fa5e94e3 +00004617 +31860613 +c2818513 +00100793 +fe060713 +000e0693 +00078a63 +00070783 +00068583 +40b787b3 +0017b793 +00170713 +00168693 +fec712e3 +02070613 +020e0e13 +fca618e3 +00078c63 +00114537 +51450513 +00813083 +01010113 +00008067 +deadc537 +eef50513 +fedff06f +fff00513 +00008067 diff --git a/src/main/resources/applications_fpga/build.sh b/src/main/resources/applications_fpga/build.sh new file mode 100644 index 00000000..1d342c15 --- /dev/null +++ b/src/main/resources/applications_fpga/build.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +riscv64-unknown-elf-gcc -I ./headers -DPREALLOCATE=1 -mcmodel=medany -static -std=gnu99 -O2 -fno-common -fno-builtin-printf -fno-tree-loop-distribute-patterns -march=rv64im_zicsr_zve64x -mabi=lp64 -o printTo7Seg.riscv ./printTo7Seg/printTo7Seg.c ./headers/syscalls.c ./headers/crt.S -static -nostdlib -nostartfiles -T ./headers/test.ld +riscv64-unknown-elf-objdump --disassemble-all printTo7Seg.riscv > printTo7Seg.dump +riscv64-unknown-elf-objcopy --dump-section .sdata=printTo7Seg_sdata.bin printTo7Seg.riscv +riscv64-unknown-elf-objcopy --dump-section .text.init=printTo7Seg_text_init.bin printTo7Seg.riscv +riscv64-unknown-elf-objcopy --dump-section .text=printTo7Seg_text.bin printTo7Seg.riscv +riscv64-unknown-elf-objcopy --dump-section .text.startup=printTo7Seg_text_startup.bin printTo7Seg.riscv +hexdump -v -e '1/8 "%016x" "\n"' printTo7Seg_sdata.bin > printTo7Seg_sdata.temp +hexdump -v -e '1/4 "%08x" "\n"' printTo7Seg_text_init.bin > printTo7Seg_text_init.temp +hexdump -v -e '1/4 "%08x" "\n"' printTo7Seg_text.bin > printTo7Seg_text.temp +hexdump -v -e '1/4 "%08x" "\n"' printTo7Seg_text_startup.bin > printTo7Seg_text_startup.temp +cat printTo7Seg_sdata.temp > printTo7Seg_data.mem +cat printTo7Seg_text_init.temp printTo7Seg_text.temp printTo7Seg_text_startup.temp > printTo7Seg_inst.mem + +riscv64-unknown-elf-gcc -I ./headers -DPREALLOCATE=1 -mcmodel=medany -static -std=gnu99 -O2 -fno-common -fno-builtin-printf -fno-tree-loop-distribute-patterns -march=rv64im_zicsr_zve64x -mabi=lp64 -o vector_matmul.riscv ./vector_matmul/vector_matmul.c ./headers/syscalls.c ./headers/crt.S -static -nostdlib -nostartfiles -T ./headers/test.ld +riscv64-unknown-elf-objdump --disassemble-all vector_matmul.riscv > vector_matmul.dump +riscv64-unknown-elf-objcopy --dump-section .rodata=vector_matmul_rodata.bin vector_matmul.riscv +riscv64-unknown-elf-objcopy --dump-section .sdata=vector_matmul_sdata.bin vector_matmul.riscv +riscv64-unknown-elf-objcopy --dump-section .text.init=vector_matmul_text_init.bin vector_matmul.riscv +riscv64-unknown-elf-objcopy --dump-section .text=vector_matmul_text.bin vector_matmul.riscv +riscv64-unknown-elf-objcopy --dump-section .text.startup=vector_matmul_text_startup.bin vector_matmul.riscv +#hexdump -v -e '1/8 "%016x" "\n"' vector_matmul_rodata.bin > vector_matmul_rodata.temp +#hexdump -v -e '1/8 "%016x" "\n"' vector_matmul_sdata.bin > vector_matmul_sdata.temp +hexdump -v -e '1/4 "%08x" "\n"' vector_matmul_rodata.bin > vector_matmul_rodata.temp +hexdump -v -e '1/4 "%08x" "\n"' vector_matmul_sdata.bin > vector_matmul_sdata.temp +hexdump -v -e '1/4 "%08x" "\n"' vector_matmul_text_init.bin > vector_matmul_text_init.temp +hexdump -v -e '1/4 "%08x" "\n"' vector_matmul_text.bin > vector_matmul_text.temp +hexdump -v -e '1/4 "%08x" "\n"' vector_matmul_text_startup.bin > vector_matmul_text_startup.temp +cat vector_matmul_rodata.temp vector_matmul_sdata.temp > vector_matmul_data.mem +cat vector_matmul_text_init.temp vector_matmul_text.temp vector_matmul_text_startup.temp > vector_matmul_inst.mem + +rm *.riscv *.bin *.temp \ No newline at end of file diff --git a/src/main/resources/applications_fpga/headers/crt.S b/src/main/resources/applications_fpga/headers/crt.S new file mode 120000 index 00000000..eb05ab05 --- /dev/null +++ b/src/main/resources/applications_fpga/headers/crt.S @@ -0,0 +1 @@ +../../application_headers/crt.S \ No newline at end of file diff --git a/src/main/resources/applications_fpga/headers/encoding.h b/src/main/resources/applications_fpga/headers/encoding.h new file mode 120000 index 00000000..bce748a4 --- /dev/null +++ b/src/main/resources/applications_fpga/headers/encoding.h @@ -0,0 +1 @@ +../../../../../../HAJIME_Core/submodule/riscv-tests/env/encoding.h \ No newline at end of file diff --git a/src/main/resources/applications_fpga/headers/syscalls.c b/src/main/resources/applications_fpga/headers/syscalls.c new file mode 100644 index 00000000..7f781f70 --- /dev/null +++ b/src/main/resources/applications_fpga/headers/syscalls.c @@ -0,0 +1,156 @@ +// See LICENSE for license details. + +#include +#include +#include +#include +#include +#include +// #include "util.h" + +#define SYS_write 64 + +#undef strcmp + +#define TOHOST 0x10000000 + +#define PUTCHAR_TOHOST( ch ) do { *((volatile char*)TOHOST) = ch; } while(0); + +void clearCounters(void) { + asm volatile ("csrw minstret, x0; csrw mcycle, x0;"); + return; +} + +void getCounters(unsigned long* instret, unsigned long* cycle) { + asm volatile("rdinstret %0":"=r" (*instret)); + asm volatile("rdcycle %0":"=r" (*cycle)); + return; +} + +void __attribute__((noreturn)) exit(int ret) { + *((volatile int*)TOHOST) = ret; +_exit: + goto _exit; +} + +uintptr_t __attribute__((weak)) handle_trap(uintptr_t cause, uintptr_t epc, uintptr_t regs[32]) +{ + exit((epc << 16) | cause); +} + +void __attribute__((weak)) thread_entry(int cid, int nc) +{ + // multi-threaded programs override this function. + // for the case of single-threaded programs, only let core 0 proceed. + while (cid != 0); +} + +int __attribute__((weak)) main(int argc, char** argv) +{ + // single-threaded programs override this function. + // printstr("Implement main(), foo!\n"); + return -1; +} + +void _init( +#ifdef MULTICORE + int cid, int nc +#else + void +#endif + ) +{ + // init_tls(); + // thread_entry(cid, nc); + + // only single-threaded programs should ever get here. + int ret = main(0, 0); + + exit(ret); +} + +void* memcpy(void* dest, const void* src, size_t len) +{ + if ((((uintptr_t)dest | (uintptr_t)src | len) & (sizeof(uintptr_t)-1)) == 0) { + const uintptr_t* s = src; + uintptr_t *d = dest; + uintptr_t *end = dest + len; + while (d + 8 < end) { + uintptr_t reg[8] = {s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7]}; + d[0] = reg[0]; + d[1] = reg[1]; + d[2] = reg[2]; + d[3] = reg[3]; + d[4] = reg[4]; + d[5] = reg[5]; + d[6] = reg[6]; + d[7] = reg[7]; + d += 8; + s += 8; + } + while (d < end) + *d++ = *s++; + } else { + const char* s = src; + char *d = dest; + while (d < (char*)(dest + len)) + *d++ = *s++; + } + return dest; +} + +void* memset(void* dest, int byte, size_t len) +{ + if ((((uintptr_t)dest | len) & (sizeof(uintptr_t)-1)) == 0) { + uintptr_t word = byte & 0xFF; + word |= word << 8; + word |= word << 16; + word |= word << 16 << 16; + + uintptr_t *d = dest; + while (d < (uintptr_t*)(dest + len)) + *d++ = word; + } else { + char *d = dest; + while (d < (char*)(dest + len)) + *d++ = byte; + } + return dest; +} + +size_t strlen(const char *s) +{ + const char *p = s; + while (*p) + p++; + return p - s; +} + +size_t strnlen(const char *s, size_t n) +{ + const char *p = s; + while (n-- && *p) + p++; + return p - s; +} + +int strcmp(const char* s1, const char* s2) +{ + unsigned char c1, c2; + + do { + c1 = *s1++; + c2 = *s2++; + } while (c1 != 0 && c1 == c2); + + return c1 - c2; +} + +char* strcpy(char* dest, const char* src) +{ + char* d = dest; + while ((*d++ = *src++)) + ; + return dest; +} + diff --git a/src/main/resources/applications_fpga/headers/test.ld b/src/main/resources/applications_fpga/headers/test.ld new file mode 120000 index 00000000..c6573788 --- /dev/null +++ b/src/main/resources/applications_fpga/headers/test.ld @@ -0,0 +1 @@ +../../application_headers/test.ld \ No newline at end of file diff --git a/src/main/resources/applications_fpga/printTo7Seg.dump b/src/main/resources/applications_fpga/printTo7Seg.dump new file mode 100644 index 00000000..fcb4518c --- /dev/null +++ b/src/main/resources/applications_fpga/printTo7Seg.dump @@ -0,0 +1,379 @@ + +printTo7Seg.riscv: file format elf64-littleriscv + + +Disassembly of section .text.init: + +0000000000000000 <_start>: + 0: 00000093 li ra,0 + 4: 00000113 li sp,0 + 8: 00000193 li gp,0 + c: 00000213 li tp,0 + 10: 00000293 li t0,0 + 14: 00000313 li t1,0 + 18: 00000393 li t2,0 + 1c: 00000413 li s0,0 + 20: 00000493 li s1,0 + 24: 00000513 li a0,0 + 28: 00000593 li a1,0 + 2c: 00000613 li a2,0 + 30: 00000693 li a3,0 + 34: 00000713 li a4,0 + 38: 00000793 li a5,0 + 3c: 00000813 li a6,0 + 40: 00000893 li a7,0 + 44: 00000913 li s2,0 + 48: 00000993 li s3,0 + 4c: 00000a13 li s4,0 + 50: 00000a93 li s5,0 + 54: 00000b13 li s6,0 + 58: 00000b93 li s7,0 + 5c: 00000c13 li s8,0 + 60: 00000c93 li s9,0 + 64: 00000d13 li s10,0 + 68: 00000d93 li s11,0 + 6c: 00000e13 li t3,0 + 70: 00000e93 li t4,0 + 74: 00000f13 li t5,0 + 78: 00000f93 li t6,0 + 7c: 00000297 auipc t0,0x0 + 80: 03828293 add t0,t0,56 # b4 + 84: 30529073 csrw mtvec,t0 + 88: 00004197 auipc gp,0x4 + 8c: 77818193 add gp,gp,1912 # 4800 <__global_pointer$> + 90: 10000217 auipc tp,0x10000 + 94: ff720213 add tp,tp,-9 # 10000087 <_end+0x3f> + 98: fc027213 and tp,tp,-64 + 9c: f1402573 csrr a0,mhartid + a0: 00100593 li a1,1 + a4: 00b57063 bgeu a0,a1,a4 <_start+0xa4> + a8: 00006137 lui sp,0x6 + ac: ff01011b addw sp,sp,-16 # 5ff0 <__global_pointer$+0x17f0> + b0: 1740006f j 224 <_init> + +00000000000000b4 : + b4: ef010113 add sp,sp,-272 + b8: 00113423 sd ra,8(sp) + bc: 00213823 sd sp,16(sp) + c0: 00313c23 sd gp,24(sp) + c4: 02413023 sd tp,32(sp) + c8: 02513423 sd t0,40(sp) + cc: 02613823 sd t1,48(sp) + d0: 02713c23 sd t2,56(sp) + d4: 04813023 sd s0,64(sp) + d8: 04913423 sd s1,72(sp) + dc: 04a13823 sd a0,80(sp) + e0: 04b13c23 sd a1,88(sp) + e4: 06c13023 sd a2,96(sp) + e8: 06d13423 sd a3,104(sp) + ec: 06e13823 sd a4,112(sp) + f0: 06f13c23 sd a5,120(sp) + f4: 09013023 sd a6,128(sp) + f8: 09113423 sd a7,136(sp) + fc: 09213823 sd s2,144(sp) + 100: 09313c23 sd s3,152(sp) + 104: 0b413023 sd s4,160(sp) + 108: 0b513423 sd s5,168(sp) + 10c: 0b613823 sd s6,176(sp) + 110: 0b713c23 sd s7,184(sp) + 114: 0d813023 sd s8,192(sp) + 118: 0d913423 sd s9,200(sp) + 11c: 0da13823 sd s10,208(sp) + 120: 0db13c23 sd s11,216(sp) + 124: 0fc13023 sd t3,224(sp) + 128: 0fd13423 sd t4,232(sp) + 12c: 0fe13823 sd t5,240(sp) + 130: 0ff13c23 sd t6,248(sp) + 134: 34202573 csrr a0,mcause + 138: 341025f3 csrr a1,mepc + 13c: 00010613 mv a2,sp + 140: 0c4000ef jal 204 + 144: 34151073 csrw mepc,a0 + 148: 000022b7 lui t0,0x2 + 14c: 8002829b addw t0,t0,-2048 # 1800 + 150: 3002a073 csrs mstatus,t0 + 154: 00813083 ld ra,8(sp) + 158: 01013103 ld sp,16(sp) + 15c: 01813183 ld gp,24(sp) + 160: 02013203 ld tp,32(sp) + 164: 02813283 ld t0,40(sp) + 168: 03013303 ld t1,48(sp) + 16c: 03813383 ld t2,56(sp) + 170: 04013403 ld s0,64(sp) + 174: 04813483 ld s1,72(sp) + 178: 05013503 ld a0,80(sp) + 17c: 05813583 ld a1,88(sp) + 180: 06013603 ld a2,96(sp) + 184: 06813683 ld a3,104(sp) + 188: 07013703 ld a4,112(sp) + 18c: 07813783 ld a5,120(sp) + 190: 08013803 ld a6,128(sp) + 194: 08813883 ld a7,136(sp) + 198: 09013903 ld s2,144(sp) + 19c: 09813983 ld s3,152(sp) + 1a0: 0a013a03 ld s4,160(sp) + 1a4: 0a813a83 ld s5,168(sp) + 1a8: 0b013b03 ld s6,176(sp) + 1ac: 0b813b83 ld s7,184(sp) + 1b0: 0c013c03 ld s8,192(sp) + 1b4: 0c813c83 ld s9,200(sp) + 1b8: 0d013d03 ld s10,208(sp) + 1bc: 0d813d83 ld s11,216(sp) + 1c0: 0e013e03 ld t3,224(sp) + 1c4: 0e813e83 ld t4,232(sp) + 1c8: 0f013f03 ld t5,240(sp) + 1cc: 0f813f83 ld t6,248(sp) + 1d0: 11010113 add sp,sp,272 + 1d4: 30200073 mret + +Disassembly of section .text: + +00000000000001d8 : + 1d8: b0201073 csrw minstret,zero + 1dc: b0001073 csrw mcycle,zero + 1e0: 00008067 ret + +00000000000001e4 : + 1e4: c02027f3 rdinstret a5 + 1e8: 00f53023 sd a5,0(a0) + 1ec: c00027f3 rdcycle a5 + 1f0: 00f5b023 sd a5,0(a1) + 1f4: 00008067 ret + +00000000000001f8 : + 1f8: 100007b7 lui a5,0x10000 + 1fc: 00a7a023 sw a0,0(a5) # 10000000 + 200: 0000006f j 200 + +0000000000000204 : + 204: 0105959b sllw a1,a1,0x10 + 208: 00b567b3 or a5,a0,a1 + 20c: 0007879b sext.w a5,a5 + 210: 10000737 lui a4,0x10000 + 214: 00f72023 sw a5,0(a4) # 10000000 + 218: 0000006f j 218 + +000000000000021c : + 21c: 00051063 bnez a0,21c + 220: 00008067 ret + +0000000000000224 <_init>: + 224: ff010113 add sp,sp,-16 + 228: 00000593 li a1,0 + 22c: 00000513 li a0,0 + 230: 00113423 sd ra,8(sp) + 234: 1e0000ef jal 414
+ 238: 100007b7 lui a5,0x10000 + 23c: 00a7a023 sw a0,0(a5) # 10000000 + 240: 0000006f j 240 <_init+0x1c> + +0000000000000244 : + 244: 00b567b3 or a5,a0,a1 + 248: 00c7e7b3 or a5,a5,a2 + 24c: 0077f793 and a5,a5,7 + 250: 00c50833 add a6,a0,a2 + 254: 02078463 beqz a5,27c + 258: 00c58633 add a2,a1,a2 + 25c: 00050793 mv a5,a0 + 260: 0b057663 bgeu a0,a6,30c + 264: 0005c703 lbu a4,0(a1) + 268: 00158593 add a1,a1,1 + 26c: 00178793 add a5,a5,1 + 270: fee78fa3 sb a4,-1(a5) + 274: fec598e3 bne a1,a2,264 + 278: 00008067 ret + 27c: 04050693 add a3,a0,64 + 280: 0906f863 bgeu a3,a6,310 + 284: 00058713 mv a4,a1 + 288: 00068793 mv a5,a3 + 28c: 00073383 ld t2,0(a4) + 290: 00873283 ld t0,8(a4) + 294: 01073f83 ld t6,16(a4) + 298: 01873f03 ld t5,24(a4) + 29c: 02073e83 ld t4,32(a4) + 2a0: 02873e03 ld t3,40(a4) + 2a4: 03073303 ld t1,48(a4) + 2a8: 03873883 ld a7,56(a4) + 2ac: 04078793 add a5,a5,64 + 2b0: f877b023 sd t2,-128(a5) + 2b4: f857b423 sd t0,-120(a5) + 2b8: f9f7b823 sd t6,-112(a5) + 2bc: f9e7bc23 sd t5,-104(a5) + 2c0: fbd7b023 sd t4,-96(a5) + 2c4: fbc7b423 sd t3,-88(a5) + 2c8: fa67b823 sd t1,-80(a5) + 2cc: fb17bc23 sd a7,-72(a5) + 2d0: 04070713 add a4,a4,64 + 2d4: fb07ece3 bltu a5,a6,28c + 2d8: fbf60613 add a2,a2,-65 + 2dc: fc067793 and a5,a2,-64 + 2e0: 04078793 add a5,a5,64 + 2e4: fc067613 and a2,a2,-64 + 2e8: 00f585b3 add a1,a1,a5 + 2ec: 00c687b3 add a5,a3,a2 + 2f0: f907f4e3 bgeu a5,a6,278 + 2f4: 0005b703 ld a4,0(a1) + 2f8: 00878793 add a5,a5,8 + 2fc: 00858593 add a1,a1,8 + 300: fee7bc23 sd a4,-8(a5) + 304: ff07e8e3 bltu a5,a6,2f4 + 308: 00008067 ret + 30c: 00008067 ret + 310: 00050793 mv a5,a0 + 314: fddff06f j 2f0 + +0000000000000318 : + 318: 00c567b3 or a5,a0,a2 + 31c: 0077f793 and a5,a5,7 + 320: 00c50633 add a2,a0,a2 + 324: 0ff5f713 zext.b a4,a1 + 328: 00078e63 beqz a5,344 + 32c: 00050793 mv a5,a0 + 330: 02c57c63 bgeu a0,a2,368 + 334: 00178793 add a5,a5,1 + 338: fee78fa3 sb a4,-1(a5) + 33c: fef61ce3 bne a2,a5,334 + 340: 00008067 ret + 344: 00004797 auipc a5,0x4 + 348: cbc7b783 ld a5,-836(a5) # 4000 + 34c: 02f70733 mul a4,a4,a5 + 350: fec578e3 bgeu a0,a2,340 + 354: 00050793 mv a5,a0 + 358: 00878793 add a5,a5,8 + 35c: fee7bc23 sd a4,-8(a5) + 360: fec7ece3 bltu a5,a2,358 + 364: 00008067 ret + 368: 00008067 ret + +000000000000036c : + 36c: 00054783 lbu a5,0(a0) + 370: 00078e63 beqz a5,38c + 374: 00050793 mv a5,a0 + 378: 0017c703 lbu a4,1(a5) + 37c: 00178793 add a5,a5,1 + 380: fe071ce3 bnez a4,378 + 384: 40a78533 sub a0,a5,a0 + 388: 00008067 ret + 38c: 00000513 li a0,0 + 390: 00008067 ret + +0000000000000394 : + 394: 00b506b3 add a3,a0,a1 + 398: 00050793 mv a5,a0 + 39c: 00059863 bnez a1,3ac + 3a0: 0240006f j 3c4 + 3a4: 00178793 add a5,a5,1 + 3a8: 00f68a63 beq a3,a5,3bc + 3ac: 0007c703 lbu a4,0(a5) + 3b0: fe071ae3 bnez a4,3a4 + 3b4: 40a78533 sub a0,a5,a0 + 3b8: 00008067 ret + 3bc: 40a68533 sub a0,a3,a0 + 3c0: 00008067 ret + 3c4: 00000513 li a0,0 + 3c8: 00008067 ret + +00000000000003cc : + 3cc: 00054783 lbu a5,0(a0) + 3d0: 00158593 add a1,a1,1 + 3d4: 00150513 add a0,a0,1 + 3d8: fff5c703 lbu a4,-1(a1) + 3dc: 00078a63 beqz a5,3f0 + 3e0: fee786e3 beq a5,a4,3cc + 3e4: 0007851b sext.w a0,a5 + 3e8: 40e5053b subw a0,a0,a4 + 3ec: 00008067 ret + 3f0: 00000513 li a0,0 + 3f4: ff5ff06f j 3e8 + +00000000000003f8 : + 3f8: 00050793 mv a5,a0 + 3fc: 0005c703 lbu a4,0(a1) + 400: 00178793 add a5,a5,1 + 404: 00158593 add a1,a1,1 + 408: fee78fa3 sb a4,-1(a5) + 40c: fe0718e3 bnez a4,3fc + 410: 00008067 ret + +Disassembly of section .text.startup: + +0000000000000414
: + 414: 07214537 lui a0,0x7214 + 418: 54550513 add a0,a0,1349 # 7214545 <__global_pointer$+0x720fd45> + 41c: 00008067 ret + 420: fff00513 li a0,-1 + 424: 00008067 ret + +Disassembly of section .sdata: + +0000000000004000 <__global_pointer$-0x800>: + 4000: 0101 vmsge.vx v2,v0,zero,v0.t + 4002: 0101 vmsge.vx v2,v0,zero,v0.t + 4004: 0101 vmsge.vx v2,v0,zero,v0.t + 4006: 0101 vmsge.vx v2,v0,zero,v0.t + +Disassembly of section .tohost: + +0000000010000000 : + ... + +0000000010000040 : + ... + +Disassembly of section .comment: + +0000000000000000 <.comment>: + 0: 3a434347 .4byte 0x3a434347 + 4: 2820 vmsge.vx v16,v0,zero,v0.t + 6: 65653267 .4byte 0x65653267 + a: 6535 .2byte 0x6535 + c: 3334 .2byte 0x3334 + e: 3030 .2byte 0x3030 + 10: 3831 .2byte 0x3831 + 12: 2029 .2byte 0x2029 + 14: 3231 .2byte 0x3231 + 16: 322e .2byte 0x322e + 18: 302e .2byte 0x302e + ... + +Disassembly of section .riscv.attributes: + +0000000000000000 <.riscv.attributes>: + 0: 5e41 vmsge.vx v28,v0,zero,v0.t + 2: 0000 vmsge.vx v0,v0,zero,v0.t + 4: 7200 vmsge.vx v4,v0,zero,v0.t + 6: 7369 .2byte 0x7369 + 8: 01007663 bgeu zero,a6,14 <_start+0x14> + c: 0054 .2byte 0x54 + e: 0000 vmsge.vx v0,v0,zero,v0.t + 10: 1004 .2byte 0x1004 + 12: 7205 .2byte 0x7205 + 14: 3676 .2byte 0x3676 + 16: 6934 .2byte 0x6934 + 18: 7032 .2byte 0x7032 + 1a: 5f31 .2byte 0x5f31 + 1c: 326d .2byte 0x326d + 1e: 3070 .2byte 0x3070 + 20: 7a5f 6369 7273 .byte 0x5f, 0x7a, 0x69, 0x63, 0x73, 0x72 + 26: 7032 .2byte 0x7032 + 28: 5f30 .2byte 0x5f30 + 2a: 6d7a .2byte 0x6d7a + 2c: 756d .2byte 0x756d + 2e: 316c .2byte 0x316c + 30: 3070 .2byte 0x3070 + 32: 7a5f 6576 3233 .byte 0x5f, 0x7a, 0x76, 0x65, 0x33, 0x32 + 38: 3178 .2byte 0x3178 + 3a: 3070 .2byte 0x3070 + 3c: 7a5f 6576 3436 .byte 0x5f, 0x7a, 0x76, 0x65, 0x36, 0x34 + 42: 3178 .2byte 0x3178 + 44: 3070 .2byte 0x3070 + 46: 7a5f 6c76 3233 .byte 0x5f, 0x7a, 0x76, 0x6c, 0x33, 0x32 + 4c: 3162 vmsge.vx v2,v0,zero,v0.t + 4e: 3070 .2byte 0x3070 + 50: 7a5f 6c76 3436 .byte 0x5f, 0x7a, 0x76, 0x6c, 0x36, 0x34 + 56: 3162 vmsge.vx v2,v0,zero,v0.t + 58: 3070 .2byte 0x3070 + 5a: 0800 vmsge.vx v16,v0,zero,v0.t + 5c: 0a01 vmsge.vx v20,v0,zero,v0.t + 5e: 0b Address 0x5e is out of bounds. + diff --git a/src/main/resources/applications_fpga/printTo7Seg/printTo7Seg.c b/src/main/resources/applications_fpga/printTo7Seg/printTo7Seg.c new file mode 100644 index 00000000..2c8471f3 --- /dev/null +++ b/src/main/resources/applications_fpga/printTo7Seg/printTo7Seg.c @@ -0,0 +1,3 @@ +int main(int argc, char** argv) { + return 0x07214545; +} \ No newline at end of file diff --git a/src/main/resources/applications_fpga/printTo7Seg_data.mem b/src/main/resources/applications_fpga/printTo7Seg_data.mem new file mode 100644 index 00000000..a0e0c83a --- /dev/null +++ b/src/main/resources/applications_fpga/printTo7Seg_data.mem @@ -0,0 +1 @@ +0101010101010101 diff --git a/src/main/resources/applications_fpga/printTo7Seg_inst.mem b/src/main/resources/applications_fpga/printTo7Seg_inst.mem new file mode 100644 index 00000000..e0f91ad2 --- /dev/null +++ b/src/main/resources/applications_fpga/printTo7Seg_inst.mem @@ -0,0 +1,266 @@ +00000093 +00000113 +00000193 +00000213 +00000293 +00000313 +00000393 +00000413 +00000493 +00000513 +00000593 +00000613 +00000693 +00000713 +00000793 +00000813 +00000893 +00000913 +00000993 +00000a13 +00000a93 +00000b13 +00000b93 +00000c13 +00000c93 +00000d13 +00000d93 +00000e13 +00000e93 +00000f13 +00000f93 +00000297 +03828293 +30529073 +00004197 +77818193 +10000217 +ff720213 +fc027213 +f1402573 +00100593 +00b57063 +00006137 +ff01011b +1740006f +ef010113 +00113423 +00213823 +00313c23 +02413023 +02513423 +02613823 +02713c23 +04813023 +04913423 +04a13823 +04b13c23 +06c13023 +06d13423 +06e13823 +06f13c23 +09013023 +09113423 +09213823 +09313c23 +0b413023 +0b513423 +0b613823 +0b713c23 +0d813023 +0d913423 +0da13823 +0db13c23 +0fc13023 +0fd13423 +0fe13823 +0ff13c23 +34202573 +341025f3 +00010613 +0c4000ef +34151073 +000022b7 +8002829b +3002a073 +00813083 +01013103 +01813183 +02013203 +02813283 +03013303 +03813383 +04013403 +04813483 +05013503 +05813583 +06013603 +06813683 +07013703 +07813783 +08013803 +08813883 +09013903 +09813983 +0a013a03 +0a813a83 +0b013b03 +0b813b83 +0c013c03 +0c813c83 +0d013d03 +0d813d83 +0e013e03 +0e813e83 +0f013f03 +0f813f83 +11010113 +30200073 +b0201073 +b0001073 +00008067 +c02027f3 +00f53023 +c00027f3 +00f5b023 +00008067 +100007b7 +00a7a023 +0000006f +0105959b +00b567b3 +0007879b +10000737 +00f72023 +0000006f +00051063 +00008067 +ff010113 +00000593 +00000513 +00113423 +1e0000ef +100007b7 +00a7a023 +0000006f +00b567b3 +00c7e7b3 +0077f793 +00c50833 +02078463 +00c58633 +00050793 +0b057663 +0005c703 +00158593 +00178793 +fee78fa3 +fec598e3 +00008067 +04050693 +0906f863 +00058713 +00068793 +00073383 +00873283 +01073f83 +01873f03 +02073e83 +02873e03 +03073303 +03873883 +04078793 +f877b023 +f857b423 +f9f7b823 +f9e7bc23 +fbd7b023 +fbc7b423 +fa67b823 +fb17bc23 +04070713 +fb07ece3 +fbf60613 +fc067793 +04078793 +fc067613 +00f585b3 +00c687b3 +f907f4e3 +0005b703 +00878793 +00858593 +fee7bc23 +ff07e8e3 +00008067 +00008067 +00050793 +fddff06f +00c567b3 +0077f793 +00c50633 +0ff5f713 +00078e63 +00050793 +02c57c63 +00178793 +fee78fa3 +fef61ce3 +00008067 +00004797 +cbc7b783 +02f70733 +fec578e3 +00050793 +00878793 +fee7bc23 +fec7ece3 +00008067 +00008067 +00054783 +00078e63 +00050793 +0017c703 +00178793 +fe071ce3 +40a78533 +00008067 +00000513 +00008067 +00b506b3 +00050793 +00059863 +0240006f +00178793 +00f68a63 +0007c703 +fe071ae3 +40a78533 +00008067 +40a68533 +00008067 +00000513 +00008067 +00054783 +00158593 +00150513 +fff5c703 +00078a63 +fee786e3 +0007851b +40e5053b +00008067 +00000513 +ff5ff06f +00050793 +0005c703 +00178793 +00158593 +fee78fa3 +fe0718e3 +00008067 +07214537 +54550513 +00008067 +fff00513 +00008067 diff --git a/src/main/resources/applications_fpga/vector_matmul.dump b/src/main/resources/applications_fpga/vector_matmul.dump new file mode 100644 index 00000000..fa4987f8 --- /dev/null +++ b/src/main/resources/applications_fpga/vector_matmul.dump @@ -0,0 +1,1339 @@ + +vector_matmul.riscv: file format elf64-littleriscv + + +Disassembly of section .text.init: + +0000000000000000 <_start>: + 0: 00000093 li ra,0 + 4: 00000113 li sp,0 + 8: 00000193 li gp,0 + c: 00000213 li tp,0 + 10: 00000293 li t0,0 + 14: 00000313 li t1,0 + 18: 00000393 li t2,0 + 1c: 00000413 li s0,0 + 20: 00000493 li s1,0 + 24: 00000513 li a0,0 + 28: 00000593 li a1,0 + 2c: 00000613 li a2,0 + 30: 00000693 li a3,0 + 34: 00000713 li a4,0 + 38: 00000793 li a5,0 + 3c: 00000813 li a6,0 + 40: 00000893 li a7,0 + 44: 00000913 li s2,0 + 48: 00000993 li s3,0 + 4c: 00000a13 li s4,0 + 50: 00000a93 li s5,0 + 54: 00000b13 li s6,0 + 58: 00000b93 li s7,0 + 5c: 00000c13 li s8,0 + 60: 00000c93 li s9,0 + 64: 00000d13 li s10,0 + 68: 00000d93 li s11,0 + 6c: 00000e13 li t3,0 + 70: 00000e93 li t4,0 + 74: 00000f13 li t5,0 + 78: 00000f93 li t6,0 + 7c: 00000297 auipc t0,0x0 + 80: 03828293 add t0,t0,56 # b4 + 84: 30529073 csrw mtvec,t0 + 88: 00005197 auipc gp,0x5 + 8c: f7818193 add gp,gp,-136 # 5000 <__global_pointer$> + 90: 10000217 auipc tp,0x10000 + 94: ff720213 add tp,tp,-9 # 10000087 <_end+0x3f> + 98: fc027213 and tp,tp,-64 + 9c: f1402573 csrr a0,mhartid + a0: 00100593 li a1,1 + a4: 00b57063 bgeu a0,a1,a4 <_start+0xa4> + a8: 00006137 lui sp,0x6 + ac: ff01011b addw sp,sp,-16 # 5ff0 <_tbss_end+0xfe8> + b0: 1d00006f j 280 <_init> + +00000000000000b4 : + b4: ef010113 add sp,sp,-272 + b8: 00113423 sd ra,8(sp) + bc: 00213823 sd sp,16(sp) + c0: 00313c23 sd gp,24(sp) + c4: 02413023 sd tp,32(sp) + c8: 02513423 sd t0,40(sp) + cc: 02613823 sd t1,48(sp) + d0: 02713c23 sd t2,56(sp) + d4: 04813023 sd s0,64(sp) + d8: 04913423 sd s1,72(sp) + dc: 04a13823 sd a0,80(sp) + e0: 04b13c23 sd a1,88(sp) + e4: 06c13023 sd a2,96(sp) + e8: 06d13423 sd a3,104(sp) + ec: 06e13823 sd a4,112(sp) + f0: 06f13c23 sd a5,120(sp) + f4: 09013023 sd a6,128(sp) + f8: 09113423 sd a7,136(sp) + fc: 09213823 sd s2,144(sp) + 100: 09313c23 sd s3,152(sp) + 104: 0b413023 sd s4,160(sp) + 108: 0b513423 sd s5,168(sp) + 10c: 0b613823 sd s6,176(sp) + 110: 0b713c23 sd s7,184(sp) + 114: 0d813023 sd s8,192(sp) + 118: 0d913423 sd s9,200(sp) + 11c: 0da13823 sd s10,208(sp) + 120: 0db13c23 sd s11,216(sp) + 124: 0fc13023 sd t3,224(sp) + 128: 0fd13423 sd t4,232(sp) + 12c: 0fe13823 sd t5,240(sp) + 130: 0ff13c23 sd t6,248(sp) + 134: 34202573 csrr a0,mcause + 138: 341025f3 csrr a1,mepc + 13c: 00010613 mv a2,sp + 140: 120000ef jal 260 + 144: 34151073 csrw mepc,a0 + 148: 000022b7 lui t0,0x2 + 14c: 8002829b addw t0,t0,-2048 # 1800 + 150: 3002a073 csrs mstatus,t0 + 154: 00813083 ld ra,8(sp) + 158: 01013103 ld sp,16(sp) + 15c: 01813183 ld gp,24(sp) + 160: 02013203 ld tp,32(sp) + 164: 02813283 ld t0,40(sp) + 168: 03013303 ld t1,48(sp) + 16c: 03813383 ld t2,56(sp) + 170: 04013403 ld s0,64(sp) + 174: 04813483 ld s1,72(sp) + 178: 05013503 ld a0,80(sp) + 17c: 05813583 ld a1,88(sp) + 180: 06013603 ld a2,96(sp) + 184: 06813683 ld a3,104(sp) + 188: 07013703 ld a4,112(sp) + 18c: 07813783 ld a5,120(sp) + 190: 08013803 ld a6,128(sp) + 194: 08813883 ld a7,136(sp) + 198: 09013903 ld s2,144(sp) + 19c: 09813983 ld s3,152(sp) + 1a0: 0a013a03 ld s4,160(sp) + 1a4: 0a813a83 ld s5,168(sp) + 1a8: 0b013b03 ld s6,176(sp) + 1ac: 0b813b83 ld s7,184(sp) + 1b0: 0c013c03 ld s8,192(sp) + 1b4: 0c813c83 ld s9,200(sp) + 1b8: 0d013d03 ld s10,208(sp) + 1bc: 0d813d83 ld s11,216(sp) + 1c0: 0e013e03 ld t3,224(sp) + 1c4: 0e813e83 ld t4,232(sp) + 1c8: 0f013f03 ld t5,240(sp) + 1cc: 0f813f83 ld t6,248(sp) + 1d0: 11010113 add sp,sp,272 + 1d4: 30200073 mret + +Disassembly of section .text: + +00000000000001d8 <_e8_32x32_matmul>: + 1d8: 02000793 li a5,32 + 1dc: 0c07f057 vsetvli zero,a5,e8,m1,ta,ma + 1e0: 02000813 li a6,32 + 1e4: 00050893 mv a7,a0 + 1e8: 40050313 add t1,a0,1024 + 1ec: 02000513 li a0,32 + 1f0: 02088087 vle8.v v1,(a7) + 1f4: 42006257 vmv.s.x v4,zero + 1f8: 00000793 li a5,0 + 1fc: 00f58733 add a4,a1,a5 + 200: 0b070107 vlse8.v v2,(a4),a6 + 204: 961121d7 vmul.vv v3,v1,v2 + 208: 023221d7 vredsum.vs v3,v3,v4 + 20c: 423026d7 vmv.x.s a3,v3 + 210: 0007871b sext.w a4,a5 + 214: 00e60733 add a4,a2,a4 + 218: 00d70023 sb a3,0(a4) + 21c: 00178793 add a5,a5,1 + 220: fca79ee3 bne a5,a0,1fc <_e8_32x32_matmul+0x24> + 224: 02088893 add a7,a7,32 + 228: 02060613 add a2,a2,32 + 22c: fc6892e3 bne a7,t1,1f0 <_e8_32x32_matmul+0x18> + 230: 00008067 ret + +0000000000000234 : + 234: b0201073 csrw minstret,zero + 238: b0001073 csrw mcycle,zero + 23c: 00008067 ret + +0000000000000240 : + 240: c02027f3 rdinstret a5 + 244: 00f53023 sd a5,0(a0) + 248: c00027f3 rdcycle a5 + 24c: 00f5b023 sd a5,0(a1) + 250: 00008067 ret + +0000000000000254 : + 254: 100007b7 lui a5,0x10000 + 258: 00a7a023 sw a0,0(a5) # 10000000 + 25c: 0000006f j 25c + +0000000000000260 : + 260: 0105959b sllw a1,a1,0x10 + 264: 00b567b3 or a5,a0,a1 + 268: 0007879b sext.w a5,a5 + 26c: 10000737 lui a4,0x10000 + 270: 00f72023 sw a5,0(a4) # 10000000 + 274: 0000006f j 274 + +0000000000000278 : + 278: 00051063 bnez a0,278 + 27c: 00008067 ret + +0000000000000280 <_init>: + 280: ff010113 add sp,sp,-16 + 284: 00000593 li a1,0 + 288: 00000513 li a0,0 + 28c: 00113423 sd ra,8(sp) + 290: 1e0000ef jal 470
+ 294: 100007b7 lui a5,0x10000 + 298: 00a7a023 sw a0,0(a5) # 10000000 + 29c: 0000006f j 29c <_init+0x1c> + +00000000000002a0 : + 2a0: 00b567b3 or a5,a0,a1 + 2a4: 00c7e7b3 or a5,a5,a2 + 2a8: 0077f793 and a5,a5,7 + 2ac: 00c50833 add a6,a0,a2 + 2b0: 02078463 beqz a5,2d8 + 2b4: 00c58633 add a2,a1,a2 + 2b8: 00050793 mv a5,a0 + 2bc: 0b057663 bgeu a0,a6,368 + 2c0: 0005c703 lbu a4,0(a1) + 2c4: 00158593 add a1,a1,1 + 2c8: 00178793 add a5,a5,1 + 2cc: fee78fa3 sb a4,-1(a5) + 2d0: fec598e3 bne a1,a2,2c0 + 2d4: 00008067 ret + 2d8: 04050693 add a3,a0,64 + 2dc: 0906f863 bgeu a3,a6,36c + 2e0: 00058713 mv a4,a1 + 2e4: 00068793 mv a5,a3 + 2e8: 00073383 ld t2,0(a4) + 2ec: 00873283 ld t0,8(a4) + 2f0: 01073f83 ld t6,16(a4) + 2f4: 01873f03 ld t5,24(a4) + 2f8: 02073e83 ld t4,32(a4) + 2fc: 02873e03 ld t3,40(a4) + 300: 03073303 ld t1,48(a4) + 304: 03873883 ld a7,56(a4) + 308: 04078793 add a5,a5,64 + 30c: f877b023 sd t2,-128(a5) + 310: f857b423 sd t0,-120(a5) + 314: f9f7b823 sd t6,-112(a5) + 318: f9e7bc23 sd t5,-104(a5) + 31c: fbd7b023 sd t4,-96(a5) + 320: fbc7b423 sd t3,-88(a5) + 324: fa67b823 sd t1,-80(a5) + 328: fb17bc23 sd a7,-72(a5) + 32c: 04070713 add a4,a4,64 + 330: fb07ece3 bltu a5,a6,2e8 + 334: fbf60613 add a2,a2,-65 + 338: fc067793 and a5,a2,-64 + 33c: 04078793 add a5,a5,64 + 340: fc067613 and a2,a2,-64 + 344: 00f585b3 add a1,a1,a5 + 348: 00c687b3 add a5,a3,a2 + 34c: f907f4e3 bgeu a5,a6,2d4 + 350: 0005b703 ld a4,0(a1) + 354: 00878793 add a5,a5,8 + 358: 00858593 add a1,a1,8 + 35c: fee7bc23 sd a4,-8(a5) + 360: ff07e8e3 bltu a5,a6,350 + 364: 00008067 ret + 368: 00008067 ret + 36c: 00050793 mv a5,a0 + 370: fddff06f j 34c + +0000000000000374 : + 374: 00c567b3 or a5,a0,a2 + 378: 0077f793 and a5,a5,7 + 37c: 00c50633 add a2,a0,a2 + 380: 0ff5f713 zext.b a4,a1 + 384: 00078e63 beqz a5,3a0 + 388: 00050793 mv a5,a0 + 38c: 02c57c63 bgeu a0,a2,3c4 + 390: 00178793 add a5,a5,1 + 394: fee78fa3 sb a4,-1(a5) + 398: fef61ce3 bne a2,a5,390 + 39c: 00008067 ret + 3a0: 00004797 auipc a5,0x4 + 3a4: 4607b783 ld a5,1120(a5) # 4800 + 3a8: 02f70733 mul a4,a4,a5 + 3ac: fec578e3 bgeu a0,a2,39c + 3b0: 00050793 mv a5,a0 + 3b4: 00878793 add a5,a5,8 + 3b8: fee7bc23 sd a4,-8(a5) + 3bc: fec7ece3 bltu a5,a2,3b4 + 3c0: 00008067 ret + 3c4: 00008067 ret + +00000000000003c8 : + 3c8: 00054783 lbu a5,0(a0) + 3cc: 00078e63 beqz a5,3e8 + 3d0: 00050793 mv a5,a0 + 3d4: 0017c703 lbu a4,1(a5) + 3d8: 00178793 add a5,a5,1 + 3dc: fe071ce3 bnez a4,3d4 + 3e0: 40a78533 sub a0,a5,a0 + 3e4: 00008067 ret + 3e8: 00000513 li a0,0 + 3ec: 00008067 ret + +00000000000003f0 : + 3f0: 00b506b3 add a3,a0,a1 + 3f4: 00050793 mv a5,a0 + 3f8: 00059863 bnez a1,408 + 3fc: 0240006f j 420 + 400: 00178793 add a5,a5,1 + 404: 00f68a63 beq a3,a5,418 + 408: 0007c703 lbu a4,0(a5) + 40c: fe071ae3 bnez a4,400 + 410: 40a78533 sub a0,a5,a0 + 414: 00008067 ret + 418: 40a68533 sub a0,a3,a0 + 41c: 00008067 ret + 420: 00000513 li a0,0 + 424: 00008067 ret + +0000000000000428 : + 428: 00054783 lbu a5,0(a0) + 42c: 00158593 add a1,a1,1 + 430: 00150513 add a0,a0,1 + 434: fff5c703 lbu a4,-1(a1) + 438: 00078a63 beqz a5,44c + 43c: fee786e3 beq a5,a4,428 + 440: 0007851b sext.w a0,a5 + 444: 40e5053b subw a0,a0,a4 + 448: 00008067 ret + 44c: 00000513 li a0,0 + 450: ff5ff06f j 444 + +0000000000000454 : + 454: 00050793 mv a5,a0 + 458: 0005c703 lbu a4,0(a1) + 45c: 00178793 add a5,a5,1 + 460: 00158593 add a1,a1,1 + 464: fee78fa3 sb a4,-1(a5) + 468: fe0718e3 bnez a4,458 + 46c: 00008067 ret + +Disassembly of section .text.startup: + +0000000000000470
: + 470: ff010113 add sp,sp,-16 + 474: 00004617 auipc a2,0x4 + 478: 39460613 add a2,a2,916 # 4808 + 47c: 00004597 auipc a1,0x4 + 480: b8458593 add a1,a1,-1148 # 4000 + 484: 00004517 auipc a0,0x4 + 488: f7c50513 add a0,a0,-132 # 4400 + 48c: 00113423 sd ra,8(sp) + 490: d49ff0ef jal 1d8 <_e8_32x32_matmul> + 494: c0818e13 add t3,gp,-1016 # 4c08 + 498: 000e0f13 mv t5,t3 + 49c: 00000e93 li t4,0 + 4a0: 00004f97 auipc t6,0x4 + 4a4: f60f8f93 add t6,t6,-160 # 4400 + 4a8: 00004317 auipc t1,0x4 + 4ac: f7830313 add t1,t1,-136 # 4420 + 4b0: 02000293 li t0,32 + 4b4: 005e9893 sll a7,t4,0x5 + 4b8: 000f8513 mv a0,t6 + 4bc: 01f888b3 add a7,a7,t6 + 4c0: 000f0813 mv a6,t5 + 4c4: c0050713 add a4,a0,-1024 + 4c8: 00088693 mv a3,a7 + 4cc: 00000613 li a2,0 + 4d0: 0006c783 lbu a5,0(a3) + 4d4: 00074583 lbu a1,0(a4) + 4d8: 02b787bb mulw a5,a5,a1 + 4dc: 00f607bb addw a5,a2,a5 + 4e0: 0187961b sllw a2,a5,0x18 + 4e4: 02070713 add a4,a4,32 + 4e8: 4186561b sraw a2,a2,0x18 + 4ec: 00168693 add a3,a3,1 + 4f0: fea710e3 bne a4,a0,4d0 + 4f4: 00f80023 sb a5,0(a6) + 4f8: 00170513 add a0,a4,1 + 4fc: 00180813 add a6,a6,1 + 500: fca312e3 bne t1,a0,4c4 + 504: 001e8e93 add t4,t4,1 + 508: 020f0f13 add t5,t5,32 + 50c: fa5e94e3 bne t4,t0,4b4 + 510: 00004617 auipc a2,0x4 + 514: 31860613 add a2,a2,792 # 4828 + 518: c2818513 add a0,gp,-984 # 4c28 + 51c: 00100793 li a5,1 + 520: fe060713 add a4,a2,-32 + 524: 000e0693 mv a3,t3 + 528: 00078a63 beqz a5,53c + 52c: 00070783 lb a5,0(a4) + 530: 00068583 lb a1,0(a3) + 534: 40b787b3 sub a5,a5,a1 + 538: 0017b793 seqz a5,a5 + 53c: 00170713 add a4,a4,1 + 540: 00168693 add a3,a3,1 + 544: fec712e3 bne a4,a2,528 + 548: 02070613 add a2,a4,32 + 54c: 020e0e13 add t3,t3,32 + 550: fca618e3 bne a2,a0,520 + 554: 00078c63 beqz a5,56c + 558: 00114537 lui a0,0x114 + 55c: 51450513 add a0,a0,1300 # 114514 <_tbss_end+0x10f50c> + 560: 00813083 ld ra,8(sp) + 564: 01010113 add sp,sp,16 + 568: 00008067 ret + 56c: deadc537 lui a0,0xdeadc + 570: eef50513 add a0,a0,-273 # ffffffffdeadbeef <_end+0xffffffffceadbea7> + 574: fedff06f j 560 + 578: fff00513 li a0,-1 + 57c: 00008067 ret + +Disassembly of section .rodata: + +0000000000004000 : + 4000: fdff .2byte 0xfdff + 4002: fd04 .2byte 0xfd04 + 4004: 0501 vmsge.vx v10,v0,zero,v0.t + 4006: fcfe .2byte 0xfcfe + 4008: 06fa .2byte 0x6fa + 400a: fd04 .2byte 0xfd04 + 400c: fffa .2byte 0xfffa + 400e: 0305 .2byte 0x305 + 4010: 0600 vmsge.vx v12,v0,zero,v0.t + 4012: 02f8 .2byte 0x2f8 + 4014: fefc .2byte 0xfefc + 4016: fafd .2byte 0xfafd + 4018: 04f8 .2byte 0x4f8 + 401a: fa02fb03 vmsge.vx v22,v0,t0 + 401e: 0206 .2byte 0x206 + 4020: fdfc .2byte 0xfdfc + 4022: ff02 vmsge.vx v30,v0,ra,v0.t + 4024: 0302 vmsge.vx v6,v0,zero,v0.t + 4026: 00fe .2byte 0xfe + 4028: 01fe .2byte 0x1fe + 402a: fe04 .2byte 0xfe04 + 402c: 05f9fa03 vmsge.vx v20,v31,s3,v0.t + 4030: 06f8 .2byte 0x6f8 + 4032: 0601 vmsge.vx v12,v0,zero,v0.t + 4034: fefc .2byte 0xfefc + 4036: 03fd .2byte 0x3fd + 4038: 0101 vmsge.vx v2,v0,zero,v0.t + 403a: ff05 .2byte 0xff05 + 403c: fc04 .2byte 0xfc04 + 403e: fb01 vmsge.vx v22,v0,ra,v0.t + 4040: fcff .2byte 0xfcff + 4042: 0505 .2byte 0x505 + 4044: 0005 .2byte 0x5 + 4046: 04fe .2byte 0x4fe + 4048: 0406 .2byte 0x406 + 404a: fcfc .2byte 0xfcfc + 404c: f902 vmsge.vx v18,v0,ra,v0.t + 404e: fa06 .2byte 0xfa06 + 4050: fdf8 .2byte 0xfdf8 + 4052: 06fdf9fb .4byte 0x6fdf9fb + 4056: 05fd .2byte 0x5fd + 4058: 0105 .2byte 0x105 + 405a: 05fc0403 lb s0,95(s8) + 405e: fd05 .2byte 0xfd05 + 4060: f905 .2byte 0xf905 + 4062: 0605 .2byte 0x605 + 4064: 0405 .2byte 0x405 + 4066: fb02 vmsge.vx v22,v0,ra,v0.t + 4068: 0000 vmsge.vx v0,v0,zero,v0.t + 406a: fafcf803 vmsge.vx v16,v15,s9 + 406e: fbf9 .2byte 0xfbf9 + 4070: 03fd .2byte 0x3fd + 4072: 0204 .2byte 0x204 + 4074: fef8 .2byte 0xfef8 + 4076: f90205fb .4byte 0xf90205fb + 407a: fff8 .2byte 0xfff8 + 407c: 06fe .2byte 0x6fe + 407e: fbfa .2byte 0xfbfa + 4080: fa06 .2byte 0xfa06 + 4082: fafd .2byte 0xfafd + 4084: 0106 .2byte 0x106 + 4086: 0404 .2byte 0x404 + 4088: 05fc .2byte 0x5fc + 408a: fa00f8fb .4byte 0xfa00f8fb + 408e: 01fc .2byte 0x1fc + 4090: fc00 vmsge.vx v24,v0,ra,v0.t + 4092: 03fa .2byte 0x3fa + 4094: fdfc .2byte 0xfdfc + 4096: 0304 .2byte 0x304 + 4098: f802 vmsge.vx v16,v0,ra,v0.t + 409a: 00fa .2byte 0xfa + 409c: f8f8 .2byte 0xf8f8 + 409e: 0202 vmsge.vx v4,v0,zero,v0.t + 40a0: fb02f803 vmsge.vx v16,v16,t0 + 40a4: fc01 vmsge.vx v24,v0,ra,v0.t + 40a6: fbff .2byte 0xfbff + 40a8: f9fe .2byte 0xf9fe + 40aa: 0506 .2byte 0x506 + 40ac: 0302 vmsge.vx v6,v0,zero,v0.t + 40ae: 0205 .2byte 0x205 + 40b0: ff01 vmsge.vx v30,v0,ra,v0.t + 40b2: 02f9 .2byte 0x2f9 + 40b4: 0304 .2byte 0x304 + 40b6: fefa .2byte 0xfefa + 40b8: fd05 .2byte 0xfd05 + 40ba: 0405 .2byte 0x405 + 40bc: 01fc .2byte 0x1fc + 40be: 030001fb .4byte 0x30001fb + 40c2: fdff .2byte 0xfdff + 40c4: 0200 vmsge.vx v4,v0,zero,v0.t + 40c6: 0602f9fb .4byte 0x602f9fb + 40ca: fbfa .2byte 0xfbfa + 40cc: ff02 vmsge.vx v30,v0,ra,v0.t + 40ce: ff06 .2byte 0xff06 + 40d0: 0405 .2byte 0x405 + 40d2: 0400 vmsge.vx v8,v0,zero,v0.t + 40d4: f8fa .2byte 0xf8fa + 40d6: 01fc03fb .4byte 0x1fc03fb + 40da: 03ff 0302 fbfa fffd .byte 0xff, 0x03, 0x02, 0x03, 0xfa, 0xfb, 0xfd, 0xff, 0xf9, 0xff + 40e2: fff9 + 40e4: 03f8 .2byte 0x3f8 + 40e6: faf8 .2byte 0xfaf8 + 40e8: ffff .2byte 0xffff + 40ea: 0104 .2byte 0x104 + 40ec: fbfcf903 vmsge.vx v18,v31,s9 + 40f0: fffc .2byte 0xfffc + 40f2: 0204f903 vmsge.vx v18,v0,s1 + 40f6: fc00 vmsge.vx v24,v0,ra,v0.t + 40f8: fb01 vmsge.vx v22,v0,ra,v0.t + 40fa: 06ff 04fa fc02 0106 .byte 0xff, 0x06, 0xfa, 0x04, 0x02, 0xfc, 0x06, 0x01, 0x05, 0xf8 + 4102: f805 + 4104: fafe .2byte 0xfafe + 4106: 01fe .2byte 0x1fe + 4108: 0302 vmsge.vx v6,v0,zero,v0.t + 410a: 04fd .2byte 0x4fd + 410c: f8ff .2byte 0xf8ff + 410e: fe05 .2byte 0xfe05 + 4110: fbfcfefb .4byte 0xfbfcfefb + 4114: 03ff fffd 01fd 02fd .byte 0xff, 0x03, 0xfd, 0xff, 0xfd, 0x01, 0xfd, 0x02, 0xfc, 0xfb + 411c: fbfc + 411e: fb01 vmsge.vx v22,v0,ra,v0.t + 4120: 0500 vmsge.vx v10,v0,zero,v0.t + 4122: fcff .2byte 0xfcff + 4124: fbfd .2byte 0xfbfd + 4126: 04fb0203 lb tp,79(s6) + 412a: 05fe .2byte 0x5fe + 412c: 00f9 .2byte 0xf9 + 412e: 04ff fbfc 0203 ff06 .byte 0xff, 0x04, 0xfc, 0xfb, 0x03, 0x02, 0x06, 0xff, 0xfb, 0x06 + 4136: 06fb + 4138: f804 .2byte 0xf804 + 413a: 01f8 .2byte 0x1f8 + 413c: fdfe .2byte 0xfdfe + 413e: f901 vmsge.vx v18,v0,ra,v0.t + 4140: f801 vmsge.vx v16,v0,ra,v0.t + 4142: 0505 .2byte 0x505 + 4144: 0400 vmsge.vx v8,v0,zero,v0.t + 4146: fe04 .2byte 0xfe04 + 4148: fc05 .2byte 0xfc05 + 414a: fcf9fbfb .4byte 0xfcf9fbfb + 414e: fe00 vmsge.vx v28,v0,ra,v0.t + 4150: 0500 vmsge.vx v10,v0,zero,v0.t + 4152: fafc .2byte 0xfafc + 4154: 01fe .2byte 0x1fe + 4156: 0205 .2byte 0x205 + 4158: 0602 vmsge.vx v12,v0,zero,v0.t + 415a: 0305 .2byte 0x305 + 415c: fe05 .2byte 0xfe05 + 415e: 0604 .2byte 0x604 + 4160: 0600 vmsge.vx v12,v0,zero,v0.t + 4162: 0301 vmsge.vx v6,v0,zero,v0.t + 4164: f9fa .2byte 0xf9fa + 4166: 0604 .2byte 0x604 + 4168: faf9 .2byte 0xfaf9 + 416a: 0506 .2byte 0x506 + 416c: 03f8 .2byte 0x3f8 + 416e: fc06 .2byte 0xfc06 + 4170: fb040203 lb tp,-80(s0) + 4174: fcfc .2byte 0xfcfc + 4176: 03f8 .2byte 0x3f8 + 4178: 04fc .2byte 0x4fc + 417a: fcfa .2byte 0xfcfa + 417c: 04fe .2byte 0x4fe + 417e: 06fd .2byte 0x6fd + 4180: f805 .2byte 0xf805 + 4182: fafd .2byte 0xfafd + 4184: 00f8 .2byte 0xf8 + 4186: 00fa .2byte 0xfa + 4188: 03fc .2byte 0x3fc + 418a: fb05 .2byte 0xfb05 + 418c: f804 .2byte 0xf804 + 418e: 06fd .2byte 0x6fd + 4190: fa06 .2byte 0xfa06 + 4192: 0302 vmsge.vx v6,v0,zero,v0.t + 4194: fa00fc03 vmsge.vx v24,v0,ra + 4198: fdfd .2byte 0xfdfd + 419a: 0406 .2byte 0x406 + 419c: 00fc .2byte 0xfc + 419e: 05f801fb .4byte 0x5f801fb + 41a2: ffff .2byte 0xffff + 41a4: f801 vmsge.vx v16,v0,ra,v0.t + 41a6: fdfa .2byte 0xfdfa + 41a8: fafd00fb .4byte 0xfafd00fb + 41ac: 02fc .2byte 0x2fc + 41ae: fcf9 .2byte 0xfcf9 + 41b0: 0305 .2byte 0x305 + 41b2: 0602 vmsge.vx v12,v0,zero,v0.t + 41b4: fbfc .2byte 0xfbfc + 41b6: fafd .2byte 0xfafd + 41b8: 020205fb .4byte 0x20205fb + 41bc: fa05 .2byte 0xfa05 + 41be: fa04 .2byte 0xfa04 + 41c0: 03fdfb03 vmsge.vx v22,v31,s11 + 41c4: 0404 .2byte 0x404 + 41c6: 06fe .2byte 0x6fe + 41c8: fc04 .2byte 0xfc04 + 41ca: fa01 vmsge.vx v20,v0,ra,v0.t + 41cc: f8ff .2byte 0xf8ff + 41ce: f9f8 .2byte 0xf9f8 + 41d0: f8fdfdfb .4byte 0xf8fdfdfb + 41d4: fd01 vmsge.vx v26,v0,ra,v0.t + 41d6: fcff .2byte 0xfcff + 41d8: 00fa .2byte 0xfa + 41da: 0606fc03 vmsge.vx v24,v0,a3 + 41de: fc02 vmsge.vx v24,v0,ra,v0.t + 41e0: 00fa .2byte 0xfa + 41e2: fdf8 .2byte 0xfdf8 + 41e4: 0205 .2byte 0x205 + 41e6: fe01 vmsge.vx v28,v0,ra,v0.t + 41e8: 06f8 .2byte 0x6f8 + 41ea: f901 vmsge.vx v18,v0,ra,v0.t + 41ec: 0300 vmsge.vx v6,v0,zero,v0.t + 41ee: 0001 vmsge.vx v0,v0,zero,v0.t + 41f0: f8ff .2byte 0xf8ff + 41f2: fe030503 lb a0,-32(t1) + 41f6: 0101 vmsge.vx v2,v0,zero,v0.t + 41f8: fb00 vmsge.vx v22,v0,ra,v0.t + 41fa: 05fe .2byte 0x5fe + 41fc: fcfa .2byte 0xfcfa + 41fe: 0402 vmsge.vx v8,v0,zero,v0.t + 4200: 04ff fe05 f8f8 fd01 .byte 0xff, 0x04, 0x05, 0xfe, 0xf8, 0xf8, 0x01, 0xfd, 0x01, 0x05 + 4208: 0501 + 420a: 02fa .2byte 0x2fa + 420c: 0601 vmsge.vx v12,v0,zero,v0.t + 420e: fa01 vmsge.vx v20,v0,ra,v0.t + 4210: 05ff 03f8 fe05 f8fd .byte 0xff, 0x05, 0xf8, 0x03, 0x05, 0xfe, 0xfd, 0xf8, 0x00, 0xf8 + 4218: f800 + 421a: fffd .2byte 0xfffd + 421c: fa04 .2byte 0xfa04 + 421e: 0402 vmsge.vx v8,v0,zero,v0.t + 4220: fdfef903 vmsge.vx v18,v31,t4,v0.t + 4224: 0504 .2byte 0x504 + 4226: 0606 .2byte 0x606 + 4228: f9fb0003 lb zero,-97(s6) + 422c: f8fa .2byte 0xf8fa + 422e: 06fc .2byte 0x6fc + 4230: 02fa .2byte 0x2fa + 4232: fa05 .2byte 0xfa05 + 4234: f9fa .2byte 0xf9fa + 4236: 0304 .2byte 0x304 + 4238: fc01 vmsge.vx v24,v0,ra,v0.t + 423a: 0601 vmsge.vx v12,v0,zero,v0.t + 423c: 02fefefb .4byte 0x2fefefb + 4240: 0301 vmsge.vx v6,v0,zero,v0.t + 4242: fcfe .2byte 0xfcfe + 4244: 0602 vmsge.vx v12,v0,zero,v0.t + 4246: 05f9 .2byte 0x5f9 + 4248: fe01 vmsge.vx v28,v0,ra,v0.t + 424a: faf8 .2byte 0xfaf8 + 424c: fbf8 .2byte 0xfbf8 + 424e: 03ff fbf8 fd03 fe02 .byte 0xff, 0x03, 0xf8, 0xfb, 0x03, 0xfd, 0x02, 0xfe, 0xf9, 0x05 + 4256: 05f9 + 4258: 05ff 00fd 02fc 04fb .byte 0xff, 0x05, 0xfd, 0x00, 0xfc, 0x02, 0xfb, 0x04, 0x02, 0x01 + 4260: 0102 + 4262: fa05 .2byte 0xfa05 + 4264: fa05 .2byte 0xfa05 + 4266: 0206 .2byte 0x206 + 4268: f804 .2byte 0xf804 + 426a: fa06 .2byte 0xfa06 + 426c: ff01 vmsge.vx v30,v0,ra,v0.t + 426e: fffb01fb .4byte 0xfffb01fb + 4272: 0206 .2byte 0x206 + 4274: 05fc .2byte 0x5fc + 4276: f902 vmsge.vx v18,v0,ra,v0.t + 4278: 0101 vmsge.vx v2,v0,zero,v0.t + 427a: ff06 .2byte 0xff06 + 427c: fc01 vmsge.vx v24,v0,ra,v0.t + 427e: 0301 vmsge.vx v6,v0,zero,v0.t + 4280: fb01 vmsge.vx v22,v0,ra,v0.t + 4282: fe06 .2byte 0xfe06 + 4284: f9ff .2byte 0xf9ff + 4286: faf8 .2byte 0xfaf8 + 4288: 06f9 .2byte 0x6f9 + 428a: fb00fafb .4byte 0xfb00fafb + 428e: fb05 .2byte 0xfb05 + 4290: fbfa .2byte 0xfbfa + 4292: fe02 vmsge.vx v28,v0,ra,v0.t + 4294: 0202 vmsge.vx v4,v0,zero,v0.t + 4296: f802 vmsge.vx v16,v0,ra,v0.t + 4298: fcfc .2byte 0xfcfc + 429a: 0401 vmsge.vx v8,v0,zero,v0.t + 429c: 05ff 0205 0103 0603 .byte 0xff, 0x05, 0x05, 0x02, 0x03, 0x01, 0x03, 0x06, 0x06, 0xfb + 42a4: fb06 + 42a6: 0401 vmsge.vx v8,v0,zero,v0.t + 42a8: fa06 .2byte 0xfa06 + 42aa: 03f8 .2byte 0x3f8 + 42ac: 04fa .2byte 0x4fa + 42ae: 0201 vmsge.vx v4,v0,zero,v0.t + 42b0: fa05fdfb .4byte 0xfa05fdfb + 42b4: 04fe .2byte 0x4fe + 42b6: 00f8 .2byte 0xf8 + 42b8: 0405 .2byte 0x405 + 42ba: fafc .2byte 0xfafc + 42bc: fc00 vmsge.vx v24,v0,ra,v0.t + 42be: 06fa .2byte 0x6fa + 42c0: 0404 .2byte 0x404 + 42c2: fff8 .2byte 0xfff8 + 42c4: 05fc .2byte 0x5fc + 42c6: 00fa .2byte 0xfa + 42c8: ff01 vmsge.vx v30,v0,ra,v0.t + 42ca: 04fd .2byte 0x4fd + 42cc: f806fdfb .4byte 0xf806fdfb + 42d0: 0004 .2byte 0x4 + 42d2: 05f8 .2byte 0x5f8 + 42d4: 01f9 .2byte 0x1f9 + 42d6: 02f8 .2byte 0x2f8 + 42d8: 04fe .2byte 0x4fe + 42da: fbf8 .2byte 0xfbf8 + 42dc: 03ff 0501 f900 fffc .byte 0xff, 0x03, 0x01, 0x05, 0x00, 0xf9, 0xfc, 0xff, 0x03, 0xf9 + 42e4: f903 + 42e6: fffffc03 vmsge.vx v24,v31,t6 + 42ea: 06f8 .2byte 0x6f8 + 42ec: fc01 vmsge.vx v24,v0,ra,v0.t + 42ee: fcf9 .2byte 0xfcf9 + 42f0: fafd .2byte 0xfafd + 42f2: 03fcff03 vmsge.vx v30,v31,s9 + 42f6: 0206 .2byte 0x206 + 42f8: 0205 .2byte 0x205 + 42fa: 0505 .2byte 0x505 + 42fc: fefc .2byte 0xfefc + 42fe: f9fc .2byte 0xf9fc + 4300: 0506 .2byte 0x506 + 4302: fdfc .2byte 0xfdfc + 4304: 04fc .2byte 0x4fc + 4306: fe01 vmsge.vx v28,v0,ra,v0.t + 4308: 03fa .2byte 0x3fa + 430a: fa02 vmsge.vx v20,v0,ra,v0.t + 430c: 02ff0103 lb sp,47(t5) + 4310: 03f9 .2byte 0x3f9 + 4312: f9f8 .2byte 0xf9f8 + 4314: fafe .2byte 0xfafe + 4316: f800 vmsge.vx v16,v0,ra,v0.t + 4318: 0405 .2byte 0x405 + 431a: fbfa .2byte 0xfbfa + 431c: f906fd03 vmsge.vx v26,v16,a3,v0.t + 4320: 05fc .2byte 0x5fc + 4322: 0102 vmsge.vx v2,v0,zero,v0.t + 4324: fbfe .2byte 0xfbfe + 4326: 0502 vmsge.vx v10,v0,zero,v0.t + 4328: 0604 .2byte 0x604 + 432a: 0305 .2byte 0x305 + 432c: f804 .2byte 0xf804 + 432e: 02050003 lb zero,32(a0) + 4332: 00f9 .2byte 0xf9 + 4334: 06fa .2byte 0x6fa + 4336: 0504 .2byte 0x504 + 4338: fb06 .2byte 0xfb06 + 433a: 0500 vmsge.vx v10,v0,zero,v0.t + 433c: 0101 vmsge.vx v2,v0,zero,v0.t + 433e: 00fc .2byte 0xfc + 4340: fffe .2byte 0xfffe + 4342: fefc0003 lb zero,-17(s8) + 4346: 0402 vmsge.vx v8,v0,zero,v0.t + 4348: f9fc .2byte 0xf9fc + 434a: fc01 vmsge.vx v24,v0,ra,v0.t + 434c: fffd .2byte 0xfffd + 434e: fa05 .2byte 0xfa05 + 4350: fd00 vmsge.vx v26,v0,ra,v0.t + 4352: 01f9 .2byte 0x1f9 + 4354: 0202 vmsge.vx v4,v0,zero,v0.t + 4356: f806 .2byte 0xf806 + 4358: 0400 vmsge.vx v8,v0,zero,v0.t + 435a: fe00 vmsge.vx v28,v0,ra,v0.t + 435c: fffcfafb .4byte 0xfffcfafb + 4360: fb02 vmsge.vx v22,v0,ra,v0.t + 4362: fdfd .2byte 0xfdfd + 4364: fffe .2byte 0xfffe + 4366: 02fbf903 vmsge.vx v18,v15,s7 + 436a: 0501 vmsge.vx v10,v0,zero,v0.t + 436c: 00f8 .2byte 0xf8 + 436e: fd04 .2byte 0xfd04 + 4370: fdfe .2byte 0xfdfe + 4372: fdf8f8fb .4byte 0xfdf8f8fb + 4376: f804 .2byte 0xf804 + 4378: 06ff f802 0303 feff .byte 0xff, 0x06, 0x02, 0xf8, 0x03, 0x03, 0xff, 0xfe, 0xfb, 0x02 + 4380: 02fb + 4382: f9fe .2byte 0xf9fe + 4384: 00ff 00fe 0505 fcfe .byte 0xff, 0x00, 0xfe, 0x00, 0x05, 0x05, 0xfe, 0xfc, 0x06, 0xf8 + 438c: f806 + 438e: 00fdfbfb .4byte 0xfdfbfb + 4392: fd01 vmsge.vx v26,v0,ra,v0.t + 4394: ff06 .2byte 0xff06 + 4396: 06fc .2byte 0x6fc + 4398: 0106 .2byte 0x106 + 439a: f9fa .2byte 0xf9fa + 439c: ff04 .2byte 0xff04 + 439e: feff .2byte 0xfeff + 43a0: 04030103 lb sp,64(t1) + 43a4: 0300 vmsge.vx v6,v0,zero,v0.t + 43a6: 0000 vmsge.vx v0,v0,zero,v0.t + 43a8: f9fa .2byte 0xf9fa + 43aa: ffff .2byte 0xffff + 43ac: ff06 .2byte 0xff06 + 43ae: 01fa .2byte 0x1fa + 43b0: 0201fafb .4byte 0x201fafb + 43b4: f9fa .2byte 0xf9fa + 43b6: 0102 vmsge.vx v2,v0,zero,v0.t + 43b8: f906 .2byte 0xf906 + 43ba: 03fc .2byte 0x3fc + 43bc: fd00 vmsge.vx v26,v0,ra,v0.t + 43be: fffd .2byte 0xfffd + 43c0: fef8 .2byte 0xfef8 + 43c2: fe06 .2byte 0xfe06 + 43c4: fff8 .2byte 0xfff8 + 43c6: 02fd .2byte 0x2fd + 43c8: fffc .2byte 0xfffc + 43ca: f8fa .2byte 0xf8fa + 43cc: f905 .2byte 0xf905 + 43ce: f901 vmsge.vx v18,v0,ra,v0.t + 43d0: f906 .2byte 0xf906 + 43d2: fdf9 .2byte 0xfdf9 + 43d4: 06fa .2byte 0x6fa + 43d6: f8fe .2byte 0xf8fe + 43d8: fafc .2byte 0xfafc + 43da: fdff .2byte 0xfdff + 43dc: fe02 vmsge.vx v28,v0,ra,v0.t + 43de: 05fa .2byte 0x5fa + 43e0: 01fd .2byte 0x1fd + 43e2: 0604 .2byte 0x604 + 43e4: 01fc .2byte 0x1fc + 43e6: ffff .2byte 0xffff + 43e8: 06fa .2byte 0x6fa + 43ea: fcfd .2byte 0xfcfd + 43ec: fdfe0203 lb tp,-33(t3) + 43f0: fefa .2byte 0xfefa + 43f2: fe05 .2byte 0xfe05 + 43f4: fb06 .2byte 0xfb06 + 43f6: f901 vmsge.vx v18,v0,ra,v0.t + 43f8: fefd .2byte 0xfefd + 43fa: 01ff fd03 0605 .byte 0xff, 0x01, 0x03, 0xfd, 0x05, 0x06, 0xfe, 0x00, 0xfe, 0xfe + 4402: + +0000000000004400 : + 4400: 00fe .2byte 0xfe + 4402: fefe .2byte 0xfefe + 4404: fffa .2byte 0xfffa + 4406: 04f8 .2byte 0x4f8 + 4408: 02f806fb .4byte 0x2f806fb + 440c: fe00 vmsge.vx v28,v0,ra,v0.t + 440e: 0000 vmsge.vx v0,v0,zero,v0.t + 4410: fbf8 .2byte 0xfbf8 + 4412: 0505 .2byte 0x505 + 4414: 0002 vmsge.vx v0,v0,zero,v0.t + 4416: fbfc .2byte 0xfbfc + 4418: f904 .2byte 0xf904 + 441a: 00f9 .2byte 0xf9 + 441c: 0101 vmsge.vx v2,v0,zero,v0.t + 441e: fefa .2byte 0xfefa + 4420: f9f9 .2byte 0xf9f9 + 4422: fd02 vmsge.vx v26,v0,ra,v0.t + 4424: fafbfc03 vmsge.vx v24,v15,s7 + 4428: f9fe .2byte 0xf9fe + 442a: fc00 vmsge.vx v24,v0,ra,v0.t + 442c: fdfe .2byte 0xfdfe + 442e: 05fe .2byte 0x5fe + 4430: 00fe .2byte 0xfe + 4432: 0404 .2byte 0x404 + 4434: f9f9 .2byte 0xf9f9 + 4436: fcff .2byte 0xfcff + 4438: fef8fbfb .4byte 0xfef8fbfb + 443c: f9ff .2byte 0xf9ff + 443e: ff01 vmsge.vx v30,v0,ra,v0.t + 4440: 0204 .2byte 0x204 + 4442: f906 .2byte 0xf906 + 4444: fbfc .2byte 0xfbfc + 4446: 0200 vmsge.vx v4,v0,zero,v0.t + 4448: 0300 vmsge.vx v6,v0,zero,v0.t + 444a: 01fb0103 lb sp,31(s6) + 444e: fef9 .2byte 0xfef9 + 4450: faf9 .2byte 0xfaf9 + 4452: fef9 .2byte 0xfef9 + 4454: 06ff fbf8 0106 0004 .byte 0xff, 0x06, 0xf8, 0xfb, 0x06, 0x01, 0x04, 0x00, 0x01, 0x00 + 445c: 0001 + 445e: 0505 .2byte 0x505 + 4460: f806 .2byte 0xf806 + 4462: fa01 vmsge.vx v20,v0,ra,v0.t + 4464: 0404 .2byte 0x404 + 4466: 03fa .2byte 0x3fa + 4468: fbfa .2byte 0xfbfa + 446a: f9ff .2byte 0xf9ff + 446c: f9ff .2byte 0xf9ff + 446e: f900 vmsge.vx v18,v0,ra,v0.t + 4470: 0005 .2byte 0x5 + 4472: fafc .2byte 0xfafc + 4474: fffa .2byte 0xfffa + 4476: fbfe .2byte 0xfbfe + 4478: 0405 .2byte 0x405 + 447a: 04f9 .2byte 0x4f9 + 447c: 0600 vmsge.vx v12,v0,zero,v0.t + 447e: f8030403 lb s0,-128(t1) + 4482: 05f9 .2byte 0x5f9 + 4484: f802 vmsge.vx v16,v0,ra,v0.t + 4486: 0302 vmsge.vx v6,v0,zero,v0.t + 4488: 0606fe03 vmsge.vx v28,v0,a3 + 448c: 06f9 .2byte 0x6f9 + 448e: 0106 .2byte 0x106 + 4490: 02fdf903 vmsge.vx v18,v15,s11 + 4494: f901 vmsge.vx v18,v0,ra,v0.t + 4496: ffff .2byte 0xffff + 4498: f8fe .2byte 0xf8fe + 449a: fd02 vmsge.vx v26,v0,ra,v0.t + 449c: fbff .2byte 0xfbff + 449e: fc04 .2byte 0xfc04 + 44a0: 02ff 06fa 01fc fe03 .byte 0xff, 0x02, 0xfa, 0x06, 0xfc, 0x01, 0x03, 0xfe, 0x05, 0x05 + 44a8: 0505 + 44aa: 03fc .2byte 0x3fc + 44ac: faff .2byte 0xfaff + 44ae: f8fa .2byte 0xf8fa + 44b0: 0201 vmsge.vx v4,v0,zero,v0.t + 44b2: ff01 vmsge.vx v30,v0,ra,v0.t + 44b4: 01ff 0301 0306 fb00 .byte 0xff, 0x01, 0x01, 0x03, 0x06, 0x03, 0x00, 0xfb, 0xf9, 0xfe + 44bc: fef9 + 44be: fe01 vmsge.vx v28,v0,ra,v0.t + 44c0: fdfc .2byte 0xfdfc + 44c2: f8f8 .2byte 0xf8f8 + 44c4: 04f8 .2byte 0x4f8 + 44c6: f805 .2byte 0xf805 + 44c8: f9fc .2byte 0xf9fc + 44ca: 05fdfc03 vmsge.vx v24,v31,s11,v0.t + 44ce: 06fc .2byte 0x6fc + 44d0: 0302 vmsge.vx v6,v0,zero,v0.t + 44d2: fdfd .2byte 0xfdfd + 44d4: f9f8 .2byte 0xf9f8 + 44d6: 060400fb .4byte 0x60400fb + 44da: 0305 .2byte 0x305 + 44dc: fdf9 .2byte 0xfdf9 + 44de: f804 .2byte 0xf804 + 44e0: 03fb0403 lb s0,63(s6) + 44e4: fc00 vmsge.vx v24,v0,ra,v0.t + 44e6: fdf9 .2byte 0xfdf9 + 44e8: 00ff 01fd 02fd 0204 .byte 0xff, 0x00, 0xfd, 0x01, 0xfd, 0x02, 0x04, 0x02, 0xfc, 0xf9 + 44f0: f9fc + 44f2: 04f9 .2byte 0x4f9 + 44f4: fb01 vmsge.vx v22,v0,ra,v0.t + 44f6: fa04 .2byte 0xfa04 + 44f8: 00060303 lb t1,0(a2) + 44fc: fcff .2byte 0xfcff + 44fe: f9f9 .2byte 0xf9f9 + 4500: 0506fc03 vmsge.vx v24,v16,a3,v0.t + 4504: f8f8 .2byte 0xf8f8 + 4506: fd05 .2byte 0xfd05 + 4508: 04fd .2byte 0x4fd + 450a: 03fd .2byte 0x3fd + 450c: fe02 vmsge.vx v28,v0,ra,v0.t + 450e: fdfbfafb .4byte 0xfdfbfafb + 4512: 03fe .2byte 0x3fe + 4514: fa00 vmsge.vx v20,v0,ra,v0.t + 4516: f8f8 .2byte 0xf8f8 + 4518: fdfc .2byte 0xfdfc + 451a: fd02 vmsge.vx v26,v0,ra,v0.t + 451c: f906 .2byte 0xf906 + 451e: fdfd .2byte 0xfdfd + 4520: 0502 vmsge.vx v10,v0,zero,v0.t + 4522: fb01 vmsge.vx v22,v0,ra,v0.t + 4524: 05f8 .2byte 0x5f8 + 4526: fe020003 lb zero,-32(tp) # ffffffffffffffe0 <_end+0xffffffffefffff98> + 452a: fffe00fb .4byte 0xfffe00fb + 452e: fd03f9fb .4byte 0xfd03f9fb + 4532: ffff .2byte 0xffff + 4534: 0205 .2byte 0x205 + 4536: 03fe .2byte 0x3fe + 4538: 0305 .2byte 0x305 + 453a: fbff0103 lb sp,-65(t5) + 453e: f906 .2byte 0xf906 + 4540: 0204 .2byte 0x204 + 4542: 0306 .2byte 0x306 + 4544: fb00 vmsge.vx v22,v0,ra,v0.t + 4546: faff .2byte 0xfaff + 4548: fdff .2byte 0xfdff + 454a: f8ff .2byte 0xf8ff + 454c: f8fc .2byte 0xf8fc + 454e: fff9 .2byte 0xfff9 + 4550: 06fa .2byte 0x6fa + 4552: fc04 .2byte 0xfc04 + 4554: 04f9 .2byte 0x4f9 + 4556: 0206 .2byte 0x206 + 4558: fbfa .2byte 0xfbfa + 455a: f902 vmsge.vx v18,v0,ra,v0.t + 455c: fcfc .2byte 0xfcfc + 455e: 0500 vmsge.vx v10,v0,zero,v0.t + 4560: 04fc .2byte 0x4fc + 4562: 0000 vmsge.vx v0,v0,zero,v0.t + 4564: fd05 .2byte 0xfd05 + 4566: 0004 .2byte 0x4 + 4568: 06fe .2byte 0x6fe + 456a: fcfa .2byte 0xfcfa + 456c: fb00 vmsge.vx v22,v0,ra,v0.t + 456e: f9fa .2byte 0xf9fa + 4570: faff .2byte 0xfaff + 4572: fdfd .2byte 0xfdfd + 4574: 0101 vmsge.vx v2,v0,zero,v0.t + 4576: fbfc0403 lb s0,-65(s8) + 457a: fb06 .2byte 0xfb06 + 457c: 05fe .2byte 0x5fe + 457e: 0005 .2byte 0x5 + 4580: fdf8 .2byte 0xfdf8 + 4582: 06f8 .2byte 0x6f8 + 4584: 03ff 05fb fcfb f8fa .byte 0xff, 0x03, 0xfb, 0x05, 0xfb, 0xfc, 0xfa, 0xf8, 0xf9, 0xf9 + 458c: f9f9 + 458e: f9fcfa03 vmsge.vx v20,v31,s9,v0.t + 4592: 0201 vmsge.vx v4,v0,zero,v0.t + 4594: fbf8 .2byte 0xfbf8 + 4596: ff02 vmsge.vx v30,v0,ra,v0.t + 4598: ff01 vmsge.vx v30,v0,ra,v0.t + 459a: 05fa .2byte 0x5fa + 459c: 05fa .2byte 0x5fa + 459e: fa05 .2byte 0xfa05 + 45a0: fd05 .2byte 0xfd05 + 45a2: fafa .2byte 0xfafa + 45a4: fffd .2byte 0xfffd + 45a6: fcf8 .2byte 0xfcf8 + 45a8: fd02 vmsge.vx v26,v0,ra,v0.t + 45aa: 05fb05fb .4byte 0x5fb05fb + 45ae: f8fc .2byte 0xf8fc + 45b0: 01f9 .2byte 0x1f9 + 45b2: fd00 vmsge.vx v26,v0,ra,v0.t + 45b4: 0601 vmsge.vx v12,v0,zero,v0.t + 45b6: ff02 vmsge.vx v30,v0,ra,v0.t + 45b8: 0501 vmsge.vx v10,v0,zero,v0.t + 45ba: 0402 vmsge.vx v8,v0,zero,v0.t + 45bc: fe04 .2byte 0xfe04 + 45be: 0301 vmsge.vx v6,v0,zero,v0.t + 45c0: 02fe .2byte 0x2fe + 45c2: fbff .2byte 0xfbff + 45c4: 06f904fb .4byte 0x6f904fb + 45c8: 01fc .2byte 0x1fc + 45ca: f801 vmsge.vx v16,v0,ra,v0.t + 45cc: 0602 vmsge.vx v12,v0,zero,v0.t + 45ce: fff9 .2byte 0xfff9 + 45d0: 05fcfb03 vmsge.vx v22,v31,s9,v0.t + 45d4: 01f9 .2byte 0x1f9 + 45d6: 01fc .2byte 0x1fc + 45d8: 03fd .2byte 0x3fd + 45da: 01fc .2byte 0x1fc + 45dc: 0605 .2byte 0x605 + 45de: 04fd .2byte 0x4fd + 45e0: 00fa .2byte 0xfa + 45e2: 06040203 lb tp,96(s0) + 45e6: 04f8 .2byte 0x4f8 + 45e8: f9ff .2byte 0xf9ff + 45ea: fdfc .2byte 0xfdfc + 45ec: fefc .2byte 0xfefc + 45ee: ff000103 lb sp,-16(zero) # fffffffffffffff0 <_end+0xffffffffefffffa8> + 45f2: f802 vmsge.vx v16,v0,ra,v0.t + 45f4: 06f903fb .4byte 0x6f903fb + 45f8: f905 .2byte 0xf905 + 45fa: ff02 vmsge.vx v30,v0,ra,v0.t + 45fc: fff8 .2byte 0xfff8 + 45fe: fbfc .2byte 0xfbfc + 4600: fb06 .2byte 0xfb06 + 4602: fd00 vmsge.vx v26,v0,ra,v0.t + 4604: 0302 vmsge.vx v6,v0,zero,v0.t + 4606: fbff .2byte 0xfbff + 4608: 00ff 03fd f9f9 fbf9 .byte 0xff, 0x00, 0xfd, 0x03, 0xf9, 0xf9, 0xf9, 0xfb, 0x00, 0xf8 + 4610: f800 + 4612: 01fe .2byte 0x1fe + 4614: 06fd .2byte 0x6fd + 4616: fefe .2byte 0xfefe + 4618: f8ff .2byte 0xf8ff + 461a: 01fa .2byte 0x1fa + 461c: 0501 vmsge.vx v10,v0,zero,v0.t + 461e: 0205 .2byte 0x205 + 4620: fd00 vmsge.vx v26,v0,ra,v0.t + 4622: fafc .2byte 0xfafc + 4624: 06ff 01f8 f803 f9f9 .byte 0xff, 0x06, 0xf8, 0x01, 0x03, 0xf8, 0xf9, 0xf9, 0xff, 0xfb + 462c: fbff + 462e: fc02fcfb .4byte 0xfc02fcfb + 4632: 01fbfc03 vmsge.vx v24,v31,s7,v0.t + 4636: 05ff 00fe 03f8 f8fe .byte 0xff, 0x05, 0xfe, 0x00, 0xf8, 0x03, 0xfe, 0xf8, 0xfb, 0x01 + 463e: 01fb + 4640: fffa .2byte 0xfffa + 4642: 0501 vmsge.vx v10,v0,zero,v0.t + 4644: ff06 .2byte 0xff06 + 4646: f9fd .2byte 0xf9fd + 4648: 0106 .2byte 0x106 + 464a: 0606 .2byte 0x606 + 464c: f8f8 .2byte 0xf8f8 + 464e: fefa .2byte 0xfefa + 4650: fe01 vmsge.vx v28,v0,ra,v0.t + 4652: 06ff0103 lb sp,111(t5) + 4656: fe02f803 vmsge.vx v16,v0,t0 + 465a: 0601 vmsge.vx v12,v0,zero,v0.t + 465c: 00ff fcf8 05fb 04ff .byte 0xff, 0x00, 0xf8, 0xfc, 0xfb, 0x05, 0xff, 0x04, 0x04, 0x02 + 4664: 0204 + 4666: 06f8 .2byte 0x6f8 + 4668: f800 vmsge.vx v16,v0,ra,v0.t + 466a: fbfd .2byte 0xfbfd + 466c: fbff .2byte 0xfbff + 466e: 05f9 .2byte 0x5f9 + 4670: fc04 .2byte 0xfc04 + 4672: 0505 .2byte 0x505 + 4674: fafd .2byte 0xfafd + 4676: 0301 vmsge.vx v6,v0,zero,v0.t + 4678: fbfc .2byte 0xfbfc + 467a: 06f8 .2byte 0x6f8 + 467c: fafc0203 lb tp,-81(s8) + 4680: f8000203 lb tp,-128(zero) # ffffffffffffff80 <_end+0xffffffffefffff38> + 4684: 0102 vmsge.vx v2,v0,zero,v0.t + 4686: 06fc .2byte 0x6fc + 4688: 0306 .2byte 0x306 + 468a: ff01 vmsge.vx v30,v0,ra,v0.t + 468c: fd06 .2byte 0xfd06 + 468e: 04fe .2byte 0x4fe + 4690: f9fa .2byte 0xf9fa + 4692: f8f8 .2byte 0xf8f8 + 4694: fcfa .2byte 0xfcfa + 4696: 04f8 .2byte 0x4f8 + 4698: 0100 vmsge.vx v2,v0,zero,v0.t + 469a: fa00 vmsge.vx v20,v0,ra,v0.t + 469c: fd02 vmsge.vx v26,v0,ra,v0.t + 469e: f900 vmsge.vx v18,v0,ra,v0.t + 46a0: 03fa .2byte 0x3fa + 46a2: 01fc .2byte 0x1fc + 46a4: 0001 vmsge.vx v0,v0,zero,v0.t + 46a6: 04fc .2byte 0x4fc + 46a8: f806 .2byte 0xf806 + 46aa: f804 .2byte 0xf804 + 46ac: f8fe .2byte 0xf8fe + 46ae: 00fa .2byte 0xfa + 46b0: 03fa .2byte 0x3fa + 46b2: 06f8 .2byte 0x6f8 + 46b4: 0301 vmsge.vx v6,v0,zero,v0.t + 46b6: fc00 vmsge.vx v24,v0,ra,v0.t + 46b8: fafc .2byte 0xfafc + 46ba: 0002 vmsge.vx v0,v0,zero,v0.t + 46bc: f904 .2byte 0xf904 + 46be: ff06 .2byte 0xff06 + 46c0: 01f9 .2byte 0x1f9 + 46c2: f8fc .2byte 0xf8fc + 46c4: 05f9 .2byte 0x5f9 + 46c6: 03f9fdfb .4byte 0x3f9fdfb + 46ca: 00f9 .2byte 0xf9 + 46cc: 0602 vmsge.vx v12,v0,zero,v0.t + 46ce: fbfa .2byte 0xfbfa + 46d0: fafc .2byte 0xfafc + 46d2: 0300 vmsge.vx v6,v0,zero,v0.t + 46d4: fb02 vmsge.vx v22,v0,ra,v0.t + 46d6: 010504fb .4byte 0x10504fb + 46da: 06fe .2byte 0x6fe + 46dc: f901 vmsge.vx v18,v0,ra,v0.t + 46de: fe02 vmsge.vx v28,v0,ra,v0.t + 46e0: fb04 .2byte 0xfb04 + 46e2: fc03fffb .4byte 0xfc03fffb + 46e6: fa06 .2byte 0xfa06 + 46e8: fc06 .2byte 0xfc06 + 46ea: fdff .2byte 0xfdff + 46ec: 05fd .2byte 0x5fd + 46ee: 06f8 .2byte 0x6f8 + 46f0: 03fc .2byte 0x3fc + 46f2: 03fd .2byte 0x3fd + 46f4: 04f8 .2byte 0x4f8 + 46f6: 0404 .2byte 0x404 + 46f8: fc00 vmsge.vx v24,v0,ra,v0.t + 46fa: fffa0203 lb tp,-1(s4) + 46fe: 0405 .2byte 0x405 + 4700: fd04 .2byte 0xfd04 + 4702: 05f9 .2byte 0x5f9 + 4704: 05040203 lb tp,80(s0) + 4708: 0300 vmsge.vx v6,v0,zero,v0.t + 470a: 0105fefb .4byte 0x105fefb + 470e: fcfa .2byte 0xfcfa + 4710: 01fe0603 lb a2,31(t3) + 4714: 0406 .2byte 0x406 + 4716: faf9 .2byte 0xfaf9 + 4718: f9fe .2byte 0xf9fe + 471a: f900 vmsge.vx v18,v0,ra,v0.t + 471c: fcfd .2byte 0xfcfd + 471e: fcfc .2byte 0xfcfc + 4720: f801 vmsge.vx v16,v0,ra,v0.t + 4722: 01fe .2byte 0x1fe + 4724: fef9 .2byte 0xfef9 + 4726: 01fa .2byte 0x1fa + 4728: 0104 .2byte 0x104 + 472a: 00f90203 lb tp,15(s2) + 472e: ff02 vmsge.vx v30,v0,ra,v0.t + 4730: 0501f803 vmsge.vx v16,v16,gp,v0.t + 4734: 0001 vmsge.vx v0,v0,zero,v0.t + 4736: 06fa .2byte 0x6fa + 4738: fef9 .2byte 0xfef9 + 473a: fdf8 .2byte 0xfdf8 + 473c: 0200fc03 vmsge.vx v24,v0,ra + 4740: fd01 vmsge.vx v26,v0,ra,v0.t + 4742: 02fd .2byte 0x2fd + 4744: fa04 .2byte 0xfa04 + 4746: fc01 vmsge.vx v24,v0,ra,v0.t + 4748: f9f9 .2byte 0xf9f9 + 474a: ff00 vmsge.vx v30,v0,ra,v0.t + 474c: f904 .2byte 0xf904 + 474e: fd00 vmsge.vx v26,v0,ra,v0.t + 4750: f8fbfe03 vmsge.vx v28,v15,s7,v0.t + 4754: 0305 .2byte 0x305 + 4756: 05fc .2byte 0x5fc + 4758: 0004fb03 vmsge.vx v22,v0,s1,v0.t + 475c: fbfd .2byte 0xfbfd + 475e: fd01 vmsge.vx v26,v0,ra,v0.t + 4760: 0406 .2byte 0x406 + 4762: fbf8 .2byte 0xfbf8 + 4764: fb01 vmsge.vx v22,v0,ra,v0.t + 4766: 03fa .2byte 0x3fa + 4768: fef9 .2byte 0xfef9 + 476a: 0100 vmsge.vx v2,v0,zero,v0.t + 476c: 03fc .2byte 0x3fc + 476e: 05f8 .2byte 0x5f8 + 4770: fe02 vmsge.vx v28,v0,ra,v0.t + 4772: 0100 vmsge.vx v2,v0,zero,v0.t + 4774: fbfe .2byte 0xfbfe + 4776: fe06 .2byte 0xfe06 + 4778: fffc01fb .4byte 0xfffc01fb + 477c: 0104 .2byte 0x104 + 477e: f9fc .2byte 0xf9fc + 4780: f804 .2byte 0xf804 + 4782: 00fe .2byte 0xfe + 4784: fe06f9fb .4byte 0xfe06f9fb + 4788: fa00 vmsge.vx v20,v0,ra,v0.t + 478a: 0402 vmsge.vx v8,v0,zero,v0.t + 478c: fef9 .2byte 0xfef9 + 478e: 0400 vmsge.vx v8,v0,zero,v0.t + 4790: ff01 vmsge.vx v30,v0,ra,v0.t + 4792: 0005 .2byte 0x5 + 4794: 0400f903 vmsge.vx v18,v0,ra,v0.t + 4798: 04f9 .2byte 0x4f9 + 479a: f900 vmsge.vx v18,v0,ra,v0.t + 479c: 0300 vmsge.vx v6,v0,zero,v0.t + 479e: fdf9 .2byte 0xfdf9 + 47a0: 03030103 lb sp,48(t1) + 47a4: f9fb0603 lb a2,-97(s6) + 47a8: faf9 .2byte 0xfaf9 + 47aa: 05f8 .2byte 0x5f8 + 47ac: 01ff 0503 0201 fe03 .byte 0xff, 0x01, 0x03, 0x05, 0x01, 0x02, 0x03, 0xfe, 0xfb, 0x01 + 47b4: 01fb + 47b6: ffff .2byte 0xffff + 47b8: fc04 .2byte 0xfc04 + 47ba: fc06 .2byte 0xfc06 + 47bc: fd05 .2byte 0xfd05 + 47be: 05fe .2byte 0x5fe + 47c0: fbfe .2byte 0xfbfe + 47c2: 0000 vmsge.vx v0,v0,zero,v0.t + 47c4: fff9 .2byte 0xfff9 + 47c6: ffff .2byte 0xffff + 47c8: fc01 vmsge.vx v24,v0,ra,v0.t + 47ca: fb00 vmsge.vx v22,v0,ra,v0.t + 47cc: fd05 .2byte 0xfd05 + 47ce: fefa .2byte 0xfefa + 47d0: 05ff f800 f801 fbfe .byte 0xff, 0x05, 0x00, 0xf8, 0x01, 0xf8, 0xfe, 0xfb, 0xf9, 0xfa + 47d8: faf9 + 47da: f802 vmsge.vx v16,v0,ra,v0.t + 47dc: 04fe .2byte 0x4fe + 47de: 01ff 00f8 fb03 fbff .byte 0xff, 0x01, 0xf8, 0x00, 0x03, 0xfb, 0xff, 0xfb, 0x01, 0xfc + 47e6: fc01 + 47e8: fe06 .2byte 0xfe06 + 47ea: 03fd .2byte 0x3fd + 47ec: fdf9 .2byte 0xfdf9 + 47ee: fa00 vmsge.vx v20,v0,ra,v0.t + 47f0: fd02fb03 vmsge.vx v22,v16,t0,v0.t + 47f4: fef9 .2byte 0xfef9 + 47f6: 06fe .2byte 0x6fe + 47f8: 01f8 .2byte 0x1f8 + 47fa: fcf8 .2byte 0xfcf8 + 47fc: 0205 .2byte 0x205 + 47fe: 03 04 Address 0x47fe is out of bounds. + + +Disassembly of section .sdata: + +0000000000004800 <__global_pointer$-0x800>: + 4800: 0101 vmsge.vx v2,v0,zero,v0.t + 4802: 0101 vmsge.vx v2,v0,zero,v0.t + 4804: 0101 vmsge.vx v2,v0,zero,v0.t + 4806: 0101 vmsge.vx v2,v0,zero,v0.t + +Disassembly of section .bss: + +0000000000004808 : + ... + +0000000000004c08 : + ... + +Disassembly of section .tohost: + +0000000010000000 : + ... + +0000000010000040 : + ... + +Disassembly of section .comment: + +0000000000000000 <.comment>: + 0: 3a434347 .4byte 0x3a434347 + 4: 2820 vmsge.vx v16,v0,zero,v0.t + 6: 65653267 .4byte 0x65653267 + a: 6535 .2byte 0x6535 + c: 3334 .2byte 0x3334 + e: 3030 .2byte 0x3030 + 10: 3831 .2byte 0x3831 + 12: 2029 .2byte 0x2029 + 14: 3231 .2byte 0x3231 + 16: 322e .2byte 0x322e + 18: 302e .2byte 0x302e + ... + +Disassembly of section .riscv.attributes: + +0000000000000000 <.riscv.attributes>: + 0: 5e41 vmsge.vx v28,v0,zero,v0.t + 2: 0000 vmsge.vx v0,v0,zero,v0.t + 4: 7200 vmsge.vx v4,v0,zero,v0.t + 6: 7369 .2byte 0x7369 + 8: 01007663 bgeu zero,a6,14 <_start+0x14> + c: 0054 .2byte 0x54 + e: 0000 vmsge.vx v0,v0,zero,v0.t + 10: 1004 .2byte 0x1004 + 12: 7205 .2byte 0x7205 + 14: 3676 .2byte 0x3676 + 16: 6934 .2byte 0x6934 + 18: 7032 .2byte 0x7032 + 1a: 5f31 .2byte 0x5f31 + 1c: 326d .2byte 0x326d + 1e: 3070 .2byte 0x3070 + 20: 7a5f 6369 7273 .byte 0x5f, 0x7a, 0x69, 0x63, 0x73, 0x72 + 26: 7032 .2byte 0x7032 + 28: 5f30 .2byte 0x5f30 + 2a: 6d7a .2byte 0x6d7a + 2c: 756d .2byte 0x756d + 2e: 316c .2byte 0x316c + 30: 3070 .2byte 0x3070 + 32: 7a5f 6576 3233 .byte 0x5f, 0x7a, 0x76, 0x65, 0x33, 0x32 + 38: 3178 .2byte 0x3178 + 3a: 3070 .2byte 0x3070 + 3c: 7a5f 6576 3436 .byte 0x5f, 0x7a, 0x76, 0x65, 0x36, 0x34 + 42: 3178 .2byte 0x3178 + 44: 3070 .2byte 0x3070 + 46: 7a5f 6c76 3233 .byte 0x5f, 0x7a, 0x76, 0x6c, 0x33, 0x32 + 4c: 3162 vmsge.vx v2,v0,zero,v0.t + 4e: 3070 .2byte 0x3070 + 50: 7a5f 6c76 3436 .byte 0x5f, 0x7a, 0x76, 0x6c, 0x36, 0x34 + 56: 3162 vmsge.vx v2,v0,zero,v0.t + 58: 3070 .2byte 0x3070 + 5a: 0800 vmsge.vx v16,v0,zero,v0.t + 5c: 0a01 vmsge.vx v20,v0,zero,v0.t + 5e: 0b Address 0x5e is out of bounds. + diff --git a/src/main/resources/applications_fpga/vector_matmul/vector_matmul.c b/src/main/resources/applications_fpga/vector_matmul/vector_matmul.c new file mode 100644 index 00000000..8bd7726c --- /dev/null +++ b/src/main/resources/applications_fpga/vector_matmul/vector_matmul.c @@ -0,0 +1,160 @@ +// #include "util.h" + +#define size_t long +#define N 32 + +const signed char array1[32][32] = {{-2, 0, -2, -2, -6, -1, -8, 4, -5, 6, -8, 2, 0, -2, 0, 0, -8, -5, 5, 5, 2, 0, -4, -5, 4, -7, -7, 0, 1, 1, -6, -2}, + {-7, -7, 2, -3, 3, -4, -5, -6, -2, -7, 0, -4, -2, -3, -2, 5, -2, 0, 4, 4, -7, -7, -1, -4, -5, -5, -8, -2, -1, -7, 1, -1}, + {4, 2, 6, -7, -4, -5, 0, 2, 0, 3, 3, 1, -5, 1, -7, -2, -7, -6, -7, -2, -1, 6, -8, -5, 6, 1, 4, 0, 1, 0, 5, 5}, + {6, -8, 1, -6, 4, 4, -6, 3, -6, -5, -1, -7, -1, -7, 0, -7, 5, 0, -4, -6, -6, -1, -2, -5, 5, 4, -7, 4, 0, 6, 3, 4}, + {3, -8, -7, 5, 2, -8, 2, 3, 3, -2, 6, 6, -7, 6, 6, 1, 3, -7, -3, 2, 1, -7, -1, -1, -2, -8, 2, -3, -1, -5, 4, -4}, + {-1, 2, -6, 6, -4, 1, 3, -2, 5, 5, -4, 3, -1, -6, -6, -8, 1, 2, 1, -1, -1, 1, 1, 3, 6, 3, 0, -5, -7, -2, 1, -2}, + {-4, -3, -8, -8, -8, 4, 5, -8, -4, -7, 3, -4, -3, 5, -4, 6, 2, 3, -3, -3, -8, -7, -5, 0, 4, 6, 5, 3, -7, -3, 4, -8}, + {3, 4, -5, 3, 0, -4, -7, -3, -1, 0, -3, 1, -3, 2, 4, 2, -4, -7, -7, 4, 1, -5, 4, -6, 3, 3, 6, 0, -1, -4, -7, -7}, + {3, -4, 6, 5, -8, -8, 5, -3, -3, 4, -3, 3, 2, -2, -5, -6, -5, -3, -2, 3, 0, -6, -8, -8, -4, -3, 2, -3, 6, -7, -3, -3}, + {2, 5, 1, -5, -8, 5, 3, 0, 2, -2, -5, 0, -2, -1, -5, -7, 3, -3, -1, -1, 5, 2, -2, 3, 5, 3, 3, 1, -1, -5, 6, -7}, + {4, 2, 6, 3, 0, -5, -1, -6, -1, -3, -1, -8, -4, -8, -7, -1, -6, 6, 4, -4, -7, 4, 6, 2, -6, -5, 2, -7, -4, -4, 0, 5}, + {-4, 4, 0, 0, 5, -3, 4, 0, -2, 6, -6, -4, 0, -5, -6, -7, -1, -6, -3, -3, 1, 1, 3, 4, -4, -5, 6, -5, -2, 5, 5, 0}, + {-8, -3, -8, 6, -1, 3, -5, 5, -5, -4, -6, -8, -7, -7, 3, -6, -4, -7, 1, 2, -8, -5, 2, -1, 1, -1, -6, 5, -6, 5, 5, -6}, + {5, -3, -6, -6, -3, -1, -8, -4, 2, -3, -5, 5, -5, 5, -4, -8, -7, 1, 0, -3, 1, 6, 2, -1, 1, 5, 2, 4, 4, -2, 1, 3}, + {-2, 2, -1, -5, -5, 4, -7, 6, -4, 1, 1, -8, 2, 6, -7, -1, 3, -5, -4, 5, -7, 1, -4, 1, -3, 3, -4, 1, 5, 6, -3, 4}, + {-6, 0, 3, 2, 4, 6, -8, 4, -1, -7, -4, -3, -4, -2, 3, 1, 0, -1, 2, -8, -5, 3, -7, 6, 5, -7, 2, -1, -8, -1, -4, -5}, + {6, -5, 0, -3, 2, 3, -1, -5, -1, 0, -3, 3, -7, -7, -7, -5, 0, -8, -2, 1, -3, 6, -2, -2, -1, -8, -6, 1, 1, 5, 5, 2}, + {0, -3, -4, -6, -1, 6, -8, 1, 3, -8, -7, -7, -1, -5, -5, -4, 2, -4, 3, -4, -5, 1, -1, 5, -2, 0, -8, 3, -2, -8, -5, 1}, + {-6, -1, 1, 5, 6, -1, -3, -7, 6, 1, 6, 6, -8, -8, -6, -2, 1, -2, 3, 1, -1, 6, 3, -8, 2, -2, 1, 6, -1, 0, -8, -4}, + {-5, 5, -1, 4, 4, 2, -8, 6, 0, -8, -3, -5, -1, -5, -7, 5, 4, -4, 5, 5, -3, -6, 1, 3, -4, -5, -8, 6, 3, 2, -4, -6}, + {3, 2, 0, -8, 2, 1, -4, 6, 6, 3, 1, -1, 6, -3, -2, 4, -6, -7, -8, -8, -6, -4, -8, 4, 0, 1, 0, -6, 2, -3, 0, -7}, + {-6, 3, -4, 1, 1, 0, -4, 4, 6, -8, 4, -8, -2, -8, -6, 0, -6, 3, -8, 6, 1, 3, 0, -4, -4, -6, 2, 0, 4, -7, 6, -1}, + {-7, 1, -4, -8, -7, 5, -5, -3, -7, 3, -7, 0, 2, 6, -6, -5, -4, -6, 0, 3, 2, -5, -5, 4, 5, 1, -2, 6, 1, -7, 2, -2}, + {4, -5, -5, -1, 3, -4, 6, -6, 6, -4, -1, -3, -3, 5, -8, 6, -4, 3, -3, 3, -8, 4, 4, 4, 0, -4, 3, 2, -6, -1, 5, 4}, + {4, -3, -7, 5, 3, 2, 4, 5, 0, 3, -5, -2, 5, 1, -6, -4, 3, 6, -2, 1, 6, 4, -7, -6, -2, -7, 0, -7, -3, -4, -4, -4}, + {1, -8, -2, 1, -7, -2, -6, 1, 4, 1, 3, 2, -7, 0, 2, -1, 3, -8, 1, 5, 1, 0, -6, 6, -7, -2, -8, -3, 3, -4, 0, 2}, + {1, -3, -3, 2, 4, -6, 1, -4, -7, -7, 0, -1, 4, -7, 0, -3, 3, -2, -5, -8, 5, 3, -4, 5, 3, -5, 4, 0, -3, -5, 1, -3}, + {6, 4, -8, -5, 1, -5, -6, 3, -7, -2, 0, 1, -4, 3, -8, 5, 2, -2, 0, 1, -2, -5, 6, -2, -5, 1, -4, -1, 4, 1, -4, -7}, + {4, -8, -2, 0, -5, -7, 6, -2, 0, -6, 2, 4, -7, -2, 0, 4, 1, -1, 5, 0, 3, -7, 0, 4, -7, 4, 0, -7, 0, 3, -7, -3}, + {3, 1, 3, 3, 3, 6, -5, -7, -7, -6, -8, 5, -1, 1, 3, 5, 1, 2, 3, -2, -5, 1, -1, -1, 4, -4, 6, -4, 5, -3, -2, 5}, + {-2, -5, 0, 0, -7, -1, -1, -1, 1, -4, 0, -5, 5, -3, -6, -2, -1, 5, 0, -8, 1, -8, -2, -5, -7, -6, 2, -8, -2, 4, -1, 1}, + {-8, 0, 3, -5, -1, -5, 1, -4, 6, -2, -3, 3, -7, -3, 0, -6, 3, -5, 2, -3, -7, -2, -2, 6, -8, 1, -8, -4, 5, 2, 3, 4}}; +const signed char array2[32][32] = {{-1, -3, 4, -3, 1, 5, -2, -4, -6, 6, 4, -3, -6, -1, 5, 3, 0, 6, -8, 2, -4, -2, -3, -6, -8, 4, 3, -5, 2, -6, 6, 2}, + {-4, -3, 2, -1, 2, 3, -2, 0, -2, 1, 4, -2, 3, -6, -7, 5, -8, 6, 1, 6, -4, -2, -3, 3, 1, 1, 5, -1, 4, -4, 1, -5}, + {-1, -4, 5, 5, 5, 0, -2, 4, 6, 4, -4, -4, 2, -7, 6, -6, -8, -3, -5, -7, -3, 6, -3, 5, 5, 1, 3, 4, -4, 5, 5, -3}, + {5, -7, 5, 6, 5, 4, 2, -5, 0, 0, 3, -8, -4, -6, -7, -5, -3, 3, 4, 2, -8, -2, -5, 5, 2, -7, -8, -1, -2, 6, -6, -5}, + {6, -6, -3, -6, 6, 1, 4, 4, -4, 5, -5, -8, 0, -6, -4, 1, 0, -4, -6, 3, -4, -3, 4, 3, 2, -8, -6, 0, -8, -8, 2, 2}, + {3, -8, 2, -5, 1, -4, -1, -5, -2, -7, 6, 5, 2, 3, 5, 2, 1, -1, -7, 2, 4, 3, -6, -2, 5, -3, 5, 4, -4, 1, -5, 1}, + {0, 3, -1, -3, 0, 2, -5, -7, 2, 6, -6, -5, 2, -1, 6, -1, 5, 4, 0, 4, -6, -8, -5, 3, -4, 1, -1, 3, 2, 3, -6, -5}, + {-3, -1, -7, -1, -8, 3, -8, -6, -1, -1, 4, 1, 3, -7, -4, -5, -4, -1, 3, -7, 4, 2, 0, -4, 1, -5, -1, 6, -6, 4, 2, -4}, + {6, 1, 5, -8, -2, -6, -2, 1, 2, 3, -3, 4, -1, -8, 5, -2, -5, -2, -4, -5, -1, 3, -3, -1, -3, 1, -3, 2, -4, -5, 1, -5}, + {0, 5, -1, -4, -3, -5, 3, 2, -5, 4, -2, 5, -7, 0, -1, 4, -4, -5, 3, 2, 6, -1, -5, 6, 4, -8, -8, 1, -2, -3, 1, -7}, + {1, -8, 5, 5, 0, 4, 4, -2, 5, -4, -5, -5, -7, -4, 0, -2, 0, 5, -4, -6, -2, 1, 5, 2, 2, 6, 5, 3, 5, -2, 4, 6}, + {0, 6, 1, 3, -6, -7, 4, 6, -7, -6, 6, 5, -8, 3, 6, -4, 3, 2, 4, -5, -4, -4, -8, 3, -4, 4, -6, -4, -2, 4, -3, 6}, + {5, -8, -3, -6, -8, 0, -6, 0, -4, 3, 5, -5, 4, -8, -3, 6, 6, -6, 2, 3, 3, -4, 0, -6, -3, -3, 6, 4, -4, 0, -5, 1}, + {-8, 5, -1, -1, 1, -8, -6, -3, -5, 0, -3, -6, -4, 2, -7, -4, 5, 3, 2, 6, -4, -5, -3, -6, -5, 5, 2, 2, 5, -6, 4, -6}, + {3, -5, -3, 3, 4, 4, -2, 6, 4, -4, 1, -6, -1, -8, -8, -7, -5, -3, -3, -8, 1, -3, -1, -4, -6, 0, 3, -4, 6, 6, 2, -4}, + {-6, 0, -8, -3, 5, 2, 1, -2, -8, 6, 1, -7, 0, 3, 1, 0, -1, -8, 3, 5, 3, -2, 1, 1, 0, -5, -2, 5, -6, -4, 2, 4}, + {-1, 4, 5, -2, -8, -8, 1, -3, 1, 5, -6, 2, 1, 6, 1, -6, -1, 5, -8, 3, 5, -2, -3, -8, 0, -8, -3, -1, 4, -6, 2, 4}, + {3, -7, -2, -3, 4, 5, 6, 6, 3, 0, -5, -7, -6, -8, -4, 6, -6, 2, 5, -6, -6, -7, 4, 3, 1, -4, 1, 6, -5, -2, -2, 2}, + {1, 3, -2, -4, 2, 6, -7, 5, 1, -2, -8, -6, -8, -5, -1, 3, -8, -5, 3, -3, 2, -2, -7, 5, -1, 5, -3, 0, -4, 2, -5, 4}, + {2, 1, 5, -6, 5, -6, 6, 2, 4, -8, 6, -6, 1, -1, -5, 1, -5, -1, 6, 2, -4, 5, 2, -7, 1, 1, 6, -1, 1, -4, 1, 3}, + {1, -5, 6, -2, -1, -7, -8, -6, -7, 6, -5, -6, 0, -5, 5, -5, -6, -5, 2, -2, 2, 2, 2, -8, -4, -4, 1, 4, -1, 5, 5, 2}, + {3, 1, 3, 6, 6, -5, 1, 4, 6, -6, -8, 3, -6, 4, 1, 2, -5, -3, 5, -6, -2, 4, -8, 0, 5, 4, -4, -6, 0, -4, -6, 6}, + {4, 4, -8, -1, -4, 5, -6, 0, 1, -1, -3, 4, -5, -3, 6, -8, 4, 0, -8, 5, -7, 1, -8, 2, -2, 4, -8, -5, -1, 3, 1, 5}, + {0, -7, -4, -1, 3, -7, 3, -4, -1, -1, -8, 6, 1, -4, -7, -4, -3, -6, 3, -1, -4, 3, 6, 2, 5, 2, 5, 5, -4, -2, -4, -7}, + {6, 5, -4, -3, -4, 4, 1, -2, -6, 3, 2, -6, 3, 1, -1, 2, -7, 3, -8, -7, -2, -6, 0, -8, 5, 4, -6, -5, 3, -3, 6, -7}, + {-4, 5, 2, 1, -2, -5, 2, 5, 4, 6, 5, 3, 4, -8, 3, 0, 5, 2, -7, 0, -6, 6, 4, 5, 6, -5, 0, 5, 1, 1, -4, 0}, + {-2, -1, 3, 0, -4, -2, 2, 4, -4, -7, 1, -4, -3, -1, 5, -6, 0, -3, -7, 1, 2, 2, 6, -8, 0, 4, 0, -2, -5, -6, -4, -1}, + {2, -5, -3, -3, -2, -1, 3, -7, -5, 2, 1, 5, -8, 0, 4, -3, -2, -3, -5, -8, -8, -3, 4, -8, -1, 6, 2, -8, 3, 3, -1, -2}, + {-5, 2, -2, -7, -1, 0, -2, 0, 5, 5, -2, -4, 6, -8, -5, -5, -3, 0, 1, -3, 6, -1, -4, 6, 6, 1, -6, -7, 4, -1, -1, -2}, + {3, 1, 3, 4, 0, 3, 0, 0, -6, -7, -1, -1, 6, -1, -6, 1, -5, -6, 1, 2, -6, -7, 2, 1, 6, -7, -4, 3, 0, -3, -3, -1}, + {-8, -2, 6, -2, -8, -1, -3, 2, -4, -1, -6, -8, 5, -7, 1, -7, 6, -7, -7, -3, -6, 6, -2, -8, -4, -6, -1, -3, 2, -2, -6, 5}, + {-3, 1, 4, 6, -4, 1, -1, -1, -6, 6, -3, -4, 3, 2, -2, -3, -6, -2, 5, -2, 6, -5, 1, -7, -3, -2, -1, 1, 3, -3, 5, 6}}; +signed char resultArray[32][32] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; +signed char answerArray[32][32] = {0}; + +/// @brief 8bit幅の32*32行列乗算 +/// @param array1 +/// @param array2 +/// @param resultArray +void _e8_32x32_matmul(const signed char array1[32][32], const signed char array2[32][32], signed char resultArray[32][32]) { + asm volatile ("vsetvli zero, %0, e8, m1, ta, ma"::"r"(32)); + int i=0, j=0; + for(i=0; i<32; i++) { + // array1の横ベクトルをロード + // v1 = array1[i][*] + asm volatile ("vle8.v v1, (%0)"::"r"(&(array1[i][0]))); + asm volatile ("vmv.s.x v4, zero"); + for(j=0; j<32; j++) { + // array2の縦ベクトルをロード + // v2 = array2[*][j] + asm volatile ("vlse8.v v2, (%0), %1"::"r"(&(array2[0][j])), "r"(32)); + asm volatile ("vmul.vv v3, v1, v2"); + asm volatile ("vredsum.vs v3, v3, v4"); + asm volatile ("vmv.x.s %0, v3":"=r"(resultArray[i][j])); + // resultArray[i*32+j] = tmp; + } + } +} + +int main(int argc, char** argv) { + int i, j, k; + + // clrCounters(); + _e8_32x32_matmul(array1, array2, resultArray); + // showCounters(); + + // clrCounters(); + for(i=0; i<32; i++) { + for(j=0; j<32; j++) { + signed char sum = 0; + for(k=0; k<32; k++) { + signed char temp; + asm volatile ("mulw %0, %1, %2":"=r"(temp):"r"(array1[i][k]), "r"(array2[k][j])); + asm volatile ("addw %0, %1, %2":"=r"(sum):"r"(sum), "r"(temp)); + // sum += array1[i][k] * array2[k][j]; + } + answerArray[i][j] = sum; + } + } + // showCounters(); + _Bool correct = 1; + for(i=0; i<32; i++) { + for(j=0; j<32; j++) { + correct = correct && (resultArray[i][j] == answerArray[i][j]); + } + } + if(correct) { + return 0x00114514; + } else { + return 0xDEADBEEF; + } +} \ No newline at end of file diff --git a/src/main/resources/applications_fpga/vector_matmul_data.mem b/src/main/resources/applications_fpga/vector_matmul_data.mem new file mode 100644 index 00000000..44cf88c6 --- /dev/null +++ b/src/main/resources/applications_fpga/vector_matmul_data.mem @@ -0,0 +1,514 @@ +fd04fdff +fcfe0501 +fd0406fa +0305fffa +02f80600 +fafdfefc +fb0304f8 +0206fa02 +ff02fdfc +00fe0302 +fe0401fe +05f9fa03 +060106f8 +03fdfefc +ff050101 +fb01fc04 +0505fcff +04fe0005 +fcfc0406 +fa06f902 +f9fbfdf8 +05fd06fd +04030105 +fd0505fc +0605f905 +fb020405 +f8030000 +fbf9fafc +020403fd +05fbfef8 +fff8f902 +fbfa06fe +fafdfa06 +04040106 +f8fb05fc +01fcfa00 +03fafc00 +0304fdfc +00faf802 +0202f8f8 +fb02f803 +fbfffc01 +0506f9fe +02050302 +02f9ff01 +fefa0304 +0405fd05 +01fb01fc +fdff0300 +f9fb0200 +fbfa0602 +ff06ff02 +04000405 +03fbf8fa +03ff01fc +fbfa0302 +fff9fffd +faf803f8 +0104ffff +fbfcf903 +f903fffc +fc000204 +06fffb01 +fc0204fa +f8050106 +01fefafe +04fd0302 +fe05f8ff +fbfcfefb +fffd03ff +02fd01fd +fb01fbfc +fcff0500 +0203fbfd +05fe04fb +04ff00f9 +0203fbfc +06fbff06 +01f8f804 +f901fdfe +0505f801 +fe040400 +fbfbfc05 +fe00fcf9 +fafc0500 +020501fe +03050602 +0604fe05 +03010600 +0604f9fa +0506faf9 +fc0603f8 +fb040203 +03f8fcfc +fcfa04fc +06fd04fe +fafdf805 +00fa00f8 +fb0503fc +06fdf804 +0302fa06 +fa00fc03 +0406fdfd +01fb00fc +ffff05f8 +fdfaf801 +fafd00fb +fcf902fc +06020305 +fafdfbfc +020205fb +fa04fa05 +03fdfb03 +06fe0404 +fa01fc04 +f9f8f8ff +f8fdfdfb +fcfffd01 +fc0300fa +fc020606 +fdf800fa +fe010205 +f90106f8 +00010300 +0503f8ff +0101fe03 +05fefb00 +0402fcfa +fe0504ff +fd01f8f8 +02fa0501 +fa010601 +03f805ff +f8fdfe05 +fffdf800 +0402fa04 +fdfef903 +06060504 +f9fb0003 +06fcf8fa +fa0502fa +0304f9fa +0601fc01 +02fefefb +fcfe0301 +05f90602 +faf8fe01 +03fffbf8 +fd03fbf8 +05f9fe02 +00fd05ff +04fb02fc +fa050102 +0206fa05 +fa06f804 +01fbff01 +0206fffb +f90205fc +ff060101 +0301fc01 +fe06fb01 +faf8f9ff +fafb06f9 +fb05fb00 +fe02fbfa +f8020202 +0401fcfc +020505ff +06030103 +0401fb06 +03f8fa06 +020104fa +fa05fdfb +00f804fe +fafc0405 +06fafc00 +fff80404 +00fa05fc +04fdff01 +f806fdfb +05f80004 +02f801f9 +fbf804fe +050103ff +fffcf900 +fc03f903 +06f8ffff +fcf9fc01 +ff03fafd +020603fc +05050205 +f9fcfefc +fdfc0506 +fe0104fc +fa0203fa +02ff0103 +f9f803f9 +f800fafe +fbfa0405 +f906fd03 +010205fc +0502fbfe +03050604 +0003f804 +00f90205 +050406fa +0500fb06 +00fc0101 +0003fffe +0402fefc +fc01f9fc +fa05fffd +01f9fd00 +f8060202 +fe000400 +fffcfafb +fdfdfb02 +f903fffe +050102fb +fd0400f8 +f8fbfdfe +f804fdf8 +f80206ff +feff0303 +f9fe02fb +00fe00ff +fcfe0505 +fbfbf806 +fd0100fd +06fcff06 +f9fa0106 +feffff04 +04030103 +00000300 +fffff9fa +01faff06 +0201fafb +0102f9fa +03fcf906 +fffdfd00 +fe06fef8 +02fdfff8 +f8fafffc +f901f905 +fdf9f906 +f8fe06fa +fdfffafc +05fafe02 +060401fd +ffff01fc +fcfd06fa +fdfe0203 +fe05fefa +f901fb06 +01fffefd +0605fd03 +fefe00fe +04f8fffa +02f806fb +0000fe00 +0505fbf8 +fbfc0002 +00f9f904 +fefa0101 +fd02f9f9 +fafbfc03 +fc00f9fe +05fefdfe +040400fe +fcfff9f9 +fef8fbfb +ff01f9ff +f9060204 +0200fbfc +01030300 +fef901fb +fef9faf9 +fbf806ff +00040106 +05050001 +fa01f806 +03fa0404 +f9fffbfa +f900f9ff +fafc0005 +fbfefffa +04f90405 +04030600 +05f9f803 +0302f802 +0606fe03 +010606f9 +02fdf903 +fffff901 +fd02f8fe +fc04fbff +06fa02ff +fe0301fc +03fc0505 +f8fafaff +ff010201 +030101ff +fb000306 +fe01fef9 +f8f8fdfc +f80504f8 +fc03f9fc +06fc05fd +fdfd0302 +00fbf9f8 +03050604 +f804fdf9 +03fb0403 +fdf9fc00 +01fd00ff +020402fd +04f9f9fc +fa04fb01 +00060303 +f9f9fcff +0506fc03 +fd05f8f8 +03fd04fd +fafbfe02 +03fefdfb +f8f8fa00 +fd02fdfc +fdfdf906 +fb010502 +000305f8 +00fbfe02 +f9fbfffe +fffffd03 +03fe0205 +01030305 +f906fbff +03060204 +fafffb00 +f8fffdff +fff9f8fc +fc0406fa +020604f9 +f902fbfa +0500fcfc +000004fc +0004fd05 +fcfa06fe +f9fafb00 +fdfdfaff +04030101 +fb06fbfc +000505fe +06f8fdf8 +05fb03ff +f8fafcfb +fa03f9f9 +0201f9fc +ff02fbf8 +05faff01 +fa0505fa +fafafd05 +fcf8fffd +05fbfd02 +f8fc05fb +fd0001f9 +ff020601 +04020501 +0301fe04 +fbff02fe +06f904fb +f80101fc +fff90602 +05fcfb03 +01fc01f9 +01fc03fd +04fd0605 +020300fa +04f80604 +fdfcf9ff +0103fefc +f802ff00 +06f903fb +ff02f905 +fbfcfff8 +fd00fb06 +fbff0302 +03fd00ff +fbf9f9f9 +01fef800 +fefe06fd +01faf8ff +02050501 +fafcfd00 +01f806ff +f9f9f803 +fcfbfbff +fc03fc02 +05ff01fb +03f800fe +01fbf8fe +0501fffa +f9fdff06 +06060106 +fefaf8f8 +0103fe01 +f80306ff +0601fe02 +fcf800ff +04ff05fb +06f80204 +fbfdf800 +05f9fbff +0505fc04 +0301fafd +06f8fbfc +fafc0203 +f8000203 +06fc0102 +ff010306 +04fefd06 +f8f8f9fa +04f8fcfa +fa000100 +f900fd02 +01fc03fa +04fc0001 +f804f806 +00faf8fe +06f803fa +fc000301 +0002fafc +ff06f904 +f8fc01f9 +fdfb05f9 +00f903f9 +fbfa0602 +0300fafc +04fbfb02 +06fe0105 +fe02f901 +fffbfb04 +fa06fc03 +fdfffc06 +06f805fd +03fd03fc +040404f8 +0203fc00 +0405fffa +05f9fd04 +05040203 +fefb0300 +fcfa0105 +01fe0603 +faf90406 +f900f9fe +fcfcfcfd +01fef801 +01fafef9 +02030104 +ff0200f9 +0501f803 +06fa0001 +fdf8fef9 +0200fc03 +02fdfd01 +fc01fa04 +ff00f9f9 +fd00f904 +f8fbfe03 +05fc0305 +0004fb03 +fd01fbfd +fbf80406 +03fafb01 +0100fef9 +05f803fc +0100fe02 +fe06fbfe +fffc01fb +f9fc0104 +00fef804 +fe06f9fb +0402fa00 +0400fef9 +0005ff01 +0400f903 +f90004f9 +fdf90300 +03030103 +f9fb0603 +05f8faf9 +050301ff +fe030201 +ffff01fb +fc06fc04 +05fefd05 +0000fbfe +fffffff9 +fb00fc01 +fefafd05 +f80005ff +fbfef801 +f802faf9 +01ff04fe +fb0300f8 +fc01fbff +03fdfe06 +fa00fdf9 +fd02fb03 +06fefef9 +fcf801f8 +04030205 +01010101 +01010101 diff --git a/src/main/resources/applications_fpga/vector_matmul_inst.mem b/src/main/resources/applications_fpga/vector_matmul_inst.mem new file mode 100644 index 00000000..630ca45f --- /dev/null +++ b/src/main/resources/applications_fpga/vector_matmul_inst.mem @@ -0,0 +1,352 @@ +00000093 +00000113 +00000193 +00000213 +00000293 +00000313 +00000393 +00000413 +00000493 +00000513 +00000593 +00000613 +00000693 +00000713 +00000793 +00000813 +00000893 +00000913 +00000993 +00000a13 +00000a93 +00000b13 +00000b93 +00000c13 +00000c93 +00000d13 +00000d93 +00000e13 +00000e93 +00000f13 +00000f93 +00000297 +03828293 +30529073 +00005197 +f7818193 +10000217 +ff720213 +fc027213 +f1402573 +00100593 +00b57063 +00006137 +ff01011b +1d00006f +ef010113 +00113423 +00213823 +00313c23 +02413023 +02513423 +02613823 +02713c23 +04813023 +04913423 +04a13823 +04b13c23 +06c13023 +06d13423 +06e13823 +06f13c23 +09013023 +09113423 +09213823 +09313c23 +0b413023 +0b513423 +0b613823 +0b713c23 +0d813023 +0d913423 +0da13823 +0db13c23 +0fc13023 +0fd13423 +0fe13823 +0ff13c23 +34202573 +341025f3 +00010613 +120000ef +34151073 +000022b7 +8002829b +3002a073 +00813083 +01013103 +01813183 +02013203 +02813283 +03013303 +03813383 +04013403 +04813483 +05013503 +05813583 +06013603 +06813683 +07013703 +07813783 +08013803 +08813883 +09013903 +09813983 +0a013a03 +0a813a83 +0b013b03 +0b813b83 +0c013c03 +0c813c83 +0d013d03 +0d813d83 +0e013e03 +0e813e83 +0f013f03 +0f813f83 +11010113 +30200073 +02000793 +0c07f057 +02000813 +00050893 +40050313 +02000513 +02088087 +42006257 +00000793 +00f58733 +0b070107 +961121d7 +023221d7 +423026d7 +0007871b +00e60733 +00d70023 +00178793 +fca79ee3 +02088893 +02060613 +fc6892e3 +00008067 +b0201073 +b0001073 +00008067 +c02027f3 +00f53023 +c00027f3 +00f5b023 +00008067 +100007b7 +00a7a023 +0000006f +0105959b +00b567b3 +0007879b +10000737 +00f72023 +0000006f +00051063 +00008067 +ff010113 +00000593 +00000513 +00113423 +1e0000ef +100007b7 +00a7a023 +0000006f +00b567b3 +00c7e7b3 +0077f793 +00c50833 +02078463 +00c58633 +00050793 +0b057663 +0005c703 +00158593 +00178793 +fee78fa3 +fec598e3 +00008067 +04050693 +0906f863 +00058713 +00068793 +00073383 +00873283 +01073f83 +01873f03 +02073e83 +02873e03 +03073303 +03873883 +04078793 +f877b023 +f857b423 +f9f7b823 +f9e7bc23 +fbd7b023 +fbc7b423 +fa67b823 +fb17bc23 +04070713 +fb07ece3 +fbf60613 +fc067793 +04078793 +fc067613 +00f585b3 +00c687b3 +f907f4e3 +0005b703 +00878793 +00858593 +fee7bc23 +ff07e8e3 +00008067 +00008067 +00050793 +fddff06f +00c567b3 +0077f793 +00c50633 +0ff5f713 +00078e63 +00050793 +02c57c63 +00178793 +fee78fa3 +fef61ce3 +00008067 +00004797 +4607b783 +02f70733 +fec578e3 +00050793 +00878793 +fee7bc23 +fec7ece3 +00008067 +00008067 +00054783 +00078e63 +00050793 +0017c703 +00178793 +fe071ce3 +40a78533 +00008067 +00000513 +00008067 +00b506b3 +00050793 +00059863 +0240006f +00178793 +00f68a63 +0007c703 +fe071ae3 +40a78533 +00008067 +40a68533 +00008067 +00000513 +00008067 +00054783 +00158593 +00150513 +fff5c703 +00078a63 +fee786e3 +0007851b +40e5053b +00008067 +00000513 +ff5ff06f +00050793 +0005c703 +00178793 +00158593 +fee78fa3 +fe0718e3 +00008067 +ff010113 +00004617 +39460613 +00004597 +b8458593 +00004517 +f7c50513 +00113423 +d49ff0ef +c0818e13 +000e0f13 +00000e93 +00004f97 +f60f8f93 +00004317 +f7830313 +02000293 +005e9893 +000f8513 +01f888b3 +000f0813 +c0050713 +00088693 +00000613 +0006c783 +00074583 +02b787bb +00f607bb +0187961b +02070713 +4186561b +00168693 +fea710e3 +00f80023 +00170513 +00180813 +fca312e3 +001e8e93 +020f0f13 +fa5e94e3 +00004617 +31860613 +c2818513 +00100793 +fe060713 +000e0693 +00078a63 +00070783 +00068583 +40b787b3 +0017b793 +00170713 +00168693 +fec712e3 +02070613 +020e0e13 +fca618e3 +00078c63 +00114537 +51450513 +00813083 +01010113 +00008067 +deadc537 +eef50513 +fedff06f +fff00513 +00008067 diff --git a/src/main/resources/applications_vector/vector_matmul.dump b/src/main/resources/applications_vector/vector_matmul.dump index c832d0f7..5b5d954c 100644 --- a/src/main/resources/applications_vector/vector_matmul.dump +++ b/src/main/resources/applications_vector/vector_matmul.dump @@ -40,7 +40,7 @@ Disassembly of section .text.init: 80: 03828293 add t0,t0,56 # b4 84: 30529073 csrw mtvec,t0 88: 00005197 auipc gp,0x5 - 8c: dd018193 add gp,gp,-560 # 4e58 <__global_pointer$> + 8c: 15018193 add gp,gp,336 # 51d8 <__global_pointer$> 90: 10000217 auipc tp,0x10000 94: ff720213 add tp,tp,-9 # 10000087 <_end+0x3f> 98: fc027213 and tp,tp,-64 @@ -48,8 +48,8 @@ Disassembly of section .text.init: a0: 00100593 li a1,1 a4: 00b57063 bgeu a0,a1,a4 <_start+0xa4> a8: 00006137 lui sp,0x6 - ac: ff01011b addw sp,sp,-16 # 5ff0 <__global_pointer$+0x1198> - b0: 76c0006f j 81c <_init> + ac: ff01011b addw sp,sp,-16 # 5ff0 <_tbss_end+0xe10> + b0: 7680006f j 818 <_init> 00000000000000b4 : b4: ef010113 add sp,sp,-272 @@ -87,10 +87,10 @@ Disassembly of section .text.init: 134: 34202573 csrr a0,mcause 138: 341025f3 csrr a1,mepc 13c: 00010613 mv a2,sp - 140: 3e4000ef jal 524 + 140: 3e0000ef jal 520 144: 34151073 csrw mepc,a0 148: 000022b7 lui t0,0x2 - 14c: 8002829b addw t0,t0,-2048 # 1800 + 14c: 8002829b addw t0,t0,-2048 # 1800 150: 3002a073 csrs mstatus,t0 154: 00813083 ld ra,8(sp) 158: 01013103 ld sp,16(sp) @@ -144,32 +144,32 @@ Disassembly of section .text: 200: c0002973 rdcycle s2 204: b0302473 csrr s0,mhpmcounter3 208: 00004517 auipc a0,0x4 - 20c: 2a850513 add a0,a0,680 # 44b0 - 210: 170000ef jal 380 + 20c: 62850513 add a0,a0,1576 # 4830 + 210: 16c000ef jal 37c 214: 00810593 add a1,sp,8 218: 00090513 mv a0,s2 - 21c: 120000ef jal 33c + 21c: 11c000ef jal 338 220: 00810513 add a0,sp,8 - 224: 15c000ef jal 380 + 224: 158000ef jal 37c 228: 00004517 auipc a0,0x4 - 22c: 29050513 add a0,a0,656 # 44b8 - 230: 150000ef jal 380 + 22c: 61050513 add a0,a0,1552 # 4838 + 230: 14c000ef jal 37c 234: 00810593 add a1,sp,8 238: 00048513 mv a0,s1 - 23c: 100000ef jal 33c + 23c: 0fc000ef jal 338 240: 00810513 add a0,sp,8 - 244: 13c000ef jal 380 + 244: 138000ef jal 37c 248: 00004517 auipc a0,0x4 - 24c: 28050513 add a0,a0,640 # 44c8 - 250: 130000ef jal 380 + 24c: 60050513 add a0,a0,1536 # 4848 + 250: 12c000ef jal 37c 254: 00810593 add a1,sp,8 258: 00040513 mv a0,s0 - 25c: 0e0000ef jal 33c + 25c: 0dc000ef jal 338 260: 00810513 add a0,sp,8 - 264: 11c000ef jal 380 + 264: 118000ef jal 37c 268: 00004517 auipc a0,0x4 - 26c: 27050513 add a0,a0,624 # 44d8 - 270: 110000ef jal 380 + 26c: 5f050513 add a0,a0,1520 # 4858 + 270: 10c000ef jal 37c 274: 03813083 ld ra,56(sp) 278: 03013403 ld s0,48(sp) 27c: 02813483 ld s1,40(sp) @@ -177,1351 +177,1665 @@ Disassembly of section .text: 284: 04010113 add sp,sp,64 288: 00008067 ret -000000000000028c : - 28c: 00050893 mv a7,a0 - 290: 04060a63 beqz a2,2e4 - 294: 00261313 sll t1,a2,0x2 - 298: 00060793 mv a5,a2 - 29c: 00000513 li a0,0 - 2a0: 0d07f857 vsetvli a6,a5,e32,m1,ta,ma - 2a4: 0008069b sext.w a3,a6 - 2a8: 420561d7 vmv.s.x v3,a0 - 2ac: 0208e087 vle32.v v1,(a7) - 2b0: 0a65e107 vlse32.v v2,(a1),t1 - 2b4: 961120d7 vmul.vv v1,v1,v2 - 2b8: 0211a0d7 vredsum.vs v1,v1,v3 - 2bc: 42102557 vmv.x.s a0,v1 - 2c0: 02c8073b mulw a4,a6,a2 - 2c4: 00269693 sll a3,a3,0x2 - 2c8: 410787bb subw a5,a5,a6 - 2cc: 0005051b sext.w a0,a0 - 2d0: 00d888b3 add a7,a7,a3 - 2d4: 00271713 sll a4,a4,0x2 - 2d8: 00e585b3 add a1,a1,a4 - 2dc: fc0792e3 bnez a5,2a0 - 2e0: 00008067 ret - 2e4: 00000513 li a0,0 - 2e8: 00008067 ret +000000000000028c <_e8_32x32_matmul>: + 28c: 02000793 li a5,32 + 290: 0c07f057 vsetvli zero,a5,e8,m1,ta,ma + 294: 02000813 li a6,32 + 298: 00050893 mv a7,a0 + 29c: 40050313 add t1,a0,1024 + 2a0: 02000513 li a0,32 + 2a4: 02088087 vle8.v v1,(a7) + 2a8: 42006257 vmv.s.x v4,zero + 2ac: 00000793 li a5,0 + 2b0: 00f58733 add a4,a1,a5 + 2b4: 0b070107 vlse8.v v2,(a4),a6 + 2b8: 961121d7 vmul.vv v3,v1,v2 + 2bc: 023221d7 vredsum.vs v3,v3,v4 + 2c0: 423026d7 vmv.x.s a3,v3 + 2c4: 0007871b sext.w a4,a5 + 2c8: 00e60733 add a4,a2,a4 + 2cc: 00d70023 sb a3,0(a4) + 2d0: 00178793 add a5,a5,1 + 2d4: fca79ee3 bne a5,a0,2b0 <_e8_32x32_matmul+0x24> + 2d8: 02088893 add a7,a7,32 + 2dc: 02060613 add a2,a2,32 + 2e0: fc6892e3 bne a7,t1,2a4 <_e8_32x32_matmul+0x18> + 2e4: 00008067 ret -00000000000002ec : - 2ec: b0201073 csrw minstret,zero - 2f0: b0001073 csrw mcycle,zero - 2f4: 00008067 ret +00000000000002e8 : + 2e8: b0201073 csrw minstret,zero + 2ec: b0001073 csrw mcycle,zero + 2f0: 00008067 ret -00000000000002f8 : - 2f8: 03000793 li a5,48 - 2fc: 00f58023 sb a5,0(a1) - 300: 07800793 li a5,120 - 304: 00f580a3 sb a5,1(a1) - 308: 00158813 add a6,a1,1 - 30c: 00958793 add a5,a1,9 - 310: 00900613 li a2,9 - 314: 00f57713 and a4,a0,15 - 318: 03770693 add a3,a4,55 - 31c: 00e66463 bltu a2,a4,324 - 320: 03070693 add a3,a4,48 - 324: 00d78023 sb a3,0(a5) - 328: fff78793 add a5,a5,-1 - 32c: 40455513 sra a0,a0,0x4 - 330: fef812e3 bne a6,a5,314 - 334: 00058523 sb zero,10(a1) - 338: 00008067 ret +00000000000002f4 : + 2f4: 03000793 li a5,48 + 2f8: 00f58023 sb a5,0(a1) + 2fc: 07800793 li a5,120 + 300: 00f580a3 sb a5,1(a1) + 304: 00158813 add a6,a1,1 + 308: 00958793 add a5,a1,9 + 30c: 00900613 li a2,9 + 310: 00f57713 and a4,a0,15 + 314: 03770693 add a3,a4,55 + 318: 00e66463 bltu a2,a4,320 + 31c: 03070693 add a3,a4,48 + 320: 00d78023 sb a3,0(a5) + 324: fff78793 add a5,a5,-1 + 328: 40455513 sra a0,a0,0x4 + 32c: fef812e3 bne a6,a5,310 + 330: 00058523 sb zero,10(a1) + 334: 00008067 ret -000000000000033c : - 33c: 03000793 li a5,48 - 340: 00f58023 sb a5,0(a1) - 344: 07800793 li a5,120 - 348: 00f580a3 sb a5,1(a1) - 34c: 00158813 add a6,a1,1 - 350: 01158793 add a5,a1,17 - 354: 00900613 li a2,9 - 358: 00f57713 and a4,a0,15 - 35c: 03770693 add a3,a4,55 - 360: 00e66463 bltu a2,a4,368 - 364: 03070693 add a3,a4,48 - 368: 00d78023 sb a3,0(a5) - 36c: fff78793 add a5,a5,-1 - 370: 40455513 sra a0,a0,0x4 - 374: fef812e3 bne a6,a5,358 - 378: 00058923 sb zero,18(a1) - 37c: 00008067 ret +0000000000000338 : + 338: 03000793 li a5,48 + 33c: 00f58023 sb a5,0(a1) + 340: 07800793 li a5,120 + 344: 00f580a3 sb a5,1(a1) + 348: 00158813 add a6,a1,1 + 34c: 01158793 add a5,a1,17 + 350: 00900613 li a2,9 + 354: 00f57713 and a4,a0,15 + 358: 03770693 add a3,a4,55 + 35c: 00e66463 bltu a2,a4,364 + 360: 03070693 add a3,a4,48 + 364: 00d78023 sb a3,0(a5) + 368: fff78793 add a5,a5,-1 + 36c: 40455513 sra a0,a0,0x4 + 370: fef812e3 bne a6,a5,354 + 374: 00058923 sb zero,18(a1) + 378: 00008067 ret -0000000000000380 : - 380: 00054783 lbu a5,0(a0) - 384: 00078c63 beqz a5,39c - 388: 10000737 lui a4,0x10000 - 38c: 00f70023 sb a5,0(a4) # 10000000 - 390: 00154783 lbu a5,1(a0) - 394: 00150513 add a0,a0,1 - 398: fe079ae3 bnez a5,38c - 39c: 00008067 ret +000000000000037c : + 37c: 00054783 lbu a5,0(a0) + 380: 00078c63 beqz a5,398 + 384: 10000737 lui a4,0x10000 + 388: 00f70023 sb a5,0(a4) # 10000000 + 38c: 00154783 lbu a5,1(a0) + 390: 00150513 add a0,a0,1 + 394: fe079ae3 bnez a5,388 + 398: 00008067 ret -00000000000003a0 : - 3a0: fe010113 add sp,sp,-32 - 3a4: c0202673 rdinstret a2 - 3a8: c00025f3 rdcycle a1 - 3ac: 00004717 auipc a4,0x4 - 3b0: 13470713 add a4,a4,308 # 44e0 - 3b4: 06300793 li a5,99 - 3b8: 100006b7 lui a3,0x10000 - 3bc: 00f68023 sb a5,0(a3) # 10000000 - 3c0: 00174783 lbu a5,1(a4) - 3c4: 00170713 add a4,a4,1 - 3c8: fe079ae3 bnez a5,3bc - 3cc: ffff8737 lui a4,0xffff8 - 3d0: 83074713 xor a4,a4,-2000 - 3d4: 01910793 add a5,sp,25 - 3d8: 00e11423 sh a4,8(sp) - 3dc: 00910813 add a6,sp,9 - 3e0: 00078713 mv a4,a5 - 3e4: 00900893 li a7,9 - 3e8: 00f5f693 and a3,a1,15 - 3ec: 03768513 add a0,a3,55 - 3f0: 00d8e463 bltu a7,a3,3f8 - 3f4: 03068513 add a0,a3,48 - 3f8: 00a70023 sb a0,0(a4) # ffffffffffff8000 <_end+0xffffffffefff7fb8> - 3fc: fff70713 add a4,a4,-1 - 400: 4045d593 sra a1,a1,0x4 - 404: fee812e3 bne a6,a4,3e8 - 408: 00814703 lbu a4,8(sp) - 40c: 00010d23 sb zero,26(sp) - 410: 00810693 add a3,sp,8 - 414: 100005b7 lui a1,0x10000 - 418: 00070a63 beqz a4,42c - 41c: 00e58023 sb a4,0(a1) # 10000000 - 420: 0016c703 lbu a4,1(a3) - 424: 00168693 add a3,a3,1 - 428: fe071ae3 bnez a4,41c - 42c: 00004697 auipc a3,0x4 - 430: 0bc68693 add a3,a3,188 # 44e8 - 434: 00a00713 li a4,10 - 438: 100005b7 lui a1,0x10000 - 43c: 00e58023 sb a4,0(a1) # 10000000 - 440: 0016c703 lbu a4,1(a3) - 444: 00168693 add a3,a3,1 - 448: fe071ae3 bnez a4,43c - 44c: ffff8737 lui a4,0xffff8 - 450: 83074713 xor a4,a4,-2000 - 454: 00060693 mv a3,a2 - 458: 00e11423 sh a4,8(sp) - 45c: 00900593 li a1,9 - 460: 00f6f713 and a4,a3,15 - 464: 03770613 add a2,a4,55 # ffffffffffff8037 <_end+0xffffffffefff7fef> - 468: 00e5e463 bltu a1,a4,470 - 46c: 03070613 add a2,a4,48 - 470: 00c78023 sb a2,0(a5) - 474: fff78793 add a5,a5,-1 - 478: 4046d693 sra a3,a3,0x4 - 47c: fef812e3 bne a6,a5,460 - 480: 00814783 lbu a5,8(sp) - 484: 00010d23 sb zero,26(sp) - 488: 00810713 add a4,sp,8 - 48c: 100006b7 lui a3,0x10000 - 490: 00078a63 beqz a5,4a4 - 494: 00f68023 sb a5,0(a3) # 10000000 - 498: 00174783 lbu a5,1(a4) - 49c: 00170713 add a4,a4,1 - 4a0: fe079ae3 bnez a5,494 - 4a4: 100007b7 lui a5,0x10000 - 4a8: 00a00713 li a4,10 - 4ac: 00e78023 sb a4,0(a5) # 10000000 - 4b0: 02010113 add sp,sp,32 - 4b4: 00008067 ret +000000000000039c : + 39c: fe010113 add sp,sp,-32 + 3a0: c0202673 rdinstret a2 + 3a4: c00025f3 rdcycle a1 + 3a8: 00004717 auipc a4,0x4 + 3ac: 4b870713 add a4,a4,1208 # 4860 + 3b0: 06300793 li a5,99 + 3b4: 100006b7 lui a3,0x10000 + 3b8: 00f68023 sb a5,0(a3) # 10000000 + 3bc: 00174783 lbu a5,1(a4) + 3c0: 00170713 add a4,a4,1 + 3c4: fe079ae3 bnez a5,3b8 + 3c8: ffff8737 lui a4,0xffff8 + 3cc: 83074713 xor a4,a4,-2000 + 3d0: 01910793 add a5,sp,25 + 3d4: 00e11423 sh a4,8(sp) + 3d8: 00910813 add a6,sp,9 + 3dc: 00078713 mv a4,a5 + 3e0: 00900893 li a7,9 + 3e4: 00f5f693 and a3,a1,15 + 3e8: 03768513 add a0,a3,55 + 3ec: 00d8e463 bltu a7,a3,3f4 + 3f0: 03068513 add a0,a3,48 + 3f4: 00a70023 sb a0,0(a4) # ffffffffffff8000 <_end+0xffffffffefff7fb8> + 3f8: fff70713 add a4,a4,-1 + 3fc: 4045d593 sra a1,a1,0x4 + 400: fee812e3 bne a6,a4,3e4 + 404: 00814703 lbu a4,8(sp) + 408: 00010d23 sb zero,26(sp) + 40c: 00810693 add a3,sp,8 + 410: 100005b7 lui a1,0x10000 + 414: 00070a63 beqz a4,428 + 418: 00e58023 sb a4,0(a1) # 10000000 + 41c: 0016c703 lbu a4,1(a3) + 420: 00168693 add a3,a3,1 + 424: fe071ae3 bnez a4,418 + 428: 00004697 auipc a3,0x4 + 42c: 44068693 add a3,a3,1088 # 4868 + 430: 00a00713 li a4,10 + 434: 100005b7 lui a1,0x10000 + 438: 00e58023 sb a4,0(a1) # 10000000 + 43c: 0016c703 lbu a4,1(a3) + 440: 00168693 add a3,a3,1 + 444: fe071ae3 bnez a4,438 + 448: ffff8737 lui a4,0xffff8 + 44c: 83074713 xor a4,a4,-2000 + 450: 00060693 mv a3,a2 + 454: 00e11423 sh a4,8(sp) + 458: 00900593 li a1,9 + 45c: 00f6f713 and a4,a3,15 + 460: 03770613 add a2,a4,55 # ffffffffffff8037 <_end+0xffffffffefff7fef> + 464: 00e5e463 bltu a1,a4,46c + 468: 03070613 add a2,a4,48 + 46c: 00c78023 sb a2,0(a5) + 470: fff78793 add a5,a5,-1 + 474: 4046d693 sra a3,a3,0x4 + 478: fef812e3 bne a6,a5,45c + 47c: 00814783 lbu a5,8(sp) + 480: 00010d23 sb zero,26(sp) + 484: 00810713 add a4,sp,8 + 488: 100006b7 lui a3,0x10000 + 48c: 00078a63 beqz a5,4a0 + 490: 00f68023 sb a5,0(a3) # 10000000 + 494: 00174783 lbu a5,1(a4) + 498: 00170713 add a4,a4,1 + 49c: fe079ae3 bnez a5,490 + 4a0: 100007b7 lui a5,0x10000 + 4a4: 00a00713 li a4,10 + 4a8: 00e78023 sb a4,0(a5) # 10000000 + 4ac: 02010113 add sp,sp,32 + 4b0: 00008067 ret -00000000000004b8 : - 4b8: fe010113 add sp,sp,-32 - 4bc: 00813823 sd s0,16(sp) - 4c0: 00113c23 sd ra,24(sp) - 4c4: 00050413 mv s0,a0 - 4c8: 00004717 auipc a4,0x4 - 4cc: 03070713 add a4,a4,48 # 44f8 - 4d0: 04500793 li a5,69 - 4d4: 100006b7 lui a3,0x10000 - 4d8: 00f68023 sb a5,0(a3) # 10000000 - 4dc: 00174783 lbu a5,1(a4) - 4e0: 00170713 add a4,a4,1 - 4e4: fe079ae3 bnez a5,4d8 - 4e8: 00010593 mv a1,sp - 4ec: 00040513 mv a0,s0 - 4f0: e09ff0ef jal 2f8 - 4f4: 00014703 lbu a4,0(sp) - 4f8: 00070e63 beqz a4,514 - 4fc: 00010793 mv a5,sp - 500: 100006b7 lui a3,0x10000 - 504: 00e68023 sb a4,0(a3) # 10000000 - 508: 0017c703 lbu a4,1(a5) - 50c: 00178793 add a5,a5,1 - 510: fe071ae3 bnez a4,504 - 514: 00040513 mv a0,s0 - 518: 100007b7 lui a5,0x10000 - 51c: 00078023 sb zero,0(a5) # 10000000 - 520: 0000006f j 520 +00000000000004b4 : + 4b4: fe010113 add sp,sp,-32 + 4b8: 00813823 sd s0,16(sp) + 4bc: 00113c23 sd ra,24(sp) + 4c0: 00050413 mv s0,a0 + 4c4: 00004717 auipc a4,0x4 + 4c8: 3b470713 add a4,a4,948 # 4878 + 4cc: 04500793 li a5,69 + 4d0: 100006b7 lui a3,0x10000 + 4d4: 00f68023 sb a5,0(a3) # 10000000 + 4d8: 00174783 lbu a5,1(a4) + 4dc: 00170713 add a4,a4,1 + 4e0: fe079ae3 bnez a5,4d4 + 4e4: 00010593 mv a1,sp + 4e8: 00040513 mv a0,s0 + 4ec: e09ff0ef jal 2f4 + 4f0: 00014703 lbu a4,0(sp) + 4f4: 00070e63 beqz a4,510 + 4f8: 00010793 mv a5,sp + 4fc: 100006b7 lui a3,0x10000 + 500: 00e68023 sb a4,0(a3) # 10000000 + 504: 0017c703 lbu a4,1(a5) + 508: 00178793 add a5,a5,1 + 50c: fe071ae3 bnez a4,500 + 510: 00040513 mv a0,s0 + 514: 100007b7 lui a5,0x10000 + 518: 00078023 sb zero,0(a5) # 10000000 + 51c: 0000006f j 51c -0000000000000524 : - 524: ffff87b7 lui a5,0xffff8 - 528: fd010113 add sp,sp,-48 - 52c: 8307c793 xor a5,a5,-2000 - 530: 00f11423 sh a5,8(sp) - 534: 02113423 sd ra,40(sp) - 538: 01910793 add a5,sp,25 - 53c: 00910813 add a6,sp,9 - 540: 00900613 li a2,9 - 544: 00f5f713 and a4,a1,15 - 548: 03770693 add a3,a4,55 - 54c: 00e66463 bltu a2,a4,554 - 550: 03070693 add a3,a4,48 - 554: 00d78023 sb a3,0(a5) # ffffffffffff8000 <_end+0xffffffffefff7fb8> - 558: fff78793 add a5,a5,-1 - 55c: 4045d593 sra a1,a1,0x4 - 560: ff0792e3 bne a5,a6,544 - 564: 00010d23 sb zero,26(sp) - 568: 00b00793 li a5,11 - 56c: 02a7e063 bltu a5,a0,58c - 570: 00004717 auipc a4,0x4 - 574: f1070713 add a4,a4,-240 # 4480 - 578: 00251513 sll a0,a0,0x2 - 57c: 00e50533 add a0,a0,a4 - 580: 00052783 lw a5,0(a0) - 584: 00e787b3 add a5,a5,a4 - 588: 00078067 jr a5 - 58c: 00004717 auipc a4,0x4 - 590: 09470713 add a4,a4,148 # 4620 - 594: 05500793 li a5,85 - 598: 100006b7 lui a3,0x10000 - 59c: 00f68023 sb a5,0(a3) # 10000000 - 5a0: 00174783 lbu a5,1(a4) - 5a4: 00170713 add a4,a4,1 - 5a8: fe079ae3 bnez a5,59c - 5ac: 00814783 lbu a5,8(sp) - 5b0: 00810713 add a4,sp,8 - 5b4: 100006b7 lui a3,0x10000 - 5b8: 00078a63 beqz a5,5cc - 5bc: 00f68023 sb a5,0(a3) # 10000000 - 5c0: 00174783 lbu a5,1(a4) - 5c4: 00170713 add a4,a4,1 - 5c8: fe079ae3 bnez a5,5bc - 5cc: 00004717 auipc a4,0x4 - 5d0: 07470713 add a4,a4,116 # 4640 - 5d4: 00a00793 li a5,10 - 5d8: 100006b7 lui a3,0x10000 - 5dc: 00f68023 sb a5,0(a3) # 10000000 - 5e0: 00174783 lbu a5,1(a4) - 5e4: 00170713 add a4,a4,1 - 5e8: fe079ae3 bnez a5,5dc - 5ec: fff00513 li a0,-1 - 5f0: ec9ff0ef jal 4b8 - 5f4: 00004717 auipc a4,0x4 - 5f8: f1470713 add a4,a4,-236 # 4508 - 5fc: 04900793 li a5,73 - 600: 100006b7 lui a3,0x10000 - 604: 00f68023 sb a5,0(a3) # 10000000 - 608: 00174783 lbu a5,1(a4) - 60c: 00170713 add a4,a4,1 - 610: fe079ae3 bnez a5,604 - 614: 00814783 lbu a5,8(sp) - 618: 00810713 add a4,sp,8 - 61c: 100006b7 lui a3,0x10000 - 620: fc0786e3 beqz a5,5ec - 624: 00f68023 sb a5,0(a3) # 10000000 - 628: 00174783 lbu a5,1(a4) - 62c: 00170713 add a4,a4,1 - 630: fe079ae3 bnez a5,624 - 634: fb9ff06f j 5ec - 638: 00004717 auipc a4,0x4 - 63c: ef870713 add a4,a4,-264 # 4530 - 640: 04900793 li a5,73 - 644: 100006b7 lui a3,0x10000 - 648: 00f68023 sb a5,0(a3) # 10000000 - 64c: 00174783 lbu a5,1(a4) - 650: 00170713 add a4,a4,1 - 654: fe079ae3 bnez a5,648 - 658: 00814783 lbu a5,8(sp) - 65c: f80788e3 beqz a5,5ec - 660: 00810713 add a4,sp,8 - 664: 100006b7 lui a3,0x10000 - 668: 00f68023 sb a5,0(a3) # 10000000 - 66c: 00174783 lbu a5,1(a4) - 670: 00170713 add a4,a4,1 - 674: fe079ae3 bnez a5,668 - 678: f75ff06f j 5ec - 67c: 00004717 auipc a4,0x4 - 680: edc70713 add a4,a4,-292 # 4558 - 684: 04900793 li a5,73 - 688: 100006b7 lui a3,0x10000 - 68c: 00f68023 sb a5,0(a3) # 10000000 - 690: 00174783 lbu a5,1(a4) - 694: 00170713 add a4,a4,1 - 698: fe079ae3 bnez a5,68c - 69c: 00814783 lbu a5,8(sp) - 6a0: f40786e3 beqz a5,5ec - 6a4: 00810713 add a4,sp,8 - 6a8: 100006b7 lui a3,0x10000 - 6ac: 00f68023 sb a5,0(a3) # 10000000 - 6b0: 00174783 lbu a5,1(a4) - 6b4: 00170713 add a4,a4,1 - 6b8: fe079ae3 bnez a5,6ac - 6bc: f31ff06f j 5ec - 6c0: 00004717 auipc a4,0x4 - 6c4: eb870713 add a4,a4,-328 # 4578 - 6c8: 04c00793 li a5,76 - 6cc: 100006b7 lui a3,0x10000 - 6d0: 00f68023 sb a5,0(a3) # 10000000 - 6d4: 00174783 lbu a5,1(a4) - 6d8: 00170713 add a4,a4,1 - 6dc: fe079ae3 bnez a5,6d0 - 6e0: 00814783 lbu a5,8(sp) - 6e4: f00784e3 beqz a5,5ec - 6e8: 00810713 add a4,sp,8 - 6ec: 100006b7 lui a3,0x10000 - 6f0: 00f68023 sb a5,0(a3) # 10000000 - 6f4: 00174783 lbu a5,1(a4) - 6f8: 00170713 add a4,a4,1 - 6fc: fe079ae3 bnez a5,6f0 - 700: eedff06f j 5ec - 704: 00004717 auipc a4,0x4 - 708: e9470713 add a4,a4,-364 # 4598 - 70c: 04c00793 li a5,76 - 710: 100006b7 lui a3,0x10000 - 714: 00f68023 sb a5,0(a3) # 10000000 - 718: 00174783 lbu a5,1(a4) - 71c: 00170713 add a4,a4,1 - 720: fe079ae3 bnez a5,714 - 724: 00814783 lbu a5,8(sp) - 728: ec0782e3 beqz a5,5ec - 72c: 00810713 add a4,sp,8 - 730: 100006b7 lui a3,0x10000 - 734: 00f68023 sb a5,0(a3) # 10000000 - 738: 00174783 lbu a5,1(a4) - 73c: 00170713 add a4,a4,1 - 740: fe079ae3 bnez a5,734 - 744: ea9ff06f j 5ec - 748: 00004717 auipc a4,0x4 - 74c: e7070713 add a4,a4,-400 # 45b8 - 750: 05300793 li a5,83 - 754: 100006b7 lui a3,0x10000 - 758: 00f68023 sb a5,0(a3) # 10000000 - 75c: 00174783 lbu a5,1(a4) - 760: 00170713 add a4,a4,1 - 764: fe079ae3 bnez a5,758 - 768: 00814783 lbu a5,8(sp) - 76c: e80780e3 beqz a5,5ec - 770: 00810713 add a4,sp,8 - 774: 100006b7 lui a3,0x10000 - 778: 00f68023 sb a5,0(a3) # 10000000 - 77c: 00174783 lbu a5,1(a4) - 780: 00170713 add a4,a4,1 - 784: fe079ae3 bnez a5,778 - 788: e65ff06f j 5ec - 78c: 00004717 auipc a4,0x4 - 790: e5470713 add a4,a4,-428 # 45e0 - 794: 05300793 li a5,83 - 798: 100006b7 lui a3,0x10000 - 79c: 00f68023 sb a5,0(a3) # 10000000 - 7a0: 00174783 lbu a5,1(a4) - 7a4: 00170713 add a4,a4,1 - 7a8: fe079ae3 bnez a5,79c - 7ac: 00814783 lbu a5,8(sp) - 7b0: e2078ee3 beqz a5,5ec - 7b4: 00810713 add a4,sp,8 - 7b8: 100006b7 lui a3,0x10000 - 7bc: 00f68023 sb a5,0(a3) # 10000000 - 7c0: 00174783 lbu a5,1(a4) - 7c4: 00170713 add a4,a4,1 - 7c8: fe079ae3 bnez a5,7bc - 7cc: e21ff06f j 5ec - 7d0: 00004717 auipc a4,0x4 - 7d4: e3070713 add a4,a4,-464 # 4600 - 7d8: 04500793 li a5,69 - 7dc: 100006b7 lui a3,0x10000 - 7e0: 00f68023 sb a5,0(a3) # 10000000 - 7e4: 00174783 lbu a5,1(a4) - 7e8: 00170713 add a4,a4,1 - 7ec: fe079ae3 bnez a5,7e0 - 7f0: 00814783 lbu a5,8(sp) - 7f4: de078ce3 beqz a5,5ec - 7f8: 00810713 add a4,sp,8 - 7fc: 100006b7 lui a3,0x10000 - 800: 00f68023 sb a5,0(a3) # 10000000 - 804: 00174783 lbu a5,1(a4) - 808: 00170713 add a4,a4,1 - 80c: fe079ae3 bnez a5,800 - 810: dddff06f j 5ec +0000000000000520 : + 520: ffff87b7 lui a5,0xffff8 + 524: fd010113 add sp,sp,-48 + 528: 8307c793 xor a5,a5,-2000 + 52c: 00f11423 sh a5,8(sp) + 530: 02113423 sd ra,40(sp) + 534: 01910793 add a5,sp,25 + 538: 00910813 add a6,sp,9 + 53c: 00900613 li a2,9 + 540: 00f5f713 and a4,a1,15 + 544: 03770693 add a3,a4,55 + 548: 00e66463 bltu a2,a4,550 + 54c: 03070693 add a3,a4,48 + 550: 00d78023 sb a3,0(a5) # ffffffffffff8000 <_end+0xffffffffefff7fb8> + 554: fff78793 add a5,a5,-1 + 558: 4045d593 sra a1,a1,0x4 + 55c: ff0792e3 bne a5,a6,540 + 560: 00010d23 sb zero,26(sp) + 564: 00b00793 li a5,11 + 568: 02a7e063 bltu a5,a0,588 + 56c: 00004717 auipc a4,0x4 + 570: 29470713 add a4,a4,660 # 4800 + 574: 00251513 sll a0,a0,0x2 + 578: 00e50533 add a0,a0,a4 + 57c: 00052783 lw a5,0(a0) + 580: 00e787b3 add a5,a5,a4 + 584: 00078067 jr a5 + 588: 00004717 auipc a4,0x4 + 58c: 41870713 add a4,a4,1048 # 49a0 + 590: 05500793 li a5,85 + 594: 100006b7 lui a3,0x10000 + 598: 00f68023 sb a5,0(a3) # 10000000 + 59c: 00174783 lbu a5,1(a4) + 5a0: 00170713 add a4,a4,1 + 5a4: fe079ae3 bnez a5,598 + 5a8: 00814783 lbu a5,8(sp) + 5ac: 00810713 add a4,sp,8 + 5b0: 100006b7 lui a3,0x10000 + 5b4: 00078a63 beqz a5,5c8 + 5b8: 00f68023 sb a5,0(a3) # 10000000 + 5bc: 00174783 lbu a5,1(a4) + 5c0: 00170713 add a4,a4,1 + 5c4: fe079ae3 bnez a5,5b8 + 5c8: 00004717 auipc a4,0x4 + 5cc: 3f870713 add a4,a4,1016 # 49c0 + 5d0: 00a00793 li a5,10 + 5d4: 100006b7 lui a3,0x10000 + 5d8: 00f68023 sb a5,0(a3) # 10000000 + 5dc: 00174783 lbu a5,1(a4) + 5e0: 00170713 add a4,a4,1 + 5e4: fe079ae3 bnez a5,5d8 + 5e8: fff00513 li a0,-1 + 5ec: ec9ff0ef jal 4b4 + 5f0: 00004717 auipc a4,0x4 + 5f4: 29870713 add a4,a4,664 # 4888 + 5f8: 04900793 li a5,73 + 5fc: 100006b7 lui a3,0x10000 + 600: 00f68023 sb a5,0(a3) # 10000000 + 604: 00174783 lbu a5,1(a4) + 608: 00170713 add a4,a4,1 + 60c: fe079ae3 bnez a5,600 + 610: 00814783 lbu a5,8(sp) + 614: 00810713 add a4,sp,8 + 618: 100006b7 lui a3,0x10000 + 61c: fc0786e3 beqz a5,5e8 + 620: 00f68023 sb a5,0(a3) # 10000000 + 624: 00174783 lbu a5,1(a4) + 628: 00170713 add a4,a4,1 + 62c: fe079ae3 bnez a5,620 + 630: fb9ff06f j 5e8 + 634: 00004717 auipc a4,0x4 + 638: 27c70713 add a4,a4,636 # 48b0 + 63c: 04900793 li a5,73 + 640: 100006b7 lui a3,0x10000 + 644: 00f68023 sb a5,0(a3) # 10000000 + 648: 00174783 lbu a5,1(a4) + 64c: 00170713 add a4,a4,1 + 650: fe079ae3 bnez a5,644 + 654: 00814783 lbu a5,8(sp) + 658: f80788e3 beqz a5,5e8 + 65c: 00810713 add a4,sp,8 + 660: 100006b7 lui a3,0x10000 + 664: 00f68023 sb a5,0(a3) # 10000000 + 668: 00174783 lbu a5,1(a4) + 66c: 00170713 add a4,a4,1 + 670: fe079ae3 bnez a5,664 + 674: f75ff06f j 5e8 + 678: 00004717 auipc a4,0x4 + 67c: 26070713 add a4,a4,608 # 48d8 + 680: 04900793 li a5,73 + 684: 100006b7 lui a3,0x10000 + 688: 00f68023 sb a5,0(a3) # 10000000 + 68c: 00174783 lbu a5,1(a4) + 690: 00170713 add a4,a4,1 + 694: fe079ae3 bnez a5,688 + 698: 00814783 lbu a5,8(sp) + 69c: f40786e3 beqz a5,5e8 + 6a0: 00810713 add a4,sp,8 + 6a4: 100006b7 lui a3,0x10000 + 6a8: 00f68023 sb a5,0(a3) # 10000000 + 6ac: 00174783 lbu a5,1(a4) + 6b0: 00170713 add a4,a4,1 + 6b4: fe079ae3 bnez a5,6a8 + 6b8: f31ff06f j 5e8 + 6bc: 00004717 auipc a4,0x4 + 6c0: 23c70713 add a4,a4,572 # 48f8 + 6c4: 04c00793 li a5,76 + 6c8: 100006b7 lui a3,0x10000 + 6cc: 00f68023 sb a5,0(a3) # 10000000 + 6d0: 00174783 lbu a5,1(a4) + 6d4: 00170713 add a4,a4,1 + 6d8: fe079ae3 bnez a5,6cc + 6dc: 00814783 lbu a5,8(sp) + 6e0: f00784e3 beqz a5,5e8 + 6e4: 00810713 add a4,sp,8 + 6e8: 100006b7 lui a3,0x10000 + 6ec: 00f68023 sb a5,0(a3) # 10000000 + 6f0: 00174783 lbu a5,1(a4) + 6f4: 00170713 add a4,a4,1 + 6f8: fe079ae3 bnez a5,6ec + 6fc: eedff06f j 5e8 + 700: 00004717 auipc a4,0x4 + 704: 21870713 add a4,a4,536 # 4918 + 708: 04c00793 li a5,76 + 70c: 100006b7 lui a3,0x10000 + 710: 00f68023 sb a5,0(a3) # 10000000 + 714: 00174783 lbu a5,1(a4) + 718: 00170713 add a4,a4,1 + 71c: fe079ae3 bnez a5,710 + 720: 00814783 lbu a5,8(sp) + 724: ec0782e3 beqz a5,5e8 + 728: 00810713 add a4,sp,8 + 72c: 100006b7 lui a3,0x10000 + 730: 00f68023 sb a5,0(a3) # 10000000 + 734: 00174783 lbu a5,1(a4) + 738: 00170713 add a4,a4,1 + 73c: fe079ae3 bnez a5,730 + 740: ea9ff06f j 5e8 + 744: 00004717 auipc a4,0x4 + 748: 1f470713 add a4,a4,500 # 4938 + 74c: 05300793 li a5,83 + 750: 100006b7 lui a3,0x10000 + 754: 00f68023 sb a5,0(a3) # 10000000 + 758: 00174783 lbu a5,1(a4) + 75c: 00170713 add a4,a4,1 + 760: fe079ae3 bnez a5,754 + 764: 00814783 lbu a5,8(sp) + 768: e80780e3 beqz a5,5e8 + 76c: 00810713 add a4,sp,8 + 770: 100006b7 lui a3,0x10000 + 774: 00f68023 sb a5,0(a3) # 10000000 + 778: 00174783 lbu a5,1(a4) + 77c: 00170713 add a4,a4,1 + 780: fe079ae3 bnez a5,774 + 784: e65ff06f j 5e8 + 788: 00004717 auipc a4,0x4 + 78c: 1d870713 add a4,a4,472 # 4960 + 790: 05300793 li a5,83 + 794: 100006b7 lui a3,0x10000 + 798: 00f68023 sb a5,0(a3) # 10000000 + 79c: 00174783 lbu a5,1(a4) + 7a0: 00170713 add a4,a4,1 + 7a4: fe079ae3 bnez a5,798 + 7a8: 00814783 lbu a5,8(sp) + 7ac: e2078ee3 beqz a5,5e8 + 7b0: 00810713 add a4,sp,8 + 7b4: 100006b7 lui a3,0x10000 + 7b8: 00f68023 sb a5,0(a3) # 10000000 + 7bc: 00174783 lbu a5,1(a4) + 7c0: 00170713 add a4,a4,1 + 7c4: fe079ae3 bnez a5,7b8 + 7c8: e21ff06f j 5e8 + 7cc: 00004717 auipc a4,0x4 + 7d0: 1b470713 add a4,a4,436 # 4980 + 7d4: 04500793 li a5,69 + 7d8: 100006b7 lui a3,0x10000 + 7dc: 00f68023 sb a5,0(a3) # 10000000 + 7e0: 00174783 lbu a5,1(a4) + 7e4: 00170713 add a4,a4,1 + 7e8: fe079ae3 bnez a5,7dc + 7ec: 00814783 lbu a5,8(sp) + 7f0: de078ce3 beqz a5,5e8 + 7f4: 00810713 add a4,sp,8 + 7f8: 100006b7 lui a3,0x10000 + 7fc: 00f68023 sb a5,0(a3) # 10000000 + 800: 00174783 lbu a5,1(a4) + 804: 00170713 add a4,a4,1 + 808: fe079ae3 bnez a5,7fc + 80c: dddff06f j 5e8 -0000000000000814 : - 814: 00051063 bnez a0,814 - 818: 00008067 ret +0000000000000810 : + 810: 00051063 bnez a0,810 + 814: 00008067 ret -000000000000081c <_init>: - 81c: ff010113 add sp,sp,-16 - 820: 00000593 li a1,0 - 824: 00000513 li a0,0 - 828: 00113423 sd ra,8(sp) - 82c: 1d8000ef jal a04
- 830: c89ff0ef jal 4b8 +0000000000000818 <_init>: + 818: ff010113 add sp,sp,-16 + 81c: 00000593 li a1,0 + 820: 00000513 li a0,0 + 824: 00113423 sd ra,8(sp) + 828: 1d8000ef jal a00
+ 82c: c89ff0ef jal 4b4 -0000000000000834 : - 834: 00b567b3 or a5,a0,a1 - 838: 00c7e7b3 or a5,a5,a2 - 83c: 0077f793 and a5,a5,7 - 840: 00c50833 add a6,a0,a2 - 844: 02078463 beqz a5,86c - 848: 00c58633 add a2,a1,a2 - 84c: 00050793 mv a5,a0 - 850: 0b057663 bgeu a0,a6,8fc - 854: 0005c703 lbu a4,0(a1) - 858: 00158593 add a1,a1,1 - 85c: 00178793 add a5,a5,1 - 860: fee78fa3 sb a4,-1(a5) - 864: fec598e3 bne a1,a2,854 - 868: 00008067 ret - 86c: 04050693 add a3,a0,64 - 870: 0906f863 bgeu a3,a6,900 - 874: 00058713 mv a4,a1 - 878: 00068793 mv a5,a3 - 87c: 00073383 ld t2,0(a4) - 880: 00873283 ld t0,8(a4) - 884: 01073f83 ld t6,16(a4) - 888: 01873f03 ld t5,24(a4) - 88c: 02073e83 ld t4,32(a4) - 890: 02873e03 ld t3,40(a4) - 894: 03073303 ld t1,48(a4) - 898: 03873883 ld a7,56(a4) - 89c: 04078793 add a5,a5,64 - 8a0: f877b023 sd t2,-128(a5) - 8a4: f857b423 sd t0,-120(a5) - 8a8: f9f7b823 sd t6,-112(a5) - 8ac: f9e7bc23 sd t5,-104(a5) - 8b0: fbd7b023 sd t4,-96(a5) - 8b4: fbc7b423 sd t3,-88(a5) - 8b8: fa67b823 sd t1,-80(a5) - 8bc: fb17bc23 sd a7,-72(a5) - 8c0: 04070713 add a4,a4,64 - 8c4: fb07ece3 bltu a5,a6,87c - 8c8: fbf60613 add a2,a2,-65 - 8cc: fc067793 and a5,a2,-64 - 8d0: 04078793 add a5,a5,64 - 8d4: fc067613 and a2,a2,-64 - 8d8: 00f585b3 add a1,a1,a5 - 8dc: 00c687b3 add a5,a3,a2 - 8e0: f907f4e3 bgeu a5,a6,868 - 8e4: 0005b703 ld a4,0(a1) - 8e8: 00878793 add a5,a5,8 - 8ec: 00858593 add a1,a1,8 - 8f0: fee7bc23 sd a4,-8(a5) - 8f4: ff07e8e3 bltu a5,a6,8e4 +0000000000000830 : + 830: 00b567b3 or a5,a0,a1 + 834: 00c7e7b3 or a5,a5,a2 + 838: 0077f793 and a5,a5,7 + 83c: 00c50833 add a6,a0,a2 + 840: 02078463 beqz a5,868 + 844: 00c58633 add a2,a1,a2 + 848: 00050793 mv a5,a0 + 84c: 0b057663 bgeu a0,a6,8f8 + 850: 0005c703 lbu a4,0(a1) + 854: 00158593 add a1,a1,1 + 858: 00178793 add a5,a5,1 + 85c: fee78fa3 sb a4,-1(a5) + 860: fec598e3 bne a1,a2,850 + 864: 00008067 ret + 868: 04050693 add a3,a0,64 + 86c: 0906f863 bgeu a3,a6,8fc + 870: 00058713 mv a4,a1 + 874: 00068793 mv a5,a3 + 878: 00073383 ld t2,0(a4) + 87c: 00873283 ld t0,8(a4) + 880: 01073f83 ld t6,16(a4) + 884: 01873f03 ld t5,24(a4) + 888: 02073e83 ld t4,32(a4) + 88c: 02873e03 ld t3,40(a4) + 890: 03073303 ld t1,48(a4) + 894: 03873883 ld a7,56(a4) + 898: 04078793 add a5,a5,64 + 89c: f877b023 sd t2,-128(a5) + 8a0: f857b423 sd t0,-120(a5) + 8a4: f9f7b823 sd t6,-112(a5) + 8a8: f9e7bc23 sd t5,-104(a5) + 8ac: fbd7b023 sd t4,-96(a5) + 8b0: fbc7b423 sd t3,-88(a5) + 8b4: fa67b823 sd t1,-80(a5) + 8b8: fb17bc23 sd a7,-72(a5) + 8bc: 04070713 add a4,a4,64 + 8c0: fb07ece3 bltu a5,a6,878 + 8c4: fbf60613 add a2,a2,-65 + 8c8: fc067793 and a5,a2,-64 + 8cc: 04078793 add a5,a5,64 + 8d0: fc067613 and a2,a2,-64 + 8d4: 00f585b3 add a1,a1,a5 + 8d8: 00c687b3 add a5,a3,a2 + 8dc: f907f4e3 bgeu a5,a6,864 + 8e0: 0005b703 ld a4,0(a1) + 8e4: 00878793 add a5,a5,8 + 8e8: 00858593 add a1,a1,8 + 8ec: fee7bc23 sd a4,-8(a5) + 8f0: ff07e8e3 bltu a5,a6,8e0 + 8f4: 00008067 ret 8f8: 00008067 ret - 8fc: 00008067 ret - 900: 00050793 mv a5,a0 - 904: fddff06f j 8e0 + 8fc: 00050793 mv a5,a0 + 900: fddff06f j 8dc -0000000000000908 : - 908: 00c567b3 or a5,a0,a2 - 90c: 0077f793 and a5,a5,7 - 910: 00c50633 add a2,a0,a2 - 914: 0ff5f713 zext.b a4,a1 - 918: 00078e63 beqz a5,934 - 91c: 00050793 mv a5,a0 - 920: 02c57c63 bgeu a0,a2,958 - 924: 00178793 add a5,a5,1 - 928: fee78fa3 sb a4,-1(a5) - 92c: fef61ce3 bne a2,a5,924 - 930: 00008067 ret - 934: 00004797 auipc a5,0x4 - 938: d247b783 ld a5,-732(a5) # 4658 - 93c: 02f70733 mul a4,a4,a5 - 940: fec578e3 bgeu a0,a2,930 - 944: 00050793 mv a5,a0 - 948: 00878793 add a5,a5,8 - 94c: fee7bc23 sd a4,-8(a5) - 950: fec7ece3 bltu a5,a2,948 +0000000000000904 : + 904: 00c567b3 or a5,a0,a2 + 908: 0077f793 and a5,a5,7 + 90c: 00c50633 add a2,a0,a2 + 910: 0ff5f713 zext.b a4,a1 + 914: 00078e63 beqz a5,930 + 918: 00050793 mv a5,a0 + 91c: 02c57c63 bgeu a0,a2,954 + 920: 00178793 add a5,a5,1 + 924: fee78fa3 sb a4,-1(a5) + 928: fef61ce3 bne a2,a5,920 + 92c: 00008067 ret + 930: 00004797 auipc a5,0x4 + 934: 0a87b783 ld a5,168(a5) # 49d8 + 938: 02f70733 mul a4,a4,a5 + 93c: fec578e3 bgeu a0,a2,92c + 940: 00050793 mv a5,a0 + 944: 00878793 add a5,a5,8 + 948: fee7bc23 sd a4,-8(a5) + 94c: fec7ece3 bltu a5,a2,944 + 950: 00008067 ret 954: 00008067 ret - 958: 00008067 ret -000000000000095c : - 95c: 00054783 lbu a5,0(a0) - 960: 00078e63 beqz a5,97c - 964: 00050793 mv a5,a0 - 968: 0017c703 lbu a4,1(a5) - 96c: 00178793 add a5,a5,1 - 970: fe071ce3 bnez a4,968 - 974: 40a78533 sub a0,a5,a0 - 978: 00008067 ret - 97c: 00000513 li a0,0 - 980: 00008067 ret +0000000000000958 : + 958: 00054783 lbu a5,0(a0) + 95c: 00078e63 beqz a5,978 + 960: 00050793 mv a5,a0 + 964: 0017c703 lbu a4,1(a5) + 968: 00178793 add a5,a5,1 + 96c: fe071ce3 bnez a4,964 + 970: 40a78533 sub a0,a5,a0 + 974: 00008067 ret + 978: 00000513 li a0,0 + 97c: 00008067 ret -0000000000000984 : - 984: 00b506b3 add a3,a0,a1 - 988: 00050793 mv a5,a0 - 98c: 00059863 bnez a1,99c - 990: 0240006f j 9b4 - 994: 00178793 add a5,a5,1 - 998: 00f68a63 beq a3,a5,9ac - 99c: 0007c703 lbu a4,0(a5) - 9a0: fe071ae3 bnez a4,994 - 9a4: 40a78533 sub a0,a5,a0 - 9a8: 00008067 ret - 9ac: 40a68533 sub a0,a3,a0 - 9b0: 00008067 ret - 9b4: 00000513 li a0,0 - 9b8: 00008067 ret +0000000000000980 : + 980: 00b506b3 add a3,a0,a1 + 984: 00050793 mv a5,a0 + 988: 00059863 bnez a1,998 + 98c: 0240006f j 9b0 + 990: 00178793 add a5,a5,1 + 994: 00f68a63 beq a3,a5,9a8 + 998: 0007c703 lbu a4,0(a5) + 99c: fe071ae3 bnez a4,990 + 9a0: 40a78533 sub a0,a5,a0 + 9a4: 00008067 ret + 9a8: 40a68533 sub a0,a3,a0 + 9ac: 00008067 ret + 9b0: 00000513 li a0,0 + 9b4: 00008067 ret -00000000000009bc : - 9bc: 00054783 lbu a5,0(a0) - 9c0: 00158593 add a1,a1,1 - 9c4: 00150513 add a0,a0,1 - 9c8: fff5c703 lbu a4,-1(a1) - 9cc: 00078a63 beqz a5,9e0 - 9d0: fee786e3 beq a5,a4,9bc - 9d4: 0007851b sext.w a0,a5 - 9d8: 40e5053b subw a0,a0,a4 - 9dc: 00008067 ret - 9e0: 00000513 li a0,0 - 9e4: ff5ff06f j 9d8 +00000000000009b8 : + 9b8: 00054783 lbu a5,0(a0) + 9bc: 00158593 add a1,a1,1 + 9c0: 00150513 add a0,a0,1 + 9c4: fff5c703 lbu a4,-1(a1) + 9c8: 00078a63 beqz a5,9dc + 9cc: fee786e3 beq a5,a4,9b8 + 9d0: 0007851b sext.w a0,a5 + 9d4: 40e5053b subw a0,a0,a4 + 9d8: 00008067 ret + 9dc: 00000513 li a0,0 + 9e0: ff5ff06f j 9d4 -00000000000009e8 : - 9e8: 00050793 mv a5,a0 - 9ec: 0005c703 lbu a4,0(a1) - 9f0: 00178793 add a5,a5,1 - 9f4: 00158593 add a1,a1,1 - 9f8: fee78fa3 sb a4,-1(a5) - 9fc: fe0718e3 bnez a4,9ec - a00: 00008067 ret +00000000000009e4 : + 9e4: 00050793 mv a5,a0 + 9e8: 0005c703 lbu a4,0(a1) + 9ec: 00178793 add a5,a5,1 + 9f0: 00158593 add a1,a1,1 + 9f4: fee78fa3 sb a4,-1(a5) + 9f8: fe0718e3 bnez a4,9e8 + 9fc: 00008067 ret Disassembly of section .text.startup: -0000000000000a04
: - a04: fe010113 add sp,sp,-32 - a08: 00113c23 sd ra,24(sp) - a0c: 00813823 sd s0,16(sp) - a10: 00913423 sd s1,8(sp) - a14: 01213023 sd s2,0(sp) - a18: b0201073 csrw minstret,zero - a1c: b0001073 csrw mcycle,zero - a20: b0301073 csrw mhpmcounter3,zero - a24: 00003417 auipc s0,0x3 - a28: 5dc40413 add s0,s0,1500 # 4000 - a2c: 00004497 auipc s1,0x4 - a30: 81448493 add s1,s1,-2028 # 4240 - a34: 00004297 auipc t0,0x4 - a38: c2c28293 add t0,t0,-980 # 4660 - a3c: 00040f13 mv t5,s0 - a40: 00004f97 auipc t6,0x4 - a44: 830f8f93 add t6,t6,-2000 # 4270 - a48: 03000313 li t1,48 - a4c: 00003e17 auipc t3,0x3 - a50: 7f4e0e13 add t3,t3,2036 # 4240 - a54: 00028e93 mv t4,t0 - a58: 000e0513 mv a0,t3 - a5c: 000f0593 mv a1,t5 - a60: 00000893 li a7,0 - a64: 00c00693 li a3,12 - a68: 0d06f757 vsetvli a4,a3,e32,m1,ta,ma - a6c: 0007061b sext.w a2,a4 - a70: 4208e1d7 vmv.s.x v3,a7 - a74: 0205e087 vle32.v v1,(a1) - a78: 0a656107 vlse32.v v2,(a0),t1 - a7c: 961120d7 vmul.vv v1,v1,v2 - a80: 0211a0d7 vredsum.vs v1,v1,v3 - a84: 42102857 vmv.x.s a6,v1 - a88: 0017179b sllw a5,a4,0x1 - a8c: 00e787bb addw a5,a5,a4 - a90: 0027979b sllw a5,a5,0x2 - a94: 00261613 sll a2,a2,0x2 - a98: 00279793 sll a5,a5,0x2 - a9c: 40e686bb subw a3,a3,a4 - aa0: 0008089b sext.w a7,a6 - aa4: 00c585b3 add a1,a1,a2 - aa8: 00f50533 add a0,a0,a5 - aac: fa069ee3 bnez a3,a68 - ab0: 010ea023 sw a6,0(t4) - ab4: 004e0e13 add t3,t3,4 - ab8: 004e8e93 add t4,t4,4 - abc: f9cf9ee3 bne t6,t3,a58 - ac0: 030f0f13 add t5,t5,48 - ac4: 03028293 add t0,t0,48 - ac8: f89f12e3 bne t5,s1,a4c - acc: f1cff0ef jal 1e8 - ad0: b0201073 csrw minstret,zero - ad4: b0001073 csrw mcycle,zero - ad8: b0301073 csrw mhpmcounter3,zero - adc: a4818913 add s2,gp,-1464 # 48a0 - ae0: 00090313 mv t1,s2 - ae4: 00004897 auipc a7,0x4 - ae8: 9cc88893 add a7,a7,-1588 # 44b0 - aec: 00004e17 auipc t3,0x4 - af0: 994e0e13 add t3,t3,-1644 # 4480 - af4: 000e0513 mv a0,t3 - af8: 00030813 mv a6,t1 - afc: dc050713 add a4,a0,-576 - b00: 00040693 mv a3,s0 - b04: 00000613 li a2,0 - b08: 0006a583 lw a1,0(a3) - b0c: 00072783 lw a5,0(a4) - b10: 03070713 add a4,a4,48 - b14: 00468693 add a3,a3,4 - b18: 02b787bb mulw a5,a5,a1 - b1c: 00c7863b addw a2,a5,a2 - b20: fea714e3 bne a4,a0,b08 - b24: 00c82023 sw a2,0(a6) - b28: 00470513 add a0,a4,4 - b2c: 00480813 add a6,a6,4 - b30: fca896e3 bne a7,a0,afc - b34: 03040413 add s0,s0,48 - b38: 03030313 add t1,t1,48 - b3c: fa941ce3 bne s0,s1,af4 - b40: ea8ff0ef jal 1e8 - b44: 00004697 auipc a3,0x4 - b48: b4c68693 add a3,a3,-1204 # 4690 - b4c: a7818593 add a1,gp,-1416 # 48d0 - b50: 00100513 li a0,1 - b54: fd068793 add a5,a3,-48 - b58: 00090713 mv a4,s2 - b5c: 00050a63 beqz a0,b70 - b60: 0007a503 lw a0,0(a5) - b64: 00072603 lw a2,0(a4) - b68: 40c50533 sub a0,a0,a2 - b6c: 00153513 seqz a0,a0 - b70: 00478793 add a5,a5,4 - b74: 00470713 add a4,a4,4 - b78: fed792e3 bne a5,a3,b5c - b7c: 03078693 add a3,a5,48 - b80: 03090913 add s2,s2,48 - b84: fcb698e3 bne a3,a1,b54 - b88: 01813083 ld ra,24(sp) - b8c: 01013403 ld s0,16(sp) - b90: 00813483 ld s1,8(sp) - b94: 00013903 ld s2,0(sp) - b98: 00154513 xor a0,a0,1 - b9c: 02010113 add sp,sp,32 - ba0: 00008067 ret - ba4: fff00513 li a0,-1 - ba8: 00008067 ret +0000000000000a00
: + a00: ff010113 add sp,sp,-16 + a04: 00113423 sd ra,8(sp) + a08: 00813023 sd s0,0(sp) + a0c: b0201073 csrw minstret,zero + a10: b0001073 csrw mcycle,zero + a14: b0301073 csrw mhpmcounter3,zero + a18: 00004617 auipc a2,0x4 + a1c: fc860613 add a2,a2,-56 # 49e0 + a20: 00003597 auipc a1,0x3 + a24: 5e058593 add a1,a1,1504 # 4000 + a28: 00004517 auipc a0,0x4 + a2c: 9d850513 add a0,a0,-1576 # 4400 + a30: 85dff0ef jal 28c <_e8_32x32_matmul> + a34: fb4ff0ef jal 1e8 + a38: b0201073 csrw minstret,zero + a3c: b0001073 csrw mcycle,zero + a40: b0301073 csrw mhpmcounter3,zero + a44: c0818413 add s0,gp,-1016 # 4de0 + a48: 00040e93 mv t4,s0 + a4c: 00000e13 li t3,0 + a50: 00004f17 auipc t5,0x4 + a54: 9b0f0f13 add t5,t5,-1616 # 4400 + a58: 00004317 auipc t1,0x4 + a5c: 9c830313 add t1,t1,-1592 # 4420 + a60: 02000f93 li t6,32 + a64: 005e1893 sll a7,t3,0x5 + a68: 000f0513 mv a0,t5 + a6c: 01e888b3 add a7,a7,t5 + a70: 000e8813 mv a6,t4 + a74: c0050713 add a4,a0,-1024 + a78: 00088693 mv a3,a7 + a7c: 00000613 li a2,0 + a80: 0006c783 lbu a5,0(a3) + a84: 00074583 lbu a1,0(a4) + a88: 02b787bb mulw a5,a5,a1 + a8c: 00f607bb addw a5,a2,a5 + a90: 0187961b sllw a2,a5,0x18 + a94: 02070713 add a4,a4,32 + a98: 4186561b sraw a2,a2,0x18 + a9c: 00168693 add a3,a3,1 + aa0: fea710e3 bne a4,a0,a80 + aa4: 00f80023 sb a5,0(a6) + aa8: 00170513 add a0,a4,1 + aac: 00180813 add a6,a6,1 + ab0: fca312e3 bne t1,a0,a74 + ab4: 001e0e13 add t3,t3,1 + ab8: 020e8e93 add t4,t4,32 + abc: fbfe14e3 bne t3,t6,a64 + ac0: f28ff0ef jal 1e8 + ac4: 00004697 auipc a3,0x4 + ac8: f3c68693 add a3,a3,-196 # 4a00 + acc: c2818593 add a1,gp,-984 # 4e00 + ad0: 00100513 li a0,1 + ad4: fe068793 add a5,a3,-32 + ad8: 00040713 mv a4,s0 + adc: 00050a63 beqz a0,af0 + ae0: 00078503 lb a0,0(a5) + ae4: 00070603 lb a2,0(a4) + ae8: 40c50533 sub a0,a0,a2 + aec: 00153513 seqz a0,a0 + af0: 00178793 add a5,a5,1 + af4: 00170713 add a4,a4,1 + af8: fed792e3 bne a5,a3,adc + afc: 02078693 add a3,a5,32 + b00: 02040413 add s0,s0,32 + b04: fcb698e3 bne a3,a1,ad4 + b08: 00813083 ld ra,8(sp) + b0c: 00013403 ld s0,0(sp) + b10: 00154513 xor a0,a0,1 + b14: 01010113 add sp,sp,16 + b18: 00008067 ret + b1c: fff00513 li a0,-1 + b20: 00008067 ret Disassembly of section .rodata: -0000000000004000 : - 4000: ff9c .2byte 0xff9c - 4002: ffff .2byte 0xffff - 4004: 0000 vmsge.vx v0,v0,zero,v0.t - 4006: 0000 vmsge.vx v0,v0,zero,v0.t - 4008: 0051 .2byte 0x51 - 400a: 0000 vmsge.vx v0,v0,zero,v0.t - 400c: 0054 .2byte 0x54 - 400e: 0000 vmsge.vx v0,v0,zero,v0.t - 4010: 002e .2byte 0x2e - 4012: 0000 vmsge.vx v0,v0,zero,v0.t - 4014: ffa1 vmsge.vx v31,v0,ra,v0.t - 4016: ffff .2byte 0xffff - 4018: ffd9 .2byte 0xffd9 - 401a: ffff .2byte 0xffff - 401c: 000c .2byte 0xc - 401e: 0000 vmsge.vx v0,v0,zero,v0.t - 4020: 0044 .2byte 0x44 - 4022: 0000 vmsge.vx v0,v0,zero,v0.t - 4024: 0059 .2byte 0x59 - 4026: 0000 vmsge.vx v0,v0,zero,v0.t - 4028: ffba .2byte 0xffba - 402a: ffff .2byte 0xffff - 402c: 005e .2byte 0x5e - 402e: 0000 vmsge.vx v0,v0,zero,v0.t - 4030: ffd8 .2byte 0xffd8 - 4032: ffff .2byte 0xffff - 4034: 0032 .2byte 0x32 - 4036: 0000 vmsge.vx v0,v0,zero,v0.t - 4038: 006e .2byte 0x6e - 403a: 0000 vmsge.vx v0,v0,zero,v0.t - 403c: 0000005b .4byte 0x5b - 4040: 0000004b .4byte 0x4b - 4044: 00000033 add zero,zero,zero - 4048: 0055 .2byte 0x55 - 404a: 0000 vmsge.vx v0,v0,zero,v0.t - 404c: 00000017 auipc zero,0x0 - 4050: ff92 .2byte 0xff92 - 4052: ffff .2byte 0xffff - 4054: ff99 .2byte 0xff99 - 4056: ffff .2byte 0xffff - 4058: ff98 .2byte 0xff98 - 405a: ffff .2byte 0xffff - 405c: 002e .2byte 0x2e - 405e: 0000 vmsge.vx v0,v0,zero,v0.t - 4060: ffea .2byte 0xffea - 4062: ffff .2byte 0xffff - 4064: 0068 .2byte 0x68 - 4066: 0000 vmsge.vx v0,v0,zero,v0.t - 4068: 0000002b .4byte 0x2b - 406c: 00000043 vmsge.vx v0,v0,zero,v0.t - 4070: fffc .2byte 0xfffc - 4072: ffff .2byte 0xffff - 4074: 0039 .2byte 0x39 - 4076: 0000 vmsge.vx v0,v0,zero,v0.t - 4078: ffad .2byte 0xffad - 407a: ffff .2byte 0xffff - 407c: ffda .2byte 0xffda - 407e: ffff .2byte 0xffff - 4080: ffffffb3 .4byte 0xffffffb3 - 4084: ffb0 .2byte 0xffb0 - 4086: ffff .2byte 0xffff - 4088: ffffffbf 00000022 .8byte 0x22ffffffbf - 4090: ffd6 .2byte 0xffd6 - 4092: ffff .2byte 0xffff - 4094: ffb9 .2byte 0xffb9 - 4096: ffff .2byte 0xffff - 4098: ff80 vmsge.vx v31,v0,ra,v0.t - 409a: ffff .2byte 0xffff - 409c: 0010 .2byte 0x10 - 409e: 0000 vmsge.vx v0,v0,zero,v0.t - 40a0: 0001 vmsge.vx v0,v0,zero,v0.t - 40a2: 0000 vmsge.vx v0,v0,zero,v0.t - 40a4: 00000017 auipc zero,0x0 - 40a8: fffffff3 csrrc t6,0xfff,31 - 40ac: ffd6 .2byte 0xffd6 - 40ae: ffff .2byte 0xffff - 40b0: ffe1 vmsge.vx v31,v0,ra,v0.t - 40b2: ffff .2byte 0xffff - 40b4: ff98 .2byte 0xff98 - 40b6: ffff .2byte 0xffff - 40b8: ff8c .2byte 0xff8c - 40ba: ffff .2byte 0xffff - 40bc: 0068 .2byte 0x68 - 40be: 0000 vmsge.vx v0,v0,zero,v0.t - 40c0: 007e .2byte 0x7e - 40c2: 0000 vmsge.vx v0,v0,zero,v0.t - 40c4: ffffffd7 vsetivli t6,31,1023 - 40c8: fff0 .2byte 0xfff0 - 40ca: ffff .2byte 0xffff - 40cc: ffc0 vmsge.vx v31,v0,ra,v0.t - 40ce: ffff .2byte 0xffff - 40d0: ffec .2byte 0xffec - 40d2: ffff .2byte 0xffff - 40d4: ffb0 .2byte 0xffb0 - 40d6: ffff .2byte 0xffff - 40d8: fff6 .2byte 0xfff6 - 40da: ffff .2byte 0xffff - 40dc: 0019 .2byte 0x19 - 40de: 0000 vmsge.vx v0,v0,zero,v0.t - 40e0: 00000023 sb zero,0(zero) # 0 <_start> - 40e4: 0006 .2byte 0x6 - 40e6: 0000 vmsge.vx v0,v0,zero,v0.t - 40e8: ffffffa7 .4byte 0xffffffa7 - 40ec: ffda .2byte 0xffda - 40ee: ffff .2byte 0xffff - 40f0: 0050 .2byte 0x50 - 40f2: 0000 vmsge.vx v0,v0,zero,v0.t - 40f4: ffde .2byte 0xffde - 40f6: ffff .2byte 0xffff - 40f8: ffac .2byte 0xffac - 40fa: ffff .2byte 0xffff - 40fc: 006a .2byte 0x6a - 40fe: 0000 vmsge.vx v0,v0,zero,v0.t - 4100: 0072 .2byte 0x72 - 4102: 0000 vmsge.vx v0,v0,zero,v0.t - 4104: 005d .2byte 0x5d - 4106: 0000 vmsge.vx v0,v0,zero,v0.t - 4108: 00000077 .4byte 0x77 - 410c: ff90 .2byte 0xff90 - 410e: ffff .2byte 0xffff - 4110: 0016 .2byte 0x16 - 4112: 0000 vmsge.vx v0,v0,zero,v0.t - 4114: 004c .2byte 0x4c - 4116: 0000 vmsge.vx v0,v0,zero,v0.t - 4118: 006d .2byte 0x6d - 411a: 0000 vmsge.vx v0,v0,zero,v0.t - 411c: ffcd .2byte 0xffcd - 411e: ffff .2byte 0xffff - 4120: 0054 .2byte 0x54 - 4122: 0000 vmsge.vx v0,v0,zero,v0.t - 4124: ffffff9b .4byte 0xffffff9b - 4128: fff6 .2byte 0xfff6 - 412a: ffff .2byte 0xffff - 412c: ffcd .2byte 0xffcd - 412e: ffff .2byte 0xffff - 4130: ffca .2byte 0xffca - 4132: ffff .2byte 0xffff - 4134: 00000057 vadd.vv v0,v0,v0,v0.t - 4138: ffea .2byte 0xffea - 413a: ffff .2byte 0xffff - 413c: ffffff87 .4byte 0xffffff87 - 4140: ff8c .2byte 0xff8c - 4142: ffff .2byte 0xffff - 4144: 005c .2byte 0x5c - 4146: 0000 vmsge.vx v0,v0,zero,v0.t - 4148: ffb6 .2byte 0xffb6 - 414a: ffff .2byte 0xffff - 414c: 0021 vmsge.vx v0,v0,zero,v0.t - 414e: 0000 vmsge.vx v0,v0,zero,v0.t - 4150: 00000017 auipc zero,0x0 - 4154: ffcd .2byte 0xffcd - 4156: ffff .2byte 0xffff - 4158: 0061 vmsge.vx v0,v0,zero,v0.t - 415a: 0000 vmsge.vx v0,v0,zero,v0.t - 415c: ffffff9b .4byte 0xffffff9b - 4160: 00000077 .4byte 0x77 - 4164: ffaa .2byte 0xffaa - 4166: ffff .2byte 0xffff - 4168: ffed .2byte 0xffed - 416a: ffff .2byte 0xffff - 416c: 0070 .2byte 0x70 - 416e: 0000 vmsge.vx v0,v0,zero,v0.t - 4170: 0046 .2byte 0x46 - 4172: 0000 vmsge.vx v0,v0,zero,v0.t - 4174: ffcd .2byte 0xffcd - 4176: ffff .2byte 0xffff - 4178: 0018 .2byte 0x18 - 417a: 0000 vmsge.vx v0,v0,zero,v0.t - 417c: 003d .2byte 0x3d - 417e: 0000 vmsge.vx v0,v0,zero,v0.t - 4180: 001f 0000 0029 .byte 0x1f, 0x00, 0x00, 0x00, 0x29, 0x00 - 4186: 0000 vmsge.vx v0,v0,zero,v0.t - 4188: ffffff83 vmsge.vx v31,v31,t6 - 418c: fffffff7 .4byte 0xfffffff7 - 4190: 0000004f .4byte 0x4f - 4194: ffd6 .2byte 0xffd6 - 4196: ffff .2byte 0xffff - 4198: ff92 .2byte 0xff92 - 419a: ffff .2byte 0xffff - 419c: ffba .2byte 0xffba - 419e: ffff .2byte 0xffff - 41a0: ffdd .2byte 0xffdd +0000000000004000 : + 4000: fdff .2byte 0xfdff + 4002: fd04 .2byte 0xfd04 + 4004: 0501 vmsge.vx v10,v0,zero,v0.t + 4006: fcfe .2byte 0xfcfe + 4008: 06fa .2byte 0x6fa + 400a: fd04 .2byte 0xfd04 + 400c: fffa .2byte 0xfffa + 400e: 0305 .2byte 0x305 + 4010: 0600 vmsge.vx v12,v0,zero,v0.t + 4012: 02f8 .2byte 0x2f8 + 4014: fefc .2byte 0xfefc + 4016: fafd .2byte 0xfafd + 4018: 04f8 .2byte 0x4f8 + 401a: fa02fb03 vmsge.vx v22,v0,t0 + 401e: 0206 .2byte 0x206 + 4020: fdfc .2byte 0xfdfc + 4022: ff02 vmsge.vx v30,v0,ra,v0.t + 4024: 0302 vmsge.vx v6,v0,zero,v0.t + 4026: 00fe .2byte 0xfe + 4028: 01fe .2byte 0x1fe + 402a: fe04 .2byte 0xfe04 + 402c: 05f9fa03 vmsge.vx v20,v31,s3,v0.t + 4030: 06f8 .2byte 0x6f8 + 4032: 0601 vmsge.vx v12,v0,zero,v0.t + 4034: fefc .2byte 0xfefc + 4036: 03fd .2byte 0x3fd + 4038: 0101 vmsge.vx v2,v0,zero,v0.t + 403a: ff05 .2byte 0xff05 + 403c: fc04 .2byte 0xfc04 + 403e: fb01 vmsge.vx v22,v0,ra,v0.t + 4040: fcff .2byte 0xfcff + 4042: 0505 .2byte 0x505 + 4044: 0005 .2byte 0x5 + 4046: 04fe .2byte 0x4fe + 4048: 0406 .2byte 0x406 + 404a: fcfc .2byte 0xfcfc + 404c: f902 vmsge.vx v18,v0,ra,v0.t + 404e: fa06 .2byte 0xfa06 + 4050: fdf8 .2byte 0xfdf8 + 4052: 06fdf9fb .4byte 0x6fdf9fb + 4056: 05fd .2byte 0x5fd + 4058: 0105 .2byte 0x105 + 405a: 05fc0403 lb s0,95(s8) + 405e: fd05 .2byte 0xfd05 + 4060: f905 .2byte 0xf905 + 4062: 0605 .2byte 0x605 + 4064: 0405 .2byte 0x405 + 4066: fb02 vmsge.vx v22,v0,ra,v0.t + 4068: 0000 vmsge.vx v0,v0,zero,v0.t + 406a: fafcf803 vmsge.vx v16,v15,s9 + 406e: fbf9 .2byte 0xfbf9 + 4070: 03fd .2byte 0x3fd + 4072: 0204 .2byte 0x204 + 4074: fef8 .2byte 0xfef8 + 4076: f90205fb .4byte 0xf90205fb + 407a: fff8 .2byte 0xfff8 + 407c: 06fe .2byte 0x6fe + 407e: fbfa .2byte 0xfbfa + 4080: fa06 .2byte 0xfa06 + 4082: fafd .2byte 0xfafd + 4084: 0106 .2byte 0x106 + 4086: 0404 .2byte 0x404 + 4088: 05fc .2byte 0x5fc + 408a: fa00f8fb .4byte 0xfa00f8fb + 408e: 01fc .2byte 0x1fc + 4090: fc00 vmsge.vx v24,v0,ra,v0.t + 4092: 03fa .2byte 0x3fa + 4094: fdfc .2byte 0xfdfc + 4096: 0304 .2byte 0x304 + 4098: f802 vmsge.vx v16,v0,ra,v0.t + 409a: 00fa .2byte 0xfa + 409c: f8f8 .2byte 0xf8f8 + 409e: 0202 vmsge.vx v4,v0,zero,v0.t + 40a0: fb02f803 vmsge.vx v16,v16,t0 + 40a4: fc01 vmsge.vx v24,v0,ra,v0.t + 40a6: fbff .2byte 0xfbff + 40a8: f9fe .2byte 0xf9fe + 40aa: 0506 .2byte 0x506 + 40ac: 0302 vmsge.vx v6,v0,zero,v0.t + 40ae: 0205 .2byte 0x205 + 40b0: ff01 vmsge.vx v30,v0,ra,v0.t + 40b2: 02f9 .2byte 0x2f9 + 40b4: 0304 .2byte 0x304 + 40b6: fefa .2byte 0xfefa + 40b8: fd05 .2byte 0xfd05 + 40ba: 0405 .2byte 0x405 + 40bc: 01fc .2byte 0x1fc + 40be: 030001fb .4byte 0x30001fb + 40c2: fdff .2byte 0xfdff + 40c4: 0200 vmsge.vx v4,v0,zero,v0.t + 40c6: 0602f9fb .4byte 0x602f9fb + 40ca: fbfa .2byte 0xfbfa + 40cc: ff02 vmsge.vx v30,v0,ra,v0.t + 40ce: ff06 .2byte 0xff06 + 40d0: 0405 .2byte 0x405 + 40d2: 0400 vmsge.vx v8,v0,zero,v0.t + 40d4: f8fa .2byte 0xf8fa + 40d6: 01fc03fb .4byte 0x1fc03fb + 40da: 03ff 0302 fbfa fffd .byte 0xff, 0x03, 0x02, 0x03, 0xfa, 0xfb, 0xfd, 0xff, 0xf9, 0xff + 40e2: fff9 + 40e4: 03f8 .2byte 0x3f8 + 40e6: faf8 .2byte 0xfaf8 + 40e8: ffff .2byte 0xffff + 40ea: 0104 .2byte 0x104 + 40ec: fbfcf903 vmsge.vx v18,v31,s9 + 40f0: fffc .2byte 0xfffc + 40f2: 0204f903 vmsge.vx v18,v0,s1 + 40f6: fc00 vmsge.vx v24,v0,ra,v0.t + 40f8: fb01 vmsge.vx v22,v0,ra,v0.t + 40fa: 06ff 04fa fc02 0106 .byte 0xff, 0x06, 0xfa, 0x04, 0x02, 0xfc, 0x06, 0x01, 0x05, 0xf8 + 4102: f805 + 4104: fafe .2byte 0xfafe + 4106: 01fe .2byte 0x1fe + 4108: 0302 vmsge.vx v6,v0,zero,v0.t + 410a: 04fd .2byte 0x4fd + 410c: f8ff .2byte 0xf8ff + 410e: fe05 .2byte 0xfe05 + 4110: fbfcfefb .4byte 0xfbfcfefb + 4114: 03ff fffd 01fd 02fd .byte 0xff, 0x03, 0xfd, 0xff, 0xfd, 0x01, 0xfd, 0x02, 0xfc, 0xfb + 411c: fbfc + 411e: fb01 vmsge.vx v22,v0,ra,v0.t + 4120: 0500 vmsge.vx v10,v0,zero,v0.t + 4122: fcff .2byte 0xfcff + 4124: fbfd .2byte 0xfbfd + 4126: 04fb0203 lb tp,79(s6) + 412a: 05fe .2byte 0x5fe + 412c: 00f9 .2byte 0xf9 + 412e: 04ff fbfc 0203 ff06 .byte 0xff, 0x04, 0xfc, 0xfb, 0x03, 0x02, 0x06, 0xff, 0xfb, 0x06 + 4136: 06fb + 4138: f804 .2byte 0xf804 + 413a: 01f8 .2byte 0x1f8 + 413c: fdfe .2byte 0xfdfe + 413e: f901 vmsge.vx v18,v0,ra,v0.t + 4140: f801 vmsge.vx v16,v0,ra,v0.t + 4142: 0505 .2byte 0x505 + 4144: 0400 vmsge.vx v8,v0,zero,v0.t + 4146: fe04 .2byte 0xfe04 + 4148: fc05 .2byte 0xfc05 + 414a: fcf9fbfb .4byte 0xfcf9fbfb + 414e: fe00 vmsge.vx v28,v0,ra,v0.t + 4150: 0500 vmsge.vx v10,v0,zero,v0.t + 4152: fafc .2byte 0xfafc + 4154: 01fe .2byte 0x1fe + 4156: 0205 .2byte 0x205 + 4158: 0602 vmsge.vx v12,v0,zero,v0.t + 415a: 0305 .2byte 0x305 + 415c: fe05 .2byte 0xfe05 + 415e: 0604 .2byte 0x604 + 4160: 0600 vmsge.vx v12,v0,zero,v0.t + 4162: 0301 vmsge.vx v6,v0,zero,v0.t + 4164: f9fa .2byte 0xf9fa + 4166: 0604 .2byte 0x604 + 4168: faf9 .2byte 0xfaf9 + 416a: 0506 .2byte 0x506 + 416c: 03f8 .2byte 0x3f8 + 416e: fc06 .2byte 0xfc06 + 4170: fb040203 lb tp,-80(s0) + 4174: fcfc .2byte 0xfcfc + 4176: 03f8 .2byte 0x3f8 + 4178: 04fc .2byte 0x4fc + 417a: fcfa .2byte 0xfcfa + 417c: 04fe .2byte 0x4fe + 417e: 06fd .2byte 0x6fd + 4180: f805 .2byte 0xf805 + 4182: fafd .2byte 0xfafd + 4184: 00f8 .2byte 0xf8 + 4186: 00fa .2byte 0xfa + 4188: 03fc .2byte 0x3fc + 418a: fb05 .2byte 0xfb05 + 418c: f804 .2byte 0xf804 + 418e: 06fd .2byte 0x6fd + 4190: fa06 .2byte 0xfa06 + 4192: 0302 vmsge.vx v6,v0,zero,v0.t + 4194: fa00fc03 vmsge.vx v24,v0,ra + 4198: fdfd .2byte 0xfdfd + 419a: 0406 .2byte 0x406 + 419c: 00fc .2byte 0xfc + 419e: 05f801fb .4byte 0x5f801fb 41a2: ffff .2byte 0xffff - 41a4: fff4 .2byte 0xfff4 - 41a6: ffff .2byte 0xffff - 41a8: ffe9 .2byte 0xffe9 - 41aa: ffff .2byte 0xffff - 41ac: ffe0 vmsge.vx v31,v0,ra,v0.t - 41ae: ffff .2byte 0xffff - 41b0: ff96 .2byte 0xff96 - 41b2: ffff .2byte 0xffff - 41b4: ff98 .2byte 0xff98 - 41b6: ffff .2byte 0xffff - 41b8: 0051 .2byte 0x51 - 41ba: 0000 vmsge.vx v0,v0,zero,v0.t - 41bc: 00000033 add zero,zero,zero - 41c0: 0004 .2byte 0x4 - 41c2: 0000 vmsge.vx v0,v0,zero,v0.t - 41c4: 004a .2byte 0x4a - 41c6: 0000 vmsge.vx v0,v0,zero,v0.t - 41c8: 0069 .2byte 0x69 - 41ca: 0000 vmsge.vx v0,v0,zero,v0.t - 41cc: ffb9 .2byte 0xffb9 - 41ce: ffff .2byte 0xffff - 41d0: fff4 .2byte 0xfff4 - 41d2: ffff .2byte 0xffff - 41d4: ff8e .2byte 0xff8e - 41d6: ffff .2byte 0xffff - 41d8: 0068 .2byte 0x68 - 41da: 0000 vmsge.vx v0,v0,zero,v0.t - 41dc: ffd8 .2byte 0xffd8 - 41de: ffff .2byte 0xffff - 41e0: ffb8 .2byte 0xffb8 - 41e2: ffff .2byte 0xffff - 41e4: ffffffd7 vsetivli t6,31,1023 - 41e8: ffa4 .2byte 0xffa4 - 41ea: ffff .2byte 0xffff - 41ec: ffffffd7 vsetivli t6,31,1023 - 41f0: 0054 .2byte 0x54 - 41f2: 0000 vmsge.vx v0,v0,zero,v0.t - 41f4: ffda .2byte 0xffda - 41f6: ffff .2byte 0xffff - 41f8: ffc4 .2byte 0xffc4 - 41fa: ffff .2byte 0xffff - 41fc: 0011 .2byte 0x11 - 41fe: 0000 vmsge.vx v0,v0,zero,v0.t - 4200: 007d .2byte 0x7d - 4202: 0000 vmsge.vx v0,v0,zero,v0.t - 4204: ff95 .2byte 0xff95 - 4206: ffff .2byte 0xffff - 4208: ffb2 .2byte 0xffb2 - 420a: ffff .2byte 0xffff - 420c: ff99 .2byte 0xff99 - 420e: ffff .2byte 0xffff - 4210: ffd2 .2byte 0xffd2 - 4212: ffff .2byte 0xffff - 4214: ffffffcb .4byte 0xffffffcb - 4218: 0000003b addw zero,zero,zero - 421c: ffffffab .4byte 0xffffffab - 4220: 0000000b .4byte 0xb - 4224: ffda .2byte 0xffda - 4226: ffff .2byte 0xffff - 4228: fff2 .2byte 0xfff2 - 422a: ffff .2byte 0xffff - 422c: 005d .2byte 0x5d - 422e: 0000 vmsge.vx v0,v0,zero,v0.t - 4230: 0026 .2byte 0x26 - 4232: 0000 vmsge.vx v0,v0,zero,v0.t - 4234: 0014 .2byte 0x14 - 4236: 0000 vmsge.vx v0,v0,zero,v0.t - 4238: ffd2 .2byte 0xffd2 - 423a: ffff .2byte 0xffff - 423c: 000a .2byte 0xa - ... + 41a4: f801 vmsge.vx v16,v0,ra,v0.t + 41a6: fdfa .2byte 0xfdfa + 41a8: fafd00fb .4byte 0xfafd00fb + 41ac: 02fc .2byte 0x2fc + 41ae: fcf9 .2byte 0xfcf9 + 41b0: 0305 .2byte 0x305 + 41b2: 0602 vmsge.vx v12,v0,zero,v0.t + 41b4: fbfc .2byte 0xfbfc + 41b6: fafd .2byte 0xfafd + 41b8: 020205fb .4byte 0x20205fb + 41bc: fa05 .2byte 0xfa05 + 41be: fa04 .2byte 0xfa04 + 41c0: 03fdfb03 vmsge.vx v22,v31,s11 + 41c4: 0404 .2byte 0x404 + 41c6: 06fe .2byte 0x6fe + 41c8: fc04 .2byte 0xfc04 + 41ca: fa01 vmsge.vx v20,v0,ra,v0.t + 41cc: f8ff .2byte 0xf8ff + 41ce: f9f8 .2byte 0xf9f8 + 41d0: f8fdfdfb .4byte 0xf8fdfdfb + 41d4: fd01 vmsge.vx v26,v0,ra,v0.t + 41d6: fcff .2byte 0xfcff + 41d8: 00fa .2byte 0xfa + 41da: 0606fc03 vmsge.vx v24,v0,a3 + 41de: fc02 vmsge.vx v24,v0,ra,v0.t + 41e0: 00fa .2byte 0xfa + 41e2: fdf8 .2byte 0xfdf8 + 41e4: 0205 .2byte 0x205 + 41e6: fe01 vmsge.vx v28,v0,ra,v0.t + 41e8: 06f8 .2byte 0x6f8 + 41ea: f901 vmsge.vx v18,v0,ra,v0.t + 41ec: 0300 vmsge.vx v6,v0,zero,v0.t + 41ee: 0001 vmsge.vx v0,v0,zero,v0.t + 41f0: f8ff .2byte 0xf8ff + 41f2: fe030503 lb a0,-32(t1) + 41f6: 0101 vmsge.vx v2,v0,zero,v0.t + 41f8: fb00 vmsge.vx v22,v0,ra,v0.t + 41fa: 05fe .2byte 0x5fe + 41fc: fcfa .2byte 0xfcfa + 41fe: 0402 vmsge.vx v8,v0,zero,v0.t + 4200: 04ff fe05 f8f8 fd01 .byte 0xff, 0x04, 0x05, 0xfe, 0xf8, 0xf8, 0x01, 0xfd, 0x01, 0x05 + 4208: 0501 + 420a: 02fa .2byte 0x2fa + 420c: 0601 vmsge.vx v12,v0,zero,v0.t + 420e: fa01 vmsge.vx v20,v0,ra,v0.t + 4210: 05ff 03f8 fe05 f8fd .byte 0xff, 0x05, 0xf8, 0x03, 0x05, 0xfe, 0xfd, 0xf8, 0x00, 0xf8 + 4218: f800 + 421a: fffd .2byte 0xfffd + 421c: fa04 .2byte 0xfa04 + 421e: 0402 vmsge.vx v8,v0,zero,v0.t + 4220: fdfef903 vmsge.vx v18,v31,t4,v0.t + 4224: 0504 .2byte 0x504 + 4226: 0606 .2byte 0x606 + 4228: f9fb0003 lb zero,-97(s6) + 422c: f8fa .2byte 0xf8fa + 422e: 06fc .2byte 0x6fc + 4230: 02fa .2byte 0x2fa + 4232: fa05 .2byte 0xfa05 + 4234: f9fa .2byte 0xf9fa + 4236: 0304 .2byte 0x304 + 4238: fc01 vmsge.vx v24,v0,ra,v0.t + 423a: 0601 vmsge.vx v12,v0,zero,v0.t + 423c: 02fefefb .4byte 0x2fefefb + 4240: 0301 vmsge.vx v6,v0,zero,v0.t + 4242: fcfe .2byte 0xfcfe + 4244: 0602 vmsge.vx v12,v0,zero,v0.t + 4246: 05f9 .2byte 0x5f9 + 4248: fe01 vmsge.vx v28,v0,ra,v0.t + 424a: faf8 .2byte 0xfaf8 + 424c: fbf8 .2byte 0xfbf8 + 424e: 03ff fbf8 fd03 fe02 .byte 0xff, 0x03, 0xf8, 0xfb, 0x03, 0xfd, 0x02, 0xfe, 0xf9, 0x05 + 4256: 05f9 + 4258: 05ff 00fd 02fc 04fb .byte 0xff, 0x05, 0xfd, 0x00, 0xfc, 0x02, 0xfb, 0x04, 0x02, 0x01 + 4260: 0102 + 4262: fa05 .2byte 0xfa05 + 4264: fa05 .2byte 0xfa05 + 4266: 0206 .2byte 0x206 + 4268: f804 .2byte 0xf804 + 426a: fa06 .2byte 0xfa06 + 426c: ff01 vmsge.vx v30,v0,ra,v0.t + 426e: fffb01fb .4byte 0xfffb01fb + 4272: 0206 .2byte 0x206 + 4274: 05fc .2byte 0x5fc + 4276: f902 vmsge.vx v18,v0,ra,v0.t + 4278: 0101 vmsge.vx v2,v0,zero,v0.t + 427a: ff06 .2byte 0xff06 + 427c: fc01 vmsge.vx v24,v0,ra,v0.t + 427e: 0301 vmsge.vx v6,v0,zero,v0.t + 4280: fb01 vmsge.vx v22,v0,ra,v0.t + 4282: fe06 .2byte 0xfe06 + 4284: f9ff .2byte 0xf9ff + 4286: faf8 .2byte 0xfaf8 + 4288: 06f9 .2byte 0x6f9 + 428a: fb00fafb .4byte 0xfb00fafb + 428e: fb05 .2byte 0xfb05 + 4290: fbfa .2byte 0xfbfa + 4292: fe02 vmsge.vx v28,v0,ra,v0.t + 4294: 0202 vmsge.vx v4,v0,zero,v0.t + 4296: f802 vmsge.vx v16,v0,ra,v0.t + 4298: fcfc .2byte 0xfcfc + 429a: 0401 vmsge.vx v8,v0,zero,v0.t + 429c: 05ff 0205 0103 0603 .byte 0xff, 0x05, 0x05, 0x02, 0x03, 0x01, 0x03, 0x06, 0x06, 0xfb + 42a4: fb06 + 42a6: 0401 vmsge.vx v8,v0,zero,v0.t + 42a8: fa06 .2byte 0xfa06 + 42aa: 03f8 .2byte 0x3f8 + 42ac: 04fa .2byte 0x4fa + 42ae: 0201 vmsge.vx v4,v0,zero,v0.t + 42b0: fa05fdfb .4byte 0xfa05fdfb + 42b4: 04fe .2byte 0x4fe + 42b6: 00f8 .2byte 0xf8 + 42b8: 0405 .2byte 0x405 + 42ba: fafc .2byte 0xfafc + 42bc: fc00 vmsge.vx v24,v0,ra,v0.t + 42be: 06fa .2byte 0x6fa + 42c0: 0404 .2byte 0x404 + 42c2: fff8 .2byte 0xfff8 + 42c4: 05fc .2byte 0x5fc + 42c6: 00fa .2byte 0xfa + 42c8: ff01 vmsge.vx v30,v0,ra,v0.t + 42ca: 04fd .2byte 0x4fd + 42cc: f806fdfb .4byte 0xf806fdfb + 42d0: 0004 .2byte 0x4 + 42d2: 05f8 .2byte 0x5f8 + 42d4: 01f9 .2byte 0x1f9 + 42d6: 02f8 .2byte 0x2f8 + 42d8: 04fe .2byte 0x4fe + 42da: fbf8 .2byte 0xfbf8 + 42dc: 03ff 0501 f900 fffc .byte 0xff, 0x03, 0x01, 0x05, 0x00, 0xf9, 0xfc, 0xff, 0x03, 0xf9 + 42e4: f903 + 42e6: fffffc03 vmsge.vx v24,v31,t6 + 42ea: 06f8 .2byte 0x6f8 + 42ec: fc01 vmsge.vx v24,v0,ra,v0.t + 42ee: fcf9 .2byte 0xfcf9 + 42f0: fafd .2byte 0xfafd + 42f2: 03fcff03 vmsge.vx v30,v31,s9 + 42f6: 0206 .2byte 0x206 + 42f8: 0205 .2byte 0x205 + 42fa: 0505 .2byte 0x505 + 42fc: fefc .2byte 0xfefc + 42fe: f9fc .2byte 0xf9fc + 4300: 0506 .2byte 0x506 + 4302: fdfc .2byte 0xfdfc + 4304: 04fc .2byte 0x4fc + 4306: fe01 vmsge.vx v28,v0,ra,v0.t + 4308: 03fa .2byte 0x3fa + 430a: fa02 vmsge.vx v20,v0,ra,v0.t + 430c: 02ff0103 lb sp,47(t5) + 4310: 03f9 .2byte 0x3f9 + 4312: f9f8 .2byte 0xf9f8 + 4314: fafe .2byte 0xfafe + 4316: f800 vmsge.vx v16,v0,ra,v0.t + 4318: 0405 .2byte 0x405 + 431a: fbfa .2byte 0xfbfa + 431c: f906fd03 vmsge.vx v26,v16,a3,v0.t + 4320: 05fc .2byte 0x5fc + 4322: 0102 vmsge.vx v2,v0,zero,v0.t + 4324: fbfe .2byte 0xfbfe + 4326: 0502 vmsge.vx v10,v0,zero,v0.t + 4328: 0604 .2byte 0x604 + 432a: 0305 .2byte 0x305 + 432c: f804 .2byte 0xf804 + 432e: 02050003 lb zero,32(a0) + 4332: 00f9 .2byte 0xf9 + 4334: 06fa .2byte 0x6fa + 4336: 0504 .2byte 0x504 + 4338: fb06 .2byte 0xfb06 + 433a: 0500 vmsge.vx v10,v0,zero,v0.t + 433c: 0101 vmsge.vx v2,v0,zero,v0.t + 433e: 00fc .2byte 0xfc + 4340: fffe .2byte 0xfffe + 4342: fefc0003 lb zero,-17(s8) + 4346: 0402 vmsge.vx v8,v0,zero,v0.t + 4348: f9fc .2byte 0xf9fc + 434a: fc01 vmsge.vx v24,v0,ra,v0.t + 434c: fffd .2byte 0xfffd + 434e: fa05 .2byte 0xfa05 + 4350: fd00 vmsge.vx v26,v0,ra,v0.t + 4352: 01f9 .2byte 0x1f9 + 4354: 0202 vmsge.vx v4,v0,zero,v0.t + 4356: f806 .2byte 0xf806 + 4358: 0400 vmsge.vx v8,v0,zero,v0.t + 435a: fe00 vmsge.vx v28,v0,ra,v0.t + 435c: fffcfafb .4byte 0xfffcfafb + 4360: fb02 vmsge.vx v22,v0,ra,v0.t + 4362: fdfd .2byte 0xfdfd + 4364: fffe .2byte 0xfffe + 4366: 02fbf903 vmsge.vx v18,v15,s7 + 436a: 0501 vmsge.vx v10,v0,zero,v0.t + 436c: 00f8 .2byte 0xf8 + 436e: fd04 .2byte 0xfd04 + 4370: fdfe .2byte 0xfdfe + 4372: fdf8f8fb .4byte 0xfdf8f8fb + 4376: f804 .2byte 0xf804 + 4378: 06ff f802 0303 feff .byte 0xff, 0x06, 0x02, 0xf8, 0x03, 0x03, 0xff, 0xfe, 0xfb, 0x02 + 4380: 02fb + 4382: f9fe .2byte 0xf9fe + 4384: 00ff 00fe 0505 fcfe .byte 0xff, 0x00, 0xfe, 0x00, 0x05, 0x05, 0xfe, 0xfc, 0x06, 0xf8 + 438c: f806 + 438e: 00fdfbfb .4byte 0xfdfbfb + 4392: fd01 vmsge.vx v26,v0,ra,v0.t + 4394: ff06 .2byte 0xff06 + 4396: 06fc .2byte 0x6fc + 4398: 0106 .2byte 0x106 + 439a: f9fa .2byte 0xf9fa + 439c: ff04 .2byte 0xff04 + 439e: feff .2byte 0xfeff + 43a0: 04030103 lb sp,64(t1) + 43a4: 0300 vmsge.vx v6,v0,zero,v0.t + 43a6: 0000 vmsge.vx v0,v0,zero,v0.t + 43a8: f9fa .2byte 0xf9fa + 43aa: ffff .2byte 0xffff + 43ac: ff06 .2byte 0xff06 + 43ae: 01fa .2byte 0x1fa + 43b0: 0201fafb .4byte 0x201fafb + 43b4: f9fa .2byte 0xf9fa + 43b6: 0102 vmsge.vx v2,v0,zero,v0.t + 43b8: f906 .2byte 0xf906 + 43ba: 03fc .2byte 0x3fc + 43bc: fd00 vmsge.vx v26,v0,ra,v0.t + 43be: fffd .2byte 0xfffd + 43c0: fef8 .2byte 0xfef8 + 43c2: fe06 .2byte 0xfe06 + 43c4: fff8 .2byte 0xfff8 + 43c6: 02fd .2byte 0x2fd + 43c8: fffc .2byte 0xfffc + 43ca: f8fa .2byte 0xf8fa + 43cc: f905 .2byte 0xf905 + 43ce: f901 vmsge.vx v18,v0,ra,v0.t + 43d0: f906 .2byte 0xf906 + 43d2: fdf9 .2byte 0xfdf9 + 43d4: 06fa .2byte 0x6fa + 43d6: f8fe .2byte 0xf8fe + 43d8: fafc .2byte 0xfafc + 43da: fdff .2byte 0xfdff + 43dc: fe02 vmsge.vx v28,v0,ra,v0.t + 43de: 05fa .2byte 0x5fa + 43e0: 01fd .2byte 0x1fd + 43e2: 0604 .2byte 0x604 + 43e4: 01fc .2byte 0x1fc + 43e6: ffff .2byte 0xffff + 43e8: 06fa .2byte 0x6fa + 43ea: fcfd .2byte 0xfcfd + 43ec: fdfe0203 lb tp,-33(t3) + 43f0: fefa .2byte 0xfefa + 43f2: fe05 .2byte 0xfe05 + 43f4: fb06 .2byte 0xfb06 + 43f6: f901 vmsge.vx v18,v0,ra,v0.t + 43f8: fefd .2byte 0xfefd + 43fa: 01ff fd03 0605 .byte 0xff, 0x01, 0x03, 0xfd, 0x05, 0x06, 0xfe, 0x00, 0xfe, 0xfe + 4402: -0000000000004240 : - 4240: ffd1 .2byte 0xffd1 - 4242: ffff .2byte 0xffff - 4244: 0052 .2byte 0x52 - 4246: 0000 vmsge.vx v0,v0,zero,v0.t - 4248: ffffffdb .4byte 0xffffffdb - 424c: fff0 .2byte 0xfff0 - 424e: ffff .2byte 0xffff - 4250: ffdd .2byte 0xffdd - 4252: ffff .2byte 0xffff - 4254: 0005 .2byte 0x5 - 4256: 0000 vmsge.vx v0,v0,zero,v0.t - 4258: ff84 .2byte 0xff84 - 425a: ffff .2byte 0xffff - 425c: 005f 0000 ffca .byte 0x5f, 0x00, 0x00, 0x00, 0xca, 0xff - 4262: ffff .2byte 0xffff - 4264: 0059 .2byte 0x59 - 4266: 0000 vmsge.vx v0,v0,zero,v0.t - 4268: ffffffab .4byte 0xffffffab - 426c: 0020 vmsge.vx v0,v0,zero,v0.t - 426e: 0000 vmsge.vx v0,v0,zero,v0.t - 4270: 00000057 vadd.vv v0,v0,v0,v0.t - 4274: ffae .2byte 0xffae - 4276: ffff .2byte 0xffff - 4278: ffa6 .2byte 0xffa6 - 427a: ffff .2byte 0xffff - 427c: fffffffb .4byte 0xfffffffb - 4280: ffe4 .2byte 0xffe4 - 4282: ffff .2byte 0xffff - 4284: ffd8 .2byte 0xffd8 - 4286: ffff .2byte 0xffff - 4288: 0036 .2byte 0x36 - 428a: 0000 vmsge.vx v0,v0,zero,v0.t - 428c: 0004 .2byte 0x4 - 428e: 0000 vmsge.vx v0,v0,zero,v0.t - 4290: fff2 .2byte 0xfff2 - 4292: ffff .2byte 0xffff - 4294: 0044 .2byte 0x44 - 4296: 0000 vmsge.vx v0,v0,zero,v0.t - 4298: 0072 .2byte 0x72 - 429a: 0000 vmsge.vx v0,v0,zero,v0.t - 429c: fffe .2byte 0xfffe - 429e: ffff .2byte 0xffff - 42a0: 00000037 lui zero,0x0 - 42a4: ffffffdb .4byte 0xffffffdb - 42a8: ffffffa3 vmsge.vx v31,v31,t6 - 42ac: ffd5 .2byte 0xffd5 - 42ae: ffff .2byte 0xffff - 42b0: ff98 .2byte 0xff98 - 42b2: ffff .2byte 0xffff - 42b4: 001d .2byte 0x1d - 42b6: 0000 vmsge.vx v0,v0,zero,v0.t - 42b8: 0015 .2byte 0x15 - 42ba: 0000 vmsge.vx v0,v0,zero,v0.t - 42bc: 0016 .2byte 0x16 - 42be: 0000 vmsge.vx v0,v0,zero,v0.t - 42c0: 0000001b sext.w zero,zero - 42c4: 003e .2byte 0x3e - 42c6: 0000 vmsge.vx v0,v0,zero,v0.t - 42c8: 0022 vmsge.vx v0,v0,zero,v0.t - 42ca: 0000 vmsge.vx v0,v0,zero,v0.t - 42cc: 0075 .2byte 0x75 - 42ce: 0000 vmsge.vx v0,v0,zero,v0.t - 42d0: ffc6 .2byte 0xffc6 - 42d2: ffff .2byte 0xffff - 42d4: 0071 .2byte 0x71 - 42d6: 0000 vmsge.vx v0,v0,zero,v0.t - 42d8: 0000002b .4byte 0x2b - 42dc: 0018 .2byte 0x18 - 42de: 0000 vmsge.vx v0,v0,zero,v0.t - 42e0: ffffffdb .4byte 0xffffffdb - 42e4: 0005 .2byte 0x5 - 42e6: 0000 vmsge.vx v0,v0,zero,v0.t - 42e8: 0000002b .4byte 0x2b - 42ec: 006d .2byte 0x6d - 42ee: 0000 vmsge.vx v0,v0,zero,v0.t - 42f0: ff84 .2byte 0xff84 - 42f2: ffff .2byte 0xffff - 42f4: ffffff83 vmsge.vx v31,v31,t6 - 42f8: ffd8 .2byte 0xffd8 - 42fa: ffff .2byte 0xffff - 42fc: 0056 .2byte 0x56 - 42fe: 0000 vmsge.vx v0,v0,zero,v0.t - 4300: 0062 vmsge.vx v0,v0,zero,v0.t - 4302: 0000 vmsge.vx v0,v0,zero,v0.t - 4304: ffc2 vmsge.vx v31,v0,ra,v0.t - 4306: ffff .2byte 0xffff - 4308: 0029 .2byte 0x29 - 430a: 0000 vmsge.vx v0,v0,zero,v0.t - 430c: ffb1 .2byte 0xffb1 - 430e: ffff .2byte 0xffff - 4310: fffffff7 .4byte 0xfffffff7 - 4314: 00000067 jr zero # 0 <_start> - 4318: ffffffd3 .4byte 0xffffffd3 - 431c: 0066 .2byte 0x66 - 431e: 0000 vmsge.vx v0,v0,zero,v0.t - 4320: 0049 .2byte 0x49 - 4322: 0000 vmsge.vx v0,v0,zero,v0.t - 4324: ff96 .2byte 0xff96 - 4326: ffff .2byte 0xffff - 4328: 0064 .2byte 0x64 - 432a: 0000 vmsge.vx v0,v0,zero,v0.t - 432c: 0031 .2byte 0x31 - 432e: 0000 vmsge.vx v0,v0,zero,v0.t - 4330: ffc6 .2byte 0xffc6 - 4332: ffff .2byte 0xffff - 4334: 0019 .2byte 0x19 - 4336: 0000 vmsge.vx v0,v0,zero,v0.t - 4338: ffce .2byte 0xffce - 433a: ffff .2byte 0xffff - 433c: 003e .2byte 0x3e - 433e: 0000 vmsge.vx v0,v0,zero,v0.t - 4340: 007d .2byte 0x7d - 4342: 0000 vmsge.vx v0,v0,zero,v0.t - 4344: 00000073 ecall - 4348: ffb0 .2byte 0xffb0 - 434a: ffff .2byte 0xffff - 434c: 00000043 vmsge.vx v0,v0,zero,v0.t - 4350: ffffffcf .4byte 0xffffffcf - 4354: 0002 vmsge.vx v0,v0,zero,v0.t - 4356: 0000 vmsge.vx v0,v0,zero,v0.t - 4358: ffe2 vmsge.vx v31,v0,ra,v0.t - 435a: ffff .2byte 0xffff - 435c: ffba .2byte 0xffba - 435e: ffff .2byte 0xffff - 4360: 00000027 vse8.v v0,(zero),v0.t - 4364: 0000007b .4byte 0x7b - 4368: ffe2 vmsge.vx v31,v0,ra,v0.t - 436a: ffff .2byte 0xffff - 436c: ff85 .2byte 0xff85 - 436e: ffff .2byte 0xffff - 4370: fff8 .2byte 0xfff8 - 4372: ffff .2byte 0xffff - 4374: 001a .2byte 0x1a - 4376: 0000 vmsge.vx v0,v0,zero,v0.t - 4378: 00000043 vmsge.vx v0,v0,zero,v0.t - 437c: ffe2 vmsge.vx v31,v0,ra,v0.t - 437e: ffff .2byte 0xffff - 4380: ffbc .2byte 0xffbc - 4382: ffff .2byte 0xffff - 4384: 0020 vmsge.vx v0,v0,zero,v0.t - 4386: 0000 vmsge.vx v0,v0,zero,v0.t - 4388: 0000000f fence unknown,unknown - 438c: 0068 .2byte 0x68 - 438e: 0000 vmsge.vx v0,v0,zero,v0.t - 4390: ffa5 .2byte 0xffa5 - 4392: ffff .2byte 0xffff - 4394: 003c .2byte 0x3c - 4396: 0000 vmsge.vx v0,v0,zero,v0.t - 4398: 0015 .2byte 0x15 - 439a: 0000 vmsge.vx v0,v0,zero,v0.t - 439c: ff9e .2byte 0xff9e - 439e: ffff .2byte 0xffff - 43a0: 00000073 ecall - 43a4: ffc4 .2byte 0xffc4 - 43a6: ffff .2byte 0xffff - 43a8: 0028 .2byte 0x28 - 43aa: 0000 vmsge.vx v0,v0,zero,v0.t - 43ac: ffd5 .2byte 0xffd5 - 43ae: ffff .2byte 0xffff - 43b0: 005f 0000 ffcc .byte 0x5f, 0x00, 0x00, 0x00, 0xcc, 0xff - 43b6: ffff .2byte 0xffff - 43b8: 00000043 vmsge.vx v0,v0,zero,v0.t - 43bc: ffc8 .2byte 0xffc8 - 43be: ffff .2byte 0xffff - 43c0: fff8 .2byte 0xfff8 - 43c2: ffff .2byte 0xffff - 43c4: ffae .2byte 0xffae - 43c6: ffff .2byte 0xffff - 43c8: 001c .2byte 0x1c - 43ca: 0000 vmsge.vx v0,v0,zero,v0.t - 43cc: ffffffa3 vmsge.vx v31,v31,t6 - 43d0: ffbc .2byte 0xffbc - 43d2: ffff .2byte 0xffff - 43d4: ffca .2byte 0xffca - 43d6: ffff .2byte 0xffff - 43d8: fffffff7 .4byte 0xfffffff7 - 43dc: ffd0 .2byte 0xffd0 - 43de: ffff .2byte 0xffff - 43e0: fff5 .2byte 0xfff5 - 43e2: ffff .2byte 0xffff - 43e4: 005d .2byte 0x5d - 43e6: 0000 vmsge.vx v0,v0,zero,v0.t - 43e8: 0010 .2byte 0x10 - 43ea: 0000 vmsge.vx v0,v0,zero,v0.t - 43ec: 0040 vmsge.vx v0,v0,zero,v0.t - 43ee: 0000 vmsge.vx v0,v0,zero,v0.t - 43f0: 0011 .2byte 0x11 - 43f2: 0000 vmsge.vx v0,v0,zero,v0.t - 43f4: ff96 .2byte 0xff96 - 43f6: ffff .2byte 0xffff - 43f8: ffba .2byte 0xffba - 43fa: ffff .2byte 0xffff - 43fc: ffa6 .2byte 0xffa6 - 43fe: ffff .2byte 0xffff - 4400: 00000023 sb zero,0(zero) # 0 <_start> - 4404: 004e .2byte 0x4e - 4406: 0000 vmsge.vx v0,v0,zero,v0.t - 4408: 0061 vmsge.vx v0,v0,zero,v0.t - 440a: 0000 vmsge.vx v0,v0,zero,v0.t - 440c: ff81 vmsge.vx v31,v0,ra,v0.t - 440e: ffff .2byte 0xffff - 4410: ffb2 .2byte 0xffb2 - 4412: ffff .2byte 0xffff - 4414: ffe4 .2byte 0xffe4 - 4416: ffff .2byte 0xffff - 4418: 007d .2byte 0x7d - 441a: 0000 vmsge.vx v0,v0,zero,v0.t - 441c: 0045 .2byte 0x45 - 441e: 0000 vmsge.vx v0,v0,zero,v0.t - 4420: 002c .2byte 0x2c - 4422: 0000 vmsge.vx v0,v0,zero,v0.t - 4424: ffb2 .2byte 0xffb2 - 4426: ffff .2byte 0xffff - 4428: 001a .2byte 0x1a - 442a: 0000 vmsge.vx v0,v0,zero,v0.t - 442c: 0034 .2byte 0x34 - 442e: 0000 vmsge.vx v0,v0,zero,v0.t - 4430: 0061 vmsge.vx v0,v0,zero,v0.t - 4432: 0000 vmsge.vx v0,v0,zero,v0.t - 4434: fff6 .2byte 0xfff6 - 4436: ffff .2byte 0xffff - 4438: 003e .2byte 0x3e - 443a: 0000 vmsge.vx v0,v0,zero,v0.t - 443c: ffb2 .2byte 0xffb2 - 443e: ffff .2byte 0xffff - 4440: ff92 .2byte 0xff92 - 4442: ffff .2byte 0xffff - 4444: fff8 .2byte 0xfff8 - 4446: ffff .2byte 0xffff - 4448: ff82 vmsge.vx v31,v0,ra,v0.t - 444a: ffff .2byte 0xffff - 444c: 00000073 ecall - 4450: ff84 .2byte 0xff84 - 4452: ffff .2byte 0xffff - 4454: 0012 .2byte 0x12 - 4456: 0000 vmsge.vx v0,v0,zero,v0.t - 4458: 0036 .2byte 0x36 - 445a: 0000 vmsge.vx v0,v0,zero,v0.t - 445c: 0029 .2byte 0x29 - 445e: 0000 vmsge.vx v0,v0,zero,v0.t - 4460: fff8 .2byte 0xfff8 - 4462: ffff .2byte 0xffff - 4464: 001a .2byte 0x1a - 4466: 0000 vmsge.vx v0,v0,zero,v0.t - 4468: fff5 .2byte 0xfff5 - 446a: ffff .2byte 0xffff - 446c: ff80 vmsge.vx v31,v0,ra,v0.t - 446e: ffff .2byte 0xffff - 4470: 0014 .2byte 0x14 - 4472: 0000 vmsge.vx v0,v0,zero,v0.t - 4474: ff9c .2byte 0xff9c - 4476: ffff .2byte 0xffff - 4478: ffdf ffff 0001 .byte 0xdf, 0xff, 0xff, 0xff, 0x01, 0x00 - 447e: 0000 vmsge.vx v0,v0,zero,v0.t - 4480: c174 .2byte 0xc174 - 4482: ffff .2byte 0xffff - 4484: c1b8 .2byte 0xc1b8 - 4486: ffff .2byte 0xffff - 4488: c1fc .2byte 0xc1fc - 448a: ffff .2byte 0xffff - 448c: c10c .2byte 0xc10c - 448e: ffff .2byte 0xffff - 4490: c240 vmsge.vx v4,v0,ra,v0.t - 4492: ffff .2byte 0xffff - 4494: c284 .2byte 0xc284 +0000000000004400 : + 4400: 00fe .2byte 0xfe + 4402: fefe .2byte 0xfefe + 4404: fffa .2byte 0xfffa + 4406: 04f8 .2byte 0x4f8 + 4408: 02f806fb .4byte 0x2f806fb + 440c: fe00 vmsge.vx v28,v0,ra,v0.t + 440e: 0000 vmsge.vx v0,v0,zero,v0.t + 4410: fbf8 .2byte 0xfbf8 + 4412: 0505 .2byte 0x505 + 4414: 0002 vmsge.vx v0,v0,zero,v0.t + 4416: fbfc .2byte 0xfbfc + 4418: f904 .2byte 0xf904 + 441a: 00f9 .2byte 0xf9 + 441c: 0101 vmsge.vx v2,v0,zero,v0.t + 441e: fefa .2byte 0xfefa + 4420: f9f9 .2byte 0xf9f9 + 4422: fd02 vmsge.vx v26,v0,ra,v0.t + 4424: fafbfc03 vmsge.vx v24,v15,s7 + 4428: f9fe .2byte 0xf9fe + 442a: fc00 vmsge.vx v24,v0,ra,v0.t + 442c: fdfe .2byte 0xfdfe + 442e: 05fe .2byte 0x5fe + 4430: 00fe .2byte 0xfe + 4432: 0404 .2byte 0x404 + 4434: f9f9 .2byte 0xf9f9 + 4436: fcff .2byte 0xfcff + 4438: fef8fbfb .4byte 0xfef8fbfb + 443c: f9ff .2byte 0xf9ff + 443e: ff01 vmsge.vx v30,v0,ra,v0.t + 4440: 0204 .2byte 0x204 + 4442: f906 .2byte 0xf906 + 4444: fbfc .2byte 0xfbfc + 4446: 0200 vmsge.vx v4,v0,zero,v0.t + 4448: 0300 vmsge.vx v6,v0,zero,v0.t + 444a: 01fb0103 lb sp,31(s6) + 444e: fef9 .2byte 0xfef9 + 4450: faf9 .2byte 0xfaf9 + 4452: fef9 .2byte 0xfef9 + 4454: 06ff fbf8 0106 0004 .byte 0xff, 0x06, 0xf8, 0xfb, 0x06, 0x01, 0x04, 0x00, 0x01, 0x00 + 445c: 0001 + 445e: 0505 .2byte 0x505 + 4460: f806 .2byte 0xf806 + 4462: fa01 vmsge.vx v20,v0,ra,v0.t + 4464: 0404 .2byte 0x404 + 4466: 03fa .2byte 0x3fa + 4468: fbfa .2byte 0xfbfa + 446a: f9ff .2byte 0xf9ff + 446c: f9ff .2byte 0xf9ff + 446e: f900 vmsge.vx v18,v0,ra,v0.t + 4470: 0005 .2byte 0x5 + 4472: fafc .2byte 0xfafc + 4474: fffa .2byte 0xfffa + 4476: fbfe .2byte 0xfbfe + 4478: 0405 .2byte 0x405 + 447a: 04f9 .2byte 0x4f9 + 447c: 0600 vmsge.vx v12,v0,zero,v0.t + 447e: f8030403 lb s0,-128(t1) + 4482: 05f9 .2byte 0x5f9 + 4484: f802 vmsge.vx v16,v0,ra,v0.t + 4486: 0302 vmsge.vx v6,v0,zero,v0.t + 4488: 0606fe03 vmsge.vx v28,v0,a3 + 448c: 06f9 .2byte 0x6f9 + 448e: 0106 .2byte 0x106 + 4490: 02fdf903 vmsge.vx v18,v15,s11 + 4494: f901 vmsge.vx v18,v0,ra,v0.t 4496: ffff .2byte 0xffff - 4498: c2c8 .2byte 0xc2c8 - 449a: ffff .2byte 0xffff - 449c: c30c .2byte 0xc30c - 449e: ffff .2byte 0xffff - 44a0: c10c .2byte 0xc10c - 44a2: ffff .2byte 0xffff - 44a4: c10c .2byte 0xc10c - 44a6: ffff .2byte 0xffff - 44a8: c10c .2byte 0xc10c - 44aa: ffff .2byte 0xffff - 44ac: c350 .2byte 0xc350 - 44ae: ffff .2byte 0xffff + 4498: f8fe .2byte 0xf8fe + 449a: fd02 vmsge.vx v26,v0,ra,v0.t + 449c: fbff .2byte 0xfbff + 449e: fc04 .2byte 0xfc04 + 44a0: 02ff 06fa 01fc fe03 .byte 0xff, 0x02, 0xfa, 0x06, 0xfc, 0x01, 0x03, 0xfe, 0x05, 0x05 + 44a8: 0505 + 44aa: 03fc .2byte 0x3fc + 44ac: faff .2byte 0xfaff + 44ae: f8fa .2byte 0xf8fa + 44b0: 0201 vmsge.vx v4,v0,zero,v0.t + 44b2: ff01 vmsge.vx v30,v0,ra,v0.t + 44b4: 01ff 0301 0306 fb00 .byte 0xff, 0x01, 0x01, 0x03, 0x06, 0x03, 0x00, 0xfb, 0xf9, 0xfe + 44bc: fef9 + 44be: fe01 vmsge.vx v28,v0,ra,v0.t + 44c0: fdfc .2byte 0xfdfc + 44c2: f8f8 .2byte 0xf8f8 + 44c4: 04f8 .2byte 0x4f8 + 44c6: f805 .2byte 0xf805 + 44c8: f9fc .2byte 0xf9fc + 44ca: 05fdfc03 vmsge.vx v24,v31,s11,v0.t + 44ce: 06fc .2byte 0x6fc + 44d0: 0302 vmsge.vx v6,v0,zero,v0.t + 44d2: fdfd .2byte 0xfdfd + 44d4: f9f8 .2byte 0xf9f8 + 44d6: 060400fb .4byte 0x60400fb + 44da: 0305 .2byte 0x305 + 44dc: fdf9 .2byte 0xfdf9 + 44de: f804 .2byte 0xf804 + 44e0: 03fb0403 lb s0,63(s6) + 44e4: fc00 vmsge.vx v24,v0,ra,v0.t + 44e6: fdf9 .2byte 0xfdf9 + 44e8: 00ff 01fd 02fd 0204 .byte 0xff, 0x00, 0xfd, 0x01, 0xfd, 0x02, 0x04, 0x02, 0xfc, 0xf9 + 44f0: f9fc + 44f2: 04f9 .2byte 0x4f9 + 44f4: fb01 vmsge.vx v22,v0,ra,v0.t + 44f6: fa04 .2byte 0xfa04 + 44f8: 00060303 lb t1,0(a2) + 44fc: fcff .2byte 0xfcff + 44fe: f9f9 .2byte 0xf9f9 + 4500: 0506fc03 vmsge.vx v24,v16,a3,v0.t + 4504: f8f8 .2byte 0xf8f8 + 4506: fd05 .2byte 0xfd05 + 4508: 04fd .2byte 0x4fd + 450a: 03fd .2byte 0x3fd + 450c: fe02 vmsge.vx v28,v0,ra,v0.t + 450e: fdfbfafb .4byte 0xfdfbfafb + 4512: 03fe .2byte 0x3fe + 4514: fa00 vmsge.vx v20,v0,ra,v0.t + 4516: f8f8 .2byte 0xf8f8 + 4518: fdfc .2byte 0xfdfc + 451a: fd02 vmsge.vx v26,v0,ra,v0.t + 451c: f906 .2byte 0xf906 + 451e: fdfd .2byte 0xfdfd + 4520: 0502 vmsge.vx v10,v0,zero,v0.t + 4522: fb01 vmsge.vx v22,v0,ra,v0.t + 4524: 05f8 .2byte 0x5f8 + 4526: fe020003 lb zero,-32(tp) # ffffffffffffffe0 <_end+0xffffffffefffff98> + 452a: fffe00fb .4byte 0xfffe00fb + 452e: fd03f9fb .4byte 0xfd03f9fb + 4532: ffff .2byte 0xffff + 4534: 0205 .2byte 0x205 + 4536: 03fe .2byte 0x3fe + 4538: 0305 .2byte 0x305 + 453a: fbff0103 lb sp,-65(t5) + 453e: f906 .2byte 0xf906 + 4540: 0204 .2byte 0x204 + 4542: 0306 .2byte 0x306 + 4544: fb00 vmsge.vx v22,v0,ra,v0.t + 4546: faff .2byte 0xfaff + 4548: fdff .2byte 0xfdff + 454a: f8ff .2byte 0xf8ff + 454c: f8fc .2byte 0xf8fc + 454e: fff9 .2byte 0xfff9 + 4550: 06fa .2byte 0x6fa + 4552: fc04 .2byte 0xfc04 + 4554: 04f9 .2byte 0x4f9 + 4556: 0206 .2byte 0x206 + 4558: fbfa .2byte 0xfbfa + 455a: f902 vmsge.vx v18,v0,ra,v0.t + 455c: fcfc .2byte 0xfcfc + 455e: 0500 vmsge.vx v10,v0,zero,v0.t + 4560: 04fc .2byte 0x4fc + 4562: 0000 vmsge.vx v0,v0,zero,v0.t + 4564: fd05 .2byte 0xfd05 + 4566: 0004 .2byte 0x4 + 4568: 06fe .2byte 0x6fe + 456a: fcfa .2byte 0xfcfa + 456c: fb00 vmsge.vx v22,v0,ra,v0.t + 456e: f9fa .2byte 0xf9fa + 4570: faff .2byte 0xfaff + 4572: fdfd .2byte 0xfdfd + 4574: 0101 vmsge.vx v2,v0,zero,v0.t + 4576: fbfc0403 lb s0,-65(s8) + 457a: fb06 .2byte 0xfb06 + 457c: 05fe .2byte 0x5fe + 457e: 0005 .2byte 0x5 + 4580: fdf8 .2byte 0xfdf8 + 4582: 06f8 .2byte 0x6f8 + 4584: 03ff 05fb fcfb f8fa .byte 0xff, 0x03, 0xfb, 0x05, 0xfb, 0xfc, 0xfa, 0xf8, 0xf9, 0xf9 + 458c: f9f9 + 458e: f9fcfa03 vmsge.vx v20,v31,s9,v0.t + 4592: 0201 vmsge.vx v4,v0,zero,v0.t + 4594: fbf8 .2byte 0xfbf8 + 4596: ff02 vmsge.vx v30,v0,ra,v0.t + 4598: ff01 vmsge.vx v30,v0,ra,v0.t + 459a: 05fa .2byte 0x5fa + 459c: 05fa .2byte 0x5fa + 459e: fa05 .2byte 0xfa05 + 45a0: fd05 .2byte 0xfd05 + 45a2: fafa .2byte 0xfafa + 45a4: fffd .2byte 0xfffd + 45a6: fcf8 .2byte 0xfcf8 + 45a8: fd02 vmsge.vx v26,v0,ra,v0.t + 45aa: 05fb05fb .4byte 0x5fb05fb + 45ae: f8fc .2byte 0xf8fc + 45b0: 01f9 .2byte 0x1f9 + 45b2: fd00 vmsge.vx v26,v0,ra,v0.t + 45b4: 0601 vmsge.vx v12,v0,zero,v0.t + 45b6: ff02 vmsge.vx v30,v0,ra,v0.t + 45b8: 0501 vmsge.vx v10,v0,zero,v0.t + 45ba: 0402 vmsge.vx v8,v0,zero,v0.t + 45bc: fe04 .2byte 0xfe04 + 45be: 0301 vmsge.vx v6,v0,zero,v0.t + 45c0: 02fe .2byte 0x2fe + 45c2: fbff .2byte 0xfbff + 45c4: 06f904fb .4byte 0x6f904fb + 45c8: 01fc .2byte 0x1fc + 45ca: f801 vmsge.vx v16,v0,ra,v0.t + 45cc: 0602 vmsge.vx v12,v0,zero,v0.t + 45ce: fff9 .2byte 0xfff9 + 45d0: 05fcfb03 vmsge.vx v22,v31,s9,v0.t + 45d4: 01f9 .2byte 0x1f9 + 45d6: 01fc .2byte 0x1fc + 45d8: 03fd .2byte 0x3fd + 45da: 01fc .2byte 0x1fc + 45dc: 0605 .2byte 0x605 + 45de: 04fd .2byte 0x4fd + 45e0: 00fa .2byte 0xfa + 45e2: 06040203 lb tp,96(s0) + 45e6: 04f8 .2byte 0x4f8 + 45e8: f9ff .2byte 0xf9ff + 45ea: fdfc .2byte 0xfdfc + 45ec: fefc .2byte 0xfefc + 45ee: ff000103 lb sp,-16(zero) # fffffffffffffff0 <_end+0xffffffffefffffa8> + 45f2: f802 vmsge.vx v16,v0,ra,v0.t + 45f4: 06f903fb .4byte 0x6f903fb + 45f8: f905 .2byte 0xf905 + 45fa: ff02 vmsge.vx v30,v0,ra,v0.t + 45fc: fff8 .2byte 0xfff8 + 45fe: fbfc .2byte 0xfbfc + 4600: fb06 .2byte 0xfb06 + 4602: fd00 vmsge.vx v26,v0,ra,v0.t + 4604: 0302 vmsge.vx v6,v0,zero,v0.t + 4606: fbff .2byte 0xfbff + 4608: 00ff 03fd f9f9 fbf9 .byte 0xff, 0x00, 0xfd, 0x03, 0xf9, 0xf9, 0xf9, 0xfb, 0x00, 0xf8 + 4610: f800 + 4612: 01fe .2byte 0x1fe + 4614: 06fd .2byte 0x6fd + 4616: fefe .2byte 0xfefe + 4618: f8ff .2byte 0xf8ff + 461a: 01fa .2byte 0x1fa + 461c: 0501 vmsge.vx v10,v0,zero,v0.t + 461e: 0205 .2byte 0x205 + 4620: fd00 vmsge.vx v26,v0,ra,v0.t + 4622: fafc .2byte 0xfafc + 4624: 06ff 01f8 f803 f9f9 .byte 0xff, 0x06, 0xf8, 0x01, 0x03, 0xf8, 0xf9, 0xf9, 0xff, 0xfb + 462c: fbff + 462e: fc02fcfb .4byte 0xfc02fcfb + 4632: 01fbfc03 vmsge.vx v24,v31,s7,v0.t + 4636: 05ff 00fe 03f8 f8fe .byte 0xff, 0x05, 0xfe, 0x00, 0xf8, 0x03, 0xfe, 0xf8, 0xfb, 0x01 + 463e: 01fb + 4640: fffa .2byte 0xfffa + 4642: 0501 vmsge.vx v10,v0,zero,v0.t + 4644: ff06 .2byte 0xff06 + 4646: f9fd .2byte 0xf9fd + 4648: 0106 .2byte 0x106 + 464a: 0606 .2byte 0x606 + 464c: f8f8 .2byte 0xf8f8 + 464e: fefa .2byte 0xfefa + 4650: fe01 vmsge.vx v28,v0,ra,v0.t + 4652: 06ff0103 lb sp,111(t5) + 4656: fe02f803 vmsge.vx v16,v0,t0 + 465a: 0601 vmsge.vx v12,v0,zero,v0.t + 465c: 00ff fcf8 05fb 04ff .byte 0xff, 0x00, 0xf8, 0xfc, 0xfb, 0x05, 0xff, 0x04, 0x04, 0x02 + 4664: 0204 + 4666: 06f8 .2byte 0x6f8 + 4668: f800 vmsge.vx v16,v0,ra,v0.t + 466a: fbfd .2byte 0xfbfd + 466c: fbff .2byte 0xfbff + 466e: 05f9 .2byte 0x5f9 + 4670: fc04 .2byte 0xfc04 + 4672: 0505 .2byte 0x505 + 4674: fafd .2byte 0xfafd + 4676: 0301 vmsge.vx v6,v0,zero,v0.t + 4678: fbfc .2byte 0xfbfc + 467a: 06f8 .2byte 0x6f8 + 467c: fafc0203 lb tp,-81(s8) + 4680: f8000203 lb tp,-128(zero) # ffffffffffffff80 <_end+0xffffffffefffff38> + 4684: 0102 vmsge.vx v2,v0,zero,v0.t + 4686: 06fc .2byte 0x6fc + 4688: 0306 .2byte 0x306 + 468a: ff01 vmsge.vx v30,v0,ra,v0.t + 468c: fd06 .2byte 0xfd06 + 468e: 04fe .2byte 0x4fe + 4690: f9fa .2byte 0xf9fa + 4692: f8f8 .2byte 0xf8f8 + 4694: fcfa .2byte 0xfcfa + 4696: 04f8 .2byte 0x4f8 + 4698: 0100 vmsge.vx v2,v0,zero,v0.t + 469a: fa00 vmsge.vx v20,v0,ra,v0.t + 469c: fd02 vmsge.vx v26,v0,ra,v0.t + 469e: f900 vmsge.vx v18,v0,ra,v0.t + 46a0: 03fa .2byte 0x3fa + 46a2: 01fc .2byte 0x1fc + 46a4: 0001 vmsge.vx v0,v0,zero,v0.t + 46a6: 04fc .2byte 0x4fc + 46a8: f806 .2byte 0xf806 + 46aa: f804 .2byte 0xf804 + 46ac: f8fe .2byte 0xf8fe + 46ae: 00fa .2byte 0xfa + 46b0: 03fa .2byte 0x3fa + 46b2: 06f8 .2byte 0x6f8 + 46b4: 0301 vmsge.vx v6,v0,zero,v0.t + 46b6: fc00 vmsge.vx v24,v0,ra,v0.t + 46b8: fafc .2byte 0xfafc + 46ba: 0002 vmsge.vx v0,v0,zero,v0.t + 46bc: f904 .2byte 0xf904 + 46be: ff06 .2byte 0xff06 + 46c0: 01f9 .2byte 0x1f9 + 46c2: f8fc .2byte 0xf8fc + 46c4: 05f9 .2byte 0x5f9 + 46c6: 03f9fdfb .4byte 0x3f9fdfb + 46ca: 00f9 .2byte 0xf9 + 46cc: 0602 vmsge.vx v12,v0,zero,v0.t + 46ce: fbfa .2byte 0xfbfa + 46d0: fafc .2byte 0xfafc + 46d2: 0300 vmsge.vx v6,v0,zero,v0.t + 46d4: fb02 vmsge.vx v22,v0,ra,v0.t + 46d6: 010504fb .4byte 0x10504fb + 46da: 06fe .2byte 0x6fe + 46dc: f901 vmsge.vx v18,v0,ra,v0.t + 46de: fe02 vmsge.vx v28,v0,ra,v0.t + 46e0: fb04 .2byte 0xfb04 + 46e2: fc03fffb .4byte 0xfc03fffb + 46e6: fa06 .2byte 0xfa06 + 46e8: fc06 .2byte 0xfc06 + 46ea: fdff .2byte 0xfdff + 46ec: 05fd .2byte 0x5fd + 46ee: 06f8 .2byte 0x6f8 + 46f0: 03fc .2byte 0x3fc + 46f2: 03fd .2byte 0x3fd + 46f4: 04f8 .2byte 0x4f8 + 46f6: 0404 .2byte 0x404 + 46f8: fc00 vmsge.vx v24,v0,ra,v0.t + 46fa: fffa0203 lb tp,-1(s4) + 46fe: 0405 .2byte 0x405 + 4700: fd04 .2byte 0xfd04 + 4702: 05f9 .2byte 0x5f9 + 4704: 05040203 lb tp,80(s0) + 4708: 0300 vmsge.vx v6,v0,zero,v0.t + 470a: 0105fefb .4byte 0x105fefb + 470e: fcfa .2byte 0xfcfa + 4710: 01fe0603 lb a2,31(t3) + 4714: 0406 .2byte 0x406 + 4716: faf9 .2byte 0xfaf9 + 4718: f9fe .2byte 0xf9fe + 471a: f900 vmsge.vx v18,v0,ra,v0.t + 471c: fcfd .2byte 0xfcfd + 471e: fcfc .2byte 0xfcfc + 4720: f801 vmsge.vx v16,v0,ra,v0.t + 4722: 01fe .2byte 0x1fe + 4724: fef9 .2byte 0xfef9 + 4726: 01fa .2byte 0x1fa + 4728: 0104 .2byte 0x104 + 472a: 00f90203 lb tp,15(s2) + 472e: ff02 vmsge.vx v30,v0,ra,v0.t + 4730: 0501f803 vmsge.vx v16,v16,gp,v0.t + 4734: 0001 vmsge.vx v0,v0,zero,v0.t + 4736: 06fa .2byte 0x6fa + 4738: fef9 .2byte 0xfef9 + 473a: fdf8 .2byte 0xfdf8 + 473c: 0200fc03 vmsge.vx v24,v0,ra + 4740: fd01 vmsge.vx v26,v0,ra,v0.t + 4742: 02fd .2byte 0x2fd + 4744: fa04 .2byte 0xfa04 + 4746: fc01 vmsge.vx v24,v0,ra,v0.t + 4748: f9f9 .2byte 0xf9f9 + 474a: ff00 vmsge.vx v30,v0,ra,v0.t + 474c: f904 .2byte 0xf904 + 474e: fd00 vmsge.vx v26,v0,ra,v0.t + 4750: f8fbfe03 vmsge.vx v28,v15,s7,v0.t + 4754: 0305 .2byte 0x305 + 4756: 05fc .2byte 0x5fc + 4758: 0004fb03 vmsge.vx v22,v0,s1,v0.t + 475c: fbfd .2byte 0xfbfd + 475e: fd01 vmsge.vx v26,v0,ra,v0.t + 4760: 0406 .2byte 0x406 + 4762: fbf8 .2byte 0xfbf8 + 4764: fb01 vmsge.vx v22,v0,ra,v0.t + 4766: 03fa .2byte 0x3fa + 4768: fef9 .2byte 0xfef9 + 476a: 0100 vmsge.vx v2,v0,zero,v0.t + 476c: 03fc .2byte 0x3fc + 476e: 05f8 .2byte 0x5f8 + 4770: fe02 vmsge.vx v28,v0,ra,v0.t + 4772: 0100 vmsge.vx v2,v0,zero,v0.t + 4774: fbfe .2byte 0xfbfe + 4776: fe06 .2byte 0xfe06 + 4778: fffc01fb .4byte 0xfffc01fb + 477c: 0104 .2byte 0x104 + 477e: f9fc .2byte 0xf9fc + 4780: f804 .2byte 0xf804 + 4782: 00fe .2byte 0xfe + 4784: fe06f9fb .4byte 0xfe06f9fb + 4788: fa00 vmsge.vx v20,v0,ra,v0.t + 478a: 0402 vmsge.vx v8,v0,zero,v0.t + 478c: fef9 .2byte 0xfef9 + 478e: 0400 vmsge.vx v8,v0,zero,v0.t + 4790: ff01 vmsge.vx v30,v0,ra,v0.t + 4792: 0005 .2byte 0x5 + 4794: 0400f903 vmsge.vx v18,v0,ra,v0.t + 4798: 04f9 .2byte 0x4f9 + 479a: f900 vmsge.vx v18,v0,ra,v0.t + 479c: 0300 vmsge.vx v6,v0,zero,v0.t + 479e: fdf9 .2byte 0xfdf9 + 47a0: 03030103 lb sp,48(t1) + 47a4: f9fb0603 lb a2,-97(s6) + 47a8: faf9 .2byte 0xfaf9 + 47aa: 05f8 .2byte 0x5f8 + 47ac: 01ff 0503 0201 fe03 .byte 0xff, 0x01, 0x03, 0x05, 0x01, 0x02, 0x03, 0xfe, 0xfb, 0x01 + 47b4: 01fb + 47b6: ffff .2byte 0xffff + 47b8: fc04 .2byte 0xfc04 + 47ba: fc06 .2byte 0xfc06 + 47bc: fd05 .2byte 0xfd05 + 47be: 05fe .2byte 0x5fe + 47c0: fbfe .2byte 0xfbfe + 47c2: 0000 vmsge.vx v0,v0,zero,v0.t + 47c4: fff9 .2byte 0xfff9 + 47c6: ffff .2byte 0xffff + 47c8: fc01 vmsge.vx v24,v0,ra,v0.t + 47ca: fb00 vmsge.vx v22,v0,ra,v0.t + 47cc: fd05 .2byte 0xfd05 + 47ce: fefa .2byte 0xfefa + 47d0: 05ff f800 f801 fbfe .byte 0xff, 0x05, 0x00, 0xf8, 0x01, 0xf8, 0xfe, 0xfb, 0xf9, 0xfa + 47d8: faf9 + 47da: f802 vmsge.vx v16,v0,ra,v0.t + 47dc: 04fe .2byte 0x4fe + 47de: 01ff 00f8 fb03 fbff .byte 0xff, 0x01, 0xf8, 0x00, 0x03, 0xfb, 0xff, 0xfb, 0x01, 0xfc + 47e6: fc01 + 47e8: fe06 .2byte 0xfe06 + 47ea: 03fd .2byte 0x3fd + 47ec: fdf9 .2byte 0xfdf9 + 47ee: fa00 vmsge.vx v20,v0,ra,v0.t + 47f0: fd02fb03 vmsge.vx v22,v16,t0,v0.t + 47f4: fef9 .2byte 0xfef9 + 47f6: 06fe .2byte 0x6fe + 47f8: 01f8 .2byte 0x1f8 + 47fa: fcf8 .2byte 0xfcf8 + 47fc: 0205 .2byte 0x205 + 47fe: bdf00403 lb s0,-1057(zero) # fffffffffffffbdf <_end+0xffffffffeffffb97> + 4802: ffff .2byte 0xffff + 4804: be34 .2byte 0xbe34 + 4806: ffff .2byte 0xffff + 4808: be78 .2byte 0xbe78 + 480a: ffff .2byte 0xffff + 480c: bd88 .2byte 0xbd88 + 480e: ffff .2byte 0xffff + 4810: bebc .2byte 0xbebc + 4812: ffff .2byte 0xffff + 4814: bf00 vmsge.vx v30,v0,ra,v0.t + 4816: ffff .2byte 0xffff + 4818: bf44 .2byte 0xbf44 + 481a: ffff .2byte 0xffff + 481c: bf88 .2byte 0xbf88 + 481e: ffff .2byte 0xffff + 4820: bd88 .2byte 0xbd88 + 4822: ffff .2byte 0xffff + 4824: bd88 .2byte 0xbd88 + 4826: ffff .2byte 0xffff + 4828: bd88 .2byte 0xbd88 + 482a: ffff .2byte 0xffff + 482c: bfcc .2byte 0xbfcc + 482e: ffff .2byte 0xffff Disassembly of section .rodata.str1.8: -00000000000044b0 <.rodata.str1.8>: - 44b0: 4c435943 vmsge.vx v18,v4,t1,v0.t - 44b4: 3a45 .2byte 0x3a45 - 44b6: 0020 vmsge.vx v0,v0,zero,v0.t - 44b8: 490a .2byte 0x490a - 44ba: 534e .2byte 0x534e - 44bc: 5254 .2byte 0x5254 - 44be: 5445 .2byte 0x5445 - 44c0: 203a .2byte 0x203a - 44c2: 0000 vmsge.vx v0,v0,zero,v0.t - 44c4: 0000 vmsge.vx v0,v0,zero,v0.t - 44c6: 0000 vmsge.vx v0,v0,zero,v0.t - 44c8: 4d0a .2byte 0x4d0a - 44ca: 5048 .2byte 0x5048 - 44cc: 434d .2byte 0x434d - 44ce: 544e554f .4byte 0x544e554f - 44d2: 5245 .2byte 0x5245 - 44d4: 00203a33 snez s4,sp - 44d8: 000a .2byte 0xa - 44da: 0000 vmsge.vx v0,v0,zero,v0.t - 44dc: 0000 vmsge.vx v0,v0,zero,v0.t - 44de: 0000 vmsge.vx v0,v0,zero,v0.t - 44e0: 6c637963 bgeu t1,t1,4bb2 <_tbss_end+0xd2> - 44e4: 3a65 .2byte 0x3a65 - 44e6: 0020 vmsge.vx v0,v0,zero,v0.t - 44e8: 690a .2byte 0x690a - 44ea: 736e .2byte 0x736e - 44ec: 7274 .2byte 0x7274 - 44ee: 7465 .2byte 0x7465 - 44f0: 203a .2byte 0x203a - 44f2: 0000 vmsge.vx v0,v0,zero,v0.t - 44f4: 0000 vmsge.vx v0,v0,zero,v0.t - 44f6: 0000 vmsge.vx v0,v0,zero,v0.t - 44f8: 7845 .2byte 0x7845 - 44fa: 7469 .2byte 0x7469 - 44fc: 6320 vmsge.vx v6,v0,zero,v0.t - 44fe: 3a65646f jal s0,5a8a4 <__global_pointer$+0x55a4c> - 4502: 0020 vmsge.vx v0,v0,zero,v0.t - 4504: 0000 vmsge.vx v0,v0,zero,v0.t - 4506: 0000 vmsge.vx v0,v0,zero,v0.t - 4508: 4e49 .2byte 0x4e49 - 450a: 55525453 .4byte 0x55525453 - 450e: 4f495443 vmsge.vx v8,v20,s2 - 4512: 204e .2byte 0x204e - 4514: 4441 vmsge.vx v8,v0,zero,v0.t - 4516: 5244 .2byte 0x5244 - 4518: 5345 .2byte 0x5345 - 451a: 494d2053 .4byte 0x494d2053 - 451e: 494c4153 .4byte 0x494c4153 - 4522: 44454e47 .4byte 0x44454e47 - 4526: 6120 vmsge.vx v2,v0,zero,v0.t - 4528: 2074 .2byte 0x2074 - 452a: 4350 .2byte 0x4350 - 452c: 203a .2byte 0x203a - 452e: 0000 vmsge.vx v0,v0,zero,v0.t - 4530: 4e49 .2byte 0x4e49 - 4532: 55525453 .4byte 0x55525453 - 4536: 4f495443 vmsge.vx v8,v20,s2 - 453a: 204e .2byte 0x204e - 453c: 4341 vmsge.vx v6,v0,zero,v0.t - 453e: 53534543 vmsge.vx v10,v21,t1 - 4542: 4620 vmsge.vx v12,v0,zero,v0.t - 4544: 5541 vmsge.vx v10,v0,zero,v0.t - 4546: 544c .2byte 0x544c - 4548: 6120 vmsge.vx v2,v0,zero,v0.t - 454a: 2074 .2byte 0x2074 - 454c: 4350 .2byte 0x4350 - 454e: 203a .2byte 0x203a +0000000000004830 <.rodata.str1.8>: + 4830: 4c435943 vmsge.vx v18,v4,t1,v0.t + 4834: 3a45 .2byte 0x3a45 + 4836: 0020 vmsge.vx v0,v0,zero,v0.t + 4838: 490a .2byte 0x490a + 483a: 534e .2byte 0x534e + 483c: 5254 .2byte 0x5254 + 483e: 5445 .2byte 0x5445 + 4840: 203a .2byte 0x203a + 4842: 0000 vmsge.vx v0,v0,zero,v0.t + 4844: 0000 vmsge.vx v0,v0,zero,v0.t + 4846: 0000 vmsge.vx v0,v0,zero,v0.t + 4848: 4d0a .2byte 0x4d0a + 484a: 5048 .2byte 0x5048 + 484c: 434d .2byte 0x434d + 484e: 544e554f .4byte 0x544e554f + 4852: 5245 .2byte 0x5245 + 4854: 00203a33 snez s4,sp + 4858: 000a .2byte 0xa + 485a: 0000 vmsge.vx v0,v0,zero,v0.t + 485c: 0000 vmsge.vx v0,v0,zero,v0.t + 485e: 0000 vmsge.vx v0,v0,zero,v0.t + 4860: 6c637963 bgeu t1,t1,4f32 + 4864: 3a65 .2byte 0x3a65 + 4866: 0020 vmsge.vx v0,v0,zero,v0.t + 4868: 690a .2byte 0x690a + 486a: 736e .2byte 0x736e + 486c: 7274 .2byte 0x7274 + 486e: 7465 .2byte 0x7465 + 4870: 203a .2byte 0x203a + 4872: 0000 vmsge.vx v0,v0,zero,v0.t + 4874: 0000 vmsge.vx v0,v0,zero,v0.t + 4876: 0000 vmsge.vx v0,v0,zero,v0.t + 4878: 7845 .2byte 0x7845 + 487a: 7469 .2byte 0x7469 + 487c: 6320 vmsge.vx v6,v0,zero,v0.t + 487e: 3a65646f jal s0,5ac24 <_tbss_end+0x55a44> + 4882: 0020 vmsge.vx v0,v0,zero,v0.t + 4884: 0000 vmsge.vx v0,v0,zero,v0.t + 4886: 0000 vmsge.vx v0,v0,zero,v0.t + 4888: 4e49 .2byte 0x4e49 + 488a: 55525453 .4byte 0x55525453 + 488e: 4f495443 vmsge.vx v8,v20,s2 + 4892: 204e .2byte 0x204e + 4894: 4441 vmsge.vx v8,v0,zero,v0.t + 4896: 5244 .2byte 0x5244 + 4898: 5345 .2byte 0x5345 + 489a: 494d2053 .4byte 0x494d2053 + 489e: 494c4153 .4byte 0x494c4153 + 48a2: 44454e47 .4byte 0x44454e47 + 48a6: 6120 vmsge.vx v2,v0,zero,v0.t + 48a8: 2074 .2byte 0x2074 + 48aa: 4350 .2byte 0x4350 + 48ac: 203a .2byte 0x203a + 48ae: 0000 vmsge.vx v0,v0,zero,v0.t + 48b0: 4e49 .2byte 0x4e49 + 48b2: 55525453 .4byte 0x55525453 + 48b6: 4f495443 vmsge.vx v8,v20,s2 + 48ba: 204e .2byte 0x204e + 48bc: 4341 vmsge.vx v6,v0,zero,v0.t + 48be: 53534543 vmsge.vx v10,v21,t1 + 48c2: 4620 vmsge.vx v12,v0,zero,v0.t + 48c4: 5541 vmsge.vx v10,v0,zero,v0.t + 48c6: 544c .2byte 0x544c + 48c8: 6120 vmsge.vx v2,v0,zero,v0.t + 48ca: 2074 .2byte 0x2074 + 48cc: 4350 .2byte 0x4350 + 48ce: 203a .2byte 0x203a ... - 4558: 4c49 .2byte 0x4c49 - 455a: 454c .2byte 0x454c - 455c: 204c4147 .4byte 0x204c4147 - 4560: 4e49 .2byte 0x4e49 - 4562: 55525453 .4byte 0x55525453 - 4566: 4f495443 vmsge.vx v8,v20,s2 - 456a: 204e .2byte 0x204e - 456c: 7461 vmsge.vx v8,v0,zero,v0.t - 456e: 5020 vmsge.vx v0,v0,zero,v0.t - 4570: 00203a43 vmsge.vx v20,v2,zero,v0.t - 4574: 0000 vmsge.vx v0,v0,zero,v0.t - 4576: 0000 vmsge.vx v0,v0,zero,v0.t - 4578: 4f4c .2byte 0x4f4c - 457a: 4441 vmsge.vx v8,v0,zero,v0.t - 457c: 4120 vmsge.vx v2,v0,zero,v0.t - 457e: 4444 .2byte 0x4444 - 4580: 4552 .2byte 0x4552 - 4582: 4d205353 .4byte 0x4d205353 - 4586: 5349 .2byte 0x5349 - 4588: 4c41 vmsge.vx v24,v0,zero,v0.t - 458a: 4749 .2byte 0x4749 - 458c: 454e .2byte 0x454e - 458e: 2044 .2byte 0x2044 - 4590: 7461 vmsge.vx v8,v0,zero,v0.t - 4592: 5020 vmsge.vx v0,v0,zero,v0.t - 4594: 00203a43 vmsge.vx v20,v2,zero,v0.t - 4598: 4f4c .2byte 0x4f4c - 459a: 4441 vmsge.vx v8,v0,zero,v0.t - 459c: 4120 vmsge.vx v2,v0,zero,v0.t - 459e: 53454343 vmsge.vx v6,v20,a0 - 45a2: 41462053 .4byte 0x41462053 - 45a6: 4c55 .2byte 0x4c55 - 45a8: 2054 .2byte 0x2054 - 45aa: 7461 vmsge.vx v8,v0,zero,v0.t - 45ac: 5020 vmsge.vx v0,v0,zero,v0.t - 45ae: 00203a43 vmsge.vx v20,v2,zero,v0.t - 45b2: 0000 vmsge.vx v0,v0,zero,v0.t - 45b4: 0000 vmsge.vx v0,v0,zero,v0.t - 45b6: 0000 vmsge.vx v0,v0,zero,v0.t - 45b8: 524f5453 .4byte 0x524f5453 - 45bc: 2045 .2byte 0x2045 - 45be: 4441 vmsge.vx v8,v0,zero,v0.t - 45c0: 5244 .2byte 0x5244 - 45c2: 5345 .2byte 0x5345 - 45c4: 494d2053 .4byte 0x494d2053 - 45c8: 494c4153 .4byte 0x494c4153 - 45cc: 44454e47 .4byte 0x44454e47 - 45d0: 6120 vmsge.vx v2,v0,zero,v0.t - 45d2: 2074 .2byte 0x2074 - 45d4: 4350 .2byte 0x4350 - 45d6: 203a .2byte 0x203a + 48d8: 4c49 .2byte 0x4c49 + 48da: 454c .2byte 0x454c + 48dc: 204c4147 .4byte 0x204c4147 + 48e0: 4e49 .2byte 0x4e49 + 48e2: 55525453 .4byte 0x55525453 + 48e6: 4f495443 vmsge.vx v8,v20,s2 + 48ea: 204e .2byte 0x204e + 48ec: 7461 vmsge.vx v8,v0,zero,v0.t + 48ee: 5020 vmsge.vx v0,v0,zero,v0.t + 48f0: 00203a43 vmsge.vx v20,v2,zero,v0.t + 48f4: 0000 vmsge.vx v0,v0,zero,v0.t + 48f6: 0000 vmsge.vx v0,v0,zero,v0.t + 48f8: 4f4c .2byte 0x4f4c + 48fa: 4441 vmsge.vx v8,v0,zero,v0.t + 48fc: 4120 vmsge.vx v2,v0,zero,v0.t + 48fe: 4444 .2byte 0x4444 + 4900: 4552 .2byte 0x4552 + 4902: 4d205353 .4byte 0x4d205353 + 4906: 5349 .2byte 0x5349 + 4908: 4c41 vmsge.vx v24,v0,zero,v0.t + 490a: 4749 .2byte 0x4749 + 490c: 454e .2byte 0x454e + 490e: 2044 .2byte 0x2044 + 4910: 7461 vmsge.vx v8,v0,zero,v0.t + 4912: 5020 vmsge.vx v0,v0,zero,v0.t + 4914: 00203a43 vmsge.vx v20,v2,zero,v0.t + 4918: 4f4c .2byte 0x4f4c + 491a: 4441 vmsge.vx v8,v0,zero,v0.t + 491c: 4120 vmsge.vx v2,v0,zero,v0.t + 491e: 53454343 vmsge.vx v6,v20,a0 + 4922: 41462053 .4byte 0x41462053 + 4926: 4c55 .2byte 0x4c55 + 4928: 2054 .2byte 0x2054 + 492a: 7461 vmsge.vx v8,v0,zero,v0.t + 492c: 5020 vmsge.vx v0,v0,zero,v0.t + 492e: 00203a43 vmsge.vx v20,v2,zero,v0.t + 4932: 0000 vmsge.vx v0,v0,zero,v0.t + 4934: 0000 vmsge.vx v0,v0,zero,v0.t + 4936: 0000 vmsge.vx v0,v0,zero,v0.t + 4938: 524f5453 .4byte 0x524f5453 + 493c: 2045 .2byte 0x2045 + 493e: 4441 vmsge.vx v8,v0,zero,v0.t + 4940: 5244 .2byte 0x5244 + 4942: 5345 .2byte 0x5345 + 4944: 494d2053 .4byte 0x494d2053 + 4948: 494c4153 .4byte 0x494c4153 + 494c: 44454e47 .4byte 0x44454e47 + 4950: 6120 vmsge.vx v2,v0,zero,v0.t + 4952: 2074 .2byte 0x2074 + 4954: 4350 .2byte 0x4350 + 4956: 203a .2byte 0x203a ... - 45e0: 524f5453 .4byte 0x524f5453 - 45e4: 2045 .2byte 0x2045 - 45e6: 4341 vmsge.vx v6,v0,zero,v0.t - 45e8: 53534543 vmsge.vx v10,v21,t1 - 45ec: 4620 vmsge.vx v12,v0,zero,v0.t - 45ee: 5541 vmsge.vx v10,v0,zero,v0.t - 45f0: 544c .2byte 0x544c - 45f2: 6120 vmsge.vx v2,v0,zero,v0.t - 45f4: 2074 .2byte 0x2074 - 45f6: 4350 .2byte 0x4350 - 45f8: 203a .2byte 0x203a - 45fa: 0000 vmsge.vx v0,v0,zero,v0.t - 45fc: 0000 vmsge.vx v0,v0,zero,v0.t - 45fe: 0000 vmsge.vx v0,v0,zero,v0.t - 4600: 4345 .2byte 0x4345 - 4602: 4c41 vmsge.vx v24,v0,zero,v0.t - 4604: 204c .2byte 0x204c - 4606: 5246 .2byte 0x5246 - 4608: 4d204d4f .4byte 0x4d204d4f - 460c: 4d2d .2byte 0x4d2d - 460e: 2045444f .4byte 0x2045444f - 4612: 7461 vmsge.vx v8,v0,zero,v0.t - 4614: 5020 vmsge.vx v0,v0,zero,v0.t - 4616: 00203a43 vmsge.vx v20,v2,zero,v0.t - 461a: 0000 vmsge.vx v0,v0,zero,v0.t - 461c: 0000 vmsge.vx v0,v0,zero,v0.t - 461e: 0000 vmsge.vx v0,v0,zero,v0.t - 4620: 4e55 .2byte 0x4e55 - 4622: 574f4e4b .4byte 0x574f4e4b - 4626: 204e .2byte 0x204e - 4628: 5845 .2byte 0x5845 - 462a: 54504543 vmsge.vx v10,v5,zero,v0.t - 462e: 4f49 .2byte 0x4f49 - 4630: 204e .2byte 0x204e - 4632: 7461 vmsge.vx v8,v0,zero,v0.t - 4634: 5020 vmsge.vx v0,v0,zero,v0.t - 4636: 00203a43 vmsge.vx v20,v2,zero,v0.t - 463a: 0000 vmsge.vx v0,v0,zero,v0.t - 463c: 0000 vmsge.vx v0,v0,zero,v0.t - 463e: 0000 vmsge.vx v0,v0,zero,v0.t - 4640: 430a .2byte 0x430a - 4642: 4548 .2byte 0x4548 - 4644: 4d204b43 vmsge.vx v22,v18,zero,v0.t - 4648: 53554143 vmsge.vx v2,v21,a0 - 464c: 2045 .2byte 0x2045 - 464e: 6e69 .2byte 0x6e69 - 4650: 5220 vmsge.vx v4,v0,zero,v0.t - 4652: 4c54 .2byte 0x4c54 + 4960: 524f5453 .4byte 0x524f5453 + 4964: 2045 .2byte 0x2045 + 4966: 4341 vmsge.vx v6,v0,zero,v0.t + 4968: 53534543 vmsge.vx v10,v21,t1 + 496c: 4620 vmsge.vx v12,v0,zero,v0.t + 496e: 5541 vmsge.vx v10,v0,zero,v0.t + 4970: 544c .2byte 0x544c + 4972: 6120 vmsge.vx v2,v0,zero,v0.t + 4974: 2074 .2byte 0x2074 + 4976: 4350 .2byte 0x4350 + 4978: 203a .2byte 0x203a + 497a: 0000 vmsge.vx v0,v0,zero,v0.t + 497c: 0000 vmsge.vx v0,v0,zero,v0.t + 497e: 0000 vmsge.vx v0,v0,zero,v0.t + 4980: 4345 .2byte 0x4345 + 4982: 4c41 vmsge.vx v24,v0,zero,v0.t + 4984: 204c .2byte 0x204c + 4986: 5246 .2byte 0x5246 + 4988: 4d204d4f .4byte 0x4d204d4f + 498c: 4d2d .2byte 0x4d2d + 498e: 2045444f .4byte 0x2045444f + 4992: 7461 vmsge.vx v8,v0,zero,v0.t + 4994: 5020 vmsge.vx v0,v0,zero,v0.t + 4996: 00203a43 vmsge.vx v20,v2,zero,v0.t + 499a: 0000 vmsge.vx v0,v0,zero,v0.t + 499c: 0000 vmsge.vx v0,v0,zero,v0.t + 499e: 0000 vmsge.vx v0,v0,zero,v0.t + 49a0: 4e55 .2byte 0x4e55 + 49a2: 574f4e4b .4byte 0x574f4e4b + 49a6: 204e .2byte 0x204e + 49a8: 5845 .2byte 0x5845 + 49aa: 54504543 vmsge.vx v10,v5,zero,v0.t + 49ae: 4f49 .2byte 0x4f49 + 49b0: 204e .2byte 0x204e + 49b2: 7461 vmsge.vx v8,v0,zero,v0.t + 49b4: 5020 vmsge.vx v0,v0,zero,v0.t + 49b6: 00203a43 vmsge.vx v20,v2,zero,v0.t + 49ba: 0000 vmsge.vx v0,v0,zero,v0.t + 49bc: 0000 vmsge.vx v0,v0,zero,v0.t + 49be: 0000 vmsge.vx v0,v0,zero,v0.t + 49c0: 430a .2byte 0x430a + 49c2: 4548 .2byte 0x4548 + 49c4: 4d204b43 vmsge.vx v22,v18,zero,v0.t + 49c8: 53554143 vmsge.vx v2,v21,a0 + 49cc: 2045 .2byte 0x2045 + 49ce: 6e69 .2byte 0x6e69 + 49d0: 5220 vmsge.vx v4,v0,zero,v0.t + 49d2: 4c54 .2byte 0x4c54 ... Disassembly of section .sdata: -0000000000004658 <__global_pointer$-0x800>: - 4658: 0101 vmsge.vx v2,v0,zero,v0.t - 465a: 0101 vmsge.vx v2,v0,zero,v0.t - 465c: 0101 vmsge.vx v2,v0,zero,v0.t - 465e: 0101 vmsge.vx v2,v0,zero,v0.t +00000000000049d8 <__global_pointer$-0x800>: + 49d8: 0101 vmsge.vx v2,v0,zero,v0.t + 49da: 0101 vmsge.vx v2,v0,zero,v0.t + 49dc: 0101 vmsge.vx v2,v0,zero,v0.t + 49de: 0101 vmsge.vx v2,v0,zero,v0.t Disassembly of section .bss: -0000000000004660 : +00000000000049e0 : ... -00000000000048a0 : +0000000000004de0 : ... Disassembly of section .tohost: diff --git a/src/main/resources/applications_vector/vector_matmul/vector_matmul.c b/src/main/resources/applications_vector/vector_matmul/vector_matmul.c index 77b58d0b..2bd4bfa9 100644 --- a/src/main/resources/applications_vector/vector_matmul/vector_matmul.c +++ b/src/main/resources/applications_vector/vector_matmul/vector_matmul.c @@ -1,34 +1,105 @@ #include "util.h" #define size_t long -#define N 12 +#define N 32 -const int array1[12][12] = {{-100, 0, 81, 84, 46, -95, -39, 12, 68, 89, -70, 94}, - {-40, 50, 110, 91, 75, 51, 85, 23, -110, -103, -104, 46}, - {-22, 104, 43, 67, -4, 57, -83, -38, -77, -80, -65, 34}, - {-42, -71, -128, 16, 1, 23, -13, -42, -31, -104, -116, 104}, - {126, -41, -16, -64, -20, -80, -10, 25, 35, 6, -89, -38}, - {80, -34, -84, 106, 114, 93, 119, -112, 22, 76, 109, -51}, - {84, -101, -10, -51, -54, 87, -22, -121, -116, 92, -74, 33}, - {23, -51, 97, -101, 119, -86, -19, 112, 70, -51, 24, 61}, - {31, 41, -125, -9, 79, -42, -110, -70, -35, -12, -23, -32}, - {-106, -104, 81, 51, 4, 74, 105, -71, -12, -114, 104, -40}, - {-72, -41, -92, -41, 84, -38, -60, 17, 125, -107, -78, -103}, - {-46, -53, 59, -85, 11, -38, -14, 93, 38, 20, -46, 10}}; -const int array2[12][12] = {{-47, 82, -37, -16, -35, 5, -124, 95, -54, 89, -85, 32}, - {87, -82, -90, -5, -28, -40, 54, 4, -14, 68, 114, -2}, - {55, -37, -93, -43, -104, 29, 21, 22, 27, 62, 34, 117}, - {-58, 113, 43, 24, -37, 5, 43, 109, -124, -125, -40, 86}, - {98, -62, 41, -79, -9, 103, -45, 102, 73, -106, 100, 49}, - {-58, 25, -50, 62, 125, 115, -80, 67, -49, 2, -30, -70}, - {39, 123, -30, -123, -8, 26, 67, -30, -68, 32, 15, 104}, - {-91, 60, 21, -98, 115, -60, 40, -43, 95, -52, 67, -56}, - {-8, -82, 28, -93, -68, -54, -9, -48, -11, 93, 16, 64}, - {17, -106, -70, -90, 35, 78, 97, -127, -78, -28, 125, 69}, - {44, -78, 26, 52, 97, -10, 62, -78, -110, -8, -126, 115}, - {-124, 18, 54, 41, -8, 26, -11, -128, 20, -100, -33, 1}}; -int resultArray[12][12] = {0}; -int answerArray[12][12] = {0}; +const signed char array1[32][32] = {{-2, 0, -2, -2, -6, -1, -8, 4, -5, 6, -8, 2, 0, -2, 0, 0, -8, -5, 5, 5, 2, 0, -4, -5, 4, -7, -7, 0, 1, 1, -6, -2}, + {-7, -7, 2, -3, 3, -4, -5, -6, -2, -7, 0, -4, -2, -3, -2, 5, -2, 0, 4, 4, -7, -7, -1, -4, -5, -5, -8, -2, -1, -7, 1, -1}, + {4, 2, 6, -7, -4, -5, 0, 2, 0, 3, 3, 1, -5, 1, -7, -2, -7, -6, -7, -2, -1, 6, -8, -5, 6, 1, 4, 0, 1, 0, 5, 5}, + {6, -8, 1, -6, 4, 4, -6, 3, -6, -5, -1, -7, -1, -7, 0, -7, 5, 0, -4, -6, -6, -1, -2, -5, 5, 4, -7, 4, 0, 6, 3, 4}, + {3, -8, -7, 5, 2, -8, 2, 3, 3, -2, 6, 6, -7, 6, 6, 1, 3, -7, -3, 2, 1, -7, -1, -1, -2, -8, 2, -3, -1, -5, 4, -4}, + {-1, 2, -6, 6, -4, 1, 3, -2, 5, 5, -4, 3, -1, -6, -6, -8, 1, 2, 1, -1, -1, 1, 1, 3, 6, 3, 0, -5, -7, -2, 1, -2}, + {-4, -3, -8, -8, -8, 4, 5, -8, -4, -7, 3, -4, -3, 5, -4, 6, 2, 3, -3, -3, -8, -7, -5, 0, 4, 6, 5, 3, -7, -3, 4, -8}, + {3, 4, -5, 3, 0, -4, -7, -3, -1, 0, -3, 1, -3, 2, 4, 2, -4, -7, -7, 4, 1, -5, 4, -6, 3, 3, 6, 0, -1, -4, -7, -7}, + {3, -4, 6, 5, -8, -8, 5, -3, -3, 4, -3, 3, 2, -2, -5, -6, -5, -3, -2, 3, 0, -6, -8, -8, -4, -3, 2, -3, 6, -7, -3, -3}, + {2, 5, 1, -5, -8, 5, 3, 0, 2, -2, -5, 0, -2, -1, -5, -7, 3, -3, -1, -1, 5, 2, -2, 3, 5, 3, 3, 1, -1, -5, 6, -7}, + {4, 2, 6, 3, 0, -5, -1, -6, -1, -3, -1, -8, -4, -8, -7, -1, -6, 6, 4, -4, -7, 4, 6, 2, -6, -5, 2, -7, -4, -4, 0, 5}, + {-4, 4, 0, 0, 5, -3, 4, 0, -2, 6, -6, -4, 0, -5, -6, -7, -1, -6, -3, -3, 1, 1, 3, 4, -4, -5, 6, -5, -2, 5, 5, 0}, + {-8, -3, -8, 6, -1, 3, -5, 5, -5, -4, -6, -8, -7, -7, 3, -6, -4, -7, 1, 2, -8, -5, 2, -1, 1, -1, -6, 5, -6, 5, 5, -6}, + {5, -3, -6, -6, -3, -1, -8, -4, 2, -3, -5, 5, -5, 5, -4, -8, -7, 1, 0, -3, 1, 6, 2, -1, 1, 5, 2, 4, 4, -2, 1, 3}, + {-2, 2, -1, -5, -5, 4, -7, 6, -4, 1, 1, -8, 2, 6, -7, -1, 3, -5, -4, 5, -7, 1, -4, 1, -3, 3, -4, 1, 5, 6, -3, 4}, + {-6, 0, 3, 2, 4, 6, -8, 4, -1, -7, -4, -3, -4, -2, 3, 1, 0, -1, 2, -8, -5, 3, -7, 6, 5, -7, 2, -1, -8, -1, -4, -5}, + {6, -5, 0, -3, 2, 3, -1, -5, -1, 0, -3, 3, -7, -7, -7, -5, 0, -8, -2, 1, -3, 6, -2, -2, -1, -8, -6, 1, 1, 5, 5, 2}, + {0, -3, -4, -6, -1, 6, -8, 1, 3, -8, -7, -7, -1, -5, -5, -4, 2, -4, 3, -4, -5, 1, -1, 5, -2, 0, -8, 3, -2, -8, -5, 1}, + {-6, -1, 1, 5, 6, -1, -3, -7, 6, 1, 6, 6, -8, -8, -6, -2, 1, -2, 3, 1, -1, 6, 3, -8, 2, -2, 1, 6, -1, 0, -8, -4}, + {-5, 5, -1, 4, 4, 2, -8, 6, 0, -8, -3, -5, -1, -5, -7, 5, 4, -4, 5, 5, -3, -6, 1, 3, -4, -5, -8, 6, 3, 2, -4, -6}, + {3, 2, 0, -8, 2, 1, -4, 6, 6, 3, 1, -1, 6, -3, -2, 4, -6, -7, -8, -8, -6, -4, -8, 4, 0, 1, 0, -6, 2, -3, 0, -7}, + {-6, 3, -4, 1, 1, 0, -4, 4, 6, -8, 4, -8, -2, -8, -6, 0, -6, 3, -8, 6, 1, 3, 0, -4, -4, -6, 2, 0, 4, -7, 6, -1}, + {-7, 1, -4, -8, -7, 5, -5, -3, -7, 3, -7, 0, 2, 6, -6, -5, -4, -6, 0, 3, 2, -5, -5, 4, 5, 1, -2, 6, 1, -7, 2, -2}, + {4, -5, -5, -1, 3, -4, 6, -6, 6, -4, -1, -3, -3, 5, -8, 6, -4, 3, -3, 3, -8, 4, 4, 4, 0, -4, 3, 2, -6, -1, 5, 4}, + {4, -3, -7, 5, 3, 2, 4, 5, 0, 3, -5, -2, 5, 1, -6, -4, 3, 6, -2, 1, 6, 4, -7, -6, -2, -7, 0, -7, -3, -4, -4, -4}, + {1, -8, -2, 1, -7, -2, -6, 1, 4, 1, 3, 2, -7, 0, 2, -1, 3, -8, 1, 5, 1, 0, -6, 6, -7, -2, -8, -3, 3, -4, 0, 2}, + {1, -3, -3, 2, 4, -6, 1, -4, -7, -7, 0, -1, 4, -7, 0, -3, 3, -2, -5, -8, 5, 3, -4, 5, 3, -5, 4, 0, -3, -5, 1, -3}, + {6, 4, -8, -5, 1, -5, -6, 3, -7, -2, 0, 1, -4, 3, -8, 5, 2, -2, 0, 1, -2, -5, 6, -2, -5, 1, -4, -1, 4, 1, -4, -7}, + {4, -8, -2, 0, -5, -7, 6, -2, 0, -6, 2, 4, -7, -2, 0, 4, 1, -1, 5, 0, 3, -7, 0, 4, -7, 4, 0, -7, 0, 3, -7, -3}, + {3, 1, 3, 3, 3, 6, -5, -7, -7, -6, -8, 5, -1, 1, 3, 5, 1, 2, 3, -2, -5, 1, -1, -1, 4, -4, 6, -4, 5, -3, -2, 5}, + {-2, -5, 0, 0, -7, -1, -1, -1, 1, -4, 0, -5, 5, -3, -6, -2, -1, 5, 0, -8, 1, -8, -2, -5, -7, -6, 2, -8, -2, 4, -1, 1}, + {-8, 0, 3, -5, -1, -5, 1, -4, 6, -2, -3, 3, -7, -3, 0, -6, 3, -5, 2, -3, -7, -2, -2, 6, -8, 1, -8, -4, 5, 2, 3, 4}}; +const signed char array2[32][32] = {{-1, -3, 4, -3, 1, 5, -2, -4, -6, 6, 4, -3, -6, -1, 5, 3, 0, 6, -8, 2, -4, -2, -3, -6, -8, 4, 3, -5, 2, -6, 6, 2}, + {-4, -3, 2, -1, 2, 3, -2, 0, -2, 1, 4, -2, 3, -6, -7, 5, -8, 6, 1, 6, -4, -2, -3, 3, 1, 1, 5, -1, 4, -4, 1, -5}, + {-1, -4, 5, 5, 5, 0, -2, 4, 6, 4, -4, -4, 2, -7, 6, -6, -8, -3, -5, -7, -3, 6, -3, 5, 5, 1, 3, 4, -4, 5, 5, -3}, + {5, -7, 5, 6, 5, 4, 2, -5, 0, 0, 3, -8, -4, -6, -7, -5, -3, 3, 4, 2, -8, -2, -5, 5, 2, -7, -8, -1, -2, 6, -6, -5}, + {6, -6, -3, -6, 6, 1, 4, 4, -4, 5, -5, -8, 0, -6, -4, 1, 0, -4, -6, 3, -4, -3, 4, 3, 2, -8, -6, 0, -8, -8, 2, 2}, + {3, -8, 2, -5, 1, -4, -1, -5, -2, -7, 6, 5, 2, 3, 5, 2, 1, -1, -7, 2, 4, 3, -6, -2, 5, -3, 5, 4, -4, 1, -5, 1}, + {0, 3, -1, -3, 0, 2, -5, -7, 2, 6, -6, -5, 2, -1, 6, -1, 5, 4, 0, 4, -6, -8, -5, 3, -4, 1, -1, 3, 2, 3, -6, -5}, + {-3, -1, -7, -1, -8, 3, -8, -6, -1, -1, 4, 1, 3, -7, -4, -5, -4, -1, 3, -7, 4, 2, 0, -4, 1, -5, -1, 6, -6, 4, 2, -4}, + {6, 1, 5, -8, -2, -6, -2, 1, 2, 3, -3, 4, -1, -8, 5, -2, -5, -2, -4, -5, -1, 3, -3, -1, -3, 1, -3, 2, -4, -5, 1, -5}, + {0, 5, -1, -4, -3, -5, 3, 2, -5, 4, -2, 5, -7, 0, -1, 4, -4, -5, 3, 2, 6, -1, -5, 6, 4, -8, -8, 1, -2, -3, 1, -7}, + {1, -8, 5, 5, 0, 4, 4, -2, 5, -4, -5, -5, -7, -4, 0, -2, 0, 5, -4, -6, -2, 1, 5, 2, 2, 6, 5, 3, 5, -2, 4, 6}, + {0, 6, 1, 3, -6, -7, 4, 6, -7, -6, 6, 5, -8, 3, 6, -4, 3, 2, 4, -5, -4, -4, -8, 3, -4, 4, -6, -4, -2, 4, -3, 6}, + {5, -8, -3, -6, -8, 0, -6, 0, -4, 3, 5, -5, 4, -8, -3, 6, 6, -6, 2, 3, 3, -4, 0, -6, -3, -3, 6, 4, -4, 0, -5, 1}, + {-8, 5, -1, -1, 1, -8, -6, -3, -5, 0, -3, -6, -4, 2, -7, -4, 5, 3, 2, 6, -4, -5, -3, -6, -5, 5, 2, 2, 5, -6, 4, -6}, + {3, -5, -3, 3, 4, 4, -2, 6, 4, -4, 1, -6, -1, -8, -8, -7, -5, -3, -3, -8, 1, -3, -1, -4, -6, 0, 3, -4, 6, 6, 2, -4}, + {-6, 0, -8, -3, 5, 2, 1, -2, -8, 6, 1, -7, 0, 3, 1, 0, -1, -8, 3, 5, 3, -2, 1, 1, 0, -5, -2, 5, -6, -4, 2, 4}, + {-1, 4, 5, -2, -8, -8, 1, -3, 1, 5, -6, 2, 1, 6, 1, -6, -1, 5, -8, 3, 5, -2, -3, -8, 0, -8, -3, -1, 4, -6, 2, 4}, + {3, -7, -2, -3, 4, 5, 6, 6, 3, 0, -5, -7, -6, -8, -4, 6, -6, 2, 5, -6, -6, -7, 4, 3, 1, -4, 1, 6, -5, -2, -2, 2}, + {1, 3, -2, -4, 2, 6, -7, 5, 1, -2, -8, -6, -8, -5, -1, 3, -8, -5, 3, -3, 2, -2, -7, 5, -1, 5, -3, 0, -4, 2, -5, 4}, + {2, 1, 5, -6, 5, -6, 6, 2, 4, -8, 6, -6, 1, -1, -5, 1, -5, -1, 6, 2, -4, 5, 2, -7, 1, 1, 6, -1, 1, -4, 1, 3}, + {1, -5, 6, -2, -1, -7, -8, -6, -7, 6, -5, -6, 0, -5, 5, -5, -6, -5, 2, -2, 2, 2, 2, -8, -4, -4, 1, 4, -1, 5, 5, 2}, + {3, 1, 3, 6, 6, -5, 1, 4, 6, -6, -8, 3, -6, 4, 1, 2, -5, -3, 5, -6, -2, 4, -8, 0, 5, 4, -4, -6, 0, -4, -6, 6}, + {4, 4, -8, -1, -4, 5, -6, 0, 1, -1, -3, 4, -5, -3, 6, -8, 4, 0, -8, 5, -7, 1, -8, 2, -2, 4, -8, -5, -1, 3, 1, 5}, + {0, -7, -4, -1, 3, -7, 3, -4, -1, -1, -8, 6, 1, -4, -7, -4, -3, -6, 3, -1, -4, 3, 6, 2, 5, 2, 5, 5, -4, -2, -4, -7}, + {6, 5, -4, -3, -4, 4, 1, -2, -6, 3, 2, -6, 3, 1, -1, 2, -7, 3, -8, -7, -2, -6, 0, -8, 5, 4, -6, -5, 3, -3, 6, -7}, + {-4, 5, 2, 1, -2, -5, 2, 5, 4, 6, 5, 3, 4, -8, 3, 0, 5, 2, -7, 0, -6, 6, 4, 5, 6, -5, 0, 5, 1, 1, -4, 0}, + {-2, -1, 3, 0, -4, -2, 2, 4, -4, -7, 1, -4, -3, -1, 5, -6, 0, -3, -7, 1, 2, 2, 6, -8, 0, 4, 0, -2, -5, -6, -4, -1}, + {2, -5, -3, -3, -2, -1, 3, -7, -5, 2, 1, 5, -8, 0, 4, -3, -2, -3, -5, -8, -8, -3, 4, -8, -1, 6, 2, -8, 3, 3, -1, -2}, + {-5, 2, -2, -7, -1, 0, -2, 0, 5, 5, -2, -4, 6, -8, -5, -5, -3, 0, 1, -3, 6, -1, -4, 6, 6, 1, -6, -7, 4, -1, -1, -2}, + {3, 1, 3, 4, 0, 3, 0, 0, -6, -7, -1, -1, 6, -1, -6, 1, -5, -6, 1, 2, -6, -7, 2, 1, 6, -7, -4, 3, 0, -3, -3, -1}, + {-8, -2, 6, -2, -8, -1, -3, 2, -4, -1, -6, -8, 5, -7, 1, -7, 6, -7, -7, -3, -6, 6, -2, -8, -4, -6, -1, -3, 2, -2, -6, 5}, + {-3, 1, 4, 6, -4, 1, -1, -1, -6, 6, -3, -4, 3, 2, -2, -3, -6, -2, 5, -2, 6, -5, 1, -7, -3, -2, -1, 1, 3, -3, 5, 6}}; +signed char resultArray[32][32] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; +signed char answerArray[32][32] = {0}; extern void printstr(char* str); extern void int64ToHex(long num, char* str); @@ -56,62 +127,54 @@ void showCounters(void) { printstr("\n"); } -/// -/// vec1を横ベクトル,vec2を縦ベクトルとした内積 -/// -int innerProd(const int* vec1, const int* vec2, int n) { - int vl, avl = n; - int sum = 0; - while(avl != 0) { - asm volatile ("vsetvli %0, %1, e32, m1, ta, ma" - : "=r"(vl) - : "r"(avl)); - asm volatile ("vmv.s.x v3, %0" - : - : "r"(sum)); - asm volatile ("vle32.v v1, (%0)" - : - : "r"(vec1)); - asm volatile ("vlse32.v v2, (%0), %1" - : - : "r"(vec2), "r"(n*sizeof(int))); - asm volatile ("vmul.vv v1, v1, v2"); - asm volatile ("vredsum.vs v1, v1, v3"); - asm volatile ("vmv.x.s %0, v1" - : "=r"(sum)); - vec1 += vl; - vec2 += vl * n; - avl -= vl; +/// @brief 8bit幅の32*32行列乗算 +/// @param array1 +/// @param array2 +/// @param resultArray +void _e8_32x32_matmul(const signed char array1[32][32], const signed char array2[32][32], signed char resultArray[32][32]) { + asm volatile ("vsetvli zero, %0, e8, m1, ta, ma"::"r"(32)); + int i=0, j=0; + for(i=0; i<32; i++) { + // array1の横ベクトルをロード + // v1 = array1[i][*] + asm volatile ("vle8.v v1, (%0)"::"r"(&(array1[i][0]))); + asm volatile ("vmv.s.x v4, zero"); + for(j=0; j<32; j++) { + // array2の縦ベクトルをロード + // v2 = array2[*][j] + asm volatile ("vlse8.v v2, (%0), %1"::"r"(&(array2[0][j])), "r"(32)); + asm volatile ("vmul.vv v3, v1, v2"); + asm volatile ("vredsum.vs v3, v3, v4"); + asm volatile ("vmv.x.s %0, v3":"=r"(resultArray[i][j])); + // resultArray[i*32+j] = tmp; + } } - return sum; } int main(int argc, char** argv) { int i, j, k; clrCounters(); - for(i=0; i<12; i++) { - for(j=0; j<12; j++) { - // resultArray[i][j] = array1[i][*] * array2[*][j] - resultArray[i][j] = innerProd(&(array1[i][0]), &(array2[0][j]), 12); - } - } + _e8_32x32_matmul(array1, array2, resultArray); showCounters(); clrCounters(); - for(i=0; i<12; i++) { - for(j=0; j<12; j++) { - int sum = 0; - for(k=0; k<12; k++) { - sum += array1[i][k] * array2[k][j]; + for(i=0; i<32; i++) { + for(j=0; j<32; j++) { + signed char sum = 0; + for(k=0; k<32; k++) { + signed char temp; + asm volatile ("mulw %0, %1, %2":"=r"(temp):"r"(array1[i][k]), "r"(array2[k][j])); + asm volatile ("addw %0, %1, %2":"=r"(sum):"r"(sum), "r"(temp)); + // sum += array1[i][k] * array2[k][j]; } answerArray[i][j] = sum; } } showCounters(); _Bool correct = 1; - for(i=0; i<12; i++) { - for(j=0; j<12; j++) { + for(i=0; i<32; i++) { + for(j=0; j<32; j++) { correct = correct && (resultArray[i][j] == answerArray[i][j]); } } diff --git a/src/main/resources/applications_vector/vector_matmul_data.hex b/src/main/resources/applications_vector/vector_matmul_data.hex index e19d431d..8cf52c42 100644 --- a/src/main/resources/applications_vector/vector_matmul_data.hex +++ b/src/main/resources/applications_vector/vector_matmul_data.hex @@ -1,303 +1,527 @@ -ffffff9c -00000000 -00000051 -00000054 -0000002e -ffffffa1 -ffffffd9 -0000000c -00000044 -00000059 -ffffffba -0000005e -ffffffd8 -00000032 -0000006e -0000005b -0000004b -00000033 -00000055 -00000017 -ffffff92 -ffffff99 -ffffff98 -0000002e -ffffffea -00000068 -0000002b -00000043 -fffffffc -00000039 -ffffffad -ffffffda -ffffffb3 -ffffffb0 -ffffffbf -00000022 -ffffffd6 -ffffffb9 -ffffff80 -00000010 -00000001 -00000017 -fffffff3 -ffffffd6 -ffffffe1 -ffffff98 -ffffff8c -00000068 -0000007e -ffffffd7 -fffffff0 -ffffffc0 -ffffffec -ffffffb0 -fffffff6 -00000019 -00000023 -00000006 -ffffffa7 -ffffffda -00000050 -ffffffde -ffffffac -0000006a -00000072 -0000005d -00000077 -ffffff90 -00000016 -0000004c -0000006d -ffffffcd -00000054 -ffffff9b -fffffff6 -ffffffcd -ffffffca -00000057 -ffffffea -ffffff87 -ffffff8c -0000005c -ffffffb6 -00000021 -00000017 -ffffffcd -00000061 -ffffff9b -00000077 -ffffffaa -ffffffed -00000070 -00000046 -ffffffcd -00000018 -0000003d -0000001f -00000029 -ffffff83 -fffffff7 -0000004f -ffffffd6 -ffffff92 -ffffffba -ffffffdd -fffffff4 -ffffffe9 -ffffffe0 -ffffff96 -ffffff98 -00000051 -00000033 -00000004 -0000004a -00000069 -ffffffb9 -fffffff4 -ffffff8e -00000068 -ffffffd8 -ffffffb8 -ffffffd7 -ffffffa4 -ffffffd7 -00000054 -ffffffda -ffffffc4 -00000011 -0000007d -ffffff95 -ffffffb2 -ffffff99 -ffffffd2 -ffffffcb -0000003b -ffffffab -0000000b -ffffffda -fffffff2 -0000005d -00000026 -00000014 -ffffffd2 -0000000a -ffffffd1 -00000052 -ffffffdb -fffffff0 -ffffffdd -00000005 -ffffff84 -0000005f -ffffffca -00000059 -ffffffab -00000020 -00000057 -ffffffae -ffffffa6 -fffffffb -ffffffe4 -ffffffd8 -00000036 -00000004 -fffffff2 -00000044 -00000072 -fffffffe -00000037 -ffffffdb -ffffffa3 -ffffffd5 -ffffff98 -0000001d -00000015 -00000016 -0000001b -0000003e -00000022 -00000075 -ffffffc6 -00000071 -0000002b -00000018 -ffffffdb -00000005 -0000002b -0000006d -ffffff84 -ffffff83 -ffffffd8 -00000056 -00000062 -ffffffc2 -00000029 -ffffffb1 -fffffff7 -00000067 -ffffffd3 -00000066 -00000049 -ffffff96 -00000064 -00000031 -ffffffc6 -00000019 -ffffffce -0000003e -0000007d -00000073 -ffffffb0 -00000043 -ffffffcf -00000002 -ffffffe2 -ffffffba -00000027 -0000007b -ffffffe2 -ffffff85 -fffffff8 -0000001a -00000043 -ffffffe2 -ffffffbc -00000020 -0000000f -00000068 -ffffffa5 -0000003c -00000015 -ffffff9e -00000073 -ffffffc4 -00000028 -ffffffd5 -0000005f -ffffffcc -00000043 -ffffffc8 -fffffff8 -ffffffae -0000001c -ffffffa3 -ffffffbc -ffffffca -fffffff7 -ffffffd0 -fffffff5 -0000005d -00000010 -00000040 -00000011 -ffffff96 -ffffffba -ffffffa6 -00000023 -0000004e -00000061 -ffffff81 -ffffffb2 -ffffffe4 -0000007d -00000045 -0000002c -ffffffb2 -0000001a -00000034 -00000061 -fffffff6 -0000003e -ffffffb2 -ffffff92 -fffffff8 -ffffff82 -00000073 -ffffff84 -00000012 -00000036 -00000029 -fffffff8 -0000001a -fffffff5 -ffffff80 -00000014 -ffffff9c -ffffffdf -00000001 -ffffc174 -ffffc1b8 -ffffc1fc -ffffc10c -ffffc240 -ffffc284 -ffffc2c8 -ffffc30c -ffffc10c -ffffc10c -ffffc10c -ffffc350 +fd04fdff +fcfe0501 +fd0406fa +0305fffa +02f80600 +fafdfefc +fb0304f8 +0206fa02 +ff02fdfc +00fe0302 +fe0401fe +05f9fa03 +060106f8 +03fdfefc +ff050101 +fb01fc04 +0505fcff +04fe0005 +fcfc0406 +fa06f902 +f9fbfdf8 +05fd06fd +04030105 +fd0505fc +0605f905 +fb020405 +f8030000 +fbf9fafc +020403fd +05fbfef8 +fff8f902 +fbfa06fe +fafdfa06 +04040106 +f8fb05fc +01fcfa00 +03fafc00 +0304fdfc +00faf802 +0202f8f8 +fb02f803 +fbfffc01 +0506f9fe +02050302 +02f9ff01 +fefa0304 +0405fd05 +01fb01fc +fdff0300 +f9fb0200 +fbfa0602 +ff06ff02 +04000405 +03fbf8fa +03ff01fc +fbfa0302 +fff9fffd +faf803f8 +0104ffff +fbfcf903 +f903fffc +fc000204 +06fffb01 +fc0204fa +f8050106 +01fefafe +04fd0302 +fe05f8ff +fbfcfefb +fffd03ff +02fd01fd +fb01fbfc +fcff0500 +0203fbfd +05fe04fb +04ff00f9 +0203fbfc +06fbff06 +01f8f804 +f901fdfe +0505f801 +fe040400 +fbfbfc05 +fe00fcf9 +fafc0500 +020501fe +03050602 +0604fe05 +03010600 +0604f9fa +0506faf9 +fc0603f8 +fb040203 +03f8fcfc +fcfa04fc +06fd04fe +fafdf805 +00fa00f8 +fb0503fc +06fdf804 +0302fa06 +fa00fc03 +0406fdfd +01fb00fc +ffff05f8 +fdfaf801 +fafd00fb +fcf902fc +06020305 +fafdfbfc +020205fb +fa04fa05 +03fdfb03 +06fe0404 +fa01fc04 +f9f8f8ff +f8fdfdfb +fcfffd01 +fc0300fa +fc020606 +fdf800fa +fe010205 +f90106f8 +00010300 +0503f8ff +0101fe03 +05fefb00 +0402fcfa +fe0504ff +fd01f8f8 +02fa0501 +fa010601 +03f805ff +f8fdfe05 +fffdf800 +0402fa04 +fdfef903 +06060504 +f9fb0003 +06fcf8fa +fa0502fa +0304f9fa +0601fc01 +02fefefb +fcfe0301 +05f90602 +faf8fe01 +03fffbf8 +fd03fbf8 +05f9fe02 +00fd05ff +04fb02fc +fa050102 +0206fa05 +fa06f804 +01fbff01 +0206fffb +f90205fc +ff060101 +0301fc01 +fe06fb01 +faf8f9ff +fafb06f9 +fb05fb00 +fe02fbfa +f8020202 +0401fcfc +020505ff +06030103 +0401fb06 +03f8fa06 +020104fa +fa05fdfb +00f804fe +fafc0405 +06fafc00 +fff80404 +00fa05fc +04fdff01 +f806fdfb +05f80004 +02f801f9 +fbf804fe +050103ff +fffcf900 +fc03f903 +06f8ffff +fcf9fc01 +ff03fafd +020603fc +05050205 +f9fcfefc +fdfc0506 +fe0104fc +fa0203fa +02ff0103 +f9f803f9 +f800fafe +fbfa0405 +f906fd03 +010205fc +0502fbfe +03050604 +0003f804 +00f90205 +050406fa +0500fb06 +00fc0101 +0003fffe +0402fefc +fc01f9fc +fa05fffd +01f9fd00 +f8060202 +fe000400 +fffcfafb +fdfdfb02 +f903fffe +050102fb +fd0400f8 +f8fbfdfe +f804fdf8 +f80206ff +feff0303 +f9fe02fb +00fe00ff +fcfe0505 +fbfbf806 +fd0100fd +06fcff06 +f9fa0106 +feffff04 +04030103 +00000300 +fffff9fa +01faff06 +0201fafb +0102f9fa +03fcf906 +fffdfd00 +fe06fef8 +02fdfff8 +f8fafffc +f901f905 +fdf9f906 +f8fe06fa +fdfffafc +05fafe02 +060401fd +ffff01fc +fcfd06fa +fdfe0203 +fe05fefa +f901fb06 +01fffefd +0605fd03 +fefe00fe +04f8fffa +02f806fb +0000fe00 +0505fbf8 +fbfc0002 +00f9f904 +fefa0101 +fd02f9f9 +fafbfc03 +fc00f9fe +05fefdfe +040400fe +fcfff9f9 +fef8fbfb +ff01f9ff +f9060204 +0200fbfc +01030300 +fef901fb +fef9faf9 +fbf806ff +00040106 +05050001 +fa01f806 +03fa0404 +f9fffbfa +f900f9ff +fafc0005 +fbfefffa +04f90405 +04030600 +05f9f803 +0302f802 +0606fe03 +010606f9 +02fdf903 +fffff901 +fd02f8fe +fc04fbff +06fa02ff +fe0301fc +03fc0505 +f8fafaff +ff010201 +030101ff +fb000306 +fe01fef9 +f8f8fdfc +f80504f8 +fc03f9fc +06fc05fd +fdfd0302 +00fbf9f8 +03050604 +f804fdf9 +03fb0403 +fdf9fc00 +01fd00ff +020402fd +04f9f9fc +fa04fb01 +00060303 +f9f9fcff +0506fc03 +fd05f8f8 +03fd04fd +fafbfe02 +03fefdfb +f8f8fa00 +fd02fdfc +fdfdf906 +fb010502 +000305f8 +00fbfe02 +f9fbfffe +fffffd03 +03fe0205 +01030305 +f906fbff +03060204 +fafffb00 +f8fffdff +fff9f8fc +fc0406fa +020604f9 +f902fbfa +0500fcfc +000004fc +0004fd05 +fcfa06fe +f9fafb00 +fdfdfaff +04030101 +fb06fbfc +000505fe +06f8fdf8 +05fb03ff +f8fafcfb +fa03f9f9 +0201f9fc +ff02fbf8 +05faff01 +fa0505fa +fafafd05 +fcf8fffd +05fbfd02 +f8fc05fb +fd0001f9 +ff020601 +04020501 +0301fe04 +fbff02fe +06f904fb +f80101fc +fff90602 +05fcfb03 +01fc01f9 +01fc03fd +04fd0605 +020300fa +04f80604 +fdfcf9ff +0103fefc +f802ff00 +06f903fb +ff02f905 +fbfcfff8 +fd00fb06 +fbff0302 +03fd00ff +fbf9f9f9 +01fef800 +fefe06fd +01faf8ff +02050501 +fafcfd00 +01f806ff +f9f9f803 +fcfbfbff +fc03fc02 +05ff01fb +03f800fe +01fbf8fe +0501fffa +f9fdff06 +06060106 +fefaf8f8 +0103fe01 +f80306ff +0601fe02 +fcf800ff +04ff05fb +06f80204 +fbfdf800 +05f9fbff +0505fc04 +0301fafd +06f8fbfc +fafc0203 +f8000203 +06fc0102 +ff010306 +04fefd06 +f8f8f9fa +04f8fcfa +fa000100 +f900fd02 +01fc03fa +04fc0001 +f804f806 +00faf8fe +06f803fa +fc000301 +0002fafc +ff06f904 +f8fc01f9 +fdfb05f9 +00f903f9 +fbfa0602 +0300fafc +04fbfb02 +06fe0105 +fe02f901 +fffbfb04 +fa06fc03 +fdfffc06 +06f805fd +03fd03fc +040404f8 +0203fc00 +0405fffa +05f9fd04 +05040203 +fefb0300 +fcfa0105 +01fe0603 +faf90406 +f900f9fe +fcfcfcfd +01fef801 +01fafef9 +02030104 +ff0200f9 +0501f803 +06fa0001 +fdf8fef9 +0200fc03 +02fdfd01 +fc01fa04 +ff00f9f9 +fd00f904 +f8fbfe03 +05fc0305 +0004fb03 +fd01fbfd +fbf80406 +03fafb01 +0100fef9 +05f803fc +0100fe02 +fe06fbfe +fffc01fb +f9fc0104 +00fef804 +fe06f9fb +0402fa00 +0400fef9 +0005ff01 +0400f903 +f90004f9 +fdf90300 +03030103 +f9fb0603 +05f8faf9 +050301ff +fe030201 +ffff01fb +fc06fc04 +05fefd05 +0000fbfe +fffffff9 +fb00fc01 +fefafd05 +f80005ff +fbfef801 +f802faf9 +01ff04fe +fb0300f8 +fc01fbff +03fdfe06 +fa00fdf9 +fd02fb03 +06fefef9 +fcf801f8 +04030205 +ffffbdf0 +ffffbe34 +ffffbe78 +ffffbd88 +ffffbebc +ffffbf00 +ffffbf44 +ffffbf88 +ffffbd88 +ffffbd88 +ffffbd88 +ffffbfcc 4c435943 00203a45 534e490a diff --git a/src/main/resources/applications_vector/vector_matmul_inst.hex b/src/main/resources/applications_vector/vector_matmul_inst.hex index fee2bf92..f0d878f8 100644 --- a/src/main/resources/applications_vector/vector_matmul_inst.hex +++ b/src/main/resources/applications_vector/vector_matmul_inst.hex @@ -33,7 +33,7 @@ 03828293 30529073 00005197 -dd018193 +15018193 10000217 ff720213 fc027213 @@ -42,7 +42,7 @@ f1402573 00b57063 00006137 ff01011b -76c0006f +7680006f ef010113 00113423 00213823 @@ -78,7 +78,7 @@ ef010113 34202573 341025f3 00010613 -3e4000ef +3e0000ef 34151073 000022b7 8002829b @@ -129,61 +129,60 @@ c02024f3 c0002973 b0302473 00004517 -2a850513 -170000ef +62850513 +16c000ef 00810593 00090513 -120000ef +11c000ef 00810513 -15c000ef +158000ef 00004517 -29050513 -150000ef +61050513 +14c000ef 00810593 00048513 -100000ef +0fc000ef 00810513 -13c000ef +138000ef 00004517 -28050513 -130000ef +60050513 +12c000ef 00810593 00040513 -0e0000ef +0dc000ef 00810513 -11c000ef +118000ef 00004517 -27050513 -110000ef +5f050513 +10c000ef 03813083 03013403 02813483 02013903 04010113 00008067 +02000793 +0c07f057 +02000813 00050893 -04060a63 -00261313 -00060793 -00000513 -0d07f857 -0008069b -420561d7 -0208e087 -0a65e107 -961120d7 -0211a0d7 -42102557 -02c8073b -00269693 -410787bb -0005051b -00d888b3 -00271713 -00e585b3 -fc0792e3 -00008067 -00000513 +40050313 +02000513 +02088087 +42006257 +00000793 +00f58733 +0b070107 +961121d7 +023221d7 +423026d7 +0007871b +00e60733 +00d70023 +00178793 +fca79ee3 +02088893 +02060613 +fc6892e3 00008067 b0201073 b0001073 @@ -234,7 +233,7 @@ fe010113 c0202673 c00025f3 00004717 -13470713 +4b870713 06300793 100006b7 00f68023 @@ -266,7 +265,7 @@ fee812e3 00168693 fe071ae3 00004697 -0bc68693 +44068693 00a00713 100005b7 00e58023 @@ -305,7 +304,7 @@ fe010113 00113c23 00050413 00004717 -03070713 +3b470713 04500793 100006b7 00f68023 @@ -347,14 +346,14 @@ ff0792e3 00b00793 02a7e063 00004717 -f1070713 +29470713 00251513 00e50533 00052783 00e787b3 00078067 00004717 -09470713 +41870713 05500793 100006b7 00f68023 @@ -370,7 +369,7 @@ fe079ae3 00170713 fe079ae3 00004717 -07470713 +3f870713 00a00793 100006b7 00f68023 @@ -380,7 +379,7 @@ fe079ae3 fff00513 ec9ff0ef 00004717 -f1470713 +29870713 04900793 100006b7 00f68023 @@ -397,7 +396,7 @@ fc0786e3 fe079ae3 fb9ff06f 00004717 -ef870713 +27c70713 04900793 100006b7 00f68023 @@ -414,7 +413,7 @@ f80788e3 fe079ae3 f75ff06f 00004717 -edc70713 +26070713 04900793 100006b7 00f68023 @@ -431,7 +430,7 @@ f40786e3 fe079ae3 f31ff06f 00004717 -eb870713 +23c70713 04c00793 100006b7 00f68023 @@ -448,7 +447,7 @@ f00784e3 fe079ae3 eedff06f 00004717 -e9470713 +21870713 04c00793 100006b7 00f68023 @@ -465,7 +464,7 @@ ec0782e3 fe079ae3 ea9ff06f 00004717 -e7070713 +1f470713 05300793 100006b7 00f68023 @@ -482,7 +481,7 @@ e80780e3 fe079ae3 e65ff06f 00004717 -e5470713 +1d870713 05300793 100006b7 00f68023 @@ -499,7 +498,7 @@ e2078ee3 fe079ae3 e21ff06f 00004717 -e3070713 +1b470713 04500793 100006b7 00f68023 @@ -588,7 +587,7 @@ fee78fa3 fef61ce3 00008067 00004797 -d247b783 +0a87b783 02f70733 fec578e3 00050793 @@ -639,109 +638,76 @@ ff5ff06f fee78fa3 fe0718e3 00008067 -fe010113 -00113c23 -00813823 -00913423 -01213023 +ff010113 +00113423 +00813023 b0201073 b0001073 b0301073 -00003417 -5dc40413 -00004497 -81448493 -00004297 -c2c28293 -00040f13 -00004f97 -830f8f93 -03000313 -00003e17 -7f4e0e13 -00028e93 -000e0513 -000f0593 -00000893 -00c00693 -0d06f757 -0007061b -4208e1d7 -0205e087 -0a656107 -961120d7 -0211a0d7 -42102857 -0017179b -00e787bb -0027979b -00261613 -00279793 -40e686bb -0008089b -00c585b3 -00f50533 -fa069ee3 -010ea023 -004e0e13 -004e8e93 -f9cf9ee3 -030f0f13 -03028293 -f89f12e3 -f1cff0ef +00004617 +fc860613 +00003597 +5e058593 +00004517 +9d850513 +85dff0ef +fb4ff0ef b0201073 b0001073 b0301073 -a4818913 -00090313 -00004897 -9cc88893 -00004e17 -994e0e13 -000e0513 -00030813 -dc050713 -00040693 +c0818413 +00040e93 +00000e13 +00004f17 +9b0f0f13 +00004317 +9c830313 +02000f93 +005e1893 +000f0513 +01e888b3 +000e8813 +c0050713 +00088693 00000613 -0006a583 -00072783 -03070713 -00468693 +0006c783 +00074583 02b787bb -00c7863b -fea714e3 -00c82023 -00470513 -00480813 -fca896e3 -03040413 -03030313 -fa941ce3 -ea8ff0ef +00f607bb +0187961b +02070713 +4186561b +00168693 +fea710e3 +00f80023 +00170513 +00180813 +fca312e3 +001e0e13 +020e8e93 +fbfe14e3 +f28ff0ef 00004697 -b4c68693 -a7818593 +f3c68693 +c2818593 00100513 -fd068793 -00090713 +fe068793 +00040713 00050a63 -0007a503 -00072603 +00078503 +00070603 40c50533 00153513 -00478793 -00470713 +00178793 +00170713 fed792e3 -03078693 -03090913 +02078693 +02040413 fcb698e3 -01813083 -01013403 -00813483 -00013903 +00813083 +00013403 00154513 -02010113 +01010113 00008067 fff00513 00008067 diff --git a/src/main/resources/build_helloworld_asm.sh b/src/main/resources/build_helloworld_asm.sh index 81a6d7ee..2f95b1fa 100644 --- a/src/main/resources/build_helloworld_asm.sh +++ b/src/main/resources/build_helloworld_asm.sh @@ -1,9 +1,9 @@ #!/bin/bash -#riscv64-unknown-elf-gcc -march=rv64i -mabi=lp64 -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles -I ./headers/ -T link.ld ../../../submodule/riscv-tests/isa/rv64ui/addi.S -o addi.out -riscv64-unknown-elf-gcc -march=rv64i -mabi=lp64 -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles -I ./headers/ -T link.ld helloworld_asm.S -o helloworld_asm.out -riscv64-unknown-elf-objdump --disassemble-all --disassemble-zeroes --section=.text --section=.text.startup --section=.text.init --section=.data helloworld_asm.out > helloworld_asm.dump -riscv64-unknown-elf-objcopy -O binary helloworld_asm.out helloworld_asm.bin -riscv64-unknown-elf-objcopy --dump-section .text.init=helloworld_asm_inst.bin helloworld_asm.out -hexdump -v -e '1/1 "%02x" "\n"' helloworld_asm_inst.bin > helloworld_asm_inst.hex +riscv64-unknown-elf-gcc -march=rv64i_zicsr -mabi=lp64 -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles -I ./headers/ -T link.ld simpleTest.S -o simpleTest.out +riscv64-unknown-elf-objdump --disassemble-all --disassemble-zeroes --section=.text --section=.text.startup --section=.text.init --section=.data simpleTest.out > simpleTest.dump +riscv64-unknown-elf-objcopy -O binary simpleTest.out simpleTest.bin +riscv64-unknown-elf-objcopy --dump-section .text.init=simpleTest_inst.bin simpleTest.out +hexdump -v -e '1/4 "%08x" "\n"' simpleTest_inst.bin > simpleTest_inst.hex + rm *.out *.bin \ No newline at end of file diff --git a/src/main/resources/helloworld_asm.S b/src/main/resources/helloworld_asm.S deleted file mode 100644 index 1389553e..00000000 --- a/src/main/resources/helloworld_asm.S +++ /dev/null @@ -1,37 +0,0 @@ -#include "riscv_test.h" -#include "test_macros.h" - -#define PUTCHAR(x) \ - li s1, x; \ - sb s1, 0(s0); - -RVTEST_RV64U -RVTEST_CODE_BEGIN - - li s0, 0x1000 - PUTCHAR('H') - PUTCHAR('e') - PUTCHAR('l') - PUTCHAR('l') - PUTCHAR('o') - PUTCHAR(',') - PUTCHAR(' ') - PUTCHAR('W') - PUTCHAR('o') - PUTCHAR('r') - PUTCHAR('l') - PUTCHAR('d') - PUTCHAR('!') - PUTCHAR(0) - ret - - TEST_PASSFAIL - -RVTEST_CODE_END - - .data -RVTEST_DATA_BEGIN - - TEST_DATA - -RVTEST_DATA_END \ No newline at end of file diff --git a/src/main/resources/simpleTest.S b/src/main/resources/simpleTest.S new file mode 100644 index 00000000..06beeb09 --- /dev/null +++ b/src/main/resources/simpleTest.S @@ -0,0 +1,26 @@ +#include "riscv_test.h" +#include "test_macros.h" + +#define PUTCHAR(x) \ + li s1, x; \ + sb s1, 0(s0); + +RVTEST_RV64U +RVTEST_CODE_BEGIN + + li s0, 0x10000000 + li s1, 0x114514 + sw s1, 0(s0) +loop: + j loop + + TEST_PASSFAIL + +RVTEST_CODE_END + + .data +RVTEST_DATA_BEGIN + + TEST_DATA + +RVTEST_DATA_END \ No newline at end of file diff --git a/src/main/resources/simpleTest.dump b/src/main/resources/simpleTest.dump new file mode 100644 index 00000000..ecaefa66 --- /dev/null +++ b/src/main/resources/simpleTest.dump @@ -0,0 +1,106 @@ + +simpleTest.out: file format elf64-littleriscv + + +Disassembly of section .text.init: + +0000000000000000 <_start>: + 0: 03c0006f j 3c + +0000000000000004 : + 4: 34202f73 csrr t5,mcause + 8: 00800f93 li t6,8 + c: 03ff0263 beq t5,t6,30 + 10: 00900f93 li t6,9 + 14: 01ff0e63 beq t5,t6,30 + 18: 00b00f93 li t6,11 + 1c: 01ff0a63 beq t5,t6,30 + 20: 34202f73 csrr t5,mcause + 24: 000f5463 bgez t5,2c + 28: 0040006f j 2c + +000000000000002c : + 2c: 5391e193 or gp,gp,1337 + +0000000000000030 : + 30: 10000f17 auipc t5,0x10000 + 34: fc3f2823 sw gp,-48(t5) # 10000000 + 38: 0000006f j 38 + +000000000000003c : + 3c: b0005073 csrw mcycle,0 + 40: b0205073 csrw minstret,0 + 44: 00000093 li ra,0 + 48: 00000113 li sp,0 + 4c: 00000193 li gp,0 + 50: 00000213 li tp,0 + 54: 00000293 li t0,0 + 58: 00000313 li t1,0 + 5c: 00000393 li t2,0 + 60: 00000413 li s0,0 + 64: 00000493 li s1,0 + 68: 00000513 li a0,0 + 6c: 00000593 li a1,0 + 70: 00000613 li a2,0 + 74: 00000693 li a3,0 + 78: 00000713 li a4,0 + 7c: 00000793 li a5,0 + 80: 00000813 li a6,0 + 84: 00000893 li a7,0 + 88: 00000913 li s2,0 + 8c: 00000993 li s3,0 + 90: 00000a13 li s4,0 + 94: 00000a93 li s5,0 + 98: 00000b13 li s6,0 + 9c: 00000b93 li s7,0 + a0: 00000c13 li s8,0 + a4: 00000c93 li s9,0 + a8: 00000d13 li s10,0 + ac: 00000d93 li s11,0 + b0: 00000e13 li t3,0 + b4: 00000e93 li t4,0 + b8: 00000f13 li t5,0 + bc: 00000f93 li t6,0 + c0: 00000193 li gp,0 + c4: 00000297 auipc t0,0x0 + c8: f4028293 add t0,t0,-192 # 4 + cc: 30529073 csrw mtvec,t0 + d0: 30005073 csrw mstatus,0 + d4: 00000297 auipc t0,0x0 + d8: 01428293 add t0,t0,20 # e8 + dc: 34129073 csrw mepc,t0 + e0: f1402573 csrr a0,mhartid + e4: 30200073 mret + e8: 10000437 lui s0,0x10000 + ec: 001144b7 lui s1,0x114 + f0: 5144849b addw s1,s1,1300 # 114514 + f4: 00942023 sw s1,0(s0) # 10000000 + +00000000000000f8 : + f8: 0000006f j f8 + fc: 02301063 bne zero,gp,11c + +0000000000000100 : + 100: 0ff0000f fence + 104: 00018063 beqz gp,104 + 108: 00119193 sll gp,gp,0x1 + 10c: 0011e193 or gp,gp,1 + 110: 05d00893 li a7,93 + 114: 00018513 mv a0,gp + 118: 00000073 ecall + +000000000000011c : + 11c: 0ff0000f fence + 120: 00100193 li gp,1 + 124: 05d00893 li a7,93 + 128: 00000513 li a0,0 + 12c: 00000073 ecall + 130: c0001073 unimp + 134: 0000 .2byte 0x0 + 136: 0000 .2byte 0x0 + 138: 0000 .2byte 0x0 + 13a: 0000 .2byte 0x0 + 13c: 0000 .2byte 0x0 + 13e: 0000 .2byte 0x0 + 140: 0000 .2byte 0x0 + 142: 0000 .2byte 0x0 diff --git a/src/main/resources/simpleTest_inst.hex b/src/main/resources/simpleTest_inst.hex new file mode 100644 index 00000000..2c1d9735 --- /dev/null +++ b/src/main/resources/simpleTest_inst.hex @@ -0,0 +1,81 @@ +03c0006f +34202f73 +00800f93 +03ff0263 +00900f93 +01ff0e63 +00b00f93 +01ff0a63 +34202f73 +000f5463 +0040006f +5391e193 +10000f17 +fc3f2823 +0000006f +b0005073 +b0205073 +00000093 +00000113 +00000193 +00000213 +00000293 +00000313 +00000393 +00000413 +00000493 +00000513 +00000593 +00000613 +00000693 +00000713 +00000793 +00000813 +00000893 +00000913 +00000993 +00000a13 +00000a93 +00000b13 +00000b93 +00000c13 +00000c93 +00000d13 +00000d93 +00000e13 +00000e93 +00000f13 +00000f93 +00000193 +00000297 +f4028293 +30529073 +30005073 +00000297 +01428293 +34129073 +f1402573 +30200073 +10000437 +001144b7 +5144849b +00942023 +0000006f +02301063 +0ff0000f +00018063 +00119193 +0011e193 +05d00893 +00018513 +00000073 +0ff0000f +00100193 +05d00893 +00000513 +00000073 +c0001073 +00000000 +00000000 +00000000 +00000000 diff --git a/src/main/scala/hajime/common/HajimeCoreParams.scala b/src/main/scala/hajime/common/HajimeCoreParams.scala index 60c9b6b9..92378150 100644 --- a/src/main/scala/hajime/common/HajimeCoreParams.scala +++ b/src/main/scala/hajime/common/HajimeCoreParams.scala @@ -31,6 +31,7 @@ case class HajimeCoreParams( useVector: Boolean = true, usePackedSIMD: Boolean = false, debug: Boolean = true, + fpga: Boolean = false, vlen: Int = 256, vecAluExecUnitNum: Int = 2, ) { diff --git a/src/main/scala/hajime/common/ScalarOpConstants.scala b/src/main/scala/hajime/common/ScalarOpConstants.scala index 9b9589b3..819d2d49 100644 --- a/src/main/scala/hajime/common/ScalarOpConstants.scala +++ b/src/main/scala/hajime/common/ScalarOpConstants.scala @@ -72,5 +72,5 @@ object UseRegisterAs extends ChiselEnum { object COMPILE_CONSTANTS { val CHISELSTAGE_ARGS = Array("--emission-options=disableMemRandomization,disableRegisterRandomization") - val FIRTOOLOPS = Array("-disable-all-randomization", "-strip-debug-info") + val FIRTOOLOPS = Array("-disable-all-randomization", "-strip-debug-info", "-add-vivado-ram-address-conflict-synthesis-bug-workaround") } diff --git a/src/main/scala/hajime/simple4Stage/Core.scala b/src/main/scala/hajime/simple4Stage/Core.scala index 88d226e4..ec03a242 100644 --- a/src/main/scala/hajime/simple4Stage/Core.scala +++ b/src/main/scala/hajime/simple4Stage/Core.scala @@ -47,7 +47,7 @@ class Core[T <: CpuModule](cpu: Class[T])(implicit params: HajimeCoreParams) ext } object Core extends App { - implicit val params = HajimeCoreParams() + implicit val params = HajimeCoreParams(useException = false, useVector = true, debug = false, fpga = true) def apply[T <: CpuModule](cpu: Class[T])(implicit params: HajimeCoreParams): Core[T] = { if(cpu == classOf[VectorCpu] && !params.useVector) { throw new Exception("useVector is false") diff --git a/src/main/scala/hajime/vectormodules/VectorCpu.scala b/src/main/scala/hajime/vectormodules/VectorCpu.scala index 4eb1ad3d..32bde8e8 100644 --- a/src/main/scala/hajime/vectormodules/VectorCpu.scala +++ b/src/main/scala/hajime/vectormodules/VectorCpu.scala @@ -62,8 +62,12 @@ class VectorCpu(implicit params: HajimeCoreParams) extends CpuModule with Scalar val decoded_inst = Wire(new InstBundle()) decoded_inst := io.frontend.resp.bits.inst - val ID_EX_REG = Reg(Valid(new ID_EX_IO())) - val EX_WB_REG = Reg(Valid(new EX_WB_IO())) + val ID_EX_REG = RegInit(Valid(new ID_EX_IO()).Lit( + _.valid -> false.B, + )) + val EX_WB_REG = RegInit(Valid(new EX_WB_IO()).Lit( + _.valid -> false.B, + )) // これらがtrueならばベクトル命令を発行できる val vs1NonRequiredOrReady = !vrfReadyTable.io.vs1Check.valid || vrfReadyTable.io.vs1Check.ready @@ -287,6 +291,7 @@ class VectorCpu(implicit params: HajimeCoreParams) extends CpuModule with Scalar vectorLdstUnit.io.signalIn.bits.vector.scalarVal := rs1ValueToEX vectorLdstUnit.io.signalIn.bits.vector.scalarDecode := decoder.io.out.bits vectorLdstUnit.io.signalIn.bits.vector.pc := io.frontend.resp.bits.pc + vectorLdstUnit.io.signalIn.bits.vector.vecConf := vecConfBypass } .otherwise { vectorLdstUnit.io.signalIn := DontCare vectorLdstUnit.io.signalIn.valid := false.B @@ -419,8 +424,11 @@ class VectorCpu(implicit params: HajimeCoreParams) extends CpuModule with Scalar )) Mux(ID_EX_REG.bits.ctrlSignals.decode.branch === Branch.ECALL.asUInt, 0xb.U(params.xprlen.W), 0.U) + // EX_WB_REGに信号自体がvalidかを覚えさせておく when(vecCtrlUnit.io.resp.valid) { EX_WB_REG.bits.vectorCsrPorts.get := vecCtrlUnit.io.resp.bits + } .otherwise { + EX_WB_REG.bits.vectorCsrPorts.get := EX_WB_REG.bits.vectorCsrPorts.get } if (params.debug) EX_WB_REG.bits.debug.get := ID_EX_REG.bits.debug.get @@ -440,14 +448,17 @@ class VectorCpu(implicit params: HajimeCoreParams) extends CpuModule with Scalar for(d <- vecAluExecUnit) { when(d.io.toExWbReg.valid) { EX_WB_REG := d.io.toExWbReg + EX_WB_REG.bits.vectorCsrPorts.get := EX_WB_REG.bits.vectorCsrPorts.get } } when(vectorLdstUnit.io.toExWbReg.valid) { EX_WB_REG := vectorLdstUnit.io.toExWbReg + EX_WB_REG.bits.vectorCsrPorts.get := EX_WB_REG.bits.vectorCsrPorts.get } when(WB_stall) { EX_WB_REG := EX_WB_REG + EX_WB_REG.bits.vectorCsrPorts.get := EX_WB_REG.bits.vectorCsrPorts.get } // flush the EX_WB register if ecall, mret or exception diff --git a/src/main/scala/hajime/vectormodules/VectorExecUnit.scala b/src/main/scala/hajime/vectormodules/VectorExecUnit.scala index 9f6c5144..8dfaa975 100644 --- a/src/main/scala/hajime/vectormodules/VectorExecUnit.scala +++ b/src/main/scala/hajime/vectormodules/VectorExecUnit.scala @@ -71,6 +71,8 @@ abstract class VectorExecUnit(implicit params: HajimeCoreParams) extends Module instInfoReg := instInfoReg } + assert(!(instInfoReg.valid && instInfoReg.bits.vecConf.vl === 0.U), "Zero vl instruction in VectorExecUnit") + import VEU_FUN._ // TODO: vs1Outの判定はMVVではなくベクトルマスク命令か否かで io.readVrf.req.idx := Mux(instInfoReg.bits.vectorDecode.vSource === VSOURCE.MVV.asUInt, idx.head(idx.getWidth-3), idx) diff --git a/src/main/scala/my_random_useful_programs/Data32To64.scala b/src/main/scala/my_random_useful_programs/Data32To64.scala new file mode 100644 index 00000000..dfe2f03b --- /dev/null +++ b/src/main/scala/my_random_useful_programs/Data32To64.scala @@ -0,0 +1,12 @@ +package my_random_useful_programs + +import scala.io._ + +object Data32To64 extends App { + val fileLines = Source.fromFile("src/main/resources/applications_vector/vector_matmul_data.hex").getLines().toSeq + val ls = fileLines ++ (if(fileLines.length % 2 != 0) Seq("00000000") else Nil) + val strList = for(i <- 0 until ls.length/2) yield { + ls(i*2+1) + ls(i*2) + } + strList.foreach(println) +} diff --git a/src/test/scala/hajime/publicmodules/Dcache_for_Verilator.scala b/src/test/scala/hajime/publicmodules/Dcache_for_Verilator.scala index 3ae51d0a..90649a78 100644 --- a/src/test/scala/hajime/publicmodules/Dcache_for_Verilator.scala +++ b/src/test/scala/hajime/publicmodules/Dcache_for_Verilator.scala @@ -11,6 +11,7 @@ import org.scalatest.flatspec._ import scala.io._ // 命令キャッシュと異なりマスター側のreadyが下がることは無いので,出力のストールは考えない +// TODO: FPGA用に例えばledへの出力を追加する,正常終了フラグや例外終了フラグなど class Dcache_for_Verilator(dcacheBaseAddr: Int, tohost: Int, memsize: Int = 0x2000) extends Module with ChecksAxiReadResp with ChecksAxiWriteResp{ require(memsize % 8 == 0, s"memsize $memsize is not multiple of 8") @@ -79,5 +80,5 @@ class Dcache_for_Verilator(dcacheBaseAddr: Int, tohost: Int, memsize: Int = 0x20 object Dcache_for_Verilator extends App { def apply(dcacheBaseAddr: Int = 0x00004000, tohost: Int = 0x10000000, memsize: Int = 0x2000): Dcache_for_Verilator = new Dcache_for_Verilator(dcacheBaseAddr, tohost, memsize) - ChiselStage.emitSystemVerilogFile(Dcache_for_Verilator(), firtoolOpts = COMPILE_CONSTANTS.FIRTOOLOPS) + ChiselStage.emitSystemVerilogFile(Dcache_for_Verilator(dcacheBaseAddr = 0x00004000, tohost = 0x10000000, memsize = 8192), firtoolOpts = COMPILE_CONSTANTS.FIRTOOLOPS) } \ No newline at end of file diff --git a/src/test/scala/hajime/simple4Stage/Core_ApplicationTest.scala b/src/test/scala/hajime/simple4Stage/Core_ApplicationTest.scala index f0f77d90..4cad269f 100644 --- a/src/test/scala/hajime/simple4Stage/Core_ApplicationTest.scala +++ b/src/test/scala/hajime/simple4Stage/Core_ApplicationTest.scala @@ -21,7 +21,7 @@ object Core_ApplicationTest { }.fork { initialiseMemWithAxi(s"src/main/resources/applications_${testType}/${testName}_data.hex", dut.io.dmem_initialiseAXI, dut.io.dcache_initialising, dut.clock, 0x4000) }.join() - dut.clock.setTimeout(65536) + dut.clock.setTimeout(1048576) dut.io.reset_vector.poke(0.U) dut.io.hartid.poke(0.U) diff --git a/src/test/scala/hajime/vectormodules/VectorCpuSpec.scala b/src/test/scala/hajime/vectormodules/VectorCpuSpec.scala index ea0740c6..2d3b573a 100644 --- a/src/test/scala/hajime/vectormodules/VectorCpuSpec.scala +++ b/src/test/scala/hajime/vectormodules/VectorCpuSpec.scala @@ -144,7 +144,7 @@ class Zve64xAppTestForVecCpu extends AnyFlatSpec with ChiselScalatestTester { "vredsum", ) val applicationTest = Seq( - "vector_median", "vector_matmul" + "vector_median", // "vector_matmul" ) val zve64xTestList: Seq[String] = ldstTest ++ arithmeticTest ++ applicationTest for (e <- zve64xTestList) { @@ -154,4 +154,28 @@ class Zve64xAppTestForVecCpu extends AnyFlatSpec with ChiselScalatestTester { } } } +} + +class FpgaTestForVecCpu extends AnyFlatSpec with ChiselScalatestTester { + def _executeTest[T <: CpuModule](dut: Core_and_cache[T], testName: String, testType: String): Unit = { + println(s"test $testName:") + fork { + initialiseMemWithAxi(s"src/main/resources/applications_${testType}/${testName}_inst.mem", dut.io.imem_initialiseAXI, dut.io.icache_initialising, dut.clock, 0) + }.fork { + initialiseMemWithAxi(s"src/main/resources/applications_${testType}/${testName}_data.mem", dut.io.dmem_initialiseAXI, dut.io.dcache_initialising, dut.clock, 0x4000) + }.join() + dut.clock.setTimeout(0) + dut.io.reset_vector.poke(0.U) + dut.io.hartid.poke(0.U) + + for(_ <- 0 until 1048576) { + dut.clock.step() + } + println(dut.io.toHost.bits.peekInt()) + } + it should "Vector CPU execute matmul for FPGA" in { + test(new Core_and_cache(useVector = true, cpu = classOf[VectorCpu])).withAnnotations(Seq(WriteVcdAnnotation, IcarusBackendAnnotation)) { dut => + _executeTest(dut, "vector_matmul", "fpga") + } + } } \ No newline at end of file