From b17f70b67469417b879090f9d9f381bca17b1ebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=8BLaraib=20Khan?= <​laraib.khan@lampromellon.com> Date: Tue, 26 Jan 2021 09:43:24 +0500 Subject: [PATCH] EXU Top updated --- exu.fir | 332 +++++++++++------- exu.v | 68 ++-- src/main/scala/exu/exu.scala | 2 +- target/scala-2.12/classes/exu/exu.class | Bin 260714 -> 264491 bytes target/scala-2.12/classes/exu/exu_main$.class | Bin 3844 -> 3844 bytes 5 files changed, 237 insertions(+), 165 deletions(-) diff --git a/exu.fir b/exu.fir index 10c99b1e..cf510874 100644 --- a/exu.fir +++ b/exu.fir @@ -45047,34 +45047,100 @@ circuit exu : i_mul.clock <= clock i_mul.reset <= reset i_mul.io.scan_mode <= io.scan_mode @[exu.scala 148:25] - i_mul.io.mul_p.bits.bfp <= io.dec_exu.decode_exu.mul_p.bits.bfp @[exu.scala 149:41] - i_mul.io.mul_p.bits.crc32c_w <= io.dec_exu.decode_exu.mul_p.bits.crc32c_w @[exu.scala 149:41] - i_mul.io.mul_p.bits.crc32c_h <= io.dec_exu.decode_exu.mul_p.bits.crc32c_h @[exu.scala 149:41] - i_mul.io.mul_p.bits.crc32c_b <= io.dec_exu.decode_exu.mul_p.bits.crc32c_b @[exu.scala 149:41] - i_mul.io.mul_p.bits.crc32_w <= io.dec_exu.decode_exu.mul_p.bits.crc32_w @[exu.scala 149:41] - i_mul.io.mul_p.bits.crc32_h <= io.dec_exu.decode_exu.mul_p.bits.crc32_h @[exu.scala 149:41] - i_mul.io.mul_p.bits.crc32_b <= io.dec_exu.decode_exu.mul_p.bits.crc32_b @[exu.scala 149:41] - i_mul.io.mul_p.bits.unshfl <= io.dec_exu.decode_exu.mul_p.bits.unshfl @[exu.scala 149:41] - i_mul.io.mul_p.bits.shfl <= io.dec_exu.decode_exu.mul_p.bits.shfl @[exu.scala 149:41] - i_mul.io.mul_p.bits.gorc <= io.dec_exu.decode_exu.mul_p.bits.gorc @[exu.scala 149:41] - i_mul.io.mul_p.bits.grev <= io.dec_exu.decode_exu.mul_p.bits.grev @[exu.scala 149:41] - i_mul.io.mul_p.bits.clmulr <= io.dec_exu.decode_exu.mul_p.bits.clmulr @[exu.scala 149:41] - i_mul.io.mul_p.bits.clmulh <= io.dec_exu.decode_exu.mul_p.bits.clmulh @[exu.scala 149:41] - i_mul.io.mul_p.bits.clmul <= io.dec_exu.decode_exu.mul_p.bits.clmul @[exu.scala 149:41] - i_mul.io.mul_p.bits.bdep <= io.dec_exu.decode_exu.mul_p.bits.bdep @[exu.scala 149:41] - i_mul.io.mul_p.bits.bext <= io.dec_exu.decode_exu.mul_p.bits.bext @[exu.scala 149:41] - i_mul.io.mul_p.bits.low <= io.dec_exu.decode_exu.mul_p.bits.low @[exu.scala 149:41] - i_mul.io.mul_p.bits.rs2_sign <= io.dec_exu.decode_exu.mul_p.bits.rs2_sign @[exu.scala 149:41] - i_mul.io.mul_p.bits.rs1_sign <= io.dec_exu.decode_exu.mul_p.bits.rs1_sign @[exu.scala 149:41] - i_mul.io.mul_p.valid <= io.dec_exu.decode_exu.mul_p.valid @[exu.scala 149:41] - node _T_160 = bits(io.dec_exu.decode_exu.mul_p.valid, 0, 0) @[Bitwise.scala 72:15] - node _T_161 = mux(_T_160, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12] - node _T_162 = and(muldiv_rs1_d, _T_161) @[exu.scala 150:57] - i_mul.io.rs1_in <= _T_162 @[exu.scala 150:41] - node _T_163 = bits(io.dec_exu.decode_exu.mul_p.valid, 0, 0) @[Bitwise.scala 72:15] - node _T_164 = mux(_T_163, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12] - node _T_165 = and(i0_rs2_d, _T_164) @[exu.scala 151:54] - i_mul.io.rs2_in <= _T_165 @[exu.scala 151:41] + node _T_160 = cat(io.dec_exu.decode_exu.mul_p.bits.crc32c_w, io.dec_exu.decode_exu.mul_p.bits.bfp) @[exu.scala 149:139] + node _T_161 = cat(io.dec_exu.decode_exu.mul_p.bits.crc32c_b, io.dec_exu.decode_exu.mul_p.bits.crc32c_h) @[exu.scala 149:139] + node _T_162 = cat(_T_161, _T_160) @[exu.scala 149:139] + node _T_163 = cat(io.dec_exu.decode_exu.mul_p.bits.crc32_h, io.dec_exu.decode_exu.mul_p.bits.crc32_w) @[exu.scala 149:139] + node _T_164 = cat(io.dec_exu.decode_exu.mul_p.bits.shfl, io.dec_exu.decode_exu.mul_p.bits.unshfl) @[exu.scala 149:139] + node _T_165 = cat(_T_164, io.dec_exu.decode_exu.mul_p.bits.crc32_b) @[exu.scala 149:139] + node _T_166 = cat(_T_165, _T_163) @[exu.scala 149:139] + node _T_167 = cat(_T_166, _T_162) @[exu.scala 149:139] + node _T_168 = cat(io.dec_exu.decode_exu.mul_p.bits.grev, io.dec_exu.decode_exu.mul_p.bits.gorc) @[exu.scala 149:139] + node _T_169 = cat(io.dec_exu.decode_exu.mul_p.bits.clmul, io.dec_exu.decode_exu.mul_p.bits.clmulh) @[exu.scala 149:139] + node _T_170 = cat(_T_169, io.dec_exu.decode_exu.mul_p.bits.clmulr) @[exu.scala 149:139] + node _T_171 = cat(_T_170, _T_168) @[exu.scala 149:139] + node _T_172 = cat(io.dec_exu.decode_exu.mul_p.bits.bext, io.dec_exu.decode_exu.mul_p.bits.bdep) @[exu.scala 149:139] + node _T_173 = cat(io.dec_exu.decode_exu.mul_p.bits.rs1_sign, io.dec_exu.decode_exu.mul_p.bits.rs2_sign) @[exu.scala 149:139] + node _T_174 = cat(_T_173, io.dec_exu.decode_exu.mul_p.bits.low) @[exu.scala 149:139] + node _T_175 = cat(_T_174, _T_172) @[exu.scala 149:139] + node _T_176 = cat(_T_175, _T_171) @[exu.scala 149:139] + node _T_177 = cat(_T_176, _T_167) @[exu.scala 149:139] + node _T_178 = bits(io.dec_exu.decode_exu.mul_p.valid, 0, 0) @[Bitwise.scala 72:15] + node _T_179 = mux(_T_178, UInt<2>("h03"), UInt<2>("h00")) @[Bitwise.scala 72:12] + node _T_180 = and(_T_177, _T_179) @[exu.scala 149:146] + wire _T_181 : UInt<19>[1] @[exu.scala 149:92] + _T_181[0] <= _T_180 @[exu.scala 149:92] + wire _T_182 : {valid : UInt<1>, bits : {rs1_sign : UInt<1>, rs2_sign : UInt<1>, low : UInt<1>, bext : UInt<1>, bdep : UInt<1>, clmul : UInt<1>, clmulh : UInt<1>, clmulr : UInt<1>, grev : UInt<1>, gorc : UInt<1>, shfl : UInt<1>, unshfl : UInt<1>, crc32_b : UInt<1>, crc32_h : UInt<1>, crc32_w : UInt<1>, crc32c_b : UInt<1>, crc32c_h : UInt<1>, crc32c_w : UInt<1>, bfp : UInt<1>}} @[exu.scala 149:242] + wire _T_183 : UInt<20> + _T_183 <= _T_181[0] + node _T_184 = bits(_T_183, 0, 0) @[exu.scala 149:242] + _T_182.bits.bfp <= _T_184 @[exu.scala 149:242] + node _T_185 = bits(_T_183, 1, 1) @[exu.scala 149:242] + _T_182.bits.crc32c_w <= _T_185 @[exu.scala 149:242] + node _T_186 = bits(_T_183, 2, 2) @[exu.scala 149:242] + _T_182.bits.crc32c_h <= _T_186 @[exu.scala 149:242] + node _T_187 = bits(_T_183, 3, 3) @[exu.scala 149:242] + _T_182.bits.crc32c_b <= _T_187 @[exu.scala 149:242] + node _T_188 = bits(_T_183, 4, 4) @[exu.scala 149:242] + _T_182.bits.crc32_w <= _T_188 @[exu.scala 149:242] + node _T_189 = bits(_T_183, 5, 5) @[exu.scala 149:242] + _T_182.bits.crc32_h <= _T_189 @[exu.scala 149:242] + node _T_190 = bits(_T_183, 6, 6) @[exu.scala 149:242] + _T_182.bits.crc32_b <= _T_190 @[exu.scala 149:242] + node _T_191 = bits(_T_183, 7, 7) @[exu.scala 149:242] + _T_182.bits.unshfl <= _T_191 @[exu.scala 149:242] + node _T_192 = bits(_T_183, 8, 8) @[exu.scala 149:242] + _T_182.bits.shfl <= _T_192 @[exu.scala 149:242] + node _T_193 = bits(_T_183, 9, 9) @[exu.scala 149:242] + _T_182.bits.gorc <= _T_193 @[exu.scala 149:242] + node _T_194 = bits(_T_183, 10, 10) @[exu.scala 149:242] + _T_182.bits.grev <= _T_194 @[exu.scala 149:242] + node _T_195 = bits(_T_183, 11, 11) @[exu.scala 149:242] + _T_182.bits.clmulr <= _T_195 @[exu.scala 149:242] + node _T_196 = bits(_T_183, 12, 12) @[exu.scala 149:242] + _T_182.bits.clmulh <= _T_196 @[exu.scala 149:242] + node _T_197 = bits(_T_183, 13, 13) @[exu.scala 149:242] + _T_182.bits.clmul <= _T_197 @[exu.scala 149:242] + node _T_198 = bits(_T_183, 14, 14) @[exu.scala 149:242] + _T_182.bits.bdep <= _T_198 @[exu.scala 149:242] + node _T_199 = bits(_T_183, 15, 15) @[exu.scala 149:242] + _T_182.bits.bext <= _T_199 @[exu.scala 149:242] + node _T_200 = bits(_T_183, 16, 16) @[exu.scala 149:242] + _T_182.bits.low <= _T_200 @[exu.scala 149:242] + node _T_201 = bits(_T_183, 17, 17) @[exu.scala 149:242] + _T_182.bits.rs2_sign <= _T_201 @[exu.scala 149:242] + node _T_202 = bits(_T_183, 18, 18) @[exu.scala 149:242] + _T_182.bits.rs1_sign <= _T_202 @[exu.scala 149:242] + node _T_203 = bits(_T_183, 19, 19) @[exu.scala 149:242] + _T_182.valid <= _T_203 @[exu.scala 149:242] + i_mul.io.mul_p.bits.bfp <= _T_182.bits.bfp @[exu.scala 149:25] + i_mul.io.mul_p.bits.crc32c_w <= _T_182.bits.crc32c_w @[exu.scala 149:25] + i_mul.io.mul_p.bits.crc32c_h <= _T_182.bits.crc32c_h @[exu.scala 149:25] + i_mul.io.mul_p.bits.crc32c_b <= _T_182.bits.crc32c_b @[exu.scala 149:25] + i_mul.io.mul_p.bits.crc32_w <= _T_182.bits.crc32_w @[exu.scala 149:25] + i_mul.io.mul_p.bits.crc32_h <= _T_182.bits.crc32_h @[exu.scala 149:25] + i_mul.io.mul_p.bits.crc32_b <= _T_182.bits.crc32_b @[exu.scala 149:25] + i_mul.io.mul_p.bits.unshfl <= _T_182.bits.unshfl @[exu.scala 149:25] + i_mul.io.mul_p.bits.shfl <= _T_182.bits.shfl @[exu.scala 149:25] + i_mul.io.mul_p.bits.gorc <= _T_182.bits.gorc @[exu.scala 149:25] + i_mul.io.mul_p.bits.grev <= _T_182.bits.grev @[exu.scala 149:25] + i_mul.io.mul_p.bits.clmulr <= _T_182.bits.clmulr @[exu.scala 149:25] + i_mul.io.mul_p.bits.clmulh <= _T_182.bits.clmulh @[exu.scala 149:25] + i_mul.io.mul_p.bits.clmul <= _T_182.bits.clmul @[exu.scala 149:25] + i_mul.io.mul_p.bits.bdep <= _T_182.bits.bdep @[exu.scala 149:25] + i_mul.io.mul_p.bits.bext <= _T_182.bits.bext @[exu.scala 149:25] + i_mul.io.mul_p.bits.low <= _T_182.bits.low @[exu.scala 149:25] + i_mul.io.mul_p.bits.rs2_sign <= _T_182.bits.rs2_sign @[exu.scala 149:25] + i_mul.io.mul_p.bits.rs1_sign <= _T_182.bits.rs1_sign @[exu.scala 149:25] + i_mul.io.mul_p.valid <= _T_182.valid @[exu.scala 149:25] + node _T_204 = bits(io.dec_exu.decode_exu.mul_p.valid, 0, 0) @[Bitwise.scala 72:15] + node _T_205 = mux(_T_204, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12] + node _T_206 = and(muldiv_rs1_d, _T_205) @[exu.scala 150:57] + i_mul.io.rs1_in <= _T_206 @[exu.scala 150:41] + node _T_207 = bits(io.dec_exu.decode_exu.mul_p.valid, 0, 0) @[Bitwise.scala 72:15] + node _T_208 = mux(_T_207, UInt<32>("h0ffffffff"), UInt<32>("h00")) @[Bitwise.scala 72:12] + node _T_209 = and(i0_rs2_d, _T_208) @[exu.scala 151:54] + i_mul.io.rs2_in <= _T_209 @[exu.scala 151:41] inst i_div of exu_div_ctl @[exu.scala 154:21] i_div.clock <= clock i_div.reset <= reset @@ -45087,9 +45153,9 @@ circuit exu : i_div.io.divisor <= i0_rs2_d @[exu.scala 158:33] io.exu_div_wren <= i_div.io.exu_div_wren @[exu.scala 159:41] io.exu_div_result <= i_div.io.exu_div_result @[exu.scala 160:33] - node _T_166 = bits(mul_valid_x, 0, 0) @[exu.scala 162:76] - node _T_167 = mux(_T_166, i_mul.io.result_x, i_alu.io.result_ff) @[exu.scala 162:63] - io.dec_exu.decode_exu.exu_i0_result_x <= _T_167 @[exu.scala 162:57] + node _T_210 = bits(mul_valid_x, 0, 0) @[exu.scala 162:76] + node _T_211 = mux(_T_210, i_mul.io.result_x, i_alu.io.result_ff) @[exu.scala 162:63] + io.dec_exu.decode_exu.exu_i0_result_x <= _T_211 @[exu.scala 162:57] i0_predict_newp_d.bits.prett <= io.dec_exu.decode_exu.dec_i0_predict_p_d.bits.prett @[exu.scala 163:47] i0_predict_newp_d.bits.pret <= io.dec_exu.decode_exu.dec_i0_predict_p_d.bits.pret @[exu.scala 163:47] i0_predict_newp_d.bits.way <= io.dec_exu.decode_exu.dec_i0_predict_p_d.bits.way @[exu.scala 163:47] @@ -45104,94 +45170,94 @@ circuit exu : i0_predict_newp_d.bits.ataken <= io.dec_exu.decode_exu.dec_i0_predict_p_d.bits.ataken @[exu.scala 163:47] i0_predict_newp_d.bits.misp <= io.dec_exu.decode_exu.dec_i0_predict_p_d.bits.misp @[exu.scala 163:47] i0_predict_newp_d.valid <= io.dec_exu.decode_exu.dec_i0_predict_p_d.valid @[exu.scala 163:47] - node _T_168 = bits(io.dec_exu.ib_exu.dec_i0_pc_d, 0, 0) @[exu.scala 164:80] - i0_predict_newp_d.bits.boffset <= _T_168 @[exu.scala 164:47] + node _T_212 = bits(io.dec_exu.ib_exu.dec_i0_pc_d, 0, 0) @[exu.scala 164:80] + i0_predict_newp_d.bits.boffset <= _T_212 @[exu.scala 164:47] io.dec_exu.tlu_exu.exu_pmu_i0_br_misp <= i0_pp_r.bits.misp @[exu.scala 166:47] io.dec_exu.tlu_exu.exu_pmu_i0_br_ataken <= i0_pp_r.bits.ataken @[exu.scala 167:47] io.dec_exu.tlu_exu.exu_pmu_i0_pc4 <= i0_pp_r.bits.pc4 @[exu.scala 168:47] - node _T_169 = and(i0_predict_p_d.valid, io.dec_exu.dec_alu.dec_i0_alu_decode_d) @[exu.scala 171:54] - node _T_170 = eq(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, UInt<1>("h00")) @[exu.scala 171:97] - node _T_171 = and(_T_169, _T_170) @[exu.scala 171:95] - i0_valid_d <= _T_171 @[exu.scala 171:28] - node _T_172 = and(i0_predict_p_d.bits.ataken, io.dec_exu.dec_alu.dec_i0_alu_decode_d) @[exu.scala 172:59] - i0_taken_d <= _T_172 @[exu.scala 172:28] - node _T_173 = eq(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, UInt<1>("h00")) @[exu.scala 178:8] - node _T_174 = and(_T_173, i0_valid_d) @[exu.scala 178:50] - node _T_175 = bits(_T_174, 0, 0) @[exu.scala 178:64] - node _T_176 = bits(ghr_d, 6, 0) @[exu.scala 178:85] - node _T_177 = cat(_T_176, i0_taken_d) @[Cat.scala 29:58] - node _T_178 = eq(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, UInt<1>("h00")) @[exu.scala 179:8] - node _T_179 = eq(i0_valid_d, UInt<1>("h00")) @[exu.scala 179:52] - node _T_180 = and(_T_178, _T_179) @[exu.scala 179:50] - node _T_181 = bits(_T_180, 0, 0) @[exu.scala 179:65] - node _T_182 = bits(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, 0, 0) @[exu.scala 180:50] - node _T_183 = mux(_T_175, _T_177, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_184 = mux(_T_181, ghr_d, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_185 = mux(_T_182, ghr_x, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_186 = or(_T_183, _T_184) @[Mux.scala 27:72] - node _T_187 = or(_T_186, _T_185) @[Mux.scala 27:72] - wire _T_188 : UInt @[Mux.scala 27:72] - _T_188 <= _T_187 @[Mux.scala 27:72] - ghr_d_ns <= _T_188 @[exu.scala 177:14] - node _T_189 = eq(i0_valid_x, UInt<1>("h01")) @[exu.scala 184:32] - node _T_190 = bits(ghr_x, 6, 0) @[exu.scala 184:50] - node _T_191 = cat(_T_190, i0_taken_x) @[Cat.scala 29:58] - node _T_192 = mux(_T_189, _T_191, ghr_x) @[exu.scala 184:20] - ghr_x_ns <= _T_192 @[exu.scala 184:14] + node _T_213 = and(i0_predict_p_d.valid, io.dec_exu.dec_alu.dec_i0_alu_decode_d) @[exu.scala 171:54] + node _T_214 = eq(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, UInt<1>("h00")) @[exu.scala 171:97] + node _T_215 = and(_T_213, _T_214) @[exu.scala 171:95] + i0_valid_d <= _T_215 @[exu.scala 171:28] + node _T_216 = and(i0_predict_p_d.bits.ataken, io.dec_exu.dec_alu.dec_i0_alu_decode_d) @[exu.scala 172:59] + i0_taken_d <= _T_216 @[exu.scala 172:28] + node _T_217 = eq(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, UInt<1>("h00")) @[exu.scala 178:8] + node _T_218 = and(_T_217, i0_valid_d) @[exu.scala 178:50] + node _T_219 = bits(_T_218, 0, 0) @[exu.scala 178:64] + node _T_220 = bits(ghr_d, 6, 0) @[exu.scala 178:85] + node _T_221 = cat(_T_220, i0_taken_d) @[Cat.scala 29:58] + node _T_222 = eq(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, UInt<1>("h00")) @[exu.scala 179:8] + node _T_223 = eq(i0_valid_d, UInt<1>("h00")) @[exu.scala 179:52] + node _T_224 = and(_T_222, _T_223) @[exu.scala 179:50] + node _T_225 = bits(_T_224, 0, 0) @[exu.scala 179:65] + node _T_226 = bits(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, 0, 0) @[exu.scala 180:50] + node _T_227 = mux(_T_219, _T_221, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_228 = mux(_T_225, ghr_d, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_229 = mux(_T_226, ghr_x, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_230 = or(_T_227, _T_228) @[Mux.scala 27:72] + node _T_231 = or(_T_230, _T_229) @[Mux.scala 27:72] + wire _T_232 : UInt @[Mux.scala 27:72] + _T_232 <= _T_231 @[Mux.scala 27:72] + ghr_d_ns <= _T_232 @[exu.scala 177:14] + node _T_233 = eq(i0_valid_x, UInt<1>("h01")) @[exu.scala 184:32] + node _T_234 = bits(ghr_x, 6, 0) @[exu.scala 184:50] + node _T_235 = cat(_T_234, i0_taken_x) @[Cat.scala 29:58] + node _T_236 = mux(_T_233, _T_235, ghr_x) @[exu.scala 184:20] + ghr_x_ns <= _T_236 @[exu.scala 184:14] io.dec_exu.tlu_exu.exu_i0_br_valid_r <= i0_pp_r.valid @[exu.scala 186:43] io.dec_exu.tlu_exu.exu_i0_br_mp_r <= i0_pp_r.bits.misp @[exu.scala 187:43] io.exu_bp.exu_i0_br_way_r <= i0_pp_r.bits.way @[exu.scala 188:43] - node _T_193 = bits(i0_pp_r.valid, 0, 0) @[Bitwise.scala 72:15] - node _T_194 = mux(_T_193, UInt<2>("h03"), UInt<2>("h00")) @[Bitwise.scala 72:12] - node _T_195 = and(_T_194, i0_pp_r.bits.hist) @[exu.scala 189:69] - io.dec_exu.tlu_exu.exu_i0_br_hist_r <= _T_195 @[exu.scala 189:43] + node _T_237 = bits(i0_pp_r.valid, 0, 0) @[Bitwise.scala 72:15] + node _T_238 = mux(_T_237, UInt<2>("h03"), UInt<2>("h00")) @[Bitwise.scala 72:12] + node _T_239 = and(_T_238, i0_pp_r.bits.hist) @[exu.scala 189:69] + io.dec_exu.tlu_exu.exu_i0_br_hist_r <= _T_239 @[exu.scala 189:43] io.dec_exu.tlu_exu.exu_i0_br_error_r <= i0_pp_r.bits.br_error @[exu.scala 190:43] - node _T_196 = xor(i0_pp_r.bits.pc4, i0_pp_r.bits.boffset) @[exu.scala 191:63] - io.dec_exu.tlu_exu.exu_i0_br_middle_r <= _T_196 @[exu.scala 191:43] + node _T_240 = xor(i0_pp_r.bits.pc4, i0_pp_r.bits.boffset) @[exu.scala 191:63] + io.dec_exu.tlu_exu.exu_i0_br_middle_r <= _T_240 @[exu.scala 191:43] io.dec_exu.tlu_exu.exu_i0_br_start_error_r <= i0_pp_r.bits.br_start_error @[exu.scala 192:48] - node _T_197 = bits(predpipe_r, 20, 13) @[exu.scala 193:56] - io.exu_bp.exu_i0_br_fghr_r <= _T_197 @[exu.scala 193:43] - node _T_198 = bits(predpipe_r, 12, 5) @[exu.scala 194:56] - io.dec_exu.tlu_exu.exu_i0_br_index_r <= _T_198 @[exu.scala 194:43] + node _T_241 = bits(predpipe_r, 20, 13) @[exu.scala 193:56] + io.exu_bp.exu_i0_br_fghr_r <= _T_241 @[exu.scala 193:43] + node _T_242 = bits(predpipe_r, 12, 5) @[exu.scala 194:56] + io.dec_exu.tlu_exu.exu_i0_br_index_r <= _T_242 @[exu.scala 194:43] io.exu_bp.exu_i0_br_index_r <= io.dec_exu.tlu_exu.exu_i0_br_index_r @[exu.scala 195:43] - node _T_199 = eq(i0_flush_upper_x, UInt<1>("h01")) @[exu.scala 196:67] - wire _T_200 : {valid : UInt<1>, bits : {misp : UInt<1>, ataken : UInt<1>, boffset : UInt<1>, pc4 : UInt<1>, hist : UInt<2>, toffset : UInt<12>, br_error : UInt<1>, br_start_error : UInt<1>, pcall : UInt<1>, pja : UInt<1>, way : UInt<1>, pret : UInt<1>, prett : UInt<31>}} @[exu.scala 196:104] - _T_200.bits.prett <= UInt<31>("h00") @[exu.scala 196:104] - _T_200.bits.pret <= UInt<1>("h00") @[exu.scala 196:104] - _T_200.bits.way <= UInt<1>("h00") @[exu.scala 196:104] - _T_200.bits.pja <= UInt<1>("h00") @[exu.scala 196:104] - _T_200.bits.pcall <= UInt<1>("h00") @[exu.scala 196:104] - _T_200.bits.br_start_error <= UInt<1>("h00") @[exu.scala 196:104] - _T_200.bits.br_error <= UInt<1>("h00") @[exu.scala 196:104] - _T_200.bits.toffset <= UInt<12>("h00") @[exu.scala 196:104] - _T_200.bits.hist <= UInt<2>("h00") @[exu.scala 196:104] - _T_200.bits.pc4 <= UInt<1>("h00") @[exu.scala 196:104] - _T_200.bits.boffset <= UInt<1>("h00") @[exu.scala 196:104] - _T_200.bits.ataken <= UInt<1>("h00") @[exu.scala 196:104] - _T_200.bits.misp <= UInt<1>("h00") @[exu.scala 196:104] - _T_200.valid <= UInt<1>("h00") @[exu.scala 196:104] - node _T_201 = mux(_T_199, i0_predict_p_x, _T_200) @[exu.scala 196:49] - final_predict_mp.bits.prett <= _T_201.bits.prett @[exu.scala 196:43] - final_predict_mp.bits.pret <= _T_201.bits.pret @[exu.scala 196:43] - final_predict_mp.bits.way <= _T_201.bits.way @[exu.scala 196:43] - final_predict_mp.bits.pja <= _T_201.bits.pja @[exu.scala 196:43] - final_predict_mp.bits.pcall <= _T_201.bits.pcall @[exu.scala 196:43] - final_predict_mp.bits.br_start_error <= _T_201.bits.br_start_error @[exu.scala 196:43] - final_predict_mp.bits.br_error <= _T_201.bits.br_error @[exu.scala 196:43] - final_predict_mp.bits.toffset <= _T_201.bits.toffset @[exu.scala 196:43] - final_predict_mp.bits.hist <= _T_201.bits.hist @[exu.scala 196:43] - final_predict_mp.bits.pc4 <= _T_201.bits.pc4 @[exu.scala 196:43] - final_predict_mp.bits.boffset <= _T_201.bits.boffset @[exu.scala 196:43] - final_predict_mp.bits.ataken <= _T_201.bits.ataken @[exu.scala 196:43] - final_predict_mp.bits.misp <= _T_201.bits.misp @[exu.scala 196:43] - final_predict_mp.valid <= _T_201.valid @[exu.scala 196:43] - node _T_202 = eq(i0_flush_upper_x, UInt<1>("h01")) @[exu.scala 197:66] - node final_predpipe_mp = mux(_T_202, predpipe_x, UInt<1>("h00")) @[exu.scala 197:48] - node _T_203 = eq(i0_flush_upper_x, UInt<1>("h01")) @[exu.scala 199:67] - node _T_204 = eq(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, UInt<1>("h01")) @[exu.scala 199:120] - node _T_205 = eq(_T_204, UInt<1>("h00")) @[exu.scala 199:77] - node _T_206 = and(_T_203, _T_205) @[exu.scala 199:75] - node after_flush_eghr = mux(_T_206, ghr_d, ghr_x) @[exu.scala 199:48] + node _T_243 = eq(i0_flush_upper_x, UInt<1>("h01")) @[exu.scala 196:67] + wire _T_244 : {valid : UInt<1>, bits : {misp : UInt<1>, ataken : UInt<1>, boffset : UInt<1>, pc4 : UInt<1>, hist : UInt<2>, toffset : UInt<12>, br_error : UInt<1>, br_start_error : UInt<1>, pcall : UInt<1>, pja : UInt<1>, way : UInt<1>, pret : UInt<1>, prett : UInt<31>}} @[exu.scala 196:104] + _T_244.bits.prett <= UInt<31>("h00") @[exu.scala 196:104] + _T_244.bits.pret <= UInt<1>("h00") @[exu.scala 196:104] + _T_244.bits.way <= UInt<1>("h00") @[exu.scala 196:104] + _T_244.bits.pja <= UInt<1>("h00") @[exu.scala 196:104] + _T_244.bits.pcall <= UInt<1>("h00") @[exu.scala 196:104] + _T_244.bits.br_start_error <= UInt<1>("h00") @[exu.scala 196:104] + _T_244.bits.br_error <= UInt<1>("h00") @[exu.scala 196:104] + _T_244.bits.toffset <= UInt<12>("h00") @[exu.scala 196:104] + _T_244.bits.hist <= UInt<2>("h00") @[exu.scala 196:104] + _T_244.bits.pc4 <= UInt<1>("h00") @[exu.scala 196:104] + _T_244.bits.boffset <= UInt<1>("h00") @[exu.scala 196:104] + _T_244.bits.ataken <= UInt<1>("h00") @[exu.scala 196:104] + _T_244.bits.misp <= UInt<1>("h00") @[exu.scala 196:104] + _T_244.valid <= UInt<1>("h00") @[exu.scala 196:104] + node _T_245 = mux(_T_243, i0_predict_p_x, _T_244) @[exu.scala 196:49] + final_predict_mp.bits.prett <= _T_245.bits.prett @[exu.scala 196:43] + final_predict_mp.bits.pret <= _T_245.bits.pret @[exu.scala 196:43] + final_predict_mp.bits.way <= _T_245.bits.way @[exu.scala 196:43] + final_predict_mp.bits.pja <= _T_245.bits.pja @[exu.scala 196:43] + final_predict_mp.bits.pcall <= _T_245.bits.pcall @[exu.scala 196:43] + final_predict_mp.bits.br_start_error <= _T_245.bits.br_start_error @[exu.scala 196:43] + final_predict_mp.bits.br_error <= _T_245.bits.br_error @[exu.scala 196:43] + final_predict_mp.bits.toffset <= _T_245.bits.toffset @[exu.scala 196:43] + final_predict_mp.bits.hist <= _T_245.bits.hist @[exu.scala 196:43] + final_predict_mp.bits.pc4 <= _T_245.bits.pc4 @[exu.scala 196:43] + final_predict_mp.bits.boffset <= _T_245.bits.boffset @[exu.scala 196:43] + final_predict_mp.bits.ataken <= _T_245.bits.ataken @[exu.scala 196:43] + final_predict_mp.bits.misp <= _T_245.bits.misp @[exu.scala 196:43] + final_predict_mp.valid <= _T_245.valid @[exu.scala 196:43] + node _T_246 = eq(i0_flush_upper_x, UInt<1>("h01")) @[exu.scala 197:66] + node final_predpipe_mp = mux(_T_246, predpipe_x, UInt<1>("h00")) @[exu.scala 197:48] + node _T_247 = eq(i0_flush_upper_x, UInt<1>("h01")) @[exu.scala 199:67] + node _T_248 = eq(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, UInt<1>("h01")) @[exu.scala 199:120] + node _T_249 = eq(_T_248, UInt<1>("h00")) @[exu.scala 199:77] + node _T_250 = and(_T_247, _T_249) @[exu.scala 199:75] + node after_flush_eghr = mux(_T_250, ghr_d, ghr_x) @[exu.scala 199:48] io.exu_bp.exu_mp_pkt.valid <= final_predict_mp.valid @[exu.scala 201:39] io.exu_bp.exu_mp_pkt.bits.way <= final_predict_mp.bits.way @[exu.scala 202:39] io.exu_bp.exu_mp_pkt.bits.misp <= final_predict_mp.bits.misp @[exu.scala 203:39] @@ -45201,28 +45267,28 @@ circuit exu : io.exu_bp.exu_mp_pkt.bits.ataken <= final_predict_mp.bits.ataken @[exu.scala 207:39] io.exu_bp.exu_mp_pkt.bits.boffset <= final_predict_mp.bits.boffset @[exu.scala 208:39] io.exu_bp.exu_mp_pkt.bits.pc4 <= final_predict_mp.bits.pc4 @[exu.scala 209:39] - node _T_207 = bits(final_predict_mp.bits.hist, 1, 0) @[exu.scala 210:68] - io.exu_bp.exu_mp_pkt.bits.hist <= _T_207 @[exu.scala 210:39] - node _T_208 = bits(final_predict_mp.bits.toffset, 11, 0) @[exu.scala 211:71] - io.exu_bp.exu_mp_pkt.bits.toffset <= _T_208 @[exu.scala 211:39] + node _T_251 = bits(final_predict_mp.bits.hist, 1, 0) @[exu.scala 210:68] + io.exu_bp.exu_mp_pkt.bits.hist <= _T_251 @[exu.scala 210:39] + node _T_252 = bits(final_predict_mp.bits.toffset, 11, 0) @[exu.scala 211:71] + io.exu_bp.exu_mp_pkt.bits.toffset <= _T_252 @[exu.scala 211:39] io.exu_bp.exu_mp_fghr <= after_flush_eghr @[exu.scala 212:39] - node _T_209 = bits(final_predpipe_mp, 12, 5) @[exu.scala 213:59] - io.exu_bp.exu_mp_index <= _T_209 @[exu.scala 213:39] - node _T_210 = bits(final_predpipe_mp, 4, 0) @[exu.scala 214:59] - io.exu_bp.exu_mp_btag <= _T_210 @[exu.scala 214:39] - node _T_211 = bits(final_predpipe_mp, 20, 13) @[exu.scala 215:59] - io.exu_bp.exu_mp_eghr <= _T_211 @[exu.scala 215:39] - node _T_212 = bits(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, 0, 0) @[exu.scala 237:46] - node _T_213 = not(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r) @[exu.scala 238:6] - node _T_214 = and(_T_213, i0_flush_upper_d) @[exu.scala 238:48] - node _T_215 = bits(_T_214, 0, 0) @[exu.scala 238:68] - node _T_216 = mux(_T_212, io.dec_exu.tlu_exu.dec_tlu_flush_path_r, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_217 = mux(_T_215, i0_flush_path_d, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_218 = or(_T_216, _T_217) @[Mux.scala 27:72] - wire _T_219 : UInt<31> @[Mux.scala 27:72] - _T_219 <= _T_218 @[Mux.scala 27:72] - io.exu_flush_path_final <= _T_219 @[exu.scala 236:33] - node _T_220 = eq(i0_pred_correct_upper_r, UInt<1>("h01")) @[exu.scala 240:79] - node _T_221 = mux(_T_220, pred_correct_npc_r, i0_flush_path_upper_r) @[exu.scala 240:55] - io.dec_exu.tlu_exu.exu_npc_r <= _T_221 @[exu.scala 240:49] + node _T_253 = bits(final_predpipe_mp, 12, 5) @[exu.scala 213:59] + io.exu_bp.exu_mp_index <= _T_253 @[exu.scala 213:39] + node _T_254 = bits(final_predpipe_mp, 4, 0) @[exu.scala 214:59] + io.exu_bp.exu_mp_btag <= _T_254 @[exu.scala 214:39] + node _T_255 = bits(final_predpipe_mp, 20, 13) @[exu.scala 215:59] + io.exu_bp.exu_mp_eghr <= _T_255 @[exu.scala 215:39] + node _T_256 = bits(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r, 0, 0) @[exu.scala 237:46] + node _T_257 = not(io.dec_exu.tlu_exu.dec_tlu_flush_lower_r) @[exu.scala 238:6] + node _T_258 = and(_T_257, i0_flush_upper_d) @[exu.scala 238:48] + node _T_259 = bits(_T_258, 0, 0) @[exu.scala 238:68] + node _T_260 = mux(_T_256, io.dec_exu.tlu_exu.dec_tlu_flush_path_r, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_261 = mux(_T_259, i0_flush_path_d, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_262 = or(_T_260, _T_261) @[Mux.scala 27:72] + wire _T_263 : UInt<31> @[Mux.scala 27:72] + _T_263 <= _T_262 @[Mux.scala 27:72] + io.exu_flush_path_final <= _T_263 @[exu.scala 236:33] + node _T_264 = eq(i0_pred_correct_upper_r, UInt<1>("h01")) @[exu.scala 240:79] + node _T_265 = mux(_T_264, pred_correct_npc_r, i0_flush_path_upper_r) @[exu.scala 240:55] + io.dec_exu.tlu_exu.exu_npc_r <= _T_265 @[exu.scala 240:49] diff --git a/exu.v b/exu.v index 30fc3dcf..90298d50 100644 --- a/exu.v +++ b/exu.v @@ -2344,15 +2344,15 @@ module exu( reg [7:0] ghr_x; // @[Reg.scala 27:20] reg i0_valid_x; // @[Reg.scala 27:20] reg i0_taken_x; // @[Reg.scala 27:20] - wire [7:0] _T_191 = {ghr_x[6:0],i0_taken_x}; // @[Cat.scala 29:58] + wire [7:0] _T_235 = {ghr_x[6:0],i0_taken_x}; // @[Cat.scala 29:58] reg i0_pred_correct_upper_x; // @[Reg.scala 27:20] wire i0_pred_correct_upper_d = i_alu_io_pred_correct_out; // @[exu.scala 47:41 exu.scala 145:27] reg i0_flush_upper_x; // @[Reg.scala 27:20] wire i0_flush_upper_d = i_alu_io_flush_upper_out; // @[exu.scala 48:45 exu.scala 141:35] wire i0_taken_d = i0_predict_p_d_bits_ataken & io_dec_exu_dec_alu_dec_i0_alu_decode_d; // @[exu.scala 172:59] - wire _T_169 = i0_predict_p_d_valid & io_dec_exu_dec_alu_dec_i0_alu_decode_d; // @[exu.scala 171:54] - wire _T_170 = ~io_dec_exu_tlu_exu_dec_tlu_flush_lower_r; // @[exu.scala 171:97] - wire i0_valid_d = _T_169 & _T_170; // @[exu.scala 171:95] + wire _T_213 = i0_predict_p_d_valid & io_dec_exu_dec_alu_dec_i0_alu_decode_d; // @[exu.scala 171:54] + wire _T_214 = ~io_dec_exu_tlu_exu_dec_tlu_flush_lower_r; // @[exu.scala 171:97] + wire i0_valid_d = _T_213 & _T_214; // @[exu.scala 171:95] reg i0_pp_r_valid; // @[Reg.scala 27:20] reg i0_pp_r_bits_misp; // @[Reg.scala 27:20] reg i0_pp_r_bits_ataken; // @[Reg.scala 27:20] @@ -2367,16 +2367,16 @@ module exu( reg [30:0] i0_flush_path_upper_r; // @[Reg.scala 27:20] reg [24:0] pred_temp2; // @[Reg.scala 27:20] wire [30:0] _T_31 = {pred_temp2,pred_temp1}; // @[Cat.scala 29:58] - wire _T_174 = _T_170 & i0_valid_d; // @[exu.scala 178:50] + wire _T_218 = _T_214 & i0_valid_d; // @[exu.scala 178:50] reg [7:0] ghr_d; // @[Reg.scala 27:20] - wire [7:0] _T_177 = {ghr_d[6:0],i0_taken_d}; // @[Cat.scala 29:58] - wire [7:0] _T_183 = _T_174 ? _T_177 : 8'h0; // @[Mux.scala 27:72] - wire _T_179 = ~i0_valid_d; // @[exu.scala 179:52] - wire _T_180 = _T_170 & _T_179; // @[exu.scala 179:50] - wire [7:0] _T_184 = _T_180 ? ghr_d : 8'h0; // @[Mux.scala 27:72] - wire [7:0] _T_186 = _T_183 | _T_184; // @[Mux.scala 27:72] - wire [7:0] _T_185 = io_dec_exu_tlu_exu_dec_tlu_flush_lower_r ? ghr_x : 8'h0; // @[Mux.scala 27:72] - wire [7:0] ghr_d_ns = _T_186 | _T_185; // @[Mux.scala 27:72] + wire [7:0] _T_221 = {ghr_d[6:0],i0_taken_d}; // @[Cat.scala 29:58] + wire [7:0] _T_227 = _T_218 ? _T_221 : 8'h0; // @[Mux.scala 27:72] + wire _T_223 = ~i0_valid_d; // @[exu.scala 179:52] + wire _T_224 = _T_214 & _T_223; // @[exu.scala 179:50] + wire [7:0] _T_228 = _T_224 ? ghr_d : 8'h0; // @[Mux.scala 27:72] + wire [7:0] _T_230 = _T_227 | _T_228; // @[Mux.scala 27:72] + wire [7:0] _T_229 = io_dec_exu_tlu_exu_dec_tlu_flush_lower_r ? ghr_x : 8'h0; // @[Mux.scala 27:72] + wire [7:0] ghr_d_ns = _T_230 | _T_229; // @[Mux.scala 27:72] wire [7:0] _T_33 = ghr_d_ns ^ ghr_d; // @[lib.scala 436:21] wire _T_34 = |_T_33; // @[lib.scala 436:29] reg mul_valid_x; // @[Reg.scala 27:20] @@ -2448,16 +2448,22 @@ module exu( wire _T_153 = _T_87 & io_dec_exu_decode_exu_dec_i0_rs1_en_d; // @[exu.scala 125:26] wire [31:0] _T_156 = _T_153 ? io_dec_exu_gpr_exu_gpr_i0_rs1_d : 32'h0; // @[Mux.scala 27:72] wire [31:0] muldiv_rs1_d = _T_156 | _T_99; // @[Mux.scala 27:72] - wire [31:0] _T_161 = io_dec_exu_decode_exu_mul_p_valid ? 32'hffffffff : 32'h0; // @[Bitwise.scala 72:12] + wire [9:0] _T_176 = {io_dec_exu_decode_exu_mul_p_bits_rs1_sign,io_dec_exu_decode_exu_mul_p_bits_rs2_sign,io_dec_exu_decode_exu_mul_p_bits_low,io_dec_exu_decode_exu_mul_p_bits_bext,io_dec_exu_decode_exu_mul_p_bits_bdep,io_dec_exu_decode_exu_mul_p_bits_clmul,io_dec_exu_decode_exu_mul_p_bits_clmulh,io_dec_exu_decode_exu_mul_p_bits_clmulr,io_dec_exu_decode_exu_mul_p_bits_grev,io_dec_exu_decode_exu_mul_p_bits_gorc}; // @[exu.scala 149:139] + wire [18:0] _T_177 = {_T_176,io_dec_exu_decode_exu_mul_p_bits_shfl,io_dec_exu_decode_exu_mul_p_bits_unshfl,io_dec_exu_decode_exu_mul_p_bits_crc32_b,io_dec_exu_decode_exu_mul_p_bits_crc32_h,io_dec_exu_decode_exu_mul_p_bits_crc32_w,io_dec_exu_decode_exu_mul_p_bits_crc32c_b,io_dec_exu_decode_exu_mul_p_bits_crc32c_h,io_dec_exu_decode_exu_mul_p_bits_crc32c_w,io_dec_exu_decode_exu_mul_p_bits_bfp}; // @[exu.scala 149:139] + wire [1:0] _T_179 = io_dec_exu_decode_exu_mul_p_valid ? 2'h3 : 2'h0; // @[Bitwise.scala 72:12] + wire [18:0] _GEN_44 = {{17'd0}, _T_179}; // @[exu.scala 149:146] + wire [18:0] _T_180 = _T_177 & _GEN_44; // @[exu.scala 149:146] + wire [19:0] _T_183 = {{1'd0}, _T_180}; + wire [31:0] _T_205 = io_dec_exu_decode_exu_mul_p_valid ? 32'hffffffff : 32'h0; // @[Bitwise.scala 72:12] wire [31:0] i0_rs2_d = _T_118; // @[Mux.scala 27:72 Mux.scala 27:72] - wire [1:0] _T_194 = i0_pp_r_valid ? 2'h3 : 2'h0; // @[Bitwise.scala 72:12] + wire [1:0] _T_238 = i0_pp_r_valid ? 2'h3 : 2'h0; // @[Bitwise.scala 72:12] wire [20:0] final_predpipe_mp = i0_flush_upper_x ? predpipe_x : 21'h0; // @[exu.scala 197:48] - wire _T_206 = i0_flush_upper_x & _T_170; // @[exu.scala 199:75] - wire _T_214 = _T_170 & i0_flush_upper_d; // @[exu.scala 238:48] - wire [30:0] _T_216 = io_dec_exu_tlu_exu_dec_tlu_flush_lower_r ? io_dec_exu_tlu_exu_dec_tlu_flush_path_r : 31'h0; // @[Mux.scala 27:72] - wire [30:0] _T_217 = _T_214 ? i0_flush_path_d : 31'h0; // @[Mux.scala 27:72] + wire _T_250 = i0_flush_upper_x & _T_214; // @[exu.scala 199:75] + wire _T_258 = _T_214 & i0_flush_upper_d; // @[exu.scala 238:48] + wire [30:0] _T_260 = io_dec_exu_tlu_exu_dec_tlu_flush_lower_r ? io_dec_exu_tlu_exu_dec_tlu_flush_path_r : 31'h0; // @[Mux.scala 27:72] + wire [30:0] _T_261 = _T_258 ? i0_flush_path_d : 31'h0; // @[Mux.scala 27:72] wire [31:0] pred_correct_npc_r = {{1'd0}, _T_31}; // @[exu.scala 46:51 exu.scala 77:45] - wire [31:0] _T_221 = i0_pred_correct_upper_r ? pred_correct_npc_r : {{1'd0}, i0_flush_path_upper_r}; // @[exu.scala 240:55] + wire [31:0] _T_265 = i0_pred_correct_upper_r ? pred_correct_npc_r : {{1'd0}, i0_flush_path_upper_r}; // @[exu.scala 240:55] rvclkhdr rvclkhdr ( // @[lib.scala 399:23] .io_l1clk(rvclkhdr_io_l1clk), .io_clk(rvclkhdr_io_clk), @@ -2607,7 +2613,7 @@ module exu( assign io_dec_exu_dec_alu_exu_i0_pc_x = i_alu_io_dec_alu_exu_i0_pc_x; // @[exu.scala 130:20] assign io_dec_exu_decode_exu_exu_i0_result_x = mul_valid_x ? i_mul_io_result_x : i_alu_io_result_ff; // @[exu.scala 162:57] assign io_dec_exu_decode_exu_exu_csr_rs1_x = _T_107; // @[exu.scala 104:57] - assign io_dec_exu_tlu_exu_exu_i0_br_hist_r = _T_194 & i0_pp_r_bits_hist; // @[exu.scala 189:43] + assign io_dec_exu_tlu_exu_exu_i0_br_hist_r = _T_238 & i0_pp_r_bits_hist; // @[exu.scala 189:43] assign io_dec_exu_tlu_exu_exu_i0_br_error_r = i0_pp_r_bits_br_error; // @[exu.scala 190:43] assign io_dec_exu_tlu_exu_exu_i0_br_start_error_r = i0_pp_r_bits_br_start_error; // @[exu.scala 192:48] assign io_dec_exu_tlu_exu_exu_i0_br_index_r = predpipe_r[12:5]; // @[exu.scala 194:43] @@ -2617,7 +2623,7 @@ module exu( assign io_dec_exu_tlu_exu_exu_pmu_i0_br_misp = i0_pp_r_bits_misp; // @[exu.scala 166:47] assign io_dec_exu_tlu_exu_exu_pmu_i0_br_ataken = i0_pp_r_bits_ataken; // @[exu.scala 167:47] assign io_dec_exu_tlu_exu_exu_pmu_i0_pc4 = i0_pp_r_bits_pc4; // @[exu.scala 168:47] - assign io_dec_exu_tlu_exu_exu_npc_r = _T_221[30:0]; // @[exu.scala 240:49] + assign io_dec_exu_tlu_exu_exu_npc_r = _T_265[30:0]; // @[exu.scala 240:49] assign io_exu_bp_exu_i0_br_index_r = io_dec_exu_tlu_exu_exu_i0_br_index_r; // @[exu.scala 195:43] assign io_exu_bp_exu_i0_br_fghr_r = predpipe_r[20:13]; // @[exu.scala 193:43] assign io_exu_bp_exu_i0_br_way_r = i0_pp_r_bits_way; // @[exu.scala 188:43] @@ -2636,7 +2642,7 @@ module exu( assign io_exu_bp_exu_mp_pkt_bits_pret = i0_flush_upper_x & i0_predict_p_x_bits_pret; // @[exu.scala 206:39] assign io_exu_bp_exu_mp_pkt_bits_prett = 31'h0; // @[exu.scala 49:57] assign io_exu_bp_exu_mp_eghr = final_predpipe_mp[20:13]; // @[exu.scala 215:39] - assign io_exu_bp_exu_mp_fghr = _T_206 ? ghr_d : ghr_x; // @[exu.scala 212:39] + assign io_exu_bp_exu_mp_fghr = _T_250 ? ghr_d : ghr_x; // @[exu.scala 212:39] assign io_exu_bp_exu_mp_index = final_predpipe_mp[12:5]; // @[exu.scala 213:39] assign io_exu_bp_exu_mp_btag = final_predpipe_mp[4:0]; // @[exu.scala 214:39] assign io_exu_flush_final = i_alu_io_flush_final_out; // @[exu.scala 143:27] @@ -2644,7 +2650,7 @@ module exu( assign io_exu_div_wren = i_div_io_exu_div_wren; // @[exu.scala 159:41] assign io_lsu_exu_exu_lsu_rs1_d = _T_135 | _T_134; // @[exu.scala 113:27] assign io_lsu_exu_exu_lsu_rs2_d = _T_148 | _T_149; // @[exu.scala 119:27] - assign io_exu_flush_path_final = _T_216 | _T_217; // @[exu.scala 236:33] + assign io_exu_flush_path_final = _T_260 | _T_261; // @[exu.scala 236:33] assign rvclkhdr_io_clk = clock; // @[lib.scala 401:18] assign rvclkhdr_io_en = x_data_en & io_dec_exu_decode_exu_dec_i0_branch_d; // @[lib.scala 402:17] assign rvclkhdr_1_io_clk = clock; // @[lib.scala 401:18] @@ -2725,12 +2731,12 @@ module exu( assign i_alu_io_pp_in_bits_prett = io_dec_exu_decode_exu_dec_i0_predict_p_d_bits_prett; // @[exu.scala 133:45] assign i_mul_clock = clock; assign i_mul_reset = reset; - assign i_mul_io_mul_p_valid = io_dec_exu_decode_exu_mul_p_valid; // @[exu.scala 149:41] - assign i_mul_io_mul_p_bits_rs1_sign = io_dec_exu_decode_exu_mul_p_bits_rs1_sign; // @[exu.scala 149:41] - assign i_mul_io_mul_p_bits_rs2_sign = io_dec_exu_decode_exu_mul_p_bits_rs2_sign; // @[exu.scala 149:41] - assign i_mul_io_mul_p_bits_low = io_dec_exu_decode_exu_mul_p_bits_low; // @[exu.scala 149:41] - assign i_mul_io_rs1_in = muldiv_rs1_d & _T_161; // @[exu.scala 150:41] - assign i_mul_io_rs2_in = i0_rs2_d & _T_161; // @[exu.scala 151:41] + assign i_mul_io_mul_p_valid = _T_183[19]; // @[exu.scala 149:25] + assign i_mul_io_mul_p_bits_rs1_sign = _T_183[18]; // @[exu.scala 149:25] + assign i_mul_io_mul_p_bits_rs2_sign = _T_183[17]; // @[exu.scala 149:25] + assign i_mul_io_mul_p_bits_low = _T_183[16]; // @[exu.scala 149:25] + assign i_mul_io_rs1_in = muldiv_rs1_d & _T_205; // @[exu.scala 150:41] + assign i_mul_io_rs2_in = i0_rs2_d & _T_205; // @[exu.scala 151:41] assign i_div_clock = clock; assign i_div_reset = reset; assign i_div_io_dividend = _T_156 | _T_99; // @[exu.scala 157:33] @@ -3095,7 +3101,7 @@ end // initial ghr_x <= 8'h0; end else if (x_ctl_en) begin if (i0_valid_x) begin - ghr_x <= _T_191; + ghr_x <= _T_235; end end end diff --git a/src/main/scala/exu/exu.scala b/src/main/scala/exu/exu.scala index db99708f..b8ed7ea6 100644 --- a/src/main/scala/exu/exu.scala +++ b/src/main/scala/exu/exu.scala @@ -146,7 +146,7 @@ class exu extends Module with lib with RequireAsyncReset{ val i_mul = Module(new exu_mul_ctl()) i_mul.io.scan_mode := io.scan_mode - i_mul.io.mul_p := io.dec_exu.decode_exu.mul_p // & Fill(io.dec_exu.decode_exu.mul_p.getWidth,io.dec_exu.decode_exu.mul_p.valid) + i_mul.io.mul_p := VecInit.tabulate(io.dec_exu.decode_exu.mul_p.getElements.size-1)(i=>io.dec_exu.decode_exu.mul_p.getElements(i).asUInt & Fill(io.dec_exu.decode_exu.mul_p.getElements.size,io.dec_exu.decode_exu.mul_p.valid)).asTypeOf(io.dec_exu.decode_exu.mul_p) //& io.dec_exu.decode_exu.mul_p.valid i_mul.io.rs1_in := muldiv_rs1_d & Fill(32,io.dec_exu.decode_exu.mul_p.valid) i_mul.io.rs2_in := i0_rs2_d & Fill(32,io.dec_exu.decode_exu.mul_p.valid) val mul_result_x = i_mul.io.result_x diff --git a/target/scala-2.12/classes/exu/exu.class b/target/scala-2.12/classes/exu/exu.class index cefeb749859e7d661a4e67eb10dafe59cb801612..cd6ede211d4c14d6bfe3e84ee11a23f8905f0f2a 100644 GIT binary patch literal 264491 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
QDcP7=AIg7f>$KV^{?6Ze{B`vE< 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 literal 260714 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

h}3QwC-56=`0 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 H(ZB)!uoW+NLT_=R!4P@%w2@Azl+qO`Ev< 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 IKY+3S11L9G(EtDd diff --git a/target/scala-2.12/classes/exu/exu_main$.class b/target/scala-2.12/classes/exu/exu_main$.class index bfd86bef7f22f4fdbb7dcef2d5bab577834fe8ce..e6a158752781c1529bba0d635f010e600713a2c6 100644 GIT binary patch delta 14 VcmZpXYmwV