vicuna icon indicating copy to clipboard operation
vicuna copied to clipboard

Tail-undisturbed policy violation for comparison instructions.

Open moimfeld opened this issue 3 years ago • 0 comments

Hi @michael-platzer

Issue

Comparison instructions should write the result of each comparison into the corresponding mask element of the result register. Vicuna does this, but it also updates the "mask tail elements", which is not compliant with the specs.

AFAIK, all comparison instruction violate this policy (vmseq.(vv|vx|vi), vmsne.(vv|vx|vi), vmslt(u).(vv|vx), vmsle(u).(vv|vx|vi), vmsgt(u).(vv|vx)) .

Below you can see an example warning of the UVM environment caused by tail-undisturbed violation: (configuration: SEW=8, VL=8, LMUL=1/4)

# UVM_WARNING cvxif_scoreboard.svh(412) @ 15740: uvm_test_top.env.scoreboard [CVXIF_SCOREBOARD] Instr "vmsgtu.vi v3, v23, 1 mf4, tu, mu" with id = 5 in Prog "vmsgtu_vi" failed: 
# at      15740 ns: 
# State Difference
# ref.vproc_register[3]: d95224b44d1baac103a912d636614c8aabbe3dcb295429c8b1d99a5205c141ff, dut.vproc_reg[3]: d95224b44d1baac103a912d636614c8aabbe3dcb295429c8b1d99a52ffffffff

This issue might be related to #79 because both issues occur if the result is in "Mask-Register-Layout".

How to reproduce

You can reproduce this issue by running the cvxif_test_direct_issue_97 in the UVM environment.

moimfeld avatar Aug 08 '22 12:08 moimfeld