diff --git a/picorv32.v b/picorv32.v index 5f2fd15..cb7b84f 100644 --- a/picorv32.v +++ b/picorv32.v @@ -1968,15 +1968,14 @@ module picorv32_pcpi_fast_mul #( rs1_q <= rs1; rs2_q <= rs2; end + if (!MUL_CLKGATE || active[1]) begin + rd <= $signed(EXTRA_MUL_FFS ? rs1_q : rs1) * $signed(EXTRA_MUL_FFS ? rs2_q : rs2); + end if (!MUL_CLKGATE || active[2]) begin rd_q <= rd; end end - always @(posedge clk) begin - rd <= $signed(EXTRA_MUL_FFS ? rs1_q : rs1) * $signed(EXTRA_MUL_FFS ? rs2_q : rs2); - end - always @(posedge clk) begin if (instr_any_mul && !(EXTRA_MUL_FFS ? active[3:0] : active[1:0])) begin if (instr_rs1_signed)