[BUG] Out-of-Order Not Working
Created by: sifferman
Is there an existing CVA6 bug for this?
-
I have searched the existing bug issues
Bug Description
Bug Explanation
I noticed the docs say that Out-of-Order can occur between the multiplier and the ALU, however this is not the case according to the RTL.
Docs:
RTL:
For example, I have this code snippet:
div t2, t0, t1
fsqrt.s f1, f1
lw t5, 0(s1)
add t6, t0, t1
And this is it's execute stage:
As you can see, the add
instruction isn't run until after the div
finishes.
Proposed Fix
Either:
- The RTL could be changed to separate the ALU and multiplier into two separate busy signals.
- The example in the docs could be changed to something else, such as
div
andlsu
.