Create bus errors (obi/rvfi) scoreboard for 40x
Created by: silabs-robin
This PR adds a scoreboard that intends to check that OBI transactions with "err" bus faults becomes visible on RVFI. The in-code "NaturalDocs" comment describes how it works.
I have tested with the directed tests data_bus_error
and instr_bus_error
and those work as expected.
corev_rand_data_obi_err
, corev_rand_data_obi_err_debug
, corev_rand_instr_obi_err
, corev_rand_instr_obi_err_debug
were also tried, and they did pass before pulling latest cv32e40x/dev
and now I get ISS miscompares and infinite loops (should not be this scoreboard's fault). Note that corev_rand_instr_obi_err_debug
did give a warning as it completed with one pending bus fault that hadn't seen its handler yet.
Passed ci_check when it ran during the VTG today.
If anyone thinks there could be a better way of checking this, please just let me know. This is what I managed to come up with, but I don't have a strong feeling about how good it is. It is not a big class, but I found that some of the logic is a bit tricky.
I would like to test this more but I don't think we have any additional bus error tests than those mentioned above?
@silabs-hfegran
, since we discussed a little bit, if you have time to review that would be appreciated.