You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This sets LMUL=1 and vl=1040 (from rs1 in the vsetvl instruction) for subsequent instructions, causing subsequent instructions to be written to destination registers where they should not be.
The reason is that ara_dispatcher violates the rule that the original vl value cannot be preserved when VLMAX and vl change due to a new SEW/LMUL ratio, which is currently preserved, and the implementation should go to set vill or VL set to VLMAX due to the AVL > VLMAX (RVV SPEC 6.3 3. vl = VLMAX if AVL ≥ (2 * VLMAX) ).
If the development team wants to be compatible with spike, there is also a treatment for this in the implementation of spike, which selects the value of min.
The following diagram shows the relevant waveforms:
You can see the final change of the vslideup instruction from the original vd=v9 to v17.
The text was updated successfully, but these errors were encountered:
WEIhabi
changed the title
ara_dispatcher handling of Configuration-Setting Instructions (vsetvli/vsetivli/vsetvl) is not perfect.
ara_dispatcher handling of continuous Configuration-Setting Instructions (vsetvli/vsetivli/vsetvl) is not perfect.
Aug 23, 2023
Enter two Config instructions in ara_dispatcher, as follows
vsetvl x0, x16, e8, m8, tu, mu
(32'h8038_7057) # SEW= 8, LMUL=8vsetvli x0, x0, e16, m1, tu, ma
(32'h3880_7057) # SEW= 16, LMUL=1This sets
LMUL=1
andvl=1040
(from rs1 in the vsetvl instruction) for subsequent instructions, causing subsequent instructions to be written to destination registers where they should not be.The reason is that
ara_dispatcher
violates the rule that the original vl value cannot be preserved whenVLMAX
andvl
change due to a new SEW/LMUL ratio, which is currently preserved, and the implementation should go to setvill
orVL
set toVLMAX
due to theAVL > VLMAX
(RVV SPEC 6.3 3. vl = VLMAX if AVL ≥ (2 * VLMAX) ).If the development team wants to be compatible with spike, there is also a treatment for this in the implementation of spike, which selects the value of min.
The following diagram shows the relevant waveforms:
You can see the final change of the vslideup instruction from the original vd=v9 to v17.
The text was updated successfully, but these errors were encountered: