+The design began as a 5-stage RV32I pipeline running at 91 MHz. However, after extending the ISA with hardware multiply/divide, M-mode privileged CSRs, trap handling, and a gshare branch predictor, the execute stage became the critical bottleneck, accumulating 19 logic levels and a 15.5 ns combinational path that resulted in a WNS of -5.539 ns, effectively capping the design at 64 MHz. To resolve this, I split the execute stage into separate forwarding (EX1) and computation (EX2) stages, which reduced the critical path to 7 logic levels and achieved clean timing closure at 100 MHz. As a consequence, the deeper pipeline increases the branch misprediction penalty from 2 to 3 cycles; nevertheless, the gshare predictor with BTB and return address stack mitigates this sufficiently that the 56% frequency improvement far outweighs the added latency.
0 commit comments